0x608060405234801561001057600080fd5b50610aa1806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806355abbafc14610051578063766370281461007657806388dbf051146100895780638e888ccc1461009c575b600080fd5b61006461005f366004610798565b6100af565b60405190815260200160405180910390f35b610064610084366004610859565b61014e565b610064610097366004610859565b610185565b6100646100aa366004610859565b610300565b60008082815b818110156101425760008686838181106100d1576100d1610902565b905060c002018036038101906100e79190610859565b9050836000036100fd578060a001519350610105565b60a081018490525b805160ff166000036101215761011a8161014e565b9350610139565b805160ff166001036101395761013681610300565b93505b506001016100b5565b50909150505b92915050565b600080600061016a8460200151856040015186606001516103f2565b9150915061017d8460a0015183836104bc565b949350505050565b60208101516000908180805b81600f0b83600f0b036102735760405163046e8dd760e31b8152600f82900b60048201526000906001600160a01b038616906323746eb8906024016020604051808303816000875af11580156101eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061020f9190610918565b905086604001516001600160a01b0316816001600160a01b03160361023657819350610257565b86606001516001600160a01b0316816001600160a01b031603610257578192505b82600f0b84600f0b1461026a5750610273565b50600101610191565b60a0860151604051635e0d443f60e01b8152600f85810b600483015284900b602482015260448101919091526001600160a01b03851690635e0d443f906064016020604051808303816000875af11580156102d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f6919061093c565b9695505050505050565b6020818101516040805160a080820183526000808352948201858152828401868152606080850188815260808087018a8152888c01516001600160a01b039081168952938c015184168652958b015184528a015162ffffff90811682529651636352813560e11b81528651831660048201529351821660248501529151604484015290519094166064820152905183166084820152909183169063c6a5026a9060a4016080604051808303816000875af11580156103c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103e69190610969565b50919695505050505050565b600080600061040185856105e1565b5090506000806104128888886106d8565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561044f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047391906109c6565b506001600160701b031691506001600160701b03169150826001600160a01b0316876001600160a01b0316146104aa5780826104ad565b81815b90999098509650505050505050565b60008084116105265760405162461bcd60e51b815260206004820152602b60248201527f556e697377617056324c6962726172793a20494e53554646494349454e545f4960448201526a1394155517d05353d5539560aa1b60648201526084015b60405180910390fd5b6000831180156105365750600082115b6105935760405162461bcd60e51b815260206004820152602860248201527f556e697377617056324c6962726172793a20494e53554646494349454e545f4c604482015267495155494449545960c01b606482015260840161051d565b60006105a1856103e5610a1f565b905060006105af8483610a1f565b90506000826105c0876103e8610a1f565b6105ca9190610a36565b90506105d68183610a49565b979650505050505050565b600080826001600160a01b0316846001600160a01b0316036106535760405162461bcd60e51b815260206004820152602560248201527f556e697377617056324c6962726172793a204944454e544943414c5f41444452604482015264455353455360d81b606482015260840161051d565b826001600160a01b0316846001600160a01b031610610673578284610676565b83835b90925090506001600160a01b0382166106d15760405162461bcd60e51b815260206004820152601e60248201527f556e697377617056324c6962726172793a205a45524f5f414444524553530000604482015260640161051d565b9250929050565b60008060006106e785856105e1565b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825180830360280181526048830184528051908501206001600160f81b031960688401529a90941b9093166069840152607d8301989098527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b600080602083850312156107ab57600080fd5b823567ffffffffffffffff808211156107c357600080fd5b818501915085601f8301126107d757600080fd5b8135818111156107e657600080fd5b86602060c0830285010111156107fb57600080fd5b60209290920196919550909350505050565b803560ff8116811461081e57600080fd5b919050565b6001600160a01b038116811461083857600080fd5b50565b803561081e81610823565b803562ffffff8116811461081e57600080fd5b600060c0828403121561086b57600080fd5b60405160c0810181811067ffffffffffffffff8211171561089c57634e487b7160e01b600052604160045260246000fd5b6040526108a88361080d565b81526108b66020840161083b565b60208201526108c76040840161083b565b60408201526108d86060840161083b565b60608201526108e960808401610846565b608082015260a083013560a08201528091505092915050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561092a57600080fd5b815161093581610823565b9392505050565b60006020828403121561094e57600080fd5b5051919050565b805163ffffffff8116811461081e57600080fd5b6000806000806080858703121561097f57600080fd5b84519350602085015161099181610823565b925061099f60408601610955565b6060959095015193969295505050565b80516001600160701b038116811461081e57600080fd5b6000806000606084860312156109db57600080fd5b6109e4846109af565b92506109f2602085016109af565b9150610a0060408501610955565b90509250925092565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761014857610148610a09565b8082018082111561014857610148610a09565b600082610a6657634e487b7160e01b600052601260045260246000fd5b50049056fea264697066735822122088b92db55e626c855c0329d5e1d677ac69c2525cd29ba99b5bdc8a1c30bb10fe64736f6c63430008170033