60806040526040518060400160405280601381526020017f536b696269646920546f696c657420436f696e00000000000000000000000000815250600690816100489190610b86565b506040518060400160405280600781526020017f534b4942494449000000000000000000000000000000000000000000000000008152506007908161008d9190610b86565b506001600f5f6101000a81548160ff0219169083151502179055505f600f60016101000a81548160ff0219169083151502179055503480156100cd575f80fd5b50600680546100db906109b0565b80601f0160208091040260200160405190810160405280929190818152602001828054610107906109b0565b80156101525780601f1061012957610100808354040283529160200191610152565b820191905f5260205f20905b81548152906001019060200180831161013557829003601f168201915b505050505060078054610164906109b0565b80601f0160208091040260200160405190810160405280929190818152602001828054610190906109b0565b80156101db5780601f106101b2576101008083540402835291602001916101db565b820191905f5260205f20905b8154815290600101906020018083116101be57829003601f168201915b505050505081600390816101ef9190610b86565b5080600490816101ff9190610b86565b5050505f6102116104f360201b60201c565b90508060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505f601990505f80601990505f806a084595161401484a00000090506103e86014826102d99190610c82565b6102e39190610cf0565b600c819055506103e86014826102f99190610c82565b6103039190610cf0565b600e819055506103e86001826103199190610c82565b6103239190610cf0565b600d8190555084601181905550836012819055506012546011546103479190610d20565b601081905550826014819055508160158190555060155460145461036b9190610d20565b60138190555033600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103cf6103c26104fa60201b60201c565b600161052260201b60201c565b6103e030600161052260201b60201c565b6103f361dead600161052260201b60201c565b610425600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161052260201b60201c565b6104436104366104fa60201b60201c565b600161066460201b60201c565b61045430600161066460201b60201c565b61046761dead600161066460201b60201c565b610499600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161066460201b60201c565b6104c1306064605f846104ac9190610c82565b6104b69190610cf0565b61075860201b60201c565b6104e93360646005846104d49190610c82565b6104de9190610cf0565b61075860201b60201c565b5050505050610ef6565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6105306104f360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b590610dad565b60405180910390fd5b8060195f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516106589190610de5565b60405180910390a25050565b6106726104f360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610700576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f790610dad565b60405180910390fd5b80601a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107bd90610e48565b60405180910390fd5b6107d75f83836108ea60201b60201c565b6107ec816002546108ef60201b90919060201c565b600281905550610841815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546108ef60201b90919060201c565b5f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516108de9190610e75565b60405180910390a35050565b505050565b5f8082846108fd9190610d20565b905083811015610942576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093990610ed8565b60405180910390fd5b8091505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806109c757607f821691505b6020821081036109da576109d9610983565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302610a3c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610a01565b610a468683610a01565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f610a8a610a85610a8084610a5e565b610a67565b610a5e565b9050919050565b5f819050919050565b610aa383610a70565b610ab7610aaf82610a91565b848454610a0d565b825550505050565b5f90565b610acb610abf565b610ad6818484610a9a565b505050565b5b81811015610af957610aee5f82610ac3565b600181019050610adc565b5050565b601f821115610b3e57610b0f816109e0565b610b18846109f2565b81016020851015610b27578190505b610b3b610b33856109f2565b830182610adb565b50505b505050565b5f82821c905092915050565b5f610b5e5f1984600802610b43565b1980831691505092915050565b5f610b768383610b4f565b9150826002028217905092915050565b610b8f8261094c565b67ffffffffffffffff811115610ba857610ba7610956565b5b610bb282546109b0565b610bbd828285610afd565b5f60209050601f831160018114610bee575f8415610bdc578287015190505b610be68582610b6b565b865550610c4d565b601f198416610bfc866109e0565b5f5b82811015610c2357848901518255600182019150602085019450602081019050610bfe565b86831015610c405784890151610c3c601f891682610b4f565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610c8c82610a5e565b9150610c9783610a5e565b9250828202610ca581610a5e565b91508282048414831517610cbc57610cbb610c55565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610cfa82610a5e565b9150610d0583610a5e565b925082610d1557610d14610cc3565b5b828204905092915050565b5f610d2a82610a5e565b9150610d3583610a5e565b9250828201905080821115610d4d57610d4c610c55565b5b92915050565b5f82825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f610d97602083610d53565b9150610da282610d63565b602082019050919050565b5f6020820190508181035f830152610dc481610d8b565b9050919050565b5f8115159050919050565b610ddf81610dcb565b82525050565b5f602082019050610df85f830184610dd6565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610e32601f83610d53565b9150610e3d82610dfe565b602082019050919050565b5f6020820190508181035f830152610e5f81610e26565b9050919050565b610e6f81610a5e565b82525050565b5f602082019050610e885f830184610e66565b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f610ec2601b83610d53565b9150610ecd82610e8e565b602082019050919050565b5f6020820190508181035f830152610eef81610eb6565b9050919050565b61465a80610f035f395ff3fe60806040526004361061025f575f3560e01c80635de0f2a011610143578063a9059cbb116100b5578063be85750411610079578063be857504146108b0578063c0246668146108da578063c3f70b5214610902578063dd62ed3e1461092c578063df6f93be14610968578063f2fde38b1461099257610266565b8063a9059cbb146107e2578063b34789ff1461081e578063b62496f514610834578063b69ef8a814610870578063bc2a7c1b1461089a57610266565b80638da5cb5b116101075780638da5cb5b146106d6578063945674fe1461070057806395d89b411461072a5780639a7a23d6146107545780639fccce321461077c578063a457c2d7146107a657610266565b80635de0f2a0146106085780636c7e15c91461063257806370a082311461065c578063715018a6146106985780637571336a146106ae57610266565b80631bff7898116101dc578063313ce567116101a0578063313ce567146104e8578063395093511461051257806346469afb1461054e57806348d791551461057857806349bd5a5e146105a25780634fbee193146105cc57610266565b80631bff7898146104085780631d52d3fe146104325780631d9305bf1461045a57806322eb66311461048257806323b872dd146104ac57610266565b806311b4181a1161022357806311b4181a1461034c5780631694505e1461036257806318160ddd1461038c5780631816467f146103b65780631a8145bb146103de57610266565b806306fdde031461026a578063095ea7b3146102945780630e947809146102d05780630f299cf1146102fa57806310d5de531461031057610266565b3661026657005b5f80fd5b348015610275575f80fd5b5061027e6109ba565b60405161028b91906135ec565b60405180910390f35b34801561029f575f80fd5b506102ba60048036038101906102b5919061369d565b610a4a565b6040516102c791906136f5565b60405180910390f35b3480156102db575f80fd5b506102e4610a67565b6040516102f191906136f5565b60405180910390f35b348015610305575f80fd5b5061030e610a79565b005b34801561031b575f80fd5b506103366004803603810190610331919061370e565b610c22565b60405161034391906136f5565b60405180910390f35b348015610357575f80fd5b50610360610c3f565b005b34801561036d575f80fd5b50610376611045565b6040516103839190613794565b60405180910390f35b348015610397575f80fd5b506103a061106a565b6040516103ad91906137bc565b60405180910390f35b3480156103c1575f80fd5b506103dc60048036038101906103d7919061370e565b611073565b005b3480156103e9575f80fd5b506103f26111c7565b6040516103ff91906137bc565b60405180910390f35b348015610413575f80fd5b5061041c6111cd565b60405161042991906137bc565b60405180910390f35b34801561043d575f80fd5b50610458600480360381019061045391906137ff565b6111d3565b005b348015610465575f80fd5b50610480600480360381019061047b919061382a565b611286565b005b34801561048d575f80fd5b5061049661136a565b6040516104a391906137bc565b60405180910390f35b3480156104b7575f80fd5b506104d260048036038101906104cd919061388e565b611370565b6040516104df91906136f5565b60405180910390f35b3480156104f3575f80fd5b506104fc611444565b60405161050991906138f9565b60405180910390f35b34801561051d575f80fd5b506105386004803603810190610533919061369d565b61144c565b60405161054591906136f5565b60405180910390f35b348015610559575f80fd5b506105626114fa565b60405161056f91906137bc565b60405180910390f35b348015610583575f80fd5b5061058c611500565b60405161059991906137bc565b60405180910390f35b3480156105ad575f80fd5b506105b6611506565b6040516105c39190613921565b60405180910390f35b3480156105d7575f80fd5b506105f260048036038101906105ed919061370e565b61152b565b6040516105ff91906136f5565b60405180910390f35b348015610613575f80fd5b5061061c61157d565b60405161062991906137bc565b60405180910390f35b34801561063d575f80fd5b50610646611583565b60405161065391906137bc565b60405180910390f35b348015610667575f80fd5b50610682600480360381019061067d919061370e565b611589565b60405161068f91906137bc565b60405180910390f35b3480156106a3575f80fd5b506106ac6115ce565b005b3480156106b9575f80fd5b506106d460048036038101906106cf919061393a565b611721565b005b3480156106e1575f80fd5b506106ea61180f565b6040516106f79190613921565b60405180910390f35b34801561070b575f80fd5b50610714611837565b60405161072191906136f5565b60405180910390f35b348015610735575f80fd5b5061073e61184a565b60405161074b91906135ec565b60405180910390f35b34801561075f575f80fd5b5061077a6004803603810190610775919061393a565b6118da565b005b348015610787575f80fd5b50610790611a0d565b60405161079d91906137bc565b60405180910390f35b3480156107b1575f80fd5b506107cc60048036038101906107c7919061369d565b611a13565b6040516107d991906136f5565b60405180910390f35b3480156107ed575f80fd5b506108086004803603810190610803919061369d565b611adb565b60405161081591906136f5565b60405180910390f35b348015610829575f80fd5b50610832611af8565b005b34801561083f575f80fd5b5061085a6004803603810190610855919061370e565b611c0b565b60405161086791906136f5565b60405180910390f35b34801561087b575f80fd5b50610884611c28565b60405161089191906137bc565b60405180910390f35b3480156108a5575f80fd5b506108ae611c2e565b005b3480156108bb575f80fd5b506108c4611cdf565b6040516108d191906137bc565b60405180910390f35b3480156108e5575f80fd5b5061090060048036038101906108fb919061393a565b611ce5565b005b34801561090d575f80fd5b50610916611e21565b60405161092391906137bc565b60405180910390f35b348015610937575f80fd5b50610952600480360381019061094d9190613978565b611e27565b60405161095f91906137bc565b60405180910390f35b348015610973575f80fd5b5061097c611ea9565b60405161098991906137bc565b60405180910390f35b34801561099d575f80fd5b506109b860048036038101906109b3919061370e565b611eaf565b005b6060600380546109c9906139e3565b80601f01602080910402602001604051908101604052809291908181526020018280546109f5906139e3565b8015610a405780601f10610a1757610100808354040283529160200191610a40565b820191905f5260205f20905b815481529060010190602001808311610a2357829003601f168201915b5050505050905090565b5f610a5d610a56612003565b848461200a565b6001905092915050565b600f5f9054906101000a900460ff1681565b610a81612003565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0690613a5d565b60405180910390fd5b5f4790505f8111610b55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4c90613aeb565b60405180910390fd5b5f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051610b9b90613b36565b5f6040518083038185875af1925050503d805f8114610bd5576040519150601f19603f3d011682016040523d82523d5f602084013e610bda565b606091505b5050905080610c1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1590613b94565b60405180910390fd5b5050565b601a602052805f5260405f205f915054906101000a900460ff1681565b610c47612003565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccc90613a5d565b60405180910390fd5b5f737a250d5630b4cf539739df2c5dacb4c659f2488d9050610cf8816001611721565b8060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d81573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610da59190613bc6565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e0a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e2e9190613bc6565b6040518363ffffffff1660e01b8152600401610e4b929190613bf1565b6020604051808303815f875af1158015610e67573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e8b9190613bc6565b60095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ef660095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001611721565b610f2260095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016121cd565b5f4790505f6064605a610f3430611589565b610f3e9190613c45565b610f489190613cb3565b9050610f763060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361200a565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198330845f80600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401610ffc96959493929190613d1c565b60606040518083038185885af1158015611018573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061103d9190613d8f565b505050505050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600254905090565b61107b612003565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611109576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110090613a5d565b60405180910390fd5b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a380600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60165481565b60135481565b6111db612003565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611269576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126090613a5d565b60405180910390fd5b80600f60016101000a81548160ff02191690831515021790555050565b61128e612003565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461131c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131390613a5d565b60405180910390fd5b836011819055508160128190555060125460115461133a9190613ddf565b601081905550826014819055508060158190555060155460145461135e9190613ddf565b60138190555050505050565b60145481565b5f61137c84848461226b565b61143984611388612003565b611434856040518060600160405280602881526020016145d86028913960015f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6113eb612003565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612b909092919063ffffffff16565b61200a565b600190509392505050565b5f6012905090565b5f6114f0611458612003565b846114eb8560015f611468612003565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612bf290919063ffffffff16565b61200a565b6001905092915050565b60105481565b600e5481565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60195f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b600d5481565b60115481565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6115d6612003565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611664576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165b90613a5d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611729612003565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ae90613a5d565b60405180910390fd5b80601a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f60019054906101000a900460ff1681565b606060048054611859906139e3565b80601f0160208091040260200160405190810160405280929190818152602001828054611885906139e3565b80156118d05780601f106118a7576101008083540402835291602001916118d0565b820191905f5260205f20905b8154815290600101906020018083116118b357829003601f168201915b5050505050905090565b6118e2612003565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611970576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196790613a5d565b60405180910390fd5b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f690613e82565b60405180910390fd5b611a0982826121cd565b5050565b60175481565b5f611ad1611a1f612003565b84611acc856040518060600160405280602581526020016146006025913960015f611a48612003565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612b909092919063ffffffff16565b61200a565b6001905092915050565b5f611aee611ae7612003565b848461226b565b6001905092915050565b611b00612003565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8590613a5d565b60405180910390fd5b5f611b9830611589565b90505f8111611bdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd390613f10565b60405180910390fd5b611c0830600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361226b565b50565b601b602052805f5260405f205f915054906101000a900460ff1681565b600a5481565b611c36612003565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbb90613a5d565b60405180910390fd5b5f600f5f6101000a81548160ff021916908315150217905550565b60155481565b611ced612003565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7290613a5d565b60405180910390fd5b8060195f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611e1591906136f5565b60405180910390a25050565b600c5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60125481565b611eb7612003565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3c90613a5d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612078576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206f90613f9e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120dd9061402c565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516121c091906137bc565b60405180910390a3505050565b80601b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036122d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d0906140ba565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612347576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233e90614148565b60405180910390fd5b5f810361235e5761235983835f612c4f565b612b8b565b600f5f9054906101000a900460ff16156127535761237a61180f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156123e857506123b861180f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561242057505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561245a575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156124735750600960149054906101000a900460ff16155b1561275257601b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156125155750601a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156125bc57600c5481111561255f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612556906141d6565b60405180910390fd5b600e5461256b83611589565b826125769190613ddf565b11156125b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ae9061423e565b60405180910390fd5b612751565b601b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156126595750601a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156126a857600c548111156126a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161269a906142cc565b60405180910390fd5b612750565b601a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661274f57600e5461270283611589565b8261270d9190613ddf565b111561274e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127459061423e565b60405180910390fd5b5b5b5b5b5b5f61275d30611589565b90505f600d5482101590508080156127825750600960149054906101000a900460ff16155b80156127d55750601b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612828575060195f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561287b575060195f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156128be576001600960146101000a81548160ff0219169083151502179055506128a3612ed8565b5f600960146101000a81548160ff0219169083151502179055505b5f600960149054906101000a900460ff1615905060195f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061296d575060195f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612976575f90505b5f8115612b7b57601b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156129d457505f601354115b15612a6c57612a0160646129f3601354886130fe90919063ffffffff16565b61317590919063ffffffff16565b905060135460155482612a149190613c45565b612a1e9190613cb3565b60165f828254612a2e9190613ddf565b9250508190555060135460145482612a469190613c45565b612a509190613cb3565b60175f828254612a609190613ddf565b92505081905550612b58565b601b5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612ac357505f601054115b15612b5757612af06064612ae2601054886130fe90919063ffffffff16565b61317590919063ffffffff16565b905060105460125482612b039190613c45565b612b0d9190613cb3565b60165f828254612b1d9190613ddf565b9250508190555060105460115482612b359190613c45565b612b3f9190613cb3565b60175f828254612b4f9190613ddf565b925050819055505b5b5f811115612b6c57612b6b873083612c4f565b5b8085612b7891906142ea565b94505b612b86878787612c4f565b505050505b505050565b5f838311158290612bd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bce91906135ec565b60405180910390fd5b505f8385612be591906142ea565b9050809150509392505050565b5f808284612c009190613ddf565b905083811015612c45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c3c90614367565b60405180910390fd5b8091505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612cbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cb4906140ba565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612d2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d2290614148565b60405180910390fd5b612d368383836131be565b612d9f816040518060600160405280602681526020016145b2602691395f808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612b909092919063ffffffff16565b5f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612e2e815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612bf290919063ffffffff16565b5f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612ecb91906137bc565b60405180910390a3505050565b5f612ee230611589565b90505f601754601654612ef59190613ddf565b90505f80831480612f0557505f82145b15612f12575050506130fc565b5f1515600f60019054906101000a900460ff16151503612f59576014600d54612f3b9190613c45565b831115612f54576014600d54612f519190613c45565b92505b612f65565b612f6230611589565b92505b5f60028360165486612f779190613c45565b612f819190613cb3565b612f8b9190613cb3565b90505f612fa182866131c390919063ffffffff16565b90505f479050612fb08261320c565b5f612fc482476131c390919063ffffffff16565b90505f612fee87612fe0601754856130fe90919063ffffffff16565b61317590919063ffffffff16565b90505f8183612ffd91906142ea565b90505f6016819055505f6017819055505f8611801561301b57505f81115b156130685761302a8682613442565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561858260165460405161305f93929190614385565b60405180910390a15b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516130ad90613b36565b5f6040518083038185875af1925050503d805f81146130e7576040519150601f19603f3d011682016040523d82523d5f602084013e6130ec565b606091505b5050809750505050505050505050505b565b5f80830361310e575f905061316f565b5f828461311b9190613c45565b905082848261312a9190613cb3565b1461316a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131619061442a565b60405180910390fd5b809150505b92915050565b5f6131b683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061351b565b905092915050565b505050565b5f61320483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612b90565b905092915050565b5f600267ffffffffffffffff81111561322857613227614448565b5b6040519080825280602002602001820160405280156132565781602001602082028036833780820191505090505b50905030815f8151811061326d5761326c614475565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613311573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133359190613bc6565b8160018151811061334957613348614475565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506133af3060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461200a565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401613411959493929190614559565b5f604051808303815f87803b158015613428575f80fd5b505af115801561343a573d5f803e3d5ffd5b505050505050565b61346e3060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461200a565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f8030426040518863ffffffff1660e01b81526004016134d396959493929190613d1c565b60606040518083038185885af11580156134ef573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906135149190613d8f565b5050505050565b5f8083118290613561576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161355891906135ec565b60405180910390fd5b505f838561356f9190613cb3565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6135be8261357c565b6135c88185613586565b93506135d8818560208601613596565b6135e1816135a4565b840191505092915050565b5f6020820190508181035f83015261360481846135b4565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61363982613610565b9050919050565b6136498161362f565b8114613653575f80fd5b50565b5f8135905061366481613640565b92915050565b5f819050919050565b61367c8161366a565b8114613686575f80fd5b50565b5f8135905061369781613673565b92915050565b5f80604083850312156136b3576136b261360c565b5b5f6136c085828601613656565b92505060206136d185828601613689565b9150509250929050565b5f8115159050919050565b6136ef816136db565b82525050565b5f6020820190506137085f8301846136e6565b92915050565b5f602082840312156137235761372261360c565b5b5f61373084828501613656565b91505092915050565b5f819050919050565b5f61375c61375761375284613610565b613739565b613610565b9050919050565b5f61376d82613742565b9050919050565b5f61377e82613763565b9050919050565b61378e81613774565b82525050565b5f6020820190506137a75f830184613785565b92915050565b6137b68161366a565b82525050565b5f6020820190506137cf5f8301846137ad565b92915050565b6137de816136db565b81146137e8575f80fd5b50565b5f813590506137f9816137d5565b92915050565b5f602082840312156138145761381361360c565b5b5f613821848285016137eb565b91505092915050565b5f805f80608085870312156138425761384161360c565b5b5f61384f87828801613689565b945050602061386087828801613689565b935050604061387187828801613689565b925050606061388287828801613689565b91505092959194509250565b5f805f606084860312156138a5576138a461360c565b5b5f6138b286828701613656565b93505060206138c386828701613656565b92505060406138d486828701613689565b9150509250925092565b5f60ff82169050919050565b6138f3816138de565b82525050565b5f60208201905061390c5f8301846138ea565b92915050565b61391b8161362f565b82525050565b5f6020820190506139345f830184613912565b92915050565b5f80604083850312156139505761394f61360c565b5b5f61395d85828601613656565b925050602061396e858286016137eb565b9150509250929050565b5f806040838503121561398e5761398d61360c565b5b5f61399b85828601613656565b92505060206139ac85828601613656565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806139fa57607f821691505b602082108103613a0d57613a0c6139b6565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613a47602083613586565b9150613a5282613a13565b602082019050919050565b5f6020820190508181035f830152613a7481613a3b565b9050919050565b7f4554482062616c616e6365206d7573742062652067726561746572207468616e5f8201527f2030000000000000000000000000000000000000000000000000000000000000602082015250565b5f613ad5602283613586565b9150613ae082613a7b565b604082019050919050565b5f6020820190508181035f830152613b0281613ac9565b9050919050565b5f81905092915050565b50565b5f613b215f83613b09565b9150613b2c82613b13565b5f82019050919050565b5f613b4082613b16565b9150819050919050565b7f4661696c656420746f20636c656172204554482062616c616e636500000000005f82015250565b5f613b7e601b83613586565b9150613b8982613b4a565b602082019050919050565b5f6020820190508181035f830152613bab81613b72565b9050919050565b5f81519050613bc081613640565b92915050565b5f60208284031215613bdb57613bda61360c565b5b5f613be884828501613bb2565b91505092915050565b5f604082019050613c045f830185613912565b613c116020830184613912565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613c4f8261366a565b9150613c5a8361366a565b9250828202613c688161366a565b91508282048414831517613c7f57613c7e613c18565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613cbd8261366a565b9150613cc88361366a565b925082613cd857613cd7613c86565b5b828204905092915050565b5f819050919050565b5f613d06613d01613cfc84613ce3565b613739565b61366a565b9050919050565b613d1681613cec565b82525050565b5f60c082019050613d2f5f830189613912565b613d3c60208301886137ad565b613d496040830187613d0d565b613d566060830186613d0d565b613d636080830185613912565b613d7060a08301846137ad565b979650505050505050565b5f81519050613d8981613673565b92915050565b5f805f60608486031215613da657613da561360c565b5b5f613db386828701613d7b565b9350506020613dc486828701613d7b565b9250506040613dd586828701613d7b565b9150509250925092565b5f613de98261366a565b9150613df48361366a565b9250828201905080821115613e0c57613e0b613c18565b5b92915050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f613e6c603983613586565b9150613e7782613e12565b604082019050919050565b5f6020820190508181035f830152613e9981613e60565b9050919050565b7f546f6b656e2062616c616e6365206d75737420626520677265617465722074685f8201527f616e203000000000000000000000000000000000000000000000000000000000602082015250565b5f613efa602483613586565b9150613f0582613ea0565b604082019050919050565b5f6020820190508181035f830152613f2781613eee565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613f88602483613586565b9150613f9382613f2e565b604082019050919050565b5f6020820190508181035f830152613fb581613f7c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f614016602283613586565b915061402182613fbc565b604082019050919050565b5f6020820190508181035f8301526140438161400a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6140a4602583613586565b91506140af8261404a565b604082019050919050565b5f6020820190508181035f8301526140d181614098565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f614132602383613586565b915061413d826140d8565b604082019050919050565b5f6020820190508181035f83015261415f81614126565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f6141c0603583613586565b91506141cb82614166565b604082019050919050565b5f6020820190508181035f8301526141ed816141b4565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f614228601383613586565b9150614233826141f4565b602082019050919050565b5f6020820190508181035f8301526142558161421c565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f6142b6603683613586565b91506142c18261425c565b604082019050919050565b5f6020820190508181035f8301526142e3816142aa565b9050919050565b5f6142f48261366a565b91506142ff8361366a565b925082820390508181111561431757614316613c18565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f614351601b83613586565b915061435c8261431d565b602082019050919050565b5f6020820190508181035f83015261437e81614345565b9050919050565b5f6060820190506143985f8301866137ad565b6143a560208301856137ad565b6143b260408301846137ad565b949350505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f614414602183613586565b915061441f826143ba565b604082019050919050565b5f6020820190508181035f83015261444181614408565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6144d48161362f565b82525050565b5f6144e583836144cb565b60208301905092915050565b5f602082019050919050565b5f614507826144a2565b61451181856144ac565b935061451c836144bc565b805f5b8381101561454c57815161453388826144da565b975061453e836144f1565b92505060018101905061451f565b5085935050505092915050565b5f60a08201905061456c5f8301886137ad565b6145796020830187613d0d565b818103604083015261458b81866144fd565b905061459a6060830185613912565b6145a760808301846137ad565b969550505050505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212209e412c3ba7ec94c759994f851fa4a858285d940b5910043ca6714092ccd25e9864736f6c634300081a0033