60806040526b033b2e3c9fd0803ce800000060001962000020919062000554565b6000196200002f9190620004db565b60055560006007556000600b60146101000a81548160ff0219169083151502179055503480156200005f57600080fd5b506000620000726200041e60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060055460026000620001276200041e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200020657600080fd5b505afa1580156200021b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024191906200043d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002a457600080fd5b505afa158015620002b9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002df91906200043d565b6040518363ffffffff1660e01b8152600401620002fe92919062000491565b602060405180830381600087803b1580156200031957600080fd5b505af11580156200032e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200035491906200043d565b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620003a46200041e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6b033b2e3c9fd0803ce80000006040516200040f9190620004be565b60405180910390a35062000609565b600033905090565b6000815190506200043781620005ef565b92915050565b600060208284031215620004565762000455620005ea565b5b6000620004668482850162000426565b91505092915050565b6200047a8162000516565b82525050565b6200048b816200054a565b82525050565b6000604082019050620004a860008301856200046f565b620004b760208301846200046f565b9392505050565b6000602082019050620004d5600083018462000480565b92915050565b6000620004e8826200054a565b9150620004f5836200054a565b9250828210156200050b576200050a6200058c565b5b828203905092915050565b600062000523826200052a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600062000561826200054a565b91506200056e836200054a565b925082620005815762000580620005bb565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b620005fa8162000516565b81146200060657600080fd5b50565b61265580620006196000396000f3fe60806040526004361061010c5760003560e01c80636b9990531161009557806395d89b411161006457806395d89b4114610365578063a9059cbb14610390578063bfd79284146103cd578063dd62ed3e1461040a578063f2fde38b1461044757610113565b80636b999053146102bd57806370a08231146102e6578063715018a6146103235780638da5cb5b1461033a57610113565b806318160ddd116100dc57806318160ddd146101d457806323b872dd146101ff578063313ce5671461023c5780633b124fe71461026757806349bd5a5e1461029257610113565b8062b8cf2a1461011857806306fdde0314610141578063095ea7b31461016c5780631694505e146101a957610113565b3661011357005b600080fd5b34801561012457600080fd5b5061013f600480360381019061013a9190611abe565b610470565b005b34801561014d57600080fd5b5061015661059a565b6040516101639190611d5d565b60405180910390f35b34801561017857600080fd5b50610193600480360381019061018e9190611a7e565b6105d7565b6040516101a09190611d27565b60405180910390f35b3480156101b557600080fd5b506101be6105f5565b6040516101cb9190611d42565b60405180910390f35b3480156101e057600080fd5b506101e961061b565b6040516101f69190611edf565b60405180910390f35b34801561020b57600080fd5b5061022660048036038101906102219190611a2b565b61062f565b6040516102339190611d27565b60405180910390f35b34801561024857600080fd5b50610251610708565b60405161025e9190611efa565b60405180910390f35b34801561027357600080fd5b5061027c610711565b6040516102899190611edf565b60405180910390f35b34801561029e57600080fd5b506102a7610717565b6040516102b49190611d0c565b60405180910390f35b3480156102c957600080fd5b506102e460048036038101906102df91906119be565b61073d565b005b3480156102f257600080fd5b5061030d600480360381019061030891906119be565b61082d565b60405161031a9190611edf565b60405180910390f35b34801561032f57600080fd5b5061033861087e565b005b34801561034657600080fd5b5061034f6109d1565b60405161035c9190611d0c565b60405180910390f35b34801561037157600080fd5b5061037a6109fa565b6040516103879190611d5d565b60405180910390f35b34801561039c57600080fd5b506103b760048036038101906103b29190611a7e565b610a37565b6040516103c49190611d27565b60405180910390f35b3480156103d957600080fd5b506103f460048036038101906103ef91906119be565b610a55565b6040516104019190611d27565b60405180910390f35b34801561041657600080fd5b50610431600480360381019061042c91906119eb565b610a75565b60405161043e9190611edf565b60405180910390f35b34801561045357600080fd5b5061046e600480360381019061046991906119be565b610afc565b005b610478610cbe565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610505576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104fc90611e5f565b60405180910390fd5b60005b81518110156105965760016008600084848151811061052a5761052961222d565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061058e90612186565b915050610508565b5050565b60606040518060400160405280600981526020017f4269726420446f67650000000000000000000000000000000000000000000000815250905090565b60006105eb6105e4610cbe565b8484610cc6565b6001905092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006b033b2e3c9fd0803ce8000000905090565b600061063c848484610e91565b6106fd84610648610cbe565b6106f8856040518060600160405280602881526020016125f860289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106ae610cbe565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111279092919063ffffffff16565b610cc6565b600190509392505050565b60006009905090565b60075481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610745610cbe565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c990611e5f565b60405180910390fd5b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000610877600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461118b565b9050919050565b610886610cbe565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090a90611e5f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f42444f4745000000000000000000000000000000000000000000000000000000815250905090565b6000610a4b610a44610cbe565b8484610e91565b6001905092915050565b60086020528060005260406000206000915054906101000a900460ff1681565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610b04610cbe565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8890611e5f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf890611dbf565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2d90611ebf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610da6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9d90611ddf565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e849190611edf565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610f01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef890611e9f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6890611d7f565b60405180910390fd5b60008111610fb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fab90611e7f565b60405180910390fd5b610fbc6109d1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561102a5750610ffa6109d1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561111357600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156110d35750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611112576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110990611dff565b60405180910390fd5b5b6000611121848484846111f9565b50505050565b600083831115829061116f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111669190611d5d565b60405180910390fd5b506000838561117e9190612063565b9050809150509392505050565b60006005548211156111d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c990611d9f565b60405180910390fd5b60006111dc611226565b90506111f1818461125190919063ffffffff16565b915050919050565b806112075761120661129b565b5b6112128484846112b6565b806112205761121f611481565b5b50505050565b600080600061123361148b565b9150915061124a818361125190919063ffffffff16565b9250505090565b600061129383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114f6565b905092915050565b600060075414156112ab576112b4565b60006007819055505b565b6000806000806000806112c887611559565b95509550955095509550955061132686600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115bb90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113bb85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461160590919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061140781611663565b6114118483611720565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161146e9190611edf565b60405180910390a3505050505050505050565b6000600781905550565b6000806000600554905060006b033b2e3c9fd0803ce800000090506114c76b033b2e3c9fd0803ce800000060055461125190919063ffffffff16565b8210156114e9576005546b033b2e3c9fd0803ce80000009350935050506114f2565b81819350935050505b9091565b6000808311829061153d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115349190611d5d565b60405180910390fd5b506000838561154c9190611fd8565b9050809150509392505050565b60008060008060008060008060006115708a61175a565b9250925092506000611580611226565b905060008060006115938e8787876117f2565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006115fd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611127565b905092915050565b60008082846116149190611f82565b905083811015611659576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165090611e1f565b60405180910390fd5b8091505092915050565b600061166d611226565b90506000611684828461187b90919063ffffffff16565b90506116d881600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461160590919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b611735826005546115bb90919063ffffffff16565b6005819055506117508160065461160590919063ffffffff16565b6006819055505050565b600080600080611788606461177a6007548861187b90919063ffffffff16565b61125190919063ffffffff16565b905060006117b460646117a66007548961187b90919063ffffffff16565b61125190919063ffffffff16565b905060006117dd826117cf858a6115bb90919063ffffffff16565b6115bb90919063ffffffff16565b90508083839550955095505050509193909250565b60008060008061180b858961187b90919063ffffffff16565b90506000611822868961187b90919063ffffffff16565b90506000611839878961187b90919063ffffffff16565b905060006118628261185485876115bb90919063ffffffff16565b6115bb90919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561188e57600090506118f0565b6000828461189c9190612009565b90508284826118ab9190611fd8565b146118eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e290611e3f565b60405180910390fd5b809150505b92915050565b600061190961190484611f3a565b611f15565b9050808382526020820190508285602086028201111561192c5761192b612290565b5b60005b8581101561195c57816119428882611966565b84526020840193506020830192505060018101905061192f565b5050509392505050565b600081359050611975816125c9565b92915050565b600082601f8301126119905761198f61228b565b5b81356119a08482602086016118f6565b91505092915050565b6000813590506119b8816125e0565b92915050565b6000602082840312156119d4576119d361229a565b5b60006119e284828501611966565b91505092915050565b60008060408385031215611a0257611a0161229a565b5b6000611a1085828601611966565b9250506020611a2185828601611966565b9150509250929050565b600080600060608486031215611a4457611a4361229a565b5b6000611a5286828701611966565b9350506020611a6386828701611966565b9250506040611a74868287016119a9565b9150509250925092565b60008060408385031215611a9557611a9461229a565b5b6000611aa385828601611966565b9250506020611ab4858286016119a9565b9150509250929050565b600060208284031215611ad457611ad361229a565b5b600082013567ffffffffffffffff811115611af257611af1612295565b5b611afe8482850161197b565b91505092915050565b611b1081612097565b82525050565b611b1f816120a9565b82525050565b611b2e816120ec565b82525050565b6000611b3f82611f66565b611b498185611f71565b9350611b59818560208601612122565b611b628161229f565b840191505092915050565b6000611b7a602383611f71565b9150611b85826122b0565b604082019050919050565b6000611b9d602a83611f71565b9150611ba8826122ff565b604082019050919050565b6000611bc0602683611f71565b9150611bcb8261234e565b604082019050919050565b6000611be3602283611f71565b9150611bee8261239d565b604082019050919050565b6000611c06602383611f71565b9150611c11826123ec565b604082019050919050565b6000611c29601b83611f71565b9150611c348261243b565b602082019050919050565b6000611c4c602183611f71565b9150611c5782612464565b604082019050919050565b6000611c6f602083611f71565b9150611c7a826124b3565b602082019050919050565b6000611c92602983611f71565b9150611c9d826124dc565b604082019050919050565b6000611cb5602583611f71565b9150611cc08261252b565b604082019050919050565b6000611cd8602483611f71565b9150611ce38261257a565b604082019050919050565b611cf7816120d5565b82525050565b611d06816120df565b82525050565b6000602082019050611d216000830184611b07565b92915050565b6000602082019050611d3c6000830184611b16565b92915050565b6000602082019050611d576000830184611b25565b92915050565b60006020820190508181036000830152611d778184611b34565b905092915050565b60006020820190508181036000830152611d9881611b6d565b9050919050565b60006020820190508181036000830152611db881611b90565b9050919050565b60006020820190508181036000830152611dd881611bb3565b9050919050565b60006020820190508181036000830152611df881611bd6565b9050919050565b60006020820190508181036000830152611e1881611bf9565b9050919050565b60006020820190508181036000830152611e3881611c1c565b9050919050565b60006020820190508181036000830152611e5881611c3f565b9050919050565b60006020820190508181036000830152611e7881611c62565b9050919050565b60006020820190508181036000830152611e9881611c85565b9050919050565b60006020820190508181036000830152611eb881611ca8565b9050919050565b60006020820190508181036000830152611ed881611ccb565b9050919050565b6000602082019050611ef46000830184611cee565b92915050565b6000602082019050611f0f6000830184611cfd565b92915050565b6000611f1f611f30565b9050611f2b8282612155565b919050565b6000604051905090565b600067ffffffffffffffff821115611f5557611f5461225c565b5b602082029050602081019050919050565b600081519050919050565b600082825260208201905092915050565b6000611f8d826120d5565b9150611f98836120d5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611fcd57611fcc6121cf565b5b828201905092915050565b6000611fe3826120d5565b9150611fee836120d5565b925082611ffe57611ffd6121fe565b5b828204905092915050565b6000612014826120d5565b915061201f836120d5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612058576120576121cf565b5b828202905092915050565b600061206e826120d5565b9150612079836120d5565b92508282101561208c5761208b6121cf565b5b828203905092915050565b60006120a2826120b5565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006120f7826120fe565b9050919050565b600061210982612110565b9050919050565b600061211b826120b5565b9050919050565b60005b83811015612140578082015181840152602081019050612125565b8381111561214f576000848401525b50505050565b61215e8261229f565b810181811067ffffffffffffffff8211171561217d5761217c61225c565b5b80604052505050565b6000612191826120d5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156121c4576121c36121cf565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6125d281612097565b81146125dd57600080fd5b50565b6125e9816120d5565b81146125f457600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122060504186a40bccdbccedfc39f93faba8c42beb0973f3b3276fe9d7ee11ca966d64736f6c63430008070033