0x608060405234801561001057600080fd5b50600436106101005760003560e01c80638674c9a5116100975780639ebbaef7116100665780639ebbaef7146102a1578063a4f0d7d0146102bd578063a9059cbb146102c7578063dd62ed3e146102f757610100565b80638674c9a5146102175780638da5cb5b14610247578063956236411461026557806395d89b411461028357610100565b806323b872dd116100d357806323b872dd1461018f578063313ce567146101bf57806370a08231146101dd578063715018a61461020d57610100565b806306fdde0314610105578063095ea7b3146101235780631670590d1461015357806318160ddd14610171575b600080fd5b61010d610327565b60405161011a919061146b565b60405180910390f35b61013d60048036038101906101389190611535565b6103b9565b60405161014a9190611590565b60405180910390f35b61015b6103d7565b60405161016891906115ba565b60405180910390f35b6101796103fd565b60405161018691906115e4565b60405180910390f35b6101a960048036038101906101a491906115ff565b610407565b6040516101b69190611590565b60405180910390f35b6101c76107b1565b6040516101d4919061166e565b60405180910390f35b6101f760048036038101906101f29190611689565b6107c8565b60405161020491906115e4565b60405180910390f35b610215610811565b005b610231600480360381019061022c9190611535565b61094b565b60405161023e9190611590565b60405180910390f35b61024f610a4b565b60405161025c91906115ba565b60405180910390f35b61026d610a74565b60405161027a91906115ba565b60405180910390f35b61028b610a9a565b604051610298919061146b565b60405180910390f35b6102bb60048036038101906102b691906117fe565b610b2c565b005b6102c5610c1e565b005b6102e160048036038101906102dc9190611535565b610dd2565b6040516102ee9190611590565b60405180910390f35b610311600480360381019061030c919061185a565b611178565b60405161031e91906115e4565b60405180910390f35b606060058054610336906118c9565b80601f0160208091040260200160405190810160405280929190818152602001828054610362906118c9565b80156103af5780601f10610384576101008083540402835291602001916103af565b820191906000526020600020905b81548152906001019060200180831161039257829003601f168201915b5050505050905090565b60006103cd6103c66111ff565b8484611207565b6001905092915050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600854905090565b600081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104536111ff565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156104cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104c69061196d565b60405180910390fd5b60006064600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461051e91906119bc565b6105289190611a45565b9050600081846105389190611a76565b905083600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546105899190611a76565b9250508190555080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546105df9190611aaa565b9250508190555083600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106306111ff565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546106799190611a76565b92505081905550816001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546106d19190611aaa565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161073591906115e4565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161079c91906115e4565b60405180910390a36001925050509392505050565b6000600760009054906101000a900460ff16905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108196111ff565b73ffffffffffffffffffffffffffffffffffffffff16610837610a4b565b73ffffffffffffffffffffffffffffffffffffffff161461088d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088490611b4c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000816002600061095a6111ff565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff166109f46111ff565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a3991906115e4565b60405180910390a36001905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060068054610aa9906118c9565b80601f0160208091040260200160405190810160405280929190818152602001828054610ad5906118c9565b8015610b225780601f10610af757610100808354040283529160200191610b22565b820191906000526020600020905b815481529060010190602001808311610b0557829003601f168201915b5050505050905090565b6064811115610b3a57600080fd5b610b426111ff565b73ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b9b57610c1a565b60005b8251811015610c18578160036000858481518110610bbf57610bbe611b6c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508080610c1090611b9b565b915050610b9e565b505b5050565b610c266111ff565b73ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cdc57610c826111ff565b73ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cdb57600080fd5b5b600061d6d8610ce96107b1565b600a610cf59190611d17565b64174876e800610d0591906119bc565b610d0f91906119bc565b90508060016000610d1e6111ff565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610d679190611aaa565b92505081905550610d766111ff565b73ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dcf57600080fd5b50565b60008160016000610de16111ff565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610e5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5490611dd4565b60405180910390fd5b6000606460036000610e6d6111ff565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484610eb391906119bc565b610ebd9190611a45565b905060006064600a5485610ed191906119bc565b610edb9190611a45565b90506000818386610eec9190611a76565b610ef69190611a76565b90508460016000610f056111ff565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f4e9190611a76565b9250508190555080600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610fa49190611aaa565b92505081905550826001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610ffc9190611aaa565b925050819055508573ffffffffffffffffffffffffffffffffffffffff166110226111ff565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161106791906115e4565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff166110906111ff565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516110d591906115e4565b60405180910390a3600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661111e6111ff565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161116391906115e4565b60405180910390a36001935050505092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611277576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126e90611e66565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112de90611ef8565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113c591906115e4565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561140c5780820151818401526020810190506113f1565b8381111561141b576000848401525b50505050565b6000601f19601f8301169050919050565b600061143d826113d2565b61144781856113dd565b93506114578185602086016113ee565b61146081611421565b840191505092915050565b600060208201905081810360008301526114858184611432565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006114cc826114a1565b9050919050565b6114dc816114c1565b81146114e757600080fd5b50565b6000813590506114f9816114d3565b92915050565b6000819050919050565b611512816114ff565b811461151d57600080fd5b50565b60008135905061152f81611509565b92915050565b6000806040838503121561154c5761154b611497565b5b600061155a858286016114ea565b925050602061156b85828601611520565b9150509250929050565b60008115159050919050565b61158a81611575565b82525050565b60006020820190506115a56000830184611581565b92915050565b6115b4816114c1565b82525050565b60006020820190506115cf60008301846115ab565b92915050565b6115de816114ff565b82525050565b60006020820190506115f960008301846115d5565b92915050565b60008060006060848603121561161857611617611497565b5b6000611626868287016114ea565b9350506020611637868287016114ea565b925050604061164886828701611520565b9150509250925092565b600060ff82169050919050565b61166881611652565b82525050565b6000602082019050611683600083018461165f565b92915050565b60006020828403121561169f5761169e611497565b5b60006116ad848285016114ea565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6116f382611421565b810181811067ffffffffffffffff82111715611712576117116116bb565b5b80604052505050565b600061172561148d565b905061173182826116ea565b919050565b600067ffffffffffffffff821115611751576117506116bb565b5b602082029050602081019050919050565b600080fd5b600061177a61177584611736565b61171b565b9050808382526020820190506020840283018581111561179d5761179c611762565b5b835b818110156117c657806117b288826114ea565b84526020840193505060208101905061179f565b5050509392505050565b600082601f8301126117e5576117e46116b6565b5b81356117f5848260208601611767565b91505092915050565b6000806040838503121561181557611814611497565b5b600083013567ffffffffffffffff8111156118335761183261149c565b5b61183f858286016117d0565b925050602061185085828601611520565b9150509250929050565b6000806040838503121561187157611870611497565b5b600061187f858286016114ea565b9250506020611890858286016114ea565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806118e157607f821691505b602082108114156118f5576118f461189a565b5b50919050565b7f5075743a207472616e7366657220616d6f756e74206578636565647320616c6c60008201527f6f77616e63650000000000000000000000000000000000000000000000000000602082015250565b60006119576026836113dd565b9150611962826118fb565b604082019050919050565b600060208201905081810360008301526119868161194a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006119c7826114ff565b91506119d2836114ff565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611a0b57611a0a61198d565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611a50826114ff565b9150611a5b836114ff565b925082611a6b57611a6a611a16565b5b828204905092915050565b6000611a81826114ff565b9150611a8c836114ff565b925082821015611a9f57611a9e61198d565b5b828203905092915050565b6000611ab5826114ff565b9150611ac0836114ff565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611af557611af461198d565b5b828201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611b366020836113dd565b9150611b4182611b00565b602082019050919050565b60006020820190508181036000830152611b6581611b29565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000611ba6826114ff565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611bd957611bd861198d565b5b600182019050919050565b60008160011c9050919050565b6000808291508390505b6001851115611c3b57808604811115611c1757611c1661198d565b5b6001851615611c265780820291505b8081029050611c3485611be4565b9450611bfb565b94509492505050565b600082611c545760019050611d10565b81611c625760009050611d10565b8160018114611c785760028114611c8257611cb1565b6001915050611d10565b60ff841115611c9457611c9361198d565b5b8360020a915084821115611cab57611caa61198d565b5b50611d10565b5060208310610133831016604e8410600b8410161715611ce65782820a905083811115611ce157611ce061198d565b5b611d10565b611cf38484846001611bf1565b92509050818404811115611d0a57611d0961198d565b5b81810290505b9392505050565b6000611d22826114ff565b9150611d2d83611652565b9250611d5a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611c44565b905092915050565b7f5075743a207472616e7366657220616d6f756e7420657863656564732062616c60008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b6000611dbe6024836113dd565b9150611dc982611d62565b604082019050919050565b60006020820190508181036000830152611ded81611db1565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611e506024836113dd565b9150611e5b82611df4565b604082019050919050565b60006020820190508181036000830152611e7f81611e43565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611ee26022836113dd565b9150611eed82611e86565b604082019050919050565b60006020820190508181036000830152611f1181611ed5565b905091905056fea26469706673582212206e5554f77828d69c82d185a6c15069b3523180dfc66251ad0930f96d895912ce64736f6c634300080b0033
0x60806040526000600a5573561a89ae3a2245f05eaf6f19a766cbe009573666600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200006b57600080fd5b50604051620027fb380380620027fb833981810160405281019062000091919062000744565b6000620000a3620003e860201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35084600590805190602001906200015992919062000419565b5083600690805190602001906200017292919062000419565b5081600760006101000a81548160ff021916908360ff1602179055508260088190555080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060085460016000620001ed620003e860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016004600062000241620003f060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000374620003e860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600854604051620003d591906200081b565b60405180910390a350505050506200089d565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b828054620004279062000867565b90600052602060002090601f0160209004810192826200044b576000855562000497565b82601f106200046657805160ff191683800117855562000497565b8280016001018555821562000497579182015b828111156200049657825182559160200191906001019062000479565b5b509050620004a69190620004aa565b5090565b5b80821115620004c5576000816000905550600101620004ab565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200053282620004e7565b810181811067ffffffffffffffff82111715620005545762000553620004f8565b5b80604052505050565b600062000569620004c9565b905062000577828262000527565b919050565b600067ffffffffffffffff8211156200059a5762000599620004f8565b5b620005a582620004e7565b9050602081019050919050565b60005b83811015620005d2578082015181840152602081019050620005b5565b83811115620005e2576000848401525b50505050565b6000620005ff620005f9846200057c565b6200055d565b9050828152602081018484840111156200061e576200061d620004e2565b5b6200062b848285620005b2565b509392505050565b600082601f8301126200064b576200064a620004dd565b5b81516200065d848260208601620005e8565b91505092915050565b6000819050919050565b6200067b8162000666565b81146200068757600080fd5b50565b6000815190506200069b8162000670565b92915050565b600060ff82169050919050565b620006b981620006a1565b8114620006c557600080fd5b50565b600081519050620006d981620006ae565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200070c82620006df565b9050919050565b6200071e81620006ff565b81146200072a57600080fd5b50565b6000815190506200073e8162000713565b92915050565b600080600080600060a08688031215620007635762000762620004d3565b5b600086015167ffffffffffffffff811115620007845762000783620004d8565b5b620007928882890162000633565b955050602086015167ffffffffffffffff811115620007b657620007b5620004d8565b5b620007c48882890162000633565b9450506040620007d7888289016200068a565b9350506060620007ea88828901620006c8565b9250506080620007fd888289016200072d565b9150509295509295909350565b620008158162000666565b82525050565b60006020820190506200083260008301846200080a565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200088057607f821691505b6020821081141562000897576200089662000838565b5b50919050565b611f4e80620008ad6000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c80638674c9a5116100975780639ebbaef7116100665780639ebbaef7146102a1578063a4f0d7d0146102bd578063a9059cbb146102c7578063dd62ed3e146102f757610100565b80638674c9a5146102175780638da5cb5b14610247578063956236411461026557806395d89b411461028357610100565b806323b872dd116100d357806323b872dd1461018f578063313ce567146101bf57806370a08231146101dd578063715018a61461020d57610100565b806306fdde0314610105578063095ea7b3146101235780631670590d1461015357806318160ddd14610171575b600080fd5b61010d610327565b60405161011a919061146b565b60405180910390f35b61013d60048036038101906101389190611535565b6103b9565b60405161014a9190611590565b60405180910390f35b61015b6103d7565b60405161016891906115ba565b60405180910390f35b6101796103fd565b60405161018691906115e4565b60405180910390f35b6101a960048036038101906101a491906115ff565b610407565b6040516101b69190611590565b60405180910390f35b6101c76107b1565b6040516101d4919061166e565b60405180910390f35b6101f760048036038101906101f29190611689565b6107c8565b60405161020491906115e4565b60405180910390f35b610215610811565b005b610231600480360381019061022c9190611535565b61094b565b60405161023e9190611590565b60405180910390f35b61024f610a4b565b60405161025c91906115ba565b60405180910390f35b61026d610a74565b60405161027a91906115ba565b60405180910390f35b61028b610a9a565b604051610298919061146b565b60405180910390f35b6102bb60048036038101906102b691906117fe565b610b2c565b005b6102c5610c1e565b005b6102e160048036038101906102dc9190611535565b610dd2565b6040516102ee9190611590565b60405180910390f35b610311600480360381019061030c919061185a565b611178565b60405161031e91906115e4565b60405180910390f35b606060058054610336906118c9565b80601f0160208091040260200160405190810160405280929190818152602001828054610362906118c9565b80156103af5780601f10610384576101008083540402835291602001916103af565b820191906000526020600020905b81548152906001019060200180831161039257829003601f168201915b5050505050905090565b60006103cd6103c66111ff565b8484611207565b6001905092915050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600854905090565b600081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104536111ff565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156104cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104c69061196d565b60405180910390fd5b60006064600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461051e91906119bc565b6105289190611a45565b9050600081846105389190611a76565b905083600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546105899190611a76565b9250508190555080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546105df9190611aaa565b9250508190555083600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106306111ff565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546106799190611a76565b92505081905550816001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546106d19190611aaa565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161073591906115e4565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161079c91906115e4565b60405180910390a36001925050509392505050565b6000600760009054906101000a900460ff16905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108196111ff565b73ffffffffffffffffffffffffffffffffffffffff16610837610a4b565b73ffffffffffffffffffffffffffffffffffffffff161461088d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088490611b4c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000816002600061095a6111ff565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff166109f46111ff565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a3991906115e4565b60405180910390a36001905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060068054610aa9906118c9565b80601f0160208091040260200160405190810160405280929190818152602001828054610ad5906118c9565b8015610b225780601f10610af757610100808354040283529160200191610b22565b820191906000526020600020905b815481529060010190602001808311610b0557829003601f168201915b5050505050905090565b6064811115610b3a57600080fd5b610b426111ff565b73ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b9b57610c1a565b60005b8251811015610c18578160036000858481518110610bbf57610bbe611b6c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508080610c1090611b9b565b915050610b9e565b505b5050565b610c266111ff565b73ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cdc57610c826111ff565b73ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cdb57600080fd5b5b600061d6d8610ce96107b1565b600a610cf59190611d17565b64174876e800610d0591906119bc565b610d0f91906119bc565b90508060016000610d1e6111ff565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610d679190611aaa565b92505081905550610d766111ff565b73ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dcf57600080fd5b50565b60008160016000610de16111ff565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610e5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5490611dd4565b60405180910390fd5b6000606460036000610e6d6111ff565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484610eb391906119bc565b610ebd9190611a45565b905060006064600a5485610ed191906119bc565b610edb9190611a45565b90506000818386610eec9190611a76565b610ef69190611a76565b90508460016000610f056111ff565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f4e9190611a76565b9250508190555080600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610fa49190611aaa565b92505081905550826001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610ffc9190611aaa565b925050819055508573ffffffffffffffffffffffffffffffffffffffff166110226111ff565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161106791906115e4565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff166110906111ff565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516110d591906115e4565b60405180910390a3600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661111e6111ff565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161116391906115e4565b60405180910390a36001935050505092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611277576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126e90611e66565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112de90611ef8565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113c591906115e4565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561140c5780820151818401526020810190506113f1565b8381111561141b576000848401525b50505050565b6000601f19601f8301169050919050565b600061143d826113d2565b61144781856113dd565b93506114578185602086016113ee565b61146081611421565b840191505092915050565b600060208201905081810360008301526114858184611432565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006114cc826114a1565b9050919050565b6114dc816114c1565b81146114e757600080fd5b50565b6000813590506114f9816114d3565b92915050565b6000819050919050565b611512816114ff565b811461151d57600080fd5b50565b60008135905061152f81611509565b92915050565b6000806040838503121561154c5761154b611497565b5b600061155a858286016114ea565b925050602061156b85828601611520565b9150509250929050565b60008115159050919050565b61158a81611575565b82525050565b60006020820190506115a56000830184611581565b92915050565b6115b4816114c1565b82525050565b60006020820190506115cf60008301846115ab565b92915050565b6115de816114ff565b82525050565b60006020820190506115f960008301846115d5565b92915050565b60008060006060848603121561161857611617611497565b5b6000611626868287016114ea565b9350506020611637868287016114ea565b925050604061164886828701611520565b9150509250925092565b600060ff82169050919050565b61166881611652565b82525050565b6000602082019050611683600083018461165f565b92915050565b60006020828403121561169f5761169e611497565b5b60006116ad848285016114ea565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6116f382611421565b810181811067ffffffffffffffff82111715611712576117116116bb565b5b80604052505050565b600061172561148d565b905061173182826116ea565b919050565b600067ffffffffffffffff821115611751576117506116bb565b5b602082029050602081019050919050565b600080fd5b600061177a61177584611736565b61171b565b9050808382526020820190506020840283018581111561179d5761179c611762565b5b835b818110156117c657806117b288826114ea565b84526020840193505060208101905061179f565b5050509392505050565b600082601f8301126117e5576117e46116b6565b5b81356117f5848260208601611767565b91505092915050565b6000806040838503121561181557611814611497565b5b600083013567ffffffffffffffff8111156118335761183261149c565b5b61183f858286016117d0565b925050602061185085828601611520565b9150509250929050565b6000806040838503121561187157611870611497565b5b600061187f858286016114ea565b9250506020611890858286016114ea565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806118e157607f821691505b602082108114156118f5576118f461189a565b5b50919050565b7f5075743a207472616e7366657220616d6f756e74206578636565647320616c6c60008201527f6f77616e63650000000000000000000000000000000000000000000000000000602082015250565b60006119576026836113dd565b9150611962826118fb565b604082019050919050565b600060208201905081810360008301526119868161194a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006119c7826114ff565b91506119d2836114ff565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611a0b57611a0a61198d565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611a50826114ff565b9150611a5b836114ff565b925082611a6b57611a6a611a16565b5b828204905092915050565b6000611a81826114ff565b9150611a8c836114ff565b925082821015611a9f57611a9e61198d565b5b828203905092915050565b6000611ab5826114ff565b9150611ac0836114ff565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611af557611af461198d565b5b828201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611b366020836113dd565b9150611b4182611b00565b602082019050919050565b60006020820190508181036000830152611b6581611b29565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000611ba6826114ff565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611bd957611bd861198d565b5b600182019050919050565b60008160011c9050919050565b6000808291508390505b6001851115611c3b57808604811115611c1757611c1661198d565b5b6001851615611c265780820291505b8081029050611c3485611be4565b9450611bfb565b94509492505050565b600082611c545760019050611d10565b81611c625760009050611d10565b8160018114611c785760028114611c8257611cb1565b6001915050611d10565b60ff841115611c9457611c9361198d565b5b8360020a915084821115611cab57611caa61198d565b5b50611d10565b5060208310610133831016604e8410600b8410161715611ce65782820a905083811115611ce157611ce061198d565b5b611d10565b611cf38484846001611bf1565b92509050818404811115611d0a57611d0961198d565b5b81810290505b9392505050565b6000611d22826114ff565b9150611d2d83611652565b9250611d5a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611c44565b905092915050565b7f5075743a207472616e7366657220616d6f756e7420657863656564732062616c60008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b6000611dbe6024836113dd565b9150611dc982611d62565b604082019050919050565b60006020820190508181036000830152611ded81611db1565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611e506024836113dd565b9150611e5b82611df4565b604082019050919050565b60006020820190508181036000830152611e7f81611e43565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611ee26022836113dd565b9150611eed82611e86565b604082019050919050565b60006020820190508181036000830152611f1181611ed5565b905091905056fea26469706673582212206e5554f77828d69c82d185a6c15069b3523180dfc66251ad0930f96d895912ce64736f6c634300080b003300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000ef2273c1b08000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000561a89ae3a2245f05eaf6f19a766cbe009573666000000000000000000000000000000000000000000000000000000000000000a425245545420434f494e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000054252455454000000000000000000000000000000000000000000000000000000