Contract is not verified. However, we found a verified contract with the same bytecode in Blockscout DB 0x6d1206808f51d58380bd94d7d13f5d2c223abebe.
All metadata displayed below is from that contract. In order to verify current contract, click Verify & Publish button
Verify & Publish
All metadata displayed below is from that contract. In order to verify current contract, click Verify & Publish button
- Contract name:
- Decoder
- Optimization enabled
- true
- Compiler version
- v0.8.20+commit.a1b79de6
- Optimization runs
- 200
- Verified at
- 2025-04-18T08:40:18.606156Z
Contract source code
// Sources flattened with hardhat v2.22.17 https://hardhat.org// SPDX-License-Identifier: MIT// File contracts/interfaces/IDataCube.sol// Original license: SPDX_License_Identifier: MITpragma solidity ^0.8.0;/// @notice Interface for HEXinterface IDataCube {/// @notice this event is emitted when admin mints NFT HEX/// @param to receiver of new HEX/// @param tokenId id of new HEX/// @param quality quality of new HEX/// @param season BattlePass season of new HEXevent HEXMinted(address indexed to,uint256 indexed tokenId,uint8 quality,uint256 season);/// @notice this event is emitted when HEX is burnt/// @param HEXTokenId id of NFT HEX/// @param HEXBackendTokenId if of backend nonNFT HEXevent HEXBurnt(uint256 indexed HEXTokenId,uint256 HEXBackendTokenId);function version() external view returns (uint32);/// @notice during decoding, ValidatorLicenseContract calls this function to open HEX and mint GameItem/// @dev data cube will be burned. Emits "Burnt" event. Calls "mintFromCube" function from GameItemContract via IGameItem interface/// @param _HEXTokenId token id of specific HEX/// @param _HLTokenId token id of specific Hacker License/// @param _HEXQuality HEX quality/// @param _receiver receiver's address of new item/// @param _HEXBackendTokenId backend token id of specific HEX/// @param _data metadata URLfunction open(uint256 _HEXTokenId,
Contract ABI
[{"type":"error","name":"CallerNotOwner","inputs":[{"type":"address","name":"caller","internalType":"address"},{"type":"address","name":"owner","internalType":"address"},{"type":"uint256","name":"tokenId","internalType":"uint256"}]},{"type":"error","name":"ContractsIsPaused","inputs":[]},{"type":"error","name":"DeadlineExpired","inputs":[{"type":"uint256","name":"deadline","internalType":"uint256"},{"type":"uint256","name":"currentTimestamp","internalType":"uint256"}]},{"type":"error","name":"InactiveLicense","inputs":[]},{"type":"error","name":"IncorrectFeeDistribution","inputs":[]},{"type":"error","name":"IncorrectSigner","inputs":[{"type":"address","name":"signer","internalType":"address"}]},{"type":"error","name":"IncorrectValue","inputs":[{"type":"uint256","name":"value","internalType":"uint256"},{"type":"uint256","name":"price","internalType":"uint256"}]},{"type":"error","name":"InvalidRole","inputs":[{"type":"address","name":"caller","internalType":"address"},{"type":"bytes32","name":"role","internalType":"bytes32"}]},{"type":"error","name":"PriceValueMismatchError","inputs":[]},{"type":"error","name":"UnauthorizedSigner","inputs":[{"type":"address","name":"signer","internalType":"address"}]},{"type":"error","name":"UnsuccessfulPaymentError","inputs":[]},{"type":"event","name":"CreateItemFromParts","inputs":[{"type":"uint256","name":"HackerLicenseId","internalType":"uint256","indexed":true},{"type":"address","name":"receiver","internalType":"address","indexed":true},{"type":"uint256[4]","name":"partsIDs","internalType":"uint256[4]","indexed":false},{"type":"uint256","name":"hackerFeeFromUser","internalType":"uint256","indexed":false},{"type":"uint256","name":"platformFee","internalType":"uint256","indexed":false},{"type":"uint256","name":"hackerFeeFromHackerLicense","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"Decoded","inputs":[{"type":"uint256","name":"HLTokenId","internalType":"uint256","indexed":true},{"type":"address","name":"receiver","internalType":"address","indexed":true},{"type":"uint256","name":"HEXBackendTokenId","internalType":"uint256","indexed":false},{"type":"uint256","name":"hackerFeeFromUser","internalType":"uint256","indexed":false},{"type":"uint256","name":"platformFee","internalType":"uint256","indexed":false},{"type":"uint256","name":"hackerFeeFromHackerLicense","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"DecodedHEX","inputs":[{"type":"uint256","name":"HLTokenId","internalType":"uint256","indexed":true},{"type":"address","name":"receiver","internalType":"address","indexed":true},{"type":"uint256","name":"HEXTokenId","internalType":"uint256","indexed":true},{"type":"uint256","name":"HEXBackendTokenId","internalType":"uint256","indexed":false},{"type":"uint256","name":"hackerFeeFromUser","internalType":"uint256","indexed":false},{"type":"uint256","name":"platformFee","internalType":"uint256","indexed":false},{"type":"uint256","name":"hackerFeeFromHackerLicense","internalType":"uint256","indexed":false},{"type":"uint8","name":"hexQuality","internalType":"uint8","indexed":false}],"anonymous":false},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"PERCENT_DENOMINATOR","inputs":[]},{"type":"function","stateMutability":"payable","outputs":[],"name":"createItemFromParts","inputs":[{"type":"uint256","name":"_HackerLicenseId","internalType":"uint256"},{"type":"uint256","name":"_seasonId","internalType":"uint256"},{"type":"uint256[4]","name":"_partsIds","internalType":"uint256[4]"},{"type":"uint256","name":"_price","internalType":"uint256"},{"type":"string","name":"_metadataURL","internalType":"string"},{"type":"uint256","name":"_deadline","internalType":"uint256"},{"type":"bytes","name":"_signature","internalType":"bytes"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"dataCubeContractAddress","inputs":[]},{"type":"function","stateMutability":"payable","outputs":[],"name":"decode","inputs":[{"type":"uint256","name":"_HLTokenId","internalType":"uint256"},{"type":"uint256","name":"_seasonId","internalType":"uint256"},{"type":"uint8","name":"_HEXQuality","internalType":"uint8"},{"type":"uint256","name":"_price","internalType":"uint256"},{"type":"uint256","name":"_HexBackendTokenId","internalType":"uint256"},{"type":"string","name":"_metadataURL","internalType":"string"},{"type":"uint256","name":"_deadline","internalType":"uint256"},{"type":"bytes","name":"_signature","internalType":"bytes"}]},{"type":"function","stateMutability":"payable","outputs":[],"name":"decodeHEX","inputs":[{"type":"uint256","name":"_HEXTokenId","internalType":"uint256"},{"type":"uint256","name":"_HLTokenId","internalType":"uint256"},{"type":"uint256","name":"_seasonId","internalType":"uint256"},{"type":"uint8","name":"_HEXQuality","internalType":"uint8"},{"type":"uint256","name":"_price","internalType":"uint256"},{"type":"uint256","name":"_HEXBackendTokenId","internalType":"uint256"},{"type":"string","name":"_metadataURL","internalType":"string"},{"type":"uint256","name":"_deadline","internalType":"uint256"},{"type":"bytes","name":"_signature","internalType":"bytes"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"gameItemContractAddress","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"initialize","inputs":[{"type":"address","name":"_platformSettingsContractAddress","internalType":"address"},{"type":"address","name":"_hackerLicense","internalType":"address"},{"type":"address","name":"_HEXContractAddress","internalType":"address"},{"type":"address","name":"_gameItemContractAddress","internalType":"address"},{"type":"address","name":"_licenseStorageAddress","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"licenseStorageAddress","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"platformSettingsContractAddress","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"validatorLicenseContractAddress","inputs":[]},{"type":"function","stateMutability":"pure","outputs":[{"type":"uint32","name":"","internalType":"uint32"}],"name":"version","inputs":[]}]
Contract Creation Code
0x608060405234801561001057600080fd5b50612902806100206000396000f3fe60806040526004361061009c5760003560e01c80636744be5d116100645780636744be5d146101515780636c8d5990146101715780639e6c2959146101915780639fe79eab146101b4578063af29e2ec146101c7578063c6a319fa146101da57600080fd5b80631459457a146100a157806328da249f146100c357806335f0d886146100d657806354fd4d50146101135780635686f69e14610131575b600080fd5b3480156100ad57600080fd5b506100c16100bc366004612296565b6101fa565b005b6100c16100d13660046123e2565b61030c565b3480156100e257600080fd5b506038546100f6906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561011f57600080fd5b50604051621e9038815260200161010a565b34801561013d57600080fd5b506037546100f6906001600160a01b031681565b34801561015d57600080fd5b506036546100f6906001600160a01b031681565b34801561017d57600080fd5b506039546100f6906001600160a01b031681565b34801561019d57600080fd5b506101a6606481565b60405190815260200161010a565b6100c16101c2366004612493565b6109a1565b6100c16101d536600461253a565b611282565b3480156101e657600080fd5b506035546100f6906001600160a01b031681565b600054610100900460ff1680610213575060005460ff16155b6102385760405162461bcd60e51b815260040161022f90612612565b60405180910390fd5b600054610100900460ff1615801561025a576000805461ffff19166101011790555b61029c604051806040016040528060078152602001662232b1b7b232b960c91b815250604051806040016040528060018152602001603160f81b8152506118ee565b603580546001600160a01b03199081166001600160a01b0389811691909117909255603680548216888416179055603780548216878416179055603880548216868416179055603980549091169184169190911790558015610304576000805461ff00191690555b505050505050565b603560009054906101000a90046001600160a01b03166001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561035f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103839190612660565b156103a15760405163487ea6bb60e11b815260040160405180910390fd5b8251602080850191909120604080517f9c43dbc97225609f72ae489e9297e0b5074bb3e2b5caf44927eae6507222bc4a938101939093523390830152606082018b9052608082018a905260a0820189905260ff881660c083015260e082018790526101008201869052610120820152610140810183905260009061043f90610160015b60405160208183030381529060405280519060200120611966565b9050600061044d82846119ba565b6035546040516310736f8560e01b81526001600160a01b0380841660048301529293509116906310736f8590602401602060405180830381865afa158015610499573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104bd9190612660565b6104e5576040516333ffff9b60e01b81526001600160a01b038216600482015260240161022f565b50506037546001600160a01b03164283101561051d576040516302a07ebf60e31b81526004810184905242602482015260440161022f565b336037546040516331a9108f60e11b8152600481018d90526001600160a01b039283169290911690636352211e90602401602060405180830381865afa15801561056b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061058f9190612689565b6001600160a01b03161461063e57336037546040516331a9108f60e11b8152600481018d90526001600160a01b0390911690636352211e90602401602060405180830381865afa1580156105e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061060b9190612689565b60405163f604c2ef60e01b81526001600160a01b03928316600482015291166024820152604481018b905260640161022f565b6036546040516382afd23b60e01b8152600481018b90526001600160a01b03909116906382afd23b90602401602060405180830381865afa158015610687573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ab9190612660565b15156001146106cd576040516309f47f6760e41b815260040160405180910390fd5b60405163629dc9d760e01b8152600481018b90526000906001600160a01b0383169063629dc9d790602401602060405180830381865afa158015610715573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073991906126a6565b604051635320584160e11b815260ff821660048201529091506000906001600160a01b0384169063a640b08290602401602060405180830381865afa158015610786573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107aa91906126c3565b90506107b7888c836119de565b6037546001600160a01b0316633baaf3618d8d8c338c8c6040518763ffffffff1660e01b81526004016107ef96959493929190612722565b600060405180830381600087803b15801561080957600080fd5b505af115801561081d573d6000803e3d6000fd5b505050508b6108293390565b6001600160a01b03168c7f4d56e8f9a9a4da1ce84c3511455c31f941cb0880b0c7a5655a671d8ee53372db8a6064603560009054906101000a90046001600160a01b03166001600160a01b0316633632d5fd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ce91906126c3565b6108d8908f612780565b6108e29190612797565b60355460408051634c7e1f3b60e11b815290516064926001600160a01b0316916398fc3e769160048083019260209291908290030181865afa15801561092c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095091906126c3565b8f61095b9190612780565b6109659190612797565b604080519384526020840192909252908201526060810186905260ff8716608082015260a00160405180910390a4505050505050505050505050565b603560009054906101000a90046001600160a01b03166001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109f4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a189190612660565b15610a365760405163487ea6bb60e11b815260040160405180910390fd5b8251602080850191909120604080517f9116a28967b944284dae2098f11e78d8da3776c41c9b3370c9b7b06e3063ea4d938101939093523390830152606082018a90526080820189905260ff881660a083015260c0820187905260e082018690526101008201526101208101839052600090610ab59061014001610424565b90506000610ac382846119ba565b6035546040516310736f8560e01b81526001600160a01b0380841660048301529293509116906310736f8590602401602060405180830381865afa158015610b0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b339190612660565b610b5b576040516333ffff9b60e01b81526001600160a01b038216600482015260240161022f565b505081421115610b87576040516302a07ebf60e31b81526004810183905242602482015260440161022f565b6036546040516382afd23b60e01b8152600481018a90526001600160a01b03909116906382afd23b90602401602060405180830381865afa158015610bd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf49190612660565b610c11576040516309f47f6760e41b815260040160405180910390fd5b603754604051635320584160e11b815260ff881660048201526000916001600160a01b03169063a640b08290602401602060405180830381865afa158015610c5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8191906126c3565b9050853414610ca35760405163b645c46360e01b815260040160405180910390fd5b60006064603560009054906101000a90046001600160a01b03166001600160a01b0316633632d5fd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1e91906126c3565b610d289089612780565b610d329190612797565b905060006064603560009054906101000a90046001600160a01b03166001600160a01b03166398fc3e766040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610daf91906126c3565b610db9908a612780565b610dc39190612797565b6036546040516331a9108f60e11b8152600481018e90529192506000916001600160a01b0390911690636352211e90602401602060405180830381865afa158015610e12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e369190612689565b6001600160a01b03168360405160006040518083038185875af1925050503d8060008114610e80576040519150601f19603f3d011682016040523d82523d6000602084013e610e85565b606091505b505090506000603560009054906101000a90046001600160a01b03166001600160a01b03166388339f9c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ede573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f029190612689565b6001600160a01b03168360405160006040518083038185875af1925050503d8060008114610f4c576040519150601f19603f3d011682016040523d82523d6000602084013e610f51565b606091505b505090506000603960009054906101000a90046001600160a01b03166001600160a01b0316635ce5b4448f88603560009054906101000a90046001600160a01b03166001600160a01b03166388339f9c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff49190612689565b6040516001600160e01b031960e086901b168152600481019390935260248301919091526001600160a01b031660448201526064016020604051808303816000875af1158015611048573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106c9190612660565b9050801580611079575081155b80611082575082155b156110a05760405163665b0f0f60e01b815260040160405180910390fd5b505060385460405163a869f99360e01b81526001600160a01b03909116935063a869f99392506110dd915033908d908d908d908b906004016127b9565b600060405180830381600087803b1580156110f757600080fd5b505af115801561110b573d6000803e3d6000fd5b505050506111163390565b6001600160a01b0316897f5dd790ea820e17948e0d843da1880f139f35f469da4a7cdbdeb53fb5e2bc4298876064603560009054906101000a90046001600160a01b03166001600160a01b0316633632d5fd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611197573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111bb91906126c3565b6111c5908c612780565b6111cf9190612797565b60355460408051634c7e1f3b60e11b815290516064926001600160a01b0316916398fc3e769160048083019260209291908290030181865afa158015611219573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123d91906126c3565b611247908d612780565b6112519190612797565b60408051938452602084019290925290820152606081018590526080015b60405180910390a3505050505050505050565b603560009054906101000a90046001600160a01b03166001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f99190612660565b156113175760405163487ea6bb60e11b815260040160405180910390fd5b60006113b77f67ccc325da82d7cd709ee55da19fe929d28453ed22b6c015d70f337daa0d8bcc338a8a8a60405160200161135191906127fa565b60408051808303601f1901815282825280516020918201208c518d830120918401979097526001600160a01b03909516908201526060810192909252608082015260a081019290925260c0820188905260e0820152610100810185905261012001610424565b905060006113c582846119ba565b6035546040516310736f8560e01b81526001600160a01b0380841660048301529293509116906310736f8590602401602060405180830381865afa158015611411573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114359190612660565b61145d576040516333ffff9b60e01b81526001600160a01b038216600482015260240161022f565b505081421115611489576040516302a07ebf60e31b81526004810183905242602482015260440161022f565b6036546040516382afd23b60e01b8152600481018990526001600160a01b03909116906382afd23b90602401602060405180830381865afa1580156114d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f69190612660565b1515600114611518576040516309f47f6760e41b815260040160405180910390fd5b6038548551604051636b0abcb960e11b815260048101919091526000916001600160a01b03169063d615797290602401602060405180830381865afa158015611565573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061158991906126a6565b905060005b60048110156116b5576038546001600160a01b03166323b872dd33308a85600481106115bc576115bc61282e565b60200201516040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561161057600080fd5b505af1158015611624573d6000803e3d6000fd5b50506038546001600160a01b031691506342966c68905088836004811061164d5761164d61282e565b60200201516040518263ffffffff1660e01b815260040161167091815260200190565b600060405180830381600087803b15801561168a57600080fd5b505af115801561169e573d6000803e3d6000fd5b5050505080806116ad90612844565b91505061158e565b50603754604051635320584160e11b815260ff831660048201526000916001600160a01b03169063a640b08290602401602060405180830381865afa158015611702573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172691906126c3565b9050611733868a836119de565b6038546001600160a01b031663a869f993338b8b868a6040518663ffffffff1660e01b81526004016117699594939291906127b9565b600060405180830381600087803b15801561178357600080fd5b505af1158015611797573d6000803e3d6000fd5b505050506117a23390565b6001600160a01b0316897f53bb613d82455fb8ce57213b03c2b898ddd720f7f7c1650c6c9b94e878f45e13896064603560009054906101000a90046001600160a01b03166001600160a01b0316633632d5fd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611823573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184791906126c3565b611851908c612780565b61185b9190612797565b60355460408051634c7e1f3b60e11b815290516064926001600160a01b0316916398fc3e769160048083019260209291908290030181865afa1580156118a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118c991906126c3565b6118d3908d612780565b6118dd9190612797565b8660405161126f949392919061285d565b600054610100900460ff1680611907575060005460ff16155b6119235760405162461bcd60e51b815260040161022f90612612565b600054610100900460ff16158015611945576000805461ffff19166101011790555b61194f8383611e34565b8015611961576000805461ff00191690555b505050565b60006119b4611973611ebe565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b92915050565b60008060006119c98585611f3e565b915091506119d681611fac565b509392505050565b823414611a0757604051635928816d60e11b81523460048201526024810184905260440161022f565b60006064603560009054906101000a90046001600160a01b03166001600160a01b0316633632d5fd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a8291906126c3565b611a8c9086612780565b611a969190612797565b905060006064603560009054906101000a90046001600160a01b03166001600160a01b03166398fc3e766040518163ffffffff1660e01b8152600401602060405180830381865afa158015611aef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b1391906126c3565b611b1d9087612780565b611b279190612797565b905084611b3482846128a3565b14611b5257604051635d616c1360e01b815260040160405180910390fd5b6036546040516331a9108f60e11b8152600481018690526000916001600160a01b031690636352211e90602401602060405180830381865afa158015611b9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bc09190612689565b6001600160a01b03168360405160006040518083038185875af1925050503d8060008114611c0a576040519150601f19603f3d011682016040523d82523d6000602084013e611c0f565b606091505b5050905080611c315760405163665b0f0f60e01b815260040160405180910390fd5b6035546040805163220ce7e760e21b815290516000926001600160a01b0316916388339f9c9160048083019260209291908290030181865afa158015611c7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c9f9190612689565b6001600160a01b03168360405160006040518083038185875af1925050503d8060008114611ce9576040519150601f19603f3d011682016040523d82523d6000602084013e611cee565b606091505b5050905080611d105760405163665b0f0f60e01b815260040160405180910390fd5b6039546035546040805163220ce7e760e21b815290516000936001600160a01b0390811693635ce5b444938c938c93909216916388339f9c916004808201926020929091908290030181865afa158015611d6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d929190612689565b6040516001600160e01b031960e086901b168152600481019390935260248301919091526001600160a01b031660448201526064016020604051808303816000875af1158015611de6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e0a9190612660565b905080611e2a5760405163665b0f0f60e01b815260040160405180910390fd5b5050505050505050565b600054610100900460ff1680611e4d575060005460ff16155b611e695760405162461bcd60e51b815260040161022f90612612565b600054610100900460ff16158015611e8b576000805461ffff19166101011790555b82516020808501919091208351918401919091206001919091556002558015611961576000805461ff0019169055505050565b6000611f397f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f611eed60015490565b6002546040805160208101859052908101839052606081018290524660808201523060a082015260009060c0016040516020818303038152906040528051906020012090509392505050565b905090565b6000808251604103611f745760208301516040840151606085015160001a611f6887828585612165565b94509450505050611fa5565b8251604003611f9d5760208301516040840151611f92868383612252565b935093505050611fa5565b506000905060025b9250929050565b6000816004811115611fc057611fc06128b6565b03611fc85750565b6001816004811115611fdc57611fdc6128b6565b036120295760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161022f565b600281600481111561203d5761203d6128b6565b0361208a5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161022f565b600381600481111561209e5761209e6128b6565b036120f65760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161022f565b600481600481111561210a5761210a6128b6565b036121625760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161022f565b50565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561219c5750600090506003612249565b8460ff16601b141580156121b457508460ff16601c14155b156121c55750600090506004612249565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612219573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661224257600060019250925050612249565b9150600090505b94509492505050565b6000806001600160ff1b03831660ff84901c601b0161227387828885612165565b935093505050935093915050565b6001600160a01b038116811461216257600080fd5b600080600080600060a086880312156122ae57600080fd5b85356122b981612281565b945060208601356122c981612281565b935060408601356122d981612281565b925060608601356122e981612281565b915060808601356122f981612281565b809150509295509295909350565b60ff8116811461216257600080fd5b634e487b7160e01b600052604160045260246000fd5b6040516080810167ffffffffffffffff8111828210171561234f5761234f612316565b60405290565b600082601f83011261236657600080fd5b813567ffffffffffffffff8082111561238157612381612316565b604051601f8301601f19908116603f011681019082821181831017156123a9576123a9612316565b816040528381528660208588010111156123c257600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060008060008060006101208a8c03121561240157600080fd5b8935985060208a0135975060408a0135965060608a013561242181612307565b955060808a0135945060a08a0135935060c08a013567ffffffffffffffff8082111561244c57600080fd5b6124588d838e01612355565b945060e08c013593506101008c013591508082111561247657600080fd5b506124838c828d01612355565b9150509295985092959850929598565b600080600080600080600080610100898b0312156124b057600080fd5b883597506020890135965060408901356124c981612307565b9550606089013594506080890135935060a089013567ffffffffffffffff808211156124f457600080fd5b6125008c838d01612355565b945060c08b0135935060e08b013591508082111561251d57600080fd5b5061252a8b828c01612355565b9150509295985092959890939650565b6000806000806000806000610140888a03121561255657600080fd5b87359650602080890135965089605f8a011261257157600080fd5b61257961232c565b8060c08b018c81111561258b57600080fd5b60408c015b818110156125a75780358452928401928401612590565b50909750359550505060e088013567ffffffffffffffff808211156125cb57600080fd5b6125d78b838c01612355565b94506101008a013593506101208a01359150808211156125f657600080fd5b506126038a828b01612355565b91505092959891949750929550565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60006020828403121561267257600080fd5b8151801515811461268257600080fd5b9392505050565b60006020828403121561269b57600080fd5b815161268281612281565b6000602082840312156126b857600080fd5b815161268281612307565b6000602082840312156126d557600080fd5b5051919050565b6000815180845260005b81811015612702576020818501810151868301820152016126e6565b506000602082860101526020601f19601f83011685010191505092915050565b86815285602082015260ff8516604082015260018060a01b038416606082015282608082015260c060a0820152600061275e60c08301846126dc565b98975050505050505050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176119b4576119b461276a565b6000826127b457634e487b7160e01b600052601260045260246000fd5b500490565b60018060a01b038616815284602082015283604082015260ff8316606082015260a0608082015260006127ef60a08301846126dc565b979650505050505050565b60008183825b600481101561281f578151835260209283019290910190600101612800565b50505060808201905092915050565b634e487b7160e01b600052603260045260246000fd5b6000600182016128565761285661276a565b5060010190565b60e08101818660005b6004811015612885578151835260209283019290910190600101612866565b5050508460808301528360a08301528260c083015295945050505050565b808201808211156119b4576119b461276a565b634e487b7160e01b600052602160045260246000fdfea264697066735822122097f3f45ec9e2774c194be8f8f62ef2077378f7a51dfefd9032ca35aa2130184564736f6c63430008140033
Deployed ByteCode
0x60806040526004361061009c5760003560e01c80636744be5d116100645780636744be5d146101515780636c8d5990146101715780639e6c2959146101915780639fe79eab146101b4578063af29e2ec146101c7578063c6a319fa146101da57600080fd5b80631459457a146100a157806328da249f146100c357806335f0d886146100d657806354fd4d50146101135780635686f69e14610131575b600080fd5b3480156100ad57600080fd5b506100c16100bc366004612296565b6101fa565b005b6100c16100d13660046123e2565b61030c565b3480156100e257600080fd5b506038546100f6906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561011f57600080fd5b50604051621e9038815260200161010a565b34801561013d57600080fd5b506037546100f6906001600160a01b031681565b34801561015d57600080fd5b506036546100f6906001600160a01b031681565b34801561017d57600080fd5b506039546100f6906001600160a01b031681565b34801561019d57600080fd5b506101a6606481565b60405190815260200161010a565b6100c16101c2366004612493565b6109a1565b6100c16101d536600461253a565b611282565b3480156101e657600080fd5b506035546100f6906001600160a01b031681565b600054610100900460ff1680610213575060005460ff16155b6102385760405162461bcd60e51b815260040161022f90612612565b60405180910390fd5b600054610100900460ff1615801561025a576000805461ffff19166101011790555b61029c604051806040016040528060078152602001662232b1b7b232b960c91b815250604051806040016040528060018152602001603160f81b8152506118ee565b603580546001600160a01b03199081166001600160a01b0389811691909117909255603680548216888416179055603780548216878416179055603880548216868416179055603980549091169184169190911790558015610304576000805461ff00191690555b505050505050565b603560009054906101000a90046001600160a01b03166001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561035f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103839190612660565b156103a15760405163487ea6bb60e11b815260040160405180910390fd5b8251602080850191909120604080517f9c43dbc97225609f72ae489e9297e0b5074bb3e2b5caf44927eae6507222bc4a938101939093523390830152606082018b9052608082018a905260a0820189905260ff881660c083015260e082018790526101008201869052610120820152610140810183905260009061043f90610160015b60405160208183030381529060405280519060200120611966565b9050600061044d82846119ba565b6035546040516310736f8560e01b81526001600160a01b0380841660048301529293509116906310736f8590602401602060405180830381865afa158015610499573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104bd9190612660565b6104e5576040516333ffff9b60e01b81526001600160a01b038216600482015260240161022f565b50506037546001600160a01b03164283101561051d576040516302a07ebf60e31b81526004810184905242602482015260440161022f565b336037546040516331a9108f60e11b8152600481018d90526001600160a01b039283169290911690636352211e90602401602060405180830381865afa15801561056b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061058f9190612689565b6001600160a01b03161461063e57336037546040516331a9108f60e11b8152600481018d90526001600160a01b0390911690636352211e90602401602060405180830381865afa1580156105e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061060b9190612689565b60405163f604c2ef60e01b81526001600160a01b03928316600482015291166024820152604481018b905260640161022f565b6036546040516382afd23b60e01b8152600481018b90526001600160a01b03909116906382afd23b90602401602060405180830381865afa158015610687573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ab9190612660565b15156001146106cd576040516309f47f6760e41b815260040160405180910390fd5b60405163629dc9d760e01b8152600481018b90526000906001600160a01b0383169063629dc9d790602401602060405180830381865afa158015610715573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073991906126a6565b604051635320584160e11b815260ff821660048201529091506000906001600160a01b0384169063a640b08290602401602060405180830381865afa158015610786573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107aa91906126c3565b90506107b7888c836119de565b6037546001600160a01b0316633baaf3618d8d8c338c8c6040518763ffffffff1660e01b81526004016107ef96959493929190612722565b600060405180830381600087803b15801561080957600080fd5b505af115801561081d573d6000803e3d6000fd5b505050508b6108293390565b6001600160a01b03168c7f4d56e8f9a9a4da1ce84c3511455c31f941cb0880b0c7a5655a671d8ee53372db8a6064603560009054906101000a90046001600160a01b03166001600160a01b0316633632d5fd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ce91906126c3565b6108d8908f612780565b6108e29190612797565b60355460408051634c7e1f3b60e11b815290516064926001600160a01b0316916398fc3e769160048083019260209291908290030181865afa15801561092c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095091906126c3565b8f61095b9190612780565b6109659190612797565b604080519384526020840192909252908201526060810186905260ff8716608082015260a00160405180910390a4505050505050505050505050565b603560009054906101000a90046001600160a01b03166001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109f4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a189190612660565b15610a365760405163487ea6bb60e11b815260040160405180910390fd5b8251602080850191909120604080517f9116a28967b944284dae2098f11e78d8da3776c41c9b3370c9b7b06e3063ea4d938101939093523390830152606082018a90526080820189905260ff881660a083015260c0820187905260e082018690526101008201526101208101839052600090610ab59061014001610424565b90506000610ac382846119ba565b6035546040516310736f8560e01b81526001600160a01b0380841660048301529293509116906310736f8590602401602060405180830381865afa158015610b0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b339190612660565b610b5b576040516333ffff9b60e01b81526001600160a01b038216600482015260240161022f565b505081421115610b87576040516302a07ebf60e31b81526004810183905242602482015260440161022f565b6036546040516382afd23b60e01b8152600481018a90526001600160a01b03909116906382afd23b90602401602060405180830381865afa158015610bd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf49190612660565b610c11576040516309f47f6760e41b815260040160405180910390fd5b603754604051635320584160e11b815260ff881660048201526000916001600160a01b03169063a640b08290602401602060405180830381865afa158015610c5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8191906126c3565b9050853414610ca35760405163b645c46360e01b815260040160405180910390fd5b60006064603560009054906101000a90046001600160a01b03166001600160a01b0316633632d5fd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1e91906126c3565b610d289089612780565b610d329190612797565b905060006064603560009054906101000a90046001600160a01b03166001600160a01b03166398fc3e766040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610daf91906126c3565b610db9908a612780565b610dc39190612797565b6036546040516331a9108f60e11b8152600481018e90529192506000916001600160a01b0390911690636352211e90602401602060405180830381865afa158015610e12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e369190612689565b6001600160a01b03168360405160006040518083038185875af1925050503d8060008114610e80576040519150601f19603f3d011682016040523d82523d6000602084013e610e85565b606091505b505090506000603560009054906101000a90046001600160a01b03166001600160a01b03166388339f9c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ede573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f029190612689565b6001600160a01b03168360405160006040518083038185875af1925050503d8060008114610f4c576040519150601f19603f3d011682016040523d82523d6000602084013e610f51565b606091505b505090506000603960009054906101000a90046001600160a01b03166001600160a01b0316635ce5b4448f88603560009054906101000a90046001600160a01b03166001600160a01b03166388339f9c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff49190612689565b6040516001600160e01b031960e086901b168152600481019390935260248301919091526001600160a01b031660448201526064016020604051808303816000875af1158015611048573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106c9190612660565b9050801580611079575081155b80611082575082155b156110a05760405163665b0f0f60e01b815260040160405180910390fd5b505060385460405163a869f99360e01b81526001600160a01b03909116935063a869f99392506110dd915033908d908d908d908b906004016127b9565b600060405180830381600087803b1580156110f757600080fd5b505af115801561110b573d6000803e3d6000fd5b505050506111163390565b6001600160a01b0316897f5dd790ea820e17948e0d843da1880f139f35f469da4a7cdbdeb53fb5e2bc4298876064603560009054906101000a90046001600160a01b03166001600160a01b0316633632d5fd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611197573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111bb91906126c3565b6111c5908c612780565b6111cf9190612797565b60355460408051634c7e1f3b60e11b815290516064926001600160a01b0316916398fc3e769160048083019260209291908290030181865afa158015611219573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123d91906126c3565b611247908d612780565b6112519190612797565b60408051938452602084019290925290820152606081018590526080015b60405180910390a3505050505050505050565b603560009054906101000a90046001600160a01b03166001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f99190612660565b156113175760405163487ea6bb60e11b815260040160405180910390fd5b60006113b77f67ccc325da82d7cd709ee55da19fe929d28453ed22b6c015d70f337daa0d8bcc338a8a8a60405160200161135191906127fa565b60408051808303601f1901815282825280516020918201208c518d830120918401979097526001600160a01b03909516908201526060810192909252608082015260a081019290925260c0820188905260e0820152610100810185905261012001610424565b905060006113c582846119ba565b6035546040516310736f8560e01b81526001600160a01b0380841660048301529293509116906310736f8590602401602060405180830381865afa158015611411573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114359190612660565b61145d576040516333ffff9b60e01b81526001600160a01b038216600482015260240161022f565b505081421115611489576040516302a07ebf60e31b81526004810183905242602482015260440161022f565b6036546040516382afd23b60e01b8152600481018990526001600160a01b03909116906382afd23b90602401602060405180830381865afa1580156114d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f69190612660565b1515600114611518576040516309f47f6760e41b815260040160405180910390fd5b6038548551604051636b0abcb960e11b815260048101919091526000916001600160a01b03169063d615797290602401602060405180830381865afa158015611565573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061158991906126a6565b905060005b60048110156116b5576038546001600160a01b03166323b872dd33308a85600481106115bc576115bc61282e565b60200201516040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561161057600080fd5b505af1158015611624573d6000803e3d6000fd5b50506038546001600160a01b031691506342966c68905088836004811061164d5761164d61282e565b60200201516040518263ffffffff1660e01b815260040161167091815260200190565b600060405180830381600087803b15801561168a57600080fd5b505af115801561169e573d6000803e3d6000fd5b5050505080806116ad90612844565b91505061158e565b50603754604051635320584160e11b815260ff831660048201526000916001600160a01b03169063a640b08290602401602060405180830381865afa158015611702573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172691906126c3565b9050611733868a836119de565b6038546001600160a01b031663a869f993338b8b868a6040518663ffffffff1660e01b81526004016117699594939291906127b9565b600060405180830381600087803b15801561178357600080fd5b505af1158015611797573d6000803e3d6000fd5b505050506117a23390565b6001600160a01b0316897f53bb613d82455fb8ce57213b03c2b898ddd720f7f7c1650c6c9b94e878f45e13896064603560009054906101000a90046001600160a01b03166001600160a01b0316633632d5fd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611823573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184791906126c3565b611851908c612780565b61185b9190612797565b60355460408051634c7e1f3b60e11b815290516064926001600160a01b0316916398fc3e769160048083019260209291908290030181865afa1580156118a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118c991906126c3565b6118d3908d612780565b6118dd9190612797565b8660405161126f949392919061285d565b600054610100900460ff1680611907575060005460ff16155b6119235760405162461bcd60e51b815260040161022f90612612565b600054610100900460ff16158015611945576000805461ffff19166101011790555b61194f8383611e34565b8015611961576000805461ff00191690555b505050565b60006119b4611973611ebe565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b92915050565b60008060006119c98585611f3e565b915091506119d681611fac565b509392505050565b823414611a0757604051635928816d60e11b81523460048201526024810184905260440161022f565b60006064603560009054906101000a90046001600160a01b03166001600160a01b0316633632d5fd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a8291906126c3565b611a8c9086612780565b611a969190612797565b905060006064603560009054906101000a90046001600160a01b03166001600160a01b03166398fc3e766040518163ffffffff1660e01b8152600401602060405180830381865afa158015611aef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b1391906126c3565b611b1d9087612780565b611b279190612797565b905084611b3482846128a3565b14611b5257604051635d616c1360e01b815260040160405180910390fd5b6036546040516331a9108f60e11b8152600481018690526000916001600160a01b031690636352211e90602401602060405180830381865afa158015611b9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bc09190612689565b6001600160a01b03168360405160006040518083038185875af1925050503d8060008114611c0a576040519150601f19603f3d011682016040523d82523d6000602084013e611c0f565b606091505b5050905080611c315760405163665b0f0f60e01b815260040160405180910390fd5b6035546040805163220ce7e760e21b815290516000926001600160a01b0316916388339f9c9160048083019260209291908290030181865afa158015611c7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c9f9190612689565b6001600160a01b03168360405160006040518083038185875af1925050503d8060008114611ce9576040519150601f19603f3d011682016040523d82523d6000602084013e611cee565b606091505b5050905080611d105760405163665b0f0f60e01b815260040160405180910390fd5b6039546035546040805163220ce7e760e21b815290516000936001600160a01b0390811693635ce5b444938c938c93909216916388339f9c916004808201926020929091908290030181865afa158015611d6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d929190612689565b6040516001600160e01b031960e086901b168152600481019390935260248301919091526001600160a01b031660448201526064016020604051808303816000875af1158015611de6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e0a9190612660565b905080611e2a5760405163665b0f0f60e01b815260040160405180910390fd5b5050505050505050565b600054610100900460ff1680611e4d575060005460ff16155b611e695760405162461bcd60e51b815260040161022f90612612565b600054610100900460ff16158015611e8b576000805461ffff19166101011790555b82516020808501919091208351918401919091206001919091556002558015611961576000805461ff0019169055505050565b6000611f397f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f611eed60015490565b6002546040805160208101859052908101839052606081018290524660808201523060a082015260009060c0016040516020818303038152906040528051906020012090509392505050565b905090565b6000808251604103611f745760208301516040840151606085015160001a611f6887828585612165565b94509450505050611fa5565b8251604003611f9d5760208301516040840151611f92868383612252565b935093505050611fa5565b506000905060025b9250929050565b6000816004811115611fc057611fc06128b6565b03611fc85750565b6001816004811115611fdc57611fdc6128b6565b036120295760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161022f565b600281600481111561203d5761203d6128b6565b0361208a5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161022f565b600381600481111561209e5761209e6128b6565b036120f65760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161022f565b600481600481111561210a5761210a6128b6565b036121625760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161022f565b50565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561219c5750600090506003612249565b8460ff16601b141580156121b457508460ff16601c14155b156121c55750600090506004612249565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612219573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661224257600060019250925050612249565b9150600090505b94509492505050565b6000806001600160ff1b03831660ff84901c601b0161227387828885612165565b935093505050935093915050565b6001600160a01b038116811461216257600080fd5b600080600080600060a086880312156122ae57600080fd5b85356122b981612281565b945060208601356122c981612281565b935060408601356122d981612281565b925060608601356122e981612281565b915060808601356122f981612281565b809150509295509295909350565b60ff8116811461216257600080fd5b634e487b7160e01b600052604160045260246000fd5b6040516080810167ffffffffffffffff8111828210171561234f5761234f612316565b60405290565b600082601f83011261236657600080fd5b813567ffffffffffffffff8082111561238157612381612316565b604051601f8301601f19908116603f011681019082821181831017156123a9576123a9612316565b816040528381528660208588010111156123c257600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060008060008060006101208a8c03121561240157600080fd5b8935985060208a0135975060408a0135965060608a013561242181612307565b955060808a0135945060a08a0135935060c08a013567ffffffffffffffff8082111561244c57600080fd5b6124588d838e01612355565b945060e08c013593506101008c013591508082111561247657600080fd5b506124838c828d01612355565b9150509295985092959850929598565b600080600080600080600080610100898b0312156124b057600080fd5b883597506020890135965060408901356124c981612307565b9550606089013594506080890135935060a089013567ffffffffffffffff808211156124f457600080fd5b6125008c838d01612355565b945060c08b0135935060e08b013591508082111561251d57600080fd5b5061252a8b828c01612355565b9150509295985092959890939650565b6000806000806000806000610140888a03121561255657600080fd5b87359650602080890135965089605f8a011261257157600080fd5b61257961232c565b8060c08b018c81111561258b57600080fd5b60408c015b818110156125a75780358452928401928401612590565b50909750359550505060e088013567ffffffffffffffff808211156125cb57600080fd5b6125d78b838c01612355565b94506101008a013593506101208a01359150808211156125f657600080fd5b506126038a828b01612355565b91505092959891949750929550565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60006020828403121561267257600080fd5b8151801515811461268257600080fd5b9392505050565b60006020828403121561269b57600080fd5b815161268281612281565b6000602082840312156126b857600080fd5b815161268281612307565b6000602082840312156126d557600080fd5b5051919050565b6000815180845260005b81811015612702576020818501810151868301820152016126e6565b506000602082860101526020601f19601f83011685010191505092915050565b86815285602082015260ff8516604082015260018060a01b038416606082015282608082015260c060a0820152600061275e60c08301846126dc565b98975050505050505050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176119b4576119b461276a565b6000826127b457634e487b7160e01b600052601260045260246000fd5b500490565b60018060a01b038616815284602082015283604082015260ff8316606082015260a0608082015260006127ef60a08301846126dc565b979650505050505050565b60008183825b600481101561281f578151835260209283019290910190600101612800565b50505060808201905092915050565b634e487b7160e01b600052603260045260246000fd5b6000600182016128565761285661276a565b5060010190565b60e08101818660005b6004811015612885578151835260209283019290910190600101612866565b5050508460808301528360a08301528260c083015295945050505050565b808201808211156119b4576119b461276a565b634e487b7160e01b600052602160045260246000fdfea264697066735822122097f3f45ec9e2774c194be8f8f62ef2077378f7a51dfefd9032ca35aa2130184564736f6c63430008140033