60e060405234801561001057600080fd5b50604051612b28380380612b2883398101604081905261002f91610240565b604080518082018252600b81526a2a32b9b630902a37b5b2b760a91b602080830191909152825180840190935260058352644354534c4160d81b9083015273c22a79eba640940abb6df0f7982cc119578e11de60805290600361009283826103a7565b50600461009f82826103a7565b50506005805460ff19169055503360c05260066100bc89826103a7565b5060076100c988826103a7565b50600895909555600d80546001600160a01b039586166001600160a01b031991821617909155600e8054948616948216949094179093556001600160401b0397881660a052600f8054929094169190921617909155600a805460ff90931668010000000000000000026001600160481b0319909316919095161717909255506104669050565b80516001600160401b038116811461016657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261019257600080fd5b81516001600160401b03808211156101ac576101ac61016b565b604051601f8301601f19908116603f011681019082821181831017156101d4576101d461016b565b81604052838152602092508660208588010111156101f157600080fd5b600091505b8382101561021357858201830151818301840152908201906101f6565b6000602085830101528094505050505092915050565b80516001600160a01b038116811461016657600080fd5b60008060008060008060008060006101208a8c03121561025f57600080fd5b6102688a61014f565b60208b01519099506001600160401b038082111561028557600080fd5b6102918d838e01610181565b995060408c01519150808211156102a757600080fd5b506102b48c828d01610181565b97505060608a015195506102ca60808b01610229565b94506102d860a08b01610229565b93506102e660c08b01610229565b92506102f460e08b0161014f565b91506101008a015160ff8116811461030b57600080fd5b809150509295985092959850929598565b600181811c9082168061033057607f821691505b60208210810361035057634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156103a2576000816000526020600020601f850160051c8101602086101561037f5750805b601f850160051c820191505b8181101561039e5782815560010161038b565b5050505b505050565b81516001600160401b038111156103c0576103c061016b565b6103d4816103ce845461031c565b84610356565b602080601f83116001811461040957600084156103f15750858301515b600019600386901b1c1916600185901b17855561039e565b600085815260208120601f198616915b8281101561043857888601518255948401946001909101908401610419565b50858210156104565787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a05160c0516126706104b8600039600081816103840152818161068e0152818161072601528181610a860152610d2d0152600061099401526000818161057a015261140601526126706000f3fe608060405234801561001057600080fd5b50600436106102115760003560e01c806378213aca11610125578063b0cf4cbb116100ad578063dac42a721161007c578063dac42a721461043c578063dae1cc4e1461044f578063dd62ed3e14610457578063fa139f9814610490578063fb1e61ca146104a357600080fd5b8063b0cf4cbb146103fb578063c97c77de1461040e578063d917d55214610421578063d9e69a051461043457600080fd5b8063a0da12a5116100f4578063a0da12a5146103ae578063a8509fd8146103ba578063a9059cbb146103c2578063ab134161146103d5578063ab6f52ae146103e857600080fd5b806378213aca146103645780638456cb59146103775780638da5cb5b1461037f57806395d89b41146103a657600080fd5b806323b872dd116101a85780633f4ba83a116101775780633f4ba83a1461030d5780635c975abb1461031557806360c4268814610320578063669062441461032857806370a082311461033b57600080fd5b806323b872dd146102b857806329499087146102cb578063313ce567146102f6578063328f7c481461030557600080fd5b80630ca76175116101e45780630ca761751461028057806311edc06e1461029557806318160ddd1461029d5780631b93b265146102a557600080fd5b8063052e45f71461021657806306fdde031461023957806309587d8f1461024e578063095ea7b31461025d575b600080fd5b6102266802b5e3af16b188000081565b6040519081526020015b60405180910390f35b6102416104c3565b6040516102309190612080565b610226670de0b6b3a764000081565b61027061026b3660046120aa565b610555565b6040519015158152602001610230565b61029361028e366004612176565b61056f565b005b6102266105f3565b600254610226565b6102936102b33660046121e2565b610683565b6102706102c636600461220b565b6106f7565b600d546102de906001600160a01b031681565b6040516001600160a01b039091168152602001610230565b60405160128152602001610230565b610226606481565b61029361071b565b60055460ff16610270565b61022661076d565b610226610336366004612247565b6107bb565b610226610349366004612260565b6001600160a01b031660009081526020819052604090205490565b610226610372366004612247565b6107e3565b610293610a7b565b6102de7f000000000000000000000000000000000000000000000000000000000000000081565b610241610acb565b6102266402540be40081565b600954610226565b6102706103d03660046120aa565b610ada565b6102266103e3366004612247565b610ae8565b6102266103f6366004612247565b610c93565b610226610409366004612247565b610cba565b61022661041c366004612247565b610cd7565b600e546102de906001600160a01b031681565b61022660c881565b600f546102de906001600160a01b031681565b610226610cf3565b61022661046536600461227b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61029361049e3660046122ae565b610d22565b6104b66104b1366004612247565b610d8f565b60405161023091906122e7565b6060600380546104d290612333565b80601f01602080910402602001604051908101604052809291908181526020018280546104fe90612333565b801561054b5780601f106105205761010080835404028352916020019161054b565b820191906000526020600020905b81548152906001019060200180831161052e57829003601f168201915b5050505050905090565b600033610563818585610e21565b60019150505b92915050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105b85760405163c6829f8360e01b815260040160405180910390fd5b6105c3838383610e33565b60405183907f85e1543bf2f84fe80c6badbce3648c8539ad1df4d2b3d822938ca0538be727e690600090a2505050565b600d5460408051633fabe5a360e21b815290516000926001600160a01b0316918391839163feaf968c9160048083019260a09291908290030181865afa158015610641573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106659190612387565b5050509150506402540be4008161067c91906123ed565b9250505090565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106d45760405162461bcd60e51b81526004016106cb90612404565b60405180910390fd5b600a805467ffffffffffffffff19166001600160401b0392909216919091179055565b600033610705858285610e83565b610710858585610f01565b506001949350505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107635760405162461bcd60e51b81526004016106cb90612404565b61076b610f60565b565b600e5460408051633fabe5a360e21b815290516000926001600160a01b0316918391839163feaf968c9160048083019260a09291908290030181865afa158015610641573d6000803e3d6000fd5b6000670de0b6b3a7640000826107cf61076d565b6107d991906123ed565b610569919061243e565b60006107ed610fb2565b60006107fb61041c84610cba565b90506802b5e3af16b1880000811015610827576040516313185bd760e01b815260040160405180910390fd5b6108686040805160e0810190915280600081526020016000815260200160008152602001606081526020016060815260200160608152602001606081525090565b6109056007805461087890612333565b80601f01602080910402602001604051908101604052809291908181526020018280546108a490612333565b80156108f15780601f106108c6576101008083540402835291602001916108f1565b820191906000526020600020905b8154815290600101906020018083116108d457829003601f168201915b505050505082610fd690919063ffffffff16565b600a5461092790829060ff600160401b820416906001600160401b0316610fe7565b604080516001808252818301909252600091816020015b606081526020019060019003908161093e57905050905061095e8561107d565b8160008151811061097157610971612452565b6020908102919091010152610986828261110f565b6109bf61099283611139565b7f000000000000000000000000000000000000000000000000000000000000000062030d40600854611401565b93506040518060600160405280866402540be4006109dd91906123ed565b8152336020820152604001600190526000858152600b60209081526040918290208351815590830151600180830180546001600160a01b039093166001600160a01b031984168117825594860151939490926001600160a81b0319161790600160a01b908490811115610a5257610a526122d1565b0217905550610a739150339050610a6e876402540be4006123ed565b6114d3565b505050919050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610ac35760405162461bcd60e51b81526004016106cb90612404565b61076b611509565b6060600480546104d290612333565b600033610563818585610f01565b6000610af2610fb2565b60008211610b135760405163fe9ba5cd60e01b815260040160405180910390fd5b610b546040805160e0810190915280600081526020016000815260200160008152602001606081526020016060815260200160608152602001606081525090565b610b646006805461087890612333565b600a54610b8690829060ff600160401b820416906001600160401b0316610fe7565b604080516001808252818301909252600091816020015b6060815260200190600190039081610b9d579050509050610bbd8461107d565b81600081518110610bd057610bd0612452565b6020908102919091010152610be5828261110f565b610bf161099283611139565b92506040518060600160405280856402540be400610c0f91906123ed565b8152336020820152604001600090526000848152600b60209081526040918290208351815590830151600180830180546001600160a01b039093166001600160a01b031984168117825594860151939490926001600160a81b0319161790600160a01b908490811115610c8457610c846122d1565b0217905550505050505b919050565b6000670de0b6b3a7640000610ca66105f3565b83610cb060025490565b6107cf9190612468565b6000670de0b6b3a7640000610ccd6105f3565b6107d990846123ed565b6000610ce161076d565b6107d9670de0b6b3a7640000846123ed565b6000670de0b6b3a7640000610d066105f3565b600254610d1391906123ed565b610d1d919061243e565b905090565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610d6a5760405162461bcd60e51b81526004016106cb90612404565b600a805460ff909216600160401b0268ff000000000000000019909216919091179055565b610db060408051606081018252600080825260208201819052909182015290565b6000828152600b60209081526040918290208251606081018452815481526001808301546001600160a01b038116948301949094529093919291840191600160a01b900460ff1690811115610e0757610e076122d1565b6001811115610e1857610e186122d1565b90525092915050565b610e2e8383836001611546565b505050565b610e3b610fb2565b600080848152600b60205260409020600190810154600160a01b900460ff1690811115610e6a57610e6a6122d1565b03610e7957610e2e838361161b565b610e2e8383611766565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114610efb5781811015610eec57604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064016106cb565b610efb84848484036000611546565b50505050565b6001600160a01b038316610f2b57604051634b637e8f60e11b8152600060048201526024016106cb565b6001600160a01b038216610f555760405163ec442f0560e01b8152600060048201526024016106cb565b610e2e838383611894565b610f686119be565b6005805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60055460ff161561076b5760405163d93c066560e01b815260040160405180910390fd5b610fe382600080846119e1565b5050565b6000610ff4610100611a5f565b9050611027604051806040016040528060068152602001651cdb1bdd125160d21b81525082611a8090919063ffffffff16565b6110348160ff8516611a99565b6040805180820190915260078152663b32b939b4b7b760c91b602082015261105d908290611a80565b6110678183611a99565b6002602085015251516080909301929092525050565b6060600061108a83611aa5565b60010190506000816001600160401b038111156110a9576110a96120d4565b6040519080825280601f01601f1916602001820160405280156110d3576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846110dd57509392505050565b80516000036111315760405163fe936cb760e01b815260040160405180910390fd5b60a090910152565b60606000611148610100611a5f565b90506111816040518060400160405280600c81526020016b31b7b232a637b1b0ba34b7b760a11b81525082611a8090919063ffffffff16565b825161119f906002811115611198576111986122d1565b8290611b7d565b6040805180820190915260088152676c616e677561676560c01b60208201526111c9908290611a80565b60408301516111e0908015611198576111986122d1565b604080518082019091526006815265736f7572636560d01b6020820152611208908290611a80565b6060830151611218908290611a80565b60a083015151156112a4576040805180820190915260048152636172677360e01b6020820152611249908290611a80565b61125281611bb6565b60005b8360a001515181101561129a576112928460a00151828151811061127b5761127b612452565b602002602001015183611a8090919063ffffffff16565b600101611255565b506112a481611bda565b60808301515115611368576000836020015160028111156112c7576112c76122d1565b036112e55760405163a80d31f760e01b815260040160405180910390fd5b60408051808201909152600f81526e39b2b1b932ba39a637b1b0ba34b7b760891b6020820152611316908290611a80565b61132f83602001516002811115611198576111986122d1565b6040805180820190915260078152667365637265747360c81b6020820152611358908290611a80565b6080830151611368908290611bf8565b60c083015151156113f95760408051808201909152600981526862797465734172677360b81b602082015261139e908290611a80565b6113a781611bb6565b60005b8360c00151518110156113ef576113e78460c0015182815181106113d0576113d0612452565b602002602001015183611bf890919063ffffffff16565b6001016113aa565b506113f981611bda565b515192915050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663461d27628688600188886040518663ffffffff1660e01b815260040161145995949392919061247b565b6020604051808303816000875af1158015611478573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149c91906124c4565b60405190915081907f1131472297a800fee664d1d89cfa8f7676ff07189ecc53f80bbb5f4969099db890600090a295945050505050565b6001600160a01b0382166114fd57604051634b637e8f60e11b8152600060048201526024016106cb565b610fe382600083611894565b611511610fb2565b6005805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610f953390565b6001600160a01b0384166115705760405163e602df0560e01b8152600060048201526024016106cb565b6001600160a01b03831661159a57604051634a1406b160e11b8152600060048201526024016106cb565b6001600160a01b0380851660009081526001602090815260408083209387168352929052208290558015610efb57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161160d91815260200190565b60405180910390a350505050565b6000828152600b6020526040902054611633826124dd565b600981905561164182611c05565b111561165f5760405162d11df360e61b815260040160405180910390fd5b8015610e2e57600061167361033683610cba565b600f546000868152600b6020526040908190206001015490516323b872dd60e01b81526001600160a01b0391821660048201523060248201526044810184905292935016906323b872dd906064016020604051808303816000875af11580156116e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117049190612501565b506000848152600b60209081526040808320600101546001600160a01b03168352600c9091528120805483929061173c908490612468565b90915550506000848152600b6020526040902060010154610efb906001600160a01b031683611c31565b6000828152600b60205260409020548015610e2e57600061178961033683610cba565b9050600061271061179c610bb8846123ed565b6117a6919061243e565b905060006117b48284612523565b600f5460405163a9059cbb60e01b8152336004820152602481018390529192506000916001600160a01b039091169063a9059cbb906044016020604051808303816000875af115801561180b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061182f9190612501565b90508061184f57604051632b82e89360e01b815260040160405180910390fd5b6000878152600b60209081526040808320600101546001600160a01b03168352600c90915281208054869290611886908490612523565b909155505050505050505050565b6001600160a01b0383166118bf5780600260008282546118b49190612468565b909155506119319050565b6001600160a01b038316600090815260208190526040902054818110156119125760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016106cb565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661194d5760028054829003905561196c565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119b191815260200190565b60405180910390a3505050565b60055460ff1661076b57604051638dfc202b60e01b815260040160405180910390fd5b8051600003611a03576040516322ce3edd60e01b815260040160405180910390fd5b83836002811115611a1657611a166122d1565b90816002811115611a2957611a296122d1565b90525060408401828015611a3f57611a3f6122d1565b90818015611a4f57611a4f6122d1565b9052506060909301929092525050565b611a67612005565b8051611a739083611c67565b5060006020820152919050565b611a8d8260038351611cde565b8151610e2e9082611df7565b610fe382600083611cde565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310611ae45772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310611b10576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310611b2e57662386f26fc10000830492506010015b6305f5e1008310611b46576305f5e100830492506008015b6127108310611b5a57612710830492506004015b60648310611b6c576064830492506002015b600a83106105695760010192915050565b8151611b8a9060c2611e18565b50610fe38282604051602001611ba291815260200190565b604051602081830303815290604052611bf8565b611bc1816004611e81565b600181602001818151611bd49190612468565b90525050565b611be5816007611e81565b600181602001818151611bd49190612523565b611a8d8260028351611cde565b600080611c1183610c93565b90506064611c2060c8836123ed565b611c2a919061243e565b9392505050565b6001600160a01b038216611c5b5760405163ec442f0560e01b8152600060048201526024016106cb565b610fe360008383611894565b604080518082019091526060815260006020820152611c87602083612536565b15611caf57611c97602083612536565b611ca2906020612523565b611cac9083612468565b91505b602080840183905260405180855260008152908184010181811015611cd357600080fd5b604052509192915050565b6017816001600160401b031611611d04578251610efb9060e0600585901b168317611e18565b60ff816001600160401b031611611d44578251611d2c906018611fe0600586901b1617611e18565b508251610efb906001600160401b0383166001611e98565b61ffff816001600160401b031611611d85578251611d6d906019611fe0600586901b1617611e18565b508251610efb906001600160401b0383166002611e98565b63ffffffff816001600160401b031611611dc8578251611db090601a611fe0600586901b1617611e18565b508251610efb906001600160401b0383166004611e98565b8251611ddf90601b611fe0600586901b1617611e18565b508251610efb906001600160401b0383166008611e98565b604080518082019091526060815260006020820152611c2a83838451611f1d565b6040805180820190915260608152600060208201528251516000611e3d826001612468565b905084602001518210611e5e57611e5e85611e598360026123ed565b611fee565b8451602083820101858153508051821115611e77578181525b5093949350505050565b8151610e2e90601f611fe0600585901b1617611e18565b6040805180820190915260608152600060208201528351516000611ebc8285612468565b90508560200151811115611ed957611ed986611e598360026123ed565b60006001611ee98661010061262e565b611ef39190612523565b90508651828101878319825116178152508051831115611f11578281525b50959695505050505050565b6040805180820190915260608152600060208201528251821115611f4057600080fd5b8351516000611f4f8483612468565b90508560200151811115611f6c57611f6c86611e598360026123ed565b855180518382016020019160009180851115611f86578482525b505050602086015b60208610611fc65780518252611fa5602083612468565b9150611fb2602082612468565b9050611fbf602087612523565b9550611f8e565b51815160001960208890036101000a0190811690199190911617905250849150509392505050565b8151611ffa8383611c67565b50610efb8382611df7565b604051806040016040528061202d604051806040016040528060608152602001600081525090565b8152602001600081525090565b6000815180845260005b8181101561206057602081850181015186830182015201612044565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000611c2a602083018461203a565b80356001600160a01b0381168114610c8e57600080fd5b600080604083850312156120bd57600080fd5b6120c683612093565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126120fb57600080fd5b81356001600160401b0380821115612115576121156120d4565b604051601f8301601f19908116603f0116810190828211818310171561213d5761213d6120d4565b8160405283815286602085880101111561215657600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060006060848603121561218b57600080fd5b8335925060208401356001600160401b03808211156121a957600080fd5b6121b5878388016120ea565b935060408601359150808211156121cb57600080fd5b506121d8868287016120ea565b9150509250925092565b6000602082840312156121f457600080fd5b81356001600160401b0381168114611c2a57600080fd5b60008060006060848603121561222057600080fd5b61222984612093565b925061223760208501612093565b9150604084013590509250925092565b60006020828403121561225957600080fd5b5035919050565b60006020828403121561227257600080fd5b611c2a82612093565b6000806040838503121561228e57600080fd5b61229783612093565b91506122a560208401612093565b90509250929050565b6000602082840312156122c057600080fd5b813560ff81168114611c2a57600080fd5b634e487b7160e01b600052602160045260246000fd5b815181526020808301516001600160a01b031690820152604082015160608201906002811061232657634e487b7160e01b600052602160045260246000fd5b8060408401525092915050565b600181811c9082168061234757607f821691505b60208210810361236757634e487b7160e01b600052602260045260246000fd5b50919050565b805169ffffffffffffffffffff81168114610c8e57600080fd5b600080600080600060a0868803121561239f57600080fd5b6123a88661236d565b94506020860151935060408601519250606086015191506123cb6080870161236d565b90509295509295909350565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610569576105696123d7565b6020808252600a908201526927b7363c9037bbb732b960b11b604082015260600190565b634e487b7160e01b600052601260045260246000fd5b60008261244d5761244d612428565b500490565b634e487b7160e01b600052603260045260246000fd5b80820180821115610569576105696123d7565b6001600160401b038616815260a06020820152600061249d60a083018761203a565b61ffff9590951660408301525063ffffffff92909216606083015260809091015292915050565b6000602082840312156124d657600080fd5b5051919050565b805160208083015191908110156123675760001960209190910360031b1b16919050565b60006020828403121561251357600080fd5b81518015158114611c2a57600080fd5b81810381811115610569576105696123d7565b60008261254557612545612428565b500690565b600181815b8085111561258557816000190482111561256b5761256b6123d7565b8085161561257857918102915b93841c939080029061254f565b509250929050565b60008261259c57506001610569565b816125a957506000610569565b81600181146125bf57600281146125c9576125e5565b6001915050610569565b60ff8411156125da576125da6123d7565b50506001821b610569565b5060208310610133831016604e8410600b8410161715612608575081810a610569565b612612838361254a565b8060001904821115612626576126266123d7565b029392505050565b6000611c2a838361258d56fea26469706673582212208ea5b8d0dfd2e9fa8e9f27ba87d6ac6f88d66ecbb38fc4bc36076c2bc2318f3964736f6c63430008190033000000000000000000000000000000000000000000000000000000000000015d0000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000096066756e2d706f6c79676f6e2d616d6f792d310000000000000000000000000000000000000000000000000000c2e2848e28b9fe430ab44f55a8437a33802a219c0000000000000000000000001b8739bb4cdf0089d07097a9ae5bd274b29c6f1600000000000000000000000096182684ae05ec30a3c2644c6cb9f3b9e6a8e89b0000000000000000000000000000000000000000000000000000000066ee97f60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080f636f6e73742041535345545f5449434b4552203d202254534c41220d0a636f6e7374205343414c494e475f464143544f52203d203130202a2a20383b20200d0a636f6e737420534c4545505f54494d45203d2035303030202f2f2035207365636f6e64730d0a0d0a6173796e632066756e6374696f6e206d61696e28297b0d0a20202020636f6e737420616d6f756e745469636b6572203d20617267735b305d3b0d0a20202020636f6e7374207363616c6564416d6f756e745469636b6572203d20287061727365466c6f617428616d6f756e745469636b657229202f205343414c494e475f464143544f52292e746f537472696e6728293b0d0a20202020636f6e737420616c7061636152657175657374203d2046756e6374696f6e732e6d616b654874747052657175657374287b0d0a202020202020202075726c3a2268747470733a2f2f70617065722d6170692e616c706163612e6d61726b6574732f76322f6163636f756e74222c0d0a2020202020202020686561646572733a7b0d0a2020202020202020202020206163636570743a226170706c69636174696f6e2f6a736f6e222c0d0a20202020202020202020202027415043412d4150492d4b45592d4944273a736563726574732e616c706163614b65792c0d0a20202020202020202020202027415043412d4150492d5345435245542d4b4559273a736563726574732e616c706163615365637265740d0a20202020202020207d0d0a202020207d290d0a202020200d0a20202020636f6e7374205b726573706f6e73655d203d2061776169742050726f6d6973652e616c6c285b616c70616361526571756573745d293b0d0a20202020636f6e737420706f7274666f6c696f42616c616e6365203d20726573706f6e73652e646174612e706f7274666f6c696f5f76616c75653b0d0a0d0a202020206c65742073696465203d2022627579220d0a202020206c6574205b69642c20726573706f6e73655374617475735d203d20617761697420706c6163654f726465722841535345545f5449434b45522c207363616c6564416d6f756e745469636b65722c2073696465290d0a2020202069662028726573706f6e736553746174757320213d3d2032303029207b0d0a202020202020202072657475726e2046756e6374696f6e732e656e636f646555696e743235362830290d0a202020207d0d0a2020202072657475726e2046756e6374696f6e732e656e636f646555696e74323536284d6174682e726f756e6428706f7274666f6c696f42616c616e63652a3130303030303030303030303030303030303029293b0d0a202020200d0a7d0d0a0d0a6173796e632066756e6374696f6e20706c6163654f726465722873796d626f6c2c207174792c207369646529207b0d0a2020200d0a20202020636f6e737420616c7061636153656c6c52657175657374203d2046756e6374696f6e732e6d616b654874747052657175657374287b0d0a20202020202020206d6574686f643a2027504f5354272c0d0a202020202020202075726c3a202268747470733a2f2f70617065722d6170692e616c706163612e6d61726b6574732f76322f6f7264657273222c200d0a2020202020202020686561646572733a207b0d0a20202020202020202020202027616363657074273a20276170706c69636174696f6e2f6a736f6e272c0d0a20202020202020202020202027636f6e74656e742d74797065273a20276170706c69636174696f6e2f6a736f6e272c0d0a20202020202020202020202027415043412d4150492d4b45592d4944273a20736563726574732e616c706163614b65792c0d0a20202020202020202020202027415043412d4150492d5345435245542d4b4559273a20736563726574732e616c706163615365637265740d0a20202020202020207d2c0d0a2020202020202020646174613a207b0d0a202020202020202020202020736964653a20736964652c0d0a202020202020202020202020747970653a20226d61726b6574222c0d0a20202020202020202020202074696d655f696e5f666f7263653a2022646179222c0d0a20202020202020202020202073796d626f6c3a2073796d626f6c2c0d0a2020202020202020202020207174793a207174790d0a20202020202020207d0d0a202020207d290d0a0d0a20202020636f6e7374205b726573706f6e73655d203d2061776169742050726f6d6973652e616c6c285b0d0a2020202020202020616c7061636153656c6c526571756573742c0d0a202020205d290d0a20202020636f6e737420726573706f6e7365537461747573203d20726573706f6e73652e7374617475730d0a20202020636f6e736f6c652e6c6f6728726573706f6e7365290d0a20202020636f6e7374207b2069642c207374617475733a206f72646572537461747573207d203d20726573706f6e73652e646174610d0a2020202072657475726e205b69642c20726573706f6e73655374617475735d0d0a7d0d0a0d0a66756e6374696f6e205f636865636b4b6579732829207b0d0a20202020696620280d0a2020202020202020736563726574732e616c706163614b6579203d3d202222207c7c0d0a2020202020202020736563726574732e616c70616361536563726574203d3d3d2022220d0a2020202029207b0d0a20202020202020207468726f77204572726f72280d0a202020202020202020202020226e65656420616c70616361206b657973220d0a2020202020202020290d0a202020207d0d0a7d0d0a0d0a636f6e737420726573756c74203d206177616974206d61696e28293b0d0a72657475726e20726573756c743b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000810636f6e73742041535345545f5449434b4552203d202254534c41220d0a636f6e7374205343414c494e475f464143544f52203d203130202a2a20383b20200d0a636f6e737420534c4545505f54494d45203d2035303030202f2f2035207365636f6e64730d0a0d0a6173796e632066756e6374696f6e206d61696e28297b0d0a20202020636f6e737420616d6f756e745469636b6572203d20617267735b305d3b0d0a20202020636f6e7374207363616c6564416d6f756e745469636b6572203d20287061727365466c6f617428616d6f756e745469636b657229202f205343414c494e475f464143544f52292e746f537472696e6728293b0d0a20202020636f6e737420616c7061636152657175657374203d2046756e6374696f6e732e6d616b654874747052657175657374287b0d0a202020202020202075726c3a2268747470733a2f2f70617065722d6170692e616c706163612e6d61726b6574732f76322f6163636f756e74222c0d0a2020202020202020686561646572733a7b0d0a2020202020202020202020206163636570743a226170706c69636174696f6e2f6a736f6e222c0d0a20202020202020202020202027415043412d4150492d4b45592d4944273a736563726574732e616c706163614b65792c0d0a20202020202020202020202027415043412d4150492d5345435245542d4b4559273a736563726574732e616c706163615365637265740d0a20202020202020207d0d0a202020207d290d0a202020200d0a20202020636f6e7374205b726573706f6e73655d203d2061776169742050726f6d6973652e616c6c285b616c70616361526571756573745d293b0d0a20202020636f6e737420706f7274666f6c696f42616c616e6365203d20726573706f6e73652e646174612e706f7274666f6c696f5f76616c75653b0d0a0d0a202020206c65742073696465203d202273656c6c220d0a202020206c6574205b69642c20726573706f6e73655374617475735d203d20617761697420706c6163654f726465722841535345545f5449434b45522c207363616c6564416d6f756e745469636b65722c2073696465290d0a2020202069662028726573706f6e736553746174757320213d3d2032303029207b0d0a202020202020202072657475726e2046756e6374696f6e732e656e636f646555696e743235362830290d0a202020207d0d0a2020202072657475726e2046756e6374696f6e732e656e636f646555696e74323536284d6174682e726f756e6428706f7274666f6c696f42616c616e63652a3130303030303030303030303030303030303029293b0d0a202020200d0a7d0d0a0d0a6173796e632066756e6374696f6e20706c6163654f726465722873796d626f6c2c207174792c207369646529207b0d0a2020200d0a20202020636f6e737420616c7061636153656c6c52657175657374203d2046756e6374696f6e732e6d616b654874747052657175657374287b0d0a20202020202020206d6574686f643a2027504f5354272c0d0a202020202020202075726c3a202268747470733a2f2f70617065722d6170692e616c706163612e6d61726b6574732f76322f6f7264657273222c200d0a2020202020202020686561646572733a207b0d0a20202020202020202020202027616363657074273a20276170706c69636174696f6e2f6a736f6e272c0d0a20202020202020202020202027636f6e74656e742d74797065273a20276170706c69636174696f6e2f6a736f6e272c0d0a20202020202020202020202027415043412d4150492d4b45592d4944273a20736563726574732e616c706163614b65792c0d0a20202020202020202020202027415043412d4150492d5345435245542d4b4559273a20736563726574732e616c706163615365637265740d0a20202020202020207d2c0d0a2020202020202020646174613a207b0d0a202020202020202020202020736964653a20736964652c0d0a202020202020202020202020747970653a20226d61726b6574222c0d0a20202020202020202020202074696d655f696e5f666f7263653a2022646179222c0d0a20202020202020202020202073796d626f6c3a2073796d626f6c2c0d0a2020202020202020202020207174793a207174790d0a20202020202020207d0d0a202020207d290d0a0d0a20202020636f6e7374205b726573706f6e73655d203d2061776169742050726f6d6973652e616c6c285b0d0a2020202020202020616c7061636153656c6c526571756573742c0d0a202020205d290d0a20202020636f6e737420726573706f6e7365537461747573203d20726573706f6e73652e7374617475730d0a20202020636f6e736f6c652e6c6f6728726573706f6e7365290d0a20202020636f6e7374207b2069642c207374617475733a206f72646572537461747573207d203d20726573706f6e73652e646174610d0a2020202072657475726e205b69642c20726573706f6e73655374617475735d0d0a7d0d0a0d0a66756e6374696f6e205f636865636b4b6579732829207b0d0a20202020696620280d0a2020202020202020736563726574732e616c706163614b6579203d3d202222207c7c0d0a2020202020202020736563726574732e616c70616361536563726574203d3d3d2022220d0a2020202029207b0d0a20202020202020207468726f77204572726f72280d0a202020202020202020202020226e65656420616c70616361206b657973220d0a2020202020202020290d0a202020207d0d0a7d0d0a0d0a636f6e737420726573756c74203d206177616974206d61696e28293b0d0a72657475726e20726573756c743b00000000000000000000000000000000