60806040525f60025573a99c602037f8e85a44bbe88f3c0ee3af60345b9b60035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f600360146101000a81548160ff02191690831515021790555034801562000082575f80fd5b5060405162001069380380620010698339818101604052810190620000a8919062000258565b815f9081620000b8919062000512565b508060019081620000ca919062000512565b505050620005f6565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6200013482620000ec565b810181811067ffffffffffffffff82111715620001565762000155620000fc565b5b80604052505050565b5f6200016a620000d3565b905062000178828262000129565b919050565b5f67ffffffffffffffff8211156200019a5762000199620000fc565b5b620001a582620000ec565b9050602081019050919050565b5f5b83811015620001d1578082015181840152602081019050620001b4565b5f8484015250505050565b5f620001f2620001ec846200017d565b6200015f565b905082815260208101848484011115620002115762000210620000e8565b5b6200021e848285620001b2565b509392505050565b5f82601f8301126200023d576200023c620000e4565b5b81516200024f848260208601620001dc565b91505092915050565b5f8060408385031215620002715762000270620000dc565b5b5f83015167ffffffffffffffff811115620002915762000290620000e0565b5b6200029f8582860162000226565b925050602083015167ffffffffffffffff811115620002c357620002c2620000e0565b5b620002d18582860162000226565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200032a57607f821691505b60208210810362000340576200033f620002e5565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620003a47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000367565b620003b0868362000367565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620003fa620003f4620003ee84620003c8565b620003d1565b620003c8565b9050919050565b5f819050919050565b6200041583620003da565b6200042d620004248262000401565b84845462000373565b825550505050565b5f90565b6200044362000435565b620004508184846200040a565b505050565b5b8181101562000477576200046b5f8262000439565b60018101905062000456565b5050565b601f821115620004c657620004908162000346565b6200049b8462000358565b81016020851015620004ab578190505b620004c3620004ba8562000358565b83018262000455565b50505b505050565b5f82821c905092915050565b5f620004e85f1984600802620004cb565b1980831691505092915050565b5f620005028383620004d7565b9150826002028217905092915050565b6200051d82620002db565b67ffffffffffffffff811115620005395762000538620000fc565b5b62000545825462000312565b620005528282856200047b565b5f60209050601f83116001811462000588575f841562000573578287015190505b6200057f8582620004f5565b865550620005ee565b601f198416620005988662000346565b5f5b82811015620005c1578489015182556001820191506020850194506020810190506200059a565b86831015620005e15784890151620005dd601f891682620004d7565b8355505b6001600288020188555050505b505050505050565b610a6580620006045f395ff3fe608060405234801561000f575f80fd5b5060043610610091575f3560e01c806370a082311161006457806370a08231146100f757806395d89b4114610127578063a348f75b14610145578063c204642c14610161578063ea66696c1461017d57610091565b806306fdde0314610095578063313ce567146100b357806344df8e70146100d15780636a627842146100db575b5f80fd5b61009d610199565b6040516100aa919061066b565b60405180910390f35b6100bb610228565b6040516100c891906106a6565b60405180910390f35b6100d961022c565b005b6100f560048036038101906100f0919061072a565b610249565b005b610111600480360381019061010c919061072a565b6102b6565b60405161011e919061076d565b60405180910390f35b61012f610333565b60405161013c919061066b565b60405180910390f35b61015f600480360381019061015a91906108f0565b6103c3565b005b61017b600480360381019061017691906108f0565b61047a565b005b610197600480360381019061019291906108f0565b61053e565b005b60605f80546101a790610977565b80601f01602080910402602001604051908101604052809291908181526020018280546101d390610977565b801561021e5780601f106101f55761010080835404028352916020019161021e565b820191905f5260205f20905b81548152906001019060200180831161020157829003601f168201915b5050505050905090565b5f90565b6001600360146101000a81548160ff021916908315150217905550565b8073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef64e8d4a510006040516102ab91906109e9565b60405180910390a350565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148061031e5750600360149054906101000a900460ff165b61032a5760025461032c565b5f5b9050919050565b60606001805461034290610977565b80601f016020809104026020016040519081016040528092919081815260200182805461036e90610977565b80156103b95780601f10610390576101008083540402835291602001916103b9565b820191905f5260205f20905b81548152906001019060200180831161039c57829003601f168201915b5050505050905090565b806002819055505f5b8251811015610475578281815181106103e8576103e7610a02565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673a99c602037f8e85a44bbe88f3c0ee3af60345b9b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610460919061076d565b60405180910390a380806001019150506103cc565b505050565b806002819055505f5b82518110156105395782818151811061049f5761049e610a02565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1660035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610524919061076d565b60405180910390a38080600101915050610483565b505050565b806002819055505f5b82518110156105dc5782818151811061056357610562610a02565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516105c7919061076d565b60405180910390a38080600101915050610547565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156106185780820151818401526020810190506105fd565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61063d826105e1565b61064781856105eb565b93506106578185602086016105fb565b61066081610623565b840191505092915050565b5f6020820190508181035f8301526106838184610633565b905092915050565b5f60ff82169050919050565b6106a08161068b565b82525050565b5f6020820190506106b95f830184610697565b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6106f9826106d0565b9050919050565b610709816106ef565b8114610713575f80fd5b50565b5f8135905061072481610700565b92915050565b5f6020828403121561073f5761073e6106c8565b5b5f61074c84828501610716565b91505092915050565b5f819050919050565b61076781610755565b82525050565b5f6020820190506107805f83018461075e565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6107c082610623565b810181811067ffffffffffffffff821117156107df576107de61078a565b5b80604052505050565b5f6107f16106bf565b90506107fd82826107b7565b919050565b5f67ffffffffffffffff82111561081c5761081b61078a565b5b602082029050602081019050919050565b5f80fd5b5f61084361083e84610802565b6107e8565b905080838252602082019050602084028301858111156108665761086561082d565b5b835b8181101561088f578061087b8882610716565b845260208401935050602081019050610868565b5050509392505050565b5f82601f8301126108ad576108ac610786565b5b81356108bd848260208601610831565b91505092915050565b6108cf81610755565b81146108d9575f80fd5b50565b5f813590506108ea816108c6565b92915050565b5f8060408385031215610906576109056106c8565b5b5f83013567ffffffffffffffff811115610923576109226106cc565b5b61092f85828601610899565b9250506020610940858286016108dc565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061098e57607f821691505b6020821081036109a1576109a061094a565b5b50919050565b5f819050919050565b5f819050919050565b5f6109d36109ce6109c9846109a7565b6109b0565b610755565b9050919050565b6109e3816109b9565b82525050565b5f6020820190506109fc5f8301846109da565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea2646970667358221220cc1f9021a92b7f545a0cf40544a3354215cd31371cdd3eb5163563a0a75968cc64736f6c63430008180033000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000012202320746f6b656e66696c6162732e636f6d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000031436c61696d2024544f4b454e464920726577617264732061742068747470733a2f2f746f6b656e66696c6162732e636f6d000000000000000000000000000000