608060405234801561000f575f80fd5b506040518060400160405280600881526020017f4861696b754e46540000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f4841494b55000000000000000000000000000000000000000000000000000000815250815f908161008a9190610308565b50806001908161009a9190610308565b50505060016006819055506100b560096100ba60201b60201c565b6103d7565b6001815f015f828254019250508190555050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061014957607f821691505b60208210810361015c5761015b610105565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026101be7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610183565b6101c88683610183565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61020c610207610202846101e0565b6101e9565b6101e0565b9050919050565b5f819050919050565b610225836101f2565b61023961023182610213565b84845461018f565b825550505050565b5f90565b61024d610241565b61025881848461021c565b505050565b5b8181101561027b576102705f82610245565b60018101905061025e565b5050565b601f8211156102c05761029181610162565b61029a84610174565b810160208510156102a9578190505b6102bd6102b585610174565b83018261025d565b50505b505050565b5f82821c905092915050565b5f6102e05f19846008026102c5565b1980831691505092915050565b5f6102f883836102d1565b9150826002028217905092915050565b610311826100ce565b67ffffffffffffffff81111561032a576103296100d8565b5b6103348254610132565b61033f82828561027f565b5f60209050601f831160018114610370575f841561035e578287015190505b61036885826102ed565b8655506103cf565b601f19841661037e86610162565b5f5b828110156103a557848901518255600182019150602085019450602081019050610380565b868310156103c257848901516103be601f8916826102d1565b8355505b6001600288020188555050505b505050505050565b613219806103e45f395ff3fe608060405234801561000f575f80fd5b506004361061012a575f3560e01c806370a08231116100ab57806397afe82d1161006f57806397afe82d14610343578063a22cb46514610373578063b88d4fde1461038f578063c87b56dd146103ab578063e985e9c5146103db5761012a565b806370a0823114610286578063714cff56146102b657806373448c46146102d45780637cb82b2a146102f257806395d89b41146103255761012a565b80632c83ea56116100f25780632c83ea56146101e4578063350fe1651461020057806342842e0e1461021c57806349af5bfe146102385780636352211e146102565761012a565b806301ffc9a71461012e57806306fdde031461015e578063081812fc1461017c578063095ea7b3146101ac57806323b872dd146101c8575b5f80fd5b610148600480360381019061014391906121b3565b61040b565b60405161015591906121f8565b60405180910390f35b6101666104ec565b6040516101739190612281565b60405180910390f35b610196600480360381019061019191906122d4565b61057b565b6040516101a3919061233e565b60405180910390f35b6101c660048036038101906101c19190612381565b610596565b005b6101e260048036038101906101dd91906123bf565b6105ac565b005b6101fe60048036038101906101f9919061240f565b6106ab565b005b61021a60048036038101906102159190612579565b61084f565b005b610236600480360381019061023191906123bf565b610ac2565b005b610240610ae1565b60405161024d919061279d565b60405180910390f35b610270600480360381019061026b91906122d4565b610e9f565b60405161027d919061233e565b60405180910390f35b6102a0600480360381019061029b91906127bd565b610eb0565b6040516102ad91906127f7565b60405180910390f35b6102be610f66565b6040516102cb91906127f7565b60405180910390f35b6102dc610f71565b6040516102e991906127f7565b60405180910390f35b61030c600480360381019061030791906122d4565b610f81565b60405161031c9493929190612810565b60405180910390f35b61032d61116d565b60405161033a9190612281565b60405180910390f35b61035d60048036038101906103589190612381565b6111fd565b60405161036a91906127f7565b60405180910390f35b61038d60048036038101906103889190612892565b611228565b005b6103a960048036038101906103a4919061296e565b61123e565b005b6103c560048036038101906103c091906122d4565b611263565b6040516103d29190612281565b60405180910390f35b6103f560048036038101906103f091906129ee565b6112c9565b60405161040291906121f8565b60405180910390f35b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104d557507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806104e557506104e482611357565b5b9050919050565b60605f80546104fa90612a59565b80601f016020809104026020016040519081016040528092919081815260200182805461052690612a59565b80156105715780601f1061054857610100808354040283529160200191610571565b820191905f5260205f20905b81548152906001019060200180831161055457829003601f168201915b5050505050905090565b5f610585826113c0565b5061058f82611446565b9050919050565b6105a882826105a361147f565b611486565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361061c575f6040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610613919061233e565b60405180910390fd5b5f61062f838361062a61147f565b611498565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146106a5578382826040517f64283d7b00000000000000000000000000000000000000000000000000000000815260040161069c93929190612a89565b60405180910390fd5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610719576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071090612b08565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff1661073983610e9f565b73ffffffffffffffffffffffffffffffffffffffff161461078f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078690612b70565b60405180910390fd5b60085f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2082908060018154018082558091505060019003905f5260205f20015f90919091909150558073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16837f16916ab32e25ab761bcf573ef638e51a5596c821e120e4a3b981ba1012f0d72260405160405180910390a45050565b6108576116a3565b5f835111801561086757505f8251115b801561087357505f8151115b6108b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a990612bd8565b60405180910390fd5b5f8383836040516020016108c893929190612c30565b604051602081830303815290604052805190602001209050600a5f8281526020019081526020015f205f9054906101000a900460ff161561093e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093590612caa565b60405180910390fd5b5f61094960096116f2565b905061095533826116fe565b600760405180608001604052803373ffffffffffffffffffffffffffffffffffffffff16815260200187815260200186815260200185815250908060018154018082558091505060019003905f5260205f2090600402015f909190919091505f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001019081610a0d9190612e65565b506040820151816002019081610a239190612e65565b506060820151816003019081610a399190612e65565b5050506001600a5f8481526020019081526020015f205f6101000a81548160ff021916908315150217905550610a6f600961171b565b3373ffffffffffffffffffffffffffffffffffffffff16817fcc6f3cbde5f018df373f90d0662aae2f104227c7e6c2e5409f690a9d0ae2f36f60405160405180910390a35050610abd61172f565b505050565b610adc83838360405180602001604052805f81525061123e565b505050565b60605f60085f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805480602002602001604051908101604052809291908181526020018280548015610b6957602002820191905f5260205f20905b815481526020019060010190808311610b55575b505050505090505f815111610bb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610baa90612f7e565b60405180910390fd5b5f815167ffffffffffffffff811115610bcf57610bce612455565b5b604051908082528060200260200182016040528015610c0857816020015b610bf5612110565b815260200190600190039081610bed5790505b5090505f5b8251811015610e965760076001848381518110610c2d57610c2c612f9c565b5b6020026020010151610c3f9190612ff6565b81548110610c5057610c4f612f9c565b5b905f5260205f2090600402016040518060800160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054610ccb90612a59565b80601f0160208091040260200160405190810160405280929190818152602001828054610cf790612a59565b8015610d425780601f10610d1957610100808354040283529160200191610d42565b820191905f5260205f20905b815481529060010190602001808311610d2557829003601f168201915b50505050508152602001600282018054610d5b90612a59565b80601f0160208091040260200160405190810160405280929190818152602001828054610d8790612a59565b8015610dd25780601f10610da957610100808354040283529160200191610dd2565b820191905f5260205f20905b815481529060010190602001808311610db557829003601f168201915b50505050508152602001600382018054610deb90612a59565b80601f0160208091040260200160405190810160405280929190818152602001828054610e1790612a59565b8015610e625780601f10610e3957610100808354040283529160200191610e62565b820191905f5260205f20905b815481529060010190602001808311610e4557829003601f168201915b505050505081525050828281518110610e7e57610e7d612f9c565b5b60200260200101819052508080600101915050610c0d565b50809250505090565b5f610ea9826113c0565b9050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f21575f6040517f89c62b64000000000000000000000000000000000000000000000000000000008152600401610f18919061233e565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6009805f0154905081565b5f610f7c60096116f2565b905090565b60078181548110610f90575f80fd5b905f5260205f2090600402015f91509050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806001018054610fd490612a59565b80601f016020809104026020016040519081016040528092919081815260200182805461100090612a59565b801561104b5780601f106110225761010080835404028352916020019161104b565b820191905f5260205f20905b81548152906001019060200180831161102e57829003601f168201915b50505050509080600201805461106090612a59565b80601f016020809104026020016040519081016040528092919081815260200182805461108c90612a59565b80156110d75780601f106110ae576101008083540402835291602001916110d7565b820191905f5260205f20905b8154815290600101906020018083116110ba57829003601f168201915b5050505050908060030180546110ec90612a59565b80601f016020809104026020016040519081016040528092919081815260200182805461111890612a59565b80156111635780601f1061113a57610100808354040283529160200191611163565b820191905f5260205f20905b81548152906001019060200180831161114657829003601f168201915b5050505050905084565b60606001805461117c90612a59565b80601f01602080910402602001604051908101604052809291908181526020018280546111a890612a59565b80156111f35780601f106111ca576101008083540402835291602001916111f3565b820191905f5260205f20905b8154815290600101906020018083116111d657829003601f168201915b5050505050905090565b6008602052815f5260405f208181548110611216575f80fd5b905f5260205f20015f91509150505481565b61123a61123361147f565b8383611739565b5050565b6112498484846105ac565b61125d61125461147f565b858585856118a2565b50505050565b606061126e826113c0565b505f611278611a4e565b90505f8151116112965760405180602001604052805f8152506112c1565b806112a084611a64565b6040516020016112b1929190613029565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f806113cb83611b2e565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361143d57826040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161143491906127f7565b60405180910390fd5b80915050919050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b6114938383836001611b67565b505050565b5f806114a384611b2e565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146114e4576114e3818486611d26565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461156f576115235f855f80611b67565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16146115ee57600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b6002600654036116e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116df90613096565b60405180910390fd5b6002600681905550565b5f815f01549050919050565b611717828260405180602001604052805f815250611de9565b5050565b6001815f015f828254019250508190555050565b6001600681905550565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117a957816040517f5b08ba180000000000000000000000000000000000000000000000000000000081526004016117a0919061233e565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161189591906121f8565b60405180910390a3505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115611a47578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02868685856040518563ffffffff1660e01b81526004016119009493929190613106565b6020604051808303815f875af192505050801561193b57506040513d601f19601f820116820180604052508101906119389190613164565b60015b6119bc573d805f8114611969576040519150601f19603f3d011682016040523d82523d5f602084013e61196e565b606091505b505f8151036119b457836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016119ab919061233e565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611a4557836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611a3c919061233e565b60405180910390fd5b505b5050505050565b606060405180602001604052805f815250905090565b60605f6001611a7284611e0c565b0190505f8167ffffffffffffffff811115611a9057611a8f612455565b5b6040519080825280601f01601f191660200182016040528015611ac25781602001600182028036833780820191505090505b5090505f82602001820190505b600115611b23578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611b1857611b1761318f565b5b0494505f8503611acf575b819350505050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8080611b9f57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611cd1575f611bae846113c0565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c1857508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611c2b5750611c2981846112c9565b155b15611c6d57826040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401611c64919061233e565b60405180910390fd5b8115611ccf57838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b611d31838383611f5d565b611de4575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611da557806040517f7e273289000000000000000000000000000000000000000000000000000000008152600401611d9c91906127f7565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401611ddb9291906131bc565b60405180910390fd5b505050565b611df3838361201d565b611e07611dfe61147f565b5f8585856118a2565b505050565b5f805f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611e68577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381611e5e57611e5d61318f565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611ea5576d04ee2d6d415b85acef81000000008381611e9b57611e9a61318f565b5b0492506020810190505b662386f26fc100008310611ed457662386f26fc100008381611eca57611ec961318f565b5b0492506010810190505b6305f5e1008310611efd576305f5e1008381611ef357611ef261318f565b5b0492506008810190505b6127108310611f22576127108381611f1857611f1761318f565b5b0492506004810190505b60648310611f455760648381611f3b57611f3a61318f565b5b0492506002810190505b600a8310611f54576001810190505b80915050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561201457508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611fd55750611fd484846112c9565b5b8061201357508273ffffffffffffffffffffffffffffffffffffffff16611ffb83611446565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361208d575f6040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401612084919061233e565b60405180910390fd5b5f61209983835f611498565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461210b575f6040517f73c6ac6e000000000000000000000000000000000000000000000000000000008152600401612102919061233e565b60405180910390fd5b505050565b60405180608001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160608152602001606081525090565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6121928161215e565b811461219c575f80fd5b50565b5f813590506121ad81612189565b92915050565b5f602082840312156121c8576121c7612156565b5b5f6121d58482850161219f565b91505092915050565b5f8115159050919050565b6121f2816121de565b82525050565b5f60208201905061220b5f8301846121e9565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61225382612211565b61225d818561221b565b935061226d81856020860161222b565b61227681612239565b840191505092915050565b5f6020820190508181035f8301526122998184612249565b905092915050565b5f819050919050565b6122b3816122a1565b81146122bd575f80fd5b50565b5f813590506122ce816122aa565b92915050565b5f602082840312156122e9576122e8612156565b5b5f6122f6848285016122c0565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612328826122ff565b9050919050565b6123388161231e565b82525050565b5f6020820190506123515f83018461232f565b92915050565b6123608161231e565b811461236a575f80fd5b50565b5f8135905061237b81612357565b92915050565b5f806040838503121561239757612396612156565b5b5f6123a48582860161236d565b92505060206123b5858286016122c0565b9150509250929050565b5f805f606084860312156123d6576123d5612156565b5b5f6123e38682870161236d565b93505060206123f48682870161236d565b9250506040612405868287016122c0565b9150509250925092565b5f806040838503121561242557612424612156565b5b5f612432858286016122c0565b92505060206124438582860161236d565b9150509250929050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61248b82612239565b810181811067ffffffffffffffff821117156124aa576124a9612455565b5b80604052505050565b5f6124bc61214d565b90506124c88282612482565b919050565b5f67ffffffffffffffff8211156124e7576124e6612455565b5b6124f082612239565b9050602081019050919050565b828183375f83830152505050565b5f61251d612518846124cd565b6124b3565b90508281526020810184848401111561253957612538612451565b5b6125448482856124fd565b509392505050565b5f82601f8301126125605761255f61244d565b5b813561257084826020860161250b565b91505092915050565b5f805f606084860312156125905761258f612156565b5b5f84013567ffffffffffffffff8111156125ad576125ac61215a565b5b6125b98682870161254c565b935050602084013567ffffffffffffffff8111156125da576125d961215a565b5b6125e68682870161254c565b925050604084013567ffffffffffffffff8111156126075761260661215a565b5b6126138682870161254c565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61264f8161231e565b82525050565b5f82825260208201905092915050565b5f61266f82612211565b6126798185612655565b935061268981856020860161222b565b61269281612239565b840191505092915050565b5f608083015f8301516126b25f860182612646565b50602083015184820360208601526126ca8282612665565b915050604083015184820360408601526126e48282612665565b915050606083015184820360608601526126fe8282612665565b9150508091505092915050565b5f612716838361269d565b905092915050565b5f602082019050919050565b5f6127348261261d565b61273e8185612627565b93508360208202850161275085612637565b805f5b8581101561278b578484038952815161276c858261270b565b94506127778361271e565b925060208a01995050600181019050612753565b50829750879550505050505092915050565b5f6020820190508181035f8301526127b5818461272a565b905092915050565b5f602082840312156127d2576127d1612156565b5b5f6127df8482850161236d565b91505092915050565b6127f1816122a1565b82525050565b5f60208201905061280a5f8301846127e8565b92915050565b5f6080820190506128235f83018761232f565b81810360208301526128358186612249565b905081810360408301526128498185612249565b9050818103606083015261285d8184612249565b905095945050505050565b612871816121de565b811461287b575f80fd5b50565b5f8135905061288c81612868565b92915050565b5f80604083850312156128a8576128a7612156565b5b5f6128b58582860161236d565b92505060206128c68582860161287e565b9150509250929050565b5f67ffffffffffffffff8211156128ea576128e9612455565b5b6128f382612239565b9050602081019050919050565b5f61291261290d846128d0565b6124b3565b90508281526020810184848401111561292e5761292d612451565b5b6129398482856124fd565b509392505050565b5f82601f8301126129555761295461244d565b5b8135612965848260208601612900565b91505092915050565b5f805f806080858703121561298657612985612156565b5b5f6129938782880161236d565b94505060206129a48782880161236d565b93505060406129b5878288016122c0565b925050606085013567ffffffffffffffff8111156129d6576129d561215a565b5b6129e287828801612941565b91505092959194509250565b5f8060408385031215612a0457612a03612156565b5b5f612a118582860161236d565b9250506020612a228582860161236d565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612a7057607f821691505b602082108103612a8357612a82612a2c565b5b50919050565b5f606082019050612a9c5f83018661232f565b612aa960208301856127e8565b612ab6604083018461232f565b949350505050565b7f496e76616c6964206164647265737300000000000000000000000000000000005f82015250565b5f612af2600f8361221b565b9150612afd82612abe565b602082019050919050565b5f6020820190508181035f830152612b1f81612ae6565b9050919050565b7f4e6f7420796f7572206861696b750000000000000000000000000000000000005f82015250565b5f612b5a600e8361221b565b9150612b6582612b26565b602082019050919050565b5f6020820190508181035f830152612b8781612b4e565b9050919050565b7f456d707479206c696e6573206e6f7420616c6c6f7765640000000000000000005f82015250565b5f612bc260178361221b565b9150612bcd82612b8e565b602082019050919050565b5f6020820190508181035f830152612bef81612bb6565b9050919050565b5f81905092915050565b5f612c0a82612211565b612c148185612bf6565b9350612c2481856020860161222b565b80840191505092915050565b5f612c3b8286612c00565b9150612c478285612c00565b9150612c538284612c00565b9150819050949350505050565b7f4861696b7520616c7265616479206578697374730000000000000000000000005f82015250565b5f612c9460148361221b565b9150612c9f82612c60565b602082019050919050565b5f6020820190508181035f830152612cc181612c88565b9050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302612d247fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612ce9565b612d2e8683612ce9565b95508019841693508086168417925050509392505050565b5f819050919050565b5f612d69612d64612d5f846122a1565b612d46565b6122a1565b9050919050565b5f819050919050565b612d8283612d4f565b612d96612d8e82612d70565b848454612cf5565b825550505050565b5f90565b612daa612d9e565b612db5818484612d79565b505050565b5b81811015612dd857612dcd5f82612da2565b600181019050612dbb565b5050565b601f821115612e1d57612dee81612cc8565b612df784612cda565b81016020851015612e06578190505b612e1a612e1285612cda565b830182612dba565b50505b505050565b5f82821c905092915050565b5f612e3d5f1984600802612e22565b1980831691505092915050565b5f612e558383612e2e565b9150826002028217905092915050565b612e6e82612211565b67ffffffffffffffff811115612e8757612e86612455565b5b612e918254612a59565b612e9c828285612ddc565b5f60209050601f831160018114612ecd575f8415612ebb578287015190505b612ec58582612e4a565b865550612f2c565b601f198416612edb86612cc8565b5f5b82811015612f0257848901518255600182019150602085019450602081019050612edd565b86831015612f1f5784890151612f1b601f891682612e2e565b8355505b6001600288020188555050505b505050505050565b7f4e6f206861696b757320736861726564207769746820796f75000000000000005f82015250565b5f612f6860198361221b565b9150612f7382612f34565b602082019050919050565b5f6020820190508181035f830152612f9581612f5c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613000826122a1565b915061300b836122a1565b925082820390508181111561302357613022612fc9565b5b92915050565b5f6130348285612c00565b91506130408284612c00565b91508190509392505050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f613080601f8361221b565b915061308b8261304c565b602082019050919050565b5f6020820190508181035f8301526130ad81613074565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f6130d8826130b4565b6130e281856130be565b93506130f281856020860161222b565b6130fb81612239565b840191505092915050565b5f6080820190506131195f83018761232f565b613126602083018661232f565b61313360408301856127e8565b818103606083015261314581846130ce565b905095945050505050565b5f8151905061315e81612189565b92915050565b5f6020828403121561317957613178612156565b5b5f61318684828501613150565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6040820190506131cf5f83018561232f565b6131dc60208301846127e8565b939250505056fea26469706673582212206b619b8dc15024826d6cde06277b3507e939a00570991fc27d7e16ea02f3c58e64736f6c634300081a0033