@keep-network/tbtc-v2 1.4.0-dev.0 → 1.4.0-dev.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/artifacts/BLS.json +1 -1
- package/artifacts/Bank.json +3 -3
- package/artifacts/BeaconAuthorization.json +1 -1
- package/artifacts/BeaconDkg.json +1 -1
- package/artifacts/BeaconDkgValidator.json +1 -1
- package/artifacts/BeaconInactivity.json +1 -1
- package/artifacts/BeaconSortitionPool.json +3 -3
- package/artifacts/Bridge.json +5 -5
- package/artifacts/BridgeGovernance.json +2 -2
- package/artifacts/BridgeGovernanceParameters.json +2 -2
- package/artifacts/Deposit.json +2 -2
- package/artifacts/DepositSweep.json +2 -2
- package/artifacts/DonationVault.json +3 -3
- package/artifacts/EcdsaDkgValidator.json +1 -1
- package/artifacts/EcdsaInactivity.json +1 -1
- package/artifacts/EcdsaSortitionPool.json +3 -3
- package/artifacts/Fraud.json +2 -2
- package/artifacts/KeepRegistry.json +1 -1
- package/artifacts/KeepStake.json +2 -2
- package/artifacts/KeepToken.json +2 -2
- package/artifacts/KeepTokenStaking.json +1 -1
- package/artifacts/LightRelay.json +3 -3
- package/artifacts/LightRelayMaintainerProxy.json +3 -3
- package/artifacts/MaintainerProxy.json +3 -3
- package/artifacts/MovingFunds.json +2 -2
- package/artifacts/NuCypherStakingEscrow.json +1 -1
- package/artifacts/NuCypherToken.json +2 -2
- package/artifacts/RandomBeacon.json +2 -2
- package/artifacts/RandomBeaconChaosnet.json +2 -2
- package/artifacts/RandomBeaconGovernance.json +2 -2
- package/artifacts/Redemption.json +2 -2
- package/artifacts/ReimbursementPool.json +2 -2
- package/artifacts/T.json +2 -2
- package/artifacts/TBTC.json +3 -3
- package/artifacts/TBTCToken.json +3 -3
- package/artifacts/TBTCVault.json +23 -23
- package/artifacts/TokenStaking.json +1 -1
- package/artifacts/TokenholderGovernor.json +9 -9
- package/artifacts/TokenholderTimelock.json +8 -8
- package/artifacts/VendingMachine.json +3 -3
- package/artifacts/VendingMachineKeep.json +1 -1
- package/artifacts/VendingMachineNuCypher.json +1 -1
- package/artifacts/VendingMachineV2.json +3 -3
- package/artifacts/VendingMachineV3.json +3 -3
- package/artifacts/WalletCoordinator.json +5 -5
- package/artifacts/WalletRegistry.json +5 -5
- package/artifacts/WalletRegistryGovernance.json +2 -2
- package/artifacts/Wallets.json +2 -2
- package/artifacts/solcInputs/{b9b4ee8a11a84e1668f3a48e30a96de7.json → 1c7cac85dbeb82f81e7a7bc7e98aa32f.json} +2 -2
- package/build/contracts/GovernanceUtils.sol/GovernanceUtils.dbg.json +1 -1
- package/build/contracts/bank/Bank.sol/Bank.dbg.json +1 -1
- package/build/contracts/bank/IReceiveBalanceApproval.sol/IReceiveBalanceApproval.dbg.json +1 -1
- package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.dbg.json +1 -1
- package/build/contracts/bridge/Bridge.sol/Bridge.dbg.json +1 -1
- package/build/contracts/bridge/BridgeGovernanceParameters.sol/BridgeGovernanceParameters.dbg.json +1 -1
- package/build/contracts/bridge/BridgeState.sol/BridgeState.dbg.json +1 -1
- package/build/contracts/bridge/Deposit.sol/Deposit.dbg.json +1 -1
- package/build/contracts/bridge/DepositSweep.sol/DepositSweep.dbg.json +1 -1
- package/build/contracts/bridge/EcdsaLib.sol/EcdsaLib.dbg.json +1 -1
- package/build/contracts/bridge/Fraud.sol/Fraud.dbg.json +1 -1
- package/build/contracts/bridge/Heartbeat.sol/Heartbeat.dbg.json +1 -1
- package/build/contracts/bridge/IRelay.sol/IRelay.dbg.json +1 -1
- package/build/contracts/bridge/MovingFunds.sol/MovingFunds.dbg.json +1 -1
- package/build/contracts/bridge/Redemption.sol/OutboundTx.dbg.json +1 -1
- package/build/contracts/bridge/Redemption.sol/Redemption.dbg.json +1 -1
- package/build/contracts/bridge/VendingMachine.sol/VendingMachine.dbg.json +1 -1
- package/build/contracts/bridge/VendingMachineV2.sol/VendingMachineV2.dbg.json +1 -1
- package/build/contracts/bridge/VendingMachineV3.sol/VendingMachineV3.dbg.json +1 -1
- package/build/contracts/bridge/WalletCoordinator.sol/WalletCoordinator.dbg.json +1 -1
- package/build/contracts/bridge/WalletCoordinator.sol/WalletCoordinator.json +2 -2
- package/build/contracts/bridge/Wallets.sol/Wallets.dbg.json +1 -1
- package/build/contracts/l2/L2TBTC.sol/L2TBTC.dbg.json +1 -1
- package/build/contracts/l2/L2WormholeGateway.sol/IWormholeTokenBridge.dbg.json +1 -1
- package/build/contracts/l2/L2WormholeGateway.sol/L2WormholeGateway.dbg.json +1 -1
- package/build/contracts/maintainer/MaintainerProxy.sol/MaintainerProxy.dbg.json +1 -1
- package/build/contracts/relay/LightRelay.sol/ILightRelay.dbg.json +1 -1
- package/build/contracts/relay/LightRelay.sol/LightRelay.dbg.json +1 -1
- package/build/contracts/relay/LightRelay.sol/RelayUtils.dbg.json +1 -1
- package/build/contracts/relay/LightRelayMaintainerProxy.sol/LightRelayMaintainerProxy.dbg.json +1 -1
- package/build/contracts/token/TBTC.sol/TBTC.dbg.json +1 -1
- package/build/contracts/vault/DonationVault.sol/DonationVault.dbg.json +1 -1
- package/build/contracts/vault/IVault.sol/IVault.dbg.json +1 -1
- package/build/contracts/vault/TBTCOptimisticMinting.sol/TBTCOptimisticMinting.dbg.json +1 -1
- package/build/contracts/vault/TBTCVault.sol/TBTCVault.dbg.json +1 -1
- package/contracts/bridge/WalletCoordinator.sol +2 -2
- package/export/artifacts/contracts/bridge/VendingMachine.sol/VendingMachine.json +6 -6
- package/export/artifacts/contracts/bridge/VendingMachineV2.sol/VendingMachineV2.json +6 -6
- package/export/artifacts/contracts/bridge/VendingMachineV3.sol/VendingMachineV3.json +6 -6
- package/export/artifacts/contracts/bridge/WalletCoordinator.sol/WalletCoordinator.json +7 -7
- package/export/artifacts/contracts/test/GoerliLightRelay.sol/GoerliLightRelay.json +114 -78
- package/export/artifacts/contracts/test/HeartbeatStub.sol/HeartbeatStub.json +2 -2
- package/export/artifacts/contracts/test/LightRelayStub.sol/LightRelayStub.json +2 -2
- package/export/artifacts/contracts/test/ReceiveApprovalStub.sol/ReceiveApprovalStub.json +7 -7
- package/export/artifacts/contracts/test/SystemTestRelay.sol/SystemTestRelay.json +14 -14
- package/export/artifacts/contracts/test/TestERC20.sol/TestERC20.json +6 -6
- package/export/artifacts/contracts/test/TestERC721.sol/TestERC721.json +8 -8
- package/export/artifacts/contracts/test/TestEcdsaLib.sol/TestEcdsaLib.json +2 -2
- package/export/artifacts/contracts/test/WormholeBridgeStub.sol/WormholeBridgeStub.json +33 -33
- package/export/artifacts/contracts/token/TBTC.sol/TBTC.json +2 -2
- package/export/artifacts/contracts/vault/DonationVault.sol/DonationVault.json +11 -11
- package/export/artifacts/contracts/vault/TBTCVault.sol/TBTCVault.json +135 -135
- package/export/typechain/factories/GoerliLightRelay__factory.js +14 -1
- package/export/typechain/factories/WalletCoordinator__factory.js +1 -1
- package/export.json +274 -0
- package/package.json +1 -1
|
@@ -768,8 +768,8 @@
|
|
|
768
768
|
"type": "function"
|
|
769
769
|
}
|
|
770
770
|
],
|
|
771
|
-
"bytecode": "0x608060405234801561001057600080fd5b5061355c806100206000396000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c80639039bc1c116100ee578063c09975cd11610097578063f2fde38b11610071578063f2fde38b146103f5578063f5aceab614610408578063f74b37bd1461041b578063fbd6d77e1461043257600080fd5b8063c09975cd146103bc578063c4d66de8146103cf578063e78cea92146103e257600080fd5b8063aec32099116100c8578063aec3209914610376578063b39e101614610399578063bc20a080146103ac57600080fd5b80639039bc1c1461031f578063a34fff5914610332578063acaac7051461034957600080fd5b8063715018a61161015b5780637fbf9b39116101355780637fbf9b39146102bd57806385a0924c146102d45780638cb5a0c0146102e75780638da5cb5b146102fa57600080fd5b8063715018a61461027f5780637405d7bf146102875780637b35b4e6146102aa57600080fd5b806334173c2d1161018c57806334173c2d146102445780635486032e146102595780636348c4391461026c57600080fd5b806308553292146101b35780632c259d2b146101eb57806331d8c6221461022c575b600080fd5b609a546101d1906a0100000000000000000000900463ffffffff1681565b60405163ffffffff90911681526020015b60405180910390f35b61021e6101f9366004612722565b60986020526000908152604090205463ffffffff811690640100000000900460ff1682565b6040516101e2929190612753565b609a546101d190640100000000900463ffffffff1681565b61025761025236600461278b565b610445565b005b610257610267366004612820565b6104ec565b61025761027a36600461278b565b6105f2565b6102576107e9565b61029a6102953660046128b0565b6107fd565b60405190151581526020016101e2565b6102576102b836600461294c565b610ec3565b6099546101d190600160a01b900463ffffffff1681565b6102576102e2366004612969565b610f97565b6102576102f536600461294c565b611049565b6033546001600160a01b03165b6040516001600160a01b0390911681526020016101e2565b61025761032d366004612722565b611128565b6099546101d190600160c01b900463ffffffff1681565b609a546103639068010000000000000000900461ffff1681565b60405161ffff90911681526020016101e2565b61029a61038436600461294c565b60976020526000908152604090205460ff1681565b6102576103a73660046129a2565b6111e0565b609a546101d19063ffffffff1681565b606554610307906001600160a01b031681565b6102576103dd36600461294c565b61128a565b609954610307906001600160a01b031681565b61025761040336600461294c565b6114c4565b6102576104163660046129a2565b611554565b6099546101d190600160e01b900463ffffffff1681565b61025761044036600461294c565b611705565b60005a90506104558484846105f2565b6065546099546001600160a01b0390911690637ad226dc90600160c01b900463ffffffff165a61048590856129f5565b61048f9190612a08565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b1580156104ce57600080fd5b505af11580156104e2573d6000803e3d6000fd5b5050505050505050565b6104f46117e8565b609980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160e01b63ffffffff88811691820292909217909255609a805487831667ffffffffffffffff199091168117640100000000888516908102919091176dffffffffffff000000000000000019166801000000000000000061ffff89169081026dffffffff000000000000000000001916919091176a01000000000000000000009588169586021790935560408051958652602086019290925290840152606083015260808201527fc36fe6b9d74f864b5e345edc3435eb451a80669ec78c8357cc15e3a1d3897a739060a00160405180910390a15050505050565b3360009081526097602052604090205460ff166106565760405162461bcd60e51b815260206004820152601b60248201527f43616c6c6572206973206e6f74206120636f6f7264696e61746f72000000000060448201526064015b60405180910390fd5b6001600160601b03198316600090815260986020526040902054839063ffffffff1642116106b65760405162461bcd60e51b815260206004820152600d60248201526c15d85b1b195d081b1bd8dad959609a1b604482015260640161064d565b6106c08383611842565b61070c5760405162461bcd60e51b815260206004820152601d60248201527f4e6f7420612076616c696420686561727462656174206d657373616765000000604482015260640161064d565b60408051808201909152609954819061073290600160a01b900463ffffffff1642612a1b565b63ffffffff168152602001600190526001600160601b0319851660009081526098602090815260409091208251815463ffffffff90911663ffffffff19821681178355928401519192839164ffffffffff19161764010000000083600581111561079e5761079e61273d565b0217905550506040513391507f46f4f1fc7a1c5c364372f2e4398c3657d5e5cc35ea286f9972459376b29b1384906107db90879087908790612a3f565b60405180910390a250505050565b6107f16117e8565b6107fb60006118cc565b565b600060016099546001600160a01b031663e65e19d561081f6020880188612722565b6040516001600160e01b031960e084901b1681526001600160601b0319909116600482015260240161012060405180830381865afa158015610865573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108899190612b3c565b60e00151600581111561089e5761089e61273d565b146108eb5760405162461bcd60e51b815260206004820152601b60248201527f57616c6c6574206973206e6f7420696e204c6976652073746174650000000000604482015260640161064d565b60006108fa6020860186612bdf565b9050116109495760405162461bcd60e51b815260206004820152601860248201527f53776565702062656c6f7720746865206d696e2073697a650000000000000000604482015260640161064d565b609a5468010000000000000000900461ffff166109696020860186612bdf565b905011156109b95760405162461bcd60e51b815260206004820152601a60248201527f5377656570206578636565647320746865206d61782073697a65000000000000604482015260640161064d565b816109c76020860186612bdf565b905014610a3c5760405162461bcd60e51b815260206004820152602e60248201527f45616368206465706f736974206b6579206d7573742068617665206d6174636860448201527f696e672065787472612064617461000000000000000000000000000000000000606482015260840161064d565b610a586040850135610a516020870187612bdf565b905061192b565b6000805b610a696020870187612bdf565b9050811015610eb5576000610a816020880188612bdf565b83818110610a9157610a91612c29565b905060400201803603810190610aa79190612c3f565b90506000868684818110610abd57610abd612c29565b9050602002810190610acf9190612c95565b610ad890612d83565b60995483516020808601516040519495506000946001600160a01b039094169363b02c43d093610b21939092910191825260e01b6001600160e01b031916602082015260240190565b60408051808303601f1901815290829052805160209091012060e083901b6001600160e01b0319168252600482015260240160c060405180830381865afa158015610b70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b949190612e85565b9050806040015163ffffffff16600003610bf05760405162461bcd60e51b815260206004820152601460248201527f4465706f736974206e6f742072657665616c6564000000000000000000000000604482015260640161064d565b609a546040820151610c089163ffffffff1690612a1b565b63ffffffff164211610c5c5760405162461bcd60e51b815260206004820181905260248201527f4465706f736974206d696e20616765206e6f7420616368696576656420796574604482015260640161064d565b60a081015163ffffffff1615610cb45760405162461bcd60e51b815260206004820152601560248201527f4465706f73697420616c72656164792073776570740000000000000000000000604482015260640161064d565b610cc383826000015184611ad6565b608082015160009060d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c17609a54909150610d0c90640100000000900463ffffffff1682612f2c565b63ffffffff164210610d865760405162461bcd60e51b815260206004820152602d60248201527f4465706f73697420726566756e6420736166657479206d617267696e2069732060448201527f6e6f742070726573657276656400000000000000000000000000000000000000606482015260840161064d565b610d9360208b018b612722565b6bffffffffffffffffffffffff191683604001516bffffffffffffffffffffffff191614610e295760405162461bcd60e51b815260206004820152602660248201527f4465706f73697420636f6e74726f6c6c656420627920646966666572656e742060448201527f77616c6c65740000000000000000000000000000000000000000000000000000606482015260840161064d565b84600003610e3957816060015195505b856001600160a01b031682606001516001600160a01b031614610e9e5760405162461bcd60e51b815260206004820152601f60248201527f4465706f736974207461726765747320646966666572656e74207661756c7400604482015260640161064d565b505050508080610ead90612f49565b915050610a5c565b5060019150505b9392505050565b33610ed66033546001600160a01b031690565b6001600160a01b031614610f2c5760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161064d565b6040516001600160a01b03821681527f0e2d2343d31b085b7c4e56d1c8a6ec79f7ab07460386f1c9a1756239fe2533ac9060200160405180910390a16065805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b610f9f6117e8565b609980547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff16600160a01b63ffffffff8581169182027fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff1692909217600160c01b928516928302179092556040805192835260208301919091527fe67c0a182190bf283264290d7208533d5936483c98baee174eeac036b081360a91015b60405180910390a15050565b6110516117e8565b6001600160a01b03811660009081526097602052604090205460ff166110df5760405162461bcd60e51b815260206004820152602160248201527f546869732061646472657373206973206e6f74206120636f6f7264696e61746f60448201527f7200000000000000000000000000000000000000000000000000000000000000606482015260840161064d565b6001600160a01b038116600081815260976020526040808220805460ff19169055517fcf15831020102bbbe0547b0c3460aa49715f2646e0911760d2b069e0fb2f62a19190a250565b6111306117e8565b60408051808201909152600080825260208201526001600160601b0319821660009081526098602090815260409091208251815463ffffffff90911663ffffffff19821681178355928401519192839164ffffffffff1916176401000000008360058111156111a1576111a161273d565b0217905550506040516001600160601b0319831691507f5ea2f0397ee52fe8e2e6460e92b334c996f3580dc76c022d41b290cb985f41e690600090a250565b60005a90506111ee82611554565b606554609a546001600160a01b0390911690637ad226dc906a0100000000000000000000900463ffffffff165a61122590856129f5565b61122f9190612a08565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b15801561126e57600080fd5b505af1158015611282573d6000803e3d6000fd5b505050505050565b600054610100900460ff16158080156112aa5750600054600160ff909116105b806112c45750303b1580156112c4575060005460ff166001145b6113365760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161064d565b6000805460ff191660011790558015611359576000805461ff0019166101001790555b611361611d2a565b6099805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038416908117909155604080517fa9de2f3a000000000000000000000000000000000000000000000000000000008152905163a9de2f3a916004808201926080929091908290030181865afa1580156113e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114049190612f62565b6065805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03928316179055609980549091167d38400000138800000e1000000000000000000000000000000000000000001790555050609a80546dffffffffffffffffffffffffffff19166b138800050001518000001c201790555080156114c0576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200161103d565b5050565b6114cc6117e8565b6001600160a01b0381166115485760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161064d565b611551816118cc565b50565b3360009081526097602052604090205460ff166115b35760405162461bcd60e51b815260206004820152601b60248201527f43616c6c6572206973206e6f74206120636f6f7264696e61746f720000000000604482015260640161064d565b6115c06020820182612722565b6001600160601b0319811660009081526098602052604090205463ffffffff16421161161e5760405162461bcd60e51b815260206004820152600d60248201526c15d85b1b195d081b1bd8dad959609a1b604482015260640161064d565b60408051808201909152609954819061164490600160e01b900463ffffffff1642612a1b565b63ffffffff16815260200160029052609860006116646020860186612722565b6001600160601b03191681526020808201929092526040016000208251815463ffffffff90911663ffffffff19821681178355928401519192839164ffffffffff1916176401000000008360058111156116c0576116c061273d565b0217905550506040513391507f80936884707d12c5d8bb32b32fa91535e4f4200316fb138241181fb647d39fa4906116f99085906130a6565b60405180910390a25050565b61170d6117e8565b6001600160a01b03811660009081526097602052604090205460ff161561179c5760405162461bcd60e51b815260206004820152602560248201527f54686973206164647265737320697320616c7265616479206120636f6f72646960448201527f6e61746f72000000000000000000000000000000000000000000000000000000606482015260840161064d565b6001600160a01b038116600081815260976020526040808220805460ff19166001179055517f56e6c5206d2baab7a01569b19d84b5963ca9f96e10f55076b5e5987fbf780cf59190a250565b6033546001600160a01b031633146107fb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161064d565b600060108214611854575060006118c6565b611898600084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050611d9d9050565b77ffffffffffffffffffffffffffffffffffffffffffffffff19908116146118c2575060006118c6565b5060015b92915050565b603380546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600082116119a15760405162461bcd60e51b815260206004820152602760248201527f50726f706f736564207472616e73616374696f6e206665652063616e6e6f742060448201527f6265207a65726f00000000000000000000000000000000000000000000000000606482015260840161064d565b60006119ad8284613170565b90506000826119bc83866129f5565b6119c69190613184565b90506000609960009054906101000a90046001600160a01b03166001600160a01b031663c42b64d06040518163ffffffff1660e01b8152600401608060405180830381865afa158015611a1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a419190613198565b5092505067ffffffffffffffff82169050611a5c8484612a08565b1115611acf5760405162461bcd60e51b8152602060048201526024808201527f50726f706f736564207472616e73616374696f6e2066656520697320746f6f2060448201527f6869676800000000000000000000000000000000000000000000000000000000606482015260840161064d565b5050505050565b805180516020808301516040808501516060909501519051600095611b1895611b0495909493919201613213565b604051602081830303815290604052611dac565b84519091508114611b915760405162461bcd60e51b815260206004820152602960248201527f457874726120696e666f2066756e64696e67207478206861736820646f65732060448201527f6e6f74206d617463680000000000000000000000000000000000000000000000606482015260840161064d565b6000838360200151846040015185606001518660800151604051602001611bbc959493929190613249565b60405160208183030381529060405290506000611bf4866020015163ffffffff16856000015160400151611dd390919063ffffffff16565b90506000611c0182611fb5565b905080516014148015611c395750611c1883611fcf565b6001600160601b031916611c2d826000611d9d565b6001600160601b031916145b15611c475750505050505050565b80516020148015611cae5750600283604051611c6391906134cf565b602060405180830381855afa158015611c80573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611ca391906134db565b611cac82611ff6565b145b15611cbc5750505050505050565b60405162461bcd60e51b815260206004820152602f60248201527f457874726120696e666f2066756e64696e67206f75747075742073637269707460448201527f20646f6573206e6f74206d617463680000000000000000000000000000000000606482015260840161064d565b600054610100900460ff16611d955760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161064d565b6107fb612011565b6000610ebc8383016020015190565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b6060600080611de185612085565b909250905060018201611e5c5760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e7420706172736960448201527f6e67000000000000000000000000000000000000000000000000000000000000606482015260840161064d565b808410611eab5760405162461bcd60e51b815260206004820152601160248201527f566f75742072656164206f76657272756e000000000000000000000000000000604482015260640161064d565b600080611eb9846001612a08565b905060005b86811015611f4157611ed0888361209c565b92506000198303611f235760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b6579000000000000604482015260640161064d565b611f2d8383612a08565b915080611f3981612f49565b915050611ebe565b50611f4c878261209c565b91506000198203611f9f5760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b6579000000000000604482015260640161064d565b611faa878284612109565b979650505050505050565b60606118c6826008808551611fca91906129f5565b6121d6565b60006020600083516020850160025afa50602060006020600060035afa5050600c51919050565b6000815160000361200957506000919050565b506020015190565b600054610100900460ff1661207c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161064d565b6107fb336118cc565b6000806120938360006124db565b91509150915091565b60006120a9826009612a08565b835110156120ba57506000196118c6565b6000806120d1856120cc866008612a08565b6124db565b9092509050600182016120ea57600019925050506118c6565b806120f6836009612a08565b6121009190612a08565b95945050505050565b6060816000036121285750604080516020810190915260008152610ebc565b60006121348385612a08565b90508381118015612146575080855110155b6121925760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e647300000000000000000000000000604482015260640161064d565b604051915082604083010160405282825283850182038460208701018481015b808210156121cb578151838301526020820191506121b2565b505050509392505050565b606060008484815181106121ec576121ec612c29565b016020015160f81c9050826122028260016134f4565b60ff1614612220575050604080516020810190915260008152610ebc565b8461222c856001612a08565b8151811061223c5761223c612c29565b016020015160f81c6000036122fb5760028160ff16101561226d575050604080516020810190915260008152610ebc565b60008561227b866002612a08565b8151811061228b5761228b612c29565b016020015160f81c90506122a060028361350d565b60ff16811415806122be5750806020141580156122be575080601414155b156122dc576040518060200160405280600081525092505050610ebc565b6122f26122ea866003612a08565b879083612109565b92505050610ebc565b60006123078686611d9d565b90507fffffff000000000000000000000000000000000000000000000000000000000081167f1976a900000000000000000000000000000000000000000000000000000000000361241b578561235e866003612a08565b8151811061236e5761236e612c29565b60209101015160f81c60141415806123e657506123a160026123908688612a08565b61239a91906129f5565b8790611d9d565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f88ac00000000000000000000000000000000000000000000000000000000000014155b15612404576040518060200160405280600081525092505050610ebc565b6122f2612412866004612a08565b87906014612109565b7fffffff000000000000000000000000000000000000000000000000000000000081167f17a9140000000000000000000000000000000000000000000000000000000000036124c2578560016124718688612a08565b61247b91906129f5565b8151811061248b5761248b612c29565b60209101015160f81c6087146124b4576040518060200160405280600081525092505050610ebc565b6122f2612412866003612a08565b5050506040805160208101909152600081529392505050565b60008060006124ea858561267f565b90508060ff1660000361251f57600085858151811061250b5761250b612c29565b016020015190935060f81c91506126789050565b8361252b8260016134f4565b60ff166125389190612a08565b8551101561254f5760001960009250925050612678565b60008160ff166002036125935761258861257461256d876001612a08565b8890611d9d565b62ffff0060e882901c1660f89190911c1790565b61ffff16905061266e565b8160ff166004036125e2576125d56125af61256d876001612a08565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b63ffffffff16905061266e565b8160ff1660080361266e576126616125fe61256d876001612a08565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b600082828151811061269357612693612c29565b016020015160f81c60ff036126aa575060086118c6565b8282815181106126bc576126bc612c29565b016020015160f81c60fe036126d3575060046118c6565b8282815181106126e5576126e5612c29565b016020015160f81c60fd036126fc575060026118c6565b50600092915050565b80356001600160601b03198116811461271d57600080fd5b919050565b60006020828403121561273457600080fd5b610ebc82612705565b634e487b7160e01b600052602160045260246000fd5b63ffffffff83168152604081016006831061277e57634e487b7160e01b600052602160045260246000fd5b8260208301529392505050565b6000806000604084860312156127a057600080fd5b6127a984612705565b9250602084013567ffffffffffffffff808211156127c657600080fd5b818601915086601f8301126127da57600080fd5b8135818111156127e957600080fd5b8760208285010111156127fb57600080fd5b6020830194508093505050509250925092565b63ffffffff8116811461155157600080fd5b600080600080600060a0868803121561283857600080fd5b85356128438161280e565b945060208601356128538161280e565b935060408601356128638161280e565b9250606086013561ffff8116811461287a57600080fd5b9150608086013561288a8161280e565b809150509295509295909350565b6000608082840312156128aa57600080fd5b50919050565b6000806000604084860312156128c557600080fd5b833567ffffffffffffffff808211156128dd57600080fd5b6128e987838801612898565b945060208601359150808211156128ff57600080fd5b818601915086601f83011261291357600080fd5b81358181111561292257600080fd5b8760208260051b85010111156127fb57600080fd5b6001600160a01b038116811461155157600080fd5b60006020828403121561295e57600080fd5b8135610ebc81612937565b6000806040838503121561297c57600080fd5b82356129878161280e565b915060208301356129978161280e565b809150509250929050565b6000602082840312156129b457600080fd5b813567ffffffffffffffff8111156129cb57600080fd5b6129d784828501612898565b949350505050565b634e487b7160e01b600052601160045260246000fd5b818103818111156118c6576118c66129df565b808201808211156118c6576118c66129df565b63ffffffff818116838216019080821115612a3857612a386129df565b5092915050565b6bffffffffffffffffffffffff198416815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f1916010192915050565b634e487b7160e01b600052604160045260246000fd5b604051610120810167ffffffffffffffff81118282101715612abe57612abe612a84565b60405290565b60405160a0810167ffffffffffffffff81118282101715612abe57612abe612a84565b6040516080810167ffffffffffffffff81118282101715612abe57612abe612a84565b805167ffffffffffffffff8116811461271d57600080fd5b805161271d8161280e565b80516006811061271d57600080fd5b60006101208284031215612b4f57600080fd5b612b57612a9a565b8251815260208301516020820152612b7160408401612b0a565b6040820152612b8260608401612b22565b6060820152612b9360808401612b22565b6080820152612ba460a08401612b22565b60a0820152612bb560c08401612b22565b60c0820152612bc660e08401612b2d565b60e0820152610100928301519281019290925250919050565b6000808335601e19843603018112612bf657600080fd5b83018035915067ffffffffffffffff821115612c1157600080fd5b6020019150600681901b360382131561267857600080fd5b634e487b7160e01b600052603260045260246000fd5b600060408284031215612c5157600080fd5b6040516040810181811067ffffffffffffffff82111715612c7457612c74612a84565b604052823581526020830135612c898161280e565b60208201529392505050565b60008235609e19833603018112612cab57600080fd5b9190910192915050565b80356001600160e01b03198116811461271d57600080fd5b600082601f830112612cde57600080fd5b813567ffffffffffffffff80821115612cf957612cf9612a84565b604051601f8301601f19908116603f01168101908282118183101715612d2157612d21612a84565b81604052838152866020858801011115612d3a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b803577ffffffffffffffffffffffffffffffffffffffffffffffff198116811461271d57600080fd5b600060a08236031215612d9557600080fd5b612d9d612ac4565b823567ffffffffffffffff80821115612db557600080fd5b818501915060808236031215612dca57600080fd5b612dd2612ae7565b612ddb83612cb5565b8152602083013582811115612def57600080fd5b612dfb36828601612ccd565b602083015250604083013582811115612e1357600080fd5b612e1f36828601612ccd565b604083015250612e3160608401612cb5565b6060820152835250612e47905060208401612d5a565b6020820152612e5860408401612705565b6040820152612e6960608401612705565b6060820152612e7a60808401612cb5565b608082015292915050565b600060c08284031215612e9757600080fd5b60405160c0810181811067ffffffffffffffff82111715612eba57612eba612a84565b6040528251612ec881612937565b8152612ed660208401612b0a565b60208201526040830151612ee98161280e565b60408201526060830151612efc81612937565b6060820152612f0d60808401612b0a565b608082015260a0830151612f208161280e565b60a08201529392505050565b63ffffffff828116828216039080821115612a3857612a386129df565b600060018201612f5b57612f5b6129df565b5060010190565b60008060008060808587031215612f7857600080fd5b8451612f8381612937565b6020860151909450612f9481612937565b6040860151909350612fa581612937565b6060860151909250612fb681612937565b939692955090935050565b8183526000602080850194508260005b85811015613007578135875282820135612fea8161280e565b63ffffffff16878401526040968701969190910190600101612fd1565b509495945050505050565b6000808335601e1984360301811261302957600080fd5b830160208101925035905067ffffffffffffffff81111561304957600080fd5b8060051b360382131561267857600080fd5b81835260007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83111561308d57600080fd5b8260051b80836020870137939093016020019392505050565b602081526001600160601b03196130bc83612705565b16602082015260006020830135601e198436030181126130db57600080fd5b830160208101903567ffffffffffffffff8111156130f857600080fd5b8060061b360382131561310a57600080fd5b6080604085015261311f60a085018284612fc1565b915050604084013560608401526131396060850185613012565b848303601f1901608086015261315083828461305b565b9695505050505050565b634e487b7160e01b600052601260045260246000fd5b60008261317f5761317f61315a565b500690565b6000826131935761319361315a565b500490565b600080600080608085870312156131ae57600080fd5b6131b785612b0a565b93506131c560208601612b0a565b92506131d360408601612b0a565b91506060850151612fb68161280e565b6000815160005b8181101561320457602081850181015186830152016131ea565b50600093019283525090919050565b60006001600160e01b0319808716835261323961323360048501886131e3565b866131e3565b9316835250506004019392505050565b600560fa1b8152606086901b6001600160601b0319166001820152607560f81b60158201527f0800000000000000000000000000000000000000000000000000000000000000601682015277ffffffffffffffffffffffffffffffffffffffffffffffff1985166017820152607560f81b601f820152600061332e6133216132f8602085015b7f7600000000000000000000000000000000000000000000000000000000000000815260010190565b7fa900000000000000000000000000000000000000000000000000000000000000815260010190565b600560fa1b815260010190565b6001600160601b0319861681527f870000000000000000000000000000000000000000000000000000000000000060148201527f630000000000000000000000000000000000000000000000000000000000000060158201526133ed6133216132f86132cf6133c4601686015b7fac00000000000000000000000000000000000000000000000000000000000000815260010190565b7f6700000000000000000000000000000000000000000000000000000000000000815260010190565b6001600160601b0319861681527f880000000000000000000000000000000000000000000000000000000000000060148201527f040000000000000000000000000000000000000000000000000000000000000060158201529050601681016001600160e01b0319851681527fb1000000000000000000000000000000000000000000000000000000000000006004820152607560f81b600582015290506134c361349a6006830161339b565b7f6800000000000000000000000000000000000000000000000000000000000000815260010190565b98975050505050505050565b6000610ebc82846131e3565b6000602082840312156134ed57600080fd5b5051919050565b60ff81811683821601908111156118c6576118c66129df565b60ff82811682821603908111156118c6576118c66129df56fea2646970667358221220cdc12ff5bef6cd936f8450f17f92fb868d5b75c0b204e3466941ae98a9b16f3064736f6c63430008110033",
|
|
772
|
-
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101ae5760003560e01c80639039bc1c116100ee578063c09975cd11610097578063f2fde38b11610071578063f2fde38b146103f5578063f5aceab614610408578063f74b37bd1461041b578063fbd6d77e1461043257600080fd5b8063c09975cd146103bc578063c4d66de8146103cf578063e78cea92146103e257600080fd5b8063aec32099116100c8578063aec3209914610376578063b39e101614610399578063bc20a080146103ac57600080fd5b80639039bc1c1461031f578063a34fff5914610332578063acaac7051461034957600080fd5b8063715018a61161015b5780637fbf9b39116101355780637fbf9b39146102bd57806385a0924c146102d45780638cb5a0c0146102e75780638da5cb5b146102fa57600080fd5b8063715018a61461027f5780637405d7bf146102875780637b35b4e6146102aa57600080fd5b806334173c2d1161018c57806334173c2d146102445780635486032e146102595780636348c4391461026c57600080fd5b806308553292146101b35780632c259d2b146101eb57806331d8c6221461022c575b600080fd5b609a546101d1906a0100000000000000000000900463ffffffff1681565b60405163ffffffff90911681526020015b60405180910390f35b61021e6101f9366004612722565b60986020526000908152604090205463ffffffff811690640100000000900460ff1682565b6040516101e2929190612753565b609a546101d190640100000000900463ffffffff1681565b61025761025236600461278b565b610445565b005b610257610267366004612820565b6104ec565b61025761027a36600461278b565b6105f2565b6102576107e9565b61029a6102953660046128b0565b6107fd565b60405190151581526020016101e2565b6102576102b836600461294c565b610ec3565b6099546101d190600160a01b900463ffffffff1681565b6102576102e2366004612969565b610f97565b6102576102f536600461294c565b611049565b6033546001600160a01b03165b6040516001600160a01b0390911681526020016101e2565b61025761032d366004612722565b611128565b6099546101d190600160c01b900463ffffffff1681565b609a546103639068010000000000000000900461ffff1681565b60405161ffff90911681526020016101e2565b61029a61038436600461294c565b60976020526000908152604090205460ff1681565b6102576103a73660046129a2565b6111e0565b609a546101d19063ffffffff1681565b606554610307906001600160a01b031681565b6102576103dd36600461294c565b61128a565b609954610307906001600160a01b031681565b61025761040336600461294c565b6114c4565b6102576104163660046129a2565b611554565b6099546101d190600160e01b900463ffffffff1681565b61025761044036600461294c565b611705565b60005a90506104558484846105f2565b6065546099546001600160a01b0390911690637ad226dc90600160c01b900463ffffffff165a61048590856129f5565b61048f9190612a08565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b1580156104ce57600080fd5b505af11580156104e2573d6000803e3d6000fd5b5050505050505050565b6104f46117e8565b609980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160e01b63ffffffff88811691820292909217909255609a805487831667ffffffffffffffff199091168117640100000000888516908102919091176dffffffffffff000000000000000019166801000000000000000061ffff89169081026dffffffff000000000000000000001916919091176a01000000000000000000009588169586021790935560408051958652602086019290925290840152606083015260808201527fc36fe6b9d74f864b5e345edc3435eb451a80669ec78c8357cc15e3a1d3897a739060a00160405180910390a15050505050565b3360009081526097602052604090205460ff166106565760405162461bcd60e51b815260206004820152601b60248201527f43616c6c6572206973206e6f74206120636f6f7264696e61746f72000000000060448201526064015b60405180910390fd5b6001600160601b03198316600090815260986020526040902054839063ffffffff1642116106b65760405162461bcd60e51b815260206004820152600d60248201526c15d85b1b195d081b1bd8dad959609a1b604482015260640161064d565b6106c08383611842565b61070c5760405162461bcd60e51b815260206004820152601d60248201527f4e6f7420612076616c696420686561727462656174206d657373616765000000604482015260640161064d565b60408051808201909152609954819061073290600160a01b900463ffffffff1642612a1b565b63ffffffff168152602001600190526001600160601b0319851660009081526098602090815260409091208251815463ffffffff90911663ffffffff19821681178355928401519192839164ffffffffff19161764010000000083600581111561079e5761079e61273d565b0217905550506040513391507f46f4f1fc7a1c5c364372f2e4398c3657d5e5cc35ea286f9972459376b29b1384906107db90879087908790612a3f565b60405180910390a250505050565b6107f16117e8565b6107fb60006118cc565b565b600060016099546001600160a01b031663e65e19d561081f6020880188612722565b6040516001600160e01b031960e084901b1681526001600160601b0319909116600482015260240161012060405180830381865afa158015610865573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108899190612b3c565b60e00151600581111561089e5761089e61273d565b146108eb5760405162461bcd60e51b815260206004820152601b60248201527f57616c6c6574206973206e6f7420696e204c6976652073746174650000000000604482015260640161064d565b60006108fa6020860186612bdf565b9050116109495760405162461bcd60e51b815260206004820152601860248201527f53776565702062656c6f7720746865206d696e2073697a650000000000000000604482015260640161064d565b609a5468010000000000000000900461ffff166109696020860186612bdf565b905011156109b95760405162461bcd60e51b815260206004820152601a60248201527f5377656570206578636565647320746865206d61782073697a65000000000000604482015260640161064d565b816109c76020860186612bdf565b905014610a3c5760405162461bcd60e51b815260206004820152602e60248201527f45616368206465706f736974206b6579206d7573742068617665206d6174636860448201527f696e672065787472612064617461000000000000000000000000000000000000606482015260840161064d565b610a586040850135610a516020870187612bdf565b905061192b565b6000805b610a696020870187612bdf565b9050811015610eb5576000610a816020880188612bdf565b83818110610a9157610a91612c29565b905060400201803603810190610aa79190612c3f565b90506000868684818110610abd57610abd612c29565b9050602002810190610acf9190612c95565b610ad890612d83565b60995483516020808601516040519495506000946001600160a01b039094169363b02c43d093610b21939092910191825260e01b6001600160e01b031916602082015260240190565b60408051808303601f1901815290829052805160209091012060e083901b6001600160e01b0319168252600482015260240160c060405180830381865afa158015610b70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b949190612e85565b9050806040015163ffffffff16600003610bf05760405162461bcd60e51b815260206004820152601460248201527f4465706f736974206e6f742072657665616c6564000000000000000000000000604482015260640161064d565b609a546040820151610c089163ffffffff1690612a1b565b63ffffffff164211610c5c5760405162461bcd60e51b815260206004820181905260248201527f4465706f736974206d696e20616765206e6f7420616368696576656420796574604482015260640161064d565b60a081015163ffffffff1615610cb45760405162461bcd60e51b815260206004820152601560248201527f4465706f73697420616c72656164792073776570740000000000000000000000604482015260640161064d565b610cc383826000015184611ad6565b608082015160009060d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c17609a54909150610d0c90640100000000900463ffffffff1682612f2c565b63ffffffff164210610d865760405162461bcd60e51b815260206004820152602d60248201527f4465706f73697420726566756e6420736166657479206d617267696e2069732060448201527f6e6f742070726573657276656400000000000000000000000000000000000000606482015260840161064d565b610d9360208b018b612722565b6bffffffffffffffffffffffff191683604001516bffffffffffffffffffffffff191614610e295760405162461bcd60e51b815260206004820152602660248201527f4465706f73697420636f6e74726f6c6c656420627920646966666572656e742060448201527f77616c6c65740000000000000000000000000000000000000000000000000000606482015260840161064d565b84600003610e3957816060015195505b856001600160a01b031682606001516001600160a01b031614610e9e5760405162461bcd60e51b815260206004820152601f60248201527f4465706f736974207461726765747320646966666572656e74207661756c7400604482015260640161064d565b505050508080610ead90612f49565b915050610a5c565b5060019150505b9392505050565b33610ed66033546001600160a01b031690565b6001600160a01b031614610f2c5760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161064d565b6040516001600160a01b03821681527f0e2d2343d31b085b7c4e56d1c8a6ec79f7ab07460386f1c9a1756239fe2533ac9060200160405180910390a16065805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b610f9f6117e8565b609980547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff16600160a01b63ffffffff8581169182027fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff1692909217600160c01b928516928302179092556040805192835260208301919091527fe67c0a182190bf283264290d7208533d5936483c98baee174eeac036b081360a91015b60405180910390a15050565b6110516117e8565b6001600160a01b03811660009081526097602052604090205460ff166110df5760405162461bcd60e51b815260206004820152602160248201527f546869732061646472657373206973206e6f74206120636f6f7264696e61746f60448201527f7200000000000000000000000000000000000000000000000000000000000000606482015260840161064d565b6001600160a01b038116600081815260976020526040808220805460ff19169055517fcf15831020102bbbe0547b0c3460aa49715f2646e0911760d2b069e0fb2f62a19190a250565b6111306117e8565b60408051808201909152600080825260208201526001600160601b0319821660009081526098602090815260409091208251815463ffffffff90911663ffffffff19821681178355928401519192839164ffffffffff1916176401000000008360058111156111a1576111a161273d565b0217905550506040516001600160601b0319831691507f5ea2f0397ee52fe8e2e6460e92b334c996f3580dc76c022d41b290cb985f41e690600090a250565b60005a90506111ee82611554565b606554609a546001600160a01b0390911690637ad226dc906a0100000000000000000000900463ffffffff165a61122590856129f5565b61122f9190612a08565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b15801561126e57600080fd5b505af1158015611282573d6000803e3d6000fd5b505050505050565b600054610100900460ff16158080156112aa5750600054600160ff909116105b806112c45750303b1580156112c4575060005460ff166001145b6113365760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161064d565b6000805460ff191660011790558015611359576000805461ff0019166101001790555b611361611d2a565b6099805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038416908117909155604080517fa9de2f3a000000000000000000000000000000000000000000000000000000008152905163a9de2f3a916004808201926080929091908290030181865afa1580156113e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114049190612f62565b6065805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03928316179055609980549091167d38400000138800000e1000000000000000000000000000000000000000001790555050609a80546dffffffffffffffffffffffffffff19166b138800050001518000001c201790555080156114c0576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200161103d565b5050565b6114cc6117e8565b6001600160a01b0381166115485760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161064d565b611551816118cc565b50565b3360009081526097602052604090205460ff166115b35760405162461bcd60e51b815260206004820152601b60248201527f43616c6c6572206973206e6f74206120636f6f7264696e61746f720000000000604482015260640161064d565b6115c06020820182612722565b6001600160601b0319811660009081526098602052604090205463ffffffff16421161161e5760405162461bcd60e51b815260206004820152600d60248201526c15d85b1b195d081b1bd8dad959609a1b604482015260640161064d565b60408051808201909152609954819061164490600160e01b900463ffffffff1642612a1b565b63ffffffff16815260200160029052609860006116646020860186612722565b6001600160601b03191681526020808201929092526040016000208251815463ffffffff90911663ffffffff19821681178355928401519192839164ffffffffff1916176401000000008360058111156116c0576116c061273d565b0217905550506040513391507f80936884707d12c5d8bb32b32fa91535e4f4200316fb138241181fb647d39fa4906116f99085906130a6565b60405180910390a25050565b61170d6117e8565b6001600160a01b03811660009081526097602052604090205460ff161561179c5760405162461bcd60e51b815260206004820152602560248201527f54686973206164647265737320697320616c7265616479206120636f6f72646960448201527f6e61746f72000000000000000000000000000000000000000000000000000000606482015260840161064d565b6001600160a01b038116600081815260976020526040808220805460ff19166001179055517f56e6c5206d2baab7a01569b19d84b5963ca9f96e10f55076b5e5987fbf780cf59190a250565b6033546001600160a01b031633146107fb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161064d565b600060108214611854575060006118c6565b611898600084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050611d9d9050565b77ffffffffffffffffffffffffffffffffffffffffffffffff19908116146118c2575060006118c6565b5060015b92915050565b603380546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600082116119a15760405162461bcd60e51b815260206004820152602760248201527f50726f706f736564207472616e73616374696f6e206665652063616e6e6f742060448201527f6265207a65726f00000000000000000000000000000000000000000000000000606482015260840161064d565b60006119ad8284613170565b90506000826119bc83866129f5565b6119c69190613184565b90506000609960009054906101000a90046001600160a01b03166001600160a01b031663c42b64d06040518163ffffffff1660e01b8152600401608060405180830381865afa158015611a1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a419190613198565b5092505067ffffffffffffffff82169050611a5c8484612a08565b1115611acf5760405162461bcd60e51b8152602060048201526024808201527f50726f706f736564207472616e73616374696f6e2066656520697320746f6f2060448201527f6869676800000000000000000000000000000000000000000000000000000000606482015260840161064d565b5050505050565b805180516020808301516040808501516060909501519051600095611b1895611b0495909493919201613213565b604051602081830303815290604052611dac565b84519091508114611b915760405162461bcd60e51b815260206004820152602960248201527f457874726120696e666f2066756e64696e67207478206861736820646f65732060448201527f6e6f74206d617463680000000000000000000000000000000000000000000000606482015260840161064d565b6000838360200151846040015185606001518660800151604051602001611bbc959493929190613249565b60405160208183030381529060405290506000611bf4866020015163ffffffff16856000015160400151611dd390919063ffffffff16565b90506000611c0182611fb5565b905080516014148015611c395750611c1883611fcf565b6001600160601b031916611c2d826000611d9d565b6001600160601b031916145b15611c475750505050505050565b80516020148015611cae5750600283604051611c6391906134cf565b602060405180830381855afa158015611c80573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611ca391906134db565b611cac82611ff6565b145b15611cbc5750505050505050565b60405162461bcd60e51b815260206004820152602f60248201527f457874726120696e666f2066756e64696e67206f75747075742073637269707460448201527f20646f6573206e6f74206d617463680000000000000000000000000000000000606482015260840161064d565b600054610100900460ff16611d955760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161064d565b6107fb612011565b6000610ebc8383016020015190565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b6060600080611de185612085565b909250905060018201611e5c5760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e7420706172736960448201527f6e67000000000000000000000000000000000000000000000000000000000000606482015260840161064d565b808410611eab5760405162461bcd60e51b815260206004820152601160248201527f566f75742072656164206f76657272756e000000000000000000000000000000604482015260640161064d565b600080611eb9846001612a08565b905060005b86811015611f4157611ed0888361209c565b92506000198303611f235760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b6579000000000000604482015260640161064d565b611f2d8383612a08565b915080611f3981612f49565b915050611ebe565b50611f4c878261209c565b91506000198203611f9f5760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b6579000000000000604482015260640161064d565b611faa878284612109565b979650505050505050565b60606118c6826008808551611fca91906129f5565b6121d6565b60006020600083516020850160025afa50602060006020600060035afa5050600c51919050565b6000815160000361200957506000919050565b506020015190565b600054610100900460ff1661207c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161064d565b6107fb336118cc565b6000806120938360006124db565b91509150915091565b60006120a9826009612a08565b835110156120ba57506000196118c6565b6000806120d1856120cc866008612a08565b6124db565b9092509050600182016120ea57600019925050506118c6565b806120f6836009612a08565b6121009190612a08565b95945050505050565b6060816000036121285750604080516020810190915260008152610ebc565b60006121348385612a08565b90508381118015612146575080855110155b6121925760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e647300000000000000000000000000604482015260640161064d565b604051915082604083010160405282825283850182038460208701018481015b808210156121cb578151838301526020820191506121b2565b505050509392505050565b606060008484815181106121ec576121ec612c29565b016020015160f81c9050826122028260016134f4565b60ff1614612220575050604080516020810190915260008152610ebc565b8461222c856001612a08565b8151811061223c5761223c612c29565b016020015160f81c6000036122fb5760028160ff16101561226d575050604080516020810190915260008152610ebc565b60008561227b866002612a08565b8151811061228b5761228b612c29565b016020015160f81c90506122a060028361350d565b60ff16811415806122be5750806020141580156122be575080601414155b156122dc576040518060200160405280600081525092505050610ebc565b6122f26122ea866003612a08565b879083612109565b92505050610ebc565b60006123078686611d9d565b90507fffffff000000000000000000000000000000000000000000000000000000000081167f1976a900000000000000000000000000000000000000000000000000000000000361241b578561235e866003612a08565b8151811061236e5761236e612c29565b60209101015160f81c60141415806123e657506123a160026123908688612a08565b61239a91906129f5565b8790611d9d565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f88ac00000000000000000000000000000000000000000000000000000000000014155b15612404576040518060200160405280600081525092505050610ebc565b6122f2612412866004612a08565b87906014612109565b7fffffff000000000000000000000000000000000000000000000000000000000081167f17a9140000000000000000000000000000000000000000000000000000000000036124c2578560016124718688612a08565b61247b91906129f5565b8151811061248b5761248b612c29565b60209101015160f81c6087146124b4576040518060200160405280600081525092505050610ebc565b6122f2612412866003612a08565b5050506040805160208101909152600081529392505050565b60008060006124ea858561267f565b90508060ff1660000361251f57600085858151811061250b5761250b612c29565b016020015190935060f81c91506126789050565b8361252b8260016134f4565b60ff166125389190612a08565b8551101561254f5760001960009250925050612678565b60008160ff166002036125935761258861257461256d876001612a08565b8890611d9d565b62ffff0060e882901c1660f89190911c1790565b61ffff16905061266e565b8160ff166004036125e2576125d56125af61256d876001612a08565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b63ffffffff16905061266e565b8160ff1660080361266e576126616125fe61256d876001612a08565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b600082828151811061269357612693612c29565b016020015160f81c60ff036126aa575060086118c6565b8282815181106126bc576126bc612c29565b016020015160f81c60fe036126d3575060046118c6565b8282815181106126e5576126e5612c29565b016020015160f81c60fd036126fc575060026118c6565b50600092915050565b80356001600160601b03198116811461271d57600080fd5b919050565b60006020828403121561273457600080fd5b610ebc82612705565b634e487b7160e01b600052602160045260246000fd5b63ffffffff83168152604081016006831061277e57634e487b7160e01b600052602160045260246000fd5b8260208301529392505050565b6000806000604084860312156127a057600080fd5b6127a984612705565b9250602084013567ffffffffffffffff808211156127c657600080fd5b818601915086601f8301126127da57600080fd5b8135818111156127e957600080fd5b8760208285010111156127fb57600080fd5b6020830194508093505050509250925092565b63ffffffff8116811461155157600080fd5b600080600080600060a0868803121561283857600080fd5b85356128438161280e565b945060208601356128538161280e565b935060408601356128638161280e565b9250606086013561ffff8116811461287a57600080fd5b9150608086013561288a8161280e565b809150509295509295909350565b6000608082840312156128aa57600080fd5b50919050565b6000806000604084860312156128c557600080fd5b833567ffffffffffffffff808211156128dd57600080fd5b6128e987838801612898565b945060208601359150808211156128ff57600080fd5b818601915086601f83011261291357600080fd5b81358181111561292257600080fd5b8760208260051b85010111156127fb57600080fd5b6001600160a01b038116811461155157600080fd5b60006020828403121561295e57600080fd5b8135610ebc81612937565b6000806040838503121561297c57600080fd5b82356129878161280e565b915060208301356129978161280e565b809150509250929050565b6000602082840312156129b457600080fd5b813567ffffffffffffffff8111156129cb57600080fd5b6129d784828501612898565b949350505050565b634e487b7160e01b600052601160045260246000fd5b818103818111156118c6576118c66129df565b808201808211156118c6576118c66129df565b63ffffffff818116838216019080821115612a3857612a386129df565b5092915050565b6bffffffffffffffffffffffff198416815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f1916010192915050565b634e487b7160e01b600052604160045260246000fd5b604051610120810167ffffffffffffffff81118282101715612abe57612abe612a84565b60405290565b60405160a0810167ffffffffffffffff81118282101715612abe57612abe612a84565b6040516080810167ffffffffffffffff81118282101715612abe57612abe612a84565b805167ffffffffffffffff8116811461271d57600080fd5b805161271d8161280e565b80516006811061271d57600080fd5b60006101208284031215612b4f57600080fd5b612b57612a9a565b8251815260208301516020820152612b7160408401612b0a565b6040820152612b8260608401612b22565b6060820152612b9360808401612b22565b6080820152612ba460a08401612b22565b60a0820152612bb560c08401612b22565b60c0820152612bc660e08401612b2d565b60e0820152610100928301519281019290925250919050565b6000808335601e19843603018112612bf657600080fd5b83018035915067ffffffffffffffff821115612c1157600080fd5b6020019150600681901b360382131561267857600080fd5b634e487b7160e01b600052603260045260246000fd5b600060408284031215612c5157600080fd5b6040516040810181811067ffffffffffffffff82111715612c7457612c74612a84565b604052823581526020830135612c898161280e565b60208201529392505050565b60008235609e19833603018112612cab57600080fd5b9190910192915050565b80356001600160e01b03198116811461271d57600080fd5b600082601f830112612cde57600080fd5b813567ffffffffffffffff80821115612cf957612cf9612a84565b604051601f8301601f19908116603f01168101908282118183101715612d2157612d21612a84565b81604052838152866020858801011115612d3a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b803577ffffffffffffffffffffffffffffffffffffffffffffffff198116811461271d57600080fd5b600060a08236031215612d9557600080fd5b612d9d612ac4565b823567ffffffffffffffff80821115612db557600080fd5b818501915060808236031215612dca57600080fd5b612dd2612ae7565b612ddb83612cb5565b8152602083013582811115612def57600080fd5b612dfb36828601612ccd565b602083015250604083013582811115612e1357600080fd5b612e1f36828601612ccd565b604083015250612e3160608401612cb5565b6060820152835250612e47905060208401612d5a565b6020820152612e5860408401612705565b6040820152612e6960608401612705565b6060820152612e7a60808401612cb5565b608082015292915050565b600060c08284031215612e9757600080fd5b60405160c0810181811067ffffffffffffffff82111715612eba57612eba612a84565b6040528251612ec881612937565b8152612ed660208401612b0a565b60208201526040830151612ee98161280e565b60408201526060830151612efc81612937565b6060820152612f0d60808401612b0a565b608082015260a0830151612f208161280e565b60a08201529392505050565b63ffffffff828116828216039080821115612a3857612a386129df565b600060018201612f5b57612f5b6129df565b5060010190565b60008060008060808587031215612f7857600080fd5b8451612f8381612937565b6020860151909450612f9481612937565b6040860151909350612fa581612937565b6060860151909250612fb681612937565b939692955090935050565b8183526000602080850194508260005b85811015613007578135875282820135612fea8161280e565b63ffffffff16878401526040968701969190910190600101612fd1565b509495945050505050565b6000808335601e1984360301811261302957600080fd5b830160208101925035905067ffffffffffffffff81111561304957600080fd5b8060051b360382131561267857600080fd5b81835260007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83111561308d57600080fd5b8260051b80836020870137939093016020019392505050565b602081526001600160601b03196130bc83612705565b16602082015260006020830135601e198436030181126130db57600080fd5b830160208101903567ffffffffffffffff8111156130f857600080fd5b8060061b360382131561310a57600080fd5b6080604085015261311f60a085018284612fc1565b915050604084013560608401526131396060850185613012565b848303601f1901608086015261315083828461305b565b9695505050505050565b634e487b7160e01b600052601260045260246000fd5b60008261317f5761317f61315a565b500690565b6000826131935761319361315a565b500490565b600080600080608085870312156131ae57600080fd5b6131b785612b0a565b93506131c560208601612b0a565b92506131d360408601612b0a565b91506060850151612fb68161280e565b6000815160005b8181101561320457602081850181015186830152016131ea565b50600093019283525090919050565b60006001600160e01b0319808716835261323961323360048501886131e3565b866131e3565b9316835250506004019392505050565b600560fa1b8152606086901b6001600160601b0319166001820152607560f81b60158201527f0800000000000000000000000000000000000000000000000000000000000000601682015277ffffffffffffffffffffffffffffffffffffffffffffffff1985166017820152607560f81b601f820152600061332e6133216132f8602085015b7f7600000000000000000000000000000000000000000000000000000000000000815260010190565b7fa900000000000000000000000000000000000000000000000000000000000000815260010190565b600560fa1b815260010190565b6001600160601b0319861681527f870000000000000000000000000000000000000000000000000000000000000060148201527f630000000000000000000000000000000000000000000000000000000000000060158201526133ed6133216132f86132cf6133c4601686015b7fac00000000000000000000000000000000000000000000000000000000000000815260010190565b7f6700000000000000000000000000000000000000000000000000000000000000815260010190565b6001600160601b0319861681527f880000000000000000000000000000000000000000000000000000000000000060148201527f040000000000000000000000000000000000000000000000000000000000000060158201529050601681016001600160e01b0319851681527fb1000000000000000000000000000000000000000000000000000000000000006004820152607560f81b600582015290506134c361349a6006830161339b565b7f6800000000000000000000000000000000000000000000000000000000000000815260010190565b98975050505050505050565b6000610ebc82846131e3565b6000602082840312156134ed57600080fd5b5051919050565b60ff81811683821601908111156118c6576118c66129df565b60ff82811682821603908111156118c6576118c66129df56fea2646970667358221220cdc12ff5bef6cd936f8450f17f92fb868d5b75c0b204e3466941ae98a9b16f3064736f6c63430008110033",
|
|
771
|
+
"bytecode": "0x608060405234801561001057600080fd5b5061355c806100206000396000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c80639039bc1c116100ee578063c09975cd11610097578063f2fde38b11610071578063f2fde38b146103f5578063f5aceab614610408578063f74b37bd1461041b578063fbd6d77e1461043257600080fd5b8063c09975cd146103bc578063c4d66de8146103cf578063e78cea92146103e257600080fd5b8063aec32099116100c8578063aec3209914610376578063b39e101614610399578063bc20a080146103ac57600080fd5b80639039bc1c1461031f578063a34fff5914610332578063acaac7051461034957600080fd5b8063715018a61161015b5780637fbf9b39116101355780637fbf9b39146102bd57806385a0924c146102d45780638cb5a0c0146102e75780638da5cb5b146102fa57600080fd5b8063715018a61461027f5780637405d7bf146102875780637b35b4e6146102aa57600080fd5b806334173c2d1161018c57806334173c2d146102445780635486032e146102595780636348c4391461026c57600080fd5b806308553292146101b35780632c259d2b146101eb57806331d8c6221461022c575b600080fd5b609a546101d1906a0100000000000000000000900463ffffffff1681565b60405163ffffffff90911681526020015b60405180910390f35b61021e6101f9366004612722565b60986020526000908152604090205463ffffffff811690640100000000900460ff1682565b6040516101e2929190612753565b609a546101d190640100000000900463ffffffff1681565b61025761025236600461278b565b610445565b005b610257610267366004612820565b6104ec565b61025761027a36600461278b565b6105f2565b6102576107e9565b61029a6102953660046128b0565b6107fd565b60405190151581526020016101e2565b6102576102b836600461294c565b610ec3565b6099546101d190600160a01b900463ffffffff1681565b6102576102e2366004612969565b610f97565b6102576102f536600461294c565b611049565b6033546001600160a01b03165b6040516001600160a01b0390911681526020016101e2565b61025761032d366004612722565b611128565b6099546101d190600160c01b900463ffffffff1681565b609a546103639068010000000000000000900461ffff1681565b60405161ffff90911681526020016101e2565b61029a61038436600461294c565b60976020526000908152604090205460ff1681565b6102576103a73660046129a2565b6111e0565b609a546101d19063ffffffff1681565b606554610307906001600160a01b031681565b6102576103dd36600461294c565b61128a565b609954610307906001600160a01b031681565b61025761040336600461294c565b6114c4565b6102576104163660046129a2565b611554565b6099546101d190600160e01b900463ffffffff1681565b61025761044036600461294c565b611705565b60005a90506104558484846105f2565b6065546099546001600160a01b0390911690637ad226dc90600160c01b900463ffffffff165a61048590856129f5565b61048f9190612a08565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b1580156104ce57600080fd5b505af11580156104e2573d6000803e3d6000fd5b5050505050505050565b6104f46117e8565b609980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160e01b63ffffffff88811691820292909217909255609a805487831667ffffffffffffffff199091168117640100000000888516908102919091176dffffffffffff000000000000000019166801000000000000000061ffff89169081026dffffffff000000000000000000001916919091176a01000000000000000000009588169586021790935560408051958652602086019290925290840152606083015260808201527fc36fe6b9d74f864b5e345edc3435eb451a80669ec78c8357cc15e3a1d3897a739060a00160405180910390a15050505050565b3360009081526097602052604090205460ff166106565760405162461bcd60e51b815260206004820152601b60248201527f43616c6c6572206973206e6f74206120636f6f7264696e61746f72000000000060448201526064015b60405180910390fd5b6001600160601b03198316600090815260986020526040902054839063ffffffff1642116106b65760405162461bcd60e51b815260206004820152600d60248201526c15d85b1b195d081b1bd8dad959609a1b604482015260640161064d565b6106c08383611842565b61070c5760405162461bcd60e51b815260206004820152601d60248201527f4e6f7420612076616c696420686561727462656174206d657373616765000000604482015260640161064d565b60408051808201909152609954819061073290600160a01b900463ffffffff1642612a1b565b63ffffffff168152602001600190526001600160601b0319851660009081526098602090815260409091208251815463ffffffff90911663ffffffff19821681178355928401519192839164ffffffffff19161764010000000083600581111561079e5761079e61273d565b0217905550506040513391507f46f4f1fc7a1c5c364372f2e4398c3657d5e5cc35ea286f9972459376b29b1384906107db90879087908790612a3f565b60405180910390a250505050565b6107f16117e8565b6107fb60006118cc565b565b600060016099546001600160a01b031663e65e19d561081f6020880188612722565b6040516001600160e01b031960e084901b1681526001600160601b0319909116600482015260240161012060405180830381865afa158015610865573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108899190612b3c565b60e00151600581111561089e5761089e61273d565b146108eb5760405162461bcd60e51b815260206004820152601b60248201527f57616c6c6574206973206e6f7420696e204c6976652073746174650000000000604482015260640161064d565b60006108fa6020860186612bdf565b9050116109495760405162461bcd60e51b815260206004820152601860248201527f53776565702062656c6f7720746865206d696e2073697a650000000000000000604482015260640161064d565b609a5468010000000000000000900461ffff166109696020860186612bdf565b905011156109b95760405162461bcd60e51b815260206004820152601a60248201527f5377656570206578636565647320746865206d61782073697a65000000000000604482015260640161064d565b816109c76020860186612bdf565b905014610a3c5760405162461bcd60e51b815260206004820152602e60248201527f45616368206465706f736974206b6579206d7573742068617665206d6174636860448201527f696e672065787472612064617461000000000000000000000000000000000000606482015260840161064d565b610a586040850135610a516020870187612bdf565b905061192b565b6000805b610a696020870187612bdf565b9050811015610eb5576000610a816020880188612bdf565b83818110610a9157610a91612c29565b905060400201803603810190610aa79190612c3f565b90506000868684818110610abd57610abd612c29565b9050602002810190610acf9190612c95565b610ad890612d83565b60995483516020808601516040519495506000946001600160a01b039094169363b02c43d093610b21939092910191825260e01b6001600160e01b031916602082015260240190565b60408051808303601f1901815290829052805160209091012060e083901b6001600160e01b0319168252600482015260240160c060405180830381865afa158015610b70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b949190612e85565b9050806040015163ffffffff16600003610bf05760405162461bcd60e51b815260206004820152601460248201527f4465706f736974206e6f742072657665616c6564000000000000000000000000604482015260640161064d565b609a546040820151610c089163ffffffff1690612a1b565b63ffffffff164211610c5c5760405162461bcd60e51b815260206004820181905260248201527f4465706f736974206d696e20616765206e6f7420616368696576656420796574604482015260640161064d565b60a081015163ffffffff1615610cb45760405162461bcd60e51b815260206004820152601560248201527f4465706f73697420616c72656164792073776570740000000000000000000000604482015260640161064d565b610cc383826000015184611ad6565b608082015160009060d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c17609a54909150610d0c90640100000000900463ffffffff1682612f2c565b63ffffffff164210610d865760405162461bcd60e51b815260206004820152602d60248201527f4465706f73697420726566756e6420736166657479206d617267696e2069732060448201527f6e6f742070726573657276656400000000000000000000000000000000000000606482015260840161064d565b610d9360208b018b612722565b6bffffffffffffffffffffffff191683604001516bffffffffffffffffffffffff191614610e295760405162461bcd60e51b815260206004820152602660248201527f4465706f73697420636f6e74726f6c6c656420627920646966666572656e742060448201527f77616c6c65740000000000000000000000000000000000000000000000000000606482015260840161064d565b84600003610e3957816060015195505b856001600160a01b031682606001516001600160a01b031614610e9e5760405162461bcd60e51b815260206004820152601f60248201527f4465706f736974207461726765747320646966666572656e74207661756c7400604482015260640161064d565b505050508080610ead90612f49565b915050610a5c565b5060019150505b9392505050565b33610ed66033546001600160a01b031690565b6001600160a01b031614610f2c5760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161064d565b6040516001600160a01b03821681527f0e2d2343d31b085b7c4e56d1c8a6ec79f7ab07460386f1c9a1756239fe2533ac9060200160405180910390a16065805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b610f9f6117e8565b609980547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff16600160a01b63ffffffff8581169182027fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff1692909217600160c01b928516928302179092556040805192835260208301919091527fe67c0a182190bf283264290d7208533d5936483c98baee174eeac036b081360a91015b60405180910390a15050565b6110516117e8565b6001600160a01b03811660009081526097602052604090205460ff166110df5760405162461bcd60e51b815260206004820152602160248201527f546869732061646472657373206973206e6f74206120636f6f7264696e61746f60448201527f7200000000000000000000000000000000000000000000000000000000000000606482015260840161064d565b6001600160a01b038116600081815260976020526040808220805460ff19169055517fcf15831020102bbbe0547b0c3460aa49715f2646e0911760d2b069e0fb2f62a19190a250565b6111306117e8565b60408051808201909152600080825260208201526001600160601b0319821660009081526098602090815260409091208251815463ffffffff90911663ffffffff19821681178355928401519192839164ffffffffff1916176401000000008360058111156111a1576111a161273d565b0217905550506040516001600160601b0319831691507f5ea2f0397ee52fe8e2e6460e92b334c996f3580dc76c022d41b290cb985f41e690600090a250565b60005a90506111ee82611554565b606554609a546001600160a01b0390911690637ad226dc906a0100000000000000000000900463ffffffff165a61122590856129f5565b61122f9190612a08565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b15801561126e57600080fd5b505af1158015611282573d6000803e3d6000fd5b505050505050565b600054610100900460ff16158080156112aa5750600054600160ff909116105b806112c45750303b1580156112c4575060005460ff166001145b6113365760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161064d565b6000805460ff191660011790558015611359576000805461ff0019166101001790555b611361611d2a565b6099805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038416908117909155604080517fa9de2f3a000000000000000000000000000000000000000000000000000000008152905163a9de2f3a916004808201926080929091908290030181865afa1580156113e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114049190612f62565b6065805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03928316179055609980549091167d38400000271000000e1000000000000000000000000000000000000000001790555050609a80546dffffffffffffffffffffffffffff19166b4e2000050001518000001c201790555080156114c0576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200161103d565b5050565b6114cc6117e8565b6001600160a01b0381166115485760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161064d565b611551816118cc565b50565b3360009081526097602052604090205460ff166115b35760405162461bcd60e51b815260206004820152601b60248201527f43616c6c6572206973206e6f74206120636f6f7264696e61746f720000000000604482015260640161064d565b6115c06020820182612722565b6001600160601b0319811660009081526098602052604090205463ffffffff16421161161e5760405162461bcd60e51b815260206004820152600d60248201526c15d85b1b195d081b1bd8dad959609a1b604482015260640161064d565b60408051808201909152609954819061164490600160e01b900463ffffffff1642612a1b565b63ffffffff16815260200160029052609860006116646020860186612722565b6001600160601b03191681526020808201929092526040016000208251815463ffffffff90911663ffffffff19821681178355928401519192839164ffffffffff1916176401000000008360058111156116c0576116c061273d565b0217905550506040513391507f80936884707d12c5d8bb32b32fa91535e4f4200316fb138241181fb647d39fa4906116f99085906130a6565b60405180910390a25050565b61170d6117e8565b6001600160a01b03811660009081526097602052604090205460ff161561179c5760405162461bcd60e51b815260206004820152602560248201527f54686973206164647265737320697320616c7265616479206120636f6f72646960448201527f6e61746f72000000000000000000000000000000000000000000000000000000606482015260840161064d565b6001600160a01b038116600081815260976020526040808220805460ff19166001179055517f56e6c5206d2baab7a01569b19d84b5963ca9f96e10f55076b5e5987fbf780cf59190a250565b6033546001600160a01b031633146107fb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161064d565b600060108214611854575060006118c6565b611898600084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050611d9d9050565b77ffffffffffffffffffffffffffffffffffffffffffffffff19908116146118c2575060006118c6565b5060015b92915050565b603380546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600082116119a15760405162461bcd60e51b815260206004820152602760248201527f50726f706f736564207472616e73616374696f6e206665652063616e6e6f742060448201527f6265207a65726f00000000000000000000000000000000000000000000000000606482015260840161064d565b60006119ad8284613170565b90506000826119bc83866129f5565b6119c69190613184565b90506000609960009054906101000a90046001600160a01b03166001600160a01b031663c42b64d06040518163ffffffff1660e01b8152600401608060405180830381865afa158015611a1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a419190613198565b5092505067ffffffffffffffff82169050611a5c8484612a08565b1115611acf5760405162461bcd60e51b8152602060048201526024808201527f50726f706f736564207472616e73616374696f6e2066656520697320746f6f2060448201527f6869676800000000000000000000000000000000000000000000000000000000606482015260840161064d565b5050505050565b805180516020808301516040808501516060909501519051600095611b1895611b0495909493919201613213565b604051602081830303815290604052611dac565b84519091508114611b915760405162461bcd60e51b815260206004820152602960248201527f457874726120696e666f2066756e64696e67207478206861736820646f65732060448201527f6e6f74206d617463680000000000000000000000000000000000000000000000606482015260840161064d565b6000838360200151846040015185606001518660800151604051602001611bbc959493929190613249565b60405160208183030381529060405290506000611bf4866020015163ffffffff16856000015160400151611dd390919063ffffffff16565b90506000611c0182611fb5565b905080516014148015611c395750611c1883611fcf565b6001600160601b031916611c2d826000611d9d565b6001600160601b031916145b15611c475750505050505050565b80516020148015611cae5750600283604051611c6391906134cf565b602060405180830381855afa158015611c80573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611ca391906134db565b611cac82611ff6565b145b15611cbc5750505050505050565b60405162461bcd60e51b815260206004820152602f60248201527f457874726120696e666f2066756e64696e67206f75747075742073637269707460448201527f20646f6573206e6f74206d617463680000000000000000000000000000000000606482015260840161064d565b600054610100900460ff16611d955760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161064d565b6107fb612011565b6000610ebc8383016020015190565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b6060600080611de185612085565b909250905060018201611e5c5760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e7420706172736960448201527f6e67000000000000000000000000000000000000000000000000000000000000606482015260840161064d565b808410611eab5760405162461bcd60e51b815260206004820152601160248201527f566f75742072656164206f76657272756e000000000000000000000000000000604482015260640161064d565b600080611eb9846001612a08565b905060005b86811015611f4157611ed0888361209c565b92506000198303611f235760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b6579000000000000604482015260640161064d565b611f2d8383612a08565b915080611f3981612f49565b915050611ebe565b50611f4c878261209c565b91506000198203611f9f5760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b6579000000000000604482015260640161064d565b611faa878284612109565b979650505050505050565b60606118c6826008808551611fca91906129f5565b6121d6565b60006020600083516020850160025afa50602060006020600060035afa5050600c51919050565b6000815160000361200957506000919050565b506020015190565b600054610100900460ff1661207c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161064d565b6107fb336118cc565b6000806120938360006124db565b91509150915091565b60006120a9826009612a08565b835110156120ba57506000196118c6565b6000806120d1856120cc866008612a08565b6124db565b9092509050600182016120ea57600019925050506118c6565b806120f6836009612a08565b6121009190612a08565b95945050505050565b6060816000036121285750604080516020810190915260008152610ebc565b60006121348385612a08565b90508381118015612146575080855110155b6121925760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e647300000000000000000000000000604482015260640161064d565b604051915082604083010160405282825283850182038460208701018481015b808210156121cb578151838301526020820191506121b2565b505050509392505050565b606060008484815181106121ec576121ec612c29565b016020015160f81c9050826122028260016134f4565b60ff1614612220575050604080516020810190915260008152610ebc565b8461222c856001612a08565b8151811061223c5761223c612c29565b016020015160f81c6000036122fb5760028160ff16101561226d575050604080516020810190915260008152610ebc565b60008561227b866002612a08565b8151811061228b5761228b612c29565b016020015160f81c90506122a060028361350d565b60ff16811415806122be5750806020141580156122be575080601414155b156122dc576040518060200160405280600081525092505050610ebc565b6122f26122ea866003612a08565b879083612109565b92505050610ebc565b60006123078686611d9d565b90507fffffff000000000000000000000000000000000000000000000000000000000081167f1976a900000000000000000000000000000000000000000000000000000000000361241b578561235e866003612a08565b8151811061236e5761236e612c29565b60209101015160f81c60141415806123e657506123a160026123908688612a08565b61239a91906129f5565b8790611d9d565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f88ac00000000000000000000000000000000000000000000000000000000000014155b15612404576040518060200160405280600081525092505050610ebc565b6122f2612412866004612a08565b87906014612109565b7fffffff000000000000000000000000000000000000000000000000000000000081167f17a9140000000000000000000000000000000000000000000000000000000000036124c2578560016124718688612a08565b61247b91906129f5565b8151811061248b5761248b612c29565b60209101015160f81c6087146124b4576040518060200160405280600081525092505050610ebc565b6122f2612412866003612a08565b5050506040805160208101909152600081529392505050565b60008060006124ea858561267f565b90508060ff1660000361251f57600085858151811061250b5761250b612c29565b016020015190935060f81c91506126789050565b8361252b8260016134f4565b60ff166125389190612a08565b8551101561254f5760001960009250925050612678565b60008160ff166002036125935761258861257461256d876001612a08565b8890611d9d565b62ffff0060e882901c1660f89190911c1790565b61ffff16905061266e565b8160ff166004036125e2576125d56125af61256d876001612a08565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b63ffffffff16905061266e565b8160ff1660080361266e576126616125fe61256d876001612a08565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b600082828151811061269357612693612c29565b016020015160f81c60ff036126aa575060086118c6565b8282815181106126bc576126bc612c29565b016020015160f81c60fe036126d3575060046118c6565b8282815181106126e5576126e5612c29565b016020015160f81c60fd036126fc575060026118c6565b50600092915050565b80356001600160601b03198116811461271d57600080fd5b919050565b60006020828403121561273457600080fd5b610ebc82612705565b634e487b7160e01b600052602160045260246000fd5b63ffffffff83168152604081016006831061277e57634e487b7160e01b600052602160045260246000fd5b8260208301529392505050565b6000806000604084860312156127a057600080fd5b6127a984612705565b9250602084013567ffffffffffffffff808211156127c657600080fd5b818601915086601f8301126127da57600080fd5b8135818111156127e957600080fd5b8760208285010111156127fb57600080fd5b6020830194508093505050509250925092565b63ffffffff8116811461155157600080fd5b600080600080600060a0868803121561283857600080fd5b85356128438161280e565b945060208601356128538161280e565b935060408601356128638161280e565b9250606086013561ffff8116811461287a57600080fd5b9150608086013561288a8161280e565b809150509295509295909350565b6000608082840312156128aa57600080fd5b50919050565b6000806000604084860312156128c557600080fd5b833567ffffffffffffffff808211156128dd57600080fd5b6128e987838801612898565b945060208601359150808211156128ff57600080fd5b818601915086601f83011261291357600080fd5b81358181111561292257600080fd5b8760208260051b85010111156127fb57600080fd5b6001600160a01b038116811461155157600080fd5b60006020828403121561295e57600080fd5b8135610ebc81612937565b6000806040838503121561297c57600080fd5b82356129878161280e565b915060208301356129978161280e565b809150509250929050565b6000602082840312156129b457600080fd5b813567ffffffffffffffff8111156129cb57600080fd5b6129d784828501612898565b949350505050565b634e487b7160e01b600052601160045260246000fd5b818103818111156118c6576118c66129df565b808201808211156118c6576118c66129df565b63ffffffff818116838216019080821115612a3857612a386129df565b5092915050565b6bffffffffffffffffffffffff198416815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f1916010192915050565b634e487b7160e01b600052604160045260246000fd5b604051610120810167ffffffffffffffff81118282101715612abe57612abe612a84565b60405290565b60405160a0810167ffffffffffffffff81118282101715612abe57612abe612a84565b6040516080810167ffffffffffffffff81118282101715612abe57612abe612a84565b805167ffffffffffffffff8116811461271d57600080fd5b805161271d8161280e565b80516006811061271d57600080fd5b60006101208284031215612b4f57600080fd5b612b57612a9a565b8251815260208301516020820152612b7160408401612b0a565b6040820152612b8260608401612b22565b6060820152612b9360808401612b22565b6080820152612ba460a08401612b22565b60a0820152612bb560c08401612b22565b60c0820152612bc660e08401612b2d565b60e0820152610100928301519281019290925250919050565b6000808335601e19843603018112612bf657600080fd5b83018035915067ffffffffffffffff821115612c1157600080fd5b6020019150600681901b360382131561267857600080fd5b634e487b7160e01b600052603260045260246000fd5b600060408284031215612c5157600080fd5b6040516040810181811067ffffffffffffffff82111715612c7457612c74612a84565b604052823581526020830135612c898161280e565b60208201529392505050565b60008235609e19833603018112612cab57600080fd5b9190910192915050565b80356001600160e01b03198116811461271d57600080fd5b600082601f830112612cde57600080fd5b813567ffffffffffffffff80821115612cf957612cf9612a84565b604051601f8301601f19908116603f01168101908282118183101715612d2157612d21612a84565b81604052838152866020858801011115612d3a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b803577ffffffffffffffffffffffffffffffffffffffffffffffff198116811461271d57600080fd5b600060a08236031215612d9557600080fd5b612d9d612ac4565b823567ffffffffffffffff80821115612db557600080fd5b818501915060808236031215612dca57600080fd5b612dd2612ae7565b612ddb83612cb5565b8152602083013582811115612def57600080fd5b612dfb36828601612ccd565b602083015250604083013582811115612e1357600080fd5b612e1f36828601612ccd565b604083015250612e3160608401612cb5565b6060820152835250612e47905060208401612d5a565b6020820152612e5860408401612705565b6040820152612e6960608401612705565b6060820152612e7a60808401612cb5565b608082015292915050565b600060c08284031215612e9757600080fd5b60405160c0810181811067ffffffffffffffff82111715612eba57612eba612a84565b6040528251612ec881612937565b8152612ed660208401612b0a565b60208201526040830151612ee98161280e565b60408201526060830151612efc81612937565b6060820152612f0d60808401612b0a565b608082015260a0830151612f208161280e565b60a08201529392505050565b63ffffffff828116828216039080821115612a3857612a386129df565b600060018201612f5b57612f5b6129df565b5060010190565b60008060008060808587031215612f7857600080fd5b8451612f8381612937565b6020860151909450612f9481612937565b6040860151909350612fa581612937565b6060860151909250612fb681612937565b939692955090935050565b8183526000602080850194508260005b85811015613007578135875282820135612fea8161280e565b63ffffffff16878401526040968701969190910190600101612fd1565b509495945050505050565b6000808335601e1984360301811261302957600080fd5b830160208101925035905067ffffffffffffffff81111561304957600080fd5b8060051b360382131561267857600080fd5b81835260007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83111561308d57600080fd5b8260051b80836020870137939093016020019392505050565b602081526001600160601b03196130bc83612705565b16602082015260006020830135601e198436030181126130db57600080fd5b830160208101903567ffffffffffffffff8111156130f857600080fd5b8060061b360382131561310a57600080fd5b6080604085015261311f60a085018284612fc1565b915050604084013560608401526131396060850185613012565b848303601f1901608086015261315083828461305b565b9695505050505050565b634e487b7160e01b600052601260045260246000fd5b60008261317f5761317f61315a565b500690565b6000826131935761319361315a565b500490565b600080600080608085870312156131ae57600080fd5b6131b785612b0a565b93506131c560208601612b0a565b92506131d360408601612b0a565b91506060850151612fb68161280e565b6000815160005b8181101561320457602081850181015186830152016131ea565b50600093019283525090919050565b60006001600160e01b0319808716835261323961323360048501886131e3565b866131e3565b9316835250506004019392505050565b600560fa1b8152606086901b6001600160601b0319166001820152607560f81b60158201527f0800000000000000000000000000000000000000000000000000000000000000601682015277ffffffffffffffffffffffffffffffffffffffffffffffff1985166017820152607560f81b601f820152600061332e6133216132f8602085015b7f7600000000000000000000000000000000000000000000000000000000000000815260010190565b7fa900000000000000000000000000000000000000000000000000000000000000815260010190565b600560fa1b815260010190565b6001600160601b0319861681527f870000000000000000000000000000000000000000000000000000000000000060148201527f630000000000000000000000000000000000000000000000000000000000000060158201526133ed6133216132f86132cf6133c4601686015b7fac00000000000000000000000000000000000000000000000000000000000000815260010190565b7f6700000000000000000000000000000000000000000000000000000000000000815260010190565b6001600160601b0319861681527f880000000000000000000000000000000000000000000000000000000000000060148201527f040000000000000000000000000000000000000000000000000000000000000060158201529050601681016001600160e01b0319851681527fb1000000000000000000000000000000000000000000000000000000000000006004820152607560f81b600582015290506134c361349a6006830161339b565b7f6800000000000000000000000000000000000000000000000000000000000000815260010190565b98975050505050505050565b6000610ebc82846131e3565b6000602082840312156134ed57600080fd5b5051919050565b60ff81811683821601908111156118c6576118c66129df565b60ff82811682821603908111156118c6576118c66129df56fea2646970667358221220066535bd08db934cec0ccdcb31d87d1041b8cb13c7803163a4bea22b3cc6e55b64736f6c63430008110033",
|
|
772
|
+
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101ae5760003560e01c80639039bc1c116100ee578063c09975cd11610097578063f2fde38b11610071578063f2fde38b146103f5578063f5aceab614610408578063f74b37bd1461041b578063fbd6d77e1461043257600080fd5b8063c09975cd146103bc578063c4d66de8146103cf578063e78cea92146103e257600080fd5b8063aec32099116100c8578063aec3209914610376578063b39e101614610399578063bc20a080146103ac57600080fd5b80639039bc1c1461031f578063a34fff5914610332578063acaac7051461034957600080fd5b8063715018a61161015b5780637fbf9b39116101355780637fbf9b39146102bd57806385a0924c146102d45780638cb5a0c0146102e75780638da5cb5b146102fa57600080fd5b8063715018a61461027f5780637405d7bf146102875780637b35b4e6146102aa57600080fd5b806334173c2d1161018c57806334173c2d146102445780635486032e146102595780636348c4391461026c57600080fd5b806308553292146101b35780632c259d2b146101eb57806331d8c6221461022c575b600080fd5b609a546101d1906a0100000000000000000000900463ffffffff1681565b60405163ffffffff90911681526020015b60405180910390f35b61021e6101f9366004612722565b60986020526000908152604090205463ffffffff811690640100000000900460ff1682565b6040516101e2929190612753565b609a546101d190640100000000900463ffffffff1681565b61025761025236600461278b565b610445565b005b610257610267366004612820565b6104ec565b61025761027a36600461278b565b6105f2565b6102576107e9565b61029a6102953660046128b0565b6107fd565b60405190151581526020016101e2565b6102576102b836600461294c565b610ec3565b6099546101d190600160a01b900463ffffffff1681565b6102576102e2366004612969565b610f97565b6102576102f536600461294c565b611049565b6033546001600160a01b03165b6040516001600160a01b0390911681526020016101e2565b61025761032d366004612722565b611128565b6099546101d190600160c01b900463ffffffff1681565b609a546103639068010000000000000000900461ffff1681565b60405161ffff90911681526020016101e2565b61029a61038436600461294c565b60976020526000908152604090205460ff1681565b6102576103a73660046129a2565b6111e0565b609a546101d19063ffffffff1681565b606554610307906001600160a01b031681565b6102576103dd36600461294c565b61128a565b609954610307906001600160a01b031681565b61025761040336600461294c565b6114c4565b6102576104163660046129a2565b611554565b6099546101d190600160e01b900463ffffffff1681565b61025761044036600461294c565b611705565b60005a90506104558484846105f2565b6065546099546001600160a01b0390911690637ad226dc90600160c01b900463ffffffff165a61048590856129f5565b61048f9190612a08565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b1580156104ce57600080fd5b505af11580156104e2573d6000803e3d6000fd5b5050505050505050565b6104f46117e8565b609980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160e01b63ffffffff88811691820292909217909255609a805487831667ffffffffffffffff199091168117640100000000888516908102919091176dffffffffffff000000000000000019166801000000000000000061ffff89169081026dffffffff000000000000000000001916919091176a01000000000000000000009588169586021790935560408051958652602086019290925290840152606083015260808201527fc36fe6b9d74f864b5e345edc3435eb451a80669ec78c8357cc15e3a1d3897a739060a00160405180910390a15050505050565b3360009081526097602052604090205460ff166106565760405162461bcd60e51b815260206004820152601b60248201527f43616c6c6572206973206e6f74206120636f6f7264696e61746f72000000000060448201526064015b60405180910390fd5b6001600160601b03198316600090815260986020526040902054839063ffffffff1642116106b65760405162461bcd60e51b815260206004820152600d60248201526c15d85b1b195d081b1bd8dad959609a1b604482015260640161064d565b6106c08383611842565b61070c5760405162461bcd60e51b815260206004820152601d60248201527f4e6f7420612076616c696420686561727462656174206d657373616765000000604482015260640161064d565b60408051808201909152609954819061073290600160a01b900463ffffffff1642612a1b565b63ffffffff168152602001600190526001600160601b0319851660009081526098602090815260409091208251815463ffffffff90911663ffffffff19821681178355928401519192839164ffffffffff19161764010000000083600581111561079e5761079e61273d565b0217905550506040513391507f46f4f1fc7a1c5c364372f2e4398c3657d5e5cc35ea286f9972459376b29b1384906107db90879087908790612a3f565b60405180910390a250505050565b6107f16117e8565b6107fb60006118cc565b565b600060016099546001600160a01b031663e65e19d561081f6020880188612722565b6040516001600160e01b031960e084901b1681526001600160601b0319909116600482015260240161012060405180830381865afa158015610865573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108899190612b3c565b60e00151600581111561089e5761089e61273d565b146108eb5760405162461bcd60e51b815260206004820152601b60248201527f57616c6c6574206973206e6f7420696e204c6976652073746174650000000000604482015260640161064d565b60006108fa6020860186612bdf565b9050116109495760405162461bcd60e51b815260206004820152601860248201527f53776565702062656c6f7720746865206d696e2073697a650000000000000000604482015260640161064d565b609a5468010000000000000000900461ffff166109696020860186612bdf565b905011156109b95760405162461bcd60e51b815260206004820152601a60248201527f5377656570206578636565647320746865206d61782073697a65000000000000604482015260640161064d565b816109c76020860186612bdf565b905014610a3c5760405162461bcd60e51b815260206004820152602e60248201527f45616368206465706f736974206b6579206d7573742068617665206d6174636860448201527f696e672065787472612064617461000000000000000000000000000000000000606482015260840161064d565b610a586040850135610a516020870187612bdf565b905061192b565b6000805b610a696020870187612bdf565b9050811015610eb5576000610a816020880188612bdf565b83818110610a9157610a91612c29565b905060400201803603810190610aa79190612c3f565b90506000868684818110610abd57610abd612c29565b9050602002810190610acf9190612c95565b610ad890612d83565b60995483516020808601516040519495506000946001600160a01b039094169363b02c43d093610b21939092910191825260e01b6001600160e01b031916602082015260240190565b60408051808303601f1901815290829052805160209091012060e083901b6001600160e01b0319168252600482015260240160c060405180830381865afa158015610b70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b949190612e85565b9050806040015163ffffffff16600003610bf05760405162461bcd60e51b815260206004820152601460248201527f4465706f736974206e6f742072657665616c6564000000000000000000000000604482015260640161064d565b609a546040820151610c089163ffffffff1690612a1b565b63ffffffff164211610c5c5760405162461bcd60e51b815260206004820181905260248201527f4465706f736974206d696e20616765206e6f7420616368696576656420796574604482015260640161064d565b60a081015163ffffffff1615610cb45760405162461bcd60e51b815260206004820152601560248201527f4465706f73697420616c72656164792073776570740000000000000000000000604482015260640161064d565b610cc383826000015184611ad6565b608082015160009060d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c17609a54909150610d0c90640100000000900463ffffffff1682612f2c565b63ffffffff164210610d865760405162461bcd60e51b815260206004820152602d60248201527f4465706f73697420726566756e6420736166657479206d617267696e2069732060448201527f6e6f742070726573657276656400000000000000000000000000000000000000606482015260840161064d565b610d9360208b018b612722565b6bffffffffffffffffffffffff191683604001516bffffffffffffffffffffffff191614610e295760405162461bcd60e51b815260206004820152602660248201527f4465706f73697420636f6e74726f6c6c656420627920646966666572656e742060448201527f77616c6c65740000000000000000000000000000000000000000000000000000606482015260840161064d565b84600003610e3957816060015195505b856001600160a01b031682606001516001600160a01b031614610e9e5760405162461bcd60e51b815260206004820152601f60248201527f4465706f736974207461726765747320646966666572656e74207661756c7400604482015260640161064d565b505050508080610ead90612f49565b915050610a5c565b5060019150505b9392505050565b33610ed66033546001600160a01b031690565b6001600160a01b031614610f2c5760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161064d565b6040516001600160a01b03821681527f0e2d2343d31b085b7c4e56d1c8a6ec79f7ab07460386f1c9a1756239fe2533ac9060200160405180910390a16065805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b610f9f6117e8565b609980547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff16600160a01b63ffffffff8581169182027fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff1692909217600160c01b928516928302179092556040805192835260208301919091527fe67c0a182190bf283264290d7208533d5936483c98baee174eeac036b081360a91015b60405180910390a15050565b6110516117e8565b6001600160a01b03811660009081526097602052604090205460ff166110df5760405162461bcd60e51b815260206004820152602160248201527f546869732061646472657373206973206e6f74206120636f6f7264696e61746f60448201527f7200000000000000000000000000000000000000000000000000000000000000606482015260840161064d565b6001600160a01b038116600081815260976020526040808220805460ff19169055517fcf15831020102bbbe0547b0c3460aa49715f2646e0911760d2b069e0fb2f62a19190a250565b6111306117e8565b60408051808201909152600080825260208201526001600160601b0319821660009081526098602090815260409091208251815463ffffffff90911663ffffffff19821681178355928401519192839164ffffffffff1916176401000000008360058111156111a1576111a161273d565b0217905550506040516001600160601b0319831691507f5ea2f0397ee52fe8e2e6460e92b334c996f3580dc76c022d41b290cb985f41e690600090a250565b60005a90506111ee82611554565b606554609a546001600160a01b0390911690637ad226dc906a0100000000000000000000900463ffffffff165a61122590856129f5565b61122f9190612a08565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b15801561126e57600080fd5b505af1158015611282573d6000803e3d6000fd5b505050505050565b600054610100900460ff16158080156112aa5750600054600160ff909116105b806112c45750303b1580156112c4575060005460ff166001145b6113365760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161064d565b6000805460ff191660011790558015611359576000805461ff0019166101001790555b611361611d2a565b6099805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038416908117909155604080517fa9de2f3a000000000000000000000000000000000000000000000000000000008152905163a9de2f3a916004808201926080929091908290030181865afa1580156113e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114049190612f62565b6065805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03928316179055609980549091167d38400000271000000e1000000000000000000000000000000000000000001790555050609a80546dffffffffffffffffffffffffffff19166b4e2000050001518000001c201790555080156114c0576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200161103d565b5050565b6114cc6117e8565b6001600160a01b0381166115485760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161064d565b611551816118cc565b50565b3360009081526097602052604090205460ff166115b35760405162461bcd60e51b815260206004820152601b60248201527f43616c6c6572206973206e6f74206120636f6f7264696e61746f720000000000604482015260640161064d565b6115c06020820182612722565b6001600160601b0319811660009081526098602052604090205463ffffffff16421161161e5760405162461bcd60e51b815260206004820152600d60248201526c15d85b1b195d081b1bd8dad959609a1b604482015260640161064d565b60408051808201909152609954819061164490600160e01b900463ffffffff1642612a1b565b63ffffffff16815260200160029052609860006116646020860186612722565b6001600160601b03191681526020808201929092526040016000208251815463ffffffff90911663ffffffff19821681178355928401519192839164ffffffffff1916176401000000008360058111156116c0576116c061273d565b0217905550506040513391507f80936884707d12c5d8bb32b32fa91535e4f4200316fb138241181fb647d39fa4906116f99085906130a6565b60405180910390a25050565b61170d6117e8565b6001600160a01b03811660009081526097602052604090205460ff161561179c5760405162461bcd60e51b815260206004820152602560248201527f54686973206164647265737320697320616c7265616479206120636f6f72646960448201527f6e61746f72000000000000000000000000000000000000000000000000000000606482015260840161064d565b6001600160a01b038116600081815260976020526040808220805460ff19166001179055517f56e6c5206d2baab7a01569b19d84b5963ca9f96e10f55076b5e5987fbf780cf59190a250565b6033546001600160a01b031633146107fb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161064d565b600060108214611854575060006118c6565b611898600084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050611d9d9050565b77ffffffffffffffffffffffffffffffffffffffffffffffff19908116146118c2575060006118c6565b5060015b92915050565b603380546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600082116119a15760405162461bcd60e51b815260206004820152602760248201527f50726f706f736564207472616e73616374696f6e206665652063616e6e6f742060448201527f6265207a65726f00000000000000000000000000000000000000000000000000606482015260840161064d565b60006119ad8284613170565b90506000826119bc83866129f5565b6119c69190613184565b90506000609960009054906101000a90046001600160a01b03166001600160a01b031663c42b64d06040518163ffffffff1660e01b8152600401608060405180830381865afa158015611a1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a419190613198565b5092505067ffffffffffffffff82169050611a5c8484612a08565b1115611acf5760405162461bcd60e51b8152602060048201526024808201527f50726f706f736564207472616e73616374696f6e2066656520697320746f6f2060448201527f6869676800000000000000000000000000000000000000000000000000000000606482015260840161064d565b5050505050565b805180516020808301516040808501516060909501519051600095611b1895611b0495909493919201613213565b604051602081830303815290604052611dac565b84519091508114611b915760405162461bcd60e51b815260206004820152602960248201527f457874726120696e666f2066756e64696e67207478206861736820646f65732060448201527f6e6f74206d617463680000000000000000000000000000000000000000000000606482015260840161064d565b6000838360200151846040015185606001518660800151604051602001611bbc959493929190613249565b60405160208183030381529060405290506000611bf4866020015163ffffffff16856000015160400151611dd390919063ffffffff16565b90506000611c0182611fb5565b905080516014148015611c395750611c1883611fcf565b6001600160601b031916611c2d826000611d9d565b6001600160601b031916145b15611c475750505050505050565b80516020148015611cae5750600283604051611c6391906134cf565b602060405180830381855afa158015611c80573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611ca391906134db565b611cac82611ff6565b145b15611cbc5750505050505050565b60405162461bcd60e51b815260206004820152602f60248201527f457874726120696e666f2066756e64696e67206f75747075742073637269707460448201527f20646f6573206e6f74206d617463680000000000000000000000000000000000606482015260840161064d565b600054610100900460ff16611d955760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161064d565b6107fb612011565b6000610ebc8383016020015190565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b6060600080611de185612085565b909250905060018201611e5c5760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e7420706172736960448201527f6e67000000000000000000000000000000000000000000000000000000000000606482015260840161064d565b808410611eab5760405162461bcd60e51b815260206004820152601160248201527f566f75742072656164206f76657272756e000000000000000000000000000000604482015260640161064d565b600080611eb9846001612a08565b905060005b86811015611f4157611ed0888361209c565b92506000198303611f235760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b6579000000000000604482015260640161064d565b611f2d8383612a08565b915080611f3981612f49565b915050611ebe565b50611f4c878261209c565b91506000198203611f9f5760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b6579000000000000604482015260640161064d565b611faa878284612109565b979650505050505050565b60606118c6826008808551611fca91906129f5565b6121d6565b60006020600083516020850160025afa50602060006020600060035afa5050600c51919050565b6000815160000361200957506000919050565b506020015190565b600054610100900460ff1661207c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161064d565b6107fb336118cc565b6000806120938360006124db565b91509150915091565b60006120a9826009612a08565b835110156120ba57506000196118c6565b6000806120d1856120cc866008612a08565b6124db565b9092509050600182016120ea57600019925050506118c6565b806120f6836009612a08565b6121009190612a08565b95945050505050565b6060816000036121285750604080516020810190915260008152610ebc565b60006121348385612a08565b90508381118015612146575080855110155b6121925760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e647300000000000000000000000000604482015260640161064d565b604051915082604083010160405282825283850182038460208701018481015b808210156121cb578151838301526020820191506121b2565b505050509392505050565b606060008484815181106121ec576121ec612c29565b016020015160f81c9050826122028260016134f4565b60ff1614612220575050604080516020810190915260008152610ebc565b8461222c856001612a08565b8151811061223c5761223c612c29565b016020015160f81c6000036122fb5760028160ff16101561226d575050604080516020810190915260008152610ebc565b60008561227b866002612a08565b8151811061228b5761228b612c29565b016020015160f81c90506122a060028361350d565b60ff16811415806122be5750806020141580156122be575080601414155b156122dc576040518060200160405280600081525092505050610ebc565b6122f26122ea866003612a08565b879083612109565b92505050610ebc565b60006123078686611d9d565b90507fffffff000000000000000000000000000000000000000000000000000000000081167f1976a900000000000000000000000000000000000000000000000000000000000361241b578561235e866003612a08565b8151811061236e5761236e612c29565b60209101015160f81c60141415806123e657506123a160026123908688612a08565b61239a91906129f5565b8790611d9d565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f88ac00000000000000000000000000000000000000000000000000000000000014155b15612404576040518060200160405280600081525092505050610ebc565b6122f2612412866004612a08565b87906014612109565b7fffffff000000000000000000000000000000000000000000000000000000000081167f17a9140000000000000000000000000000000000000000000000000000000000036124c2578560016124718688612a08565b61247b91906129f5565b8151811061248b5761248b612c29565b60209101015160f81c6087146124b4576040518060200160405280600081525092505050610ebc565b6122f2612412866003612a08565b5050506040805160208101909152600081529392505050565b60008060006124ea858561267f565b90508060ff1660000361251f57600085858151811061250b5761250b612c29565b016020015190935060f81c91506126789050565b8361252b8260016134f4565b60ff166125389190612a08565b8551101561254f5760001960009250925050612678565b60008160ff166002036125935761258861257461256d876001612a08565b8890611d9d565b62ffff0060e882901c1660f89190911c1790565b61ffff16905061266e565b8160ff166004036125e2576125d56125af61256d876001612a08565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b63ffffffff16905061266e565b8160ff1660080361266e576126616125fe61256d876001612a08565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b600082828151811061269357612693612c29565b016020015160f81c60ff036126aa575060086118c6565b8282815181106126bc576126bc612c29565b016020015160f81c60fe036126d3575060046118c6565b8282815181106126e5576126e5612c29565b016020015160f81c60fd036126fc575060026118c6565b50600092915050565b80356001600160601b03198116811461271d57600080fd5b919050565b60006020828403121561273457600080fd5b610ebc82612705565b634e487b7160e01b600052602160045260246000fd5b63ffffffff83168152604081016006831061277e57634e487b7160e01b600052602160045260246000fd5b8260208301529392505050565b6000806000604084860312156127a057600080fd5b6127a984612705565b9250602084013567ffffffffffffffff808211156127c657600080fd5b818601915086601f8301126127da57600080fd5b8135818111156127e957600080fd5b8760208285010111156127fb57600080fd5b6020830194508093505050509250925092565b63ffffffff8116811461155157600080fd5b600080600080600060a0868803121561283857600080fd5b85356128438161280e565b945060208601356128538161280e565b935060408601356128638161280e565b9250606086013561ffff8116811461287a57600080fd5b9150608086013561288a8161280e565b809150509295509295909350565b6000608082840312156128aa57600080fd5b50919050565b6000806000604084860312156128c557600080fd5b833567ffffffffffffffff808211156128dd57600080fd5b6128e987838801612898565b945060208601359150808211156128ff57600080fd5b818601915086601f83011261291357600080fd5b81358181111561292257600080fd5b8760208260051b85010111156127fb57600080fd5b6001600160a01b038116811461155157600080fd5b60006020828403121561295e57600080fd5b8135610ebc81612937565b6000806040838503121561297c57600080fd5b82356129878161280e565b915060208301356129978161280e565b809150509250929050565b6000602082840312156129b457600080fd5b813567ffffffffffffffff8111156129cb57600080fd5b6129d784828501612898565b949350505050565b634e487b7160e01b600052601160045260246000fd5b818103818111156118c6576118c66129df565b808201808211156118c6576118c66129df565b63ffffffff818116838216019080821115612a3857612a386129df565b5092915050565b6bffffffffffffffffffffffff198416815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f1916010192915050565b634e487b7160e01b600052604160045260246000fd5b604051610120810167ffffffffffffffff81118282101715612abe57612abe612a84565b60405290565b60405160a0810167ffffffffffffffff81118282101715612abe57612abe612a84565b6040516080810167ffffffffffffffff81118282101715612abe57612abe612a84565b805167ffffffffffffffff8116811461271d57600080fd5b805161271d8161280e565b80516006811061271d57600080fd5b60006101208284031215612b4f57600080fd5b612b57612a9a565b8251815260208301516020820152612b7160408401612b0a565b6040820152612b8260608401612b22565b6060820152612b9360808401612b22565b6080820152612ba460a08401612b22565b60a0820152612bb560c08401612b22565b60c0820152612bc660e08401612b2d565b60e0820152610100928301519281019290925250919050565b6000808335601e19843603018112612bf657600080fd5b83018035915067ffffffffffffffff821115612c1157600080fd5b6020019150600681901b360382131561267857600080fd5b634e487b7160e01b600052603260045260246000fd5b600060408284031215612c5157600080fd5b6040516040810181811067ffffffffffffffff82111715612c7457612c74612a84565b604052823581526020830135612c898161280e565b60208201529392505050565b60008235609e19833603018112612cab57600080fd5b9190910192915050565b80356001600160e01b03198116811461271d57600080fd5b600082601f830112612cde57600080fd5b813567ffffffffffffffff80821115612cf957612cf9612a84565b604051601f8301601f19908116603f01168101908282118183101715612d2157612d21612a84565b81604052838152866020858801011115612d3a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b803577ffffffffffffffffffffffffffffffffffffffffffffffff198116811461271d57600080fd5b600060a08236031215612d9557600080fd5b612d9d612ac4565b823567ffffffffffffffff80821115612db557600080fd5b818501915060808236031215612dca57600080fd5b612dd2612ae7565b612ddb83612cb5565b8152602083013582811115612def57600080fd5b612dfb36828601612ccd565b602083015250604083013582811115612e1357600080fd5b612e1f36828601612ccd565b604083015250612e3160608401612cb5565b6060820152835250612e47905060208401612d5a565b6020820152612e5860408401612705565b6040820152612e6960608401612705565b6060820152612e7a60808401612cb5565b608082015292915050565b600060c08284031215612e9757600080fd5b60405160c0810181811067ffffffffffffffff82111715612eba57612eba612a84565b6040528251612ec881612937565b8152612ed660208401612b0a565b60208201526040830151612ee98161280e565b60408201526060830151612efc81612937565b6060820152612f0d60808401612b0a565b608082015260a0830151612f208161280e565b60a08201529392505050565b63ffffffff828116828216039080821115612a3857612a386129df565b600060018201612f5b57612f5b6129df565b5060010190565b60008060008060808587031215612f7857600080fd5b8451612f8381612937565b6020860151909450612f9481612937565b6040860151909350612fa581612937565b6060860151909250612fb681612937565b939692955090935050565b8183526000602080850194508260005b85811015613007578135875282820135612fea8161280e565b63ffffffff16878401526040968701969190910190600101612fd1565b509495945050505050565b6000808335601e1984360301811261302957600080fd5b830160208101925035905067ffffffffffffffff81111561304957600080fd5b8060051b360382131561267857600080fd5b81835260007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83111561308d57600080fd5b8260051b80836020870137939093016020019392505050565b602081526001600160601b03196130bc83612705565b16602082015260006020830135601e198436030181126130db57600080fd5b830160208101903567ffffffffffffffff8111156130f857600080fd5b8060061b360382131561310a57600080fd5b6080604085015261311f60a085018284612fc1565b915050604084013560608401526131396060850185613012565b848303601f1901608086015261315083828461305b565b9695505050505050565b634e487b7160e01b600052601260045260246000fd5b60008261317f5761317f61315a565b500690565b6000826131935761319361315a565b500490565b600080600080608085870312156131ae57600080fd5b6131b785612b0a565b93506131c560208601612b0a565b92506131d360408601612b0a565b91506060850151612fb68161280e565b6000815160005b8181101561320457602081850181015186830152016131ea565b50600093019283525090919050565b60006001600160e01b0319808716835261323961323360048501886131e3565b866131e3565b9316835250506004019392505050565b600560fa1b8152606086901b6001600160601b0319166001820152607560f81b60158201527f0800000000000000000000000000000000000000000000000000000000000000601682015277ffffffffffffffffffffffffffffffffffffffffffffffff1985166017820152607560f81b601f820152600061332e6133216132f8602085015b7f7600000000000000000000000000000000000000000000000000000000000000815260010190565b7fa900000000000000000000000000000000000000000000000000000000000000815260010190565b600560fa1b815260010190565b6001600160601b0319861681527f870000000000000000000000000000000000000000000000000000000000000060148201527f630000000000000000000000000000000000000000000000000000000000000060158201526133ed6133216132f86132cf6133c4601686015b7fac00000000000000000000000000000000000000000000000000000000000000815260010190565b7f6700000000000000000000000000000000000000000000000000000000000000815260010190565b6001600160601b0319861681527f880000000000000000000000000000000000000000000000000000000000000060148201527f040000000000000000000000000000000000000000000000000000000000000060158201529050601681016001600160e01b0319851681527fb1000000000000000000000000000000000000000000000000000000000000006004820152607560f81b600582015290506134c361349a6006830161339b565b7f6800000000000000000000000000000000000000000000000000000000000000815260010190565b98975050505050505050565b6000610ebc82846131e3565b6000602082840312156134ed57600080fd5b5051919050565b60ff81811683821601908111156118c6576118c66129df565b60ff82811682821603908111156118c6576118c66129df56fea2646970667358221220066535bd08db934cec0ccdcb31d87d1041b8cb13c7803163a4bea22b3cc6e55b64736f6c63430008110033",
|
|
773
773
|
"linkReferences": {},
|
|
774
774
|
"deployedLinkReferences": {}
|
|
775
775
|
}
|
|
@@ -252,13 +252,13 @@ contract WalletCoordinator is OwnableUpgradeable, Reimbursable {
|
|
|
252
252
|
(, , , reimbursementPool) = _bridge.contractReferences();
|
|
253
253
|
|
|
254
254
|
heartbeatRequestValidity = 1 hours;
|
|
255
|
-
heartbeatRequestGasOffset =
|
|
255
|
+
heartbeatRequestGasOffset = 10_000;
|
|
256
256
|
|
|
257
257
|
depositSweepProposalValidity = 4 hours;
|
|
258
258
|
depositMinAge = 2 hours;
|
|
259
259
|
depositRefundSafetyMargin = 24 hours;
|
|
260
260
|
depositSweepMaxSize = 5;
|
|
261
|
-
depositSweepProposalSubmissionGasOffset =
|
|
261
|
+
depositSweepProposalSubmissionGasOffset = 20_000; // optimized for 10 inputs
|
|
262
262
|
}
|
|
263
263
|
|
|
264
264
|
/// @notice Adds the given address to the set of coordinator addresses.
|
|
@@ -601,7 +601,7 @@
|
|
|
601
601
|
"parameterSlots": 1,
|
|
602
602
|
"returnSlots": 0
|
|
603
603
|
},
|
|
604
|
-
"abi_decode_tuple_t_contract$_IERC20_$18219t_contract$_TBTC_$
|
|
604
|
+
"abi_decode_tuple_t_contract$_IERC20_$18219t_contract$_TBTC_$40899t_uint256_fromMemory": {
|
|
605
605
|
"entryPoint": 230,
|
|
606
606
|
"id": null,
|
|
607
607
|
"parameterSlots": 2,
|
|
@@ -1045,7 +1045,7 @@
|
|
|
1045
1045
|
}
|
|
1046
1046
|
]
|
|
1047
1047
|
},
|
|
1048
|
-
"name": "abi_decode_tuple_t_contract$_IERC20_$18219t_contract$_TBTC_$
|
|
1048
|
+
"name": "abi_decode_tuple_t_contract$_IERC20_$18219t_contract$_TBTC_$40899t_uint256_fromMemory",
|
|
1049
1049
|
"nodeType": "YulFunctionDefinition",
|
|
1050
1050
|
"parameters": [
|
|
1051
1051
|
{
|
|
@@ -1085,7 +1085,7 @@
|
|
|
1085
1085
|
}
|
|
1086
1086
|
]
|
|
1087
1087
|
},
|
|
1088
|
-
"contents": "{\n { }\n function validator_revert_contract_IERC20(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_contract$_IERC20_$18219t_contract$_TBTC_$
|
|
1088
|
+
"contents": "{\n { }\n function validator_revert_contract_IERC20(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_contract$_IERC20_$18219t_contract$_TBTC_$40899t_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_contract_IERC20(value)\n value0 := value\n let value_1 := mload(add(headStart, 32))\n validator_revert_contract_IERC20(value_1)\n value1 := value_1\n value2 := mload(add(headStart, 64))\n }\n}",
|
|
1089
1089
|
"id": 125,
|
|
1090
1090
|
"language": "Yul",
|
|
1091
1091
|
"name": "#utility.yul"
|
|
@@ -1415,7 +1415,7 @@
|
|
|
1415
1415
|
"parameterSlots": 2,
|
|
1416
1416
|
"returnSlots": 1
|
|
1417
1417
|
},
|
|
1418
|
-
"abi_encode_tuple_t_contract$_TBTC_$
|
|
1418
|
+
"abi_encode_tuple_t_contract$_TBTC_$40899__to_t_address__fromStack_reversed": {
|
|
1419
1419
|
"entryPoint": null,
|
|
1420
1420
|
"id": null,
|
|
1421
1421
|
"parameterSlots": 2,
|
|
@@ -3111,7 +3111,7 @@
|
|
|
3111
3111
|
}
|
|
3112
3112
|
]
|
|
3113
3113
|
},
|
|
3114
|
-
"name": "abi_encode_tuple_t_contract$_TBTC_$
|
|
3114
|
+
"name": "abi_encode_tuple_t_contract$_TBTC_$40899__to_t_address__fromStack_reversed",
|
|
3115
3115
|
"nodeType": "YulFunctionDefinition",
|
|
3116
3116
|
"parameters": [
|
|
3117
3117
|
{
|
|
@@ -8190,7 +8190,7 @@
|
|
|
8190
8190
|
}
|
|
8191
8191
|
]
|
|
8192
8192
|
},
|
|
8193
|
-
"contents": "{\n { }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_encode_tuple_t_contract$_IERC20_$18219__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_addresst_uint256t_addresst_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := abi_decode_address(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n let length := calldataload(_2)\n if gt(length, _1) { revert(0, 0) }\n if gt(add(add(_2, length), 32), dataEnd) { revert(0, 0) }\n value3 := add(_2, 32)\n value4 := length\n }\n function abi_encode_tuple_t_contract$_TBTC_$40886__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_stringliteral_9e5d6ee1ae898a2df1a30570594add9e68ad8b6af4a57d7f5f0cb2842bacfb92__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"Caller is not authorized\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_df41f55d800b6607edb1865fb30b4ab33d723889d164c99cca8fee73ff0a30ba__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"New initiator must not be zero a\")\n mstore(add(headStart, 96), \"ddress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_stringliteral_b1549855d8fed0f683c741615955b3e3f5ac1fbe3fc645d4559c62450ecc9620__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 41)\n mstore(add(headStart, 64), \"New VendingMachine cannot be zer\")\n mstore(add(headStart, 96), \"o address\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n mstore(add(headStart, 32), value1)\n }\n function panic_error_0x11()\n {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum) { panic_error_0x11() }\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := mload(headStart)\n }\n function abi_encode_tuple_t_stringliteral_1a06921938f9f63c056c578e8a5f166d5d113ae30837c6c39a7741ed0e1467eb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"Amount + fee exceeds TBTC v2 bal\")\n mstore(add(headStart, 96), \"ance\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_ea12df8d4a8fcefc5cad59efc2d58b797f642582ed766ffab36a121e023bc406__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 20)\n mstore(add(headStart, 64), \"Token is not TBTC v1\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_fd4966bd1bdd27d0ab34b8489f15fc58fd6abfe9ed90887e0c2e4963267e6422__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"Only TBTC v1 caller allowed\")\n tail := add(headStart, 96)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n product := mul(x, y)\n if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y)\n {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n r := div(x, y)\n }\n function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n mstore(add(headStart, 96), \"ddress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_61334796e55ed72efd746c0931e2d3cac4c97d3130d7bb275d5f0f57af1f045e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 20)\n mstore(add(headStart, 64), \"Change not initiated\")\n tail := add(headStart, 96)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n diff := sub(x, y)\n if gt(diff, x) { panic_error_0x11() }\n }\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_92dde2c37d5ac1c8388fee9c21ec0fe0c957aca7e978d56c81b848f962f0a8ba__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Governance delay has not elapsed\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 42)\n mstore(add(headStart, 64), \"SafeERC20: ERC20 operation did n\")\n mstore(add(headStart, 96), \"ot succeed\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Address: insufficient balance fo\")\n mstore(add(headStart, 96), \"r call\")\n tail := add(headStart, 128)\n }\n function copy_memory_to_memory_with_cleanup(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"Address: call to non-contract\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n let length := mload(value0)\n mstore(add(headStart, 32), length)\n copy_memory_to_memory_with_cleanup(add(value0, 32), add(headStart, 64), length)\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n}",
|
|
8193
|
+
"contents": "{\n { }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_encode_tuple_t_contract$_IERC20_$18219__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_addresst_uint256t_addresst_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := abi_decode_address(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n let length := calldataload(_2)\n if gt(length, _1) { revert(0, 0) }\n if gt(add(add(_2, length), 32), dataEnd) { revert(0, 0) }\n value3 := add(_2, 32)\n value4 := length\n }\n function abi_encode_tuple_t_contract$_TBTC_$40899__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_stringliteral_9e5d6ee1ae898a2df1a30570594add9e68ad8b6af4a57d7f5f0cb2842bacfb92__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"Caller is not authorized\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_df41f55d800b6607edb1865fb30b4ab33d723889d164c99cca8fee73ff0a30ba__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"New initiator must not be zero a\")\n mstore(add(headStart, 96), \"ddress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_stringliteral_b1549855d8fed0f683c741615955b3e3f5ac1fbe3fc645d4559c62450ecc9620__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 41)\n mstore(add(headStart, 64), \"New VendingMachine cannot be zer\")\n mstore(add(headStart, 96), \"o address\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n mstore(add(headStart, 32), value1)\n }\n function panic_error_0x11()\n {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum) { panic_error_0x11() }\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := mload(headStart)\n }\n function abi_encode_tuple_t_stringliteral_1a06921938f9f63c056c578e8a5f166d5d113ae30837c6c39a7741ed0e1467eb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"Amount + fee exceeds TBTC v2 bal\")\n mstore(add(headStart, 96), \"ance\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_ea12df8d4a8fcefc5cad59efc2d58b797f642582ed766ffab36a121e023bc406__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 20)\n mstore(add(headStart, 64), \"Token is not TBTC v1\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_fd4966bd1bdd27d0ab34b8489f15fc58fd6abfe9ed90887e0c2e4963267e6422__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"Only TBTC v1 caller allowed\")\n tail := add(headStart, 96)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n product := mul(x, y)\n if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y)\n {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n r := div(x, y)\n }\n function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n mstore(add(headStart, 96), \"ddress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_61334796e55ed72efd746c0931e2d3cac4c97d3130d7bb275d5f0f57af1f045e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 20)\n mstore(add(headStart, 64), \"Change not initiated\")\n tail := add(headStart, 96)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n diff := sub(x, y)\n if gt(diff, x) { panic_error_0x11() }\n }\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_92dde2c37d5ac1c8388fee9c21ec0fe0c957aca7e978d56c81b848f962f0a8ba__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Governance delay has not elapsed\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 42)\n mstore(add(headStart, 64), \"SafeERC20: ERC20 operation did n\")\n mstore(add(headStart, 96), \"ot succeed\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Address: insufficient balance fo\")\n mstore(add(headStart, 96), \"r call\")\n tail := add(headStart, 128)\n }\n function copy_memory_to_memory_with_cleanup(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"Address: call to non-contract\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n let length := mload(value0)\n mstore(add(headStart, 32), length)\n copy_memory_to_memory_with_cleanup(add(value0, 32), add(headStart, 64), length)\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n}",
|
|
8194
8194
|
"id": 125,
|
|
8195
8195
|
"language": "Yul",
|
|
8196
8196
|
"name": "#utility.yul"
|
|
@@ -311,7 +311,7 @@
|
|
|
311
311
|
"parameterSlots": 1,
|
|
312
312
|
"returnSlots": 0
|
|
313
313
|
},
|
|
314
|
-
"abi_decode_tuple_t_contract$_IERC20_$18219t_contract$_TBTC_$
|
|
314
|
+
"abi_decode_tuple_t_contract$_IERC20_$18219t_contract$_TBTC_$40899_fromMemory": {
|
|
315
315
|
"entryPoint": 183,
|
|
316
316
|
"id": null,
|
|
317
317
|
"parameterSlots": 2,
|
|
@@ -710,7 +710,7 @@
|
|
|
710
710
|
}
|
|
711
711
|
]
|
|
712
712
|
},
|
|
713
|
-
"name": "abi_decode_tuple_t_contract$_IERC20_$18219t_contract$_TBTC_$
|
|
713
|
+
"name": "abi_decode_tuple_t_contract$_IERC20_$18219t_contract$_TBTC_$40899_fromMemory",
|
|
714
714
|
"nodeType": "YulFunctionDefinition",
|
|
715
715
|
"parameters": [
|
|
716
716
|
{
|
|
@@ -744,7 +744,7 @@
|
|
|
744
744
|
}
|
|
745
745
|
]
|
|
746
746
|
},
|
|
747
|
-
"contents": "{\n { }\n function validator_revert_contract_IERC20(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_contract$_IERC20_$18219t_contract$_TBTC_$
|
|
747
|
+
"contents": "{\n { }\n function validator_revert_contract_IERC20(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_contract$_IERC20_$18219t_contract$_TBTC_$40899_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_contract_IERC20(value)\n value0 := value\n let value_1 := mload(add(headStart, 32))\n validator_revert_contract_IERC20(value_1)\n value1 := value_1\n }\n}",
|
|
748
748
|
"id": 125,
|
|
749
749
|
"language": "Yul",
|
|
750
750
|
"name": "#utility.yul"
|
|
@@ -948,7 +948,7 @@
|
|
|
948
948
|
"parameterSlots": 2,
|
|
949
949
|
"returnSlots": 1
|
|
950
950
|
},
|
|
951
|
-
"abi_encode_tuple_t_contract$_TBTC_$
|
|
951
|
+
"abi_encode_tuple_t_contract$_TBTC_$40899__to_t_address__fromStack_reversed": {
|
|
952
952
|
"entryPoint": null,
|
|
953
953
|
"id": null,
|
|
954
954
|
"parameterSlots": 2,
|
|
@@ -2707,7 +2707,7 @@
|
|
|
2707
2707
|
}
|
|
2708
2708
|
]
|
|
2709
2709
|
},
|
|
2710
|
-
"name": "abi_encode_tuple_t_contract$_TBTC_$
|
|
2710
|
+
"name": "abi_encode_tuple_t_contract$_TBTC_$40899__to_t_address__fromStack_reversed",
|
|
2711
2711
|
"nodeType": "YulFunctionDefinition",
|
|
2712
2712
|
"parameters": [
|
|
2713
2713
|
{
|
|
@@ -6076,7 +6076,7 @@
|
|
|
6076
6076
|
}
|
|
6077
6077
|
]
|
|
6078
6078
|
},
|
|
6079
|
-
"contents": "{\n { }\n function validator_revert_contract_IERC20(value)\n {\n if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_contract$_IERC20_$18219t_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_contract_IERC20(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_contract_IERC20(value_1)\n value1 := value_1\n value2 := calldataload(add(headStart, 64))\n }\n function abi_encode_tuple_t_contract$_IERC20_$18219__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n }\n function abi_decode_tuple_t_addresst_uint256t_addresst_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_contract_IERC20(value)\n value0 := value\n value1 := calldataload(add(headStart, 32))\n let value_1 := calldataload(add(headStart, 64))\n validator_revert_contract_IERC20(value_1)\n value2 := value_1\n let offset := calldataload(add(headStart, 96))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n let length := calldataload(_2)\n if gt(length, _1) { revert(0, 0) }\n if gt(add(add(_2, length), 32), dataEnd) { revert(0, 0) }\n value3 := add(_2, 32)\n value4 := length\n }\n function abi_encode_tuple_t_contract$_TBTC_$
|
|
6079
|
+
"contents": "{\n { }\n function validator_revert_contract_IERC20(value)\n {\n if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_contract$_IERC20_$18219t_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_contract_IERC20(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_contract_IERC20(value_1)\n value1 := value_1\n value2 := calldataload(add(headStart, 64))\n }\n function abi_encode_tuple_t_contract$_IERC20_$18219__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n }\n function abi_decode_tuple_t_addresst_uint256t_addresst_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_contract_IERC20(value)\n value0 := value\n value1 := calldataload(add(headStart, 32))\n let value_1 := calldataload(add(headStart, 64))\n validator_revert_contract_IERC20(value_1)\n value2 := value_1\n let offset := calldataload(add(headStart, 96))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n let length := calldataload(_2)\n if gt(length, _1) { revert(0, 0) }\n if gt(add(add(_2, length), 32), dataEnd) { revert(0, 0) }\n value3 := add(_2, 32)\n value4 := length\n }\n function abi_encode_tuple_t_contract$_TBTC_$40899__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_contract_IERC20(value)\n value0 := value\n }\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_stringliteral_f9abe958fad76966d1c3d8b1924bd1c1f7130eb77673292d88e768625cb7d832__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 20)\n mstore(add(headStart, 64), \"Token is not tBTC v1\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_82afa2706b38d988b36925e5facb3efa4666973f2e3f984e55eedf106656e77a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"Only tBTC v1 caller allowed\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n mstore(add(headStart, 96), \"ddress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n tail := add(headStart, 96)\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := mload(headStart)\n }\n function abi_encode_tuple_t_stringliteral_faa67e5aa2cc69c3aaf867fefd341e0cdc57e1efd0108087082c2f3812369ba4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 51)\n mstore(add(headStart, 64), \"Not enough tBTC v2 available in \")\n mstore(add(headStart, 96), \"the Vending Machine\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 42)\n mstore(add(headStart, 64), \"SafeERC20: ERC20 operation did n\")\n mstore(add(headStart, 96), \"ot succeed\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Address: insufficient balance fo\")\n mstore(add(headStart, 96), \"r call\")\n tail := add(headStart, 128)\n }\n function copy_memory_to_memory_with_cleanup(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"Address: call to non-contract\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n let length := mload(value0)\n mstore(add(headStart, 32), length)\n copy_memory_to_memory_with_cleanup(add(value0, 32), add(headStart, 64), length)\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n}",
|
|
6080
6080
|
"id": 125,
|
|
6081
6081
|
"language": "Yul",
|
|
6082
6082
|
"name": "#utility.yul"
|