60806040526040518060400160405280601a81526020017f20574554483a2041697264726f70204e465420566f7563686572000000000000815250600490805190602001906200005192919062000735565b506040518060400160405280601d81526020017f4f6666696369616c20417574686f72697a652063726564656e7469616c000000815250600590805190602001906200009f92919062000735565b506000600755348015620000b257600080fd5b50604051620043b3380380620043b38339818101604052810190620000d8919062000859565b6040518060400160405280601781526020017f68747470733a2f2f706c616365686f6c6465722e636f6d0000000000000000008152506200011f81620001b760201b60201c565b506200014062000134620001d360201b60201c565b620001db60201b60201c565b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001b033600060016040518060600160405280602a815260200162004389602a9139620002a160201b60201c565b5062000f15565b8060029080519060200190620001cf92919062000735565b5050565b600033905090565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160362000313576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200030a9062000912565b60405180910390fd5b600062000325620001d360201b60201c565b905060006200033a856200048860201b60201c565b905060006200034f856200048860201b60201c565b905062000368836000898585896200050960201b60201c565b8460008088815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620003c991906200096d565b925050819055508673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62898960405162000449929190620009db565b60405180910390a462000468836000898585896200051160201b60201c565b6200047f836000898989896200051960201b60201c565b50505050505050565b60606000600167ffffffffffffffff811115620004aa57620004a962000a08565b5b604051908082528060200260200182016040528015620004d95781602001602082028036833780820191505090505b5090508281600081518110620004f457620004f362000a37565b5b60200260200101818152505080915050919050565b505050505050565b505050505050565b620005458473ffffffffffffffffffffffffffffffffffffffff166200071260201b62000d141760201c565b156200070a578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b81526004016200058e95949392919062000b1b565b6020604051808303816000875af1925050508015620005cd57506040513d601f19601f82011682018060405250810190620005ca919062000bdc565b60015b6200067e57620005dc62000c1b565b806308c379a0036200063f5750620005f362000c76565b8062000600575062000641565b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000636919062000d5d565b60405180910390fd5b505b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006759062000df7565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161462000708576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006ff9062000e8f565b60405180910390fd5b505b505050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b828054620007439062000ee0565b90600052602060002090601f016020900481019282620007675760008555620007b3565b82601f106200078257805160ff1916838001178555620007b3565b82800160010185558215620007b3579182015b82811115620007b257825182559160200191906001019062000795565b5b509050620007c29190620007c6565b5090565b5b80821115620007e1576000816000905550600101620007c7565b5090565b6000604051905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200082182620007f4565b9050919050565b620008338162000814565b81146200083f57600080fd5b50565b600081519050620008538162000828565b92915050565b600060208284031215620008725762000871620007ef565b5b6000620008828482850162000842565b91505092915050565b600082825260208201905092915050565b7f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000620008fa6021836200088b565b915062000907826200089c565b604082019050919050565b600060208201905081810360008301526200092d81620008eb565b9050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200097a8262000934565b9150620009878362000934565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620009bf57620009be6200093e565b5b828201905092915050565b620009d58162000934565b82525050565b6000604082019050620009f26000830185620009ca565b62000a016020830184620009ca565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b62000a718162000814565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b8381101562000ab357808201518184015260208101905062000a96565b8381111562000ac3576000848401525b50505050565b6000601f19601f8301169050919050565b600062000ae78262000a77565b62000af3818562000a82565b935062000b0581856020860162000a93565b62000b108162000ac9565b840191505092915050565b600060a08201905062000b32600083018862000a66565b62000b41602083018762000a66565b62000b506040830186620009ca565b62000b5f6060830185620009ca565b818103608083015262000b73818462000ada565b90509695505050505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b62000bb68162000b7f565b811462000bc257600080fd5b50565b60008151905062000bd68162000bab565b92915050565b60006020828403121562000bf55762000bf4620007ef565b5b600062000c058482850162000bc5565b91505092915050565b60008160e01c9050919050565b600060033d111562000c3d5760046000803e62000c3a60005162000c0e565b90505b90565b62000c4b8262000ac9565b810181811067ffffffffffffffff8211171562000c6d5762000c6c62000a08565b5b80604052505050565b600060443d1062000d0e5762000c8b620007e5565b60043d036004823e80513d602482011167ffffffffffffffff8211171562000cb557505062000d0e565b808201805167ffffffffffffffff81111562000cd5575050505062000d0e565b80602083010160043d03850181111562000cf457505050505062000d0e565b62000d058260200185018662000c40565b82955050505050505b90565b600081519050919050565b600062000d298262000d11565b62000d3581856200088b565b935062000d4781856020860162000a93565b62000d528162000ac9565b840191505092915050565b6000602082019050818103600083015262000d79818462000d1c565b905092915050565b7f455243313135353a207472616e7366657220746f206e6f6e2d4552433131353560008201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b600062000ddf6034836200088b565b915062000dec8262000d81565b604082019050919050565b6000602082019050818103600083015262000e128162000dd0565b9050919050565b7f455243313135353a204552433131353552656365697665722072656a6563746560008201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b600062000e776028836200088b565b915062000e848262000e19565b604082019050919050565b6000602082019050818103600083015262000eaa8162000e68565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000ef957607f821691505b60208210810362000f0f5762000f0e62000eb1565b5b50919050565b6134648062000f256000396000f3fe608060405234801561001057600080fd5b50600436106101155760003560e01c806355f804b3116100a2578063a22cb46511610071578063a22cb465146102ca578063c204642c146102e6578063e985e9c514610302578063f242432a14610332578063f2fde38b1461034e57610115565b806355f804b314610268578063715018a6146102845780638da5cb5b1461028e57806395d89b41146102ac57610115565b8063198b474a116100e9578063198b474a146101c85780632eb2c2d6146101e457806336020d601461020057806340c10f191461021c5780634e1273f41461023857610115565b8062fdd58e1461011a57806301ffc9a71461014a57806306fdde031461017a5780630e89341c14610198575b600080fd5b610134600480360381019061012f9190611d62565b61036a565b6040516101419190611db1565b60405180910390f35b610164600480360381019061015f9190611e24565b610432565b6040516101719190611e6c565b60405180910390f35b610182610514565b60405161018f9190611f20565b60405180910390f35b6101b260048036038101906101ad9190611f42565b6105a2565b6040516101bf9190611f20565b60405180910390f35b6101e260048036038101906101dd9190611f6f565b610641565b005b6101fe60048036038101906101f99190612199565b61068d565b005b61021a600480360381019061021591906122c3565b61072e565b005b61023660048036038101906102319190611d62565b610804565b005b610252600480360381019061024d91906123fa565b61082c565b60405161025f9190612530565b60405180910390f35b610282600480360381019061027d91906125f3565b610945565b005b61028c610959565b005b61029661096d565b6040516102a3919061264b565b60405180910390f35b6102b4610997565b6040516102c19190611f20565b60405180910390f35b6102e460048036038101906102df9190612692565b610a25565b005b61030060048036038101906102fb91906126d2565b610a3b565b005b61031c60048036038101906103179190612732565b610b5c565b6040516103299190611e6c565b60405180910390f35b61034c60048036038101906103479190612772565b610bf0565b005b61036860048036038101906103639190611f6f565b610c91565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036103da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d19061287b565b60405180910390fd5b60008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104fd57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061050d575061050c82610d37565b5b9050919050565b60048054610521906128ca565b80601f016020809104026020016040519081016040528092919081815260200182805461054d906128ca565b801561059a5780601f1061056f5761010080835404028352916020019161059a565b820191906000526020600020905b81548152906001019060200180831161057d57829003601f168201915b505050505081565b6060600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663714c53986040518163ffffffff1660e01b8152600401600060405180830381865afa158015610611573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061063a919061296b565b9050919050565b610649610da1565b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610695610e1f565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806106db57506106da856106d5610e1f565b610b5c565b5b61071a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071190612a26565b60405180910390fd5b6107278585858585610e27565b5050505050565b610736610da1565b60005b848490508110156107fd5784848281811061075757610756612a46565b5b905060200201602081019061076c9190611f6f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628660016040516107e2929190612aba565b60405180910390a480806107f590612b12565b915050610739565b5050505050565b61080c610da1565b6108288282600160405180602001604052806000815250611148565b5050565b60608151835114610872576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086990612bcc565b60405180910390fd5b6000835167ffffffffffffffff81111561088f5761088e611fa1565b5b6040519080825280602002602001820160405280156108bd5781602001602082028036833780820191505090505b50905060005b845181101561093a5761090a8582815181106108e2576108e1612a46565b5b60200260200101518583815181106108fd576108fc612a46565b5b602002602001015161036a565b82828151811061091d5761091c612a46565b5b6020026020010181815250508061093390612b12565b90506108c3565b508091505092915050565b61094d610da1565b610956816112f8565b50565b610961610da1565b61096b6000611312565b565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600580546109a4906128ca565b80601f01602080910402602001604051908101604052809291908181526020018280546109d0906128ca565b8015610a1d5780601f106109f257610100808354040283529160200191610a1d565b820191906000526020600020905b815481529060010190602001808311610a0057829003601f168201915b505050505081565b610a37610a30610e1f565b83836113d8565b5050565b610a43610da1565b60005b83839050811015610b565760006007544340604051602001610a69929190612c38565b6040516020818303038152906040528051906020012060001c9050848483818110610a9757610a96612a46565b5b9050602002016020810190610aac9190611f6f565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62866001604051610b22929190612aba565b60405180910390a460076000815480929190610b3d90612b12565b9190505550508080610b4e90612b12565b915050610a46565b50505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610bf8610e1f565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610c3e5750610c3d85610c38610e1f565b610b5c565b5b610c7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7490612a26565b60405180910390fd5b610c8a8585858585611544565b5050505050565b610c99610da1565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cff90612cd6565b60405180910390fd5b610d1181611312565b50565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610da9610e1f565b73ffffffffffffffffffffffffffffffffffffffff16610dc761096d565b73ffffffffffffffffffffffffffffffffffffffff1614610e1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1490612d42565b60405180910390fd5b565b600033905090565b8151835114610e6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6290612dd4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610eda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed190612e66565b60405180910390fd5b6000610ee4610e1f565b9050610ef48187878787876117df565b60005b84518110156110a5576000858281518110610f1557610f14612a46565b5b602002602001015190506000858381518110610f3457610f33612a46565b5b60200260200101519050600080600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610fd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcc90612ef8565b60405180910390fd5b81810360008085815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461108a9190612f18565b925050819055505050508061109e90612b12565b9050610ef7565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb878760405161111c929190612f6e565b60405180910390a46111328187878787876117e7565b6111408187878787876117ef565b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036111b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ae90613017565b60405180910390fd5b60006111c1610e1f565b905060006111ce856119c6565b905060006111db856119c6565b90506111ec836000898585896117df565b8460008088815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461124b9190612f18565b925050819055508673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6289896040516112c9929190613037565b60405180910390a46112e0836000898585896117e7565b6112ef83600089898989611a40565b50505050505050565b806002908051906020019061130e929190611c17565b5050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611446576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143d906130d2565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516115379190611e6c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115aa90612e66565b60405180910390fd5b60006115bd610e1f565b905060006115ca856119c6565b905060006115d7856119c6565b90506115e78389898585896117df565b600080600088815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508581101561167e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167590612ef8565b60405180910390fd5b85810360008089815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508560008089815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117339190612f18565b925050819055508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628a8a6040516117b0929190613037565b60405180910390a46117c6848a8a86868a6117e7565b6117d4848a8a8a8a8a611a40565b505050505050505050565b505050505050565b505050505050565b61180e8473ffffffffffffffffffffffffffffffffffffffff16610d14565b156119be578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611854959493929190613147565b6020604051808303816000875af192505050801561189057506040513d601f19601f8201168201806040525081019061188d91906131c4565b60015b6119355761189c6131fe565b806308c379a0036118f857506118b0613220565b806118bb57506118fa565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ef9190611f20565b60405180910390fd5b505b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192c90613322565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146119bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b3906133b4565b60405180910390fd5b505b505050505050565b60606000600167ffffffffffffffff8111156119e5576119e4611fa1565b5b604051908082528060200260200182016040528015611a135781602001602082028036833780820191505090505b5090508281600081518110611a2b57611a2a612a46565b5b60200260200101818152505080915050919050565b611a5f8473ffffffffffffffffffffffffffffffffffffffff16610d14565b15611c0f578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611aa59594939291906133d4565b6020604051808303816000875af1925050508015611ae157506040513d601f19601f82011682018060405250810190611ade91906131c4565b60015b611b8657611aed6131fe565b806308c379a003611b495750611b01613220565b80611b0c5750611b4b565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b409190611f20565b60405180910390fd5b505b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7d90613322565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611c0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c04906133b4565b60405180910390fd5b505b505050505050565b828054611c23906128ca565b90600052602060002090601f016020900481019282611c455760008555611c8c565b82601f10611c5e57805160ff1916838001178555611c8c565b82800160010185558215611c8c579182015b82811115611c8b578251825591602001919060010190611c70565b5b509050611c999190611c9d565b5090565b5b80821115611cb6576000816000905550600101611c9e565b5090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611cf982611cce565b9050919050565b611d0981611cee565b8114611d1457600080fd5b50565b600081359050611d2681611d00565b92915050565b6000819050919050565b611d3f81611d2c565b8114611d4a57600080fd5b50565b600081359050611d5c81611d36565b92915050565b60008060408385031215611d7957611d78611cc4565b5b6000611d8785828601611d17565b9250506020611d9885828601611d4d565b9150509250929050565b611dab81611d2c565b82525050565b6000602082019050611dc66000830184611da2565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611e0181611dcc565b8114611e0c57600080fd5b50565b600081359050611e1e81611df8565b92915050565b600060208284031215611e3a57611e39611cc4565b5b6000611e4884828501611e0f565b91505092915050565b60008115159050919050565b611e6681611e51565b82525050565b6000602082019050611e816000830184611e5d565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611ec1578082015181840152602081019050611ea6565b83811115611ed0576000848401525b50505050565b6000601f19601f8301169050919050565b6000611ef282611e87565b611efc8185611e92565b9350611f0c818560208601611ea3565b611f1581611ed6565b840191505092915050565b60006020820190508181036000830152611f3a8184611ee7565b905092915050565b600060208284031215611f5857611f57611cc4565b5b6000611f6684828501611d4d565b91505092915050565b600060208284031215611f8557611f84611cc4565b5b6000611f9384828501611d17565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611fd982611ed6565b810181811067ffffffffffffffff82111715611ff857611ff7611fa1565b5b80604052505050565b600061200b611cba565b90506120178282611fd0565b919050565b600067ffffffffffffffff82111561203757612036611fa1565b5b602082029050602081019050919050565b600080fd5b600061206061205b8461201c565b612001565b9050808382526020820190506020840283018581111561208357612082612048565b5b835b818110156120ac57806120988882611d4d565b845260208401935050602081019050612085565b5050509392505050565b600082601f8301126120cb576120ca611f9c565b5b81356120db84826020860161204d565b91505092915050565b600080fd5b600067ffffffffffffffff82111561210457612103611fa1565b5b61210d82611ed6565b9050602081019050919050565b82818337600083830152505050565b600061213c612137846120e9565b612001565b905082815260208101848484011115612158576121576120e4565b5b61216384828561211a565b509392505050565b600082601f8301126121805761217f611f9c565b5b8135612190848260208601612129565b91505092915050565b600080600080600060a086880312156121b5576121b4611cc4565b5b60006121c388828901611d17565b95505060206121d488828901611d17565b945050604086013567ffffffffffffffff8111156121f5576121f4611cc9565b5b612201888289016120b6565b935050606086013567ffffffffffffffff81111561222257612221611cc9565b5b61222e888289016120b6565b925050608086013567ffffffffffffffff81111561224f5761224e611cc9565b5b61225b8882890161216b565b9150509295509295909350565b600080fd5b60008083601f84011261228357612282611f9c565b5b8235905067ffffffffffffffff8111156122a05761229f612268565b5b6020830191508360208202830111156122bc576122bb612048565b5b9250929050565b600080600080606085870312156122dd576122dc611cc4565b5b600085013567ffffffffffffffff8111156122fb576122fa611cc9565b5b6123078782880161226d565b9450945050602061231a87828801611d4d565b925050604061232b87828801611d17565b91505092959194509250565b600067ffffffffffffffff82111561235257612351611fa1565b5b602082029050602081019050919050565b600061237661237184612337565b612001565b9050808382526020820190506020840283018581111561239957612398612048565b5b835b818110156123c257806123ae8882611d17565b84526020840193505060208101905061239b565b5050509392505050565b600082601f8301126123e1576123e0611f9c565b5b81356123f1848260208601612363565b91505092915050565b6000806040838503121561241157612410611cc4565b5b600083013567ffffffffffffffff81111561242f5761242e611cc9565b5b61243b858286016123cc565b925050602083013567ffffffffffffffff81111561245c5761245b611cc9565b5b612468858286016120b6565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6124a781611d2c565b82525050565b60006124b9838361249e565b60208301905092915050565b6000602082019050919050565b60006124dd82612472565b6124e7818561247d565b93506124f28361248e565b8060005b8381101561252357815161250a88826124ad565b9750612515836124c5565b9250506001810190506124f6565b5085935050505092915050565b6000602082019050818103600083015261254a81846124d2565b905092915050565b600067ffffffffffffffff82111561256d5761256c611fa1565b5b61257682611ed6565b9050602081019050919050565b600061259661259184612552565b612001565b9050828152602081018484840111156125b2576125b16120e4565b5b6125bd84828561211a565b509392505050565b600082601f8301126125da576125d9611f9c565b5b81356125ea848260208601612583565b91505092915050565b60006020828403121561260957612608611cc4565b5b600082013567ffffffffffffffff81111561262757612626611cc9565b5b612633848285016125c5565b91505092915050565b61264581611cee565b82525050565b6000602082019050612660600083018461263c565b92915050565b61266f81611e51565b811461267a57600080fd5b50565b60008135905061268c81612666565b92915050565b600080604083850312156126a9576126a8611cc4565b5b60006126b785828601611d17565b92505060206126c88582860161267d565b9150509250929050565b6000806000604084860312156126eb576126ea611cc4565b5b600084013567ffffffffffffffff81111561270957612708611cc9565b5b6127158682870161226d565b9350935050602061272886828701611d4d565b9150509250925092565b6000806040838503121561274957612748611cc4565b5b600061275785828601611d17565b925050602061276885828601611d17565b9150509250929050565b600080600080600060a0868803121561278e5761278d611cc4565b5b600061279c88828901611d17565b95505060206127ad88828901611d17565b94505060406127be88828901611d4d565b93505060606127cf88828901611d4d565b925050608086013567ffffffffffffffff8111156127f0576127ef611cc9565b5b6127fc8882890161216b565b9150509295509295909350565b7f455243313135353a2061646472657373207a65726f206973206e6f742061207660008201527f616c6964206f776e657200000000000000000000000000000000000000000000602082015250565b6000612865602a83611e92565b915061287082612809565b604082019050919050565b6000602082019050818103600083015261289481612858565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806128e257607f821691505b6020821081036128f5576128f461289b565b5b50919050565b600061290e61290984612552565b612001565b90508281526020810184848401111561292a576129296120e4565b5b612935848285611ea3565b509392505050565b600082601f83011261295257612951611f9c565b5b81516129628482602086016128fb565b91505092915050565b60006020828403121561298157612980611cc4565b5b600082015167ffffffffffffffff81111561299f5761299e611cc9565b5b6129ab8482850161293d565b91505092915050565b7f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60008201527f6572206f7220617070726f766564000000000000000000000000000000000000602082015250565b6000612a10602e83611e92565b9150612a1b826129b4565b604082019050919050565b60006020820190508181036000830152612a3f81612a03565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000819050919050565b6000612aa4612a9f612a9a84612a75565b612a7f565b611d2c565b9050919050565b612ab481612a89565b82525050565b6000604082019050612acf6000830185611da2565b612adc6020830184612aab565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b1d82611d2c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612b4f57612b4e612ae3565b5b600182019050919050565b7f455243313135353a206163636f756e747320616e6420696473206c656e67746860008201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b6000612bb6602983611e92565b9150612bc182612b5a565b604082019050919050565b60006020820190508181036000830152612be581612ba9565b9050919050565b6000819050919050565b612c07612c0282611d2c565b612bec565b82525050565b6000819050919050565b6000819050919050565b612c32612c2d82612c0d565b612c17565b82525050565b6000612c448285612bf6565b602082019150612c548284612c21565b6020820191508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612cc0602683611e92565b9150612ccb82612c64565b604082019050919050565b60006020820190508181036000830152612cef81612cb3565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612d2c602083611e92565b9150612d3782612cf6565b602082019050919050565b60006020820190508181036000830152612d5b81612d1f565b9050919050565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b6000612dbe602883611e92565b9150612dc982612d62565b604082019050919050565b60006020820190508181036000830152612ded81612db1565b9050919050565b7f455243313135353a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612e50602583611e92565b9150612e5b82612df4565b604082019050919050565b60006020820190508181036000830152612e7f81612e43565b9050919050565b7f455243313135353a20696e73756666696369656e742062616c616e636520666f60008201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b6000612ee2602a83611e92565b9150612eed82612e86565b604082019050919050565b60006020820190508181036000830152612f1181612ed5565b9050919050565b6000612f2382611d2c565b9150612f2e83611d2c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612f6357612f62612ae3565b5b828201905092915050565b60006040820190508181036000830152612f8881856124d2565b90508181036020830152612f9c81846124d2565b90509392505050565b7f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613001602183611e92565b915061300c82612fa5565b604082019050919050565b6000602082019050818103600083015261303081612ff4565b9050919050565b600060408201905061304c6000830185611da2565b6130596020830184611da2565b9392505050565b7f455243313135353a2073657474696e6720617070726f76616c2073746174757360008201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b60006130bc602983611e92565b91506130c782613060565b604082019050919050565b600060208201905081810360008301526130eb816130af565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000613119826130f2565b61312381856130fd565b9350613133818560208601611ea3565b61313c81611ed6565b840191505092915050565b600060a08201905061315c600083018861263c565b613169602083018761263c565b818103604083015261317b81866124d2565b9050818103606083015261318f81856124d2565b905081810360808301526131a3818461310e565b90509695505050505050565b6000815190506131be81611df8565b92915050565b6000602082840312156131da576131d9611cc4565b5b60006131e8848285016131af565b91505092915050565b60008160e01c9050919050565b600060033d111561321d5760046000803e61321a6000516131f1565b90505b90565b600060443d106132ad57613232611cba565b60043d036004823e80513d602482011167ffffffffffffffff8211171561325a5750506132ad565b808201805167ffffffffffffffff81111561327857505050506132ad565b80602083010160043d0385018111156132955750505050506132ad565b6132a482602001850186611fd0565b82955050505050505b90565b7f455243313135353a207472616e7366657220746f206e6f6e2d4552433131353560008201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b600061330c603483611e92565b9150613317826132b0565b604082019050919050565b6000602082019050818103600083015261333b816132ff565b9050919050565b7f455243313135353a204552433131353552656365697665722072656a6563746560008201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b600061339e602883611e92565b91506133a982613342565b604082019050919050565b600060208201905081810360008301526133cd81613391565b9050919050565b600060a0820190506133e9600083018861263c565b6133f6602083018761263c565b6134036040830186611da2565b6134106060830185611da2565b8181036080830152613422818461310e565b9050969550505050505056fea2646970667358221220a7ffb6f21b4c10d439d7e62f93f8c710047c8e1acb897b9dcb015a68ba07857664736f6c634300080e0033307832616138334234363042446241433535374238623038354164346635413332626266663430616130000000000000000000000000c99e7904e7490db209d1bb973ac28db480059afc