608060405234801562000010575f80fd5b50336040518060600160405280603f815260200162003e4d603f91396200003d816200017a60201b60201c565b505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000b1575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620000a8919062000b88565b60405180910390fd5b620000c2816200018f60201b60201c565b506040518060400160405280600f81526020017f457468657265756d204576656e747300000000000000000000000000000000008152506004908162000109919062000e07565b506040518060400160405280600681526020017f4576656e747300000000000000000000000000000000000000000000000000008152506005908162000150919062000e07565b5062000174335f600160405180602001604052805f8152506200025260201b60201c565b620012cd565b80600290816200018b919062000e07565b5050565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603620002c5575f6040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401620002bc919062000b88565b60405180910390fd5b5f80620002d98585620002fa60201b60201c565b91509150620002f25f878484876200032a60201b60201c565b505050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b6200033e85858585620003fd60201b60201c565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614620003f6575f62000383620007af60201b60201c565b90506001845103620003dd575f620003a55f86620007b660201b90919060201c565b90505f620003bd5f86620007b660201b90919060201c565b9050620003d5838989858589620007c960201b60201c565b5050620003f4565b620003f38187878787876200098760201b60201c565b5b505b5050505050565b80518251146200044a57815181516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016200044192919062000efc565b60405180910390fd5b5f6200045b620007af60201b60201c565b90505f5b835181101562000664575f6200047f8286620007b660201b90919060201c565b90505f620004978386620007b660201b90919060201c565b90505f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614620005be575f805f8481526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156200056a57888183856040517f03dee4c500000000000000000000000000000000000000000000000000000000815260040162000561949392919062000f27565b60405180910390fd5b8181035f808581526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16146200065657805f808481526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546200064e919062000f9f565b925050819055505b50508060010190506200045f565b50600183510362000727575f620006855f85620007b660201b90919060201c565b90505f6200069d5f85620007b660201b90919060201c565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6285856040516200071792919062000efc565b60405180910390a45050620007a8565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb86866040516200079f929190620010a0565b60405180910390a45b5050505050565b5f33905090565b5f60208202602084010151905092915050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b11156200097f578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b81526004016200082c9594939291906200116d565b6020604051808303815f875af19250505080156200086a57506040513d601f19601f820116820180604052508101906200086791906200122d565b60015b620008f1573d805f81146200089b576040519150601f19603f3d011682016040523d82523d5f602084013e620008a0565b606091505b505f815103620008e957846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401620008e0919062000b88565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146200097d57846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040162000974919062000b88565b60405180910390fd5b505b505050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b111562000b3d578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401620009ea9594939291906200125d565b6020604051808303815f875af192505050801562000a2857506040513d601f19601f8201168201806040525081019062000a2591906200122d565b60015b62000aaf573d805f811462000a59576040519150601f19603f3d011682016040523d82523d5f602084013e62000a5e565b606091505b505f81510362000aa757846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040162000a9e919062000b88565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161462000b3b57846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040162000b32919062000b88565b60405180910390fd5b505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000b708262000b45565b9050919050565b62000b828162000b64565b82525050565b5f60208201905062000b9d5f83018462000b77565b92915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000c1f57607f821691505b60208210810362000c355762000c3462000bda565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000c997fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000c5c565b62000ca5868362000c5c565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000cef62000ce962000ce38462000cbd565b62000cc6565b62000cbd565b9050919050565b5f819050919050565b62000d0a8362000ccf565b62000d2262000d198262000cf6565b84845462000c68565b825550505050565b5f90565b62000d3862000d2a565b62000d4581848462000cff565b505050565b5b8181101562000d6c5762000d605f8262000d2e565b60018101905062000d4b565b5050565b601f82111562000dbb5762000d858162000c3b565b62000d908462000c4d565b8101602085101562000da0578190505b62000db862000daf8562000c4d565b83018262000d4a565b50505b505050565b5f82821c905092915050565b5f62000ddd5f198460080262000dc0565b1980831691505092915050565b5f62000df7838362000dcc565b9150826002028217905092915050565b62000e128262000ba3565b67ffffffffffffffff81111562000e2e5762000e2d62000bad565b5b62000e3a825462000c07565b62000e4782828562000d70565b5f60209050601f83116001811462000e7d575f841562000e68578287015190505b62000e74858262000dea565b86555062000ee3565b601f19841662000e8d8662000c3b565b5f5b8281101562000eb65784890151825560018201915060208501945060208101905062000e8f565b8683101562000ed6578489015162000ed2601f89168262000dcc565b8355505b6001600288020188555050505b505050505050565b62000ef68162000cbd565b82525050565b5f60408201905062000f115f83018562000eeb565b62000f20602083018462000eeb565b9392505050565b5f60808201905062000f3c5f83018762000b77565b62000f4b602083018662000eeb565b62000f5a604083018562000eeb565b62000f69606083018462000eeb565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000fab8262000cbd565b915062000fb88362000cbd565b925082820190508082111562000fd35762000fd262000f72565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6200100d8162000cbd565b82525050565b5f62001020838362001002565b60208301905092915050565b5f602082019050919050565b5f620010448262000fd9565b62001050818562000fe3565b93506200105d8362000ff3565b805f5b838110156200109357815162001077888262001013565b975062001084836200102c565b92505060018101905062001060565b5085935050505092915050565b5f6040820190508181035f830152620010ba818562001038565b90508181036020830152620010d0818462001038565b90509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101562001112578082015181840152602081019050620010f5565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6200113982620010d9565b620011458185620010e3565b935062001157818560208601620010f3565b62001162816200111d565b840191505092915050565b5f60a082019050620011825f83018862000b77565b62001191602083018762000b77565b620011a0604083018662000eeb565b620011af606083018562000eeb565b8181036080830152620011c381846200112d565b90509695505050505050565b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6200120981620011d3565b811462001214575f80fd5b50565b5f815190506200122781620011fe565b92915050565b5f60208284031215620012455762001244620011cf565b5b5f620012548482850162001217565b91505092915050565b5f60a082019050620012725f83018862000b77565b62001281602083018762000b77565b818103604083015262001295818662001038565b90508181036060830152620012ab818562001038565b90508181036080830152620012c181846200112d565b90509695505050505050565b612b7280620012db5f395ff3fe608060405234801561000f575f80fd5b50600436106100fd575f3560e01c80634e1273f411610095578063a22cb46511610064578063a22cb46514610295578063e985e9c5146102b1578063f242432a146102e1578063f2fde38b146102fd576100fd565b80634e1273f41461021f578063715018a61461024f5780638da5cb5b1461025957806395d89b4114610277576100fd565b80630e89341c116100d15780630e89341c1461019b5780632eb2c2d6146101cb57806343807e58146101e7578063441ff99814610203576100fd565b8062fdd58e1461010157806301ffc9a71461013157806302fe53051461016157806306fdde031461017d575b5f80fd5b61011b60048036038101906101169190611b6d565b610319565b6040516101289190611bba565b60405180910390f35b61014b60048036038101906101469190611c28565b61036e565b6040516101589190611c6d565b60405180910390f35b61017b60048036038101906101769190611dc2565b61044f565b005b610185610463565b6040516101929190611e83565b60405180910390f35b6101b560048036038101906101b09190611ea3565b6104f3565b6040516101c29190611e83565b60405180910390f35b6101e560048036038101906101e09190612030565b610585565b005b61020160048036038101906101fc9190612154565b61062c565b005b61021d60048036038101906102189190612154565b610696565b005b6102396004803603810190610234919061225f565b610763565b604051610246919061238c565b60405180910390f35b61025761086a565b005b61026161087d565b60405161026e91906123bb565b60405180910390f35b61027f6108a5565b60405161028c9190611e83565b60405180910390f35b6102af60048036038101906102aa91906123fe565b610935565b005b6102cb60048036038101906102c6919061243c565b61094b565b6040516102d89190611c6d565b60405180910390f35b6102fb60048036038101906102f6919061247a565b6109d9565b005b6103176004803603810190610312919061250d565b610a80565b005b5f805f8381526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f7fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061043857507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610448575061044782610b04565b5b9050919050565b610457610b6d565b61046081610bf4565b50565b60606004805461047290612565565b80601f016020809104026020016040519081016040528092919081815260200182805461049e90612565565b80156104e95780601f106104c0576101008083540402835291602001916104e9565b820191905f5260205f20905b8154815290600101906020018083116104cc57829003601f168201915b5050505050905090565b60606002805461050290612565565b80601f016020809104026020016040519081016040528092919081815260200182805461052e90612565565b80156105795780601f1061055057610100808354040283529160200191610579565b820191905f5260205f20905b81548152906001019060200180831161055c57829003601f168201915b50505050509050919050565b5f61058e610c07565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156105d357506105d1868261094b565b155b156106175780866040517fe237d92200000000000000000000000000000000000000000000000000000000815260040161060e929190612595565b60405180910390fd5b6106248686868686610c0e565b505050505050565b610634610b6d565b5f5b828290508110156106915761068433848484818110610658576106576125bc565b5b905060200201602081019061066d919061250d565b5f600160405180602001604052805f815250610d02565b8080600101915050610636565b505050565b61069e610b6d565b5f5b8282905081101561075e578282828181106106be576106bd6125bc565b5b90506020020160208101906106d3919061250d565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f625f6001604051610749929190612664565b60405180910390a480806001019150506106a0565b505050565b606081518351146107af57815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016107a692919061268b565b60405180910390fd5b5f835167ffffffffffffffff8111156107cb576107ca611c9e565b5b6040519080825280602002602001820160405280156107f95781602001602082028036833780820191505090505b5090505f5b845181101561085f5761083561081d8287610d1690919063ffffffff16565b6108308387610d2990919063ffffffff16565b610319565b828281518110610848576108476125bc565b5b6020026020010181815250508060010190506107fe565b508091505092915050565b610872610b6d565b61087b5f610d3c565b565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600580546108b490612565565b80601f01602080910402602001604051908101604052809291908181526020018280546108e090612565565b801561092b5780601f106109025761010080835404028352916020019161092b565b820191905f5260205f20905b81548152906001019060200180831161090e57829003601f168201915b5050505050905090565b610947610940610c07565b8383610dff565b5050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f6109e2610c07565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610a275750610a25868261094b565b155b15610a6b5780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610a62929190612595565b60405180910390fd5b610a788686868686610f68565b505050505050565b610a88610b6d565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610af8575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610aef91906123bb565b60405180910390fd5b610b0181610d3c565b50565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610b75610c07565b73ffffffffffffffffffffffffffffffffffffffff16610b9361087d565b73ffffffffffffffffffffffffffffffffffffffff1614610bf257610bb6610c07565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610be991906123bb565b60405180910390fd5b565b8060029081610c039190612846565b5050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610c7e575f6040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610c7591906123bb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610cee575f6040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610ce591906123bb565b60405180910390fd5b610cfb858585858561106e565b5050505050565b610d0f858585858561111a565b5050505050565b5f60208202602084010151905092915050565b5f60208202602084010151905092915050565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e6f575f6040517fced3e100000000000000000000000000000000000000000000000000000000008152600401610e6691906123bb565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610f5b9190611c6d565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610fd8575f6040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610fcf91906123bb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611048575f6040517f01a8351400000000000000000000000000000000000000000000000000000000815260040161103f91906123bb565b60405180910390fd5b5f806110548585611140565b91509150611065878784848761106e565b50505050505050565b61107a85858585611170565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611113575f6110b6610c07565b90506001845103611102575f6110d55f86610d2990919063ffffffff16565b90505f6110eb5f86610d2990919063ffffffff16565b90506110fb838989858589611500565b5050611111565b6111108187878787876116af565b5b505b5050505050565b5f806111268585611140565b91509150611137878784848761185e565b50505050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b80518251146111ba57815181516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016111b192919061268b565b60405180910390fd5b5f6111c3610c07565b90505f5b83518110156113bf575f6111e48286610d2990919063ffffffff16565b90505f6111fa8386610d2990919063ffffffff16565b90505f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161461131d575f805f8481526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156112c957888183856040517f03dee4c50000000000000000000000000000000000000000000000000000000081526004016112c09493929190612915565b60405180910390fd5b8181035f808581526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16146113b257805f808481526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546113aa9190612985565b925050819055505b50508060010190506111c7565b50600183510361147a575f6113dd5f85610d2990919063ffffffff16565b90505f6113f35f85610d2990919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62858560405161146b92919061268b565b60405180910390a450506114f9565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb86866040516114f09291906129b8565b60405180910390a45b5050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b11156116a7578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611560959493929190612a3f565b6020604051808303815f875af192505050801561159b57506040513d601f19601f820116820180604052508101906115989190612aab565b60015b61161c573d805f81146115c9576040519150601f19603f3d011682016040523d82523d5f602084013e6115ce565b606091505b505f81510361161457846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161160b91906123bb565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146116a557846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161169c91906123bb565b60405180910390fd5b505b505050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b1115611856578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b815260040161170f959493929190612ad6565b6020604051808303815f875af192505050801561174a57506040513d601f19601f820116820180604052508101906117479190612aab565b60015b6117cb573d805f8114611778576040519150601f19603f3d011682016040523d82523d5f602084013e61177d565b606091505b505f8151036117c357846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016117ba91906123bb565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461185457846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161184b91906123bb565b60405180910390fd5b505b505050505050565b61186a8585858561187e565b5f8190506060905060609150505050505050565b5f5b8251811015611a10575f61189d8285610d2990919063ffffffff16565b90505f6118b38385610d2990919063ffffffff16565b90505f805f8481526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561194f57878183856040517f03dee4c50000000000000000000000000000000000000000000000000000000081526004016119469493929190612915565b60405180910390fd5b8181035f808581526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808581526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546119fb9190612985565b92505081905550505050806001019050611880565b505f611a1a610c07565b90505f611a305f85610d2990919063ffffffff16565b90505f611a465f85610d2990919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611abe92919061268b565b60405180910390a450505050505050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611b0982611ae0565b9050919050565b611b1981611aff565b8114611b23575f80fd5b50565b5f81359050611b3481611b10565b92915050565b5f819050919050565b611b4c81611b3a565b8114611b56575f80fd5b50565b5f81359050611b6781611b43565b92915050565b5f8060408385031215611b8357611b82611ad8565b5b5f611b9085828601611b26565b9250506020611ba185828601611b59565b9150509250929050565b611bb481611b3a565b82525050565b5f602082019050611bcd5f830184611bab565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611c0781611bd3565b8114611c11575f80fd5b50565b5f81359050611c2281611bfe565b92915050565b5f60208284031215611c3d57611c3c611ad8565b5b5f611c4a84828501611c14565b91505092915050565b5f8115159050919050565b611c6781611c53565b82525050565b5f602082019050611c805f830184611c5e565b92915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611cd482611c8e565b810181811067ffffffffffffffff82111715611cf357611cf2611c9e565b5b80604052505050565b5f611d05611acf565b9050611d118282611ccb565b919050565b5f67ffffffffffffffff821115611d3057611d2f611c9e565b5b611d3982611c8e565b9050602081019050919050565b828183375f83830152505050565b5f611d66611d6184611d16565b611cfc565b905082815260208101848484011115611d8257611d81611c8a565b5b611d8d848285611d46565b509392505050565b5f82601f830112611da957611da8611c86565b5b8135611db9848260208601611d54565b91505092915050565b5f60208284031215611dd757611dd6611ad8565b5b5f82013567ffffffffffffffff811115611df457611df3611adc565b5b611e0084828501611d95565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611e40578082015181840152602081019050611e25565b5f8484015250505050565b5f611e5582611e09565b611e5f8185611e13565b9350611e6f818560208601611e23565b611e7881611c8e565b840191505092915050565b5f6020820190508181035f830152611e9b8184611e4b565b905092915050565b5f60208284031215611eb857611eb7611ad8565b5b5f611ec584828501611b59565b91505092915050565b5f67ffffffffffffffff821115611ee857611ee7611c9e565b5b602082029050602081019050919050565b5f80fd5b5f611f0f611f0a84611ece565b611cfc565b90508083825260208201905060208402830185811115611f3257611f31611ef9565b5b835b81811015611f5b5780611f478882611b59565b845260208401935050602081019050611f34565b5050509392505050565b5f82601f830112611f7957611f78611c86565b5b8135611f89848260208601611efd565b91505092915050565b5f67ffffffffffffffff821115611fac57611fab611c9e565b5b611fb582611c8e565b9050602081019050919050565b5f611fd4611fcf84611f92565b611cfc565b905082815260208101848484011115611ff057611fef611c8a565b5b611ffb848285611d46565b509392505050565b5f82601f83011261201757612016611c86565b5b8135612027848260208601611fc2565b91505092915050565b5f805f805f60a0868803121561204957612048611ad8565b5b5f61205688828901611b26565b955050602061206788828901611b26565b945050604086013567ffffffffffffffff81111561208857612087611adc565b5b61209488828901611f65565b935050606086013567ffffffffffffffff8111156120b5576120b4611adc565b5b6120c188828901611f65565b925050608086013567ffffffffffffffff8111156120e2576120e1611adc565b5b6120ee88828901612003565b9150509295509295909350565b5f80fd5b5f8083601f84011261211457612113611c86565b5b8235905067ffffffffffffffff811115612131576121306120fb565b5b60208301915083602082028301111561214d5761214c611ef9565b5b9250929050565b5f806020838503121561216a57612169611ad8565b5b5f83013567ffffffffffffffff81111561218757612186611adc565b5b612193858286016120ff565b92509250509250929050565b5f67ffffffffffffffff8211156121b9576121b8611c9e565b5b602082029050602081019050919050565b5f6121dc6121d78461219f565b611cfc565b905080838252602082019050602084028301858111156121ff576121fe611ef9565b5b835b8181101561222857806122148882611b26565b845260208401935050602081019050612201565b5050509392505050565b5f82601f83011261224657612245611c86565b5b81356122568482602086016121ca565b91505092915050565b5f806040838503121561227557612274611ad8565b5b5f83013567ffffffffffffffff81111561229257612291611adc565b5b61229e85828601612232565b925050602083013567ffffffffffffffff8111156122bf576122be611adc565b5b6122cb85828601611f65565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61230781611b3a565b82525050565b5f61231883836122fe565b60208301905092915050565b5f602082019050919050565b5f61233a826122d5565b61234481856122df565b935061234f836122ef565b805f5b8381101561237f578151612366888261230d565b975061237183612324565b925050600181019050612352565b5085935050505092915050565b5f6020820190508181035f8301526123a48184612330565b905092915050565b6123b581611aff565b82525050565b5f6020820190506123ce5f8301846123ac565b92915050565b6123dd81611c53565b81146123e7575f80fd5b50565b5f813590506123f8816123d4565b92915050565b5f806040838503121561241457612413611ad8565b5b5f61242185828601611b26565b9250506020612432858286016123ea565b9150509250929050565b5f806040838503121561245257612451611ad8565b5b5f61245f85828601611b26565b925050602061247085828601611b26565b9150509250929050565b5f805f805f60a0868803121561249357612492611ad8565b5b5f6124a088828901611b26565b95505060206124b188828901611b26565b94505060406124c288828901611b59565b93505060606124d388828901611b59565b925050608086013567ffffffffffffffff8111156124f4576124f3611adc565b5b61250088828901612003565b9150509295509295909350565b5f6020828403121561252257612521611ad8565b5b5f61252f84828501611b26565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061257c57607f821691505b60208210810361258f5761258e612538565b5b50919050565b5f6040820190506125a85f8301856123ac565b6125b560208301846123ac565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f819050919050565b5f61261561261061260b846125e9565b6125f2565b611b3a565b9050919050565b612625816125fb565b82525050565b5f819050919050565b5f61264e6126496126448461262b565b6125f2565b611b3a565b9050919050565b61265e81612634565b82525050565b5f6040820190506126775f83018561261c565b6126846020830184612655565b9392505050565b5f60408201905061269e5f830185611bab565b6126ab6020830184611bab565b9392505050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261270e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826126d3565b61271886836126d3565b95508019841693508086168417925050509392505050565b5f61274a61274561274084611b3a565b6125f2565b611b3a565b9050919050565b5f819050919050565b61276383612730565b61277761276f82612751565b8484546126df565b825550505050565b5f90565b61278b61277f565b61279681848461275a565b505050565b5b818110156127b9576127ae5f82612783565b60018101905061279c565b5050565b601f8211156127fe576127cf816126b2565b6127d8846126c4565b810160208510156127e7578190505b6127fb6127f3856126c4565b83018261279b565b50505b505050565b5f82821c905092915050565b5f61281e5f1984600802612803565b1980831691505092915050565b5f612836838361280f565b9150826002028217905092915050565b61284f82611e09565b67ffffffffffffffff81111561286857612867611c9e565b5b6128728254612565565b61287d8282856127bd565b5f60209050601f8311600181146128ae575f841561289c578287015190505b6128a6858261282b565b86555061290d565b601f1984166128bc866126b2565b5f5b828110156128e3578489015182556001820191506020850194506020810190506128be565b8683101561290057848901516128fc601f89168261280f565b8355505b6001600288020188555050505b505050505050565b5f6080820190506129285f8301876123ac565b6129356020830186611bab565b6129426040830185611bab565b61294f6060830184611bab565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61298f82611b3a565b915061299a83611b3a565b92508282019050808211156129b2576129b1612958565b5b92915050565b5f6040820190508181035f8301526129d08185612330565b905081810360208301526129e48184612330565b90509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f612a11826129ed565b612a1b81856129f7565b9350612a2b818560208601611e23565b612a3481611c8e565b840191505092915050565b5f60a082019050612a525f8301886123ac565b612a5f60208301876123ac565b612a6c6040830186611bab565b612a796060830185611bab565b8181036080830152612a8b8184612a07565b90509695505050505050565b5f81519050612aa581611bfe565b92915050565b5f60208284031215612ac057612abf611ad8565b5b5f612acd84828501612a97565b91505092915050565b5f60a082019050612ae95f8301886123ac565b612af660208301876123ac565b8181036040830152612b088186612330565b90508181036060830152612b1c8185612330565b90508181036080830152612b308184612a07565b9050969550505050505056fea264697066735822122098962f3b4991a26bcba27850149a77cc7bd1efd890659e93aa88eace71b05c7164736f6c6343000818003368747470733a2f2f6c61756e63687061642e636f6c6c6563746966792e6170702f6d61696e2f6d657461646174612f4e4a3846344d4c43552f312e6a736f6e