608060405234801561000f575f80fd5b506040518060400160405280600881526020017f4861696b754e46540000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f484e465400000000000000000000000000000000000000000000000000000000815250815f908161008a9190610300565b50806001908161009a9190610300565b5050506100ad60086100b260201b60201c565b6103cf565b6001815f015f828254019250508190555050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061014157607f821691505b602082108103610154576101536100fd565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026101b67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261017b565b6101c0868361017b565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6102046101ff6101fa846101d8565b6101e1565b6101d8565b9050919050565b5f819050919050565b61021d836101ea565b6102316102298261020b565b848454610187565b825550505050565b5f90565b610245610239565b610250818484610214565b505050565b5b81811015610273576102685f8261023d565b600181019050610256565b5050565b601f8211156102b8576102898161015a565b6102928461016c565b810160208510156102a1578190505b6102b56102ad8561016c565b830182610255565b50505b505050565b5f82821c905092915050565b5f6102d85f19846008026102bd565b1980831691505092915050565b5f6102f083836102c9565b9150826002028217905092915050565b610309826100c6565b67ffffffffffffffff811115610322576103216100d0565b5b61032c825461012a565b610337828285610277565b5f60209050601f831160018114610368575f8415610356578287015190505b61036085826102e5565b8655506103c7565b601f1984166103768661015a565b5f5b8281101561039d57848901518255600182019150602085019450602081019050610378565b868310156103ba57848901516103b6601f8916826102c9565b8355505b6001600288020188555050505b505050505050565b612e1a806103dc5f395ff3fe608060405234801561000f575f80fd5b5060043610610114575f3560e01c80636352211e116100a057806397afe82d1161006f57806397afe82d146102f1578063a22cb46514610321578063b88d4fde1461033d578063c87b56dd14610359578063e985e9c51461038957610114565b80636352211e1461024057806370a08231146102705780637cb82b2a146102a057806395d89b41146102d357610114565b8063095ea7b3116100e7578063095ea7b3146101b257806323b872dd146101ce578063350fe165146101ea57806342842e0e1461020657806349af5bfe1461022257610114565b806301ffc9a71461011857806306fdde0314610148578063081812fc146101665780630884d54014610196575b5f80fd5b610132600480360381019061012d9190611fb1565b6103b9565b60405161013f9190611ff6565b60405180910390f35b61015061049a565b60405161015d919061207f565b60405180910390f35b610180600480360381019061017b91906120d2565b610529565b60405161018d919061213c565b60405180910390f35b6101b060048036038101906101ab919061217f565b610544565b005b6101cc60048036038101906101c7919061217f565b610621565b005b6101e860048036038101906101e391906121bd565b610637565b005b61020460048036038101906101ff919061226e565b610736565b005b610220600480360381019061021b91906121bd565b610a84565b005b61022a610aa3565b604051610237919061249e565b60405180910390f35b61025a600480360381019061025591906120d2565b610e15565b604051610267919061213c565b60405180910390f35b61028a600480360381019061028591906124be565b610e26565b60405161029791906124f8565b60405180910390f35b6102ba60048036038101906102b591906120d2565b610edc565b6040516102ca9493929190612511565b60405180910390f35b6102db6110c8565b6040516102e8919061207f565b60405180910390f35b61030b6004803603810190610306919061217f565b611158565b60405161031891906124f8565b60405180910390f35b61033b60048036038101906103369190612593565b611183565b005b610357600480360381019061035291906126f9565b611199565b005b610373600480360381019061036e91906120d2565b6111b6565b604051610380919061207f565b60405180910390f35b6103a3600480360381019061039e9190612779565b61121c565b6040516103b09190611ff6565b60405180910390f35b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061048357507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806104935750610492826112aa565b5b9050919050565b60605f80546104a8906127e4565b80601f01602080910402602001604051908101604052809291908181526020018280546104d4906127e4565b801561051f5780601f106104f65761010080835404028352916020019161051f565b820191905f5260205f20905b81548152906001019060200180831161050257829003601f168201915b5050505050905090565b5f61053382611313565b5061053d82611399565b9050919050565b3373ffffffffffffffffffffffffffffffffffffffff1661056482610e15565b73ffffffffffffffffffffffffffffffffffffffff16146105bc57806040517f03ce4e320000000000000000000000000000000000000000000000000000000081526004016105b391906124f8565b60405180910390fd5b60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081908060018154018082558091505060019003905f5260205f20015f90919091909150555050565b610633828261062e6113d2565b6113d9565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106a7575f6040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161069e919061213c565b60405180910390fd5b5f6106ba83836106b56113d2565b6113eb565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610730578382826040517f64283d7b00000000000000000000000000000000000000000000000000000000815260040161072793929190612814565b60405180910390fd5b50505050565b60098686604051610748929190612877565b90815260200160405180910390205f9054906101000a900460ff168061079757506009848460405161077b929190612877565b90815260200160405180910390205f9054906101000a900460ff165b806107cb5750600982826040516107af929190612877565b90815260200160405180910390205f9054906101000a900460ff165b15610802576040517f693a889e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600160098787604051610816929190612877565b90815260200160405180910390205f6101000a81548160ff02191690831515021790555060016009858560405161084e929190612877565b90815260200160405180910390205f6101000a81548160ff021916908315150217905550600160098383604051610886929190612877565b90815260200160405180910390205f6101000a81548160ff0219169083151502179055505f6108b560086115f6565b90506108c13382611602565b600660405180608001604052803373ffffffffffffffffffffffffffffffffffffffff16815260200189898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050815260200187878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050815260200185858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050815250908060018154018082558091505060019003905f5260205f2090600402015f909190919091505f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001019081610a429190612a2c565b506040820151816002019081610a589190612a2c565b506060820151816003019081610a6e9190612a2c565b505050610a7b60086116f5565b50505050505050565b610a9e83838360405180602001604052805f815250611199565b505050565b60605f60075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2090505f818054905003610b22576040517ff8826a6900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f818054905067ffffffffffffffff811115610b4157610b406125d5565b5b604051908082528060200260200182016040528015610b7a57816020015b610b67611f0e565b815260200190600190039081610b5f5790505b5090505f5b8280549050811015610e0c5760066001848381548110610ba257610ba1612afb565b5b905f5260205f200154610bb59190612b55565b81548110610bc657610bc5612afb565b5b905f5260205f2090600402016040518060800160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054610c41906127e4565b80601f0160208091040260200160405190810160405280929190818152602001828054610c6d906127e4565b8015610cb85780601f10610c8f57610100808354040283529160200191610cb8565b820191905f5260205f20905b815481529060010190602001808311610c9b57829003601f168201915b50505050508152602001600282018054610cd1906127e4565b80601f0160208091040260200160405190810160405280929190818152602001828054610cfd906127e4565b8015610d485780601f10610d1f57610100808354040283529160200191610d48565b820191905f5260205f20905b815481529060010190602001808311610d2b57829003601f168201915b50505050508152602001600382018054610d61906127e4565b80601f0160208091040260200160405190810160405280929190818152602001828054610d8d906127e4565b8015610dd85780601f10610daf57610100808354040283529160200191610dd8565b820191905f5260205f20905b815481529060010190602001808311610dbb57829003601f168201915b505050505081525050828281518110610df457610df3612afb565b5b60200260200101819052508080600101915050610b7f565b50809250505090565b5f610e1f82611313565b9050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e97575f6040517f89c62b64000000000000000000000000000000000000000000000000000000008152600401610e8e919061213c565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60068181548110610eeb575f80fd5b905f5260205f2090600402015f91509050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806001018054610f2f906127e4565b80601f0160208091040260200160405190810160405280929190818152602001828054610f5b906127e4565b8015610fa65780601f10610f7d57610100808354040283529160200191610fa6565b820191905f5260205f20905b815481529060010190602001808311610f8957829003601f168201915b505050505090806002018054610fbb906127e4565b80601f0160208091040260200160405190810160405280929190818152602001828054610fe7906127e4565b80156110325780601f1061100957610100808354040283529160200191611032565b820191905f5260205f20905b81548152906001019060200180831161101557829003601f168201915b505050505090806003018054611047906127e4565b80601f0160208091040260200160405190810160405280929190818152602001828054611073906127e4565b80156110be5780601f10611095576101008083540402835291602001916110be565b820191905f5260205f20905b8154815290600101906020018083116110a157829003601f168201915b5050505050905084565b6060600180546110d7906127e4565b80601f0160208091040260200160405190810160405280929190818152602001828054611103906127e4565b801561114e5780601f106111255761010080835404028352916020019161114e565b820191905f5260205f20905b81548152906001019060200180831161113157829003601f168201915b5050505050905090565b6007602052815f5260405f208181548110611171575f80fd5b905f5260205f20015f91509150505481565b61119561118e6113d2565b8383611709565b5050565b6111a4848484610637565b6111b084848484611872565b50505050565b60606111c182611313565b505f6111cb611a24565b90505f8151116111e95760405180602001604052805f815250611214565b806111f384611a3a565b604051602001611204929190612bb8565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f8061131e83611b93565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361139057826040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161138791906124f8565b60405180910390fd5b80915050919050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b6113e68383836001611bcc565b505050565b5f806113f684611b93565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461143757611436818486611d8b565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146114c2576114765f855f80611bcc565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461154157600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b5f815f01549050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611672575f6040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611669919061213c565b60405180910390fd5b5f61167e83835f6113eb565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146116f0575f6040517f73c6ac6e0000000000000000000000000000000000000000000000000000000081526004016116e7919061213c565b60405180910390fd5b505050565b6001815f015f828254019250508190555050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361177957816040517f5b08ba18000000000000000000000000000000000000000000000000000000008152600401611770919061213c565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516118659190611ff6565b60405180910390a3505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115611a1e578273ffffffffffffffffffffffffffffffffffffffff1663150b7a026118b56113d2565b8685856040518563ffffffff1660e01b81526004016118d79493929190612c2d565b6020604051808303815f875af192505050801561191257506040513d601f19601f8201168201806040525081019061190f9190612c8b565b60015b611993573d805f8114611940576040519150601f19603f3d011682016040523d82523d5f602084013e611945565b606091505b505f81510361198b57836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611982919061213c565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611a1c57836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611a13919061213c565b60405180910390fd5b505b50505050565b606060405180602001604052805f815250905090565b60605f8203611a80576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611b8e565b5f8290505f5b5f8214611aaf578080611a9890612cb6565b915050600a82611aa89190612d2a565b9150611a86565b5f8167ffffffffffffffff811115611aca57611ac96125d5565b5b6040519080825280601f01601f191660200182016040528015611afc5781602001600182028036833780820191505090505b5090505b5f8514611b8757600182611b149190612b55565b9150600a85611b239190612d5a565b6030611b2f9190612d8a565b60f81b818381518110611b4557611b44612afb565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a85611b809190612d2a565b9450611b00565b8093505050505b919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8080611c0457505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d36575f611c1384611313565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c7d57508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611c905750611c8e818461121c565b155b15611cd257826040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401611cc9919061213c565b60405180910390fd5b8115611d3457838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b611d96838383611e4e565b611e49575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e0a57806040517f7e273289000000000000000000000000000000000000000000000000000000008152600401611e0191906124f8565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401611e40929190612dbd565b60405180910390fd5b505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611f0557508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611ec65750611ec5848461121c565b5b80611f0457508273ffffffffffffffffffffffffffffffffffffffff16611eec83611399565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b60405180608001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160608152602001606081525090565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611f9081611f5c565b8114611f9a575f80fd5b50565b5f81359050611fab81611f87565b92915050565b5f60208284031215611fc657611fc5611f54565b5b5f611fd384828501611f9d565b91505092915050565b5f8115159050919050565b611ff081611fdc565b82525050565b5f6020820190506120095f830184611fe7565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6120518261200f565b61205b8185612019565b935061206b818560208601612029565b61207481612037565b840191505092915050565b5f6020820190508181035f8301526120978184612047565b905092915050565b5f819050919050565b6120b18161209f565b81146120bb575f80fd5b50565b5f813590506120cc816120a8565b92915050565b5f602082840312156120e7576120e6611f54565b5b5f6120f4848285016120be565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612126826120fd565b9050919050565b6121368161211c565b82525050565b5f60208201905061214f5f83018461212d565b92915050565b61215e8161211c565b8114612168575f80fd5b50565b5f8135905061217981612155565b92915050565b5f806040838503121561219557612194611f54565b5b5f6121a28582860161216b565b92505060206121b3858286016120be565b9150509250929050565b5f805f606084860312156121d4576121d3611f54565b5b5f6121e18682870161216b565b93505060206121f28682870161216b565b9250506040612203868287016120be565b9150509250925092565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261222e5761222d61220d565b5b8235905067ffffffffffffffff81111561224b5761224a612211565b5b60208301915083600182028301111561226757612266612215565b5b9250929050565b5f805f805f806060878903121561228857612287611f54565b5b5f87013567ffffffffffffffff8111156122a5576122a4611f58565b5b6122b189828a01612219565b9650965050602087013567ffffffffffffffff8111156122d4576122d3611f58565b5b6122e089828a01612219565b9450945050604087013567ffffffffffffffff81111561230357612302611f58565b5b61230f89828a01612219565b92509250509295509295509295565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6123508161211c565b82525050565b5f82825260208201905092915050565b5f6123708261200f565b61237a8185612356565b935061238a818560208601612029565b61239381612037565b840191505092915050565b5f608083015f8301516123b35f860182612347565b50602083015184820360208601526123cb8282612366565b915050604083015184820360408601526123e58282612366565b915050606083015184820360608601526123ff8282612366565b9150508091505092915050565b5f612417838361239e565b905092915050565b5f602082019050919050565b5f6124358261231e565b61243f8185612328565b93508360208202850161245185612338565b805f5b8581101561248c578484038952815161246d858261240c565b94506124788361241f565b925060208a01995050600181019050612454565b50829750879550505050505092915050565b5f6020820190508181035f8301526124b6818461242b565b905092915050565b5f602082840312156124d3576124d2611f54565b5b5f6124e08482850161216b565b91505092915050565b6124f28161209f565b82525050565b5f60208201905061250b5f8301846124e9565b92915050565b5f6080820190506125245f83018761212d565b81810360208301526125368186612047565b9050818103604083015261254a8185612047565b9050818103606083015261255e8184612047565b905095945050505050565b61257281611fdc565b811461257c575f80fd5b50565b5f8135905061258d81612569565b92915050565b5f80604083850312156125a9576125a8611f54565b5b5f6125b68582860161216b565b92505060206125c78582860161257f565b9150509250929050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61260b82612037565b810181811067ffffffffffffffff8211171561262a576126296125d5565b5b80604052505050565b5f61263c611f4b565b90506126488282612602565b919050565b5f67ffffffffffffffff821115612667576126666125d5565b5b61267082612037565b9050602081019050919050565b828183375f83830152505050565b5f61269d6126988461264d565b612633565b9050828152602081018484840111156126b9576126b86125d1565b5b6126c484828561267d565b509392505050565b5f82601f8301126126e0576126df61220d565b5b81356126f084826020860161268b565b91505092915050565b5f805f806080858703121561271157612710611f54565b5b5f61271e8782880161216b565b945050602061272f8782880161216b565b9350506040612740878288016120be565b925050606085013567ffffffffffffffff81111561276157612760611f58565b5b61276d878288016126cc565b91505092959194509250565b5f806040838503121561278f5761278e611f54565b5b5f61279c8582860161216b565b92505060206127ad8582860161216b565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806127fb57607f821691505b60208210810361280e5761280d6127b7565b5b50919050565b5f6060820190506128275f83018661212d565b61283460208301856124e9565b612841604083018461212d565b949350505050565b5f81905092915050565b5f61285e8385612849565b935061286b83858461267d565b82840190509392505050565b5f612883828486612853565b91508190509392505050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026128eb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826128b0565b6128f586836128b0565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61293061292b6129268461209f565b61290d565b61209f565b9050919050565b5f819050919050565b61294983612916565b61295d61295582612937565b8484546128bc565b825550505050565b5f90565b612971612965565b61297c818484612940565b505050565b5b8181101561299f576129945f82612969565b600181019050612982565b5050565b601f8211156129e4576129b58161288f565b6129be846128a1565b810160208510156129cd578190505b6129e16129d9856128a1565b830182612981565b50505b505050565b5f82821c905092915050565b5f612a045f19846008026129e9565b1980831691505092915050565b5f612a1c83836129f5565b9150826002028217905092915050565b612a358261200f565b67ffffffffffffffff811115612a4e57612a4d6125d5565b5b612a5882546127e4565b612a638282856129a3565b5f60209050601f831160018114612a94575f8415612a82578287015190505b612a8c8582612a11565b865550612af3565b601f198416612aa28661288f565b5f5b82811015612ac957848901518255600182019150602085019450602081019050612aa4565b86831015612ae65784890151612ae2601f8916826129f5565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612b5f8261209f565b9150612b6a8361209f565b9250828203905081811115612b8257612b81612b28565b5b92915050565b5f612b928261200f565b612b9c8185612849565b9350612bac818560208601612029565b80840191505092915050565b5f612bc38285612b88565b9150612bcf8284612b88565b91508190509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f612bff82612bdb565b612c098185612be5565b9350612c19818560208601612029565b612c2281612037565b840191505092915050565b5f608082019050612c405f83018761212d565b612c4d602083018661212d565b612c5a60408301856124e9565b8181036060830152612c6c8184612bf5565b905095945050505050565b5f81519050612c8581611f87565b92915050565b5f60208284031215612ca057612c9f611f54565b5b5f612cad84828501612c77565b91505092915050565b5f612cc08261209f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612cf257612cf1612b28565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612d348261209f565b9150612d3f8361209f565b925082612d4f57612d4e612cfd565b5b828204905092915050565b5f612d648261209f565b9150612d6f8361209f565b925082612d7f57612d7e612cfd565b5b828206905092915050565b5f612d948261209f565b9150612d9f8361209f565b9250828201905080821115612db757612db6612b28565b5b92915050565b5f604082019050612dd05f83018561212d565b612ddd60208301846124e9565b939250505056fea2646970667358221220f15d6edb87a17d8c16b2d42eb23ce027f8193e97b604ff4c135c5cd77686e31364736f6c634300081a0033