60806040525f600855600260095534801562000019575f80fd5b50336040518060400160405280601281526020017f676967617472616465206279206b756e616c00000000000000000000000000008152506040518060400160405280600481526020017f4749474100000000000000000000000000000000000000000000000000000000815250815f90816200009791906200045e565b508060019081620000a991906200045e565b5050505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036200011f575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040162000116919062000585565b60405180910390fd5b62000130816200013760201b60201c565b50620005a0565b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200027657607f821691505b6020821081036200028c576200028b62000231565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620002f07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002b3565b620002fc8683620002b3565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000346620003406200033a8462000314565b6200031d565b62000314565b9050919050565b5f819050919050565b620003618362000326565b6200037962000370826200034d565b848454620002bf565b825550505050565b5f90565b6200038f62000381565b6200039c81848462000356565b505050565b5b81811015620003c357620003b75f8262000385565b600181019050620003a2565b5050565b601f8211156200041257620003dc8162000292565b620003e784620002a4565b81016020851015620003f7578190505b6200040f6200040685620002a4565b830182620003a1565b50505b505050565b5f82821c905092915050565b5f620004345f198460080262000417565b1980831691505092915050565b5f6200044e838362000423565b9150826002028217905092915050565b6200046982620001fa565b67ffffffffffffffff81111562000485576200048462000204565b5b6200049182546200025e565b6200049e828285620003c7565b5f60209050601f831160018114620004d4575f8415620004bf578287015190505b620004cb858262000441565b8655506200053a565b601f198416620004e48662000292565b5f5b828110156200050d57848901518255600182019150602085019450602081019050620004e6565b868310156200052d578489015162000529601f89168262000423565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200056d8262000542565b9050919050565b6200057f8162000561565b82525050565b5f6020820190506200059a5f83018462000574565b92915050565b615d0d80620005ae5f395ff3fe608060405260043610610219575f3560e01c8063715018a611610122578063b784f8e1116100aa578063e0391b091161006e578063e0391b091461083d578063e740655814610867578063e985e9c51461088f578063ee474f34146108cb578063f2fde38b146108f357610219565b8063b784f8e114610731578063b86a2f7f1461076d578063b88d4fde1461079d578063bae86ca1146107c5578063c87b56dd1461080157610219565b806395d89b41116100f157806395d89b411461064b5780639979ef4514610675578063a168b80514610691578063a22cb465146106cd578063b35487a5146106f557610219565b8063715018a6146105a15780638aa1979f146105b75780638da5cb5b146105f95780639045cd631461062357610219565b806325bf0264116101a557806351ed82881161017457806351ed8288146104a3578063571a26a0146104bf5780636352211e1461050157806367a864911461053d57806370a082311461056557610219565b806325bf0264146103ed5780632dee466d1461041557806331b947fb1461043f57806342842e0e1461047b57610219565b8063081812fc116101ec578063081812fc146102fb578063095ea7b31461033757806318160ddd1461035f57806323b872dd14610389578063245ae880146103b157610219565b8063016fc10e1461021d57806301ffc9a7146102595780630335b5af1461029557806306fdde03146102d1575b5f80fd5b348015610228575f80fd5b50610243600480360381019061023e919061437b565b61091b565b6040516102509190614585565b60405180910390f35b348015610264575f80fd5b5061027f600480360381019061027a91906145fa565b610af1565b60405161028c919061463f565b60405180910390f35b3480156102a0575f80fd5b506102bb60048036038101906102b6919061437b565b610b51565b6040516102c89190614585565b60405180910390f35b3480156102dc575f80fd5b506102e5610d74565b6040516102f291906146a0565b60405180910390f35b348015610306575f80fd5b50610321600480360381019061031c91906146ea565b610e03565b60405161032e9190614724565b60405180910390f35b348015610342575f80fd5b5061035d6004803603810190610358919061473d565b610e1e565b005b34801561036a575f80fd5b50610373610e34565b604051610380919061478a565b60405180910390f35b348015610394575f80fd5b506103af60048036038101906103aa91906147a3565b610e3d565b005b3480156103bc575f80fd5b506103d760048036038101906103d291906146ea565b610f3c565b6040516103e4919061478a565b60405180910390f35b3480156103f8575f80fd5b50610413600480360381019061040e9190614854565b610f59565b005b348015610420575f80fd5b50610429611054565b6040516104369190614abb565b60405180910390f35b34801561044a575f80fd5b5061046560048036038101906104609190614b05565b611426565b604051610472919061478a565b60405180910390f35b348015610486575f80fd5b506104a1600480360381019061049c91906147a3565b6116f0565b005b6104bd60048036038101906104b891906146ea565b61170f565b005b3480156104ca575f80fd5b506104e560048036038101906104e091906146ea565b61184e565b6040516104f89796959493929190614bc2565b60405180910390f35b34801561050c575f80fd5b50610527600480360381019061052291906146ea565b6118d6565b6040516105349190614724565b60405180910390f35b348015610548575f80fd5b50610563600480360381019061055e9190614c2f565b6118e7565b005b348015610570575f80fd5b5061058b6004803603810190610586919061437b565b611942565b604051610598919061478a565b60405180910390f35b3480156105ac575f80fd5b506105b56119f8565b005b3480156105c2575f80fd5b506105dd60048036038101906105d891906146ea565b611a0b565b6040516105f09796959493929190614c6d565b60405180910390f35b348015610604575f80fd5b5061060d611aa0565b60405161061a9190614724565b60405180910390f35b34801561062e575f80fd5b5061064960048036038101906106449190614cda565b611ac8565b005b348015610656575f80fd5b5061065f611b1d565b60405161066c91906146a0565b60405180910390f35b61068f600480360381019061068a91906146ea565b611bad565b005b34801561069c575f80fd5b506106b760048036038101906106b291906146ea565b611e05565b6040516106c49190614d8b565b60405180910390f35b3480156106d8575f80fd5b506106f360048036038101906106ee9190614dab565b611f01565b005b348015610700575f80fd5b5061071b600480360381019061071691906146ea565b611f17565b6040516107289190614f29565b60405180910390f35b34801561073c575f80fd5b506107576004803603810190610752919061437b565b612280565b6040516107649190614585565b60405180910390f35b61078760048036038101906107829190614f84565b612460565b604051610794919061478a565b60405180910390f35b3480156107a8575f80fd5b506107c360048036038101906107be9190615110565b612598565b005b3480156107d0575f80fd5b506107eb60048036038101906107e6919061437b565b6125b5565b6040516107f89190615279565b60405180910390f35b34801561080c575f80fd5b50610827600480360381019061082291906146ea565b6126b7565b60405161083491906146a0565b60405180910390f35b348015610848575f80fd5b506108516127c2565b60405161085e9190614585565b60405180910390f35b348015610872575f80fd5b5061088d60048036038101906108889190614cda565b6129ed565b005b34801561089a575f80fd5b506108b560048036038101906108b09190615299565b612ab3565b6040516108c2919061463f565b60405180910390f35b3480156108d6575f80fd5b506108f160048036038101906108ec91906146ea565b612b41565b005b3480156108fe575f80fd5b506109196004803603810190610914919061437b565b612c4e565b005b60605f610927836125b5565b5f01515190505f808267ffffffffffffffff81111561094957610948614fec565b5b60405190808252806020026020018201604052801561098257816020015b61096f614180565b8152602001906001900390816109675790505b5090505f5b83811015610ae2575f610999876125b5565b5f015182815181106109ae576109ad6152d7565b5b60200260200101519050600a5f8281526020019081526020015f2060020160019054906101000a900460ff16610ad4576040518060a001604052806109f283610f3c565b8152602001610a00836126b7565b8152602001828152602001600a5f8481526020019081526020015f206004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600a5f8481526020019081526020015f206005015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250838581518110610aba57610ab96152d7565b5b60200260200101819052508380610ad090615331565b9450505b508080600101915050610987565b50818152809350505050919050565b5f634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610b4a5750610b4982612cd2565b5b9050919050565b60605f600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101805480602002602001604051908101604052809291908181526020018280548015610bdc57602002820191905f5260205f20905b815481526020019060010190808311610bc8575b505050505090505f815190505f8167ffffffffffffffff811115610c0357610c02614fec565b5b604051908082528060200260200182016040528015610c3c57816020015b610c29614180565b815260200190600190039081610c215790505b5090505f5b82811015610d68575f848281518110610c5d57610c5c6152d7565b5b602002602001015190506040518060a00160405280600a5f8481526020019081526020015f20600301548152602001610c95836126b7565b8152602001828152602001600a5f8481526020019081526020015f206004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600a5f8481526020019081526020015f206005015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250838381518110610d4f57610d4e6152d7565b5b6020026020010181905250508080600101915050610c41565b50809350505050919050565b60605f8054610d82906153a5565b80601f0160208091040260200160405190810160405280929190818152602001828054610dae906153a5565b8015610df95780601f10610dd057610100808354040283529160200191610df9565b820191905f5260205f20905b815481529060010190602001808311610ddc57829003601f168201915b5050505050905090565b5f610e0d82612db3565b50610e1782612e39565b9050919050565b610e308282610e2b612e72565b612e79565b5050565b5f600854905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ead575f6040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610ea49190614724565b60405180910390fd5b5f610ec08383610ebb612e72565b612e8b565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610f36578382826040517f64283d7b000000000000000000000000000000000000000000000000000000008152600401610f2d939291906153d5565b60405180910390fd5b50505050565b5f600a5f8381526020019081526020015f20600301549050919050565b80610f63816118d6565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff160361101357610fe28285858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050613096565b7fc3a9bead1c471f545b6b078b007b110d18cf062d9ce89dce37a8caa6f11d9fac60405160405180910390a161104e565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110459061547a565b60405180910390fd5b50505050565b60605f60085490505f805b828110156110f357600a5f8281526020019081526020015f2060020160019054906101000a900460ff1680156110b35750600c5f8281526020019081526020015f206006015f9054906101000a900460ff16155b80156110d2575042600c5f8381526020019081526020015f2060030154115b156110e65781806110e290615331565b9250505b808060010191505061105f565b505f8167ffffffffffffffff81111561110f5761110e614fec565b5b60405190808252806020026020018201604052801561114857816020015b6111356141d7565b81526020019060019003908161112d5790505b5090505f805b8481101561141b57600a5f8281526020019081526020015f2060020160019054906101000a900460ff1680156111a25750600c5f8281526020019081526020015f206006015f9054906101000a900460ff16155b80156111c1575042600c5f8381526020019081526020015f2060030154115b1561140e575f600c5f8381526020019081526020015f209050604051806101e00160405280600a5f8581526020019081526020015f205f01548152602001600a5f8581526020019081526020015f20600101548152602001600a5f8581526020019081526020015f206002015f9054906101000a900460ff1615158152602001600a5f8581526020019081526020015f2060020160019054906101000a900460ff1615158152602001600c5f8581526020019081526020015f205f0154815260200161128c846118d6565b73ffffffffffffffffffffffffffffffffffffffff1681526020018260020154815260200182600301548152602001826004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600501548152602001826006015f9054906101000a900460ff1615158152602001600a5f8581526020019081526020015f2060030154815260200161133f846126b7565b8152602001600a5f8581526020019081526020015f206004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600a5f8581526020019081526020015f206005015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152508484815181106113f3576113f26152d7565b5b6020026020010181905250828061140990615331565b935050505b808060010191505061114e565b508194505050505090565b5f611433336008546130f0565b6114826008548a8a8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050613096565b5f8690506040518060e00160405280428152602001898152602001871515815260200186151581526020018281526020013373ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff16815250600a5f60085481526020019081526020015f205f820151815f0155602082015181600101556040820151816002015f6101000a81548160ff02191690831515021790555060608201518160020160016101000a81548160ff0219169083151502179055506080820151816003015560a0820151816004015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060c0820151816005015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050506115f2600854876118e7565b60085460627f50fa633176245d976ce90490a01dab04798a36643e91f63a003eeb433ba22376335f428660405161162c9493929190615498565b60405180910390a3600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f01600854908060018154018082558091505060019003905f5260205f20015f9091909190915055600160085f8282546116ab91906154db565b9250508190555084156116d2576116d160016008546116ca919061550e565b858561310d565b5b60016008546116e1919061550e565b91505098975050505050505050565b61170a83838360405180602001604052805f815250612598565b505050565b61171b600133836133fe565b5f611725826118d6565b90505f600a5f8481526020019081526020015f206004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f600a5f8581526020019081526020015f206001015490505f61177f611aa0565b90505f61178e82868686612460565b905033600a5f8881526020019081526020015f206005015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a5f8881526020019081526020015f20600301819055506118068533886116f0565b85604c7f50fa633176245d976ce90490a01dab04798a36643e91f63a003eeb433ba223768733428660405161183e949392919061559c565b60405180910390a3505050505050565b600c602052805f5260405f205f91509050805f015490806001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806002015490806003015490806004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806005015490806006015f9054906101000a900460ff16905087565b5f6118e082612db3565b9050919050565b80600a5f8481526020019081526020015f206002015f6101000a81548160ff0219169083151502179055507fc3a9bead1c471f545b6b078b007b110d18cf062d9ce89dce37a8caa6f11d9fac60405160405180910390a15050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119b3575f6040517f89c62b640000000000000000000000000000000000000000000000000000000081526004016119aa9190614724565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b611a00613485565b611a095f61350c565b565b600a602052805f5260405f205f91509050805f015490806001015490806002015f9054906101000a900460ff16908060020160019054906101000a900460ff1690806003015490806004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806005015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905087565b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b80600c5f8481526020019081526020015f2060030181905550817fe8c9185c1ca125c62fcaa2c4d0965585e69162cb543e089240e245f7e0fe243a82604051611b11919061478a565b60405180910390a25050565b606060018054611b2c906153a5565b80601f0160208091040260200160405190810160405280929190818152602001828054611b58906153a5565b8015611ba35780601f10611b7a57610100808354040283529160200191611ba3565b820191905f5260205f20905b815481529060010190602001808311611b8657829003601f168201915b5050505050905090565b5f600c5f8381526020019081526020015f209050806006015f9054906101000a900460ff1615611c12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0990615629565b60405180910390fd5b80600501543411611c58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4f906156b7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff16816004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d1a57806004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc826005015490811502906040515f60405180830381858888f19350505050158015611d18573d5f803e3d5ffd5b505b33816004015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503481600501819055505f611d6f836118d6565b90503373ffffffffffffffffffffffffffffffffffffffff16837f0e54eff26401bf69b81b26f60bd85ef47f5d85275c1d268d84f68d6897431c4734604051611db8919061478a565b60405180910390a382604d7f50fa633176245d976ce90490a01dab04798a36643e91f63a003eeb433ba2237633844234604051611df894939291906156d5565b60405180910390a3505050565b611e0d61429d565b611e1561429d565b5f611e1f846118d6565b90505f611e2b856126b7565b90505f600a5f8781526020019081526020015f206003015490505f600a5f8881526020019081526020015f206004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506040518060a00160405280600a5f8a81526020019081526020015f2060020160019054906101000a900460ff16151581526020018381526020018481526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681525094508495505050505050919050565b611f13611f0c612e72565b83836135cf565b5050565b611f1f6141d7565b5f600a5f8481526020019081526020015f206040518060e00160405290815f820154815260200160018201548152602001600282015f9054906101000a900460ff161515151581526020016002820160019054906101000a900460ff1615151515815260200160038201548152602001600482015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600582015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152505090505f600c5f8581526020019081526020015f206040518060e00160405290815f8201548152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820154815260200160038201548152602001600482015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160058201548152602001600682015f9054906101000a900460ff16151515158152505090508060c0015115801561215a575042816060015111155b156121715760018160c00190151590811515815250505b5f604051806101e00160405280845f0151815260200184602001518152602001846040015115158152602001846060015115158152602001868152602001836020015173ffffffffffffffffffffffffffffffffffffffff1681526020018360400151815260200183606001518152602001836080015173ffffffffffffffffffffffffffffffffffffffff1681526020018360a0015181526020018360c00151151581526020018460800151815260200161222c876126b7565b81526020018460a0015173ffffffffffffffffffffffffffffffffffffffff16815260200161225a876118d6565b73ffffffffffffffffffffffffffffffffffffffff168152509050809350505050919050565b60605f61228c836125b5565b5f01515190505f808267ffffffffffffffff8111156122ae576122ad614fec565b5b6040519080825280602002602001820160405280156122e757816020015b6122d4614180565b8152602001906001900390816122cc5790505b5090505f5b83811015612451575f6122fe876125b5565b5f01518281518110612313576123126152d7565b5b60200260200101519050600a5f8281526020019081526020015f2060020160019054906101000a900460ff16156124435761234d81613738565b6040518060a0016040528061236183610f3c565b815260200161236f836126b7565b8152602001828152602001600a5f8481526020019081526020015f206004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600a5f8481526020019081526020015f206005015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250838581518110612429576124286152d7565b5b6020026020010181905250838061243f90615331565b9450505b5080806001019150506122ec565b50818152809350505050919050565b5f806064600954346124729190615718565b61247c9190615786565b90505f606484833461248e919061550e565b6124989190615718565b6124a29190615786565b90505f8282346124b2919061550e565b6124bc919061550e565b90508773ffffffffffffffffffffffffffffffffffffffff166108fc8490811502906040515f60405180830381858888f19350505050158015612501573d5f803e3d5ffd5b508673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612545573d5f803e3d5ffd5b508573ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f19350505050158015612589573d5f803e3d5ffd5b50809350505050949350505050565b6125a3848484610e3d565b6125af84848484613845565b50505050565b6125bd6142f6565b600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206040518060400160405290815f820180548060200260200160405190810160405280929190818152602001828054801561265157602002820191905f5260205f20905b81548152602001906001019080831161263d575b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156126a757602002820191905f5260205f20905b815481526020019060010190808311612693575b5050505050815250509050919050565b60606126c282612db3565b505f60065f8481526020019081526020015f2080546126e0906153a5565b80601f016020809104026020016040519081016040528092919081815260200182805461270c906153a5565b80156127575780601f1061272e57610100808354040283529160200191612757565b820191905f5260205f20905b81548152906001019060200180831161273a57829003601f168201915b505050505090505f6127676139f7565b90505f81510361277b5781925050506127bd565b5f825111156127af5780826040516020016127979291906157f0565b604051602081830303815290604052925050506127bd565b6127b884613a0d565b925050505b919050565b60605f6127cd610e34565b90505f805b8281101561284c575f819050600a5f8281526020019081526020015f206002015f9054906101000a900460ff16801561282a5750600a5f8281526020019081526020015f2060020160019054906101000a900460ff16155b1561283e57828061283a90615331565b9350505b5080806001019150506127d2565b505f8167ffffffffffffffff81111561286857612867614fec565b5b6040519080825280602002602001820160405280156128a157816020015b61288e614180565b8152602001906001900390816128865790505b5090505f805b848110156129e2575f819050600a5f8281526020019081526020015f206002015f9054906101000a900460ff1680156128ff5750600a5f8281526020019081526020015f2060020160019054906101000a900460ff16155b156129d4575f61290e826118d6565b90506040518060a0016040528061292484610f3c565b8152602001612932846126b7565b8152602001838152602001600a5f8581526020019081526020015f206004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff168152508585815181106129b9576129b86152d7565b5b602002602001018190525083806129cf90615331565b945050505b5080806001019150506128a7565b508194505050505090565b816129f7816118d6565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603612a735781600a5f8581526020019081526020015f20600301819055507fc3a9bead1c471f545b6b078b007b110d18cf062d9ce89dce37a8caa6f11d9fac60405160405180910390a1612aae565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aa59061547a565b60405180910390fd5b505050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f600c5f8381526020019081526020015f209050612b8b612b61836118d6565b826004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610e3d565b612b94826118d6565b73ffffffffffffffffffffffffffffffffffffffff166108fc826005015490811502906040515f60405180830381858888f19350505050158015612bda573d5f803e3d5ffd5b506001816006015f6101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff16827fd2aa34a4fdbbc6dff6a3e56f46e0f3ae2a31d7785ff3487aa5c95c642acea5018360050154604051612c42919061478a565b60405180910390a35050565b612c56613485565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612cc6575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401612cbd9190614724565b60405180910390fd5b612ccf8161350c565b50565b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480612d9c57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80612dac5750612dab82613a73565b5b9050919050565b5f80612dbe83613adc565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612e3057826040517f7e273289000000000000000000000000000000000000000000000000000000008152600401612e27919061478a565b60405180910390fd5b80915050919050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b612e868383836001613b15565b505050565b5f80612e9684613adc565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612ed757612ed6818486613cd4565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612f6257612f165f855f80613b15565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614612fe157600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b8060065f8481526020019081526020015f2090816130b491906159a7565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7826040516130e4919061478a565b60405180910390a15050565b613109828260405180602001604052805f815250613d97565b5050565b82613117816118d6565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036133bd57600c5f8581526020019081526020015f206006015f9054906101000a900460ff16156131aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131a190615ac0565b60405180910390fd5b600a5f8581526020019081526020015f206002015f9054906101000a900460ff161561320b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161320290615b28565b60405180910390fd5b6040518060e001604052808581526020013373ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018381526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81526020015f1515815250600c5f8681526020019081526020015f205f820151815f01556020820151816001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020155606082015181600301556080820151816004015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a0820151816005015560c0820151816006015f6101000a81548160ff0219169083151502179055509050506001600a5f8681526020019081526020015f2060020160016101000a81548160ff021916908315150217905550837f44c53be110c6aa83aa83cd02e351ed172359268272ee1b5d31c0fe48db35c6c784846040516133b0929190615b46565b60405180910390a26133f8565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133ef9061547a565b60405180910390fd5b50505050565b821561347f577f96561394bac381230de4649200e8831afcab1f451881bbade9ef209f6dd3048060405161343190615bb7565b60405180910390a17fb123f68b8ba02b447d91a6629e121111b7dd6061ff418a60139c8bf00522a284826040516134689190614724565b60405180910390a161347a8282610e1e565b613480565b5b505050565b61348d612e72565b73ffffffffffffffffffffffffffffffffffffffff166134ab611aa0565b73ffffffffffffffffffffffffffffffffffffffff161461350a576134ce612e72565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016135019190614724565b60405180910390fd5b565b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361363f57816040517f5b08ba180000000000000000000000000000000000000000000000000000000081526004016136369190614724565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161372b919061463f565b60405180910390a3505050565b42600c5f8381526020019081526020015f20600301541115801561377a5750600c5f8281526020019081526020015f206006015f9054906101000a900460ff16155b15613842576001600c5f8381526020019081526020015f206006015f6101000a81548160ff021916908315150217905550600c5f8281526020019081526020015f206004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16817fd2aa34a4fdbbc6dff6a3e56f46e0f3ae2a31d7785ff3487aa5c95c642acea501600c5f8581526020019081526020015f2060050154604051613839919061478a565b60405180910390a35b50565b5f8373ffffffffffffffffffffffffffffffffffffffff163b11156139f1578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02613888612e72565b8685856040518563ffffffff1660e01b81526004016138aa9493929190615c27565b6020604051808303815f875af19250505080156138e557506040513d601f19601f820116820180604052508101906138e29190615c85565b60015b613966573d805f8114613913576040519150601f19603f3d011682016040523d82523d5f602084013e613918565b606091505b505f81510361395e57836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016139559190614724565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146139ef57836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016139e69190614724565b60405180910390fd5b505b50505050565b606060405180602001604052805f815250905090565b6060613a1882612db3565b505f613a226139f7565b90505f815111613a405760405180602001604052805f815250613a6b565b80613a4a84613db2565b604051602001613a5b9291906157f0565b6040516020818303038152906040525b915050919050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8080613b4d57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15613c7f575f613b5c84612db3565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015613bc657508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015613bd95750613bd78184612ab3565b155b15613c1b57826040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401613c129190614724565b60405180910390fd5b8115613c7d57838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b613cdf838383613e7c565b613d92575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613d5357806040517f7e273289000000000000000000000000000000000000000000000000000000008152600401613d4a919061478a565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401613d89929190615cb0565b60405180910390fd5b505050565b613da18383613f3c565b613dad5f848484613845565b505050565b60605f6001613dc08461402f565b0190505f8167ffffffffffffffff811115613dde57613ddd614fec565b5b6040519080825280601f01601f191660200182016040528015613e105781602001600182028036833780820191505090505b5090505f82602001820190505b600115613e71578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581613e6657613e65615759565b5b0494505f8503613e1d575b819350505050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015613f3357508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480613ef45750613ef38484612ab3565b5b80613f3257508273ffffffffffffffffffffffffffffffffffffffff16613f1a83612e39565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613fac575f6040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401613fa39190614724565b60405180910390fd5b5f613fb883835f612e8b565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461402a575f6040517f73c6ac6e0000000000000000000000000000000000000000000000000000000081526004016140219190614724565b60405180910390fd5b505050565b5f805f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061408b577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161408157614080615759565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106140c8576d04ee2d6d415b85acef810000000083816140be576140bd615759565b5b0492506020810190505b662386f26fc1000083106140f757662386f26fc1000083816140ed576140ec615759565b5b0492506010810190505b6305f5e1008310614120576305f5e100838161411657614115615759565b5b0492506008810190505b612710831061414557612710838161413b5761413a615759565b5b0492506004810190505b60648310614168576064838161415e5761415d615759565b5b0492506002810190505b600a8310614177576001810190505b80915050919050565b6040518060a001604052805f8152602001606081526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b604051806101e001604052805f81526020015f81526020015f151581526020015f151581526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81526020015f151581526020015f8152602001606081526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b6040518060a001604052805f151581526020015f8152602001606081526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b604051806040016040528060608152602001606081525090565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61434a82614321565b9050919050565b61435a81614340565b8114614364575f80fd5b50565b5f8135905061437581614351565b92915050565b5f602082840312156143905761438f614319565b5b5f61439d84828501614367565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f819050919050565b6143e1816143cf565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561441e578082015181840152602081019050614403565b5f8484015250505050565b5f601f19601f8301169050919050565b5f614443826143e7565b61444d81856143f1565b935061445d818560208601614401565b61446681614429565b840191505092915050565b61447a81614340565b82525050565b5f60a083015f8301516144955f8601826143d8565b50602083015184820360208601526144ad8282614439565b91505060408301516144c260408601826143d8565b5060608301516144d56060860182614471565b5060808301516144e86080860182614471565b508091505092915050565b5f6144fe8383614480565b905092915050565b5f602082019050919050565b5f61451c826143a6565b61452681856143b0565b935083602082028501614538856143c0565b805f5b85811015614573578484038952815161455485826144f3565b945061455f83614506565b925060208a0199505060018101905061453b565b50829750879550505050505092915050565b5f6020820190508181035f83015261459d8184614512565b905092915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6145d9816145a5565b81146145e3575f80fd5b50565b5f813590506145f4816145d0565b92915050565b5f6020828403121561460f5761460e614319565b5b5f61461c848285016145e6565b91505092915050565b5f8115159050919050565b61463981614625565b82525050565b5f6020820190506146525f830184614630565b92915050565b5f82825260208201905092915050565b5f614672826143e7565b61467c8185614658565b935061468c818560208601614401565b61469581614429565b840191505092915050565b5f6020820190508181035f8301526146b88184614668565b905092915050565b6146c9816143cf565b81146146d3575f80fd5b50565b5f813590506146e4816146c0565b92915050565b5f602082840312156146ff576146fe614319565b5b5f61470c848285016146d6565b91505092915050565b61471e81614340565b82525050565b5f6020820190506147375f830184614715565b92915050565b5f806040838503121561475357614752614319565b5b5f61476085828601614367565b9250506020614771858286016146d6565b9150509250929050565b614784816143cf565b82525050565b5f60208201905061479d5f83018461477b565b92915050565b5f805f606084860312156147ba576147b9614319565b5b5f6147c786828701614367565b93505060206147d886828701614367565b92505060406147e9868287016146d6565b9150509250925092565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112614814576148136147f3565b5b8235905067ffffffffffffffff811115614831576148306147f7565b5b60208301915083600182028301111561484d5761484c6147fb565b5b9250929050565b5f805f6040848603121561486b5761486a614319565b5b5f84013567ffffffffffffffff8111156148885761488761431d565b5b614894868287016147ff565b935093505060206148a7868287016146d6565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6148e381614625565b82525050565b5f6101e083015f8301516148ff5f8601826143d8565b50602083015161491260208601826143d8565b50604083015161492560408601826148da565b50606083015161493860608601826148da565b50608083015161494b60808601826143d8565b5060a083015161495e60a0860182614471565b5060c083015161497160c08601826143d8565b5060e083015161498460e08601826143d8565b50610100830151614999610100860182614471565b506101208301516149ae6101208601826143d8565b506101408301516149c36101408601826148da565b506101608301516149d86101608601826143d8565b506101808301518482036101808601526149f28282614439565b9150506101a0830151614a096101a0860182614471565b506101c0830151614a1e6101c0860182614471565b508091505092915050565b5f614a3483836148e9565b905092915050565b5f602082019050919050565b5f614a52826148b1565b614a5c81856148bb565b935083602082028501614a6e856148cb565b805f5b85811015614aa95784840389528151614a8a8582614a29565b9450614a9583614a3c565b925060208a01995050600181019050614a71565b50829750879550505050505092915050565b5f6020820190508181035f830152614ad38184614a48565b905092915050565b614ae481614625565b8114614aee575f80fd5b50565b5f81359050614aff81614adb565b92915050565b5f805f805f805f8060e0898b031215614b2157614b20614319565b5b5f89013567ffffffffffffffff811115614b3e57614b3d61431d565b5b614b4a8b828c016147ff565b98509850506020614b5d8b828c016146d6565b9650506040614b6e8b828c016146d6565b9550506060614b7f8b828c01614af1565b9450506080614b908b828c01614af1565b93505060a0614ba18b828c016146d6565b92505060c0614bb28b828c016146d6565b9150509295985092959890939650565b5f60e082019050614bd55f83018a61477b565b614be26020830189614715565b614bef604083018861477b565b614bfc606083018761477b565b614c096080830186614715565b614c1660a083018561477b565b614c2360c0830184614630565b98975050505050505050565b5f8060408385031215614c4557614c44614319565b5b5f614c52858286016146d6565b9250506020614c6385828601614af1565b9150509250929050565b5f60e082019050614c805f83018a61477b565b614c8d602083018961477b565b614c9a6040830188614630565b614ca76060830187614630565b614cb4608083018661477b565b614cc160a0830185614715565b614cce60c0830184614715565b98975050505050505050565b5f8060408385031215614cf057614cef614319565b5b5f614cfd858286016146d6565b9250506020614d0e858286016146d6565b9150509250929050565b5f60a083015f830151614d2d5f8601826148da565b506020830151614d4060208601826143d8565b5060408301518482036040860152614d588282614439565b9150506060830151614d6d6060860182614471565b506080830151614d806080860182614471565b508091505092915050565b5f6020820190508181035f830152614da38184614d18565b905092915050565b5f8060408385031215614dc157614dc0614319565b5b5f614dce85828601614367565b9250506020614ddf85828601614af1565b9150509250929050565b5f6101e083015f830151614dff5f8601826143d8565b506020830151614e1260208601826143d8565b506040830151614e2560408601826148da565b506060830151614e3860608601826148da565b506080830151614e4b60808601826143d8565b5060a0830151614e5e60a0860182614471565b5060c0830151614e7160c08601826143d8565b5060e0830151614e8460e08601826143d8565b50610100830151614e99610100860182614471565b50610120830151614eae6101208601826143d8565b50610140830151614ec36101408601826148da565b50610160830151614ed86101608601826143d8565b50610180830151848203610180860152614ef28282614439565b9150506101a0830151614f096101a0860182614471565b506101c0830151614f1e6101c0860182614471565b508091505092915050565b5f6020820190508181035f830152614f418184614de9565b905092915050565b5f614f5382614321565b9050919050565b614f6381614f49565b8114614f6d575f80fd5b50565b5f81359050614f7e81614f5a565b92915050565b5f805f8060808587031215614f9c57614f9b614319565b5b5f614fa987828801614f70565b9450506020614fba87828801614f70565b9350506040614fcb87828801614f70565b9250506060614fdc878288016146d6565b91505092959194509250565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61502282614429565b810181811067ffffffffffffffff8211171561504157615040614fec565b5b80604052505050565b5f615053614310565b905061505f8282615019565b919050565b5f67ffffffffffffffff82111561507e5761507d614fec565b5b61508782614429565b9050602081019050919050565b828183375f83830152505050565b5f6150b46150af84615064565b61504a565b9050828152602081018484840111156150d0576150cf614fe8565b5b6150db848285615094565b509392505050565b5f82601f8301126150f7576150f66147f3565b5b81356151078482602086016150a2565b91505092915050565b5f805f806080858703121561512857615127614319565b5b5f61513587828801614367565b945050602061514687828801614367565b9350506040615157878288016146d6565b925050606085013567ffffffffffffffff8111156151785761517761431d565b5b615184878288016150e3565b91505092959194509250565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f6151c483836143d8565b60208301905092915050565b5f602082019050919050565b5f6151e682615190565b6151f0818561519a565b93506151fb836151aa565b805f5b8381101561522b57815161521288826151b9565b975061521d836151d0565b9250506001810190506151fe565b5085935050505092915050565b5f604083015f8301518482035f86015261525282826151dc565b9150506020830151848203602086015261526c82826151dc565b9150508091505092915050565b5f6020820190508181035f8301526152918184615238565b905092915050565b5f80604083850312156152af576152ae614319565b5b5f6152bc85828601614367565b92505060206152cd85828601614367565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61533b826143cf565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361536d5761536c615304565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806153bc57607f821691505b6020821081036153cf576153ce615378565b5b50919050565b5f6060820190506153e85f830186614715565b6153f5602083018561477b565b6154026040830184614715565b949350505050565b7f796f7520617265206e6f74206f776e6572206f66207468697320746f6b656e205f8201527f666f722065646974000000000000000000000000000000000000000000000000602082015250565b5f615464602883614658565b915061546f8261540a565b604082019050919050565b5f6020820190508181035f83015261549181615458565b9050919050565b5f6080820190506154ab5f830187614715565b6154b86020830186614715565b6154c5604083018561477b565b6154d2606083018461477b565b95945050505050565b5f6154e5826143cf565b91506154f0836143cf565b925082820190508082111561550857615507615304565b5b92915050565b5f615518826143cf565b9150615523836143cf565b925082820390508181111561553b5761553a615304565b5b92915050565b5f819050919050565b5f61556461555f61555a84614321565b615541565b614321565b9050919050565b5f6155758261554a565b9050919050565b5f6155868261556b565b9050919050565b6155968161557c565b82525050565b5f6080820190506155af5f83018761558d565b6155bc6020830186614715565b6155c9604083018561477b565b6155d6606083018461477b565b95945050505050565b7f41756374696f6e2068617320656e6465640000000000000000000000000000005f82015250565b5f615613601183614658565b915061561e826155df565b602082019050919050565b5f6020820190508181035f83015261564081615607565b9050919050565b7f42696420616d6f756e74206d75737420626520686967686572207468616e20635f8201527f757272656e742068696768657374206269640000000000000000000000000000602082015250565b5f6156a1603283614658565b91506156ac82615647565b604082019050919050565b5f6020820190508181035f8301526156ce81615695565b9050919050565b5f6080820190506156e85f830187614715565b6156f5602083018661558d565b615702604083018561477b565b61570f606083018461477b565b95945050505050565b5f615722826143cf565b915061572d836143cf565b925082820261573b816143cf565b9150828204841483151761575257615751615304565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f615790826143cf565b915061579b836143cf565b9250826157ab576157aa615759565b5b828204905092915050565b5f81905092915050565b5f6157ca826143e7565b6157d481856157b6565b93506157e4818560208601614401565b80840191505092915050565b5f6157fb82856157c0565b915061580782846157c0565b91508190509392505050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261586f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82615834565b6158798683615834565b95508019841693508086168417925050509392505050565b5f6158ab6158a66158a1846143cf565b615541565b6143cf565b9050919050565b5f819050919050565b6158c483615891565b6158d86158d0826158b2565b848454615840565b825550505050565b5f90565b6158ec6158e0565b6158f78184846158bb565b505050565b5b8181101561591a5761590f5f826158e4565b6001810190506158fd565b5050565b601f82111561595f5761593081615813565b61593984615825565b81016020851015615948578190505b61595c61595485615825565b8301826158fc565b50505b505050565b5f82821c905092915050565b5f61597f5f1984600802615964565b1980831691505092915050565b5f6159978383615970565b9150826002028217905092915050565b6159b0826143e7565b67ffffffffffffffff8111156159c9576159c8614fec565b5b6159d382546153a5565b6159de82828561591e565b5f60209050601f831160018114615a0f575f84156159fd578287015190505b615a07858261598c565b865550615a6e565b601f198416615a1d86615813565b5f5b82811015615a4457848901518255600182019150602085019450602081019050615a1f565b86831015615a615784890151615a5d601f891682615970565b8355505b6001600288020188555050505b505050505050565b7f41756374696f6e20616c726561647920656e64656400000000000000000000005f82015250565b5f615aaa601583614658565b9150615ab582615a76565b602082019050919050565b5f6020820190508181035f830152615ad781615a9e565b9050919050565b7f4e465420697320616c7265616479206c697374656420666f722073616c6500005f82015250565b5f615b12601e83614658565b9150615b1d82615ade565b602082019050919050565b5f6020820190508181035f830152615b3f81615b06565b9050919050565b5f604082019050615b595f83018561477b565b615b66602083018461477b565b9392505050565b7f6920616d20756e646572206973617070726f76656420696600000000000000005f82015250565b5f615ba1601883614658565b9150615bac82615b6d565b602082019050919050565b5f6020820190508181035f830152615bce81615b95565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f615bf982615bd5565b615c038185615bdf565b9350615c13818560208601614401565b615c1c81614429565b840191505092915050565b5f608082019050615c3a5f830187614715565b615c476020830186614715565b615c54604083018561477b565b8181036060830152615c668184615bef565b905095945050505050565b5f81519050615c7f816145d0565b92915050565b5f60208284031215615c9a57615c99614319565b5b5f615ca784828501615c71565b91505092915050565b5f604082019050615cc35f830185614715565b615cd0602083018461477b565b939250505056fea26469706673582212206e45367833f0d1e1fd35a4c9900eca0a9fe2e50845ee71ed60537ef75d32cf2c64736f6c63430008170033