60806040523480156200001157600080fd5b5060405162003bd038038062003bd0833981810160405281019062000037919062000290565b806040518060400160405280600f81526020017f426c617a50617950726f647563747300000000000000000000000000000000008152506040518060400160405280600581526020017f424c5a50500000000000000000000000000000000000000000000000000000008152508160009081620000b591906200053c565b508060019081620000c791906200053c565b505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036200013f5760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040162000136919062000634565b60405180910390fd5b62000150816200016060201b60201c565b506000600c819055505062000651565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000258826200022b565b9050919050565b6200026a816200024b565b81146200027657600080fd5b50565b6000815190506200028a816200025f565b92915050565b600060208284031215620002a957620002a862000226565b5b6000620002b98482850162000279565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200034457607f821691505b6020821081036200035a5762000359620002fc565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620003c47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000385565b620003d0868362000385565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200041d620004176200041184620003e8565b620003f2565b620003e8565b9050919050565b6000819050919050565b6200043983620003fc565b62000451620004488262000424565b84845462000392565b825550505050565b600090565b6200046862000459565b620004758184846200042e565b505050565b5b818110156200049d57620004916000826200045e565b6001810190506200047b565b5050565b601f821115620004ec57620004b68162000360565b620004c18462000375565b81016020851015620004d1578190505b620004e9620004e08562000375565b8301826200047a565b50505b505050565b600082821c905092915050565b60006200051160001984600802620004f1565b1980831691505092915050565b60006200052c8383620004fe565b9150826002028217905092915050565b6200054782620002c2565b67ffffffffffffffff811115620005635762000562620002cd565b5b6200056f82546200032b565b6200057c828285620004a1565b600060209050601f831160018114620005b457600084156200059f578287015190505b620005ab85826200051e565b8655506200061b565b601f198416620005c48662000360565b60005b82811015620005ee57848901518255600182019150602085019450602081019050620005c7565b868310156200060e57848901516200060a601f891682620004fe565b8355505b6001600288020188555050505b505050505050565b6200062e816200024b565b82525050565b60006020820190506200064b600083018462000623565b92915050565b61356f80620006616000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c806370a08231116100de578063b88d4fde11610097578063e985e9c511610071578063e985e9c51461044a578063eacabe141461047a578063f2fde38b14610496578063fca3b5aa146104b257610173565b8063b88d4fde146103e2578063c87b56dd146103fe578063dd2e23031461042e57610173565b806370a0823114610320578063715018a6146103505780638462151c1461035a5780638da5cb5b1461038a57806395d89b41146103a8578063a22cb465146103c657610173565b806323b872dd1161013057806323b872dd1461024e5780632f745c591461026a5780633ccfd60b1461029a57806342842e0e146102a45780634f6ccce7146102c05780636352211e146102f057610173565b806301ffc9a71461017857806306fdde03146101a857806307546172146101c6578063081812fc146101e4578063095ea7b31461021457806318160ddd14610230575b600080fd5b610192600480360381019061018d9190612615565b6104ce565b60405161019f919061265d565b60405180910390f35b6101b06104e0565b6040516101bd9190612708565b60405180910390f35b6101ce610572565b6040516101db919061276b565b60405180910390f35b6101fe60048036038101906101f991906127bc565b610598565b60405161020b919061276b565b60405180910390f35b61022e60048036038101906102299190612815565b6105b4565b005b6102386105ca565b6040516102459190612864565b60405180910390f35b6102686004803603810190610263919061287f565b6105d7565b005b610284600480360381019061027f9190612815565b6106d9565b6040516102919190612864565b60405180910390f35b6102a2610782565b005b6102be60048036038101906102b9919061287f565b610823565b005b6102da60048036038101906102d591906127bc565b610843565b6040516102e79190612864565b60405180910390f35b61030a600480360381019061030591906127bc565b6108b9565b604051610317919061276b565b60405180910390f35b61033a600480360381019061033591906128d2565b6108cb565b6040516103479190612864565b60405180910390f35b610358610985565b005b610374600480360381019061036f91906128d2565b610999565b60405161038191906129bd565b60405180910390f35b610392610aa2565b60405161039f919061276b565b60405180910390f35b6103b0610acc565b6040516103bd9190612708565b60405180910390f35b6103e060048036038101906103db9190612a0b565b610b5e565b005b6103fc60048036038101906103f79190612b80565b610b74565b005b610418600480360381019061041391906127bc565b610b91565b6040516104259190612708565b60405180910390f35b61044860048036038101906104439190612d8a565b610ba3565b005b610464600480360381019061045f9190612de6565b610ce2565b604051610471919061265d565b60405180910390f35b610494600480360381019061048f9190612e26565b610d76565b005b6104b060048036038101906104ab91906128d2565b610e7b565b005b6104cc60048036038101906104c791906128d2565b610f01565b005b60006104d982610f4d565b9050919050565b6060600080546104ef90612eb1565b80601f016020809104026020016040519081016040528092919081815260200182805461051b90612eb1565b80156105685780601f1061053d57610100808354040283529160200191610568565b820191906000526020600020905b81548152906001019060200180831161054b57829003601f168201915b5050505050905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006105a382610fc7565b506105ad8261104f565b9050919050565b6105c682826105c161108c565b611094565b5050565b6000600980549050905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106495760006040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610640919061276b565b60405180910390fd5b600061065d838361065861108c565b6110a6565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146106d3578382826040517f64283d7b0000000000000000000000000000000000000000000000000000000081526004016106ca93929190612ee2565b60405180910390fd5b50505050565b60006106e4836108cb565b82106107295782826040517fa57d13dc000000000000000000000000000000000000000000000000000000008152600401610720929190612f19565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b61078a6110bc565b6000479050600081116107d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c990612f8e565b60405180910390fd5b6107da610aa2565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561081f573d6000803e3d6000fd5b5050565b61083e83838360405180602001604052806000815250610b74565b505050565b600061084d6105ca565b8210610893576000826040517fa57d13dc00000000000000000000000000000000000000000000000000000000815260040161088a929190612f19565b60405180910390fd5b600982815481106108a7576108a6612fae565b5b90600052602060002001549050919050565b60006108c482610fc7565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361093e5760006040517f89c62b64000000000000000000000000000000000000000000000000000000008152600401610935919061276b565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61098d6110bc565b6109976000611143565b565b606060006109a6836108cb565b905060008103610a0257600067ffffffffffffffff8111156109cb576109ca612a55565b5b6040519080825280602002602001820160405280156109f95781602001602082028036833780820191505090505b50915050610a9d565b60008167ffffffffffffffff811115610a1e57610a1d612a55565b5b604051908082528060200260200182016040528015610a4c5781602001602082028036833780820191505090505b50905060005b82811015610a9657610a6485826106d9565b828281518110610a7757610a76612fae565b5b6020026020010181815250508080610a8e9061300c565b915050610a52565b5080925050505b919050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610adb90612eb1565b80601f0160208091040260200160405190810160405280929190818152602001828054610b0790612eb1565b8015610b545780601f10610b2957610100808354040283529160200191610b54565b820191906000526020600020905b815481529060010190602001808311610b3757829003601f168201915b5050505050905090565b610b70610b6961108c565b8383611209565b5050565b610b7f8484846105d7565b610b8b84848484611378565b50505050565b6060610b9c8261152f565b9050919050565b610bab610aa2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610c315750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610c70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c67906130c6565b60405180910390fd5b60005b8151811015610cdd57600c6000815480929190610c8f9061300c565b91905055506000600c549050610ca58482611642565b610cc981848481518110610cbc57610cbb612fae565b5b602002602001015161173b565b508080610cd59061300c565b915050610c73565b505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610d7e610aa2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610e045750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610e43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3a906130c6565b60405180910390fd5b600c6000815480929190610e569061300c565b91905055506000600c549050610e6c8382611642565b610e76818361173b565b505050565b610e836110bc565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ef55760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610eec919061276b565b60405180910390fd5b610efe81611143565b50565b610f096110bc565b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610fc05750610fbf82611797565b5b9050919050565b600080610fd3836117f8565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361104657826040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161103d9190612864565b60405180910390fd5b80915050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600033905090565b6110a18383836001611835565b505050565b60006110b38484846119fa565b90509392505050565b6110c461108c565b73ffffffffffffffffffffffffffffffffffffffff166110e2610aa2565b73ffffffffffffffffffffffffffffffffffffffff16146111415761110561108c565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401611138919061276b565b60405180910390fd5b565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361127a57816040517f5b08ba18000000000000000000000000000000000000000000000000000000008152600401611271919061276b565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161136b919061265d565b60405180910390a3505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b1115611529578273ffffffffffffffffffffffffffffffffffffffff1663150b7a026113bc61108c565b8685856040518563ffffffff1660e01b81526004016113de949392919061313b565b6020604051808303816000875af192505050801561141a57506040513d601f19601f82011682018060405250810190611417919061319c565b60015b61149e573d806000811461144a576040519150601f19603f3d011682016040523d82523d6000602084013e61144f565b606091505b50600081510361149657836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161148d919061276b565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461152757836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161151e919061276b565b60405180910390fd5b505b50505050565b606061153a82610fc7565b50600060066000848152602001908152602001600020805461155b90612eb1565b80601f016020809104026020016040519081016040528092919081815260200182805461158790612eb1565b80156115d45780601f106115a9576101008083540402835291602001916115d4565b820191906000526020600020905b8154815290600101906020018083116115b757829003601f168201915b5050505050905060006115e5611b17565b905060008151036115fa57819250505061163d565b60008251111561162f578082604051602001611617929190613205565b6040516020818303038152906040529250505061163d565b61163884611b2e565b925050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116b45760006040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016116ab919061276b565b60405180910390fd5b60006116c2838360006110a6565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146117365760006040517f73c6ac6e00000000000000000000000000000000000000000000000000000000815260040161172d919061276b565b60405180910390fd5b505050565b8060066000848152602001908152602001600020908161175b91906133d5565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce78260405161178b9190612864565b60405180910390a15050565b6000634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806117f157506117f082611b97565b5b9050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b808061186e5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156119a257600061187e84610fc7565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118e957508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156118fc57506118fa8184610ce2565b155b1561193e57826040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401611935919061276b565b60405180910390fd5b81156119a057838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b600080611a08858585611c79565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a4c57611a4784611e93565b611a8b565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611a8a57611a898185611edc565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611acd57611ac88461203d565b611b0c565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611b0b57611b0a858561210e565b5b5b809150509392505050565b606060405180602001604052806000815250905090565b6060611b3982610fc7565b506000611b44611b17565b90506000815111611b645760405180602001604052806000815250611b8f565b80611b6e84612199565b604051602001611b7f929190613205565b6040516020818303038152906040525b915050919050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611c6257507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611c725750611c7182612267565b5b9050919050565b600080611c85846117f8565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611cc757611cc68184866122d1565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611d5857611d09600085600080611835565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614611ddb576001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b846002600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b600980549050600a600083815260200190815260200160002081905550600981908060018154018082558091505060019003906000526020600020016000909190919091505550565b6000611ee7836108cb565b9050600060086000848152602001908152602001600020549050818114611fcc576000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816008600083815260200190815260200160002081905550505b6008600084815260200190815260200160002060009055600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b6000600160098054905061205191906134a7565b90506000600a600084815260200190815260200160002054905060006009838154811061208157612080612fae565b5b9060005260206000200154905080600983815481106120a3576120a2612fae565b5b906000526020600020018190555081600a600083815260200190815260200160002081905550600a60008581526020019081526020016000206000905560098054806120f2576120f16134db565b5b6001900381819060005260206000200160009055905550505050565b6000600161211b846108cb565b61212591906134a7565b905081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806008600084815260200190815260200160002081905550505050565b6060600060016121a884612395565b01905060008167ffffffffffffffff8111156121c7576121c6612a55565b5b6040519080825280601f01601f1916602001820160405280156121f95781602001600182028036833780820191505090505b509050600082602001820190505b60011561225c578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816122505761224f61350a565b5b04945060008503612207575b819350505050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6122dc8383836124e8565b61239057600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361235157806040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016123489190612864565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401612387929190612f19565b60405180910390fd5b505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106123f3577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816123e9576123e861350a565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310612430576d04ee2d6d415b85acef810000000083816124265761242561350a565b5b0492506020810190505b662386f26fc10000831061245f57662386f26fc1000083816124555761245461350a565b5b0492506010810190505b6305f5e1008310612488576305f5e100838161247e5761247d61350a565b5b0492506008810190505b61271083106124ad5761271083816124a3576124a261350a565b5b0492506004810190505b606483106124d057606483816124c6576124c561350a565b5b0492506002810190505b600a83106124df576001810190505b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156125a057508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061256157506125608484610ce2565b5b8061259f57508273ffffffffffffffffffffffffffffffffffffffff166125878361104f565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6125f2816125bd565b81146125fd57600080fd5b50565b60008135905061260f816125e9565b92915050565b60006020828403121561262b5761262a6125b3565b5b600061263984828501612600565b91505092915050565b60008115159050919050565b61265781612642565b82525050565b6000602082019050612672600083018461264e565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156126b2578082015181840152602081019050612697565b60008484015250505050565b6000601f19601f8301169050919050565b60006126da82612678565b6126e48185612683565b93506126f4818560208601612694565b6126fd816126be565b840191505092915050565b6000602082019050818103600083015261272281846126cf565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006127558261272a565b9050919050565b6127658161274a565b82525050565b6000602082019050612780600083018461275c565b92915050565b6000819050919050565b61279981612786565b81146127a457600080fd5b50565b6000813590506127b681612790565b92915050565b6000602082840312156127d2576127d16125b3565b5b60006127e0848285016127a7565b91505092915050565b6127f28161274a565b81146127fd57600080fd5b50565b60008135905061280f816127e9565b92915050565b6000806040838503121561282c5761282b6125b3565b5b600061283a85828601612800565b925050602061284b858286016127a7565b9150509250929050565b61285e81612786565b82525050565b60006020820190506128796000830184612855565b92915050565b600080600060608486031215612898576128976125b3565b5b60006128a686828701612800565b93505060206128b786828701612800565b92505060406128c8868287016127a7565b9150509250925092565b6000602082840312156128e8576128e76125b3565b5b60006128f684828501612800565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61293481612786565b82525050565b6000612946838361292b565b60208301905092915050565b6000602082019050919050565b600061296a826128ff565b612974818561290a565b935061297f8361291b565b8060005b838110156129b0578151612997888261293a565b97506129a283612952565b925050600181019050612983565b5085935050505092915050565b600060208201905081810360008301526129d7818461295f565b905092915050565b6129e881612642565b81146129f357600080fd5b50565b600081359050612a05816129df565b92915050565b60008060408385031215612a2257612a216125b3565b5b6000612a3085828601612800565b9250506020612a41858286016129f6565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612a8d826126be565b810181811067ffffffffffffffff82111715612aac57612aab612a55565b5b80604052505050565b6000612abf6125a9565b9050612acb8282612a84565b919050565b600067ffffffffffffffff821115612aeb57612aea612a55565b5b612af4826126be565b9050602081019050919050565b82818337600083830152505050565b6000612b23612b1e84612ad0565b612ab5565b905082815260208101848484011115612b3f57612b3e612a50565b5b612b4a848285612b01565b509392505050565b600082601f830112612b6757612b66612a4b565b5b8135612b77848260208601612b10565b91505092915050565b60008060008060808587031215612b9a57612b996125b3565b5b6000612ba887828801612800565b9450506020612bb987828801612800565b9350506040612bca878288016127a7565b925050606085013567ffffffffffffffff811115612beb57612bea6125b8565b5b612bf787828801612b52565b91505092959194509250565b600067ffffffffffffffff821115612c1e57612c1d612a55565b5b602082029050602081019050919050565b600080fd5b600067ffffffffffffffff821115612c4f57612c4e612a55565b5b612c58826126be565b9050602081019050919050565b6000612c78612c7384612c34565b612ab5565b905082815260208101848484011115612c9457612c93612a50565b5b612c9f848285612b01565b509392505050565b600082601f830112612cbc57612cbb612a4b565b5b8135612ccc848260208601612c65565b91505092915050565b6000612ce8612ce384612c03565b612ab5565b90508083825260208201905060208402830185811115612d0b57612d0a612c2f565b5b835b81811015612d5257803567ffffffffffffffff811115612d3057612d2f612a4b565b5b808601612d3d8982612ca7565b85526020850194505050602081019050612d0d565b5050509392505050565b600082601f830112612d7157612d70612a4b565b5b8135612d81848260208601612cd5565b91505092915050565b60008060408385031215612da157612da06125b3565b5b6000612daf85828601612800565b925050602083013567ffffffffffffffff811115612dd057612dcf6125b8565b5b612ddc85828601612d5c565b9150509250929050565b60008060408385031215612dfd57612dfc6125b3565b5b6000612e0b85828601612800565b9250506020612e1c85828601612800565b9150509250929050565b60008060408385031215612e3d57612e3c6125b3565b5b6000612e4b85828601612800565b925050602083013567ffffffffffffffff811115612e6c57612e6b6125b8565b5b612e7885828601612ca7565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612ec957607f821691505b602082108103612edc57612edb612e82565b5b50919050565b6000606082019050612ef7600083018661275c565b612f046020830185612855565b612f11604083018461275c565b949350505050565b6000604082019050612f2e600083018561275c565b612f3b6020830184612855565b9392505050565b7f4e6f204554482062616c616e636520746f207769746864726177000000000000600082015250565b6000612f78601a83612683565b9150612f8382612f42565b602082019050919050565b60006020820190508181036000830152612fa781612f6b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061301782612786565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361304957613048612fdd565b5b600182019050919050565b7f43616c6c6572206973206e6f7420746865206f776e6572206f72206d696e746560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b60006130b0602183612683565b91506130bb82613054565b604082019050919050565b600060208201905081810360008301526130df816130a3565b9050919050565b600081519050919050565b600082825260208201905092915050565b600061310d826130e6565b61311781856130f1565b9350613127818560208601612694565b613130816126be565b840191505092915050565b6000608082019050613150600083018761275c565b61315d602083018661275c565b61316a6040830185612855565b818103606083015261317c8184613102565b905095945050505050565b600081519050613196816125e9565b92915050565b6000602082840312156131b2576131b16125b3565b5b60006131c084828501613187565b91505092915050565b600081905092915050565b60006131df82612678565b6131e981856131c9565b93506131f9818560208601612694565b80840191505092915050565b600061321182856131d4565b915061321d82846131d4565b91508190509392505050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261328b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261324e565b613295868361324e565b95508019841693508086168417925050509392505050565b6000819050919050565b60006132d26132cd6132c884612786565b6132ad565b612786565b9050919050565b6000819050919050565b6132ec836132b7565b6133006132f8826132d9565b84845461325b565b825550505050565b600090565b613315613308565b6133208184846132e3565b505050565b5b818110156133445761333960008261330d565b600181019050613326565b5050565b601f8211156133895761335a81613229565b6133638461323e565b81016020851015613372578190505b61338661337e8561323e565b830182613325565b50505b505050565b600082821c905092915050565b60006133ac6000198460080261338e565b1980831691505092915050565b60006133c5838361339b565b9150826002028217905092915050565b6133de82612678565b67ffffffffffffffff8111156133f7576133f6612a55565b5b6134018254612eb1565b61340c828285613348565b600060209050601f83116001811461343f576000841561342d578287015190505b61343785826133b9565b86555061349f565b601f19841661344d86613229565b60005b8281101561347557848901518255600182019150602085019450602081019050613450565b86831015613492578489015161348e601f89168261339b565b8355505b6001600288020188555050505b505050505050565b60006134b282612786565b91506134bd83612786565b92508282039050818111156134d5576134d4612fdd565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea2646970667358221220714f6ab8c7d1d256ba3c4863a5152f0fb598ee45d057145bdd0de544354ea1a264736f6c634300081400330000000000000000000000002ed05570214f6c0f7612b580ab37c163076e0162