60806040523480156200001157600080fd5b5062000032620000266200016560201b60201c565b6200016d60201b60201c565b6012600a620000429190620003cb565b6305f5e1006200005391906200041c565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a620000f69190620003cb565b6305f5e1006200010791906200041c565b60405162000116919062000478565b60405180910390a333600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000495565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620002bf5780860481111562000297576200029662000231565b5b6001851615620002a75780820291505b8081029050620002b78562000260565b945062000277565b94509492505050565b600082620002da5760019050620003ad565b81620002ea5760009050620003ad565b81600181146200030357600281146200030e5762000344565b6001915050620003ad565b60ff84111562000323576200032262000231565b5b8360020a9150848211156200033d576200033c62000231565b5b50620003ad565b5060208310610133831016604e8410600b84101617156200037e5782820a90508381111562000378576200037762000231565b5b620003ad565b6200038d84848460016200026d565b92509050818404811115620003a757620003a662000231565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620003d882620003b4565b9150620003e583620003be565b9250620004147fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620002c8565b905092915050565b60006200042982620003b4565b91506200043683620003b4565b92508282026200044681620003b4565b9150828204841483151762000460576200045f62000231565b5b5092915050565b6200047281620003b4565b82525050565b60006020820190506200048f600083018462000467565b92915050565b6115e680620004a56000396000f3fe6080604052600436106100ab5760003560e01c8063715018a611610064578063715018a6146101ec5780638da5cb5b1461020357806395d89b411461022e578063a9059cbb14610259578063dd62ed3e14610296578063f2fde38b146102d3576100b2565b806306fdde03146100b4578063095ea7b3146100df57806318160ddd1461011c57806323b872dd14610147578063313ce5671461018457806370a08231146101af576100b2565b366100b257005b005b3480156100c057600080fd5b506100c96102fc565b6040516100d69190610ccd565b60405180910390f35b3480156100eb57600080fd5b5061010660048036038101906101019190610d88565b610339565b6040516101139190610de3565b60405180910390f35b34801561012857600080fd5b5061013161035c565b60405161013e9190610e0d565b60405180910390f35b34801561015357600080fd5b5061016e60048036038101906101699190610e28565b610380565b60405161017b9190610de3565b60405180910390f35b34801561019057600080fd5b506101996103af565b6040516101a69190610e97565b60405180910390f35b3480156101bb57600080fd5b506101d660048036038101906101d19190610eb2565b6103b8565b6040516101e39190610e0d565b60405180910390f35b3480156101f857600080fd5b50610201610401565b005b34801561020f57600080fd5b50610218610489565b6040516102259190610eee565b60405180910390f35b34801561023a57600080fd5b506102436104b2565b6040516102509190610ccd565b60405180910390f35b34801561026557600080fd5b50610280600480360381019061027b9190610d88565b6104ef565b60405161028d9190610de3565b60405180910390f35b3480156102a257600080fd5b506102bd60048036038101906102b89190610f09565b610512565b6040516102ca9190610e0d565b60405180910390f35b3480156102df57600080fd5b506102fa60048036038101906102f59190610eb2565b610599565b005b60606040518060400160405280601a81526020017f424f4f535420616e64204e4f542061204675636b696e67204850000000000000815250905090565b600080610344610690565b9050610351818585610698565b600191505092915050565b60006012600a61036c91906110ab565b6305f5e10061037b91906110f6565b905090565b60008061038b610690565b9050610398858285610861565b6103a38585856108ed565b60019150509392505050565b60006012905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610409610690565b73ffffffffffffffffffffffffffffffffffffffff16610427610489565b73ffffffffffffffffffffffffffffffffffffffff161461047d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047490611184565b60405180910390fd5b6104876000610b6f565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f424f4f5354000000000000000000000000000000000000000000000000000000815250905090565b6000806104fa610690565b90506105078185856108ed565b600191505092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6105a1610690565b73ffffffffffffffffffffffffffffffffffffffff166105bf610489565b73ffffffffffffffffffffffffffffffffffffffff1614610615576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060c90611184565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610684576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067b90611216565b60405180910390fd5b61068d81610b6f565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610707576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fe906112a8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610776576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076d9061133a565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516108549190610e0d565b60405180910390a3505050565b600061086d8484610512565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146108e757818110156108d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d0906113a6565b60405180910390fd5b6108e68484848403610698565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361095c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095390611438565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c2906114ca565b60405180910390fd5b6109d6838383610c33565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610a5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a549061155c565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610af2919061157c565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610b569190610e0d565b60405180910390a3610b69848484610c38565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610c77578082015181840152602081019050610c5c565b60008484015250505050565b6000601f19601f8301169050919050565b6000610c9f82610c3d565b610ca98185610c48565b9350610cb9818560208601610c59565b610cc281610c83565b840191505092915050565b60006020820190508181036000830152610ce78184610c94565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610d1f82610cf4565b9050919050565b610d2f81610d14565b8114610d3a57600080fd5b50565b600081359050610d4c81610d26565b92915050565b6000819050919050565b610d6581610d52565b8114610d7057600080fd5b50565b600081359050610d8281610d5c565b92915050565b60008060408385031215610d9f57610d9e610cef565b5b6000610dad85828601610d3d565b9250506020610dbe85828601610d73565b9150509250929050565b60008115159050919050565b610ddd81610dc8565b82525050565b6000602082019050610df86000830184610dd4565b92915050565b610e0781610d52565b82525050565b6000602082019050610e226000830184610dfe565b92915050565b600080600060608486031215610e4157610e40610cef565b5b6000610e4f86828701610d3d565b9350506020610e6086828701610d3d565b9250506040610e7186828701610d73565b9150509250925092565b600060ff82169050919050565b610e9181610e7b565b82525050565b6000602082019050610eac6000830184610e88565b92915050565b600060208284031215610ec857610ec7610cef565b5b6000610ed684828501610d3d565b91505092915050565b610ee881610d14565b82525050565b6000602082019050610f036000830184610edf565b92915050565b60008060408385031215610f2057610f1f610cef565b5b6000610f2e85828601610d3d565b9250506020610f3f85828601610d3d565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115610fcf57808604811115610fab57610faa610f49565b5b6001851615610fba5780820291505b8081029050610fc885610f78565b9450610f8f565b94509492505050565b600082610fe857600190506110a4565b81610ff657600090506110a4565b816001811461100c576002811461101657611045565b60019150506110a4565b60ff84111561102857611027610f49565b5b8360020a91508482111561103f5761103e610f49565b5b506110a4565b5060208310610133831016604e8410600b841016171561107a5782820a90508381111561107557611074610f49565b5b6110a4565b6110878484846001610f85565b9250905081840481111561109e5761109d610f49565b5b81810290505b9392505050565b60006110b682610d52565b91506110c183610e7b565b92506110ee7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610fd8565b905092915050565b600061110182610d52565b915061110c83610d52565b925082820261111a81610d52565b9150828204841483151761113157611130610f49565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061116e602083610c48565b915061117982611138565b602082019050919050565b6000602082019050818103600083015261119d81611161565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611200602683610c48565b915061120b826111a4565b604082019050919050565b6000602082019050818103600083015261122f816111f3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611292602483610c48565b915061129d82611236565b604082019050919050565b600060208201905081810360008301526112c181611285565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611324602283610c48565b915061132f826112c8565b604082019050919050565b6000602082019050818103600083015261135381611317565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611390601d83610c48565b915061139b8261135a565b602082019050919050565b600060208201905081810360008301526113bf81611383565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611422602583610c48565b915061142d826113c6565b604082019050919050565b6000602082019050818103600083015261145181611415565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006114b4602383610c48565b91506114bf82611458565b604082019050919050565b600060208201905081810360008301526114e3816114a7565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000611546602683610c48565b9150611551826114ea565b604082019050919050565b6000602082019050818103600083015261157581611539565b9050919050565b600061158782610d52565b915061159283610d52565b92508282019050808211156115aa576115a9610f49565b5b9291505056fea2646970667358221220a0f30bebbeffb06956cb0b52be58bcd40d8b44b97a3aefb2618bf6b4badadb6764736f6c63430008130033