[ { "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": true, "internalType": "address", "name": "delegator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "fromDelegate", "type": "address" }, { "indexed": true, "internalType": "address", "name": "toDelegate", "type": "address" } ], "name": "DelegateChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "delegate", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "previousBalance", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newBalance", "type": "uint256" } ], "name": "DelegateVotesChanged", "type": "event" }, { "anonymous": false, "inputs": [], "name": "EIP712DomainChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "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" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "inputs": [], "name": "BURNER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "CLOCK_MODE", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "LOCKED_ACCOUNT", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MINTER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PAUSER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "addMinter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "addPauser", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "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": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burnFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "cap", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint32", "name": "pos", "type": "uint32" } ], "name": "checkpoints", "outputs": [ { "components": [ { "internalType": "uint32", "name": "fromBlock", "type": "uint32" }, { "internalType": "uint224", "name": "votes", "type": "uint224" } ], "internalType": "struct ERC20VotesUpgradeable.Checkpoint", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "clock", "outputs": [ { "internalType": "uint48", "name": "", "type": "uint48" } ], "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": "address", "name": "delegatee", "type": "address" } ], "name": "delegate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "delegatee", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "uint256", "name": "expiry", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "delegateBySig", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "delegates", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "eip712Domain", "outputs": [ { "internalType": "bytes1", "name": "fields", "type": "bytes1" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "version", "type": "string" }, { "internalType": "uint256", "name": "chainId", "type": "uint256" }, { "internalType": "address", "name": "verifyingContract", "type": "address" }, { "internalType": "bytes32", "name": "salt", "type": "bytes32" }, { "internalType": "uint256[]", "name": "extensions", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "timepoint", "type": "uint256" } ], "name": "getPastTotalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "timepoint", "type": "uint256" } ], "name": "getPastVotes", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "getRoleMember", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleMemberCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "getVotes", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "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": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" }, { "internalType": "uint256", "name": "cap", "type": "uint256" } ], "name": "initializeSowakaERC20", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "initializeV3", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "lockAccount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "lockAccountAndMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "accounts", "type": "address[]" } ], "name": "lockAccounts", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "accounts", "type": "address[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" } ], "name": "lockAccountsAndMint", "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": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "numCheckpoints", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "permit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "removeMinter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "removePauser", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "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": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "unlockAccount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "accounts", "type": "address[]" } ], "name": "unlockAccounts", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "unpause", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60808060405234610016576150a7908161001c8239f35b600080fdfe60806040526004361015610013575b600080fd5b60003560e01c806301ffc9a71461049b57806303057c701461049257806306fdde0314610489578063095ea7b31461048057806318160ddd1461047757806323b872dd1461046e578063248a9ca314610465578063282c51f31461045c5780632f2ff15d146104535780633092afd51461044a578063313ce56714610441578063355274ea146104385780633644e5151461042f57806336568abe1461042657806338e454b11461041d57806339509351146104145780633a46b1a81461040b5780633f4ba83a1461040257806340c10f19146103f957806342966c68146103f057806347a64f44146103e75780634bf5d7e9146103de5780634cd88b76146103d5578063587cde1e146103cc5780635c19a95c146103c35780635c975abb146103ba5780636b2c0f55146103b15780636fcfff45146103a857806370a082311461039f57806379cc6790146103965780637ecebe001461038d57806382dc1ec4146103845780638456cb591461037b57806384b0196e146103725780638aa8ec75146103695780638e539e8c146103605780639010d07c14610357578063905295e31461034e57806391d148541461034557806391ddadf41461033c57806395d89b4114610333578063983b2d561461032a5780639ab24eb014610321578063a217fddf14610318578063a457c2d71461030f578063a848f9b314610306578063a9059cbb146102fd578063aa58f84b146102f4578063c3cda520146102eb578063ca15c873146102e2578063d505accf146102d9578063d5391393146102d0578063d547741f146102c7578063dd62ed3e146102be578063e63ab1e9146102b5578063e6e15354146102ac578063ebaddea7146102a35763f1127ed81461029b57600080fd5b61000e61272f565b5061000e6126ef565b5061000e6126c9565b5061000e61269f565b5061000e612641565b5061000e612601565b5061000e6125c5565b5061000e61247e565b5061000e612451565b5061000e61231f565b5061000e61225b565b5061000e612234565b5061000e6121ef565b5061000e612073565b5061000e612056565b5061000e611fed565b5061000e611ea7565b5061000e611dff565b5061000e611dd2565b5061000e611d7e565b5061000e611d5c565b5061000e611d15565b5061000e611bb7565b5061000e611b7b565b5061000e611ad5565b5061000e611909565b5061000e6117e7565b5061000e6117ab565b5061000e6116d6565b5061000e61169b565b5061000e611651565b5061000e611609565b5061000e6115e4565b5061000e6115c1565b5061000e611584565b5061000e6114e1565b5061000e61142e565b5061000e61140c565b5061000e6112fe565b5061000e6110d0565b5061000e610f8d565b5061000e610e38565b5061000e610dcf565b5061000e610c8e565b5061000e610beb565b5061000e610bc7565b5061000e610ba7565b5061000e610b8a565b5061000e610a7f565b5061000e610984565b5061000e610948565b5061000e610918565b5061000e6108df565b5061000e6108c0565b5061000e61088e565b5061000e61077c565b5061000e6105fe565b503461000e57602036600319011261000e5760043563ffffffff60e01b811680910361000e57602090635a05180f60e01b81149081156104e1575b506040519015158152f35b637965db0b60e01b8114915081156104fb575b50386104d6565b6301ffc9a760e01b149050386104f4565b50634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff82111761053f57604052565b61054761050c565b604052565b6020810190811067ffffffffffffffff82111761053f57604052565b90601f8019910116810190811067ffffffffffffffff82111761053f57604052565b6040519061059782610523565b565b81601f8201121561000e5780359067ffffffffffffffff82116105f1575b604051926105cf601f8401601f191660200185610568565b8284526020838301011161000e57816000926020809301838601378301015290565b6105f961050c565b6105b7565b503461000e57606036600319011261000e5767ffffffffffffffff60043581811161000e57610631903690600401610599565b9060243590811161000e5761064d610694913690600401610599565b916000549261067360ff8560081c161580958196610712575b81156106f2575b50614097565b83610686600160ff196000541617600055565b6106d9575b60443591614109565b61069a57005b6106aa61ff001960005416600055565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b6106ed61010061ff00196000541617600055565b61068b565b303b15915081610704575b503861066d565b6001915060ff1614386106fd565b600160ff8216109150610666565b60005b8381106107335750506000910152565b8181015183820152602001610723565b9060209161075c81518092818552858086019101610720565b601f01601f1916010190565b906020610779928181520190610743565b90565b503461000e5760008060031936011261085f57604051908060cc546107a081612aad565b8085529160019180831690811561083557506001146107da575b6107d6856107ca81870382610568565b60405191829182610768565b0390f35b925060cc83527f47197230e1e4b29fc0bd84d7d78966c0925452aff72a2a121538b102457e9ebe5b82841061081d5750505081016020016107ca826107d66107ba565b80546020858701810191909152909301928101610802565b8695506107d6969350602092506107ca94915060ff191682840152151560051b82010192936107ba565b80fd5b600435906001600160a01b038216820361000e57565b602435906001600160a01b038216820361000e57565b503461000e57604036600319011261000e576108b56108ab610862565b6024359033612e50565b602060405160018152f35b503461000e57600036600319011261000e57602060cb54604051908152f35b503461000e57606036600319011261000e576108b56108fc610862565b610904610878565b60443591610913833383612f82565b612d2f565b503461000e57602036600319011261000e5760043560005260656020526020600160406000200154604051908152f35b503461000e57600036600319011261000e5760206040517f3c11d16cbaffd01df69ce1c404f6340ee057498f5f00246190ea54220576a8488152f35b503461000e57604036600319011261000e57600435610a086109a4610878565b610a0360009380855260656020526109c26001604087200154612882565b808552606560205260ff6109ec8460408820906001600160a01b0316600052602052604060002090565b541615610a0c576000526097602052604060002090565b613ed2565b5080f35b8085526065602052610a348360408720906001600160a01b0316600052602052604060002090565b805460ff19166001179055336001600160a01b038416827f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8880a46000526097602052604060002090565b503461000e57602036600319011261000e57610a99610862565b610a087f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6916000928084526065602052610ad96001604086200154612882565b808452606560205260ff610b038360408720906001600160a01b0316600052602052604060002090565b5416610b25575b835260976020526001600160a01b0360408420911690613fca565b8084526065602052610b4d8260408620906001600160a01b0316600052602052604060002090565b805460ff19169055336001600160a01b038316827ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b8780a4610b0a565b503461000e57600036600319011261000e57602060405160128152f35b503461000e57600036600319011261000e5760206101c354604051908152f35b503461000e57600036600319011261000e576020610be3613af1565b604051908152f35b503461000e57604036600319011261000e57610c05610878565b336001600160a01b03821603610c2357610c21906004356129fe565b005b60405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152608490fd5b503461000e5760008060031936011261085f57610102815460ff8160081c161580610dc2575b610cbd90614097565b61ffff1916178155808052606560205260ff610cef3360408420906001600160a01b0316600052602052604060002090565b541615610d7d57610d3d604051610d0581610523565b600b81526a0536f77616b6145524332360ac1b602082015260405190610d2a82610523565b60018252603360f81b6020830152614bd9565b610d4d61ff001960005416600055565b604051600281527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a180f35b60405162461bcd60e51b815260206004820152601b60248201527f45524332303a206d75737420686176652041646d696e20726f6c6500000000006044820152606490fd5b50600260ff821610610cb4565b503461000e57604036600319011261000e576108b5610dec610862565b3360005260ca602052610e16816040600020906001600160a01b0316600052602052604060002090565b54906024358201809211610e2b575b33612e50565b610e33612c42565b610e25565b503461000e57604036600319011261000e57610e52610862565b6001600160a01b0360243591610e7965ffffffffffff610e7143613e06565b1684106130d2565b1660005261025e602052604060002080549160008360058111610f3c575b50905b838210610ee757505081610ec0575050602060005b6001600160e01b0360405191168152f35b610edb610ee291602093600019019060005260206000200190565b5460201c90565b610eaf565b9092610ef38185613c2e565b90818363ffffffff610f19610f0f848960005260206000200190565b5463ffffffff1690565b161115610f2a575050925b90610e9a565b909450610f379150612c59565b610f24565b80610f4c610f5292969396613c4b565b9061311e565b908263ffffffff610f6d610f0f858860005260206000200190565b161115610f7d5750925b38610e97565b9350610f8890612c59565b610f77565b503461000e5760008060031936011261085f576000805160206150528339815191528152606560205260ff610fd83360408420906001600160a01b0316600052602052604060002090565b5416156110655761012d805460ff8116156110205760ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b60405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152603960248201527f45524332305072657365744d696e7465725061757365723a206d75737420686160448201527f76652070617573657220726f6c6520746f20756e7061757365000000000000006064820152608490fd5b503461000e5760408060031936011261000e576110eb610862565b602435907f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6600052606560205260ff61113a3385600020906001600160a01b0316600052602052604060002090565b5416156112945760cb54828101808211611287575b6101c35410611243576001600160a01b0382169081156111ff5791839160007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610c21976111b06111ab876111e5996111a6614fd2565b612c6f565b60cb55565b6111cd856001600160a01b031660005260c9602052604060002090565b8054870190555185815280602081015b0390a36147ba565b6111fa6001600160e01b0360cb541115614b21565b613514565b845162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606490fd5b835162461bcd60e51b815260206004820152601960248201527f45524332304361707065643a20636170206578636565646564000000000000006044820152606490fd5b61128f612c42565b61114f565b825162461bcd60e51b815260206004820152603660248201527f45524332305072657365744d696e7465725061757365723a206d75737420686160448201527f7665206d696e74657220726f6c6520746f206d696e74000000000000000000006064820152608490fd5b503461000e57602036600319011261000e5760043533156113bd57610c2190611326336146cf565b80611344336001600160a01b031660005260c9602052604060002090565b546113518282101561486e565b0361136f336001600160a01b031660005260c9602052604060002090565b5561137d8160cb540360cb55565b60405181815260009033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090a36113b88133614806565b613647565b60405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608490fd5b503461000e57602036600319011261000e57610c21611429610862565b6148c5565b503461000e57600036600319011261000e574365ffffffffffff61145143613e06565b160361149c576107d660405161146681610523565b601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015260405191829182610768565b60405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a2062726f6b656e20636c6f636b206d6f64650000006044820152606490fd5b503461000e57604036600319011261000e5767ffffffffffffffff60043581811161000e57611514903690600401610599565b9060243590811161000e57611530610694913690600401610599565b6000549261155360ff8560081c1615809581966107125781156106f25750614097565b83611566600160ff196000541617600055565b15614d0c5761157f61010061ff00196000541617600055565b614d0c565b503461000e57602036600319011261000e5760206001600160a01b03806115a9610862565b1660005261025d825260406000205416604051908152f35b503461000e57602036600319011261000e57610c216115de610862565b33613177565b503461000e57600036600319011261000e57602060ff61012d54166040519015158152f35b503461000e57602036600319011261000e57611623610862565b610a08600080516020615052833981519152916000928084526065602052610ad96001604086200154612882565b503461000e57602036600319011261000e576001600160a01b03611673610862565b1660005261025e602052602061168d604060002054613e6d565b63ffffffff60405191168152f35b503461000e57602036600319011261000e576001600160a01b036116bd610862565b1660005260c96020526020604060002054604051908152f35b503461000e57604036600319011261000e576116f0610862565b6024356116fe813384612f82565b6001600160a01b0382169182156113bd5781816000610c21956117236113b8956146cf565b83611741846001600160a01b031660005260c9602052604060002090565b5461174e8282101561486e565b0361176c846001600160a01b031660005260c9602052604060002090565b5561177a8460cb540360cb55565b6040518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090a3614806565b503461000e57602036600319011261000e576001600160a01b036117cd610862565b1660005261022a6020526020604060002054604051908152f35b503461000e57602036600319011261000e57611801610862565b610a0860008051602061505283398151915291600092808452606560205261182f6001604086200154612882565b808452606560205260ff6118598360408720906001600160a01b0316600052602052604060002090565b54161561189f575b5060008051602061505283398151915260005260976020527f793844da0378ca0230b21a4013ef02cf55735b90b39c85241478ff94b5eceb28613ed2565b80845260656020526118c78260408620906001600160a01b0316600052602052604060002090565b805460ff1916600117905533906001600160a01b038316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8680a438611861565b503461000e5760008060031936011261085f576000805160206150528339815191528152606560205260ff6119543360408420906001600160a01b0316600052602052604060002090565b5416156119e45761012d805460ff811661199f5760019060ff19161790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b60405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152603760248201527f45524332305072657365744d696e7465725061757365723a206d75737420686160448201527f76652070617573657220726f6c6520746f2070617573650000000000000000006064820152608490fd5b9193611a896001600160a01b039295600f60f81b8552611a7b60209760e08988015260e0870190610743565b908582036040870152610743565b936060840152166080820152600060a082015260c081830391015281808451928381520193019160005b828110611ac1575050505090565b835185529381019392810192600101611ab3565b503461000e57600036600319011261000e576101f6541580611b70575b15611b2b57611aff612ae7565b611b07612ba7565b906107d6604051611b178161054c565b600081526040519384933091469186611a4f565b60405162461bcd60e51b815260206004820152601560248201527f4549503731323a20556e696e697469616c697a656400000000000000000000006044820152606490fd5b506101f75415611af2565b503461000e57600036600319011261000e5760206040517f81c164dbf4e1c5e1bbccef8631cb4e61693e124bc8292c36395b37bc78deba458152f35b503461000e57602036600319011261000e57600435611be765ffffffffffff611bdf43613e06565b1682106130d2565b61025f549060008260058111611cad575b50905b828210611c49578280611c15575060405160008152602090f35b61025f600052602090610ee2907f861f903e304638d7ce346993efec5c74f89fa879e8a2ee996ee10899acfc4ed101610edb565b9091611c558184613c2e565b61025f600052908263ffffffff611c8d7f861f903e304638d7ce346993efec5c74f89fa879e8a2ee996ee10899acfc4ed28501610f0f565b161115611c9d5750915b90611bfb565b9250611ca890612c59565b611c97565b80610f4c611cbd92959395613c4b565b61025f600052908263ffffffff611cf57f861f903e304638d7ce346993efec5c74f89fa879e8a2ee996ee10899acfc4ed28501610f0f565b161115611d055750915b38611bf8565b9250611d1090612c59565b611cff565b503461000e57604036600319011261000e57600435600052609760205260206001600160a01b03611d4c602435604060002061308a565b9190546040519260031b1c168152f35b503461000e57602036600319011261000e57610c21611d79610862565b614937565b503461000e57604036600319011261000e57602060ff611dc6611d9f610878565b600435600052606584526040600020906001600160a01b0316600052602052604060002090565b54166040519015158152f35b503461000e57600036600319011261000e576020611def43613e06565b65ffffffffffff60405191168152f35b503461000e5760008060031936011261085f57604051908060cd54611e2381612aad565b808552916001918083169081156108355750600114611e4c576107d6856107ca81870382610568565b925060cd83527f83978b4c69c48dd978ab43fe30f077615294f938fb7f936d9eb340e51ea7db2e5b828410611e8f5750505081016020016107ca826107d66107ba565b80546020858701810191909152909301928101611e74565b503461000e57602036600319011261000e57611ec1610862565b610a087f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6916000928084526065602052611f016001604086200154612882565b808452606560205260ff611f2b8360408720906001600160a01b0316600052602052604060002090565b541615611f83575b507f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a660005260976020527f81bcdf06b56c0ed62a68a6ae231e66722c27e6665c84ec0015693a6d86f2bb93613ed2565b8084526065602052611fab8260408620906001600160a01b0316600052602052604060002090565b805460ff1916600117905533906001600160a01b038316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8680a438611f33565b503461000e57602036600319011261000e576001600160a01b0361200f610862565b1660005261025e6020526040600020546000811560001461203857505060405160008152602090f35b602091604061204d922090600019019061308a565b5054811c610eaf565b503461000e57600036600319011261000e57602060405160008152f35b503461000e57604036600319011261000e5761208d610862565b602435903360005260ca6020526120bb816040600020906001600160a01b0316600052602052604060002090565b54918083106120dc576120d092039033612e50565b60405160018152602090f35b60405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608490fd5b60209067ffffffffffffffff8111612149575b60051b0190565b61215161050c565b612142565b81601f8201121561000e5780359161216d8361212f565b9261217b6040519485610568565b808452602092838086019260051b82010192831161000e578301905b8282106121a5575050505090565b81356001600160a01b038116810361000e578152908301908301612197565b602060031982011261000e576004359067ffffffffffffffff821161000e5761077991600401612156565b503461000e576121fe366121c4565b60005b8151811015610c21578061222a6001600160a01b0361222361222f94866149c1565b51166148c5565b6149a9565b612201565b503461000e57604036600319011261000e576108b5612251610862565b6024359033612d2f565b503461000e57604036600319011261000e5767ffffffffffffffff60043581811161000e5761228e903690600401612156565b9060243590811161000e573660238201121561000e5780600401356122b28161212f565b916122c06040519384610568565b81835260209160248385019160051b8301019136831161000e57602401905b8282106122f057610c218587614b93565b813581529083019083016122df565b6064359060ff8216820361000e57565b6084359060ff8216820361000e57565b503461000e5760c036600319011261000e57612339610862565b604435906024356123486122ff565b9280421161240c576123d961240791610c2195604051906123c1826123b36020820195898b886060919493926001600160a01b0360808301967fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf845216602083015260408201520152565b03601f198101845283610568565b6123d460a4359360843593519020613b75565b61390b565b91612401836001600160a01b031660005261022a602052604060002090815491600183019055565b1461312b565b613177565b60405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e617475726520657870697265640000006044820152606490fd5b503461000e57602036600319011261000e5760043560005260976020526020604060002054604051908152f35b503461000e5760e036600319011261000e57612498610862565b6124a0610878565b60443590606435926124b061230f565b938042116125805761256861257b916123b3610c21976125556124f0876001600160a01b031660005261022a602052604060002090815491600183019055565b9360405193849160208301968c8c8c8a91959493909260a09360c08401977f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c985526001600160a01b038092166020860152166040840152606083015260808201520152565b6123d460c4359360a43593519020613b75565b6001600160a01b03808416911614613027565b612e50565b60405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606490fd5b503461000e57600036600319011261000e5760206040517f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a68152f35b503461000e57604036600319011261000e57610c21600435612621610878565b9080600052606560205261263c600160406000200154612882565b6129fe565b503461000e57604036600319011261000e576020612696612660610862565b6001600160a01b03612670610878565b911660005260ca83526040600020906001600160a01b0316600052602052604060002090565b54604051908152f35b503461000e57600036600319011261000e5760206040516000805160206150528339815191528152f35b503461000e57604036600319011261000e57610c216126e6610862565b602435906149e3565b503461000e576126fe366121c4565b60005b8151811015610c21578061222a6001600160a01b0361272361272a94866149c1565b5116614937565b612701565b503461000e57604036600319011261000e57612749610862565b63ffffffff602435818116810361000e5760206127a161279b6001600160e01b03936001600160a01b036040976000868a5161278481610523565b82815201521660005261025e84528660002061308a565b506130b0565b84519381511684520151166020820152f35b6001600160a01b0380821660009081527fbfe93621c6aa2dbf737e9056c9b79e4d30ee4f6b28b18be2cb71aac8a7bf258e602052604080822061281f949392906000805160206150528339815191529060ff905b541615612822575b8152609760205220911690613f05565b50565b808252606560205261284985848420906001600160a01b0316600052602052604060002090565b805460ff1916600117905533858516827f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8580a461280f565b80600052606560205260ff6128ae336040600020906001600160a01b0316600052602052604060002090565b5416156128b85750565b33906128c2613779565b9160306128ce846137b4565b5360786128da846137ca565b5360295b600181116129995761299561294661297d8661296f612906886129018915613815565b613860565b612940604051958694612940602087016017907f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081520190565b906129e7565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000815260110190565b03601f198101835282610568565b60405162461bcd60e51b815291829160048301610768565b0390fd5b90806f181899199a1a9b1b9c1cb0b131b232b360811b600f6129d5931660108110156129da575b1a6129cb84876137db565b5360041c916137fa565b6128de565b6129e2613073565b6129c0565b906129fa60209282815194859201610720565b0190565b906001600160a01b03604061281f93600090808252606560205260ff612a3986858520906001600160a01b0316600052602052604060002090565b5416612a50575b8152609760205220911690613fca565b8082526065602052612a7785848420906001600160a01b0316600052602052604060002090565b805460ff1916905533858516827ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b8580a4612a40565b90600182811c92168015612add575b6020831014612ac757565b634e487b7160e01b600052602260045260246000fd5b91607f1691612abc565b604051906000826101f8918254612afd81612aad565b80845293600191808316908115612b835750600114612b25575b505061059792500383610568565b600090815291507f8266c9cfd8dabe6f78455c38dd0de8582c4fa8f7b2e2a0cae9fbe2a3861fc0c65b848310612b68575061059793505081016020013880612b17565b81935090816020925483858a01015201910190918592612b4e565b9150506020925061059794915060ff191682840152151560051b8201013880612b17565b604051906000826101f9918254612bbd81612aad565b80845293600191808316908115612b835750600114612be457505061059792500383610568565b600090815291507f29eba5f30ca2030a69ed2d7f74871c83bbc526b071320256f127653c7dfff4e95b848310612c27575061059793505081016020013880612b17565b81935090816020925483858a01015201910190918592612c0d565b50634e487b7160e01b600052601160045260246000fd5b9060018201809211612c6757565b610597612c42565b91908201809211612c6757565b15612c8357565b60405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b15612cdb57565b60405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608490fd5b91906001600160a01b03928381168015612dfd5761059794831690612d55821515612c7c565b612d5f848461478a565b84612d7d846001600160a01b031660005260c9602052604060002090565b54612d8a82821015612cd4565b03612da8846001600160a01b031660005260c9602052604060002090565b55612dc6846001600160a01b031660005260c9602052604060002090565b8054860190556040518581527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090a3614839565b60405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608490fd5b906001600160a01b0391828116928315612f31578216938415612ee15780612ecb7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92594612eb3612edc956001600160a01b031660005260ca602052604060002090565b906001600160a01b0316600052602052604060002090565b556040519081529081906020820190565b0390a3565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b906001600160a01b03821660005260ca602052612fb6816040600020906001600160a01b0316600052602052604060002090565b549260018401612fc7575b50505050565b808410612fe257612fd9930391612e50565b38808080612fc1565b60405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606490fd5b1561302e57565b60405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606490fd5b50634e487b7160e01b600052603260045260246000fd5b80548210156130a3575b60005260206000200190600090565b6130ab613073565b613094565b906040516130bd81610523565b602081935463ffffffff81168352811c910152565b156130d957565b60405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20667574757265206c6f6f6b7570000000000000006044820152606490fd5b91908203918211612c6757565b1561313257565b60405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e6365000000000000006044820152606490fd5b610597917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f6001600160a01b0380931692600084815261025d94856020528260408320541693849260c96020526040812054976020526040812094871694856001600160a01b031982541617905580a45b91906001600160a01b0380821693168381141580613405575b61320b5750505050565b8061327f575b508261321e575b80612fc1565b7fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72491613261613266926001600160a01b031660005261025e602052604060002090565b6136c1565b60408051928352602083019190915290a2388080613218565b8060005261025e6020527fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72460406000208054801591826000146133e2576132c461058a565b6000815260006020820152915b6132f46132e860208501516001600160e01b031690565b6001600160e01b031690565b926132ff8985615037565b941590816133bf575b501561335d576133306133479261331e86613d9d565b92600019019060005260206000200190565b9063ffffffff82549181199060201b169116179055565b604080519182526020820192909252a238613211565b506133ba9061338161337c61337143613e06565b65ffffffffffff1690565b613e6d565b906133b561338e86613d9d565b6133a561339961058a565b63ffffffff9095168552565b6001600160e01b03166020840152565b6134a7565b613347565b5163ffffffff16905063ffffffff6133d961337143613e06565b91161438613308565b6133ff6133fa60001984018360005260206000200190565b6130b0565b916132d1565b50821515613201565b610597906001600160e01b03602061025f8054906801000000000000000082101561349a575b6001820180825582101561348d575b600052835191909301519190911660201b63ffffffff191663ffffffff91909116177f861f903e304638d7ce346993efec5c74f89fa879e8a2ee996ee10899acfc4ed29190910155565b613495613073565b613443565b6134a261050c565b613434565b80546134ca9168010000000000000000821015613507575b60018201815561308a565b6134f157815160209283015190921b63ffffffff191663ffffffff92909216919091179055565b634e487b7160e01b600052600060045260246000fd5b61350f61050c565b6134bf565b61025f54909181159182156136115761352b61058a565b60008152600060208201525b6135586135516132e860208401516001600160e01b031690565b9586615044565b931590816135ee575b50156135a3576105979061333061357785613d9d565b61025f600052917f861f903e304638d7ce346993efec5c74f89fa879e8a2ee996ee10899acfc4ed10190565b506105976135b661337c61337143613e06565b6135e96135c285613d9d565b6135d96135cd61058a565b63ffffffff9094168452565b6001600160e01b03166020830152565b61340e565b5163ffffffff16905063ffffffff61360861337143613e06565b91161438613561565b61025f6000526136427f861f903e304638d7ce346993efec5c74f89fa879e8a2ee996ee10899acfc4ed182016130b0565b613537565b61025f549091811591821561368b5761365e61058a565b60008152600060208201525b6135586136846132e860208401516001600160e01b031690565b9586615037565b61025f6000526136bc7f861f903e304638d7ce346993efec5c74f89fa879e8a2ee996ee10899acfc4ed182016130b0565b61366a565b90918154918215928360001461375c576136d961058a565b60008152600060208201525b6137066136ff6132e860208401516001600160e01b031690565b9687615044565b94159081613739575b5015613725576133306105979261331e86613d9d565b506105979061338161337c61337143613e06565b5163ffffffff16905063ffffffff61375361337143613e06565b9116143861370f565b6137746133fa60001983018460005260206000200190565b6136e5565b604051906060820182811067ffffffffffffffff8211176137a7575b604052602a8252604082602036910137565b6137af61050c565b613795565b6020908051156137c2570190565b6129fa613073565b6021908051600110156137c2570190565b9060209180518210156137ed57010190565b6137f5613073565b010190565b8015613808575b6000190190565b613810612c42565b613801565b1561381c57565b606460405162461bcd60e51b815260206004820152602060248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b604051906080820182811067ffffffffffffffff8211176138fe575b6040526042825260603660208401376030613896836137b4565b5360786138a2836137ca565b536041905b600182116138ba57610779915015613815565b806f181899199a1a9b1b9c1cb0b131b232b360811b600f6138eb931660108110156138f1575b1a6129cb84866137db565b906138a7565b6138f9613073565b6138e0565b61390661050c565b61387c565b91610779939161391a93613a62565b919091613942565b6005111561392c57565b634e487b7160e01b600052602160045260246000fd5b61394b81613922565b806139535750565b61395c81613922565b600181036139a95760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606490fd5b6139b281613922565b600281036139ff5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606490fd5b80613a0b600392613922565b14613a1257565b60405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608490fd5b9291907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311613ae55791608094939160ff602094604051948552168484015260408301526060820152600093849182805260015afa15613ad85781516001600160a01b03811615613ad2579190565b50600190565b50604051903d90823e3d90fd5b50505050600090600390565b613af9613b9b565b613b01613be7565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117613b68575b60405251902090565b613b7061050c565b613b5f565b604290613b80613af1565b906040519161190160f01b8352600283015260228201522090565b613ba3612ae7565b8051908115613bb3576020012090565b50506101f6548015613bc25790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b613bef612ba7565b8051908115613bff576020012090565b50506101f7548015613bc25790565b8115613c18570490565b634e487b7160e01b600052601260045260246000fd5b90808216911860011c8101809111613c435790565b610779612c42565b8015613d855780613d1e613d17613d0d613d03613cf9613cef613ce5613cdb60016107799a6000908b60801c80613d79575b508060401c80613d6c575b508060201c80613d5f575b508060101c80613d52575b508060081c80613d45575b508060041c80613d38575b508060021c80613d2b575b50821c613d24575b811c1b613cd4818b613c0e565b0160011c90565b613cd4818a613c0e565b613cd48189613c0e565b613cd48188613c0e565b613cd48187613c0e565b613cd48186613c0e565b613cd48185613c0e565b8092613c0e565b90613d8b565b8101613cc7565b6002915091019038613cbf565b6004915091019038613cb4565b6008915091019038613ca9565b6010915091019038613c9e565b6020915091019038613c93565b6040915091019038613c88565b91505060809038613c7d565b50600090565b9080821015613d98575090565b905090565b6001600160e01b0390818111613db1571690565b60405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b6064820152608490fd5b65ffffffffffff90818111613e19571690565b60405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b6064820152608490fd5b63ffffffff90818111613e7e571690565b60405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608490fd5b6001600160a01b03610779921690613f05565b91613f019183549060031b600019811b9283911b169119161790565b9055565b6001810190826000528160205260406000205415600014613f825782613f60613f47835468010000000000000000811015613f75575b6001810185558461308a565b819391549060031b600019811b9283911b169119161790565b90555491600052602052604060002055600190565b613f7d61050c565b613f3b565b505050600090565b8054908115613fb45760001991820191613fa4838361308a565b909182549160031b1b1916905555565b634e487b7160e01b600052603160045260246000fd5b600181019180600052826020526040600020549283151560001461408e5761401c61402b936000958619808201828111614081575b8354918201918211614074575b808203614031575b505050613f8a565b90600052602052604060002090565b55600190565b61405b6140559161404561406b948761308a565b90549060031b1c9283918761308a565b90613ee5565b8590600052602052604060002090565b55388080614014565b61407c612c42565b61400c565b614089612c42565b613fff565b50505050600090565b1561409e57565b60405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608490fd5b92919261412660ff60005460081c166141218161423e565b61423e565b805167ffffffffffffffff8111614231575b61414c8161414760cc54612aad565b61429e565b602080601f83116001146141a457509481614191926105979697600091614199575b508160011b916000199060031b1c19161760cc555b61418c84614464565b614658565b61157f6146be565b90508401513861416e565b60cc60005290601f1983167f47197230e1e4b29fc0bd84d7d78966c0925452aff72a2a121538b102457e9ebe926000905b82821061421957505092610597969792600192826141919610614200575b5050811b0160cc55614183565b86015160001960f88460031b161c1916905538806141f3565b80600185968294968a015181550195019301906141d5565b61423961050c565b614138565b1561424557565b60405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608490fd5b601f81116142aa575050565b60009060cc82527f47197230e1e4b29fc0bd84d7d78966c0925452aff72a2a121538b102457e9ebe906020601f850160051c83019410614305575b601f0160051c01915b8281106142fa57505050565b8181556001016142ee565b90925082906142e5565b601f811161431b575050565b6000906101f882527f8266c9cfd8dabe6f78455c38dd0de8582c4fa8f7b2e2a0cae9fbe2a3861fc0c6906020601f850160051c83019410614377575b601f0160051c01915b82811061436c57505050565b818155600101614360565b9092508290614357565b601f811161438d575050565b60009060cd82527f83978b4c69c48dd978ab43fe30f077615294f938fb7f936d9eb340e51ea7db2e906020601f850160051c830194106143e8575b601f0160051c01915b8281106143dd57505050565b8181556001016143d1565b90925082906143c8565b601f81116143fe575050565b6000906101f982527f29eba5f30ca2030a69ed2d7f74871c83bbc526b071320256f127653c7dfff4e9906020601f850160051c8301941061445a575b601f0160051c01915b82811061444f57505050565b818155600101614443565b909250829061443a565b90815167ffffffffffffffff811161454f575b61448b8161448660cd54612aad565b614381565b602080601f83116001146144c757508192936000926144bc575b50508160011b916000199060031b1c19161760cd55565b0151905038806144a5565b90601f198316946144fa60cd6000527f83978b4c69c48dd978ab43fe30f077615294f938fb7f936d9eb340e51ea7db2e90565b926000905b87821061453757505083600195961061451e575b505050811b0160cd55565b015160001960f88460031b161c19169055388080614513565b806001859682949686015181550195019301906144ff565b61455761050c565b614477565b90815167ffffffffffffffff811161464b575b6101f990614586816145818454612aad565b6143f2565b602080601f83116001146145c25750819293946000926145b7575b50508160011b916000199060031b1c1916179055565b0151905038806145a1565b90601f198316956145f66101f96000527f29eba5f30ca2030a69ed2d7f74871c83bbc526b071320256f127653c7dfff4e990565b926000905b8882106146335750508360019596971061461a575b505050811b019055565b015160001960f88460031b161c19169055388080614610565b806001859682949686015181550195019301906145fb565b61465361050c565b61456f565b61466d60ff60005460081c166141218161423e565b8015614679576101c355565b60405162461bcd60e51b815260206004820152601560248201527f45524332304361707065643a20636170206973203000000000000000000000006044820152606490fd5b61059760ff60005460081c1661423e565b6001600160a01b038116151580614782575b6146ef575b50610597614fd2565b6001600160a01b031660009081527ff831354d389c74ce229bed14fb8120f22957d04b9ff05ce59b8a2631d7537a18602052604090205460ff1661473357386146e6565b60405162461bcd60e51b815260206004820152602160248201527f536f77616b6145524332303a207472616e73666572206e6f7420616c6c6f77656044820152601960fa1b6064820152608490fd5b5060006146e1565b906001600160a01b03808316151591826147ae575b50506146ef5750610597614fd2565b1615159050388061479f565b61025d6020527fc2e37eb2a2c05b6e450c98b87ad0501492e48962d4d9a01e70045b922965061f546001600160a01b0391821660009081526040902054610597939290811691166131e8565b90610597916001600160a01b0380911660005261025d6020528060406000205416906000805260406000205416906131e8565b9061059792916001600160a01b0380911660005261025d602052808060406000205416921660005260406000205416906131e8565b1561487557565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608490fd5b61281f906001600160a01b0360407f81c164dbf4e1c5e1bbccef8631cb4e61693e124bc8292c36395b37bc78deba45600090808252606560205261490e60018484200154612882565b808252606560205260ff61280786858520906001600160a01b0316600052602052604060002090565b61281f906001600160a01b0360407f81c164dbf4e1c5e1bbccef8631cb4e61693e124bc8292c36395b37bc78deba45600090808252606560205261498060018484200154612882565b808252606560205260ff612a3986858520906001600160a01b0316600052602052604060002090565b60019060001981146149b9570190565b6129fa612c42565b60209181518110156149d6575b60051b010190565b6149de613073565b6149ce565b906149ed826148c5565b60cb54818101808211614b14575b6101c35410614acf576001600160a01b038316908115614a8a57614a86936111e592614a2e6111ab8680956111a6614fd2565b614a4b826001600160a01b031660005260c9602052604060002090565b8054840190556040518381526000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9080602081016111dd565b5050565b60405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606490fd5b60405162461bcd60e51b815260206004820152601960248201527f45524332304361707065643a20636170206578636565646564000000000000006044820152606490fd5b614b1c612c42565b6149fb565b15614b2857565b60405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201527f766572666c6f77696e6720766f746573000000000000000000000000000000006064820152608490fd5b91909160005b8151811015614bd3578061222a6001600160a01b03614bbb614bce94866149c1565b5116614bc783886149c1565b51906149e3565b614b99565b50509050565b9190614bec60ff60005460081c1661423e565b825167ffffffffffffffff8111614cff575b6101f890614c1581614c108454612aad565b61430f565b602080601f8311600114614c6d57508190614c4c9596600092614c62575b50508160011b916000199060031b1c191617905561455c565b614c5760006101f655565b61059760006101f755565b015190503880614c33565b90601f19831696614ca16101f86000527f8266c9cfd8dabe6f78455c38dd0de8582c4fa8f7b2e2a0cae9fbe2a3861fc0c690565b926000905b898210614ce757505090839291600194614c4c989910614cce575b505050811b01905561455c565b015160001960f88460031b161c19169055388080614cc1565b80600185968294968601518155019501930190614ca6565b614d0761050c565b614bfe565b90614d2260ff60005460081c166141218161423e565b815167ffffffffffffffff8111614e28575b614d438161414760cc54612aad565b602080601f8311600114614d9557508190614d7a94600092614d8a575b50508160011b916000199060031b1c19161760cc55614464565b614d82614e35565b610597614e53565b015190503880614d60565b919293601f198416614dc960cc6000527f47197230e1e4b29fc0bd84d7d78966c0925452aff72a2a121538b102457e9ebe90565b936000905b828210614e10575050916001939185614d7a97969410614df7575b505050811b0160cc55614464565b015160001960f88460031b161c19169055388080614de9565b80600186978294978701518155019601940190614dce565b614e3061050c565b614d34565b614e4660ff60005460081c1661423e565b61012d805460ff19169055565b614f0e6000614e6860ff825460081c1661423e565b808052602060658152609760409160ff614e9733858720906001600160a01b0316600052602052604060002090565b541615614f75575b838052818152614eb133848620613f05565b507f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a68085526065825260ff614efb33868820906001600160a01b0316600052602052604060002090565b541615614f18575b845252339120613f05565b50610597336127b3565b80855260658252614f3e33858720906001600160a01b0316600052602052604060002090565b805460ff191660011790553380827f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8880a4614f03565b83805260658152614f9b33848620906001600160a01b0316600052602052604060002090565b805460ff191660011790553380857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4614e9f565b60ff61012d5416614fdf57565b60405162461bcd60e51b815260206004820152602a60248201527f45524332305061757361626c653a20746f6b656e207472616e736665722077686044820152691a5b19481c185d5cd95960b21b6064820152608490fd5b908103908111613c435790565b908101809111613c43579056fe65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862aa2646970667358221220e136f94c12f6ff64bdaf67f7e0d9bca9379f0e0837ddd06fe4b90ccb7b65852b64736f6c63430008110033