@boostxyz/sdk 2.0.0-alpha.29 → 2.0.0-alpha.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/dist/Actions/Action.cjs +1 -1
  2. package/dist/Actions/Action.js +2 -2
  3. package/dist/Actions/EventAction.cjs +1 -1
  4. package/dist/Actions/EventAction.cjs.map +1 -1
  5. package/dist/Actions/EventAction.d.ts +3 -1
  6. package/dist/Actions/EventAction.d.ts.map +1 -1
  7. package/dist/Actions/EventAction.js +91 -75
  8. package/dist/Actions/EventAction.js.map +1 -1
  9. package/dist/AllowLists/AllowList.cjs +1 -1
  10. package/dist/AllowLists/AllowList.js +3 -3
  11. package/dist/AllowLists/SimpleAllowList.cjs +1 -1
  12. package/dist/AllowLists/SimpleAllowList.js +6 -6
  13. package/dist/AllowLists/SimpleDenyList.cjs +1 -1
  14. package/dist/AllowLists/SimpleDenyList.js +3 -3
  15. package/dist/Auth/PassthroughAuth.cjs +1 -1
  16. package/dist/Auth/PassthroughAuth.js +1 -1
  17. package/dist/BoostCore.cjs +2 -2
  18. package/dist/BoostCore.cjs.map +1 -1
  19. package/dist/BoostCore.js +13 -13
  20. package/dist/BoostRegistry.cjs +1 -1
  21. package/dist/BoostRegistry.js +13 -13
  22. package/dist/Budgets/Budget.cjs +1 -1
  23. package/dist/Budgets/Budget.js +2 -2
  24. package/dist/Budgets/ManagedBudget.cjs +1 -1
  25. package/dist/Budgets/ManagedBudget.js +25 -25
  26. package/dist/Deployable/DeployableTarget.cjs +1 -1
  27. package/dist/Deployable/DeployableTarget.js +1 -1
  28. package/dist/Deployable/DeployableTargetWithRBAC.cjs +1 -1
  29. package/dist/Deployable/DeployableTargetWithRBAC.js +13 -13
  30. package/dist/Incentives/AllowListIncentive.cjs +1 -1
  31. package/dist/Incentives/AllowListIncentive.js +10 -10
  32. package/dist/Incentives/CGDAIncentive.cjs +1 -1
  33. package/dist/Incentives/CGDAIncentive.js +10 -10
  34. package/dist/Incentives/ERC20Incentive.cjs +1 -1
  35. package/dist/Incentives/ERC20Incentive.js +16 -16
  36. package/dist/Incentives/ERC20VariableCriteriaIncentive.cjs +1 -1
  37. package/dist/Incentives/ERC20VariableCriteriaIncentive.cjs.map +1 -1
  38. package/dist/Incentives/ERC20VariableCriteriaIncentive.d.ts +37 -1
  39. package/dist/Incentives/ERC20VariableCriteriaIncentive.d.ts.map +1 -1
  40. package/dist/Incentives/ERC20VariableCriteriaIncentive.js +69 -50
  41. package/dist/Incentives/ERC20VariableCriteriaIncentive.js.map +1 -1
  42. package/dist/Incentives/ERC20VariableIncentive.cjs +1 -1
  43. package/dist/Incentives/ERC20VariableIncentive.js +6 -6
  44. package/dist/Incentives/Incentive.cjs +1 -1
  45. package/dist/Incentives/Incentive.js +2 -2
  46. package/dist/Incentives/PointsIncentive.cjs +1 -1
  47. package/dist/Incentives/PointsIncentive.js +8 -8
  48. package/dist/{SimpleDenyList-DqM-Bczx.cjs → SimpleDenyList-DEOJMCvF.cjs} +2 -2
  49. package/dist/{SimpleDenyList-DqM-Bczx.cjs.map → SimpleDenyList-DEOJMCvF.cjs.map} +1 -1
  50. package/dist/{SimpleDenyList-7BojkCuF.js → SimpleDenyList-Ddg3_VkW.js} +13 -13
  51. package/dist/{SimpleDenyList-7BojkCuF.js.map → SimpleDenyList-Ddg3_VkW.js.map} +1 -1
  52. package/dist/Validators/LimitedSignerValidator.cjs +1 -1
  53. package/dist/Validators/LimitedSignerValidator.js +2 -2
  54. package/dist/Validators/SignerValidator.cjs +1 -1
  55. package/dist/Validators/SignerValidator.js +5 -5
  56. package/dist/Validators/Validator.cjs +1 -1
  57. package/dist/Validators/Validator.js +2 -2
  58. package/dist/{componentInterfaces-BJ_XfE8j.cjs → componentInterfaces-BQw7DH-m.cjs} +2 -2
  59. package/dist/componentInterfaces-BQw7DH-m.cjs.map +1 -0
  60. package/dist/componentInterfaces-C0vuWQlh.js +15 -0
  61. package/dist/componentInterfaces-C0vuWQlh.js.map +1 -0
  62. package/dist/deployments-DAmmY7Gs.cjs +2 -0
  63. package/dist/deployments-DAmmY7Gs.cjs.map +1 -0
  64. package/dist/deployments-ZfLmhZat.js +56 -0
  65. package/dist/deployments-ZfLmhZat.js.map +1 -0
  66. package/dist/deployments.json +28 -28
  67. package/dist/{generated-Dz_g2mFT.js → generated-BwSyxdrd.js} +231 -213
  68. package/dist/generated-BwSyxdrd.js.map +1 -0
  69. package/dist/{generated-BSUMIFi5.cjs → generated-CtPS8IvR.cjs} +3 -3
  70. package/dist/generated-CtPS8IvR.cjs.map +1 -0
  71. package/dist/index.cjs +1 -1
  72. package/dist/index.js +16 -16
  73. package/package.json +2 -2
  74. package/src/Actions/EventAction.test.ts +1 -1
  75. package/src/Actions/EventAction.ts +20 -0
  76. package/src/BoostCore.test.ts +7 -7
  77. package/src/Incentives/ERC20VariableCriteriaIncentive.test.ts +3 -0
  78. package/src/Incentives/ERC20VariableCriteriaIncentive.ts +36 -0
  79. package/dist/componentInterfaces-BJ_XfE8j.cjs.map +0 -1
  80. package/dist/componentInterfaces-DBJaFhsl.js +0 -15
  81. package/dist/componentInterfaces-DBJaFhsl.js.map +0 -1
  82. package/dist/deployments-Ccx1MtoK.js +0 -56
  83. package/dist/deployments-Ccx1MtoK.js.map +0 -1
  84. package/dist/deployments-DF_6-7hH.cjs +0 -2
  85. package/dist/deployments-DF_6-7hH.cjs.map +0 -1
  86. package/dist/generated-BSUMIFi5.cjs.map +0 -1
  87. package/dist/generated-Dz_g2mFT.js.map +0 -1
@@ -1,3 +1,3 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("./generated-BSUMIFi5.cjs"),y=require("@wagmi/core"),i=require("viem"),j=require("./deployments-DF_6-7hH.cjs"),H=require("./Actions/Action.cjs"),$=require("./Actions/EventAction.cjs"),q=require("./AllowLists/AllowList.cjs"),x=require("./AllowLists/SimpleAllowList.cjs"),G=require("./SimpleDenyList-DqM-Bczx.cjs"),U=require("./Auth/PassthroughAuth.cjs"),B=require("./Boost.cjs"),k=require("./Budgets/Budget.cjs"),W=require("./Budgets/ManagedBudget.cjs"),Q=require("./Deployable/Deployable.cjs"),J=require("./Incentives/AllowListIncentive.cjs"),K=require("./Incentives/CGDAIncentive.cjs"),X=require("./Incentives/ERC20Incentive.cjs"),Y=require("./Incentives/ERC20VariableCriteriaIncentive.cjs"),Z=require("./Incentives/Incentive.cjs"),p=require("./Incentives/PointsIncentive.cjs"),ff=require("./Validators/LimitedSignerValidator.cjs"),ef=require("./Validators/SignerValidator.cjs"),_=require("./Validators/Validator.cjs"),A=require("./errors.cjs"),g=require("./utils.cjs"),bf=require("./Incentives/ERC20VariableIncentive.cjs"),O=require("viem/actions"),S=require("viem/utils"),af="0x60806040526103e8600360146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555034801561003a575f80fd5b506040516152f63803806152f6833981810160405281019061005c919061026b565b61006b336100f260201b60201c565b8160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506102a9565b6101006101ce60201b60201c565b15610178577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561013a57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3506101cb565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f90565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101ff826101d6565b9050919050565b5f610210826101f5565b9050919050565b61022081610206565b811461022a575f80fd5b50565b5f8151905061023b81610217565b92915050565b61024a816101f5565b8114610254575f80fd5b50565b5f8151905061026581610241565b92915050565b5f8060408385031215610281576102806101d2565b5b5f61028e8582860161022d565b925050602061029f85828601610257565b9150509250929050565b615040806102b65f395ff3fe60806040526004361061014a575f3560e01c80637b103999116100b5578063dd98558c1161006e578063dd98558c146103fa578063e21ff73114610437578063eccc19a614610473578063f04e283e1461049b578063f2fde38b146104b7578063fee81cf4146104d35761014a565b80637b1039991461030c5780638da5cb5b146103365780638fe4f52314610360578063a92647dc1461037c578063b0e21e8a146103a6578063d73792a9146103d05761014a565b806354d1f13d1161010757806354d1f13d1461024a5780635edb9eb0146102545780635f32c23e1461027e57806360777795146102a6578063715018a6146102e6578063730f9c57146102f05761014a565b80630250e72b1461014e57806313c8e2de1461018a57806325692962146101c657806339a51be5146101d057806343bc42d3146101fa57806346877b1a14610222575b5f80fd5b348015610159575f80fd5b50610174600480360381019061016f91906137ea565b61050f565b6040516101819190613945565b60405180910390f35b348015610195575f80fd5b506101b060048036038101906101ab9190613988565b6105e6565b6040516101bd9190613c16565b60405180910390f35b6101ce61088e565b005b3480156101db575f80fd5b506101e46108df565b6040516101f19190613c45565b60405180910390f35b348015610205575f80fd5b50610220600480360381019061021b9190613c88565b610904565b005b34801561022d575f80fd5b5061024860048036038101906102439190613cdd565b610938565b005b610252610983565b005b34801561025f575f80fd5b506102686109bc565b6040516102759190613d17565b60405180910390f35b348015610289575f80fd5b506102a4600480360381019061029f9190613d30565b6109c7565b005b3480156102b1575f80fd5b506102cc60048036038101906102c791906137ea565b610b53565b6040516102dd959493929190613d7d565b60405180910390f35b6102ee610bb0565b005b61030a60048036038101906103059190613e2f565b610bc3565b005b348015610317575f80fd5b50610320611104565b60405161032d9190613ee5565b60405180910390f35b348015610341575f80fd5b5061034a611129565b6040516103579190613c45565b60405180910390f35b61037a60048036038101906103759190613efe565b611151565b005b348015610387575f80fd5b50610390611166565b60405161039d9190613fa2565b60405180910390f35b3480156103b1575f80fd5b506103ba61118b565b6040516103c79190613fca565b60405180910390f35b3480156103db575f80fd5b506103e46111a5565b6040516103f19190613fca565b60405180910390f35b348015610405575f80fd5b50610420600480360381019061041b9190613fe3565b6111ab565b60405161042e929190614054565b60405180910390f35b348015610442575f80fd5b5061045d6004803603810190610458919061407b565b6118af565b60405161046a9190613c16565b60405180910390f35b34801561047e575f80fd5b5061049960048036038101906104949190613cdd565b61229d565b005b6104b560048036038101906104b09190613cdd565b6122e8565b005b6104d160048036038101906104cc9190613cdd565b612326565b005b3480156104de575f80fd5b506104f960048036038101906104f49190613cdd565b61234f565b6040516105069190613d17565b60405180910390f35b6105176135fc565b60045f8381526020019081526020015f206040518060a00160405290815f82015f9054906101000a900460ff16600281111561055657610555613815565b5b600281111561056857610567613815565b5b81526020015f820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201548152602001600282015481526020016003820154815250509050919050565b6105ee61364e565b5f8281548110610601576106006140c6565b5b905f5260205f209060080201604051806101000160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600482018054806020026020016040519081016040528092919081815260200182805480156107ee57602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116107a5575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050919050565b5f610897612368565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61090c612372565b80600360146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050565b610940612372565b8060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f8080549050905090565b3068929eee149b4bd2126854036109e55763ab143c065f526004601cfd5b3068929eee149b4bd21268555f6109fc83836123a9565b90505f60045f8381526020019081526020015f2090505f816002015461271067ffffffffffffffff168360010154610a349190614120565b610a3e919061418e565b90505f610a4a836123db565b905081811115610b3f575f8282610a6191906141be565b90505f61271067ffffffffffffffff16856002015483610a819190614120565b610a8b919061418e565b9050610a9785826125e1565b80856001015410610ac15780856001015f828254610ab591906141be565b92505081905550610acb565b5f85600101819055505b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1687897f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b1784604051610b349190613d17565b60405180910390a450505b505050503868929eee149b4bd21268555050565b6004602052805f5260405f205f91509050805f015f9054906101000a900460ff1690805f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154905085565b610bb8612372565b610bc15f6127c2565b565b3068929eee149b4bd212685403610be15763ab143c065f526004601cfd5b3068929eee149b4bd21268555f808781548110610c0157610c006140c6565b5b905f5260205f20906008020190505f610c1a88886123a9565b90505f60045f8381526020019081526020015f209050826002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e3f756de8588886040518463ffffffff1660e01b8152600401610c909392919061424b565b602060405180830381865afa158015610cab573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ccf91906142b0565b610d05576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b826001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663703b69008a8a878a8a6040518663ffffffff1660e01b8152600401610d699594939291906142db565b6020604051808303815f875af1158015610d85573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610da991906142b0565b610ddf576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8073ffffffffffffffffffffffffffffffffffffffff16825f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610e3c575f610e46565b610e45826123db565b5b9050836004018981548110610e5e57610e5d6140c6565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb1757cf8689896040518463ffffffff1660e01b8152600401610ec29392919061424b565b6020604051808303815f875af1158015610ede573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f0291906142b0565b610f47578487876040517f4139d81d000000000000000000000000000000000000000000000000000000008152600401610f3e9392919061424b565b60405180910390fd5b5f8073ffffffffffffffffffffffffffffffffffffffff16835f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610fa4575f610fae565b610fad836123db565b5b90505f818311610fbe575f610fcb565b8183610fca91906141be565b5b90505f61271067ffffffffffffffff16856002015483610feb9190614120565b610ff5919061418e565b90505f8111156110955761100985826125e1565b80856001015f82825461101c91906141be565b9250508190555060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168c8e7f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b178460405161108c9190613d17565b60405180910390a45b8773ffffffffffffffffffffffffffffffffffffffff168c8e7f0f29bbf4ce25d2346bbeb8a898e24e5d6d7d1d19bb895e71faecac833b2595478e8e8e6040516110e19392919061424b565b60405180910390a4505050505050503868929eee149b4bd2126855505050505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b61115f858585858533610bc3565b5050505050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360149054906101000a900467ffffffffffffffff1681565b61271081565b5f803068929eee149b4bd2126854036111cb5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f8085815481106111eb576111ea6140c6565b5b905f5260205f209060080201604051806101000160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600482018054806020026020016040519081016040528092919081815260200182805480156113d857602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161138f575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050806060015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114dc576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6114e786866123a9565b90505f60045f8381526020019081526020015f2090505f898981019061150d91906144b2565b90505f8160200151806020019051810190611528919061450d565b90505f61271067ffffffffffffffff168460020154836115489190614120565b611552919061418e565b90505f81111561176f57600160028111156115705761156f613815565b5b845f015f9054906101000a900460ff16600281111561159257611591613815565b5b14806115d057505f60028111156115ac576115ab613815565b5b845f015f9054906101000a900460ff1660028111156115ce576115cd613815565b5b145b1561162b57611626835f015182865f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166128889092919063ffffffff16565b6116fd565b60028081111561163e5761163d613815565b5b845f015f9054906101000a900460ff1660028111156116605761165f613815565b5b036116fc57835f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a30855f01518760030154856040518563ffffffff1660e01b81526004016116ce949392919061455b565b5f604051808303815f87803b1580156116e5575f80fd5b505af11580156116f7573d5f803e3d5ffd5b505050505b5b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16898b7f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b17846040516117669190613d17565b60405180910390a45b5f8087608001518b81518110611788576117876140c6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1663474f5a44866040516020016117bc919061464b565b6040516020818303038152906040526040518263ffffffff1660e01b81526004016117e791906146a3565b60408051808303815f875af1158015611802573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061182691906146d7565b915091505f820361187257338e8e6040517f9ecd71a90000000000000000000000000000000000000000000000000000000081526004016118699392919061424b565b60405180910390fd5b82866001015f82825461188591906141be565b9250508190555081819950995050505050505050503868929eee149b4bd212685594509492505050565b6118b761364e565b335f73ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141580156119ab575060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe9fbb80826040518263ffffffff1660e01b815260040161196a9190613c45565b602060405180830381865afa158015611985573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119a991906142b0565b155b156119e2576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3068929eee149b4bd212685403611a005763ab143c065f526004601cfd5b3068929eee149b4bd21268555f611a5985858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050506128d1565b806020019051810190611a6c9190614a75565b9050611a7a815f015161296a565b5f8060018160018154018082558091505003905f5260205f20906008020190508160e00151816007015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550815f0151816003015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160a00151600360149054906101000a900467ffffffffffffffff16611b4b9190614abc565b816005015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508160c001518160060181905550611bb17fe67157950000000000000000000000000000000000000000000000000000000083602001516001612a45565b815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611c217fe2089f790000000000000000000000000000000000000000000000000000000083606001516001612a45565b816002015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611c738260800151835f0151612a67565b816004019080519060200190611c8a929190613704565b505f73ffffffffffffffffffffffffffffffffffffffff1682604001516020015173ffffffffffffffffffffffffffffffffffffffff1614611cfb57611cf67f5912b89c0000000000000000000000000000000000000000000000000000000083604001516001612a45565b611de4565b805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166301ffc9a77f5912b89c000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401611d769190614b31565b602060405180830381865afa158015611d91573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611db591906142b0565b611dbf575f611de3565b805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b5b816001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f73ffffffffffffffffffffffffffffffffffffffff16816001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611eda577f5912b89c000000000000000000000000000000000000000000000000000000005f6040517fe1c44448000000000000000000000000000000000000000000000000000000008152600401611ed1929190614b4a565b60405180910390fd5b805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816007015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660015f80549050611f5e91906141be565b7f116812d3ad4507d72f2c428b63246d594ca055a1dc119394285504c23d1f34cd8460040180549050856001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876003015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516120039493929190614b71565b60405180910390a480604051806101000160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600482018054806020026020016040519081016040528092919081815260200182805480156121ed57602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116121a4575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050935050503868929eee149b4bd21268555092915050565b6122a5612372565b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6122f0612372565b63389a75e1600c52805f526020600c20805442111561231657636f5e88185f526004601cfd5b5f815550612323816127c2565b50565b61232e612372565b8060601b61234357637448fbae5f526004601cfd5b61234c816127c2565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f6202a300905090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146123a7576382b429005f526004601cfd5b565b5f82826040516020016123bd929190614bd4565b60405160208183030381529060405280519060200120905092915050565b5f600160028111156123f0576123ef613815565b5b825f015f9054906101000a900460ff16600281111561241257612411613815565b5b148061245057505f600281111561242c5761242b613815565b5b825f015f9054906101000a900460ff16600281111561244e5761244d613815565b5b145b156124f757815f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016124b19190613c45565b602060405180830381865afa1580156124cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124f0919061450d565b90506125dc565b60028081111561250a57612509613815565b5b825f015f9054906101000a900460ff16600281111561252c5761252b613815565b5b036125d857815f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1662fdd58e3084600301546040518363ffffffff1660e01b8152600401612592929190614bff565b602060405180830381865afa1580156125ad573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125d1919061450d565b90506125dc565b5f90505b919050565b600160028111156125f5576125f4613815565b5b825f015f9054906101000a900460ff16600281111561261757612616613815565b5b148061265557505f600281111561263157612630613815565b5b825f015f9054906101000a900460ff16600281111561265357612652613815565b5b145b156126ce576126c960035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682845f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166128889092919063ffffffff16565b6127be565b6002808111156126e1576126e0613815565b5b825f015f9054906101000a900460ff16600281111561270357612702613815565b5b036127bd57815f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a3060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168560030154856040518563ffffffff1660e01b815260040161278f949392919061455b565b5f604051808303815f87803b1580156127a6575f80fd5b505af11580156127b8573d5f803e3d5ffd5b505050505b5b5050565b6127ca612f75565b1561282f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550612885565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f511417166128c8576390b8ec185f526004601cfd5b5f603452505050565b60608151156129655760405190506020810160048301805184518501811983525b8086101561294b576001860195508551601f1a8061293b576001870196508651601f1a5f198652607f811161292957600181013887395b6001607f821601860195505050612946565b808553600185019450505b6128f2565b81835260208501840385525f845260208401604052505050505b919050565b6129947fe49cedd70000000000000000000000000000000000000000000000000000000082612f79565b8073ffffffffffffffffffffffffffffffffffffffff1663fe9fbb80336040518263ffffffff1660e01b81526004016129cd9190613c45565b602060405180830381865afa1580156129e8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a0c91906142b0565b612a42576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b5f612a54848460200151612f79565b612a5e8383613070565b90509392505050565b6060825167ffffffffffffffff811115612a8457612a8361432b565b5b604051908082528060200260200182016040528015612ab25781602001602082028036833780820191505090505b5090505f5b8351811015612f6e57612b087fa921670500000000000000000000000000000000000000000000000000000000858381518110612af757612af66140c6565b5b602002602001015160200151612f79565b838181518110612b1b57612b1a6140c6565b5b60200260200101515f0151612ba7577fa921670500000000000000000000000000000000000000000000000000000000848281518110612b5e57612b5d6140c6565b5b6020026020010151602001516040517fe1c44448000000000000000000000000000000000000000000000000000000008152600401612b9e929190614b4a565b60405180910390fd5b612bec7fa921670500000000000000000000000000000000000000000000000000000000858381518110612bde57612bdd6140c6565b5b60200260200101515f612a45565b828281518110612bff57612bfe6140c6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f828281518110612c4d57612c4c6140c6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16634e7165a2868481518110612c8357612c826140c6565b5b6020026020010151604001516040518263ffffffff1660e01b8152600401612cab91906146a3565b5f60405180830381865afa158015612cc5573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190612ced9190614c26565b90505f815114612ec2575f80612d028361312c565b915091508573ffffffffffffffffffffffffffffffffffffffff1663fa4ca9b1836040518263ffffffff1660e01b8152600401612d3f91906146a3565b6020604051808303815f875af1158015612d5b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d7f91906142b0565b612db5576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff1663fa4ca9b1846040518263ffffffff1660e01b8152600401612dee91906146a3565b6020604051808303815f875af1158015612e0a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e2e91906142b0565b612e64576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f83806020019051810190612e799190614d21565b9050612ebe60015f80549050612e8f91906141be565b86836020015185855f01518d8b81518110612ead57612eac6140c6565b5b602002602001015160400151613428565b5050505b828281518110612ed557612ed46140c6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1663439fab91868481518110612f0b57612f0a6140c6565b5b6020026020010151604001516040518263ffffffff1660e01b8152600401612f3391906146a3565b5f604051808303815f87803b158015612f4a575f80fd5b505af1158015612f5c573d5f803e3d5ffd5b50505050508080600101915050612ab7565b5092915050565b5f90565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16148061302857508073ffffffffffffffffffffffffffffffffffffffff166301ffc9a7836040518263ffffffff1660e01b8152600401612fe79190614b31565b602060405180830381865afa158015613002573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061302691906142b0565b155b1561306c5781816040517fe1c44448000000000000000000000000000000000000000000000000000000008152600401613063929190614b4a565b60405180910390fd5b5050565b5f825f01516130835782602001516130a7565b6130a6836020015173ffffffffffffffffffffffffffffffffffffffff16613599565b5b9050825f015180156130b65750815b15613126578073ffffffffffffffffffffffffffffffffffffffff1663439fab9184604001516040518263ffffffff1660e01b81526004016130f891906146a3565b5f604051808303815f87803b15801561310f575f80fd5b505af1158015613121573d5f803e3d5ffd5b505050505b92915050565b60605f80838060200190518101906131449190614d21565b90506001600281111561315a57613159613815565b5b815f015160028111156131705761316f613815565b5b14806131a257505f600281111561318a57613189613815565b5b815f015160028111156131a05761319f613815565b5b145b156132ab575f81606001518060200190518101906131c09190614da1565b90505f61271067ffffffffffffffff16600360149054906101000a900467ffffffffffffffff1667ffffffffffffffff16835f01516131ff9190614120565b613209919061418e565b90505f60405180602001604052808381525090508060405160200161322e9190614de6565b604051602081830303815290604052846060018190525030846040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508360405160200161328e9190614e5f565b604051602081830303815290604052829550955050505050613423565b6002808111156132be576132bd613815565b5b815f015160028111156132d4576132d3613815565b5b036133f1575f81606001518060200190518101906132f29190614efc565b90505f61271067ffffffffffffffff16600360149054906101000a900467ffffffffffffffff1667ffffffffffffffff1683602001516133329190614120565b61333c919061418e565b90505f6040518060600160405280845f0151815260200183815260200184604001518152509050806040516020016133749190614f90565b604051602081830303815290604052846060018190525030846040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050836040516020016133d49190614e5f565b604051602081830303815290604052829550955050505050613423565b6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b915091565b5f60028081111561343c5761343b613815565b5b83600281111561344f5761344e613815565b5b0361346e57818060200190518101906134689190614fb0565b50809150505b5f6040518060a0016040528085600281111561348d5761348c613815565b5b81526020018773ffffffffffffffffffffffffffffffffffffffff168152602001868152602001600360149054906101000a900467ffffffffffffffff1667ffffffffffffffff1681526020018381525090508060045f6134ee8b8b6123a9565b81526020019081526020015f205f820151815f015f6101000a81548160ff0219169083600281111561352357613522613815565b5b02179055506020820151815f0160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816001015560608201518160020155608082015181600301559050505050505050505050565b5f6135a45f836135ab565b9050919050565b5f6c5af43d3d93803e602a57fd5bf36021528160145273602c3d8160093d39f33d3d3d3d363d3d37363d735f526035600c84f09050806135f25763301164255f526004601cfd5b5f60215292915050565b6040518060a001604052805f600281111561361a57613619613815565b5b81526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81526020015f81526020015f81525090565b6040518061010001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff168152602001606081526020015f67ffffffffffffffff1681526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b828054828255905f5260205f2090810192821561377a579160200282015b82811115613779578251825f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190613722565b5b509050613787919061378b565b5090565b5b808211156137a2575f815f90555060010161378c565b5090565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b6137c9816137b7565b81146137d3575f80fd5b50565b5f813590506137e4816137c0565b92915050565b5f602082840312156137ff576137fe6137af565b5b5f61380c848285016137d6565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b6003811061385357613852613815565b5b50565b5f81905061386382613842565b919050565b5f61387282613856565b9050919050565b61388281613868565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6138b182613888565b9050919050565b6138c1816138a7565b82525050565b5f819050919050565b6138d9816138c7565b82525050565b60a082015f8201516138f35f850182613879565b50602082015161390660208501826138b8565b50604082015161391960408501826138d0565b50606082015161392c60608501826138d0565b50608082015161393f60808501826138d0565b50505050565b5f60a0820190506139585f8301846138df565b92915050565b613967816138c7565b8114613971575f80fd5b50565b5f813590506139828161395e565b92915050565b5f6020828403121561399d5761399c6137af565b5b5f6139aa84828501613974565b91505092915050565b5f819050919050565b5f6139d66139d16139cc84613888565b6139b3565b613888565b9050919050565b5f6139e7826139bc565b9050919050565b5f6139f8826139dd565b9050919050565b613a08816139ee565b82525050565b5f613a18826139dd565b9050919050565b613a2881613a0e565b82525050565b5f613a38826139dd565b9050919050565b613a4881613a2e565b82525050565b5f613a58826139bc565b9050919050565b5f613a6982613a4e565b9050919050565b613a7981613a5f565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f613ab2826139dd565b9050919050565b613ac281613aa8565b82525050565b5f613ad38383613ab9565b60208301905092915050565b5f602082019050919050565b5f613af582613a7f565b613aff8185613a89565b9350613b0a83613a99565b805f5b83811015613b3a578151613b218882613ac8565b9750613b2c83613adf565b925050600181019050613b0d565b5085935050505092915050565b5f67ffffffffffffffff82169050919050565b613b6381613b47565b82525050565b5f61010083015f830151613b7f5f8601826139ff565b506020830151613b926020860182613a1f565b506040830151613ba56040860182613a3f565b506060830151613bb86060860182613a70565b5060808301518482036080860152613bd08282613aeb565b91505060a0830151613be560a0860182613b5a565b5060c0830151613bf860c08601826138d0565b5060e0830151613c0b60e08601826138b8565b508091505092915050565b5f6020820190508181035f830152613c2e8184613b69565b905092915050565b613c3f816138a7565b82525050565b5f602082019050613c585f830184613c36565b92915050565b613c6781613b47565b8114613c71575f80fd5b50565b5f81359050613c8281613c5e565b92915050565b5f60208284031215613c9d57613c9c6137af565b5b5f613caa84828501613c74565b91505092915050565b613cbc816138a7565b8114613cc6575f80fd5b50565b5f81359050613cd781613cb3565b92915050565b5f60208284031215613cf257613cf16137af565b5b5f613cff84828501613cc9565b91505092915050565b613d11816138c7565b82525050565b5f602082019050613d2a5f830184613d08565b92915050565b5f8060408385031215613d4657613d456137af565b5b5f613d5385828601613974565b9250506020613d6485828601613974565b9150509250929050565b613d7781613868565b82525050565b5f60a082019050613d905f830188613d6e565b613d9d6020830187613c36565b613daa6040830186613d08565b613db76060830185613d08565b613dc46080830184613d08565b9695505050505050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112613def57613dee613dce565b5b8235905067ffffffffffffffff811115613e0c57613e0b613dd2565b5b602083019150836001820283011115613e2857613e27613dd6565b5b9250929050565b5f805f805f8060a08789031215613e4957613e486137af565b5b5f613e5689828a01613974565b9650506020613e6789828a01613974565b9550506040613e7889828a01613cc9565b945050606087013567ffffffffffffffff811115613e9957613e986137b3565b5b613ea589828a01613dda565b93509350506080613eb889828a01613cc9565b9150509295509295509295565b5f613ecf826139dd565b9050919050565b613edf81613ec5565b82525050565b5f602082019050613ef85f830184613ed6565b92915050565b5f805f805f60808688031215613f1757613f166137af565b5b5f613f2488828901613974565b9550506020613f3588828901613974565b9450506040613f4688828901613cc9565b935050606086013567ffffffffffffffff811115613f6757613f666137b3565b5b613f7388828901613dda565b92509250509295509295909350565b5f613f8c826139dd565b9050919050565b613f9c81613f82565b82525050565b5f602082019050613fb55f830184613f93565b92915050565b613fc481613b47565b82525050565b5f602082019050613fdd5f830184613fbb565b92915050565b5f805f8060608587031215613ffb57613ffa6137af565b5b5f85013567ffffffffffffffff811115614018576140176137b3565b5b61402487828801613dda565b9450945050602061403787828801613974565b925050604061404887828801613974565b91505092959194509250565b5f6040820190506140675f830185613d08565b6140746020830184613c36565b9392505050565b5f8060208385031215614091576140906137af565b5b5f83013567ffffffffffffffff8111156140ae576140ad6137b3565b5b6140ba85828601613dda565b92509250509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61412a826138c7565b9150614135836138c7565b9250828202614143816138c7565b9150828204841483151761415a576141596140f3565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f614198826138c7565b91506141a3836138c7565b9250826141b3576141b2614161565b5b828204905092915050565b5f6141c8826138c7565b91506141d3836138c7565b92508282039050818111156141eb576141ea6140f3565b5b92915050565b5f82825260208201905092915050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f61422a83856141f1565b9350614237838584614201565b6142408361420f565b840190509392505050565b5f60408201905061425e5f830186613c36565b818103602083015261427181848661421f565b9050949350505050565b5f8115159050919050565b61428f8161427b565b8114614299575f80fd5b50565b5f815190506142aa81614286565b92915050565b5f602082840312156142c5576142c46137af565b5b5f6142d28482850161429c565b91505092915050565b5f6080820190506142ee5f830188613d08565b6142fb6020830187613d08565b6143086040830186613c36565b818103606083015261431b81848661421f565b90509695505050505050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6143618261420f565b810181811067ffffffffffffffff821117156143805761437f61432b565b5b80604052505050565b5f6143926137a6565b905061439e8282614358565b919050565b5f80fd5b5f80fd5b5f67ffffffffffffffff8211156143c5576143c461432b565b5b6143ce8261420f565b9050602081019050919050565b5f6143ed6143e8846143ab565b614389565b905082815260208101848484011115614409576144086143a7565b5b614414848285614201565b509392505050565b5f82601f8301126144305761442f613dce565b5b81356144408482602086016143db565b91505092915050565b5f6040828403121561445e5761445d614327565b5b6144686040614389565b90505f61447784828501613cc9565b5f83015250602082013567ffffffffffffffff81111561449a576144996143a3565b5b6144a68482850161441c565b60208301525092915050565b5f602082840312156144c7576144c66137af565b5b5f82013567ffffffffffffffff8111156144e4576144e36137b3565b5b6144f084828501614449565b91505092915050565b5f815190506145078161395e565b92915050565b5f60208284031215614522576145216137af565b5b5f61452f848285016144f9565b91505092915050565b50565b5f6145465f836141f1565b915061455182614538565b5f82019050919050565b5f60a08201905061456e5f830187613c36565b61457b6020830186613c36565b6145886040830185613d08565b6145956060830184613d08565b81810360808301526145a68161453b565b905095945050505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6145e3826145b1565b6145ed81856145bb565b93506145fd8185602086016145cb565b6146068161420f565b840191505092915050565b5f604083015f8301516146265f8601826138b8565b506020830151848203602086015261463e82826145d9565b9150508091505092915050565b5f6020820190508181035f8301526146638184614611565b905092915050565b5f614675826145b1565b61467f81856141f1565b935061468f8185602086016145cb565b6146988161420f565b840191505092915050565b5f6020820190508181035f8301526146bb818461466b565b905092915050565b5f815190506146d181613cb3565b92915050565b5f80604083850312156146ed576146ec6137af565b5b5f6146fa858286016144f9565b925050602061470b858286016146c3565b9150509250929050565b5f61471f82613888565b9050919050565b5f61473082614715565b9050919050565b61474081614726565b811461474a575f80fd5b50565b5f8151905061475b81614737565b92915050565b5f61477361476e846143ab565b614389565b90508281526020810184848401111561478f5761478e6143a7565b5b61479a8482856145cb565b509392505050565b5f82601f8301126147b6576147b5613dce565b5b81516147c6848260208601614761565b91505092915050565b5f606082840312156147e4576147e3614327565b5b6147ee6060614389565b90505f6147fd8482850161429c565b5f830152506020614810848285016146c3565b602083015250604082015167ffffffffffffffff811115614834576148336143a3565b5b614840848285016147a2565b60408301525092915050565b5f67ffffffffffffffff8211156148665761486561432b565b5b602082029050602081019050919050565b5f6148896148848461484c565b614389565b905080838252602082019050602084028301858111156148ac576148ab613dd6565b5b835b818110156148f357805167ffffffffffffffff8111156148d1576148d0613dce565b5b8086016148de89826147cf565b855260208501945050506020810190506148ae565b5050509392505050565b5f82601f83011261491157614910613dce565b5b8151614921848260208601614877565b91505092915050565b5f8151905061493881613c5e565b92915050565b5f610100828403121561495457614953614327565b5b61495f610100614389565b90505f61496e8482850161474d565b5f83015250602082015167ffffffffffffffff811115614991576149906143a3565b5b61499d848285016147cf565b602083015250604082015167ffffffffffffffff8111156149c1576149c06143a3565b5b6149cd848285016147cf565b604083015250606082015167ffffffffffffffff8111156149f1576149f06143a3565b5b6149fd848285016147cf565b606083015250608082015167ffffffffffffffff811115614a2157614a206143a3565b5b614a2d848285016148fd565b60808301525060a0614a418482850161492a565b60a08301525060c0614a55848285016144f9565b60c08301525060e0614a69848285016146c3565b60e08301525092915050565b5f60208284031215614a8a57614a896137af565b5b5f82015167ffffffffffffffff811115614aa757614aa66137b3565b5b614ab38482850161493e565b91505092915050565b5f614ac682613b47565b9150614ad183613b47565b9250828201905067ffffffffffffffff811115614af157614af06140f3565b5b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b614b2b81614af7565b82525050565b5f602082019050614b445f830184614b22565b92915050565b5f604082019050614b5d5f830185614b22565b614b6a6020830184613c36565b9392505050565b5f608082019050614b845f830187613d08565b614b916020830186613c36565b614b9e6040830185613c36565b614bab6060830184613c36565b95945050505050565b5f819050919050565b614bce614bc9826138c7565b614bb4565b82525050565b5f614bdf8285614bbd565b602082019150614bef8284614bbd565b6020820191508190509392505050565b5f604082019050614c125f830185613c36565b614c1f6020830184613d08565b9392505050565b5f60208284031215614c3b57614c3a6137af565b5b5f82015167ffffffffffffffff811115614c5857614c576137b3565b5b614c64848285016147a2565b91505092915050565b60038110614c79575f80fd5b50565b5f81519050614c8a81614c6d565b92915050565b5f60808284031215614ca557614ca4614327565b5b614caf6080614389565b90505f614cbe84828501614c7c565b5f830152506020614cd1848285016146c3565b6020830152506040614ce5848285016146c3565b604083015250606082015167ffffffffffffffff811115614d0957614d086143a3565b5b614d15848285016147a2565b60608301525092915050565b5f60208284031215614d3657614d356137af565b5b5f82015167ffffffffffffffff811115614d5357614d526137b3565b5b614d5f84828501614c90565b91505092915050565b5f60208284031215614d7d57614d7c614327565b5b614d876020614389565b90505f614d96848285016144f9565b5f8301525092915050565b5f60208284031215614db657614db56137af565b5b5f614dc384828501614d68565b91505092915050565b602082015f820151614de05f8501826138d0565b50505050565b5f602082019050614df95f830184614dcc565b92915050565b5f608083015f830151614e145f860182613879565b506020830151614e2760208601826138b8565b506040830151614e3a60408601826138b8565b5060608301518482036060860152614e5282826145d9565b9150508091505092915050565b5f6020820190508181035f830152614e778184614dff565b905092915050565b5f60608284031215614e9457614e93614327565b5b614e9e6060614389565b90505f614ead848285016144f9565b5f830152506020614ec0848285016144f9565b602083015250604082015167ffffffffffffffff811115614ee457614ee36143a3565b5b614ef0848285016147a2565b60408301525092915050565b5f60208284031215614f1157614f106137af565b5b5f82015167ffffffffffffffff811115614f2e57614f2d6137b3565b5b614f3a84828501614e7f565b91505092915050565b5f606083015f830151614f585f8601826138d0565b506020830151614f6b60208601826138d0565b5060408301518482036040860152614f8382826145d9565b9150508091505092915050565b5f6020820190508181035f830152614fa88184614f43565b905092915050565b5f8060408385031215614fc657614fc56137af565b5b5f614fd3858286016144f9565b925050602083015167ffffffffffffffff811115614ff457614ff36137b3565b5b615000858286016147a2565b915050925092905056fea2646970667358221220aa80f38bd26585c4ae26c678513ad57bc3d32203b684fad61d32034115fe0e4264736f6c634300081a0033";function V(t){const e=t.state.current,f=t.state.connections.get(e),b=f==null?void 0:f.accounts,a=b==null?void 0:b[0],c=t.chains.find(s=>s.id===(f==null?void 0:f.chainId)),d=t.state.status;switch(d){case"connected":return{address:a,addresses:b,chain:c,chainId:f==null?void 0:f.chainId,connector:f==null?void 0:f.connector,isConnected:!0,isConnecting:!1,isDisconnected:!1,isReconnecting:!1,status:d};case"reconnecting":return{address:a,addresses:b,chain:c,chainId:f==null?void 0:f.chainId,connector:f==null?void 0:f.connector,isConnected:!!a,isConnecting:!1,isDisconnected:!1,isReconnecting:!0,status:d};case"connecting":return{address:a,addresses:b,chain:c,chainId:f==null?void 0:f.chainId,connector:f==null?void 0:f.connector,isConnected:!1,isConnecting:!0,isDisconnected:!1,isReconnecting:!1,status:d};case"disconnected":return{address:void 0,addresses:void 0,chain:void 0,chainId:void 0,connector:void 0,isConnected:!1,isConnecting:!1,isDisconnected:!0,isReconnecting:!1,status:d}}}function tf(t){return t.state.chainId}function D(t,e,f){const b=t[e.name];if(typeof b=="function")return b;const a=t[f];return typeof a=="function"?a:c=>e(t,c)}const cf="2.13.8",df=()=>`@wagmi/core@${cf}`;var F=function(t,e,f,b){if(f==="a"&&!b)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!b:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return f==="m"?b:f==="a"?b.call(t):b?b.value:e.get(t)},P,z;class v extends Error{get docsBaseUrl(){return"https://wagmi.sh/core"}get version(){return df()}constructor(e,f={}){var c;super(),P.add(this),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"WagmiCoreError"});const b=f.cause instanceof v?f.cause.details:(c=f.cause)!=null&&c.message?f.cause.message:f.details,a=f.cause instanceof v&&f.cause.docsPath||f.docsPath;this.message=[e||"An error occurred.","",...f.metaMessages?[...f.metaMessages,""]:[],...a?[`Docs: ${this.docsBaseUrl}${a}.html${f.docsSlug?`#${f.docsSlug}`:""}`]:[],...b?[`Details: ${b}`]:[],`Version: ${this.version}`].join(`
2
- `),f.cause&&(this.cause=f.cause),this.details=b,this.docsPath=a,this.metaMessages=f.metaMessages,this.shortMessage=e}walk(e){return F(this,P,"m",z).call(this,this,e)}}P=new WeakSet,z=function t(e,f){return f!=null&&f(e)?e:e.cause?F(this,P,"m",t).call(this,e.cause,f):e};class nf extends v{constructor(){super("Connector not connected."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ConnectorNotConnectedError"})}}class sf extends v{constructor({address:e,connector:f}){super(`Account "${e}" not found for connector "${f.name}".`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ConnectorAccountNotFoundError"})}}class of extends v{constructor({connectionChainId:e,connectorChainId:f}){super(`The current chain of the connector (id: ${f}) does not match the connection's chain (id: ${e}).`,{metaMessages:[`Current Chain ID: ${f}`,`Expected Chain ID: ${e}`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ConnectorChainMismatchError"})}}class rf extends v{constructor({connector:e}){super(`Connector "${e.name}" unavailable while reconnecting.`,{details:["During the reconnection step, the only connector methods guaranteed to be available are: `id`, `name`, `type`, `uuid`.","All other methods are not guaranteed to be available until reconnection completes and connectors are fully restored.","This error commonly occurs for connectors that asynchronously inject after reconnection has already started."].join(" ")}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ConnectorUnavailableReconnectingError"})}}async function N(t,e={}){let f;if(e.connector){const{connector:n}=e;if(t.state.status==="reconnecting"&&!n.getAccounts&&!n.getChainId)throw new rf({connector:n});const[w,C]=await Promise.all([n.getAccounts(),n.getChainId()]);f={accounts:w,chainId:C,connector:n}}else f=t.state.connections.get(t.state.current);if(!f)throw new nf;const b=e.chainId??f.chainId,a=await f.connector.getChainId();if(a!==f.chainId)throw new of({connectionChainId:f.chainId,connectorChainId:a});const c=f.connector;if(c.getClient)return c.getClient({chainId:b});const d=S.parseAccount(e.account??f.accounts[0]);if(d.address=S.getAddress(d.address),e.account&&!f.accounts.some(n=>n.toLowerCase()===d.address.toLowerCase()))throw new sf({address:d.address,connector:c});const s=t.chains.find(n=>n.id===b),o=await f.connector.getProvider({chainId:b});return i.createClient({account:d,chain:s,name:"Connector Client",transport:n=>i.custom(o)({...n,retryCount:0})})}async function uf(t,e){const{abi:f,chainId:b,connector:a,...c}=e;let d;e.account?d=e.account:d=(await N(t,{chainId:b,connector:a})).account;const s=t.getClient({chainId:b}),o=D(s,O.simulateContract,"simulateContract"),{result:n,request:w}=await o({...c,abi:f,account:d});return{chainId:s.chain.id,result:n,request:{__mode:"prepared",...w,chainId:b}}}async function L(t,e){const{account:f,chainId:b,connector:a,__mode:c,...d}=e;let s;typeof f=="object"&&f.type==="local"?s=t.getClient({chainId:b}):s=await N(t,{account:f,chainId:b,connector:a});const{connector:o}=V(t);let n;if(c==="prepared"||o!=null&&o.supportsSimulation)n=d;else{const{request:r}=await uf(t,{...d,account:f,chainId:b});n=r}return await D(s,O.writeContract,"writeContract")({...n,...f?{account:f}:{},chain:b?{id:b}:null})}function lf(t){return t.address!==void 0&&typeof t.address=="object"?(e,f)=>{var d;const b=tf(e),a=V(e);let c;return f.chainId?c=f.chainId:f.account&&f.account===a.address||f.account===void 0?c=a.chainId:c=b,L(e,{...f,...t.functionName?{functionName:t.functionName}:{},address:c?(d=t.address)==null?void 0:d[c]:void 0,abi:t.abi})}:(e,f)=>L(e,{...f,...t.address?{address:t.address}:{},...t.functionName?{functionName:t.functionName}:{},abi:t.abi})}const hf=i.parseEther("0.000075"),E={31337:void 0,...j.BoostCore},gf=E[11155111]||i.zeroAddress;function wf(t){return t.address}function Cf(t){return t.registryAddress&&t.protocolFeeReceiver}const m=class m extends Q.Deployable{get addresses(){return this.constructor.addresses}constructor({config:e,account:f,...b}){if(wf(b)&&b.address)super({account:f,config:e},b.address);else if(Cf(b))super({account:f,config:e},[b.registryAddress,b.protocolFeeReceiver]);else{const{address:a}=g.assertValidAddressByChainId(e,E);super({account:f,config:e},a)}this.abi=u.A}async createBoost(e,f){var I;const[b,a]=this.validateDeploymentConfig(e,f),c=((I=f==null?void 0:f.chain)==null?void 0:I.id)||(f==null?void 0:f.chainId),{chainId:d,address:s}=g.assertValidAddressByChainId(a.config,this.addresses,c),o=lf({abi:u.A,functionName:"createBoost",address:s}),n=await this.prepareCreateBoostPayload(s,d,b,a),w=await o(a.config,{...this.optionallyAttachAccount(a.account),...f,chainId:d,args:[B.prepareBoostPayload(n)]}),C=await y.waitForTransactionReceipt(a.config,{hash:w}),r=i.parseEventLogs({abi:u.A,eventName:"BoostCreated",logs:C.logs}).at(0);let l=0n;if(!r)throw new A.BoostCoreNoIdentifierEmitted;l=r==null?void 0:r.args.boostId;const h=await this.readBoost(l);return new B.Boost({id:l,budget:b.budget.at(h.budget),action:b.action.at(h.action),validator:b.validator.at(h.validator),allowList:b.allowList.at(h.allowList),incentives:b.incentives.map((T,M)=>T.at(h.incentives.at(M))),protocolFee:h.protocolFee,maxParticipants:h.maxParticipants,owner:h.owner})}async simulateCreateBoost(e,f){var n;const[b,a]=this.validateDeploymentConfig(e,f),c=((n=f==null?void 0:f.chain)==null?void 0:n.id)||(f==null?void 0:f.chainId),{chainId:d,address:s}=g.assertValidAddressByChainId(a.config,this.addresses,c),o=await this.prepareCreateBoostPayload(s,d,b,a);return await u.hb(this._config,{...this.optionallyAttachAccount(),...f,address:s,chainId:d,args:[B.prepareBoostPayload(o)]})}async prepareCreateBoostPayload(e,f,b,a){var C;if(!b.owner&&(b.owner=((C=this._account)==null?void 0:C.address)||y.getAccount(a.config).address||i.zeroAddress,b.owner===i.zeroAddress))throw new A.DeployableUnknownOwnerProvidedError;if(!b.validator){const l=y.getChains(a.config).filter(I=>!!this.addresses[I.id]&&I.id===f).at(0);if(!l)throw new A.InvalidProtocolChainIdError(f,Object.keys(this.addresses).map(Number));const h=l.testnet||l.id===31337;b.validator=this.SignerValidator({signers:[h?_.BoostValidatorEOA.TESTNET:_.BoostValidatorEOA.MAINNET],validatorCaller:e})}let c=i.zeroAddress;if(b.budget.address){if(c=b.budget.address,!await b.budget.isAuthorized(e))throw new A.BudgetMustAuthorizeBoostCore(e)}else throw new A.MustInitializeBudgetError;let d={instance:i.zeroAddress,isBase:!0,parameters:i.zeroHash};if(b.action.address){const r=b.action.isBase;d={isBase:r,instance:b.action.address,parameters:r&&b.action.buildParameters(void 0,a).args.at(0)||i.zeroHash}}else d.parameters=b.action.buildParameters(void 0,a).args.at(0)||i.zeroHash,d.instance=g.assertValidAddressByChainId(a.config,b.action.bases,f).address;let s={instance:i.zeroAddress,isBase:!0,parameters:i.zeroHash};if(b.validator.address){const r=b.validator.isBase;s={isBase:r,instance:b.validator.address,parameters:r&&b.validator.buildParameters(void 0,a).args.at(0)||i.zeroHash}}else s.parameters=b.validator.buildParameters(void 0,a).args.at(0)||i.zeroHash,s.instance=g.assertValidAddressByChainId(a.config,b.validator.bases,f).address;let o={instance:i.zeroAddress,isBase:!0,parameters:i.zeroHash};if(b.allowList||(b.allowList=this.OpenAllowList()),b.allowList.address){const r=b.allowList.isBase;o={isBase:r,instance:b.allowList.address,parameters:i.zeroHash}}else o.parameters=b.allowList.buildParameters(void 0,a).args.at(0)||i.zeroHash,o.instance=g.assertValidAddressByChainId(a.config,b.allowList.bases,f).address;const n=b.incentives.map(()=>({instance:i.zeroAddress,isBase:!0,parameters:i.zeroHash}));for(let r=0;r<b.incentives.length;r++){const l=b.incentives.at(r);if(l.address){const h=l.isBase;if(!h)throw new A.IncentiveNotCloneableError(l);n[r]={isBase:h,instance:l.address,parameters:h&&l.buildParameters(void 0,a).args.at(0)||i.zeroHash}}else n[r].parameters=l.buildParameters(void 0,a).args.at(0)||i.zeroHash,n[r].instance=g.assertValidAddressByChainId(a.config,l.bases,f).address}return{budget:c,action:d,validator:s,allowList:o,incentives:n,protocolFee:b.protocolFee||0n,maxParticipants:b.maxParticipants||0n,owner:b.owner}}async claimIncentive(e,f,b,a,c){return await this.awaitResult(this.claimIncentiveRaw(e,f,b,a,c))}async claimIncentiveRaw(e,f,b,a,c){var n;const{request:d,result:s}=await u.Tb(this._config,{...g.assertValidAddressByChainId(this._config,this.addresses,((n=c==null?void 0:c.chain)==null?void 0:n.id)||(c==null?void 0:c.chainId)),args:[e,f,b,a],...this.optionallyAttachAccount(),...c});return{hash:await u.sb(this._config,d),result:s}}async claimIncentiveFor(e,f,b,a,c,d){return await this.awaitResult(this.claimIncentiveForRaw(e,f,b,a,c,d))}async claimIncentiveForRaw(e,f,b,a,c,d){var w;const{request:s,result:o}=await u.Ab(this._config,{...g.assertValidAddressByChainId(this._config,this.addresses,((w=d==null?void 0:d.chain)==null?void 0:w.id)||(d==null?void 0:d.chainId)),args:[e,f,b,a,c],...this.optionallyAttachAccount(),...d});return{hash:await u.rb(this._config,s),result:o}}async readBoost(e,f){var b;try{let a;return typeof e=="string"?a=BigInt(e):a=e,await u.Qm(this._config,{...g.assertValidAddressByChainId(this._config,this.addresses,f==null?void 0:f.chainId),args:[a],...this.optionallyAttachAccount(),...f})}catch(a){throw(b=a==null?void 0:a.message)!=null&&b.includes("bounds")?new A.BoostNotFoundError(String(e)):a}}async getBoost(e,f){let b;typeof e=="string"?b=BigInt(e):b=e;const{protocolFee:a,maxParticipants:c,owner:d,...s}=await this.readBoost(b,f),o={config:this._config,account:this._account},[n,w,C,r,l]=await Promise.all([H.actionFromAddress(o,s.action),k.budgetFromAddress(o,s.budget),_.validatorFromAddress(o,s.validator),q.allowListFromAddress(o,s.allowList),Promise.all(s.incentives.map(h=>Z.incentiveFromAddress(o,h)))]);return new B.Boost({id:b,action:n,budget:w,validator:C,allowList:r,incentives:l,protocolFee:a,maxParticipants:c,owner:d})}async getBoostCount(e){return await u.Wm(this._config,{...g.assertValidAddressByChainId(this._config,this.addresses,e==null?void 0:e.chainId),args:[],...this.optionallyAttachAccount(),...e})}async isAuthorized(e,f){const b=await this.createBoostAuth(f);return u.ph(this._config,{address:b,args:[e],...this.optionallyAttachAccount(),...f})}async createBoostAuth(e){return await u.$m(this._config,{...g.assertValidAddressByChainId(this._config,this.addresses,e==null?void 0:e.chainId),args:[],...this.optionallyAttachAccount(),...e})}async setCreateBoostAuth(e,f){return await this.awaitResult(this.setCreateBoostAuthRaw(e.assertValidAddress(),{...f}))}async setCreateBoostAuthRaw(e,f){const{request:b,result:a}=await u.Rb(this._config,{...g.assertValidAddressByChainId(this._config,this.addresses,f==null?void 0:f.chainId),args:[e],...this.optionallyAttachAccount(),...f});return{hash:await u.db(this._config,b),result:a}}async protocolFee(e){return await u.eb(this._config,{...g.assertValidAddressByChainId(this._config,this.addresses,e==null?void 0:e.chainId),args:[],...this.optionallyAttachAccount(),...e})}async protocolFeeReceiver(e){return await u.tb(this._config,{...g.assertValidAddressByChainId(this._config,this.addresses,e==null?void 0:e.chainId),args:[],...this.optionallyAttachAccount(),...e})}async setProcolFeeReceiver(e,f){return await this.awaitResult(this.setProcolFeeReceiverRaw(e,{...f}))}async setProcolFeeReceiverRaw(e,f){const{request:b,result:a}=await u.Cb(this._config,{...g.assertValidAddressByChainId(this._config,this.addresses,f==null?void 0:f.chainId),args:[e],...this.optionallyAttachAccount(),...f});return{hash:await u.mb(this._config,b),result:a}}async getClaimFromTransaction(e){var a;const f=await y.getTransactionReceipt(this._config,e);return(a=i.parseEventLogs({abi:u.A,eventName:"BoostClaimed",logs:f.logs}).at(0))==null?void 0:a.args}PassthroughAuth(e){return new U.PassthroughAuth({config:this._config,account:this._account},e)}EventAction(e,f){return new $.EventAction({config:this._config,account:this._account},e,f)}OpenAllowList(e){return new q.OpenAllowList({config:this._config,account:this._account},void 0,e)}SimpleAllowList(e,f){return new x.SimpleAllowList({config:this._config,account:this._account},e,f)}SimpleDenyList(e,f){return new G.SimpleDenyList({config:this._config,account:this._account},e,f)}ManagedBudget(e){return new W.ManagedBudget({config:this._config,account:this._account},e)}AllowListIncentive(e){return new J.AllowListIncentive({config:this._config,account:this._account},e)}CGDAIncentive(e){return new K.CGDAIncentive({config:this._config,account:this._account},e)}ERC20Incentive(e){return new X.ERC20Incentive({config:this._config,account:this._account},e)}PointsIncentive(e){return new p.PointsIncentive({config:this._config,account:this._account},e)}SignerValidator(e,f){return new ef.SignerValidator({config:this._config,account:this._account},e,f)}LimitedSignerValidator(e,f){return new ff.LimitedSignerValidator({config:this._config,account:this._account},e,f)}ERC20VariableCriteriaIncentive(e,f){return new Y.ERC20VariableCriteriaIncentive({config:this._config,account:this._account},e,f)}ERC20VariableIncentive(e,f){return new bf.ERC20VariableIncentive({config:this._config,account:this._account},e,f)}buildParameters(e,f){const[b,a]=this.validateDeploymentConfig(e,f);return{abi:u.A,bytecode:af,args:b,...this.optionallyAttachAccount(a.account)}}};m.addresses=E;let R=m;exports.boostCoreAbi=u.A;exports.BOOST_CORE_ADDRESS=gf;exports.BOOST_CORE_ADDRESSES=E;exports.BOOST_CORE_CLAIM_FEE=hf;exports.BoostCore=R;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("./generated-CtPS8IvR.cjs"),y=require("@wagmi/core"),i=require("viem"),j=require("./deployments-DAmmY7Gs.cjs"),H=require("./Actions/Action.cjs"),$=require("./Actions/EventAction.cjs"),q=require("./AllowLists/AllowList.cjs"),x=require("./AllowLists/SimpleAllowList.cjs"),G=require("./SimpleDenyList-DEOJMCvF.cjs"),U=require("./Auth/PassthroughAuth.cjs"),B=require("./Boost.cjs"),k=require("./Budgets/Budget.cjs"),W=require("./Budgets/ManagedBudget.cjs"),J=require("./Deployable/Deployable.cjs"),K=require("./Incentives/AllowListIncentive.cjs"),Q=require("./Incentives/CGDAIncentive.cjs"),X=require("./Incentives/ERC20Incentive.cjs"),Y=require("./Incentives/ERC20VariableCriteriaIncentive.cjs"),Z=require("./Incentives/Incentive.cjs"),p=require("./Incentives/PointsIncentive.cjs"),ff=require("./Validators/LimitedSignerValidator.cjs"),ef=require("./Validators/SignerValidator.cjs"),_=require("./Validators/Validator.cjs"),A=require("./errors.cjs"),g=require("./utils.cjs"),bf=require("./Incentives/ERC20VariableIncentive.cjs"),O=require("viem/actions"),S=require("viem/utils"),af="0x60806040526103e8600360146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555034801561003a575f80fd5b50604051615344380380615344833981810160405281019061005c919061026b565b61006b336100f260201b60201c565b8160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506102a9565b6101006101ce60201b60201c565b15610178577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561013a57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3506101cb565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f90565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101ff826101d6565b9050919050565b5f610210826101f5565b9050919050565b61022081610206565b811461022a575f80fd5b50565b5f8151905061023b81610217565b92915050565b61024a816101f5565b8114610254575f80fd5b50565b5f8151905061026581610241565b92915050565b5f8060408385031215610281576102806101d2565b5b5f61028e8582860161022d565b925050602061029f85828601610257565b9150509250929050565b61508e806102b65f395ff3fe60806040526004361061014a575f3560e01c80637b103999116100b5578063dd98558c1161006e578063dd98558c146103fa578063e21ff73114610437578063eccc19a614610473578063f04e283e1461049b578063f2fde38b146104b7578063fee81cf4146104d35761014a565b80637b1039991461030c5780638da5cb5b146103365780638fe4f52314610360578063a92647dc1461037c578063b0e21e8a146103a6578063d73792a9146103d05761014a565b806354d1f13d1161010757806354d1f13d1461024a5780635edb9eb0146102545780635f32c23e1461027e57806360777795146102a6578063715018a6146102e6578063730f9c57146102f05761014a565b80630250e72b1461014e57806313c8e2de1461018a57806325692962146101c657806339a51be5146101d057806343bc42d3146101fa57806346877b1a14610222575b5f80fd5b348015610159575f80fd5b50610174600480360381019061016f9190613805565b61050f565b6040516101819190613960565b60405180910390f35b348015610195575f80fd5b506101b060048036038101906101ab91906139a3565b6105e6565b6040516101bd9190613c31565b60405180910390f35b6101ce61088e565b005b3480156101db575f80fd5b506101e46108df565b6040516101f19190613c60565b60405180910390f35b348015610205575f80fd5b50610220600480360381019061021b9190613ca3565b610904565b005b34801561022d575f80fd5b5061024860048036038101906102439190613cf8565b610938565b005b610252610983565b005b34801561025f575f80fd5b506102686109bc565b6040516102759190613d32565b60405180910390f35b348015610289575f80fd5b506102a4600480360381019061029f9190613d4b565b6109c7565b005b3480156102b1575f80fd5b506102cc60048036038101906102c79190613805565b610b53565b6040516102dd959493929190613d98565b60405180910390f35b6102ee610bb0565b005b61030a60048036038101906103059190613e4a565b610bc3565b005b348015610317575f80fd5b50610320611104565b60405161032d9190613f00565b60405180910390f35b348015610341575f80fd5b5061034a611129565b6040516103579190613c60565b60405180910390f35b61037a60048036038101906103759190613f19565b611151565b005b348015610387575f80fd5b50610390611166565b60405161039d9190613fbd565b60405180910390f35b3480156103b1575f80fd5b506103ba61118b565b6040516103c79190613fe5565b60405180910390f35b3480156103db575f80fd5b506103e46111a5565b6040516103f19190613fe5565b60405180910390f35b348015610405575f80fd5b50610420600480360381019061041b9190613ffe565b6111ab565b60405161042e92919061406f565b60405180910390f35b348015610442575f80fd5b5061045d60048036038101906104589190614096565b6118af565b60405161046a9190613c31565b60405180910390f35b34801561047e575f80fd5b5061049960048036038101906104949190613cf8565b6122a2565b005b6104b560048036038101906104b09190613cf8565b6122ed565b005b6104d160048036038101906104cc9190613cf8565b61232b565b005b3480156104de575f80fd5b506104f960048036038101906104f49190613cf8565b612354565b6040516105069190613d32565b60405180910390f35b610517613617565b60045f8381526020019081526020015f206040518060a00160405290815f82015f9054906101000a900460ff16600281111561055657610555613830565b5b600281111561056857610567613830565b5b81526020015f820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201548152602001600282015481526020016003820154815250509050919050565b6105ee613669565b5f8281548110610601576106006140e1565b5b905f5260205f209060080201604051806101000160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600482018054806020026020016040519081016040528092919081815260200182805480156107ee57602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116107a5575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050919050565b5f61089761236d565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61090c612377565b80600360146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050565b610940612377565b8060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f8080549050905090565b3068929eee149b4bd2126854036109e55763ab143c065f526004601cfd5b3068929eee149b4bd21268555f6109fc83836123ae565b90505f60045f8381526020019081526020015f2090505f816002015461271067ffffffffffffffff168360010154610a34919061413b565b610a3e91906141a9565b90505f610a4a836123e0565b905081811115610b3f575f8282610a6191906141d9565b90505f61271067ffffffffffffffff16856002015483610a81919061413b565b610a8b91906141a9565b9050610a9785826125e6565b80856001015410610ac15780856001015f828254610ab591906141d9565b92505081905550610acb565b5f85600101819055505b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1687897f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b1784604051610b349190613d32565b60405180910390a450505b505050503868929eee149b4bd21268555050565b6004602052805f5260405f205f91509050805f015f9054906101000a900460ff1690805f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154905085565b610bb8612377565b610bc15f6127c7565b565b3068929eee149b4bd212685403610be15763ab143c065f526004601cfd5b3068929eee149b4bd21268555f808781548110610c0157610c006140e1565b5b905f5260205f20906008020190505f610c1a88886123ae565b90505f60045f8381526020019081526020015f209050826002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e3f756de8588886040518463ffffffff1660e01b8152600401610c9093929190614266565b602060405180830381865afa158015610cab573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ccf91906142cb565b610d05576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b826001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663703b69008a8a878a8a6040518663ffffffff1660e01b8152600401610d699594939291906142f6565b6020604051808303815f875af1158015610d85573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610da991906142cb565b610ddf576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8073ffffffffffffffffffffffffffffffffffffffff16825f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610e3c575f610e46565b610e45826123e0565b5b9050836004018981548110610e5e57610e5d6140e1565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb1757cf8689896040518463ffffffff1660e01b8152600401610ec293929190614266565b6020604051808303815f875af1158015610ede573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f0291906142cb565b610f47578487876040517f4139d81d000000000000000000000000000000000000000000000000000000008152600401610f3e93929190614266565b60405180910390fd5b5f8073ffffffffffffffffffffffffffffffffffffffff16835f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610fa4575f610fae565b610fad836123e0565b5b90505f818311610fbe575f610fcb565b8183610fca91906141d9565b5b90505f61271067ffffffffffffffff16856002015483610feb919061413b565b610ff591906141a9565b90505f8111156110955761100985826125e6565b80856001015f82825461101c91906141d9565b9250508190555060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168c8e7f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b178460405161108c9190613d32565b60405180910390a45b8773ffffffffffffffffffffffffffffffffffffffff168c8e7f0f29bbf4ce25d2346bbeb8a898e24e5d6d7d1d19bb895e71faecac833b2595478e8e8e6040516110e193929190614266565b60405180910390a4505050505050503868929eee149b4bd2126855505050505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b61115f858585858533610bc3565b5050505050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360149054906101000a900467ffffffffffffffff1681565b61271081565b5f803068929eee149b4bd2126854036111cb5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f8085815481106111eb576111ea6140e1565b5b905f5260205f209060080201604051806101000160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600482018054806020026020016040519081016040528092919081815260200182805480156113d857602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161138f575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050806060015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114dc576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6114e786866123ae565b90505f60045f8381526020019081526020015f2090505f898981019061150d91906144cd565b90505f81602001518060200190518101906115289190614528565b90505f61271067ffffffffffffffff16846002015483611548919061413b565b61155291906141a9565b90505f81111561176f57600160028111156115705761156f613830565b5b845f015f9054906101000a900460ff16600281111561159257611591613830565b5b14806115d057505f60028111156115ac576115ab613830565b5b845f015f9054906101000a900460ff1660028111156115ce576115cd613830565b5b145b1561162b57611626835f015182865f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661288d9092919063ffffffff16565b6116fd565b60028081111561163e5761163d613830565b5b845f015f9054906101000a900460ff1660028111156116605761165f613830565b5b036116fc57835f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a30855f01518760030154856040518563ffffffff1660e01b81526004016116ce9493929190614576565b5f604051808303815f87803b1580156116e5575f80fd5b505af11580156116f7573d5f803e3d5ffd5b505050505b5b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16898b7f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b17846040516117669190613d32565b60405180910390a45b5f8087608001518b81518110611788576117876140e1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1663474f5a44866040516020016117bc9190614666565b6040516020818303038152906040526040518263ffffffff1660e01b81526004016117e791906146be565b60408051808303815f875af1158015611802573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061182691906146f2565b915091505f820361187257338e8e6040517f9ecd71a900000000000000000000000000000000000000000000000000000000815260040161186993929190614266565b60405180910390fd5b82866001015f82825461188591906141d9565b9250508190555081819950995050505050505050503868929eee149b4bd212685594509492505050565b6118b7613669565b335f73ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141580156119ab575060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe9fbb80826040518263ffffffff1660e01b815260040161196a9190613c60565b602060405180830381865afa158015611985573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119a991906142cb565b155b156119e2576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3068929eee149b4bd212685403611a005763ab143c065f526004601cfd5b3068929eee149b4bd21268555f611a5985858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050506128d6565b806020019051810190611a6c9190614a90565b9050611a7a815f015161296f565b5f8060018160018154018082558091505003905f5260205f20906008020190508160e00151816007015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550815f0151816003015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160a00151600360149054906101000a900467ffffffffffffffff16611b4b9190614ad7565b816005015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508160c001518160060181905550611bb17fe67157950000000000000000000000000000000000000000000000000000000083602001516001612a4a565b815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611c217fe2089f790000000000000000000000000000000000000000000000000000000083606001516001612a4a565b816002015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611c788260800151835f01518460a00151612a6c565b816004019080519060200190611c8f92919061371f565b505f73ffffffffffffffffffffffffffffffffffffffff1682604001516020015173ffffffffffffffffffffffffffffffffffffffff1614611d0057611cfb7f5912b89c0000000000000000000000000000000000000000000000000000000083604001516001612a4a565b611de9565b805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166301ffc9a77f5912b89c000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401611d7b9190614b4c565b602060405180830381865afa158015611d96573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dba91906142cb565b611dc4575f611de8565b805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b5b816001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f73ffffffffffffffffffffffffffffffffffffffff16816001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611edf577f5912b89c000000000000000000000000000000000000000000000000000000005f6040517fe1c44448000000000000000000000000000000000000000000000000000000008152600401611ed6929190614b65565b60405180910390fd5b805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816007015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660015f80549050611f6391906141d9565b7f116812d3ad4507d72f2c428b63246d594ca055a1dc119394285504c23d1f34cd8460040180549050856001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876003015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516120089493929190614b8c565b60405180910390a480604051806101000160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600482018054806020026020016040519081016040528092919081815260200182805480156121f257602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116121a9575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050935050503868929eee149b4bd21268555092915050565b6122aa612377565b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6122f5612377565b63389a75e1600c52805f526020600c20805442111561231b57636f5e88185f526004601cfd5b5f815550612328816127c7565b50565b612333612377565b8060601b61234857637448fbae5f526004601cfd5b612351816127c7565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f6202a300905090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146123ac576382b429005f526004601cfd5b565b5f82826040516020016123c2929190614bef565b60405160208183030381529060405280519060200120905092915050565b5f600160028111156123f5576123f4613830565b5b825f015f9054906101000a900460ff16600281111561241757612416613830565b5b148061245557505f600281111561243157612430613830565b5b825f015f9054906101000a900460ff16600281111561245357612452613830565b5b145b156124fc57815f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016124b69190613c60565b602060405180830381865afa1580156124d1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124f59190614528565b90506125e1565b60028081111561250f5761250e613830565b5b825f015f9054906101000a900460ff16600281111561253157612530613830565b5b036125dd57815f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1662fdd58e3084600301546040518363ffffffff1660e01b8152600401612597929190614c1a565b602060405180830381865afa1580156125b2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125d69190614528565b90506125e1565b5f90505b919050565b600160028111156125fa576125f9613830565b5b825f015f9054906101000a900460ff16600281111561261c5761261b613830565b5b148061265a57505f600281111561263657612635613830565b5b825f015f9054906101000a900460ff16600281111561265857612657613830565b5b145b156126d3576126ce60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682845f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661288d9092919063ffffffff16565b6127c3565b6002808111156126e6576126e5613830565b5b825f015f9054906101000a900460ff16600281111561270857612707613830565b5b036127c257815f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a3060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168560030154856040518563ffffffff1660e01b81526004016127949493929190614576565b5f604051808303815f87803b1580156127ab575f80fd5b505af11580156127bd573d5f803e3d5ffd5b505050505b5b5050565b6127cf612f87565b15612834577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b821781555061288a565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f511417166128cd576390b8ec185f526004601cfd5b5f603452505050565b606081511561296a5760405190506020810160048301805184518501811983525b80861015612950576001860195508551601f1a80612940576001870196508651601f1a5f198652607f811161292e57600181013887395b6001607f82160186019550505061294b565b808553600185019450505b6128f7565b81835260208501840385525f845260208401604052505050505b919050565b6129997fe49cedd70000000000000000000000000000000000000000000000000000000082612f8b565b8073ffffffffffffffffffffffffffffffffffffffff1663fe9fbb80336040518263ffffffff1660e01b81526004016129d29190613c60565b602060405180830381865afa1580156129ed573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a1191906142cb565b612a47576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b5f612a59848460200151612f8b565b612a638383613082565b90509392505050565b6060835167ffffffffffffffff811115612a8957612a88614346565b5b604051908082528060200260200182016040528015612ab75781602001602082028036833780820191505090505b5090505f5b8451811015612f7f57612b0d7fa921670500000000000000000000000000000000000000000000000000000000868381518110612afc57612afb6140e1565b5b602002602001015160200151612f8b565b848181518110612b2057612b1f6140e1565b5b60200260200101515f0151612bac577fa921670500000000000000000000000000000000000000000000000000000000858281518110612b6357612b626140e1565b5b6020026020010151602001516040517fe1c44448000000000000000000000000000000000000000000000000000000008152600401612ba3929190614b65565b60405180910390fd5b612bf17fa921670500000000000000000000000000000000000000000000000000000000868381518110612be357612be26140e1565b5b60200260200101515f612a4a565b828281518110612c0457612c036140e1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f828281518110612c5257612c516140e1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16634e7165a2878481518110612c8857612c876140e1565b5b6020026020010151604001516040518263ffffffff1660e01b8152600401612cb091906146be565b5f60405180830381865afa158015612cca573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190612cf29190614c41565b90505f815114612ed3575f80612d08838761313e565b915091508673ffffffffffffffffffffffffffffffffffffffff1663fa4ca9b1836040518263ffffffff1660e01b8152600401612d4591906146be565b6020604051808303815f875af1158015612d61573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d8591906142cb565b612dbb576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8673ffffffffffffffffffffffffffffffffffffffff1663fa4ca9b1846040518263ffffffff1660e01b8152600401612df491906146be565b6020604051808303815f875af1158015612e10573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e3491906142cb565b612e6a576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f83806020019051810190612e7f9190614d3c565b9050612ecf60015f80549050612e9591906141d9565b868360200151858b67ffffffffffffffff16865f01518f8c81518110612ebe57612ebd6140e1565b5b602002602001015160400151613437565b5050505b828281518110612ee657612ee56140e1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1663439fab91878481518110612f1c57612f1b6140e1565b5b6020026020010151604001516040518263ffffffff1660e01b8152600401612f4491906146be565b5f604051808303815f87803b158015612f5b575f80fd5b505af1158015612f6d573d5f803e3d5ffd5b50505050508080600101915050612abc565b509392505050565b5f90565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16148061303a57508073ffffffffffffffffffffffffffffffffffffffff166301ffc9a7836040518263ffffffff1660e01b8152600401612ff99190614b4c565b602060405180830381865afa158015613014573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061303891906142cb565b155b1561307e5781816040517fe1c44448000000000000000000000000000000000000000000000000000000008152600401613075929190614b65565b60405180910390fd5b5050565b5f825f01516130955782602001516130b9565b6130b8836020015173ffffffffffffffffffffffffffffffffffffffff166135b4565b5b9050825f015180156130c85750815b15613138578073ffffffffffffffffffffffffffffffffffffffff1663439fab9184604001516040518263ffffffff1660e01b815260040161310a91906146be565b5f604051808303815f87803b158015613121575f80fd5b505af1158015613133573d5f803e3d5ffd5b505050505b92915050565b60605f80848060200190518101906131569190614d3c565b90505f600360149054906101000a900467ffffffffffffffff168561317b9190614ad7565b90506001600281111561319157613190613830565b5b825f015160028111156131a7576131a6613830565b5b14806131d957505f60028111156131c1576131c0613830565b5b825f015160028111156131d7576131d6613830565b5b145b156132cd575f82606001518060200190518101906131f79190614dbc565b90505f61271067ffffffffffffffff168367ffffffffffffffff16835f0151613220919061413b565b61322a91906141a9565b90505f60405180602001604052808381525090508060405160200161324f9190614e01565b604051602081830303815290604052856060018190525030856040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050846040516020016132af9190614e7a565b60405160208183030381529060405282965096505050505050613430565b6002808111156132e0576132df613830565b5b825f015160028111156132f6576132f5613830565b5b036133fe575f82606001518060200190518101906133149190614f17565b90505f61271067ffffffffffffffff168367ffffffffffffffff16836020015161333e919061413b565b61334891906141a9565b90505f6040518060600160405280845f0151815260200183815260200184604001518152509050806040516020016133809190614fab565b604051602081830303815290604052856060018190525030856040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050846040516020016133e09190614e7a565b60405160208183030381529060405282965096505050505050613430565b6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9250929050565b5f60028081111561344b5761344a613830565b5b83600281111561345e5761345d613830565b5b0361347d57818060200190518101906134779190614fcb565b50809150505b5f6040518060a0016040528085600281111561349c5761349b613830565b5b81526020018873ffffffffffffffffffffffffffffffffffffffff16815260200187815260200186600360149054906101000a900467ffffffffffffffff1667ffffffffffffffff166134ef9190615025565b81526020018381525090508060045f6135088c8c6123ae565b81526020019081526020015f205f820151815f015f6101000a81548160ff0219169083600281111561353d5761353c613830565b5b02179055506020820151815f0160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600101556060820151816002015560808201518160030155905050505050505050505050565b5f6135bf5f836135c6565b9050919050565b5f6c5af43d3d93803e602a57fd5bf36021528160145273602c3d8160093d39f33d3d3d3d363d3d37363d735f526035600c84f090508061360d5763301164255f526004601cfd5b5f60215292915050565b6040518060a001604052805f600281111561363557613634613830565b5b81526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81526020015f81526020015f81525090565b6040518061010001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff168152602001606081526020015f67ffffffffffffffff1681526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b828054828255905f5260205f20908101928215613795579160200282015b82811115613794578251825f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019061373d565b5b5090506137a291906137a6565b5090565b5b808211156137bd575f815f9055506001016137a7565b5090565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b6137e4816137d2565b81146137ee575f80fd5b50565b5f813590506137ff816137db565b92915050565b5f6020828403121561381a576138196137ca565b5b5f613827848285016137f1565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b6003811061386e5761386d613830565b5b50565b5f81905061387e8261385d565b919050565b5f61388d82613871565b9050919050565b61389d81613883565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6138cc826138a3565b9050919050565b6138dc816138c2565b82525050565b5f819050919050565b6138f4816138e2565b82525050565b60a082015f82015161390e5f850182613894565b50602082015161392160208501826138d3565b50604082015161393460408501826138eb565b50606082015161394760608501826138eb565b50608082015161395a60808501826138eb565b50505050565b5f60a0820190506139735f8301846138fa565b92915050565b613982816138e2565b811461398c575f80fd5b50565b5f8135905061399d81613979565b92915050565b5f602082840312156139b8576139b76137ca565b5b5f6139c58482850161398f565b91505092915050565b5f819050919050565b5f6139f16139ec6139e7846138a3565b6139ce565b6138a3565b9050919050565b5f613a02826139d7565b9050919050565b5f613a13826139f8565b9050919050565b613a2381613a09565b82525050565b5f613a33826139f8565b9050919050565b613a4381613a29565b82525050565b5f613a53826139f8565b9050919050565b613a6381613a49565b82525050565b5f613a73826139d7565b9050919050565b5f613a8482613a69565b9050919050565b613a9481613a7a565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f613acd826139f8565b9050919050565b613add81613ac3565b82525050565b5f613aee8383613ad4565b60208301905092915050565b5f602082019050919050565b5f613b1082613a9a565b613b1a8185613aa4565b9350613b2583613ab4565b805f5b83811015613b55578151613b3c8882613ae3565b9750613b4783613afa565b925050600181019050613b28565b5085935050505092915050565b5f67ffffffffffffffff82169050919050565b613b7e81613b62565b82525050565b5f61010083015f830151613b9a5f860182613a1a565b506020830151613bad6020860182613a3a565b506040830151613bc06040860182613a5a565b506060830151613bd36060860182613a8b565b5060808301518482036080860152613beb8282613b06565b91505060a0830151613c0060a0860182613b75565b5060c0830151613c1360c08601826138eb565b5060e0830151613c2660e08601826138d3565b508091505092915050565b5f6020820190508181035f830152613c498184613b84565b905092915050565b613c5a816138c2565b82525050565b5f602082019050613c735f830184613c51565b92915050565b613c8281613b62565b8114613c8c575f80fd5b50565b5f81359050613c9d81613c79565b92915050565b5f60208284031215613cb857613cb76137ca565b5b5f613cc584828501613c8f565b91505092915050565b613cd7816138c2565b8114613ce1575f80fd5b50565b5f81359050613cf281613cce565b92915050565b5f60208284031215613d0d57613d0c6137ca565b5b5f613d1a84828501613ce4565b91505092915050565b613d2c816138e2565b82525050565b5f602082019050613d455f830184613d23565b92915050565b5f8060408385031215613d6157613d606137ca565b5b5f613d6e8582860161398f565b9250506020613d7f8582860161398f565b9150509250929050565b613d9281613883565b82525050565b5f60a082019050613dab5f830188613d89565b613db86020830187613c51565b613dc56040830186613d23565b613dd26060830185613d23565b613ddf6080830184613d23565b9695505050505050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112613e0a57613e09613de9565b5b8235905067ffffffffffffffff811115613e2757613e26613ded565b5b602083019150836001820283011115613e4357613e42613df1565b5b9250929050565b5f805f805f8060a08789031215613e6457613e636137ca565b5b5f613e7189828a0161398f565b9650506020613e8289828a0161398f565b9550506040613e9389828a01613ce4565b945050606087013567ffffffffffffffff811115613eb457613eb36137ce565b5b613ec089828a01613df5565b93509350506080613ed389828a01613ce4565b9150509295509295509295565b5f613eea826139f8565b9050919050565b613efa81613ee0565b82525050565b5f602082019050613f135f830184613ef1565b92915050565b5f805f805f60808688031215613f3257613f316137ca565b5b5f613f3f8882890161398f565b9550506020613f508882890161398f565b9450506040613f6188828901613ce4565b935050606086013567ffffffffffffffff811115613f8257613f816137ce565b5b613f8e88828901613df5565b92509250509295509295909350565b5f613fa7826139f8565b9050919050565b613fb781613f9d565b82525050565b5f602082019050613fd05f830184613fae565b92915050565b613fdf81613b62565b82525050565b5f602082019050613ff85f830184613fd6565b92915050565b5f805f8060608587031215614016576140156137ca565b5b5f85013567ffffffffffffffff811115614033576140326137ce565b5b61403f87828801613df5565b945094505060206140528782880161398f565b92505060406140638782880161398f565b91505092959194509250565b5f6040820190506140825f830185613d23565b61408f6020830184613c51565b9392505050565b5f80602083850312156140ac576140ab6137ca565b5b5f83013567ffffffffffffffff8111156140c9576140c86137ce565b5b6140d585828601613df5565b92509250509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f614145826138e2565b9150614150836138e2565b925082820261415e816138e2565b915082820484148315176141755761417461410e565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6141b3826138e2565b91506141be836138e2565b9250826141ce576141cd61417c565b5b828204905092915050565b5f6141e3826138e2565b91506141ee836138e2565b92508282039050818111156142065761420561410e565b5b92915050565b5f82825260208201905092915050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f614245838561420c565b935061425283858461421c565b61425b8361422a565b840190509392505050565b5f6040820190506142795f830186613c51565b818103602083015261428c81848661423a565b9050949350505050565b5f8115159050919050565b6142aa81614296565b81146142b4575f80fd5b50565b5f815190506142c5816142a1565b92915050565b5f602082840312156142e0576142df6137ca565b5b5f6142ed848285016142b7565b91505092915050565b5f6080820190506143095f830188613d23565b6143166020830187613d23565b6143236040830186613c51565b818103606083015261433681848661423a565b90509695505050505050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61437c8261422a565b810181811067ffffffffffffffff8211171561439b5761439a614346565b5b80604052505050565b5f6143ad6137c1565b90506143b98282614373565b919050565b5f80fd5b5f80fd5b5f67ffffffffffffffff8211156143e0576143df614346565b5b6143e98261422a565b9050602081019050919050565b5f614408614403846143c6565b6143a4565b905082815260208101848484011115614424576144236143c2565b5b61442f84828561421c565b509392505050565b5f82601f83011261444b5761444a613de9565b5b813561445b8482602086016143f6565b91505092915050565b5f6040828403121561447957614478614342565b5b61448360406143a4565b90505f61449284828501613ce4565b5f83015250602082013567ffffffffffffffff8111156144b5576144b46143be565b5b6144c184828501614437565b60208301525092915050565b5f602082840312156144e2576144e16137ca565b5b5f82013567ffffffffffffffff8111156144ff576144fe6137ce565b5b61450b84828501614464565b91505092915050565b5f8151905061452281613979565b92915050565b5f6020828403121561453d5761453c6137ca565b5b5f61454a84828501614514565b91505092915050565b50565b5f6145615f8361420c565b915061456c82614553565b5f82019050919050565b5f60a0820190506145895f830187613c51565b6145966020830186613c51565b6145a36040830185613d23565b6145b06060830184613d23565b81810360808301526145c181614556565b905095945050505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6145fe826145cc565b61460881856145d6565b93506146188185602086016145e6565b6146218161422a565b840191505092915050565b5f604083015f8301516146415f8601826138d3565b506020830151848203602086015261465982826145f4565b9150508091505092915050565b5f6020820190508181035f83015261467e818461462c565b905092915050565b5f614690826145cc565b61469a818561420c565b93506146aa8185602086016145e6565b6146b38161422a565b840191505092915050565b5f6020820190508181035f8301526146d68184614686565b905092915050565b5f815190506146ec81613cce565b92915050565b5f8060408385031215614708576147076137ca565b5b5f61471585828601614514565b9250506020614726858286016146de565b9150509250929050565b5f61473a826138a3565b9050919050565b5f61474b82614730565b9050919050565b61475b81614741565b8114614765575f80fd5b50565b5f8151905061477681614752565b92915050565b5f61478e614789846143c6565b6143a4565b9050828152602081018484840111156147aa576147a96143c2565b5b6147b58482856145e6565b509392505050565b5f82601f8301126147d1576147d0613de9565b5b81516147e184826020860161477c565b91505092915050565b5f606082840312156147ff576147fe614342565b5b61480960606143a4565b90505f614818848285016142b7565b5f83015250602061482b848285016146de565b602083015250604082015167ffffffffffffffff81111561484f5761484e6143be565b5b61485b848285016147bd565b60408301525092915050565b5f67ffffffffffffffff82111561488157614880614346565b5b602082029050602081019050919050565b5f6148a461489f84614867565b6143a4565b905080838252602082019050602084028301858111156148c7576148c6613df1565b5b835b8181101561490e57805167ffffffffffffffff8111156148ec576148eb613de9565b5b8086016148f989826147ea565b855260208501945050506020810190506148c9565b5050509392505050565b5f82601f83011261492c5761492b613de9565b5b815161493c848260208601614892565b91505092915050565b5f8151905061495381613c79565b92915050565b5f610100828403121561496f5761496e614342565b5b61497a6101006143a4565b90505f61498984828501614768565b5f83015250602082015167ffffffffffffffff8111156149ac576149ab6143be565b5b6149b8848285016147ea565b602083015250604082015167ffffffffffffffff8111156149dc576149db6143be565b5b6149e8848285016147ea565b604083015250606082015167ffffffffffffffff811115614a0c57614a0b6143be565b5b614a18848285016147ea565b606083015250608082015167ffffffffffffffff811115614a3c57614a3b6143be565b5b614a4884828501614918565b60808301525060a0614a5c84828501614945565b60a08301525060c0614a7084828501614514565b60c08301525060e0614a84848285016146de565b60e08301525092915050565b5f60208284031215614aa557614aa46137ca565b5b5f82015167ffffffffffffffff811115614ac257614ac16137ce565b5b614ace84828501614959565b91505092915050565b5f614ae182613b62565b9150614aec83613b62565b9250828201905067ffffffffffffffff811115614b0c57614b0b61410e565b5b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b614b4681614b12565b82525050565b5f602082019050614b5f5f830184614b3d565b92915050565b5f604082019050614b785f830185614b3d565b614b856020830184613c51565b9392505050565b5f608082019050614b9f5f830187613d23565b614bac6020830186613c51565b614bb96040830185613c51565b614bc66060830184613c51565b95945050505050565b5f819050919050565b614be9614be4826138e2565b614bcf565b82525050565b5f614bfa8285614bd8565b602082019150614c0a8284614bd8565b6020820191508190509392505050565b5f604082019050614c2d5f830185613c51565b614c3a6020830184613d23565b9392505050565b5f60208284031215614c5657614c556137ca565b5b5f82015167ffffffffffffffff811115614c7357614c726137ce565b5b614c7f848285016147bd565b91505092915050565b60038110614c94575f80fd5b50565b5f81519050614ca581614c88565b92915050565b5f60808284031215614cc057614cbf614342565b5b614cca60806143a4565b90505f614cd984828501614c97565b5f830152506020614cec848285016146de565b6020830152506040614d00848285016146de565b604083015250606082015167ffffffffffffffff811115614d2457614d236143be565b5b614d30848285016147bd565b60608301525092915050565b5f60208284031215614d5157614d506137ca565b5b5f82015167ffffffffffffffff811115614d6e57614d6d6137ce565b5b614d7a84828501614cab565b91505092915050565b5f60208284031215614d9857614d97614342565b5b614da260206143a4565b90505f614db184828501614514565b5f8301525092915050565b5f60208284031215614dd157614dd06137ca565b5b5f614dde84828501614d83565b91505092915050565b602082015f820151614dfb5f8501826138eb565b50505050565b5f602082019050614e145f830184614de7565b92915050565b5f608083015f830151614e2f5f860182613894565b506020830151614e4260208601826138d3565b506040830151614e5560408601826138d3565b5060608301518482036060860152614e6d82826145f4565b9150508091505092915050565b5f6020820190508181035f830152614e928184614e1a565b905092915050565b5f60608284031215614eaf57614eae614342565b5b614eb960606143a4565b90505f614ec884828501614514565b5f830152506020614edb84828501614514565b602083015250604082015167ffffffffffffffff811115614eff57614efe6143be565b5b614f0b848285016147bd565b60408301525092915050565b5f60208284031215614f2c57614f2b6137ca565b5b5f82015167ffffffffffffffff811115614f4957614f486137ce565b5b614f5584828501614e9a565b91505092915050565b5f606083015f830151614f735f8601826138eb565b506020830151614f8660208601826138eb565b5060408301518482036040860152614f9e82826145f4565b9150508091505092915050565b5f6020820190508181035f830152614fc38184614f5e565b905092915050565b5f8060408385031215614fe157614fe06137ca565b5b5f614fee85828601614514565b925050602083015167ffffffffffffffff81111561500f5761500e6137ce565b5b61501b858286016147bd565b9150509250929050565b5f61502f826138e2565b915061503a836138e2565b92508282019050808211156150525761505161410e565b5b9291505056fea264697066735822122046f3b28faee70d029632a12fd28b58083b5f9100b51ee15dafd958365b827c9464736f6c634300081a0033";function V(t){const e=t.state.current,f=t.state.connections.get(e),b=f==null?void 0:f.accounts,a=b==null?void 0:b[0],c=t.chains.find(s=>s.id===(f==null?void 0:f.chainId)),d=t.state.status;switch(d){case"connected":return{address:a,addresses:b,chain:c,chainId:f==null?void 0:f.chainId,connector:f==null?void 0:f.connector,isConnected:!0,isConnecting:!1,isDisconnected:!1,isReconnecting:!1,status:d};case"reconnecting":return{address:a,addresses:b,chain:c,chainId:f==null?void 0:f.chainId,connector:f==null?void 0:f.connector,isConnected:!!a,isConnecting:!1,isDisconnected:!1,isReconnecting:!0,status:d};case"connecting":return{address:a,addresses:b,chain:c,chainId:f==null?void 0:f.chainId,connector:f==null?void 0:f.connector,isConnected:!1,isConnecting:!0,isDisconnected:!1,isReconnecting:!1,status:d};case"disconnected":return{address:void 0,addresses:void 0,chain:void 0,chainId:void 0,connector:void 0,isConnected:!1,isConnecting:!1,isDisconnected:!0,isReconnecting:!1,status:d}}}function tf(t){return t.state.chainId}function D(t,e,f){const b=t[e.name];if(typeof b=="function")return b;const a=t[f];return typeof a=="function"?a:c=>e(t,c)}const cf="2.13.8",df=()=>`@wagmi/core@${cf}`;var z=function(t,e,f,b){if(f==="a"&&!b)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!b:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return f==="m"?b:f==="a"?b.call(t):b?b.value:e.get(t)},P,F;class v extends Error{get docsBaseUrl(){return"https://wagmi.sh/core"}get version(){return df()}constructor(e,f={}){var c;super(),P.add(this),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"WagmiCoreError"});const b=f.cause instanceof v?f.cause.details:(c=f.cause)!=null&&c.message?f.cause.message:f.details,a=f.cause instanceof v&&f.cause.docsPath||f.docsPath;this.message=[e||"An error occurred.","",...f.metaMessages?[...f.metaMessages,""]:[],...a?[`Docs: ${this.docsBaseUrl}${a}.html${f.docsSlug?`#${f.docsSlug}`:""}`]:[],...b?[`Details: ${b}`]:[],`Version: ${this.version}`].join(`
2
+ `),f.cause&&(this.cause=f.cause),this.details=b,this.docsPath=a,this.metaMessages=f.metaMessages,this.shortMessage=e}walk(e){return z(this,P,"m",F).call(this,this,e)}}P=new WeakSet,F=function t(e,f){return f!=null&&f(e)?e:e.cause?z(this,P,"m",t).call(this,e.cause,f):e};class nf extends v{constructor(){super("Connector not connected."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ConnectorNotConnectedError"})}}class sf extends v{constructor({address:e,connector:f}){super(`Account "${e}" not found for connector "${f.name}".`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ConnectorAccountNotFoundError"})}}class of extends v{constructor({connectionChainId:e,connectorChainId:f}){super(`The current chain of the connector (id: ${f}) does not match the connection's chain (id: ${e}).`,{metaMessages:[`Current Chain ID: ${f}`,`Expected Chain ID: ${e}`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ConnectorChainMismatchError"})}}class rf extends v{constructor({connector:e}){super(`Connector "${e.name}" unavailable while reconnecting.`,{details:["During the reconnection step, the only connector methods guaranteed to be available are: `id`, `name`, `type`, `uuid`.","All other methods are not guaranteed to be available until reconnection completes and connectors are fully restored.","This error commonly occurs for connectors that asynchronously inject after reconnection has already started."].join(" ")}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ConnectorUnavailableReconnectingError"})}}async function N(t,e={}){let f;if(e.connector){const{connector:n}=e;if(t.state.status==="reconnecting"&&!n.getAccounts&&!n.getChainId)throw new rf({connector:n});const[w,C]=await Promise.all([n.getAccounts(),n.getChainId()]);f={accounts:w,chainId:C,connector:n}}else f=t.state.connections.get(t.state.current);if(!f)throw new nf;const b=e.chainId??f.chainId,a=await f.connector.getChainId();if(a!==f.chainId)throw new of({connectionChainId:f.chainId,connectorChainId:a});const c=f.connector;if(c.getClient)return c.getClient({chainId:b});const d=S.parseAccount(e.account??f.accounts[0]);if(d.address=S.getAddress(d.address),e.account&&!f.accounts.some(n=>n.toLowerCase()===d.address.toLowerCase()))throw new sf({address:d.address,connector:c});const s=t.chains.find(n=>n.id===b),o=await f.connector.getProvider({chainId:b});return i.createClient({account:d,chain:s,name:"Connector Client",transport:n=>i.custom(o)({...n,retryCount:0})})}async function uf(t,e){const{abi:f,chainId:b,connector:a,...c}=e;let d;e.account?d=e.account:d=(await N(t,{chainId:b,connector:a})).account;const s=t.getClient({chainId:b}),o=D(s,O.simulateContract,"simulateContract"),{result:n,request:w}=await o({...c,abi:f,account:d});return{chainId:s.chain.id,result:n,request:{__mode:"prepared",...w,chainId:b}}}async function L(t,e){const{account:f,chainId:b,connector:a,__mode:c,...d}=e;let s;typeof f=="object"&&f.type==="local"?s=t.getClient({chainId:b}):s=await N(t,{account:f,chainId:b,connector:a});const{connector:o}=V(t);let n;if(c==="prepared"||o!=null&&o.supportsSimulation)n=d;else{const{request:r}=await uf(t,{...d,account:f,chainId:b});n=r}return await D(s,O.writeContract,"writeContract")({...n,...f?{account:f}:{},chain:b?{id:b}:null})}function lf(t){return t.address!==void 0&&typeof t.address=="object"?(e,f)=>{var d;const b=tf(e),a=V(e);let c;return f.chainId?c=f.chainId:f.account&&f.account===a.address||f.account===void 0?c=a.chainId:c=b,L(e,{...f,...t.functionName?{functionName:t.functionName}:{},address:c?(d=t.address)==null?void 0:d[c]:void 0,abi:t.abi})}:(e,f)=>L(e,{...f,...t.address?{address:t.address}:{},...t.functionName?{functionName:t.functionName}:{},abi:t.abi})}const hf=i.parseEther("0.000075"),E={31337:void 0,...j.BoostCore},gf=E[11155111]||i.zeroAddress;function wf(t){return t.address}function Cf(t){return t.registryAddress&&t.protocolFeeReceiver}const m=class m extends J.Deployable{get addresses(){return this.constructor.addresses}constructor({config:e,account:f,...b}){if(wf(b)&&b.address)super({account:f,config:e},b.address);else if(Cf(b))super({account:f,config:e},[b.registryAddress,b.protocolFeeReceiver]);else{const{address:a}=g.assertValidAddressByChainId(e,E);super({account:f,config:e},a)}this.abi=u.A}async createBoost(e,f){var I;const[b,a]=this.validateDeploymentConfig(e,f),c=((I=f==null?void 0:f.chain)==null?void 0:I.id)||(f==null?void 0:f.chainId),{chainId:d,address:s}=g.assertValidAddressByChainId(a.config,this.addresses,c),o=lf({abi:u.A,functionName:"createBoost",address:s}),n=await this.prepareCreateBoostPayload(s,d,b,a),w=await o(a.config,{...this.optionallyAttachAccount(a.account),...f,chainId:d,args:[B.prepareBoostPayload(n)]}),C=await y.waitForTransactionReceipt(a.config,{hash:w}),r=i.parseEventLogs({abi:u.A,eventName:"BoostCreated",logs:C.logs}).at(0);let l=0n;if(!r)throw new A.BoostCoreNoIdentifierEmitted;l=r==null?void 0:r.args.boostId;const h=await this.readBoost(l);return new B.Boost({id:l,budget:b.budget.at(h.budget),action:b.action.at(h.action),validator:b.validator.at(h.validator),allowList:b.allowList.at(h.allowList),incentives:b.incentives.map((M,T)=>M.at(h.incentives.at(T))),protocolFee:h.protocolFee,maxParticipants:h.maxParticipants,owner:h.owner})}async simulateCreateBoost(e,f){var n;const[b,a]=this.validateDeploymentConfig(e,f),c=((n=f==null?void 0:f.chain)==null?void 0:n.id)||(f==null?void 0:f.chainId),{chainId:d,address:s}=g.assertValidAddressByChainId(a.config,this.addresses,c),o=await this.prepareCreateBoostPayload(s,d,b,a);return await u.Mb(this._config,{...this.optionallyAttachAccount(),...f,address:s,chainId:d,args:[B.prepareBoostPayload(o)]})}async prepareCreateBoostPayload(e,f,b,a){var C;if(!b.owner&&(b.owner=((C=this._account)==null?void 0:C.address)||y.getAccount(a.config).address||i.zeroAddress,b.owner===i.zeroAddress))throw new A.DeployableUnknownOwnerProvidedError;if(!b.validator){const l=y.getChains(a.config).filter(I=>!!this.addresses[I.id]&&I.id===f).at(0);if(!l)throw new A.InvalidProtocolChainIdError(f,Object.keys(this.addresses).map(Number));const h=l.testnet||l.id===31337;b.validator=this.SignerValidator({signers:[h?_.BoostValidatorEOA.TESTNET:_.BoostValidatorEOA.MAINNET],validatorCaller:e})}let c=i.zeroAddress;if(b.budget.address){if(c=b.budget.address,!await b.budget.isAuthorized(e))throw new A.BudgetMustAuthorizeBoostCore(e)}else throw new A.MustInitializeBudgetError;let d={instance:i.zeroAddress,isBase:!0,parameters:i.zeroHash};if(b.action.address){const r=b.action.isBase;d={isBase:r,instance:b.action.address,parameters:r&&b.action.buildParameters(void 0,a).args.at(0)||i.zeroHash}}else d.parameters=b.action.buildParameters(void 0,a).args.at(0)||i.zeroHash,d.instance=g.assertValidAddressByChainId(a.config,b.action.bases,f).address;let s={instance:i.zeroAddress,isBase:!0,parameters:i.zeroHash};if(b.validator.address){const r=b.validator.isBase;s={isBase:r,instance:b.validator.address,parameters:r&&b.validator.buildParameters(void 0,a).args.at(0)||i.zeroHash}}else s.parameters=b.validator.buildParameters(void 0,a).args.at(0)||i.zeroHash,s.instance=g.assertValidAddressByChainId(a.config,b.validator.bases,f).address;let o={instance:i.zeroAddress,isBase:!0,parameters:i.zeroHash};if(b.allowList||(b.allowList=this.OpenAllowList()),b.allowList.address){const r=b.allowList.isBase;o={isBase:r,instance:b.allowList.address,parameters:i.zeroHash}}else o.parameters=b.allowList.buildParameters(void 0,a).args.at(0)||i.zeroHash,o.instance=g.assertValidAddressByChainId(a.config,b.allowList.bases,f).address;const n=b.incentives.map(()=>({instance:i.zeroAddress,isBase:!0,parameters:i.zeroHash}));for(let r=0;r<b.incentives.length;r++){const l=b.incentives.at(r);if(l.address){const h=l.isBase;if(!h)throw new A.IncentiveNotCloneableError(l);n[r]={isBase:h,instance:l.address,parameters:h&&l.buildParameters(void 0,a).args.at(0)||i.zeroHash}}else n[r].parameters=l.buildParameters(void 0,a).args.at(0)||i.zeroHash,n[r].instance=g.assertValidAddressByChainId(a.config,l.bases,f).address}return{budget:c,action:d,validator:s,allowList:o,incentives:n,protocolFee:b.protocolFee||0n,maxParticipants:b.maxParticipants||0n,owner:b.owner}}async claimIncentive(e,f,b,a,c){return await this.awaitResult(this.claimIncentiveRaw(e,f,b,a,c))}async claimIncentiveRaw(e,f,b,a,c){var n;const{request:d,result:s}=await u.Ib(this._config,{...g.assertValidAddressByChainId(this._config,this.addresses,((n=c==null?void 0:c.chain)==null?void 0:n.id)||(c==null?void 0:c.chainId)),args:[e,f,b,a],...this.optionallyAttachAccount(),...c});return{hash:await u.ob(this._config,d),result:s}}async claimIncentiveFor(e,f,b,a,c,d){return await this.awaitResult(this.claimIncentiveForRaw(e,f,b,a,c,d))}async claimIncentiveForRaw(e,f,b,a,c,d){var w;const{request:s,result:o}=await u.Nb(this._config,{...g.assertValidAddressByChainId(this._config,this.addresses,((w=d==null?void 0:d.chain)==null?void 0:w.id)||(d==null?void 0:d.chainId)),args:[e,f,b,a,c],...this.optionallyAttachAccount(),...d});return{hash:await u.pb(this._config,s),result:o}}async readBoost(e,f){var b;try{let a;return typeof e=="string"?a=BigInt(e):a=e,await u.Jm(this._config,{...g.assertValidAddressByChainId(this._config,this.addresses,f==null?void 0:f.chainId),args:[a],...this.optionallyAttachAccount(),...f})}catch(a){throw(b=a==null?void 0:a.message)!=null&&b.includes("bounds")?new A.BoostNotFoundError(String(e)):a}}async getBoost(e,f){let b;typeof e=="string"?b=BigInt(e):b=e;const{protocolFee:a,maxParticipants:c,owner:d,...s}=await this.readBoost(b,f),o={config:this._config,account:this._account},[n,w,C,r,l]=await Promise.all([H.actionFromAddress(o,s.action),k.budgetFromAddress(o,s.budget),_.validatorFromAddress(o,s.validator),q.allowListFromAddress(o,s.allowList),Promise.all(s.incentives.map(h=>Z.incentiveFromAddress(o,h)))]);return new B.Boost({id:b,action:n,budget:w,validator:C,allowList:r,incentives:l,protocolFee:a,maxParticipants:c,owner:d})}async getBoostCount(e){return await u.Km(this._config,{...g.assertValidAddressByChainId(this._config,this.addresses,e==null?void 0:e.chainId),args:[],...this.optionallyAttachAccount(),...e})}async isAuthorized(e,f){const b=await this.createBoostAuth(f);return u.dh(this._config,{address:b,args:[e],...this.optionallyAttachAccount(),...f})}async createBoostAuth(e){return await u.Wm(this._config,{...g.assertValidAddressByChainId(this._config,this.addresses,e==null?void 0:e.chainId),args:[],...this.optionallyAttachAccount(),...e})}async setCreateBoostAuth(e,f){return await this.awaitResult(this.setCreateBoostAuthRaw(e.assertValidAddress(),{...f}))}async setCreateBoostAuthRaw(e,f){const{request:b,result:a}=await u.Cb(this._config,{...g.assertValidAddressByChainId(this._config,this.addresses,f==null?void 0:f.chainId),args:[e],...this.optionallyAttachAccount(),...f});return{hash:await u.mb(this._config,b),result:a}}async protocolFee(e){return await u.nb(this._config,{...g.assertValidAddressByChainId(this._config,this.addresses,e==null?void 0:e.chainId),args:[],...this.optionallyAttachAccount(),...e})}async protocolFeeReceiver(e){return await u.ab(this._config,{...g.assertValidAddressByChainId(this._config,this.addresses,e==null?void 0:e.chainId),args:[],...this.optionallyAttachAccount(),...e})}async setProcolFeeReceiver(e,f){return await this.awaitResult(this.setProcolFeeReceiverRaw(e,{...f}))}async setProcolFeeReceiverRaw(e,f){const{request:b,result:a}=await u.zb(this._config,{...g.assertValidAddressByChainId(this._config,this.addresses,f==null?void 0:f.chainId),args:[e],...this.optionallyAttachAccount(),...f});return{hash:await u.fb(this._config,b),result:a}}async getClaimFromTransaction(e){var a;const f=await y.getTransactionReceipt(this._config,e);return(a=i.parseEventLogs({abi:u.A,eventName:"BoostClaimed",logs:f.logs}).at(0))==null?void 0:a.args}PassthroughAuth(e){return new U.PassthroughAuth({config:this._config,account:this._account},e)}EventAction(e,f){return new $.EventAction({config:this._config,account:this._account},e,f)}OpenAllowList(e){return new q.OpenAllowList({config:this._config,account:this._account},void 0,e)}SimpleAllowList(e,f){return new x.SimpleAllowList({config:this._config,account:this._account},e,f)}SimpleDenyList(e,f){return new G.SimpleDenyList({config:this._config,account:this._account},e,f)}ManagedBudget(e){return new W.ManagedBudget({config:this._config,account:this._account},e)}AllowListIncentive(e){return new K.AllowListIncentive({config:this._config,account:this._account},e)}CGDAIncentive(e){return new Q.CGDAIncentive({config:this._config,account:this._account},e)}ERC20Incentive(e){return new X.ERC20Incentive({config:this._config,account:this._account},e)}PointsIncentive(e){return new p.PointsIncentive({config:this._config,account:this._account},e)}SignerValidator(e,f){return new ef.SignerValidator({config:this._config,account:this._account},e,f)}LimitedSignerValidator(e,f){return new ff.LimitedSignerValidator({config:this._config,account:this._account},e,f)}ERC20VariableCriteriaIncentive(e,f){return new Y.ERC20VariableCriteriaIncentive({config:this._config,account:this._account},e,f)}ERC20VariableIncentive(e,f){return new bf.ERC20VariableIncentive({config:this._config,account:this._account},e,f)}buildParameters(e,f){const[b,a]=this.validateDeploymentConfig(e,f);return{abi:u.A,bytecode:af,args:b,...this.optionallyAttachAccount(a.account)}}};m.addresses=E;let R=m;exports.boostCoreAbi=u.A;exports.BOOST_CORE_ADDRESS=gf;exports.BOOST_CORE_ADDRESSES=E;exports.BOOST_CORE_CLAIM_FEE=hf;exports.BoostCore=R;
3
3
  //# sourceMappingURL=BoostCore.cjs.map