[ { "inputs": [ { "internalType": "string", "name": "uri_", "type": "string" }, { "internalType": "address", "name": "_paymentRecipient", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "uint256", "name": "expected", "type": "uint256" } ], "name": "IncorrectValueReceivedError", "type": "error" }, { "inputs": [], "name": "InvalidBurnSender", "type": "error" }, { "inputs": [], "name": "InvalidTokenID", "type": "error" }, { "inputs": [], "name": "OutOfStock", "type": "error" }, { "inputs": [], "name": "SaleNotActive", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "NewStampSetup", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "indexed": false, "internalType": "uint256[]", "name": "values", "type": "uint256[]" } ], "name": "TransferBatch", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "TransferSingle", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "value", "type": "string" }, { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "URI", "type": "event" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "STAMP_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "stampId", "type": "uint256" }, { "internalType": "uint256", "name": "count", "type": "uint256" }, { "internalType": "address", "name": "addr", "type": "address" } ], "name": "airdrop", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "accounts", "type": "address[]" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" } ], "name": "balanceOfBatch", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "stampOwner", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "count", "type": "uint256" } ], "name": "burnAfterUse", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "coreMessageContractAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "currentStampId", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "exists", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "stampId", "type": "uint256" } ], "name": "getStamp", "outputs": [ { "components": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "description", "type": "string" }, { "internalType": "string", "name": "attributes", "type": "string" }, { "internalType": "string", "name": "dataUri", "type": "string" }, { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "uint256", "name": "maxSupply", "type": "uint256" }, { "internalType": "bool", "name": "saleActive", "type": "bool" } ], "internalType": "struct BPMSStamp1155.Stamp", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "imageDataUri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "description", "type": "string" }, { "internalType": "string", "name": "attributes", "type": "string" }, { "internalType": "string", "name": "dataUri", "type": "string" }, { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "uint256", "name": "maxSupply", "type": "uint256" }, { "internalType": "bool", "name": "saleActive", "type": "bool" } ], "internalType": "struct BPMSStamp1155.Stamp", "name": "stamp", "type": "tuple" } ], "name": "initStamp", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "count", "type": "uint256" }, { "internalType": "uint256", "name": "stampId", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "stampIds", "type": "uint256[]" } ], "name": "mintSet", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "paymentRecipient", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeBatchTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "a", "type": "address" } ], "name": "setCoreMessageContractAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "a", "type": "address" } ], "name": "setPaymentRecipient", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "stamps", "outputs": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "description", "type": "string" }, { "internalType": "string", "name": "attributes", "type": "string" }, { "internalType": "string", "name": "dataUri", "type": "string" }, { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "uint256", "name": "maxSupply", "type": "uint256" }, { "internalType": "bool", "name": "saleActive", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "stampId", "type": "uint256" }, { "components": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "description", "type": "string" }, { "internalType": "string", "name": "attributes", "type": "string" }, { "internalType": "string", "name": "dataUri", "type": "string" }, { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "uint256", "name": "maxSupply", "type": "uint256" }, { "internalType": "bool", "name": "saleActive", "type": "bool" } ], "internalType": "struct BPMSStamp1155.Stamp", "name": "stamp", "type": "tuple" } ], "name": "updateStamp", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "uri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "withdrawAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "contract IERC20", "name": "token", "type": "address" } ], "name": "withdrawTokens", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60c0604052600a608090815269042504d53205374616d760b41b60a0526005906200002b90826200022f565b5060408051808201909152600781526610941354d7d4d560ca1b60208201526006906200005990826200022f565b503480156200006757600080fd5b50604051620051e3380380620051e38339810160408190526200008a9162000318565b816200009681620000cb565b50620000a4600033620000dd565b600880546001600160a01b0319166001600160a01b03929092169190911790555062000400565b6002620000d982826200022f565b5050565b60008281526004602090815260408083206001600160a01b0385168452909152902054620000d9908390839060ff16620000d95760008281526004602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620001463390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620001b557607f821691505b602082108103620001d657634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200022a57600081815260208120601f850160051c81016020861015620002055750805b601f850160051c820191505b81811015620002265782815560010162000211565b5050505b505050565b81516001600160401b038111156200024b576200024b6200018a565b62000263816200025c8454620001a0565b84620001dc565b602080601f8311600181146200029b5760008415620002825750858301515b600019600386901b1c1916600185901b17855562000226565b600085815260208120601f198616915b82811015620002cc57888601518255948401946001909101908401620002ab565b5085821015620002eb5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b80516001600160a01b03811681146200031357600080fd5b919050565b600080604083850312156200032c57600080fd5b82516001600160401b03808211156200034457600080fd5b818501915085601f8301126200035957600080fd5b8151818111156200036e576200036e6200018a565b604051601f8201601f19908116603f011681019083821181831017156200039957620003996200018a565b81604052828152602093508884848701011115620003b657600080fd5b600091505b82821015620003da5784820184015181830185015290830190620003bb565b6000848483010152809650505050620003f5818601620002fb565b925050509250929050565b614dd380620004106000396000f3fe6080604052600436106102075760003560e01c806373297b7211610118578063bd85b039116100a0578063e472da051161006f578063e472da0514610630578063e985e9c514610664578063f0d39a7c146106ad578063f242432a146106c2578063f6f4abb6146106e257600080fd5b8063bd85b03914610583578063ccd68f3b146105b0578063d2064e2f146105e3578063d547741f1461061057600080fd5b806395d89b41116100e757806395d89b4114610506578063a217fddf1461051b578063a22cb46514610530578063a7bafbe114610550578063b7cd52d21461057057600080fd5b806373297b72146104915780637d8df45e146104b1578063853828b6146104d157806391d14854146104e657600080fd5b8063248a9ca31161019b5780632f2ff15d1161016a5780632f2ff15d146103d557806336568abe146103f557806349df728c146104155780634e1273f4146104355780634f558e791461046257600080fd5b8063248a9ca31461032d5780632983c4b81461035d5780632b1eaf291461037d5780632eb2c2d6146103b557600080fd5b806311db4c4b116101d757806311db4c4b146102b85780631b2ef1ca146102da5780631e2e8c95146102ed5780632085ce051461030d57600080fd5b8062fdd58e1461021357806301ffc9a71461024657806306fdde03146102765780630e89341c1461029857600080fd5b3661020e57005b600080fd5b34801561021f57600080fd5b5061023361022e366004613c5a565b610702565b6040519081526020015b60405180910390f35b34801561025257600080fd5b50610266610261366004613c9c565b61079b565b604051901515815260200161023d565b34801561028257600080fd5b5061028b6107a6565b60405161023d9190613d09565b3480156102a457600080fd5b5061028b6102b3366004613d1c565b610834565b3480156102c457600080fd5b506102d86102d3366004613d35565b610b5a565b005b6102d86102e8366004613d6a565b610b95565b3480156102f957600080fd5b506102d8610308366004613d8c565b611401565b34801561031957600080fd5b506102d8610328366004613ddd565b611443565b34801561033957600080fd5b50610233610348366004613d1c565b60009081526004602052604090206001015490565b34801561036957600080fd5b506102d8610378366004613e19565b61155f565b34801561038957600080fd5b5060085461039d906001600160a01b031681565b6040516001600160a01b03909116815260200161023d565b3480156103c157600080fd5b506102d86103d0366004613f7f565b6115a8565b3480156103e157600080fd5b506102d86103f036600461402c565b6115f4565b34801561040157600080fd5b506102d861041036600461402c565b611619565b34801561042157600080fd5b506102d8610430366004613e19565b611697565b34801561044157600080fd5b5061045561045036600461405c565b61179d565b60405161023d9190614163565b34801561046e57600080fd5b5061026661047d366004613d1c565b600090815260036020526040902054151590565b34801561049d57600080fd5b5061028b6104ac366004613d1c565b6118c6565b3480156104bd57600080fd5b506102d86104cc366004614176565b611b5d565b3480156104dd57600080fd5b506102d8611bd4565b3480156104f257600080fd5b5061026661050136600461402c565b611c34565b34801561051257600080fd5b5061028b611c5f565b34801561052757600080fd5b50610233600081565b34801561053c57600080fd5b506102d861054b3660046141c0565b611c6c565b34801561055c57600080fd5b506102d861056b366004613e19565b611c77565b6102d861057e3660046141ee565b611cc0565b34801561058f57600080fd5b5061023361059e366004613d1c565b60009081526003602052604090205490565b3480156105bc57600080fd5b506105d06105cb366004613d1c565b61265b565b60405161023d9796959493929190614262565b3480156105ef57600080fd5b506106036105fe366004613d1c565b6128ba565b60405161023d91906142d1565b34801561061c57600080fd5b506102d861062b36600461402c565b612b86565b34801561063c57600080fd5b506102337fd3e27d6a201f3e328fa4e8c24e12853dc0ba98a3934fdf2ae210a4890eb12d4281565b34801561067057600080fd5b5061026661067f366004614374565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b3480156106b957600080fd5b50610233612bab565b3480156106ce57600080fd5b506102d86106dd3660046143a2565b612bc7565b3480156106ee57600080fd5b5060075461039d906001600160a01b031681565b60006001600160a01b0383166107725760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b506000818152602081815260408083206001600160a01b03861684529091529020545b92915050565b600061079582612c0c565b600580546107b39061440a565b80601f01602080910402602001604051908101604052809291908181526020018280546107df9061440a565b801561082c5780601f106108015761010080835404028352916020019161082c565b820191906000526020600020905b81548152906001019060200180831161080f57829003601f168201915b505050505081565b606061083f600a5490565b82111561085f57604051636aa2a93760e01b815260040160405180910390fd5b600082815260096020526040808220815160e081019092528054829082906108869061440a565b80601f01602080910402602001604051908101604052809291908181526020018280546108b29061440a565b80156108ff5780601f106108d4576101008083540402835291602001916108ff565b820191906000526020600020905b8154815290600101906020018083116108e257829003601f168201915b505050505081526020016001820180546109189061440a565b80601f01602080910402602001604051908101604052809291908181526020018280546109449061440a565b80156109915780601f1061096657610100808354040283529160200191610991565b820191906000526020600020905b81548152906001019060200180831161097457829003601f168201915b505050505081526020016002820180546109aa9061440a565b80601f01602080910402602001604051908101604052809291908181526020018280546109d69061440a565b8015610a235780601f106109f857610100808354040283529160200191610a23565b820191906000526020600020905b815481529060010190602001808311610a0657829003601f168201915b50505050508152602001600382018054610a3c9061440a565b80601f0160208091040260200160405190810160405280929190818152602001828054610a689061440a565b8015610ab55780601f10610a8a57610100808354040283529160200191610ab5565b820191906000526020600020905b815481529060010190602001808311610a9857829003601f168201915b5050505050815260200160048201548152602001600582015481526020016006820160009054906101000a900460ff161515151581525050905060008160000151826020015183606001518460400151604051602001610b18949392919061445a565b6040516020818303038152906040529050610b3281612c31565b604051602001610b42919061453d565b60405160208183030381529060405292505050919050565b6007546001600160a01b03163314610b8557604051637932f29b60e01b815260040160405180910390fd5b610b90838383612d83565b505050565b806000600960008381526020019081526020016000206040518060e0016040529081600082018054610bc69061440a565b80601f0160208091040260200160405190810160405280929190818152602001828054610bf29061440a565b8015610c3f5780601f10610c1457610100808354040283529160200191610c3f565b820191906000526020600020905b815481529060010190602001808311610c2257829003601f168201915b50505050508152602001600182018054610c589061440a565b80601f0160208091040260200160405190810160405280929190818152602001828054610c849061440a565b8015610cd15780601f10610ca657610100808354040283529160200191610cd1565b820191906000526020600020905b815481529060010190602001808311610cb457829003601f168201915b50505050508152602001600282018054610cea9061440a565b80601f0160208091040260200160405190810160405280929190818152602001828054610d169061440a565b8015610d635780601f10610d3857610100808354040283529160200191610d63565b820191906000526020600020905b815481529060010190602001808311610d4657829003601f168201915b50505050508152602001600382018054610d7c9061440a565b80601f0160208091040260200160405190810160405280929190818152602001828054610da89061440a565b8015610df55780601f10610dca57610100808354040283529160200191610df5565b820191906000526020600020905b815481529060010190602001808311610dd857829003601f168201915b5050509183525050600482015460208201526005820154604082015260069091015460ff16151560609091015260c0810151909150610e475760405163b7b2409760e01b815260040160405180910390fd5b83836000600960008381526020019081526020016000206040518060e0016040529081600082018054610e799061440a565b80601f0160208091040260200160405190810160405280929190818152602001828054610ea59061440a565b8015610ef25780601f10610ec757610100808354040283529160200191610ef2565b820191906000526020600020905b815481529060010190602001808311610ed557829003601f168201915b50505050508152602001600182018054610f0b9061440a565b80601f0160208091040260200160405190810160405280929190818152602001828054610f379061440a565b8015610f845780601f10610f5957610100808354040283529160200191610f84565b820191906000526020600020905b815481529060010190602001808311610f6757829003601f168201915b50505050508152602001600282018054610f9d9061440a565b80601f0160208091040260200160405190810160405280929190818152602001828054610fc99061440a565b80156110165780601f10610feb57610100808354040283529160200191611016565b820191906000526020600020905b815481529060010190602001808311610ff957829003601f168201915b5050505050815260200160038201805461102f9061440a565b80601f016020809104026020016040519081016040528092919081815260200182805461105b9061440a565b80156110a85780601f1061107d576101008083540402835291602001916110a8565b820191906000526020600020905b81548152906001019060200180831161108b57829003601f168201915b5050509183525050600482015460208201526005820154604082015260069091015460ff16151560609091015260808101519091506000906110eb908590614598565b9050803414611110576040516306581f3360e51b815260048101829052602401610769565b600087815260096020526040808220815160e081019092528054829082906111379061440a565b80601f01602080910402602001604051908101604052809291908181526020018280546111639061440a565b80156111b05780601f10611185576101008083540402835291602001916111b0565b820191906000526020600020905b81548152906001019060200180831161119357829003601f168201915b505050505081526020016001820180546111c99061440a565b80601f01602080910402602001604051908101604052809291908181526020018280546111f59061440a565b80156112425780601f1061121757610100808354040283529160200191611242565b820191906000526020600020905b81548152906001019060200180831161122557829003601f168201915b5050505050815260200160028201805461125b9061440a565b80601f01602080910402602001604051908101604052809291908181526020018280546112879061440a565b80156112d45780601f106112a9576101008083540402835291602001916112d4565b820191906000526020600020905b8154815290600101906020018083116112b757829003601f168201915b505050505081526020016003820180546112ed9061440a565b80601f01602080910402602001604051908101604052809291908181526020018280546113199061440a565b80156113665780601f1061133b57610100808354040283529160200191611366565b820191906000526020600020905b81548152906001019060200180831161134957829003601f168201915b5050509183525050600482015460208201526005820154604082015260069091015460ff16151560609091015260a0810151909150896113b28a60009081526003602052604090205490565b6113bc91906145af565b11156113db5760405163ade1cb4160e01b815260040160405180910390fd5b6113f633898b60405180602001604052806000815250612f18565b505050505050505050565b61140c600033611c34565b6114285760405162461bcd60e51b8152600401610769906145c2565b610b9081848460405180602001604052806000815250612f18565b61144e600033611c34565b8061147e575061147e7fd3e27d6a201f3e328fa4e8c24e12853dc0ba98a3934fdf2ae210a4890eb12d4233611c34565b61149a5760405162461bcd60e51b815260040161076990614605565b60008160a00135116114ee5760405162461bcd60e51b815260206004820152601d60248201527f63616e27742073657475702061203020737570706c79206f626a6563740000006044820152606401610769565b80600960006114fc600a5490565b8152602001908152602001600020818161151691906147a7565b5050600a547fd07ba43a7580c18e590ed736ef68b38afab2ca96cb52d64ebe6a2eafc04902459060405190815260200160405180910390a161155c600a80546001019055565b50565b61156a600033611c34565b6115865760405162461bcd60e51b8152600401610769906145c2565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0385163314806115c457506115c4853361067f565b6115e05760405162461bcd60e51b815260040161076990614901565b6115ed8585858585612ff8565b5050505050565b60008281526004602052604090206001015461160f816131a2565b610b9083836131ac565b6001600160a01b03811633146116895760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610769565b6116938282613232565b5050565b6116a2600033611c34565b6116be5760405162461bcd60e51b8152600401610769906145c2565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015611705573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611729919061494f565b60405163a9059cbb60e01b8152336004820152602481018290529091506001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015611779573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b909190614968565b606081518351146118025760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b6064820152608401610769565b600083516001600160401b0381111561181d5761181d613e36565b604051908082528060200260200182016040528015611846578160200160208202803683370190505b50905060005b84518110156118be5761189185828151811061186a5761186a614985565b602002602001015185838151811061188457611884614985565b6020026020010151610702565b8282815181106118a3576118a3614985565b60209081029190910101526118b78161499b565b905061184c565b509392505050565b60606000600960008481526020019081526020016000206040518060e00160405290816000820180546118f89061440a565b80601f01602080910402602001604051908101604052809291908181526020018280546119249061440a565b80156119715780601f1061194657610100808354040283529160200191611971565b820191906000526020600020905b81548152906001019060200180831161195457829003601f168201915b5050505050815260200160018201805461198a9061440a565b80601f01602080910402602001604051908101604052809291908181526020018280546119b69061440a565b8015611a035780601f106119d857610100808354040283529160200191611a03565b820191906000526020600020905b8154815290600101906020018083116119e657829003601f168201915b50505050508152602001600282018054611a1c9061440a565b80601f0160208091040260200160405190810160405280929190818152602001828054611a489061440a565b8015611a955780601f10611a6a57610100808354040283529160200191611a95565b820191906000526020600020905b815481529060010190602001808311611a7857829003601f168201915b50505050508152602001600382018054611aae9061440a565b80601f0160208091040260200160405190810160405280929190818152602001828054611ada9061440a565b8015611b275780601f10611afc57610100808354040283529160200191611b27565b820191906000526020600020905b815481529060010190602001808311611b0a57829003601f168201915b5050509183525050600482015460208201526005820154604082015260069091015460ff16151560609182015201519392505050565b611b68600033611c34565b80611b985750611b987fd3e27d6a201f3e328fa4e8c24e12853dc0ba98a3934fdf2ae210a4890eb12d4233611c34565b611bb45760405162461bcd60e51b815260040161076990614605565b60008281526009602052604090208190611bce82826147a7565b50505050565b611bdf600033611c34565b611bfb5760405162461bcd60e51b8152600401610769906145c2565b6008546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561155c573d6000803e3d6000fd5b60009182526004602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600680546107b39061440a565b611693338383613299565b611c82600033611c34565b611c9e5760405162461bcd60e51b8152600401610769906145c2565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b818160005b81811015611f9f57600060096000858585818110611ce557611ce5614985565b9050602002013581526020019081526020016000206040518060e0016040529081600082018054611d159061440a565b80601f0160208091040260200160405190810160405280929190818152602001828054611d419061440a565b8015611d8e5780601f10611d6357610100808354040283529160200191611d8e565b820191906000526020600020905b815481529060010190602001808311611d7157829003601f168201915b50505050508152602001600182018054611da79061440a565b80601f0160208091040260200160405190810160405280929190818152602001828054611dd39061440a565b8015611e205780601f10611df557610100808354040283529160200191611e20565b820191906000526020600020905b815481529060010190602001808311611e0357829003601f168201915b50505050508152602001600282018054611e399061440a565b80601f0160208091040260200160405190810160405280929190818152602001828054611e659061440a565b8015611eb25780601f10611e8757610100808354040283529160200191611eb2565b820191906000526020600020905b815481529060010190602001808311611e9557829003601f168201915b50505050508152602001600382018054611ecb9061440a565b80601f0160208091040260200160405190810160405280929190818152602001828054611ef79061440a565b8015611f445780601f10611f1957610100808354040283529160200191611f44565b820191906000526020600020905b815481529060010190602001808311611f2757829003601f168201915b5050509183525050600482015460208201526005820154604082015260069091015460ff16151560609091015260c0810151909150611f965760405163b7b2409760e01b815260040160405180910390fd5b50600101611cc5565b5083836000805b8281101561226457600060096000868685818110611fc657611fc6614985565b9050602002013581526020019081526020016000206040518060e0016040529081600082018054611ff69061440a565b80601f01602080910402602001604051908101604052809291908181526020018280546120229061440a565b801561206f5780601f106120445761010080835404028352916020019161206f565b820191906000526020600020905b81548152906001019060200180831161205257829003601f168201915b505050505081526020016001820180546120889061440a565b80601f01602080910402602001604051908101604052809291908181526020018280546120b49061440a565b80156121015780601f106120d657610100808354040283529160200191612101565b820191906000526020600020905b8154815290600101906020018083116120e457829003601f168201915b5050505050815260200160028201805461211a9061440a565b80601f01602080910402602001604051908101604052809291908181526020018280546121469061440a565b80156121935780601f1061216857610100808354040283529160200191612193565b820191906000526020600020905b81548152906001019060200180831161217657829003601f168201915b505050505081526020016003820180546121ac9061440a565b80601f01602080910402602001604051908101604052809291908181526020018280546121d89061440a565b80156122255780601f106121fa57610100808354040283529160200191612225565b820191906000526020600020905b81548152906001019060200180831161220857829003601f168201915b5050509183525050600482015460208201526005820154604082015260069091015460ff16151560609091015260800151929092019150600101611fa6565b50803414612288576040516306581f3360e51b815260048101829052602401610769565b868660005b818110156125885760008383838181106122a9576122a9614985565b9050602002013590506000600960008381526020019081526020016000206040518060e00160405290816000820180546122e29061440a565b80601f016020809104026020016040519081016040528092919081815260200182805461230e9061440a565b801561235b5780601f106123305761010080835404028352916020019161235b565b820191906000526020600020905b81548152906001019060200180831161233e57829003601f168201915b505050505081526020016001820180546123749061440a565b80601f01602080910402602001604051908101604052809291908181526020018280546123a09061440a565b80156123ed5780601f106123c2576101008083540402835291602001916123ed565b820191906000526020600020905b8154815290600101906020018083116123d057829003601f168201915b505050505081526020016002820180546124069061440a565b80601f01602080910402602001604051908101604052809291908181526020018280546124329061440a565b801561247f5780601f106124545761010080835404028352916020019161247f565b820191906000526020600020905b81548152906001019060200180831161246257829003601f168201915b505050505081526020016003820180546124989061440a565b80601f01602080910402602001604051908101604052809291908181526020018280546124c49061440a565b80156125115780601f106124e657610100808354040283529160200191612511565b820191906000526020600020905b8154815290600101906020018083116124f457829003601f168201915b5050509183525050600482015460208201526005820154604082015260069091015460ff16151560609091015260a081015190915061255c8360009081526003602052604090205490565b600101111561257e5760405163ade1cb4160e01b815260040160405180910390fd5b505060010161228d565b506000886001600160401b038111156125a3576125a3613e36565b6040519080825280602002602001820160405280156125cc578160200160208202803683370190505b50905060005b898110156126015760018282815181106125ee576125ee614985565b60209081029190910101526001016125d2565b5061264f338b8b808060200260200160405190810160405280939291908181526020018383602002808284376000920182905250604080516020810190915290815287935091506133799050565b50505050505050505050565b6009602052600090815260409020805481906126769061440a565b80601f01602080910402602001604051908101604052809291908181526020018280546126a29061440a565b80156126ef5780601f106126c4576101008083540402835291602001916126ef565b820191906000526020600020905b8154815290600101906020018083116126d257829003601f168201915b5050505050908060010180546127049061440a565b80601f01602080910402602001604051908101604052809291908181526020018280546127309061440a565b801561277d5780601f106127525761010080835404028352916020019161277d565b820191906000526020600020905b81548152906001019060200180831161276057829003601f168201915b5050505050908060020180546127929061440a565b80601f01602080910402602001604051908101604052809291908181526020018280546127be9061440a565b801561280b5780601f106127e05761010080835404028352916020019161280b565b820191906000526020600020905b8154815290600101906020018083116127ee57829003601f168201915b5050505050908060030180546128209061440a565b80601f016020809104026020016040519081016040528092919081815260200182805461284c9061440a565b80156128995780601f1061286e57610100808354040283529160200191612899565b820191906000526020600020905b81548152906001019060200180831161287c57829003601f168201915b50505050600483015460058401546006909401549293909290915060ff1687565b6128fc6040518060e001604052806060815260200160608152602001606081526020016060815260200160008152602001600081526020016000151581525090565b60008281526009602052604090819020815160e081019092528054829082906129249061440a565b80601f01602080910402602001604051908101604052809291908181526020018280546129509061440a565b801561299d5780601f106129725761010080835404028352916020019161299d565b820191906000526020600020905b81548152906001019060200180831161298057829003601f168201915b505050505081526020016001820180546129b69061440a565b80601f01602080910402602001604051908101604052809291908181526020018280546129e29061440a565b8015612a2f5780601f10612a0457610100808354040283529160200191612a2f565b820191906000526020600020905b815481529060010190602001808311612a1257829003601f168201915b50505050508152602001600282018054612a489061440a565b80601f0160208091040260200160405190810160405280929190818152602001828054612a749061440a565b8015612ac15780601f10612a9657610100808354040283529160200191612ac1565b820191906000526020600020905b815481529060010190602001808311612aa457829003601f168201915b50505050508152602001600382018054612ada9061440a565b80601f0160208091040260200160405190810160405280929190818152602001828054612b069061440a565b8015612b535780601f10612b2857610100808354040283529160200191612b53565b820191906000526020600020905b815481529060010190602001808311612b3657829003601f168201915b5050509183525050600482015460208201526005820154604082015260069091015460ff16151560609091015292915050565b600082815260046020526040902060010154612ba1816131a2565b610b908383613232565b60006001612bb8600a5490565b612bc291906149b4565b905090565b6001600160a01b038516331480612be35750612be3853361067f565b612bff5760405162461bcd60e51b815260040161076990614901565b6115ed85858585856134d3565b60006001600160e01b03198216637965db0b60e01b1480610795575061079582613600565b60608151600003612c5057505060408051602081019091526000815290565b6000604051806060016040528060408152602001614d5e6040913990506000600384516002612c7f91906145af565b612c8991906149c7565b612c94906004614598565b6001600160401b03811115612cab57612cab613e36565b6040519080825280601f01601f191660200182016040528015612cd5576020820181803683370190505b509050600182016020820185865187015b80821015612d41576003820191508151603f8160121c168501518453600184019350603f81600c1c168501518453600184019350603f8160061c168501518453600184019350603f8116850151845350600183019250612ce6565b5050600386510660018114612d5d5760028114612d7057612d78565b603d6001830353603d6002830353612d78565b603d60018303535b509195945050505050565b6001600160a01b038316612de55760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201526265737360e81b6064820152608401610769565b336000612df184613650565b90506000612dfe84613650565b9050612e1e8387600085856040518060200160405280600081525061369b565b6000858152602081815260408083206001600160a01b038a16845290915290205484811015612e9b5760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604482015263616e636560e01b6064820152608401610769565b6000868152602081815260408083206001600160a01b038b81168086529184528285208a8703905582518b81529384018a90529092908816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46040805160208101909152600090525b50505050505050565b6001600160a01b038416612f3e5760405162461bcd60e51b8152600401610769906149e9565b336000612f4a85613650565b90506000612f5785613650565b9050612f688360008985858961369b565b6000868152602081815260408083206001600160a01b038b16845290915281208054879290612f989084906145af565b909155505060408051878152602081018790526001600160a01b03808a1692600092918716917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4612f0f836000898989896136a9565b81518351146130195760405162461bcd60e51b815260040161076990614a2a565b6001600160a01b03841661303f5760405162461bcd60e51b815260040161076990614a72565b3361304e81878787878761369b565b60005b845181101561313457600085828151811061306e5761306e614985565b60200260200101519050600085838151811061308c5761308c614985565b602090810291909101810151600084815280835260408082206001600160a01b038e1683529093529190912054909150818110156130dc5760405162461bcd60e51b815260040161076990614ab7565b6000838152602081815260408083206001600160a01b038e8116855292528083208585039055908b168252812080548492906131199084906145af565b925050819055505050508061312d9061499b565b9050613051565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051613184929190614b01565b60405180910390a461319a818787878787613804565b505050505050565b61155c81336138bf565b6131b68282611c34565b6116935760008281526004602090815260408083206001600160a01b03851684529091529020805460ff191660011790556131ee3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61323c8282611c34565b156116935760008281526004602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b816001600160a01b0316836001600160a01b03160361330c5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b6064820152608401610769565b6001600160a01b03838116600081815260016020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b03841661339f5760405162461bcd60e51b8152600401610769906149e9565b81518351146133c05760405162461bcd60e51b815260040161076990614a2a565b336133d08160008787878761369b565b60005b845181101561346b578381815181106133ee576133ee614985565b602002602001015160008087848151811061340b5761340b614985565b602002602001015181526020019081526020016000206000886001600160a01b03166001600160a01b03168152602001908152602001600020600082825461345391906145af565b909155508190506134638161499b565b9150506133d3565b50846001600160a01b031660006001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516134bc929190614b01565b60405180910390a46115ed81600087878787613804565b6001600160a01b0384166134f95760405162461bcd60e51b815260040161076990614a72565b33600061350585613650565b9050600061351285613650565b905061352283898985858961369b565b6000868152602081815260408083206001600160a01b038c168452909152902054858110156135635760405162461bcd60e51b815260040161076990614ab7565b6000878152602081815260408083206001600160a01b038d8116855292528083208985039055908a168252812080548892906135a09084906145af565b909155505060408051888152602081018890526001600160a01b03808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46113f6848a8a8a8a8a6136a9565b60006001600160e01b03198216636cdb3d1360e11b148061363157506001600160e01b031982166303a24d0760e21b145b8061079557506301ffc9a760e01b6001600160e01b0319831614610795565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061368a5761368a614985565b602090810291909101015292915050565b61319a868686868686613918565b6001600160a01b0384163b1561319a5760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906136ed9089908990889088908890600401614b2f565b6020604051808303816000875af1925050508015613728575060408051601f3d908101601f1916820190925261372591810190614b69565b60015b6137d457613734614b86565b806308c379a00361376d5750613748614ba2565b80613753575061376f565b8060405162461bcd60e51b81526004016107699190613d09565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b6064820152608401610769565b6001600160e01b0319811663f23a6e6160e01b14612f0f5760405162461bcd60e51b815260040161076990614c2b565b6001600160a01b0384163b1561319a5760405163bc197c8160e01b81526001600160a01b0385169063bc197c81906138489089908990889088908890600401614c73565b6020604051808303816000875af1925050508015613883575060408051601f3d908101601f1916820190925261388091810190614b69565b60015b61388f57613734614b86565b6001600160e01b0319811663bc197c8160e01b14612f0f5760405162461bcd60e51b815260040161076990614c2b565b6138c98282611c34565b611693576138d681613a91565b6138e1836020613aa3565b6040516020016138f2929190614cd1565b60408051601f198184030181529082905262461bcd60e51b825261076991600401613d09565b6001600160a01b03851661399f5760005b835181101561399d5782818151811061394457613944614985565b60200260200101516003600086848151811061396257613962614985565b60200260200101518152602001908152602001600020600082825461398791906145af565b9091555061399690508161499b565b9050613929565b505b6001600160a01b03841661319a5760005b8351811015612f0f5760008482815181106139cd576139cd614985565b6020026020010151905060008483815181106139eb576139eb614985565b6020026020010151905060006003600084815260200190815260200160002054905081811015613a6e5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a206275726e20616d6f756e74206578636565647320746f74604482015267616c537570706c7960c01b6064820152608401610769565b60009283526003602052604090922091039055613a8a8161499b565b90506139b0565b60606107956001600160a01b03831660145b60606000613ab2836002614598565b613abd9060026145af565b6001600160401b03811115613ad457613ad4613e36565b6040519080825280601f01601f191660200182016040528015613afe576020820181803683370190505b509050600360fc1b81600081518110613b1957613b19614985565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110613b4857613b48614985565b60200101906001600160f81b031916908160001a9053506000613b6c846002614598565b613b779060016145af565b90505b6001811115613bef576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110613bab57613bab614985565b1a60f81b828281518110613bc157613bc1614985565b60200101906001600160f81b031916908160001a90535060049490941c93613be881614d46565b9050613b7a565b508315613c3e5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610769565b9392505050565b6001600160a01b038116811461155c57600080fd5b60008060408385031215613c6d57600080fd5b8235613c7881613c45565b946020939093013593505050565b6001600160e01b03198116811461155c57600080fd5b600060208284031215613cae57600080fd5b8135613c3e81613c86565b60005b83811015613cd4578181015183820152602001613cbc565b50506000910152565b60008151808452613cf5816020860160208601613cb9565b601f01601f19169290920160200192915050565b602081526000613c3e6020830184613cdd565b600060208284031215613d2e57600080fd5b5035919050565b600080600060608486031215613d4a57600080fd5b8335613d5581613c45565b95602085013595506040909401359392505050565b60008060408385031215613d7d57600080fd5b50508035926020909101359150565b600080600060608486031215613da157600080fd5b83359250602084013591506040840135613dba81613c45565b809150509250925092565b600060e08284031215613dd757600080fd5b50919050565b600060208284031215613def57600080fd5b81356001600160401b03811115613e0557600080fd5b613e1184828501613dc5565b949350505050565b600060208284031215613e2b57600080fd5b8135613c3e81613c45565b634e487b7160e01b600052604160045260246000fd5b601f8201601f191681016001600160401b0381118282101715613e7157613e71613e36565b6040525050565b60006001600160401b03821115613e9157613e91613e36565b5060051b60200190565b600082601f830112613eac57600080fd5b81356020613eb982613e78565b604051613ec68282613e4c565b83815260059390931b8501820192828101915086841115613ee657600080fd5b8286015b84811015613f015780358352918301918301613eea565b509695505050505050565b600082601f830112613f1d57600080fd5b81356001600160401b03811115613f3657613f36613e36565b604051613f4d601f8301601f191660200182613e4c565b818152846020838601011115613f6257600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a08688031215613f9757600080fd5b8535613fa281613c45565b94506020860135613fb281613c45565b935060408601356001600160401b0380821115613fce57600080fd5b613fda89838a01613e9b565b94506060880135915080821115613ff057600080fd5b613ffc89838a01613e9b565b9350608088013591508082111561401257600080fd5b5061401f88828901613f0c565b9150509295509295909350565b6000806040838503121561403f57600080fd5b82359150602083013561405181613c45565b809150509250929050565b6000806040838503121561406f57600080fd5b82356001600160401b038082111561408657600080fd5b818501915085601f83011261409a57600080fd5b813560206140a782613e78565b6040516140b48282613e4c565b83815260059390931b85018201928281019150898411156140d457600080fd5b948201945b838610156140fb5785356140ec81613c45565b825294820194908201906140d9565b9650508601359250508082111561411157600080fd5b5061411e85828601613e9b565b9150509250929050565b600081518084526020808501945080840160005b838110156141585781518752958201959082019060010161413c565b509495945050505050565b602081526000613c3e6020830184614128565b6000806040838503121561418957600080fd5b8235915060208301356001600160401b038111156141a657600080fd5b61411e85828601613dc5565b801515811461155c57600080fd5b600080604083850312156141d357600080fd5b82356141de81613c45565b91506020830135614051816141b2565b6000806020838503121561420157600080fd5b82356001600160401b038082111561421857600080fd5b818501915085601f83011261422c57600080fd5b81358181111561423b57600080fd5b8660208260051b850101111561425057600080fd5b60209290920196919550909350505050565b60e08152600061427560e083018a613cdd565b8281036020840152614287818a613cdd565b9050828103604084015261429b8189613cdd565b905082810360608401526142af8188613cdd565b6080840196909652505060a0810192909252151560c090910152949350505050565b602081526000825160e060208401526142ee610100840182613cdd565b90506020840151601f198085840301604086015261430c8383613cdd565b925060408601519150808584030160608601526143298383613cdd565b92506060860151915080858403016080860152506143478282613cdd565b915050608084015160a084015260a084015160c084015260c0840151151560e08401528091505092915050565b6000806040838503121561438757600080fd5b823561439281613c45565b9150602083013561405181613c45565b600080600080600060a086880312156143ba57600080fd5b85356143c581613c45565b945060208601356143d581613c45565b9350604086013592506060860135915060808601356001600160401b038111156143fe57600080fd5b61401f88828901613f0c565b600181811c9082168061441e57607f821691505b602082108103613dd757634e487b7160e01b600052602260045260246000fd5b60008151614450818560208601613cb9565b9290920192915050565b607b60f81b815268113730b6b2911d101160b91b6001820152845160009061448981600a850160208a01613cb9565b61088b60f21b600a9184019182018190526f113232b9b1b934b83a34b7b7111d101160811b600c83015286516144c681601c850160208b01613cb9565b601c9201918201819052691134b6b0b3b2911d101160b11b601e83015285516144f6816028850160208a01613cb9565b60289201918201526d01130ba3a3934b13aba32b9911d160951b602a820152614532614525603883018661443e565b607d60f81b815260010190565b979650505050505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c00000081526000825161457581601d850160208701613cb9565b91909101601d0192915050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761079557610795614582565b8082018082111561079557610795614582565b60208082526023908201527f41646d696e20726f6c6520726571756972656420666f7220746869732061637460408201526234b7b760e91b606082015260800190565b60208082526023908201527f537461666620726f6c6520726571756972656420666f7220746869732061637460408201526234b7b760e91b606082015260800190565b6000808335601e1984360301811261465f57600080fd5b8301803591506001600160401b0382111561467957600080fd5b60200191503681900382131561468e57600080fd5b9250929050565b601f821115610b9057600081815260208120601f850160051c810160208610156146bc5750805b601f850160051c820191505b8181101561319a578281556001016146c8565b6001600160401b038311156146f2576146f2613e36565b61470683614700835461440a565b83614695565b6000601f84116001811461473a57600085156147225750838201355b600019600387901b1c1916600186901b1783556115ed565b600083815260209020601f19861690835b8281101561476b578685013582556020948501946001909201910161474b565b50868210156147885760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b60008135610795816141b2565b6147b18283614648565b6001600160401b038111156147c8576147c8613e36565b6147dc816147d6855461440a565b85614695565b6000601f82116001811461481057600083156147f85750838201355b600019600385901b1c1916600184901b17855561486a565b600085815260209020601f19841690835b828110156148415786850135825560209485019460019092019101614821565b508482101561485e5760001960f88660031b161c19848701351681555b505060018360011b0185555b5050505061487b6020830183614648565b6148898183600186016146db565b50506148986040830183614648565b6148a68183600286016146db565b50506148b56060830183614648565b6148c38183600386016146db565b50506080820135600482015560a082013560058201556116936148e860c0840161479a565b6006830160ff1981541660ff8315151681178255505050565b6020808252602e908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526d195c881bdc88185c1c1c9bdd995960921b606082015260800190565b60006020828403121561496157600080fd5b5051919050565b60006020828403121561497a57600080fd5b8151613c3e816141b2565b634e487b7160e01b600052603260045260246000fd5b6000600182016149ad576149ad614582565b5060010190565b8181038181111561079557610795614582565b6000826149e457634e487b7160e01b600052601260045260246000fd5b500490565b60208082526021908201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b604081526000614b146040830185614128565b8281036020840152614b268185614128565b95945050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061453290830184613cdd565b600060208284031215614b7b57600080fd5b8151613c3e81613c86565b600060033d1115614b9f5760046000803e5060005160e01c5b90565b600060443d1015614bb05790565b6040516003193d81016004833e81513d6001600160401b038160248401118184111715614bdf57505050505090565b8285019150815181811115614bf75750505050505090565b843d8701016020828501011115614c115750505050505090565b614c2060208286010187613e4c565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b6001600160a01b0386811682528516602082015260a060408201819052600090614c9f90830186614128565b8281036060840152614cb18186614128565b90508281036080840152614cc58185613cdd565b98975050505050505050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351614d09816017850160208801613cb9565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351614d3a816028840160208801613cb9565b01602801949350505050565b600081614d5557614d55614582565b50600019019056fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa2646970667358221220f58ba922d983543e4281eceeb4cbe7d715f7a647e68bcb612959a33ba6168d5b64736f6c6343000814003300000000000000000000000000000000000000000000000000000000000000400000000000000000000000002f854f211d8e30726b0952f8420bdd142a8cc3b00000000000000000000000000000000000000000000000000000000000000000
0xa2646970667358221220f58ba922d983543e4281eceeb4cbe7d715f7a647e68bcb612959a33ba6168d5b64736f6c6343000814003300000000000000000000000000000000000000000000000000000000000000400000000000000000000000002f854f211d8e30726b0952f8420bdd142a8cc3b00000000000000000000000000000000000000000000000000000000000000000