0x60806040526040518060400160405280601181526020017f4752414e4144412047524f554e445320580000000000000000000000000000008152506001908161004891906103af565b506040518060400160405280600381526020017f47675800000000000000000000000000000000000000000000000000000000008152506002908161008d91906103af565b50601260035f6101000a81548160ff021916908360ff1602179055506c0c9f2c9cd04674edea400000006004553480156100c5575f80fd5b506004545f803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600454604051610168919061048d565b60405180910390a36104a6565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806101f057607f821691505b602082108103610203576102026101ac565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026102657fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261022a565b61026f868361022a565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6102b36102ae6102a984610287565b610290565b610287565b9050919050565b5f819050919050565b6102cc83610299565b6102e06102d8826102ba565b848454610236565b825550505050565b5f90565b6102f46102e8565b6102ff8184846102c3565b505050565b5b81811015610322576103175f826102ec565b600181019050610305565b5050565b601f8211156103675761033881610209565b6103418461021b565b81016020851015610350578190505b61036461035c8561021b565b830182610304565b50505b505050565b5f82821c905092915050565b5f6103875f198460080261036c565b1980831691505092915050565b5f61039f8383610378565b9150826002028217905092915050565b6103b882610175565b67ffffffffffffffff8111156103d1576103d061017f565b5b6103db82546101d9565b6103e6828285610326565b5f60209050601f831160018114610417575f8415610405578287015190505b61040f8582610394565b865550610476565b601f19841661042586610209565b5f5b8281101561044c57848901518255600182019150602085019450602081019050610427565b868310156104695784890151610465601f891682610378565b8355505b6001600288020188555050505b505050505050565b61048781610287565b82525050565b5f6020820190506104a05f83018461047e565b92915050565b610ec1806104b35f395ff3fe608060405234801561000f575f80fd5b50600436106100a7575f3560e01c8063313ce5671161006f578063313ce5671461017757806370a082311461019557806395d89b41146101c5578063a9059cbb146101e3578063dd62ed3e14610213578063f8b2cb4f14610243576100a7565b806306fdde03146100ab578063095ea7b3146100c95780630f27b749146100f957806318160ddd1461012957806323b872dd14610147575b5f80fd5b6100b3610273565b6040516100c09190610a2c565b60405180910390f35b6100e360048036038101906100de9190610add565b6102ff565b6040516100f09190610b35565b60405180910390f35b610113600480360381019061010e9190610b4e565b6103ec565b6040516101209190610b9b565b60405180910390f35b61013161040c565b60405161013e9190610b9b565b60405180910390f35b610161600480360381019061015c9190610bb4565b610412565b60405161016e9190610b35565b60405180910390f35b61017f61072b565b60405161018c9190610c1f565b60405180910390f35b6101af60048036038101906101aa9190610c38565b61073d565b6040516101bc9190610b9b565b60405180910390f35b6101cd610751565b6040516101da9190610a2c565b60405180910390f35b6101fd60048036038101906101f89190610add565b6107dd565b60405161020a9190610b35565b60405180910390f35b61022d60048036038101906102289190610b4e565b610970565b60405161023a9190610b9b565b60405180910390f35b61025d60048036038101906102589190610c38565b610977565b60405161026a9190610b9b565b60405180910390f35b6001805461028090610c90565b80601f01602080910402602001604051908101604052809291908181526020018280546102ac90610c90565b80156102f75780601f106102ce576101008083540402835291602001916102f7565b820191905f5260205f20905b8154815290600101906020018083116102da57829003601f168201915b505050505081565b5f8160055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516103da9190610b9b565b60405180910390a36001905092915050565b6005602052815f5260405f20602052805f5260405f205f91509150505481565b60045481565b5f8160055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410156104ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104c590610d0a565b60405180910390fd5b8160055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610589576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058090610d72565b60405180910390fd5b815f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546105d49190610dbd565b92505081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546106269190610df0565b925050819055508160055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546106b49190610dbd565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516107189190610b9b565b60405180910390a3600190509392505050565b60035f9054906101000a900460ff1681565b5f602052805f5260405f205f915090505481565b6002805461075e90610c90565b80601f016020809104026020016040519081016040528092919081815260200182805461078a90610c90565b80156107d55780601f106107ac576101008083540402835291602001916107d5565b820191905f5260205f20905b8154815290600101906020018083116107b857829003601f168201915b505050505081565b5f815f803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054101561085d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085490610e6d565b60405180910390fd5b815f803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546108a89190610dbd565b92505081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546108fa9190610df0565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161095e9190610b9b565b60405180910390a36001905092915050565b5f92915050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6109fe826109bc565b610a0881856109c6565b9350610a188185602086016109d6565b610a21816109e4565b840191505092915050565b5f6020820190508181035f830152610a4481846109f4565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610a7982610a50565b9050919050565b610a8981610a6f565b8114610a93575f80fd5b50565b5f81359050610aa481610a80565b92915050565b5f819050919050565b610abc81610aaa565b8114610ac6575f80fd5b50565b5f81359050610ad781610ab3565b92915050565b5f8060408385031215610af357610af2610a4c565b5b5f610b0085828601610a96565b9250506020610b1185828601610ac9565b9150509250929050565b5f8115159050919050565b610b2f81610b1b565b82525050565b5f602082019050610b485f830184610b26565b92915050565b5f8060408385031215610b6457610b63610a4c565b5b5f610b7185828601610a96565b9250506020610b8285828601610a96565b9150509250929050565b610b9581610aaa565b82525050565b5f602082019050610bae5f830184610b8c565b92915050565b5f805f60608486031215610bcb57610bca610a4c565b5b5f610bd886828701610a96565b9350506020610be986828701610a96565b9250506040610bfa86828701610ac9565b9150509250925092565b5f60ff82169050919050565b610c1981610c04565b82525050565b5f602082019050610c325f830184610c10565b92915050565b5f60208284031215610c4d57610c4c610a4c565b5b5f610c5a84828501610a96565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610ca757607f821691505b602082108103610cba57610cb9610c63565b5b50919050565b7f4e6f7420617070726f76656420746f207472616e7366657200000000000000005f82015250565b5f610cf46018836109c6565b9150610cff82610cc0565b602082019050919050565b5f6020820190508181035f830152610d2181610ce8565b9050919050565b7f4e6f7420456e6f75676820436f696e7320746f207472616e73666572000000005f82015250565b5f610d5c601c836109c6565b9150610d6782610d28565b602082019050919050565b5f6020820190508181035f830152610d8981610d50565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610dc782610aaa565b9150610dd283610aaa565b9250828203905081811115610dea57610de9610d90565b5b92915050565b5f610dfa82610aaa565b9150610e0583610aaa565b9250828201905080821115610e1d57610e1c610d90565b5b92915050565b7f4e6f7420456e6f75676820436f696e7320546f205472616e736665722e0000005f82015250565b5f610e57601d836109c6565b9150610e6282610e23565b602082019050919050565b5f6020820190508181035f830152610e8481610e4b565b905091905056fea26469706673582212204eb9180e7b06f6c852bb6350940cc0bd86a247fecdb9a37b2efd94ee9f5d348864736f6c634300081a0033