0x60806040523480156200001157600080fd5b506040516200188d3803806200188d833981810160405260408110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82516401000000008111828201881017156200008957600080fd5b82525081516020918201929091019080838360005b83811015620000b85781810151838201526020016200009e565b50505050905090810190601f168015620000e65780820380516001836020036101000a031916815260200191505b50604052602001519150829050816001600160a01b038116620001265760405162461bcd60e51b81526004016200011d9062000212565b60405180910390fd5b81516200013b90600190602085019062000166565b50600080546001600160a01b0319166001600160a01b03929092169190911790555062000249915050565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826200019e5760008555620001e9565b82601f10620001b957805160ff1916838001178555620001e9565b82800160010185558215620001e9579182015b82811115620001e9578251825591602001919060010190620001cc565b50620001f7929150620001fb565b5090565b5b80821115620001f75760008155600101620001fc565b6020808252601a908201527f436f6e74726f6c6c6572206d75737420626520646566696e6564000000000000604082015260600190565b61163480620002596000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063a24258ad1161005b578063a24258ad146101d2578063bdd7a79c1461026c578063cdea203414610311578063f77c47911461039c5761007d565b806306fdde031461008257806317d7de7c146100ff57806387033f6114610107575b600080fd5b61008a6103c0565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100c45781810151838201526020016100ac565b50505050905090810190601f1680156100f15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61008a61044d565b6101a7600480360360c081101561011d57600080fd5b6001600160a01b038235169160208101359160ff604083013516919081019060808101606082013564010000000081111561015757600080fd5b82018360208201111561016957600080fd5b8035906020019184600183028401116401000000008311171561018b57600080fd5b91935091506001600160a01b03813581169160200135166104e2565b604080516001600160a01b039094168452602084019290925260ff1682820152519081900360600190f35b610253600480360360608110156101e857600080fd5b81019060208101813564010000000081111561020357600080fd5b82018360208201111561021557600080fd5b8035906020019184600183028401116401000000008311171561023757600080fd5b91935091506001600160a01b038135811691602001351661080e565b6040805192835290151560208301528051918290030190f35b6101a7600480360360e081101561028257600080fd5b6001600160a01b038235169160208101359160ff6040830135169160608101359181019060a0810160808201356401000000008111156102c157600080fd5b8201836020820111156102d357600080fd5b803590602001918460018302840111640100000000831117156102f557600080fd5b91935091506001600160a01b0381358116916020013516610a96565b61039a6004803603608081101561032757600080fd5b81019060208101813564010000000081111561034257600080fd5b82018360208201111561035457600080fd5b8035906020019184600183028401116401000000008311171561037657600080fd5b91935091506001600160a01b03813581169160208101359091169060400135610db8565b005b6103a461109d565b604080516001600160a01b039092168252519081900360200190f35b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104455780601f1061041a57610100808354040283529160200191610445565b820191906000526020600020905b81548152906001019060200180831161042857829003601f168201915b505050505081565b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156104d85780601f106104ad576101008083540402835291602001916104d8565b820191906000526020600020905b8154815290600101906020018083116104bb57829003601f168201915b5050505050905090565b6000806000803390506000816001600160a01b03166356ba88b86040518163ffffffff1660e01b815260040160206040518083038186803b15801561052657600080fd5b505afa15801561053a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061055e91906114f6565b6000546040516313bc6d4b60e01b81529192506001600160a01b0316906313bc6d4b9061058f90849060040161154a565b60206040518083038186803b1580156105a757600080fd5b505afa1580156105bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105df9190611512565b6106045760405162461bcd60e51b81526004016105fb90611578565b60405180910390fd5b604051633a82192560e01b81526001600160a01b03821690633a8219259061063090339060040161154a565b60206040518083038186803b15801561064857600080fd5b505afa15801561065c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106809190611512565b61069c5760405162461bcd60e51b81526004016105fb906115af565b60006106a88a8a6110ac565b905073f5d669627376ebd411e34b98f19c868c8aba5ada6001600160a01b03821614156106e6575073bb0e17ef65f82ab018d8edd776e8dd940327b28b5b604080517f0e32db520000000000000000000000000000000000000000000000000000000081526001600160a01b038f81166004830152602482018f90528316604482015290513391630e32db529160648083019260209291908290030181600087803b15801561075657600080fd5b505af115801561076a573d6000803e3d6000fd5b505050506040513d602081101561078057600080fd5b5050604080516370a0823160e01b8152336004820152905182916001600160a01b038316916370a0823191602480820192602092909190829003018186803b1580156107cb57600080fd5b505afa1580156107df573d6000803e3d6000fd5b505050506040513d60208110156107f557600080fd5b5051909e909d5060009c509a5050505050505050505050565b600080600061081d87876110ac565b9050336001600160a01b031663e4df5e1a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561085857600080fd5b505afa15801561086c573d6000803e3d6000fd5b505050506040513d602081101561088257600080fd5b505161089657600060019250925050610a8d565b73f5d669627376ebd411e34b98f19c868c8aba5ada6001600160a01b03821614156108d2575073bb0e17ef65f82ab018d8edd776e8dd940327b28b5b6000610942866001600160a01b031663f85cb5c86040518163ffffffff1660e01b815260040160206040518083038186803b15801561091057600080fd5b505afa158015610924573d6000803e3d6000fd5b505050506040513d602081101561093a57600080fd5b5051836110d2565b90506000610a3082610a2a858a6001600160a01b031663f85cb5c86040518163ffffffff1660e01b815260040160206040518083038186803b15801561098757600080fd5b505afa15801561099b573d6000803e3d6000fd5b505050506040513d60208110156109b157600080fd5b5051604080516370a0823160e01b815233600482015290516001600160a01b038a16916370a08231916024808301926020929190829003018186803b1580156109f957600080fd5b505afa158015610a0d573d6000803e3d6000fd5b505050506040513d6020811015610a2357600080fd5b505161123f565b906112b9565b905080610a84576040805162461bcd60e51b815260206004820152601660248201527f4e41562068617320746f20626520626967676572203000000000000000000000604482015290519081900360640190fd5b93506001925050505b94509492505050565b6000806000803390506000816001600160a01b03166356ba88b86040518163ffffffff1660e01b815260040160206040518083038186803b158015610ada57600080fd5b505afa158015610aee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b1291906114f6565b6000546040516313bc6d4b60e01b81529192506001600160a01b0316906313bc6d4b90610b4390849060040161154a565b60206040518083038186803b158015610b5b57600080fd5b505afa158015610b6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b939190611512565b610baf5760405162461bcd60e51b81526004016105fb90611578565b604051633a82192560e01b81526001600160a01b03821690633a82192590610bdb90339060040161154a565b60206040518083038186803b158015610bf357600080fd5b505afa158015610c07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2b9190611512565b610c475760405162461bcd60e51b81526004016105fb906115af565b670de0b6b3a76400008a1115610ca4576040805162461bcd60e51b815260206004820152601960248201527f556e77696e642050657263656e74616765203c3d203130302500000000000000604482015290519081900360640190fd5b73f5d669627376ebd411e34b98f19c868c8aba5ada6001600160a01b038e161415610ce15773bb0e17ef65f82ab018d8edd776e8dd940327b28b9c505b73f4dc48d260c93ad6a96c5ce563e70ca578987c746001600160a01b038e161415610d1e57736b175474e89094c44da98b954eedeac495271d0f9c505b6000610da38b8f6001600160a01b03166370a08231336040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610d7157600080fd5b505afa158015610d85573d6000803e3d6000fd5b505050506040513d6020811015610d9b57600080fd5b5051906112d7565b9d9e60009d509b505050505050505050505050565b60003390506000816001600160a01b03166356ba88b86040518163ffffffff1660e01b815260040160206040518083038186803b158015610df857600080fd5b505afa158015610e0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3091906114f6565b6000546040516313bc6d4b60e01b81529192506001600160a01b0316906313bc6d4b90610e6190849060040161154a565b60206040518083038186803b158015610e7957600080fd5b505afa158015610e8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb19190611512565b610ecd5760405162461bcd60e51b81526004016105fb90611578565b604051633a82192560e01b81526001600160a01b03821690633a82192590610ef990339060040161154a565b60206040518083038186803b158015610f1157600080fd5b505afa158015610f25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f499190611512565b610f655760405162461bcd60e51b81526004016105fb906115af565b6000610f7188886110ac565b90506001600160a01b038116610fce576040805162461bcd60e51b815260206004820152601760248201527f496e636f72726563742061737365742061646472657373000000000000000000604482015290519081900360640190fd5b856001600160a01b031663f85cb5c86040518163ffffffff1660e01b815260040160206040518083038186803b15801561100757600080fd5b505afa15801561101b573d6000803e3d6000fd5b505050506040513d602081101561103157600080fd5b50516001600160a01b0382811691161415611093576040805162461bcd60e51b815260206004820152601f60248201527f5265636569766520746f6b656e206d75737420626520646966666572656e7400604482015290519081900360640190fd5b5050505050505050565b6000546001600160a01b031681565b6000828260208110156110be57600080fd5b50356001600160a01b031690505b92915050565b60008054604080517f2630c12f000000000000000000000000000000000000000000000000000000008152905183926001600160a01b031691632630c12f916004808301926020929190829003018186803b15801561113057600080fd5b505afa158015611144573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116891906114f6565b90506001600160a01b038082169063f8da2c9590861615611189578561119f565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc25b6001600160a01b038616156111b457856111ca565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc25b6040518363ffffffff1660e01b81526004016111e792919061155e565b60206040518083038186803b1580156111ff57600080fd5b505afa158015611213573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112379190611532565b949350505050565b600080611254856001600160a01b03166112ef565b9050600061126a856001600160a01b03166112ef565b90508082141561127e5783925050506112b2565b8181111561129e5761129584838303600a0a611432565b925050506112b2565b6112ad84828403600a0a611456565b925050505b9392505050565b60006112b2826112d185670de0b6b3a7640000611432565b90611456565b60006112b2670de0b6b3a76400006112d18585611432565b60006112fa826114bd565b156113075750601261142d565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f313ce567000000000000000000000000000000000000000000000000000000001781529151815160009384936001600160a01b038816939092909182918083835b6020831061139a5780518252601f19909201916020918201910161137b565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d80600081146113fa576040519150601f19603f3d011682016040523d82523d6000602084013e6113ff565b606091505b509150915081611410576012611428565b80806020019051602081101561142557600080fd5b50515b925050505b919050565b600082158061144d5750508181028183828161144a57fe5b04145b6110cc57600080fd5b60008082116114ac576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b8183816114b557fe5b049392505050565b60006001600160a01b03821615806110cc57506001600160a01b03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1492915050565b600060208284031215611507578081fd5b81516112b2816115e6565b600060208284031215611523578081fd5b815180151581146112b2578182fd5b600060208284031215611543578081fd5b5051919050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6020808252601b908201527f4f6e6c7920612067617264656e2063616e2063616c6c20746869730000000000604082015260600190565b60208082526019908201527f53656e646572206d757374206265206120737472617465677900000000000000604082015260600190565b6001600160a01b03811681146115fb57600080fd5b5056fea26469706673582212206760c605a4b7d0fb3560ea8853304419864394f49a574448d48500148607a7f764736f6c634300070600330000000000000000000000000000000000000000000000000000000000000040000000000000000000000000d4a5b5fcb561daf3adf86f8477555b92fba43b5f00000000000000000000000000000000000000000000000000000000000000036275790000000000000000000000000000000000000000000000000000000000