0x60806040526001600560146101000a81548160ff021916908315150217905550601e6006556000600760006101000a81548160ff021916908315150217905550601460085560146009557338d38753fe736a930b30aaca5e48aab2bcd775d0600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015620000ab57600080fd5b506040518060400160405280600b81526020017f4e65772043617264616e6f0000000000000000000000000000000000000000008152506040518060400160405280600581526020017f4e7541444100000000000000000000000000000000000000000000000000000081525081600390805190602001906200013092919062000620565b5080600490805190602001906200014992919062000620565b5050506200016c62000160620003cf60201b60201c565b620003d760201b60201c565b6200019933670de0b6b3a7640000653ec1507d50006200018d919062000851565b6200049d60201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620001f957600080fd5b505afa1580156200020e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002349190620006e7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200029757600080fd5b505afa158015620002ac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d29190620006e7565b6040518363ffffffff1660e01b8152600401620002f192919062000777565b602060405180830381600087803b1580156200030c57600080fd5b505af115801562000321573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003479190620006e7565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506200099e565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000510576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200050790620007a4565b60405180910390fd5b62000524600083836200061660201b60201c565b8060026000828254620005389190620007f4565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200058f9190620007f4565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620005f69190620007c6565b60405180910390a362000612600083836200061b60201b60201c565b5050565b505050565b505050565b8280546200062e90620008f0565b90600052602060002090601f0160209004810192826200065257600085556200069e565b82601f106200066d57805160ff19168380011785556200069e565b828001600101855582156200069e579182015b828111156200069d57825182559160200191906001019062000680565b5b509050620006ad9190620006b1565b5090565b5b80821115620006cc576000816000905550600101620006b2565b5090565b600081519050620006e18162000984565b92915050565b600060208284031215620006fa57600080fd5b60006200070a84828501620006d0565b91505092915050565b6200071e81620008b2565b82525050565b600062000733601f83620007e3565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b6200077181620008e6565b82525050565b60006040820190506200078e600083018562000713565b6200079d602083018462000713565b9392505050565b60006020820190508181036000830152620007bf8162000724565b9050919050565b6000602082019050620007dd600083018462000766565b92915050565b600082825260208201905092915050565b60006200080182620008e6565b91506200080e83620008e6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000846576200084562000926565b5b828201905092915050565b60006200085e82620008e6565b91506200086b83620008e6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620008a757620008a662000926565b5b828202905092915050565b6000620008bf82620008c6565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060028204905060018216806200090957607f821691505b6020821081141562000920576200091f62000955565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6200098f81620008b2565b81146200099b57600080fd5b50565b61218780620009ae6000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c806370a08231116100f9578063a9059cbb11610097578063dd62ed3e11610071578063dd62ed3e146104d9578063e086e5ec14610509578063f137d50714610513578063f2fde38b1461052f576101c4565b8063a9059cbb1461046f578063cc1776d31461049f578063cd8de42c146104bd576101c4565b80638da5cb5b116100d35780638da5cb5b146103e5578063902d55a51461040357806395d89b4114610421578063a457c2d71461043f576101c4565b806370a082311461038d578063715018a6146103bd578063737ea06e146103c7576101c4565b806331d66bff1161016657806348a792011161014057806348a792011461032b57806349bd5a5e146103475780634f7041a5146103655780635fd8c71014610383576101c4565b806331d66bff146102bf57806337dac0eb146102dd57806339509351146102fb576101c4565b806317f02b93116101a257806317f02b931461023557806318160ddd1461025357806323b872dd14610271578063313ce567146102a1576101c4565b806306fdde03146101c9578063095ea7b3146101e75780631694505e14610217575b600080fd5b6101d161054b565b6040516101de9190611cc7565b60405180910390f35b61020160048036038101906101fc91906117b4565b6105dd565b60405161020e9190611c91565b60405180910390f35b61021f610600565b60405161022c9190611cac565b60405180910390f35b61023d610626565b60405161024a9190611c91565b60405180910390f35b61025b610639565b6040516102689190611e29565b60405180910390f35b61028b60048036038101906102869190611765565b610643565b6040516102989190611c91565b60405180910390f35b6102a9610672565b6040516102b69190611e44565b60405180910390f35b6102c761067b565b6040516102d49190611c91565b60405180910390f35b6102e561068e565b6040516102f29190611e29565b60405180910390f35b610315600480360381019061031091906117b4565b610694565b6040516103229190611c91565b60405180910390f35b61034560048036038101906103409190611819565b6106cb565b005b61034f610751565b60405161035c9190611c76565b60405180910390f35b61036d610777565b60405161037a9190611e29565b60405180910390f35b61038b61077d565b005b6103a760048036038101906103a29190611700565b61080e565b6040516103b49190611e29565b60405180910390f35b6103c5610856565b005b6103cf6108de565b6040516103dc9190611c76565b60405180910390f35b6103ed610904565b6040516103fa9190611c76565b60405180910390f35b61040b61092e565b6040516104189190611e29565b60405180910390f35b610429610938565b6040516104369190611cc7565b60405180910390f35b610459600480360381019061045491906117b4565b6109ca565b6040516104669190611c91565b60405180910390f35b610489600480360381019061048491906117b4565b610a41565b6040516104969190611c91565b60405180910390f35b6104a7610a64565b6040516104b49190611e29565b60405180910390f35b6104d760048036038101906104d29190611700565b610a6a565b005b6104f360048036038101906104ee9190611729565b610b2a565b6040516105009190611e29565b60405180910390f35b610511610bb1565b005b61052d600480360381019061052891906117f0565b610c7c565b005b61054960048036038101906105449190611700565b610d15565b005b60606003805461055a9061203c565b80601f01602080910402602001604051908101604052809291908181526020018280546105869061203c565b80156105d35780601f106105a8576101008083540402835291602001916105d3565b820191906000526020600020905b8154815290600101906020018083116105b657829003601f168201915b5050505050905090565b6000806105e8610e0d565b90506105f5818585610e15565b600191505092915050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560149054906101000a900460ff1681565b6000600254905090565b60008061064e610e0d565b905061065b858285610fe0565b61066685858561106c565b60019150509392505050565b60006012905090565b600760009054906101000a900460ff1681565b60065481565b60008061069f610e0d565b90506106c08185856106b18589610b2a565b6106bb9190611e7b565b610e15565b600191505092915050565b6106d3610e0d565b73ffffffffffffffffffffffffffffffffffffffff166106f1610904565b73ffffffffffffffffffffffffffffffffffffffff1614610747576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073e90611d89565b60405180910390fd5b8060068190555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b610785610e0d565b73ffffffffffffffffffffffffffffffffffffffff166107a3610904565b73ffffffffffffffffffffffffffffffffffffffff16146107f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f090611d89565b60405180910390fd5b61080b336108063061080e565b610a41565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61085e610e0d565b73ffffffffffffffffffffffffffffffffffffffff1661087c610904565b73ffffffffffffffffffffffffffffffffffffffff16146108d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c990611d89565b60405180910390fd5b6108dc6000611370565b565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b653ec1507d500081565b6060600480546109479061203c565b80601f01602080910402602001604051908101604052809291908181526020018280546109739061203c565b80156109c05780601f10610995576101008083540402835291602001916109c0565b820191906000526020600020905b8154815290600101906020018083116109a357829003601f168201915b5050505050905090565b6000806109d5610e0d565b905060006109e38286610b2a565b905083811015610a28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1f90611e09565b60405180910390fd5b610a358286868403610e15565b60019250505092915050565b600080610a4c610e0d565b9050610a5981858561106c565b600191505092915050565b60095481565b610a72610e0d565b73ffffffffffffffffffffffffffffffffffffffff16610a90610904565b73ffffffffffffffffffffffffffffffffffffffff1614610ae6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610add90611d89565b60405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610bb9610e0d565b73ffffffffffffffffffffffffffffffffffffffff16610bd7610904565b73ffffffffffffffffffffffffffffffffffffffff1614610c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2490611d89565b60405180910390fd5b60003390508073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610c78573d6000803e3d6000fd5b5050565b610c84610e0d565b73ffffffffffffffffffffffffffffffffffffffff16610ca2610904565b73ffffffffffffffffffffffffffffffffffffffff1614610cf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cef90611d89565b60405180910390fd5b80600560146101000a81548160ff02191690831515021790555050565b610d1d610e0d565b73ffffffffffffffffffffffffffffffffffffffff16610d3b610904565b73ffffffffffffffffffffffffffffffffffffffff1614610d91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8890611d89565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610e01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df890611d09565b60405180910390fd5b610e0a81611370565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7c90611dc9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ef5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eec90611d29565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610fd39190611e29565b60405180910390a3505050565b6000610fec8484610b2a565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146110665781811015611058576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104f90611d49565b60405180910390fd5b6110658484848403610e15565b5b50505050565b60003073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806110d357503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b90506000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156111825750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b90506000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16149050600082806111e45750815b905060008180156111f3575084155b801561120c5750600760009054906101000a900460ff16155b1561135057600560149054906101000a900460ff16801561127a5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16145b156112f7576006546103e861128d610639565b6112979190611ed1565b6112a19190611f02565b866112ab8961080e565b6112b59190611e7b565b11156112f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ed90611de9565b60405180910390fd5b5b6103e8846113075760095461130b565b6008545b876113169190611f02565b6113209190611ed1565b905061134f88600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611436565b5b611366888883896113619190611f5c565b611436565b5050505050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149d90611da9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611516576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150d90611ce9565b60405180910390fd5b6115218383836116b7565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156115a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159e90611d69565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461163a9190611e7b565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161169e9190611e29565b60405180910390a36116b18484846116bc565b50505050565b505050565b505050565b6000813590506116d08161210c565b92915050565b6000813590506116e581612123565b92915050565b6000813590506116fa8161213a565b92915050565b60006020828403121561171257600080fd5b6000611720848285016116c1565b91505092915050565b6000806040838503121561173c57600080fd5b600061174a858286016116c1565b925050602061175b858286016116c1565b9150509250929050565b60008060006060848603121561177a57600080fd5b6000611788868287016116c1565b9350506020611799868287016116c1565b92505060406117aa868287016116eb565b9150509250925092565b600080604083850312156117c757600080fd5b60006117d5858286016116c1565b92505060206117e6858286016116eb565b9150509250929050565b60006020828403121561180257600080fd5b6000611810848285016116d6565b91505092915050565b60006020828403121561182b57600080fd5b6000611839848285016116eb565b91505092915050565b61184b81611f90565b82525050565b61185a81611fa2565b82525050565b61186981611fe5565b82525050565b600061187a82611e5f565b6118848185611e6a565b9350611894818560208601612009565b61189d816120fb565b840191505092915050565b60006118b5602383611e6a565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061191b602683611e6a565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611981602283611e6a565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006119e7601d83611e6a565b91507f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006000830152602082019050919050565b6000611a27602683611e6a565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611a8d602083611e6a565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b6000611acd602583611e6a565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611b33602483611e6a565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611b99602283611e6a565b91507f506f736974696f6e20776f756c6420657863656564206d617820686f6c64696e60008301527f67730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611bff602583611e6a565b91507f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008301527f207a65726f0000000000000000000000000000000000000000000000000000006020830152604082019050919050565b611c6181611fce565b82525050565b611c7081611fd8565b82525050565b6000602082019050611c8b6000830184611842565b92915050565b6000602082019050611ca66000830184611851565b92915050565b6000602082019050611cc16000830184611860565b92915050565b60006020820190508181036000830152611ce1818461186f565b905092915050565b60006020820190508181036000830152611d02816118a8565b9050919050565b60006020820190508181036000830152611d228161190e565b9050919050565b60006020820190508181036000830152611d4281611974565b9050919050565b60006020820190508181036000830152611d62816119da565b9050919050565b60006020820190508181036000830152611d8281611a1a565b9050919050565b60006020820190508181036000830152611da281611a80565b9050919050565b60006020820190508181036000830152611dc281611ac0565b9050919050565b60006020820190508181036000830152611de281611b26565b9050919050565b60006020820190508181036000830152611e0281611b8c565b9050919050565b60006020820190508181036000830152611e2281611bf2565b9050919050565b6000602082019050611e3e6000830184611c58565b92915050565b6000602082019050611e596000830184611c67565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611e8682611fce565b9150611e9183611fce565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611ec657611ec561206e565b5b828201905092915050565b6000611edc82611fce565b9150611ee783611fce565b925082611ef757611ef661209d565b5b828204905092915050565b6000611f0d82611fce565b9150611f1883611fce565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611f5157611f5061206e565b5b828202905092915050565b6000611f6782611fce565b9150611f7283611fce565b925082821015611f8557611f8461206e565b5b828203905092915050565b6000611f9b82611fae565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000611ff082611ff7565b9050919050565b600061200282611fae565b9050919050565b60005b8381101561202757808201518184015260208101905061200c565b83811115612036576000848401525b50505050565b6000600282049050600182168061205457607f821691505b60208210811415612068576120676120cc565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b61211581611f90565b811461212057600080fd5b50565b61212c81611fa2565b811461213757600080fd5b50565b61214381611fce565b811461214e57600080fd5b5056fea2646970667358221220511863b81147c19eb66e0645a80cc186b0b71ce917fede31ff120b75e24f832964736f6c63430008000033