@keep-network/tbtc-v2 0.1.1-dev.89 → 0.1.1-dev.91
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/Bank.json +24 -34
- package/artifacts/Bridge.json +13 -379
- package/artifacts/Deposit.json +4 -4
- package/artifacts/DepositSweep.json +4 -4
- package/artifacts/EcdsaDkgValidator.json +1 -1
- package/artifacts/EcdsaInactivity.json +1 -1
- package/artifacts/EcdsaSortitionPool.json +2 -2
- package/artifacts/Fraud.json +4 -4
- 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/MovingFunds.json +4 -4
- package/artifacts/NuCypherStakingEscrow.json +1 -1
- package/artifacts/NuCypherToken.json +2 -2
- package/artifacts/RandomBeaconStub.json +1 -1
- package/artifacts/Redemption.json +4 -4
- package/artifacts/ReimbursementPool.json +2 -2
- package/artifacts/Relay.json +7 -7
- package/artifacts/T.json +2 -2
- package/artifacts/TBTC.json +3 -3
- package/artifacts/TBTCToken.json +3 -3
- package/artifacts/TBTCVault.json +6 -6
- 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/WalletRegistry.json +5 -5
- package/artifacts/WalletRegistryGovernance.json +2 -2
- package/artifacts/Wallets.json +4 -4
- package/artifacts/solcInputs/{00e4740299c76687f54267cd49adc9d5.json → 6e28b66ed60b6dd7b2b25b3a1c4fe89b.json} +1 -1
- 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/Bridge.sol/Bridge.json +2 -2
- 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/Wallets.sol/Wallets.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/TBTCVault.sol/TBTCVault.dbg.json +1 -1
- package/contracts/bridge/Bridge.sol +14 -2
- package/deploy/04_deploy_bank.ts +1 -1
- package/deploy/05_deploy_bridge.ts +1 -1
- package/export.json +5 -384
- package/package.json +3 -2
|
@@ -2461,8 +2461,8 @@
|
|
|
2461
2461
|
"type": "function"
|
|
2462
2462
|
}
|
|
2463
2463
|
],
|
|
2464
|
-
"bytecode": "0x608060405234801561001057600080fd5b50614c7b806100206000396000f3fe60806040526004361061031e5760003560e01c806379fc4eb3116101a5578063b34b3216116100ec578063d6eccdf011610095578063e65e19d51161006f578063e65e19d514610e93578063ee1dd3ea14610ec0578063f18cf1b114610ee0578063f7013ef614610f0d57600080fd5b8063d6eccdf014610e0e578063ded1d24a14610e2e578063e53c0b5514610e5a57600080fd5b8063c42b64d0116100c6578063c42b64d014610d83578063c8b5d2db14610dce578063d38bfff414610dee57600080fd5b8063b34b321614610c8d578063b7d372a414610cad578063be05abe314610ccd57600080fd5b8063a9de2f3a1161014e578063b2146cd611610128578063b2146cd614610c0d578063b216bd3514610c4d578063b29a604b14610c6d57600080fd5b8063a9de2f3a14610a6b578063abaeed8f14610aab578063b02c43d014610acb57600080fd5b80639c49c4181161017f5780639c49c41814610a0b578063a145e2d514610a2b578063a8fa0f4214610a4b57600080fd5b806379fc4eb3146109ab578063883d6a11146109cb57806392238f32146109eb57600080fd5b8063475d05701161026957806361ccf97a116102125780636e70ce41116101ec5780636e70ce41146108b257806375b922d11461094457806377145f211461098b57600080fd5b806361ccf97a146107f157806361d027b314610881578063685ce1b11461089f57600080fd5b80635aa6e675116102435780635aa6e675146107795780635c0b4812146107b157806360d712fc146107d157600080fd5b8063475d05701461071957806350aea15a14610739578063575e42791461075957600080fd5b806324028c11116102cb57806331a4889a116102a557806331a4889a146105fa57806333e957cb1461061a5780633dce9812146106f957600080fd5b806324028c111461058a5780632bb818c2146105bc5780632f429b64146105da57600080fd5b80630b6ba19d116102fc5780630b6ba19d1461048d578063133cafc81461054a57806317c964001461056a57600080fd5b806303d952f7146103235780630674f2661461044b57806307f7d2231461046d575b600080fd5b34801561032f57600080fd5b506103e061033e366004613829565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915250600090815260456020908152604091829020825160a08101845281546001600160a01b0381168252600160a01b90046001600160401b039081169382019390935260019091015480831693820193909352600160401b83049091166060820152600160801b90910463ffffffff16608082015290565b6040516104429190600060a0820190506001600160a01b03835116825260208301516001600160401b038082166020850152806040860151166040850152806060860151166060850152505063ffffffff608084015116608083015292915050565b60405180910390f35b34801561045757600080fd5b5061046b61046636600461388a565b610f2d565b005b34801561047957600080fd5b5061046b610488366004613925565b610fbc565b34801561049957600080fd5b506103e06104a8366004613829565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915250600090815260466020908152604091829020825160a08101845281546001600160a01b0381168252600160a01b90046001600160401b039081169382019390935260019091015480831693820193909352600160401b83049091166060820152600160801b90910463ffffffff16608082015290565b34801561055657600080fd5b5061046b610565366004613982565b611045565b34801561057657600080fd5b5061046b610585366004613a1e565b61109e565b34801561059657600080fd5b50604e54600160a01b900463ffffffff1660405163ffffffff9091168152602001610442565b3480156105c857600080fd5b50603654604051908152602001610442565b3480156105e657600080fd5b5061046b6105f5366004613a61565b61110f565b34801561060657600080fd5b5061046b610615366004613b1f565b611166565b34801561062657600080fd5b506106b5610635366004613829565b604080516080810182526000808252602082018190529181018290526060810191909152506000908152604b6020908152604091829020825160808101845281546001600160a01b031681526001820154928101929092526002015463ffffffff81169282019290925264010000000090910460ff161515606082015290565b604051610442919081516001600160a01b031681526020808301519082015260408083015163ffffffff169082015260609182015115159181019190915260800190565b34801561070557600080fd5b5061046b610714366004613b9f565b6111f8565b34801561072557600080fd5b5061046b610734366004613bcb565b611288565b34801561074557600080fd5b5061046b610754366004613c2c565b61132a565b34801561076557600080fd5b5061046b610774366004613925565b611383565b34801561078557600080fd5b50600054610799906001600160a01b031681565b6040516001600160a01b039091168152602001610442565b3480156107bd57600080fd5b5061046b6107cc366004613c79565b6113d8565b3480156107dd57600080fd5b5061046b6107ec366004613ce3565b61142d565b3480156107fd57600080fd5b50604d54604e54604f546040805163ffffffff80861682526001600160401b036401000000008704811660208401526c010000000000000000000000008704811693830193909352600160a01b860483166060830152600160e01b90950485166080820152600160c01b9093041660a08301529190911660c082015260e001610442565b34801561088d57600080fd5b506037546001600160a01b0316610799565b61046b6108ad366004613daf565b6114e6565b3480156108be57600080fd5b506108fd6041546042546043546044546001600160401b0380851695600160401b8604821695600160801b900490911693926001600160601b03169190565b604080516001600160401b0397881681529587166020870152939095169284019290925260608301526001600160601b0316608082015260a081019190915260c001610442565b34801561095057600080fd5b50604754604854604954604a546040805194855260208501939093526001600160601b03909116918301919091526060820152608001610442565b34801561099757600080fd5b5061046b6109a6366004613e1e565b61153f565b3480156109b757600080fd5b5061046b6109c6366004613e9e565b61159a565b3480156109d757600080fd5b5061046b6109e6366004613f31565b6115f5565b3480156109f757600080fd5b5061046b610a06366004613fb7565b611660565b348015610a1757600080fd5b5061046b610a26366004614020565b6116b7565b348015610a3757600080fd5b5061046b610a463660046140cc565b611731565b348015610a5757600080fd5b5061046b610a66366004613b9f565b6117b7565b348015610a7757600080fd5b50603354603454603554604080516001600160a01b0394851681529284166020840152921691810191909152606001610442565b348015610ab757600080fd5b5061046b610ac63660046140ef565b61181d565b348015610ad757600080fd5b50610b98610ae6366004613829565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915250600090815260396020908152604091829020825160c08101845281546001600160a01b0380821683526001600160401b03600160a01b80840482169685019690965263ffffffff600160e01b9384900481169785019790975260019094015490811660608401529384049092166080820152910490911660a082015290565b6040516104429190600060c0820190506001600160a01b0380845116835260208401516001600160401b0380821660208601526040860151915063ffffffff80831660408701528360608801511660608701528160808801511660808701528060a08801511660a08701525050505092915050565b348015610c1957600080fd5b50610c3d610c28366004613829565b6000908152604c602052604090205460ff1690565b6040519015158152602001610442565b348015610c5957600080fd5b5061046b610c6836600461418a565b6118b5565b348015610c7957600080fd5b5061046b610c883660046141f0565b61191f565b348015610c9957600080fd5b5061046b610ca8366004613a61565b61198d565b348015610cb957600080fd5b5061046b610cc836600461422d565b6119e6565b348015610cd957600080fd5b50603b54603c54603d54603e54603f54604080516001600160401b038088168252600160401b8089048216602084015263ffffffff600160801b8a04811694840194909452600160a01b909804831660608301526001600160601b03968716608083015260a082019590955293831660c085015294820490941660e08301526c01000000000000000000000000900490911661010082015261012081019190915261014001610442565b348015610d8f57600080fd5b5060375460385460408051600160a01b9093046001600160401b0390811684528083166020850152600160401b90920490911690820152606001610442565b348015610dda57600080fd5b5061046b610de9366004614298565b611a3d565b348015610dfa57600080fd5b5061046b610e093660046142b3565b611a4b565b348015610e1a57600080fd5b5061046b610e293660046142ce565b611b2a565b348015610e3a57600080fd5b50604e5460601b6040516001600160601b03199091168152602001610442565b348015610e6657600080fd5b50610c3d610e753660046142b3565b6001600160a01b03166000908152603a602052604090205460ff1690565b348015610e9f57600080fd5b50610eb3610eae366004614298565b611b87565b6040516104429190614362565b348015610ecc57600080fd5b5061046b610edb366004614298565b611caa565b348015610eec57600080fd5b50610f00610efb366004613829565b611d0b565b6040516104429190614406565b348015610f1957600080fd5b5061046b610f2836600461445e565b611dc4565b6040517f94fcaf8d00000000000000000000000000000000000000000000000000000000815273__$a542940934c03bae9a39609192cb25cc3c$__906394fcaf8d90610f869060339088908890889088906004016144e3565b60006040518083038186803b158015610f9e57600080fd5b505af4158015610fb2573d6000803e3d6000fd5b5050505050505050565b6040517f260b6cde00000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__9063260b6cde906110119060339086908690600401614555565b60006040518083038186803b15801561102957600080fd5b505af415801561103d573d6000803e3d6000fd5b505050505050565b6040517fd22cd45b00000000000000000000000000000000000000000000000000000000815273__$24f7e155a6d011c1bf9032506ba9b1954c$__9063d22cd45b90610f869060339088908890889088906004016146b2565b6000546001600160a01b031633146110fd5760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064015b60405180910390fd5b61110a60338484846121df565b505050565b6040517e92bac900000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__906292bac990610f86906033908890889088908890600401614706565b6040517fa76558b300000000000000000000000000000000000000000000000000000000815273__$9935b6ea18e0c526c293569ddd26842c9b$__9063a76558b3906111c1906033908990899089908990899060040161479f565b60006040518083038186803b1580156111d957600080fd5b505af41580156111ed573d6000803e3d6000fd5b505050505050505050565b6040517fc87de7f400000000000000000000000000000000000000000000000000000000815260336004820152602481018390526044810182905273__$0f118c52967a3847a37f0a2ef02ffcee04$__9063c87de7f4906064015b60006040518083038186803b15801561126b57600080fd5b505af415801561127f573d6000803e3d6000fd5b50505050505050565b6033546001600160a01b031633146112e25760405162461bcd60e51b815260206004820152601660248201527f43616c6c6572206973206e6f74207468652062616e6b0000000000000000000060448201526064016110f4565b73__$9935b6ea18e0c526c293569ddd26842c9b$__63d253980860338661130887612412565b86866040518663ffffffff1660e01b8152600401610f869594939291906147e9565b6040517f899bef9d00000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__9063899bef9d90610f8690603390889088908890889060040161482c565b6040517f99b0b84700000000000000000000000000000000000000000000000000000000815273__$0f118c52967a3847a37f0a2ef02ffcee04$__906399b0b847906110119060339086908690600401614555565b6040517faea7fd0b00000000000000000000000000000000000000000000000000000000815273__$894ce12e79ca3e5683c1b49e363f37fa22$__9063aea7fd0b906110119060339086908690600401614858565b6000546001600160a01b031633146114875760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110f4565b6001600160a01b0382166000818152603a6020908152604091829020805460ff191685151590811790915591519182527f9065599c12c4294d9e2201638226d0d0beb95c228f468c4e7c2bdb8322b6066f910160405180910390a25050565b6040517feb8fdd5d00000000000000000000000000000000000000000000000000000000815273__$a542940934c03bae9a39609192cb25cc3c$__9063eb8fdd5d90610f869060339088908890889088906004016149b2565b6040517f624526fe00000000000000000000000000000000000000000000000000000000815273__$a542940934c03bae9a39609192cb25cc3c$__9063624526fe906111c19060339089908990899089908990600401614a19565b6040517f80ffe94a00000000000000000000000000000000000000000000000000000000815273__$a542940934c03bae9a39609192cb25cc3c$__906380ffe94a906111c19060339089908990899089908990600401614a5c565b6000546001600160a01b0316331461164f5760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110f4565b61127f603388888888888888612495565b6040517f07f96c4200000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__906307f96c429061125390603390879087908790600401614a9d565b6000546001600160a01b031633146117115760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110f4565b61172560338b8b8b8b8b8b8b8b8b8b612858565b50505050505050505050565b6040517fd079fbb100000000000000000000000000000000000000000000000000000000815273__$0f118c52967a3847a37f0a2ef02ffcee04$__9063d079fbb190611784906033908590600401614ac7565b60006040518083038186803b15801561179c57600080fd5b505af41580156117b0573d6000803e3d6000fd5b5050505050565b6040517f4afbe4c90000000000000000000000000000000000000000000000000000000081526033600482015260248101849052604481018390526064810182905273__$0f118c52967a3847a37f0a2ef02ffcee04$__90634afbe4c990608401611253565b6040517fc8f7794300000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__9063c8f779439061187c906033908b908b908b908b908b908b908b90600401614adb565b60006040518083038186803b15801561189457600080fd5b505af41580156118a8573d6000803e3d6000fd5b5050505050505050505050565b6000546001600160a01b0316331461190f5760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110f4565b61103d6033878787878787612ef5565b6000546001600160a01b031633146119795760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110f4565b6119876033858585856132ae565b50505050565b6040517fa164de6e00000000000000000000000000000000000000000000000000000000815273__$9935b6ea18e0c526c293569ddd26842c9b$__9063a164de6e90610f86906033908890889088908890600401614706565b6040517fb79a972500000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__9063b79a97259061125390603390879087908790600401614b66565b611a48603382613420565b50565b6000546001600160a01b03163314611aa55760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110f4565b6001600160a01b038116611b215760405162461bcd60e51b815260206004820152602260248201527f4e657720676f7665726e616e636520697320746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016110f4565b611a4881613578565b6040517ff5ada44200000000000000000000000000000000000000000000000000000000815273__$9935b6ea18e0c526c293569ddd26842c9b$__9063f5ada442906111c1906033908990899033908a908a908a90600401614baa565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101919091526001600160601b031982166000908152605060209081526040918290208251610120810184528154815260018201549281019290925260028101546001600160401b0381169383019390935263ffffffff600160401b8404811660608401526c01000000000000000000000000840481166080840152600160801b8404811660a0840152600160a01b84041660c0830152909160e083019060ff600160c01b909104166005811115611c8457611c84614338565b6005811115611c9557611c95614338565b81526020016003820154815250509050919050565b6040517f9b69e71d000000000000000000000000000000000000000000000000000000008152603360048201526001600160601b03198216602482015273__$edce581bb06331cf4dae1387760565e5d1$__90639b69e71d90604401611784565b611d336040805160808101825260008082526020820181905291810182905290606082015290565b6000828152604060208181529181902081516080810183528154606081811b6001600160601b0319168352600160a01b82046001600160401b031695830195909552600160e01b900463ffffffff16928101929092526001810154919290919083019060ff166003811115611daa57611daa614338565b6003811115611dbb57611dbb614338565b90525092915050565b6000611dd060016135e6565b90508015611de8576032805461ff0019166101001790555b6001600160a01b038616611e3e5760405162461bcd60e51b815260206004820152601b60248201527f42616e6b20616464726573732063616e6e6f74206265207a65726f000000000060448201526064016110f4565b6033805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03888116919091179091558516611eb95760405162461bcd60e51b815260206004820152601c60248201527f52656c617920616464726573732063616e6e6f74206265207a65726f0000000060448201526064016110f4565b6034805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03878116919091179091558316611f5a5760405162461bcd60e51b815260206004820152602c60248201527f45434453412057616c6c6574205265676973747279206164647265737320636160448201527f6e6e6f74206265207a65726f000000000000000000000000000000000000000060648201526084016110f4565b6035805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03858116919091179091558416611fd55760405162461bcd60e51b815260206004820152601f60248201527f547265617375727920616464726573732063616e6e6f74206265207a65726f0060448201526064016110f4565b6037805460368490556001600160a01b0386166001600160e01b031990911617760f42400000000000000000000000000000000000000000179055603880546fffffffffffffffffffffffffffffffff191669271000000000000007d01790556041805477ffffffffffffffffffffffffffffffffffffffffffffffff1990811671271000000000000007d000000000000f4240179091556202a3006042556043805469021e19e0c9bab24000006001600160601b0319918216811790925560646044819055603b8054851676093a800007e9000000000000004e200000000000002710179055603c8054831684179055603d819055603e805490941675021e19e0c9bab240000000093a80000000000000271017909355603f839055671bc16d674ec8000060475562093a80604855604980549091169091179055604a557eeff1000000000002faf08000000002540be4000000000005f5e10000093a80604d55604e805477ffffffffffffffffffffffffffffffffffffffffffffffff167b3b9aca00000000000000000000000000000000000000000000000000179055604f80546234bc0063ffffffff1990911617905561219233613578565b801561103d576032805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b6000836001600160401b03161161225e5760405162461bcd60e51b815260206004820152603060248201527f4465706f7369742064757374207468726573686f6c64206d757374206265206760448201527f726561746572207468616e207a65726f0000000000000000000000000000000060648201526084016110f4565b6000826001600160401b0316116122dd5760405162461bcd60e51b815260206004820152603660248201527f4465706f736974207472656173757279206665652064697669736f72206d757360448201527f742062652067726561746572207468616e207a65726f0000000000000000000060648201526084016110f4565b6000816001600160401b03161161235c5760405162461bcd60e51b815260206004820152603560248201527f4465706f736974207472616e73616374696f6e206d617820666565206d75737460448201527f2062652067726561746572207468616e207a65726f000000000000000000000060648201526084016110f4565b6004840180547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff16600160a01b6001600160401b03868116918202929092179092556005860180548583166fffffffffffffffffffffffffffffffff199091168117600160401b938616938402179091556040805193845260208401919091528201527f1ced468902ca566e746a3c8c9516af81f8de9f1021c365083be9f2625ebfb7b59060600160405180910390a150505050565b60006001600160401b038211156124915760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201527f342062697473000000000000000000000000000000000000000000000000000060648201526084016110f4565b5090565b856001600160401b0316856001600160401b0316116125425760405162461bcd60e51b815260206004820152605960248201527f57616c6c6574206372656174696f6e206d6178696d756d204254432062616c6160448201527f6e6365206d7573742062652067726561746572207468616e207468652063726560648201527f6174696f6e206d696e696d756d204254432062616c616e636500000000000000608482015260a4016110f4565b6000846001600160401b0316116125c15760405162461bcd60e51b815260206004820152603c60248201527f57616c6c657420636c6f73757265206d696e696d756d204254432062616c616e60448201527f6365206d7573742062652067726561746572207468616e207a65726f0000000060648201526084016110f4565b6000826001600160401b0316116126405760405162461bcd60e51b815260206004820152603560248201527f57616c6c6574206d6178696d756d20425443207472616e73666572206d75737460448201527f2062652067726561746572207468616e207a65726f000000000000000000000060648201526084016110f4565b60008163ffffffff16116126bc5760405162461bcd60e51b815260206004820152602f60248201527f57616c6c657420636c6f73696e6720706572696f64206d75737420626520677260448201527f6561746572207468616e207a65726f000000000000000000000000000000000060648201526084016110f4565b8688601a0160006101000a81548163ffffffff021916908363ffffffff1602179055508588601a0160046101000a8154816001600160401b0302191690836001600160401b031602179055508488601a01600c6101000a8154816001600160401b0302191690836001600160401b031602179055508388601a0160146101000a8154816001600160401b0302191690836001600160401b031602179055508288601a01601c6101000a81548163ffffffff021916908363ffffffff1602179055508188601b0160186101000a8154816001600160401b0302191690836001600160401b031602179055508088601c0160006101000a81548163ffffffff021916908363ffffffff1602179055507fc7d3a9af08692aeae771c329fddd95c7237a9f76fec996325f3959eeff07d4ac87878787878787604051612846979695949392919063ffffffff97881681526001600160401b03968716602082015294861660408601529285166060850152908516608084015290921660a0820152911660c082015260e00190565b60405180910390a15050505050505050565b60008a6001600160401b0316116128d9576040805162461bcd60e51b81526020600482015260248101919091527f4d6f76696e672066756e6473207472616e73616374696f6e206d617820746f7460448201527f616c20666565206d7573742062652067726561746572207468616e207a65726f60648201526084016110f4565b6000896001600160401b03161180156129025750600e8b01546001600160401b03908116908a16105b61299a5760405162461bcd60e51b815260206004820152605e60248201527f4d6f76696e672066756e64732064757374207468726573686f6c64206d75737460448201527f2062652067726561746572207468616e207a65726f20616e64206c6f7765722060648201527f7468616e20726564656d7074696f6e2064757374207468726573686f6c640000608482015260a4016110f4565b60008863ffffffff1611612a165760405162461bcd60e51b815260206004820152603a60248201527f4d6f76696e672066756e64732074696d656f75742072657365742064656c617960448201527f206d7573742062652067726561746572207468616e207a65726f00000000000060648201526084016110f4565b8763ffffffff168763ffffffff1611612a975760405162461bcd60e51b815260206004820152603960248201527f4d6f76696e672066756e64732074696d656f7574206d7573742062652067726560448201527f61746572207468616e206974732072657365742064656c61790000000000000060648201526084016110f4565b6064851115612b345760405162461bcd60e51b815260206004820152604d60248201527f4d6f76696e672066756e64732074696d656f7574206e6f74696669657220726560448201527f77617264206d756c7469706c696572206d75737420626520696e20746865207260648201527f616e6765205b302c203130305d00000000000000000000000000000000000000608482015260a4016110f4565b6000846001600160401b031611612bd95760405162461bcd60e51b815260206004820152604560248201527f4d6f7665642066756e6473207377656570207472616e73616374696f6e206d6160448201527f7820746f74616c20666565206d7573742062652067726561746572207468616e60648201527f207a65726f000000000000000000000000000000000000000000000000000000608482015260a4016110f4565b60008363ffffffff1611612c555760405162461bcd60e51b815260206004820152603360248201527f4d6f7665642066756e64732073776565702074696d656f7574206d757374206260448201527f652067726561746572207468616e207a65726f0000000000000000000000000060648201526084016110f4565b6064811115612cf25760405162461bcd60e51b815260206004820152605260248201527f4d6f7665642066756e64732073776565702074696d656f7574206e6f7469666960448201527f657220726577617264206d756c7469706c696572206d75737420626520696e2060648201527f7468652072616e6765205b302c203130305d0000000000000000000000000000608482015260a4016110f4565b898b60080160006101000a8154816001600160401b0302191690836001600160401b03160217905550888b60080160086101000a8154816001600160401b0302191690836001600160401b03160217905550878b60080160106101000a81548163ffffffff021916908363ffffffff160217905550868b60080160146101000a81548163ffffffff021916908363ffffffff160217905550858b60090160006101000a8154816001600160601b0302191690836001600160601b03160217905550848b600a0181905550838b600b0160006101000a8154816001600160401b0302191690836001600160401b03160217905550828b600b0160086101000a81548163ffffffff021916908363ffffffff160217905550818b600b01600c6101000a8154816001600160601b0302191690836001600160601b03160217905550808b600c01819055507f9fbab8abcd4ce947cd4ffe98e310cc5290d30644941a68e43899b3b6e219ca928a8a8a8a8a8a8a8a8a8a604051612ee09a999897969594939291906001600160401b039a8b168152988a1660208a015263ffffffff97881660408a015295871660608901526001600160601b03948516608089015260a0880193909352961660c08601529490921660e084015292166101008201526101208101919091526101400190565b60405180910390a15050505050505050505050565b60088701546001600160401b03600160401b909104811690871611612fa85760405162461bcd60e51b815260206004820152604a60248201527f526564656d7074696f6e2064757374207468726573686f6c64206d757374206260448201527f652067726561746572207468616e206d6f76696e672066756e6473206475737460648201527f207468726573686f6c6400000000000000000000000000000000000000000000608482015260a4016110f4565b6000856001600160401b0316116130275760405162461bcd60e51b815260206004820152603960248201527f526564656d7074696f6e207472656173757279206665652064697669736f722060448201527f6d7573742062652067726561746572207468616e207a65726f0000000000000060648201526084016110f4565b6000846001600160401b0316116130a65760405162461bcd60e51b815260206004820152603860248201527f526564656d7074696f6e207472616e73616374696f6e206d617820666565206d60448201527f7573742062652067726561746572207468616e207a65726f000000000000000060648201526084016110f4565b6000831161311c5760405162461bcd60e51b815260206004820152602c60248201527f526564656d7074696f6e2074696d656f7574206d75737420626520677265617460448201527f6572207468616e207a65726f000000000000000000000000000000000000000060648201526084016110f4565b60648111156131b95760405162461bcd60e51b815260206004820152604b60248201527f526564656d7074696f6e2074696d656f7574206e6f746966696572207265776160448201527f7264206d756c7469706c696572206d75737420626520696e207468652072616e60648201527f6765205b302c203130305d000000000000000000000000000000000000000000608482015260a4016110f4565b600e870180546001600160401b038881166fffffffffffffffffffffffffffffffff199092168217600160401b898316908102919091177fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff16600160801b92891692830217909355600f8a0186905560108a0180546001600160601b0319166001600160601b03871690811790915560118b018590556040805193845260208401949094529282015260608101859052608081019190915260a081018290527f944cd06e316cc3da4159300dd41ab23416c89a5136c41fa79d57fe8a34bcc10f9060c00160405180910390a150505050505050565b600083116133245760405162461bcd60e51b815260206004820152603860248201527f4672617564206368616c6c656e6765206465666561742074696d656f7574206d60448201527f7573742062652067726561746572207468616e207a65726f000000000000000060648201526084016110f4565b606481111561339b5760405162461bcd60e51b815260206004820152603e60248201527f4672617564206e6f74696669657220726577617264206d756c7469706c69657260448201527f206d75737420626520696e207468652072616e6765205b302c203130305d000060648201526084016110f4565b60148501849055601585018390556016850180546001600160601b0319166001600160601b03841690811790915560178601829055604080518681526020810186905290810191909152606081018290527fd0d6d92441fbb139a023c9c62586dbd767824f37869c45da6443fc3aef64194f9060800160405180910390a15050505050565b6001600160601b031981166000908152601d83016020526040902060036002820154600160c01b900460ff16600581111561345d5761345d614338565b146134d05760405162461bcd60e51b815260206004820152602560248201527f45434453412077616c6c6574206d75737420626520696e20436c6f73696e672060448201527f737461746500000000000000000000000000000000000000000000000000000060648201526084016110f4565b601c83015460028201546134f49163ffffffff90811691600160801b900416614c0f565b63ffffffff16421161356e5760405162461bcd60e51b815260206004820152602260248201527f436c6f73696e6720706572696f6420686173206e6f7420656c6170736564207960448201527f657400000000000000000000000000000000000000000000000000000000000060648201526084016110f4565b61110a8383613721565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff1983168117909355604080519190921680825260208201939093527f5f56bee8cffbe9a78652a74a60705edede02af10b0bbb888ca44b79a0d42ce80910160405180910390a15050565b603254600090610100900460ff1615613685578160ff16600114801561360b5750303b155b61367d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016110f4565b506000919050565b60325460ff8084169116106137025760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016110f4565b506032805460ff191660ff92909216919091179055600190565b919050565b6001600160601b031981166000818152601d840160205260408082206002810180547fffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff167804000000000000000000000000000000000000000000000000179055805491519093927f47b159947c3066cb253f60e8f046cfd747411788a545cb189679e3fa1467b28d91a3600283015481546040517f343bb9270000000000000000000000000000000000000000000000000000000081526001600160a01b039092169163343bb927916137fb9160040190815260200190565b600060405180830381600087803b15801561381557600080fd5b505af115801561127f573d6000803e3d6000fd5b60006020828403121561383b57600080fd5b5035919050565b60008083601f84011261385457600080fd5b5081356001600160401b0381111561386b57600080fd5b60208301915083602082850101111561388357600080fd5b9250929050565b600080600080604085870312156138a057600080fd5b84356001600160401b03808211156138b757600080fd5b6138c388838901613842565b909650945060208701359150808211156138dc57600080fd5b506138e987828801613842565b95989497509550505050565b80356001600160601b03198116811461371c57600080fd5b60006060828403121561391f57600080fd5b50919050565b6000806080838503121561393857600080fd5b613941836138f5565b9150613950846020850161390d565b90509250929050565b60006080828403121561391f57600080fd5b80356001600160a01b038116811461371c57600080fd5b60008060008060c0858703121561399857600080fd5b84356001600160401b03808211156139af57600080fd5b6139bb88838901613959565b955060208701359150808211156139d157600080fd5b506139de8782880161390d565b9350506139ee866040870161390d565b91506139fc60a0860161396b565b905092959194509250565b80356001600160401b038116811461371c57600080fd5b600080600060608486031215613a3357600080fd5b613a3c84613a07565b9250613a4a60208501613a07565b9150613a5860408501613a07565b90509250925092565b60008060008060c08587031215613a7757600080fd5b84356001600160401b0380821115613a8e57600080fd5b613a9a88838901613959565b95506020870135915080821115613ab057600080fd5b50613abd8782880161390d565b935050613acd866040870161390d565b91506139fc60a086016138f5565b60008083601f840112613aed57600080fd5b5081356001600160401b03811115613b0457600080fd5b6020830191508360208260051b850101111561388357600080fd5b600080600080600060608688031215613b3757600080fd5b613b40866138f5565b945060208601356001600160401b0380821115613b5c57600080fd5b613b6889838a01613adb565b90965094506040880135915080821115613b8157600080fd5b50613b8e88828901613842565b969995985093965092949392505050565b600080600060608486031215613bb457600080fd5b505081359360208301359350604090920135919050565b60008060008060608587031215613be157600080fd5b613bea8561396b565b93506020850135925060408501356001600160401b03811115613c0c57600080fd5b6138e987828801613842565b803563ffffffff8116811461371c57600080fd5b60008060008060608587031215613c4257600080fd5b84359350613c5260208601613c18565b925060408501356001600160401b03811115613c6d57600080fd5b6138e987828801613adb565b600080828403610100811215613c8e57600080fd5b83356001600160401b03811115613ca457600080fd5b613cb086828701613959565b93505060e0601f1982011215613cc557600080fd5b506020830190509250929050565b8035801515811461371c57600080fd5b60008060408385031215613cf657600080fd5b613cff8361396b565b915061395060208401613cd3565b634e487b7160e01b600052604160045260246000fd5b600082601f830112613d3457600080fd5b81356001600160401b0380821115613d4e57613d4e613d0d565b604051601f8301601f19908116603f01168101908282118183101715613d7657613d76613d0d565b81604052838152866020858801011115613d8f57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060a08587031215613dc557600080fd5b84356001600160401b0380821115613ddc57600080fd5b613de888838901613842565b90965094506020870135915080821115613e0157600080fd5b50613e0e87828801613d23565b9250506139fc866040870161390d565b600080600080600060608688031215613e3657600080fd5b85356001600160401b0380821115613e4d57600080fd5b613e5989838a01613842565b90975095506020880135915080821115613e7257600080fd5b50613e7f88828901613842565b9094509250613e92905060408701613cd3565b90509295509295909350565b600080600080600060608688031215613eb657600080fd5b85356001600160401b0380821115613ecd57600080fd5b613ed989838a01613842565b90975095506020880135915080821115613ef257600080fd5b613efe89838a01613adb565b90955093506040880135915080821115613f1757600080fd5b50613f2488828901613d23565b9150509295509295909350565b600080600080600080600060e0888a031215613f4c57600080fd5b613f5588613c18565b9650613f6360208901613a07565b9550613f7160408901613a07565b9450613f7f60608901613a07565b9350613f8d60808901613c18565b9250613f9b60a08901613a07565b9150613fa960c08901613c18565b905092959891949750929550565b600080600060408486031215613fcc57600080fd5b613fd5846138f5565b925060208401356001600160401b03811115613ff057600080fd5b613ffc86828701613adb565b9497909650939450505050565b80356001600160601b038116811461371c57600080fd5b6000806000806000806000806000806101408b8d03121561404057600080fd5b6140498b613a07565b995061405760208c01613a07565b985061406560408c01613c18565b975061407360608c01613c18565b965061408160808c01614009565b955060a08b0135945061409660c08c01613a07565b93506140a460e08c01613c18565b92506140b36101008c01614009565b91506101208b013590509295989b9194979a5092959850565b6000606082840312156140de57600080fd5b6140e8838361390d565b9392505050565b600080600080600080600060e0888a03121561410a57600080fd5b614113886138f5565b96506141228960208a0161390d565b955060808801356001600160401b038082111561413e57600080fd5b61414a8b838c01613adb565b909750955060a08a0135945060c08a013591508082111561416a57600080fd5b506141778a828b01613adb565b989b979a50959850939692959293505050565b60008060008060008060c087890312156141a357600080fd5b6141ac87613a07565b95506141ba60208801613a07565b94506141c860408801613a07565b9350606087013592506141dd60808801614009565b915060a087013590509295509295509295565b6000806000806080858703121561420657600080fd5b843593506020850135925061421d60408601614009565b9396929550929360600135925050565b600080600060a0848603121561424257600080fd5b83356001600160401b038082111561425957600080fd5b61426587838801613959565b9450602086013591508082111561427b57600080fd5b506142888682870161390d565b925050613a58856040860161390d565b6000602082840312156142aa57600080fd5b6140e8826138f5565b6000602082840312156142c557600080fd5b6140e88261396b565b600080600080600060c086880312156142e657600080fd5b6142ef866138f5565b94506142fe876020880161390d565b935060808601356001600160401b0381111561431957600080fd5b61432588828901613842565b9094509250613e92905060a08701613a07565b634e487b7160e01b600052602160045260246000fd5b6006811061435e5761435e614338565b9052565b60006101208201905082518252602083015160208301526001600160401b03604084015116604083015263ffffffff606084015116606083015260808301516143b3608084018263ffffffff169052565b5060a08301516143cb60a084018263ffffffff169052565b5060c08301516143e360c084018263ffffffff169052565b5060e08301516143f660e084018261434e565b5061010092830151919092015290565b81516001600160601b03191681526020808301516001600160401b03169082015260408083015163ffffffff1690820152606082015160808201906004811061445157614451614338565b8060608401525092915050565b600080600080600060a0868803121561447657600080fd5b61447f8661396b565b945061448d6020870161396b565b935061449b6040870161396b565b92506144a96060870161396b565b949793965091946080013592915050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b8581526060602082015260006144fd6060830186886144ba565b82810360408401526145108185876144ba565b98975050505050505050565b8035825263ffffffff61453160208301613c18565b1660208301526001600160401b0361454b60408301613a07565b1660408301525050565b8381526001600160601b03198316602082015260a08101614579604083018461451c565b949350505050565b80356001600160e01b03198116811461371c57600080fd5b6000808335601e198436030181126145b057600080fd5b83016020810192503590506001600160401b038111156145cf57600080fd5b80360383131561388357600080fd5b60006001600160e01b0319806145f384614581565b1684526146036020840184614599565b608060208701526146186080870182846144ba565b9150506146286040850185614599565b868303604088015261463b8382846144ba565b925050508161464c60608601614581565b166060860152809250505092915050565b60006146698283614599565b6060855261467b6060860182846144ba565b915050602083013560208501526146956040840184614599565b85830360408701526146a88382846144ba565b9695505050505050565b85815260e0602082015260006146cb60e08301876145de565b82810360408401526146dd818761465d565b9150506146ed606083018561451c565b6001600160a01b03831660c08301529695505050505050565b85815260e06020820152600061471f60e08301876145de565b8281036040840152614731818761465d565b915050614741606083018561451c565b6001600160601b0319831660c08301529695505050505050565b8183526000602080850194508260005b858110156147945763ffffffff61478183613c18565b168752958201959082019060010161476b565b509495945050505050565b8681526001600160601b0319861660208201526080604082015260006147c960808301868861475b565b82810360608401526147dc8185876144ba565b9998505050505050505050565b8581526001600160a01b03851660208201526001600160401b03841660408201526080606082015260006148216080830184866144ba565b979650505050505050565b85815284602082015263ffffffff8416604082015260806060820152600061482160808301848661475b565b6000610120858352806020840152614872818401866145de565b91505063ffffffff61488384613c18565b1660408301526001600160a01b0361489d6020850161396b565b166060830152604083013577ffffffffffffffffffffffffffffffffffffffffffffffff19811681146148cf57600080fd5b77ffffffffffffffffffffffffffffffffffffffffffffffff191660808301526148fb606084016138f5565b6001600160601b03191660a0830152614916608084016138f5565b6001600160601b03191660c083015261493160a08401614581565b6001600160e01b03191660e083015261494c60c0840161396b565b6001600160a01b03811661010084015250949350505050565b6000815180845260005b8181101561498b5760208185018101518683018201520161496f565b8181111561499d576000602083870101525b50601f01601f19169290920160200192915050565b85815260c0602082015260006149cc60c0830186886144ba565b82810360408401526149de8186614965565b9150508235606083015260208301356080830152604083013560ff8116808214614a0757600080fd5b8060a085015250509695505050505050565b868152608060208201526000614a336080830187896144ba565b8281036040840152614a468186886144ba565b9150508215156060830152979650505050505050565b868152608060208201526000614a766080830187896144ba565b8281036040840152614a8981868861475b565b905082810360608401526147dc8185614965565b8481526001600160601b0319841660208201526060604082015260006146a860608301848661475b565b828152608081016140e8602083018461451c565b60006101008a835260206001600160601b0319808c1682860152614b02604086018c61451c565b8260a0860152614b158386018a8c61475b565b60c0860189905285810360e0870152868152879350820160005b87811015614b545782614b41866138f5565b1682529383019390830190600101614b2f565b509d9c50505050505050505050505050565b84815260c060208201526000614b7f60c08301866145de565b8281036040840152614b91818661465d565b915050614ba1606083018461451c565b95945050505050565b8781526001600160601b0319871660208201526000610100614bcf604084018961451c565b6001600160a01b03871660a08401528060c0840152614bf181840186886144ba565b9150506001600160401b03831660e083015298975050505050505050565b600063ffffffff808316818516808303821115614c3c57634e487b7160e01b600052601160045260246000fd5b0194935050505056fea26469706673582212201fa54723a8548253291254a0a8397b13028156052c7616df7c2d663bf643b94564736f6c63430008090033",
|
|
2465
|
-
"deployedBytecode": "0x60806040526004361061031e5760003560e01c806379fc4eb3116101a5578063b34b3216116100ec578063d6eccdf011610095578063e65e19d51161006f578063e65e19d514610e93578063ee1dd3ea14610ec0578063f18cf1b114610ee0578063f7013ef614610f0d57600080fd5b8063d6eccdf014610e0e578063ded1d24a14610e2e578063e53c0b5514610e5a57600080fd5b8063c42b64d0116100c6578063c42b64d014610d83578063c8b5d2db14610dce578063d38bfff414610dee57600080fd5b8063b34b321614610c8d578063b7d372a414610cad578063be05abe314610ccd57600080fd5b8063a9de2f3a1161014e578063b2146cd611610128578063b2146cd614610c0d578063b216bd3514610c4d578063b29a604b14610c6d57600080fd5b8063a9de2f3a14610a6b578063abaeed8f14610aab578063b02c43d014610acb57600080fd5b80639c49c4181161017f5780639c49c41814610a0b578063a145e2d514610a2b578063a8fa0f4214610a4b57600080fd5b806379fc4eb3146109ab578063883d6a11146109cb57806392238f32146109eb57600080fd5b8063475d05701161026957806361ccf97a116102125780636e70ce41116101ec5780636e70ce41146108b257806375b922d11461094457806377145f211461098b57600080fd5b806361ccf97a146107f157806361d027b314610881578063685ce1b11461089f57600080fd5b80635aa6e675116102435780635aa6e675146107795780635c0b4812146107b157806360d712fc146107d157600080fd5b8063475d05701461071957806350aea15a14610739578063575e42791461075957600080fd5b806324028c11116102cb57806331a4889a116102a557806331a4889a146105fa57806333e957cb1461061a5780633dce9812146106f957600080fd5b806324028c111461058a5780632bb818c2146105bc5780632f429b64146105da57600080fd5b80630b6ba19d116102fc5780630b6ba19d1461048d578063133cafc81461054a57806317c964001461056a57600080fd5b806303d952f7146103235780630674f2661461044b57806307f7d2231461046d575b600080fd5b34801561032f57600080fd5b506103e061033e366004613829565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915250600090815260456020908152604091829020825160a08101845281546001600160a01b0381168252600160a01b90046001600160401b039081169382019390935260019091015480831693820193909352600160401b83049091166060820152600160801b90910463ffffffff16608082015290565b6040516104429190600060a0820190506001600160a01b03835116825260208301516001600160401b038082166020850152806040860151166040850152806060860151166060850152505063ffffffff608084015116608083015292915050565b60405180910390f35b34801561045757600080fd5b5061046b61046636600461388a565b610f2d565b005b34801561047957600080fd5b5061046b610488366004613925565b610fbc565b34801561049957600080fd5b506103e06104a8366004613829565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915250600090815260466020908152604091829020825160a08101845281546001600160a01b0381168252600160a01b90046001600160401b039081169382019390935260019091015480831693820193909352600160401b83049091166060820152600160801b90910463ffffffff16608082015290565b34801561055657600080fd5b5061046b610565366004613982565b611045565b34801561057657600080fd5b5061046b610585366004613a1e565b61109e565b34801561059657600080fd5b50604e54600160a01b900463ffffffff1660405163ffffffff9091168152602001610442565b3480156105c857600080fd5b50603654604051908152602001610442565b3480156105e657600080fd5b5061046b6105f5366004613a61565b61110f565b34801561060657600080fd5b5061046b610615366004613b1f565b611166565b34801561062657600080fd5b506106b5610635366004613829565b604080516080810182526000808252602082018190529181018290526060810191909152506000908152604b6020908152604091829020825160808101845281546001600160a01b031681526001820154928101929092526002015463ffffffff81169282019290925264010000000090910460ff161515606082015290565b604051610442919081516001600160a01b031681526020808301519082015260408083015163ffffffff169082015260609182015115159181019190915260800190565b34801561070557600080fd5b5061046b610714366004613b9f565b6111f8565b34801561072557600080fd5b5061046b610734366004613bcb565b611288565b34801561074557600080fd5b5061046b610754366004613c2c565b61132a565b34801561076557600080fd5b5061046b610774366004613925565b611383565b34801561078557600080fd5b50600054610799906001600160a01b031681565b6040516001600160a01b039091168152602001610442565b3480156107bd57600080fd5b5061046b6107cc366004613c79565b6113d8565b3480156107dd57600080fd5b5061046b6107ec366004613ce3565b61142d565b3480156107fd57600080fd5b50604d54604e54604f546040805163ffffffff80861682526001600160401b036401000000008704811660208401526c010000000000000000000000008704811693830193909352600160a01b860483166060830152600160e01b90950485166080820152600160c01b9093041660a08301529190911660c082015260e001610442565b34801561088d57600080fd5b506037546001600160a01b0316610799565b61046b6108ad366004613daf565b6114e6565b3480156108be57600080fd5b506108fd6041546042546043546044546001600160401b0380851695600160401b8604821695600160801b900490911693926001600160601b03169190565b604080516001600160401b0397881681529587166020870152939095169284019290925260608301526001600160601b0316608082015260a081019190915260c001610442565b34801561095057600080fd5b50604754604854604954604a546040805194855260208501939093526001600160601b03909116918301919091526060820152608001610442565b34801561099757600080fd5b5061046b6109a6366004613e1e565b61153f565b3480156109b757600080fd5b5061046b6109c6366004613e9e565b61159a565b3480156109d757600080fd5b5061046b6109e6366004613f31565b6115f5565b3480156109f757600080fd5b5061046b610a06366004613fb7565b611660565b348015610a1757600080fd5b5061046b610a26366004614020565b6116b7565b348015610a3757600080fd5b5061046b610a463660046140cc565b611731565b348015610a5757600080fd5b5061046b610a66366004613b9f565b6117b7565b348015610a7757600080fd5b50603354603454603554604080516001600160a01b0394851681529284166020840152921691810191909152606001610442565b348015610ab757600080fd5b5061046b610ac63660046140ef565b61181d565b348015610ad757600080fd5b50610b98610ae6366004613829565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915250600090815260396020908152604091829020825160c08101845281546001600160a01b0380821683526001600160401b03600160a01b80840482169685019690965263ffffffff600160e01b9384900481169785019790975260019094015490811660608401529384049092166080820152910490911660a082015290565b6040516104429190600060c0820190506001600160a01b0380845116835260208401516001600160401b0380821660208601526040860151915063ffffffff80831660408701528360608801511660608701528160808801511660808701528060a08801511660a08701525050505092915050565b348015610c1957600080fd5b50610c3d610c28366004613829565b6000908152604c602052604090205460ff1690565b6040519015158152602001610442565b348015610c5957600080fd5b5061046b610c6836600461418a565b6118b5565b348015610c7957600080fd5b5061046b610c883660046141f0565b61191f565b348015610c9957600080fd5b5061046b610ca8366004613a61565b61198d565b348015610cb957600080fd5b5061046b610cc836600461422d565b6119e6565b348015610cd957600080fd5b50603b54603c54603d54603e54603f54604080516001600160401b038088168252600160401b8089048216602084015263ffffffff600160801b8a04811694840194909452600160a01b909804831660608301526001600160601b03968716608083015260a082019590955293831660c085015294820490941660e08301526c01000000000000000000000000900490911661010082015261012081019190915261014001610442565b348015610d8f57600080fd5b5060375460385460408051600160a01b9093046001600160401b0390811684528083166020850152600160401b90920490911690820152606001610442565b348015610dda57600080fd5b5061046b610de9366004614298565b611a3d565b348015610dfa57600080fd5b5061046b610e093660046142b3565b611a4b565b348015610e1a57600080fd5b5061046b610e293660046142ce565b611b2a565b348015610e3a57600080fd5b50604e5460601b6040516001600160601b03199091168152602001610442565b348015610e6657600080fd5b50610c3d610e753660046142b3565b6001600160a01b03166000908152603a602052604090205460ff1690565b348015610e9f57600080fd5b50610eb3610eae366004614298565b611b87565b6040516104429190614362565b348015610ecc57600080fd5b5061046b610edb366004614298565b611caa565b348015610eec57600080fd5b50610f00610efb366004613829565b611d0b565b6040516104429190614406565b348015610f1957600080fd5b5061046b610f2836600461445e565b611dc4565b6040517f94fcaf8d00000000000000000000000000000000000000000000000000000000815273__$a542940934c03bae9a39609192cb25cc3c$__906394fcaf8d90610f869060339088908890889088906004016144e3565b60006040518083038186803b158015610f9e57600080fd5b505af4158015610fb2573d6000803e3d6000fd5b5050505050505050565b6040517f260b6cde00000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__9063260b6cde906110119060339086908690600401614555565b60006040518083038186803b15801561102957600080fd5b505af415801561103d573d6000803e3d6000fd5b505050505050565b6040517fd22cd45b00000000000000000000000000000000000000000000000000000000815273__$24f7e155a6d011c1bf9032506ba9b1954c$__9063d22cd45b90610f869060339088908890889088906004016146b2565b6000546001600160a01b031633146110fd5760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064015b60405180910390fd5b61110a60338484846121df565b505050565b6040517e92bac900000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__906292bac990610f86906033908890889088908890600401614706565b6040517fa76558b300000000000000000000000000000000000000000000000000000000815273__$9935b6ea18e0c526c293569ddd26842c9b$__9063a76558b3906111c1906033908990899089908990899060040161479f565b60006040518083038186803b1580156111d957600080fd5b505af41580156111ed573d6000803e3d6000fd5b505050505050505050565b6040517fc87de7f400000000000000000000000000000000000000000000000000000000815260336004820152602481018390526044810182905273__$0f118c52967a3847a37f0a2ef02ffcee04$__9063c87de7f4906064015b60006040518083038186803b15801561126b57600080fd5b505af415801561127f573d6000803e3d6000fd5b50505050505050565b6033546001600160a01b031633146112e25760405162461bcd60e51b815260206004820152601660248201527f43616c6c6572206973206e6f74207468652062616e6b0000000000000000000060448201526064016110f4565b73__$9935b6ea18e0c526c293569ddd26842c9b$__63d253980860338661130887612412565b86866040518663ffffffff1660e01b8152600401610f869594939291906147e9565b6040517f899bef9d00000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__9063899bef9d90610f8690603390889088908890889060040161482c565b6040517f99b0b84700000000000000000000000000000000000000000000000000000000815273__$0f118c52967a3847a37f0a2ef02ffcee04$__906399b0b847906110119060339086908690600401614555565b6040517faea7fd0b00000000000000000000000000000000000000000000000000000000815273__$894ce12e79ca3e5683c1b49e363f37fa22$__9063aea7fd0b906110119060339086908690600401614858565b6000546001600160a01b031633146114875760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110f4565b6001600160a01b0382166000818152603a6020908152604091829020805460ff191685151590811790915591519182527f9065599c12c4294d9e2201638226d0d0beb95c228f468c4e7c2bdb8322b6066f910160405180910390a25050565b6040517feb8fdd5d00000000000000000000000000000000000000000000000000000000815273__$a542940934c03bae9a39609192cb25cc3c$__9063eb8fdd5d90610f869060339088908890889088906004016149b2565b6040517f624526fe00000000000000000000000000000000000000000000000000000000815273__$a542940934c03bae9a39609192cb25cc3c$__9063624526fe906111c19060339089908990899089908990600401614a19565b6040517f80ffe94a00000000000000000000000000000000000000000000000000000000815273__$a542940934c03bae9a39609192cb25cc3c$__906380ffe94a906111c19060339089908990899089908990600401614a5c565b6000546001600160a01b0316331461164f5760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110f4565b61127f603388888888888888612495565b6040517f07f96c4200000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__906307f96c429061125390603390879087908790600401614a9d565b6000546001600160a01b031633146117115760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110f4565b61172560338b8b8b8b8b8b8b8b8b8b612858565b50505050505050505050565b6040517fd079fbb100000000000000000000000000000000000000000000000000000000815273__$0f118c52967a3847a37f0a2ef02ffcee04$__9063d079fbb190611784906033908590600401614ac7565b60006040518083038186803b15801561179c57600080fd5b505af41580156117b0573d6000803e3d6000fd5b5050505050565b6040517f4afbe4c90000000000000000000000000000000000000000000000000000000081526033600482015260248101849052604481018390526064810182905273__$0f118c52967a3847a37f0a2ef02ffcee04$__90634afbe4c990608401611253565b6040517fc8f7794300000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__9063c8f779439061187c906033908b908b908b908b908b908b908b90600401614adb565b60006040518083038186803b15801561189457600080fd5b505af41580156118a8573d6000803e3d6000fd5b5050505050505050505050565b6000546001600160a01b0316331461190f5760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110f4565b61103d6033878787878787612ef5565b6000546001600160a01b031633146119795760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110f4565b6119876033858585856132ae565b50505050565b6040517fa164de6e00000000000000000000000000000000000000000000000000000000815273__$9935b6ea18e0c526c293569ddd26842c9b$__9063a164de6e90610f86906033908890889088908890600401614706565b6040517fb79a972500000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__9063b79a97259061125390603390879087908790600401614b66565b611a48603382613420565b50565b6000546001600160a01b03163314611aa55760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110f4565b6001600160a01b038116611b215760405162461bcd60e51b815260206004820152602260248201527f4e657720676f7665726e616e636520697320746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016110f4565b611a4881613578565b6040517ff5ada44200000000000000000000000000000000000000000000000000000000815273__$9935b6ea18e0c526c293569ddd26842c9b$__9063f5ada442906111c1906033908990899033908a908a908a90600401614baa565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101919091526001600160601b031982166000908152605060209081526040918290208251610120810184528154815260018201549281019290925260028101546001600160401b0381169383019390935263ffffffff600160401b8404811660608401526c01000000000000000000000000840481166080840152600160801b8404811660a0840152600160a01b84041660c0830152909160e083019060ff600160c01b909104166005811115611c8457611c84614338565b6005811115611c9557611c95614338565b81526020016003820154815250509050919050565b6040517f9b69e71d000000000000000000000000000000000000000000000000000000008152603360048201526001600160601b03198216602482015273__$edce581bb06331cf4dae1387760565e5d1$__90639b69e71d90604401611784565b611d336040805160808101825260008082526020820181905291810182905290606082015290565b6000828152604060208181529181902081516080810183528154606081811b6001600160601b0319168352600160a01b82046001600160401b031695830195909552600160e01b900463ffffffff16928101929092526001810154919290919083019060ff166003811115611daa57611daa614338565b6003811115611dbb57611dbb614338565b90525092915050565b6000611dd060016135e6565b90508015611de8576032805461ff0019166101001790555b6001600160a01b038616611e3e5760405162461bcd60e51b815260206004820152601b60248201527f42616e6b20616464726573732063616e6e6f74206265207a65726f000000000060448201526064016110f4565b6033805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03888116919091179091558516611eb95760405162461bcd60e51b815260206004820152601c60248201527f52656c617920616464726573732063616e6e6f74206265207a65726f0000000060448201526064016110f4565b6034805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03878116919091179091558316611f5a5760405162461bcd60e51b815260206004820152602c60248201527f45434453412057616c6c6574205265676973747279206164647265737320636160448201527f6e6e6f74206265207a65726f000000000000000000000000000000000000000060648201526084016110f4565b6035805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03858116919091179091558416611fd55760405162461bcd60e51b815260206004820152601f60248201527f547265617375727920616464726573732063616e6e6f74206265207a65726f0060448201526064016110f4565b6037805460368490556001600160a01b0386166001600160e01b031990911617760f42400000000000000000000000000000000000000000179055603880546fffffffffffffffffffffffffffffffff191669271000000000000007d01790556041805477ffffffffffffffffffffffffffffffffffffffffffffffff1990811671271000000000000007d000000000000f4240179091556202a3006042556043805469021e19e0c9bab24000006001600160601b0319918216811790925560646044819055603b8054851676093a800007e9000000000000004e200000000000002710179055603c8054831684179055603d819055603e805490941675021e19e0c9bab240000000093a80000000000000271017909355603f839055671bc16d674ec8000060475562093a80604855604980549091169091179055604a557eeff1000000000002faf08000000002540be4000000000005f5e10000093a80604d55604e805477ffffffffffffffffffffffffffffffffffffffffffffffff167b3b9aca00000000000000000000000000000000000000000000000000179055604f80546234bc0063ffffffff1990911617905561219233613578565b801561103d576032805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b6000836001600160401b03161161225e5760405162461bcd60e51b815260206004820152603060248201527f4465706f7369742064757374207468726573686f6c64206d757374206265206760448201527f726561746572207468616e207a65726f0000000000000000000000000000000060648201526084016110f4565b6000826001600160401b0316116122dd5760405162461bcd60e51b815260206004820152603660248201527f4465706f736974207472656173757279206665652064697669736f72206d757360448201527f742062652067726561746572207468616e207a65726f0000000000000000000060648201526084016110f4565b6000816001600160401b03161161235c5760405162461bcd60e51b815260206004820152603560248201527f4465706f736974207472616e73616374696f6e206d617820666565206d75737460448201527f2062652067726561746572207468616e207a65726f000000000000000000000060648201526084016110f4565b6004840180547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff16600160a01b6001600160401b03868116918202929092179092556005860180548583166fffffffffffffffffffffffffffffffff199091168117600160401b938616938402179091556040805193845260208401919091528201527f1ced468902ca566e746a3c8c9516af81f8de9f1021c365083be9f2625ebfb7b59060600160405180910390a150505050565b60006001600160401b038211156124915760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201527f342062697473000000000000000000000000000000000000000000000000000060648201526084016110f4565b5090565b856001600160401b0316856001600160401b0316116125425760405162461bcd60e51b815260206004820152605960248201527f57616c6c6574206372656174696f6e206d6178696d756d204254432062616c6160448201527f6e6365206d7573742062652067726561746572207468616e207468652063726560648201527f6174696f6e206d696e696d756d204254432062616c616e636500000000000000608482015260a4016110f4565b6000846001600160401b0316116125c15760405162461bcd60e51b815260206004820152603c60248201527f57616c6c657420636c6f73757265206d696e696d756d204254432062616c616e60448201527f6365206d7573742062652067726561746572207468616e207a65726f0000000060648201526084016110f4565b6000826001600160401b0316116126405760405162461bcd60e51b815260206004820152603560248201527f57616c6c6574206d6178696d756d20425443207472616e73666572206d75737460448201527f2062652067726561746572207468616e207a65726f000000000000000000000060648201526084016110f4565b60008163ffffffff16116126bc5760405162461bcd60e51b815260206004820152602f60248201527f57616c6c657420636c6f73696e6720706572696f64206d75737420626520677260448201527f6561746572207468616e207a65726f000000000000000000000000000000000060648201526084016110f4565b8688601a0160006101000a81548163ffffffff021916908363ffffffff1602179055508588601a0160046101000a8154816001600160401b0302191690836001600160401b031602179055508488601a01600c6101000a8154816001600160401b0302191690836001600160401b031602179055508388601a0160146101000a8154816001600160401b0302191690836001600160401b031602179055508288601a01601c6101000a81548163ffffffff021916908363ffffffff1602179055508188601b0160186101000a8154816001600160401b0302191690836001600160401b031602179055508088601c0160006101000a81548163ffffffff021916908363ffffffff1602179055507fc7d3a9af08692aeae771c329fddd95c7237a9f76fec996325f3959eeff07d4ac87878787878787604051612846979695949392919063ffffffff97881681526001600160401b03968716602082015294861660408601529285166060850152908516608084015290921660a0820152911660c082015260e00190565b60405180910390a15050505050505050565b60008a6001600160401b0316116128d9576040805162461bcd60e51b81526020600482015260248101919091527f4d6f76696e672066756e6473207472616e73616374696f6e206d617820746f7460448201527f616c20666565206d7573742062652067726561746572207468616e207a65726f60648201526084016110f4565b6000896001600160401b03161180156129025750600e8b01546001600160401b03908116908a16105b61299a5760405162461bcd60e51b815260206004820152605e60248201527f4d6f76696e672066756e64732064757374207468726573686f6c64206d75737460448201527f2062652067726561746572207468616e207a65726f20616e64206c6f7765722060648201527f7468616e20726564656d7074696f6e2064757374207468726573686f6c640000608482015260a4016110f4565b60008863ffffffff1611612a165760405162461bcd60e51b815260206004820152603a60248201527f4d6f76696e672066756e64732074696d656f75742072657365742064656c617960448201527f206d7573742062652067726561746572207468616e207a65726f00000000000060648201526084016110f4565b8763ffffffff168763ffffffff1611612a975760405162461bcd60e51b815260206004820152603960248201527f4d6f76696e672066756e64732074696d656f7574206d7573742062652067726560448201527f61746572207468616e206974732072657365742064656c61790000000000000060648201526084016110f4565b6064851115612b345760405162461bcd60e51b815260206004820152604d60248201527f4d6f76696e672066756e64732074696d656f7574206e6f74696669657220726560448201527f77617264206d756c7469706c696572206d75737420626520696e20746865207260648201527f616e6765205b302c203130305d00000000000000000000000000000000000000608482015260a4016110f4565b6000846001600160401b031611612bd95760405162461bcd60e51b815260206004820152604560248201527f4d6f7665642066756e6473207377656570207472616e73616374696f6e206d6160448201527f7820746f74616c20666565206d7573742062652067726561746572207468616e60648201527f207a65726f000000000000000000000000000000000000000000000000000000608482015260a4016110f4565b60008363ffffffff1611612c555760405162461bcd60e51b815260206004820152603360248201527f4d6f7665642066756e64732073776565702074696d656f7574206d757374206260448201527f652067726561746572207468616e207a65726f0000000000000000000000000060648201526084016110f4565b6064811115612cf25760405162461bcd60e51b815260206004820152605260248201527f4d6f7665642066756e64732073776565702074696d656f7574206e6f7469666960448201527f657220726577617264206d756c7469706c696572206d75737420626520696e2060648201527f7468652072616e6765205b302c203130305d0000000000000000000000000000608482015260a4016110f4565b898b60080160006101000a8154816001600160401b0302191690836001600160401b03160217905550888b60080160086101000a8154816001600160401b0302191690836001600160401b03160217905550878b60080160106101000a81548163ffffffff021916908363ffffffff160217905550868b60080160146101000a81548163ffffffff021916908363ffffffff160217905550858b60090160006101000a8154816001600160601b0302191690836001600160601b03160217905550848b600a0181905550838b600b0160006101000a8154816001600160401b0302191690836001600160401b03160217905550828b600b0160086101000a81548163ffffffff021916908363ffffffff160217905550818b600b01600c6101000a8154816001600160601b0302191690836001600160601b03160217905550808b600c01819055507f9fbab8abcd4ce947cd4ffe98e310cc5290d30644941a68e43899b3b6e219ca928a8a8a8a8a8a8a8a8a8a604051612ee09a999897969594939291906001600160401b039a8b168152988a1660208a015263ffffffff97881660408a015295871660608901526001600160601b03948516608089015260a0880193909352961660c08601529490921660e084015292166101008201526101208101919091526101400190565b60405180910390a15050505050505050505050565b60088701546001600160401b03600160401b909104811690871611612fa85760405162461bcd60e51b815260206004820152604a60248201527f526564656d7074696f6e2064757374207468726573686f6c64206d757374206260448201527f652067726561746572207468616e206d6f76696e672066756e6473206475737460648201527f207468726573686f6c6400000000000000000000000000000000000000000000608482015260a4016110f4565b6000856001600160401b0316116130275760405162461bcd60e51b815260206004820152603960248201527f526564656d7074696f6e207472656173757279206665652064697669736f722060448201527f6d7573742062652067726561746572207468616e207a65726f0000000000000060648201526084016110f4565b6000846001600160401b0316116130a65760405162461bcd60e51b815260206004820152603860248201527f526564656d7074696f6e207472616e73616374696f6e206d617820666565206d60448201527f7573742062652067726561746572207468616e207a65726f000000000000000060648201526084016110f4565b6000831161311c5760405162461bcd60e51b815260206004820152602c60248201527f526564656d7074696f6e2074696d656f7574206d75737420626520677265617460448201527f6572207468616e207a65726f000000000000000000000000000000000000000060648201526084016110f4565b60648111156131b95760405162461bcd60e51b815260206004820152604b60248201527f526564656d7074696f6e2074696d656f7574206e6f746966696572207265776160448201527f7264206d756c7469706c696572206d75737420626520696e207468652072616e60648201527f6765205b302c203130305d000000000000000000000000000000000000000000608482015260a4016110f4565b600e870180546001600160401b038881166fffffffffffffffffffffffffffffffff199092168217600160401b898316908102919091177fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff16600160801b92891692830217909355600f8a0186905560108a0180546001600160601b0319166001600160601b03871690811790915560118b018590556040805193845260208401949094529282015260608101859052608081019190915260a081018290527f944cd06e316cc3da4159300dd41ab23416c89a5136c41fa79d57fe8a34bcc10f9060c00160405180910390a150505050505050565b600083116133245760405162461bcd60e51b815260206004820152603860248201527f4672617564206368616c6c656e6765206465666561742074696d656f7574206d60448201527f7573742062652067726561746572207468616e207a65726f000000000000000060648201526084016110f4565b606481111561339b5760405162461bcd60e51b815260206004820152603e60248201527f4672617564206e6f74696669657220726577617264206d756c7469706c69657260448201527f206d75737420626520696e207468652072616e6765205b302c203130305d000060648201526084016110f4565b60148501849055601585018390556016850180546001600160601b0319166001600160601b03841690811790915560178601829055604080518681526020810186905290810191909152606081018290527fd0d6d92441fbb139a023c9c62586dbd767824f37869c45da6443fc3aef64194f9060800160405180910390a15050505050565b6001600160601b031981166000908152601d83016020526040902060036002820154600160c01b900460ff16600581111561345d5761345d614338565b146134d05760405162461bcd60e51b815260206004820152602560248201527f45434453412077616c6c6574206d75737420626520696e20436c6f73696e672060448201527f737461746500000000000000000000000000000000000000000000000000000060648201526084016110f4565b601c83015460028201546134f49163ffffffff90811691600160801b900416614c0f565b63ffffffff16421161356e5760405162461bcd60e51b815260206004820152602260248201527f436c6f73696e6720706572696f6420686173206e6f7420656c6170736564207960448201527f657400000000000000000000000000000000000000000000000000000000000060648201526084016110f4565b61110a8383613721565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff1983168117909355604080519190921680825260208201939093527f5f56bee8cffbe9a78652a74a60705edede02af10b0bbb888ca44b79a0d42ce80910160405180910390a15050565b603254600090610100900460ff1615613685578160ff16600114801561360b5750303b155b61367d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016110f4565b506000919050565b60325460ff8084169116106137025760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016110f4565b506032805460ff191660ff92909216919091179055600190565b919050565b6001600160601b031981166000818152601d840160205260408082206002810180547fffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff167804000000000000000000000000000000000000000000000000179055805491519093927f47b159947c3066cb253f60e8f046cfd747411788a545cb189679e3fa1467b28d91a3600283015481546040517f343bb9270000000000000000000000000000000000000000000000000000000081526001600160a01b039092169163343bb927916137fb9160040190815260200190565b600060405180830381600087803b15801561381557600080fd5b505af115801561127f573d6000803e3d6000fd5b60006020828403121561383b57600080fd5b5035919050565b60008083601f84011261385457600080fd5b5081356001600160401b0381111561386b57600080fd5b60208301915083602082850101111561388357600080fd5b9250929050565b600080600080604085870312156138a057600080fd5b84356001600160401b03808211156138b757600080fd5b6138c388838901613842565b909650945060208701359150808211156138dc57600080fd5b506138e987828801613842565b95989497509550505050565b80356001600160601b03198116811461371c57600080fd5b60006060828403121561391f57600080fd5b50919050565b6000806080838503121561393857600080fd5b613941836138f5565b9150613950846020850161390d565b90509250929050565b60006080828403121561391f57600080fd5b80356001600160a01b038116811461371c57600080fd5b60008060008060c0858703121561399857600080fd5b84356001600160401b03808211156139af57600080fd5b6139bb88838901613959565b955060208701359150808211156139d157600080fd5b506139de8782880161390d565b9350506139ee866040870161390d565b91506139fc60a0860161396b565b905092959194509250565b80356001600160401b038116811461371c57600080fd5b600080600060608486031215613a3357600080fd5b613a3c84613a07565b9250613a4a60208501613a07565b9150613a5860408501613a07565b90509250925092565b60008060008060c08587031215613a7757600080fd5b84356001600160401b0380821115613a8e57600080fd5b613a9a88838901613959565b95506020870135915080821115613ab057600080fd5b50613abd8782880161390d565b935050613acd866040870161390d565b91506139fc60a086016138f5565b60008083601f840112613aed57600080fd5b5081356001600160401b03811115613b0457600080fd5b6020830191508360208260051b850101111561388357600080fd5b600080600080600060608688031215613b3757600080fd5b613b40866138f5565b945060208601356001600160401b0380821115613b5c57600080fd5b613b6889838a01613adb565b90965094506040880135915080821115613b8157600080fd5b50613b8e88828901613842565b969995985093965092949392505050565b600080600060608486031215613bb457600080fd5b505081359360208301359350604090920135919050565b60008060008060608587031215613be157600080fd5b613bea8561396b565b93506020850135925060408501356001600160401b03811115613c0c57600080fd5b6138e987828801613842565b803563ffffffff8116811461371c57600080fd5b60008060008060608587031215613c4257600080fd5b84359350613c5260208601613c18565b925060408501356001600160401b03811115613c6d57600080fd5b6138e987828801613adb565b600080828403610100811215613c8e57600080fd5b83356001600160401b03811115613ca457600080fd5b613cb086828701613959565b93505060e0601f1982011215613cc557600080fd5b506020830190509250929050565b8035801515811461371c57600080fd5b60008060408385031215613cf657600080fd5b613cff8361396b565b915061395060208401613cd3565b634e487b7160e01b600052604160045260246000fd5b600082601f830112613d3457600080fd5b81356001600160401b0380821115613d4e57613d4e613d0d565b604051601f8301601f19908116603f01168101908282118183101715613d7657613d76613d0d565b81604052838152866020858801011115613d8f57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060a08587031215613dc557600080fd5b84356001600160401b0380821115613ddc57600080fd5b613de888838901613842565b90965094506020870135915080821115613e0157600080fd5b50613e0e87828801613d23565b9250506139fc866040870161390d565b600080600080600060608688031215613e3657600080fd5b85356001600160401b0380821115613e4d57600080fd5b613e5989838a01613842565b90975095506020880135915080821115613e7257600080fd5b50613e7f88828901613842565b9094509250613e92905060408701613cd3565b90509295509295909350565b600080600080600060608688031215613eb657600080fd5b85356001600160401b0380821115613ecd57600080fd5b613ed989838a01613842565b90975095506020880135915080821115613ef257600080fd5b613efe89838a01613adb565b90955093506040880135915080821115613f1757600080fd5b50613f2488828901613d23565b9150509295509295909350565b600080600080600080600060e0888a031215613f4c57600080fd5b613f5588613c18565b9650613f6360208901613a07565b9550613f7160408901613a07565b9450613f7f60608901613a07565b9350613f8d60808901613c18565b9250613f9b60a08901613a07565b9150613fa960c08901613c18565b905092959891949750929550565b600080600060408486031215613fcc57600080fd5b613fd5846138f5565b925060208401356001600160401b03811115613ff057600080fd5b613ffc86828701613adb565b9497909650939450505050565b80356001600160601b038116811461371c57600080fd5b6000806000806000806000806000806101408b8d03121561404057600080fd5b6140498b613a07565b995061405760208c01613a07565b985061406560408c01613c18565b975061407360608c01613c18565b965061408160808c01614009565b955060a08b0135945061409660c08c01613a07565b93506140a460e08c01613c18565b92506140b36101008c01614009565b91506101208b013590509295989b9194979a5092959850565b6000606082840312156140de57600080fd5b6140e8838361390d565b9392505050565b600080600080600080600060e0888a03121561410a57600080fd5b614113886138f5565b96506141228960208a0161390d565b955060808801356001600160401b038082111561413e57600080fd5b61414a8b838c01613adb565b909750955060a08a0135945060c08a013591508082111561416a57600080fd5b506141778a828b01613adb565b989b979a50959850939692959293505050565b60008060008060008060c087890312156141a357600080fd5b6141ac87613a07565b95506141ba60208801613a07565b94506141c860408801613a07565b9350606087013592506141dd60808801614009565b915060a087013590509295509295509295565b6000806000806080858703121561420657600080fd5b843593506020850135925061421d60408601614009565b9396929550929360600135925050565b600080600060a0848603121561424257600080fd5b83356001600160401b038082111561425957600080fd5b61426587838801613959565b9450602086013591508082111561427b57600080fd5b506142888682870161390d565b925050613a58856040860161390d565b6000602082840312156142aa57600080fd5b6140e8826138f5565b6000602082840312156142c557600080fd5b6140e88261396b565b600080600080600060c086880312156142e657600080fd5b6142ef866138f5565b94506142fe876020880161390d565b935060808601356001600160401b0381111561431957600080fd5b61432588828901613842565b9094509250613e92905060a08701613a07565b634e487b7160e01b600052602160045260246000fd5b6006811061435e5761435e614338565b9052565b60006101208201905082518252602083015160208301526001600160401b03604084015116604083015263ffffffff606084015116606083015260808301516143b3608084018263ffffffff169052565b5060a08301516143cb60a084018263ffffffff169052565b5060c08301516143e360c084018263ffffffff169052565b5060e08301516143f660e084018261434e565b5061010092830151919092015290565b81516001600160601b03191681526020808301516001600160401b03169082015260408083015163ffffffff1690820152606082015160808201906004811061445157614451614338565b8060608401525092915050565b600080600080600060a0868803121561447657600080fd5b61447f8661396b565b945061448d6020870161396b565b935061449b6040870161396b565b92506144a96060870161396b565b949793965091946080013592915050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b8581526060602082015260006144fd6060830186886144ba565b82810360408401526145108185876144ba565b98975050505050505050565b8035825263ffffffff61453160208301613c18565b1660208301526001600160401b0361454b60408301613a07565b1660408301525050565b8381526001600160601b03198316602082015260a08101614579604083018461451c565b949350505050565b80356001600160e01b03198116811461371c57600080fd5b6000808335601e198436030181126145b057600080fd5b83016020810192503590506001600160401b038111156145cf57600080fd5b80360383131561388357600080fd5b60006001600160e01b0319806145f384614581565b1684526146036020840184614599565b608060208701526146186080870182846144ba565b9150506146286040850185614599565b868303604088015261463b8382846144ba565b925050508161464c60608601614581565b166060860152809250505092915050565b60006146698283614599565b6060855261467b6060860182846144ba565b915050602083013560208501526146956040840184614599565b85830360408701526146a88382846144ba565b9695505050505050565b85815260e0602082015260006146cb60e08301876145de565b82810360408401526146dd818761465d565b9150506146ed606083018561451c565b6001600160a01b03831660c08301529695505050505050565b85815260e06020820152600061471f60e08301876145de565b8281036040840152614731818761465d565b915050614741606083018561451c565b6001600160601b0319831660c08301529695505050505050565b8183526000602080850194508260005b858110156147945763ffffffff61478183613c18565b168752958201959082019060010161476b565b509495945050505050565b8681526001600160601b0319861660208201526080604082015260006147c960808301868861475b565b82810360608401526147dc8185876144ba565b9998505050505050505050565b8581526001600160a01b03851660208201526001600160401b03841660408201526080606082015260006148216080830184866144ba565b979650505050505050565b85815284602082015263ffffffff8416604082015260806060820152600061482160808301848661475b565b6000610120858352806020840152614872818401866145de565b91505063ffffffff61488384613c18565b1660408301526001600160a01b0361489d6020850161396b565b166060830152604083013577ffffffffffffffffffffffffffffffffffffffffffffffff19811681146148cf57600080fd5b77ffffffffffffffffffffffffffffffffffffffffffffffff191660808301526148fb606084016138f5565b6001600160601b03191660a0830152614916608084016138f5565b6001600160601b03191660c083015261493160a08401614581565b6001600160e01b03191660e083015261494c60c0840161396b565b6001600160a01b03811661010084015250949350505050565b6000815180845260005b8181101561498b5760208185018101518683018201520161496f565b8181111561499d576000602083870101525b50601f01601f19169290920160200192915050565b85815260c0602082015260006149cc60c0830186886144ba565b82810360408401526149de8186614965565b9150508235606083015260208301356080830152604083013560ff8116808214614a0757600080fd5b8060a085015250509695505050505050565b868152608060208201526000614a336080830187896144ba565b8281036040840152614a468186886144ba565b9150508215156060830152979650505050505050565b868152608060208201526000614a766080830187896144ba565b8281036040840152614a8981868861475b565b905082810360608401526147dc8185614965565b8481526001600160601b0319841660208201526060604082015260006146a860608301848661475b565b828152608081016140e8602083018461451c565b60006101008a835260206001600160601b0319808c1682860152614b02604086018c61451c565b8260a0860152614b158386018a8c61475b565b60c0860189905285810360e0870152868152879350820160005b87811015614b545782614b41866138f5565b1682529383019390830190600101614b2f565b509d9c50505050505050505050505050565b84815260c060208201526000614b7f60c08301866145de565b8281036040840152614b91818661465d565b915050614ba1606083018461451c565b95945050505050565b8781526001600160601b0319871660208201526000610100614bcf604084018961451c565b6001600160a01b03871660a08401528060c0840152614bf181840186886144ba565b9150506001600160401b03831660e083015298975050505050505050565b600063ffffffff808316818516808303821115614c3c57634e487b7160e01b600052601160045260246000fd5b0194935050505056fea26469706673582212201fa54723a8548253291254a0a8397b13028156052c7616df7c2d663bf643b94564736f6c63430008090033",
|
|
2464
|
+
"bytecode": "0x608060405234801561001057600080fd5b50614c7b806100206000396000f3fe60806040526004361061031e5760003560e01c806379fc4eb3116101a5578063b34b3216116100ec578063d6eccdf011610095578063e65e19d51161006f578063e65e19d514610e93578063ee1dd3ea14610ec0578063f18cf1b114610ee0578063f7013ef614610f0d57600080fd5b8063d6eccdf014610e0e578063ded1d24a14610e2e578063e53c0b5514610e5a57600080fd5b8063c42b64d0116100c6578063c42b64d014610d83578063c8b5d2db14610dce578063d38bfff414610dee57600080fd5b8063b34b321614610c8d578063b7d372a414610cad578063be05abe314610ccd57600080fd5b8063a9de2f3a1161014e578063b2146cd611610128578063b2146cd614610c0d578063b216bd3514610c4d578063b29a604b14610c6d57600080fd5b8063a9de2f3a14610a6b578063abaeed8f14610aab578063b02c43d014610acb57600080fd5b80639c49c4181161017f5780639c49c41814610a0b578063a145e2d514610a2b578063a8fa0f4214610a4b57600080fd5b806379fc4eb3146109ab578063883d6a11146109cb57806392238f32146109eb57600080fd5b8063475d05701161026957806361ccf97a116102125780636e70ce41116101ec5780636e70ce41146108b257806375b922d11461094457806377145f211461098b57600080fd5b806361ccf97a146107f157806361d027b314610881578063685ce1b11461089f57600080fd5b80635aa6e675116102435780635aa6e675146107795780635c0b4812146107b157806360d712fc146107d157600080fd5b8063475d05701461071957806350aea15a14610739578063575e42791461075957600080fd5b806324028c11116102cb57806331a4889a116102a557806331a4889a146105fa57806333e957cb1461061a5780633dce9812146106f957600080fd5b806324028c111461058a5780632bb818c2146105bc5780632f429b64146105da57600080fd5b80630b6ba19d116102fc5780630b6ba19d1461048d578063133cafc81461054a57806317c964001461056a57600080fd5b806303d952f7146103235780630674f2661461044b57806307f7d2231461046d575b600080fd5b34801561032f57600080fd5b506103e061033e366004613829565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915250600090815260456020908152604091829020825160a08101845281546001600160a01b0381168252600160a01b90046001600160401b039081169382019390935260019091015480831693820193909352600160401b83049091166060820152600160801b90910463ffffffff16608082015290565b6040516104429190600060a0820190506001600160a01b03835116825260208301516001600160401b038082166020850152806040860151166040850152806060860151166060850152505063ffffffff608084015116608083015292915050565b60405180910390f35b34801561045757600080fd5b5061046b61046636600461388a565b610f2d565b005b34801561047957600080fd5b5061046b610488366004613925565b610fbc565b34801561049957600080fd5b506103e06104a8366004613829565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915250600090815260466020908152604091829020825160a08101845281546001600160a01b0381168252600160a01b90046001600160401b039081169382019390935260019091015480831693820193909352600160401b83049091166060820152600160801b90910463ffffffff16608082015290565b34801561055657600080fd5b5061046b610565366004613982565b611045565b34801561057657600080fd5b5061046b610585366004613a1e565b61109e565b34801561059657600080fd5b50604e54600160a01b900463ffffffff1660405163ffffffff9091168152602001610442565b3480156105c857600080fd5b50603654604051908152602001610442565b3480156105e657600080fd5b5061046b6105f5366004613a61565b61110f565b34801561060657600080fd5b5061046b610615366004613b1f565b611166565b34801561062657600080fd5b506106b5610635366004613829565b604080516080810182526000808252602082018190529181018290526060810191909152506000908152604b6020908152604091829020825160808101845281546001600160a01b031681526001820154928101929092526002015463ffffffff81169282019290925264010000000090910460ff161515606082015290565b604051610442919081516001600160a01b031681526020808301519082015260408083015163ffffffff169082015260609182015115159181019190915260800190565b34801561070557600080fd5b5061046b610714366004613b9f565b6111f8565b34801561072557600080fd5b5061046b610734366004613bcb565b611288565b34801561074557600080fd5b5061046b610754366004613c2c565b61132a565b34801561076557600080fd5b5061046b610774366004613925565b611383565b34801561078557600080fd5b50600054610799906001600160a01b031681565b6040516001600160a01b039091168152602001610442565b3480156107bd57600080fd5b5061046b6107cc366004613c79565b6113d8565b3480156107dd57600080fd5b5061046b6107ec366004613ce3565b61142d565b3480156107fd57600080fd5b50604d54604e54604f546040805163ffffffff80861682526001600160401b036401000000008704811660208401526c010000000000000000000000008704811693830193909352600160a01b860483166060830152600160e01b90950485166080820152600160c01b9093041660a08301529190911660c082015260e001610442565b34801561088d57600080fd5b506037546001600160a01b0316610799565b61046b6108ad366004613daf565b6114e6565b3480156108be57600080fd5b506108fd6041546042546043546044546001600160401b0380851695600160401b8604821695600160801b900490911693926001600160601b03169190565b604080516001600160401b0397881681529587166020870152939095169284019290925260608301526001600160601b0316608082015260a081019190915260c001610442565b34801561095057600080fd5b50604754604854604954604a546040805194855260208501939093526001600160601b03909116918301919091526060820152608001610442565b34801561099757600080fd5b5061046b6109a6366004613e1e565b61153f565b3480156109b757600080fd5b5061046b6109c6366004613e9e565b61159a565b3480156109d757600080fd5b5061046b6109e6366004613f31565b6115f5565b3480156109f757600080fd5b5061046b610a06366004613fb7565b611660565b348015610a1757600080fd5b5061046b610a26366004614020565b6116b7565b348015610a3757600080fd5b5061046b610a463660046140cc565b611731565b348015610a5757600080fd5b5061046b610a66366004613b9f565b6117b7565b348015610a7757600080fd5b50603354603454603554604080516001600160a01b0394851681529284166020840152921691810191909152606001610442565b348015610ab757600080fd5b5061046b610ac63660046140ef565b61181d565b348015610ad757600080fd5b50610b98610ae6366004613829565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915250600090815260396020908152604091829020825160c08101845281546001600160a01b0380821683526001600160401b03600160a01b80840482169685019690965263ffffffff600160e01b9384900481169785019790975260019094015490811660608401529384049092166080820152910490911660a082015290565b6040516104429190600060c0820190506001600160a01b0380845116835260208401516001600160401b0380821660208601526040860151915063ffffffff80831660408701528360608801511660608701528160808801511660808701528060a08801511660a08701525050505092915050565b348015610c1957600080fd5b50610c3d610c28366004613829565b6000908152604c602052604090205460ff1690565b6040519015158152602001610442565b348015610c5957600080fd5b5061046b610c6836600461418a565b6118b5565b348015610c7957600080fd5b5061046b610c883660046141f0565b61191f565b348015610c9957600080fd5b5061046b610ca8366004613a61565b61198d565b348015610cb957600080fd5b5061046b610cc836600461422d565b6119e6565b348015610cd957600080fd5b50603b54603c54603d54603e54603f54604080516001600160401b038088168252600160401b8089048216602084015263ffffffff600160801b8a04811694840194909452600160a01b909804831660608301526001600160601b03968716608083015260a082019590955293831660c085015294820490941660e08301526c01000000000000000000000000900490911661010082015261012081019190915261014001610442565b348015610d8f57600080fd5b5060375460385460408051600160a01b9093046001600160401b0390811684528083166020850152600160401b90920490911690820152606001610442565b348015610dda57600080fd5b5061046b610de9366004614298565b611a3d565b348015610dfa57600080fd5b5061046b610e093660046142b3565b611a4b565b348015610e1a57600080fd5b5061046b610e293660046142ce565b611b2a565b348015610e3a57600080fd5b50604e5460601b6040516001600160601b03199091168152602001610442565b348015610e6657600080fd5b50610c3d610e753660046142b3565b6001600160a01b03166000908152603a602052604090205460ff1690565b348015610e9f57600080fd5b50610eb3610eae366004614298565b611b87565b6040516104429190614362565b348015610ecc57600080fd5b5061046b610edb366004614298565b611caa565b348015610eec57600080fd5b50610f00610efb366004613829565b611d0b565b6040516104429190614406565b348015610f1957600080fd5b5061046b610f2836600461445e565b611dc4565b6040517f94fcaf8d00000000000000000000000000000000000000000000000000000000815273__$a542940934c03bae9a39609192cb25cc3c$__906394fcaf8d90610f869060339088908890889088906004016144e3565b60006040518083038186803b158015610f9e57600080fd5b505af4158015610fb2573d6000803e3d6000fd5b5050505050505050565b6040517f260b6cde00000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__9063260b6cde906110119060339086908690600401614555565b60006040518083038186803b15801561102957600080fd5b505af415801561103d573d6000803e3d6000fd5b505050505050565b6040517fd22cd45b00000000000000000000000000000000000000000000000000000000815273__$24f7e155a6d011c1bf9032506ba9b1954c$__9063d22cd45b90610f869060339088908890889088906004016146b2565b6000546001600160a01b031633146110fd5760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064015b60405180910390fd5b61110a60338484846121df565b505050565b6040517e92bac900000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__906292bac990610f86906033908890889088908890600401614706565b6040517fa76558b300000000000000000000000000000000000000000000000000000000815273__$9935b6ea18e0c526c293569ddd26842c9b$__9063a76558b3906111c1906033908990899089908990899060040161479f565b60006040518083038186803b1580156111d957600080fd5b505af41580156111ed573d6000803e3d6000fd5b505050505050505050565b6040517fc87de7f400000000000000000000000000000000000000000000000000000000815260336004820152602481018390526044810182905273__$0f118c52967a3847a37f0a2ef02ffcee04$__9063c87de7f4906064015b60006040518083038186803b15801561126b57600080fd5b505af415801561127f573d6000803e3d6000fd5b50505050505050565b6033546001600160a01b031633146112e25760405162461bcd60e51b815260206004820152601660248201527f43616c6c6572206973206e6f74207468652062616e6b0000000000000000000060448201526064016110f4565b73__$9935b6ea18e0c526c293569ddd26842c9b$__63d253980860338661130887612412565b86866040518663ffffffff1660e01b8152600401610f869594939291906147e9565b6040517f899bef9d00000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__9063899bef9d90610f8690603390889088908890889060040161482c565b6040517f99b0b84700000000000000000000000000000000000000000000000000000000815273__$0f118c52967a3847a37f0a2ef02ffcee04$__906399b0b847906110119060339086908690600401614555565b6040517faea7fd0b00000000000000000000000000000000000000000000000000000000815273__$894ce12e79ca3e5683c1b49e363f37fa22$__9063aea7fd0b906110119060339086908690600401614858565b6000546001600160a01b031633146114875760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110f4565b6001600160a01b0382166000818152603a6020908152604091829020805460ff191685151590811790915591519182527f9065599c12c4294d9e2201638226d0d0beb95c228f468c4e7c2bdb8322b6066f910160405180910390a25050565b6040517feb8fdd5d00000000000000000000000000000000000000000000000000000000815273__$a542940934c03bae9a39609192cb25cc3c$__9063eb8fdd5d90610f869060339088908890889088906004016149b2565b6040517f624526fe00000000000000000000000000000000000000000000000000000000815273__$a542940934c03bae9a39609192cb25cc3c$__9063624526fe906111c19060339089908990899089908990600401614a19565b6040517f80ffe94a00000000000000000000000000000000000000000000000000000000815273__$a542940934c03bae9a39609192cb25cc3c$__906380ffe94a906111c19060339089908990899089908990600401614a5c565b6000546001600160a01b0316331461164f5760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110f4565b61127f603388888888888888612495565b6040517f07f96c4200000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__906307f96c429061125390603390879087908790600401614a9d565b6000546001600160a01b031633146117115760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110f4565b61172560338b8b8b8b8b8b8b8b8b8b612858565b50505050505050505050565b6040517fd079fbb100000000000000000000000000000000000000000000000000000000815273__$0f118c52967a3847a37f0a2ef02ffcee04$__9063d079fbb190611784906033908590600401614ac7565b60006040518083038186803b15801561179c57600080fd5b505af41580156117b0573d6000803e3d6000fd5b5050505050565b6040517f4afbe4c90000000000000000000000000000000000000000000000000000000081526033600482015260248101849052604481018390526064810182905273__$0f118c52967a3847a37f0a2ef02ffcee04$__90634afbe4c990608401611253565b6040517fc8f7794300000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__9063c8f779439061187c906033908b908b908b908b908b908b908b90600401614adb565b60006040518083038186803b15801561189457600080fd5b505af41580156118a8573d6000803e3d6000fd5b5050505050505050505050565b6000546001600160a01b0316331461190f5760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110f4565b61103d6033878787878787612ef5565b6000546001600160a01b031633146119795760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110f4565b6119876033858585856132ae565b50505050565b6040517fa164de6e00000000000000000000000000000000000000000000000000000000815273__$9935b6ea18e0c526c293569ddd26842c9b$__9063a164de6e90610f86906033908890889088908890600401614706565b6040517fb79a972500000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__9063b79a97259061125390603390879087908790600401614b66565b611a48603382613420565b50565b6000546001600160a01b03163314611aa55760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110f4565b6001600160a01b038116611b215760405162461bcd60e51b815260206004820152602260248201527f4e657720676f7665726e616e636520697320746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016110f4565b611a4881613578565b6040517ff5ada44200000000000000000000000000000000000000000000000000000000815273__$9935b6ea18e0c526c293569ddd26842c9b$__9063f5ada442906111c1906033908990899033908a908a908a90600401614baa565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101919091526001600160601b031982166000908152605060209081526040918290208251610120810184528154815260018201549281019290925260028101546001600160401b0381169383019390935263ffffffff600160401b8404811660608401526c01000000000000000000000000840481166080840152600160801b8404811660a0840152600160a01b84041660c0830152909160e083019060ff600160c01b909104166005811115611c8457611c84614338565b6005811115611c9557611c95614338565b81526020016003820154815250509050919050565b6040517f9b69e71d000000000000000000000000000000000000000000000000000000008152603360048201526001600160601b03198216602482015273__$edce581bb06331cf4dae1387760565e5d1$__90639b69e71d90604401611784565b611d336040805160808101825260008082526020820181905291810182905290606082015290565b6000828152604060208181529181902081516080810183528154606081811b6001600160601b0319168352600160a01b82046001600160401b031695830195909552600160e01b900463ffffffff16928101929092526001810154919290919083019060ff166003811115611daa57611daa614338565b6003811115611dbb57611dbb614338565b90525092915050565b6000611dd060016135e6565b90508015611de8576032805461ff0019166101001790555b6001600160a01b038616611e3e5760405162461bcd60e51b815260206004820152601b60248201527f42616e6b20616464726573732063616e6e6f74206265207a65726f000000000060448201526064016110f4565b6033805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03888116919091179091558516611eb95760405162461bcd60e51b815260206004820152601c60248201527f52656c617920616464726573732063616e6e6f74206265207a65726f0000000060448201526064016110f4565b6034805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03878116919091179091558316611f5a5760405162461bcd60e51b815260206004820152602c60248201527f45434453412057616c6c6574205265676973747279206164647265737320636160448201527f6e6e6f74206265207a65726f000000000000000000000000000000000000000060648201526084016110f4565b6035805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03858116919091179091558416611fd55760405162461bcd60e51b815260206004820152601f60248201527f547265617375727920616464726573732063616e6e6f74206265207a65726f0060448201526064016110f4565b6037805460368490556001600160a01b0386166001600160e01b031990911617760f42400000000000000000000000000000000000000000179055603880546fffffffffffffffffffffffffffffffff191669271000000000000007d01790556041805477ffffffffffffffffffffffffffffffffffffffffffffffff1990811671271000000000000007d000000000000f4240179091556202a3006042556043805469021e19e0c9bab24000006001600160601b0319918216811790925560646044819055603b8054851676093a800007e9000000000000004e200000000000002710179055603c8054831684179055603d819055603e805490941675021e19e0c9bab240000000093a80000000000000271017909355603f839055671bc16d674ec8000060475562093a80604855604980549091169091179055604a557eeff1000000000002faf08000000002540be4000000000005f5e10000093a80604d55604e805477ffffffffffffffffffffffffffffffffffffffffffffffff167b3b9aca00000000000000000000000000000000000000000000000000179055604f80546234bc0063ffffffff1990911617905561219233613578565b801561103d576032805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b6000836001600160401b03161161225e5760405162461bcd60e51b815260206004820152603060248201527f4465706f7369742064757374207468726573686f6c64206d757374206265206760448201527f726561746572207468616e207a65726f0000000000000000000000000000000060648201526084016110f4565b6000826001600160401b0316116122dd5760405162461bcd60e51b815260206004820152603660248201527f4465706f736974207472656173757279206665652064697669736f72206d757360448201527f742062652067726561746572207468616e207a65726f0000000000000000000060648201526084016110f4565b6000816001600160401b03161161235c5760405162461bcd60e51b815260206004820152603560248201527f4465706f736974207472616e73616374696f6e206d617820666565206d75737460448201527f2062652067726561746572207468616e207a65726f000000000000000000000060648201526084016110f4565b6004840180547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff16600160a01b6001600160401b03868116918202929092179092556005860180548583166fffffffffffffffffffffffffffffffff199091168117600160401b938616938402179091556040805193845260208401919091528201527f1ced468902ca566e746a3c8c9516af81f8de9f1021c365083be9f2625ebfb7b59060600160405180910390a150505050565b60006001600160401b038211156124915760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201527f342062697473000000000000000000000000000000000000000000000000000060648201526084016110f4565b5090565b856001600160401b0316856001600160401b0316116125425760405162461bcd60e51b815260206004820152605960248201527f57616c6c6574206372656174696f6e206d6178696d756d204254432062616c6160448201527f6e6365206d7573742062652067726561746572207468616e207468652063726560648201527f6174696f6e206d696e696d756d204254432062616c616e636500000000000000608482015260a4016110f4565b6000846001600160401b0316116125c15760405162461bcd60e51b815260206004820152603c60248201527f57616c6c657420636c6f73757265206d696e696d756d204254432062616c616e60448201527f6365206d7573742062652067726561746572207468616e207a65726f0000000060648201526084016110f4565b6000826001600160401b0316116126405760405162461bcd60e51b815260206004820152603560248201527f57616c6c6574206d6178696d756d20425443207472616e73666572206d75737460448201527f2062652067726561746572207468616e207a65726f000000000000000000000060648201526084016110f4565b60008163ffffffff16116126bc5760405162461bcd60e51b815260206004820152602f60248201527f57616c6c657420636c6f73696e6720706572696f64206d75737420626520677260448201527f6561746572207468616e207a65726f000000000000000000000000000000000060648201526084016110f4565b8688601a0160006101000a81548163ffffffff021916908363ffffffff1602179055508588601a0160046101000a8154816001600160401b0302191690836001600160401b031602179055508488601a01600c6101000a8154816001600160401b0302191690836001600160401b031602179055508388601a0160146101000a8154816001600160401b0302191690836001600160401b031602179055508288601a01601c6101000a81548163ffffffff021916908363ffffffff1602179055508188601b0160186101000a8154816001600160401b0302191690836001600160401b031602179055508088601c0160006101000a81548163ffffffff021916908363ffffffff1602179055507fc7d3a9af08692aeae771c329fddd95c7237a9f76fec996325f3959eeff07d4ac87878787878787604051612846979695949392919063ffffffff97881681526001600160401b03968716602082015294861660408601529285166060850152908516608084015290921660a0820152911660c082015260e00190565b60405180910390a15050505050505050565b60008a6001600160401b0316116128d9576040805162461bcd60e51b81526020600482015260248101919091527f4d6f76696e672066756e6473207472616e73616374696f6e206d617820746f7460448201527f616c20666565206d7573742062652067726561746572207468616e207a65726f60648201526084016110f4565b6000896001600160401b03161180156129025750600e8b01546001600160401b03908116908a16105b61299a5760405162461bcd60e51b815260206004820152605e60248201527f4d6f76696e672066756e64732064757374207468726573686f6c64206d75737460448201527f2062652067726561746572207468616e207a65726f20616e64206c6f7765722060648201527f7468616e20726564656d7074696f6e2064757374207468726573686f6c640000608482015260a4016110f4565b60008863ffffffff1611612a165760405162461bcd60e51b815260206004820152603a60248201527f4d6f76696e672066756e64732074696d656f75742072657365742064656c617960448201527f206d7573742062652067726561746572207468616e207a65726f00000000000060648201526084016110f4565b8763ffffffff168763ffffffff1611612a975760405162461bcd60e51b815260206004820152603960248201527f4d6f76696e672066756e64732074696d656f7574206d7573742062652067726560448201527f61746572207468616e206974732072657365742064656c61790000000000000060648201526084016110f4565b6064851115612b345760405162461bcd60e51b815260206004820152604d60248201527f4d6f76696e672066756e64732074696d656f7574206e6f74696669657220726560448201527f77617264206d756c7469706c696572206d75737420626520696e20746865207260648201527f616e6765205b302c203130305d00000000000000000000000000000000000000608482015260a4016110f4565b6000846001600160401b031611612bd95760405162461bcd60e51b815260206004820152604560248201527f4d6f7665642066756e6473207377656570207472616e73616374696f6e206d6160448201527f7820746f74616c20666565206d7573742062652067726561746572207468616e60648201527f207a65726f000000000000000000000000000000000000000000000000000000608482015260a4016110f4565b60008363ffffffff1611612c555760405162461bcd60e51b815260206004820152603360248201527f4d6f7665642066756e64732073776565702074696d656f7574206d757374206260448201527f652067726561746572207468616e207a65726f0000000000000000000000000060648201526084016110f4565b6064811115612cf25760405162461bcd60e51b815260206004820152605260248201527f4d6f7665642066756e64732073776565702074696d656f7574206e6f7469666960448201527f657220726577617264206d756c7469706c696572206d75737420626520696e2060648201527f7468652072616e6765205b302c203130305d0000000000000000000000000000608482015260a4016110f4565b898b60080160006101000a8154816001600160401b0302191690836001600160401b03160217905550888b60080160086101000a8154816001600160401b0302191690836001600160401b03160217905550878b60080160106101000a81548163ffffffff021916908363ffffffff160217905550868b60080160146101000a81548163ffffffff021916908363ffffffff160217905550858b60090160006101000a8154816001600160601b0302191690836001600160601b03160217905550848b600a0181905550838b600b0160006101000a8154816001600160401b0302191690836001600160401b03160217905550828b600b0160086101000a81548163ffffffff021916908363ffffffff160217905550818b600b01600c6101000a8154816001600160601b0302191690836001600160601b03160217905550808b600c01819055507f9fbab8abcd4ce947cd4ffe98e310cc5290d30644941a68e43899b3b6e219ca928a8a8a8a8a8a8a8a8a8a604051612ee09a999897969594939291906001600160401b039a8b168152988a1660208a015263ffffffff97881660408a015295871660608901526001600160601b03948516608089015260a0880193909352961660c08601529490921660e084015292166101008201526101208101919091526101400190565b60405180910390a15050505050505050505050565b60088701546001600160401b03600160401b909104811690871611612fa85760405162461bcd60e51b815260206004820152604a60248201527f526564656d7074696f6e2064757374207468726573686f6c64206d757374206260448201527f652067726561746572207468616e206d6f76696e672066756e6473206475737460648201527f207468726573686f6c6400000000000000000000000000000000000000000000608482015260a4016110f4565b6000856001600160401b0316116130275760405162461bcd60e51b815260206004820152603960248201527f526564656d7074696f6e207472656173757279206665652064697669736f722060448201527f6d7573742062652067726561746572207468616e207a65726f0000000000000060648201526084016110f4565b6000846001600160401b0316116130a65760405162461bcd60e51b815260206004820152603860248201527f526564656d7074696f6e207472616e73616374696f6e206d617820666565206d60448201527f7573742062652067726561746572207468616e207a65726f000000000000000060648201526084016110f4565b6000831161311c5760405162461bcd60e51b815260206004820152602c60248201527f526564656d7074696f6e2074696d656f7574206d75737420626520677265617460448201527f6572207468616e207a65726f000000000000000000000000000000000000000060648201526084016110f4565b60648111156131b95760405162461bcd60e51b815260206004820152604b60248201527f526564656d7074696f6e2074696d656f7574206e6f746966696572207265776160448201527f7264206d756c7469706c696572206d75737420626520696e207468652072616e60648201527f6765205b302c203130305d000000000000000000000000000000000000000000608482015260a4016110f4565b600e870180546001600160401b038881166fffffffffffffffffffffffffffffffff199092168217600160401b898316908102919091177fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff16600160801b92891692830217909355600f8a0186905560108a0180546001600160601b0319166001600160601b03871690811790915560118b018590556040805193845260208401949094529282015260608101859052608081019190915260a081018290527f944cd06e316cc3da4159300dd41ab23416c89a5136c41fa79d57fe8a34bcc10f9060c00160405180910390a150505050505050565b600083116133245760405162461bcd60e51b815260206004820152603860248201527f4672617564206368616c6c656e6765206465666561742074696d656f7574206d60448201527f7573742062652067726561746572207468616e207a65726f000000000000000060648201526084016110f4565b606481111561339b5760405162461bcd60e51b815260206004820152603e60248201527f4672617564206e6f74696669657220726577617264206d756c7469706c69657260448201527f206d75737420626520696e207468652072616e6765205b302c203130305d000060648201526084016110f4565b60148501849055601585018390556016850180546001600160601b0319166001600160601b03841690811790915560178601829055604080518681526020810186905290810191909152606081018290527fd0d6d92441fbb139a023c9c62586dbd767824f37869c45da6443fc3aef64194f9060800160405180910390a15050505050565b6001600160601b031981166000908152601d83016020526040902060036002820154600160c01b900460ff16600581111561345d5761345d614338565b146134d05760405162461bcd60e51b815260206004820152602560248201527f45434453412077616c6c6574206d75737420626520696e20436c6f73696e672060448201527f737461746500000000000000000000000000000000000000000000000000000060648201526084016110f4565b601c83015460028201546134f49163ffffffff90811691600160801b900416614c0f565b63ffffffff16421161356e5760405162461bcd60e51b815260206004820152602260248201527f436c6f73696e6720706572696f6420686173206e6f7420656c6170736564207960448201527f657400000000000000000000000000000000000000000000000000000000000060648201526084016110f4565b61110a8383613721565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff1983168117909355604080519190921680825260208201939093527f5f56bee8cffbe9a78652a74a60705edede02af10b0bbb888ca44b79a0d42ce80910160405180910390a15050565b603254600090610100900460ff1615613685578160ff16600114801561360b5750303b155b61367d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016110f4565b506000919050565b60325460ff8084169116106137025760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016110f4565b506032805460ff191660ff92909216919091179055600190565b919050565b6001600160601b031981166000818152601d840160205260408082206002810180547fffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff167804000000000000000000000000000000000000000000000000179055805491519093927f47b159947c3066cb253f60e8f046cfd747411788a545cb189679e3fa1467b28d91a3600283015481546040517f343bb9270000000000000000000000000000000000000000000000000000000081526001600160a01b039092169163343bb927916137fb9160040190815260200190565b600060405180830381600087803b15801561381557600080fd5b505af115801561127f573d6000803e3d6000fd5b60006020828403121561383b57600080fd5b5035919050565b60008083601f84011261385457600080fd5b5081356001600160401b0381111561386b57600080fd5b60208301915083602082850101111561388357600080fd5b9250929050565b600080600080604085870312156138a057600080fd5b84356001600160401b03808211156138b757600080fd5b6138c388838901613842565b909650945060208701359150808211156138dc57600080fd5b506138e987828801613842565b95989497509550505050565b80356001600160601b03198116811461371c57600080fd5b60006060828403121561391f57600080fd5b50919050565b6000806080838503121561393857600080fd5b613941836138f5565b9150613950846020850161390d565b90509250929050565b60006080828403121561391f57600080fd5b80356001600160a01b038116811461371c57600080fd5b60008060008060c0858703121561399857600080fd5b84356001600160401b03808211156139af57600080fd5b6139bb88838901613959565b955060208701359150808211156139d157600080fd5b506139de8782880161390d565b9350506139ee866040870161390d565b91506139fc60a0860161396b565b905092959194509250565b80356001600160401b038116811461371c57600080fd5b600080600060608486031215613a3357600080fd5b613a3c84613a07565b9250613a4a60208501613a07565b9150613a5860408501613a07565b90509250925092565b60008060008060c08587031215613a7757600080fd5b84356001600160401b0380821115613a8e57600080fd5b613a9a88838901613959565b95506020870135915080821115613ab057600080fd5b50613abd8782880161390d565b935050613acd866040870161390d565b91506139fc60a086016138f5565b60008083601f840112613aed57600080fd5b5081356001600160401b03811115613b0457600080fd5b6020830191508360208260051b850101111561388357600080fd5b600080600080600060608688031215613b3757600080fd5b613b40866138f5565b945060208601356001600160401b0380821115613b5c57600080fd5b613b6889838a01613adb565b90965094506040880135915080821115613b8157600080fd5b50613b8e88828901613842565b969995985093965092949392505050565b600080600060608486031215613bb457600080fd5b505081359360208301359350604090920135919050565b60008060008060608587031215613be157600080fd5b613bea8561396b565b93506020850135925060408501356001600160401b03811115613c0c57600080fd5b6138e987828801613842565b803563ffffffff8116811461371c57600080fd5b60008060008060608587031215613c4257600080fd5b84359350613c5260208601613c18565b925060408501356001600160401b03811115613c6d57600080fd5b6138e987828801613adb565b600080828403610100811215613c8e57600080fd5b83356001600160401b03811115613ca457600080fd5b613cb086828701613959565b93505060e0601f1982011215613cc557600080fd5b506020830190509250929050565b8035801515811461371c57600080fd5b60008060408385031215613cf657600080fd5b613cff8361396b565b915061395060208401613cd3565b634e487b7160e01b600052604160045260246000fd5b600082601f830112613d3457600080fd5b81356001600160401b0380821115613d4e57613d4e613d0d565b604051601f8301601f19908116603f01168101908282118183101715613d7657613d76613d0d565b81604052838152866020858801011115613d8f57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060a08587031215613dc557600080fd5b84356001600160401b0380821115613ddc57600080fd5b613de888838901613842565b90965094506020870135915080821115613e0157600080fd5b50613e0e87828801613d23565b9250506139fc866040870161390d565b600080600080600060608688031215613e3657600080fd5b85356001600160401b0380821115613e4d57600080fd5b613e5989838a01613842565b90975095506020880135915080821115613e7257600080fd5b50613e7f88828901613842565b9094509250613e92905060408701613cd3565b90509295509295909350565b600080600080600060608688031215613eb657600080fd5b85356001600160401b0380821115613ecd57600080fd5b613ed989838a01613842565b90975095506020880135915080821115613ef257600080fd5b613efe89838a01613adb565b90955093506040880135915080821115613f1757600080fd5b50613f2488828901613d23565b9150509295509295909350565b600080600080600080600060e0888a031215613f4c57600080fd5b613f5588613c18565b9650613f6360208901613a07565b9550613f7160408901613a07565b9450613f7f60608901613a07565b9350613f8d60808901613c18565b9250613f9b60a08901613a07565b9150613fa960c08901613c18565b905092959891949750929550565b600080600060408486031215613fcc57600080fd5b613fd5846138f5565b925060208401356001600160401b03811115613ff057600080fd5b613ffc86828701613adb565b9497909650939450505050565b80356001600160601b038116811461371c57600080fd5b6000806000806000806000806000806101408b8d03121561404057600080fd5b6140498b613a07565b995061405760208c01613a07565b985061406560408c01613c18565b975061407360608c01613c18565b965061408160808c01614009565b955060a08b0135945061409660c08c01613a07565b93506140a460e08c01613c18565b92506140b36101008c01614009565b91506101208b013590509295989b9194979a5092959850565b6000606082840312156140de57600080fd5b6140e8838361390d565b9392505050565b600080600080600080600060e0888a03121561410a57600080fd5b614113886138f5565b96506141228960208a0161390d565b955060808801356001600160401b038082111561413e57600080fd5b61414a8b838c01613adb565b909750955060a08a0135945060c08a013591508082111561416a57600080fd5b506141778a828b01613adb565b989b979a50959850939692959293505050565b60008060008060008060c087890312156141a357600080fd5b6141ac87613a07565b95506141ba60208801613a07565b94506141c860408801613a07565b9350606087013592506141dd60808801614009565b915060a087013590509295509295509295565b6000806000806080858703121561420657600080fd5b843593506020850135925061421d60408601614009565b9396929550929360600135925050565b600080600060a0848603121561424257600080fd5b83356001600160401b038082111561425957600080fd5b61426587838801613959565b9450602086013591508082111561427b57600080fd5b506142888682870161390d565b925050613a58856040860161390d565b6000602082840312156142aa57600080fd5b6140e8826138f5565b6000602082840312156142c557600080fd5b6140e88261396b565b600080600080600060c086880312156142e657600080fd5b6142ef866138f5565b94506142fe876020880161390d565b935060808601356001600160401b0381111561431957600080fd5b61432588828901613842565b9094509250613e92905060a08701613a07565b634e487b7160e01b600052602160045260246000fd5b6006811061435e5761435e614338565b9052565b60006101208201905082518252602083015160208301526001600160401b03604084015116604083015263ffffffff606084015116606083015260808301516143b3608084018263ffffffff169052565b5060a08301516143cb60a084018263ffffffff169052565b5060c08301516143e360c084018263ffffffff169052565b5060e08301516143f660e084018261434e565b5061010092830151919092015290565b81516001600160601b03191681526020808301516001600160401b03169082015260408083015163ffffffff1690820152606082015160808201906004811061445157614451614338565b8060608401525092915050565b600080600080600060a0868803121561447657600080fd5b61447f8661396b565b945061448d6020870161396b565b935061449b6040870161396b565b92506144a96060870161396b565b949793965091946080013592915050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b8581526060602082015260006144fd6060830186886144ba565b82810360408401526145108185876144ba565b98975050505050505050565b8035825263ffffffff61453160208301613c18565b1660208301526001600160401b0361454b60408301613a07565b1660408301525050565b8381526001600160601b03198316602082015260a08101614579604083018461451c565b949350505050565b80356001600160e01b03198116811461371c57600080fd5b6000808335601e198436030181126145b057600080fd5b83016020810192503590506001600160401b038111156145cf57600080fd5b80360383131561388357600080fd5b60006001600160e01b0319806145f384614581565b1684526146036020840184614599565b608060208701526146186080870182846144ba565b9150506146286040850185614599565b868303604088015261463b8382846144ba565b925050508161464c60608601614581565b166060860152809250505092915050565b60006146698283614599565b6060855261467b6060860182846144ba565b915050602083013560208501526146956040840184614599565b85830360408701526146a88382846144ba565b9695505050505050565b85815260e0602082015260006146cb60e08301876145de565b82810360408401526146dd818761465d565b9150506146ed606083018561451c565b6001600160a01b03831660c08301529695505050505050565b85815260e06020820152600061471f60e08301876145de565b8281036040840152614731818761465d565b915050614741606083018561451c565b6001600160601b0319831660c08301529695505050505050565b8183526000602080850194508260005b858110156147945763ffffffff61478183613c18565b168752958201959082019060010161476b565b509495945050505050565b8681526001600160601b0319861660208201526080604082015260006147c960808301868861475b565b82810360608401526147dc8185876144ba565b9998505050505050505050565b8581526001600160a01b03851660208201526001600160401b03841660408201526080606082015260006148216080830184866144ba565b979650505050505050565b85815284602082015263ffffffff8416604082015260806060820152600061482160808301848661475b565b6000610120858352806020840152614872818401866145de565b91505063ffffffff61488384613c18565b1660408301526001600160a01b0361489d6020850161396b565b166060830152604083013577ffffffffffffffffffffffffffffffffffffffffffffffff19811681146148cf57600080fd5b77ffffffffffffffffffffffffffffffffffffffffffffffff191660808301526148fb606084016138f5565b6001600160601b03191660a0830152614916608084016138f5565b6001600160601b03191660c083015261493160a08401614581565b6001600160e01b03191660e083015261494c60c0840161396b565b6001600160a01b03811661010084015250949350505050565b6000815180845260005b8181101561498b5760208185018101518683018201520161496f565b8181111561499d576000602083870101525b50601f01601f19169290920160200192915050565b85815260c0602082015260006149cc60c0830186886144ba565b82810360408401526149de8186614965565b9150508235606083015260208301356080830152604083013560ff8116808214614a0757600080fd5b8060a085015250509695505050505050565b868152608060208201526000614a336080830187896144ba565b8281036040840152614a468186886144ba565b9150508215156060830152979650505050505050565b868152608060208201526000614a766080830187896144ba565b8281036040840152614a8981868861475b565b905082810360608401526147dc8185614965565b8481526001600160601b0319841660208201526060604082015260006146a860608301848661475b565b828152608081016140e8602083018461451c565b60006101008a835260206001600160601b0319808c1682860152614b02604086018c61451c565b8260a0860152614b158386018a8c61475b565b60c0860189905285810360e0870152868152879350820160005b87811015614b545782614b41866138f5565b1682529383019390830190600101614b2f565b509d9c50505050505050505050505050565b84815260c060208201526000614b7f60c08301866145de565b8281036040840152614b91818661465d565b915050614ba1606083018461451c565b95945050505050565b8781526001600160601b0319871660208201526000610100614bcf604084018961451c565b6001600160a01b03871660a08401528060c0840152614bf181840186886144ba565b9150506001600160401b03831660e083015298975050505050505050565b600063ffffffff808316818516808303821115614c3c57634e487b7160e01b600052601160045260246000fd5b0194935050505056fea2646970667358221220e9dd5a6e4c4da391d443462da020bd48dfe3042e705bb48dfcd2145ec392ea5564736f6c63430008090033",
|
|
2465
|
+
"deployedBytecode": "0x60806040526004361061031e5760003560e01c806379fc4eb3116101a5578063b34b3216116100ec578063d6eccdf011610095578063e65e19d51161006f578063e65e19d514610e93578063ee1dd3ea14610ec0578063f18cf1b114610ee0578063f7013ef614610f0d57600080fd5b8063d6eccdf014610e0e578063ded1d24a14610e2e578063e53c0b5514610e5a57600080fd5b8063c42b64d0116100c6578063c42b64d014610d83578063c8b5d2db14610dce578063d38bfff414610dee57600080fd5b8063b34b321614610c8d578063b7d372a414610cad578063be05abe314610ccd57600080fd5b8063a9de2f3a1161014e578063b2146cd611610128578063b2146cd614610c0d578063b216bd3514610c4d578063b29a604b14610c6d57600080fd5b8063a9de2f3a14610a6b578063abaeed8f14610aab578063b02c43d014610acb57600080fd5b80639c49c4181161017f5780639c49c41814610a0b578063a145e2d514610a2b578063a8fa0f4214610a4b57600080fd5b806379fc4eb3146109ab578063883d6a11146109cb57806392238f32146109eb57600080fd5b8063475d05701161026957806361ccf97a116102125780636e70ce41116101ec5780636e70ce41146108b257806375b922d11461094457806377145f211461098b57600080fd5b806361ccf97a146107f157806361d027b314610881578063685ce1b11461089f57600080fd5b80635aa6e675116102435780635aa6e675146107795780635c0b4812146107b157806360d712fc146107d157600080fd5b8063475d05701461071957806350aea15a14610739578063575e42791461075957600080fd5b806324028c11116102cb57806331a4889a116102a557806331a4889a146105fa57806333e957cb1461061a5780633dce9812146106f957600080fd5b806324028c111461058a5780632bb818c2146105bc5780632f429b64146105da57600080fd5b80630b6ba19d116102fc5780630b6ba19d1461048d578063133cafc81461054a57806317c964001461056a57600080fd5b806303d952f7146103235780630674f2661461044b57806307f7d2231461046d575b600080fd5b34801561032f57600080fd5b506103e061033e366004613829565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915250600090815260456020908152604091829020825160a08101845281546001600160a01b0381168252600160a01b90046001600160401b039081169382019390935260019091015480831693820193909352600160401b83049091166060820152600160801b90910463ffffffff16608082015290565b6040516104429190600060a0820190506001600160a01b03835116825260208301516001600160401b038082166020850152806040860151166040850152806060860151166060850152505063ffffffff608084015116608083015292915050565b60405180910390f35b34801561045757600080fd5b5061046b61046636600461388a565b610f2d565b005b34801561047957600080fd5b5061046b610488366004613925565b610fbc565b34801561049957600080fd5b506103e06104a8366004613829565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915250600090815260466020908152604091829020825160a08101845281546001600160a01b0381168252600160a01b90046001600160401b039081169382019390935260019091015480831693820193909352600160401b83049091166060820152600160801b90910463ffffffff16608082015290565b34801561055657600080fd5b5061046b610565366004613982565b611045565b34801561057657600080fd5b5061046b610585366004613a1e565b61109e565b34801561059657600080fd5b50604e54600160a01b900463ffffffff1660405163ffffffff9091168152602001610442565b3480156105c857600080fd5b50603654604051908152602001610442565b3480156105e657600080fd5b5061046b6105f5366004613a61565b61110f565b34801561060657600080fd5b5061046b610615366004613b1f565b611166565b34801561062657600080fd5b506106b5610635366004613829565b604080516080810182526000808252602082018190529181018290526060810191909152506000908152604b6020908152604091829020825160808101845281546001600160a01b031681526001820154928101929092526002015463ffffffff81169282019290925264010000000090910460ff161515606082015290565b604051610442919081516001600160a01b031681526020808301519082015260408083015163ffffffff169082015260609182015115159181019190915260800190565b34801561070557600080fd5b5061046b610714366004613b9f565b6111f8565b34801561072557600080fd5b5061046b610734366004613bcb565b611288565b34801561074557600080fd5b5061046b610754366004613c2c565b61132a565b34801561076557600080fd5b5061046b610774366004613925565b611383565b34801561078557600080fd5b50600054610799906001600160a01b031681565b6040516001600160a01b039091168152602001610442565b3480156107bd57600080fd5b5061046b6107cc366004613c79565b6113d8565b3480156107dd57600080fd5b5061046b6107ec366004613ce3565b61142d565b3480156107fd57600080fd5b50604d54604e54604f546040805163ffffffff80861682526001600160401b036401000000008704811660208401526c010000000000000000000000008704811693830193909352600160a01b860483166060830152600160e01b90950485166080820152600160c01b9093041660a08301529190911660c082015260e001610442565b34801561088d57600080fd5b506037546001600160a01b0316610799565b61046b6108ad366004613daf565b6114e6565b3480156108be57600080fd5b506108fd6041546042546043546044546001600160401b0380851695600160401b8604821695600160801b900490911693926001600160601b03169190565b604080516001600160401b0397881681529587166020870152939095169284019290925260608301526001600160601b0316608082015260a081019190915260c001610442565b34801561095057600080fd5b50604754604854604954604a546040805194855260208501939093526001600160601b03909116918301919091526060820152608001610442565b34801561099757600080fd5b5061046b6109a6366004613e1e565b61153f565b3480156109b757600080fd5b5061046b6109c6366004613e9e565b61159a565b3480156109d757600080fd5b5061046b6109e6366004613f31565b6115f5565b3480156109f757600080fd5b5061046b610a06366004613fb7565b611660565b348015610a1757600080fd5b5061046b610a26366004614020565b6116b7565b348015610a3757600080fd5b5061046b610a463660046140cc565b611731565b348015610a5757600080fd5b5061046b610a66366004613b9f565b6117b7565b348015610a7757600080fd5b50603354603454603554604080516001600160a01b0394851681529284166020840152921691810191909152606001610442565b348015610ab757600080fd5b5061046b610ac63660046140ef565b61181d565b348015610ad757600080fd5b50610b98610ae6366004613829565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915250600090815260396020908152604091829020825160c08101845281546001600160a01b0380821683526001600160401b03600160a01b80840482169685019690965263ffffffff600160e01b9384900481169785019790975260019094015490811660608401529384049092166080820152910490911660a082015290565b6040516104429190600060c0820190506001600160a01b0380845116835260208401516001600160401b0380821660208601526040860151915063ffffffff80831660408701528360608801511660608701528160808801511660808701528060a08801511660a08701525050505092915050565b348015610c1957600080fd5b50610c3d610c28366004613829565b6000908152604c602052604090205460ff1690565b6040519015158152602001610442565b348015610c5957600080fd5b5061046b610c6836600461418a565b6118b5565b348015610c7957600080fd5b5061046b610c883660046141f0565b61191f565b348015610c9957600080fd5b5061046b610ca8366004613a61565b61198d565b348015610cb957600080fd5b5061046b610cc836600461422d565b6119e6565b348015610cd957600080fd5b50603b54603c54603d54603e54603f54604080516001600160401b038088168252600160401b8089048216602084015263ffffffff600160801b8a04811694840194909452600160a01b909804831660608301526001600160601b03968716608083015260a082019590955293831660c085015294820490941660e08301526c01000000000000000000000000900490911661010082015261012081019190915261014001610442565b348015610d8f57600080fd5b5060375460385460408051600160a01b9093046001600160401b0390811684528083166020850152600160401b90920490911690820152606001610442565b348015610dda57600080fd5b5061046b610de9366004614298565b611a3d565b348015610dfa57600080fd5b5061046b610e093660046142b3565b611a4b565b348015610e1a57600080fd5b5061046b610e293660046142ce565b611b2a565b348015610e3a57600080fd5b50604e5460601b6040516001600160601b03199091168152602001610442565b348015610e6657600080fd5b50610c3d610e753660046142b3565b6001600160a01b03166000908152603a602052604090205460ff1690565b348015610e9f57600080fd5b50610eb3610eae366004614298565b611b87565b6040516104429190614362565b348015610ecc57600080fd5b5061046b610edb366004614298565b611caa565b348015610eec57600080fd5b50610f00610efb366004613829565b611d0b565b6040516104429190614406565b348015610f1957600080fd5b5061046b610f2836600461445e565b611dc4565b6040517f94fcaf8d00000000000000000000000000000000000000000000000000000000815273__$a542940934c03bae9a39609192cb25cc3c$__906394fcaf8d90610f869060339088908890889088906004016144e3565b60006040518083038186803b158015610f9e57600080fd5b505af4158015610fb2573d6000803e3d6000fd5b5050505050505050565b6040517f260b6cde00000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__9063260b6cde906110119060339086908690600401614555565b60006040518083038186803b15801561102957600080fd5b505af415801561103d573d6000803e3d6000fd5b505050505050565b6040517fd22cd45b00000000000000000000000000000000000000000000000000000000815273__$24f7e155a6d011c1bf9032506ba9b1954c$__9063d22cd45b90610f869060339088908890889088906004016146b2565b6000546001600160a01b031633146110fd5760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064015b60405180910390fd5b61110a60338484846121df565b505050565b6040517e92bac900000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__906292bac990610f86906033908890889088908890600401614706565b6040517fa76558b300000000000000000000000000000000000000000000000000000000815273__$9935b6ea18e0c526c293569ddd26842c9b$__9063a76558b3906111c1906033908990899089908990899060040161479f565b60006040518083038186803b1580156111d957600080fd5b505af41580156111ed573d6000803e3d6000fd5b505050505050505050565b6040517fc87de7f400000000000000000000000000000000000000000000000000000000815260336004820152602481018390526044810182905273__$0f118c52967a3847a37f0a2ef02ffcee04$__9063c87de7f4906064015b60006040518083038186803b15801561126b57600080fd5b505af415801561127f573d6000803e3d6000fd5b50505050505050565b6033546001600160a01b031633146112e25760405162461bcd60e51b815260206004820152601660248201527f43616c6c6572206973206e6f74207468652062616e6b0000000000000000000060448201526064016110f4565b73__$9935b6ea18e0c526c293569ddd26842c9b$__63d253980860338661130887612412565b86866040518663ffffffff1660e01b8152600401610f869594939291906147e9565b6040517f899bef9d00000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__9063899bef9d90610f8690603390889088908890889060040161482c565b6040517f99b0b84700000000000000000000000000000000000000000000000000000000815273__$0f118c52967a3847a37f0a2ef02ffcee04$__906399b0b847906110119060339086908690600401614555565b6040517faea7fd0b00000000000000000000000000000000000000000000000000000000815273__$894ce12e79ca3e5683c1b49e363f37fa22$__9063aea7fd0b906110119060339086908690600401614858565b6000546001600160a01b031633146114875760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110f4565b6001600160a01b0382166000818152603a6020908152604091829020805460ff191685151590811790915591519182527f9065599c12c4294d9e2201638226d0d0beb95c228f468c4e7c2bdb8322b6066f910160405180910390a25050565b6040517feb8fdd5d00000000000000000000000000000000000000000000000000000000815273__$a542940934c03bae9a39609192cb25cc3c$__9063eb8fdd5d90610f869060339088908890889088906004016149b2565b6040517f624526fe00000000000000000000000000000000000000000000000000000000815273__$a542940934c03bae9a39609192cb25cc3c$__9063624526fe906111c19060339089908990899089908990600401614a19565b6040517f80ffe94a00000000000000000000000000000000000000000000000000000000815273__$a542940934c03bae9a39609192cb25cc3c$__906380ffe94a906111c19060339089908990899089908990600401614a5c565b6000546001600160a01b0316331461164f5760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110f4565b61127f603388888888888888612495565b6040517f07f96c4200000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__906307f96c429061125390603390879087908790600401614a9d565b6000546001600160a01b031633146117115760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110f4565b61172560338b8b8b8b8b8b8b8b8b8b612858565b50505050505050505050565b6040517fd079fbb100000000000000000000000000000000000000000000000000000000815273__$0f118c52967a3847a37f0a2ef02ffcee04$__9063d079fbb190611784906033908590600401614ac7565b60006040518083038186803b15801561179c57600080fd5b505af41580156117b0573d6000803e3d6000fd5b5050505050565b6040517f4afbe4c90000000000000000000000000000000000000000000000000000000081526033600482015260248101849052604481018390526064810182905273__$0f118c52967a3847a37f0a2ef02ffcee04$__90634afbe4c990608401611253565b6040517fc8f7794300000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__9063c8f779439061187c906033908b908b908b908b908b908b908b90600401614adb565b60006040518083038186803b15801561189457600080fd5b505af41580156118a8573d6000803e3d6000fd5b5050505050505050505050565b6000546001600160a01b0316331461190f5760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110f4565b61103d6033878787878787612ef5565b6000546001600160a01b031633146119795760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110f4565b6119876033858585856132ae565b50505050565b6040517fa164de6e00000000000000000000000000000000000000000000000000000000815273__$9935b6ea18e0c526c293569ddd26842c9b$__9063a164de6e90610f86906033908890889088908890600401614706565b6040517fb79a972500000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__9063b79a97259061125390603390879087908790600401614b66565b611a48603382613420565b50565b6000546001600160a01b03163314611aa55760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110f4565b6001600160a01b038116611b215760405162461bcd60e51b815260206004820152602260248201527f4e657720676f7665726e616e636520697320746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016110f4565b611a4881613578565b6040517ff5ada44200000000000000000000000000000000000000000000000000000000815273__$9935b6ea18e0c526c293569ddd26842c9b$__9063f5ada442906111c1906033908990899033908a908a908a90600401614baa565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101919091526001600160601b031982166000908152605060209081526040918290208251610120810184528154815260018201549281019290925260028101546001600160401b0381169383019390935263ffffffff600160401b8404811660608401526c01000000000000000000000000840481166080840152600160801b8404811660a0840152600160a01b84041660c0830152909160e083019060ff600160c01b909104166005811115611c8457611c84614338565b6005811115611c9557611c95614338565b81526020016003820154815250509050919050565b6040517f9b69e71d000000000000000000000000000000000000000000000000000000008152603360048201526001600160601b03198216602482015273__$edce581bb06331cf4dae1387760565e5d1$__90639b69e71d90604401611784565b611d336040805160808101825260008082526020820181905291810182905290606082015290565b6000828152604060208181529181902081516080810183528154606081811b6001600160601b0319168352600160a01b82046001600160401b031695830195909552600160e01b900463ffffffff16928101929092526001810154919290919083019060ff166003811115611daa57611daa614338565b6003811115611dbb57611dbb614338565b90525092915050565b6000611dd060016135e6565b90508015611de8576032805461ff0019166101001790555b6001600160a01b038616611e3e5760405162461bcd60e51b815260206004820152601b60248201527f42616e6b20616464726573732063616e6e6f74206265207a65726f000000000060448201526064016110f4565b6033805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03888116919091179091558516611eb95760405162461bcd60e51b815260206004820152601c60248201527f52656c617920616464726573732063616e6e6f74206265207a65726f0000000060448201526064016110f4565b6034805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03878116919091179091558316611f5a5760405162461bcd60e51b815260206004820152602c60248201527f45434453412057616c6c6574205265676973747279206164647265737320636160448201527f6e6e6f74206265207a65726f000000000000000000000000000000000000000060648201526084016110f4565b6035805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03858116919091179091558416611fd55760405162461bcd60e51b815260206004820152601f60248201527f547265617375727920616464726573732063616e6e6f74206265207a65726f0060448201526064016110f4565b6037805460368490556001600160a01b0386166001600160e01b031990911617760f42400000000000000000000000000000000000000000179055603880546fffffffffffffffffffffffffffffffff191669271000000000000007d01790556041805477ffffffffffffffffffffffffffffffffffffffffffffffff1990811671271000000000000007d000000000000f4240179091556202a3006042556043805469021e19e0c9bab24000006001600160601b0319918216811790925560646044819055603b8054851676093a800007e9000000000000004e200000000000002710179055603c8054831684179055603d819055603e805490941675021e19e0c9bab240000000093a80000000000000271017909355603f839055671bc16d674ec8000060475562093a80604855604980549091169091179055604a557eeff1000000000002faf08000000002540be4000000000005f5e10000093a80604d55604e805477ffffffffffffffffffffffffffffffffffffffffffffffff167b3b9aca00000000000000000000000000000000000000000000000000179055604f80546234bc0063ffffffff1990911617905561219233613578565b801561103d576032805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b6000836001600160401b03161161225e5760405162461bcd60e51b815260206004820152603060248201527f4465706f7369742064757374207468726573686f6c64206d757374206265206760448201527f726561746572207468616e207a65726f0000000000000000000000000000000060648201526084016110f4565b6000826001600160401b0316116122dd5760405162461bcd60e51b815260206004820152603660248201527f4465706f736974207472656173757279206665652064697669736f72206d757360448201527f742062652067726561746572207468616e207a65726f0000000000000000000060648201526084016110f4565b6000816001600160401b03161161235c5760405162461bcd60e51b815260206004820152603560248201527f4465706f736974207472616e73616374696f6e206d617820666565206d75737460448201527f2062652067726561746572207468616e207a65726f000000000000000000000060648201526084016110f4565b6004840180547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff16600160a01b6001600160401b03868116918202929092179092556005860180548583166fffffffffffffffffffffffffffffffff199091168117600160401b938616938402179091556040805193845260208401919091528201527f1ced468902ca566e746a3c8c9516af81f8de9f1021c365083be9f2625ebfb7b59060600160405180910390a150505050565b60006001600160401b038211156124915760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201527f342062697473000000000000000000000000000000000000000000000000000060648201526084016110f4565b5090565b856001600160401b0316856001600160401b0316116125425760405162461bcd60e51b815260206004820152605960248201527f57616c6c6574206372656174696f6e206d6178696d756d204254432062616c6160448201527f6e6365206d7573742062652067726561746572207468616e207468652063726560648201527f6174696f6e206d696e696d756d204254432062616c616e636500000000000000608482015260a4016110f4565b6000846001600160401b0316116125c15760405162461bcd60e51b815260206004820152603c60248201527f57616c6c657420636c6f73757265206d696e696d756d204254432062616c616e60448201527f6365206d7573742062652067726561746572207468616e207a65726f0000000060648201526084016110f4565b6000826001600160401b0316116126405760405162461bcd60e51b815260206004820152603560248201527f57616c6c6574206d6178696d756d20425443207472616e73666572206d75737460448201527f2062652067726561746572207468616e207a65726f000000000000000000000060648201526084016110f4565b60008163ffffffff16116126bc5760405162461bcd60e51b815260206004820152602f60248201527f57616c6c657420636c6f73696e6720706572696f64206d75737420626520677260448201527f6561746572207468616e207a65726f000000000000000000000000000000000060648201526084016110f4565b8688601a0160006101000a81548163ffffffff021916908363ffffffff1602179055508588601a0160046101000a8154816001600160401b0302191690836001600160401b031602179055508488601a01600c6101000a8154816001600160401b0302191690836001600160401b031602179055508388601a0160146101000a8154816001600160401b0302191690836001600160401b031602179055508288601a01601c6101000a81548163ffffffff021916908363ffffffff1602179055508188601b0160186101000a8154816001600160401b0302191690836001600160401b031602179055508088601c0160006101000a81548163ffffffff021916908363ffffffff1602179055507fc7d3a9af08692aeae771c329fddd95c7237a9f76fec996325f3959eeff07d4ac87878787878787604051612846979695949392919063ffffffff97881681526001600160401b03968716602082015294861660408601529285166060850152908516608084015290921660a0820152911660c082015260e00190565b60405180910390a15050505050505050565b60008a6001600160401b0316116128d9576040805162461bcd60e51b81526020600482015260248101919091527f4d6f76696e672066756e6473207472616e73616374696f6e206d617820746f7460448201527f616c20666565206d7573742062652067726561746572207468616e207a65726f60648201526084016110f4565b6000896001600160401b03161180156129025750600e8b01546001600160401b03908116908a16105b61299a5760405162461bcd60e51b815260206004820152605e60248201527f4d6f76696e672066756e64732064757374207468726573686f6c64206d75737460448201527f2062652067726561746572207468616e207a65726f20616e64206c6f7765722060648201527f7468616e20726564656d7074696f6e2064757374207468726573686f6c640000608482015260a4016110f4565b60008863ffffffff1611612a165760405162461bcd60e51b815260206004820152603a60248201527f4d6f76696e672066756e64732074696d656f75742072657365742064656c617960448201527f206d7573742062652067726561746572207468616e207a65726f00000000000060648201526084016110f4565b8763ffffffff168763ffffffff1611612a975760405162461bcd60e51b815260206004820152603960248201527f4d6f76696e672066756e64732074696d656f7574206d7573742062652067726560448201527f61746572207468616e206974732072657365742064656c61790000000000000060648201526084016110f4565b6064851115612b345760405162461bcd60e51b815260206004820152604d60248201527f4d6f76696e672066756e64732074696d656f7574206e6f74696669657220726560448201527f77617264206d756c7469706c696572206d75737420626520696e20746865207260648201527f616e6765205b302c203130305d00000000000000000000000000000000000000608482015260a4016110f4565b6000846001600160401b031611612bd95760405162461bcd60e51b815260206004820152604560248201527f4d6f7665642066756e6473207377656570207472616e73616374696f6e206d6160448201527f7820746f74616c20666565206d7573742062652067726561746572207468616e60648201527f207a65726f000000000000000000000000000000000000000000000000000000608482015260a4016110f4565b60008363ffffffff1611612c555760405162461bcd60e51b815260206004820152603360248201527f4d6f7665642066756e64732073776565702074696d656f7574206d757374206260448201527f652067726561746572207468616e207a65726f0000000000000000000000000060648201526084016110f4565b6064811115612cf25760405162461bcd60e51b815260206004820152605260248201527f4d6f7665642066756e64732073776565702074696d656f7574206e6f7469666960448201527f657220726577617264206d756c7469706c696572206d75737420626520696e2060648201527f7468652072616e6765205b302c203130305d0000000000000000000000000000608482015260a4016110f4565b898b60080160006101000a8154816001600160401b0302191690836001600160401b03160217905550888b60080160086101000a8154816001600160401b0302191690836001600160401b03160217905550878b60080160106101000a81548163ffffffff021916908363ffffffff160217905550868b60080160146101000a81548163ffffffff021916908363ffffffff160217905550858b60090160006101000a8154816001600160601b0302191690836001600160601b03160217905550848b600a0181905550838b600b0160006101000a8154816001600160401b0302191690836001600160401b03160217905550828b600b0160086101000a81548163ffffffff021916908363ffffffff160217905550818b600b01600c6101000a8154816001600160601b0302191690836001600160601b03160217905550808b600c01819055507f9fbab8abcd4ce947cd4ffe98e310cc5290d30644941a68e43899b3b6e219ca928a8a8a8a8a8a8a8a8a8a604051612ee09a999897969594939291906001600160401b039a8b168152988a1660208a015263ffffffff97881660408a015295871660608901526001600160601b03948516608089015260a0880193909352961660c08601529490921660e084015292166101008201526101208101919091526101400190565b60405180910390a15050505050505050505050565b60088701546001600160401b03600160401b909104811690871611612fa85760405162461bcd60e51b815260206004820152604a60248201527f526564656d7074696f6e2064757374207468726573686f6c64206d757374206260448201527f652067726561746572207468616e206d6f76696e672066756e6473206475737460648201527f207468726573686f6c6400000000000000000000000000000000000000000000608482015260a4016110f4565b6000856001600160401b0316116130275760405162461bcd60e51b815260206004820152603960248201527f526564656d7074696f6e207472656173757279206665652064697669736f722060448201527f6d7573742062652067726561746572207468616e207a65726f0000000000000060648201526084016110f4565b6000846001600160401b0316116130a65760405162461bcd60e51b815260206004820152603860248201527f526564656d7074696f6e207472616e73616374696f6e206d617820666565206d60448201527f7573742062652067726561746572207468616e207a65726f000000000000000060648201526084016110f4565b6000831161311c5760405162461bcd60e51b815260206004820152602c60248201527f526564656d7074696f6e2074696d656f7574206d75737420626520677265617460448201527f6572207468616e207a65726f000000000000000000000000000000000000000060648201526084016110f4565b60648111156131b95760405162461bcd60e51b815260206004820152604b60248201527f526564656d7074696f6e2074696d656f7574206e6f746966696572207265776160448201527f7264206d756c7469706c696572206d75737420626520696e207468652072616e60648201527f6765205b302c203130305d000000000000000000000000000000000000000000608482015260a4016110f4565b600e870180546001600160401b038881166fffffffffffffffffffffffffffffffff199092168217600160401b898316908102919091177fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff16600160801b92891692830217909355600f8a0186905560108a0180546001600160601b0319166001600160601b03871690811790915560118b018590556040805193845260208401949094529282015260608101859052608081019190915260a081018290527f944cd06e316cc3da4159300dd41ab23416c89a5136c41fa79d57fe8a34bcc10f9060c00160405180910390a150505050505050565b600083116133245760405162461bcd60e51b815260206004820152603860248201527f4672617564206368616c6c656e6765206465666561742074696d656f7574206d60448201527f7573742062652067726561746572207468616e207a65726f000000000000000060648201526084016110f4565b606481111561339b5760405162461bcd60e51b815260206004820152603e60248201527f4672617564206e6f74696669657220726577617264206d756c7469706c69657260448201527f206d75737420626520696e207468652072616e6765205b302c203130305d000060648201526084016110f4565b60148501849055601585018390556016850180546001600160601b0319166001600160601b03841690811790915560178601829055604080518681526020810186905290810191909152606081018290527fd0d6d92441fbb139a023c9c62586dbd767824f37869c45da6443fc3aef64194f9060800160405180910390a15050505050565b6001600160601b031981166000908152601d83016020526040902060036002820154600160c01b900460ff16600581111561345d5761345d614338565b146134d05760405162461bcd60e51b815260206004820152602560248201527f45434453412077616c6c6574206d75737420626520696e20436c6f73696e672060448201527f737461746500000000000000000000000000000000000000000000000000000060648201526084016110f4565b601c83015460028201546134f49163ffffffff90811691600160801b900416614c0f565b63ffffffff16421161356e5760405162461bcd60e51b815260206004820152602260248201527f436c6f73696e6720706572696f6420686173206e6f7420656c6170736564207960448201527f657400000000000000000000000000000000000000000000000000000000000060648201526084016110f4565b61110a8383613721565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff1983168117909355604080519190921680825260208201939093527f5f56bee8cffbe9a78652a74a60705edede02af10b0bbb888ca44b79a0d42ce80910160405180910390a15050565b603254600090610100900460ff1615613685578160ff16600114801561360b5750303b155b61367d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016110f4565b506000919050565b60325460ff8084169116106137025760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016110f4565b506032805460ff191660ff92909216919091179055600190565b919050565b6001600160601b031981166000818152601d840160205260408082206002810180547fffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff167804000000000000000000000000000000000000000000000000179055805491519093927f47b159947c3066cb253f60e8f046cfd747411788a545cb189679e3fa1467b28d91a3600283015481546040517f343bb9270000000000000000000000000000000000000000000000000000000081526001600160a01b039092169163343bb927916137fb9160040190815260200190565b600060405180830381600087803b15801561381557600080fd5b505af115801561127f573d6000803e3d6000fd5b60006020828403121561383b57600080fd5b5035919050565b60008083601f84011261385457600080fd5b5081356001600160401b0381111561386b57600080fd5b60208301915083602082850101111561388357600080fd5b9250929050565b600080600080604085870312156138a057600080fd5b84356001600160401b03808211156138b757600080fd5b6138c388838901613842565b909650945060208701359150808211156138dc57600080fd5b506138e987828801613842565b95989497509550505050565b80356001600160601b03198116811461371c57600080fd5b60006060828403121561391f57600080fd5b50919050565b6000806080838503121561393857600080fd5b613941836138f5565b9150613950846020850161390d565b90509250929050565b60006080828403121561391f57600080fd5b80356001600160a01b038116811461371c57600080fd5b60008060008060c0858703121561399857600080fd5b84356001600160401b03808211156139af57600080fd5b6139bb88838901613959565b955060208701359150808211156139d157600080fd5b506139de8782880161390d565b9350506139ee866040870161390d565b91506139fc60a0860161396b565b905092959194509250565b80356001600160401b038116811461371c57600080fd5b600080600060608486031215613a3357600080fd5b613a3c84613a07565b9250613a4a60208501613a07565b9150613a5860408501613a07565b90509250925092565b60008060008060c08587031215613a7757600080fd5b84356001600160401b0380821115613a8e57600080fd5b613a9a88838901613959565b95506020870135915080821115613ab057600080fd5b50613abd8782880161390d565b935050613acd866040870161390d565b91506139fc60a086016138f5565b60008083601f840112613aed57600080fd5b5081356001600160401b03811115613b0457600080fd5b6020830191508360208260051b850101111561388357600080fd5b600080600080600060608688031215613b3757600080fd5b613b40866138f5565b945060208601356001600160401b0380821115613b5c57600080fd5b613b6889838a01613adb565b90965094506040880135915080821115613b8157600080fd5b50613b8e88828901613842565b969995985093965092949392505050565b600080600060608486031215613bb457600080fd5b505081359360208301359350604090920135919050565b60008060008060608587031215613be157600080fd5b613bea8561396b565b93506020850135925060408501356001600160401b03811115613c0c57600080fd5b6138e987828801613842565b803563ffffffff8116811461371c57600080fd5b60008060008060608587031215613c4257600080fd5b84359350613c5260208601613c18565b925060408501356001600160401b03811115613c6d57600080fd5b6138e987828801613adb565b600080828403610100811215613c8e57600080fd5b83356001600160401b03811115613ca457600080fd5b613cb086828701613959565b93505060e0601f1982011215613cc557600080fd5b506020830190509250929050565b8035801515811461371c57600080fd5b60008060408385031215613cf657600080fd5b613cff8361396b565b915061395060208401613cd3565b634e487b7160e01b600052604160045260246000fd5b600082601f830112613d3457600080fd5b81356001600160401b0380821115613d4e57613d4e613d0d565b604051601f8301601f19908116603f01168101908282118183101715613d7657613d76613d0d565b81604052838152866020858801011115613d8f57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060a08587031215613dc557600080fd5b84356001600160401b0380821115613ddc57600080fd5b613de888838901613842565b90965094506020870135915080821115613e0157600080fd5b50613e0e87828801613d23565b9250506139fc866040870161390d565b600080600080600060608688031215613e3657600080fd5b85356001600160401b0380821115613e4d57600080fd5b613e5989838a01613842565b90975095506020880135915080821115613e7257600080fd5b50613e7f88828901613842565b9094509250613e92905060408701613cd3565b90509295509295909350565b600080600080600060608688031215613eb657600080fd5b85356001600160401b0380821115613ecd57600080fd5b613ed989838a01613842565b90975095506020880135915080821115613ef257600080fd5b613efe89838a01613adb565b90955093506040880135915080821115613f1757600080fd5b50613f2488828901613d23565b9150509295509295909350565b600080600080600080600060e0888a031215613f4c57600080fd5b613f5588613c18565b9650613f6360208901613a07565b9550613f7160408901613a07565b9450613f7f60608901613a07565b9350613f8d60808901613c18565b9250613f9b60a08901613a07565b9150613fa960c08901613c18565b905092959891949750929550565b600080600060408486031215613fcc57600080fd5b613fd5846138f5565b925060208401356001600160401b03811115613ff057600080fd5b613ffc86828701613adb565b9497909650939450505050565b80356001600160601b038116811461371c57600080fd5b6000806000806000806000806000806101408b8d03121561404057600080fd5b6140498b613a07565b995061405760208c01613a07565b985061406560408c01613c18565b975061407360608c01613c18565b965061408160808c01614009565b955060a08b0135945061409660c08c01613a07565b93506140a460e08c01613c18565b92506140b36101008c01614009565b91506101208b013590509295989b9194979a5092959850565b6000606082840312156140de57600080fd5b6140e8838361390d565b9392505050565b600080600080600080600060e0888a03121561410a57600080fd5b614113886138f5565b96506141228960208a0161390d565b955060808801356001600160401b038082111561413e57600080fd5b61414a8b838c01613adb565b909750955060a08a0135945060c08a013591508082111561416a57600080fd5b506141778a828b01613adb565b989b979a50959850939692959293505050565b60008060008060008060c087890312156141a357600080fd5b6141ac87613a07565b95506141ba60208801613a07565b94506141c860408801613a07565b9350606087013592506141dd60808801614009565b915060a087013590509295509295509295565b6000806000806080858703121561420657600080fd5b843593506020850135925061421d60408601614009565b9396929550929360600135925050565b600080600060a0848603121561424257600080fd5b83356001600160401b038082111561425957600080fd5b61426587838801613959565b9450602086013591508082111561427b57600080fd5b506142888682870161390d565b925050613a58856040860161390d565b6000602082840312156142aa57600080fd5b6140e8826138f5565b6000602082840312156142c557600080fd5b6140e88261396b565b600080600080600060c086880312156142e657600080fd5b6142ef866138f5565b94506142fe876020880161390d565b935060808601356001600160401b0381111561431957600080fd5b61432588828901613842565b9094509250613e92905060a08701613a07565b634e487b7160e01b600052602160045260246000fd5b6006811061435e5761435e614338565b9052565b60006101208201905082518252602083015160208301526001600160401b03604084015116604083015263ffffffff606084015116606083015260808301516143b3608084018263ffffffff169052565b5060a08301516143cb60a084018263ffffffff169052565b5060c08301516143e360c084018263ffffffff169052565b5060e08301516143f660e084018261434e565b5061010092830151919092015290565b81516001600160601b03191681526020808301516001600160401b03169082015260408083015163ffffffff1690820152606082015160808201906004811061445157614451614338565b8060608401525092915050565b600080600080600060a0868803121561447657600080fd5b61447f8661396b565b945061448d6020870161396b565b935061449b6040870161396b565b92506144a96060870161396b565b949793965091946080013592915050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b8581526060602082015260006144fd6060830186886144ba565b82810360408401526145108185876144ba565b98975050505050505050565b8035825263ffffffff61453160208301613c18565b1660208301526001600160401b0361454b60408301613a07565b1660408301525050565b8381526001600160601b03198316602082015260a08101614579604083018461451c565b949350505050565b80356001600160e01b03198116811461371c57600080fd5b6000808335601e198436030181126145b057600080fd5b83016020810192503590506001600160401b038111156145cf57600080fd5b80360383131561388357600080fd5b60006001600160e01b0319806145f384614581565b1684526146036020840184614599565b608060208701526146186080870182846144ba565b9150506146286040850185614599565b868303604088015261463b8382846144ba565b925050508161464c60608601614581565b166060860152809250505092915050565b60006146698283614599565b6060855261467b6060860182846144ba565b915050602083013560208501526146956040840184614599565b85830360408701526146a88382846144ba565b9695505050505050565b85815260e0602082015260006146cb60e08301876145de565b82810360408401526146dd818761465d565b9150506146ed606083018561451c565b6001600160a01b03831660c08301529695505050505050565b85815260e06020820152600061471f60e08301876145de565b8281036040840152614731818761465d565b915050614741606083018561451c565b6001600160601b0319831660c08301529695505050505050565b8183526000602080850194508260005b858110156147945763ffffffff61478183613c18565b168752958201959082019060010161476b565b509495945050505050565b8681526001600160601b0319861660208201526080604082015260006147c960808301868861475b565b82810360608401526147dc8185876144ba565b9998505050505050505050565b8581526001600160a01b03851660208201526001600160401b03841660408201526080606082015260006148216080830184866144ba565b979650505050505050565b85815284602082015263ffffffff8416604082015260806060820152600061482160808301848661475b565b6000610120858352806020840152614872818401866145de565b91505063ffffffff61488384613c18565b1660408301526001600160a01b0361489d6020850161396b565b166060830152604083013577ffffffffffffffffffffffffffffffffffffffffffffffff19811681146148cf57600080fd5b77ffffffffffffffffffffffffffffffffffffffffffffffff191660808301526148fb606084016138f5565b6001600160601b03191660a0830152614916608084016138f5565b6001600160601b03191660c083015261493160a08401614581565b6001600160e01b03191660e083015261494c60c0840161396b565b6001600160a01b03811661010084015250949350505050565b6000815180845260005b8181101561498b5760208185018101518683018201520161496f565b8181111561499d576000602083870101525b50601f01601f19169290920160200192915050565b85815260c0602082015260006149cc60c0830186886144ba565b82810360408401526149de8186614965565b9150508235606083015260208301356080830152604083013560ff8116808214614a0757600080fd5b8060a085015250509695505050505050565b868152608060208201526000614a336080830187896144ba565b8281036040840152614a468186886144ba565b9150508215156060830152979650505050505050565b868152608060208201526000614a766080830187896144ba565b8281036040840152614a8981868861475b565b905082810360608401526147dc8185614965565b8481526001600160601b0319841660208201526060604082015260006146a860608301848661475b565b828152608081016140e8602083018461451c565b60006101008a835260206001600160601b0319808c1682860152614b02604086018c61451c565b8260a0860152614b158386018a8c61475b565b60c0860189905285810360e0870152868152879350820160005b87811015614b545782614b41866138f5565b1682529383019390830190600101614b2f565b509d9c50505050505050505050505050565b84815260c060208201526000614b7f60c08301866145de565b8281036040840152614b91818661465d565b915050614ba1606083018461451c565b95945050505050565b8781526001600160601b0319871660208201526000610100614bcf604084018961451c565b6001600160a01b03871660a08401528060c0840152614bf181840186886144ba565b9150506001600160401b03831660e083015298975050505050505050565b600063ffffffff808316818516808303821115614c3c57634e487b7160e01b600052601160045260246000fd5b0194935050505056fea2646970667358221220e9dd5a6e4c4da391d443462da020bd48dfe3042e705bb48dfcd2145ec392ea5564736f6c63430008090033",
|
|
2466
2466
|
"linkReferences": {
|
|
2467
2467
|
"contracts/bridge/Deposit.sol": {
|
|
2468
2468
|
"Deposit": [
|
|
@@ -420,7 +420,7 @@ contract Bridge is
|
|
|
420
420
|
/// - `amount` must be above or equal the `redemptionDustThreshold`,
|
|
421
421
|
/// - Given `walletPubKeyHash` and `redeemerOutputScript` pair can be
|
|
422
422
|
/// used for only one pending request at the same time,
|
|
423
|
-
/// - Wallet must have enough Bitcoin balance to
|
|
423
|
+
/// - Wallet must have enough Bitcoin balance to process the request,
|
|
424
424
|
/// - Redeemer must make an allowance in the Bank that the Bridge
|
|
425
425
|
/// contract can spend the given `amount`.
|
|
426
426
|
function requestRedemption(
|
|
@@ -492,7 +492,19 @@ contract Bridge is
|
|
|
492
492
|
/// - `amount` must be above or equal the `redemptionDustThreshold`,
|
|
493
493
|
/// - Given `walletPubKeyHash` and `redeemerOutputScript` pair can be
|
|
494
494
|
/// used for only one pending request at the same time,
|
|
495
|
-
/// - Wallet must have enough Bitcoin balance to
|
|
495
|
+
/// - Wallet must have enough Bitcoin balance to process the request.
|
|
496
|
+
///
|
|
497
|
+
/// Note on upgradeability:
|
|
498
|
+
/// Bridge is an upgradeable contract deployed behind
|
|
499
|
+
/// a TransparentUpgradeableProxy. Accepting redemption data as bytes
|
|
500
|
+
/// provides great flexibility. The Bridge is just like any other
|
|
501
|
+
/// contract with a balance approved in the Bank and can be upgraded
|
|
502
|
+
/// to another version without being bound to a particular interface
|
|
503
|
+
/// forever. This flexibility comes with the cost - developers
|
|
504
|
+
/// integrating their vaults and dApps with `Bridge` using
|
|
505
|
+
/// `approveBalanceAndCall` need to pay extra attention to
|
|
506
|
+
/// `redemptionData` and adjust the code in case the expected structure
|
|
507
|
+
/// of `redemptionData` changes.
|
|
496
508
|
function receiveBalanceApproval(
|
|
497
509
|
address balanceOwner,
|
|
498
510
|
uint256 amount,
|
package/deploy/04_deploy_bank.ts
CHANGED
|
@@ -8,7 +8,7 @@ const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) {
|
|
|
8
8
|
|
|
9
9
|
const Bank = await deploy("Bank", {
|
|
10
10
|
contract:
|
|
11
|
-
|
|
11
|
+
process.env.TEST_USE_STUBS_TBTC === "true" ? "BankStub" : undefined,
|
|
12
12
|
from: deployer,
|
|
13
13
|
args: [],
|
|
14
14
|
log: true,
|
|
@@ -37,7 +37,7 @@ const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) {
|
|
|
37
37
|
|
|
38
38
|
const bridge = await helpers.upgrades.deployProxy("Bridge", {
|
|
39
39
|
contractName:
|
|
40
|
-
|
|
40
|
+
process.env.TEST_USE_STUBS_TBTC === "true" ? "BridgeStub" : undefined,
|
|
41
41
|
initializerArgs: [
|
|
42
42
|
Bank.address,
|
|
43
43
|
Relay.address,
|