@boostxyz/sdk 2.0.0 → 2.1.0

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 (109) hide show
  1. package/dist/Actions/Action.cjs +1 -1
  2. package/dist/Actions/Action.js +4 -4
  3. package/dist/Actions/EventAction.cjs +1 -1
  4. package/dist/Actions/EventAction.js +17 -17
  5. package/dist/Actions/EventAction.js.map +1 -1
  6. package/dist/AllowLists/AllowList.cjs +1 -1
  7. package/dist/AllowLists/AllowList.js +5 -5
  8. package/dist/AllowLists/SimpleAllowList.cjs +1 -1
  9. package/dist/AllowLists/SimpleAllowList.js +19 -19
  10. package/dist/AllowLists/SimpleDenyList.cjs +1 -1
  11. package/dist/AllowLists/SimpleDenyList.js +3 -3
  12. package/dist/Auth/PassthroughAuth.cjs +1 -1
  13. package/dist/Auth/PassthroughAuth.js +1 -1
  14. package/dist/BoostCore.cjs +2 -2
  15. package/dist/BoostCore.cjs.map +1 -1
  16. package/dist/BoostCore.d.ts +14 -0
  17. package/dist/BoostCore.d.ts.map +1 -1
  18. package/dist/BoostCore.js +100 -81
  19. package/dist/BoostCore.js.map +1 -1
  20. package/dist/BoostRegistry.cjs +1 -1
  21. package/dist/BoostRegistry.js +31 -31
  22. package/dist/Budget-B0kJsZtZ.cjs +2 -0
  23. package/dist/Budget-B0kJsZtZ.cjs.map +1 -0
  24. package/dist/Budget-NtzY9H7G.js +462 -0
  25. package/dist/Budget-NtzY9H7G.js.map +1 -0
  26. package/dist/Budgets/Budget.cjs +1 -1
  27. package/dist/Budgets/Budget.cjs.map +1 -1
  28. package/dist/Budgets/Budget.d.ts +5 -4
  29. package/dist/Budgets/Budget.d.ts.map +1 -1
  30. package/dist/Budgets/Budget.js +9 -26
  31. package/dist/Budgets/Budget.js.map +1 -1
  32. package/dist/Budgets/ManagedBudget.cjs +1 -1
  33. package/dist/Budgets/ManagedBudget.js +34 -34
  34. package/dist/Budgets/ManagedBudgetWithFees.d.ts +1203 -0
  35. package/dist/Budgets/ManagedBudgetWithFees.d.ts.map +1 -0
  36. package/dist/Deployable/DeployableTarget.cjs +1 -1
  37. package/dist/Deployable/DeployableTarget.js +1 -1
  38. package/dist/Deployable/DeployableTargetWithRBAC.cjs +1 -1
  39. package/dist/Deployable/DeployableTargetWithRBAC.js +23 -23
  40. package/dist/Incentives/AllowListIncentive.cjs +1 -1
  41. package/dist/Incentives/AllowListIncentive.cjs.map +1 -1
  42. package/dist/Incentives/AllowListIncentive.js +16 -16
  43. package/dist/Incentives/AllowListIncentive.js.map +1 -1
  44. package/dist/Incentives/CGDAIncentive.cjs +1 -1
  45. package/dist/Incentives/CGDAIncentive.cjs.map +1 -1
  46. package/dist/Incentives/CGDAIncentive.js +28 -28
  47. package/dist/Incentives/CGDAIncentive.js.map +1 -1
  48. package/dist/Incentives/ERC20Incentive.cjs +1 -1
  49. package/dist/Incentives/ERC20Incentive.cjs.map +1 -1
  50. package/dist/Incentives/ERC20Incentive.js +25 -25
  51. package/dist/Incentives/ERC20Incentive.js.map +1 -1
  52. package/dist/Incentives/ERC20VariableCriteriaIncentive.cjs +1 -1
  53. package/dist/Incentives/ERC20VariableCriteriaIncentive.cjs.map +1 -1
  54. package/dist/Incentives/ERC20VariableCriteriaIncentive.js +29 -29
  55. package/dist/Incentives/ERC20VariableCriteriaIncentive.js.map +1 -1
  56. package/dist/Incentives/ERC20VariableIncentive.cjs +1 -1
  57. package/dist/Incentives/ERC20VariableIncentive.cjs.map +1 -1
  58. package/dist/Incentives/ERC20VariableIncentive.js +6 -6
  59. package/dist/Incentives/ERC20VariableIncentive.js.map +1 -1
  60. package/dist/Incentives/Incentive.cjs +1 -1
  61. package/dist/Incentives/Incentive.js +4 -4
  62. package/dist/Incentives/PointsIncentive.cjs +1 -1
  63. package/dist/Incentives/PointsIncentive.cjs.map +1 -1
  64. package/dist/Incentives/PointsIncentive.js +12 -12
  65. package/dist/Incentives/PointsIncentive.js.map +1 -1
  66. package/dist/{SimpleDenyList-wDvsNIuY.cjs → SimpleDenyList-B65fnca2.cjs} +2 -2
  67. package/dist/{SimpleDenyList-wDvsNIuY.cjs.map → SimpleDenyList-B65fnca2.cjs.map} +1 -1
  68. package/dist/{SimpleDenyList-D-rGBaay.js → SimpleDenyList-UvXQl2vm.js} +20 -20
  69. package/dist/{SimpleDenyList-D-rGBaay.js.map → SimpleDenyList-UvXQl2vm.js.map} +1 -1
  70. package/dist/Validators/LimitedSignerValidator.cjs +1 -1
  71. package/dist/Validators/LimitedSignerValidator.js +9 -9
  72. package/dist/Validators/SignerValidator.cjs +1 -1
  73. package/dist/Validators/SignerValidator.js +8 -8
  74. package/dist/Validators/Validator.cjs +1 -1
  75. package/dist/Validators/Validator.cjs.map +1 -1
  76. package/dist/Validators/Validator.js +20 -20
  77. package/dist/componentInterfaces-Bt-4sNB5.cjs +2 -0
  78. package/dist/componentInterfaces-Bt-4sNB5.cjs.map +1 -0
  79. package/dist/componentInterfaces-dakxtQHf.js +16 -0
  80. package/dist/componentInterfaces-dakxtQHf.js.map +1 -0
  81. package/dist/deployments-DxkwtCyu.cjs +2 -0
  82. package/dist/deployments-DxkwtCyu.cjs.map +1 -0
  83. package/dist/{deployments-BdPDIh-i.js → deployments-ZLVwJGZD.js} +33 -30
  84. package/dist/deployments-ZLVwJGZD.js.map +1 -0
  85. package/dist/deployments.json +17 -14
  86. package/dist/{generated-CDEDSOGZ.js → generated-B0XfMfoq.js} +1037 -470
  87. package/dist/generated-B0XfMfoq.js.map +1 -0
  88. package/dist/generated-pNKCp_Ez.cjs +3 -0
  89. package/dist/generated-pNKCp_Ez.cjs.map +1 -0
  90. package/dist/index.cjs +1 -1
  91. package/dist/index.d.ts +1 -0
  92. package/dist/index.d.ts.map +1 -1
  93. package/dist/index.js +148 -145
  94. package/package.json +1 -1
  95. package/src/BoostCore.ts +30 -0
  96. package/src/Budgets/Budget.ts +8 -3
  97. package/src/Budgets/ManagedBudgetWithFees.test.ts +286 -0
  98. package/src/Budgets/ManagedBudgetWithFees.ts +671 -0
  99. package/src/index.ts +1 -0
  100. package/dist/componentInterfaces-BQw7DH-m.cjs +0 -2
  101. package/dist/componentInterfaces-BQw7DH-m.cjs.map +0 -1
  102. package/dist/componentInterfaces-C0vuWQlh.js +0 -15
  103. package/dist/componentInterfaces-C0vuWQlh.js.map +0 -1
  104. package/dist/deployments--f75Pthq.cjs +0 -2
  105. package/dist/deployments--f75Pthq.cjs.map +0 -1
  106. package/dist/deployments-BdPDIh-i.js.map +0 -1
  107. package/dist/generated-CDEDSOGZ.js.map +0 -1
  108. package/dist/generated-D3DE5TfH.cjs +0 -3
  109. package/dist/generated-D3DE5TfH.cjs.map +0 -1
package/dist/BoostCore.js CHANGED
@@ -1,32 +1,33 @@
1
- import { A as C, bw as j, bx as x, by as M, bz as T, bA as V, bB as q, bC as z, bD as G, bE as U, bF as k, bG as W, bH as H, bI as J, bJ as K, bK as Q } from "./generated-CDEDSOGZ.js";
1
+ import { I as C, bC as j, bD as p, bE as x, bF as V, bG as T, bH as q, bI as z, bJ as G, bK as W, bL as k, bM as U, bN as H, bO as J, bP as K, bQ as Q } from "./generated-B0XfMfoq.js";
2
2
  import { waitForTransactionReceipt as X, getAccount as Y, getChains as Z, getTransactionReceipt as ff } from "@wagmi/core";
3
- import { createClient as bf, custom as ef, zeroAddress as m, parseEventLogs as _, zeroHash as l } from "viem";
4
- import { f as af } from "./deployments-BdPDIh-i.js";
3
+ import { createClient as bf, custom as ef, zeroAddress as m, parseEventLogs as P, zeroHash as l } from "viem";
4
+ import { g as af } from "./deployments-ZLVwJGZD.js";
5
5
  import { actionFromAddress as tf } from "./Actions/Action.js";
6
6
  import { EventAction as cf } from "./Actions/EventAction.js";
7
7
  import { allowListFromAddress as df, OpenAllowList as nf } from "./AllowLists/AllowList.js";
8
8
  import { SimpleAllowList as sf } from "./AllowLists/SimpleAllowList.js";
9
- import { S as of } from "./SimpleDenyList-D-rGBaay.js";
9
+ import { S as of } from "./SimpleDenyList-UvXQl2vm.js";
10
10
  import { PassthroughAuth as rf } from "./Auth/PassthroughAuth.js";
11
11
  import { prepareBoostPayload as B, Boost as E } from "./Boost.js";
12
- import { budgetFromAddress as uf } from "./Budgets/Budget.js";
13
- import { ManagedBudget as lf } from "./Budgets/ManagedBudget.js";
14
- import { Deployable as hf } from "./Deployable/Deployable.js";
15
- import { AllowListIncentive as gf } from "./Incentives/AllowListIncentive.js";
16
- import { CGDAIncentive as wf } from "./Incentives/CGDAIncentive.js";
17
- import { ERC20Incentive as mf } from "./Incentives/ERC20Incentive.js";
18
- import { ERC20VariableCriteriaIncentive as vf } from "./Incentives/ERC20VariableCriteriaIncentive.js";
19
- import { incentiveFromAddress as Cf } from "./Incentives/Incentive.js";
20
- import { PointsIncentive as Af } from "./Incentives/PointsIncentive.js";
21
- import { LimitedSignerValidator as If } from "./Validators/LimitedSignerValidator.js";
22
- import { SignerValidator as yf } from "./Validators/SignerValidator.js";
23
- import { BoostValidatorEOA as R, validatorFromAddress as Pf } from "./Validators/Validator.js";
24
- import { BoostCoreNoIdentifierEmitted as _f, DeployableUnknownOwnerProvidedError as Bf, InvalidProtocolChainIdError as Ef, BudgetMustAuthorizeBoostCore as Rf, MustInitializeBudgetError as Ff, IncentiveNotCloneableError as Lf, BoostNotFoundError as Df } from "./errors.js";
12
+ import { b as uf, M as lf } from "./Budget-NtzY9H7G.js";
13
+ import { ManagedBudget as hf } from "./Budgets/ManagedBudget.js";
14
+ import { Deployable as gf } from "./Deployable/Deployable.js";
15
+ import { Roles as wf } from "./Deployable/DeployableTargetWithRBAC.js";
16
+ import { AllowListIncentive as mf } from "./Incentives/AllowListIncentive.js";
17
+ import { CGDAIncentive as vf } from "./Incentives/CGDAIncentive.js";
18
+ import { ERC20Incentive as Cf } from "./Incentives/ERC20Incentive.js";
19
+ import { ERC20VariableCriteriaIncentive as Af } from "./Incentives/ERC20VariableCriteriaIncentive.js";
20
+ import { incentiveFromAddress as If } from "./Incentives/Incentive.js";
21
+ import { PointsIncentive as yf } from "./Incentives/PointsIncentive.js";
22
+ import { LimitedSignerValidator as _f } from "./Validators/LimitedSignerValidator.js";
23
+ import { SignerValidator as Pf } from "./Validators/SignerValidator.js";
24
+ import { BoostValidatorEOA as R, validatorFromAddress as Bf } from "./Validators/Validator.js";
25
+ import { BoostCoreNoIdentifierEmitted as Ef, DeployableUnknownOwnerProvidedError as Rf, InvalidProtocolChainIdError as Ff, BudgetMustAuthorizeBoostCore as Lf, MustInitializeBudgetError as Df, IncentiveNotCloneableError as Nf, BoostNotFoundError as Of } from "./errors.js";
25
26
  import { assertValidAddressByChainId as h } from "./utils.js";
26
- import { ERC20VariableIncentive as Nf } from "./Incentives/ERC20VariableIncentive.js";
27
- import { simulateContract as Of, writeContract as Sf } from "viem/actions";
28
- import { parseAccount as pf, getAddress as $f } from "viem/utils";
29
- const jf = "0x60806040526103e8600360146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555034801561003a575f80fd5b50604051615344380380615344833981810160405281019061005c919061026b565b61006b336100f260201b60201c565b8160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506102a9565b6101006101ce60201b60201c565b15610178577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561013a57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3506101cb565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f90565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101ff826101d6565b9050919050565b5f610210826101f5565b9050919050565b61022081610206565b811461022a575f80fd5b50565b5f8151905061023b81610217565b92915050565b61024a816101f5565b8114610254575f80fd5b50565b5f8151905061026581610241565b92915050565b5f8060408385031215610281576102806101d2565b5b5f61028e8582860161022d565b925050602061029f85828601610257565b9150509250929050565b61508e806102b65f395ff3fe60806040526004361061014a575f3560e01c80638da5cb5b116100b5578063e21ff7311161006e578063e21ff731146103f7578063eccc19a614610433578063f04e283e1461045b578063f2fde38b14610477578063fee81cf414610493578063fefceca9146104cf5761014a565b80638da5cb5b146102f65780638fe4f52314610320578063a92647dc1461033c578063b0e21e8a14610366578063d73792a914610390578063dd98558c146103ba5761014a565b806354d1f13d1161010757806354d1f13d1461024a5780635edb9eb0146102545780635f32c23e1461027e578063715018a6146102a6578063730f9c57146102b05780637b103999146102cc5761014a565b806313c8e2de1461014e578063256929621461018a578063346339d51461019457806339a51be5146101d057806343bc42d3146101fa57806346877b1a14610222575b5f80fd5b348015610159575f80fd5b50610174600480360381019061016f9190613805565b61050f565b6040516101819190613ae1565b60405180910390f35b6101926107b7565b005b34801561019f575f80fd5b506101ba60048036038101906101b59190613b34565b610808565b6040516101c79190613c38565b60405180910390f35b3480156101db575f80fd5b506101e46108df565b6040516101f19190613c60565b60405180910390f35b348015610205575f80fd5b50610220600480360381019061021b9190613ca3565b610904565b005b34801561022d575f80fd5b5061024860048036038101906102439190613cf8565b610938565b005b610252610983565b005b34801561025f575f80fd5b506102686109bc565b6040516102759190613d32565b60405180910390f35b348015610289575f80fd5b506102a4600480360381019061029f9190613d4b565b6109c7565b005b6102ae610b53565b005b6102ca60048036038101906102c59190613dea565b610b66565b005b3480156102d7575f80fd5b506102e06110a7565b6040516102ed9190613ea0565b60405180910390f35b348015610301575f80fd5b5061030a6110cc565b6040516103179190613c60565b60405180910390f35b61033a60048036038101906103359190613eb9565b6110f4565b005b348015610347575f80fd5b50610350611109565b60405161035d9190613f5d565b60405180910390f35b348015610371575f80fd5b5061037a61112e565b6040516103879190613f85565b60405180910390f35b34801561039b575f80fd5b506103a4611148565b6040516103b19190613f85565b60405180910390f35b3480156103c5575f80fd5b506103e060048036038101906103db9190613f9e565b61114e565b6040516103ee92919061400f565b60405180910390f35b348015610402575f80fd5b5061041d60048036038101906104189190614036565b611852565b60405161042a9190613ae1565b60405180910390f35b34801561043e575f80fd5b5061045960048036038101906104549190613cf8565b612245565b005b61047560048036038101906104709190613cf8565b612290565b005b610491600480360381019061048c9190613cf8565b6122ce565b005b34801561049e575f80fd5b506104b960048036038101906104b49190613cf8565b6122f7565b6040516104c69190613d32565b60405180910390f35b3480156104da575f80fd5b506104f560048036038101906104f09190613b34565b612310565b604051610506959493929190614090565b60405180910390f35b610517613617565b5f828154811061052a576105296140e1565b5b905f5260205f209060080201604051806101000160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820180548060200260200160405190810160405280929190818152602001828054801561071757602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116106ce575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050919050565b5f6107c061236d565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b6108106136cd565b60045f8381526020019081526020015f206040518060a00160405290815f82015f9054906101000a900460ff16600281111561084f5761084e613b5f565b5b600281111561086157610860613b5f565b5b81526020015f820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201548152602001600282015481526020016003820154815250509050919050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61090c612377565b80600360146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050565b610940612377565b8060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f8080549050905090565b3068929eee149b4bd2126854036109e55763ab143c065f526004601cfd5b3068929eee149b4bd21268555f6109fc83836123ae565b90505f60045f8381526020019081526020015f2090505f816002015461271067ffffffffffffffff168360010154610a34919061413b565b610a3e91906141a9565b90505f610a4a836123e0565b905081811115610b3f575f8282610a6191906141d9565b90505f61271067ffffffffffffffff16856002015483610a81919061413b565b610a8b91906141a9565b9050610a9785826125e6565b80856001015410610ac15780856001015f828254610ab591906141d9565b92505081905550610acb565b5f85600101819055505b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1687897f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b1784604051610b349190613d32565b60405180910390a450505b505050503868929eee149b4bd21268555050565b610b5b612377565b610b645f6127c7565b565b3068929eee149b4bd212685403610b845763ab143c065f526004601cfd5b3068929eee149b4bd21268555f808781548110610ba457610ba36140e1565b5b905f5260205f20906008020190505f610bbd88886123ae565b90505f60045f8381526020019081526020015f209050826002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e3f756de8588886040518463ffffffff1660e01b8152600401610c3393929190614266565b602060405180830381865afa158015610c4e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c7291906142cb565b610ca8576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b826001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663703b69008a8a878a8a6040518663ffffffff1660e01b8152600401610d0c9594939291906142f6565b6020604051808303815f875af1158015610d28573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d4c91906142cb565b610d82576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8073ffffffffffffffffffffffffffffffffffffffff16825f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610ddf575f610de9565b610de8826123e0565b5b9050836004018981548110610e0157610e006140e1565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb1757cf8689896040518463ffffffff1660e01b8152600401610e6593929190614266565b6020604051808303815f875af1158015610e81573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ea591906142cb565b610eea578487876040517f4139d81d000000000000000000000000000000000000000000000000000000008152600401610ee193929190614266565b60405180910390fd5b5f8073ffffffffffffffffffffffffffffffffffffffff16835f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610f47575f610f51565b610f50836123e0565b5b90505f818311610f61575f610f6e565b8183610f6d91906141d9565b5b90505f61271067ffffffffffffffff16856002015483610f8e919061413b565b610f9891906141a9565b90505f81111561103857610fac85826125e6565b80856001015f828254610fbf91906141d9565b9250508190555060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168c8e7f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b178460405161102f9190613d32565b60405180910390a45b8773ffffffffffffffffffffffffffffffffffffffff168c8e7f0f29bbf4ce25d2346bbeb8a898e24e5d6d7d1d19bb895e71faecac833b2595478e8e8e60405161108493929190614266565b60405180910390a4505050505050503868929eee149b4bd2126855505050505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b611102858585858533610b66565b5050505050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360149054906101000a900467ffffffffffffffff1681565b61271081565b5f803068929eee149b4bd21268540361116e5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f80858154811061118e5761118d6140e1565b5b905f5260205f209060080201604051806101000160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820180548060200260200160405190810160405280929190818152602001828054801561137b57602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611332575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050806060015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461147f576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f61148a86866123ae565b90505f60045f8381526020019081526020015f2090505f89898101906114b091906144cd565b90505f81602001518060200190518101906114cb9190614528565b90505f61271067ffffffffffffffff168460020154836114eb919061413b565b6114f591906141a9565b90505f811115611712576001600281111561151357611512613b5f565b5b845f015f9054906101000a900460ff16600281111561153557611534613b5f565b5b148061157357505f600281111561154f5761154e613b5f565b5b845f015f9054906101000a900460ff16600281111561157157611570613b5f565b5b145b156115ce576115c9835f015182865f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661288d9092919063ffffffff16565b6116a0565b6002808111156115e1576115e0613b5f565b5b845f015f9054906101000a900460ff16600281111561160357611602613b5f565b5b0361169f57835f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a30855f01518760030154856040518563ffffffff1660e01b81526004016116719493929190614576565b5f604051808303815f87803b158015611688575f80fd5b505af115801561169a573d5f803e3d5ffd5b505050505b5b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16898b7f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b17846040516117099190613d32565b60405180910390a45b5f8087608001518b8151811061172b5761172a6140e1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1663474f5a448660405160200161175f9190614666565b6040516020818303038152906040526040518263ffffffff1660e01b815260040161178a91906146be565b60408051808303815f875af11580156117a5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117c991906146f2565b915091505f820361181557338e8e6040517f9ecd71a900000000000000000000000000000000000000000000000000000000815260040161180c93929190614266565b60405180910390fd5b82866001015f82825461182891906141d9565b9250508190555081819950995050505050505050503868929eee149b4bd212685594509492505050565b61185a613617565b335f73ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415801561194e575060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe9fbb80826040518263ffffffff1660e01b815260040161190d9190613c60565b602060405180830381865afa158015611928573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061194c91906142cb565b155b15611985576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3068929eee149b4bd2126854036119a35763ab143c065f526004601cfd5b3068929eee149b4bd21268555f6119fc85858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050506128d6565b806020019051810190611a0f9190614a90565b9050611a1d815f015161296f565b5f8060018160018154018082558091505003905f5260205f20906008020190508160e00151816007015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550815f0151816003015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160a00151600360149054906101000a900467ffffffffffffffff16611aee9190614ad7565b816005015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508160c001518160060181905550611b547fe67157950000000000000000000000000000000000000000000000000000000083602001516001612a4a565b815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611bc47fe2089f790000000000000000000000000000000000000000000000000000000083606001516001612a4a565b816002015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611c1b8260800151835f01518460a00151612a6c565b816004019080519060200190611c3292919061371f565b505f73ffffffffffffffffffffffffffffffffffffffff1682604001516020015173ffffffffffffffffffffffffffffffffffffffff1614611ca357611c9e7f5912b89c0000000000000000000000000000000000000000000000000000000083604001516001612a4a565b611d8c565b805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166301ffc9a77f5912b89c000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401611d1e9190614b4c565b602060405180830381865afa158015611d39573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d5d91906142cb565b611d67575f611d8b565b805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b5b816001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f73ffffffffffffffffffffffffffffffffffffffff16816001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611e82577f5912b89c000000000000000000000000000000000000000000000000000000005f6040517fe1c44448000000000000000000000000000000000000000000000000000000008152600401611e79929190614b65565b60405180910390fd5b805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816007015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660015f80549050611f0691906141d9565b7f116812d3ad4507d72f2c428b63246d594ca055a1dc119394285504c23d1f34cd8460040180549050856001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876003015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051611fab9493929190614b8c565b60405180910390a480604051806101000160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820180548060200260200160405190810160405280929190818152602001828054801561219557602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161214c575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050935050503868929eee149b4bd21268555092915050565b61224d612377565b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612298612377565b63389a75e1600c52805f526020600c2080544211156122be57636f5e88185f526004601cfd5b5f8155506122cb816127c7565b50565b6122d6612377565b8060601b6122eb57637448fbae5f526004601cfd5b6122f4816127c7565b50565b5f63389a75e1600c52815f526020600c20549050919050565b6004602052805f5260405f205f91509050805f015f9054906101000a900460ff1690805f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154905085565b5f6202a300905090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146123ac576382b429005f526004601cfd5b565b5f82826040516020016123c2929190614bef565b60405160208183030381529060405280519060200120905092915050565b5f600160028111156123f5576123f4613b5f565b5b825f015f9054906101000a900460ff16600281111561241757612416613b5f565b5b148061245557505f600281111561243157612430613b5f565b5b825f015f9054906101000a900460ff16600281111561245357612452613b5f565b5b145b156124fc57815f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016124b69190613c60565b602060405180830381865afa1580156124d1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124f59190614528565b90506125e1565b60028081111561250f5761250e613b5f565b5b825f015f9054906101000a900460ff16600281111561253157612530613b5f565b5b036125dd57815f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1662fdd58e3084600301546040518363ffffffff1660e01b8152600401612597929190614c1a565b602060405180830381865afa1580156125b2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125d69190614528565b90506125e1565b5f90505b919050565b600160028111156125fa576125f9613b5f565b5b825f015f9054906101000a900460ff16600281111561261c5761261b613b5f565b5b148061265a57505f600281111561263657612635613b5f565b5b825f015f9054906101000a900460ff16600281111561265857612657613b5f565b5b145b156126d3576126ce60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682845f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661288d9092919063ffffffff16565b6127c3565b6002808111156126e6576126e5613b5f565b5b825f015f9054906101000a900460ff16600281111561270857612707613b5f565b5b036127c257815f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a3060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168560030154856040518563ffffffff1660e01b81526004016127949493929190614576565b5f604051808303815f87803b1580156127ab575f80fd5b505af11580156127bd573d5f803e3d5ffd5b505050505b5b5050565b6127cf612f87565b15612834577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b821781555061288a565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f511417166128cd576390b8ec185f526004601cfd5b5f603452505050565b606081511561296a5760405190506020810160048301805184518501811983525b80861015612950576001860195508551601f1a80612940576001870196508651601f1a5f198652607f811161292e57600181013887395b6001607f82160186019550505061294b565b808553600185019450505b6128f7565b81835260208501840385525f845260208401604052505050505b919050565b6129997fe49cedd70000000000000000000000000000000000000000000000000000000082612f8b565b8073ffffffffffffffffffffffffffffffffffffffff1663fe9fbb80336040518263ffffffff1660e01b81526004016129d29190613c60565b602060405180830381865afa1580156129ed573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a1191906142cb565b612a47576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b5f612a59848460200151612f8b565b612a638383613082565b90509392505050565b6060835167ffffffffffffffff811115612a8957612a88614346565b5b604051908082528060200260200182016040528015612ab75781602001602082028036833780820191505090505b5090505f5b8451811015612f7f57612b0d7fa921670500000000000000000000000000000000000000000000000000000000868381518110612afc57612afb6140e1565b5b602002602001015160200151612f8b565b848181518110612b2057612b1f6140e1565b5b60200260200101515f0151612bac577fa921670500000000000000000000000000000000000000000000000000000000858281518110612b6357612b626140e1565b5b6020026020010151602001516040517fe1c44448000000000000000000000000000000000000000000000000000000008152600401612ba3929190614b65565b60405180910390fd5b612bf17fa921670500000000000000000000000000000000000000000000000000000000868381518110612be357612be26140e1565b5b60200260200101515f612a4a565b828281518110612c0457612c036140e1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f828281518110612c5257612c516140e1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16634e7165a2878481518110612c8857612c876140e1565b5b6020026020010151604001516040518263ffffffff1660e01b8152600401612cb091906146be565b5f60405180830381865afa158015612cca573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190612cf29190614c41565b90505f815114612ed3575f80612d08838761313e565b915091508673ffffffffffffffffffffffffffffffffffffffff1663fa4ca9b1836040518263ffffffff1660e01b8152600401612d4591906146be565b6020604051808303815f875af1158015612d61573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d8591906142cb565b612dbb576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8673ffffffffffffffffffffffffffffffffffffffff1663fa4ca9b1846040518263ffffffff1660e01b8152600401612df491906146be565b6020604051808303815f875af1158015612e10573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e3491906142cb565b612e6a576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f83806020019051810190612e7f9190614d3c565b9050612ecf60015f80549050612e9591906141d9565b868360200151858b67ffffffffffffffff16865f01518f8c81518110612ebe57612ebd6140e1565b5b602002602001015160400151613437565b5050505b828281518110612ee657612ee56140e1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1663439fab91878481518110612f1c57612f1b6140e1565b5b6020026020010151604001516040518263ffffffff1660e01b8152600401612f4491906146be565b5f604051808303815f87803b158015612f5b575f80fd5b505af1158015612f6d573d5f803e3d5ffd5b50505050508080600101915050612abc565b509392505050565b5f90565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16148061303a57508073ffffffffffffffffffffffffffffffffffffffff166301ffc9a7836040518263ffffffff1660e01b8152600401612ff99190614b4c565b602060405180830381865afa158015613014573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061303891906142cb565b155b1561307e5781816040517fe1c44448000000000000000000000000000000000000000000000000000000008152600401613075929190614b65565b60405180910390fd5b5050565b5f825f01516130955782602001516130b9565b6130b8836020015173ffffffffffffffffffffffffffffffffffffffff166135b4565b5b9050825f015180156130c85750815b15613138578073ffffffffffffffffffffffffffffffffffffffff1663439fab9184604001516040518263ffffffff1660e01b815260040161310a91906146be565b5f604051808303815f87803b158015613121575f80fd5b505af1158015613133573d5f803e3d5ffd5b505050505b92915050565b60605f80848060200190518101906131569190614d3c565b90505f600360149054906101000a900467ffffffffffffffff168561317b9190614ad7565b90506001600281111561319157613190613b5f565b5b825f015160028111156131a7576131a6613b5f565b5b14806131d957505f60028111156131c1576131c0613b5f565b5b825f015160028111156131d7576131d6613b5f565b5b145b156132cd575f82606001518060200190518101906131f79190614dbc565b90505f61271067ffffffffffffffff168367ffffffffffffffff16835f0151613220919061413b565b61322a91906141a9565b90505f60405180602001604052808381525090508060405160200161324f9190614e01565b604051602081830303815290604052856060018190525030856040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050846040516020016132af9190614e7a565b60405160208183030381529060405282965096505050505050613430565b6002808111156132e0576132df613b5f565b5b825f015160028111156132f6576132f5613b5f565b5b036133fe575f82606001518060200190518101906133149190614f17565b90505f61271067ffffffffffffffff168367ffffffffffffffff16836020015161333e919061413b565b61334891906141a9565b90505f6040518060600160405280845f0151815260200183815260200184604001518152509050806040516020016133809190614fab565b604051602081830303815290604052856060018190525030856040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050846040516020016133e09190614e7a565b60405160208183030381529060405282965096505050505050613430565b6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9250929050565b5f60028081111561344b5761344a613b5f565b5b83600281111561345e5761345d613b5f565b5b0361347d57818060200190518101906134779190614fcb565b50809150505b5f6040518060a0016040528085600281111561349c5761349b613b5f565b5b81526020018873ffffffffffffffffffffffffffffffffffffffff16815260200187815260200186600360149054906101000a900467ffffffffffffffff1667ffffffffffffffff166134ef9190615025565b81526020018381525090508060045f6135088c8c6123ae565b81526020019081526020015f205f820151815f015f6101000a81548160ff0219169083600281111561353d5761353c613b5f565b5b02179055506020820151815f0160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600101556060820151816002015560808201518160030155905050505050505050505050565b5f6135bf5f836135c6565b9050919050565b5f6c5af43d3d93803e602a57fd5bf36021528160145273602c3d8160093d39f33d3d3d3d363d3d37363d735f526035600c84f090508061360d5763301164255f526004601cfd5b5f60215292915050565b6040518061010001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff168152602001606081526020015f67ffffffffffffffff1681526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b6040518060a001604052805f60028111156136eb576136ea613b5f565b5b81526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81526020015f81526020015f81525090565b828054828255905f5260205f20908101928215613795579160200282015b82811115613794578251825f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019061373d565b5b5090506137a291906137a6565b5090565b5b808211156137bd575f815f9055506001016137a7565b5090565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b6137e4816137d2565b81146137ee575f80fd5b50565b5f813590506137ff816137db565b92915050565b5f6020828403121561381a576138196137ca565b5b5f613827848285016137f1565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61387261386d61386884613830565b61384f565b613830565b9050919050565b5f61388382613858565b9050919050565b5f61389482613879565b9050919050565b6138a48161388a565b82525050565b5f6138b482613879565b9050919050565b6138c4816138aa565b82525050565b5f6138d482613879565b9050919050565b6138e4816138ca565b82525050565b5f6138f482613858565b9050919050565b5f613905826138ea565b9050919050565b613915816138fb565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f61394e82613879565b9050919050565b61395e81613944565b82525050565b5f61396f8383613955565b60208301905092915050565b5f602082019050919050565b5f6139918261391b565b61399b8185613925565b93506139a683613935565b805f5b838110156139d65781516139bd8882613964565b97506139c88361397b565b9250506001810190506139a9565b5085935050505092915050565b5f67ffffffffffffffff82169050919050565b6139ff816139e3565b82525050565b613a0e816137d2565b82525050565b5f613a1e82613830565b9050919050565b613a2e81613a14565b82525050565b5f61010083015f830151613a4a5f86018261389b565b506020830151613a5d60208601826138bb565b506040830151613a7060408601826138db565b506060830151613a83606086018261390c565b5060808301518482036080860152613a9b8282613987565b91505060a0830151613ab060a08601826139f6565b5060c0830151613ac360c0860182613a05565b5060e0830151613ad660e0860182613a25565b508091505092915050565b5f6020820190508181035f830152613af98184613a34565b905092915050565b5f819050919050565b613b1381613b01565b8114613b1d575f80fd5b50565b5f81359050613b2e81613b0a565b92915050565b5f60208284031215613b4957613b486137ca565b5b5f613b5684828501613b20565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60038110613b9d57613b9c613b5f565b5b50565b5f819050613bad82613b8c565b919050565b5f613bbc82613ba0565b9050919050565b613bcc81613bb2565b82525050565b60a082015f820151613be65f850182613bc3565b506020820151613bf96020850182613a25565b506040820151613c0c6040850182613a05565b506060820151613c1f6060850182613a05565b506080820151613c326080850182613a05565b50505050565b5f60a082019050613c4b5f830184613bd2565b92915050565b613c5a81613a14565b82525050565b5f602082019050613c735f830184613c51565b92915050565b613c82816139e3565b8114613c8c575f80fd5b50565b5f81359050613c9d81613c79565b92915050565b5f60208284031215613cb857613cb76137ca565b5b5f613cc584828501613c8f565b91505092915050565b613cd781613a14565b8114613ce1575f80fd5b50565b5f81359050613cf281613cce565b92915050565b5f60208284031215613d0d57613d0c6137ca565b5b5f613d1a84828501613ce4565b91505092915050565b613d2c816137d2565b82525050565b5f602082019050613d455f830184613d23565b92915050565b5f8060408385031215613d6157613d606137ca565b5b5f613d6e858286016137f1565b9250506020613d7f858286016137f1565b9150509250929050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112613daa57613da9613d89565b5b8235905067ffffffffffffffff811115613dc757613dc6613d8d565b5b602083019150836001820283011115613de357613de2613d91565b5b9250929050565b5f805f805f8060a08789031215613e0457613e036137ca565b5b5f613e1189828a016137f1565b9650506020613e2289828a016137f1565b9550506040613e3389828a01613ce4565b945050606087013567ffffffffffffffff811115613e5457613e536137ce565b5b613e6089828a01613d95565b93509350506080613e7389828a01613ce4565b9150509295509295509295565b5f613e8a82613879565b9050919050565b613e9a81613e80565b82525050565b5f602082019050613eb35f830184613e91565b92915050565b5f805f805f60808688031215613ed257613ed16137ca565b5b5f613edf888289016137f1565b9550506020613ef0888289016137f1565b9450506040613f0188828901613ce4565b935050606086013567ffffffffffffffff811115613f2257613f216137ce565b5b613f2e88828901613d95565b92509250509295509295909350565b5f613f4782613879565b9050919050565b613f5781613f3d565b82525050565b5f602082019050613f705f830184613f4e565b92915050565b613f7f816139e3565b82525050565b5f602082019050613f985f830184613f76565b92915050565b5f805f8060608587031215613fb657613fb56137ca565b5b5f85013567ffffffffffffffff811115613fd357613fd26137ce565b5b613fdf87828801613d95565b94509450506020613ff2878288016137f1565b9250506040614003878288016137f1565b91505092959194509250565b5f6040820190506140225f830185613d23565b61402f6020830184613c51565b9392505050565b5f806020838503121561404c5761404b6137ca565b5b5f83013567ffffffffffffffff811115614069576140686137ce565b5b61407585828601613d95565b92509250509250929050565b61408a81613bb2565b82525050565b5f60a0820190506140a35f830188614081565b6140b06020830187613c51565b6140bd6040830186613d23565b6140ca6060830185613d23565b6140d76080830184613d23565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f614145826137d2565b9150614150836137d2565b925082820261415e816137d2565b915082820484148315176141755761417461410e565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6141b3826137d2565b91506141be836137d2565b9250826141ce576141cd61417c565b5b828204905092915050565b5f6141e3826137d2565b91506141ee836137d2565b92508282039050818111156142065761420561410e565b5b92915050565b5f82825260208201905092915050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f614245838561420c565b935061425283858461421c565b61425b8361422a565b840190509392505050565b5f6040820190506142795f830186613c51565b818103602083015261428c81848661423a565b9050949350505050565b5f8115159050919050565b6142aa81614296565b81146142b4575f80fd5b50565b5f815190506142c5816142a1565b92915050565b5f602082840312156142e0576142df6137ca565b5b5f6142ed848285016142b7565b91505092915050565b5f6080820190506143095f830188613d23565b6143166020830187613d23565b6143236040830186613c51565b818103606083015261433681848661423a565b90509695505050505050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61437c8261422a565b810181811067ffffffffffffffff8211171561439b5761439a614346565b5b80604052505050565b5f6143ad6137c1565b90506143b98282614373565b919050565b5f80fd5b5f80fd5b5f67ffffffffffffffff8211156143e0576143df614346565b5b6143e98261422a565b9050602081019050919050565b5f614408614403846143c6565b6143a4565b905082815260208101848484011115614424576144236143c2565b5b61442f84828561421c565b509392505050565b5f82601f83011261444b5761444a613d89565b5b813561445b8482602086016143f6565b91505092915050565b5f6040828403121561447957614478614342565b5b61448360406143a4565b90505f61449284828501613ce4565b5f83015250602082013567ffffffffffffffff8111156144b5576144b46143be565b5b6144c184828501614437565b60208301525092915050565b5f602082840312156144e2576144e16137ca565b5b5f82013567ffffffffffffffff8111156144ff576144fe6137ce565b5b61450b84828501614464565b91505092915050565b5f81519050614522816137db565b92915050565b5f6020828403121561453d5761453c6137ca565b5b5f61454a84828501614514565b91505092915050565b50565b5f6145615f8361420c565b915061456c82614553565b5f82019050919050565b5f60a0820190506145895f830187613c51565b6145966020830186613c51565b6145a36040830185613d23565b6145b06060830184613d23565b81810360808301526145c181614556565b905095945050505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6145fe826145cc565b61460881856145d6565b93506146188185602086016145e6565b6146218161422a565b840191505092915050565b5f604083015f8301516146415f860182613a25565b506020830151848203602086015261465982826145f4565b9150508091505092915050565b5f6020820190508181035f83015261467e818461462c565b905092915050565b5f614690826145cc565b61469a818561420c565b93506146aa8185602086016145e6565b6146b38161422a565b840191505092915050565b5f6020820190508181035f8301526146d68184614686565b905092915050565b5f815190506146ec81613cce565b92915050565b5f8060408385031215614708576147076137ca565b5b5f61471585828601614514565b9250506020614726858286016146de565b9150509250929050565b5f61473a82613830565b9050919050565b5f61474b82614730565b9050919050565b61475b81614741565b8114614765575f80fd5b50565b5f8151905061477681614752565b92915050565b5f61478e614789846143c6565b6143a4565b9050828152602081018484840111156147aa576147a96143c2565b5b6147b58482856145e6565b509392505050565b5f82601f8301126147d1576147d0613d89565b5b81516147e184826020860161477c565b91505092915050565b5f606082840312156147ff576147fe614342565b5b61480960606143a4565b90505f614818848285016142b7565b5f83015250602061482b848285016146de565b602083015250604082015167ffffffffffffffff81111561484f5761484e6143be565b5b61485b848285016147bd565b60408301525092915050565b5f67ffffffffffffffff82111561488157614880614346565b5b602082029050602081019050919050565b5f6148a461489f84614867565b6143a4565b905080838252602082019050602084028301858111156148c7576148c6613d91565b5b835b8181101561490e57805167ffffffffffffffff8111156148ec576148eb613d89565b5b8086016148f989826147ea565b855260208501945050506020810190506148c9565b5050509392505050565b5f82601f83011261492c5761492b613d89565b5b815161493c848260208601614892565b91505092915050565b5f8151905061495381613c79565b92915050565b5f610100828403121561496f5761496e614342565b5b61497a6101006143a4565b90505f61498984828501614768565b5f83015250602082015167ffffffffffffffff8111156149ac576149ab6143be565b5b6149b8848285016147ea565b602083015250604082015167ffffffffffffffff8111156149dc576149db6143be565b5b6149e8848285016147ea565b604083015250606082015167ffffffffffffffff811115614a0c57614a0b6143be565b5b614a18848285016147ea565b606083015250608082015167ffffffffffffffff811115614a3c57614a3b6143be565b5b614a4884828501614918565b60808301525060a0614a5c84828501614945565b60a08301525060c0614a7084828501614514565b60c08301525060e0614a84848285016146de565b60e08301525092915050565b5f60208284031215614aa557614aa46137ca565b5b5f82015167ffffffffffffffff811115614ac257614ac16137ce565b5b614ace84828501614959565b91505092915050565b5f614ae1826139e3565b9150614aec836139e3565b9250828201905067ffffffffffffffff811115614b0c57614b0b61410e565b5b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b614b4681614b12565b82525050565b5f602082019050614b5f5f830184614b3d565b92915050565b5f604082019050614b785f830185614b3d565b614b856020830184613c51565b9392505050565b5f608082019050614b9f5f830187613d23565b614bac6020830186613c51565b614bb96040830185613c51565b614bc66060830184613c51565b95945050505050565b5f819050919050565b614be9614be4826137d2565b614bcf565b82525050565b5f614bfa8285614bd8565b602082019150614c0a8284614bd8565b6020820191508190509392505050565b5f604082019050614c2d5f830185613c51565b614c3a6020830184613d23565b9392505050565b5f60208284031215614c5657614c556137ca565b5b5f82015167ffffffffffffffff811115614c7357614c726137ce565b5b614c7f848285016147bd565b91505092915050565b60038110614c94575f80fd5b50565b5f81519050614ca581614c88565b92915050565b5f60808284031215614cc057614cbf614342565b5b614cca60806143a4565b90505f614cd984828501614c97565b5f830152506020614cec848285016146de565b6020830152506040614d00848285016146de565b604083015250606082015167ffffffffffffffff811115614d2457614d236143be565b5b614d30848285016147bd565b60608301525092915050565b5f60208284031215614d5157614d506137ca565b5b5f82015167ffffffffffffffff811115614d6e57614d6d6137ce565b5b614d7a84828501614cab565b91505092915050565b5f60208284031215614d9857614d97614342565b5b614da260206143a4565b90505f614db184828501614514565b5f8301525092915050565b5f60208284031215614dd157614dd06137ca565b5b5f614dde84828501614d83565b91505092915050565b602082015f820151614dfb5f850182613a05565b50505050565b5f602082019050614e145f830184614de7565b92915050565b5f608083015f830151614e2f5f860182613bc3565b506020830151614e426020860182613a25565b506040830151614e556040860182613a25565b5060608301518482036060860152614e6d82826145f4565b9150508091505092915050565b5f6020820190508181035f830152614e928184614e1a565b905092915050565b5f60608284031215614eaf57614eae614342565b5b614eb960606143a4565b90505f614ec884828501614514565b5f830152506020614edb84828501614514565b602083015250604082015167ffffffffffffffff811115614eff57614efe6143be565b5b614f0b848285016147bd565b60408301525092915050565b5f60208284031215614f2c57614f2b6137ca565b5b5f82015167ffffffffffffffff811115614f4957614f486137ce565b5b614f5584828501614e9a565b91505092915050565b5f606083015f830151614f735f860182613a05565b506020830151614f866020860182613a05565b5060408301518482036040860152614f9e82826145f4565b9150508091505092915050565b5f6020820190508181035f830152614fc38184614f5e565b905092915050565b5f8060408385031215614fe157614fe06137ca565b5b5f614fee85828601614514565b925050602083015167ffffffffffffffff81111561500f5761500e6137ce565b5b61501b858286016147bd565b9150509250929050565b5f61502f826137d2565b915061503a836137d2565b92508282019050808211156150525761505161410e565b5b9291505056fea2646970667358221220d9d037c2c33235a06d597239a1588d4f23c55dfa9cde1ca5967cffe7be52829464736f6c634300081a0033";
27
+ import { ERC20VariableIncentive as Sf } from "./Incentives/ERC20VariableIncentive.js";
28
+ import { simulateContract as Mf, writeContract as $f } from "viem/actions";
29
+ import { parseAccount as jf, getAddress as pf } from "viem/utils";
30
+ const xf = "0x60806040526103e8600360146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555034801561003a575f80fd5b50604051615326380380615326833981810160405281019061005c919061026b565b61006b336100f260201b60201c565b8160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506102a9565b6101006101ce60201b60201c565b15610178577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561013a57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3506101cb565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f90565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101ff826101d6565b9050919050565b5f610210826101f5565b9050919050565b61022081610206565b811461022a575f80fd5b50565b5f8151905061023b81610217565b92915050565b61024a816101f5565b8114610254575f80fd5b50565b5f8151905061026581610241565b92915050565b5f8060408385031215610281576102806101d2565b5b5f61028e8582860161022d565b925050602061029f85828601610257565b9150509250929050565b615070806102b65f395ff3fe60806040526004361061014a575f3560e01c80638da5cb5b116100b5578063e21ff7311161006e578063e21ff731146103f7578063eccc19a614610433578063f04e283e1461045b578063f2fde38b14610477578063fee81cf414610493578063fefceca9146104cf5761014a565b80638da5cb5b146102f65780638fe4f52314610320578063a92647dc1461033c578063b0e21e8a14610366578063d73792a914610390578063dd98558c146103ba5761014a565b806354d1f13d1161010757806354d1f13d1461024a5780635edb9eb0146102545780635f32c23e1461027e578063715018a6146102a6578063730f9c57146102b05780637b103999146102cc5761014a565b806313c8e2de1461014e578063256929621461018a578063346339d51461019457806339a51be5146101d057806343bc42d3146101fa57806346877b1a14610222575b5f80fd5b348015610159575f80fd5b50610174600480360381019061016f91906137e7565b61050f565b6040516101819190613ac3565b60405180910390f35b6101926107b7565b005b34801561019f575f80fd5b506101ba60048036038101906101b59190613b16565b610808565b6040516101c79190613c1a565b60405180910390f35b3480156101db575f80fd5b506101e46108df565b6040516101f19190613c42565b60405180910390f35b348015610205575f80fd5b50610220600480360381019061021b9190613c85565b610904565b005b34801561022d575f80fd5b5061024860048036038101906102439190613cda565b610938565b005b610252610983565b005b34801561025f575f80fd5b506102686109bc565b6040516102759190613d14565b60405180910390f35b348015610289575f80fd5b506102a4600480360381019061029f9190613d2d565b6109c7565b005b6102ae610b53565b005b6102ca60048036038101906102c59190613dcc565b610b66565b005b3480156102d7575f80fd5b506102e06110a7565b6040516102ed9190613e82565b60405180910390f35b348015610301575f80fd5b5061030a6110cc565b6040516103179190613c42565b60405180910390f35b61033a60048036038101906103359190613e9b565b6110f4565b005b348015610347575f80fd5b50610350611109565b60405161035d9190613f3f565b60405180910390f35b348015610371575f80fd5b5061037a61112e565b6040516103879190613f67565b60405180910390f35b34801561039b575f80fd5b506103a4611148565b6040516103b19190613f67565b60405180910390f35b3480156103c5575f80fd5b506103e060048036038101906103db9190613f80565b61114e565b6040516103ee929190613ff1565b60405180910390f35b348015610402575f80fd5b5061041d60048036038101906104189190614018565b611834565b60405161042a9190613ac3565b60405180910390f35b34801561043e575f80fd5b5061045960048036038101906104549190613cda565b612227565b005b61047560048036038101906104709190613cda565b612272565b005b610491600480360381019061048c9190613cda565b6122b0565b005b34801561049e575f80fd5b506104b960048036038101906104b49190613cda565b6122d9565b6040516104c69190613d14565b60405180910390f35b3480156104da575f80fd5b506104f560048036038101906104f09190613b16565b6122f2565b604051610506959493929190614072565b60405180910390f35b6105176135f9565b5f828154811061052a576105296140c3565b5b905f5260205f209060080201604051806101000160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820180548060200260200160405190810160405280929190818152602001828054801561071757602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116106ce575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050919050565b5f6107c061234f565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b6108106136af565b60045f8381526020019081526020015f206040518060a00160405290815f82015f9054906101000a900460ff16600281111561084f5761084e613b41565b5b600281111561086157610860613b41565b5b81526020015f820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201548152602001600282015481526020016003820154815250509050919050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61090c612359565b80600360146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050565b610940612359565b8060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f8080549050905090565b3068929eee149b4bd2126854036109e55763ab143c065f526004601cfd5b3068929eee149b4bd21268555f6109fc8383612390565b90505f60045f8381526020019081526020015f2090505f816002015461271067ffffffffffffffff168360010154610a34919061411d565b610a3e919061418b565b90505f610a4a836123c2565b905081811115610b3f575f8282610a6191906141bb565b90505f61271067ffffffffffffffff16856002015483610a81919061411d565b610a8b919061418b565b9050610a9785826125c8565b80856001015410610ac15780856001015f828254610ab591906141bb565b92505081905550610acb565b5f85600101819055505b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1687897f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b1784604051610b349190613d14565b60405180910390a450505b505050503868929eee149b4bd21268555050565b610b5b612359565b610b645f6127a9565b565b3068929eee149b4bd212685403610b845763ab143c065f526004601cfd5b3068929eee149b4bd21268555f808781548110610ba457610ba36140c3565b5b905f5260205f20906008020190505f610bbd8888612390565b90505f60045f8381526020019081526020015f209050826002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e3f756de8588886040518463ffffffff1660e01b8152600401610c3393929190614248565b602060405180830381865afa158015610c4e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c7291906142ad565b610ca8576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b826001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663703b69008a8a878a8a6040518663ffffffff1660e01b8152600401610d0c9594939291906142d8565b6020604051808303815f875af1158015610d28573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d4c91906142ad565b610d82576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8073ffffffffffffffffffffffffffffffffffffffff16825f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610ddf575f610de9565b610de8826123c2565b5b9050836004018981548110610e0157610e006140c3565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb1757cf8689896040518463ffffffff1660e01b8152600401610e6593929190614248565b6020604051808303815f875af1158015610e81573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ea591906142ad565b610eea578487876040517f4139d81d000000000000000000000000000000000000000000000000000000008152600401610ee193929190614248565b60405180910390fd5b5f8073ffffffffffffffffffffffffffffffffffffffff16835f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610f47575f610f51565b610f50836123c2565b5b90505f818311610f61575f610f6e565b8183610f6d91906141bb565b5b90505f61271067ffffffffffffffff16856002015483610f8e919061411d565b610f98919061418b565b90505f81111561103857610fac85826125c8565b80856001015f828254610fbf91906141bb565b9250508190555060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168c8e7f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b178460405161102f9190613d14565b60405180910390a45b8773ffffffffffffffffffffffffffffffffffffffff168c8e7f0f29bbf4ce25d2346bbeb8a898e24e5d6d7d1d19bb895e71faecac833b2595478e8e8e60405161108493929190614248565b60405180910390a4505050505050503868929eee149b4bd2126855505050505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b611102858585858533610b66565b5050505050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360149054906101000a900467ffffffffffffffff1681565b61271081565b5f803068929eee149b4bd21268540361116e5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f80858154811061118e5761118d6140c3565b5b905f5260205f209060080201604051806101000160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820180548060200260200160405190810160405280929190818152602001828054801561137b57602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611332575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050806060015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461147f576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f61148a8686612390565b90505f60045f8381526020019081526020015f2090505f89898101906114b091906144af565b90505f81602001518060200190518101906114cb919061450a565b90505f61271067ffffffffffffffff168460020154836114eb919061411d565b6114f5919061418b565b90505f8111156116f4576001600281111561151357611512613b41565b5b845f015f9054906101000a900460ff16600281111561153557611534613b41565b5b148061157357505f600281111561154f5761154e613b41565b5b845f015f9054906101000a900460ff16600281111561157157611570613b41565b5b145b156115ce576115c9835f015182865f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661286f9092919063ffffffff16565b6116a0565b6002808111156115e1576115e0613b41565b5b845f015f9054906101000a900460ff16600281111561160357611602613b41565b5b0361169f57835f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a30855f01518760030154856040518563ffffffff1660e01b81526004016116719493929190614558565b5f604051808303815f87803b158015611688575f80fd5b505af115801561169a573d5f803e3d5ffd5b505050505b5b825f015173ffffffffffffffffffffffffffffffffffffffff16898b7f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b17846040516116eb9190613d14565b60405180910390a45b5f8087608001518b8151811061170d5761170c6140c3565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1663474f5a44866040516020016117419190614648565b6040516020818303038152906040526040518263ffffffff1660e01b815260040161176c91906146a0565b60408051808303815f875af1158015611787573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117ab91906146d4565b915091505f82036117f757338e8e6040517f9ecd71a90000000000000000000000000000000000000000000000000000000081526004016117ee93929190614248565b60405180910390fd5b82866001015f82825461180a91906141bb565b9250508190555081819950995050505050505050503868929eee149b4bd212685594509492505050565b61183c6135f9565b335f73ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015611930575060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe9fbb80826040518263ffffffff1660e01b81526004016118ef9190613c42565b602060405180830381865afa15801561190a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061192e91906142ad565b155b15611967576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3068929eee149b4bd2126854036119855763ab143c065f526004601cfd5b3068929eee149b4bd21268555f6119de85858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050506128b8565b8060200190518101906119f19190614a72565b90506119ff815f0151612951565b5f8060018160018154018082558091505003905f5260205f20906008020190508160e00151816007015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550815f0151816003015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160a00151600360149054906101000a900467ffffffffffffffff16611ad09190614ab9565b816005015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508160c001518160060181905550611b367fe67157950000000000000000000000000000000000000000000000000000000083602001516001612a2c565b815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611ba67fe2089f790000000000000000000000000000000000000000000000000000000083606001516001612a2c565b816002015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611bfd8260800151835f01518460a00151612a4e565b816004019080519060200190611c14929190613701565b505f73ffffffffffffffffffffffffffffffffffffffff1682604001516020015173ffffffffffffffffffffffffffffffffffffffff1614611c8557611c807f5912b89c0000000000000000000000000000000000000000000000000000000083604001516001612a2c565b611d6e565b805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166301ffc9a77f5912b89c000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401611d009190614b2e565b602060405180830381865afa158015611d1b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d3f91906142ad565b611d49575f611d6d565b805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b5b816001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f73ffffffffffffffffffffffffffffffffffffffff16816001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611e64577f5912b89c000000000000000000000000000000000000000000000000000000005f6040517fe1c44448000000000000000000000000000000000000000000000000000000008152600401611e5b929190614b47565b60405180910390fd5b805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816007015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660015f80549050611ee891906141bb565b7f116812d3ad4507d72f2c428b63246d594ca055a1dc119394285504c23d1f34cd8460040180549050856001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876003015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051611f8d9493929190614b6e565b60405180910390a480604051806101000160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820180548060200260200160405190810160405280929190818152602001828054801561217757602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161212e575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050935050503868929eee149b4bd21268555092915050565b61222f612359565b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61227a612359565b63389a75e1600c52805f526020600c2080544211156122a057636f5e88185f526004601cfd5b5f8155506122ad816127a9565b50565b6122b8612359565b8060601b6122cd57637448fbae5f526004601cfd5b6122d6816127a9565b50565b5f63389a75e1600c52815f526020600c20549050919050565b6004602052805f5260405f205f91509050805f015f9054906101000a900460ff1690805f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154905085565b5f6202a300905090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754331461238e576382b429005f526004601cfd5b565b5f82826040516020016123a4929190614bd1565b60405160208183030381529060405280519060200120905092915050565b5f600160028111156123d7576123d6613b41565b5b825f015f9054906101000a900460ff1660028111156123f9576123f8613b41565b5b148061243757505f600281111561241357612412613b41565b5b825f015f9054906101000a900460ff16600281111561243557612434613b41565b5b145b156124de57815f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016124989190613c42565b602060405180830381865afa1580156124b3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124d7919061450a565b90506125c3565b6002808111156124f1576124f0613b41565b5b825f015f9054906101000a900460ff16600281111561251357612512613b41565b5b036125bf57815f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1662fdd58e3084600301546040518363ffffffff1660e01b8152600401612579929190614bfc565b602060405180830381865afa158015612594573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125b8919061450a565b90506125c3565b5f90505b919050565b600160028111156125dc576125db613b41565b5b825f015f9054906101000a900460ff1660028111156125fe576125fd613b41565b5b148061263c57505f600281111561261857612617613b41565b5b825f015f9054906101000a900460ff16600281111561263a57612639613b41565b5b145b156126b5576126b060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682845f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661286f9092919063ffffffff16565b6127a5565b6002808111156126c8576126c7613b41565b5b825f015f9054906101000a900460ff1660028111156126ea576126e9613b41565b5b036127a457815f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a3060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168560030154856040518563ffffffff1660e01b81526004016127769493929190614558565b5f604051808303815f87803b15801561278d575f80fd5b505af115801561279f573d5f803e3d5ffd5b505050505b5b5050565b6127b1612f69565b15612816577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b821781555061286c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f511417166128af576390b8ec185f526004601cfd5b5f603452505050565b606081511561294c5760405190506020810160048301805184518501811983525b80861015612932576001860195508551601f1a80612922576001870196508651601f1a5f198652607f811161291057600181013887395b6001607f82160186019550505061292d565b808553600185019450505b6128d9565b81835260208501840385525f845260208401604052505050505b919050565b61297b7fe49cedd70000000000000000000000000000000000000000000000000000000082612f6d565b8073ffffffffffffffffffffffffffffffffffffffff1663fe9fbb80336040518263ffffffff1660e01b81526004016129b49190613c42565b602060405180830381865afa1580156129cf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129f391906142ad565b612a29576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b5f612a3b848460200151612f6d565b612a458383613064565b90509392505050565b6060835167ffffffffffffffff811115612a6b57612a6a614328565b5b604051908082528060200260200182016040528015612a995781602001602082028036833780820191505090505b5090505f5b8451811015612f6157612aef7fa921670500000000000000000000000000000000000000000000000000000000868381518110612ade57612add6140c3565b5b602002602001015160200151612f6d565b848181518110612b0257612b016140c3565b5b60200260200101515f0151612b8e577fa921670500000000000000000000000000000000000000000000000000000000858281518110612b4557612b446140c3565b5b6020026020010151602001516040517fe1c44448000000000000000000000000000000000000000000000000000000008152600401612b85929190614b47565b60405180910390fd5b612bd37fa921670500000000000000000000000000000000000000000000000000000000868381518110612bc557612bc46140c3565b5b60200260200101515f612a2c565b828281518110612be657612be56140c3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f828281518110612c3457612c336140c3565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16634e7165a2878481518110612c6a57612c696140c3565b5b6020026020010151604001516040518263ffffffff1660e01b8152600401612c9291906146a0565b5f60405180830381865afa158015612cac573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190612cd49190614c23565b90505f815114612eb5575f80612cea8387613120565b915091508673ffffffffffffffffffffffffffffffffffffffff1663fa4ca9b1836040518263ffffffff1660e01b8152600401612d2791906146a0565b6020604051808303815f875af1158015612d43573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d6791906142ad565b612d9d576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8673ffffffffffffffffffffffffffffffffffffffff1663fa4ca9b1846040518263ffffffff1660e01b8152600401612dd691906146a0565b6020604051808303815f875af1158015612df2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e1691906142ad565b612e4c576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f83806020019051810190612e619190614d1e565b9050612eb160015f80549050612e7791906141bb565b868360200151858b67ffffffffffffffff16865f01518f8c81518110612ea057612e9f6140c3565b5b602002602001015160400151613419565b5050505b828281518110612ec857612ec76140c3565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1663439fab91878481518110612efe57612efd6140c3565b5b6020026020010151604001516040518263ffffffff1660e01b8152600401612f2691906146a0565b5f604051808303815f87803b158015612f3d575f80fd5b505af1158015612f4f573d5f803e3d5ffd5b50505050508080600101915050612a9e565b509392505050565b5f90565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16148061301c57508073ffffffffffffffffffffffffffffffffffffffff166301ffc9a7836040518263ffffffff1660e01b8152600401612fdb9190614b2e565b602060405180830381865afa158015612ff6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061301a91906142ad565b155b156130605781816040517fe1c44448000000000000000000000000000000000000000000000000000000008152600401613057929190614b47565b60405180910390fd5b5050565b5f825f015161307757826020015161309b565b61309a836020015173ffffffffffffffffffffffffffffffffffffffff16613596565b5b9050825f015180156130aa5750815b1561311a578073ffffffffffffffffffffffffffffffffffffffff1663439fab9184604001516040518263ffffffff1660e01b81526004016130ec91906146a0565b5f604051808303815f87803b158015613103575f80fd5b505af1158015613115573d5f803e3d5ffd5b505050505b92915050565b60605f80848060200190518101906131389190614d1e565b90505f600360149054906101000a900467ffffffffffffffff168561315d9190614ab9565b90506001600281111561317357613172613b41565b5b825f0151600281111561318957613188613b41565b5b14806131bb57505f60028111156131a3576131a2613b41565b5b825f015160028111156131b9576131b8613b41565b5b145b156132af575f82606001518060200190518101906131d99190614d9e565b90505f61271067ffffffffffffffff168367ffffffffffffffff16835f0151613202919061411d565b61320c919061418b565b90505f6040518060200160405280838152509050806040516020016132319190614de3565b604051602081830303815290604052856060018190525030856040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050846040516020016132919190614e5c565b60405160208183030381529060405282965096505050505050613412565b6002808111156132c2576132c1613b41565b5b825f015160028111156132d8576132d7613b41565b5b036133e0575f82606001518060200190518101906132f69190614ef9565b90505f61271067ffffffffffffffff168367ffffffffffffffff168360200151613320919061411d565b61332a919061418b565b90505f6040518060600160405280845f0151815260200183815260200184604001518152509050806040516020016133629190614f8d565b604051602081830303815290604052856060018190525030856040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050846040516020016133c29190614e5c565b60405160208183030381529060405282965096505050505050613412565b6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9250929050565b5f60028081111561342d5761342c613b41565b5b8360028111156134405761343f613b41565b5b0361345f57818060200190518101906134599190614fad565b50809150505b5f6040518060a0016040528085600281111561347e5761347d613b41565b5b81526020018873ffffffffffffffffffffffffffffffffffffffff16815260200187815260200186600360149054906101000a900467ffffffffffffffff1667ffffffffffffffff166134d19190615007565b81526020018381525090508060045f6134ea8c8c612390565b81526020019081526020015f205f820151815f015f6101000a81548160ff0219169083600281111561351f5761351e613b41565b5b02179055506020820151815f0160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600101556060820151816002015560808201518160030155905050505050505050505050565b5f6135a15f836135a8565b9050919050565b5f6c5af43d3d93803e602a57fd5bf36021528160145273602c3d8160093d39f33d3d3d3d363d3d37363d735f526035600c84f09050806135ef5763301164255f526004601cfd5b5f60215292915050565b6040518061010001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff168152602001606081526020015f67ffffffffffffffff1681526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b6040518060a001604052805f60028111156136cd576136cc613b41565b5b81526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81526020015f81526020015f81525090565b828054828255905f5260205f20908101928215613777579160200282015b82811115613776578251825f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019061371f565b5b5090506137849190613788565b5090565b5b8082111561379f575f815f905550600101613789565b5090565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b6137c6816137b4565b81146137d0575f80fd5b50565b5f813590506137e1816137bd565b92915050565b5f602082840312156137fc576137fb6137ac565b5b5f613809848285016137d3565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61385461384f61384a84613812565b613831565b613812565b9050919050565b5f6138658261383a565b9050919050565b5f6138768261385b565b9050919050565b6138868161386c565b82525050565b5f6138968261385b565b9050919050565b6138a68161388c565b82525050565b5f6138b68261385b565b9050919050565b6138c6816138ac565b82525050565b5f6138d68261383a565b9050919050565b5f6138e7826138cc565b9050919050565b6138f7816138dd565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f6139308261385b565b9050919050565b61394081613926565b82525050565b5f6139518383613937565b60208301905092915050565b5f602082019050919050565b5f613973826138fd565b61397d8185613907565b935061398883613917565b805f5b838110156139b857815161399f8882613946565b97506139aa8361395d565b92505060018101905061398b565b5085935050505092915050565b5f67ffffffffffffffff82169050919050565b6139e1816139c5565b82525050565b6139f0816137b4565b82525050565b5f613a0082613812565b9050919050565b613a10816139f6565b82525050565b5f61010083015f830151613a2c5f86018261387d565b506020830151613a3f602086018261389d565b506040830151613a5260408601826138bd565b506060830151613a6560608601826138ee565b5060808301518482036080860152613a7d8282613969565b91505060a0830151613a9260a08601826139d8565b5060c0830151613aa560c08601826139e7565b5060e0830151613ab860e0860182613a07565b508091505092915050565b5f6020820190508181035f830152613adb8184613a16565b905092915050565b5f819050919050565b613af581613ae3565b8114613aff575f80fd5b50565b5f81359050613b1081613aec565b92915050565b5f60208284031215613b2b57613b2a6137ac565b5b5f613b3884828501613b02565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60038110613b7f57613b7e613b41565b5b50565b5f819050613b8f82613b6e565b919050565b5f613b9e82613b82565b9050919050565b613bae81613b94565b82525050565b60a082015f820151613bc85f850182613ba5565b506020820151613bdb6020850182613a07565b506040820151613bee60408501826139e7565b506060820151613c0160608501826139e7565b506080820151613c1460808501826139e7565b50505050565b5f60a082019050613c2d5f830184613bb4565b92915050565b613c3c816139f6565b82525050565b5f602082019050613c555f830184613c33565b92915050565b613c64816139c5565b8114613c6e575f80fd5b50565b5f81359050613c7f81613c5b565b92915050565b5f60208284031215613c9a57613c996137ac565b5b5f613ca784828501613c71565b91505092915050565b613cb9816139f6565b8114613cc3575f80fd5b50565b5f81359050613cd481613cb0565b92915050565b5f60208284031215613cef57613cee6137ac565b5b5f613cfc84828501613cc6565b91505092915050565b613d0e816137b4565b82525050565b5f602082019050613d275f830184613d05565b92915050565b5f8060408385031215613d4357613d426137ac565b5b5f613d50858286016137d3565b9250506020613d61858286016137d3565b9150509250929050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112613d8c57613d8b613d6b565b5b8235905067ffffffffffffffff811115613da957613da8613d6f565b5b602083019150836001820283011115613dc557613dc4613d73565b5b9250929050565b5f805f805f8060a08789031215613de657613de56137ac565b5b5f613df389828a016137d3565b9650506020613e0489828a016137d3565b9550506040613e1589828a01613cc6565b945050606087013567ffffffffffffffff811115613e3657613e356137b0565b5b613e4289828a01613d77565b93509350506080613e5589828a01613cc6565b9150509295509295509295565b5f613e6c8261385b565b9050919050565b613e7c81613e62565b82525050565b5f602082019050613e955f830184613e73565b92915050565b5f805f805f60808688031215613eb457613eb36137ac565b5b5f613ec1888289016137d3565b9550506020613ed2888289016137d3565b9450506040613ee388828901613cc6565b935050606086013567ffffffffffffffff811115613f0457613f036137b0565b5b613f1088828901613d77565b92509250509295509295909350565b5f613f298261385b565b9050919050565b613f3981613f1f565b82525050565b5f602082019050613f525f830184613f30565b92915050565b613f61816139c5565b82525050565b5f602082019050613f7a5f830184613f58565b92915050565b5f805f8060608587031215613f9857613f976137ac565b5b5f85013567ffffffffffffffff811115613fb557613fb46137b0565b5b613fc187828801613d77565b94509450506020613fd4878288016137d3565b9250506040613fe5878288016137d3565b91505092959194509250565b5f6040820190506140045f830185613d05565b6140116020830184613c33565b9392505050565b5f806020838503121561402e5761402d6137ac565b5b5f83013567ffffffffffffffff81111561404b5761404a6137b0565b5b61405785828601613d77565b92509250509250929050565b61406c81613b94565b82525050565b5f60a0820190506140855f830188614063565b6140926020830187613c33565b61409f6040830186613d05565b6140ac6060830185613d05565b6140b96080830184613d05565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f614127826137b4565b9150614132836137b4565b9250828202614140816137b4565b91508282048414831517614157576141566140f0565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f614195826137b4565b91506141a0836137b4565b9250826141b0576141af61415e565b5b828204905092915050565b5f6141c5826137b4565b91506141d0836137b4565b92508282039050818111156141e8576141e76140f0565b5b92915050565b5f82825260208201905092915050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f61422783856141ee565b93506142348385846141fe565b61423d8361420c565b840190509392505050565b5f60408201905061425b5f830186613c33565b818103602083015261426e81848661421c565b9050949350505050565b5f8115159050919050565b61428c81614278565b8114614296575f80fd5b50565b5f815190506142a781614283565b92915050565b5f602082840312156142c2576142c16137ac565b5b5f6142cf84828501614299565b91505092915050565b5f6080820190506142eb5f830188613d05565b6142f86020830187613d05565b6143056040830186613c33565b818103606083015261431881848661421c565b90509695505050505050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61435e8261420c565b810181811067ffffffffffffffff8211171561437d5761437c614328565b5b80604052505050565b5f61438f6137a3565b905061439b8282614355565b919050565b5f80fd5b5f80fd5b5f67ffffffffffffffff8211156143c2576143c1614328565b5b6143cb8261420c565b9050602081019050919050565b5f6143ea6143e5846143a8565b614386565b905082815260208101848484011115614406576144056143a4565b5b6144118482856141fe565b509392505050565b5f82601f83011261442d5761442c613d6b565b5b813561443d8482602086016143d8565b91505092915050565b5f6040828403121561445b5761445a614324565b5b6144656040614386565b90505f61447484828501613cc6565b5f83015250602082013567ffffffffffffffff811115614497576144966143a0565b5b6144a384828501614419565b60208301525092915050565b5f602082840312156144c4576144c36137ac565b5b5f82013567ffffffffffffffff8111156144e1576144e06137b0565b5b6144ed84828501614446565b91505092915050565b5f81519050614504816137bd565b92915050565b5f6020828403121561451f5761451e6137ac565b5b5f61452c848285016144f6565b91505092915050565b50565b5f6145435f836141ee565b915061454e82614535565b5f82019050919050565b5f60a08201905061456b5f830187613c33565b6145786020830186613c33565b6145856040830185613d05565b6145926060830184613d05565b81810360808301526145a381614538565b905095945050505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6145e0826145ae565b6145ea81856145b8565b93506145fa8185602086016145c8565b6146038161420c565b840191505092915050565b5f604083015f8301516146235f860182613a07565b506020830151848203602086015261463b82826145d6565b9150508091505092915050565b5f6020820190508181035f830152614660818461460e565b905092915050565b5f614672826145ae565b61467c81856141ee565b935061468c8185602086016145c8565b6146958161420c565b840191505092915050565b5f6020820190508181035f8301526146b88184614668565b905092915050565b5f815190506146ce81613cb0565b92915050565b5f80604083850312156146ea576146e96137ac565b5b5f6146f7858286016144f6565b9250506020614708858286016146c0565b9150509250929050565b5f61471c82613812565b9050919050565b5f61472d82614712565b9050919050565b61473d81614723565b8114614747575f80fd5b50565b5f8151905061475881614734565b92915050565b5f61477061476b846143a8565b614386565b90508281526020810184848401111561478c5761478b6143a4565b5b6147978482856145c8565b509392505050565b5f82601f8301126147b3576147b2613d6b565b5b81516147c384826020860161475e565b91505092915050565b5f606082840312156147e1576147e0614324565b5b6147eb6060614386565b90505f6147fa84828501614299565b5f83015250602061480d848285016146c0565b602083015250604082015167ffffffffffffffff811115614831576148306143a0565b5b61483d8482850161479f565b60408301525092915050565b5f67ffffffffffffffff82111561486357614862614328565b5b602082029050602081019050919050565b5f61488661488184614849565b614386565b905080838252602082019050602084028301858111156148a9576148a8613d73565b5b835b818110156148f057805167ffffffffffffffff8111156148ce576148cd613d6b565b5b8086016148db89826147cc565b855260208501945050506020810190506148ab565b5050509392505050565b5f82601f83011261490e5761490d613d6b565b5b815161491e848260208601614874565b91505092915050565b5f8151905061493581613c5b565b92915050565b5f610100828403121561495157614950614324565b5b61495c610100614386565b90505f61496b8482850161474a565b5f83015250602082015167ffffffffffffffff81111561498e5761498d6143a0565b5b61499a848285016147cc565b602083015250604082015167ffffffffffffffff8111156149be576149bd6143a0565b5b6149ca848285016147cc565b604083015250606082015167ffffffffffffffff8111156149ee576149ed6143a0565b5b6149fa848285016147cc565b606083015250608082015167ffffffffffffffff811115614a1e57614a1d6143a0565b5b614a2a848285016148fa565b60808301525060a0614a3e84828501614927565b60a08301525060c0614a52848285016144f6565b60c08301525060e0614a66848285016146c0565b60e08301525092915050565b5f60208284031215614a8757614a866137ac565b5b5f82015167ffffffffffffffff811115614aa457614aa36137b0565b5b614ab08482850161493b565b91505092915050565b5f614ac3826139c5565b9150614ace836139c5565b9250828201905067ffffffffffffffff811115614aee57614aed6140f0565b5b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b614b2881614af4565b82525050565b5f602082019050614b415f830184614b1f565b92915050565b5f604082019050614b5a5f830185614b1f565b614b676020830184613c33565b9392505050565b5f608082019050614b815f830187613d05565b614b8e6020830186613c33565b614b9b6040830185613c33565b614ba86060830184613c33565b95945050505050565b5f819050919050565b614bcb614bc6826137b4565b614bb1565b82525050565b5f614bdc8285614bba565b602082019150614bec8284614bba565b6020820191508190509392505050565b5f604082019050614c0f5f830185613c33565b614c1c6020830184613d05565b9392505050565b5f60208284031215614c3857614c376137ac565b5b5f82015167ffffffffffffffff811115614c5557614c546137b0565b5b614c618482850161479f565b91505092915050565b60038110614c76575f80fd5b50565b5f81519050614c8781614c6a565b92915050565b5f60808284031215614ca257614ca1614324565b5b614cac6080614386565b90505f614cbb84828501614c79565b5f830152506020614cce848285016146c0565b6020830152506040614ce2848285016146c0565b604083015250606082015167ffffffffffffffff811115614d0657614d056143a0565b5b614d128482850161479f565b60608301525092915050565b5f60208284031215614d3357614d326137ac565b5b5f82015167ffffffffffffffff811115614d5057614d4f6137b0565b5b614d5c84828501614c8d565b91505092915050565b5f60208284031215614d7a57614d79614324565b5b614d846020614386565b90505f614d93848285016144f6565b5f8301525092915050565b5f60208284031215614db357614db26137ac565b5b5f614dc084828501614d65565b91505092915050565b602082015f820151614ddd5f8501826139e7565b50505050565b5f602082019050614df65f830184614dc9565b92915050565b5f608083015f830151614e115f860182613ba5565b506020830151614e246020860182613a07565b506040830151614e376040860182613a07565b5060608301518482036060860152614e4f82826145d6565b9150508091505092915050565b5f6020820190508181035f830152614e748184614dfc565b905092915050565b5f60608284031215614e9157614e90614324565b5b614e9b6060614386565b90505f614eaa848285016144f6565b5f830152506020614ebd848285016144f6565b602083015250604082015167ffffffffffffffff811115614ee157614ee06143a0565b5b614eed8482850161479f565b60408301525092915050565b5f60208284031215614f0e57614f0d6137ac565b5b5f82015167ffffffffffffffff811115614f2b57614f2a6137b0565b5b614f3784828501614e7c565b91505092915050565b5f606083015f830151614f555f8601826139e7565b506020830151614f6860208601826139e7565b5060408301518482036040860152614f8082826145d6565b9150508091505092915050565b5f6020820190508181035f830152614fa58184614f40565b905092915050565b5f8060408385031215614fc357614fc26137ac565b5b5f614fd0858286016144f6565b925050602083015167ffffffffffffffff811115614ff157614ff06137b0565b5b614ffd8582860161479f565b9150509250929050565b5f615011826137b4565b915061501c836137b4565b9250828201905080821115615034576150336140f0565b5b9291505056fea2646970667358221220b1b3b1a29500988dc5a93c87996e3219d65576d3c8fd5df25480f04dcf05ceaf64736f6c634300081a0033";
30
31
  function D(t) {
31
32
  const b = t.state.current, f = t.state.connections.get(b), e = f == null ? void 0 : f.accounts, a = e == null ? void 0 : e[0], c = t.chains.find((n) => n.id === (f == null ? void 0 : f.chainId)), d = t.state.status;
32
33
  switch (d) {
@@ -84,7 +85,7 @@ function D(t) {
84
85
  };
85
86
  }
86
87
  }
87
- function xf(t) {
88
+ function Vf(t) {
88
89
  return t.state.chainId;
89
90
  }
90
91
  function N(t, b, f) {
@@ -94,7 +95,7 @@ function N(t, b, f) {
94
95
  const a = t[f];
95
96
  return typeof a == "function" ? a : (c) => b(t, c);
96
97
  }
97
- const Mf = "2.13.8", Tf = () => `@wagmi/core@${Mf}`;
98
+ const Tf = "2.13.8", qf = () => `@wagmi/core@${Tf}`;
98
99
  var O = function(t, b, f, e) {
99
100
  if (f === "a" && !e) throw new TypeError("Private accessor was defined without a getter");
100
101
  if (typeof b == "function" ? t !== b || !e : !b.has(t)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
@@ -105,7 +106,7 @@ class v extends Error {
105
106
  return "https://wagmi.sh/core";
106
107
  }
107
108
  get version() {
108
- return Tf();
109
+ return qf();
109
110
  }
110
111
  constructor(b, f = {}) {
111
112
  var c;
@@ -155,7 +156,7 @@ class v extends Error {
155
156
  I = /* @__PURE__ */ new WeakSet(), S = function t(b, f) {
156
157
  return f != null && f(b) ? b : b.cause ? O(this, I, "m", t).call(this, b.cause, f) : b;
157
158
  };
158
- class Vf extends v {
159
+ class zf extends v {
159
160
  constructor() {
160
161
  super("Connector not connected."), Object.defineProperty(this, "name", {
161
162
  enumerable: !0,
@@ -165,7 +166,7 @@ class Vf extends v {
165
166
  });
166
167
  }
167
168
  }
168
- class qf extends v {
169
+ class Gf extends v {
169
170
  constructor({ address: b, connector: f }) {
170
171
  super(`Account "${b}" not found for connector "${f.name}".`), Object.defineProperty(this, "name", {
171
172
  enumerable: !0,
@@ -175,7 +176,7 @@ class qf extends v {
175
176
  });
176
177
  }
177
178
  }
178
- class zf extends v {
179
+ class Wf extends v {
179
180
  constructor({ connectionChainId: b, connectorChainId: f }) {
180
181
  super(`The current chain of the connector (id: ${f}) does not match the connection's chain (id: ${b}).`, {
181
182
  metaMessages: [
@@ -190,7 +191,7 @@ class zf extends v {
190
191
  });
191
192
  }
192
193
  }
193
- class Gf extends v {
194
+ class kf extends v {
194
195
  constructor({ connector: b }) {
195
196
  super(`Connector "${b.name}" unavailable while reconnecting.`, {
196
197
  details: [
@@ -206,12 +207,12 @@ class Gf extends v {
206
207
  });
207
208
  }
208
209
  }
209
- async function p(t, b = {}) {
210
+ async function M(t, b = {}) {
210
211
  let f;
211
212
  if (b.connector) {
212
213
  const { connector: s } = b;
213
214
  if (t.state.status === "reconnecting" && !s.getAccounts && !s.getChainId)
214
- throw new Gf({ connector: s });
215
+ throw new kf({ connector: s });
215
216
  const [w, g] = await Promise.all([
216
217
  s.getAccounts(),
217
218
  s.getChainId()
@@ -224,19 +225,19 @@ async function p(t, b = {}) {
224
225
  } else
225
226
  f = t.state.connections.get(t.state.current);
226
227
  if (!f)
227
- throw new Vf();
228
+ throw new zf();
228
229
  const e = b.chainId ?? f.chainId, a = await f.connector.getChainId();
229
230
  if (a !== f.chainId)
230
- throw new zf({
231
+ throw new Wf({
231
232
  connectionChainId: f.chainId,
232
233
  connectorChainId: a
233
234
  });
234
235
  const c = f.connector;
235
236
  if (c.getClient)
236
237
  return c.getClient({ chainId: e });
237
- const d = pf(b.account ?? f.accounts[0]);
238
- if (d.address = $f(d.address), b.account && !f.accounts.some((s) => s.toLowerCase() === d.address.toLowerCase()))
239
- throw new qf({
238
+ const d = jf(b.account ?? f.accounts[0]);
239
+ if (d.address = pf(d.address), b.account && !f.accounts.some((s) => s.toLowerCase() === d.address.toLowerCase()))
240
+ throw new Gf({
240
241
  address: d.address,
241
242
  connector: c
242
243
  });
@@ -251,11 +252,11 @@ async function p(t, b = {}) {
251
252
  async function Uf(t, b) {
252
253
  const { abi: f, chainId: e, connector: a, ...c } = b;
253
254
  let d;
254
- b.account ? d = b.account : d = (await p(t, {
255
+ b.account ? d = b.account : d = (await M(t, {
255
256
  chainId: e,
256
257
  connector: a
257
258
  })).account;
258
- const n = t.getClient({ chainId: e }), i = N(n, Of, "simulateContract"), { result: s, request: w } = await i({ ...c, abi: f, account: d });
259
+ const n = t.getClient({ chainId: e }), i = N(n, Mf, "simulateContract"), { result: s, request: w } = await i({ ...c, abi: f, account: d });
259
260
  return {
260
261
  chainId: n.chain.id,
261
262
  result: s,
@@ -265,7 +266,7 @@ async function Uf(t, b) {
265
266
  async function F(t, b) {
266
267
  const { account: f, chainId: e, connector: a, __mode: c, ...d } = b;
267
268
  let n;
268
- typeof f == "object" && f.type === "local" ? n = t.getClient({ chainId: e }) : n = await p(t, { account: f, chainId: e, connector: a });
269
+ typeof f == "object" && f.type === "local" ? n = t.getClient({ chainId: e }) : n = await M(t, { account: f, chainId: e, connector: a });
269
270
  const { connector: i } = D(t);
270
271
  let s;
271
272
  if (c === "prepared" || i != null && i.supportsSimulation)
@@ -278,16 +279,16 @@ async function F(t, b) {
278
279
  });
279
280
  s = o;
280
281
  }
281
- return await N(n, Sf, "writeContract")({
282
+ return await N(n, $f, "writeContract")({
282
283
  ...s,
283
284
  ...f ? { account: f } : {},
284
285
  chain: e ? { id: e } : null
285
286
  });
286
287
  }
287
- function kf(t) {
288
+ function Hf(t) {
288
289
  return t.address !== void 0 && typeof t.address == "object" ? (b, f) => {
289
290
  var d;
290
- const e = xf(b), a = D(b);
291
+ const e = Vf(b), a = D(b);
291
292
  let c;
292
293
  return f.chainId ? c = f.chainId : f.account && f.account === a.address || f.account === void 0 ? c = a.chainId : c = e, F(b, {
293
294
  ...f,
@@ -302,17 +303,17 @@ function kf(t) {
302
303
  abi: t.abi
303
304
  });
304
305
  }
305
- const Wf = 10000n, y = {
306
+ const Jf = 10000n, y = {
306
307
  31337: void 0,
307
308
  ...af
308
- }, P0 = y[11155111] || m;
309
- function Hf(t) {
309
+ }, E0 = y[11155111] || m;
310
+ function Kf(t) {
310
311
  return t.address;
311
312
  }
312
- function Jf(t) {
313
+ function Qf(t) {
313
314
  return t.registryAddress && t.protocolFeeReceiver;
314
315
  }
315
- const P = class P extends hf {
316
+ const _ = class _ extends gf {
316
317
  /**
317
318
  * A getter that will return Boost core's static addresses by numerical chain ID
318
319
  *
@@ -333,9 +334,9 @@ const P = class P extends hf {
333
334
  * @param {({ address?: Address; } | { registryAddress: Address; protocolFeeReceiver: Address; })} param0....options
334
335
  */
335
336
  constructor({ config: b, account: f, ...e }) {
336
- if (Hf(e) && e.address)
337
+ if (Kf(e) && e.address)
337
338
  super({ account: f, config: b }, e.address);
338
- else if (Jf(e))
339
+ else if (Qf(e))
339
340
  super({ account: f, config: b }, [
340
341
  e.registryAddress,
341
342
  e.protocolFeeReceiver
@@ -364,7 +365,7 @@ const P = class P extends hf {
364
365
  a.config,
365
366
  this.addresses,
366
367
  c
367
- ), i = kf({
368
+ ), i = Hf({
368
369
  abi: C,
369
370
  functionName: "createBoost",
370
371
  address: n
@@ -381,13 +382,13 @@ const P = class P extends hf {
381
382
  args: [B(s)]
382
383
  }), g = await X(a.config, {
383
384
  hash: w
384
- }), o = _({
385
+ }), o = P({
385
386
  abi: C,
386
387
  eventName: "BoostCreated",
387
388
  logs: g.logs
388
389
  }).at(0);
389
390
  let r = 0n;
390
- if (!o) throw new _f();
391
+ if (!o) throw new Ef();
391
392
  r = o == null ? void 0 : o.args.boostId;
392
393
  const u = await this.readBoost(r);
393
394
  return new E({
@@ -440,13 +441,13 @@ const P = class P extends hf {
440
441
  async prepareCreateBoostPayload(b, f, e, a) {
441
442
  var g;
442
443
  if (!e.owner && (e.owner = ((g = this._account) == null ? void 0 : g.address) || Y(a.config).address || m, e.owner === m))
443
- throw new Bf();
444
+ throw new Rf();
444
445
  if (!e.validator) {
445
446
  const r = Z(a.config).filter(
446
447
  (A) => !!this.addresses[A.id] && A.id === f
447
448
  ).at(0);
448
449
  if (!r)
449
- throw new Ef(
450
+ throw new Ff(
450
451
  f,
451
452
  Object.keys(this.addresses).map(Number)
452
453
  );
@@ -461,9 +462,9 @@ const P = class P extends hf {
461
462
  let c = m;
462
463
  if (e.budget.address) {
463
464
  if (c = e.budget.address, !await e.budget.isAuthorized(b))
464
- throw new Rf(b);
465
+ throw new Lf(b);
465
466
  } else
466
- throw new Ff();
467
+ throw new Df();
467
468
  let d = {
468
469
  instance: m,
469
470
  isBase: !0,
@@ -527,7 +528,7 @@ const P = class P extends hf {
527
528
  const r = e.incentives.at(o);
528
529
  if (r.address) {
529
530
  const u = r.isBase;
530
- if (!u) throw new Lf(r);
531
+ if (!u) throw new Nf(r);
531
532
  s[o] = {
532
533
  isBase: u,
533
534
  instance: r.address,
@@ -581,7 +582,7 @@ const P = class P extends hf {
581
582
  * @returns {Promise<{ hash: `0x${string}`; result: void; }>}
582
583
  */
583
584
  async claimIncentiveRaw(b, f, e, a, c) {
584
- const { request: d, result: n } = await x(
585
+ const { request: d, result: n } = await p(
585
586
  this._config,
586
587
  {
587
588
  ...h(
@@ -595,7 +596,7 @@ const P = class P extends hf {
595
596
  ...c
596
597
  }
597
598
  );
598
- return { hash: await M(this._config, d), result: n };
599
+ return { hash: await x(this._config, d), result: n };
599
600
  }
600
601
  /**
601
602
  * Claims one incentive for a given `Boost` on behalf of another user by `boostId` and `incentiveId`
@@ -636,7 +637,7 @@ const P = class P extends hf {
636
637
  * @returns {Promise<{ hash: Hex; result: void; }>}
637
638
  */
638
639
  async claimIncentiveForRaw(b, f, e, a, c, d) {
639
- const { request: n, result: i } = await T(
640
+ const { request: n, result: i } = await V(
640
641
  this._config,
641
642
  {
642
643
  ...h(
@@ -650,7 +651,7 @@ const P = class P extends hf {
650
651
  ...d
651
652
  }
652
653
  );
653
- return { hash: await V(this._config, n), result: i };
654
+ return { hash: await T(this._config, n), result: i };
654
655
  }
655
656
  /**
656
657
  * Get a Boost by index, will return the raw on chain representation of a Boost.
@@ -678,7 +679,7 @@ const P = class P extends hf {
678
679
  ...f
679
680
  });
680
681
  } catch (a) {
681
- throw (e = a == null ? void 0 : a.message) != null && e.includes("bounds") ? new Df(String(b)) : a;
682
+ throw (e = a == null ? void 0 : a.message) != null && e.includes("bounds") ? new Of(String(b)) : a;
682
683
  }
683
684
  }
684
685
  /**
@@ -700,11 +701,11 @@ const P = class P extends hf {
700
701
  }, [s, w, g, o, r] = await Promise.all([
701
702
  tf(i, n.action),
702
703
  uf(i, n.budget),
703
- Pf(i, n.validator),
704
+ Bf(i, n.validator),
704
705
  df(i, n.allowList),
705
706
  Promise.all(
706
707
  n.incentives.map(
707
- (u) => Cf(i, u)
708
+ (u) => If(i, u)
708
709
  )
709
710
  )
710
711
  ]);
@@ -770,7 +771,7 @@ const P = class P extends hf {
770
771
  * @returns {Promise<Address>}
771
772
  */
772
773
  async createBoostAuth(b) {
773
- return await U(this._config, {
774
+ return await W(this._config, {
774
775
  ...h(
775
776
  this._config,
776
777
  this.addresses,
@@ -822,7 +823,7 @@ const P = class P extends hf {
822
823
  ...f
823
824
  }
824
825
  );
825
- return { hash: await W(this._config, e), result: a };
826
+ return { hash: await U(this._config, e), result: a };
826
827
  }
827
828
  /**
828
829
  * Get the protocol fee.
@@ -937,7 +938,7 @@ const P = class P extends hf {
937
938
  async getClaimFromTransaction(b) {
938
939
  var a;
939
940
  const f = await ff(this._config, b);
940
- return (a = _({
941
+ return (a = P({
941
942
  abi: C,
942
943
  eventName: "BoostClaimed",
943
944
  logs: f.logs
@@ -968,7 +969,7 @@ const P = class P extends hf {
968
969
  */
969
970
  async calculateProtocolFee(b, f) {
970
971
  const e = await this.protocolFee(f);
971
- return b * e / Wf;
972
+ return b * e / Jf;
972
973
  }
973
974
  /**
974
975
  * Bound {@link PassthroughAuth} constructor that reuses the same configuration as the Boost Core instance.
@@ -1131,7 +1132,25 @@ const P = class P extends hf {
1131
1132
  * @returns {ManagedBudget}
1132
1133
  */
1133
1134
  ManagedBudget(b) {
1134
- return new lf(
1135
+ return new hf(
1136
+ { config: this._config, account: this._account },
1137
+ b
1138
+ );
1139
+ }
1140
+ /**
1141
+ * Bound {@link ManagedBudgetWithFees} constructor that reuses the same configuration as the Boost Core instance.
1142
+ * Prepends the BoostCore address to the authorized list because it's structurally critical to calculating payouts.
1143
+ *
1144
+ * @example
1145
+ * ```ts
1146
+ * const budget = core.ManagedBudgetWithFees('0x') // is roughly equivalent to
1147
+ * const budget = new ManagedBudgetWithFees({ config: core._config, account: core._account }, '0x')
1148
+ * ```
1149
+ * @param {DeployablePayloadOrAddress<ManagedBudgetWithFeesPayload>} options
1150
+ * @returns {ManagedBudgetWithFees}
1151
+ */
1152
+ ManagedBudgetWithFees(b) {
1153
+ return typeof b != "string" && (b.authorized = [this.assertValidAddress(), ...b.authorized], b.roles = [wf.MANAGER, ...b.roles]), new lf(
1135
1154
  { config: this._config, account: this._account },
1136
1155
  b
1137
1156
  );
@@ -1165,7 +1184,7 @@ const P = class P extends hf {
1165
1184
  * @returns {VestingBudget}
1166
1185
  */
1167
1186
  AllowListIncentive(b) {
1168
- return new gf(
1187
+ return new mf(
1169
1188
  { config: this._config, account: this._account },
1170
1189
  b
1171
1190
  );
@@ -1182,7 +1201,7 @@ const P = class P extends hf {
1182
1201
  * @returns {CGDAIncentive}
1183
1202
  */
1184
1203
  CGDAIncentive(b) {
1185
- return new wf(
1204
+ return new vf(
1186
1205
  { config: this._config, account: this._account },
1187
1206
  b
1188
1207
  );
@@ -1199,7 +1218,7 @@ const P = class P extends hf {
1199
1218
  * @returns {ERC20Incentive}
1200
1219
  */
1201
1220
  ERC20Incentive(b) {
1202
- return new mf(
1221
+ return new Cf(
1203
1222
  { config: this._config, account: this._account },
1204
1223
  b
1205
1224
  );
@@ -1235,7 +1254,7 @@ const P = class P extends hf {
1235
1254
  * @returns {PointsIncentive}
1236
1255
  */
1237
1256
  PointsIncentive(b) {
1238
- return new Af(
1257
+ return new yf(
1239
1258
  { config: this._config, account: this._account },
1240
1259
  b
1241
1260
  );
@@ -1253,7 +1272,7 @@ const P = class P extends hf {
1253
1272
  * @returns {SignerValidator}
1254
1273
  */
1255
1274
  SignerValidator(b, f) {
1256
- return new yf(
1275
+ return new Pf(
1257
1276
  { config: this._config, account: this._account },
1258
1277
  b,
1259
1278
  f
@@ -1272,7 +1291,7 @@ const P = class P extends hf {
1272
1291
  * @returns {LimitedSignerValidator}
1273
1292
  */
1274
1293
  LimitedSignerValidator(b, f) {
1275
- return new If(
1294
+ return new _f(
1276
1295
  { config: this._config, account: this._account },
1277
1296
  b,
1278
1297
  f
@@ -1291,7 +1310,7 @@ const P = class P extends hf {
1291
1310
  * @returns {ERC20VariableCrtieriaIncentive}
1292
1311
  * */
1293
1312
  ERC20VariableCriteriaIncentive(b, f) {
1294
- return new vf(
1313
+ return new Af(
1295
1314
  { config: this._config, account: this._account },
1296
1315
  b,
1297
1316
  f
@@ -1310,7 +1329,7 @@ const P = class P extends hf {
1310
1329
  * @returns {ERC20VariableIncentive}
1311
1330
  */
1312
1331
  ERC20VariableIncentive(b, f) {
1313
- return new Nf(
1332
+ return new Sf(
1314
1333
  { config: this._config, account: this._account },
1315
1334
  b,
1316
1335
  f
@@ -1331,19 +1350,19 @@ const P = class P extends hf {
1331
1350
  );
1332
1351
  return {
1333
1352
  abi: C,
1334
- bytecode: jf,
1353
+ bytecode: xf,
1335
1354
  args: e,
1336
1355
  ...this.optionallyAttachAccount(a.account)
1337
1356
  };
1338
1357
  }
1339
1358
  };
1340
- P.addresses = y;
1341
- let L = P;
1359
+ _.addresses = y;
1360
+ let L = _;
1342
1361
  export {
1343
- P0 as BOOST_CORE_ADDRESS,
1362
+ E0 as BOOST_CORE_ADDRESS,
1344
1363
  y as BOOST_CORE_ADDRESSES,
1345
1364
  L as BoostCore,
1346
- Wf as FEE_DENOMINATOR,
1365
+ Jf as FEE_DENOMINATOR,
1347
1366
  C as boostCoreAbi
1348
1367
  };
1349
1368
  //# sourceMappingURL=BoostCore.js.map