608060405234801562000010575f80fd5b506040518060400160405280600a81526020017f4465436f6e7472616374000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f4445430000000000000000000000000000000000000000000000000000000000815250815f90816200008d919062000314565b5080600190816200009f919062000314565b5050506001600681905550620003f8565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e7565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620001a67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000169565b620001b2868362000169565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620001fc620001f6620001f084620001ca565b620001d3565b620001ca565b9050919050565b5f819050919050565b6200021783620001dc565b6200022f620002268262000203565b84845462000175565b825550505050565b5f90565b6200024562000237565b620002528184846200020c565b505050565b5b8181101562000279576200026d5f826200023b565b60018101905062000258565b5050565b601f821115620002c857620002928162000148565b6200029d846200015a565b81016020851015620002ad578190505b620002c5620002bc856200015a565b83018262000257565b50505b505050565b5f82821c905092915050565b5f620002ea5f1984600802620002cd565b1980831691505092915050565b5f620003048383620002d9565b9150826002028217905092915050565b6200031f82620000b0565b67ffffffffffffffff8111156200033b576200033a620000ba565b5b62000347825462000114565b620003548282856200027d565b5f60209050601f8311600181146200038a575f841562000375578287015190505b620003818582620002f7565b865550620003f0565b601f1984166200039a8662000148565b5f5b82811015620003c3578489015182556001820191506020850194506020810190506200039c565b86831015620003e35784890151620003df601f891682620002d9565b8355505b6001600288020188555050505b505050505050565b6138de80620004065f395ff3fe608060405260043610610108575f3560e01c80635efd0a8611610094578063a22cb46511610063578063a22cb465146103b2578063b88d4fde146103da578063c438b40f14610402578063c87b56dd1461042a578063e985e9c51461046657610108565b80635efd0a86146102d45780636352211e1461031057806370a082311461034c57806395d89b411461038857610108565b806323b872dd116100db57806323b872dd146101d657806334c925f0146101fe578063366cdeb31461023a57806342842e0e1461026a5780634d6d6a9c1461029257610108565b806301ffc9a71461010c57806306fdde0314610148578063081812fc14610172578063095ea7b3146101ae575b5f80fd5b348015610117575f80fd5b50610132600480360381019061012d9190612608565b6104a2565b60405161013f919061264d565b60405180910390f35b348015610153575f80fd5b5061015c610583565b60405161016991906126f0565b60405180910390f35b34801561017d575f80fd5b5061019860048036038101906101939190612743565b610612565b6040516101a591906127ad565b60405180910390f35b3480156101b9575f80fd5b506101d460048036038101906101cf91906127f0565b61062d565b005b3480156101e1575f80fd5b506101fc60048036038101906101f7919061282e565b610643565b005b348015610209575f80fd5b50610224600480360381019061021f919061287e565b610742565b6040516102319190612960565b60405180910390f35b610254600480360381019061024f9190612b70565b6107d5565b6040516102619190612c07565b60405180910390f35b348015610275575f80fd5b50610290600480360381019061028b919061282e565b610a7c565b005b34801561029d575f80fd5b506102b860048036038101906102b39190612743565b610a9b565b6040516102cb9796959493929190612cd7565b60405180910390f35b3480156102df575f80fd5b506102fa60048036038101906102f5919061287e565b610c0c565b6040516103079190612960565b60405180910390f35b34801561031b575f80fd5b5061033660048036038101906103319190612743565b610c9f565b60405161034391906127ad565b60405180910390f35b348015610357575f80fd5b50610372600480360381019061036d919061287e565b610cb0565b60405161037f9190612c07565b60405180910390f35b348015610393575f80fd5b5061039c610d66565b6040516103a991906126f0565b60405180910390f35b3480156103bd575f80fd5b506103d860048036038101906103d39190612d7c565b610df6565b005b3480156103e5575f80fd5b5061040060048036038101906103fb9190612e58565b610e0c565b005b34801561040d575f80fd5b5061042860048036038101906104239190612743565b610e31565b005b348015610435575f80fd5b50610450600480360381019061044b9190612743565b611027565b60405161045d91906126f0565b60405180910390f35b348015610471575f80fd5b5061048c60048036038101906104879190612ed8565b61108d565b604051610499919061264d565b60405180910390f35b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061056c57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061057c575061057b8261111b565b5b9050919050565b60605f805461059190612f43565b80601f01602080910402602001604051908101604052809291908181526020018280546105bd90612f43565b80156106085780601f106105df57610100808354040283529160200191610608565b820191905f5260205f20905b8154815290600101906020018083116105eb57829003601f168201915b5050505050905090565b5f61061c82611184565b506106268261120a565b9050919050565b61063f828261063a611243565b61124a565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106b3575f6040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016106aa91906127ad565b60405180910390fd5b5f6106c683836106c1611243565b61125c565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461073c578382826040517f64283d7b00000000000000000000000000000000000000000000000000000000815260040161073393929190612f73565b60405180910390fd5b50505050565b606060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208054806020026020016040519081016040528092919081815260200182805480156107c957602002820191905f5260205f20905b8154815260200190600101908083116107b5575b50505050509050919050565b5f6107de611467565b6002845114610822576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081990612ff2565b60405180910390fd5b5f3411610864576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085b90613080565b60405180910390fd5b5f82116108a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089d906130e8565b60405180910390fd5b5f6108b160076114b6565b90506108bd60076114c2565b5f60085f8381526020019081526020015f20905085815f0190805190602001906108e8929190612500565b50848160010190816108fa91906132a3565b508381600201819055503481600401819055506001816006015f6101000a81548160ff02191690831515021790555061093333836114d6565b60095f875f8151811061094957610948613372565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2082908060018154018082558091505060019003905f5260205f20015f909190919091505560095f876001815181106109c5576109c4613372565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2082908060018154018082558091505060019003905f5260205f20015f9091909190915055817fbd3ee10841b0adf2548fe46133b35f7f2aac930c39fc5e88ba4ef6e0d93bb8ad87878734604051610a60949392919061339f565b60405180910390a28192505050610a756114f3565b9392505050565b610a9683838360405180602001604052805f815250610e0c565b505050565b6060805f805f805f8060085f8a81526020019081526020015f209050805f01816001018260020154836003015484600401548560050154866006015f9054906101000a900460ff1686805480602002602001604051908101604052809291908181526020018280548015610b6157602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610b18575b50505050509650858054610b7490612f43565b80601f0160208091040260200160405190810160405280929190818152602001828054610ba090612f43565b8015610beb5780601f10610bc257610100808354040283529160200191610beb565b820191905f5260205f20905b815481529060010190602001808311610bce57829003601f168201915b50505050509550975097509750975097509750975050919395979092949650565b6060600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805480602002602001604051908101604052809291908181526020018280548015610c9357602002820191905f5260205f20905b815481526020019060010190808311610c7f575b50505050509050919050565b5f610ca982611184565b9050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d21575f6040517f89c62b64000000000000000000000000000000000000000000000000000000008152600401610d1891906127ad565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b606060018054610d7590612f43565b80601f0160208091040260200160405190810160405280929190818152602001828054610da190612f43565b8015610dec5780601f10610dc357610100808354040283529160200191610dec565b820191905f5260205f20905b815481529060010190602001808311610dcf57829003601f168201915b5050505050905090565b610e08610e01611243565b83836114fd565b5050565b610e17848484610643565b610e2b610e22611243565b85858585611666565b50505050565b5f60085f8381526020019081526020015f209050806006015f9054906101000a900460ff16610e95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8c9061343a565b60405180910390fd5b610e9f8133611812565b610ede576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed5906134c8565b60405180910390fd5b806007015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615610f6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6190613530565b60405180910390fd5b6001816007015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550817ffe731b8534f38a55c98725a977efe67da793f35fb32ca4d1d947c01d80259bc23360018460030154610ff5919061357b565b6040516110039291906135ae565b60405180910390a2611014816118f9565b156110235761102282611a1a565b5b5050565b606061103282611184565b505f61103c611e3e565b90505f81511161105a5760405180602001604052805f815250611085565b8061106484611e54565b60405160200161107592919061360f565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f8061118f83611f1e565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361120157826040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016111f89190612c07565b60405180910390fd5b80915050919050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b6112578383836001611f57565b505050565b5f8061126784611f1e565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146112a8576112a7818486612116565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611333576112e75f855f80611f57565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16146113b257600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b6002600654036114ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a39061367c565b60405180910390fd5b6002600681905550565b5f815f01549050919050565b6001815f015f828254019250508190555050565b6114ef828260405180602001604052805f8152506121d9565b5050565b6001600681905550565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361156d57816040517f5b08ba1800000000000000000000000000000000000000000000000000000000815260040161156491906127ad565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611659919061264d565b60405180910390a3505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b111561180b578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02868685856040518563ffffffff1660e01b81526004016116c494939291906136ec565b6020604051808303815f875af19250505080156116ff57506040513d601f19601f820116820180604052508101906116fc919061374a565b60015b611780573d805f811461172d576040519150601f19603f3d011682016040523d82523d5f602084013e611732565b606091505b505f81510361177857836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161176f91906127ad565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461180957836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161180091906127ad565b60405180910390fd5b505b5050505050565b5f8173ffffffffffffffffffffffffffffffffffffffff16835f015f8154811061183f5761183e613372565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806118f157508173ffffffffffffffffffffffffffffffffffffffff16835f016001815481106118b1576118b0613372565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b905092915050565b5f816007015f835f015f8154811061191457611913613372565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611a135750816007015f835f016001815481106119a4576119a3613372565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b9050919050565b5f60085f8381526020019081526020015f2090508060020154816003015410611a78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6f906137bf565b60405180910390fd5b806003015f815480929190611a8c906137dd565b91905055505f81600201548260040154611aa69190613851565b905080826005015f828254611abb919061357b565b92505081905550815f01600181548110611ad857611ad7613372565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611b42573d5f803e3d5ffd5b50827fd4dbda378623f00b72ef135b4579b7ba064c49645217eb107d663831efac6358836003015483604051611b79929190613881565b60405180910390a25f826007015f845f015f81548110611b9c57611b9b613372565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f826007015f845f01600181548110611c2f57611c2e613372565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508160020154826003015403611e39575f826006015f6101000a81548160ff021916908315150217905550600a5f835f015f81548110611ce857611ce7613372565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2083908060018154018082558091505060019003905f5260205f20015f9091909190915055600a5f835f01600181548110611d8657611d85613372565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2083908060018154018082558091505060019003905f5260205f20015f9091909190915055827f6aafa2babf7b7b7142ff5c7ff71f2b5f78e2243167a26d6b8a7f70936e76923e60405160405180910390a25b505050565b606060405180602001604052805f815250905090565b60605f6001611e62846121fc565b0190505f8167ffffffffffffffff811115611e8057611e7f612984565b5b6040519080825280601f01601f191660200182016040528015611eb25781602001600182028036833780820191505090505b5090505f82602001820190505b600115611f13578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611f0857611f07613824565b5b0494505f8503611ebf575b819350505050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8080611f8f57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156120c1575f611f9e84611184565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561200857508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561201b5750612019818461108d565b155b1561205d57826040517fa9fbf51f00000000000000000000000000000000000000000000000000000000815260040161205491906127ad565b60405180910390fd5b81156120bf57838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b61212183838361234d565b6121d4575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361219557806040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161218c9190612c07565b60405180910390fd5b81816040517f177e802f0000000000000000000000000000000000000000000000000000000081526004016121cb9291906135ae565b60405180910390fd5b505050565b6121e3838361240d565b6121f76121ee611243565b5f858585611666565b505050565b5f805f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612258577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161224e5761224d613824565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310612295576d04ee2d6d415b85acef8100000000838161228b5761228a613824565b5b0492506020810190505b662386f26fc1000083106122c457662386f26fc1000083816122ba576122b9613824565b5b0492506010810190505b6305f5e10083106122ed576305f5e10083816122e3576122e2613824565b5b0492506008810190505b612710831061231257612710838161230857612307613824565b5b0492506004810190505b60648310612335576064838161232b5761232a613824565b5b0492506002810190505b600a8310612344576001810190505b80915050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561240457508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806123c557506123c4848461108d565b5b8061240357508273ffffffffffffffffffffffffffffffffffffffff166123eb8361120a565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361247d575f6040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161247491906127ad565b60405180910390fd5b5f61248983835f61125c565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146124fb575f6040517f73c6ac6e0000000000000000000000000000000000000000000000000000000081526004016124f291906127ad565b60405180910390fd5b505050565b828054828255905f5260205f20908101928215612576579160200282015b82811115612575578251825f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019061251e565b5b5090506125839190612587565b5090565b5b8082111561259e575f815f905550600101612588565b5090565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6125e7816125b3565b81146125f1575f80fd5b50565b5f81359050612602816125de565b92915050565b5f6020828403121561261d5761261c6125ab565b5b5f61262a848285016125f4565b91505092915050565b5f8115159050919050565b61264781612633565b82525050565b5f6020820190506126605f83018461263e565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561269d578082015181840152602081019050612682565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6126c282612666565b6126cc8185612670565b93506126dc818560208601612680565b6126e5816126a8565b840191505092915050565b5f6020820190508181035f83015261270881846126b8565b905092915050565b5f819050919050565b61272281612710565b811461272c575f80fd5b50565b5f8135905061273d81612719565b92915050565b5f60208284031215612758576127576125ab565b5b5f6127658482850161272f565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6127978261276e565b9050919050565b6127a78161278d565b82525050565b5f6020820190506127c05f83018461279e565b92915050565b6127cf8161278d565b81146127d9575f80fd5b50565b5f813590506127ea816127c6565b92915050565b5f8060408385031215612806576128056125ab565b5b5f612813858286016127dc565b92505060206128248582860161272f565b9150509250929050565b5f805f60608486031215612845576128446125ab565b5b5f612852868287016127dc565b9350506020612863868287016127dc565b92505060406128748682870161272f565b9150509250925092565b5f60208284031215612893576128926125ab565b5b5f6128a0848285016127dc565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6128db81612710565b82525050565b5f6128ec83836128d2565b60208301905092915050565b5f602082019050919050565b5f61290e826128a9565b61291881856128b3565b9350612923836128c3565b805f5b8381101561295357815161293a88826128e1565b9750612945836128f8565b925050600181019050612926565b5085935050505092915050565b5f6020820190508181035f8301526129788184612904565b905092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6129ba826126a8565b810181811067ffffffffffffffff821117156129d9576129d8612984565b5b80604052505050565b5f6129eb6125a2565b90506129f782826129b1565b919050565b5f67ffffffffffffffff821115612a1657612a15612984565b5b602082029050602081019050919050565b5f80fd5b5f612a3d612a38846129fc565b6129e2565b90508083825260208201905060208402830185811115612a6057612a5f612a27565b5b835b81811015612a895780612a7588826127dc565b845260208401935050602081019050612a62565b5050509392505050565b5f82601f830112612aa757612aa6612980565b5b8135612ab7848260208601612a2b565b91505092915050565b5f80fd5b5f67ffffffffffffffff821115612ade57612add612984565b5b612ae7826126a8565b9050602081019050919050565b828183375f83830152505050565b5f612b14612b0f84612ac4565b6129e2565b905082815260208101848484011115612b3057612b2f612ac0565b5b612b3b848285612af4565b509392505050565b5f82601f830112612b5757612b56612980565b5b8135612b67848260208601612b02565b91505092915050565b5f805f60608486031215612b8757612b866125ab565b5b5f84013567ffffffffffffffff811115612ba457612ba36125af565b5b612bb086828701612a93565b935050602084013567ffffffffffffffff811115612bd157612bd06125af565b5b612bdd86828701612b43565b9250506040612bee8682870161272f565b9150509250925092565b612c0181612710565b82525050565b5f602082019050612c1a5f830184612bf8565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612c528161278d565b82525050565b5f612c638383612c49565b60208301905092915050565b5f602082019050919050565b5f612c8582612c20565b612c8f8185612c2a565b9350612c9a83612c3a565b805f5b83811015612cca578151612cb18882612c58565b9750612cbc83612c6f565b925050600181019050612c9d565b5085935050505092915050565b5f60e0820190508181035f830152612cef818a612c7b565b90508181036020830152612d0381896126b8565b9050612d126040830188612bf8565b612d1f6060830187612bf8565b612d2c6080830186612bf8565b612d3960a0830185612bf8565b612d4660c083018461263e565b98975050505050505050565b612d5b81612633565b8114612d65575f80fd5b50565b5f81359050612d7681612d52565b92915050565b5f8060408385031215612d9257612d916125ab565b5b5f612d9f858286016127dc565b9250506020612db085828601612d68565b9150509250929050565b5f67ffffffffffffffff821115612dd457612dd3612984565b5b612ddd826126a8565b9050602081019050919050565b5f612dfc612df784612dba565b6129e2565b905082815260208101848484011115612e1857612e17612ac0565b5b612e23848285612af4565b509392505050565b5f82601f830112612e3f57612e3e612980565b5b8135612e4f848260208601612dea565b91505092915050565b5f805f8060808587031215612e7057612e6f6125ab565b5b5f612e7d878288016127dc565b9450506020612e8e878288016127dc565b9350506040612e9f8782880161272f565b925050606085013567ffffffffffffffff811115612ec057612ebf6125af565b5b612ecc87828801612e2b565b91505092959194509250565b5f8060408385031215612eee57612eed6125ab565b5b5f612efb858286016127dc565b9250506020612f0c858286016127dc565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612f5a57607f821691505b602082108103612f6d57612f6c612f16565b5b50919050565b5f606082019050612f865f83018661279e565b612f936020830185612bf8565b612fa0604083018461279e565b949350505050565b7f45786163746c792074776f2070617274696573207265717569726564000000005f82015250565b5f612fdc601c83612670565b9150612fe782612fa8565b602082019050919050565b5f6020820190508181035f83015261300981612fd0565b9050919050565b7f4d757374206465706f7369742066756e647320666f72206d696c6573746f6e655f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f61306a602183612670565b915061307582613010565b604082019050919050565b5f6020820190508181035f8301526130978161305e565b9050919050565b7f4d7573742068617665206174206c65617374206f6e65206d696c6573746f6e655f82015250565b5f6130d2602083612670565b91506130dd8261309e565b602082019050919050565b5f6020820190508181035f8301526130ff816130c6565b9050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026131627fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613127565b61316c8683613127565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6131a76131a261319d84612710565b613184565b612710565b9050919050565b5f819050919050565b6131c08361318d565b6131d46131cc826131ae565b848454613133565b825550505050565b5f90565b6131e86131dc565b6131f38184846131b7565b505050565b5b818110156132165761320b5f826131e0565b6001810190506131f9565b5050565b601f82111561325b5761322c81613106565b61323584613118565b81016020851015613244578190505b61325861325085613118565b8301826131f8565b50505b505050565b5f82821c905092915050565b5f61327b5f1984600802613260565b1980831691505092915050565b5f613293838361326c565b9150826002028217905092915050565b6132ac82612666565b67ffffffffffffffff8111156132c5576132c4612984565b5b6132cf8254612f43565b6132da82828561321a565b5f60209050601f83116001811461330b575f84156132f9578287015190505b6133038582613288565b86555061336a565b601f19841661331986613106565b5f5b828110156133405784890151825560018201915060208501945060208101905061331b565b8683101561335d5784890151613359601f89168261326c565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6080820190508181035f8301526133b78187612c7b565b905081810360208301526133cb81866126b8565b90506133da6040830185612bf8565b6133e76060830184612bf8565b95945050505050565b7f436f6e7472616374206973206e6f7420616374697665000000000000000000005f82015250565b5f613424601683612670565b915061342f826133f0565b602082019050919050565b5f6020820190508181035f83015261345181613418565b9050919050565b7f4f6e6c7920636f6e747261637420706172746965732063616e20617070726f765f8201527f65206d696c6573746f6e65730000000000000000000000000000000000000000602082015250565b5f6134b2602c83612670565b91506134bd82613458565b604082019050919050565b5f6020820190508181035f8301526134df816134a6565b9050919050565b7f416c726561647920617070726f766564000000000000000000000000000000005f82015250565b5f61351a601083612670565b9150613525826134e6565b602082019050919050565b5f6020820190508181035f8301526135478161350e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61358582612710565b915061359083612710565b92508282019050808211156135a8576135a761354e565b5b92915050565b5f6040820190506135c15f83018561279e565b6135ce6020830184612bf8565b9392505050565b5f81905092915050565b5f6135e982612666565b6135f381856135d5565b9350613603818560208601612680565b80840191505092915050565b5f61361a82856135df565b915061362682846135df565b91508190509392505050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f613666601f83612670565b915061367182613632565b602082019050919050565b5f6020820190508181035f8301526136938161365a565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f6136be8261369a565b6136c881856136a4565b93506136d8818560208601612680565b6136e1816126a8565b840191505092915050565b5f6080820190506136ff5f83018761279e565b61370c602083018661279e565b6137196040830185612bf8565b818103606083015261372b81846136b4565b905095945050505050565b5f81519050613744816125de565b92915050565b5f6020828403121561375f5761375e6125ab565b5b5f61376c84828501613736565b91505092915050565b7f416c6c206d696c6573746f6e657320636f6d706c6574656400000000000000005f82015250565b5f6137a9601883612670565b91506137b482613775565b602082019050919050565b5f6020820190508181035f8301526137d68161379d565b9050919050565b5f6137e782612710565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036138195761381861354e565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61385b82612710565b915061386683612710565b92508261387657613875613824565b5b828204905092915050565b5f6040820190506138945f830185612bf8565b6138a16020830184612bf8565b939250505056fea2646970667358221220fe8bb47a7f5d263d1d9d3a33e5d2b8ff8d8b4e0f71cadb320784b30e7d31e0ef64736f6c63430008140033