60806040525f60025573bb2a56543df6d2070cfb6a68f8e16bf5b2237a2e60035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f600360146101000a81548160ff02191690831515021790555034801562000082575f80fd5b5060405162000f8f38038062000f8f8339818101604052810190620000a8919062000258565b815f9081620000b8919062000512565b508060019081620000ca919062000512565b505050620005f6565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6200013482620000ec565b810181811067ffffffffffffffff82111715620001565762000155620000fc565b5b80604052505050565b5f6200016a620000d3565b905062000178828262000129565b919050565b5f67ffffffffffffffff8211156200019a5762000199620000fc565b5b620001a582620000ec565b9050602081019050919050565b5f5b83811015620001d1578082015181840152602081019050620001b4565b5f8484015250505050565b5f620001f2620001ec846200017d565b6200015f565b905082815260208101848484011115620002115762000210620000e8565b5b6200021e848285620001b2565b509392505050565b5f82601f8301126200023d576200023c620000e4565b5b81516200024f848260208601620001dc565b91505092915050565b5f8060408385031215620002715762000270620000dc565b5b5f83015167ffffffffffffffff811115620002915762000290620000e0565b5b6200029f8582860162000226565b925050602083015167ffffffffffffffff811115620002c357620002c2620000e0565b5b620002d18582860162000226565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200032a57607f821691505b60208210810362000340576200033f620002e5565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620003a47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000367565b620003b0868362000367565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620003fa620003f4620003ee84620003c8565b620003d1565b620003c8565b9050919050565b5f819050919050565b6200041583620003da565b6200042d620004248262000401565b84845462000373565b825550505050565b5f90565b6200044362000435565b620004508184846200040a565b505050565b5b8181101562000477576200046b5f8262000439565b60018101905062000456565b5050565b601f821115620004c657620004908162000346565b6200049b8462000358565b81016020851015620004ab578190505b620004c3620004ba8562000358565b83018262000455565b50505b505050565b5f82821c905092915050565b5f620004e85f1984600802620004cb565b1980831691505092915050565b5f620005028383620004d7565b9150826002028217905092915050565b6200051d82620002db565b67ffffffffffffffff811115620005395762000538620000fc565b5b62000545825462000312565b620005528282856200047b565b5f60209050601f83116001811462000588575f841562000573578287015190505b6200057f8582620004f5565b865550620005ee565b601f198416620005988662000346565b5f5b82811015620005c1578489015182556001820191506020850194506020810190506200059a565b86831015620005e15784890151620005dd601f891682620004d7565b8355505b6001600288020188555050505b505050505050565b61098b80620006045f395ff3fe608060405234801561000f575f80fd5b5060043610610086575f3560e01c80636a627842116100595780636a627842146100ec57806370a082311461010857806395d89b4114610138578063ea66696c1461015657610086565b806306fdde031461008a578063313ce567146100a857806344df8e70146100c65780635347b40a146100d0575b5f80fd5b610092610172565b60405161009f9190610591565b60405180910390f35b6100b0610201565b6040516100bd91906105cc565b60405180910390f35b6100ce610209565b005b6100ea60048036038101906100e591906107c3565b610226565b005b6101066004803603810190610101919061081d565b6102ea565b005b610122600480360381019061011d919061081d565b610357565b60405161012f9190610857565b60405180910390f35b6101406103d4565b60405161014d9190610591565b60405180910390f35b610170600480360381019061016b91906107c3565b610464565b005b60605f80546101809061089d565b80601f01602080910402602001604051908101604052809291908181526020018280546101ac9061089d565b80156101f75780601f106101ce576101008083540402835291602001916101f7565b820191905f5260205f20905b8154815290600101906020018083116101da57829003601f168201915b5050505050905090565b5f6001905090565b6001600360146101000a81548160ff021916908315150217905550565b806002819055505f5b82518110156102e55782818151811061024b5761024a6108cd565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1660035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516102d09190610857565b60405180910390a3808060010191505061022f565b505050565b8073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef64e8d4a5100060405161034c919061093c565b60405180910390a350565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806103bf5750600360149054906101000a900460ff165b6103cb576002546103cd565b5f5b9050919050565b6060600180546103e39061089d565b80601f016020809104026020016040519081016040528092919081815260200182805461040f9061089d565b801561045a5780601f106104315761010080835404028352916020019161045a565b820191905f5260205f20905b81548152906001019060200180831161043d57829003601f168201915b5050505050905090565b806002819055505f5b825181101561050257828181518110610489576104886108cd565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516104ed9190610857565b60405180910390a3808060010191505061046d565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561053e578082015181840152602081019050610523565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61056382610507565b61056d8185610511565b935061057d818560208601610521565b61058681610549565b840191505092915050565b5f6020820190508181035f8301526105a98184610559565b905092915050565b5f60ff82169050919050565b6105c6816105b1565b82525050565b5f6020820190506105df5f8301846105bd565b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61063082610549565b810181811067ffffffffffffffff8211171561064f5761064e6105fa565b5b80604052505050565b5f6106616105e5565b905061066d8282610627565b919050565b5f67ffffffffffffffff82111561068c5761068b6105fa565b5b602082029050602081019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6106ca826106a1565b9050919050565b6106da816106c0565b81146106e4575f80fd5b50565b5f813590506106f5816106d1565b92915050565b5f61070d61070884610672565b610658565b905080838252602082019050602084028301858111156107305761072f61069d565b5b835b81811015610759578061074588826106e7565b845260208401935050602081019050610732565b5050509392505050565b5f82601f830112610777576107766105f6565b5b81356107878482602086016106fb565b91505092915050565b5f819050919050565b6107a281610790565b81146107ac575f80fd5b50565b5f813590506107bd81610799565b92915050565b5f80604083850312156107d9576107d86105ee565b5b5f83013567ffffffffffffffff8111156107f6576107f56105f2565b5b61080285828601610763565b9250506020610813858286016107af565b9150509250929050565b5f60208284031215610832576108316105ee565b5b5f61083f848285016106e7565b91505092915050565b61085181610790565b82525050565b5f60208201905061086a5f830184610848565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806108b457607f821691505b6020821081036108c7576108c6610870565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f819050919050565b5f61092661092161091c846108fa565b610903565b610790565b9050919050565b6109368161090c565b82525050565b5f60208201905061094f5f83018461092d565b9291505056fea26469706673582212206da159548541cfc6421a28e7504cc3de482b0b76b5cff071af171616995a66c664736f6c63430008180033000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000002f232044494f4e4520526577617264205469636b6574202868747470733a2f2f64696f6e6573797374656d2e636f6d290000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002d44494f4e4520526577617264205469636b6574202868747470733a2f2f64696f6e6573797374656d2e636f6d2900000000000000000000000000000000000000