0x6080604052348015600e575f80fd5b50610f498061001c5f395ff3fe60806040526004361061006f575f3560e01c8063a6aa57ce1161004d578063a6aa57ce14610105578063aa452fa614610121578063ab7b1c8914610149578063e1ec3c68146101655761006f565b806327e235e3146100735780633ccfd60b146100af578063504006ca146100c5575b5f80fd5b34801561007e575f80fd5b5061009960048036038101906100949190610a76565b6101a5565b6040516100a69190610ab9565b60405180910390f35b3480156100ba575f80fd5b506100c36101ba565b005b3480156100d0575f80fd5b506100eb60048036038101906100e69190610afc565b6102c6565b6040516100fc959493929190610b50565b60405180910390f35b61011f600480360381019061011a9190610afc565b610364565b005b34801561012c575f80fd5b5061014760048036038101906101429190610ba1565b6105a9565b005b610163600480360381019061015e9190610afc565b6106e9565b005b348015610170575f80fd5b5061018b60048036038101906101869190610afc565b61098d565b60405161019c959493929190610b50565b60405180910390f35b6001602052805f5260405f205f915090505481565b5f60015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f811161023d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023490610c39565b60405180910390fd5b5f60015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156102c2573d5f803e3d5ffd5b5050565b5f805f805f805f87815481106102df576102de610c57565b5b905f5260205f2090600402019050805f01548160010154826002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836003015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168460030160149054906101000a900460ff16955095509550955095505091939590929450565b5f80828154811061037857610377610c57565b5b905f5260205f209060040201905034815f0154146103cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c290610cce565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff16816003015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461045c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161045390610d36565b60405180910390fd5b33816003015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503460015f836002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461050d9190610d81565b925050819055503373ffffffffffffffffffffffffffffffffffffffff16816002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4ff1bde1d2bfa65462ed9c225b57b8446fe13abb1e46a9aa6161768bf59ed6d7835f0154846001015460405161059d929190610db4565b60405180910390a35050565b5f6040518060a001604052808481526020018381526020013373ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f1515815250908060018154018082558091505060019003905f5260205f2090600402015f909190919091505f820151815f0155602082015181600101556040820151816002015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506060820151816003015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160030160146101000a81548160ff02191690831515021790555050505050565b5f8082815481106106fd576106fc610c57565b5b905f5260205f20906004020190503373ffffffffffffffffffffffffffffffffffffffff16816002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461079c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079390610e25565b60405180910390fd5b8060030160149054906101000a900460ff16156107ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e590610e8d565b60405180910390fd5b8060010154815f01546108019190610d81565b3414610842576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083990610ef5565b60405180910390fd5b60018160030160146101000a81548160ff0219169083151502179055503460015f836003015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546108ce9190610d81565b92505081905550806003015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fa6f6d5e50bc84f153a0d6a9f9b37780433f92dc32d7e10f975ab3831c36898fa835f01548460010154604051610981929190610db4565b60405180910390a35050565b5f818154811061099b575f80fd5b905f5260205f2090600402015f91509050805f015490806001015490806002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806003015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030160149054906101000a900460ff16905085565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610a4582610a1c565b9050919050565b610a5581610a3b565b8114610a5f575f80fd5b50565b5f81359050610a7081610a4c565b92915050565b5f60208284031215610a8b57610a8a610a18565b5b5f610a9884828501610a62565b91505092915050565b5f819050919050565b610ab381610aa1565b82525050565b5f602082019050610acc5f830184610aaa565b92915050565b610adb81610aa1565b8114610ae5575f80fd5b50565b5f81359050610af681610ad2565b92915050565b5f60208284031215610b1157610b10610a18565b5b5f610b1e84828501610ae8565b91505092915050565b610b3081610a3b565b82525050565b5f8115159050919050565b610b4a81610b36565b82525050565b5f60a082019050610b635f830188610aaa565b610b706020830187610aaa565b610b7d6040830186610b27565b610b8a6060830185610b27565b610b976080830184610b41565b9695505050505050565b5f8060408385031215610bb757610bb6610a18565b5b5f610bc485828601610ae8565b9250506020610bd585828601610ae8565b9150509250929050565b5f82825260208201905092915050565b7f4e6f2066756e647320746f2077697468647261770000000000000000000000005f82015250565b5f610c23601483610bdf565b9150610c2e82610bef565b602082019050919050565b5f6020820190508181035f830152610c5081610c17565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f496e636f7272656374206c6f616e20616d6f756e7400000000000000000000005f82015250565b5f610cb8601583610bdf565b9150610cc382610c84565b602082019050919050565b5f6020820190508181035f830152610ce581610cac565b9050919050565b7f4c6f616e20616c72656164792066756e646564000000000000000000000000005f82015250565b5f610d20601383610bdf565b9150610d2b82610cec565b602082019050919050565b5f6020820190508181035f830152610d4d81610d14565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610d8b82610aa1565b9150610d9683610aa1565b9250828201905080821115610dae57610dad610d54565b5b92915050565b5f604082019050610dc75f830185610aaa565b610dd46020830184610aaa565b9392505050565b7f4f6e6c7920626f72726f7765722063616e2072657061790000000000000000005f82015250565b5f610e0f601783610bdf565b9150610e1a82610ddb565b602082019050919050565b5f6020820190508181035f830152610e3c81610e03565b9050919050565b7f4c6f616e20616c726561647920726570616964000000000000000000000000005f82015250565b5f610e77601383610bdf565b9150610e8282610e43565b602082019050919050565b5f6020820190508181035f830152610ea481610e6b565b9050919050565b7f496e636f72726563742072657061796d656e7420616d6f756e740000000000005f82015250565b5f610edf601a83610bdf565b9150610eea82610eab565b602082019050919050565b5f6020820190508181035f830152610f0c81610ed3565b905091905056fea2646970667358221220f4e98e3c2343dc7e7276163175f472c82742573d5893ab07f8f2f1faed2fedd664736f6c634300081a0033