60806040526040518060400160405280601081526020017f42617262656e6865696d657220322e3000000000000000000000000000000000815250600190816200004a91906200064d565b50600960065f6101000a81548160ff021916908360ff16021790555060746007556040518060400160405280601081526020017f42617262656e6865696d657220322e300000000000000000000000000000000081525060099081620000b191906200064d565b50670de0b6b3a7640000600a55348015620000ca575f80fd5b5060405162001898380380620018988339818101604052810190620000f0919062000796565b5f62000101620003e260201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600a5460045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060075460055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000287573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002ad919062000796565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000313573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000339919062000796565b6040518363ffffffff1660e01b815260040162000358929190620007d7565b6020604051808303815f875af115801562000375573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200039b919062000796565b60025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505062000802565b5f33905090565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200046557607f821691505b6020821081036200047b576200047a62000420565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620004df7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620004a2565b620004eb8683620004a2565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620005356200052f620005298462000503565b6200050c565b62000503565b9050919050565b5f819050919050565b620005508362000515565b620005686200055f826200053c565b848454620004ae565b825550505050565b5f90565b6200057e62000570565b6200058b81848462000545565b505050565b5b81811015620005b257620005a65f8262000574565b60018101905062000591565b5050565b601f8211156200060157620005cb8162000481565b620005d68462000493565b81016020851015620005e6578190505b620005fe620005f58562000493565b83018262000590565b50505b505050565b5f82821c905092915050565b5f620006235f198460080262000606565b1980831691505092915050565b5f6200063d838362000612565b9150826002028217905092915050565b6200065882620003e9565b67ffffffffffffffff811115620006745762000673620003f3565b5b6200068082546200044d565b6200068d828285620005b6565b5f60209050601f831160018114620006c3575f8415620006ae578287015190505b620006ba858262000630565b86555062000729565b601f198416620006d38662000481565b5f5b82811015620006fc57848901518255600182019150602085019450602081019050620006d5565b868310156200071c578489015162000718601f89168262000612565b8355505b6001600288020188555050505b505050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620007608262000735565b9050919050565b620007728162000754565b81146200077d575f80fd5b50565b5f81519050620007908162000767565b92915050565b5f60208284031215620007ae57620007ad62000731565b5b5f620007bd8482850162000780565b91505092915050565b620007d18162000754565b82525050565b5f604082019050620007ec5f830185620007c6565b620007fb6020830184620007c6565b9392505050565b61108880620008105f395ff3fe608060405234801561000f575f80fd5b50600436106100cd575f3560e01c806370a082311161008a57806395d89b411161006457806395d89b4114610201578063a9059cbb1461021f578063dd62ed3e1461024f578063f2fde38b1461027f576100cd565b806370a08231146101a9578063715018a6146101d95780638da5cb5b146101e3576100cd565b806306fdde03146100d1578063095ea7b3146100ef57806318160ddd1461011f57806323b872dd1461013d578063313ce5671461016d5780634dfa52371461018b575b5f80fd5b6100d961029b565b6040516100e69190610c0d565b60405180910390f35b61010960048036038101906101049190610cbe565b610327565b6040516101169190610d16565b60405180910390f35b610127610414565b6040516101349190610d3e565b60405180910390f35b61015760048036038101906101529190610d57565b61041a565b6040516101649190610d16565b60405180910390f35b610175610543565b6040516101829190610dc2565b60405180910390f35b610193610555565b6040516101a09190610dea565b60405180910390f35b6101c360048036038101906101be9190610e03565b61057a565b6040516101d09190610d3e565b60405180910390f35b6101e161058f565b005b6101eb6106dd565b6040516101f89190610dea565b60405180910390f35b610209610704565b6040516102169190610c0d565b60405180910390f35b61023960048036038101906102349190610cbe565b610790565b6040516102469190610d16565b60405180910390f35b61026960048036038101906102649190610e2e565b6107a6565b6040516102769190610d3e565b60405180910390f35b61029960048036038101906102949190610e03565b6107c6565b005b600180546102a890610e99565b80601f01602080910402602001604051908101604052809291908181526020018280546102d490610e99565b801561031f5780601f106102f65761010080835404028352916020019161031f565b820191905f5260205f20905b81548152906001019060200180831161030257829003601f168201915b505050505081565b5f8160085f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516104029190610d3e565b60405180910390a36001905092915050565b600a5481565b5f60085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205482111561049f575f80fd5b8160085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546105269190610ef6565b92505081905550610538848484610983565b600190509392505050565b60065f9054906101000a900460ff1681565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6004602052805f5260405f205f915090505481565b610597610b7c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610623576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061a90610f73565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6009805461071190610e99565b80601f016020809104026020016040519081016040528092919081815260200182805461073d90610e99565b80156107885780601f1061075f57610100808354040283529160200191610788565b820191905f5260205f20905b81548152906001019060200180831161076b57829003601f168201915b505050505081565b5f61079c338484610983565b6001905092915050565b6008602052815f5260405f20602052805f5260405f205f91509150505481565b6107ce610b7c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461085a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085190610f73565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036108c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108bf90611001565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20545f03610a1b578060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610a139190610ef6565b925050819055505b8060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610a67919061101f565b92505081905550805f148015610aca575060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15610b12578060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610b6f9190610d3e565b60405180910390a3505050565b5f33905090565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610bba578082015181840152602081019050610b9f565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610bdf82610b83565b610be98185610b8d565b9350610bf9818560208601610b9d565b610c0281610bc5565b840191505092915050565b5f6020820190508181035f830152610c258184610bd5565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610c5a82610c31565b9050919050565b610c6a81610c50565b8114610c74575f80fd5b50565b5f81359050610c8581610c61565b92915050565b5f819050919050565b610c9d81610c8b565b8114610ca7575f80fd5b50565b5f81359050610cb881610c94565b92915050565b5f8060408385031215610cd457610cd3610c2d565b5b5f610ce185828601610c77565b9250506020610cf285828601610caa565b9150509250929050565b5f8115159050919050565b610d1081610cfc565b82525050565b5f602082019050610d295f830184610d07565b92915050565b610d3881610c8b565b82525050565b5f602082019050610d515f830184610d2f565b92915050565b5f805f60608486031215610d6e57610d6d610c2d565b5b5f610d7b86828701610c77565b9350506020610d8c86828701610c77565b9250506040610d9d86828701610caa565b9150509250925092565b5f60ff82169050919050565b610dbc81610da7565b82525050565b5f602082019050610dd55f830184610db3565b92915050565b610de481610c50565b82525050565b5f602082019050610dfd5f830184610ddb565b92915050565b5f60208284031215610e1857610e17610c2d565b5b5f610e2584828501610c77565b91505092915050565b5f8060408385031215610e4457610e43610c2d565b5b5f610e5185828601610c77565b9250506020610e6285828601610c77565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610eb057607f821691505b602082108103610ec357610ec2610e6c565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610f0082610c8b565b9150610f0b83610c8b565b9250828203905081811115610f2357610f22610ec9565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f610f5d602083610b8d565b9150610f6882610f29565b602082019050919050565b5f6020820190508181035f830152610f8a81610f51565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f610feb602683610b8d565b9150610ff682610f91565b604082019050919050565b5f6020820190508181035f83015261101881610fdf565b9050919050565b5f61102982610c8b565b915061103483610c8b565b925082820190508082111561104c5761104b610ec9565b5b9291505056fea26469706673582212209d1166410e9b8a79885cb21549ec56c2b5a5c32514340f4af613b6e86257e0a564736f6c634300081500330000000000000000000000006f6f7d3f37f52f2c048ca527bdd0be21bed23893