60806040525f6006555f600a5f6101000a81548160ff02191690831515021790555073b50201558b00496a145fe76f7424749556e326d8600a60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550734200000000000000000000000000000000000006600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507323e4e76d01b2002be436ce8d6044b0aa2f68b68a600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550735a26a2abfe972cf20aeffb180f64a331044e74f3600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550734c9cb855170372bfabcced87fb0306a19a55bbd8600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506d1b9f115c1e507f3671e7b7d2f215600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506d138800000000000000000000000060105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506d0c5a4714bc9e97514c43760bfd4660115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506d08bc1166f93275e96b7f389ef0d660125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015610309575f80fd5b50604051613d19380380613d19833981810160405281019061032b9190610521565b8484816003908161033c91906107d4565b50806004908161034c91906107d4565b50505082600781905550816005819055508060098190555050505050506108a3565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6103cd82610387565b810181811067ffffffffffffffff821117156103ec576103eb610397565b5b80604052505050565b5f6103fe61036e565b905061040a82826103c4565b919050565b5f67ffffffffffffffff82111561042957610428610397565b5b61043282610387565b9050602081019050919050565b8281835e5f83830152505050565b5f61045f61045a8461040f565b6103f5565b90508281526020810184848401111561047b5761047a610383565b5b61048684828561043f565b509392505050565b5f82601f8301126104a2576104a161037f565b5b81516104b284826020860161044d565b91505092915050565b5f819050919050565b6104cd816104bb565b81146104d7575f80fd5b50565b5f815190506104e8816104c4565b92915050565b5f819050919050565b610500816104ee565b811461050a575f80fd5b50565b5f8151905061051b816104f7565b92915050565b5f805f805f60a0868803121561053a57610539610377565b5b5f86015167ffffffffffffffff8111156105575761055661037b565b5b6105638882890161048e565b955050602086015167ffffffffffffffff8111156105845761058361037b565b5b6105908882890161048e565b94505060406105a1888289016104da565b93505060606105b2888289016104da565b92505060806105c38882890161050d565b9150509295509295909350565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061061e57607f821691505b602082108103610631576106306105da565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026106937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610658565b61069d8683610658565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6106d86106d36106ce846104bb565b6106b5565b6104bb565b9050919050565b5f819050919050565b6106f1836106be565b6107056106fd826106df565b848454610664565b825550505050565b5f90565b61071961070d565b6107248184846106e8565b505050565b5b818110156107475761073c5f82610711565b60018101905061072a565b5050565b601f82111561078c5761075d81610637565b61076684610649565b81016020851015610775578190505b61078961078185610649565b830182610729565b50505b505050565b5f82821c905092915050565b5f6107ac5f1984600802610791565b1980831691505092915050565b5f6107c4838361079d565b9150826002028217905092915050565b6107dd826105d0565b67ffffffffffffffff8111156107f6576107f5610397565b5b6108008254610607565b61080b82828561074b565b5f60209050601f83116001811461083c575f841561082a578287015190505b61083485826107b9565b86555061089b565b601f19841661084a86610637565b5f5b828110156108715784890151825560018201915060208501945060208101905061084c565b8683101561088e578489015161088a601f89168261079d565b8355505b6001600288020188555050505b505050505050565b613469806108b05f395ff3fe608060405260043610610143575f3560e01c806370b04241116100b5578063ad044f491161006e578063ad044f49146104a9578063b4edfb16146104d3578063bfe60856146104ef578063dd62ed3e14610519578063e7c2b77214610555578063ec3c481a1461057f5761014a565b806370b042411461038957806392fdb023146103c557806395d89b41146103ef5780639c6e026814610419578063a9059cbb14610443578063aa98e0c61461047f5761014a565b806324c62c441161010757806324c62c4414610256578063313ce56714610280578063539ad31a146102aa578063686f2c90146102e65780636e98a2ed1461031157806370a082311461034d5761014a565b806306fdde031461014e578063095ea7b314610178578063150b7a02146101b457806318160ddd146101f057806323b872dd1461021a5761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b506101626105a7565b60405161016f91906121db565b60405180910390f35b348015610183575f80fd5b5061019e60048036038101906101999190612290565b610637565b6040516101ab91906122e8565b60405180910390f35b3480156101bf575f80fd5b506101da60048036038101906101d59190612362565b610659565b6040516101e79190612420565b60405180910390f35b3480156101fb575f80fd5b5061020461066d565b6040516102119190612448565b60405180910390f35b348015610225575f80fd5b50610240600480360381019061023b9190612461565b610676565b60405161024d91906122e8565b60405180910390f35b348015610261575f80fd5b5061026a6106a4565b6040516102779190612448565b60405180910390f35b34801561028b575f80fd5b506102946106aa565b6040516102a191906124cc565b60405180910390f35b3480156102b5575f80fd5b506102d060048036038101906102cb91906124e5565b6106b2565b6040516102dd9190612448565b60405180910390f35b3480156102f1575f80fd5b506102fa610775565b604051610308929190612510565b60405180910390f35b34801561031c575f80fd5b50610337600480360381019061033291906124e5565b610890565b6040516103449190612448565b60405180910390f35b348015610358575f80fd5b50610373600480360381019061036e9190612537565b61097e565b6040516103809190612448565b60405180910390f35b348015610394575f80fd5b506103af60048036038101906103aa91906124e5565b6109c3565b6040516103bc9190612448565b60405180910390f35b3480156103d0575f80fd5b506103d9610a77565b6040516103e69190612448565b60405180910390f35b3480156103fa575f80fd5b50610403610a7d565b60405161041091906121db565b60405180910390f35b348015610424575f80fd5b5061042d610b0d565b60405161043a9190612448565b60405180910390f35b34801561044e575f80fd5b5061046960048036038101906104649190612290565b610b13565b60405161047691906122e8565b60405180910390f35b34801561048a575f80fd5b50610493610b35565b6040516104a0919061257a565b60405180910390f35b3480156104b4575f80fd5b506104bd610b3b565b6040516104ca9190612448565b60405180910390f35b6104ed60048036038101906104e891906125e8565b610b41565b005b3480156104fa575f80fd5b50610503610fd4565b6040516105109190612448565b60405180910390f35b348015610524575f80fd5b5061053f600480360381019061053a9190612645565b610fe4565b60405161054c9190612448565b60405180910390f35b348015610560575f80fd5b50610569611066565b60405161057691906122e8565b60405180910390f35b34801561058a575f80fd5b506105a560048036038101906105a091906124e5565b611078565b005b6060600380546105b6906126b0565b80601f01602080910402602001604051908101604052809291908181526020018280546105e2906126b0565b801561062d5780601f106106045761010080835404028352916020019161062d565b820191905f5260205f20905b81548152906001019060200180831161061057829003601f168201915b5050505050905090565b5f806106416111a8565b905061064e8185856111af565b600191505092915050565b5f63150b7a0260e01b905095945050505050565b5f600254905090565b5f806106806111a8565b905061068d8582856111c1565b610698858585611253565b60019150509392505050565b60055481565b5f6012905090565b5f8082116106f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ec90612750565b60405180910390fd5b6b019d971e4fe8401e74000000821115610744576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073b906127de565b60405180910390fd5b5f6b019d971e4fe8401e74000000600554846107609190612829565b61076a9190612897565b905080915050919050565b5f805f604051806080016040528060085481526020013073ffffffffffffffffffffffffffffffffffffffff1681526020016fffffffffffffffffffffffffffffffff801681526020016fffffffffffffffffffffffffffffffff80168152509050600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fc6f7865826040518263ffffffff1660e01b81526004016108319190612962565b60408051808303815f875af115801561084c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610870919061298f565b80935081945050506108823084611343565b61088b826113c2565b509091565b5f80600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108ec91906129dc565b602060405180830381865afa158015610907573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061092b91906129f5565b90505f8161093761066d565b856109429190612897565b61094c9190612829565b9050600754421015610974576064605a826109679190612829565b6109719190612897565b90505b8092505050919050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f808211610a06576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109fd90612a90565b60405180910390fd5b600554821115610a4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4290612b1e565b60405180910390fd5b6b019d971e4fe8401e7400000060055483610a669190612897565b610a709190612829565b9050919050565b60085481565b606060048054610a8c906126b0565b80601f0160208091040260200160405190810160405280929190818152602001828054610ab8906126b0565b8015610b035780601f10610ada57610100808354040283529160200191610b03565b820191905f5260205f20905b815481529060010190602001808311610ae657829003601f168201915b5050505050905090565b60075481565b5f80610b1d6111a8565b9050610b2a818585611253565b600191505092915050565b60095481565b60065481565b6007544210610b85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7c90612b86565b60405180910390fd5b5f8311610bc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbe90612bee565b60405180910390fd5b60055483600654610bd89190612c0c565b1115610c19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1090612caf565b60405180910390fd5b5f801b60095414610cde575f3384604051602001610c38929190612d32565b604051602081830303815290604052805190602001209050610c9d8383808060200260200160405190810160405280939291908181526020018383602002808284375f81840152601f19601f8201169050808301925050505050505060095483611533565b610cdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd390612da7565b60405180910390fd5b505b823414610d20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1790612e0f565b60405180910390fd5b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0846040518263ffffffff1660e01b81526004015f604051808303818588803b158015610d87575f80fd5b505af1158015610d99573d5f803e3d5ffd5b5050505050610da7836113c2565b5f610db1846109c3565b90508360065f828254610dc49190612c0c565b92505081905550610dd53382611549565b60055460065410158015610df55750600a5f9054906101000a900460ff16155b15610fce575f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1610610e7657600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e78565b305b90505f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1611610ef657600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610ef8565b305b90505f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f5591906129dc565b602060405180830381865afa158015610f70573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f9491906129f5565b9050610f9f816115c8565b610fac600654848461168c565b505050506001600a5f6101000a81548160ff0219169083151502179055505050505b50505050565b6b019d971e4fe8401e7400000081565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600a5f9054906101000a900460ff1681565b5f81116110ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b190612e9d565b60405180910390fd5b5f6110c482610890565b90506110d03383611343565b6110d9816115c8565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b81526004016111339190612448565b5f604051808303815f87803b15801561114a575f80fd5b505af115801561115c573d5f803e3d5ffd5b505050503373ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156111a3573d5f803e3d5ffd5b505050565b5f33905090565b6111bc8383836001611cf7565b505050565b5f6111cc8484610fe4565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461124d578181101561123e578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161123593929190612ebb565b60405180910390fd5b61124c84848484035f611cf7565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112c3575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016112ba91906129dc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611333575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161132a91906129dc565b60405180910390fd5b61133e838383611ec6565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113b3575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016113aa91906129dc565b60405180910390fd5b6113be825f83611ec6565b5050565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611440929190612ef0565b6020604051808303815f875af115801561145c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114809190612f41565b50600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663617ba037600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683305f6040518563ffffffff1660e01b81526004016115039493929190612fbb565b5f604051808303815f87803b15801561151a575f80fd5b505af115801561152c573d5f803e3d5ffd5b5050505050565b5f8261153f85846120df565b1490509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115b9575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016115b091906129dc565b60405180910390fd5b6115c45f8383611ec6565b5050565b600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166369328dec600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683306040518463ffffffff1660e01b815260040161164893929190612ffe565b6020604051808303815f875af1158015611664573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061168891906129f5565b5050565b5f805f805f600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a16712958888610bb86040518463ffffffff1660e01b81526004016116f19392919061307a565b6020604051808303815f875af115801561170d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061173191906130c3565b90505f678ac7230489e800006005540361176e57600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050611847565b6801158e460913d00000600554036117a95760105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050611846565b6802b5e3af16b1880000600554036117e45760115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050611845565b68056bc75e2d631000006005540361181f5760125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050611844565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b5b5b5b8173ffffffffffffffffffffffffffffffffffffffff1663f637731d826040518263ffffffff1660e01b815260040161188091906130fd565b5f604051808303815f87803b158015611897575f80fd5b505af11580156118a9573d5f803e3d5ffd5b505050505f8273ffffffffffffffffffffffffffffffffffffffff1663d0c93a7c6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118f7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061191b919061314c565b9050600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168c6040518363ffffffff1660e01b815260040161199a929190612ef0565b6020604051808303815f875af11580156119b6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119da9190612f41565b506119f1306b019d971e4fe8401e74000000611549565b3073ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166b019d971e4fe8401e740000006040518363ffffffff1660e01b8152600401611a59929190612ef0565b6020604051808303815f875af1158015611a75573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a999190612f41565b505f6040518061016001604052808b73ffffffffffffffffffffffffffffffffffffffff1681526020018a73ffffffffffffffffffffffffffffffffffffffff168152602001610bb862ffffff16815260200183847ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff27618611b199190613177565b611b2391906131df565b60020b815260200183847ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff27618611b579061321b565b611b619190613177565b611b6b91906131df565b60020b81526020013073ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff1614611bac578c611bba565b6b019d971e4fe8401e740000005b81526020013073ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff1614611bf8578c611c06565b6b019d971e4fe8401e740000005b81526020015f81526020015f81526020013073ffffffffffffffffffffffffffffffffffffffff168152602001428152509050600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166388316456826040518263ffffffff1660e01b8152600401611c93919061335e565b6080604051808303815f875af1158015611caf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cd391906133a2565b809850819950829a50839b5050505050876008819055505050505093509350935093565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611d67575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401611d5e91906129dc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611dd7575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401611dce91906129dc565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015611ec0578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051611eb79190612448565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f16578060025f828254611f0a9190612c0c565b92505081905550611fe4565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611f9f578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401611f9693929190612ebb565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361202b578060025f8282540392505081905550612075565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120d29190612448565b60405180910390a3505050565b5f808290505f5b8451811015612122576121138286838151811061210657612105613406565b5b602002602001015161212d565b915080806001019150506120e6565b508091505092915050565b5f8183106121445761213f8284612157565b61214f565b61214e8383612157565b5b905092915050565b5f825f528160205260405f20905092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6121ad8261216b565b6121b78185612175565b93506121c7818560208601612185565b6121d081612193565b840191505092915050565b5f6020820190508181035f8301526121f381846121a3565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61222c82612203565b9050919050565b61223c81612222565b8114612246575f80fd5b50565b5f8135905061225781612233565b92915050565b5f819050919050565b61226f8161225d565b8114612279575f80fd5b50565b5f8135905061228a81612266565b92915050565b5f80604083850312156122a6576122a56121fb565b5b5f6122b385828601612249565b92505060206122c48582860161227c565b9150509250929050565b5f8115159050919050565b6122e2816122ce565b82525050565b5f6020820190506122fb5f8301846122d9565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261232257612321612301565b5b8235905067ffffffffffffffff81111561233f5761233e612305565b5b60208301915083600182028301111561235b5761235a612309565b5b9250929050565b5f805f805f6080868803121561237b5761237a6121fb565b5b5f61238888828901612249565b955050602061239988828901612249565b94505060406123aa8882890161227c565b935050606086013567ffffffffffffffff8111156123cb576123ca6121ff565b5b6123d78882890161230d565b92509250509295509295909350565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61241a816123e6565b82525050565b5f6020820190506124335f830184612411565b92915050565b6124428161225d565b82525050565b5f60208201905061245b5f830184612439565b92915050565b5f805f60608486031215612478576124776121fb565b5b5f61248586828701612249565b935050602061249686828701612249565b92505060406124a78682870161227c565b9150509250925092565b5f60ff82169050919050565b6124c6816124b1565b82525050565b5f6020820190506124df5f8301846124bd565b92915050565b5f602082840312156124fa576124f96121fb565b5b5f6125078482850161227c565b91505092915050565b5f6040820190506125235f830185612439565b6125306020830184612439565b9392505050565b5f6020828403121561254c5761254b6121fb565b5b5f61255984828501612249565b91505092915050565b5f819050919050565b61257481612562565b82525050565b5f60208201905061258d5f83018461256b565b92915050565b5f8083601f8401126125a8576125a7612301565b5b8235905067ffffffffffffffff8111156125c5576125c4612305565b5b6020830191508360208202830111156125e1576125e0612309565b5b9250929050565b5f805f604084860312156125ff576125fe6121fb565b5b5f61260c8682870161227c565b935050602084013567ffffffffffffffff81111561262d5761262c6121ff565b5b61263986828701612593565b92509250509250925092565b5f806040838503121561265b5761265a6121fb565b5b5f61266885828601612249565b925050602061267985828601612249565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806126c757607f821691505b6020821081036126da576126d9612683565b5b50919050565b7f4d656d6520746f6b656e20616d6f756e74206d757374206265206772656174655f8201527f72207468616e207a65726f000000000000000000000000000000000000000000602082015250565b5f61273a602b83612175565b9150612745826126e0565b604082019050919050565b5f6020820190508181035f8301526127678161272e565b9050919050565b7f4d656d6520746f6b656e20616d6f756e742065786365656473206d61782073755f8201527f70706c7900000000000000000000000000000000000000000000000000000000602082015250565b5f6127c8602483612175565b91506127d38261276e565b604082019050919050565b5f6020820190508181035f8301526127f5816127bc565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6128338261225d565b915061283e8361225d565b925082820261284c8161225d565b91508282048414831517612863576128626127fc565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6128a18261225d565b91506128ac8361225d565b9250826128bc576128bb61286a565b5b828204905092915050565b6128d08161225d565b82525050565b6128df81612222565b82525050565b5f6fffffffffffffffffffffffffffffffff82169050919050565b612909816128e5565b82525050565b608082015f8201516129235f8501826128c7565b50602082015161293660208501826128d6565b5060408201516129496040850182612900565b50606082015161295c6060850182612900565b50505050565b5f6080820190506129755f83018461290f565b92915050565b5f8151905061298981612266565b92915050565b5f80604083850312156129a5576129a46121fb565b5b5f6129b28582860161297b565b92505060206129c38582860161297b565b9150509250929050565b6129d681612222565b82525050565b5f6020820190506129ef5f8301846129cd565b92915050565b5f60208284031215612a0a57612a096121fb565b5b5f612a178482850161297b565b91505092915050565b7f46756e6420616d6f756e74206d7573742062652067726561746572207468616e5f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612a7a602583612175565b9150612a8582612a20565b604082019050919050565b5f6020820190508181035f830152612aa781612a6e565b9050919050565b7f46756e6420616d6f756e7420657863656564732066756e64207468726573686f5f8201527f6c64000000000000000000000000000000000000000000000000000000000000602082015250565b5f612b08602283612175565b9150612b1382612aae565b604082019050919050565b5f6020820190508181035f830152612b3581612afc565b9050919050565b7f46756e6472616973696e672068617320656e64656400000000000000000000005f82015250565b5f612b70601583612175565b9150612b7b82612b3c565b602082019050919050565b5f6020820190508181035f830152612b9d81612b64565b9050919050565b7f416d6f756e742073686f756c642062652067726561746572207468616e2030005f82015250565b5f612bd8601f83612175565b9150612be382612ba4565b602082019050919050565b5f6020820190508181035f830152612c0581612bcc565b9050919050565b5f612c168261225d565b9150612c218361225d565b9250828201905080821115612c3957612c386127fc565b5b92915050565b7f46756e64656420616d6f756e74206578636565647320746172676574207468725f8201527f6573686f6c640000000000000000000000000000000000000000000000000000602082015250565b5f612c99602683612175565b9150612ca482612c3f565b604082019050919050565b5f6020820190508181035f830152612cc681612c8d565b9050919050565b5f8160601b9050919050565b5f612ce382612ccd565b9050919050565b5f612cf482612cd9565b9050919050565b612d0c612d0782612222565b612cea565b82525050565b5f819050919050565b612d2c612d278261225d565b612d12565b82525050565b5f612d3d8285612cfb565b601482019150612d4d8284612d1b565b6020820191508190509392505050565b7f4e6f742077686974656c697374656400000000000000000000000000000000005f82015250565b5f612d91600f83612175565b9150612d9c82612d5d565b602082019050919050565b5f6020820190508181035f830152612dbe81612d85565b9050919050565b7f496e636f7272656374204554482076616c75652073656e7400000000000000005f82015250565b5f612df9601883612175565b9150612e0482612dc5565b602082019050919050565b5f6020820190508181035f830152612e2681612ded565b9050919050565b7f416d6f756e74206f66206d656d6520746f6b656e7320746f2072657475726e205f8201527f6d7573742062652067726561746572207468616e203000000000000000000000602082015250565b5f612e87603683612175565b9150612e9282612e2d565b604082019050919050565b5f6020820190508181035f830152612eb481612e7b565b9050919050565b5f606082019050612ece5f8301866129cd565b612edb6020830185612439565b612ee86040830184612439565b949350505050565b5f604082019050612f035f8301856129cd565b612f106020830184612439565b9392505050565b612f20816122ce565b8114612f2a575f80fd5b50565b5f81519050612f3b81612f17565b92915050565b5f60208284031215612f5657612f556121fb565b5b5f612f6384828501612f2d565b91505092915050565b5f819050919050565b5f61ffff82169050919050565b5f819050919050565b5f612fa5612fa0612f9b84612f6c565b612f82565b612f75565b9050919050565b612fb581612f8b565b82525050565b5f608082019050612fce5f8301876129cd565b612fdb6020830186612439565b612fe860408301856129cd565b612ff56060830184612fac565b95945050505050565b5f6060820190506130115f8301866129cd565b61301e6020830185612439565b61302b60408301846129cd565b949350505050565b5f819050919050565b5f62ffffff82169050919050565b5f61306461305f61305a84613033565b612f82565b61303c565b9050919050565b6130748161304a565b82525050565b5f60608201905061308d5f8301866129cd565b61309a60208301856129cd565b6130a7604083018461306b565b949350505050565b5f815190506130bd81612233565b92915050565b5f602082840312156130d8576130d76121fb565b5b5f6130e5848285016130af565b91505092915050565b6130f781612203565b82525050565b5f6020820190506131105f8301846130ee565b92915050565b5f8160020b9050919050565b61312b81613116565b8114613135575f80fd5b50565b5f8151905061314681613122565b92915050565b5f60208284031215613161576131606121fb565b5b5f61316e84828501613138565b91505092915050565b5f61318182613116565b915061318c83613116565b92508261319c5761319b61286a565b5b60015f0383147fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000831416156131d4576131d36127fc565b5b828205905092915050565b5f6131e982613116565b91506131f483613116565b925082820261320281613116565b9150808214613214576132136127fc565b5b5092915050565b5f61322582613116565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008203613257576132566127fc565b5b815f039050919050565b61326a8161303c565b82525050565b61327981613116565b82525050565b61016082015f8201516132945f8501826128d6565b5060208201516132a760208501826128d6565b5060408201516132ba6040850182613261565b5060608201516132cd6060850182613270565b5060808201516132e06080850182613270565b5060a08201516132f360a08501826128c7565b5060c082015161330660c08501826128c7565b5060e082015161331960e08501826128c7565b5061010082015161332e6101008501826128c7565b506101208201516133436101208501826128d6565b506101408201516133586101408501826128c7565b50505050565b5f610160820190506133725f83018461327f565b92915050565b613381816128e5565b811461338b575f80fd5b50565b5f8151905061339c81613378565b92915050565b5f805f80608085870312156133ba576133b96121fb565b5b5f6133c78782880161297b565b94505060206133d88782880161338e565b93505060406133e98782880161297b565b92505060606133fa8782880161297b565b91505092959194509250565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea264697066735822122095cf9c615b6352a63a984dfffca69e4a3b36c52215bb7eb89f3a49b989af0add64736f6c634300081a003300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000109db979006c550000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006545454545454000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000047177657100000000000000000000000000000000000000000000000000000000