VeChain
Explorer
Mainnet
Search
Networks
Main
Test
Contract
0xFc2cf1…1239
Summary
Transactions
Transfers
Address
0xFc2cf15aF92E8f3bb55F36cB70a36B1B9F7c1239
VET
0.00
VET
VTHO
0.00
VTHO
Master
0xa3568b1f8Eb9E56A01beAcAD660244BF46be18F5
Deployer
0xa3568b1f8Eb9E56A01beAcAD660244BF46be18F5
Code
0x6080604052600436106103285760003560e01c80637a9e5e4b116101a5578063a9059cbb116100ec578063d505accf11610095578063ec35bef31161006f578063ec35bef314610a5d578063f1127ed814610a7d578063f23a6e6114610ac9578063f6ecbf0414610b0f57600080fd5b8063d505accf146109b8578063dd62ed3e146109d8578063e2ceba6414610a3d57600080fd5b8063bf7e214f116100c6578063bf7e214f1461093b578063c0c53b8b14610978578063c3cda5201461099857600080fd5b8063a9059cbb1461088a578063ad3cb1cc146108aa578063bc197c81146108f357600080fd5b806391ddadf41161014e578063966a23bd11610128578063966a23bd146108285780639ab24eb01461083d578063a9048d071461085d57600080fd5b806391ddadf4146107ba578063950c7822146107e657806395d89b411461081357600080fd5b806384b0196e1161017f57806384b0196e1461075d5780638e539e8c146107855780638fb36037146107a557600080fd5b80637a9e5e4b146107085780637ecebe00146107285780638456cb591461074857600080fd5b806342966c68116102745780635c975abb1161021d57806370a08231116101f757806370a082311461069357806371ca337d146106b357806371ca44aa146106c857806379cc6790146106e857600080fd5b80635c975abb14610612578063629bf891146106495780636fcfff451461065e57600080fd5b806352d1902d1161024e57806352d1902d1461056d578063587cde1e146105825780635c19a95c146105f257600080fd5b806342966c68146105255780634bf5d7e9146105455780634f1ef2861461055a57600080fd5b806323b872dd116102d65780633a46b1a8116102b05780633a46b1a8146104d05780633f4ba83a146104f057806340c10f191461050557600080fd5b806323b872dd1461047f578063313ce5671461049f5780633644e515146104bb57600080fd5b8063095ea7b311610307578063095ea7b3146103ab578063150b7a02146103cb57806318160ddd1461044157600080fd5b806223de291461032d57806301ffc9a71461035457806306fdde0314610389575b600080fd5b34801561033957600080fd5b50610352610348366004615041565b5050505050505050565b005b34801561036057600080fd5b5061037461036f3660046150f2565b610b24565b60405190151581526020015b60405180910390f35b34801561039557600080fd5b5061039e610c09565b6040516103809190615184565b3480156103b757600080fd5b506103746103c6366004615197565b610cc4565b3480156103d757600080fd5b506104106103e63660046151c3565b7f150b7a020000000000000000000000000000000000000000000000000000000095945050505050565b6040517fffffffff000000000000000000000000000000000000000000000000000000009091168152602001610380565b34801561044d57600080fd5b507f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02545b604051908152602001610380565b34801561048b57600080fd5b5061037461049a366004615236565b610cdc565b3480156104ab57600080fd5b5060405160128152602001610380565b3480156104c757600080fd5b50610471610d02565b3480156104dc57600080fd5b506104716104eb366004615197565b610d11565b3480156104fc57600080fd5b50610352610dd4565b34801561051157600080fd5b50610352610520366004615197565b610deb565b34801561053157600080fd5b50610352610540366004615277565b610ede565b34801561055157600080fd5b5061039e610fb7565b6103526105683660046152d7565b611048565b34801561057957600080fd5b50610471611063565b34801561058e57600080fd5b506105da61059d36600461537f565b6001600160a01b0390811660009081527fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d0060205260409020541690565b6040516001600160a01b039091168152602001610380565b3480156105fe57600080fd5b5061035261060d36600461537f565b611092565b34801561061e57600080fd5b507fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff16610374565b34801561065557600080fd5b5061035261109d565b34801561066a57600080fd5b5061067e61067936600461537f565b6112f0565b60405163ffffffff9091168152602001610380565b34801561069f57600080fd5b506104716106ae36600461537f565b6112fb565b3480156106bf57600080fd5b50610471611340565b3480156106d457600080fd5b506103526106e336600461542f565b6113e0565b3480156106f457600080fd5b50610352610703366004615197565b61177f565b34801561071457600080fd5b5061035261072336600461537f565b61195d565b34801561073457600080fd5b5061047161074336600461537f565b611a3c565b34801561075457600080fd5b50610352611a47565b34801561076957600080fd5b50610772611a58565b6040516103809796959493929190615526565b34801561079157600080fd5b506104716107a0366004615277565b611b54565b3480156107b157600080fd5b50610410611bfb565b3480156107c657600080fd5b506107cf611c70565b60405165ffffffffffff9091168152602001610380565b3480156107f257600080fd5b5061080661080136600461537f565b611c7a565b60405161038091906155b0565b34801561081f57600080fd5b5061039e611d78565b34801561083457600080fd5b50610352611dc9565b34801561084957600080fd5b5061047161085836600461537f565b611e53565b34801561086957600080fd5b5061087d610878366004615611565b611ec5565b6040516103809190615646565b34801561089657600080fd5b506103746108a5366004615197565b612014565b3480156108b657600080fd5b5061039e6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b3480156108ff57600080fd5b5061041061090e3660046156c6565b7fbc197c810000000000000000000000000000000000000000000000000000000098975050505050505050565b34801561094757600080fd5b507ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00546001600160a01b03166105da565b34801561098457600080fd5b50610352610993366004615764565b612022565b3480156109a457600080fd5b506103526109b33660046157c5565b6123d5565b3480156109c457600080fd5b506103526109d336600461581f565b6124a2565b3480156109e457600080fd5b506104716109f336600461588d565b6001600160a01b0391821660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b348015610a4957600080fd5b50610352610a5836600461537f565b61262d565b348015610a6957600080fd5b506000546105da906001600160a01b031681565b348015610a8957600080fd5b50610a9d610a983660046158d8565b612670565b60408051825165ffffffffffff1681526020928301516001600160d01b03169281019290925201610380565b348015610ad557600080fd5b50610410610ae4366004615906565b7ff23a6e61000000000000000000000000000000000000000000000000000000009695505050505050565b348015610b1b57600080fd5b506105da61268e565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f150b7a02000000000000000000000000000000000000000000000000000000001480610bb757507fffffffff0000000000000000000000000000000000000000000000000000000082167f4e2312e000000000000000000000000000000000000000000000000000000000145b80610c0357507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b606060007f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace005b9050806003018054610c4090615982565b80601f0160208091040260200160405190810160405280929190818152602001828054610c6c90615982565b8015610cb95780601f10610c8e57610100808354040283529160200191610cb9565b820191906000526020600020905b815481529060010190602001808311610c9c57829003601f168201915b505050505091505090565b600033610cd2818585612728565b5060019392505050565b600033610cea85828561273a565b610cf58585856127ea565b60019150505b9392505050565b6000610d0c61287b565b905090565b60007fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d0081610d3d611c70565b90508065ffffffffffff168410610d96576040517fecd3f81e0000000000000000000000000000000000000000000000000000000081526004810185905265ffffffffffff821660248201526044015b60405180910390fd5b610dc2610da285612885565b6001600160a01b03871660009081526001850160205260409020906128d5565b6001600160d01b031695945050505050565b610de1335b60003661298e565b610de9612b59565b565b610df3612bcb565b600080546040517fda88d5410000000000000000000000000000000000000000000000000000000081526001600160a01b0390911660048201523060248201526044810183905273f6d92a4ffa1e9b90b693884b89cf5024dfa50e7d9063da88d54190606401602060405180830381865af4158015610e76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9a91906159bc565b9050610ea68382612c4c565b610eb08384612c9b565b50610eda60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5050565b610ee6612bcb565b6000546040517f85d9ba910000000000000000000000000000000000000000000000000000000081526001600160a01b0390911660048201523060248201523360448201526064810182905273f6d92a4ffa1e9b90b693884b89cf5024dfa50e7d906385d9ba919060840160006040518083038186803b158015610f6957600080fd5b505af4158015610f7d573d6000803e3d6000fd5b50505050610f8b3382612dad565b610fb460017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b50565b6060610fc1612dfc565b65ffffffffffff16610fd1611c70565b65ffffffffffff1614611010576040517f6ff0714000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b611050612e07565b61105982612ed7565b610eda8282612ee0565b600061106d612fe1565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b33610eda8183612c9b565b600080546040517f627447040000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906362744704906111179060040160208082526004908201527f6170707300000000000000000000000000000000000000000000000000000000604082015260600190565b602060405180830381865afa158015611134573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115891906159d5565b90506000816001600160a01b031663c04cff196040518163ffffffff1660e01b8152600401600060405180830381865afa15801561119a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111c291908101906159f2565b90506000815167ffffffffffffffff8111156111e0576111e0615290565b604051908082528060200260200182016040528015611209578160200160208202803683370190505b509050600061121783611ec5565b905060005b83518110156112645783818151811061123757611237615a78565b602002602001015183828151811061125157611251615a78565b602090810291909101015260010161121c565b506000546040517f98c6b8a900000000000000000000000000000000000000000000000000000000815273ac40e9232b0c8ba6ca3145fde9d2347104215c92916398c6b8a9916112c4916001600160a01b03169086908690600401615a8e565b60006040518083038186803b1580156112dc57600080fd5b505af4158015610348573d6000803e3d6000fd5b6000610c0382613043565b6000807f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace005b6001600160a01b0390931660009081526020939093525050604090205490565b600080546040517f61b614c30000000000000000000000000000000000000000000000000000000081526001600160a01b03909116600482015230602482015273f6d92a4ffa1e9b90b693884b89cf5024dfa50e7d906361b614c390604401602060405180830381865af41580156113bc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0c91906159bc565b805182511461144b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4c656e677468206d69736d6174636800000000000000000000000000000000006044820152606401610d8d565b3360009081527f9b415c02b7befb759552a9b6d8734c72ff48825e08833aa8390b015748747ba4602090815260408083208151815493840281016060908101845292810184815290939192849284918401828280156114c957602002820191906000526020600020905b8154815260200190600101908083116114b5575b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561152157602002820191906000526020600020905b81548152602001906001019080831161150d575b505050505081525050905060005b8151518110156115cb578160200151818151811061154f5761154f615a78565b602002602001015161157e7f9b415c02b7befb759552a9b6d8734c72ff48825e08833aa8390b015748747ba490565b60010160008460000151848151811061159957611599615a78565b6020026020010151815260200190815260200160002060008282546115be9190615b36565b909155505060010161152f565b506000805b835181101561168a578381815181106115eb576115eb615a78565b6020026020010151826115fe9190615b49565b915083818151811061161257611612615a78565b60200260200101516116417f9b415c02b7befb759552a9b6d8734c72ff48825e08833aa8390b015748747ba490565b600101600087848151811061165857611658615a78565b60200260200101518152602001908152602001600020600082825461167d9190615b49565b90915550506001016115d0565b50611694336112fb565b8111156116fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f496e73756666696369656e742062616c616e636520666f7220766f74696e67006044820152606401610d8d565b6040518060400160405280858152602001848152506117397f9b415c02b7befb759552a9b6d8734c72ff48825e08833aa8390b015748747ba490565b33600090815260209182526040902082518051919261175d92849290910190614f8c565b5060208281015180516117769260018501920190614f8c565b50505050505050565b611787612bcb565b6001600160a01b03821660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160209081526040808320338452909152902054811115611833576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4275726e20616d6f756e74206578636565647320616c6c6f77616e63650000006044820152606401610d8d565b6000546040517f85d9ba910000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015230602482015290831660448201526064810182905273f6d92a4ffa1e9b90b693884b89cf5024dfa50e7d906385d9ba919060840160006040518083038186803b1580156118b857600080fd5b505af41580156118cc573d6000803e3d6000fd5b505050506118da8282612dad565b6001600160a01b03821660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace01602090815260408083203380855292529091205461193491849161192f908590615b36565b612728565b610eda60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b3361198f7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00546001600160a01b031690565b6001600160a01b0316816001600160a01b0316146119e4576040517f068ca9d80000000000000000000000000000000000000000000000000000000081526001600160a01b0382166004820152602401610d8d565b816001600160a01b03163b600003611a33576040517fc2f31e5e0000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610d8d565b610eda826130a6565b6000610c0382613131565b611a5033610dd9565b610de961313c565b600060608082808083817fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1008054909150158015611a9757506001810154155b611afd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4549503731323a20556e696e697469616c697a656400000000000000000000006044820152606401610d8d565b611b05613197565b611b0d6131e8565b604080516000808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009c939b5091995046985030975095509350915050565b60007fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d0081611b80611c70565b90508065ffffffffffff168410611bd4576040517fecd3f81e0000000000000000000000000000000000000000000000000000000081526004810185905265ffffffffffff82166024820152604401610d8d565b611bea611be085612885565b60028401906128d5565b6001600160d01b0316949350505050565b7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0080546000919074010000000000000000000000000000000000000000900460ff16611c48576000611c6a565b7f8fb36037000000000000000000000000000000000000000000000000000000005b91505090565b6000610d0c612dfc565b604080518082018252606080825260208083018290526001600160a01b03851660009081527f9b415c02b7befb759552a9b6d8734c72ff48825e08833aa8390b015748747ba4825284902084518154928302810184018652948501828152939493909284928491840182828015611d1057602002820191906000526020600020905b815481526020019060010190808311611cfc575b5050505050815260200160018201805480602002602001604051908101604052809291908181526020018280548015611d6857602002820191906000526020600020905b815481526020019060010190808311611d54575b5050505050815250509050919050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0480546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0091610c4090615982565b6000546040517fb3eb04060000000000000000000000000000000000000000000000000000000081526001600160a01b03909116600482015273ac40e9232b0c8ba6ca3145fde9d2347104215c929063b3eb04069060240160006040518083038186803b158015611e3957600080fd5b505af4158015611e4d573d6000803e3d6000fd5b50505050565b6001600160a01b03811660009081527fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d01602052604081207fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d0090611eb590613212565b6001600160d01b03169392505050565b60606000825167ffffffffffffffff811115611ee357611ee3615290565b604051908082528060200260200182016040528015611f0c578160200160208202803683370190505b50905060005b835181101561200d5760007f9b415c02b7befb759552a9b6d8734c72ff48825e08833aa8390b015748747ba46001016000868481518110611f5557611f55615a78565b60200260200101518152602001908152602001600020549050600080611f997f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace025490565b11611fa5576000611fdc565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254611fd2836064615b5c565b611fdc9190615b89565b905080848481518110611ff157611ff1615a78565b60ff909216602092830291909101909101525050600101611f12565b5092915050565b600033610cd28185856127ea565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff1660008115801561206d5750825b905060008267ffffffffffffffff16600114801561208a5750303b155b905081158015612098575080155b156120cf576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156121305784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6121a46040518060400160405280600681526020017f76654233545200000000000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f766542335452000000000000000000000000000000000000000000000000000081525061324e565b6121ac613260565b6121b4613268565b6121bd88613278565b6121fb6040518060400160405280600681526020017f7665423354520000000000000000000000000000000000000000000000000000815250613289565b612203613260565b61220b613260565b6122136132d0565b600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03888116919091179091556040517f02571be30000000000000000000000000000000000000000000000000000000081527f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e26004820152908816906302571be390602401602060405180830381865afa1580156122c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122e591906159d5565b6040517f1e83409a0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b039190911690631e83409a906024016020604051808303816000875af1158015612346573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236a91906159bc565b5083156103485784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15050505050505050565b83421115612412576040517f4683af0e00000000000000000000000000000000000000000000000000000000815260048101859052602401610d8d565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b03881691810191909152606081018690526080810185905260009061248c906124849060a001604051602081830303815290604052805190602001206132e0565b858585613328565b90506124988187613356565b6117768188612c9b565b834211156124df576040517f6279130200000000000000000000000000000000000000000000000000000000815260048101859052602401610d8d565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c988888861254b8c6001600160a01b031660009081527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb006020526040902080546001810190915590565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e00160405160208183030381529060405280519060200120905060006125a6826132e0565b905060006125b682878787613328565b9050896001600160a01b0316816001600160a01b031614612616576040517f4b800e460000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301528b166024820152604401610d8d565b6126218a8a8a612728565b50505050505050505050565b61263633610dd9565b600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6040805180820190915260008082526020820152610cfb83836133e1565b600080546040517f539ff5a20000000000000000000000000000000000000000000000000000000081526001600160a01b03909116600482015273ac40e9232b0c8ba6ca3145fde9d2347104215c929063539ff5a290602401602060405180830381865af4158015612704573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0c91906159d5565b612735838383600161345e565b505050565b6001600160a01b0383811660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160209081526040808320938616835292905220546000198114611e4d57818110156127db576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024810182905260448101839052606401610d8d565b611e4d8484848403600061345e565b6001600160a01b03831661282d576040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260006004820152602401610d8d565b6001600160a01b038216612870576040517fec442f0500000000000000000000000000000000000000000000000000000000815260006004820152602401610d8d565b61273583838361358a565b6000610d0c6135fe565b600065ffffffffffff8211156128d1576040517f6dfcc6500000000000000000000000000000000000000000000000000000000081526030600482015260248101839052604401610d8d565b5090565b8154600090818160058111156129345760006128f084613672565b6128fa9085615b36565b60008881526020902090915081015465ffffffffffff908116908716101561292457809150612932565b61292f816001615b49565b92505b505b60006129428787858561375a565b905080156129805761296787612959600184615b36565b600091825260209091200190565b54660100000000000090046001600160d01b0316612983565b60005b979650505050505050565b7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00600080612a046129e67ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00546001600160a01b031690565b87306129f6600460008a8c615bab565b6129ff91615bd5565b6137bc565b9150915081612b515763ffffffff811615612b145782547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000178355612a877ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00546001600160a01b031690565b6001600160a01b03166394c7d7ee8787876040518463ffffffff1660e01b8152600401612ab693929190615c1d565b600060405180830381600087803b158015612ad057600080fd5b505af1158015612ae4573d6000803e3d6000fd5b505084547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16855550612b519050565b6040517f068ca9d80000000000000000000000000000000000000000000000000000000081526001600160a01b0387166004820152602401610d8d565b505050505050565b612b6161390e565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a150565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0080547ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01612c46576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60029055565b6001600160a01b038216612c8f576040517fec442f0500000000000000000000000000000000000000000000000000000000815260006004820152602401610d8d565b610eda6000838361358a565b7fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d006000612cff846001600160a01b0390811660009081527fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d0060205260409020541690565b6001600160a01b0385811660008181526020869052604080822080547fffffffffffffffffffffffff000000000000000000000000000000000000000016898616908117909155905194955093928516927f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4611e4d8184612d8287613969565b613974565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b6001600160a01b038216612df0576040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260006004820152602401610d8d565b610eda8260008361358a565b6000610d0c43612885565b306001600160a01b037f000000000000000000000000fc2cf15af92e8f3bb55f36cb70a36b1b9f7c1239161480612ea057507f000000000000000000000000fc2cf15af92e8f3bb55f36cb70a36b1b9f7c12396001600160a01b0316612e947f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b15610de9576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fb433610dd9565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612f3a575060408051601f3d908101601f19168201909252612f37918101906159bc565b60015b612f7b576040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610d8d565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8114612fd7576040517faa1d49a400000000000000000000000000000000000000000000000000000000815260048101829052602401610d8d565b6127358383613b00565b306001600160a01b037f000000000000000000000000fc2cf15af92e8f3bb55f36cb70a36b1b9f7c12391614610de9576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03811660009081527fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d0160205260408120547fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d0090610cfb90613b56565b7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0080546001600160a01b0383167fffffffffffffffffffffffff00000000000000000000000000000000000000009091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b6000610c0382613ba0565b613144613bc9565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833612bad565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10280546060917fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10091610c4090615982565b606060007fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100610c2f565b805460009080156132455761322c83612959600184615b36565b54660100000000000090046001600160d01b0316610cfb565b60009392505050565b613256613c25565b610eda8282613c8c565b610de9613c25565b613270613c25565b610de9613cef565b613280613c25565b610fb481613d22565b613291613c25565b610fb4816040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250613d33565b6132d8613c25565b610de9613da6565b6000610c036132ed61287b565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b60008060008061333a88888888613dae565b92509250925061334a8282613e7d565b50909695505050505050565b6001600160a01b03821660009081527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260409020805460018101909155818114612735576040517f752d88c00000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101829052604401610d8d565b604080518082018252600080825260208083018290526001600160a01b03861682527fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d019052919091207fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d00906134569084613f81565b949350505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b0385166134c2576040517fe602df0500000000000000000000000000000000000000000000000000000000815260006004820152602401610d8d565b6001600160a01b038416613505576040517f94280d6200000000000000000000000000000000000000000000000000000000815260006004820152602401610d8d565b6001600160a01b0380861660009081526001830160209081526040808320938816835292905220839055811561358357836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258560405161357a91815260200190565b60405180910390a35b5050505050565b613595838383613ff4565b6001600160a01b038216158015906135e457506001600160a01b0382811660009081527fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d00602052604090205416155b156135f3576135f38283612c9b565b612735838383614093565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f613629614767565b6136316147e3565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b60008160000361368457506000919050565b6000600161369184614839565b901c6001901b905060018184816136aa576136aa615b73565b048201901c905060018184816136c2576136c2615b73565b048201901c905060018184816136da576136da615b73565b048201901c905060018184816136f2576136f2615b73565b048201901c9050600181848161370a5761370a615b73565b048201901c9050600181848161372257613722615b73565b048201901c9050600181848161373a5761373a615b73565b048201901c9050610cfb8182858161375457613754615b73565b046148cd565b60005b818310156137b457600061377184846148e3565b60008781526020902090915065ffffffffffff86169082015465ffffffffffff1611156137a0578092506137ae565b6137ab816001615b49565b93505b5061375d565b509392505050565b6040516001600160a01b03848116602483015283811660448301527fffffffff000000000000000000000000000000000000000000000000000000008316606483015260009182918291829189169060840160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb700961300000000000000000000000000000000000000000000000000000000179052516138719190615c5c565b600060405180830381855afa9150503d80600081146138ac576040519150601f19603f3d011682016040523d82523d6000602084013e6138b1565b606091505b509150915081156139035760408151106138e357808060200190518101906138d99190615c88565b9094509250613903565b602081511061390357808060200190518101906139009190615cb4565b93505b505094509492505050565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff16610de9576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610c03826112fb565b7fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d006001600160a01b03848116908416148015906139b15750600082115b15611e4d576001600160a01b03841615613a5b576001600160a01b0384166000908152600182016020526040812081906139f6906148fe6139f18761490a565b614957565b6001600160d01b031691506001600160d01b03169150856001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051613a50929190918252602082015260400190565b60405180910390a250505b6001600160a01b03831615611e4d576001600160a01b038316600090815260018201602052604081208190613a96906149906139f18761490a565b6001600160d01b031691506001600160d01b03169150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051613af0929190918252602082015260400190565b60405180910390a2505050505050565b613b098261499c565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115613b4e576127358282614a44565b610eda614aba565b600063ffffffff8211156128d1576040517f6dfcc6500000000000000000000000000000000000000000000000000000000081526020600482015260248101839052604401610d8d565b6000807f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00611320565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff1615610de9576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff16610de9576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613c94613c25565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace007f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace03613ce08482615d17565b5060048101611e4d8382615d17565b613cf7613c25565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300805460ff19169055565b613d2a613c25565b610fb4816130a6565b613d3b613c25565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1007fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d102613d878482615d17565b5060038101613d968382615d17565b5060008082556001909101555050565b612d87613c25565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115613de95750600091506003905082613e73565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015613e3d573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116613e6957506000925060019150829050613e73565b9250600091508190505b9450945094915050565b6000826003811115613e9157613e91615dd7565b03613e9a575050565b6001826003811115613eae57613eae615dd7565b03613ee5576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002826003811115613ef957613ef9615dd7565b03613f33576040517ffce698f700000000000000000000000000000000000000000000000000000000815260048101829052602401610d8d565b6003826003811115613f4757613f47615dd7565b03610eda576040517fd78bce0c00000000000000000000000000000000000000000000000000000000815260048101829052602401610d8d565b6040805180820190915260008082526020820152826000018263ffffffff1681548110613fb057613fb0615a78565b60009182526020918290206040805180820190915291015465ffffffffffff81168252660100000000000090046001600160d01b0316918101919091529392505050565b613fff838383614af2565b6001600160a01b0383166140885760006140377f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace025490565b90506001600160d01b0380821115614085576040517f1cb15d260000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610d8d565b50505b612735838383614b05565b6001600160a01b03831615612735576001600160a01b03831660009081527f9b415c02b7befb759552a9b6d8734c72ff48825e08833aa8390b015748747ba46020908152604080832081518154938402810160609081018452928101848152909391928492849184018282801561412957602002820191906000526020600020905b815481526020019060010190808311614115575b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561418157602002820191906000526020600020905b81548152602001906001019080831161416d575b50505050508152505090506000805b8260200151518110156141d057826020015181815181106141b3576141b3615a78565b6020026020010151826141c69190615b49565b9150600101614190565b5060005b826020015151811015614340576000826141ee8682615b36565b8560200151848151811061420457614204615a78565b60200260200101516142169190615b5c565b6142209190615b89565b90508360200151828151811061423857614238615a78565b60200260200101516142677f9b415c02b7befb759552a9b6d8734c72ff48825e08833aa8390b015748747ba490565b60010160008660000151858151811061428257614282615a78565b6020026020010151815260200190815260200160002060008282546142a79190615b36565b9250508190555080846020015183815181106142c5576142c5615a78565b6020908102919091010152807f9b415c02b7befb759552a9b6d8734c72ff48825e08833aa8390b015748747ba460010160008660000151858151811061430d5761430d615a78565b6020026020010151815260200190815260200160002060008282546143329190615b49565b9091555050506001016141d4565b506001600160a01b03851660009081527f9b415c02b7befb759552a9b6d8734c72ff48825e08833aa8390b015748747ba46020908152604090912083518051859361438f928492910190614f8c565b5060208281015180516143a89260018501920190614f8c565b5050506001600160a01b0384166144615760005b82602001515181101561445b57826020015181815181106143df576143df615a78565b602002602001015161440e7f9b415c02b7befb759552a9b6d8734c72ff48825e08833aa8390b015748747ba490565b60010160008560000151848151811061442957614429615a78565b60200260200101518152602001908152602001600020600082825461444e9190615b36565b90915550506001016143bc565b50613583565b6001600160a01b03841660009081527f9b415c02b7befb759552a9b6d8734c72ff48825e08833aa8390b015748747ba4602090815260408083208151815493840281016060908101845292810184815290939192849284918401828280156144e857602002820191906000526020600020905b8154815260200190600101908083116144d4575b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561454057602002820191906000526020600020905b81548152602001906001019080831161452c575b50505050508152505090506000805b82602001515181101561458f578260200151818151811061457257614572615a78565b6020026020010151826145859190615b49565b915060010161454f565b5060005b8260200151518110156146ff576000826145ad8882615b49565b856020015184815181106145c3576145c3615a78565b60200260200101516145d59190615b5c565b6145df9190615b89565b9050836020015182815181106145f7576145f7615a78565b60200260200101516146267f9b415c02b7befb759552a9b6d8734c72ff48825e08833aa8390b015748747ba490565b60010160008660000151858151811061464157614641615a78565b6020026020010151815260200190815260200160002060008282546146669190615b36565b92505081905550808460200151838151811061468457614684615a78565b6020908102919091010152807f9b415c02b7befb759552a9b6d8734c72ff48825e08833aa8390b015748747ba46001016000866000015185815181106146cc576146cc615a78565b6020026020010151815260200190815260200160002060008282546146f19190615b49565b909155505050600101614593565b506001600160a01b03861660009081527f9b415c02b7befb759552a9b6d8734c72ff48825e08833aa8390b015748747ba46020908152604090912083518051859361474e928492910190614f8c565b5060208281015180516126219260018501920190614f8c565b60007fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10081614793613197565b8051909150156147ab57805160209091012092915050565b815480156147ba579392505050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470935050505090565b60007fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1008161480f6131e8565b80519091501561482757805160209091012092915050565b600182015480156147ba579392505050565b600080608083901c1561484e57608092831c92015b604083901c1561486057604092831c92015b602083901c1561487257602092831c92015b601083901c1561488457601092831c92015b600883901c1561489657600892831c92015b600483901c156148a857600492831c92015b600283901c156148ba57600292831c92015b600183901c15610c035760010192915050565b60008183106148dc5781610cfb565b5090919050565b60006148f26002848418615b89565b610cfb90848416615b49565b6000610cfb8284615ded565b60006001600160d01b038211156128d1576040517f6dfcc65000000000000000000000000000000000000000000000000000000000815260d0600482015260248101839052604401610d8d565b600080614983614965611c70565b61497b61497188613212565b868863ffffffff16565b879190614bbf565b915091505b935093915050565b6000610cfb8284615e0d565b806001600160a01b03163b6000036149eb576040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526001600160a01b0382166004820152602401610d8d565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051614a619190615c5c565b600060405180830381855af49150503d8060008114614a9c576040519150601f19603f3d011682016040523d82523d6000602084013e614aa1565b606091505b5091509150614ab1858383614bcd565b95945050505050565b3415610de9576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614afa613bc9565b612735838383614c42565b7fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d006001600160a01b038416614b4a57614b47816002016149906139f18561490a565b50505b6001600160a01b038316614b6e57614b6b816002016148fe6139f18561490a565b50505b6001600160a01b0384811660009081527fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d006020526040808220548684168352912054611e4d92918216911684613974565b600080614983858585614dab565b606082614be257614bdd82614f4a565b610cfb565b8151158015614bf957506001600160a01b0384163b155b15614c3b576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610d8d565b5080610cfb565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b038416614c905781816002016000828254614c859190615b49565b90915550614d1b9050565b6001600160a01b03841660009081526020829052604090205482811015614cfc576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024810182905260448101849052606401610d8d565b6001600160a01b03851660009081526020839052604090209083900390555b6001600160a01b038316614d39576002810180548390039055614d58565b6001600160a01b03831660009081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051614d9d91815260200190565b60405180910390a350505050565b825460009081908015614eec576000614dc987612959600185615b36565b60408051808201909152905465ffffffffffff80821680845266010000000000009092046001600160d01b031660208401529192509087161015614e39576040517f2520601d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805165ffffffffffff808816911603614e885784614e5c88612959600186615b36565b80546001600160d01b039290921666010000000000000265ffffffffffff909216919091179055614edc565b6040805180820190915265ffffffffffff80881682526001600160d01b0380881660208085019182528b54600181018d5560008d815291909120945191519092166601000000000000029216919091179101555b6020015192508391506149889050565b50506040805180820190915265ffffffffffff80851682526001600160d01b0380851660208085019182528854600181018a5560008a8152918220955192519093166601000000000000029190931617920191909155905081614988565b805115614f5a5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b828054828255906000526020600020908101928215614fc7579160200282015b82811115614fc7578251825591602001919060010190614fac565b506128d19291505b808211156128d15760008155600101614fcf565b6001600160a01b0381168114610fb457600080fd5b60008083601f84011261500a57600080fd5b50813567ffffffffffffffff81111561502257600080fd5b60208301915083602082850101111561503a57600080fd5b9250929050565b60008060008060008060008060c0898b03121561505d57600080fd5b883561506881614fe3565b9750602089013561507881614fe3565b9650604089013561508881614fe3565b955060608901359450608089013567ffffffffffffffff808211156150ac57600080fd5b6150b88c838d01614ff8565b909650945060a08b01359150808211156150d157600080fd5b506150de8b828c01614ff8565b999c989b5096995094979396929594505050565b60006020828403121561510457600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610cfb57600080fd5b60005b8381101561514f578181015183820152602001615137565b50506000910152565b60008151808452615170816020860160208601615134565b601f01601f19169290920160200192915050565b602081526000610cfb6020830184615158565b600080604083850312156151aa57600080fd5b82356151b581614fe3565b946020939093013593505050565b6000806000806000608086880312156151db57600080fd5b85356151e681614fe3565b945060208601356151f681614fe3565b935060408601359250606086013567ffffffffffffffff81111561521957600080fd5b61522588828901614ff8565b969995985093965092949392505050565b60008060006060848603121561524b57600080fd5b833561525681614fe3565b9250602084013561526681614fe3565b929592945050506040919091013590565b60006020828403121561528957600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156152cf576152cf615290565b604052919050565b600080604083850312156152ea57600080fd5b82356152f581614fe3565b915060208381013567ffffffffffffffff8082111561531357600080fd5b818601915086601f83011261532757600080fd5b81358181111561533957615339615290565b61534b84601f19601f840116016152a6565b9150808252878482850101111561536157600080fd5b80848401858401376000848284010152508093505050509250929050565b60006020828403121561539157600080fd5b8135610cfb81614fe3565b600067ffffffffffffffff8211156153b6576153b6615290565b5060051b60200190565b600082601f8301126153d157600080fd5b813560206153e66153e18361539c565b6152a6565b8083825260208201915060208460051b87010193508684111561540857600080fd5b602086015b84811015615424578035835291830191830161540d565b509695505050505050565b6000806040838503121561544257600080fd5b823567ffffffffffffffff8082111561545a57600080fd5b615466868387016153c0565b935060209150818501358181111561547d57600080fd5b85019050601f8101861361549057600080fd5b803561549e6153e18261539c565b81815260059190911b820183019083810190888311156154bd57600080fd5b928401925b828410156154db578335825292840192908401906154c2565b80955050505050509250929050565b60008151808452602080850194506020840160005b8381101561551b578151875295820195908201906001016154ff565b509495945050505050565b7fff000000000000000000000000000000000000000000000000000000000000008816815260e06020820152600061556160e0830189615158565b82810360408401526155738189615158565b90508660608401526001600160a01b03861660808401528460a084015282810360c08401526155a281856154ea565b9a9950505050505050505050565b6020808252825160408383015280516060840181905260009291820190839060808601905b808310156155f557835182529284019260019290920191908401906155d5565b5092860151858403601f190160408701529261298381856154ea565b60006020828403121561562357600080fd5b813567ffffffffffffffff81111561563a57600080fd5b613456848285016153c0565b6020808252825182820181905260009190848201906040850190845b8181101561334a57835160ff1683529284019291840191600101615662565b60008083601f84011261569357600080fd5b50813567ffffffffffffffff8111156156ab57600080fd5b6020830191508360208260051b850101111561503a57600080fd5b60008060008060008060008060a0898b0312156156e257600080fd5b88356156ed81614fe3565b975060208901356156fd81614fe3565b9650604089013567ffffffffffffffff8082111561571a57600080fd5b6157268c838d01615681565b909850965060608b013591508082111561573f57600080fd5b61574b8c838d01615681565b909650945060808b01359150808211156150d157600080fd5b60008060006060848603121561577957600080fd5b833561578481614fe3565b9250602084013561579481614fe3565b915060408401356157a481614fe3565b809150509250925092565b803560ff811681146157c057600080fd5b919050565b60008060008060008060c087890312156157de57600080fd5b86356157e981614fe3565b95506020870135945060408701359350615805606088016157af565b92506080870135915060a087013590509295509295509295565b600080600080600080600060e0888a03121561583a57600080fd5b873561584581614fe3565b9650602088013561585581614fe3565b95506040880135945060608801359350615871608089016157af565b925060a0880135915060c0880135905092959891949750929550565b600080604083850312156158a057600080fd5b82356158ab81614fe3565b915060208301356158bb81614fe3565b809150509250929050565b63ffffffff81168114610fb457600080fd5b600080604083850312156158eb57600080fd5b82356158f681614fe3565b915060208301356158bb816158c6565b60008060008060008060a0878903121561591f57600080fd5b863561592a81614fe3565b9550602087013561593a81614fe3565b94506040870135935060608701359250608087013567ffffffffffffffff81111561596457600080fd5b61597089828a01614ff8565b979a9699509497509295939492505050565b600181811c9082168061599657607f821691505b6020821081036159b657634e487b7160e01b600052602260045260246000fd5b50919050565b6000602082840312156159ce57600080fd5b5051919050565b6000602082840312156159e757600080fd5b8151610cfb81614fe3565b60006020808385031215615a0557600080fd5b825167ffffffffffffffff811115615a1c57600080fd5b8301601f81018513615a2d57600080fd5b8051615a3b6153e18261539c565b81815260059190911b82018301908381019087831115615a5a57600080fd5b928401925b8284101561298357835182529284019290840190615a5f565b634e487b7160e01b600052603260045260246000fd5b6000606082016001600160a01b03861683526020606081850152818651808452608086019150828801935060005b81811015615ad857845183529383019391830191600101615abc565b50508481036040860152855180825290820192508186019060005b81811015615b1257825160ff1685529383019391830191600101615af3565b509298975050505050505050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610c0357610c03615b20565b80820180821115610c0357610c03615b20565b8082028115828204841417610c0357610c03615b20565b634e487b7160e01b600052601260045260246000fd5b600082615ba657634e487b7160e01b600052601260045260246000fd5b500490565b60008085851115615bbb57600080fd5b83861115615bc857600080fd5b5050820193919092039150565b7fffffffff000000000000000000000000000000000000000000000000000000008135818116916004851015615c155780818660040360031b1b83161692505b505092915050565b6001600160a01b038416815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f1916010192915050565b60008251615c6e818460208701615134565b9190910192915050565b805180151581146157c057600080fd5b60008060408385031215615c9b57600080fd5b615ca483615c78565b915060208301516158bb816158c6565b600060208284031215615cc657600080fd5b610cfb82615c78565b601f821115612735576000816000526020600020601f850160051c81016020861015615cf85750805b601f850160051c820191505b81811015612b5157828155600101615d04565b815167ffffffffffffffff811115615d3157615d31615290565b615d4581615d3f8454615982565b84615ccf565b602080601f831160018114615d7a5760008415615d625750858301515b600019600386901b1c1916600185901b178555612b51565b600085815260208120601f198616915b82811015615da957888601518255948401946001909101908401615d8a565b5085821015615dc75787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052602160045260246000fd5b6001600160d01b0382811682821603908082111561200d5761200d615b20565b6001600160d01b0381811683821601908082111561200d5761200d615b2056fea2646970667358221220d52377dd360a2bd3a4b319a9cba79bc0ef13697f4f482a15f866b6e727a3d4f164736f6c63430008180033