[ { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "address", "name": "_endpoint", "type": "address" }, { "internalType": "uint16", "name": "_mainEndpointId", "type": "uint16" }, { "internalType": "uint256", "name": "_initialSupplyOnMainEndpoint", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_from", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "Burn", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "Mint", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "isPaused", "type": "bool" } ], "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint16", "name": "srcChainId", "type": "uint16" }, { "indexed": false, "internalType": "uint64", "name": "nonce", "type": "uint64" }, { "indexed": false, "internalType": "uint256", "name": "qty", "type": "uint256" } ], "name": "ReceiveFromChain", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint16", "name": "dstChainId", "type": "uint16" }, { "indexed": false, "internalType": "bytes", "name": "to", "type": "bytes" }, { "indexed": false, "internalType": "uint256", "name": "qty", "type": "uint256" } ], "name": "SendToChain", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_from", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "chainId", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "name": "dstContractLookup", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "endpoint", "outputs": [ { "internalType": "contract ILayerZeroEndpoint", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "internalType": "bool", "name": "_useZro", "type": "bool" }, { "internalType": "bytes", "name": "txParameters", "type": "bytes" } ], "name": "estimateSendTokensFee", "outputs": [ { "internalType": "uint256", "name": "nativeFee", "type": "uint256" }, { "internalType": "uint256", "name": "zroFee", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_srcAddress", "type": "bytes" } ], "name": "forceResumeReceive", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "isMain", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_fromAddress", "type": "bytes" }, { "internalType": "uint64", "name": "nonce", "type": "uint64" }, { "internalType": "bytes", "name": "_payload", "type": "bytes" } ], "name": "lzReceive", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_pause", "type": "bool" } ], "name": "pauseSendTokens", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_to", "type": "bytes" }, { "internalType": "uint256", "name": "_qty", "type": "uint256" }, { "internalType": "address", "name": "zroPaymentAddress", "type": "address" }, { "internalType": "bytes", "name": "adapterParam", "type": "bytes" } ], "name": "sendTokens", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_version", "type": "uint16" }, { "internalType": "uint16", "name": "_chainId", "type": "uint16" }, { "internalType": "uint256", "name": "_configType", "type": "uint256" }, { "internalType": "bytes", "name": "_config", "type": "bytes" } ], "name": "setConfig", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_destinationContractAddress", "type": "bytes" } ], "name": "setDestination", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "version", "type": "uint16" } ], "name": "setReceiveVersion", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "version", "type": "uint16" } ], "name": "setSendVersion", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60a06040523480156200001157600080fd5b506040516200281038038062002810833981016040819052620000349162000335565b8484848484848460036200004983826200046b565b5060046200005882826200046b565b50505060006200006d6200016760201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508161ffff16836001600160a01b0316633408e4706040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000125919062000537565b61ffff16036200014b576200013b33826200016b565b6007805461ff0019166101001790555b50506001600160a01b0316608052506200058495505050505050565b3390565b6001600160a01b038216620001c65760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060026000828254620001da91906200055c565b90915550506001600160a01b03821660009081526020819052604081208054839290620002099084906200055c565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200028057600080fd5b81516001600160401b03808211156200029d576200029d62000258565b604051601f8301601f19908116603f01168101908282118183101715620002c857620002c862000258565b81604052838152602092508683858801011115620002e557600080fd5b600091505b83821015620003095785820183015181830184015290820190620002ea565b600093810190920192909252949350505050565b805161ffff811681146200033057600080fd5b919050565b600080600080600060a086880312156200034e57600080fd5b85516001600160401b03808211156200036657600080fd5b6200037489838a016200026e565b965060208801519150808211156200038b57600080fd5b506200039a888289016200026e565b604088015190955090506001600160a01b0381168114620003ba57600080fd5b9250620003ca606087016200031d565b9150608086015190509295509295909350565b600181811c90821680620003f257607f821691505b6020821081036200041357634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200025357600081815260208120601f850160051c81016020861015620004425750805b601f850160051c820191505b8181101562000463578281556001016200044e565b505050505050565b81516001600160401b0381111562000487576200048762000258565b6200049f81620004988454620003dd565b8462000419565b602080601f831160018114620004d75760008415620004be5750858301515b600019600386901b1c1916600185901b17855562000463565b600085815260208120601f198616915b828110156200050857888601518255948401946001909101908401620004e7565b5085821015620005275787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200054a57600080fd5b62000555826200031d565b9392505050565b808201808211156200057e57634e487b7160e01b600052601160045260246000fd5b92915050565b608051612238620005d8600039600081816103880152818161060d0152818161086a0152818161092c01528181610ae801528181610c9a01528181610e6701528181610f0401526110e301526122386000f3fe6080604052600436106101cc5760003560e01c806360f05c7a116100f75780639a8a059211610095578063cbed8b9c11610064578063cbed8b9c1461055c578063dd62ed3e1461057c578063f1878922146105c2578063f2fde38b146105e257600080fd5b80639a8a0592146104d45780639dc29fac146104fc578063a457c2d71461051c578063a9059cbb1461053c57600080fd5b8063715018a6116100d1578063715018a614610457578063738743361461046c5780638da5cb5b146104a157806395d89b41146104bf57600080fd5b806360f05c7a146103e1578063706d8fff1461040157806370a082311461042157600080fd5b80632e15238c1161016f57806342d65a8d1161013e57806342d65a8d1461033c5780635c975abb1461035c5780635e280f1114610376578063604269d1146103c257600080fd5b80632e15238c146102cd578063313ce567146102e057806339509351146102fc57806340c10f191461031c57600080fd5b8063095ea7b3116101ab578063095ea7b31461023e57806310ddb1371461026e57806318160ddd1461028e57806323b872dd146102ad57600080fd5b80621d3567146101d157806306fdde03146101f357806307e0db171461021e575b600080fd5b3480156101dd57600080fd5b506101f16101ec3660046118ac565b610602565b005b3480156101ff57600080fd5b50610208610795565b604051610215919061198c565b60405180910390f35b34801561022a57600080fd5b506101f16102393660046119a6565b610827565b34801561024a57600080fd5b5061025e6102593660046119df565b6108d2565b6040519015158152602001610215565b34801561027a57600080fd5b506101f16102893660046119a6565b6108e9565b34801561029a57600080fd5b506002545b604051908152602001610215565b3480156102b957600080fd5b5061025e6102c8366004611a09565b610963565b6101f16102db366004611a8e565b610a0d565b3480156102ec57600080fd5b5060405160128152602001610215565b34801561030857600080fd5b5061025e6103173660046119df565b610ba2565b34801561032857600080fd5b506101f16103373660046119df565b610bde565b34801561034857600080fd5b506101f1610357366004611b2e565b610c59565b34801561036857600080fd5b5060075461025e9060ff1681565b34801561038257600080fd5b506103aa7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610215565b3480156103ce57600080fd5b5060075461025e90610100900460ff1681565b3480156103ed57600080fd5b506102086103fc3660046119a6565b610d0a565b34801561040d57600080fd5b506101f161041c366004611b2e565b610da4565b34801561042d57600080fd5b5061029f61043c366004611b83565b6001600160a01b031660009081526020819052604090205490565b34801561046357600080fd5b506101f1610e14565b34801561047857600080fd5b5061048c610487366004611bae565b610e40565b60408051928352602083019190915201610215565b3480156104ad57600080fd5b506005546001600160a01b03166103aa565b3480156104cb57600080fd5b50610208610ef1565b3480156104e057600080fd5b506104e9610f00565b60405161ffff9091168152602001610215565b34801561050857600080fd5b506101f16105173660046119df565b610f89565b34801561052857600080fd5b5061025e6105373660046119df565b610ffc565b34801561054857600080fd5b5061025e6105573660046119df565b611095565b34801561056857600080fd5b506101f1610577366004611c11565b6110a2565b34801561058857600080fd5b5061029f610597366004611c84565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156105ce57600080fd5b506101f16105dd366004611cb7565b611159565b3480156105ee57600080fd5b506101f16105fd366004611b83565b6111ca565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461063757600080fd5b61ffff84166000908152600660205260409020805461065590611cd2565b90508351148015610694575061ffff84166000908152600660205260409081902090516106829190611d0c565b60405180910390208380519060200120145b6106f15760405162461bcd60e51b8152602060048201526024808201527f4f46543a20696e76616c696420736f757263652073656e64696e6720636f6e746044820152631c9858dd60e21b60648201526084015b60405180910390fd5b600080828060200190518101906107089190611d82565b601482015160075492945090925090610100900460ff16156107345761072f3082846112b5565b61073e565b61073e8183611484565b6040805161ffff8916815267ffffffffffffffff871660208201529081018390527f831bc68226f8d1f734ffcca73602efc4eca13711402ba1d2cc05ee17bb54f6319060600160405180910390a150505050505050565b6060600380546107a490611cd2565b80601f01602080910402602001604051908101604052809291908181526020018280546107d090611cd2565b801561081d5780601f106107f25761010080835404028352916020019161081d565b820191906000526020600020905b81548152906001019060200180831161080057829003601f168201915b5050505050905090565b6005546001600160a01b031633146108515760405162461bcd60e51b81526004016106e890611e03565b6040516307e0db1760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906307e0db17906024015b600060405180830381600087803b1580156108b757600080fd5b505af11580156108cb573d6000803e3d6000fd5b5050505050565b60006108df338484611563565b5060015b92915050565b6005546001600160a01b031633146109135760405162461bcd60e51b81526004016106e890611e03565b6040516310ddb13760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906310ddb1379060240161089d565b60006109708484846112b5565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156109f55760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016106e8565b610a028533858403611563565b506001949350505050565b60075460ff1615610a6e5760405162461bcd60e51b815260206004820152602560248201527f4f46543a2073656e64546f6b656e7328292069732063757272656e746c792070604482015264185d5cd95960da1b60648201526084016106e8565b600754610100900460ff1615610a8e57610a893330866112b5565b610a98565b610a983385611688565b6000868686604051602001610aaf93929190611e61565b60408051601f1981840301815282825261ffff8b16600090815260066020529190912062c5803160e81b83529092506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163c5803100913491610b29918d91879033908c908c908c90600401611e85565b6000604051808303818588803b158015610b4257600080fd5b505af1158015610b56573d6000803e3d6000fd5b50505050507f664e26797cde1146ddfcb9a5d3f4de61179f9c11b2698599bb09e686f442172b88888888604051610b909493929190611f6c565b60405180910390a15050505050505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916108df918590610bd9908690611fb1565b611563565b6005546001600160a01b03163314610c085760405162461bcd60e51b81526004016106e890611e03565b610c128282611484565b604080516001600160a01b0384168152602081018390527f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688591015b60405180910390a15050565b6005546001600160a01b03163314610c835760405162461bcd60e51b81526004016106e890611e03565b6040516342d65a8d60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342d65a8d90610cd390869086908690600401611fc4565b600060405180830381600087803b158015610ced57600080fd5b505af1158015610d01573d6000803e3d6000fd5b50505050505050565b60066020526000908152604090208054610d2390611cd2565b80601f0160208091040260200160405190810160405280929190818152602001828054610d4f90611cd2565b8015610d9c5780601f10610d7157610100808354040283529160200191610d9c565b820191906000526020600020905b815481529060010190602001808311610d7f57829003601f168201915b505050505081565b6005546001600160a01b03163314610dce5760405162461bcd60e51b81526004016106e890611e03565b818130604051602001610de393929190611feb565b60408051601f1981840301815291815261ffff8516600090815260066020522090610e0e908261205f565b50505050565b6005546001600160a01b03163314610e3e5760405162461bcd60e51b81526004016106e890611e03565b565b604080516020810182526000808252915163040a7bb160e41b815282916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916340a7bb1091610ea4918a9130918b908b908b9060040161211f565b6040805180830381865afa158015610ec0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee49190612175565b9150915094509492505050565b6060600480546107a490611cd2565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633408e4706040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f849190612199565b905090565b6005546001600160a01b03163314610fb35760405162461bcd60e51b81526004016106e890611e03565b610fbd8282611688565b604080516001600160a01b0384168152602081018390527fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca59101610c4d565b3360009081526001602090815260408083206001600160a01b03861684529091528120548281101561107e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016106e8565b61108b3385858403611563565b5060019392505050565b60006108df3384846112b5565b6005546001600160a01b031633146110cc5760405162461bcd60e51b81526004016106e890611e03565b6040516332fb62e760e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cbed8b9c9061112090889088908890889088906004016121b6565b600060405180830381600087803b15801561113a57600080fd5b505af115801561114e573d6000803e3d6000fd5b505050505050505050565b6005546001600160a01b031633146111835760405162461bcd60e51b81526004016106e890611e03565b6007805460ff19168215159081179091556040519081527f0e2fb031ee032dc02d8011dc50b816eb450cf856abd8261680dac74f72165bd29060200160405180910390a150565b6005546001600160a01b031633146111f45760405162461bcd60e51b81526004016106e890611e03565b6001600160a01b0381166112595760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106e8565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166113195760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106e8565b6001600160a01b03821661137b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106e8565b6001600160a01b038316600090815260208190526040902054818110156113f35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016106e8565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061142a908490611fb1565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161147691815260200190565b60405180910390a350505050565b6001600160a01b0382166114da5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016106e8565b80600260008282546114ec9190611fb1565b90915550506001600160a01b03821660009081526020819052604081208054839290611519908490611fb1565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b0383166115c55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106e8565b6001600160a01b0382166116265760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106e8565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0382166116e85760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016106e8565b6001600160a01b0382166000908152602081905260409020548181101561175c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016106e8565b6001600160a01b038316600090815260208190526040812083830390556002805484929061178b9084906121ef565b909155505060405182815261dead906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200161167b565b505050565b61ffff811681146117e457600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611826576118266117e7565b604052919050565b600067ffffffffffffffff821115611848576118486117e7565b50601f01601f191660200190565b600082601f83011261186757600080fd5b813561187a6118758261182e565b6117fd565b81815284602083860101111561188f57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080608085870312156118c257600080fd5b84356118cd816117d4565b9350602085013567ffffffffffffffff808211156118ea57600080fd5b6118f688838901611856565b945060408701359150808216821461190d57600080fd5b9092506060860135908082111561192357600080fd5b5061193087828801611856565b91505092959194509250565b60005b8381101561195757818101518382015260200161193f565b50506000910152565b6000815180845261197881602086016020860161193c565b601f01601f19169290920160200192915050565b60208152600061199f6020830184611960565b9392505050565b6000602082840312156119b857600080fd5b813561199f816117d4565b80356001600160a01b03811681146119da57600080fd5b919050565b600080604083850312156119f257600080fd5b6119fb836119c3565b946020939093013593505050565b600080600060608486031215611a1e57600080fd5b611a27846119c3565b9250611a35602085016119c3565b9150604084013590509250925092565b60008083601f840112611a5757600080fd5b50813567ffffffffffffffff811115611a6f57600080fd5b602083019150836020828501011115611a8757600080fd5b9250929050565b600080600080600080600060a0888a031215611aa957600080fd5b8735611ab4816117d4565b9650602088013567ffffffffffffffff80821115611ad157600080fd5b611add8b838c01611a45565b909850965060408a01359550869150611af860608b016119c3565b945060808a0135915080821115611b0e57600080fd5b50611b1b8a828b01611a45565b989b979a50959850939692959293505050565b600080600060408486031215611b4357600080fd5b8335611b4e816117d4565b9250602084013567ffffffffffffffff811115611b6a57600080fd5b611b7686828701611a45565b9497909650939450505050565b600060208284031215611b9557600080fd5b61199f826119c3565b803580151581146119da57600080fd5b60008060008060608587031215611bc457600080fd5b8435611bcf816117d4565b9350611bdd60208601611b9e565b9250604085013567ffffffffffffffff811115611bf957600080fd5b611c0587828801611a45565b95989497509550505050565b600080600080600060808688031215611c2957600080fd5b8535611c34816117d4565b94506020860135611c44816117d4565b935060408601359250606086013567ffffffffffffffff811115611c6757600080fd5b611c7388828901611a45565b969995985093965092949392505050565b60008060408385031215611c9757600080fd5b611ca0836119c3565b9150611cae602084016119c3565b90509250929050565b600060208284031215611cc957600080fd5b61199f82611b9e565b600181811c90821680611ce657607f821691505b602082108103611d0657634e487b7160e01b600052602260045260246000fd5b50919050565b6000808354611d1a81611cd2565b60018281168015611d325760018114611d4757611d76565b60ff1984168752821515830287019450611d76565b8760005260208060002060005b85811015611d6d5781548a820152908401908201611d54565b50505082870194505b50929695505050505050565b60008060408385031215611d9557600080fd5b825167ffffffffffffffff811115611dac57600080fd5b8301601f81018513611dbd57600080fd5b8051611dcb6118758261182e565b818152866020838501011115611de057600080fd5b611df182602083016020860161193c565b60209590950151949694955050505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b604081526000611e75604083018587611e38565b9050826020830152949350505050565b61ffff881681526000602060c08184015260008954611ea381611cd2565b8060c087015260e0600180841660008114611ec55760018114611edf57611f0d565b60ff1985168984015283151560051b890183019550611f0d565b8e6000528660002060005b85811015611f055781548b8201860152908301908801611eea565b8a0184019650505b50505050508381036040850152611f24818a611960565b915050611f3c60608401886001600160a01b03169052565b6001600160a01b038616608084015282810360a0840152611f5e818587611e38565b9a9950505050505050505050565b61ffff85168152606060208201526000611f8a606083018587611e38565b905082604083015295945050505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156108e3576108e3611f9b565b61ffff84168152604060208201526000611fe2604083018486611e38565b95945050505050565b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b601f8211156117cf57600081815260208120601f850160051c810160208610156120385750805b601f850160051c820191505b8181101561205757828155600101612044565b505050505050565b815167ffffffffffffffff811115612079576120796117e7565b61208d816120878454611cd2565b84612011565b602080601f8311600181146120c257600084156120aa5750858301515b600019600386901b1c1916600185901b178555612057565b600085815260208120601f198616915b828110156120f1578886015182559484019460019091019084016120d2565b508582101561210f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61ffff871681526001600160a01b038616602082015260a06040820181905260009061214d90830187611960565b85151560608401528281036080840152612168818587611e38565b9998505050505050505050565b6000806040838503121561218857600080fd5b505080516020909101519092909150565b6000602082840312156121ab57600080fd5b815161199f816117d4565b600061ffff8088168352808716602084015250846040830152608060608301526121e4608083018486611e38565b979650505050505050565b818103818111156108e3576108e3611f9b56fea264697066735822122021a9973d4e917fbdbd0820b1fce0908d52f1d12f06b5d33c13815e6bf70e810c64736f6c6343000812003300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000003c2269811836af69497e5f486a85d7316753cf62000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000052b7d2dcc80cd2e40000000000000000000000000000000000000000000000000000000000000000000008416c7469747564650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004414c544400000000000000000000000000000000000000000000000000000000