From fdf71944d976041701e7a1b6905d40c04de1f3df Mon Sep 17 00:00:00 2001 From: Yaroslav Khodakovskij Date: Fri, 29 Mar 2024 17:18:35 +0200 Subject: [PATCH 1/3] Import new cpl packages, simplify risk engine functionality --- packages/cli/src/actions.ts | 118 ----- packages/cli/src/cli.ts | 2 - packages/cli/src/groups/index.ts | 1 - packages/cli/src/groups/riskEngine.ts | 124 ----- packages/cli/src/logger.ts | 16 - packages/cli/tests/unit/riskEngine.spec.ts | 135 ----- packages/js/package.json | 14 +- .../rfqModule/operations/confirmResponse.ts | 8 - .../operations/finalizeRfqConstruction.ts | 4 - .../rfqModule/operations/respondToRfq.ts | 11 +- .../riskEngineModule/RiskEngineClient.ts | 68 --- .../riskEngineModule/RiskEnginePdasClient.ts | 24 - .../src/plugins/riskEngineModule/accounts.ts | 16 - .../js/src/plugins/riskEngineModule/cache.ts | 17 - .../clientCollateralCalculator.ts | 496 ------------------ .../src/plugins/riskEngineModule/constants.ts | 105 ---- .../src/plugins/riskEngineModule/helpers.ts | 42 -- .../js/src/plugins/riskEngineModule/index.ts | 3 - .../plugins/riskEngineModule/models/Config.ts | 90 ---- .../riskEngineModule/models/InstrumentType.ts | 46 -- .../plugins/riskEngineModule/models/index.ts | 1 - .../calculateCollateralForConfirmation.ts | 48 +- .../calculateCollateralForResponse.ts | 46 +- .../operations/calculateCollateralForRfq.ts | 77 +-- .../operations/closeConfig.ts | 130 ----- .../operations/fetchConfig.ts | 68 --- .../riskEngineModule/operations/index.ts | 6 - .../operations/initializeConfig.ts | 185 ------- .../operations/setInstrumentType.ts | 169 ------ .../operations/setRiskCategoriesInfo.ts | 152 ------ .../operations/updateConfig.ts | 186 ------- .../js/src/plugins/riskEngineModule/plugin.ts | 21 - .../js/src/plugins/riskEngineModule/types.ts | 1 - .../operations/confirmAndPrepareVault.ts | 4 - .../operations/createVault.ts | 44 +- packages/js/tests/unit/riskEngine.spec.ts | 107 ---- .../fixtures/accounts/risk-engine-config.json | 13 - .../programs/hxro_print_trade_provider.so | Bin 648832 -> 648784 bytes .../psyoptions_american_instrument.so | Bin 494104 -> 494104 bytes .../psyoptions_european_instrument.so | Bin 490000 -> 490000 bytes packages/validator/fixtures/programs/rfq.so | Bin 1004416 -> 1004416 bytes .../fixtures/programs/risk_engine.so | Bin 600608 -> 265624 bytes .../fixtures/programs/vault_operator.so | Bin 541472 -> 544608 bytes .../validator/fixtures/pubkey-naming.json | 1 - packages/validator/helpers.ts | 1 - yarn.lock | 213 ++++++-- 46 files changed, 223 insertions(+), 2590 deletions(-) delete mode 100644 packages/cli/src/groups/riskEngine.ts delete mode 100644 packages/cli/tests/unit/riskEngine.spec.ts delete mode 100644 packages/js/src/plugins/riskEngineModule/RiskEnginePdasClient.ts delete mode 100644 packages/js/src/plugins/riskEngineModule/accounts.ts delete mode 100644 packages/js/src/plugins/riskEngineModule/cache.ts delete mode 100644 packages/js/src/plugins/riskEngineModule/clientCollateralCalculator.ts delete mode 100644 packages/js/src/plugins/riskEngineModule/constants.ts delete mode 100644 packages/js/src/plugins/riskEngineModule/helpers.ts delete mode 100644 packages/js/src/plugins/riskEngineModule/models/Config.ts delete mode 100644 packages/js/src/plugins/riskEngineModule/operations/closeConfig.ts delete mode 100644 packages/js/src/plugins/riskEngineModule/operations/fetchConfig.ts delete mode 100644 packages/js/src/plugins/riskEngineModule/operations/initializeConfig.ts delete mode 100644 packages/js/src/plugins/riskEngineModule/operations/setInstrumentType.ts delete mode 100644 packages/js/src/plugins/riskEngineModule/operations/setRiskCategoriesInfo.ts delete mode 100644 packages/js/src/plugins/riskEngineModule/operations/updateConfig.ts delete mode 100644 packages/validator/fixtures/accounts/risk-engine-config.json diff --git a/packages/cli/src/actions.ts b/packages/cli/src/actions.ts index b5729e5c3..f738a4c7d 100644 --- a/packages/cli/src/actions.ts +++ b/packages/cli/src/actions.ts @@ -1,8 +1,6 @@ import { PublicKey, LAMPORTS_PER_SOL } from '@solana/web3.js'; import { token, - toRiskCategoryInfo, - toScenario, devnetAirdrops, PriceOracle, SpotLegInstrument, @@ -33,7 +31,6 @@ import { logTx, logError, logTokenAccount, - logRiskEngineConfig, logRegisteredMint, logCollateral, logToken, @@ -497,121 +494,6 @@ export const getCollateral = async (opts: Opts) => { } }; -// Risk engine - -export const initializeRiskEngine = async (opts: Opts) => { - const cvg = await createCvg(opts); - try { - const { response } = await expirationRetry( - () => - cvg.riskEngine().initializeConfig({ - collateralMintDecimals: opts.collateralMintDecimals, - minCollateralRequirement: opts.minCollateralRequirement, - collateralForFixedQuoteAmountRfqCreation: - opts.collateralForFixedQuoteAmountRfqCreation, - safetyPriceShiftFactor: opts.safetyPriceShiftFactor, - overallSafetyFactor: opts.overallSafetyFace, - acceptedOracleStaleness: opts.acceptedOracleStaleness, - acceptedOracleConfidenceIntervalPortion: - opts.acceptedOracleConfidenceIntervalPortion, - }), - opts - ); - logResponse(response); - } catch (e) { - logError(e); - } -}; - -export const updateRiskEngine = async (opts: Opts) => { - const cvg = await createCvg(opts); - try { - const { response } = await expirationRetry( - () => - cvg.riskEngine().updateConfig({ - collateralMintDecimals: opts.collateralMintDecimals, - minCollateralRequirement: opts.minCollateralRequirement, - collateralForFixedQuoteAmountRfqCreation: - opts.collateralForFixedQuoteAmountRfqCreation, - safetyPriceShiftFactor: opts.safetyPriceShiftFactor, - overallSafetyFactor: opts.overallSafetyFace, - acceptedOracleStaleness: opts.acceptedOracleStaleness, - acceptedOracleConfidenceIntervalPortion: - opts.acceptedOracleConfidenceIntervalPortion, - }), - opts - ); - logResponse(response); - } catch (e) { - logError(e); - } -}; -export const closeRiskEngine = async (opts: Opts) => { - const cvg = await createCvg(opts); - try { - const { response } = await cvg.riskEngine().closeConfig(); - logResponse(response); - } catch (e) { - logError(e); - } -}; - -export const getRiskEngineConfig = async (opts: Opts) => { - const cvg = await createCvg(opts); - try { - const config = await cvg.riskEngine().fetchConfig(); - logRiskEngineConfig(config); - } catch (e) { - logError(e); - } -}; - -export const setRiskEngineInstrumentType = async (opts: Opts) => { - const cvg = await createCvg(opts); - try { - const { response } = await expirationRetry( - () => - cvg.riskEngine().setInstrumentType({ - instrumentProgram: new PublicKey(opts.program), - instrumentType: opts.type, - }), - opts - ); - logResponse(response); - } catch (e) { - logError(e); - } -}; - -export const setRiskEngineCategoriesInfo = async (opts: Opts) => { - const newValue = opts.newValue.split(',').map((x: string) => parseFloat(x)); - const cvg = await createCvg(opts); - try { - const { response } = await expirationRetry( - () => - cvg.riskEngine().setRiskCategoriesInfo({ - changes: [ - { - value: toRiskCategoryInfo(newValue[0], newValue[1], [ - toScenario(newValue[2], newValue[3]), - toScenario(newValue[4], newValue[5]), - toScenario(newValue[6], newValue[7]), - toScenario(newValue[8], newValue[9]), - toScenario(newValue[10], newValue[11]), - toScenario(newValue[12], newValue[13]), - ]), - category: opts.category, - }, - ], - }), - opts - ); - logResponse(response); - } catch (e) { - logError(e); - } -}; - // Devnet and localnet helpers export const airdrop = async (opts: Opts) => { diff --git a/packages/cli/src/cli.ts b/packages/cli/src/cli.ts index 860f86830..32f3abd85 100644 --- a/packages/cli/src/cli.ts +++ b/packages/cli/src/cli.ts @@ -1,7 +1,6 @@ import { Command } from 'commander'; import { - riskEngineGroup, protocolGroup, collateralGroup, airdropGroup, @@ -16,7 +15,6 @@ export const makeCli = (): Command => { airdropGroup, tokenGroup, protocolGroup, - riskEngineGroup, collateralGroup, rfqGroup, hxroGroup, diff --git a/packages/cli/src/groups/index.ts b/packages/cli/src/groups/index.ts index ca0333b87..59d765cc6 100644 --- a/packages/cli/src/groups/index.ts +++ b/packages/cli/src/groups/index.ts @@ -2,7 +2,6 @@ export * from './airdrop'; export * from './collateral'; export * from './protocol'; export * from './rfq'; -export * from './riskEngine'; export * from './token'; export * from './hxro'; export * from './spotInstrument'; diff --git a/packages/cli/src/groups/riskEngine.ts b/packages/cli/src/groups/riskEngine.ts deleted file mode 100644 index ea48d065a..000000000 --- a/packages/cli/src/groups/riskEngine.ts +++ /dev/null @@ -1,124 +0,0 @@ -import { Command } from 'commander'; - -import { - initializeRiskEngine, - getRiskEngineConfig, - updateRiskEngine, - setRiskEngineInstrumentType, - setRiskEngineCategoriesInfo, - closeRiskEngine, -} from '../actions'; -import { addCmd } from '../helpers'; - -const riskEngineOptions = [ - { - flags: '--collateral-mint-decimals ', - description: 'collateral decimals', - defaultValue: '6', - }, - { - flags: '--min-collateral-requirement ', - description: 'collateral for fixed quote amount RFQ creation', - defaultValue: '10000000', - }, - { - flags: '--collateral-for-variable-size-rfq-creation ', - description: 'collateral for variable size RFQ creation', - defaultValue: '10000000', - }, - { - flags: '--collateral-for-fixed-quote-amount-rfq-creation ', - description: 'collateral for fixed quote amount RFQ creation', - defaultValue: '10000000', - }, - { - flags: '--safety-price-shift-factor ', - description: 'safety price shift factor', - defaultValue: '0.01', - }, - { - flags: '--overall-safety-factor ', - description: 'overall safety factor', - defaultValue: '0.1', - }, - { - flags: '--accepted-oracle-staleness ', - description: 'accepted oracle staleness', - defaultValue: '300', - }, - { - flags: '--accepted-oracle-confidence-interval-portion ', - description: 'accepted oracle confidence interval portion', - defaultValue: '0.1', - }, -]; - -const initializeCmd = (c: Command) => - addCmd( - c, - 'initialize', - 'initializes risk engine', - initializeRiskEngine, - riskEngineOptions - ); - -const closeCmd = (c: Command) => - addCmd(c, 'close', 'closes risk engine', closeRiskEngine); - -const updateCmd = (c: Command) => - addCmd( - c, - 'update', - 'updates risk engine', - updateRiskEngine, - riskEngineOptions - ); - -const setInstrumentTypeCmd = (c: Command) => - addCmd( - c, - 'set-instrument-type', - 'sets risk engine instrument type', - setRiskEngineInstrumentType, - [ - { - flags: '--type ', - description: 'instrument type', - }, - { - flags: '--program ', - description: 'instrument program', - }, - ] - ); - -const setCategoriesInfoCmd = (c: Command) => - addCmd( - c, - 'set-risk-categories-info', - 'sets risk engine risk categories info', - setRiskEngineCategoriesInfo, - [ - { - flags: '--category ', - description: 'category', - }, - { - flags: '--new-value ', - description: 'new value', - }, - ] - ); - -const getCmd = (c: Command) => - addCmd(c, 'get', 'gets risk engine config', getRiskEngineConfig); - -export const riskEngineGroup = (c: Command) => { - const group = c.command('risk-engine'); - initializeCmd(group); - closeCmd(group); - updateCmd(group); - setInstrumentTypeCmd(group); - setCategoriesInfoCmd(group); - getCmd(group); -}; diff --git a/packages/cli/src/logger.ts b/packages/cli/src/logger.ts index daa85a652..505cea445 100644 --- a/packages/cli/src/logger.ts +++ b/packages/cli/src/logger.ts @@ -120,22 +120,6 @@ export const logProtocol = (p: Protocol): void => { }); }; -export const logRiskEngineConfig = (r: any): void => { - l('Address:', r.address.toString()); - l( - 'Minimal collateral requirement:', - N(r.minCollateralRequirement.toString()) - ); - l( - 'Collateral for fixed quote amount RFQ creation:', - N(r.collateralForFixedQuoteAmountRfqCreation.toString()) - ); - l('Collateral mint decimals:', N(r.collateralMintDecimals.toString())); - l('Safety price shift factor:', N(r.safetyPriceShiftFactor.toString())); - l('Overall safety factor:', r.overallSafetyFactor); - r.riskCategoriesInfo.map(logRiskCategoryInfo); -}; - export const logRiskCategoryInfo = (c: any): void => { const formatRatio = (x: any) => { return [x.baseAssetPriceChange, x.volatilityChange].join('/'); diff --git a/packages/cli/tests/unit/riskEngine.spec.ts b/packages/cli/tests/unit/riskEngine.spec.ts deleted file mode 100644 index 71b1c8188..000000000 --- a/packages/cli/tests/unit/riskEngine.spec.ts +++ /dev/null @@ -1,135 +0,0 @@ -import { expect } from 'expect'; -import sinon, { SinonStub } from 'sinon'; -import { PROGRAM_ADDRESS as SPOT_INSTRUMENT } from '@convergence-rfq/spot-instrument'; -import { PROGRAM_ADDRESS as PSYOPTIONS_AMERICAN_INSTRUMENT } from '@convergence-rfq/psyoptions-american-instrument'; -import { PROGRAM_ADDRESS as PSYOPTIONS_EUROPEAN_INSTRUMENT } from '@convergence-rfq/psyoptions-european-instrument'; - -import { ADDRESS_LABEL, TX_LABEL, runCli } from '../helpers'; - -describe('unit.riskEngine', () => { - let stub: SinonStub; - - beforeEach(() => { - stub = sinon.stub(console, 'log'); - }); - - afterEach(() => { - stub.restore(); - }); - - it('get', async () => { - await runCli(['risk-engine', 'get']); - expect(stub.args[0][0]).toEqual(ADDRESS_LABEL); - }); - - it('update', async () => { - await runCli(['risk-engine', 'update']); - expect(stub.args[0][0]).toEqual(TX_LABEL); - }); - - it('close', async () => { - await runCli(['risk-engine', 'close']); - expect(stub.args[0][0]).toEqual(TX_LABEL); - }); - - it('initialize', async () => { - await runCli(['risk-engine', 'initialize']); - expect(stub.args[0][0]).toEqual(TX_LABEL); - }); - - it('set-instrument-type [spot]', async () => { - await runCli([ - 'risk-engine', - 'set-instrument-type', - '--program', - SPOT_INSTRUMENT, - '--type', - 'spot', - ]); - expect(stub.args[0][0]).toEqual(TX_LABEL); - }); - - it('set-instrument-type [psyoptions european]', async () => { - await runCli([ - 'risk-engine', - 'set-instrument-type', - '--program', - PSYOPTIONS_EUROPEAN_INSTRUMENT, - '--type', - 'option', - ]); - expect(stub.args[0][0]).toEqual(TX_LABEL); - }); - - it('set-instrument-type [psyoptions american]', async () => { - await runCli([ - 'risk-engine', - 'set-instrument-type', - '--program', - PSYOPTIONS_AMERICAN_INSTRUMENT, - '--type', - 'option', - ]); - expect(stub.args[0][0]).toEqual(TX_LABEL); - }); - - it('set-risk-categories-info [very low]', async () => { - await runCli([ - 'risk-engine', - 'set-risk-categories-info', - '--category', - 'very-low', - '--new-value', - '0,0,0,0,0,0,0,0,0,0,0,0,0,0', - ]); - expect(stub.args[0][0]).toEqual(TX_LABEL); - }); - - it('set-risk-categories-info [low]', async () => { - await runCli([ - 'risk-engine', - 'set-risk-categories-info', - '--category', - 'low', - '--new-value', - '0,0,0,0,0,0,0,0,0,0,0,0,0,0', - ]); - expect(stub.args[0][0]).toEqual(TX_LABEL); - }); - - it('set-risk-categories-info [medium]', async () => { - await runCli([ - 'risk-engine', - 'set-risk-categories-info', - '--category', - 'medium', - '--new-value', - '0,0,0,0,0,0,0,0,0,0,0,0,0,0', - ]); - expect(stub.args[0][0]).toEqual(TX_LABEL); - }); - - it('set-risk-categories-info [high]', async () => { - await runCli([ - 'risk-engine', - 'set-risk-categories-info', - '--category', - 'high', - '--new-value', - '0,0,0,0,0,0,0,0,0,0,0,0,0,0', - ]); - expect(stub.args[0][0]).toEqual(TX_LABEL); - }); - - it('set-risk-categories-info [very high]', async () => { - await runCli([ - 'risk-engine', - 'set-risk-categories-info', - '--category', - 'very-high', - '--new-value', - '0,0,0,0,0,0,0,0,0,0,0,0,0,0', - ]); - expect(stub.args[0][0]).toEqual(TX_LABEL); - }); -}); diff --git a/packages/js/package.json b/packages/js/package.json index 6edede2df..53398e8d2 100644 --- a/packages/js/package.json +++ b/packages/js/package.json @@ -52,13 +52,13 @@ "@bundlr-network/client": "^0.8.8", "@convergence-rfq/beet": "0.7.10", "@convergence-rfq/beet-solana": "0.4.11", - "@convergence-rfq/hxro-print-trade-provider": "3.9.0", - "@convergence-rfq/psyoptions-american-instrument": "3.9.0", - "@convergence-rfq/psyoptions-european-instrument": "3.9.0", - "@convergence-rfq/rfq": "3.9.0", - "@convergence-rfq/risk-engine": "3.9.0", - "@convergence-rfq/spot-instrument": "3.9.0", - "@convergence-rfq/vault-operator": "^3.9.0", + "@convergence-rfq/hxro-print-trade-provider": "3.10.0", + "@convergence-rfq/psyoptions-american-instrument": "3.10.0", + "@convergence-rfq/psyoptions-european-instrument": "3.10.0", + "@convergence-rfq/rfq": "3.10.0", + "@convergence-rfq/risk-engine": "3.10.0", + "@convergence-rfq/spot-instrument": "3.10.0", + "@convergence-rfq/vault-operator": "^3.10.0", "@coral-xyz/anchor": "^0.28.0", "@coral-xyz/borsh": "^0.28.0", "@hxronetwork/dexterity-ts": "1.6.16", diff --git a/packages/js/src/plugins/rfqModule/operations/confirmResponse.ts b/packages/js/src/plugins/rfqModule/operations/confirmResponse.ts index 3aae5831b..c5f8b2f28 100644 --- a/packages/js/src/plugins/rfqModule/operations/confirmResponse.ts +++ b/packages/js/src/plugins/rfqModule/operations/confirmResponse.ts @@ -17,7 +17,6 @@ import { import { Response } from '../models'; import { ResponseSide, toSolitaQuoteSide } from '../models/ResponseSide'; import { toSolitaOverrideLegMultiplierBps } from '../models/Confirmation'; -import { getRiskEngineAccounts } from '@/plugins/riskEngineModule/helpers'; const Key = 'ConfirmResponseOperation' as const; @@ -201,12 +200,6 @@ export const confirmResponseBuilder = async ( programs, }); - const rfqModel = await convergence.rfqs().findRfqByAddress({ address: rfq }); - const riskEngineAccounts = await getRiskEngineAccounts( - convergence, - rfqModel.legs - ); - return TransactionBuilder.make() .setFeePayer(payer) .add( @@ -227,7 +220,6 @@ export const confirmResponseBuilder = async ( taker: taker.publicKey, protocol: convergence.protocol().pdas().protocol(), riskEngine: convergence.programs().getRiskEngine(programs).address, - anchorRemainingAccounts: riskEngineAccounts, }, { side: toSolitaQuoteSide(side), diff --git a/packages/js/src/plugins/rfqModule/operations/finalizeRfqConstruction.ts b/packages/js/src/plugins/rfqModule/operations/finalizeRfqConstruction.ts index 23ed3a7b3..d287c82ad 100644 --- a/packages/js/src/plugins/rfqModule/operations/finalizeRfqConstruction.ts +++ b/packages/js/src/plugins/rfqModule/operations/finalizeRfqConstruction.ts @@ -17,7 +17,6 @@ import { } from '../../../types'; import { Convergence } from '../../../Convergence'; import { LegInstrument } from '@/plugins/instrumentModule'; -import { getRiskEngineAccounts } from '@/plugins/riskEngineModule/helpers'; import { PrintTradeLeg } from '@/plugins/printTradeModule'; const Key = 'FinalizeRfqConstructionOperation' as const; @@ -198,8 +197,6 @@ export const finalizeRfqConstructionBuilder = async ( collateralInfo = collateralInfo ?? collateralInfoPda; collateralToken = collateralToken ?? collateralTokenPda; - const riskEngineAccounts = await getRiskEngineAccounts(convergence, legs); - const protocol = convergence.protocol().pdas().protocol(); return TransactionBuilder.make() @@ -223,7 +220,6 @@ export const finalizeRfqConstructionBuilder = async ( collateralInfo, collateralToken, riskEngine, - anchorRemainingAccounts: riskEngineAccounts, }, rfqProgram.address ), diff --git a/packages/js/src/plugins/rfqModule/operations/respondToRfq.ts b/packages/js/src/plugins/rfqModule/operations/respondToRfq.ts index 4761f477d..3dd4d8b30 100644 --- a/packages/js/src/plugins/rfqModule/operations/respondToRfq.ts +++ b/packages/js/src/plugins/rfqModule/operations/respondToRfq.ts @@ -18,7 +18,6 @@ import { import { Quote, Rfq } from '../models'; import { toSolitaQuote } from '../models/Quote'; import { rfqProgram } from '../program'; -import { getRiskEngineAccounts } from '@/plugins/riskEngineModule/helpers'; import { convertTimestampToSeconds } from '@/utils'; import { AdditionalResponseData, @@ -275,11 +274,6 @@ export const respondToRfqBuilder = async ( rfqModel ); - const riskEngineAccounts = await getRiskEngineAccounts( - convergence, - rfqModel.legs - ); - const defaultPubkey = PublicKey.default; const whitelist = rfqModel.whitelist.toBase58() !== defaultPubkey.toBase58() @@ -322,10 +316,7 @@ export const respondToRfqBuilder = async ( riskEngine, whitelist, maker: maker.publicKey, - anchorRemainingAccounts: [ - ...validateResponseAccounts, - ...riskEngineAccounts, - ], + anchorRemainingAccounts: validateResponseAccounts, }, { bid: bid && toSolitaQuote(bid, rfqModel.quoteAsset.getDecimals()), diff --git a/packages/js/src/plugins/riskEngineModule/RiskEngineClient.ts b/packages/js/src/plugins/riskEngineModule/RiskEngineClient.ts index a5b877fac..55648560b 100644 --- a/packages/js/src/plugins/riskEngineModule/RiskEngineClient.ts +++ b/packages/js/src/plugins/riskEngineModule/RiskEngineClient.ts @@ -1,23 +1,11 @@ import { - initializeConfigOperation, - InitializeConfigInput, - updateConfigOperation, - UpdateConfigInput, - SetInstrumentTypeInput, - setInstrumentTypeOperation, calculateCollateralForConfirmationOperation, calculateCollateralForResponseOperation, calculateCollateralForRfqOperation, CalculateCollateralForConfirmationInput, CalculateCollateralForRfqInput, CalculateCollateralForResponseInput, - setRiskCategoriesInfoOperation, - SetRiskCategoriesInfoInput, - fetchConfigOperation, - CloseConfigInput, - closeConfigOperation, } from './operations'; -import { RiskEnginePdasClient } from './RiskEnginePdasClient'; import type { Convergence } from '@/Convergence'; import { OperationOptions } from '@/types'; @@ -36,55 +24,6 @@ import { OperationOptions } from '@/types'; export class RiskEngineClient { constructor(protected readonly convergence: Convergence) {} - /** - * You may use the `pdas()` client to build PDAs related to this module. - * - * ```ts - * const pdasClient = convergence.riskEngine().pdas(); - * ``` - */ - pdas() { - return new RiskEnginePdasClient(this.convergence); - } - - /** {@inheritDoc initializeConfig} */ - initializeConfig(input?: InitializeConfigInput, options?: OperationOptions) { - return this.convergence - .operations() - .execute(initializeConfigOperation(input), options); - } - - /** {@inheritDoc updateConfig} */ - updateConfig(input?: UpdateConfigInput, options?: OperationOptions) { - return this.convergence - .operations() - .execute(updateConfigOperation(input), options); - } - - /** {@inheritDoc closeConfig} */ - closeConfig(input?: CloseConfigInput, options?: OperationOptions) { - return this.convergence - .operations() - .execute(closeConfigOperation(input), options); - } - - /** {@inheritDoc setInstrumentTypeOperation} */ - setInstrumentType(input: SetInstrumentTypeInput, options?: OperationOptions) { - return this.convergence - .operations() - .execute(setInstrumentTypeOperation(input), options); - } - - /** {@inheritDoc setRiskCategoriesInfoOperation} */ - setRiskCategoriesInfo( - input: SetRiskCategoriesInfoInput, - options?: OperationOptions - ) { - return this.convergence - .operations() - .execute(setRiskCategoriesInfoOperation(input), options); - } - /** {@inheritDoc calculateCollateralForRfq} */ calculateCollateralForRfq( input: CalculateCollateralForRfqInput, @@ -114,11 +53,4 @@ export class RiskEngineClient { .operations() .execute(calculateCollateralForConfirmationOperation(input), options); } - - /** {@inheritDoc fetchConfig} */ - fetchConfig(options?: OperationOptions) { - return this.convergence - .operations() - .execute(fetchConfigOperation({}), options); - } } diff --git a/packages/js/src/plugins/riskEngineModule/RiskEnginePdasClient.ts b/packages/js/src/plugins/riskEngineModule/RiskEnginePdasClient.ts deleted file mode 100644 index e6c30ff06..000000000 --- a/packages/js/src/plugins/riskEngineModule/RiskEnginePdasClient.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Buffer } from 'buffer'; - -import type { Convergence } from '../../Convergence'; -import { Pda, Program } from '../../types'; - -/** - * This client allows you to build PDAs related to the protocol module. - * - * @see {@link RiskEnginePdasClient} - * @group Module Pdas - */ -export class RiskEnginePdasClient { - constructor(protected readonly convergence: Convergence) {} - - /** Finds the Config PDA. */ - config(): Pda { - const programId = this.programId(); - return Pda.find(programId, [Buffer.from('config', 'utf8')]); - } - - private programId(programs?: Program[]) { - return this.convergence.programs().getRiskEngine(programs).address; - } -} diff --git a/packages/js/src/plugins/riskEngineModule/accounts.ts b/packages/js/src/plugins/riskEngineModule/accounts.ts deleted file mode 100644 index e34e14898..000000000 --- a/packages/js/src/plugins/riskEngineModule/accounts.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { Config } from '@convergence-rfq/risk-engine'; - -import { - Account, - getAccountParsingAndAssertingFunction, - getAccountParsingFunction, -} from '../../types'; - -/** @group Accounts */ -export type ConfigAccount = Account; - -/** @group Account Helpers */ -export const parseConfigAccount = getAccountParsingFunction(Config); - -/** @group Account Helpers */ -export const toConfigAccount = getAccountParsingAndAssertingFunction(Config); diff --git a/packages/js/src/plugins/riskEngineModule/cache.ts b/packages/js/src/plugins/riskEngineModule/cache.ts deleted file mode 100644 index 82b496118..000000000 --- a/packages/js/src/plugins/riskEngineModule/cache.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Convergence } from '../../Convergence'; -import { useCache } from '../../utils'; -import { toConfigAccount } from './accounts'; -import { assertConfig, toConfig } from './models'; - -export const riskEngineConfigCache = useCache( - async (cvg: Convergence, commitment = 'confirmed') => { - const account = await cvg - .rpc() - .getAccount(cvg.riskEngine().pdas().config(), commitment); - - const config = toConfig(toConfigAccount(account)); - assertConfig(config); - - return config; - } -); diff --git a/packages/js/src/plugins/riskEngineModule/clientCollateralCalculator.ts b/packages/js/src/plugins/riskEngineModule/clientCollateralCalculator.ts deleted file mode 100644 index b35d56865..000000000 --- a/packages/js/src/plugins/riskEngineModule/clientCollateralCalculator.ts +++ /dev/null @@ -1,496 +0,0 @@ -import { RiskCategory } from '@convergence-rfq/rfq'; -import { - futureCommonDataBeet, - optionCommonDataBeet, - OptionType, - RiskCategoryInfo, - Scenario, -} from '@convergence-rfq/risk-engine'; -import { Commitment, PublicKey } from '@solana/web3.js'; -// @ts-ignore this package is missing type declarations -import { blackScholes } from 'black-scholes'; - -import { Convergence } from '../../Convergence'; -import { toPriceOracle, toSolitaRiskCategory } from '../protocolModule'; -import { LegInstrument } from '../instrumentModule'; -import { AuthoritySide } from '../rfqModule/models/AuthoritySide'; -import { PrintTradeLeg } from '../printTradeModule'; -import { ResponseSide } from '../rfqModule'; -import { AggregatorAccount } from './switchboard/aggregatorAccount'; -import { AggregatorAccountData } from './switchboard/types/aggregatorAccountData'; -import { Config, InstrumentType } from './models'; -import { - FUTURE_UNDERLYING_AMOUNT_PER_CONTRACT_DECIMALS, - SETTLEMENT_WINDOW_BREAKPOINS, - SETTLEMENT_WINDOW_PEDIODS, -} from './constants'; -import { removeDecimals } from '@/utils/conversions'; - -export type CalculationCase = { - legsMultiplier: number; - authoritySide: AuthoritySide; - quoteSide: ResponseSide; -}; - -type PortfolioStatistics = { - maxLoss: number; - maxProfit: number; -}; - -type BaseAssetStatistics = { - biggestLoss: number; - biggestProfit: number; - absoluteValueOfLegs: number; -}; - -type BaseAssetInfo = { - index: number; - riskCategory: RiskCategory; - price: number; -}; - -type LegInfo = { - baseAssetIndex: number; - amount: number; - instrumentType: InstrumentType; - data: Buffer; -}; - -export async function calculateRisk( - convergence: Convergence, - config: Config, - legs: LegInstrument[] | PrintTradeLeg[], - cases: CalculationCase[], - settlementPeriod: number, - commitment?: Commitment -) { - const baseAssetIds = new Set( - legs.map((leg) => leg.getBaseAssetIndex().value) - ); // select unique base asset ids - const baseAssetInfos = await Promise.all( - Array.from(baseAssetIds).map((id) => - fetchBaseAssetInfo(convergence, id, commitment) - ) - ); - - const legInfos: LegInfo[] = legs.map((leg) => { - let amount = leg.getAmount(); - if (leg.getSide() == 'long') { - amount = -amount; - } - - let assetType: InstrumentType; - if (leg.legType === 'printTrade') { - assetType = leg.getInstrumentType(); - } else { - const escrowAssetType = config.instrumentTypes[leg.getInstrumentIndex()]; - if (escrowAssetType === null) { - throw new Error( - `Instrument index ${leg.getInstrumentIndex()} is not registered in the risk engine` - ); - } - - if (escrowAssetType === undefined) { - throw Error( - `Instrument ${leg - .getProgramId() - .toString()} is missing from risk engine config!` - ); - } - - assetType = escrowAssetType; - } - - return { - baseAssetIndex: leg.getBaseAssetIndex().value, - amount, - instrumentType: assetType, - data: Buffer.from(leg.serializeInstrumentData()), - }; - }); - - const statistics = calculatePortfolioStatistics( - legInfos, - config, - baseAssetInfos, - settlementPeriod - ); - - const results: number[] = []; - for (const calculationCase of cases) { - results.push(calculateRiskInner(statistics, calculationCase, config)); - } - - return results; -} - -function calculateRiskInner( - statistics: PortfolioStatistics, - calculationCase: CalculationCase, - config: Config -): number { - let portfolioInverted = false; - - if (calculationCase.quoteSide.hasOwnProperty('bid')) { - portfolioInverted = !portfolioInverted; - } - - if (calculationCase.authoritySide.hasOwnProperty('taker')) { - portfolioInverted = !portfolioInverted; - } - - let portfolioRisk = portfolioInverted - ? statistics.maxProfit - : statistics.maxLoss; - portfolioRisk = Math.max(portfolioRisk, 0); // risk can't be lower that 0 - - return Math.max( - portfolioRisk * calculationCase.legsMultiplier, - removeDecimals( - config.minCollateralRequirement, - Number(config.collateralMintDecimals) - ) - ); -} - -async function fetchBaseAssetInfo( - convergence: Convergence, - baseAssetIndex: number, - commitment?: Commitment -): Promise { - const address = convergence - .protocol() - .pdas() - .baseAsset({ index: baseAssetIndex }); - const baseAsset = await convergence - .protocol() - .findBaseAssetByAddress({ address }); - const priceOracle = toPriceOracle(baseAsset); - - let price: number; - - if (priceOracle.price !== undefined) { - price = priceOracle.price; - } else { - if (priceOracle.address === undefined) { - throw Error('Price oracle address is missing'); - } - price = await fetchLatestOraclePrice( - convergence, - priceOracle.address, - commitment - ); - } - - return { - index: baseAssetIndex, - riskCategory: toSolitaRiskCategory(baseAsset.riskCategory), - price, - }; -} - -async function fetchLatestOraclePrice( - convergence: Convergence, - aggregatorPubkey: PublicKey, - commitment?: Commitment -) { - // TODO: Use retry method - const aggregatorAccount = await convergence.connection.getAccountInfo( - aggregatorPubkey, - commitment - ); - - if (aggregatorAccount === null) { - throw Error( - `Expected price aggregator at address ${aggregatorPubkey}, but the account is missing` - ); - } - - const aggregatorData = AggregatorAccountData.decode(aggregatorAccount.data); - const decodedPrice = AggregatorAccount.decodeLatestValue(aggregatorData); - - if (decodedPrice === null) { - throw Error( - `Price from the aggregator at address ${aggregatorPubkey} can't be parsed!` - ); - } - - return decodedPrice.toNumber(); -} - -function calculatePortfolioStatistics( - legs: LegInfo[], - config: Config, - baseAssetInfos: BaseAssetInfo[], - settlementPeriod: number -): PortfolioStatistics { - let allProfits = 0.0; - let allLosses = 0.0; - let totalLegValues = 0.0; - - for (const baseAsset of baseAssetInfos) { - const { biggestLoss, biggestProfit, absoluteValueOfLegs } = - calculateStatisticsForBaseAsset( - legs, - config, - baseAsset, - settlementPeriod - ); - - allProfits += biggestProfit; - allLosses -= biggestLoss; - totalLegValues += absoluteValueOfLegs; - } - - const priceShift = totalLegValues * config.safetyPriceShiftFactor; - - allProfits += priceShift; - allLosses += priceShift; - allProfits = applyOverallRiskFactor(allProfits, config); - allLosses = applyOverallRiskFactor(allLosses, config); - - return { - maxLoss: allLosses, - maxProfit: allProfits, - }; -} - -function applyOverallRiskFactor(value: number, config: Config): number { - return value * (config.overallSafetyFactor + 1.0); -} - -function calculateStatisticsForBaseAsset( - allLegs: LegInfo[], - config: Config, - baseAssetInfo: BaseAssetInfo, - settlementPeriod: number -): BaseAssetStatistics { - const legs = allLegs.filter( - (leg) => leg.baseAssetIndex == baseAssetInfo.index - ); - const riskCategoryInfo = - config.riskCategoriesInfo[baseAssetInfo.riskCategory]; - - const legValues = legs.map((leg) => - calculateCurrentValue(leg, baseAssetInfo.price, riskCategoryInfo) - ); - const scenarios = selectScenarios(legs, riskCategoryInfo, settlementPeriod); - - let biggestProfit = Number.MIN_VALUE; - let biggestLoss = Number.MAX_VALUE; - for (const scenario of scenarios) { - const pnl = calculateScenario( - legs, - legValues, - scenario, - baseAssetInfo.price, - riskCategoryInfo - ); - - biggestProfit = Math.max(biggestProfit, pnl); - biggestLoss = Math.min(biggestLoss, pnl); - } - - const absoluteValueOfLegs = legValues - .map((value) => Math.abs(value)) - .reduce((x, y) => x + y, 0); - - return { - biggestProfit, - biggestLoss, - absoluteValueOfLegs, - }; -} - -function calculateCurrentValue( - leg: LegInfo, - price: number, - riskCategoryInfo: RiskCategoryInfo -) { - return calculateAssetValue( - leg, - price, - riskCategoryInfo.annualized30DayVolatility, - riskCategoryInfo.interestRate - ); -} - -function calculateAssetValue( - leg: LegInfo, - price: number, - annualized30DayVolatility: number, - interestRate: number -): number { - const unitValue = calculateAssetUnitValue( - leg, - price, - annualized30DayVolatility, - interestRate - ); - - return unitValue * leg.amount; -} - -function calculateAssetUnitValue( - leg: LegInfo, - price: number, - annualized30DayVolatility: number, - interestRate: number -): number { - switch (leg.instrumentType) { - case 'spot': - return price; - case 'term-future': - case 'perp-future': - const [futureCommonData] = futureCommonDataBeet.deserialize(leg.data); - const amountPerContract = - Number(futureCommonData.underlyingAmountPerContract) / - 10 ** FUTURE_UNDERLYING_AMOUNT_PER_CONTRACT_DECIMALS; - return price * amountPerContract; - case 'option': - const [optionCommonData] = optionCommonDataBeet.deserialize(leg.data); - const optionType = - optionCommonData.optionType == OptionType.Call ? 'call' : 'put'; - - const underlyingAmountPerContract = - Number(optionCommonData.underlyingAmountPerContract) / - 10 ** optionCommonData.underlyingAmountPerContractDecimals; - - const strikePrice = - Number(optionCommonData.strikePrice) / - 10 ** optionCommonData.strikePriceDecimals; - - const expirationTimestamp = Number(optionCommonData.expirationTimestamp); - - const currentTimestamp = Math.floor(Date.now() / 1000); - const secondsTillExpiration = Math.max( - 0, - expirationTimestamp - currentTimestamp - ); - const secondsInYear = 365 * 24 * 60 * 60; - const yearsTillExpiration = secondsTillExpiration / secondsInYear; - - const optionPrice = blackScholes( - price, - strikePrice, - yearsTillExpiration, - annualized30DayVolatility, - interestRate, - optionType - ); - - return optionPrice * underlyingAmountPerContract; - } -} - -function selectScenarios( - legs: LegInfo[], - riskCategoryInfo: RiskCategoryInfo, - settlementPeriod: number -): Scenario[] { - const haveOptionLegs = - legs.filter((leg) => leg.instrumentType === 'option').length > 0; - - const getScenarioIndex = (settlementPeriod: number) => { - for (let i = 0; i < SETTLEMENT_WINDOW_BREAKPOINS.length; i++) { - const breakpoint = SETTLEMENT_WINDOW_BREAKPOINS[i]; - if (settlementPeriod < breakpoint) { - return i; - } - } - - return SETTLEMENT_WINDOW_PEDIODS - 1; - }; - - const scenarioIndex = getScenarioIndex(settlementPeriod); - const baseScenario = - riskCategoryInfo.scenarioPerSettlementPeriod[scenarioIndex]; - - const scenarioConstructor = ( - baseAssetPriceChange: number, - volatilityChange: number - ) => { - return { baseAssetPriceChange, volatilityChange }; - }; - - if (haveOptionLegs) { - return [ - baseScenario, - scenarioConstructor( - baseScenario.baseAssetPriceChange, - -baseScenario.volatilityChange - ), - scenarioConstructor( - -baseScenario.baseAssetPriceChange, - baseScenario.volatilityChange - ), - scenarioConstructor( - -baseScenario.baseAssetPriceChange, - -baseScenario.volatilityChange - ), - ]; - } - - return [ - scenarioConstructor(baseScenario.baseAssetPriceChange, 0.0), - scenarioConstructor(-baseScenario.baseAssetPriceChange, 0.0), - ]; -} - -function calculateScenario( - legs: LegInfo[], - legValues: number[], - scenario: Scenario, - price: number, - riskCategoryInfo: RiskCategoryInfo -): number { - let totalPnl = 0.0; - - for (const [index, leg] of legs.entries()) { - const pnl = calculateLegPnl( - leg, - legValues[index], - scenario, - price, - riskCategoryInfo - ); - totalPnl += pnl; - } - - return totalPnl; -} - -function calculateLegPnl( - leg: LegInfo, - legValue: number, - scenario: Scenario, - price: number, - riskCategoryInfo: RiskCategoryInfo -): number { - const shockedValue = calculateShockedValue( - leg, - scenario, - price, - riskCategoryInfo - ); - return shockedValue - legValue; -} - -function calculateShockedValue( - leg: LegInfo, - scenario: Scenario, - price: number, - riskCategoryInfo: RiskCategoryInfo -): number { - const shockedPrice = price * (scenario.baseAssetPriceChange + 1.0); - const shockedVolatility = - riskCategoryInfo.annualized30DayVolatility * - (scenario.volatilityChange + 1.0); - - return calculateAssetValue( - leg, - shockedPrice, - shockedVolatility, - riskCategoryInfo.interestRate - ); -} diff --git a/packages/js/src/plugins/riskEngineModule/constants.ts b/packages/js/src/plugins/riskEngineModule/constants.ts deleted file mode 100644 index 3ca19f761..000000000 --- a/packages/js/src/plugins/riskEngineModule/constants.ts +++ /dev/null @@ -1,105 +0,0 @@ -import { RiskCategoryInfo, Scenario } from '@convergence-rfq/risk-engine'; - -import { toBigNumber as tbn } from '../../types'; - -export const DEFAULT_MIN_COLLATERAL_REQUIREMENT = tbn(0); - -export const DEFAULT_COLLATERAL_FOR_FIXED_QUOTE_AMOUNT_RFQ = tbn(0); - -export const DEFAULT_MINT_DECIMALS = 9; - -export const DEFAULT_SAFETY_PRICE_SHIFT_FACTOR = 0; - -export const DEFAULT_OVERALL_SAFETY_FACTOR = 0; - -export const DEFAULT_ORACLE_STALENESS = 60 * 60 * 24 * 365 * 10; - -export const DEFAULT_ACCEPTED_ORACLE_CONFIDENCE_INTERVAL_POSITION = 0.1; - -export const DEFAULT_ACCEPTED_ORACLE_STALENESS = 60 * 60 * 24 * 365 * 10; -export const DEFAULT_ACCEPTED_ORACLE_CONFIDENCE_INTERVAL_PORTION = 0.01; - -export const SETTLEMENT_WINDOW_PEDIODS = 6; -export const SETTLEMENT_WINDOW_BREAKPOINS = [ - 60 * 60, - 4 * 60 * 60, - 12 * 60 * 60, - 24 * 60 * 60, - 48 * 60 * 60, -]; - -export const FUTURE_UNDERLYING_AMOUNT_PER_CONTRACT_DECIMALS = 9; -export const OPTION_UNDERLYING_AMOUNT_PER_CONTRACT_DECIMALS = 9; -export const OPTION_STRIKE_PRICE_DECIMALS = 9; - -export const DEFAULT_RISK_CATEGORIES_INFO = { - veryLow: toRiskCategoryInfo(0, 0, [ - toScenario(0, 0), - toScenario(0, 0), - toScenario(0, 0), - toScenario(0, 0), - toScenario(0, 0), - toScenario(0, 0), - ]), - low: toRiskCategoryInfo(0, 0, [ - toScenario(0, 0), - toScenario(0, 0), - toScenario(0, 0), - toScenario(0, 0), - toScenario(0, 0), - toScenario(0, 0), - ]), - medium: toRiskCategoryInfo(0, 0, [ - toScenario(0, 0), - toScenario(0, 0), - toScenario(0, 0), - toScenario(0, 0), - toScenario(0, 0), - toScenario(0, 0), - ]), - high: toRiskCategoryInfo(0, 0, [ - toScenario(0, 0), - toScenario(0, 0), - toScenario(0, 0), - toScenario(0, 0), - toScenario(0, 0), - toScenario(0, 0), - ]), - veryHigh: toRiskCategoryInfo(0, 0, [ - toScenario(0, 0), - toScenario(0, 0), - toScenario(0, 0), - toScenario(0, 0), - toScenario(0, 0), - toScenario(0, 0), - ]), -}; - -export function toScenario( - baseAssetPriceChange: number, - volatilityChange: number -): Scenario { - return { - baseAssetPriceChange, - volatilityChange, - }; -} - -export function toRiskCategoryInfo( - interestRate: number, - annualized30DayVolatility: number, - scenarioPerSettlementPeriod: [ - Scenario, - Scenario, - Scenario, - Scenario, - Scenario, - Scenario - ] -): RiskCategoryInfo { - return { - interestRate, - annualized30DayVolatility, - scenarioPerSettlementPeriod, - }; -} diff --git a/packages/js/src/plugins/riskEngineModule/helpers.ts b/packages/js/src/plugins/riskEngineModule/helpers.ts deleted file mode 100644 index bbe644d27..000000000 --- a/packages/js/src/plugins/riskEngineModule/helpers.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { AccountMeta, PublicKey } from '@solana/web3.js'; -import { LegInstrument } from '../instrumentModule'; -import { PrintTradeLeg } from '../printTradeModule'; -import { toPriceOracle } from '../protocolModule'; -import { Convergence } from '@/Convergence'; - -export async function getRiskEngineAccounts( - cvg: Convergence, - legs: LegInstrument[] | PrintTradeLeg[] -): Promise { - const configAddress = cvg.riskEngine().pdas().config(); - - const baseAssetIndexSet: Set = new Set( - legs.map((leg) => leg.getBaseAssetIndex().value) - ); - const uniqueBaseAssetIndexes = Array.from(baseAssetIndexSet); - - const baseAssetAddresses = uniqueBaseAssetIndexes.map((value) => - cvg.protocol().pdas().baseAsset({ index: value }) - ); - - const oracleInfos = await Promise.all( - baseAssetAddresses.map(async (baseAsset) => - cvg.protocol().findBaseAssetByAddress({ address: baseAsset }) - ) - ); - const oracleAddresses = oracleInfos - .map((oracleInfo) => toPriceOracle(oracleInfo).address) - .filter((address): address is PublicKey => address !== undefined); - - const allAddresses = [ - configAddress, - ...baseAssetAddresses, - ...oracleAddresses, - ]; - - return allAddresses.map((address) => ({ - pubkey: address, - isSigner: false, - isWritable: false, - })); -} diff --git a/packages/js/src/plugins/riskEngineModule/index.ts b/packages/js/src/plugins/riskEngineModule/index.ts index b5b780aad..9eb94b038 100644 --- a/packages/js/src/plugins/riskEngineModule/index.ts +++ b/packages/js/src/plugins/riskEngineModule/index.ts @@ -3,7 +3,4 @@ export * from './plugin'; export * from './RiskEngineClient'; export * from './types'; export * from './operations'; -export * from './constants'; export * from './models'; -export * from './accounts'; -export * from './cache'; diff --git a/packages/js/src/plugins/riskEngineModule/models/Config.ts b/packages/js/src/plugins/riskEngineModule/models/Config.ts deleted file mode 100644 index f84a8d99a..000000000 --- a/packages/js/src/plugins/riskEngineModule/models/Config.ts +++ /dev/null @@ -1,90 +0,0 @@ -import { PublicKey } from '@solana/web3.js'; -import { RiskCategoryChange as SolitaRiskCategoryChange } from '@convergence-rfq/risk-engine'; -import { bignum } from '@convergence-rfq/beet'; - -import { ConfigAccount } from '../accounts'; -import { RiskCategoryInfo } from '../types'; -import { assert } from '../../../utils/assert'; -import { - RiskCategory, - toSolitaRiskCategory, -} from '../../protocolModule/models'; -import { InstrumentType, fromSolitaInstrumentType } from './InstrumentType'; - -/** - * This model captures all the relevant information about a Risk Engine Config - * on the Solana blockchain. - * - * @group Models - */ -export type Config = { - /** A model identifier to distinguish models in the SDK. */ - readonly model: 'config'; - - /** The address of the config. */ - readonly address: PublicKey; - - /** The amount of collateral required to create an RFQ with a variable size. */ - readonly minCollateralRequirement: bignum; - - /** The amount of collateral required to create an RFQ with a fixed size. */ - readonly collateralForFixedQuoteAmountRfqCreation: bignum; - - /** The number of decimals of the collateral mint. */ - readonly collateralMintDecimals: bignum; - - /** The safety price shift factor. */ - readonly safetyPriceShiftFactor: number; - - /** The overall safety factor. */ - readonly overallSafetyFactor: number; - - /** The risk categories info. */ - readonly riskCategoriesInfo: RiskCategoryInfo[]; - - /** The instrument types info. */ - readonly instrumentTypes: (InstrumentType | null)[]; -}; - -export type RiskCategoryChange = { - /** The risk category index. */ - category: RiskCategory; - - /** The risk category info. */ - value: any; -}; - -/** @group Model helpers */ -export const toSolitaRiskCategoryChange = ( - change: RiskCategoryChange -): SolitaRiskCategoryChange => { - return { - riskCategoryIndex: toSolitaRiskCategory(change.category), - newValue: change.value, - }; -}; - -/** @group Model helpers */ -export const isConfig = (value: any): value is Response => - typeof value === 'object' && value.model === 'config'; - -/** @group Model helpers */ -export function assertConfig(value: any): asserts value is Response { - assert(isConfig(value), 'Expected Config model'); -} - -/** @group Model helpers */ -export const toConfig = (account: ConfigAccount): Config => ({ - model: 'config', - address: account.publicKey, - minCollateralRequirement: account.data.minCollateralRequirement, - collateralForFixedQuoteAmountRfqCreation: - account.data.collateralForFixedQuoteAmountRfqCreation, - collateralMintDecimals: account.data.collateralMintDecimals, - safetyPriceShiftFactor: account.data.safetyPriceShiftFactor, - overallSafetyFactor: account.data.overallSafetyFactor, - riskCategoriesInfo: account.data.riskCategoriesInfo, - instrumentTypes: account.data.instrumentTypes.map((instrumentType) => - fromSolitaInstrumentType(instrumentType) - ), -}); diff --git a/packages/js/src/plugins/riskEngineModule/models/InstrumentType.ts b/packages/js/src/plugins/riskEngineModule/models/InstrumentType.ts index 1113bf246..c894afd9e 100644 --- a/packages/js/src/plugins/riskEngineModule/models/InstrumentType.ts +++ b/packages/js/src/plugins/riskEngineModule/models/InstrumentType.ts @@ -1,51 +1,5 @@ -import { - StoredInstrumentType as SolitaStoredInstrumentType, - InstrumentType as SolitaInstrumentType, -} from '@convergence-rfq/risk-engine'; - export type InstrumentType = 'spot' | 'option' | 'term-future' | 'perp-future'; -export function fromSolitaInstrumentType( - instrumentType: SolitaStoredInstrumentType -): InstrumentType | null { - switch (instrumentType) { - case SolitaStoredInstrumentType.Missing: { - return null; - } - case SolitaStoredInstrumentType.Spot: { - return 'spot'; - } - case SolitaStoredInstrumentType.Option: { - return 'option'; - } - case SolitaStoredInstrumentType.PerpFuture: { - return 'perp-future'; - } - case SolitaStoredInstrumentType.TermFuture: { - return 'term-future'; - } - } -} - -export function toSolitaInstrumentType( - instrumentType: InstrumentType -): SolitaInstrumentType { - switch (instrumentType) { - case 'spot': { - return SolitaInstrumentType.Spot; - } - case 'option': { - return SolitaInstrumentType.Option; - } - case 'perp-future': { - return SolitaInstrumentType.PerpFuture; - } - case 'term-future': { - return SolitaInstrumentType.TermFuture; - } - } -} - export function toNumberInstrumentType(instrumentType: InstrumentType): number { switch (instrumentType) { case 'spot': { diff --git a/packages/js/src/plugins/riskEngineModule/models/index.ts b/packages/js/src/plugins/riskEngineModule/models/index.ts index aabad9298..9b30a75e5 100644 --- a/packages/js/src/plugins/riskEngineModule/models/index.ts +++ b/packages/js/src/plugins/riskEngineModule/models/index.ts @@ -1,2 +1 @@ -export * from './Config'; export * from './InstrumentType'; diff --git a/packages/js/src/plugins/riskEngineModule/operations/calculateCollateralForConfirmation.ts b/packages/js/src/plugins/riskEngineModule/operations/calculateCollateralForConfirmation.ts index 59a4029f2..c14946a7c 100644 --- a/packages/js/src/plugins/riskEngineModule/operations/calculateCollateralForConfirmation.ts +++ b/packages/js/src/plugins/riskEngineModule/operations/calculateCollateralForConfirmation.ts @@ -1,7 +1,6 @@ import { PublicKey } from '@solana/web3.js'; import { Confirmation } from '../../rfqModule/models/Confirmation'; -import { CalculationCase, calculateRisk } from '../clientCollateralCalculator'; import { Convergence } from '@/Convergence'; import { Operation, @@ -9,7 +8,6 @@ import { OperationScope, useOperation, } from '@/types'; -import { extractLegsMultiplier } from '@/plugins/rfqModule/helpers'; const Key = 'CalculateCollateralForConfirmationOperation' as const; @@ -75,48 +73,10 @@ export type CalculateCollateralForConfirmationBuilderParams = export const calculateCollateralForConfirmationOperationHandler: OperationHandler = { handle: async ( - operation: CalculateCollateralForConfirmationOperation, - convergence: Convergence, - scope: OperationScope + _operation: CalculateCollateralForConfirmationOperation, + _convergence: Convergence, + _scope: OperationScope ) => { - scope.throwIfCanceled(); - - const { rfqAddress, responseAddress, confirmation } = operation.input; - - // fetching in parallel - const [rfq, response, config] = await Promise.all([ - convergence.rfqs().findRfqByAddress({ address: rfqAddress }, scope), - convergence - .rfqs() - .findResponseByAddress({ address: responseAddress }, scope), - convergence.riskEngine().fetchConfig(scope), - ]); - - const confirmedQuote = - confirmation.side == 'bid' ? response.bid : response.ask; - if (confirmedQuote === null) { - throw Error('Cannot confirm a missing quote!'); - } - const legsMultiplier = extractLegsMultiplier( - rfq, - confirmedQuote, - confirmation - ); - const calculationCase: CalculationCase = { - legsMultiplier, - authoritySide: 'taker', - quoteSide: confirmation.side, - }; - - const [requiredCollateral] = await calculateRisk( - convergence, - config, - rfq.legs, - [calculationCase], - rfq.settlingWindow, - scope.commitment - ); - - return { requiredCollateral }; + return { requiredCollateral: 0 }; }, }; diff --git a/packages/js/src/plugins/riskEngineModule/operations/calculateCollateralForResponse.ts b/packages/js/src/plugins/riskEngineModule/operations/calculateCollateralForResponse.ts index 109eb3dbe..cbf16fde5 100644 --- a/packages/js/src/plugins/riskEngineModule/operations/calculateCollateralForResponse.ts +++ b/packages/js/src/plugins/riskEngineModule/operations/calculateCollateralForResponse.ts @@ -1,6 +1,5 @@ import { PublicKey } from '@solana/web3.js'; -import { CalculationCase, calculateRisk } from '../clientCollateralCalculator'; import { Operation, OperationHandler, @@ -8,8 +7,7 @@ import { useOperation, } from '../../../types'; import { Convergence } from '../../../Convergence'; -import { Quote, ResponseSide } from '../../rfqModule'; -import { extractLegsMultiplier } from '@/plugins/rfqModule/helpers'; +import { Quote } from '../../rfqModule'; const Key = 'CalculateCollateralForResponseOperation' as const; @@ -76,44 +74,10 @@ export type CalculateCollateralForResponseBuilderParams = export const calculateCollateralForResponseOperationHandler: OperationHandler = { handle: async ( - operation: CalculateCollateralForResponseOperation, - convergence: Convergence, - scope: OperationScope + _operation: CalculateCollateralForResponseOperation, + _convergence: Convergence, + _scope: OperationScope ): Promise => { - const { rfqAddress, bid, ask } = operation.input; - - const [rfq, config] = await Promise.all([ - convergence.rfqs().findRfqByAddress({ address: rfqAddress }, scope), - convergence.riskEngine().fetchConfig(scope), - ]); - - const getCase = (quote: Quote, side: ResponseSide): CalculationCase => { - const legsMultiplier = extractLegsMultiplier(rfq, quote); - return { - legsMultiplier, - authoritySide: 'maker', - quoteSide: side, - }; - }; - - const cases: CalculationCase[] = []; - if (bid) { - cases.push(getCase(bid, 'bid')); - } - if (ask) { - cases.push(getCase(ask, 'ask')); - } - - const risks = await calculateRisk( - convergence, - config, - rfq.legs, - cases, - rfq.settlingWindow, - scope.commitment - ); - const requiredCollateral = risks.reduce((x, y) => Math.max(x, y), 0); - - return { requiredCollateral }; + return { requiredCollateral: 0 }; }, }; diff --git a/packages/js/src/plugins/riskEngineModule/operations/calculateCollateralForRfq.ts b/packages/js/src/plugins/riskEngineModule/operations/calculateCollateralForRfq.ts index de60fc0d5..1abb4a7ba 100644 --- a/packages/js/src/plugins/riskEngineModule/operations/calculateCollateralForRfq.ts +++ b/packages/js/src/plugins/riskEngineModule/operations/calculateCollateralForRfq.ts @@ -1,10 +1,3 @@ -import { - isFixedSizeBaseAsset, - isFixedSizeOpen, - isFixedSizeQuoteAsset, -} from '../../rfqModule/models'; - -import { calculateRisk, CalculationCase } from '../clientCollateralCalculator'; import { Operation, OperationHandler, @@ -13,8 +6,7 @@ import { } from '../../../types'; import { Convergence } from '../../../Convergence'; import { LegInstrument } from '../../../plugins/instrumentModule'; -import { removeDecimals } from '../../../utils/conversions'; -import { FixedSize, OrderType, ResponseSide } from '../../../plugins/rfqModule'; +import { FixedSize, OrderType } from '../../../plugins/rfqModule'; import { PrintTradeLeg } from '@/plugins/printTradeModule'; const Key = 'CalculateCollateralForRfqOperation' as const; @@ -92,69 +84,10 @@ export type CalculateCollateralForRfqBuilderParams = export const calculateCollateralForRfqOperationHandler: OperationHandler = { handle: async ( - operation: CalculateCollateralForRfqOperation, - convergence: Convergence, - scope: OperationScope + _operation: CalculateCollateralForRfqOperation, + _convergence: Convergence, + _scope: OperationScope ): Promise => { - const { - orderType, - legs, - settlementPeriod, - size: fixedSize, - } = operation.input; - - const config = await convergence.riskEngine().fetchConfig(scope); - if (isFixedSizeOpen(fixedSize)) { - return { - requiredCollateral: removeDecimals( - config.minCollateralRequirement, - Number(config.collateralMintDecimals) - ), - }; - } else if (isFixedSizeQuoteAsset(fixedSize)) { - return { - requiredCollateral: removeDecimals( - config.collateralForFixedQuoteAmountRfqCreation, - Number(config.collateralMintDecimals) - ), - }; - } else if (isFixedSizeBaseAsset(fixedSize)) { - const legsMultiplier = fixedSize.amount; - const sideToCase = (side: ResponseSide): CalculationCase => { - return { - legsMultiplier, - authoritySide: 'taker', - quoteSide: side, - }; - }; - - const cases: CalculationCase[] = []; - if (orderType == 'buy') { - cases.push(sideToCase('ask')); - } else if (orderType == 'sell') { - cases.push(sideToCase('bid')); - } else if (orderType == 'two-way') { - cases.push(sideToCase('ask')); - cases.push(sideToCase('bid')); - } else { - throw new Error('Invalid order type'); - } - - const risks = await calculateRisk( - convergence, - config, - legs, - cases, - settlementPeriod, - scope.commitment - ); - - const requiredCollateral = risks.reduce((x, y) => Math.max(x, y), 0); - return { - requiredCollateral, - }; - } - - throw new Error('Invalid fixed size'); + return { requiredCollateral: 0 }; }, }; diff --git a/packages/js/src/plugins/riskEngineModule/operations/closeConfig.ts b/packages/js/src/plugins/riskEngineModule/operations/closeConfig.ts deleted file mode 100644 index ccc2d6a55..000000000 --- a/packages/js/src/plugins/riskEngineModule/operations/closeConfig.ts +++ /dev/null @@ -1,130 +0,0 @@ -import { createCloseConfigInstruction } from '@convergence-rfq/risk-engine'; - -import { - TransactionBuilder, - TransactionBuilderOptions, -} from '../../../utils/TransactionBuilder'; -import { Convergence } from '../../../Convergence'; -import { - Operation, - OperationHandler, - OperationScope, - Signer, - useOperation, -} from '../../../types'; -import { SendAndConfirmTransactionResponse } from '../../../plugins'; -import { riskEngineConfigCache } from '../cache'; - -const Key = 'CloseConfigOperation' as const; - -/** - * Close current rist engine configuration. - * - * ```ts - * await convergence.riskEngine().closeConfig(); - * ``` - * - * @group Operations - * @category Constructors - */ -export const closeConfigOperation = useOperation(Key); - -/** - * @group Operations - * @category Types - */ -export type CloseConfigOperation = Operation< - typeof Key, - CloseConfigInput, - CloseConfigOutput ->; - -/** - * @group Operations - * @category Inputs - */ -export type CloseConfigInput = - | { - /** The owner of the protocol. */ - authority?: Signer; - } - | undefined; - -/** - * @group Operations - * @category Outputs - */ -export type CloseConfigOutput = { - response: SendAndConfirmTransactionResponse; -}; - -/** - * @group Transaction Builders - * @category Inputs - */ -export type CloseConfigBuilderParams = CloseConfigInput; - -/** - * @group Operations - * @category Handlers - */ -export const closeConfigOperationHandler: OperationHandler = - { - handle: async ( - operation: CloseConfigOperation, - convergence: Convergence, - scope: OperationScope - ): Promise => { - scope.throwIfCanceled(); - - const builder = closeConfigBuilder(convergence, operation.input, scope); - const { response } = await builder.sendAndConfirm( - convergence, - scope.confirmOptions - ); - - riskEngineConfigCache.clear(); - - return { response }; - }, - }; - -/** - * Closes risk engine configuration. - * - * ```ts - * const transactionBuilder = convergence - * .rfqs() - * .builders() - * .closeConfig(); - * ``` - * - * @group Transaction Builders - * @category Constructors - */ -export const closeConfigBuilder = ( - convergence: Convergence, - params: CloseConfigBuilderParams, - options: TransactionBuilderOptions = {} -): TransactionBuilder => { - const { programs, payer = convergence.rpc().getDefaultFeePayer() } = options; - const { authority = payer } = params ?? {}; - - const riskEngineProgram = convergence.programs().getRiskEngine(programs); - - return TransactionBuilder.make() - .setFeePayer(payer) - .addTxPriorityFeeIx(convergence) - .add({ - instruction: createCloseConfigInstruction( - { - authority: authority.publicKey, - protocol: convergence.protocol().pdas().protocol(), - config: convergence.riskEngine().pdas().config(), - }, - riskEngineProgram.address - ), - signers: [authority], - key: 'closeConfig', - }); -}; diff --git a/packages/js/src/plugins/riskEngineModule/operations/fetchConfig.ts b/packages/js/src/plugins/riskEngineModule/operations/fetchConfig.ts deleted file mode 100644 index 8298ca6fa..000000000 --- a/packages/js/src/plugins/riskEngineModule/operations/fetchConfig.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { Config } from '../models'; - -import { Convergence } from '../../../Convergence'; -import { - Operation, - OperationHandler, - OperationScope, - useOperation, -} from '../../../types'; -import { riskEngineConfigCache } from '../cache'; - -const Key = 'FetchConfigOperation' as const; - -/** - * Fetch current Rist Engine configuration - * - * ```ts - * await convergence - * .riskEngine() - * .fetchConfig(); - * ``` - * - * @group Operations - * @category Constructors - */ -export const fetchConfigOperation = useOperation(Key); - -/** - * @group Operations - * @category Types - */ -export type FetchConfigOperation = Operation< - typeof Key, - FetchConfigInput, - FetchConfigOutput ->; - -/** - * @group Operations - * @category Inputs - */ -export type FetchConfigInput = {}; - -/** - * @group Operations - * @category Outputs - */ -export type FetchConfigOutput = Config; - -/** - * @group Operations - * @category Handlers - */ -export const fetchConfigOperationHandler: OperationHandler = - { - handle: async ( - _operation: FetchConfigOperation, - convergence: Convergence, - scope: OperationScope - ): Promise => { - const { commitment } = scope; - scope.throwIfCanceled(); - - const config = await riskEngineConfigCache.get(convergence, commitment); - - return config; - }, - }; diff --git a/packages/js/src/plugins/riskEngineModule/operations/index.ts b/packages/js/src/plugins/riskEngineModule/operations/index.ts index 49b040072..c9f3f6dda 100644 --- a/packages/js/src/plugins/riskEngineModule/operations/index.ts +++ b/packages/js/src/plugins/riskEngineModule/operations/index.ts @@ -1,9 +1,3 @@ -export * from './initializeConfig'; -export * from './updateConfig'; -export * from './setInstrumentType'; export * from './calculateCollateralForConfirmation'; export * from './calculateCollateralForResponse'; export * from './calculateCollateralForRfq'; -export * from './setRiskCategoriesInfo'; -export * from './fetchConfig'; -export * from './closeConfig'; diff --git a/packages/js/src/plugins/riskEngineModule/operations/initializeConfig.ts b/packages/js/src/plugins/riskEngineModule/operations/initializeConfig.ts deleted file mode 100644 index d7bfdd752..000000000 --- a/packages/js/src/plugins/riskEngineModule/operations/initializeConfig.ts +++ /dev/null @@ -1,185 +0,0 @@ -import { createInitializeConfigInstruction } from '@convergence-rfq/risk-engine'; - -import { SendAndConfirmTransactionResponse } from '../../rpcModule'; -import { - DEFAULT_MINT_DECIMALS, - DEFAULT_COLLATERAL_FOR_FIXED_QUOTE_AMOUNT_RFQ, - DEFAULT_SAFETY_PRICE_SHIFT_FACTOR, - DEFAULT_OVERALL_SAFETY_FACTOR, - DEFAULT_MIN_COLLATERAL_REQUIREMENT, - DEFAULT_ACCEPTED_ORACLE_STALENESS, - DEFAULT_ACCEPTED_ORACLE_CONFIDENCE_INTERVAL_PORTION, -} from '../constants'; -import { Convergence } from '../../../Convergence'; -import { - Operation, - OperationHandler, - OperationScope, - useOperation, - Signer, -} from '../../../types'; -import { - TransactionBuilder, - TransactionBuilderOptions, -} from '../../../utils/TransactionBuilder'; - -const Key = 'InitalizeConfigOperation' as const; - -/** - * Add an BaseAsset - * - * ```ts - * await convergence - * .riskEngine() - * .initializeConfig({ address }; - * ``` - * - * @group Operations - * @category Constructors - */ -export const initializeConfigOperation = - useOperation(Key); - -/** - * @group Operations - * @category Types - */ -export type InitalizeConfigOperation = Operation< - typeof Key, - InitializeConfigInput, - InitializeConfigOutput ->; - -/** - * @group Operations - * @category Inputs - */ -export type InitializeConfigInput = - | { - /** The owner of the protocol. */ - authority?: Signer; - - /** The collateral amount required to create a variable size RFQ. */ - minCollateralRequirement?: number; - - /** The collateral amount required to create a fixed quote amount RFQ. */ - collateralForFixedQuoteAmountRfqCreation?: number; - - /** The number of decimals of the collateral mint. */ - collateralMintDecimals?: number; - - /** The safety price shift factor. */ - safetyPriceShiftFactor?: number; - - /** The overall safety factor. */ - overallSafetyFactor?: number; - - /** The accepted oracle staleness. */ - acceptedOracleStaleness?: number; - - /** The accepted oracle confidence interval portion. */ - acceptedOracleConfidenceIntervalPortion: number; - } - | undefined; - -/** - * @group Operations - * @category Outputs - */ -export type InitializeConfigOutput = { - /** The blockchain response from sending and confirming the transaction. */ - response: SendAndConfirmTransactionResponse; -}; - -/** - * @group Operations - * @category Handlers - */ -export const initializeConfigOperationHandler: OperationHandler = - { - handle: async ( - operation: InitalizeConfigOperation, - convergence: Convergence, - scope: OperationScope - ): Promise => { - scope.throwIfCanceled(); - - const builder = initializeConfigBuilder( - convergence, - operation.input, - scope - ); - const { response } = await builder.sendAndConfirm( - convergence, - scope.confirmOptions - ); - - return { response }; - }, - }; - -/** - * @group Transaction Builders - * @category Inputs - */ -export type InitalizeConfigBuilderParams = InitializeConfigInput; - -/** - * Adds an BaseAsset - * - * ```ts - * const transactionBuilder = convergence - * .rfqs() - * .builders() - * .initializeConfig({ address }); - * ``` - * - * @group Transaction Builders - * @category Constructors - */ -export const initializeConfigBuilder = ( - convergence: Convergence, - params: InitalizeConfigBuilderParams, - options: TransactionBuilderOptions = {} -): TransactionBuilder => { - const { programs, payer = convergence.rpc().getDefaultFeePayer() } = options; - const { - authority = payer, - minCollateralRequirement = DEFAULT_MIN_COLLATERAL_REQUIREMENT, - collateralForFixedQuoteAmountRfqCreation = DEFAULT_COLLATERAL_FOR_FIXED_QUOTE_AMOUNT_RFQ, - collateralMintDecimals = DEFAULT_MINT_DECIMALS, - safetyPriceShiftFactor = DEFAULT_SAFETY_PRICE_SHIFT_FACTOR, - overallSafetyFactor = DEFAULT_OVERALL_SAFETY_FACTOR, - acceptedOracleStaleness = DEFAULT_ACCEPTED_ORACLE_STALENESS, - acceptedOracleConfidenceIntervalPortion = DEFAULT_ACCEPTED_ORACLE_CONFIDENCE_INTERVAL_PORTION, - } = params ?? {}; - - const riskEngineProgram = convergence.programs().getRiskEngine(programs); - const systemProgram = convergence.programs().getSystem(programs); - - return TransactionBuilder.make() - .setFeePayer(payer) - .addTxPriorityFeeIx(convergence) - .add({ - instruction: createInitializeConfigInstruction( - { - authority: authority.publicKey, - protocol: convergence.protocol().pdas().protocol(), - config: convergence.riskEngine().pdas().config(), - systemProgram: systemProgram.address, - }, - { - minCollateralRequirement, - collateralForFixedQuoteAmountRfqCreation, - collateralMintDecimals, - safetyPriceShiftFactor, - overallSafetyFactor, - acceptedOracleStaleness, - acceptedOracleConfidenceIntervalPortion, - }, - riskEngineProgram.address - ), - signers: [authority], - key: 'initializeConfig', - }); -}; diff --git a/packages/js/src/plugins/riskEngineModule/operations/setInstrumentType.ts b/packages/js/src/plugins/riskEngineModule/operations/setInstrumentType.ts deleted file mode 100644 index 2a6116b74..000000000 --- a/packages/js/src/plugins/riskEngineModule/operations/setInstrumentType.ts +++ /dev/null @@ -1,169 +0,0 @@ -import { createSetInstrumentTypeInstruction } from '@convergence-rfq/risk-engine'; - -import { SendAndConfirmTransactionResponse } from '../../rpcModule'; -import { Config, InstrumentType, toSolitaInstrumentType } from '../models'; -import { Convergence } from '../../../Convergence'; -import { - Operation, - OperationHandler, - OperationScope, - useOperation, - Signer, - PublicKey, -} from '../../../types'; -import { - TransactionBuilder, - TransactionBuilderOptions, -} from '../../../utils/TransactionBuilder'; -import { riskEngineConfigCache } from '../cache'; -import { getInstrumentProgramIndex } from '@/plugins/instrumentModule'; - -const Key = 'SetInstrumentTypeOperation' as const; - -/** - * Set instrument type - * - * ```ts - * await convergence - * .riskEngine() - * .setInstrumentType({ ... }; - * ``` - * - * @group Operations - * @category Constructors - */ -export const setInstrumentTypeOperation = - useOperation(Key); - -/** - * @group Operations - * @category Types - */ -export type SetInstrumentTypeOperation = Operation< - typeof Key, - SetInstrumentTypeInput, - SetInstrumentTypeOutput ->; - -/** - * @group Operations - * @category Inputs - */ -export type SetInstrumentTypeInput = { - /** - * The owner of the protocol. - */ - authority?: Signer; - - /** - * The instrument type. - */ - instrumentType: InstrumentType; - - /** - * The address of the instrument program account. - */ - instrumentProgram: PublicKey; -}; - -/** - * @group Operations - * @category Outputs - */ -export type SetInstrumentTypeOutput = { - /** The blockchain response from sending and confirming the transaction. */ - response: SendAndConfirmTransactionResponse; - - /** Risk engine config. */ - config: Config; -}; - -/** - * @group Operations - * @category Handlers - */ -export const setInstrumentTypeOperationHandler: OperationHandler = - { - handle: async ( - operation: SetInstrumentTypeOperation, - convergence: Convergence, - scope: OperationScope - ): Promise => { - const protocol = await convergence.protocol().get(); - const instrumentIndex = getInstrumentProgramIndex( - protocol, - operation.input.instrumentProgram - ); - - const builder = setInstrumentTypeBuilder( - convergence, - operation.input, - instrumentIndex, - scope - ); - - const { response } = await builder.sendAndConfirm( - convergence, - scope.confirmOptions - ); - - riskEngineConfigCache.clear(); - const config = await convergence.riskEngine().fetchConfig(scope); - - return { response, config }; - }, - }; - -/** - * @group Transaction Builders - * @category Inputs - */ -export type SetInstrumentTypeBuilderParams = SetInstrumentTypeInput; - -/** - * Adds an BaseAsset - * - * ```ts - * const transactionBuilder = convergence - * .riskEngine() - * .builders() - * .setInstrumentType({ instrumentType, instrumentProgram }); - * ``` - * - * @group Transaction Builders - * @category Constructors - */ -export const setInstrumentTypeBuilder = ( - convergence: Convergence, - params: SetInstrumentTypeBuilderParams, - instrumentIndex: number, - options: TransactionBuilderOptions = {} -): TransactionBuilder => { - const { programs, payer = convergence.rpc().getDefaultFeePayer() } = options; - const { authority = payer, instrumentType } = params; - - const riskEngineProgram = convergence.programs().getRiskEngine(programs); - - const config = convergence.riskEngine().pdas().config(); - const protocol = convergence.protocol().pdas().protocol(); - - return TransactionBuilder.make() - .setFeePayer(payer) - .addTxPriorityFeeIx(convergence) - .add({ - instruction: createSetInstrumentTypeInstruction( - { - authority: authority.publicKey, - protocol, - config, - }, - { - instrumentIndex, - instrumentType: toSolitaInstrumentType(instrumentType), - }, - riskEngineProgram.address - ), - signers: [authority], - key: 'setInstrumentType', - }); -}; diff --git a/packages/js/src/plugins/riskEngineModule/operations/setRiskCategoriesInfo.ts b/packages/js/src/plugins/riskEngineModule/operations/setRiskCategoriesInfo.ts deleted file mode 100644 index cef1ecd03..000000000 --- a/packages/js/src/plugins/riskEngineModule/operations/setRiskCategoriesInfo.ts +++ /dev/null @@ -1,152 +0,0 @@ -import { createSetRiskCategoriesInfoInstruction } from '@convergence-rfq/risk-engine'; - -import { SendAndConfirmTransactionResponse } from '../../rpcModule'; -import { - Config, - RiskCategoryChange, - toSolitaRiskCategoryChange, -} from '../models'; -import { Convergence } from '../../../Convergence'; -import { - Operation, - OperationHandler, - OperationScope, - useOperation, - Signer, -} from '../../../types'; -import { - TransactionBuilder, - TransactionBuilderOptions, -} from '../../../utils/TransactionBuilder'; -import { riskEngineConfigCache } from '../cache'; - -const Key = 'SetRiskCategoriesInfoOperation' as const; - -/** - * Set instrument type - * - * ```ts - * await convergence - * .riskEngine() - * .SetRiskCategoriesInfo({ ... }; - * ``` - * - * @group Operations - * @category Constructors - */ -export const setRiskCategoriesInfoOperation = - useOperation(Key); - -/** - * @group Operations - * @category Types - */ -export type SetRiskCategoriesInfoOperation = Operation< - typeof Key, - SetRiskCategoriesInfoInput, - SetRiskCategoriesInfoOutput ->; - -/** - * @group Operations - * @category Inputs - */ -export type SetRiskCategoriesInfoInput = { - /** - * The owner of the protocol. - */ - authority?: Signer; - - /** The risk category changes. */ - changes: RiskCategoryChange[]; -}; - -/** - * @group Operations - * @category Outputs - */ -export type SetRiskCategoriesInfoOutput = { - /** The blockchain response from sending and confirming the transaction. */ - response: SendAndConfirmTransactionResponse; - - /** Risk engine config. */ - config: Config; -}; - -/** - * @group Operations - * @category Handlers - */ -export const setRiskCategoriesInfoOperationHandler: OperationHandler = - { - handle: async ( - operation: SetRiskCategoriesInfoOperation, - convergence: Convergence, - scope: OperationScope - ): Promise => { - const builder = setRiskCategoriesInfoBuilder( - convergence, - operation.input, - scope - ); - const { response } = await builder.sendAndConfirm( - convergence, - scope.confirmOptions - ); - - riskEngineConfigCache.clear(); - const config = await convergence.riskEngine().fetchConfig(scope); - - return { response, config }; - }, - }; - -/** - * @group Transaction Builders - * @category Inputs - */ -export type SetRiskCategoriesInfoBuilderParams = SetRiskCategoriesInfoInput; - -/** - * Adds an BaseAsset - * - * ```ts - * const transactionBuilder = convergence - * .riskEngine() - * .builders() - * .setRiskCategoriesInfo({ changes }); - * ``` - * - * @group Transaction Builders - * @category Constructors - */ -export const setRiskCategoriesInfoBuilder = ( - convergence: Convergence, - params: SetRiskCategoriesInfoBuilderParams, - options: TransactionBuilderOptions = {} -): TransactionBuilder => { - const { programs, payer = convergence.rpc().getDefaultFeePayer() } = options; - const { authority = payer, changes } = params; - - const riskEngineProgram = convergence.programs().getRiskEngine(programs); - - const config = convergence.riskEngine().pdas().config(); - const protocol = convergence.protocol().pdas().protocol(); - - return TransactionBuilder.make() - .setFeePayer(payer) - .addTxPriorityFeeIx(convergence) - .add({ - instruction: createSetRiskCategoriesInfoInstruction( - { - authority: authority.publicKey, - protocol, - config, - }, - { changes: changes.map(toSolitaRiskCategoryChange) }, - riskEngineProgram.address - ), - signers: [authority], - key: 'setRiskCategoriesInfo', - }); -}; diff --git a/packages/js/src/plugins/riskEngineModule/operations/updateConfig.ts b/packages/js/src/plugins/riskEngineModule/operations/updateConfig.ts deleted file mode 100644 index b26055783..000000000 --- a/packages/js/src/plugins/riskEngineModule/operations/updateConfig.ts +++ /dev/null @@ -1,186 +0,0 @@ -import { createUpdateConfigInstruction } from '@convergence-rfq/risk-engine'; - -import { SendAndConfirmTransactionResponse } from '../../rpcModule'; -import { Config } from '../models'; -import { - DEFAULT_MINT_DECIMALS, - DEFAULT_COLLATERAL_FOR_FIXED_QUOTE_AMOUNT_RFQ, - DEFAULT_SAFETY_PRICE_SHIFT_FACTOR, - DEFAULT_OVERALL_SAFETY_FACTOR, - DEFAULT_MIN_COLLATERAL_REQUIREMENT, - DEFAULT_ORACLE_STALENESS, - DEFAULT_ACCEPTED_ORACLE_CONFIDENCE_INTERVAL_POSITION, -} from '../constants'; -import { Convergence } from '../../../Convergence'; -import { - Operation, - OperationHandler, - OperationScope, - useOperation, - Signer, -} from '../../../types'; -import { - TransactionBuilder, - TransactionBuilderOptions, -} from '../../../utils/TransactionBuilder'; -import { riskEngineConfigCache } from '../cache'; - -const Key = 'UpdateConfigOperation' as const; - -/** - * Update risk engine config - * - * ```ts - * await convergence - * .riskEngine() - * .updateConfig({ ... }; - * ``` - * - * @group Operations - * @category Constructors - */ -export const updateConfigOperation = useOperation(Key); - -/** - * @group Operations - * @category Types - */ -export type UpdateConfigOperation = Operation< - typeof Key, - UpdateConfigInput, - UpdateConfigOutput ->; - -/** - * @group Operations - * @category Inputs - */ -export type UpdateConfigInput = - | { - /** The owner of the protocol. */ - authority?: Signer; - - /** The collateral amount required to create a variable size RFQ. */ - minCollateralRequirement?: number; - - /** The collateral amount required to create a fixed quote amount RFQ. */ - collateralForFixedQuoteAmountRfqCreation?: number; - - /** The number of decimals of the collateral mint. */ - collateralMintDecimals?: number; - - /** The safety price shift factor. */ - safetyPriceShiftFactor?: number; - - /** The overall safety factor. */ - overallSafetyFactor?: number; - - /** The accepted oracle staleness. */ - acceptedOracleStaleness?: number; - - /** The accepted oracle confidence interval portion. */ - acceptedOracleConfidenceIntervalPortion?: number; - } - | undefined; - -/** - * @group Operations - * @category Outputs - */ -export type UpdateConfigOutput = { - /** The blockchain response from sending and confirming the transaction. */ - response: SendAndConfirmTransactionResponse; - - /** Risk engine config model. */ - config: Config; -}; - -/** - * @group Operations - * @category Handlers - */ -export const updateConfigOperationHandler: OperationHandler = - { - handle: async ( - operation: UpdateConfigOperation, - convergence: Convergence, - scope: OperationScope - ): Promise => { - scope.throwIfCanceled(); - - const builder = updateConfigBuilder(convergence, operation.input, scope); - const { response } = await builder.sendAndConfirm( - convergence, - scope.confirmOptions - ); - - riskEngineConfigCache.clear(); - const config = await convergence.riskEngine().fetchConfig(scope); - - return { response, config }; - }, - }; - -/** - * @group Transaction Builders - * @category Inputs - */ -export type UpdateConfigBuilderParams = UpdateConfigInput; - -/** - * Updates risk engine config - * - * ```ts - * const transactionBuilder = convergence - * .riskEngine() - * .builders() - * .updateConfig({ ... }); - * ``` - * - * @group Transaction Builders - * @category Constructors - */ -export const updateConfigBuilder = ( - convergence: Convergence, - params: UpdateConfigBuilderParams, - options: TransactionBuilderOptions = {} -): TransactionBuilder => { - const { programs, payer = convergence.rpc().getDefaultFeePayer() } = options; - const { - authority = payer, - minCollateralRequirement = DEFAULT_MIN_COLLATERAL_REQUIREMENT, - collateralForFixedQuoteAmountRfqCreation = DEFAULT_COLLATERAL_FOR_FIXED_QUOTE_AMOUNT_RFQ, - collateralMintDecimals = DEFAULT_MINT_DECIMALS, - safetyPriceShiftFactor = DEFAULT_SAFETY_PRICE_SHIFT_FACTOR, - overallSafetyFactor = DEFAULT_OVERALL_SAFETY_FACTOR, - acceptedOracleStaleness = DEFAULT_ORACLE_STALENESS, - acceptedOracleConfidenceIntervalPortion = DEFAULT_ACCEPTED_ORACLE_CONFIDENCE_INTERVAL_POSITION, - } = params ?? {}; - - const riskEngineProgram = convergence.programs().getRiskEngine(programs); - - return TransactionBuilder.make() - .setFeePayer(payer) - .addTxPriorityFeeIx(convergence) - .add({ - instruction: createUpdateConfigInstruction( - { - authority: authority.publicKey, - protocol: convergence.protocol().pdas().protocol(), - config: convergence.riskEngine().pdas().config(), - }, - { - minCollateralRequirement, - collateralForFixedQuoteAmountRfqCreation, - collateralMintDecimals, - safetyPriceShiftFactor, - overallSafetyFactor, - acceptedOracleStaleness, - acceptedOracleConfidenceIntervalPortion, - }, - riskEngineProgram.address - ), - signers: [authority], - key: 'updateConfig', - }); -}; diff --git a/packages/js/src/plugins/riskEngineModule/plugin.ts b/packages/js/src/plugins/riskEngineModule/plugin.ts index 70fdb977e..81a49dd28 100644 --- a/packages/js/src/plugins/riskEngineModule/plugin.ts +++ b/packages/js/src/plugins/riskEngineModule/plugin.ts @@ -5,24 +5,12 @@ import type { Convergence } from '../../Convergence'; import { ProgramClient } from '../programModule'; import { RiskEngineClient } from './RiskEngineClient'; import { - initializeConfigOperation, - initializeConfigOperationHandler, - updateConfigOperation, - updateConfigOperationHandler, - setInstrumentTypeOperation, - setInstrumentTypeOperationHandler, - setRiskCategoriesInfoOperation, - setRiskCategoriesInfoOperationHandler, calculateCollateralForConfirmationOperation, calculateCollateralForConfirmationOperationHandler, calculateCollateralForResponseOperation, calculateCollateralForResponseOperationHandler, calculateCollateralForRfqOperation, calculateCollateralForRfqOperationHandler, - fetchConfigOperation, - fetchConfigOperationHandler, - closeConfigOperation, - closeConfigOperationHandler, } from './operations'; /** @group Plugins */ @@ -42,13 +30,6 @@ export const riskEngineModule = (): ConvergencePlugin => ({ }; const op = convergence.operations(); - op.register(initializeConfigOperation, initializeConfigOperationHandler); - op.register(updateConfigOperation, updateConfigOperationHandler); - op.register(setInstrumentTypeOperation, setInstrumentTypeOperationHandler); - op.register( - setRiskCategoriesInfoOperation, - setRiskCategoriesInfoOperationHandler - ); op.register( calculateCollateralForRfqOperation, calculateCollateralForRfqOperationHandler @@ -61,8 +42,6 @@ export const riskEngineModule = (): ConvergencePlugin => ({ calculateCollateralForConfirmationOperation, calculateCollateralForConfirmationOperationHandler ); - op.register(fetchConfigOperation, fetchConfigOperationHandler); - op.register(closeConfigOperation, closeConfigOperationHandler); convergence.riskEngine = function () { return new RiskEngineClient(this); diff --git a/packages/js/src/plugins/riskEngineModule/types.ts b/packages/js/src/plugins/riskEngineModule/types.ts index 85ffd1104..918f772cb 100644 --- a/packages/js/src/plugins/riskEngineModule/types.ts +++ b/packages/js/src/plugins/riskEngineModule/types.ts @@ -1,2 +1 @@ export { RiskCategory as SolitaRiskCatgory } from '@convergence-rfq/rfq'; -export type { Scenario, RiskCategoryInfo } from '@convergence-rfq/risk-engine'; diff --git a/packages/js/src/plugins/vaultOperatorModule/operations/confirmAndPrepareVault.ts b/packages/js/src/plugins/vaultOperatorModule/operations/confirmAndPrepareVault.ts index 673c646d4..a7b2e15a5 100644 --- a/packages/js/src/plugins/vaultOperatorModule/operations/confirmAndPrepareVault.ts +++ b/packages/js/src/plugins/vaultOperatorModule/operations/confirmAndPrepareVault.ts @@ -22,7 +22,6 @@ import { EscrowRfq, getEscrowPrepareSettlementRemainingAccounts, } from '@/plugins/rfqModule'; -import { getRiskEngineAccounts } from '@/plugins/riskEngineModule/helpers'; const Key = 'ConfirmAndPrepareVaultOperation' as const; @@ -95,8 +94,6 @@ export const confirmAndPrepareVaultBuilder = async ( const vaultProgram = cvg.programs().getVaultOperator(programs).address; const operator = cvg.vaultOperator().pdas().operator(vault.address); - const riskEngineAccounts = await getRiskEngineAccounts(cvg, rfq.legs); - const confirmIx = { instruction: createConfirmResponseInstruction( { @@ -116,7 +113,6 @@ export const confirmAndPrepareVaultBuilder = async ( }), riskEngine: cvg.programs().getRiskEngine(programs).address, rfqProgram: cvg.programs().getRfq(programs).address, - anchorRemainingAccounts: riskEngineAccounts, }, vaultProgram ), diff --git a/packages/js/src/plugins/vaultOperatorModule/operations/createVault.ts b/packages/js/src/plugins/vaultOperatorModule/operations/createVault.ts index 2f0824390..89a0426a1 100644 --- a/packages/js/src/plugins/vaultOperatorModule/operations/createVault.ts +++ b/packages/js/src/plugins/vaultOperatorModule/operations/createVault.ts @@ -26,16 +26,13 @@ import { } from '@/plugins/instrumentModule'; import { ABSOLUTE_PRICE_DECIMALS, + LEG_MULTIPLIER_DECIMALS, calculateExpectedLegsHash, - calculateExpectedLegsSize, instrumentsToLegAccounts, legsToBaseAssetAccounts, - serializeFixedSizeData, - toSolitaFixedSize, toSolitaOrderType, } from '@/plugins/rfqModule'; import { addDecimals, getOrCreateATAtxBuilder } from '@/utils'; -import { getRiskEngineAccounts } from '@/plugins/riskEngineModule/helpers'; import { Mint } from '@/plugins/tokenModule'; const Key = 'CreateVaultOperation' as const; @@ -74,11 +71,9 @@ export const createVaultOperationHandler: OperationHandler cvg: Convergence, scope: OperationScope ) => { - const { builder, vaultAddress, rfqAddress } = await createVaultBuilder( - cvg, - operation.input, - scope - ); + const { builder, ataBuilder, vaultAddress, rfqAddress } = + await createVaultBuilder(cvg, operation.input, scope); + builder.prepend(ataBuilder); const output = await builder.sendAndConfirm(cvg, scope.confirmOptions); @@ -92,6 +87,7 @@ export type CreateVaultBuilderParams = CreateVaultInput; export type CreateVaultBuilderResult = { builder: TransactionBuilder; + ataBuilder: TransactionBuilder; vaultAddress: PublicKey; rfqAddress: PublicKey; }; @@ -128,7 +124,6 @@ export const createVaultBuilder = async ( const solitaLeg = instrumentToSolitaLeg(leg); const serializedLeg = serializeInstrumentAsSolitaLeg(leg); const expectedLegsHash = calculateExpectedLegsHash([serializedLeg]); - const expectedLegsSize = calculateExpectedLegsSize([serializedLeg]); const recentTimestamp = new BN(Math.floor(Date.now() / 1_000)); const fixedSize = orderDetails.type === 'buy' @@ -181,13 +176,11 @@ export const createVaultBuilder = async ( ]; const baseAssetAccounts = legsToBaseAssetAccounts(cvg, [solitaLeg]); const legAccounts = await instrumentsToLegAccounts([leg]); - const riskEngineAccounts = await getRiskEngineAccounts(cvg, [leg]); const createRfqAccounts = [ ...quoteAccounts, ...baseAssetAccounts, ...legAccounts, ]; - const allRemainingAccounts = [...createRfqAccounts, ...riskEngineAccounts]; const lamportsForOperator = 14288880; const transferLamportIx = { @@ -204,6 +197,11 @@ export const createVaultBuilder = async ( quote.decimals ).mul(new BN(10).pow(new BN(ABSOLUTE_PRICE_DECIMALS))); + const size = + fixedSize.type === 'fixed-base' + ? addDecimals(fixedSize.amount, LEG_MULTIPLIER_DECIMALS) + : addDecimals(fixedSize.amount, quote.decimals); + const builder = TransactionBuilder.make() .setFeePayer(payer) .addTxPriorityFeeIx(cvg) @@ -229,19 +227,13 @@ export const createVaultBuilder = async ( collateralMint: protocol.collateralMint, riskEngine: cvg.programs().getRiskEngine().address, rfqProgram: cvg.programs().getRfq().address, - anchorRemainingAccounts: allRemainingAccounts, + anchorRemainingAccounts: createRfqAccounts, }, { acceptablePriceLimit: acceptablePriceLimitWithDecimals, - createRfqRemainingAccountsCount: createRfqAccounts.length, - expectedLegsSize, - expectedLegsHash: Array.from(expectedLegsHash), legBaseAssetIndex: leg.getBaseAssetIndex().value, - legAmount: solitaLeg.amount, orderType: toSolitaOrderType(orderDetails.type), - fixedSize: Array.from( - serializeFixedSizeData(toSolitaFixedSize(fixedSize, quote.decimals)) - ), + size, activeWindow, settlingWindow, recentTimestamp, @@ -252,12 +244,18 @@ export const createVaultBuilder = async ( key: 'createVault', }); + const ataBuilder = TransactionBuilder.make().setFeePayer(payer); if (vaultAtaBuilder !== undefined) { - builder.prepend(vaultAtaBuilder); + ataBuilder.add(vaultAtaBuilder); } if (receivedAtaBuilder !== undefined) { - builder.prepend(receivedAtaBuilder); + ataBuilder.add(receivedAtaBuilder); } - return { builder, vaultAddress: vaultParams.publicKey, rfqAddress: rfqPda }; + return { + builder, + ataBuilder, + vaultAddress: vaultParams.publicKey, + rfqAddress: rfqPda, + }; }; diff --git a/packages/js/tests/unit/riskEngine.spec.ts b/packages/js/tests/unit/riskEngine.spec.ts index b3ff9f065..6d5f88cba 100644 --- a/packages/js/tests/unit/riskEngine.spec.ts +++ b/packages/js/tests/unit/riskEngine.spec.ts @@ -1,6 +1,5 @@ import { expect } from 'expect'; -import { DEFAULT_RISK_CATEGORIES_INFO } from '../../src'; import { createCFlyRfq, createRfq, @@ -13,112 +12,6 @@ describe('unit.riskEngine', () => { const takerCvg = createUserCvg('taker'); const makerCvg = createUserCvg('maker'); - it('fetch config', async () => { - const config = await daoCvg.riskEngine().fetchConfig(); - expect(config).toHaveProperty('address'); - }); - - it('update config', async () => { - const { config } = await daoCvg.riskEngine().updateConfig(); - expect(config).toHaveProperty('address'); - }); - - it('close config', async () => { - const { response } = await daoCvg.riskEngine().closeConfig(); - expect(response).toHaveProperty('signature'); - }); - - it('initialize config', async () => { - const { response } = await daoCvg.riskEngine().initializeConfig(); - expect(response).toHaveProperty('signature'); - }); - - it('set instrument type [spot]', async () => { - const { config } = await daoCvg.riskEngine().setInstrumentType({ - instrumentType: 'spot', - instrumentProgram: daoCvg.programs().getSpotInstrument().address, - }); - expect(config.address).toEqual(daoCvg.riskEngine().pdas().config()); - }); - - it('set instrument type [american]', async () => { - const { config } = await daoCvg.riskEngine().setInstrumentType({ - instrumentType: 'option', - instrumentProgram: daoCvg.programs().getPsyoptionsAmericanInstrument() - .address, - }); - expect(config.address).toEqual(daoCvg.riskEngine().pdas().config()); - }); - - it('set instrument type [european]', async () => { - const { config } = await daoCvg.riskEngine().setInstrumentType({ - instrumentType: 'option', - instrumentProgram: daoCvg.programs().getPsyoptionsEuropeanInstrument() - .address, - }); - expect(config.address).toEqual(daoCvg.riskEngine().pdas().config()); - }); - - it('set risk categories info [very low]', async () => { - const { config } = await daoCvg.riskEngine().setRiskCategoriesInfo({ - changes: [ - { - value: DEFAULT_RISK_CATEGORIES_INFO.veryLow, - category: 'very-low', - }, - ], - }); - expect(config.address).toEqual(daoCvg.riskEngine().pdas().config()); - }); - - it('set risk categories info [low]', async () => { - const { config } = await daoCvg.riskEngine().setRiskCategoriesInfo({ - changes: [ - { - value: DEFAULT_RISK_CATEGORIES_INFO.low, - category: 'low', - }, - ], - }); - expect(config.address).toEqual(daoCvg.riskEngine().pdas().config()); - }); - - it('set risk categories info [medium]', async () => { - const { config } = await daoCvg.riskEngine().setRiskCategoriesInfo({ - changes: [ - { - value: DEFAULT_RISK_CATEGORIES_INFO.medium, - category: 'medium', - }, - ], - }); - expect(config.address).toEqual(daoCvg.riskEngine().pdas().config()); - }); - - it('set risk categories info [high]', async () => { - const { config } = await daoCvg.riskEngine().setRiskCategoriesInfo({ - changes: [ - { - value: DEFAULT_RISK_CATEGORIES_INFO.high, - category: 'high', - }, - ], - }); - expect(config.address).toEqual(daoCvg.riskEngine().pdas().config()); - }); - - it('set risk categories info [very high]', async () => { - const { config } = await daoCvg.riskEngine().setRiskCategoriesInfo({ - changes: [ - { - value: DEFAULT_RISK_CATEGORIES_INFO.veryHigh, - category: 'very-high', - }, - ], - }); - expect(config.address).toEqual(daoCvg.riskEngine().pdas().config()); - }); - it('calculate collateral for RFQ', async () => { const { rfq } = await createRfq(takerCvg, 1.5, 'buy'); const { requiredCollateral } = await daoCvg diff --git a/packages/validator/fixtures/accounts/risk-engine-config.json b/packages/validator/fixtures/accounts/risk-engine-config.json deleted file mode 100644 index 43d8a2ca9..000000000 --- a/packages/validator/fixtures/accounts/risk-engine-config.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "pubkey": "63zhouVc9DsAWsvp9CaJ7EY12CDK984Yt7heVbTsJxcN", - "account": { - "lamports": 9744000, - "data": [ - "mwyq4B76zIIAAAAAAAAAAAAAAAAAAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPMEgAAAAB7FK5H4XqEPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "base64" - ], - "owner": "CtfTi4TstqJaxEh8giQ7kK8CKXsJyF9CuwdcVoqGrEi1", - "executable": false, - "rentEpoch": 0 - } -} \ No newline at end of file diff --git a/packages/validator/fixtures/programs/hxro_print_trade_provider.so b/packages/validator/fixtures/programs/hxro_print_trade_provider.so index a708cb408b1df5351401da68c683d5a5528ae97d..c7d01874ee5cc2933f4bdf43d7cc2ffdfc666d38 100755 GIT binary patch delta 72580 zcmb4M349J$*U!B(BS8`p2|*HD7E2PUf+C?xVtXP=>`82)Z(oTuD4tM+Qn8IVwghd1 zBC*CO653k2NGuh!mC#nGR-%^BBJut2%vhRu-?v|Wzq-$zx#!%o-E+=8cV;>}$M?)B z-(`*YnO~MSZT(vHPwi~P-?P@Hy56;6Xe!~q7Tb*b&)en8eVwLxRn|v6ZvW)z zaq)SpGS-*Hs5yK9uUSdWU?FUc8Y}s-m8u7C!;;jjO1|s^)yjLb)?yGFucot5_O3oA zMjsQUj~S$ovDFcMBkPFT>w{YBgPQAunu}5u^BH2Q`7$ zRd2e@a5+x71>5E}*3dX9gcCFMVwcA%f zFyc9aGe_09I#D&s&(Oz)saNWF@a&^%S)EkA3A9uT;OiXJ+`7T+54EV8FZ*4Mt>Uc? zc7MA9u&W6?=croXp2}kk;AjUm!y}mQTd8I{`LLa8kbOtiL$%u1;~@@eh;x6wYNeX$ z?8*LAvz&c-(n|HZ^D0)RT5ELV59+E3&YnDOrCLxUjQy(myDVi7)hw6h?2cOG(vgSg zIQg3^)&8zgOj9#mH?WU&$aMx}jg{*DnqknRfLt#i`6_$$M6F={yQ&sf^I_Ljf44S# zj=h>-@5vMF)%k8AykA{4*R8I~Y}Zxb@P3(%y3^K!�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

J4lSdm7jh1nJhE`rV+RfVztt0-N|fxR)_V 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 IargQE0PH+^ZU6uP delta 72437 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 diff --git a/packages/validator/fixtures/programs/psyoptions_american_instrument.so b/packages/validator/fixtures/programs/psyoptions_american_instrument.so index a2d95051cef323fc467babf392367748308cb496..75ef46ca18c3e7f0ab03989e223581ee91654da0 100755 GIT binary patch delta 6071 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 L46(OJKbidtC$`C) delta 6052 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 diff --git a/packages/validator/fixtures/programs/psyoptions_european_instrument.so b/packages/validator/fixtures/programs/psyoptions_european_instrument.so index c13c48648c30712956fceb1a13c83168527c4415..6dd9f11fb6d9015a735ac4efae7565c863441968 100755 GIT binary patch delta 5959 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 delta 5897 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 diff --git a/packages/validator/fixtures/programs/rfq.so b/packages/validator/fixtures/programs/rfq.so index 68b36c5821280fade611360e0d4f2a84af82bb7c..e47160cb74c61d5bac94fffa87eccdafe2f90d3a 100755 GIT binary patch delta 75366 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 diff --git a/packages/validator/fixtures/programs/risk_engine.so b/packages/validator/fixtures/programs/risk_engine.so index fdcf8783c375d949b7c1b93aa453467e586ce09c..89b3baaa199f0cba981552506c28a524f96789ad 100755 GIT binary patch delta 55265 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 A-~a#s literal 600608 zcmeEv3!GI|_5YcH>x^Vx9$v&Lnmh7z`b`49aC{9QilhyqR}i&fcr=Xo;Bpl>o?kfw zifHx|e3JHH24u$4hWb@Q54%{FR90yHl(Yxgi%N^Kk}T!FzUy)BzUSV{L&1Lk|L4Dz z*>~@~*4k^Ywf5T2bIy&E&p)TUtjx2}$9u&?YQf5K&T7ztb)yc~U!K?CjraP}-+tcV z3>%}8q>_lnKmYYgc-gTz{4w-17^wLjx%_E_mmMc*(Cwi*vYlE^zh_dp-!W|ua#CeSa6z_9 z%So)=uM>V+(!G5=5A}e~*q00W&n_;6`wxQaCH@g&9yN}_-sn@anf{1<&^NfG(nl46 z%K08tLZMg9%^xXgf0)Q`=*j1EhCgZu$Jx13UP0|!KtBVOS9*a6Iz9JT21xZ00YeS| zsaqipi+N{rxqmDPhC+NfM_&5a%`h`>e)(Y@iQ4O>>Vc6cuhqDW^JAXK9p!+FdBSj_ ze7Hwd5quf-737PZ15VO4luPnl!I204VJ9;XQx@zAaCPI}$pBetu9xjlcwz?n2OKzn zUe6dW`U0OpmDojk;{vu1vjf0A*pKYFV>agpM-xL7{EnHL=A@Tt5qUIsv~vF3qX%$7 zbH`PhK8n*7)GV;(+T|kR%j$!?S5rCaec>+z*Uo4pk3swc@*of|d$i=I=M3i`ezPn$Iw0I!Xv?CJ6nbhTPR|*^KOk=eD-Wu)omWcxjIW@X!92fH%e8-JZ?SRAN>)ci1ruPF1Dfm#RNnF_)9iHzuQ=Esj_!*zTdTj(|*Txi3f7F=MRuJ zfiHxhUf_Z%feUJd4%+j;5ue%tn0LMUoz1K{rzc$B~EchKid&d54? zgx;aYtvc2N0D3%yV(4+JQxEhw%}Il9nWM+IqMg5ee(&up<90%-(DMr_?@bzaOMKh9 zead^?KIHuj@!@xfzFj&0c_-v-^*_z^_#L8O^ZR~>=s&2MspV=H>JR-6;V-CKpykSU z)gn!6d#aXk+SPj&d^>i7c?$aV7?KC{HR3P%@4TU34QkF=~MLdze%5e`1673^VbBQZWg^2>QnTR)6?t%J$?Ub=(COUb8yQF z;J!_8Ien_%X=X6?mzUB{*Y3O&XE{))lENPS5H!TIR1;dcv&$IFXy-0 zq`zprp+A=HN%Ju4M`B0d7ezsp`iCy57xSp7KW6`+{1x-Z)8VJq2!3|C#u?fg`VG`{&;W$(~Ehs06K8KgBr5=~><~+WQFOgTEeC7BSdO5zQG2ecN*nhG9GtccmB9`2G`j#P#Z~YJRdv|^e zK9d9iJBB|=d2y+)y;5SGuV!W1?^V#e0rKyqe~9a*Cwu#-P zh5w*xtEPpH%}X&)+Vt?JPDJjzPX6%UZQhCen~&MXi_N~zeDc5K@Piae2)9p|pQ_lJnDTwH#*-8z=EOVgRd9d=+p?VxF@(ulxu$}Ycns(=6Dsw{x5-KZ@&x zU4Du5?dyI{FU?<3W8Lt>!tyVpd;ljsU(h_vYu)wI(2J`Wz@2}vKBW0<_YaUgh2w?t z?Wct<)&s=$p4@su`$y+)=GWF~{(7;8pkC}PxIx-w_8HVmdxKhmE8wS7>mxfiIlX&b zAzwC5jwp|LuaHc@_ilh4_k%0b& znIZIm0CW5!;aWcpmWVwB5j%)^zh}AFdOTet{vc77U^>O@;f}r7L!w;p{I@{fuYD5z zkAz7fsvpSXYwCYeMeN1&a`5a{=H*d7Y(E2fIJ*cRuHBMKoptaZSTDuwW_HAGk~?yG z-XFVpZ^UknqDn*5c}DDJ6d_YE`|+3Q_|-1?dmF#r{%4F|(t%w&<8frM;6rZj zfxUGM;rbF~vSHJ8O?aUw!3g1R9i0U)f&$#bP)9q9pT^UaIqeC1U@X=se&s z;X4>9@WBDj1AMi+aQu|&$=<)g{A5Kuxqg11_H(s+^z(b(A-V>`@F(B|dRn~;{apR@ z8k9=@{70}3JCoCX5qhQOy(@`c!mD9Cw;%F;N|Ane57~*oM&&tB;-Gf(>mc9{6ukwt zn=~zL2x_|}J%Fphx|Gv}{c%f}pFa=X8s_KEL$`(b`SZ~2oFBDwcOJS9=T=UCJdOHe z%+vW&hwusgu^jG{G~~aMor@%G?Os2V)Bc9pl0Q|_LH#tv z)BIYYQ^0qp@W1O3_!GqGyTssw`ZlJMUM>C0SBDo!lFk=P_=Eezu6*5haL+YS z6Z{_6J4oxLG(ymCk?=ojnZ#39Ni1sfQnY>mM$G%O=x0q5Xk?!YgwHkNC+K{K)BZ=b zpLQ@9@BgrUbZVOFT}^fc{rvt)&ui9m(?ppJ?AeDD?r_iB0Q+b6A zZ*nag$%r<7WA2=1TB@^|IO{nwG-#S!@pS3YM)^lKQL?Tea4=lYV4d8^n?3&s!i$9o$$zD?~5&;8a2J?QZh55xbT!Wpjr zAL5+r1MZ_ACH}P@^PBFt^eE9!@F^|Hw@dl2p!uFd2YR-Bj3+nb==tF|GVNc$%#9;c zG%a=$)HX;u97o1;+MVyt{Fn5<6~u3WA6>6}ksXgGIBN&m7kr|)|7ZRk|NkwL7tNp9 zE^_{V45#VbO!(^@FKOd0`-y(c&h78t#q!^qympkyxYW51c^TZt3C`~jy=Ddv zB+tbCn)RL;JV4W8KbgV(H7#~Q`#zc$zQ})bI#{xsxFBD$au>&bhuYoXot%b#xZL*H zI>jDK`}^D8u)lv>34g!i)5ZOL!#~L%riDNFm*>}#Joe)6_mKRG`Fod+>+g>&>hIV6 z9X00s{aQ_%zh5os(BH4(wCnG?|1SRUo5XK{-*o)_DuQ$U{i7c*?(dm@$KO}7zi(js z%lZ46oDQmlAHQ?9q-&Mm^;0x|LP_SfIY+rE~@84 z>F;;8Qa@Gykn`tar>U|x@9%#?^mG2cf#vV|`>4Eda}sj+)k{VCy)!-<+|LP)?4Idn z2LGNr60O@c{X0#I{bUC3)U?<|FnEWig|A@nc1{ONwn@BltCp+X4c@}(LVqvzc)Ht1Y=#BnqB~x^W3S_d z>`VRs{h@=uKXl%LgR?($_CEZdjTdJT+*>(b9J|-?;?3_54d(IU&F>GrGa|oI`$I?b z_%WOP&;N`2LpM|VitP{0`c(1t!Y*fD2jg(+zMS8;dA7ShjjsNyIxpDbF9K~ z#FKF%JZISb8U`l2CqefMBpr?;J2~yH7bjkNo*2yY&o(6>X_vzjcwxHdM=dD{WY!?1!ZIO8DHi`GS zUf3jjhUSF`5>>=zM_F!IGrJD>1VLeYLy6{W)E@UJ!dc;Pt|OoCiEX z?JMT*KlV^@e-FRu?hoB}FY&*Z{h_ZA{bK&!rQ`bh?{wto<<BmO?g>7YvZ@jGpQ zU-@0%U;X_MftxDnpkC+@p5)gGodUice`4d=Waf9@^Zk#LoTGjq=kKLn+P4(`21fn8 z?q}A@zUZ4j50?Gcx6a@1lzq2Zx^Fwx`xjbh_Zv%}2k&6Kbm;H5bGn$nXZvvVqxSd6 z?fL$`Kl^*Ln?irj_E^NHzPHI~0A{dO5SHKHjfu0ux zOXQp&SSjZNG%sZO!QkB`{Jq%YzWjZl&kKh4e*1Xd_46}}z{C8jugzp9;}_krJ4s^y z=t};9`(RgJJMS7KnipR?FS|_2d$8!CV9yE1FVghQ5-*K;-U;-xg~+^};>MYhkNd{W zi{~@F`7QocJr_%UV9zg(kn{|K+e0(ko*9ZqQD**iK2me$&0o?(=fnshA1fujl&-fO zPd~G5k|q=I;OZM^OFDb9#DGiE&lYMQ;>Nl3heCFV#PM?^&R!?+QgV}H=w}PnOD5tq zo-6r1sDMJ8<`xJ;#GOil9@%J|EI+f#Uk}xbV07arYI>5yJu1hz@iSlYLwOQD%kvV& zyFOR`Zu$xS5)?P8+3x`>!KJ7nYh|l{3c3J=ux?vKI6)dJrA&ydJ(sq z@VVWi6_3&g*@+VOOqba1BgU2^`dlbfeX`Qu1Lp$TGW!Jo*F9^mR@S zE=fOI$Q}?ks@&sKC_$lTg~X@bPV9?%YeG)CYt4@IDLEU&+9{%Q4B5TCnn52tFgln;QksU4ln`7 z53sb%<0n3cP;nUrKq0p0*|LKL?|9V<;P$-!I?ur0oCx#0d$la@Cv7C3wFh{0D7 zJmBnJQrF>%M|*S#+504h{h{$_Uy1^95jRmjLN$*FIryeqB!4NpbI%PC6OX|5FgMhej{#LgkR`GY$`PG8OUj0 zpA)Jee7Hoj*SOkw(?twM@0-{v^==fsN9`%*eT~a+p?VQ8&am8ce1yG&epdaPz1JZC zAqw|Mv zHjesZB;V+mJQDQw2b5U9vw3J2<*^-Gy&_f*{SrShFUqsWv7kcs=k+d zj-N7m1_!y&|6Y@rw-+DI=w5b$#Ly3s_TnmMlhg6Yq+oI}`->}HTItOo;^50qCjn0P zi{H<2qWlVu&3{>chaExX?*0M%em2A4yq;*IfyYA3Ra zCnXJk1UVyx*!)1)4@hp@57Z8u)(BqqCW%cReuJb9AMf`8Uf2()9t5-tdJFqOlCwSY zN6-W0RL~E`30$?pqr7N8P`xiDa8%heM)3C84+t!;AE;i@Kl1v)#X`^YZS4>HLA%yB zLE<#&2%&`<#r;5I^Uw2X2!=euexUdTdZ`gQS=C=CN1_LO)3=p}a-??T`ICu4r&{Tu zp1gix_B~wdn!EF6z)zGvq__FNS90Typ}#x1oEeRNuX5 z428hXo9ua9Yp24w_nkLWdu*Q+{U!Q-o6$cc|I#dU&F_GZ1)oH}eH$0J=TMLj=67%O zy*4AiFZ&=wW{=6u*3DT_Q}|vid#*Zhn2g89C-eeQfY15!iGL}k=d8uxiow-?DOa!g zNgJ>1eQKb0)$d5Y`W~1IenVffbZ}* zeM%$vYG>&_B7k(?<2XNjKA$?ewHI80p!0VOd{pG&Jqa)Dn73#aE~yjqSk=LkQUlZC%P=R=vpq&!$D@WCa*k3EM>=L?J< z>bZ#AE~i1@|I2M3aZ$i2?V)pF;m) zh~_73TtfK;TuzRILb39X{XFNd>^ax$Mxl>&*fz4$us;%+F;oP)dv+4N4uvB&w-Ox2 zp#{!+u-tz6@YA_^Y(LQ-F8IyIieb;KmHBosRs6YsB2`4e=anhd*D3HAH!+U_9}{VV zAZnj}v(U4CY~!qr1F3S6m-+Qvx!|Sry-n~_Nvaa}4p4&no|;GeG%H_`ar}+YA046p zO`>1Wo&^L%!Cx-@G<-iwyYK=2U@745QSf)m6oGG_$#JSo`nkV+8mANGIxaZ+gFHb8 zp|`KRm$Fy)TR`_8e;~U0{yD4P?8%kSBdEW9C)lBT6!@E)FTN4^BnjW8-@){;%YJa^ zN9BJH=r@Bp)l2%vO?|iiHB@f;8AV(`HCdm*z4$Q_+j|e-$5DR8eME$U=_TfUpXVq3 z;!4g>l)oxz?cb;m4TRiRP<=7)?_6&CIzEU}@RyI~I8iPW5dW4Wr?VX#@$+6$y&g+N zu3o=JdbRrKe1hvq>AQ82kC4-QUru*XKA8)@_Y-`Y9f04fA;0Af4430;Jf~g0c0}y$ zT!L`<`g9&&GS4gIOZGt$<@@Gq7Wiu4!hnauF5k!W_1^A5uzP6MwY!O+-^^lUyTpxR zxBN^hH@gh&MByPfSfG{L`@Z}+q%aEBpUrQYJwTr)px!xVXJQb3a}sEw-2m=A%%AA_ zTrvvOmwO-86o${$)4*xBo{@xa?_W!m$$L+HT>7Ap!<)@%7q6Q6YvcSx`7fm(H810I z%##k;tm6URgM1{F_;ZFRytPN<;L<&c+av8RY>%`v$JZF9=i(p1?U8n;%C-q#`|)1D z7`JDU^7n0RkI2EL?-5+g`=*rZIwIsp*CQ_ct8;VuH#_icKB9hS2I&nFvGpg$MLJgI zaRK_Q8zzJkWg;&>ZR04jOY1i5UV7d~=pW$iyvO!){fxqos{~k1uZriNAar3*zaoCa zc?S`L#?T&MqI`$boh%(p`hbCSweACB$4@UDNWEY_YwxNd!Q4)Jve{o5az{%mRQA@E}_F#QDw zjegX=o+0`L_H_vLvGow^nBzaotXCzE)VBHq2D_~_}>q|H-sSF^>vo^$#d&^ z@l&>rcjc6UoLZ7n&jQR^Xuq=3=C5cq=JAF5NzwH^?!mkD_i+8TelK1BT+}~jiq_MQ zV>_2=A+)}fQ$aCi1a=<<>z2bQZT{Nczg|6-(evzJ2Ix2EkBc@RwRMa?SIeX87M-`c z>y`_Mp6PcKsT1wSJ`nhe(SHa?b3T>hIgOND>kQ=_^L`}uu$aNA9io3fE#s4GA7@d0 zG4F5r_HhXP)>xJoT0?R>2!0+Gn?Lng-<^ONZIr|O$%^|d>-%@>ta$fR0(;t7(CI9_PsFOFAwK)bWTp&c>G;EAlUcVY(AYhYzot{d8@xc z_Zj+PmP+HhL_E%yQ97v4&GS$m&SM88Q5@dCOX<1+^8|^9lRzp+8FHLWR&nq7PODG_P11 z%@_V+-oLp16dFVU_n{tpPJSbe_PiVUL~qAwDilg%zxJD3C1!nVQKIY}K=bgq(IFJa z*Km^LD1I<<3QK5Pwdqarn_x0?2C3}nHCo0vh z2px5T|Iq%Ht5T}qOiY+SbVH;Q4{3!@NBAQ zjwmz-x0>->xGumo?`8%M#(E-2HMs3~fa&vbRA|?^`yK>L;Xv+#j3#)O{vER&f1>`w zzPsA1dP?Ydx<69v0qbBi*z#>%>>o>+6!82F%42qqUF|GYCKvJ##9ps;>@{_m^rJ-V zeR4iGlB@GlFuUbWiQ=ELNukq15!e5qq;cPL2kMt@NqUtZ z$cLpEKXt>ke-Xdn&+Z-h(}Yf4AKfj_kQydD(aQuaK2>a z2XasF)nAfaJA@Fddq%U!$^44Fm)pIEIGbdZ z!xy?XUKhJh`~vYGZxy&e-y0v5OSrD85xH8wtQ+)pMnt=D@7nCuKSk;3y$$SN0@J<& z9rC|e;4q$^vIF--Wxto61Lp#pm&W*M9?}=pgD(!C|Itq#hriTB^4F5e} zro0+T!G6`R65RFIdEUaKr9JQ`3zFA<05HkcYZe7Z6CwrV&!3mP3cu%H({i1CHyZh= zYvwOQ{-XJFDIdRz*T07A&$TzoUyIvbq6_&4{iXh(zvwAg#N@es7=i6M8O$%YM!pv` zb`#+rmeVhhEckA6(5Cd;1TN;iyazRe>lmGSVba-wcJEw@w;=xprAKLyjPb1p>VJAK z$L^b5F^~j7!Oq>G_YYE54vvexc#XuFw8Z8I1D#jJ?7NX#UaZ~d8M$^z|C~YmaeF9k zBhr~0UKe@ld~PW*kDhlf#XC^0a)Lb3-cs_w_>Y#w_~~MTE2u~AOWAq`^`J`Bv&*T+ zE$8~EocX1=jp2k}@B=>g#!p`=_ZNu$nEb2TDU-q(Y4xAYk`Dc0M$*vBX6PlvmwcNy zxc9T^H6?k^xt;n;@}u12$e#841qFUI;_q!fl=IhO?+4=VJHf9$UuW+V*_*!~4nFtg z@6~^Yet)>ibF}d1*N9w#s?}^qeyilC4i|&6=YM-iUrG9h{ssuhw@(wz^H{57XN!)a zQj*td@pIPi!|z+Fe*ql;F6=KImisU8lJtiHy+1@^^(*%LN6c%G{M!~VpTP}_B))RC z@I8l%J^EgT)wf!Trmm-uks#FBMQgIV5BI68?HA$GuY!Mn3>Tq6}VH;84H4rzGad zye&JPi@l+l-!OfDjmRrIN%HF^Fq@vO6SC(>zCF)eE$Z?7J0;)r1AWdTd$Q-QvtkCU zZ$M(60Lpld$I={wZ}2&fv%RaA%lEo%-XEjcAxiv>A}7Cd0jI-twth$3=!1_hzn|2WzT)Zb({$Ik=9H7sOMX#N9~E8Cu9bV4|hJh6M9-M`~z>{=fK}?slQ6> z(eK*DX@8^GTd{tB6X_@V99%KDONl<}fqkGHA<*XzOkQ2oPL$jCd|LbL5I)lh?r>qQrk&-#CTM9(I6&}Rei%h z!Ok%M*%Vptz4}zHeNjCJ=TO5bgx|+9eRs`f`Py@VHXhk`vobZ}M={Ta$QGU|?WXTE zu>^w~MDN)JOg`Lyv~h9hh2o$vZ~Wj-)mafJ+A*49v}0|g9Sz@d+R-Kb)aFn2K7;fC z_3u?vg#UJ_e-zaNJ=k;J)~*W5hs3iNDIC=cxL}s(3wCk-3sk;X%FV7ryI&*upo5zI z^*OxBgtxFoc+z3aFIfFHzqEc-J&wU? z-JjndLjSZ}$|3g#l3yVo3%LD()*I!^^c3o+M(El6#N=f6T3mgNLw)L>Lc1C(_yu-P zlSW7^r(e;Ft>f)IAVKXG=GR}pP57?gEU|qLzP4NQ*Kr*BpDK}$-zj!(^B;d>8^ihC zV&93ffy^MrC4`_}<$9B(ZJi!tYk)j==haW|JJYoAk+VbL$M0M#^{E`KUVG1h@niL* z%H-aX-?2&QN`3U6PEAXFx$m3r<=|~ zt+$FDgAO_kbUKd_%0E@|6`^CwBgc0T4$lKxEZHJ0{I68M7gX9ZSGB+qs!-`n_8`&6#o_FSL& zA6s_}ZD;k6|2aeI?GXLhe4@awuaSDAe%<`6`9*tgn8^e3zw;NQXSM72okGX_g^SPg zniWzGybl9U`C6D3dFT4eHsxF7R?2T1{njC>FO?torT^Lfd3;|k>qf{GY2Md}jE8%+ z<>Xqe^U$G#K?Q#NDCK7v$3{O;ztTeUe7KBaa!3*h{~@s}cbr6i3#lD=*54tQ1-}q` zN4@@r)m)#gW6o%&22ikZ;0(Mtgo58C`n7pSqD=M;Y+SVS2wSJO5E-ubE=Kq4eMQ?X-FJvS>3!gwZ{tB|R}+Qa zD5A^b>|jaTdy!hNSN)zR`DX8RmomG~IJ-&e4ZmOCt!e3pp`TRx;rCCqy;i@;*XA+R zlce6DUi^&Nzm3D$nNkk@T}1ke))V?`n-7{lS3dVW&Wau6##!M5^-ZSwZ2e>QV&kjH z+1?Xm^GsV`;@kxqcl{bvo7MFa&P$L!V~*^@g?7^}?G5FmcGN;f#dft^%g0F^m7~E0 zvlg*_(2oCr+#Zy)wFBn~#GYsUriBuq9}nkIt3LdQ^E=P<^1gFsc3KL}1f6 zM)KhPC2qruPnLYU?-5KELHZkZN&6;~Vkr0X8Rbn4$4f>_Kjz9y#9i`WBUFQ+b^M@uh5@pzd?Wa z&JOUM&sXS2!ufinUEMMczd*ZbX16PJI9H6pMDMbSbtv-S$~f~ zJ~^QUk@?27$8+-y;9caNJ5ghjiq{swJI}$heZlCtN}^Ka;7<^KZC&F}6njsVOL?L~ z*O}@c%`Tvqb1uie-~i$Rb}j>^d#;D}+rB8xj~LFMz)|@ALVHgz=ru4s*_(**ER5(w zaTLtX-1<*uc+`UW#bHG2xBWXiS2ljKZH$(8PK6xXj|-NFTx?&_-qVM3b#52w3vt~< zso&OvGc-TdM;w8#{m}SmF}pce@UrJBA64RSMv&o96)ZQz?)qs9_RG{Snjf)xac^K5 z@YHWZo|pYn#vRmT@4v+R+!1WuYxnk2Wtvaoh6VVYTezPmD&@S=VS=JBOEXBlN#IA4EIBM{wnC@q-=UTKd&C)W1Q~)NbCt)cFP4-NE~Y+ZYe; zOF*#srr)W4eX-biFi_~2p8d`pf~WU>K<{%sxqfJLkiW&rw|!*u*A;39kTWD(H%{d% z5%25cXZRiqeLlg?i$Xg&MG)-%BJ2a4!;U$IQ=?$_a{M`xwt2O^ciiUZfxe%})n`$8 zE*3h_D>y)Vm*mM6)|r#5^*if7dz0rXM{ce>?{)J3Z|HA0@^JgxOE3I;`dgHbpAa8! zWq&&%&o174e>>Z;1J^#LJNaRM8_s6v**r7sZ|0Y!`|N*zi}>Y#XMd~Alj|GrZ&i-m zTzQUm^53{TM~fdQ<-dx^6D@)NLX7(~)J*od6jj^3zoucLSGx~q{_Bd2DAe{BY}^UQ zHS$;Ri#9&C5Pizx_xOOKKM#N9J*dbJ{iNQ1Lw&%v^PzqDN%+Md@^?#Yyg{qpm|y($ zXNr$AFFX0>7ejleMnEF}o8}>yio1Ss>c7b^M)^4PE%uA6^X%fy`^65&4%~j+2@38qUro5Jt8*71B=D@ z`fMKm!a&UXE%O6E1d_oGG7ok8JKnoN-}4hVtG7z}IqD(TLjGebmt%d_|8(IQ3N}NVnx4`PT{^cvk$zAJ zocp1$FuNaW=isOhkfu+h5n|qZI7a%dx+i%R%TLy+|Bic_mvj9xexTh^{f=|`7s{(h zLZ;U@a!>PLpCbHy+|#sqf!$kA^(pNq&L;kIe&Xa%f8f)`Z`kQEPCM-Vsp$y}PWLdy zPhkB-X0#_5CwF3m+K-cb<<>;NqaQ`>@i@qiN#gS}pHQcU$hrPdkDg0Gwd;ifRx%tq+u=h{w#olB5 zl_AXA4!*yKn=e;KZi)$Z(`7uw18r{_Rs*D+7tCmGbP6MwGvvNHAZT#IYxJJ4^O zaS95y@d)%}+}f^mq`f>&<&9sPxSaFx_)mDA*CBZr zAJ#IwjH@mk>?>hCFwNlu{^FI#a&{2P{{FI8{Yu|3yC`OV1BkzvC*xs(y&Wg^Xy=y&_SP-sIIkH(c53%OV0Qyo zlfSx8@gw{5SQjU$2yid{6n>U|P)Ofd%W{`!YIsasR0pSq^v5{G?g z(4n_OQh2VDLe4)j2tKNIb%8Y_50|Vkz+U=9Hw$V zIVtH&R9<>t!1iNvDzb_C*GV zac>dG(C^e|?jI-V z+maH`8X|F(_Md*EIqll-G}vXQ@<~F(z98iLsrxZsna1#`vJt|^L$f*Ucg&P{py2rf zM9#Kf7SvDS@}R0g;@a^XyY-HzdN3Yu{#j1{zy~GNU-My-pOEzu`aU)DPcukeun4

6jGJ6i>J&97Y`a&z><`f8T?Ag8~QoMIkLwkg=YB;g6Ee&4>N4=@dt-qqOzXpm|XU)uK^4nzBjvFY{L4j z-yV5y_ALy~&$Y0=Rw%r#=fdYa6wiJC+y|jA^&{|4@NBN#`6%yD`ebL2H{iaiJ@1HVK1pS1`20pCH5z#qu_6_SMF@;jIK^*e^Jos_13 znU;&fbM;F)RX&5u(azBk`ZI`r%)3a+sZnTeP$lip$zjJH?cG=*DL=Hxt+dWayxk+aua`BOm1UXZtr1ydk)IRAAi~qk^;#~mZ!P%B@!a+rmg{h zNzV`}g`i6O0PF-Mu6<%&0XXEdKll{c!^W+`_xddy$Go31L4O9Q5xy_6-7m}DE9s?r zZ)Ft4=uu{8=2z%?B^An&rG61 z3gP*T(z#-i&@p+;(0n_Wq4)eVfGd|>5xG3Ya@nnN*`;#%GUEkTiaiJY#1Et02*E7z z!~P}GPcUD(kpjvPgMatCd3K&;_eByhnJ0wL$(<*D3iBqG!mJ&ZnDsLhCLfn|3KNNyls~8Ua z=6&yeke1i4<8qUS`6Kup%mahkMS@S@_}(Y55ZgW+`UgCa-EYlY2ne!MXZ(h}G^Hiq z?(bzTR5?;M=%Ey`i$^SbL;aD6yzDXfOR?(Ho=-^ENPenp_ntQT89qOy^|uf<2-v)_ zTJ;#zik$}cOMkO^y9gNeV0dADAznAj!_H?~%`Wu$haTkz_XIQZujA2S&b;|cdd3Q$ z_FOOg{20oz^EBuUE~in~_5OO%i`~2JQGNQ|Vh?t2+SUKNLGL1|r-kSPrBU^4^GAP! z*iFv_fy=7>EhYPcU7DO*4p;j;PvHCwVn=q*7~kD>LV4pvN%d&`JtHI?SH82;wfs(r z?cOx(7ItpuZ~CW&sN>ec39OG&QWF4cbv z;c>f`3%^;FFW`U=y&-PAmHtqO-z{;E;@f-vti3kRgP-Ac5q)l#+LP^rp&WJu{S2VE z@gk+Gdg?KLY9!zE5%O#L(taB1{Um`$|75+ZJ==52Jz8%4(C$TBKSV!gz6hWBQh4jn z)=#2xhyO`Z)s4!p!5iJCjPPaSo%soWh~zhsyb)|4$kwHpr=ZC4<0|*2#S9*o)fACT|PH;>nR_`%bFKb-zhu;*)1TB?w}XsB2M(_$K!^-LB@SM|4t7B z1dZ`0YOH*uCxAPucbLQ(y9TG4ENXZ~Kk77m0O;?bF!vPSrJn=XcKLer(@~9zyF?;hf9c?0p}Beh0$th1?_P z^gOZX8{-W%$vcH&)CW03U#54AC!pInToB!Sm}IehB2hFS5-0}G<3bVoNe8}5`NDeB z^+UFsH{elp{`+kAEFG?0nO=(Q{Xv;`+jFwkud-x!2r2u1cZa0W z4|Y)fVLNqPw{Z+~f7DHM^?fJ)`WITsd3K)OzYZS%Yuas@B?KscoaiRZh2Q})e z%@SwIM838kgn1!}%*)P`^7zFP`wxoVY~9lZyQ6^lCg9C~+j`KR+iunVzHqqEF?_TW zctfxM3m4eD*yIqOF7WANB}P5)7f)ymJ4U#An7sEkn5Fz(DETc!ocYrCv{b7-wd%O! zuV2gZH9Ld<%v;~89ojw<{NWfPZRf2m^cy{(v4Q?j@H^KrJ!^LlfRV4y$=ki@EXfxE z<2$c2v>oC4R{epkN9_5-p3#D5=fq2iU)Z%hUmecpM+ls~Pb8j{G}`Bc@^Bum_4i13 z_Tp^;+x*$10~=5H2f3f6v_t^HVWZ-OzR8RW!fL()}JN_Jm@6pXSPAo zu+Jp@vwdHyKWtaK!Vw;~t47kU9DxtJMBJ$T!S)+^6hG|mYDcboxm`q`^=|aFUxSal zb)?#D&t$5MLb$)A@-n`muRMModfXqT2|n7-{yr(`_{|cVAMH^%yKijsn5?z~^Csqx z(Ad7w7z#Z}jy&rx?!FI-;HMDVeu=@`c}~+!R7fH8*Apad_vO(~F;7P>;wF__cu$`A zB2x_e#lGkneud&CXkQVuO;7N{@Z()1SHuQy<&ZlS@qEgiU)nseTKThmmFT>(N&6w} zlSp|@>VLz1H1#hiN0+gDjQ4r-NhqBH^7H1Cnh$@<>s+;;Ce?Q+XRT-7>)Qm&$8Xm9 zO6bGnv)}Tg#^uRxqR=mpAJvz)-W?%uZT{MmtoSP1UIn%sW=W)j&Mg8h7iP7Is zpUoFAPopev6#YZ{d&yqWkL|q>b@u?8(oB_N(>uYTB)DM#+huUStOL$SM9x!d6u*Ya z@Hz_g>jujCA^ZyZH%ck0w*G48f4x)=3RfhA4$=rSG(UHq`U(TM=U&nC)KM%i@iYGV zU0f%oGe&Qf z-V=>9LMrysKF>>cY(ziX&UTSIFMW_Xv-wiEFRXm!&Pz$46bugip7~Qa_>B{`iyZ(i zaroVGPMSfg$U1bKpFB0H-p|EDC-s20fN~F z#xwM1Td%{LVjcn*#Njz9IWw#~3-AI#zmzbhZF z`a*%T^S)}GpZ6Rk`Av6A9QvOLV&B$p3hKRC;B6j+c_^>%+cm#N;#`3;X z;neOkdhabN??m6>{KBYov(lR`ab~2(I<{m6Pn*Felk5>;><{m6Pn-rHpQ1X zGg9M(<~PfGpwiPN&WzMJq4~}57N}q1%t(zBn%{h+mP?!&sc}N{o8ww8ab~2(35jjL z)Arr{4QshynEe*)iwtLS;d|MzKETq*_M5R@Bv%`*7sGuK#p{_Q_Uedn4PdILVU(7%XX^GOP z{-a0hxBa2`T>@g~%i+Gr(UOmPkEfqDuL}1?v|fAP4&Yc`=LueT?(Zx8Q8{`^`iXHD zaijXZE=r@}CO13R?9qO2_Z@mnE_V|!1?*oHmCIx)ckfLkDGPoOapMH~L&4tT1peQR zwCXd|&vgvu+52Jum!zz4|3Kw!>+BxIH@k@sQhcos<0a$-`fN`}NqPJ@i9`LUo^4;z z=$n59og|^yxkbp2)pxGY3)`jjqx}ggGJCN1Rfg@N?hm?+s<-gmU-3;3@l%Dq?UTTt zbGwK>w@dxEor9wsb`;vrNrG?Z>OE_e-av`b|DcbM-x@7fe~xn2`$dwE_QP|8`#Gxr z=sud=M{@T+nJ>a00Q^ZpuV^#}#t9E|wpDpx_9>z`JC;IMYe`5Q8$j5x3i|h|^liBM;!G~N) zh29Xd^SpKaVkxhVz+?P%&)b>^9|8RmKaC&j*VeyKPXCAf9ru*-_C=H*Jl zeG!#^)19c56EjTJ<{=sZ`S6SeQe1UjFveWd`- zg+k0*Cvw&2X-3fVKh*T_zTp9%Z+GcF0XCE=1gCHmeuvDSCxO49uI!ycG3rA*VCSYk zv+rsCDUo0PTFP0BZisiHatD!;)ZoNrL8+@1Y1$%S*nLAz)h-dw?dIBXVpg*|% z&FD8xl=9Gy6#h`y(Riw=m-v8OZyYZ5_7bz;*Uon;NH|E>-Gsln^(j4H{5o>5j&Iw~ z^X+54?3{03DeIJ=ei8e%UQ#mjVCUS4GI7|p9)g{t-0nf!x(n;(A=4>8LxmKKj-C73 zIbrU+8&n9sgCn-99n^l%M|&U-K!ENm8?fHr$^7Ncx#c|!_I_pCzqNj7^9A64@ENLS zxzqf!4$-h!%_%(`R?pN)cP4EAo$@PZ!d35|r9bUl6;$I`YE9cxV(LaS+ZUa@6AmUy!aT2 zZTy2>pFmmRyjT59k1UtMaT0JC&x2WOSq|ZRL*eb7wVeY3J_)+?53!vq1^r|m4}SCR zW9zsbOx+~j29b8+~6t#BR> z;b$Nx&_|KocMt7|@(~Ko!(rSM-2K)h(hc;7LdcKRr*aS5rR_!gxm~u-QhkN(BKt@Z zy~evhmGq%pu0@1?S=FSFtY0TlY<1a$Z))8I-f$ zr%68A&+EPhN!xiij#;p;i(JIvxwy*H>}{Xt;timX>o-w7g!Zib_cSng_?)B7-$K8x z?Xh$5rgniZc@92Y=`~Ai{UeGGKMNBI&%p-?Jo4e+ZN6#e)aHM&E-xd{g8SZT2jM&d z#sjztl0OCfM%;8geo=oUA~aR;n$nyM&%5368=|-UUyQ4H>ldR>`FZOX%`Z3yA0hRG za=lQ}`(E!2lySRR;7$I~^(XAd<-_E)zw&Gv7BwnWROpRx2yntia(K_dS3PIH( z&bR%{QB=Nw2xZ|YD8!GJIMIg;nSwi?pYjiyXLm|D_DL2Xy+PB|=$Vv8JLb{Ccxa2v z+t6=ZI|**s&F#p&FHrcmenj&==FeZ>KabC_Uq85u@$DYG`I`!A2d~F#gdaOEwCD5a zyF5$}aP)sDKlmr4t0xJb-;rdvg@fe#u>QtM;ipUZj<)BDCGTQHTSq}Z&?mhYhWQL? zS24bwa|c(h=5%o7TA{0a1y$=9K2i1^m`|SE@Bb&A%T;xAxvP(D^k5^|K|%gHdJ#iV zwW=V08PnNRkiUiLtmS-qADP5Qp%uAxX;3BlhDBU=< z3&GYC_FS9IUr-;~Z*mUjaoVo1UQ_}&bY=>{4PwXHC6b2RolxF*vZQQ$@0lxUn{T=N z^L&H&#ZVLF-_`}i_~!ZXWT6|?$NtI_?MKth590e&EJr!!^Rh@#2=zkpOj5d0<=RCt z2DEq${XuN=kY-66ez=}?_Pg@tS&H97^bl;nxQF&gI6XpQd!F9bcbGpUsmSJgaI;7^ zn!fa$c`3Dr+o}Bk_QmZ~z1aQ?;D8^_tL9OHg84_=PcXgM{M(f`w~OerJ}E{pJ2HEN zy>fq3JGFN9Oj3B|Kh%$o)6g^X9kownQi$#=*!~gpnxyhZl}Fs#T>~tcKk+=7_!&Uy z@Sdgdr}ew@DQ+k6!R^E!3g(AQUap<9pRsmN6nMJ_VtAN`uw4(Aa_E8iQMxaSFlI9pdj* zZ?MNxkzX(4sM!h6V`!iT4#w-_@5V2J>$g+z36Ik{4g^y@=Fi4in{Qixiq7*fU)=Nh z>#u_bMX%fQj$M?-{JW_ECFG|`o>-6IH)6|=c_JWtKM~pwJiA}pMR-i-CSa1D&yyJI zH#Dl?yvCREYHg>%7tG%k4(lqInms=mSNit+W>)C{j{f(oJUVY~QoQ3^rGD_o=QL0X zg{I>q#y$b~wsoEH*?P8=XWJz9yTs2Az3%rc+mt8oceC-t<~L0f1Rmoc0*gU(A<~6I4ms&TH+tGQUIS1^x!HhnV-MtREhfeCvG+<*2{9tG=Pl~Yt6p&d++daV8E$L_iVdUExNdAw_H zGl*|u5&OGr_o=e0xIZQOEaW(-7yEbT-{bdVJ%sfg=we;;*x%{>cI3a&@4zi$dM=gg zvwI4DhxqFzod@{q)c=DBg{Z%6Qay(Kh3o`&Z}T|or#9}E!mm)gu)nChkq^Jh^C*hV zkC^?#-+{HJdEk!LQ4=J#a@ccT|F}uYVgGCo?ULSS|4_R>{yN2{dbvNGC~4~tK|l37 zV2VQ6FVx>)9l`xVV}HHqHTRr*9qT*vYl>%bKHz>bSNPc9eq#KXd|)qm@>6}kQF+C@ z0o*=&AIvCH0>0ZStK3>Ok{0-7C=)I)eU+QWAh5eFW z!Hn?TE{03>wfsiT_t)!sb{wE`^FNGhV<;VHKQlYG`BI?YNp|}?_ywOg{TlCc-^_AM zm95}CpZ}*)a+Q#FhThCfrzq`*r7~WFg ztr5E5AN?{oM$)M=^m>#_oGX`fir!z3kX3x_S0pJ7z5oHfE`J~4H&cQ_h_CbUkbZN7 zzP>j+q_6m(Kbq*c^rsPhSN~`y-9rrJ13LsCv(V0tW&Z>p^gdqEe@C09#m?xvi<%ZY z^gC8-TI{s7W38sej$QrSM(^X#>8Cra-|TQI)$i(K9sK-aa3k$8xXH|C8`~qj7ntcJ z%Dzsm0RLjAkRvi||75@SP1etrabX;&(fpN& zTrBxEkL=NL9dLR3AQuT-xE@MM8tXq^4~>v?!8)JxiBM{NZtK!;-$ea6#+5OI7p{XR zF&WR!>Ehh$WW69I{I|UETuEh<5{Ks+x<0i1b(>fB=y(#YlUaMR-ema^8D0l#JF;Vi zF8p)eI(m@Sr*g7+UbtW2$bsdh>$w7XH7I?GlJpPrcf^g-ee?FAARoJTiSPHJibjeN zto@r*{Jfc z`^&cf1bE&TA$|q`Zn)rud};mmd>P=modm}EOA5TvGkKZ)!p`&BeU#GIdR#cRYt?sX z*QkVoohOFpnj{|t7e7hq(B7>crDywR(8HSsc~s`la^qjc|={gxhDKOoq9!G_T9y!{OsCcQ3#!#Le^ zD}(d?GUokAA#PGSF>fRT*n3wo4+5UOFT9INna*qm3*Xa>bAB`#@^IHTO<;&ZbsI+^ zJmB)?lL`m9l4*END#y6;-*m6yw@C~*GBwZ2LC;-BS-l{eryr#Ueoq7bc=|)3X^O-+ z_eVRjizID)w@T8>>JK}g8QNbMO&$JY*>C6&z1aR!3*mvDt#82(`A_%4cQ z+!njRxDA%gj%?q>DgM&6hOz&FjCKpNPGK0c>7s>(MT< z7w-R)1>eeT-=#oK^8~Is0$(5}g~L3B`|W(ei(jnuC_c(rPMVK(L0*4#^7G`R`QQ_B zg1uo%g*0NDZ}$?tHcF4^+n4X@`Wu$D+WLJ8e*5uDy#?RAXnC_o9QAetw$Np z&i(z3YdKBlBS`oeHAM`v*D>;M_MEc^_IO-4} zPwyhU1Gc9d#GaydWBXWW?-^u2F;AWY&PMg6`f>LKyNM6r{qqNC$0o5;)eG#)%3tAf z+ZRiUp9=e(%u93oVzU3_cgen3Yq#u&x%}`xSjbN|*NggADnGwNeGf^$S$OMc$|XDW zlN{UrR&dM^O-ud3F{TgUFE~c@Vf&8gcbJKo|8(nnp6Uzj{TL>j>wg=?za}cB!;B)b z*e|quYgo^rX4>CoM5IxUbK>3P_fwVfTr@p@%yLVVi($C^bhM5KAb|N3@G;d3r7z3&#K*UBx# z`~V@wH|2=VUikWYQ955>e7i5~cM5;t>s|ZcYjaV0moQ&3??u)V#t$d7^@#a}a<}KX zP+y$n?8<$sqet@_fa?c+s2qcSJGdU(=R)}s=vV7S`lBwLJB1tMrvaz(3+|Wa(oCPO z-FV)PvjG3kZ8^FwKa)ugM#tm`{O_H1;|EaNC)WL)@#hw?J9qxIj>@sl&V}7K;v6*> zcHfxN_ZZoH(dIR-y&OkI7q!2uE4AOIg<5|5cHM~fJ@6#epI6_mvl9FUD{5bHJU$n@ zoA46eu}pYxd`+hIMfsX<<7ILB%-1TWFB=$p<6{NG4PZVD&XvoJ1?}5G?R#4uJmgSL zwqy2_FDJ2sFFSTnth^8GLFH)Axw!r6bHJ|M`@~KzfgJPf)UlJ|cx)$)tRJ-#^HW9m^7dvY#p$!1 zOk(_p+Ar$^=X5I^Sl zr>lXl{es>H&EyZnpU!vc2fy#yn&a2Cm)QiD^QYMgPO6B?fjr^p}gfjWb2~nz1)~C{Ca4;eMvSZ$Eku!>K(KseesD`y6{vc<6z) zL-uM9Pe%HEPLASF60ir8L%Wo^wVNc#!M+pAvXC zNAP}d*!!OY-k6s@&-H!31m1@tc-KC;WCrj){?BK*z9&lHEsfw^al|RSI_)=d3gc}l zfww4vH|)8SZ$^FVKC_Vd{1WggkwdYg-;2+=j&^iC@Amhc&GcI$bavd_h_2ft1I*U+_kXYY!ov zw#yoTH=u}LG5>WnHn}LoJbmuav8#}dx0BmhxmP+e@D}C6`zzynMeuX=Z{g~Sj_j{vHgUf_N9eP3q0i6!v<62ZIdBhwxP-YLOW#yhP9 z-X9`(mp^dIOThd6{oi1`6HDOz3V0Da1;1qjuE_%b_8XcR|K}0<56^ye6Uw_UU&rO6 zOVHmQ!TZ8zCejLu&i9`C4&&97zd>OHzIfo|NNmlfY&x<591wC0`IF4Jm5$WKM(_6rR3N=1M-;7`F z58(IlzSBmtTFZ{Wwc{5MZfy^8P7tL}~9{qwbtd=GSAAGC$> zeqI9ajtJha-}b!@c=dgrX1whs@K#0euKwoyGl4hZ^MdzO3A}dT73mkKiw_+ zh`lB7S|WIT_ADdMM&}a`zsB`#DuFjUf(IN4V&4w|&+J9#(Xf{*m(}y-h4{+OEbMy& z;ELGyE?n0Zj$;cMtvH>( zGJmVxb~tuF`|X!q2;}bhN3opFjL2hP)3<(v^7KzrTz*RlIi3>1>$`jR2;g1&*b2sL zD}gsAf_KMfj^N8hcR$_9czy}I<05#c3?D`#t>>M8-{%-_aS6O*BY6GR9`i8pCf@aF z##>kd?;XG+{UKPthrWJ1tpCf%`}l9p`5NqCaD@K0r>>oZ^1qF`km)y-pdXLm{rBgG zJp;V2Hs8s3GfUuAM)2;Oxren|lYETvE-Zmp7Qt({X$8xD+Gl>jcvDN@y-ME9>>TZ1 zeaM(+{Tme}=^s_Wac+J$k8-Hq zW{#r$dkgp)3cig0_8i>%ud5!9)Vt69-I;*8gqlpptjF)Y8MKu7W2@#ygg z-r%o3`6}?P)p^g`OW-{k!8_&hm$w72IWGPAuo8G*jNo1MgNrW$-gRHNoB7;B`$fh0 z?1|uQnt#G8z*}Yf|9{KXRV zKNi9J*uVzz$euT)`?HMq>k@ePMDSir&Ew6Co4@!!jQ6t=c>fi_Tb_LJ*QoE-U;UBs zo-KiQO9byX=R8{myw><`#@ki`uPuTH90}6Dz70IHPiOqw^VgA|0Nj=lvQB;+a9ktB z%Y_2$_E(O5WBhCQb*v4gul4x_^{+mA>0b%%Uo(sJuLB$Zj^KW_$!$lw@CX0((7P@f zi`1a6e3ARv`y=vrX6CpnQGRP}AC_ZR2|3P);C(OgCEnlp$_uA5-ntTa(;|4ItDk=z z_5JcnS(kjY1m1ZOyjh!9^#bpr6-&6jJ4@hAjNtw8#XES;eCB^GV!RKRz&j0iMf%x= ze;arc>YeM~{V4Q(a)kc1>EVp^nwq<=O)SGEIq zbJn1L-a$Qt@S5>AIzLTv|3v?8p|T|Xqn{k-#=k2lrxbpI`{fxf|LqLU zyW*Xv{T6sfZoG)`MwY;PCW5zP;<#slH|YVHKUbH)`vLHZ^sm)3gZ}~kw(qUs{qFBX z=x27F#(VcqomsE%&q+@)-s|5iuCLET@QzLX>}lXF8}NI^d!+w2Tv3zX$oq%5Y;&-_G`z7S~ zp$Oi;s$SxG=z#f^EdM7;;4O{d-SUNNc%R^s*Typ5mJ)c2B6vrAH~BB{+0$9icwZ`k z*9yEM{pID6qrV3H=dbw(w{u>E{=BniJc9D~&7H>dA1OiqiU{7{|LdRc1Kz2XYZz~1 z2|U~nG5dj^I&9RS%YfJYjI75#SppCDLtMNur(g3h@Gg8>_Dj~5z?%}m1C9i-`!&ET zV)wUPaNmo7yRpyoEbRVvz?BK6YxfVMe=9!hzWXS7w&)`-!|uP!7{%>%EZcpuh~4ML zheocjIQ}TMci-jTvG-lS`9dd<&l|CX^*kyfhb_JT`9+j}@W^dkzNm!!k`cTepQ>d4 z_SAdc#(Hiofp<&<@5#CSXQRHWPZ`O0b4uV11YQxlos)Wb6Y!6`wSnhRZ;#N=yyvem zl#fgt!SpXFLI1D_-ieQmO#tuu%Vl4)u>{^8In*ab zKeg-yvfJzSVz=YjZn5s!x4)jkEEl)mv24FJZaWdC0dMF#j%0oJD}ncA;1#jo zw%4|P9r#z>CiQ+HLjTB`8;7I(-0G=J|Mka-j>^NGuYD$h_t-^`Uk<$WJ7xdil@fSe z5xmF0Iq^l{&Hd5;q3%oI>#FMfZ(1HLMQmAKDQ~Q#Yz@I`0D)2gQx++8X<44FDAEvW z7X=c+(%U;~TUkoo3Mkh8Wz2giO{$Jm$EBi@qM~)Ljtj2Tb?P!>T}JAf|M&Y_?mh3m zmoz|eX6~oWd1wFa=XcIM=iDz#e|v_h$9<ot(Wle&)=DjZjNj>zFp zS+0Q`9+0!2mwY7J#Xi12j&gYH2y%Fy$RX!Fc{$AN=ScE5Q{?Y!A^d^-ZP~DT6XAIH z)3UZ11Gvd_QwZ07gBaHZt$U^@-?wIWyV56gFpzcB0W&q}?AhN&m}kBwfW`}e-{ zMWOPWp8i{@_rNgqmb1SG@;CIJvEnxzJ^u4je{l}3s|tJGM|_^QL;e2u57YiDbM+2> z%Uf5l-n5f$6*=l3rXKg5I{%5!m5*L2dU*3$4@v0^ zk;7FX9)TPl*mkVUZ*KhK*JOV4>>NE7zG?kQgt1t@K=^v|Fm#-rtJhJyOy-Br`18A@ zUe_@7nsfEmp4TzR{$BXvuSvaS!_+&9^%}@w^VGtBvHmsVd!_ynx%NMJ@ZBq!zi7hY zA{SQ-)BYj3dWXi#+gR_wyM zYaoX|I_Hdo+5RE-K3(MSJeF%9hn+b&{N5QuB8S_aMmb!=CK}6Ods*a=^Pb`D;Oyb+ zM=ufiYYX8Iaow@*KpL>2R`uD*{H%YxmhpG2g)@vXK=R9`l zE7|Wi&)qKd*X7zj=~wS5F~9RY=LkRleVF#&kgGTT-wy3%y)|d_Nxd%(Q}3U1^;kzA z<>$k!*MOhjiEe%t%RTeWyM&+HS*`&;cTtY4KF6oog};bCz8(Cm+wXs*_U!vT!u@7T z0yrr@&7TVTyGrXZ{p;*+T&|tFviw)F9p^*0l~eN+vHs=ExA!0+-#3MH=+Jt#c667} z`R&_L|3J;>JqgYD`8f+~@!j+Ma2$Wp=k=T@YhGjDDR#OIu3~DiU-tzXPiD;&*-J`o z68b(@oU68UI~Q5%viJ%M^_(%`sr`a+eV39~vq|y3ZcxNu~VR zcOFq-$8kp+1DsRe^%%prqlE$DyCojBw-fj8;hqFd-z3E%-uEykhbQkzNJ=er^?!u( z^hs&F^dFwXzLWPZZnpLyM=TfitL;sxYj20Z(^i+hUD9{frJo`F&#z10E$MUW(n;W? z)Lxf9An7yf(l-DP+$UILaLtQ%W4Z!zA>e43(zN_lew@LZ6 zb?JKr-zmz6iqReN_j5^KQCD8^>Z(g$C4BC!OW!K}F04ye_!ntn_b{vs8>q? zce<_vJCeUo$w@Wbc(oLi<%Ux*ezO`@M3! zZ-AD`&#$vz+Ph@dUg2AEiqd&H#yQ&QxYDBZpQ7#HyQvZ{*tyoYV*I;G^Lbvq89zzy z7w;6!0&us9X+zKgc%O z%M$WY_*PXoIgU_HM&jcI#>WtjkdG${A5Vs*=Kj*p){PU={<+#8;eYmx*ekbM$G2jW zOwn-<)fkaGr&Gc2tFIWGpq0SACTr(USoMl4I|aXFvN8tu{a73w;lcgI7FT}aeqM`f zJKYtP^J3E^>Aw*DrVjpmzdQD8zuSg@8tA6yJL8J#yVEz6qXTN>h_zVnBLZ)-a+1ic z)78Iky8!%!DB|7+#lP5es^BSpOYYv57L=nuuqx*d%ztm-56m_?+dUEZUaZhFw)<9+ z)&Yxae@Sbv#t$X5v@07V9@?o5W~YAty-dy>@4*YT9_5Db(aX^sU<7*+$i;e$2ksZK zT;W#gTd%Cu!XMGFx?aK}4{zfsMAt|=$=vZmH}>~2%+h1O-vZK13}zg6nv`Sy1I#x( z29K0x(m3zC`OeR0FJ|iJtN--cD`r1i>K#Ak?a_pZ>X#mjko4VH8z2jnU$%jQq zBE6 z55HE{RO4wz$I@<#qXM3!w8!GAH@KHd;}w&~^!pko2_53TZ6c>3ULpqp-39JVy9H0e z^*hLg+qHO;%0s!S!FU3GQ7-ld_hGSq2jv2M=i~GremrUaJIjqUo`{@`AQ#D2m5UG# zw|9i+N|B4BOfLQ^{l$Gd1>g8&vp>d%^uC&tQ4vpiU(LzJ57X!PWXVp)`;NY?LTB1R zJgej{{!Bgmc1TPV>0jV!^_HMqGtzIiP|kPa_l(0%XYm?2q+XEDExB>~xlfYLc{$h@ zonK;f4&eyte2UO{veEgg%GZjZBlo1aDEMuG_VlK~aCkv6hGDNzL3yYyA zdAm!xHsar3Cxm*U@;JPnJbAxs@;>Pw(4yA8Z$GxQ0?BFTJuUSf8>en;i zbNc!Y?1u8Sn&oqiDVd;g&{Oi0m9=)2?M&T4`f9mwo##!Ts$Yj*935+L-Xj3z`4ZYY z8PBTzv``h}hU)V$1 z*}C!0#-m2#-LCr^*fkr62+wDPUoaYY3Q>pY!#4HbN-8h#S1qo7EBslDt6xiadyd2$ zt~6ifXK_XEIgG2@l~3utcXrRA+rNt9=kp!5Lx$iUMQMj|qK13#(s(Q47_Y=%qn+#y z>>0*2NoPGiSkI~R>l)27NQYOz|IhQA>1{v6c-(LPI0jzA2YqEwS3d5qwF9hw|M~Qf z^5g2?1j4wg^W=_cD2S(XvWDrnZQrX%$MwllEdA~U)(2(W?zqb8b^3TeMbfd3Xrb=S z>TGS7cxP*igdx6px=ewb5&q)rD^B{=;#nv&L>kX18?xA+j=aw6*$rhjptmS=mf7drbmajA|IX8)Z3q$9@#*Oz5$nuWk2Ke+yhaZ32XcH6%@ zG*mpOUGE1pe~R<_J%Bg8_phSsljI*;WW9@E&x*1d0h=1nlzx2OH|&pc6IXQ|f%Puv z0lsUbcr?-Q?4C9QkYil|TEq1P&a3%k^V{ExJqg<-o!H)gUQYSb`&whum(;)V@2;fw zMfsJa_C@v9>D6uHaIxt}HoyJpu>D3ae=7QIl6g!a`lj~VA!LyGKr?<4-;&T>$OSuN z-`iQO zIKuh*k6@Rwdxc*o_~YIlu?v{b$+!|%Y&Sd85xFTucZ&e}JP_;nMn_x!D%m=S zuaA|~Pb9v2A9IWOBc{it0jqC%UeftecE7XEQ!{$)lJbl{OX&4T8dpDJr^M_1h#iui ztlTbPsAuh5x35xb)Sfv#E(4w7{`NmHy*%z#v2a*-H2h7!Dg#27LGyn}#}BNeKhaZD zj_@9cb~=q-1-m~HbTq$9>5=(mK2Et`rt9Zy=Vp<=NXGljFY6UJ(s`-NacVb*^UJoS ze%Km;Z)+M?dJaguo}Rsuo~+v-VMsq2KL#FAx~wMk)DE^%?lxdn$|Ihm{Sn#u77 zrK8U`Pd4~+^5Jli-;;qC_B&|*woV4V2!HV2M&u24#p0?DusaraeKB}UK0e~| zqd&?4JA^-M_@8L~yFJtPGJ9tDn;-A%MQlg?{1pbL+p{S$j%4yQT6@+e?Xcb30AFXR zC5@{*HA}o+o~B4T)|Vv=@u!>s58(^x{Ui7zxZhsN#r;Ol0i*L4w;!vN|JAh;Qf}4) z9@hUC%FV{{V(*i6k%lYx3LTT>dyJl`h?>i?F!eQLVt<% z-UpMJtCUso!WF<8wIuLpu=mAI{(23;!|m*XD>mkzeY6wTQeh z4ivDyuuJR#k{S9`=1nug)`qag_7$&|da3-l6R^qWcD;dk9BJ_kXUT`%z}c)|#KP+x)ln z7FTu{-EM7Hxcxm(x;{6Y-BP|}?|qan_-YIk<-F}5NgOHx?Uk?gBeV#Q*%E#3<2}3(JKzf-S%jl*HAL;l~ZLX_V5jyL5 zPPxIq)L)ACu?`dWYrPQeIhZH7e;LB}HuO_Y*AdSZeunn27wb2n+_4?k&#;|0qMdl4 zO~xIUN3IWngz5d2VfkB$-wHJxDSlI=d-%btq@CiJGZmg=HGRog{hrb|glxC|yA7vG zLH{01qwgXtc|ONmms|Be)Ay4Vr5pTGvm54D+51VtdGnFf-~B({o&m`B-*~J0rzpR7 zLw@6a^-J>d5b~A#y+Zz64E~hIJ*e~O&BoUbC$3n(>3W#?o%S7=LNs4G2)|#|3;RCU zqWy;aSV(%=dK3Aw0Yylc$>59cuO+>RS?DKwxkFJdS!Q_Nk<(M7JN6?eJOkQ4_iMpC z4E5M|MKDhjdUsTA5d1sIU_2d_Zi{QZP%g>8aG%>8;6r43nepYgY< z{B?U$9#fKv$tveO%!xZBTg%)*D3*s#09mwdaTY$9e_2h+Kat550&} z9=`FZT6rMHLwWFWUq!jZ%CQ~5Kw=$@_gpDLUJb1aX z?ep+*vF%S-VC|G`Uy|=rh|d);1P?ivrNe6EdYsBX>hmGKKX?#yUQ4RizkhW&t{L+h z$=6cy6MyzRKQ_G|JY3T_9yR0V%@!8NDgpTYqX|eaj-8-%xAF^6j`Z+;{5zP8vpnlv zjc~a3k01MH*{2rj3;hxDlTY})rLSR~+w~x>s{MERxm{iWUwvEMD=&k`gyRgpmV zUqH^;&R=u;b$$hzPnK^}eObO$Le5i&FTM{b@z9QLr@mCJU9`vj*M8&$=09w2|l01`yGJ;a;bbQHJ-2G`*oHt!>Y)AH-^;C(ppK! ze8%#}TU_NKDNVAt$w^7)S(G=DuBViZCyNp9EX|bi%-8uvo5ab_!N8xvxr?+M5lBkS z5)b88#QjK}PPUHr z0UweY+Vvw)F1bUBVZ4Vx;7RRzV7EvQw^!2ADkzV`2*g|S-4&26UVhlzK>77PL0@UXc6=-nXB(TLceJPLC z<&pSco~8M7CkfumE^Lwo6@0pp!&gieBz4sJN060Ho-G^u>{d{03rMpEHKYD zz3u7D;p69Q?$&zaa_|?TUkd!8-4nm`5-m^qE556QKBVW%ehmKJr*X$O#lKhS;q79+ zq;x9nHNGl7n0HuQ%cp#wwn#cIHa$jjhV=@g>n$@SeeePaWPW<%;+`(X7GHB+&;6!% z@tSrfrQfZlUAX4DtFL8R$Mx4;eZR?%+k=UhGAGm9n?avb5nlqNaU3L?XY}TGUpuZ} zEbS~_62IpD%UBD0wJ>+*!~CAbH^lsX)zyn{y5H!R_NQ!-??gWbW!z3ILA^r}pNEjo zV4H?FBWT8d_h083p9h(UXJWeq(cp0!-V7mS)g_=ByP9{drr$4AM0qk1&mi9I@uBPl z&zN~;AN;%H_s`c{|GxXg(=2ZEy8k?lPjtAfKH(7hAzSFzZuO4SkohO!C*dT^QaFuX zgU{7+_gi~|?HVUNgl-pT{E5H;dW8RZtaFsMbLB-EdOwtV_T%3ZKHBK9Y^{|ux=vl8j4B`aZ5{tn zj}PlNA-r-CV=6DCJAX60vW>r}11!aLQC$Fwt136+Kn##1N?JAUb`tLkL{8#fm6t;F zG3obq;KL{0WaGS_%d4ut*?r7$lAp9{z3FJb3n^*4Q`!ZPc+yM_tL8s$R)2&39{Gd) zHzI3G(4X+(?b2*Sc@}stZxi^EbxSpzut>u4fh-Nb(ct_jezUyK+i|}fv!nP@38MI- z74jpQpx;r(K9D_3sPnJx)ACNI!CN#=|LVtpIqp|K3FmQzPUR*AAlayN99*X50zizFf69m^Xkp?bCWBvHw%HQ|?|Q zcqCm~j`%SlDb0~S87Jp(zDMH8gqafh`_jR?wO(=TnNp8(I|WHuJMF@M@}2yij{ccX zJ0tU(ipqJ`GVlHPTNV= zDPD1(=~)hr;@C+nj&*3w_jRQBaBUZUxXN`&y(p zROwsM{>Gt<%hlF~a;5WM^0gOL*zRM4$c5TNiqI1y#}yLVw8(yM%hTuc9y zfAXDtW4Ynv5#Lo8xlSfb5jw=@E|q@c*(y+Ru|?t`9KQYL~#p@{6_; z9_3qz?-sy64*U{5hyLN8+-rd5!H+pof5u&hO1p8t(u3z4&?MSxuEE>&kNqu2yY2^J zKfRV)Bh82$ufm{`x0mr2z^-)PrmMa~S35qB7smeTm@GdPq<4#f& za47f@$5TGVF?zls-t6l?Z9*rPH>|%%+{?!UQ#1}e=aaO~k$55cK|?rv9gpKbMW}cX z-{!zhxO{Kc_F|K>D~&%+57KEd>15?8CoUg&tv*yfXs`4eSJkc*$Iu$+{6hL0qkqaekZm6$2J3Jy~x@uwTLbz>q%MK_BcJ5dMYf z+a$e9(%DYS*Vwf2-8j^)J?6xJhy2Utdqe{vx3V@g<#Mr|a6u`$Imi z{{AiC+vf3tFU}EaSe+zcNMDW%Me}1l-R&vm0$qz7?45=7`oK#x!!7UtgTkT0QM`Y8Iz_KB!GWPYy7!AR|Oflpz3-$Z*) z#4Zeyk59l3ZIgQYwkN&&uqS_fi2e79{ES53_mIAum4CFSJJ4?E_Y1u{G(V)v2T7L! zmD6w^TQiD=a=jjL+MoBaysz(1(UB|JfDAmt?QbhYCrEz0+3Z%o+c&jS@rl|_e3ypo z=d$hSpGu6!;c|GGfA7bT4m|nby|>UO)kl+0mfOH`W@?g^*6*FoQm@gtd>6~xxE}g5 z=Wa(oZkMe-_9aTc$ryBmhjitWoT8!c+iKL$t?bA65%zQ1cGTyD1&>XuWqp3Qd-}$o zZA3zO;(J9^L)xiu{(27V8}peysBUVyKgQu4wDrC2ZpFv_3eK~juA)!)8O=DBtB=t4 zrmZ?JxJ3QV_+p!<=k|fc?l;;#;^W606O~Y(GERXq$jWc`d#)loG4`|4TcyoP@bbB*o&ClJJo0R78$E1F-N#ENO z9=c+rJAMkiPorL%{FTQMYuYtk@QkZFrG6p0K+@emV|~))iNLuKzKFM*!F#5*pThe> zi8q4x=o)xc9~+hX114!MPt5PQI*ML>q{AcBYf6Cw5eJ+y1Rh_l?UQ7*YnVI$o5m+p5h zMEb%h-n2{LU_Iu0xwyCM?}$deKZfai{5|B+1&t?{Yq@JK(*kZ+{r%qpBr~VnG+iom zSM8?Xo93IQgOZ;zUzO6%I zelF$QPCB0XeP@_2OS#3ipO13RCuyCuhhbb@D*0Hykoe$zOa)!mXc+e?JcF2T@F5(> z{ulUYA`)Mp@q_uk|JcV(mR~-IblZ;>jw|yY&HQk}MUqhd=I89`U6oAV^Wz2gYfyg& z=dgFk@_1#WufuYm2G{wz?LH>1`>}kv=}+RPED=$4^Eu|D85yVBXEL3mf!0Hoq;DT!x;hptk0vC2 z)x}LnXH4V7kojcE@z}>XR2>uf`qB~piF!|h$Tu5jaar3YKad_?S6-p&wi=9im} zm5#99CFLkjvr*su5V!M8KZofGZfftDe%Z$||1-ps{3sfJ(-9$Fq>t>2%i+iMB}&MQ z`9Bdj!gf%lrk$Goa1Gj_M9i4~U1^7SvR&V2O*k6ue_H@OWChAmGr}1se_iTR&PTiN z?f1Qz-AiW8k$JhV;}5EsNAa?SXdQf6GDpIYpYu8Xntb|ul4NeXv_m@2fnf~C=Y=Sb z_f#?-l$$P<_LAjoQa)K{>jKkA4fJ=c>R)_}L@}OpX}MV|G%V?U)H-;oTAupT#dY^S zg(u#m_z|vG{(*4l_=a<7Lbuq@Ym~-Ye1(o%r5zSuWpVY-;>|kl#REFNIbOx43j_dv z?-tHm*XGs*){=f53NQ6y1%48~?|lOJR}7ARrAuP|XIxQu-S2ciI61OK8glPWFMcz~`tt>z;uxLSg>*Xpa zm(o+oo6di6-dySGeD!+;uD7`Mk98G`YkTo#m22l) zO20sVXdXFm6#1;Wln9kl=~^-xhC^u;b9Hr6JsxCUNo^AaH%QAzyG0hrywI2c0E8 z9Y8KcJ)gg%?|Vxd6poeaB@FqTpU=~8B)v}mJp56c4-}hp-vQxTg!V&!>TKZYes+00 zp;kICLRg4iz$oO$<`q*&RmM&3_##T;Y9AAmYwm|eS6H{&F7Wcb3HgHi6cvwkTP4i) z@$a&@(jh5ne{p(_Tl>q-4QPKM9q50D;|%FSIuwNtd!_wi(^Ujl&Jz(+zV{`_q5PrR z(9~{qd|a=c5AK&FK0a0VC_dAS4%OWjXD=E4qk%K3f%9OgANMQ0_@19|a@~`3EktIY zDpE}5vs;P3jl-cm`^EP$&J8HN3(?P%&Q)#K)8l^AN3%mkC?e@ouzTBmK1BJU1cdVQ z-)GdW6Xf&1_{Pk?h%2feowjcp?@2{pl4ivN`wUdC`fR*A9KwkQdZ*10Zxu>mUvuMy-$vvZ*jF7$*~J1 zo{a61kn5jIgZX4~>7?Q1A!c|T(*>?q}8J=&#SeD&kx@A2$T_(}cr{)*!s+Hd`Q3jGj%wqJWpeIIX&V^nWKIxNch5#(^_NBsOj;9XrL@|3=RSgrkq z(`AxTYFmxBA=9ybD$et@ z*WHNiydRSKi<=I&`OsXsx2)JSKLQ9cZ{`%9?MoQIaa9c*TcsVA<4D*uN%frlo!il~ zn3=PCdKUZoCDX58)+y;PxbFJdA$%`h)2Th+Z%0#in+dKNp)`Ec(NCxnjcd5(fC5U(@bAX}e2+#j68+=iPY2JZ8S? zl8$Rbe6M}gGI3%SU)u>fs9hu-=3U<*e0t5|^RDyn@fDk%8&T5;&s2seCt(23DK+q{ zVVAQ0a?Rpv$%5#zxC{Lh`BT!b?YTiluNzSygzJJ8n%>cQ!$l!nFX&kI8rEHW^<{wT zI{p-RXkiGCgaJIw0?#R0&hiV94w%H_2&*SyQ12+I*Ot~}ej$3b#!>GOt0!Sl?=Y!% za$1l11zAl{IEgvolrX4wu+)3D)GG*=wY<<9&3+^d>izw6 zj@!@Ca+dG+5wPBH`u&*H%kW}3-xtPu!{N0@>Sgq2xk7Yq+W)IwbKTAE7f|kA+;PKF zX3o25@%05c6`*)rbnUCI>kRA&)OR+^L49lN$VJ!Q)WP)EEW7&Lg6zguIa_x1JYjlA z=W8H;1r`Au&ybM)-gv`O5vJ>x-4G{}$Th8ZUFUToZ?jP#ltb7n>3{z9*WFNvo+;%? zZ?@k#2?VkFm)_8!@(P72h_%vop$-?Z%(Yi9UXgGy7Z2g6)rU+U1N(DPLA)`gO9$$O z_7!TY{hi-299?jXC~Nmx(3ySrEV~Z+m*EZioyYX+P$0zH`9nG4I1_g`0MxAft!I^LFhGcrQeMg?_pFp}xM^x$@UC-i6~m=Rbo3gc$xZ!1y)% z9-rT_onw$sIQZZ^r;L->H>Ca-(wXJ+v%xJ=O!oC{XS-F4Lyra+zf^=c)ZX^o0=jt|M`-dgWSaC!`ng^LZBO@W8TQ{qG%h}J|c0}pMQ?ZDBCSWZ)AY}4lzGtj`zp(r2W?Jt{T2I@3(f_ zYv85#uz%>#R?{xuX6>JLw+D1cN;~W9;ZBYp>PE@<_T2u!9!?i9A|L0%@of+4(SH8v zn|yzRuq2Da|v(Q z|Br+E#U}N?e4mlO*G%p8WNqi|8em>rYu87@^P53G&1G z_&EZe57*S!_k&se9s8uyCu{0|FW3L}eb)bQO?^G@lJ&oBpY{K>rv4Xm{i}a468-M0 zssHI*{egYB)O)+nKE6YwBN3UaETJ z_t#8bWO2nenXK!EvE4tKOrCG~%8z979E&S|lgaHCS9wV$&$PJ8UoyGP;wsO{0)~4?_bMfu>g&SdYSjnPdg2MtWI-qzhE|> z%$J*RN9Lb$e+(Ph@$w*PPD^94n1}E0qr%e^&+L2EN}cbYuF~ zOW1-wxc^k?SH?d<`Y#b2jDs1puPUYo#&jA1qyGupf5HW!SSy(@Two;@3;J3!NGRzmu7~R zC^38E_dqcE82ht*<;P>Si)oGedv{HLN23(wMaNf`|3~T1TL4Eny2konDq-BNc6M-% zL}mSgQ{v=yjr)C%MDsVq_jaT2cvXZ(_^xh!?ms!B?LHonLEc{Ree?eJ ze-;IBx&JeqejJbe#^WG~P7jBddbcD1OVi0)Euf!tTLJmqRU_wS(G)kyO9 zXN~d?K%eaQcbMJ9n-xy%BNlkeO=D#qOuWhQ&UF5y{z!PPYAfH@RIPu)$9T8KiQfQz zvY!_KKTl`;Ud%Sb_iu7<{c5e}>wsbXb6CH_^4Dm{cJ5i0t%t@p>bW7(f%6K#kBj?( zNVo2VO8f51be@sS-7WO(zD(B_lev2|KK}sepnCxjV7-^30fu%CtGg`GXmR16WS`XH z!fEnmxLCMY-=7qkN0{QVKg|~dbrigEV{ag{xArQYpRKZ`!shyun8r*{-{JBqxMgG1q-lTFy zdKNLYDn#n{FD|?-`aFsj3oni+!bRZqF9-|K+oXZ=0e45=!mkXkJEOlceuHEKkGDo& zVLZj_&CzVcGrZmyk(C)_dvbW~ej3}Uiho}$%$0p8_@18dyI8nV zPG%FocIi)+HUR(4(H{_ZeJqc?G5Q4KJ@|vCJhn&n;rsnD<+0sSKhonqfKjA8=)~5%G*aS41CSJmt^J zqwS2R{CQdQCB!rSEQo$3ahJQY^7|Gf;-TEV17RW3f%0*~AIRPH*h)}{t~I#l$oxHn z`vuV)^pnATesnM6Dct8qS0bLl-7arVGr2lP^)G;%DqN6T@1C4oEe8X!kH+9WS@a`= z`#Cv%m=O)uz*gA(keS^TXtZt+>zSd{T4;%Lj7ajJW%ek6TU}$oV>I2T%EcKMjd~r~2{O(4$DtRQe<-W+abac@{9JffK>?uPs%QTSoC9p!Tr;r*R!7#?jH{o8BgKfHH0BBfcu9z zxW7O2Ao4S~zdQ69mcIpm@KCQ`fDqq9e9~~AdJxnwUmCgqp^xX~rY{W9 zZn=L@ZrU;QY{rQMo^sP?hb~5l_n2a@%T1pd`l7^5-kLr&BzA5!OSAm;p{WQP@&Ee; z!m~@^nJ&fC_ovBRy+0$FW%pxTtbSKg+QDHh%I$gU zlk_dGCS6~^?(vf42@uefp(*{C$e=&x)%`=cLu%!`OF-()TM>tw;K91znO>yC*J4=lKvnj}HHR z4{Ox%xzE}GU3ec;dQSa%P3QLq!hJ`i+b>T-J3&9&!Qf0TZV`+^zj_DH|2ZGf&j6Zc zJ3shvM*l{B@^_eDG5F9b@nO9)zsCObeJtoCdL8%a`zYqWcPH+1I_T-34CPhn?EWGB za01A34}$-N=pZS#xamZBlU8i{lgMvk{J}l@!cUx6`ajFB4}o79f4UpByHj}eeq}vuv=eqtQ)U!J^?)x;u@+)(4FZTE@Eg$!(JX3xTfNsVE zW{+`Ll!EO0TSL9c+jHsP{C>7`5#=Lo=WhAVdY%4`ARoQxm+f>0@*(qgq=$O##0g!^=;$zv9bE2O32@e9x7aqdiC`UCtP#9C`VZ z8_AK`bw9TrZ_4Cp88kPOgY%!T92_%BIheW+IhZVR@Ij%=|3&+;_Jq;!pPmlNjllo4 z$S40F`w+^F!j5?P-?Dr~nwRsEp&em+Tsq45{lx9ZnJr;E6Q8i$e2?&UWblqBT})nS zAA1oe+}}dEk?hAOzD)Z8Cl1g5MY%cTIN+VLx7qj&CB@_Clt+@AT_{I-Z5^fDc=`A2 zLvDVzpXBBn$A@zBCH43F0W==on;>>DM~Bca=|wr>_qI{W&0F^&H~k_vAU>Y|i*hq| z+DLMvic~kQH}K1s2lNc}Z@}pNs+@e#{~{kg3ws^g{amq~6Oa4U-(&tvvFHC!=o{K4 z@;NDOQ2!cw?)K|txqj#$xE~%@>&stC{;qpO=lL6Tzo7g7nDVITio<6m82ej1D>o)8|T!+N1ZUjJ$ToGzy~q>IucwtI@h@@**JQPKHo zXG!<9c2sme+nL_;qVt=c(tjxZ*6Drq$wpl_$>{jiQPNT2AssK@Pxj(#HFVT@b)7tq z!d^U`^c%%Ea}ed}HkFT%PwuDw=1cJ7E1FM#m-7?iyIAyK`1$F#zryipmQ<{RKhQ^? zKkWUtS~(H_Js20g-0yScDBpw!hu#{OaS3F}WZ`AuYA9M*TbJSujy zsQ3l+@%$ab(CwTN=;rVB8})a)^jD9M_xAw$YxMrm^LOXqaeMZxeb}>q0UtR|i~*)~ z?^EZfTnwIJ;RzP((a#@ZrxxkZb zTp{a-exEAtwU>BEC*CK+_qE|V4%_47>#l6~oEUtr=)E>L52)>?_ZIY8e4(v}Y_PcA zqv7}JbXU48f2roj+qIuS4hTx2Exq{nkMWc={? zI_v)eurmL+W%R>7jUE7}*$LiP!W|ow3ueq%D%q(&5m%QfeOh-YeX1Q6-)`}jS$vzt z6~Cl)tHc*ryXB_8NyB+Q6RxGN)&6<^+KdkCA8^TiZWTfc{|d3(HJ>$cs zNPf~fU+jE*I2y!*d(t$1gwhQ6ooQUFVf}KZ#FJK&AN$^SGS}rr8*~ zMS8wd0FLcm;n=><==bPieMsn#%z8w_R()?6(qSjp8_^aYwtE=lI?Nvue?!;XA@9;o zPiaWPj{-dckgU`7`DFQ&J!~i0*sS3Mz2B4krF{B(Y06nBzm3*g<(~RJwg&n`hPD#U zO%{i|QxAOo759q@JcR%2)XN)`?(w-=-oL9xJ`!HvM?v`cbjK%ZcvFjnahC*9a)gGw z_lWh_KJAT%@d_m1iQgbW(Bkb9k9*oIKHuWa7GGrLTP;4v@=dO1EtGho!&8*O`$L7dyIt#< z9rf=6jTY{>Px+P{F3kk(>pg{W_fl(L1TYQq`&#`#3#`_e$dOY;IWbyS~Qa;8Uj*ou_FqIR?x5!D+`o|k2BfeAf{rim67nb8aHq!3N)-K|Fps&(yclXCMUefnk-QC+PzC-fk z?)4Ub#Nw+gzT4`rv$*=larX*~?~?rFOo>Ki?5|L`-=T1?=#`B4R?QzZJ?x(QRDV)> zyh++kCg}QHe7CiGvW6+0Vb_Hou8)ZG!FP-mzZx;+|h z+$|yQVN<%7^gRsjVUu`I>ARM%^50YXj>T2}drFU3T=|M|!{WxrlD?-)TJ=4hj{|uB zX600G{QD~S4vFYRPw73DuXd@Yw8i4>mOo%|)icajEv|Znd9KCHPS|(%{GKp;55w~3 zOMCe4ipA$x`ztN3del>jExyg@vclqvtiJkVxDV0dOD$jZB`GbkxXMd*ueQovqx<}J z>-Z^rb3e!5=Y-=s=R+gykDz}Rmd}rm;wRpxa>)B=@lVF9_M14LReyu)=p54Uy=o~K zj`OU~aqV;P@7|1`YdAB+*f z!}mLF2>m-#X?w0G-rwq6e|E26+TUtvPW;st{0#e>&i*Qz&-R5*cWIpP{8--8tG~r_ zfP6B)Ug_rdmnW^}$Mr2#IoPD~kos-2v>lfd_wPc!<^8y;JIIeY(r-ugGLe(c))v+O zz89&!&uZ5Art>vEcZ$aEJ4@r2Pm-|H{mRQNeXfh|&64l;sZj3na`1DsU$F02#sjX$#zz}p<3m->Tt9t3L7pBV z{d^tcT(sYj&bKg`z!TmFcUDe+IiK)#70T-X%9GB!K0x_fA@;}p@-YAV%wH|d%e+MN z)AS{-ju*L1=O?zmH-vu`>=E1JLpyN{L-PyR|9HG-Vm?#_aI6(L%CH-JydJ*4D(S^B zs_*?MPdFA>J;#gfeUyByHXB^pF}_K9qYe_ga)o)Q!i! zcof2uhtJRPaelcfxc`Ut;29{-b(8$M#R3Q&;h_8un!lRAM~dyeI$Uo-dsES#*X!tR zBRJT9hE3FXuy0>Ovn&1`W}YJ4b9yb*{J~Wk zru2fGv!@xL3m?CqHKkWNU--g4=rvpNduFMBk+kag-m~spNyq*78eXn`f#0Wp?HqtD_Y>@s9-FI}Kiu3ea`4(x*IToZv%wUz?Nn)6qpE{dvRNGCc_O zR@T#eo`v=ppEz0JbU!%dlY#^N$@(AedtZ6|eKhDlu9%->ddK~K)azuL_DlTu#D}SV zX89T~+y2N#e(MiuM=R!+?T7ZM*|hiUnf&^?w6A*La-G3Ps9|581pJ?s_Eq2ZNBepB zA7J}W*zWB^KU2Hs_Ggjm(|*&>muh>%+Oz$ypUhKG>dg|o%_EE@fyjjN`-1jYZ z^6|)7UJhdPH)De;bRpU%KSF!%_96<-(&CgCyv)kfpop-6oUtLgMiOCR=`i+M|9u#0V&XZ!&a?# z(^?4=9j;-&4wHJg$6DnneLrC96zTf`)5G-rfa(3A(j3;wb-YYk&F;@KyFXXuBq=GK z!g&bk>f=B0edm=Nr`HJran}Zg7xsqFXxC?x%hmr+=B`&dPf)+#@AJ&oga1p$?YMhD z+Q)ZnrF?hy2Q9AaD{*(P#k(Zm_otBm9AXLg+E>Dk_`IKs6?g{E)sXg(2>HBW#&O0U z!z72@;Tb>@meoi zul<6yYxkbUoz`wn-Z&p4MycExKHWVA_pB+3hxvuctY(SFJ=$I}t4-r$nItzX9Z5B86HwFO?>@2Taxj2;HhX!+s(M>3&T+DQ~FoS*Z4`jswM zY5#+!M_d=G;qzU!d`{MlH@LLH?&}r5_y)sk`3CLp9&I=4PyNz(i^5~e=jnN+blu$j zx|!B5;(XHe?9{J&tHR&6Nc!uUrQb7;`_@|A*8ls~TYQ_^g+A2}oHwy}m%=-1z~ZYc z-YapegKE0p`(9cv@t)S}EnVfJr_^onX6>)kCGlj!QVr+oxS4ERsO73gCx3rw-(SG@ zWUL*Pm!6XPp>butwX5Tyuaowa+O2%M!foqNab>2(&5oJ>>g&Vq$7buvYS(C=$CKXn zJ#6};;rn<$|G{#6unw&F*>|^n|I!onNA^Aca`~O7{NHbW$OYQouztv&1kWB{A86gF z@pXSz{Fm?6@bX<6+I_akggp`u$44Cdka@x%UIRNqE>cL^{re{c!%4AE#*N-vk>NZ_#nCc#!X>JxBP7_ZR~2aDHmMxmV=s@%SmtXgTz^ zujc-!iqdJgejZQz9BIP#7qb1;f==B!U3xF(uXv6i)Jp3;r&z9iY;=ZlYKm9a5l*0#M zKRaw6SN4AG8Ir%Rd7azQCnI-X1nN)ay2K#b=QsdWtlPKOQGJt)SDmf9l`nm_NZjvN zh&TPS#^*kw`S;zR@ymBgywm47ms|Q=D?dxy>1@^Z!|{WB!TwsQPx}A$3gX{9;&}07 z==<(b(f0?|zv%^tCH8ij#>->ABl(T&?A>U;5Pehf{a!HoI}hg8-zZVUm+cP6k4Ed( z-yNYHx2xg&>ycN0p6H*CzbEm1ZL!T))BR;fK3B>m7oMfz8Ru&_{Y4TE3+L&Q9XY%{ z-zDCE%)!g8M~-*0+~&zkK?pn@ahrsLX5S~?CQ*@BqA-JpwD1rPK2KzQ@zT4p{t2Hy z(!Pz~;d__8;1A0Uw~umsu#Ymm$7hYUx&(65jGs4K=<}zE(=^}DiRa5*ahT>$P45TN z`=mSl`<@leC!bewJiT7yq-&A>Uq#m=iujHapSaSidYbz68!SFk<-DTn^!T2k#ce&m z)S`0Sr|ok-)v^zIv;_2Mw6FB10sZklQsD6Q+vCURms`l+XQ9hR>(lq%oAHn92j2iZ zXJ4f+27H`qRPVzcZPkL0>z6lZgf5TPU|HGJTGyZ<~ zFf8s_`M%2ck#!${;Kj5PcuFO4*bKtks8Oogc|)z?~|}~OZvks&-S*R7`)HV*?a$P zH1Rz6rx~6cAH#7j?y&WoBXvB9JJ2wmqCY<$A; zc6tsDZuuh~Am>oWJKCgtXS`NI*Js)jy0oFbt%ZGMz2&c_9aVdk+0_A|U$(yT`0Q*r z&a?q8(r>tNW?y#o%s>y4<+dJec0IQJRmYDXEBpURN7^@EPcO(VWWcX#<3g*+#bhB* z9X*_0q|0+_=t60s|MPv3Z+w@iM!rU4-+%P3j8Cb3#}~o)xE?gJ?|%yG!8CDPh_@&{ zGj5+C_5FN8xIQ3s=#cF6J}~07>|aBBuJm-h@$a7{8%+-@TA$+v*I{U%qnv&ID*7PZ zzhL(H&sPB-TZd#iAHUzk_lYo_S?PB+wn#DAXGggV{b=qF@$sXPef|Z;I?7iFSIEbf zVeGTZ_LXkVtjV$P~^+U$hF0W9# zYxbG+sI|*#uQPtAoeuYX<>^lPxZgp!x#AU>|K;z`-B0j)omlSP2PmH^Kf~?M#P`xw zf2JAV0Wbcg_B*wIJ`aC^mh*it*mv+Zrug@(iEn$(E>1;0;Q<;$@$Gg`(n`e}=5deI zU#D~p?V{{gtuhzuQ6Tn0)Mq=qvO2Cr0(W{(QvY~~yZ$Z!92ipo@7=Pj=LuhE{xb$_<+pM&22l?`G&-SQ_{drCi?w~=@z zpXqwMq(eU})OCI51N2GLmoL(A<3b5TezwTIX1iaeB527vXS<~9xu0ZZ{XI$|2Ypr^ zWM0VkwD)N|-lFp7b|&;sz6g^X+ArQ`>G1mbwovaVUn!r^&j7k0A3pTHj6be#{rmpD2JcT)Ue;~XaN|}h@B97r92e}Q z$QSIv9zq7YYH{T+?q##M$^rPH^3ve`ti1kj<#^v!RKBr;`kNeFoV4#F5 zL4OVw0)_k$`l?!qUFjtq?feJZ`M}4>H?>E6KhJjJ{$_!b`?a*)7Hv1rx1e3hTPRPx zsKNG^lP?3>p7W36I#}9pALG?1pRADXfKN$&gz}Q7Q(k^3GVJ%|l%GKFgq~MvyByE| zTtvK14m6^m)F}BlBApS$t^?y>Ko|)7P!A^eI-ZOTtiI)L*IhW9XNl|2-sp zvbgr;c$=_I@)+u`>&u3m zJ`fMe)n3utcBMykj)r|oPv$RYesz+h7sq@_>|#i#Hnc;%bB^PMUbz3k>M8vaJI9!;+#u;89rJoG<8~lN z8_Z7L1sccwyOkf0!~fyF$GA`BkMzEC8|5tT|FlTE*?8X~1g+yoF#b?pQ#}Vidr^b! z&n3MFv_0ob>MsQL+RLAh@+0{_dHUq#f}+5FpGUa}?CEIzpJnt1Q~yWd-XH$YiNtFO zfWs5QMR_H>J)Z{s0(f07Z-w3!qF1UuEY$kR+&RJ@pO^dj2AnUIboxK<$c;ncdgcC@ zm!D9i-8TQbX{rDgKhAkM&K(K7b@v!Qh4b@YoB;ZFC>@AUna z>3V?5XSN;?S@~wG@9P6oEbi+E?)N?-^E3axhp!i8oU5FMQk}e;l{jI8e##_dV+`64fTIUGdW!wYKCt1GT=%nimW!#q8B=l6dPR}da`oRL= zrTL0~Y<`%pi^Q9pUPixOqvvL$^L@&Xa>4q!&(=d;HeTQpn8GM0-c23syHS|li=KPXpq6+(w`EmNb!1O+SU!dbmNH_8O z0>0C(u$^yUi%Pfov)TIsd+%cM^}lI;{O#i*4;@OkM*hgZBj3lLaDM!{E9sBCSt@o{ zE*JmM*X6q_FSEGXizhmsC(GB1UMK&caXj9lcB|3){^>Y69omm@JTEsrOXx6~@oXF3 zd4}^v8P8TL{Tq#IA4K_VU3{mFM>@V`^Tnk~r}SPOqgy&(TxQXzl$5j*xV0`lF?XZA?#Jl=DvUX*;E(rkJ*#q5~PSJt&@xs5FnhH|u*eq@91+D*a0 z60WDWK%dfi!}S8T!1X@JZfIYc>Hk!;|8mm{rC?|`y4a4{4a)aS!|z$-H~#bCIklNA zcc;eP-wMm0fU?CRy~A<`qFkeUfk`*E z^PKJE!yJ_d+h;~UkN!e3P3ih%_HX|Od}55R`>p*JfJFSp8y&uf_CxwlGQ8%BJp+Px z>gXG+i@M$X5q>y5{k;nN@%$e!zaq`adv@>VY_Y3*W&DY&s%LSZ>K*BOKh~XGuSGAh zu1G(l2~9EoA;LdS+b#1$<9HgCyJtnF-^uM--u-O0Hy%lB@445YJ;x8}5&Huk-rtAO zAKPb^-vb=t<#O@s!KYR(HUW-(%Z09E`+nn0E{QGgW6*W%Li7pID}R49lHL46&TgKB zc1SnMduBJ+?q&N}hp}*jg}oAH=Ox!``ns(eZXA#>r00sgjqT=A`U!pP1$K;bhH{PU z=Hx@c&#ILJ(>R`c|K+BaNJeNkC;g??ZZ1R};&&_M7q);8?dCT2*T8Oi`PZX7_M0kR zCAXVS58cm&{gsyQcGKu!`;&1_#PS~z{)}Wdg&qN(ZZ|i9Ht|50>X+SrTWo3g3 z5bj%~d?nME`sD5rIa~B*&wgva1@MIS^klRj;IGf}nav}=U(k^6UI^U-I)iLN z=QHrb=^WD6^G{`d#oB>A@_z0X`l;N-Rh2iK=N364-3$A$r$-Y0QP|U8->h&7Uq-N} z>t2KQ96#t%-ku(e{zkH=E-&W}BQF;}#q#plvDD*z$;(6PmmD@;7*cO%^}ED{NYB%c z#?Brc?tcN@II|%CNbmoRc6J$H8{W>&7rKnb&OQR&cszFY>nQ)f!Oku`0C3p-boKUj zw&D+1`EVag-rmZ4Vb>Gb+YKm3et(4Y=#XmaH{oY!54_w5P%gPgar`<(|H+uhw* zM|&#m?psEsM<5KI;r$g51`qwU7KVrtW7262+HYhJe+#@GkKJ7x&^x5_fc0|=^BdUR zp9=kkx4SPz{z!i8Qo^t3MsK zoBKdloT)O-lBCbZdo<)Y=;s&Hd-bhoaqPa~-DdD^0lab5=I_dGv9kanJ$DdqX;%97 zw@4U{W2-P<4(TT6BUTeywNGxJ|AsZeIy=6mzT94vOYEMd^xg+QkJ;HK72>N}H0)@W zkaYP1*2UbukdBXGJR%+UB9!w(IXZR+bWGPjZ2e*Z_(?v*y(YhX%D>{61EoLi-+18< z%~&CY{Ks}rvBxYxc>ah92t)EIS*>sqBGsQkDjgo*kCNB_MtaHpuEgW_ALjTtU-(~c(skZsgnDFYZu5@pURVe*Q5~XxpS|V>Sw>n-4=x_ zwC`(k@-vh2WBrA4F}soctWmhaa%Z7jVt$*SM|Qa>MCVC`#LlCJ`nMDP@|4tyVdCCDPCUzi?*X{r>%18dZ``}w4H)t&E-|Yxxlr5NIA6lhPas|V-U`z1xn=0V zKF&Xmq~~AQo{j&hd;)mt4f(k}r|*BgBhdE~PzX;t9yZW#YJ4b2Sx zif=Yfs;tI$N%K)WO+&x8v1sQ&icRN=oW?e87NW^gFtp=&KP$B3$#Q+~?B8W`yA|r) zm+z~!?^B46!4;OXbf9#ZXH zn7)hay;VX3{{V91{9St^@E_Q%>&IJm*?XEj68bnw`Gq(S6~~MDP4De?`#|~vL>Xt_ zJPqyH_h~pD@kypzXya)i`e#Xq&HwX#BZF6KIlks0{vrH?*Uudjo;5INAwCO5-;{pE zrbDEm(9Vl|t=9GlFHI%exh*F*q6cg0%dJMadim(oekxj?eueVCP3V`jwn)hSR-p*{ zTfzQ<@{9Ps!p%A5L52AfOavooQMvK4v<=M=?3vK$j>+VD0{NpLw zzUX38i|~i=^T(_0oSKg-uimKq$32V+_XL%L5Kf_gAU}jVd_P0^A{0w_;P9(9zFzCXb{2 zd82B7rnDczOFul6YuZ7|h5NB>z&F`w^NcMfXB*8gCh_ple&qFiJ=iCo1 z|Js(>SCMBQmz4i*M?<*s<4azC+W=Si{YJNsr&FG{D1CiAFE$m0kcH@L0>_B(q2#O0 z-n%~UPxy{$2%qbnzL&s#x}w**-uC@6zh8)ar%CsFE0T@v zf`3ToIkXFbogiH)4+HRDV%yKkd(QZ9TpR8?3XcTiBI|!-t;#E!<2+sMl#Rz>|1N*C zAb*8Ozgy?)0l-7*#Y>?eczpcgc-VsfVLQ(Mt^X$d37%y;=a||Jo7cx{q`CC_yTguO zJz9?Vyyrh^=~O#@slyi9%if&+Qq|ec`!~Vv_bXmLf25ufL&uML?BxegKCi!pC>Fr7 zdAHd?Z+Dr(9dA~9SqE3ZZ}Hn!Yx&S_y%YV0@QHtBbPLP94ds$0Kn#!Hn}_{I%5U=@ z>fygy$|oyz97#56`Ov=<`rRqTWF2c2ev*E-5w41+lWy&l-@tG5a;sU+@RD&JRR-Z> z^Wl06>Fsh5-@Zc9<69O=Sj4^M5HE~V>R1-Xjl)R+;JH%$6<^;>W|5{H@z6>oTdF`FY8W zx?U5?f0S!)Yfevl(Ld>YCfaSJr=(1%r(XV4!ZC{R*7^9ZPlAu;54azgj<>p8KjJ#l z-yh7zTfa}!zsv03ZBAzGRQsvRnivOms9w&EgkFB1H1jN5VI|4Ximje!5qyNSQri4YI5 z$AKP--R)EQaK9JvXylI_@FU8(>S1j6fEJrtrD7p^llmhA)(*sv{rEgAulH`x!|~@c zfT59|4mVys$ntjYPI9EmH}07iI2zIspf#f7L;IlPxArp~zeo9~qoXpi5Opg28@H>x z_qRw$IT!=@8?Ac?ouBNw2gWT@Fj=Ygw|?DYo7fFM&mPLtcF2pLYY)@Kt^{)Ce%&(o zV)204sV!z#?A%{Cp3>hO&AP|6M^g@rUN-NcT=7Y`NXO9j4~6hi?x{yV{RH(@{g&b8 zONHn{;S1>!es6;7EHs(2uKRoly*+Gq-tC#+ocY0OS4QIpw*h}?=YxQ+(kA`8{fM`; zOC0*5;Tr9Dq;(v&HyHTA7yZ0;Jm&hl_fu@D_k&mD##gF3;d`;@t=UUmZpij88eHUu zm%k9@)A2oB@9Pi*a2`|e!99g0|JH8m2P@v8A0TiAayEx}u2y=4_GKpeb^FQjc{sar zD$3RS!Dg3-^@Cp|9pXM*9XGaU|MX7A1B_4Khdn#%-Dq!hi*(HSAVhe?`QXf)T>s&=Os>0EqjNme1Ar9uwC)xD^_1*; zB&AALp1wPNR~p9e^JU6-KUn;*!5zu%Mnb}VP}sgRE?(ysES zemq&I@Y#LHzRnTWZKEzvFV}L`)#$vG&=qTqe0-b;?^QSs?;(BNy2HMY zQ*3&gd^bK$-|rb56{Wj>k12aUXz*Em+?OM8HNtbxs{jY=C!gYY9PY(49d@J*q3_e; zIY4rvAYa`DT{>6_q0x`)OCZ}5+TTtK$?=1xi*)aRJg`6Z&-wUHv|Ap}-8ty5s(dJp z(FtFOPcO>3Kf?VTtRLQwbT4QgS9^sH{(Ww@H(~!5qyIvr?^oiEy~^KV@%*9X6MDd# z(m~_pG2fMZ+U;iKhy9!{{d`OE2iLQ9b{`l09Dn#TK2>8=Xe?IgZ>AS<&jFu7y{;h| zJWrz0(aJ{o&M{N`d%ZKx)ACLi*Qav9+BsS4-wt^BTscic&ifQ2wQn;HBOtZ&LBiwf z-h<#HA79`0a8Q?(^fyHy>=^D~**5KDMK{A-`kKos#u^H!Dd&gHKc^W-Y} zU8Lzw2aFHO_ll+yygk$(J2&He!Tnh(Kgef~ey_BDUybmsuNg1YUP-zh4U!K0p6a~5 z_`TI(`T*bv=aJhHCmxT&=ZrV29f|t~1g^NMcE3OXalpce08u4WNQ0;!li`}kj7%#B<{#MrCAGh?+z{Bh;`}^@c@BzHwLp|+6KF(3e zIhu0QF_Mn^P9EcrWZe!4!}HiY-{X9y9=D+!+x>0@?G8wFu~!kxt=4#mx0nA0%i}*E z@_pxHD8EMIVY^?=l@omK(sJzg965LB@E*01|Dwd?$@MSp?-IV(;a9bGLBAE0pAL<)-Cq18 zyzfH0_|Avc$8SD_gYp!@(TjAJzXxSPehYnqe#lqSXH~c#74&ibeH!$M`?v39KOwwA zr=Xo3Ir;SdZ$tmi_mFM?t%h!1eih0mE7*HI{r*3B?*eDlRo{#6LvjL1tPqkj8O8^P zBs_vehcpQUHGw=4^+HT0K}`&YlL-R}k6}n)v+L~;V}i6+l4wGyk2wRv;1jjCL9HEX zt3hkMsIAi0DtfD?RV($;QeU~>@9(kqI(yEU83M7N`~UBd*=Oy&)^GjZ>$iS;?X`>Y zlosuReueIeRG0CM`bWAq63!}p|1W-6;gt$oq$2r6{Yob3_4GTSdRzF}j+%+(bwmE; z?cm?>{#5uJq~5MCk^Yixy=u?Ei3j@^IhZ|#cDD?5Dz)zmzpHJL$hq34?=^PUek9j> z+Wth&h!5oqe=hLj+94|+u<~Im@3-<1D{r;(Q7i9|a(C@1D{r^*zgT%d%LD%^HoXww=3co9K#t*m38RLkwiyxuX!Pl9JXZ)!0AK!7-`?g$9g_J z&r`d>_kE=t?=e4F5wOBnLJakT@)CVm!no?oQZdxy(65B^@&VLjyB9+qA-y8E<=P+Z z=7TxE!bp+rZiC(A<(SFubj3fFpZfjL%TMKjd8qM8<)6vV zoc(SxI-U#q<9){Ghpm0V-oG$DP=CGtIMnZXi|Tz(JX;#XHN~fAQoEHE-(=DZD=R(8 zq_UM&Uz16#R#tsZe7~)l^2_bl{cLx?^0l%{?Z)l5dW8nCJr~arc=$fIoI^bjyROJ( z8NWV-CES$bTW^8Pp4x3QU+?|KlPsQKlgmv z;n5M`zgXj^rte$M)VOcV(D%eX1^C5in%qyeZPI>fu8-kW%#$|t4~(y=%7~kevt7t(wn}~KA@T7%8R5SJ{OXV_ zi|R-I{@v?TZXA!;e&q^0znFkQjBrq{u3d9i6>xaqy(-0PmEm)i#Q_1GLbu01##iET zFY-ps^gSNv6}fmE$okJm{2uzz-v6qPN6Ns5_0Fq-e|uH_rRZv+Sr;ed?dq$T8?oI5 zw5uR)qkQu5I{j-Xch0NHKepfhp?Z3jf`1+_g>;+-I-rjtC%o^VdS6qy`gfzDr*^;B z?yFqW=P(=$a4;Vr^lZ_xzeh4y)iUuqggC$HxOBhPqaG3@>o4z9IYZRxei)eNnBAz~ zdp7*Uwe%Ae#V3u2TD06z=u$pZ)IPKOTJ9*^DfgY<)b|-^8v3ER;wSEqddbc%)i3A@ z55hZ4eKLNK4-xi5azD#*?RMyg=Y`I^OxlI|EBewemt{UB^BALt?f>f4_4-w37eT*+ ztY__9o}{A;(1dfKkKdvDBk8ElzW{&I&G*At@B5vZ9H+v|fJDiE@H~imJSKa*2OHoK z515?ysGpoQhP4$A&-|`75C2Z)tnFGZMnBZ+H8}}C^W!=BLA*YM{l7xI+hJ#TPe|m! z`?5dSZqu`C6yBf?+X9z8x<8wBuJ+F|kK{Z(cZ~U<(Ch11!v4B)eEKZ-UNih3 zYk+^KHy_7+AOGV#9U6v+eh~Bgcg%giOy5_O{GcE9^B{v79C6L$WO=R8@+aP_?fm_e z4#<~y`1@kvyg~G{U%C@~g&!7gQ6HD#7V-M}douk%Ty5jj5jltaoR7E{>otBsh#1dA z-aTz+Nx5g+nRb1w&h{bj#E+O= zx*z8_L%WXOo5cyQyb0xf8h2#htN$u`hd$TjB=$l%hW2$0$EiTB;rtNmpGj`rcq#Z) z6ka$^ybE#<$4eRSe4Jmd^@kfTKmWmCf4wH-F7vE&bMHs}8gx^hMd%*&@8XWe_Int9 zrBVCuqI#@*Vge^V_tHbTs66T;e#&vHm@vV{)DCctG!@TwS$9+7GcK zvm5v4#Ct#EnLXOR(Y}KD@#B|x)Emlm6XT2fwLRe-=lv#p^m(M~6YGD5aY(cI>UxD6 z%KHwpbCT@)WEG>!g#+=MwEk%QkmsK=|Fc}iIaYmmLWaG@|rCuh_&so{W8-IT23D&75>4@b#}R3l>}(Z363W-cm(<_b_#)*7RFfIRRSZ4KfVJYj1BRj9ftb$$JDpwQZ0R7opK;uv+Vod{`}VcMhD)L=lx>z ze}2uD!}-C3=+EO}>O&vuQy>23-N4uK_a3LSU)*Y#$9)p@lO2>2&YR?f{&5k^zp!_qvUpl1z3W=+hsGXp)>b=HmL-k(m zDbxEEL*RvaAMeWIs1McY{gGc&??ZhQzuZqP!8{Q+880=`#{_aZ5q-QD_5Ha*vP0n) zBMjm=LVN4ud?oOMYtSyd&v`5D;eT3OL%zm)1|$xNs{$?>9AVxO5A;d>?%jvr2iWyxa^3UwcrIbrHSR{9Me2uqq<)Z(9pIy{+bI?96@*hh zj&>ZiyoKlWIZZTzX^X1<}Xd>rH0RNd4kWpAM!bYdFr-z4X;lePl?wK@U<9S zB>rwVI;c0S|H4ty(P&*qG5W6BT{AjzdJ&HI>p+j|1LZg$k_yL*e0;D9_0xGz%TAGN zI`3)uBP-jyr)7tgHEvB>wp-cqY%N=@ykGrVORtp=Sb39``>edq%Bpus%UmgU*K~bA zrGLNp57NgYxm?fHX@4v~dRpEi=VJ5$$+xBJpr&iR!B#zwxDM(TTL-mj zyk#9rFkka}vvT#s-#w!32fA}_kHIyL;nqPtb&ui)w_W$# zPR5&xwkO>K_{sh!<>(gv*!;%nrrkHP7q-71b|3Or_-6fh9xd$eZ1%TB@t~b>rsw^H z_0B-Obi6TrIu+}ne(_G|^9ihj`Wfnnau)sset_~Mf10g>x`2Lhug0}Q_!Pi7l+(*T zlh1e1e>`A%9PkaSuj8B7|0d~cx(;dyTA^LgZ+@QS>!7|$IIDEN5z?R6-#71r{B!VJ zpGySz(AB%_}^v)%g?F zmy3VE{#H^C@2^?;h?V=SeALQ2q>S}4R^G1Vz5gO*te25t&RlY`u)qo2{2IznQL=F@I|7-P|6# z`<1ViUCQrf>t#Z{;rK^7e=hqr92UMk8_%cLwQ^iNG6MYjbewOxj%B^vZ}fcnPQWil zYvexcL;4Bnq<;vVV z)5BCRw+dd}HPuVZudS^5iS-FX@aFhM`MhTl{O%Z?hsFhZXYkXW*ZMkrzGns1jAmWR zzgnN??lUgtDN1bq?cX6JT#iS6j?cse9I>t28@yVI>GM|dPvBo<@KNTGDEO$uzLQvt zerj^m`^@{WpJa-bPv-kC(_4XGV21*ClEHPp*!ob8V|rit)ltAhKpdW*XrxEa1ALD| zN`;A9Kk$>{X9K?>@kK?diNE;pE2!tHf5Xii_Co(k(WQ;y8$9CY^M*IzJ?5IC5JX#T>UvtmAK<;d<^p3k1Mb`NM?j&fi~ z>i&Z8{~YuTw{Gq2cW3b_+nz{>Xg5@999$nJcC$sxKHd)(_k0a; zS4N-af#Q@t>gRSw6|^GTjfRc3k-8>(%0#${YMrzgin7^3T@0slNDnxFK}zQv5kS zg!7H?`S`(a7)8=`_9VQpcE6y|fTx5D$ z)A8Q(it(OaZNJL$QZ>b!e5GF?AJ<}^fNZ>(Efq5TvG^j@AB{gU{W++9Ak`oBM?>U4 z%y{+p3n8}vFVXiv-eq7!Jii2amu$aj_nWDHRP=+fj7} zoF9&!*0pjjMpGrox-KSqH=VVd) zulQrc__GKEaKtyuDH?VBxwEYBx6RP=s#ZNuRXAB(`tNG*t|#|fKZ>U8OIE-oj^{kj zdW3(q%rn-x2;8_(W)bCaQtr0>bg^E?)Q&UXYFV=>A)dPw9*w z>UYzF_==840AL)I&nsVmp^|Vpe+|c>Fn$a5@1`8xCz>zrg&v0ejFd0Fj{W8JY`O9y z#A`n4rE#L^)2YZ8Uk11*k}rM<@vSL-w2KqX7vDxZJ&AnrWc2UxY{)l=IGvA^Z+$3J z?vqI0iROy~f8hDz3Bsp7i4#Nm^ZGlur{2GWc6lQC;xUc*Y)e6h}RvV5`5gR-5=ZW*xt z?t?ti@x<1hpX11up&hkKZ8i z=g$Stwo{+qyBhjDTz-#JZI36&zf+UnJ0SFh-2*rK~!}*fm=_s5n?XYjpG5)~%j$iQ1ekVZpsDI;7X1kTp3x7|%XueLS#G`U(AcK5w&x_?f>8=UMlF{$!it8PX%)3@!_rG0>9b^BWNSwA-q-2AbNe68&lzG6I;Gu~&ga<7#ST6wFLRSvF?h+Fjfz<`{Glh2`?d^Q>W7XW{} z52XFHv-17l9d9YRLCy!C;>__b=F~6SLvB^1< z*8%7k`TJ7rW90dl@ILi8^s8s0zl@*DlrJeiyR2N#PsDM0eXsHr@wU?4)+hRdc)`j8 zQXU#_Zq$(+6%R{!8of%h`8uJkP9tBg-?ZAMod} z-2=;{z2iea#eT@gzdd*Oc>8@Tv>yEv+Yc9SJA8cS$nZ71{QFq}y`(1t!+PxO zxuMdXJ$F{P*>gjMADjIpZA1NEp3k&b>POk=Ukv>yMOUH(zSDSd@Oink+oEOi%j4}g za9@sndY$`gQ*OQv$DczFXWu_~@5$5W?`=Td!sj^sPHvZ#RWG2&R<`F7ZJVSV+9^nl z!siS^_ajOl^`mgZP`?X%P&=4td;ou_AITIgpUk?b2cVCzuMyzCQRBv@>+52@VOaRnPkg>$RXB^%ehueI#Bfh$cIGg+JKGP5Bh~TfzTf zsU~(^hK;k|=j7-VJe^MSXYAkWpTYVyg+sZEzT7_)ZXs7MFQ<>}8ct4^3BYFj3;FTW z$LjGBI?euv8&58v{@0FMK2D!=Lr=tiV&4JtbGna?e}52pTB~pVW8YI!jt7nnu_Mu| ze&Z8(J%RCkU`Ly9i~RpO@JC!C{UxdY)c!O7Y0u$X%F36D!3F>4;%BHQ4);rdJ2YNY zyhjr+Qm({rEY~Lm^4@OOe~kTS8pV<1KjqU7yx9Jr(C2)fVSIHyw>RXoe^(&hr~Jk~ z^v3tD{~+aYP5F&+TFOJ?$Rkpp->;B3a+~?NfDX~eKt4wdZ?F{m2`Zn6|4VOUf34!z z(|u3V^$CZLD?aM?v2VVW)sOqWhTVJ1(%$2|Fpm6v!~(RXk-4=2cehzly@ncJFe;&%q?aBS=aQ40%^V5^15A#WpZ_=jn%=YV@A@a@k zdu_M!VXHq^%0vA7E~S&}GKKCSZu$6iL;XDBEY*ML43Cq^$Cc5Z^58f_dAtlTk>45t zexml;G=AJD_Z!8J?SNm5dgOk{2XtMx9)x~J^aQdeUUMHKUURkIe)AW*%#Z9=e3R?v zqc-hU`IB5fSIWs_?RH(q!{mBW3%WJ^872C-0Pj&Q)cVtw=(%O7oc+6Ap6~MSzjhQb zfgv2&V;j$?O}{~W&jFp;`VJLTqk7-%)cUk*j-x!s7ZNJgXU);GfB(wg>+tVlg?7e$ z{@L%7U&s5;_Wh1h;Q|4We&56L1HQhA_}sezHh+Gr)T96GDzAm7!8pHi%{u=M4zG9K zS;m`-IImf;A+hf$@p{La&P}|&uCt2k{H6RLMDoM+>PP3)`?vi4&jfsMJ|z>V6&SxJ zsJxPOQWSn8J(%vlNP9nYh1OvW^5JdE(e4bBGw{Se=$#6@yQb^^dRl-Wj-LB?SMlb# zr-grm^-$Bb?D7x!e$e=SI`+AQ9}xZQ@VxuJ!>X_LeV2SYAFqk;FaI=aUn&%(L--MC z-)x-rao6Yb!|CH7_@C+Hy9B=TIn>*?2XaWZ?NI#RYjo^ZeB$-WkM0?I?%B3i>J6IS zrh01nJBT?H4_>E!Cv#LTrE!4dHkUVH2CzgOB7qwh(-tWOF0cPv6a zkM#WuYC!niiwQ5w^vJ(|Lp^U_GFJNJpGM!kz+*t{M|Dj3P}8ckXDnx_n}@i*^n%aC zJ8uWu#7=MnM={zcXN)%j*X;p$A1f=anD1Lzs-vBlq|C>#Eb{5@3l&~6Z=KdN`{lSH z^qYP&PGZgEbz8OGqU~}H`APgky`358eaZGUErM!df^{JZCtc^M`s42}3iF?2>abZJC~1mdZJsFD$XL;*qp0w6gLeX_;?jr6bGNC?B)=hVnC;Z)_Dj zvV4v5CC%5Q`R5&0PxX;{&7&BtlItx0rpB2I#C|wBu>bLL{!R8jQTo?$rjdO=b!Rr- z^FHGSx9evz&V96k_BPHHqn8T52PX;Hk;f@h5vRcQHjGn#iLoc!x8V6Hzw+_Smjb-$ z*O0bNY#cjnck^?@#iG_o-a)omDB54jvc}1un*Al{@evYQ^XZ zxsP#dNWa_BFXqcbt}}4(@7EGOyC_Cy37pWs=kex*E01?a;U(Jt9_0hZDd~@N6E5cW zL;9Z}{7}3&FIk6r=J_W81Zhx`!-Snn(#&e{@kZ(rqzfIsZs&{c<=N>=DGo*SH#?8biX%IIfZIZ^#Q%^giDLz-%;iKap_LW!pUZnJf z{h@lp{v>X;IKAUEb#RU7y0or8jo*vWH>E$;|4ohi{G?|`q!SbDuPBU77Cj|+&~APN z{&inWYC&%h|6;g~lIe1}&TdJ680Rk9PrE%P@Ul2p`I+oIs{Gw|T+X2$=iw}qAoQE$-!Gsl9T8ss#Zio|lXIs3&Gqf4XqV~#WNZH(S3qj7I27qNp;$mRSxexd^$#pv&}fBUX!+^_QKnKoDMXYsD}+cHD0W1YFQ^LRIT ztktfo9winRgwL^9p&03V<-bXJeMaQ<-xufpFX_K|T=V--VftN&Tk_Q>8|QW`gPrE` zIljMy=RrI_234;-1>kH>M!YeCi%IoXh(kh<=>Pb^W=UjBR<+eeL4+!N?am8?|qc{ zJ4OZ2j|bHs6F({E^LVz7F3h&>?sen9)*udHe;?((wgEodaUXJ&_@kqs zfnc)D)<5mg?~5jzdu3fj{J5?&!1I!0f}gEV3&)G2crHWwmZAdtdoAe0^G11Yfc5YS zr}mVUw_5p_m37?|#uF`$vcwY^?E451v&Ju-F(|WX{yk_gCY+%0Ik!tk<_G zU$Oq&%F54>k0Q7CDtsTu{kskEZk0droVlPro(|<%D)b6~@I8X1&_CBt(mQ|}gmV$_ z4xdv~jvj}4{Legfvwiw*tfBrM#aF&l&Gr>7JN{vRE!2y>s%PF0`AQ4${=)hbP@i^z ze~5n+ZoJR*$K>b!&Ew-Vk9`9BD3t-4{SpuI<;Txud~SL(6uRcR3Fr zUC)EOGP_iL!t?2z9lBk*ow{9`Kd8A~svc){*(LOK*K&5bPwg_KtD!ws6o2x??eQ?^ z%rCqB#6aFqSx}PM!wpcqT(=z-F_0#Kp8ufa1Tp|^bM-_T{ zT4!5X>Fa52x3bxBE2T;Kn!UG{t*rb@TGc_j{F7D)0tdbWr+&cR`v~#-9o!G?!TIqa z;D_g&(yrQio4`r!!^Q!REAZS=>Ny=)&ury|c3xuVrFK^O@_L2m#d4o=A?4Jgcafj_ zq_B z)ceiL1i?^Go7vwRNl&1M&HUzPa(0MtMfmr=z7zACYsr@r@S7`9Kh=x8->e-`c~2B_ zPw8{`SJH3Rj*b9-q0V!fK8L?n?lSGxgv0g9qrWD;G_=W2; z_tPH+{zT$H(^Jy>C5&}!|JEDOPY`d(J}riak7vV<|L{BU79A+C{!IC@1%PoNPPekg zE$Mp&TjVzKQY@6{-un@mFS>rP-#@_h(%8AuQzQLZhC5*# zLVUwRes@9|zw%O%>c$FD83tvp}!xF=hutM+Vp#N@%U)w6NK z-)~5tm+N@t>v}@`Bwh{p#CbCD^SJd^!EcH5S8cgX`k|fha67^J3*}?r-|}`%@fD*7 zL?4IfQ$^uXkH3O?l*9L~2Osz9b*?*(?Z87@25&LmJ^ADr!r%^mujC5b3P*+>a+T1-#?l3l9m78+279SyIm8)&&+~7QNmmuJC#vM!lp<>-qeCP{YV*@CLm;sOlT}I+~E)O~{KR^E4me^Aq;} zBfcMz;~(}B5I@{exLE)v+h*uEvAJE&amD80mKTUC{$Bh9yYG48Rw;*m`f!jRBp;Td z2jcN4`4I50%zDPJFpl>6Z)N?O(oMe2XZ&pP4B>9g)gvF`0po-D7xw?fVfaug{153U zq@!70U~`TRp*KedmdRbCUd{;6D#zX&FQb$%njzd$;Uo5rOtl>3e1(klVKD61Mke-JM;lgkaG zl*`}d|(6Y-P|tdEdY0n<`rn?<4`6Y|A?(h zu&#Op_`MR>Hi!Saa=($?{cpg>I&HZh+Ff2h+YO&1j%B&$8=f2h;eZDo|US%v(Xqw(|wQjn*Z9M^+vs)^K`AB?c4n9eNW_Fl(&s9 z^#4dZJ?+oQ(mbAhk085GZ2{f>JrQf)NZtR#cF1wInLq!;yD&cmzwj^e=Z1Lx zJc8W-IULRHrny~qiCsn`7gBc@@4h@QT*w0z0Yx=jGwIc zG5E)lJgpnv-aN1T>1$DMK;dv7ltYZajgKCG4;QyCfjwn>*e>&jj1RibB;!M`-Pit* zKh|5QD{Fq**Hhy;sNL7~yhHrJE~5v05&v<&mdT&aE9qy3=69O; znRk;v!}ys-@qC)ssTm%HD55;s|I1$vJw=(vaCyniB1f)5L;r!F6+HXpvOK?&`H%Z? z(ChQ0r~VM_g8mOPE(_ZEzDZvH+qwEP_#7jsPyDH8?dY0xe4X|4d<2$c#~#@aSoMhCJ0AnQecgBX zoI7uyZ141k^R18P_&ARB9sy7s!;MSddnfE@pRRN2IP+q`gZ4=I4mE-&#k9 zekXu@Cp}r7^+iOZPM;dm73dRP1NrpsMs%6Hhw~3#AYB7WS83eP?*nwv-voL#f&2>k z@3a2@ko{Lsz>&^(1AXhmb>jIJ)Jq;@Ey~g2mcV{S+h6Y}`%Bp0W7=OjfAe|vYzPpC zuj>r$czZ}Eg!CzlFT{UBBfU2|i_xtDFJ5BvF#FzZ+@bTZblf{v`;C2FzVVay+X2D% zXmGcSEio=^-8SU|5cKsW4j_X3t0MIoAEC zhy&}vb^Lyl@)hg9wfunG#`|A~r0nBUGE>K`WS)*^$s!vU_ZVODdK~D#i~s za{=EkI^h#HM9i0^J>I8Q zdG_l#kjyms?y`7fx5;yn$#b5{)8mt5rotIQcLTZ33FT^Z7bDGgU|pEtwcr2Isc0XEM7WC`4!u_Wbtn(N8yv{A>-YD!W4(_datS17siAB zUTSD>c|LyuabW1jL%&cev?_c!0Tj>eo(Ps0zU;i=i$m?GN zJ^d^6lh?my^M_}1ez+S;VPf0ot@%0un};>cm+p|br_sD+2jCZ@w`*J!*a_{Je$wN= ze(<9i{m!R&kIiGMCXY+>%=~cyKWEu{`>f9+-dz^E>VEG+J@0*moRevKzv;TC0h>R) zN$ZVv-|3{);EwU{NNN5hdEF5ik9uBrK<$0eQ7OA$PPUnSuTuN#+5B;-*Iiqr__iI^ z_HCa~``oAVy=14_eYW1^kiu+SgX@H*5M_DyRXBw10Q=eY>4bdmr+o`SnH7 zlb+50E_CDlBBT45m5p!iFKf=1A1j}B>bRL~v+*)rhxL@+U!{IEo75sg?7`5JmBj^O4W;$AF3y=A9?-4{s~R> zBp;7^Jn(VwC*Gy=V&4z60n?IPvr!45hCay;|`N=;1sT?MlY0e$Un~~{LV|E7g}xDe8M{T_w+lMK|CmY4&oGv?~I?}`0x$zA?*Jt&R>Fd z`TW2U*54v%H=M6+#VzvbE5={ebpKt9{#@*7IDPm#i&s{iggz9b=Lmws_2c=7+eg_? zqr3#^{QgexYZ!ib{PPjx2Sw`q2>DL=5Z)m6p)5u}P(Jy(p_-5*{N8W#oNd@Q+xIQt zcsmAFo#8_YU#s z0-d3LO~~QV2mHy0-zOdw6mX>TjlhokaGmuYL_N<7_&j5f!4HmP(SEVp!OOLruE(!X-@5znOPl%nE-i3B?1@H~^m~wOb z3Fj}({KQ@K6G0xNmF=w`$3N`vMdXjYZ|MD`c3^rM)}M;{9%uRULd+Y55Ahz;8|#m7 zIIr|^J$;T+fdj#j-PdyZT+#UgK9*6B{j&!7%vYkD%`-X*H=-8r=isN`$FXsDi&T^6 zhBNRpg#UAl3n%hE-D#9pP2rIqk(cppxV+|U`myvqSJk8JeY%nCPxTk`KC?g7-^~8h zUu5soseN}341J%jq1{!CKY`tS_xHp1>C~P=JrzCcH$Fgab94T732sq-{{%SU{CXL# zhkEJtj-Z}@9}w%xM8A3_&6W=QeYu`V?N&DXokVHUubF*MDqC6gGuy94`Rn_&r0;J` zQoRZBll93aPwI*Lp}zut{=JLpq}!yQ)GqS*D8oNp*JSVEAr4o&vGvyJe)2n2A42~q zdgXcxJV-hD`7!b{h{r?@9?#w{Xo-G%{SUH!psynTV7&8s1G#$naqC6Hj9aCG?yC{{ zp=SQ>k8}Ox?dOBJbyd$bxzXj=IXpHwFjN2;Qa}+51Ys2?QKBkmGM3u=R$n* z`YiE7U>BPVk2e8-tRvC>{k`q;$wgkb`O^8Wmx^a{ep&8^{&p^|xPPafIsA=)pFG|w z^^=Dna2%<=+P*HS-ue4_?vHE7RKF%lvs3!MUI+Z-NO>(E4?4!^dm^5f%+?F4y>*Py z_e2`ypB9QgzRcvSejwCe>I?bhdV8bD!}a2zd^5T9As@Gr(G zlzH%5(mb;F@_wfLc^2f{N;z-Q{?hSU)$x?9i+B#;C#%$7`}@h+dw54hf785#<&&~~ z>JQs}xA#LqXE%6e~uewFMwTIin-G5*|Zd;(44 zFMS>ix%qmDcg{yYL40cs`PS?`ycrhnZ?*gF zR^BeIen0idl6UH3_C=E(IqiUS{}}q8e?Mrn>$JMZF)D%`Pmxow{%g77 zeFi$f5#OozM+-NZruDP+kV_Tbv*72FVfjyOp?vh5$w$kL<}G>tuLXS1-;@fM3A{#f z_zRJP+#WU`_iN~>&$~*|)zYAmo-f0la9&DzhvVhlgj3V;5Bp#0__)i)&D|QG_FUht z@OQ5h|Jrl?Y%4FZ@+DSYrvCSOQV+PhyR2N6vVWH&-fi*s^`;lQbzJv->XXX{wEndH zdTu!&=g@v7F7KDi64!A4Pr5ulUm|p=eI_k^3g@vMdcJSFoIQ?e{$Alj5WhPQ_be>Yj>QOpSrY>pECbmj8>{Y*dt^{e7`J@x9254e-d~XqnorJ^HZTd@5lU) zeq{{4m-1}n56=VrVSnQ|-(0Ws4mTcLO+MRtqEnGSJdJn+ew!Y_@t{8Tp-evf`YrH} z4=R3X{_wS0_I-i#>&~#QKHHeww?|YSp&xlt=v6*t`9tMnmOoU! zjhH{YU*Y?@yFnWd$=4^a)+(eUlw-OtR}cq<@fGo<$0VGO0N*e!mHG4*>o>5EW`5`! zkAn|EKkekN$6JPf*xxSlXW)?X)A|`MzIqqxr}NcT#Vg)tda}p#C$J~ZlTKy+@P8J8 z@59<}I*waBm+s5eG>-cp($MomjpnQC0lyf%LhA*5Y$mUS@~UO{h`a(hHCi7`Iq!p< zGCOp;)A=X%lQuhZJ2bmb^ChaUS^iM%ET`K0o&Q zo)`6esMCjai7Nj+U22zsoJ79@xwNAn@^dEnsbQC_%M>{n-^20D>tDqBHDRmd@kRcD zfAD&fQP1r?-fMc=qwSjJRY*LJWV)W+KlncQP1pTAs`Z<#+wl3?ko7Qb|G9NPr}F)% zGEk%386S|}KSYkFxgTOJ-q&;Hr?i~TH_VSU@39F0 zva;t>j#}CBDS;m4?NsD%dPVwHUtX^tbD2*G^uG*@Sg#ZMQHt(R{PwAT3FGaf9G3^= zw&E&>7;nR=7pH_50O7}Oa06`q-{zf+cOZPXbC|+4U z#q%ScPnm1^l3t0EvvppcPgz)>Ps!7{OW~*c8X4WrNAmC7xuDzhARTuDJ0wWf`_R_R z4%7G6Y}_qE0z5+g37_3hfX|+fxt4qm@Dx7h@EVTKUnZYz9C7^|4)4c9ygeWDEbfc6 znRaR4Ic&C`GPXFSW6ZzG{IGdm`@3?#k$tX4KgH&!8#NTC~9s|`1s=c0QKBATN?N{lZ}(T>KD>+QpXz~C$oLT zeLO@5IDEh2Q11D8Jmc_ie7sfg+A95p<0Ih}qvz@TGqC%--ugWEhc6$U-ZqMh{rgVC zy$3Y){fx(S-R7xWCo>21hx##Yl=Iw9+Sw_b=T0LY=I>H_4g7f@V zo=5Mq`ab_%YGr>O)n(-g)^44YyZ6nIa;2vIRofnw>lJ$*Qf)K)^ZlcJKUv#vAsK;x z9yiCkl#j9H8jZNZ0K{?&yohuO~U>TqrZ5s$=AlQRBx@nu>R*!-{aJDU5oAC7yEvj0UVi^+Vj>l z|KB}M2w^{ZU(0E{7L2E5)MWpxLHgd0-*I4H(%#0qj=}6ck zSCdgM$O|@;*8t^J6R;ZJQ(l3bF8$_My@|hkZi;_G$5-D$JFB;cIA;eV*;6WqHq9Hw z>2rP4&-A&z`iXe2+DrF<+DS;C=t;lP0cC0@9mZ$!f0N<8jrvkEJ5AS-*z>SSWdRVz zSqQrtKCj;bI6ZG^m-3mq*6CN?5o~_QwmHfecK;VS=FR#BMSAPKGbKI}>L%7RPFWtZX zWc|;+O^VOk6@TJ=A4qTJ&j%mSdV@RkTq+=V!V&60Gd+JL>D#OAxX)iRzjRR(ecuFq z5BnL(FTEW7orqtWgZimG`1+2#U$XsYo5iagV@MeKZTkKX6a)wTMww?6-7hhg_dG{) z__yi&rYU@VZr8{!JqPfM(aq96S)_WEY@Tm=t@b?{y`Bg@g>n=*n7?hL*Uw@7z`q^g zJTr)AT>r=B>M`z!`_+D_m)rKCUEp8BIO9atLH!)h210y950_Ia`rcl%bx<=#;cwyB zES}K$X}nM4k8FLE`PBjSqeJvLps$(#{5J5%e(N%yb^T7#bx`J4({)hhSI;jCeI5sJ z+-&AozY6%tL+($_f1VEk;7A_Vadu=oIjVX!QJS67^-v#!?ch1c2=KR!U?&gC{YG}O z7x0VG{c=CAC!rtyh{(am-*GCBbo`xQ<$8Tc+FIp$>PJoQ;yrmiX*av{_;jw8_o=-m zJ2j3^$2*TdXAU2~#{)M0+^=%+IF$DF1SW{h?Tgxi`+KwNA!uVr+UId5p-=ND04{R>5(2d8NLc;7N9mkPJYg%CfPfA$+((89RL<4Wqw z)9>W|&R-J08(!yrH>I(!Rd@kjgvb3{`u?68rw8fa;dV*5hh9lPbI|;Gm)Y|HD=)M1 zek(7v@_?0>NV$8@At{IUAoSRHNj&P}9pK^d{a(<8Jf`x=_&8WqJc(Zc?-dQlCmCl= zuB<86X1zYhrxaZ!9W}$7diGVYkM%!{_u4`{jyISuGPbFsGnmJ`oc6v~ z>0(?cex={a=tt-x4 zmp?aVe>Zbp9@sxE(dY5SXt^{D=@)p$ck=1W#;0xMQ$VNi$>{Qa$)`s1y<&9Zi2Zop z_>H6Nr_ubs7+u@ApFkdB*MVNWP3-T>s^`J=qqtrg`(l9?+kR(BI^WwNdYw!vYkvWM zInspV5bZtmGoOBQy*#>d^{Fpm{Xau}#9yi}llDu0o_9_r9k8;F%gLmJQV!*P2vvoc5t4LXYI!FAp4BcL?~^MA6u(_M4kcIgSy}yf za>WiQ6CWPMXqw7lkCr)3=k@VxrjK(+sVB|G>CZk2yA9+fb`kh{Vov+{1MnvuZ#^$* z^Z#b^9N+)f$KR8gSFJ8k{uVDciAUqyJP+%=)sHltXZ=d}+-SVL1N{}F|C0OoF1f%- z+K$Ni3GkkLYCSWG4txUzJ7Rw97Ds$J?;_5&@0P~1rHJQZPbr*LN9A0M_;v>A((C>` zXP2NjF9rW6 zASU7$&X?hK@Sg8^QqlQ8tIPQGCT&0Yay`$gd`J1C$-lo!e+Lmnv(AO0u-z0nMZS*? z$I;g7mk;vlyzR-mUoczgEJ~}4f5huX)G0=b1%UIFaW>%-|BoB~kH~uZg<7vBC&||y zhTIv)ofqV-2={j66iL@7to>HBA2gGHLeY+royV2lovPodpEP?9v2EnEzcvyda(bEYrq5aAL8Y43-A9a@F_)R*SoYGpMSTL9<)0Y#>eOn%jTk1DE*1pdt%P$1J)wWGi_H_oN>-bR<0`B{I13aISdSQH)=QsJ{`4iIj1IE)8;~U_T z`##^HJieQo-=2m0Z1>Ga5I>+k{zX;OYqtyke!4&Zj4x4{j%I(UGd2W#H~+}z&&Ppx zGINH|=X#CjXG(7^!(ZqN^s9_^#P=nrQmLu@{P{~rxA?)J-KA(p`@G2L{euV84%kyM zx{xQVV^sNv^F_w}w6{;1y<9|l*&@}WTfr=Vj0S`88|EPWpb7RfQU_fs0AU>Q7L~Eb z7x9*-gZXjZ&i9k~j`l~FXg@$PrQ5%g?*58+9sJhQPlx3rx$@WYW#H-c zvF={@9?qXRp1S?euG)?M(_kl|{vSd;j=N7?r7}ge$m1^JwSRTikN4-#Wm5ZAw;}dR zI@#`ffa~?$?&1oega3sW$T?n)ia1g@wqA|+I-GA%f0xh5)hkOmtcTCGV?Eqlxqbs0 zgQTcbC~7>ke4$*=`k61~u>F_NzPqwiu6GnJl5@PgOU_xlWl|2?eO~bEwR%QZMN|=f zS|@51qpJh>aK;fYr&fk^D<49*gF=teJ(M1$GsCN0;Dzm<5PFpEjsizb_N(+|?UoE_ zw_oU4C)cxj%7+j>mJg-!^>~qTpNf`GNb5{*{QimP>4)BQVtV@eKu^1g^7s~y2QO@eg?a1fTJ%)$BkDg3Z zc*W>4spx!fL^nM_MwiaBZv}or56-=S(6jm1>i;aR*$CvHgX=foe3bW%Pvj@*ZN?Ag z6-ZezItPDIZ%98H$9Vk2e%K}ZIfk?M6W*8pa9{AnxmW5bzQl)k4u{X_xF2`b^MCRd zT*UG6ZqwU}mQy{n@t$(w&#b-H8*lByc#3gCn6JH(`m1gX>*KWlA^Ll{^=o#P&XZ5V z&Tc2ZX?w%>Ve999J6H8g`YtA(m@DyUYG>*$qrAP9#+hGSp!B8t zjru>10KO!>5I(gHe8~0hak_tR#PJ#ImFkhlBgB`7zsHf>r+mqe<37LQJXh$$AD(Aj zq5vEY^_o}G@!tH0>&Xg`DedNHJAa>W>ezzBYs8bBbbnW}@3_RvaS?~-vyz!liT$%4 zAtf`9t3RkowKTslxZBDwDw+4M*K#+cM%dt5Ylk>WAl;&bwkbj-S%e>HyOdDQ%*qsQUj%lq%-=k`;?&pQLYh5TF} zTu=E~6Y@pwlr#B$B}}7Yd0x*;a^6t;t{EqqP=8*8GxH8h=c^4965DUNE0m}0v)iWg zuDDP zIiGhDd$)0f^6d-eJEZ&PcWa(6?BC-+-X8>R!{zyog?TE}odZrV&(|905%YY9bN&8j zonC2PAsJYod*};~*d$c)llkQnKd=I-3ixtNvl1GN~8$YyHrlw@|+;0VlkZo325RYiJ+-T83diHSP=5yihwbU_Dz?vlsi1LWI4@`3DztyDzjORT zJe~_Y=%2n2@Z0^9&oiiBb94H&E+`Y9_t)vyp9r6l^gBZzu<{N$=jrk18-#Q3DWdBq zTb>zRTXS@6Z%CKwVO(>%mJZR&9prbv=>znR@*sUbg{vH-&~e;~GaEAA<)sq7lf(0n z_}AxcHQdBOecohxuvqxDN%%S%J?L$s2Y<8WnenSH$FEg&{CdFTu6{YL{jQaV`sJlL zesvjrpTw{k*L0k~^8{%h?^F8=^=Jn8K)-%Gcuq@xe*paA^FJQRwk0B`WZObH)9>IP z{LXxp-(IN}G0#l?hVq*a_#PKG^6OWbUl05D=L^IGTbwoY>(mR{-!t{=FRSDC45iPW zv*0v23(xUUOc*B!D9R`NQ$*l#-TlIr9D|8y&0t zI~PiB^kD`GIBo?H!s#e5Y6f02Rlio-yrn4Fz^tD%POC|E@t4OyUt)1|D$lmVsh$eG z7T-`$4+nnDpR@4#Q%kZqK55f9G1S{W>F3xGeICH|P(Kf%O#bnKcD#4L)Q<<$j^h3U z+J1}T&w8ki^;sH+cwFQDC5%Ig!FoQ*iJHasR{(d9Ye>J)o6{50*PDw2rl39j-GP7~ zg!h9x6)y2|JE*WSj?Th)VwatT>7qHEg?mMQrNTkE&p7*e_(eSA3}o*Eh zzQjoD^{iaGraA%63J0&=bIsZ{{C!{N`W}C7!s{E>U)#y+)s?F&$pp1KUVp`!`zpMC z&&oS*g8kzP@th)GGV8>5s;JL=Z;$*Ue)7Bwweru+_#SSCpTZ#>o#4ma6IuyY@T=T& zon*DDot<}v_*FY!A$V`-Tz_APAIO0xkD`@#cCIN#Kju&1_hPa9QlU@cR^r9XB>R(d zz_-7u!|P|#o^-F<5MRf_`t@tqCll1Lc>R|3cggkDs8EdlS?YJB~2mSqNU4Q=~?FqMY!3N1PbpmiQLG!4*zNxc%FDq?8g^=!7+;fk}YXulqjJ_gp zN`+U+N{3S6HIla^9_Qf>@sM+X$9wDWI4td1Z_T=UH&iD;QE{;Ud)HJ2FR0Ng>iW<0 z;`(Crmr|ear*K3m6_!NkTJ)irzP_Wb|4&PM_D_C?`ntKol@?L7cFlE=LxxvpPv?4G zUs<_lWii^%pXm2ynRk~8H%P{BIQrjQ*T1%B|0~vXqW`R)HPw46gneJo_{%wvbC>jY zecBK27o$H;+fBqT_Alq4T}9emo3`Wqus>qTc5)8dy-wPRiKO?7(OVS`@T4bVJ2?mK zZjyEjw4U8BMh~X#&bD@P4%)p++Fg^j<9&QjHEqX;f&IxjXm?$%KiE6IrTs}g-0unKfIlD$ zB9O5*q$6v86a3GGtRnoqxAR``Me`)=2YyqGLB|mZccuTeYwi=e)?m_?7jyV#RvtZ$)K8U4H?b1&%lQ zP}xxJs)pk-02A)3SN5z9{qV}3s$5^WdgYpsjs?}K$l=~K8?H^%t>L+c{_y7?+#{98 zJM<*{<2a>X8B~69{O~xQcrmWt?zLRll7{^Ln`>=qKI5D5^ zybW5A#;cELJ@$VAem2T;9s^#K|1+HrzYbbX_>4=j-y^z=kqAyc^EKUZ+zWy zXW_XPKR?gn=huroN(C88#qL7>_;Y|vp2rQJqjJvVc|^+OZ)DFNDG`smIty(U4^Ojr zxGLjtULMb+zjX`LcWQs1;R*5WH1y4Q8&|SsmP0oieyf>fkOo zWpMY`!M*&H!R@Pqo5gu2>z60g!7ZOMe4{$Jj4n=%A3RnEH;WffmJf#mxcCl+i|Y zbLI&2$n*0+KDXxN!+9h5^6k3=dF;kT988ba@fX3_>aacJ%{ZIS$B*Xd`e7A(?-nqU zFD~O}n%^A;{^lI~=NSCxnk?QSzTX0T>d}0{wexEco;Jjq@$M{|(Hhe16mD z{`ZiLb37eC-&dCFK^RxNee=2A!eG4y^W6}&=)pt4whBS>WncfJIXfE{wnt-c zzbDkAeru2Z>g0j`mgV&2mEd#8_Ya|*(sPc&q1<0`WpJIzA{-%}d42z2D0d*qsU_h& z5aPL8z%vzNJ#;rue}Vh%o^12w|`V>$Tks5ct?M;p)W1$>U5O9*!q zd>?H*_fFz%euH-Of>1xMLuWWvKwf2>H`;k>ajZNKAs-O-$Xto_R^J51;_&q@z8<4` zqsFG5Z?7((H-w)bqj8b@jVEx85WHOp-vQvkGLKd|DLdHj>dWoEU3)=Q%Y#<`R-AdI zqo~)@d^q~WzoD-9+tXj4A zk9{4=c<`RbLqrBg3ilE%JANBsH)UL6T#BPt{^HLa7wWGSr)ylb_!=!&XX65nVx;>> zRJ@+SdD6~tS?M3t>d`}Xc7CV$_;sgKsD)gN&PrJ;a4j*9rgYi;WP#R8jQ`GW$8(Uz zgM)m7O3GIrsbn3Xh=;HLPG&3q@da`@{q9{cdYxRTOjW!p7pWX77nr<(H~rA8GxWX2 z!CSQb3S2Ma=SDlvA$_0U`BL96WI6{clqcVdGY+>4^1qDoMmsOQj(1^KH|u#0(IA`~ zv^)e3_)^BLjdpgpi>GRRU&lU&`~w`K@t@HDLH@w80_QT$8|^&U$*Xv0aqM@VroZy? z3j8kPf7eHr2~zCphiGiac+!odvP@2RZgO!{z|RiJ%A!6B0`?@UZDLqliO8>zsv0 z|0nI-2}u(U<;ycJ<2*jyU-^!SypoL<8&U64ly7By@VLYLoBQq5uj4)sf3Ll2@4fqT zqU!m2-|de59`8_!}-KdaozXH z_c&zmPWGevOn9k$=g8&Mu6>`Rls|gAS5FwT&v=1g?E5Tv+!5bs`}x~`G4YMM|EI4@ z^!JG$GJAOvGAsjV=h#;X9hK>7qm_%4?-lb$#b}CjJ-9$ISOMhOj{3m!bexMg4=%wU z9Ij{Xcc$Z-+_!$6uJIMA9{GMtE6{xzmp0m&=tw)$hqT>;+K$^^lK)zQe}7QlZ>%oI z4II^pN=Mc0k%-|K;jMrZE#uOYcJ4e=*Uc9rQiA#`F+FD zBYb!MS1!_a9%oc8)_%Cop7QZ{#rNItac~as5`F2`_O6$cRV^Zy>k8a11%;egyS>iGEYa2LNq+oyaPqkNeI_=Hz|MDGv2-OjO|S3vK|_-TGn zF0$+KruR?U{nfUASTV9V=5eW-`3rM5Md>mOH6X8IpH)V85yT1zOFdkvW z#pmM>4)TNLkk72|e5Stfe)Ven;rS8MqxH(K!F77Q7%BeE@Z|Fp!dZRZ1=7IntTI*M zrG9LR!s8s!54OwCFG4#gDw4Tgrp`*Zzu|NMk@6ZyVol#|5YcP^AW zgEwh~>A;KEC(qS#-v1BkYnag>;ujuM$4!e!F~{|P20d~SfB4=3`QrKfyuA2+8TsJ# zXPxK#zFaQ(c$<%_=}$y%fj^OQmqMCs3gvi*`d&tr#VV$BebO9sEA5T1L+FRyu-!&G zJKV)Pa1qDgoAo@$^~v}+R6go&i_w!pb6y{vuVc+loxkKO^+bEYxOCZVeY5{G?gBnMn!$6un2P;<$ceGgLw1puhu13=G+^^} ze|fu`8vTQaqZoZj^%tQMJGOo>< zFkfz@{zc70;(O7jd>jSwm(jxYl;3>i;opNv_0syAUNF6MI63~VfS#1mezECa>KE=e zydNiYypxW0qF?K^?DMN3@C}~tOPtF6wc2hfo&%3g-xf-PV)VCldg1-1a82H0fgebX zbj2_DVg2R(#O(`?DZCsX^KgBin^e!tPlRxlBJFq9dA6Ud)pPlbxADXI>i)#x6r*nl zJ{}KLrkH+BRp=bYX;>bgt-$3n{@-ZlIXF`;gXT}C<1Bi^ia6Z=xIc2fdEDr9&oMpm z=UhYJz`vFOkMkOy9q!^=QNS^1aaF3vx9Ige9G?$&jMaQ$b&UBlpEtfn+og6nSIc8j z4JbxF?ham|*PnEKgZz2;zBsGj{ts&3Y=k4;rE>2$O)os5r{2ni+J8F#xj^~v<6m{E zI@s!UhVNxspYa#(JY;-d+#=mX)lO|s`0S!;^D%P|GT-P6@_J7oj+%mcj05K9@^C-L zhDOXIQT`m~kA}}l(2nmzu-%MYyPu4*-Gp4bALQCaIXov@f5(I8ZN%?8K|A-am1(Gq zgM2FE{G^?I{{hCe9-lG0ReN;d3Q*WJ@zc!~5%J-26E=MnGPE^y-a_9{G>qtqLxfXF`{ z<1f=Q@sj)c+Gnayao>QncfUH`{MoE!2FK)g$2AIP@r8D_dB)-%E#K zBBwjJ2V1*2jxD$PZ33bv6g>-{NRPc$1;Aqd}qzRM(Txl?jHtE#=&*) z0(|EW!FNJ{?|~8U-LLpU?_a-Q^(^-CZ|F<$X9@eC{pbU4CZFfy_pI5!t@Tk}my0i^ z;6CG-qq+Fv?{BM*gW7}VsI=2b)^2Gop80an&ezdZF0<#a-T)jWH zgC`VC>~nmMv`hB|9xZhhM?(>Q# zahq_T!2hh7`OgI?>2;_lzRz)$luKhcbHVeyvyO{CR4$idRGFw}$MZ?Ub8wkn|8Uvv zz#;8l^+$J2_7mw9bGyw5^Xp?RBJkq|Gox)w9^?khc^(h>usQDp$)^vR= z+4oiby~alJ7kreh>GNg+=g)oPTaBdsOcaX~)f3aCkeX z+x6M)W%3lMmVQ^k>GpcJPyC-!!N-@?Q+49&_1uobJUm(7$~YwOlb-+e{GP89bN-HZ zJvTl-X=m~QrqsK7{#}BH^L-=8E8~jK#}}*G$@;mkgKuLY4_QBRku-~%!FPOIKUUBG zocIIx*W=Ya>i%h1mqRlp25c+vyNv%g+S#8oyS}^x^?Bs+ehKjB;d-|b<4zgn z@z?O`P(67`uUw7>O<&y)j5q)6_~-LYvli-jUW_!aUs?`-G6aD!F)$DuTSVs+IGmfXXc0H9LA$Z!6#pL=Kj(5-C~(4 z@84zf{R+shqXC}2e*v$z|Cq|Jhp)d0`}?r;cTDhL{rUd{WYhX;Z(;o%Qvc`>yctK! zdamotxB-LX;^B~A(-pAiOY?A9|J9dqUZngf*>@BwHRW6SJ%@gcpVRLp*nS1%Gf0qr z-~1CD-&wxf=BdSKr6AyOR=jUO=)iX#^=$jo(O(|JfIjO|B`!ZS`!SIpnj-~H`hezYdQ@#pqymdH=GBfgb$)d6>$_G*zguT$<7 z!>@$=4W(3!)KGnY)Ul{^MCu*IU*b1L;Dz@O;=23$vFPS-SWm-vSZ$x=`)*q@)8sf&bG6F=;+paS`^HMUZ2u0m3(wPxg|d+1 z!Ci(Yl!E>ve4kS2x?k^;E~=pW72hAx-%sRq>YrclnZ^?6dst4AcL4aO6B`fQzr`1t zTxRPzz7QSZNM`GKq;=6LoT&!qMuRie;M{0%Y`sik>-J;Ut0{_Ke2JcuDP{TL-yut; z%&@Y-o6>G&>u<_jEnh7stk<4zWpWpEOj&4UZ@ z-#u%-(nEbO<6eA`(P!Ud$oOg3XR{XQH+eWcNkuNF;~V|ogny$))Pw$N3Vt##(ViO* zK8q#r?ho1SXwGj=wsx(#c7s8?K@~^j&$E2par)h4!_U8i;QH?4qT8A4yW3gl9}a-8 z;X2tqmMyPJx(?>>Teb{#Xm;ZJ3;Dd0^uD7L{@B02vP=2I^#jK#Kk#8$j(>1JvR-5E z^(qUt;ChW?xqfdC#@F8jo!2ZIp3Y4|CkVn(jJ|FDOZ`~(oon^i*>|wr|EYhAD>J11 z4FCgGLSD_kE2Vm$j{6lgoN(NK@WpR_2P)Zeyf{nVefC_Ilhl9u_>uYXs>DB1Gq!|TMu87`X@3KM>0jv ze!UgNpRG88+Q?5odES@&I^%dAUiRnFo~QBWm!5|!oq>r14j-pHt|1;vK|J^+qUr*$FU2{Qq7(XAPAAwxQ1^&XH2N2Ki+>!O; z^OaN|&r$w_`uGCK$@%AJkK5yl)_4Ev-=Rw3Rg_;LymJ9>G~bnbF6&jExgDK>_Rr+I za!>y|@#_`BN@Fx18lQsi%KemZPr{%50PVXg3k9ze`L5h|gr0RqkLq7s>5_6Nm!qiX z^3C)@6(Vkt>UDZ{40^`)JUCCffoF_MJg8?cKyJd}$M!u=U)SjE;{IbYE|hFtAzY72_#P7^gjNgF}KeHq9;UgdDpg$RVLW-2XzJ=b2rRPwmFf zPu_cCcHR}(dEQT_`-`OC`%*idY;ntIzRNcaxSh!N!gc}w5x*B^dgkBB?kMO0!FZ;P z@`GQaUXZU_!Eb+F+%cBB*x-JHdbeMfjUSvRQNQ8~rFztTsh$&?FES1z{KV!DJ=e3O zaCt69FXT!3`AvN{^={BP+;>wK1oS!mzK^Hx+nKBrv;}X@2>iJn z+aRAD@Ohy7ht&W3`^kXA7PHP(IgrncXPwV6gIF9PpIP7eoQ{XaR;xfs2ar-t&ru1+r)$uzFlmgC#YSTE48m({`1_=Nn;*E=VK1EP4}>ESp$=SRVO z2z=sw>hA*B1K|-v_Dg>7`Ye(66qHD(Jzqq<-;}<+U<7^p$+ek1oeF*X)PkY=nOB)#Mk`SKI>n>l|$e+gDX57lo_53#*ys)s8Z*gNaH9^QRDODY$h{rx$oGt`gc z7yvW>lj%p^PyJ1fU%x3i{xk3!&To7ohZpfa8NcyB137xWbvVC4&V};Aw$-V;Dh=et z`Ytd3J~rjUV>o$zdX(~dJja*cl)U~gd+!2ZRaNhg?>%s2PzyxQh*Rba$S_h<11ci< z08B;7g!IT{S{%la0aNFAOlPwzAzw%@%rv5#at4&KYem;?Vy{7aNOil>Q@lN-+e3QX z!k*l+_Ursx{3yk1*IUUonD zVDf?my7Ef+`7-iCev?vqP& zwvLAPtwY>jvx)J^IK`!d&-w0=`e7b*E9HY8HWR;4k94~}jrFCG3ml4eeZmm>y62pv z9Sv7spO{7RAD|y;=S&5qEg~m9mp>@!{GXnOADurg%|G*XsQ&9C4&EZojo^v=*<^{E zomf9@3CXL0l5Wxv?feRg|0Cb~y_M**`4*dp`Ty_z)_cZDerFSZ&R01WryRU{zt15Z z+Mj#Bu|{Cu+a1h%zgs|WG!H;bqi2lH14Qc=?eZS}?IWObsl*S(z2A5Kwz~Iz-@@=@ zj8@6L-vQ?*rqN^Ph`Hlaq*U$RZ*6a_J;nG2@T2>wDUQeH%W@-RzBI7?wRcE5_HA;x z^M!8PFK+8!xTl($Y~CM@&~4|?u3^0okF9ru4m_Cm>qMC0DEGteBcF@*514`;X@Aq- zqhNgiPc$D$ar7L5o~_&-WNT&I>(a5A=&_KZx3!dTHNL zPtXya?^ptr&OZB%8mD^mIkk679ClG6`r`Y`g&}rdcF@x+?cDW%PVi;rDsJ-X;)6*WOxTZ-k!ht)%v5-@6G}kzH-leA&_1{Xu%D_eS=! zv-fdw^gS2sJdL*zc*$M_uk_<0dscr@soiZdI6b;PZ0Fq$Wq-E_ov@3k2|XFU{oUs1 zh3Omc-0i&oXV91PiAAoy{1Wqy2SH!bc)t(4CTH#UA4+}s6-^9Q(_f$M=!L5<7dr1F ze|@6p?HHXeiTw2(SQGI{0_UDrTZa^bw)N|Q{0!Q2@JkHhgRSS)edcNR{O z_R!`xLp^WK^$Xk4{%(|V@Q>X7>3qHQOJE;c6MUtN^cX*^pOl`rDA)dF9llw4z@O;6 zkND~M3GCNFKHQ6J<4ZelI(SI@W6-;u+mB$A^f%mkqP+EU?0a~?!Rs4w0C+hbhvJX#FuwV zsQV{vf1~Nof!ycx1=?@q@~zw98~F7w$*J6ZW|%J=&OWEDm&W~{xc{bdjqWQGe#iTE zqujbUb}t_AWl6Gwt+#!c?nAJ3grG;{8ttFZ z{iCjZ{fg*y^^8yqd=9;?&rPCr)Uzoc=)t^>=^^Cw48b$}xlu<^YWaMhbofB-h3C6$ zJ-Us^d9Ex?;&kvyo@1Gs(f$?!T>m_d_ zxeqiy7R^`H2|sK-9CCbyUKxH@jt^ESN1Sa8ev=vQg*+N4988Wo31200L_WZM@DR)K zwjt#B2B-eU$Kl9v(tgVE1mc(Bcjb6ZLXMd2ET3Cg>hj6y|Q(f zX#aeZY~YUe&o_zv+y0-hNe1fCxVerH(F3~i911(VUC`t4(x9abLs*4dbBV)n4Mw*rxH6wKG^BhLu{vGhmhmXXH{2@oA*>O z$#KuGD{D8u?$iTvT;$s6L;_Ba+itF>cqMW~KFD!T*P*q?r-%=O?KAl3tm?|~ru~%T zUgB3dIrdd3$M-w+V0#=wj_BxAB1hzd9Pv#(=)-d;{OWx}$nl0*)s^E}mB{f}W``H| ze@5~5Zsp{7JLIVIPPxNg%mpo?8sXgPPn`o>O=Eob2$Xu(Cx=fgN0DfS(Zo!dH@=*0Yp^^4v1;To31iIiGC{hV1zIq-gmIvIyzT-Did z-Bl>tu=Lulu#Oaq9=z|kvVnG(Q+Vx?8*JQ(_ql63y79iNqn+O4m*`=7oOIa``q4To zNmtqR<3)fj@P}H*{R?fB8|eI=jCY;D(RGAyU6;sbc_)W`GOVWaF&0U@#M$|~HH`0r z9+4yL?#LH>Q+=e<2re$G6y5Z|9S_?;qp$t&GRkNo-xn&6mdeH`*#`cym5= zBIyZw1Wvw@IuG=;*FVB=^Nk#(_-2lmo43IDJLs7qbWrgbR0Q=qh5U-0KV|b7SJa82 zxb&f2vh@;_yAtQdZ4mwi4+?)ReR7TJFObkeXr5irU^b|IJio@b;!F#pd z|I)7Y3JYX7^uRu`^5cGQg?eF}X!WV5`ivqll$F+LgsxGf2Z-DEAxkLIK=GS240^;K zTgH7|_^01#n!H2(p49jh>i48UN$PL?F4#RD^XsmkMv~nh5#>7;R)qJ&P!2gD|1OTr z@JI7QRFB&J#b; z&p*>Q0eB{pK24y|^vU(lk5N5xp8DszID29~<-KPo{oujckMqF&-^3UhNKd1KhSo@LjXtJLk^M~QGwXA31@--aB{&|(eOM(~nzk~G8 z&e;Rq&(jw0g0A-ks;@b^S00aR2bhlz>-+orr}=#wfNX7czk`QF9;V-uiSMlM?+|*%jFT{5lKL#& zAm<1dHhz!s7Uu}QtM$AtJI_D7Ui^48?>bKEZ|i{JIPrV=lGLMp+)Egd`R{O@&}IJJ z`bYi!x!7;ZIOVIJ6Jh!h`*Yz>?9ZkC=2s&>t@Z8a&vkx2%BTG->sQ74ZvK3}%0=X3 z{l4&e;iusZdW5cW{@mI-lqk3EdOg9i?>i%ZE^Md%LpS4({5icRHQ2k5LK1OwuD|;| za^rsb^YICPF7rs>6Z}esy@#~tiT?Hs)QbFu^Suo`md#6LYZr1l^P6nH?@o?-Eh|Ai z@dN!myr0ZbZ<5|~W8a&G%fyaMuU)@gGlbvXL0vG|3HSy42g`5&_LqZ?pTCr%Yq);< zz4YnKz z!Fnlw#c{vj_bwc?3$7o%i|*M9)(c;PhlFnXz8!i4%4~eaddzXO#&}N(#vuoho!Ix0 zrmw*U(c@66=Y@LSi>;GpYvemCTfcVKhc=NuW%v{*_z9se=uvo4KUd`&^>d{@W|tA& z>K6xIj~IA7{(hn(?(flHpB}&!{~-HM(B89uXcm6t?~u^w7)6~I_7B=FWk*SS(sHcK zi=RMqn0PF|^;hk@F6*b;K40T6?0g02gFm4sH(KOUE?+KXf0f8L<0b3s;w>cjBJ0S} zy+PWawEbd1d%iS>f}+@?Q(7J~{RGhhks*`HX+ye(&)q z`3={9K0A}-FhIXIvJ=&3+out%6ggr2j)t<49k_b&a_EKn)!bn(V!bqbar2FE>J!6q~H^U8=@A^A_06v=1zSHetpwg&S&R<!bZ$=mQ>Wmu$be z=}8Pv^XY!!+-T7!_r6lRsdT={{1WChn17pue>NXI=3c>P_Bo2gg?v{mp~+Etf*z?? zw&qX$^s`p^i+ttwga4olVpdOIRnqQ#b@=HnAdPn(HzHUEfwUa-Z zhnfgz)SeIW-P=kk7xzm}<^143?B4aWmpXo7|G#@1!Sc=dqd;>Wuz$dMEl={@x9#F9lZ9voSlE2FMW~qp}kJ#hx4V!H4be7 zei=8}JXO%MgVRGj$FQ(rC&!C3w{RG26#XhrZ{+f!?mr3Zj*|F!(jf=GU^w<2sQItR z&UIhgVCRF3OxXDq4BzBrb_9ESn&vSPl6gemo!hw}#d-35YoE9Y59eQkwD5HdE^#g< z%7?EL|C1f5-@A^K{yo!lRgSJ-(}ZT)PtkpX%*TI5JO2{#8TCxt z`8TMZIp!+tT>3EwLeIM#JrA}2n&H)2nWw^e%)u#;F3CyTYwVkXM%w&Tc%IlD>cM)D znjbtAcV58Rxvv*`@T z=yd(WB~Cr|zdvB#!OQ#&@Zi7_^K%)mjq$tfw)G2e2G_p#3uN5!&*(4C9>8B*!1~t6 zd^!~Re)aYW`BevR+%FJ2FK9mi_JPOxqea~x z+ONH?zz$znp&kB&=C7mn`b5FM|L0LSc1XUy5<7e#`~NLF{7>RH^f=va?|Amm_RqI5 z{(;+_`y4%~h8=b~_5gTr-3P-CU+>^O78;=`goNDWFVN(O^S2X@@g15xHmyVB{bljlrWtf`3 ziP}p{y3-T&Uv2)cCLR~3=cy(q>~$8GH-4M`qrH57rqgcHo-jOxsS-x#I1zn3j-4#y zSUXQ3lwlctKYEzj>#?OvatAmdS+rws}(*L0aj z3ku>$Y(E*k>&FwW-XrsHt9NU-OGBBD>t|OzQV#2dJIMiHp1pxy!9J&7jc-_G9t-ON zz!((7zlC+jalxP<{>|p`f`Skd)~TP=`TNkmAERWjqIf$OkH_u(`0+;05cA_wjSHWH zf{br%-a06pr|DZ|p6med09Y?Oays{~3P-ncd?Cr5;fxT*1xL^4_d#|Mhv8*1zZ+!RG%j**?+5Cn6kA^m zj_%@oL3V}axANT@?_YiurQ}A8V!E&n@#EBe7%!!CoLgLbz6zJ(;KLcD3JB4D1!J2T zez1T8FL*%khL?$51P=(_@Uq>kC%KVwf4JQzoF)8tfPY2`KOh5tLkj=PT>KjaPdHEQ z^Z~&WUM6}O&NTc=*F3RHyEn+a$7eg$2lYa2O@4#%rPo=vLAm2xx~8I5#9v=JB0;Oz zamG8B-v^BxP&;4CdXT043dlJaA9knk9pU0@5EvcyBcIy&0{5Jg3u&F#^>b}Fm!hYW*QtXIT^!o| z#(iW%c)+jEl8w>6e@@T(!VniuGsy$zI=|)_(Ge?m3H=CH&sRS?SNsprP5)?JZ5GGf zbKbj&9(SF37QwZB640;oy)yUEmS@Pp#cSVVfbPdAEvx%*T>WVSy_B}U_sYD_mFN04 z=8LO`Yuxj#i7#jonEsSrY`f60&r-ASslJUvyNBHNZwI9rn%>DF{MiH4WERyA__wp?*bF9(r7??~URgqj8N?72h-}P`B$<3nkSImgT7zzrK;+KW4#s*XL!vVZsPtzw&ru*B#Hx0+wYTbuoE!jy@@!E@^!q9+EFu| z&&}wl*~s^lWosVe8);GgM}J6`2fhrSl!NkFZx+Kjg-?j@s44LZPqyaY`THT1|MPRn z@`C>&#ecFljmyvTUO{2D=HGZn9m;+7cgb=uq;xvBMaxa|PT+DEcrWI1ANO8FA{%Qz606*&cTMWNRMqPNER`U!0QP3+O$ayB*~x zGo}0+Jak=<|DII+g`UPJKP{tE{t};ykNkI*t@n$f{HJjK`@NGD{^cpT2>fi6zmfBQ z*lW=IpH0y}k>1lfLX`h}&i^3~{W{R|0mlzO@6lq?{#wmH%YzcA6 zb2z-;dliMq|AiF&FQNAt?>YL5{P%f>aaiJYXypHTihjs3jow*YZWEtZ1NgI2`XKy&TJt~1H>pAY zr_&qce@TiSq5s>Ozn8yr$&!DA+>!t06h9^Z*ERn~_++MR%}4o$P2@k<;b(@u3hMb$ z-l3AM*~~i}k#A~>kMOe@?+Jzbap_l4zUe9Z6Mgxd=KCn`!vwsuQgjNuEt>CPZuyb# zBPsque=^=9n(tpd8jf?lx1{(gdVy9E_4$Z*gywtX2eCiNcn@(p@Z?f-i`_jKrC*(* zSLECir5};vPZOnNy!)c`!&7pU^6R4Xucp#LZ^pYfO1~h*2jT1cqV&d8{o%he-g~0- zM^f~O|6LuWAD^l}^gH9-9;Kg@s=x5(9Z~xBU&VZdU!kU&%D+8I-;knD$}f-73#s}` z{ceoXpGn~t`CcETf85by;1~X08>PQDRe$Wj%6QA7^pBtD^L^sdTZc#Zmf{ zlzgNed1I75K9w%*(q&QlZ&UP(U$`_%|8Xi^=zCq1{#>elBH!0W=|4%OOZjAz0ZU;N^nDE(cj`eCLd!`@Hqvn!R3eg(DvQTZFn>c{jby)Bh4<)=mI7o_MD z{dswmeo87`^bfrOp>I>F{*n$Wmh^j4=_0=gQTp3b@)7<+OQrmksdV8la!Go7N<|9#3taqp#s5+n7x>r8xWHfRLtnH0hxm&w&^=tdz4KhWuT#8Jyjg^&!+*1kC;T`0 zr!(FU_%kT12Hv@IUA*Tg-m7IC;@>CZ5dZx?EVCN;b|vtgs`!@4_{IOQj9>h_d>+44 zfv@8ee4VWLmdd!t{}&ne`0w#&SE+tmoO!v7cbwwul<|^(GT$Vh_1{S|Th-y`jD)=$ zq4?fIwgdgVlWsn#4xUvBJbx!o1HF8YjL-Z#{FADLXGX&Qo{R9n&t?7Fe0bPu=wW9< zFMb-~Ig|0+;?p*&s^FLglO8?|4;aQu&^VJAXBjdT*Z>SQUZ3+2&F2Zv@ z<9VBp9!OQ>ldz-B5gxRZSwHl7yjunTuqUAh8yHX4U+%Xuo?HE?RjSXHgnaH*Jh%8f zzV_cuEnIc@wksi@I~C8n{ByWI_wq>+)sWAsgnZtrchP^L!MDYVXOoY9eb)bkkN#aX>N6vuZ#l)YnNMKK`k(gCt`eRd3Hi)b zJdg1TN7ny>kDhup>eHFf>sKnCC;SP_xBu`bRteAAgnVAEc)sS(Wjx>YFQ^ip8412M zDxUB77=LE{A5o9EI(*xf(1T+X&kuQJtQvCZP1sGX!vBFkxk~i6CFJoud1CPA`##3; z)u4Y>f4b3$)_s_>uodETiC?aKHB|93F_YS6tS0r%@wgS#pr&nKz| zcS}N!G7_u?AKDV~d$?-!?n%HcRSj-)f)Dpr4eqvtzj|lY;Lc6x*@~*cU7LXWma4&> zo6z57RfF4|kejR%RzrWsC-m%+s?pngtP@s)zqJWHYpxo- zI}-dozG`r{CE$*$8r<51{$eLfb=uE834M4TV5`zD_a^k=xvIfkn}GZCs=@6}=-KzH z2DdW-cYD>~HYeovrK-UlpMd-6s=;kb=4^|ECt_0loR1NN` zgx|TPYH+&~aJ#DpcS}OguBjT_-UQsmRfF4>klVtl!JV6cE8iPcqutzD%+wAbyz5{UgcVd5V zUn8T7?p4Bi;*qq}ZR?5A_e2$Zhx=jr03iPUuZ00))QFW=_j{u2X#yR12>o7sCxkHl z9pFIs!Q1ynfQR*w7U^!$nh9cp2VwfVV!J2J-H$uyxi+*cOQd^r-kGd>I`_fvO7L|n zr^9}C?V`%)6V}Umsf%wD)zj8B-S@rp-rdi;mEz#fRm3Oo5A&F)FIM~TzKi&LD9^W9 z#Q2rpW$2sk$k*gQobPt9;Vu3BUi|$mRui!AdW*;@x?gRx#$}B(I!BoJhX-_FzH6}i z)t+mO@!I#Z{p>=|lfimCFtr?w)j^`Ckps`}Kf=D|#*;sKJKj!w*BAC2ujl1uxD?Tm zm;8_~cA8|o`TWA(qxTQ^(1XWlq6_(+p^0t#F3r^^*fsVO9Fy8-{t;3n)cey~{<~D( z?A6Y93)ks7|GM4GKjf!>w9YSf(AUdkd83G!RjGZ;^cntMJ4dtJKJ+hMDE`u=%RQfN z1UZUw_x`n_K19U+?n8fkZtQR3bB9{Fes({k-Opg>y4t?`cC~vu4>hcxtL210Vf}oK z+y02Qh;JkU+BY8WBgekycHL(VzBV#nyEs4U_pGyDJFM^I_u;xl9J>3z(|iYi?0X34 z#SGfukk%XfZW40&1%0Do56)eK1)<#Wbgxn*Z`lqLw*wQUMARNk6Bv`|{D16VK{>nu z{5_6;WPQHa;XfAT=)w15dx-9E%9_7$T+4^`t2plJ^IAIJ&-IV1C=R&TXC0K*a{ipw z$<4PO-*uyetX#6XVh-GU^gpKitbM*x(TG$ zhfPZKpk8Da{2d(R-!kziexK#l2cmZ+xJ9An4_5AF`M#UpA-~=Kj_>6N%--M@&9D59 z?swF3!O2t+dQhK_KNIT#=;d~Uh(o=R{;x<+@x$d8*OT)1YW`0uf2fMlcao9+n@lh1 zF@135wTI3*2EO~KOIIlE`783}{7Vsd`O@)OS*n9IM{h!t5I)Zqn8^c`|zNz^+W*pg!+NrH_?JVLSp;g;31Fk!0&SW zdQeOCX_nB=PlUXgKgN%eq@x`8V0H(%NB?&3UgJlWcV9v8u#15ByLyq-uUGhy=BEqi zIKoNiJ~Q89II_Qvz9Uk;86Vpu-YfMP4DJid!aYIho276SUL>cv6~n*W(TA9Ba#mdb z846$E#d@-V-{(uFC+jtz)o+!?O;6TvJl2!7l3qdm=O*aGt~Bsj_-1;N{x00?0s3^X z&KGPYeID%Iw8I=dHa#Cs|7$xr+I0WRz6;HG&qzD9x|R7H%k2vqH@R&UIYfHXt8tUt zW{$^l+al=|$Zh)X$zD}XL66!+4XhIOwN2@37I;01Z^{mhs~%0+&T;x4n8U&B4vGIU+V2_r5o(m^vHB0Br*3_A(t&mGM~CA+$r2am zb9}ey`xnvsjJJ{b7R&SZ>~CT_+|BX8i*+C5c)qli zl_DLFm3QE&rINZ`SlrXuMbB4=Fs+m-f2PX4)p1$;V6nf%8NhMQG>1nUJ4=mD#3d~JUJP_%Ow6Tb#) z=T36?WPBV>JNJ9qC~fUoLG>ZuBl^+aB>p|G=kl~Si9!~7q9g^rzZ591}F5y`u!P(laKV<^m!M*kME5# z{qE)Wv3_snc%XXdwiju=dX(CYSg(XXcAi7wA+fK)%6~jj9=o97cU3Q`Z_0Yv#IMN@ z2%k(ZE3v=P3Hw{afJ|>(`}+}%QDGCQUAm2YAffb`wch@ zr)=Y}uwf5}MLowO*eLp4oPIvT3!BcCufer`_lA&plF^` z?;9(W#D0r)4FdN(%$mTigb&3!5m-o|q@j-D<29xNFC z?rg{JfiC!|;k2itsXev+1K`oWs9!D9cZ?pRianH>t(53iYzr29xkNZ#9JzhRv zlT!~{R|?MI>|Wow65>2|)Vthy?0euxUnhQTQs%G$={Y+=&*2O>sO@p6XOy{YOr;l5r4muop*8XsAH?K&eKCfg?(A)xh5-iVe33=sl3_E!C2?HW8UEF zJYOby4#Yaotz_HQZ#$IhJZ~rcI2h|Zf2AhG9X~@aZJdX7m_H4$&a;#5w=jR)Pv50E zkLLA*LDqT3zD9f&p=G{j=R5o-AB-nn=b80)j+1{wDOzvixZ4k#OC4Bu-e?BJAy4#J zg3?^hUv8aeKFZ|*J-N7kRGq|%b#h)@;i1<{f2YK+dA>Cb=W$Bv4`-Ibk@M#& zfwNVT2E%ZuLMpL$)Z0!)TyHctrCGi*S zb<$A?N@BNRo$0&yi?HrYhDZ07Grz(*8Nd}v;xCGI7jk;OBzE0i_gamM-M7~*(DGt` zVO>t+V)tR4%(u}zio);U^g>DOzF2pS!V~$m*Ilb|k#BpQG{khSq?UgRr@QShT0pn` zg`8cv-a&GO-Qvl3|ITuX#vK*xyS$d{AZ~9(Zspp+a~ylH`AHie+dU|i?7M_S|1a;m zJdOAS{-x(fX0yL(R5^{|@L>AesYCd?QI32~{=*p`f0Il+?eA>8;y|94{)B_K8v8E4 z{GmVH17W>-_k!is7>{qJCU0NH;~}jHKpr+8e~`+Xy&jD5_&sw6ACG^B=s6JM@%Nn* zx4(ySJpKZb{b1wqqF*qzVw*JyE#txP;i{aWgMsTwDtXVeZNZIi=1eEjNcdQ*YNvdeV62aXe+-@ z(`9x5`rhEsm-T5Po}Qp2J<nOaK={*=bW-|WS*v={w%B?%kT!HXJ%PA*D*aYoZ2Db{Dt=&h@Xx5 za}~pJ{1p2`$4_zG{2hHK#{0|@^rqU~Z8~0jj^qTnJbne~`5D@omhnuxWruQPUickG`{6|nwjbWwfp|Z? zwDVzIgTiZNeuTQejPBdf_*hNXeu?hSq;*?O@6&YQdsz1*$7y|u(~EWA(DYfF|0#{H z)%Y_SU$60JwS2FZ|E;FiYW(*aAFJ`-alCjtT2YKQ#_Rjt9M6|*zWC1?-^}{gUiSx% z)Av@&NB-;~G0w*g9qxE;3$@?SXKSy&b~*5gpDfn>ksUJaCuexYx<7Cn{s&Lo4&)hs zdjD^5z4YsIgWT)+@D6vpQe?P*pWb)6lBV>nUBfy(+P6TmNB4V%lLcRTpR0X`pY>nN z@UwK9H>%+JHy&5ii#!IpgP}xLn5jXxaLVqWWO`8^|(>7hKHQ zz3_b1Lz*tYuW+HfNB!~G{`zowgT(bNEASsr+#W&N;1_1GME(bB+p2Ya$ z{#IJ=_tLz(`2+J8!&yK0N^`6?fCoJ_|7PHylj)$b%u<99@h{2qx-iX5g*F=w_Q)c zzoGW9gR?k15PsuMNB*(jn8o{7yTI>@^;`LUv0ld6!6uL2r|If@pYR9uTTM-h(HGBykKzo4 zUZHES^4p15G`?o~5o77{q=zFk9>P_bo3`zI5Ng%-n$rs~~ z+ecSk_I*x-umTf1xZ z27mwUd!%pD&GB-hPvZjR^4&r6%E-_C*O@bfzA5tszsf7R4}PNH#kd|6g{LbWN5}8? zpdWm?(o5@*l(lSs?Y;zk0)X!QWIn+k{ej@*n*~mIoP?NfI1+eG|4WLO@qMeB=J!ajM>`v?y9&P>mR{Qx9!CtM z2kl75l?`vk?~ZGi++cL$eeT*02G-TlPVbRJ_yUNa2Q`EoLgGu#Bjcy1-@3*@z<)L4 zkM%iC-)u);OrQGo_tr4^EO+!=2RkqCh{;sv!$iJ-NB<&!XY(c5npG?h^ZOaTEtm4G zZe=~q_ljQ|%wNnUeOMalgZP=s^`Tq!VLDgL)=`)C{)PR|V0izN*A2~2?JM4;ikFx~ zPwc;cFZGW6_inM*$baw9xcTj!9FP6=E=?DE2s?Ds2_XG#5v{|e=U zv_!_ga_i4&e|Gt>@HQyk+nN6{-r6DSdu+mw?rVLIQoJ`YUejM&Umi@~YKMilM)7v0 z@XCDrV0izR`r&cAv9I<0J^O=<_xcoGnYSMdFV57B?Q380{#5Z&XP+M9b9?>K{66mI zjpcaU&)cJZ!2E>A>9L=v)%@lsWZh@5dizag)a`jxW`I_SN;fHQnSP>vDtD;|%)F%ib^{ai#Dh~5KGVW-f@=npao;4hXQ@S+1R^#0q7JAlm zSe&v#)3-}{ypF2zX2mD^-rn>Djf=jwH*M9p=uLamPK}FRwKx4l<022rk8X&U?-6+s zJdR&|`&&65ozL++ezZ4rYh3(Fd(#aX_n5BsrY?;)Yn;1=^nFaL#>GFy>#X9B<8{`t zQop)c3@5yChQL$##OtdfpLl(BmX;$$rzc)dm3~&fB=TsldpoD+OCpc<=v=TiEq|Mq z7x{#B@7B1;C#;iptWXm96r*#%7IFDv-F*swH^1{O<2y9|F^$`L^phGNujTtRzDM(aL*wG-!n&t8UMPv5E7m=u>Echqx@S4w zm*;@zF@8%wUB3c9kIUe_tU*vjY+(~TO8{94M3#UkEqbsGWu$L7pEXdNbZb2P#MVMmfLfO%TnWypZ8q zyG_0=cQ3;!^vHYywR22YVbfzALf^=J>eEbyKJguJQ?pDf^YRArYBt9$)TO| z6l~Zg@rZx570*8{PS~N%?|fJA%xsfz%6x&pal3>z-=utS_o0L0q2`-%BWO@aPdT~G zPtYTVo$dN_@A*6c6qpU3crvXl6`<5td}@h;@>V9Mo4mP@1J$11bv(ZO2heg4~n z`{i#<(1L9dzIiB|pf+v>ybF6wQ?`5NEMq2aUpAo?B> z{){4{>4u-~(Ky-0HpK5z{t>>Z^b_se*QrlaypcAI(?j2dGu&bwZ8qb0m&R$ao#W!C zi*+;^%W?7FSL=C#q4q}Rm66Y{u} zL)#CR%OvM#UH*0^_7mpl+&etwl(0{P-H#2^43-}Ly`#7HQk7WF)cUrH1LtQ`UH|!Yc&~VcOlYiL7 z#VeBg7Dw)YNB^R8D6M_m7eD4D^nZ0!576n_*>|0KRL_qc&-k((gdqIq+1 zhhE_v7I(bAp4l}FxczB94Wt;_j!;>9>Q6$1wa{hm&@z$fn57aB&FMXW&ne!-- zo{jz6vo*g#Iz!C39J^m=KvK@EpOXq}YS9t$}%ii)A z86k3qO`s<+gr$leKe7E$2iJS&X50~%ZxI2%A@rnzt_re$+ z;N0;_qO%9kX4&Q!C@xkgt+ximtzkPI!AN7H9fR4{`eU$!HMdr^lR+^^*_w5zt*#$_L%bzlW}{a&gh-wQhMTY~_noz8qf?dQ0VZrT8*FRnO3^XBoMr z?dT*|pNJT89Z`KEdN!iABqvHw&_n#_a?i^{{U{&wac(ZwQ`pg)RL|*WT+cz^zRKm3 z@)>ZOQ*bXy>G^jlZhC9$nRdT-Fb>$spF4VfCGp+zyYGKa4#D2{ha+`!^S{A`qkIqc zLywLiIK$DSDO5g^TMt(^I#1Bm!)+-&`bLV61Nn$@U$chFPkgsWF4)T+hFO`|zghnVdbV;q*_$NOcNnCw1LV8(#CRNH>qE9bqOYBc zu^p_sg!s8c^d?*)^$b5C=@B2AB;IHC=J?&8%r4(g_$j|fZ3gcrJUe&re!`=iP6k3x zxqif9ua4zl=M=gAiP#nSC-}2gf&)G-rFy&L0j#6J|BZL_#^qDpSuvhK^&z?kTjdV; zs4?KbmJl2NER5!N^TKDlf7{Nzuzp;wMtrd0iPNQAu15F)y=WkOz>5^%J)7_bdHO+5 zHQ+ZB92fq{41Y$|;5Ve;PiFYDss=wz|BD>Cm_7$LGCD8l7QW?bW!=ioImy<@_usC* z>?VByU+|!R){2n)Hy+3#w~+X+_pX_qn16ElIohEI+av%7{aa9y;jhREP99JXj6DDM z8+-QxALAwbM9$t^Eh!f8DPL^eI><}Eb6~ytCHJcb*4v+RdO5w_MRa65T|al)uSrD5 zqfCusf1188_WrAj_s!nd($qm@w<&*ZjYK$@M2+ zrL1vzDK|#Tm-Ex#Ci=%Lm3-j`1aF!z_Whpu8NCO2RuAs13|2Hmo6S*z)ug<4%E8Z_xcoYYU3~L$Hd$ICO z{oobj#E{HBU_WoA{Bb^t&@-k{!eT)}_(dWiI(H@GoyrMDXSsT#L|iY7is&3)qL1rC z;R=cum;asX(>D&O#5cl&@y+=Z?xe7&d;&jF-+}mn^Mz0|v*Z4F_V&XAl)$sw!Q;}w z_$Zy}rEmr36M8`p=p2lmk(3^ECi#EDN_t7pnFZC`yu>3tEJ_@5!Oyt7ydR_G-SP4B zXm_1*A@sLf@`twz{(kzKva`rP55vx`0KHLprFRfJy9#s;WoOd-Mc>Psy=7|;X9U4) zsbAI?1q$>WmzWc z-gk?JH%JJ0XEQu0kYVkh{v|dN(Nhlpshl5J03X^$_LailcL%?wbZApdPu~iTCg!X0 z#@1EB8-*{CU#*k;HvX{v&{ofuX+j6$c%aw#nX~h))PIUH{t_P~sGOg0^z`(d&%q((=b9?$wp_okQS#&e&X?eq^+kAtaV zr#W8)06u??x{mGjm$N+G{v+zqw@LVk`LW9pSN(xp&!u-Jr?7sD=u5rqr?YWlxUN^= z_9`4gzZGzLG+smVW{9tpIOb=zr_S?Od`5Xc&_l4Yo;c*b4GNFSFCuvO{yZEZbwvv7 z1g18g?4Z*bKVd$@bK$IICJ%fdX^}}!HZW}-!zC^a0)qZp}+qqjDec0D_&ipI%>1y()8Qy(L?Z!WlUOm2` za=#wlEB+jI&+@EeHxl{vK5;j3T- zzFcGMmymwdRUOy2>$%zJ$KBL<-J5~Fqhaw|tY3lm*EQU9J>D<9p`*dR=fL}`@=GQE zl?^x8xCL+_GSCM}fxb5reS>`$I;Sy77wXqAJ@O^!XFbhw z1D&(n{QyK4;Pd+AYekm;7j#~DYD|ZX7j0iepX#BtBgp?nnliKX7n3*MKaTfz0V>TO z5Pm!+ua@KF1>$%xzmGSdGqG=h(xDlkvmr(242RC3sP-_85YrRQPjBF;hjH{y@*9A^ z{@1E}lmz@Jfqwd2r(ceK`ivC5Upe?tj==2=wVxH7B8&--5qyF6yWrE3kDA zjb}$tr-2^V&+aRo^HX$w&!N-y(*)y$KAWGnb69O07tI?s3Y{iLtpD8eqNIMb(gp-~ z+y;7WAB({^zXCn@9q9q|l|a$=_A-vo)*Q(#44v~M{etlgU<3K{-5M8q?R$3f3-&#H zI9_NnxW(~vxqLXjnM1s1zN^04eDuKc^r903&(llC6>@JN45%k4K>dFIA2k0^Q2CBy z^t}Gc`q3!yeObRk4P5xo0>0@@72r3d;D4XtA2|BILGbSpHbmzs!VX=%GX1o9CDY4r zis*yM#pa=G9X`}^?1Q`r+8yUZFTqFD7jjxiZDJqc#bfQu5{fra{3Z=^KD3nbx$o_6V#pyjBYX_`cJU(mS^dK6ash&sUGnK;x&gR*^H|QNGD>lyM zgiyz4cn_2VjpK|?(D#F^(8qA<6pnt+7}-mz9}?M%*4LeXt0zDi#xC_gm*}wiM(qU} zDS84OmxlE_*uKp_(m9M82REr6_1iSgQHpQXcmuzPfihmUHZ5-x&ozGs}$#Gl94DyRO4t;<;0H+If zwRi=;kMni+%Xc;9GyWIr1dr(-Q zWeGY2k4wh|1i|GS_=xhe=soJ2C)Cz2aNC1kO}~QDBmGc43-S$=O6|2@%VCbz2S}~F zyz;-pulLZk?eLp%mY=uO`ee$De!&Ga*ddyK+u zRJbz~?z^}^4EL`bcliJ~HZLB-8>8@Er0}LGygO3xCPO`_KK1-1c85RJLk}S9-{C>C zfEV$MC+G5X_{V9!Gc@0=seI2;ZonI_`OepTD^vNnXGQrg<`s;re>33_eCRS~yv+dP zq`xhd{$Hu|FqM9!*6U*KPi6feI!B&VgYs^S$|IijZ%U>AXDa{~=1pdLiIrCDim7{UcJTM89V~=|A-TT@AuVY9?r2Tm4x{ z<{86!^-rZX_EVAn((mETA7;FjR2q0Yc||JgFRd8=TN|o@|9-`Px#GW~V*GEe3jQxC z{`owonDrM(`%3bK{b#((he*GDi1aN{Iy^eyqbmjd!PI%io3H81d8IMyhpF`Cn*Ok+ ze>9c;FsJA9I_`uMqo;j}=tFz`cUb-z?^XPM=zP~ynD0K$hkC$&WO&s<>Lu~^RQd;^ zIPBlf0YrI;V|7@{OI!wUNXNe843EYnUE&L){1Sg>6bB13`dtRfQ&U0liK+C9qPV1A z7{#Uh$|x@BH%D>Usm<>L{tGxR9S+1L{hTPjq|c7xlKz$`F6qT6juC-@X-0@ zQ8`$I%~t~7_=~^^dBXbj{pdq|-G0V;t^a8!P`_-`4$dF+ZkJHUleV4*K2i3)*-_Ur zf{YjQe_#3i?}PGtE#vRc?^XQX<&W@tMU+3u?{0n{E?c8vSCnt-{Qhzb^&BbSZTpk> z8dNl_SGg^p&*dQpNOgbYh5mpmuPx5}!oJAMKVe_wh29!yKAA(%zpwJTc~E(YT>8sP z_}^b%u^f`}5_<}li9Ew)(#`|!iZb$W;qE5Ar2E_>`G{R?pQ_HsGk?c7iK ze4XY8E4L@nHM28Ymv_ex-})+@6O^CD^0WO}3(1MYZ)A1fM$Uf~_ury%K%TSn`3Q6A zr}e9`|8f!H%l7o+5B!7OD-!z~kwd%>K<#Rs*ah25!taP2FpZRu+v*+t@QK{E_j?b& zc?R957+gtcW0S; zhh^$1eyZ|%-nLKmd^}Nq>sPz_vzqE@=MX|(UrfzcL+_1m?s#mrzF$CduPFDGR5|!F zD+j&GQ{2kq{X8mX_ufV8dHGh#g?{2>4s-scthdlNX$N=p(}yJ{&c=>c}a zPj2!@_1Tut;Yl=+;HqwuMJ`zZWy`6umTZ$G}mf4J=<{3HCt=fT$pw{iYp(^d(4woCc_ zXdk~oe0Av=tp4G;{`F3_k5cb&b^m&b{#0Ji(mvI5==SkJs^|W+j|)go!1rsYe+)Sf z)jmQ5W{)U$6_tzH$0kaoCs-_Du4W?t$S+>cA=-01?Nc>u6uYqR7UKD5Y5NlGKh-Z- z+{^{zd<`6T^WBDgd3aIz-h!GcYNs>YJ_n28mC@f6LW2A(j=SaGM&;xA{8KnRs9-+- zMy78C=g-!(NV$ABhc5gA<;!>{N&4aj4(+^yVDWg36JzNyzSufXuvqvKHgd8TEa{Sb z?VS=Xg%_Z5SI+0K&?)r|^35DSpX4k27_IyeK4tCuIqlcjeh#BMoF{$-@_s$)xl!V_ z|HAtHIUlno#NW|qok>q-a}b?NY4>IsT)?}C;MqR>EIuekIn|GHxuP#8Iz5P`}YVhZOyC z+wb7^Z(FGd@}GGj(UV`n0D{Hc9EMZ)vli+P)b7R$*N<%myaza&XZ!VRe~s+3?r~1{9s6daUwG&+!hAB|!8<`&^H$nZ-ZZ6L49MS=QGX0+~X?sNdDC#~?JGYkW8@JDEG;ZzlDveWN&M)P| zq1tDni`(ZrxEQsYGZ;?XKDTn*ZEyehB;c>2w?uCh z;5Vn>|AOF0b|u4;A??cLk84NZ$0ezDa45Uk_3C}IoByW#L4LFF;{e#rR$5s8XSSO^ zz1D3vhi^9zK>sSRoAs2>)eEzm1q0a4iUVvn?>WGB^A5*u@)KAcy^fmE-p^;C`yy==>!>-!+e#tuf1bl$ua83DAM5UOr+Sbppz;_Ypxnvc zw;2CCZ@c3E0r3UpMyKj8`y#kGp>or_#~ANi?@`9r<9&tdk8(Toj$yzD-{2ZE-v1&> z<)(T+W_;&)IOZ!`bH9gU#89rOY(0OcU?(YtKTI&TTRLH@Q>y@bA>Y5qChmsyT$y)S8fCZ^<UsLp93v0&vu;#nXgE|7{bVkx24i2QA)%tE2QysdVAnk|_NZDSlz*D&w_B>Dg4e(D$Y&y)IQh!T*LR{ga1=KR-$jQ~1R{oD-%0Ernmw&yLcc zPnDN;;+0YQJ5u!*dzSrj(4QSC`ox}2j>_Lu7XK@v^scgg<)u;jr&IW88I|}uIZ8hw zMZf6h#3=ot6n^3V2~qkPDgI0S07dNQs8s!=y^#r1)c*}B{30J{ft24>7C*FD(w|P1 z7yTn=py`*S>M#5yC!p#7mZA@oWq5akz&|sEzmd{0p7<)=Q-2SD(9`cbRbg-RolpDn z0nYj8mGU5g&-r+V!~uUB?tA543f9TD>_v*ZpAbp5Kh2#F*h=F`F5`s@Wam>i0|Ql@^axHkwx=aI?g``=TV@QcKNc1@T0%fO7BtMDf4K(?#A^L zqkbDPmsFF^p=jfHST}>iNFGokdQAR#C@no5{#fZ})22V}XZvSJKie-#KigmCb3fa^ z!SA5_Sci1K^R#_m5uW-zDtDQe!+VkY4t|gFdoGUqA9Sw^$R;{oBK>oJru5JKF6p29 zT|W2E{pCLQ&#Qoc{Oer&A65LPOTXT~R{Hh+O+NSQ{gpoV>#KmbHc{{U6fccK$n-n> zH_Ldyf4k4)0e_XxEk_q~euY8glP_sKZIzs=`yL>2I@P1JLx;#(%;5C30e z{NcaD=kZ4s@NG%duc-Kz%DBZ}C*v0XW}n9`RlwJq(4P*)*D2#2f31vn{I~i%-l+n< zZO(qPjE9|>(3cO$IEn0H3B{{nmpc-2o2Pj0mGPC|?eqAm3ia8Okk^@t=N=iC`8WDJ zE~^5bT?sk0DxUYtc#ixTkLRj@r#4ZaiHhfL83+2;`#cV;0-m;neCia>`(*q`ev-$J zRlw7osLyD{bC--e{cC+5cUA#UXF@*D10w158X2$pZ}xe-S_M3-687_3#*_80_IaFJ z1^C?wx%@=oFY|ePTm|@R6Y_XU;V<=hTwMkDs}gefn!@k&c|2YP_`M1K%a`0)e~HiI z_$t8PlHmU%O8-?pkN>Lxe@BA?53I4xV;kWxd zPf-QHMq42K76Ta zaQ7tOe!6OK$0zjR<5h#(nc(lns=-~Ap!b7SgWH|pudG8N-Rf_&Ybj--fEu+nL}mRyV36x3&a-v1(WyxZMta?c6B$+&t{(vvachrZHNc z-+thfc)mLRzEjfi9TjFZb3RsSX`Xx&2Yg=8PQWWj9P0<$j*jO)u|EzgEto(5G{KL) z!|KuUG~0pih1~LU6a8VVmJN>YvnhN>QhwljxI%o*4nCAy&_ejMK8Syk;x>+m!nd6v7&|g+^KkBa+ToS=HNy7 zmK1;1l;KaH{IU8~qBjHGw^yuCjvB%uQz5#`~05v z?eY6b-i5qEUXHG=1pVS@Gv2cb{{{U0e|GezxIExe6GH3lM>1S@pXOGg5A|D0O;Vw> zmCI*ood!=(+QxC?TiC>}>AXp)PsaNhzsQb$h+xw?_UH+G-kS@5H|nqFW}+T=tUa}J zqQm987*Dud@S#7~>G&Z#?+5P}{TVfpC$hJa#9@c`Grrvn&!vOc=biS_>OGU>3%X!m zs3&R$e!PnKo8wccz_%@oV3KzVpBGk69%m)waS`Xwc>m6HOrm?SpbO>7ot7xqrsY1y zJ`38GQ&TH@(p%Q^Ha1j#O|{XZ)C7kzlZrpzCeti2X+g2 zV!y;+!OwRHzVLcZ=JVo-Rnhl3;Y`_IfOUR6=&#_(`d4w-vQp}G0+>vX!87|ABim5C z$bK}R=^f-Tj^&Z#^0tq{P2ZJ`?G$v=_F_6GSLzei>;4C=2kHmU;MNC#?Oe9~DUbe0 z#+wT;EQhz;KxfD6caN;k4c9R<8kSz$W#2#IeaDpzZ$_DpYnR+$-&x>&?%IxSyzlC0 zr}y|JaKRc^Pk;M3^t6-HZ9f_G>|o)4hVi#4{);(0nE1cJ_=WEo?;OUTFMW~iqP>0t zhxw9x@7}KGf8ksLsA%B<+3yi-lzkq-hV5#1;)hIctRGa)e)|Z2+>XHdpa;{%E)N&I zvvYv$`(yh)8G60#T(Z|&xR}>>tAs^8uRmW}FZHOCb}V0#`n1=H9}h2W<^th)4H8Zl z!-@9$)QMvN-FWPrj)N(m53ziVFVfFHnE2nx_{AXsZ`ywHj^98!+W&s%;CC_mD)O%{ zb^I&ff%WP0nPIm4g{!;8AK1N*y#fb*Xa?bFxl_L@B{XTCk@Z~CmD|hmq=g9fp_Lo zDPa5O3$5}#dzj8obV}ULZ767eXo>b4$EaQRHAp`25OnqlIo@On5kKK|l3tuFA^Ic0 zjD81IcW;*NEyI)Xe$Vwbea`Cryw<-verb{Ooq2Db!=don{j?`6@kg)g` z2{GRQ3R+IIb7Y@mI*wl|8PB};jhxZ+Ys_LTKQ37w$8P{mcH~H}fkK-n8#71p6(&fS zt&#iL&Ri-6YyQdh$zohT<5ICXlz{#%AwPhS`E^(W19JPH;B&CPOZaE?Je9L~g#{9} z90TgW=d(F9zK+p)6dL)pSIkOidUpJDD<^bA&mj7iyy{6_^4~=7k<8uC$(a8cxyv(6U_&KU}_3LOs{d?oEisV;dAd$qo3?pIwuUU83$*NG0l z%F(;q8CN6!->IK~5c*{O1-t*k=(cv&rF${aZTYPo36$>zwIA!JKyLvbewSRG*K!KJ zjv&8KLlvOM+WBmaw0pr(B3Hv_^C5xW!(x0~NK7Qqo}F(7JE86T+- zdwAhTkz#Tf_Wi~uG8)g?A=9Vm9$qL9JqsxW-rNXbe57Z0aI&|As)zKJ^YNGHJD-E- zyAa%OOsdWOCWLOkhN`hD}H*h4EqF$306)yJ&n5FOTT**uf^f%u*Q=|@KExFk-{5v_+f z__q@u+<9@Hx4&EHfqj%8@|OH{@nBh>2IGFkI&rq ze|~}UUe_-A&S5h79yO>u{3XJcQ}9>f2yspp-k^Wc<*s{BetaK?_PjaOpSXFlLod;U z2ki#nz#b8{OvGP_BV4HOb0dGpdWilP>vxYSd!7%Y(FiiZjhl&66Vd9@UO#CMe6My3{@gFx# z{6`HF|L9@j_Y?Tj^W!#tw0;Qs0qCEgwWZ+ZmWkMw_lO!4}^L@Yj8B6QU9xz1DgM*juAakKlUhzA4s~}Qgpw>p*tAc zkfdjV(lb#)@B!m%WMV#^BORMyf|Rp!h0$NblcE3cpkD(BR$rt;0&ad{eZTdP;2`j$ zE5(oJX^dq3+2E)KqKf)~^grmc`L=%gHYA^9z-HqNj7Px_>o10Sk8n6!_zZqQQ(XQ~ zl(Ox^g3w4o5$M5&cz?=iYFR;5U7(79BRu3K|5yt(Rh+ z1#beKpUL^O83XhXvzZ><_wXoH6El=SrUA*`@u$+Dfu5j|122En^Q@EBk3K=ihtYVM z%0qrF)*lzPc{!bDw|$(zL&F&vZ!}Z>agwq9cEMxtY(3uOVdE&IvtCOzV!QUm?!&2j z#Ba4WFu-uEyw8r5`m|gODj{d}PdYxa^@4%M6*i8K?o(I!j#{yU!SMVE<}XkVkIjo1-yxS)dhgETWX=^m20w$I9Sko$j}y(`C_M|6|2cmt*Yec0T)Lq8|K6ucz2NQgPfAhFg5!NfPQg{Nc0)jz{~P^d9l>da5Wrwr?nW z9Y^V$#=kQD_Hi%e7X_L`!jIy(S8&|s{fvIAr>&FNdZ?{W2D;y(6< zaG}1>jW~f5T8@!+wr>tnW!_^)oA@rop(pPm8!`JIP(G8TOz;+zB6=>C(AufU|D3Ay zn0_qV!hA2BB=RgYHFLp0?Xs_1;Do11m>XHc^)h-a?58g{#Fn1m1}SIti{xPZIWftf zaI)mjjqn*y#*=xQe()zYaK=KT=%bzU6R3Z(^?X|w3pR?}t~jQL>+8<*?j-+U^o5tH ze05(O>i6=$k)3W>!{vepBt2L!_GI@TWV{au+(x0_{BfiQNNDjUSMwEq-*+4b9{eBj8(i~$1CG8dT;Kygo+5tqAwo~CHs%ZRWxQYW`v~4$9QDHS+7Ib$;1>~p z#*4qOdW5gNNKJ{~E*8}tG6H@+t9C%h=;H7_F%Srev@)92y zE>IHq;A6ty&fLcNpie8Gho6;r)ZXj;GU@(_`QLu+g6^xfev0j6k5Iwa0NTH4+Le-yiza-=R=I;Pt`x~rZ23<+W8x^Ogzr1B5R-f_ndd^1o z(MTB8Z<@p-zuBPh`uS;bwAL<#v$emzQRHFc)L^5uU*T*}NqRC>_+tHrF{U3=8#sN8 z_6NcR9F4|DgRS4JN{!FYC!Y;DV|+MRxvi=G&#Vf|txw@Qy~1)^Qst&qSZ;f&+)FDg zw<}fd#0txKDZU(EVY%_Ca&;A!YfY6yn_G$e=BCQkR#q{W#F+Id&H9Pj%>80Xp+BU6Wdf zhuUu1{*7qgkbYlf?LO-9*k`ExA}Jru+u1zJRQ0<$|7!Dc(LBpkk!du~(wKx}`&9Z) zm-n`h&-Rl7|6%ljqsu4sOKg7!+W(PMv~ZV{@1T7d;C6?99QRB4>y(EC^VASs^bc-0612sX$( zlFk2Nd}#0>!e~7o5qfg|T&6eU&Ek00ub1!S{C6_`jQ4Za$E@GP-+yNPQ+P%$z@%fnBGSGCHk2= zq_6#7u@p5r)YW5=_E4Nrs2Vycu#gYD=yn^|Q=Cfb>dhZP3~tTJ1-C z>m`1z{qnZ2740pp+G1aAV{7F7|JUU?`#k3ikQCdW-}mhw%szYXwbx#I?X}ll`}(+E z*evv7u!1W^fAA{l_4T6PJ8pTm)XDEBr97WsQU2+YJxXsp1ruyIA17QMsn7oPGqv%f zSF}%axG&;pMht*HI?9LWD_{4w@2R!5YkKk& zTVLgxzbdD%mT(C#Vbcv3&l35Fi+?01MC0P$>3XP?iZ`X>~Z>ZVZq-?Z`rEwL$lQP@>lokzEe2<=kb$nw(p@j{8|pqkrybZaq;a1^2g=Z z+wYag&+iidG31B+CTkb8+Og!mqwwjY&G<%nr6{mIzsBPmC&lJk=Gdb@^ z0IosK+x7lXUe3uc;-Nfj4C;Y(B9RBD`_;5-|1sK?^22g7d3HUMlj~Q{mlvZl@ShC6 zEI-M7dE0ULf~I}-eA$Z3aFj3dw^3gHs5xJB`j_eD)h8e?9VeMDuR9K3*biT|yd0M= z<0p+T#b$h=(uMQ>^h(Bsmwp(G3pT!m<25b52EP24jo067sxQNH3_kvRo%PDb>pvI% zWc}6Jt3i*wg7NyRb@+9>&h%@)6c_n@KI&7_<@QQ89vEEr)`DaxMYqb2JRaY-_j{Jq zr#rf_@AsgVha!b3(<<{-hY<&DLli%MzVflTaj$fRSok)9}xV@Rw;aB;6HRJH6upP|a z3+E-YBfT9O=2N?L-j?|K-?+_hcH6w}j0IBf#MUFyGs+tFeKA{COwU+ua1b=O^o${SJd@7)coqJ8sF#Pj$K=XCZSEF~Y4*AwZ@6t}r_?DB` zy#7eGE1%eYq_{Hk+giWe{OLsXQL?>9^M6$N)KQpn!gBkjK(6w7>_p4&-iivttbosMRDGt`6rPDq~q;YWomnXiWMt~aZ?eHq2mb{{R1{*Nkr%LmmT z`k4COeyjWKU4$`>=X%ma^TSC&J#n5u<@Qy!Z*9E!H7Ph>&t`o4V!$^aFT5VvJo}?- z1>Y-?mlv^6@8fiyj@0J+`SC43p1%5V?sjb_YuAbA@h3jceL1L4DbjJSpl8 zuM_dJ)=u|GhCH5T?ex)~P&<7xs8^m2Z>M~_G|I<@S1cd9PoUhNoP50Dq|3)6L4904 ze4RMdcfKC{JAjX)cf3r-HCq>@zTmq5MDJ1@%-#1W=k`zkwXF6T*JH!-iP!Cca2@jf zq(8TggzsVreJ7ItmN0*2pQk6Be_fbATVFcRJb$nr^={_N;Gb&>-)wxjp7}C5KP=~4 z^7Zt5zCJ{I_Z@ZlUMu=~qI}_ac2!-zx1VsnOX~7%k$mY2wQtg;W>2;1I%wKyc2~RF zGs$(+j);79j!M4dy2!$tB^(!4Fd65oEZ=+yM)M(e=isO7AwN%+?U&m=G2yxZ=kKcc zc_WT@FF?+GpQRM(zFT7Y*!Sak&WEnIxLo{j|Asa2b%^vbNsf}os8vDlT&7|j3+HF) zO3^a$!+Xw>f2ppI`@Ip`skHD&AN{mb?b5XMIpvR?=bAH18Bx7U(8_z0a#qlD9PgiIb=AQ`It;>kL589ymEH$#8Zo?!pue5DKVz4k87P=C8*=q>z(;>q!; z@qU=sd!ghD&(&(ZcM6_#t|T|`jrXKLhQPqP$M3C|qBkl&%g1xNif^01Ht?@?yOz`W zu=v=A6W`CrC-%Nf;`aFN&6@tS$|LzgI(%P=>wDY}^>cg!wx3rLX+*r8d-L;R%>Mzv zm!j7T-JUNQJFIlsxi;!icP!7(-(~v|_I`tpYknTCF`vqdzqeQ`&-guIdCDh$Po$Pl z`8siV%GWh^Zh9HogYyS}ht%gO&PNaT8{YVv`Jba{Dvuz0$ZM|keVp=Y@ctQ?4yNn#9zXDwF);^_7hkxZzzRu+-WUIFC)HrGS7)|4uBdYgk!x* z^4gQqPdZp%vM_|BT$ZA9@wYynqSb%8DzbPIwFLC$h2jCeEI&d#Y`;=8ry-vFE6MAQ z_4vsze_trX15rRcsj7!3C8db9sE;Rq{5|;)54LR)PpazS$tRyLh45TA^m~(GJo#0U zR;$ND(e1@MN-W3qesk@NI_Y=JPq`U5SNj#==}OUD@jX0n zp{9F3W4!j~8oyLuoSo%Uz0jJ4RqxgK#iHC^AwJb}+Rqr)eq{VYSoIrQMcZHd4Y{ge z*2~|WVt(x>q*BvaPw!{s`)#+6+%_-+fJ{fY_qL4)OE60BQaaPSG{WD>CSH~}V0y>L z0q-|y=K&cHLp${d`j4M?WI1%%yXOcq%Fo%keI(;yA8V-2-y3E8krE}@<6mkh?|_u2 zc9Yvjw8MxkJV$vDaFnB81dB+Q)Jx6B+WUb+T23F*$*It8Jm&jqLu@VTA@QPQNNu2x zAV@jL>^)QkWE@R~4SuoKIn!H~FMMC^3G@%I7w1=ODYgr9vOe38p0!IKBH^l6o4>?- zt0(K-j;P9`q)Pcfza+hecB|U^e(!{Qq~4hg@KevMwGYdW5zq3^x|sH+^(Vj+^RVB) zK{XKt{QACKx<&1rbcfo-=_3cFJxNy?aM^ht`yRd9Wqu#c@1gp471Ax*?zMOH)jkX5 zaXv|=#>x^!{_mPG?{f`}DL;nKEDOBLyW{t;&(oamoL7t@hu15A9=6Zw+lz6IF1bm(x^-mgGs-(% zc+Yu5cMY%K@6PTAk%@3M{BtGjazwf>K>nm(+a#QK{5krQpQHAEPxy_{!Tx@LuU~n( zue%T~hAgZ{X=VIBWd5yw-+wbA;5;AO4b>A_J9_k=E@%Fm-;8vl-|d`32$zwMyGn!~ z#JEdW9ThK=d&*{xp>y69jIxSZO-NU+aRBx%lCU?;W=oM zcKmj)NCmQcwqp{MdHh7}e%>o;ca$gq;qv8DhY|r0J4i-QT@^VCeO8bkJ0G>ycUz7`C_IC`r{amXi zzbg57CTQnZA|K;HKEHpL-3RdTP|ZW=xs@XOtk)Hwm3(A9$nRaBs$W0IrzbEpU4D~w zx*nGF>pEESxazsI%kQq4ViYSpFA$fNLQcwhFxr9S6L#G`z^ia91C0i zo=yuJ{vI6&lKZXv9-a4Y?7B?gT#uzoH%YzIr5ns&YyK+n6Wgy$S3GKA!@uH#7Pj(N zY}K%m1^dC?7xQ()EjuNBc~{^>JIOvDi!mRg>aNWb)Ih7jI7MCl=Iaoyo6F zB$As{?l?}0{PvXvE?s8wc#-luop16pOOhjBzfEVUASI7_y2+KeH{MTF9=$-W*33I$9>WvTGq+tf& zQhS#_ZQUSzNn5QSwQ4_#Pf-FhJ&9&vR?6!vwwG2D=a450zGiUW0gUSzf7c`#*LJ9y z-eCIcan~ssw{~q8bfE8J+FtF(&(<*uTYX!fv9Q&*^*1%#@A?y;on>9VJC+vG!uUt=PzagLA`ctYW z{^Yji&Z`mb_)aXXoE^MjXuI>(m}hjOz_`BhzF{(0uR{GiRKAw#*jHzzmwbY9DK{p5N) z+fOsQCwW5KH5(UJmZjjd$J*QMqO|OCrF3QAmzhCng?`KA&c=nUCLc3wT*%}$Hy+Hm zO!A+o9Hv`FMQ#XRM9vBI(Mgc2U;ZhTt4l+fz1AF=%@ zky-njT%8FP8%h|pF==;z5{@_=@zi>P!2gzSjNPayX@Xh(}?&0QJN_tn)H=?HyNNckA!h_`$+7+ZSuGeX+A8UyOI( z=zRT>>kq#@OL@z9&Qo=|3$;Kjo$rT_Xj=g)42p?P}SN3iEv`q!;CK|HZ!>daQc>b(jzJR zDZcp)aG%KGV^{O@Dq*=F&cUhtqB3wH+*fkt#)41vZV30e9317UB)g{d_}-Q)mzew< zK!~p+2ge-~-){=xHa9Joty^F2>Kq(*me_v30C~vPQRYgvsCHiEwW^2koh4!%EMA~` zsJKZ0xxUzJe}sCIuC`vK^IXO=$>+1of8@rR{=)a`B;R1MRrOZ!eAQdHU(OYzlTqHv zy7K{Xm8m23mjkR{QRKXGpW4?ly<%#^9GJ*JwZ8s9+2_N zH?d{ZrJV-_K3vauPRctV@w9hDkJ~xIQuK^ujEf&o{S11Uelqy7DWJC${i2ogfa>$& zFNi)r8Rc}G~7# zZ4TSRzH=IuFYRIb(WNL6dQS!)*4FXi){};Je;wX+Ck<~@hqv#f;XPc3SJz`t27jNg z!+YsTqqkg#_rjBgcSapvJr8v<_^_=GZ~3IrJ6eaA*2KxtLx=0e0o`vo8GLv?z?+?8 z7#Fg|E|&8ZYSxK8@gdj{Zcq68)vFm60+D$ea%AFnu{S^#>9XA~mq>0c((FwW15g?icVyMX*A^eZF$ zTt@AkeOnK<^$FjvPTRF~xA&UW>ocqu=pm_oE+wm%<>&bRsn==Q#7Mq#on1jT-7DGTK24s_?+EjOPIOVB^T;``jL+NZ=v*KLhV*?SlpVvI6 z^Gq;ff56Z1-1OS-1@lZBXT$Qsc~v;hAEcfN?4Vl$`uWXMI)DElIbU^Ha=!M%k01@K z&+6;#M?QSDSc`W)_;)D4stqc{BOj!E5LUwxPgGa^{8AK<&2m=2s@f0sF{09Y|`8E8oga-?+k#iG+g+;P&#rrzk*I-z_C0H4@-Eku+YZo6@XFt zIR2KR+a#Uv8rF3M!gHMGz694_iC@S44H>+KbsvK8Y;o=bP=gYl;Zn3NgV%7sgyX^` zqF>`ekMw`S)9xrmc76)KHT-Ua@0Odpap7&zEW{9A_4N&sPWm<6Yw#CGW&DZ@Z;jf; zFGxF;qLq?Pc#3dsAL1>xkFr$O^N64Alli+C@R8+dVHNyL?S!Y_bdlG6|> zhZ??|;7EV7?T=h2nuGAC2>jb5o%l8E_RRTm1A^}$*L2X_#_Rir5+&E=riaLc^0J%vx!fc8=czVfnKpOstw-hVSB;vvFK8p>>WEkAIv^2)_%68UzhYVSU$IN|UvZV_KjQtvIraIKulp_ksjB~q zZ&LkN>=pgTd~eR>Q+_>T`DUyBD^_fu<2v2vK)&C3eXYDw^oYT~N%dawTGe~S>qYOe zoWID~Q7Shdw|o`Vd&o!mB>c+(e)2=x<*5u_^j`5A(R+lyCsz-Z>uni4+bJ%-LnMjt z@5$lUey8=oJFBYqfFDH*Jr3^fznrsuFul{AV@=M>&3I{obCXe=kV)d*Gz2CD$*Nk5^{- zwl}5w(k%V<99=p->G(nX=j8CKoWCW@zpYO0F3jRTohz3b&&Lts{f%6@juUUn^3Ttu zD_xyg`eV4L`WwpE8`CS z?9Ac)b>Q`SmZC*M80|ff7LB01GJNM7>3A(_9|x1O+` zs3hx2d{32ue_Y{t{X_U;`N{9+gLMMJzZHtr@A)zOO9;DtRy~3CyE5bph#+5xXEW)z z$>=~lqB6c5tDW-n@d}gE$9yZo@=zbPwwJ?pK9Z~72ZH>h>t%+)SGww2@iO`L_8GY4 zi)@al8ni>m$FLo)4e3EW+0HCyRT=qr6ANfW{1++z-VOjNhwX=Y07T?;Moyl1m4^MB zU2nMc@06|p@81zG(&=6aUw<~>1MeksJZ3rKgFd2UJwEsA^?D?q{xQH3j{S)Fhkx$Q z_YK(n0Pg49Rvx~Sv<(al4*PjS#^1ha@coSMzvJfH{k}l$9&+xyeo)`AKTISKl!LAu zA1}_y!DoZ|C-xoYxTxQ~@O#P}Z=4Ui!G}`xY32X9q`bDS;_m~{u16Nw@6#k-T;yzk z>ot0}HaSgoQ*wG);(a~X*NHxYSmrN@bw>Maf$9wq!5rlC3;2$z>x*z5Z)MaeuR&KCpaZQ> zNO{MS_rc@H`^6_!-uEdV?0#fAUE6{DW>Y$U8{2E*cA@-)=Ur9?{lMFUa$xPtZ~J~IM|v(PgjabvetV9gJzf7M<2$APaq$b{Cu3HBR02hc9KTum z-5*Ihuo)9qs+_0{0Bq6Bfr|cU$Fca>HHk!Qfk6{Z_Jge>lS~Q<&$|j%7qzHm+x&sJxT8@ zq?e-K&GM1|abZyG#IU?S$mP@Wep~Xzg`1?G#f1%`cf)+wkw%eTqaGw%@l zA zKg{=`Ts~d*_<-aK;kGrM?~gRV-IK$o^Zv&E{cux!w>IEAH76(9-WwX=zLev)!VNUQ zeWWSedmG@obLA>Of3^XxH&{%JjQ9VC>OZ|C5YzC{iAevm6y`^g&{;J%%MQ+-OSy}ti^ zDp#(y$2kpf`*U#AqyDa6SdVg!&stv?w{RictQ?&3PuD?0xW&18C_b)=)Z;t1DIBrZ z!~I4MPUTeXxv<=^92`sJc>N?cFrE~wwQ)Zmc6(qVzqg111CHw>bgA*e@zA~*4fqqD zI}>=@H*d6m1G~40ofXVcJ>Gk&a zA)1{h`)}Z5v;FUTB%an5~LXyTan>ez|iH>Gdp~ObqCr#UC76BzKI_p zeb1SEy%@+>I6wM%7*<}MzaLr!@9CV+Ndm+S+x_}BH3y>Zerg|-HzZzEea!p;^+^x) zT`j-Hw^;t_y^Zi+0R1gDYkc}qEjP~>KVMg!XZS8qpYtQ~y>c1<>beE}K8x?gyO4DL zzK5R&S#RxJS*H2?J)jOucqtW}7m5#gp^FPP?_8&0*9-nmHT4NG`Mr;@J!HLTx8~#e zkI18%8FlA7E&_K1$|Eqkz|1^p4_d;DByuJKAL4T(=xm5G}yYSUJ zYWUtM_#ohL**iykC>$>9*FpJL2)wqdzi*T;zxt452R`j5PEU1Ik_eEVF zar}MhKREub3iP_KbL9IY$KMSBob-<~YVFDJm8Qqpj~G4=eDLQ_)7i}!o>9(MgtIG&@-)OQuj@3P_2|M+p<^N1bIjmDT+{J>Skno=4XP!U)gR>B zW%+`>(IIL8_fNvy~D@VQ^PBhhqcytNiIed@8A8vhF@{NG6><7!>A7uO%!-p`7 z@csE@owkSD1*>O*A#lDg!}`4r?O218H~ii;o&VmmiqX9!U)Qt#4dw>nCZqR@{{$Qh#%C$teL;l-dK+AM}*~Ygkm{I zf^x!iDG%vFFZ@w~Q+i1c={y!alaZcmsONv%Rz$*e4^g|-+QIvKHIV1u$9_gFzko;n z-KB89^GDP_LB0>5-?VI2`1C<7-{lr&pRCWa-T$y0*vGcN?eAzM3p9UX{W;E!o0MCi zl770H`a;!7)O!kRje1$X4&fFD`oiCPYgX@@K);WdKK`ap3EG-HKTE^mex=x({Tk1C z&z7*igDgrQ>;1X2fq%cl%txmzH-) za@0>H4OhL=e4~rwHuF{cG`?k-`fLYkdH>F!kKg?(HGN^1!LL<+0OivW4k)7${4X<% zfb=UW0l1i(FmR>lUsP^Rmtd6aHhxHMekc8&N#x7`=%8bNV@`jkC%r(Tvvn%!57Ntf zKXi@!^m4x@<<|H|X{+H~5B>{3u9E1eMVJ4w`&1nN=~yq8*Khos&-#D!2c;I{!@%`~ zQaIrU;>!#JzwpEOSo==U1pFv5H~Fzz`Ei2;Plz878O$$Ns+<)*BpE|HU@Zif@TBe|TZNC*2wE*EJAUr#DUzoPAUslu_HL~Z~^$jV}6r1On-!tA+(Q0MP0 zuQ&L#vq$iyOP7dGegS2aE-g#g-yyCdo-S*zaShX+WxZM!YuMr3&Y(UD%O^aknKN&# zWbpGDj3?)-Cg&7G($T+Mz@+_|9#7NnDW*FXD19d9$+*{Jxz@+tOReg(P58M0`74Wv zmHnYCHR^vzj;q37yH)T90^&4n)Z=rN70-#g0ioBXW2=z7MQZx{`5iw+xT9OXWJHr+S^jRViF> zrReiQhvRRte(rMW{m$nVnLNzZ{GPA6Q^RaGkq2)_@Pqn#&Xwl~0MmtUh$lt;Ha~Ga z7EjZ8h~H1?D1N&*A8@{2%5^{H^ZD$2B8>jv_Wns~N48wVF!b0avn$ccZ1;{S-x55u zKg$UBn>;%_pSS(z2k|YUhmZ(2ut|OPQ;-^YzIdu;>?rk`-nvAP{@%4D>;WFUk!VdfeU&h1} zeI@uvJY1-6eusEX|0h>lI`B{={5unF=U^X0mTjU zu1Aw+lrPld^?K(~X_5alz4MIf7heZXo>u)*(>JP@T1-wmCfzOlB;)g#@fr1ye!WP; z1O4h}`ew}VaB>2d*EeaWmRpMcFV#0tcVtA%69S&?_k?<61N26wf8Jtnpo1=xi*^mW zTvbaNZh_57$95I{b2V295k`8Q{&`BGGyNY=$?KnYtNx)9f}`Fi3G7dzSElx9`UXjs zcYU`0)2}|DA&e(#?nM39z9jW-vGBkH8ty1wBYI>6ovMsX{nwfvGdQ=S=cCYfUwUh$ zmS5rG;<8+RE!pAbLtp+QD%@i94H#vVOY*_Xji;ePa2>@f@kKW1zXzDA{hTcId37?b z?O16i7ocz2#ml}AS;FZ_i67T^@1Mz-^#>HQ6G_x>zmFzy{pNU6!`DpD^&nqd_;vg} zF+F!ysONelTg|R2NH@&RtKvS#j|K0g3P*i}CK0(rlSh@}GD+aNAsy|iu28>0p6S+` zT>JSx)*q-~7n)u(d!_m=0YAPyWpJTA6_!i8t5CrL#rFJL;J9%>uh}rr&aM>UM0SJ!N>zo^tyt z*{yu5*nW)L*KV(rqCZr9hcYQ~Eo26q+gIWJ{r83X&h1v07j{axjBdA2y?udP_1xtG z*P!RNNpwxmMXKl0Em|*c@0#89S>aQr=Zc>xbO42auYlkCE41BGRjg>=_4=#-2GesE z9=KD(aq+h#zuQs$H<+F?I6r4deRb1!m)zEpY3t#DXHK^>lfBx075o0J+exl>eE+xzC`%57^I+JFoSAb)TTE^{a6WlYe6G7~X83jtvRNd2Lue;g=wO&b;4{^aef5 zL^yu;ml~}9Y6;fnwWrv;c7^Fz)4#5FT@NR_wY_~kAnjEB!*OW=P*&dT`tb_+(OsvR_&hhAK9T-C zHK%{4tG*glJQTyi+n#(={|(CjmbDr`P||Q*oGkDoh%V!Q{|&m|=x|ljm(;hXeC!*O zJbs|0a2>@T$+_2Be$(q~febFp|MHT!rIz3I{r7YEP2aDT>~;AU{`DPmYx!N@e@D(y zdpWbAB){{6ul$MTh8*9ezcTvzG~BYu{I%*2SUbhVZ#CeX_CF_oUZI-dV=F;k8t`d+ zNAU$YHy+aW=lj3(*@^L~zHh{*@p19X4fxKw=lner<2zN78u4j-NAdG=zBiGbX^N@p17pf-mFuyUtMfE~Sv`C+|cDYZ=w>KuOa%zEFRAzGRP$ZxIsUI*Pw5 z=f?+1vn5RU7W~S_x1Bb=4X9r8b5f1t+lP)jzIDB^Hs8pPZ+%n_C?YQYqR??7>nMD8 zEg4@Wq*HzU<`=zkem~>)n3apdgx?M8C)#d4 zKhDNE`%aqgL%SW|`wQ8+EzqM0vU4lh{6dS(_D!lbPLZE1o-^YsbJp~%6gM2k(!qWXWe-?V4j(T7LeE7cHu0qW&u+TeR>A_4^0Zcl+D-*#=DSaUGfTxE^u)+v~yiTPW|P=pUsYd4ElI zX}`+$mG9MZh=={T1K+FX*nB*G4w$?WFX!*RKkoKjWzipN|226jMSAZlzh0b-Sw8{4 zb^;IARUUssP0zXgo~^6wRDJa%VCmeB5(%d_9{4wjFM}|+IC`tZ zS09jIluq9->ApYsETSool~w!;`I5gl2LYckz0t*W`IDWBzfG%|okOZTFj4-cN>}T_ z9}+e8&!l|H@o5aNm?7cHb~ zE1u{3v1@wM20y2qzp!JS_hlg`no5W{6{EI5{`B(8U z=X&V7F8KKFp}>W7Z2tG=bPO3C#FXq(Ijvk&kN1$_^?Fn;GCFPEJc3{u`3E}B{t>)r zVCih})7BZ{hjf%Nv2;9a59h~P&=JCYJ_q-4;3ePQO}KR|1@iWo`efT>@0jrpo?9JV zdHNNMWmofY*7-HideG=PAimR`c0MQlnQ(Ns_Wz9dAw37tj$SV5_y&%&hv^%@-!T0z za_KWrAJ?Z3ncd>;<@^ot9RPfY@2kLE;^j2MpRdo8 zq<>7RE&Gc3`aGITXMMa}|E_A7pY)SYk04*NPy1204oW*I9Os@Re{H->J7;TugM91+ zNyPIhsL1pYv%|+suI^QOD{Oc;x1TzS?ulxH3fNIui3Y5S05@q@cP|;VPGLG{CrH`q9^0z5V>1m}E@piA#DvqN8|~ zoC9$9%)Z>Mcv;RW@GV>4Fnu;~fsUI~(f&fmT!k;m?M>KcW*7Ev*7%lH>ifKra#Ti? z+sPcCh==P<^jAN~zZ$0R;GEqSMZn#s>;~J(sQqN>`PCHW)e4W+h z+xKG#PY!uG$9fmVL(=iiD4wBBa7 zW%|S5(iK);5G(R%=d&rF3xJ<``QfwFr#yuEoZ~~*?ggtq2W7b9x4ZV!liu!De(ddD z_*i|rqdD24zMh>fZM0uD;J!)t4%0!@)9pXjcPH|TeE^1~Th_jeV4at~Ukn(*RGr_$PS(cmli!Ccygz!Mnc!?|#FJ zstMkM#Jfw!b9{eY;dOY$e#~;wV?Lk9yj8-Av+>lPXv~!chhjPR5H|?C( z5dS{v>CT-E@#H_gwiTx)YDs*NILd|#rO5OWS5n*Tlvm$pROdUwy=Nh)9^K$)Te%>-l4t`AMliC-?yz? zH&X!n@K@sJO0Z_Xnmk}%Q|aHMbj7kd&h?cJ>6a(n4(d@l`ro2{%PHztISGN|x@#G} z&+E8OMf$UGa63b_@u?5`nlXOvW+HoP^@IP9j1Rus%>+b&Mui^=G+KvrDG_lGfYg)z9Pk z{nbV>P6J~cv;K9B+t1J+GJfHY_`t*b ze!jHQt^P#(!h?yThtAM=d{069W3IpXI#?!uwognxlK|ec zCx%j_19k6YZQyt^cNrLeq4>$u+oar&#I$)DLdE`M=ho*?pZj_|~Q^Cwb%^0eBGKHnd>Nx-9POhiIEN#qQ2$Nbe%g{v$= z1Y95B8Q*L3blN+Otd}q1Ydd@_0 zV{oh2>-bAP(E0f5avxLw;h*=zf2{Ti;=IPCiu95+Re&1C7+j~^2`Ovbew;$w=hf2>D<@}AA#5a#?X zF6lm0dgFc_XU5j5KR#RhaJ}i#`CJ#u?T@Tu>6j0lsU5)gN3!{wzxQF|e_Z%yX=ky= zkS{xbKfY7>q0{;(v-5Tx(0E%{^ZU^3hpgY~x%>CNoKTS9o7za0zyrVzee z={XksdqeoG$A@1Pz|-Dsn^&tJ%Q@TXF)df`j$FQrbNS|2zH%<#>vQ>5UD;oNR2$t(lok=<*G3o&xBpZ-w#t*;mRzW0Rv^a9CN+uxf9 zg5cOc#V0**mCJP8@q0|@mr_nLuIFETziH!42s&K4SY^cZXKMQ5Nl8Wj+pGGolBhyR z#b7O$@8CLNzvOWy>au81fGS$)y{Q&Ov84@HJ&g`c_ z3Cg+v>zSS7(ryy@dTVbkUz_h&f=rt#$$ChU z@c)rft^d6S5B%i6%kv@Bi{ZgZCFutbS^0+?F5n00oQNLZM_{?9{44e&_Gmv$_8Nco zY5Cl5UyJ@0?gPp`>sC!qJGTkFSKt{(GI-RiDI*J*W}NU@Li^M#ozDy{FC&-C%=Er z{(T-mDl;i19Dfl3=jqMfhk74OEb5j7w}>^LLLHTDZ;N@_b63@%f+Xxyo4}5Uz?oPuFqE zOT`87Dd%+YDQe)PTlQ=J(&)PP3Aw-S^SA6g+y({A&ci{Z$P(IB;^PlX_VaMnMByt} zgOPB3Fl!|JagDF(1*Ib{yY+@27n2L%gW0F0=oz)!o{?y||1J7++`<6Ya}pa=?+5XE z9zyxP9_>fW{;oLN6U~1#o~#w@L%Xt|cygE2GoxqbX;M%LUn$~`-buv5`OF){FGYF} z9p^=){FcQMovkBe{le@O?+?!cjQm{PVSLtXGOn{fR<6_ip(=$A4&QrGJ_PmS_>{@J z@Bf*8@cKGE)HBqMESD~MTKRR-_jz4EW#^FY5IN8Gc~M=~*w;VPrP`m9-J`<4OmA73 z`wN7Bmc-LXJtY678m9i~!p}qIC%ZNa9@byt&96SK@SJw=JY#y}K7qUSbQRP#lQ)0w z&hfbY&2<^UXMW{OQh|C5D&F2ww}zK#*vDHRXDg>GJiZsL?YL9nU^Yf_ZVGhL`MlTp zleHrYhaadh;q62dN!ONY-qo?YWwvVK2(D> zar)AwYVY8@ukh2~C-eTB@!^?Gnx66DO~MBsKeBx@AlH7W45{_Yzm&@m_+GPgz}h;2 zp6kH7)Dn+#{!&hh)x+2AlHJ%^LnIu>NjaD0 z_Yu}u2?W`@vOGFYwvTK8u zWAlc%pcjOhkMi&5m)Tz_dhz6cSG{3)l3hxdzax;0SvUp)IIO>%*#2Tk8-jKV3y4d; zKlC=iEFEqQ|>WA}mB0sn%BJINVWKwP4M5>Y5&p5xQaywVcOUATc_6!3cgv;Bg!d2!{ z3Tx*gGI`6+NBpL=SO2vNzZZp*Uh0oBqDIWmOI zJr(_gVBTy*NyyrOZF2Eaju`UdA`{v z^D*voh0x#o7_ffec9GjFq?`S~-?Og02W{_;U#4_BU0$zv616_o<0k8OKnE5noX_K( zZrlrz`Xsx0#IG!QLi(kTx5@5NiN|+2Bp&C06>jU@f-u>m{7&|+m3W-jRezV}t1QqC zHfQ!J0`K!M-#>0sHfDA_%Vj(Hy*SQSo`LP-^}{(D!N2h$B*3K)sUeZBmmu2j9rB~M zXyt9yc(w=oZ?a42>t4hW7v(&z={`>#GCuVI9{;couv7r>onk4sd#m!*zX#*>C7qv~ zSzE`gK4o|xRNw7(f2VlP5}g?Px#r|;wL|x-=zNo;B(2&ACq3PqL+sX;HbYD9=3H}rgtG6Pn#8nV;$`pVdAoJri;BQ`dy)@Zf_6;CRIWD;AptJkYV!7|1hel^c>R4{)9pW(ckVm( z`J1VS6k9YQjICdq3r$19+#OaI127zZ<}jpC8MeBY)il_&*cmtJUWp zgx@Y#r1#E%Kj{kH&&Pdb8Gn-b%9nWRZwcd*1X~2hjOG0nu`h!A;zmv~*Mc5uJ6JA^8^3O^7 z&F7fDpT`uP#~ucNsV|8Wx@|t~_6Wu^!R7Cn(9S6Xy5ewF@9s6#3V7srIq$^3T77L?5BK4b+~f7(>>t+{kNUZPkN5K2PR!E1Jlp?i`=FMO^CHUk zYc)(gaS49zg%9*cTT~3AbjJaK+t_(f;m=igU+-_TcHlg$3rUB}r#_^+wf{kp51tz# ze#R63J^hlLtg=ho15wN#R zzhLG2`+avY74O^G`UKvOkn+<u<(`>pAX8aDkls<|L{mf!2wvc&K`y;Asb^IYxU z{%)b``D9$>XW?9h$3Bnp?{W<Cp+C~~!M_AP^&0*~x0~Ee1w6wpf7D~tBWde4$)Db$d`_1t zzI!eNFx-Ue!{`q)<^$i2(SGi!$36~3%BIUja-Zd+itYtZh7lm7x@TEuv zY{Gi6Quw}B9{xKf^q*6@qi#$J?k$e?Cbo_7q6e=OYA*jpC|kG zBa_|Ahwe*dxh3-NP4iqQ`BmK}#mL*B49|yLNW3ny;GGwf7pu=b+C6bD-s-R2Cvv?_ zy(oNGuXvqaA4e)ZY*os??*I8a<9>g+?Mlt}EIdN`IMbawPm@kpKH`3o@F&@;a^5yy z^H)dJU%1J_R7!9yE~lNEuWeMKvvTl0r{L?JtPNDTZms}eA4=l=ykL5xwo|oi`ECB! zwo=3Cbmg1ZC%sYW^K){(e>&gfx9w*&AJ^OH+@`d zTf9x;OVJ(TGaJXrWViBf_$Hkj`}sDfgL;$YcF#X799jJkARzw-UKWY=0v zw|pF5$Xe%n+PYcNeZEr5H(Hm^?KB_n{JZq&E!!0CN#%>nd9p{_yL;#&NpQa5y<3HU zRN>QB4f}hY-S*u){|>a<`ROf+uchD0vGKNYI!6S^myOTP-|8}h+hgUKp6ni0`6@+a z0bp+S6CY1-ZcXX4c6k>4h&j3+w|!gfj_4nU1(3U`50#a893HOC^h{fi1f%Yi z=gAMZ6F3f>ftbYJWv*PQ9dQ1nD0+eYcf6;Lp6<($0Oxi>iatkIlGR7x8DAps8|_`> zbcPO;$=E)Lufd-q`TV?_+ud$g`#o4s_wh5?yGigkUEMbSNyfHGd>@!ae)a0pyP!)M z=I44^tlcX!l`ijZzV6*UQyJ!R>hB-8zTh~=b*t`0$|vVTV(;+#y)rM??Y@jJ?aHup z$oMjDd}$YUWb48%r#^q@ym0wi%|l4)xr;!8>pRzrgj<_~TO7b~U3avzhKG8NDv|lR za`}!T&hazfME5Ko&aK0|l*>2K{eqpjeBaCEo9KSQfn2_S$mN^pe!=s(e1Db8H_`oq z7jyakXD;7F_bj6vKfjjC_s(29`2Eb;xqM&F<$E}|SHSk;jE(L0Lhd`*hk|_RikGzi zEj=QB_Rg!xU0fJM3o9P#BmRchR#|kj#3#Ene>~|n3EwxbkSeja8j@XC6&*LSYsNpE~X`EB^ugATGNtGC71?_XhE+vXp% zCuCjQ?{!+d?^|)b5h$bVzW97C*VhdXp&pkYYA<}YtACGzdTS>exL@H}-!A+lJpK9b zSHhnPKfiAK3+L44Q72>F_7j1e`h0UQDn)un;FJE_tzM*){G+_rt#jx9=CS(r_dAU#1WK(qH&~{DJfRnf!du-+dh^SUEEk-sdG=ehcWJ zTX?Pd{#|2VkMw&UtY;Y@j?d@oH!o7%?d@oCGpg7y@8Mt$$9dI3w(nYofCo$~!}s^F zZeGOMAL;}9n63{#`RwzSd(58l`_=2g?=sSTUQRn**0COWPUJhC{=E2=3+#Ro(z))E z>{0pm^$dTv(f4Q81E=6MpX(!RU*hNbRK?!)VmwFYXW8!aA@7qZr5e_CtT$;G`EJ6m zTDfZQAFDhz3CrWUR9GH@QXcVDCZB`98rJozvVDvAlq16+amfrNes{<3Kqrek?*@ycXvaN=dy_niqx$s(MrO9gZZ z9x@}S5AzeQ`UHG9${WkQy$65b{9YC1ih|K*^DfTI*mCvy4*T_%e#p{&9>IP<_(SI3 zYWK$c{jGGxL6g4&;X^R9#wpE&S;Y#b7pD(nF{(@1@G@pPeupZ z9quBNpUM=ia4Gs*sVCcYBKz`S&aU|+I-c8?>Gbju!HYQZCGDIcVZ0}-{*Fj|r)vb| zmjQSC<;(^6rL!g7?+M}k2cah!*ZRBtBJvIRQsn1zRBrIyZ^@sGy&(B;pW~S2CSxjh zw`cQVEk8f5+#U;gkw=W4psg;luj4M3hj^yAz7{F1^Cz=m!&gHuym+vz&blka`~1A`F!8i*MqC)ArqXht0mW&++VBh(CzDLCJ(+oRGEu{;JjVaSrV-A z`CTg4$@SK5E3Du3YQOdKYHb&2zV6G_P6+KO_Jeebwbw@#uKGdqP5=421^XG{t7vb! zww3DpdmX+H=;KhbSMhfDtPsHN#j3Boe!d>no!xKK^_K1pEQR{w3h{kBX}L*)GG6nS zpL?2fAx}vmY~w-8ItfbuW`E{9ff$F*(K%LJwDWoW3OC{TJj3Jb6zr$O)4i@r~wvpm^cjZVAu5jl8C&UpDrk0&po0OwczuFGWv@o*JeyfaAQ6 zC6*$6_pEmk1_C(JKan1o)^ElD;K(P^?s{#g%-rA`@Up!sQ?wr>E4AM;o;9dUc_+c5 zWTp1w#QHDiJHik1eO>a_tIibow5(+_9wHEJTr1Jp{MpwBJzu(ZfdKHl+Es6;(Vea> zOMDFvOC>&CZ}9m`T3#aYX%8w2=lhUpSC535pBk(CU7ZqcvvIE!DT6&f<%n)$S@HAS z&lMp(UN6K;y~;{YYU`UD%aT2Mh|Gf{pUUt@%y)Xy9>yyFl`d7FKCXJd?w+THs-LUy zeIgD+Re1wM>L}|H)#ml*-I({1;30GIYl`93lR^Dx{&u8uoGRz!lS|<)pUihoF5fwpZ%HoS`+|JTzw96Nd>Zv0!*375$r;+N z$?3|c#MXV2(@3?Je`x^E{1*q|>bVN%<0aE?!r18R9?v2fSs><+WQI9G55lo9DmYYW>l1%V|sOn@ z_C-CZNk4-B>^dis|Gr%Q*EY#t)nc=Ia2%f~*VTvchrW$-c{_cuG&Q1SN_)Hueq8!h zg2R7}%%fwRd!3GONlpPP+-(xxOR#9LbZSIViA$%*mktO|`StsS#LKYTFMSwqC^<38 zr7K0B5T9^&NciJfm`pB3J0u*Jo|HX&zC-dJ#PorWY~k8F0D6AM&!ux5DF2ts z0O601$39OV0bMNT8j}~obN%*M@W@gJ&-LkJ!J~?G@HEVh1y62=^solUf=87z_`S#s z^hf*Pv)gS$GIMub`GkM(qUP|_ca@o+Xn=1!qd9yV6k28G_6GQG zm72qU3tg--^D%*E`{G~SeVk8y=SN5L>n}XV@~Q7m&-!cS&5ua_l1Pi{$@#?dW?{Fy zuSCRgX@i!7c4N;TzEJI+fx9Txkb`rz4F|5G)Zsk- z`IH9ucj)-zb~*LYS90SB^}dfo&tmzf2%m`z19zXK9|`1I@zlHPG%av9#wqg3+W*pKl9I@K8LY~x_|w^>KVFV zo9?LbWAvwtAK!!E^+sh@3GHn4ws||}*ObWA?srgb4z3K^+wNE39;EU=$VZ7uJNIk* zAz!&S%%^hlYUG0YHf`1R4&`He6Zy#7ht1^StEj*4|MvV<5BjO<UMl<^LmjUT4qjH+BvZt z945cKpOYv!e7{1<&Fcre2cq-XB*&B>jz%%aD0PGXsX9n z)$#XvsVC{*_aYk69KIVX@#&U>;`@C7!o3*O)8CmALcR4u9e*a`!%Gcx@09Y6 zOi=$98{kzg4>!c`2OeLCW4$*7_4ji)e%^-bAat>PmoJ&^c9X`ZrstB=fCw%duOHER zXZv>dtG(gt&2Fdp{ROv2^Xoai1=ZP=r*u7F&QoA4oUb3Wd{lx_+f(X0y}h*Krc ziw)U2SZ`sAWZ?P(ov#bA-B^=K`JBd`MJJ)^v6H` zF+=cv+;X$V`+RxLb`2YNW)FG(3?5)0_vo5!3V+S0`oup9#}NHBYx#?IC8ZraG5&R* z{&ymG$v%~XWUtmU*`xLDp7|Pqr~F-qT6q79is{wN^)H>DAM$&IL%kXwm(G#( zDz*zHWX|HZNP>TlVNN@(E94&*FZD_6fLl+|<5Ck4OP)8AEbIrVq$ z{M;bzQ_@R0rSIqcTyFa;-p><}KGnx0DEY|;hp(FG;=8#55EtJlzT+9*QdPNstSs@#<66(qE~h-^ z-yg~DJz2TQH_OpTM`X2m%*}b&mUaGTeRNwn~ zV4pYpyAHn25ZY5}-j;H+pWC~{=lDYX>vmnzUY7V~`)7-r)F-=Va*TY7 za`{M)x6kktZSPX_*UAU&F4_LsP`}E5Y<8!wk0z!sho91P${q2hXHFnLH)(vbUaA-M z4{81VoJ=1YhkS5-+gr5t#Ya@1vOO;h>Ji&_R~cWYHzCHPgZh)c->>xV^D-V;qGYIy zzwqzS3g`8x?+5fo`aL+m|C5+}x;(nw?sA!}r)?GVuy^dcwKgvFPS*1yS^4j`@=Xu3 zJ{JV_bb7tLod0g0^hRHic5{Au`tT0ZgYPd3A<3|obHaM?{Yrl_Z0&Z3wsUf)>A_8= z2S-c~Zh2*TFt4wCec*WdG2ag1yEW7k-frF=y|UYlc7C;bLe(Pjs~nc1v3h;6&iG>e z!RLv+1@3BKK7{c~^aXxX9(&nQ;Cx<|=?S+xin`B`Y!EQ$1wCOj)UWzFE>QbHe{9wM zZw$bi8q- z=Rs?D^&R8vJfhoS)?Z!!I{w~*?h6gwqz!RA`>S`7jUSf^*|4AVoMAS8xjisn(~}Dn zzCn+ep745jKX<-4eX)#2umdivA3wcallzRGb}g^LuCaPM|NVSLYU?ik-r`T2o%5>u zxASXU`BfYL)$TcI{Tls^&fBvT>38umImy|#-rkgxCC89=$JZPEp6X?rC%B#Cb_VUR zU!uNRD`aGLmfH(MGga^Q7ES-E`4A=TWy#RYK3IATx?CR96+Qn>1nJTx;`@2vv~{_L zZQW=+%pLY)+Od9)0;@XF8tbo&2l-M*+$xLwUjLd|LSE$ONO`V+BL&YD90kwgX&mJh zul$fdGa~;k_%(*#&y9M2A-~=ftDS`=fc>X-zpv|44+_1i9u4)8dp!S|#Tpg!U?p7b zJyc~Z??rs+-}T%q@$5BxrKnBdxh}?XJs-oYiMMzCJ9$U$nR6Yn!2Y;gJbbTgvgGHu zO%mftX9&Fv6OVuQHlFm4yml*gIm@fRZ#W~GbCu$Cdz$+RHP?f5=0dpx8q589=HNd4 zAESO*euTe>aLWS<=k?9jJ6CD^#z%Bq_jOG#H|@0fjIG;|j&R?G=P&7oTlM=oG3;Mb zhI`N=Xa3GA^DPU56dz6=5S2;X1zd4b`Hwh ziE>3DA1ureKE?%IM@#l;e{nc}ABz2AMNm%Kxc_Px-}n2{Tb`42 z-)Ce#{DXYli@%VY!bQeM?Z-SuOiSR9`P5V2XMLCn?$)jPgYmRT7Ct1=QODE|N7c90 z^uP$xDTh2Ch;A0SUUv43yG!m-~E^Lt>)nDVQ)us{%m z{rwQ%S95;*KI+Z86(7$vi=3H%>k}$h_->ETne0-zO~wxj{;-{dF1t@fepAkTUo{!C z@yPd6#{`|o(Mrn6(;B9HwEY|EXZ1?PRF62F$=FKKE8dUr?t+9%(dz^O%WcN@-XeG9 zbv(MdNxL`Jqn^KcI#>?=W%A_bKdBd94gS0ya5?pU=;uH}Igoy_RjMWHo+U6m8~;zT ze7QdN^(&{Z6zO~StoO=*uaxT!@*ACQWw8Ix_Wez?H+_gP*5?+eoGvY^Je{ZY!S{VM z{A%r#?TTlOn&p|@Lj5Op3Vg9sxG?}n`fCn$%7Yp@mYs4Ix`fNytF}|7O<<>hzW-0! zDR(O08|;)mjo)bN5687rz`ql-Q&jFUI|ccUX{Y4yPH3l`0G|JtoifGj6cupFVSaoI z?Gt>DO&Ay#%Az0h`YzNfhdJKvQhsy4?HYt>2XkeD{q_ME9zK5fepyLQ#lP}#rzEG` zwIAi_KPlt0ogZ=gy`*1$6?vgzL@+0W%*TvYw- zcE+wA3F~g{s~>M2zqebuRP7mj-%88#`!NB($Un;GJP4AHgUnAiu=Gcg&);$3e5s81 z5%VeEqX<_ni18Ql$YBAtcI5({s2(dHErI;I7ky~IOMqe-{89MBoqERK&!vqZp68L7 zepu3#KGMSxp%1>~hd;{nr7sKptPlRd##ei0xKr~noXN5W=%Xt0z6^5)CcL!_%Q;y$%l#PWWCrFp?>214Yu+}-*L<&HZ9E_c*N6s_S)mr%Uw){Dvrr=Ngi8b>5xKFAG3*pTcpyOwJ8%)v)*Lus>bLdJS3nI`i*SpZ$k=si7YBPFc9_ zRR&yY?+IkH1k>`_jIj&>P(*`I4=c{=eCK z7x*}@>pt)U$q^+d4)pL?wh|g2OhS|&BR;GbnaBkAlITbRMG}JK)C&#=Ll72#0Wg4| zG3q7hm#j2x;`kBA+ihjp4(d5_j(V+;h)8=iGB2U*M(4&nUNYd-o~JPx}m8BwXy_#v8&1 zygW}=zV5K)(|2xLyIc<}-|(=-tA8xN9Wh%`o|Kc}!Nr>0Kev9?tQh+FE%qbJcXMjt zYQSH+&Cfr~1wAxx^L|y&x*XEEh}PLlHXg0_eZ~Cp2H&?5e`J{b(|bv)_U%rrh0py4 zkNVB}ydJNA0s)g3TP$1lPFCvxdx?32|DW%tL~{3z_&%KKX$^V2__^k{*5|FW7o%Ul z5d8uGaCyJh2RxK&9{;t4&*9Mh;nrE7AHsv~@wNI5oTRnc@vt`iIUN=0k90$Gy6BMd za^!}8X#LlI*#zV#@!tB>k2rpIczZgR*V^grR_2Kf;KjW}VcB+%EQ_Z zS@G_hUi1GTiSwTAjo9lCgwNMAt@u{d{g3xs1%i|96T{2z40?`pXnF@lbg%cVbnj>G z1gXNuk?nE6gfl_s-}>IqRHTFN(6Jq+FTdUCv)uE9#g}{hWX*~P6RxLO-^P;rd@qk- zl`ADjtQ_elWqiE5rT0%NLuE_PM zd!8#^ZFYaN^_=suQu6m~zRm@|r2Us8dm()B#rlTdvGbjx+fwq|KL2Cfs#RLmFdnfE zxAQ7=_bj2nxCM*P=dk?VxX;#l^&M8OsDG$E zj$8Q#2e?&BEuYS}XxwxC;D-(GI`=C)>YQ-7hvRuu21o1pkXN62(aNtdYV z>*?yx>Tx=2^{qWl??yVt>1E@6(fjA%nd;yFB!h0->Rol zJ?VJ*WY9~z`_}CDdD(j2$GO(;cr7LW!t!VDlih1zB)Z2fc|m<8Mbc9Eehv}%Im=kW z9sPQXheaQ&@6CWA!ij(C9G3WPR$s@tDd{m<_p^S=WsRTUZM_c@2d;J2Jd@i1IT_jD za!hvV<+xwU^N36@CC=c_J9zlMpv!l?yW0A+>jk>Ep!59Y4c_n0a-wtbpG~`bUs3z4 zlAm)Qb2xSWWCB5s)P?Zt(1>k51%g;U#vi!3kFvJBoZ=^ti7MEr(f79{!^fGc9S)99 z*}g}5lkH~{g1+x(F1%IYYC=+3@N=1)?!MLH=Z>1!_WeP_N65SShC_xAuD35DYvry7 ztN_E--@6W2cmwVj-2KO2Y5v@MoKJ{;B~Q!idfW6zy@Pdiz2s7dUh-R)+0dHv zJmA)Ss8ZqzjK1SI3cPX%bWg1u?>+H+AxC^=g0+KBp<4`#UrK*aIeoXn?8wO1`k`3Y zobz$gIe^OTzEF~0rTZ+KPTb38FkXQ#HU_8jvw}nGwCc0YZ(C=5Jar$j^}*E2Q6DmR z0k_F97KD@D(7GkHu;i-FQ;E-xB==al?scg?(OJ1?C(@~RgdC0cxKv*&d!NTy&2zwWF64CR1Dhs7ZmHg@z^U;l$Ne*gjlWe5d~1hzsNDK(7NK@CyZM6W)AzD8 zE^|KZjjtKM0Dq&;dGR6|(EFCtG5@vR5S{7WCcQJZ{7%P17VpCi`&Q6LwhnVWVl8@J z3$H7I&(Ron@qfud?GI$@;lR&G&!a{sI`=OxKT_t)|kB;@ix~hv`#3m_i<`fQ){PHbNbeKUVR@cr>6%j zANTW%`@fnu;x~GqfML=@^VKoW01qLfyrsYVMu(?%Pt314C!_JzchX2Ftf#VpN1dk0TPU*N4T* zS$Wj+70~4fH*n#kmsQ>~VBwOr0)BSJg307ZeBPEf{J!x|-n(E=S|9g{OUdt9{NzXc zoL^6DP{&p6BN3w$A-kgA`h(T;VI^RQ~sW)InopL!o!Col4DT zJo%f>yS6^;@j2gh`px;c-*d_I+UKnr`%Zi({%%InNaE-C)nCz(^!82jJ`PuFSMXp%FRD*_+va>Dfy{3d}e$r?yZch|A6IF{?;640qtsk#r)ROARM@@KrT~s z4^s9~@u`*1SvH$Te+ay`s*Z2*3-KYndm(+Q+;gXm+bTQud%fM(dje1K?yUIL>h;T_ z0YJ5jaAy4pyXU5}E*K}zI-I%P(C1(48E=PlID{;fxkoKy2G^?{FM5xF`<|tWmtjWE zzd`tfk0N9>d{xAPKVkeR_Xalp!R0}O2R81qc}c!otgkoZ_}ce-cP1;Sr?VXS9_uAM zbUH`M`F{oshdzp3o_r57!fD<$Z__@6^E1ZdUo!b#%ZBsVp1-_)yU$}JGKT9L-w~@OTVLsWgxpWx zj-;luYdasp{z~rTH7vYoss&{h5A6wBc;ZggvZ_VKG z>5;#uA95jsqncVd&W~MJxSw;){g3u^?zeTX*Wc3q{%v8;y~X1-{_Mx=0m*W_e@48M z-l=!7rz1(lIxINK*KM+}?6%tX%D#hm0)^o8eN5Ivr~A^XNBX+t#oR5CZ>Rg*AG{Ag zFN9xT_a@`tlH**bAt{-Q@4k$JJoX^0_dCc(`xxGfKX9xMMUvs~w_w8WG=CXCOUY)7 z;IfhFb7j_AurI}aMX_DtM|@d!E3JQrk63ZjyD#BqCG1F9{kO0*>W4>ohj&@f-Uq*# z@tj<+Q4JsRc#<2V)V|so;o}%sKMS9lzpePbrN*zk{y$kom3#h;`Fc-fQ|&)m7~fMh zpY3p9vvy(}mfz|8efbqXa+w*6=b*S=(0xSm7g{dKKYkA9J*#2As9)#%_Bw9}`my$O zUZ5|=z4e^8)9dH~J-R-p`?Z^H^zSZ64&?RS;&kx5%kla;-(eMA%IkGOedb1?(%|vJxsiKE)NsLY~L7(ET?s~_OHu5zjB%7TAzN-@K(9c&vlfq zr_=#mywB-u(}O-iO36DdUh}H=tOeJ6M}_m2`qcEzHOp9D?})41^<5U;6zil?GUoNh zzJcEF?R&4+ul0@ilK6t;*oa9(%!|)Deyd?u(Ys@F4^j{xA2i-J7!SUrb{t99V?|}KT2WcIm_Jqe)d>2Q2btJwo zR7!ry>f?Ps_NNT^js5^XecksJehRO0## zd*|_#;k_}h&$~Fy_z}Dj9-MW{u3{Z z*Y}#U@&pHED*fyw%Bj48iF2|20Wad2qnAPeu9WzDL)rY;;qhy)6FzBnUgeh@kbDsR zkYD|Gz)qk2&ESlFsy}Our&Fc(gOF?AMs`l(g><|Y{fpkq>woVuvVso$Ttq4P+ddv^ z())E+q4!@m{!?D>{IHaKD(LN3>>g=({Vg5z=HvN4kKX>(8ua$FS^Smh%J&I1zP+Lc z3Q@RD{Xue%@?izzta6$DJMQI32R~Y%2kp0N-QV|W&$kxe6o1S4r^^x159#6csG^fE zWall;c>S3kxy8d87xhDWGU1&s=Rjz^Nm ztbFx7=B<+ZChw7v?f=W)yL@@>bDi=bECTW)|K(NTV|zvZ5v_xXx2M>3ZivEGh&;>G1gtha%$;{0ZPE-(IhTYV}gd}{nV z$4z{=^SqSCQRA}KcxwDs^Wnei@C3Xsef&E4@VOYj4nBjL@1Oq~_xme__Wx)0`}%l`jQoxL zerKWI+8>wvC7;7{0d~)k`MJ+VepuPTzaFMPg75v%={twz^@lv{%LhBR3ejihU}$&M z`>I;Mz6SG>@5izbeaSO@r$KyJdSpHM`^opBo)s$revESD%UY-0zx@S-0MG5_CA|fH z&U|ynJ$?e7*py4ulfIioyT0-9sOSEBKV=oHq~;~Pv+j#;gn2(%yZ-;p>ev3y z%F|xH6AzX5I$re-OV-{Q&p*eG!$}@=wm03=Z|UXICgWQxhb@@&opGOQB~~$#_yY3& z2Qd(Eo$a*ZoxGN%!k%;7f9O5n5yL*}g8TqUVcqZVyWW4FzdzMk-&**Y?(z0n4|`sD zukTmr{KWDO)(-f>p0d0d8R0}nC0m_29A5qxO%CaN#%qxGmOH%+%W2#M58v^neByh( zHr@b-^@uKLCn(Zckv^a#B*zOwOq z0`G4{t@*s{>_-LbKsucx?wqe{_v3ZRMU*RVe0}m?;OqS)+DrQo9)+*|&@xt;R6G3$ zt?p+XCd7*tyeaF1A<*a2K z*l@^ejajF$Fvqo?qtzt?a0Z9m@^tW4)h zdXHOm_T3r6!(%QSuMyZs=y-30e62TS2z%)$&+nG;H+|i2nR|dSpl2Y<+7DlRu)gtk zz5S4fCEUJa{?-%xi~0C5_m_~)Eaw0};aGxC{0~oh`q;DX_a1T|-%qw5Iv1Ul2cE1v zd@Da5<=+?OKN97ia5{VW?NdSk{)1lMOKqR$gi{oKNBQ3yKJ@+NQS_U5*LT4BXheh~ zel5P=!#WqB_W7>=W#bU;j|Dw00T0B~*g}*GeDFPfw=}!IE#jG<{6zG&GU(;9`xT#Y zIm>+>!b5rbBK*n@#|P&V!}{Kc=9AXn<@NU>H7}=oWtpCce!R$Zz(J>X?s+cyzazZ- z_V)J6rC)IT2``UYvAq0%hf7JUTRn(jo>33AI?9U@6oQ#HR{|L+bxc-?yZg8?DZ_c zvvF4asmB|<#&KetBc1uT{VhbHSI^zVGx09p{SU z-fP@PEU$Mxa_$xoJX~}43pS2?@2G9P8v9;)zl#0YUi`jTeAlVCUVQ=ZYMs>Da);I5 z>QButo_FKAR`(6W-*t|OVY2w_ds=ahk?Y{?g>{km@M^e!#QO7R0S7VP4UV(`ht9bb z-<`30=XK&Ti*@@ghDi0#983{Wn~krjOud@u%gt-RJ#$`*!m= z|0yLZn}Z*)d4#c_&2HE{x)1&ZawH|*apMSrcIk)OS}v+y0w%1%;;pD`<*lRbYO zc^}%_Y2D4%najH$bUfWQ=>9t&cmEZK&94kNomRGNwR$TDynHEffma+4qucmiqSiC| z?hwQ5iuNOyZ~LIt&w2ClBE8&p#^Q_h9!7^{4`=@N?<9T2;qCIBu|X^MrB(IaXYns) z?YGTqeV?k!{M~NlKEJBIGl=K>`-MV3I9{U#`%7iO@uu?#%Wt1uRnOJ%N0R7NluNPSe#Gf_(-BGy z(yaShFZUjG_~zc?KILC=-g3Ua2soySn8Y)M< z9){`ky?|_g^03Eq7BlDlgFaz(4ovcp{r#(GfIgbJEd9LqpqJ13$3cectGTc9IFieh z|Lh<4S?CBi>znhS$#jOfk7;-bf4cr(t^c}*mYqY``DUwU(`N5y$)qp7H?;Zn7N70c zl`WX)J6oOmc6EHm!{E5t>lwu`?m>~2V_t3)Xd%X>w@u(TK^{)=2W|lNw=csl0mF2x zpXqZqIz5cyH|rbrV5Z-)pIjenT|0an0XXuzOYkd?eW!)9`fhRrj{;1qFZ2}Z3;anq z?Oe}ZE0)zevW^iqnV$8jj`tAXgcQozOC9w6y)Zmx;~jcQ?_FN++Vp{KKX`GgCd)m^A^YUtZg>s=AU%9^SbC2z<%~vj2d#m}% zA6dN4R~O+KM1P9>{PQnxq}}OUTrt1%m7IS)c(cn)mgvT}rmX&J=Uc}u|L0fX?F{0{ z*B>w7f#dMk3*)MBsJ$Y_1^LeauFATfvHF;fC|{=oot1U}EQ=>4x_*cA6zhH}izf+| zl7H&(xH_7&9`)}0Pv7GS}}u^>yN5Q`p^0iQh-5 z9NuLaD)0Xe^R>P!Z*=`zaM4bI;kc~x8l1lbbnZbbme~v5@fz(k!9 zR_t@<{c!k8$*)=e*)C&rKDylF@ai0b;&t9Y`MFN!xp3)kdRM5=)un{?kQDV^2!Hy+ zzhUj2i}p6%?)uD19T9L`j}wl$aSJArD-(z`{vQ7HEyOPH|Cr}1Vb_Dd-Z9{Fh4XVQ zzBSuH-+y!|=Qresr%@026zOEHN@&1`gP+lE#Fn%DY){VQ1n0}&!MO+Vua#H_>)ipy z|CM5T(EGr;KS(a4P1(h0_aSMuzK^ZbzD>;+>A^aBqu-PVgr_&`H#%oPJB7vnfECN+ zBv`^guU;6n#^6%{Yg5;R^cjZCvXes&ER$+C)yrg!}ec}b(y3G2`$2=qb za{Wxdgjc?qlXQ~8uWbHn3}$pw+eK_cE@FMV2YxB}ZVT6TQQCRFge#lR;BT><Ek5yUyS8{d`^Wgr^I4cbYP*PKhjY-%%~-g$%k>e$dECl9>G=?*tL@ruzV*+_ zO+>s4R_mXY8~1!!InEYu??o$j+`_e8&UaYuqLq7x#WPG-+cjuD+am#0wmf0s+OGW` zk9;ZPH#-65@?kvn7wOyw?jBwO-Nd@18Mzb*^&M{U;!Jd+TnSI`%zXZ+>6y=~Uaa?~8VmHW-#F6affGdJ++(+T&s*c!$m?!C3D zDT4|1@&B_}Kj7j1FV7Wne44L_agXns5PrJmZLSY#J)(Q<#dXF-;{AEgPkohkZ^HeR zj{e>PyTzQ|J&5-rweMT*`Btld>rXbV@8Gr0x!#$55A2f;Pxd{q_?{m1TK1zH=LoL! zow+N14-DHfr8^$1Sl^~&D?^Y=GKQ7;MdJpNn%;=9xg(`9ru;9Y~>Ban^TY1hr z)Bnz3e6_F8Jbc;`WKWTuj{7_8uk^nq3=YR%; z@KWiQaydo+M8{k|S@;+t;r=vq{KMCT=eVbm(eZyWIrjCSUl=RmGv>kCd?Ma8$>`VV`RhTy zoBy2S^{$tRSEtvnA71|m=Z2*}X#cgklTsLbbBlSlULnPffZpgvAskcq`i`LXr*ywf za+UP8A6e30&>z-=Tz956 zjn?Gb`8;{)^tbmLl>V+O&>!W{R-lM-#oh@jJHi-Gw-S2gy*-|;^AuZQpJ0CN_w^mO z?Abn%*)Jfm?nSRZ#MFubDws?U*vc_;9=S!(WIR_zQ3?;mOXOv1D@~6 ziOu$70)LsGvV~uY;`!FLatPB+9yc#}a^rygpq-U=z=6_#xP1BI@0S?fij)C-C%y)s zcp>Mhlvz9HmD{J8&*cASEZX)D4gLcWM)vLa*$n*YdsD*aDC)I$t>7De4tqJa&2XPL zXYXoRzwpQUg|xPQLEg|29@bD{q&!DoKL^RaI2+~nnp`oV{~Z`)3RJTK%a3nB9wy?}pG$`I8;?Uyw#-|IP4uyA@Abx4J(!=l)1f*u|@< zMYK+Yow-o|gJ0h0nemr)MGmd(%X+u>O7`jNuTcJ4?bF(ycqw-3I|}zPIqq+TeSI$O z_3PcYa?iI}-*k>a_TT@%*{R8oG1YT>b<8Ky*MW|A6A@+eXm>$AwcIS1v~CJ|())Zn z480k>h#sYnb6j?UA$E)Z*)`(-*FwDJq3Y}Wj*iZUu$?VMcyA9n-59qsH~mfPt1Q)0WQ6hD*4@-3plm! zGw1MfTzy#tBlUn4!v)2_rTc&R!399--2O6wbn6HH6#Jof zuBx}AayZw|`?7mTRgX5jT0d9`ob(*M=U(362L<|~0O2`xPd=Z77t#+M^~x0fQuxA$ z&TIFcU@o4&dS&txXjAm1__^16dT)$V@mzF@q$QN0U%44S;K(1)R8krDcU^mrGuGDy zj2Hb&uOePKzU;?y9eCYdz-uvoih4{h?a2SeV*ahj1Sft={`JEkl?lY9_)_2x*jzRt7E-%i_U&D`w|S_^Z7BM=e6MU zv9)9@_z&d+`!TkewLnfpy3Xw|o&8Zf=UXqF<%K^M`T70R;(g3*2blwW0rY$y{E>}Y zEUfngmJlL*EAO}HWH|Vg>=;Zp{C0^aJl*meKD*>Me0GUX3-z2sy5a9IBH;v|?uquP z{9~S;;SceKzX6Zexm>;PL^?72y*kPTzB=(kemRINJa2UxeqR_0$d`B`vQqVV$$WPs zOu4~)#q~XoC0*8g@SPV!SC|1 z3lo?}HhyQVn8}qr_&I#5hbJ%?OxO1bm*4)P%`eX1Lx}Gi_k5!WclP6AmwpibWx&t= z-;1K%`fvLDd%WIm{eO$~{}&7ny}LFX_6Opb@aldo!*s3BUbOtfWPA*tbN#yY8SjtQ z1)4{rm>(=U{9enR$x)uKV!YbP^p9w#H}EF7sXx3G`6cg`kdJgW9P2I4!`z+863c-;?wIOLb=)pxhZXA16&-WL^L;5mL)-Jb8#p58ZjDZLlWbj~Bj!it!T z^+);|=kd;aGR}WJX}=^7E&%8~h|zs@=}j-}^aAIRK8T;BC;DZ)!%QbRN&ZOG>OB4M z0ZVQ>*TgP&i$~F}@y1`e)MNamOMF_WNBo6+vP~Xz@|!^vf)l?X*|qWiW0stZ5lFZt z3^V&N2A{4s(mT%&D4zO98~={{jBn%L5l=jle{-BT9({xO14q4*>w?Mw2ZVM><4f?F zud$c8IRCepFZsjwJvo21KHxde6k+y*{zz$^^A~iAr47 z@49mSv7T~#pPBgNd{nyDW9{=fIWrdXd;)pz!vFSk%)9M~gc~OD!BNj>n|Hz2hEq$< z^lkFdrvX5we?`9b`t$Y~pV#~4J>oyC=kK6R-A5_PJHo4ZJBrR<2Jacb`h6$*Ztr7c z{NeIx&SO6OTG@<5xQ(dumGDR5b9}fyWBaFXWh&|od&OAQ!#X#r_S?s0_5s5AgQ#oy z6>bkX7xj%1v2eN%rT2(B^>>y>@f=?v$MwD4B`^iTN&cL|C)@;g0QQGBZvMdF0QAwl zcmDjIQgRBZ+|Rfp`Mb|w+OzVk1?`;`*54Q5Qu2@`s6Vnl5sv=|Tx$Pj#ILty?}4)4 zzrE{^?K1w}J3lbU{6B+=+07LHFN9xD{waQ;o~n7q&wuV8zw6&I^rp=pc#-99#&~p= z(>i&Y0|e*0*-m#BVSk?c;Uc_$mGF9YTQ9v6ziY4XdqBnZAKhO0S1f+xp=Yf9bzR!8 ze$vZLZ~R$nsaXE2?|D<5kq?yra1Y`C7K{n?4^(6G;^J>^v@-mo_scUoT>(CR3Q_0u zMQ5zqJ7Umjw8A3>Q_ z^`T#+uewns;QF}LpUsQncM|^w@K1e`E?cLn-4A)Z^t=mbD@7FB{rm7c@!;@X4Ep-D z73TY8pjG1_I|Ae1gt{`mP{7wy-_fFo0GDW;-ZNlwNbgWh0EQIlf*<+3 zwFcf;?t{oGJw$ZXj$fza_adL@MEXf7@q1C{y*aFx4%si!HStG1MC&Kn`(N1X1ghz$@KFylKhJG=2=yC>$9klYAE346r=8+T z`B7zCehR!Ry!%Qwit?n3UQR-|?7KG> zI&-=M-UnoF%igE9e3)-2&v|nm?VrW}zRjL6fbaF1Jit84>8>~H=h&dKmLr^d5T$p`8e2U5JmLxe$OisJ`v}v~?w7(R|Db<*JO04weFou4`vb!F!1`}y zwi|OiIbhPCN;uWW41^0U4hp|TJp##Rn1?R2+kxKbL~k4qLagtul2-{o`1vyCDQiIg z0xz1Uo%MdB&eu+UI$X8xX5arP_xzCeKjJwa#IN>Ww2$;s_nnIQO+I$nzv9q#t3NHo zOFmLhX|r3px?pw>!Yg{|i*_h)C>N1r{>m=?LcXvAlfFsvW0Ai%()C^s(@DXK=X`Fn zTSk7)zc#z2t3}BY*w%e0KXRQDmflC%%)M~1)GM!CS(whsJIzaB&u*%8j6 zGp7-zeE&}Pl@G{zu%Wyy8_NeTS}Ot)YIve+F6lg0X1d zX%y{}QLWl~Y$U%J-XmKleP4z%KU%Jk-NF;lBt5COt*)6YdJ& zCVuWk`ELET{iZAQ`&R+8zUOq!`%UL!zv)&q3fGG76}CR({n7rA<`3lo@iN@B?1|<* zZ48W;oYD7wC1-kXkNh!Slsj)lR8ceo6sn#vhRxB4`2LF^{zbb z?XIPd(r!n&JA6l;&wueR)?+R%vhTeI`Iy~e8f`0l9=X~7mww*D5#K3~RNptM93uR5 z(>MCLd5y;s2ATLCg?}0JejbD8_V}{pXF1AuogdkVbgtV6@J>4CANjB3zwP%8SuuEp0jZS48`%)`eE(!Q@2{Z|6iNWqI;cdll_qN!1-1=!QEM>5Bk&VFd%RP z*KGv;e)}}Xo%7ft@u!onMy}(z`Ad6-`eyEvEl-@DnS9Kb`pL?5E!I=DCs+V>cw) zzjA)mYwxnAs7L2Sitzu9=YB1>5B7VD?eJYPyZsF?sA=A4KDFmd2HB4d%s1!t6!EeJ zcv+5je$>xm`sdkyAKq*}%I?Z~{}$7!q{4|mu>HUJQ%`@1aW{P8C(V9-t^uZ$zL6lp5Mf*Mt;o5)XtzTyO zn}6pgto%nh>i_ra|M|z5K7R0mrT@D%>i?@9<(~NP>rD&Xa_Hx*+|RF3?gJg=KAi2R z{Hm4vzgg}>gaG&iymZ9#X_V8wlVbcoV}6ZKjBoq+U$lB@`|CFT3ykj=zvB4*6V$JB zUBz~%SuWajy7jlB2=7?v&Ey-eLRfa@Ug^__PZ571eA%nn&u#1v;^`F6{&eo|y@Txs zUoXOYj^!2q9J`O?At^c27{*XJx_V7ZS_9G2{!^QRr^5q9n9{cac6S8&-<93Mc z20YF`eLVjG=3^FS zdPo{YKF<}h-hXY6zcE>%kpWKU1H~Vy50w$mb?#e!Z^L3A18|-4r}O-i&edH%ykL(!8+|6T#wLkT4!R0? z>lyy&w7%25Y5gDA7_H*JJ3Z$M!AEkux(?8K-sx%6I)CS|T=D@euk-I0p7-J%eDFq` zhju(y9tA?+D*fMXKE7k%a5&f&hZ}~c%jJo3` z)FnPed9`~Ez;NCYA8q6GDz<`gLZir%jBT-C_TB;cb=x=voMU@EALR@CF*fAk>^w++ zp3eR#o_wusoT5I)w~bQ)9~_^Rs1NMg#|6HPi}ptd1RUiOj`duYT*v$UrUQ4{y)r&b zrUjSrZw@+KJHNQ`jNZ}D?)e}OKnQo^naXijq;&sN`6|bKAtb%7!b6mBvdd)Qey@sr ztjJ$=u3~K5(`DD-ydvnM_-}gNPERM@Sv-8k=kJnvhK#Rluzlq0Tz1A+_If?t<~^$H z$`3fc-SU4;_{!GkC;CQAju8QHee>?qPS{4TG2h1)Jw4+qkzf2ndgY&%uVnlL$TEI% z#M@oPPmXzfMt5}&kHk5E^Pq!4M3qZ1PLFvy*Q4yW^uFQa9g>PhxMM$s&PVjy6k(9_|1Nd%`z4|BhsZ8 zkp7LYL_Fn58(%5JxAB#TC!X5){&7?QM?07CefY*-Vq9JbK2E)eDsH>JaV8m#d|V$f zUH2;c0uLImk&SNP9v)|F&_8?h{f9SNxOdRJ4!t7j(fJ77S1fP%F3YHOIr%X0%;`Ws zJLd!>GOX_?wevOTrFY+oRLHfvn2Y(A&0nQ|zRIFAeo;!^XA$S|mn8=_{whwhpx-fG z&seI%WAPzB8zeS3l^eO<+hv%JdSnWpbVL7i%vpLPn$amm%;ogP05k1S;%zU!{@Xk|c0kaXUR@DN_s$flj_4a>Vv{fjjUF3s1ES}w$={$tZ!e`51j_r6qL zdBY!DJkDd8-lqH`8~)JZ$8PrW+6U48h4duqvBrOgJl|FTgXixq_XhtS=y{F5SL)q1 zzQFldxjXiQ3h}H#@<#R(@pautZE?cEEzi17{gm~Q&RJFEn8W?<9bUig8~2Kz4tP1u ztGN*mH)B4qKGrjRi{H;G*(?QIRnJHJ3h792W_Z>*I{MA|Yj}xvw*pUw7ZMrVz=nRq z%l#*|SXlVveBgY2_gyhx0$%p7*e+?(!uMM7%pTwSbcCO9zqjT7ob7<%eV&hd*z7T= zVEO^?C+C-q%UwR9itoO#ADpj*t9P%L*SQpZ&ro=4d3TcKebEl+ljXQiZ$9usxa&QC ze3^K@R{U!Ip9db==m&7oF`iE2(mQCuOfS&;fve~z`km3wqd`A+{kGA+#$E5MX`b~S z@cJ|Q3Hd@iv0u~sL_fdg^@u)V{I5Q5Ze3&Ew9^IoIU86@4v-Jiop&$0uc!I6Oa=#+ z%_IC~kxKA|ckl2Go6dREjB(buPv7$2te@gbqZoHa2!CtNo4b(-ZVCOc`4aPR^?cdn z`0(s@f0lG0x~SX}{3Pfh<5OF`Kr7}&YtqB-c-Avg|1|!A31xnaU*&**uX6%n!u9UE zT+oSLHO}wWe2MYRz9%~1?R3(~+)0n$^qA9GU#v4kw|ZAe{i?k!zFYHYFUNLyzd`t{ zKIiEZNKWzpLiplK?eZr%qx)!;vDBsIS7vJi%`&V}Oc$*#sMun{Aiu;nJFxh3> z@p2>1BanJlr%wQngv-t;!53d0#W<4URFC9v-`$KyzK|o&urS;xh_Da7^ruGf5snMv z*}oJ%*VFV*huqdUW#``ZA`wpWV-)ZapAW$2ISu23Ah6}P$3A%QHMWC)I0tDN?K~aB zs(%836yYWKd*I8CPq>&*c(_`A=i_NMuT@_BOZx_WA48=tp%GRN;0(rMlF1`u>f+dnGxfeP!WIbg%m>Ja?F) zz6;?`p9Lb}Ru;_5-c=Aio_98#OrIr`$QN>d`s}|kTGn@#OUW;Ic#GGgeN5%=eb(c( z|1S8XFN(itev9rT7dcN;R54xR3drdpr5|+pj`()0&MT+?aY*q~a-#KV=NGNdINg`8`&P@S`PDhjw2KpNuMOWx z?Z3%>s^8+5+5D+`&QbIe#ZJr4-dS(C=XI8`zHS$*zbyKoe0m+jC{HJO#Q5)SlTVH? z!OiwqMBjPSx{-PTH3G_Gocq}0{J{Ip7}AmRzf+`>uC3m^%mFgJywd#8I#uhokFqj2_KWo^EO{vT_d=}OISvJPX3WVS-|zGBY(KAzb@K_&Jr?!^ z$ur%P(R&c9&P6yoNccVlMb{{Nv!lP?>!aM^cny>W{Jcc)GwrwL>HU_@{!<@#c&ijsgmTTER|1Kb|_ZiRM`vdN`o{#ww_!+B3e7p}D_ng2t?1-AlW8z=? z4omApF7EVlq+6zQ9maEyt>+xy`TqE=ma)Bmu(x1b=}O6i=D!AbBHkE)m+yk1aePFX>@;t5t{gQ~S|QmxcZ6tp9g-J}(x3i~H0AUDC1tyT0G!JLx|7n$8d9 z{d7Lo*YqX^*1y*D8?B#50skH(X&&fZo<_*&&UveI;yS-`I`E)(gJti~dF0`Mvr~_+ z>~Myzd7ppR8xskRa1sB#^A-eN83MhbKK@cU@rO;>`1{0bryJm{#3QOOl_mM)A{PJXv_Rc(ACh@g%`+`O`xDxuEw|`}Et932q7hISylo8G;Uv{B+FU zW;c%f%11uJe&~F;-d$RW@=Rxc6i>Qo+oy^87~i%}Q-F&zo8w~pX~Bmka!IwPNyG=#@XyX&>o?^U>PnUQbpDyt?qMdH_ zr-k@)0EYaCcxbchmyrpM^kU=VhY__C*-KcV+n<9d?J5uq-#CLbQ_AQ99~-FQOspe<{LC z;p<%kojW*>_UKB9uUoXgRn+fNq?b#6pHY0RZxE4ijic^Qz)SI;{DQvL|2*4GH%z3$ zHIBHi_a2r556kf#;;dgG$1gy95P#AGqz{rl8K2SZRPemd#1EdOgLpTTj!)30^>rRSgC>*dt%mplHaV?0-lzs6hRA9z0<^dh{kHU8W7 zIegm&+}FDb(g!j+i+oEMzZ6;ZPVY8XJCfeIm+zbhI*+4#TBndsSkE@m$)J~4d%ed! zTs&8iB1-LS+wAF`_>i2_dQR==oXPT|loD81;eSdWc%!d*J3NR0+;Wfm+4u*3CAMvKlS{b^^636 zDVH{QJuxL#=lgqJ&!E?{=dkk*~1JoAsjr+&~Ea#iV!r=CW7BjQK#hhe>Q)M=N{ywrTqI#v9#Q!ils)C;x} z4!GcBm(i3t?avcV>guP1FR)x6!vU|xPwi@cXq~b$Xw^YZ{bQ$tgC3?`$M6;D!^b_o zI6v9%Zt-MI-QrDOQ$3G)eQHPNd35fN@m7EE8DG!m_M(-IUVe-O21k1XhkAI{f{E;{ zj5l}|SH~MX5q}QJqyyErke%AKAIAQKtGj&)PwLYX`oy6X~*_kdImULOG)^_LKDG?d9~Pe1O;T z!Dqg)!nl#{h$s4e6NCov1|B-+>3O83_+L5f^PXY4@_OEqr=H{olk#}J&Ix{vzbSm_ z1IwWYmy(l~e%|5EzKgICgUW>Sf#>q|cl5A4>*c(VzM*@}6M&!T><4}Ai*)J{r=LP1 z9J`s~|5ErXhwuZg;oVAxCp|1VsB#Sg1-Ej>JoMK$o^z+4)O^Z$uICP4YYL z^JeWl9_^fRpLSI1$NN2e4j#v^$e#%Z`H+p*anHwk+upnDQm^45>NUQ56*vq(kzeg! zjsJ;mb>5Wo$@*V%I7Nrb$8_rt{BLCbD1JqLl;S__i2d;OT^H@|aD17b^Re%>@W95F z@iCRp_}SCQ4A)tHO@8))$PX{Yf8v+^Rry(z%lO$W3bEWr+%F~X^6)_qFM-~Am_F!X z(YNS?=|;!LJ-rxjbl4@{=uPnjdBk=!-~K|6xW;)Bd~FoC>&m|)y~sa}e;3Lb|3-P^ z-#&jczBQ(N80RbM5hzdo-gg{-;6w+Va+vd{59yUUp>VlQzr22&UXtqvCoJ3-{A8_p zK)Gx5$scf?`hetjr#`dtpy$^;rQuT^UM2TK{%PLpUa$697(a-jebOIq^m-=XrTCxC z%g{eI0*@ELk2~>l`ZzMfT@_AF9=OwvuB0LPJnQk|H(Gb;{_y$0kM2ho`OF>^72n`H zEH)3H_4)`W!&--M{mlHs2lMol=_p5^_pIp;yV{d|AA{vtkND(p;Gg;p
a`qeKY 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 delta 94889 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 diff --git a/packages/validator/fixtures/pubkey-naming.json b/packages/validator/fixtures/pubkey-naming.json index c99662183..b500e659a 100644 --- a/packages/validator/fixtures/pubkey-naming.json +++ b/packages/validator/fixtures/pubkey-naming.json @@ -27,7 +27,6 @@ "5Atpbyw3tBjjc8EYrbjE1a4FNqyLUszFGsNo3R5bR3y8": "rfq-mint-info-usd-quote", "AinWDnZWiEkWrNGH9jbvS2JXaBFZwnRE5ssNGyop882L": "rfq-protocol", "CtfTi4TstqJaxEh8giQ7kK8CKXsJyF9CuwdcVoqGrEi1": "risk-engine", - "63zhouVc9DsAWsvp9CaJ7EY12CDK984Yt7heVbTsJxcN": "risk-engine-config", "BMXWVaYPVJ4G8g2MMJt51CDgjHHuoirPMvsTUadv3s3v": "spot-instrument", "7J21igTMpQa18YueGJGNmp54m1VxsBHz4LEjiV6P28DJ": "spot-instrument-config", "CBVMytnrNLSMZR4kRBwpp87iNeuexMehJFMTcizW86Yy": "token-account-btc-dao", diff --git a/packages/validator/helpers.ts b/packages/validator/helpers.ts index fa4cb4d29..9eb4841f9 100644 --- a/packages/validator/helpers.ts +++ b/packages/validator/helpers.ts @@ -127,7 +127,6 @@ export class Ctx { // Protocol protocol = getAccountPk('rfq-protocol'); - riskEngine = getAccountPk('risk-engine-config'); baseAsset = getAccountPk('rfq-base-asset-btc'); quoteRegisteredMint = getAccountPk('rfq-mint-info-usd-quote'); baseRegisteredMint = getAccountPk('rfq-mint-info-btc'); diff --git a/yarn.lock b/yarn.lock index 4faaed11e..612873d18 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1281,10 +1281,10 @@ bn.js "^5.2.0" debug "^4.3.3" -"@convergence-rfq/hxro-print-trade-provider@3.9.0": - version "3.9.0" - resolved "https://registry.yarnpkg.com/@convergence-rfq/hxro-print-trade-provider/-/hxro-print-trade-provider-3.9.0.tgz#69ff37b155c10ec04db685ec07b85cc4fc7679a1" - integrity sha512-taK9TCm42h9BcH/IrrQ0lYa9Q6MqsyIiUWAMJNIcwRlNc93X/eNLRFtr+KcvXqt8WWPhtxCU81xgicSGf19DHQ== +"@convergence-rfq/hxro-print-trade-provider@3.10.0": + version "3.10.0" + resolved "https://registry.yarnpkg.com/@convergence-rfq/hxro-print-trade-provider/-/hxro-print-trade-provider-3.10.0.tgz#cc84b62bb8dfa1bb803edfb33c5824d9193bc8cc" + integrity sha512-s+7oqL6usif8+FFWCOBQAx/crbrf51DLiONt4Zy2PKx0Ae37f+Wf02xl3vANwFhgqMlgVVn4QPQCSb+BzZ9fUw== dependencies: "@convergence-rfq/beet" "^0.7.10" "@convergence-rfq/beet-solana" "^0.4.11" @@ -1292,10 +1292,10 @@ "@solana/web3.js" "^1.56.2" bn.js "^5.2.0" -"@convergence-rfq/psyoptions-american-instrument@3.9.0": - version "3.9.0" - resolved "https://registry.yarnpkg.com/@convergence-rfq/psyoptions-american-instrument/-/psyoptions-american-instrument-3.9.0.tgz#36539c537269785cd77c4fa4129d3b370c9e0b41" - integrity sha512-WHK/hnx2pduaK3DxNpf8Y7oiwVBQ6jzKerwRkQveAU3QQZR4I7FsPE79Z7uJuW8XbRyPG2Zs1J+MB4YcNxDkdw== +"@convergence-rfq/psyoptions-american-instrument@3.10.0": + version "3.10.0" + resolved "https://registry.yarnpkg.com/@convergence-rfq/psyoptions-american-instrument/-/psyoptions-american-instrument-3.10.0.tgz#39ca418d63b273c52fe33569e958f4c4069e4648" + integrity sha512-mAJ9JF56oQBuGn8sTE8ZcQ7hRY+pxa947pRQVzZZWitt7OO5Pxu9kZq8oFARLglOdHEdVmCkhN05lUaSMel8rA== dependencies: "@convergence-rfq/beet" "^0.7.10" "@convergence-rfq/beet-solana" "^0.4.11" @@ -1303,10 +1303,10 @@ "@solana/web3.js" "^1.56.2" bn.js "^5.2.0" -"@convergence-rfq/psyoptions-european-instrument@3.9.0": - version "3.9.0" - resolved "https://registry.yarnpkg.com/@convergence-rfq/psyoptions-european-instrument/-/psyoptions-european-instrument-3.9.0.tgz#dc0c9555534db280be9c9a2b492e293755916767" - integrity sha512-U7Lk1hLAu0A4y60LPNTjH0i7AB4qq59gKUZ+i5Yf+yh6QzVQ3rP2lRL8LVBV/dMi+4CEOonIWFCwv4hdKE3uzg== +"@convergence-rfq/psyoptions-european-instrument@3.10.0": + version "3.10.0" + resolved "https://registry.yarnpkg.com/@convergence-rfq/psyoptions-european-instrument/-/psyoptions-european-instrument-3.10.0.tgz#6aa20a873cf8206dbc6e1cde2450c6a6a3f552df" + integrity sha512-Yr1JiHVadYTOeMQqxUGuSPnnlNQbrDJDxo0dCEG+wacDomiiv4ThvGovj1XQ4LNqDCorzHBEYi1JpICQXDd/QA== dependencies: "@convergence-rfq/beet" "^0.7.10" "@convergence-rfq/beet-solana" "^0.4.11" @@ -1314,10 +1314,10 @@ "@solana/web3.js" "^1.56.2" bn.js "^5.2.0" -"@convergence-rfq/rfq@3.9.0": - version "3.9.0" - resolved "https://registry.yarnpkg.com/@convergence-rfq/rfq/-/rfq-3.9.0.tgz#a3b380c8017d2a6ae699ccda41498381217e8e24" - integrity sha512-/+3zEMnRUkVEHneVwxdDN3yzrzXE24O+2WRBmd6ILZeGPiS6s7RnecEudQuc2l1Ss18gCC6UwPqkvAt+8lCm4w== +"@convergence-rfq/rfq@3.10.0": + version "3.10.0" + resolved "https://registry.yarnpkg.com/@convergence-rfq/rfq/-/rfq-3.10.0.tgz#53e986f89dc70690904394a008d98ab155bed6c5" + integrity sha512-RgwYMHa0Adj0XTc2yMMj4LI/VIp4JFiVsnGNuK79OfO+oV6OxnGTdVrpixDlYSfJylkH9eUobmoPmiLECK+PPg== dependencies: "@convergence-rfq/beet" "^0.7.10" "@convergence-rfq/beet-solana" "^0.4.11" @@ -1325,10 +1325,10 @@ "@solana/web3.js" "^1.56.2" bn.js "^5.2.0" -"@convergence-rfq/risk-engine@3.9.0": - version "3.9.0" - resolved "https://registry.yarnpkg.com/@convergence-rfq/risk-engine/-/risk-engine-3.9.0.tgz#4254d1f9ed4b9d6dbb04342fdea223515608e0cb" - integrity sha512-brir10dX3vWsQodlBm8jFY+1RbGrYZwIAjAvxND/PjC2P7xZ32VLxIZVAEnfcc9JZgGEwWoWUOPjfsAnAVkqhg== +"@convergence-rfq/risk-engine@3.10.0": + version "3.10.0" + resolved "https://registry.yarnpkg.com/@convergence-rfq/risk-engine/-/risk-engine-3.10.0.tgz#6cdf08901aaafb895e87d1db941d30d147ae5b3a" + integrity sha512-dzNcphgvvdF8g3ATu91hTf8PL5W2I3eJixhImE4xX3aDcXpA92ErYSEgSPS7QargFP+3uvB1w1I7THAzXwQJug== dependencies: "@convergence-rfq/beet" "^0.7.10" "@convergence-rfq/beet-solana" "^0.4.11" @@ -1336,10 +1336,10 @@ "@solana/web3.js" "^1.56.2" bn.js "^5.2.0" -"@convergence-rfq/spot-instrument@3.9.0": - version "3.9.0" - resolved "https://registry.yarnpkg.com/@convergence-rfq/spot-instrument/-/spot-instrument-3.9.0.tgz#f5fbe3c29db66192622fcf22c66161c4aca80453" - integrity sha512-odOtMFQ4/hpQAyxXokaJ5ZVBx+zfG7htr/IfRVX63QbPSuB4aLUisWb2cqmC+0Nj4mzlXU6rs+gWkdaBuV7Nyg== +"@convergence-rfq/spot-instrument@3.10.0": + version "3.10.0" + resolved "https://registry.yarnpkg.com/@convergence-rfq/spot-instrument/-/spot-instrument-3.10.0.tgz#57b75859c18f821f48635e48c296db13668e449a" + integrity sha512-F066GxaUpqwa7+1o5+Tj4VaK0prozQCXOuIv1N2o0FkyJI0AGfrDir2YmlQnovBii+Atj/zUVSmPrwTlZEG7+w== dependencies: "@convergence-rfq/beet" "^0.7.10" "@convergence-rfq/beet-solana" "^0.4.11" @@ -1347,10 +1347,10 @@ "@solana/web3.js" "^1.56.2" bn.js "^5.2.0" -"@convergence-rfq/vault-operator@^3.9.0": - version "3.9.0" - resolved "https://registry.yarnpkg.com/@convergence-rfq/vault-operator/-/vault-operator-3.9.0.tgz#bea35581df1bd22cf75cb1aab34933613294a70c" - integrity sha512-0E5gYdD+haVz5Cd++GcZ6UJ0ucgvakb3maviELtD6rv8mBDBy5D6nER6c135xgF84PFEt2p2V0d2sz0awa5rWw== +"@convergence-rfq/vault-operator@^3.10.0": + version "3.10.0" + resolved "https://registry.yarnpkg.com/@convergence-rfq/vault-operator/-/vault-operator-3.10.0.tgz#63616c9e0be2aa3cddc659f3ceecbb9923772ffa" + integrity sha512-d43thgKaSaFEf2khteGQ46pRU1sl65PJwfAjDLy5SnOscLPw7e1irV7ETxs97AZA0zdzv1niOejn0H2jAg/zMQ== dependencies: "@convergence-rfq/beet" "^0.7.10" "@convergence-rfq/beet-solana" "^0.4.11" @@ -2143,6 +2143,40 @@ globby "^11.0.0" read-yaml-file "^1.1.0" +"@metaplex-foundation/beet-solana@0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@metaplex-foundation/beet-solana/-/beet-solana-0.4.0.tgz#52891e78674aaa54e0031f1bca5bfbc40de12e8d" + integrity sha512-B1L94N3ZGMo53b0uOSoznbuM5GBNJ8LwSeznxBxJ+OThvfHQ4B5oMUqb+0zdLRfkKGS7Q6tpHK9P+QK0j3w2cQ== + dependencies: + "@metaplex-foundation/beet" ">=0.1.0" + "@solana/web3.js" "^1.56.2" + bs58 "^5.0.0" + debug "^4.3.4" + +"@metaplex-foundation/beet@0.7.1": + version "0.7.1" + resolved "https://registry.yarnpkg.com/@metaplex-foundation/beet/-/beet-0.7.1.tgz#0975314211643f87b5f6f3e584fa31abcf4c612c" + integrity sha512-hNCEnS2WyCiYyko82rwuISsBY3KYpe828ubsd2ckeqZr7tl0WVLivGkoyA/qdiaaHEBGdGl71OpfWa2rqL3DiA== + dependencies: + ansicolors "^0.3.2" + bn.js "^5.2.0" + debug "^4.3.3" + +"@metaplex-foundation/beet@>=0.1.0": + version "0.7.2" + resolved "https://registry.yarnpkg.com/@metaplex-foundation/beet/-/beet-0.7.2.tgz#fa4726e4cfd4fb6fed6cddc9b5213c1c2a2d0b77" + integrity sha512-K+g3WhyFxKPc0xIvcIjNyV1eaTVJTiuaHZpig7Xx0MuYRMoJLLvhLTnUXhFdR5Tu2l2QSyKwfyXDgZlzhULqFg== + dependencies: + ansicolors "^0.3.2" + assert "^2.1.0" + bn.js "^5.2.0" + debug "^4.3.3" + +"@metaplex-foundation/cusper@^0.0.2": + version "0.0.2" + resolved "https://registry.yarnpkg.com/@metaplex-foundation/cusper/-/cusper-0.0.2.tgz#dc2032a452d6c269e25f016aa4dd63600e2af975" + integrity sha512-S9RulC2fFCFOQraz61bij+5YCHhSO9llJegK8c8Y6731fSi6snUSQJdCUqYS8AIgR0TKbQvdvgSyIIdbDFZbBA== + "@mithraic-labs/psy-american@^0.2.3": version "0.2.3" resolved "https://registry.yarnpkg.com/@mithraic-labs/psy-american/-/psy-american-0.2.3.tgz#a6f3a62f96ec01f94463a7b12f5bf71a003c9942" @@ -2179,6 +2213,11 @@ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.3.tgz#39908da56a4adc270147bb07968bf3b16cfe1699" integrity sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA== +"@noble/hashes@^1.3.3": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.4.0.tgz#45814aa329f30e4fe0ba49426f49dfccdd066426" + integrity sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg== + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -2825,7 +2864,7 @@ "@solana/web3.js" "^1.32.0" start-server-and-test "^1.14.0" -"@solana/spl-token@^0.3.5", "@solana/spl-token@^0.3.8": +"@solana/spl-token@^0.3.5", "@solana/spl-token@^0.3.6", "@solana/spl-token@^0.3.8": version "0.3.11" resolved "https://registry.yarnpkg.com/@solana/spl-token/-/spl-token-0.3.11.tgz#cdc10f9472b29b39c8983c92592cadd06627fb9a" integrity sha512-bvohO3rIMSVL24Pb+I4EYTJ6cL82eFpInEXD/I8K8upOGjpqHsKUoAempR/RnUlI1qSFNyFlWJfu6MNUgfbCQQ== @@ -2881,6 +2920,43 @@ rpc-websockets "^7.5.1" superstruct "^0.14.2" +"@solana/web3.js@^1.70.3": + version "1.91.2" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.91.2.tgz#a5cb46a90076faaa284856e24464cac2b68fdc0c" + integrity sha512-WXPl5VXtfNKWM2RkGj7mvX6dKcZURDKe1lWBFAt/RqDBI9Rjr9hr7Y+U+yz2+TyViMmoinfJVlkS4gk2FPDG/g== + dependencies: + "@babel/runtime" "^7.23.4" + "@noble/curves" "^1.2.0" + "@noble/hashes" "^1.3.3" + "@solana/buffer-layout" "^4.0.1" + agentkeepalive "^4.5.0" + bigint-buffer "^1.1.5" + bn.js "^5.2.1" + borsh "^0.7.0" + bs58 "^4.0.1" + buffer "6.0.3" + fast-stable-stringify "^1.0.0" + jayson "^4.1.0" + node-fetch "^2.7.0" + rpc-websockets "^7.5.1" + superstruct "^0.14.2" + +"@sqds/multisig@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@sqds/multisig/-/multisig-2.1.1.tgz#43cf21f79a70d91a3bab508a3c819573c89ea417" + integrity sha512-bNXKnz3/12ynS6ASt8tx3u4U1HGi2i5qE6YqSJBkpIC+FBvsazBAdpCgIsjv3SeczkzkHfVhusmkrlsjtSdfCQ== + dependencies: + "@metaplex-foundation/beet" "0.7.1" + "@metaplex-foundation/beet-solana" "0.4.0" + "@metaplex-foundation/cusper" "^0.0.2" + "@solana/spl-token" "^0.3.6" + "@solana/web3.js" "^1.70.3" + "@types/bn.js" "^5.1.1" + assert "^2.0.0" + bn.js "^5.2.1" + buffer "6.0.3" + invariant "2.2.4" + "@supercharge/promise-pool@^2.1.0": version "2.4.0" resolved "https://registry.yarnpkg.com/@supercharge/promise-pool/-/promise-pool-2.4.0.tgz#6050eea8c2d7f92ddd4ddc582ee328b15c034ad3" @@ -3698,6 +3774,17 @@ asn1.js@^5.4.1: minimalistic-assert "^1.0.0" safer-buffer "^2.1.0" +assert@^2.0.0, assert@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/assert/-/assert-2.1.0.tgz#6d92a238d05dc02e7427c881fb8be81c8448b2dd" + integrity sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw== + dependencies: + call-bind "^1.0.2" + is-nan "^1.3.2" + object-is "^1.1.5" + object.assign "^4.1.4" + util "^0.12.5" + async-retry@^1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.3.3.tgz#0e7f36c04d8478e7a58bdbed80cedf977785f280" @@ -4135,7 +4222,7 @@ caching-transform@^4.0.0: package-hash "^4.0.0" write-file-atomic "^3.0.0" -call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: +call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== @@ -6161,6 +6248,13 @@ internal-slot@^1.0.7: hasown "^2.0.0" side-channel "^1.0.4" +invariant@2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + is-alphabetical@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" @@ -6174,6 +6268,14 @@ is-alphanumerical@^1.0.0: is-alphabetical "^1.0.0" is-decimal "^1.0.0" +is-arguments@^1.0.4: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + is-array-buffer@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" @@ -6265,6 +6367,13 @@ is-generator-fn@^2.0.0: resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== +is-generator-function@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" + integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== + dependencies: + has-tostringtag "^1.0.0" + is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" @@ -6292,6 +6401,14 @@ is-module@^1.0.0: resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" integrity sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g== +is-nan@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.2.tgz#043a54adea31748b55b6cd4e09aadafa69bd9e1d" + integrity sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + is-negative-zero@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747" @@ -6377,7 +6494,7 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" -is-typed-array@^1.1.13: +is-typed-array@^1.1.13, is-typed-array@^1.1.3: version "1.1.13" resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== @@ -7243,7 +7360,7 @@ log-update@^5.0.1: strip-ansi "^7.0.1" wrap-ansi "^8.0.1" -loose-envify@^1.1.0: +loose-envify@^1.0.0, loose-envify@^1.1.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== @@ -7874,12 +7991,20 @@ object-inspect@^1.13.1: resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== +object-is@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.6.tgz#1a6a53aed2dd8f7e6775ff870bea58545956ab07" + integrity sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object.assign@^4.1.5: +object.assign@^4.1.4, object.assign@^4.1.5: version "4.1.5" resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== @@ -9665,6 +9790,17 @@ util-deprecate@^1.0.1: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== +util@^0.12.5: + version "0.12.5" + resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc" + integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== + dependencies: + inherits "^2.0.3" + is-arguments "^1.0.4" + is-generator-function "^1.0.7" + is-typed-array "^1.1.3" + which-typed-array "^1.1.2" + uuid@^8.3.2: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" @@ -9830,6 +9966,17 @@ which-typed-array@^1.1.14: gopd "^1.0.1" has-tostringtag "^1.0.1" +which-typed-array@^1.1.2: + version "1.1.15" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.15.tgz#264859e9b11a649b388bfaaf4f767df1f779b38d" + integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.2" + which@^1.2.14, which@^1.2.9: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" From f31aeb07f51abd4e0c6ea398ed223258a8017779 Mon Sep 17 00:00:00 2001 From: Yaroslav Khodakovskij Date: Mon, 1 Apr 2024 17:04:25 +0300 Subject: [PATCH 2/3] Add squads integration logic --- packages/js/package.json | 1 + .../operations/createVault.ts | 48 ++- packages/js/tests/integration/squads.spec.ts | 307 ++++++++++++++++++ packages/validator/helpers.ts | 10 + 4 files changed, 353 insertions(+), 13 deletions(-) create mode 100644 packages/js/tests/integration/squads.spec.ts diff --git a/packages/js/package.json b/packages/js/package.json index 53398e8d2..48ee6c3e9 100644 --- a/packages/js/package.json +++ b/packages/js/package.json @@ -69,6 +69,7 @@ "@project-serum/anchor": "^0.26.0", "@solana/spl-token": "^0.3.8", "@solana/web3.js": "^1.87.6", + "@sqds/multisig": "^2.1.1", "@types/uuid": "^9.0.1", "big.js": "^6.2.1", "bignumber.js": "^9.0.2", diff --git a/packages/js/src/plugins/vaultOperatorModule/operations/createVault.ts b/packages/js/src/plugins/vaultOperatorModule/operations/createVault.ts index 89a0426a1..c9b1d0487 100644 --- a/packages/js/src/plugins/vaultOperatorModule/operations/createVault.ts +++ b/packages/js/src/plugins/vaultOperatorModule/operations/createVault.ts @@ -1,6 +1,7 @@ import { createCreateRfqInstruction } from '@convergence-rfq/vault-operator'; import { Keypair, PublicKey, SystemProgram } from '@solana/web3.js'; import BN from 'bn.js'; +import * as multisig from '@sqds/multisig'; import { SendAndConfirmTransactionResponse } from '../../rpcModule'; import { Convergence } from '../../../Convergence'; @@ -8,6 +9,7 @@ import { Operation, OperationHandler, OperationScope, + Signer, useOperation, } from '../../../types'; import { @@ -83,7 +85,9 @@ export const createVaultOperationHandler: OperationHandler }, }; -export type CreateVaultBuilderParams = CreateVaultInput; +export type CreateVaultBuilderParams = CreateVaultInput & { + squads?: { vaultPda: PublicKey; transactionPda: PublicKey }; +}; export type CreateVaultBuilderResult = { builder: TransactionBuilder; @@ -105,15 +109,33 @@ export const createVaultBuilder = async ( orderDetails, activeWindow, settlingWindow, + squads, } = params; const leg = await SpotLegInstrument.create(cvg, legMint, 1, 'long'); const quote = await SpotQuoteInstrument.create(cvg, quoteMint); - const vaultProgram = cvg.programs().getVaultOperator(programs).address; const creator = cvg.identity(); - const vaultParams = Keypair.generate(); - const operator = cvg.vaultOperator().pdas().operator(vaultParams.publicKey); + + let signers: Signer[]; + let vaultParamsKey: PublicKey; + let executorKey: PublicKey; + if (squads === undefined) { + const vaultParamsSigner = Keypair.generate(); + signers = [creator, vaultParamsSigner]; + vaultParamsKey = vaultParamsSigner.publicKey; + executorKey = creator.publicKey; + } else { + signers = []; + vaultParamsKey = multisig.getEphemeralSignerPda({ + ephemeralSignerIndex: 0, + transactionPda: squads.transactionPda, + })[0]; + executorKey = squads.vaultPda; + } + + const vaultProgram = cvg.programs().getVaultOperator(programs).address; + const operator = cvg.vaultOperator().pdas().operator(vaultParamsKey); const protocol = await cvg.protocol().get(); const sendMint = @@ -138,9 +160,9 @@ export const createVaultBuilder = async ( operator, programs ); - const creatorTokens = cvg.tokens().pdas().associatedTokenAccount({ + const executorTokens = cvg.tokens().pdas().associatedTokenAccount({ mint: sendMint, - owner: creator.publicKey, + owner: executorKey, programs, }); @@ -185,11 +207,11 @@ export const createVaultBuilder = async ( const lamportsForOperator = 14288880; const transferLamportIx = { instruction: SystemProgram.transfer({ - fromPubkey: creator.publicKey, + fromPubkey: executorKey, toPubkey: operator, lamports: lamportsForOperator, }), - signers: [creator], + signers: [], key: 'sendLamportsToOperator', }; const acceptablePriceLimitWithDecimals = addDecimals( @@ -208,13 +230,13 @@ export const createVaultBuilder = async ( .add(transferLamportIx, { instruction: createCreateRfqInstruction( { - creator: creator.publicKey, - vaultParams: vaultParams.publicKey, + creator: executorKey, + vaultParams: vaultParamsKey, operator, sendMint, receiveMint, vault: vaultTokens, - vaultTokensSource: creatorTokens, + vaultTokensSource: executorTokens, protocol: cvg.protocol().pdas().protocol(), rfq: rfqPda, whitelist: vaultProgram, @@ -240,7 +262,7 @@ export const createVaultBuilder = async ( }, vaultProgram ), - signers: [creator, vaultParams], + signers, key: 'createVault', }); @@ -255,7 +277,7 @@ export const createVaultBuilder = async ( return { builder, ataBuilder, - vaultAddress: vaultParams.publicKey, + vaultAddress: vaultParamsKey, rfqAddress: rfqPda, }; }; diff --git a/packages/js/tests/integration/squads.spec.ts b/packages/js/tests/integration/squads.spec.ts new file mode 100644 index 000000000..246a82577 --- /dev/null +++ b/packages/js/tests/integration/squads.spec.ts @@ -0,0 +1,307 @@ +import * as multisig from '@sqds/multisig'; +import { + ComputeBudgetProgram, + Keypair, + Signer, + SystemProgram, + TransactionMessage, +} from '@solana/web3.js'; +import expect from 'expect'; +import { + CreateVaultInput, + Mint, + TransactionBuilder, + addDecimals, + createVaultBuilder, +} from '../../src'; +import { createUserCvg } from '../helpers'; +import { BASE_MINT_BTC_PK, QUOTE_MINT_PK } from '../constants'; + +const { Permission, Permissions } = multisig.types; + +describe('integration.squads', () => { + const cvg = createUserCvg('taker'); + const cvgSecond = createUserCvg('dao'); + const cvgMaker = createUserCvg('maker'); + const { connection } = cvg; + const creator = cvg.identity(); + let transactionIndex = BigInt(0); + + const createKey = Keypair.generate(); + + const [multisigPda] = multisig.getMultisigPda({ + createKey: createKey.publicKey, + }); + + const [squadsVault] = multisig.getVaultPda({ + multisigPda, + index: 0, + }); + + let baseMintBTC: Mint; + let quoteMint: Mint; + + before(async () => { + baseMintBTC = await cvg + .tokens() + .findMintByAddress({ address: BASE_MINT_BTC_PK }); + quoteMint = await cvg + .tokens() + .findMintByAddress({ address: QUOTE_MINT_PK }); + + await createAndFundSquads(); + }); + + const createAndFundSquads = async () => { + const programConfigPda = multisig.getProgramConfigPda({})[0]; + const programConfig = + await multisig.accounts.ProgramConfig.fromAccountAddress( + connection, + programConfigPda + ); + const configTreasury = programConfig.treasury; + const signature = await multisig.rpc.multisigCreateV2({ + connection, + createKey, + creator, + multisigPda, + configAuthority: null, + timeLock: 0, + members: [ + { + key: creator.publicKey, + permissions: Permissions.all(), + }, + { + key: cvgSecond.identity().publicKey, + permissions: Permissions.fromPermissions([ + Permission.Vote, + Permission.Execute, + ]), + }, + ], + threshold: 2, + rentCollector: null, + treasury: configTreasury, + }); + await connection.confirmTransaction(signature); + + await Promise.all([ + cvg.tokens().send({ + amount: { + basisPoints: addDecimals(100, baseMintBTC.decimals), + currency: baseMintBTC.currency, + }, + mintAddress: baseMintBTC.address, + toOwner: squadsVault, + }), + new TransactionBuilder() + .add({ + instruction: SystemProgram.transfer({ + fromPubkey: cvg.identity().publicKey, + toPubkey: squadsVault, + lamports: addDecimals(10, 9), + }), + signers: [cvg.identity()], + }) + .sendAndConfirm(cvg), + cvg.tokens().createToken({ mint: quoteMint.address, owner: squadsVault }), + ]); + }; + + const createProposal = async (vaultInput: CreateVaultInput) => { + transactionIndex += BigInt(1); + const transactionPda = multisig.getTransactionPda({ + multisigPda, + index: transactionIndex, + })[0]; + + const { + builder: vaultBuilder, + ataBuilder, + vaultAddress, + } = await createVaultBuilder(cvg, { + ...vaultInput, + squads: { transactionPda, vaultPda: squadsVault }, + }); + await ataBuilder.sendAndConfirm(cvg); + + const message = new TransactionMessage({ + payerKey: squadsVault, + recentBlockhash: (await connection.getLatestBlockhash()).blockhash, + instructions: [...vaultBuilder.getInstructions()], + }); + const signature1 = await multisig.rpc.vaultTransactionCreate({ + connection, + feePayer: creator, + multisigPda, + transactionIndex, + creator: creator.publicKey, + vaultIndex: 0, + ephemeralSigners: 1, + transactionMessage: message, + }); + + await connection.confirmTransaction(signature1); + const signature2 = await multisig.rpc.proposalCreate({ + connection, + feePayer: creator, + multisigPda, + transactionIndex, + creator, + }); + + await connection.confirmTransaction(signature2); + + return vaultAddress; + }; + + const approveProposal = async (member: Signer) => { + const signature = await multisig.rpc.proposalApprove({ + connection, + feePayer: member, + multisigPda, + transactionIndex: BigInt(transactionIndex), + member, + }); + + await connection.confirmTransaction(signature); + }; + + const executeProposal = async () => { + const { instruction } = await multisig.instructions.vaultTransactionExecute( + { + connection, + multisigPda, + transactionIndex, + member: cvgSecond.identity().publicKey, + } + ); + const builder = new TransactionBuilder() + .add({ + instruction: ComputeBudgetProgram.setComputeUnitLimit({ + units: 1400000, + }), + signers: [], + }) + .add({ + instruction, + signers: [cvgSecond.identity()], + }); + await builder.sendAndConfirm(cvgSecond); + }; + + const measureTokenDiff = async () => { + const measure = () => + Promise.all([ + cvg.tokens().getTokenBalance({ + mintAddress: baseMintBTC.address, + mintDecimals: baseMintBTC.decimals, + owner: squadsVault, + }), + cvg.tokens().getTokenBalance({ + mintAddress: quoteMint.address, + mintDecimals: quoteMint.decimals, + owner: squadsVault, + }), + ]); + + const [{ tokenBalance: legBefore }, { tokenBalance: quoteBefore }] = + await measure(); + + return async () => { + const [{ tokenBalance: legAfter }, { tokenBalance: quoteAfter }] = + await measure(); + + return { leg: legAfter - legBefore, quote: quoteAfter - quoteBefore }; + }; + }; + + it('Settle sell proposals through vault', async () => { + const measurer = await measureTokenDiff(); + + const vaultAddress = await createProposal({ + acceptablePriceLimit: 40000, + quoteMint, + legMint: baseMintBTC, + orderDetails: { + type: 'sell', + legAmount: 2, + }, + activeWindow: 600, + settlingWindow: 600, + }); + + await approveProposal(creator); + await approveProposal(cvgSecond.identity()); + await executeProposal(); + + const { vault, rfq } = await cvg + .vaultOperator() + .findByAddress({ address: vaultAddress }); + + const { rfqResponse: response } = await cvgMaker + .rfqs() + .respond({ rfq: rfq.address, bid: { price: 40000 } }); + const { vault: updatedVault } = await cvgMaker + .vaultOperator() + .confirmAndPrepare({ rfq, vault, response }); + await cvgMaker.rfqs().prepareSettlement({ + rfq: rfq.address, + response: response.address, + legAmountToPrepare: 1, + }); + await cvgMaker.rfqs().settle({ response: response.address }); + await cvgMaker.rfqs().cleanUpResponse({ response: response.address }); + await cvgMaker.vaultOperator().withdrawTokens({ rfq, vault: updatedVault }); + + expect(await measurer()).toMatchObject({ + leg: -2, + quote: 80000 * (1 - 0.01), + }); + }); + + it('Settle buy proposals through vault', async () => { + const measurer = await measureTokenDiff(); + + const vaultAddress = await createProposal({ + acceptablePriceLimit: 5000, + quoteMint, + legMint: baseMintBTC, + orderDetails: { + type: 'buy', + quoteAmount: 75000, + }, + activeWindow: 600, + settlingWindow: 600, + }); + + await approveProposal(creator); + await approveProposal(cvgSecond.identity()); + await executeProposal(); + + const { vault, rfq } = await cvg + .vaultOperator() + .findByAddress({ address: vaultAddress }); + + const { rfqResponse: response } = await cvgMaker + .rfqs() + .respond({ rfq: rfq.address, ask: { price: 5000 } }); + const { vault: updatedVault } = await cvgMaker + .vaultOperator() + .confirmAndPrepare({ rfq, vault, response }); + await cvgMaker.rfqs().prepareSettlement({ + rfq: rfq.address, + response: response.address, + legAmountToPrepare: 1, + }); + await cvgMaker.rfqs().settle({ response: response.address }); + await cvgMaker.rfqs().cleanUpResponse({ response: response.address }); + await cvgMaker.vaultOperator().withdrawTokens({ rfq, vault: updatedVault }); + + expect(await measurer()).toMatchObject({ + leg: 15, + quote: -75000, + }); + }); +}); diff --git a/packages/validator/helpers.ts b/packages/validator/helpers.ts index 9eb4841f9..e281b4c44 100644 --- a/packages/validator/helpers.ts +++ b/packages/validator/helpers.ts @@ -102,6 +102,16 @@ const getBaseArgs = () => [ '--account-dir', path.join(HXRO_DEPS, 'accounts'), + // squads fixtures + '--url', + 'm', + '-c', + 'BSTq9w3kZwNwpBXJEvTZz2G9ZTNyKBvoSeXMvwb4cNZr', + '-c', + 'SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf', + '-c', + 'Fy3YMJCvwbAXUgUM5b91ucUVA3jYzwWLHL3MwBqKsh8n', + '--ledger', './test-ledger', '--reset', From 8f1248016f80db6e4df7fcd397671d9db13e3043 Mon Sep 17 00:00:00 2001 From: Yaroslav Khodakovskij Date: Mon, 1 Apr 2024 17:17:40 +0300 Subject: [PATCH 3/3] Publish packages --- packages/cli/CHANGELOG.md | 11 +++++++++++ packages/cli/package.json | 4 ++-- packages/js/CHANGELOG.md | 6 ++++++ packages/js/package.json | 2 +- 4 files changed, 20 insertions(+), 3 deletions(-) diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index a1095a022..8792880e8 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,16 @@ # @convergence-rfq/cli +## 6.5.0 + +### Minor Changes + +- Replace risk engine program with a simplified one, add squads integration + +### Patch Changes + +- Updated dependencies + - @convergence-rfq/sdk@6.5.0 + ## 6.4.2 ### Patch Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index de53d2f6a..31d79d482 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,7 +1,7 @@ { "name": "@convergence-rfq/cli", "description": "Official Convergence CLI", - "version": "6.4.2", + "version": "6.5.0", "license": "MIT", "publishConfig": { "access": "public" @@ -47,7 +47,7 @@ "cli": "ts-node src/index.ts" }, "dependencies": { - "@convergence-rfq/sdk": "6.4.2", + "@convergence-rfq/sdk": "6.5.0", "@solana/web3.js": "^1.87.6", "@types/cookie": "^0.5.1", "commander": "^10.0.0" diff --git a/packages/js/CHANGELOG.md b/packages/js/CHANGELOG.md index fa30d044e..66be5b240 100644 --- a/packages/js/CHANGELOG.md +++ b/packages/js/CHANGELOG.md @@ -1,5 +1,11 @@ # @convergence-rfq/sdk +## 6.5.0 + +### Minor Changes + +- Replace risk engine program with a simplified one, add squads integration + ## 6.4.2 ### Patch Changes diff --git a/packages/js/package.json b/packages/js/package.json index 48ee6c3e9..d18914ab6 100644 --- a/packages/js/package.json +++ b/packages/js/package.json @@ -1,7 +1,7 @@ { "name": "@convergence-rfq/sdk", "description": "Official Convergence RFQ SDK", - "version": "6.4.2", + "version": "6.5.0", "license": "MIT", "publishConfig": { "access": "public"