0x60806040526040518060400160405280600581526020017f2e6a736f6e000000000000000000000000000000000000000000000000000000815250600b908051906020019062000051929190620003dd565b506040518060400160405280600481526020017f736f6f6e00000000000000000000000000000000000000000000000000000000815250600c90805190602001906200009f929190620003dd565b506000600d55661b5b1bf4c54000600e55611386600f55600a601055600a6011556000601260006101000a81548160ff0219169083151502179055506001601260016101000a81548160ff0219169083151502179055503480156200010357600080fd5b50604051620040d1380380620040d183398181016040528101906200012991906200062a565b6040518060400160405280601281526020017f466c6970706564526172654170657065594300000000000000000000000000008152506040518060400160405280600581526020017f46524159430000000000000000000000000000000000000000000000000000008152508160029080519060200190620001ad929190620003dd565b508060039080519060200190620001c6929190620003dd565b50620001d76200021f60201b60201c565b6000819055505050620001ff620001f36200022860201b60201c565b6200023060201b60201c565b60016009819055506200021881620002f660201b60201c565b5062000762565b60006001905090565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620003066200032260201b60201c565b80600a90805190602001906200031e929190620003dd565b5050565b620003326200022860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000358620003b360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620003b1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003a890620006dc565b60405180910390fd5b565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b828054620003eb906200072d565b90600052602060002090601f0160209004810192826200040f57600085556200045b565b82601f106200042a57805160ff19168380011785556200045b565b828001600101855582156200045b579182015b828111156200045a5782518255916020019190600101906200043d565b5b5090506200046a91906200046e565b5090565b5b80821115620004895760008160009055506001016200046f565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620004f682620004ab565b810181811067ffffffffffffffff82111715620005185762000517620004bc565b5b80604052505050565b60006200052d6200048d565b90506200053b8282620004eb565b919050565b600067ffffffffffffffff8211156200055e576200055d620004bc565b5b6200056982620004ab565b9050602081019050919050565b60005b838110156200059657808201518184015260208101905062000579565b83811115620005a6576000848401525b50505050565b6000620005c3620005bd8462000540565b62000521565b905082815260208101848484011115620005e257620005e1620004a6565b5b620005ef84828562000576565b509392505050565b600082601f8301126200060f576200060e620004a1565b5b815162000621848260208601620005ac565b91505092915050565b60006020828403121562000643576200064262000497565b5b600082015167ffffffffffffffff8111156200066457620006636200049c565b5b6200067284828501620005f7565b91505092915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000620006c46020836200067b565b9150620006d1826200068c565b602082019050919050565b60006020820190508181036000830152620006f781620006b5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200074657607f821691505b6020821081036200075c576200075b620006fe565b5b50919050565b61395f80620007726000396000f3fe6080604052600436106102505760003560e01c8063715018a611610139578063b071401b116100b6578063da5e1f4d1161007a578063da5e1f4d1461087c578063e0a80853146108a5578063e985e9c5146108ce578063eac989f81461090b578063f2fde38b14610936578063f64849801461095f57610250565b8063b071401b1461079b578063b88d4fde146107c4578063c87b56dd146107ed578063d897833e1461082a578063d9f0a6711461085357610250565b806395d89b41116100fd57806395d89b41146106c65780639a1b2885146106f1578063a035b1fe1461071c578063a22cb46514610747578063a45ba8e71461077057610250565b8063715018a6146105f35780637871e1541461060a5780638462151c146106335780638da5cb5b1461067057806394354fd01461069b57610250565b806323b872dd116101d2578063518302271161019657806351830227146104cd5780635503a0e8146104f85780635a0b8b23146105235780636352211e1461054e5780636ad1fe021461058b57806370a08231146105b657610250565b806323b872dd1461041057806333573dc2146104395780633ccfd60b1461046457806342842e0e1461047b5780634fdd43cb146104a457610250565b8063095ea7b311610219578063095ea7b31461033f57806316ba10e01461036857806318160ddd1461039157806319d1997a146103bc57806321a3c248146103e757610250565b806275770a1461025557806301ffc9a71461027e57806306fdde03146102bb57806307883703146102e6578063081812fc14610302575b600080fd5b34801561026157600080fd5b5061027c600480360381019061027791906128bc565b610988565b005b34801561028a57600080fd5b506102a560048036038101906102a09190612941565b61099a565b6040516102b29190612989565b60405180910390f35b3480156102c757600080fd5b506102d0610a2c565b6040516102dd9190612a3d565b60405180910390f35b61030060048036038101906102fb91906128bc565b610abe565b005b34801561030e57600080fd5b50610329600480360381019061032491906128bc565b610c84565b6040516103369190612aa0565b60405180910390f35b34801561034b57600080fd5b5061036660048036038101906103619190612ae7565b610d03565b005b34801561037457600080fd5b5061038f600480360381019061038a9190612c5c565b610e47565b005b34801561039d57600080fd5b506103a6610e69565b6040516103b39190612cb4565b60405180910390f35b3480156103c857600080fd5b506103d1610e80565b6040516103de9190612cb4565b60405180910390f35b3480156103f357600080fd5b5061040e600480360381019061040991906128bc565b610e86565b005b34801561041c57600080fd5b5061043760048036038101906104329190612ccf565b610e98565b005b34801561044557600080fd5b5061044e6111ba565b60405161045b9190612cb4565b60405180910390f35b34801561047057600080fd5b506104796111c0565b005b34801561048757600080fd5b506104a2600480360381019061049d9190612ccf565b61129d565b005b3480156104b057600080fd5b506104cb60048036038101906104c69190612c5c565b6112bd565b005b3480156104d957600080fd5b506104e26112df565b6040516104ef9190612989565b60405180910390f35b34801561050457600080fd5b5061050d6112f2565b60405161051a9190612a3d565b60405180910390f35b34801561052f57600080fd5b50610538611380565b6040516105459190612cb4565b60405180910390f35b34801561055a57600080fd5b50610575600480360381019061057091906128bc565b611386565b6040516105829190612aa0565b60405180910390f35b34801561059757600080fd5b506105a0611398565b6040516105ad9190612989565b60405180910390f35b3480156105c257600080fd5b506105dd60048036038101906105d89190612d22565b6113ab565b6040516105ea9190612cb4565b60405180910390f35b3480156105ff57600080fd5b50610608611463565b005b34801561061657600080fd5b50610631600480360381019061062c9190612d4f565b611477565b005b34801561063f57600080fd5b5061065a60048036038101906106559190612d22565b6114e4565b6040516106679190612e4d565b60405180910390f35b34801561067c57600080fd5b50610685611628565b6040516106929190612aa0565b60405180910390f35b3480156106a757600080fd5b506106b0611652565b6040516106bd9190612cb4565b60405180910390f35b3480156106d257600080fd5b506106db611658565b6040516106e89190612a3d565b60405180910390f35b3480156106fd57600080fd5b506107066116ea565b6040516107139190612cb4565b60405180910390f35b34801561072857600080fd5b506107316116f0565b60405161073e9190612cb4565b60405180910390f35b34801561075357600080fd5b5061076e60048036038101906107699190612e9b565b61172c565b005b34801561077c57600080fd5b506107856118a3565b6040516107929190612a3d565b60405180910390f35b3480156107a757600080fd5b506107c260048036038101906107bd91906128bc565b611931565b005b3480156107d057600080fd5b506107eb60048036038101906107e69190612f7c565b611943565b005b3480156107f957600080fd5b50610814600480360381019061080f91906128bc565b6119b6565b6040516108219190612a3d565b60405180910390f35b34801561083657600080fd5b50610851600480360381019061084c9190612fff565b611b0e565b005b34801561085f57600080fd5b5061087a600480360381019061087591906128bc565b611b33565b005b34801561088857600080fd5b506108a3600480360381019061089e91906128bc565b611b45565b005b3480156108b157600080fd5b506108cc60048036038101906108c79190612fff565b611b57565b005b3480156108da57600080fd5b506108f560048036038101906108f0919061302c565b611b7c565b6040516109029190612989565b60405180910390f35b34801561091757600080fd5b50610920611c10565b60405161092d9190612a3d565b60405180910390f35b34801561094257600080fd5b5061095d60048036038101906109589190612d22565b611c9e565b005b34801561096b57600080fd5b5061098660048036038101906109819190612c5c565b611d21565b005b610990611d43565b80600f8190555050565b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806109f557506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610a255750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b606060028054610a3b9061309b565b80601f0160208091040260200160405190810160405280929190818152602001828054610a679061309b565b8015610ab45780601f10610a8957610100808354040283529160200191610ab4565b820191906000526020600020905b815481529060010190602001808311610a9757829003601f168201915b5050505050905090565b6000610ac8610e69565b9050601260009054906101000a900460ff16610b19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1090613118565b60405180910390fd5b600082118015610b2b57506010548211155b610b6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6190613184565b60405180910390fd5b600f5482610b76610e69565b610b8091906131d3565b1115610bc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb890613275565b60405180910390fd5b60115482610bce336113ab565b610bd891906131d3565b1115610c19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c10906132e1565b60405180910390fd5b81610c2382611dc1565b610c2d9190613301565b341015610c6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c66906133a7565b60405180910390fd5b610c80610c7a611df1565b83611df9565b5050565b6000610c8f82611e17565b610cc5576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610d0e82611386565b90508073ffffffffffffffffffffffffffffffffffffffff16610d2f611e76565b73ffffffffffffffffffffffffffffffffffffffff1614610d9257610d5b81610d56611e76565b611b7c565b610d91576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826006600084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b610e4f611d43565b80600b9080519060200190610e65929190612780565b5050565b6000610e73611e7e565b6001546000540303905090565b600f5481565b610e8e611d43565b80600e8190555050565b6000610ea382611e87565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610f0a576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080610f1684611f53565b91509150610f2c8187610f27611e76565b611f7a565b610f7857610f4186610f3c611e76565b611b7c565b610f77576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610fde576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610feb8686866001611fbe565b8015610ff657600082555b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154600101919050819055506110c4856110a0888887611fc4565b7c020000000000000000000000000000000000000000000000000000000017611fec565b600460008681526020019081526020016000208190555060007c020000000000000000000000000000000000000000000000000000000084160361114a5760006001850190506000600460008381526020019081526020016000205403611148576000548114611147578360046000838152602001908152602001600020819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46111b28686866001612017565b505050505050565b600d5481565b6111c8611d43565b60026009540361120d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120490613413565b60405180910390fd5b6002600981905550600061121f611628565b73ffffffffffffffffffffffffffffffffffffffff164760405161124290613464565b60006040518083038185875af1925050503d806000811461127f576040519150601f19603f3d011682016040523d82523d6000602084013e611284565b606091505b505090508061129257600080fd5b506001600981905550565b6112b883838360405180602001604052806000815250611943565b505050565b6112c5611d43565b80600c90805190602001906112db929190612780565b5050565b601260019054906101000a900460ff1681565b600b80546112ff9061309b565b80601f016020809104026020016040519081016040528092919081815260200182805461132b9061309b565b80156113785780601f1061134d57610100808354040283529160200191611378565b820191906000526020600020905b81548152906001019060200180831161135b57829003601f168201915b505050505081565b60115481565b600061139182611e87565b9050919050565b601260009054906101000a900460ff1681565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611412576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b61146b611d43565b611475600061201d565b565b61147f611d43565b600f548261148b610e69565b61149591906131d3565b11156114d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114cd90613275565b60405180910390fd5b6114e08183611df9565b5050565b606060006114f1836113ab565b67ffffffffffffffff81111561150a57611509612b31565b5b6040519080825280602002602001820160405280156115385781602001602082028036833780820191505090505b50905060006115456120e3565b905060008060005b8381101561161b576000611560826120ec565b9050806040015115611572575061160e565b600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff16146115b257806000015192505b8773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361160c57818685806001019650815181106115ff576115fe613479565b5b6020026020010181815250505b505b808060010191505061154d565b5083945050505050919050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b6060600380546116679061309b565b80601f01602080910402602001604051908101604052809291908181526020018280546116939061309b565b80156116e05780601f106116b5576101008083540402835291602001916116e0565b820191906000526020600020905b8154815290600101906020018083116116c357829003601f168201915b5050505050905090565b600e5481565b60006107d06116fd610e69565b101561170d57600d549050611729565b600f54611718610e69565b101561172857600e549050611729565b5b90565b611734611e76565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611798576040517fb06307db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600760006117a5611e76565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611852611e76565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516118979190612989565b60405180910390a35050565b600c80546118b09061309b565b80601f01602080910402602001604051908101604052809291908181526020018280546118dc9061309b565b80156119295780601f106118fe57610100808354040283529160200191611929565b820191906000526020600020905b81548152906001019060200180831161190c57829003601f168201915b505050505081565b611939611d43565b8060108190555050565b61194e848484610e98565b60008373ffffffffffffffffffffffffffffffffffffffff163b146119b05761197984848484612117565b6119af576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b60606119c182611e17565b611a00576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f79061351a565b60405180910390fd5b60001515601260019054906101000a900460ff16151503611aad57600c8054611a289061309b565b80601f0160208091040260200160405190810160405280929190818152602001828054611a549061309b565b8015611aa15780601f10611a7657610100808354040283529160200191611aa1565b820191906000526020600020905b815481529060010190602001808311611a8457829003601f168201915b50505050509050611b09565b6000611ab7612267565b90506000815111611ad75760405180602001604052806000815250611b05565b80611ae1846122f9565b600b604051602001611af59392919061360a565b6040516020818303038152906040525b9150505b919050565b611b16611d43565b80601260006101000a81548160ff02191690831515021790555050565b611b3b611d43565b8060118190555050565b611b4d611d43565b80600d8190555050565b611b5f611d43565b80601260016101000a81548160ff02191690831515021790555050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600a8054611c1d9061309b565b80601f0160208091040260200160405190810160405280929190818152602001828054611c499061309b565b8015611c965780601f10611c6b57610100808354040283529160200191611c96565b820191906000526020600020905b815481529060010190602001808311611c7957829003601f168201915b505050505081565b611ca6611d43565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0c906136ad565b60405180910390fd5b611d1e8161201d565b50565b611d29611d43565b80600a9080519060200190611d3f929190612780565b5050565b611d4b611df1565b73ffffffffffffffffffffffffffffffffffffffff16611d69611628565b73ffffffffffffffffffffffffffffffffffffffff1614611dbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db690613719565b60405180910390fd5b565b60006107d0821015611dd757600d549050611dec565b600f54821015611deb57600e549050611dec565b5b919050565b600033905090565b611e13828260405180602001604052806000815250612459565b5050565b600081611e22611e7e565b11158015611e31575060005482105b8015611e6f575060007c0100000000000000000000000000000000000000000000000000000000600460008581526020019081526020016000205416145b9050919050565b600033905090565b60006001905090565b60008082905080611e96611e7e565b11611f1c57600054811015611f1b5760006004600083815260200190815260200160002054905060007c0100000000000000000000000000000000000000000000000000000000821603611f19575b60008103611f0f576004600083600190039350838152602001908152602001600020549050611ee5565b8092505050611f4e565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b60008060006006600085815260200190815260200160002090508092508254915050915091565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e8611fdb8686846124f6565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008054905090565b6120f4612806565b61211060046000848152602001908152602001600020546124ff565b9050919050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a0261213d611e76565b8786866040518563ffffffff1660e01b815260040161215f949392919061378e565b6020604051808303816000875af192505050801561219b57506040513d601f19601f8201168201806040525081019061219891906137ef565b60015b612214573d80600081146121cb576040519150601f19603f3d011682016040523d82523d6000602084013e6121d0565b606091505b50600081510361220c576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b6060600a80546122769061309b565b80601f01602080910402602001604051908101604052809291908181526020018280546122a29061309b565b80156122ef5780601f106122c4576101008083540402835291602001916122ef565b820191906000526020600020905b8154815290600101906020018083116122d257829003601f168201915b5050505050905090565b606060008203612340576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612454565b600082905060005b6000821461237257808061235b9061381c565b915050600a8261236b9190613893565b9150612348565b60008167ffffffffffffffff81111561238e5761238d612b31565b5b6040519080825280601f01601f1916602001820160405280156123c05781602001600182028036833780820191505090505b5090505b6000851461244d576001826123d991906138c4565b9150600a856123e891906138f8565b60306123f491906131d3565b60f81b81838151811061240a57612409613479565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856124469190613893565b94506123c4565b8093505050505b919050565b61246383836125b5565b60008373ffffffffffffffffffffffffffffffffffffffff163b146124f157600080549050600083820390505b6124a36000868380600101945086612117565b6124d9576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8181106124905781600054146124ee57600080fd5b50505b505050565b60009392505050565b612507612806565b81816000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060a082901c816020019067ffffffffffffffff16908167ffffffffffffffff168152505060007c01000000000000000000000000000000000000000000000000000000008316141581604001901515908115158152505060e882901c816060019062ffffff16908162ffffff1681525050919050565b600080549050600082036125f5576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6126026000848385611fbe565b600160406001901b178202600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506126798361266a6000866000611fc4565b61267385612770565b17611fec565b6004600083815260200190815260200160002081905550600080838301905073ffffffffffffffffffffffffffffffffffffffff85169150828260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600183015b81811461271a57808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a46001810190506126df565b5060008203612755576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600081905550505061276b6000848385612017565b505050565b60006001821460e11b9050919050565b82805461278c9061309b565b90600052602060002090601f0160209004810192826127ae57600085556127f5565b82601f106127c757805160ff19168380011785556127f5565b828001600101855582156127f5579182015b828111156127f45782518255916020019190600101906127d9565b5b5090506128029190612855565b5090565b6040518060800160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600067ffffffffffffffff168152602001600015158152602001600062ffffff1681525090565b5b8082111561286e576000816000905550600101612856565b5090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b61289981612886565b81146128a457600080fd5b50565b6000813590506128b681612890565b92915050565b6000602082840312156128d2576128d161287c565b5b60006128e0848285016128a7565b91505092915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61291e816128e9565b811461292957600080fd5b50565b60008135905061293b81612915565b92915050565b6000602082840312156129575761295661287c565b5b60006129658482850161292c565b91505092915050565b60008115159050919050565b6129838161296e565b82525050565b600060208201905061299e600083018461297a565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156129de5780820151818401526020810190506129c3565b838111156129ed576000848401525b50505050565b6000601f19601f8301169050919050565b6000612a0f826129a4565b612a1981856129af565b9350612a298185602086016129c0565b612a32816129f3565b840191505092915050565b60006020820190508181036000830152612a578184612a04565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a8a82612a5f565b9050919050565b612a9a81612a7f565b82525050565b6000602082019050612ab56000830184612a91565b92915050565b612ac481612a7f565b8114612acf57600080fd5b50565b600081359050612ae181612abb565b92915050565b60008060408385031215612afe57612afd61287c565b5b6000612b0c85828601612ad2565b9250506020612b1d858286016128a7565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612b69826129f3565b810181811067ffffffffffffffff82111715612b8857612b87612b31565b5b80604052505050565b6000612b9b612872565b9050612ba78282612b60565b919050565b600067ffffffffffffffff821115612bc757612bc6612b31565b5b612bd0826129f3565b9050602081019050919050565b82818337600083830152505050565b6000612bff612bfa84612bac565b612b91565b905082815260208101848484011115612c1b57612c1a612b2c565b5b612c26848285612bdd565b509392505050565b600082601f830112612c4357612c42612b27565b5b8135612c53848260208601612bec565b91505092915050565b600060208284031215612c7257612c7161287c565b5b600082013567ffffffffffffffff811115612c9057612c8f612881565b5b612c9c84828501612c2e565b91505092915050565b612cae81612886565b82525050565b6000602082019050612cc96000830184612ca5565b92915050565b600080600060608486031215612ce857612ce761287c565b5b6000612cf686828701612ad2565b9350506020612d0786828701612ad2565b9250506040612d18868287016128a7565b9150509250925092565b600060208284031215612d3857612d3761287c565b5b6000612d4684828501612ad2565b91505092915050565b60008060408385031215612d6657612d6561287c565b5b6000612d74858286016128a7565b9250506020612d8585828601612ad2565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612dc481612886565b82525050565b6000612dd68383612dbb565b60208301905092915050565b6000602082019050919050565b6000612dfa82612d8f565b612e048185612d9a565b9350612e0f83612dab565b8060005b83811015612e40578151612e278882612dca565b9750612e3283612de2565b925050600181019050612e13565b5085935050505092915050565b60006020820190508181036000830152612e678184612def565b905092915050565b612e788161296e565b8114612e8357600080fd5b50565b600081359050612e9581612e6f565b92915050565b60008060408385031215612eb257612eb161287c565b5b6000612ec085828601612ad2565b9250506020612ed185828601612e86565b9150509250929050565b600067ffffffffffffffff821115612ef657612ef5612b31565b5b612eff826129f3565b9050602081019050919050565b6000612f1f612f1a84612edb565b612b91565b905082815260208101848484011115612f3b57612f3a612b2c565b5b612f46848285612bdd565b509392505050565b600082601f830112612f6357612f62612b27565b5b8135612f73848260208601612f0c565b91505092915050565b60008060008060808587031215612f9657612f9561287c565b5b6000612fa487828801612ad2565b9450506020612fb587828801612ad2565b9350506040612fc6878288016128a7565b925050606085013567ffffffffffffffff811115612fe757612fe6612881565b5b612ff387828801612f4e565b91505092959194509250565b6000602082840312156130155761301461287c565b5b600061302384828501612e86565b91505092915050565b600080604083850312156130435761304261287c565b5b600061305185828601612ad2565b925050602061306285828601612ad2565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806130b357607f821691505b6020821081036130c6576130c561306c565b5b50919050565b7f5468652053616c65206973207061757365642100000000000000000000000000600082015250565b60006131026013836129af565b915061310d826130cc565b602082019050919050565b60006020820190508181036000830152613131816130f5565b9050919050565b7f496e76616c6964206d696e7420616d6f756e7421000000000000000000000000600082015250565b600061316e6014836129af565b915061317982613138565b602082019050919050565b6000602082019050818103600083015261319d81613161565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006131de82612886565b91506131e983612886565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561321e5761321d6131a4565b5b828201905092915050565b7f4d617820737570706c7920657863656564656421000000000000000000000000600082015250565b600061325f6014836129af565b915061326a82613229565b602082019050919050565b6000602082019050818103600083015261328e81613252565b9050919050565b7f4d6178206d696e74207065722077616c6c657420657863656564656421000000600082015250565b60006132cb601d836129af565b91506132d682613295565b602082019050919050565b600060208201905081810360008301526132fa816132be565b9050919050565b600061330c82612886565b915061331783612886565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156133505761334f6131a4565b5b828202905092915050565b7f496e73756666696369656e742066756e64732100000000000000000000000000600082015250565b60006133916013836129af565b915061339c8261335b565b602082019050919050565b600060208201905081810360008301526133c081613384565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b60006133fd601f836129af565b9150613408826133c7565b602082019050919050565b6000602082019050818103600083015261342c816133f0565b9050919050565b600081905092915050565b50565b600061344e600083613433565b91506134598261343e565b600082019050919050565b600061346f82613441565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b6000613504602f836129af565b915061350f826134a8565b604082019050919050565b60006020820190508181036000830152613533816134f7565b9050919050565b600081905092915050565b6000613550826129a4565b61355a818561353a565b935061356a8185602086016129c0565b80840191505092915050565b60008190508160005260206000209050919050565b600081546135988161309b565b6135a2818661353a565b945060018216600081146135bd57600181146135ce57613601565b60ff19831686528186019350613601565b6135d785613576565b60005b838110156135f9578154818901526001820191506020810190506135da565b838801955050505b50505092915050565b60006136168286613545565b91506136228285613545565b915061362e828461358b565b9150819050949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006136976026836129af565b91506136a28261363b565b604082019050919050565b600060208201905081810360008301526136c68161368a565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006137036020836129af565b915061370e826136cd565b602082019050919050565b60006020820190508181036000830152613732816136f6565b9050919050565b600081519050919050565b600082825260208201905092915050565b600061376082613739565b61376a8185613744565b935061377a8185602086016129c0565b613783816129f3565b840191505092915050565b60006080820190506137a36000830187612a91565b6137b06020830186612a91565b6137bd6040830185612ca5565b81810360608301526137cf8184613755565b905095945050505050565b6000815190506137e981612915565b92915050565b6000602082840312156138055761380461287c565b5b6000613813848285016137da565b91505092915050565b600061382782612886565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613859576138586131a4565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061389e82612886565b91506138a983612886565b9250826138b9576138b8613864565b5b828204905092915050565b60006138cf82612886565b91506138da83612886565b9250828210156138ed576138ec6131a4565b5b828203905092915050565b600061390382612886565b915061390e83612886565b92508261391e5761391d613864565b5b82820690509291505056fea2646970667358221220f79804b5c9b9efff0c09274b33a2dfbe5f2f8cc7f5d0dec60414f6301c3eb3e964736f6c634300080d003300000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000