Loading
[ { "inputs": [ { "internalType": "uint256", "name": "totalSupply_", "type": "uint256" }, { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" }, { "internalType": "address", "name": "admin_", "type": "address" }, { "internalType": "address", "name": "recoveryAdmin_", "type": "address" }, { "internalType": "uint256", "name": "timelockPeriod_", "type": "uint256" }, { "internalType": "address", "name": "lossless_", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousAdmin", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newAdmin", "type": "address" } ], "name": "AdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "turnOffDate", "type": "uint256" } ], "name": "LosslessTurnOffProposed", "type": "event" }, { "anonymous": false, "inputs": [], "name": "LosslessTurnedOff", "type": "event" }, { "anonymous": false, "inputs": [], "name": "LosslessTurnedOn", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "candidate", "type": "address" } ], "name": "RecoveryAdminChangeProposed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousAdmin", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newAdmin", "type": "address" } ], "name": "RecoveryAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [ { "internalType": "bytes", "name": "key", "type": "bytes" } ], "name": "acceptRecoveryAdminOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "admin", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "executeLosslessTurnOff", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "executeLosslessTurnOn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getAdmin", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "isLosslessOn", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isLosslessTurnOffProposed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "losslessTurnOffTimestamp", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "proposeLosslessTurnOff", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "recoveryAdmin", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newAdmin", "type": "address" } ], "name": "setLosslessAdmin", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "timelockPeriod", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "from", "type": "address[]" } ], "name": "transferOutBlacklistedFunds", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "candidate", "type": "address" }, { "internalType": "bytes32", "name": "keyHash", "type": "bytes32" } ], "name": "transferRecoveryAdminOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040526001600b60016101000a81548160ff0219169083151502179055503480156200002c57600080fd5b5060405162003a0f38038062003a0f833981810160405281019062000052919062000431565b62000073620000666200017c60201b60201c565b886200018460201b60201c565b85600390805190602001906200008b929190620002d5565b508460049080519060200190620000a4929190620002d5565b5083600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160098190555080600b60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050505062000855565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620001f7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001ee906200055a565b60405180910390fd5b80600260008282546200020b919062000609565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000262919062000609565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620002c991906200057c565b60405180910390a35050565b828054620002e390620006da565b90600052602060002090601f01602090048101928262000307576000855562000353565b82601f106200032257805160ff191683800117855562000353565b8280016001018555821562000353579182015b828111156200035257825182559160200191906001019062000335565b5b50905062000362919062000366565b5090565b5b808211156200038157600081600090555060010162000367565b5090565b60006200039c6200039684620005c2565b62000599565b905082815260208101848484011115620003bb57620003ba620007d8565b5b620003c8848285620006a4565b509392505050565b600081519050620003e18162000821565b92915050565b600082601f830112620003ff57620003fe620007d3565b5b81516200041184826020860162000385565b91505092915050565b6000815190506200042b816200083b565b92915050565b600080600080600080600060e0888a031215620004535762000452620007e2565b5b6000620004638a828b016200041a565b975050602088015167ffffffffffffffff811115620004875762000486620007dd565b5b620004958a828b01620003e7565b965050604088015167ffffffffffffffff811115620004b957620004b8620007dd565b5b620004c78a828b01620003e7565b9550506060620004da8a828b01620003d0565b9450506080620004ed8a828b01620003d0565b93505060a0620005008a828b016200041a565b92505060c0620005138a828b01620003d0565b91505092959891949750929550565b600062000531602083620005f8565b91506200053e82620007f8565b602082019050919050565b62000554816200069a565b82525050565b60006020820190508181036000830152620005758162000522565b9050919050565b600060208201905062000593600083018462000549565b92915050565b6000620005a5620005b8565b9050620005b3828262000710565b919050565b6000604051905090565b600067ffffffffffffffff821115620005e057620005df620007a4565b5b620005eb82620007e7565b9050602081019050919050565b600082825260208201905092915050565b600062000616826200069a565b915062000623836200069a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200065b576200065a62000746565b5b828201905092915050565b600062000673826200067a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b83811015620006c4578082015181840152602081019050620006a7565b83811115620006d4576000848401525b50505050565b60006002820490506001821680620006f357607f821691505b602082108114156200070a576200070962000775565b5b50919050565b6200071b82620007e7565b810181811067ffffffffffffffff821117156200073d576200073c620007a4565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4c45524332303a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6200082c8162000666565b81146200083857600080fd5b50565b62000846816200069a565b81146200085257600080fd5b50565b6131aa80620008656000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c806370a08231116100de578063b38fe95711610097578063d6e242b811610071578063d6e242b81461042a578063dd62ed3e14610434578063efab831c14610464578063f851a4401461048257610173565b8063b38fe957146103e6578063b5c22877146103f0578063ccfa214f1461040c57610173565b806370a082311461030057806393310ffe14610330578063936af9111461034c57806395d89b4114610368578063a457c2d714610386578063a9059cbb146103b657610173565b8063313ce56711610130578063313ce5671461024e578063395093511461026c5780635b8a194a1461029c5780635f6529a3146102a657806361086b00146102c45780636e9960c3146102e257610173565b806306fdde0314610178578063095ea7b31461019657806318160ddd146101c657806323b872dd146101e45780632baa3c9e146102145780632ecaf67514610230575b600080fd5b6101806104a0565b60405161018d9190612875565b60405180910390f35b6101b060048036038101906101ab919061248e565b610532565b6040516101bd919061285a565b60405180910390f35b6101ce610857565b6040516101db9190612a57565b60405180910390f35b6101fe60048036038101906101f991906123fb565b610861565b60405161020b919061285a565b60405180910390f35b61022e6004803603810190610229919061238e565b610baf565b005b610238610d06565b6040516102459190612a57565b60405180910390f35b610256610d0c565b6040516102639190612a72565b60405180910390f35b6102866004803603810190610281919061248e565b610d15565b604051610293919061285a565b60405180910390f35b6102a4610fb4565b005b6102ae6110af565b6040516102bb91906127c3565b60405180910390f35b6102cc6110d5565b6040516102d99190612a57565b60405180910390f35b6102ea6110db565b6040516102f791906127c3565b60405180910390f35b61031a6004803603810190610315919061238e565b611105565b6040516103279190612a57565b60405180910390f35b61034a6004803603810190610345919061244e565b61114d565b005b610366600480360381019061036191906124ce565b611273565b005b6103706113b3565b60405161037d9190612875565b60405180910390f35b6103a0600480360381019061039b919061248e565b611445565b6040516103ad919061285a565b60405180910390f35b6103d060048036038101906103cb919061248e565b611776565b6040516103dd919061285a565b60405180910390f35b6103ee6118f9565b005b61040a6004803603810190610405919061251b565b611a88565b005b610414611c6e565b604051610421919061285a565b60405180910390f35b610432611c81565b005b61044e600480360381019061044991906123bb565b611d82565b60405161045b9190612a57565b60405180910390f35b61046c611e09565b604051610479919061285a565b60405180910390f35b61048a611e1c565b60405161049791906127c3565b60405180910390f35b6060600380546104af90612c2a565b80601f01602080910402602001604051908101604052809291908181526020018280546104db90612c2a565b80156105285780601f106104fd57610100808354040283529160200191610528565b820191906000526020600020905b81548152906001019060200180831161050b57829003601f168201915b5050505050905090565b60008282600b60019054906101000a900460ff161561076757600b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166347abf3be610591611e42565b84846040518463ffffffff1660e01b81526004016105b193929190612823565b600060405180830381600087803b1580156105cb57600080fd5b505af11580156105df573d6000803e3d6000fd5b50505050600084148061067557506000600160006105fb611e42565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b6106b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ab906129d7565b60405180910390fd5b6106c66106bf611e42565b8686611e4a565b60019250600b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663900f66ef610710611e42565b84846040518463ffffffff1660e01b815260040161073093929190612823565b600060405180830381600087803b15801561074a57600080fd5b505af115801561075e573d6000803e3d6000fd5b5050505061084f565b60008414806107f9575060006001600061077f611e42565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b610838576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082f906129d7565b60405180910390fd5b61084a610843611e42565b8686611e4a565b600192505b505092915050565b6000600254905090565b6000838383600b60019054906101000a900460ff1615610aac57600b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663379f5c696108c1611e42565b8585856040518563ffffffff1660e01b81526004016108e394939291906127de565b600060405180830381600087803b1580156108fd57600080fd5b505af1158015610911573d6000803e3d6000fd5b50505050610920878787612015565b6000600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061096b611e42565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050858110156109eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e2906128f7565b60405180910390fd5b610a08886109f7611e42565b8884610a039190612b55565b611e4a565b6001945050600b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a56e8adf610a53611e42565b8585856040518563ffffffff1660e01b8152600401610a7594939291906127de565b600060405180830381600087803b158015610a8f57600080fd5b505af1158015610aa3573d6000803e3d6000fd5b50505050610ba5565b610ab7878787612015565b6000600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b02611e42565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905085811015610b82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b79906128f7565b60405180910390fd5b610b9f88610b8e611e42565b8884610b9a9190612b55565b611e4a565b60019450505b5050509392505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bf0611e42565b73ffffffffffffffffffffffffffffffffffffffff1614610c46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3d90612997565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f60405160405180910390a380600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095481565b60006012905090565b60008282600b60019054906101000a900460ff1615610f0757600b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cf5961bb610d74611e42565b84846040518463ffffffff1660e01b8152600401610d9493929190612823565b600060405180830381600087803b158015610dae57600080fd5b505af1158015610dc2573d6000803e3d6000fd5b50505050610e66610dd1611e42565b868660016000610ddf611e42565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e619190612aff565b611e4a565b60019250600b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166334d01aa8610eb0611e42565b84846040518463ffffffff1660e01b8152600401610ed093929190612823565b600060405180830381600087803b158015610eea57600080fd5b505af1158015610efe573d6000803e3d6000fd5b50505050610fac565b610fa7610f12611e42565b868660016000610f20611e42565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fa29190612aff565b611e4a565b600192505b505092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ff5611e42565b73ffffffffffffffffffffffffffffffffffffffff161461104b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104290612997565b60405180910390fd5b6000600b60006101000a81548160ff0219169083151502179055506001600b60016101000a81548160ff0219169083151502179055507fa4a40bdd0a809720a61b44f1b3497ce7dad87741a0ba3b961c2e65e645060e7060405160405180910390a1565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661118e611e42565b73ffffffffffffffffffffffffffffffffffffffff16146111e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111db90612997565b60405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806007819055508173ffffffffffffffffffffffffffffffffffffffff167fc5666bfdfb79a4b0b4abdbc565d6e9937a263233b2b378c55132d34dc5784a3660405160405180910390a25050565b600b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112b4611e42565b73ffffffffffffffffffffffffffffffffffffffff161461130a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611301906129b7565b60405180910390fd5b60005b828290508110156113ae5761139b83838381811061132e5761132d612d34565b5b9050602002016020810190611343919061238e565b600b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661139686868681811061137c5761137b612d34565b5b9050602002016020810190611391919061238e565b611105565b612015565b80806113a690612c8d565b91505061130d565b505050565b6060600480546113c290612c2a565b80601f01602080910402602001604051908101604052809291908181526020018280546113ee90612c2a565b801561143b5780601f106114105761010080835404028352916020019161143b565b820191906000526020600020905b81548152906001019060200180831161141e57829003601f168201915b5050505050905090565b60008282600b60019054906101000a900460ff161561168057600b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663568c75a96114a4611e42565b84846040518463ffffffff1660e01b81526004016114c493929190612823565b600060405180830381600087803b1580156114de57600080fd5b505af11580156114f2573d6000803e3d6000fd5b50505050600060016000611504611e42565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050848110156115c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b890612a17565b60405180910390fd5b6115de6115cc611e42565b8787846115d99190612b55565b611e4a565b6001935050600b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ded1f4d0611629611e42565b84846040518463ffffffff1660e01b815260040161164993929190612823565b600060405180830381600087803b15801561166357600080fd5b505af1158015611677573d6000803e3d6000fd5b5050505061176e565b60006001600061168e611e42565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508481101561174b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174290612a17565b60405180910390fd5b611768611756611e42565b8787846117639190612b55565b611e4a565b60019350505b505092915050565b60008282600b60019054906101000a900460ff16156118da57600b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631ffb811f6117d5611e42565b84846040518463ffffffff1660e01b81526004016117f593929190612823565b600060405180830381600087803b15801561180f57600080fd5b505af1158015611823573d6000803e3d6000fd5b50505050611839611832611e42565b8686612015565b60019250600b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f49062ca611883611e42565b84846040518463ffffffff1660e01b81526004016118a393929190612823565b600060405180830381600087803b1580156118bd57600080fd5b505af11580156118d1573d6000803e3d6000fd5b505050506118f1565b6118ec6118e5611e42565b8686612015565b600192505b505092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661193a611e42565b73ffffffffffffffffffffffffffffffffffffffff1614611990576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198790612997565b60405180910390fd5b600b60009054906101000a900460ff166119df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d690612937565b60405180910390fd5b42600a541115611a24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1b906128b7565b60405180910390fd5b6000600b60016101000a81548160ff0219169083151502179055506000600b60006101000a81548160ff0219169083151502179055507f5b534e2716e5ad68b9f67521378f8199a7ceb9d3f6f354275dad33fe42cf710a60405160405180910390a1565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611ac9611e42565b73ffffffffffffffffffffffffffffffffffffffff1614611b1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1690612977565b60405180910390fd5b600754818051906020012014611b6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6190612917565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f1c7f382531621f02aefb4212478bba8871ffad078202bdbba87f3e21d639aebb60405160405180910390a3600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b60019054906101000a900460ff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611cc2611e42565b73ffffffffffffffffffffffffffffffffffffffff1614611d18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0f90612997565b60405180910390fd5b60095442611d269190612aff565b600a819055506001600b60006101000a81548160ff0219169083151502179055507f88e0be0448355c71674462d3cb36342f0d085f7b43a1deab03052c95eb158709600a54604051611d789190612a57565b60405180910390a1565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600b60009054906101000a900460ff1681565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611eba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb1906129f7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2190612a37565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516120089190612a57565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612085576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207c90612957565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156120f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ec90612897565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561217b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612172906128d7565b60405180910390fd5b81816121879190612b55565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122179190612aff565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161227b9190612a57565b60405180910390a350505050565b600061229c61229784612ab2565b612a8d565b9050828152602081018484840111156122b8576122b7612da1565b5b6122c3848285612be8565b509392505050565b6000813590506122da8161312f565b92915050565b60008083601f8401126122f6576122f5612d97565b5b8235905067ffffffffffffffff81111561231357612312612d92565b5b60208301915083602082028301111561232f5761232e612d9c565b5b9250929050565b60008135905061234581613146565b92915050565b600082601f8301126123605761235f612d97565b5b8135612370848260208601612289565b91505092915050565b6000813590506123888161315d565b92915050565b6000602082840312156123a4576123a3612dab565b5b60006123b2848285016122cb565b91505092915050565b600080604083850312156123d2576123d1612dab565b5b60006123e0858286016122cb565b92505060206123f1858286016122cb565b9150509250929050565b60008060006060848603121561241457612413612dab565b5b6000612422868287016122cb565b9350506020612433868287016122cb565b925050604061244486828701612379565b9150509250925092565b6000806040838503121561246557612464612dab565b5b6000612473858286016122cb565b925050602061248485828601612336565b9150509250929050565b600080604083850312156124a5576124a4612dab565b5b60006124b3858286016122cb565b92505060206124c485828601612379565b9150509250929050565b600080602083850312156124e5576124e4612dab565b5b600083013567ffffffffffffffff81111561250357612502612da6565b5b61250f858286016122e0565b92509250509250929050565b60006020828403121561253157612530612dab565b5b600082013567ffffffffffffffff81111561254f5761254e612da6565b5b61255b8482850161234b565b91505092915050565b61256d81612b89565b82525050565b61257c81612b9b565b82525050565b600061258d82612ae3565b6125978185612aee565b93506125a7818560208601612bf7565b6125b081612db0565b840191505092915050565b60006125c8602483612aee565b91506125d382612dc1565b604082019050919050565b60006125eb601d83612aee565b91506125f682612e10565b602082019050919050565b600061260e602783612aee565b915061261982612e39565b604082019050919050565b6000612631602983612aee565b915061263c82612e88565b604082019050919050565b6000612654601383612aee565b915061265f82612ed7565b602082019050919050565b6000612677601c83612aee565b915061268282612f00565b602082019050919050565b600061269a602683612aee565b91506126a582612f29565b604082019050919050565b60006126bd601983612aee565b91506126c882612f78565b602082019050919050565b60006126e0601e83612aee565b91506126eb82612fa1565b602082019050919050565b6000612703601e83612aee565b915061270e82612fca565b602082019050919050565b6000612726602883612aee565b915061273182612ff3565b604082019050919050565b6000612749602583612aee565b915061275482613042565b604082019050919050565b600061276c602683612aee565b915061277782613091565b604082019050919050565b600061278f602383612aee565b915061279a826130e0565b604082019050919050565b6127ae81612bd1565b82525050565b6127bd81612bdb565b82525050565b60006020820190506127d86000830184612564565b92915050565b60006080820190506127f36000830187612564565b6128006020830186612564565b61280d6040830185612564565b61281a60608301846127a5565b95945050505050565b60006060820190506128386000830186612564565b6128456020830185612564565b61285260408301846127a5565b949350505050565b600060208201905061286f6000830184612573565b92915050565b6000602082019050818103600083015261288f8184612582565b905092915050565b600060208201905081810360008301526128b0816125bb565b9050919050565b600060208201905081810360008301526128d0816125de565b9050919050565b600060208201905081810360008301526128f081612601565b9050919050565b6000602082019050818103600083015261291081612624565b9050919050565b6000602082019050818103600083015261293081612647565b9050919050565b600060208201905081810360008301526129508161266a565b9050919050565b600060208201905081810360008301526129708161268d565b9050919050565b60006020820190508181036000830152612990816126b0565b9050919050565b600060208201905081810360008301526129b0816126d3565b9050919050565b600060208201905081810360008301526129d0816126f6565b9050919050565b600060208201905081810360008301526129f081612719565b9050919050565b60006020820190508181036000830152612a108161273c565b9050919050565b60006020820190508181036000830152612a308161275f565b9050919050565b60006020820190508181036000830152612a5081612782565b9050919050565b6000602082019050612a6c60008301846127a5565b92915050565b6000602082019050612a8760008301846127b4565b92915050565b6000612a97612aa8565b9050612aa38282612c5c565b919050565b6000604051905090565b600067ffffffffffffffff821115612acd57612acc612d63565b5b612ad682612db0565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b6000612b0a82612bd1565b9150612b1583612bd1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612b4a57612b49612cd6565b5b828201905092915050565b6000612b6082612bd1565b9150612b6b83612bd1565b925082821015612b7e57612b7d612cd6565b5b828203905092915050565b6000612b9482612bb1565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b83811015612c15578082015181840152602081019050612bfa565b83811115612c24576000848401525b50505050565b60006002820490506001821680612c4257607f821691505b60208210811415612c5657612c55612d05565b5b50919050565b612c6582612db0565b810181811067ffffffffffffffff82111715612c8457612c83612d63565b5b80604052505050565b6000612c9882612bd1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612ccb57612cca612cd6565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4c45524332303a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4c45524332303a2054696d65206c6f636b20696e2070726f6772657373000000600082015250565b7f4c45524332303a207472616e7366657220616d6f756e7420657863656564732060008201527f62616c616e636500000000000000000000000000000000000000000000000000602082015250565b7f4c45524332303a207472616e7366657220616d6f756e7420657863656564732060008201527f616c6c6f77616e63650000000000000000000000000000000000000000000000602082015250565b7f4c45524332303a20496e76616c6964206b657900000000000000000000000000600082015250565b7f4c45524332303a205475726e4f6666206e6f742070726f706f73656400000000600082015250565b7f4c45524332303a207472616e736665722066726f6d20746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4c45524332303a204d7573742062652063616e64697461746500000000000000600082015250565b7f4c45524332303a204d757374206265207265636f766572792061646d696e0000600082015250565b7f4c45524332303a204f6e6c79206c6f73736c65737320636f6e74726163740000600082015250565b7f4c45524332303a2043616e6e6f74206368616e6765206e6f6e207a65726f206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4c45524332303a20617070726f76652066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4c45524332303a2064656372656173656420616c6c6f77616e63652062656c6f60008201527f77207a65726f0000000000000000000000000000000000000000000000000000602082015250565b7f4c45524332303a20617070726f766520746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b61313881612b89565b811461314357600080fd5b50565b61314f81612ba7565b811461315a57600080fd5b50565b61316681612bd1565b811461317157600080fd5b5056fea26469706673582212202c036cefcadec49b77455a5cade43b8e5852046ab878cb2de8ba868e63465f0e64736f6c6343000807003300000000000000000000000000000000000000000052b7d2dcc80cd2e400000000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000eb36d3d4cd24f636fd5dcbfd560c15a311660d6b00000000000000000000000059cde93b98da579a8e2b763fad62dcef8c1493d50000000000000000000000000000000000000000000000000000000000015180000000000000000000000000e91d7cebce484070fc70777cb04f7e2efae31db4000000000000000000000000000000000000000000000000000000000000000731736f6c2e696f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000431534f4c00000000000000000000000000000000000000000000000000000000