608060405260405180608001604052806053815260200162004694605391396009908051906020019062000035929190620007e8565b506605543df729c000600a556001600b60006101000a81548160ff0219169083151502179055503480156200006957600080fd5b506040518060400160405280601081526020017f476c616d6f726f757320556e64656164000000000000000000000000000000008152506040518060400160405280600f81526020017f476c616d6f726f7573556e6465616400000000000000000000000000000000008152508160029080519060200190620000ee929190620007e8565b50806003908051906020019062000107929190620007e8565b50620001186200015960201b60201c565b600081905550505062000140620001346200016260201b60201c565b6200016a60201b60201c565b620001533360016200023060201b60201c565b62000ae9565b60006001905090565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620002528282604051806020016040528060008152506200025660201b60201c565b5050565b600080549050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415620002c4576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600083141562000300576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6200031560008583866200064760201b60201c565b82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555082600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160088282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550836004600083815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550426004600083815260200190815260200160002060000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550600081905060008482019050620004e38673ffffffffffffffffffffffffffffffffffffffff166200064d60201b620019111760201c565b15620005b6575b818673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46200056160008784806001019550876200067060201b60201c565b62000598576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80821415620004ea578260005414620005b057600080fd5b62000623565b5b818060010192508673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a480821415620005b7575b816000819055505050620006416000858386620007e260201b60201c565b50505050565b50505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a026200069e6200016260201b60201c565b8786866040518563ffffffff1660e01b8152600401620006c2949392919062000944565b602060405180830381600087803b158015620006dd57600080fd5b505af19250505080156200071157506040513d601f19601f820116820180604052508101906200070e9190620008af565b60015b6200078f573d806000811462000744576040519150601f19603f3d011682016040523d82523d6000602084013e62000749565b606091505b5060008151141562000787576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b50505050565b828054620007f69062000a54565b90600052602060002090601f0160209004810192826200081a576000855562000866565b82601f106200083557805160ff191683800117855562000866565b8280016001018555821562000866579182015b828111156200086557825182559160200191906001019062000848565b5b50905062000875919062000879565b5090565b5b80821115620008945760008160009055506001016200087a565b5090565b600081519050620008a98162000acf565b92915050565b600060208284031215620008c857620008c762000ab9565b5b6000620008d88482850162000898565b91505092915050565b620008ec81620009b4565b82525050565b6000620008ff8262000998565b6200090b8185620009a3565b93506200091d81856020860162000a1e565b620009288162000abe565b840191505092915050565b6200093e8162000a14565b82525050565b60006080820190506200095b6000830187620008e1565b6200096a6020830186620008e1565b62000979604083018562000933565b81810360608301526200098d8184620008f2565b905095945050505050565b600081519050919050565b600082825260208201905092915050565b6000620009c182620009f4565b9050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b8381101562000a3e57808201518184015260208101905062000a21565b8381111562000a4e576000848401525b50505050565b6000600282049050600182168062000a6d57607f821691505b6020821081141562000a845762000a8362000a8a565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b62000ada81620009c8565b811462000ae657600080fd5b50565b613b9b8062000af96000396000f3fe6080604052600436106101e35760003560e01c80636352211e11610102578063a22cb46511610095578063e985e9c511610064578063e985e9c5146106ab578063ed6661c2146106e8578063f2fde38b14610713578063f43a22dc1461073c576101e3565b8063a22cb465146105f1578063b88d4fde1461061a578063c668286214610643578063c87b56dd1461066e576101e3565b80638da5cb5b116100d15780638da5cb5b1461054757806391b7f5ed1461057257806395d89b411461059b578063a035b1fe146105c6576101e3565b80636352211e1461048b5780636c0360eb146104c857806370a08231146104f3578063715018a614610530576101e3565b806323b872dd1161017a57806342842e0e1161014957806342842e0e146103f757806355f804b3146104205780635b70ea9f146104495780635c975abb14610460576101e3565b806323b872dd146103635780632fbba1151461038c57806332cb6b0c146103b55780633ccfd60b146103e0576101e3565b8063081812fc116101b6578063081812fc14610295578063095ea7b3146102d257806318160ddd146102fb5780631e7269c514610326576101e3565b806301ffc9a7146101e857806302329a291461022557806306fdde031461024e5780630788370314610279575b600080fd5b3480156101f457600080fd5b5061020f600480360381019061020a9190612ebf565b610767565b60405161021c919061330c565b60405180910390f35b34801561023157600080fd5b5061024c60048036038101906102479190612e92565b610849565b005b34801561025a57600080fd5b506102636108e2565b6040516102709190613327565b60405180910390f35b610293600480360381019061028e9190612f62565b610974565b005b3480156102a157600080fd5b506102bc60048036038101906102b79190612f62565b610b37565b6040516102c991906132a5565b60405180910390f35b3480156102de57600080fd5b506102f960048036038101906102f49190612e52565b610bb3565b005b34801561030757600080fd5b50610310610cbe565b60405161031d9190613489565b60405180910390f35b34801561033257600080fd5b5061034d60048036038101906103489190612ccf565b610cd5565b60405161035a9190613489565b60405180910390f35b34801561036f57600080fd5b5061038a60048036038101906103859190612d3c565b610ce7565b005b34801561039857600080fd5b506103b360048036038101906103ae9190612f62565b610cf7565b005b3480156103c157600080fd5b506103ca610d87565b6040516103d79190613489565b60405180910390f35b3480156103ec57600080fd5b506103f5610d8d565b005b34801561040357600080fd5b5061041e60048036038101906104199190612d3c565b610ec5565b005b34801561042c57600080fd5b5061044760048036038101906104429190612f19565b610ee5565b005b34801561045557600080fd5b5061045e610f7b565b005b34801561046c57600080fd5b50610475611118565b604051610482919061330c565b60405180910390f35b34801561049757600080fd5b506104b260048036038101906104ad9190612f62565b61112b565b6040516104bf91906132a5565b60405180910390f35b3480156104d457600080fd5b506104dd611141565b6040516104ea9190613327565b60405180910390f35b3480156104ff57600080fd5b5061051a60048036038101906105159190612ccf565b6111cf565b6040516105279190613489565b60405180910390f35b34801561053c57600080fd5b5061054561129f565b005b34801561055357600080fd5b5061055c611327565b60405161056991906132a5565b60405180910390f35b34801561057e57600080fd5b5061059960048036038101906105949190612f62565b611351565b005b3480156105a757600080fd5b506105b06113d7565b6040516105bd9190613327565b60405180910390f35b3480156105d257600080fd5b506105db611469565b6040516105e89190613489565b60405180910390f35b3480156105fd57600080fd5b5061061860048036038101906106139190612e12565b61146f565b005b34801561062657600080fd5b50610641600480360381019061063c9190612d8f565b6115e7565b005b34801561064f57600080fd5b50610658611663565b6040516106659190613327565b60405180910390f35b34801561067a57600080fd5b5061069560048036038101906106909190612f62565b61169c565b6040516106a29190613327565b60405180910390f35b3480156106b757600080fd5b506106d260048036038101906106cd9190612cfc565b61177b565b6040516106df919061330c565b60405180910390f35b3480156106f457600080fd5b506106fd61180f565b60405161070a9190613489565b60405180910390f35b34801561071f57600080fd5b5061073a60048036038101906107359190612ccf565b611814565b005b34801561074857600080fd5b5061075161190c565b60405161075e9190613489565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061083257507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610842575061084182611934565b5b9050919050565b61085161199e565b73ffffffffffffffffffffffffffffffffffffffff1661086f611327565b73ffffffffffffffffffffffffffffffffffffffff16146108c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108bc90613409565b60405180910390fd5b80600b60006101000a81548160ff02191690831515021790555050565b6060600280546108f190613759565b80601f016020809104026020016040519081016040528092919081815260200182805461091d90613759565b801561096a5780601f1061093f5761010080835404028352916020019161096a565b820191906000526020600020905b81548152906001019060200180831161094d57829003601f168201915b5050505050905090565b600061097e61199e565b9050600b60009054906101000a900460ff16156109d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c790613349565b60405180910390fd5b816109d9610cbe565b6109e3919061358e565b6113881015610a27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1e906133c9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614610a95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8c90613469565b60405180910390fd5b81600a1015610ad9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad090613389565b60405180910390fd5b3482600a54610ae89190613615565b1115610b29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2090613429565b60405180910390fd5b610b3381836119a6565b5050565b6000610b42826119c4565b610b78576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610bbe8261112b565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c26576040517f943f7b8c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610c4561199e565b73ffffffffffffffffffffffffffffffffffffffff1614158015610c775750610c7581610c7061199e565b61177b565b155b15610cae576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610cb9838383611a12565b505050565b6000610cc8611ac4565b6001546000540303905090565b6000610ce082611acd565b9050919050565b610cf2838383611b37565b505050565b610cff61199e565b73ffffffffffffffffffffffffffffffffffffffff16610d1d611327565b73ffffffffffffffffffffffffffffffffffffffff1614610d73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6a90613409565b60405180910390fd5b610d84610d7e61199e565b826119a6565b50565b61138881565b610d9561199e565b73ffffffffffffffffffffffffffffffffffffffff16610db3611327565b73ffffffffffffffffffffffffffffffffffffffff1614610e09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0090613409565b60405180910390fd5b60004790506000610e1861199e565b73ffffffffffffffffffffffffffffffffffffffff1682604051610e3b90613290565b60006040518083038185875af1925050503d8060008114610e78576040519150601f19603f3d011682016040523d82523d6000602084013e610e7d565b606091505b5050905080610ec1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb890613449565b60405180910390fd5b5050565b610ee0838383604051806020016040528060008152506115e7565b505050565b610eed61199e565b73ffffffffffffffffffffffffffffffffffffffff16610f0b611327565b73ffffffffffffffffffffffffffffffffffffffff1614610f61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5890613409565b60405180910390fd5b8060099080519060200190610f77929190612aa0565b5050565b6000610f8561199e565b9050600b60009054906101000a900460ff1615610fd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fce90613349565b60405180910390fd5b6001610fe1610cbe565b610feb919061358e565b611388101561102f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611026906133c9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161461109d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109490613469565b60405180910390fd5b60016110a882611fed565b67ffffffffffffffff166110bc919061358e565b600110156110ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f6906133a9565b60405180910390fd5b61110a81600161204d565b6111158160016119a6565b50565b600b60009054906101000a900460ff1681565b6000611136826120ba565b600001519050919050565b6009805461114e90613759565b80601f016020809104026020016040519081016040528092919081815260200182805461117a90613759565b80156111c75780601f1061119c576101008083540402835291602001916111c7565b820191906000526020600020905b8154815290600101906020018083116111aa57829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611237576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900467ffffffffffffffff1667ffffffffffffffff169050919050565b6112a761199e565b73ffffffffffffffffffffffffffffffffffffffff166112c5611327565b73ffffffffffffffffffffffffffffffffffffffff161461131b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131290613409565b60405180910390fd5b6113256000612349565b565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61135961199e565b73ffffffffffffffffffffffffffffffffffffffff16611377611327565b73ffffffffffffffffffffffffffffffffffffffff16146113cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c490613409565b60405180910390fd5b80600a8190555050565b6060600380546113e690613759565b80601f016020809104026020016040519081016040528092919081815260200182805461141290613759565b801561145f5780601f106114345761010080835404028352916020019161145f565b820191906000526020600020905b81548152906001019060200180831161144257829003601f168201915b5050505050905090565b600a5481565b61147761199e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114dc576040517fb06307db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600760006114e961199e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff1661159661199e565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516115db919061330c565b60405180910390a35050565b6115f2848484611b37565b6116118373ffffffffffffffffffffffffffffffffffffffff16611911565b801561162657506116248484848461240f565b155b1561165d576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b6040518060400160405280600581526020017f2e6a736f6e00000000000000000000000000000000000000000000000000000081525081565b60606116a7826119c4565b6116e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116dd906133e9565b60405180910390fd5b6000600980546116f590613759565b9050116117115760405180602001604052806000815250611774565b600961171c8361256f565b6040518060400160405280600581526020017f2e6a736f6e0000000000000000000000000000000000000000000000000000008152506040516020016117649392919061325f565b6040516020818303038152906040525b9050919050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600181565b61181c61199e565b73ffffffffffffffffffffffffffffffffffffffff1661183a611327565b73ffffffffffffffffffffffffffffffffffffffff1614611890576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188790613409565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611900576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f790613369565b60405180910390fd5b61190981612349565b50565b600a81565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b6119c08282604051806020016040528060008152506126d0565b5050565b6000816119cf611ac4565b111580156119de575060005482105b8015611a0b575060046000838152602001908152602001600020600001601c9054906101000a900460ff16155b9050919050565b826006600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b60006001905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160089054906101000a900467ffffffffffffffff1667ffffffffffffffff169050919050565b6000611b42826120ba565b90508373ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1614611bad576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008473ffffffffffffffffffffffffffffffffffffffff16611bce61199e565b73ffffffffffffffffffffffffffffffffffffffff161480611bfd5750611bfc85611bf761199e565b61177b565b5b80611c425750611c0b61199e565b73ffffffffffffffffffffffffffffffffffffffff16611c2a84610b37565b73ffffffffffffffffffffffffffffffffffffffff16145b905080611c7b576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611ce2576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611cef8585856001612a94565b611cfb60008487611a12565b6001600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a900467ffffffffffffffff160392506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506001600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506000600460008581526020019081526020016000209050848160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550428160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060006001850190506000600460008381526020019081526020016000209050600073ffffffffffffffffffffffffffffffffffffffff168160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611f7b576000548214611f7a57878160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084602001518160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b5b505050828473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611fe68585856001612a9a565b5050505050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160189054906101000a900467ffffffffffffffff169050919050565b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160186101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505050565b6120c2612b26565b6000829050806120d0611ac4565b111580156120df575060005481105b15612312576000600460008381526020019081526020016000206040518060600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160008201601c9054906101000a900460ff1615151515815250509050806040015161231057600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff16146121f4578092505050612344565b5b60011561230f57818060019003925050600460008381526020019081526020016000206040518060600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160008201601c9054906101000a900460ff1615151515815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff161461230a578092505050612344565b6121f5565b5b505b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a0261243561199e565b8786866040518563ffffffff1660e01b815260040161245794939291906132c0565b602060405180830381600087803b15801561247157600080fd5b505af19250505080156124a257506040513d601f19601f8201168201806040525081019061249f9190612eec565b60015b61251c573d80600081146124d2576040519150601f19603f3d011682016040523d82523d6000602084013e6124d7565b606091505b50600081511415612514576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b606060008214156125b7576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506126cb565b600082905060005b600082146125e95780806125d2906137bc565b915050600a826125e291906135e4565b91506125bf565b60008167ffffffffffffffff811115612605576126046138f2565b5b6040519080825280601f01601f1916602001820160405280156126375781602001600182028036833780820191505090505b5090505b600085146126c457600182612650919061366f565b9150600a8561265f9190613805565b603061266b919061358e565b60f81b818381518110612681576126806138c3565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856126bd91906135e4565b945061263b565b8093505050505b919050565b600080549050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561273d576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000831415612778576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6127856000858386612a94565b82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555082600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160088282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550836004600083815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550426004600083815260200190815260200160002060000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506000819050600084820190506129468673ffffffffffffffffffffffffffffffffffffffff16611911565b15612a0c575b818673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46129bb600087848060010195508761240f565b6129f1576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8082141561294c578260005414612a0757600080fd5b612a78565b5b818060010192508673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a480821415612a0d575b816000819055505050612a8e6000858386612a9a565b50505050565b50505050565b50505050565b828054612aac90613759565b90600052602060002090601f016020900481019282612ace5760008555612b15565b82601f10612ae757805160ff1916838001178555612b15565b82800160010185558215612b15579182015b82811115612b14578251825591602001919060010190612af9565b5b509050612b229190612b69565b5090565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600067ffffffffffffffff1681526020016000151581525090565b5b80821115612b82576000816000905550600101612b6a565b5090565b6000612b99612b94846134c9565b6134a4565b905082815260208101848484011115612bb557612bb4613926565b5b612bc0848285613717565b509392505050565b6000612bdb612bd6846134fa565b6134a4565b905082815260208101848484011115612bf757612bf6613926565b5b612c02848285613717565b509392505050565b600081359050612c1981613b09565b92915050565b600081359050612c2e81613b20565b92915050565b600081359050612c4381613b37565b92915050565b600081519050612c5881613b37565b92915050565b600082601f830112612c7357612c72613921565b5b8135612c83848260208601612b86565b91505092915050565b600082601f830112612ca157612ca0613921565b5b8135612cb1848260208601612bc8565b91505092915050565b600081359050612cc981613b4e565b92915050565b600060208284031215612ce557612ce4613930565b5b6000612cf384828501612c0a565b91505092915050565b60008060408385031215612d1357612d12613930565b5b6000612d2185828601612c0a565b9250506020612d3285828601612c0a565b9150509250929050565b600080600060608486031215612d5557612d54613930565b5b6000612d6386828701612c0a565b9350506020612d7486828701612c0a565b9250506040612d8586828701612cba565b9150509250925092565b60008060008060808587031215612da957612da8613930565b5b6000612db787828801612c0a565b9450506020612dc887828801612c0a565b9350506040612dd987828801612cba565b925050606085013567ffffffffffffffff811115612dfa57612df961392b565b5b612e0687828801612c5e565b91505092959194509250565b60008060408385031215612e2957612e28613930565b5b6000612e3785828601612c0a565b9250506020612e4885828601612c1f565b9150509250929050565b60008060408385031215612e6957612e68613930565b5b6000612e7785828601612c0a565b9250506020612e8885828601612cba565b9150509250929050565b600060208284031215612ea857612ea7613930565b5b6000612eb684828501612c1f565b91505092915050565b600060208284031215612ed557612ed4613930565b5b6000612ee384828501612c34565b91505092915050565b600060208284031215612f0257612f01613930565b5b6000612f1084828501612c49565b91505092915050565b600060208284031215612f2f57612f2e613930565b5b600082013567ffffffffffffffff811115612f4d57612f4c61392b565b5b612f5984828501612c8c565b91505092915050565b600060208284031215612f7857612f77613930565b5b6000612f8684828501612cba565b91505092915050565b612f98816136a3565b82525050565b612fa7816136b5565b82525050565b6000612fb882613540565b612fc28185613556565b9350612fd2818560208601613726565b612fdb81613935565b840191505092915050565b6000612ff18261354b565b612ffb8185613572565b935061300b818560208601613726565b61301481613935565b840191505092915050565b600061302a8261354b565b6130348185613583565b9350613044818560208601613726565b80840191505092915050565b6000815461305d81613759565b6130678186613583565b945060018216600081146130825760018114613093576130c6565b60ff198316865281860193506130c6565b61309c8561352b565b60005b838110156130be5781548189015260018201915060208101905061309f565b838801955050505b50505092915050565b60006130dc600683613572565b91506130e782613946565b602082019050919050565b60006130ff602683613572565b915061310a8261396f565b604082019050919050565b6000613122601683613572565b915061312d826139be565b602082019050919050565b6000613145601a83613572565b9150613150826139e7565b602082019050919050565b6000613168601283613572565b915061317382613a10565b602082019050919050565b600061318b601583613572565b915061319682613a39565b602082019050919050565b60006131ae602083613572565b91506131b982613a62565b602082019050919050565b60006131d1601683613572565b91506131dc82613a8b565b602082019050919050565b60006131f4600083613567565b91506131ff82613ab4565b600082019050919050565b6000613217600e83613572565b915061322282613ab7565b602082019050919050565b600061323a600c83613572565b915061324582613ae0565b602082019050919050565b6132598161370d565b82525050565b600061326b8286613050565b9150613277828561301f565b9150613283828461301f565b9150819050949350505050565b600061329b826131e7565b9150819050919050565b60006020820190506132ba6000830184612f8f565b92915050565b60006080820190506132d56000830187612f8f565b6132e26020830186612f8f565b6132ef6040830185613250565b81810360608301526133018184612fad565b905095945050505050565b60006020820190506133216000830184612f9e565b92915050565b600060208201905081810360008301526133418184612fe6565b905092915050565b60006020820190508181036000830152613362816130cf565b9050919050565b60006020820190508181036000830152613382816130f2565b9050919050565b600060208201905081810360008301526133a281613115565b9050919050565b600060208201905081810360008301526133c281613138565b9050919050565b600060208201905081810360008301526133e28161315b565b9050919050565b600060208201905081810360008301526134028161317e565b9050919050565b60006020820190508181036000830152613422816131a1565b9050919050565b60006020820190508181036000830152613442816131c4565b9050919050565b600060208201905081810360008301526134628161320a565b9050919050565b600060208201905081810360008301526134828161322d565b9050919050565b600060208201905061349e6000830184613250565b92915050565b60006134ae6134bf565b90506134ba828261378b565b919050565b6000604051905090565b600067ffffffffffffffff8211156134e4576134e36138f2565b5b6134ed82613935565b9050602081019050919050565b600067ffffffffffffffff821115613515576135146138f2565b5b61351e82613935565b9050602081019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b60006135998261370d565b91506135a48361370d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156135d9576135d8613836565b5b828201905092915050565b60006135ef8261370d565b91506135fa8361370d565b92508261360a57613609613865565b5b828204905092915050565b60006136208261370d565b915061362b8361370d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561366457613663613836565b5b828202905092915050565b600061367a8261370d565b91506136858361370d565b92508282101561369857613697613836565b5b828203905092915050565b60006136ae826136ed565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015613744578082015181840152602081019050613729565b83811115613753576000848401525b50505050565b6000600282049050600182168061377157607f821691505b6020821081141561378557613784613894565b5b50919050565b61379482613935565b810181811067ffffffffffffffff821117156137b3576137b26138f2565b5b80604052505050565b60006137c78261370d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156137fa576137f9613836565b5b600182019050919050565b60006138108261370d565b915061381b8361370d565b92508261382b5761382a613865565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f5061757365640000000000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f457863657373206d617820706572207061696420747800000000000000000000600082015250565b7f457863657373206d61782070657220667265652077616c6c6574000000000000600082015250565b7f45786365656473206d617820737570706c790000000000000000000000000000600082015250565b7f546f6b656e20646f6573206e6f742065786973742e0000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f496e76616c69642066756e64732070726f766964656400000000000000000000600082015250565b50565b7f4661696c656420746f2073656e64000000000000000000000000000000000000600082015250565b7f4e6f20636f6e7472616374730000000000000000000000000000000000000000600082015250565b613b12816136a3565b8114613b1d57600080fd5b50565b613b29816136b5565b8114613b3457600080fd5b50565b613b40816136c1565b8114613b4b57600080fd5b50565b613b578161370d565b8114613b6257600080fd5b5056fea2646970667358221220fdc88e9f301f3a7c6ca509eed33bff4aae0f70971f1e005e0afed68c5778f4d464736f6c6343000807003368747470733a2f2f73746f726167656170692e666c65656b2e636f2f32353665313037372d336261342d346631332d393239382d3261303633653634366266392d6275636b65742f556e646561644a736f6e2f