0x60c06040523480156200001157600080fd5b506040516200140038038062001400833981810160405281019062000037919062000276565b336001600081905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000b55760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620000ac9190620002ce565b60405180910390fd5b620000c6816200010b60201b60201c565b508173ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff168152505080608081815250505050620002eb565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200020382620001d6565b9050919050565b6200021581620001f6565b81146200022157600080fd5b50565b60008151905062000235816200020a565b92915050565b6000819050919050565b62000250816200023b565b81146200025c57600080fd5b50565b600081519050620002708162000245565b92915050565b6000806040838503121562000290576200028f620001d1565b5b6000620002a08582860162000224565b9250506020620002b3858286016200025f565b9150509250929050565b620002c881620001f6565b82525050565b6000602082019050620002e56000830184620002bd565b92915050565b60805160a0516110da620003266000396000818161029f01528181610356015261039f015260008181610177015261067101526110da6000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063a50352141161005b578063a503521414610103578063da49cc961461011f578063db9401bd1461013b578063f2fde38b1461015957610088565b80632eb4a7ab1461008d57806336dbd2f9146100ab578063715018a6146100db5780638da5cb5b146100e5575b600080fd5b610095610175565b6040516100a29190610b1f565b60405180910390f35b6100c560048036038101906100c09190610b7a565b610199565b6040516100d29190610bc2565b60405180910390f35b6100e36101ad565b005b6100ed6101c1565b6040516100fa9190610c1e565b60405180910390f35b61011d60048036038101906101189190610c9e565b6101eb565b005b61013960048036038101906101349190610b7a565b610340565b005b61014361039d565b6040516101509190610d71565b60405180910390f35b610173600480360381019061016e9190610db8565b6103c1565b005b7f000000000000000000000000000000000000000000000000000000000000000081565b60006101a6600283610447565b9050919050565b6101b5610483565b6101bf600061050a565b565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6101f36105d0565b6101fe600283610447565b1561023e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023590610e42565b60405180910390fd5b61028b848480806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050838333610616565b61029860028360016106dc565b6102e333827f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166107019092919063ffffffff16565b813373ffffffffffffffffffffffffffffffffffffffff167f2785b17e4e446c68f392b396e9bcb4d73ffa19328ef73d626cc8580d1c2306358360405161032a9190610e71565b60405180910390a361033a610780565b50505050565b610348610483565b61039a6103536101c1565b827f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166107019092919063ffffffff16565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b6103c9610483565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361043b5760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016104329190610c1e565b60405180910390fd5b6104448161050a565b50565b600080600883901c9050600060ff84166001901b9050600081866000016000858152602001908152602001600020541614159250505092915050565b61048b61078a565b73ffffffffffffffffffffffffffffffffffffffff166104a96101c1565b73ffffffffffffffffffffffffffffffffffffffff1614610508576104cc61078a565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016104ff9190610c1e565b60405180910390fd5b565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60026000540361060c576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600081905550565b600081848460405160200161062d93929190610e8c565b604051602081830303815290604052805190602001206040516020016106539190610ee4565b604051602081830303815290604052805190602001209050610696857f000000000000000000000000000000000000000000000000000000000000000083610792565b6106d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106cc90610f4b565b60405180910390fd5b5050505050565b80156106f1576106ec83836107a9565b6106fc565b6106fb83836107e7565b5b505050565b61077b838473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8585604051602401610734929190610f6b565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610826565b505050565b6001600081905550565b600033905090565b60008261079f85846108bd565b1490509392505050565b6000600882901c9050600060ff83166001901b9050808460000160008481526020019081526020016000206000828254179250508190555050505050565b6000600882901c9050600060ff83166001901b905080198460000160008481526020019081526020016000206000828254169250508190555050505050565b6000610851828473ffffffffffffffffffffffffffffffffffffffff1661090d90919063ffffffff16565b905060008151141580156108765750808060200190518101906108749190610fc0565b155b156108b857826040517f5274afe70000000000000000000000000000000000000000000000000000000081526004016108af9190610c1e565b60405180910390fd5b505050565b60008082905060005b8451811015610902576108f3828683815181106108e6576108e5610fed565b5b6020026020010151610923565b915080806001019150506108c6565b508091505092915050565b606061091b8383600061094e565b905092915050565b600081831061093b576109368284610a1b565b610946565b6109458383610a1b565b5b905092915050565b60608147101561099557306040517fcd78605900000000000000000000000000000000000000000000000000000000815260040161098c9190610c1e565b60405180910390fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1684866040516109be919061108d565b60006040518083038185875af1925050503d80600081146109fb576040519150601f19603f3d011682016040523d82523d6000602084013e610a00565b606091505b5091509150610a10868383610a32565b925050509392505050565b600082600052816020526040600020905092915050565b606082610a4757610a4282610ac1565b610ab9565b60008251148015610a6f575060008473ffffffffffffffffffffffffffffffffffffffff163b145b15610ab157836040517f9996b315000000000000000000000000000000000000000000000000000000008152600401610aa89190610c1e565b60405180910390fd5b819050610aba565b5b9392505050565b600081511115610ad45780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000819050919050565b610b1981610b06565b82525050565b6000602082019050610b346000830184610b10565b92915050565b600080fd5b600080fd5b6000819050919050565b610b5781610b44565b8114610b6257600080fd5b50565b600081359050610b7481610b4e565b92915050565b600060208284031215610b9057610b8f610b3a565b5b6000610b9e84828501610b65565b91505092915050565b60008115159050919050565b610bbc81610ba7565b82525050565b6000602082019050610bd76000830184610bb3565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610c0882610bdd565b9050919050565b610c1881610bfd565b82525050565b6000602082019050610c336000830184610c0f565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112610c5e57610c5d610c39565b5b8235905067ffffffffffffffff811115610c7b57610c7a610c3e565b5b602083019150836020820283011115610c9757610c96610c43565b5b9250929050565b60008060008060608587031215610cb857610cb7610b3a565b5b600085013567ffffffffffffffff811115610cd657610cd5610b3f565b5b610ce287828801610c48565b94509450506020610cf587828801610b65565b9250506040610d0687828801610b65565b91505092959194509250565b6000819050919050565b6000610d37610d32610d2d84610bdd565b610d12565b610bdd565b9050919050565b6000610d4982610d1c565b9050919050565b6000610d5b82610d3e565b9050919050565b610d6b81610d50565b82525050565b6000602082019050610d866000830184610d62565b92915050565b610d9581610bfd565b8114610da057600080fd5b50565b600081359050610db281610d8c565b92915050565b600060208284031215610dce57610dcd610b3a565b5b6000610ddc84828501610da3565b91505092915050565b600082825260208201905092915050565b7f41697244726f705069706f3a20416c726561647920636c61696d656400000000600082015250565b6000610e2c601c83610de5565b9150610e3782610df6565b602082019050919050565b60006020820190508181036000830152610e5b81610e1f565b9050919050565b610e6b81610b44565b82525050565b6000602082019050610e866000830184610e62565b92915050565b6000606082019050610ea16000830186610c0f565b610eae6020830185610e62565b610ebb6040830184610e62565b949350505050565b6000819050919050565b610ede610ed982610b06565b610ec3565b82525050565b6000610ef08284610ecd565b60208201915081905092915050565b7f41697244726f705069706f3a20496e76616c69642070726f6f66000000000000600082015250565b6000610f35601a83610de5565b9150610f4082610eff565b602082019050919050565b60006020820190508181036000830152610f6481610f28565b9050919050565b6000604082019050610f806000830185610c0f565b610f8d6020830184610e62565b9392505050565b610f9d81610ba7565b8114610fa857600080fd5b50565b600081519050610fba81610f94565b92915050565b600060208284031215610fd657610fd5610b3a565b5b6000610fe484828501610fab565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600081905092915050565b60005b83811015611050578082015181840152602081019050611035565b60008484015250505050565b60006110678261101c565b6110718185611027565b9350611081818560208601611032565b80840191505092915050565b6000611099828461105c565b91508190509291505056fea26469706673582212205cd0ee61f3c81b519d5d9e4f64090c8acaa686f4cce039c8d43c5663471213e364736f6c63430008180033000000000000000000000000a73b792906c79509d73fdfaaa78561e195010706541df19d424df129de42423c281775bbdb7298666d19de969d455509bbbecc82