From f8731fc5664e22c3259e47cb680574cb2b9315d5 Mon Sep 17 00:00:00 2001 From: tshak Date: Tue, 24 Sep 2024 18:31:05 -0700 Subject: [PATCH 001/260] Blockchain API: Fix empty errors in JSON payload and in a couple of cases logs. Fixes #190 --- .../internal/blockchainapi/controller.go | 130 +++++++++--------- .../internal/blockchainapi/structs/res.go | 2 +- 2 files changed, 67 insertions(+), 65 deletions(-) diff --git a/proxy-router/internal/blockchainapi/controller.go b/proxy-router/internal/blockchainapi/controller.go index e3666759..3cd56073 100644 --- a/proxy-router/internal/blockchainapi/controller.go +++ b/proxy-router/internal/blockchainapi/controller.go @@ -84,13 +84,13 @@ func (c *BlockchainController) getProviderClaimableBalance(ctx *gin.Context) { err := ctx.ShouldBindUri(¶ms) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } balance, err := c.service.GetProviderClaimableBalance(ctx, params.ID.Hash) if err != nil { - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -113,21 +113,21 @@ func (c *BlockchainController) claimProviderBalance(ctx *gin.Context) { err := ctx.ShouldBindUri(¶ms) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } _, amount, err := c.getSendParams(ctx) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } txHash, err := c.service.ClaimProviderBalance(ctx, params.ID.Hash, amount) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -147,7 +147,7 @@ func (c *BlockchainController) getAllProviders(ctx *gin.Context) { providers, err := c.service.GetAllProviders(ctx) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } @@ -168,14 +168,14 @@ func (c *BlockchainController) sendETH(ctx *gin.Context) { to, amount, err := c.getSendParams(ctx) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } txHash, err := c.service.SendETH(ctx, to, amount) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -196,13 +196,13 @@ func (c *BlockchainController) sendMOR(ctx *gin.Context) { to, amount, err := c.getSendParams(ctx) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } txhash, err := c.service.SendMOR(ctx, to, amount) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } @@ -226,21 +226,21 @@ func (c *BlockchainController) getBidsByProvider(ctx *gin.Context) { err := ctx.ShouldBindUri(¶ms) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } offset, limit, err := getOffsetLimit(ctx) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } bids, err := c.service.GetBidsByProvider(ctx, params.ID.Address, offset, limit) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -262,14 +262,14 @@ func (c *BlockchainController) getActiveBidsByProvider(ctx *gin.Context) { err := ctx.ShouldBindUri(¶ms) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } bids, err := c.service.GetActiveBidsByProvider(ctx, params.ID.Address) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -289,7 +289,7 @@ func (c *BlockchainController) getAllModels(ctx *gin.Context) { models, err := c.service.GetAllModels(ctx) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } @@ -313,21 +313,21 @@ func (c *BlockchainController) getBidsByModelAgent(ctx *gin.Context) { err := ctx.ShouldBindUri(¶ms) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } offset, limit, err := getOffsetLimit(ctx) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } bids, err := c.service.GetBidsByModelAgent(ctx, params.ID.Hash, offset, limit) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -349,14 +349,14 @@ func (c *BlockchainController) getActiveBidsByModel(ctx *gin.Context) { err := ctx.ShouldBindUri(¶ms) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } bids, err := c.service.GetActiveBidsByModel(ctx, params.ID.Hash) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -376,7 +376,7 @@ func (s *BlockchainController) getBalance(ctx *gin.Context) { ethBalance, morBalance, err := s.service.GetBalance(ctx) if err != nil { s.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -401,14 +401,14 @@ func (c *BlockchainController) getTransactions(ctx *gin.Context) { page, limit, err := getPageLimit(ctx) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } txs, err := c.service.GetTransactions(ctx, page, limit) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -429,14 +429,14 @@ func (c *BlockchainController) getAllowance(ctx *gin.Context) { err := ctx.ShouldBindQuery(&query) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } allowance, err := c.service.GetAllowance(ctx, query.Spender.Address) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -459,14 +459,14 @@ func (c *BlockchainController) approve(ctx *gin.Context) { err := ctx.ShouldBindQuery(&query) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } tx, err := c.service.Approve(ctx, query.Spender.Address, query.Amount.Unpack()) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -488,14 +488,14 @@ func (c *BlockchainController) openSession(ctx *gin.Context) { var reqPayload structs.OpenSessionRequest if err := ctx.ShouldBindJSON(&reqPayload); err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } sessionId, err := c.service.OpenSession(ctx, reqPayload.Approval, reqPayload.ApprovalSig, reqPayload.Stake.Unpack()) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -517,20 +517,20 @@ func (c *BlockchainController) openSession(ctx *gin.Context) { func (s *BlockchainController) openSessionByBid(ctx *gin.Context) { var reqPayload structs.OpenSessionWithDurationRequest if err := ctx.ShouldBindJSON(&reqPayload); err != nil { - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } var params structs.PathHex32ID err := ctx.ShouldBindUri(¶ms) if err != nil { - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } sessionId, err := s.service.openSessionByBid(ctx, params.ID.Hash, reqPayload.SessionDuration.Unpack()) if err != nil { - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -553,7 +553,7 @@ func (s *BlockchainController) openSessionByModelId(ctx *gin.Context) { var reqPayload structs.OpenSessionWithDurationRequest if err := ctx.ShouldBindJSON(&reqPayload); err != nil { s.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } @@ -568,7 +568,7 @@ func (s *BlockchainController) openSessionByModelId(ctx *gin.Context) { sessionId, err := s.service.OpenSessionByModelId(ctx, params.ID.Hash, reqPayload.SessionDuration.Unpack()) if err != nil { s.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -590,14 +590,14 @@ func (c *BlockchainController) closeSession(ctx *gin.Context) { err := ctx.ShouldBindUri(¶ms) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } txHash, err := c.service.CloseSession(ctx, params.ID.Hash) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -619,14 +619,14 @@ func (c *BlockchainController) getSession(ctx *gin.Context) { err := ctx.ShouldBindUri(¶ms) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } session, err := c.service.GetSession(ctx, params.ID.Hash) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -650,7 +650,7 @@ func (c *BlockchainController) getSessions(ctx *gin.Context) { offset, limit, err := getOffsetLimit(ctx) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } @@ -658,7 +658,7 @@ func (c *BlockchainController) getSessions(ctx *gin.Context) { err = ctx.ShouldBindQuery(&req) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } @@ -666,20 +666,22 @@ func (c *BlockchainController) getSessions(ctx *gin.Context) { hasProvider := req.Provider != lib.Address{} if !hasUser && !hasProvider { + err := fmt.Errorf("user or provider is required") c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: fmt.Errorf("user or provider is required")}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } if hasUser && hasProvider { + err := fmt.Errorf("only one of user or provider is allowed") c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: fmt.Errorf("only one of user or provider is allowed")}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } sessions, err := c.service.GetSessions(ctx, req.User.Address, req.Provider.Address, offset, limit) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -699,7 +701,7 @@ func (s *BlockchainController) getBudget(ctx *gin.Context) { budget, err := s.service.GetTodaysBudget(ctx) if err != nil { s.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -719,7 +721,7 @@ func (s *BlockchainController) getSupply(ctx *gin.Context) { supply, err := s.service.GetTokenSupply(ctx) if err != nil { s.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -739,7 +741,7 @@ func (c *BlockchainController) getLatestBlock(ctx *gin.Context) { block, err := c.service.GetLatestBlock(ctx) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } ctx.JSON(http.StatusOK, structs.BlockRes{Block: block}) @@ -760,14 +762,14 @@ func (c *BlockchainController) getBidByID(ctx *gin.Context) { err := ctx.ShouldBindUri(¶ms) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } bid, err := c.service.GetBidByID(ctx, params.ID.Hash) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -789,14 +791,14 @@ func (c *BlockchainController) getRatedBids(ctx *gin.Context) { err := ctx.ShouldBindUri(¶ms) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } bids, err := c.service.GetRatedBids(ctx, params.ID.Hash) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -817,14 +819,14 @@ func (c *BlockchainController) createProvider(ctx *gin.Context) { var provider structs.CreateProviderRequest if err := ctx.ShouldBindJSON(&provider); err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } result, err := c.service.CreateNewProvider(ctx, provider.Stake, provider.Endpoint) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -845,14 +847,14 @@ func (c *BlockchainController) deregisterProvider(ctx *gin.Context) { err := ctx.ShouldBindUri(¶ms) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } txHash, err := c.service.DeregisterProdiver(ctx, params.ID.Address) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -873,7 +875,7 @@ func (c *BlockchainController) createNewModel(ctx *gin.Context) { var model structs.CreateModelRequest if err := ctx.ShouldBindJSON(&model); err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } @@ -883,7 +885,7 @@ func (c *BlockchainController) createNewModel(ctx *gin.Context) { _, err := rand.Read(hash[:]) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } modelId = hash @@ -895,7 +897,7 @@ func (c *BlockchainController) createNewModel(ctx *gin.Context) { result, err := c.service.CreateNewModel(ctx, modelId, ipsfHash, model.Fee, model.Stake, model.Name, model.Tags) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -917,14 +919,14 @@ func (c *BlockchainController) deregisterModel(ctx *gin.Context) { err := ctx.ShouldBindUri(¶ms) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } txHash, err := c.service.DeregisterModel(ctx, params.ID.Hash) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -945,7 +947,7 @@ func (c *BlockchainController) createNewBid(ctx *gin.Context) { var bid structs.CreateBidRequest if err := ctx.ShouldBindJSON(&bid); err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } @@ -953,7 +955,7 @@ func (c *BlockchainController) createNewBid(ctx *gin.Context) { result, err := c.service.CreateNewBid(ctx, modelId, bid.PricePerSecond) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -974,14 +976,14 @@ func (c *BlockchainController) deleteBid(ctx *gin.Context) { err := ctx.ShouldBindUri(¶ms) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } txHash, err := c.service.DeleteBid(ctx, params.ID.Hash) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } diff --git a/proxy-router/internal/blockchainapi/structs/res.go b/proxy-router/internal/blockchainapi/structs/res.go index 0d976c01..64783bb2 100644 --- a/proxy-router/internal/blockchainapi/structs/res.go +++ b/proxy-router/internal/blockchainapi/structs/res.go @@ -14,7 +14,7 @@ type TxRes struct { } type ErrRes struct { - Error error `json:"error" example:"error message"` + Error string `json:"error" example:"error message"` } type OpenSessionRes struct { From 7fab5a5c7d274cfd1aa70fc8adae14a87f7cb043 Mon Sep 17 00:00:00 2001 From: Aleksandr Kukharenko Date: Wed, 25 Sep 2024 17:50:16 +0300 Subject: [PATCH 002/260] feat: split get sessions comments on two --- proxy-router/docs/docs.go | 138 ++++++++++++------ proxy-router/docs/swagger.json | 138 ++++++++++++------ proxy-router/docs/swagger.yaml | 92 ++++++++---- .../internal/blockchainapi/controller.go | 61 +++++--- .../internal/blockchainapi/structs/req.go | 9 +- .../renderer/src/store/hocs/withChatState.jsx | 2 +- .../src/store/hocs/withProvidersState.jsx | 2 +- 7 files changed, 303 insertions(+), 139 deletions(-) diff --git a/proxy-router/docs/docs.go b/proxy-router/docs/docs.go index bede38e7..e0500907 100644 --- a/proxy-router/docs/docs.go +++ b/proxy-router/docs/docs.go @@ -640,98 +640,136 @@ const docTemplate = `{ } }, "/blockchain/sessions": { - "get": { - "description": "Get sessions from blockchain by user or provider", + "post": { + "description": "Sends transaction in blockchain to open a session", + "consumes": [ + "application/json" + ], "produces": [ "application/json" ], "tags": [ "sessions" ], - "summary": "Get Sessions", + "summary": "Open Session with Provider in blockchain", "parameters": [ { - "type": "string", - "description": "Offset", - "name": "offset", - "in": "query" - }, - { - "type": "string", - "description": "Limit", - "name": "limit", - "in": "query" - }, - { - "type": "string", - "description": "Provider address", - "name": "provider", - "in": "query" - }, - { - "type": "string", - "description": "User address", - "name": "user", - "in": "query" + "description": "Open session", + "name": "opensession", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/structs.OpenSessionRequest" + } } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/structs.SessionsRes" + "$ref": "#/definitions/structs.OpenSessionRes" } } } - }, - "post": { - "description": "Sends transaction in blockchain to open a session", - "consumes": [ + } + }, + "/blockchain/sessions/budget": { + "get": { + "description": "Get todays budget from blockchain", + "produces": [ "application/json" ], + "tags": [ + "sessions" + ], + "summary": "Get Todays Budget", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/structs.BudgetRes" + } + } + } + } + }, + "/blockchain/sessions/provider": { + "get": { + "description": "Get sessions from blockchain by provider", "produces": [ "application/json" ], "tags": [ "sessions" ], - "summary": "Open Session with Provider in blockchain", + "summary": "Get Sessions for Provider", "parameters": [ { - "description": "Open session", - "name": "opensession", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/structs.OpenSessionRequest" - } + "type": "string", + "description": "Offset", + "name": "offset", + "in": "query" + }, + { + "type": "string", + "description": "Limit", + "name": "limit", + "in": "query" + }, + { + "type": "string", + "description": "Provider address", + "name": "provider", + "in": "query", + "required": true } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/structs.OpenSessionRes" + "$ref": "#/definitions/structs.SessionsRes" } } } } }, - "/blockchain/sessions/budget": { + "/blockchain/sessions/user": { "get": { - "description": "Get todays budget from blockchain", + "description": "Get sessions from blockchain by user", "produces": [ "application/json" ], "tags": [ "sessions" ], - "summary": "Get Todays Budget", + "summary": "Get Sessions for User", + "parameters": [ + { + "type": "string", + "description": "Offset", + "name": "offset", + "in": "query" + }, + { + "type": "string", + "description": "Limit", + "name": "limit", + "in": "query" + }, + { + "type": "string", + "description": "User address", + "name": "user", + "in": "query", + "required": true + } + ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/structs.BudgetRes" + "$ref": "#/definitions/structs.SessionsRes" } } } @@ -1237,6 +1275,9 @@ const docTemplate = `{ "proxyapi.ChatCompletionChoice": { "type": "object", "properties": { + "delta": { + "$ref": "#/definitions/proxyapi.ChatCompletionDelta" + }, "finish_reason": { "description": "FinishReason\nstop: API returned complete message,\nor a message terminated by one of the stop sequences provided via the stop parameter\nlength: Incomplete model output due to max_tokens parameter or token limit\nfunction_call: The model decided to call a function\ncontent_filter: Omitted content due to a flag from our content filters\nnull: API response still in progress or incomplete", "allOf": [ @@ -1256,6 +1297,17 @@ const docTemplate = `{ } } }, + "proxyapi.ChatCompletionDelta": { + "type": "object", + "properties": { + "content": { + "type": "string" + }, + "role": { + "type": "string" + } + } + }, "proxyapi.ChatCompletionMessage": { "type": "object", "properties": { diff --git a/proxy-router/docs/swagger.json b/proxy-router/docs/swagger.json index 45a112c9..cf46038e 100644 --- a/proxy-router/docs/swagger.json +++ b/proxy-router/docs/swagger.json @@ -633,98 +633,136 @@ } }, "/blockchain/sessions": { - "get": { - "description": "Get sessions from blockchain by user or provider", + "post": { + "description": "Sends transaction in blockchain to open a session", + "consumes": [ + "application/json" + ], "produces": [ "application/json" ], "tags": [ "sessions" ], - "summary": "Get Sessions", + "summary": "Open Session with Provider in blockchain", "parameters": [ { - "type": "string", - "description": "Offset", - "name": "offset", - "in": "query" - }, - { - "type": "string", - "description": "Limit", - "name": "limit", - "in": "query" - }, - { - "type": "string", - "description": "Provider address", - "name": "provider", - "in": "query" - }, - { - "type": "string", - "description": "User address", - "name": "user", - "in": "query" + "description": "Open session", + "name": "opensession", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/structs.OpenSessionRequest" + } } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/structs.SessionsRes" + "$ref": "#/definitions/structs.OpenSessionRes" } } } - }, - "post": { - "description": "Sends transaction in blockchain to open a session", - "consumes": [ + } + }, + "/blockchain/sessions/budget": { + "get": { + "description": "Get todays budget from blockchain", + "produces": [ "application/json" ], + "tags": [ + "sessions" + ], + "summary": "Get Todays Budget", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/structs.BudgetRes" + } + } + } + } + }, + "/blockchain/sessions/provider": { + "get": { + "description": "Get sessions from blockchain by provider", "produces": [ "application/json" ], "tags": [ "sessions" ], - "summary": "Open Session with Provider in blockchain", + "summary": "Get Sessions for Provider", "parameters": [ { - "description": "Open session", - "name": "opensession", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/structs.OpenSessionRequest" - } + "type": "string", + "description": "Offset", + "name": "offset", + "in": "query" + }, + { + "type": "string", + "description": "Limit", + "name": "limit", + "in": "query" + }, + { + "type": "string", + "description": "Provider address", + "name": "provider", + "in": "query", + "required": true } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/structs.OpenSessionRes" + "$ref": "#/definitions/structs.SessionsRes" } } } } }, - "/blockchain/sessions/budget": { + "/blockchain/sessions/user": { "get": { - "description": "Get todays budget from blockchain", + "description": "Get sessions from blockchain by user", "produces": [ "application/json" ], "tags": [ "sessions" ], - "summary": "Get Todays Budget", + "summary": "Get Sessions for User", + "parameters": [ + { + "type": "string", + "description": "Offset", + "name": "offset", + "in": "query" + }, + { + "type": "string", + "description": "Limit", + "name": "limit", + "in": "query" + }, + { + "type": "string", + "description": "User address", + "name": "user", + "in": "query", + "required": true + } + ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/structs.BudgetRes" + "$ref": "#/definitions/structs.SessionsRes" } } } @@ -1230,6 +1268,9 @@ "proxyapi.ChatCompletionChoice": { "type": "object", "properties": { + "delta": { + "$ref": "#/definitions/proxyapi.ChatCompletionDelta" + }, "finish_reason": { "description": "FinishReason\nstop: API returned complete message,\nor a message terminated by one of the stop sequences provided via the stop parameter\nlength: Incomplete model output due to max_tokens parameter or token limit\nfunction_call: The model decided to call a function\ncontent_filter: Omitted content due to a flag from our content filters\nnull: API response still in progress or incomplete", "allOf": [ @@ -1249,6 +1290,17 @@ } } }, + "proxyapi.ChatCompletionDelta": { + "type": "object", + "properties": { + "content": { + "type": "string" + }, + "role": { + "type": "string" + } + } + }, "proxyapi.ChatCompletionMessage": { "type": "object", "properties": { diff --git a/proxy-router/docs/swagger.yaml b/proxy-router/docs/swagger.yaml index ee876b25..c68ee866 100644 --- a/proxy-router/docs/swagger.yaml +++ b/proxy-router/docs/swagger.yaml @@ -35,6 +35,8 @@ definitions: type: object proxyapi.ChatCompletionChoice: properties: + delta: + $ref: '#/definitions/proxyapi.ChatCompletionDelta' finish_reason: allOf: - $ref: '#/definitions/proxyapi.FinishReason' @@ -53,6 +55,13 @@ definitions: message: $ref: '#/definitions/proxyapi.ChatCompletionMessage' type: object + proxyapi.ChatCompletionDelta: + properties: + content: + type: string + role: + type: string + type: object proxyapi.ChatCompletionMessage: properties: content: @@ -1047,35 +1056,6 @@ paths: tags: - transactions /blockchain/sessions: - get: - description: Get sessions from blockchain by user or provider - parameters: - - description: Offset - in: query - name: offset - type: string - - description: Limit - in: query - name: limit - type: string - - description: Provider address - in: query - name: provider - type: string - - description: User address - in: query - name: user - type: string - produces: - - application/json - responses: - "200": - description: OK - schema: - $ref: '#/definitions/structs.SessionsRes' - summary: Get Sessions - tags: - - sessions post: consumes: - application/json @@ -1148,6 +1128,60 @@ paths: summary: Get Todays Budget tags: - sessions + /blockchain/sessions/provider: + get: + description: Get sessions from blockchain by provider + parameters: + - description: Offset + in: query + name: offset + type: string + - description: Limit + in: query + name: limit + type: string + - description: Provider address + in: query + name: provider + required: true + type: string + produces: + - application/json + responses: + "200": + description: OK + schema: + $ref: '#/definitions/structs.SessionsRes' + summary: Get Sessions for Provider + tags: + - sessions + /blockchain/sessions/user: + get: + description: Get sessions from blockchain by user + parameters: + - description: Offset + in: query + name: offset + type: string + - description: Limit + in: query + name: limit + type: string + - description: User address + in: query + name: user + required: true + type: string + produces: + - application/json + responses: + "200": + description: OK + schema: + $ref: '#/definitions/structs.SessionsRes' + summary: Get Sessions for User + tags: + - sessions /blockchain/token/supply: get: description: Get MOR token supply from blockchain diff --git a/proxy-router/internal/blockchainapi/controller.go b/proxy-router/internal/blockchainapi/controller.go index e3666759..7312eb12 100644 --- a/proxy-router/internal/blockchainapi/controller.go +++ b/proxy-router/internal/blockchainapi/controller.go @@ -2,7 +2,6 @@ package blockchainapi import ( "crypto/rand" - "fmt" "math/big" "net/http" @@ -60,7 +59,8 @@ func (c *BlockchainController) RegisterRoutes(r interfaces.Router) { // sessions r.GET("/proxy/sessions/:id/providerClaimableBalance", c.getProviderClaimableBalance) r.POST("/proxy/sessions/:id/providerClaim", c.claimProviderBalance) - r.GET("/blockchain/sessions", c.getSessions) + r.GET("/blockchain/sessions/user", c.getSessionsForUser) + r.GET("/blockchain/sessions/provider", c.getSessionsForProvider) r.GET("/blockchain/sessions/:id", c.getSession) r.POST("/blockchain/sessions", c.openSession) r.POST("/blockchain/bids/:id/session", c.openSessionByBid) @@ -636,17 +636,16 @@ func (c *BlockchainController) getSession(ctx *gin.Context) { // GetSessions godoc // -// @Summary Get Sessions -// @Description Get sessions from blockchain by user or provider +// @Summary Get Sessions for User +// @Description Get sessions from blockchain by user // @Tags sessions // @Produce json -// @Param offset query string false "Offset" -// @Param limit query string false "Limit" -// @Param provider query string false "Provider address" -// @Param user query string false "User address" -// @Success 200 {object} structs.SessionsRes -// @Router /blockchain/sessions [get] -func (c *BlockchainController) getSessions(ctx *gin.Context) { +// @Param offset query string false "Offset" +// @Param limit query string false "Limit" +// @Param user query string true "User address" +// @Success 200 {object} structs.SessionsRes +// @Router /blockchain/sessions/user [get] +func (c *BlockchainController) getSessionsForUser(ctx *gin.Context) { offset, limit, err := getOffsetLimit(ctx) if err != nil { c.log.Error(err) @@ -654,7 +653,7 @@ func (c *BlockchainController) getSessions(ctx *gin.Context) { return } - var req structs.QueryUserOrProvider + var req structs.QueryUser err = ctx.ShouldBindQuery(&req) if err != nil { c.log.Error(err) @@ -662,21 +661,45 @@ func (c *BlockchainController) getSessions(ctx *gin.Context) { return } - hasUser := req.User != lib.Address{} - hasProvider := req.Provider != lib.Address{} + sessions, err := c.service.GetSessions(ctx, req.User.Address, common.Address{}, offset, limit) + if err != nil { + c.log.Error(err) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + return + } + + ctx.JSON(http.StatusOK, structs.SessionsRes{Sessions: sessions}) + return +} - if !hasUser && !hasProvider { +// GetSessions godoc +// +// @Summary Get Sessions for Provider +// @Description Get sessions from blockchain by provider +// @Tags sessions +// @Produce json +// @Param offset query string false "Offset" +// @Param limit query string false "Limit" +// @Param provider query string true "Provider address" +// @Success 200 {object} structs.SessionsRes +// @Router /blockchain/sessions/provider [get] +func (c *BlockchainController) getSessionsForProvider(ctx *gin.Context) { + offset, limit, err := getOffsetLimit(ctx) + if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: fmt.Errorf("user or provider is required")}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) return } - if hasUser && hasProvider { + + var req structs.QueryProvider + err = ctx.ShouldBindQuery(&req) + if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: fmt.Errorf("only one of user or provider is allowed")}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) return } - sessions, err := c.service.GetSessions(ctx, req.User.Address, req.Provider.Address, offset, limit) + sessions, err := c.service.GetSessions(ctx, common.Address{}, req.Provider.Address, offset, limit) if err != nil { c.log.Error(err) ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) diff --git a/proxy-router/internal/blockchainapi/structs/req.go b/proxy-router/internal/blockchainapi/structs/req.go index dad1284d..a6ab1fa9 100644 --- a/proxy-router/internal/blockchainapi/structs/req.go +++ b/proxy-router/internal/blockchainapi/structs/req.go @@ -47,9 +47,12 @@ type QueryApprove struct { Amount *lib.BigInt `form:"amount" binding:"required" validate:"number,gt=0"` } -type QueryUserOrProvider struct { - User lib.Address `form:"user" binding:"omitempty" validate:"eth_addr"` - Provider lib.Address `form:"provider" binding:"omitempty" validate:"eth_addr"` +type QueryUser struct { + User lib.Address `form:"user" binding:"required" validate:"eth_addr"` +} + +type QueryProvider struct { + Provider lib.Address `form:"provider" binding:"required" validate:"eth_addr"` } type OpenSessionWithDurationRequest struct { diff --git a/ui-desktop/src/renderer/src/store/hocs/withChatState.jsx b/ui-desktop/src/renderer/src/store/hocs/withChatState.jsx index 8aca8bc3..f79a20c9 100644 --- a/ui-desktop/src/renderer/src/store/hocs/withChatState.jsx +++ b/ui-desktop/src/renderer/src/store/hocs/withChatState.jsx @@ -167,7 +167,7 @@ const withChatState = WrappedComponent => { return; } try { - const path = `${this.props.config.chain.localProxyRouterUrl}/blockchain/sessions?user=${user}`; + const path = `${this.props.config.chain.localProxyRouterUrl}/blockchain/sessions/user?user=${user}`; const response = await fetch(path); const data = await response.json(); return data.sessions; diff --git a/ui-desktop/src/renderer/src/store/hocs/withProvidersState.jsx b/ui-desktop/src/renderer/src/store/hocs/withProvidersState.jsx index fc9029a2..3fba485d 100644 --- a/ui-desktop/src/renderer/src/store/hocs/withProvidersState.jsx +++ b/ui-desktop/src/renderer/src/store/hocs/withProvidersState.jsx @@ -35,7 +35,7 @@ const withProvidersState = WrappedComponent => { getSessionsByProvider = async (provider) => { try { - const path = `${this.props.config.chain.localProxyRouterUrl}/blockchain/sessions?provider=${provider}`; + const path = `${this.props.config.chain.localProxyRouterUrl}/blockchain/sessions/provider?provider=${provider}`; const response = await fetch(path); const data = await response.json(); return data.sessions; From c2af6c72be9a76c4a11b31905f8bc35ae8b95fad Mon Sep 17 00:00:00 2001 From: Aleksandr Kukharenko Date: Mon, 30 Sep 2024 11:25:36 +0300 Subject: [PATCH 003/260] fix: improve log --- proxy-router/internal/blockchainapi/event_listener.go | 8 +++++++- proxy-router/internal/config/models_config.go | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/proxy-router/internal/blockchainapi/event_listener.go b/proxy-router/internal/blockchainapi/event_listener.go index 606bd96c..7d62d3c8 100644 --- a/proxy-router/internal/blockchainapi/event_listener.go +++ b/proxy-router/internal/blockchainapi/event_listener.go @@ -100,7 +100,13 @@ func (e *EventsListener) handleSessionOpened(event *sessionrouter.SessionRouterS } modelID := lib.BytesToString(session.ModelAgentId[:]) - modelConfig := e.modelConfigLoader.ModelConfigFromID(modelID) + + var modelConfig *config.ModelConfig + if session.Provider.Hex() == address.Hex() { + modelConfig = e.modelConfigLoader.ModelConfigFromID(modelID) + } else { + modelConfig = &config.ModelConfig{} + } err = e.store.AddSession(&storages.Session{ Id: sessionId, diff --git a/proxy-router/internal/config/models_config.go b/proxy-router/internal/config/models_config.go index 942e95c4..44b01b5b 100644 --- a/proxy-router/internal/config/models_config.go +++ b/proxy-router/internal/config/models_config.go @@ -63,7 +63,7 @@ func (e *ModelConfigLoader) ModelConfigFromID(ID string) *ModelConfig { modelConfig := e.modelConfigs[ID] if modelConfig == (ModelConfig{}) { - e.log.Errorf("model config not found for ID: %s", ID) + e.log.Warnf("model config not found for ID: %s", ID) return &ModelConfig{} } From dc2886ae3fbd703e2fcbbdb2f4ba1640cea44da4 Mon Sep 17 00:00:00 2001 From: "bohdan.konorin" Date: Wed, 2 Oct 2024 17:24:33 +0200 Subject: [PATCH 004/260] Fixed issue with Price range --- ui-desktop/src/renderer/src/components/chat/Chat.tsx | 8 ++++---- .../src/renderer/src/components/chat/modals/ModelRow.tsx | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/ui-desktop/src/renderer/src/components/chat/Chat.tsx b/ui-desktop/src/renderer/src/components/chat/Chat.tsx index 32c20237..e340df93 100644 --- a/ui-desktop/src/renderer/src/components/chat/Chat.tsx +++ b/ui-desktop/src/renderer/src/components/chat/Chat.tsx @@ -162,8 +162,8 @@ const Chat = (props) => { setChat({ id: makeId(16), createdAt: new Date(), modelId: selectedModel.Id }); } - const prices = selectedModel.bids.map(x => x.PricePerSecond); - const maxPrice = Math.max(prices); + const prices = selectedModel.bids.map(x => Number(x.PricePerSecond)); + const maxPrice = Math.max(...prices); const duration = calculateAcceptableDuration(maxPrice, Number(balances.mor), meta); console.log("open-session", duration); @@ -463,8 +463,8 @@ const Chat = (props) => { return; } - const prices = selectedModel.bids.map(x => x.PricePerSecond); - const maxPrice = Math.max(prices); + const prices = selectedModel.bids.map(x => Number(x.PricePerSecond)); + const maxPrice = Math.max(...prices); setRequiredStake({ min: calculateStake(maxPrice, 5), max: calculateStake(maxPrice, 24 * 60) }) } diff --git a/ui-desktop/src/renderer/src/components/chat/modals/ModelRow.tsx b/ui-desktop/src/renderer/src/components/chat/modals/ModelRow.tsx index 670280e5..32915a6a 100644 --- a/ui-desktop/src/renderer/src/components/chat/modals/ModelRow.tsx +++ b/ui-desktop/src/renderer/src/components/chat/modals/ModelRow.tsx @@ -121,13 +121,13 @@ function ModelRow(props) { return `${formatSmallNumber(targetBid?.PricePerSecond / (10 ** 18))} MOR`; } - const prices = bids.filter(x => x.Id).map(x => x.PricePerSecond); + const prices = bids.filter(x => x.Id).map(x => Number(x.PricePerSecond)); if (prices.length == 1) { return `${formatSmallNumber(prices[0] / (10 ** 18))} MOR`; } - const minPrice = Math.min(prices); - const maxPrice = Math.max(prices); + const minPrice = Math.min(...prices); + const maxPrice = Math.max(...prices); return `${formatSmallNumber(minPrice / (10 ** 18))} - ${formatSmallNumber(maxPrice / (10 ** 18))} MOR` } From b1f283d224a478bd6acaa5c24d73d81c104dfae6 Mon Sep 17 00:00:00 2001 From: Aleksandr Kukharenko Date: Wed, 9 Oct 2024 17:41:41 +0300 Subject: [PATCH 005/260] feat: handle chat context on proxy --- proxy-router/.env.example | 1 + proxy-router/cmd/main.go | 11 +- proxy-router/docs/docs.go | 104 ++++++++ proxy-router/docs/swagger.json | 209 ++++++++++++--- proxy-router/docs/swagger.yaml | 145 ++++++++--- proxy-router/internal/config/config.go | 1 + .../internal/handlers/httphandlers/http.go | 2 +- .../internal/proxyapi/chat_requests.go | 6 +- .../internal/proxyapi/chat_storage.go | 202 +++++++++++++-- .../internal/proxyapi/controller_http.go | 242 +++++++++++++++--- .../internal/proxyapi/proxy_receiver.go | 3 +- proxy-router/internal/proxyapi/requests.go | 9 + ui-desktop/src/main/src/client/apiGateway.js | 108 +++++++- .../src/main/src/client/handlers/no-core.js | 2 - .../main/src/client/history/chat-history.js | 45 ---- .../main/src/client/subscriptions/no-core.js | 10 +- ui-desktop/src/renderer/src/client/index.jsx | 8 +- .../src/renderer/src/components/chat/Chat.tsx | 135 +++++----- .../src/components/chat/ChatHistory.tsx | 46 ++-- .../src/components/chat/interfaces.tsx | 47 ++++ .../src/renderer/src/components/chat/utils.js | 5 + 21 files changed, 1071 insertions(+), 270 deletions(-) delete mode 100644 ui-desktop/src/main/src/client/history/chat-history.js create mode 100644 ui-desktop/src/renderer/src/components/chat/interfaces.tsx diff --git a/proxy-router/.env.example b/proxy-router/.env.example index 10cd5964..c712674a 100644 --- a/proxy-router/.env.example +++ b/proxy-router/.env.example @@ -20,6 +20,7 @@ LOG_LEVEL_SCHEDULER=info OPENAI_API_KEY= #optional PROXY_ADDRESS=0.0.0.0:3333 PROXY_STORAGE_PATH=./data/ +PROXY_STORE_CHAT_CONTEXT=true SYS_ENABLE=false SYS_LOCAL_PORT_RANGE=1024 65535 SYS_NET_DEV_MAX_BACKLOG=100000 diff --git a/proxy-router/cmd/main.go b/proxy-router/cmd/main.go index 9e90f0b9..dcb7bc77 100644 --- a/proxy-router/cmd/main.go +++ b/proxy-router/cmd/main.go @@ -225,8 +225,15 @@ func start() error { blockchainController := blockchainapi.NewBlockchainController(blockchainApi, log) - chatStoragePath := filepath.Join(cfg.Proxy.StoragePath, "chat") - chatStorage := proxyapi.NewChatStorage(chatStoragePath) + var chatStorage proxyapi.ChatStorageInterface + if cfg.Proxy.StoreChatContext { + chatStoragePath := filepath.Join(cfg.Proxy.StoragePath, "chats") + chatStorage = proxyapi.NewChatStorage(chatStoragePath) + } else { + log.Warnf("chat context storage is disabled") + chatStorage = proxyapi.NewNoOpChatStorage() + } + proxyController := proxyapi.NewProxyController(proxyRouterApi, aiEngine, chatStorage) walletController := walletapi.NewWalletController(wallet) systemController := system.NewSystemController(&cfg, wallet, sysConfig, appStartTime, chainID, log) diff --git a/proxy-router/docs/docs.go b/proxy-router/docs/docs.go index e0500907..368b7027 100644 --- a/proxy-router/docs/docs.go +++ b/proxy-router/docs/docs.go @@ -1093,6 +1093,56 @@ const docTemplate = `{ } } }, + "/v1/chats": { + "get": { + "produces": [ + "application/json" + ], + "tags": [ + "chat" + ], + "summary": "Get all chats stored in the system", + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/proxyapi.Chat" + } + } + } + } + } + }, + "/v1/chats/{id}": { + "get": { + "produces": [ + "application/json" + ], + "tags": [ + "chat" + ], + "summary": "Get chat by id", + "parameters": [ + { + "type": "string", + "description": "Chat ID", + "name": "id", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/proxyapi.ChatHistory" + } + } + } + } + }, "/v1/models": { "get": { "produces": [ @@ -1272,6 +1322,23 @@ const docTemplate = `{ } } }, + "proxyapi.Chat": { + "type": "object", + "properties": { + "chatId": { + "type": "string" + }, + "createdAt": { + "type": "integer" + }, + "modelId": { + "type": "string" + }, + "title": { + "type": "string" + } + } + }, "proxyapi.ChatCompletionChoice": { "type": "object", "properties": { @@ -1370,6 +1437,43 @@ const docTemplate = `{ } } }, + "proxyapi.ChatHistory": { + "type": "object", + "properties": { + "messages": { + "type": "array", + "items": { + "$ref": "#/definitions/proxyapi.ChatMessage" + } + }, + "modelId": { + "type": "string" + }, + "title": { + "type": "string" + } + } + }, + "proxyapi.ChatMessage": { + "type": "object", + "properties": { + "isImageContent": { + "type": "boolean" + }, + "prompt": { + "$ref": "#/definitions/proxyapi.OpenAiCompletitionRequest" + }, + "promptAt": { + "type": "integer" + }, + "response": { + "type": "string" + }, + "responseAt": { + "type": "integer" + } + } + }, "proxyapi.ChatMessageImageURL": { "type": "object", "properties": { diff --git a/proxy-router/docs/swagger.json b/proxy-router/docs/swagger.json index cf46038e..0b202714 100644 --- a/proxy-router/docs/swagger.json +++ b/proxy-router/docs/swagger.json @@ -1086,6 +1086,117 @@ } } }, + "/v1/chats": { + "get": { + "produces": [ + "application/json" + ], + "tags": [ + "chat" + ], + "summary": "Get all chats stored in the system", + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/proxyapi.Chat" + } + } + } + } + } + }, + "/v1/chats/{id}": { + "get": { + "produces": [ + "application/json" + ], + "tags": [ + "chat" + ], + "summary": "Get chat by id", + "parameters": [ + { + "type": "string", + "description": "Chat ID", + "name": "id", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/proxyapi.ChatHistory" + } + } + } + }, + "post": { + "produces": [ + "application/json" + ], + "tags": [ + "chat" + ], + "summary": "Update chat title by id", + "parameters": [ + { + "type": "string", + "description": "Chat ID", + "name": "id", + "in": "path", + "required": true + }, + { + "description": "Chat Title", + "name": "title", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/proxyapi.UpdateChatTitleReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/proxyapi.ResultResponse" + } + } + } + }, + "delete": { + "produces": [ + "application/json" + ], + "tags": [ + "chat" + ], + "summary": "Delete chat by id from storage", + "parameters": [ + { + "type": "string", + "description": "Chat ID", + "name": "id", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/proxyapi.ResultResponse" + } + } + } + } + }, "/v1/models": { "get": { "produces": [ @@ -1265,6 +1376,23 @@ } } }, + "proxyapi.Chat": { + "type": "object", + "properties": { + "chatId": { + "type": "string" + }, + "createdAt": { + "type": "integer" + }, + "modelId": { + "type": "string" + }, + "title": { + "type": "string" + } + } + }, "proxyapi.ChatCompletionChoice": { "type": "object", "properties": { @@ -1307,12 +1435,6 @@ "content": { "type": "string" }, - "multiContent": { - "type": "array", - "items": { - "$ref": "#/definitions/proxyapi.ChatMessagePart" - } - }, "name": { "description": "This property isn't in the official documentation, but it's in\nthe documentation for the official library for python:\n- https://github.com/openai/openai-python/blob/main/chatml.md\n- https://github.com/openai/openai-cookbook/blob/main/examples/How_to_count_tokens_with_tiktoken.ipynb", "type": "string" @@ -1363,42 +1485,43 @@ } } }, - "proxyapi.ChatMessageImageURL": { + "proxyapi.ChatHistory": { "type": "object", "properties": { - "detail": { - "$ref": "#/definitions/proxyapi.ImageURLDetail" + "messages": { + "type": "array", + "items": { + "$ref": "#/definitions/proxyapi.ChatMessage" + } + }, + "modelId": { + "type": "string" }, - "url": { + "title": { "type": "string" } } }, - "proxyapi.ChatMessagePart": { + "proxyapi.ChatMessage": { "type": "object", "properties": { - "image_url": { - "$ref": "#/definitions/proxyapi.ChatMessageImageURL" + "isImageContent": { + "type": "boolean" + }, + "prompt": { + "$ref": "#/definitions/proxyapi.OpenAiCompletitionRequest" }, - "text": { + "promptAt": { + "type": "integer" + }, + "response": { "type": "string" }, - "type": { - "$ref": "#/definitions/proxyapi.ChatMessagePartType" + "responseAt": { + "type": "integer" } } }, - "proxyapi.ChatMessagePartType": { - "type": "string", - "enum": [ - "text", - "image_url" - ], - "x-enum-varnames": [ - "ChatMessagePartTypeText", - "ChatMessagePartTypeImageURL" - ] - }, "proxyapi.FinishReason": { "type": "string", "enum": [ @@ -1408,19 +1531,6 @@ "FinishReasonStop" ] }, - "proxyapi.ImageURLDetail": { - "type": "string", - "enum": [ - "high", - "low", - "auto" - ], - "x-enum-varnames": [ - "ImageURLDetailHigh", - "ImageURLDetailLow", - "ImageURLDetailAuto" - ] - }, "proxyapi.InitiateSessionReq": { "type": "object", "required": [ @@ -1556,6 +1666,14 @@ } } }, + "proxyapi.ResultResponse": { + "type": "object", + "properties": { + "result": { + "type": "boolean" + } + } + }, "proxyapi.TopLogProbs": { "type": "object", "properties": { @@ -1573,6 +1691,17 @@ } } }, + "proxyapi.UpdateChatTitleReq": { + "type": "object", + "required": [ + "title" + ], + "properties": { + "title": { + "type": "string" + } + } + }, "proxyapi.Usage": { "type": "object", "properties": { diff --git a/proxy-router/docs/swagger.yaml b/proxy-router/docs/swagger.yaml index c68ee866..59c5fb82 100644 --- a/proxy-router/docs/swagger.yaml +++ b/proxy-router/docs/swagger.yaml @@ -33,6 +33,17 @@ definitions: - timestamp - user type: object + proxyapi.Chat: + properties: + chatId: + type: string + createdAt: + type: integer + modelId: + type: string + title: + type: string + type: object proxyapi.ChatCompletionChoice: properties: delta: @@ -66,10 +77,6 @@ definitions: properties: content: type: string - multiContent: - items: - $ref: '#/definitions/proxyapi.ChatMessagePart' - type: array name: description: |- This property isn't in the official documentation, but it's in @@ -108,46 +115,36 @@ definitions: type: type: string type: object - proxyapi.ChatMessageImageURL: + proxyapi.ChatHistory: properties: - detail: - $ref: '#/definitions/proxyapi.ImageURLDetail' - url: + messages: + items: + $ref: '#/definitions/proxyapi.ChatMessage' + type: array + modelId: + type: string + title: type: string type: object - proxyapi.ChatMessagePart: + proxyapi.ChatMessage: properties: - image_url: - $ref: '#/definitions/proxyapi.ChatMessageImageURL' - text: + isImageContent: + type: boolean + prompt: + $ref: '#/definitions/proxyapi.OpenAiCompletitionRequest' + promptAt: + type: integer + response: type: string - type: - $ref: '#/definitions/proxyapi.ChatMessagePartType' + responseAt: + type: integer type: object - proxyapi.ChatMessagePartType: - enum: - - text - - image_url - type: string - x-enum-varnames: - - ChatMessagePartTypeText - - ChatMessagePartTypeImageURL proxyapi.FinishReason: enum: - stop type: string x-enum-varnames: - FinishReasonStop - proxyapi.ImageURLDetail: - enum: - - high - - low - - auto - type: string - x-enum-varnames: - - ImageURLDetailHigh - - ImageURLDetailLow - - ImageURLDetailAuto proxyapi.InitiateSessionReq: properties: bidId: @@ -252,6 +249,11 @@ definitions: user: type: string type: object + proxyapi.ResultResponse: + properties: + result: + type: boolean + type: object proxyapi.TopLogProbs: properties: bytes: @@ -263,6 +265,13 @@ definitions: token: type: string type: object + proxyapi.UpdateChatTitleReq: + properties: + title: + type: string + required: + - title + type: object proxyapi.Usage: properties: completion_tokens: @@ -1352,6 +1361,78 @@ paths: summary: Send Local Or Remote Prompt tags: - chat + /v1/chats: + get: + produces: + - application/json + responses: + "200": + description: OK + schema: + items: + $ref: '#/definitions/proxyapi.Chat' + type: array + summary: Get all chats stored in the system + tags: + - chat + /v1/chats/{id}: + delete: + parameters: + - description: Chat ID + in: path + name: id + required: true + type: string + produces: + - application/json + responses: + "200": + description: OK + schema: + $ref: '#/definitions/proxyapi.ResultResponse' + summary: Delete chat by id from storage + tags: + - chat + get: + parameters: + - description: Chat ID + in: path + name: id + required: true + type: string + produces: + - application/json + responses: + "200": + description: OK + schema: + $ref: '#/definitions/proxyapi.ChatHistory' + summary: Get chat by id + tags: + - chat + post: + parameters: + - description: Chat ID + in: path + name: id + required: true + type: string + - description: Chat Title + in: body + name: title + required: true + schema: + $ref: '#/definitions/proxyapi.UpdateChatTitleReq' + produces: + - application/json + responses: + "200": + description: OK + schema: + $ref: '#/definitions/proxyapi.ResultResponse' + summary: Update chat title by id + tags: + - chat /v1/models: get: produces: diff --git a/proxy-router/internal/config/config.go b/proxy-router/internal/config/config.go index 3fcf7510..9dd323cd 100644 --- a/proxy-router/internal/config/config.go +++ b/proxy-router/internal/config/config.go @@ -46,6 +46,7 @@ type Config struct { Address string `env:"PROXY_ADDRESS" flag:"proxy-address" validate:"required,hostname_port"` MaxCachedDests int `env:"PROXY_MAX_CACHED_DESTS" flag:"proxy-max-cached-dests" validate:"required,number" desc:"maximum number of cached destinations per proxy"` StoragePath string `env:"PROXY_STORAGE_PATH" flag:"proxy-storage-path" validate:"omitempty,dirpath" desc:"enables file storage and sets the folder path"` + StoreChatContext bool `env:"PROXY_STORE_CHAT_CONTEXT" flag:"proxy-store-chat-context" desc:"store chat context in the proxy storage"` ModelsConfigPath string `env:"MODELS_CONFIG_PATH" flag:"models-config-path" validate:"omitempty"` } System struct { diff --git a/proxy-router/internal/handlers/httphandlers/http.go b/proxy-router/internal/handlers/httphandlers/http.go index 6f96504d..c5de7754 100644 --- a/proxy-router/internal/handlers/httphandlers/http.go +++ b/proxy-router/internal/handlers/httphandlers/http.go @@ -55,7 +55,7 @@ func CreateHTTPServer(log lib.ILogger, controllers ...Registrable) *gin.Engine { r.Use(cors.New(cors.Config{ AllowOrigins: []string{"*"}, - AllowHeaders: []string{"session_id", "model_id"}, + AllowHeaders: []string{"session_id", "model_id", "chat_id"}, })) // r.Use(RequestLogger(log)) diff --git a/proxy-router/internal/proxyapi/chat_requests.go b/proxy-router/internal/proxyapi/chat_requests.go index 23ccb273..ad5c08f1 100644 --- a/proxy-router/internal/proxyapi/chat_requests.go +++ b/proxy-router/internal/proxyapi/chat_requests.go @@ -27,9 +27,9 @@ type ChatMessagePart struct { } type ChatCompletionMessage struct { - Role string `json:"role"` - Content string `json:"content"` - MultiContent []ChatMessagePart + Role string `json:"role"` + Content string `json:"content"` + // MultiContent []ChatMessagePart `json:"multiContent",omitempty` // This property isn't in the official documentation, but it's in // the documentation for the official library for python: diff --git a/proxy-router/internal/proxyapi/chat_storage.go b/proxy-router/internal/proxyapi/chat_storage.go index 7c2c442d..e2bf00e9 100644 --- a/proxy-router/internal/proxyapi/chat_storage.go +++ b/proxy-router/internal/proxyapi/chat_storage.go @@ -12,6 +12,34 @@ import ( "github.com/sashabaranov/go-openai" ) +type ChatStorageInterface interface { + LoadChatFromFile(chatID string) (*ChatHistory, error) + StorePromptResponseToFile(chatID string, sessionID string, modelID string, prompt openai.ChatCompletionRequest, responses []interface{}, promptAt time.Time, responseAt time.Time) error + GetChats() []Chat + DeleteChat(chatID string) error + UpdateChatTitle(chatID string, title string) error +} + +type ChatHistory struct { + Title string `json:"title"` + ModelId string `json:"modelId"` + Messages []ChatMessage `json:"messages"` +} + +type ChatMessage struct { + Prompt OpenAiCompletitionRequest `json:"prompt"` + Response string `json:"response"` + PromptAt int64 `json:"promptAt"` + ResponseAt int64 `json:"responseAt"` + IsImageContent bool `json:"isImageContent"` +} +type Chat struct { + ChatID string `json:"chatId"` + ModelID string `json:"modelId"` + Title string `json:"title"` + CreatedAt int64 `json:"createdAt"` +} + // ChatStorage handles storing conversations to files. type ChatStorage struct { dirPath string // Directory path to store the files @@ -27,27 +55,19 @@ func NewChatStorage(dirPath string) *ChatStorage { } // StorePromptResponseToFile stores the prompt and response to a file. -func (cs *ChatStorage) StorePromptResponseToFile(identifier string, isSession bool, prompt interface{}, responses []interface{}, promptAt, responseAt time.Time) error { - var dir string - if isSession { - dir = "sessions" - } else { - dir = "models" - } - - path := filepath.Join(cs.dirPath, dir) - if err := os.MkdirAll(path, os.ModePerm); err != nil { +func (cs *ChatStorage) StorePromptResponseToFile(identifier string, sessionId string, modelId string, prompt openai.ChatCompletionRequest, responses []interface{}, promptAt, responseAt time.Time) error { + if err := os.MkdirAll(cs.dirPath, os.ModePerm); err != nil { return err } - filePath := filepath.Join(path, identifier+".json") + filePath := filepath.Join(cs.dirPath, identifier+".json") cs.initFileMutex(filePath) // Lock the file mutex cs.fileMutexes[filePath].Lock() defer cs.fileMutexes[filePath].Unlock() - var data []map[string]interface{} + var data ChatHistory if _, err := os.Stat(filePath); err == nil { fileContent, err := os.ReadFile(filePath) if err != nil { @@ -59,6 +79,7 @@ func (cs *ChatStorage) StorePromptResponseToFile(identifier string, isSession bo } response := "" + var isImageContent bool = false for _, r := range responses { switch v := r.(type) { case ChatCompletionResponse: @@ -67,26 +88,50 @@ func (cs *ChatStorage) StorePromptResponseToFile(identifier string, isSession bo response += fmt.Sprintf("%v", v.Choices[0].Delta.Content) case aiengine.ProdiaGenerationResult: response += fmt.Sprintf("%v", v.ImageUrl) + isImageContent = true case *aiengine.ProdiaGenerationResult: response += fmt.Sprintf("%v", v.ImageUrl) + isImageContent = true default: return fmt.Errorf("unknown response type") } } - switch p := prompt.(type) { - case *aiengine.ProdiaGenerationRequest: - p.ApiKey = "REDACTED" + messages := make([]ChatCompletionMessage, 0) + for _, r := range prompt.Messages { + messages = append(messages, ChatCompletionMessage{ + Content: r.Content, + Role: r.Role, + }) + } + + p := OpenAiCompletitionRequest{ + Messages: messages, + Model: prompt.Model, + MaxTokens: prompt.MaxTokens, + Temperature: prompt.Temperature, + TopP: prompt.TopP, + FrequencyPenalty: prompt.FrequencyPenalty, + PresencePenalty: prompt.PresencePenalty, + Stop: prompt.Stop, } - newEntry := map[string]interface{}{ - "prompt": prompt, - "response": response, - "promptAt": promptAt.UnixMilli(), - "responseAt": responseAt.UnixMilli(), + newEntry := ChatMessage{ + Prompt: p, + Response: response, + PromptAt: promptAt.Unix(), + ResponseAt: responseAt.Unix(), + IsImageContent: isImageContent, } - data = append(data, newEntry) + if data.Messages == nil && len(data.Messages) == 0 { + data.ModelId = modelId + data.Title = prompt.Messages[0].Content + } + + newMessages := append(data.Messages, newEntry) + data.Messages = newMessages + updatedContent, err := json.MarshalIndent(data, "", " ") if err != nil { return err @@ -99,9 +144,124 @@ func (cs *ChatStorage) StorePromptResponseToFile(identifier string, isSession bo return nil } +func (cs *ChatStorage) GetChats() []Chat { + var chats []Chat + files, err := os.ReadDir(cs.dirPath) + if err != nil { + return chats + } + + for _, file := range files { + if file.IsDir() { + continue + } + + chatID := file.Name() + chatID = chatID[:len(chatID)-5] + + fileContent, err := cs.LoadChatFromFile(chatID) + if err != nil { + continue + } + chats = append(chats, Chat{ + ChatID: chatID, + Title: fileContent.Title, + CreatedAt: fileContent.Messages[0].PromptAt, + ModelID: fileContent.ModelId, + }) + } + + return chats +} + +func (cs *ChatStorage) DeleteChat(identifier string) error { + filePath := filepath.Join(cs.dirPath, identifier+".json") + cs.initFileMutex(filePath) + + cs.fileMutexes[filePath].Lock() + defer cs.fileMutexes[filePath].Unlock() + + if err := os.Remove(filePath); err != nil { + return err + } + return nil +} + +func (cs *ChatStorage) UpdateChatTitle(identifier string, title string) error { + chat, err := cs.LoadChatFromFile(identifier) + if err != nil { + return err + } + chat.Title = title + + filePath := filepath.Join(cs.dirPath, identifier+".json") + cs.initFileMutex(filePath) + + cs.fileMutexes[filePath].Lock() + defer cs.fileMutexes[filePath].Unlock() + + updatedContent, err := json.MarshalIndent(chat, "", " ") + if err != nil { + return err + } + + if err := os.WriteFile(filePath, updatedContent, 0644); err != nil { + return err + } + + return nil +} + +func (cs *ChatStorage) LoadChatFromFile(identifier string) (*ChatHistory, error) { + filePath := filepath.Join(cs.dirPath, identifier+".json") + cs.initFileMutex(filePath) + + cs.fileMutexes[filePath].Lock() + defer cs.fileMutexes[filePath].Unlock() + + var data ChatHistory + fileContent, err := os.ReadFile(filePath) + if err != nil { + return &data, err + } + + if err := json.Unmarshal(fileContent, &data); err != nil { + fmt.Println("Error unmarshalling file content:", err) + return nil, err + } + + return &data, nil +} + // initFileMutex initializes a mutex for the file if not already present. func (cs *ChatStorage) initFileMutex(filePath string) { if _, exists := cs.fileMutexes[filePath]; !exists { cs.fileMutexes[filePath] = &sync.Mutex{} } } + +type NoOpChatStorage struct{} + +func NewNoOpChatStorage() *NoOpChatStorage { + return &NoOpChatStorage{} +} + +func (cs *NoOpChatStorage) LoadChatFromFile(chatID string) (*ChatHistory, error) { + return nil, nil +} + +func (cs *NoOpChatStorage) StorePromptResponseToFile(chatID string, sessionID string, modelID string, prompt openai.ChatCompletionRequest, responses []interface{}, promptAt time.Time, responseAt time.Time) error { + return nil +} + +func (cs *NoOpChatStorage) GetChats() []Chat { + return []Chat{} +} + +func (cs *NoOpChatStorage) DeleteChat(chatID string) error { + return nil +} + +func (cs *NoOpChatStorage) UpdateChatTitle(chatID string, title string) error { + return nil +} diff --git a/proxy-router/internal/proxyapi/controller_http.go b/proxy-router/internal/proxyapi/controller_http.go index 3d1e38a4..c70a3f7c 100644 --- a/proxy-router/internal/proxyapi/controller_http.go +++ b/proxy-router/internal/proxyapi/controller_http.go @@ -1,6 +1,7 @@ package proxyapi import ( + "crypto/rand" "encoding/json" "fmt" "net/http" @@ -8,6 +9,7 @@ import ( constants "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/aiengine" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/blockchainapi/structs" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" "github.com/gin-gonic/gin" @@ -17,10 +19,10 @@ import ( type ProxyController struct { service *ProxyServiceSender aiEngine *aiengine.AiEngine - chatStorage *ChatStorage + chatStorage ChatStorageInterface } -func NewProxyController(service *ProxyServiceSender, aiEngine *aiengine.AiEngine, chatStorage *ChatStorage) *ProxyController { +func NewProxyController(service *ProxyServiceSender, aiEngine *aiengine.AiEngine, chatStorage ChatStorageInterface) *ProxyController { c := &ProxyController{ service: service, aiEngine: aiEngine, @@ -34,6 +36,10 @@ func (s *ProxyController) RegisterRoutes(r interfaces.Router) { r.POST("/proxy/sessions/initiate", s.InitiateSession) r.POST("/v1/chat/completions", s.Prompt) r.GET("/v1/models", s.Models) + r.GET("/v1/chats", s.GetChats) + r.GET("/v1/chats/:id", s.GetChat) + r.DELETE("/v1/chats/:id", s.DeleteChat) + r.POST("/v1/chats/:id", s.UpdateChatTitle) } // InitiateSession godoc @@ -89,26 +95,55 @@ func (c *ProxyController) Prompt(ctx *gin.Context) { return } - // Record the prompt time + var chatID lib.Hash + if (head.ChatID != lib.Hash{}) { + chatID = head.ChatID + } else { + bytes := make([]byte, 32) + _, err := rand.Read(bytes[:]) + if err != nil { + err = fmt.Errorf("error generating chat id: %w", err) + ctx.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + } + + chatID = lib.Hash{} + chatID.SetBytes(bytes) + } + promptAt := time.Now() + chatHistory, errHistory := c.chatStorage.LoadChatFromFile(chatID.Hex()) + if errHistory != nil { + c.service.log.Warn("No chat history found for chat id", chatID.Hex()) + } if (head.SessionID == lib.Hash{}) { body.Stream = ctx.GetHeader(constants.HEADER_ACCEPT) == constants.CONTENT_TYPE_JSON modelId := head.ModelID.Hex() - prompt, t := c.GetBodyForLocalPrompt(modelId, &body) + apiType := c.GetLocalPromptApiType(modelId) + responseAt := time.Now() - if t == "openai" { - res, _ := c.aiEngine.PromptCb(ctx, &body) + if apiType == "openai" { + prompt := c.GetLocalOpenAiPrompt(modelId, body) + var newBody openai.ChatCompletionRequest + if chatHistory != nil { + newBody = c.AppendChatHistory(chatHistory, prompt) + } else { + newBody = prompt + } + + res, _ := c.aiEngine.PromptCb(ctx, &newBody) responses = res.([]interface{}) - if err := c.chatStorage.StorePromptResponseToFile(modelId, false, prompt, responses, promptAt, responseAt); err != nil { + if err := c.chatStorage.StorePromptResponseToFile(chatID.Hex(), "", modelId, prompt, responses, promptAt, responseAt); err != nil { fmt.Println("Error storing prompt and responses:", err) } } - if t == "prodia" { + if apiType == "prodia" { + prompt := c.GetLocalProdiaPrompt(modelId, body) + var prodiaResponses []interface{} - c.aiEngine.PromptProdiaImage(ctx, prompt.(*aiengine.ProdiaGenerationRequest), func(completion interface{}) error { + c.aiEngine.PromptProdiaImage(ctx, &prompt, func(completion interface{}) error { ctx.Writer.Header().Set(constants.HEADER_CONTENT_TYPE, constants.CONTENT_TYPE_EVENT_STREAM) marshalledResponse, err := json.Marshal(completion) if err != nil { @@ -121,7 +156,9 @@ func (c *ProxyController) Prompt(ctx *gin.Context) { ctx.Writer.Flush() prodiaResponses = append(prodiaResponses, completion) - if err := c.chatStorage.StorePromptResponseToFile(modelId, false, prompt, prodiaResponses, promptAt, responseAt); err != nil { + + body.Model = prompt.Model + if err := c.chatStorage.StorePromptResponseToFile(chatID.Hex(), "", modelId, body, prodiaResponses, promptAt, responseAt); err != nil { fmt.Println("Error storing prompt and responses:", err) } return nil @@ -130,7 +167,13 @@ func (c *ProxyController) Prompt(ctx *gin.Context) { return } - res, err := c.service.SendPrompt(ctx, ctx.Writer, &body, head.SessionID.Hash) + var newBody openai.ChatCompletionRequest + if chatHistory != nil { + newBody = c.AppendChatHistory(chatHistory, body) + } else { + newBody = body + } + res, err := c.service.SendPrompt(ctx, ctx.Writer, &newBody, head.SessionID.Hash) if err != nil { ctx.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) return @@ -138,8 +181,15 @@ func (c *ProxyController) Prompt(ctx *gin.Context) { responses = res.([]interface{}) responseAt := time.Now() - sessionIdStr := head.SessionID.Hex() - if err := c.chatStorage.StorePromptResponseToFile(sessionIdStr, true, body, responses, promptAt, responseAt); err != nil { + sessionID := head.SessionID.Hex() + + modelId := "" + session, ok := c.service.sessionStorage.GetSession(sessionID) + if ok { + modelId = session.ModelID + } + + if err := c.chatStorage.StorePromptResponseToFile(chatID.Hex(), sessionID, modelId, body, responses, promptAt, responseAt); err != nil { fmt.Println("Error storing prompt and responses:", err) } return @@ -161,35 +211,165 @@ func (c *ProxyController) Models(ctx *gin.Context) { ctx.JSON(http.StatusOK, models) } -func (c *ProxyController) GetBodyForLocalPrompt(modelId string, req *openai.ChatCompletionRequest) (interface{}, string) { +// GetChats godoc +// +// @Summary Get all chats stored in the system +// @Tags chat +// @Produce json +// @Success 200 {object} []proxyapi.Chat +// @Router /v1/chats [get] +func (c *ProxyController) GetChats(ctx *gin.Context) { + chats := c.chatStorage.GetChats() + ctx.JSON(http.StatusOK, chats) +} + +// GetChat godoc +// +// @Summary Get chat by id +// @Tags chat +// @Produce json +// @Param id path string true "Chat ID" +// @Success 200 {object} proxyapi.ChatHistory +// @Router /v1/chats/{id} [get] +func (c *ProxyController) GetChat(ctx *gin.Context) { + var params structs.PathHex32ID + err := ctx.ShouldBindUri(¶ms) + if err != nil { + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) + return + } + + chat, err := c.chatStorage.LoadChatFromFile(params.ID.Hex()) + if err != nil { + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) + return + } + ctx.JSON(http.StatusOK, chat) +} + +// DeleteChat godoc +// +// @Summary Delete chat by id from storage +// @Tags chat +// @Produce json +// @Param id path string true "Chat ID" +// @Success 200 {object} proxyapi.ResultResponse +// @Router /v1/chats/{id} [delete] +func (c *ProxyController) DeleteChat(ctx *gin.Context) { + var params structs.PathHex32ID + err := ctx.ShouldBindUri(¶ms) + if err != nil { + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) + return + } + + err = c.chatStorage.DeleteChat(params.ID.Hex()) + if err != nil { + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) + return + } + ctx.JSON(http.StatusOK, gin.H{"result": true}) +} + +// UpdateChatTitle godoc +// +// @Summary Update chat title by id +// @Tags chat +// @Produce json +// @Param id path string true "Chat ID" +// @Param title body proxyapi.UpdateChatTitleReq true "Chat Title" +// @Success 200 {object} proxyapi.ResultResponse +// @Router /v1/chats/{id} [post] +func (c *ProxyController) UpdateChatTitle(ctx *gin.Context) { + var params structs.PathHex32ID + err := ctx.ShouldBindUri(¶ms) + if err != nil { + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) + return + } + + var req UpdateChatTitleReq + err = ctx.ShouldBindJSON(&req) + if err != nil { + c.service.log.Errorf("error binding json: %s", err) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) + return + } + + err = c.chatStorage.UpdateChatTitle(params.ID.Hex(), req.Title) + if err != nil { + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) + return + } + ctx.JSON(http.StatusOK, gin.H{"result": true}) +} + +func (c *ProxyController) GetLocalOpenAiPrompt(modelId string, req openai.ChatCompletionRequest) openai.ChatCompletionRequest { if modelId == "" { - req.Model = "llama2" - return req, "openai" + return req } ids, models := c.aiEngine.GetModelsConfig() for i, model := range models { if ids[i] == modelId { - if model.ApiType == "openai" { - req.Model = model.ModelName - return req, model.ApiType - } + req.Model = model.ModelName + return req + } + } - if model.ApiType == "prodia" { - prompt := &aiengine.ProdiaGenerationRequest{ - Model: model.ModelName, - Prompt: req.Messages[0].Content, - ApiUrl: model.ApiURL, - ApiKey: model.ApiKey, - } - return prompt, model.ApiType + req.Model = "llama2" + return req +} + +func (c *ProxyController) GetLocalProdiaPrompt(modelId string, req openai.ChatCompletionRequest) aiengine.ProdiaGenerationRequest { + ids, models := c.aiEngine.GetModelsConfig() + + for i, model := range models { + if ids[i] == modelId { + prompt := aiengine.ProdiaGenerationRequest{ + Model: model.ModelName, + Prompt: req.Messages[0].Content, + ApiUrl: model.ApiURL, + ApiKey: model.ApiKey, } + return prompt + } + } + return aiengine.ProdiaGenerationRequest{} +} + +func (c *ProxyController) GetLocalPromptApiType(modelId string) string { + if modelId == "" { + return "openai" + } - return req, "openai" + ids, models := c.aiEngine.GetModelsConfig() + + for i, model := range models { + if ids[i] == modelId { + return model.ApiType } } - req.Model = "llama2" - return req, "openai" + return "openai" +} + +func (c *ProxyController) AppendChatHistory(chatHistory *ChatHistory, req openai.ChatCompletionRequest) openai.ChatCompletionRequest { + messagesWithHistory := make([]openai.ChatCompletionMessage, 0) + for _, chat := range chatHistory.Messages { + message := openai.ChatCompletionMessage{ + Role: chat.Prompt.Messages[0].Role, + Content: chat.Prompt.Messages[0].Content, + } + messagesWithHistory = append(messagesWithHistory, message) + messagesWithHistory = append(messagesWithHistory, openai.ChatCompletionMessage{ + Role: "assistant", + Content: chat.Response, + }) + } + + messagesWithHistory = append(messagesWithHistory, req.Messages...) + req.Messages = messagesWithHistory + return req } diff --git a/proxy-router/internal/proxyapi/proxy_receiver.go b/proxy-router/internal/proxyapi/proxy_receiver.go index 11182487..a92c564a 100644 --- a/proxy-router/internal/proxyapi/proxy_receiver.go +++ b/proxy-router/internal/proxyapi/proxy_receiver.go @@ -103,8 +103,9 @@ func (s *ProxyReceiver) SessionPrompt(ctx context.Context, requestID string, use if session.ModelApiType == "prodia" { modelConfig := s.modelConfigLoader.ModelConfigFromID(session.ModelID) + lastMessage := req.Messages[len(req.Messages)-1] prodiaReq := &aiengine.ProdiaGenerationRequest{ - Prompt: req.Messages[0].Content, + Prompt: lastMessage.Content, Model: session.ModelName, ApiUrl: modelConfig.ApiURL, ApiKey: modelConfig.ApiKey, diff --git a/proxy-router/internal/proxyapi/requests.go b/proxy-router/internal/proxyapi/requests.go index 7664b796..93bc4299 100644 --- a/proxy-router/internal/proxyapi/requests.go +++ b/proxy-router/internal/proxyapi/requests.go @@ -24,6 +24,7 @@ type PromptReq struct { type PromptHead struct { SessionID lib.Hash `header:"session_id" validate:"hex32"` ModelID lib.Hash `header:"model_id" validate:"hex32"` + ChatID lib.Hash `header:"chat_id" validate:"hex32"` } type InferenceRes struct { @@ -31,3 +32,11 @@ type InferenceRes struct { Message json.RawMessage `json:"message" validate:"required"` Timestamp uint64 `json:"timestamp" validate:"required,timestamp"` } + +type UpdateChatTitleReq struct { + Title string `json:"title" validate:"required"` +} + +type ResultResponse struct { + Result bool `json:"result"` +} diff --git a/ui-desktop/src/main/src/client/apiGateway.js b/ui-desktop/src/main/src/client/apiGateway.js index e438e766..3c08c0cf 100644 --- a/ui-desktop/src/main/src/client/apiGateway.js +++ b/ui-desktop/src/main/src/client/apiGateway.js @@ -114,6 +114,108 @@ const getTokenSupply = async () => { } } +/** + * + * @returns {{ + * title: string, + * chatId: string[] + * }} + */ +const getChatHistoryTitles = async () => { + try { + const path = `${config.chain.localProxyRouterUrl}/v1/chats`; + const response = await fetch(path); + const body = await response.json(); + return body; + } + catch (e) { + console.log("Error", e) + return null; + } +} + +/** + * @typedef ChatHistory + * @property {string} title + * @property {string} modelId + * @property {string} sessionId + * @property {ChatMessage[]} messages + */ + +/** + * @typedef ChatMessage + * @property {string} response + * @property {string} prompt + * @property {number} promptAt + * @property {number} responseAt + */ + +/** + * @typedef ChatPrompt + * @property {string} model + * @property {{ + * role: string, + * content: string + * }[]} messages + */ + +/** + * @param {string} chatId + * @returns {Promise} +*/ +const getChatHistory = async (chatId) => { + try { + const path = `${config.chain.localProxyRouterUrl}/v1/chats/${chatId}`; + const response = await fetch(path); + const body = await response.json(); + return body; + } + catch (e) { + console.log("Error", e) + return null; + } +} + +/** + * @param {string} chatId + * @returns {Promise} +*/ +const deleteChatHistory = async (chatId) => { + try { + const path = `${config.chain.localProxyRouterUrl}/v1/chats/${chatId}`; + const response = await fetch(path, { + method: "DELETE", + }); + const body = await response.json(); + return body.result; + } + catch (e) { + console.log("Error", e) + return false; + } + } + + /** + * @param {string} chatId + * @param {string} title + * @returns {Promise} +*/ +const updateChatHistoryTitle = async ({ id, title}) => { + try { + const path = `${config.chain.localProxyRouterUrl}/v1/chats/${id}`; + const response = await fetch(path, { + method: "POST", + body: JSON.stringify({ title }), + }); + const body = await response.json(); + return body.result; + } + catch (e) { + console.log("Error", e) + return false; + } + } + export default { getAllModels, getBalances, @@ -122,5 +224,9 @@ export default { getTransactions, getMorRate, getTodaysBudget, - getTokenSupply + getTokenSupply, + getChatHistoryTitles, + getChatHistory, + updateChatHistoryTitle, + deleteChatHistory, } \ No newline at end of file diff --git a/ui-desktop/src/main/src/client/handlers/no-core.js b/ui-desktop/src/main/src/client/handlers/no-core.js index a2cbcfdf..14c16273 100644 --- a/ui-desktop/src/main/src/client/handlers/no-core.js +++ b/ui-desktop/src/main/src/client/handlers/no-core.js @@ -15,7 +15,6 @@ import { setKey } from '../settings' import apiGateway from '../apiGateway'; -import chatHistory from '../history/chat-history'; const validatePassword = (data) => auth.isValidPassword(data) @@ -116,5 +115,4 @@ export default { getAutoAdjustPriceData, setAutoAdjustPriceData, ...apiGateway, - ...chatHistory } diff --git a/ui-desktop/src/main/src/client/history/chat-history.js b/ui-desktop/src/main/src/client/history/chat-history.js deleted file mode 100644 index 87f5e2c0..00000000 --- a/ui-desktop/src/main/src/client/history/chat-history.js +++ /dev/null @@ -1,45 +0,0 @@ -import dbManager from '../database'; - -const getChatHitory = async (sessionId) => { - return await dbManager.getDb().collection('chat').findAsync({ sessionId }); -} - -const saveChatHistory = async ({ sessionId, messages }) => { - const db = dbManager.getDb(); - const collection = db.collection('chat'); - - const items = await getChatHitory(sessionId); - - if (!items.length) { - await collection.insert({ sessionId, messages }); - return; - } - - await collection.update({ sessionId }, { messages, sessionId }, { upsert: true }); -} - -const getTitles = async () => { - return await dbManager.getDb().collection('chat-title').findAsync({}); -} - -const saveTitle = async (data) => { - const db = dbManager.getDb(); - const collection = db.collection('chat-title'); - await collection.insert({ _id: data.sessionId, ...data }); -} - -const deleteTitle = async (id) => { - const db = dbManager.getDb(); - await db.collection('chat-title').remove({ _id: id }) - await db.collection('chat').remove({ sessionId: id }) -} - -const updateChatTitle = async ({ id, title }) => { - const db = dbManager.getDb(); - const collection = db.collection('chat-title'); - const { _id, ...stored } = await collection.findAsync({ _id: id }) - const data = { ...stored[0], title }; - await collection.update({ _id: id }, data); -} - -export default { getChatHitory, saveChatHistory, getTitles, saveTitle, deleteTitle, updateChatTitle }; \ No newline at end of file diff --git a/ui-desktop/src/main/src/client/subscriptions/no-core.js b/ui-desktop/src/main/src/client/subscriptions/no-core.js index 54efabb0..abc90deb 100644 --- a/ui-desktop/src/main/src/client/subscriptions/no-core.js +++ b/ui-desktop/src/main/src/client/subscriptions/no-core.js @@ -32,12 +32,10 @@ const listeners = { "get-todays-budget": handlers.getTodaysBudget, "get-supply": handlers.getTokenSupply, // Chat history - "get-chat-history": handlers.getChatHitory, - "save-chat-history": handlers.saveChatHistory, - "get-chat-titles": handlers.getTitles, - "save-chat-title": handlers.saveTitle, - "update-chat-title": handlers.updateChatTitle, - "delete-chat-title": handlers.deleteTitle + "get-chat-history-titles": handlers.getChatHistoryTitles, + "get-chat-history": handlers.getChatHistory, + "delete-chat-history": handlers.deleteChatHistory, + "update-chat-history-title": handlers.updateChatHistoryTitle, } // Subscribe to messages where no core has to react diff --git a/ui-desktop/src/renderer/src/client/index.jsx b/ui-desktop/src/renderer/src/client/index.jsx index c92c6a57..d3372c37 100644 --- a/ui-desktop/src/renderer/src/client/index.jsx +++ b/ui-desktop/src/renderer/src/client/index.jsx @@ -140,12 +140,10 @@ const createClient = function (createStore) { getTodaysBudget: utils.forwardToMainProcess('get-todays-budget'), getTokenSupply: utils.forwardToMainProcess('get-supply'), // Chat History + getChatHistoryTitles: utils.forwardToMainProcess('get-chat-history-titles'), getChatHistory: utils.forwardToMainProcess('get-chat-history', 750000), - saveChatHistory: utils.forwardToMainProcess('save-chat-history', 750000), - getTitles: utils.forwardToMainProcess('get-chat-titles', 750000), - saveTitle: utils.forwardToMainProcess('save-chat-title', 750000), - deleteTitle: utils.forwardToMainProcess('delete-chat-title', 750000), - updateChatTitle: utils.forwardToMainProcess("update-chat-title", 750000), + deleteChatHistory: utils.forwardToMainProcess('delete-chat-history', 750000), + updateChatHistoryTitle: utils.forwardToMainProcess('update-chat-history-title', 750000), } const api = { diff --git a/ui-desktop/src/renderer/src/components/chat/Chat.tsx b/ui-desktop/src/renderer/src/components/chat/Chat.tsx index 32c20237..8314c276 100644 --- a/ui-desktop/src/renderer/src/components/chat/Chat.tsx +++ b/ui-desktop/src/renderer/src/components/chat/Chat.tsx @@ -31,14 +31,16 @@ import './Chat.css' import { ChatHistory } from './ChatHistory'; import Spinner from 'react-bootstrap/Spinner'; import ModelSelectionModal from './modals/ModelSelectionModal'; -import { parseDataChunk, makeId, getColor, isClosed } from './utils'; +import { parseDataChunk, makeId, getColor, isClosed, generateHashId } from './utils'; import { Cooldown } from './Cooldown'; import ImageViewer from "react-simple-image-viewer"; import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter' import { coldarkDark } from 'react-syntax-highlighter/dist/esm/styles/prism' +import { ChatData, ChatHistoryInterface, ChatTitle, HistoryMessage } from './interfaces'; + let abort = false; let cancelScroll = false; -const userMessage = { user: 'Me', role: "user", icon: "M", color: "#20dc8e" }; +const userMessage = { user: 'Me', role: "user", icon: "M", color: getColor("M") }; const Chat = (props) => { const chatBlockRef = useRef(null); @@ -56,7 +58,7 @@ const Chat = (props) => { const [activeSession, setActiveSession] = useState(undefined); const [chainData, setChainData] = useState(null); - const [sessionTitles, setSessionTitles] = useState<{ sessionId: string, title: string, createdAt: any }[]>([]); + const [chatData, setChatsData] = useState([]); const [openChangeModal, setOpenChangeModal] = useState(false); const [isReadonly, setIsReadonly] = useState(false); @@ -66,7 +68,7 @@ const Chat = (props) => { const [requiredStake, setRequiredStake] = useState<{ min: Number, max: number }>({ min: 0, max: 0 }) const [balances, setBalances] = useState<{ eth: Number, mor: number }>({ eth: 0, mor: 0 }); - const [chat, setChat] = useState(undefined); + const [chat, setChat] = useState(undefined); const modelName = selectedModel?.Name || "Model"; const isLocal = chat?.isLocal; @@ -78,16 +80,22 @@ const Chat = (props) => { useEffect(() => { (async () => { - const [meta, chainData, titles, userBalances] = await Promise.all([ + const [meta, chainData, chats, userBalances] = await Promise.all([ props.getMetaInfo(), props.getModelsData(), - props.client.getTitles(), + props.client.getChatHistoryTitles() as Promise, props.getBalances()]); setBalances(userBalances) setMeta(meta); setChainData(chainData) - setSessionTitles(titles.map(t => ({ ...t, title: t.title, sessionId: t._id }))); + setChatsData(chats.map(t => ({ + id: t.chatId, + title: t.title, + createdAt: new Date(t.createdAt * 1000), + modelId: t.modelId, + isLocal: chainData?.models?.find((m: any) => m.Id === t.modelId && m.hasLocal) + }))); const sessions = await props.getSessionsByUser(props.address); const openSessions = sessions.filter(s => !isClosed(s)); @@ -98,11 +106,11 @@ const Chat = (props) => { const localModel = (chainData?.models?.find((m: any) => m.hasLocal)); if (localModel) { setSelectedModel(localModel); - setChat({ id: makeId(16), createdAt: new Date(), modelId: localModel.Id, isLocal: true }); + setChat({ id: generateHashId(), createdAt: new Date(), modelId: localModel.Id, isLocal: true }); } } - if(!openSessions.length) { + if (!openSessions.length) { useLocalModelChat(); return; } @@ -110,21 +118,21 @@ const Chat = (props) => { const latestSession = openSessions[0]; const latestSessionModel = (chainData.models.find((m: any) => m.Id == latestSession.ModelAgentId)); - if(!latestSessionModel) { + if (!latestSessionModel) { useLocalModelChat(); return; } const openBid = latestSessionModel?.bids?.find(b => b.Id == latestSession.BidID); - if(!openBid) { + if (!openBid) { useLocalModelChat(); } setSelectedModel(latestSessionModel); setSelectedBid(openBid); setActiveSession(latestSession); - setChat({ id: makeId(16), createdAt: new Date(), modelId: latestSessionModel.ModelAgentId }); + setChat({ id: generateHashId(), createdAt: new Date(), modelId: latestSessionModel.ModelAgentId }); })().then(() => { setIsLoading(false); }) @@ -158,8 +166,8 @@ const Chat = (props) => { const onOpenSession = async (isReopen) => { setIsLoading(true); - if(!isReopen) { - setChat({ id: makeId(16), createdAt: new Date(), modelId: selectedModel.Id }); + if (!isReopen) { + setChat({ id: generateHashId(), createdAt: new Date(), modelId: selectedModel.Id }); } const prices = selectedModel.bids.map(x => x.PricePerSecond); @@ -186,10 +194,22 @@ const Chat = (props) => { } } - const loadHistory = async (id) => { + const loadChatHistory = async (chatId: string) => { try { - const history = await props.client.getChatHistory(id); - setMessages(history.length ? (history[0].messages || []) : []); + const history: ChatHistoryInterface = await props.client.getChatHistory(chatId); + const messages: HistoryMessage[] = []; + + const model = chainData.models.find((m) => m.Id == history.modelId); + history.messages.forEach((m) => { + const modelName = model.Name || "Model"; + + const aiIcon = modelName.toUpperCase()[0]; + const aiColor = getColor(aiIcon); + + messages.push({ id: makeId(16), text: m.prompt.messages[0].content, user: userMessage.user, role: userMessage.role, icon: userMessage.icon, color: userMessage.color }); + messages.push({ id: makeId(16), text: m.response, user: modelName, role: "assistant", icon: aiIcon, color: aiColor, isImageContent: m.isImageContent }); + }); + setMessages(messages); } catch (e) { props.toasts.toast('error', 'Failed to load chat history'); @@ -210,36 +230,38 @@ const Chat = (props) => { const localModel = (chainData?.models?.find((m: any) => m.hasLocal)); if (localModel) { setSelectedModel(localModel); - setChat({ id: makeId(16), createdAt: new Date(), modelId: localModel.Id, isLocal: true }); + setChat({ id: generateHashId(), createdAt: new Date(), modelId: localModel.Id, isLocal: true }); } setMessages([]); } } - const selectSession = async (sessionData) => { - console.log("select-session", sessionData) + const selectChat = async (chatData: ChatData) => { + console.log("select-session", chatData) - if(!sessionData.modelId) { + const modelId = chatData.modelId; + if (!modelId) { + console.warn("Model ID is missed"); return; } // toggleDrawer(); - setChat({ ...sessionData}) + setChat({ ...chatData }) - if(sessionData.isLocal) { - await loadHistory(sessionData.id); + if (chatData.isLocal) { + await loadChatHistory(chatData.id); return } const openSessions = sessions.filter(s => !isClosed(s)); // search open session by model ID - const openSession = openSessions.find(s => s.ModelAgentId == sessionData.modelId); + const openSession = openSessions.find(s => s.ModelAgentId == modelId); setIsReadonly(!openSession); - const selectedModel = chainData.models.find((m: any) => m.Id == sessionData.modelId); + const selectedModel = chainData.models.find((m: any) => m.Id == modelId); setSelectedModel(selectedModel); - if(openSession) { + if (openSession) { setActiveSession(openSession); const activeBid = selectedModel.bids.find((b) => b.Id == openSession.BidID); setSelectedBid(activeBid); @@ -249,7 +271,7 @@ const Chat = (props) => { setSelectedBid(undefined); } - await loadHistory(sessionData.id); + await loadChatHistory(chatData.id); setTimeout(() => scrollToBottom("smooth"), 400); } @@ -287,8 +309,6 @@ const Chat = (props) => { } const call = async (message) => { - const chatHistory = messages.map(m => ({ role: m.role, content: m.text, isImageContent: m.isImageContent })) - let memoState = [...messages, { id: makeId(16), text: value, ...userMessage }]; setMessages(memoState); scrollToBottom(); @@ -301,12 +321,12 @@ const Chat = (props) => { } else { headers["session_id"] = activeSession.Id; } + headers["chat_id"] = chat?.id; - const hasImageHistory = chatHistory.some(x => x.isImageContent); const incommingMessage = { role: "user", content: message }; const payload = { stream: true, - messages: hasImageHistory ? [incommingMessage] : [...chatHistory, incommingMessage] + messages: [incommingMessage] }; // If image take only last message @@ -339,7 +359,8 @@ const Chat = (props) => { const reader = response.body.getReader() registerScrollEvent(true); - const iconProps = { icon: modelName.toUpperCase()[0], color: getColor(modelName.toUpperCase()[0]) }; + const icon = modelName.toUpperCase()[0]; + const iconProps = { icon, color: getColor(icon) }; try { while (true) { if (abort) { @@ -386,10 +407,6 @@ const Chat = (props) => { console.error(e); } - console.log("Flush to storage"); - await props.client.saveChatHistory({ sessionId: chat?.id, messages: memoState }); - console.log("Stored succesfully"); - registerScrollEvent(false); return memoState; } @@ -409,11 +426,9 @@ const Chat = (props) => { return; } - if (messages.length === 0) { - const title = { ...chat, sessionId: chat?.id, title: value }; - props.client.saveTitle(title).then(() => { - setSessionTitles([...sessionTitles, title]); - }).catch(console.error); + if (messages.length === 0 && chat) { + const title = { ...chat, title: value }; + setChatsData([...chatData, title]); } setIsSpinning(true); @@ -421,10 +436,10 @@ const Chat = (props) => { setValue(""); } - const deleteChatEntry = (id) => { - props.client.deleteTitle(id).then(() => { - const newSessions = sessionTitles.filter(x => x.sessionId != id); - setSessionTitles(newSessions); + const deleteChatEntry = (id: string) => { + props.client.deleteChatHistory(id).then(() => { + const newChats = chatData.filter(x => x.id != id); + setChatsData(newChats); }).catch(console.error); } @@ -440,7 +455,7 @@ const Chat = (props) => { setActiveSession(undefined); setSelectedBid(undefined); setIsReadonly(false); - setChat({ id: makeId(16), createdAt: new Date(), modelId, isLocal }); + setChat({ id: generateHashId(), createdAt: new Date(), modelId, isLocal }); const selectedModel = chainData.models.find((m: any) => m.Id == modelId); setSelectedModel(selectedModel); @@ -470,7 +485,7 @@ const Chat = (props) => { } const wrapChangeTitle = async (data: { id, title }) => { - await props.client.updateChatTitle(data); + await props.client.updateChatHistoryTitle(data); } return ( @@ -490,11 +505,11 @@ const Chat = (props) => { @@ -531,7 +546,7 @@ const Chat = (props) => { } - setOpenChangeModal(true)}> New chat @@ -617,15 +632,15 @@ const Chat = (props) => { minRows={1} maxRows={6} /> { - isReadonly - ? ( - {isSpinning ? : Reopen} - ) - : ( - { - isSpinning ? : - } - ) + isReadonly + ? ( + {isSpinning ? : Reopen} + ) + : ( + { + isSpinning ? : + } + ) } diff --git a/ui-desktop/src/renderer/src/components/chat/ChatHistory.tsx b/ui-desktop/src/renderer/src/components/chat/ChatHistory.tsx index a2f41f3e..fcef9190 100644 --- a/ui-desktop/src/renderer/src/components/chat/ChatHistory.tsx +++ b/ui-desktop/src/renderer/src/components/chat/ChatHistory.tsx @@ -9,21 +9,22 @@ import Badge from 'react-bootstrap/Badge'; import { SearchContainer } from '../contracts/modals/CreateContractModal.styles'; import * as components from './ChatHistory.styles'; import { useEffect, useState } from "react"; +import { ChatData } from "./interfaces"; interface ChatHistoryProps { open: boolean, - onCloseSession: (string) => void; - onSelectSession: (session) => void; + onCloseSession: (id: string) => void; + onSelectChat: (chat: ChatData) => void; refreshSessions: () => void; - deleteHistory: (string) => void - onChangeTitle: (data: { id, title }) => Promise; + deleteHistory: (chatId: string) => void + onChangeTitle: (data: { id: string, title: string }) => Promise; sessions: any[]; models: any[]; activeChat: any, - sessionTitles: { sessionId: string, title: string, createdAt: any }[] + chatData: ChatData[] } -const HisotryEntry = ({ entry, deleteHistory, onSelectSession, isActive, onChangeTitle }) => { +const HisotryEntry = ({ entry, deleteHistory, onSelectChat, isActive, onChangeTitle }) => { const [isEdit, setIsEdit] = useState(false); const [title, setTitle] = useState(entry?.title || ""); @@ -32,14 +33,14 @@ const HisotryEntry = ({ entry, deleteHistory, onSelectSession, isActive, onChang deleteHistory(id); } - const changetTitle = (e, id) => { + const changetTitle = (e, chatId) => { setIsEdit(!isEdit); e.stopPropagation(); - onChangeTitle({ id, title }); + onChangeTitle({ id: chatId, title }); } return ( - onSelectSession(entry)}> + onSelectChat(entry)}> { !isEdit ? ( @@ -52,7 +53,7 @@ const HisotryEntry = ({ entry, deleteHistory, onSelectSession, isActive, onChang e.stopPropagation(); setIsEdit(!isEdit); }} style={{ marginRight: '1.5rem' }} size={22} /> - wrapDelete(e, entry.sessionId)} /> + wrapDelete(e, entry.id)} /> ) } @@ -70,7 +71,7 @@ const HisotryEntry = ({ entry, deleteHistory, onSelectSession, isActive, onChang { - changetTitle(e, entry.sessionId) + changetTitle(e, entry.id) }} style={{ margin: '0 1.5rem' }} size={22} /> { e.stopPropagation(); @@ -92,26 +93,31 @@ export const ChatHistory = (props: ChatHistoryProps) => { setSearch(""); }, [props.open]) - const renderTitlesGroup = (items) => { + const renderTitlesGroup = (items: ChatData[]) => { return items.map(t => { return () + onSelectChat={props.onSelectChat} />) }) } - const getGroupHistory = (items) => { + const getGroupHistory = (items: T[]) => { const getPreviousDate = (shift) => { const d = new Date(); d.setDate(d.getDate() - shift); return d; } - const source = (items || []).filter(i => i.createdAt).sort((a, b) => b.createdAt - a.createdAt); - const result: any = { + const source = (items || []).filter(i => i.createdAt).sort((a, b) => b.createdAt.getTime() - a.createdAt.getTime()); + const result: { + today: T[], + last7: T[], + last30: T[], + older: T[], + } = { today: [], last7: [], last30: [], @@ -137,8 +143,8 @@ export const ChatHistory = (props: ChatHistoryProps) => { return result; } - const filterdModels = props.sessionTitles && search ? props.sessionTitles.filter(m => m.title.includes(search)) : (props.sessionTitles || []); - const groupedItems = getGroupHistory(filterdModels); + const filterdModels = props.chatData && search ? props.chatData.filter(m => m.title?.includes(search)) : (props.chatData || []); + const groupedItems = getGroupHistory(filterdModels); return ( diff --git a/ui-desktop/src/renderer/src/components/chat/interfaces.tsx b/ui-desktop/src/renderer/src/components/chat/interfaces.tsx new file mode 100644 index 00000000..03ab3d11 --- /dev/null +++ b/ui-desktop/src/renderer/src/components/chat/interfaces.tsx @@ -0,0 +1,47 @@ +export interface ChatTitle { + chatId: string; + title: string; + createdAt: number; // timestamp in seconds + modelId: string; +} + +export interface ChatData { + id: string; + title?: string; + createdAt: Date; + modelId: string; + isLocal?: boolean; +} + +export interface HistoryMessage { + id: string; + text: string; + user: string; + role: string; + icon: string; + color: string; + isImageContent?: boolean; +} + +export interface ChatHistoryInterface { + title: string; + modelId: string; + messages: ChatMessage[]; +} + +export interface ChatMessage { + response: string; + prompt: ChatPrompt; + promptAt: number; + responseAt: number; + isImageContent?: boolean; +} + +export interface ChatPrompt { + model: string; + messages: { + role: string; + content: string; + }[]; +} + diff --git a/ui-desktop/src/renderer/src/components/chat/utils.js b/ui-desktop/src/renderer/src/components/chat/utils.js index f9958281..2d426041 100644 --- a/ui-desktop/src/renderer/src/components/chat/utils.js +++ b/ui-desktop/src/renderer/src/components/chat/utils.js @@ -12,6 +12,11 @@ export const makeId = (length) => { return result; } +export const generateHashId = (length = 64) => { + const hex = [...Array(length)].map(() => Math.floor(Math.random() * 16).toString(16)).join(''); + return `0x${hex}`; +} + export const getHashCode = (string) => { var hash = 0; for (var i = 0; i < string.length; i++) { From af24d2cea50eb21f238242b0f3d10e63cf4ddfdc Mon Sep 17 00:00:00 2001 From: Aleksandr Kukharenko Date: Wed, 9 Oct 2024 17:44:31 +0300 Subject: [PATCH 006/260] update prompt api --- proxy-router/docs/docs.go | 142 +++++++++++------- proxy-router/docs/swagger.json | 7 + proxy-router/docs/swagger.yaml | 5 + .../internal/proxyapi/controller_http.go | 1 + 4 files changed, 100 insertions(+), 55 deletions(-) diff --git a/proxy-router/docs/docs.go b/proxy-router/docs/docs.go index 368b7027..8478af68 100644 --- a/proxy-router/docs/docs.go +++ b/proxy-router/docs/docs.go @@ -1073,6 +1073,13 @@ const docTemplate = `{ "name": "model_id", "in": "header" }, + { + "type": "string", + "format": "hex32", + "description": "Chat ID", + "name": "chat_id", + "in": "header" + }, { "description": "Prompt", "name": "prompt", @@ -1141,6 +1148,67 @@ const docTemplate = `{ } } } + }, + "post": { + "produces": [ + "application/json" + ], + "tags": [ + "chat" + ], + "summary": "Update chat title by id", + "parameters": [ + { + "type": "string", + "description": "Chat ID", + "name": "id", + "in": "path", + "required": true + }, + { + "description": "Chat Title", + "name": "title", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/proxyapi.UpdateChatTitleReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/proxyapi.ResultResponse" + } + } + } + }, + "delete": { + "produces": [ + "application/json" + ], + "tags": [ + "chat" + ], + "summary": "Delete chat by id from storage", + "parameters": [ + { + "type": "string", + "description": "Chat ID", + "name": "id", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/proxyapi.ResultResponse" + } + } + } } }, "/v1/models": { @@ -1381,12 +1449,6 @@ const docTemplate = `{ "content": { "type": "string" }, - "multiContent": { - "type": "array", - "items": { - "$ref": "#/definitions/proxyapi.ChatMessagePart" - } - }, "name": { "description": "This property isn't in the official documentation, but it's in\nthe documentation for the official library for python:\n- https://github.com/openai/openai-python/blob/main/chatml.md\n- https://github.com/openai/openai-cookbook/blob/main/examples/How_to_count_tokens_with_tiktoken.ipynb", "type": "string" @@ -1474,42 +1536,6 @@ const docTemplate = `{ } } }, - "proxyapi.ChatMessageImageURL": { - "type": "object", - "properties": { - "detail": { - "$ref": "#/definitions/proxyapi.ImageURLDetail" - }, - "url": { - "type": "string" - } - } - }, - "proxyapi.ChatMessagePart": { - "type": "object", - "properties": { - "image_url": { - "$ref": "#/definitions/proxyapi.ChatMessageImageURL" - }, - "text": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/proxyapi.ChatMessagePartType" - } - } - }, - "proxyapi.ChatMessagePartType": { - "type": "string", - "enum": [ - "text", - "image_url" - ], - "x-enum-varnames": [ - "ChatMessagePartTypeText", - "ChatMessagePartTypeImageURL" - ] - }, "proxyapi.FinishReason": { "type": "string", "enum": [ @@ -1519,19 +1545,6 @@ const docTemplate = `{ "FinishReasonStop" ] }, - "proxyapi.ImageURLDetail": { - "type": "string", - "enum": [ - "high", - "low", - "auto" - ], - "x-enum-varnames": [ - "ImageURLDetailHigh", - "ImageURLDetailLow", - "ImageURLDetailAuto" - ] - }, "proxyapi.InitiateSessionReq": { "type": "object", "required": [ @@ -1667,6 +1680,14 @@ const docTemplate = `{ } } }, + "proxyapi.ResultResponse": { + "type": "object", + "properties": { + "result": { + "type": "boolean" + } + } + }, "proxyapi.TopLogProbs": { "type": "object", "properties": { @@ -1684,6 +1705,17 @@ const docTemplate = `{ } } }, + "proxyapi.UpdateChatTitleReq": { + "type": "object", + "required": [ + "title" + ], + "properties": { + "title": { + "type": "string" + } + } + }, "proxyapi.Usage": { "type": "object", "properties": { diff --git a/proxy-router/docs/swagger.json b/proxy-router/docs/swagger.json index 0b202714..a07754c7 100644 --- a/proxy-router/docs/swagger.json +++ b/proxy-router/docs/swagger.json @@ -1066,6 +1066,13 @@ "name": "model_id", "in": "header" }, + { + "type": "string", + "format": "hex32", + "description": "Chat ID", + "name": "chat_id", + "in": "header" + }, { "description": "Prompt", "name": "prompt", diff --git a/proxy-router/docs/swagger.yaml b/proxy-router/docs/swagger.yaml index 59c5fb82..be753d53 100644 --- a/proxy-router/docs/swagger.yaml +++ b/proxy-router/docs/swagger.yaml @@ -1345,6 +1345,11 @@ paths: in: header name: model_id type: string + - description: Chat ID + format: hex32 + in: header + name: chat_id + type: string - description: Prompt in: body name: prompt diff --git a/proxy-router/internal/proxyapi/controller_http.go b/proxy-router/internal/proxyapi/controller_http.go index c70a3f7c..2988df17 100644 --- a/proxy-router/internal/proxyapi/controller_http.go +++ b/proxy-router/internal/proxyapi/controller_http.go @@ -76,6 +76,7 @@ func (s *ProxyController) InitiateSession(ctx *gin.Context) { // @Produce text/event-stream // @Param session_id header string false "Session ID" format(hex32) // @Param model_id header string false "Model ID" format(hex32) +// @Param chat_id header string false "Chat ID" format(hex32) // @Param prompt body proxyapi.OpenAiCompletitionRequest true "Prompt" // @Success 200 {object} proxyapi.ChatCompletionResponse // @Router /v1/chat/completions [post] From 2ca6ed0e175cc71f7202ece604ea809a96a31a3a Mon Sep 17 00:00:00 2001 From: shev Date: Wed, 9 Oct 2024 21:24:18 +0200 Subject: [PATCH 007/260] feat: abstract ethclient with interface --- .../internal/blockchainapi/event_listener.go | 6 ++-- .../internal/blockchainapi/service.go | 11 ++++--- proxy-router/internal/interfaces/ethclient.go | 29 ++++++++++++++++++ .../repositories/contracts/interface.go | 30 ------------------- .../repositories/contracts/subscription.go | 3 +- .../repositories/registries/marketplace.go | 6 ++-- .../repositories/registries/model_registry.go | 6 ++-- .../repositories/registries/mor_token.go | 6 ++-- .../registries/provider_registry.go | 6 ++-- .../repositories/registries/session_router.go | 6 ++-- 10 files changed, 54 insertions(+), 55 deletions(-) create mode 100644 proxy-router/internal/interfaces/ethclient.go delete mode 100644 proxy-router/internal/repositories/contracts/interface.go diff --git a/proxy-router/internal/blockchainapi/event_listener.go b/proxy-router/internal/blockchainapi/event_listener.go index 7d62d3c8..cbe0511e 100644 --- a/proxy-router/internal/blockchainapi/event_listener.go +++ b/proxy-router/internal/blockchainapi/event_listener.go @@ -10,7 +10,7 @@ import ( "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/contracts" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/registries" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/storages" - "github.com/ethereum/go-ethereum/ethclient" + "github.com/ethereum/go-ethereum/accounts/abi/bind" ) type EventsListener struct { @@ -18,12 +18,12 @@ type EventsListener struct { store *storages.SessionStorage tsk *lib.Task log *lib.Logger - client *ethclient.Client + client bind.ContractFilterer wallet interfaces.Wallet modelConfigLoader *config.ModelConfigLoader } -func NewEventsListener(client *ethclient.Client, store *storages.SessionStorage, sessionRouter *registries.SessionRouter, wallet interfaces.Wallet, modelConfigLoader *config.ModelConfigLoader, log *lib.Logger) *EventsListener { +func NewEventsListener(client bind.ContractFilterer, store *storages.SessionStorage, sessionRouter *registries.SessionRouter, wallet interfaces.Wallet, modelConfigLoader *config.ModelConfigLoader, log *lib.Logger) *EventsListener { return &EventsListener{ store: store, log: log, diff --git a/proxy-router/internal/blockchainapi/service.go b/proxy-router/internal/blockchainapi/service.go index fd0b010e..78ad4908 100644 --- a/proxy-router/internal/blockchainapi/service.go +++ b/proxy-router/internal/blockchainapi/service.go @@ -10,7 +10,7 @@ import ( "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/sessionrouter" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/blockchainapi/structs" - "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" + i "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/proxyapi" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/registries" @@ -22,11 +22,10 @@ import ( "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/crypto" - "github.com/ethereum/go-ethereum/ethclient" ) type BlockchainService struct { - ethClient *ethclient.Client + ethClient i.EthClient providerRegistry *registries.ProviderRegistry modelRegistry *registries.ModelRegistry marketplace *registries.Marketplace @@ -38,7 +37,7 @@ type BlockchainService struct { diamonContractAddr common.Address legacyTx bool - privateKey interfaces.PrKeyProvider + privateKey i.PrKeyProvider log lib.ILogger } @@ -67,11 +66,11 @@ var ( ) func NewBlockchainService( - ethClient *ethclient.Client, + ethClient i.EthClient, diamonContractAddr common.Address, morTokenAddr common.Address, explorerApiUrl string, - privateKey interfaces.PrKeyProvider, + privateKey i.PrKeyProvider, sessionStorage *storages.SessionStorage, proxyService *proxyapi.ProxyServiceSender, log lib.ILogger, diff --git a/proxy-router/internal/interfaces/ethclient.go b/proxy-router/internal/interfaces/ethclient.go new file mode 100644 index 00000000..993d1731 --- /dev/null +++ b/proxy-router/internal/interfaces/ethclient.go @@ -0,0 +1,29 @@ +package interfaces + +import ( + "context" + "math/big" + + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" +) + +type EthClient interface { + ClientBackend + ContractBackend +} + +// ContractWaiter used to do a read/write operation on a contract and wait for the transaction to be mined +type ContractBackend interface { + bind.ContractCaller + bind.ContractFilterer + bind.ContractTransactor + bind.DeployBackend +} + +// ClientBackend used to perform non-contract related read operations on blockchain +type ClientBackend interface { + BlockNumber(context.Context) (uint64, error) + BalanceAt(context.Context, common.Address, *big.Int) (*big.Int, error) + ChainID(context.Context) (*big.Int, error) +} diff --git a/proxy-router/internal/repositories/contracts/interface.go b/proxy-router/internal/repositories/contracts/interface.go deleted file mode 100644 index 379bd730..00000000 --- a/proxy-router/internal/repositories/contracts/interface.go +++ /dev/null @@ -1,30 +0,0 @@ -package contracts - -import ( - "context" - "math/big" - - "github.com/ethereum/go-ethereum/accounts/abi/bind" - "github.com/ethereum/go-ethereum/common" -) - -type DataAccess interface { - // string used as address cause different blockchains may return different type of addresses - GetContractsIDs() ([]string, error) - GetContract(contractID string) (interface{}, error) - CloseContract(contractID string, meta interface{}) error - - OnNewContract(func(contractID string)) CloseListererFunc - OnContractUpdated(contractID string, cb func()) CloseListererFunc - OnContractClosed(contractID string, cb func()) CloseListererFunc -} - -type EthereumClient interface { - bind.ContractBackend - bind.DeployBackend - ChainID(ctx context.Context) (*big.Int, error) - BalanceAt(ctx context.Context, addr common.Address, blockNumber *big.Int) (*big.Int, error) - StorageAt(ctx context.Context, account common.Address, key common.Hash, blockNumber *big.Int) ([]byte, error) -} - -type CloseListererFunc = func() diff --git a/proxy-router/internal/repositories/contracts/subscription.go b/proxy-router/internal/repositories/contracts/subscription.go index 5876e30c..043209cd 100644 --- a/proxy-router/internal/repositories/contracts/subscription.go +++ b/proxy-router/internal/repositories/contracts/subscription.go @@ -8,6 +8,7 @@ import ( "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/sessionrouter" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/core/types" ) @@ -28,7 +29,7 @@ func BlockchainEventFactory(name string) interface{} { } // WatchContractEvents watches for all events from the contract and converts them to the concrete type, using mapper -func WatchContractEvents(ctx context.Context, client EthereumClient, contractAddr common.Address, mapper EventMapper, log lib.ILogger) (*lib.Subscription, error) { +func WatchContractEvents(ctx context.Context, client bind.ContractFilterer, contractAddr common.Address, mapper EventMapper, log lib.ILogger) (*lib.Subscription, error) { sink := make(chan interface{}) return lib.NewSubscription(func(quit <-chan struct{}) error { diff --git a/proxy-router/internal/repositories/registries/marketplace.go b/proxy-router/internal/repositories/registries/marketplace.go index af4c08d4..3c2852b1 100644 --- a/proxy-router/internal/repositories/registries/marketplace.go +++ b/proxy-router/internal/repositories/registries/marketplace.go @@ -6,10 +6,10 @@ import ( "math/big" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/marketplace" + i "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/ethclient" ) type Marketplace struct { @@ -18,11 +18,11 @@ type Marketplace struct { // deps marketplace *marketplace.Marketplace - client *ethclient.Client + client i.ContractBackend log lib.ILogger } -func NewMarketplace(marketplaceAddr common.Address, client *ethclient.Client, log lib.ILogger) *Marketplace { +func NewMarketplace(marketplaceAddr common.Address, client i.ContractBackend, log lib.ILogger) *Marketplace { mp, err := marketplace.NewMarketplace(marketplaceAddr, client) if err != nil { panic("invalid marketplace ABI") diff --git a/proxy-router/internal/repositories/registries/model_registry.go b/proxy-router/internal/repositories/registries/model_registry.go index 05b9b58d..cb9fbc1c 100644 --- a/proxy-router/internal/repositories/registries/model_registry.go +++ b/proxy-router/internal/repositories/registries/model_registry.go @@ -5,10 +5,10 @@ import ( "fmt" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/modelregistry" + i "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/ethclient" ) type ModelRegistry struct { @@ -20,11 +20,11 @@ type ModelRegistry struct { // deps modelRegistry *modelregistry.ModelRegistry - client *ethclient.Client + client i.ContractBackend log lib.ILogger } -func NewModelRegistry(modelRegistryAddr common.Address, client *ethclient.Client, log lib.ILogger) *ModelRegistry { +func NewModelRegistry(modelRegistryAddr common.Address, client i.ContractBackend, log lib.ILogger) *ModelRegistry { mr, err := modelregistry.NewModelRegistry(modelRegistryAddr, client) if err != nil { panic("invalid model registry ABI") diff --git a/proxy-router/internal/repositories/registries/mor_token.go b/proxy-router/internal/repositories/registries/mor_token.go index b5986301..f8e6ce4e 100644 --- a/proxy-router/internal/repositories/registries/mor_token.go +++ b/proxy-router/internal/repositories/registries/mor_token.go @@ -5,12 +5,12 @@ import ( "math/big" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/morpheustoken" + i "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" "github.com/ethereum/go-ethereum/accounts/abi" "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/ethclient" ) type MorToken struct { @@ -23,11 +23,11 @@ type MorToken struct { // deps mor *morpheustoken.MorpheusToken - client *ethclient.Client + client i.ContractBackend log lib.ILogger } -func NewMorToken(morTokenAddr common.Address, client *ethclient.Client, log lib.ILogger) *MorToken { +func NewMorToken(morTokenAddr common.Address, client i.ContractBackend, log lib.ILogger) *MorToken { mor, err := morpheustoken.NewMorpheusToken(morTokenAddr, client) if err != nil { panic("invalid mor ABI") diff --git a/proxy-router/internal/repositories/registries/provider_registry.go b/proxy-router/internal/repositories/registries/provider_registry.go index 66afb10a..d8a1cd09 100644 --- a/proxy-router/internal/repositories/registries/provider_registry.go +++ b/proxy-router/internal/repositories/registries/provider_registry.go @@ -5,10 +5,10 @@ import ( "fmt" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/providerregistry" + i "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/ethclient" ) type ProviderRegistry struct { @@ -20,11 +20,11 @@ type ProviderRegistry struct { // deps providerRegistry *providerregistry.ProviderRegistry - client *ethclient.Client + client i.ContractBackend log lib.ILogger } -func NewProviderRegistry(providerRegistryAddr common.Address, client *ethclient.Client, log lib.ILogger) *ProviderRegistry { +func NewProviderRegistry(providerRegistryAddr common.Address, client i.ContractBackend, log lib.ILogger) *ProviderRegistry { pr, err := providerregistry.NewProviderRegistry(providerRegistryAddr, client) if err != nil { panic("invalid provider registry ABI") diff --git a/proxy-router/internal/repositories/registries/session_router.go b/proxy-router/internal/repositories/registries/session_router.go index 8a6e2551..c019ee5d 100644 --- a/proxy-router/internal/repositories/registries/session_router.go +++ b/proxy-router/internal/repositories/registries/session_router.go @@ -7,11 +7,11 @@ import ( "time" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/sessionrouter" + i "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" "github.com/ethereum/go-ethereum/accounts/abi" "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/ethclient" ) type SessionRouter struct { @@ -24,7 +24,7 @@ type SessionRouter struct { // deps sessionRouter *sessionrouter.SessionRouter - client *ethclient.Client + client i.ContractBackend log lib.ILogger } @@ -34,7 +34,7 @@ var closeReportAbi = []lib.AbiParameter{ {Type: "uint32"}, } -func NewSessionRouter(sessionRouterAddr common.Address, client *ethclient.Client, log lib.ILogger) *SessionRouter { +func NewSessionRouter(sessionRouterAddr common.Address, client i.ContractBackend, log lib.ILogger) *SessionRouter { sr, err := sessionrouter.NewSessionRouter(sessionRouterAddr, client) if err != nil { panic("invalid marketplace ABI") From 468019aaf77265933e6bc3ae567b5c0463edb217 Mon Sep 17 00:00:00 2001 From: shev Date: Wed, 9 Oct 2024 21:29:13 +0200 Subject: [PATCH 008/260] feat: ethprovider with multiple endpoints --- proxy-router/.env.example | 3 +- proxy-router/.env.example.win | 3 +- proxy-router/cmd/main.go | 20 +- proxy-router/go.mod | 18 +- proxy-router/go.sum | 122 +++++--- proxy-router/internal/config/config.go | 3 +- .../repositories/ethclient/ethclient.go | 273 ++++++++++++++++++ .../repositories/ethclient/ethclient_test.go | 41 +++ .../internal/repositories/ethclient/public.go | 51 ++++ .../repositories/ethclient/rpcclient.go | 14 + .../ethclient/rpcclientmultiple.go | 106 +++++++ 11 files changed, 598 insertions(+), 56 deletions(-) create mode 100644 proxy-router/internal/repositories/ethclient/ethclient.go create mode 100644 proxy-router/internal/repositories/ethclient/ethclient_test.go create mode 100644 proxy-router/internal/repositories/ethclient/public.go create mode 100644 proxy-router/internal/repositories/ethclient/rpcclient.go create mode 100644 proxy-router/internal/repositories/ethclient/rpcclientmultiple.go diff --git a/proxy-router/.env.example b/proxy-router/.env.example index 10cd5964..c0981d53 100644 --- a/proxy-router/.env.example +++ b/proxy-router/.env.example @@ -1,5 +1,6 @@ WALLET_PRIVATE_KEY= # Private Key from your Wallet as Consumer or Provider (needed for the proxy-router to sign transactions) -ETH_NODE_ADDRESS=wss://arb-sepolia.g.alchemy.com/v2/3-pxwBaJ7vilkz1jl-fMmCvZThGxpmo2 # Recommend using your own private ETH Node Address for better performance (via Alchemy or Infura) +ETH_NODE_ADDRESS= # Recommend using your own private ETH Node Address for better performance (via Alchemy or Infura) +ETH_NODE_CHAIN_ID=421614 DIAMOND_CONTRACT_ADDRESS=0x8e19288d908b2d9f8d7c539c74c899808ac3de45 MOR_TOKEN_ADDRESS=0xc1664f994fd3991f98ae944bc16b9aed673ef5fd diff --git a/proxy-router/.env.example.win b/proxy-router/.env.example.win index f0657406..db21dc8f 100644 --- a/proxy-router/.env.example.win +++ b/proxy-router/.env.example.win @@ -1,5 +1,6 @@ WALLET_PRIVATE_KEY= # Private Key from your Wallet as Consumer or Provider (needed for the proxy-router to sign transactions) -ETH_NODE_ADDRESS=wss://arb-sepolia.g.alchemy.com/v2/3-pxwBaJ7vilkz1jl-fMmCvZThGxpmo2 # Recommend using your own private ETH Node Address for better performance (via Alchemy or Infura) +ETH_NODE_ADDRESS= # Recommend using your own private ETH Node Address for better performance (via Alchemy or Infura) +ETH_NODE_CHAIN_ID=421614 DIAMOND_CONTRACT_ADDRESS=0x8e19288d908b2d9f8d7c539c74c899808ac3de45 MOR_TOKEN_ADDRESS=0xc1664f994fd3991f98ae944bc16b9aed673ef5fd diff --git a/proxy-router/cmd/main.go b/proxy-router/cmd/main.go index 9e90f0b9..1de52594 100644 --- a/proxy-router/cmd/main.go +++ b/proxy-router/cmd/main.go @@ -19,13 +19,13 @@ import ( "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/proxyapi" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/proxyctl" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/ethclient" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/registries" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/transport" wlt "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/wallet" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/storages" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/system" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/walletapi" - "github.com/ethereum/go-ethereum/ethclient" docs "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/docs" ) @@ -182,14 +182,30 @@ func start() error { os.Exit(1) }() - ethClient, err := ethclient.DialContext(ctx, cfg.Blockchain.EthNodeAddress) + var rpcURLs []string + if cfg.Blockchain.EthNodeAddress != "" { + rpcURLs = []string{cfg.Blockchain.EthNodeAddress} + } else { + var err error + rpcURLs, err = ethclient.GetPublicRPCURLs(cfg.Blockchain.ChainID) + if err != nil { + return err + } + } + + rpcClient, err := ethclient.NewRPCClientMultiple(rpcURLs, log.Named("RPC")) if err != nil { return lib.WrapError(ErrConnectToEthNode, err) } + + ethClient := ethclient.NewClient(rpcClient) chainID, err := ethClient.ChainID(ctx) if err != nil { return lib.WrapError(ErrConnectToEthNode, err) } + if int(chainID.Uint64()) != cfg.Blockchain.ChainID { + return lib.WrapError(ErrConnectToEthNode, fmt.Errorf("configured chainID (%d) does not match eth node chain ID (%s)", cfg.Blockchain.ChainID, chainID)) + } appLog.Infof("connected to ethereum node: %s, chainID: %d", cfg.Blockchain.EthNodeAddress, chainID) publicUrl, err := url.Parse(cfg.Web.PublicUrl) diff --git a/proxy-router/go.mod b/proxy-router/go.mod index 74ade76e..cf83f7ec 100644 --- a/proxy-router/go.mod +++ b/proxy-router/go.mod @@ -6,7 +6,7 @@ toolchain go1.22.3 require ( github.com/dgraph-io/badger/v4 v4.2.0 - github.com/ethereum/go-ethereum v1.12.0 + github.com/ethereum/go-ethereum v1.13.15 github.com/gin-contrib/cors v1.7.2 github.com/gin-gonic/gin v1.10.0 github.com/go-playground/validator/v10 v10.20.0 @@ -22,14 +22,16 @@ require ( github.com/zalando/go-keyring v0.2.4 go.uber.org/multierr v1.6.0 go.uber.org/zap v1.24.0 - golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63 + golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa golang.org/x/sync v0.7.0 ) require ( github.com/KyleBanks/depth v1.2.1 // indirect + github.com/Microsoft/go-winio v0.6.1 // indirect github.com/StackExchange/wmi v1.2.1 // indirect github.com/alessio/shellescape v1.4.1 // indirect + github.com/bits-and-blooms/bitset v1.10.0 // indirect github.com/btcsuite/btcd v0.22.1 // indirect github.com/btcsuite/btcd/btcec/v2 v2.2.0 // indirect github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 // indirect @@ -39,12 +41,16 @@ require ( github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/cloudwego/base64x v0.1.4 // indirect github.com/cloudwego/iasm v0.2.0 // indirect + github.com/consensys/bavard v0.1.13 // indirect + github.com/consensys/gnark-crypto v0.12.1 // indirect + github.com/crate-crypto/go-kzg-4844 v0.7.0 // indirect github.com/danieljoos/wincred v1.2.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/deckarep/golang-set/v2 v2.1.0 // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1 // indirect github.com/dgraph-io/ristretto v0.1.1 // indirect github.com/dustin/go-humanize v1.0.0 // indirect + github.com/ethereum/c-kzg-4844 v0.4.0 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect github.com/gabriel-vasile/mimetype v1.4.3 // indirect github.com/gin-contrib/sse v0.1.0 // indirect @@ -55,13 +61,12 @@ require ( github.com/go-openapi/swag v0.23.0 // indirect github.com/go-playground/locales v0.14.1 // indirect github.com/go-playground/universal-translator v0.18.1 // indirect - github.com/go-stack/stack v1.8.1 // indirect github.com/goccy/go-json v0.10.2 // indirect github.com/godbus/dbus/v5 v5.1.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/glog v1.0.0 // indirect github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6 // indirect - github.com/golang/protobuf v1.5.2 // indirect + github.com/golang/protobuf v1.5.3 // indirect github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb // indirect github.com/google/flatbuffers v1.12.1 // indirect github.com/google/uuid v1.3.0 // indirect @@ -77,6 +82,7 @@ require ( github.com/mattn/go-isatty v0.0.20 // indirect github.com/mattn/go-runewidth v0.0.14 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect + github.com/mmcloughlin/addchain v0.4.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/pelletier/go-toml/v2 v2.2.2 // indirect @@ -85,6 +91,7 @@ require ( github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/supranational/blst v0.3.11 // indirect github.com/tklauser/go-sysconf v0.3.12 // indirect github.com/tklauser/numcpus v0.6.1 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect @@ -95,11 +102,12 @@ require ( go.uber.org/atomic v1.11.0 // indirect golang.org/x/arch v0.8.0 // indirect golang.org/x/crypto v0.23.0 // indirect + golang.org/x/mod v0.17.0 // indirect golang.org/x/net v0.25.0 // indirect golang.org/x/sys v0.20.0 // indirect golang.org/x/text v0.15.0 // indirect golang.org/x/tools v0.21.0 // indirect google.golang.org/protobuf v1.34.1 // indirect - gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect gopkg.in/yaml.v3 v3.0.1 // indirect + rsc.io/tmplfunc v0.0.3 // indirect ) diff --git a/proxy-router/go.sum b/proxy-router/go.sum index e9764740..3cdba599 100644 --- a/proxy-router/go.sum +++ b/proxy-router/go.sum @@ -1,13 +1,15 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/zstd v1.5.2 h1:vUG4lAyuPCXO0TLbXvPv7EB7cNK1QV/luu55UHLrrn8= -github.com/DataDog/zstd v1.5.2/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= +github.com/DataDog/zstd v1.4.5 h1:EndNeuB0l9syBZhut0wns3gV1hL8zX8LIu6ZiVHWLIQ= +github.com/DataDog/zstd v1.4.5/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= github.com/KyleBanks/depth v1.2.1 h1:5h8fQADFrWtarTdtDudMmGsC7GPbOAu6RVB3ffsVFHc= github.com/KyleBanks/depth v1.2.1/go.mod h1:jzSb9d0L43HxTQfT+oSA1EEp2q+ne2uh6XgeJcm8brE= +github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= +github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/StackExchange/wmi v1.2.1 h1:VIkavFPXSjcnS+O8yTq7NI32k0R5Aj+v39y29VYDOSA= github.com/StackExchange/wmi v1.2.1/go.mod h1:rcmrprowKIVzvc+NUiLncP2uuArMWLCbu9SBzvHz7e8= -github.com/VictoriaMetrics/fastcache v1.6.0 h1:C/3Oi3EiBCqufydp1neRZkqcwmEiuRT9c3fqvvgKm5o= -github.com/VictoriaMetrics/fastcache v1.6.0/go.mod h1:0qHz5QP0GMX4pfmMA/zt5RgfNuXJrTP0zS7DqpHGGTw= +github.com/VictoriaMetrics/fastcache v1.12.1 h1:i0mICQuojGDL3KblA7wUNlY5lOK6a4bwt3uRKnkZU40= +github.com/VictoriaMetrics/fastcache v1.12.1/go.mod h1:tX04vaqcNoQeGLD+ra5pU5sWkuxnzWhEzLwhP9w653o= github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= github.com/alessio/shellescape v1.4.1 h1:V7yhSDDn8LP4lc4jS8pFkt0zCnzVJlG5JXy9BVKJUX0= github.com/alessio/shellescape v1.4.1/go.mod h1:PZAiSCk0LJaZkiCSkPv8qIobYglO3FPpyFjDCtHLS30= @@ -15,6 +17,8 @@ github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLj github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= +github.com/bits-and-blooms/bitset v1.10.0 h1:ePXTeiPEazB5+opbv5fr8umg2R/1NlzgDsyepwsSr88= +github.com/bits-and-blooms/bitset v1.10.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ= github.com/btcsuite/btcd v0.22.1 h1:CnwP9LM/M9xuRrGSCGeMVs9iv09uMqwsVX7EeIpgV2c= github.com/btcsuite/btcd v0.22.1/go.mod h1:wqgTSL29+50LRkmOVknEdmt8ZojIzhuWvgu/iptuN7Y= @@ -45,16 +49,28 @@ github.com/cloudwego/base64x v0.1.4 h1:jwCgWpFanWmN8xoIUHa2rtzmkd5J2plF/dnLS6Xd/ github.com/cloudwego/base64x v0.1.4/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w= github.com/cloudwego/iasm v0.2.0 h1:1KNIy1I1H9hNNFEEH3DVnI4UujN+1zjpuk6gwHLTssg= github.com/cloudwego/iasm v0.2.0/go.mod h1:8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQPiEFhY= -github.com/cockroachdb/errors v1.9.1 h1:yFVvsI0VxmRShfawbt/laCIDy/mtTqqnvoNgiy5bEV8= -github.com/cockroachdb/errors v1.9.1/go.mod h1:2sxOtL2WIc096WSZqZ5h8fa17rdDq9HZOZLBCor4mBk= -github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b h1:r6VH0faHjZeQy818SGhaone5OnYfxFR/+AzdY3sf5aE= -github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= -github.com/cockroachdb/pebble v0.0.0-20230209160836-829675f94811 h1:ytcWPaNPhNoGMWEhDvS3zToKcDpRsLuRolQJBVGdozk= -github.com/cockroachdb/pebble v0.0.0-20230209160836-829675f94811/go.mod h1:Nb5lgvnQ2+oGlE/EyZy4+2/CxRh9KfvCXnag1vtpxVM= -github.com/cockroachdb/redact v1.1.3 h1:AKZds10rFSIj7qADf0g46UixK8NNLwWTNdCIGS5wfSQ= -github.com/cockroachdb/redact v1.1.3/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= +github.com/cockroachdb/errors v1.8.1 h1:A5+txlVZfOqFBDa4mGz2bUWSp0aHElvHX2bKkdbQu+Y= +github.com/cockroachdb/errors v1.8.1/go.mod h1:qGwQn6JmZ+oMjuLwjWzUNqblqk0xl4CVV3SQbGwK7Ac= +github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f h1:o/kfcElHqOiXqcou5a3rIlMc7oJbMQkeLk0VQJ7zgqY= +github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f/go.mod h1:i/u985jwjWRlyHXQbwatDASoW0RMlZ/3i9yJHE2xLkI= +github.com/cockroachdb/pebble v0.0.0-20230928194634-aa077af62593 h1:aPEJyR4rPBvDmeyi+l/FS/VtA00IWvjeFvjen1m1l1A= +github.com/cockroachdb/pebble v0.0.0-20230928194634-aa077af62593/go.mod h1:6hk1eMY/u5t+Cf18q5lFMUA1Rc+Sm5I6Ra1QuPyxXCo= +github.com/cockroachdb/redact v1.0.8 h1:8QG/764wK+vmEYoOlfobpe12EQcS81ukx/a4hdVMxNw= +github.com/cockroachdb/redact v1.0.8/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= +github.com/cockroachdb/sentry-go v0.6.1-cockroachdb.2 h1:IKgmqgMQlVJIZj19CdocBeSfSaiCbEBZGKODaixqtHM= +github.com/cockroachdb/sentry-go v0.6.1-cockroachdb.2/go.mod h1:8BT+cPK6xvFOcRlk0R8eg+OTkcqI6baNH4xAkpiYVvQ= +github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 h1:zuQyyAKVxetITBuuhv3BI9cMrmStnpT18zmgmTxunpo= +github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06/go.mod h1:7nc4anLGjupUW/PeY5qiNYsdNXj7zopG+eqsS7To5IQ= +github.com/consensys/bavard v0.1.13 h1:oLhMLOFGTLdlda/kma4VOJazblc7IM5y5QPd2A/YjhQ= +github.com/consensys/bavard v0.1.13/go.mod h1:9ItSMtA/dXMAiL7BG6bqW2m3NdSEObYWoH223nGHukI= +github.com/consensys/gnark-crypto v0.12.1 h1:lHH39WuuFgVHONRl3J0LRBtuYdQTumFSDtJF7HpyG8M= +github.com/consensys/gnark-crypto v0.12.1/go.mod h1:v2Gy7L/4ZRosZ7Ivs+9SfUDr0f5UlG+EM5t7MPHiLuY= github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233 h1:d28BXYi+wUpz1KBmiF9bWrjEMacUEREV6MBi2ODnrfQ= +github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233/go.mod h1:geZJZH3SzKCqnz5VT0q/DyIG/tvu/dZk+VIfXicupJs= +github.com/crate-crypto/go-kzg-4844 v0.7.0 h1:C0vgZRk4q4EZ/JgPfzuSoxdCq3C3mOZMBShovmncxvA= +github.com/crate-crypto/go-kzg-4844 v0.7.0/go.mod h1:1kMhvPgI0Ky3yIa+9lFySEBUBXkYxeOi8ZF1sYioxhc= github.com/danieljoos/wincred v1.2.0 h1:ozqKHaLK0W/ii4KVbbvluM91W2H3Sh0BncbUNPS7jLE= github.com/danieljoos/wincred v1.2.0/go.mod h1:FzQLLMKBFdvu+osBrnFODiv32YGwCfx0SkRa/eYHgec= github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -75,10 +91,12 @@ github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2 h1:tdlZCpZ/P9DhczC github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/ethereum/go-ethereum v1.12.0 h1:bdnhLPtqETd4m3mS8BGMNvBTf36bO5bx/hxE2zljOa0= -github.com/ethereum/go-ethereum v1.12.0/go.mod h1:/oo2X/dZLJjf2mJ6YT9wcWxa4nNJDBKDBU6sFIpx1Gs= -github.com/fjl/memsize v0.0.0-20190710130421-bcb5799ab5e5 h1:FtmdgXiUlNeRsoNMFlKLDt+S+6hbjVMEW6RGQ7aUf7c= -github.com/fjl/memsize v0.0.0-20190710130421-bcb5799ab5e5/go.mod h1:VvhXpOYNQvB+uIk2RvXzuaQtkQJzzIx6lSBe1xv7hi0= +github.com/ethereum/c-kzg-4844 v0.4.0 h1:3MS1s4JtA868KpJxroZoepdV0ZKBp3u/O5HcZ7R3nlY= +github.com/ethereum/c-kzg-4844 v0.4.0/go.mod h1:VewdlzQmpT5QSrVhbBuGoCdFJkpaJlO1aQputP83wc0= +github.com/ethereum/go-ethereum v1.13.15 h1:U7sSGYGo4SPjP6iNIifNoyIAiNjrmQkz6EwQG+/EZWo= +github.com/ethereum/go-ethereum v1.13.15/go.mod h1:TN8ZiHrdJwSe8Cb6x+p0hs5CxhJZPbqB7hHkaUXcmIU= +github.com/fjl/memsize v0.0.2 h1:27txuSD9or+NZlnOWdKUxeBzTAUkWCVh+4Gf2dWFOzA= +github.com/fjl/memsize v0.0.2/go.mod h1:VvhXpOYNQvB+uIk2RvXzuaQtkQJzzIx6lSBe1xv7hi0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= @@ -86,8 +104,8 @@ github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uq github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff h1:tY80oXqGNY4FhTFhk+o9oFHGINQ/+vhlm8HFzi6znCI= github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff/go.mod h1:x7DCsMOv1taUwEWCzT4cmDeAkigA5/QCwUodaVOe8Ww= -github.com/getsentry/sentry-go v0.18.0 h1:MtBW5H9QgdcJabtZcuJG80BMOwaBpkRDZkxRkNC1sN0= -github.com/getsentry/sentry-go v0.18.0/go.mod h1:Kgon4Mby+FJ7ZWHFUAZgVaIa8sxHtnRJRLTXZr51aKQ= +github.com/gballet/go-verkle v0.1.1-0.20231031103413-a67434b50f46 h1:BAIP2GihuqhwdILrV+7GJel5lyPV3u1+PgzrWLc0TkE= +github.com/gballet/go-verkle v0.1.1-0.20231031103413-a67434b50f46/go.mod h1:QNpY22eby74jVhqH4WhDLDwxc/vqsern6pW+u2kbkpc= github.com/gin-contrib/cors v1.7.2 h1:oLDHxdg8W/XDoN/8zamqk/Drgt4oVZDvaV0YmvVICQw= github.com/gin-contrib/cors v1.7.2/go.mod h1:SUJVARKgQ40dmrzgXEVxj2m7Ig1v1qIboQkPDTQ9t2E= github.com/gin-contrib/gzip v0.0.6 h1:NjcunTcGAj5CO1gn4N8jHOSIeRFHIbn51z6K+xaN4d4= @@ -116,8 +134,6 @@ github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJn github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= github.com/go-playground/validator/v10 v10.20.0 h1:K9ISHbSaI0lyB2eWMPJo+kOS/FBExVwjEviJTixqxL8= github.com/go-playground/validator/v10 v10.20.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= -github.com/go-stack/stack v1.8.1 h1:ntEHSVwIt7PNXNpgPmVfMrNhLtgjlmnZha2kOpuRiDw= -github.com/go-stack/stack v1.8.1/go.mod h1:dcoOX6HbPZSZptuspn9bctJ+N/CnF5gGygcUP3XYfe4= github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk= @@ -126,8 +142,8 @@ github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw= github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang-jwt/jwt/v4 v4.3.0 h1:kHL1vqdqWNfATmA0FNMdmZNMyZI1U6O31X4rlIPoBog= -github.com/golang-jwt/jwt/v4 v4.3.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= +github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= +github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/glog v1.0.0 h1:nfP3RFugxnNRyKgeWd4oI1nYvXpxrx8ck8ZrcizshdQ= github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= @@ -137,8 +153,8 @@ github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfb github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb h1:PBC98N2aIaM3XXiurYmW7fx4GZkL8feAMVq7nEjURHk= github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/flatbuffers v1.12.1 h1:MVlul7pQNoDzWRLTw5imwYsl+usrS1TXG2H4jg6ImGw= @@ -150,19 +166,24 @@ github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= +github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/subcommands v1.2.0/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/hashicorp/go-bexpr v0.1.10 h1:9kuI5PFotCboP3dkDYFr/wi0gg0QVbSNz5oFRpxn4uE= github.com/hashicorp/go-bexpr v0.1.10/go.mod h1:oxlubA2vC/gFVfX1A6JGp7ls7uCDlfJn732ehYYg+g0= +github.com/holiman/billy v0.0.0-20240216141850-2abb0c79d3c4 h1:X4egAf/gcS1zATw6wn4Ej8vjuVGxeHdan+bRb2ebyv4= +github.com/holiman/billy v0.0.0-20240216141850-2abb0c79d3c4/go.mod h1:5GuXa7vkL8u9FkFuWdVvfR5ix8hRB7DbOAaYULamFpc= github.com/holiman/bloomfilter/v2 v2.0.3 h1:73e0e/V0tCydx14a0SCYS/EWCxgwLZ18CZcZKVu0fao= github.com/holiman/bloomfilter/v2 v2.0.3/go.mod h1:zpoh+gs7qcpqrHr3dB55AMiJwo0iURXE7ZOP9L9hSkA= github.com/holiman/uint256 v1.2.4 h1:jUc4Nk8fm9jZabQuqr2JzednajVmBpC+oiTiXZJEApU= github.com/holiman/uint256 v1.2.4/go.mod h1:EOMSn4q6Nyt9P6efbI3bueV4e1b3dGlUCXeiRV4ng7E= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/huin/goupnp v1.0.3 h1:N8No57ls+MnjlB+JPiCVSOyy/ot7MJTqlo7rn+NYSqQ= -github.com/huin/goupnp v1.0.3/go.mod h1:ZxNlw5WqJj6wSsRK5+YfflQGXYfccj5VgQsMNixHM7Y= +github.com/huin/goupnp v1.3.0 h1:UvLUlWDNpoUdYzb2TCn+MuTWtcjXKSza2n6CBdQ0xXc= +github.com/huin/goupnp v1.3.0/go.mod h1:gnGPsThkYa7bFi/KWmEysQRf48l2dvR5bxr2OFckNX8= github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus= github.com/jackpal/go-nat-pmp v1.0.2/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= @@ -188,6 +209,8 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= +github.com/leanovate/gopter v0.2.9 h1:fQjYxZaynp97ozCzfOyOuAGOU4aU/z37zf/tOujFk7c= +github.com/leanovate/gopter v0.2.9/go.mod h1:U2L/78B+KVFIx2VmW6onHJQzXtFb+p5y3y2Sh+Jxxv8= github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= @@ -200,14 +223,17 @@ github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWE github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWVwUuU= github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= +github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI= +github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/miguelmota/go-ethereum-hdwallet v0.1.2 h1:mz9LO6V7QCRkLYb0AH17t5R8KeqCe3E+hx9YXpmZeXA= github.com/miguelmota/go-ethereum-hdwallet v0.1.2/go.mod h1:fdNwFSoBFVBPnU0xpOd6l2ueqsPSH/Gch5kIvSvTGk8= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/pointerstructure v1.2.0 h1:O+i9nHnXS3l/9Wu7r4NrEdwA2VFTicjUEN1uBnDo34A= github.com/mitchellh/pointerstructure v1.2.0/go.mod h1:BRAsLI5zgXmw97Lf6s25bs8ohIXc3tViBH44KcwB2g4= +github.com/mmcloughlin/addchain v0.4.0 h1:SobOdjm2xLj1KkXN5/n0xTIWyZA2+s99UCY1iPfkHRY= +github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqkyU72HC5wJ4RlU= +github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -228,14 +254,14 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= -github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw= -github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y= -github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= -github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= -github.com/prometheus/common v0.39.0 h1:oOyhkDq05hPZKItWVBkJ6g6AtGxi+fy7F4JvUV8uhsI= -github.com/prometheus/common v0.39.0/go.mod h1:6XBZ7lYdLCbkAVhwRsWTZn+IN5AB9F/NXd5w0BbEX0Y= -github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI= -github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY= +github.com/prometheus/client_golang v1.12.0 h1:C+UIj/QWtmqY13Arb8kwMt5j34/0Z2iKamrJ+ryC0Gg= +github.com/prometheus/client_golang v1.12.0/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= +github.com/prometheus/client_model v0.2.1-0.20210607210712-147c58e9608a h1:CmF68hwI0XsOQ5UwlBopMi2Ow4Pbg32akc4KIVCOm+Y= +github.com/prometheus/client_model v0.2.1-0.20210607210712-147c58e9608a/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= +github.com/prometheus/common v0.32.1 h1:hWIdL3N2HoUx3B8j3YN9mWor0qhY/NlEKZEaXxuIRh4= +github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= +github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU= +github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= @@ -244,8 +270,8 @@ github.com/rs/cors v1.7.0 h1:+88SsELBHx5r+hZ8TCkggzSstaWNbDvThkVK8H6f9ik= github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/sashabaranov/go-openai v1.21.0 h1:isAf3zPSD3VLd0pC2/2Q6ZyRK7jzPAaz+X3rjsviaYQ= -github.com/sashabaranov/go-openai v1.21.0/go.mod h1:lj5b/K+zjTSFxVLijLSTDZuP7adOgerWeFyZLUhAKRg= +github.com/sashabaranov/go-openai v1.24.1 h1:DWK95XViNb+agQtuzsn+FyHhn3HQJ7Va8z04DQDJ1MI= +github.com/sashabaranov/go-openai v1.24.1/go.mod h1:lj5b/K+zjTSFxVLijLSTDZuP7adOgerWeFyZLUhAKRg= github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible h1:Bn1aCHHRnjv4Bl16T8rcaFjYSrGrIZvpiGO6P3Q4GpU= github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/shirou/gopsutil/v3 v3.23.11 h1:i3jP9NjCPUz7FiZKxlMnODZkdSIp2gnzfrvsu9CuWEQ= @@ -270,6 +296,8 @@ github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/supranational/blst v0.3.11 h1:LyU6FolezeWAhvQk0k6O/d49jqgO52MSDDfYgbeoEm4= +github.com/supranational/blst v0.3.11/go.mod h1:jZJtfjgudtNl4en1tzwPIV3KjUnQUvG3/j+w+fVonLw= github.com/swaggo/files v1.0.1 h1:J1bVJ4XHZNq0I46UU90611i9/YzdrF7x92oX1ig5IdE= github.com/swaggo/files v1.0.1/go.mod h1:0qXmMNH6sXNf+73t65aKeB+ApmgxdnkQzVTAj2uaMUg= github.com/swaggo/gin-swagger v1.6.0 h1:y8sxvQ3E20/RCyrXeFfg60r6H0Z+SwpTjMYsMm+zy8M= @@ -288,8 +316,8 @@ github.com/tyler-smith/go-bip39 v1.1.0 h1:5eUemwrMargf3BSLRRCalXT93Ns6pQJIjYQN2n github.com/tyler-smith/go-bip39 v1.1.0/go.mod h1:gUYDtqQw1JS3ZJ8UWVcGTGqqr6YIN3CWg+kkNaLt55U= github.com/ugorji/go/codec v1.2.12 h1:9LC83zGrHhuUA9l16C9AHXAqEV/2wBQ4nkvumAE65EE= github.com/ugorji/go/codec v1.2.12/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= -github.com/urfave/cli/v2 v2.17.2-0.20221006022127-8f469abc00aa h1:5SqCsI/2Qya2bCzK15ozrqo2sZxkh0FHynJZOTVoV6Q= -github.com/urfave/cli/v2 v2.17.2-0.20221006022127-8f469abc00aa/go.mod h1:1CNUng3PtjQMtRzJO4FMXBQvkGtuYRxxiR9xMa7jMwI= +github.com/urfave/cli/v2 v2.25.7 h1:VAzn5oq403l5pHjc4OhD54+XGO9cdKVL/7lDjF+iKUs= +github.com/urfave/cli/v2 v2.25.7/go.mod h1:8qnjx1vcq5s2/wpsqoZFndg2CE5tNFyrTvS6SinrnYQ= github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU= github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -322,8 +350,8 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI= golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63 h1:m64FZMko/V45gv0bNmrNYoDEq8U5YUhetc9cBWKS1TQ= -golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63/go.mod h1:0v4NqG35kSWCMzLaMeX+IQrlSnVE/bqGSyC2cz/9Le8= +golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa h1:FRnLl4eNAQl8hwxVVC17teOw8kdjVDVAiFMtgUdTSRQ= +golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa/go.mod h1:zk2irFbV9DP96SEBUUAy67IdHUaZuSnrz1n472HUCLE= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -387,8 +415,8 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk= golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/time v0.0.0-20220922220347-f3bd1da661af h1:Yx9k8YCG3dvF87UAn2tu2HQLf2dt/eR1bXxpLMWeH+Y= -golang.org/x/time v0.0.0-20220922220347-f3bd1da661af/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= @@ -419,14 +447,16 @@ gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EV gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8= gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= -gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce h1:+JknDZhAj8YMt7GC73Ei8pv4MzjDUNPHgQWJdtMAaDU= -gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce/go.mod h1:5AcXVHNjg+BDxry382+8OKon8SEWiKktQR07RKPsv1c= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= +rsc.io/tmplfunc v0.0.3 h1:53XFQh69AfOa8Tw0Jm7t+GV7KZhOi6jzsCzTtKbMvzU= +rsc.io/tmplfunc v0.0.3/go.mod h1:AG3sTPzElb1Io3Yg4voV9AGZJuleGAwaVRxL9M49PhA= diff --git a/proxy-router/internal/config/config.go b/proxy-router/internal/config/config.go index 3fcf7510..10ee6fc3 100644 --- a/proxy-router/internal/config/config.go +++ b/proxy-router/internal/config/config.go @@ -21,7 +21,8 @@ type Config struct { OpenAIKey string `env:"OPENAI_API_KEY" flag:"open-ai-api-key"` } Blockchain struct { - EthNodeAddress string `env:"ETH_NODE_ADDRESS" flag:"eth-node-address" validate:"required,url"` + ChainID int `env:"ETH_NODE_CHAIN_ID" flag:"eth-node-chain-id" validate:"required,number"` + EthNodeAddress string `env:"ETH_NODE_ADDRESS" flag:"eth-node-address" validate:"omitempty,url"` EthLegacyTx bool `env:"ETH_NODE_LEGACY_TX" flag:"eth-node-legacy-tx" desc:"use it to disable EIP-1559 transactions"` ExplorerApiUrl string `env:"EXPLORER_API_URL" flag:"explorer-api-url" validate:"required,url"` } diff --git a/proxy-router/internal/repositories/ethclient/ethclient.go b/proxy-router/internal/repositories/ethclient/ethclient.go new file mode 100644 index 00000000..842e8689 --- /dev/null +++ b/proxy-router/internal/repositories/ethclient/ethclient.go @@ -0,0 +1,273 @@ +package ethclient + +import ( + "context" + "errors" + "fmt" + "math/big" + + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" + "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/common/hexutil" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/rpc" +) + +// Client defines typed wrappers for the Ethereum RPC API. +type Client struct { + c RPCClient +} + +// NewClient creates a client that uses the given RPC client. +func NewClient(c RPCClient) *Client { + return &Client{c} +} + +// Close closes the underlying RPC connection. +func (ec *Client) Close() { + ec.c.Close() +} + +// Client gets the underlying RPC client. +func (ec *Client) Client() RPCClient { + return ec.c +} + +// Blockchain Access + +// ChainID retrieves the current chain ID for transaction replay protection. +func (ec *Client) ChainID(ctx context.Context) (*big.Int, error) { + var result hexutil.Big + err := ec.c.CallContext(ctx, &result, "eth_chainId") + if err != nil { + return nil, err + } + return (*big.Int)(&result), err +} + +// BlockNumber returns the most recent block number +func (ec *Client) BlockNumber(ctx context.Context) (uint64, error) { + var result hexutil.Uint64 + err := ec.c.CallContext(ctx, &result, "eth_blockNumber") + return uint64(result), err +} + +// HeaderByNumber returns a block header from the current canonical chain. If number is +// nil, the latest known header is returned. +func (ec *Client) HeaderByNumber(ctx context.Context, number *big.Int) (*types.Header, error) { + var head *types.Header + err := ec.c.CallContext(ctx, &head, "eth_getBlockByNumber", toBlockNumArg(number), false) + if err == nil && head == nil { + err = ethereum.NotFound + } + return head, err +} + +// TransactionReceipt returns the receipt of a transaction by transaction hash. +// Note that the receipt is not available for pending transactions. +func (ec *Client) TransactionReceipt(ctx context.Context, txHash common.Hash) (*types.Receipt, error) { + var r *types.Receipt + err := ec.c.CallContext(ctx, &r, "eth_getTransactionReceipt", txHash) + if err == nil && r == nil { + return nil, ethereum.NotFound + } + return r, err +} + +// State Access + +// BalanceAt returns the wei balance of the given account. +// The block number can be nil, in which case the balance is taken from the latest known block. +func (ec *Client) BalanceAt(ctx context.Context, account common.Address, blockNumber *big.Int) (*big.Int, error) { + var result hexutil.Big + err := ec.c.CallContext(ctx, &result, "eth_getBalance", account, toBlockNumArg(blockNumber)) + return (*big.Int)(&result), err +} + +// CodeAt returns the contract code of the given account. +// The block number can be nil, in which case the code is taken from the latest known block. +func (ec *Client) CodeAt(ctx context.Context, account common.Address, blockNumber *big.Int) ([]byte, error) { + var result hexutil.Bytes + err := ec.c.CallContext(ctx, &result, "eth_getCode", account, toBlockNumArg(blockNumber)) + return result, err +} + +// Filters + +// FilterLogs executes a filter query. +func (ec *Client) FilterLogs(ctx context.Context, q ethereum.FilterQuery) ([]types.Log, error) { + var result []types.Log + arg, err := toFilterArg(q) + if err != nil { + return nil, err + } + err = ec.c.CallContext(ctx, &result, "eth_getLogs", arg) + return result, err +} + +// SubscribeFilterLogs subscribes to the results of a streaming filter query. +func (ec *Client) SubscribeFilterLogs(ctx context.Context, q ethereum.FilterQuery, ch chan<- types.Log) (ethereum.Subscription, error) { + arg, err := toFilterArg(q) + if err != nil { + return nil, err + } + sub, err := ec.c.EthSubscribe(ctx, ch, "logs", arg) + if err != nil { + // Defensively prefer returning nil interface explicitly on error-path, instead + // of letting default golang behavior wrap it with non-nil interface that stores + // nil concrete type value. + return nil, err + } + return sub, nil +} + +func toFilterArg(q ethereum.FilterQuery) (interface{}, error) { + arg := map[string]interface{}{ + "address": q.Addresses, + "topics": q.Topics, + } + if q.BlockHash != nil { + arg["blockHash"] = *q.BlockHash + if q.FromBlock != nil || q.ToBlock != nil { + return nil, errors.New("cannot specify both BlockHash and FromBlock/ToBlock") + } + } else { + if q.FromBlock == nil { + arg["fromBlock"] = "0x0" + } else { + arg["fromBlock"] = toBlockNumArg(q.FromBlock) + } + arg["toBlock"] = toBlockNumArg(q.ToBlock) + } + return arg, nil +} + +// PendingCodeAt returns the contract code of the given account in the pending state. +func (ec *Client) PendingCodeAt(ctx context.Context, account common.Address) ([]byte, error) { + var result hexutil.Bytes + err := ec.c.CallContext(ctx, &result, "eth_getCode", account, "pending") + return result, err +} + +// PendingNonceAt returns the account nonce of the given account in the pending state. +// This is the nonce that should be used for the next transaction. +func (ec *Client) PendingNonceAt(ctx context.Context, account common.Address) (uint64, error) { + var result hexutil.Uint64 + err := ec.c.CallContext(ctx, &result, "eth_getTransactionCount", account, "pending") + return uint64(result), err +} + +// Contract Calling + +// CallContract executes a message call transaction, which is directly executed in the VM +// of the node, but never mined into the blockchain. +// +// blockNumber selects the block height at which the call runs. It can be nil, in which +// case the code is taken from the latest known block. Note that state from very old +// blocks might not be available. +func (ec *Client) CallContract(ctx context.Context, msg ethereum.CallMsg, blockNumber *big.Int) ([]byte, error) { + var hex hexutil.Bytes + err := ec.c.CallContext(ctx, &hex, "eth_call", toCallArg(msg), toBlockNumArg(blockNumber)) + if err != nil { + return nil, err + } + return hex, nil +} + +// SuggestGasPrice retrieves the currently suggested gas price to allow a timely +// execution of a transaction. +func (ec *Client) SuggestGasPrice(ctx context.Context) (*big.Int, error) { + var hex hexutil.Big + if err := ec.c.CallContext(ctx, &hex, "eth_gasPrice"); err != nil { + return nil, err + } + return (*big.Int)(&hex), nil +} + +// SuggestGasTipCap retrieves the currently suggested gas tip cap after 1559 to +// allow a timely execution of a transaction. +func (ec *Client) SuggestGasTipCap(ctx context.Context) (*big.Int, error) { + var hex hexutil.Big + if err := ec.c.CallContext(ctx, &hex, "eth_maxPriorityFeePerGas"); err != nil { + return nil, err + } + return (*big.Int)(&hex), nil +} + +// EstimateGas tries to estimate the gas needed to execute a specific transaction based on +// the current pending state of the backend blockchain. There is no guarantee that this is +// the true gas limit requirement as other transactions may be added or removed by miners, +// but it should provide a basis for setting a reasonable default. +func (ec *Client) EstimateGas(ctx context.Context, msg ethereum.CallMsg) (uint64, error) { + var hex hexutil.Uint64 + err := ec.c.CallContext(ctx, &hex, "eth_estimateGas", toCallArg(msg)) + if err != nil { + return 0, err + } + return uint64(hex), nil +} + +// SendTransaction injects a signed transaction into the pending pool for execution. +// +// If the transaction was a contract creation use the TransactionReceipt method to get the +// contract address after the transaction has been mined. +func (ec *Client) SendTransaction(ctx context.Context, tx *types.Transaction) error { + data, err := tx.MarshalBinary() + if err != nil { + return err + } + return ec.c.CallContext(ctx, nil, "eth_sendRawTransaction", hexutil.Encode(data)) +} + +func toBlockNumArg(number *big.Int) string { + if number == nil { + return "latest" + } + if number.Sign() >= 0 { + return hexutil.EncodeBig(number) + } + // It's negative. + if number.IsInt64() { + return rpc.BlockNumber(number.Int64()).String() + } + // It's negative and large, which is invalid. + return fmt.Sprintf("", number) +} + +func toCallArg(msg ethereum.CallMsg) interface{} { + arg := map[string]interface{}{ + "from": msg.From, + "to": msg.To, + } + if len(msg.Data) > 0 { + arg["input"] = hexutil.Bytes(msg.Data) + } + if msg.Value != nil { + arg["value"] = (*hexutil.Big)(msg.Value) + } + if msg.Gas != 0 { + arg["gas"] = hexutil.Uint64(msg.Gas) + } + if msg.GasPrice != nil { + arg["gasPrice"] = (*hexutil.Big)(msg.GasPrice) + } + if msg.GasFeeCap != nil { + arg["maxFeePerGas"] = (*hexutil.Big)(msg.GasFeeCap) + } + if msg.GasTipCap != nil { + arg["maxPriorityFeePerGas"] = (*hexutil.Big)(msg.GasTipCap) + } + if msg.AccessList != nil { + arg["accessList"] = msg.AccessList + } + if msg.BlobGasFeeCap != nil { + arg["maxFeePerBlobGas"] = (*hexutil.Big)(msg.BlobGasFeeCap) + } + if msg.BlobHashes != nil { + arg["blobVersionedHashes"] = msg.BlobHashes + } + return arg +} + +var _ interfaces.EthClient = (*Client)(nil) diff --git a/proxy-router/internal/repositories/ethclient/ethclient_test.go b/proxy-router/internal/repositories/ethclient/ethclient_test.go new file mode 100644 index 00000000..f93248d6 --- /dev/null +++ b/proxy-router/internal/repositories/ethclient/ethclient_test.go @@ -0,0 +1,41 @@ +package ethclient + +import ( + "fmt" + "sync" + "testing" + + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/modelregistry" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" + "github.com/ethereum/go-ethereum/common" + "github.com/stretchr/testify/require" +) + +func TestEthClient(t *testing.T) { + t.SkipNow() + rpcClient, err := NewRPCClientMultiple([]string{ + "https://arbitrum.blockpi.network/v1/rpc/public", + }, &lib.LoggerMock{}) + require.NoError(t, err) + client := NewClient(rpcClient) + + wg := sync.WaitGroup{} + + mr, err := modelregistry.NewModelRegistry(common.HexToAddress("0x0FC0c323Cf76E188654D63D62e668caBeC7a525b"), client) + require.NoError(t, err) + + for i := 0; i < 500; i++ { + wg.Add(1) + go func() { + ids, _, err := mr.ModelGetAll(nil) + defer wg.Done() + if err != nil { + fmt.Printf("Error: %s\n", err) + return + } + fmt.Printf("Models number: %d\n", len(ids)) + }() + + } + wg.Wait() +} diff --git a/proxy-router/internal/repositories/ethclient/public.go b/proxy-router/internal/repositories/ethclient/public.go new file mode 100644 index 00000000..212e3389 --- /dev/null +++ b/proxy-router/internal/repositories/ethclient/public.go @@ -0,0 +1,51 @@ +package ethclient + +import ( + "fmt" + + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" +) + +var publicRPCURLs = map[int][]string{ + 421614: { + "https://arbitrum-sepolia.blockpi.network/v1/rpc/public", + "https://sepolia-rollup.arbitrum.io/rpc", + "https://arbitrum-sepolia.gateway.tenderly.co", + "https://endpoints.omniatech.io/v1/arbitrum/sepolia/public", + "https://public.stackup.sh/api/v1/node/arbitrum-sepolia", + "https://arbitrum-sepolia-rpc.publicnode.com", + "https://rpc.ankr.com/arbitrum_sepolia", + "https://arbitrum-sepolia.public.blastapi.io", + }, + 42161: { + "https://arbitrum.llamarpc.com", + "https://api.zan.top/node/v1/arb/one/public", + "https://1rpc.io/arb", + "https://arbitrum.blockpi.network/v1/rpc/public", + "https://arb-pokt.nodies.app", + "https://arbitrum.drpc.org", + "https://arbitrum.meowrpc.com", + "https://rpc.ankr.com/arbitrum", + "https://arbitrum-one.public.blastapi.io", + "https://arbitrum.gateway.tenderly.co", + "https://arbitrum-one-rpc.publicnode.com", + "https://arbitrum-one.publicnode.com", + "https://arb1.arbitrum.io/rpc", + "https://arbitrum.rpc.subquery.network/public", + "https://api.stateless.solutions/arbitrum-one/v1/demo", + "https://public.stackup.sh/api/v1/node/arbitrum-one", + "https://rpc.arb1.arbitrum.gateway.fm", + "https://arb-mainnet-public.unifra.io", + "https://arb-mainnet.g.alchemy.com/v2/demo", + }, +} + +var ErrNotSupportedChain = fmt.Errorf("chain is not supported") + +func GetPublicRPCURLs(chainID int) ([]string, error) { + urls, ok := publicRPCURLs[chainID] + if !ok { + return nil, lib.WrapError(ErrNotSupportedChain, fmt.Errorf("chainID: %d", chainID)) + } + return urls, nil +} diff --git a/proxy-router/internal/repositories/ethclient/rpcclient.go b/proxy-router/internal/repositories/ethclient/rpcclient.go new file mode 100644 index 00000000..f127020e --- /dev/null +++ b/proxy-router/internal/repositories/ethclient/rpcclient.go @@ -0,0 +1,14 @@ +package ethclient + +import ( + "context" + + "github.com/ethereum/go-ethereum/rpc" +) + +type RPCClient interface { + Close() + BatchCallContext(context.Context, []rpc.BatchElem) error + CallContext(ctx context.Context, result interface{}, method string, args ...interface{}) error + EthSubscribe(ctx context.Context, channel interface{}, args ...interface{}) (*rpc.ClientSubscription, error) +} diff --git a/proxy-router/internal/repositories/ethclient/rpcclientmultiple.go b/proxy-router/internal/repositories/ethclient/rpcclientmultiple.go new file mode 100644 index 00000000..f07c3e13 --- /dev/null +++ b/proxy-router/internal/repositories/ethclient/rpcclientmultiple.go @@ -0,0 +1,106 @@ +package ethclient + +import ( + "context" + "fmt" + + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" + "github.com/ethereum/go-ethereum/rpc" +) + +// Wrapper around multiple RPC clients, used to retry calls on multiple endpoints +type RPCClientMultiple struct { + clients []*rpcClient + log lib.ILogger +} + +func NewRPCClientMultiple(urls []string, log lib.ILogger) (*RPCClientMultiple, error) { + clients := make([]*rpcClient, len(urls)) + + for i, url := range urls { + client, err := rpc.DialOptions(context.Background(), url) + if err != nil { + return nil, err + } + clients[i] = &rpcClient{ + url: url, + client: client, + } + } + + return &RPCClientMultiple{clients: clients, log: log}, nil +} + +func (c *RPCClientMultiple) CallContext(ctx context.Context, result interface{}, method string, args ...interface{}) error { + return c.retriableCall(ctx, func(client *rpcClient) error { + return client.client.CallContext(ctx, result, method, args...) + }) +} + +func (c *RPCClientMultiple) BatchCallContext(ctx context.Context, b []rpc.BatchElem) error { + return c.retriableCall(ctx, func(client *rpcClient) error { + return client.client.BatchCallContext(ctx, b) + }) +} + +func (c *RPCClientMultiple) Close() { + for _, rpcClient := range c.clients { + rpcClient.client.Close() + } +} + +func (c *RPCClientMultiple) EthSubscribe(ctx context.Context, channel interface{}, args ...interface{}) (*rpc.ClientSubscription, error) { + return nil, fmt.Errorf("not implemented") +} + +// retriableCall is a helper function that retries the call on different endpoints +func (c *RPCClientMultiple) retriableCall(ctx context.Context, fn func(client *rpcClient) error) error { + var lastErr error + + for _, rpcClient := range c.clients { + if ctx.Err() != nil { + return ctx.Err() + } + + c.log.Debugf("calling eth endpoint %s", rpcClient.url) + err := fn(rpcClient) + if err == nil { + return nil + } + + retryable := c.shouldBeRetried(err) + c.log.Debugf("error (retryable: %t) calling eth endpoint %s: %s", retryable, rpcClient.url, err) + if !retryable { + return err + } + + lastErr = err + } + + c.log.Debugf("all endpoints failed") + return lastErr +} + +func (c *RPCClientMultiple) shouldBeRetried(err error) bool { + switch err.(type) { + case rpc.HTTPError: + // if err.(rpc.HTTPError).StatusCode == 429 { + // return true + // } + return true + case JSONError: + return false + } + return false +} + +type JSONError interface { + Error() string + ErrorCode() int + ErrorData() interface{} +} + +type rpcClient struct { + url string + client *rpc.Client +} From 924a25228b17bede3db12a0f32f7ee786e3548f0 Mon Sep 17 00:00:00 2001 From: shev Date: Thu, 10 Oct 2024 12:31:31 +0200 Subject: [PATCH 009/260] feat: polling/subscription modes for getting blockchain events --- proxy-router/.mockery.yaml | 9 + proxy-router/Makefile | 5 +- proxy-router/cmd/main.go | 10 +- .../internal/blockchainapi/event_listener.go | 6 +- proxy-router/internal/config/config.go | 20 +- .../interfaces/mocks/eth_client_mock.go | 910 ++++++++++++++++++ .../repositories/contracts/log_watcher.go | 13 + .../contracts/log_watcher_polling.go | 109 +++ .../contracts/log_watcher_polling_test.go | 159 +++ .../contracts/log_watcher_subscription.go | 103 ++ .../internal/repositories/contracts/mapper.go | 2 - .../repositories/contracts/subscription.go | 98 +- 12 files changed, 1337 insertions(+), 107 deletions(-) create mode 100644 proxy-router/.mockery.yaml create mode 100644 proxy-router/internal/interfaces/mocks/eth_client_mock.go create mode 100644 proxy-router/internal/repositories/contracts/log_watcher.go create mode 100644 proxy-router/internal/repositories/contracts/log_watcher_polling.go create mode 100644 proxy-router/internal/repositories/contracts/log_watcher_polling_test.go create mode 100644 proxy-router/internal/repositories/contracts/log_watcher_subscription.go diff --git a/proxy-router/.mockery.yaml b/proxy-router/.mockery.yaml new file mode 100644 index 00000000..896ce376 --- /dev/null +++ b/proxy-router/.mockery.yaml @@ -0,0 +1,9 @@ +with-expecter: true +filename: "{{.InterfaceName | snakecase}}_mock.go" +dir: "{{.InterfaceDir}}/mocks" +mockname: "{{.InterfaceName}}Mock" +outpkg: "mocks" +packages: + github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces: + interfaces: + EthClient: diff --git a/proxy-router/Makefile b/proxy-router/Makefile index ffdc7b6f..1f14645d 100644 --- a/proxy-router/Makefile +++ b/proxy-router/Makefile @@ -35,4 +35,7 @@ test-integration: go test -v ./test/... swagger: - swag fmt -g ./internal/handlers/httphandlers/http.go && swag init -g ./internal/handlers/httphandlers/http.go --parseInternal \ No newline at end of file + swag fmt -g ./internal/handlers/httphandlers/http.go && swag init -g ./internal/handlers/httphandlers/http.go --parseInternal + +mocks: + mockery \ No newline at end of file diff --git a/proxy-router/cmd/main.go b/proxy-router/cmd/main.go index 1de52594..ebe30ff1 100644 --- a/proxy-router/cmd/main.go +++ b/proxy-router/cmd/main.go @@ -19,6 +19,7 @@ import ( "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/proxyapi" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/proxyctl" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/contracts" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/ethclient" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/registries" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/transport" @@ -225,6 +226,13 @@ func start() error { log.Infof("Using keychain wallet") } + var logWatcher contracts.LogWatcher + if cfg.Blockchain.UseSubscriptions { + logWatcher = contracts.NewLogWatcherSubscription(ethClient, cfg.Blockchain.MaxReconnects, log) + } else { + logWatcher = contracts.NewLogWatcherPolling(ethClient, cfg.Blockchain.PollingInterval, cfg.Blockchain.MaxReconnects, log) + } + modelConfigLoader := config.NewModelConfigLoader(cfg.Proxy.ModelsConfigPath, log) err = modelConfigLoader.Init() if err != nil { @@ -237,7 +245,7 @@ func start() error { sessionRouter := registries.NewSessionRouter(*cfg.Marketplace.DiamondContractAddress, ethClient, log) - eventListener := blockchainapi.NewEventsListener(ethClient, sessionStorage, sessionRouter, wallet, modelConfigLoader, log) + eventListener := blockchainapi.NewEventsListener(ethClient, sessionStorage, sessionRouter, wallet, modelConfigLoader, logWatcher, log) blockchainController := blockchainapi.NewBlockchainController(blockchainApi, log) diff --git a/proxy-router/internal/blockchainapi/event_listener.go b/proxy-router/internal/blockchainapi/event_listener.go index cbe0511e..d4b2b3fb 100644 --- a/proxy-router/internal/blockchainapi/event_listener.go +++ b/proxy-router/internal/blockchainapi/event_listener.go @@ -21,9 +21,10 @@ type EventsListener struct { client bind.ContractFilterer wallet interfaces.Wallet modelConfigLoader *config.ModelConfigLoader + logWatcher contracts.LogWatcher } -func NewEventsListener(client bind.ContractFilterer, store *storages.SessionStorage, sessionRouter *registries.SessionRouter, wallet interfaces.Wallet, modelConfigLoader *config.ModelConfigLoader, log *lib.Logger) *EventsListener { +func NewEventsListener(client bind.ContractFilterer, store *storages.SessionStorage, sessionRouter *registries.SessionRouter, wallet interfaces.Wallet, modelConfigLoader *config.ModelConfigLoader, logWatcher contracts.LogWatcher, log *lib.Logger) *EventsListener { return &EventsListener{ store: store, log: log, @@ -31,6 +32,7 @@ func NewEventsListener(client bind.ContractFilterer, store *storages.SessionStor client: client, wallet: wallet, modelConfigLoader: modelConfigLoader, + logWatcher: logWatcher, } } @@ -39,7 +41,7 @@ func (e *EventsListener) Run(ctx context.Context) error { _ = e.log.Close() }() - sub, err := contracts.WatchContractEvents(ctx, e.client, e.sessionRouter.GetContractAddress(), contracts.CreateEventMapper(contracts.BlockchainEventFactory, e.sessionRouter.GetABI()), e.log) + sub, err := e.logWatcher.Watch(ctx, e.sessionRouter.GetContractAddress(), contracts.CreateEventMapper(contracts.SessionRouterEventFactory, e.sessionRouter.GetABI()), nil) if err != nil { return err } diff --git a/proxy-router/internal/config/config.go b/proxy-router/internal/config/config.go index 10ee6fc3..769ebd76 100644 --- a/proxy-router/internal/config/config.go +++ b/proxy-router/internal/config/config.go @@ -4,6 +4,7 @@ import ( "fmt" "math/big" "runtime" + "time" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" "github.com/ethereum/go-ethereum/common" @@ -21,10 +22,13 @@ type Config struct { OpenAIKey string `env:"OPENAI_API_KEY" flag:"open-ai-api-key"` } Blockchain struct { - ChainID int `env:"ETH_NODE_CHAIN_ID" flag:"eth-node-chain-id" validate:"required,number"` - EthNodeAddress string `env:"ETH_NODE_ADDRESS" flag:"eth-node-address" validate:"omitempty,url"` - EthLegacyTx bool `env:"ETH_NODE_LEGACY_TX" flag:"eth-node-legacy-tx" desc:"use it to disable EIP-1559 transactions"` - ExplorerApiUrl string `env:"EXPLORER_API_URL" flag:"explorer-api-url" validate:"required,url"` + ChainID int `env:"ETH_NODE_CHAIN_ID" flag:"eth-node-chain-id" validate:"required,number"` + EthNodeAddress string `env:"ETH_NODE_ADDRESS" flag:"eth-node-address" validate:"omitempty,url"` + EthLegacyTx bool `env:"ETH_NODE_LEGACY_TX" flag:"eth-node-legacy-tx" desc:"use it to disable EIP-1559 transactions"` + ExplorerApiUrl string `env:"EXPLORER_API_URL" flag:"explorer-api-url" validate:"required,url"` + UseSubscriptions bool `env:"ETH_NODE_USE_SUBSCRIPTIONS" flag:"eth-node-use-subscriptions" desc:"set it to true to enable subscriptions for blockchain events, otherwise default polling will be used"` + PollingInterval time.Duration `env:"ETH_NODE_POLLING_INTERVAL" flag:"eth-node-polling-interval" validate:"omitempty,duration" desc:"interval for polling eth node for new events"` + MaxReconnects int `env:"ETH_NODE_MAX_RECONNECTS" flag:"eth-node-max-reconnects" validate:"omitempty,gte=0" desc:"max reconnects to eth node"` } Environment string `env:"ENVIRONMENT" flag:"environment"` Marketplace struct { @@ -69,6 +73,14 @@ func (cfg *Config) SetDefaults() { cfg.Environment = "development" } + // Blockchain + if cfg.Blockchain.MaxReconnects == 0 { + cfg.Blockchain.MaxReconnects = 30 + } + if cfg.Blockchain.PollingInterval == 0 { + cfg.Blockchain.PollingInterval = 10 * time.Second + } + // Log if cfg.Log.LevelConnection == "" { diff --git a/proxy-router/internal/interfaces/mocks/eth_client_mock.go b/proxy-router/internal/interfaces/mocks/eth_client_mock.go new file mode 100644 index 00000000..08c7b500 --- /dev/null +++ b/proxy-router/internal/interfaces/mocks/eth_client_mock.go @@ -0,0 +1,910 @@ +// Code generated by mockery v2.46.2. DO NOT EDIT. + +package mocks + +import ( + context "context" + big "math/big" + + common "github.com/ethereum/go-ethereum/common" + + ethereum "github.com/ethereum/go-ethereum" + + mock "github.com/stretchr/testify/mock" + + types "github.com/ethereum/go-ethereum/core/types" +) + +// EthClientMock is an autogenerated mock type for the EthClient type +type EthClientMock struct { + mock.Mock +} + +type EthClientMock_Expecter struct { + mock *mock.Mock +} + +func (_m *EthClientMock) EXPECT() *EthClientMock_Expecter { + return &EthClientMock_Expecter{mock: &_m.Mock} +} + +// BalanceAt provides a mock function with given fields: _a0, _a1, _a2 +func (_m *EthClientMock) BalanceAt(_a0 context.Context, _a1 common.Address, _a2 *big.Int) (*big.Int, error) { + ret := _m.Called(_a0, _a1, _a2) + + if len(ret) == 0 { + panic("no return value specified for BalanceAt") + } + + var r0 *big.Int + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, common.Address, *big.Int) (*big.Int, error)); ok { + return rf(_a0, _a1, _a2) + } + if rf, ok := ret.Get(0).(func(context.Context, common.Address, *big.Int) *big.Int); ok { + r0 = rf(_a0, _a1, _a2) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*big.Int) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, common.Address, *big.Int) error); ok { + r1 = rf(_a0, _a1, _a2) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EthClientMock_BalanceAt_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BalanceAt' +type EthClientMock_BalanceAt_Call struct { + *mock.Call +} + +// BalanceAt is a helper method to define mock.On call +// - _a0 context.Context +// - _a1 common.Address +// - _a2 *big.Int +func (_e *EthClientMock_Expecter) BalanceAt(_a0 interface{}, _a1 interface{}, _a2 interface{}) *EthClientMock_BalanceAt_Call { + return &EthClientMock_BalanceAt_Call{Call: _e.mock.On("BalanceAt", _a0, _a1, _a2)} +} + +func (_c *EthClientMock_BalanceAt_Call) Run(run func(_a0 context.Context, _a1 common.Address, _a2 *big.Int)) *EthClientMock_BalanceAt_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(common.Address), args[2].(*big.Int)) + }) + return _c +} + +func (_c *EthClientMock_BalanceAt_Call) Return(_a0 *big.Int, _a1 error) *EthClientMock_BalanceAt_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EthClientMock_BalanceAt_Call) RunAndReturn(run func(context.Context, common.Address, *big.Int) (*big.Int, error)) *EthClientMock_BalanceAt_Call { + _c.Call.Return(run) + return _c +} + +// BlockNumber provides a mock function with given fields: _a0 +func (_m *EthClientMock) BlockNumber(_a0 context.Context) (uint64, error) { + ret := _m.Called(_a0) + + if len(ret) == 0 { + panic("no return value specified for BlockNumber") + } + + var r0 uint64 + var r1 error + if rf, ok := ret.Get(0).(func(context.Context) (uint64, error)); ok { + return rf(_a0) + } + if rf, ok := ret.Get(0).(func(context.Context) uint64); ok { + r0 = rf(_a0) + } else { + r0 = ret.Get(0).(uint64) + } + + if rf, ok := ret.Get(1).(func(context.Context) error); ok { + r1 = rf(_a0) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EthClientMock_BlockNumber_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockNumber' +type EthClientMock_BlockNumber_Call struct { + *mock.Call +} + +// BlockNumber is a helper method to define mock.On call +// - _a0 context.Context +func (_e *EthClientMock_Expecter) BlockNumber(_a0 interface{}) *EthClientMock_BlockNumber_Call { + return &EthClientMock_BlockNumber_Call{Call: _e.mock.On("BlockNumber", _a0)} +} + +func (_c *EthClientMock_BlockNumber_Call) Run(run func(_a0 context.Context)) *EthClientMock_BlockNumber_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context)) + }) + return _c +} + +func (_c *EthClientMock_BlockNumber_Call) Return(_a0 uint64, _a1 error) *EthClientMock_BlockNumber_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EthClientMock_BlockNumber_Call) RunAndReturn(run func(context.Context) (uint64, error)) *EthClientMock_BlockNumber_Call { + _c.Call.Return(run) + return _c +} + +// CallContract provides a mock function with given fields: ctx, call, blockNumber +func (_m *EthClientMock) CallContract(ctx context.Context, call ethereum.CallMsg, blockNumber *big.Int) ([]byte, error) { + ret := _m.Called(ctx, call, blockNumber) + + if len(ret) == 0 { + panic("no return value specified for CallContract") + } + + var r0 []byte + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, ethereum.CallMsg, *big.Int) ([]byte, error)); ok { + return rf(ctx, call, blockNumber) + } + if rf, ok := ret.Get(0).(func(context.Context, ethereum.CallMsg, *big.Int) []byte); ok { + r0 = rf(ctx, call, blockNumber) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).([]byte) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, ethereum.CallMsg, *big.Int) error); ok { + r1 = rf(ctx, call, blockNumber) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EthClientMock_CallContract_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'CallContract' +type EthClientMock_CallContract_Call struct { + *mock.Call +} + +// CallContract is a helper method to define mock.On call +// - ctx context.Context +// - call ethereum.CallMsg +// - blockNumber *big.Int +func (_e *EthClientMock_Expecter) CallContract(ctx interface{}, call interface{}, blockNumber interface{}) *EthClientMock_CallContract_Call { + return &EthClientMock_CallContract_Call{Call: _e.mock.On("CallContract", ctx, call, blockNumber)} +} + +func (_c *EthClientMock_CallContract_Call) Run(run func(ctx context.Context, call ethereum.CallMsg, blockNumber *big.Int)) *EthClientMock_CallContract_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(ethereum.CallMsg), args[2].(*big.Int)) + }) + return _c +} + +func (_c *EthClientMock_CallContract_Call) Return(_a0 []byte, _a1 error) *EthClientMock_CallContract_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EthClientMock_CallContract_Call) RunAndReturn(run func(context.Context, ethereum.CallMsg, *big.Int) ([]byte, error)) *EthClientMock_CallContract_Call { + _c.Call.Return(run) + return _c +} + +// ChainID provides a mock function with given fields: _a0 +func (_m *EthClientMock) ChainID(_a0 context.Context) (*big.Int, error) { + ret := _m.Called(_a0) + + if len(ret) == 0 { + panic("no return value specified for ChainID") + } + + var r0 *big.Int + var r1 error + if rf, ok := ret.Get(0).(func(context.Context) (*big.Int, error)); ok { + return rf(_a0) + } + if rf, ok := ret.Get(0).(func(context.Context) *big.Int); ok { + r0 = rf(_a0) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*big.Int) + } + } + + if rf, ok := ret.Get(1).(func(context.Context) error); ok { + r1 = rf(_a0) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EthClientMock_ChainID_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ChainID' +type EthClientMock_ChainID_Call struct { + *mock.Call +} + +// ChainID is a helper method to define mock.On call +// - _a0 context.Context +func (_e *EthClientMock_Expecter) ChainID(_a0 interface{}) *EthClientMock_ChainID_Call { + return &EthClientMock_ChainID_Call{Call: _e.mock.On("ChainID", _a0)} +} + +func (_c *EthClientMock_ChainID_Call) Run(run func(_a0 context.Context)) *EthClientMock_ChainID_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context)) + }) + return _c +} + +func (_c *EthClientMock_ChainID_Call) Return(_a0 *big.Int, _a1 error) *EthClientMock_ChainID_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EthClientMock_ChainID_Call) RunAndReturn(run func(context.Context) (*big.Int, error)) *EthClientMock_ChainID_Call { + _c.Call.Return(run) + return _c +} + +// CodeAt provides a mock function with given fields: ctx, contract, blockNumber +func (_m *EthClientMock) CodeAt(ctx context.Context, contract common.Address, blockNumber *big.Int) ([]byte, error) { + ret := _m.Called(ctx, contract, blockNumber) + + if len(ret) == 0 { + panic("no return value specified for CodeAt") + } + + var r0 []byte + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, common.Address, *big.Int) ([]byte, error)); ok { + return rf(ctx, contract, blockNumber) + } + if rf, ok := ret.Get(0).(func(context.Context, common.Address, *big.Int) []byte); ok { + r0 = rf(ctx, contract, blockNumber) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).([]byte) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, common.Address, *big.Int) error); ok { + r1 = rf(ctx, contract, blockNumber) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EthClientMock_CodeAt_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'CodeAt' +type EthClientMock_CodeAt_Call struct { + *mock.Call +} + +// CodeAt is a helper method to define mock.On call +// - ctx context.Context +// - contract common.Address +// - blockNumber *big.Int +func (_e *EthClientMock_Expecter) CodeAt(ctx interface{}, contract interface{}, blockNumber interface{}) *EthClientMock_CodeAt_Call { + return &EthClientMock_CodeAt_Call{Call: _e.mock.On("CodeAt", ctx, contract, blockNumber)} +} + +func (_c *EthClientMock_CodeAt_Call) Run(run func(ctx context.Context, contract common.Address, blockNumber *big.Int)) *EthClientMock_CodeAt_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(common.Address), args[2].(*big.Int)) + }) + return _c +} + +func (_c *EthClientMock_CodeAt_Call) Return(_a0 []byte, _a1 error) *EthClientMock_CodeAt_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EthClientMock_CodeAt_Call) RunAndReturn(run func(context.Context, common.Address, *big.Int) ([]byte, error)) *EthClientMock_CodeAt_Call { + _c.Call.Return(run) + return _c +} + +// EstimateGas provides a mock function with given fields: ctx, call +func (_m *EthClientMock) EstimateGas(ctx context.Context, call ethereum.CallMsg) (uint64, error) { + ret := _m.Called(ctx, call) + + if len(ret) == 0 { + panic("no return value specified for EstimateGas") + } + + var r0 uint64 + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, ethereum.CallMsg) (uint64, error)); ok { + return rf(ctx, call) + } + if rf, ok := ret.Get(0).(func(context.Context, ethereum.CallMsg) uint64); ok { + r0 = rf(ctx, call) + } else { + r0 = ret.Get(0).(uint64) + } + + if rf, ok := ret.Get(1).(func(context.Context, ethereum.CallMsg) error); ok { + r1 = rf(ctx, call) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EthClientMock_EstimateGas_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'EstimateGas' +type EthClientMock_EstimateGas_Call struct { + *mock.Call +} + +// EstimateGas is a helper method to define mock.On call +// - ctx context.Context +// - call ethereum.CallMsg +func (_e *EthClientMock_Expecter) EstimateGas(ctx interface{}, call interface{}) *EthClientMock_EstimateGas_Call { + return &EthClientMock_EstimateGas_Call{Call: _e.mock.On("EstimateGas", ctx, call)} +} + +func (_c *EthClientMock_EstimateGas_Call) Run(run func(ctx context.Context, call ethereum.CallMsg)) *EthClientMock_EstimateGas_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(ethereum.CallMsg)) + }) + return _c +} + +func (_c *EthClientMock_EstimateGas_Call) Return(_a0 uint64, _a1 error) *EthClientMock_EstimateGas_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EthClientMock_EstimateGas_Call) RunAndReturn(run func(context.Context, ethereum.CallMsg) (uint64, error)) *EthClientMock_EstimateGas_Call { + _c.Call.Return(run) + return _c +} + +// FilterLogs provides a mock function with given fields: ctx, q +func (_m *EthClientMock) FilterLogs(ctx context.Context, q ethereum.FilterQuery) ([]types.Log, error) { + ret := _m.Called(ctx, q) + + if len(ret) == 0 { + panic("no return value specified for FilterLogs") + } + + var r0 []types.Log + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, ethereum.FilterQuery) ([]types.Log, error)); ok { + return rf(ctx, q) + } + if rf, ok := ret.Get(0).(func(context.Context, ethereum.FilterQuery) []types.Log); ok { + r0 = rf(ctx, q) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).([]types.Log) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, ethereum.FilterQuery) error); ok { + r1 = rf(ctx, q) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EthClientMock_FilterLogs_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'FilterLogs' +type EthClientMock_FilterLogs_Call struct { + *mock.Call +} + +// FilterLogs is a helper method to define mock.On call +// - ctx context.Context +// - q ethereum.FilterQuery +func (_e *EthClientMock_Expecter) FilterLogs(ctx interface{}, q interface{}) *EthClientMock_FilterLogs_Call { + return &EthClientMock_FilterLogs_Call{Call: _e.mock.On("FilterLogs", ctx, q)} +} + +func (_c *EthClientMock_FilterLogs_Call) Run(run func(ctx context.Context, q ethereum.FilterQuery)) *EthClientMock_FilterLogs_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(ethereum.FilterQuery)) + }) + return _c +} + +func (_c *EthClientMock_FilterLogs_Call) Return(_a0 []types.Log, _a1 error) *EthClientMock_FilterLogs_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EthClientMock_FilterLogs_Call) RunAndReturn(run func(context.Context, ethereum.FilterQuery) ([]types.Log, error)) *EthClientMock_FilterLogs_Call { + _c.Call.Return(run) + return _c +} + +// HeaderByNumber provides a mock function with given fields: ctx, number +func (_m *EthClientMock) HeaderByNumber(ctx context.Context, number *big.Int) (*types.Header, error) { + ret := _m.Called(ctx, number) + + if len(ret) == 0 { + panic("no return value specified for HeaderByNumber") + } + + var r0 *types.Header + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *big.Int) (*types.Header, error)); ok { + return rf(ctx, number) + } + if rf, ok := ret.Get(0).(func(context.Context, *big.Int) *types.Header); ok { + r0 = rf(ctx, number) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*types.Header) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, *big.Int) error); ok { + r1 = rf(ctx, number) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EthClientMock_HeaderByNumber_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'HeaderByNumber' +type EthClientMock_HeaderByNumber_Call struct { + *mock.Call +} + +// HeaderByNumber is a helper method to define mock.On call +// - ctx context.Context +// - number *big.Int +func (_e *EthClientMock_Expecter) HeaderByNumber(ctx interface{}, number interface{}) *EthClientMock_HeaderByNumber_Call { + return &EthClientMock_HeaderByNumber_Call{Call: _e.mock.On("HeaderByNumber", ctx, number)} +} + +func (_c *EthClientMock_HeaderByNumber_Call) Run(run func(ctx context.Context, number *big.Int)) *EthClientMock_HeaderByNumber_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(*big.Int)) + }) + return _c +} + +func (_c *EthClientMock_HeaderByNumber_Call) Return(_a0 *types.Header, _a1 error) *EthClientMock_HeaderByNumber_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EthClientMock_HeaderByNumber_Call) RunAndReturn(run func(context.Context, *big.Int) (*types.Header, error)) *EthClientMock_HeaderByNumber_Call { + _c.Call.Return(run) + return _c +} + +// PendingCodeAt provides a mock function with given fields: ctx, account +func (_m *EthClientMock) PendingCodeAt(ctx context.Context, account common.Address) ([]byte, error) { + ret := _m.Called(ctx, account) + + if len(ret) == 0 { + panic("no return value specified for PendingCodeAt") + } + + var r0 []byte + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, common.Address) ([]byte, error)); ok { + return rf(ctx, account) + } + if rf, ok := ret.Get(0).(func(context.Context, common.Address) []byte); ok { + r0 = rf(ctx, account) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).([]byte) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, common.Address) error); ok { + r1 = rf(ctx, account) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EthClientMock_PendingCodeAt_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'PendingCodeAt' +type EthClientMock_PendingCodeAt_Call struct { + *mock.Call +} + +// PendingCodeAt is a helper method to define mock.On call +// - ctx context.Context +// - account common.Address +func (_e *EthClientMock_Expecter) PendingCodeAt(ctx interface{}, account interface{}) *EthClientMock_PendingCodeAt_Call { + return &EthClientMock_PendingCodeAt_Call{Call: _e.mock.On("PendingCodeAt", ctx, account)} +} + +func (_c *EthClientMock_PendingCodeAt_Call) Run(run func(ctx context.Context, account common.Address)) *EthClientMock_PendingCodeAt_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(common.Address)) + }) + return _c +} + +func (_c *EthClientMock_PendingCodeAt_Call) Return(_a0 []byte, _a1 error) *EthClientMock_PendingCodeAt_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EthClientMock_PendingCodeAt_Call) RunAndReturn(run func(context.Context, common.Address) ([]byte, error)) *EthClientMock_PendingCodeAt_Call { + _c.Call.Return(run) + return _c +} + +// PendingNonceAt provides a mock function with given fields: ctx, account +func (_m *EthClientMock) PendingNonceAt(ctx context.Context, account common.Address) (uint64, error) { + ret := _m.Called(ctx, account) + + if len(ret) == 0 { + panic("no return value specified for PendingNonceAt") + } + + var r0 uint64 + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, common.Address) (uint64, error)); ok { + return rf(ctx, account) + } + if rf, ok := ret.Get(0).(func(context.Context, common.Address) uint64); ok { + r0 = rf(ctx, account) + } else { + r0 = ret.Get(0).(uint64) + } + + if rf, ok := ret.Get(1).(func(context.Context, common.Address) error); ok { + r1 = rf(ctx, account) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EthClientMock_PendingNonceAt_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'PendingNonceAt' +type EthClientMock_PendingNonceAt_Call struct { + *mock.Call +} + +// PendingNonceAt is a helper method to define mock.On call +// - ctx context.Context +// - account common.Address +func (_e *EthClientMock_Expecter) PendingNonceAt(ctx interface{}, account interface{}) *EthClientMock_PendingNonceAt_Call { + return &EthClientMock_PendingNonceAt_Call{Call: _e.mock.On("PendingNonceAt", ctx, account)} +} + +func (_c *EthClientMock_PendingNonceAt_Call) Run(run func(ctx context.Context, account common.Address)) *EthClientMock_PendingNonceAt_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(common.Address)) + }) + return _c +} + +func (_c *EthClientMock_PendingNonceAt_Call) Return(_a0 uint64, _a1 error) *EthClientMock_PendingNonceAt_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EthClientMock_PendingNonceAt_Call) RunAndReturn(run func(context.Context, common.Address) (uint64, error)) *EthClientMock_PendingNonceAt_Call { + _c.Call.Return(run) + return _c +} + +// SendTransaction provides a mock function with given fields: ctx, tx +func (_m *EthClientMock) SendTransaction(ctx context.Context, tx *types.Transaction) error { + ret := _m.Called(ctx, tx) + + if len(ret) == 0 { + panic("no return value specified for SendTransaction") + } + + var r0 error + if rf, ok := ret.Get(0).(func(context.Context, *types.Transaction) error); ok { + r0 = rf(ctx, tx) + } else { + r0 = ret.Error(0) + } + + return r0 +} + +// EthClientMock_SendTransaction_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'SendTransaction' +type EthClientMock_SendTransaction_Call struct { + *mock.Call +} + +// SendTransaction is a helper method to define mock.On call +// - ctx context.Context +// - tx *types.Transaction +func (_e *EthClientMock_Expecter) SendTransaction(ctx interface{}, tx interface{}) *EthClientMock_SendTransaction_Call { + return &EthClientMock_SendTransaction_Call{Call: _e.mock.On("SendTransaction", ctx, tx)} +} + +func (_c *EthClientMock_SendTransaction_Call) Run(run func(ctx context.Context, tx *types.Transaction)) *EthClientMock_SendTransaction_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(*types.Transaction)) + }) + return _c +} + +func (_c *EthClientMock_SendTransaction_Call) Return(_a0 error) *EthClientMock_SendTransaction_Call { + _c.Call.Return(_a0) + return _c +} + +func (_c *EthClientMock_SendTransaction_Call) RunAndReturn(run func(context.Context, *types.Transaction) error) *EthClientMock_SendTransaction_Call { + _c.Call.Return(run) + return _c +} + +// SubscribeFilterLogs provides a mock function with given fields: ctx, q, ch +func (_m *EthClientMock) SubscribeFilterLogs(ctx context.Context, q ethereum.FilterQuery, ch chan<- types.Log) (ethereum.Subscription, error) { + ret := _m.Called(ctx, q, ch) + + if len(ret) == 0 { + panic("no return value specified for SubscribeFilterLogs") + } + + var r0 ethereum.Subscription + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, ethereum.FilterQuery, chan<- types.Log) (ethereum.Subscription, error)); ok { + return rf(ctx, q, ch) + } + if rf, ok := ret.Get(0).(func(context.Context, ethereum.FilterQuery, chan<- types.Log) ethereum.Subscription); ok { + r0 = rf(ctx, q, ch) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(ethereum.Subscription) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, ethereum.FilterQuery, chan<- types.Log) error); ok { + r1 = rf(ctx, q, ch) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EthClientMock_SubscribeFilterLogs_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'SubscribeFilterLogs' +type EthClientMock_SubscribeFilterLogs_Call struct { + *mock.Call +} + +// SubscribeFilterLogs is a helper method to define mock.On call +// - ctx context.Context +// - q ethereum.FilterQuery +// - ch chan<- types.Log +func (_e *EthClientMock_Expecter) SubscribeFilterLogs(ctx interface{}, q interface{}, ch interface{}) *EthClientMock_SubscribeFilterLogs_Call { + return &EthClientMock_SubscribeFilterLogs_Call{Call: _e.mock.On("SubscribeFilterLogs", ctx, q, ch)} +} + +func (_c *EthClientMock_SubscribeFilterLogs_Call) Run(run func(ctx context.Context, q ethereum.FilterQuery, ch chan<- types.Log)) *EthClientMock_SubscribeFilterLogs_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(ethereum.FilterQuery), args[2].(chan<- types.Log)) + }) + return _c +} + +func (_c *EthClientMock_SubscribeFilterLogs_Call) Return(_a0 ethereum.Subscription, _a1 error) *EthClientMock_SubscribeFilterLogs_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EthClientMock_SubscribeFilterLogs_Call) RunAndReturn(run func(context.Context, ethereum.FilterQuery, chan<- types.Log) (ethereum.Subscription, error)) *EthClientMock_SubscribeFilterLogs_Call { + _c.Call.Return(run) + return _c +} + +// SuggestGasPrice provides a mock function with given fields: ctx +func (_m *EthClientMock) SuggestGasPrice(ctx context.Context) (*big.Int, error) { + ret := _m.Called(ctx) + + if len(ret) == 0 { + panic("no return value specified for SuggestGasPrice") + } + + var r0 *big.Int + var r1 error + if rf, ok := ret.Get(0).(func(context.Context) (*big.Int, error)); ok { + return rf(ctx) + } + if rf, ok := ret.Get(0).(func(context.Context) *big.Int); ok { + r0 = rf(ctx) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*big.Int) + } + } + + if rf, ok := ret.Get(1).(func(context.Context) error); ok { + r1 = rf(ctx) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EthClientMock_SuggestGasPrice_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'SuggestGasPrice' +type EthClientMock_SuggestGasPrice_Call struct { + *mock.Call +} + +// SuggestGasPrice is a helper method to define mock.On call +// - ctx context.Context +func (_e *EthClientMock_Expecter) SuggestGasPrice(ctx interface{}) *EthClientMock_SuggestGasPrice_Call { + return &EthClientMock_SuggestGasPrice_Call{Call: _e.mock.On("SuggestGasPrice", ctx)} +} + +func (_c *EthClientMock_SuggestGasPrice_Call) Run(run func(ctx context.Context)) *EthClientMock_SuggestGasPrice_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context)) + }) + return _c +} + +func (_c *EthClientMock_SuggestGasPrice_Call) Return(_a0 *big.Int, _a1 error) *EthClientMock_SuggestGasPrice_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EthClientMock_SuggestGasPrice_Call) RunAndReturn(run func(context.Context) (*big.Int, error)) *EthClientMock_SuggestGasPrice_Call { + _c.Call.Return(run) + return _c +} + +// SuggestGasTipCap provides a mock function with given fields: ctx +func (_m *EthClientMock) SuggestGasTipCap(ctx context.Context) (*big.Int, error) { + ret := _m.Called(ctx) + + if len(ret) == 0 { + panic("no return value specified for SuggestGasTipCap") + } + + var r0 *big.Int + var r1 error + if rf, ok := ret.Get(0).(func(context.Context) (*big.Int, error)); ok { + return rf(ctx) + } + if rf, ok := ret.Get(0).(func(context.Context) *big.Int); ok { + r0 = rf(ctx) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*big.Int) + } + } + + if rf, ok := ret.Get(1).(func(context.Context) error); ok { + r1 = rf(ctx) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EthClientMock_SuggestGasTipCap_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'SuggestGasTipCap' +type EthClientMock_SuggestGasTipCap_Call struct { + *mock.Call +} + +// SuggestGasTipCap is a helper method to define mock.On call +// - ctx context.Context +func (_e *EthClientMock_Expecter) SuggestGasTipCap(ctx interface{}) *EthClientMock_SuggestGasTipCap_Call { + return &EthClientMock_SuggestGasTipCap_Call{Call: _e.mock.On("SuggestGasTipCap", ctx)} +} + +func (_c *EthClientMock_SuggestGasTipCap_Call) Run(run func(ctx context.Context)) *EthClientMock_SuggestGasTipCap_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context)) + }) + return _c +} + +func (_c *EthClientMock_SuggestGasTipCap_Call) Return(_a0 *big.Int, _a1 error) *EthClientMock_SuggestGasTipCap_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EthClientMock_SuggestGasTipCap_Call) RunAndReturn(run func(context.Context) (*big.Int, error)) *EthClientMock_SuggestGasTipCap_Call { + _c.Call.Return(run) + return _c +} + +// TransactionReceipt provides a mock function with given fields: ctx, txHash +func (_m *EthClientMock) TransactionReceipt(ctx context.Context, txHash common.Hash) (*types.Receipt, error) { + ret := _m.Called(ctx, txHash) + + if len(ret) == 0 { + panic("no return value specified for TransactionReceipt") + } + + var r0 *types.Receipt + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, common.Hash) (*types.Receipt, error)); ok { + return rf(ctx, txHash) + } + if rf, ok := ret.Get(0).(func(context.Context, common.Hash) *types.Receipt); ok { + r0 = rf(ctx, txHash) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*types.Receipt) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, common.Hash) error); ok { + r1 = rf(ctx, txHash) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EthClientMock_TransactionReceipt_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'TransactionReceipt' +type EthClientMock_TransactionReceipt_Call struct { + *mock.Call +} + +// TransactionReceipt is a helper method to define mock.On call +// - ctx context.Context +// - txHash common.Hash +func (_e *EthClientMock_Expecter) TransactionReceipt(ctx interface{}, txHash interface{}) *EthClientMock_TransactionReceipt_Call { + return &EthClientMock_TransactionReceipt_Call{Call: _e.mock.On("TransactionReceipt", ctx, txHash)} +} + +func (_c *EthClientMock_TransactionReceipt_Call) Run(run func(ctx context.Context, txHash common.Hash)) *EthClientMock_TransactionReceipt_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(common.Hash)) + }) + return _c +} + +func (_c *EthClientMock_TransactionReceipt_Call) Return(_a0 *types.Receipt, _a1 error) *EthClientMock_TransactionReceipt_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EthClientMock_TransactionReceipt_Call) RunAndReturn(run func(context.Context, common.Hash) (*types.Receipt, error)) *EthClientMock_TransactionReceipt_Call { + _c.Call.Return(run) + return _c +} + +// NewEthClientMock creates a new instance of EthClientMock. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewEthClientMock(t interface { + mock.TestingT + Cleanup(func()) +}) *EthClientMock { + mock := &EthClientMock{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} diff --git a/proxy-router/internal/repositories/contracts/log_watcher.go b/proxy-router/internal/repositories/contracts/log_watcher.go new file mode 100644 index 00000000..93a509e1 --- /dev/null +++ b/proxy-router/internal/repositories/contracts/log_watcher.go @@ -0,0 +1,13 @@ +package contracts + +import ( + "context" + "math/big" + + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" + "github.com/ethereum/go-ethereum/common" +) + +type LogWatcher interface { + Watch(ctx context.Context, contractAddr common.Address, mapper EventMapper, fromBlock *big.Int) (*lib.Subscription, error) +} diff --git a/proxy-router/internal/repositories/contracts/log_watcher_polling.go b/proxy-router/internal/repositories/contracts/log_watcher_polling.go new file mode 100644 index 00000000..c1919173 --- /dev/null +++ b/proxy-router/internal/repositories/contracts/log_watcher_polling.go @@ -0,0 +1,109 @@ +package contracts + +import ( + "context" + "math/big" + "time" + + i "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" + "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" +) + +type LogWatcherPolling struct { + // config + maxReconnects int + pollInterval time.Duration + + // deps + client i.EthClient + log lib.ILogger +} + +func NewLogWatcherPolling(client i.EthClient, pollInterval time.Duration, maxReconnects int, log lib.ILogger) *LogWatcherPolling { + return &LogWatcherPolling{ + client: client, + pollInterval: pollInterval, + maxReconnects: maxReconnects, + log: log, + } +} + +func (w *LogWatcherPolling) Watch(ctx context.Context, contractAddr common.Address, mapper EventMapper, fromBlock *big.Int) (*lib.Subscription, error) { + if fromBlock == nil { + block, err := w.client.HeaderByNumber(ctx, nil) + if err != nil { + return nil, err + } + fromBlock = block.Number + } + lastQueriedBlock := fromBlock + + sink := make(chan interface{}) + return lib.NewSubscription(func(quit <-chan struct{}) error { + defer close(sink) + + for { + query := ethereum.FilterQuery{ + Addresses: []common.Address{contractAddr}, + FromBlock: lastQueriedBlock, + ToBlock: nil, + } + sub, err := w.filterLogsRetry(ctx, query) + if err != nil { + return err + } + + for _, log := range sub { + if log.Removed { + continue + } + event, err := mapper(log) + if err != nil { + return err // mapper error, retry won't help + } + + select { + case <-quit: + return nil + case <-ctx.Done(): + return ctx.Err() + case sink <- event: + } + } + + if len(sub) > 0 { + lastQueriedBlock = new(big.Int).SetUint64(sub[len(sub)-1].BlockNumber) + } + + select { + case <-quit: + return nil + case <-ctx.Done(): + return ctx.Err() + case <-time.After(w.pollInterval): + } + } + }, sink), nil +} + +func (w *LogWatcherPolling) filterLogsRetry(ctx context.Context, query ethereum.FilterQuery) ([]types.Log, error) { + var lastErr error + + for attempts := 0; attempts < w.maxReconnects; attempts++ { + logs, err := w.client.FilterLogs(ctx, query) + if err != nil { + lastErr = err + continue + } + if attempts > 0 { + w.log.Warnf("subscription reconnected due to error: %s", lastErr) + } + + return logs, nil + } + + return nil, lastErr +} diff --git a/proxy-router/internal/repositories/contracts/log_watcher_polling_test.go b/proxy-router/internal/repositories/contracts/log_watcher_polling_test.go new file mode 100644 index 00000000..2bd1cb9a --- /dev/null +++ b/proxy-router/internal/repositories/contracts/log_watcher_polling_test.go @@ -0,0 +1,159 @@ +package contracts + +import ( + "context" + "errors" + "fmt" + "math/big" + "testing" + + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces/mocks" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" + "github.com/ethereum/go-ethereum" + common "github.com/ethereum/go-ethereum/common" + types "github.com/ethereum/go-ethereum/core/types" + "github.com/stretchr/testify/mock" + "github.com/stretchr/testify/require" +) + +var TEST_ERR = errors.New("test error") + +func TestLogWatcherPolling(t *testing.T) { + failTimes := 5 + + ethClientMock := mocks.NewEthClientMock(t) + call1 := ethClientMock.EXPECT().FilterLogs(mock.Anything, mock.Anything).Return(nil, TEST_ERR).Times(failTimes) + _ = ethClientMock.EXPECT().FilterLogs(mock.Anything, mock.Anything).Return([]types.Log{}, nil).Times(1).NotBefore(call1) + logWatcherPolling := NewLogWatcherPolling(ethClientMock, 0, 10, lib.NewTestLogger()) + + _, err := logWatcherPolling.filterLogsRetry(context.Background(), ethereum.FilterQuery{}) + require.NoError(t, err) + ethClientMock.AssertNumberOfCalls(t, "FilterLogs", failTimes+1) +} + +func TestWatchDoesntReturnEventsTwice(t *testing.T) { + ethClientMock := mocks.NewEthClientMock(t) + event1 := types.Log{ + BlockNumber: 2, + Index: 1, + Data: []byte{2}, + } + event2 := types.Log{ + BlockNumber: 3, + Index: 1, + Data: []byte{3}, + } + + _ = ethClientMock.EXPECT().FilterLogs(mock.Anything, matchBlockNumber(1)).Return([]types.Log{event1}, nil) + _ = ethClientMock.EXPECT().FilterLogs(mock.Anything, matchBlockNumber(2)).Return([]types.Log{event2}, nil) + _ = ethClientMock.EXPECT().FilterLogs(mock.Anything, mock.Anything).Return([]types.Log{}, nil) + + logWatcherPolling := NewLogWatcherPolling(ethClientMock, 0, 10, lib.NewTestLogger()) + sub, err := logWatcherPolling.Watch(context.Background(), common.Address{}, eventMapper, big.NewInt(1)) + require.NoError(t, err) + defer sub.Unsubscribe() + + totalEvents := 0 + uniqueEvents := make(map[string]types.Log) + +OUTER: + for { + select { + case e := <-sub.Events(): + event := e.(types.Log) + totalEvents++ + uniqueEvents[fmt.Sprintf("%d-%d", event.BlockNumber, event.Index)] = event + if len(uniqueEvents) == 2 { + break OUTER + } + case <-sub.Err(): + require.NoError(t, err) + } + } + + require.Equal(t, totalEvents, len(uniqueEvents)) +} + +func TestWatchShouldErrorAfterMaxReconnects(t *testing.T) { + ethClientMock := mocks.NewEthClientMock(t) + maxRetries := 10 + + _ = ethClientMock.EXPECT().FilterLogs(mock.Anything, mock.Anything).Return([]types.Log{}, TEST_ERR) + + logWatcherPolling := NewLogWatcherPolling(ethClientMock, 0, maxRetries, lib.NewTestLogger()) + sub, err := logWatcherPolling.Watch(context.Background(), common.Address{}, eventMapper, big.NewInt(1)) + require.NoError(t, err) + defer sub.Unsubscribe() + + for { + select { + case e := <-sub.Events(): + if e != nil { + require.Fail(t, "should not receive events") + } + case err := <-sub.Err(): + require.ErrorIs(t, err, TEST_ERR) + ethClientMock.AssertNumberOfCalls(t, "FilterLogs", maxRetries) + return + } + } +} + +func TestShouldHandleContextCancellation(t *testing.T) { + ethClientMock := mocks.NewEthClientMock(t) + ctx, cancel := context.WithCancel(context.Background()) + + _ = ethClientMock.EXPECT().FilterLogs(mock.Anything, mock.Anything).Return([]types.Log{}, nil) + + logWatcherPolling := NewLogWatcherPolling(ethClientMock, 0, 10, lib.NewTestLogger()) + sub, err := logWatcherPolling.Watch(ctx, common.Address{}, eventMapper, big.NewInt(1)) + require.NoError(t, err) + defer sub.Unsubscribe() + + cancel() + + for { + select { + case e := <-sub.Events(): + if e != nil { + require.Fail(t, "should not receive events") + } + case err := <-sub.Err(): + require.ErrorIs(t, err, context.Canceled) + return + } + } +} + +func TestShouldUnsubscribe(t *testing.T) { + ethClientMock := mocks.NewEthClientMock(t) + _ = ethClientMock.EXPECT().FilterLogs(mock.Anything, mock.Anything).Return([]types.Log{}, nil) + + logWatcherPolling := NewLogWatcherPolling(ethClientMock, 0, 10, lib.NewTestLogger()) + sub, err := logWatcherPolling.Watch(context.Background(), common.Address{}, eventMapper, big.NewInt(1)) + require.NoError(t, err) + + sub.Unsubscribe() + + for { + select { + case e := <-sub.Events(): + if e != nil { + require.Fail(t, "should not receive events") + } + case err := <-sub.Err(): + require.Nil(t, err) + return + } + } +} + +func matchBlockNumber(blockNumber int) any { + return mock.MatchedBy(func(query ethereum.FilterQuery) bool { + return int(query.FromBlock.Int64()) == blockNumber + }) +} + +func eventMapper(log types.Log) (interface{}, error) { + return log, nil +} diff --git a/proxy-router/internal/repositories/contracts/log_watcher_subscription.go b/proxy-router/internal/repositories/contracts/log_watcher_subscription.go new file mode 100644 index 00000000..619da74a --- /dev/null +++ b/proxy-router/internal/repositories/contracts/log_watcher_subscription.go @@ -0,0 +1,103 @@ +package contracts + +import ( + "context" + "math/big" + + i "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" + "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" +) + +type LogWatcherSubscription struct { + // config + maxReconnects int + + // deps + client i.EthClient + log lib.ILogger +} + +// NewLogWatcherSubscription creates a new log subscription using websocket +// TODO: if it is going to be primary implementation we should rewrite it so it doesn't skip events in case of temporary downtime +func NewLogWatcherSubscription(client i.EthClient, maxReconnects int, log lib.ILogger) *LogWatcherSubscription { + return &LogWatcherSubscription{ + maxReconnects: maxReconnects, + client: client, + log: log, + } +} + +func (w *LogWatcherSubscription) Watch(ctx context.Context, contractAddr common.Address, mapper EventMapper, fromBlock *big.Int) (*lib.Subscription, error) { + sink := make(chan interface{}) + + return lib.NewSubscription(func(quit <-chan struct{}) error { + defer close(sink) + + query := ethereum.FilterQuery{ + Addresses: []common.Address{contractAddr}, + } + in := make(chan types.Log) + defer close(in) + + for { + sub, err := w.subscribeFilterLogsRetry(ctx, query, in) + if err != nil { + return err + } + + defer sub.Unsubscribe() + + EVENTS_LOOP: + for { + select { + case log := <-in: + event, err := mapper(log) + if err != nil { + // mapper error, retry won't help + return err + } + + select { + case sink <- event: + case err := <-sub.Err(): + w.log.Debugf("subscription error: %s", err) + break EVENTS_LOOP + case <-quit: + return nil + case <-ctx.Done(): + return ctx.Err() + } + case err := <-sub.Err(): + w.log.Debugf("subscription error: %s", err) + break EVENTS_LOOP + case <-quit: + return nil + case <-ctx.Done(): + return ctx.Err() + } + } + } + }, sink), nil +} + +func (w *LogWatcherSubscription) subscribeFilterLogsRetry(ctx context.Context, query ethereum.FilterQuery, ch chan<- types.Log) (ethereum.Subscription, error) { + var lastErr error + + for attempts := 0; attempts < w.maxReconnects; attempts++ { + sub, err := w.client.SubscribeFilterLogs(ctx, query, ch) + if err != nil { + lastErr = err + continue + } + if attempts > 0 { + w.log.Warnf("subscription reconnected due to error: %s", lastErr) + } + + return sub, nil + } + + return nil, lastErr +} diff --git a/proxy-router/internal/repositories/contracts/mapper.go b/proxy-router/internal/repositories/contracts/mapper.go index 645cd27b..5f021765 100644 --- a/proxy-router/internal/repositories/contracts/mapper.go +++ b/proxy-router/internal/repositories/contracts/mapper.go @@ -17,8 +17,6 @@ type EventFactory func(name string) interface{} func CreateEventMapper(eventFactory EventFactory, abi *abi.ABI) func(log types.Log) (interface{}, error) { return func(log types.Log) (interface{}, error) { - fmt.Println("log.Topics[0]:", log.Topics[0]) - fmt.Println("abi", abi.Events) namedEvent, err := abi.EventByID(log.Topics[0]) if err != nil { return nil, err diff --git a/proxy-router/internal/repositories/contracts/subscription.go b/proxy-router/internal/repositories/contracts/subscription.go index 043209cd..8d53e63a 100644 --- a/proxy-router/internal/repositories/contracts/subscription.go +++ b/proxy-router/internal/repositories/contracts/subscription.go @@ -1,15 +1,9 @@ package contracts import ( - "context" - "errors" "time" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/sessionrouter" - "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" - "github.com/ethereum/go-ethereum" - "github.com/ethereum/go-ethereum/accounts/abi/bind" - "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/core/types" ) @@ -17,7 +11,7 @@ const RECONNECT_TIMEOUT = 2 * time.Second type EventMapper func(types.Log) (interface{}, error) -func BlockchainEventFactory(name string) interface{} { +func SessionRouterEventFactory(name string) interface{} { switch name { case "SessionOpened": return new(sessionrouter.SessionRouterSessionOpened) @@ -27,93 +21,3 @@ func BlockchainEventFactory(name string) interface{} { return nil } } - -// WatchContractEvents watches for all events from the contract and converts them to the concrete type, using mapper -func WatchContractEvents(ctx context.Context, client bind.ContractFilterer, contractAddr common.Address, mapper EventMapper, log lib.ILogger) (*lib.Subscription, error) { - sink := make(chan interface{}) - - return lib.NewSubscription(func(quit <-chan struct{}) error { - defer close(sink) - - query := ethereum.FilterQuery{ - Addresses: []common.Address{contractAddr}, - } - in := make(chan types.Log) - defer close(in) - - var lastErr error - - for attempts := 0; true; attempts++ { - sub, err := client.SubscribeFilterLogs(ctx, query, in) - if err != nil { - lastErr = err - - log.Warnf("subscription error, reconnect in %s: %s", RECONNECT_TIMEOUT, lastErr) - - select { - case <-quit: - return nil - case <-ctx.Done(): - return ctx.Err() - case <-time.After(RECONNECT_TIMEOUT): - } - - continue - } - if attempts > 0 { - log.Warnf("subscription reconnected due to error: %s", lastErr) - } - attempts = 0 - - defer sub.Unsubscribe() - - EVENTS_LOOP: - for { - select { - case logEntry := <-in: - event, err := mapper(logEntry) - if err != nil { - - if errors.Is(err, ErrUnknownEvent) { - log.Warnf("unknown event: %s", err) - continue - } - // mapper error, retry won't help - // return err - continue - } - - select { - case sink <- event: - case err := <-sub.Err(): - lastErr = err - break EVENTS_LOOP - case <-quit: - return nil - case <-ctx.Done(): - return ctx.Err() - } - case err := <-sub.Err(): - lastErr = err - break EVENTS_LOOP - case <-quit: - return nil - case <-ctx.Done(): - return ctx.Err() - } - } - - log.Warnf("subscription error, reconnect in %s: %s", RECONNECT_TIMEOUT, lastErr) - - select { - case <-quit: - return nil - case <-ctx.Done(): - return ctx.Err() - case <-time.After(RECONNECT_TIMEOUT): - } - } - - return lastErr - }, sink), nil -} From f5400d4625eba50a65e57b2ec660df47a5883516 Mon Sep 17 00:00:00 2001 From: shev Date: Thu, 10 Oct 2024 13:39:32 +0200 Subject: [PATCH 010/260] feat: runtime change of eth node api --- proxy-router/cmd/main.go | 6 +- .../internal/blockchainapi/event_listener.go | 2 +- proxy-router/internal/config/config.go | 1 + .../internal/handlers/httphandlers/http.go | 2 +- proxy-router/internal/interfaces/rpc_multi.go | 6 ++ .../contracts/log_watcher_subscription.go | 3 + .../ethclient/rpcclientmultiple.go | 50 ++++++++++++++-- proxy-router/internal/system/controller.go | 58 ++++++++++++------- proxy-router/internal/system/structs.go | 17 ++++++ 9 files changed, 118 insertions(+), 27 deletions(-) create mode 100644 proxy-router/internal/interfaces/rpc_multi.go diff --git a/proxy-router/cmd/main.go b/proxy-router/cmd/main.go index ebe30ff1..0b9b7eda 100644 --- a/proxy-router/cmd/main.go +++ b/proxy-router/cmd/main.go @@ -186,12 +186,14 @@ func start() error { var rpcURLs []string if cfg.Blockchain.EthNodeAddress != "" { rpcURLs = []string{cfg.Blockchain.EthNodeAddress} + appLog.Info("using configured eth node address") } else { var err error rpcURLs, err = ethclient.GetPublicRPCURLs(cfg.Blockchain.ChainID) if err != nil { return err } + appLog.Infof("using public eth node addresses: %v", rpcURLs) } rpcClient, err := ethclient.NewRPCClientMultiple(rpcURLs, log.Named("RPC")) @@ -229,8 +231,10 @@ func start() error { var logWatcher contracts.LogWatcher if cfg.Blockchain.UseSubscriptions { logWatcher = contracts.NewLogWatcherSubscription(ethClient, cfg.Blockchain.MaxReconnects, log) + appLog.Infof("using websocket log subscription for blockchain events") } else { logWatcher = contracts.NewLogWatcherPolling(ethClient, cfg.Blockchain.PollingInterval, cfg.Blockchain.MaxReconnects, log) + appLog.Infof("using polling for blockchain events") } modelConfigLoader := config.NewModelConfigLoader(cfg.Proxy.ModelsConfigPath, log) @@ -253,7 +257,7 @@ func start() error { chatStorage := proxyapi.NewChatStorage(chatStoragePath) proxyController := proxyapi.NewProxyController(proxyRouterApi, aiEngine, chatStorage) walletController := walletapi.NewWalletController(wallet) - systemController := system.NewSystemController(&cfg, wallet, sysConfig, appStartTime, chainID, log) + systemController := system.NewSystemController(&cfg, wallet, rpcClient, sysConfig, appStartTime, chainID, log) apiBus := apibus.NewApiBus(blockchainController, proxyController, walletController, systemController) httpHandler := httphandlers.CreateHTTPServer(log, apiBus) diff --git a/proxy-router/internal/blockchainapi/event_listener.go b/proxy-router/internal/blockchainapi/event_listener.go index d4b2b3fb..a5424468 100644 --- a/proxy-router/internal/blockchainapi/event_listener.go +++ b/proxy-router/internal/blockchainapi/event_listener.go @@ -59,7 +59,7 @@ func (e *EventsListener) Run(ctx context.Context) error { } case err := <-sub.Err(): e.log.Errorf("error in event listener: %s", err) - // return err + return err } } } diff --git a/proxy-router/internal/config/config.go b/proxy-router/internal/config/config.go index 769ebd76..f6fa5834 100644 --- a/proxy-router/internal/config/config.go +++ b/proxy-router/internal/config/config.go @@ -13,6 +13,7 @@ import ( type DerivedConfig struct { WalletAddress common.Address ChainID *big.Int + EthNodeURLs []string } // Validation tags described here: https://pkg.go.dev/github.com/go-playground/validator/v10 diff --git a/proxy-router/internal/handlers/httphandlers/http.go b/proxy-router/internal/handlers/httphandlers/http.go index 6f96504d..36bc08ed 100644 --- a/proxy-router/internal/handlers/httphandlers/http.go +++ b/proxy-router/internal/handlers/httphandlers/http.go @@ -49,7 +49,7 @@ func CreateHTTPServer(log lib.ILogger, controllers ...Registrable) *gin.Engine { panic(err) } - // gin.SetMode(gin.ReleaseMode) + gin.SetMode(gin.ReleaseMode) r := gin.New() diff --git a/proxy-router/internal/interfaces/rpc_multi.go b/proxy-router/internal/interfaces/rpc_multi.go new file mode 100644 index 00000000..a56eaa4a --- /dev/null +++ b/proxy-router/internal/interfaces/rpc_multi.go @@ -0,0 +1,6 @@ +package interfaces + +type RPCEndpoints interface { + GetURLs() []string + SetURLs(urls []string) error +} diff --git a/proxy-router/internal/repositories/contracts/log_watcher_subscription.go b/proxy-router/internal/repositories/contracts/log_watcher_subscription.go index 619da74a..4106be51 100644 --- a/proxy-router/internal/repositories/contracts/log_watcher_subscription.go +++ b/proxy-router/internal/repositories/contracts/log_watcher_subscription.go @@ -43,8 +43,10 @@ func (w *LogWatcherSubscription) Watch(ctx context.Context, contractAddr common. defer close(in) for { + sub, err := w.subscribeFilterLogsRetry(ctx, query, in) if err != nil { + w.log.Errorf("failed to subscribe to logs: %s", err) return err } @@ -56,6 +58,7 @@ func (w *LogWatcherSubscription) Watch(ctx context.Context, contractAddr common. case log := <-in: event, err := mapper(log) if err != nil { + w.log.Errorf("failed to map event: %s", err) // mapper error, retry won't help return err } diff --git a/proxy-router/internal/repositories/ethclient/rpcclientmultiple.go b/proxy-router/internal/repositories/ethclient/rpcclientmultiple.go index f07c3e13..a64bd4d8 100644 --- a/proxy-router/internal/repositories/ethclient/rpcclientmultiple.go +++ b/proxy-router/internal/repositories/ethclient/rpcclientmultiple.go @@ -2,7 +2,7 @@ package ethclient import ( "context" - "fmt" + "sync" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" "github.com/ethereum/go-ethereum/rpc" @@ -10,6 +10,7 @@ import ( // Wrapper around multiple RPC clients, used to retry calls on multiple endpoints type RPCClientMultiple struct { + lock sync.RWMutex clients []*rpcClient log lib.ILogger } @@ -44,20 +45,61 @@ func (c *RPCClientMultiple) BatchCallContext(ctx context.Context, b []rpc.BatchE } func (c *RPCClientMultiple) Close() { - for _, rpcClient := range c.clients { + for _, rpcClient := range c.getClients() { rpcClient.client.Close() } } func (c *RPCClientMultiple) EthSubscribe(ctx context.Context, channel interface{}, args ...interface{}) (*rpc.ClientSubscription, error) { - return nil, fmt.Errorf("not implemented") + client := c.getClients()[0] + return client.client.EthSubscribe(ctx, channel, args...) +} + +func (c *RPCClientMultiple) GetURLs() []string { + clients := c.getClients() + urls := make([]string, len(clients)) + for i, rpcClient := range clients { + urls[i] = rpcClient.url + } + return urls +} + +func (c *RPCClientMultiple) SetURLs(urls []string) error { + clients := make([]*rpcClient, len(urls)) + + for i, url := range urls { + client, err := rpc.DialOptions(context.Background(), url) + if err != nil { + return err + } + clients[i] = &rpcClient{ + url: url, + client: client, + } + } + + c.lock.Lock() + defer c.lock.Unlock() + for _, rpcClient := range c.clients { + rpcClient.client.Close() + } + + c.clients = clients + + return nil +} + +func (c *RPCClientMultiple) getClients() []*rpcClient { + c.lock.RLock() + defer c.lock.RUnlock() + return c.clients } // retriableCall is a helper function that retries the call on different endpoints func (c *RPCClientMultiple) retriableCall(ctx context.Context, fn func(client *rpcClient) error) error { var lastErr error - for _, rpcClient := range c.clients { + for _, rpcClient := range c.getClients() { if ctx.Err() != nil { return ctx.Err() } diff --git a/proxy-router/internal/system/controller.go b/proxy-router/internal/system/controller.go index 700d157c..8ab4559e 100644 --- a/proxy-router/internal/system/controller.go +++ b/proxy-router/internal/system/controller.go @@ -10,37 +10,26 @@ import ( "time" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/config" - "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" + i "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" "github.com/gin-gonic/gin" ) -type HealthCheckResponse struct { - Status string - Version string - Uptime string -} - type SystemController struct { config *config.Config - wallet interfaces.Wallet + wallet i.Wallet + ethRPC i.RPCEndpoints sysConfig *SystemConfigurator appStartTime time.Time chainID *big.Int log lib.ILogger } -type ConfigResponse struct { - Version string - Commit string - DerivedConfig interface{} - Config interface{} -} - -func NewSystemController(config *config.Config, wallet interfaces.Wallet, sysConfig *SystemConfigurator, appStartTime time.Time, chainID *big.Int, log lib.ILogger) *SystemController { +func NewSystemController(config *config.Config, wallet i.Wallet, ethRPC i.RPCEndpoints, sysConfig *SystemConfigurator, appStartTime time.Time, chainID *big.Int, log lib.ILogger) *SystemController { c := &SystemController{ config: config, wallet: wallet, + ethRPC: ethRPC, sysConfig: sysConfig, appStartTime: appStartTime, chainID: chainID, @@ -50,17 +39,19 @@ func NewSystemController(config *config.Config, wallet interfaces.Wallet, sysCon return c } -func (s *SystemController) RegisterRoutes(r interfaces.Router) { +func (s *SystemController) RegisterRoutes(r i.Router) { r.GET("/healthcheck", s.HealthCheck) r.GET("/config", s.GetConfig) r.GET("/files", s.GetFiles) + + r.POST("/config/ethNode", s.SetEthNode) } // HealthCheck godoc // // @Summary Healthcheck example // @Description do ping -// @Tags healthcheck +// @Tags system // @Produce json // @Success 200 {object} HealthCheckResponse // @Router /healthcheck [get] @@ -76,7 +67,7 @@ func (s *SystemController) HealthCheck(ctx *gin.Context) { // // @Summary Get Config // @Description Return the current config of proxy router -// @Tags healthcheck +// @Tags system // @Produce json // @Success 200 {object} ConfigResponse // @Router /config [get] @@ -98,6 +89,7 @@ func (s *SystemController) GetConfig(ctx *gin.Context) { DerivedConfig: config.DerivedConfig{ WalletAddress: addr, ChainID: s.chainID, + EthNodeURLs: s.ethRPC.GetURLs(), }, }) } @@ -106,7 +98,7 @@ func (s *SystemController) GetConfig(ctx *gin.Context) { // // @Summary Get files // @Description Returns opened files -// @Tags healthcheck +// @Tags system // @Produce json // @Success 200 {object} []FD // @Router /files [get] @@ -140,6 +132,32 @@ func (s *SystemController) GetFiles(ctx *gin.Context) { return } +// SetEthNode godoc +// +// @Summary Set Eth Node URLs +// @Description Set the Eth Node URLs +// @Tags system +// @Accept json +// @Produce json +// @Param urls body SetEthNodeURLReq true "URLs" +// @Success 200 {object} ConfigResponse +// @Router /config/ethNode [post] +func (s *SystemController) SetEthNode(ctx *gin.Context) { + var req SetEthNodeURLReq + if err := ctx.BindJSON(&req); err != nil { + ctx.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) + return + } + + err := s.ethRPC.SetURLs(req.URLs) + if err != nil { + ctx.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + + ctx.JSON(http.StatusOK, gin.H{"status": "ok"}) +} + func writeFiles(writer io.Writer, files []FD) error { text := fmt.Sprintf("Total: %d\n", len(files)) text += "\n" diff --git a/proxy-router/internal/system/structs.go b/proxy-router/internal/system/structs.go index 3c8e440e..1a495da1 100644 --- a/proxy-router/internal/system/structs.go +++ b/proxy-router/internal/system/structs.go @@ -4,3 +4,20 @@ type FD struct { ID string Path string } + +type SetEthNodeURLReq struct { + URLs []string `json:"urls" binding:"required" validate:"required,url"` +} + +type ConfigResponse struct { + Version string + Commit string + DerivedConfig interface{} + Config interface{} +} + +type HealthCheckResponse struct { + Status string + Version string + Uptime string +} From b0a2cfa8f6ae75b667009cf72014506e6147c59b Mon Sep 17 00:00:00 2001 From: shev Date: Thu, 10 Oct 2024 13:40:43 +0200 Subject: [PATCH 011/260] fix: update swagger --- proxy-router/docs/docs.go | 54 ++++++++++++++++++++-- proxy-router/docs/swagger.json | 54 ++++++++++++++++++++-- proxy-router/docs/swagger.yaml | 37 +++++++++++++-- proxy-router/internal/system/controller.go | 4 +- 4 files changed, 138 insertions(+), 11 deletions(-) diff --git a/proxy-router/docs/docs.go b/proxy-router/docs/docs.go index e0500907..138b2710 100644 --- a/proxy-router/docs/docs.go +++ b/proxy-router/docs/docs.go @@ -894,7 +894,7 @@ const docTemplate = `{ "application/json" ], "tags": [ - "healthcheck" + "system" ], "summary": "Get Config", "responses": { @@ -907,6 +907,40 @@ const docTemplate = `{ } } }, + "/config/ethNode": { + "post": { + "description": "Set the Eth Node URLs", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "system" + ], + "summary": "Set Eth Node URLs", + "parameters": [ + { + "description": "URLs", + "name": "urls", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/system.SetEthNodeURLReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/system.ConfigResponse" + } + } + } + } + }, "/files": { "get": { "description": "Returns opened files", @@ -914,7 +948,7 @@ const docTemplate = `{ "application/json" ], "tags": [ - "healthcheck" + "system" ], "summary": "Get files", "responses": { @@ -937,7 +971,7 @@ const docTemplate = `{ "application/json" ], "tags": [ - "healthcheck" + "system" ], "summary": "Healthcheck example", "responses": { @@ -2143,6 +2177,20 @@ const docTemplate = `{ "type": "string" } } + }, + "system.SetEthNodeURLReq": { + "type": "object", + "required": [ + "urls" + ], + "properties": { + "urls": { + "type": "array", + "items": { + "type": "string" + } + } + } } }, "externalDocs": { diff --git a/proxy-router/docs/swagger.json b/proxy-router/docs/swagger.json index cf46038e..fe6a764d 100644 --- a/proxy-router/docs/swagger.json +++ b/proxy-router/docs/swagger.json @@ -887,7 +887,7 @@ "application/json" ], "tags": [ - "healthcheck" + "system" ], "summary": "Get Config", "responses": { @@ -900,6 +900,40 @@ } } }, + "/config/ethNode": { + "post": { + "description": "Set the Eth Node URLs", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "system" + ], + "summary": "Set Eth Node URLs", + "parameters": [ + { + "description": "URLs", + "name": "urls", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/system.SetEthNodeURLReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/system.ConfigResponse" + } + } + } + } + }, "/files": { "get": { "description": "Returns opened files", @@ -907,7 +941,7 @@ "application/json" ], "tags": [ - "healthcheck" + "system" ], "summary": "Get files", "responses": { @@ -930,7 +964,7 @@ "application/json" ], "tags": [ - "healthcheck" + "system" ], "summary": "Healthcheck example", "responses": { @@ -2136,6 +2170,20 @@ "type": "string" } } + }, + "system.SetEthNodeURLReq": { + "type": "object", + "required": [ + "urls" + ], + "properties": { + "urls": { + "type": "array", + "items": { + "type": "string" + } + } + } } }, "externalDocs": { diff --git a/proxy-router/docs/swagger.yaml b/proxy-router/docs/swagger.yaml index c68ee866..6797a594 100644 --- a/proxy-router/docs/swagger.yaml +++ b/proxy-router/docs/swagger.yaml @@ -639,6 +639,15 @@ definitions: version: type: string type: object + system.SetEthNodeURLReq: + properties: + urls: + items: + type: string + type: array + required: + - urls + type: object externalDocs: description: OpenAPI url: https://swagger.io/resources/open-api/ @@ -1229,7 +1238,29 @@ paths: $ref: '#/definitions/system.ConfigResponse' summary: Get Config tags: - - healthcheck + - system + /config/ethNode: + post: + consumes: + - application/json + description: Set the Eth Node URLs + parameters: + - description: URLs + in: body + name: urls + required: true + schema: + $ref: '#/definitions/system.SetEthNodeURLReq' + produces: + - application/json + responses: + "200": + description: OK + schema: + $ref: '#/definitions/system.ConfigResponse' + summary: Set Eth Node URLs + tags: + - system /files: get: description: Returns opened files @@ -1244,7 +1275,7 @@ paths: type: array summary: Get files tags: - - healthcheck + - system /healthcheck: get: description: do ping @@ -1257,7 +1288,7 @@ paths: $ref: '#/definitions/system.HealthCheckResponse' summary: Healthcheck example tags: - - healthcheck + - system /proxy/sessions/{id}/providerClaim: post: description: Claim provider balance from session diff --git a/proxy-router/internal/system/controller.go b/proxy-router/internal/system/controller.go index 8ab4559e..c400867c 100644 --- a/proxy-router/internal/system/controller.go +++ b/proxy-router/internal/system/controller.go @@ -139,8 +139,8 @@ func (s *SystemController) GetFiles(ctx *gin.Context) { // @Tags system // @Accept json // @Produce json -// @Param urls body SetEthNodeURLReq true "URLs" -// @Success 200 {object} ConfigResponse +// @Param urls body SetEthNodeURLReq true "URLs" +// @Success 200 {object} ConfigResponse // @Router /config/ethNode [post] func (s *SystemController) SetEthNode(ctx *gin.Context) { var req SetEthNodeURLReq From fcb9486e4f0e6b0c610c5e7a70a5de6aff0973a4 Mon Sep 17 00:00:00 2001 From: shev Date: Thu, 10 Oct 2024 17:01:54 +0200 Subject: [PATCH 012/260] feat: eth node url keychain persistence --- proxy-router/cmd/main.go | 24 +++--- proxy-router/internal/interfaces/keychain.go | 9 +++ .../contracts/log_watcher_polling.go | 34 +++++--- .../contracts/log_watcher_subscription.go | 2 +- .../repositories/ethclient/rpcclient.go | 6 ++ .../ethclient/rpcclient_store_env.go | 27 +++++++ .../ethclient/rpcclient_store_factory.go | 79 +++++++++++++++++++ .../ethclient/rpcclient_store_keychain.go | 73 +++++++++++++++++ .../repositories/wallet/keychainwallet.go | 7 +- 9 files changed, 232 insertions(+), 29 deletions(-) create mode 100644 proxy-router/internal/interfaces/keychain.go create mode 100644 proxy-router/internal/repositories/ethclient/rpcclient_store_env.go create mode 100644 proxy-router/internal/repositories/ethclient/rpcclient_store_factory.go create mode 100644 proxy-router/internal/repositories/ethclient/rpcclient_store_keychain.go diff --git a/proxy-router/cmd/main.go b/proxy-router/cmd/main.go index 0b9b7eda..257569cb 100644 --- a/proxy-router/cmd/main.go +++ b/proxy-router/cmd/main.go @@ -21,6 +21,7 @@ import ( "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/proxyctl" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/contracts" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/ethclient" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/keychain" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/registries" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/transport" wlt "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/wallet" @@ -183,25 +184,18 @@ func start() error { os.Exit(1) }() - var rpcURLs []string + keychainStorage := keychain.NewKeychain() + + var ethNodeAddresses []string if cfg.Blockchain.EthNodeAddress != "" { - rpcURLs = []string{cfg.Blockchain.EthNodeAddress} - appLog.Info("using configured eth node address") - } else { - var err error - rpcURLs, err = ethclient.GetPublicRPCURLs(cfg.Blockchain.ChainID) - if err != nil { - return err - } - appLog.Infof("using public eth node addresses: %v", rpcURLs) + ethNodeAddresses = []string{cfg.Blockchain.EthNodeAddress} } - - rpcClient, err := ethclient.NewRPCClientMultiple(rpcURLs, log.Named("RPC")) + rpcClientStore, err := ethclient.ConfigureRPCClientStore(keychainStorage, ethNodeAddresses, cfg.Blockchain.ChainID, log.Named("RPC")) if err != nil { return lib.WrapError(ErrConnectToEthNode, err) } - ethClient := ethclient.NewClient(rpcClient) + ethClient := ethclient.NewClient(rpcClientStore.GetClient()) chainID, err := ethClient.ChainID(ctx) if err != nil { return lib.WrapError(ErrConnectToEthNode, err) @@ -224,7 +218,7 @@ func start() error { wallet = wlt.NewEnvWallet(*cfg.Marketplace.WalletPrivateKey) log.Warnf("Using env wallet. Private key persistance unavailable") } else { - wallet = wlt.NewKeychainWallet() + wallet = wlt.NewKeychainWallet(keychainStorage) log.Infof("Using keychain wallet") } @@ -257,7 +251,7 @@ func start() error { chatStorage := proxyapi.NewChatStorage(chatStoragePath) proxyController := proxyapi.NewProxyController(proxyRouterApi, aiEngine, chatStorage) walletController := walletapi.NewWalletController(wallet) - systemController := system.NewSystemController(&cfg, wallet, rpcClient, sysConfig, appStartTime, chainID, log) + systemController := system.NewSystemController(&cfg, wallet, rpcClientStore, sysConfig, appStartTime, chainID, log) apiBus := apibus.NewApiBus(blockchainController, proxyController, walletController, systemController) httpHandler := httphandlers.CreateHTTPServer(log, apiBus) diff --git a/proxy-router/internal/interfaces/keychain.go b/proxy-router/internal/interfaces/keychain.go new file mode 100644 index 00000000..7a6857af --- /dev/null +++ b/proxy-router/internal/interfaces/keychain.go @@ -0,0 +1,9 @@ +package interfaces + +type KeyValueStorage interface { + Get(key string) (string, error) + Insert(key string, value string) error + Upsert(key string, value string) error + Delete(key string) error + DeleteIfExists(key string) error +} diff --git a/proxy-router/internal/repositories/contracts/log_watcher_polling.go b/proxy-router/internal/repositories/contracts/log_watcher_polling.go index c1919173..d59117c8 100644 --- a/proxy-router/internal/repositories/contracts/log_watcher_polling.go +++ b/proxy-router/internal/repositories/contracts/log_watcher_polling.go @@ -2,6 +2,7 @@ package contracts import ( "context" + "errors" "math/big" "time" @@ -12,6 +13,10 @@ import ( "github.com/ethereum/go-ethereum/core/types" ) +var ( + SubClosedError = errors.New("subscription closed") +) + type LogWatcherPolling struct { // config maxReconnects int @@ -51,7 +56,7 @@ func (w *LogWatcherPolling) Watch(ctx context.Context, contractAddr common.Addre FromBlock: lastQueriedBlock, ToBlock: nil, } - sub, err := w.filterLogsRetry(ctx, query) + sub, err := w.filterLogsRetry(ctx, query, quit) if err != nil { return err } @@ -67,7 +72,7 @@ func (w *LogWatcherPolling) Watch(ctx context.Context, contractAddr common.Addre select { case <-quit: - return nil + return SubClosedError case <-ctx.Done(): return ctx.Err() case sink <- event: @@ -89,20 +94,29 @@ func (w *LogWatcherPolling) Watch(ctx context.Context, contractAddr common.Addre }, sink), nil } -func (w *LogWatcherPolling) filterLogsRetry(ctx context.Context, query ethereum.FilterQuery) ([]types.Log, error) { +func (w *LogWatcherPolling) filterLogsRetry(ctx context.Context, query ethereum.FilterQuery, quit <-chan struct{}) ([]types.Log, error) { var lastErr error for attempts := 0; attempts < w.maxReconnects; attempts++ { logs, err := w.client.FilterLogs(ctx, query) - if err != nil { - lastErr = err - continue - } - if attempts > 0 { - w.log.Warnf("subscription reconnected due to error: %s", lastErr) + if err == nil { + if attempts > 0 { + w.log.Warnf("subscription successfully reconnected after error: %s", lastErr) + } + + return logs, nil } - return logs, nil + w.log.Debugf("subscription error: %s, retrying in %s", err, w.pollInterval.String()) + lastErr = err + + select { + case <-quit: + return nil, SubClosedError + case <-ctx.Done(): + return nil, ctx.Err() + case <-time.After(w.pollInterval): + } } return nil, lastErr diff --git a/proxy-router/internal/repositories/contracts/log_watcher_subscription.go b/proxy-router/internal/repositories/contracts/log_watcher_subscription.go index 4106be51..98e6a33d 100644 --- a/proxy-router/internal/repositories/contracts/log_watcher_subscription.go +++ b/proxy-router/internal/repositories/contracts/log_watcher_subscription.go @@ -96,7 +96,7 @@ func (w *LogWatcherSubscription) subscribeFilterLogsRetry(ctx context.Context, q continue } if attempts > 0 { - w.log.Warnf("subscription reconnected due to error: %s", lastErr) + w.log.Warnf("subscription successfully reconnected after error: %s", lastErr) } return sub, nil diff --git a/proxy-router/internal/repositories/ethclient/rpcclient.go b/proxy-router/internal/repositories/ethclient/rpcclient.go index f127020e..2851f95e 100644 --- a/proxy-router/internal/repositories/ethclient/rpcclient.go +++ b/proxy-router/internal/repositories/ethclient/rpcclient.go @@ -3,6 +3,7 @@ package ethclient import ( "context" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" "github.com/ethereum/go-ethereum/rpc" ) @@ -12,3 +13,8 @@ type RPCClient interface { CallContext(ctx context.Context, result interface{}, method string, args ...interface{}) error EthSubscribe(ctx context.Context, channel interface{}, args ...interface{}) (*rpc.ClientSubscription, error) } + +type RPCClientModifiable interface { + RPCClient + interfaces.RPCEndpoints +} diff --git a/proxy-router/internal/repositories/ethclient/rpcclient_store_env.go b/proxy-router/internal/repositories/ethclient/rpcclient_store_env.go new file mode 100644 index 00000000..894b7ff2 --- /dev/null +++ b/proxy-router/internal/repositories/ethclient/rpcclient_store_env.go @@ -0,0 +1,27 @@ +package ethclient + +import ( + "errors" +) + +var ErrEnvRPCSet = errors.New("cannot set rpc url when using env store, switch to keychain store by removing ETH_NODE_URL env var") + +type RPCClientStoreEnv struct { + rpcClient RPCClientModifiable +} + +func (p *RPCClientStoreEnv) GetURLs() []string { + return p.rpcClient.GetURLs() +} + +func (p *RPCClientStoreEnv) SetURLs(urls []string) error { + return ErrEnvRPCSet +} + +func (p *RPCClientStoreEnv) RemoveURLs() error { + return ErrEnvRPCSet +} + +func (p *RPCClientStoreEnv) GetClient() RPCClient { + return p.rpcClient +} diff --git a/proxy-router/internal/repositories/ethclient/rpcclient_store_factory.go b/proxy-router/internal/repositories/ethclient/rpcclient_store_factory.go new file mode 100644 index 00000000..911e3486 --- /dev/null +++ b/proxy-router/internal/repositories/ethclient/rpcclient_store_factory.go @@ -0,0 +1,79 @@ +package ethclient + +import ( + "errors" + + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/keychain" +) + +type RPCEndpointsPersister interface { + GetURLs() []string + SetURLs(urls []string) error + RemoveURLs() error + GetClient() RPCClient +} + +func ConfigureRPCClientStore(storage interfaces.KeyValueStorage, envURLs []string, chainID int, log lib.ILogger) (RPCEndpointsPersister, error) { + // if env set, use env store + if len(envURLs) > 0 { + rpcClient, err := NewRPCClientMultiple(envURLs, log) + if err != nil { + return nil, err + } + + log.Info("using eth node address configured in env") + + p := &RPCClientStoreEnv{ + rpcClient: rpcClient, + } + return p, nil + } + + // if no env set, try use keychain store + rpcClient := &RPCClientMultiple{ + log: log, + } + p := &RPCClientStoreKeychain{ + storage: storage, + log: log, + rpcClient: rpcClient, + } + + urls, err := p.loadURLsFromStorage() + if err == nil { + log.Info("using eth node address configured in keychain") + + err = rpcClient.SetURLs(urls) + if err != nil { + return nil, err + } + + return p, nil + } + + // if error during loading keychain, use fallback URLs + if !errors.Is(err, keychain.ErrKeyNotFound) { + p.log.Warn("Error during loading keychain eth client URLs, using fallback URLs", err) + } + + publicURLs, err := GetPublicRPCURLs(chainID) + if err != nil { + return nil, err + } + + log.Info("using public eth node addresses") + + rpcClient, err = NewRPCClientMultiple(publicURLs, log) + if err != nil { + return nil, err + } + + rpc := &RPCClientStoreKeychain{ + rpcClient: rpcClient, + storage: storage, + } + + return rpc, nil +} diff --git a/proxy-router/internal/repositories/ethclient/rpcclient_store_keychain.go b/proxy-router/internal/repositories/ethclient/rpcclient_store_keychain.go new file mode 100644 index 00000000..2196825d --- /dev/null +++ b/proxy-router/internal/repositories/ethclient/rpcclient_store_keychain.go @@ -0,0 +1,73 @@ +package ethclient + +import ( + "encoding/json" + + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" +) + +const ( + ETH_NODE_URL_KEY = "eth-node-url" +) + +type RPCClientStoreKeychain struct { + storage interfaces.KeyValueStorage + rpcClient RPCClientModifiable + log lib.ILogger +} + +func (p *RPCClientStoreKeychain) GetURLs() []string { + return p.rpcClient.GetURLs() +} + +func (p *RPCClientStoreKeychain) SetURLs(urls []string) error { + err := p.storeURLsInStorage(urls) + if err != nil { + return err + } + + return p.rpcClient.SetURLs(urls) +} + +func (p *RPCClientStoreKeychain) RemoveURLs() error { + return p.deleteURLsInStorage() +} + +func (p *RPCClientStoreKeychain) GetClient() RPCClient { + return p.rpcClient +} + +func (p *RPCClientStoreKeychain) loadURLsFromStorage() ([]string, error) { + // return []string{"https://arb-sepolia.g.alchemy.com/v2/3-pxwBaJ7vilkz1jl-fMmCvZThGxpmo2"}, nil + str, err := p.storage.Get(ETH_NODE_URL_KEY) + if err != nil { + return nil, err + } + + var urls []string + err = json.Unmarshal([]byte(str), &urls) + if err != nil { + return nil, err + } + + return urls, nil +} + +func (p *RPCClientStoreKeychain) storeURLsInStorage(urls []string) error { + str, err := json.Marshal(urls) + if err != nil { + return err + } + + err = p.storage.Upsert(ETH_NODE_URL_KEY, string(str)) + if err != nil { + return err + } + + return nil +} + +func (p *RPCClientStoreKeychain) deleteURLsInStorage() error { + return p.storage.DeleteIfExists(ETH_NODE_URL_KEY) +} diff --git a/proxy-router/internal/repositories/wallet/keychainwallet.go b/proxy-router/internal/repositories/wallet/keychainwallet.go index 6b6d2624..30e80eef 100644 --- a/proxy-router/internal/repositories/wallet/keychainwallet.go +++ b/proxy-router/internal/repositories/wallet/keychainwallet.go @@ -4,6 +4,7 @@ import ( "errors" "sync" + i "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/keychain" hdwallet "github.com/miguelmota/go-ethereum-hdwallet" @@ -21,14 +22,14 @@ var ( ) type KeychainWallet struct { - storage *keychain.Keychain + storage i.KeyValueStorage updatedCh chan struct{} mutex sync.Mutex } -func NewKeychainWallet() *KeychainWallet { +func NewKeychainWallet(keychain i.KeyValueStorage) *KeychainWallet { return &KeychainWallet{ - storage: keychain.NewKeychain(), + storage: keychain, updatedCh: make(chan struct{}), } } From 8832b24a5fec6899ad9939ee12216c49b173b1db Mon Sep 17 00:00:00 2001 From: shev Date: Thu, 10 Oct 2024 18:53:52 +0200 Subject: [PATCH 013/260] fix: ability to reset keychain --- proxy-router/Makefile | 5 ++++- proxy-router/cmd/main.go | 21 ++++++++++++++++++- proxy-router/docs/docs.go | 18 ++++++++++++++++ proxy-router/docs/swagger.json | 18 ++++++++++++++++ proxy-router/docs/swagger.yaml | 12 +++++++++++ proxy-router/internal/config/config.go | 5 ++++- proxy-router/internal/interfaces/rpc_multi.go | 1 + .../contracts/log_watcher_polling_test.go | 2 +- .../repositories/ethclient/rpcclient.go | 4 ++-- .../ethclient/rpcclient_store_factory.go | 4 ++++ .../ethclient/rpcclient_store_keychain.go | 8 +++++++ proxy-router/internal/system/controller.go | 18 ++++++++++++++++ 12 files changed, 110 insertions(+), 6 deletions(-) diff --git a/proxy-router/Makefile b/proxy-router/Makefile index 1f14645d..f70d34a5 100644 --- a/proxy-router/Makefile +++ b/proxy-router/Makefile @@ -38,4 +38,7 @@ swagger: swag fmt -g ./internal/handlers/httphandlers/http.go && swag init -g ./internal/handlers/httphandlers/http.go --parseInternal mocks: - mockery \ No newline at end of file + mockery + +reset-keychain: + go run cmd/main.go --reset-keychain \ No newline at end of file diff --git a/proxy-router/cmd/main.go b/proxy-router/cmd/main.go index 257569cb..72b32c46 100644 --- a/proxy-router/cmd/main.go +++ b/proxy-router/cmd/main.go @@ -186,6 +186,25 @@ func start() error { keychainStorage := keychain.NewKeychain() + if cfg.App.ResetKeychain { + appLog.Warnf("Resetting keychain...") + wallet := wlt.NewKeychainWallet(keychainStorage) + err = wallet.DeleteWallet() + if err != nil { + appLog.Warnf("Failed to delete wallet\n%s", err) + } else { + appLog.Info("Wallet deleted") + } + + ethNodeStorage := ethclient.NewRPCClientStoreKeychain(keychainStorage, nil, log) + err = ethNodeStorage.RemoveURLs() + if err != nil { + appLog.Warnf("Failed to remove eth node urls\n%s", err) + } else { + appLog.Info("Eth node urls removed") + } + } + var ethNodeAddresses []string if cfg.Blockchain.EthNodeAddress != "" { ethNodeAddresses = []string{cfg.Blockchain.EthNodeAddress} @@ -200,7 +219,7 @@ func start() error { if err != nil { return lib.WrapError(ErrConnectToEthNode, err) } - if int(chainID.Uint64()) != cfg.Blockchain.ChainID { + if cfg.Blockchain.ChainID != 0 && int(chainID.Uint64()) != cfg.Blockchain.ChainID { return lib.WrapError(ErrConnectToEthNode, fmt.Errorf("configured chainID (%d) does not match eth node chain ID (%s)", cfg.Blockchain.ChainID, chainID)) } appLog.Infof("connected to ethereum node: %s, chainID: %d", cfg.Blockchain.EthNodeAddress, chainID) diff --git a/proxy-router/docs/docs.go b/proxy-router/docs/docs.go index 138b2710..320763c1 100644 --- a/proxy-router/docs/docs.go +++ b/proxy-router/docs/docs.go @@ -939,6 +939,24 @@ const docTemplate = `{ } } } + }, + "delete": { + "description": "Delete the Eth Node URLs", + "produces": [ + "application/json" + ], + "tags": [ + "system" + ], + "summary": "Delete Eth Node URLs", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/system.ConfigResponse" + } + } + } } }, "/files": { diff --git a/proxy-router/docs/swagger.json b/proxy-router/docs/swagger.json index fe6a764d..d89d0fb7 100644 --- a/proxy-router/docs/swagger.json +++ b/proxy-router/docs/swagger.json @@ -932,6 +932,24 @@ } } } + }, + "delete": { + "description": "Delete the Eth Node URLs", + "produces": [ + "application/json" + ], + "tags": [ + "system" + ], + "summary": "Delete Eth Node URLs", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/system.ConfigResponse" + } + } + } } }, "/files": { diff --git a/proxy-router/docs/swagger.yaml b/proxy-router/docs/swagger.yaml index 6797a594..9fadac0b 100644 --- a/proxy-router/docs/swagger.yaml +++ b/proxy-router/docs/swagger.yaml @@ -1240,6 +1240,18 @@ paths: tags: - system /config/ethNode: + delete: + description: Delete the Eth Node URLs + produces: + - application/json + responses: + "200": + description: OK + schema: + $ref: '#/definitions/system.ConfigResponse' + summary: Delete Eth Node URLs + tags: + - system post: consumes: - application/json diff --git a/proxy-router/internal/config/config.go b/proxy-router/internal/config/config.go index f6fa5834..b1feef96 100644 --- a/proxy-router/internal/config/config.go +++ b/proxy-router/internal/config/config.go @@ -18,12 +18,15 @@ type DerivedConfig struct { // Validation tags described here: https://pkg.go.dev/github.com/go-playground/validator/v10 type Config struct { + App struct { + ResetKeychain bool `env:"APP_RESET_KEYCHAIN" flag:"app-reset-keychain" desc:"reset keychain on start"` + } AIEngine struct { OpenAIBaseURL string `env:"OPENAI_BASE_URL" flag:"open-ai-base-url" validate:"required,url"` OpenAIKey string `env:"OPENAI_API_KEY" flag:"open-ai-api-key"` } Blockchain struct { - ChainID int `env:"ETH_NODE_CHAIN_ID" flag:"eth-node-chain-id" validate:"required,number"` + ChainID int `env:"ETH_NODE_CHAIN_ID" flag:"eth-node-chain-id" validate:"number"` EthNodeAddress string `env:"ETH_NODE_ADDRESS" flag:"eth-node-address" validate:"omitempty,url"` EthLegacyTx bool `env:"ETH_NODE_LEGACY_TX" flag:"eth-node-legacy-tx" desc:"use it to disable EIP-1559 transactions"` ExplorerApiUrl string `env:"EXPLORER_API_URL" flag:"explorer-api-url" validate:"required,url"` diff --git a/proxy-router/internal/interfaces/rpc_multi.go b/proxy-router/internal/interfaces/rpc_multi.go index a56eaa4a..ce8fea32 100644 --- a/proxy-router/internal/interfaces/rpc_multi.go +++ b/proxy-router/internal/interfaces/rpc_multi.go @@ -3,4 +3,5 @@ package interfaces type RPCEndpoints interface { GetURLs() []string SetURLs(urls []string) error + RemoveURLs() error } diff --git a/proxy-router/internal/repositories/contracts/log_watcher_polling_test.go b/proxy-router/internal/repositories/contracts/log_watcher_polling_test.go index 2bd1cb9a..50f93b6b 100644 --- a/proxy-router/internal/repositories/contracts/log_watcher_polling_test.go +++ b/proxy-router/internal/repositories/contracts/log_watcher_polling_test.go @@ -26,7 +26,7 @@ func TestLogWatcherPolling(t *testing.T) { _ = ethClientMock.EXPECT().FilterLogs(mock.Anything, mock.Anything).Return([]types.Log{}, nil).Times(1).NotBefore(call1) logWatcherPolling := NewLogWatcherPolling(ethClientMock, 0, 10, lib.NewTestLogger()) - _, err := logWatcherPolling.filterLogsRetry(context.Background(), ethereum.FilterQuery{}) + _, err := logWatcherPolling.filterLogsRetry(context.Background(), ethereum.FilterQuery{}, make(<-chan struct{})) require.NoError(t, err) ethClientMock.AssertNumberOfCalls(t, "FilterLogs", failTimes+1) } diff --git a/proxy-router/internal/repositories/ethclient/rpcclient.go b/proxy-router/internal/repositories/ethclient/rpcclient.go index 2851f95e..2fac363c 100644 --- a/proxy-router/internal/repositories/ethclient/rpcclient.go +++ b/proxy-router/internal/repositories/ethclient/rpcclient.go @@ -3,7 +3,6 @@ package ethclient import ( "context" - "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" "github.com/ethereum/go-ethereum/rpc" ) @@ -16,5 +15,6 @@ type RPCClient interface { type RPCClientModifiable interface { RPCClient - interfaces.RPCEndpoints + GetURLs() []string + SetURLs(urls []string) error } diff --git a/proxy-router/internal/repositories/ethclient/rpcclient_store_factory.go b/proxy-router/internal/repositories/ethclient/rpcclient_store_factory.go index 911e3486..18c296da 100644 --- a/proxy-router/internal/repositories/ethclient/rpcclient_store_factory.go +++ b/proxy-router/internal/repositories/ethclient/rpcclient_store_factory.go @@ -58,6 +58,10 @@ func ConfigureRPCClientStore(storage interfaces.KeyValueStorage, envURLs []strin p.log.Warn("Error during loading keychain eth client URLs, using fallback URLs", err) } + if chainID == 0 { + return nil, errors.New("Missing chainID. You need to set CHAIN_ID env variable to use public eth node addresses") + } + publicURLs, err := GetPublicRPCURLs(chainID) if err != nil { return nil, err diff --git a/proxy-router/internal/repositories/ethclient/rpcclient_store_keychain.go b/proxy-router/internal/repositories/ethclient/rpcclient_store_keychain.go index 2196825d..3112d772 100644 --- a/proxy-router/internal/repositories/ethclient/rpcclient_store_keychain.go +++ b/proxy-router/internal/repositories/ethclient/rpcclient_store_keychain.go @@ -17,6 +17,14 @@ type RPCClientStoreKeychain struct { log lib.ILogger } +func NewRPCClientStoreKeychain(storage interfaces.KeyValueStorage, rpcClient RPCClientModifiable, log lib.ILogger) *RPCClientStoreKeychain { + return &RPCClientStoreKeychain{ + storage: storage, + rpcClient: rpcClient, + log: log, + } +} + func (p *RPCClientStoreKeychain) GetURLs() []string { return p.rpcClient.GetURLs() } diff --git a/proxy-router/internal/system/controller.go b/proxy-router/internal/system/controller.go index c400867c..651cecfe 100644 --- a/proxy-router/internal/system/controller.go +++ b/proxy-router/internal/system/controller.go @@ -158,6 +158,24 @@ func (s *SystemController) SetEthNode(ctx *gin.Context) { ctx.JSON(http.StatusOK, gin.H{"status": "ok"}) } +// DeleteEthNode godoc +// +// @Summary Delete Eth Node URLs +// @Description Delete the Eth Node URLs +// @Tags system +// @Produce json +// @Success 200 {object} ConfigResponse +// @Router /config/ethNode [delete] +func (c *SystemController) RemoveEthNode(ctx *gin.Context) { + err := c.ethRPC.RemoveURLs() + if err != nil { + ctx.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + + ctx.JSON(http.StatusOK, gin.H{"status": "ok"}) +} + func writeFiles(writer io.Writer, files []FD) error { text := fmt.Sprintf("Total: %d\n", len(files)) text += "\n" From fdcb33bafdad310534bc9bf37f7115537bc08145 Mon Sep 17 00:00:00 2001 From: Aleksandr Kukharenko Date: Mon, 14 Oct 2024 14:45:46 +0300 Subject: [PATCH 014/260] fix: handling local models --- proxy-router/internal/proxyapi/chat_storage.go | 10 +++++++--- proxy-router/internal/proxyapi/controller_http.go | 6 +++--- ui-desktop/src/renderer/src/components/chat/Chat.tsx | 4 ++-- .../src/renderer/src/components/chat/interfaces.tsx | 1 + 4 files changed, 13 insertions(+), 8 deletions(-) diff --git a/proxy-router/internal/proxyapi/chat_storage.go b/proxy-router/internal/proxyapi/chat_storage.go index e2bf00e9..3ab9aba4 100644 --- a/proxy-router/internal/proxyapi/chat_storage.go +++ b/proxy-router/internal/proxyapi/chat_storage.go @@ -14,7 +14,7 @@ import ( type ChatStorageInterface interface { LoadChatFromFile(chatID string) (*ChatHistory, error) - StorePromptResponseToFile(chatID string, sessionID string, modelID string, prompt openai.ChatCompletionRequest, responses []interface{}, promptAt time.Time, responseAt time.Time) error + StorePromptResponseToFile(chatID string, isLocal bool, modelID string, prompt openai.ChatCompletionRequest, responses []interface{}, promptAt time.Time, responseAt time.Time) error GetChats() []Chat DeleteChat(chatID string) error UpdateChatTitle(chatID string, title string) error @@ -23,6 +23,7 @@ type ChatStorageInterface interface { type ChatHistory struct { Title string `json:"title"` ModelId string `json:"modelId"` + IsLocal bool `json:"isLocal"` Messages []ChatMessage `json:"messages"` } @@ -37,6 +38,7 @@ type Chat struct { ChatID string `json:"chatId"` ModelID string `json:"modelId"` Title string `json:"title"` + IsLocal bool `json:"isLocal"` CreatedAt int64 `json:"createdAt"` } @@ -55,7 +57,7 @@ func NewChatStorage(dirPath string) *ChatStorage { } // StorePromptResponseToFile stores the prompt and response to a file. -func (cs *ChatStorage) StorePromptResponseToFile(identifier string, sessionId string, modelId string, prompt openai.ChatCompletionRequest, responses []interface{}, promptAt, responseAt time.Time) error { +func (cs *ChatStorage) StorePromptResponseToFile(identifier string, isLocal bool, modelId string, prompt openai.ChatCompletionRequest, responses []interface{}, promptAt time.Time, responseAt time.Time) error { if err := os.MkdirAll(cs.dirPath, os.ModePerm); err != nil { return err } @@ -127,6 +129,7 @@ func (cs *ChatStorage) StorePromptResponseToFile(identifier string, sessionId st if data.Messages == nil && len(data.Messages) == 0 { data.ModelId = modelId data.Title = prompt.Messages[0].Content + data.IsLocal = isLocal } newMessages := append(data.Messages, newEntry) @@ -168,6 +171,7 @@ func (cs *ChatStorage) GetChats() []Chat { Title: fileContent.Title, CreatedAt: fileContent.Messages[0].PromptAt, ModelID: fileContent.ModelId, + IsLocal: fileContent.IsLocal, }) } @@ -250,7 +254,7 @@ func (cs *NoOpChatStorage) LoadChatFromFile(chatID string) (*ChatHistory, error) return nil, nil } -func (cs *NoOpChatStorage) StorePromptResponseToFile(chatID string, sessionID string, modelID string, prompt openai.ChatCompletionRequest, responses []interface{}, promptAt time.Time, responseAt time.Time) error { +func (cs *NoOpChatStorage) StorePromptResponseToFile(chatID string, isLocal bool, modelID string, prompt openai.ChatCompletionRequest, responses []interface{}, promptAt time.Time, responseAt time.Time) error { return nil } diff --git a/proxy-router/internal/proxyapi/controller_http.go b/proxy-router/internal/proxyapi/controller_http.go index 2988df17..1c7994f5 100644 --- a/proxy-router/internal/proxyapi/controller_http.go +++ b/proxy-router/internal/proxyapi/controller_http.go @@ -136,7 +136,7 @@ func (c *ProxyController) Prompt(ctx *gin.Context) { res, _ := c.aiEngine.PromptCb(ctx, &newBody) responses = res.([]interface{}) - if err := c.chatStorage.StorePromptResponseToFile(chatID.Hex(), "", modelId, prompt, responses, promptAt, responseAt); err != nil { + if err := c.chatStorage.StorePromptResponseToFile(chatID.Hex(), true, modelId, prompt, responses, promptAt, responseAt); err != nil { fmt.Println("Error storing prompt and responses:", err) } } @@ -159,7 +159,7 @@ func (c *ProxyController) Prompt(ctx *gin.Context) { prodiaResponses = append(prodiaResponses, completion) body.Model = prompt.Model - if err := c.chatStorage.StorePromptResponseToFile(chatID.Hex(), "", modelId, body, prodiaResponses, promptAt, responseAt); err != nil { + if err := c.chatStorage.StorePromptResponseToFile(chatID.Hex(), true, modelId, body, prodiaResponses, promptAt, responseAt); err != nil { fmt.Println("Error storing prompt and responses:", err) } return nil @@ -190,7 +190,7 @@ func (c *ProxyController) Prompt(ctx *gin.Context) { modelId = session.ModelID } - if err := c.chatStorage.StorePromptResponseToFile(chatID.Hex(), sessionID, modelId, body, responses, promptAt, responseAt); err != nil { + if err := c.chatStorage.StorePromptResponseToFile(chatID.Hex(), false, modelId, body, responses, promptAt, responseAt); err != nil { fmt.Println("Error storing prompt and responses:", err) } return diff --git a/ui-desktop/src/renderer/src/components/chat/Chat.tsx b/ui-desktop/src/renderer/src/components/chat/Chat.tsx index 8314c276..80bcbe05 100644 --- a/ui-desktop/src/renderer/src/components/chat/Chat.tsx +++ b/ui-desktop/src/renderer/src/components/chat/Chat.tsx @@ -40,7 +40,7 @@ import { ChatData, ChatHistoryInterface, ChatTitle, HistoryMessage } from './int let abort = false; let cancelScroll = false; -const userMessage = { user: 'Me', role: "user", icon: "M", color: getColor("M") }; +const userMessage = { user: 'Me', role: "user", icon: "M", color: "#20dc8e" }; const Chat = (props) => { const chatBlockRef = useRef(null); @@ -94,7 +94,7 @@ const Chat = (props) => { title: t.title, createdAt: new Date(t.createdAt * 1000), modelId: t.modelId, - isLocal: chainData?.models?.find((m: any) => m.Id === t.modelId && m.hasLocal) + isLocal: t.isLocal, }))); const sessions = await props.getSessionsByUser(props.address); diff --git a/ui-desktop/src/renderer/src/components/chat/interfaces.tsx b/ui-desktop/src/renderer/src/components/chat/interfaces.tsx index 03ab3d11..e8d31bb0 100644 --- a/ui-desktop/src/renderer/src/components/chat/interfaces.tsx +++ b/ui-desktop/src/renderer/src/components/chat/interfaces.tsx @@ -3,6 +3,7 @@ export interface ChatTitle { title: string; createdAt: number; // timestamp in seconds modelId: string; + isLocal?: boolean; } export interface ChatData { From 2740d7ebe9dc0559b52c0551860f688e63b2ed4c Mon Sep 17 00:00:00 2001 From: Aleksandr Kukharenko Date: Mon, 14 Oct 2024 17:56:11 +0300 Subject: [PATCH 015/260] docs: update readme.md --- proxy-router/readme.md | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 proxy-router/readme.md diff --git a/proxy-router/readme.md b/proxy-router/readme.md new file mode 100644 index 00000000..f76e500b --- /dev/null +++ b/proxy-router/readme.md @@ -0,0 +1,35 @@ +## Environment Variables: + +`PROXY_STORE_CHAT_CONTEXT` + +- **Type:** Boolean +- **Purpose:** Controls whether the proxy-router stores chat contexts locally. + +#### When `PROXY_STORE_CHAT_CONTEXT` is set to `TRUE` + +- **Local Storage of Chats:** + - The proxy saves chat sessions to local files. + - Chat histories are maintained, allowing for persistent conversations. + +- **API Operations:** (check swagger - `/v1/chats`) + - **Retrieve Chats:** Access stored chats via API endpoints. + - **Update Titles:** Modify chat titles using API calls. + - **Delete Chats:** Remove chat sessions through the API. + +- **Using `chat_id`:** + - Include a `chat_id` in the request header. + - The proxy-router automatically injects the corresponding chat context. + - **Request Simplification:** Only the latest message needs to be sent in the request body. + +#### When `PROXY_STORE_CHAT_CONTEXT` is set to `FALSE` + +- **No Chat Storage:** + - The proxy-router does not save any chat sessions locally. + +- **Client-Side Context Management:** + - Clients must include the entire conversation history in each request. + - The proxy-router forwards the request to the AI model without adding any context. + +--- + +Ensure the proxy-router is restarted after changing the environment variable to apply the new configuration. \ No newline at end of file From 664e9a2889eeca69145698d687b93892e685f434 Mon Sep 17 00:00:00 2001 From: abs2023 Date: Mon, 14 Oct 2024 15:25:20 -0400 Subject: [PATCH 016/260] update docker --- proxy-router/Dockerfile | 7 ++++--- proxy-router/docker-compose.yml | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/proxy-router/Dockerfile b/proxy-router/Dockerfile index 1eda590d..59d7e772 100644 --- a/proxy-router/Dockerfile +++ b/proxy-router/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.22.3 as base +FROM golang:1.22.3-alpine as base RUN apt-get update && apt-get install -y procps curl gnupg2 dbus-x11 FROM base as builder @@ -8,7 +8,8 @@ ENV COMMIT=$COMMIT WORKDIR /app COPY . . -RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 ./build.sh +RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 ./build.sh&& \ +cp /bin/sh /app/sh && chmod +x /app/sh FROM scratch WORKDIR /app @@ -20,5 +21,5 @@ COPY --from=busybox /bin /bin COPY --from=busybox /lib /lib SHELL ["/bin/sh", "-c"] -EXPOSE 3333 8080 8082 +EXPOSE 3333 8082 ENTRYPOINT ["proxy-router"] \ No newline at end of file diff --git a/proxy-router/docker-compose.yml b/proxy-router/docker-compose.yml index 64ff1c4d..e4beebfa 100644 --- a/proxy-router/docker-compose.yml +++ b/proxy-router/docker-compose.yml @@ -4,5 +4,5 @@ services: env_file: - .env ports: - - 8080:8080 + - 8082:8082 - 3333:3333 \ No newline at end of file From bc0a288ec89e41db2c453ec110bdbef04f47f934 Mon Sep 17 00:00:00 2001 From: abs2023 Date: Mon, 14 Oct 2024 15:32:18 -0400 Subject: [PATCH 017/260] remove busybox reference --- proxy-router/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/proxy-router/Dockerfile b/proxy-router/Dockerfile index 59d7e772..85056961 100644 --- a/proxy-router/Dockerfile +++ b/proxy-router/Dockerfile @@ -17,8 +17,8 @@ COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ COPY --from=builder /app/bin/proxy-router /usr/bin/ COPY --from=builder /usr/bin/dbus-launch /usr/bin/ COPY --from=builder /app/.env /app/.env -COPY --from=busybox /bin /bin -COPY --from=busybox /lib /lib +# COPY --from=busybox /bin /bin +# COPY --from=busybox /lib /lib SHELL ["/bin/sh", "-c"] EXPOSE 3333 8082 From 7ef183c0b2a05b3ef4baf2a3704d3d901fcacfd3 Mon Sep 17 00:00:00 2001 From: abs2023 Date: Mon, 14 Oct 2024 16:00:51 -0400 Subject: [PATCH 018/260] update dockerfile --- proxy-router/Dockerfile | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/proxy-router/Dockerfile b/proxy-router/Dockerfile index 85056961..3bed50bf 100644 --- a/proxy-router/Dockerfile +++ b/proxy-router/Dockerfile @@ -1,7 +1,5 @@ -FROM golang:1.22.3-alpine as base -RUN apt-get update && apt-get install -y procps curl gnupg2 dbus-x11 +FROM golang:1.22.3-alpine as builder -FROM base as builder ARG COMMIT ENV COMMIT=$COMMIT From e5ebc1151f6baef0b9cdf029994cd34fe13f3a6d Mon Sep 17 00:00:00 2001 From: abs2023 Date: Mon, 14 Oct 2024 16:07:07 -0400 Subject: [PATCH 019/260] update build.sh --- proxy-router/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proxy-router/build.sh b/proxy-router/build.sh index 3624bebd..ea7c4235 100755 --- a/proxy-router/build.sh +++ b/proxy-router/build.sh @@ -8,7 +8,7 @@ if [ -z "$COMMIT" ]; then COMMIT=$(git rev-parse HEAD) fi echo COMMIT=$COMMIT - +go mod tidy go build \ -tags docker \ -ldflags="-s -w \ From c7f680c87bcc25f3223cdb3323767634ddffeee8 Mon Sep 17 00:00:00 2001 From: abs2023 Date: Mon, 14 Oct 2024 16:10:47 -0400 Subject: [PATCH 020/260] update dockerfile --- proxy-router/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proxy-router/Dockerfile b/proxy-router/Dockerfile index 3bed50bf..33a37410 100644 --- a/proxy-router/Dockerfile +++ b/proxy-router/Dockerfile @@ -13,7 +13,7 @@ FROM scratch WORKDIR /app COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ COPY --from=builder /app/bin/proxy-router /usr/bin/ -COPY --from=builder /usr/bin/dbus-launch /usr/bin/ +# COPY --from=builder /usr/bin/dbus-launch /usr/bin/ COPY --from=builder /app/.env /app/.env # COPY --from=busybox /bin /bin # COPY --from=busybox /lib /lib From bc7979dc94074e6a565311e4918c35c5713bfd92 Mon Sep 17 00:00:00 2001 From: abs2023 Date: Mon, 14 Oct 2024 16:13:36 -0400 Subject: [PATCH 021/260] update dockerfile 3 --- proxy-router/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proxy-router/Dockerfile b/proxy-router/Dockerfile index 33a37410..6a25774a 100644 --- a/proxy-router/Dockerfile +++ b/proxy-router/Dockerfile @@ -14,7 +14,7 @@ WORKDIR /app COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ COPY --from=builder /app/bin/proxy-router /usr/bin/ # COPY --from=builder /usr/bin/dbus-launch /usr/bin/ -COPY --from=builder /app/.env /app/.env +# COPY --from=builder /app/.env /app/.env # COPY --from=busybox /bin /bin # COPY --from=busybox /lib /lib From 53b7432c6757d90827b195eaefd4a23f3ac795fb Mon Sep 17 00:00:00 2001 From: "bohdan.konorin" Date: Wed, 16 Oct 2024 23:08:26 +0200 Subject: [PATCH 022/260] Added availability check --- proxy-router/.env.example | 8 +-- .../internal/proxyapi/controller_http.go | 6 +++ .../main/src/client/handlers/single-core.js | 22 +------- .../src/client/subscriptions/single-core.js | 1 - ui-desktop/src/renderer/src/client/index.jsx | 1 - .../src/renderer/src/components/chat/Chat.tsx | 34 ++++++++---- .../src/components/chat/ChatHistory.tsx | 14 +++-- .../src/components/chat/modals/ModelRow.tsx | 14 +++-- .../chat/modals/ModelSelectionModal.tsx | 6 ++- .../renderer/src/store/hocs/withChatState.jsx | 53 +++++++++++++++++-- 10 files changed, 109 insertions(+), 50 deletions(-) diff --git a/proxy-router/.env.example b/proxy-router/.env.example index 2044b0bf..412f8239 100644 --- a/proxy-router/.env.example +++ b/proxy-router/.env.example @@ -8,6 +8,10 @@ WEB_ADDRESS=0.0.0.0:8082 # Change to your desired port that your Proxy-router AP WEB_PUBLIC_URL=localhost:8082 # Change to your desired port should match WEB_ADDRESS port number OPENAI_BASE_URL=http://localhost:8080/v1 # Change to your OpenAI API port for local model +PROXY_ADDRESS=0.0.0.0:3333 +PROXY_STORAGE_PATH=./data/ +PROXY_STORE_CHAT_CONTEXT=true + # MODELS_CONFIG_PATH= ENVIRONMENT=development ETH_NODE_LEGACY_TX=false @@ -19,9 +23,7 @@ LOG_LEVEL_CONNECTION=info LOG_LEVEL_PROXY=info LOG_LEVEL_SCHEDULER=info OPENAI_API_KEY= #optional -PROXY_ADDRESS=0.0.0.0:3333 -PROXY_STORAGE_PATH=./data/ -PROXY_STORE_CHAT_CONTEXT=true + SYS_ENABLE=false SYS_LOCAL_PORT_RANGE=1024 65535 SYS_NET_DEV_MAX_BACKLOG=100000 diff --git a/proxy-router/internal/proxyapi/controller_http.go b/proxy-router/internal/proxyapi/controller_http.go index 1c7994f5..7e77d749 100644 --- a/proxy-router/internal/proxyapi/controller_http.go +++ b/proxy-router/internal/proxyapi/controller_http.go @@ -221,6 +221,12 @@ func (c *ProxyController) Models(ctx *gin.Context) { // @Router /v1/chats [get] func (c *ProxyController) GetChats(ctx *gin.Context) { chats := c.chatStorage.GetChats() + + if chats == nil { + ctx.JSON(http.StatusOK, make([]Chat, 0)) + return + } + ctx.JSON(http.StatusOK, chats) } diff --git a/ui-desktop/src/main/src/client/handlers/single-core.js b/ui-desktop/src/main/src/client/handlers/single-core.js index 6cc17555..54d31229 100644 --- a/ui-desktop/src/main/src/client/handlers/single-core.js +++ b/ui-desktop/src/main/src/client/handlers/single-core.js @@ -174,7 +174,7 @@ export const onboardingCompleted = (data, core) => { }) .then((privateKey) => { const { proxyUrl } = data - return fetch(`${proxyUrl}/wallet`, { + return fetch(`${proxyUrl}/wallet/privateKey`, { method: 'POST', body: JSON.stringify({ privateKey @@ -185,25 +185,6 @@ export const onboardingCompleted = (data, core) => { .catch((err) => ({ error: new WalletError('Onboarding unable to be completed: ', err) })) } -export const recoverFromMnemonic = function (data, core) { - if (!auth.isValidPassword(data.password)) { - return null - } - - wallet.clearWallet() - - return createWallet( - { - mnemonic: data.mnemonic, - password: data.password - }, - core, - false - ) - .then(noCore.clearCache) - .then((_) => auth.setSessionPassword(data.password)) -} - function onLoginSubmit({ password }, core) { var checkPassword = config.chain.bypassAuth ? new Promise((r) => r(true)) @@ -346,7 +327,6 @@ export default { createContract, cancelContract, onboardingCompleted, - recoverFromMnemonic, onLoginSubmit, refreshAllTransactions, createWallet, diff --git a/ui-desktop/src/main/src/client/subscriptions/single-core.js b/ui-desktop/src/main/src/client/subscriptions/single-core.js index fb3ee47c..53e03ea0 100644 --- a/ui-desktop/src/main/src/client/subscriptions/single-core.js +++ b/ui-desktop/src/main/src/client/subscriptions/single-core.js @@ -4,7 +4,6 @@ import utils from './utils' export const withCore = (core) => (fn) => (data) => fn(data, core) export const listeners = { - 'recover-from-mnemonic': handlers.recoverFromMnemonic, 'onboarding-completed': handlers.onboardingCompleted, 'login-submit': handlers.onLoginSubmit, // 'refresh-all-sockets': handlers.refreshAllSockets, diff --git a/ui-desktop/src/renderer/src/client/index.jsx b/ui-desktop/src/renderer/src/client/index.jsx index d3372c37..587dfd00 100644 --- a/ui-desktop/src/renderer/src/client/index.jsx +++ b/ui-desktop/src/renderer/src/client/index.jsx @@ -93,7 +93,6 @@ const createClient = function (createStore) { refreshAllTransactions: utils.forwardToMainProcess('refresh-all-transactions', 120000), refreshAllContracts: utils.forwardToMainProcess('refresh-all-contracts', 120000), onOnboardingCompleted: utils.forwardToMainProcess('onboarding-completed'), - recoverFromMnemonic: utils.forwardToMainProcess('recover-from-mnemonic'), getTokenGasLimit: utils.forwardToMainProcess('get-token-gas-limit'), validatePassword: utils.forwardToMainProcess('validate-password'), changePassword: utils.forwardToMainProcess('change-password'), diff --git a/ui-desktop/src/renderer/src/components/chat/Chat.tsx b/ui-desktop/src/renderer/src/components/chat/Chat.tsx index c9f3fd79..aecd99ac 100644 --- a/ui-desktop/src/renderer/src/components/chat/Chat.tsx +++ b/ui-desktop/src/renderer/src/components/chat/Chat.tsx @@ -89,15 +89,31 @@ const Chat = (props) => { setBalances(userBalances) setMeta(meta); setChainData(chainData) - setChatsData(chats.map(t => ({ - id: t.chatId, - title: t.title, - createdAt: new Date(t.createdAt * 1000), - modelId: t.modelId, - isLocal: t.isLocal, - }))); - - const sessions = await props.getSessionsByUser(props.address); + + const mappedChatData = chats.reduce((res, item) => { + const chatModel = chainData.models.find(x => x.Id == item.modelId); + if(chatModel) { + res.push({ + id: item.chatId, + title: item.title, + createdAt: new Date(item.createdAt * 1000), + modelId: item.modelId, + isLocal: item.isLocal, + }) + } + return res; + }, [] as ChatData[]) + setChatsData(mappedChatData); + + const sessions = (await props.getSessionsByUser(props.address)).reduce((res, item) => { + const sessionModel = chainData.models.find(x => x.Id == item.ModelAgentId); + if(sessionModel) { + item.ModelName = sessionModel.Name; + res.push(item); + } + return res; + }, []); + const openSessions = sessions.filter(s => !isClosed(s)); setSessions(sessions); diff --git a/ui-desktop/src/renderer/src/components/chat/ChatHistory.tsx b/ui-desktop/src/renderer/src/components/chat/ChatHistory.tsx index fcef9190..3430d41e 100644 --- a/ui-desktop/src/renderer/src/components/chat/ChatHistory.tsx +++ b/ui-desktop/src/renderer/src/components/chat/ChatHistory.tsx @@ -207,21 +207,19 @@ export const ChatHistory = (props: ChatHistoryProps) => { { sessions?.length ? ( - sessions.map(a => { - const model = props.models.find(x => x.Id == a.ModelAgentId); - + sessions.map(s => { return ( - +
- {!isClosed(a) ? + {!isClosed(s) ? Active - props.onCloseSession(a.Id)}>Close + props.onCloseSession(s.Id)}>Close : null}
- {model?.Name} - {((a.EndsAt - a.OpenedAt) / 60).toFixed(0)} min + {s.ModelName} + {((s.EndsAt - s.OpenedAt) / 60).toFixed(0)} min
) diff --git a/ui-desktop/src/renderer/src/components/chat/modals/ModelRow.tsx b/ui-desktop/src/renderer/src/components/chat/modals/ModelRow.tsx index 32915a6a..d097816b 100644 --- a/ui-desktop/src/renderer/src/components/chat/modals/ModelRow.tsx +++ b/ui-desktop/src/renderer/src/components/chat/modals/ModelRow.tsx @@ -6,7 +6,7 @@ import { } from '../../contracts/modals/CreateContractModal.styles'; import { abbreviateAddress } from '../../../utils'; import { formatSmallNumber } from '../utils'; -import { IconX } from '@tabler/icons-react'; +import { IconX, IconPlugConnectedX } from '@tabler/icons-react'; const RowContainer = styled.div` padding: 0 1.2rem; @@ -58,6 +58,12 @@ const ModelNameContainer = styled(FlexCenter)` text-overflow: ellipsis; ` +const DisconnectedIcon = styled(IconPlugConnectedX)` + width: 16px; + color: white; + margin-left: 10px; +` + const selectorStyles = { control: (base) => ({ ...base, borderColor: '#20dc8e', width: '100%', background: 'transparent' }), option: (base, state) => ({ @@ -94,6 +100,7 @@ function ModelRow(props) { const modelId = props?.model?.Id || ''; const hasLocal = props?.model?.hasLocal; const hasBids = Boolean(bids.length); + const lastAvailabilityCheck: Date | null = bids.map(b => new Date(b.ProviderData.availabilityUpdatedAt))[0] ?? null; const [selected, changeSelected] = useState(); const [useSelect, setUseSelect] = useState(); @@ -135,7 +142,8 @@ function ModelRow(props) { return ( - {props?.model?.Name} + { props?.model?.Name } + { !props?.model?.isOnline && } { @@ -182,7 +190,7 @@ function ModelRow(props) { } { hasBids && - Select + Select } diff --git a/ui-desktop/src/renderer/src/components/chat/modals/ModelSelectionModal.tsx b/ui-desktop/src/renderer/src/components/chat/modals/ModelSelectionModal.tsx index a2f97713..f2d6da16 100644 --- a/ui-desktop/src/renderer/src/components/chat/modals/ModelSelectionModal.tsx +++ b/ui-desktop/src/renderer/src/components/chat/modals/ModelSelectionModal.tsx @@ -47,7 +47,11 @@ const ModelSelectionModal = ({ isActive, handleClose, models, onChangeModel }) = handleClose(); } - const filterdModels = search ? models.filter(m => m.Name.includes(search)) : models; + const sortedModels = models + .map(m => ({ ...m, isOnline: m.bids.some(b => b.ProviderData.availabilityStatus == "available") })) + .sort((a, b) => b.isOnline - a.isOnline); + + const filterdModels = search ? sortedModels.filter(m => m.Name.includes(search)) : sortedModels; return ( { class Container extends React.Component { @@ -129,6 +133,17 @@ const withChatState = WrappedComponent => { const models = modelsResp.filter(m => !m.IsDeleted); const providers = providersResp.filter(m => !m.IsDeleted); + + const availabilityResults = await this.getProvidersAvailability(providers); + availabilityResults.forEach(ar => { + const provider = providers.find(p => p.Address == ar.id); + if(!provider) + return; + + provider.availabilityStatus = ar.status; + provider.availabilityUpdatedAt = ar.time; + }); + const providersMap = providers.reduce((a, b) => ({ ...a, [b.Address.toLowerCase()]: b }), {}); const responses = (await Promise.all( @@ -155,6 +170,38 @@ const withChatState = WrappedComponent => { return { models: result.filter(r => r.bids.length || r.hasLocal), providers } } + getProvidersAvailability = async (providers) => { + const availabilityResults = await Promise.all(providers.map(async p => { + try { + const storedRecord = JSON.parse(localStorage.getItem(p.Address)); + if(storedRecord && storedRecord.status != AvailabilityStatus.unknown) { + const lastUpdatedAt = new Date(storedRecord.time); + const oneHourBefore = new Date(new Date().getTime() - (60 * 60 * 1000)); + + if(lastUpdatedAt > oneHourBefore) { + return ({...storedRecord, id: p.Address}); + } + } + + const endpoint = p.Endpoint; + const [domain, port] = endpoint.split(":"); + const { data } = await axios.post("https://portchecker.io/api/v1/query", { + host: domain, + ports: [port], + }) + + const isValid = !!data.check?.find((c) => c.port == port && c.status == true); + const record = ({id: p.Address, status: isValid ? AvailabilityStatus.available : AvailabilityStatus.disconnected, time: new Date() }); + localStorage.setItem(record.id, JSON.stringify({ status: record.status, time: record.time })); + return record; + } + catch(e) { + return ({id: p.Address, status: AvailabilityStatus.unknown }) + } + })); + return availabilityResults; + } + getMetaInfo = async () => { const [budget, supply] = await Promise.all([ this.props.client.getTodaysBudget(), From 3723c38876c23cef837fede1ddae5d9d46a500d1 Mon Sep 17 00:00:00 2001 From: Aleksandr Kukharenko Date: Tue, 22 Oct 2024 15:18:18 +0300 Subject: [PATCH 023/260] feat: capacity managing --- proxy-router/cmd/main.go | 2 +- .../internal/blockchainapi/event_listener.go | 4 + .../internal/blockchainapi/service.go | 4 +- proxy-router/internal/config/models_config.go | 10 +- .../internal/proxyapi/capacity_manager.go | 116 +++++++++++++++ .../internal/proxyapi/proxy_receiver.go | 33 ++++- proxy-router/internal/proxyctl/proxyctl.go | 6 +- .../internal/storages/session_storage.go | 135 ++++++++++++++++++ proxy-router/readme.md | 25 +++- 9 files changed, 323 insertions(+), 12 deletions(-) create mode 100644 proxy-router/internal/proxyapi/capacity_manager.go diff --git a/proxy-router/cmd/main.go b/proxy-router/cmd/main.go index bda5acdb..a63b12a2 100644 --- a/proxy-router/cmd/main.go +++ b/proxy-router/cmd/main.go @@ -291,7 +291,7 @@ func start() error { cancel() }() - proxy := proxyctl.NewProxyCtl(eventListener, wallet, chainID, log, connLog, cfg.Proxy.Address, schedulerLogFactory, sessionStorage, modelConfigLoader, valid, aiEngine) + proxy := proxyctl.NewProxyCtl(eventListener, wallet, chainID, log, connLog, cfg.Proxy.Address, schedulerLogFactory, sessionStorage, modelConfigLoader, valid, aiEngine, blockchainApi) err = proxy.Run(ctx) cancelServer() diff --git a/proxy-router/internal/blockchainapi/event_listener.go b/proxy-router/internal/blockchainapi/event_listener.go index a5424468..bb036715 100644 --- a/proxy-router/internal/blockchainapi/event_listener.go +++ b/proxy-router/internal/blockchainapi/event_listener.go @@ -106,6 +106,10 @@ func (e *EventsListener) handleSessionOpened(event *sessionrouter.SessionRouterS var modelConfig *config.ModelConfig if session.Provider.Hex() == address.Hex() { modelConfig = e.modelConfigLoader.ModelConfigFromID(modelID) + err = e.store.AddSessionToModel(modelID, sessionId) + if err != nil { + return err + } } else { modelConfig = &config.ModelConfig{} } diff --git a/proxy-router/internal/blockchainapi/service.go b/proxy-router/internal/blockchainapi/service.go index 78ad4908..4f8fca66 100644 --- a/proxy-router/internal/blockchainapi/service.go +++ b/proxy-router/internal/blockchainapi/service.go @@ -699,7 +699,8 @@ func (s *BlockchainService) OpenSessionByModelId(ctx context.Context, modelID co scoredBids := rateBids(bidIDs, bids, providerStats, modelStats, s.log) for i, bid := range scoredBids { s.log.Infof("trying to open session with provider #%d %s", i, bid.Bid.Provider.String()) - hash, err := s.tryOpenSession(ctx, bid, duration, supply, budget, userAddr) + durationCopy := new(big.Int).Set(duration) + hash, err := s.tryOpenSession(ctx, bid, durationCopy, supply, budget, userAddr) if err == nil { return hash, nil } @@ -717,7 +718,6 @@ func (s *BlockchainService) tryOpenSession(ctx context.Context, bid structs.Scor totalCost := duration.Mul(&bid.Bid.PricePerSecond.Int, duration) stake := totalCost.Div(totalCost.Mul(supply, totalCost), budget) - initRes, err := s.proxyService.InitiateSession(ctx, userAddr, bid.Bid.Provider, stake, bid.Bid.Id, provider.Endpoint) if err != nil { return common.Hash{}, lib.WrapError(ErrInitSession, err) diff --git a/proxy-router/internal/config/models_config.go b/proxy-router/internal/config/models_config.go index 44b01b5b..02c11f55 100644 --- a/proxy-router/internal/config/models_config.go +++ b/proxy-router/internal/config/models_config.go @@ -13,10 +13,12 @@ type ModelConfigLoader struct { } type ModelConfig struct { - ModelName string `json:"modelName"` - ApiType string `json:"apiType"` - ApiURL string `json:"apiUrl"` - ApiKey string `json:"apiKey"` + ModelName string `json:"modelName"` + ApiType string `json:"apiType"` + ApiURL string `json:"apiUrl"` + ApiKey string `json:"apiKey"` + ConcurrentSlots int `json:"concurrentSlots"` + CapacityPolicy string `json:"capacityPolicy"` } type ModelConfigs map[string]ModelConfig diff --git a/proxy-router/internal/proxyapi/capacity_manager.go b/proxy-router/internal/proxyapi/capacity_manager.go new file mode 100644 index 00000000..930d8b69 --- /dev/null +++ b/proxy-router/internal/proxyapi/capacity_manager.go @@ -0,0 +1,116 @@ +package proxyapi + +import ( + "time" + + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/config" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/storages" +) + +type CapacityManagerInterface interface { + HasCapacity(modelID string) bool +} + +type CapacityManager struct { +} + +type SimpleCapacityManager struct { + storage *storages.SessionStorage + modelConfig *config.ModelConfig + log lib.ILogger +} + +func NewSimpleCapacityManager(modelConfig *config.ModelConfig, storage *storages.SessionStorage, log lib.ILogger) *SimpleCapacityManager { + return &SimpleCapacityManager{ + storage: storage, + modelConfig: modelConfig, + log: log, + } +} + +func (scm *SimpleCapacityManager) HasCapacity(modelID string) bool { + if scm.modelConfig.ConcurrentSlots == 0 { + return true + } + + sessions, err := scm.storage.GetSessionsForModel(modelID) + if err != nil { + scm.log.Error(err) + return false + } + + activeSessions := 0 + for _, session := range sessions { + s, ok := scm.storage.GetSession(session) + if !ok { + continue + } + if s.EndsAt.Int64() > time.Now().Unix() { + activeSessions++ + } + } + + return activeSessions < scm.modelConfig.ConcurrentSlots +} + +type IdleTimeoutCapacityManager struct { + storage *storages.SessionStorage + modelConfig *config.ModelConfig + log lib.ILogger +} + +func NewIdleTimeoutCapacityManager(modelConfig *config.ModelConfig, storage *storages.SessionStorage, log lib.ILogger) *IdleTimeoutCapacityManager { + return &IdleTimeoutCapacityManager{ + storage: storage, + modelConfig: modelConfig, + log: log, + } +} + +func (idcm *IdleTimeoutCapacityManager) HasCapacity(modelID string) bool { + IDLE_TIMEOUT := 15 * 60 // 15 min + + if idcm.modelConfig.ConcurrentSlots == 0 { + return true + } + + activities, err := idcm.storage.GetActivities(modelID) + if err != nil { + idcm.log.Error(err) + return false + } + + activeSessions := 0 + for _, activity := range activities { + session, ok := idcm.storage.GetSession(activity.SessionID) + if !ok { + continue + } + if session.EndsAt.Int64() < time.Now().Unix() { + continue + } + if activity.EndTime > time.Now().Unix()-int64(IDLE_TIMEOUT) { + activeSessions++ + } + } + + REMOTE_IDLE_TIMEOUT := 60 * 60 // 60 min + err = idcm.storage.RemoveOldActivities(modelID, time.Now().Unix()-int64(REMOTE_IDLE_TIMEOUT)) + if err != nil { + idcm.log.Warnf("Failed to remove old activities: %s", err) + } + + return activeSessions < idcm.modelConfig.ConcurrentSlots +} + +func CreateCapacityManager(modelConfig *config.ModelConfig, storage *storages.SessionStorage, log lib.ILogger) CapacityManagerInterface { + switch modelConfig.CapacityPolicy { + case "simple": + return NewSimpleCapacityManager(modelConfig, storage, log) + case "idle_timeout": + return NewIdleTimeoutCapacityManager(modelConfig, storage, log) + default: + return NewSimpleCapacityManager(modelConfig, storage, log) + } +} diff --git a/proxy-router/internal/proxyapi/proxy_receiver.go b/proxy-router/internal/proxyapi/proxy_receiver.go index a92c564a..88b8d75e 100644 --- a/proxy-router/internal/proxyapi/proxy_receiver.go +++ b/proxy-router/internal/proxyapi/proxy_receiver.go @@ -8,6 +8,7 @@ import ( "time" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/aiengine" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/blockchainapi/structs" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/config" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" m "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/proxyapi/morrpcmessage" @@ -25,9 +26,14 @@ type ProxyReceiver struct { sessionStorage *storages.SessionStorage aiEngine *aiengine.AiEngine modelConfigLoader *config.ModelConfigLoader + blockchainService GetBidService } -func NewProxyReceiver(privateKeyHex, publicKeyHex lib.HexString, sessionStorage *storages.SessionStorage, aiEngine *aiengine.AiEngine, chainID *big.Int, modelConfigLoader *config.ModelConfigLoader) *ProxyReceiver { +type GetBidService interface { + GetBidByID(ctx context.Context, ID common.Hash) (*structs.Bid, error) +} + +func NewProxyReceiver(privateKeyHex, publicKeyHex lib.HexString, sessionStorage *storages.SessionStorage, aiEngine *aiengine.AiEngine, chainID *big.Int, modelConfigLoader *config.ModelConfigLoader, blockchainService GetBidService) *ProxyReceiver { return &ProxyReceiver{ privateKeyHex: privateKeyHex, publicKeyHex: publicKeyHex, @@ -36,6 +42,7 @@ func NewProxyReceiver(privateKeyHex, publicKeyHex lib.HexString, sessionStorage aiEngine: aiEngine, chainID: chainID, modelConfigLoader: modelConfigLoader, + blockchainService: blockchainService, } } @@ -125,13 +132,35 @@ func (s *ProxyReceiver) SessionPrompt(ctx context.Context, requestID string, use sourceLog.Error(err) return 0, 0, err } + + activity := storages.PromptActivity{ + SessionID: session.Id, + StartTime: now, + EndTime: time.Now().Unix(), + } + err = s.sessionStorage.AddActivity(session.ModelID, &activity) + if err != nil { + sourceLog.Warnf("failed to store activity: %s", err) + } + return ttftMs, totalTokens, nil } func (s *ProxyReceiver) SessionRequest(ctx context.Context, msgID string, reqID string, req *m.SessionReq, sourceLog lib.ILogger) (*msg.RpcResponse, error) { sourceLog.Debugf("Received session request from %s, timestamp: %s", req.User, req.Timestamp) - hasCapacity := true // check if there is capacity + bid, err := s.blockchainService.GetBidByID(ctx, req.BidID) + if err != nil { + err := lib.WrapError(fmt.Errorf("failed to get bid"), err) + sourceLog.Error(err) + return nil, err + } + + modelID := bid.ModelAgentId.String() + modelConfig := s.modelConfigLoader.ModelConfigFromID(modelID) + capacityManager := CreateCapacityManager(modelConfig, s.sessionStorage, sourceLog) + + hasCapacity := capacityManager.HasCapacity(modelID) if !hasCapacity { err := fmt.Errorf("no capacity") sourceLog.Error(err) diff --git a/proxy-router/internal/proxyctl/proxyctl.go b/proxy-router/internal/proxyctl/proxyctl.go index 43bef0d5..2813caf3 100644 --- a/proxy-router/internal/proxyctl/proxyctl.go +++ b/proxy-router/internal/proxyctl/proxyctl.go @@ -55,13 +55,14 @@ type Proxy struct { aiEngine *aiengine.AiEngine validator *validator.Validate modelConfigLoader *config.ModelConfigLoader + blockchainService *blockchainapi.BlockchainService state lib.AtomicValue[ProxyState] tsk *lib.Task } // NewProxyCtl creates a new Proxy controller instance -func NewProxyCtl(eventListerer *blockchainapi.EventsListener, wallet interfaces.PrKeyProvider, chainID *big.Int, log *lib.Logger, connLog *lib.Logger, proxyAddr string, scl SchedulerLogFactory, sessionStorage *storages.SessionStorage, modelConfigLoader *config.ModelConfigLoader, valid *validator.Validate, aiEngine *aiengine.AiEngine) *Proxy { +func NewProxyCtl(eventListerer *blockchainapi.EventsListener, wallet interfaces.PrKeyProvider, chainID *big.Int, log *lib.Logger, connLog *lib.Logger, proxyAddr string, scl SchedulerLogFactory, sessionStorage *storages.SessionStorage, modelConfigLoader *config.ModelConfigLoader, valid *validator.Validate, aiEngine *aiengine.AiEngine, blockchainService *blockchainapi.BlockchainService) *Proxy { return &Proxy{ eventListener: eventListerer, chainID: chainID, @@ -74,6 +75,7 @@ func NewProxyCtl(eventListerer *blockchainapi.EventsListener, wallet interfaces. aiEngine: aiEngine, validator: valid, modelConfigLoader: modelConfigLoader, + blockchainService: blockchainService, } } @@ -136,7 +138,7 @@ func (p *Proxy) run(ctx context.Context, prKey lib.HexString) error { return err } - proxyReceiver := proxyapi.NewProxyReceiver(prKey, pubKey, p.sessionStorage, p.aiEngine, p.chainID, p.modelConfigLoader) + proxyReceiver := proxyapi.NewProxyReceiver(prKey, pubKey, p.sessionStorage, p.aiEngine, p.chainID, p.modelConfigLoader, p.blockchainService) morTcpHandler := proxyapi.NewMORRPCController(proxyReceiver, p.validator, p.sessionStorage) tcpHandler := tcphandlers.NewTCPHandler( diff --git a/proxy-router/internal/storages/session_storage.go b/proxy-router/internal/storages/session_storage.go index c5c05a1d..5ca9029f 100644 --- a/proxy-router/internal/storages/session_storage.go +++ b/proxy-router/internal/storages/session_storage.go @@ -110,3 +110,138 @@ func (s *SessionStorage) RemoveSession(id string) error { } return nil } + +type PromptActivity struct { + SessionID string + StartTime int64 + EndTime int64 +} + +func (s *SessionStorage) AddSessionToModel(modelID string, sessionID string) error { + modelID = strings.ToLower(modelID) + key := fmt.Sprintf("model:%s", modelID) + + var sessions []string + sessionsJson, err := s.db.Get([]byte(key)) + if err == nil { + err = json.Unmarshal(sessionsJson, &sessions) + if err != nil { + return err + } + } else { + sessions = []string{} + } + + sessions = append(sessions, sessionID) + sessionsJson, err = json.Marshal(sessions) + if err != nil { + return err + } + + err = s.db.Set([]byte(key), sessionsJson) + if err != nil { + return err + } + return nil +} + +func (s *SessionStorage) GetSessionsForModel(modelID string) ([]string, error) { + modelID = strings.ToLower(modelID) + key := fmt.Sprintf("model:%s", modelID) + + sessionsJson, err := s.db.Get([]byte(key)) + if err != nil { + return []string{}, nil + } + + var sessions []string + err = json.Unmarshal(sessionsJson, &sessions) + if err != nil { + return nil, err + } + + return sessions, nil +} + +func (s *SessionStorage) AddActivity(modelID string, activity *PromptActivity) error { + modelID = strings.ToLower(modelID) + key := fmt.Sprintf("activity:%s", modelID) + + var activities []*PromptActivity + activitiesJson, err := s.db.Get([]byte(key)) + if err == nil { + err = json.Unmarshal(activitiesJson, &activities) + if err != nil { + return err + } + } else { + activities = []*PromptActivity{} + } + + activities = append(activities, activity) + activitiesJson, err = json.Marshal(activities) + if err != nil { + return err + } + + err = s.db.Set([]byte(key), activitiesJson) + if err != nil { + return err + } + return nil +} + +func (s *SessionStorage) GetActivities(modelID string) ([]*PromptActivity, error) { + modelID = strings.ToLower(modelID) + key := fmt.Sprintf("activity:%s", modelID) + + activitiesJson, err := s.db.Get([]byte(key)) + if err != nil { + return []*PromptActivity{}, nil + } + + var activities []*PromptActivity + err = json.Unmarshal(activitiesJson, &activities) + if err != nil { + return nil, err + } + + return activities, nil +} + +// // New method to remove activities older than a certain time +func (s *SessionStorage) RemoveOldActivities(modelID string, beforeTime int64) error { + modelID = strings.ToLower(modelID) + key := fmt.Sprintf("activity:%s", modelID) + + activitiesJson, err := s.db.Get([]byte(key)) + if err != nil { + return nil + } + + var activities []*PromptActivity + err = json.Unmarshal(activitiesJson, &activities) + if err != nil { + return err + } + + // Filter activities, keep only those after beforeTime + var updatedActivities []*PromptActivity + for _, activity := range activities { + if activity.EndTime > beforeTime { + updatedActivities = append(updatedActivities, activity) + } + } + + activitiesJson, err = json.Marshal(updatedActivities) + if err != nil { + return err + } + + err = s.db.Set([]byte(key), activitiesJson) + if err != nil { + return err + } + + return nil +} diff --git a/proxy-router/readme.md b/proxy-router/readme.md index f76e500b..0b6a4b3a 100644 --- a/proxy-router/readme.md +++ b/proxy-router/readme.md @@ -32,4 +32,27 @@ --- -Ensure the proxy-router is restarted after changing the environment variable to apply the new configuration. \ No newline at end of file +Ensure the proxy-router is restarted after changing the environment variable to apply the new configuration. + +## CapacityPolicy strategies (models-config.json): + +#### `simple` + +Assign a slot to each session upon initiation, blocking new sessions when all slots are occupied, regardless of activity level. + +- Each new session consumes one slot from the total available slots N (`concurrentSlots`). + +- Do not allow new sessions when slots_in_use >= N. + +- Slots remain occupied until the user explicitly closes the session or times out. + + +#### `idle_timeout` + +Free up slots occupied by inactive sessions by setting an idle timeout period. + +Timeout is 15 minutes. + +- If no prompt is received within the idle timeout period, mark the session as idle. + +- Release the slot associated with the idle session, making it available for new users. From fe415d95f451425e223cf381bd1efc94155c77af Mon Sep 17 00:00:00 2001 From: Aleksandr Kukharenko Date: Tue, 22 Oct 2024 15:20:23 +0300 Subject: [PATCH 024/260] remove unused struct --- proxy-router/internal/proxyapi/capacity_manager.go | 3 --- 1 file changed, 3 deletions(-) diff --git a/proxy-router/internal/proxyapi/capacity_manager.go b/proxy-router/internal/proxyapi/capacity_manager.go index 930d8b69..d27c23b2 100644 --- a/proxy-router/internal/proxyapi/capacity_manager.go +++ b/proxy-router/internal/proxyapi/capacity_manager.go @@ -12,9 +12,6 @@ type CapacityManagerInterface interface { HasCapacity(modelID string) bool } -type CapacityManager struct { -} - type SimpleCapacityManager struct { storage *storages.SessionStorage modelConfig *config.ModelConfig From 206e6a75cf395e1b00d97f6ac1bdb07745ddd91d Mon Sep 17 00:00:00 2001 From: Aleksandr Kukharenko Date: Tue, 22 Oct 2024 17:02:22 +0300 Subject: [PATCH 025/260] fix: errors on events listener --- .../internal/repositories/contracts/log_watcher_polling.go | 5 +++-- .../repositories/contracts/log_watcher_subscription.go | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/proxy-router/internal/repositories/contracts/log_watcher_polling.go b/proxy-router/internal/repositories/contracts/log_watcher_polling.go index d59117c8..77e80fd4 100644 --- a/proxy-router/internal/repositories/contracts/log_watcher_polling.go +++ b/proxy-router/internal/repositories/contracts/log_watcher_polling.go @@ -67,7 +67,8 @@ func (w *LogWatcherPolling) Watch(ctx context.Context, contractAddr common.Addre } event, err := mapper(log) if err != nil { - return err // mapper error, retry won't help + w.log.Debugf("error mapping event: %s", err) + continue // mapper error, retry won't help, but we can continue } select { @@ -80,7 +81,7 @@ func (w *LogWatcherPolling) Watch(ctx context.Context, contractAddr common.Addre } if len(sub) > 0 { - lastQueriedBlock = new(big.Int).SetUint64(sub[len(sub)-1].BlockNumber) + lastQueriedBlock = new(big.Int).SetUint64(sub[len(sub)-1].BlockNumber + 1) } select { diff --git a/proxy-router/internal/repositories/contracts/log_watcher_subscription.go b/proxy-router/internal/repositories/contracts/log_watcher_subscription.go index 98e6a33d..42c7fb6c 100644 --- a/proxy-router/internal/repositories/contracts/log_watcher_subscription.go +++ b/proxy-router/internal/repositories/contracts/log_watcher_subscription.go @@ -58,9 +58,9 @@ func (w *LogWatcherSubscription) Watch(ctx context.Context, contractAddr common. case log := <-in: event, err := mapper(log) if err != nil { - w.log.Errorf("failed to map event: %s", err) - // mapper error, retry won't help - return err + w.log.Debugf("failed to map event: %s", err) + // mapper error, retry won't help, continue to next event + continue } select { From 3ef7bd7d8a8ee14b57e9996974ee851f8160dc27 Mon Sep 17 00:00:00 2001 From: "bohdan.konorin" Date: Fri, 25 Oct 2024 16:40:26 +0200 Subject: [PATCH 026/260] Changed onboarding --- proxy-router/cmd/main.go | 3 +- .../internal/interfaces/validation.go | 11 + proxy-router/internal/system/controller.go | 12 +- proxy-router/internal/system/validation.go | 38 +++ .../main/src/client/handlers/single-core.js | 145 +++++------ .../main/src/client/subscriptions/no-core.js | 2 - .../src/client/subscriptions/single-core.js | 1 + ui-desktop/src/main/src/client/wallet.js | 20 -- ui-desktop/src/renderer/src/client/index.jsx | 3 +- .../renderer/src/components/common/Root.jsx | 10 +- .../src/components/dashboard/Dashboard.jsx | 69 ++++- .../components/dashboard/tx-list/TxList.jsx | 2 +- .../components/models/FileSelectionModal.tsx | 105 ++++++++ .../renderer/src/components/models/Models.tsx | 56 ++++- .../onboarding/CopyMnemonicStep.jsx | 6 +- .../src/components/onboarding/ImportFlow.jsx | 236 ++++++++++++++++++ .../src/components/onboarding/Message.jsx | 1 + .../src/components/onboarding/Onboarding.tsx | 6 + .../components/onboarding/PasswordStep.jsx | 24 +- .../onboarding/SetCustomEthStep.jsx | 91 +++++++ .../src/components/onboarding/TermsStep.jsx | 5 +- .../src/components/settings/Settings.tsx | 12 +- .../src/store/hocs/withDashboardState.jsx | 22 ++ .../src/store/hocs/withOnboardingState.jsx | 72 +++++- .../src/renderer/src/termsAndConditions.md | 2 +- 25 files changed, 815 insertions(+), 139 deletions(-) create mode 100644 proxy-router/internal/interfaces/validation.go create mode 100644 proxy-router/internal/system/validation.go create mode 100644 ui-desktop/src/renderer/src/components/models/FileSelectionModal.tsx create mode 100644 ui-desktop/src/renderer/src/components/onboarding/ImportFlow.jsx create mode 100644 ui-desktop/src/renderer/src/components/onboarding/SetCustomEthStep.jsx diff --git a/proxy-router/cmd/main.go b/proxy-router/cmd/main.go index bda5acdb..ea2c9814 100644 --- a/proxy-router/cmd/main.go +++ b/proxy-router/cmd/main.go @@ -274,10 +274,11 @@ func start() error { log.Warnf("chat context storage is disabled") chatStorage = proxyapi.NewNoOpChatStorage() } + validator := system.NewValidator() proxyController := proxyapi.NewProxyController(proxyRouterApi, aiEngine, chatStorage) walletController := walletapi.NewWalletController(wallet) - systemController := system.NewSystemController(&cfg, wallet, rpcClientStore, sysConfig, appStartTime, chainID, log) + systemController := system.NewSystemController(&cfg, wallet, rpcClientStore, sysConfig, appStartTime, chainID, log, validator) apiBus := apibus.NewApiBus(blockchainController, proxyController, walletController, systemController) httpHandler := httphandlers.CreateHTTPServer(log, apiBus) diff --git a/proxy-router/internal/interfaces/validation.go b/proxy-router/internal/interfaces/validation.go new file mode 100644 index 00000000..045fc340 --- /dev/null +++ b/proxy-router/internal/interfaces/validation.go @@ -0,0 +1,11 @@ +package interfaces + +import ( + "context" + "math/big" + "time" +) + +type Validation interface { + ValidateEthResourse(ctx context.Context, url string, chainId *big.Int, timeout time.Duration) error +} diff --git a/proxy-router/internal/system/controller.go b/proxy-router/internal/system/controller.go index 651cecfe..a9eabb40 100644 --- a/proxy-router/internal/system/controller.go +++ b/proxy-router/internal/system/controller.go @@ -23,9 +23,10 @@ type SystemController struct { appStartTime time.Time chainID *big.Int log lib.ILogger + validator i.Validation } -func NewSystemController(config *config.Config, wallet i.Wallet, ethRPC i.RPCEndpoints, sysConfig *SystemConfigurator, appStartTime time.Time, chainID *big.Int, log lib.ILogger) *SystemController { +func NewSystemController(config *config.Config, wallet i.Wallet, ethRPC i.RPCEndpoints, sysConfig *SystemConfigurator, appStartTime time.Time, chainID *big.Int, log lib.ILogger, validator i.Validation) *SystemController { c := &SystemController{ config: config, wallet: wallet, @@ -34,6 +35,7 @@ func NewSystemController(config *config.Config, wallet i.Wallet, ethRPC i.RPCEnd appStartTime: appStartTime, chainID: chainID, log: log, + validator: validator, } return c @@ -149,6 +151,14 @@ func (s *SystemController) SetEthNode(ctx *gin.Context) { return } + for _, url := range req.URLs { + validationErr := s.validator.ValidateEthResourse(ctx, url, big.NewInt(int64(s.config.Blockchain.ChainID)), time.Second*2) + if validationErr != nil { + ctx.JSON(http.StatusInternalServerError, gin.H{"error": fmt.Sprintf("Resource %s is not available", url)}) + return + } + } + err := s.ethRPC.SetURLs(req.URLs) if err != nil { ctx.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) diff --git a/proxy-router/internal/system/validation.go b/proxy-router/internal/system/validation.go new file mode 100644 index 00000000..98390c8c --- /dev/null +++ b/proxy-router/internal/system/validation.go @@ -0,0 +1,38 @@ +package system + +import ( + "context" + "fmt" + "math/big" + "time" + + "github.com/ethereum/go-ethereum/ethclient" +) + +type Validator struct { +} + +func NewValidator() *Validator { + return &Validator{} +} + +func (v *Validator) ValidateEthResourse(ctx context.Context, url string, chainId *big.Int, timeout time.Duration) error { + timeoutCtx, cancel := context.WithTimeout(ctx, timeout) + defer cancel() + + ethClient, err := ethclient.DialContext(timeoutCtx, url) + if err != nil { + return err + } + + urlChainId, chainIdError := ethClient.ChainID(timeoutCtx) + if chainIdError != nil { + return chainIdError + } + + if chainId.Cmp(urlChainId) != 0 { + return fmt.Errorf("invalid chain id %s, expected: %s", urlChainId, chainId) + } + + return nil +} diff --git a/ui-desktop/src/main/src/client/handlers/single-core.js b/ui-desktop/src/main/src/client/handlers/single-core.js index 54d31229..d3fcd394 100644 --- a/ui-desktop/src/main/src/client/handlers/single-core.js +++ b/ui-desktop/src/main/src/client/handlers/single-core.js @@ -10,21 +10,21 @@ import { setProxyRouterConfig, cleanupDb, getProxyRouterConfig } from '../settin export const withAuth = (fn) => - (data, { api }) => { - if (typeof data.walletId !== 'string') { - throw new WalletError('walletId is not defined') - } + (data, { api }) => { + if (typeof data.walletId !== 'string') { + throw new WalletError('walletId is not defined') + } - return auth - .isValidPassword(data.password) - .then(() => { - return wallet.getSeed(data.password) - }) - .then((seed, index) => { - return wallet.createPrivateKey(seed, index) - }) - .then((privateKey) => fn(privateKey, data)) - } + return auth + .isValidPassword(data.password) + .then(() => { + return wallet.getSeed(data.password) + }) + .then((seed, index) => { + return wallet.createPrivateKey(seed, index) + }) + .then((privateKey) => fn(privateKey, data)) + } export const createContract = async function (data, { api }) { data.walletId = wallet.getAddress().address @@ -134,20 +134,6 @@ export const setContractDeleteStatus = async function (data, { api }) { )(data, { api }) } -export function createWallet(data, core, isOpen = true) { - const seed = keys.mnemonicToSeedHex(data.mnemonic) - const entropy = keys.mnemonicToEntropy(data.mnemonic) - const walletAddress = wallet.createAddress(seed) - - return Promise.all([ - wallet.setSeed(seed, data.password), - wallet.setEntropy(entropy, data.password), - wallet.setAddress(walletAddress) - ]) - .then(() => core.emitter.emit('create-wallet', { address: walletAddress })) - .then(() => isOpen && openWallet(core, data.password)) -} - export async function openWallet({ emitter }, password) { const { address } = wallet.getAddress() @@ -155,34 +141,66 @@ export async function openWallet({ emitter }, password) { emitter.emit('open-proxy-router', { password }) } -export const onboardingCompleted = (data, core) => { - setProxyRouterConfig(data.proxyRouterConfig) - return auth - .setPassword(data.password) - .then(() => - createWallet( - { - mnemonic: data.mnemonic, - password: data.password - }, - core, - true - ) - ) - .then(() => { - return wallet.createPrivateKey(wallet.getSeed(data.password)) - }) - .then((privateKey) => { - const { proxyUrl } = data - return fetch(`${proxyUrl}/wallet/privateKey`, { +export const suggestAddresses = async (mnemonic) => { + const seed = keys.mnemonicToSeedHex(mnemonic); + let results = []; + for (let i = 0; i < 10; i++) { + const walletAddress = wallet.createAddress(seed, i); + results.push(walletAddress); + } + return results; +} + +export const onboardingCompleted = async (data, core) => { + try { + const { proxyUrl } = data; + + if (data.ethNode) { + const ethNodeResult = await fetch(`${proxyUrl}/config/ethNode`, { + method: 'POST', + body: JSON.stringify({ urls: [data.ethNode] }) + }) + + const dataResponse = await ethNodeResult.json(); + if (dataResponse.error) { + return (dataResponse.error) + } + } + + await auth.setPassword(data.password); + + if (data.mnemonic) { + const mnemonicRes = await fetch(`${proxyUrl}/wallet/mnemonic`, { method: 'POST', body: JSON.stringify({ - privateKey + mnemonic: data.mnemonic, + derivationPath: String(data.derivationPath || 0) }) }) - }) - .then(() => true) - .catch((err) => ({ error: new WalletError('Onboarding unable to be completed: ', err) })) + + console.log("Set Mnemonic To Wallet", await mnemonicRes.json()); + } + else { + const pKeyResp = await fetch(`${proxyUrl}/wallet/privateKey`, { + method: 'POST', + body: JSON.stringify({ "PrivateKey": String(data.privateKey) }) + }) + console.log("Set Private Key To Wallet", await pKeyResp.json()); + } + + const walletResp = await fetch(`${proxyUrl}/wallet`); + const walletAddress = (await walletResp.json()).address; + + console.log("Address Wallet Is", walletAddress); + + await wallet.setSeed(walletAddress, data.password), + await wallet.setAddress(walletAddress) + await core.emitter.emit('create-wallet', { address: walletAddress }) + openWallet(core, data.password) + } + catch (err) { + return ({ error: new WalletError('Onboarding unable to be completed: ', err) }); + } } function onLoginSubmit({ password }, core) { @@ -245,7 +263,7 @@ export const getMarketplaceFee = async function (data, { api }) { return api.contracts.getMarketplaceFee(data) } -export function refreshAllContracts({}, { api }) { +export function refreshAllContracts({ }, { api }) { const walletId = wallet.getAddress().address return api.contracts.refreshContracts(null, walletId) } @@ -291,7 +309,7 @@ export const getAddressAndPrivateKey = async (data, { api }) => { export const refreshProxyRouterConnection = async (data, { api }) => api['proxy-router'].refreshConnectionsStream(data) -export const getLocalIp = async ({}, { api }) => api['proxy-router'].getLocalIp() +export const getLocalIp = async ({ }, { api }) => api['proxy-router'].getLocalIp() export const logout = async (data) => { return cleanupDb() @@ -302,21 +320,6 @@ export const getPoolAddress = async (data) => { return config.buyerDefaultPool || config.defaultPool } -export const hasStoredSecretPhrase = async (data) => { - return wallet.hasEntropy() -} - -export const revealSecretPhrase = async (password) => { - const isValid = await auth.isValidPassword(password) - if (!isValid) { - return { error: new WalletError('Invalid password') } - } - - const entropy = wallet.getEntropy(password) - const mnemonic = keys.entropyToMnemonic(entropy) - return mnemonic -} - export function getPastTransactions({ address, page, pageSize }, { api }) { return api.explorer.getPastCoinTransactions(0, undefined, address, page, pageSize) } @@ -327,9 +330,9 @@ export default { createContract, cancelContract, onboardingCompleted, + suggestAddresses, onLoginSubmit, refreshAllTransactions, - createWallet, openWallet, sendLmr, sendEth, @@ -343,8 +346,6 @@ export default { getLocalIp, getPoolAddress, claimFaucet, - revealSecretPhrase, - hasStoredSecretPhrase, getPastTransactions, setContractDeleteStatus, editContract, diff --git a/ui-desktop/src/main/src/client/subscriptions/no-core.js b/ui-desktop/src/main/src/client/subscriptions/no-core.js index abc90deb..d739f268 100644 --- a/ui-desktop/src/main/src/client/subscriptions/no-core.js +++ b/ui-desktop/src/main/src/client/subscriptions/no-core.js @@ -10,8 +10,6 @@ const listeners = { 'clear-cache': handlers.clearCache, 'handle-client-error': handlers.handleClientSideError, 'get-pool-address': handlers.getPoolAddress, - 'reveal-secret-phrase': handlers.revealSecretPhrase, - 'has-stored-secret-phrase': handlers.hasStoredSecretPhrase, logout: handlers.logout, 'save-proxy-router-settings': handlers.saveProxyRouterSettings, 'get-proxy-router-settings': handlers.getProxyRouterSettings, diff --git a/ui-desktop/src/main/src/client/subscriptions/single-core.js b/ui-desktop/src/main/src/client/subscriptions/single-core.js index 53e03ea0..958df8fb 100644 --- a/ui-desktop/src/main/src/client/subscriptions/single-core.js +++ b/ui-desktop/src/main/src/client/subscriptions/single-core.js @@ -5,6 +5,7 @@ export const withCore = (core) => (fn) => (data) => fn(data, core) export const listeners = { 'onboarding-completed': handlers.onboardingCompleted, + 'suggest-addresses': handlers.suggestAddresses, 'login-submit': handlers.onLoginSubmit, // 'refresh-all-sockets': handlers.refreshAllSockets, 'refresh-all-contracts': handlers.refreshAllContracts, diff --git a/ui-desktop/src/main/src/client/wallet.js b/ui-desktop/src/main/src/client/wallet.js index 60a89ad5..bac673e1 100644 --- a/ui-desktop/src/main/src/client/wallet.js +++ b/ui-desktop/src/main/src/client/wallet.js @@ -1,6 +1,3 @@ -//@ts-check -'use strict' - const settings = require('electron-settings') const { hdkey } = require('ethereumjs-wallet') @@ -16,22 +13,11 @@ export function getSeed(password) { const encryptedSeed = settings.getSync(`user.wallet.encryptedSeed`) return aes256cbcIv.decrypt(password, encryptedSeed) } - -export const hasEntropy = () => !!settings.getSync(`user.wallet.encryptedEntropy`) - -export function getEntropy(password) { - const encryptedEntropy = settings.getSync(`user.wallet.encryptedEntropy`) - return aes256cbcIv.decrypt(password, encryptedEntropy) -} - export const setAddress = (address) => settings.setSync(`user.wallet.address`, { address }) export const setSeed = (seed, password) => settings.setSync(`user.wallet.encryptedSeed`, aes256cbcIv.encrypt(password, seed)) -export const setEntropy = (entropy, password) => - settings.setSync(`user.wallet.encryptedEntropy`, aes256cbcIv.encrypt(password, entropy)) - export const clearWallet = () => settings.setSync('user.wallet', {}) const getWalletFromSeed = (seed, index = 0) => @@ -41,8 +27,6 @@ const getAddress2 = (seed, index) => getWalletFromSeed(seed, index).getChecksumA const getPrivateKey = (seed, index) => getWalletFromSeed(seed, index).getPrivateKey() -const createPrivateKey = (seed, index) => getWalletFromSeed(seed, index).getPrivateKeyString() - const getAddressAndPrivateKey = (seed, index) => ({ address: getAddress2(seed, index), privateKey: getPrivateKey(seed, index).toString('hex') @@ -54,14 +38,10 @@ export default { getActiveWallet: getWallet, setActiveWallet: setAddress, createAddress: getAddress2, - createPrivateKey, getAddressAndPrivateKey, clearWallet, getWallet, getToken, getSeed, setSeed, - getEntropy, - setEntropy, - hasEntropy } diff --git a/ui-desktop/src/renderer/src/client/index.jsx b/ui-desktop/src/renderer/src/client/index.jsx index 587dfd00..f9e78e02 100644 --- a/ui-desktop/src/renderer/src/client/index.jsx +++ b/ui-desktop/src/renderer/src/client/index.jsx @@ -93,6 +93,7 @@ const createClient = function (createStore) { refreshAllTransactions: utils.forwardToMainProcess('refresh-all-transactions', 120000), refreshAllContracts: utils.forwardToMainProcess('refresh-all-contracts', 120000), onOnboardingCompleted: utils.forwardToMainProcess('onboarding-completed'), + suggestAddresses: utils.forwardToMainProcess('suggest-addresses'), getTokenGasLimit: utils.forwardToMainProcess('get-token-gas-limit'), validatePassword: utils.forwardToMainProcess('validate-password'), changePassword: utils.forwardToMainProcess('change-password'), @@ -114,9 +115,7 @@ const createClient = function (createStore) { logout: utils.forwardToMainProcess('logout'), getLocalIp: utils.forwardToMainProcess('get-local-ip'), getPoolAddress: utils.forwardToMainProcess('get-pool-address'), - revealSecretPhrase: utils.forwardToMainProcess('reveal-secret-phrase'), getPrivateKey: utils.forwardToMainProcess('get-private-key'), - hasStoredSecretPhrase: utils.forwardToMainProcess('has-stored-secret-phrase'), getProxyRouterSettings: utils.forwardToMainProcess('get-proxy-router-settings'), getDefaultCurrencySetting: utils.forwardToMainProcess('get-default-currency-settings'), setDefaultCurrencySetting: utils.forwardToMainProcess('set-default-currency-settings'), diff --git a/ui-desktop/src/renderer/src/components/common/Root.jsx b/ui-desktop/src/renderer/src/components/common/Root.jsx index e75efbc5..19dbd96b 100644 --- a/ui-desktop/src/renderer/src/components/common/Root.jsx +++ b/ui-desktop/src/renderer/src/components/common/Root.jsx @@ -64,11 +64,15 @@ class Root extends React.Component { }) } - onOnboardingCompleted = ({ password, mnemonic, proxyRouterConfig }) => { + onOnboardingCompleted = (data) => { return ( this.props.client - .onOnboardingCompleted({ password, mnemonic, proxyRouterConfig, proxyUrl: this.props.config.chain.localProxyRouterUrl }) - .then(() => { + .onOnboardingCompleted({ proxyUrl: this.props.config.chain.localProxyRouterUrl, ...data }) + .then((error) => { + if(error) { + this.context.toast('error', error); + return; + } this.setState({ onboardingComplete: true }) this.props.dispatch({ type: 'session-started' }) }) diff --git a/ui-desktop/src/renderer/src/components/dashboard/Dashboard.jsx b/ui-desktop/src/renderer/src/components/dashboard/Dashboard.jsx index 1e84d332..1d4888f8 100644 --- a/ui-desktop/src/renderer/src/components/dashboard/Dashboard.jsx +++ b/ui-desktop/src/renderer/src/components/dashboard/Dashboard.jsx @@ -9,13 +9,40 @@ import TransactionModal from './tx-modal' import TxList from './tx-list/TxList' import { View } from '../common/View' import { toUSD } from '../../store/utils/syncAmounts'; +import { + BtnAccent, -const Container = styled.div` - background-color: ${(p) => p.theme.colors.light}; - height: 100vh; - max-width: 100vw; - position: relative; - padding: 0 2.4rem; +} from './BalanceBlock.styles'; + +const CustomBtn = styled(BtnAccent)` + margin-left: 0; + padding: 1.5rem 1rem; +` +const WidjetsContainer = styled.div` + display: flex; + align-items: center; + justify-content: left; + gap: 1.6rem; +` + +const WidjetItem = styled.div` + margin: 1.6rem 0 1.6rem; + background-color: #fff; + padding: 1.6rem 3.2rem; + border-radius: 0.375rem; + color: white; + max-width: 720px; + background: rgba(255,255,255,0.04); + border-width: 1px; + border: 1px solid rgba(255,255,255,0.04); + color: white; +` + +const StakingWidjet = styled(WidjetItem)` + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; ` const Dashboard = ({ @@ -29,6 +56,7 @@ const Dashboard = ({ getBalances, ethCoinPrice, loadTransactions, + getStakedFunds, ...props }) => { const [activeModal, setActiveModal] = useState(null) @@ -46,6 +74,7 @@ const Dashboard = ({ }); const [transactions, setTransactions] = useState([]); const [pagging, setPagging] = useState({ page: 1, pageSize: 15, hasNextPage: true }) + const [staked, setStaked] = useState(0); const loadBalances = async () => { const data = await getBalances(); @@ -109,6 +138,9 @@ const Dashboard = ({ useEffect(() => { loadBalances(); getTransactions(); + getStakedFunds(address).then((data) => { + setStaked(data); + }) const interval = setInterval(() => { console.log("Update balances...") @@ -134,6 +166,31 @@ const Dashboard = ({ onTabSwitch={onTabSwitch} /> + + +
+ Staked Balance +
+
{staked} MOR
+
+ + window.openLink(`https://sepolia.arbiscan.io/address/${address}`)} + block + > + Transaction Explorer + + + + window.openLink("https://staking.mor.lumerin.io")} + block + > + Staking Dashboard + + +
+ - Transactions + Last Transactions e.stopPropagation() +} +const RVContainer = styled(RVList)` + .ReactVirtualized__Grid__innerScrollContainer { + overflow: visible !important; + }` + +const RowContainer = styled.div` + padding: 1rem; + border: 1px solid; + background-color: rgba(0,0,0,0.4); + margin-bottom: 1rem; + ` + +const FileSelectionModal = ({ isActive, handleClose }) => { + + if (!isActive) { + return <>; + } + + const [files, setFiles] = useState([]); + + const openSelectionModal = () => { + return new Promise(resolve => { + let input = document.createElement('input'); + input.type = 'file'; + input.multiple = true; + + input.onchange = () => { + const files = Array.from(input.files as any); + setFiles(files) + ; + }; + + input.click(); + }); + } + + + return ( + { + handleClose(); + }} + bodyProps={bodyProps} + > + + Select Files + + + + + Set desired model name + + + + + + Select files required to run model (including .gguf) + { + setFiles(Object.values((e.currentTarget as any).files)) + })} /> + + + + { + !files.length ? null : + ( + files.map(f => { + return +
Name: {f.name}
+
Path: {f.path}
+
Size: {(f.size / 1024).toFixed(0)}
+
+ }) + ) + } + + + Pin Model Files + + +
+ ); +} + +export default FileSelectionModal; \ No newline at end of file diff --git a/ui-desktop/src/renderer/src/components/models/Models.tsx b/ui-desktop/src/renderer/src/components/models/Models.tsx index c1b9d85e..4ee05a83 100644 --- a/ui-desktop/src/renderer/src/components/models/Models.tsx +++ b/ui-desktop/src/renderer/src/components/models/Models.tsx @@ -1,11 +1,55 @@ +import { useState } from 'react'; import { LayoutHeader } from '../common/LayoutHeader' import { View } from '../common/View' +import { BtnAccent } from '../dashboard/BalanceBlock.styles'; import ModelsTable from './ModelsTable'; +import Tab from 'react-bootstrap/Tab'; +import Tabs from 'react-bootstrap/Tabs'; +import styled from 'styled-components' +import FileSelectionModal from './FileSelectionModal'; + + +const Container = styled.div` + overflow-y: auto; + + .nav-link { + color: ${p => p.theme.colors.morMain} + } + + .nav-link.active { + color: ${p => p.theme.colors.morMain} + border-color: ${p => p.theme.colors.morMain} + background-color: rgba(0,0,0,0.4); + } +` export const Models = () => { - return ( - - - - ) -} \ No newline at end of file + + const [openChangeModal, setOpenChangeModal] = useState(false); + + return ( + + + setOpenChangeModal(true)}>Pin Model + + + + + + + + + + + + + setOpenChangeModal(false)} /> + ) + +} diff --git a/ui-desktop/src/renderer/src/components/onboarding/CopyMnemonicStep.jsx b/ui-desktop/src/renderer/src/components/onboarding/CopyMnemonicStep.jsx index 230b7087..923d018e 100644 --- a/ui-desktop/src/renderer/src/components/onboarding/CopyMnemonicStep.jsx +++ b/ui-desktop/src/renderer/src/components/onboarding/CopyMnemonicStep.jsx @@ -49,15 +49,15 @@ export default class CopyMnemonicStep extends React.Component { I’ve copied it - + {/* - Or recover a wallet from a saved mnemonic + DELETE - + */} ); diff --git a/ui-desktop/src/renderer/src/components/onboarding/ImportFlow.jsx b/ui-desktop/src/renderer/src/components/onboarding/ImportFlow.jsx new file mode 100644 index 00000000..19d7abba --- /dev/null +++ b/ui-desktop/src/renderer/src/components/onboarding/ImportFlow.jsx @@ -0,0 +1,236 @@ +import TermsAndConditions from '../common/TermsAndConditions'; +import PropTypes from 'prop-types'; +import styled from 'styled-components'; +import React, { useState } from 'react'; +import { TextInput, AltLayout, AltLayoutNarrow, Btn, Sp } from '../common'; +import { abbreviateAddress } from '../../utils'; + +import Message from './Message'; + +const DisclaimerWarning = styled.div` + text-align: left; + color: ${p => p.theme.colors.dark}; + font-size: 16px; + margin-top: 16px; + text-align: justify; +`; + +const DisclaimerMessage = styled.div` + width: 100%; + height: 130px; + border-radius: 2px; + background-color: rgba(0, 0, 0, 0.5); + color: ${p => p.theme.colors.dark}; + overflow: auto; + font-size: 12px; + padding: 10px 16px 0 16px; + margin: 16px 0; +`; + +const P = styled.p` + color: ${p => p.theme.colors.dark}; +`; + +const Subtext = styled.span` + color: ${p => p.theme.colors.dark}; +`; + +const Mnemonic = styled.div` + font-size: 1.8rem; + font-weight: 600; + line-height: 2; + text-align: center; + color: ${p => p.theme.colors.morMain}; + word-spacing: 1.6rem; +`; + +const Select = styled.select` + outline: 0; + border: 1px solid grey; + padding: 1.2rem 2.4rem; + letter-spacing: 1.4px; + line-height: 1.2rem; + font-size: 1.2rem; + background: transparent; + border-radius: 5px; + font-weight: bold; + font: inherit; + color: white; +`; + +export const ImportFlow = props => { + const onCheckboxToggle = e => { + props.onInputChange({ id: e.target.id, value: e.target.checked }); + }; + + const [mode, setMode] = useState("mnemonic") + const [isSelectingAddress, setIsSelectingAddress] = useState(false); + const [addresses, setAddresses] = useState([]); + const [derivationIndex, setDerivationIndex] = useState(0); + + const handleSetMnemonic = async (e) => { + setIsSelectingAddress(true); + e.stopPropagation(); + const addresses = await props.onSuggestAddress(); + setAddresses(addresses); + } + + return ( + + + + { + isSelectingAddress ? + ( + <> + + + {props.userMnemonic} + + + + + + Select one of 10 accounts derivied from mnemonic + + + + + + + ) + : + ( + + <> + + Import your wallet using a private key or mnemonic + + + + + + { + mode == "mnemonic" ? + ( + <> + + + Enter a valid 12 word mnemonic to import a previously created + wallet and select address + + + + { + e.preventDefault(); + const value = e.clipboardData.getData('Text').trim(); + console.log(value); + props.onInputChange({ value, id: "userMnemonic" }); + }} + label="Import Mnemonic" + error={props.errors.userMnemonic} + value={props.userMnemonic || ''} + rows={2} + id={'userMnemonic'} + /> + + + ) + : + ( + <> + + + Enter private key to import wallet + + + + { + e.preventDefault(); + const value = e.clipboardData.getData('Text').trim(); + console.log(value); + props.onInputChange({ value, id: "userPrivateKey" }); + }} + label="Import Private Key" + error={props.errors.userPrivateKey} + value={props.userPrivateKey || ''} + rows={2} + id={'userPrivateKey'} + /> + + + ) + } + + ) + + } + + {/* Select address - generate addresses - use */} + { + mode == "mnemonic" ? ( + + !isSelectingAddress ? handleSetMnemonic(e) : props.onMnemonicSet(e, derivationIndex)} + block + > + { !isSelectingAddress ? "Select Address" : "Confirm"} + + + ) + : ( + + props.onPrivateKeyAccepted(e)} + block + > + Confirm + + + ) + } + + + + ); +}; + +// RecoverFromPrivateKey.propTypes = { +// onTermsLinkClick: PropTypes.func.isRequired, +// onTermsAccepted: PropTypes.func.isRequired, +// licenseCheckbox: PropTypes.bool.isRequired, +// termsCheckbox: PropTypes.bool.isRequired, +// onInputChange: PropTypes.func.isRequired +// }; \ No newline at end of file diff --git a/ui-desktop/src/renderer/src/components/onboarding/Message.jsx b/ui-desktop/src/renderer/src/components/onboarding/Message.jsx index dc87f206..82d46a78 100644 --- a/ui-desktop/src/renderer/src/components/onboarding/Message.jsx +++ b/ui-desktop/src/renderer/src/components/onboarding/Message.jsx @@ -5,6 +5,7 @@ const Message = styled.div` font-weight: 500; line-height: 1.5; color: ${p => p.theme.colors.dark}; + text-align: justify; & span { font-size: 13px; diff --git a/ui-desktop/src/renderer/src/components/onboarding/Onboarding.tsx b/ui-desktop/src/renderer/src/components/onboarding/Onboarding.tsx index 1814a418..12e6adce 100644 --- a/ui-desktop/src/renderer/src/components/onboarding/Onboarding.tsx +++ b/ui-desktop/src/renderer/src/components/onboarding/Onboarding.tsx @@ -6,6 +6,8 @@ import CopyMnemonicStep from './CopyMnemonicStep' import UserMnemonicStep from './UserMnemonicStep' import PasswordStep from './PasswordStep' import TermsStep from './TermsStep' +import { ImportFlow } from './ImportFlow' +import { SetCustomEthStep } from './SetCustomEthStep' const Onboarding = (props) => { const page = () => { @@ -20,6 +22,10 @@ const Onboarding = (props) => { return case 'recover-from-mnemonic': return + case 'import-flow': + return + case 'set-custom-eth': + return default: return null } diff --git a/ui-desktop/src/renderer/src/components/onboarding/PasswordStep.jsx b/ui-desktop/src/renderer/src/components/onboarding/PasswordStep.jsx index b5dc8556..c1418944 100644 --- a/ui-desktop/src/renderer/src/components/onboarding/PasswordStep.jsx +++ b/ui-desktop/src/renderer/src/components/onboarding/PasswordStep.jsx @@ -17,6 +17,7 @@ import Message from './Message'; const PasswordMessage = styled(Message)` text-align: left; color: ${p => p.theme.colors.dark}; + text-align: justify; `; const Green = styled.div` @@ -28,19 +29,25 @@ const PasswordInputWrap = styled.div` position: relative; `; +const SecondaryBtn = styled(Btn)` + border: 1px solid #20dc8e; + color: #20dc8e; + background: transparent; +` + const PasswordStep = props => { const [typed, setTyped] = useState(false); const [suggestion, setSuggestion] = useState(''); - const onPasswordSubmit = e => { + const onPasswordSubmit = (e, useImportFlow) => { e.preventDefault(); - props.onPasswordSubmit({ clearOnError: false }); + props.onPasswordSubmit({ clearOnError: false, useImportFlow }); }; let tooltipTimeout; return ( - + -
+ Enter a strong password until the meter turns green. @@ -90,10 +97,15 @@ const PasswordStep = props => { /> - - Continue + onPasswordSubmit(e, false)}> + Create a new wallet + + onPasswordSubmit(e, true)}> + Import an existing wallet + +
diff --git a/ui-desktop/src/renderer/src/components/onboarding/SetCustomEthStep.jsx b/ui-desktop/src/renderer/src/components/onboarding/SetCustomEthStep.jsx new file mode 100644 index 00000000..77957072 --- /dev/null +++ b/ui-desktop/src/renderer/src/components/onboarding/SetCustomEthStep.jsx @@ -0,0 +1,91 @@ +import TermsAndConditions from '../../components/common/TermsAndConditions'; +import PropTypes from 'prop-types'; +import styled from 'styled-components'; +import React from 'react'; +import SecondaryBtn from './SecondaryBtn'; +import { AltLayout, AltLayoutNarrow, Btn, Sp, TextInput } from '../common'; +import Message from './Message'; + +const DisclaimerWarning = styled.div` + text-align: left; + color: ${p => p.theme.colors.dark}; + font-size: 16px; + margin-top: 16px; + text-align: justify; +`; + +const DisclaimerMessage = styled.div` + width: 100%; + height: 130px; + border-radius: 2px; + background-color: rgba(0, 0, 0, 0.1); + color: ${p => p.theme.colors.dark}; + overflow: auto; + font-size: 12px; + padding: 10px 16px 0 16px; + margin: 16px 0; +`; + +const P = styled.p` + color: ${p => p.theme.colors.dark}; +`; + +const Subtext = styled.span` + color: ${p => p.theme.colors.dark}; +`; + +export const SetCustomEthStep = props => { + + return ( + + + + Set Custom ETH node url that will be used for blockchain interactions instead of default. This can be set later in Settings + + + + { + e.preventDefault(); + const value = e.clipboardData.getData('Text').trim(); + console.log(value); + props.onInputChange({ value, id: 'customEthNode' }); + }} + label="Custom ETH Node Url" + error={props.errors.customEthNode} + value={props.customEthNode || ''} + id={'customEthNode'} + /> + + + + + Accept + + + + { + props.onInputChange({ value: "", id: 'customEthNode' }); + props.onEthNodeSet(e) + }} + block + > + Skip + + + + + ); +}; diff --git a/ui-desktop/src/renderer/src/components/onboarding/TermsStep.jsx b/ui-desktop/src/renderer/src/components/onboarding/TermsStep.jsx index 1303e063..863d97dc 100644 --- a/ui-desktop/src/renderer/src/components/onboarding/TermsStep.jsx +++ b/ui-desktop/src/renderer/src/components/onboarding/TermsStep.jsx @@ -11,13 +11,14 @@ const DisclaimerWarning = styled.div` color: ${p => p.theme.colors.dark}; font-size: 16px; margin-top: 16px; + text-align: justify; `; const DisclaimerMessage = styled.div` width: 100%; height: 130px; border-radius: 2px; - background-color: rgba(0, 0, 0, 0.1); + background-color: rgba(0, 0, 0, 0.5); color: ${p => p.theme.colors.dark}; overflow: auto; font-size: 12px; @@ -31,6 +32,7 @@ const P = styled.p` const Subtext = styled.span` color: ${p => p.theme.colors.dark}; + margin-left: 5px; `; const TermsStep = props => { @@ -72,7 +74,6 @@ const TermsStep = props => { software license - . diff --git a/ui-desktop/src/renderer/src/components/settings/Settings.tsx b/ui-desktop/src/renderer/src/components/settings/Settings.tsx index 15e27c7e..35b12291 100644 --- a/ui-desktop/src/renderer/src/components/settings/Settings.tsx +++ b/ui-desktop/src/renderer/src/components/settings/Settings.tsx @@ -2,7 +2,7 @@ import { LayoutHeader } from '../common/LayoutHeader' import { View } from '../common/View' import { Sp } from '../common'; import withSettingsState from '../../store/hocs/withSettingsState'; -import { StyledBtn, Subtitle, StyledParagraph } from '../tools/common'; +import { StyledBtn, Subtitle, StyledParagraph, Input } from '../tools/common'; const Settings = (props) => { return ( @@ -17,6 +17,16 @@ const Settings = (props) => { Reset + + Set Custom ETH Node + + + + + props.logout()}> + Set + + ) } diff --git a/ui-desktop/src/renderer/src/store/hocs/withDashboardState.jsx b/ui-desktop/src/renderer/src/store/hocs/withDashboardState.jsx index 3ef96655..ef17f20e 100644 --- a/ui-desktop/src/renderer/src/store/hocs/withDashboardState.jsx +++ b/ui-desktop/src/renderer/src/store/hocs/withDashboardState.jsx @@ -60,6 +60,26 @@ const withDashboardState = WrappedComponent => { return transactions; } + getStakedFunds = async (user) => { + const isClosed = (item) => item.ClosedAt || (new Date().getTime() > item.EndsAt * 1000); + + if(!user) { + return; + } + try { + const path = `${this.props.config.chain.localProxyRouterUrl}/blockchain/sessions/user?user=${user}`; + const response = await fetch(path); + const data = await response.json(); + const openSessions = data.sessions.filter(s => !isClosed(s)); + const sum = openSessions.reduce((curr, next) => curr + next.Stake, 0); + return (sum / 10 ** 18).toFixed(2); + } + catch (e) { + console.log("Error", e) + return 0; + } + } + getBalances = async () => { const balances = await this.props.client.getBalances(); const rate = await this.props.client.getRates(); @@ -84,6 +104,7 @@ const withDashboardState = WrappedComponent => { getBalances={this.getBalances} sendDisabled={sendLmrFeatureStatus !== 'ok'} loadTransactions={this.loadTransactions} + getStakedFunds={this.getStakedFunds} {...this.props} {...this.state} /> @@ -92,6 +113,7 @@ const withDashboardState = WrappedComponent => { } const mapStateToProps = state => ({ + config: state.config, syncStatus: selectors.getTxSyncStatus(state), sendLmrFeatureStatus: selectors.sendLmrFeatureStatus(state), hasTransactions: selectors.hasTransactions(state), diff --git a/ui-desktop/src/renderer/src/store/hocs/withOnboardingState.jsx b/ui-desktop/src/renderer/src/store/hocs/withOnboardingState.jsx index ef7a9881..9d152a03 100644 --- a/ui-desktop/src/renderer/src/store/hocs/withOnboardingState.jsx +++ b/ui-desktop/src/renderer/src/store/hocs/withOnboardingState.jsx @@ -7,6 +7,7 @@ import * as utils from '../utils'; import { toRfc2396, generatePoolUrl } from '../../utils'; const EMAIL_REGEX = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; +const UrlRegex = /\b(?:http|ws)s?:\/\/\S*[^\s."]/g; const withOnboardingState = WrappedComponent => { class Container extends React.Component { @@ -36,11 +37,13 @@ const withOnboardingState = WrappedComponent => { passwordAgain: null, mnemonicAgain: null, userMnemonic: null, + userPrivateKey: null, + derivationPath: null, + customEthNode: null, password: null, mnemonic: null, - proxyDefaultPool: null, - lightningAddress: null, - isTitanLightning: true, + useImportFlow: false, + useEthStep: false, errors: {} }; @@ -58,7 +61,7 @@ const withOnboardingState = WrappedComponent => { } }; - onPasswordSubmit = ({ clearOnError = false }) => { + onPasswordSubmit = ({ clearOnError = false, useImportFlow = false }) => { const { password, passwordAgain } = this.state; const errors = validators.validatePasswordCreation( @@ -82,7 +85,7 @@ const withOnboardingState = WrappedComponent => { }); return; } - this.setState({ isPasswordDefined: true }); + this.setState({ isPasswordDefined: true, useImportFlow }); }; onUseUserMnemonicToggled = () => { @@ -130,6 +133,13 @@ const withOnboardingState = WrappedComponent => { this.onFinishOnboarding(); }; + onPrivateKeyAccepted = e => { + if (e && e.preventDefault) e.preventDefault(); + + this.setState({ isMnemonicVerified: true, useEthStep: true }); + } + + validateDefaultPoolAddress() { const errors = validators.validatePoolAddress( this.state.proxyDefaultPool @@ -142,16 +152,26 @@ const withOnboardingState = WrappedComponent => { return true; } - // HERE - onFinishOnboarding = e => { + onFinishOnboarding = async (e, path) => { if (e && e.preventDefault) e.preventDefault(); - return this.props.onOnboardingCompleted({ + const payload = { password: this.state.password, - mnemonic: this.state.useUserMnemonic - ? utils.sanitizeMnemonic(this.state.userMnemonic) - : this.state.mnemonic - }); + ethNode: this.state.customEthNode || '', + derivationPath: path || 0, + privateKey: '' + }; + + if(this.state.userPrivateKey) { + payload.privateKey = this.state.userPrivateKey; + } + else { + payload.mnemonic = this.state.useUserMnemonic + ? utils.sanitizeMnemonic(this.state.userMnemonic) + : this.state.mnemonic; + } + + await this.props.onOnboardingCompleted(payload); }; onRunWithoutProxyRouter = e => { @@ -166,6 +186,28 @@ const withOnboardingState = WrappedComponent => { }); }; + onSuggestAddress = async () => { + const addrs = await this.props.client.suggestAddresses(this.state.userMnemonic); + return addrs; + } + + onMnemonicSet = async (e, path) => { + this.setState({...this.state, derivationPath: path}) + if (e && e.preventDefault) e.preventDefault(); + this.setState({...this.state, useEthStep: true }) + } + + onEthNodeSet = async (e) => { + if(this.state.customEthNode && !UrlRegex.test(this.state.customEthNode)) { + const errors = this.state.errors; + errors.customEthNode = "Url format is not valid" + this.setState({ errors }); + } + else { + await this.onFinishOnboarding(e); + } + } + onInputChange = ({ id, value }) => { this.setState(state => ({ ...state, @@ -180,9 +222,11 @@ const withOnboardingState = WrappedComponent => { getCurrentStep() { if (!this.state.areTermsAccepted) return 'ask-for-terms'; if (!this.state.isPasswordDefined) return 'define-password'; + if (this.state.useEthStep) return 'set-custom-eth'; if (this.state.isMnemonicVerified) return 'config-proxy-router'; if (this.state.useUserMnemonic) return 'recover-from-mnemonic'; if (this.state.isMnemonicCopied) return 'verify-mnemonic'; + if (this.state.useImportFlow) return 'import-flow'; return 'copy-mnemonic'; } @@ -210,7 +254,11 @@ const withOnboardingState = WrappedComponent => { shouldSubmit={shouldSubmit} currentStep={this.getCurrentStep()} getTooltip={getTooltip} + onSuggestAddress={this.onSuggestAddress} onRunWithoutProxyRouter={this.onRunWithoutProxyRouter} + onPrivateKeyAccepted={this.onPrivateKeyAccepted} + onMnemonicSet={this.onMnemonicSet} + onEthNodeSet={this.onEthNodeSet} {...this.state} /> ); diff --git a/ui-desktop/src/renderer/src/termsAndConditions.md b/ui-desktop/src/renderer/src/termsAndConditions.md index b266e3a6..010c4794 100644 --- a/ui-desktop/src/renderer/src/termsAndConditions.md +++ b/ui-desktop/src/renderer/src/termsAndConditions.md @@ -1,4 +1,4 @@ -# Lumerin Terms of Use +# Morpheus Terms of Use Last Updated Date: March 16, 2023 From 1aca66cc0236b7006f6f555df914fd71b8516857 Mon Sep 17 00:00:00 2001 From: "bohdan.konorin" Date: Fri, 25 Oct 2024 23:54:06 +0200 Subject: [PATCH 027/260] applied review --- proxy-router/cmd/main.go | 5 +-- .../internal/interfaces/validation.go | 11 ------ proxy-router/internal/system/controller.go | 36 +++++++++---------- proxy-router/internal/system/interface.go | 9 ++++- proxy-router/internal/system/validation.go | 13 ++++--- 5 files changed, 37 insertions(+), 37 deletions(-) delete mode 100644 proxy-router/internal/interfaces/validation.go diff --git a/proxy-router/cmd/main.go b/proxy-router/cmd/main.go index ea2c9814..8f73ec70 100644 --- a/proxy-router/cmd/main.go +++ b/proxy-router/cmd/main.go @@ -3,6 +3,7 @@ package main import ( "context" "fmt" + "math/big" "net/url" "os" "os/signal" @@ -274,11 +275,11 @@ func start() error { log.Warnf("chat context storage is disabled") chatStorage = proxyapi.NewNoOpChatStorage() } - validator := system.NewValidator() + ethConnectionValidator := system.NewValidator(*big.NewInt(int64(cfg.Blockchain.ChainID))) proxyController := proxyapi.NewProxyController(proxyRouterApi, aiEngine, chatStorage) walletController := walletapi.NewWalletController(wallet) - systemController := system.NewSystemController(&cfg, wallet, rpcClientStore, sysConfig, appStartTime, chainID, log, validator) + systemController := system.NewSystemController(&cfg, wallet, rpcClientStore, sysConfig, appStartTime, chainID, log, ethConnectionValidator) apiBus := apibus.NewApiBus(blockchainController, proxyController, walletController, systemController) httpHandler := httphandlers.CreateHTTPServer(log, apiBus) diff --git a/proxy-router/internal/interfaces/validation.go b/proxy-router/internal/interfaces/validation.go deleted file mode 100644 index 045fc340..00000000 --- a/proxy-router/internal/interfaces/validation.go +++ /dev/null @@ -1,11 +0,0 @@ -package interfaces - -import ( - "context" - "math/big" - "time" -) - -type Validation interface { - ValidateEthResourse(ctx context.Context, url string, chainId *big.Int, timeout time.Duration) error -} diff --git a/proxy-router/internal/system/controller.go b/proxy-router/internal/system/controller.go index a9eabb40..6d516837 100644 --- a/proxy-router/internal/system/controller.go +++ b/proxy-router/internal/system/controller.go @@ -16,26 +16,26 @@ import ( ) type SystemController struct { - config *config.Config - wallet i.Wallet - ethRPC i.RPCEndpoints - sysConfig *SystemConfigurator - appStartTime time.Time - chainID *big.Int - log lib.ILogger - validator i.Validation + config *config.Config + wallet i.Wallet + ethRPC i.RPCEndpoints + sysConfig *SystemConfigurator + appStartTime time.Time + chainID *big.Int + log lib.ILogger + ethConnectionValidator EthConnectionValidator } -func NewSystemController(config *config.Config, wallet i.Wallet, ethRPC i.RPCEndpoints, sysConfig *SystemConfigurator, appStartTime time.Time, chainID *big.Int, log lib.ILogger, validator i.Validation) *SystemController { +func NewSystemController(config *config.Config, wallet i.Wallet, ethRPC i.RPCEndpoints, sysConfig *SystemConfigurator, appStartTime time.Time, chainID *big.Int, log lib.ILogger, ethConnectionValidator EthConnectionValidator) *SystemController { c := &SystemController{ - config: config, - wallet: wallet, - ethRPC: ethRPC, - sysConfig: sysConfig, - appStartTime: appStartTime, - chainID: chainID, - log: log, - validator: validator, + config: config, + wallet: wallet, + ethRPC: ethRPC, + sysConfig: sysConfig, + appStartTime: appStartTime, + chainID: chainID, + log: log, + ethConnectionValidator: ethConnectionValidator, } return c @@ -152,7 +152,7 @@ func (s *SystemController) SetEthNode(ctx *gin.Context) { } for _, url := range req.URLs { - validationErr := s.validator.ValidateEthResourse(ctx, url, big.NewInt(int64(s.config.Blockchain.ChainID)), time.Second*2) + validationErr := s.ethConnectionValidator.ValidateEthResourse(ctx, url, time.Second*2) if validationErr != nil { ctx.JSON(http.StatusInternalServerError, gin.H{"error": fmt.Sprintf("Resource %s is not available", url)}) return diff --git a/proxy-router/internal/system/interface.go b/proxy-router/internal/system/interface.go index 5c7067a3..3ae97f48 100644 --- a/proxy-router/internal/system/interface.go +++ b/proxy-router/internal/system/interface.go @@ -1,9 +1,16 @@ package system -import "context" +import ( + "context" + "time" +) type osConfigurator interface { GetConfig() (*Config, error) ApplyConfig(cfg *Config) error GetFileDescriptors(ctx context.Context, pid int) ([]FD, error) } + +type EthConnectionValidator interface { + ValidateEthResourse(ctx context.Context, url string, timeout time.Duration) error +} diff --git a/proxy-router/internal/system/validation.go b/proxy-router/internal/system/validation.go index 98390c8c..1b9742a4 100644 --- a/proxy-router/internal/system/validation.go +++ b/proxy-router/internal/system/validation.go @@ -10,13 +10,16 @@ import ( ) type Validator struct { + chainId big.Int } -func NewValidator() *Validator { - return &Validator{} +func NewValidator(chainId big.Int) *Validator { + return &Validator{ + chainId: chainId, + } } -func (v *Validator) ValidateEthResourse(ctx context.Context, url string, chainId *big.Int, timeout time.Duration) error { +func (v *Validator) ValidateEthResourse(ctx context.Context, url string, timeout time.Duration) error { timeoutCtx, cancel := context.WithTimeout(ctx, timeout) defer cancel() @@ -30,8 +33,8 @@ func (v *Validator) ValidateEthResourse(ctx context.Context, url string, chainId return chainIdError } - if chainId.Cmp(urlChainId) != 0 { - return fmt.Errorf("invalid chain id %s, expected: %s", urlChainId, chainId) + if v.chainId.Cmp(urlChainId) != 0 { + return fmt.Errorf("invalid chain id %s, expected: %s", urlChainId, &v.chainId) } return nil From f9f984ad5a323d04322ae9d5cf04bc165eb2e7e9 Mon Sep 17 00:00:00 2001 From: "bohdan.konorin" Date: Fri, 25 Oct 2024 23:59:36 +0200 Subject: [PATCH 028/260] Pushed renaming --- proxy-router/cmd/main.go | 2 +- proxy-router/internal/system/controller.go | 4 ++-- proxy-router/internal/system/interface.go | 2 +- proxy-router/internal/system/validation.go | 8 ++++---- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/proxy-router/cmd/main.go b/proxy-router/cmd/main.go index 8f73ec70..86a77fa4 100644 --- a/proxy-router/cmd/main.go +++ b/proxy-router/cmd/main.go @@ -276,7 +276,7 @@ func start() error { chatStorage = proxyapi.NewNoOpChatStorage() } - ethConnectionValidator := system.NewValidator(*big.NewInt(int64(cfg.Blockchain.ChainID))) + ethConnectionValidator := system.NewEthConnectionValidator(*big.NewInt(int64(cfg.Blockchain.ChainID))) proxyController := proxyapi.NewProxyController(proxyRouterApi, aiEngine, chatStorage) walletController := walletapi.NewWalletController(wallet) systemController := system.NewSystemController(&cfg, wallet, rpcClientStore, sysConfig, appStartTime, chainID, log, ethConnectionValidator) diff --git a/proxy-router/internal/system/controller.go b/proxy-router/internal/system/controller.go index 6d516837..833bda71 100644 --- a/proxy-router/internal/system/controller.go +++ b/proxy-router/internal/system/controller.go @@ -23,10 +23,10 @@ type SystemController struct { appStartTime time.Time chainID *big.Int log lib.ILogger - ethConnectionValidator EthConnectionValidator + ethConnectionValidator IEthConnectionValidator } -func NewSystemController(config *config.Config, wallet i.Wallet, ethRPC i.RPCEndpoints, sysConfig *SystemConfigurator, appStartTime time.Time, chainID *big.Int, log lib.ILogger, ethConnectionValidator EthConnectionValidator) *SystemController { +func NewSystemController(config *config.Config, wallet i.Wallet, ethRPC i.RPCEndpoints, sysConfig *SystemConfigurator, appStartTime time.Time, chainID *big.Int, log lib.ILogger, ethConnectionValidator IEthConnectionValidator) *SystemController { c := &SystemController{ config: config, wallet: wallet, diff --git a/proxy-router/internal/system/interface.go b/proxy-router/internal/system/interface.go index 3ae97f48..78486778 100644 --- a/proxy-router/internal/system/interface.go +++ b/proxy-router/internal/system/interface.go @@ -11,6 +11,6 @@ type osConfigurator interface { GetFileDescriptors(ctx context.Context, pid int) ([]FD, error) } -type EthConnectionValidator interface { +type IEthConnectionValidator interface { ValidateEthResourse(ctx context.Context, url string, timeout time.Duration) error } diff --git a/proxy-router/internal/system/validation.go b/proxy-router/internal/system/validation.go index 1b9742a4..91874957 100644 --- a/proxy-router/internal/system/validation.go +++ b/proxy-router/internal/system/validation.go @@ -9,17 +9,17 @@ import ( "github.com/ethereum/go-ethereum/ethclient" ) -type Validator struct { +type EthConnectionValidator struct { chainId big.Int } -func NewValidator(chainId big.Int) *Validator { - return &Validator{ +func NewEthConnectionValidator(chainId big.Int) *EthConnectionValidator { + return &EthConnectionValidator{ chainId: chainId, } } -func (v *Validator) ValidateEthResourse(ctx context.Context, url string, timeout time.Duration) error { +func (v *EthConnectionValidator) ValidateEthResourse(ctx context.Context, url string, timeout time.Duration) error { timeoutCtx, cancel := context.WithTimeout(ctx, timeout) defer cancel() From 93348066244ca54bf92d4fe95d20568f8f58da94 Mon Sep 17 00:00:00 2001 From: "bohdan.konorin" Date: Sat, 26 Oct 2024 00:47:02 +0200 Subject: [PATCH 029/260] Added custom eth to settings --- .../components/common/TextInput.styles.jsx | 10 ++--- .../onboarding/SetCustomEthStep.jsx | 1 + .../src/components/settings/Settings.tsx | 22 +++++++++-- .../renderer/src/components/tools/common.jsx | 6 +-- .../src/store/hocs/withSettingsState.jsx | 39 +++++++++++++++++++ 5 files changed, 66 insertions(+), 12 deletions(-) diff --git a/ui-desktop/src/renderer/src/components/common/TextInput.styles.jsx b/ui-desktop/src/renderer/src/components/common/TextInput.styles.jsx index 6ecdefbc..1bd0a678 100644 --- a/ui-desktop/src/renderer/src/components/common/TextInput.styles.jsx +++ b/ui-desktop/src/renderer/src/components/common/TextInput.styles.jsx @@ -9,15 +9,15 @@ export const Label = styled.label` `; export const Input = styled.input` - border: none; + border: 1px solid gray; display: block; border-radius: 2px; padding: 0.8rem 1.6rem; - background-color: ${p => p.theme.colors.lightBlue}; + background-color: transparent; margin-top: 0.8rem; width: 100%; line-height: 2.5rem; - color: ${p => (p.disabled ? p.theme.colors.copy : p.theme.colors.primary)}; + color: ${p => (p.disabled ? p.theme.colors.copy : "white")}; font-size: 1.3rem; font-weight: 600; letter-spacing: 0.5px; @@ -28,11 +28,11 @@ export const Input = styled.input` &:focus { outline: none; - box-shadow: 0 2px 0 0px ${p => p.theme.colors.primary}; + box-shadow: 0 2px 0 0px ${p => p.theme.colors.morMain}; box-shadow: ${p => p.noFocus && p.value.length > 0 ? 'none' - : `0 2px 0 0px ${p.theme.colors.primary}`}; + : `0 2px 0 0px ${p.theme.colors.morMains}`}; } `; diff --git a/ui-desktop/src/renderer/src/components/onboarding/SetCustomEthStep.jsx b/ui-desktop/src/renderer/src/components/onboarding/SetCustomEthStep.jsx index 77957072..b0b65dfc 100644 --- a/ui-desktop/src/renderer/src/components/onboarding/SetCustomEthStep.jsx +++ b/ui-desktop/src/renderer/src/components/onboarding/SetCustomEthStep.jsx @@ -77,6 +77,7 @@ export const SetCustomEthStep = props => { { + e.preventDefault(); props.onInputChange({ value: "", id: 'customEthNode' }); props.onEthNodeSet(e) }} diff --git a/ui-desktop/src/renderer/src/components/settings/Settings.tsx b/ui-desktop/src/renderer/src/components/settings/Settings.tsx index 35b12291..db853aeb 100644 --- a/ui-desktop/src/renderer/src/components/settings/Settings.tsx +++ b/ui-desktop/src/renderer/src/components/settings/Settings.tsx @@ -3,12 +3,22 @@ import { View } from '../common/View' import { Sp } from '../common'; import withSettingsState from '../../store/hocs/withSettingsState'; import { StyledBtn, Subtitle, StyledParagraph, Input } from '../tools/common'; +import { useEffect, useState } from 'react'; const Settings = (props) => { + const [ethNodeUrl, setEthUrl] = useState(""); + + useEffect(() => { + props.getConfig().then(cfg => { + const customUrl = cfg?.DerivedConfig?.EthNodeURLs[0] || ""; + setEthUrl(customUrl); + }) + },[]) + return ( - + Reset Set up your wallet from scratch. @@ -17,13 +27,17 @@ const Settings = (props) => { Reset - + Set Custom ETH Node - + setEthUrl(e.value)} /> - props.logout()}> + props.updateEthNodeUrl(ethNodeUrl)}> Set diff --git a/ui-desktop/src/renderer/src/components/tools/common.jsx b/ui-desktop/src/renderer/src/components/tools/common.jsx index 73a094df..bfd2fd3f 100644 --- a/ui-desktop/src/renderer/src/components/tools/common.jsx +++ b/ui-desktop/src/renderer/src/components/tools/common.jsx @@ -49,9 +49,9 @@ export const StyledParagraph = styled.p` export const Input = styled(TextInput)` outline: 0; - border: 0px; - background: #eaf7fc; - border-radius: 15px; + border: 1px solid ${p => p.theme.colors.morMain}; + background: transparent; + border-radius: 5px; padding: 1.2rem 1.2rem; margin-top: 0.25rem; `; diff --git a/ui-desktop/src/renderer/src/store/hocs/withSettingsState.jsx b/ui-desktop/src/renderer/src/store/hocs/withSettingsState.jsx index 06fb1c09..af871b09 100644 --- a/ui-desktop/src/renderer/src/store/hocs/withSettingsState.jsx +++ b/ui-desktop/src/renderer/src/store/hocs/withSettingsState.jsx @@ -19,11 +19,50 @@ const withSettingsState = WrappedComponent => { return this.props.client.logout(); }; + getConfig = async () => { + try { + const path = `${this.props.config.chain.localProxyRouterUrl}/config`; + const response = await fetch(path); + const data = await response.json(); + return data; + } + catch (e) { + console.log("Error", e) + return []; + } + } + + updateEthNodeUrl = async (value) => { + if(!value) + return; + + if(!/\b(?:http|ws)s?:\/\/\S*[^\s."]/g.test(value)) { + this.context.toast('error', "Invalid format"); + return; + } + + const ethNodeResult = await fetch(`${this.props.config.chain.localProxyRouterUrl}/config/ethNode`, { + method: 'POST', + body: JSON.stringify({ urls: [value] }) + }) + + const dataResponse = await ethNodeResult.json(); + if (dataResponse.error) { + this.context.toast('error', dataResponse.error); + return; + } + + this.context.toast('success', "Changed"); + } + + render() { return ( From 7f18474d18d18e2e59936e0d7b6f3bb08f611915 Mon Sep 17 00:00:00 2001 From: "bohdan.konorin" Date: Sat, 26 Oct 2024 01:25:05 +0200 Subject: [PATCH 030/260] Fixed issue with random wallet --- ui-desktop/src/main/src/client/apiGateway.js | 4 +- .../main/src/client/handlers/single-core.js | 7 ++- .../src/components/dashboard/Dashboard.jsx | 4 +- .../components/dashboard/tx-list/TxList.jsx | 53 ++++++++++++------- .../src/store/hocs/withDashboardState.jsx | 4 +- .../src/store/hocs/withOnboardingState.jsx | 4 +- 6 files changed, 47 insertions(+), 29 deletions(-) diff --git a/ui-desktop/src/main/src/client/apiGateway.js b/ui-desktop/src/main/src/client/apiGateway.js index 3c08c0cf..2728519e 100644 --- a/ui-desktop/src/main/src/client/apiGateway.js +++ b/ui-desktop/src/main/src/client/apiGateway.js @@ -62,9 +62,9 @@ const sendMor = async (to, amount) => { } } -const getTransactions = async (page = 1, size = 15) => { +const getTransactions = async (payload) => { try { - const path = `${config.chain.localProxyRouterUrl}/blockchain/transactions?page=${page}&limit=${size}` + const path = `${config.chain.localProxyRouterUrl}/blockchain/transactions?page=${payload.page}&limit=${payload.pageSize}` const response = await fetch(path); const data = await response.json(); return data.transactions; diff --git a/ui-desktop/src/main/src/client/handlers/single-core.js b/ui-desktop/src/main/src/client/handlers/single-core.js index d3fcd394..934cae6e 100644 --- a/ui-desktop/src/main/src/client/handlers/single-core.js +++ b/ui-desktop/src/main/src/client/handlers/single-core.js @@ -135,7 +135,12 @@ export const setContractDeleteStatus = async function (data, { api }) { } export async function openWallet({ emitter }, password) { - const { address } = wallet.getAddress() + const storedAddress = wallet.getAddress() + if(!storedAddress) { + return; + } + + const { address } = storedAddress; emitter.emit('open-wallet', { address, isActive: true }) emitter.emit('open-proxy-router', { password }) diff --git a/ui-desktop/src/renderer/src/components/dashboard/Dashboard.jsx b/ui-desktop/src/renderer/src/components/dashboard/Dashboard.jsx index 1d4888f8..16ecfb23 100644 --- a/ui-desktop/src/renderer/src/components/dashboard/Dashboard.jsx +++ b/ui-desktop/src/renderer/src/components/dashboard/Dashboard.jsx @@ -73,7 +73,7 @@ const Dashboard = ({ } }); const [transactions, setTransactions] = useState([]); - const [pagging, setPagging] = useState({ page: 1, pageSize: 15, hasNextPage: true }) + const [pagging, setPagging] = useState({ page: 1, pageSize: 50, hasNextPage: true }) const [staked, setStaked] = useState(0); const loadBalances = async () => { @@ -194,7 +194,7 @@ const Dashboard = ({ {}} hasTransactions={!!transactions.length} syncStatus={syncStatus} transactions={transactions} diff --git a/ui-desktop/src/renderer/src/components/dashboard/tx-list/TxList.jsx b/ui-desktop/src/renderer/src/components/dashboard/tx-list/TxList.jsx index 5961c0f1..2ba62f9f 100644 --- a/ui-desktop/src/renderer/src/components/dashboard/tx-list/TxList.jsx +++ b/ui-desktop/src/renderer/src/components/dashboard/tx-list/TxList.jsx @@ -32,7 +32,7 @@ const Transactions = styled.div` `; const ListContainer = styled.div` - height: calc(100vh - 370px); + height: calc(100vh - 490px); border-radius: 0.375rem; background: rgba(255,255,255, 0.04); @@ -94,16 +94,17 @@ export const TxList = ({ items={transactions.filter(({ txType }) => txType)} > {({ filteredItems, onFilterChange, activeFilter }) => { - const rowCount = hasNextPage - ? filteredItems.length + 1 - : filteredItems.length; + // const rowCount = hasNextPage + // ? filteredItems.length + 1 + // : filteredItems.length; + const rowCount = filteredItems.length; // Only load 1 page of items at a time. // Pass an empty callback to InfiniteLoader in case it asks us to load more than once. const loadMoreRows = nextPageLoading ? () => {} : () => { - load(); + // load(); }; // Every row is loaded except for our loading indicator row. @@ -124,9 +125,10 @@ export const TxList = ({ /> ) : ( - - Loading... - + null + // + // Loading... + // ); return ( @@ -147,18 +149,9 @@ export const TxList = ({ ))} {+transactions.length > 0 && ( - - {({ onRowsRendered, registerChild }) => ( - + {({ width, height }) => ( )} - )} - + // + // {({ onRowsRendered, registerChild }) => ( + // + // {({ width, height }) => ( + // + // )} + // + // )} + // )} diff --git a/ui-desktop/src/renderer/src/store/hocs/withDashboardState.jsx b/ui-desktop/src/renderer/src/store/hocs/withDashboardState.jsx index ef17f20e..19f8b0fc 100644 --- a/ui-desktop/src/renderer/src/store/hocs/withDashboardState.jsx +++ b/ui-desktop/src/renderer/src/store/hocs/withDashboardState.jsx @@ -45,9 +45,9 @@ const withDashboardState = WrappedComponent => { }); }; - loadTransactions = async (page = 0, pageSize = 15) => { + loadTransactions = async (page = 1, pageSize = 15) => { this.setState({ refreshStatus: 'pending', refreshError: null }); - const transactions = await this.props.client.getTransactions(page, pageSize); + const transactions = await this.props.client.getTransactions({ page, pageSize }); this.setState({ refreshStatus: 'success' }) // if (page && pageSize) { diff --git a/ui-desktop/src/renderer/src/store/hocs/withOnboardingState.jsx b/ui-desktop/src/renderer/src/store/hocs/withOnboardingState.jsx index 9d152a03..9faee86b 100644 --- a/ui-desktop/src/renderer/src/store/hocs/withOnboardingState.jsx +++ b/ui-desktop/src/renderer/src/store/hocs/withOnboardingState.jsx @@ -192,9 +192,9 @@ const withOnboardingState = WrappedComponent => { } onMnemonicSet = async (e, path) => { - this.setState({...this.state, derivationPath: path}) if (e && e.preventDefault) e.preventDefault(); - this.setState({...this.state, useEthStep: true }) + + this.setState({...this.state, useUserMnemonic: true, derivationPath: path, useEthStep: true }) } onEthNodeSet = async (e) => { From 91ab359ffa19828d3cc3144af4d4de3909f67c54 Mon Sep 17 00:00:00 2001 From: Aleksandr Kukharenko Date: Mon, 28 Oct 2024 22:35:59 +0200 Subject: [PATCH 031/260] feat: failover --- proxy-router/cmd/main.go | 1 + proxy-router/docs/docs.go | 19 ++++++- proxy-router/docs/swagger.json | 19 ++++++- proxy-router/docs/swagger.yaml | 13 ++++- .../internal/blockchainapi/controller.go | 9 +-- .../internal/blockchainapi/event_listener.go | 29 +++++++--- .../internal/blockchainapi/service.go | 23 +++++++- .../internal/blockchainapi/structs/req.go | 5 ++ .../internal/proxyapi/proxy_sender.go | 57 ++++++++++++++++++- .../internal/storages/session_storage.go | 2 + 10 files changed, 158 insertions(+), 19 deletions(-) diff --git a/proxy-router/cmd/main.go b/proxy-router/cmd/main.go index a63b12a2..99192342 100644 --- a/proxy-router/cmd/main.go +++ b/proxy-router/cmd/main.go @@ -258,6 +258,7 @@ func start() error { proxyRouterApi := proxyapi.NewProxySender(publicUrl, wallet, contractLogStorage, sessionStorage, log) blockchainApi := blockchainapi.NewBlockchainService(ethClient, *cfg.Marketplace.DiamondContractAddress, *cfg.Marketplace.MorTokenAddress, cfg.Blockchain.ExplorerApiUrl, wallet, sessionStorage, proxyRouterApi, proxyLog, cfg.Blockchain.EthLegacyTx) + proxyRouterApi.SetSessionService(blockchainApi) aiEngine := aiengine.NewAiEngine(cfg.AIEngine.OpenAIBaseURL, cfg.AIEngine.OpenAIKey, modelConfigLoader, log) sessionRouter := registries.NewSessionRouter(*cfg.Marketplace.DiamondContractAddress, ethClient, log) diff --git a/proxy-router/docs/docs.go b/proxy-router/docs/docs.go index aef81a5b..33c97ec0 100644 --- a/proxy-router/docs/docs.go +++ b/proxy-router/docs/docs.go @@ -407,7 +407,7 @@ const docTemplate = `{ "in": "body", "required": true, "schema": { - "$ref": "#/definitions/structs.OpenSessionWithDurationRequest" + "$ref": "#/definitions/structs.OpenSessionWithFailover" } }, { @@ -1451,6 +1451,9 @@ const docTemplate = `{ "createdAt": { "type": "integer" }, + "isLocal": { + "type": "boolean" + }, "modelId": { "type": "string" }, @@ -1554,6 +1557,9 @@ const docTemplate = `{ "proxyapi.ChatHistory": { "type": "object", "properties": { + "isLocal": { + "type": "boolean" + }, "messages": { "type": "array", "items": { @@ -2042,6 +2048,17 @@ const docTemplate = `{ } } }, + "structs.OpenSessionWithFailover": { + "type": "object", + "properties": { + "failover": { + "type": "boolean" + }, + "sessionDuration": { + "type": "string" + } + } + }, "structs.Provider": { "type": "object", "properties": { diff --git a/proxy-router/docs/swagger.json b/proxy-router/docs/swagger.json index 84d4cdbb..b0611711 100644 --- a/proxy-router/docs/swagger.json +++ b/proxy-router/docs/swagger.json @@ -400,7 +400,7 @@ "in": "body", "required": true, "schema": { - "$ref": "#/definitions/structs.OpenSessionWithDurationRequest" + "$ref": "#/definitions/structs.OpenSessionWithFailover" } }, { @@ -1444,6 +1444,9 @@ "createdAt": { "type": "integer" }, + "isLocal": { + "type": "boolean" + }, "modelId": { "type": "string" }, @@ -1547,6 +1550,9 @@ "proxyapi.ChatHistory": { "type": "object", "properties": { + "isLocal": { + "type": "boolean" + }, "messages": { "type": "array", "items": { @@ -2035,6 +2041,17 @@ } } }, + "structs.OpenSessionWithFailover": { + "type": "object", + "properties": { + "failover": { + "type": "boolean" + }, + "sessionDuration": { + "type": "string" + } + } + }, "structs.Provider": { "type": "object", "properties": { diff --git a/proxy-router/docs/swagger.yaml b/proxy-router/docs/swagger.yaml index 6499c347..ef575f05 100644 --- a/proxy-router/docs/swagger.yaml +++ b/proxy-router/docs/swagger.yaml @@ -39,6 +39,8 @@ definitions: type: string createdAt: type: integer + isLocal: + type: boolean modelId: type: string title: @@ -117,6 +119,8 @@ definitions: type: object proxyapi.ChatHistory: properties: + isLocal: + type: boolean messages: items: $ref: '#/definitions/proxyapi.ChatMessage' @@ -458,6 +462,13 @@ definitions: sessionDuration: type: string type: object + structs.OpenSessionWithFailover: + properties: + failover: + type: boolean + sessionDuration: + type: string + type: object structs.Provider: properties: address: @@ -920,7 +931,7 @@ paths: name: opensession required: true schema: - $ref: '#/definitions/structs.OpenSessionWithDurationRequest' + $ref: '#/definitions/structs.OpenSessionWithFailover' - description: Model ID in: path name: id diff --git a/proxy-router/internal/blockchainapi/controller.go b/proxy-router/internal/blockchainapi/controller.go index 46c552f5..c14de352 100644 --- a/proxy-router/internal/blockchainapi/controller.go +++ b/proxy-router/internal/blockchainapi/controller.go @@ -545,12 +545,12 @@ func (s *BlockchainController) openSessionByBid(ctx *gin.Context) { // @Tags sessions // @Produce json // @Accept json -// @Param opensession body structs.OpenSessionWithDurationRequest true "Open session" -// @Param id path string true "Model ID" +// @Param opensession body structs.OpenSessionWithFailover true "Open session" +// @Param id path string true "Model ID" // @Success 200 {object} structs.OpenSessionRes // @Router /blockchain/models/{id}/session [post] func (s *BlockchainController) openSessionByModelId(ctx *gin.Context) { - var reqPayload structs.OpenSessionWithDurationRequest + var reqPayload structs.OpenSessionWithFailover if err := ctx.ShouldBindJSON(&reqPayload); err != nil { s.log.Error(err) ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) @@ -565,7 +565,8 @@ func (s *BlockchainController) openSessionByModelId(ctx *gin.Context) { return } - sessionId, err := s.service.OpenSessionByModelId(ctx, params.ID.Hash, reqPayload.SessionDuration.Unpack()) + isFailoverEnabled := reqPayload.Failover + sessionId, err := s.service.OpenSessionByModelId(ctx, params.ID.Hash, reqPayload.SessionDuration.Unpack(), isFailoverEnabled, common.Address{}) if err != nil { s.log.Error(err) ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) diff --git a/proxy-router/internal/blockchainapi/event_listener.go b/proxy-router/internal/blockchainapi/event_listener.go index bb036715..bbacfa6f 100644 --- a/proxy-router/internal/blockchainapi/event_listener.go +++ b/proxy-router/internal/blockchainapi/event_listener.go @@ -114,15 +114,26 @@ func (e *EventsListener) handleSessionOpened(event *sessionrouter.SessionRouterS modelConfig = &config.ModelConfig{} } - err = e.store.AddSession(&storages.Session{ - Id: sessionId, - UserAddr: event.UserAddress.Hex(), - ProviderAddr: session.Provider.Hex(), - EndsAt: session.EndsAt, - ModelID: modelID, - ModelName: modelConfig.ModelName, - ModelApiType: modelConfig.ApiType, - }) + storedSession, ok := e.store.GetSession(sessionId) + if !ok { + err = e.store.AddSession(&storages.Session{ + Id: sessionId, + UserAddr: event.UserAddress.Hex(), + ProviderAddr: session.Provider.Hex(), + EndsAt: session.EndsAt, + ModelID: modelID, + ModelName: modelConfig.ModelName, + ModelApiType: modelConfig.ApiType, + }) + } else { + storedSession.EndsAt = session.EndsAt + storedSession.ModelID = modelID + storedSession.ModelName = modelConfig.ModelName + storedSession.ModelApiType = modelConfig.ApiType + storedSession.ProviderAddr = session.Provider.Hex() + storedSession.UserAddr = event.UserAddress.Hex() + err = e.store.AddSession(storedSession) + } if err != nil { return err } diff --git a/proxy-router/internal/blockchainapi/service.go b/proxy-router/internal/blockchainapi/service.go index 4f8fca66..efc1345b 100644 --- a/proxy-router/internal/blockchainapi/service.go +++ b/proxy-router/internal/blockchainapi/service.go @@ -666,7 +666,7 @@ func (s *BlockchainService) openSessionByBid(ctx context.Context, bidID common.H return s.OpenSession(ctx, initRes.Approval, initRes.ApprovalSig, stake) } -func (s *BlockchainService) OpenSessionByModelId(ctx context.Context, modelID common.Hash, duration *big.Int) (common.Hash, error) { +func (s *BlockchainService) OpenSessionByModelId(ctx context.Context, modelID common.Hash, duration *big.Int, isFailoverEnabled bool, omitProvider common.Address) (common.Hash, error) { supply, err := s.GetTokenSupply(ctx) if err != nil { return common.Hash{}, lib.WrapError(ErrTokenSupply, err) @@ -698,10 +698,31 @@ func (s *BlockchainService) OpenSessionByModelId(ctx context.Context, modelID co scoredBids := rateBids(bidIDs, bids, providerStats, modelStats, s.log) for i, bid := range scoredBids { + providerAddr := bid.Bid.Provider + if providerAddr == omitProvider { + s.log.Infof("skipping provider #%d %s", i, providerAddr.String()) + continue + } s.log.Infof("trying to open session with provider #%d %s", i, bid.Bid.Provider.String()) durationCopy := new(big.Int).Set(duration) hash, err := s.tryOpenSession(ctx, bid, durationCopy, supply, budget, userAddr) if err == nil { + session, ok := s.sessionStorage.GetSession(hash.String()) + if ok { + session.FailoverEnabled = isFailoverEnabled + err := s.sessionStorage.AddSession(session) + if err != nil { + s.log.Warnf("failed to update session: %s", err.Error()) + } + } else { + err := s.sessionStorage.AddSession(&storages.Session{ + Id: hash.String(), + FailoverEnabled: isFailoverEnabled, + }) + if err != nil { + s.log.Warnf("failed to store session: %s", err.Error()) + } + } return hash, nil } s.log.Errorf("failed to open session with provider %s: %s", bid.Bid.Provider.String(), err.Error()) diff --git a/proxy-router/internal/blockchainapi/structs/req.go b/proxy-router/internal/blockchainapi/structs/req.go index a6ab1fa9..2da049f3 100644 --- a/proxy-router/internal/blockchainapi/structs/req.go +++ b/proxy-router/internal/blockchainapi/structs/req.go @@ -59,6 +59,11 @@ type OpenSessionWithDurationRequest struct { SessionDuration *lib.BigInt `json:"sessionDuration"` } +type OpenSessionWithFailover struct { + SessionDuration *lib.BigInt `json:"sessionDuration"` + Failover bool `json:"failover" binding:"omitempty"` +} + type CreateBidRequest struct { ModelID string `json:"modelID" binding:"required" validate:"hex32"` PricePerSecond *lib.BigInt `json:"pricePerSecond" binding:"required" validate:"number,gt=0"` diff --git a/proxy-router/internal/proxyapi/proxy_sender.go b/proxy-router/internal/proxyapi/proxy_sender.go index 4bf31a7a..97f31d67 100644 --- a/proxy-router/internal/proxyapi/proxy_sender.go +++ b/proxy-router/internal/proxyapi/proxy_sender.go @@ -9,6 +9,7 @@ import ( "net" "net/http" "net/url" + "time" constants "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/aiengine" @@ -34,15 +35,22 @@ var ( ErrMasrshalFailed = fmt.Errorf("failed to marshal response") ErrDecode = fmt.Errorf("failed to decode response") ErrSessionNotFound = fmt.Errorf("session not found") + ErrSessionExpired = fmt.Errorf("session expired") ErrProviderNotFound = fmt.Errorf("provider not found") ) +type SessionService interface { + OpenSessionByModelId(ctx context.Context, modelID common.Hash, duration *big.Int, isFailoverEnabled bool, omitProvider common.Address) (common.Hash, error) + CloseSession(ctx context.Context, sessionID common.Hash) (common.Hash, error) +} + type ProxyServiceSender struct { publicUrl *url.URL privateKey interfaces.PrKeyProvider logStorage *lib.Collection[*interfaces.LogStorage] sessionStorage *storages.SessionStorage morRPC *msgs.MORRPCMessage + sessionService SessionService log lib.ILogger } @@ -57,6 +65,10 @@ func NewProxySender(publicUrl *url.URL, privateKey interfaces.PrKeyProvider, log } } +func (p *ProxyServiceSender) SetSessionService(service SessionService) { + p.sessionService = service +} + func (p *ProxyServiceSender) InitiateSession(ctx context.Context, user common.Address, provider common.Address, spend *big.Int, bidID common.Hash, providerURL string) (*msgs.SessionRes, error) { requestID := "1" @@ -181,7 +193,10 @@ func (p *ProxyServiceSender) SendPrompt(ctx context.Context, resWriter Responder return nil, ErrSessionNotFound } - // TODO: add check for session expiration + isExpired := session.EndsAt.Int64()-time.Now().Unix() < 0 + if isExpired { + return nil, ErrSessionExpired + } provider, ok := p.sessionStorage.GetUser(session.ProviderAddr) if !ok { @@ -203,7 +218,45 @@ func (p *ProxyServiceSender) SendPrompt(ctx context.Context, resWriter Responder return nil, lib.WrapError(ErrCreateReq, err) } - return p.rpcRequestStream(ctx, resWriter, provider.Url, promptRequest, pubKey) + result, err := p.rpcRequestStream(ctx, resWriter, provider.Url, promptRequest, pubKey) + if err != nil { + if !session.FailoverEnabled { + return nil, lib.WrapError(ErrProvider, err) + } + + // _, err := p.sessionService.CloseSession(ctx, sessionID) + // if err != nil { + // return nil, err + // } + + resWriter.Header().Set(constants.HEADER_CONTENT_TYPE, constants.CONTENT_TYPE_EVENT_STREAM) + _, err = resWriter.Write([]byte(fmt.Sprintf("data: %s\n\n", "{\"message\": \"provider failed, failover enabled\"}"))) + if err != nil { + return nil, err + } + resWriter.Flush() + + modelID := common.HexToHash(session.ModelID) + provider := common.HexToAddress(session.ProviderAddr) + duration := session.EndsAt.Int64() - time.Now().Unix() + durationBigInt := big.NewInt(duration) + newSessionID, err := p.sessionService.OpenSessionByModelId(ctx, modelID, durationBigInt, session.FailoverEnabled, provider) + + if err != nil { + return nil, err + } + + _, err = resWriter.Write([]byte(fmt.Sprintf("data: %s\n\n", "{\"message\": \"new session opened\"}"))) + if err != nil { + return nil, err + } + resWriter.Flush() + + time.Sleep(1 * time.Second) // sleep for a bit to allow the new session to be created + return p.SendPrompt(ctx, resWriter, prompt, newSessionID) + } + + return result, nil } func (p *ProxyServiceSender) rpcRequest(url string, rpcMessage *msgs.RPCMessage) (*msgs.RpcResponse, int, gin.H) { diff --git a/proxy-router/internal/storages/session_storage.go b/proxy-router/internal/storages/session_storage.go index 5ca9029f..3ec80a5c 100644 --- a/proxy-router/internal/storages/session_storage.go +++ b/proxy-router/internal/storages/session_storage.go @@ -18,6 +18,8 @@ type Session struct { ModelID string ModelName string ModelApiType string + + FailoverEnabled bool } type User struct { From 0a9bc43816ab5ac4dd14c0fc4e77bf8669168276 Mon Sep 17 00:00:00 2001 From: Aleksandr Kukharenko Date: Wed, 25 Sep 2024 17:50:16 +0300 Subject: [PATCH 032/260] feat: split get sessions comments on two --- proxy-router/docs/docs.go | 138 ++++++++++++------ proxy-router/docs/swagger.json | 138 ++++++++++++------ proxy-router/docs/swagger.yaml | 92 ++++++++---- .../internal/blockchainapi/controller.go | 61 +++++--- .../internal/blockchainapi/structs/req.go | 9 +- .../renderer/src/store/hocs/withChatState.jsx | 2 +- .../src/store/hocs/withProvidersState.jsx | 2 +- 7 files changed, 303 insertions(+), 139 deletions(-) diff --git a/proxy-router/docs/docs.go b/proxy-router/docs/docs.go index bede38e7..e0500907 100644 --- a/proxy-router/docs/docs.go +++ b/proxy-router/docs/docs.go @@ -640,98 +640,136 @@ const docTemplate = `{ } }, "/blockchain/sessions": { - "get": { - "description": "Get sessions from blockchain by user or provider", + "post": { + "description": "Sends transaction in blockchain to open a session", + "consumes": [ + "application/json" + ], "produces": [ "application/json" ], "tags": [ "sessions" ], - "summary": "Get Sessions", + "summary": "Open Session with Provider in blockchain", "parameters": [ { - "type": "string", - "description": "Offset", - "name": "offset", - "in": "query" - }, - { - "type": "string", - "description": "Limit", - "name": "limit", - "in": "query" - }, - { - "type": "string", - "description": "Provider address", - "name": "provider", - "in": "query" - }, - { - "type": "string", - "description": "User address", - "name": "user", - "in": "query" + "description": "Open session", + "name": "opensession", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/structs.OpenSessionRequest" + } } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/structs.SessionsRes" + "$ref": "#/definitions/structs.OpenSessionRes" } } } - }, - "post": { - "description": "Sends transaction in blockchain to open a session", - "consumes": [ + } + }, + "/blockchain/sessions/budget": { + "get": { + "description": "Get todays budget from blockchain", + "produces": [ "application/json" ], + "tags": [ + "sessions" + ], + "summary": "Get Todays Budget", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/structs.BudgetRes" + } + } + } + } + }, + "/blockchain/sessions/provider": { + "get": { + "description": "Get sessions from blockchain by provider", "produces": [ "application/json" ], "tags": [ "sessions" ], - "summary": "Open Session with Provider in blockchain", + "summary": "Get Sessions for Provider", "parameters": [ { - "description": "Open session", - "name": "opensession", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/structs.OpenSessionRequest" - } + "type": "string", + "description": "Offset", + "name": "offset", + "in": "query" + }, + { + "type": "string", + "description": "Limit", + "name": "limit", + "in": "query" + }, + { + "type": "string", + "description": "Provider address", + "name": "provider", + "in": "query", + "required": true } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/structs.OpenSessionRes" + "$ref": "#/definitions/structs.SessionsRes" } } } } }, - "/blockchain/sessions/budget": { + "/blockchain/sessions/user": { "get": { - "description": "Get todays budget from blockchain", + "description": "Get sessions from blockchain by user", "produces": [ "application/json" ], "tags": [ "sessions" ], - "summary": "Get Todays Budget", + "summary": "Get Sessions for User", + "parameters": [ + { + "type": "string", + "description": "Offset", + "name": "offset", + "in": "query" + }, + { + "type": "string", + "description": "Limit", + "name": "limit", + "in": "query" + }, + { + "type": "string", + "description": "User address", + "name": "user", + "in": "query", + "required": true + } + ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/structs.BudgetRes" + "$ref": "#/definitions/structs.SessionsRes" } } } @@ -1237,6 +1275,9 @@ const docTemplate = `{ "proxyapi.ChatCompletionChoice": { "type": "object", "properties": { + "delta": { + "$ref": "#/definitions/proxyapi.ChatCompletionDelta" + }, "finish_reason": { "description": "FinishReason\nstop: API returned complete message,\nor a message terminated by one of the stop sequences provided via the stop parameter\nlength: Incomplete model output due to max_tokens parameter or token limit\nfunction_call: The model decided to call a function\ncontent_filter: Omitted content due to a flag from our content filters\nnull: API response still in progress or incomplete", "allOf": [ @@ -1256,6 +1297,17 @@ const docTemplate = `{ } } }, + "proxyapi.ChatCompletionDelta": { + "type": "object", + "properties": { + "content": { + "type": "string" + }, + "role": { + "type": "string" + } + } + }, "proxyapi.ChatCompletionMessage": { "type": "object", "properties": { diff --git a/proxy-router/docs/swagger.json b/proxy-router/docs/swagger.json index 45a112c9..cf46038e 100644 --- a/proxy-router/docs/swagger.json +++ b/proxy-router/docs/swagger.json @@ -633,98 +633,136 @@ } }, "/blockchain/sessions": { - "get": { - "description": "Get sessions from blockchain by user or provider", + "post": { + "description": "Sends transaction in blockchain to open a session", + "consumes": [ + "application/json" + ], "produces": [ "application/json" ], "tags": [ "sessions" ], - "summary": "Get Sessions", + "summary": "Open Session with Provider in blockchain", "parameters": [ { - "type": "string", - "description": "Offset", - "name": "offset", - "in": "query" - }, - { - "type": "string", - "description": "Limit", - "name": "limit", - "in": "query" - }, - { - "type": "string", - "description": "Provider address", - "name": "provider", - "in": "query" - }, - { - "type": "string", - "description": "User address", - "name": "user", - "in": "query" + "description": "Open session", + "name": "opensession", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/structs.OpenSessionRequest" + } } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/structs.SessionsRes" + "$ref": "#/definitions/structs.OpenSessionRes" } } } - }, - "post": { - "description": "Sends transaction in blockchain to open a session", - "consumes": [ + } + }, + "/blockchain/sessions/budget": { + "get": { + "description": "Get todays budget from blockchain", + "produces": [ "application/json" ], + "tags": [ + "sessions" + ], + "summary": "Get Todays Budget", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/structs.BudgetRes" + } + } + } + } + }, + "/blockchain/sessions/provider": { + "get": { + "description": "Get sessions from blockchain by provider", "produces": [ "application/json" ], "tags": [ "sessions" ], - "summary": "Open Session with Provider in blockchain", + "summary": "Get Sessions for Provider", "parameters": [ { - "description": "Open session", - "name": "opensession", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/structs.OpenSessionRequest" - } + "type": "string", + "description": "Offset", + "name": "offset", + "in": "query" + }, + { + "type": "string", + "description": "Limit", + "name": "limit", + "in": "query" + }, + { + "type": "string", + "description": "Provider address", + "name": "provider", + "in": "query", + "required": true } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/structs.OpenSessionRes" + "$ref": "#/definitions/structs.SessionsRes" } } } } }, - "/blockchain/sessions/budget": { + "/blockchain/sessions/user": { "get": { - "description": "Get todays budget from blockchain", + "description": "Get sessions from blockchain by user", "produces": [ "application/json" ], "tags": [ "sessions" ], - "summary": "Get Todays Budget", + "summary": "Get Sessions for User", + "parameters": [ + { + "type": "string", + "description": "Offset", + "name": "offset", + "in": "query" + }, + { + "type": "string", + "description": "Limit", + "name": "limit", + "in": "query" + }, + { + "type": "string", + "description": "User address", + "name": "user", + "in": "query", + "required": true + } + ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/structs.BudgetRes" + "$ref": "#/definitions/structs.SessionsRes" } } } @@ -1230,6 +1268,9 @@ "proxyapi.ChatCompletionChoice": { "type": "object", "properties": { + "delta": { + "$ref": "#/definitions/proxyapi.ChatCompletionDelta" + }, "finish_reason": { "description": "FinishReason\nstop: API returned complete message,\nor a message terminated by one of the stop sequences provided via the stop parameter\nlength: Incomplete model output due to max_tokens parameter or token limit\nfunction_call: The model decided to call a function\ncontent_filter: Omitted content due to a flag from our content filters\nnull: API response still in progress or incomplete", "allOf": [ @@ -1249,6 +1290,17 @@ } } }, + "proxyapi.ChatCompletionDelta": { + "type": "object", + "properties": { + "content": { + "type": "string" + }, + "role": { + "type": "string" + } + } + }, "proxyapi.ChatCompletionMessage": { "type": "object", "properties": { diff --git a/proxy-router/docs/swagger.yaml b/proxy-router/docs/swagger.yaml index ee876b25..c68ee866 100644 --- a/proxy-router/docs/swagger.yaml +++ b/proxy-router/docs/swagger.yaml @@ -35,6 +35,8 @@ definitions: type: object proxyapi.ChatCompletionChoice: properties: + delta: + $ref: '#/definitions/proxyapi.ChatCompletionDelta' finish_reason: allOf: - $ref: '#/definitions/proxyapi.FinishReason' @@ -53,6 +55,13 @@ definitions: message: $ref: '#/definitions/proxyapi.ChatCompletionMessage' type: object + proxyapi.ChatCompletionDelta: + properties: + content: + type: string + role: + type: string + type: object proxyapi.ChatCompletionMessage: properties: content: @@ -1047,35 +1056,6 @@ paths: tags: - transactions /blockchain/sessions: - get: - description: Get sessions from blockchain by user or provider - parameters: - - description: Offset - in: query - name: offset - type: string - - description: Limit - in: query - name: limit - type: string - - description: Provider address - in: query - name: provider - type: string - - description: User address - in: query - name: user - type: string - produces: - - application/json - responses: - "200": - description: OK - schema: - $ref: '#/definitions/structs.SessionsRes' - summary: Get Sessions - tags: - - sessions post: consumes: - application/json @@ -1148,6 +1128,60 @@ paths: summary: Get Todays Budget tags: - sessions + /blockchain/sessions/provider: + get: + description: Get sessions from blockchain by provider + parameters: + - description: Offset + in: query + name: offset + type: string + - description: Limit + in: query + name: limit + type: string + - description: Provider address + in: query + name: provider + required: true + type: string + produces: + - application/json + responses: + "200": + description: OK + schema: + $ref: '#/definitions/structs.SessionsRes' + summary: Get Sessions for Provider + tags: + - sessions + /blockchain/sessions/user: + get: + description: Get sessions from blockchain by user + parameters: + - description: Offset + in: query + name: offset + type: string + - description: Limit + in: query + name: limit + type: string + - description: User address + in: query + name: user + required: true + type: string + produces: + - application/json + responses: + "200": + description: OK + schema: + $ref: '#/definitions/structs.SessionsRes' + summary: Get Sessions for User + tags: + - sessions /blockchain/token/supply: get: description: Get MOR token supply from blockchain diff --git a/proxy-router/internal/blockchainapi/controller.go b/proxy-router/internal/blockchainapi/controller.go index e3666759..7312eb12 100644 --- a/proxy-router/internal/blockchainapi/controller.go +++ b/proxy-router/internal/blockchainapi/controller.go @@ -2,7 +2,6 @@ package blockchainapi import ( "crypto/rand" - "fmt" "math/big" "net/http" @@ -60,7 +59,8 @@ func (c *BlockchainController) RegisterRoutes(r interfaces.Router) { // sessions r.GET("/proxy/sessions/:id/providerClaimableBalance", c.getProviderClaimableBalance) r.POST("/proxy/sessions/:id/providerClaim", c.claimProviderBalance) - r.GET("/blockchain/sessions", c.getSessions) + r.GET("/blockchain/sessions/user", c.getSessionsForUser) + r.GET("/blockchain/sessions/provider", c.getSessionsForProvider) r.GET("/blockchain/sessions/:id", c.getSession) r.POST("/blockchain/sessions", c.openSession) r.POST("/blockchain/bids/:id/session", c.openSessionByBid) @@ -636,17 +636,16 @@ func (c *BlockchainController) getSession(ctx *gin.Context) { // GetSessions godoc // -// @Summary Get Sessions -// @Description Get sessions from blockchain by user or provider +// @Summary Get Sessions for User +// @Description Get sessions from blockchain by user // @Tags sessions // @Produce json -// @Param offset query string false "Offset" -// @Param limit query string false "Limit" -// @Param provider query string false "Provider address" -// @Param user query string false "User address" -// @Success 200 {object} structs.SessionsRes -// @Router /blockchain/sessions [get] -func (c *BlockchainController) getSessions(ctx *gin.Context) { +// @Param offset query string false "Offset" +// @Param limit query string false "Limit" +// @Param user query string true "User address" +// @Success 200 {object} structs.SessionsRes +// @Router /blockchain/sessions/user [get] +func (c *BlockchainController) getSessionsForUser(ctx *gin.Context) { offset, limit, err := getOffsetLimit(ctx) if err != nil { c.log.Error(err) @@ -654,7 +653,7 @@ func (c *BlockchainController) getSessions(ctx *gin.Context) { return } - var req structs.QueryUserOrProvider + var req structs.QueryUser err = ctx.ShouldBindQuery(&req) if err != nil { c.log.Error(err) @@ -662,21 +661,45 @@ func (c *BlockchainController) getSessions(ctx *gin.Context) { return } - hasUser := req.User != lib.Address{} - hasProvider := req.Provider != lib.Address{} + sessions, err := c.service.GetSessions(ctx, req.User.Address, common.Address{}, offset, limit) + if err != nil { + c.log.Error(err) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + return + } + + ctx.JSON(http.StatusOK, structs.SessionsRes{Sessions: sessions}) + return +} - if !hasUser && !hasProvider { +// GetSessions godoc +// +// @Summary Get Sessions for Provider +// @Description Get sessions from blockchain by provider +// @Tags sessions +// @Produce json +// @Param offset query string false "Offset" +// @Param limit query string false "Limit" +// @Param provider query string true "Provider address" +// @Success 200 {object} structs.SessionsRes +// @Router /blockchain/sessions/provider [get] +func (c *BlockchainController) getSessionsForProvider(ctx *gin.Context) { + offset, limit, err := getOffsetLimit(ctx) + if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: fmt.Errorf("user or provider is required")}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) return } - if hasUser && hasProvider { + + var req structs.QueryProvider + err = ctx.ShouldBindQuery(&req) + if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: fmt.Errorf("only one of user or provider is allowed")}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) return } - sessions, err := c.service.GetSessions(ctx, req.User.Address, req.Provider.Address, offset, limit) + sessions, err := c.service.GetSessions(ctx, common.Address{}, req.Provider.Address, offset, limit) if err != nil { c.log.Error(err) ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) diff --git a/proxy-router/internal/blockchainapi/structs/req.go b/proxy-router/internal/blockchainapi/structs/req.go index dad1284d..a6ab1fa9 100644 --- a/proxy-router/internal/blockchainapi/structs/req.go +++ b/proxy-router/internal/blockchainapi/structs/req.go @@ -47,9 +47,12 @@ type QueryApprove struct { Amount *lib.BigInt `form:"amount" binding:"required" validate:"number,gt=0"` } -type QueryUserOrProvider struct { - User lib.Address `form:"user" binding:"omitempty" validate:"eth_addr"` - Provider lib.Address `form:"provider" binding:"omitempty" validate:"eth_addr"` +type QueryUser struct { + User lib.Address `form:"user" binding:"required" validate:"eth_addr"` +} + +type QueryProvider struct { + Provider lib.Address `form:"provider" binding:"required" validate:"eth_addr"` } type OpenSessionWithDurationRequest struct { diff --git a/ui-desktop/src/renderer/src/store/hocs/withChatState.jsx b/ui-desktop/src/renderer/src/store/hocs/withChatState.jsx index 8aca8bc3..f79a20c9 100644 --- a/ui-desktop/src/renderer/src/store/hocs/withChatState.jsx +++ b/ui-desktop/src/renderer/src/store/hocs/withChatState.jsx @@ -167,7 +167,7 @@ const withChatState = WrappedComponent => { return; } try { - const path = `${this.props.config.chain.localProxyRouterUrl}/blockchain/sessions?user=${user}`; + const path = `${this.props.config.chain.localProxyRouterUrl}/blockchain/sessions/user?user=${user}`; const response = await fetch(path); const data = await response.json(); return data.sessions; diff --git a/ui-desktop/src/renderer/src/store/hocs/withProvidersState.jsx b/ui-desktop/src/renderer/src/store/hocs/withProvidersState.jsx index fc9029a2..3fba485d 100644 --- a/ui-desktop/src/renderer/src/store/hocs/withProvidersState.jsx +++ b/ui-desktop/src/renderer/src/store/hocs/withProvidersState.jsx @@ -35,7 +35,7 @@ const withProvidersState = WrappedComponent => { getSessionsByProvider = async (provider) => { try { - const path = `${this.props.config.chain.localProxyRouterUrl}/blockchain/sessions?provider=${provider}`; + const path = `${this.props.config.chain.localProxyRouterUrl}/blockchain/sessions/provider?provider=${provider}`; const response = await fetch(path); const data = await response.json(); return data.sessions; From 32261966d6144e8d1c8b1ccfdc9207e0e2055313 Mon Sep 17 00:00:00 2001 From: tshak Date: Tue, 24 Sep 2024 18:31:05 -0700 Subject: [PATCH 033/260] Blockchain API: Fix empty errors in JSON payload and in a couple of cases logs. Fixes #190 --- .../internal/blockchainapi/controller.go | 130 +++++++++--------- .../internal/blockchainapi/structs/res.go | 2 +- 2 files changed, 66 insertions(+), 66 deletions(-) diff --git a/proxy-router/internal/blockchainapi/controller.go b/proxy-router/internal/blockchainapi/controller.go index 7312eb12..46c552f5 100644 --- a/proxy-router/internal/blockchainapi/controller.go +++ b/proxy-router/internal/blockchainapi/controller.go @@ -84,13 +84,13 @@ func (c *BlockchainController) getProviderClaimableBalance(ctx *gin.Context) { err := ctx.ShouldBindUri(¶ms) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } balance, err := c.service.GetProviderClaimableBalance(ctx, params.ID.Hash) if err != nil { - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -113,21 +113,21 @@ func (c *BlockchainController) claimProviderBalance(ctx *gin.Context) { err := ctx.ShouldBindUri(¶ms) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } _, amount, err := c.getSendParams(ctx) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } txHash, err := c.service.ClaimProviderBalance(ctx, params.ID.Hash, amount) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -147,7 +147,7 @@ func (c *BlockchainController) getAllProviders(ctx *gin.Context) { providers, err := c.service.GetAllProviders(ctx) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } @@ -168,14 +168,14 @@ func (c *BlockchainController) sendETH(ctx *gin.Context) { to, amount, err := c.getSendParams(ctx) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } txHash, err := c.service.SendETH(ctx, to, amount) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -196,13 +196,13 @@ func (c *BlockchainController) sendMOR(ctx *gin.Context) { to, amount, err := c.getSendParams(ctx) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } txhash, err := c.service.SendMOR(ctx, to, amount) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } @@ -226,21 +226,21 @@ func (c *BlockchainController) getBidsByProvider(ctx *gin.Context) { err := ctx.ShouldBindUri(¶ms) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } offset, limit, err := getOffsetLimit(ctx) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } bids, err := c.service.GetBidsByProvider(ctx, params.ID.Address, offset, limit) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -262,14 +262,14 @@ func (c *BlockchainController) getActiveBidsByProvider(ctx *gin.Context) { err := ctx.ShouldBindUri(¶ms) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } bids, err := c.service.GetActiveBidsByProvider(ctx, params.ID.Address) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -289,7 +289,7 @@ func (c *BlockchainController) getAllModels(ctx *gin.Context) { models, err := c.service.GetAllModels(ctx) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } @@ -313,21 +313,21 @@ func (c *BlockchainController) getBidsByModelAgent(ctx *gin.Context) { err := ctx.ShouldBindUri(¶ms) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } offset, limit, err := getOffsetLimit(ctx) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } bids, err := c.service.GetBidsByModelAgent(ctx, params.ID.Hash, offset, limit) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -349,14 +349,14 @@ func (c *BlockchainController) getActiveBidsByModel(ctx *gin.Context) { err := ctx.ShouldBindUri(¶ms) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } bids, err := c.service.GetActiveBidsByModel(ctx, params.ID.Hash) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -376,7 +376,7 @@ func (s *BlockchainController) getBalance(ctx *gin.Context) { ethBalance, morBalance, err := s.service.GetBalance(ctx) if err != nil { s.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -401,14 +401,14 @@ func (c *BlockchainController) getTransactions(ctx *gin.Context) { page, limit, err := getPageLimit(ctx) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } txs, err := c.service.GetTransactions(ctx, page, limit) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -429,14 +429,14 @@ func (c *BlockchainController) getAllowance(ctx *gin.Context) { err := ctx.ShouldBindQuery(&query) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } allowance, err := c.service.GetAllowance(ctx, query.Spender.Address) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -459,14 +459,14 @@ func (c *BlockchainController) approve(ctx *gin.Context) { err := ctx.ShouldBindQuery(&query) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } tx, err := c.service.Approve(ctx, query.Spender.Address, query.Amount.Unpack()) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -488,14 +488,14 @@ func (c *BlockchainController) openSession(ctx *gin.Context) { var reqPayload structs.OpenSessionRequest if err := ctx.ShouldBindJSON(&reqPayload); err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } sessionId, err := c.service.OpenSession(ctx, reqPayload.Approval, reqPayload.ApprovalSig, reqPayload.Stake.Unpack()) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -517,20 +517,20 @@ func (c *BlockchainController) openSession(ctx *gin.Context) { func (s *BlockchainController) openSessionByBid(ctx *gin.Context) { var reqPayload structs.OpenSessionWithDurationRequest if err := ctx.ShouldBindJSON(&reqPayload); err != nil { - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } var params structs.PathHex32ID err := ctx.ShouldBindUri(¶ms) if err != nil { - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } sessionId, err := s.service.openSessionByBid(ctx, params.ID.Hash, reqPayload.SessionDuration.Unpack()) if err != nil { - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -553,7 +553,7 @@ func (s *BlockchainController) openSessionByModelId(ctx *gin.Context) { var reqPayload structs.OpenSessionWithDurationRequest if err := ctx.ShouldBindJSON(&reqPayload); err != nil { s.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } @@ -568,7 +568,7 @@ func (s *BlockchainController) openSessionByModelId(ctx *gin.Context) { sessionId, err := s.service.OpenSessionByModelId(ctx, params.ID.Hash, reqPayload.SessionDuration.Unpack()) if err != nil { s.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -590,14 +590,14 @@ func (c *BlockchainController) closeSession(ctx *gin.Context) { err := ctx.ShouldBindUri(¶ms) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } txHash, err := c.service.CloseSession(ctx, params.ID.Hash) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -619,14 +619,14 @@ func (c *BlockchainController) getSession(ctx *gin.Context) { err := ctx.ShouldBindUri(¶ms) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } session, err := c.service.GetSession(ctx, params.ID.Hash) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -649,7 +649,7 @@ func (c *BlockchainController) getSessionsForUser(ctx *gin.Context) { offset, limit, err := getOffsetLimit(ctx) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } @@ -657,14 +657,14 @@ func (c *BlockchainController) getSessionsForUser(ctx *gin.Context) { err = ctx.ShouldBindQuery(&req) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } sessions, err := c.service.GetSessions(ctx, req.User.Address, common.Address{}, offset, limit) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -687,7 +687,7 @@ func (c *BlockchainController) getSessionsForProvider(ctx *gin.Context) { offset, limit, err := getOffsetLimit(ctx) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } @@ -695,14 +695,14 @@ func (c *BlockchainController) getSessionsForProvider(ctx *gin.Context) { err = ctx.ShouldBindQuery(&req) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } sessions, err := c.service.GetSessions(ctx, common.Address{}, req.Provider.Address, offset, limit) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -722,7 +722,7 @@ func (s *BlockchainController) getBudget(ctx *gin.Context) { budget, err := s.service.GetTodaysBudget(ctx) if err != nil { s.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -742,7 +742,7 @@ func (s *BlockchainController) getSupply(ctx *gin.Context) { supply, err := s.service.GetTokenSupply(ctx) if err != nil { s.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -762,7 +762,7 @@ func (c *BlockchainController) getLatestBlock(ctx *gin.Context) { block, err := c.service.GetLatestBlock(ctx) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } ctx.JSON(http.StatusOK, structs.BlockRes{Block: block}) @@ -783,14 +783,14 @@ func (c *BlockchainController) getBidByID(ctx *gin.Context) { err := ctx.ShouldBindUri(¶ms) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } bid, err := c.service.GetBidByID(ctx, params.ID.Hash) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -812,14 +812,14 @@ func (c *BlockchainController) getRatedBids(ctx *gin.Context) { err := ctx.ShouldBindUri(¶ms) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } bids, err := c.service.GetRatedBids(ctx, params.ID.Hash) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -840,14 +840,14 @@ func (c *BlockchainController) createProvider(ctx *gin.Context) { var provider structs.CreateProviderRequest if err := ctx.ShouldBindJSON(&provider); err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } result, err := c.service.CreateNewProvider(ctx, provider.Stake, provider.Endpoint) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -868,14 +868,14 @@ func (c *BlockchainController) deregisterProvider(ctx *gin.Context) { err := ctx.ShouldBindUri(¶ms) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } txHash, err := c.service.DeregisterProdiver(ctx, params.ID.Address) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -896,7 +896,7 @@ func (c *BlockchainController) createNewModel(ctx *gin.Context) { var model structs.CreateModelRequest if err := ctx.ShouldBindJSON(&model); err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } @@ -906,7 +906,7 @@ func (c *BlockchainController) createNewModel(ctx *gin.Context) { _, err := rand.Read(hash[:]) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } modelId = hash @@ -918,7 +918,7 @@ func (c *BlockchainController) createNewModel(ctx *gin.Context) { result, err := c.service.CreateNewModel(ctx, modelId, ipsfHash, model.Fee, model.Stake, model.Name, model.Tags) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -940,14 +940,14 @@ func (c *BlockchainController) deregisterModel(ctx *gin.Context) { err := ctx.ShouldBindUri(¶ms) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } txHash, err := c.service.DeregisterModel(ctx, params.ID.Hash) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -968,7 +968,7 @@ func (c *BlockchainController) createNewBid(ctx *gin.Context) { var bid structs.CreateBidRequest if err := ctx.ShouldBindJSON(&bid); err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } @@ -976,7 +976,7 @@ func (c *BlockchainController) createNewBid(ctx *gin.Context) { result, err := c.service.CreateNewBid(ctx, modelId, bid.PricePerSecond) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } @@ -997,14 +997,14 @@ func (c *BlockchainController) deleteBid(ctx *gin.Context) { err := ctx.ShouldBindUri(¶ms) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) return } txHash, err := c.service.DeleteBid(ctx, params.ID.Hash) if err != nil { c.log.Error(err) - ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err}) + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) return } diff --git a/proxy-router/internal/blockchainapi/structs/res.go b/proxy-router/internal/blockchainapi/structs/res.go index 0d976c01..64783bb2 100644 --- a/proxy-router/internal/blockchainapi/structs/res.go +++ b/proxy-router/internal/blockchainapi/structs/res.go @@ -14,7 +14,7 @@ type TxRes struct { } type ErrRes struct { - Error error `json:"error" example:"error message"` + Error string `json:"error" example:"error message"` } type OpenSessionRes struct { From d935255418b074ad95aa520f75183e092d6b4230 Mon Sep 17 00:00:00 2001 From: Aleksandr Kukharenko Date: Mon, 30 Sep 2024 11:25:36 +0300 Subject: [PATCH 034/260] fix: improve log --- proxy-router/internal/blockchainapi/event_listener.go | 8 +++++++- proxy-router/internal/config/models_config.go | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/proxy-router/internal/blockchainapi/event_listener.go b/proxy-router/internal/blockchainapi/event_listener.go index 606bd96c..7d62d3c8 100644 --- a/proxy-router/internal/blockchainapi/event_listener.go +++ b/proxy-router/internal/blockchainapi/event_listener.go @@ -100,7 +100,13 @@ func (e *EventsListener) handleSessionOpened(event *sessionrouter.SessionRouterS } modelID := lib.BytesToString(session.ModelAgentId[:]) - modelConfig := e.modelConfigLoader.ModelConfigFromID(modelID) + + var modelConfig *config.ModelConfig + if session.Provider.Hex() == address.Hex() { + modelConfig = e.modelConfigLoader.ModelConfigFromID(modelID) + } else { + modelConfig = &config.ModelConfig{} + } err = e.store.AddSession(&storages.Session{ Id: sessionId, diff --git a/proxy-router/internal/config/models_config.go b/proxy-router/internal/config/models_config.go index 942e95c4..44b01b5b 100644 --- a/proxy-router/internal/config/models_config.go +++ b/proxy-router/internal/config/models_config.go @@ -63,7 +63,7 @@ func (e *ModelConfigLoader) ModelConfigFromID(ID string) *ModelConfig { modelConfig := e.modelConfigs[ID] if modelConfig == (ModelConfig{}) { - e.log.Errorf("model config not found for ID: %s", ID) + e.log.Warnf("model config not found for ID: %s", ID) return &ModelConfig{} } From de9b1f3e696ddf315704c4dc760d7b1c275ed416 Mon Sep 17 00:00:00 2001 From: "bohdan.konorin" Date: Wed, 2 Oct 2024 17:24:33 +0200 Subject: [PATCH 035/260] Fixed issue with Price range --- ui-desktop/src/renderer/src/components/chat/Chat.tsx | 8 ++++---- .../src/renderer/src/components/chat/modals/ModelRow.tsx | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/ui-desktop/src/renderer/src/components/chat/Chat.tsx b/ui-desktop/src/renderer/src/components/chat/Chat.tsx index 32c20237..e340df93 100644 --- a/ui-desktop/src/renderer/src/components/chat/Chat.tsx +++ b/ui-desktop/src/renderer/src/components/chat/Chat.tsx @@ -162,8 +162,8 @@ const Chat = (props) => { setChat({ id: makeId(16), createdAt: new Date(), modelId: selectedModel.Id }); } - const prices = selectedModel.bids.map(x => x.PricePerSecond); - const maxPrice = Math.max(prices); + const prices = selectedModel.bids.map(x => Number(x.PricePerSecond)); + const maxPrice = Math.max(...prices); const duration = calculateAcceptableDuration(maxPrice, Number(balances.mor), meta); console.log("open-session", duration); @@ -463,8 +463,8 @@ const Chat = (props) => { return; } - const prices = selectedModel.bids.map(x => x.PricePerSecond); - const maxPrice = Math.max(prices); + const prices = selectedModel.bids.map(x => Number(x.PricePerSecond)); + const maxPrice = Math.max(...prices); setRequiredStake({ min: calculateStake(maxPrice, 5), max: calculateStake(maxPrice, 24 * 60) }) } diff --git a/ui-desktop/src/renderer/src/components/chat/modals/ModelRow.tsx b/ui-desktop/src/renderer/src/components/chat/modals/ModelRow.tsx index 670280e5..32915a6a 100644 --- a/ui-desktop/src/renderer/src/components/chat/modals/ModelRow.tsx +++ b/ui-desktop/src/renderer/src/components/chat/modals/ModelRow.tsx @@ -121,13 +121,13 @@ function ModelRow(props) { return `${formatSmallNumber(targetBid?.PricePerSecond / (10 ** 18))} MOR`; } - const prices = bids.filter(x => x.Id).map(x => x.PricePerSecond); + const prices = bids.filter(x => x.Id).map(x => Number(x.PricePerSecond)); if (prices.length == 1) { return `${formatSmallNumber(prices[0] / (10 ** 18))} MOR`; } - const minPrice = Math.min(prices); - const maxPrice = Math.max(prices); + const minPrice = Math.min(...prices); + const maxPrice = Math.max(...prices); return `${formatSmallNumber(minPrice / (10 ** 18))} - ${formatSmallNumber(maxPrice / (10 ** 18))} MOR` } From e27b4ce82eebdc0f65fbaaa355b881487906b23f Mon Sep 17 00:00:00 2001 From: shev Date: Wed, 9 Oct 2024 21:24:18 +0200 Subject: [PATCH 036/260] feat: abstract ethclient with interface --- .../internal/blockchainapi/event_listener.go | 6 ++-- .../internal/blockchainapi/service.go | 11 ++++--- proxy-router/internal/interfaces/ethclient.go | 29 ++++++++++++++++++ .../repositories/contracts/interface.go | 30 ------------------- .../repositories/contracts/subscription.go | 3 +- .../repositories/registries/marketplace.go | 6 ++-- .../repositories/registries/model_registry.go | 6 ++-- .../repositories/registries/mor_token.go | 6 ++-- .../registries/provider_registry.go | 6 ++-- .../repositories/registries/session_router.go | 6 ++-- 10 files changed, 54 insertions(+), 55 deletions(-) create mode 100644 proxy-router/internal/interfaces/ethclient.go delete mode 100644 proxy-router/internal/repositories/contracts/interface.go diff --git a/proxy-router/internal/blockchainapi/event_listener.go b/proxy-router/internal/blockchainapi/event_listener.go index 7d62d3c8..cbe0511e 100644 --- a/proxy-router/internal/blockchainapi/event_listener.go +++ b/proxy-router/internal/blockchainapi/event_listener.go @@ -10,7 +10,7 @@ import ( "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/contracts" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/registries" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/storages" - "github.com/ethereum/go-ethereum/ethclient" + "github.com/ethereum/go-ethereum/accounts/abi/bind" ) type EventsListener struct { @@ -18,12 +18,12 @@ type EventsListener struct { store *storages.SessionStorage tsk *lib.Task log *lib.Logger - client *ethclient.Client + client bind.ContractFilterer wallet interfaces.Wallet modelConfigLoader *config.ModelConfigLoader } -func NewEventsListener(client *ethclient.Client, store *storages.SessionStorage, sessionRouter *registries.SessionRouter, wallet interfaces.Wallet, modelConfigLoader *config.ModelConfigLoader, log *lib.Logger) *EventsListener { +func NewEventsListener(client bind.ContractFilterer, store *storages.SessionStorage, sessionRouter *registries.SessionRouter, wallet interfaces.Wallet, modelConfigLoader *config.ModelConfigLoader, log *lib.Logger) *EventsListener { return &EventsListener{ store: store, log: log, diff --git a/proxy-router/internal/blockchainapi/service.go b/proxy-router/internal/blockchainapi/service.go index fd0b010e..78ad4908 100644 --- a/proxy-router/internal/blockchainapi/service.go +++ b/proxy-router/internal/blockchainapi/service.go @@ -10,7 +10,7 @@ import ( "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/sessionrouter" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/blockchainapi/structs" - "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" + i "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/proxyapi" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/registries" @@ -22,11 +22,10 @@ import ( "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/crypto" - "github.com/ethereum/go-ethereum/ethclient" ) type BlockchainService struct { - ethClient *ethclient.Client + ethClient i.EthClient providerRegistry *registries.ProviderRegistry modelRegistry *registries.ModelRegistry marketplace *registries.Marketplace @@ -38,7 +37,7 @@ type BlockchainService struct { diamonContractAddr common.Address legacyTx bool - privateKey interfaces.PrKeyProvider + privateKey i.PrKeyProvider log lib.ILogger } @@ -67,11 +66,11 @@ var ( ) func NewBlockchainService( - ethClient *ethclient.Client, + ethClient i.EthClient, diamonContractAddr common.Address, morTokenAddr common.Address, explorerApiUrl string, - privateKey interfaces.PrKeyProvider, + privateKey i.PrKeyProvider, sessionStorage *storages.SessionStorage, proxyService *proxyapi.ProxyServiceSender, log lib.ILogger, diff --git a/proxy-router/internal/interfaces/ethclient.go b/proxy-router/internal/interfaces/ethclient.go new file mode 100644 index 00000000..993d1731 --- /dev/null +++ b/proxy-router/internal/interfaces/ethclient.go @@ -0,0 +1,29 @@ +package interfaces + +import ( + "context" + "math/big" + + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" +) + +type EthClient interface { + ClientBackend + ContractBackend +} + +// ContractWaiter used to do a read/write operation on a contract and wait for the transaction to be mined +type ContractBackend interface { + bind.ContractCaller + bind.ContractFilterer + bind.ContractTransactor + bind.DeployBackend +} + +// ClientBackend used to perform non-contract related read operations on blockchain +type ClientBackend interface { + BlockNumber(context.Context) (uint64, error) + BalanceAt(context.Context, common.Address, *big.Int) (*big.Int, error) + ChainID(context.Context) (*big.Int, error) +} diff --git a/proxy-router/internal/repositories/contracts/interface.go b/proxy-router/internal/repositories/contracts/interface.go deleted file mode 100644 index 379bd730..00000000 --- a/proxy-router/internal/repositories/contracts/interface.go +++ /dev/null @@ -1,30 +0,0 @@ -package contracts - -import ( - "context" - "math/big" - - "github.com/ethereum/go-ethereum/accounts/abi/bind" - "github.com/ethereum/go-ethereum/common" -) - -type DataAccess interface { - // string used as address cause different blockchains may return different type of addresses - GetContractsIDs() ([]string, error) - GetContract(contractID string) (interface{}, error) - CloseContract(contractID string, meta interface{}) error - - OnNewContract(func(contractID string)) CloseListererFunc - OnContractUpdated(contractID string, cb func()) CloseListererFunc - OnContractClosed(contractID string, cb func()) CloseListererFunc -} - -type EthereumClient interface { - bind.ContractBackend - bind.DeployBackend - ChainID(ctx context.Context) (*big.Int, error) - BalanceAt(ctx context.Context, addr common.Address, blockNumber *big.Int) (*big.Int, error) - StorageAt(ctx context.Context, account common.Address, key common.Hash, blockNumber *big.Int) ([]byte, error) -} - -type CloseListererFunc = func() diff --git a/proxy-router/internal/repositories/contracts/subscription.go b/proxy-router/internal/repositories/contracts/subscription.go index 5876e30c..043209cd 100644 --- a/proxy-router/internal/repositories/contracts/subscription.go +++ b/proxy-router/internal/repositories/contracts/subscription.go @@ -8,6 +8,7 @@ import ( "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/sessionrouter" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/core/types" ) @@ -28,7 +29,7 @@ func BlockchainEventFactory(name string) interface{} { } // WatchContractEvents watches for all events from the contract and converts them to the concrete type, using mapper -func WatchContractEvents(ctx context.Context, client EthereumClient, contractAddr common.Address, mapper EventMapper, log lib.ILogger) (*lib.Subscription, error) { +func WatchContractEvents(ctx context.Context, client bind.ContractFilterer, contractAddr common.Address, mapper EventMapper, log lib.ILogger) (*lib.Subscription, error) { sink := make(chan interface{}) return lib.NewSubscription(func(quit <-chan struct{}) error { diff --git a/proxy-router/internal/repositories/registries/marketplace.go b/proxy-router/internal/repositories/registries/marketplace.go index af4c08d4..3c2852b1 100644 --- a/proxy-router/internal/repositories/registries/marketplace.go +++ b/proxy-router/internal/repositories/registries/marketplace.go @@ -6,10 +6,10 @@ import ( "math/big" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/marketplace" + i "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/ethclient" ) type Marketplace struct { @@ -18,11 +18,11 @@ type Marketplace struct { // deps marketplace *marketplace.Marketplace - client *ethclient.Client + client i.ContractBackend log lib.ILogger } -func NewMarketplace(marketplaceAddr common.Address, client *ethclient.Client, log lib.ILogger) *Marketplace { +func NewMarketplace(marketplaceAddr common.Address, client i.ContractBackend, log lib.ILogger) *Marketplace { mp, err := marketplace.NewMarketplace(marketplaceAddr, client) if err != nil { panic("invalid marketplace ABI") diff --git a/proxy-router/internal/repositories/registries/model_registry.go b/proxy-router/internal/repositories/registries/model_registry.go index 05b9b58d..cb9fbc1c 100644 --- a/proxy-router/internal/repositories/registries/model_registry.go +++ b/proxy-router/internal/repositories/registries/model_registry.go @@ -5,10 +5,10 @@ import ( "fmt" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/modelregistry" + i "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/ethclient" ) type ModelRegistry struct { @@ -20,11 +20,11 @@ type ModelRegistry struct { // deps modelRegistry *modelregistry.ModelRegistry - client *ethclient.Client + client i.ContractBackend log lib.ILogger } -func NewModelRegistry(modelRegistryAddr common.Address, client *ethclient.Client, log lib.ILogger) *ModelRegistry { +func NewModelRegistry(modelRegistryAddr common.Address, client i.ContractBackend, log lib.ILogger) *ModelRegistry { mr, err := modelregistry.NewModelRegistry(modelRegistryAddr, client) if err != nil { panic("invalid model registry ABI") diff --git a/proxy-router/internal/repositories/registries/mor_token.go b/proxy-router/internal/repositories/registries/mor_token.go index b5986301..f8e6ce4e 100644 --- a/proxy-router/internal/repositories/registries/mor_token.go +++ b/proxy-router/internal/repositories/registries/mor_token.go @@ -5,12 +5,12 @@ import ( "math/big" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/morpheustoken" + i "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" "github.com/ethereum/go-ethereum/accounts/abi" "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/ethclient" ) type MorToken struct { @@ -23,11 +23,11 @@ type MorToken struct { // deps mor *morpheustoken.MorpheusToken - client *ethclient.Client + client i.ContractBackend log lib.ILogger } -func NewMorToken(morTokenAddr common.Address, client *ethclient.Client, log lib.ILogger) *MorToken { +func NewMorToken(morTokenAddr common.Address, client i.ContractBackend, log lib.ILogger) *MorToken { mor, err := morpheustoken.NewMorpheusToken(morTokenAddr, client) if err != nil { panic("invalid mor ABI") diff --git a/proxy-router/internal/repositories/registries/provider_registry.go b/proxy-router/internal/repositories/registries/provider_registry.go index 66afb10a..d8a1cd09 100644 --- a/proxy-router/internal/repositories/registries/provider_registry.go +++ b/proxy-router/internal/repositories/registries/provider_registry.go @@ -5,10 +5,10 @@ import ( "fmt" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/providerregistry" + i "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/ethclient" ) type ProviderRegistry struct { @@ -20,11 +20,11 @@ type ProviderRegistry struct { // deps providerRegistry *providerregistry.ProviderRegistry - client *ethclient.Client + client i.ContractBackend log lib.ILogger } -func NewProviderRegistry(providerRegistryAddr common.Address, client *ethclient.Client, log lib.ILogger) *ProviderRegistry { +func NewProviderRegistry(providerRegistryAddr common.Address, client i.ContractBackend, log lib.ILogger) *ProviderRegistry { pr, err := providerregistry.NewProviderRegistry(providerRegistryAddr, client) if err != nil { panic("invalid provider registry ABI") diff --git a/proxy-router/internal/repositories/registries/session_router.go b/proxy-router/internal/repositories/registries/session_router.go index 8a6e2551..c019ee5d 100644 --- a/proxy-router/internal/repositories/registries/session_router.go +++ b/proxy-router/internal/repositories/registries/session_router.go @@ -7,11 +7,11 @@ import ( "time" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/sessionrouter" + i "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" "github.com/ethereum/go-ethereum/accounts/abi" "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/ethclient" ) type SessionRouter struct { @@ -24,7 +24,7 @@ type SessionRouter struct { // deps sessionRouter *sessionrouter.SessionRouter - client *ethclient.Client + client i.ContractBackend log lib.ILogger } @@ -34,7 +34,7 @@ var closeReportAbi = []lib.AbiParameter{ {Type: "uint32"}, } -func NewSessionRouter(sessionRouterAddr common.Address, client *ethclient.Client, log lib.ILogger) *SessionRouter { +func NewSessionRouter(sessionRouterAddr common.Address, client i.ContractBackend, log lib.ILogger) *SessionRouter { sr, err := sessionrouter.NewSessionRouter(sessionRouterAddr, client) if err != nil { panic("invalid marketplace ABI") From c64e37387a0fd3e05dc7ee34d5047353cd76a6d1 Mon Sep 17 00:00:00 2001 From: Aleksandr Kukharenko Date: Wed, 9 Oct 2024 17:41:41 +0300 Subject: [PATCH 037/260] feat: handle chat context on proxy --- proxy-router/.env.example | 1 + proxy-router/cmd/main.go | 11 +- proxy-router/docs/docs.go | 104 ++++++++ proxy-router/docs/swagger.json | 209 ++++++++++++--- proxy-router/docs/swagger.yaml | 145 ++++++++--- proxy-router/internal/config/config.go | 1 + .../internal/handlers/httphandlers/http.go | 2 +- .../internal/proxyapi/chat_requests.go | 6 +- .../internal/proxyapi/chat_storage.go | 202 +++++++++++++-- .../internal/proxyapi/controller_http.go | 242 +++++++++++++++--- .../internal/proxyapi/proxy_receiver.go | 3 +- proxy-router/internal/proxyapi/requests.go | 9 + ui-desktop/src/main/src/client/apiGateway.js | 108 +++++++- .../src/main/src/client/handlers/no-core.js | 2 - .../main/src/client/history/chat-history.js | 45 ---- .../main/src/client/subscriptions/no-core.js | 10 +- ui-desktop/src/renderer/src/client/index.jsx | 8 +- .../src/renderer/src/components/chat/Chat.tsx | 135 +++++----- .../src/components/chat/ChatHistory.tsx | 46 ++-- .../src/components/chat/interfaces.tsx | 47 ++++ .../src/renderer/src/components/chat/utils.js | 5 + 21 files changed, 1071 insertions(+), 270 deletions(-) delete mode 100644 ui-desktop/src/main/src/client/history/chat-history.js create mode 100644 ui-desktop/src/renderer/src/components/chat/interfaces.tsx diff --git a/proxy-router/.env.example b/proxy-router/.env.example index 10cd5964..c712674a 100644 --- a/proxy-router/.env.example +++ b/proxy-router/.env.example @@ -20,6 +20,7 @@ LOG_LEVEL_SCHEDULER=info OPENAI_API_KEY= #optional PROXY_ADDRESS=0.0.0.0:3333 PROXY_STORAGE_PATH=./data/ +PROXY_STORE_CHAT_CONTEXT=true SYS_ENABLE=false SYS_LOCAL_PORT_RANGE=1024 65535 SYS_NET_DEV_MAX_BACKLOG=100000 diff --git a/proxy-router/cmd/main.go b/proxy-router/cmd/main.go index 9e90f0b9..dcb7bc77 100644 --- a/proxy-router/cmd/main.go +++ b/proxy-router/cmd/main.go @@ -225,8 +225,15 @@ func start() error { blockchainController := blockchainapi.NewBlockchainController(blockchainApi, log) - chatStoragePath := filepath.Join(cfg.Proxy.StoragePath, "chat") - chatStorage := proxyapi.NewChatStorage(chatStoragePath) + var chatStorage proxyapi.ChatStorageInterface + if cfg.Proxy.StoreChatContext { + chatStoragePath := filepath.Join(cfg.Proxy.StoragePath, "chats") + chatStorage = proxyapi.NewChatStorage(chatStoragePath) + } else { + log.Warnf("chat context storage is disabled") + chatStorage = proxyapi.NewNoOpChatStorage() + } + proxyController := proxyapi.NewProxyController(proxyRouterApi, aiEngine, chatStorage) walletController := walletapi.NewWalletController(wallet) systemController := system.NewSystemController(&cfg, wallet, sysConfig, appStartTime, chainID, log) diff --git a/proxy-router/docs/docs.go b/proxy-router/docs/docs.go index e0500907..368b7027 100644 --- a/proxy-router/docs/docs.go +++ b/proxy-router/docs/docs.go @@ -1093,6 +1093,56 @@ const docTemplate = `{ } } }, + "/v1/chats": { + "get": { + "produces": [ + "application/json" + ], + "tags": [ + "chat" + ], + "summary": "Get all chats stored in the system", + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/proxyapi.Chat" + } + } + } + } + } + }, + "/v1/chats/{id}": { + "get": { + "produces": [ + "application/json" + ], + "tags": [ + "chat" + ], + "summary": "Get chat by id", + "parameters": [ + { + "type": "string", + "description": "Chat ID", + "name": "id", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/proxyapi.ChatHistory" + } + } + } + } + }, "/v1/models": { "get": { "produces": [ @@ -1272,6 +1322,23 @@ const docTemplate = `{ } } }, + "proxyapi.Chat": { + "type": "object", + "properties": { + "chatId": { + "type": "string" + }, + "createdAt": { + "type": "integer" + }, + "modelId": { + "type": "string" + }, + "title": { + "type": "string" + } + } + }, "proxyapi.ChatCompletionChoice": { "type": "object", "properties": { @@ -1370,6 +1437,43 @@ const docTemplate = `{ } } }, + "proxyapi.ChatHistory": { + "type": "object", + "properties": { + "messages": { + "type": "array", + "items": { + "$ref": "#/definitions/proxyapi.ChatMessage" + } + }, + "modelId": { + "type": "string" + }, + "title": { + "type": "string" + } + } + }, + "proxyapi.ChatMessage": { + "type": "object", + "properties": { + "isImageContent": { + "type": "boolean" + }, + "prompt": { + "$ref": "#/definitions/proxyapi.OpenAiCompletitionRequest" + }, + "promptAt": { + "type": "integer" + }, + "response": { + "type": "string" + }, + "responseAt": { + "type": "integer" + } + } + }, "proxyapi.ChatMessageImageURL": { "type": "object", "properties": { diff --git a/proxy-router/docs/swagger.json b/proxy-router/docs/swagger.json index cf46038e..0b202714 100644 --- a/proxy-router/docs/swagger.json +++ b/proxy-router/docs/swagger.json @@ -1086,6 +1086,117 @@ } } }, + "/v1/chats": { + "get": { + "produces": [ + "application/json" + ], + "tags": [ + "chat" + ], + "summary": "Get all chats stored in the system", + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/proxyapi.Chat" + } + } + } + } + } + }, + "/v1/chats/{id}": { + "get": { + "produces": [ + "application/json" + ], + "tags": [ + "chat" + ], + "summary": "Get chat by id", + "parameters": [ + { + "type": "string", + "description": "Chat ID", + "name": "id", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/proxyapi.ChatHistory" + } + } + } + }, + "post": { + "produces": [ + "application/json" + ], + "tags": [ + "chat" + ], + "summary": "Update chat title by id", + "parameters": [ + { + "type": "string", + "description": "Chat ID", + "name": "id", + "in": "path", + "required": true + }, + { + "description": "Chat Title", + "name": "title", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/proxyapi.UpdateChatTitleReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/proxyapi.ResultResponse" + } + } + } + }, + "delete": { + "produces": [ + "application/json" + ], + "tags": [ + "chat" + ], + "summary": "Delete chat by id from storage", + "parameters": [ + { + "type": "string", + "description": "Chat ID", + "name": "id", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/proxyapi.ResultResponse" + } + } + } + } + }, "/v1/models": { "get": { "produces": [ @@ -1265,6 +1376,23 @@ } } }, + "proxyapi.Chat": { + "type": "object", + "properties": { + "chatId": { + "type": "string" + }, + "createdAt": { + "type": "integer" + }, + "modelId": { + "type": "string" + }, + "title": { + "type": "string" + } + } + }, "proxyapi.ChatCompletionChoice": { "type": "object", "properties": { @@ -1307,12 +1435,6 @@ "content": { "type": "string" }, - "multiContent": { - "type": "array", - "items": { - "$ref": "#/definitions/proxyapi.ChatMessagePart" - } - }, "name": { "description": "This property isn't in the official documentation, but it's in\nthe documentation for the official library for python:\n- https://github.com/openai/openai-python/blob/main/chatml.md\n- https://github.com/openai/openai-cookbook/blob/main/examples/How_to_count_tokens_with_tiktoken.ipynb", "type": "string" @@ -1363,42 +1485,43 @@ } } }, - "proxyapi.ChatMessageImageURL": { + "proxyapi.ChatHistory": { "type": "object", "properties": { - "detail": { - "$ref": "#/definitions/proxyapi.ImageURLDetail" + "messages": { + "type": "array", + "items": { + "$ref": "#/definitions/proxyapi.ChatMessage" + } + }, + "modelId": { + "type": "string" }, - "url": { + "title": { "type": "string" } } }, - "proxyapi.ChatMessagePart": { + "proxyapi.ChatMessage": { "type": "object", "properties": { - "image_url": { - "$ref": "#/definitions/proxyapi.ChatMessageImageURL" + "isImageContent": { + "type": "boolean" + }, + "prompt": { + "$ref": "#/definitions/proxyapi.OpenAiCompletitionRequest" }, - "text": { + "promptAt": { + "type": "integer" + }, + "response": { "type": "string" }, - "type": { - "$ref": "#/definitions/proxyapi.ChatMessagePartType" + "responseAt": { + "type": "integer" } } }, - "proxyapi.ChatMessagePartType": { - "type": "string", - "enum": [ - "text", - "image_url" - ], - "x-enum-varnames": [ - "ChatMessagePartTypeText", - "ChatMessagePartTypeImageURL" - ] - }, "proxyapi.FinishReason": { "type": "string", "enum": [ @@ -1408,19 +1531,6 @@ "FinishReasonStop" ] }, - "proxyapi.ImageURLDetail": { - "type": "string", - "enum": [ - "high", - "low", - "auto" - ], - "x-enum-varnames": [ - "ImageURLDetailHigh", - "ImageURLDetailLow", - "ImageURLDetailAuto" - ] - }, "proxyapi.InitiateSessionReq": { "type": "object", "required": [ @@ -1556,6 +1666,14 @@ } } }, + "proxyapi.ResultResponse": { + "type": "object", + "properties": { + "result": { + "type": "boolean" + } + } + }, "proxyapi.TopLogProbs": { "type": "object", "properties": { @@ -1573,6 +1691,17 @@ } } }, + "proxyapi.UpdateChatTitleReq": { + "type": "object", + "required": [ + "title" + ], + "properties": { + "title": { + "type": "string" + } + } + }, "proxyapi.Usage": { "type": "object", "properties": { diff --git a/proxy-router/docs/swagger.yaml b/proxy-router/docs/swagger.yaml index c68ee866..59c5fb82 100644 --- a/proxy-router/docs/swagger.yaml +++ b/proxy-router/docs/swagger.yaml @@ -33,6 +33,17 @@ definitions: - timestamp - user type: object + proxyapi.Chat: + properties: + chatId: + type: string + createdAt: + type: integer + modelId: + type: string + title: + type: string + type: object proxyapi.ChatCompletionChoice: properties: delta: @@ -66,10 +77,6 @@ definitions: properties: content: type: string - multiContent: - items: - $ref: '#/definitions/proxyapi.ChatMessagePart' - type: array name: description: |- This property isn't in the official documentation, but it's in @@ -108,46 +115,36 @@ definitions: type: type: string type: object - proxyapi.ChatMessageImageURL: + proxyapi.ChatHistory: properties: - detail: - $ref: '#/definitions/proxyapi.ImageURLDetail' - url: + messages: + items: + $ref: '#/definitions/proxyapi.ChatMessage' + type: array + modelId: + type: string + title: type: string type: object - proxyapi.ChatMessagePart: + proxyapi.ChatMessage: properties: - image_url: - $ref: '#/definitions/proxyapi.ChatMessageImageURL' - text: + isImageContent: + type: boolean + prompt: + $ref: '#/definitions/proxyapi.OpenAiCompletitionRequest' + promptAt: + type: integer + response: type: string - type: - $ref: '#/definitions/proxyapi.ChatMessagePartType' + responseAt: + type: integer type: object - proxyapi.ChatMessagePartType: - enum: - - text - - image_url - type: string - x-enum-varnames: - - ChatMessagePartTypeText - - ChatMessagePartTypeImageURL proxyapi.FinishReason: enum: - stop type: string x-enum-varnames: - FinishReasonStop - proxyapi.ImageURLDetail: - enum: - - high - - low - - auto - type: string - x-enum-varnames: - - ImageURLDetailHigh - - ImageURLDetailLow - - ImageURLDetailAuto proxyapi.InitiateSessionReq: properties: bidId: @@ -252,6 +249,11 @@ definitions: user: type: string type: object + proxyapi.ResultResponse: + properties: + result: + type: boolean + type: object proxyapi.TopLogProbs: properties: bytes: @@ -263,6 +265,13 @@ definitions: token: type: string type: object + proxyapi.UpdateChatTitleReq: + properties: + title: + type: string + required: + - title + type: object proxyapi.Usage: properties: completion_tokens: @@ -1352,6 +1361,78 @@ paths: summary: Send Local Or Remote Prompt tags: - chat + /v1/chats: + get: + produces: + - application/json + responses: + "200": + description: OK + schema: + items: + $ref: '#/definitions/proxyapi.Chat' + type: array + summary: Get all chats stored in the system + tags: + - chat + /v1/chats/{id}: + delete: + parameters: + - description: Chat ID + in: path + name: id + required: true + type: string + produces: + - application/json + responses: + "200": + description: OK + schema: + $ref: '#/definitions/proxyapi.ResultResponse' + summary: Delete chat by id from storage + tags: + - chat + get: + parameters: + - description: Chat ID + in: path + name: id + required: true + type: string + produces: + - application/json + responses: + "200": + description: OK + schema: + $ref: '#/definitions/proxyapi.ChatHistory' + summary: Get chat by id + tags: + - chat + post: + parameters: + - description: Chat ID + in: path + name: id + required: true + type: string + - description: Chat Title + in: body + name: title + required: true + schema: + $ref: '#/definitions/proxyapi.UpdateChatTitleReq' + produces: + - application/json + responses: + "200": + description: OK + schema: + $ref: '#/definitions/proxyapi.ResultResponse' + summary: Update chat title by id + tags: + - chat /v1/models: get: produces: diff --git a/proxy-router/internal/config/config.go b/proxy-router/internal/config/config.go index 3fcf7510..9dd323cd 100644 --- a/proxy-router/internal/config/config.go +++ b/proxy-router/internal/config/config.go @@ -46,6 +46,7 @@ type Config struct { Address string `env:"PROXY_ADDRESS" flag:"proxy-address" validate:"required,hostname_port"` MaxCachedDests int `env:"PROXY_MAX_CACHED_DESTS" flag:"proxy-max-cached-dests" validate:"required,number" desc:"maximum number of cached destinations per proxy"` StoragePath string `env:"PROXY_STORAGE_PATH" flag:"proxy-storage-path" validate:"omitempty,dirpath" desc:"enables file storage and sets the folder path"` + StoreChatContext bool `env:"PROXY_STORE_CHAT_CONTEXT" flag:"proxy-store-chat-context" desc:"store chat context in the proxy storage"` ModelsConfigPath string `env:"MODELS_CONFIG_PATH" flag:"models-config-path" validate:"omitempty"` } System struct { diff --git a/proxy-router/internal/handlers/httphandlers/http.go b/proxy-router/internal/handlers/httphandlers/http.go index 6f96504d..c5de7754 100644 --- a/proxy-router/internal/handlers/httphandlers/http.go +++ b/proxy-router/internal/handlers/httphandlers/http.go @@ -55,7 +55,7 @@ func CreateHTTPServer(log lib.ILogger, controllers ...Registrable) *gin.Engine { r.Use(cors.New(cors.Config{ AllowOrigins: []string{"*"}, - AllowHeaders: []string{"session_id", "model_id"}, + AllowHeaders: []string{"session_id", "model_id", "chat_id"}, })) // r.Use(RequestLogger(log)) diff --git a/proxy-router/internal/proxyapi/chat_requests.go b/proxy-router/internal/proxyapi/chat_requests.go index 23ccb273..ad5c08f1 100644 --- a/proxy-router/internal/proxyapi/chat_requests.go +++ b/proxy-router/internal/proxyapi/chat_requests.go @@ -27,9 +27,9 @@ type ChatMessagePart struct { } type ChatCompletionMessage struct { - Role string `json:"role"` - Content string `json:"content"` - MultiContent []ChatMessagePart + Role string `json:"role"` + Content string `json:"content"` + // MultiContent []ChatMessagePart `json:"multiContent",omitempty` // This property isn't in the official documentation, but it's in // the documentation for the official library for python: diff --git a/proxy-router/internal/proxyapi/chat_storage.go b/proxy-router/internal/proxyapi/chat_storage.go index 7c2c442d..e2bf00e9 100644 --- a/proxy-router/internal/proxyapi/chat_storage.go +++ b/proxy-router/internal/proxyapi/chat_storage.go @@ -12,6 +12,34 @@ import ( "github.com/sashabaranov/go-openai" ) +type ChatStorageInterface interface { + LoadChatFromFile(chatID string) (*ChatHistory, error) + StorePromptResponseToFile(chatID string, sessionID string, modelID string, prompt openai.ChatCompletionRequest, responses []interface{}, promptAt time.Time, responseAt time.Time) error + GetChats() []Chat + DeleteChat(chatID string) error + UpdateChatTitle(chatID string, title string) error +} + +type ChatHistory struct { + Title string `json:"title"` + ModelId string `json:"modelId"` + Messages []ChatMessage `json:"messages"` +} + +type ChatMessage struct { + Prompt OpenAiCompletitionRequest `json:"prompt"` + Response string `json:"response"` + PromptAt int64 `json:"promptAt"` + ResponseAt int64 `json:"responseAt"` + IsImageContent bool `json:"isImageContent"` +} +type Chat struct { + ChatID string `json:"chatId"` + ModelID string `json:"modelId"` + Title string `json:"title"` + CreatedAt int64 `json:"createdAt"` +} + // ChatStorage handles storing conversations to files. type ChatStorage struct { dirPath string // Directory path to store the files @@ -27,27 +55,19 @@ func NewChatStorage(dirPath string) *ChatStorage { } // StorePromptResponseToFile stores the prompt and response to a file. -func (cs *ChatStorage) StorePromptResponseToFile(identifier string, isSession bool, prompt interface{}, responses []interface{}, promptAt, responseAt time.Time) error { - var dir string - if isSession { - dir = "sessions" - } else { - dir = "models" - } - - path := filepath.Join(cs.dirPath, dir) - if err := os.MkdirAll(path, os.ModePerm); err != nil { +func (cs *ChatStorage) StorePromptResponseToFile(identifier string, sessionId string, modelId string, prompt openai.ChatCompletionRequest, responses []interface{}, promptAt, responseAt time.Time) error { + if err := os.MkdirAll(cs.dirPath, os.ModePerm); err != nil { return err } - filePath := filepath.Join(path, identifier+".json") + filePath := filepath.Join(cs.dirPath, identifier+".json") cs.initFileMutex(filePath) // Lock the file mutex cs.fileMutexes[filePath].Lock() defer cs.fileMutexes[filePath].Unlock() - var data []map[string]interface{} + var data ChatHistory if _, err := os.Stat(filePath); err == nil { fileContent, err := os.ReadFile(filePath) if err != nil { @@ -59,6 +79,7 @@ func (cs *ChatStorage) StorePromptResponseToFile(identifier string, isSession bo } response := "" + var isImageContent bool = false for _, r := range responses { switch v := r.(type) { case ChatCompletionResponse: @@ -67,26 +88,50 @@ func (cs *ChatStorage) StorePromptResponseToFile(identifier string, isSession bo response += fmt.Sprintf("%v", v.Choices[0].Delta.Content) case aiengine.ProdiaGenerationResult: response += fmt.Sprintf("%v", v.ImageUrl) + isImageContent = true case *aiengine.ProdiaGenerationResult: response += fmt.Sprintf("%v", v.ImageUrl) + isImageContent = true default: return fmt.Errorf("unknown response type") } } - switch p := prompt.(type) { - case *aiengine.ProdiaGenerationRequest: - p.ApiKey = "REDACTED" + messages := make([]ChatCompletionMessage, 0) + for _, r := range prompt.Messages { + messages = append(messages, ChatCompletionMessage{ + Content: r.Content, + Role: r.Role, + }) + } + + p := OpenAiCompletitionRequest{ + Messages: messages, + Model: prompt.Model, + MaxTokens: prompt.MaxTokens, + Temperature: prompt.Temperature, + TopP: prompt.TopP, + FrequencyPenalty: prompt.FrequencyPenalty, + PresencePenalty: prompt.PresencePenalty, + Stop: prompt.Stop, } - newEntry := map[string]interface{}{ - "prompt": prompt, - "response": response, - "promptAt": promptAt.UnixMilli(), - "responseAt": responseAt.UnixMilli(), + newEntry := ChatMessage{ + Prompt: p, + Response: response, + PromptAt: promptAt.Unix(), + ResponseAt: responseAt.Unix(), + IsImageContent: isImageContent, } - data = append(data, newEntry) + if data.Messages == nil && len(data.Messages) == 0 { + data.ModelId = modelId + data.Title = prompt.Messages[0].Content + } + + newMessages := append(data.Messages, newEntry) + data.Messages = newMessages + updatedContent, err := json.MarshalIndent(data, "", " ") if err != nil { return err @@ -99,9 +144,124 @@ func (cs *ChatStorage) StorePromptResponseToFile(identifier string, isSession bo return nil } +func (cs *ChatStorage) GetChats() []Chat { + var chats []Chat + files, err := os.ReadDir(cs.dirPath) + if err != nil { + return chats + } + + for _, file := range files { + if file.IsDir() { + continue + } + + chatID := file.Name() + chatID = chatID[:len(chatID)-5] + + fileContent, err := cs.LoadChatFromFile(chatID) + if err != nil { + continue + } + chats = append(chats, Chat{ + ChatID: chatID, + Title: fileContent.Title, + CreatedAt: fileContent.Messages[0].PromptAt, + ModelID: fileContent.ModelId, + }) + } + + return chats +} + +func (cs *ChatStorage) DeleteChat(identifier string) error { + filePath := filepath.Join(cs.dirPath, identifier+".json") + cs.initFileMutex(filePath) + + cs.fileMutexes[filePath].Lock() + defer cs.fileMutexes[filePath].Unlock() + + if err := os.Remove(filePath); err != nil { + return err + } + return nil +} + +func (cs *ChatStorage) UpdateChatTitle(identifier string, title string) error { + chat, err := cs.LoadChatFromFile(identifier) + if err != nil { + return err + } + chat.Title = title + + filePath := filepath.Join(cs.dirPath, identifier+".json") + cs.initFileMutex(filePath) + + cs.fileMutexes[filePath].Lock() + defer cs.fileMutexes[filePath].Unlock() + + updatedContent, err := json.MarshalIndent(chat, "", " ") + if err != nil { + return err + } + + if err := os.WriteFile(filePath, updatedContent, 0644); err != nil { + return err + } + + return nil +} + +func (cs *ChatStorage) LoadChatFromFile(identifier string) (*ChatHistory, error) { + filePath := filepath.Join(cs.dirPath, identifier+".json") + cs.initFileMutex(filePath) + + cs.fileMutexes[filePath].Lock() + defer cs.fileMutexes[filePath].Unlock() + + var data ChatHistory + fileContent, err := os.ReadFile(filePath) + if err != nil { + return &data, err + } + + if err := json.Unmarshal(fileContent, &data); err != nil { + fmt.Println("Error unmarshalling file content:", err) + return nil, err + } + + return &data, nil +} + // initFileMutex initializes a mutex for the file if not already present. func (cs *ChatStorage) initFileMutex(filePath string) { if _, exists := cs.fileMutexes[filePath]; !exists { cs.fileMutexes[filePath] = &sync.Mutex{} } } + +type NoOpChatStorage struct{} + +func NewNoOpChatStorage() *NoOpChatStorage { + return &NoOpChatStorage{} +} + +func (cs *NoOpChatStorage) LoadChatFromFile(chatID string) (*ChatHistory, error) { + return nil, nil +} + +func (cs *NoOpChatStorage) StorePromptResponseToFile(chatID string, sessionID string, modelID string, prompt openai.ChatCompletionRequest, responses []interface{}, promptAt time.Time, responseAt time.Time) error { + return nil +} + +func (cs *NoOpChatStorage) GetChats() []Chat { + return []Chat{} +} + +func (cs *NoOpChatStorage) DeleteChat(chatID string) error { + return nil +} + +func (cs *NoOpChatStorage) UpdateChatTitle(chatID string, title string) error { + return nil +} diff --git a/proxy-router/internal/proxyapi/controller_http.go b/proxy-router/internal/proxyapi/controller_http.go index 3d1e38a4..c70a3f7c 100644 --- a/proxy-router/internal/proxyapi/controller_http.go +++ b/proxy-router/internal/proxyapi/controller_http.go @@ -1,6 +1,7 @@ package proxyapi import ( + "crypto/rand" "encoding/json" "fmt" "net/http" @@ -8,6 +9,7 @@ import ( constants "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/aiengine" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/blockchainapi/structs" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" "github.com/gin-gonic/gin" @@ -17,10 +19,10 @@ import ( type ProxyController struct { service *ProxyServiceSender aiEngine *aiengine.AiEngine - chatStorage *ChatStorage + chatStorage ChatStorageInterface } -func NewProxyController(service *ProxyServiceSender, aiEngine *aiengine.AiEngine, chatStorage *ChatStorage) *ProxyController { +func NewProxyController(service *ProxyServiceSender, aiEngine *aiengine.AiEngine, chatStorage ChatStorageInterface) *ProxyController { c := &ProxyController{ service: service, aiEngine: aiEngine, @@ -34,6 +36,10 @@ func (s *ProxyController) RegisterRoutes(r interfaces.Router) { r.POST("/proxy/sessions/initiate", s.InitiateSession) r.POST("/v1/chat/completions", s.Prompt) r.GET("/v1/models", s.Models) + r.GET("/v1/chats", s.GetChats) + r.GET("/v1/chats/:id", s.GetChat) + r.DELETE("/v1/chats/:id", s.DeleteChat) + r.POST("/v1/chats/:id", s.UpdateChatTitle) } // InitiateSession godoc @@ -89,26 +95,55 @@ func (c *ProxyController) Prompt(ctx *gin.Context) { return } - // Record the prompt time + var chatID lib.Hash + if (head.ChatID != lib.Hash{}) { + chatID = head.ChatID + } else { + bytes := make([]byte, 32) + _, err := rand.Read(bytes[:]) + if err != nil { + err = fmt.Errorf("error generating chat id: %w", err) + ctx.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + } + + chatID = lib.Hash{} + chatID.SetBytes(bytes) + } + promptAt := time.Now() + chatHistory, errHistory := c.chatStorage.LoadChatFromFile(chatID.Hex()) + if errHistory != nil { + c.service.log.Warn("No chat history found for chat id", chatID.Hex()) + } if (head.SessionID == lib.Hash{}) { body.Stream = ctx.GetHeader(constants.HEADER_ACCEPT) == constants.CONTENT_TYPE_JSON modelId := head.ModelID.Hex() - prompt, t := c.GetBodyForLocalPrompt(modelId, &body) + apiType := c.GetLocalPromptApiType(modelId) + responseAt := time.Now() - if t == "openai" { - res, _ := c.aiEngine.PromptCb(ctx, &body) + if apiType == "openai" { + prompt := c.GetLocalOpenAiPrompt(modelId, body) + var newBody openai.ChatCompletionRequest + if chatHistory != nil { + newBody = c.AppendChatHistory(chatHistory, prompt) + } else { + newBody = prompt + } + + res, _ := c.aiEngine.PromptCb(ctx, &newBody) responses = res.([]interface{}) - if err := c.chatStorage.StorePromptResponseToFile(modelId, false, prompt, responses, promptAt, responseAt); err != nil { + if err := c.chatStorage.StorePromptResponseToFile(chatID.Hex(), "", modelId, prompt, responses, promptAt, responseAt); err != nil { fmt.Println("Error storing prompt and responses:", err) } } - if t == "prodia" { + if apiType == "prodia" { + prompt := c.GetLocalProdiaPrompt(modelId, body) + var prodiaResponses []interface{} - c.aiEngine.PromptProdiaImage(ctx, prompt.(*aiengine.ProdiaGenerationRequest), func(completion interface{}) error { + c.aiEngine.PromptProdiaImage(ctx, &prompt, func(completion interface{}) error { ctx.Writer.Header().Set(constants.HEADER_CONTENT_TYPE, constants.CONTENT_TYPE_EVENT_STREAM) marshalledResponse, err := json.Marshal(completion) if err != nil { @@ -121,7 +156,9 @@ func (c *ProxyController) Prompt(ctx *gin.Context) { ctx.Writer.Flush() prodiaResponses = append(prodiaResponses, completion) - if err := c.chatStorage.StorePromptResponseToFile(modelId, false, prompt, prodiaResponses, promptAt, responseAt); err != nil { + + body.Model = prompt.Model + if err := c.chatStorage.StorePromptResponseToFile(chatID.Hex(), "", modelId, body, prodiaResponses, promptAt, responseAt); err != nil { fmt.Println("Error storing prompt and responses:", err) } return nil @@ -130,7 +167,13 @@ func (c *ProxyController) Prompt(ctx *gin.Context) { return } - res, err := c.service.SendPrompt(ctx, ctx.Writer, &body, head.SessionID.Hash) + var newBody openai.ChatCompletionRequest + if chatHistory != nil { + newBody = c.AppendChatHistory(chatHistory, body) + } else { + newBody = body + } + res, err := c.service.SendPrompt(ctx, ctx.Writer, &newBody, head.SessionID.Hash) if err != nil { ctx.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) return @@ -138,8 +181,15 @@ func (c *ProxyController) Prompt(ctx *gin.Context) { responses = res.([]interface{}) responseAt := time.Now() - sessionIdStr := head.SessionID.Hex() - if err := c.chatStorage.StorePromptResponseToFile(sessionIdStr, true, body, responses, promptAt, responseAt); err != nil { + sessionID := head.SessionID.Hex() + + modelId := "" + session, ok := c.service.sessionStorage.GetSession(sessionID) + if ok { + modelId = session.ModelID + } + + if err := c.chatStorage.StorePromptResponseToFile(chatID.Hex(), sessionID, modelId, body, responses, promptAt, responseAt); err != nil { fmt.Println("Error storing prompt and responses:", err) } return @@ -161,35 +211,165 @@ func (c *ProxyController) Models(ctx *gin.Context) { ctx.JSON(http.StatusOK, models) } -func (c *ProxyController) GetBodyForLocalPrompt(modelId string, req *openai.ChatCompletionRequest) (interface{}, string) { +// GetChats godoc +// +// @Summary Get all chats stored in the system +// @Tags chat +// @Produce json +// @Success 200 {object} []proxyapi.Chat +// @Router /v1/chats [get] +func (c *ProxyController) GetChats(ctx *gin.Context) { + chats := c.chatStorage.GetChats() + ctx.JSON(http.StatusOK, chats) +} + +// GetChat godoc +// +// @Summary Get chat by id +// @Tags chat +// @Produce json +// @Param id path string true "Chat ID" +// @Success 200 {object} proxyapi.ChatHistory +// @Router /v1/chats/{id} [get] +func (c *ProxyController) GetChat(ctx *gin.Context) { + var params structs.PathHex32ID + err := ctx.ShouldBindUri(¶ms) + if err != nil { + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) + return + } + + chat, err := c.chatStorage.LoadChatFromFile(params.ID.Hex()) + if err != nil { + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) + return + } + ctx.JSON(http.StatusOK, chat) +} + +// DeleteChat godoc +// +// @Summary Delete chat by id from storage +// @Tags chat +// @Produce json +// @Param id path string true "Chat ID" +// @Success 200 {object} proxyapi.ResultResponse +// @Router /v1/chats/{id} [delete] +func (c *ProxyController) DeleteChat(ctx *gin.Context) { + var params structs.PathHex32ID + err := ctx.ShouldBindUri(¶ms) + if err != nil { + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) + return + } + + err = c.chatStorage.DeleteChat(params.ID.Hex()) + if err != nil { + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) + return + } + ctx.JSON(http.StatusOK, gin.H{"result": true}) +} + +// UpdateChatTitle godoc +// +// @Summary Update chat title by id +// @Tags chat +// @Produce json +// @Param id path string true "Chat ID" +// @Param title body proxyapi.UpdateChatTitleReq true "Chat Title" +// @Success 200 {object} proxyapi.ResultResponse +// @Router /v1/chats/{id} [post] +func (c *ProxyController) UpdateChatTitle(ctx *gin.Context) { + var params structs.PathHex32ID + err := ctx.ShouldBindUri(¶ms) + if err != nil { + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) + return + } + + var req UpdateChatTitleReq + err = ctx.ShouldBindJSON(&req) + if err != nil { + c.service.log.Errorf("error binding json: %s", err) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) + return + } + + err = c.chatStorage.UpdateChatTitle(params.ID.Hex(), req.Title) + if err != nil { + ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) + return + } + ctx.JSON(http.StatusOK, gin.H{"result": true}) +} + +func (c *ProxyController) GetLocalOpenAiPrompt(modelId string, req openai.ChatCompletionRequest) openai.ChatCompletionRequest { if modelId == "" { - req.Model = "llama2" - return req, "openai" + return req } ids, models := c.aiEngine.GetModelsConfig() for i, model := range models { if ids[i] == modelId { - if model.ApiType == "openai" { - req.Model = model.ModelName - return req, model.ApiType - } + req.Model = model.ModelName + return req + } + } - if model.ApiType == "prodia" { - prompt := &aiengine.ProdiaGenerationRequest{ - Model: model.ModelName, - Prompt: req.Messages[0].Content, - ApiUrl: model.ApiURL, - ApiKey: model.ApiKey, - } - return prompt, model.ApiType + req.Model = "llama2" + return req +} + +func (c *ProxyController) GetLocalProdiaPrompt(modelId string, req openai.ChatCompletionRequest) aiengine.ProdiaGenerationRequest { + ids, models := c.aiEngine.GetModelsConfig() + + for i, model := range models { + if ids[i] == modelId { + prompt := aiengine.ProdiaGenerationRequest{ + Model: model.ModelName, + Prompt: req.Messages[0].Content, + ApiUrl: model.ApiURL, + ApiKey: model.ApiKey, } + return prompt + } + } + return aiengine.ProdiaGenerationRequest{} +} + +func (c *ProxyController) GetLocalPromptApiType(modelId string) string { + if modelId == "" { + return "openai" + } - return req, "openai" + ids, models := c.aiEngine.GetModelsConfig() + + for i, model := range models { + if ids[i] == modelId { + return model.ApiType } } - req.Model = "llama2" - return req, "openai" + return "openai" +} + +func (c *ProxyController) AppendChatHistory(chatHistory *ChatHistory, req openai.ChatCompletionRequest) openai.ChatCompletionRequest { + messagesWithHistory := make([]openai.ChatCompletionMessage, 0) + for _, chat := range chatHistory.Messages { + message := openai.ChatCompletionMessage{ + Role: chat.Prompt.Messages[0].Role, + Content: chat.Prompt.Messages[0].Content, + } + messagesWithHistory = append(messagesWithHistory, message) + messagesWithHistory = append(messagesWithHistory, openai.ChatCompletionMessage{ + Role: "assistant", + Content: chat.Response, + }) + } + + messagesWithHistory = append(messagesWithHistory, req.Messages...) + req.Messages = messagesWithHistory + return req } diff --git a/proxy-router/internal/proxyapi/proxy_receiver.go b/proxy-router/internal/proxyapi/proxy_receiver.go index 11182487..a92c564a 100644 --- a/proxy-router/internal/proxyapi/proxy_receiver.go +++ b/proxy-router/internal/proxyapi/proxy_receiver.go @@ -103,8 +103,9 @@ func (s *ProxyReceiver) SessionPrompt(ctx context.Context, requestID string, use if session.ModelApiType == "prodia" { modelConfig := s.modelConfigLoader.ModelConfigFromID(session.ModelID) + lastMessage := req.Messages[len(req.Messages)-1] prodiaReq := &aiengine.ProdiaGenerationRequest{ - Prompt: req.Messages[0].Content, + Prompt: lastMessage.Content, Model: session.ModelName, ApiUrl: modelConfig.ApiURL, ApiKey: modelConfig.ApiKey, diff --git a/proxy-router/internal/proxyapi/requests.go b/proxy-router/internal/proxyapi/requests.go index 7664b796..93bc4299 100644 --- a/proxy-router/internal/proxyapi/requests.go +++ b/proxy-router/internal/proxyapi/requests.go @@ -24,6 +24,7 @@ type PromptReq struct { type PromptHead struct { SessionID lib.Hash `header:"session_id" validate:"hex32"` ModelID lib.Hash `header:"model_id" validate:"hex32"` + ChatID lib.Hash `header:"chat_id" validate:"hex32"` } type InferenceRes struct { @@ -31,3 +32,11 @@ type InferenceRes struct { Message json.RawMessage `json:"message" validate:"required"` Timestamp uint64 `json:"timestamp" validate:"required,timestamp"` } + +type UpdateChatTitleReq struct { + Title string `json:"title" validate:"required"` +} + +type ResultResponse struct { + Result bool `json:"result"` +} diff --git a/ui-desktop/src/main/src/client/apiGateway.js b/ui-desktop/src/main/src/client/apiGateway.js index e438e766..3c08c0cf 100644 --- a/ui-desktop/src/main/src/client/apiGateway.js +++ b/ui-desktop/src/main/src/client/apiGateway.js @@ -114,6 +114,108 @@ const getTokenSupply = async () => { } } +/** + * + * @returns {{ + * title: string, + * chatId: string[] + * }} + */ +const getChatHistoryTitles = async () => { + try { + const path = `${config.chain.localProxyRouterUrl}/v1/chats`; + const response = await fetch(path); + const body = await response.json(); + return body; + } + catch (e) { + console.log("Error", e) + return null; + } +} + +/** + * @typedef ChatHistory + * @property {string} title + * @property {string} modelId + * @property {string} sessionId + * @property {ChatMessage[]} messages + */ + +/** + * @typedef ChatMessage + * @property {string} response + * @property {string} prompt + * @property {number} promptAt + * @property {number} responseAt + */ + +/** + * @typedef ChatPrompt + * @property {string} model + * @property {{ + * role: string, + * content: string + * }[]} messages + */ + +/** + * @param {string} chatId + * @returns {Promise} +*/ +const getChatHistory = async (chatId) => { + try { + const path = `${config.chain.localProxyRouterUrl}/v1/chats/${chatId}`; + const response = await fetch(path); + const body = await response.json(); + return body; + } + catch (e) { + console.log("Error", e) + return null; + } +} + +/** + * @param {string} chatId + * @returns {Promise} +*/ +const deleteChatHistory = async (chatId) => { + try { + const path = `${config.chain.localProxyRouterUrl}/v1/chats/${chatId}`; + const response = await fetch(path, { + method: "DELETE", + }); + const body = await response.json(); + return body.result; + } + catch (e) { + console.log("Error", e) + return false; + } + } + + /** + * @param {string} chatId + * @param {string} title + * @returns {Promise} +*/ +const updateChatHistoryTitle = async ({ id, title}) => { + try { + const path = `${config.chain.localProxyRouterUrl}/v1/chats/${id}`; + const response = await fetch(path, { + method: "POST", + body: JSON.stringify({ title }), + }); + const body = await response.json(); + return body.result; + } + catch (e) { + console.log("Error", e) + return false; + } + } + export default { getAllModels, getBalances, @@ -122,5 +224,9 @@ export default { getTransactions, getMorRate, getTodaysBudget, - getTokenSupply + getTokenSupply, + getChatHistoryTitles, + getChatHistory, + updateChatHistoryTitle, + deleteChatHistory, } \ No newline at end of file diff --git a/ui-desktop/src/main/src/client/handlers/no-core.js b/ui-desktop/src/main/src/client/handlers/no-core.js index a2cbcfdf..14c16273 100644 --- a/ui-desktop/src/main/src/client/handlers/no-core.js +++ b/ui-desktop/src/main/src/client/handlers/no-core.js @@ -15,7 +15,6 @@ import { setKey } from '../settings' import apiGateway from '../apiGateway'; -import chatHistory from '../history/chat-history'; const validatePassword = (data) => auth.isValidPassword(data) @@ -116,5 +115,4 @@ export default { getAutoAdjustPriceData, setAutoAdjustPriceData, ...apiGateway, - ...chatHistory } diff --git a/ui-desktop/src/main/src/client/history/chat-history.js b/ui-desktop/src/main/src/client/history/chat-history.js deleted file mode 100644 index 87f5e2c0..00000000 --- a/ui-desktop/src/main/src/client/history/chat-history.js +++ /dev/null @@ -1,45 +0,0 @@ -import dbManager from '../database'; - -const getChatHitory = async (sessionId) => { - return await dbManager.getDb().collection('chat').findAsync({ sessionId }); -} - -const saveChatHistory = async ({ sessionId, messages }) => { - const db = dbManager.getDb(); - const collection = db.collection('chat'); - - const items = await getChatHitory(sessionId); - - if (!items.length) { - await collection.insert({ sessionId, messages }); - return; - } - - await collection.update({ sessionId }, { messages, sessionId }, { upsert: true }); -} - -const getTitles = async () => { - return await dbManager.getDb().collection('chat-title').findAsync({}); -} - -const saveTitle = async (data) => { - const db = dbManager.getDb(); - const collection = db.collection('chat-title'); - await collection.insert({ _id: data.sessionId, ...data }); -} - -const deleteTitle = async (id) => { - const db = dbManager.getDb(); - await db.collection('chat-title').remove({ _id: id }) - await db.collection('chat').remove({ sessionId: id }) -} - -const updateChatTitle = async ({ id, title }) => { - const db = dbManager.getDb(); - const collection = db.collection('chat-title'); - const { _id, ...stored } = await collection.findAsync({ _id: id }) - const data = { ...stored[0], title }; - await collection.update({ _id: id }, data); -} - -export default { getChatHitory, saveChatHistory, getTitles, saveTitle, deleteTitle, updateChatTitle }; \ No newline at end of file diff --git a/ui-desktop/src/main/src/client/subscriptions/no-core.js b/ui-desktop/src/main/src/client/subscriptions/no-core.js index 54efabb0..abc90deb 100644 --- a/ui-desktop/src/main/src/client/subscriptions/no-core.js +++ b/ui-desktop/src/main/src/client/subscriptions/no-core.js @@ -32,12 +32,10 @@ const listeners = { "get-todays-budget": handlers.getTodaysBudget, "get-supply": handlers.getTokenSupply, // Chat history - "get-chat-history": handlers.getChatHitory, - "save-chat-history": handlers.saveChatHistory, - "get-chat-titles": handlers.getTitles, - "save-chat-title": handlers.saveTitle, - "update-chat-title": handlers.updateChatTitle, - "delete-chat-title": handlers.deleteTitle + "get-chat-history-titles": handlers.getChatHistoryTitles, + "get-chat-history": handlers.getChatHistory, + "delete-chat-history": handlers.deleteChatHistory, + "update-chat-history-title": handlers.updateChatHistoryTitle, } // Subscribe to messages where no core has to react diff --git a/ui-desktop/src/renderer/src/client/index.jsx b/ui-desktop/src/renderer/src/client/index.jsx index c92c6a57..d3372c37 100644 --- a/ui-desktop/src/renderer/src/client/index.jsx +++ b/ui-desktop/src/renderer/src/client/index.jsx @@ -140,12 +140,10 @@ const createClient = function (createStore) { getTodaysBudget: utils.forwardToMainProcess('get-todays-budget'), getTokenSupply: utils.forwardToMainProcess('get-supply'), // Chat History + getChatHistoryTitles: utils.forwardToMainProcess('get-chat-history-titles'), getChatHistory: utils.forwardToMainProcess('get-chat-history', 750000), - saveChatHistory: utils.forwardToMainProcess('save-chat-history', 750000), - getTitles: utils.forwardToMainProcess('get-chat-titles', 750000), - saveTitle: utils.forwardToMainProcess('save-chat-title', 750000), - deleteTitle: utils.forwardToMainProcess('delete-chat-title', 750000), - updateChatTitle: utils.forwardToMainProcess("update-chat-title", 750000), + deleteChatHistory: utils.forwardToMainProcess('delete-chat-history', 750000), + updateChatHistoryTitle: utils.forwardToMainProcess('update-chat-history-title', 750000), } const api = { diff --git a/ui-desktop/src/renderer/src/components/chat/Chat.tsx b/ui-desktop/src/renderer/src/components/chat/Chat.tsx index e340df93..d5b1bfa2 100644 --- a/ui-desktop/src/renderer/src/components/chat/Chat.tsx +++ b/ui-desktop/src/renderer/src/components/chat/Chat.tsx @@ -31,14 +31,16 @@ import './Chat.css' import { ChatHistory } from './ChatHistory'; import Spinner from 'react-bootstrap/Spinner'; import ModelSelectionModal from './modals/ModelSelectionModal'; -import { parseDataChunk, makeId, getColor, isClosed } from './utils'; +import { parseDataChunk, makeId, getColor, isClosed, generateHashId } from './utils'; import { Cooldown } from './Cooldown'; import ImageViewer from "react-simple-image-viewer"; import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter' import { coldarkDark } from 'react-syntax-highlighter/dist/esm/styles/prism' +import { ChatData, ChatHistoryInterface, ChatTitle, HistoryMessage } from './interfaces'; + let abort = false; let cancelScroll = false; -const userMessage = { user: 'Me', role: "user", icon: "M", color: "#20dc8e" }; +const userMessage = { user: 'Me', role: "user", icon: "M", color: getColor("M") }; const Chat = (props) => { const chatBlockRef = useRef(null); @@ -56,7 +58,7 @@ const Chat = (props) => { const [activeSession, setActiveSession] = useState(undefined); const [chainData, setChainData] = useState(null); - const [sessionTitles, setSessionTitles] = useState<{ sessionId: string, title: string, createdAt: any }[]>([]); + const [chatData, setChatsData] = useState([]); const [openChangeModal, setOpenChangeModal] = useState(false); const [isReadonly, setIsReadonly] = useState(false); @@ -66,7 +68,7 @@ const Chat = (props) => { const [requiredStake, setRequiredStake] = useState<{ min: Number, max: number }>({ min: 0, max: 0 }) const [balances, setBalances] = useState<{ eth: Number, mor: number }>({ eth: 0, mor: 0 }); - const [chat, setChat] = useState(undefined); + const [chat, setChat] = useState(undefined); const modelName = selectedModel?.Name || "Model"; const isLocal = chat?.isLocal; @@ -78,16 +80,22 @@ const Chat = (props) => { useEffect(() => { (async () => { - const [meta, chainData, titles, userBalances] = await Promise.all([ + const [meta, chainData, chats, userBalances] = await Promise.all([ props.getMetaInfo(), props.getModelsData(), - props.client.getTitles(), + props.client.getChatHistoryTitles() as Promise, props.getBalances()]); setBalances(userBalances) setMeta(meta); setChainData(chainData) - setSessionTitles(titles.map(t => ({ ...t, title: t.title, sessionId: t._id }))); + setChatsData(chats.map(t => ({ + id: t.chatId, + title: t.title, + createdAt: new Date(t.createdAt * 1000), + modelId: t.modelId, + isLocal: chainData?.models?.find((m: any) => m.Id === t.modelId && m.hasLocal) + }))); const sessions = await props.getSessionsByUser(props.address); const openSessions = sessions.filter(s => !isClosed(s)); @@ -98,11 +106,11 @@ const Chat = (props) => { const localModel = (chainData?.models?.find((m: any) => m.hasLocal)); if (localModel) { setSelectedModel(localModel); - setChat({ id: makeId(16), createdAt: new Date(), modelId: localModel.Id, isLocal: true }); + setChat({ id: generateHashId(), createdAt: new Date(), modelId: localModel.Id, isLocal: true }); } } - if(!openSessions.length) { + if (!openSessions.length) { useLocalModelChat(); return; } @@ -110,21 +118,21 @@ const Chat = (props) => { const latestSession = openSessions[0]; const latestSessionModel = (chainData.models.find((m: any) => m.Id == latestSession.ModelAgentId)); - if(!latestSessionModel) { + if (!latestSessionModel) { useLocalModelChat(); return; } const openBid = latestSessionModel?.bids?.find(b => b.Id == latestSession.BidID); - if(!openBid) { + if (!openBid) { useLocalModelChat(); } setSelectedModel(latestSessionModel); setSelectedBid(openBid); setActiveSession(latestSession); - setChat({ id: makeId(16), createdAt: new Date(), modelId: latestSessionModel.ModelAgentId }); + setChat({ id: generateHashId(), createdAt: new Date(), modelId: latestSessionModel.ModelAgentId }); })().then(() => { setIsLoading(false); }) @@ -158,8 +166,8 @@ const Chat = (props) => { const onOpenSession = async (isReopen) => { setIsLoading(true); - if(!isReopen) { - setChat({ id: makeId(16), createdAt: new Date(), modelId: selectedModel.Id }); + if (!isReopen) { + setChat({ id: generateHashId(), createdAt: new Date(), modelId: selectedModel.Id }); } const prices = selectedModel.bids.map(x => Number(x.PricePerSecond)); @@ -186,10 +194,22 @@ const Chat = (props) => { } } - const loadHistory = async (id) => { + const loadChatHistory = async (chatId: string) => { try { - const history = await props.client.getChatHistory(id); - setMessages(history.length ? (history[0].messages || []) : []); + const history: ChatHistoryInterface = await props.client.getChatHistory(chatId); + const messages: HistoryMessage[] = []; + + const model = chainData.models.find((m) => m.Id == history.modelId); + history.messages.forEach((m) => { + const modelName = model.Name || "Model"; + + const aiIcon = modelName.toUpperCase()[0]; + const aiColor = getColor(aiIcon); + + messages.push({ id: makeId(16), text: m.prompt.messages[0].content, user: userMessage.user, role: userMessage.role, icon: userMessage.icon, color: userMessage.color }); + messages.push({ id: makeId(16), text: m.response, user: modelName, role: "assistant", icon: aiIcon, color: aiColor, isImageContent: m.isImageContent }); + }); + setMessages(messages); } catch (e) { props.toasts.toast('error', 'Failed to load chat history'); @@ -210,36 +230,38 @@ const Chat = (props) => { const localModel = (chainData?.models?.find((m: any) => m.hasLocal)); if (localModel) { setSelectedModel(localModel); - setChat({ id: makeId(16), createdAt: new Date(), modelId: localModel.Id, isLocal: true }); + setChat({ id: generateHashId(), createdAt: new Date(), modelId: localModel.Id, isLocal: true }); } setMessages([]); } } - const selectSession = async (sessionData) => { - console.log("select-session", sessionData) + const selectChat = async (chatData: ChatData) => { + console.log("select-session", chatData) - if(!sessionData.modelId) { + const modelId = chatData.modelId; + if (!modelId) { + console.warn("Model ID is missed"); return; } // toggleDrawer(); - setChat({ ...sessionData}) + setChat({ ...chatData }) - if(sessionData.isLocal) { - await loadHistory(sessionData.id); + if (chatData.isLocal) { + await loadChatHistory(chatData.id); return } const openSessions = sessions.filter(s => !isClosed(s)); // search open session by model ID - const openSession = openSessions.find(s => s.ModelAgentId == sessionData.modelId); + const openSession = openSessions.find(s => s.ModelAgentId == modelId); setIsReadonly(!openSession); - const selectedModel = chainData.models.find((m: any) => m.Id == sessionData.modelId); + const selectedModel = chainData.models.find((m: any) => m.Id == modelId); setSelectedModel(selectedModel); - if(openSession) { + if (openSession) { setActiveSession(openSession); const activeBid = selectedModel.bids.find((b) => b.Id == openSession.BidID); setSelectedBid(activeBid); @@ -249,7 +271,7 @@ const Chat = (props) => { setSelectedBid(undefined); } - await loadHistory(sessionData.id); + await loadChatHistory(chatData.id); setTimeout(() => scrollToBottom("smooth"), 400); } @@ -287,8 +309,6 @@ const Chat = (props) => { } const call = async (message) => { - const chatHistory = messages.map(m => ({ role: m.role, content: m.text, isImageContent: m.isImageContent })) - let memoState = [...messages, { id: makeId(16), text: value, ...userMessage }]; setMessages(memoState); scrollToBottom(); @@ -301,12 +321,12 @@ const Chat = (props) => { } else { headers["session_id"] = activeSession.Id; } + headers["chat_id"] = chat?.id; - const hasImageHistory = chatHistory.some(x => x.isImageContent); const incommingMessage = { role: "user", content: message }; const payload = { stream: true, - messages: hasImageHistory ? [incommingMessage] : [...chatHistory, incommingMessage] + messages: [incommingMessage] }; // If image take only last message @@ -339,7 +359,8 @@ const Chat = (props) => { const reader = response.body.getReader() registerScrollEvent(true); - const iconProps = { icon: modelName.toUpperCase()[0], color: getColor(modelName.toUpperCase()[0]) }; + const icon = modelName.toUpperCase()[0]; + const iconProps = { icon, color: getColor(icon) }; try { while (true) { if (abort) { @@ -386,10 +407,6 @@ const Chat = (props) => { console.error(e); } - console.log("Flush to storage"); - await props.client.saveChatHistory({ sessionId: chat?.id, messages: memoState }); - console.log("Stored succesfully"); - registerScrollEvent(false); return memoState; } @@ -409,11 +426,9 @@ const Chat = (props) => { return; } - if (messages.length === 0) { - const title = { ...chat, sessionId: chat?.id, title: value }; - props.client.saveTitle(title).then(() => { - setSessionTitles([...sessionTitles, title]); - }).catch(console.error); + if (messages.length === 0 && chat) { + const title = { ...chat, title: value }; + setChatsData([...chatData, title]); } setIsSpinning(true); @@ -421,10 +436,10 @@ const Chat = (props) => { setValue(""); } - const deleteChatEntry = (id) => { - props.client.deleteTitle(id).then(() => { - const newSessions = sessionTitles.filter(x => x.sessionId != id); - setSessionTitles(newSessions); + const deleteChatEntry = (id: string) => { + props.client.deleteChatHistory(id).then(() => { + const newChats = chatData.filter(x => x.id != id); + setChatsData(newChats); }).catch(console.error); } @@ -440,7 +455,7 @@ const Chat = (props) => { setActiveSession(undefined); setSelectedBid(undefined); setIsReadonly(false); - setChat({ id: makeId(16), createdAt: new Date(), modelId, isLocal }); + setChat({ id: generateHashId(), createdAt: new Date(), modelId, isLocal }); const selectedModel = chainData.models.find((m: any) => m.Id == modelId); setSelectedModel(selectedModel); @@ -470,7 +485,7 @@ const Chat = (props) => { } const wrapChangeTitle = async (data: { id, title }) => { - await props.client.updateChatTitle(data); + await props.client.updateChatHistoryTitle(data); } return ( @@ -490,11 +505,11 @@ const Chat = (props) => { @@ -531,7 +546,7 @@ const Chat = (props) => { } - setOpenChangeModal(true)}> New chat @@ -617,15 +632,15 @@ const Chat = (props) => { minRows={1} maxRows={6} /> { - isReadonly - ? ( - {isSpinning ? : Reopen} - ) - : ( - { - isSpinning ? : - } - ) + isReadonly + ? ( + {isSpinning ? : Reopen} + ) + : ( + { + isSpinning ? : + } + ) } diff --git a/ui-desktop/src/renderer/src/components/chat/ChatHistory.tsx b/ui-desktop/src/renderer/src/components/chat/ChatHistory.tsx index a2f41f3e..fcef9190 100644 --- a/ui-desktop/src/renderer/src/components/chat/ChatHistory.tsx +++ b/ui-desktop/src/renderer/src/components/chat/ChatHistory.tsx @@ -9,21 +9,22 @@ import Badge from 'react-bootstrap/Badge'; import { SearchContainer } from '../contracts/modals/CreateContractModal.styles'; import * as components from './ChatHistory.styles'; import { useEffect, useState } from "react"; +import { ChatData } from "./interfaces"; interface ChatHistoryProps { open: boolean, - onCloseSession: (string) => void; - onSelectSession: (session) => void; + onCloseSession: (id: string) => void; + onSelectChat: (chat: ChatData) => void; refreshSessions: () => void; - deleteHistory: (string) => void - onChangeTitle: (data: { id, title }) => Promise; + deleteHistory: (chatId: string) => void + onChangeTitle: (data: { id: string, title: string }) => Promise; sessions: any[]; models: any[]; activeChat: any, - sessionTitles: { sessionId: string, title: string, createdAt: any }[] + chatData: ChatData[] } -const HisotryEntry = ({ entry, deleteHistory, onSelectSession, isActive, onChangeTitle }) => { +const HisotryEntry = ({ entry, deleteHistory, onSelectChat, isActive, onChangeTitle }) => { const [isEdit, setIsEdit] = useState(false); const [title, setTitle] = useState(entry?.title || ""); @@ -32,14 +33,14 @@ const HisotryEntry = ({ entry, deleteHistory, onSelectSession, isActive, onChang deleteHistory(id); } - const changetTitle = (e, id) => { + const changetTitle = (e, chatId) => { setIsEdit(!isEdit); e.stopPropagation(); - onChangeTitle({ id, title }); + onChangeTitle({ id: chatId, title }); } return ( - onSelectSession(entry)}> + onSelectChat(entry)}> { !isEdit ? ( @@ -52,7 +53,7 @@ const HisotryEntry = ({ entry, deleteHistory, onSelectSession, isActive, onChang e.stopPropagation(); setIsEdit(!isEdit); }} style={{ marginRight: '1.5rem' }} size={22} /> - wrapDelete(e, entry.sessionId)} /> + wrapDelete(e, entry.id)} />
) } @@ -70,7 +71,7 @@ const HisotryEntry = ({ entry, deleteHistory, onSelectSession, isActive, onChang { - changetTitle(e, entry.sessionId) + changetTitle(e, entry.id) }} style={{ margin: '0 1.5rem' }} size={22} /> { e.stopPropagation(); @@ -92,26 +93,31 @@ export const ChatHistory = (props: ChatHistoryProps) => { setSearch(""); }, [props.open]) - const renderTitlesGroup = (items) => { + const renderTitlesGroup = (items: ChatData[]) => { return items.map(t => { return () + onSelectChat={props.onSelectChat} />) }) } - const getGroupHistory = (items) => { + const getGroupHistory = (items: T[]) => { const getPreviousDate = (shift) => { const d = new Date(); d.setDate(d.getDate() - shift); return d; } - const source = (items || []).filter(i => i.createdAt).sort((a, b) => b.createdAt - a.createdAt); - const result: any = { + const source = (items || []).filter(i => i.createdAt).sort((a, b) => b.createdAt.getTime() - a.createdAt.getTime()); + const result: { + today: T[], + last7: T[], + last30: T[], + older: T[], + } = { today: [], last7: [], last30: [], @@ -137,8 +143,8 @@ export const ChatHistory = (props: ChatHistoryProps) => { return result; } - const filterdModels = props.sessionTitles && search ? props.sessionTitles.filter(m => m.title.includes(search)) : (props.sessionTitles || []); - const groupedItems = getGroupHistory(filterdModels); + const filterdModels = props.chatData && search ? props.chatData.filter(m => m.title?.includes(search)) : (props.chatData || []); + const groupedItems = getGroupHistory(filterdModels); return ( diff --git a/ui-desktop/src/renderer/src/components/chat/interfaces.tsx b/ui-desktop/src/renderer/src/components/chat/interfaces.tsx new file mode 100644 index 00000000..03ab3d11 --- /dev/null +++ b/ui-desktop/src/renderer/src/components/chat/interfaces.tsx @@ -0,0 +1,47 @@ +export interface ChatTitle { + chatId: string; + title: string; + createdAt: number; // timestamp in seconds + modelId: string; +} + +export interface ChatData { + id: string; + title?: string; + createdAt: Date; + modelId: string; + isLocal?: boolean; +} + +export interface HistoryMessage { + id: string; + text: string; + user: string; + role: string; + icon: string; + color: string; + isImageContent?: boolean; +} + +export interface ChatHistoryInterface { + title: string; + modelId: string; + messages: ChatMessage[]; +} + +export interface ChatMessage { + response: string; + prompt: ChatPrompt; + promptAt: number; + responseAt: number; + isImageContent?: boolean; +} + +export interface ChatPrompt { + model: string; + messages: { + role: string; + content: string; + }[]; +} + diff --git a/ui-desktop/src/renderer/src/components/chat/utils.js b/ui-desktop/src/renderer/src/components/chat/utils.js index f9958281..2d426041 100644 --- a/ui-desktop/src/renderer/src/components/chat/utils.js +++ b/ui-desktop/src/renderer/src/components/chat/utils.js @@ -12,6 +12,11 @@ export const makeId = (length) => { return result; } +export const generateHashId = (length = 64) => { + const hex = [...Array(length)].map(() => Math.floor(Math.random() * 16).toString(16)).join(''); + return `0x${hex}`; +} + export const getHashCode = (string) => { var hash = 0; for (var i = 0; i < string.length; i++) { From ba1c4c455ec6002f8bd030e0d89f774888d5efdb Mon Sep 17 00:00:00 2001 From: Aleksandr Kukharenko Date: Wed, 9 Oct 2024 17:44:31 +0300 Subject: [PATCH 038/260] update prompt api --- proxy-router/docs/docs.go | 142 +++++++++++------- proxy-router/docs/swagger.json | 7 + proxy-router/docs/swagger.yaml | 5 + .../internal/proxyapi/controller_http.go | 1 + 4 files changed, 100 insertions(+), 55 deletions(-) diff --git a/proxy-router/docs/docs.go b/proxy-router/docs/docs.go index 368b7027..8478af68 100644 --- a/proxy-router/docs/docs.go +++ b/proxy-router/docs/docs.go @@ -1073,6 +1073,13 @@ const docTemplate = `{ "name": "model_id", "in": "header" }, + { + "type": "string", + "format": "hex32", + "description": "Chat ID", + "name": "chat_id", + "in": "header" + }, { "description": "Prompt", "name": "prompt", @@ -1141,6 +1148,67 @@ const docTemplate = `{ } } } + }, + "post": { + "produces": [ + "application/json" + ], + "tags": [ + "chat" + ], + "summary": "Update chat title by id", + "parameters": [ + { + "type": "string", + "description": "Chat ID", + "name": "id", + "in": "path", + "required": true + }, + { + "description": "Chat Title", + "name": "title", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/proxyapi.UpdateChatTitleReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/proxyapi.ResultResponse" + } + } + } + }, + "delete": { + "produces": [ + "application/json" + ], + "tags": [ + "chat" + ], + "summary": "Delete chat by id from storage", + "parameters": [ + { + "type": "string", + "description": "Chat ID", + "name": "id", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/proxyapi.ResultResponse" + } + } + } } }, "/v1/models": { @@ -1381,12 +1449,6 @@ const docTemplate = `{ "content": { "type": "string" }, - "multiContent": { - "type": "array", - "items": { - "$ref": "#/definitions/proxyapi.ChatMessagePart" - } - }, "name": { "description": "This property isn't in the official documentation, but it's in\nthe documentation for the official library for python:\n- https://github.com/openai/openai-python/blob/main/chatml.md\n- https://github.com/openai/openai-cookbook/blob/main/examples/How_to_count_tokens_with_tiktoken.ipynb", "type": "string" @@ -1474,42 +1536,6 @@ const docTemplate = `{ } } }, - "proxyapi.ChatMessageImageURL": { - "type": "object", - "properties": { - "detail": { - "$ref": "#/definitions/proxyapi.ImageURLDetail" - }, - "url": { - "type": "string" - } - } - }, - "proxyapi.ChatMessagePart": { - "type": "object", - "properties": { - "image_url": { - "$ref": "#/definitions/proxyapi.ChatMessageImageURL" - }, - "text": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/proxyapi.ChatMessagePartType" - } - } - }, - "proxyapi.ChatMessagePartType": { - "type": "string", - "enum": [ - "text", - "image_url" - ], - "x-enum-varnames": [ - "ChatMessagePartTypeText", - "ChatMessagePartTypeImageURL" - ] - }, "proxyapi.FinishReason": { "type": "string", "enum": [ @@ -1519,19 +1545,6 @@ const docTemplate = `{ "FinishReasonStop" ] }, - "proxyapi.ImageURLDetail": { - "type": "string", - "enum": [ - "high", - "low", - "auto" - ], - "x-enum-varnames": [ - "ImageURLDetailHigh", - "ImageURLDetailLow", - "ImageURLDetailAuto" - ] - }, "proxyapi.InitiateSessionReq": { "type": "object", "required": [ @@ -1667,6 +1680,14 @@ const docTemplate = `{ } } }, + "proxyapi.ResultResponse": { + "type": "object", + "properties": { + "result": { + "type": "boolean" + } + } + }, "proxyapi.TopLogProbs": { "type": "object", "properties": { @@ -1684,6 +1705,17 @@ const docTemplate = `{ } } }, + "proxyapi.UpdateChatTitleReq": { + "type": "object", + "required": [ + "title" + ], + "properties": { + "title": { + "type": "string" + } + } + }, "proxyapi.Usage": { "type": "object", "properties": { diff --git a/proxy-router/docs/swagger.json b/proxy-router/docs/swagger.json index 0b202714..a07754c7 100644 --- a/proxy-router/docs/swagger.json +++ b/proxy-router/docs/swagger.json @@ -1066,6 +1066,13 @@ "name": "model_id", "in": "header" }, + { + "type": "string", + "format": "hex32", + "description": "Chat ID", + "name": "chat_id", + "in": "header" + }, { "description": "Prompt", "name": "prompt", diff --git a/proxy-router/docs/swagger.yaml b/proxy-router/docs/swagger.yaml index 59c5fb82..be753d53 100644 --- a/proxy-router/docs/swagger.yaml +++ b/proxy-router/docs/swagger.yaml @@ -1345,6 +1345,11 @@ paths: in: header name: model_id type: string + - description: Chat ID + format: hex32 + in: header + name: chat_id + type: string - description: Prompt in: body name: prompt diff --git a/proxy-router/internal/proxyapi/controller_http.go b/proxy-router/internal/proxyapi/controller_http.go index c70a3f7c..2988df17 100644 --- a/proxy-router/internal/proxyapi/controller_http.go +++ b/proxy-router/internal/proxyapi/controller_http.go @@ -76,6 +76,7 @@ func (s *ProxyController) InitiateSession(ctx *gin.Context) { // @Produce text/event-stream // @Param session_id header string false "Session ID" format(hex32) // @Param model_id header string false "Model ID" format(hex32) +// @Param chat_id header string false "Chat ID" format(hex32) // @Param prompt body proxyapi.OpenAiCompletitionRequest true "Prompt" // @Success 200 {object} proxyapi.ChatCompletionResponse // @Router /v1/chat/completions [post] From 6c13b53b101b29b98bfaf6bbe6751e56bf7a45dd Mon Sep 17 00:00:00 2001 From: Aleksandr Kukharenko Date: Mon, 14 Oct 2024 14:45:46 +0300 Subject: [PATCH 039/260] fix: handling local models --- proxy-router/internal/proxyapi/chat_storage.go | 10 +++++++--- proxy-router/internal/proxyapi/controller_http.go | 6 +++--- ui-desktop/src/renderer/src/components/chat/Chat.tsx | 4 ++-- .../src/renderer/src/components/chat/interfaces.tsx | 1 + 4 files changed, 13 insertions(+), 8 deletions(-) diff --git a/proxy-router/internal/proxyapi/chat_storage.go b/proxy-router/internal/proxyapi/chat_storage.go index e2bf00e9..3ab9aba4 100644 --- a/proxy-router/internal/proxyapi/chat_storage.go +++ b/proxy-router/internal/proxyapi/chat_storage.go @@ -14,7 +14,7 @@ import ( type ChatStorageInterface interface { LoadChatFromFile(chatID string) (*ChatHistory, error) - StorePromptResponseToFile(chatID string, sessionID string, modelID string, prompt openai.ChatCompletionRequest, responses []interface{}, promptAt time.Time, responseAt time.Time) error + StorePromptResponseToFile(chatID string, isLocal bool, modelID string, prompt openai.ChatCompletionRequest, responses []interface{}, promptAt time.Time, responseAt time.Time) error GetChats() []Chat DeleteChat(chatID string) error UpdateChatTitle(chatID string, title string) error @@ -23,6 +23,7 @@ type ChatStorageInterface interface { type ChatHistory struct { Title string `json:"title"` ModelId string `json:"modelId"` + IsLocal bool `json:"isLocal"` Messages []ChatMessage `json:"messages"` } @@ -37,6 +38,7 @@ type Chat struct { ChatID string `json:"chatId"` ModelID string `json:"modelId"` Title string `json:"title"` + IsLocal bool `json:"isLocal"` CreatedAt int64 `json:"createdAt"` } @@ -55,7 +57,7 @@ func NewChatStorage(dirPath string) *ChatStorage { } // StorePromptResponseToFile stores the prompt and response to a file. -func (cs *ChatStorage) StorePromptResponseToFile(identifier string, sessionId string, modelId string, prompt openai.ChatCompletionRequest, responses []interface{}, promptAt, responseAt time.Time) error { +func (cs *ChatStorage) StorePromptResponseToFile(identifier string, isLocal bool, modelId string, prompt openai.ChatCompletionRequest, responses []interface{}, promptAt time.Time, responseAt time.Time) error { if err := os.MkdirAll(cs.dirPath, os.ModePerm); err != nil { return err } @@ -127,6 +129,7 @@ func (cs *ChatStorage) StorePromptResponseToFile(identifier string, sessionId st if data.Messages == nil && len(data.Messages) == 0 { data.ModelId = modelId data.Title = prompt.Messages[0].Content + data.IsLocal = isLocal } newMessages := append(data.Messages, newEntry) @@ -168,6 +171,7 @@ func (cs *ChatStorage) GetChats() []Chat { Title: fileContent.Title, CreatedAt: fileContent.Messages[0].PromptAt, ModelID: fileContent.ModelId, + IsLocal: fileContent.IsLocal, }) } @@ -250,7 +254,7 @@ func (cs *NoOpChatStorage) LoadChatFromFile(chatID string) (*ChatHistory, error) return nil, nil } -func (cs *NoOpChatStorage) StorePromptResponseToFile(chatID string, sessionID string, modelID string, prompt openai.ChatCompletionRequest, responses []interface{}, promptAt time.Time, responseAt time.Time) error { +func (cs *NoOpChatStorage) StorePromptResponseToFile(chatID string, isLocal bool, modelID string, prompt openai.ChatCompletionRequest, responses []interface{}, promptAt time.Time, responseAt time.Time) error { return nil } diff --git a/proxy-router/internal/proxyapi/controller_http.go b/proxy-router/internal/proxyapi/controller_http.go index 2988df17..1c7994f5 100644 --- a/proxy-router/internal/proxyapi/controller_http.go +++ b/proxy-router/internal/proxyapi/controller_http.go @@ -136,7 +136,7 @@ func (c *ProxyController) Prompt(ctx *gin.Context) { res, _ := c.aiEngine.PromptCb(ctx, &newBody) responses = res.([]interface{}) - if err := c.chatStorage.StorePromptResponseToFile(chatID.Hex(), "", modelId, prompt, responses, promptAt, responseAt); err != nil { + if err := c.chatStorage.StorePromptResponseToFile(chatID.Hex(), true, modelId, prompt, responses, promptAt, responseAt); err != nil { fmt.Println("Error storing prompt and responses:", err) } } @@ -159,7 +159,7 @@ func (c *ProxyController) Prompt(ctx *gin.Context) { prodiaResponses = append(prodiaResponses, completion) body.Model = prompt.Model - if err := c.chatStorage.StorePromptResponseToFile(chatID.Hex(), "", modelId, body, prodiaResponses, promptAt, responseAt); err != nil { + if err := c.chatStorage.StorePromptResponseToFile(chatID.Hex(), true, modelId, body, prodiaResponses, promptAt, responseAt); err != nil { fmt.Println("Error storing prompt and responses:", err) } return nil @@ -190,7 +190,7 @@ func (c *ProxyController) Prompt(ctx *gin.Context) { modelId = session.ModelID } - if err := c.chatStorage.StorePromptResponseToFile(chatID.Hex(), sessionID, modelId, body, responses, promptAt, responseAt); err != nil { + if err := c.chatStorage.StorePromptResponseToFile(chatID.Hex(), false, modelId, body, responses, promptAt, responseAt); err != nil { fmt.Println("Error storing prompt and responses:", err) } return diff --git a/ui-desktop/src/renderer/src/components/chat/Chat.tsx b/ui-desktop/src/renderer/src/components/chat/Chat.tsx index d5b1bfa2..c9f3fd79 100644 --- a/ui-desktop/src/renderer/src/components/chat/Chat.tsx +++ b/ui-desktop/src/renderer/src/components/chat/Chat.tsx @@ -40,7 +40,7 @@ import { ChatData, ChatHistoryInterface, ChatTitle, HistoryMessage } from './int let abort = false; let cancelScroll = false; -const userMessage = { user: 'Me', role: "user", icon: "M", color: getColor("M") }; +const userMessage = { user: 'Me', role: "user", icon: "M", color: "#20dc8e" }; const Chat = (props) => { const chatBlockRef = useRef(null); @@ -94,7 +94,7 @@ const Chat = (props) => { title: t.title, createdAt: new Date(t.createdAt * 1000), modelId: t.modelId, - isLocal: chainData?.models?.find((m: any) => m.Id === t.modelId && m.hasLocal) + isLocal: t.isLocal, }))); const sessions = await props.getSessionsByUser(props.address); diff --git a/ui-desktop/src/renderer/src/components/chat/interfaces.tsx b/ui-desktop/src/renderer/src/components/chat/interfaces.tsx index 03ab3d11..e8d31bb0 100644 --- a/ui-desktop/src/renderer/src/components/chat/interfaces.tsx +++ b/ui-desktop/src/renderer/src/components/chat/interfaces.tsx @@ -3,6 +3,7 @@ export interface ChatTitle { title: string; createdAt: number; // timestamp in seconds modelId: string; + isLocal?: boolean; } export interface ChatData { From 81b81c3cdd98d5abd55ccce46706135f2a836e15 Mon Sep 17 00:00:00 2001 From: Aleksandr Kukharenko Date: Mon, 14 Oct 2024 17:56:11 +0300 Subject: [PATCH 040/260] docs: update readme.md --- proxy-router/readme.md | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 proxy-router/readme.md diff --git a/proxy-router/readme.md b/proxy-router/readme.md new file mode 100644 index 00000000..f76e500b --- /dev/null +++ b/proxy-router/readme.md @@ -0,0 +1,35 @@ +## Environment Variables: + +`PROXY_STORE_CHAT_CONTEXT` + +- **Type:** Boolean +- **Purpose:** Controls whether the proxy-router stores chat contexts locally. + +#### When `PROXY_STORE_CHAT_CONTEXT` is set to `TRUE` + +- **Local Storage of Chats:** + - The proxy saves chat sessions to local files. + - Chat histories are maintained, allowing for persistent conversations. + +- **API Operations:** (check swagger - `/v1/chats`) + - **Retrieve Chats:** Access stored chats via API endpoints. + - **Update Titles:** Modify chat titles using API calls. + - **Delete Chats:** Remove chat sessions through the API. + +- **Using `chat_id`:** + - Include a `chat_id` in the request header. + - The proxy-router automatically injects the corresponding chat context. + - **Request Simplification:** Only the latest message needs to be sent in the request body. + +#### When `PROXY_STORE_CHAT_CONTEXT` is set to `FALSE` + +- **No Chat Storage:** + - The proxy-router does not save any chat sessions locally. + +- **Client-Side Context Management:** + - Clients must include the entire conversation history in each request. + - The proxy-router forwards the request to the AI model without adding any context. + +--- + +Ensure the proxy-router is restarted after changing the environment variable to apply the new configuration. \ No newline at end of file From 73bc936ed6d4c5053a12008d12088683d7e9257a Mon Sep 17 00:00:00 2001 From: shev Date: Wed, 9 Oct 2024 21:29:13 +0200 Subject: [PATCH 041/260] feat: ethprovider with multiple endpoints --- proxy-router/.env.example | 3 +- proxy-router/.env.example.win | 3 +- proxy-router/cmd/main.go | 20 +- proxy-router/go.mod | 18 +- proxy-router/go.sum | 122 +++++--- proxy-router/internal/config/config.go | 3 +- .../repositories/ethclient/ethclient.go | 273 ++++++++++++++++++ .../repositories/ethclient/ethclient_test.go | 41 +++ .../internal/repositories/ethclient/public.go | 51 ++++ .../repositories/ethclient/rpcclient.go | 14 + .../ethclient/rpcclientmultiple.go | 106 +++++++ 11 files changed, 598 insertions(+), 56 deletions(-) create mode 100644 proxy-router/internal/repositories/ethclient/ethclient.go create mode 100644 proxy-router/internal/repositories/ethclient/ethclient_test.go create mode 100644 proxy-router/internal/repositories/ethclient/public.go create mode 100644 proxy-router/internal/repositories/ethclient/rpcclient.go create mode 100644 proxy-router/internal/repositories/ethclient/rpcclientmultiple.go diff --git a/proxy-router/.env.example b/proxy-router/.env.example index c712674a..2044b0bf 100644 --- a/proxy-router/.env.example +++ b/proxy-router/.env.example @@ -1,5 +1,6 @@ WALLET_PRIVATE_KEY= # Private Key from your Wallet as Consumer or Provider (needed for the proxy-router to sign transactions) -ETH_NODE_ADDRESS=wss://arb-sepolia.g.alchemy.com/v2/3-pxwBaJ7vilkz1jl-fMmCvZThGxpmo2 # Recommend using your own private ETH Node Address for better performance (via Alchemy or Infura) +ETH_NODE_ADDRESS= # Recommend using your own private ETH Node Address for better performance (via Alchemy or Infura) +ETH_NODE_CHAIN_ID=421614 DIAMOND_CONTRACT_ADDRESS=0x8e19288d908b2d9f8d7c539c74c899808ac3de45 MOR_TOKEN_ADDRESS=0xc1664f994fd3991f98ae944bc16b9aed673ef5fd diff --git a/proxy-router/.env.example.win b/proxy-router/.env.example.win index f0657406..db21dc8f 100644 --- a/proxy-router/.env.example.win +++ b/proxy-router/.env.example.win @@ -1,5 +1,6 @@ WALLET_PRIVATE_KEY= # Private Key from your Wallet as Consumer or Provider (needed for the proxy-router to sign transactions) -ETH_NODE_ADDRESS=wss://arb-sepolia.g.alchemy.com/v2/3-pxwBaJ7vilkz1jl-fMmCvZThGxpmo2 # Recommend using your own private ETH Node Address for better performance (via Alchemy or Infura) +ETH_NODE_ADDRESS= # Recommend using your own private ETH Node Address for better performance (via Alchemy or Infura) +ETH_NODE_CHAIN_ID=421614 DIAMOND_CONTRACT_ADDRESS=0x8e19288d908b2d9f8d7c539c74c899808ac3de45 MOR_TOKEN_ADDRESS=0xc1664f994fd3991f98ae944bc16b9aed673ef5fd diff --git a/proxy-router/cmd/main.go b/proxy-router/cmd/main.go index dcb7bc77..aa22e37c 100644 --- a/proxy-router/cmd/main.go +++ b/proxy-router/cmd/main.go @@ -19,13 +19,13 @@ import ( "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/proxyapi" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/proxyctl" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/ethclient" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/registries" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/transport" wlt "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/wallet" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/storages" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/system" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/walletapi" - "github.com/ethereum/go-ethereum/ethclient" docs "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/docs" ) @@ -182,14 +182,30 @@ func start() error { os.Exit(1) }() - ethClient, err := ethclient.DialContext(ctx, cfg.Blockchain.EthNodeAddress) + var rpcURLs []string + if cfg.Blockchain.EthNodeAddress != "" { + rpcURLs = []string{cfg.Blockchain.EthNodeAddress} + } else { + var err error + rpcURLs, err = ethclient.GetPublicRPCURLs(cfg.Blockchain.ChainID) + if err != nil { + return err + } + } + + rpcClient, err := ethclient.NewRPCClientMultiple(rpcURLs, log.Named("RPC")) if err != nil { return lib.WrapError(ErrConnectToEthNode, err) } + + ethClient := ethclient.NewClient(rpcClient) chainID, err := ethClient.ChainID(ctx) if err != nil { return lib.WrapError(ErrConnectToEthNode, err) } + if int(chainID.Uint64()) != cfg.Blockchain.ChainID { + return lib.WrapError(ErrConnectToEthNode, fmt.Errorf("configured chainID (%d) does not match eth node chain ID (%s)", cfg.Blockchain.ChainID, chainID)) + } appLog.Infof("connected to ethereum node: %s, chainID: %d", cfg.Blockchain.EthNodeAddress, chainID) publicUrl, err := url.Parse(cfg.Web.PublicUrl) diff --git a/proxy-router/go.mod b/proxy-router/go.mod index 74ade76e..cf83f7ec 100644 --- a/proxy-router/go.mod +++ b/proxy-router/go.mod @@ -6,7 +6,7 @@ toolchain go1.22.3 require ( github.com/dgraph-io/badger/v4 v4.2.0 - github.com/ethereum/go-ethereum v1.12.0 + github.com/ethereum/go-ethereum v1.13.15 github.com/gin-contrib/cors v1.7.2 github.com/gin-gonic/gin v1.10.0 github.com/go-playground/validator/v10 v10.20.0 @@ -22,14 +22,16 @@ require ( github.com/zalando/go-keyring v0.2.4 go.uber.org/multierr v1.6.0 go.uber.org/zap v1.24.0 - golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63 + golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa golang.org/x/sync v0.7.0 ) require ( github.com/KyleBanks/depth v1.2.1 // indirect + github.com/Microsoft/go-winio v0.6.1 // indirect github.com/StackExchange/wmi v1.2.1 // indirect github.com/alessio/shellescape v1.4.1 // indirect + github.com/bits-and-blooms/bitset v1.10.0 // indirect github.com/btcsuite/btcd v0.22.1 // indirect github.com/btcsuite/btcd/btcec/v2 v2.2.0 // indirect github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 // indirect @@ -39,12 +41,16 @@ require ( github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/cloudwego/base64x v0.1.4 // indirect github.com/cloudwego/iasm v0.2.0 // indirect + github.com/consensys/bavard v0.1.13 // indirect + github.com/consensys/gnark-crypto v0.12.1 // indirect + github.com/crate-crypto/go-kzg-4844 v0.7.0 // indirect github.com/danieljoos/wincred v1.2.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/deckarep/golang-set/v2 v2.1.0 // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1 // indirect github.com/dgraph-io/ristretto v0.1.1 // indirect github.com/dustin/go-humanize v1.0.0 // indirect + github.com/ethereum/c-kzg-4844 v0.4.0 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect github.com/gabriel-vasile/mimetype v1.4.3 // indirect github.com/gin-contrib/sse v0.1.0 // indirect @@ -55,13 +61,12 @@ require ( github.com/go-openapi/swag v0.23.0 // indirect github.com/go-playground/locales v0.14.1 // indirect github.com/go-playground/universal-translator v0.18.1 // indirect - github.com/go-stack/stack v1.8.1 // indirect github.com/goccy/go-json v0.10.2 // indirect github.com/godbus/dbus/v5 v5.1.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/glog v1.0.0 // indirect github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6 // indirect - github.com/golang/protobuf v1.5.2 // indirect + github.com/golang/protobuf v1.5.3 // indirect github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb // indirect github.com/google/flatbuffers v1.12.1 // indirect github.com/google/uuid v1.3.0 // indirect @@ -77,6 +82,7 @@ require ( github.com/mattn/go-isatty v0.0.20 // indirect github.com/mattn/go-runewidth v0.0.14 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect + github.com/mmcloughlin/addchain v0.4.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/pelletier/go-toml/v2 v2.2.2 // indirect @@ -85,6 +91,7 @@ require ( github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/supranational/blst v0.3.11 // indirect github.com/tklauser/go-sysconf v0.3.12 // indirect github.com/tklauser/numcpus v0.6.1 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect @@ -95,11 +102,12 @@ require ( go.uber.org/atomic v1.11.0 // indirect golang.org/x/arch v0.8.0 // indirect golang.org/x/crypto v0.23.0 // indirect + golang.org/x/mod v0.17.0 // indirect golang.org/x/net v0.25.0 // indirect golang.org/x/sys v0.20.0 // indirect golang.org/x/text v0.15.0 // indirect golang.org/x/tools v0.21.0 // indirect google.golang.org/protobuf v1.34.1 // indirect - gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect gopkg.in/yaml.v3 v3.0.1 // indirect + rsc.io/tmplfunc v0.0.3 // indirect ) diff --git a/proxy-router/go.sum b/proxy-router/go.sum index e9764740..3cdba599 100644 --- a/proxy-router/go.sum +++ b/proxy-router/go.sum @@ -1,13 +1,15 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/zstd v1.5.2 h1:vUG4lAyuPCXO0TLbXvPv7EB7cNK1QV/luu55UHLrrn8= -github.com/DataDog/zstd v1.5.2/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= +github.com/DataDog/zstd v1.4.5 h1:EndNeuB0l9syBZhut0wns3gV1hL8zX8LIu6ZiVHWLIQ= +github.com/DataDog/zstd v1.4.5/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= github.com/KyleBanks/depth v1.2.1 h1:5h8fQADFrWtarTdtDudMmGsC7GPbOAu6RVB3ffsVFHc= github.com/KyleBanks/depth v1.2.1/go.mod h1:jzSb9d0L43HxTQfT+oSA1EEp2q+ne2uh6XgeJcm8brE= +github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= +github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/StackExchange/wmi v1.2.1 h1:VIkavFPXSjcnS+O8yTq7NI32k0R5Aj+v39y29VYDOSA= github.com/StackExchange/wmi v1.2.1/go.mod h1:rcmrprowKIVzvc+NUiLncP2uuArMWLCbu9SBzvHz7e8= -github.com/VictoriaMetrics/fastcache v1.6.0 h1:C/3Oi3EiBCqufydp1neRZkqcwmEiuRT9c3fqvvgKm5o= -github.com/VictoriaMetrics/fastcache v1.6.0/go.mod h1:0qHz5QP0GMX4pfmMA/zt5RgfNuXJrTP0zS7DqpHGGTw= +github.com/VictoriaMetrics/fastcache v1.12.1 h1:i0mICQuojGDL3KblA7wUNlY5lOK6a4bwt3uRKnkZU40= +github.com/VictoriaMetrics/fastcache v1.12.1/go.mod h1:tX04vaqcNoQeGLD+ra5pU5sWkuxnzWhEzLwhP9w653o= github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= github.com/alessio/shellescape v1.4.1 h1:V7yhSDDn8LP4lc4jS8pFkt0zCnzVJlG5JXy9BVKJUX0= github.com/alessio/shellescape v1.4.1/go.mod h1:PZAiSCk0LJaZkiCSkPv8qIobYglO3FPpyFjDCtHLS30= @@ -15,6 +17,8 @@ github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLj github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= +github.com/bits-and-blooms/bitset v1.10.0 h1:ePXTeiPEazB5+opbv5fr8umg2R/1NlzgDsyepwsSr88= +github.com/bits-and-blooms/bitset v1.10.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ= github.com/btcsuite/btcd v0.22.1 h1:CnwP9LM/M9xuRrGSCGeMVs9iv09uMqwsVX7EeIpgV2c= github.com/btcsuite/btcd v0.22.1/go.mod h1:wqgTSL29+50LRkmOVknEdmt8ZojIzhuWvgu/iptuN7Y= @@ -45,16 +49,28 @@ github.com/cloudwego/base64x v0.1.4 h1:jwCgWpFanWmN8xoIUHa2rtzmkd5J2plF/dnLS6Xd/ github.com/cloudwego/base64x v0.1.4/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w= github.com/cloudwego/iasm v0.2.0 h1:1KNIy1I1H9hNNFEEH3DVnI4UujN+1zjpuk6gwHLTssg= github.com/cloudwego/iasm v0.2.0/go.mod h1:8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQPiEFhY= -github.com/cockroachdb/errors v1.9.1 h1:yFVvsI0VxmRShfawbt/laCIDy/mtTqqnvoNgiy5bEV8= -github.com/cockroachdb/errors v1.9.1/go.mod h1:2sxOtL2WIc096WSZqZ5h8fa17rdDq9HZOZLBCor4mBk= -github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b h1:r6VH0faHjZeQy818SGhaone5OnYfxFR/+AzdY3sf5aE= -github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= -github.com/cockroachdb/pebble v0.0.0-20230209160836-829675f94811 h1:ytcWPaNPhNoGMWEhDvS3zToKcDpRsLuRolQJBVGdozk= -github.com/cockroachdb/pebble v0.0.0-20230209160836-829675f94811/go.mod h1:Nb5lgvnQ2+oGlE/EyZy4+2/CxRh9KfvCXnag1vtpxVM= -github.com/cockroachdb/redact v1.1.3 h1:AKZds10rFSIj7qADf0g46UixK8NNLwWTNdCIGS5wfSQ= -github.com/cockroachdb/redact v1.1.3/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= +github.com/cockroachdb/errors v1.8.1 h1:A5+txlVZfOqFBDa4mGz2bUWSp0aHElvHX2bKkdbQu+Y= +github.com/cockroachdb/errors v1.8.1/go.mod h1:qGwQn6JmZ+oMjuLwjWzUNqblqk0xl4CVV3SQbGwK7Ac= +github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f h1:o/kfcElHqOiXqcou5a3rIlMc7oJbMQkeLk0VQJ7zgqY= +github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f/go.mod h1:i/u985jwjWRlyHXQbwatDASoW0RMlZ/3i9yJHE2xLkI= +github.com/cockroachdb/pebble v0.0.0-20230928194634-aa077af62593 h1:aPEJyR4rPBvDmeyi+l/FS/VtA00IWvjeFvjen1m1l1A= +github.com/cockroachdb/pebble v0.0.0-20230928194634-aa077af62593/go.mod h1:6hk1eMY/u5t+Cf18q5lFMUA1Rc+Sm5I6Ra1QuPyxXCo= +github.com/cockroachdb/redact v1.0.8 h1:8QG/764wK+vmEYoOlfobpe12EQcS81ukx/a4hdVMxNw= +github.com/cockroachdb/redact v1.0.8/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= +github.com/cockroachdb/sentry-go v0.6.1-cockroachdb.2 h1:IKgmqgMQlVJIZj19CdocBeSfSaiCbEBZGKODaixqtHM= +github.com/cockroachdb/sentry-go v0.6.1-cockroachdb.2/go.mod h1:8BT+cPK6xvFOcRlk0R8eg+OTkcqI6baNH4xAkpiYVvQ= +github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 h1:zuQyyAKVxetITBuuhv3BI9cMrmStnpT18zmgmTxunpo= +github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06/go.mod h1:7nc4anLGjupUW/PeY5qiNYsdNXj7zopG+eqsS7To5IQ= +github.com/consensys/bavard v0.1.13 h1:oLhMLOFGTLdlda/kma4VOJazblc7IM5y5QPd2A/YjhQ= +github.com/consensys/bavard v0.1.13/go.mod h1:9ItSMtA/dXMAiL7BG6bqW2m3NdSEObYWoH223nGHukI= +github.com/consensys/gnark-crypto v0.12.1 h1:lHH39WuuFgVHONRl3J0LRBtuYdQTumFSDtJF7HpyG8M= +github.com/consensys/gnark-crypto v0.12.1/go.mod h1:v2Gy7L/4ZRosZ7Ivs+9SfUDr0f5UlG+EM5t7MPHiLuY= github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233 h1:d28BXYi+wUpz1KBmiF9bWrjEMacUEREV6MBi2ODnrfQ= +github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233/go.mod h1:geZJZH3SzKCqnz5VT0q/DyIG/tvu/dZk+VIfXicupJs= +github.com/crate-crypto/go-kzg-4844 v0.7.0 h1:C0vgZRk4q4EZ/JgPfzuSoxdCq3C3mOZMBShovmncxvA= +github.com/crate-crypto/go-kzg-4844 v0.7.0/go.mod h1:1kMhvPgI0Ky3yIa+9lFySEBUBXkYxeOi8ZF1sYioxhc= github.com/danieljoos/wincred v1.2.0 h1:ozqKHaLK0W/ii4KVbbvluM91W2H3Sh0BncbUNPS7jLE= github.com/danieljoos/wincred v1.2.0/go.mod h1:FzQLLMKBFdvu+osBrnFODiv32YGwCfx0SkRa/eYHgec= github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -75,10 +91,12 @@ github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2 h1:tdlZCpZ/P9DhczC github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/ethereum/go-ethereum v1.12.0 h1:bdnhLPtqETd4m3mS8BGMNvBTf36bO5bx/hxE2zljOa0= -github.com/ethereum/go-ethereum v1.12.0/go.mod h1:/oo2X/dZLJjf2mJ6YT9wcWxa4nNJDBKDBU6sFIpx1Gs= -github.com/fjl/memsize v0.0.0-20190710130421-bcb5799ab5e5 h1:FtmdgXiUlNeRsoNMFlKLDt+S+6hbjVMEW6RGQ7aUf7c= -github.com/fjl/memsize v0.0.0-20190710130421-bcb5799ab5e5/go.mod h1:VvhXpOYNQvB+uIk2RvXzuaQtkQJzzIx6lSBe1xv7hi0= +github.com/ethereum/c-kzg-4844 v0.4.0 h1:3MS1s4JtA868KpJxroZoepdV0ZKBp3u/O5HcZ7R3nlY= +github.com/ethereum/c-kzg-4844 v0.4.0/go.mod h1:VewdlzQmpT5QSrVhbBuGoCdFJkpaJlO1aQputP83wc0= +github.com/ethereum/go-ethereum v1.13.15 h1:U7sSGYGo4SPjP6iNIifNoyIAiNjrmQkz6EwQG+/EZWo= +github.com/ethereum/go-ethereum v1.13.15/go.mod h1:TN8ZiHrdJwSe8Cb6x+p0hs5CxhJZPbqB7hHkaUXcmIU= +github.com/fjl/memsize v0.0.2 h1:27txuSD9or+NZlnOWdKUxeBzTAUkWCVh+4Gf2dWFOzA= +github.com/fjl/memsize v0.0.2/go.mod h1:VvhXpOYNQvB+uIk2RvXzuaQtkQJzzIx6lSBe1xv7hi0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= @@ -86,8 +104,8 @@ github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uq github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff h1:tY80oXqGNY4FhTFhk+o9oFHGINQ/+vhlm8HFzi6znCI= github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff/go.mod h1:x7DCsMOv1taUwEWCzT4cmDeAkigA5/QCwUodaVOe8Ww= -github.com/getsentry/sentry-go v0.18.0 h1:MtBW5H9QgdcJabtZcuJG80BMOwaBpkRDZkxRkNC1sN0= -github.com/getsentry/sentry-go v0.18.0/go.mod h1:Kgon4Mby+FJ7ZWHFUAZgVaIa8sxHtnRJRLTXZr51aKQ= +github.com/gballet/go-verkle v0.1.1-0.20231031103413-a67434b50f46 h1:BAIP2GihuqhwdILrV+7GJel5lyPV3u1+PgzrWLc0TkE= +github.com/gballet/go-verkle v0.1.1-0.20231031103413-a67434b50f46/go.mod h1:QNpY22eby74jVhqH4WhDLDwxc/vqsern6pW+u2kbkpc= github.com/gin-contrib/cors v1.7.2 h1:oLDHxdg8W/XDoN/8zamqk/Drgt4oVZDvaV0YmvVICQw= github.com/gin-contrib/cors v1.7.2/go.mod h1:SUJVARKgQ40dmrzgXEVxj2m7Ig1v1qIboQkPDTQ9t2E= github.com/gin-contrib/gzip v0.0.6 h1:NjcunTcGAj5CO1gn4N8jHOSIeRFHIbn51z6K+xaN4d4= @@ -116,8 +134,6 @@ github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJn github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= github.com/go-playground/validator/v10 v10.20.0 h1:K9ISHbSaI0lyB2eWMPJo+kOS/FBExVwjEviJTixqxL8= github.com/go-playground/validator/v10 v10.20.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= -github.com/go-stack/stack v1.8.1 h1:ntEHSVwIt7PNXNpgPmVfMrNhLtgjlmnZha2kOpuRiDw= -github.com/go-stack/stack v1.8.1/go.mod h1:dcoOX6HbPZSZptuspn9bctJ+N/CnF5gGygcUP3XYfe4= github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk= @@ -126,8 +142,8 @@ github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw= github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang-jwt/jwt/v4 v4.3.0 h1:kHL1vqdqWNfATmA0FNMdmZNMyZI1U6O31X4rlIPoBog= -github.com/golang-jwt/jwt/v4 v4.3.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= +github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= +github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/glog v1.0.0 h1:nfP3RFugxnNRyKgeWd4oI1nYvXpxrx8ck8ZrcizshdQ= github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= @@ -137,8 +153,8 @@ github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfb github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb h1:PBC98N2aIaM3XXiurYmW7fx4GZkL8feAMVq7nEjURHk= github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/flatbuffers v1.12.1 h1:MVlul7pQNoDzWRLTw5imwYsl+usrS1TXG2H4jg6ImGw= @@ -150,19 +166,24 @@ github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= +github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/subcommands v1.2.0/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/hashicorp/go-bexpr v0.1.10 h1:9kuI5PFotCboP3dkDYFr/wi0gg0QVbSNz5oFRpxn4uE= github.com/hashicorp/go-bexpr v0.1.10/go.mod h1:oxlubA2vC/gFVfX1A6JGp7ls7uCDlfJn732ehYYg+g0= +github.com/holiman/billy v0.0.0-20240216141850-2abb0c79d3c4 h1:X4egAf/gcS1zATw6wn4Ej8vjuVGxeHdan+bRb2ebyv4= +github.com/holiman/billy v0.0.0-20240216141850-2abb0c79d3c4/go.mod h1:5GuXa7vkL8u9FkFuWdVvfR5ix8hRB7DbOAaYULamFpc= github.com/holiman/bloomfilter/v2 v2.0.3 h1:73e0e/V0tCydx14a0SCYS/EWCxgwLZ18CZcZKVu0fao= github.com/holiman/bloomfilter/v2 v2.0.3/go.mod h1:zpoh+gs7qcpqrHr3dB55AMiJwo0iURXE7ZOP9L9hSkA= github.com/holiman/uint256 v1.2.4 h1:jUc4Nk8fm9jZabQuqr2JzednajVmBpC+oiTiXZJEApU= github.com/holiman/uint256 v1.2.4/go.mod h1:EOMSn4q6Nyt9P6efbI3bueV4e1b3dGlUCXeiRV4ng7E= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/huin/goupnp v1.0.3 h1:N8No57ls+MnjlB+JPiCVSOyy/ot7MJTqlo7rn+NYSqQ= -github.com/huin/goupnp v1.0.3/go.mod h1:ZxNlw5WqJj6wSsRK5+YfflQGXYfccj5VgQsMNixHM7Y= +github.com/huin/goupnp v1.3.0 h1:UvLUlWDNpoUdYzb2TCn+MuTWtcjXKSza2n6CBdQ0xXc= +github.com/huin/goupnp v1.3.0/go.mod h1:gnGPsThkYa7bFi/KWmEysQRf48l2dvR5bxr2OFckNX8= github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus= github.com/jackpal/go-nat-pmp v1.0.2/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= @@ -188,6 +209,8 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= +github.com/leanovate/gopter v0.2.9 h1:fQjYxZaynp97ozCzfOyOuAGOU4aU/z37zf/tOujFk7c= +github.com/leanovate/gopter v0.2.9/go.mod h1:U2L/78B+KVFIx2VmW6onHJQzXtFb+p5y3y2Sh+Jxxv8= github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= @@ -200,14 +223,17 @@ github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWE github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWVwUuU= github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= +github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI= +github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/miguelmota/go-ethereum-hdwallet v0.1.2 h1:mz9LO6V7QCRkLYb0AH17t5R8KeqCe3E+hx9YXpmZeXA= github.com/miguelmota/go-ethereum-hdwallet v0.1.2/go.mod h1:fdNwFSoBFVBPnU0xpOd6l2ueqsPSH/Gch5kIvSvTGk8= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/pointerstructure v1.2.0 h1:O+i9nHnXS3l/9Wu7r4NrEdwA2VFTicjUEN1uBnDo34A= github.com/mitchellh/pointerstructure v1.2.0/go.mod h1:BRAsLI5zgXmw97Lf6s25bs8ohIXc3tViBH44KcwB2g4= +github.com/mmcloughlin/addchain v0.4.0 h1:SobOdjm2xLj1KkXN5/n0xTIWyZA2+s99UCY1iPfkHRY= +github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqkyU72HC5wJ4RlU= +github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -228,14 +254,14 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= -github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw= -github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y= -github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= -github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= -github.com/prometheus/common v0.39.0 h1:oOyhkDq05hPZKItWVBkJ6g6AtGxi+fy7F4JvUV8uhsI= -github.com/prometheus/common v0.39.0/go.mod h1:6XBZ7lYdLCbkAVhwRsWTZn+IN5AB9F/NXd5w0BbEX0Y= -github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI= -github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY= +github.com/prometheus/client_golang v1.12.0 h1:C+UIj/QWtmqY13Arb8kwMt5j34/0Z2iKamrJ+ryC0Gg= +github.com/prometheus/client_golang v1.12.0/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= +github.com/prometheus/client_model v0.2.1-0.20210607210712-147c58e9608a h1:CmF68hwI0XsOQ5UwlBopMi2Ow4Pbg32akc4KIVCOm+Y= +github.com/prometheus/client_model v0.2.1-0.20210607210712-147c58e9608a/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= +github.com/prometheus/common v0.32.1 h1:hWIdL3N2HoUx3B8j3YN9mWor0qhY/NlEKZEaXxuIRh4= +github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= +github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU= +github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= @@ -244,8 +270,8 @@ github.com/rs/cors v1.7.0 h1:+88SsELBHx5r+hZ8TCkggzSstaWNbDvThkVK8H6f9ik= github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/sashabaranov/go-openai v1.21.0 h1:isAf3zPSD3VLd0pC2/2Q6ZyRK7jzPAaz+X3rjsviaYQ= -github.com/sashabaranov/go-openai v1.21.0/go.mod h1:lj5b/K+zjTSFxVLijLSTDZuP7adOgerWeFyZLUhAKRg= +github.com/sashabaranov/go-openai v1.24.1 h1:DWK95XViNb+agQtuzsn+FyHhn3HQJ7Va8z04DQDJ1MI= +github.com/sashabaranov/go-openai v1.24.1/go.mod h1:lj5b/K+zjTSFxVLijLSTDZuP7adOgerWeFyZLUhAKRg= github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible h1:Bn1aCHHRnjv4Bl16T8rcaFjYSrGrIZvpiGO6P3Q4GpU= github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/shirou/gopsutil/v3 v3.23.11 h1:i3jP9NjCPUz7FiZKxlMnODZkdSIp2gnzfrvsu9CuWEQ= @@ -270,6 +296,8 @@ github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/supranational/blst v0.3.11 h1:LyU6FolezeWAhvQk0k6O/d49jqgO52MSDDfYgbeoEm4= +github.com/supranational/blst v0.3.11/go.mod h1:jZJtfjgudtNl4en1tzwPIV3KjUnQUvG3/j+w+fVonLw= github.com/swaggo/files v1.0.1 h1:J1bVJ4XHZNq0I46UU90611i9/YzdrF7x92oX1ig5IdE= github.com/swaggo/files v1.0.1/go.mod h1:0qXmMNH6sXNf+73t65aKeB+ApmgxdnkQzVTAj2uaMUg= github.com/swaggo/gin-swagger v1.6.0 h1:y8sxvQ3E20/RCyrXeFfg60r6H0Z+SwpTjMYsMm+zy8M= @@ -288,8 +316,8 @@ github.com/tyler-smith/go-bip39 v1.1.0 h1:5eUemwrMargf3BSLRRCalXT93Ns6pQJIjYQN2n github.com/tyler-smith/go-bip39 v1.1.0/go.mod h1:gUYDtqQw1JS3ZJ8UWVcGTGqqr6YIN3CWg+kkNaLt55U= github.com/ugorji/go/codec v1.2.12 h1:9LC83zGrHhuUA9l16C9AHXAqEV/2wBQ4nkvumAE65EE= github.com/ugorji/go/codec v1.2.12/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= -github.com/urfave/cli/v2 v2.17.2-0.20221006022127-8f469abc00aa h1:5SqCsI/2Qya2bCzK15ozrqo2sZxkh0FHynJZOTVoV6Q= -github.com/urfave/cli/v2 v2.17.2-0.20221006022127-8f469abc00aa/go.mod h1:1CNUng3PtjQMtRzJO4FMXBQvkGtuYRxxiR9xMa7jMwI= +github.com/urfave/cli/v2 v2.25.7 h1:VAzn5oq403l5pHjc4OhD54+XGO9cdKVL/7lDjF+iKUs= +github.com/urfave/cli/v2 v2.25.7/go.mod h1:8qnjx1vcq5s2/wpsqoZFndg2CE5tNFyrTvS6SinrnYQ= github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU= github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -322,8 +350,8 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI= golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63 h1:m64FZMko/V45gv0bNmrNYoDEq8U5YUhetc9cBWKS1TQ= -golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63/go.mod h1:0v4NqG35kSWCMzLaMeX+IQrlSnVE/bqGSyC2cz/9Le8= +golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa h1:FRnLl4eNAQl8hwxVVC17teOw8kdjVDVAiFMtgUdTSRQ= +golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa/go.mod h1:zk2irFbV9DP96SEBUUAy67IdHUaZuSnrz1n472HUCLE= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -387,8 +415,8 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk= golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/time v0.0.0-20220922220347-f3bd1da661af h1:Yx9k8YCG3dvF87UAn2tu2HQLf2dt/eR1bXxpLMWeH+Y= -golang.org/x/time v0.0.0-20220922220347-f3bd1da661af/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= @@ -419,14 +447,16 @@ gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EV gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8= gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= -gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce h1:+JknDZhAj8YMt7GC73Ei8pv4MzjDUNPHgQWJdtMAaDU= -gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce/go.mod h1:5AcXVHNjg+BDxry382+8OKon8SEWiKktQR07RKPsv1c= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= +rsc.io/tmplfunc v0.0.3 h1:53XFQh69AfOa8Tw0Jm7t+GV7KZhOi6jzsCzTtKbMvzU= +rsc.io/tmplfunc v0.0.3/go.mod h1:AG3sTPzElb1Io3Yg4voV9AGZJuleGAwaVRxL9M49PhA= diff --git a/proxy-router/internal/config/config.go b/proxy-router/internal/config/config.go index 9dd323cd..c8014dd5 100644 --- a/proxy-router/internal/config/config.go +++ b/proxy-router/internal/config/config.go @@ -21,7 +21,8 @@ type Config struct { OpenAIKey string `env:"OPENAI_API_KEY" flag:"open-ai-api-key"` } Blockchain struct { - EthNodeAddress string `env:"ETH_NODE_ADDRESS" flag:"eth-node-address" validate:"required,url"` + ChainID int `env:"ETH_NODE_CHAIN_ID" flag:"eth-node-chain-id" validate:"required,number"` + EthNodeAddress string `env:"ETH_NODE_ADDRESS" flag:"eth-node-address" validate:"omitempty,url"` EthLegacyTx bool `env:"ETH_NODE_LEGACY_TX" flag:"eth-node-legacy-tx" desc:"use it to disable EIP-1559 transactions"` ExplorerApiUrl string `env:"EXPLORER_API_URL" flag:"explorer-api-url" validate:"required,url"` } diff --git a/proxy-router/internal/repositories/ethclient/ethclient.go b/proxy-router/internal/repositories/ethclient/ethclient.go new file mode 100644 index 00000000..842e8689 --- /dev/null +++ b/proxy-router/internal/repositories/ethclient/ethclient.go @@ -0,0 +1,273 @@ +package ethclient + +import ( + "context" + "errors" + "fmt" + "math/big" + + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" + "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/common/hexutil" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/rpc" +) + +// Client defines typed wrappers for the Ethereum RPC API. +type Client struct { + c RPCClient +} + +// NewClient creates a client that uses the given RPC client. +func NewClient(c RPCClient) *Client { + return &Client{c} +} + +// Close closes the underlying RPC connection. +func (ec *Client) Close() { + ec.c.Close() +} + +// Client gets the underlying RPC client. +func (ec *Client) Client() RPCClient { + return ec.c +} + +// Blockchain Access + +// ChainID retrieves the current chain ID for transaction replay protection. +func (ec *Client) ChainID(ctx context.Context) (*big.Int, error) { + var result hexutil.Big + err := ec.c.CallContext(ctx, &result, "eth_chainId") + if err != nil { + return nil, err + } + return (*big.Int)(&result), err +} + +// BlockNumber returns the most recent block number +func (ec *Client) BlockNumber(ctx context.Context) (uint64, error) { + var result hexutil.Uint64 + err := ec.c.CallContext(ctx, &result, "eth_blockNumber") + return uint64(result), err +} + +// HeaderByNumber returns a block header from the current canonical chain. If number is +// nil, the latest known header is returned. +func (ec *Client) HeaderByNumber(ctx context.Context, number *big.Int) (*types.Header, error) { + var head *types.Header + err := ec.c.CallContext(ctx, &head, "eth_getBlockByNumber", toBlockNumArg(number), false) + if err == nil && head == nil { + err = ethereum.NotFound + } + return head, err +} + +// TransactionReceipt returns the receipt of a transaction by transaction hash. +// Note that the receipt is not available for pending transactions. +func (ec *Client) TransactionReceipt(ctx context.Context, txHash common.Hash) (*types.Receipt, error) { + var r *types.Receipt + err := ec.c.CallContext(ctx, &r, "eth_getTransactionReceipt", txHash) + if err == nil && r == nil { + return nil, ethereum.NotFound + } + return r, err +} + +// State Access + +// BalanceAt returns the wei balance of the given account. +// The block number can be nil, in which case the balance is taken from the latest known block. +func (ec *Client) BalanceAt(ctx context.Context, account common.Address, blockNumber *big.Int) (*big.Int, error) { + var result hexutil.Big + err := ec.c.CallContext(ctx, &result, "eth_getBalance", account, toBlockNumArg(blockNumber)) + return (*big.Int)(&result), err +} + +// CodeAt returns the contract code of the given account. +// The block number can be nil, in which case the code is taken from the latest known block. +func (ec *Client) CodeAt(ctx context.Context, account common.Address, blockNumber *big.Int) ([]byte, error) { + var result hexutil.Bytes + err := ec.c.CallContext(ctx, &result, "eth_getCode", account, toBlockNumArg(blockNumber)) + return result, err +} + +// Filters + +// FilterLogs executes a filter query. +func (ec *Client) FilterLogs(ctx context.Context, q ethereum.FilterQuery) ([]types.Log, error) { + var result []types.Log + arg, err := toFilterArg(q) + if err != nil { + return nil, err + } + err = ec.c.CallContext(ctx, &result, "eth_getLogs", arg) + return result, err +} + +// SubscribeFilterLogs subscribes to the results of a streaming filter query. +func (ec *Client) SubscribeFilterLogs(ctx context.Context, q ethereum.FilterQuery, ch chan<- types.Log) (ethereum.Subscription, error) { + arg, err := toFilterArg(q) + if err != nil { + return nil, err + } + sub, err := ec.c.EthSubscribe(ctx, ch, "logs", arg) + if err != nil { + // Defensively prefer returning nil interface explicitly on error-path, instead + // of letting default golang behavior wrap it with non-nil interface that stores + // nil concrete type value. + return nil, err + } + return sub, nil +} + +func toFilterArg(q ethereum.FilterQuery) (interface{}, error) { + arg := map[string]interface{}{ + "address": q.Addresses, + "topics": q.Topics, + } + if q.BlockHash != nil { + arg["blockHash"] = *q.BlockHash + if q.FromBlock != nil || q.ToBlock != nil { + return nil, errors.New("cannot specify both BlockHash and FromBlock/ToBlock") + } + } else { + if q.FromBlock == nil { + arg["fromBlock"] = "0x0" + } else { + arg["fromBlock"] = toBlockNumArg(q.FromBlock) + } + arg["toBlock"] = toBlockNumArg(q.ToBlock) + } + return arg, nil +} + +// PendingCodeAt returns the contract code of the given account in the pending state. +func (ec *Client) PendingCodeAt(ctx context.Context, account common.Address) ([]byte, error) { + var result hexutil.Bytes + err := ec.c.CallContext(ctx, &result, "eth_getCode", account, "pending") + return result, err +} + +// PendingNonceAt returns the account nonce of the given account in the pending state. +// This is the nonce that should be used for the next transaction. +func (ec *Client) PendingNonceAt(ctx context.Context, account common.Address) (uint64, error) { + var result hexutil.Uint64 + err := ec.c.CallContext(ctx, &result, "eth_getTransactionCount", account, "pending") + return uint64(result), err +} + +// Contract Calling + +// CallContract executes a message call transaction, which is directly executed in the VM +// of the node, but never mined into the blockchain. +// +// blockNumber selects the block height at which the call runs. It can be nil, in which +// case the code is taken from the latest known block. Note that state from very old +// blocks might not be available. +func (ec *Client) CallContract(ctx context.Context, msg ethereum.CallMsg, blockNumber *big.Int) ([]byte, error) { + var hex hexutil.Bytes + err := ec.c.CallContext(ctx, &hex, "eth_call", toCallArg(msg), toBlockNumArg(blockNumber)) + if err != nil { + return nil, err + } + return hex, nil +} + +// SuggestGasPrice retrieves the currently suggested gas price to allow a timely +// execution of a transaction. +func (ec *Client) SuggestGasPrice(ctx context.Context) (*big.Int, error) { + var hex hexutil.Big + if err := ec.c.CallContext(ctx, &hex, "eth_gasPrice"); err != nil { + return nil, err + } + return (*big.Int)(&hex), nil +} + +// SuggestGasTipCap retrieves the currently suggested gas tip cap after 1559 to +// allow a timely execution of a transaction. +func (ec *Client) SuggestGasTipCap(ctx context.Context) (*big.Int, error) { + var hex hexutil.Big + if err := ec.c.CallContext(ctx, &hex, "eth_maxPriorityFeePerGas"); err != nil { + return nil, err + } + return (*big.Int)(&hex), nil +} + +// EstimateGas tries to estimate the gas needed to execute a specific transaction based on +// the current pending state of the backend blockchain. There is no guarantee that this is +// the true gas limit requirement as other transactions may be added or removed by miners, +// but it should provide a basis for setting a reasonable default. +func (ec *Client) EstimateGas(ctx context.Context, msg ethereum.CallMsg) (uint64, error) { + var hex hexutil.Uint64 + err := ec.c.CallContext(ctx, &hex, "eth_estimateGas", toCallArg(msg)) + if err != nil { + return 0, err + } + return uint64(hex), nil +} + +// SendTransaction injects a signed transaction into the pending pool for execution. +// +// If the transaction was a contract creation use the TransactionReceipt method to get the +// contract address after the transaction has been mined. +func (ec *Client) SendTransaction(ctx context.Context, tx *types.Transaction) error { + data, err := tx.MarshalBinary() + if err != nil { + return err + } + return ec.c.CallContext(ctx, nil, "eth_sendRawTransaction", hexutil.Encode(data)) +} + +func toBlockNumArg(number *big.Int) string { + if number == nil { + return "latest" + } + if number.Sign() >= 0 { + return hexutil.EncodeBig(number) + } + // It's negative. + if number.IsInt64() { + return rpc.BlockNumber(number.Int64()).String() + } + // It's negative and large, which is invalid. + return fmt.Sprintf("", number) +} + +func toCallArg(msg ethereum.CallMsg) interface{} { + arg := map[string]interface{}{ + "from": msg.From, + "to": msg.To, + } + if len(msg.Data) > 0 { + arg["input"] = hexutil.Bytes(msg.Data) + } + if msg.Value != nil { + arg["value"] = (*hexutil.Big)(msg.Value) + } + if msg.Gas != 0 { + arg["gas"] = hexutil.Uint64(msg.Gas) + } + if msg.GasPrice != nil { + arg["gasPrice"] = (*hexutil.Big)(msg.GasPrice) + } + if msg.GasFeeCap != nil { + arg["maxFeePerGas"] = (*hexutil.Big)(msg.GasFeeCap) + } + if msg.GasTipCap != nil { + arg["maxPriorityFeePerGas"] = (*hexutil.Big)(msg.GasTipCap) + } + if msg.AccessList != nil { + arg["accessList"] = msg.AccessList + } + if msg.BlobGasFeeCap != nil { + arg["maxFeePerBlobGas"] = (*hexutil.Big)(msg.BlobGasFeeCap) + } + if msg.BlobHashes != nil { + arg["blobVersionedHashes"] = msg.BlobHashes + } + return arg +} + +var _ interfaces.EthClient = (*Client)(nil) diff --git a/proxy-router/internal/repositories/ethclient/ethclient_test.go b/proxy-router/internal/repositories/ethclient/ethclient_test.go new file mode 100644 index 00000000..f93248d6 --- /dev/null +++ b/proxy-router/internal/repositories/ethclient/ethclient_test.go @@ -0,0 +1,41 @@ +package ethclient + +import ( + "fmt" + "sync" + "testing" + + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/modelregistry" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" + "github.com/ethereum/go-ethereum/common" + "github.com/stretchr/testify/require" +) + +func TestEthClient(t *testing.T) { + t.SkipNow() + rpcClient, err := NewRPCClientMultiple([]string{ + "https://arbitrum.blockpi.network/v1/rpc/public", + }, &lib.LoggerMock{}) + require.NoError(t, err) + client := NewClient(rpcClient) + + wg := sync.WaitGroup{} + + mr, err := modelregistry.NewModelRegistry(common.HexToAddress("0x0FC0c323Cf76E188654D63D62e668caBeC7a525b"), client) + require.NoError(t, err) + + for i := 0; i < 500; i++ { + wg.Add(1) + go func() { + ids, _, err := mr.ModelGetAll(nil) + defer wg.Done() + if err != nil { + fmt.Printf("Error: %s\n", err) + return + } + fmt.Printf("Models number: %d\n", len(ids)) + }() + + } + wg.Wait() +} diff --git a/proxy-router/internal/repositories/ethclient/public.go b/proxy-router/internal/repositories/ethclient/public.go new file mode 100644 index 00000000..212e3389 --- /dev/null +++ b/proxy-router/internal/repositories/ethclient/public.go @@ -0,0 +1,51 @@ +package ethclient + +import ( + "fmt" + + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" +) + +var publicRPCURLs = map[int][]string{ + 421614: { + "https://arbitrum-sepolia.blockpi.network/v1/rpc/public", + "https://sepolia-rollup.arbitrum.io/rpc", + "https://arbitrum-sepolia.gateway.tenderly.co", + "https://endpoints.omniatech.io/v1/arbitrum/sepolia/public", + "https://public.stackup.sh/api/v1/node/arbitrum-sepolia", + "https://arbitrum-sepolia-rpc.publicnode.com", + "https://rpc.ankr.com/arbitrum_sepolia", + "https://arbitrum-sepolia.public.blastapi.io", + }, + 42161: { + "https://arbitrum.llamarpc.com", + "https://api.zan.top/node/v1/arb/one/public", + "https://1rpc.io/arb", + "https://arbitrum.blockpi.network/v1/rpc/public", + "https://arb-pokt.nodies.app", + "https://arbitrum.drpc.org", + "https://arbitrum.meowrpc.com", + "https://rpc.ankr.com/arbitrum", + "https://arbitrum-one.public.blastapi.io", + "https://arbitrum.gateway.tenderly.co", + "https://arbitrum-one-rpc.publicnode.com", + "https://arbitrum-one.publicnode.com", + "https://arb1.arbitrum.io/rpc", + "https://arbitrum.rpc.subquery.network/public", + "https://api.stateless.solutions/arbitrum-one/v1/demo", + "https://public.stackup.sh/api/v1/node/arbitrum-one", + "https://rpc.arb1.arbitrum.gateway.fm", + "https://arb-mainnet-public.unifra.io", + "https://arb-mainnet.g.alchemy.com/v2/demo", + }, +} + +var ErrNotSupportedChain = fmt.Errorf("chain is not supported") + +func GetPublicRPCURLs(chainID int) ([]string, error) { + urls, ok := publicRPCURLs[chainID] + if !ok { + return nil, lib.WrapError(ErrNotSupportedChain, fmt.Errorf("chainID: %d", chainID)) + } + return urls, nil +} diff --git a/proxy-router/internal/repositories/ethclient/rpcclient.go b/proxy-router/internal/repositories/ethclient/rpcclient.go new file mode 100644 index 00000000..f127020e --- /dev/null +++ b/proxy-router/internal/repositories/ethclient/rpcclient.go @@ -0,0 +1,14 @@ +package ethclient + +import ( + "context" + + "github.com/ethereum/go-ethereum/rpc" +) + +type RPCClient interface { + Close() + BatchCallContext(context.Context, []rpc.BatchElem) error + CallContext(ctx context.Context, result interface{}, method string, args ...interface{}) error + EthSubscribe(ctx context.Context, channel interface{}, args ...interface{}) (*rpc.ClientSubscription, error) +} diff --git a/proxy-router/internal/repositories/ethclient/rpcclientmultiple.go b/proxy-router/internal/repositories/ethclient/rpcclientmultiple.go new file mode 100644 index 00000000..f07c3e13 --- /dev/null +++ b/proxy-router/internal/repositories/ethclient/rpcclientmultiple.go @@ -0,0 +1,106 @@ +package ethclient + +import ( + "context" + "fmt" + + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" + "github.com/ethereum/go-ethereum/rpc" +) + +// Wrapper around multiple RPC clients, used to retry calls on multiple endpoints +type RPCClientMultiple struct { + clients []*rpcClient + log lib.ILogger +} + +func NewRPCClientMultiple(urls []string, log lib.ILogger) (*RPCClientMultiple, error) { + clients := make([]*rpcClient, len(urls)) + + for i, url := range urls { + client, err := rpc.DialOptions(context.Background(), url) + if err != nil { + return nil, err + } + clients[i] = &rpcClient{ + url: url, + client: client, + } + } + + return &RPCClientMultiple{clients: clients, log: log}, nil +} + +func (c *RPCClientMultiple) CallContext(ctx context.Context, result interface{}, method string, args ...interface{}) error { + return c.retriableCall(ctx, func(client *rpcClient) error { + return client.client.CallContext(ctx, result, method, args...) + }) +} + +func (c *RPCClientMultiple) BatchCallContext(ctx context.Context, b []rpc.BatchElem) error { + return c.retriableCall(ctx, func(client *rpcClient) error { + return client.client.BatchCallContext(ctx, b) + }) +} + +func (c *RPCClientMultiple) Close() { + for _, rpcClient := range c.clients { + rpcClient.client.Close() + } +} + +func (c *RPCClientMultiple) EthSubscribe(ctx context.Context, channel interface{}, args ...interface{}) (*rpc.ClientSubscription, error) { + return nil, fmt.Errorf("not implemented") +} + +// retriableCall is a helper function that retries the call on different endpoints +func (c *RPCClientMultiple) retriableCall(ctx context.Context, fn func(client *rpcClient) error) error { + var lastErr error + + for _, rpcClient := range c.clients { + if ctx.Err() != nil { + return ctx.Err() + } + + c.log.Debugf("calling eth endpoint %s", rpcClient.url) + err := fn(rpcClient) + if err == nil { + return nil + } + + retryable := c.shouldBeRetried(err) + c.log.Debugf("error (retryable: %t) calling eth endpoint %s: %s", retryable, rpcClient.url, err) + if !retryable { + return err + } + + lastErr = err + } + + c.log.Debugf("all endpoints failed") + return lastErr +} + +func (c *RPCClientMultiple) shouldBeRetried(err error) bool { + switch err.(type) { + case rpc.HTTPError: + // if err.(rpc.HTTPError).StatusCode == 429 { + // return true + // } + return true + case JSONError: + return false + } + return false +} + +type JSONError interface { + Error() string + ErrorCode() int + ErrorData() interface{} +} + +type rpcClient struct { + url string + client *rpc.Client +} From 47ecce20bfec5b037b1fa66930fd4b2b56dbc7e2 Mon Sep 17 00:00:00 2001 From: shev Date: Thu, 10 Oct 2024 12:31:31 +0200 Subject: [PATCH 042/260] feat: polling/subscription modes for getting blockchain events --- proxy-router/.mockery.yaml | 9 + proxy-router/Makefile | 5 +- proxy-router/cmd/main.go | 10 +- .../internal/blockchainapi/event_listener.go | 6 +- proxy-router/internal/config/config.go | 20 +- .../interfaces/mocks/eth_client_mock.go | 910 ++++++++++++++++++ .../repositories/contracts/log_watcher.go | 13 + .../contracts/log_watcher_polling.go | 109 +++ .../contracts/log_watcher_polling_test.go | 159 +++ .../contracts/log_watcher_subscription.go | 103 ++ .../internal/repositories/contracts/mapper.go | 2 - .../repositories/contracts/subscription.go | 98 +- 12 files changed, 1337 insertions(+), 107 deletions(-) create mode 100644 proxy-router/.mockery.yaml create mode 100644 proxy-router/internal/interfaces/mocks/eth_client_mock.go create mode 100644 proxy-router/internal/repositories/contracts/log_watcher.go create mode 100644 proxy-router/internal/repositories/contracts/log_watcher_polling.go create mode 100644 proxy-router/internal/repositories/contracts/log_watcher_polling_test.go create mode 100644 proxy-router/internal/repositories/contracts/log_watcher_subscription.go diff --git a/proxy-router/.mockery.yaml b/proxy-router/.mockery.yaml new file mode 100644 index 00000000..896ce376 --- /dev/null +++ b/proxy-router/.mockery.yaml @@ -0,0 +1,9 @@ +with-expecter: true +filename: "{{.InterfaceName | snakecase}}_mock.go" +dir: "{{.InterfaceDir}}/mocks" +mockname: "{{.InterfaceName}}Mock" +outpkg: "mocks" +packages: + github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces: + interfaces: + EthClient: diff --git a/proxy-router/Makefile b/proxy-router/Makefile index ffdc7b6f..1f14645d 100644 --- a/proxy-router/Makefile +++ b/proxy-router/Makefile @@ -35,4 +35,7 @@ test-integration: go test -v ./test/... swagger: - swag fmt -g ./internal/handlers/httphandlers/http.go && swag init -g ./internal/handlers/httphandlers/http.go --parseInternal \ No newline at end of file + swag fmt -g ./internal/handlers/httphandlers/http.go && swag init -g ./internal/handlers/httphandlers/http.go --parseInternal + +mocks: + mockery \ No newline at end of file diff --git a/proxy-router/cmd/main.go b/proxy-router/cmd/main.go index aa22e37c..67ce4304 100644 --- a/proxy-router/cmd/main.go +++ b/proxy-router/cmd/main.go @@ -19,6 +19,7 @@ import ( "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/proxyapi" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/proxyctl" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/contracts" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/ethclient" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/registries" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/transport" @@ -225,6 +226,13 @@ func start() error { log.Infof("Using keychain wallet") } + var logWatcher contracts.LogWatcher + if cfg.Blockchain.UseSubscriptions { + logWatcher = contracts.NewLogWatcherSubscription(ethClient, cfg.Blockchain.MaxReconnects, log) + } else { + logWatcher = contracts.NewLogWatcherPolling(ethClient, cfg.Blockchain.PollingInterval, cfg.Blockchain.MaxReconnects, log) + } + modelConfigLoader := config.NewModelConfigLoader(cfg.Proxy.ModelsConfigPath, log) err = modelConfigLoader.Init() if err != nil { @@ -237,7 +245,7 @@ func start() error { sessionRouter := registries.NewSessionRouter(*cfg.Marketplace.DiamondContractAddress, ethClient, log) - eventListener := blockchainapi.NewEventsListener(ethClient, sessionStorage, sessionRouter, wallet, modelConfigLoader, log) + eventListener := blockchainapi.NewEventsListener(ethClient, sessionStorage, sessionRouter, wallet, modelConfigLoader, logWatcher, log) blockchainController := blockchainapi.NewBlockchainController(blockchainApi, log) diff --git a/proxy-router/internal/blockchainapi/event_listener.go b/proxy-router/internal/blockchainapi/event_listener.go index cbe0511e..d4b2b3fb 100644 --- a/proxy-router/internal/blockchainapi/event_listener.go +++ b/proxy-router/internal/blockchainapi/event_listener.go @@ -21,9 +21,10 @@ type EventsListener struct { client bind.ContractFilterer wallet interfaces.Wallet modelConfigLoader *config.ModelConfigLoader + logWatcher contracts.LogWatcher } -func NewEventsListener(client bind.ContractFilterer, store *storages.SessionStorage, sessionRouter *registries.SessionRouter, wallet interfaces.Wallet, modelConfigLoader *config.ModelConfigLoader, log *lib.Logger) *EventsListener { +func NewEventsListener(client bind.ContractFilterer, store *storages.SessionStorage, sessionRouter *registries.SessionRouter, wallet interfaces.Wallet, modelConfigLoader *config.ModelConfigLoader, logWatcher contracts.LogWatcher, log *lib.Logger) *EventsListener { return &EventsListener{ store: store, log: log, @@ -31,6 +32,7 @@ func NewEventsListener(client bind.ContractFilterer, store *storages.SessionStor client: client, wallet: wallet, modelConfigLoader: modelConfigLoader, + logWatcher: logWatcher, } } @@ -39,7 +41,7 @@ func (e *EventsListener) Run(ctx context.Context) error { _ = e.log.Close() }() - sub, err := contracts.WatchContractEvents(ctx, e.client, e.sessionRouter.GetContractAddress(), contracts.CreateEventMapper(contracts.BlockchainEventFactory, e.sessionRouter.GetABI()), e.log) + sub, err := e.logWatcher.Watch(ctx, e.sessionRouter.GetContractAddress(), contracts.CreateEventMapper(contracts.SessionRouterEventFactory, e.sessionRouter.GetABI()), nil) if err != nil { return err } diff --git a/proxy-router/internal/config/config.go b/proxy-router/internal/config/config.go index c8014dd5..896bb124 100644 --- a/proxy-router/internal/config/config.go +++ b/proxy-router/internal/config/config.go @@ -4,6 +4,7 @@ import ( "fmt" "math/big" "runtime" + "time" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" "github.com/ethereum/go-ethereum/common" @@ -21,10 +22,13 @@ type Config struct { OpenAIKey string `env:"OPENAI_API_KEY" flag:"open-ai-api-key"` } Blockchain struct { - ChainID int `env:"ETH_NODE_CHAIN_ID" flag:"eth-node-chain-id" validate:"required,number"` - EthNodeAddress string `env:"ETH_NODE_ADDRESS" flag:"eth-node-address" validate:"omitempty,url"` - EthLegacyTx bool `env:"ETH_NODE_LEGACY_TX" flag:"eth-node-legacy-tx" desc:"use it to disable EIP-1559 transactions"` - ExplorerApiUrl string `env:"EXPLORER_API_URL" flag:"explorer-api-url" validate:"required,url"` + ChainID int `env:"ETH_NODE_CHAIN_ID" flag:"eth-node-chain-id" validate:"required,number"` + EthNodeAddress string `env:"ETH_NODE_ADDRESS" flag:"eth-node-address" validate:"omitempty,url"` + EthLegacyTx bool `env:"ETH_NODE_LEGACY_TX" flag:"eth-node-legacy-tx" desc:"use it to disable EIP-1559 transactions"` + ExplorerApiUrl string `env:"EXPLORER_API_URL" flag:"explorer-api-url" validate:"required,url"` + UseSubscriptions bool `env:"ETH_NODE_USE_SUBSCRIPTIONS" flag:"eth-node-use-subscriptions" desc:"set it to true to enable subscriptions for blockchain events, otherwise default polling will be used"` + PollingInterval time.Duration `env:"ETH_NODE_POLLING_INTERVAL" flag:"eth-node-polling-interval" validate:"omitempty,duration" desc:"interval for polling eth node for new events"` + MaxReconnects int `env:"ETH_NODE_MAX_RECONNECTS" flag:"eth-node-max-reconnects" validate:"omitempty,gte=0" desc:"max reconnects to eth node"` } Environment string `env:"ENVIRONMENT" flag:"environment"` Marketplace struct { @@ -70,6 +74,14 @@ func (cfg *Config) SetDefaults() { cfg.Environment = "development" } + // Blockchain + if cfg.Blockchain.MaxReconnects == 0 { + cfg.Blockchain.MaxReconnects = 30 + } + if cfg.Blockchain.PollingInterval == 0 { + cfg.Blockchain.PollingInterval = 10 * time.Second + } + // Log if cfg.Log.LevelConnection == "" { diff --git a/proxy-router/internal/interfaces/mocks/eth_client_mock.go b/proxy-router/internal/interfaces/mocks/eth_client_mock.go new file mode 100644 index 00000000..08c7b500 --- /dev/null +++ b/proxy-router/internal/interfaces/mocks/eth_client_mock.go @@ -0,0 +1,910 @@ +// Code generated by mockery v2.46.2. DO NOT EDIT. + +package mocks + +import ( + context "context" + big "math/big" + + common "github.com/ethereum/go-ethereum/common" + + ethereum "github.com/ethereum/go-ethereum" + + mock "github.com/stretchr/testify/mock" + + types "github.com/ethereum/go-ethereum/core/types" +) + +// EthClientMock is an autogenerated mock type for the EthClient type +type EthClientMock struct { + mock.Mock +} + +type EthClientMock_Expecter struct { + mock *mock.Mock +} + +func (_m *EthClientMock) EXPECT() *EthClientMock_Expecter { + return &EthClientMock_Expecter{mock: &_m.Mock} +} + +// BalanceAt provides a mock function with given fields: _a0, _a1, _a2 +func (_m *EthClientMock) BalanceAt(_a0 context.Context, _a1 common.Address, _a2 *big.Int) (*big.Int, error) { + ret := _m.Called(_a0, _a1, _a2) + + if len(ret) == 0 { + panic("no return value specified for BalanceAt") + } + + var r0 *big.Int + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, common.Address, *big.Int) (*big.Int, error)); ok { + return rf(_a0, _a1, _a2) + } + if rf, ok := ret.Get(0).(func(context.Context, common.Address, *big.Int) *big.Int); ok { + r0 = rf(_a0, _a1, _a2) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*big.Int) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, common.Address, *big.Int) error); ok { + r1 = rf(_a0, _a1, _a2) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EthClientMock_BalanceAt_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BalanceAt' +type EthClientMock_BalanceAt_Call struct { + *mock.Call +} + +// BalanceAt is a helper method to define mock.On call +// - _a0 context.Context +// - _a1 common.Address +// - _a2 *big.Int +func (_e *EthClientMock_Expecter) BalanceAt(_a0 interface{}, _a1 interface{}, _a2 interface{}) *EthClientMock_BalanceAt_Call { + return &EthClientMock_BalanceAt_Call{Call: _e.mock.On("BalanceAt", _a0, _a1, _a2)} +} + +func (_c *EthClientMock_BalanceAt_Call) Run(run func(_a0 context.Context, _a1 common.Address, _a2 *big.Int)) *EthClientMock_BalanceAt_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(common.Address), args[2].(*big.Int)) + }) + return _c +} + +func (_c *EthClientMock_BalanceAt_Call) Return(_a0 *big.Int, _a1 error) *EthClientMock_BalanceAt_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EthClientMock_BalanceAt_Call) RunAndReturn(run func(context.Context, common.Address, *big.Int) (*big.Int, error)) *EthClientMock_BalanceAt_Call { + _c.Call.Return(run) + return _c +} + +// BlockNumber provides a mock function with given fields: _a0 +func (_m *EthClientMock) BlockNumber(_a0 context.Context) (uint64, error) { + ret := _m.Called(_a0) + + if len(ret) == 0 { + panic("no return value specified for BlockNumber") + } + + var r0 uint64 + var r1 error + if rf, ok := ret.Get(0).(func(context.Context) (uint64, error)); ok { + return rf(_a0) + } + if rf, ok := ret.Get(0).(func(context.Context) uint64); ok { + r0 = rf(_a0) + } else { + r0 = ret.Get(0).(uint64) + } + + if rf, ok := ret.Get(1).(func(context.Context) error); ok { + r1 = rf(_a0) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EthClientMock_BlockNumber_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockNumber' +type EthClientMock_BlockNumber_Call struct { + *mock.Call +} + +// BlockNumber is a helper method to define mock.On call +// - _a0 context.Context +func (_e *EthClientMock_Expecter) BlockNumber(_a0 interface{}) *EthClientMock_BlockNumber_Call { + return &EthClientMock_BlockNumber_Call{Call: _e.mock.On("BlockNumber", _a0)} +} + +func (_c *EthClientMock_BlockNumber_Call) Run(run func(_a0 context.Context)) *EthClientMock_BlockNumber_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context)) + }) + return _c +} + +func (_c *EthClientMock_BlockNumber_Call) Return(_a0 uint64, _a1 error) *EthClientMock_BlockNumber_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EthClientMock_BlockNumber_Call) RunAndReturn(run func(context.Context) (uint64, error)) *EthClientMock_BlockNumber_Call { + _c.Call.Return(run) + return _c +} + +// CallContract provides a mock function with given fields: ctx, call, blockNumber +func (_m *EthClientMock) CallContract(ctx context.Context, call ethereum.CallMsg, blockNumber *big.Int) ([]byte, error) { + ret := _m.Called(ctx, call, blockNumber) + + if len(ret) == 0 { + panic("no return value specified for CallContract") + } + + var r0 []byte + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, ethereum.CallMsg, *big.Int) ([]byte, error)); ok { + return rf(ctx, call, blockNumber) + } + if rf, ok := ret.Get(0).(func(context.Context, ethereum.CallMsg, *big.Int) []byte); ok { + r0 = rf(ctx, call, blockNumber) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).([]byte) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, ethereum.CallMsg, *big.Int) error); ok { + r1 = rf(ctx, call, blockNumber) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EthClientMock_CallContract_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'CallContract' +type EthClientMock_CallContract_Call struct { + *mock.Call +} + +// CallContract is a helper method to define mock.On call +// - ctx context.Context +// - call ethereum.CallMsg +// - blockNumber *big.Int +func (_e *EthClientMock_Expecter) CallContract(ctx interface{}, call interface{}, blockNumber interface{}) *EthClientMock_CallContract_Call { + return &EthClientMock_CallContract_Call{Call: _e.mock.On("CallContract", ctx, call, blockNumber)} +} + +func (_c *EthClientMock_CallContract_Call) Run(run func(ctx context.Context, call ethereum.CallMsg, blockNumber *big.Int)) *EthClientMock_CallContract_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(ethereum.CallMsg), args[2].(*big.Int)) + }) + return _c +} + +func (_c *EthClientMock_CallContract_Call) Return(_a0 []byte, _a1 error) *EthClientMock_CallContract_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EthClientMock_CallContract_Call) RunAndReturn(run func(context.Context, ethereum.CallMsg, *big.Int) ([]byte, error)) *EthClientMock_CallContract_Call { + _c.Call.Return(run) + return _c +} + +// ChainID provides a mock function with given fields: _a0 +func (_m *EthClientMock) ChainID(_a0 context.Context) (*big.Int, error) { + ret := _m.Called(_a0) + + if len(ret) == 0 { + panic("no return value specified for ChainID") + } + + var r0 *big.Int + var r1 error + if rf, ok := ret.Get(0).(func(context.Context) (*big.Int, error)); ok { + return rf(_a0) + } + if rf, ok := ret.Get(0).(func(context.Context) *big.Int); ok { + r0 = rf(_a0) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*big.Int) + } + } + + if rf, ok := ret.Get(1).(func(context.Context) error); ok { + r1 = rf(_a0) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EthClientMock_ChainID_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ChainID' +type EthClientMock_ChainID_Call struct { + *mock.Call +} + +// ChainID is a helper method to define mock.On call +// - _a0 context.Context +func (_e *EthClientMock_Expecter) ChainID(_a0 interface{}) *EthClientMock_ChainID_Call { + return &EthClientMock_ChainID_Call{Call: _e.mock.On("ChainID", _a0)} +} + +func (_c *EthClientMock_ChainID_Call) Run(run func(_a0 context.Context)) *EthClientMock_ChainID_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context)) + }) + return _c +} + +func (_c *EthClientMock_ChainID_Call) Return(_a0 *big.Int, _a1 error) *EthClientMock_ChainID_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EthClientMock_ChainID_Call) RunAndReturn(run func(context.Context) (*big.Int, error)) *EthClientMock_ChainID_Call { + _c.Call.Return(run) + return _c +} + +// CodeAt provides a mock function with given fields: ctx, contract, blockNumber +func (_m *EthClientMock) CodeAt(ctx context.Context, contract common.Address, blockNumber *big.Int) ([]byte, error) { + ret := _m.Called(ctx, contract, blockNumber) + + if len(ret) == 0 { + panic("no return value specified for CodeAt") + } + + var r0 []byte + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, common.Address, *big.Int) ([]byte, error)); ok { + return rf(ctx, contract, blockNumber) + } + if rf, ok := ret.Get(0).(func(context.Context, common.Address, *big.Int) []byte); ok { + r0 = rf(ctx, contract, blockNumber) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).([]byte) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, common.Address, *big.Int) error); ok { + r1 = rf(ctx, contract, blockNumber) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EthClientMock_CodeAt_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'CodeAt' +type EthClientMock_CodeAt_Call struct { + *mock.Call +} + +// CodeAt is a helper method to define mock.On call +// - ctx context.Context +// - contract common.Address +// - blockNumber *big.Int +func (_e *EthClientMock_Expecter) CodeAt(ctx interface{}, contract interface{}, blockNumber interface{}) *EthClientMock_CodeAt_Call { + return &EthClientMock_CodeAt_Call{Call: _e.mock.On("CodeAt", ctx, contract, blockNumber)} +} + +func (_c *EthClientMock_CodeAt_Call) Run(run func(ctx context.Context, contract common.Address, blockNumber *big.Int)) *EthClientMock_CodeAt_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(common.Address), args[2].(*big.Int)) + }) + return _c +} + +func (_c *EthClientMock_CodeAt_Call) Return(_a0 []byte, _a1 error) *EthClientMock_CodeAt_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EthClientMock_CodeAt_Call) RunAndReturn(run func(context.Context, common.Address, *big.Int) ([]byte, error)) *EthClientMock_CodeAt_Call { + _c.Call.Return(run) + return _c +} + +// EstimateGas provides a mock function with given fields: ctx, call +func (_m *EthClientMock) EstimateGas(ctx context.Context, call ethereum.CallMsg) (uint64, error) { + ret := _m.Called(ctx, call) + + if len(ret) == 0 { + panic("no return value specified for EstimateGas") + } + + var r0 uint64 + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, ethereum.CallMsg) (uint64, error)); ok { + return rf(ctx, call) + } + if rf, ok := ret.Get(0).(func(context.Context, ethereum.CallMsg) uint64); ok { + r0 = rf(ctx, call) + } else { + r0 = ret.Get(0).(uint64) + } + + if rf, ok := ret.Get(1).(func(context.Context, ethereum.CallMsg) error); ok { + r1 = rf(ctx, call) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EthClientMock_EstimateGas_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'EstimateGas' +type EthClientMock_EstimateGas_Call struct { + *mock.Call +} + +// EstimateGas is a helper method to define mock.On call +// - ctx context.Context +// - call ethereum.CallMsg +func (_e *EthClientMock_Expecter) EstimateGas(ctx interface{}, call interface{}) *EthClientMock_EstimateGas_Call { + return &EthClientMock_EstimateGas_Call{Call: _e.mock.On("EstimateGas", ctx, call)} +} + +func (_c *EthClientMock_EstimateGas_Call) Run(run func(ctx context.Context, call ethereum.CallMsg)) *EthClientMock_EstimateGas_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(ethereum.CallMsg)) + }) + return _c +} + +func (_c *EthClientMock_EstimateGas_Call) Return(_a0 uint64, _a1 error) *EthClientMock_EstimateGas_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EthClientMock_EstimateGas_Call) RunAndReturn(run func(context.Context, ethereum.CallMsg) (uint64, error)) *EthClientMock_EstimateGas_Call { + _c.Call.Return(run) + return _c +} + +// FilterLogs provides a mock function with given fields: ctx, q +func (_m *EthClientMock) FilterLogs(ctx context.Context, q ethereum.FilterQuery) ([]types.Log, error) { + ret := _m.Called(ctx, q) + + if len(ret) == 0 { + panic("no return value specified for FilterLogs") + } + + var r0 []types.Log + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, ethereum.FilterQuery) ([]types.Log, error)); ok { + return rf(ctx, q) + } + if rf, ok := ret.Get(0).(func(context.Context, ethereum.FilterQuery) []types.Log); ok { + r0 = rf(ctx, q) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).([]types.Log) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, ethereum.FilterQuery) error); ok { + r1 = rf(ctx, q) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EthClientMock_FilterLogs_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'FilterLogs' +type EthClientMock_FilterLogs_Call struct { + *mock.Call +} + +// FilterLogs is a helper method to define mock.On call +// - ctx context.Context +// - q ethereum.FilterQuery +func (_e *EthClientMock_Expecter) FilterLogs(ctx interface{}, q interface{}) *EthClientMock_FilterLogs_Call { + return &EthClientMock_FilterLogs_Call{Call: _e.mock.On("FilterLogs", ctx, q)} +} + +func (_c *EthClientMock_FilterLogs_Call) Run(run func(ctx context.Context, q ethereum.FilterQuery)) *EthClientMock_FilterLogs_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(ethereum.FilterQuery)) + }) + return _c +} + +func (_c *EthClientMock_FilterLogs_Call) Return(_a0 []types.Log, _a1 error) *EthClientMock_FilterLogs_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EthClientMock_FilterLogs_Call) RunAndReturn(run func(context.Context, ethereum.FilterQuery) ([]types.Log, error)) *EthClientMock_FilterLogs_Call { + _c.Call.Return(run) + return _c +} + +// HeaderByNumber provides a mock function with given fields: ctx, number +func (_m *EthClientMock) HeaderByNumber(ctx context.Context, number *big.Int) (*types.Header, error) { + ret := _m.Called(ctx, number) + + if len(ret) == 0 { + panic("no return value specified for HeaderByNumber") + } + + var r0 *types.Header + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *big.Int) (*types.Header, error)); ok { + return rf(ctx, number) + } + if rf, ok := ret.Get(0).(func(context.Context, *big.Int) *types.Header); ok { + r0 = rf(ctx, number) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*types.Header) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, *big.Int) error); ok { + r1 = rf(ctx, number) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EthClientMock_HeaderByNumber_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'HeaderByNumber' +type EthClientMock_HeaderByNumber_Call struct { + *mock.Call +} + +// HeaderByNumber is a helper method to define mock.On call +// - ctx context.Context +// - number *big.Int +func (_e *EthClientMock_Expecter) HeaderByNumber(ctx interface{}, number interface{}) *EthClientMock_HeaderByNumber_Call { + return &EthClientMock_HeaderByNumber_Call{Call: _e.mock.On("HeaderByNumber", ctx, number)} +} + +func (_c *EthClientMock_HeaderByNumber_Call) Run(run func(ctx context.Context, number *big.Int)) *EthClientMock_HeaderByNumber_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(*big.Int)) + }) + return _c +} + +func (_c *EthClientMock_HeaderByNumber_Call) Return(_a0 *types.Header, _a1 error) *EthClientMock_HeaderByNumber_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EthClientMock_HeaderByNumber_Call) RunAndReturn(run func(context.Context, *big.Int) (*types.Header, error)) *EthClientMock_HeaderByNumber_Call { + _c.Call.Return(run) + return _c +} + +// PendingCodeAt provides a mock function with given fields: ctx, account +func (_m *EthClientMock) PendingCodeAt(ctx context.Context, account common.Address) ([]byte, error) { + ret := _m.Called(ctx, account) + + if len(ret) == 0 { + panic("no return value specified for PendingCodeAt") + } + + var r0 []byte + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, common.Address) ([]byte, error)); ok { + return rf(ctx, account) + } + if rf, ok := ret.Get(0).(func(context.Context, common.Address) []byte); ok { + r0 = rf(ctx, account) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).([]byte) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, common.Address) error); ok { + r1 = rf(ctx, account) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EthClientMock_PendingCodeAt_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'PendingCodeAt' +type EthClientMock_PendingCodeAt_Call struct { + *mock.Call +} + +// PendingCodeAt is a helper method to define mock.On call +// - ctx context.Context +// - account common.Address +func (_e *EthClientMock_Expecter) PendingCodeAt(ctx interface{}, account interface{}) *EthClientMock_PendingCodeAt_Call { + return &EthClientMock_PendingCodeAt_Call{Call: _e.mock.On("PendingCodeAt", ctx, account)} +} + +func (_c *EthClientMock_PendingCodeAt_Call) Run(run func(ctx context.Context, account common.Address)) *EthClientMock_PendingCodeAt_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(common.Address)) + }) + return _c +} + +func (_c *EthClientMock_PendingCodeAt_Call) Return(_a0 []byte, _a1 error) *EthClientMock_PendingCodeAt_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EthClientMock_PendingCodeAt_Call) RunAndReturn(run func(context.Context, common.Address) ([]byte, error)) *EthClientMock_PendingCodeAt_Call { + _c.Call.Return(run) + return _c +} + +// PendingNonceAt provides a mock function with given fields: ctx, account +func (_m *EthClientMock) PendingNonceAt(ctx context.Context, account common.Address) (uint64, error) { + ret := _m.Called(ctx, account) + + if len(ret) == 0 { + panic("no return value specified for PendingNonceAt") + } + + var r0 uint64 + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, common.Address) (uint64, error)); ok { + return rf(ctx, account) + } + if rf, ok := ret.Get(0).(func(context.Context, common.Address) uint64); ok { + r0 = rf(ctx, account) + } else { + r0 = ret.Get(0).(uint64) + } + + if rf, ok := ret.Get(1).(func(context.Context, common.Address) error); ok { + r1 = rf(ctx, account) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EthClientMock_PendingNonceAt_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'PendingNonceAt' +type EthClientMock_PendingNonceAt_Call struct { + *mock.Call +} + +// PendingNonceAt is a helper method to define mock.On call +// - ctx context.Context +// - account common.Address +func (_e *EthClientMock_Expecter) PendingNonceAt(ctx interface{}, account interface{}) *EthClientMock_PendingNonceAt_Call { + return &EthClientMock_PendingNonceAt_Call{Call: _e.mock.On("PendingNonceAt", ctx, account)} +} + +func (_c *EthClientMock_PendingNonceAt_Call) Run(run func(ctx context.Context, account common.Address)) *EthClientMock_PendingNonceAt_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(common.Address)) + }) + return _c +} + +func (_c *EthClientMock_PendingNonceAt_Call) Return(_a0 uint64, _a1 error) *EthClientMock_PendingNonceAt_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EthClientMock_PendingNonceAt_Call) RunAndReturn(run func(context.Context, common.Address) (uint64, error)) *EthClientMock_PendingNonceAt_Call { + _c.Call.Return(run) + return _c +} + +// SendTransaction provides a mock function with given fields: ctx, tx +func (_m *EthClientMock) SendTransaction(ctx context.Context, tx *types.Transaction) error { + ret := _m.Called(ctx, tx) + + if len(ret) == 0 { + panic("no return value specified for SendTransaction") + } + + var r0 error + if rf, ok := ret.Get(0).(func(context.Context, *types.Transaction) error); ok { + r0 = rf(ctx, tx) + } else { + r0 = ret.Error(0) + } + + return r0 +} + +// EthClientMock_SendTransaction_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'SendTransaction' +type EthClientMock_SendTransaction_Call struct { + *mock.Call +} + +// SendTransaction is a helper method to define mock.On call +// - ctx context.Context +// - tx *types.Transaction +func (_e *EthClientMock_Expecter) SendTransaction(ctx interface{}, tx interface{}) *EthClientMock_SendTransaction_Call { + return &EthClientMock_SendTransaction_Call{Call: _e.mock.On("SendTransaction", ctx, tx)} +} + +func (_c *EthClientMock_SendTransaction_Call) Run(run func(ctx context.Context, tx *types.Transaction)) *EthClientMock_SendTransaction_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(*types.Transaction)) + }) + return _c +} + +func (_c *EthClientMock_SendTransaction_Call) Return(_a0 error) *EthClientMock_SendTransaction_Call { + _c.Call.Return(_a0) + return _c +} + +func (_c *EthClientMock_SendTransaction_Call) RunAndReturn(run func(context.Context, *types.Transaction) error) *EthClientMock_SendTransaction_Call { + _c.Call.Return(run) + return _c +} + +// SubscribeFilterLogs provides a mock function with given fields: ctx, q, ch +func (_m *EthClientMock) SubscribeFilterLogs(ctx context.Context, q ethereum.FilterQuery, ch chan<- types.Log) (ethereum.Subscription, error) { + ret := _m.Called(ctx, q, ch) + + if len(ret) == 0 { + panic("no return value specified for SubscribeFilterLogs") + } + + var r0 ethereum.Subscription + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, ethereum.FilterQuery, chan<- types.Log) (ethereum.Subscription, error)); ok { + return rf(ctx, q, ch) + } + if rf, ok := ret.Get(0).(func(context.Context, ethereum.FilterQuery, chan<- types.Log) ethereum.Subscription); ok { + r0 = rf(ctx, q, ch) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(ethereum.Subscription) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, ethereum.FilterQuery, chan<- types.Log) error); ok { + r1 = rf(ctx, q, ch) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EthClientMock_SubscribeFilterLogs_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'SubscribeFilterLogs' +type EthClientMock_SubscribeFilterLogs_Call struct { + *mock.Call +} + +// SubscribeFilterLogs is a helper method to define mock.On call +// - ctx context.Context +// - q ethereum.FilterQuery +// - ch chan<- types.Log +func (_e *EthClientMock_Expecter) SubscribeFilterLogs(ctx interface{}, q interface{}, ch interface{}) *EthClientMock_SubscribeFilterLogs_Call { + return &EthClientMock_SubscribeFilterLogs_Call{Call: _e.mock.On("SubscribeFilterLogs", ctx, q, ch)} +} + +func (_c *EthClientMock_SubscribeFilterLogs_Call) Run(run func(ctx context.Context, q ethereum.FilterQuery, ch chan<- types.Log)) *EthClientMock_SubscribeFilterLogs_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(ethereum.FilterQuery), args[2].(chan<- types.Log)) + }) + return _c +} + +func (_c *EthClientMock_SubscribeFilterLogs_Call) Return(_a0 ethereum.Subscription, _a1 error) *EthClientMock_SubscribeFilterLogs_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EthClientMock_SubscribeFilterLogs_Call) RunAndReturn(run func(context.Context, ethereum.FilterQuery, chan<- types.Log) (ethereum.Subscription, error)) *EthClientMock_SubscribeFilterLogs_Call { + _c.Call.Return(run) + return _c +} + +// SuggestGasPrice provides a mock function with given fields: ctx +func (_m *EthClientMock) SuggestGasPrice(ctx context.Context) (*big.Int, error) { + ret := _m.Called(ctx) + + if len(ret) == 0 { + panic("no return value specified for SuggestGasPrice") + } + + var r0 *big.Int + var r1 error + if rf, ok := ret.Get(0).(func(context.Context) (*big.Int, error)); ok { + return rf(ctx) + } + if rf, ok := ret.Get(0).(func(context.Context) *big.Int); ok { + r0 = rf(ctx) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*big.Int) + } + } + + if rf, ok := ret.Get(1).(func(context.Context) error); ok { + r1 = rf(ctx) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EthClientMock_SuggestGasPrice_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'SuggestGasPrice' +type EthClientMock_SuggestGasPrice_Call struct { + *mock.Call +} + +// SuggestGasPrice is a helper method to define mock.On call +// - ctx context.Context +func (_e *EthClientMock_Expecter) SuggestGasPrice(ctx interface{}) *EthClientMock_SuggestGasPrice_Call { + return &EthClientMock_SuggestGasPrice_Call{Call: _e.mock.On("SuggestGasPrice", ctx)} +} + +func (_c *EthClientMock_SuggestGasPrice_Call) Run(run func(ctx context.Context)) *EthClientMock_SuggestGasPrice_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context)) + }) + return _c +} + +func (_c *EthClientMock_SuggestGasPrice_Call) Return(_a0 *big.Int, _a1 error) *EthClientMock_SuggestGasPrice_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EthClientMock_SuggestGasPrice_Call) RunAndReturn(run func(context.Context) (*big.Int, error)) *EthClientMock_SuggestGasPrice_Call { + _c.Call.Return(run) + return _c +} + +// SuggestGasTipCap provides a mock function with given fields: ctx +func (_m *EthClientMock) SuggestGasTipCap(ctx context.Context) (*big.Int, error) { + ret := _m.Called(ctx) + + if len(ret) == 0 { + panic("no return value specified for SuggestGasTipCap") + } + + var r0 *big.Int + var r1 error + if rf, ok := ret.Get(0).(func(context.Context) (*big.Int, error)); ok { + return rf(ctx) + } + if rf, ok := ret.Get(0).(func(context.Context) *big.Int); ok { + r0 = rf(ctx) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*big.Int) + } + } + + if rf, ok := ret.Get(1).(func(context.Context) error); ok { + r1 = rf(ctx) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EthClientMock_SuggestGasTipCap_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'SuggestGasTipCap' +type EthClientMock_SuggestGasTipCap_Call struct { + *mock.Call +} + +// SuggestGasTipCap is a helper method to define mock.On call +// - ctx context.Context +func (_e *EthClientMock_Expecter) SuggestGasTipCap(ctx interface{}) *EthClientMock_SuggestGasTipCap_Call { + return &EthClientMock_SuggestGasTipCap_Call{Call: _e.mock.On("SuggestGasTipCap", ctx)} +} + +func (_c *EthClientMock_SuggestGasTipCap_Call) Run(run func(ctx context.Context)) *EthClientMock_SuggestGasTipCap_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context)) + }) + return _c +} + +func (_c *EthClientMock_SuggestGasTipCap_Call) Return(_a0 *big.Int, _a1 error) *EthClientMock_SuggestGasTipCap_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EthClientMock_SuggestGasTipCap_Call) RunAndReturn(run func(context.Context) (*big.Int, error)) *EthClientMock_SuggestGasTipCap_Call { + _c.Call.Return(run) + return _c +} + +// TransactionReceipt provides a mock function with given fields: ctx, txHash +func (_m *EthClientMock) TransactionReceipt(ctx context.Context, txHash common.Hash) (*types.Receipt, error) { + ret := _m.Called(ctx, txHash) + + if len(ret) == 0 { + panic("no return value specified for TransactionReceipt") + } + + var r0 *types.Receipt + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, common.Hash) (*types.Receipt, error)); ok { + return rf(ctx, txHash) + } + if rf, ok := ret.Get(0).(func(context.Context, common.Hash) *types.Receipt); ok { + r0 = rf(ctx, txHash) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*types.Receipt) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, common.Hash) error); ok { + r1 = rf(ctx, txHash) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EthClientMock_TransactionReceipt_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'TransactionReceipt' +type EthClientMock_TransactionReceipt_Call struct { + *mock.Call +} + +// TransactionReceipt is a helper method to define mock.On call +// - ctx context.Context +// - txHash common.Hash +func (_e *EthClientMock_Expecter) TransactionReceipt(ctx interface{}, txHash interface{}) *EthClientMock_TransactionReceipt_Call { + return &EthClientMock_TransactionReceipt_Call{Call: _e.mock.On("TransactionReceipt", ctx, txHash)} +} + +func (_c *EthClientMock_TransactionReceipt_Call) Run(run func(ctx context.Context, txHash common.Hash)) *EthClientMock_TransactionReceipt_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(common.Hash)) + }) + return _c +} + +func (_c *EthClientMock_TransactionReceipt_Call) Return(_a0 *types.Receipt, _a1 error) *EthClientMock_TransactionReceipt_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EthClientMock_TransactionReceipt_Call) RunAndReturn(run func(context.Context, common.Hash) (*types.Receipt, error)) *EthClientMock_TransactionReceipt_Call { + _c.Call.Return(run) + return _c +} + +// NewEthClientMock creates a new instance of EthClientMock. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewEthClientMock(t interface { + mock.TestingT + Cleanup(func()) +}) *EthClientMock { + mock := &EthClientMock{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} diff --git a/proxy-router/internal/repositories/contracts/log_watcher.go b/proxy-router/internal/repositories/contracts/log_watcher.go new file mode 100644 index 00000000..93a509e1 --- /dev/null +++ b/proxy-router/internal/repositories/contracts/log_watcher.go @@ -0,0 +1,13 @@ +package contracts + +import ( + "context" + "math/big" + + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" + "github.com/ethereum/go-ethereum/common" +) + +type LogWatcher interface { + Watch(ctx context.Context, contractAddr common.Address, mapper EventMapper, fromBlock *big.Int) (*lib.Subscription, error) +} diff --git a/proxy-router/internal/repositories/contracts/log_watcher_polling.go b/proxy-router/internal/repositories/contracts/log_watcher_polling.go new file mode 100644 index 00000000..c1919173 --- /dev/null +++ b/proxy-router/internal/repositories/contracts/log_watcher_polling.go @@ -0,0 +1,109 @@ +package contracts + +import ( + "context" + "math/big" + "time" + + i "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" + "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" +) + +type LogWatcherPolling struct { + // config + maxReconnects int + pollInterval time.Duration + + // deps + client i.EthClient + log lib.ILogger +} + +func NewLogWatcherPolling(client i.EthClient, pollInterval time.Duration, maxReconnects int, log lib.ILogger) *LogWatcherPolling { + return &LogWatcherPolling{ + client: client, + pollInterval: pollInterval, + maxReconnects: maxReconnects, + log: log, + } +} + +func (w *LogWatcherPolling) Watch(ctx context.Context, contractAddr common.Address, mapper EventMapper, fromBlock *big.Int) (*lib.Subscription, error) { + if fromBlock == nil { + block, err := w.client.HeaderByNumber(ctx, nil) + if err != nil { + return nil, err + } + fromBlock = block.Number + } + lastQueriedBlock := fromBlock + + sink := make(chan interface{}) + return lib.NewSubscription(func(quit <-chan struct{}) error { + defer close(sink) + + for { + query := ethereum.FilterQuery{ + Addresses: []common.Address{contractAddr}, + FromBlock: lastQueriedBlock, + ToBlock: nil, + } + sub, err := w.filterLogsRetry(ctx, query) + if err != nil { + return err + } + + for _, log := range sub { + if log.Removed { + continue + } + event, err := mapper(log) + if err != nil { + return err // mapper error, retry won't help + } + + select { + case <-quit: + return nil + case <-ctx.Done(): + return ctx.Err() + case sink <- event: + } + } + + if len(sub) > 0 { + lastQueriedBlock = new(big.Int).SetUint64(sub[len(sub)-1].BlockNumber) + } + + select { + case <-quit: + return nil + case <-ctx.Done(): + return ctx.Err() + case <-time.After(w.pollInterval): + } + } + }, sink), nil +} + +func (w *LogWatcherPolling) filterLogsRetry(ctx context.Context, query ethereum.FilterQuery) ([]types.Log, error) { + var lastErr error + + for attempts := 0; attempts < w.maxReconnects; attempts++ { + logs, err := w.client.FilterLogs(ctx, query) + if err != nil { + lastErr = err + continue + } + if attempts > 0 { + w.log.Warnf("subscription reconnected due to error: %s", lastErr) + } + + return logs, nil + } + + return nil, lastErr +} diff --git a/proxy-router/internal/repositories/contracts/log_watcher_polling_test.go b/proxy-router/internal/repositories/contracts/log_watcher_polling_test.go new file mode 100644 index 00000000..2bd1cb9a --- /dev/null +++ b/proxy-router/internal/repositories/contracts/log_watcher_polling_test.go @@ -0,0 +1,159 @@ +package contracts + +import ( + "context" + "errors" + "fmt" + "math/big" + "testing" + + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces/mocks" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" + "github.com/ethereum/go-ethereum" + common "github.com/ethereum/go-ethereum/common" + types "github.com/ethereum/go-ethereum/core/types" + "github.com/stretchr/testify/mock" + "github.com/stretchr/testify/require" +) + +var TEST_ERR = errors.New("test error") + +func TestLogWatcherPolling(t *testing.T) { + failTimes := 5 + + ethClientMock := mocks.NewEthClientMock(t) + call1 := ethClientMock.EXPECT().FilterLogs(mock.Anything, mock.Anything).Return(nil, TEST_ERR).Times(failTimes) + _ = ethClientMock.EXPECT().FilterLogs(mock.Anything, mock.Anything).Return([]types.Log{}, nil).Times(1).NotBefore(call1) + logWatcherPolling := NewLogWatcherPolling(ethClientMock, 0, 10, lib.NewTestLogger()) + + _, err := logWatcherPolling.filterLogsRetry(context.Background(), ethereum.FilterQuery{}) + require.NoError(t, err) + ethClientMock.AssertNumberOfCalls(t, "FilterLogs", failTimes+1) +} + +func TestWatchDoesntReturnEventsTwice(t *testing.T) { + ethClientMock := mocks.NewEthClientMock(t) + event1 := types.Log{ + BlockNumber: 2, + Index: 1, + Data: []byte{2}, + } + event2 := types.Log{ + BlockNumber: 3, + Index: 1, + Data: []byte{3}, + } + + _ = ethClientMock.EXPECT().FilterLogs(mock.Anything, matchBlockNumber(1)).Return([]types.Log{event1}, nil) + _ = ethClientMock.EXPECT().FilterLogs(mock.Anything, matchBlockNumber(2)).Return([]types.Log{event2}, nil) + _ = ethClientMock.EXPECT().FilterLogs(mock.Anything, mock.Anything).Return([]types.Log{}, nil) + + logWatcherPolling := NewLogWatcherPolling(ethClientMock, 0, 10, lib.NewTestLogger()) + sub, err := logWatcherPolling.Watch(context.Background(), common.Address{}, eventMapper, big.NewInt(1)) + require.NoError(t, err) + defer sub.Unsubscribe() + + totalEvents := 0 + uniqueEvents := make(map[string]types.Log) + +OUTER: + for { + select { + case e := <-sub.Events(): + event := e.(types.Log) + totalEvents++ + uniqueEvents[fmt.Sprintf("%d-%d", event.BlockNumber, event.Index)] = event + if len(uniqueEvents) == 2 { + break OUTER + } + case <-sub.Err(): + require.NoError(t, err) + } + } + + require.Equal(t, totalEvents, len(uniqueEvents)) +} + +func TestWatchShouldErrorAfterMaxReconnects(t *testing.T) { + ethClientMock := mocks.NewEthClientMock(t) + maxRetries := 10 + + _ = ethClientMock.EXPECT().FilterLogs(mock.Anything, mock.Anything).Return([]types.Log{}, TEST_ERR) + + logWatcherPolling := NewLogWatcherPolling(ethClientMock, 0, maxRetries, lib.NewTestLogger()) + sub, err := logWatcherPolling.Watch(context.Background(), common.Address{}, eventMapper, big.NewInt(1)) + require.NoError(t, err) + defer sub.Unsubscribe() + + for { + select { + case e := <-sub.Events(): + if e != nil { + require.Fail(t, "should not receive events") + } + case err := <-sub.Err(): + require.ErrorIs(t, err, TEST_ERR) + ethClientMock.AssertNumberOfCalls(t, "FilterLogs", maxRetries) + return + } + } +} + +func TestShouldHandleContextCancellation(t *testing.T) { + ethClientMock := mocks.NewEthClientMock(t) + ctx, cancel := context.WithCancel(context.Background()) + + _ = ethClientMock.EXPECT().FilterLogs(mock.Anything, mock.Anything).Return([]types.Log{}, nil) + + logWatcherPolling := NewLogWatcherPolling(ethClientMock, 0, 10, lib.NewTestLogger()) + sub, err := logWatcherPolling.Watch(ctx, common.Address{}, eventMapper, big.NewInt(1)) + require.NoError(t, err) + defer sub.Unsubscribe() + + cancel() + + for { + select { + case e := <-sub.Events(): + if e != nil { + require.Fail(t, "should not receive events") + } + case err := <-sub.Err(): + require.ErrorIs(t, err, context.Canceled) + return + } + } +} + +func TestShouldUnsubscribe(t *testing.T) { + ethClientMock := mocks.NewEthClientMock(t) + _ = ethClientMock.EXPECT().FilterLogs(mock.Anything, mock.Anything).Return([]types.Log{}, nil) + + logWatcherPolling := NewLogWatcherPolling(ethClientMock, 0, 10, lib.NewTestLogger()) + sub, err := logWatcherPolling.Watch(context.Background(), common.Address{}, eventMapper, big.NewInt(1)) + require.NoError(t, err) + + sub.Unsubscribe() + + for { + select { + case e := <-sub.Events(): + if e != nil { + require.Fail(t, "should not receive events") + } + case err := <-sub.Err(): + require.Nil(t, err) + return + } + } +} + +func matchBlockNumber(blockNumber int) any { + return mock.MatchedBy(func(query ethereum.FilterQuery) bool { + return int(query.FromBlock.Int64()) == blockNumber + }) +} + +func eventMapper(log types.Log) (interface{}, error) { + return log, nil +} diff --git a/proxy-router/internal/repositories/contracts/log_watcher_subscription.go b/proxy-router/internal/repositories/contracts/log_watcher_subscription.go new file mode 100644 index 00000000..619da74a --- /dev/null +++ b/proxy-router/internal/repositories/contracts/log_watcher_subscription.go @@ -0,0 +1,103 @@ +package contracts + +import ( + "context" + "math/big" + + i "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" + "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" +) + +type LogWatcherSubscription struct { + // config + maxReconnects int + + // deps + client i.EthClient + log lib.ILogger +} + +// NewLogWatcherSubscription creates a new log subscription using websocket +// TODO: if it is going to be primary implementation we should rewrite it so it doesn't skip events in case of temporary downtime +func NewLogWatcherSubscription(client i.EthClient, maxReconnects int, log lib.ILogger) *LogWatcherSubscription { + return &LogWatcherSubscription{ + maxReconnects: maxReconnects, + client: client, + log: log, + } +} + +func (w *LogWatcherSubscription) Watch(ctx context.Context, contractAddr common.Address, mapper EventMapper, fromBlock *big.Int) (*lib.Subscription, error) { + sink := make(chan interface{}) + + return lib.NewSubscription(func(quit <-chan struct{}) error { + defer close(sink) + + query := ethereum.FilterQuery{ + Addresses: []common.Address{contractAddr}, + } + in := make(chan types.Log) + defer close(in) + + for { + sub, err := w.subscribeFilterLogsRetry(ctx, query, in) + if err != nil { + return err + } + + defer sub.Unsubscribe() + + EVENTS_LOOP: + for { + select { + case log := <-in: + event, err := mapper(log) + if err != nil { + // mapper error, retry won't help + return err + } + + select { + case sink <- event: + case err := <-sub.Err(): + w.log.Debugf("subscription error: %s", err) + break EVENTS_LOOP + case <-quit: + return nil + case <-ctx.Done(): + return ctx.Err() + } + case err := <-sub.Err(): + w.log.Debugf("subscription error: %s", err) + break EVENTS_LOOP + case <-quit: + return nil + case <-ctx.Done(): + return ctx.Err() + } + } + } + }, sink), nil +} + +func (w *LogWatcherSubscription) subscribeFilterLogsRetry(ctx context.Context, query ethereum.FilterQuery, ch chan<- types.Log) (ethereum.Subscription, error) { + var lastErr error + + for attempts := 0; attempts < w.maxReconnects; attempts++ { + sub, err := w.client.SubscribeFilterLogs(ctx, query, ch) + if err != nil { + lastErr = err + continue + } + if attempts > 0 { + w.log.Warnf("subscription reconnected due to error: %s", lastErr) + } + + return sub, nil + } + + return nil, lastErr +} diff --git a/proxy-router/internal/repositories/contracts/mapper.go b/proxy-router/internal/repositories/contracts/mapper.go index 645cd27b..5f021765 100644 --- a/proxy-router/internal/repositories/contracts/mapper.go +++ b/proxy-router/internal/repositories/contracts/mapper.go @@ -17,8 +17,6 @@ type EventFactory func(name string) interface{} func CreateEventMapper(eventFactory EventFactory, abi *abi.ABI) func(log types.Log) (interface{}, error) { return func(log types.Log) (interface{}, error) { - fmt.Println("log.Topics[0]:", log.Topics[0]) - fmt.Println("abi", abi.Events) namedEvent, err := abi.EventByID(log.Topics[0]) if err != nil { return nil, err diff --git a/proxy-router/internal/repositories/contracts/subscription.go b/proxy-router/internal/repositories/contracts/subscription.go index 043209cd..8d53e63a 100644 --- a/proxy-router/internal/repositories/contracts/subscription.go +++ b/proxy-router/internal/repositories/contracts/subscription.go @@ -1,15 +1,9 @@ package contracts import ( - "context" - "errors" "time" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/sessionrouter" - "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" - "github.com/ethereum/go-ethereum" - "github.com/ethereum/go-ethereum/accounts/abi/bind" - "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/core/types" ) @@ -17,7 +11,7 @@ const RECONNECT_TIMEOUT = 2 * time.Second type EventMapper func(types.Log) (interface{}, error) -func BlockchainEventFactory(name string) interface{} { +func SessionRouterEventFactory(name string) interface{} { switch name { case "SessionOpened": return new(sessionrouter.SessionRouterSessionOpened) @@ -27,93 +21,3 @@ func BlockchainEventFactory(name string) interface{} { return nil } } - -// WatchContractEvents watches for all events from the contract and converts them to the concrete type, using mapper -func WatchContractEvents(ctx context.Context, client bind.ContractFilterer, contractAddr common.Address, mapper EventMapper, log lib.ILogger) (*lib.Subscription, error) { - sink := make(chan interface{}) - - return lib.NewSubscription(func(quit <-chan struct{}) error { - defer close(sink) - - query := ethereum.FilterQuery{ - Addresses: []common.Address{contractAddr}, - } - in := make(chan types.Log) - defer close(in) - - var lastErr error - - for attempts := 0; true; attempts++ { - sub, err := client.SubscribeFilterLogs(ctx, query, in) - if err != nil { - lastErr = err - - log.Warnf("subscription error, reconnect in %s: %s", RECONNECT_TIMEOUT, lastErr) - - select { - case <-quit: - return nil - case <-ctx.Done(): - return ctx.Err() - case <-time.After(RECONNECT_TIMEOUT): - } - - continue - } - if attempts > 0 { - log.Warnf("subscription reconnected due to error: %s", lastErr) - } - attempts = 0 - - defer sub.Unsubscribe() - - EVENTS_LOOP: - for { - select { - case logEntry := <-in: - event, err := mapper(logEntry) - if err != nil { - - if errors.Is(err, ErrUnknownEvent) { - log.Warnf("unknown event: %s", err) - continue - } - // mapper error, retry won't help - // return err - continue - } - - select { - case sink <- event: - case err := <-sub.Err(): - lastErr = err - break EVENTS_LOOP - case <-quit: - return nil - case <-ctx.Done(): - return ctx.Err() - } - case err := <-sub.Err(): - lastErr = err - break EVENTS_LOOP - case <-quit: - return nil - case <-ctx.Done(): - return ctx.Err() - } - } - - log.Warnf("subscription error, reconnect in %s: %s", RECONNECT_TIMEOUT, lastErr) - - select { - case <-quit: - return nil - case <-ctx.Done(): - return ctx.Err() - case <-time.After(RECONNECT_TIMEOUT): - } - } - - return lastErr - }, sink), nil -} From 1060c7a74f4049e5662fb84b5f8ba0c263197c50 Mon Sep 17 00:00:00 2001 From: shev Date: Thu, 10 Oct 2024 13:39:32 +0200 Subject: [PATCH 043/260] feat: runtime change of eth node api --- proxy-router/cmd/main.go | 6 +- .../internal/blockchainapi/event_listener.go | 2 +- proxy-router/internal/config/config.go | 1 + .../internal/handlers/httphandlers/http.go | 2 +- proxy-router/internal/interfaces/rpc_multi.go | 6 ++ .../contracts/log_watcher_subscription.go | 3 + .../ethclient/rpcclientmultiple.go | 50 ++++++++++++++-- proxy-router/internal/system/controller.go | 58 ++++++++++++------- proxy-router/internal/system/structs.go | 17 ++++++ 9 files changed, 118 insertions(+), 27 deletions(-) create mode 100644 proxy-router/internal/interfaces/rpc_multi.go diff --git a/proxy-router/cmd/main.go b/proxy-router/cmd/main.go index 67ce4304..7f33a0e9 100644 --- a/proxy-router/cmd/main.go +++ b/proxy-router/cmd/main.go @@ -186,12 +186,14 @@ func start() error { var rpcURLs []string if cfg.Blockchain.EthNodeAddress != "" { rpcURLs = []string{cfg.Blockchain.EthNodeAddress} + appLog.Info("using configured eth node address") } else { var err error rpcURLs, err = ethclient.GetPublicRPCURLs(cfg.Blockchain.ChainID) if err != nil { return err } + appLog.Infof("using public eth node addresses: %v", rpcURLs) } rpcClient, err := ethclient.NewRPCClientMultiple(rpcURLs, log.Named("RPC")) @@ -229,8 +231,10 @@ func start() error { var logWatcher contracts.LogWatcher if cfg.Blockchain.UseSubscriptions { logWatcher = contracts.NewLogWatcherSubscription(ethClient, cfg.Blockchain.MaxReconnects, log) + appLog.Infof("using websocket log subscription for blockchain events") } else { logWatcher = contracts.NewLogWatcherPolling(ethClient, cfg.Blockchain.PollingInterval, cfg.Blockchain.MaxReconnects, log) + appLog.Infof("using polling for blockchain events") } modelConfigLoader := config.NewModelConfigLoader(cfg.Proxy.ModelsConfigPath, log) @@ -260,7 +264,7 @@ func start() error { proxyController := proxyapi.NewProxyController(proxyRouterApi, aiEngine, chatStorage) walletController := walletapi.NewWalletController(wallet) - systemController := system.NewSystemController(&cfg, wallet, sysConfig, appStartTime, chainID, log) + systemController := system.NewSystemController(&cfg, wallet, rpcClient, sysConfig, appStartTime, chainID, log) apiBus := apibus.NewApiBus(blockchainController, proxyController, walletController, systemController) httpHandler := httphandlers.CreateHTTPServer(log, apiBus) diff --git a/proxy-router/internal/blockchainapi/event_listener.go b/proxy-router/internal/blockchainapi/event_listener.go index d4b2b3fb..a5424468 100644 --- a/proxy-router/internal/blockchainapi/event_listener.go +++ b/proxy-router/internal/blockchainapi/event_listener.go @@ -59,7 +59,7 @@ func (e *EventsListener) Run(ctx context.Context) error { } case err := <-sub.Err(): e.log.Errorf("error in event listener: %s", err) - // return err + return err } } } diff --git a/proxy-router/internal/config/config.go b/proxy-router/internal/config/config.go index 896bb124..15b61cbe 100644 --- a/proxy-router/internal/config/config.go +++ b/proxy-router/internal/config/config.go @@ -13,6 +13,7 @@ import ( type DerivedConfig struct { WalletAddress common.Address ChainID *big.Int + EthNodeURLs []string } // Validation tags described here: https://pkg.go.dev/github.com/go-playground/validator/v10 diff --git a/proxy-router/internal/handlers/httphandlers/http.go b/proxy-router/internal/handlers/httphandlers/http.go index c5de7754..1be68451 100644 --- a/proxy-router/internal/handlers/httphandlers/http.go +++ b/proxy-router/internal/handlers/httphandlers/http.go @@ -49,7 +49,7 @@ func CreateHTTPServer(log lib.ILogger, controllers ...Registrable) *gin.Engine { panic(err) } - // gin.SetMode(gin.ReleaseMode) + gin.SetMode(gin.ReleaseMode) r := gin.New() diff --git a/proxy-router/internal/interfaces/rpc_multi.go b/proxy-router/internal/interfaces/rpc_multi.go new file mode 100644 index 00000000..a56eaa4a --- /dev/null +++ b/proxy-router/internal/interfaces/rpc_multi.go @@ -0,0 +1,6 @@ +package interfaces + +type RPCEndpoints interface { + GetURLs() []string + SetURLs(urls []string) error +} diff --git a/proxy-router/internal/repositories/contracts/log_watcher_subscription.go b/proxy-router/internal/repositories/contracts/log_watcher_subscription.go index 619da74a..4106be51 100644 --- a/proxy-router/internal/repositories/contracts/log_watcher_subscription.go +++ b/proxy-router/internal/repositories/contracts/log_watcher_subscription.go @@ -43,8 +43,10 @@ func (w *LogWatcherSubscription) Watch(ctx context.Context, contractAddr common. defer close(in) for { + sub, err := w.subscribeFilterLogsRetry(ctx, query, in) if err != nil { + w.log.Errorf("failed to subscribe to logs: %s", err) return err } @@ -56,6 +58,7 @@ func (w *LogWatcherSubscription) Watch(ctx context.Context, contractAddr common. case log := <-in: event, err := mapper(log) if err != nil { + w.log.Errorf("failed to map event: %s", err) // mapper error, retry won't help return err } diff --git a/proxy-router/internal/repositories/ethclient/rpcclientmultiple.go b/proxy-router/internal/repositories/ethclient/rpcclientmultiple.go index f07c3e13..a64bd4d8 100644 --- a/proxy-router/internal/repositories/ethclient/rpcclientmultiple.go +++ b/proxy-router/internal/repositories/ethclient/rpcclientmultiple.go @@ -2,7 +2,7 @@ package ethclient import ( "context" - "fmt" + "sync" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" "github.com/ethereum/go-ethereum/rpc" @@ -10,6 +10,7 @@ import ( // Wrapper around multiple RPC clients, used to retry calls on multiple endpoints type RPCClientMultiple struct { + lock sync.RWMutex clients []*rpcClient log lib.ILogger } @@ -44,20 +45,61 @@ func (c *RPCClientMultiple) BatchCallContext(ctx context.Context, b []rpc.BatchE } func (c *RPCClientMultiple) Close() { - for _, rpcClient := range c.clients { + for _, rpcClient := range c.getClients() { rpcClient.client.Close() } } func (c *RPCClientMultiple) EthSubscribe(ctx context.Context, channel interface{}, args ...interface{}) (*rpc.ClientSubscription, error) { - return nil, fmt.Errorf("not implemented") + client := c.getClients()[0] + return client.client.EthSubscribe(ctx, channel, args...) +} + +func (c *RPCClientMultiple) GetURLs() []string { + clients := c.getClients() + urls := make([]string, len(clients)) + for i, rpcClient := range clients { + urls[i] = rpcClient.url + } + return urls +} + +func (c *RPCClientMultiple) SetURLs(urls []string) error { + clients := make([]*rpcClient, len(urls)) + + for i, url := range urls { + client, err := rpc.DialOptions(context.Background(), url) + if err != nil { + return err + } + clients[i] = &rpcClient{ + url: url, + client: client, + } + } + + c.lock.Lock() + defer c.lock.Unlock() + for _, rpcClient := range c.clients { + rpcClient.client.Close() + } + + c.clients = clients + + return nil +} + +func (c *RPCClientMultiple) getClients() []*rpcClient { + c.lock.RLock() + defer c.lock.RUnlock() + return c.clients } // retriableCall is a helper function that retries the call on different endpoints func (c *RPCClientMultiple) retriableCall(ctx context.Context, fn func(client *rpcClient) error) error { var lastErr error - for _, rpcClient := range c.clients { + for _, rpcClient := range c.getClients() { if ctx.Err() != nil { return ctx.Err() } diff --git a/proxy-router/internal/system/controller.go b/proxy-router/internal/system/controller.go index 700d157c..8ab4559e 100644 --- a/proxy-router/internal/system/controller.go +++ b/proxy-router/internal/system/controller.go @@ -10,37 +10,26 @@ import ( "time" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/config" - "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" + i "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" "github.com/gin-gonic/gin" ) -type HealthCheckResponse struct { - Status string - Version string - Uptime string -} - type SystemController struct { config *config.Config - wallet interfaces.Wallet + wallet i.Wallet + ethRPC i.RPCEndpoints sysConfig *SystemConfigurator appStartTime time.Time chainID *big.Int log lib.ILogger } -type ConfigResponse struct { - Version string - Commit string - DerivedConfig interface{} - Config interface{} -} - -func NewSystemController(config *config.Config, wallet interfaces.Wallet, sysConfig *SystemConfigurator, appStartTime time.Time, chainID *big.Int, log lib.ILogger) *SystemController { +func NewSystemController(config *config.Config, wallet i.Wallet, ethRPC i.RPCEndpoints, sysConfig *SystemConfigurator, appStartTime time.Time, chainID *big.Int, log lib.ILogger) *SystemController { c := &SystemController{ config: config, wallet: wallet, + ethRPC: ethRPC, sysConfig: sysConfig, appStartTime: appStartTime, chainID: chainID, @@ -50,17 +39,19 @@ func NewSystemController(config *config.Config, wallet interfaces.Wallet, sysCon return c } -func (s *SystemController) RegisterRoutes(r interfaces.Router) { +func (s *SystemController) RegisterRoutes(r i.Router) { r.GET("/healthcheck", s.HealthCheck) r.GET("/config", s.GetConfig) r.GET("/files", s.GetFiles) + + r.POST("/config/ethNode", s.SetEthNode) } // HealthCheck godoc // // @Summary Healthcheck example // @Description do ping -// @Tags healthcheck +// @Tags system // @Produce json // @Success 200 {object} HealthCheckResponse // @Router /healthcheck [get] @@ -76,7 +67,7 @@ func (s *SystemController) HealthCheck(ctx *gin.Context) { // // @Summary Get Config // @Description Return the current config of proxy router -// @Tags healthcheck +// @Tags system // @Produce json // @Success 200 {object} ConfigResponse // @Router /config [get] @@ -98,6 +89,7 @@ func (s *SystemController) GetConfig(ctx *gin.Context) { DerivedConfig: config.DerivedConfig{ WalletAddress: addr, ChainID: s.chainID, + EthNodeURLs: s.ethRPC.GetURLs(), }, }) } @@ -106,7 +98,7 @@ func (s *SystemController) GetConfig(ctx *gin.Context) { // // @Summary Get files // @Description Returns opened files -// @Tags healthcheck +// @Tags system // @Produce json // @Success 200 {object} []FD // @Router /files [get] @@ -140,6 +132,32 @@ func (s *SystemController) GetFiles(ctx *gin.Context) { return } +// SetEthNode godoc +// +// @Summary Set Eth Node URLs +// @Description Set the Eth Node URLs +// @Tags system +// @Accept json +// @Produce json +// @Param urls body SetEthNodeURLReq true "URLs" +// @Success 200 {object} ConfigResponse +// @Router /config/ethNode [post] +func (s *SystemController) SetEthNode(ctx *gin.Context) { + var req SetEthNodeURLReq + if err := ctx.BindJSON(&req); err != nil { + ctx.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) + return + } + + err := s.ethRPC.SetURLs(req.URLs) + if err != nil { + ctx.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + + ctx.JSON(http.StatusOK, gin.H{"status": "ok"}) +} + func writeFiles(writer io.Writer, files []FD) error { text := fmt.Sprintf("Total: %d\n", len(files)) text += "\n" diff --git a/proxy-router/internal/system/structs.go b/proxy-router/internal/system/structs.go index 3c8e440e..1a495da1 100644 --- a/proxy-router/internal/system/structs.go +++ b/proxy-router/internal/system/structs.go @@ -4,3 +4,20 @@ type FD struct { ID string Path string } + +type SetEthNodeURLReq struct { + URLs []string `json:"urls" binding:"required" validate:"required,url"` +} + +type ConfigResponse struct { + Version string + Commit string + DerivedConfig interface{} + Config interface{} +} + +type HealthCheckResponse struct { + Status string + Version string + Uptime string +} From 0942128d605421e24436a92d7f8e4e046a0f50ee Mon Sep 17 00:00:00 2001 From: shev Date: Thu, 10 Oct 2024 13:40:43 +0200 Subject: [PATCH 044/260] fix: update swagger --- proxy-router/docs/docs.go | 54 ++++++++++++++++++++-- proxy-router/docs/swagger.json | 54 ++++++++++++++++++++-- proxy-router/docs/swagger.yaml | 37 +++++++++++++-- proxy-router/internal/system/controller.go | 4 +- 4 files changed, 138 insertions(+), 11 deletions(-) diff --git a/proxy-router/docs/docs.go b/proxy-router/docs/docs.go index 8478af68..d52807d9 100644 --- a/proxy-router/docs/docs.go +++ b/proxy-router/docs/docs.go @@ -894,7 +894,7 @@ const docTemplate = `{ "application/json" ], "tags": [ - "healthcheck" + "system" ], "summary": "Get Config", "responses": { @@ -907,6 +907,40 @@ const docTemplate = `{ } } }, + "/config/ethNode": { + "post": { + "description": "Set the Eth Node URLs", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "system" + ], + "summary": "Set Eth Node URLs", + "parameters": [ + { + "description": "URLs", + "name": "urls", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/system.SetEthNodeURLReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/system.ConfigResponse" + } + } + } + } + }, "/files": { "get": { "description": "Returns opened files", @@ -914,7 +948,7 @@ const docTemplate = `{ "application/json" ], "tags": [ - "healthcheck" + "system" ], "summary": "Get files", "responses": { @@ -937,7 +971,7 @@ const docTemplate = `{ "application/json" ], "tags": [ - "healthcheck" + "system" ], "summary": "Healthcheck example", "responses": { @@ -2279,6 +2313,20 @@ const docTemplate = `{ "type": "string" } } + }, + "system.SetEthNodeURLReq": { + "type": "object", + "required": [ + "urls" + ], + "properties": { + "urls": { + "type": "array", + "items": { + "type": "string" + } + } + } } }, "externalDocs": { diff --git a/proxy-router/docs/swagger.json b/proxy-router/docs/swagger.json index a07754c7..9ce06b4e 100644 --- a/proxy-router/docs/swagger.json +++ b/proxy-router/docs/swagger.json @@ -887,7 +887,7 @@ "application/json" ], "tags": [ - "healthcheck" + "system" ], "summary": "Get Config", "responses": { @@ -900,6 +900,40 @@ } } }, + "/config/ethNode": { + "post": { + "description": "Set the Eth Node URLs", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "system" + ], + "summary": "Set Eth Node URLs", + "parameters": [ + { + "description": "URLs", + "name": "urls", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/system.SetEthNodeURLReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/system.ConfigResponse" + } + } + } + } + }, "/files": { "get": { "description": "Returns opened files", @@ -907,7 +941,7 @@ "application/json" ], "tags": [ - "healthcheck" + "system" ], "summary": "Get files", "responses": { @@ -930,7 +964,7 @@ "application/json" ], "tags": [ - "healthcheck" + "system" ], "summary": "Healthcheck example", "responses": { @@ -2272,6 +2306,20 @@ "type": "string" } } + }, + "system.SetEthNodeURLReq": { + "type": "object", + "required": [ + "urls" + ], + "properties": { + "urls": { + "type": "array", + "items": { + "type": "string" + } + } + } } }, "externalDocs": { diff --git a/proxy-router/docs/swagger.yaml b/proxy-router/docs/swagger.yaml index be753d53..6f5c95c3 100644 --- a/proxy-router/docs/swagger.yaml +++ b/proxy-router/docs/swagger.yaml @@ -648,6 +648,15 @@ definitions: version: type: string type: object + system.SetEthNodeURLReq: + properties: + urls: + items: + type: string + type: array + required: + - urls + type: object externalDocs: description: OpenAPI url: https://swagger.io/resources/open-api/ @@ -1238,7 +1247,29 @@ paths: $ref: '#/definitions/system.ConfigResponse' summary: Get Config tags: - - healthcheck + - system + /config/ethNode: + post: + consumes: + - application/json + description: Set the Eth Node URLs + parameters: + - description: URLs + in: body + name: urls + required: true + schema: + $ref: '#/definitions/system.SetEthNodeURLReq' + produces: + - application/json + responses: + "200": + description: OK + schema: + $ref: '#/definitions/system.ConfigResponse' + summary: Set Eth Node URLs + tags: + - system /files: get: description: Returns opened files @@ -1253,7 +1284,7 @@ paths: type: array summary: Get files tags: - - healthcheck + - system /healthcheck: get: description: do ping @@ -1266,7 +1297,7 @@ paths: $ref: '#/definitions/system.HealthCheckResponse' summary: Healthcheck example tags: - - healthcheck + - system /proxy/sessions/{id}/providerClaim: post: description: Claim provider balance from session diff --git a/proxy-router/internal/system/controller.go b/proxy-router/internal/system/controller.go index 8ab4559e..c400867c 100644 --- a/proxy-router/internal/system/controller.go +++ b/proxy-router/internal/system/controller.go @@ -139,8 +139,8 @@ func (s *SystemController) GetFiles(ctx *gin.Context) { // @Tags system // @Accept json // @Produce json -// @Param urls body SetEthNodeURLReq true "URLs" -// @Success 200 {object} ConfigResponse +// @Param urls body SetEthNodeURLReq true "URLs" +// @Success 200 {object} ConfigResponse // @Router /config/ethNode [post] func (s *SystemController) SetEthNode(ctx *gin.Context) { var req SetEthNodeURLReq From d9b6a692f5598f82dea35479b40accbc3fa722d9 Mon Sep 17 00:00:00 2001 From: shev Date: Thu, 10 Oct 2024 17:01:54 +0200 Subject: [PATCH 045/260] feat: eth node url keychain persistence --- proxy-router/cmd/main.go | 24 +++--- proxy-router/internal/interfaces/keychain.go | 9 +++ .../contracts/log_watcher_polling.go | 34 +++++--- .../contracts/log_watcher_subscription.go | 2 +- .../repositories/ethclient/rpcclient.go | 6 ++ .../ethclient/rpcclient_store_env.go | 27 +++++++ .../ethclient/rpcclient_store_factory.go | 79 +++++++++++++++++++ .../ethclient/rpcclient_store_keychain.go | 73 +++++++++++++++++ .../repositories/wallet/keychainwallet.go | 7 +- 9 files changed, 232 insertions(+), 29 deletions(-) create mode 100644 proxy-router/internal/interfaces/keychain.go create mode 100644 proxy-router/internal/repositories/ethclient/rpcclient_store_env.go create mode 100644 proxy-router/internal/repositories/ethclient/rpcclient_store_factory.go create mode 100644 proxy-router/internal/repositories/ethclient/rpcclient_store_keychain.go diff --git a/proxy-router/cmd/main.go b/proxy-router/cmd/main.go index 7f33a0e9..f1732bcf 100644 --- a/proxy-router/cmd/main.go +++ b/proxy-router/cmd/main.go @@ -21,6 +21,7 @@ import ( "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/proxyctl" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/contracts" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/ethclient" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/keychain" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/registries" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/transport" wlt "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/wallet" @@ -183,25 +184,18 @@ func start() error { os.Exit(1) }() - var rpcURLs []string + keychainStorage := keychain.NewKeychain() + + var ethNodeAddresses []string if cfg.Blockchain.EthNodeAddress != "" { - rpcURLs = []string{cfg.Blockchain.EthNodeAddress} - appLog.Info("using configured eth node address") - } else { - var err error - rpcURLs, err = ethclient.GetPublicRPCURLs(cfg.Blockchain.ChainID) - if err != nil { - return err - } - appLog.Infof("using public eth node addresses: %v", rpcURLs) + ethNodeAddresses = []string{cfg.Blockchain.EthNodeAddress} } - - rpcClient, err := ethclient.NewRPCClientMultiple(rpcURLs, log.Named("RPC")) + rpcClientStore, err := ethclient.ConfigureRPCClientStore(keychainStorage, ethNodeAddresses, cfg.Blockchain.ChainID, log.Named("RPC")) if err != nil { return lib.WrapError(ErrConnectToEthNode, err) } - ethClient := ethclient.NewClient(rpcClient) + ethClient := ethclient.NewClient(rpcClientStore.GetClient()) chainID, err := ethClient.ChainID(ctx) if err != nil { return lib.WrapError(ErrConnectToEthNode, err) @@ -224,7 +218,7 @@ func start() error { wallet = wlt.NewEnvWallet(*cfg.Marketplace.WalletPrivateKey) log.Warnf("Using env wallet. Private key persistance unavailable") } else { - wallet = wlt.NewKeychainWallet() + wallet = wlt.NewKeychainWallet(keychainStorage) log.Infof("Using keychain wallet") } @@ -264,7 +258,7 @@ func start() error { proxyController := proxyapi.NewProxyController(proxyRouterApi, aiEngine, chatStorage) walletController := walletapi.NewWalletController(wallet) - systemController := system.NewSystemController(&cfg, wallet, rpcClient, sysConfig, appStartTime, chainID, log) + systemController := system.NewSystemController(&cfg, wallet, rpcClientStore, sysConfig, appStartTime, chainID, log) apiBus := apibus.NewApiBus(blockchainController, proxyController, walletController, systemController) httpHandler := httphandlers.CreateHTTPServer(log, apiBus) diff --git a/proxy-router/internal/interfaces/keychain.go b/proxy-router/internal/interfaces/keychain.go new file mode 100644 index 00000000..7a6857af --- /dev/null +++ b/proxy-router/internal/interfaces/keychain.go @@ -0,0 +1,9 @@ +package interfaces + +type KeyValueStorage interface { + Get(key string) (string, error) + Insert(key string, value string) error + Upsert(key string, value string) error + Delete(key string) error + DeleteIfExists(key string) error +} diff --git a/proxy-router/internal/repositories/contracts/log_watcher_polling.go b/proxy-router/internal/repositories/contracts/log_watcher_polling.go index c1919173..d59117c8 100644 --- a/proxy-router/internal/repositories/contracts/log_watcher_polling.go +++ b/proxy-router/internal/repositories/contracts/log_watcher_polling.go @@ -2,6 +2,7 @@ package contracts import ( "context" + "errors" "math/big" "time" @@ -12,6 +13,10 @@ import ( "github.com/ethereum/go-ethereum/core/types" ) +var ( + SubClosedError = errors.New("subscription closed") +) + type LogWatcherPolling struct { // config maxReconnects int @@ -51,7 +56,7 @@ func (w *LogWatcherPolling) Watch(ctx context.Context, contractAddr common.Addre FromBlock: lastQueriedBlock, ToBlock: nil, } - sub, err := w.filterLogsRetry(ctx, query) + sub, err := w.filterLogsRetry(ctx, query, quit) if err != nil { return err } @@ -67,7 +72,7 @@ func (w *LogWatcherPolling) Watch(ctx context.Context, contractAddr common.Addre select { case <-quit: - return nil + return SubClosedError case <-ctx.Done(): return ctx.Err() case sink <- event: @@ -89,20 +94,29 @@ func (w *LogWatcherPolling) Watch(ctx context.Context, contractAddr common.Addre }, sink), nil } -func (w *LogWatcherPolling) filterLogsRetry(ctx context.Context, query ethereum.FilterQuery) ([]types.Log, error) { +func (w *LogWatcherPolling) filterLogsRetry(ctx context.Context, query ethereum.FilterQuery, quit <-chan struct{}) ([]types.Log, error) { var lastErr error for attempts := 0; attempts < w.maxReconnects; attempts++ { logs, err := w.client.FilterLogs(ctx, query) - if err != nil { - lastErr = err - continue - } - if attempts > 0 { - w.log.Warnf("subscription reconnected due to error: %s", lastErr) + if err == nil { + if attempts > 0 { + w.log.Warnf("subscription successfully reconnected after error: %s", lastErr) + } + + return logs, nil } - return logs, nil + w.log.Debugf("subscription error: %s, retrying in %s", err, w.pollInterval.String()) + lastErr = err + + select { + case <-quit: + return nil, SubClosedError + case <-ctx.Done(): + return nil, ctx.Err() + case <-time.After(w.pollInterval): + } } return nil, lastErr diff --git a/proxy-router/internal/repositories/contracts/log_watcher_subscription.go b/proxy-router/internal/repositories/contracts/log_watcher_subscription.go index 4106be51..98e6a33d 100644 --- a/proxy-router/internal/repositories/contracts/log_watcher_subscription.go +++ b/proxy-router/internal/repositories/contracts/log_watcher_subscription.go @@ -96,7 +96,7 @@ func (w *LogWatcherSubscription) subscribeFilterLogsRetry(ctx context.Context, q continue } if attempts > 0 { - w.log.Warnf("subscription reconnected due to error: %s", lastErr) + w.log.Warnf("subscription successfully reconnected after error: %s", lastErr) } return sub, nil diff --git a/proxy-router/internal/repositories/ethclient/rpcclient.go b/proxy-router/internal/repositories/ethclient/rpcclient.go index f127020e..2851f95e 100644 --- a/proxy-router/internal/repositories/ethclient/rpcclient.go +++ b/proxy-router/internal/repositories/ethclient/rpcclient.go @@ -3,6 +3,7 @@ package ethclient import ( "context" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" "github.com/ethereum/go-ethereum/rpc" ) @@ -12,3 +13,8 @@ type RPCClient interface { CallContext(ctx context.Context, result interface{}, method string, args ...interface{}) error EthSubscribe(ctx context.Context, channel interface{}, args ...interface{}) (*rpc.ClientSubscription, error) } + +type RPCClientModifiable interface { + RPCClient + interfaces.RPCEndpoints +} diff --git a/proxy-router/internal/repositories/ethclient/rpcclient_store_env.go b/proxy-router/internal/repositories/ethclient/rpcclient_store_env.go new file mode 100644 index 00000000..894b7ff2 --- /dev/null +++ b/proxy-router/internal/repositories/ethclient/rpcclient_store_env.go @@ -0,0 +1,27 @@ +package ethclient + +import ( + "errors" +) + +var ErrEnvRPCSet = errors.New("cannot set rpc url when using env store, switch to keychain store by removing ETH_NODE_URL env var") + +type RPCClientStoreEnv struct { + rpcClient RPCClientModifiable +} + +func (p *RPCClientStoreEnv) GetURLs() []string { + return p.rpcClient.GetURLs() +} + +func (p *RPCClientStoreEnv) SetURLs(urls []string) error { + return ErrEnvRPCSet +} + +func (p *RPCClientStoreEnv) RemoveURLs() error { + return ErrEnvRPCSet +} + +func (p *RPCClientStoreEnv) GetClient() RPCClient { + return p.rpcClient +} diff --git a/proxy-router/internal/repositories/ethclient/rpcclient_store_factory.go b/proxy-router/internal/repositories/ethclient/rpcclient_store_factory.go new file mode 100644 index 00000000..911e3486 --- /dev/null +++ b/proxy-router/internal/repositories/ethclient/rpcclient_store_factory.go @@ -0,0 +1,79 @@ +package ethclient + +import ( + "errors" + + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/keychain" +) + +type RPCEndpointsPersister interface { + GetURLs() []string + SetURLs(urls []string) error + RemoveURLs() error + GetClient() RPCClient +} + +func ConfigureRPCClientStore(storage interfaces.KeyValueStorage, envURLs []string, chainID int, log lib.ILogger) (RPCEndpointsPersister, error) { + // if env set, use env store + if len(envURLs) > 0 { + rpcClient, err := NewRPCClientMultiple(envURLs, log) + if err != nil { + return nil, err + } + + log.Info("using eth node address configured in env") + + p := &RPCClientStoreEnv{ + rpcClient: rpcClient, + } + return p, nil + } + + // if no env set, try use keychain store + rpcClient := &RPCClientMultiple{ + log: log, + } + p := &RPCClientStoreKeychain{ + storage: storage, + log: log, + rpcClient: rpcClient, + } + + urls, err := p.loadURLsFromStorage() + if err == nil { + log.Info("using eth node address configured in keychain") + + err = rpcClient.SetURLs(urls) + if err != nil { + return nil, err + } + + return p, nil + } + + // if error during loading keychain, use fallback URLs + if !errors.Is(err, keychain.ErrKeyNotFound) { + p.log.Warn("Error during loading keychain eth client URLs, using fallback URLs", err) + } + + publicURLs, err := GetPublicRPCURLs(chainID) + if err != nil { + return nil, err + } + + log.Info("using public eth node addresses") + + rpcClient, err = NewRPCClientMultiple(publicURLs, log) + if err != nil { + return nil, err + } + + rpc := &RPCClientStoreKeychain{ + rpcClient: rpcClient, + storage: storage, + } + + return rpc, nil +} diff --git a/proxy-router/internal/repositories/ethclient/rpcclient_store_keychain.go b/proxy-router/internal/repositories/ethclient/rpcclient_store_keychain.go new file mode 100644 index 00000000..2196825d --- /dev/null +++ b/proxy-router/internal/repositories/ethclient/rpcclient_store_keychain.go @@ -0,0 +1,73 @@ +package ethclient + +import ( + "encoding/json" + + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" +) + +const ( + ETH_NODE_URL_KEY = "eth-node-url" +) + +type RPCClientStoreKeychain struct { + storage interfaces.KeyValueStorage + rpcClient RPCClientModifiable + log lib.ILogger +} + +func (p *RPCClientStoreKeychain) GetURLs() []string { + return p.rpcClient.GetURLs() +} + +func (p *RPCClientStoreKeychain) SetURLs(urls []string) error { + err := p.storeURLsInStorage(urls) + if err != nil { + return err + } + + return p.rpcClient.SetURLs(urls) +} + +func (p *RPCClientStoreKeychain) RemoveURLs() error { + return p.deleteURLsInStorage() +} + +func (p *RPCClientStoreKeychain) GetClient() RPCClient { + return p.rpcClient +} + +func (p *RPCClientStoreKeychain) loadURLsFromStorage() ([]string, error) { + // return []string{"https://arb-sepolia.g.alchemy.com/v2/3-pxwBaJ7vilkz1jl-fMmCvZThGxpmo2"}, nil + str, err := p.storage.Get(ETH_NODE_URL_KEY) + if err != nil { + return nil, err + } + + var urls []string + err = json.Unmarshal([]byte(str), &urls) + if err != nil { + return nil, err + } + + return urls, nil +} + +func (p *RPCClientStoreKeychain) storeURLsInStorage(urls []string) error { + str, err := json.Marshal(urls) + if err != nil { + return err + } + + err = p.storage.Upsert(ETH_NODE_URL_KEY, string(str)) + if err != nil { + return err + } + + return nil +} + +func (p *RPCClientStoreKeychain) deleteURLsInStorage() error { + return p.storage.DeleteIfExists(ETH_NODE_URL_KEY) +} diff --git a/proxy-router/internal/repositories/wallet/keychainwallet.go b/proxy-router/internal/repositories/wallet/keychainwallet.go index 6b6d2624..30e80eef 100644 --- a/proxy-router/internal/repositories/wallet/keychainwallet.go +++ b/proxy-router/internal/repositories/wallet/keychainwallet.go @@ -4,6 +4,7 @@ import ( "errors" "sync" + i "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/keychain" hdwallet "github.com/miguelmota/go-ethereum-hdwallet" @@ -21,14 +22,14 @@ var ( ) type KeychainWallet struct { - storage *keychain.Keychain + storage i.KeyValueStorage updatedCh chan struct{} mutex sync.Mutex } -func NewKeychainWallet() *KeychainWallet { +func NewKeychainWallet(keychain i.KeyValueStorage) *KeychainWallet { return &KeychainWallet{ - storage: keychain.NewKeychain(), + storage: keychain, updatedCh: make(chan struct{}), } } From d1eab06c584d3e3a9b20756c25cfb0e9b99984e5 Mon Sep 17 00:00:00 2001 From: shev Date: Thu, 10 Oct 2024 18:53:52 +0200 Subject: [PATCH 046/260] fix: ability to reset keychain --- proxy-router/Makefile | 5 ++++- proxy-router/cmd/main.go | 21 ++++++++++++++++++- proxy-router/docs/docs.go | 18 ++++++++++++++++ proxy-router/docs/swagger.json | 18 ++++++++++++++++ proxy-router/docs/swagger.yaml | 12 +++++++++++ proxy-router/internal/config/config.go | 5 ++++- proxy-router/internal/interfaces/rpc_multi.go | 1 + .../contracts/log_watcher_polling_test.go | 2 +- .../repositories/ethclient/rpcclient.go | 4 ++-- .../ethclient/rpcclient_store_factory.go | 4 ++++ .../ethclient/rpcclient_store_keychain.go | 8 +++++++ proxy-router/internal/system/controller.go | 18 ++++++++++++++++ 12 files changed, 110 insertions(+), 6 deletions(-) diff --git a/proxy-router/Makefile b/proxy-router/Makefile index 1f14645d..f70d34a5 100644 --- a/proxy-router/Makefile +++ b/proxy-router/Makefile @@ -38,4 +38,7 @@ swagger: swag fmt -g ./internal/handlers/httphandlers/http.go && swag init -g ./internal/handlers/httphandlers/http.go --parseInternal mocks: - mockery \ No newline at end of file + mockery + +reset-keychain: + go run cmd/main.go --reset-keychain \ No newline at end of file diff --git a/proxy-router/cmd/main.go b/proxy-router/cmd/main.go index f1732bcf..bda5acdb 100644 --- a/proxy-router/cmd/main.go +++ b/proxy-router/cmd/main.go @@ -186,6 +186,25 @@ func start() error { keychainStorage := keychain.NewKeychain() + if cfg.App.ResetKeychain { + appLog.Warnf("Resetting keychain...") + wallet := wlt.NewKeychainWallet(keychainStorage) + err = wallet.DeleteWallet() + if err != nil { + appLog.Warnf("Failed to delete wallet\n%s", err) + } else { + appLog.Info("Wallet deleted") + } + + ethNodeStorage := ethclient.NewRPCClientStoreKeychain(keychainStorage, nil, log) + err = ethNodeStorage.RemoveURLs() + if err != nil { + appLog.Warnf("Failed to remove eth node urls\n%s", err) + } else { + appLog.Info("Eth node urls removed") + } + } + var ethNodeAddresses []string if cfg.Blockchain.EthNodeAddress != "" { ethNodeAddresses = []string{cfg.Blockchain.EthNodeAddress} @@ -200,7 +219,7 @@ func start() error { if err != nil { return lib.WrapError(ErrConnectToEthNode, err) } - if int(chainID.Uint64()) != cfg.Blockchain.ChainID { + if cfg.Blockchain.ChainID != 0 && int(chainID.Uint64()) != cfg.Blockchain.ChainID { return lib.WrapError(ErrConnectToEthNode, fmt.Errorf("configured chainID (%d) does not match eth node chain ID (%s)", cfg.Blockchain.ChainID, chainID)) } appLog.Infof("connected to ethereum node: %s, chainID: %d", cfg.Blockchain.EthNodeAddress, chainID) diff --git a/proxy-router/docs/docs.go b/proxy-router/docs/docs.go index d52807d9..aef81a5b 100644 --- a/proxy-router/docs/docs.go +++ b/proxy-router/docs/docs.go @@ -939,6 +939,24 @@ const docTemplate = `{ } } } + }, + "delete": { + "description": "Delete the Eth Node URLs", + "produces": [ + "application/json" + ], + "tags": [ + "system" + ], + "summary": "Delete Eth Node URLs", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/system.ConfigResponse" + } + } + } } }, "/files": { diff --git a/proxy-router/docs/swagger.json b/proxy-router/docs/swagger.json index 9ce06b4e..84d4cdbb 100644 --- a/proxy-router/docs/swagger.json +++ b/proxy-router/docs/swagger.json @@ -932,6 +932,24 @@ } } } + }, + "delete": { + "description": "Delete the Eth Node URLs", + "produces": [ + "application/json" + ], + "tags": [ + "system" + ], + "summary": "Delete Eth Node URLs", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/system.ConfigResponse" + } + } + } } }, "/files": { diff --git a/proxy-router/docs/swagger.yaml b/proxy-router/docs/swagger.yaml index 6f5c95c3..6499c347 100644 --- a/proxy-router/docs/swagger.yaml +++ b/proxy-router/docs/swagger.yaml @@ -1249,6 +1249,18 @@ paths: tags: - system /config/ethNode: + delete: + description: Delete the Eth Node URLs + produces: + - application/json + responses: + "200": + description: OK + schema: + $ref: '#/definitions/system.ConfigResponse' + summary: Delete Eth Node URLs + tags: + - system post: consumes: - application/json diff --git a/proxy-router/internal/config/config.go b/proxy-router/internal/config/config.go index 15b61cbe..02e27543 100644 --- a/proxy-router/internal/config/config.go +++ b/proxy-router/internal/config/config.go @@ -18,12 +18,15 @@ type DerivedConfig struct { // Validation tags described here: https://pkg.go.dev/github.com/go-playground/validator/v10 type Config struct { + App struct { + ResetKeychain bool `env:"APP_RESET_KEYCHAIN" flag:"app-reset-keychain" desc:"reset keychain on start"` + } AIEngine struct { OpenAIBaseURL string `env:"OPENAI_BASE_URL" flag:"open-ai-base-url" validate:"required,url"` OpenAIKey string `env:"OPENAI_API_KEY" flag:"open-ai-api-key"` } Blockchain struct { - ChainID int `env:"ETH_NODE_CHAIN_ID" flag:"eth-node-chain-id" validate:"required,number"` + ChainID int `env:"ETH_NODE_CHAIN_ID" flag:"eth-node-chain-id" validate:"number"` EthNodeAddress string `env:"ETH_NODE_ADDRESS" flag:"eth-node-address" validate:"omitempty,url"` EthLegacyTx bool `env:"ETH_NODE_LEGACY_TX" flag:"eth-node-legacy-tx" desc:"use it to disable EIP-1559 transactions"` ExplorerApiUrl string `env:"EXPLORER_API_URL" flag:"explorer-api-url" validate:"required,url"` diff --git a/proxy-router/internal/interfaces/rpc_multi.go b/proxy-router/internal/interfaces/rpc_multi.go index a56eaa4a..ce8fea32 100644 --- a/proxy-router/internal/interfaces/rpc_multi.go +++ b/proxy-router/internal/interfaces/rpc_multi.go @@ -3,4 +3,5 @@ package interfaces type RPCEndpoints interface { GetURLs() []string SetURLs(urls []string) error + RemoveURLs() error } diff --git a/proxy-router/internal/repositories/contracts/log_watcher_polling_test.go b/proxy-router/internal/repositories/contracts/log_watcher_polling_test.go index 2bd1cb9a..50f93b6b 100644 --- a/proxy-router/internal/repositories/contracts/log_watcher_polling_test.go +++ b/proxy-router/internal/repositories/contracts/log_watcher_polling_test.go @@ -26,7 +26,7 @@ func TestLogWatcherPolling(t *testing.T) { _ = ethClientMock.EXPECT().FilterLogs(mock.Anything, mock.Anything).Return([]types.Log{}, nil).Times(1).NotBefore(call1) logWatcherPolling := NewLogWatcherPolling(ethClientMock, 0, 10, lib.NewTestLogger()) - _, err := logWatcherPolling.filterLogsRetry(context.Background(), ethereum.FilterQuery{}) + _, err := logWatcherPolling.filterLogsRetry(context.Background(), ethereum.FilterQuery{}, make(<-chan struct{})) require.NoError(t, err) ethClientMock.AssertNumberOfCalls(t, "FilterLogs", failTimes+1) } diff --git a/proxy-router/internal/repositories/ethclient/rpcclient.go b/proxy-router/internal/repositories/ethclient/rpcclient.go index 2851f95e..2fac363c 100644 --- a/proxy-router/internal/repositories/ethclient/rpcclient.go +++ b/proxy-router/internal/repositories/ethclient/rpcclient.go @@ -3,7 +3,6 @@ package ethclient import ( "context" - "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" "github.com/ethereum/go-ethereum/rpc" ) @@ -16,5 +15,6 @@ type RPCClient interface { type RPCClientModifiable interface { RPCClient - interfaces.RPCEndpoints + GetURLs() []string + SetURLs(urls []string) error } diff --git a/proxy-router/internal/repositories/ethclient/rpcclient_store_factory.go b/proxy-router/internal/repositories/ethclient/rpcclient_store_factory.go index 911e3486..18c296da 100644 --- a/proxy-router/internal/repositories/ethclient/rpcclient_store_factory.go +++ b/proxy-router/internal/repositories/ethclient/rpcclient_store_factory.go @@ -58,6 +58,10 @@ func ConfigureRPCClientStore(storage interfaces.KeyValueStorage, envURLs []strin p.log.Warn("Error during loading keychain eth client URLs, using fallback URLs", err) } + if chainID == 0 { + return nil, errors.New("Missing chainID. You need to set CHAIN_ID env variable to use public eth node addresses") + } + publicURLs, err := GetPublicRPCURLs(chainID) if err != nil { return nil, err diff --git a/proxy-router/internal/repositories/ethclient/rpcclient_store_keychain.go b/proxy-router/internal/repositories/ethclient/rpcclient_store_keychain.go index 2196825d..3112d772 100644 --- a/proxy-router/internal/repositories/ethclient/rpcclient_store_keychain.go +++ b/proxy-router/internal/repositories/ethclient/rpcclient_store_keychain.go @@ -17,6 +17,14 @@ type RPCClientStoreKeychain struct { log lib.ILogger } +func NewRPCClientStoreKeychain(storage interfaces.KeyValueStorage, rpcClient RPCClientModifiable, log lib.ILogger) *RPCClientStoreKeychain { + return &RPCClientStoreKeychain{ + storage: storage, + rpcClient: rpcClient, + log: log, + } +} + func (p *RPCClientStoreKeychain) GetURLs() []string { return p.rpcClient.GetURLs() } diff --git a/proxy-router/internal/system/controller.go b/proxy-router/internal/system/controller.go index c400867c..651cecfe 100644 --- a/proxy-router/internal/system/controller.go +++ b/proxy-router/internal/system/controller.go @@ -158,6 +158,24 @@ func (s *SystemController) SetEthNode(ctx *gin.Context) { ctx.JSON(http.StatusOK, gin.H{"status": "ok"}) } +// DeleteEthNode godoc +// +// @Summary Delete Eth Node URLs +// @Description Delete the Eth Node URLs +// @Tags system +// @Produce json +// @Success 200 {object} ConfigResponse +// @Router /config/ethNode [delete] +func (c *SystemController) RemoveEthNode(ctx *gin.Context) { + err := c.ethRPC.RemoveURLs() + if err != nil { + ctx.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + + ctx.JSON(http.StatusOK, gin.H{"status": "ok"}) +} + func writeFiles(writer io.Writer, files []FD) error { text := fmt.Sprintf("Total: %d\n", len(files)) text += "\n" From 7b876f9e72249f6df6a0a8a5b93f3e1bdbff555b Mon Sep 17 00:00:00 2001 From: "bohdan.konorin" Date: Wed, 16 Oct 2024 23:08:26 +0200 Subject: [PATCH 047/260] Added availability check --- proxy-router/.env.example | 8 +-- .../internal/proxyapi/controller_http.go | 6 +++ .../main/src/client/handlers/single-core.js | 22 +------- .../src/client/subscriptions/single-core.js | 1 - ui-desktop/src/renderer/src/client/index.jsx | 1 - .../src/renderer/src/components/chat/Chat.tsx | 34 ++++++++---- .../src/components/chat/ChatHistory.tsx | 14 +++-- .../src/components/chat/modals/ModelRow.tsx | 14 +++-- .../chat/modals/ModelSelectionModal.tsx | 6 ++- .../renderer/src/store/hocs/withChatState.jsx | 53 +++++++++++++++++-- 10 files changed, 109 insertions(+), 50 deletions(-) diff --git a/proxy-router/.env.example b/proxy-router/.env.example index 2044b0bf..412f8239 100644 --- a/proxy-router/.env.example +++ b/proxy-router/.env.example @@ -8,6 +8,10 @@ WEB_ADDRESS=0.0.0.0:8082 # Change to your desired port that your Proxy-router AP WEB_PUBLIC_URL=localhost:8082 # Change to your desired port should match WEB_ADDRESS port number OPENAI_BASE_URL=http://localhost:8080/v1 # Change to your OpenAI API port for local model +PROXY_ADDRESS=0.0.0.0:3333 +PROXY_STORAGE_PATH=./data/ +PROXY_STORE_CHAT_CONTEXT=true + # MODELS_CONFIG_PATH= ENVIRONMENT=development ETH_NODE_LEGACY_TX=false @@ -19,9 +23,7 @@ LOG_LEVEL_CONNECTION=info LOG_LEVEL_PROXY=info LOG_LEVEL_SCHEDULER=info OPENAI_API_KEY= #optional -PROXY_ADDRESS=0.0.0.0:3333 -PROXY_STORAGE_PATH=./data/ -PROXY_STORE_CHAT_CONTEXT=true + SYS_ENABLE=false SYS_LOCAL_PORT_RANGE=1024 65535 SYS_NET_DEV_MAX_BACKLOG=100000 diff --git a/proxy-router/internal/proxyapi/controller_http.go b/proxy-router/internal/proxyapi/controller_http.go index 1c7994f5..7e77d749 100644 --- a/proxy-router/internal/proxyapi/controller_http.go +++ b/proxy-router/internal/proxyapi/controller_http.go @@ -221,6 +221,12 @@ func (c *ProxyController) Models(ctx *gin.Context) { // @Router /v1/chats [get] func (c *ProxyController) GetChats(ctx *gin.Context) { chats := c.chatStorage.GetChats() + + if chats == nil { + ctx.JSON(http.StatusOK, make([]Chat, 0)) + return + } + ctx.JSON(http.StatusOK, chats) } diff --git a/ui-desktop/src/main/src/client/handlers/single-core.js b/ui-desktop/src/main/src/client/handlers/single-core.js index 6cc17555..54d31229 100644 --- a/ui-desktop/src/main/src/client/handlers/single-core.js +++ b/ui-desktop/src/main/src/client/handlers/single-core.js @@ -174,7 +174,7 @@ export const onboardingCompleted = (data, core) => { }) .then((privateKey) => { const { proxyUrl } = data - return fetch(`${proxyUrl}/wallet`, { + return fetch(`${proxyUrl}/wallet/privateKey`, { method: 'POST', body: JSON.stringify({ privateKey @@ -185,25 +185,6 @@ export const onboardingCompleted = (data, core) => { .catch((err) => ({ error: new WalletError('Onboarding unable to be completed: ', err) })) } -export const recoverFromMnemonic = function (data, core) { - if (!auth.isValidPassword(data.password)) { - return null - } - - wallet.clearWallet() - - return createWallet( - { - mnemonic: data.mnemonic, - password: data.password - }, - core, - false - ) - .then(noCore.clearCache) - .then((_) => auth.setSessionPassword(data.password)) -} - function onLoginSubmit({ password }, core) { var checkPassword = config.chain.bypassAuth ? new Promise((r) => r(true)) @@ -346,7 +327,6 @@ export default { createContract, cancelContract, onboardingCompleted, - recoverFromMnemonic, onLoginSubmit, refreshAllTransactions, createWallet, diff --git a/ui-desktop/src/main/src/client/subscriptions/single-core.js b/ui-desktop/src/main/src/client/subscriptions/single-core.js index fb3ee47c..53e03ea0 100644 --- a/ui-desktop/src/main/src/client/subscriptions/single-core.js +++ b/ui-desktop/src/main/src/client/subscriptions/single-core.js @@ -4,7 +4,6 @@ import utils from './utils' export const withCore = (core) => (fn) => (data) => fn(data, core) export const listeners = { - 'recover-from-mnemonic': handlers.recoverFromMnemonic, 'onboarding-completed': handlers.onboardingCompleted, 'login-submit': handlers.onLoginSubmit, // 'refresh-all-sockets': handlers.refreshAllSockets, diff --git a/ui-desktop/src/renderer/src/client/index.jsx b/ui-desktop/src/renderer/src/client/index.jsx index d3372c37..587dfd00 100644 --- a/ui-desktop/src/renderer/src/client/index.jsx +++ b/ui-desktop/src/renderer/src/client/index.jsx @@ -93,7 +93,6 @@ const createClient = function (createStore) { refreshAllTransactions: utils.forwardToMainProcess('refresh-all-transactions', 120000), refreshAllContracts: utils.forwardToMainProcess('refresh-all-contracts', 120000), onOnboardingCompleted: utils.forwardToMainProcess('onboarding-completed'), - recoverFromMnemonic: utils.forwardToMainProcess('recover-from-mnemonic'), getTokenGasLimit: utils.forwardToMainProcess('get-token-gas-limit'), validatePassword: utils.forwardToMainProcess('validate-password'), changePassword: utils.forwardToMainProcess('change-password'), diff --git a/ui-desktop/src/renderer/src/components/chat/Chat.tsx b/ui-desktop/src/renderer/src/components/chat/Chat.tsx index c9f3fd79..aecd99ac 100644 --- a/ui-desktop/src/renderer/src/components/chat/Chat.tsx +++ b/ui-desktop/src/renderer/src/components/chat/Chat.tsx @@ -89,15 +89,31 @@ const Chat = (props) => { setBalances(userBalances) setMeta(meta); setChainData(chainData) - setChatsData(chats.map(t => ({ - id: t.chatId, - title: t.title, - createdAt: new Date(t.createdAt * 1000), - modelId: t.modelId, - isLocal: t.isLocal, - }))); - - const sessions = await props.getSessionsByUser(props.address); + + const mappedChatData = chats.reduce((res, item) => { + const chatModel = chainData.models.find(x => x.Id == item.modelId); + if(chatModel) { + res.push({ + id: item.chatId, + title: item.title, + createdAt: new Date(item.createdAt * 1000), + modelId: item.modelId, + isLocal: item.isLocal, + }) + } + return res; + }, [] as ChatData[]) + setChatsData(mappedChatData); + + const sessions = (await props.getSessionsByUser(props.address)).reduce((res, item) => { + const sessionModel = chainData.models.find(x => x.Id == item.ModelAgentId); + if(sessionModel) { + item.ModelName = sessionModel.Name; + res.push(item); + } + return res; + }, []); + const openSessions = sessions.filter(s => !isClosed(s)); setSessions(sessions); diff --git a/ui-desktop/src/renderer/src/components/chat/ChatHistory.tsx b/ui-desktop/src/renderer/src/components/chat/ChatHistory.tsx index fcef9190..3430d41e 100644 --- a/ui-desktop/src/renderer/src/components/chat/ChatHistory.tsx +++ b/ui-desktop/src/renderer/src/components/chat/ChatHistory.tsx @@ -207,21 +207,19 @@ export const ChatHistory = (props: ChatHistoryProps) => { { sessions?.length ? ( - sessions.map(a => { - const model = props.models.find(x => x.Id == a.ModelAgentId); - + sessions.map(s => { return ( - +
- {!isClosed(a) ? + {!isClosed(s) ? Active - props.onCloseSession(a.Id)}>Close + props.onCloseSession(s.Id)}>Close : null}
- {model?.Name} - {((a.EndsAt - a.OpenedAt) / 60).toFixed(0)} min + {s.ModelName} + {((s.EndsAt - s.OpenedAt) / 60).toFixed(0)} min
) diff --git a/ui-desktop/src/renderer/src/components/chat/modals/ModelRow.tsx b/ui-desktop/src/renderer/src/components/chat/modals/ModelRow.tsx index 32915a6a..d097816b 100644 --- a/ui-desktop/src/renderer/src/components/chat/modals/ModelRow.tsx +++ b/ui-desktop/src/renderer/src/components/chat/modals/ModelRow.tsx @@ -6,7 +6,7 @@ import { } from '../../contracts/modals/CreateContractModal.styles'; import { abbreviateAddress } from '../../../utils'; import { formatSmallNumber } from '../utils'; -import { IconX } from '@tabler/icons-react'; +import { IconX, IconPlugConnectedX } from '@tabler/icons-react'; const RowContainer = styled.div` padding: 0 1.2rem; @@ -58,6 +58,12 @@ const ModelNameContainer = styled(FlexCenter)` text-overflow: ellipsis; ` +const DisconnectedIcon = styled(IconPlugConnectedX)` + width: 16px; + color: white; + margin-left: 10px; +` + const selectorStyles = { control: (base) => ({ ...base, borderColor: '#20dc8e', width: '100%', background: 'transparent' }), option: (base, state) => ({ @@ -94,6 +100,7 @@ function ModelRow(props) { const modelId = props?.model?.Id || ''; const hasLocal = props?.model?.hasLocal; const hasBids = Boolean(bids.length); + const lastAvailabilityCheck: Date | null = bids.map(b => new Date(b.ProviderData.availabilityUpdatedAt))[0] ?? null; const [selected, changeSelected] = useState(); const [useSelect, setUseSelect] = useState(); @@ -135,7 +142,8 @@ function ModelRow(props) { return ( - {props?.model?.Name} + { props?.model?.Name } + { !props?.model?.isOnline && } { @@ -182,7 +190,7 @@ function ModelRow(props) { } { hasBids && - Select + Select } diff --git a/ui-desktop/src/renderer/src/components/chat/modals/ModelSelectionModal.tsx b/ui-desktop/src/renderer/src/components/chat/modals/ModelSelectionModal.tsx index a2f97713..f2d6da16 100644 --- a/ui-desktop/src/renderer/src/components/chat/modals/ModelSelectionModal.tsx +++ b/ui-desktop/src/renderer/src/components/chat/modals/ModelSelectionModal.tsx @@ -47,7 +47,11 @@ const ModelSelectionModal = ({ isActive, handleClose, models, onChangeModel }) = handleClose(); } - const filterdModels = search ? models.filter(m => m.Name.includes(search)) : models; + const sortedModels = models + .map(m => ({ ...m, isOnline: m.bids.some(b => b.ProviderData.availabilityStatus == "available") })) + .sort((a, b) => b.isOnline - a.isOnline); + + const filterdModels = search ? sortedModels.filter(m => m.Name.includes(search)) : sortedModels; return ( { class Container extends React.Component { @@ -129,6 +133,17 @@ const withChatState = WrappedComponent => { const models = modelsResp.filter(m => !m.IsDeleted); const providers = providersResp.filter(m => !m.IsDeleted); + + const availabilityResults = await this.getProvidersAvailability(providers); + availabilityResults.forEach(ar => { + const provider = providers.find(p => p.Address == ar.id); + if(!provider) + return; + + provider.availabilityStatus = ar.status; + provider.availabilityUpdatedAt = ar.time; + }); + const providersMap = providers.reduce((a, b) => ({ ...a, [b.Address.toLowerCase()]: b }), {}); const responses = (await Promise.all( @@ -155,6 +170,38 @@ const withChatState = WrappedComponent => { return { models: result.filter(r => r.bids.length || r.hasLocal), providers } } + getProvidersAvailability = async (providers) => { + const availabilityResults = await Promise.all(providers.map(async p => { + try { + const storedRecord = JSON.parse(localStorage.getItem(p.Address)); + if(storedRecord && storedRecord.status != AvailabilityStatus.unknown) { + const lastUpdatedAt = new Date(storedRecord.time); + const oneHourBefore = new Date(new Date().getTime() - (60 * 60 * 1000)); + + if(lastUpdatedAt > oneHourBefore) { + return ({...storedRecord, id: p.Address}); + } + } + + const endpoint = p.Endpoint; + const [domain, port] = endpoint.split(":"); + const { data } = await axios.post("https://portchecker.io/api/v1/query", { + host: domain, + ports: [port], + }) + + const isValid = !!data.check?.find((c) => c.port == port && c.status == true); + const record = ({id: p.Address, status: isValid ? AvailabilityStatus.available : AvailabilityStatus.disconnected, time: new Date() }); + localStorage.setItem(record.id, JSON.stringify({ status: record.status, time: record.time })); + return record; + } + catch(e) { + return ({id: p.Address, status: AvailabilityStatus.unknown }) + } + })); + return availabilityResults; + } + getMetaInfo = async () => { const [budget, supply] = await Promise.all([ this.props.client.getTodaysBudget(), From 7200f5aeb8fe79f28c71574590b8a8e30fcab389 Mon Sep 17 00:00:00 2001 From: Aleksandr Kukharenko Date: Tue, 22 Oct 2024 15:18:18 +0300 Subject: [PATCH 048/260] feat: capacity managing --- proxy-router/cmd/main.go | 2 +- .../internal/blockchainapi/event_listener.go | 4 + .../internal/blockchainapi/service.go | 4 +- proxy-router/internal/config/models_config.go | 10 +- .../internal/proxyapi/capacity_manager.go | 116 +++++++++++++++ .../internal/proxyapi/proxy_receiver.go | 33 ++++- proxy-router/internal/proxyctl/proxyctl.go | 6 +- .../internal/storages/session_storage.go | 135 ++++++++++++++++++ proxy-router/readme.md | 25 +++- 9 files changed, 323 insertions(+), 12 deletions(-) create mode 100644 proxy-router/internal/proxyapi/capacity_manager.go diff --git a/proxy-router/cmd/main.go b/proxy-router/cmd/main.go index bda5acdb..a63b12a2 100644 --- a/proxy-router/cmd/main.go +++ b/proxy-router/cmd/main.go @@ -291,7 +291,7 @@ func start() error { cancel() }() - proxy := proxyctl.NewProxyCtl(eventListener, wallet, chainID, log, connLog, cfg.Proxy.Address, schedulerLogFactory, sessionStorage, modelConfigLoader, valid, aiEngine) + proxy := proxyctl.NewProxyCtl(eventListener, wallet, chainID, log, connLog, cfg.Proxy.Address, schedulerLogFactory, sessionStorage, modelConfigLoader, valid, aiEngine, blockchainApi) err = proxy.Run(ctx) cancelServer() diff --git a/proxy-router/internal/blockchainapi/event_listener.go b/proxy-router/internal/blockchainapi/event_listener.go index a5424468..bb036715 100644 --- a/proxy-router/internal/blockchainapi/event_listener.go +++ b/proxy-router/internal/blockchainapi/event_listener.go @@ -106,6 +106,10 @@ func (e *EventsListener) handleSessionOpened(event *sessionrouter.SessionRouterS var modelConfig *config.ModelConfig if session.Provider.Hex() == address.Hex() { modelConfig = e.modelConfigLoader.ModelConfigFromID(modelID) + err = e.store.AddSessionToModel(modelID, sessionId) + if err != nil { + return err + } } else { modelConfig = &config.ModelConfig{} } diff --git a/proxy-router/internal/blockchainapi/service.go b/proxy-router/internal/blockchainapi/service.go index 78ad4908..4f8fca66 100644 --- a/proxy-router/internal/blockchainapi/service.go +++ b/proxy-router/internal/blockchainapi/service.go @@ -699,7 +699,8 @@ func (s *BlockchainService) OpenSessionByModelId(ctx context.Context, modelID co scoredBids := rateBids(bidIDs, bids, providerStats, modelStats, s.log) for i, bid := range scoredBids { s.log.Infof("trying to open session with provider #%d %s", i, bid.Bid.Provider.String()) - hash, err := s.tryOpenSession(ctx, bid, duration, supply, budget, userAddr) + durationCopy := new(big.Int).Set(duration) + hash, err := s.tryOpenSession(ctx, bid, durationCopy, supply, budget, userAddr) if err == nil { return hash, nil } @@ -717,7 +718,6 @@ func (s *BlockchainService) tryOpenSession(ctx context.Context, bid structs.Scor totalCost := duration.Mul(&bid.Bid.PricePerSecond.Int, duration) stake := totalCost.Div(totalCost.Mul(supply, totalCost), budget) - initRes, err := s.proxyService.InitiateSession(ctx, userAddr, bid.Bid.Provider, stake, bid.Bid.Id, provider.Endpoint) if err != nil { return common.Hash{}, lib.WrapError(ErrInitSession, err) diff --git a/proxy-router/internal/config/models_config.go b/proxy-router/internal/config/models_config.go index 44b01b5b..02c11f55 100644 --- a/proxy-router/internal/config/models_config.go +++ b/proxy-router/internal/config/models_config.go @@ -13,10 +13,12 @@ type ModelConfigLoader struct { } type ModelConfig struct { - ModelName string `json:"modelName"` - ApiType string `json:"apiType"` - ApiURL string `json:"apiUrl"` - ApiKey string `json:"apiKey"` + ModelName string `json:"modelName"` + ApiType string `json:"apiType"` + ApiURL string `json:"apiUrl"` + ApiKey string `json:"apiKey"` + ConcurrentSlots int `json:"concurrentSlots"` + CapacityPolicy string `json:"capacityPolicy"` } type ModelConfigs map[string]ModelConfig diff --git a/proxy-router/internal/proxyapi/capacity_manager.go b/proxy-router/internal/proxyapi/capacity_manager.go new file mode 100644 index 00000000..930d8b69 --- /dev/null +++ b/proxy-router/internal/proxyapi/capacity_manager.go @@ -0,0 +1,116 @@ +package proxyapi + +import ( + "time" + + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/config" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/storages" +) + +type CapacityManagerInterface interface { + HasCapacity(modelID string) bool +} + +type CapacityManager struct { +} + +type SimpleCapacityManager struct { + storage *storages.SessionStorage + modelConfig *config.ModelConfig + log lib.ILogger +} + +func NewSimpleCapacityManager(modelConfig *config.ModelConfig, storage *storages.SessionStorage, log lib.ILogger) *SimpleCapacityManager { + return &SimpleCapacityManager{ + storage: storage, + modelConfig: modelConfig, + log: log, + } +} + +func (scm *SimpleCapacityManager) HasCapacity(modelID string) bool { + if scm.modelConfig.ConcurrentSlots == 0 { + return true + } + + sessions, err := scm.storage.GetSessionsForModel(modelID) + if err != nil { + scm.log.Error(err) + return false + } + + activeSessions := 0 + for _, session := range sessions { + s, ok := scm.storage.GetSession(session) + if !ok { + continue + } + if s.EndsAt.Int64() > time.Now().Unix() { + activeSessions++ + } + } + + return activeSessions < scm.modelConfig.ConcurrentSlots +} + +type IdleTimeoutCapacityManager struct { + storage *storages.SessionStorage + modelConfig *config.ModelConfig + log lib.ILogger +} + +func NewIdleTimeoutCapacityManager(modelConfig *config.ModelConfig, storage *storages.SessionStorage, log lib.ILogger) *IdleTimeoutCapacityManager { + return &IdleTimeoutCapacityManager{ + storage: storage, + modelConfig: modelConfig, + log: log, + } +} + +func (idcm *IdleTimeoutCapacityManager) HasCapacity(modelID string) bool { + IDLE_TIMEOUT := 15 * 60 // 15 min + + if idcm.modelConfig.ConcurrentSlots == 0 { + return true + } + + activities, err := idcm.storage.GetActivities(modelID) + if err != nil { + idcm.log.Error(err) + return false + } + + activeSessions := 0 + for _, activity := range activities { + session, ok := idcm.storage.GetSession(activity.SessionID) + if !ok { + continue + } + if session.EndsAt.Int64() < time.Now().Unix() { + continue + } + if activity.EndTime > time.Now().Unix()-int64(IDLE_TIMEOUT) { + activeSessions++ + } + } + + REMOTE_IDLE_TIMEOUT := 60 * 60 // 60 min + err = idcm.storage.RemoveOldActivities(modelID, time.Now().Unix()-int64(REMOTE_IDLE_TIMEOUT)) + if err != nil { + idcm.log.Warnf("Failed to remove old activities: %s", err) + } + + return activeSessions < idcm.modelConfig.ConcurrentSlots +} + +func CreateCapacityManager(modelConfig *config.ModelConfig, storage *storages.SessionStorage, log lib.ILogger) CapacityManagerInterface { + switch modelConfig.CapacityPolicy { + case "simple": + return NewSimpleCapacityManager(modelConfig, storage, log) + case "idle_timeout": + return NewIdleTimeoutCapacityManager(modelConfig, storage, log) + default: + return NewSimpleCapacityManager(modelConfig, storage, log) + } +} diff --git a/proxy-router/internal/proxyapi/proxy_receiver.go b/proxy-router/internal/proxyapi/proxy_receiver.go index a92c564a..88b8d75e 100644 --- a/proxy-router/internal/proxyapi/proxy_receiver.go +++ b/proxy-router/internal/proxyapi/proxy_receiver.go @@ -8,6 +8,7 @@ import ( "time" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/aiengine" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/blockchainapi/structs" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/config" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" m "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/proxyapi/morrpcmessage" @@ -25,9 +26,14 @@ type ProxyReceiver struct { sessionStorage *storages.SessionStorage aiEngine *aiengine.AiEngine modelConfigLoader *config.ModelConfigLoader + blockchainService GetBidService } -func NewProxyReceiver(privateKeyHex, publicKeyHex lib.HexString, sessionStorage *storages.SessionStorage, aiEngine *aiengine.AiEngine, chainID *big.Int, modelConfigLoader *config.ModelConfigLoader) *ProxyReceiver { +type GetBidService interface { + GetBidByID(ctx context.Context, ID common.Hash) (*structs.Bid, error) +} + +func NewProxyReceiver(privateKeyHex, publicKeyHex lib.HexString, sessionStorage *storages.SessionStorage, aiEngine *aiengine.AiEngine, chainID *big.Int, modelConfigLoader *config.ModelConfigLoader, blockchainService GetBidService) *ProxyReceiver { return &ProxyReceiver{ privateKeyHex: privateKeyHex, publicKeyHex: publicKeyHex, @@ -36,6 +42,7 @@ func NewProxyReceiver(privateKeyHex, publicKeyHex lib.HexString, sessionStorage aiEngine: aiEngine, chainID: chainID, modelConfigLoader: modelConfigLoader, + blockchainService: blockchainService, } } @@ -125,13 +132,35 @@ func (s *ProxyReceiver) SessionPrompt(ctx context.Context, requestID string, use sourceLog.Error(err) return 0, 0, err } + + activity := storages.PromptActivity{ + SessionID: session.Id, + StartTime: now, + EndTime: time.Now().Unix(), + } + err = s.sessionStorage.AddActivity(session.ModelID, &activity) + if err != nil { + sourceLog.Warnf("failed to store activity: %s", err) + } + return ttftMs, totalTokens, nil } func (s *ProxyReceiver) SessionRequest(ctx context.Context, msgID string, reqID string, req *m.SessionReq, sourceLog lib.ILogger) (*msg.RpcResponse, error) { sourceLog.Debugf("Received session request from %s, timestamp: %s", req.User, req.Timestamp) - hasCapacity := true // check if there is capacity + bid, err := s.blockchainService.GetBidByID(ctx, req.BidID) + if err != nil { + err := lib.WrapError(fmt.Errorf("failed to get bid"), err) + sourceLog.Error(err) + return nil, err + } + + modelID := bid.ModelAgentId.String() + modelConfig := s.modelConfigLoader.ModelConfigFromID(modelID) + capacityManager := CreateCapacityManager(modelConfig, s.sessionStorage, sourceLog) + + hasCapacity := capacityManager.HasCapacity(modelID) if !hasCapacity { err := fmt.Errorf("no capacity") sourceLog.Error(err) diff --git a/proxy-router/internal/proxyctl/proxyctl.go b/proxy-router/internal/proxyctl/proxyctl.go index 43bef0d5..2813caf3 100644 --- a/proxy-router/internal/proxyctl/proxyctl.go +++ b/proxy-router/internal/proxyctl/proxyctl.go @@ -55,13 +55,14 @@ type Proxy struct { aiEngine *aiengine.AiEngine validator *validator.Validate modelConfigLoader *config.ModelConfigLoader + blockchainService *blockchainapi.BlockchainService state lib.AtomicValue[ProxyState] tsk *lib.Task } // NewProxyCtl creates a new Proxy controller instance -func NewProxyCtl(eventListerer *blockchainapi.EventsListener, wallet interfaces.PrKeyProvider, chainID *big.Int, log *lib.Logger, connLog *lib.Logger, proxyAddr string, scl SchedulerLogFactory, sessionStorage *storages.SessionStorage, modelConfigLoader *config.ModelConfigLoader, valid *validator.Validate, aiEngine *aiengine.AiEngine) *Proxy { +func NewProxyCtl(eventListerer *blockchainapi.EventsListener, wallet interfaces.PrKeyProvider, chainID *big.Int, log *lib.Logger, connLog *lib.Logger, proxyAddr string, scl SchedulerLogFactory, sessionStorage *storages.SessionStorage, modelConfigLoader *config.ModelConfigLoader, valid *validator.Validate, aiEngine *aiengine.AiEngine, blockchainService *blockchainapi.BlockchainService) *Proxy { return &Proxy{ eventListener: eventListerer, chainID: chainID, @@ -74,6 +75,7 @@ func NewProxyCtl(eventListerer *blockchainapi.EventsListener, wallet interfaces. aiEngine: aiEngine, validator: valid, modelConfigLoader: modelConfigLoader, + blockchainService: blockchainService, } } @@ -136,7 +138,7 @@ func (p *Proxy) run(ctx context.Context, prKey lib.HexString) error { return err } - proxyReceiver := proxyapi.NewProxyReceiver(prKey, pubKey, p.sessionStorage, p.aiEngine, p.chainID, p.modelConfigLoader) + proxyReceiver := proxyapi.NewProxyReceiver(prKey, pubKey, p.sessionStorage, p.aiEngine, p.chainID, p.modelConfigLoader, p.blockchainService) morTcpHandler := proxyapi.NewMORRPCController(proxyReceiver, p.validator, p.sessionStorage) tcpHandler := tcphandlers.NewTCPHandler( diff --git a/proxy-router/internal/storages/session_storage.go b/proxy-router/internal/storages/session_storage.go index c5c05a1d..5ca9029f 100644 --- a/proxy-router/internal/storages/session_storage.go +++ b/proxy-router/internal/storages/session_storage.go @@ -110,3 +110,138 @@ func (s *SessionStorage) RemoveSession(id string) error { } return nil } + +type PromptActivity struct { + SessionID string + StartTime int64 + EndTime int64 +} + +func (s *SessionStorage) AddSessionToModel(modelID string, sessionID string) error { + modelID = strings.ToLower(modelID) + key := fmt.Sprintf("model:%s", modelID) + + var sessions []string + sessionsJson, err := s.db.Get([]byte(key)) + if err == nil { + err = json.Unmarshal(sessionsJson, &sessions) + if err != nil { + return err + } + } else { + sessions = []string{} + } + + sessions = append(sessions, sessionID) + sessionsJson, err = json.Marshal(sessions) + if err != nil { + return err + } + + err = s.db.Set([]byte(key), sessionsJson) + if err != nil { + return err + } + return nil +} + +func (s *SessionStorage) GetSessionsForModel(modelID string) ([]string, error) { + modelID = strings.ToLower(modelID) + key := fmt.Sprintf("model:%s", modelID) + + sessionsJson, err := s.db.Get([]byte(key)) + if err != nil { + return []string{}, nil + } + + var sessions []string + err = json.Unmarshal(sessionsJson, &sessions) + if err != nil { + return nil, err + } + + return sessions, nil +} + +func (s *SessionStorage) AddActivity(modelID string, activity *PromptActivity) error { + modelID = strings.ToLower(modelID) + key := fmt.Sprintf("activity:%s", modelID) + + var activities []*PromptActivity + activitiesJson, err := s.db.Get([]byte(key)) + if err == nil { + err = json.Unmarshal(activitiesJson, &activities) + if err != nil { + return err + } + } else { + activities = []*PromptActivity{} + } + + activities = append(activities, activity) + activitiesJson, err = json.Marshal(activities) + if err != nil { + return err + } + + err = s.db.Set([]byte(key), activitiesJson) + if err != nil { + return err + } + return nil +} + +func (s *SessionStorage) GetActivities(modelID string) ([]*PromptActivity, error) { + modelID = strings.ToLower(modelID) + key := fmt.Sprintf("activity:%s", modelID) + + activitiesJson, err := s.db.Get([]byte(key)) + if err != nil { + return []*PromptActivity{}, nil + } + + var activities []*PromptActivity + err = json.Unmarshal(activitiesJson, &activities) + if err != nil { + return nil, err + } + + return activities, nil +} + +// // New method to remove activities older than a certain time +func (s *SessionStorage) RemoveOldActivities(modelID string, beforeTime int64) error { + modelID = strings.ToLower(modelID) + key := fmt.Sprintf("activity:%s", modelID) + + activitiesJson, err := s.db.Get([]byte(key)) + if err != nil { + return nil + } + + var activities []*PromptActivity + err = json.Unmarshal(activitiesJson, &activities) + if err != nil { + return err + } + + // Filter activities, keep only those after beforeTime + var updatedActivities []*PromptActivity + for _, activity := range activities { + if activity.EndTime > beforeTime { + updatedActivities = append(updatedActivities, activity) + } + } + + activitiesJson, err = json.Marshal(updatedActivities) + if err != nil { + return err + } + + err = s.db.Set([]byte(key), activitiesJson) + if err != nil { + return err + } + + return nil +} diff --git a/proxy-router/readme.md b/proxy-router/readme.md index f76e500b..0b6a4b3a 100644 --- a/proxy-router/readme.md +++ b/proxy-router/readme.md @@ -32,4 +32,27 @@ --- -Ensure the proxy-router is restarted after changing the environment variable to apply the new configuration. \ No newline at end of file +Ensure the proxy-router is restarted after changing the environment variable to apply the new configuration. + +## CapacityPolicy strategies (models-config.json): + +#### `simple` + +Assign a slot to each session upon initiation, blocking new sessions when all slots are occupied, regardless of activity level. + +- Each new session consumes one slot from the total available slots N (`concurrentSlots`). + +- Do not allow new sessions when slots_in_use >= N. + +- Slots remain occupied until the user explicitly closes the session or times out. + + +#### `idle_timeout` + +Free up slots occupied by inactive sessions by setting an idle timeout period. + +Timeout is 15 minutes. + +- If no prompt is received within the idle timeout period, mark the session as idle. + +- Release the slot associated with the idle session, making it available for new users. From 308d5c31121127db70f1148c8771d0c436cba8cf Mon Sep 17 00:00:00 2001 From: Aleksandr Kukharenko Date: Tue, 22 Oct 2024 15:20:23 +0300 Subject: [PATCH 049/260] remove unused struct --- proxy-router/internal/proxyapi/capacity_manager.go | 3 --- 1 file changed, 3 deletions(-) diff --git a/proxy-router/internal/proxyapi/capacity_manager.go b/proxy-router/internal/proxyapi/capacity_manager.go index 930d8b69..d27c23b2 100644 --- a/proxy-router/internal/proxyapi/capacity_manager.go +++ b/proxy-router/internal/proxyapi/capacity_manager.go @@ -12,9 +12,6 @@ type CapacityManagerInterface interface { HasCapacity(modelID string) bool } -type CapacityManager struct { -} - type SimpleCapacityManager struct { storage *storages.SessionStorage modelConfig *config.ModelConfig From 070f40e886c4486ec6fdaed5d268fcc60e2dd67c Mon Sep 17 00:00:00 2001 From: Aleksandr Kukharenko Date: Tue, 22 Oct 2024 17:02:22 +0300 Subject: [PATCH 050/260] fix: errors on events listener --- .../internal/repositories/contracts/log_watcher_polling.go | 5 +++-- .../repositories/contracts/log_watcher_subscription.go | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/proxy-router/internal/repositories/contracts/log_watcher_polling.go b/proxy-router/internal/repositories/contracts/log_watcher_polling.go index d59117c8..77e80fd4 100644 --- a/proxy-router/internal/repositories/contracts/log_watcher_polling.go +++ b/proxy-router/internal/repositories/contracts/log_watcher_polling.go @@ -67,7 +67,8 @@ func (w *LogWatcherPolling) Watch(ctx context.Context, contractAddr common.Addre } event, err := mapper(log) if err != nil { - return err // mapper error, retry won't help + w.log.Debugf("error mapping event: %s", err) + continue // mapper error, retry won't help, but we can continue } select { @@ -80,7 +81,7 @@ func (w *LogWatcherPolling) Watch(ctx context.Context, contractAddr common.Addre } if len(sub) > 0 { - lastQueriedBlock = new(big.Int).SetUint64(sub[len(sub)-1].BlockNumber) + lastQueriedBlock = new(big.Int).SetUint64(sub[len(sub)-1].BlockNumber + 1) } select { diff --git a/proxy-router/internal/repositories/contracts/log_watcher_subscription.go b/proxy-router/internal/repositories/contracts/log_watcher_subscription.go index 98e6a33d..42c7fb6c 100644 --- a/proxy-router/internal/repositories/contracts/log_watcher_subscription.go +++ b/proxy-router/internal/repositories/contracts/log_watcher_subscription.go @@ -58,9 +58,9 @@ func (w *LogWatcherSubscription) Watch(ctx context.Context, contractAddr common. case log := <-in: event, err := mapper(log) if err != nil { - w.log.Errorf("failed to map event: %s", err) - // mapper error, retry won't help - return err + w.log.Debugf("failed to map event: %s", err) + // mapper error, retry won't help, continue to next event + continue } select { From 54ca4f937a593f3f689bdb0a841e7219bcdf81c7 Mon Sep 17 00:00:00 2001 From: "bohdan.konorin" Date: Fri, 25 Oct 2024 16:40:26 +0200 Subject: [PATCH 051/260] Changed onboarding --- proxy-router/cmd/main.go | 3 +- .../internal/interfaces/validation.go | 11 + proxy-router/internal/system/controller.go | 12 +- proxy-router/internal/system/validation.go | 38 +++ .../main/src/client/handlers/single-core.js | 145 +++++------ .../main/src/client/subscriptions/no-core.js | 2 - .../src/client/subscriptions/single-core.js | 1 + ui-desktop/src/main/src/client/wallet.js | 20 -- ui-desktop/src/renderer/src/client/index.jsx | 3 +- .../renderer/src/components/common/Root.jsx | 10 +- .../src/components/dashboard/Dashboard.jsx | 69 ++++- .../components/dashboard/tx-list/TxList.jsx | 2 +- .../components/models/FileSelectionModal.tsx | 105 ++++++++ .../renderer/src/components/models/Models.tsx | 56 ++++- .../onboarding/CopyMnemonicStep.jsx | 6 +- .../src/components/onboarding/ImportFlow.jsx | 236 ++++++++++++++++++ .../src/components/onboarding/Message.jsx | 1 + .../src/components/onboarding/Onboarding.tsx | 6 + .../components/onboarding/PasswordStep.jsx | 24 +- .../onboarding/SetCustomEthStep.jsx | 91 +++++++ .../src/components/onboarding/TermsStep.jsx | 5 +- .../src/components/settings/Settings.tsx | 12 +- .../src/store/hocs/withDashboardState.jsx | 22 ++ .../src/store/hocs/withOnboardingState.jsx | 72 +++++- .../src/renderer/src/termsAndConditions.md | 2 +- 25 files changed, 815 insertions(+), 139 deletions(-) create mode 100644 proxy-router/internal/interfaces/validation.go create mode 100644 proxy-router/internal/system/validation.go create mode 100644 ui-desktop/src/renderer/src/components/models/FileSelectionModal.tsx create mode 100644 ui-desktop/src/renderer/src/components/onboarding/ImportFlow.jsx create mode 100644 ui-desktop/src/renderer/src/components/onboarding/SetCustomEthStep.jsx diff --git a/proxy-router/cmd/main.go b/proxy-router/cmd/main.go index a63b12a2..3e8eb79f 100644 --- a/proxy-router/cmd/main.go +++ b/proxy-router/cmd/main.go @@ -274,10 +274,11 @@ func start() error { log.Warnf("chat context storage is disabled") chatStorage = proxyapi.NewNoOpChatStorage() } + validator := system.NewValidator() proxyController := proxyapi.NewProxyController(proxyRouterApi, aiEngine, chatStorage) walletController := walletapi.NewWalletController(wallet) - systemController := system.NewSystemController(&cfg, wallet, rpcClientStore, sysConfig, appStartTime, chainID, log) + systemController := system.NewSystemController(&cfg, wallet, rpcClientStore, sysConfig, appStartTime, chainID, log, validator) apiBus := apibus.NewApiBus(blockchainController, proxyController, walletController, systemController) httpHandler := httphandlers.CreateHTTPServer(log, apiBus) diff --git a/proxy-router/internal/interfaces/validation.go b/proxy-router/internal/interfaces/validation.go new file mode 100644 index 00000000..045fc340 --- /dev/null +++ b/proxy-router/internal/interfaces/validation.go @@ -0,0 +1,11 @@ +package interfaces + +import ( + "context" + "math/big" + "time" +) + +type Validation interface { + ValidateEthResourse(ctx context.Context, url string, chainId *big.Int, timeout time.Duration) error +} diff --git a/proxy-router/internal/system/controller.go b/proxy-router/internal/system/controller.go index 651cecfe..a9eabb40 100644 --- a/proxy-router/internal/system/controller.go +++ b/proxy-router/internal/system/controller.go @@ -23,9 +23,10 @@ type SystemController struct { appStartTime time.Time chainID *big.Int log lib.ILogger + validator i.Validation } -func NewSystemController(config *config.Config, wallet i.Wallet, ethRPC i.RPCEndpoints, sysConfig *SystemConfigurator, appStartTime time.Time, chainID *big.Int, log lib.ILogger) *SystemController { +func NewSystemController(config *config.Config, wallet i.Wallet, ethRPC i.RPCEndpoints, sysConfig *SystemConfigurator, appStartTime time.Time, chainID *big.Int, log lib.ILogger, validator i.Validation) *SystemController { c := &SystemController{ config: config, wallet: wallet, @@ -34,6 +35,7 @@ func NewSystemController(config *config.Config, wallet i.Wallet, ethRPC i.RPCEnd appStartTime: appStartTime, chainID: chainID, log: log, + validator: validator, } return c @@ -149,6 +151,14 @@ func (s *SystemController) SetEthNode(ctx *gin.Context) { return } + for _, url := range req.URLs { + validationErr := s.validator.ValidateEthResourse(ctx, url, big.NewInt(int64(s.config.Blockchain.ChainID)), time.Second*2) + if validationErr != nil { + ctx.JSON(http.StatusInternalServerError, gin.H{"error": fmt.Sprintf("Resource %s is not available", url)}) + return + } + } + err := s.ethRPC.SetURLs(req.URLs) if err != nil { ctx.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) diff --git a/proxy-router/internal/system/validation.go b/proxy-router/internal/system/validation.go new file mode 100644 index 00000000..98390c8c --- /dev/null +++ b/proxy-router/internal/system/validation.go @@ -0,0 +1,38 @@ +package system + +import ( + "context" + "fmt" + "math/big" + "time" + + "github.com/ethereum/go-ethereum/ethclient" +) + +type Validator struct { +} + +func NewValidator() *Validator { + return &Validator{} +} + +func (v *Validator) ValidateEthResourse(ctx context.Context, url string, chainId *big.Int, timeout time.Duration) error { + timeoutCtx, cancel := context.WithTimeout(ctx, timeout) + defer cancel() + + ethClient, err := ethclient.DialContext(timeoutCtx, url) + if err != nil { + return err + } + + urlChainId, chainIdError := ethClient.ChainID(timeoutCtx) + if chainIdError != nil { + return chainIdError + } + + if chainId.Cmp(urlChainId) != 0 { + return fmt.Errorf("invalid chain id %s, expected: %s", urlChainId, chainId) + } + + return nil +} diff --git a/ui-desktop/src/main/src/client/handlers/single-core.js b/ui-desktop/src/main/src/client/handlers/single-core.js index 54d31229..d3fcd394 100644 --- a/ui-desktop/src/main/src/client/handlers/single-core.js +++ b/ui-desktop/src/main/src/client/handlers/single-core.js @@ -10,21 +10,21 @@ import { setProxyRouterConfig, cleanupDb, getProxyRouterConfig } from '../settin export const withAuth = (fn) => - (data, { api }) => { - if (typeof data.walletId !== 'string') { - throw new WalletError('walletId is not defined') - } + (data, { api }) => { + if (typeof data.walletId !== 'string') { + throw new WalletError('walletId is not defined') + } - return auth - .isValidPassword(data.password) - .then(() => { - return wallet.getSeed(data.password) - }) - .then((seed, index) => { - return wallet.createPrivateKey(seed, index) - }) - .then((privateKey) => fn(privateKey, data)) - } + return auth + .isValidPassword(data.password) + .then(() => { + return wallet.getSeed(data.password) + }) + .then((seed, index) => { + return wallet.createPrivateKey(seed, index) + }) + .then((privateKey) => fn(privateKey, data)) + } export const createContract = async function (data, { api }) { data.walletId = wallet.getAddress().address @@ -134,20 +134,6 @@ export const setContractDeleteStatus = async function (data, { api }) { )(data, { api }) } -export function createWallet(data, core, isOpen = true) { - const seed = keys.mnemonicToSeedHex(data.mnemonic) - const entropy = keys.mnemonicToEntropy(data.mnemonic) - const walletAddress = wallet.createAddress(seed) - - return Promise.all([ - wallet.setSeed(seed, data.password), - wallet.setEntropy(entropy, data.password), - wallet.setAddress(walletAddress) - ]) - .then(() => core.emitter.emit('create-wallet', { address: walletAddress })) - .then(() => isOpen && openWallet(core, data.password)) -} - export async function openWallet({ emitter }, password) { const { address } = wallet.getAddress() @@ -155,34 +141,66 @@ export async function openWallet({ emitter }, password) { emitter.emit('open-proxy-router', { password }) } -export const onboardingCompleted = (data, core) => { - setProxyRouterConfig(data.proxyRouterConfig) - return auth - .setPassword(data.password) - .then(() => - createWallet( - { - mnemonic: data.mnemonic, - password: data.password - }, - core, - true - ) - ) - .then(() => { - return wallet.createPrivateKey(wallet.getSeed(data.password)) - }) - .then((privateKey) => { - const { proxyUrl } = data - return fetch(`${proxyUrl}/wallet/privateKey`, { +export const suggestAddresses = async (mnemonic) => { + const seed = keys.mnemonicToSeedHex(mnemonic); + let results = []; + for (let i = 0; i < 10; i++) { + const walletAddress = wallet.createAddress(seed, i); + results.push(walletAddress); + } + return results; +} + +export const onboardingCompleted = async (data, core) => { + try { + const { proxyUrl } = data; + + if (data.ethNode) { + const ethNodeResult = await fetch(`${proxyUrl}/config/ethNode`, { + method: 'POST', + body: JSON.stringify({ urls: [data.ethNode] }) + }) + + const dataResponse = await ethNodeResult.json(); + if (dataResponse.error) { + return (dataResponse.error) + } + } + + await auth.setPassword(data.password); + + if (data.mnemonic) { + const mnemonicRes = await fetch(`${proxyUrl}/wallet/mnemonic`, { method: 'POST', body: JSON.stringify({ - privateKey + mnemonic: data.mnemonic, + derivationPath: String(data.derivationPath || 0) }) }) - }) - .then(() => true) - .catch((err) => ({ error: new WalletError('Onboarding unable to be completed: ', err) })) + + console.log("Set Mnemonic To Wallet", await mnemonicRes.json()); + } + else { + const pKeyResp = await fetch(`${proxyUrl}/wallet/privateKey`, { + method: 'POST', + body: JSON.stringify({ "PrivateKey": String(data.privateKey) }) + }) + console.log("Set Private Key To Wallet", await pKeyResp.json()); + } + + const walletResp = await fetch(`${proxyUrl}/wallet`); + const walletAddress = (await walletResp.json()).address; + + console.log("Address Wallet Is", walletAddress); + + await wallet.setSeed(walletAddress, data.password), + await wallet.setAddress(walletAddress) + await core.emitter.emit('create-wallet', { address: walletAddress }) + openWallet(core, data.password) + } + catch (err) { + return ({ error: new WalletError('Onboarding unable to be completed: ', err) }); + } } function onLoginSubmit({ password }, core) { @@ -245,7 +263,7 @@ export const getMarketplaceFee = async function (data, { api }) { return api.contracts.getMarketplaceFee(data) } -export function refreshAllContracts({}, { api }) { +export function refreshAllContracts({ }, { api }) { const walletId = wallet.getAddress().address return api.contracts.refreshContracts(null, walletId) } @@ -291,7 +309,7 @@ export const getAddressAndPrivateKey = async (data, { api }) => { export const refreshProxyRouterConnection = async (data, { api }) => api['proxy-router'].refreshConnectionsStream(data) -export const getLocalIp = async ({}, { api }) => api['proxy-router'].getLocalIp() +export const getLocalIp = async ({ }, { api }) => api['proxy-router'].getLocalIp() export const logout = async (data) => { return cleanupDb() @@ -302,21 +320,6 @@ export const getPoolAddress = async (data) => { return config.buyerDefaultPool || config.defaultPool } -export const hasStoredSecretPhrase = async (data) => { - return wallet.hasEntropy() -} - -export const revealSecretPhrase = async (password) => { - const isValid = await auth.isValidPassword(password) - if (!isValid) { - return { error: new WalletError('Invalid password') } - } - - const entropy = wallet.getEntropy(password) - const mnemonic = keys.entropyToMnemonic(entropy) - return mnemonic -} - export function getPastTransactions({ address, page, pageSize }, { api }) { return api.explorer.getPastCoinTransactions(0, undefined, address, page, pageSize) } @@ -327,9 +330,9 @@ export default { createContract, cancelContract, onboardingCompleted, + suggestAddresses, onLoginSubmit, refreshAllTransactions, - createWallet, openWallet, sendLmr, sendEth, @@ -343,8 +346,6 @@ export default { getLocalIp, getPoolAddress, claimFaucet, - revealSecretPhrase, - hasStoredSecretPhrase, getPastTransactions, setContractDeleteStatus, editContract, diff --git a/ui-desktop/src/main/src/client/subscriptions/no-core.js b/ui-desktop/src/main/src/client/subscriptions/no-core.js index abc90deb..d739f268 100644 --- a/ui-desktop/src/main/src/client/subscriptions/no-core.js +++ b/ui-desktop/src/main/src/client/subscriptions/no-core.js @@ -10,8 +10,6 @@ const listeners = { 'clear-cache': handlers.clearCache, 'handle-client-error': handlers.handleClientSideError, 'get-pool-address': handlers.getPoolAddress, - 'reveal-secret-phrase': handlers.revealSecretPhrase, - 'has-stored-secret-phrase': handlers.hasStoredSecretPhrase, logout: handlers.logout, 'save-proxy-router-settings': handlers.saveProxyRouterSettings, 'get-proxy-router-settings': handlers.getProxyRouterSettings, diff --git a/ui-desktop/src/main/src/client/subscriptions/single-core.js b/ui-desktop/src/main/src/client/subscriptions/single-core.js index 53e03ea0..958df8fb 100644 --- a/ui-desktop/src/main/src/client/subscriptions/single-core.js +++ b/ui-desktop/src/main/src/client/subscriptions/single-core.js @@ -5,6 +5,7 @@ export const withCore = (core) => (fn) => (data) => fn(data, core) export const listeners = { 'onboarding-completed': handlers.onboardingCompleted, + 'suggest-addresses': handlers.suggestAddresses, 'login-submit': handlers.onLoginSubmit, // 'refresh-all-sockets': handlers.refreshAllSockets, 'refresh-all-contracts': handlers.refreshAllContracts, diff --git a/ui-desktop/src/main/src/client/wallet.js b/ui-desktop/src/main/src/client/wallet.js index 60a89ad5..bac673e1 100644 --- a/ui-desktop/src/main/src/client/wallet.js +++ b/ui-desktop/src/main/src/client/wallet.js @@ -1,6 +1,3 @@ -//@ts-check -'use strict' - const settings = require('electron-settings') const { hdkey } = require('ethereumjs-wallet') @@ -16,22 +13,11 @@ export function getSeed(password) { const encryptedSeed = settings.getSync(`user.wallet.encryptedSeed`) return aes256cbcIv.decrypt(password, encryptedSeed) } - -export const hasEntropy = () => !!settings.getSync(`user.wallet.encryptedEntropy`) - -export function getEntropy(password) { - const encryptedEntropy = settings.getSync(`user.wallet.encryptedEntropy`) - return aes256cbcIv.decrypt(password, encryptedEntropy) -} - export const setAddress = (address) => settings.setSync(`user.wallet.address`, { address }) export const setSeed = (seed, password) => settings.setSync(`user.wallet.encryptedSeed`, aes256cbcIv.encrypt(password, seed)) -export const setEntropy = (entropy, password) => - settings.setSync(`user.wallet.encryptedEntropy`, aes256cbcIv.encrypt(password, entropy)) - export const clearWallet = () => settings.setSync('user.wallet', {}) const getWalletFromSeed = (seed, index = 0) => @@ -41,8 +27,6 @@ const getAddress2 = (seed, index) => getWalletFromSeed(seed, index).getChecksumA const getPrivateKey = (seed, index) => getWalletFromSeed(seed, index).getPrivateKey() -const createPrivateKey = (seed, index) => getWalletFromSeed(seed, index).getPrivateKeyString() - const getAddressAndPrivateKey = (seed, index) => ({ address: getAddress2(seed, index), privateKey: getPrivateKey(seed, index).toString('hex') @@ -54,14 +38,10 @@ export default { getActiveWallet: getWallet, setActiveWallet: setAddress, createAddress: getAddress2, - createPrivateKey, getAddressAndPrivateKey, clearWallet, getWallet, getToken, getSeed, setSeed, - getEntropy, - setEntropy, - hasEntropy } diff --git a/ui-desktop/src/renderer/src/client/index.jsx b/ui-desktop/src/renderer/src/client/index.jsx index 587dfd00..f9e78e02 100644 --- a/ui-desktop/src/renderer/src/client/index.jsx +++ b/ui-desktop/src/renderer/src/client/index.jsx @@ -93,6 +93,7 @@ const createClient = function (createStore) { refreshAllTransactions: utils.forwardToMainProcess('refresh-all-transactions', 120000), refreshAllContracts: utils.forwardToMainProcess('refresh-all-contracts', 120000), onOnboardingCompleted: utils.forwardToMainProcess('onboarding-completed'), + suggestAddresses: utils.forwardToMainProcess('suggest-addresses'), getTokenGasLimit: utils.forwardToMainProcess('get-token-gas-limit'), validatePassword: utils.forwardToMainProcess('validate-password'), changePassword: utils.forwardToMainProcess('change-password'), @@ -114,9 +115,7 @@ const createClient = function (createStore) { logout: utils.forwardToMainProcess('logout'), getLocalIp: utils.forwardToMainProcess('get-local-ip'), getPoolAddress: utils.forwardToMainProcess('get-pool-address'), - revealSecretPhrase: utils.forwardToMainProcess('reveal-secret-phrase'), getPrivateKey: utils.forwardToMainProcess('get-private-key'), - hasStoredSecretPhrase: utils.forwardToMainProcess('has-stored-secret-phrase'), getProxyRouterSettings: utils.forwardToMainProcess('get-proxy-router-settings'), getDefaultCurrencySetting: utils.forwardToMainProcess('get-default-currency-settings'), setDefaultCurrencySetting: utils.forwardToMainProcess('set-default-currency-settings'), diff --git a/ui-desktop/src/renderer/src/components/common/Root.jsx b/ui-desktop/src/renderer/src/components/common/Root.jsx index e75efbc5..19dbd96b 100644 --- a/ui-desktop/src/renderer/src/components/common/Root.jsx +++ b/ui-desktop/src/renderer/src/components/common/Root.jsx @@ -64,11 +64,15 @@ class Root extends React.Component { }) } - onOnboardingCompleted = ({ password, mnemonic, proxyRouterConfig }) => { + onOnboardingCompleted = (data) => { return ( this.props.client - .onOnboardingCompleted({ password, mnemonic, proxyRouterConfig, proxyUrl: this.props.config.chain.localProxyRouterUrl }) - .then(() => { + .onOnboardingCompleted({ proxyUrl: this.props.config.chain.localProxyRouterUrl, ...data }) + .then((error) => { + if(error) { + this.context.toast('error', error); + return; + } this.setState({ onboardingComplete: true }) this.props.dispatch({ type: 'session-started' }) }) diff --git a/ui-desktop/src/renderer/src/components/dashboard/Dashboard.jsx b/ui-desktop/src/renderer/src/components/dashboard/Dashboard.jsx index 1e84d332..1d4888f8 100644 --- a/ui-desktop/src/renderer/src/components/dashboard/Dashboard.jsx +++ b/ui-desktop/src/renderer/src/components/dashboard/Dashboard.jsx @@ -9,13 +9,40 @@ import TransactionModal from './tx-modal' import TxList from './tx-list/TxList' import { View } from '../common/View' import { toUSD } from '../../store/utils/syncAmounts'; +import { + BtnAccent, -const Container = styled.div` - background-color: ${(p) => p.theme.colors.light}; - height: 100vh; - max-width: 100vw; - position: relative; - padding: 0 2.4rem; +} from './BalanceBlock.styles'; + +const CustomBtn = styled(BtnAccent)` + margin-left: 0; + padding: 1.5rem 1rem; +` +const WidjetsContainer = styled.div` + display: flex; + align-items: center; + justify-content: left; + gap: 1.6rem; +` + +const WidjetItem = styled.div` + margin: 1.6rem 0 1.6rem; + background-color: #fff; + padding: 1.6rem 3.2rem; + border-radius: 0.375rem; + color: white; + max-width: 720px; + background: rgba(255,255,255,0.04); + border-width: 1px; + border: 1px solid rgba(255,255,255,0.04); + color: white; +` + +const StakingWidjet = styled(WidjetItem)` + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; ` const Dashboard = ({ @@ -29,6 +56,7 @@ const Dashboard = ({ getBalances, ethCoinPrice, loadTransactions, + getStakedFunds, ...props }) => { const [activeModal, setActiveModal] = useState(null) @@ -46,6 +74,7 @@ const Dashboard = ({ }); const [transactions, setTransactions] = useState([]); const [pagging, setPagging] = useState({ page: 1, pageSize: 15, hasNextPage: true }) + const [staked, setStaked] = useState(0); const loadBalances = async () => { const data = await getBalances(); @@ -109,6 +138,9 @@ const Dashboard = ({ useEffect(() => { loadBalances(); getTransactions(); + getStakedFunds(address).then((data) => { + setStaked(data); + }) const interval = setInterval(() => { console.log("Update balances...") @@ -134,6 +166,31 @@ const Dashboard = ({ onTabSwitch={onTabSwitch} /> + + +
+ Staked Balance +
+
{staked} MOR
+
+ + window.openLink(`https://sepolia.arbiscan.io/address/${address}`)} + block + > + Transaction Explorer + + + + window.openLink("https://staking.mor.lumerin.io")} + block + > + Staking Dashboard + + +
+ - Transactions + Last Transactions e.stopPropagation() +} +const RVContainer = styled(RVList)` + .ReactVirtualized__Grid__innerScrollContainer { + overflow: visible !important; + }` + +const RowContainer = styled.div` + padding: 1rem; + border: 1px solid; + background-color: rgba(0,0,0,0.4); + margin-bottom: 1rem; + ` + +const FileSelectionModal = ({ isActive, handleClose }) => { + + if (!isActive) { + return <>; + } + + const [files, setFiles] = useState([]); + + const openSelectionModal = () => { + return new Promise(resolve => { + let input = document.createElement('input'); + input.type = 'file'; + input.multiple = true; + + input.onchange = () => { + const files = Array.from(input.files as any); + setFiles(files) + ; + }; + + input.click(); + }); + } + + + return ( + { + handleClose(); + }} + bodyProps={bodyProps} + > + + Select Files + + + + + Set desired model name + + + + + + Select files required to run model (including .gguf) + { + setFiles(Object.values((e.currentTarget as any).files)) + })} /> + + + + { + !files.length ? null : + ( + files.map(f => { + return +
Name: {f.name}
+
Path: {f.path}
+
Size: {(f.size / 1024).toFixed(0)}
+
+ }) + ) + } + + + Pin Model Files + + +
+ ); +} + +export default FileSelectionModal; \ No newline at end of file diff --git a/ui-desktop/src/renderer/src/components/models/Models.tsx b/ui-desktop/src/renderer/src/components/models/Models.tsx index c1b9d85e..4ee05a83 100644 --- a/ui-desktop/src/renderer/src/components/models/Models.tsx +++ b/ui-desktop/src/renderer/src/components/models/Models.tsx @@ -1,11 +1,55 @@ +import { useState } from 'react'; import { LayoutHeader } from '../common/LayoutHeader' import { View } from '../common/View' +import { BtnAccent } from '../dashboard/BalanceBlock.styles'; import ModelsTable from './ModelsTable'; +import Tab from 'react-bootstrap/Tab'; +import Tabs from 'react-bootstrap/Tabs'; +import styled from 'styled-components' +import FileSelectionModal from './FileSelectionModal'; + + +const Container = styled.div` + overflow-y: auto; + + .nav-link { + color: ${p => p.theme.colors.morMain} + } + + .nav-link.active { + color: ${p => p.theme.colors.morMain} + border-color: ${p => p.theme.colors.morMain} + background-color: rgba(0,0,0,0.4); + } +` export const Models = () => { - return ( - - - - ) -} \ No newline at end of file + + const [openChangeModal, setOpenChangeModal] = useState(false); + + return ( + + + setOpenChangeModal(true)}>Pin Model + + + + + + + + + + + + + setOpenChangeModal(false)} /> + ) + +} diff --git a/ui-desktop/src/renderer/src/components/onboarding/CopyMnemonicStep.jsx b/ui-desktop/src/renderer/src/components/onboarding/CopyMnemonicStep.jsx index 230b7087..923d018e 100644 --- a/ui-desktop/src/renderer/src/components/onboarding/CopyMnemonicStep.jsx +++ b/ui-desktop/src/renderer/src/components/onboarding/CopyMnemonicStep.jsx @@ -49,15 +49,15 @@ export default class CopyMnemonicStep extends React.Component { I’ve copied it - + {/* - Or recover a wallet from a saved mnemonic + DELETE - + */} ); diff --git a/ui-desktop/src/renderer/src/components/onboarding/ImportFlow.jsx b/ui-desktop/src/renderer/src/components/onboarding/ImportFlow.jsx new file mode 100644 index 00000000..19d7abba --- /dev/null +++ b/ui-desktop/src/renderer/src/components/onboarding/ImportFlow.jsx @@ -0,0 +1,236 @@ +import TermsAndConditions from '../common/TermsAndConditions'; +import PropTypes from 'prop-types'; +import styled from 'styled-components'; +import React, { useState } from 'react'; +import { TextInput, AltLayout, AltLayoutNarrow, Btn, Sp } from '../common'; +import { abbreviateAddress } from '../../utils'; + +import Message from './Message'; + +const DisclaimerWarning = styled.div` + text-align: left; + color: ${p => p.theme.colors.dark}; + font-size: 16px; + margin-top: 16px; + text-align: justify; +`; + +const DisclaimerMessage = styled.div` + width: 100%; + height: 130px; + border-radius: 2px; + background-color: rgba(0, 0, 0, 0.5); + color: ${p => p.theme.colors.dark}; + overflow: auto; + font-size: 12px; + padding: 10px 16px 0 16px; + margin: 16px 0; +`; + +const P = styled.p` + color: ${p => p.theme.colors.dark}; +`; + +const Subtext = styled.span` + color: ${p => p.theme.colors.dark}; +`; + +const Mnemonic = styled.div` + font-size: 1.8rem; + font-weight: 600; + line-height: 2; + text-align: center; + color: ${p => p.theme.colors.morMain}; + word-spacing: 1.6rem; +`; + +const Select = styled.select` + outline: 0; + border: 1px solid grey; + padding: 1.2rem 2.4rem; + letter-spacing: 1.4px; + line-height: 1.2rem; + font-size: 1.2rem; + background: transparent; + border-radius: 5px; + font-weight: bold; + font: inherit; + color: white; +`; + +export const ImportFlow = props => { + const onCheckboxToggle = e => { + props.onInputChange({ id: e.target.id, value: e.target.checked }); + }; + + const [mode, setMode] = useState("mnemonic") + const [isSelectingAddress, setIsSelectingAddress] = useState(false); + const [addresses, setAddresses] = useState([]); + const [derivationIndex, setDerivationIndex] = useState(0); + + const handleSetMnemonic = async (e) => { + setIsSelectingAddress(true); + e.stopPropagation(); + const addresses = await props.onSuggestAddress(); + setAddresses(addresses); + } + + return ( + + + + { + isSelectingAddress ? + ( + <> + + + {props.userMnemonic} + + + + + + Select one of 10 accounts derivied from mnemonic + + + + + + + ) + : + ( + + <> + + Import your wallet using a private key or mnemonic + + + + + + { + mode == "mnemonic" ? + ( + <> + + + Enter a valid 12 word mnemonic to import a previously created + wallet and select address + + + + { + e.preventDefault(); + const value = e.clipboardData.getData('Text').trim(); + console.log(value); + props.onInputChange({ value, id: "userMnemonic" }); + }} + label="Import Mnemonic" + error={props.errors.userMnemonic} + value={props.userMnemonic || ''} + rows={2} + id={'userMnemonic'} + /> + + + ) + : + ( + <> + + + Enter private key to import wallet + + + + { + e.preventDefault(); + const value = e.clipboardData.getData('Text').trim(); + console.log(value); + props.onInputChange({ value, id: "userPrivateKey" }); + }} + label="Import Private Key" + error={props.errors.userPrivateKey} + value={props.userPrivateKey || ''} + rows={2} + id={'userPrivateKey'} + /> + + + ) + } + + ) + + } + + {/* Select address - generate addresses - use */} + { + mode == "mnemonic" ? ( + + !isSelectingAddress ? handleSetMnemonic(e) : props.onMnemonicSet(e, derivationIndex)} + block + > + { !isSelectingAddress ? "Select Address" : "Confirm"} + + + ) + : ( + + props.onPrivateKeyAccepted(e)} + block + > + Confirm + + + ) + } + + + + ); +}; + +// RecoverFromPrivateKey.propTypes = { +// onTermsLinkClick: PropTypes.func.isRequired, +// onTermsAccepted: PropTypes.func.isRequired, +// licenseCheckbox: PropTypes.bool.isRequired, +// termsCheckbox: PropTypes.bool.isRequired, +// onInputChange: PropTypes.func.isRequired +// }; \ No newline at end of file diff --git a/ui-desktop/src/renderer/src/components/onboarding/Message.jsx b/ui-desktop/src/renderer/src/components/onboarding/Message.jsx index dc87f206..82d46a78 100644 --- a/ui-desktop/src/renderer/src/components/onboarding/Message.jsx +++ b/ui-desktop/src/renderer/src/components/onboarding/Message.jsx @@ -5,6 +5,7 @@ const Message = styled.div` font-weight: 500; line-height: 1.5; color: ${p => p.theme.colors.dark}; + text-align: justify; & span { font-size: 13px; diff --git a/ui-desktop/src/renderer/src/components/onboarding/Onboarding.tsx b/ui-desktop/src/renderer/src/components/onboarding/Onboarding.tsx index 1814a418..12e6adce 100644 --- a/ui-desktop/src/renderer/src/components/onboarding/Onboarding.tsx +++ b/ui-desktop/src/renderer/src/components/onboarding/Onboarding.tsx @@ -6,6 +6,8 @@ import CopyMnemonicStep from './CopyMnemonicStep' import UserMnemonicStep from './UserMnemonicStep' import PasswordStep from './PasswordStep' import TermsStep from './TermsStep' +import { ImportFlow } from './ImportFlow' +import { SetCustomEthStep } from './SetCustomEthStep' const Onboarding = (props) => { const page = () => { @@ -20,6 +22,10 @@ const Onboarding = (props) => { return case 'recover-from-mnemonic': return + case 'import-flow': + return + case 'set-custom-eth': + return default: return null } diff --git a/ui-desktop/src/renderer/src/components/onboarding/PasswordStep.jsx b/ui-desktop/src/renderer/src/components/onboarding/PasswordStep.jsx index b5dc8556..c1418944 100644 --- a/ui-desktop/src/renderer/src/components/onboarding/PasswordStep.jsx +++ b/ui-desktop/src/renderer/src/components/onboarding/PasswordStep.jsx @@ -17,6 +17,7 @@ import Message from './Message'; const PasswordMessage = styled(Message)` text-align: left; color: ${p => p.theme.colors.dark}; + text-align: justify; `; const Green = styled.div` @@ -28,19 +29,25 @@ const PasswordInputWrap = styled.div` position: relative; `; +const SecondaryBtn = styled(Btn)` + border: 1px solid #20dc8e; + color: #20dc8e; + background: transparent; +` + const PasswordStep = props => { const [typed, setTyped] = useState(false); const [suggestion, setSuggestion] = useState(''); - const onPasswordSubmit = e => { + const onPasswordSubmit = (e, useImportFlow) => { e.preventDefault(); - props.onPasswordSubmit({ clearOnError: false }); + props.onPasswordSubmit({ clearOnError: false, useImportFlow }); }; let tooltipTimeout; return ( - + -
+ Enter a strong password until the meter turns green. @@ -90,10 +97,15 @@ const PasswordStep = props => { /> - - Continue + onPasswordSubmit(e, false)}> + Create a new wallet + + onPasswordSubmit(e, true)}> + Import an existing wallet + +
diff --git a/ui-desktop/src/renderer/src/components/onboarding/SetCustomEthStep.jsx b/ui-desktop/src/renderer/src/components/onboarding/SetCustomEthStep.jsx new file mode 100644 index 00000000..77957072 --- /dev/null +++ b/ui-desktop/src/renderer/src/components/onboarding/SetCustomEthStep.jsx @@ -0,0 +1,91 @@ +import TermsAndConditions from '../../components/common/TermsAndConditions'; +import PropTypes from 'prop-types'; +import styled from 'styled-components'; +import React from 'react'; +import SecondaryBtn from './SecondaryBtn'; +import { AltLayout, AltLayoutNarrow, Btn, Sp, TextInput } from '../common'; +import Message from './Message'; + +const DisclaimerWarning = styled.div` + text-align: left; + color: ${p => p.theme.colors.dark}; + font-size: 16px; + margin-top: 16px; + text-align: justify; +`; + +const DisclaimerMessage = styled.div` + width: 100%; + height: 130px; + border-radius: 2px; + background-color: rgba(0, 0, 0, 0.1); + color: ${p => p.theme.colors.dark}; + overflow: auto; + font-size: 12px; + padding: 10px 16px 0 16px; + margin: 16px 0; +`; + +const P = styled.p` + color: ${p => p.theme.colors.dark}; +`; + +const Subtext = styled.span` + color: ${p => p.theme.colors.dark}; +`; + +export const SetCustomEthStep = props => { + + return ( + + + + Set Custom ETH node url that will be used for blockchain interactions instead of default. This can be set later in Settings + + + + { + e.preventDefault(); + const value = e.clipboardData.getData('Text').trim(); + console.log(value); + props.onInputChange({ value, id: 'customEthNode' }); + }} + label="Custom ETH Node Url" + error={props.errors.customEthNode} + value={props.customEthNode || ''} + id={'customEthNode'} + /> + + + + + Accept + + + + { + props.onInputChange({ value: "", id: 'customEthNode' }); + props.onEthNodeSet(e) + }} + block + > + Skip + + + + + ); +}; diff --git a/ui-desktop/src/renderer/src/components/onboarding/TermsStep.jsx b/ui-desktop/src/renderer/src/components/onboarding/TermsStep.jsx index 1303e063..863d97dc 100644 --- a/ui-desktop/src/renderer/src/components/onboarding/TermsStep.jsx +++ b/ui-desktop/src/renderer/src/components/onboarding/TermsStep.jsx @@ -11,13 +11,14 @@ const DisclaimerWarning = styled.div` color: ${p => p.theme.colors.dark}; font-size: 16px; margin-top: 16px; + text-align: justify; `; const DisclaimerMessage = styled.div` width: 100%; height: 130px; border-radius: 2px; - background-color: rgba(0, 0, 0, 0.1); + background-color: rgba(0, 0, 0, 0.5); color: ${p => p.theme.colors.dark}; overflow: auto; font-size: 12px; @@ -31,6 +32,7 @@ const P = styled.p` const Subtext = styled.span` color: ${p => p.theme.colors.dark}; + margin-left: 5px; `; const TermsStep = props => { @@ -72,7 +74,6 @@ const TermsStep = props => { software license - . diff --git a/ui-desktop/src/renderer/src/components/settings/Settings.tsx b/ui-desktop/src/renderer/src/components/settings/Settings.tsx index 15e27c7e..35b12291 100644 --- a/ui-desktop/src/renderer/src/components/settings/Settings.tsx +++ b/ui-desktop/src/renderer/src/components/settings/Settings.tsx @@ -2,7 +2,7 @@ import { LayoutHeader } from '../common/LayoutHeader' import { View } from '../common/View' import { Sp } from '../common'; import withSettingsState from '../../store/hocs/withSettingsState'; -import { StyledBtn, Subtitle, StyledParagraph } from '../tools/common'; +import { StyledBtn, Subtitle, StyledParagraph, Input } from '../tools/common'; const Settings = (props) => { return ( @@ -17,6 +17,16 @@ const Settings = (props) => { Reset + + Set Custom ETH Node + + + + + props.logout()}> + Set + + ) } diff --git a/ui-desktop/src/renderer/src/store/hocs/withDashboardState.jsx b/ui-desktop/src/renderer/src/store/hocs/withDashboardState.jsx index 3ef96655..ef17f20e 100644 --- a/ui-desktop/src/renderer/src/store/hocs/withDashboardState.jsx +++ b/ui-desktop/src/renderer/src/store/hocs/withDashboardState.jsx @@ -60,6 +60,26 @@ const withDashboardState = WrappedComponent => { return transactions; } + getStakedFunds = async (user) => { + const isClosed = (item) => item.ClosedAt || (new Date().getTime() > item.EndsAt * 1000); + + if(!user) { + return; + } + try { + const path = `${this.props.config.chain.localProxyRouterUrl}/blockchain/sessions/user?user=${user}`; + const response = await fetch(path); + const data = await response.json(); + const openSessions = data.sessions.filter(s => !isClosed(s)); + const sum = openSessions.reduce((curr, next) => curr + next.Stake, 0); + return (sum / 10 ** 18).toFixed(2); + } + catch (e) { + console.log("Error", e) + return 0; + } + } + getBalances = async () => { const balances = await this.props.client.getBalances(); const rate = await this.props.client.getRates(); @@ -84,6 +104,7 @@ const withDashboardState = WrappedComponent => { getBalances={this.getBalances} sendDisabled={sendLmrFeatureStatus !== 'ok'} loadTransactions={this.loadTransactions} + getStakedFunds={this.getStakedFunds} {...this.props} {...this.state} /> @@ -92,6 +113,7 @@ const withDashboardState = WrappedComponent => { } const mapStateToProps = state => ({ + config: state.config, syncStatus: selectors.getTxSyncStatus(state), sendLmrFeatureStatus: selectors.sendLmrFeatureStatus(state), hasTransactions: selectors.hasTransactions(state), diff --git a/ui-desktop/src/renderer/src/store/hocs/withOnboardingState.jsx b/ui-desktop/src/renderer/src/store/hocs/withOnboardingState.jsx index ef7a9881..9d152a03 100644 --- a/ui-desktop/src/renderer/src/store/hocs/withOnboardingState.jsx +++ b/ui-desktop/src/renderer/src/store/hocs/withOnboardingState.jsx @@ -7,6 +7,7 @@ import * as utils from '../utils'; import { toRfc2396, generatePoolUrl } from '../../utils'; const EMAIL_REGEX = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; +const UrlRegex = /\b(?:http|ws)s?:\/\/\S*[^\s."]/g; const withOnboardingState = WrappedComponent => { class Container extends React.Component { @@ -36,11 +37,13 @@ const withOnboardingState = WrappedComponent => { passwordAgain: null, mnemonicAgain: null, userMnemonic: null, + userPrivateKey: null, + derivationPath: null, + customEthNode: null, password: null, mnemonic: null, - proxyDefaultPool: null, - lightningAddress: null, - isTitanLightning: true, + useImportFlow: false, + useEthStep: false, errors: {} }; @@ -58,7 +61,7 @@ const withOnboardingState = WrappedComponent => { } }; - onPasswordSubmit = ({ clearOnError = false }) => { + onPasswordSubmit = ({ clearOnError = false, useImportFlow = false }) => { const { password, passwordAgain } = this.state; const errors = validators.validatePasswordCreation( @@ -82,7 +85,7 @@ const withOnboardingState = WrappedComponent => { }); return; } - this.setState({ isPasswordDefined: true }); + this.setState({ isPasswordDefined: true, useImportFlow }); }; onUseUserMnemonicToggled = () => { @@ -130,6 +133,13 @@ const withOnboardingState = WrappedComponent => { this.onFinishOnboarding(); }; + onPrivateKeyAccepted = e => { + if (e && e.preventDefault) e.preventDefault(); + + this.setState({ isMnemonicVerified: true, useEthStep: true }); + } + + validateDefaultPoolAddress() { const errors = validators.validatePoolAddress( this.state.proxyDefaultPool @@ -142,16 +152,26 @@ const withOnboardingState = WrappedComponent => { return true; } - // HERE - onFinishOnboarding = e => { + onFinishOnboarding = async (e, path) => { if (e && e.preventDefault) e.preventDefault(); - return this.props.onOnboardingCompleted({ + const payload = { password: this.state.password, - mnemonic: this.state.useUserMnemonic - ? utils.sanitizeMnemonic(this.state.userMnemonic) - : this.state.mnemonic - }); + ethNode: this.state.customEthNode || '', + derivationPath: path || 0, + privateKey: '' + }; + + if(this.state.userPrivateKey) { + payload.privateKey = this.state.userPrivateKey; + } + else { + payload.mnemonic = this.state.useUserMnemonic + ? utils.sanitizeMnemonic(this.state.userMnemonic) + : this.state.mnemonic; + } + + await this.props.onOnboardingCompleted(payload); }; onRunWithoutProxyRouter = e => { @@ -166,6 +186,28 @@ const withOnboardingState = WrappedComponent => { }); }; + onSuggestAddress = async () => { + const addrs = await this.props.client.suggestAddresses(this.state.userMnemonic); + return addrs; + } + + onMnemonicSet = async (e, path) => { + this.setState({...this.state, derivationPath: path}) + if (e && e.preventDefault) e.preventDefault(); + this.setState({...this.state, useEthStep: true }) + } + + onEthNodeSet = async (e) => { + if(this.state.customEthNode && !UrlRegex.test(this.state.customEthNode)) { + const errors = this.state.errors; + errors.customEthNode = "Url format is not valid" + this.setState({ errors }); + } + else { + await this.onFinishOnboarding(e); + } + } + onInputChange = ({ id, value }) => { this.setState(state => ({ ...state, @@ -180,9 +222,11 @@ const withOnboardingState = WrappedComponent => { getCurrentStep() { if (!this.state.areTermsAccepted) return 'ask-for-terms'; if (!this.state.isPasswordDefined) return 'define-password'; + if (this.state.useEthStep) return 'set-custom-eth'; if (this.state.isMnemonicVerified) return 'config-proxy-router'; if (this.state.useUserMnemonic) return 'recover-from-mnemonic'; if (this.state.isMnemonicCopied) return 'verify-mnemonic'; + if (this.state.useImportFlow) return 'import-flow'; return 'copy-mnemonic'; } @@ -210,7 +254,11 @@ const withOnboardingState = WrappedComponent => { shouldSubmit={shouldSubmit} currentStep={this.getCurrentStep()} getTooltip={getTooltip} + onSuggestAddress={this.onSuggestAddress} onRunWithoutProxyRouter={this.onRunWithoutProxyRouter} + onPrivateKeyAccepted={this.onPrivateKeyAccepted} + onMnemonicSet={this.onMnemonicSet} + onEthNodeSet={this.onEthNodeSet} {...this.state} /> ); diff --git a/ui-desktop/src/renderer/src/termsAndConditions.md b/ui-desktop/src/renderer/src/termsAndConditions.md index b266e3a6..010c4794 100644 --- a/ui-desktop/src/renderer/src/termsAndConditions.md +++ b/ui-desktop/src/renderer/src/termsAndConditions.md @@ -1,4 +1,4 @@ -# Lumerin Terms of Use +# Morpheus Terms of Use Last Updated Date: March 16, 2023 From 429579f13b35777bbef0dbca18182886d92439fe Mon Sep 17 00:00:00 2001 From: "bohdan.konorin" Date: Fri, 25 Oct 2024 23:54:06 +0200 Subject: [PATCH 052/260] applied review --- proxy-router/cmd/main.go | 5 +-- .../internal/interfaces/validation.go | 11 ------ proxy-router/internal/system/controller.go | 36 +++++++++---------- proxy-router/internal/system/interface.go | 9 ++++- proxy-router/internal/system/validation.go | 13 ++++--- 5 files changed, 37 insertions(+), 37 deletions(-) delete mode 100644 proxy-router/internal/interfaces/validation.go diff --git a/proxy-router/cmd/main.go b/proxy-router/cmd/main.go index 3e8eb79f..aea8a044 100644 --- a/proxy-router/cmd/main.go +++ b/proxy-router/cmd/main.go @@ -3,6 +3,7 @@ package main import ( "context" "fmt" + "math/big" "net/url" "os" "os/signal" @@ -274,11 +275,11 @@ func start() error { log.Warnf("chat context storage is disabled") chatStorage = proxyapi.NewNoOpChatStorage() } - validator := system.NewValidator() + ethConnectionValidator := system.NewValidator(*big.NewInt(int64(cfg.Blockchain.ChainID))) proxyController := proxyapi.NewProxyController(proxyRouterApi, aiEngine, chatStorage) walletController := walletapi.NewWalletController(wallet) - systemController := system.NewSystemController(&cfg, wallet, rpcClientStore, sysConfig, appStartTime, chainID, log, validator) + systemController := system.NewSystemController(&cfg, wallet, rpcClientStore, sysConfig, appStartTime, chainID, log, ethConnectionValidator) apiBus := apibus.NewApiBus(blockchainController, proxyController, walletController, systemController) httpHandler := httphandlers.CreateHTTPServer(log, apiBus) diff --git a/proxy-router/internal/interfaces/validation.go b/proxy-router/internal/interfaces/validation.go deleted file mode 100644 index 045fc340..00000000 --- a/proxy-router/internal/interfaces/validation.go +++ /dev/null @@ -1,11 +0,0 @@ -package interfaces - -import ( - "context" - "math/big" - "time" -) - -type Validation interface { - ValidateEthResourse(ctx context.Context, url string, chainId *big.Int, timeout time.Duration) error -} diff --git a/proxy-router/internal/system/controller.go b/proxy-router/internal/system/controller.go index a9eabb40..6d516837 100644 --- a/proxy-router/internal/system/controller.go +++ b/proxy-router/internal/system/controller.go @@ -16,26 +16,26 @@ import ( ) type SystemController struct { - config *config.Config - wallet i.Wallet - ethRPC i.RPCEndpoints - sysConfig *SystemConfigurator - appStartTime time.Time - chainID *big.Int - log lib.ILogger - validator i.Validation + config *config.Config + wallet i.Wallet + ethRPC i.RPCEndpoints + sysConfig *SystemConfigurator + appStartTime time.Time + chainID *big.Int + log lib.ILogger + ethConnectionValidator EthConnectionValidator } -func NewSystemController(config *config.Config, wallet i.Wallet, ethRPC i.RPCEndpoints, sysConfig *SystemConfigurator, appStartTime time.Time, chainID *big.Int, log lib.ILogger, validator i.Validation) *SystemController { +func NewSystemController(config *config.Config, wallet i.Wallet, ethRPC i.RPCEndpoints, sysConfig *SystemConfigurator, appStartTime time.Time, chainID *big.Int, log lib.ILogger, ethConnectionValidator EthConnectionValidator) *SystemController { c := &SystemController{ - config: config, - wallet: wallet, - ethRPC: ethRPC, - sysConfig: sysConfig, - appStartTime: appStartTime, - chainID: chainID, - log: log, - validator: validator, + config: config, + wallet: wallet, + ethRPC: ethRPC, + sysConfig: sysConfig, + appStartTime: appStartTime, + chainID: chainID, + log: log, + ethConnectionValidator: ethConnectionValidator, } return c @@ -152,7 +152,7 @@ func (s *SystemController) SetEthNode(ctx *gin.Context) { } for _, url := range req.URLs { - validationErr := s.validator.ValidateEthResourse(ctx, url, big.NewInt(int64(s.config.Blockchain.ChainID)), time.Second*2) + validationErr := s.ethConnectionValidator.ValidateEthResourse(ctx, url, time.Second*2) if validationErr != nil { ctx.JSON(http.StatusInternalServerError, gin.H{"error": fmt.Sprintf("Resource %s is not available", url)}) return diff --git a/proxy-router/internal/system/interface.go b/proxy-router/internal/system/interface.go index 5c7067a3..3ae97f48 100644 --- a/proxy-router/internal/system/interface.go +++ b/proxy-router/internal/system/interface.go @@ -1,9 +1,16 @@ package system -import "context" +import ( + "context" + "time" +) type osConfigurator interface { GetConfig() (*Config, error) ApplyConfig(cfg *Config) error GetFileDescriptors(ctx context.Context, pid int) ([]FD, error) } + +type EthConnectionValidator interface { + ValidateEthResourse(ctx context.Context, url string, timeout time.Duration) error +} diff --git a/proxy-router/internal/system/validation.go b/proxy-router/internal/system/validation.go index 98390c8c..1b9742a4 100644 --- a/proxy-router/internal/system/validation.go +++ b/proxy-router/internal/system/validation.go @@ -10,13 +10,16 @@ import ( ) type Validator struct { + chainId big.Int } -func NewValidator() *Validator { - return &Validator{} +func NewValidator(chainId big.Int) *Validator { + return &Validator{ + chainId: chainId, + } } -func (v *Validator) ValidateEthResourse(ctx context.Context, url string, chainId *big.Int, timeout time.Duration) error { +func (v *Validator) ValidateEthResourse(ctx context.Context, url string, timeout time.Duration) error { timeoutCtx, cancel := context.WithTimeout(ctx, timeout) defer cancel() @@ -30,8 +33,8 @@ func (v *Validator) ValidateEthResourse(ctx context.Context, url string, chainId return chainIdError } - if chainId.Cmp(urlChainId) != 0 { - return fmt.Errorf("invalid chain id %s, expected: %s", urlChainId, chainId) + if v.chainId.Cmp(urlChainId) != 0 { + return fmt.Errorf("invalid chain id %s, expected: %s", urlChainId, &v.chainId) } return nil From 100b564c9848bedd02ed06f64db59eccb8957ad7 Mon Sep 17 00:00:00 2001 From: "bohdan.konorin" Date: Fri, 25 Oct 2024 23:59:36 +0200 Subject: [PATCH 053/260] Pushed renaming --- proxy-router/cmd/main.go | 2 +- proxy-router/internal/system/controller.go | 4 ++-- proxy-router/internal/system/interface.go | 2 +- proxy-router/internal/system/validation.go | 8 ++++---- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/proxy-router/cmd/main.go b/proxy-router/cmd/main.go index aea8a044..0e729cc8 100644 --- a/proxy-router/cmd/main.go +++ b/proxy-router/cmd/main.go @@ -276,7 +276,7 @@ func start() error { chatStorage = proxyapi.NewNoOpChatStorage() } - ethConnectionValidator := system.NewValidator(*big.NewInt(int64(cfg.Blockchain.ChainID))) + ethConnectionValidator := system.NewEthConnectionValidator(*big.NewInt(int64(cfg.Blockchain.ChainID))) proxyController := proxyapi.NewProxyController(proxyRouterApi, aiEngine, chatStorage) walletController := walletapi.NewWalletController(wallet) systemController := system.NewSystemController(&cfg, wallet, rpcClientStore, sysConfig, appStartTime, chainID, log, ethConnectionValidator) diff --git a/proxy-router/internal/system/controller.go b/proxy-router/internal/system/controller.go index 6d516837..833bda71 100644 --- a/proxy-router/internal/system/controller.go +++ b/proxy-router/internal/system/controller.go @@ -23,10 +23,10 @@ type SystemController struct { appStartTime time.Time chainID *big.Int log lib.ILogger - ethConnectionValidator EthConnectionValidator + ethConnectionValidator IEthConnectionValidator } -func NewSystemController(config *config.Config, wallet i.Wallet, ethRPC i.RPCEndpoints, sysConfig *SystemConfigurator, appStartTime time.Time, chainID *big.Int, log lib.ILogger, ethConnectionValidator EthConnectionValidator) *SystemController { +func NewSystemController(config *config.Config, wallet i.Wallet, ethRPC i.RPCEndpoints, sysConfig *SystemConfigurator, appStartTime time.Time, chainID *big.Int, log lib.ILogger, ethConnectionValidator IEthConnectionValidator) *SystemController { c := &SystemController{ config: config, wallet: wallet, diff --git a/proxy-router/internal/system/interface.go b/proxy-router/internal/system/interface.go index 3ae97f48..78486778 100644 --- a/proxy-router/internal/system/interface.go +++ b/proxy-router/internal/system/interface.go @@ -11,6 +11,6 @@ type osConfigurator interface { GetFileDescriptors(ctx context.Context, pid int) ([]FD, error) } -type EthConnectionValidator interface { +type IEthConnectionValidator interface { ValidateEthResourse(ctx context.Context, url string, timeout time.Duration) error } diff --git a/proxy-router/internal/system/validation.go b/proxy-router/internal/system/validation.go index 1b9742a4..91874957 100644 --- a/proxy-router/internal/system/validation.go +++ b/proxy-router/internal/system/validation.go @@ -9,17 +9,17 @@ import ( "github.com/ethereum/go-ethereum/ethclient" ) -type Validator struct { +type EthConnectionValidator struct { chainId big.Int } -func NewValidator(chainId big.Int) *Validator { - return &Validator{ +func NewEthConnectionValidator(chainId big.Int) *EthConnectionValidator { + return &EthConnectionValidator{ chainId: chainId, } } -func (v *Validator) ValidateEthResourse(ctx context.Context, url string, timeout time.Duration) error { +func (v *EthConnectionValidator) ValidateEthResourse(ctx context.Context, url string, timeout time.Duration) error { timeoutCtx, cancel := context.WithTimeout(ctx, timeout) defer cancel() From ad7b05ed3f70428d1891fcbe6afa1cefcf259070 Mon Sep 17 00:00:00 2001 From: "bohdan.konorin" Date: Sat, 26 Oct 2024 00:47:02 +0200 Subject: [PATCH 054/260] Added custom eth to settings --- .../components/common/TextInput.styles.jsx | 10 ++--- .../onboarding/SetCustomEthStep.jsx | 1 + .../src/components/settings/Settings.tsx | 22 +++++++++-- .../renderer/src/components/tools/common.jsx | 6 +-- .../src/store/hocs/withSettingsState.jsx | 39 +++++++++++++++++++ 5 files changed, 66 insertions(+), 12 deletions(-) diff --git a/ui-desktop/src/renderer/src/components/common/TextInput.styles.jsx b/ui-desktop/src/renderer/src/components/common/TextInput.styles.jsx index 6ecdefbc..1bd0a678 100644 --- a/ui-desktop/src/renderer/src/components/common/TextInput.styles.jsx +++ b/ui-desktop/src/renderer/src/components/common/TextInput.styles.jsx @@ -9,15 +9,15 @@ export const Label = styled.label` `; export const Input = styled.input` - border: none; + border: 1px solid gray; display: block; border-radius: 2px; padding: 0.8rem 1.6rem; - background-color: ${p => p.theme.colors.lightBlue}; + background-color: transparent; margin-top: 0.8rem; width: 100%; line-height: 2.5rem; - color: ${p => (p.disabled ? p.theme.colors.copy : p.theme.colors.primary)}; + color: ${p => (p.disabled ? p.theme.colors.copy : "white")}; font-size: 1.3rem; font-weight: 600; letter-spacing: 0.5px; @@ -28,11 +28,11 @@ export const Input = styled.input` &:focus { outline: none; - box-shadow: 0 2px 0 0px ${p => p.theme.colors.primary}; + box-shadow: 0 2px 0 0px ${p => p.theme.colors.morMain}; box-shadow: ${p => p.noFocus && p.value.length > 0 ? 'none' - : `0 2px 0 0px ${p.theme.colors.primary}`}; + : `0 2px 0 0px ${p.theme.colors.morMains}`}; } `; diff --git a/ui-desktop/src/renderer/src/components/onboarding/SetCustomEthStep.jsx b/ui-desktop/src/renderer/src/components/onboarding/SetCustomEthStep.jsx index 77957072..b0b65dfc 100644 --- a/ui-desktop/src/renderer/src/components/onboarding/SetCustomEthStep.jsx +++ b/ui-desktop/src/renderer/src/components/onboarding/SetCustomEthStep.jsx @@ -77,6 +77,7 @@ export const SetCustomEthStep = props => { { + e.preventDefault(); props.onInputChange({ value: "", id: 'customEthNode' }); props.onEthNodeSet(e) }} diff --git a/ui-desktop/src/renderer/src/components/settings/Settings.tsx b/ui-desktop/src/renderer/src/components/settings/Settings.tsx index 35b12291..db853aeb 100644 --- a/ui-desktop/src/renderer/src/components/settings/Settings.tsx +++ b/ui-desktop/src/renderer/src/components/settings/Settings.tsx @@ -3,12 +3,22 @@ import { View } from '../common/View' import { Sp } from '../common'; import withSettingsState from '../../store/hocs/withSettingsState'; import { StyledBtn, Subtitle, StyledParagraph, Input } from '../tools/common'; +import { useEffect, useState } from 'react'; const Settings = (props) => { + const [ethNodeUrl, setEthUrl] = useState(""); + + useEffect(() => { + props.getConfig().then(cfg => { + const customUrl = cfg?.DerivedConfig?.EthNodeURLs[0] || ""; + setEthUrl(customUrl); + }) + },[]) + return ( - + Reset Set up your wallet from scratch. @@ -17,13 +27,17 @@ const Settings = (props) => { Reset - + Set Custom ETH Node - + setEthUrl(e.value)} /> - props.logout()}> + props.updateEthNodeUrl(ethNodeUrl)}> Set diff --git a/ui-desktop/src/renderer/src/components/tools/common.jsx b/ui-desktop/src/renderer/src/components/tools/common.jsx index 73a094df..bfd2fd3f 100644 --- a/ui-desktop/src/renderer/src/components/tools/common.jsx +++ b/ui-desktop/src/renderer/src/components/tools/common.jsx @@ -49,9 +49,9 @@ export const StyledParagraph = styled.p` export const Input = styled(TextInput)` outline: 0; - border: 0px; - background: #eaf7fc; - border-radius: 15px; + border: 1px solid ${p => p.theme.colors.morMain}; + background: transparent; + border-radius: 5px; padding: 1.2rem 1.2rem; margin-top: 0.25rem; `; diff --git a/ui-desktop/src/renderer/src/store/hocs/withSettingsState.jsx b/ui-desktop/src/renderer/src/store/hocs/withSettingsState.jsx index 06fb1c09..af871b09 100644 --- a/ui-desktop/src/renderer/src/store/hocs/withSettingsState.jsx +++ b/ui-desktop/src/renderer/src/store/hocs/withSettingsState.jsx @@ -19,11 +19,50 @@ const withSettingsState = WrappedComponent => { return this.props.client.logout(); }; + getConfig = async () => { + try { + const path = `${this.props.config.chain.localProxyRouterUrl}/config`; + const response = await fetch(path); + const data = await response.json(); + return data; + } + catch (e) { + console.log("Error", e) + return []; + } + } + + updateEthNodeUrl = async (value) => { + if(!value) + return; + + if(!/\b(?:http|ws)s?:\/\/\S*[^\s."]/g.test(value)) { + this.context.toast('error', "Invalid format"); + return; + } + + const ethNodeResult = await fetch(`${this.props.config.chain.localProxyRouterUrl}/config/ethNode`, { + method: 'POST', + body: JSON.stringify({ urls: [value] }) + }) + + const dataResponse = await ethNodeResult.json(); + if (dataResponse.error) { + this.context.toast('error', dataResponse.error); + return; + } + + this.context.toast('success', "Changed"); + } + + render() { return ( From d71e150f99baa7ca1e114e8518c435dcd220335d Mon Sep 17 00:00:00 2001 From: "bohdan.konorin" Date: Sat, 26 Oct 2024 01:25:05 +0200 Subject: [PATCH 055/260] Fixed issue with random wallet --- ui-desktop/src/main/src/client/apiGateway.js | 4 +- .../main/src/client/handlers/single-core.js | 7 ++- .../src/components/dashboard/Dashboard.jsx | 4 +- .../components/dashboard/tx-list/TxList.jsx | 53 ++++++++++++------- .../src/store/hocs/withDashboardState.jsx | 4 +- .../src/store/hocs/withOnboardingState.jsx | 4 +- 6 files changed, 47 insertions(+), 29 deletions(-) diff --git a/ui-desktop/src/main/src/client/apiGateway.js b/ui-desktop/src/main/src/client/apiGateway.js index 3c08c0cf..2728519e 100644 --- a/ui-desktop/src/main/src/client/apiGateway.js +++ b/ui-desktop/src/main/src/client/apiGateway.js @@ -62,9 +62,9 @@ const sendMor = async (to, amount) => { } } -const getTransactions = async (page = 1, size = 15) => { +const getTransactions = async (payload) => { try { - const path = `${config.chain.localProxyRouterUrl}/blockchain/transactions?page=${page}&limit=${size}` + const path = `${config.chain.localProxyRouterUrl}/blockchain/transactions?page=${payload.page}&limit=${payload.pageSize}` const response = await fetch(path); const data = await response.json(); return data.transactions; diff --git a/ui-desktop/src/main/src/client/handlers/single-core.js b/ui-desktop/src/main/src/client/handlers/single-core.js index d3fcd394..934cae6e 100644 --- a/ui-desktop/src/main/src/client/handlers/single-core.js +++ b/ui-desktop/src/main/src/client/handlers/single-core.js @@ -135,7 +135,12 @@ export const setContractDeleteStatus = async function (data, { api }) { } export async function openWallet({ emitter }, password) { - const { address } = wallet.getAddress() + const storedAddress = wallet.getAddress() + if(!storedAddress) { + return; + } + + const { address } = storedAddress; emitter.emit('open-wallet', { address, isActive: true }) emitter.emit('open-proxy-router', { password }) diff --git a/ui-desktop/src/renderer/src/components/dashboard/Dashboard.jsx b/ui-desktop/src/renderer/src/components/dashboard/Dashboard.jsx index 1d4888f8..16ecfb23 100644 --- a/ui-desktop/src/renderer/src/components/dashboard/Dashboard.jsx +++ b/ui-desktop/src/renderer/src/components/dashboard/Dashboard.jsx @@ -73,7 +73,7 @@ const Dashboard = ({ } }); const [transactions, setTransactions] = useState([]); - const [pagging, setPagging] = useState({ page: 1, pageSize: 15, hasNextPage: true }) + const [pagging, setPagging] = useState({ page: 1, pageSize: 50, hasNextPage: true }) const [staked, setStaked] = useState(0); const loadBalances = async () => { @@ -194,7 +194,7 @@ const Dashboard = ({ {}} hasTransactions={!!transactions.length} syncStatus={syncStatus} transactions={transactions} diff --git a/ui-desktop/src/renderer/src/components/dashboard/tx-list/TxList.jsx b/ui-desktop/src/renderer/src/components/dashboard/tx-list/TxList.jsx index 5961c0f1..2ba62f9f 100644 --- a/ui-desktop/src/renderer/src/components/dashboard/tx-list/TxList.jsx +++ b/ui-desktop/src/renderer/src/components/dashboard/tx-list/TxList.jsx @@ -32,7 +32,7 @@ const Transactions = styled.div` `; const ListContainer = styled.div` - height: calc(100vh - 370px); + height: calc(100vh - 490px); border-radius: 0.375rem; background: rgba(255,255,255, 0.04); @@ -94,16 +94,17 @@ export const TxList = ({ items={transactions.filter(({ txType }) => txType)} > {({ filteredItems, onFilterChange, activeFilter }) => { - const rowCount = hasNextPage - ? filteredItems.length + 1 - : filteredItems.length; + // const rowCount = hasNextPage + // ? filteredItems.length + 1 + // : filteredItems.length; + const rowCount = filteredItems.length; // Only load 1 page of items at a time. // Pass an empty callback to InfiniteLoader in case it asks us to load more than once. const loadMoreRows = nextPageLoading ? () => {} : () => { - load(); + // load(); }; // Every row is loaded except for our loading indicator row. @@ -124,9 +125,10 @@ export const TxList = ({ /> ) : ( - - Loading... - + null + // + // Loading... + // ); return ( @@ -147,18 +149,9 @@ export const TxList = ({ ))} {+transactions.length > 0 && ( - - {({ onRowsRendered, registerChild }) => ( - + {({ width, height }) => ( )} - )} - + // + // {({ onRowsRendered, registerChild }) => ( + // + // {({ width, height }) => ( + // + // )} + // + // )} + // )} diff --git a/ui-desktop/src/renderer/src/store/hocs/withDashboardState.jsx b/ui-desktop/src/renderer/src/store/hocs/withDashboardState.jsx index ef17f20e..19f8b0fc 100644 --- a/ui-desktop/src/renderer/src/store/hocs/withDashboardState.jsx +++ b/ui-desktop/src/renderer/src/store/hocs/withDashboardState.jsx @@ -45,9 +45,9 @@ const withDashboardState = WrappedComponent => { }); }; - loadTransactions = async (page = 0, pageSize = 15) => { + loadTransactions = async (page = 1, pageSize = 15) => { this.setState({ refreshStatus: 'pending', refreshError: null }); - const transactions = await this.props.client.getTransactions(page, pageSize); + const transactions = await this.props.client.getTransactions({ page, pageSize }); this.setState({ refreshStatus: 'success' }) // if (page && pageSize) { diff --git a/ui-desktop/src/renderer/src/store/hocs/withOnboardingState.jsx b/ui-desktop/src/renderer/src/store/hocs/withOnboardingState.jsx index 9d152a03..9faee86b 100644 --- a/ui-desktop/src/renderer/src/store/hocs/withOnboardingState.jsx +++ b/ui-desktop/src/renderer/src/store/hocs/withOnboardingState.jsx @@ -192,9 +192,9 @@ const withOnboardingState = WrappedComponent => { } onMnemonicSet = async (e, path) => { - this.setState({...this.state, derivationPath: path}) if (e && e.preventDefault) e.preventDefault(); - this.setState({...this.state, useEthStep: true }) + + this.setState({...this.state, useUserMnemonic: true, derivationPath: path, useEthStep: true }) } onEthNodeSet = async (e) => { From e4616f126c01e276f3f2e33362f40d417cc5bd90 Mon Sep 17 00:00:00 2001 From: abs2023 Date: Mon, 14 Oct 2024 15:25:20 -0400 Subject: [PATCH 056/260] update docker --- proxy-router/Dockerfile | 7 ++++--- proxy-router/docker-compose.yml | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/proxy-router/Dockerfile b/proxy-router/Dockerfile index 1eda590d..59d7e772 100644 --- a/proxy-router/Dockerfile +++ b/proxy-router/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.22.3 as base +FROM golang:1.22.3-alpine as base RUN apt-get update && apt-get install -y procps curl gnupg2 dbus-x11 FROM base as builder @@ -8,7 +8,8 @@ ENV COMMIT=$COMMIT WORKDIR /app COPY . . -RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 ./build.sh +RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 ./build.sh&& \ +cp /bin/sh /app/sh && chmod +x /app/sh FROM scratch WORKDIR /app @@ -20,5 +21,5 @@ COPY --from=busybox /bin /bin COPY --from=busybox /lib /lib SHELL ["/bin/sh", "-c"] -EXPOSE 3333 8080 8082 +EXPOSE 3333 8082 ENTRYPOINT ["proxy-router"] \ No newline at end of file diff --git a/proxy-router/docker-compose.yml b/proxy-router/docker-compose.yml index 64ff1c4d..e4beebfa 100644 --- a/proxy-router/docker-compose.yml +++ b/proxy-router/docker-compose.yml @@ -4,5 +4,5 @@ services: env_file: - .env ports: - - 8080:8080 + - 8082:8082 - 3333:3333 \ No newline at end of file From 1ba8a67477af07b757de3026432f530e0b89f4e6 Mon Sep 17 00:00:00 2001 From: abs2023 Date: Mon, 14 Oct 2024 15:32:18 -0400 Subject: [PATCH 057/260] remove busybox reference --- proxy-router/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/proxy-router/Dockerfile b/proxy-router/Dockerfile index 59d7e772..85056961 100644 --- a/proxy-router/Dockerfile +++ b/proxy-router/Dockerfile @@ -17,8 +17,8 @@ COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ COPY --from=builder /app/bin/proxy-router /usr/bin/ COPY --from=builder /usr/bin/dbus-launch /usr/bin/ COPY --from=builder /app/.env /app/.env -COPY --from=busybox /bin /bin -COPY --from=busybox /lib /lib +# COPY --from=busybox /bin /bin +# COPY --from=busybox /lib /lib SHELL ["/bin/sh", "-c"] EXPOSE 3333 8082 From cece04623fd4663e766ce337aa4985d8de5d0e4e Mon Sep 17 00:00:00 2001 From: abs2023 Date: Mon, 14 Oct 2024 16:00:51 -0400 Subject: [PATCH 058/260] update dockerfile --- proxy-router/Dockerfile | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/proxy-router/Dockerfile b/proxy-router/Dockerfile index 85056961..3bed50bf 100644 --- a/proxy-router/Dockerfile +++ b/proxy-router/Dockerfile @@ -1,7 +1,5 @@ -FROM golang:1.22.3-alpine as base -RUN apt-get update && apt-get install -y procps curl gnupg2 dbus-x11 +FROM golang:1.22.3-alpine as builder -FROM base as builder ARG COMMIT ENV COMMIT=$COMMIT From 8e9bb05463726484664b4fbd0fa65231b1d21819 Mon Sep 17 00:00:00 2001 From: abs2023 Date: Mon, 14 Oct 2024 16:07:07 -0400 Subject: [PATCH 059/260] update build.sh --- proxy-router/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proxy-router/build.sh b/proxy-router/build.sh index 3624bebd..ea7c4235 100755 --- a/proxy-router/build.sh +++ b/proxy-router/build.sh @@ -8,7 +8,7 @@ if [ -z "$COMMIT" ]; then COMMIT=$(git rev-parse HEAD) fi echo COMMIT=$COMMIT - +go mod tidy go build \ -tags docker \ -ldflags="-s -w \ From c3168cc5000b2a7b14166066036d97e85c5c8b07 Mon Sep 17 00:00:00 2001 From: abs2023 Date: Mon, 14 Oct 2024 16:10:47 -0400 Subject: [PATCH 060/260] update dockerfile --- proxy-router/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proxy-router/Dockerfile b/proxy-router/Dockerfile index 3bed50bf..33a37410 100644 --- a/proxy-router/Dockerfile +++ b/proxy-router/Dockerfile @@ -13,7 +13,7 @@ FROM scratch WORKDIR /app COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ COPY --from=builder /app/bin/proxy-router /usr/bin/ -COPY --from=builder /usr/bin/dbus-launch /usr/bin/ +# COPY --from=builder /usr/bin/dbus-launch /usr/bin/ COPY --from=builder /app/.env /app/.env # COPY --from=busybox /bin /bin # COPY --from=busybox /lib /lib From d9ca7c5cda7faa63b08791a20469b2db2cb9f53a Mon Sep 17 00:00:00 2001 From: abs2023 Date: Mon, 14 Oct 2024 16:13:36 -0400 Subject: [PATCH 061/260] update dockerfile 3 --- proxy-router/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proxy-router/Dockerfile b/proxy-router/Dockerfile index 33a37410..6a25774a 100644 --- a/proxy-router/Dockerfile +++ b/proxy-router/Dockerfile @@ -14,7 +14,7 @@ WORKDIR /app COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ COPY --from=builder /app/bin/proxy-router /usr/bin/ # COPY --from=builder /usr/bin/dbus-launch /usr/bin/ -COPY --from=builder /app/.env /app/.env +# COPY --from=builder /app/.env /app/.env # COPY --from=busybox /bin /bin # COPY --from=busybox /lib /lib From bc405f1e76e0ea684aca18c34e690b85345c7488 Mon Sep 17 00:00:00 2001 From: shev Date: Mon, 7 Oct 2024 20:54:58 +0200 Subject: [PATCH 062/260] fix: update proxy to new contracts --- proxy-router/Makefile | 5 +- .../contracts/lumerintoken/LumerinToken.go | 98 +- .../contracts/marketplace/Marketplace.go | 946 ++++++++++--- .../contracts/modelregistry/ModelRegistry.go | 698 +++++++--- .../contracts/morpheustoken/MorpheusToken.go | 98 +- .../providerregistry/ProviderRegistry.go | 782 ++++++++--- .../contracts/sessionrouter/SessionRouter.go | 1186 +++++++++++++---- .../internal/blockchainapi/controller.go | 18 +- .../internal/blockchainapi/event_listener.go | 6 +- .../internal/blockchainapi/mappers.go | 14 +- proxy-router/internal/blockchainapi/rating.go | 14 +- .../internal/blockchainapi/rating_mock.go | 41 +- .../internal/blockchainapi/rating_test.go | 18 +- .../internal/blockchainapi/service.go | 22 +- .../repositories/registries/marketplace.go | 115 +- .../registries/marketplace_test.go | 18 +- .../repositories/registries/model_registry.go | 16 +- .../registries/provider_registry.go | 29 +- .../repositories/registries/session_router.go | 84 +- 19 files changed, 3118 insertions(+), 1090 deletions(-) diff --git a/proxy-router/Makefile b/proxy-router/Makefile index f70d34a5..e725c514 100644 --- a/proxy-router/Makefile +++ b/proxy-router/Makefile @@ -41,4 +41,7 @@ mocks: mockery reset-keychain: - go run cmd/main.go --reset-keychain \ No newline at end of file + go run cmd/main.go --reset-keychain + +update-bindings: + cd ../smart-contracts && yarn bindings-go && cp -r bindings/go/contracts/{diamond/facets/*,tokens/*,mock/tokens/*} ../proxy-router/internal/repositories/contracts/bindings diff --git a/proxy-router/contracts/lumerintoken/LumerinToken.go b/proxy-router/contracts/lumerintoken/LumerinToken.go index 25e5b9e5..22be7971 100644 --- a/proxy-router/contracts/lumerintoken/LumerinToken.go +++ b/proxy-router/contracts/lumerintoken/LumerinToken.go @@ -31,7 +31,7 @@ var ( // LumerinTokenMetaData contains all meta data concerning the LumerinToken contract. var LumerinTokenMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + ABI: "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", } // LumerinTokenABI is the input ABI used to generate the binding from. @@ -368,65 +368,107 @@ func (_LumerinToken *LumerinTokenCallerSession) TotalSupply() (*big.Int, error) // Approve is a paid mutator transaction binding the contract method 0x095ea7b3. // -// Solidity: function approve(address spender, uint256 value) returns(bool) -func (_LumerinToken *LumerinTokenTransactor) Approve(opts *bind.TransactOpts, spender common.Address, value *big.Int) (*types.Transaction, error) { - return _LumerinToken.contract.Transact(opts, "approve", spender, value) +// Solidity: function approve(address spender, uint256 amount) returns(bool) +func (_LumerinToken *LumerinTokenTransactor) Approve(opts *bind.TransactOpts, spender common.Address, amount *big.Int) (*types.Transaction, error) { + return _LumerinToken.contract.Transact(opts, "approve", spender, amount) } // Approve is a paid mutator transaction binding the contract method 0x095ea7b3. // -// Solidity: function approve(address spender, uint256 value) returns(bool) -func (_LumerinToken *LumerinTokenSession) Approve(spender common.Address, value *big.Int) (*types.Transaction, error) { - return _LumerinToken.Contract.Approve(&_LumerinToken.TransactOpts, spender, value) +// Solidity: function approve(address spender, uint256 amount) returns(bool) +func (_LumerinToken *LumerinTokenSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) { + return _LumerinToken.Contract.Approve(&_LumerinToken.TransactOpts, spender, amount) } // Approve is a paid mutator transaction binding the contract method 0x095ea7b3. // -// Solidity: function approve(address spender, uint256 value) returns(bool) -func (_LumerinToken *LumerinTokenTransactorSession) Approve(spender common.Address, value *big.Int) (*types.Transaction, error) { - return _LumerinToken.Contract.Approve(&_LumerinToken.TransactOpts, spender, value) +// Solidity: function approve(address spender, uint256 amount) returns(bool) +func (_LumerinToken *LumerinTokenTransactorSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) { + return _LumerinToken.Contract.Approve(&_LumerinToken.TransactOpts, spender, amount) +} + +// DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7. +// +// Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool) +func (_LumerinToken *LumerinTokenTransactor) DecreaseAllowance(opts *bind.TransactOpts, spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) { + return _LumerinToken.contract.Transact(opts, "decreaseAllowance", spender, subtractedValue) +} + +// DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7. +// +// Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool) +func (_LumerinToken *LumerinTokenSession) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) { + return _LumerinToken.Contract.DecreaseAllowance(&_LumerinToken.TransactOpts, spender, subtractedValue) +} + +// DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7. +// +// Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool) +func (_LumerinToken *LumerinTokenTransactorSession) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) { + return _LumerinToken.Contract.DecreaseAllowance(&_LumerinToken.TransactOpts, spender, subtractedValue) +} + +// IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351. +// +// Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool) +func (_LumerinToken *LumerinTokenTransactor) IncreaseAllowance(opts *bind.TransactOpts, spender common.Address, addedValue *big.Int) (*types.Transaction, error) { + return _LumerinToken.contract.Transact(opts, "increaseAllowance", spender, addedValue) +} + +// IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351. +// +// Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool) +func (_LumerinToken *LumerinTokenSession) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) { + return _LumerinToken.Contract.IncreaseAllowance(&_LumerinToken.TransactOpts, spender, addedValue) +} + +// IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351. +// +// Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool) +func (_LumerinToken *LumerinTokenTransactorSession) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) { + return _LumerinToken.Contract.IncreaseAllowance(&_LumerinToken.TransactOpts, spender, addedValue) } // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. // -// Solidity: function transfer(address to, uint256 value) returns(bool) -func (_LumerinToken *LumerinTokenTransactor) Transfer(opts *bind.TransactOpts, to common.Address, value *big.Int) (*types.Transaction, error) { - return _LumerinToken.contract.Transact(opts, "transfer", to, value) +// Solidity: function transfer(address to, uint256 amount) returns(bool) +func (_LumerinToken *LumerinTokenTransactor) Transfer(opts *bind.TransactOpts, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _LumerinToken.contract.Transact(opts, "transfer", to, amount) } // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. // -// Solidity: function transfer(address to, uint256 value) returns(bool) -func (_LumerinToken *LumerinTokenSession) Transfer(to common.Address, value *big.Int) (*types.Transaction, error) { - return _LumerinToken.Contract.Transfer(&_LumerinToken.TransactOpts, to, value) +// Solidity: function transfer(address to, uint256 amount) returns(bool) +func (_LumerinToken *LumerinTokenSession) Transfer(to common.Address, amount *big.Int) (*types.Transaction, error) { + return _LumerinToken.Contract.Transfer(&_LumerinToken.TransactOpts, to, amount) } // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. // -// Solidity: function transfer(address to, uint256 value) returns(bool) -func (_LumerinToken *LumerinTokenTransactorSession) Transfer(to common.Address, value *big.Int) (*types.Transaction, error) { - return _LumerinToken.Contract.Transfer(&_LumerinToken.TransactOpts, to, value) +// Solidity: function transfer(address to, uint256 amount) returns(bool) +func (_LumerinToken *LumerinTokenTransactorSession) Transfer(to common.Address, amount *big.Int) (*types.Transaction, error) { + return _LumerinToken.Contract.Transfer(&_LumerinToken.TransactOpts, to, amount) } // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. // -// Solidity: function transferFrom(address from, address to, uint256 value) returns(bool) -func (_LumerinToken *LumerinTokenTransactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, value *big.Int) (*types.Transaction, error) { - return _LumerinToken.contract.Transact(opts, "transferFrom", from, to, value) +// Solidity: function transferFrom(address from, address to, uint256 amount) returns(bool) +func (_LumerinToken *LumerinTokenTransactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _LumerinToken.contract.Transact(opts, "transferFrom", from, to, amount) } // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. // -// Solidity: function transferFrom(address from, address to, uint256 value) returns(bool) -func (_LumerinToken *LumerinTokenSession) TransferFrom(from common.Address, to common.Address, value *big.Int) (*types.Transaction, error) { - return _LumerinToken.Contract.TransferFrom(&_LumerinToken.TransactOpts, from, to, value) +// Solidity: function transferFrom(address from, address to, uint256 amount) returns(bool) +func (_LumerinToken *LumerinTokenSession) TransferFrom(from common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _LumerinToken.Contract.TransferFrom(&_LumerinToken.TransactOpts, from, to, amount) } // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. // -// Solidity: function transferFrom(address from, address to, uint256 value) returns(bool) -func (_LumerinToken *LumerinTokenTransactorSession) TransferFrom(from common.Address, to common.Address, value *big.Int) (*types.Transaction, error) { - return _LumerinToken.Contract.TransferFrom(&_LumerinToken.TransactOpts, from, to, value) +// Solidity: function transferFrom(address from, address to, uint256 amount) returns(bool) +func (_LumerinToken *LumerinTokenTransactorSession) TransferFrom(from common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _LumerinToken.Contract.TransferFrom(&_LumerinToken.TransactOpts, from, to, amount) } // LumerinTokenApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the LumerinToken contract. diff --git a/proxy-router/contracts/marketplace/Marketplace.go b/proxy-router/contracts/marketplace/Marketplace.go index 17f8ac49..3092fd9b 100644 --- a/proxy-router/contracts/marketplace/Marketplace.go +++ b/proxy-router/contracts/marketplace/Marketplace.go @@ -29,42 +29,41 @@ var ( _ = abi.ConvertType ) -// Bid is an auto generated low-level Go binding around an user-defined struct. -type Bid struct { +// IBidStorageBid is an auto generated low-level Go binding around an user-defined struct. +type IBidStorageBid struct { Provider common.Address - ModelAgentId [32]byte + ModelId [32]byte PricePerSecond *big.Int Nonce *big.Int CreatedAt *big.Int DeletedAt *big.Int } -// LibSDSD is an auto generated low-level Go binding around an user-defined struct. -type LibSDSD struct { - Mean int64 - SqSum int64 +// IModelStorageModel is an auto generated low-level Go binding around an user-defined struct. +type IModelStorageModel struct { + IpfsCID [32]byte + Fee *big.Int + Stake *big.Int + Owner common.Address + Name string + Tags []string + CreatedAt *big.Int + IsDeleted bool } -// ModelStats is an auto generated low-level Go binding around an user-defined struct. -type ModelStats struct { - TpsScaled1000 LibSDSD - TtftMs LibSDSD - TotalDuration LibSDSD - Count uint32 -} - -// ProviderModelStats is an auto generated low-level Go binding around an user-defined struct. -type ProviderModelStats struct { - TpsScaled1000 LibSDSD - TtftMs LibSDSD - TotalDuration uint32 - SuccessCount uint32 - TotalCount uint32 +// IProviderStorageProvider is an auto generated low-level Go binding around an user-defined struct. +type IProviderStorageProvider struct { + Endpoint string + Stake *big.Int + CreatedAt *big.Int + LimitPeriodEnd *big.Int + LimitPeriodEarned *big.Int + IsDeleted bool } // MarketplaceMetaData contains all meta data concerning the Marketplace contract. var MarketplaceMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[],\"name\":\"ActiveBidNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BidTaken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"KeyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"KeyNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ModelOrAgentNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_contractOwner\",\"type\":\"address\"}],\"name\":\"NotContractOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSenderOrOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PricePerSecondIsZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProviderNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroKey\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"modelAgentId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"BidDeleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"modelAgentId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"BidPosted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bidFee\",\"type\":\"uint256\"}],\"name\":\"FeeUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"bidFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bidId\",\"type\":\"bytes32\"}],\"name\":\"bidMap\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelAgentId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"pricePerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"deletedAt\",\"type\":\"uint128\"}],\"internalType\":\"structBid\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bidId\",\"type\":\"bytes32\"}],\"name\":\"deleteModelAgentBid\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelAgentId\",\"type\":\"bytes32\"}],\"name\":\"getActiveBidsByModelAgent\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelAgentId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"pricePerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"deletedAt\",\"type\":\"uint128\"}],\"internalType\":\"structBid[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"}],\"name\":\"getActiveBidsByProvider\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelAgentId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"pricePerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"deletedAt\",\"type\":\"uint128\"}],\"internalType\":\"structBid[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelAgentId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"offset\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"limit\",\"type\":\"uint8\"}],\"name\":\"getActiveBidsRatingByModelAgent\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelAgentId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"pricePerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"deletedAt\",\"type\":\"uint128\"}],\"internalType\":\"structBid[]\",\"name\":\"\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"int64\",\"name\":\"mean\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"sqSum\",\"type\":\"int64\"}],\"internalType\":\"structLibSD.SD\",\"name\":\"tpsScaled1000\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"mean\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"sqSum\",\"type\":\"int64\"}],\"internalType\":\"structLibSD.SD\",\"name\":\"ttftMs\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"totalDuration\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"successCount\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"totalCount\",\"type\":\"uint32\"}],\"internalType\":\"structProviderModelStats[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelAgentId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"offset\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"limit\",\"type\":\"uint8\"}],\"name\":\"getBidsByModelAgent\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelAgentId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"pricePerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"deletedAt\",\"type\":\"uint128\"}],\"internalType\":\"structBid[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"limit\",\"type\":\"uint8\"}],\"name\":\"getBidsByProvider\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelAgentId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"pricePerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"deletedAt\",\"type\":\"uint128\"}],\"internalType\":\"structBid[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelID\",\"type\":\"bytes32\"}],\"name\":\"getModelStats\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"int64\",\"name\":\"mean\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"sqSum\",\"type\":\"int64\"}],\"internalType\":\"structLibSD.SD\",\"name\":\"tpsScaled1000\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"mean\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"sqSum\",\"type\":\"int64\"}],\"internalType\":\"structLibSD.SD\",\"name\":\"ttftMs\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"mean\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"sqSum\",\"type\":\"int64\"}],\"internalType\":\"structLibSD.SD\",\"name\":\"totalDuration\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"count\",\"type\":\"uint32\"}],\"internalType\":\"structModelStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"providerAddr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"pricePerSecond\",\"type\":\"uint256\"}],\"name\":\"postModelBid\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"bidId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_bidFee\",\"type\":\"uint256\"}],\"name\":\"setBidFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + ABI: "[{\"inputs\":[],\"name\":\"ActiveBidNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BidTaken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ModelNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwnerOrProvider\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account_\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProviderNotFound\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"BidDeleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"BidPosted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bidFee\",\"type\":\"uint256\"}],\"name\":\"FeeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"storageSlot\",\"type\":\"bytes32\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BID_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DIAMOND_OWNABLE_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MARKETPLACE_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MODEL_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROVIDER_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token_\",\"type\":\"address\"}],\"name\":\"__Marketplace_init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bidId\",\"type\":\"bytes32\"}],\"name\":\"bids\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"pricePerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"deletedAt\",\"type\":\"uint128\"}],\"internalType\":\"structIBidStorage.Bid\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bidId_\",\"type\":\"bytes32\"}],\"name\":\"deleteModelBid\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBidFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"nonce_\",\"type\":\"uint256\"}],\"name\":\"getBidId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"}],\"name\":\"getModel\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"ipfsCID\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"isDeleted\",\"type\":\"bool\"}],\"internalType\":\"structIModelStorage.Model\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"}],\"name\":\"getProvider\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"endpoint\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"limitPeriodEnd\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"limitPeriodEarned\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isDeleted\",\"type\":\"bool\"}],\"internalType\":\"structIProviderStorage.Provider\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"}],\"name\":\"getProviderModelId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getToken\",\"outputs\":[{\"internalType\":\"contractIERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"modelActiveBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"modelBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"modelMinimumStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"models\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"pricePerSecond_\",\"type\":\"uint256\"}],\"name\":\"postModelBid\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"bidId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"providerActiveBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"providerBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"providerMinimumStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bidFee_\",\"type\":\"uint256\"}],\"name\":\"setBidFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", } // MarketplaceABI is the input ABI used to generate the binding from. @@ -213,12 +212,198 @@ func (_Marketplace *MarketplaceTransactorRaw) Transact(opts *bind.TransactOpts, return _Marketplace.Contract.contract.Transact(opts, method, params...) } -// BidFee is a free data retrieval call binding the contract method 0xe14a2115. +// BIDSTORAGESLOT is a free data retrieval call binding the contract method 0x4fa816f2. +// +// Solidity: function BID_STORAGE_SLOT() view returns(bytes32) +func (_Marketplace *MarketplaceCaller) BIDSTORAGESLOT(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _Marketplace.contract.Call(opts, &out, "BID_STORAGE_SLOT") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// BIDSTORAGESLOT is a free data retrieval call binding the contract method 0x4fa816f2. +// +// Solidity: function BID_STORAGE_SLOT() view returns(bytes32) +func (_Marketplace *MarketplaceSession) BIDSTORAGESLOT() ([32]byte, error) { + return _Marketplace.Contract.BIDSTORAGESLOT(&_Marketplace.CallOpts) +} + +// BIDSTORAGESLOT is a free data retrieval call binding the contract method 0x4fa816f2. +// +// Solidity: function BID_STORAGE_SLOT() view returns(bytes32) +func (_Marketplace *MarketplaceCallerSession) BIDSTORAGESLOT() ([32]byte, error) { + return _Marketplace.Contract.BIDSTORAGESLOT(&_Marketplace.CallOpts) +} + +// DIAMONDOWNABLESTORAGESLOT is a free data retrieval call binding the contract method 0x4ac3371e. +// +// Solidity: function DIAMOND_OWNABLE_STORAGE_SLOT() view returns(bytes32) +func (_Marketplace *MarketplaceCaller) DIAMONDOWNABLESTORAGESLOT(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _Marketplace.contract.Call(opts, &out, "DIAMOND_OWNABLE_STORAGE_SLOT") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// DIAMONDOWNABLESTORAGESLOT is a free data retrieval call binding the contract method 0x4ac3371e. +// +// Solidity: function DIAMOND_OWNABLE_STORAGE_SLOT() view returns(bytes32) +func (_Marketplace *MarketplaceSession) DIAMONDOWNABLESTORAGESLOT() ([32]byte, error) { + return _Marketplace.Contract.DIAMONDOWNABLESTORAGESLOT(&_Marketplace.CallOpts) +} + +// DIAMONDOWNABLESTORAGESLOT is a free data retrieval call binding the contract method 0x4ac3371e. +// +// Solidity: function DIAMOND_OWNABLE_STORAGE_SLOT() view returns(bytes32) +func (_Marketplace *MarketplaceCallerSession) DIAMONDOWNABLESTORAGESLOT() ([32]byte, error) { + return _Marketplace.Contract.DIAMONDOWNABLESTORAGESLOT(&_Marketplace.CallOpts) +} + +// MARKETPLACESTORAGESLOT is a free data retrieval call binding the contract method 0xb855c3b5. +// +// Solidity: function MARKETPLACE_STORAGE_SLOT() view returns(bytes32) +func (_Marketplace *MarketplaceCaller) MARKETPLACESTORAGESLOT(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _Marketplace.contract.Call(opts, &out, "MARKETPLACE_STORAGE_SLOT") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// MARKETPLACESTORAGESLOT is a free data retrieval call binding the contract method 0xb855c3b5. +// +// Solidity: function MARKETPLACE_STORAGE_SLOT() view returns(bytes32) +func (_Marketplace *MarketplaceSession) MARKETPLACESTORAGESLOT() ([32]byte, error) { + return _Marketplace.Contract.MARKETPLACESTORAGESLOT(&_Marketplace.CallOpts) +} + +// MARKETPLACESTORAGESLOT is a free data retrieval call binding the contract method 0xb855c3b5. +// +// Solidity: function MARKETPLACE_STORAGE_SLOT() view returns(bytes32) +func (_Marketplace *MarketplaceCallerSession) MARKETPLACESTORAGESLOT() ([32]byte, error) { + return _Marketplace.Contract.MARKETPLACESTORAGESLOT(&_Marketplace.CallOpts) +} + +// MODELSTORAGESLOT is a free data retrieval call binding the contract method 0xeda926f2. +// +// Solidity: function MODEL_STORAGE_SLOT() view returns(bytes32) +func (_Marketplace *MarketplaceCaller) MODELSTORAGESLOT(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _Marketplace.contract.Call(opts, &out, "MODEL_STORAGE_SLOT") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// MODELSTORAGESLOT is a free data retrieval call binding the contract method 0xeda926f2. +// +// Solidity: function MODEL_STORAGE_SLOT() view returns(bytes32) +func (_Marketplace *MarketplaceSession) MODELSTORAGESLOT() ([32]byte, error) { + return _Marketplace.Contract.MODELSTORAGESLOT(&_Marketplace.CallOpts) +} + +// MODELSTORAGESLOT is a free data retrieval call binding the contract method 0xeda926f2. +// +// Solidity: function MODEL_STORAGE_SLOT() view returns(bytes32) +func (_Marketplace *MarketplaceCallerSession) MODELSTORAGESLOT() ([32]byte, error) { + return _Marketplace.Contract.MODELSTORAGESLOT(&_Marketplace.CallOpts) +} + +// PROVIDERSTORAGESLOT is a free data retrieval call binding the contract method 0x490713b1. +// +// Solidity: function PROVIDER_STORAGE_SLOT() view returns(bytes32) +func (_Marketplace *MarketplaceCaller) PROVIDERSTORAGESLOT(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _Marketplace.contract.Call(opts, &out, "PROVIDER_STORAGE_SLOT") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// PROVIDERSTORAGESLOT is a free data retrieval call binding the contract method 0x490713b1. +// +// Solidity: function PROVIDER_STORAGE_SLOT() view returns(bytes32) +func (_Marketplace *MarketplaceSession) PROVIDERSTORAGESLOT() ([32]byte, error) { + return _Marketplace.Contract.PROVIDERSTORAGESLOT(&_Marketplace.CallOpts) +} + +// PROVIDERSTORAGESLOT is a free data retrieval call binding the contract method 0x490713b1. +// +// Solidity: function PROVIDER_STORAGE_SLOT() view returns(bytes32) +func (_Marketplace *MarketplaceCallerSession) PROVIDERSTORAGESLOT() ([32]byte, error) { + return _Marketplace.Contract.PROVIDERSTORAGESLOT(&_Marketplace.CallOpts) +} + +// Bids is a free data retrieval call binding the contract method 0x8f98eeda. +// +// Solidity: function bids(bytes32 bidId) view returns((address,bytes32,uint256,uint256,uint128,uint128)) +func (_Marketplace *MarketplaceCaller) Bids(opts *bind.CallOpts, bidId [32]byte) (IBidStorageBid, error) { + var out []interface{} + err := _Marketplace.contract.Call(opts, &out, "bids", bidId) + + if err != nil { + return *new(IBidStorageBid), err + } + + out0 := *abi.ConvertType(out[0], new(IBidStorageBid)).(*IBidStorageBid) + + return out0, err + +} + +// Bids is a free data retrieval call binding the contract method 0x8f98eeda. +// +// Solidity: function bids(bytes32 bidId) view returns((address,bytes32,uint256,uint256,uint128,uint128)) +func (_Marketplace *MarketplaceSession) Bids(bidId [32]byte) (IBidStorageBid, error) { + return _Marketplace.Contract.Bids(&_Marketplace.CallOpts, bidId) +} + +// Bids is a free data retrieval call binding the contract method 0x8f98eeda. +// +// Solidity: function bids(bytes32 bidId) view returns((address,bytes32,uint256,uint256,uint128,uint128)) +func (_Marketplace *MarketplaceCallerSession) Bids(bidId [32]byte) (IBidStorageBid, error) { + return _Marketplace.Contract.Bids(&_Marketplace.CallOpts, bidId) +} + +// GetBidFee is a free data retrieval call binding the contract method 0x8dbb4647. // -// Solidity: function bidFee() view returns(uint256) -func (_Marketplace *MarketplaceCaller) BidFee(opts *bind.CallOpts) (*big.Int, error) { +// Solidity: function getBidFee() view returns(uint256) +func (_Marketplace *MarketplaceCaller) GetBidFee(opts *bind.CallOpts) (*big.Int, error) { var out []interface{} - err := _Marketplace.contract.Call(opts, &out, "bidFee") + err := _Marketplace.contract.Call(opts, &out, "getBidFee") if err != nil { return *new(*big.Int), err @@ -230,325 +415,526 @@ func (_Marketplace *MarketplaceCaller) BidFee(opts *bind.CallOpts) (*big.Int, er } -// BidFee is a free data retrieval call binding the contract method 0xe14a2115. +// GetBidFee is a free data retrieval call binding the contract method 0x8dbb4647. // -// Solidity: function bidFee() view returns(uint256) -func (_Marketplace *MarketplaceSession) BidFee() (*big.Int, error) { - return _Marketplace.Contract.BidFee(&_Marketplace.CallOpts) +// Solidity: function getBidFee() view returns(uint256) +func (_Marketplace *MarketplaceSession) GetBidFee() (*big.Int, error) { + return _Marketplace.Contract.GetBidFee(&_Marketplace.CallOpts) } -// BidFee is a free data retrieval call binding the contract method 0xe14a2115. +// GetBidFee is a free data retrieval call binding the contract method 0x8dbb4647. // -// Solidity: function bidFee() view returns(uint256) -func (_Marketplace *MarketplaceCallerSession) BidFee() (*big.Int, error) { - return _Marketplace.Contract.BidFee(&_Marketplace.CallOpts) +// Solidity: function getBidFee() view returns(uint256) +func (_Marketplace *MarketplaceCallerSession) GetBidFee() (*big.Int, error) { + return _Marketplace.Contract.GetBidFee(&_Marketplace.CallOpts) } -// BidMap is a free data retrieval call binding the contract method 0xf141c9a3. +// GetBidId is a free data retrieval call binding the contract method 0x747ddd5b. // -// Solidity: function bidMap(bytes32 bidId) view returns((address,bytes32,uint256,uint256,uint128,uint128)) -func (_Marketplace *MarketplaceCaller) BidMap(opts *bind.CallOpts, bidId [32]byte) (Bid, error) { +// Solidity: function getBidId(address provider_, bytes32 modelId_, uint256 nonce_) pure returns(bytes32) +func (_Marketplace *MarketplaceCaller) GetBidId(opts *bind.CallOpts, provider_ common.Address, modelId_ [32]byte, nonce_ *big.Int) ([32]byte, error) { var out []interface{} - err := _Marketplace.contract.Call(opts, &out, "bidMap", bidId) + err := _Marketplace.contract.Call(opts, &out, "getBidId", provider_, modelId_, nonce_) if err != nil { - return *new(Bid), err + return *new([32]byte), err } - out0 := *abi.ConvertType(out[0], new(Bid)).(*Bid) + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) return out0, err } -// BidMap is a free data retrieval call binding the contract method 0xf141c9a3. +// GetBidId is a free data retrieval call binding the contract method 0x747ddd5b. // -// Solidity: function bidMap(bytes32 bidId) view returns((address,bytes32,uint256,uint256,uint128,uint128)) -func (_Marketplace *MarketplaceSession) BidMap(bidId [32]byte) (Bid, error) { - return _Marketplace.Contract.BidMap(&_Marketplace.CallOpts, bidId) +// Solidity: function getBidId(address provider_, bytes32 modelId_, uint256 nonce_) pure returns(bytes32) +func (_Marketplace *MarketplaceSession) GetBidId(provider_ common.Address, modelId_ [32]byte, nonce_ *big.Int) ([32]byte, error) { + return _Marketplace.Contract.GetBidId(&_Marketplace.CallOpts, provider_, modelId_, nonce_) } -// BidMap is a free data retrieval call binding the contract method 0xf141c9a3. +// GetBidId is a free data retrieval call binding the contract method 0x747ddd5b. // -// Solidity: function bidMap(bytes32 bidId) view returns((address,bytes32,uint256,uint256,uint128,uint128)) -func (_Marketplace *MarketplaceCallerSession) BidMap(bidId [32]byte) (Bid, error) { - return _Marketplace.Contract.BidMap(&_Marketplace.CallOpts, bidId) +// Solidity: function getBidId(address provider_, bytes32 modelId_, uint256 nonce_) pure returns(bytes32) +func (_Marketplace *MarketplaceCallerSession) GetBidId(provider_ common.Address, modelId_ [32]byte, nonce_ *big.Int) ([32]byte, error) { + return _Marketplace.Contract.GetBidId(&_Marketplace.CallOpts, provider_, modelId_, nonce_) } -// GetActiveBidsByModelAgent is a free data retrieval call binding the contract method 0x873d94d5. +// GetModel is a free data retrieval call binding the contract method 0x21e7c498. // -// Solidity: function getActiveBidsByModelAgent(bytes32 modelAgentId) view returns(bytes32[], (address,bytes32,uint256,uint256,uint128,uint128)[]) -func (_Marketplace *MarketplaceCaller) GetActiveBidsByModelAgent(opts *bind.CallOpts, modelAgentId [32]byte) ([][32]byte, []Bid, error) { +// Solidity: function getModel(bytes32 modelId) view returns((bytes32,uint256,uint256,address,string,string[],uint128,bool)) +func (_Marketplace *MarketplaceCaller) GetModel(opts *bind.CallOpts, modelId [32]byte) (IModelStorageModel, error) { var out []interface{} - err := _Marketplace.contract.Call(opts, &out, "getActiveBidsByModelAgent", modelAgentId) + err := _Marketplace.contract.Call(opts, &out, "getModel", modelId) if err != nil { - return *new([][32]byte), *new([]Bid), err + return *new(IModelStorageModel), err } - out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) - out1 := *abi.ConvertType(out[1], new([]Bid)).(*[]Bid) + out0 := *abi.ConvertType(out[0], new(IModelStorageModel)).(*IModelStorageModel) - return out0, out1, err + return out0, err } -// GetActiveBidsByModelAgent is a free data retrieval call binding the contract method 0x873d94d5. +// GetModel is a free data retrieval call binding the contract method 0x21e7c498. // -// Solidity: function getActiveBidsByModelAgent(bytes32 modelAgentId) view returns(bytes32[], (address,bytes32,uint256,uint256,uint128,uint128)[]) -func (_Marketplace *MarketplaceSession) GetActiveBidsByModelAgent(modelAgentId [32]byte) ([][32]byte, []Bid, error) { - return _Marketplace.Contract.GetActiveBidsByModelAgent(&_Marketplace.CallOpts, modelAgentId) +// Solidity: function getModel(bytes32 modelId) view returns((bytes32,uint256,uint256,address,string,string[],uint128,bool)) +func (_Marketplace *MarketplaceSession) GetModel(modelId [32]byte) (IModelStorageModel, error) { + return _Marketplace.Contract.GetModel(&_Marketplace.CallOpts, modelId) } -// GetActiveBidsByModelAgent is a free data retrieval call binding the contract method 0x873d94d5. +// GetModel is a free data retrieval call binding the contract method 0x21e7c498. // -// Solidity: function getActiveBidsByModelAgent(bytes32 modelAgentId) view returns(bytes32[], (address,bytes32,uint256,uint256,uint128,uint128)[]) -func (_Marketplace *MarketplaceCallerSession) GetActiveBidsByModelAgent(modelAgentId [32]byte) ([][32]byte, []Bid, error) { - return _Marketplace.Contract.GetActiveBidsByModelAgent(&_Marketplace.CallOpts, modelAgentId) +// Solidity: function getModel(bytes32 modelId) view returns((bytes32,uint256,uint256,address,string,string[],uint128,bool)) +func (_Marketplace *MarketplaceCallerSession) GetModel(modelId [32]byte) (IModelStorageModel, error) { + return _Marketplace.Contract.GetModel(&_Marketplace.CallOpts, modelId) } -// GetActiveBidsByProvider is a free data retrieval call binding the contract method 0x9fdaffd0. +// GetProvider is a free data retrieval call binding the contract method 0x55f21eb7. // -// Solidity: function getActiveBidsByProvider(address provider) view returns(bytes32[], (address,bytes32,uint256,uint256,uint128,uint128)[]) -func (_Marketplace *MarketplaceCaller) GetActiveBidsByProvider(opts *bind.CallOpts, provider common.Address) ([][32]byte, []Bid, error) { +// Solidity: function getProvider(address provider) view returns((string,uint256,uint128,uint128,uint256,bool)) +func (_Marketplace *MarketplaceCaller) GetProvider(opts *bind.CallOpts, provider common.Address) (IProviderStorageProvider, error) { var out []interface{} - err := _Marketplace.contract.Call(opts, &out, "getActiveBidsByProvider", provider) + err := _Marketplace.contract.Call(opts, &out, "getProvider", provider) if err != nil { - return *new([][32]byte), *new([]Bid), err + return *new(IProviderStorageProvider), err + } + + out0 := *abi.ConvertType(out[0], new(IProviderStorageProvider)).(*IProviderStorageProvider) + + return out0, err + +} + +// GetProvider is a free data retrieval call binding the contract method 0x55f21eb7. +// +// Solidity: function getProvider(address provider) view returns((string,uint256,uint128,uint128,uint256,bool)) +func (_Marketplace *MarketplaceSession) GetProvider(provider common.Address) (IProviderStorageProvider, error) { + return _Marketplace.Contract.GetProvider(&_Marketplace.CallOpts, provider) +} + +// GetProvider is a free data retrieval call binding the contract method 0x55f21eb7. +// +// Solidity: function getProvider(address provider) view returns((string,uint256,uint128,uint128,uint256,bool)) +func (_Marketplace *MarketplaceCallerSession) GetProvider(provider common.Address) (IProviderStorageProvider, error) { + return _Marketplace.Contract.GetProvider(&_Marketplace.CallOpts, provider) +} + +// GetProviderModelId is a free data retrieval call binding the contract method 0x1cc9de8c. +// +// Solidity: function getProviderModelId(address provider_, bytes32 modelId_) pure returns(bytes32) +func (_Marketplace *MarketplaceCaller) GetProviderModelId(opts *bind.CallOpts, provider_ common.Address, modelId_ [32]byte) ([32]byte, error) { + var out []interface{} + err := _Marketplace.contract.Call(opts, &out, "getProviderModelId", provider_, modelId_) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// GetProviderModelId is a free data retrieval call binding the contract method 0x1cc9de8c. +// +// Solidity: function getProviderModelId(address provider_, bytes32 modelId_) pure returns(bytes32) +func (_Marketplace *MarketplaceSession) GetProviderModelId(provider_ common.Address, modelId_ [32]byte) ([32]byte, error) { + return _Marketplace.Contract.GetProviderModelId(&_Marketplace.CallOpts, provider_, modelId_) +} + +// GetProviderModelId is a free data retrieval call binding the contract method 0x1cc9de8c. +// +// Solidity: function getProviderModelId(address provider_, bytes32 modelId_) pure returns(bytes32) +func (_Marketplace *MarketplaceCallerSession) GetProviderModelId(provider_ common.Address, modelId_ [32]byte) ([32]byte, error) { + return _Marketplace.Contract.GetProviderModelId(&_Marketplace.CallOpts, provider_, modelId_) +} + +// GetToken is a free data retrieval call binding the contract method 0x21df0da7. +// +// Solidity: function getToken() view returns(address) +func (_Marketplace *MarketplaceCaller) GetToken(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _Marketplace.contract.Call(opts, &out, "getToken") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// GetToken is a free data retrieval call binding the contract method 0x21df0da7. +// +// Solidity: function getToken() view returns(address) +func (_Marketplace *MarketplaceSession) GetToken() (common.Address, error) { + return _Marketplace.Contract.GetToken(&_Marketplace.CallOpts) +} + +// GetToken is a free data retrieval call binding the contract method 0x21df0da7. +// +// Solidity: function getToken() view returns(address) +func (_Marketplace *MarketplaceCallerSession) GetToken() (common.Address, error) { + return _Marketplace.Contract.GetToken(&_Marketplace.CallOpts) +} + +// ModelActiveBids is a free data retrieval call binding the contract method 0x3fd8e5e3. +// +// Solidity: function modelActiveBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_Marketplace *MarketplaceCaller) ModelActiveBids(opts *bind.CallOpts, modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + var out []interface{} + err := _Marketplace.contract.Call(opts, &out, "modelActiveBids", modelId_, offset_, limit_) + + if err != nil { + return *new([][32]byte), err } out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) - out1 := *abi.ConvertType(out[1], new([]Bid)).(*[]Bid) - return out0, out1, err + return out0, err } -// GetActiveBidsByProvider is a free data retrieval call binding the contract method 0x9fdaffd0. +// ModelActiveBids is a free data retrieval call binding the contract method 0x3fd8e5e3. // -// Solidity: function getActiveBidsByProvider(address provider) view returns(bytes32[], (address,bytes32,uint256,uint256,uint128,uint128)[]) -func (_Marketplace *MarketplaceSession) GetActiveBidsByProvider(provider common.Address) ([][32]byte, []Bid, error) { - return _Marketplace.Contract.GetActiveBidsByProvider(&_Marketplace.CallOpts, provider) +// Solidity: function modelActiveBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_Marketplace *MarketplaceSession) ModelActiveBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _Marketplace.Contract.ModelActiveBids(&_Marketplace.CallOpts, modelId_, offset_, limit_) } -// GetActiveBidsByProvider is a free data retrieval call binding the contract method 0x9fdaffd0. +// ModelActiveBids is a free data retrieval call binding the contract method 0x3fd8e5e3. // -// Solidity: function getActiveBidsByProvider(address provider) view returns(bytes32[], (address,bytes32,uint256,uint256,uint128,uint128)[]) -func (_Marketplace *MarketplaceCallerSession) GetActiveBidsByProvider(provider common.Address) ([][32]byte, []Bid, error) { - return _Marketplace.Contract.GetActiveBidsByProvider(&_Marketplace.CallOpts, provider) +// Solidity: function modelActiveBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_Marketplace *MarketplaceCallerSession) ModelActiveBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _Marketplace.Contract.ModelActiveBids(&_Marketplace.CallOpts, modelId_, offset_, limit_) } -// GetActiveBidsRatingByModelAgent is a free data retrieval call binding the contract method 0xa69a4dd4. +// ModelBids is a free data retrieval call binding the contract method 0x5954d1b3. // -// Solidity: function getActiveBidsRatingByModelAgent(bytes32 modelAgentId, uint256 offset, uint8 limit) view returns(bytes32[], (address,bytes32,uint256,uint256,uint128,uint128)[], ((int64,int64),(int64,int64),uint32,uint32,uint32)[]) -func (_Marketplace *MarketplaceCaller) GetActiveBidsRatingByModelAgent(opts *bind.CallOpts, modelAgentId [32]byte, offset *big.Int, limit uint8) ([][32]byte, []Bid, []ProviderModelStats, error) { +// Solidity: function modelBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_Marketplace *MarketplaceCaller) ModelBids(opts *bind.CallOpts, modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { var out []interface{} - err := _Marketplace.contract.Call(opts, &out, "getActiveBidsRatingByModelAgent", modelAgentId, offset, limit) + err := _Marketplace.contract.Call(opts, &out, "modelBids", modelId_, offset_, limit_) if err != nil { - return *new([][32]byte), *new([]Bid), *new([]ProviderModelStats), err + return *new([][32]byte), err } out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) - out1 := *abi.ConvertType(out[1], new([]Bid)).(*[]Bid) - out2 := *abi.ConvertType(out[2], new([]ProviderModelStats)).(*[]ProviderModelStats) - return out0, out1, out2, err + return out0, err } -// GetActiveBidsRatingByModelAgent is a free data retrieval call binding the contract method 0xa69a4dd4. +// ModelBids is a free data retrieval call binding the contract method 0x5954d1b3. // -// Solidity: function getActiveBidsRatingByModelAgent(bytes32 modelAgentId, uint256 offset, uint8 limit) view returns(bytes32[], (address,bytes32,uint256,uint256,uint128,uint128)[], ((int64,int64),(int64,int64),uint32,uint32,uint32)[]) -func (_Marketplace *MarketplaceSession) GetActiveBidsRatingByModelAgent(modelAgentId [32]byte, offset *big.Int, limit uint8) ([][32]byte, []Bid, []ProviderModelStats, error) { - return _Marketplace.Contract.GetActiveBidsRatingByModelAgent(&_Marketplace.CallOpts, modelAgentId, offset, limit) +// Solidity: function modelBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_Marketplace *MarketplaceSession) ModelBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _Marketplace.Contract.ModelBids(&_Marketplace.CallOpts, modelId_, offset_, limit_) } -// GetActiveBidsRatingByModelAgent is a free data retrieval call binding the contract method 0xa69a4dd4. +// ModelBids is a free data retrieval call binding the contract method 0x5954d1b3. // -// Solidity: function getActiveBidsRatingByModelAgent(bytes32 modelAgentId, uint256 offset, uint8 limit) view returns(bytes32[], (address,bytes32,uint256,uint256,uint128,uint128)[], ((int64,int64),(int64,int64),uint32,uint32,uint32)[]) -func (_Marketplace *MarketplaceCallerSession) GetActiveBidsRatingByModelAgent(modelAgentId [32]byte, offset *big.Int, limit uint8) ([][32]byte, []Bid, []ProviderModelStats, error) { - return _Marketplace.Contract.GetActiveBidsRatingByModelAgent(&_Marketplace.CallOpts, modelAgentId, offset, limit) +// Solidity: function modelBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_Marketplace *MarketplaceCallerSession) ModelBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _Marketplace.Contract.ModelBids(&_Marketplace.CallOpts, modelId_, offset_, limit_) } -// GetBidsByModelAgent is a free data retrieval call binding the contract method 0xa87665ec. +// ModelMinimumStake is a free data retrieval call binding the contract method 0xc4288ed4. // -// Solidity: function getBidsByModelAgent(bytes32 modelAgentId, uint256 offset, uint8 limit) view returns(bytes32[], (address,bytes32,uint256,uint256,uint128,uint128)[]) -func (_Marketplace *MarketplaceCaller) GetBidsByModelAgent(opts *bind.CallOpts, modelAgentId [32]byte, offset *big.Int, limit uint8) ([][32]byte, []Bid, error) { +// Solidity: function modelMinimumStake() view returns(uint256) +func (_Marketplace *MarketplaceCaller) ModelMinimumStake(opts *bind.CallOpts) (*big.Int, error) { var out []interface{} - err := _Marketplace.contract.Call(opts, &out, "getBidsByModelAgent", modelAgentId, offset, limit) + err := _Marketplace.contract.Call(opts, &out, "modelMinimumStake") if err != nil { - return *new([][32]byte), *new([]Bid), err + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// ModelMinimumStake is a free data retrieval call binding the contract method 0xc4288ed4. +// +// Solidity: function modelMinimumStake() view returns(uint256) +func (_Marketplace *MarketplaceSession) ModelMinimumStake() (*big.Int, error) { + return _Marketplace.Contract.ModelMinimumStake(&_Marketplace.CallOpts) +} + +// ModelMinimumStake is a free data retrieval call binding the contract method 0xc4288ed4. +// +// Solidity: function modelMinimumStake() view returns(uint256) +func (_Marketplace *MarketplaceCallerSession) ModelMinimumStake() (*big.Int, error) { + return _Marketplace.Contract.ModelMinimumStake(&_Marketplace.CallOpts) +} + +// Models is a free data retrieval call binding the contract method 0x6a030ca9. +// +// Solidity: function models(uint256 index) view returns(bytes32) +func (_Marketplace *MarketplaceCaller) Models(opts *bind.CallOpts, index *big.Int) ([32]byte, error) { + var out []interface{} + err := _Marketplace.contract.Call(opts, &out, "models", index) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// Models is a free data retrieval call binding the contract method 0x6a030ca9. +// +// Solidity: function models(uint256 index) view returns(bytes32) +func (_Marketplace *MarketplaceSession) Models(index *big.Int) ([32]byte, error) { + return _Marketplace.Contract.Models(&_Marketplace.CallOpts, index) +} + +// Models is a free data retrieval call binding the contract method 0x6a030ca9. +// +// Solidity: function models(uint256 index) view returns(bytes32) +func (_Marketplace *MarketplaceCallerSession) Models(index *big.Int) ([32]byte, error) { + return _Marketplace.Contract.Models(&_Marketplace.CallOpts, index) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_Marketplace *MarketplaceCaller) Owner(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _Marketplace.contract.Call(opts, &out, "owner") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_Marketplace *MarketplaceSession) Owner() (common.Address, error) { + return _Marketplace.Contract.Owner(&_Marketplace.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_Marketplace *MarketplaceCallerSession) Owner() (common.Address, error) { + return _Marketplace.Contract.Owner(&_Marketplace.CallOpts) +} + +// ProviderActiveBids is a free data retrieval call binding the contract method 0x6dd7d31c. +// +// Solidity: function providerActiveBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_Marketplace *MarketplaceCaller) ProviderActiveBids(opts *bind.CallOpts, provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + var out []interface{} + err := _Marketplace.contract.Call(opts, &out, "providerActiveBids", provider_, offset_, limit_) + + if err != nil { + return *new([][32]byte), err } out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) - out1 := *abi.ConvertType(out[1], new([]Bid)).(*[]Bid) - return out0, out1, err + return out0, err } -// GetBidsByModelAgent is a free data retrieval call binding the contract method 0xa87665ec. +// ProviderActiveBids is a free data retrieval call binding the contract method 0x6dd7d31c. // -// Solidity: function getBidsByModelAgent(bytes32 modelAgentId, uint256 offset, uint8 limit) view returns(bytes32[], (address,bytes32,uint256,uint256,uint128,uint128)[]) -func (_Marketplace *MarketplaceSession) GetBidsByModelAgent(modelAgentId [32]byte, offset *big.Int, limit uint8) ([][32]byte, []Bid, error) { - return _Marketplace.Contract.GetBidsByModelAgent(&_Marketplace.CallOpts, modelAgentId, offset, limit) +// Solidity: function providerActiveBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_Marketplace *MarketplaceSession) ProviderActiveBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _Marketplace.Contract.ProviderActiveBids(&_Marketplace.CallOpts, provider_, offset_, limit_) } -// GetBidsByModelAgent is a free data retrieval call binding the contract method 0xa87665ec. +// ProviderActiveBids is a free data retrieval call binding the contract method 0x6dd7d31c. // -// Solidity: function getBidsByModelAgent(bytes32 modelAgentId, uint256 offset, uint8 limit) view returns(bytes32[], (address,bytes32,uint256,uint256,uint128,uint128)[]) -func (_Marketplace *MarketplaceCallerSession) GetBidsByModelAgent(modelAgentId [32]byte, offset *big.Int, limit uint8) ([][32]byte, []Bid, error) { - return _Marketplace.Contract.GetBidsByModelAgent(&_Marketplace.CallOpts, modelAgentId, offset, limit) +// Solidity: function providerActiveBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_Marketplace *MarketplaceCallerSession) ProviderActiveBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _Marketplace.Contract.ProviderActiveBids(&_Marketplace.CallOpts, provider_, offset_, limit_) } -// GetBidsByProvider is a free data retrieval call binding the contract method 0x2f817685. +// ProviderBids is a free data retrieval call binding the contract method 0x22fbda9a. // -// Solidity: function getBidsByProvider(address provider, uint256 offset, uint8 limit) view returns(bytes32[], (address,bytes32,uint256,uint256,uint128,uint128)[]) -func (_Marketplace *MarketplaceCaller) GetBidsByProvider(opts *bind.CallOpts, provider common.Address, offset *big.Int, limit uint8) ([][32]byte, []Bid, error) { +// Solidity: function providerBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_Marketplace *MarketplaceCaller) ProviderBids(opts *bind.CallOpts, provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { var out []interface{} - err := _Marketplace.contract.Call(opts, &out, "getBidsByProvider", provider, offset, limit) + err := _Marketplace.contract.Call(opts, &out, "providerBids", provider_, offset_, limit_) if err != nil { - return *new([][32]byte), *new([]Bid), err + return *new([][32]byte), err } out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) - out1 := *abi.ConvertType(out[1], new([]Bid)).(*[]Bid) - return out0, out1, err + return out0, err } -// GetBidsByProvider is a free data retrieval call binding the contract method 0x2f817685. +// ProviderBids is a free data retrieval call binding the contract method 0x22fbda9a. // -// Solidity: function getBidsByProvider(address provider, uint256 offset, uint8 limit) view returns(bytes32[], (address,bytes32,uint256,uint256,uint128,uint128)[]) -func (_Marketplace *MarketplaceSession) GetBidsByProvider(provider common.Address, offset *big.Int, limit uint8) ([][32]byte, []Bid, error) { - return _Marketplace.Contract.GetBidsByProvider(&_Marketplace.CallOpts, provider, offset, limit) +// Solidity: function providerBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_Marketplace *MarketplaceSession) ProviderBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _Marketplace.Contract.ProviderBids(&_Marketplace.CallOpts, provider_, offset_, limit_) } -// GetBidsByProvider is a free data retrieval call binding the contract method 0x2f817685. +// ProviderBids is a free data retrieval call binding the contract method 0x22fbda9a. // -// Solidity: function getBidsByProvider(address provider, uint256 offset, uint8 limit) view returns(bytes32[], (address,bytes32,uint256,uint256,uint128,uint128)[]) -func (_Marketplace *MarketplaceCallerSession) GetBidsByProvider(provider common.Address, offset *big.Int, limit uint8) ([][32]byte, []Bid, error) { - return _Marketplace.Contract.GetBidsByProvider(&_Marketplace.CallOpts, provider, offset, limit) +// Solidity: function providerBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_Marketplace *MarketplaceCallerSession) ProviderBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _Marketplace.Contract.ProviderBids(&_Marketplace.CallOpts, provider_, offset_, limit_) } -// GetModelStats is a free data retrieval call binding the contract method 0xce535723. +// ProviderMinimumStake is a free data retrieval call binding the contract method 0x9476c58e. // -// Solidity: function getModelStats(bytes32 modelID) view returns(((int64,int64),(int64,int64),(int64,int64),uint32)) -func (_Marketplace *MarketplaceCaller) GetModelStats(opts *bind.CallOpts, modelID [32]byte) (ModelStats, error) { +// Solidity: function providerMinimumStake() view returns(uint256) +func (_Marketplace *MarketplaceCaller) ProviderMinimumStake(opts *bind.CallOpts) (*big.Int, error) { var out []interface{} - err := _Marketplace.contract.Call(opts, &out, "getModelStats", modelID) + err := _Marketplace.contract.Call(opts, &out, "providerMinimumStake") if err != nil { - return *new(ModelStats), err + return *new(*big.Int), err } - out0 := *abi.ConvertType(out[0], new(ModelStats)).(*ModelStats) + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) return out0, err } -// GetModelStats is a free data retrieval call binding the contract method 0xce535723. +// ProviderMinimumStake is a free data retrieval call binding the contract method 0x9476c58e. +// +// Solidity: function providerMinimumStake() view returns(uint256) +func (_Marketplace *MarketplaceSession) ProviderMinimumStake() (*big.Int, error) { + return _Marketplace.Contract.ProviderMinimumStake(&_Marketplace.CallOpts) +} + +// ProviderMinimumStake is a free data retrieval call binding the contract method 0x9476c58e. // -// Solidity: function getModelStats(bytes32 modelID) view returns(((int64,int64),(int64,int64),(int64,int64),uint32)) -func (_Marketplace *MarketplaceSession) GetModelStats(modelID [32]byte) (ModelStats, error) { - return _Marketplace.Contract.GetModelStats(&_Marketplace.CallOpts, modelID) +// Solidity: function providerMinimumStake() view returns(uint256) +func (_Marketplace *MarketplaceCallerSession) ProviderMinimumStake() (*big.Int, error) { + return _Marketplace.Contract.ProviderMinimumStake(&_Marketplace.CallOpts) } -// GetModelStats is a free data retrieval call binding the contract method 0xce535723. +// MarketplaceInit is a paid mutator transaction binding the contract method 0xf6ec33fe. // -// Solidity: function getModelStats(bytes32 modelID) view returns(((int64,int64),(int64,int64),(int64,int64),uint32)) -func (_Marketplace *MarketplaceCallerSession) GetModelStats(modelID [32]byte) (ModelStats, error) { - return _Marketplace.Contract.GetModelStats(&_Marketplace.CallOpts, modelID) +// Solidity: function __Marketplace_init(address token_) returns() +func (_Marketplace *MarketplaceTransactor) MarketplaceInit(opts *bind.TransactOpts, token_ common.Address) (*types.Transaction, error) { + return _Marketplace.contract.Transact(opts, "__Marketplace_init", token_) } -// DeleteModelAgentBid is a paid mutator transaction binding the contract method 0x42856b75. +// MarketplaceInit is a paid mutator transaction binding the contract method 0xf6ec33fe. // -// Solidity: function deleteModelAgentBid(bytes32 bidId) returns() -func (_Marketplace *MarketplaceTransactor) DeleteModelAgentBid(opts *bind.TransactOpts, bidId [32]byte) (*types.Transaction, error) { - return _Marketplace.contract.Transact(opts, "deleteModelAgentBid", bidId) +// Solidity: function __Marketplace_init(address token_) returns() +func (_Marketplace *MarketplaceSession) MarketplaceInit(token_ common.Address) (*types.Transaction, error) { + return _Marketplace.Contract.MarketplaceInit(&_Marketplace.TransactOpts, token_) } -// DeleteModelAgentBid is a paid mutator transaction binding the contract method 0x42856b75. +// MarketplaceInit is a paid mutator transaction binding the contract method 0xf6ec33fe. // -// Solidity: function deleteModelAgentBid(bytes32 bidId) returns() -func (_Marketplace *MarketplaceSession) DeleteModelAgentBid(bidId [32]byte) (*types.Transaction, error) { - return _Marketplace.Contract.DeleteModelAgentBid(&_Marketplace.TransactOpts, bidId) +// Solidity: function __Marketplace_init(address token_) returns() +func (_Marketplace *MarketplaceTransactorSession) MarketplaceInit(token_ common.Address) (*types.Transaction, error) { + return _Marketplace.Contract.MarketplaceInit(&_Marketplace.TransactOpts, token_) } -// DeleteModelAgentBid is a paid mutator transaction binding the contract method 0x42856b75. +// DeleteModelBid is a paid mutator transaction binding the contract method 0x8913dcaa. // -// Solidity: function deleteModelAgentBid(bytes32 bidId) returns() -func (_Marketplace *MarketplaceTransactorSession) DeleteModelAgentBid(bidId [32]byte) (*types.Transaction, error) { - return _Marketplace.Contract.DeleteModelAgentBid(&_Marketplace.TransactOpts, bidId) +// Solidity: function deleteModelBid(bytes32 bidId_) returns() +func (_Marketplace *MarketplaceTransactor) DeleteModelBid(opts *bind.TransactOpts, bidId_ [32]byte) (*types.Transaction, error) { + return _Marketplace.contract.Transact(opts, "deleteModelBid", bidId_) +} + +// DeleteModelBid is a paid mutator transaction binding the contract method 0x8913dcaa. +// +// Solidity: function deleteModelBid(bytes32 bidId_) returns() +func (_Marketplace *MarketplaceSession) DeleteModelBid(bidId_ [32]byte) (*types.Transaction, error) { + return _Marketplace.Contract.DeleteModelBid(&_Marketplace.TransactOpts, bidId_) +} + +// DeleteModelBid is a paid mutator transaction binding the contract method 0x8913dcaa. +// +// Solidity: function deleteModelBid(bytes32 bidId_) returns() +func (_Marketplace *MarketplaceTransactorSession) DeleteModelBid(bidId_ [32]byte) (*types.Transaction, error) { + return _Marketplace.Contract.DeleteModelBid(&_Marketplace.TransactOpts, bidId_) } // PostModelBid is a paid mutator transaction binding the contract method 0xede96bb1. // -// Solidity: function postModelBid(address providerAddr, bytes32 modelId, uint256 pricePerSecond) returns(bytes32 bidId) -func (_Marketplace *MarketplaceTransactor) PostModelBid(opts *bind.TransactOpts, providerAddr common.Address, modelId [32]byte, pricePerSecond *big.Int) (*types.Transaction, error) { - return _Marketplace.contract.Transact(opts, "postModelBid", providerAddr, modelId, pricePerSecond) +// Solidity: function postModelBid(address provider_, bytes32 modelId_, uint256 pricePerSecond_) returns(bytes32 bidId) +func (_Marketplace *MarketplaceTransactor) PostModelBid(opts *bind.TransactOpts, provider_ common.Address, modelId_ [32]byte, pricePerSecond_ *big.Int) (*types.Transaction, error) { + return _Marketplace.contract.Transact(opts, "postModelBid", provider_, modelId_, pricePerSecond_) } // PostModelBid is a paid mutator transaction binding the contract method 0xede96bb1. // -// Solidity: function postModelBid(address providerAddr, bytes32 modelId, uint256 pricePerSecond) returns(bytes32 bidId) -func (_Marketplace *MarketplaceSession) PostModelBid(providerAddr common.Address, modelId [32]byte, pricePerSecond *big.Int) (*types.Transaction, error) { - return _Marketplace.Contract.PostModelBid(&_Marketplace.TransactOpts, providerAddr, modelId, pricePerSecond) +// Solidity: function postModelBid(address provider_, bytes32 modelId_, uint256 pricePerSecond_) returns(bytes32 bidId) +func (_Marketplace *MarketplaceSession) PostModelBid(provider_ common.Address, modelId_ [32]byte, pricePerSecond_ *big.Int) (*types.Transaction, error) { + return _Marketplace.Contract.PostModelBid(&_Marketplace.TransactOpts, provider_, modelId_, pricePerSecond_) } // PostModelBid is a paid mutator transaction binding the contract method 0xede96bb1. // -// Solidity: function postModelBid(address providerAddr, bytes32 modelId, uint256 pricePerSecond) returns(bytes32 bidId) -func (_Marketplace *MarketplaceTransactorSession) PostModelBid(providerAddr common.Address, modelId [32]byte, pricePerSecond *big.Int) (*types.Transaction, error) { - return _Marketplace.Contract.PostModelBid(&_Marketplace.TransactOpts, providerAddr, modelId, pricePerSecond) +// Solidity: function postModelBid(address provider_, bytes32 modelId_, uint256 pricePerSecond_) returns(bytes32 bidId) +func (_Marketplace *MarketplaceTransactorSession) PostModelBid(provider_ common.Address, modelId_ [32]byte, pricePerSecond_ *big.Int) (*types.Transaction, error) { + return _Marketplace.Contract.PostModelBid(&_Marketplace.TransactOpts, provider_, modelId_, pricePerSecond_) } // SetBidFee is a paid mutator transaction binding the contract method 0x013869bf. // -// Solidity: function setBidFee(uint256 _bidFee) returns() -func (_Marketplace *MarketplaceTransactor) SetBidFee(opts *bind.TransactOpts, _bidFee *big.Int) (*types.Transaction, error) { - return _Marketplace.contract.Transact(opts, "setBidFee", _bidFee) +// Solidity: function setBidFee(uint256 bidFee_) returns() +func (_Marketplace *MarketplaceTransactor) SetBidFee(opts *bind.TransactOpts, bidFee_ *big.Int) (*types.Transaction, error) { + return _Marketplace.contract.Transact(opts, "setBidFee", bidFee_) } // SetBidFee is a paid mutator transaction binding the contract method 0x013869bf. // -// Solidity: function setBidFee(uint256 _bidFee) returns() -func (_Marketplace *MarketplaceSession) SetBidFee(_bidFee *big.Int) (*types.Transaction, error) { - return _Marketplace.Contract.SetBidFee(&_Marketplace.TransactOpts, _bidFee) +// Solidity: function setBidFee(uint256 bidFee_) returns() +func (_Marketplace *MarketplaceSession) SetBidFee(bidFee_ *big.Int) (*types.Transaction, error) { + return _Marketplace.Contract.SetBidFee(&_Marketplace.TransactOpts, bidFee_) } // SetBidFee is a paid mutator transaction binding the contract method 0x013869bf. // -// Solidity: function setBidFee(uint256 _bidFee) returns() -func (_Marketplace *MarketplaceTransactorSession) SetBidFee(_bidFee *big.Int) (*types.Transaction, error) { - return _Marketplace.Contract.SetBidFee(&_Marketplace.TransactOpts, _bidFee) +// Solidity: function setBidFee(uint256 bidFee_) returns() +func (_Marketplace *MarketplaceTransactorSession) SetBidFee(bidFee_ *big.Int) (*types.Transaction, error) { + return _Marketplace.Contract.SetBidFee(&_Marketplace.TransactOpts, bidFee_) } // Withdraw is a paid mutator transaction binding the contract method 0xf3fef3a3. // -// Solidity: function withdraw(address addr, uint256 amount) returns() -func (_Marketplace *MarketplaceTransactor) Withdraw(opts *bind.TransactOpts, addr common.Address, amount *big.Int) (*types.Transaction, error) { - return _Marketplace.contract.Transact(opts, "withdraw", addr, amount) +// Solidity: function withdraw(address recipient_, uint256 amount_) returns() +func (_Marketplace *MarketplaceTransactor) Withdraw(opts *bind.TransactOpts, recipient_ common.Address, amount_ *big.Int) (*types.Transaction, error) { + return _Marketplace.contract.Transact(opts, "withdraw", recipient_, amount_) } // Withdraw is a paid mutator transaction binding the contract method 0xf3fef3a3. // -// Solidity: function withdraw(address addr, uint256 amount) returns() -func (_Marketplace *MarketplaceSession) Withdraw(addr common.Address, amount *big.Int) (*types.Transaction, error) { - return _Marketplace.Contract.Withdraw(&_Marketplace.TransactOpts, addr, amount) +// Solidity: function withdraw(address recipient_, uint256 amount_) returns() +func (_Marketplace *MarketplaceSession) Withdraw(recipient_ common.Address, amount_ *big.Int) (*types.Transaction, error) { + return _Marketplace.Contract.Withdraw(&_Marketplace.TransactOpts, recipient_, amount_) } // Withdraw is a paid mutator transaction binding the contract method 0xf3fef3a3. // -// Solidity: function withdraw(address addr, uint256 amount) returns() -func (_Marketplace *MarketplaceTransactorSession) Withdraw(addr common.Address, amount *big.Int) (*types.Transaction, error) { - return _Marketplace.Contract.Withdraw(&_Marketplace.TransactOpts, addr, amount) +// Solidity: function withdraw(address recipient_, uint256 amount_) returns() +func (_Marketplace *MarketplaceTransactorSession) Withdraw(recipient_ common.Address, amount_ *big.Int) (*types.Transaction, error) { + return _Marketplace.Contract.Withdraw(&_Marketplace.TransactOpts, recipient_, amount_) } // MarketplaceBidDeletedIterator is returned from FilterBidDeleted and is used to iterate over the raw logs and unpacked data for BidDeleted events raised by the Marketplace contract. @@ -620,27 +1006,27 @@ func (it *MarketplaceBidDeletedIterator) Close() error { // MarketplaceBidDeleted represents a BidDeleted event raised by the Marketplace contract. type MarketplaceBidDeleted struct { - Provider common.Address - ModelAgentId [32]byte - Nonce *big.Int - Raw types.Log // Blockchain specific contextual infos + Provider common.Address + ModelId [32]byte + Nonce *big.Int + Raw types.Log // Blockchain specific contextual infos } // FilterBidDeleted is a free log retrieval operation binding the contract event 0x096f970f504563bca8ac4419b4299946965221e396c34aea149ac84947b9242f. // -// Solidity: event BidDeleted(address indexed provider, bytes32 indexed modelAgentId, uint256 nonce) -func (_Marketplace *MarketplaceFilterer) FilterBidDeleted(opts *bind.FilterOpts, provider []common.Address, modelAgentId [][32]byte) (*MarketplaceBidDeletedIterator, error) { +// Solidity: event BidDeleted(address indexed provider, bytes32 indexed modelId, uint256 nonce) +func (_Marketplace *MarketplaceFilterer) FilterBidDeleted(opts *bind.FilterOpts, provider []common.Address, modelId [][32]byte) (*MarketplaceBidDeletedIterator, error) { var providerRule []interface{} for _, providerItem := range provider { providerRule = append(providerRule, providerItem) } - var modelAgentIdRule []interface{} - for _, modelAgentIdItem := range modelAgentId { - modelAgentIdRule = append(modelAgentIdRule, modelAgentIdItem) + var modelIdRule []interface{} + for _, modelIdItem := range modelId { + modelIdRule = append(modelIdRule, modelIdItem) } - logs, sub, err := _Marketplace.contract.FilterLogs(opts, "BidDeleted", providerRule, modelAgentIdRule) + logs, sub, err := _Marketplace.contract.FilterLogs(opts, "BidDeleted", providerRule, modelIdRule) if err != nil { return nil, err } @@ -649,19 +1035,19 @@ func (_Marketplace *MarketplaceFilterer) FilterBidDeleted(opts *bind.FilterOpts, // WatchBidDeleted is a free log subscription operation binding the contract event 0x096f970f504563bca8ac4419b4299946965221e396c34aea149ac84947b9242f. // -// Solidity: event BidDeleted(address indexed provider, bytes32 indexed modelAgentId, uint256 nonce) -func (_Marketplace *MarketplaceFilterer) WatchBidDeleted(opts *bind.WatchOpts, sink chan<- *MarketplaceBidDeleted, provider []common.Address, modelAgentId [][32]byte) (event.Subscription, error) { +// Solidity: event BidDeleted(address indexed provider, bytes32 indexed modelId, uint256 nonce) +func (_Marketplace *MarketplaceFilterer) WatchBidDeleted(opts *bind.WatchOpts, sink chan<- *MarketplaceBidDeleted, provider []common.Address, modelId [][32]byte) (event.Subscription, error) { var providerRule []interface{} for _, providerItem := range provider { providerRule = append(providerRule, providerItem) } - var modelAgentIdRule []interface{} - for _, modelAgentIdItem := range modelAgentId { - modelAgentIdRule = append(modelAgentIdRule, modelAgentIdItem) + var modelIdRule []interface{} + for _, modelIdItem := range modelId { + modelIdRule = append(modelIdRule, modelIdItem) } - logs, sub, err := _Marketplace.contract.WatchLogs(opts, "BidDeleted", providerRule, modelAgentIdRule) + logs, sub, err := _Marketplace.contract.WatchLogs(opts, "BidDeleted", providerRule, modelIdRule) if err != nil { return nil, err } @@ -695,7 +1081,7 @@ func (_Marketplace *MarketplaceFilterer) WatchBidDeleted(opts *bind.WatchOpts, s // ParseBidDeleted is a log parse operation binding the contract event 0x096f970f504563bca8ac4419b4299946965221e396c34aea149ac84947b9242f. // -// Solidity: event BidDeleted(address indexed provider, bytes32 indexed modelAgentId, uint256 nonce) +// Solidity: event BidDeleted(address indexed provider, bytes32 indexed modelId, uint256 nonce) func (_Marketplace *MarketplaceFilterer) ParseBidDeleted(log types.Log) (*MarketplaceBidDeleted, error) { event := new(MarketplaceBidDeleted) if err := _Marketplace.contract.UnpackLog(event, "BidDeleted", log); err != nil { @@ -774,27 +1160,27 @@ func (it *MarketplaceBidPostedIterator) Close() error { // MarketplaceBidPosted represents a BidPosted event raised by the Marketplace contract. type MarketplaceBidPosted struct { - Provider common.Address - ModelAgentId [32]byte - Nonce *big.Int - Raw types.Log // Blockchain specific contextual infos + Provider common.Address + ModelId [32]byte + Nonce *big.Int + Raw types.Log // Blockchain specific contextual infos } // FilterBidPosted is a free log retrieval operation binding the contract event 0xd138adff73af2621d26114cd9ee4f20dcd39ed78f9e0004215ed49aa22753ebe. // -// Solidity: event BidPosted(address indexed provider, bytes32 indexed modelAgentId, uint256 nonce) -func (_Marketplace *MarketplaceFilterer) FilterBidPosted(opts *bind.FilterOpts, provider []common.Address, modelAgentId [][32]byte) (*MarketplaceBidPostedIterator, error) { +// Solidity: event BidPosted(address indexed provider, bytes32 indexed modelId, uint256 nonce) +func (_Marketplace *MarketplaceFilterer) FilterBidPosted(opts *bind.FilterOpts, provider []common.Address, modelId [][32]byte) (*MarketplaceBidPostedIterator, error) { var providerRule []interface{} for _, providerItem := range provider { providerRule = append(providerRule, providerItem) } - var modelAgentIdRule []interface{} - for _, modelAgentIdItem := range modelAgentId { - modelAgentIdRule = append(modelAgentIdRule, modelAgentIdItem) + var modelIdRule []interface{} + for _, modelIdItem := range modelId { + modelIdRule = append(modelIdRule, modelIdItem) } - logs, sub, err := _Marketplace.contract.FilterLogs(opts, "BidPosted", providerRule, modelAgentIdRule) + logs, sub, err := _Marketplace.contract.FilterLogs(opts, "BidPosted", providerRule, modelIdRule) if err != nil { return nil, err } @@ -803,19 +1189,19 @@ func (_Marketplace *MarketplaceFilterer) FilterBidPosted(opts *bind.FilterOpts, // WatchBidPosted is a free log subscription operation binding the contract event 0xd138adff73af2621d26114cd9ee4f20dcd39ed78f9e0004215ed49aa22753ebe. // -// Solidity: event BidPosted(address indexed provider, bytes32 indexed modelAgentId, uint256 nonce) -func (_Marketplace *MarketplaceFilterer) WatchBidPosted(opts *bind.WatchOpts, sink chan<- *MarketplaceBidPosted, provider []common.Address, modelAgentId [][32]byte) (event.Subscription, error) { +// Solidity: event BidPosted(address indexed provider, bytes32 indexed modelId, uint256 nonce) +func (_Marketplace *MarketplaceFilterer) WatchBidPosted(opts *bind.WatchOpts, sink chan<- *MarketplaceBidPosted, provider []common.Address, modelId [][32]byte) (event.Subscription, error) { var providerRule []interface{} for _, providerItem := range provider { providerRule = append(providerRule, providerItem) } - var modelAgentIdRule []interface{} - for _, modelAgentIdItem := range modelAgentId { - modelAgentIdRule = append(modelAgentIdRule, modelAgentIdItem) + var modelIdRule []interface{} + for _, modelIdItem := range modelId { + modelIdRule = append(modelIdRule, modelIdItem) } - logs, sub, err := _Marketplace.contract.WatchLogs(opts, "BidPosted", providerRule, modelAgentIdRule) + logs, sub, err := _Marketplace.contract.WatchLogs(opts, "BidPosted", providerRule, modelIdRule) if err != nil { return nil, err } @@ -849,7 +1235,7 @@ func (_Marketplace *MarketplaceFilterer) WatchBidPosted(opts *bind.WatchOpts, si // ParseBidPosted is a log parse operation binding the contract event 0xd138adff73af2621d26114cd9ee4f20dcd39ed78f9e0004215ed49aa22753ebe. // -// Solidity: event BidPosted(address indexed provider, bytes32 indexed modelAgentId, uint256 nonce) +// Solidity: event BidPosted(address indexed provider, bytes32 indexed modelId, uint256 nonce) func (_Marketplace *MarketplaceFilterer) ParseBidPosted(log types.Log) (*MarketplaceBidPosted, error) { event := new(MarketplaceBidPosted) if err := _Marketplace.contract.UnpackLog(event, "BidPosted", log); err != nil { @@ -992,3 +1378,137 @@ func (_Marketplace *MarketplaceFilterer) ParseFeeUpdated(log types.Log) (*Market event.Raw = log return event, nil } + +// MarketplaceInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the Marketplace contract. +type MarketplaceInitializedIterator struct { + Event *MarketplaceInitialized // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *MarketplaceInitializedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(MarketplaceInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(MarketplaceInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *MarketplaceInitializedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *MarketplaceInitializedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// MarketplaceInitialized represents a Initialized event raised by the Marketplace contract. +type MarketplaceInitialized struct { + StorageSlot [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterInitialized is a free log retrieval operation binding the contract event 0xdc73717d728bcfa015e8117438a65319aa06e979ca324afa6e1ea645c28ea15d. +// +// Solidity: event Initialized(bytes32 storageSlot) +func (_Marketplace *MarketplaceFilterer) FilterInitialized(opts *bind.FilterOpts) (*MarketplaceInitializedIterator, error) { + + logs, sub, err := _Marketplace.contract.FilterLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return &MarketplaceInitializedIterator{contract: _Marketplace.contract, event: "Initialized", logs: logs, sub: sub}, nil +} + +// WatchInitialized is a free log subscription operation binding the contract event 0xdc73717d728bcfa015e8117438a65319aa06e979ca324afa6e1ea645c28ea15d. +// +// Solidity: event Initialized(bytes32 storageSlot) +func (_Marketplace *MarketplaceFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *MarketplaceInitialized) (event.Subscription, error) { + + logs, sub, err := _Marketplace.contract.WatchLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(MarketplaceInitialized) + if err := _Marketplace.contract.UnpackLog(event, "Initialized", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseInitialized is a log parse operation binding the contract event 0xdc73717d728bcfa015e8117438a65319aa06e979ca324afa6e1ea645c28ea15d. +// +// Solidity: event Initialized(bytes32 storageSlot) +func (_Marketplace *MarketplaceFilterer) ParseInitialized(log types.Log) (*MarketplaceInitialized, error) { + event := new(MarketplaceInitialized) + if err := _Marketplace.contract.UnpackLog(event, "Initialized", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/proxy-router/contracts/modelregistry/ModelRegistry.go b/proxy-router/contracts/modelregistry/ModelRegistry.go index be24751f..c4db9f2d 100644 --- a/proxy-router/contracts/modelregistry/ModelRegistry.go +++ b/proxy-router/contracts/modelregistry/ModelRegistry.go @@ -29,14 +29,18 @@ var ( _ = abi.ConvertType ) -// LibSDSD is an auto generated low-level Go binding around an user-defined struct. -type LibSDSD struct { - Mean int64 - SqSum int64 -} - -// Model is an auto generated low-level Go binding around an user-defined struct. -type Model struct { +// IBidStorageBid is an auto generated low-level Go binding around an user-defined struct. +type IBidStorageBid struct { + Provider common.Address + ModelId [32]byte + PricePerSecond *big.Int + Nonce *big.Int + CreatedAt *big.Int + DeletedAt *big.Int +} + +// IModelStorageModel is an auto generated low-level Go binding around an user-defined struct. +type IModelStorageModel struct { IpfsCID [32]byte Fee *big.Int Stake *big.Int @@ -47,17 +51,9 @@ type Model struct { IsDeleted bool } -// ModelStats is an auto generated low-level Go binding around an user-defined struct. -type ModelStats struct { - TpsScaled1000 LibSDSD - TtftMs LibSDSD - TotalDuration LibSDSD - Count uint32 -} - // ModelRegistryMetaData contains all meta data concerning the ModelRegistry contract. var ModelRegistryMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[],\"name\":\"KeyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"KeyNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ModelHasActiveBids\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ModelNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_contractOwner\",\"type\":\"address\"}],\"name\":\"NotContractOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSenderOrOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StakeTooLow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroKey\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"}],\"name\":\"ModelDeregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newStake\",\"type\":\"uint256\"}],\"name\":\"ModelMinStakeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"}],\"name\":\"ModelRegisteredUpdated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"modelDeregister\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"modelExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"modelGetAll\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"ipfsCID\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"isDeleted\",\"type\":\"bool\"}],\"internalType\":\"structModel[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"modelGetByIndex\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"ipfsCID\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"isDeleted\",\"type\":\"bool\"}],\"internalType\":\"structModel\",\"name\":\"model\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"modelGetCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"modelGetIds\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"modelMap\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"ipfsCID\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"isDeleted\",\"type\":\"bool\"}],\"internalType\":\"structModel\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"modelMinStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"ipfsCID\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"addStake\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"}],\"name\":\"modelRegister\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"modelResetStats\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_minStake\",\"type\":\"uint256\"}],\"name\":\"modelSetMinStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"modelStats\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"int64\",\"name\":\"mean\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"sqSum\",\"type\":\"int64\"}],\"internalType\":\"structLibSD.SD\",\"name\":\"tpsScaled1000\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"mean\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"sqSum\",\"type\":\"int64\"}],\"internalType\":\"structLibSD.SD\",\"name\":\"ttftMs\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"mean\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"sqSum\",\"type\":\"int64\"}],\"internalType\":\"structLibSD.SD\",\"name\":\"totalDuration\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"count\",\"type\":\"uint32\"}],\"internalType\":\"structModelStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"models\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", + ABI: "[{\"inputs\":[],\"name\":\"ModelHasActiveBids\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ModelNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwnerOrModelOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account_\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StakeTooLow\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"storageSlot\",\"type\":\"bytes32\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"}],\"name\":\"ModelDeregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newStake\",\"type\":\"uint256\"}],\"name\":\"ModelMinimumStakeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"}],\"name\":\"ModelRegisteredUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BID_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DIAMOND_OWNABLE_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MODEL_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"__ModelRegistry_init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bidId\",\"type\":\"bytes32\"}],\"name\":\"bids\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"pricePerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"deletedAt\",\"type\":\"uint128\"}],\"internalType\":\"structIBidStorage.Bid\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"}],\"name\":\"getModel\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"ipfsCID\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"isDeleted\",\"type\":\"bool\"}],\"internalType\":\"structIModelStorage.Model\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getToken\",\"outputs\":[{\"internalType\":\"contractIERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"}],\"name\":\"isModelExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"modelActiveBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"modelBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"}],\"name\":\"modelDeregister\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"modelMinimumStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"ipfsCID_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"fee_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"addStake_\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"tags_\",\"type\":\"string[]\"}],\"name\":\"modelRegister\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"models\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"providerActiveBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"providerBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"modelMinimumStake_\",\"type\":\"uint256\"}],\"name\":\"setModelMinimumStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", } // ModelRegistryABI is the input ABI used to generate the binding from. @@ -206,267 +202,314 @@ func (_ModelRegistry *ModelRegistryTransactorRaw) Transact(opts *bind.TransactOp return _ModelRegistry.Contract.contract.Transact(opts, method, params...) } -// ModelExists is a free data retrieval call binding the contract method 0x022964d2. +// BIDSTORAGESLOT is a free data retrieval call binding the contract method 0x4fa816f2. // -// Solidity: function modelExists(bytes32 id) view returns(bool) -func (_ModelRegistry *ModelRegistryCaller) ModelExists(opts *bind.CallOpts, id [32]byte) (bool, error) { +// Solidity: function BID_STORAGE_SLOT() view returns(bytes32) +func (_ModelRegistry *ModelRegistryCaller) BIDSTORAGESLOT(opts *bind.CallOpts) ([32]byte, error) { var out []interface{} - err := _ModelRegistry.contract.Call(opts, &out, "modelExists", id) + err := _ModelRegistry.contract.Call(opts, &out, "BID_STORAGE_SLOT") if err != nil { - return *new(bool), err + return *new([32]byte), err } - out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) return out0, err } -// ModelExists is a free data retrieval call binding the contract method 0x022964d2. +// BIDSTORAGESLOT is a free data retrieval call binding the contract method 0x4fa816f2. // -// Solidity: function modelExists(bytes32 id) view returns(bool) -func (_ModelRegistry *ModelRegistrySession) ModelExists(id [32]byte) (bool, error) { - return _ModelRegistry.Contract.ModelExists(&_ModelRegistry.CallOpts, id) +// Solidity: function BID_STORAGE_SLOT() view returns(bytes32) +func (_ModelRegistry *ModelRegistrySession) BIDSTORAGESLOT() ([32]byte, error) { + return _ModelRegistry.Contract.BIDSTORAGESLOT(&_ModelRegistry.CallOpts) } -// ModelExists is a free data retrieval call binding the contract method 0x022964d2. +// BIDSTORAGESLOT is a free data retrieval call binding the contract method 0x4fa816f2. // -// Solidity: function modelExists(bytes32 id) view returns(bool) -func (_ModelRegistry *ModelRegistryCallerSession) ModelExists(id [32]byte) (bool, error) { - return _ModelRegistry.Contract.ModelExists(&_ModelRegistry.CallOpts, id) +// Solidity: function BID_STORAGE_SLOT() view returns(bytes32) +func (_ModelRegistry *ModelRegistryCallerSession) BIDSTORAGESLOT() ([32]byte, error) { + return _ModelRegistry.Contract.BIDSTORAGESLOT(&_ModelRegistry.CallOpts) } -// ModelGetAll is a free data retrieval call binding the contract method 0xb889c67b. +// DIAMONDOWNABLESTORAGESLOT is a free data retrieval call binding the contract method 0x4ac3371e. // -// Solidity: function modelGetAll() view returns(bytes32[], (bytes32,uint256,uint256,address,string,string[],uint128,bool)[]) -func (_ModelRegistry *ModelRegistryCaller) ModelGetAll(opts *bind.CallOpts) ([][32]byte, []Model, error) { +// Solidity: function DIAMOND_OWNABLE_STORAGE_SLOT() view returns(bytes32) +func (_ModelRegistry *ModelRegistryCaller) DIAMONDOWNABLESTORAGESLOT(opts *bind.CallOpts) ([32]byte, error) { var out []interface{} - err := _ModelRegistry.contract.Call(opts, &out, "modelGetAll") + err := _ModelRegistry.contract.Call(opts, &out, "DIAMOND_OWNABLE_STORAGE_SLOT") if err != nil { - return *new([][32]byte), *new([]Model), err + return *new([32]byte), err } - out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) - out1 := *abi.ConvertType(out[1], new([]Model)).(*[]Model) + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) - return out0, out1, err + return out0, err } -// ModelGetAll is a free data retrieval call binding the contract method 0xb889c67b. +// DIAMONDOWNABLESTORAGESLOT is a free data retrieval call binding the contract method 0x4ac3371e. // -// Solidity: function modelGetAll() view returns(bytes32[], (bytes32,uint256,uint256,address,string,string[],uint128,bool)[]) -func (_ModelRegistry *ModelRegistrySession) ModelGetAll() ([][32]byte, []Model, error) { - return _ModelRegistry.Contract.ModelGetAll(&_ModelRegistry.CallOpts) +// Solidity: function DIAMOND_OWNABLE_STORAGE_SLOT() view returns(bytes32) +func (_ModelRegistry *ModelRegistrySession) DIAMONDOWNABLESTORAGESLOT() ([32]byte, error) { + return _ModelRegistry.Contract.DIAMONDOWNABLESTORAGESLOT(&_ModelRegistry.CallOpts) } -// ModelGetAll is a free data retrieval call binding the contract method 0xb889c67b. +// DIAMONDOWNABLESTORAGESLOT is a free data retrieval call binding the contract method 0x4ac3371e. // -// Solidity: function modelGetAll() view returns(bytes32[], (bytes32,uint256,uint256,address,string,string[],uint128,bool)[]) -func (_ModelRegistry *ModelRegistryCallerSession) ModelGetAll() ([][32]byte, []Model, error) { - return _ModelRegistry.Contract.ModelGetAll(&_ModelRegistry.CallOpts) +// Solidity: function DIAMOND_OWNABLE_STORAGE_SLOT() view returns(bytes32) +func (_ModelRegistry *ModelRegistryCallerSession) DIAMONDOWNABLESTORAGESLOT() ([32]byte, error) { + return _ModelRegistry.Contract.DIAMONDOWNABLESTORAGESLOT(&_ModelRegistry.CallOpts) } -// ModelGetByIndex is a free data retrieval call binding the contract method 0x43119765. +// MODELSTORAGESLOT is a free data retrieval call binding the contract method 0xeda926f2. // -// Solidity: function modelGetByIndex(uint256 index) view returns(bytes32 modelId, (bytes32,uint256,uint256,address,string,string[],uint128,bool) model) -func (_ModelRegistry *ModelRegistryCaller) ModelGetByIndex(opts *bind.CallOpts, index *big.Int) (struct { - ModelId [32]byte - Model Model -}, error) { +// Solidity: function MODEL_STORAGE_SLOT() view returns(bytes32) +func (_ModelRegistry *ModelRegistryCaller) MODELSTORAGESLOT(opts *bind.CallOpts) ([32]byte, error) { var out []interface{} - err := _ModelRegistry.contract.Call(opts, &out, "modelGetByIndex", index) + err := _ModelRegistry.contract.Call(opts, &out, "MODEL_STORAGE_SLOT") - outstruct := new(struct { - ModelId [32]byte - Model Model - }) if err != nil { - return *outstruct, err + return *new([32]byte), err } - outstruct.ModelId = *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) - outstruct.Model = *abi.ConvertType(out[1], new(Model)).(*Model) + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) - return *outstruct, err + return out0, err } -// ModelGetByIndex is a free data retrieval call binding the contract method 0x43119765. +// MODELSTORAGESLOT is a free data retrieval call binding the contract method 0xeda926f2. // -// Solidity: function modelGetByIndex(uint256 index) view returns(bytes32 modelId, (bytes32,uint256,uint256,address,string,string[],uint128,bool) model) -func (_ModelRegistry *ModelRegistrySession) ModelGetByIndex(index *big.Int) (struct { - ModelId [32]byte - Model Model -}, error) { - return _ModelRegistry.Contract.ModelGetByIndex(&_ModelRegistry.CallOpts, index) +// Solidity: function MODEL_STORAGE_SLOT() view returns(bytes32) +func (_ModelRegistry *ModelRegistrySession) MODELSTORAGESLOT() ([32]byte, error) { + return _ModelRegistry.Contract.MODELSTORAGESLOT(&_ModelRegistry.CallOpts) } -// ModelGetByIndex is a free data retrieval call binding the contract method 0x43119765. +// MODELSTORAGESLOT is a free data retrieval call binding the contract method 0xeda926f2. // -// Solidity: function modelGetByIndex(uint256 index) view returns(bytes32 modelId, (bytes32,uint256,uint256,address,string,string[],uint128,bool) model) -func (_ModelRegistry *ModelRegistryCallerSession) ModelGetByIndex(index *big.Int) (struct { - ModelId [32]byte - Model Model -}, error) { - return _ModelRegistry.Contract.ModelGetByIndex(&_ModelRegistry.CallOpts, index) +// Solidity: function MODEL_STORAGE_SLOT() view returns(bytes32) +func (_ModelRegistry *ModelRegistryCallerSession) MODELSTORAGESLOT() ([32]byte, error) { + return _ModelRegistry.Contract.MODELSTORAGESLOT(&_ModelRegistry.CallOpts) } -// ModelGetCount is a free data retrieval call binding the contract method 0x807b8975. +// Bids is a free data retrieval call binding the contract method 0x8f98eeda. // -// Solidity: function modelGetCount() view returns(uint256 count) -func (_ModelRegistry *ModelRegistryCaller) ModelGetCount(opts *bind.CallOpts) (*big.Int, error) { +// Solidity: function bids(bytes32 bidId) view returns((address,bytes32,uint256,uint256,uint128,uint128)) +func (_ModelRegistry *ModelRegistryCaller) Bids(opts *bind.CallOpts, bidId [32]byte) (IBidStorageBid, error) { var out []interface{} - err := _ModelRegistry.contract.Call(opts, &out, "modelGetCount") + err := _ModelRegistry.contract.Call(opts, &out, "bids", bidId) if err != nil { - return *new(*big.Int), err + return *new(IBidStorageBid), err } - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + out0 := *abi.ConvertType(out[0], new(IBidStorageBid)).(*IBidStorageBid) return out0, err } -// ModelGetCount is a free data retrieval call binding the contract method 0x807b8975. +// Bids is a free data retrieval call binding the contract method 0x8f98eeda. // -// Solidity: function modelGetCount() view returns(uint256 count) -func (_ModelRegistry *ModelRegistrySession) ModelGetCount() (*big.Int, error) { - return _ModelRegistry.Contract.ModelGetCount(&_ModelRegistry.CallOpts) +// Solidity: function bids(bytes32 bidId) view returns((address,bytes32,uint256,uint256,uint128,uint128)) +func (_ModelRegistry *ModelRegistrySession) Bids(bidId [32]byte) (IBidStorageBid, error) { + return _ModelRegistry.Contract.Bids(&_ModelRegistry.CallOpts, bidId) } -// ModelGetCount is a free data retrieval call binding the contract method 0x807b8975. +// Bids is a free data retrieval call binding the contract method 0x8f98eeda. // -// Solidity: function modelGetCount() view returns(uint256 count) -func (_ModelRegistry *ModelRegistryCallerSession) ModelGetCount() (*big.Int, error) { - return _ModelRegistry.Contract.ModelGetCount(&_ModelRegistry.CallOpts) +// Solidity: function bids(bytes32 bidId) view returns((address,bytes32,uint256,uint256,uint128,uint128)) +func (_ModelRegistry *ModelRegistryCallerSession) Bids(bidId [32]byte) (IBidStorageBid, error) { + return _ModelRegistry.Contract.Bids(&_ModelRegistry.CallOpts, bidId) } -// ModelGetIds is a free data retrieval call binding the contract method 0x9f9877fc. +// GetModel is a free data retrieval call binding the contract method 0x21e7c498. // -// Solidity: function modelGetIds() view returns(bytes32[]) -func (_ModelRegistry *ModelRegistryCaller) ModelGetIds(opts *bind.CallOpts) ([][32]byte, error) { +// Solidity: function getModel(bytes32 modelId) view returns((bytes32,uint256,uint256,address,string,string[],uint128,bool)) +func (_ModelRegistry *ModelRegistryCaller) GetModel(opts *bind.CallOpts, modelId [32]byte) (IModelStorageModel, error) { var out []interface{} - err := _ModelRegistry.contract.Call(opts, &out, "modelGetIds") + err := _ModelRegistry.contract.Call(opts, &out, "getModel", modelId) if err != nil { - return *new([][32]byte), err + return *new(IModelStorageModel), err } - out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) + out0 := *abi.ConvertType(out[0], new(IModelStorageModel)).(*IModelStorageModel) return out0, err } -// ModelGetIds is a free data retrieval call binding the contract method 0x9f9877fc. +// GetModel is a free data retrieval call binding the contract method 0x21e7c498. // -// Solidity: function modelGetIds() view returns(bytes32[]) -func (_ModelRegistry *ModelRegistrySession) ModelGetIds() ([][32]byte, error) { - return _ModelRegistry.Contract.ModelGetIds(&_ModelRegistry.CallOpts) +// Solidity: function getModel(bytes32 modelId) view returns((bytes32,uint256,uint256,address,string,string[],uint128,bool)) +func (_ModelRegistry *ModelRegistrySession) GetModel(modelId [32]byte) (IModelStorageModel, error) { + return _ModelRegistry.Contract.GetModel(&_ModelRegistry.CallOpts, modelId) } -// ModelGetIds is a free data retrieval call binding the contract method 0x9f9877fc. +// GetModel is a free data retrieval call binding the contract method 0x21e7c498. // -// Solidity: function modelGetIds() view returns(bytes32[]) -func (_ModelRegistry *ModelRegistryCallerSession) ModelGetIds() ([][32]byte, error) { - return _ModelRegistry.Contract.ModelGetIds(&_ModelRegistry.CallOpts) +// Solidity: function getModel(bytes32 modelId) view returns((bytes32,uint256,uint256,address,string,string[],uint128,bool)) +func (_ModelRegistry *ModelRegistryCallerSession) GetModel(modelId [32]byte) (IModelStorageModel, error) { + return _ModelRegistry.Contract.GetModel(&_ModelRegistry.CallOpts, modelId) } -// ModelMap is a free data retrieval call binding the contract method 0x6e5cbd85. +// GetToken is a free data retrieval call binding the contract method 0x21df0da7. // -// Solidity: function modelMap(bytes32 id) view returns((bytes32,uint256,uint256,address,string,string[],uint128,bool)) -func (_ModelRegistry *ModelRegistryCaller) ModelMap(opts *bind.CallOpts, id [32]byte) (Model, error) { +// Solidity: function getToken() view returns(address) +func (_ModelRegistry *ModelRegistryCaller) GetToken(opts *bind.CallOpts) (common.Address, error) { var out []interface{} - err := _ModelRegistry.contract.Call(opts, &out, "modelMap", id) + err := _ModelRegistry.contract.Call(opts, &out, "getToken") if err != nil { - return *new(Model), err + return *new(common.Address), err } - out0 := *abi.ConvertType(out[0], new(Model)).(*Model) + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) return out0, err } -// ModelMap is a free data retrieval call binding the contract method 0x6e5cbd85. +// GetToken is a free data retrieval call binding the contract method 0x21df0da7. // -// Solidity: function modelMap(bytes32 id) view returns((bytes32,uint256,uint256,address,string,string[],uint128,bool)) -func (_ModelRegistry *ModelRegistrySession) ModelMap(id [32]byte) (Model, error) { - return _ModelRegistry.Contract.ModelMap(&_ModelRegistry.CallOpts, id) +// Solidity: function getToken() view returns(address) +func (_ModelRegistry *ModelRegistrySession) GetToken() (common.Address, error) { + return _ModelRegistry.Contract.GetToken(&_ModelRegistry.CallOpts) } -// ModelMap is a free data retrieval call binding the contract method 0x6e5cbd85. +// GetToken is a free data retrieval call binding the contract method 0x21df0da7. // -// Solidity: function modelMap(bytes32 id) view returns((bytes32,uint256,uint256,address,string,string[],uint128,bool)) -func (_ModelRegistry *ModelRegistryCallerSession) ModelMap(id [32]byte) (Model, error) { - return _ModelRegistry.Contract.ModelMap(&_ModelRegistry.CallOpts, id) +// Solidity: function getToken() view returns(address) +func (_ModelRegistry *ModelRegistryCallerSession) GetToken() (common.Address, error) { + return _ModelRegistry.Contract.GetToken(&_ModelRegistry.CallOpts) } -// ModelMinStake is a free data retrieval call binding the contract method 0xe41a6823. +// IsModelExists is a free data retrieval call binding the contract method 0x045147aa. // -// Solidity: function modelMinStake() view returns(uint256) -func (_ModelRegistry *ModelRegistryCaller) ModelMinStake(opts *bind.CallOpts) (*big.Int, error) { +// Solidity: function isModelExists(bytes32 modelId_) view returns(bool) +func (_ModelRegistry *ModelRegistryCaller) IsModelExists(opts *bind.CallOpts, modelId_ [32]byte) (bool, error) { var out []interface{} - err := _ModelRegistry.contract.Call(opts, &out, "modelMinStake") + err := _ModelRegistry.contract.Call(opts, &out, "isModelExists", modelId_) if err != nil { - return *new(*big.Int), err + return *new(bool), err } - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// IsModelExists is a free data retrieval call binding the contract method 0x045147aa. +// +// Solidity: function isModelExists(bytes32 modelId_) view returns(bool) +func (_ModelRegistry *ModelRegistrySession) IsModelExists(modelId_ [32]byte) (bool, error) { + return _ModelRegistry.Contract.IsModelExists(&_ModelRegistry.CallOpts, modelId_) +} + +// IsModelExists is a free data retrieval call binding the contract method 0x045147aa. +// +// Solidity: function isModelExists(bytes32 modelId_) view returns(bool) +func (_ModelRegistry *ModelRegistryCallerSession) IsModelExists(modelId_ [32]byte) (bool, error) { + return _ModelRegistry.Contract.IsModelExists(&_ModelRegistry.CallOpts, modelId_) +} + +// ModelActiveBids is a free data retrieval call binding the contract method 0x3fd8e5e3. +// +// Solidity: function modelActiveBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ModelRegistry *ModelRegistryCaller) ModelActiveBids(opts *bind.CallOpts, modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + var out []interface{} + err := _ModelRegistry.contract.Call(opts, &out, "modelActiveBids", modelId_, offset_, limit_) + + if err != nil { + return *new([][32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) + + return out0, err + +} + +// ModelActiveBids is a free data retrieval call binding the contract method 0x3fd8e5e3. +// +// Solidity: function modelActiveBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ModelRegistry *ModelRegistrySession) ModelActiveBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _ModelRegistry.Contract.ModelActiveBids(&_ModelRegistry.CallOpts, modelId_, offset_, limit_) +} + +// ModelActiveBids is a free data retrieval call binding the contract method 0x3fd8e5e3. +// +// Solidity: function modelActiveBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ModelRegistry *ModelRegistryCallerSession) ModelActiveBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _ModelRegistry.Contract.ModelActiveBids(&_ModelRegistry.CallOpts, modelId_, offset_, limit_) +} + +// ModelBids is a free data retrieval call binding the contract method 0x5954d1b3. +// +// Solidity: function modelBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ModelRegistry *ModelRegistryCaller) ModelBids(opts *bind.CallOpts, modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + var out []interface{} + err := _ModelRegistry.contract.Call(opts, &out, "modelBids", modelId_, offset_, limit_) + + if err != nil { + return *new([][32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) return out0, err } -// ModelMinStake is a free data retrieval call binding the contract method 0xe41a6823. +// ModelBids is a free data retrieval call binding the contract method 0x5954d1b3. // -// Solidity: function modelMinStake() view returns(uint256) -func (_ModelRegistry *ModelRegistrySession) ModelMinStake() (*big.Int, error) { - return _ModelRegistry.Contract.ModelMinStake(&_ModelRegistry.CallOpts) +// Solidity: function modelBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ModelRegistry *ModelRegistrySession) ModelBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _ModelRegistry.Contract.ModelBids(&_ModelRegistry.CallOpts, modelId_, offset_, limit_) } -// ModelMinStake is a free data retrieval call binding the contract method 0xe41a6823. +// ModelBids is a free data retrieval call binding the contract method 0x5954d1b3. // -// Solidity: function modelMinStake() view returns(uint256) -func (_ModelRegistry *ModelRegistryCallerSession) ModelMinStake() (*big.Int, error) { - return _ModelRegistry.Contract.ModelMinStake(&_ModelRegistry.CallOpts) +// Solidity: function modelBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ModelRegistry *ModelRegistryCallerSession) ModelBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _ModelRegistry.Contract.ModelBids(&_ModelRegistry.CallOpts, modelId_, offset_, limit_) } -// ModelStats is a free data retrieval call binding the contract method 0x99644b2c. +// ModelMinimumStake is a free data retrieval call binding the contract method 0xc4288ed4. // -// Solidity: function modelStats(bytes32 id) view returns(((int64,int64),(int64,int64),(int64,int64),uint32)) -func (_ModelRegistry *ModelRegistryCaller) ModelStats(opts *bind.CallOpts, id [32]byte) (ModelStats, error) { +// Solidity: function modelMinimumStake() view returns(uint256) +func (_ModelRegistry *ModelRegistryCaller) ModelMinimumStake(opts *bind.CallOpts) (*big.Int, error) { var out []interface{} - err := _ModelRegistry.contract.Call(opts, &out, "modelStats", id) + err := _ModelRegistry.contract.Call(opts, &out, "modelMinimumStake") if err != nil { - return *new(ModelStats), err + return *new(*big.Int), err } - out0 := *abi.ConvertType(out[0], new(ModelStats)).(*ModelStats) + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) return out0, err } -// ModelStats is a free data retrieval call binding the contract method 0x99644b2c. +// ModelMinimumStake is a free data retrieval call binding the contract method 0xc4288ed4. // -// Solidity: function modelStats(bytes32 id) view returns(((int64,int64),(int64,int64),(int64,int64),uint32)) -func (_ModelRegistry *ModelRegistrySession) ModelStats(id [32]byte) (ModelStats, error) { - return _ModelRegistry.Contract.ModelStats(&_ModelRegistry.CallOpts, id) +// Solidity: function modelMinimumStake() view returns(uint256) +func (_ModelRegistry *ModelRegistrySession) ModelMinimumStake() (*big.Int, error) { + return _ModelRegistry.Contract.ModelMinimumStake(&_ModelRegistry.CallOpts) } -// ModelStats is a free data retrieval call binding the contract method 0x99644b2c. +// ModelMinimumStake is a free data retrieval call binding the contract method 0xc4288ed4. // -// Solidity: function modelStats(bytes32 id) view returns(((int64,int64),(int64,int64),(int64,int64),uint32)) -func (_ModelRegistry *ModelRegistryCallerSession) ModelStats(id [32]byte) (ModelStats, error) { - return _ModelRegistry.Contract.ModelStats(&_ModelRegistry.CallOpts, id) +// Solidity: function modelMinimumStake() view returns(uint256) +func (_ModelRegistry *ModelRegistryCallerSession) ModelMinimumStake() (*big.Int, error) { + return _ModelRegistry.Contract.ModelMinimumStake(&_ModelRegistry.CallOpts) } // Models is a free data retrieval call binding the contract method 0x6a030ca9. @@ -500,88 +543,315 @@ func (_ModelRegistry *ModelRegistryCallerSession) Models(index *big.Int) ([32]by return _ModelRegistry.Contract.Models(&_ModelRegistry.CallOpts, index) } +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_ModelRegistry *ModelRegistryCaller) Owner(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ModelRegistry.contract.Call(opts, &out, "owner") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_ModelRegistry *ModelRegistrySession) Owner() (common.Address, error) { + return _ModelRegistry.Contract.Owner(&_ModelRegistry.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_ModelRegistry *ModelRegistryCallerSession) Owner() (common.Address, error) { + return _ModelRegistry.Contract.Owner(&_ModelRegistry.CallOpts) +} + +// ProviderActiveBids is a free data retrieval call binding the contract method 0x6dd7d31c. +// +// Solidity: function providerActiveBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ModelRegistry *ModelRegistryCaller) ProviderActiveBids(opts *bind.CallOpts, provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + var out []interface{} + err := _ModelRegistry.contract.Call(opts, &out, "providerActiveBids", provider_, offset_, limit_) + + if err != nil { + return *new([][32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) + + return out0, err + +} + +// ProviderActiveBids is a free data retrieval call binding the contract method 0x6dd7d31c. +// +// Solidity: function providerActiveBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ModelRegistry *ModelRegistrySession) ProviderActiveBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _ModelRegistry.Contract.ProviderActiveBids(&_ModelRegistry.CallOpts, provider_, offset_, limit_) +} + +// ProviderActiveBids is a free data retrieval call binding the contract method 0x6dd7d31c. +// +// Solidity: function providerActiveBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ModelRegistry *ModelRegistryCallerSession) ProviderActiveBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _ModelRegistry.Contract.ProviderActiveBids(&_ModelRegistry.CallOpts, provider_, offset_, limit_) +} + +// ProviderBids is a free data retrieval call binding the contract method 0x22fbda9a. +// +// Solidity: function providerBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ModelRegistry *ModelRegistryCaller) ProviderBids(opts *bind.CallOpts, provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + var out []interface{} + err := _ModelRegistry.contract.Call(opts, &out, "providerBids", provider_, offset_, limit_) + + if err != nil { + return *new([][32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) + + return out0, err + +} + +// ProviderBids is a free data retrieval call binding the contract method 0x22fbda9a. +// +// Solidity: function providerBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ModelRegistry *ModelRegistrySession) ProviderBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _ModelRegistry.Contract.ProviderBids(&_ModelRegistry.CallOpts, provider_, offset_, limit_) +} + +// ProviderBids is a free data retrieval call binding the contract method 0x22fbda9a. +// +// Solidity: function providerBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ModelRegistry *ModelRegistryCallerSession) ProviderBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _ModelRegistry.Contract.ProviderBids(&_ModelRegistry.CallOpts, provider_, offset_, limit_) +} + +// ModelRegistryInit is a paid mutator transaction binding the contract method 0xd69bdf30. +// +// Solidity: function __ModelRegistry_init() returns() +func (_ModelRegistry *ModelRegistryTransactor) ModelRegistryInit(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ModelRegistry.contract.Transact(opts, "__ModelRegistry_init") +} + +// ModelRegistryInit is a paid mutator transaction binding the contract method 0xd69bdf30. +// +// Solidity: function __ModelRegistry_init() returns() +func (_ModelRegistry *ModelRegistrySession) ModelRegistryInit() (*types.Transaction, error) { + return _ModelRegistry.Contract.ModelRegistryInit(&_ModelRegistry.TransactOpts) +} + +// ModelRegistryInit is a paid mutator transaction binding the contract method 0xd69bdf30. +// +// Solidity: function __ModelRegistry_init() returns() +func (_ModelRegistry *ModelRegistryTransactorSession) ModelRegistryInit() (*types.Transaction, error) { + return _ModelRegistry.Contract.ModelRegistryInit(&_ModelRegistry.TransactOpts) +} + // ModelDeregister is a paid mutator transaction binding the contract method 0xd5a245f1. // -// Solidity: function modelDeregister(bytes32 id) returns() -func (_ModelRegistry *ModelRegistryTransactor) ModelDeregister(opts *bind.TransactOpts, id [32]byte) (*types.Transaction, error) { - return _ModelRegistry.contract.Transact(opts, "modelDeregister", id) +// Solidity: function modelDeregister(bytes32 modelId_) returns() +func (_ModelRegistry *ModelRegistryTransactor) ModelDeregister(opts *bind.TransactOpts, modelId_ [32]byte) (*types.Transaction, error) { + return _ModelRegistry.contract.Transact(opts, "modelDeregister", modelId_) } // ModelDeregister is a paid mutator transaction binding the contract method 0xd5a245f1. // -// Solidity: function modelDeregister(bytes32 id) returns() -func (_ModelRegistry *ModelRegistrySession) ModelDeregister(id [32]byte) (*types.Transaction, error) { - return _ModelRegistry.Contract.ModelDeregister(&_ModelRegistry.TransactOpts, id) +// Solidity: function modelDeregister(bytes32 modelId_) returns() +func (_ModelRegistry *ModelRegistrySession) ModelDeregister(modelId_ [32]byte) (*types.Transaction, error) { + return _ModelRegistry.Contract.ModelDeregister(&_ModelRegistry.TransactOpts, modelId_) } // ModelDeregister is a paid mutator transaction binding the contract method 0xd5a245f1. // -// Solidity: function modelDeregister(bytes32 id) returns() -func (_ModelRegistry *ModelRegistryTransactorSession) ModelDeregister(id [32]byte) (*types.Transaction, error) { - return _ModelRegistry.Contract.ModelDeregister(&_ModelRegistry.TransactOpts, id) +// Solidity: function modelDeregister(bytes32 modelId_) returns() +func (_ModelRegistry *ModelRegistryTransactorSession) ModelDeregister(modelId_ [32]byte) (*types.Transaction, error) { + return _ModelRegistry.Contract.ModelDeregister(&_ModelRegistry.TransactOpts, modelId_) } // ModelRegister is a paid mutator transaction binding the contract method 0x82806227. // -// Solidity: function modelRegister(bytes32 modelId, bytes32 ipfsCID, uint256 fee, uint256 addStake, address owner, string name, string[] tags) returns() -func (_ModelRegistry *ModelRegistryTransactor) ModelRegister(opts *bind.TransactOpts, modelId [32]byte, ipfsCID [32]byte, fee *big.Int, addStake *big.Int, owner common.Address, name string, tags []string) (*types.Transaction, error) { - return _ModelRegistry.contract.Transact(opts, "modelRegister", modelId, ipfsCID, fee, addStake, owner, name, tags) +// Solidity: function modelRegister(bytes32 modelId_, bytes32 ipfsCID_, uint256 fee_, uint256 addStake_, address owner_, string name_, string[] tags_) returns() +func (_ModelRegistry *ModelRegistryTransactor) ModelRegister(opts *bind.TransactOpts, modelId_ [32]byte, ipfsCID_ [32]byte, fee_ *big.Int, addStake_ *big.Int, owner_ common.Address, name_ string, tags_ []string) (*types.Transaction, error) { + return _ModelRegistry.contract.Transact(opts, "modelRegister", modelId_, ipfsCID_, fee_, addStake_, owner_, name_, tags_) } // ModelRegister is a paid mutator transaction binding the contract method 0x82806227. // -// Solidity: function modelRegister(bytes32 modelId, bytes32 ipfsCID, uint256 fee, uint256 addStake, address owner, string name, string[] tags) returns() -func (_ModelRegistry *ModelRegistrySession) ModelRegister(modelId [32]byte, ipfsCID [32]byte, fee *big.Int, addStake *big.Int, owner common.Address, name string, tags []string) (*types.Transaction, error) { - return _ModelRegistry.Contract.ModelRegister(&_ModelRegistry.TransactOpts, modelId, ipfsCID, fee, addStake, owner, name, tags) +// Solidity: function modelRegister(bytes32 modelId_, bytes32 ipfsCID_, uint256 fee_, uint256 addStake_, address owner_, string name_, string[] tags_) returns() +func (_ModelRegistry *ModelRegistrySession) ModelRegister(modelId_ [32]byte, ipfsCID_ [32]byte, fee_ *big.Int, addStake_ *big.Int, owner_ common.Address, name_ string, tags_ []string) (*types.Transaction, error) { + return _ModelRegistry.Contract.ModelRegister(&_ModelRegistry.TransactOpts, modelId_, ipfsCID_, fee_, addStake_, owner_, name_, tags_) } // ModelRegister is a paid mutator transaction binding the contract method 0x82806227. // -// Solidity: function modelRegister(bytes32 modelId, bytes32 ipfsCID, uint256 fee, uint256 addStake, address owner, string name, string[] tags) returns() -func (_ModelRegistry *ModelRegistryTransactorSession) ModelRegister(modelId [32]byte, ipfsCID [32]byte, fee *big.Int, addStake *big.Int, owner common.Address, name string, tags []string) (*types.Transaction, error) { - return _ModelRegistry.Contract.ModelRegister(&_ModelRegistry.TransactOpts, modelId, ipfsCID, fee, addStake, owner, name, tags) +// Solidity: function modelRegister(bytes32 modelId_, bytes32 ipfsCID_, uint256 fee_, uint256 addStake_, address owner_, string name_, string[] tags_) returns() +func (_ModelRegistry *ModelRegistryTransactorSession) ModelRegister(modelId_ [32]byte, ipfsCID_ [32]byte, fee_ *big.Int, addStake_ *big.Int, owner_ common.Address, name_ string, tags_ []string) (*types.Transaction, error) { + return _ModelRegistry.Contract.ModelRegister(&_ModelRegistry.TransactOpts, modelId_, ipfsCID_, fee_, addStake_, owner_, name_, tags_) } -// ModelResetStats is a paid mutator transaction binding the contract method 0x9971035a. +// SetModelMinimumStake is a paid mutator transaction binding the contract method 0x57fb5355. // -// Solidity: function modelResetStats(bytes32 id) returns() -func (_ModelRegistry *ModelRegistryTransactor) ModelResetStats(opts *bind.TransactOpts, id [32]byte) (*types.Transaction, error) { - return _ModelRegistry.contract.Transact(opts, "modelResetStats", id) +// Solidity: function setModelMinimumStake(uint256 modelMinimumStake_) returns() +func (_ModelRegistry *ModelRegistryTransactor) SetModelMinimumStake(opts *bind.TransactOpts, modelMinimumStake_ *big.Int) (*types.Transaction, error) { + return _ModelRegistry.contract.Transact(opts, "setModelMinimumStake", modelMinimumStake_) } -// ModelResetStats is a paid mutator transaction binding the contract method 0x9971035a. +// SetModelMinimumStake is a paid mutator transaction binding the contract method 0x57fb5355. // -// Solidity: function modelResetStats(bytes32 id) returns() -func (_ModelRegistry *ModelRegistrySession) ModelResetStats(id [32]byte) (*types.Transaction, error) { - return _ModelRegistry.Contract.ModelResetStats(&_ModelRegistry.TransactOpts, id) +// Solidity: function setModelMinimumStake(uint256 modelMinimumStake_) returns() +func (_ModelRegistry *ModelRegistrySession) SetModelMinimumStake(modelMinimumStake_ *big.Int) (*types.Transaction, error) { + return _ModelRegistry.Contract.SetModelMinimumStake(&_ModelRegistry.TransactOpts, modelMinimumStake_) } -// ModelResetStats is a paid mutator transaction binding the contract method 0x9971035a. +// SetModelMinimumStake is a paid mutator transaction binding the contract method 0x57fb5355. // -// Solidity: function modelResetStats(bytes32 id) returns() -func (_ModelRegistry *ModelRegistryTransactorSession) ModelResetStats(id [32]byte) (*types.Transaction, error) { - return _ModelRegistry.Contract.ModelResetStats(&_ModelRegistry.TransactOpts, id) +// Solidity: function setModelMinimumStake(uint256 modelMinimumStake_) returns() +func (_ModelRegistry *ModelRegistryTransactorSession) SetModelMinimumStake(modelMinimumStake_ *big.Int) (*types.Transaction, error) { + return _ModelRegistry.Contract.SetModelMinimumStake(&_ModelRegistry.TransactOpts, modelMinimumStake_) +} + +// ModelRegistryInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the ModelRegistry contract. +type ModelRegistryInitializedIterator struct { + Event *ModelRegistryInitialized // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration } -// ModelSetMinStake is a paid mutator transaction binding the contract method 0x78998329. +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ModelRegistryInitializedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ModelRegistryInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ModelRegistryInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ModelRegistryInitializedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ModelRegistryInitializedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ModelRegistryInitialized represents a Initialized event raised by the ModelRegistry contract. +type ModelRegistryInitialized struct { + StorageSlot [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterInitialized is a free log retrieval operation binding the contract event 0xdc73717d728bcfa015e8117438a65319aa06e979ca324afa6e1ea645c28ea15d. // -// Solidity: function modelSetMinStake(uint256 _minStake) returns() -func (_ModelRegistry *ModelRegistryTransactor) ModelSetMinStake(opts *bind.TransactOpts, _minStake *big.Int) (*types.Transaction, error) { - return _ModelRegistry.contract.Transact(opts, "modelSetMinStake", _minStake) +// Solidity: event Initialized(bytes32 storageSlot) +func (_ModelRegistry *ModelRegistryFilterer) FilterInitialized(opts *bind.FilterOpts) (*ModelRegistryInitializedIterator, error) { + + logs, sub, err := _ModelRegistry.contract.FilterLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return &ModelRegistryInitializedIterator{contract: _ModelRegistry.contract, event: "Initialized", logs: logs, sub: sub}, nil } -// ModelSetMinStake is a paid mutator transaction binding the contract method 0x78998329. +// WatchInitialized is a free log subscription operation binding the contract event 0xdc73717d728bcfa015e8117438a65319aa06e979ca324afa6e1ea645c28ea15d. // -// Solidity: function modelSetMinStake(uint256 _minStake) returns() -func (_ModelRegistry *ModelRegistrySession) ModelSetMinStake(_minStake *big.Int) (*types.Transaction, error) { - return _ModelRegistry.Contract.ModelSetMinStake(&_ModelRegistry.TransactOpts, _minStake) +// Solidity: event Initialized(bytes32 storageSlot) +func (_ModelRegistry *ModelRegistryFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *ModelRegistryInitialized) (event.Subscription, error) { + + logs, sub, err := _ModelRegistry.contract.WatchLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ModelRegistryInitialized) + if err := _ModelRegistry.contract.UnpackLog(event, "Initialized", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil } -// ModelSetMinStake is a paid mutator transaction binding the contract method 0x78998329. +// ParseInitialized is a log parse operation binding the contract event 0xdc73717d728bcfa015e8117438a65319aa06e979ca324afa6e1ea645c28ea15d. // -// Solidity: function modelSetMinStake(uint256 _minStake) returns() -func (_ModelRegistry *ModelRegistryTransactorSession) ModelSetMinStake(_minStake *big.Int) (*types.Transaction, error) { - return _ModelRegistry.Contract.ModelSetMinStake(&_ModelRegistry.TransactOpts, _minStake) +// Solidity: event Initialized(bytes32 storageSlot) +func (_ModelRegistry *ModelRegistryFilterer) ParseInitialized(log types.Log) (*ModelRegistryInitialized, error) { + event := new(ModelRegistryInitialized) + if err := _ModelRegistry.contract.UnpackLog(event, "Initialized", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil } // ModelRegistryModelDeregisteredIterator is returned from FilterModelDeregistered and is used to iterate over the raw logs and unpacked data for ModelDeregistered events raised by the ModelRegistry contract. @@ -737,9 +1007,9 @@ func (_ModelRegistry *ModelRegistryFilterer) ParseModelDeregistered(log types.Lo return event, nil } -// ModelRegistryModelMinStakeUpdatedIterator is returned from FilterModelMinStakeUpdated and is used to iterate over the raw logs and unpacked data for ModelMinStakeUpdated events raised by the ModelRegistry contract. -type ModelRegistryModelMinStakeUpdatedIterator struct { - Event *ModelRegistryModelMinStakeUpdated // Event containing the contract specifics and raw log +// ModelRegistryModelMinimumStakeSetIterator is returned from FilterModelMinimumStakeSet and is used to iterate over the raw logs and unpacked data for ModelMinimumStakeSet events raised by the ModelRegistry contract. +type ModelRegistryModelMinimumStakeSetIterator struct { + Event *ModelRegistryModelMinimumStakeSet // Event containing the contract specifics and raw log contract *bind.BoundContract // Generic contract to use for unpacking event data event string // Event name to use for unpacking event data @@ -753,7 +1023,7 @@ type ModelRegistryModelMinStakeUpdatedIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *ModelRegistryModelMinStakeUpdatedIterator) Next() bool { +func (it *ModelRegistryModelMinimumStakeSetIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -762,7 +1032,7 @@ func (it *ModelRegistryModelMinStakeUpdatedIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(ModelRegistryModelMinStakeUpdated) + it.Event = new(ModelRegistryModelMinimumStakeSet) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -777,7 +1047,7 @@ func (it *ModelRegistryModelMinStakeUpdatedIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(ModelRegistryModelMinStakeUpdated) + it.Event = new(ModelRegistryModelMinimumStakeSet) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -793,41 +1063,41 @@ func (it *ModelRegistryModelMinStakeUpdatedIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *ModelRegistryModelMinStakeUpdatedIterator) Error() error { +func (it *ModelRegistryModelMinimumStakeSetIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *ModelRegistryModelMinStakeUpdatedIterator) Close() error { +func (it *ModelRegistryModelMinimumStakeSetIterator) Close() error { it.sub.Unsubscribe() return nil } -// ModelRegistryModelMinStakeUpdated represents a ModelMinStakeUpdated event raised by the ModelRegistry contract. -type ModelRegistryModelMinStakeUpdated struct { +// ModelRegistryModelMinimumStakeSet represents a ModelMinimumStakeSet event raised by the ModelRegistry contract. +type ModelRegistryModelMinimumStakeSet struct { NewStake *big.Int Raw types.Log // Blockchain specific contextual infos } -// FilterModelMinStakeUpdated is a free log retrieval operation binding the contract event 0xa7facdcb561b9b7c3091d6bea4b06c48f97f719dade07ba7510a687109161f6e. +// FilterModelMinimumStakeSet is a free log retrieval operation binding the contract event 0xc6a3fed0c85cd0fe428852d641b4474e85fe04352a84d9c83774e5180eed9bea. // -// Solidity: event ModelMinStakeUpdated(uint256 newStake) -func (_ModelRegistry *ModelRegistryFilterer) FilterModelMinStakeUpdated(opts *bind.FilterOpts) (*ModelRegistryModelMinStakeUpdatedIterator, error) { +// Solidity: event ModelMinimumStakeSet(uint256 newStake) +func (_ModelRegistry *ModelRegistryFilterer) FilterModelMinimumStakeSet(opts *bind.FilterOpts) (*ModelRegistryModelMinimumStakeSetIterator, error) { - logs, sub, err := _ModelRegistry.contract.FilterLogs(opts, "ModelMinStakeUpdated") + logs, sub, err := _ModelRegistry.contract.FilterLogs(opts, "ModelMinimumStakeSet") if err != nil { return nil, err } - return &ModelRegistryModelMinStakeUpdatedIterator{contract: _ModelRegistry.contract, event: "ModelMinStakeUpdated", logs: logs, sub: sub}, nil + return &ModelRegistryModelMinimumStakeSetIterator{contract: _ModelRegistry.contract, event: "ModelMinimumStakeSet", logs: logs, sub: sub}, nil } -// WatchModelMinStakeUpdated is a free log subscription operation binding the contract event 0xa7facdcb561b9b7c3091d6bea4b06c48f97f719dade07ba7510a687109161f6e. +// WatchModelMinimumStakeSet is a free log subscription operation binding the contract event 0xc6a3fed0c85cd0fe428852d641b4474e85fe04352a84d9c83774e5180eed9bea. // -// Solidity: event ModelMinStakeUpdated(uint256 newStake) -func (_ModelRegistry *ModelRegistryFilterer) WatchModelMinStakeUpdated(opts *bind.WatchOpts, sink chan<- *ModelRegistryModelMinStakeUpdated) (event.Subscription, error) { +// Solidity: event ModelMinimumStakeSet(uint256 newStake) +func (_ModelRegistry *ModelRegistryFilterer) WatchModelMinimumStakeSet(opts *bind.WatchOpts, sink chan<- *ModelRegistryModelMinimumStakeSet) (event.Subscription, error) { - logs, sub, err := _ModelRegistry.contract.WatchLogs(opts, "ModelMinStakeUpdated") + logs, sub, err := _ModelRegistry.contract.WatchLogs(opts, "ModelMinimumStakeSet") if err != nil { return nil, err } @@ -837,8 +1107,8 @@ func (_ModelRegistry *ModelRegistryFilterer) WatchModelMinStakeUpdated(opts *bin select { case log := <-logs: // New log arrived, parse the event and forward to the user - event := new(ModelRegistryModelMinStakeUpdated) - if err := _ModelRegistry.contract.UnpackLog(event, "ModelMinStakeUpdated", log); err != nil { + event := new(ModelRegistryModelMinimumStakeSet) + if err := _ModelRegistry.contract.UnpackLog(event, "ModelMinimumStakeSet", log); err != nil { return err } event.Raw = log @@ -859,12 +1129,12 @@ func (_ModelRegistry *ModelRegistryFilterer) WatchModelMinStakeUpdated(opts *bin }), nil } -// ParseModelMinStakeUpdated is a log parse operation binding the contract event 0xa7facdcb561b9b7c3091d6bea4b06c48f97f719dade07ba7510a687109161f6e. +// ParseModelMinimumStakeSet is a log parse operation binding the contract event 0xc6a3fed0c85cd0fe428852d641b4474e85fe04352a84d9c83774e5180eed9bea. // -// Solidity: event ModelMinStakeUpdated(uint256 newStake) -func (_ModelRegistry *ModelRegistryFilterer) ParseModelMinStakeUpdated(log types.Log) (*ModelRegistryModelMinStakeUpdated, error) { - event := new(ModelRegistryModelMinStakeUpdated) - if err := _ModelRegistry.contract.UnpackLog(event, "ModelMinStakeUpdated", log); err != nil { +// Solidity: event ModelMinimumStakeSet(uint256 newStake) +func (_ModelRegistry *ModelRegistryFilterer) ParseModelMinimumStakeSet(log types.Log) (*ModelRegistryModelMinimumStakeSet, error) { + event := new(ModelRegistryModelMinimumStakeSet) + if err := _ModelRegistry.contract.UnpackLog(event, "ModelMinimumStakeSet", log); err != nil { return nil, err } event.Raw = log diff --git a/proxy-router/contracts/morpheustoken/MorpheusToken.go b/proxy-router/contracts/morpheustoken/MorpheusToken.go index f51909ce..35e7a822 100644 --- a/proxy-router/contracts/morpheustoken/MorpheusToken.go +++ b/proxy-router/contracts/morpheustoken/MorpheusToken.go @@ -31,7 +31,7 @@ var ( // MorpheusTokenMetaData contains all meta data concerning the MorpheusToken contract. var MorpheusTokenMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", } // MorpheusTokenABI is the input ABI used to generate the binding from. @@ -368,65 +368,107 @@ func (_MorpheusToken *MorpheusTokenCallerSession) TotalSupply() (*big.Int, error // Approve is a paid mutator transaction binding the contract method 0x095ea7b3. // -// Solidity: function approve(address spender, uint256 value) returns(bool) -func (_MorpheusToken *MorpheusTokenTransactor) Approve(opts *bind.TransactOpts, spender common.Address, value *big.Int) (*types.Transaction, error) { - return _MorpheusToken.contract.Transact(opts, "approve", spender, value) +// Solidity: function approve(address spender, uint256 amount) returns(bool) +func (_MorpheusToken *MorpheusTokenTransactor) Approve(opts *bind.TransactOpts, spender common.Address, amount *big.Int) (*types.Transaction, error) { + return _MorpheusToken.contract.Transact(opts, "approve", spender, amount) } // Approve is a paid mutator transaction binding the contract method 0x095ea7b3. // -// Solidity: function approve(address spender, uint256 value) returns(bool) -func (_MorpheusToken *MorpheusTokenSession) Approve(spender common.Address, value *big.Int) (*types.Transaction, error) { - return _MorpheusToken.Contract.Approve(&_MorpheusToken.TransactOpts, spender, value) +// Solidity: function approve(address spender, uint256 amount) returns(bool) +func (_MorpheusToken *MorpheusTokenSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) { + return _MorpheusToken.Contract.Approve(&_MorpheusToken.TransactOpts, spender, amount) } // Approve is a paid mutator transaction binding the contract method 0x095ea7b3. // -// Solidity: function approve(address spender, uint256 value) returns(bool) -func (_MorpheusToken *MorpheusTokenTransactorSession) Approve(spender common.Address, value *big.Int) (*types.Transaction, error) { - return _MorpheusToken.Contract.Approve(&_MorpheusToken.TransactOpts, spender, value) +// Solidity: function approve(address spender, uint256 amount) returns(bool) +func (_MorpheusToken *MorpheusTokenTransactorSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) { + return _MorpheusToken.Contract.Approve(&_MorpheusToken.TransactOpts, spender, amount) +} + +// DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7. +// +// Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool) +func (_MorpheusToken *MorpheusTokenTransactor) DecreaseAllowance(opts *bind.TransactOpts, spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) { + return _MorpheusToken.contract.Transact(opts, "decreaseAllowance", spender, subtractedValue) +} + +// DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7. +// +// Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool) +func (_MorpheusToken *MorpheusTokenSession) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) { + return _MorpheusToken.Contract.DecreaseAllowance(&_MorpheusToken.TransactOpts, spender, subtractedValue) +} + +// DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7. +// +// Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool) +func (_MorpheusToken *MorpheusTokenTransactorSession) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) { + return _MorpheusToken.Contract.DecreaseAllowance(&_MorpheusToken.TransactOpts, spender, subtractedValue) +} + +// IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351. +// +// Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool) +func (_MorpheusToken *MorpheusTokenTransactor) IncreaseAllowance(opts *bind.TransactOpts, spender common.Address, addedValue *big.Int) (*types.Transaction, error) { + return _MorpheusToken.contract.Transact(opts, "increaseAllowance", spender, addedValue) +} + +// IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351. +// +// Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool) +func (_MorpheusToken *MorpheusTokenSession) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) { + return _MorpheusToken.Contract.IncreaseAllowance(&_MorpheusToken.TransactOpts, spender, addedValue) +} + +// IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351. +// +// Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool) +func (_MorpheusToken *MorpheusTokenTransactorSession) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) { + return _MorpheusToken.Contract.IncreaseAllowance(&_MorpheusToken.TransactOpts, spender, addedValue) } // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. // -// Solidity: function transfer(address to, uint256 value) returns(bool) -func (_MorpheusToken *MorpheusTokenTransactor) Transfer(opts *bind.TransactOpts, to common.Address, value *big.Int) (*types.Transaction, error) { - return _MorpheusToken.contract.Transact(opts, "transfer", to, value) +// Solidity: function transfer(address to, uint256 amount) returns(bool) +func (_MorpheusToken *MorpheusTokenTransactor) Transfer(opts *bind.TransactOpts, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _MorpheusToken.contract.Transact(opts, "transfer", to, amount) } // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. // -// Solidity: function transfer(address to, uint256 value) returns(bool) -func (_MorpheusToken *MorpheusTokenSession) Transfer(to common.Address, value *big.Int) (*types.Transaction, error) { - return _MorpheusToken.Contract.Transfer(&_MorpheusToken.TransactOpts, to, value) +// Solidity: function transfer(address to, uint256 amount) returns(bool) +func (_MorpheusToken *MorpheusTokenSession) Transfer(to common.Address, amount *big.Int) (*types.Transaction, error) { + return _MorpheusToken.Contract.Transfer(&_MorpheusToken.TransactOpts, to, amount) } // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. // -// Solidity: function transfer(address to, uint256 value) returns(bool) -func (_MorpheusToken *MorpheusTokenTransactorSession) Transfer(to common.Address, value *big.Int) (*types.Transaction, error) { - return _MorpheusToken.Contract.Transfer(&_MorpheusToken.TransactOpts, to, value) +// Solidity: function transfer(address to, uint256 amount) returns(bool) +func (_MorpheusToken *MorpheusTokenTransactorSession) Transfer(to common.Address, amount *big.Int) (*types.Transaction, error) { + return _MorpheusToken.Contract.Transfer(&_MorpheusToken.TransactOpts, to, amount) } // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. // -// Solidity: function transferFrom(address from, address to, uint256 value) returns(bool) -func (_MorpheusToken *MorpheusTokenTransactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, value *big.Int) (*types.Transaction, error) { - return _MorpheusToken.contract.Transact(opts, "transferFrom", from, to, value) +// Solidity: function transferFrom(address from, address to, uint256 amount) returns(bool) +func (_MorpheusToken *MorpheusTokenTransactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _MorpheusToken.contract.Transact(opts, "transferFrom", from, to, amount) } // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. // -// Solidity: function transferFrom(address from, address to, uint256 value) returns(bool) -func (_MorpheusToken *MorpheusTokenSession) TransferFrom(from common.Address, to common.Address, value *big.Int) (*types.Transaction, error) { - return _MorpheusToken.Contract.TransferFrom(&_MorpheusToken.TransactOpts, from, to, value) +// Solidity: function transferFrom(address from, address to, uint256 amount) returns(bool) +func (_MorpheusToken *MorpheusTokenSession) TransferFrom(from common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _MorpheusToken.Contract.TransferFrom(&_MorpheusToken.TransactOpts, from, to, amount) } // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. // -// Solidity: function transferFrom(address from, address to, uint256 value) returns(bool) -func (_MorpheusToken *MorpheusTokenTransactorSession) TransferFrom(from common.Address, to common.Address, value *big.Int) (*types.Transaction, error) { - return _MorpheusToken.Contract.TransferFrom(&_MorpheusToken.TransactOpts, from, to, value) +// Solidity: function transferFrom(address from, address to, uint256 amount) returns(bool) +func (_MorpheusToken *MorpheusTokenTransactorSession) TransferFrom(from common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _MorpheusToken.Contract.TransferFrom(&_MorpheusToken.TransactOpts, from, to, amount) } // MorpheusTokenApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the MorpheusToken contract. diff --git a/proxy-router/contracts/providerregistry/ProviderRegistry.go b/proxy-router/contracts/providerregistry/ProviderRegistry.go index 48c90be2..0dabde87 100644 --- a/proxy-router/contracts/providerregistry/ProviderRegistry.go +++ b/proxy-router/contracts/providerregistry/ProviderRegistry.go @@ -29,8 +29,18 @@ var ( _ = abi.ConvertType ) -// Provider is an auto generated low-level Go binding around an user-defined struct. -type Provider struct { +// IBidStorageBid is an auto generated low-level Go binding around an user-defined struct. +type IBidStorageBid struct { + Provider common.Address + ModelId [32]byte + PricePerSecond *big.Int + Nonce *big.Int + CreatedAt *big.Int + DeletedAt *big.Int +} + +// IProviderStorageProvider is an auto generated low-level Go binding around an user-defined struct. +type IProviderStorageProvider struct { Endpoint string Stake *big.Int CreatedAt *big.Int @@ -41,7 +51,7 @@ type Provider struct { // ProviderRegistryMetaData contains all meta data concerning the ProviderRegistry contract. var ProviderRegistryMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[],\"name\":\"ErrNoStake\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrNoWithdrawableStake\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrProviderNotDeleted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"KeyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"KeyNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_contractOwner\",\"type\":\"address\"}],\"name\":\"NotContractOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSenderOrOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProviderHasActiveBids\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StakeTooLow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroKey\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"}],\"name\":\"ProviderDeregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newStake\",\"type\":\"uint256\"}],\"name\":\"ProviderMinStakeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"}],\"name\":\"ProviderRegisteredUpdated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"providerDeregister\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"providerExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"providerGetAll\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"endpoint\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"limitPeriodEnd\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"limitPeriodEarned\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isDeleted\",\"type\":\"bool\"}],\"internalType\":\"structProvider[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"providerGetByIndex\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"endpoint\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"limitPeriodEnd\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"limitPeriodEarned\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isDeleted\",\"type\":\"bool\"}],\"internalType\":\"structProvider\",\"name\":\"provider\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"providerGetCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"providerGetIds\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"providerMap\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"endpoint\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"limitPeriodEnd\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"limitPeriodEarned\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isDeleted\",\"type\":\"bool\"}],\"internalType\":\"structProvider\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"providerMinStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addStake\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"endpoint\",\"type\":\"string\"}],\"name\":\"providerRegister\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_minStake\",\"type\":\"uint256\"}],\"name\":\"providerSetMinStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"providerWithdrawStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"providers\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", + ABI: "[{\"inputs\":[],\"name\":\"ErrNoStake\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrNoWithdrawableStake\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrProviderNotDeleted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwnerOrProvider\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account_\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProviderHasActiveBids\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProviderNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StakeTooLow\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"storageSlot\",\"type\":\"bytes32\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"}],\"name\":\"ProviderDeregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newStake\",\"type\":\"uint256\"}],\"name\":\"ProviderMinStakeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"}],\"name\":\"ProviderRegisteredUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ProviderWithdrawnStake\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BID_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DIAMOND_OWNABLE_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROVIDER_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"__ProviderRegistry_init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bidId\",\"type\":\"bytes32\"}],\"name\":\"bids\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"pricePerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"deletedAt\",\"type\":\"uint128\"}],\"internalType\":\"structIBidStorage.Bid\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"}],\"name\":\"getProvider\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"endpoint\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"limitPeriodEnd\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"limitPeriodEarned\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isDeleted\",\"type\":\"bool\"}],\"internalType\":\"structIProviderStorage.Provider\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getToken\",\"outputs\":[{\"internalType\":\"contractIERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"}],\"name\":\"isProviderExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"modelActiveBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"modelBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"providerActiveBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"providerBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"}],\"name\":\"providerDeregister\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"providerMinimumStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"providerAddress_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"endpoint_\",\"type\":\"string\"}],\"name\":\"providerRegister\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"providerMinimumStake_\",\"type\":\"uint256\"}],\"name\":\"providerSetMinStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"}],\"name\":\"providerWithdrawStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", } // ProviderRegistryABI is the input ABI used to generate the binding from. @@ -190,244 +200,291 @@ func (_ProviderRegistry *ProviderRegistryTransactorRaw) Transact(opts *bind.Tran return _ProviderRegistry.Contract.contract.Transact(opts, method, params...) } -// ProviderExists is a free data retrieval call binding the contract method 0xdfc03505. +// BIDSTORAGESLOT is a free data retrieval call binding the contract method 0x4fa816f2. // -// Solidity: function providerExists(address addr) view returns(bool) -func (_ProviderRegistry *ProviderRegistryCaller) ProviderExists(opts *bind.CallOpts, addr common.Address) (bool, error) { +// Solidity: function BID_STORAGE_SLOT() view returns(bytes32) +func (_ProviderRegistry *ProviderRegistryCaller) BIDSTORAGESLOT(opts *bind.CallOpts) ([32]byte, error) { var out []interface{} - err := _ProviderRegistry.contract.Call(opts, &out, "providerExists", addr) + err := _ProviderRegistry.contract.Call(opts, &out, "BID_STORAGE_SLOT") if err != nil { - return *new(bool), err + return *new([32]byte), err } - out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) return out0, err } -// ProviderExists is a free data retrieval call binding the contract method 0xdfc03505. +// BIDSTORAGESLOT is a free data retrieval call binding the contract method 0x4fa816f2. // -// Solidity: function providerExists(address addr) view returns(bool) -func (_ProviderRegistry *ProviderRegistrySession) ProviderExists(addr common.Address) (bool, error) { - return _ProviderRegistry.Contract.ProviderExists(&_ProviderRegistry.CallOpts, addr) +// Solidity: function BID_STORAGE_SLOT() view returns(bytes32) +func (_ProviderRegistry *ProviderRegistrySession) BIDSTORAGESLOT() ([32]byte, error) { + return _ProviderRegistry.Contract.BIDSTORAGESLOT(&_ProviderRegistry.CallOpts) } -// ProviderExists is a free data retrieval call binding the contract method 0xdfc03505. +// BIDSTORAGESLOT is a free data retrieval call binding the contract method 0x4fa816f2. // -// Solidity: function providerExists(address addr) view returns(bool) -func (_ProviderRegistry *ProviderRegistryCallerSession) ProviderExists(addr common.Address) (bool, error) { - return _ProviderRegistry.Contract.ProviderExists(&_ProviderRegistry.CallOpts, addr) +// Solidity: function BID_STORAGE_SLOT() view returns(bytes32) +func (_ProviderRegistry *ProviderRegistryCallerSession) BIDSTORAGESLOT() ([32]byte, error) { + return _ProviderRegistry.Contract.BIDSTORAGESLOT(&_ProviderRegistry.CallOpts) } -// ProviderGetAll is a free data retrieval call binding the contract method 0x86af8fdc. +// DIAMONDOWNABLESTORAGESLOT is a free data retrieval call binding the contract method 0x4ac3371e. // -// Solidity: function providerGetAll() view returns(address[], (string,uint256,uint128,uint128,uint256,bool)[]) -func (_ProviderRegistry *ProviderRegistryCaller) ProviderGetAll(opts *bind.CallOpts) ([]common.Address, []Provider, error) { +// Solidity: function DIAMOND_OWNABLE_STORAGE_SLOT() view returns(bytes32) +func (_ProviderRegistry *ProviderRegistryCaller) DIAMONDOWNABLESTORAGESLOT(opts *bind.CallOpts) ([32]byte, error) { var out []interface{} - err := _ProviderRegistry.contract.Call(opts, &out, "providerGetAll") + err := _ProviderRegistry.contract.Call(opts, &out, "DIAMOND_OWNABLE_STORAGE_SLOT") if err != nil { - return *new([]common.Address), *new([]Provider), err + return *new([32]byte), err } - out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) - out1 := *abi.ConvertType(out[1], new([]Provider)).(*[]Provider) + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) - return out0, out1, err + return out0, err } -// ProviderGetAll is a free data retrieval call binding the contract method 0x86af8fdc. +// DIAMONDOWNABLESTORAGESLOT is a free data retrieval call binding the contract method 0x4ac3371e. // -// Solidity: function providerGetAll() view returns(address[], (string,uint256,uint128,uint128,uint256,bool)[]) -func (_ProviderRegistry *ProviderRegistrySession) ProviderGetAll() ([]common.Address, []Provider, error) { - return _ProviderRegistry.Contract.ProviderGetAll(&_ProviderRegistry.CallOpts) +// Solidity: function DIAMOND_OWNABLE_STORAGE_SLOT() view returns(bytes32) +func (_ProviderRegistry *ProviderRegistrySession) DIAMONDOWNABLESTORAGESLOT() ([32]byte, error) { + return _ProviderRegistry.Contract.DIAMONDOWNABLESTORAGESLOT(&_ProviderRegistry.CallOpts) } -// ProviderGetAll is a free data retrieval call binding the contract method 0x86af8fdc. +// DIAMONDOWNABLESTORAGESLOT is a free data retrieval call binding the contract method 0x4ac3371e. // -// Solidity: function providerGetAll() view returns(address[], (string,uint256,uint128,uint128,uint256,bool)[]) -func (_ProviderRegistry *ProviderRegistryCallerSession) ProviderGetAll() ([]common.Address, []Provider, error) { - return _ProviderRegistry.Contract.ProviderGetAll(&_ProviderRegistry.CallOpts) +// Solidity: function DIAMOND_OWNABLE_STORAGE_SLOT() view returns(bytes32) +func (_ProviderRegistry *ProviderRegistryCallerSession) DIAMONDOWNABLESTORAGESLOT() ([32]byte, error) { + return _ProviderRegistry.Contract.DIAMONDOWNABLESTORAGESLOT(&_ProviderRegistry.CallOpts) } -// ProviderGetByIndex is a free data retrieval call binding the contract method 0xb8eed333. +// PROVIDERSTORAGESLOT is a free data retrieval call binding the contract method 0x490713b1. // -// Solidity: function providerGetByIndex(uint256 index) view returns(address addr, (string,uint256,uint128,uint128,uint256,bool) provider) -func (_ProviderRegistry *ProviderRegistryCaller) ProviderGetByIndex(opts *bind.CallOpts, index *big.Int) (struct { - Addr common.Address - Provider Provider -}, error) { +// Solidity: function PROVIDER_STORAGE_SLOT() view returns(bytes32) +func (_ProviderRegistry *ProviderRegistryCaller) PROVIDERSTORAGESLOT(opts *bind.CallOpts) ([32]byte, error) { var out []interface{} - err := _ProviderRegistry.contract.Call(opts, &out, "providerGetByIndex", index) + err := _ProviderRegistry.contract.Call(opts, &out, "PROVIDER_STORAGE_SLOT") - outstruct := new(struct { - Addr common.Address - Provider Provider - }) if err != nil { - return *outstruct, err + return *new([32]byte), err } - outstruct.Addr = *abi.ConvertType(out[0], new(common.Address)).(*common.Address) - outstruct.Provider = *abi.ConvertType(out[1], new(Provider)).(*Provider) + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) - return *outstruct, err + return out0, err } -// ProviderGetByIndex is a free data retrieval call binding the contract method 0xb8eed333. +// PROVIDERSTORAGESLOT is a free data retrieval call binding the contract method 0x490713b1. // -// Solidity: function providerGetByIndex(uint256 index) view returns(address addr, (string,uint256,uint128,uint128,uint256,bool) provider) -func (_ProviderRegistry *ProviderRegistrySession) ProviderGetByIndex(index *big.Int) (struct { - Addr common.Address - Provider Provider -}, error) { - return _ProviderRegistry.Contract.ProviderGetByIndex(&_ProviderRegistry.CallOpts, index) +// Solidity: function PROVIDER_STORAGE_SLOT() view returns(bytes32) +func (_ProviderRegistry *ProviderRegistrySession) PROVIDERSTORAGESLOT() ([32]byte, error) { + return _ProviderRegistry.Contract.PROVIDERSTORAGESLOT(&_ProviderRegistry.CallOpts) } -// ProviderGetByIndex is a free data retrieval call binding the contract method 0xb8eed333. +// PROVIDERSTORAGESLOT is a free data retrieval call binding the contract method 0x490713b1. // -// Solidity: function providerGetByIndex(uint256 index) view returns(address addr, (string,uint256,uint128,uint128,uint256,bool) provider) -func (_ProviderRegistry *ProviderRegistryCallerSession) ProviderGetByIndex(index *big.Int) (struct { - Addr common.Address - Provider Provider -}, error) { - return _ProviderRegistry.Contract.ProviderGetByIndex(&_ProviderRegistry.CallOpts, index) +// Solidity: function PROVIDER_STORAGE_SLOT() view returns(bytes32) +func (_ProviderRegistry *ProviderRegistryCallerSession) PROVIDERSTORAGESLOT() ([32]byte, error) { + return _ProviderRegistry.Contract.PROVIDERSTORAGESLOT(&_ProviderRegistry.CallOpts) } -// ProviderGetCount is a free data retrieval call binding the contract method 0x91d2b7eb. +// Bids is a free data retrieval call binding the contract method 0x8f98eeda. // -// Solidity: function providerGetCount() view returns(uint256 count) -func (_ProviderRegistry *ProviderRegistryCaller) ProviderGetCount(opts *bind.CallOpts) (*big.Int, error) { +// Solidity: function bids(bytes32 bidId) view returns((address,bytes32,uint256,uint256,uint128,uint128)) +func (_ProviderRegistry *ProviderRegistryCaller) Bids(opts *bind.CallOpts, bidId [32]byte) (IBidStorageBid, error) { var out []interface{} - err := _ProviderRegistry.contract.Call(opts, &out, "providerGetCount") + err := _ProviderRegistry.contract.Call(opts, &out, "bids", bidId) if err != nil { - return *new(*big.Int), err + return *new(IBidStorageBid), err } - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + out0 := *abi.ConvertType(out[0], new(IBidStorageBid)).(*IBidStorageBid) return out0, err } -// ProviderGetCount is a free data retrieval call binding the contract method 0x91d2b7eb. +// Bids is a free data retrieval call binding the contract method 0x8f98eeda. // -// Solidity: function providerGetCount() view returns(uint256 count) -func (_ProviderRegistry *ProviderRegistrySession) ProviderGetCount() (*big.Int, error) { - return _ProviderRegistry.Contract.ProviderGetCount(&_ProviderRegistry.CallOpts) +// Solidity: function bids(bytes32 bidId) view returns((address,bytes32,uint256,uint256,uint128,uint128)) +func (_ProviderRegistry *ProviderRegistrySession) Bids(bidId [32]byte) (IBidStorageBid, error) { + return _ProviderRegistry.Contract.Bids(&_ProviderRegistry.CallOpts, bidId) } -// ProviderGetCount is a free data retrieval call binding the contract method 0x91d2b7eb. +// Bids is a free data retrieval call binding the contract method 0x8f98eeda. // -// Solidity: function providerGetCount() view returns(uint256 count) -func (_ProviderRegistry *ProviderRegistryCallerSession) ProviderGetCount() (*big.Int, error) { - return _ProviderRegistry.Contract.ProviderGetCount(&_ProviderRegistry.CallOpts) +// Solidity: function bids(bytes32 bidId) view returns((address,bytes32,uint256,uint256,uint128,uint128)) +func (_ProviderRegistry *ProviderRegistryCallerSession) Bids(bidId [32]byte) (IBidStorageBid, error) { + return _ProviderRegistry.Contract.Bids(&_ProviderRegistry.CallOpts, bidId) } -// ProviderGetIds is a free data retrieval call binding the contract method 0x2e888fe1. +// GetProvider is a free data retrieval call binding the contract method 0x55f21eb7. // -// Solidity: function providerGetIds() view returns(address[]) -func (_ProviderRegistry *ProviderRegistryCaller) ProviderGetIds(opts *bind.CallOpts) ([]common.Address, error) { +// Solidity: function getProvider(address provider) view returns((string,uint256,uint128,uint128,uint256,bool)) +func (_ProviderRegistry *ProviderRegistryCaller) GetProvider(opts *bind.CallOpts, provider common.Address) (IProviderStorageProvider, error) { var out []interface{} - err := _ProviderRegistry.contract.Call(opts, &out, "providerGetIds") + err := _ProviderRegistry.contract.Call(opts, &out, "getProvider", provider) if err != nil { - return *new([]common.Address), err + return *new(IProviderStorageProvider), err } - out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + out0 := *abi.ConvertType(out[0], new(IProviderStorageProvider)).(*IProviderStorageProvider) return out0, err } -// ProviderGetIds is a free data retrieval call binding the contract method 0x2e888fe1. +// GetProvider is a free data retrieval call binding the contract method 0x55f21eb7. // -// Solidity: function providerGetIds() view returns(address[]) -func (_ProviderRegistry *ProviderRegistrySession) ProviderGetIds() ([]common.Address, error) { - return _ProviderRegistry.Contract.ProviderGetIds(&_ProviderRegistry.CallOpts) +// Solidity: function getProvider(address provider) view returns((string,uint256,uint128,uint128,uint256,bool)) +func (_ProviderRegistry *ProviderRegistrySession) GetProvider(provider common.Address) (IProviderStorageProvider, error) { + return _ProviderRegistry.Contract.GetProvider(&_ProviderRegistry.CallOpts, provider) } -// ProviderGetIds is a free data retrieval call binding the contract method 0x2e888fe1. +// GetProvider is a free data retrieval call binding the contract method 0x55f21eb7. // -// Solidity: function providerGetIds() view returns(address[]) -func (_ProviderRegistry *ProviderRegistryCallerSession) ProviderGetIds() ([]common.Address, error) { - return _ProviderRegistry.Contract.ProviderGetIds(&_ProviderRegistry.CallOpts) +// Solidity: function getProvider(address provider) view returns((string,uint256,uint128,uint128,uint256,bool)) +func (_ProviderRegistry *ProviderRegistryCallerSession) GetProvider(provider common.Address) (IProviderStorageProvider, error) { + return _ProviderRegistry.Contract.GetProvider(&_ProviderRegistry.CallOpts, provider) } -// ProviderMap is a free data retrieval call binding the contract method 0xa6c87915. +// GetToken is a free data retrieval call binding the contract method 0x21df0da7. // -// Solidity: function providerMap(address addr) view returns((string,uint256,uint128,uint128,uint256,bool)) -func (_ProviderRegistry *ProviderRegistryCaller) ProviderMap(opts *bind.CallOpts, addr common.Address) (Provider, error) { +// Solidity: function getToken() view returns(address) +func (_ProviderRegistry *ProviderRegistryCaller) GetToken(opts *bind.CallOpts) (common.Address, error) { var out []interface{} - err := _ProviderRegistry.contract.Call(opts, &out, "providerMap", addr) + err := _ProviderRegistry.contract.Call(opts, &out, "getToken") if err != nil { - return *new(Provider), err + return *new(common.Address), err } - out0 := *abi.ConvertType(out[0], new(Provider)).(*Provider) + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) return out0, err } -// ProviderMap is a free data retrieval call binding the contract method 0xa6c87915. +// GetToken is a free data retrieval call binding the contract method 0x21df0da7. // -// Solidity: function providerMap(address addr) view returns((string,uint256,uint128,uint128,uint256,bool)) -func (_ProviderRegistry *ProviderRegistrySession) ProviderMap(addr common.Address) (Provider, error) { - return _ProviderRegistry.Contract.ProviderMap(&_ProviderRegistry.CallOpts, addr) +// Solidity: function getToken() view returns(address) +func (_ProviderRegistry *ProviderRegistrySession) GetToken() (common.Address, error) { + return _ProviderRegistry.Contract.GetToken(&_ProviderRegistry.CallOpts) } -// ProviderMap is a free data retrieval call binding the contract method 0xa6c87915. +// GetToken is a free data retrieval call binding the contract method 0x21df0da7. // -// Solidity: function providerMap(address addr) view returns((string,uint256,uint128,uint128,uint256,bool)) -func (_ProviderRegistry *ProviderRegistryCallerSession) ProviderMap(addr common.Address) (Provider, error) { - return _ProviderRegistry.Contract.ProviderMap(&_ProviderRegistry.CallOpts, addr) +// Solidity: function getToken() view returns(address) +func (_ProviderRegistry *ProviderRegistryCallerSession) GetToken() (common.Address, error) { + return _ProviderRegistry.Contract.GetToken(&_ProviderRegistry.CallOpts) } -// ProviderMinStake is a free data retrieval call binding the contract method 0xbcd5641e. +// IsProviderExists is a free data retrieval call binding the contract method 0x41876cc4. // -// Solidity: function providerMinStake() view returns(uint256) -func (_ProviderRegistry *ProviderRegistryCaller) ProviderMinStake(opts *bind.CallOpts) (*big.Int, error) { +// Solidity: function isProviderExists(address provider_) view returns(bool) +func (_ProviderRegistry *ProviderRegistryCaller) IsProviderExists(opts *bind.CallOpts, provider_ common.Address) (bool, error) { var out []interface{} - err := _ProviderRegistry.contract.Call(opts, &out, "providerMinStake") + err := _ProviderRegistry.contract.Call(opts, &out, "isProviderExists", provider_) if err != nil { - return *new(*big.Int), err + return *new(bool), err } - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// IsProviderExists is a free data retrieval call binding the contract method 0x41876cc4. +// +// Solidity: function isProviderExists(address provider_) view returns(bool) +func (_ProviderRegistry *ProviderRegistrySession) IsProviderExists(provider_ common.Address) (bool, error) { + return _ProviderRegistry.Contract.IsProviderExists(&_ProviderRegistry.CallOpts, provider_) +} + +// IsProviderExists is a free data retrieval call binding the contract method 0x41876cc4. +// +// Solidity: function isProviderExists(address provider_) view returns(bool) +func (_ProviderRegistry *ProviderRegistryCallerSession) IsProviderExists(provider_ common.Address) (bool, error) { + return _ProviderRegistry.Contract.IsProviderExists(&_ProviderRegistry.CallOpts, provider_) +} + +// ModelActiveBids is a free data retrieval call binding the contract method 0x3fd8e5e3. +// +// Solidity: function modelActiveBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ProviderRegistry *ProviderRegistryCaller) ModelActiveBids(opts *bind.CallOpts, modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + var out []interface{} + err := _ProviderRegistry.contract.Call(opts, &out, "modelActiveBids", modelId_, offset_, limit_) + + if err != nil { + return *new([][32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) return out0, err } -// ProviderMinStake is a free data retrieval call binding the contract method 0xbcd5641e. +// ModelActiveBids is a free data retrieval call binding the contract method 0x3fd8e5e3. // -// Solidity: function providerMinStake() view returns(uint256) -func (_ProviderRegistry *ProviderRegistrySession) ProviderMinStake() (*big.Int, error) { - return _ProviderRegistry.Contract.ProviderMinStake(&_ProviderRegistry.CallOpts) +// Solidity: function modelActiveBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ProviderRegistry *ProviderRegistrySession) ModelActiveBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _ProviderRegistry.Contract.ModelActiveBids(&_ProviderRegistry.CallOpts, modelId_, offset_, limit_) } -// ProviderMinStake is a free data retrieval call binding the contract method 0xbcd5641e. +// ModelActiveBids is a free data retrieval call binding the contract method 0x3fd8e5e3. // -// Solidity: function providerMinStake() view returns(uint256) -func (_ProviderRegistry *ProviderRegistryCallerSession) ProviderMinStake() (*big.Int, error) { - return _ProviderRegistry.Contract.ProviderMinStake(&_ProviderRegistry.CallOpts) +// Solidity: function modelActiveBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ProviderRegistry *ProviderRegistryCallerSession) ModelActiveBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _ProviderRegistry.Contract.ModelActiveBids(&_ProviderRegistry.CallOpts, modelId_, offset_, limit_) } -// Providers is a free data retrieval call binding the contract method 0x50f3fc81. +// ModelBids is a free data retrieval call binding the contract method 0x5954d1b3. // -// Solidity: function providers(uint256 index) view returns(address) -func (_ProviderRegistry *ProviderRegistryCaller) Providers(opts *bind.CallOpts, index *big.Int) (common.Address, error) { +// Solidity: function modelBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ProviderRegistry *ProviderRegistryCaller) ModelBids(opts *bind.CallOpts, modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { var out []interface{} - err := _ProviderRegistry.contract.Call(opts, &out, "providers", index) + err := _ProviderRegistry.contract.Call(opts, &out, "modelBids", modelId_, offset_, limit_) + + if err != nil { + return *new([][32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) + + return out0, err + +} + +// ModelBids is a free data retrieval call binding the contract method 0x5954d1b3. +// +// Solidity: function modelBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ProviderRegistry *ProviderRegistrySession) ModelBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _ProviderRegistry.Contract.ModelBids(&_ProviderRegistry.CallOpts, modelId_, offset_, limit_) +} + +// ModelBids is a free data retrieval call binding the contract method 0x5954d1b3. +// +// Solidity: function modelBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ProviderRegistry *ProviderRegistryCallerSession) ModelBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _ProviderRegistry.Contract.ModelBids(&_ProviderRegistry.CallOpts, modelId_, offset_, limit_) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_ProviderRegistry *ProviderRegistryCaller) Owner(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ProviderRegistry.contract.Call(opts, &out, "owner") if err != nil { return *new(common.Address), err @@ -439,102 +496,350 @@ func (_ProviderRegistry *ProviderRegistryCaller) Providers(opts *bind.CallOpts, } -// Providers is a free data retrieval call binding the contract method 0x50f3fc81. +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_ProviderRegistry *ProviderRegistrySession) Owner() (common.Address, error) { + return _ProviderRegistry.Contract.Owner(&_ProviderRegistry.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_ProviderRegistry *ProviderRegistryCallerSession) Owner() (common.Address, error) { + return _ProviderRegistry.Contract.Owner(&_ProviderRegistry.CallOpts) +} + +// ProviderActiveBids is a free data retrieval call binding the contract method 0x6dd7d31c. +// +// Solidity: function providerActiveBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ProviderRegistry *ProviderRegistryCaller) ProviderActiveBids(opts *bind.CallOpts, provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + var out []interface{} + err := _ProviderRegistry.contract.Call(opts, &out, "providerActiveBids", provider_, offset_, limit_) + + if err != nil { + return *new([][32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) + + return out0, err + +} + +// ProviderActiveBids is a free data retrieval call binding the contract method 0x6dd7d31c. +// +// Solidity: function providerActiveBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ProviderRegistry *ProviderRegistrySession) ProviderActiveBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _ProviderRegistry.Contract.ProviderActiveBids(&_ProviderRegistry.CallOpts, provider_, offset_, limit_) +} + +// ProviderActiveBids is a free data retrieval call binding the contract method 0x6dd7d31c. +// +// Solidity: function providerActiveBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ProviderRegistry *ProviderRegistryCallerSession) ProviderActiveBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _ProviderRegistry.Contract.ProviderActiveBids(&_ProviderRegistry.CallOpts, provider_, offset_, limit_) +} + +// ProviderBids is a free data retrieval call binding the contract method 0x22fbda9a. +// +// Solidity: function providerBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ProviderRegistry *ProviderRegistryCaller) ProviderBids(opts *bind.CallOpts, provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + var out []interface{} + err := _ProviderRegistry.contract.Call(opts, &out, "providerBids", provider_, offset_, limit_) + + if err != nil { + return *new([][32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) + + return out0, err + +} + +// ProviderBids is a free data retrieval call binding the contract method 0x22fbda9a. +// +// Solidity: function providerBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ProviderRegistry *ProviderRegistrySession) ProviderBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _ProviderRegistry.Contract.ProviderBids(&_ProviderRegistry.CallOpts, provider_, offset_, limit_) +} + +// ProviderBids is a free data retrieval call binding the contract method 0x22fbda9a. +// +// Solidity: function providerBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ProviderRegistry *ProviderRegistryCallerSession) ProviderBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _ProviderRegistry.Contract.ProviderBids(&_ProviderRegistry.CallOpts, provider_, offset_, limit_) +} + +// ProviderMinimumStake is a free data retrieval call binding the contract method 0x9476c58e. +// +// Solidity: function providerMinimumStake() view returns(uint256) +func (_ProviderRegistry *ProviderRegistryCaller) ProviderMinimumStake(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _ProviderRegistry.contract.Call(opts, &out, "providerMinimumStake") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// ProviderMinimumStake is a free data retrieval call binding the contract method 0x9476c58e. +// +// Solidity: function providerMinimumStake() view returns(uint256) +func (_ProviderRegistry *ProviderRegistrySession) ProviderMinimumStake() (*big.Int, error) { + return _ProviderRegistry.Contract.ProviderMinimumStake(&_ProviderRegistry.CallOpts) +} + +// ProviderMinimumStake is a free data retrieval call binding the contract method 0x9476c58e. +// +// Solidity: function providerMinimumStake() view returns(uint256) +func (_ProviderRegistry *ProviderRegistryCallerSession) ProviderMinimumStake() (*big.Int, error) { + return _ProviderRegistry.Contract.ProviderMinimumStake(&_ProviderRegistry.CallOpts) +} + +// ProviderRegistryInit is a paid mutator transaction binding the contract method 0x5c7ce38b. +// +// Solidity: function __ProviderRegistry_init() returns() +func (_ProviderRegistry *ProviderRegistryTransactor) ProviderRegistryInit(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ProviderRegistry.contract.Transact(opts, "__ProviderRegistry_init") +} + +// ProviderRegistryInit is a paid mutator transaction binding the contract method 0x5c7ce38b. // -// Solidity: function providers(uint256 index) view returns(address) -func (_ProviderRegistry *ProviderRegistrySession) Providers(index *big.Int) (common.Address, error) { - return _ProviderRegistry.Contract.Providers(&_ProviderRegistry.CallOpts, index) +// Solidity: function __ProviderRegistry_init() returns() +func (_ProviderRegistry *ProviderRegistrySession) ProviderRegistryInit() (*types.Transaction, error) { + return _ProviderRegistry.Contract.ProviderRegistryInit(&_ProviderRegistry.TransactOpts) } -// Providers is a free data retrieval call binding the contract method 0x50f3fc81. +// ProviderRegistryInit is a paid mutator transaction binding the contract method 0x5c7ce38b. // -// Solidity: function providers(uint256 index) view returns(address) -func (_ProviderRegistry *ProviderRegistryCallerSession) Providers(index *big.Int) (common.Address, error) { - return _ProviderRegistry.Contract.Providers(&_ProviderRegistry.CallOpts, index) +// Solidity: function __ProviderRegistry_init() returns() +func (_ProviderRegistry *ProviderRegistryTransactorSession) ProviderRegistryInit() (*types.Transaction, error) { + return _ProviderRegistry.Contract.ProviderRegistryInit(&_ProviderRegistry.TransactOpts) } // ProviderDeregister is a paid mutator transaction binding the contract method 0x2ca36c49. // -// Solidity: function providerDeregister(address addr) returns() -func (_ProviderRegistry *ProviderRegistryTransactor) ProviderDeregister(opts *bind.TransactOpts, addr common.Address) (*types.Transaction, error) { - return _ProviderRegistry.contract.Transact(opts, "providerDeregister", addr) +// Solidity: function providerDeregister(address provider_) returns() +func (_ProviderRegistry *ProviderRegistryTransactor) ProviderDeregister(opts *bind.TransactOpts, provider_ common.Address) (*types.Transaction, error) { + return _ProviderRegistry.contract.Transact(opts, "providerDeregister", provider_) } // ProviderDeregister is a paid mutator transaction binding the contract method 0x2ca36c49. // -// Solidity: function providerDeregister(address addr) returns() -func (_ProviderRegistry *ProviderRegistrySession) ProviderDeregister(addr common.Address) (*types.Transaction, error) { - return _ProviderRegistry.Contract.ProviderDeregister(&_ProviderRegistry.TransactOpts, addr) +// Solidity: function providerDeregister(address provider_) returns() +func (_ProviderRegistry *ProviderRegistrySession) ProviderDeregister(provider_ common.Address) (*types.Transaction, error) { + return _ProviderRegistry.Contract.ProviderDeregister(&_ProviderRegistry.TransactOpts, provider_) } // ProviderDeregister is a paid mutator transaction binding the contract method 0x2ca36c49. // -// Solidity: function providerDeregister(address addr) returns() -func (_ProviderRegistry *ProviderRegistryTransactorSession) ProviderDeregister(addr common.Address) (*types.Transaction, error) { - return _ProviderRegistry.Contract.ProviderDeregister(&_ProviderRegistry.TransactOpts, addr) +// Solidity: function providerDeregister(address provider_) returns() +func (_ProviderRegistry *ProviderRegistryTransactorSession) ProviderDeregister(provider_ common.Address) (*types.Transaction, error) { + return _ProviderRegistry.Contract.ProviderDeregister(&_ProviderRegistry.TransactOpts, provider_) } // ProviderRegister is a paid mutator transaction binding the contract method 0x365700cb. // -// Solidity: function providerRegister(address addr, uint256 addStake, string endpoint) returns() -func (_ProviderRegistry *ProviderRegistryTransactor) ProviderRegister(opts *bind.TransactOpts, addr common.Address, addStake *big.Int, endpoint string) (*types.Transaction, error) { - return _ProviderRegistry.contract.Transact(opts, "providerRegister", addr, addStake, endpoint) +// Solidity: function providerRegister(address providerAddress_, uint256 amount_, string endpoint_) returns() +func (_ProviderRegistry *ProviderRegistryTransactor) ProviderRegister(opts *bind.TransactOpts, providerAddress_ common.Address, amount_ *big.Int, endpoint_ string) (*types.Transaction, error) { + return _ProviderRegistry.contract.Transact(opts, "providerRegister", providerAddress_, amount_, endpoint_) } // ProviderRegister is a paid mutator transaction binding the contract method 0x365700cb. // -// Solidity: function providerRegister(address addr, uint256 addStake, string endpoint) returns() -func (_ProviderRegistry *ProviderRegistrySession) ProviderRegister(addr common.Address, addStake *big.Int, endpoint string) (*types.Transaction, error) { - return _ProviderRegistry.Contract.ProviderRegister(&_ProviderRegistry.TransactOpts, addr, addStake, endpoint) +// Solidity: function providerRegister(address providerAddress_, uint256 amount_, string endpoint_) returns() +func (_ProviderRegistry *ProviderRegistrySession) ProviderRegister(providerAddress_ common.Address, amount_ *big.Int, endpoint_ string) (*types.Transaction, error) { + return _ProviderRegistry.Contract.ProviderRegister(&_ProviderRegistry.TransactOpts, providerAddress_, amount_, endpoint_) } // ProviderRegister is a paid mutator transaction binding the contract method 0x365700cb. // -// Solidity: function providerRegister(address addr, uint256 addStake, string endpoint) returns() -func (_ProviderRegistry *ProviderRegistryTransactorSession) ProviderRegister(addr common.Address, addStake *big.Int, endpoint string) (*types.Transaction, error) { - return _ProviderRegistry.Contract.ProviderRegister(&_ProviderRegistry.TransactOpts, addr, addStake, endpoint) +// Solidity: function providerRegister(address providerAddress_, uint256 amount_, string endpoint_) returns() +func (_ProviderRegistry *ProviderRegistryTransactorSession) ProviderRegister(providerAddress_ common.Address, amount_ *big.Int, endpoint_ string) (*types.Transaction, error) { + return _ProviderRegistry.Contract.ProviderRegister(&_ProviderRegistry.TransactOpts, providerAddress_, amount_, endpoint_) } // ProviderSetMinStake is a paid mutator transaction binding the contract method 0x0b7f94d6. // -// Solidity: function providerSetMinStake(uint256 _minStake) returns() -func (_ProviderRegistry *ProviderRegistryTransactor) ProviderSetMinStake(opts *bind.TransactOpts, _minStake *big.Int) (*types.Transaction, error) { - return _ProviderRegistry.contract.Transact(opts, "providerSetMinStake", _minStake) +// Solidity: function providerSetMinStake(uint256 providerMinimumStake_) returns() +func (_ProviderRegistry *ProviderRegistryTransactor) ProviderSetMinStake(opts *bind.TransactOpts, providerMinimumStake_ *big.Int) (*types.Transaction, error) { + return _ProviderRegistry.contract.Transact(opts, "providerSetMinStake", providerMinimumStake_) } // ProviderSetMinStake is a paid mutator transaction binding the contract method 0x0b7f94d6. // -// Solidity: function providerSetMinStake(uint256 _minStake) returns() -func (_ProviderRegistry *ProviderRegistrySession) ProviderSetMinStake(_minStake *big.Int) (*types.Transaction, error) { - return _ProviderRegistry.Contract.ProviderSetMinStake(&_ProviderRegistry.TransactOpts, _minStake) +// Solidity: function providerSetMinStake(uint256 providerMinimumStake_) returns() +func (_ProviderRegistry *ProviderRegistrySession) ProviderSetMinStake(providerMinimumStake_ *big.Int) (*types.Transaction, error) { + return _ProviderRegistry.Contract.ProviderSetMinStake(&_ProviderRegistry.TransactOpts, providerMinimumStake_) } // ProviderSetMinStake is a paid mutator transaction binding the contract method 0x0b7f94d6. // -// Solidity: function providerSetMinStake(uint256 _minStake) returns() -func (_ProviderRegistry *ProviderRegistryTransactorSession) ProviderSetMinStake(_minStake *big.Int) (*types.Transaction, error) { - return _ProviderRegistry.Contract.ProviderSetMinStake(&_ProviderRegistry.TransactOpts, _minStake) +// Solidity: function providerSetMinStake(uint256 providerMinimumStake_) returns() +func (_ProviderRegistry *ProviderRegistryTransactorSession) ProviderSetMinStake(providerMinimumStake_ *big.Int) (*types.Transaction, error) { + return _ProviderRegistry.Contract.ProviderSetMinStake(&_ProviderRegistry.TransactOpts, providerMinimumStake_) } // ProviderWithdrawStake is a paid mutator transaction binding the contract method 0x8209d9ed. // -// Solidity: function providerWithdrawStake(address addr) returns() -func (_ProviderRegistry *ProviderRegistryTransactor) ProviderWithdrawStake(opts *bind.TransactOpts, addr common.Address) (*types.Transaction, error) { - return _ProviderRegistry.contract.Transact(opts, "providerWithdrawStake", addr) +// Solidity: function providerWithdrawStake(address provider_) returns() +func (_ProviderRegistry *ProviderRegistryTransactor) ProviderWithdrawStake(opts *bind.TransactOpts, provider_ common.Address) (*types.Transaction, error) { + return _ProviderRegistry.contract.Transact(opts, "providerWithdrawStake", provider_) } // ProviderWithdrawStake is a paid mutator transaction binding the contract method 0x8209d9ed. // -// Solidity: function providerWithdrawStake(address addr) returns() -func (_ProviderRegistry *ProviderRegistrySession) ProviderWithdrawStake(addr common.Address) (*types.Transaction, error) { - return _ProviderRegistry.Contract.ProviderWithdrawStake(&_ProviderRegistry.TransactOpts, addr) +// Solidity: function providerWithdrawStake(address provider_) returns() +func (_ProviderRegistry *ProviderRegistrySession) ProviderWithdrawStake(provider_ common.Address) (*types.Transaction, error) { + return _ProviderRegistry.Contract.ProviderWithdrawStake(&_ProviderRegistry.TransactOpts, provider_) } // ProviderWithdrawStake is a paid mutator transaction binding the contract method 0x8209d9ed. // -// Solidity: function providerWithdrawStake(address addr) returns() -func (_ProviderRegistry *ProviderRegistryTransactorSession) ProviderWithdrawStake(addr common.Address) (*types.Transaction, error) { - return _ProviderRegistry.Contract.ProviderWithdrawStake(&_ProviderRegistry.TransactOpts, addr) +// Solidity: function providerWithdrawStake(address provider_) returns() +func (_ProviderRegistry *ProviderRegistryTransactorSession) ProviderWithdrawStake(provider_ common.Address) (*types.Transaction, error) { + return _ProviderRegistry.Contract.ProviderWithdrawStake(&_ProviderRegistry.TransactOpts, provider_) +} + +// ProviderRegistryInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the ProviderRegistry contract. +type ProviderRegistryInitializedIterator struct { + Event *ProviderRegistryInitialized // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ProviderRegistryInitializedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ProviderRegistryInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ProviderRegistryInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ProviderRegistryInitializedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ProviderRegistryInitializedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ProviderRegistryInitialized represents a Initialized event raised by the ProviderRegistry contract. +type ProviderRegistryInitialized struct { + StorageSlot [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterInitialized is a free log retrieval operation binding the contract event 0xdc73717d728bcfa015e8117438a65319aa06e979ca324afa6e1ea645c28ea15d. +// +// Solidity: event Initialized(bytes32 storageSlot) +func (_ProviderRegistry *ProviderRegistryFilterer) FilterInitialized(opts *bind.FilterOpts) (*ProviderRegistryInitializedIterator, error) { + + logs, sub, err := _ProviderRegistry.contract.FilterLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return &ProviderRegistryInitializedIterator{contract: _ProviderRegistry.contract, event: "Initialized", logs: logs, sub: sub}, nil +} + +// WatchInitialized is a free log subscription operation binding the contract event 0xdc73717d728bcfa015e8117438a65319aa06e979ca324afa6e1ea645c28ea15d. +// +// Solidity: event Initialized(bytes32 storageSlot) +func (_ProviderRegistry *ProviderRegistryFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *ProviderRegistryInitialized) (event.Subscription, error) { + + logs, sub, err := _ProviderRegistry.contract.WatchLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ProviderRegistryInitialized) + if err := _ProviderRegistry.contract.UnpackLog(event, "Initialized", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseInitialized is a log parse operation binding the contract event 0xdc73717d728bcfa015e8117438a65319aa06e979ca324afa6e1ea645c28ea15d. +// +// Solidity: event Initialized(bytes32 storageSlot) +func (_ProviderRegistry *ProviderRegistryFilterer) ParseInitialized(log types.Log) (*ProviderRegistryInitialized, error) { + event := new(ProviderRegistryInitialized) + if err := _ProviderRegistry.contract.UnpackLog(event, "Initialized", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil } // ProviderRegistryProviderDeregisteredIterator is returned from FilterProviderDeregistered and is used to iterate over the raw logs and unpacked data for ProviderDeregistered events raised by the ProviderRegistry contract. @@ -958,3 +1263,148 @@ func (_ProviderRegistry *ProviderRegistryFilterer) ParseProviderRegisteredUpdate event.Raw = log return event, nil } + +// ProviderRegistryProviderWithdrawnStakeIterator is returned from FilterProviderWithdrawnStake and is used to iterate over the raw logs and unpacked data for ProviderWithdrawnStake events raised by the ProviderRegistry contract. +type ProviderRegistryProviderWithdrawnStakeIterator struct { + Event *ProviderRegistryProviderWithdrawnStake // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ProviderRegistryProviderWithdrawnStakeIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ProviderRegistryProviderWithdrawnStake) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ProviderRegistryProviderWithdrawnStake) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ProviderRegistryProviderWithdrawnStakeIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ProviderRegistryProviderWithdrawnStakeIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ProviderRegistryProviderWithdrawnStake represents a ProviderWithdrawnStake event raised by the ProviderRegistry contract. +type ProviderRegistryProviderWithdrawnStake struct { + Provider common.Address + Amount *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterProviderWithdrawnStake is a free log retrieval operation binding the contract event 0x51bcac309509d42be030eac333c3d18a8a05c7b400560ce45b122bba5877c76d. +// +// Solidity: event ProviderWithdrawnStake(address indexed provider, uint256 amount) +func (_ProviderRegistry *ProviderRegistryFilterer) FilterProviderWithdrawnStake(opts *bind.FilterOpts, provider []common.Address) (*ProviderRegistryProviderWithdrawnStakeIterator, error) { + + var providerRule []interface{} + for _, providerItem := range provider { + providerRule = append(providerRule, providerItem) + } + + logs, sub, err := _ProviderRegistry.contract.FilterLogs(opts, "ProviderWithdrawnStake", providerRule) + if err != nil { + return nil, err + } + return &ProviderRegistryProviderWithdrawnStakeIterator{contract: _ProviderRegistry.contract, event: "ProviderWithdrawnStake", logs: logs, sub: sub}, nil +} + +// WatchProviderWithdrawnStake is a free log subscription operation binding the contract event 0x51bcac309509d42be030eac333c3d18a8a05c7b400560ce45b122bba5877c76d. +// +// Solidity: event ProviderWithdrawnStake(address indexed provider, uint256 amount) +func (_ProviderRegistry *ProviderRegistryFilterer) WatchProviderWithdrawnStake(opts *bind.WatchOpts, sink chan<- *ProviderRegistryProviderWithdrawnStake, provider []common.Address) (event.Subscription, error) { + + var providerRule []interface{} + for _, providerItem := range provider { + providerRule = append(providerRule, providerItem) + } + + logs, sub, err := _ProviderRegistry.contract.WatchLogs(opts, "ProviderWithdrawnStake", providerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ProviderRegistryProviderWithdrawnStake) + if err := _ProviderRegistry.contract.UnpackLog(event, "ProviderWithdrawnStake", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseProviderWithdrawnStake is a log parse operation binding the contract event 0x51bcac309509d42be030eac333c3d18a8a05c7b400560ce45b122bba5877c76d. +// +// Solidity: event ProviderWithdrawnStake(address indexed provider, uint256 amount) +func (_ProviderRegistry *ProviderRegistryFilterer) ParseProviderWithdrawnStake(log types.Log) (*ProviderRegistryProviderWithdrawnStake, error) { + event := new(ProviderRegistryProviderWithdrawnStake) + if err := _ProviderRegistry.contract.UnpackLog(event, "ProviderWithdrawnStake", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/proxy-router/contracts/sessionrouter/SessionRouter.go b/proxy-router/contracts/sessionrouter/SessionRouter.go index 65e6a0a1..ad5fb484 100644 --- a/proxy-router/contracts/sessionrouter/SessionRouter.go +++ b/proxy-router/contracts/sessionrouter/SessionRouter.go @@ -29,21 +29,41 @@ var ( _ = abi.ConvertType ) -// Pool is an auto generated low-level Go binding around an user-defined struct. -type Pool struct { +// IBidStorageBid is an auto generated low-level Go binding around an user-defined struct. +type IBidStorageBid struct { + Provider common.Address + ModelId [32]byte + PricePerSecond *big.Int + Nonce *big.Int + CreatedAt *big.Int + DeletedAt *big.Int +} + +// IProviderStorageProvider is an auto generated low-level Go binding around an user-defined struct. +type IProviderStorageProvider struct { + Endpoint string + Stake *big.Int + CreatedAt *big.Int + LimitPeriodEnd *big.Int + LimitPeriodEarned *big.Int + IsDeleted bool +} + +// ISessionStoragePool is an auto generated low-level Go binding around an user-defined struct. +type ISessionStoragePool struct { InitialReward *big.Int RewardDecrease *big.Int PayoutStart *big.Int DecreaseInterval *big.Int } -// Session is an auto generated low-level Go binding around an user-defined struct. -type Session struct { +// ISessionStorageSession is an auto generated low-level Go binding around an user-defined struct. +type ISessionStorageSession struct { Id [32]byte User common.Address Provider common.Address - ModelAgentId [32]byte - BidID [32]byte + ModelId [32]byte + BidId [32]byte Stake *big.Int PricePerSecond *big.Int CloseoutReceipt []byte @@ -54,9 +74,24 @@ type Session struct { ClosedAt *big.Int } +// IStatsStorageProviderModelStats is an auto generated low-level Go binding around an user-defined struct. +type IStatsStorageProviderModelStats struct { + TpsScaled1000 LibSDSD + TtftMs LibSDSD + TotalDuration uint32 + SuccessCount uint32 + TotalCount uint32 +} + +// LibSDSD is an auto generated low-level Go binding around an user-defined struct. +type LibSDSD struct { + Mean int64 + SqSum int64 +} + // SessionRouterMetaData contains all meta data concerning the SessionRouter contract. var SessionRouterMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[],\"name\":\"ApprovedForAnotherUser\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BidNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotDecodeAbi\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicateApproval\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"KeyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"KeyNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_contractOwner\",\"type\":\"address\"}],\"name\":\"NotContractOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughWithdrawableBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSenderOrOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProviderSignatureMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SessionAlreadyClosed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SessionNotClosed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SessionNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SessionTooShort\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignatureExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WithdrawableBalanceLimitByStakeReached\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WrongChaidId\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"userAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"sessionId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"providerId\",\"type\":\"address\"}],\"name\":\"SessionClosed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"userAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"sessionId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"providerId\",\"type\":\"address\"}],\"name\":\"SessionOpened\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MAX_SESSION_DURATION\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MIN_SESSION_DURATION\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SIGNATURE_TTL\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeSessionsCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"sessionId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amountToWithdraw\",\"type\":\"uint256\"}],\"name\":\"claimProviderBalance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"receiptEncoded\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"closeSession\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"sessionId\",\"type\":\"bytes32\"}],\"name\":\"deleteHistory\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"}],\"name\":\"getActiveSessionsByProvider\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelAgentId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"bidID\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"pricePerSecond\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"closeoutReceipt\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"closeoutType\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"providerWithdrawnAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"openedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"endsAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"closedAt\",\"type\":\"uint256\"}],\"internalType\":\"structSession[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"getActiveSessionsByUser\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelAgentId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"bidID\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"pricePerSecond\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"closeoutReceipt\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"closeoutType\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"providerWithdrawnAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"openedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"endsAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"closedAt\",\"type\":\"uint256\"}],\"internalType\":\"structSession[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"getComputeBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"sessionId\",\"type\":\"bytes32\"}],\"name\":\"getProviderClaimableBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"sessionId\",\"type\":\"bytes32\"}],\"name\":\"getSession\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelAgentId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"bidID\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"pricePerSecond\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"closeoutReceipt\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"closeoutType\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"providerWithdrawnAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"openedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"endsAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"closedAt\",\"type\":\"uint256\"}],\"internalType\":\"structSession\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"offset\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"limit\",\"type\":\"uint8\"}],\"name\":\"getSessionsByModel\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelAgentId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"bidID\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"pricePerSecond\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"closeoutReceipt\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"closeoutType\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"providerWithdrawnAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"openedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"endsAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"closedAt\",\"type\":\"uint256\"}],\"internalType\":\"structSession[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"limit\",\"type\":\"uint8\"}],\"name\":\"getSessionsByProvider\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelAgentId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"bidID\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"pricePerSecond\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"closeoutReceipt\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"closeoutType\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"providerWithdrawnAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"openedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"endsAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"closedAt\",\"type\":\"uint256\"}],\"internalType\":\"structSession[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"limit\",\"type\":\"uint8\"}],\"name\":\"getSessionsByUser\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelAgentId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"bidID\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"pricePerSecond\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"closeoutReceipt\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"closeoutType\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"providerWithdrawnAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"openedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"endsAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"closedAt\",\"type\":\"uint256\"}],\"internalType\":\"structSession[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"getTodaysBudget\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_stake\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"providerApproval\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"openSession\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"sessionId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sessionsCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"initialReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rewardDecrease\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"payoutStart\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"decreaseInterval\",\"type\":\"uint128\"}],\"internalType\":\"structPool\",\"name\":\"pool\",\"type\":\"tuple\"}],\"name\":\"setPoolConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sessionStake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"stakeToStipend\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"stipend\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"stipendToStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"totalMORSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sessionStake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"pricePerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"openedAt\",\"type\":\"uint256\"}],\"name\":\"whenSessionEnds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountToWithdraw\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"iterations\",\"type\":\"uint8\"}],\"name\":\"withdrawUserStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"userAddr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"limit\",\"type\":\"uint8\"}],\"name\":\"withdrawableUserStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"avail\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"hold\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", + ABI: "[{\"inputs\":[],\"name\":\"AmountToWithdrawIsZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ApprovedForAnotherUser\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BidNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotDecodeAbi\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicateApproval\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughWithdrawableBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwnerOrProvider\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwnerOrUser\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account_\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolIndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProviderSignatureMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SessionAlreadyClosed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SessionNotClosed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SessionNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SessionTooShort\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignatureExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WithdrawableBalanceLimitByStakeReached\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WrongChainId\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"storageSlot\",\"type\":\"bytes32\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"sessionId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"providerId\",\"type\":\"address\"}],\"name\":\"SessionClosed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"sessionId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"providerId\",\"type\":\"address\"}],\"name\":\"SessionOpened\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BID_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COMPUTE_POOL_INDEX\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DIAMOND_OWNABLE_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_SESSION_DURATION\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MIN_SESSION_DURATION\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROVIDER_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SESSION_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SIGNATURE_TTL\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"STATS_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"fundingAccount_\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"initialReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rewardDecrease\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"payoutStart\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"decreaseInterval\",\"type\":\"uint128\"}],\"internalType\":\"structISessionStorage.Pool[]\",\"name\":\"pools_\",\"type\":\"tuple[]\"}],\"name\":\"__SessionRouter_init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bidId\",\"type\":\"bytes32\"}],\"name\":\"bids\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"pricePerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"deletedAt\",\"type\":\"uint128\"}],\"internalType\":\"structIBidStorage.Bid\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"sessionId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amountToWithdraw_\",\"type\":\"uint256\"}],\"name\":\"claimProviderBalance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"receiptEncoded_\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature_\",\"type\":\"bytes\"}],\"name\":\"closeSession\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"sessionId_\",\"type\":\"bytes32\"}],\"name\":\"deleteHistory\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"limit_\",\"type\":\"uint8\"}],\"name\":\"getActiveBidsRatingByModel\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"pricePerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"deletedAt\",\"type\":\"uint128\"}],\"internalType\":\"structIBidStorage.Bid[]\",\"name\":\"\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"int64\",\"name\":\"mean\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"sqSum\",\"type\":\"int64\"}],\"internalType\":\"structLibSD.SD\",\"name\":\"tpsScaled1000\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"mean\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"sqSum\",\"type\":\"int64\"}],\"internalType\":\"structLibSD.SD\",\"name\":\"ttftMs\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"totalDuration\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"successCount\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"totalCount\",\"type\":\"uint32\"}],\"internalType\":\"structIStatsStorage.ProviderModelStats[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp_\",\"type\":\"uint256\"}],\"name\":\"getComputeBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFundingAccount\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"}],\"name\":\"getProvider\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"endpoint\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"limitPeriodEnd\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"limitPeriodEarned\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isDeleted\",\"type\":\"bool\"}],\"internalType\":\"structIProviderStorage.Provider\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"sessionId_\",\"type\":\"bytes32\"}],\"name\":\"getProviderClaimableBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"stake_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sessionNonce_\",\"type\":\"uint256\"}],\"name\":\"getSessionId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getSessionsByUser\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp_\",\"type\":\"uint256\"}],\"name\":\"getTodaysBudget\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getToken\",\"outputs\":[{\"internalType\":\"contractIERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"modelActiveBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"modelBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"providerApproval_\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature_\",\"type\":\"bytes\"}],\"name\":\"openSession\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pools\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"initialReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rewardDecrease\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"payoutStart\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"decreaseInterval\",\"type\":\"uint128\"}],\"internalType\":\"structISessionStorage.Pool[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"providerActiveBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"providerBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"providerMinimumStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"sessionId\",\"type\":\"bytes32\"}],\"name\":\"sessions\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"bidId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"pricePerSecond\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"closeoutReceipt\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"closeoutType\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"providerWithdrawnAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"openedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"endsAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"closedAt\",\"type\":\"uint256\"}],\"internalType\":\"structISessionStorage.Session\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"initialReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rewardDecrease\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"payoutStart\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"decreaseInterval\",\"type\":\"uint128\"}],\"internalType\":\"structISessionStorage.Pool\",\"name\":\"pool\",\"type\":\"tuple\"}],\"name\":\"setPoolConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sessionStake_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp_\",\"type\":\"uint256\"}],\"name\":\"stakeToStipend\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp_\",\"type\":\"uint256\"}],\"name\":\"startOfTheDay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"stipend_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp_\",\"type\":\"uint256\"}],\"name\":\"stipendToStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp_\",\"type\":\"uint256\"}],\"name\":\"totalMORSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sessionStake_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"pricePerSecond_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"openedAt_\",\"type\":\"uint256\"}],\"name\":\"whenSessionEnds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountToWithdraw_\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"iterations_\",\"type\":\"uint8\"}],\"name\":\"withdrawUserStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user_\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"iterations_\",\"type\":\"uint8\"}],\"name\":\"withdrawableUserStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"avail_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"hold_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", } // SessionRouterABI is the input ABI used to generate the binding from. @@ -205,6 +240,99 @@ func (_SessionRouter *SessionRouterTransactorRaw) Transact(opts *bind.TransactOp return _SessionRouter.Contract.contract.Transact(opts, method, params...) } +// BIDSTORAGESLOT is a free data retrieval call binding the contract method 0x4fa816f2. +// +// Solidity: function BID_STORAGE_SLOT() view returns(bytes32) +func (_SessionRouter *SessionRouterCaller) BIDSTORAGESLOT(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "BID_STORAGE_SLOT") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// BIDSTORAGESLOT is a free data retrieval call binding the contract method 0x4fa816f2. +// +// Solidity: function BID_STORAGE_SLOT() view returns(bytes32) +func (_SessionRouter *SessionRouterSession) BIDSTORAGESLOT() ([32]byte, error) { + return _SessionRouter.Contract.BIDSTORAGESLOT(&_SessionRouter.CallOpts) +} + +// BIDSTORAGESLOT is a free data retrieval call binding the contract method 0x4fa816f2. +// +// Solidity: function BID_STORAGE_SLOT() view returns(bytes32) +func (_SessionRouter *SessionRouterCallerSession) BIDSTORAGESLOT() ([32]byte, error) { + return _SessionRouter.Contract.BIDSTORAGESLOT(&_SessionRouter.CallOpts) +} + +// COMPUTEPOOLINDEX is a free data retrieval call binding the contract method 0xc56d09a0. +// +// Solidity: function COMPUTE_POOL_INDEX() view returns(uint256) +func (_SessionRouter *SessionRouterCaller) COMPUTEPOOLINDEX(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "COMPUTE_POOL_INDEX") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// COMPUTEPOOLINDEX is a free data retrieval call binding the contract method 0xc56d09a0. +// +// Solidity: function COMPUTE_POOL_INDEX() view returns(uint256) +func (_SessionRouter *SessionRouterSession) COMPUTEPOOLINDEX() (*big.Int, error) { + return _SessionRouter.Contract.COMPUTEPOOLINDEX(&_SessionRouter.CallOpts) +} + +// COMPUTEPOOLINDEX is a free data retrieval call binding the contract method 0xc56d09a0. +// +// Solidity: function COMPUTE_POOL_INDEX() view returns(uint256) +func (_SessionRouter *SessionRouterCallerSession) COMPUTEPOOLINDEX() (*big.Int, error) { + return _SessionRouter.Contract.COMPUTEPOOLINDEX(&_SessionRouter.CallOpts) +} + +// DIAMONDOWNABLESTORAGESLOT is a free data retrieval call binding the contract method 0x4ac3371e. +// +// Solidity: function DIAMOND_OWNABLE_STORAGE_SLOT() view returns(bytes32) +func (_SessionRouter *SessionRouterCaller) DIAMONDOWNABLESTORAGESLOT(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "DIAMOND_OWNABLE_STORAGE_SLOT") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// DIAMONDOWNABLESTORAGESLOT is a free data retrieval call binding the contract method 0x4ac3371e. +// +// Solidity: function DIAMOND_OWNABLE_STORAGE_SLOT() view returns(bytes32) +func (_SessionRouter *SessionRouterSession) DIAMONDOWNABLESTORAGESLOT() ([32]byte, error) { + return _SessionRouter.Contract.DIAMONDOWNABLESTORAGESLOT(&_SessionRouter.CallOpts) +} + +// DIAMONDOWNABLESTORAGESLOT is a free data retrieval call binding the contract method 0x4ac3371e. +// +// Solidity: function DIAMOND_OWNABLE_STORAGE_SLOT() view returns(bytes32) +func (_SessionRouter *SessionRouterCallerSession) DIAMONDOWNABLESTORAGESLOT() ([32]byte, error) { + return _SessionRouter.Contract.DIAMONDOWNABLESTORAGESLOT(&_SessionRouter.CallOpts) +} + // MAXSESSIONDURATION is a free data retrieval call binding the contract method 0xcd8cd4ad. // // Solidity: function MAX_SESSION_DURATION() view returns(uint32) @@ -267,6 +395,68 @@ func (_SessionRouter *SessionRouterCallerSession) MINSESSIONDURATION() (uint32, return _SessionRouter.Contract.MINSESSIONDURATION(&_SessionRouter.CallOpts) } +// PROVIDERSTORAGESLOT is a free data retrieval call binding the contract method 0x490713b1. +// +// Solidity: function PROVIDER_STORAGE_SLOT() view returns(bytes32) +func (_SessionRouter *SessionRouterCaller) PROVIDERSTORAGESLOT(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "PROVIDER_STORAGE_SLOT") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// PROVIDERSTORAGESLOT is a free data retrieval call binding the contract method 0x490713b1. +// +// Solidity: function PROVIDER_STORAGE_SLOT() view returns(bytes32) +func (_SessionRouter *SessionRouterSession) PROVIDERSTORAGESLOT() ([32]byte, error) { + return _SessionRouter.Contract.PROVIDERSTORAGESLOT(&_SessionRouter.CallOpts) +} + +// PROVIDERSTORAGESLOT is a free data retrieval call binding the contract method 0x490713b1. +// +// Solidity: function PROVIDER_STORAGE_SLOT() view returns(bytes32) +func (_SessionRouter *SessionRouterCallerSession) PROVIDERSTORAGESLOT() ([32]byte, error) { + return _SessionRouter.Contract.PROVIDERSTORAGESLOT(&_SessionRouter.CallOpts) +} + +// SESSIONSTORAGESLOT is a free data retrieval call binding the contract method 0x0cbfb226. +// +// Solidity: function SESSION_STORAGE_SLOT() view returns(bytes32) +func (_SessionRouter *SessionRouterCaller) SESSIONSTORAGESLOT(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "SESSION_STORAGE_SLOT") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// SESSIONSTORAGESLOT is a free data retrieval call binding the contract method 0x0cbfb226. +// +// Solidity: function SESSION_STORAGE_SLOT() view returns(bytes32) +func (_SessionRouter *SessionRouterSession) SESSIONSTORAGESLOT() ([32]byte, error) { + return _SessionRouter.Contract.SESSIONSTORAGESLOT(&_SessionRouter.CallOpts) +} + +// SESSIONSTORAGESLOT is a free data retrieval call binding the contract method 0x0cbfb226. +// +// Solidity: function SESSION_STORAGE_SLOT() view returns(bytes32) +func (_SessionRouter *SessionRouterCallerSession) SESSIONSTORAGESLOT() ([32]byte, error) { + return _SessionRouter.Contract.SESSIONSTORAGESLOT(&_SessionRouter.CallOpts) +} + // SIGNATURETTL is a free data retrieval call binding the contract method 0xe7d791d0. // // Solidity: function SIGNATURE_TTL() view returns(uint32) @@ -298,105 +488,107 @@ func (_SessionRouter *SessionRouterCallerSession) SIGNATURETTL() (uint32, error) return _SessionRouter.Contract.SIGNATURETTL(&_SessionRouter.CallOpts) } -// ActiveSessionsCount is a free data retrieval call binding the contract method 0x782ea85c. +// STATSSTORAGESLOT is a free data retrieval call binding the contract method 0x87040789. // -// Solidity: function activeSessionsCount() view returns(uint256) -func (_SessionRouter *SessionRouterCaller) ActiveSessionsCount(opts *bind.CallOpts) (*big.Int, error) { +// Solidity: function STATS_STORAGE_SLOT() view returns(bytes32) +func (_SessionRouter *SessionRouterCaller) STATSSTORAGESLOT(opts *bind.CallOpts) ([32]byte, error) { var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "activeSessionsCount") + err := _SessionRouter.contract.Call(opts, &out, "STATS_STORAGE_SLOT") if err != nil { - return *new(*big.Int), err + return *new([32]byte), err } - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) return out0, err } -// ActiveSessionsCount is a free data retrieval call binding the contract method 0x782ea85c. +// STATSSTORAGESLOT is a free data retrieval call binding the contract method 0x87040789. // -// Solidity: function activeSessionsCount() view returns(uint256) -func (_SessionRouter *SessionRouterSession) ActiveSessionsCount() (*big.Int, error) { - return _SessionRouter.Contract.ActiveSessionsCount(&_SessionRouter.CallOpts) +// Solidity: function STATS_STORAGE_SLOT() view returns(bytes32) +func (_SessionRouter *SessionRouterSession) STATSSTORAGESLOT() ([32]byte, error) { + return _SessionRouter.Contract.STATSSTORAGESLOT(&_SessionRouter.CallOpts) } -// ActiveSessionsCount is a free data retrieval call binding the contract method 0x782ea85c. +// STATSSTORAGESLOT is a free data retrieval call binding the contract method 0x87040789. // -// Solidity: function activeSessionsCount() view returns(uint256) -func (_SessionRouter *SessionRouterCallerSession) ActiveSessionsCount() (*big.Int, error) { - return _SessionRouter.Contract.ActiveSessionsCount(&_SessionRouter.CallOpts) +// Solidity: function STATS_STORAGE_SLOT() view returns(bytes32) +func (_SessionRouter *SessionRouterCallerSession) STATSSTORAGESLOT() ([32]byte, error) { + return _SessionRouter.Contract.STATSSTORAGESLOT(&_SessionRouter.CallOpts) } -// GetActiveSessionsByProvider is a free data retrieval call binding the contract method 0xcba645ab. +// Bids is a free data retrieval call binding the contract method 0x8f98eeda. // -// Solidity: function getActiveSessionsByProvider(address provider) view returns((bytes32,address,address,bytes32,bytes32,uint256,uint256,bytes,uint256,uint256,uint256,uint256,uint256)[]) -func (_SessionRouter *SessionRouterCaller) GetActiveSessionsByProvider(opts *bind.CallOpts, provider common.Address) ([]Session, error) { +// Solidity: function bids(bytes32 bidId) view returns((address,bytes32,uint256,uint256,uint128,uint128)) +func (_SessionRouter *SessionRouterCaller) Bids(opts *bind.CallOpts, bidId [32]byte) (IBidStorageBid, error) { var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "getActiveSessionsByProvider", provider) + err := _SessionRouter.contract.Call(opts, &out, "bids", bidId) if err != nil { - return *new([]Session), err + return *new(IBidStorageBid), err } - out0 := *abi.ConvertType(out[0], new([]Session)).(*[]Session) + out0 := *abi.ConvertType(out[0], new(IBidStorageBid)).(*IBidStorageBid) return out0, err } -// GetActiveSessionsByProvider is a free data retrieval call binding the contract method 0xcba645ab. +// Bids is a free data retrieval call binding the contract method 0x8f98eeda. // -// Solidity: function getActiveSessionsByProvider(address provider) view returns((bytes32,address,address,bytes32,bytes32,uint256,uint256,bytes,uint256,uint256,uint256,uint256,uint256)[]) -func (_SessionRouter *SessionRouterSession) GetActiveSessionsByProvider(provider common.Address) ([]Session, error) { - return _SessionRouter.Contract.GetActiveSessionsByProvider(&_SessionRouter.CallOpts, provider) +// Solidity: function bids(bytes32 bidId) view returns((address,bytes32,uint256,uint256,uint128,uint128)) +func (_SessionRouter *SessionRouterSession) Bids(bidId [32]byte) (IBidStorageBid, error) { + return _SessionRouter.Contract.Bids(&_SessionRouter.CallOpts, bidId) } -// GetActiveSessionsByProvider is a free data retrieval call binding the contract method 0xcba645ab. +// Bids is a free data retrieval call binding the contract method 0x8f98eeda. // -// Solidity: function getActiveSessionsByProvider(address provider) view returns((bytes32,address,address,bytes32,bytes32,uint256,uint256,bytes,uint256,uint256,uint256,uint256,uint256)[]) -func (_SessionRouter *SessionRouterCallerSession) GetActiveSessionsByProvider(provider common.Address) ([]Session, error) { - return _SessionRouter.Contract.GetActiveSessionsByProvider(&_SessionRouter.CallOpts, provider) +// Solidity: function bids(bytes32 bidId) view returns((address,bytes32,uint256,uint256,uint128,uint128)) +func (_SessionRouter *SessionRouterCallerSession) Bids(bidId [32]byte) (IBidStorageBid, error) { + return _SessionRouter.Contract.Bids(&_SessionRouter.CallOpts, bidId) } -// GetActiveSessionsByUser is a free data retrieval call binding the contract method 0xb3da8c38. +// GetActiveBidsRatingByModel is a free data retrieval call binding the contract method 0x3b04deec. // -// Solidity: function getActiveSessionsByUser(address user) view returns((bytes32,address,address,bytes32,bytes32,uint256,uint256,bytes,uint256,uint256,uint256,uint256,uint256)[]) -func (_SessionRouter *SessionRouterCaller) GetActiveSessionsByUser(opts *bind.CallOpts, user common.Address) ([]Session, error) { +// Solidity: function getActiveBidsRatingByModel(bytes32 modelId_, uint256 offset_, uint8 limit_) view returns(bytes32[], (address,bytes32,uint256,uint256,uint128,uint128)[], ((int64,int64),(int64,int64),uint32,uint32,uint32)[]) +func (_SessionRouter *SessionRouterCaller) GetActiveBidsRatingByModel(opts *bind.CallOpts, modelId_ [32]byte, offset_ *big.Int, limit_ uint8) ([][32]byte, []IBidStorageBid, []IStatsStorageProviderModelStats, error) { var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "getActiveSessionsByUser", user) + err := _SessionRouter.contract.Call(opts, &out, "getActiveBidsRatingByModel", modelId_, offset_, limit_) if err != nil { - return *new([]Session), err + return *new([][32]byte), *new([]IBidStorageBid), *new([]IStatsStorageProviderModelStats), err } - out0 := *abi.ConvertType(out[0], new([]Session)).(*[]Session) + out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) + out1 := *abi.ConvertType(out[1], new([]IBidStorageBid)).(*[]IBidStorageBid) + out2 := *abi.ConvertType(out[2], new([]IStatsStorageProviderModelStats)).(*[]IStatsStorageProviderModelStats) - return out0, err + return out0, out1, out2, err } -// GetActiveSessionsByUser is a free data retrieval call binding the contract method 0xb3da8c38. +// GetActiveBidsRatingByModel is a free data retrieval call binding the contract method 0x3b04deec. // -// Solidity: function getActiveSessionsByUser(address user) view returns((bytes32,address,address,bytes32,bytes32,uint256,uint256,bytes,uint256,uint256,uint256,uint256,uint256)[]) -func (_SessionRouter *SessionRouterSession) GetActiveSessionsByUser(user common.Address) ([]Session, error) { - return _SessionRouter.Contract.GetActiveSessionsByUser(&_SessionRouter.CallOpts, user) +// Solidity: function getActiveBidsRatingByModel(bytes32 modelId_, uint256 offset_, uint8 limit_) view returns(bytes32[], (address,bytes32,uint256,uint256,uint128,uint128)[], ((int64,int64),(int64,int64),uint32,uint32,uint32)[]) +func (_SessionRouter *SessionRouterSession) GetActiveBidsRatingByModel(modelId_ [32]byte, offset_ *big.Int, limit_ uint8) ([][32]byte, []IBidStorageBid, []IStatsStorageProviderModelStats, error) { + return _SessionRouter.Contract.GetActiveBidsRatingByModel(&_SessionRouter.CallOpts, modelId_, offset_, limit_) } -// GetActiveSessionsByUser is a free data retrieval call binding the contract method 0xb3da8c38. +// GetActiveBidsRatingByModel is a free data retrieval call binding the contract method 0x3b04deec. // -// Solidity: function getActiveSessionsByUser(address user) view returns((bytes32,address,address,bytes32,bytes32,uint256,uint256,bytes,uint256,uint256,uint256,uint256,uint256)[]) -func (_SessionRouter *SessionRouterCallerSession) GetActiveSessionsByUser(user common.Address) ([]Session, error) { - return _SessionRouter.Contract.GetActiveSessionsByUser(&_SessionRouter.CallOpts, user) +// Solidity: function getActiveBidsRatingByModel(bytes32 modelId_, uint256 offset_, uint8 limit_) view returns(bytes32[], (address,bytes32,uint256,uint256,uint128,uint128)[], ((int64,int64),(int64,int64),uint32,uint32,uint32)[]) +func (_SessionRouter *SessionRouterCallerSession) GetActiveBidsRatingByModel(modelId_ [32]byte, offset_ *big.Int, limit_ uint8) ([][32]byte, []IBidStorageBid, []IStatsStorageProviderModelStats, error) { + return _SessionRouter.Contract.GetActiveBidsRatingByModel(&_SessionRouter.CallOpts, modelId_, offset_, limit_) } // GetComputeBalance is a free data retrieval call binding the contract method 0x76738e9e. // -// Solidity: function getComputeBalance(uint256 timestamp) view returns(uint256) -func (_SessionRouter *SessionRouterCaller) GetComputeBalance(opts *bind.CallOpts, timestamp *big.Int) (*big.Int, error) { +// Solidity: function getComputeBalance(uint256 timestamp_) view returns(uint256) +func (_SessionRouter *SessionRouterCaller) GetComputeBalance(opts *bind.CallOpts, timestamp_ *big.Int) (*big.Int, error) { var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "getComputeBalance", timestamp) + err := _SessionRouter.contract.Call(opts, &out, "getComputeBalance", timestamp_) if err != nil { return *new(*big.Int), err @@ -410,179 +602,179 @@ func (_SessionRouter *SessionRouterCaller) GetComputeBalance(opts *bind.CallOpts // GetComputeBalance is a free data retrieval call binding the contract method 0x76738e9e. // -// Solidity: function getComputeBalance(uint256 timestamp) view returns(uint256) -func (_SessionRouter *SessionRouterSession) GetComputeBalance(timestamp *big.Int) (*big.Int, error) { - return _SessionRouter.Contract.GetComputeBalance(&_SessionRouter.CallOpts, timestamp) +// Solidity: function getComputeBalance(uint256 timestamp_) view returns(uint256) +func (_SessionRouter *SessionRouterSession) GetComputeBalance(timestamp_ *big.Int) (*big.Int, error) { + return _SessionRouter.Contract.GetComputeBalance(&_SessionRouter.CallOpts, timestamp_) } // GetComputeBalance is a free data retrieval call binding the contract method 0x76738e9e. // -// Solidity: function getComputeBalance(uint256 timestamp) view returns(uint256) -func (_SessionRouter *SessionRouterCallerSession) GetComputeBalance(timestamp *big.Int) (*big.Int, error) { - return _SessionRouter.Contract.GetComputeBalance(&_SessionRouter.CallOpts, timestamp) +// Solidity: function getComputeBalance(uint256 timestamp_) view returns(uint256) +func (_SessionRouter *SessionRouterCallerSession) GetComputeBalance(timestamp_ *big.Int) (*big.Int, error) { + return _SessionRouter.Contract.GetComputeBalance(&_SessionRouter.CallOpts, timestamp_) } -// GetProviderClaimableBalance is a free data retrieval call binding the contract method 0xa8ca6323. +// GetFundingAccount is a free data retrieval call binding the contract method 0x775c3727. // -// Solidity: function getProviderClaimableBalance(bytes32 sessionId) view returns(uint256) -func (_SessionRouter *SessionRouterCaller) GetProviderClaimableBalance(opts *bind.CallOpts, sessionId [32]byte) (*big.Int, error) { +// Solidity: function getFundingAccount() view returns(address) +func (_SessionRouter *SessionRouterCaller) GetFundingAccount(opts *bind.CallOpts) (common.Address, error) { var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "getProviderClaimableBalance", sessionId) + err := _SessionRouter.contract.Call(opts, &out, "getFundingAccount") if err != nil { - return *new(*big.Int), err + return *new(common.Address), err } - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) return out0, err } -// GetProviderClaimableBalance is a free data retrieval call binding the contract method 0xa8ca6323. +// GetFundingAccount is a free data retrieval call binding the contract method 0x775c3727. // -// Solidity: function getProviderClaimableBalance(bytes32 sessionId) view returns(uint256) -func (_SessionRouter *SessionRouterSession) GetProviderClaimableBalance(sessionId [32]byte) (*big.Int, error) { - return _SessionRouter.Contract.GetProviderClaimableBalance(&_SessionRouter.CallOpts, sessionId) +// Solidity: function getFundingAccount() view returns(address) +func (_SessionRouter *SessionRouterSession) GetFundingAccount() (common.Address, error) { + return _SessionRouter.Contract.GetFundingAccount(&_SessionRouter.CallOpts) } -// GetProviderClaimableBalance is a free data retrieval call binding the contract method 0xa8ca6323. +// GetFundingAccount is a free data retrieval call binding the contract method 0x775c3727. // -// Solidity: function getProviderClaimableBalance(bytes32 sessionId) view returns(uint256) -func (_SessionRouter *SessionRouterCallerSession) GetProviderClaimableBalance(sessionId [32]byte) (*big.Int, error) { - return _SessionRouter.Contract.GetProviderClaimableBalance(&_SessionRouter.CallOpts, sessionId) +// Solidity: function getFundingAccount() view returns(address) +func (_SessionRouter *SessionRouterCallerSession) GetFundingAccount() (common.Address, error) { + return _SessionRouter.Contract.GetFundingAccount(&_SessionRouter.CallOpts) } -// GetSession is a free data retrieval call binding the contract method 0x39b240bd. +// GetProvider is a free data retrieval call binding the contract method 0x55f21eb7. // -// Solidity: function getSession(bytes32 sessionId) view returns((bytes32,address,address,bytes32,bytes32,uint256,uint256,bytes,uint256,uint256,uint256,uint256,uint256)) -func (_SessionRouter *SessionRouterCaller) GetSession(opts *bind.CallOpts, sessionId [32]byte) (Session, error) { +// Solidity: function getProvider(address provider) view returns((string,uint256,uint128,uint128,uint256,bool)) +func (_SessionRouter *SessionRouterCaller) GetProvider(opts *bind.CallOpts, provider common.Address) (IProviderStorageProvider, error) { var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "getSession", sessionId) + err := _SessionRouter.contract.Call(opts, &out, "getProvider", provider) if err != nil { - return *new(Session), err + return *new(IProviderStorageProvider), err } - out0 := *abi.ConvertType(out[0], new(Session)).(*Session) + out0 := *abi.ConvertType(out[0], new(IProviderStorageProvider)).(*IProviderStorageProvider) return out0, err } -// GetSession is a free data retrieval call binding the contract method 0x39b240bd. +// GetProvider is a free data retrieval call binding the contract method 0x55f21eb7. // -// Solidity: function getSession(bytes32 sessionId) view returns((bytes32,address,address,bytes32,bytes32,uint256,uint256,bytes,uint256,uint256,uint256,uint256,uint256)) -func (_SessionRouter *SessionRouterSession) GetSession(sessionId [32]byte) (Session, error) { - return _SessionRouter.Contract.GetSession(&_SessionRouter.CallOpts, sessionId) +// Solidity: function getProvider(address provider) view returns((string,uint256,uint128,uint128,uint256,bool)) +func (_SessionRouter *SessionRouterSession) GetProvider(provider common.Address) (IProviderStorageProvider, error) { + return _SessionRouter.Contract.GetProvider(&_SessionRouter.CallOpts, provider) } -// GetSession is a free data retrieval call binding the contract method 0x39b240bd. +// GetProvider is a free data retrieval call binding the contract method 0x55f21eb7. // -// Solidity: function getSession(bytes32 sessionId) view returns((bytes32,address,address,bytes32,bytes32,uint256,uint256,bytes,uint256,uint256,uint256,uint256,uint256)) -func (_SessionRouter *SessionRouterCallerSession) GetSession(sessionId [32]byte) (Session, error) { - return _SessionRouter.Contract.GetSession(&_SessionRouter.CallOpts, sessionId) +// Solidity: function getProvider(address provider) view returns((string,uint256,uint128,uint128,uint256,bool)) +func (_SessionRouter *SessionRouterCallerSession) GetProvider(provider common.Address) (IProviderStorageProvider, error) { + return _SessionRouter.Contract.GetProvider(&_SessionRouter.CallOpts, provider) } -// GetSessionsByModel is a free data retrieval call binding the contract method 0x67a057f6. +// GetProviderClaimableBalance is a free data retrieval call binding the contract method 0xa8ca6323. // -// Solidity: function getSessionsByModel(bytes32 modelId, uint256 offset, uint8 limit) view returns((bytes32,address,address,bytes32,bytes32,uint256,uint256,bytes,uint256,uint256,uint256,uint256,uint256)[]) -func (_SessionRouter *SessionRouterCaller) GetSessionsByModel(opts *bind.CallOpts, modelId [32]byte, offset *big.Int, limit uint8) ([]Session, error) { +// Solidity: function getProviderClaimableBalance(bytes32 sessionId_) view returns(uint256) +func (_SessionRouter *SessionRouterCaller) GetProviderClaimableBalance(opts *bind.CallOpts, sessionId_ [32]byte) (*big.Int, error) { var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "getSessionsByModel", modelId, offset, limit) + err := _SessionRouter.contract.Call(opts, &out, "getProviderClaimableBalance", sessionId_) if err != nil { - return *new([]Session), err + return *new(*big.Int), err } - out0 := *abi.ConvertType(out[0], new([]Session)).(*[]Session) + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) return out0, err } -// GetSessionsByModel is a free data retrieval call binding the contract method 0x67a057f6. +// GetProviderClaimableBalance is a free data retrieval call binding the contract method 0xa8ca6323. // -// Solidity: function getSessionsByModel(bytes32 modelId, uint256 offset, uint8 limit) view returns((bytes32,address,address,bytes32,bytes32,uint256,uint256,bytes,uint256,uint256,uint256,uint256,uint256)[]) -func (_SessionRouter *SessionRouterSession) GetSessionsByModel(modelId [32]byte, offset *big.Int, limit uint8) ([]Session, error) { - return _SessionRouter.Contract.GetSessionsByModel(&_SessionRouter.CallOpts, modelId, offset, limit) +// Solidity: function getProviderClaimableBalance(bytes32 sessionId_) view returns(uint256) +func (_SessionRouter *SessionRouterSession) GetProviderClaimableBalance(sessionId_ [32]byte) (*big.Int, error) { + return _SessionRouter.Contract.GetProviderClaimableBalance(&_SessionRouter.CallOpts, sessionId_) } -// GetSessionsByModel is a free data retrieval call binding the contract method 0x67a057f6. +// GetProviderClaimableBalance is a free data retrieval call binding the contract method 0xa8ca6323. // -// Solidity: function getSessionsByModel(bytes32 modelId, uint256 offset, uint8 limit) view returns((bytes32,address,address,bytes32,bytes32,uint256,uint256,bytes,uint256,uint256,uint256,uint256,uint256)[]) -func (_SessionRouter *SessionRouterCallerSession) GetSessionsByModel(modelId [32]byte, offset *big.Int, limit uint8) ([]Session, error) { - return _SessionRouter.Contract.GetSessionsByModel(&_SessionRouter.CallOpts, modelId, offset, limit) +// Solidity: function getProviderClaimableBalance(bytes32 sessionId_) view returns(uint256) +func (_SessionRouter *SessionRouterCallerSession) GetProviderClaimableBalance(sessionId_ [32]byte) (*big.Int, error) { + return _SessionRouter.Contract.GetProviderClaimableBalance(&_SessionRouter.CallOpts, sessionId_) } -// GetSessionsByProvider is a free data retrieval call binding the contract method 0x8ea1ac0e. +// GetSessionId is a free data retrieval call binding the contract method 0x0f9de78a. // -// Solidity: function getSessionsByProvider(address provider, uint256 offset, uint8 limit) view returns((bytes32,address,address,bytes32,bytes32,uint256,uint256,bytes,uint256,uint256,uint256,uint256,uint256)[]) -func (_SessionRouter *SessionRouterCaller) GetSessionsByProvider(opts *bind.CallOpts, provider common.Address, offset *big.Int, limit uint8) ([]Session, error) { +// Solidity: function getSessionId(address user_, address provider_, uint256 stake_, uint256 sessionNonce_) pure returns(bytes32) +func (_SessionRouter *SessionRouterCaller) GetSessionId(opts *bind.CallOpts, user_ common.Address, provider_ common.Address, stake_ *big.Int, sessionNonce_ *big.Int) ([32]byte, error) { var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "getSessionsByProvider", provider, offset, limit) + err := _SessionRouter.contract.Call(opts, &out, "getSessionId", user_, provider_, stake_, sessionNonce_) if err != nil { - return *new([]Session), err + return *new([32]byte), err } - out0 := *abi.ConvertType(out[0], new([]Session)).(*[]Session) + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) return out0, err } -// GetSessionsByProvider is a free data retrieval call binding the contract method 0x8ea1ac0e. +// GetSessionId is a free data retrieval call binding the contract method 0x0f9de78a. // -// Solidity: function getSessionsByProvider(address provider, uint256 offset, uint8 limit) view returns((bytes32,address,address,bytes32,bytes32,uint256,uint256,bytes,uint256,uint256,uint256,uint256,uint256)[]) -func (_SessionRouter *SessionRouterSession) GetSessionsByProvider(provider common.Address, offset *big.Int, limit uint8) ([]Session, error) { - return _SessionRouter.Contract.GetSessionsByProvider(&_SessionRouter.CallOpts, provider, offset, limit) +// Solidity: function getSessionId(address user_, address provider_, uint256 stake_, uint256 sessionNonce_) pure returns(bytes32) +func (_SessionRouter *SessionRouterSession) GetSessionId(user_ common.Address, provider_ common.Address, stake_ *big.Int, sessionNonce_ *big.Int) ([32]byte, error) { + return _SessionRouter.Contract.GetSessionId(&_SessionRouter.CallOpts, user_, provider_, stake_, sessionNonce_) } -// GetSessionsByProvider is a free data retrieval call binding the contract method 0x8ea1ac0e. +// GetSessionId is a free data retrieval call binding the contract method 0x0f9de78a. // -// Solidity: function getSessionsByProvider(address provider, uint256 offset, uint8 limit) view returns((bytes32,address,address,bytes32,bytes32,uint256,uint256,bytes,uint256,uint256,uint256,uint256,uint256)[]) -func (_SessionRouter *SessionRouterCallerSession) GetSessionsByProvider(provider common.Address, offset *big.Int, limit uint8) ([]Session, error) { - return _SessionRouter.Contract.GetSessionsByProvider(&_SessionRouter.CallOpts, provider, offset, limit) +// Solidity: function getSessionId(address user_, address provider_, uint256 stake_, uint256 sessionNonce_) pure returns(bytes32) +func (_SessionRouter *SessionRouterCallerSession) GetSessionId(user_ common.Address, provider_ common.Address, stake_ *big.Int, sessionNonce_ *big.Int) ([32]byte, error) { + return _SessionRouter.Contract.GetSessionId(&_SessionRouter.CallOpts, user_, provider_, stake_, sessionNonce_) } -// GetSessionsByUser is a free data retrieval call binding the contract method 0xb954275b. +// GetSessionsByUser is a free data retrieval call binding the contract method 0x4add952d. // -// Solidity: function getSessionsByUser(address user, uint256 offset, uint8 limit) view returns((bytes32,address,address,bytes32,bytes32,uint256,uint256,bytes,uint256,uint256,uint256,uint256,uint256)[]) -func (_SessionRouter *SessionRouterCaller) GetSessionsByUser(opts *bind.CallOpts, user common.Address, offset *big.Int, limit uint8) ([]Session, error) { +// Solidity: function getSessionsByUser(address user, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_SessionRouter *SessionRouterCaller) GetSessionsByUser(opts *bind.CallOpts, user common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "getSessionsByUser", user, offset, limit) + err := _SessionRouter.contract.Call(opts, &out, "getSessionsByUser", user, offset_, limit_) if err != nil { - return *new([]Session), err + return *new([][32]byte), err } - out0 := *abi.ConvertType(out[0], new([]Session)).(*[]Session) + out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) return out0, err } -// GetSessionsByUser is a free data retrieval call binding the contract method 0xb954275b. +// GetSessionsByUser is a free data retrieval call binding the contract method 0x4add952d. // -// Solidity: function getSessionsByUser(address user, uint256 offset, uint8 limit) view returns((bytes32,address,address,bytes32,bytes32,uint256,uint256,bytes,uint256,uint256,uint256,uint256,uint256)[]) -func (_SessionRouter *SessionRouterSession) GetSessionsByUser(user common.Address, offset *big.Int, limit uint8) ([]Session, error) { - return _SessionRouter.Contract.GetSessionsByUser(&_SessionRouter.CallOpts, user, offset, limit) +// Solidity: function getSessionsByUser(address user, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_SessionRouter *SessionRouterSession) GetSessionsByUser(user common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _SessionRouter.Contract.GetSessionsByUser(&_SessionRouter.CallOpts, user, offset_, limit_) } -// GetSessionsByUser is a free data retrieval call binding the contract method 0xb954275b. +// GetSessionsByUser is a free data retrieval call binding the contract method 0x4add952d. // -// Solidity: function getSessionsByUser(address user, uint256 offset, uint8 limit) view returns((bytes32,address,address,bytes32,bytes32,uint256,uint256,bytes,uint256,uint256,uint256,uint256,uint256)[]) -func (_SessionRouter *SessionRouterCallerSession) GetSessionsByUser(user common.Address, offset *big.Int, limit uint8) ([]Session, error) { - return _SessionRouter.Contract.GetSessionsByUser(&_SessionRouter.CallOpts, user, offset, limit) +// Solidity: function getSessionsByUser(address user, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_SessionRouter *SessionRouterCallerSession) GetSessionsByUser(user common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _SessionRouter.Contract.GetSessionsByUser(&_SessionRouter.CallOpts, user, offset_, limit_) } // GetTodaysBudget is a free data retrieval call binding the contract method 0x351ffeb0. // -// Solidity: function getTodaysBudget(uint256 timestamp) view returns(uint256) -func (_SessionRouter *SessionRouterCaller) GetTodaysBudget(opts *bind.CallOpts, timestamp *big.Int) (*big.Int, error) { +// Solidity: function getTodaysBudget(uint256 timestamp_) view returns(uint256) +func (_SessionRouter *SessionRouterCaller) GetTodaysBudget(opts *bind.CallOpts, timestamp_ *big.Int) (*big.Int, error) { var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "getTodaysBudget", timestamp) + err := _SessionRouter.contract.Call(opts, &out, "getTodaysBudget", timestamp_) if err != nil { return *new(*big.Int), err @@ -596,24 +788,241 @@ func (_SessionRouter *SessionRouterCaller) GetTodaysBudget(opts *bind.CallOpts, // GetTodaysBudget is a free data retrieval call binding the contract method 0x351ffeb0. // -// Solidity: function getTodaysBudget(uint256 timestamp) view returns(uint256) -func (_SessionRouter *SessionRouterSession) GetTodaysBudget(timestamp *big.Int) (*big.Int, error) { - return _SessionRouter.Contract.GetTodaysBudget(&_SessionRouter.CallOpts, timestamp) +// Solidity: function getTodaysBudget(uint256 timestamp_) view returns(uint256) +func (_SessionRouter *SessionRouterSession) GetTodaysBudget(timestamp_ *big.Int) (*big.Int, error) { + return _SessionRouter.Contract.GetTodaysBudget(&_SessionRouter.CallOpts, timestamp_) } // GetTodaysBudget is a free data retrieval call binding the contract method 0x351ffeb0. // -// Solidity: function getTodaysBudget(uint256 timestamp) view returns(uint256) -func (_SessionRouter *SessionRouterCallerSession) GetTodaysBudget(timestamp *big.Int) (*big.Int, error) { - return _SessionRouter.Contract.GetTodaysBudget(&_SessionRouter.CallOpts, timestamp) +// Solidity: function getTodaysBudget(uint256 timestamp_) view returns(uint256) +func (_SessionRouter *SessionRouterCallerSession) GetTodaysBudget(timestamp_ *big.Int) (*big.Int, error) { + return _SessionRouter.Contract.GetTodaysBudget(&_SessionRouter.CallOpts, timestamp_) +} + +// GetToken is a free data retrieval call binding the contract method 0x21df0da7. +// +// Solidity: function getToken() view returns(address) +func (_SessionRouter *SessionRouterCaller) GetToken(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "getToken") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// GetToken is a free data retrieval call binding the contract method 0x21df0da7. +// +// Solidity: function getToken() view returns(address) +func (_SessionRouter *SessionRouterSession) GetToken() (common.Address, error) { + return _SessionRouter.Contract.GetToken(&_SessionRouter.CallOpts) +} + +// GetToken is a free data retrieval call binding the contract method 0x21df0da7. +// +// Solidity: function getToken() view returns(address) +func (_SessionRouter *SessionRouterCallerSession) GetToken() (common.Address, error) { + return _SessionRouter.Contract.GetToken(&_SessionRouter.CallOpts) +} + +// ModelActiveBids is a free data retrieval call binding the contract method 0x3fd8e5e3. +// +// Solidity: function modelActiveBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_SessionRouter *SessionRouterCaller) ModelActiveBids(opts *bind.CallOpts, modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "modelActiveBids", modelId_, offset_, limit_) + + if err != nil { + return *new([][32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) + + return out0, err + +} + +// ModelActiveBids is a free data retrieval call binding the contract method 0x3fd8e5e3. +// +// Solidity: function modelActiveBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_SessionRouter *SessionRouterSession) ModelActiveBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _SessionRouter.Contract.ModelActiveBids(&_SessionRouter.CallOpts, modelId_, offset_, limit_) +} + +// ModelActiveBids is a free data retrieval call binding the contract method 0x3fd8e5e3. +// +// Solidity: function modelActiveBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_SessionRouter *SessionRouterCallerSession) ModelActiveBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _SessionRouter.Contract.ModelActiveBids(&_SessionRouter.CallOpts, modelId_, offset_, limit_) +} + +// ModelBids is a free data retrieval call binding the contract method 0x5954d1b3. +// +// Solidity: function modelBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_SessionRouter *SessionRouterCaller) ModelBids(opts *bind.CallOpts, modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "modelBids", modelId_, offset_, limit_) + + if err != nil { + return *new([][32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) + + return out0, err + +} + +// ModelBids is a free data retrieval call binding the contract method 0x5954d1b3. +// +// Solidity: function modelBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_SessionRouter *SessionRouterSession) ModelBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _SessionRouter.Contract.ModelBids(&_SessionRouter.CallOpts, modelId_, offset_, limit_) +} + +// ModelBids is a free data retrieval call binding the contract method 0x5954d1b3. +// +// Solidity: function modelBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_SessionRouter *SessionRouterCallerSession) ModelBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _SessionRouter.Contract.ModelBids(&_SessionRouter.CallOpts, modelId_, offset_, limit_) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_SessionRouter *SessionRouterCaller) Owner(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "owner") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_SessionRouter *SessionRouterSession) Owner() (common.Address, error) { + return _SessionRouter.Contract.Owner(&_SessionRouter.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_SessionRouter *SessionRouterCallerSession) Owner() (common.Address, error) { + return _SessionRouter.Contract.Owner(&_SessionRouter.CallOpts) +} + +// Pools is a free data retrieval call binding the contract method 0xc5c51dca. +// +// Solidity: function pools() view returns((uint256,uint256,uint128,uint128)[]) +func (_SessionRouter *SessionRouterCaller) Pools(opts *bind.CallOpts) ([]ISessionStoragePool, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "pools") + + if err != nil { + return *new([]ISessionStoragePool), err + } + + out0 := *abi.ConvertType(out[0], new([]ISessionStoragePool)).(*[]ISessionStoragePool) + + return out0, err + +} + +// Pools is a free data retrieval call binding the contract method 0xc5c51dca. +// +// Solidity: function pools() view returns((uint256,uint256,uint128,uint128)[]) +func (_SessionRouter *SessionRouterSession) Pools() ([]ISessionStoragePool, error) { + return _SessionRouter.Contract.Pools(&_SessionRouter.CallOpts) +} + +// Pools is a free data retrieval call binding the contract method 0xc5c51dca. +// +// Solidity: function pools() view returns((uint256,uint256,uint128,uint128)[]) +func (_SessionRouter *SessionRouterCallerSession) Pools() ([]ISessionStoragePool, error) { + return _SessionRouter.Contract.Pools(&_SessionRouter.CallOpts) } -// SessionsCount is a free data retrieval call binding the contract method 0x312f6307. +// ProviderActiveBids is a free data retrieval call binding the contract method 0x6dd7d31c. // -// Solidity: function sessionsCount() view returns(uint256) -func (_SessionRouter *SessionRouterCaller) SessionsCount(opts *bind.CallOpts) (*big.Int, error) { +// Solidity: function providerActiveBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_SessionRouter *SessionRouterCaller) ProviderActiveBids(opts *bind.CallOpts, provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "sessionsCount") + err := _SessionRouter.contract.Call(opts, &out, "providerActiveBids", provider_, offset_, limit_) + + if err != nil { + return *new([][32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) + + return out0, err + +} + +// ProviderActiveBids is a free data retrieval call binding the contract method 0x6dd7d31c. +// +// Solidity: function providerActiveBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_SessionRouter *SessionRouterSession) ProviderActiveBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _SessionRouter.Contract.ProviderActiveBids(&_SessionRouter.CallOpts, provider_, offset_, limit_) +} + +// ProviderActiveBids is a free data retrieval call binding the contract method 0x6dd7d31c. +// +// Solidity: function providerActiveBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_SessionRouter *SessionRouterCallerSession) ProviderActiveBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _SessionRouter.Contract.ProviderActiveBids(&_SessionRouter.CallOpts, provider_, offset_, limit_) +} + +// ProviderBids is a free data retrieval call binding the contract method 0x22fbda9a. +// +// Solidity: function providerBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_SessionRouter *SessionRouterCaller) ProviderBids(opts *bind.CallOpts, provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "providerBids", provider_, offset_, limit_) + + if err != nil { + return *new([][32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) + + return out0, err + +} + +// ProviderBids is a free data retrieval call binding the contract method 0x22fbda9a. +// +// Solidity: function providerBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_SessionRouter *SessionRouterSession) ProviderBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _SessionRouter.Contract.ProviderBids(&_SessionRouter.CallOpts, provider_, offset_, limit_) +} + +// ProviderBids is a free data retrieval call binding the contract method 0x22fbda9a. +// +// Solidity: function providerBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_SessionRouter *SessionRouterCallerSession) ProviderBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _SessionRouter.Contract.ProviderBids(&_SessionRouter.CallOpts, provider_, offset_, limit_) +} + +// ProviderMinimumStake is a free data retrieval call binding the contract method 0x9476c58e. +// +// Solidity: function providerMinimumStake() view returns(uint256) +func (_SessionRouter *SessionRouterCaller) ProviderMinimumStake(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "providerMinimumStake") if err != nil { return *new(*big.Int), err @@ -625,26 +1034,57 @@ func (_SessionRouter *SessionRouterCaller) SessionsCount(opts *bind.CallOpts) (* } -// SessionsCount is a free data retrieval call binding the contract method 0x312f6307. +// ProviderMinimumStake is a free data retrieval call binding the contract method 0x9476c58e. +// +// Solidity: function providerMinimumStake() view returns(uint256) +func (_SessionRouter *SessionRouterSession) ProviderMinimumStake() (*big.Int, error) { + return _SessionRouter.Contract.ProviderMinimumStake(&_SessionRouter.CallOpts) +} + +// ProviderMinimumStake is a free data retrieval call binding the contract method 0x9476c58e. +// +// Solidity: function providerMinimumStake() view returns(uint256) +func (_SessionRouter *SessionRouterCallerSession) ProviderMinimumStake() (*big.Int, error) { + return _SessionRouter.Contract.ProviderMinimumStake(&_SessionRouter.CallOpts) +} + +// Sessions is a free data retrieval call binding the contract method 0x7dbd2832. +// +// Solidity: function sessions(bytes32 sessionId) view returns((bytes32,address,address,bytes32,bytes32,uint256,uint256,bytes,uint256,uint256,uint256,uint256,uint256)) +func (_SessionRouter *SessionRouterCaller) Sessions(opts *bind.CallOpts, sessionId [32]byte) (ISessionStorageSession, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "sessions", sessionId) + + if err != nil { + return *new(ISessionStorageSession), err + } + + out0 := *abi.ConvertType(out[0], new(ISessionStorageSession)).(*ISessionStorageSession) + + return out0, err + +} + +// Sessions is a free data retrieval call binding the contract method 0x7dbd2832. // -// Solidity: function sessionsCount() view returns(uint256) -func (_SessionRouter *SessionRouterSession) SessionsCount() (*big.Int, error) { - return _SessionRouter.Contract.SessionsCount(&_SessionRouter.CallOpts) +// Solidity: function sessions(bytes32 sessionId) view returns((bytes32,address,address,bytes32,bytes32,uint256,uint256,bytes,uint256,uint256,uint256,uint256,uint256)) +func (_SessionRouter *SessionRouterSession) Sessions(sessionId [32]byte) (ISessionStorageSession, error) { + return _SessionRouter.Contract.Sessions(&_SessionRouter.CallOpts, sessionId) } -// SessionsCount is a free data retrieval call binding the contract method 0x312f6307. +// Sessions is a free data retrieval call binding the contract method 0x7dbd2832. // -// Solidity: function sessionsCount() view returns(uint256) -func (_SessionRouter *SessionRouterCallerSession) SessionsCount() (*big.Int, error) { - return _SessionRouter.Contract.SessionsCount(&_SessionRouter.CallOpts) +// Solidity: function sessions(bytes32 sessionId) view returns((bytes32,address,address,bytes32,bytes32,uint256,uint256,bytes,uint256,uint256,uint256,uint256,uint256)) +func (_SessionRouter *SessionRouterCallerSession) Sessions(sessionId [32]byte) (ISessionStorageSession, error) { + return _SessionRouter.Contract.Sessions(&_SessionRouter.CallOpts, sessionId) } // StakeToStipend is a free data retrieval call binding the contract method 0x0a23b21f. // -// Solidity: function stakeToStipend(uint256 sessionStake, uint256 timestamp) view returns(uint256) -func (_SessionRouter *SessionRouterCaller) StakeToStipend(opts *bind.CallOpts, sessionStake *big.Int, timestamp *big.Int) (*big.Int, error) { +// Solidity: function stakeToStipend(uint256 sessionStake_, uint256 timestamp_) view returns(uint256) +func (_SessionRouter *SessionRouterCaller) StakeToStipend(opts *bind.CallOpts, sessionStake_ *big.Int, timestamp_ *big.Int) (*big.Int, error) { var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "stakeToStipend", sessionStake, timestamp) + err := _SessionRouter.contract.Call(opts, &out, "stakeToStipend", sessionStake_, timestamp_) if err != nil { return *new(*big.Int), err @@ -658,24 +1098,55 @@ func (_SessionRouter *SessionRouterCaller) StakeToStipend(opts *bind.CallOpts, s // StakeToStipend is a free data retrieval call binding the contract method 0x0a23b21f. // -// Solidity: function stakeToStipend(uint256 sessionStake, uint256 timestamp) view returns(uint256) -func (_SessionRouter *SessionRouterSession) StakeToStipend(sessionStake *big.Int, timestamp *big.Int) (*big.Int, error) { - return _SessionRouter.Contract.StakeToStipend(&_SessionRouter.CallOpts, sessionStake, timestamp) +// Solidity: function stakeToStipend(uint256 sessionStake_, uint256 timestamp_) view returns(uint256) +func (_SessionRouter *SessionRouterSession) StakeToStipend(sessionStake_ *big.Int, timestamp_ *big.Int) (*big.Int, error) { + return _SessionRouter.Contract.StakeToStipend(&_SessionRouter.CallOpts, sessionStake_, timestamp_) } // StakeToStipend is a free data retrieval call binding the contract method 0x0a23b21f. // -// Solidity: function stakeToStipend(uint256 sessionStake, uint256 timestamp) view returns(uint256) -func (_SessionRouter *SessionRouterCallerSession) StakeToStipend(sessionStake *big.Int, timestamp *big.Int) (*big.Int, error) { - return _SessionRouter.Contract.StakeToStipend(&_SessionRouter.CallOpts, sessionStake, timestamp) +// Solidity: function stakeToStipend(uint256 sessionStake_, uint256 timestamp_) view returns(uint256) +func (_SessionRouter *SessionRouterCallerSession) StakeToStipend(sessionStake_ *big.Int, timestamp_ *big.Int) (*big.Int, error) { + return _SessionRouter.Contract.StakeToStipend(&_SessionRouter.CallOpts, sessionStake_, timestamp_) +} + +// StartOfTheDay is a free data retrieval call binding the contract method 0xeedd0a72. +// +// Solidity: function startOfTheDay(uint256 timestamp_) pure returns(uint256) +func (_SessionRouter *SessionRouterCaller) StartOfTheDay(opts *bind.CallOpts, timestamp_ *big.Int) (*big.Int, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "startOfTheDay", timestamp_) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// StartOfTheDay is a free data retrieval call binding the contract method 0xeedd0a72. +// +// Solidity: function startOfTheDay(uint256 timestamp_) pure returns(uint256) +func (_SessionRouter *SessionRouterSession) StartOfTheDay(timestamp_ *big.Int) (*big.Int, error) { + return _SessionRouter.Contract.StartOfTheDay(&_SessionRouter.CallOpts, timestamp_) +} + +// StartOfTheDay is a free data retrieval call binding the contract method 0xeedd0a72. +// +// Solidity: function startOfTheDay(uint256 timestamp_) pure returns(uint256) +func (_SessionRouter *SessionRouterCallerSession) StartOfTheDay(timestamp_ *big.Int) (*big.Int, error) { + return _SessionRouter.Contract.StartOfTheDay(&_SessionRouter.CallOpts, timestamp_) } // StipendToStake is a free data retrieval call binding the contract method 0xac3c19ce. // -// Solidity: function stipendToStake(uint256 stipend, uint256 timestamp) view returns(uint256) -func (_SessionRouter *SessionRouterCaller) StipendToStake(opts *bind.CallOpts, stipend *big.Int, timestamp *big.Int) (*big.Int, error) { +// Solidity: function stipendToStake(uint256 stipend_, uint256 timestamp_) view returns(uint256) +func (_SessionRouter *SessionRouterCaller) StipendToStake(opts *bind.CallOpts, stipend_ *big.Int, timestamp_ *big.Int) (*big.Int, error) { var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "stipendToStake", stipend, timestamp) + err := _SessionRouter.contract.Call(opts, &out, "stipendToStake", stipend_, timestamp_) if err != nil { return *new(*big.Int), err @@ -689,24 +1160,24 @@ func (_SessionRouter *SessionRouterCaller) StipendToStake(opts *bind.CallOpts, s // StipendToStake is a free data retrieval call binding the contract method 0xac3c19ce. // -// Solidity: function stipendToStake(uint256 stipend, uint256 timestamp) view returns(uint256) -func (_SessionRouter *SessionRouterSession) StipendToStake(stipend *big.Int, timestamp *big.Int) (*big.Int, error) { - return _SessionRouter.Contract.StipendToStake(&_SessionRouter.CallOpts, stipend, timestamp) +// Solidity: function stipendToStake(uint256 stipend_, uint256 timestamp_) view returns(uint256) +func (_SessionRouter *SessionRouterSession) StipendToStake(stipend_ *big.Int, timestamp_ *big.Int) (*big.Int, error) { + return _SessionRouter.Contract.StipendToStake(&_SessionRouter.CallOpts, stipend_, timestamp_) } // StipendToStake is a free data retrieval call binding the contract method 0xac3c19ce. // -// Solidity: function stipendToStake(uint256 stipend, uint256 timestamp) view returns(uint256) -func (_SessionRouter *SessionRouterCallerSession) StipendToStake(stipend *big.Int, timestamp *big.Int) (*big.Int, error) { - return _SessionRouter.Contract.StipendToStake(&_SessionRouter.CallOpts, stipend, timestamp) +// Solidity: function stipendToStake(uint256 stipend_, uint256 timestamp_) view returns(uint256) +func (_SessionRouter *SessionRouterCallerSession) StipendToStake(stipend_ *big.Int, timestamp_ *big.Int) (*big.Int, error) { + return _SessionRouter.Contract.StipendToStake(&_SessionRouter.CallOpts, stipend_, timestamp_) } // TotalMORSupply is a free data retrieval call binding the contract method 0xf1d5440c. // -// Solidity: function totalMORSupply(uint256 timestamp) view returns(uint256) -func (_SessionRouter *SessionRouterCaller) TotalMORSupply(opts *bind.CallOpts, timestamp *big.Int) (*big.Int, error) { +// Solidity: function totalMORSupply(uint256 timestamp_) view returns(uint256) +func (_SessionRouter *SessionRouterCaller) TotalMORSupply(opts *bind.CallOpts, timestamp_ *big.Int) (*big.Int, error) { var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "totalMORSupply", timestamp) + err := _SessionRouter.contract.Call(opts, &out, "totalMORSupply", timestamp_) if err != nil { return *new(*big.Int), err @@ -720,24 +1191,24 @@ func (_SessionRouter *SessionRouterCaller) TotalMORSupply(opts *bind.CallOpts, t // TotalMORSupply is a free data retrieval call binding the contract method 0xf1d5440c. // -// Solidity: function totalMORSupply(uint256 timestamp) view returns(uint256) -func (_SessionRouter *SessionRouterSession) TotalMORSupply(timestamp *big.Int) (*big.Int, error) { - return _SessionRouter.Contract.TotalMORSupply(&_SessionRouter.CallOpts, timestamp) +// Solidity: function totalMORSupply(uint256 timestamp_) view returns(uint256) +func (_SessionRouter *SessionRouterSession) TotalMORSupply(timestamp_ *big.Int) (*big.Int, error) { + return _SessionRouter.Contract.TotalMORSupply(&_SessionRouter.CallOpts, timestamp_) } // TotalMORSupply is a free data retrieval call binding the contract method 0xf1d5440c. // -// Solidity: function totalMORSupply(uint256 timestamp) view returns(uint256) -func (_SessionRouter *SessionRouterCallerSession) TotalMORSupply(timestamp *big.Int) (*big.Int, error) { - return _SessionRouter.Contract.TotalMORSupply(&_SessionRouter.CallOpts, timestamp) +// Solidity: function totalMORSupply(uint256 timestamp_) view returns(uint256) +func (_SessionRouter *SessionRouterCallerSession) TotalMORSupply(timestamp_ *big.Int) (*big.Int, error) { + return _SessionRouter.Contract.TotalMORSupply(&_SessionRouter.CallOpts, timestamp_) } // WhenSessionEnds is a free data retrieval call binding the contract method 0x9bc08456. // -// Solidity: function whenSessionEnds(uint256 sessionStake, uint256 pricePerSecond, uint256 openedAt) view returns(uint256) -func (_SessionRouter *SessionRouterCaller) WhenSessionEnds(opts *bind.CallOpts, sessionStake *big.Int, pricePerSecond *big.Int, openedAt *big.Int) (*big.Int, error) { +// Solidity: function whenSessionEnds(uint256 sessionStake_, uint256 pricePerSecond_, uint256 openedAt_) view returns(uint256) +func (_SessionRouter *SessionRouterCaller) WhenSessionEnds(opts *bind.CallOpts, sessionStake_ *big.Int, pricePerSecond_ *big.Int, openedAt_ *big.Int) (*big.Int, error) { var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "whenSessionEnds", sessionStake, pricePerSecond, openedAt) + err := _SessionRouter.contract.Call(opts, &out, "whenSessionEnds", sessionStake_, pricePerSecond_, openedAt_) if err != nil { return *new(*big.Int), err @@ -751,27 +1222,27 @@ func (_SessionRouter *SessionRouterCaller) WhenSessionEnds(opts *bind.CallOpts, // WhenSessionEnds is a free data retrieval call binding the contract method 0x9bc08456. // -// Solidity: function whenSessionEnds(uint256 sessionStake, uint256 pricePerSecond, uint256 openedAt) view returns(uint256) -func (_SessionRouter *SessionRouterSession) WhenSessionEnds(sessionStake *big.Int, pricePerSecond *big.Int, openedAt *big.Int) (*big.Int, error) { - return _SessionRouter.Contract.WhenSessionEnds(&_SessionRouter.CallOpts, sessionStake, pricePerSecond, openedAt) +// Solidity: function whenSessionEnds(uint256 sessionStake_, uint256 pricePerSecond_, uint256 openedAt_) view returns(uint256) +func (_SessionRouter *SessionRouterSession) WhenSessionEnds(sessionStake_ *big.Int, pricePerSecond_ *big.Int, openedAt_ *big.Int) (*big.Int, error) { + return _SessionRouter.Contract.WhenSessionEnds(&_SessionRouter.CallOpts, sessionStake_, pricePerSecond_, openedAt_) } // WhenSessionEnds is a free data retrieval call binding the contract method 0x9bc08456. // -// Solidity: function whenSessionEnds(uint256 sessionStake, uint256 pricePerSecond, uint256 openedAt) view returns(uint256) -func (_SessionRouter *SessionRouterCallerSession) WhenSessionEnds(sessionStake *big.Int, pricePerSecond *big.Int, openedAt *big.Int) (*big.Int, error) { - return _SessionRouter.Contract.WhenSessionEnds(&_SessionRouter.CallOpts, sessionStake, pricePerSecond, openedAt) +// Solidity: function whenSessionEnds(uint256 sessionStake_, uint256 pricePerSecond_, uint256 openedAt_) view returns(uint256) +func (_SessionRouter *SessionRouterCallerSession) WhenSessionEnds(sessionStake_ *big.Int, pricePerSecond_ *big.Int, openedAt_ *big.Int) (*big.Int, error) { + return _SessionRouter.Contract.WhenSessionEnds(&_SessionRouter.CallOpts, sessionStake_, pricePerSecond_, openedAt_) } -// WithdrawableUserStake is a free data retrieval call binding the contract method 0x13796cae. +// WithdrawableUserStake is a free data retrieval call binding the contract method 0x65bf0e3c. // -// Solidity: function withdrawableUserStake(address userAddr, uint256 offset, uint8 limit) view returns(uint256 avail, uint256 hold) -func (_SessionRouter *SessionRouterCaller) WithdrawableUserStake(opts *bind.CallOpts, userAddr common.Address, offset *big.Int, limit uint8) (struct { +// Solidity: function withdrawableUserStake(address user_, uint8 iterations_) view returns(uint256 avail_, uint256 hold_) +func (_SessionRouter *SessionRouterCaller) WithdrawableUserStake(opts *bind.CallOpts, user_ common.Address, iterations_ uint8) (struct { Avail *big.Int Hold *big.Int }, error) { var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "withdrawableUserStake", userAddr, offset, limit) + err := _SessionRouter.contract.Call(opts, &out, "withdrawableUserStake", user_, iterations_) outstruct := new(struct { Avail *big.Int @@ -788,150 +1259,305 @@ func (_SessionRouter *SessionRouterCaller) WithdrawableUserStake(opts *bind.Call } -// WithdrawableUserStake is a free data retrieval call binding the contract method 0x13796cae. +// WithdrawableUserStake is a free data retrieval call binding the contract method 0x65bf0e3c. // -// Solidity: function withdrawableUserStake(address userAddr, uint256 offset, uint8 limit) view returns(uint256 avail, uint256 hold) -func (_SessionRouter *SessionRouterSession) WithdrawableUserStake(userAddr common.Address, offset *big.Int, limit uint8) (struct { +// Solidity: function withdrawableUserStake(address user_, uint8 iterations_) view returns(uint256 avail_, uint256 hold_) +func (_SessionRouter *SessionRouterSession) WithdrawableUserStake(user_ common.Address, iterations_ uint8) (struct { Avail *big.Int Hold *big.Int }, error) { - return _SessionRouter.Contract.WithdrawableUserStake(&_SessionRouter.CallOpts, userAddr, offset, limit) + return _SessionRouter.Contract.WithdrawableUserStake(&_SessionRouter.CallOpts, user_, iterations_) } -// WithdrawableUserStake is a free data retrieval call binding the contract method 0x13796cae. +// WithdrawableUserStake is a free data retrieval call binding the contract method 0x65bf0e3c. // -// Solidity: function withdrawableUserStake(address userAddr, uint256 offset, uint8 limit) view returns(uint256 avail, uint256 hold) -func (_SessionRouter *SessionRouterCallerSession) WithdrawableUserStake(userAddr common.Address, offset *big.Int, limit uint8) (struct { +// Solidity: function withdrawableUserStake(address user_, uint8 iterations_) view returns(uint256 avail_, uint256 hold_) +func (_SessionRouter *SessionRouterCallerSession) WithdrawableUserStake(user_ common.Address, iterations_ uint8) (struct { Avail *big.Int Hold *big.Int }, error) { - return _SessionRouter.Contract.WithdrawableUserStake(&_SessionRouter.CallOpts, userAddr, offset, limit) + return _SessionRouter.Contract.WithdrawableUserStake(&_SessionRouter.CallOpts, user_, iterations_) +} + +// SessionRouterInit is a paid mutator transaction binding the contract method 0x44ceb8e0. +// +// Solidity: function __SessionRouter_init(address fundingAccount_, (uint256,uint256,uint128,uint128)[] pools_) returns() +func (_SessionRouter *SessionRouterTransactor) SessionRouterInit(opts *bind.TransactOpts, fundingAccount_ common.Address, pools_ []ISessionStoragePool) (*types.Transaction, error) { + return _SessionRouter.contract.Transact(opts, "__SessionRouter_init", fundingAccount_, pools_) +} + +// SessionRouterInit is a paid mutator transaction binding the contract method 0x44ceb8e0. +// +// Solidity: function __SessionRouter_init(address fundingAccount_, (uint256,uint256,uint128,uint128)[] pools_) returns() +func (_SessionRouter *SessionRouterSession) SessionRouterInit(fundingAccount_ common.Address, pools_ []ISessionStoragePool) (*types.Transaction, error) { + return _SessionRouter.Contract.SessionRouterInit(&_SessionRouter.TransactOpts, fundingAccount_, pools_) +} + +// SessionRouterInit is a paid mutator transaction binding the contract method 0x44ceb8e0. +// +// Solidity: function __SessionRouter_init(address fundingAccount_, (uint256,uint256,uint128,uint128)[] pools_) returns() +func (_SessionRouter *SessionRouterTransactorSession) SessionRouterInit(fundingAccount_ common.Address, pools_ []ISessionStoragePool) (*types.Transaction, error) { + return _SessionRouter.Contract.SessionRouterInit(&_SessionRouter.TransactOpts, fundingAccount_, pools_) } // ClaimProviderBalance is a paid mutator transaction binding the contract method 0xf42d165a. // -// Solidity: function claimProviderBalance(bytes32 sessionId, uint256 amountToWithdraw) returns() -func (_SessionRouter *SessionRouterTransactor) ClaimProviderBalance(opts *bind.TransactOpts, sessionId [32]byte, amountToWithdraw *big.Int) (*types.Transaction, error) { - return _SessionRouter.contract.Transact(opts, "claimProviderBalance", sessionId, amountToWithdraw) +// Solidity: function claimProviderBalance(bytes32 sessionId_, uint256 amountToWithdraw_) returns() +func (_SessionRouter *SessionRouterTransactor) ClaimProviderBalance(opts *bind.TransactOpts, sessionId_ [32]byte, amountToWithdraw_ *big.Int) (*types.Transaction, error) { + return _SessionRouter.contract.Transact(opts, "claimProviderBalance", sessionId_, amountToWithdraw_) } // ClaimProviderBalance is a paid mutator transaction binding the contract method 0xf42d165a. // -// Solidity: function claimProviderBalance(bytes32 sessionId, uint256 amountToWithdraw) returns() -func (_SessionRouter *SessionRouterSession) ClaimProviderBalance(sessionId [32]byte, amountToWithdraw *big.Int) (*types.Transaction, error) { - return _SessionRouter.Contract.ClaimProviderBalance(&_SessionRouter.TransactOpts, sessionId, amountToWithdraw) +// Solidity: function claimProviderBalance(bytes32 sessionId_, uint256 amountToWithdraw_) returns() +func (_SessionRouter *SessionRouterSession) ClaimProviderBalance(sessionId_ [32]byte, amountToWithdraw_ *big.Int) (*types.Transaction, error) { + return _SessionRouter.Contract.ClaimProviderBalance(&_SessionRouter.TransactOpts, sessionId_, amountToWithdraw_) } // ClaimProviderBalance is a paid mutator transaction binding the contract method 0xf42d165a. // -// Solidity: function claimProviderBalance(bytes32 sessionId, uint256 amountToWithdraw) returns() -func (_SessionRouter *SessionRouterTransactorSession) ClaimProviderBalance(sessionId [32]byte, amountToWithdraw *big.Int) (*types.Transaction, error) { - return _SessionRouter.Contract.ClaimProviderBalance(&_SessionRouter.TransactOpts, sessionId, amountToWithdraw) +// Solidity: function claimProviderBalance(bytes32 sessionId_, uint256 amountToWithdraw_) returns() +func (_SessionRouter *SessionRouterTransactorSession) ClaimProviderBalance(sessionId_ [32]byte, amountToWithdraw_ *big.Int) (*types.Transaction, error) { + return _SessionRouter.Contract.ClaimProviderBalance(&_SessionRouter.TransactOpts, sessionId_, amountToWithdraw_) } // CloseSession is a paid mutator transaction binding the contract method 0x42f77a31. // -// Solidity: function closeSession(bytes receiptEncoded, bytes signature) returns() -func (_SessionRouter *SessionRouterTransactor) CloseSession(opts *bind.TransactOpts, receiptEncoded []byte, signature []byte) (*types.Transaction, error) { - return _SessionRouter.contract.Transact(opts, "closeSession", receiptEncoded, signature) +// Solidity: function closeSession(bytes receiptEncoded_, bytes signature_) returns() +func (_SessionRouter *SessionRouterTransactor) CloseSession(opts *bind.TransactOpts, receiptEncoded_ []byte, signature_ []byte) (*types.Transaction, error) { + return _SessionRouter.contract.Transact(opts, "closeSession", receiptEncoded_, signature_) } // CloseSession is a paid mutator transaction binding the contract method 0x42f77a31. // -// Solidity: function closeSession(bytes receiptEncoded, bytes signature) returns() -func (_SessionRouter *SessionRouterSession) CloseSession(receiptEncoded []byte, signature []byte) (*types.Transaction, error) { - return _SessionRouter.Contract.CloseSession(&_SessionRouter.TransactOpts, receiptEncoded, signature) +// Solidity: function closeSession(bytes receiptEncoded_, bytes signature_) returns() +func (_SessionRouter *SessionRouterSession) CloseSession(receiptEncoded_ []byte, signature_ []byte) (*types.Transaction, error) { + return _SessionRouter.Contract.CloseSession(&_SessionRouter.TransactOpts, receiptEncoded_, signature_) } // CloseSession is a paid mutator transaction binding the contract method 0x42f77a31. // -// Solidity: function closeSession(bytes receiptEncoded, bytes signature) returns() -func (_SessionRouter *SessionRouterTransactorSession) CloseSession(receiptEncoded []byte, signature []byte) (*types.Transaction, error) { - return _SessionRouter.Contract.CloseSession(&_SessionRouter.TransactOpts, receiptEncoded, signature) +// Solidity: function closeSession(bytes receiptEncoded_, bytes signature_) returns() +func (_SessionRouter *SessionRouterTransactorSession) CloseSession(receiptEncoded_ []byte, signature_ []byte) (*types.Transaction, error) { + return _SessionRouter.Contract.CloseSession(&_SessionRouter.TransactOpts, receiptEncoded_, signature_) } // DeleteHistory is a paid mutator transaction binding the contract method 0xf074ca6b. // -// Solidity: function deleteHistory(bytes32 sessionId) returns() -func (_SessionRouter *SessionRouterTransactor) DeleteHistory(opts *bind.TransactOpts, sessionId [32]byte) (*types.Transaction, error) { - return _SessionRouter.contract.Transact(opts, "deleteHistory", sessionId) +// Solidity: function deleteHistory(bytes32 sessionId_) returns() +func (_SessionRouter *SessionRouterTransactor) DeleteHistory(opts *bind.TransactOpts, sessionId_ [32]byte) (*types.Transaction, error) { + return _SessionRouter.contract.Transact(opts, "deleteHistory", sessionId_) } // DeleteHistory is a paid mutator transaction binding the contract method 0xf074ca6b. // -// Solidity: function deleteHistory(bytes32 sessionId) returns() -func (_SessionRouter *SessionRouterSession) DeleteHistory(sessionId [32]byte) (*types.Transaction, error) { - return _SessionRouter.Contract.DeleteHistory(&_SessionRouter.TransactOpts, sessionId) +// Solidity: function deleteHistory(bytes32 sessionId_) returns() +func (_SessionRouter *SessionRouterSession) DeleteHistory(sessionId_ [32]byte) (*types.Transaction, error) { + return _SessionRouter.Contract.DeleteHistory(&_SessionRouter.TransactOpts, sessionId_) } // DeleteHistory is a paid mutator transaction binding the contract method 0xf074ca6b. // -// Solidity: function deleteHistory(bytes32 sessionId) returns() -func (_SessionRouter *SessionRouterTransactorSession) DeleteHistory(sessionId [32]byte) (*types.Transaction, error) { - return _SessionRouter.Contract.DeleteHistory(&_SessionRouter.TransactOpts, sessionId) +// Solidity: function deleteHistory(bytes32 sessionId_) returns() +func (_SessionRouter *SessionRouterTransactorSession) DeleteHistory(sessionId_ [32]byte) (*types.Transaction, error) { + return _SessionRouter.Contract.DeleteHistory(&_SessionRouter.TransactOpts, sessionId_) } // OpenSession is a paid mutator transaction binding the contract method 0x1f71815e. // -// Solidity: function openSession(uint256 _stake, bytes providerApproval, bytes signature) returns(bytes32 sessionId) -func (_SessionRouter *SessionRouterTransactor) OpenSession(opts *bind.TransactOpts, _stake *big.Int, providerApproval []byte, signature []byte) (*types.Transaction, error) { - return _SessionRouter.contract.Transact(opts, "openSession", _stake, providerApproval, signature) +// Solidity: function openSession(uint256 amount_, bytes providerApproval_, bytes signature_) returns(bytes32) +func (_SessionRouter *SessionRouterTransactor) OpenSession(opts *bind.TransactOpts, amount_ *big.Int, providerApproval_ []byte, signature_ []byte) (*types.Transaction, error) { + return _SessionRouter.contract.Transact(opts, "openSession", amount_, providerApproval_, signature_) } // OpenSession is a paid mutator transaction binding the contract method 0x1f71815e. // -// Solidity: function openSession(uint256 _stake, bytes providerApproval, bytes signature) returns(bytes32 sessionId) -func (_SessionRouter *SessionRouterSession) OpenSession(_stake *big.Int, providerApproval []byte, signature []byte) (*types.Transaction, error) { - return _SessionRouter.Contract.OpenSession(&_SessionRouter.TransactOpts, _stake, providerApproval, signature) +// Solidity: function openSession(uint256 amount_, bytes providerApproval_, bytes signature_) returns(bytes32) +func (_SessionRouter *SessionRouterSession) OpenSession(amount_ *big.Int, providerApproval_ []byte, signature_ []byte) (*types.Transaction, error) { + return _SessionRouter.Contract.OpenSession(&_SessionRouter.TransactOpts, amount_, providerApproval_, signature_) } // OpenSession is a paid mutator transaction binding the contract method 0x1f71815e. // -// Solidity: function openSession(uint256 _stake, bytes providerApproval, bytes signature) returns(bytes32 sessionId) -func (_SessionRouter *SessionRouterTransactorSession) OpenSession(_stake *big.Int, providerApproval []byte, signature []byte) (*types.Transaction, error) { - return _SessionRouter.Contract.OpenSession(&_SessionRouter.TransactOpts, _stake, providerApproval, signature) +// Solidity: function openSession(uint256 amount_, bytes providerApproval_, bytes signature_) returns(bytes32) +func (_SessionRouter *SessionRouterTransactorSession) OpenSession(amount_ *big.Int, providerApproval_ []byte, signature_ []byte) (*types.Transaction, error) { + return _SessionRouter.Contract.OpenSession(&_SessionRouter.TransactOpts, amount_, providerApproval_, signature_) } // SetPoolConfig is a paid mutator transaction binding the contract method 0xd7178753. // // Solidity: function setPoolConfig(uint256 index, (uint256,uint256,uint128,uint128) pool) returns() -func (_SessionRouter *SessionRouterTransactor) SetPoolConfig(opts *bind.TransactOpts, index *big.Int, pool Pool) (*types.Transaction, error) { +func (_SessionRouter *SessionRouterTransactor) SetPoolConfig(opts *bind.TransactOpts, index *big.Int, pool ISessionStoragePool) (*types.Transaction, error) { return _SessionRouter.contract.Transact(opts, "setPoolConfig", index, pool) } // SetPoolConfig is a paid mutator transaction binding the contract method 0xd7178753. // // Solidity: function setPoolConfig(uint256 index, (uint256,uint256,uint128,uint128) pool) returns() -func (_SessionRouter *SessionRouterSession) SetPoolConfig(index *big.Int, pool Pool) (*types.Transaction, error) { +func (_SessionRouter *SessionRouterSession) SetPoolConfig(index *big.Int, pool ISessionStoragePool) (*types.Transaction, error) { return _SessionRouter.Contract.SetPoolConfig(&_SessionRouter.TransactOpts, index, pool) } // SetPoolConfig is a paid mutator transaction binding the contract method 0xd7178753. // // Solidity: function setPoolConfig(uint256 index, (uint256,uint256,uint128,uint128) pool) returns() -func (_SessionRouter *SessionRouterTransactorSession) SetPoolConfig(index *big.Int, pool Pool) (*types.Transaction, error) { +func (_SessionRouter *SessionRouterTransactorSession) SetPoolConfig(index *big.Int, pool ISessionStoragePool) (*types.Transaction, error) { return _SessionRouter.Contract.SetPoolConfig(&_SessionRouter.TransactOpts, index, pool) } // WithdrawUserStake is a paid mutator transaction binding the contract method 0x0fd2c44e. // -// Solidity: function withdrawUserStake(uint256 amountToWithdraw, uint8 iterations) returns() -func (_SessionRouter *SessionRouterTransactor) WithdrawUserStake(opts *bind.TransactOpts, amountToWithdraw *big.Int, iterations uint8) (*types.Transaction, error) { - return _SessionRouter.contract.Transact(opts, "withdrawUserStake", amountToWithdraw, iterations) +// Solidity: function withdrawUserStake(uint256 amountToWithdraw_, uint8 iterations_) returns() +func (_SessionRouter *SessionRouterTransactor) WithdrawUserStake(opts *bind.TransactOpts, amountToWithdraw_ *big.Int, iterations_ uint8) (*types.Transaction, error) { + return _SessionRouter.contract.Transact(opts, "withdrawUserStake", amountToWithdraw_, iterations_) } // WithdrawUserStake is a paid mutator transaction binding the contract method 0x0fd2c44e. // -// Solidity: function withdrawUserStake(uint256 amountToWithdraw, uint8 iterations) returns() -func (_SessionRouter *SessionRouterSession) WithdrawUserStake(amountToWithdraw *big.Int, iterations uint8) (*types.Transaction, error) { - return _SessionRouter.Contract.WithdrawUserStake(&_SessionRouter.TransactOpts, amountToWithdraw, iterations) +// Solidity: function withdrawUserStake(uint256 amountToWithdraw_, uint8 iterations_) returns() +func (_SessionRouter *SessionRouterSession) WithdrawUserStake(amountToWithdraw_ *big.Int, iterations_ uint8) (*types.Transaction, error) { + return _SessionRouter.Contract.WithdrawUserStake(&_SessionRouter.TransactOpts, amountToWithdraw_, iterations_) } // WithdrawUserStake is a paid mutator transaction binding the contract method 0x0fd2c44e. // -// Solidity: function withdrawUserStake(uint256 amountToWithdraw, uint8 iterations) returns() -func (_SessionRouter *SessionRouterTransactorSession) WithdrawUserStake(amountToWithdraw *big.Int, iterations uint8) (*types.Transaction, error) { - return _SessionRouter.Contract.WithdrawUserStake(&_SessionRouter.TransactOpts, amountToWithdraw, iterations) +// Solidity: function withdrawUserStake(uint256 amountToWithdraw_, uint8 iterations_) returns() +func (_SessionRouter *SessionRouterTransactorSession) WithdrawUserStake(amountToWithdraw_ *big.Int, iterations_ uint8) (*types.Transaction, error) { + return _SessionRouter.Contract.WithdrawUserStake(&_SessionRouter.TransactOpts, amountToWithdraw_, iterations_) +} + +// SessionRouterInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the SessionRouter contract. +type SessionRouterInitializedIterator struct { + Event *SessionRouterInitialized // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *SessionRouterInitializedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(SessionRouterInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(SessionRouterInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *SessionRouterInitializedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *SessionRouterInitializedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// SessionRouterInitialized represents a Initialized event raised by the SessionRouter contract. +type SessionRouterInitialized struct { + StorageSlot [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterInitialized is a free log retrieval operation binding the contract event 0xdc73717d728bcfa015e8117438a65319aa06e979ca324afa6e1ea645c28ea15d. +// +// Solidity: event Initialized(bytes32 storageSlot) +func (_SessionRouter *SessionRouterFilterer) FilterInitialized(opts *bind.FilterOpts) (*SessionRouterInitializedIterator, error) { + + logs, sub, err := _SessionRouter.contract.FilterLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return &SessionRouterInitializedIterator{contract: _SessionRouter.contract, event: "Initialized", logs: logs, sub: sub}, nil +} + +// WatchInitialized is a free log subscription operation binding the contract event 0xdc73717d728bcfa015e8117438a65319aa06e979ca324afa6e1ea645c28ea15d. +// +// Solidity: event Initialized(bytes32 storageSlot) +func (_SessionRouter *SessionRouterFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *SessionRouterInitialized) (event.Subscription, error) { + + logs, sub, err := _SessionRouter.contract.WatchLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(SessionRouterInitialized) + if err := _SessionRouter.contract.UnpackLog(event, "Initialized", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseInitialized is a log parse operation binding the contract event 0xdc73717d728bcfa015e8117438a65319aa06e979ca324afa6e1ea645c28ea15d. +// +// Solidity: event Initialized(bytes32 storageSlot) +func (_SessionRouter *SessionRouterFilterer) ParseInitialized(log types.Log) (*SessionRouterInitialized, error) { + event := new(SessionRouterInitialized) + if err := _SessionRouter.contract.UnpackLog(event, "Initialized", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil } // SessionRouterSessionClosedIterator is returned from FilterSessionClosed and is used to iterate over the raw logs and unpacked data for SessionClosed events raised by the SessionRouter contract. @@ -1003,20 +1629,20 @@ func (it *SessionRouterSessionClosedIterator) Close() error { // SessionRouterSessionClosed represents a SessionClosed event raised by the SessionRouter contract. type SessionRouterSessionClosed struct { - UserAddress common.Address - SessionId [32]byte - ProviderId common.Address - Raw types.Log // Blockchain specific contextual infos + User common.Address + SessionId [32]byte + ProviderId common.Address + Raw types.Log // Blockchain specific contextual infos } // FilterSessionClosed is a free log retrieval operation binding the contract event 0x337fbb0a41a596db800dc836595a57815f967185e3596615c646f2455ac3914a. // -// Solidity: event SessionClosed(address indexed userAddress, bytes32 indexed sessionId, address indexed providerId) -func (_SessionRouter *SessionRouterFilterer) FilterSessionClosed(opts *bind.FilterOpts, userAddress []common.Address, sessionId [][32]byte, providerId []common.Address) (*SessionRouterSessionClosedIterator, error) { +// Solidity: event SessionClosed(address indexed user, bytes32 indexed sessionId, address indexed providerId) +func (_SessionRouter *SessionRouterFilterer) FilterSessionClosed(opts *bind.FilterOpts, user []common.Address, sessionId [][32]byte, providerId []common.Address) (*SessionRouterSessionClosedIterator, error) { - var userAddressRule []interface{} - for _, userAddressItem := range userAddress { - userAddressRule = append(userAddressRule, userAddressItem) + var userRule []interface{} + for _, userItem := range user { + userRule = append(userRule, userItem) } var sessionIdRule []interface{} for _, sessionIdItem := range sessionId { @@ -1027,7 +1653,7 @@ func (_SessionRouter *SessionRouterFilterer) FilterSessionClosed(opts *bind.Filt providerIdRule = append(providerIdRule, providerIdItem) } - logs, sub, err := _SessionRouter.contract.FilterLogs(opts, "SessionClosed", userAddressRule, sessionIdRule, providerIdRule) + logs, sub, err := _SessionRouter.contract.FilterLogs(opts, "SessionClosed", userRule, sessionIdRule, providerIdRule) if err != nil { return nil, err } @@ -1036,12 +1662,12 @@ func (_SessionRouter *SessionRouterFilterer) FilterSessionClosed(opts *bind.Filt // WatchSessionClosed is a free log subscription operation binding the contract event 0x337fbb0a41a596db800dc836595a57815f967185e3596615c646f2455ac3914a. // -// Solidity: event SessionClosed(address indexed userAddress, bytes32 indexed sessionId, address indexed providerId) -func (_SessionRouter *SessionRouterFilterer) WatchSessionClosed(opts *bind.WatchOpts, sink chan<- *SessionRouterSessionClosed, userAddress []common.Address, sessionId [][32]byte, providerId []common.Address) (event.Subscription, error) { +// Solidity: event SessionClosed(address indexed user, bytes32 indexed sessionId, address indexed providerId) +func (_SessionRouter *SessionRouterFilterer) WatchSessionClosed(opts *bind.WatchOpts, sink chan<- *SessionRouterSessionClosed, user []common.Address, sessionId [][32]byte, providerId []common.Address) (event.Subscription, error) { - var userAddressRule []interface{} - for _, userAddressItem := range userAddress { - userAddressRule = append(userAddressRule, userAddressItem) + var userRule []interface{} + for _, userItem := range user { + userRule = append(userRule, userItem) } var sessionIdRule []interface{} for _, sessionIdItem := range sessionId { @@ -1052,7 +1678,7 @@ func (_SessionRouter *SessionRouterFilterer) WatchSessionClosed(opts *bind.Watch providerIdRule = append(providerIdRule, providerIdItem) } - logs, sub, err := _SessionRouter.contract.WatchLogs(opts, "SessionClosed", userAddressRule, sessionIdRule, providerIdRule) + logs, sub, err := _SessionRouter.contract.WatchLogs(opts, "SessionClosed", userRule, sessionIdRule, providerIdRule) if err != nil { return nil, err } @@ -1086,7 +1712,7 @@ func (_SessionRouter *SessionRouterFilterer) WatchSessionClosed(opts *bind.Watch // ParseSessionClosed is a log parse operation binding the contract event 0x337fbb0a41a596db800dc836595a57815f967185e3596615c646f2455ac3914a. // -// Solidity: event SessionClosed(address indexed userAddress, bytes32 indexed sessionId, address indexed providerId) +// Solidity: event SessionClosed(address indexed user, bytes32 indexed sessionId, address indexed providerId) func (_SessionRouter *SessionRouterFilterer) ParseSessionClosed(log types.Log) (*SessionRouterSessionClosed, error) { event := new(SessionRouterSessionClosed) if err := _SessionRouter.contract.UnpackLog(event, "SessionClosed", log); err != nil { @@ -1165,20 +1791,20 @@ func (it *SessionRouterSessionOpenedIterator) Close() error { // SessionRouterSessionOpened represents a SessionOpened event raised by the SessionRouter contract. type SessionRouterSessionOpened struct { - UserAddress common.Address - SessionId [32]byte - ProviderId common.Address - Raw types.Log // Blockchain specific contextual infos + User common.Address + SessionId [32]byte + ProviderId common.Address + Raw types.Log // Blockchain specific contextual infos } // FilterSessionOpened is a free log retrieval operation binding the contract event 0x2bd7c890baf595977d256a6e784512c873ac58ba612b4895dbb7f784bfbf4839. // -// Solidity: event SessionOpened(address indexed userAddress, bytes32 indexed sessionId, address indexed providerId) -func (_SessionRouter *SessionRouterFilterer) FilterSessionOpened(opts *bind.FilterOpts, userAddress []common.Address, sessionId [][32]byte, providerId []common.Address) (*SessionRouterSessionOpenedIterator, error) { +// Solidity: event SessionOpened(address indexed user, bytes32 indexed sessionId, address indexed providerId) +func (_SessionRouter *SessionRouterFilterer) FilterSessionOpened(opts *bind.FilterOpts, user []common.Address, sessionId [][32]byte, providerId []common.Address) (*SessionRouterSessionOpenedIterator, error) { - var userAddressRule []interface{} - for _, userAddressItem := range userAddress { - userAddressRule = append(userAddressRule, userAddressItem) + var userRule []interface{} + for _, userItem := range user { + userRule = append(userRule, userItem) } var sessionIdRule []interface{} for _, sessionIdItem := range sessionId { @@ -1189,7 +1815,7 @@ func (_SessionRouter *SessionRouterFilterer) FilterSessionOpened(opts *bind.Filt providerIdRule = append(providerIdRule, providerIdItem) } - logs, sub, err := _SessionRouter.contract.FilterLogs(opts, "SessionOpened", userAddressRule, sessionIdRule, providerIdRule) + logs, sub, err := _SessionRouter.contract.FilterLogs(opts, "SessionOpened", userRule, sessionIdRule, providerIdRule) if err != nil { return nil, err } @@ -1198,12 +1824,12 @@ func (_SessionRouter *SessionRouterFilterer) FilterSessionOpened(opts *bind.Filt // WatchSessionOpened is a free log subscription operation binding the contract event 0x2bd7c890baf595977d256a6e784512c873ac58ba612b4895dbb7f784bfbf4839. // -// Solidity: event SessionOpened(address indexed userAddress, bytes32 indexed sessionId, address indexed providerId) -func (_SessionRouter *SessionRouterFilterer) WatchSessionOpened(opts *bind.WatchOpts, sink chan<- *SessionRouterSessionOpened, userAddress []common.Address, sessionId [][32]byte, providerId []common.Address) (event.Subscription, error) { +// Solidity: event SessionOpened(address indexed user, bytes32 indexed sessionId, address indexed providerId) +func (_SessionRouter *SessionRouterFilterer) WatchSessionOpened(opts *bind.WatchOpts, sink chan<- *SessionRouterSessionOpened, user []common.Address, sessionId [][32]byte, providerId []common.Address) (event.Subscription, error) { - var userAddressRule []interface{} - for _, userAddressItem := range userAddress { - userAddressRule = append(userAddressRule, userAddressItem) + var userRule []interface{} + for _, userItem := range user { + userRule = append(userRule, userItem) } var sessionIdRule []interface{} for _, sessionIdItem := range sessionId { @@ -1214,7 +1840,7 @@ func (_SessionRouter *SessionRouterFilterer) WatchSessionOpened(opts *bind.Watch providerIdRule = append(providerIdRule, providerIdItem) } - logs, sub, err := _SessionRouter.contract.WatchLogs(opts, "SessionOpened", userAddressRule, sessionIdRule, providerIdRule) + logs, sub, err := _SessionRouter.contract.WatchLogs(opts, "SessionOpened", userRule, sessionIdRule, providerIdRule) if err != nil { return nil, err } @@ -1248,7 +1874,7 @@ func (_SessionRouter *SessionRouterFilterer) WatchSessionOpened(opts *bind.Watch // ParseSessionOpened is a log parse operation binding the contract event 0x2bd7c890baf595977d256a6e784512c873ac58ba612b4895dbb7f784bfbf4839. // -// Solidity: event SessionOpened(address indexed userAddress, bytes32 indexed sessionId, address indexed providerId) +// Solidity: event SessionOpened(address indexed user, bytes32 indexed sessionId, address indexed providerId) func (_SessionRouter *SessionRouterFilterer) ParseSessionOpened(log types.Log) (*SessionRouterSessionOpened, error) { event := new(SessionRouterSessionOpened) if err := _SessionRouter.contract.UnpackLog(event, "SessionOpened", log); err != nil { diff --git a/proxy-router/internal/blockchainapi/controller.go b/proxy-router/internal/blockchainapi/controller.go index 46c552f5..543d2843 100644 --- a/proxy-router/internal/blockchainapi/controller.go +++ b/proxy-router/internal/blockchainapi/controller.go @@ -266,7 +266,14 @@ func (c *BlockchainController) getActiveBidsByProvider(ctx *gin.Context) { return } - bids, err := c.service.GetActiveBidsByProvider(ctx, params.ID.Address) + offset, limit, err := getOffsetLimit(ctx) + if err != nil { + c.log.Error(err) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) + return + } + + bids, err := c.service.GetActiveBidsByProvider(ctx, params.ID.Address, offset, limit) if err != nil { c.log.Error(err) ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) @@ -353,7 +360,14 @@ func (c *BlockchainController) getActiveBidsByModel(ctx *gin.Context) { return } - bids, err := c.service.GetActiveBidsByModel(ctx, params.ID.Hash) + offset, limit, err := getOffsetLimit(ctx) + if err != nil { + c.log.Error(err) + ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) + return + } + + bids, err := c.service.GetActiveBidsByModel(ctx, params.ID.Hash, offset, limit) if err != nil { c.log.Error(err) ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) diff --git a/proxy-router/internal/blockchainapi/event_listener.go b/proxy-router/internal/blockchainapi/event_listener.go index bb036715..95572135 100644 --- a/proxy-router/internal/blockchainapi/event_listener.go +++ b/proxy-router/internal/blockchainapi/event_listener.go @@ -96,12 +96,12 @@ func (e *EventsListener) handleSessionOpened(event *sessionrouter.SessionRouterS return err } - if session.Provider.Hex() != address.Hex() && event.UserAddress.Hex() != address.Hex() { + if session.Provider.Hex() != address.Hex() && event.User.Hex() != address.Hex() { e.log.Debugf("session provider/user is not me, skipping, sessionId %s", sessionId) return nil } - modelID := lib.BytesToString(session.ModelAgentId[:]) + modelID := lib.BytesToString(session.ModelId[:]) var modelConfig *config.ModelConfig if session.Provider.Hex() == address.Hex() { @@ -116,7 +116,7 @@ func (e *EventsListener) handleSessionOpened(event *sessionrouter.SessionRouterS err = e.store.AddSession(&storages.Session{ Id: sessionId, - UserAddr: event.UserAddress.Hex(), + UserAddr: event.User.Hex(), ProviderAddr: session.Provider.Hex(), EndsAt: session.EndsAt, ModelID: modelID, diff --git a/proxy-router/internal/blockchainapi/mappers.go b/proxy-router/internal/blockchainapi/mappers.go index 139fbe69..de868cdd 100644 --- a/proxy-router/internal/blockchainapi/mappers.go +++ b/proxy-router/internal/blockchainapi/mappers.go @@ -10,7 +10,7 @@ import ( "github.com/ethereum/go-ethereum/common" ) -func mapBids(bidIDs [][32]byte, bids []marketplace.Bid) []*structs.Bid { +func mapBids(bidIDs [][32]byte, bids []marketplace.IBidStorageBid) []*structs.Bid { result := make([]*structs.Bid, len(bidIDs)) for i, value := range bids { result[i] = mapBid(bidIDs[i], value) @@ -18,10 +18,10 @@ func mapBids(bidIDs [][32]byte, bids []marketplace.Bid) []*structs.Bid { return result } -func mapBid(bidID common.Hash, bid marketplace.Bid) *structs.Bid { +func mapBid(bidID common.Hash, bid marketplace.IBidStorageBid) *structs.Bid { return &structs.Bid{ Id: bidID, - ModelAgentId: bid.ModelAgentId, + ModelAgentId: bid.ModelId, Provider: bid.Provider, Nonce: &lib.BigInt{Int: *bid.Nonce}, CreatedAt: &lib.BigInt{Int: *bid.CreatedAt}, @@ -30,7 +30,7 @@ func mapBid(bidID common.Hash, bid marketplace.Bid) *structs.Bid { } } -func mapSessions(sessions []sessionrouter.Session) []*structs.Session { +func mapSessions(sessions []sessionrouter.ISessionStorageSession) []*structs.Session { result := make([]*structs.Session, len(sessions)) for i, value := range sessions { result[i] = mapSession(value) @@ -38,13 +38,13 @@ func mapSessions(sessions []sessionrouter.Session) []*structs.Session { return result } -func mapSession(s sessionrouter.Session) *structs.Session { +func mapSession(s sessionrouter.ISessionStorageSession) *structs.Session { return &structs.Session{ Id: lib.BytesToString(s.Id[:]), Provider: s.Provider, User: s.User, - ModelAgentId: lib.BytesToString(s.ModelAgentId[:]), - BidID: lib.BytesToString(s.BidID[:]), + ModelAgentId: lib.BytesToString(s.ModelId[:]), + BidID: lib.BytesToString(s.BidId[:]), Stake: s.Stake, PricePerSecond: s.PricePerSecond, CloseoutReceipt: hex.EncodeToString(s.CloseoutReceipt), diff --git a/proxy-router/internal/blockchainapi/rating.go b/proxy-router/internal/blockchainapi/rating.go index 46c63562..6c067a1b 100644 --- a/proxy-router/internal/blockchainapi/rating.go +++ b/proxy-router/internal/blockchainapi/rating.go @@ -4,12 +4,12 @@ import ( "math" "sort" - m "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/marketplace" + s "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/sessionrouter" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/blockchainapi/structs" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" ) -func rateBids(bidIds [][32]byte, bids []m.Bid, pmStats []m.ProviderModelStats, mStats m.ModelStats, log lib.ILogger) []structs.ScoredBid { +func rateBids(bidIds [][32]byte, bids []s.IBidStorageBid, pmStats []s.IStatsStorageProviderModelStats, mStats ModelStats, log lib.ILogger) []structs.ScoredBid { scoredBids := make([]structs.ScoredBid, len(bids)) for i := range bids { @@ -22,7 +22,7 @@ func rateBids(bidIds [][32]byte, bids []m.Bid, pmStats []m.ProviderModelStats, m Bid: structs.Bid{ Id: bidIds[i], Provider: bids[i].Provider, - ModelAgentId: bids[i].ModelAgentId, + ModelAgentId: bids[i].ModelId, PricePerSecond: &lib.BigInt{Int: *(bids[i].PricePerSecond)}, Nonce: &lib.BigInt{Int: *(bids[i].Nonce)}, CreatedAt: &lib.BigInt{Int: *(bids[i].CreatedAt)}, @@ -40,7 +40,7 @@ func rateBids(bidIds [][32]byte, bids []m.Bid, pmStats []m.ProviderModelStats, m return scoredBids } -func getScore(bid m.Bid, pmStats m.ProviderModelStats, mStats m.ModelStats) float64 { +func getScore(bid s.IBidStorageBid, pmStats s.IStatsStorageProviderModelStats, mStats ModelStats) float64 { tpsWeight, ttftWeight, durationWeight, successWeight := 0.27, 0.11, 0.27, 0.35 count := int64(mStats.Count) @@ -66,7 +66,7 @@ func ratioScore(num, denom uint32) float64 { } // normZIndex normalizes the value using z-index -func normZIndex(pmMean int64, mSD m.LibSDSD, obsNum int64) float64 { +func normZIndex(pmMean int64, mSD s.LibSDSD, obsNum int64) float64 { sd := getSD(mSD, obsNum) if sd == 0 { return 0 @@ -81,11 +81,11 @@ func normRange(input float64, normRange float64) float64 { return cutRange01((input + normRange) / (2.0 * normRange)) } -func getSD(sd m.LibSDSD, obsNum int64) float64 { +func getSD(sd s.LibSDSD, obsNum int64) float64 { return math.Sqrt(getVariance(sd, obsNum)) } -func getVariance(sd m.LibSDSD, obsNum int64) float64 { +func getVariance(sd s.LibSDSD, obsNum int64) float64 { if obsNum <= 1 { return 0 } diff --git a/proxy-router/internal/blockchainapi/rating_mock.go b/proxy-router/internal/blockchainapi/rating_mock.go index 31ca684e..5dd72757 100644 --- a/proxy-router/internal/blockchainapi/rating_mock.go +++ b/proxy-router/internal/blockchainapi/rating_mock.go @@ -4,11 +4,18 @@ import ( "math" "math/big" - m "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/marketplace" + s "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/sessionrouter" "github.com/ethereum/go-ethereum/common" ) -func sampleDataTPS() ([][32]byte, []m.Bid, []m.ProviderModelStats, m.ModelStats) { +type ModelStats struct { + TpsScaled1000 s.LibSDSD + TtftMs s.LibSDSD + TotalDuration s.LibSDSD + Count int +} + +func sampleDataTPS() ([][32]byte, []s.IBidStorageBid, []s.IStatsStorageProviderModelStats, ModelStats) { modelID := common.HexToHash("0x01") bidIds := [][32]byte{ {0x01}, @@ -16,11 +23,11 @@ func sampleDataTPS() ([][32]byte, []m.Bid, []m.ProviderModelStats, m.ModelStats) {0x03}, } - bids := []m.Bid{ + bids := []s.IBidStorageBid{ { PricePerSecond: ToDecimal(10, DecimalsMOR), Provider: common.HexToAddress("0x01"), - ModelAgentId: modelID, + ModelId: modelID, Nonce: common.Big0, CreatedAt: common.Big1, DeletedAt: common.Big0, @@ -28,7 +35,7 @@ func sampleDataTPS() ([][32]byte, []m.Bid, []m.ProviderModelStats, m.ModelStats) { PricePerSecond: ToDecimal(10, DecimalsMOR), Provider: common.HexToAddress("0x02"), - ModelAgentId: modelID, + ModelId: modelID, Nonce: common.Big0, CreatedAt: common.Big1, DeletedAt: common.Big0, @@ -36,39 +43,39 @@ func sampleDataTPS() ([][32]byte, []m.Bid, []m.ProviderModelStats, m.ModelStats) { PricePerSecond: ToDecimal(10, DecimalsMOR), Provider: common.HexToAddress("0x03"), - ModelAgentId: modelID, + ModelId: modelID, Nonce: common.Big0, CreatedAt: common.Big1, DeletedAt: common.Big0, }, } - pmStats := []m.ProviderModelStats{ + pmStats := []s.IStatsStorageProviderModelStats{ { - TpsScaled1000: m.LibSDSD{Mean: 10, SqSum: 100}, - TtftMs: m.LibSDSD{Mean: 20, SqSum: 200}, + TpsScaled1000: s.LibSDSD{Mean: 10, SqSum: 100}, + TtftMs: s.LibSDSD{Mean: 20, SqSum: 200}, TotalDuration: 30, SuccessCount: 6, TotalCount: 10, }, { - TpsScaled1000: m.LibSDSD{Mean: 20, SqSum: 100}, - TtftMs: m.LibSDSD{Mean: 20, SqSum: 200}, + TpsScaled1000: s.LibSDSD{Mean: 20, SqSum: 100}, + TtftMs: s.LibSDSD{Mean: 20, SqSum: 200}, TotalDuration: 30, SuccessCount: 6, TotalCount: 10, }, { - TpsScaled1000: m.LibSDSD{Mean: 30, SqSum: 100}, - TtftMs: m.LibSDSD{Mean: 20, SqSum: 200}, + TpsScaled1000: s.LibSDSD{Mean: 30, SqSum: 100}, + TtftMs: s.LibSDSD{Mean: 20, SqSum: 200}, TotalDuration: 30, SuccessCount: 6, TotalCount: 10, }, } - mStats := m.ModelStats{ - TpsScaled1000: m.LibSDSD{Mean: 20, SqSum: 100}, - TtftMs: m.LibSDSD{Mean: 20, SqSum: 200}, - TotalDuration: m.LibSDSD{Mean: 30, SqSum: 300}, + mStats := ModelStats{ + TpsScaled1000: s.LibSDSD{Mean: 20, SqSum: 100}, + TtftMs: s.LibSDSD{Mean: 20, SqSum: 200}, + TotalDuration: s.LibSDSD{Mean: 30, SqSum: 300}, Count: 3, } diff --git a/proxy-router/internal/blockchainapi/rating_test.go b/proxy-router/internal/blockchainapi/rating_test.go index 0e3ef73d..b1e085a4 100644 --- a/proxy-router/internal/blockchainapi/rating_test.go +++ b/proxy-router/internal/blockchainapi/rating_test.go @@ -4,7 +4,7 @@ import ( "math" "testing" - m "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/marketplace" + s "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/sessionrouter" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" "github.com/stretchr/testify/require" ) @@ -21,7 +21,7 @@ func TestRating(t *testing.T) { func TestGetScoreZeroObservations(t *testing.T) { _, bids, _, _ := sampleDataTPS() - score := getScore(bids[0], m.ProviderModelStats{}, m.ModelStats{}) + score := getScore(bids[0], s.IStatsStorageProviderModelStats{}, ModelStats{}) if math.IsNaN(score) { require.Fail(t, "score is NaN") } @@ -29,17 +29,17 @@ func TestGetScoreZeroObservations(t *testing.T) { func TestGetScoreSingleObservation(t *testing.T) { _, bids, _, _ := sampleDataTPS() - pmStats := m.ProviderModelStats{ - TpsScaled1000: m.LibSDSD{Mean: 1000, SqSum: 0}, - TtftMs: m.LibSDSD{Mean: 1000, SqSum: 0}, + pmStats := s.IStatsStorageProviderModelStats{ + TpsScaled1000: s.LibSDSD{Mean: 1000, SqSum: 0}, + TtftMs: s.LibSDSD{Mean: 1000, SqSum: 0}, TotalDuration: 1000, SuccessCount: 1, TotalCount: 1, } - mStats := m.ModelStats{ - TpsScaled1000: m.LibSDSD{Mean: 1000, SqSum: 0}, - TtftMs: m.LibSDSD{Mean: 1000, SqSum: 0}, - TotalDuration: m.LibSDSD{Mean: 1000, SqSum: 0}, + mStats := ModelStats{ + TpsScaled1000: s.LibSDSD{Mean: 1000, SqSum: 0}, + TtftMs: s.LibSDSD{Mean: 1000, SqSum: 0}, + TotalDuration: s.LibSDSD{Mean: 1000, SqSum: 0}, Count: 1, } score := getScore(bids[0], pmStats, mStats) diff --git a/proxy-router/internal/blockchainapi/service.go b/proxy-router/internal/blockchainapi/service.go index 4f8fca66..63434619 100644 --- a/proxy-router/internal/blockchainapi/service.go +++ b/proxy-router/internal/blockchainapi/service.go @@ -166,8 +166,8 @@ func (s *BlockchainService) GetBidsByModelAgent(ctx context.Context, modelId [32 return mapBids(ids, bids), nil } -func (s *BlockchainService) GetActiveBidsByModel(ctx context.Context, modelId common.Hash) ([]*structs.Bid, error) { - ids, bids, err := s.marketplace.GetActiveBidsByModel(ctx, modelId) +func (s *BlockchainService) GetActiveBidsByModel(ctx context.Context, modelId common.Hash, offset *big.Int, limit uint8) ([]*structs.Bid, error) { + ids, bids, err := s.marketplace.GetActiveBidsByModel(ctx, modelId, offset, limit) if err != nil { return nil, err } @@ -175,8 +175,8 @@ func (s *BlockchainService) GetActiveBidsByModel(ctx context.Context, modelId co return mapBids(ids, bids), nil } -func (s *BlockchainService) GetActiveBidsByProvider(ctx context.Context, provider common.Address) ([]*structs.Bid, error) { - ids, bids, err := s.marketplace.GetActiveBidsByProvider(ctx, provider) +func (s *BlockchainService) GetActiveBidsByProvider(ctx context.Context, provider common.Address, offset *big.Int, limit uint8) ([]*structs.Bid, error) { + ids, bids, err := s.marketplace.GetActiveBidsByProvider(ctx, provider, offset, limit) if err != nil { return nil, err } @@ -194,17 +194,17 @@ func (s *BlockchainService) GetBidByID(ctx context.Context, ID common.Hash) (*st } func (s *BlockchainService) GetRatedBids(ctx context.Context, modelID common.Hash) ([]structs.ScoredBid, error) { - modelStats, err := s.marketplace.GetModelStats(ctx, modelID) + modelStats, err := s.sessionRouter.GetModelStats(ctx, modelID) if err != nil { return nil, err } - bidIDs, bids, providerModelStats, err := s.marketplace.GetAllBidsWithRating(ctx, modelID) + bidIDs, bids, providerModelStats, err := s.sessionRouter.GetAllBidsWithRating(ctx, modelID) if err != nil { return nil, err } - ratedBids := rateBids(bidIDs, bids, providerModelStats, modelStats, s.log) + ratedBids := rateBids(bidIDs, bids, providerModelStats, modelStats.(ModelStats), s.log) return ratedBids, nil } @@ -570,7 +570,7 @@ func (s *BlockchainService) GetTokenSupply(ctx context.Context) (*big.Int, error func (s *BlockchainService) GetSessions(ctx *gin.Context, user, provider common.Address, offset *big.Int, limit uint8) ([]*structs.Session, error) { var ( - sessions []sessionrouter.Session + sessions []sessionrouter.ISessionStorageSession err error ) if (user != common.Address{}) { @@ -677,12 +677,12 @@ func (s *BlockchainService) OpenSessionByModelId(ctx context.Context, modelID co return common.Hash{}, lib.WrapError(ErrBudget, err) } - modelStats, err := s.marketplace.GetModelStats(ctx, modelID) + modelStats, err := s.sessionRouter.GetModelStats(ctx, modelID) if err != nil { return common.Hash{}, lib.WrapError(ErrModel, err) } - bidIDs, bids, providerStats, err := s.marketplace.GetAllBidsWithRating(ctx, modelID) + bidIDs, bids, providerStats, err := s.sessionRouter.GetAllBidsWithRating(ctx, modelID) if err != nil { return common.Hash{}, lib.WrapError(ErrBid, err) } @@ -696,7 +696,7 @@ func (s *BlockchainService) OpenSessionByModelId(ctx context.Context, modelID co return common.Hash{}, lib.WrapError(ErrMyAddress, err) } - scoredBids := rateBids(bidIDs, bids, providerStats, modelStats, s.log) + scoredBids := rateBids(bidIDs, bids, providerStats, modelStats.(ModelStats), s.log) for i, bid := range scoredBids { s.log.Infof("trying to open session with provider #%d %s", i, bid.Bid.Provider.String()) durationCopy := new(big.Int).Set(duration) diff --git a/proxy-router/internal/repositories/registries/marketplace.go b/proxy-router/internal/repositories/registries/marketplace.go index 3c2852b1..5a19288b 100644 --- a/proxy-router/internal/repositories/registries/marketplace.go +++ b/proxy-router/internal/repositories/registries/marketplace.go @@ -64,7 +64,7 @@ func (g *Marketplace) PostModelBid(opts *bind.TransactOpts, provider common.Addr } func (g *Marketplace) DeleteBid(opts *bind.TransactOpts, bidId common.Hash) (common.Hash, error) { - tx, err := g.marketplace.DeleteModelAgentBid(opts, bidId) + tx, err := g.marketplace.DeleteModelBid(opts, bidId) if err != nil { return common.Hash{}, lib.TryConvertGethError(err) } @@ -91,93 +91,86 @@ func (g *Marketplace) DeleteBid(opts *bind.TransactOpts, bidId common.Hash) (com return common.Hash{}, fmt.Errorf("BidDeleted event not found in transaction logs") } -func (g *Marketplace) GetBidById(ctx context.Context, bidId [32]byte) (*marketplace.Bid, error) { - bid, err := g.marketplace.BidMap(&bind.CallOpts{Context: ctx}, bidId) +func (g *Marketplace) GetBidById(ctx context.Context, bidId [32]byte) (*marketplace.IBidStorageBid, error) { + bid, err := g.marketplace.Bids(&bind.CallOpts{Context: ctx}, bidId) if err != nil { return nil, err } return &bid, nil } -func (g *Marketplace) GetBestBidByModelId(ctx context.Context, modelId common.Hash) (common.Hash, *marketplace.Bid, error) { - limit := uint8(100) +func (g *Marketplace) GetBestBidByModelId(ctx context.Context, modelId common.Hash) (common.Hash, *marketplace.IBidStorageBid, error) { + limit := big.NewInt(100) offset := big.NewInt(0) - ids, bids, err := g.marketplace.GetBidsByModelAgent(&bind.CallOpts{Context: ctx}, modelId, offset, limit) + bidIDs, err := g.marketplace.ModelActiveBids(&bind.CallOpts{Context: ctx}, modelId, offset, limit) if err != nil { return common.Hash{}, nil, err } - // TODO: replace with a rating system - cheapestBid := bids[0] - idIndex := 0 - for i, bid := range bids { - if bid.PricePerSecond.Cmp(cheapestBid.PricePerSecond) < 0 { - cheapestBid = bid - idIndex = i - } - } + var cheapestBidID common.Hash + var cheapestBid *marketplace.IBidStorageBid - return ids[idIndex], &cheapestBid, nil -} + for _, bidID := range bidIDs { + bid, err := g.marketplace.Bids(&bind.CallOpts{Context: ctx}, bidID) + if err != nil { + return common.Hash{}, nil, err + } + if cheapestBid == nil { + cheapestBid = &bid + cheapestBidID = bidID -func (g *Marketplace) GetAllBidsWithRating(ctx context.Context, modelAgentID [32]byte) ([][32]byte, []marketplace.Bid, []marketplace.ProviderModelStats, error) { - batchSize := uint8(255) - return collectBids(ctx, modelAgentID, g.GetBidsWithRating, batchSize) -} + } else if bid.PricePerSecond.Cmp(cheapestBid.PricePerSecond) < 0 { + cheapestBid = &bid + cheapestBidID = bidID + } + } -func (g *Marketplace) GetBidsWithRating(ctx context.Context, modelAgentID [32]byte, offset *big.Int, limit uint8) ([][32]byte, []marketplace.Bid, []marketplace.ProviderModelStats, error) { - return g.marketplace.GetActiveBidsRatingByModelAgent(&bind.CallOpts{Context: ctx}, modelAgentID, offset, limit) + return cheapestBidID, cheapestBid, nil } -func (g *Marketplace) GetModelStats(ctx context.Context, modelID [32]byte) (marketplace.ModelStats, error) { - return g.marketplace.GetModelStats(&bind.CallOpts{Context: ctx}, modelID) -} +func (g *Marketplace) GetBidsByProvider(ctx context.Context, provider common.Address, offset *big.Int, limit uint8) ([][32]byte, []marketplace.IBidStorageBid, error) { + bidIDs, err := g.marketplace.ProviderBids(&bind.CallOpts{Context: ctx}, provider, offset, big.NewInt(int64(limit))) + if err != nil { + return nil, nil, err + } -func (g *Marketplace) GetBidsByProvider(ctx context.Context, provider common.Address, offset *big.Int, limit uint8) ([][32]byte, []marketplace.Bid, error) { - return g.marketplace.GetBidsByProvider(&bind.CallOpts{Context: ctx}, provider, offset, limit) + return g.getMultipleBids(ctx, bidIDs) } -func (g *Marketplace) GetBidsByModelAgent(ctx context.Context, modelAgentId common.Hash, offset *big.Int, limit uint8) ([][32]byte, []marketplace.Bid, error) { - return g.marketplace.GetBidsByModelAgent(&bind.CallOpts{Context: ctx}, modelAgentId, offset, limit) +func (g *Marketplace) GetBidsByModelAgent(ctx context.Context, modelAgentId common.Hash, offset *big.Int, limit uint8) ([][32]byte, []marketplace.IBidStorageBid, error) { + bidIDs, err := g.marketplace.ModelBids(&bind.CallOpts{Context: ctx}, modelAgentId, offset, big.NewInt(int64(limit))) + if err != nil { + return nil, nil, err + } + return g.getMultipleBids(ctx, bidIDs) } -func (g *Marketplace) GetActiveBidsByProvider(ctx context.Context, provider common.Address) ([][32]byte, []marketplace.Bid, error) { - return g.marketplace.GetActiveBidsByProvider(&bind.CallOpts{Context: ctx}, provider) +func (g *Marketplace) GetActiveBidsByProvider(ctx context.Context, provider common.Address, offset *big.Int, limit uint8) ([][32]byte, []marketplace.IBidStorageBid, error) { + bidIDs, err := g.marketplace.ProviderActiveBids(&bind.CallOpts{Context: ctx}, provider, offset, big.NewInt(int64(limit))) + if err != nil { + return nil, nil, err + } + return g.getMultipleBids(ctx, bidIDs) } -func (g *Marketplace) GetActiveBidsByModel(ctx context.Context, modelAgentId common.Hash) ([][32]byte, []marketplace.Bid, error) { - return g.marketplace.GetActiveBidsByModelAgent(&bind.CallOpts{Context: ctx}, modelAgentId) +func (g *Marketplace) GetActiveBidsByModel(ctx context.Context, modelAgentId common.Hash, offset *big.Int, limit uint8) ([][32]byte, []marketplace.IBidStorageBid, error) { + bidIDs, err := g.marketplace.ModelActiveBids(&bind.CallOpts{Context: ctx}, modelAgentId, offset, big.NewInt(int64(limit))) + if err != nil { + return nil, nil, err + } + return g.getMultipleBids(ctx, bidIDs) } -type BidsGetter = func(ctx context.Context, modelAgentID [32]byte, offset *big.Int, limit uint8) ([][32]byte, []marketplace.Bid, []marketplace.ProviderModelStats, error) - -func collectBids(ctx context.Context, modelAgentID [32]byte, bidsGetter BidsGetter, batchSize uint8) ([][32]byte, []marketplace.Bid, []marketplace.ProviderModelStats, error) { - offset := big.NewInt(0) - bids := make([]marketplace.Bid, 0) - ids := make([][32]byte, 0) - providerModelStats := make([]marketplace.ProviderModelStats, 0) - - for { - if ctx.Err() != nil { - return nil, nil, nil, ctx.Err() - } - - idsBatch, bidsBatch, providerModelStatsBatch, err := bidsGetter(ctx, modelAgentID, offset, batchSize) +func (g *Marketplace) getMultipleBids(ctx context.Context, IDs [][32]byte) ([][32]byte, []marketplace.IBidStorageBid, error) { + // todo: replace with multicall + bids := make([]marketplace.IBidStorageBid, len(IDs)) + for i, id := range IDs { + bid, err := g.marketplace.Bids(&bind.CallOpts{Context: ctx}, id) if err != nil { - return nil, nil, nil, err - } - - ids = append(ids, idsBatch...) - bids = append(bids, bidsBatch...) - providerModelStats = append(providerModelStats, providerModelStatsBatch...) - - if len(bidsBatch) < int(batchSize) { - break + return nil, nil, err } - - offset.Add(offset, big.NewInt(int64(batchSize))) + bids[i] = bid } - - return ids, bids, providerModelStats, nil + return IDs, bids, nil } diff --git a/proxy-router/internal/repositories/registries/marketplace_test.go b/proxy-router/internal/repositories/registries/marketplace_test.go index ed54689c..a4922be3 100644 --- a/proxy-router/internal/repositories/registries/marketplace_test.go +++ b/proxy-router/internal/repositories/registries/marketplace_test.go @@ -5,7 +5,7 @@ import ( "math/big" "testing" - "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/marketplace" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/sessionrouter" "github.com/stretchr/testify/require" ) @@ -18,27 +18,27 @@ func TestCollectBids(t *testing.T) { } // bidsGetter1000 simulates a paginated query to get all bids for a model -func bidsGetter1000(ctx context.Context, modelId [32]byte, offset *big.Int, limit uint8) ([][32]byte, []marketplace.Bid, []marketplace.ProviderModelStats, error) { +func bidsGetter1000(ctx context.Context, modelId [32]byte, offset *big.Int, limit uint8) ([][32]byte, []sessionrouter.IBidStorageBid, []sessionrouter.IStatsStorageProviderModelStats, error) { maxItems := 1000 ids := [][32]byte{} - bids := []marketplace.Bid{} - stats := []marketplace.ProviderModelStats{} + bids := []sessionrouter.IBidStorageBid{} + stats := []sessionrouter.IStatsStorageProviderModelStats{} for i := offset.Int64(); i < offset.Int64()+int64(limit); i++ { if i >= int64(maxItems) { break } ids = append(ids, [32]byte{byte(i)}) - bids = append(bids, marketplace.Bid{ + bids = append(bids, sessionrouter.IBidStorageBid{ PricePerSecond: big.NewInt(i), Provider: [20]byte{byte(i)}, - ModelAgentId: modelId, + ModelId: modelId, Nonce: big.NewInt(i), CreatedAt: big.NewInt(i), DeletedAt: big.NewInt(i), }) - stats = append(stats, marketplace.ProviderModelStats{ - TpsScaled1000: marketplace.LibSDSD{}, - TtftMs: marketplace.LibSDSD{}, + stats = append(stats, sessionrouter.IStatsStorageProviderModelStats{ + TpsScaled1000: sessionrouter.LibSDSD{}, + TtftMs: sessionrouter.LibSDSD{}, TotalDuration: uint32(i), SuccessCount: uint32(i), TotalCount: uint32(i), diff --git a/proxy-router/internal/repositories/registries/model_registry.go b/proxy-router/internal/repositories/registries/model_registry.go index cb9fbc1c..499e9962 100644 --- a/proxy-router/internal/repositories/registries/model_registry.go +++ b/proxy-router/internal/repositories/registries/model_registry.go @@ -37,13 +37,13 @@ func NewModelRegistry(modelRegistryAddr common.Address, client i.ContractBackend } } -func (g *ModelRegistry) GetAllModels(ctx context.Context) ([][32]byte, []modelregistry.Model, error) { - adresses, models, err := g.modelRegistry.ModelGetAll(&bind.CallOpts{Context: ctx}) - if err != nil { - return nil, nil, err - } +func (g *ModelRegistry) GetAllModels(ctx context.Context) ([][32]byte, []modelregistry.IModelStorageModel, error) { + // adresses, models, err := g.modelRegistry.Models(&bind.CallOpts{Context: ctx},) + // if err != nil { + // return nil, nil, err + // } - return adresses, models, nil + return nil, nil, fmt.Errorf("Not implemented") } func (g *ModelRegistry) CreateNewModel(opts *bind.TransactOpts, modelId common.Hash, ipfsID common.Hash, fee *lib.BigInt, stake *lib.BigInt, owner common.Address, name string, tags []string) error { @@ -99,8 +99,8 @@ func (g *ModelRegistry) DeregisterModel(opts *bind.TransactOpts, modelId common. return common.Hash{}, fmt.Errorf("ModelDeregistered event not found in transaction logs") } -func (g *ModelRegistry) GetModelById(ctx context.Context, modelId common.Hash) (*modelregistry.Model, error) { - model, err := g.modelRegistry.ModelMap(&bind.CallOpts{Context: ctx}, modelId) +func (g *ModelRegistry) GetModelById(ctx context.Context, modelId common.Hash) (*modelregistry.IModelStorageModel, error) { + model, err := g.modelRegistry.GetModel(&bind.CallOpts{Context: ctx}, modelId) if err != nil { return nil, err } diff --git a/proxy-router/internal/repositories/registries/provider_registry.go b/proxy-router/internal/repositories/registries/provider_registry.go index d8a1cd09..2fd0dc3f 100644 --- a/proxy-router/internal/repositories/registries/provider_registry.go +++ b/proxy-router/internal/repositories/registries/provider_registry.go @@ -37,18 +37,19 @@ func NewProviderRegistry(providerRegistryAddr common.Address, client i.ContractB } } -func (g *ProviderRegistry) GetAllProviders(ctx context.Context) ([]common.Address, []providerregistry.Provider, error) { - providerAddrs, providers, err := g.providerRegistry.ProviderGetAll(&bind.CallOpts{Context: ctx}) - if err != nil { - return nil, nil, err - } - - addresses := make([]common.Address, len(providerAddrs)) - for i, address := range providerAddrs { - addresses[i] = address - } - - return addresses, providers, nil +func (g *ProviderRegistry) GetAllProviders(ctx context.Context) ([]common.Address, []providerregistry.IProviderStorageProvider, error) { + // providerAddrs, providers, err := g.providerRegistry.ProviderGetAll(&bind.CallOpts{Context: ctx}) + // if err != nil { + // return nil, nil, err + // } + + // addresses := make([]common.Address, len(providerAddrs)) + // for i, address := range providerAddrs { + // addresses[i] = address + // } + + // return addresses, providers, nil + return nil, nil, fmt.Errorf("Not implemented") } func (g *ProviderRegistry) CreateNewProvider(opts *bind.TransactOpts, address common.Address, addStake *lib.BigInt, endpoint string) error { @@ -106,8 +107,8 @@ func (g *ProviderRegistry) DeregisterProvider(opts *bind.TransactOpts, address c return common.Hash{}, fmt.Errorf("ProviderDeregistered event not found in transaction logs") } -func (g *ProviderRegistry) GetProviderById(ctx context.Context, id common.Address) (*providerregistry.Provider, error) { - provider, err := g.providerRegistry.ProviderMap(&bind.CallOpts{Context: ctx}, id) +func (g *ProviderRegistry) GetProviderById(ctx context.Context, id common.Address) (*providerregistry.IProviderStorageProvider, error) { + provider, err := g.providerRegistry.GetProvider(&bind.CallOpts{Context: ctx}, id) if err != nil { return nil, err } diff --git a/proxy-router/internal/repositories/registries/session_router.go b/proxy-router/internal/repositories/registries/session_router.go index c019ee5d..fb65fe42 100644 --- a/proxy-router/internal/repositories/registries/session_router.go +++ b/proxy-router/internal/repositories/registries/session_router.go @@ -69,15 +69,15 @@ func (g *SessionRouter) OpenSession(opts *bind.TransactOpts, approval []byte, ap // Check if the log belongs to the OpenSession event event, err := g.sessionRouter.ParseSessionOpened(*log) if err == nil { - return event.SessionId, event.ProviderId, event.UserAddress, nil + return event.SessionId, event.ProviderId, event.User, nil } } return common.Hash{}, common.Address{}, common.Address{}, fmt.Errorf("OpenSession event not found in transaction logs") } -func (g *SessionRouter) GetSession(ctx context.Context, sessionID common.Hash) (*sessionrouter.Session, error) { - session, err := g.sessionRouter.GetSession(&bind.CallOpts{Context: ctx}, sessionID) +func (g *SessionRouter) GetSession(ctx context.Context, sessionID common.Hash) (*sessionrouter.ISessionStorageSession, error) { + session, err := g.sessionRouter.Sessions(&bind.CallOpts{Context: ctx}, sessionID) if err != nil { return nil, err } @@ -85,20 +85,21 @@ func (g *SessionRouter) GetSession(ctx context.Context, sessionID common.Hash) ( return &session, nil } -func (g *SessionRouter) GetSessionsByProvider(ctx context.Context, providerAddr common.Address, offset *big.Int, limit uint8) ([]sessionrouter.Session, error) { - sessions, err := g.sessionRouter.GetSessionsByProvider(&bind.CallOpts{Context: ctx}, providerAddr, offset, limit) - if err != nil { - return nil, lib.TryConvertGethError(err) - } - return sessions, nil +func (g *SessionRouter) GetSessionsByProvider(ctx context.Context, providerAddr common.Address, offset *big.Int, limit uint8) ([]sessionrouter.ISessionStorageSession, error) { + // sessions, err := g.sessionRouter.GetSessionsByProvider(&bind.CallOpts{Context: ctx}, providerAddr, offset, limit) + // if err != nil { + // return nil, lib.TryConvertGethError(err) + // } + // return sessions, nil + return nil, fmt.Errorf("Not implemented") } -func (g *SessionRouter) GetSessionsByUser(ctx context.Context, userAddr common.Address, offset *big.Int, limit uint8) ([]sessionrouter.Session, error) { - sessions, err := g.sessionRouter.GetSessionsByUser(&bind.CallOpts{Context: ctx}, userAddr, offset, limit) +func (g *SessionRouter) GetSessionsByUser(ctx context.Context, userAddr common.Address, offset *big.Int, limit uint8) ([]sessionrouter.ISessionStorageSession, error) { + IDs, err := g.sessionRouter.GetSessionsByUser(&bind.CallOpts{Context: ctx}, userAddr, offset, big.NewInt(int64(limit))) if err != nil { return nil, lib.TryConvertGethError(err) } - return sessions, nil + return g.getMultipleSessions(ctx, IDs) } func (g *SessionRouter) CloseSession(opts *bind.TransactOpts, sessionID common.Hash, report []byte, signedReport []byte, privateKeyHex lib.HexString) (common.Hash, error) { @@ -148,6 +149,33 @@ func (g *SessionRouter) GetTodaysBudget(ctx context.Context) (*big.Int, error) { return budget, nil } +func (g *SessionRouter) GetBidsWithRating(ctx context.Context, modelAgentID [32]byte, offset *big.Int, limit uint8) ([][32]byte, []sessionrouter.IBidStorageBid, []sessionrouter.IStatsStorageProviderModelStats, error) { + return g.sessionRouter.GetActiveBidsRatingByModel(&bind.CallOpts{Context: ctx}, modelAgentID, offset, limit) +} + +func (g *SessionRouter) GetAllBidsWithRating(ctx context.Context, modelAgentID [32]byte) ([][32]byte, []sessionrouter.IBidStorageBid, []sessionrouter.IStatsStorageProviderModelStats, error) { + batchSize := uint8(255) + return collectBids(ctx, modelAgentID, g.GetBidsWithRating, batchSize) +} + +func (g *SessionRouter) GetModelStats(ctx context.Context, modelID [32]byte) (interface{}, error) { + // return g.sessionRouter.GetModelStats(&bind.CallOpts{Context: ctx}, modelID) + return nil, fmt.Errorf("not implemented") +} + +func (g *SessionRouter) getMultipleSessions(ctx context.Context, IDs [][32]byte) ([]sessionrouter.ISessionStorageSession, error) { + // todo: replace with multicall + sessions := make([]sessionrouter.ISessionStorageSession, len(IDs)) + for i, id := range IDs { + session, err := g.sessionRouter.Sessions(&bind.CallOpts{Context: ctx}, id) + if err != nil { + return nil, err + } + sessions[i] = session + } + return sessions, nil +} + func (g *SessionRouter) GetContractAddress() common.Address { return g.sessionRouterAddr } @@ -155,3 +183,35 @@ func (g *SessionRouter) GetContractAddress() common.Address { func (g *SessionRouter) GetABI() *abi.ABI { return g.srABI } + +type BidsGetter = func(ctx context.Context, modelAgentID [32]byte, offset *big.Int, limit uint8) ([][32]byte, []sessionrouter.IBidStorageBid, []sessionrouter.IStatsStorageProviderModelStats, error) + +func collectBids(ctx context.Context, modelAgentID [32]byte, bidsGetter BidsGetter, batchSize uint8) ([][32]byte, []sessionrouter.IBidStorageBid, []sessionrouter.IStatsStorageProviderModelStats, error) { + offset := big.NewInt(0) + bids := make([]sessionrouter.IBidStorageBid, 0) + ids := make([][32]byte, 0) + providerModelStats := make([]sessionrouter.IStatsStorageProviderModelStats, 0) + + for { + if ctx.Err() != nil { + return nil, nil, nil, ctx.Err() + } + + idsBatch, bidsBatch, providerModelStatsBatch, err := bidsGetter(ctx, modelAgentID, offset, batchSize) + if err != nil { + return nil, nil, nil, err + } + + ids = append(ids, idsBatch...) + bids = append(bids, bidsBatch...) + providerModelStats = append(providerModelStats, providerModelStatsBatch...) + + if len(bidsBatch) < int(batchSize) { + break + } + + offset.Add(offset, big.NewInt(int64(batchSize))) + } + + return ids, bids, providerModelStats, nil +} From 23e3c1ef12778d1bec07d24f751cdbcf5595c112 Mon Sep 17 00:00:00 2001 From: shev Date: Wed, 23 Oct 2024 22:50:19 +0200 Subject: [PATCH 063/260] feat: adjust proxy to refactored smart contracts --- proxy-router/cmd/main.go | 3 +- .../contracts/marketplace/Marketplace.go | 1514 ----------- .../contracts/sessionrouter/SessionRouter.go | 1885 -------------- .../internal/blockchainapi/controller.go | 21 +- .../internal/blockchainapi/event_listener.go | 24 +- .../internal/blockchainapi/mappers.go | 44 +- proxy-router/internal/blockchainapi/rating.go | 7 +- .../internal/blockchainapi/rating_mock.go | 7 +- .../internal/blockchainapi/rating_test.go | 2 +- .../internal/blockchainapi/service.go | 85 +- proxy-router/internal/lib/ethclient.go | 12 +- .../bindings}/lumerintoken/LumerinToken.go | 33 +- .../bindings/marketplace/Marketplace.go | 1700 ++++++++++++ .../bindings}/modelregistry/ModelRegistry.go | 502 ++-- .../bindings}/morpheustoken/MorpheusToken.go | 33 +- .../providerregistry/ProviderRegistry.go | 609 +++-- .../bindings/sessionrouter/SessionRouter.go | 2291 +++++++++++++++++ .../repositories/contracts/subscription.go | 2 +- .../repositories/registries/marketplace.go | 76 +- .../registries/marketplace_test.go | 13 +- .../repositories/registries/model_registry.go | 6 +- .../repositories/registries/mor_token.go | 2 +- .../registries/provider_registry.go | 37 +- .../repositories/registries/session_router.go | 130 +- 24 files changed, 4903 insertions(+), 4135 deletions(-) delete mode 100644 proxy-router/contracts/marketplace/Marketplace.go delete mode 100644 proxy-router/contracts/sessionrouter/SessionRouter.go rename proxy-router/{contracts => internal/repositories/contracts/bindings}/lumerintoken/LumerinToken.go (88%) create mode 100644 proxy-router/internal/repositories/contracts/bindings/marketplace/Marketplace.go rename proxy-router/{contracts => internal/repositories/contracts/bindings}/modelregistry/ModelRegistry.go (57%) rename proxy-router/{contracts => internal/repositories/contracts/bindings}/morpheustoken/MorpheusToken.go (88%) rename proxy-router/{contracts => internal/repositories/contracts/bindings}/providerregistry/ProviderRegistry.go (57%) create mode 100644 proxy-router/internal/repositories/contracts/bindings/sessionrouter/SessionRouter.go diff --git a/proxy-router/cmd/main.go b/proxy-router/cmd/main.go index 0e729cc8..9cc13b54 100644 --- a/proxy-router/cmd/main.go +++ b/proxy-router/cmd/main.go @@ -261,9 +261,10 @@ func start() error { blockchainApi := blockchainapi.NewBlockchainService(ethClient, *cfg.Marketplace.DiamondContractAddress, *cfg.Marketplace.MorTokenAddress, cfg.Blockchain.ExplorerApiUrl, wallet, sessionStorage, proxyRouterApi, proxyLog, cfg.Blockchain.EthLegacyTx) aiEngine := aiengine.NewAiEngine(cfg.AIEngine.OpenAIBaseURL, cfg.AIEngine.OpenAIKey, modelConfigLoader, log) + marketplace := registries.NewMarketplace(*cfg.Marketplace.DiamondContractAddress, ethClient, log) sessionRouter := registries.NewSessionRouter(*cfg.Marketplace.DiamondContractAddress, ethClient, log) - eventListener := blockchainapi.NewEventsListener(ethClient, sessionStorage, sessionRouter, wallet, modelConfigLoader, logWatcher, log) + eventListener := blockchainapi.NewEventsListener(ethClient, sessionStorage, sessionRouter, marketplace, wallet, modelConfigLoader, logWatcher, log) blockchainController := blockchainapi.NewBlockchainController(blockchainApi, log) diff --git a/proxy-router/contracts/marketplace/Marketplace.go b/proxy-router/contracts/marketplace/Marketplace.go deleted file mode 100644 index 3092fd9b..00000000 --- a/proxy-router/contracts/marketplace/Marketplace.go +++ /dev/null @@ -1,1514 +0,0 @@ -// Code generated - DO NOT EDIT. -// This file is a generated binding and any manual changes will be lost. - -package marketplace - -import ( - "errors" - "math/big" - "strings" - - ethereum "github.com/ethereum/go-ethereum" - "github.com/ethereum/go-ethereum/accounts/abi" - "github.com/ethereum/go-ethereum/accounts/abi/bind" - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/event" -) - -// Reference imports to suppress errors if they are not otherwise used. -var ( - _ = errors.New - _ = big.NewInt - _ = strings.NewReader - _ = ethereum.NotFound - _ = bind.Bind - _ = common.Big1 - _ = types.BloomLookup - _ = event.NewSubscription - _ = abi.ConvertType -) - -// IBidStorageBid is an auto generated low-level Go binding around an user-defined struct. -type IBidStorageBid struct { - Provider common.Address - ModelId [32]byte - PricePerSecond *big.Int - Nonce *big.Int - CreatedAt *big.Int - DeletedAt *big.Int -} - -// IModelStorageModel is an auto generated low-level Go binding around an user-defined struct. -type IModelStorageModel struct { - IpfsCID [32]byte - Fee *big.Int - Stake *big.Int - Owner common.Address - Name string - Tags []string - CreatedAt *big.Int - IsDeleted bool -} - -// IProviderStorageProvider is an auto generated low-level Go binding around an user-defined struct. -type IProviderStorageProvider struct { - Endpoint string - Stake *big.Int - CreatedAt *big.Int - LimitPeriodEnd *big.Int - LimitPeriodEarned *big.Int - IsDeleted bool -} - -// MarketplaceMetaData contains all meta data concerning the Marketplace contract. -var MarketplaceMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[],\"name\":\"ActiveBidNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BidTaken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ModelNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwnerOrProvider\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account_\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProviderNotFound\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"BidDeleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"BidPosted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bidFee\",\"type\":\"uint256\"}],\"name\":\"FeeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"storageSlot\",\"type\":\"bytes32\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BID_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DIAMOND_OWNABLE_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MARKETPLACE_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MODEL_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROVIDER_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token_\",\"type\":\"address\"}],\"name\":\"__Marketplace_init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bidId\",\"type\":\"bytes32\"}],\"name\":\"bids\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"pricePerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"deletedAt\",\"type\":\"uint128\"}],\"internalType\":\"structIBidStorage.Bid\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bidId_\",\"type\":\"bytes32\"}],\"name\":\"deleteModelBid\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBidFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"nonce_\",\"type\":\"uint256\"}],\"name\":\"getBidId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"}],\"name\":\"getModel\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"ipfsCID\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"isDeleted\",\"type\":\"bool\"}],\"internalType\":\"structIModelStorage.Model\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"}],\"name\":\"getProvider\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"endpoint\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"limitPeriodEnd\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"limitPeriodEarned\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isDeleted\",\"type\":\"bool\"}],\"internalType\":\"structIProviderStorage.Provider\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"}],\"name\":\"getProviderModelId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getToken\",\"outputs\":[{\"internalType\":\"contractIERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"modelActiveBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"modelBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"modelMinimumStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"models\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"pricePerSecond_\",\"type\":\"uint256\"}],\"name\":\"postModelBid\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"bidId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"providerActiveBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"providerBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"providerMinimumStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bidFee_\",\"type\":\"uint256\"}],\"name\":\"setBidFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", -} - -// MarketplaceABI is the input ABI used to generate the binding from. -// Deprecated: Use MarketplaceMetaData.ABI instead. -var MarketplaceABI = MarketplaceMetaData.ABI - -// Marketplace is an auto generated Go binding around an Ethereum contract. -type Marketplace struct { - MarketplaceCaller // Read-only binding to the contract - MarketplaceTransactor // Write-only binding to the contract - MarketplaceFilterer // Log filterer for contract events -} - -// MarketplaceCaller is an auto generated read-only Go binding around an Ethereum contract. -type MarketplaceCaller struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// MarketplaceTransactor is an auto generated write-only Go binding around an Ethereum contract. -type MarketplaceTransactor struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// MarketplaceFilterer is an auto generated log filtering Go binding around an Ethereum contract events. -type MarketplaceFilterer struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// MarketplaceSession is an auto generated Go binding around an Ethereum contract, -// with pre-set call and transact options. -type MarketplaceSession struct { - Contract *Marketplace // Generic contract binding to set the session for - CallOpts bind.CallOpts // Call options to use throughout this session - TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session -} - -// MarketplaceCallerSession is an auto generated read-only Go binding around an Ethereum contract, -// with pre-set call options. -type MarketplaceCallerSession struct { - Contract *MarketplaceCaller // Generic contract caller binding to set the session for - CallOpts bind.CallOpts // Call options to use throughout this session -} - -// MarketplaceTransactorSession is an auto generated write-only Go binding around an Ethereum contract, -// with pre-set transact options. -type MarketplaceTransactorSession struct { - Contract *MarketplaceTransactor // Generic contract transactor binding to set the session for - TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session -} - -// MarketplaceRaw is an auto generated low-level Go binding around an Ethereum contract. -type MarketplaceRaw struct { - Contract *Marketplace // Generic contract binding to access the raw methods on -} - -// MarketplaceCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. -type MarketplaceCallerRaw struct { - Contract *MarketplaceCaller // Generic read-only contract binding to access the raw methods on -} - -// MarketplaceTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. -type MarketplaceTransactorRaw struct { - Contract *MarketplaceTransactor // Generic write-only contract binding to access the raw methods on -} - -// NewMarketplace creates a new instance of Marketplace, bound to a specific deployed contract. -func NewMarketplace(address common.Address, backend bind.ContractBackend) (*Marketplace, error) { - contract, err := bindMarketplace(address, backend, backend, backend) - if err != nil { - return nil, err - } - return &Marketplace{MarketplaceCaller: MarketplaceCaller{contract: contract}, MarketplaceTransactor: MarketplaceTransactor{contract: contract}, MarketplaceFilterer: MarketplaceFilterer{contract: contract}}, nil -} - -// NewMarketplaceCaller creates a new read-only instance of Marketplace, bound to a specific deployed contract. -func NewMarketplaceCaller(address common.Address, caller bind.ContractCaller) (*MarketplaceCaller, error) { - contract, err := bindMarketplace(address, caller, nil, nil) - if err != nil { - return nil, err - } - return &MarketplaceCaller{contract: contract}, nil -} - -// NewMarketplaceTransactor creates a new write-only instance of Marketplace, bound to a specific deployed contract. -func NewMarketplaceTransactor(address common.Address, transactor bind.ContractTransactor) (*MarketplaceTransactor, error) { - contract, err := bindMarketplace(address, nil, transactor, nil) - if err != nil { - return nil, err - } - return &MarketplaceTransactor{contract: contract}, nil -} - -// NewMarketplaceFilterer creates a new log filterer instance of Marketplace, bound to a specific deployed contract. -func NewMarketplaceFilterer(address common.Address, filterer bind.ContractFilterer) (*MarketplaceFilterer, error) { - contract, err := bindMarketplace(address, nil, nil, filterer) - if err != nil { - return nil, err - } - return &MarketplaceFilterer{contract: contract}, nil -} - -// bindMarketplace binds a generic wrapper to an already deployed contract. -func bindMarketplace(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { - parsed, err := MarketplaceMetaData.GetAbi() - if err != nil { - return nil, err - } - return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil -} - -// Call invokes the (constant) contract method with params as input values and -// sets the output to result. The result type might be a single field for simple -// returns, a slice of interfaces for anonymous returns and a struct for named -// returns. -func (_Marketplace *MarketplaceRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _Marketplace.Contract.MarketplaceCaller.contract.Call(opts, result, method, params...) -} - -// Transfer initiates a plain transaction to move funds to the contract, calling -// its default method if one is available. -func (_Marketplace *MarketplaceRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _Marketplace.Contract.MarketplaceTransactor.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_Marketplace *MarketplaceRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _Marketplace.Contract.MarketplaceTransactor.contract.Transact(opts, method, params...) -} - -// Call invokes the (constant) contract method with params as input values and -// sets the output to result. The result type might be a single field for simple -// returns, a slice of interfaces for anonymous returns and a struct for named -// returns. -func (_Marketplace *MarketplaceCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _Marketplace.Contract.contract.Call(opts, result, method, params...) -} - -// Transfer initiates a plain transaction to move funds to the contract, calling -// its default method if one is available. -func (_Marketplace *MarketplaceTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _Marketplace.Contract.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_Marketplace *MarketplaceTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _Marketplace.Contract.contract.Transact(opts, method, params...) -} - -// BIDSTORAGESLOT is a free data retrieval call binding the contract method 0x4fa816f2. -// -// Solidity: function BID_STORAGE_SLOT() view returns(bytes32) -func (_Marketplace *MarketplaceCaller) BIDSTORAGESLOT(opts *bind.CallOpts) ([32]byte, error) { - var out []interface{} - err := _Marketplace.contract.Call(opts, &out, "BID_STORAGE_SLOT") - - if err != nil { - return *new([32]byte), err - } - - out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) - - return out0, err - -} - -// BIDSTORAGESLOT is a free data retrieval call binding the contract method 0x4fa816f2. -// -// Solidity: function BID_STORAGE_SLOT() view returns(bytes32) -func (_Marketplace *MarketplaceSession) BIDSTORAGESLOT() ([32]byte, error) { - return _Marketplace.Contract.BIDSTORAGESLOT(&_Marketplace.CallOpts) -} - -// BIDSTORAGESLOT is a free data retrieval call binding the contract method 0x4fa816f2. -// -// Solidity: function BID_STORAGE_SLOT() view returns(bytes32) -func (_Marketplace *MarketplaceCallerSession) BIDSTORAGESLOT() ([32]byte, error) { - return _Marketplace.Contract.BIDSTORAGESLOT(&_Marketplace.CallOpts) -} - -// DIAMONDOWNABLESTORAGESLOT is a free data retrieval call binding the contract method 0x4ac3371e. -// -// Solidity: function DIAMOND_OWNABLE_STORAGE_SLOT() view returns(bytes32) -func (_Marketplace *MarketplaceCaller) DIAMONDOWNABLESTORAGESLOT(opts *bind.CallOpts) ([32]byte, error) { - var out []interface{} - err := _Marketplace.contract.Call(opts, &out, "DIAMOND_OWNABLE_STORAGE_SLOT") - - if err != nil { - return *new([32]byte), err - } - - out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) - - return out0, err - -} - -// DIAMONDOWNABLESTORAGESLOT is a free data retrieval call binding the contract method 0x4ac3371e. -// -// Solidity: function DIAMOND_OWNABLE_STORAGE_SLOT() view returns(bytes32) -func (_Marketplace *MarketplaceSession) DIAMONDOWNABLESTORAGESLOT() ([32]byte, error) { - return _Marketplace.Contract.DIAMONDOWNABLESTORAGESLOT(&_Marketplace.CallOpts) -} - -// DIAMONDOWNABLESTORAGESLOT is a free data retrieval call binding the contract method 0x4ac3371e. -// -// Solidity: function DIAMOND_OWNABLE_STORAGE_SLOT() view returns(bytes32) -func (_Marketplace *MarketplaceCallerSession) DIAMONDOWNABLESTORAGESLOT() ([32]byte, error) { - return _Marketplace.Contract.DIAMONDOWNABLESTORAGESLOT(&_Marketplace.CallOpts) -} - -// MARKETPLACESTORAGESLOT is a free data retrieval call binding the contract method 0xb855c3b5. -// -// Solidity: function MARKETPLACE_STORAGE_SLOT() view returns(bytes32) -func (_Marketplace *MarketplaceCaller) MARKETPLACESTORAGESLOT(opts *bind.CallOpts) ([32]byte, error) { - var out []interface{} - err := _Marketplace.contract.Call(opts, &out, "MARKETPLACE_STORAGE_SLOT") - - if err != nil { - return *new([32]byte), err - } - - out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) - - return out0, err - -} - -// MARKETPLACESTORAGESLOT is a free data retrieval call binding the contract method 0xb855c3b5. -// -// Solidity: function MARKETPLACE_STORAGE_SLOT() view returns(bytes32) -func (_Marketplace *MarketplaceSession) MARKETPLACESTORAGESLOT() ([32]byte, error) { - return _Marketplace.Contract.MARKETPLACESTORAGESLOT(&_Marketplace.CallOpts) -} - -// MARKETPLACESTORAGESLOT is a free data retrieval call binding the contract method 0xb855c3b5. -// -// Solidity: function MARKETPLACE_STORAGE_SLOT() view returns(bytes32) -func (_Marketplace *MarketplaceCallerSession) MARKETPLACESTORAGESLOT() ([32]byte, error) { - return _Marketplace.Contract.MARKETPLACESTORAGESLOT(&_Marketplace.CallOpts) -} - -// MODELSTORAGESLOT is a free data retrieval call binding the contract method 0xeda926f2. -// -// Solidity: function MODEL_STORAGE_SLOT() view returns(bytes32) -func (_Marketplace *MarketplaceCaller) MODELSTORAGESLOT(opts *bind.CallOpts) ([32]byte, error) { - var out []interface{} - err := _Marketplace.contract.Call(opts, &out, "MODEL_STORAGE_SLOT") - - if err != nil { - return *new([32]byte), err - } - - out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) - - return out0, err - -} - -// MODELSTORAGESLOT is a free data retrieval call binding the contract method 0xeda926f2. -// -// Solidity: function MODEL_STORAGE_SLOT() view returns(bytes32) -func (_Marketplace *MarketplaceSession) MODELSTORAGESLOT() ([32]byte, error) { - return _Marketplace.Contract.MODELSTORAGESLOT(&_Marketplace.CallOpts) -} - -// MODELSTORAGESLOT is a free data retrieval call binding the contract method 0xeda926f2. -// -// Solidity: function MODEL_STORAGE_SLOT() view returns(bytes32) -func (_Marketplace *MarketplaceCallerSession) MODELSTORAGESLOT() ([32]byte, error) { - return _Marketplace.Contract.MODELSTORAGESLOT(&_Marketplace.CallOpts) -} - -// PROVIDERSTORAGESLOT is a free data retrieval call binding the contract method 0x490713b1. -// -// Solidity: function PROVIDER_STORAGE_SLOT() view returns(bytes32) -func (_Marketplace *MarketplaceCaller) PROVIDERSTORAGESLOT(opts *bind.CallOpts) ([32]byte, error) { - var out []interface{} - err := _Marketplace.contract.Call(opts, &out, "PROVIDER_STORAGE_SLOT") - - if err != nil { - return *new([32]byte), err - } - - out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) - - return out0, err - -} - -// PROVIDERSTORAGESLOT is a free data retrieval call binding the contract method 0x490713b1. -// -// Solidity: function PROVIDER_STORAGE_SLOT() view returns(bytes32) -func (_Marketplace *MarketplaceSession) PROVIDERSTORAGESLOT() ([32]byte, error) { - return _Marketplace.Contract.PROVIDERSTORAGESLOT(&_Marketplace.CallOpts) -} - -// PROVIDERSTORAGESLOT is a free data retrieval call binding the contract method 0x490713b1. -// -// Solidity: function PROVIDER_STORAGE_SLOT() view returns(bytes32) -func (_Marketplace *MarketplaceCallerSession) PROVIDERSTORAGESLOT() ([32]byte, error) { - return _Marketplace.Contract.PROVIDERSTORAGESLOT(&_Marketplace.CallOpts) -} - -// Bids is a free data retrieval call binding the contract method 0x8f98eeda. -// -// Solidity: function bids(bytes32 bidId) view returns((address,bytes32,uint256,uint256,uint128,uint128)) -func (_Marketplace *MarketplaceCaller) Bids(opts *bind.CallOpts, bidId [32]byte) (IBidStorageBid, error) { - var out []interface{} - err := _Marketplace.contract.Call(opts, &out, "bids", bidId) - - if err != nil { - return *new(IBidStorageBid), err - } - - out0 := *abi.ConvertType(out[0], new(IBidStorageBid)).(*IBidStorageBid) - - return out0, err - -} - -// Bids is a free data retrieval call binding the contract method 0x8f98eeda. -// -// Solidity: function bids(bytes32 bidId) view returns((address,bytes32,uint256,uint256,uint128,uint128)) -func (_Marketplace *MarketplaceSession) Bids(bidId [32]byte) (IBidStorageBid, error) { - return _Marketplace.Contract.Bids(&_Marketplace.CallOpts, bidId) -} - -// Bids is a free data retrieval call binding the contract method 0x8f98eeda. -// -// Solidity: function bids(bytes32 bidId) view returns((address,bytes32,uint256,uint256,uint128,uint128)) -func (_Marketplace *MarketplaceCallerSession) Bids(bidId [32]byte) (IBidStorageBid, error) { - return _Marketplace.Contract.Bids(&_Marketplace.CallOpts, bidId) -} - -// GetBidFee is a free data retrieval call binding the contract method 0x8dbb4647. -// -// Solidity: function getBidFee() view returns(uint256) -func (_Marketplace *MarketplaceCaller) GetBidFee(opts *bind.CallOpts) (*big.Int, error) { - var out []interface{} - err := _Marketplace.contract.Call(opts, &out, "getBidFee") - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// GetBidFee is a free data retrieval call binding the contract method 0x8dbb4647. -// -// Solidity: function getBidFee() view returns(uint256) -func (_Marketplace *MarketplaceSession) GetBidFee() (*big.Int, error) { - return _Marketplace.Contract.GetBidFee(&_Marketplace.CallOpts) -} - -// GetBidFee is a free data retrieval call binding the contract method 0x8dbb4647. -// -// Solidity: function getBidFee() view returns(uint256) -func (_Marketplace *MarketplaceCallerSession) GetBidFee() (*big.Int, error) { - return _Marketplace.Contract.GetBidFee(&_Marketplace.CallOpts) -} - -// GetBidId is a free data retrieval call binding the contract method 0x747ddd5b. -// -// Solidity: function getBidId(address provider_, bytes32 modelId_, uint256 nonce_) pure returns(bytes32) -func (_Marketplace *MarketplaceCaller) GetBidId(opts *bind.CallOpts, provider_ common.Address, modelId_ [32]byte, nonce_ *big.Int) ([32]byte, error) { - var out []interface{} - err := _Marketplace.contract.Call(opts, &out, "getBidId", provider_, modelId_, nonce_) - - if err != nil { - return *new([32]byte), err - } - - out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) - - return out0, err - -} - -// GetBidId is a free data retrieval call binding the contract method 0x747ddd5b. -// -// Solidity: function getBidId(address provider_, bytes32 modelId_, uint256 nonce_) pure returns(bytes32) -func (_Marketplace *MarketplaceSession) GetBidId(provider_ common.Address, modelId_ [32]byte, nonce_ *big.Int) ([32]byte, error) { - return _Marketplace.Contract.GetBidId(&_Marketplace.CallOpts, provider_, modelId_, nonce_) -} - -// GetBidId is a free data retrieval call binding the contract method 0x747ddd5b. -// -// Solidity: function getBidId(address provider_, bytes32 modelId_, uint256 nonce_) pure returns(bytes32) -func (_Marketplace *MarketplaceCallerSession) GetBidId(provider_ common.Address, modelId_ [32]byte, nonce_ *big.Int) ([32]byte, error) { - return _Marketplace.Contract.GetBidId(&_Marketplace.CallOpts, provider_, modelId_, nonce_) -} - -// GetModel is a free data retrieval call binding the contract method 0x21e7c498. -// -// Solidity: function getModel(bytes32 modelId) view returns((bytes32,uint256,uint256,address,string,string[],uint128,bool)) -func (_Marketplace *MarketplaceCaller) GetModel(opts *bind.CallOpts, modelId [32]byte) (IModelStorageModel, error) { - var out []interface{} - err := _Marketplace.contract.Call(opts, &out, "getModel", modelId) - - if err != nil { - return *new(IModelStorageModel), err - } - - out0 := *abi.ConvertType(out[0], new(IModelStorageModel)).(*IModelStorageModel) - - return out0, err - -} - -// GetModel is a free data retrieval call binding the contract method 0x21e7c498. -// -// Solidity: function getModel(bytes32 modelId) view returns((bytes32,uint256,uint256,address,string,string[],uint128,bool)) -func (_Marketplace *MarketplaceSession) GetModel(modelId [32]byte) (IModelStorageModel, error) { - return _Marketplace.Contract.GetModel(&_Marketplace.CallOpts, modelId) -} - -// GetModel is a free data retrieval call binding the contract method 0x21e7c498. -// -// Solidity: function getModel(bytes32 modelId) view returns((bytes32,uint256,uint256,address,string,string[],uint128,bool)) -func (_Marketplace *MarketplaceCallerSession) GetModel(modelId [32]byte) (IModelStorageModel, error) { - return _Marketplace.Contract.GetModel(&_Marketplace.CallOpts, modelId) -} - -// GetProvider is a free data retrieval call binding the contract method 0x55f21eb7. -// -// Solidity: function getProvider(address provider) view returns((string,uint256,uint128,uint128,uint256,bool)) -func (_Marketplace *MarketplaceCaller) GetProvider(opts *bind.CallOpts, provider common.Address) (IProviderStorageProvider, error) { - var out []interface{} - err := _Marketplace.contract.Call(opts, &out, "getProvider", provider) - - if err != nil { - return *new(IProviderStorageProvider), err - } - - out0 := *abi.ConvertType(out[0], new(IProviderStorageProvider)).(*IProviderStorageProvider) - - return out0, err - -} - -// GetProvider is a free data retrieval call binding the contract method 0x55f21eb7. -// -// Solidity: function getProvider(address provider) view returns((string,uint256,uint128,uint128,uint256,bool)) -func (_Marketplace *MarketplaceSession) GetProvider(provider common.Address) (IProviderStorageProvider, error) { - return _Marketplace.Contract.GetProvider(&_Marketplace.CallOpts, provider) -} - -// GetProvider is a free data retrieval call binding the contract method 0x55f21eb7. -// -// Solidity: function getProvider(address provider) view returns((string,uint256,uint128,uint128,uint256,bool)) -func (_Marketplace *MarketplaceCallerSession) GetProvider(provider common.Address) (IProviderStorageProvider, error) { - return _Marketplace.Contract.GetProvider(&_Marketplace.CallOpts, provider) -} - -// GetProviderModelId is a free data retrieval call binding the contract method 0x1cc9de8c. -// -// Solidity: function getProviderModelId(address provider_, bytes32 modelId_) pure returns(bytes32) -func (_Marketplace *MarketplaceCaller) GetProviderModelId(opts *bind.CallOpts, provider_ common.Address, modelId_ [32]byte) ([32]byte, error) { - var out []interface{} - err := _Marketplace.contract.Call(opts, &out, "getProviderModelId", provider_, modelId_) - - if err != nil { - return *new([32]byte), err - } - - out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) - - return out0, err - -} - -// GetProviderModelId is a free data retrieval call binding the contract method 0x1cc9de8c. -// -// Solidity: function getProviderModelId(address provider_, bytes32 modelId_) pure returns(bytes32) -func (_Marketplace *MarketplaceSession) GetProviderModelId(provider_ common.Address, modelId_ [32]byte) ([32]byte, error) { - return _Marketplace.Contract.GetProviderModelId(&_Marketplace.CallOpts, provider_, modelId_) -} - -// GetProviderModelId is a free data retrieval call binding the contract method 0x1cc9de8c. -// -// Solidity: function getProviderModelId(address provider_, bytes32 modelId_) pure returns(bytes32) -func (_Marketplace *MarketplaceCallerSession) GetProviderModelId(provider_ common.Address, modelId_ [32]byte) ([32]byte, error) { - return _Marketplace.Contract.GetProviderModelId(&_Marketplace.CallOpts, provider_, modelId_) -} - -// GetToken is a free data retrieval call binding the contract method 0x21df0da7. -// -// Solidity: function getToken() view returns(address) -func (_Marketplace *MarketplaceCaller) GetToken(opts *bind.CallOpts) (common.Address, error) { - var out []interface{} - err := _Marketplace.contract.Call(opts, &out, "getToken") - - if err != nil { - return *new(common.Address), err - } - - out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) - - return out0, err - -} - -// GetToken is a free data retrieval call binding the contract method 0x21df0da7. -// -// Solidity: function getToken() view returns(address) -func (_Marketplace *MarketplaceSession) GetToken() (common.Address, error) { - return _Marketplace.Contract.GetToken(&_Marketplace.CallOpts) -} - -// GetToken is a free data retrieval call binding the contract method 0x21df0da7. -// -// Solidity: function getToken() view returns(address) -func (_Marketplace *MarketplaceCallerSession) GetToken() (common.Address, error) { - return _Marketplace.Contract.GetToken(&_Marketplace.CallOpts) -} - -// ModelActiveBids is a free data retrieval call binding the contract method 0x3fd8e5e3. -// -// Solidity: function modelActiveBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_Marketplace *MarketplaceCaller) ModelActiveBids(opts *bind.CallOpts, modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - var out []interface{} - err := _Marketplace.contract.Call(opts, &out, "modelActiveBids", modelId_, offset_, limit_) - - if err != nil { - return *new([][32]byte), err - } - - out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) - - return out0, err - -} - -// ModelActiveBids is a free data retrieval call binding the contract method 0x3fd8e5e3. -// -// Solidity: function modelActiveBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_Marketplace *MarketplaceSession) ModelActiveBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - return _Marketplace.Contract.ModelActiveBids(&_Marketplace.CallOpts, modelId_, offset_, limit_) -} - -// ModelActiveBids is a free data retrieval call binding the contract method 0x3fd8e5e3. -// -// Solidity: function modelActiveBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_Marketplace *MarketplaceCallerSession) ModelActiveBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - return _Marketplace.Contract.ModelActiveBids(&_Marketplace.CallOpts, modelId_, offset_, limit_) -} - -// ModelBids is a free data retrieval call binding the contract method 0x5954d1b3. -// -// Solidity: function modelBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_Marketplace *MarketplaceCaller) ModelBids(opts *bind.CallOpts, modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - var out []interface{} - err := _Marketplace.contract.Call(opts, &out, "modelBids", modelId_, offset_, limit_) - - if err != nil { - return *new([][32]byte), err - } - - out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) - - return out0, err - -} - -// ModelBids is a free data retrieval call binding the contract method 0x5954d1b3. -// -// Solidity: function modelBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_Marketplace *MarketplaceSession) ModelBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - return _Marketplace.Contract.ModelBids(&_Marketplace.CallOpts, modelId_, offset_, limit_) -} - -// ModelBids is a free data retrieval call binding the contract method 0x5954d1b3. -// -// Solidity: function modelBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_Marketplace *MarketplaceCallerSession) ModelBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - return _Marketplace.Contract.ModelBids(&_Marketplace.CallOpts, modelId_, offset_, limit_) -} - -// ModelMinimumStake is a free data retrieval call binding the contract method 0xc4288ed4. -// -// Solidity: function modelMinimumStake() view returns(uint256) -func (_Marketplace *MarketplaceCaller) ModelMinimumStake(opts *bind.CallOpts) (*big.Int, error) { - var out []interface{} - err := _Marketplace.contract.Call(opts, &out, "modelMinimumStake") - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// ModelMinimumStake is a free data retrieval call binding the contract method 0xc4288ed4. -// -// Solidity: function modelMinimumStake() view returns(uint256) -func (_Marketplace *MarketplaceSession) ModelMinimumStake() (*big.Int, error) { - return _Marketplace.Contract.ModelMinimumStake(&_Marketplace.CallOpts) -} - -// ModelMinimumStake is a free data retrieval call binding the contract method 0xc4288ed4. -// -// Solidity: function modelMinimumStake() view returns(uint256) -func (_Marketplace *MarketplaceCallerSession) ModelMinimumStake() (*big.Int, error) { - return _Marketplace.Contract.ModelMinimumStake(&_Marketplace.CallOpts) -} - -// Models is a free data retrieval call binding the contract method 0x6a030ca9. -// -// Solidity: function models(uint256 index) view returns(bytes32) -func (_Marketplace *MarketplaceCaller) Models(opts *bind.CallOpts, index *big.Int) ([32]byte, error) { - var out []interface{} - err := _Marketplace.contract.Call(opts, &out, "models", index) - - if err != nil { - return *new([32]byte), err - } - - out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) - - return out0, err - -} - -// Models is a free data retrieval call binding the contract method 0x6a030ca9. -// -// Solidity: function models(uint256 index) view returns(bytes32) -func (_Marketplace *MarketplaceSession) Models(index *big.Int) ([32]byte, error) { - return _Marketplace.Contract.Models(&_Marketplace.CallOpts, index) -} - -// Models is a free data retrieval call binding the contract method 0x6a030ca9. -// -// Solidity: function models(uint256 index) view returns(bytes32) -func (_Marketplace *MarketplaceCallerSession) Models(index *big.Int) ([32]byte, error) { - return _Marketplace.Contract.Models(&_Marketplace.CallOpts, index) -} - -// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. -// -// Solidity: function owner() view returns(address) -func (_Marketplace *MarketplaceCaller) Owner(opts *bind.CallOpts) (common.Address, error) { - var out []interface{} - err := _Marketplace.contract.Call(opts, &out, "owner") - - if err != nil { - return *new(common.Address), err - } - - out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) - - return out0, err - -} - -// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. -// -// Solidity: function owner() view returns(address) -func (_Marketplace *MarketplaceSession) Owner() (common.Address, error) { - return _Marketplace.Contract.Owner(&_Marketplace.CallOpts) -} - -// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. -// -// Solidity: function owner() view returns(address) -func (_Marketplace *MarketplaceCallerSession) Owner() (common.Address, error) { - return _Marketplace.Contract.Owner(&_Marketplace.CallOpts) -} - -// ProviderActiveBids is a free data retrieval call binding the contract method 0x6dd7d31c. -// -// Solidity: function providerActiveBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_Marketplace *MarketplaceCaller) ProviderActiveBids(opts *bind.CallOpts, provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - var out []interface{} - err := _Marketplace.contract.Call(opts, &out, "providerActiveBids", provider_, offset_, limit_) - - if err != nil { - return *new([][32]byte), err - } - - out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) - - return out0, err - -} - -// ProviderActiveBids is a free data retrieval call binding the contract method 0x6dd7d31c. -// -// Solidity: function providerActiveBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_Marketplace *MarketplaceSession) ProviderActiveBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - return _Marketplace.Contract.ProviderActiveBids(&_Marketplace.CallOpts, provider_, offset_, limit_) -} - -// ProviderActiveBids is a free data retrieval call binding the contract method 0x6dd7d31c. -// -// Solidity: function providerActiveBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_Marketplace *MarketplaceCallerSession) ProviderActiveBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - return _Marketplace.Contract.ProviderActiveBids(&_Marketplace.CallOpts, provider_, offset_, limit_) -} - -// ProviderBids is a free data retrieval call binding the contract method 0x22fbda9a. -// -// Solidity: function providerBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_Marketplace *MarketplaceCaller) ProviderBids(opts *bind.CallOpts, provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - var out []interface{} - err := _Marketplace.contract.Call(opts, &out, "providerBids", provider_, offset_, limit_) - - if err != nil { - return *new([][32]byte), err - } - - out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) - - return out0, err - -} - -// ProviderBids is a free data retrieval call binding the contract method 0x22fbda9a. -// -// Solidity: function providerBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_Marketplace *MarketplaceSession) ProviderBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - return _Marketplace.Contract.ProviderBids(&_Marketplace.CallOpts, provider_, offset_, limit_) -} - -// ProviderBids is a free data retrieval call binding the contract method 0x22fbda9a. -// -// Solidity: function providerBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_Marketplace *MarketplaceCallerSession) ProviderBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - return _Marketplace.Contract.ProviderBids(&_Marketplace.CallOpts, provider_, offset_, limit_) -} - -// ProviderMinimumStake is a free data retrieval call binding the contract method 0x9476c58e. -// -// Solidity: function providerMinimumStake() view returns(uint256) -func (_Marketplace *MarketplaceCaller) ProviderMinimumStake(opts *bind.CallOpts) (*big.Int, error) { - var out []interface{} - err := _Marketplace.contract.Call(opts, &out, "providerMinimumStake") - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// ProviderMinimumStake is a free data retrieval call binding the contract method 0x9476c58e. -// -// Solidity: function providerMinimumStake() view returns(uint256) -func (_Marketplace *MarketplaceSession) ProviderMinimumStake() (*big.Int, error) { - return _Marketplace.Contract.ProviderMinimumStake(&_Marketplace.CallOpts) -} - -// ProviderMinimumStake is a free data retrieval call binding the contract method 0x9476c58e. -// -// Solidity: function providerMinimumStake() view returns(uint256) -func (_Marketplace *MarketplaceCallerSession) ProviderMinimumStake() (*big.Int, error) { - return _Marketplace.Contract.ProviderMinimumStake(&_Marketplace.CallOpts) -} - -// MarketplaceInit is a paid mutator transaction binding the contract method 0xf6ec33fe. -// -// Solidity: function __Marketplace_init(address token_) returns() -func (_Marketplace *MarketplaceTransactor) MarketplaceInit(opts *bind.TransactOpts, token_ common.Address) (*types.Transaction, error) { - return _Marketplace.contract.Transact(opts, "__Marketplace_init", token_) -} - -// MarketplaceInit is a paid mutator transaction binding the contract method 0xf6ec33fe. -// -// Solidity: function __Marketplace_init(address token_) returns() -func (_Marketplace *MarketplaceSession) MarketplaceInit(token_ common.Address) (*types.Transaction, error) { - return _Marketplace.Contract.MarketplaceInit(&_Marketplace.TransactOpts, token_) -} - -// MarketplaceInit is a paid mutator transaction binding the contract method 0xf6ec33fe. -// -// Solidity: function __Marketplace_init(address token_) returns() -func (_Marketplace *MarketplaceTransactorSession) MarketplaceInit(token_ common.Address) (*types.Transaction, error) { - return _Marketplace.Contract.MarketplaceInit(&_Marketplace.TransactOpts, token_) -} - -// DeleteModelBid is a paid mutator transaction binding the contract method 0x8913dcaa. -// -// Solidity: function deleteModelBid(bytes32 bidId_) returns() -func (_Marketplace *MarketplaceTransactor) DeleteModelBid(opts *bind.TransactOpts, bidId_ [32]byte) (*types.Transaction, error) { - return _Marketplace.contract.Transact(opts, "deleteModelBid", bidId_) -} - -// DeleteModelBid is a paid mutator transaction binding the contract method 0x8913dcaa. -// -// Solidity: function deleteModelBid(bytes32 bidId_) returns() -func (_Marketplace *MarketplaceSession) DeleteModelBid(bidId_ [32]byte) (*types.Transaction, error) { - return _Marketplace.Contract.DeleteModelBid(&_Marketplace.TransactOpts, bidId_) -} - -// DeleteModelBid is a paid mutator transaction binding the contract method 0x8913dcaa. -// -// Solidity: function deleteModelBid(bytes32 bidId_) returns() -func (_Marketplace *MarketplaceTransactorSession) DeleteModelBid(bidId_ [32]byte) (*types.Transaction, error) { - return _Marketplace.Contract.DeleteModelBid(&_Marketplace.TransactOpts, bidId_) -} - -// PostModelBid is a paid mutator transaction binding the contract method 0xede96bb1. -// -// Solidity: function postModelBid(address provider_, bytes32 modelId_, uint256 pricePerSecond_) returns(bytes32 bidId) -func (_Marketplace *MarketplaceTransactor) PostModelBid(opts *bind.TransactOpts, provider_ common.Address, modelId_ [32]byte, pricePerSecond_ *big.Int) (*types.Transaction, error) { - return _Marketplace.contract.Transact(opts, "postModelBid", provider_, modelId_, pricePerSecond_) -} - -// PostModelBid is a paid mutator transaction binding the contract method 0xede96bb1. -// -// Solidity: function postModelBid(address provider_, bytes32 modelId_, uint256 pricePerSecond_) returns(bytes32 bidId) -func (_Marketplace *MarketplaceSession) PostModelBid(provider_ common.Address, modelId_ [32]byte, pricePerSecond_ *big.Int) (*types.Transaction, error) { - return _Marketplace.Contract.PostModelBid(&_Marketplace.TransactOpts, provider_, modelId_, pricePerSecond_) -} - -// PostModelBid is a paid mutator transaction binding the contract method 0xede96bb1. -// -// Solidity: function postModelBid(address provider_, bytes32 modelId_, uint256 pricePerSecond_) returns(bytes32 bidId) -func (_Marketplace *MarketplaceTransactorSession) PostModelBid(provider_ common.Address, modelId_ [32]byte, pricePerSecond_ *big.Int) (*types.Transaction, error) { - return _Marketplace.Contract.PostModelBid(&_Marketplace.TransactOpts, provider_, modelId_, pricePerSecond_) -} - -// SetBidFee is a paid mutator transaction binding the contract method 0x013869bf. -// -// Solidity: function setBidFee(uint256 bidFee_) returns() -func (_Marketplace *MarketplaceTransactor) SetBidFee(opts *bind.TransactOpts, bidFee_ *big.Int) (*types.Transaction, error) { - return _Marketplace.contract.Transact(opts, "setBidFee", bidFee_) -} - -// SetBidFee is a paid mutator transaction binding the contract method 0x013869bf. -// -// Solidity: function setBidFee(uint256 bidFee_) returns() -func (_Marketplace *MarketplaceSession) SetBidFee(bidFee_ *big.Int) (*types.Transaction, error) { - return _Marketplace.Contract.SetBidFee(&_Marketplace.TransactOpts, bidFee_) -} - -// SetBidFee is a paid mutator transaction binding the contract method 0x013869bf. -// -// Solidity: function setBidFee(uint256 bidFee_) returns() -func (_Marketplace *MarketplaceTransactorSession) SetBidFee(bidFee_ *big.Int) (*types.Transaction, error) { - return _Marketplace.Contract.SetBidFee(&_Marketplace.TransactOpts, bidFee_) -} - -// Withdraw is a paid mutator transaction binding the contract method 0xf3fef3a3. -// -// Solidity: function withdraw(address recipient_, uint256 amount_) returns() -func (_Marketplace *MarketplaceTransactor) Withdraw(opts *bind.TransactOpts, recipient_ common.Address, amount_ *big.Int) (*types.Transaction, error) { - return _Marketplace.contract.Transact(opts, "withdraw", recipient_, amount_) -} - -// Withdraw is a paid mutator transaction binding the contract method 0xf3fef3a3. -// -// Solidity: function withdraw(address recipient_, uint256 amount_) returns() -func (_Marketplace *MarketplaceSession) Withdraw(recipient_ common.Address, amount_ *big.Int) (*types.Transaction, error) { - return _Marketplace.Contract.Withdraw(&_Marketplace.TransactOpts, recipient_, amount_) -} - -// Withdraw is a paid mutator transaction binding the contract method 0xf3fef3a3. -// -// Solidity: function withdraw(address recipient_, uint256 amount_) returns() -func (_Marketplace *MarketplaceTransactorSession) Withdraw(recipient_ common.Address, amount_ *big.Int) (*types.Transaction, error) { - return _Marketplace.Contract.Withdraw(&_Marketplace.TransactOpts, recipient_, amount_) -} - -// MarketplaceBidDeletedIterator is returned from FilterBidDeleted and is used to iterate over the raw logs and unpacked data for BidDeleted events raised by the Marketplace contract. -type MarketplaceBidDeletedIterator struct { - Event *MarketplaceBidDeleted // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *MarketplaceBidDeletedIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(MarketplaceBidDeleted) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(MarketplaceBidDeleted) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *MarketplaceBidDeletedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *MarketplaceBidDeletedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// MarketplaceBidDeleted represents a BidDeleted event raised by the Marketplace contract. -type MarketplaceBidDeleted struct { - Provider common.Address - ModelId [32]byte - Nonce *big.Int - Raw types.Log // Blockchain specific contextual infos -} - -// FilterBidDeleted is a free log retrieval operation binding the contract event 0x096f970f504563bca8ac4419b4299946965221e396c34aea149ac84947b9242f. -// -// Solidity: event BidDeleted(address indexed provider, bytes32 indexed modelId, uint256 nonce) -func (_Marketplace *MarketplaceFilterer) FilterBidDeleted(opts *bind.FilterOpts, provider []common.Address, modelId [][32]byte) (*MarketplaceBidDeletedIterator, error) { - - var providerRule []interface{} - for _, providerItem := range provider { - providerRule = append(providerRule, providerItem) - } - var modelIdRule []interface{} - for _, modelIdItem := range modelId { - modelIdRule = append(modelIdRule, modelIdItem) - } - - logs, sub, err := _Marketplace.contract.FilterLogs(opts, "BidDeleted", providerRule, modelIdRule) - if err != nil { - return nil, err - } - return &MarketplaceBidDeletedIterator{contract: _Marketplace.contract, event: "BidDeleted", logs: logs, sub: sub}, nil -} - -// WatchBidDeleted is a free log subscription operation binding the contract event 0x096f970f504563bca8ac4419b4299946965221e396c34aea149ac84947b9242f. -// -// Solidity: event BidDeleted(address indexed provider, bytes32 indexed modelId, uint256 nonce) -func (_Marketplace *MarketplaceFilterer) WatchBidDeleted(opts *bind.WatchOpts, sink chan<- *MarketplaceBidDeleted, provider []common.Address, modelId [][32]byte) (event.Subscription, error) { - - var providerRule []interface{} - for _, providerItem := range provider { - providerRule = append(providerRule, providerItem) - } - var modelIdRule []interface{} - for _, modelIdItem := range modelId { - modelIdRule = append(modelIdRule, modelIdItem) - } - - logs, sub, err := _Marketplace.contract.WatchLogs(opts, "BidDeleted", providerRule, modelIdRule) - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(MarketplaceBidDeleted) - if err := _Marketplace.contract.UnpackLog(event, "BidDeleted", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseBidDeleted is a log parse operation binding the contract event 0x096f970f504563bca8ac4419b4299946965221e396c34aea149ac84947b9242f. -// -// Solidity: event BidDeleted(address indexed provider, bytes32 indexed modelId, uint256 nonce) -func (_Marketplace *MarketplaceFilterer) ParseBidDeleted(log types.Log) (*MarketplaceBidDeleted, error) { - event := new(MarketplaceBidDeleted) - if err := _Marketplace.contract.UnpackLog(event, "BidDeleted", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// MarketplaceBidPostedIterator is returned from FilterBidPosted and is used to iterate over the raw logs and unpacked data for BidPosted events raised by the Marketplace contract. -type MarketplaceBidPostedIterator struct { - Event *MarketplaceBidPosted // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *MarketplaceBidPostedIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(MarketplaceBidPosted) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(MarketplaceBidPosted) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *MarketplaceBidPostedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *MarketplaceBidPostedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// MarketplaceBidPosted represents a BidPosted event raised by the Marketplace contract. -type MarketplaceBidPosted struct { - Provider common.Address - ModelId [32]byte - Nonce *big.Int - Raw types.Log // Blockchain specific contextual infos -} - -// FilterBidPosted is a free log retrieval operation binding the contract event 0xd138adff73af2621d26114cd9ee4f20dcd39ed78f9e0004215ed49aa22753ebe. -// -// Solidity: event BidPosted(address indexed provider, bytes32 indexed modelId, uint256 nonce) -func (_Marketplace *MarketplaceFilterer) FilterBidPosted(opts *bind.FilterOpts, provider []common.Address, modelId [][32]byte) (*MarketplaceBidPostedIterator, error) { - - var providerRule []interface{} - for _, providerItem := range provider { - providerRule = append(providerRule, providerItem) - } - var modelIdRule []interface{} - for _, modelIdItem := range modelId { - modelIdRule = append(modelIdRule, modelIdItem) - } - - logs, sub, err := _Marketplace.contract.FilterLogs(opts, "BidPosted", providerRule, modelIdRule) - if err != nil { - return nil, err - } - return &MarketplaceBidPostedIterator{contract: _Marketplace.contract, event: "BidPosted", logs: logs, sub: sub}, nil -} - -// WatchBidPosted is a free log subscription operation binding the contract event 0xd138adff73af2621d26114cd9ee4f20dcd39ed78f9e0004215ed49aa22753ebe. -// -// Solidity: event BidPosted(address indexed provider, bytes32 indexed modelId, uint256 nonce) -func (_Marketplace *MarketplaceFilterer) WatchBidPosted(opts *bind.WatchOpts, sink chan<- *MarketplaceBidPosted, provider []common.Address, modelId [][32]byte) (event.Subscription, error) { - - var providerRule []interface{} - for _, providerItem := range provider { - providerRule = append(providerRule, providerItem) - } - var modelIdRule []interface{} - for _, modelIdItem := range modelId { - modelIdRule = append(modelIdRule, modelIdItem) - } - - logs, sub, err := _Marketplace.contract.WatchLogs(opts, "BidPosted", providerRule, modelIdRule) - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(MarketplaceBidPosted) - if err := _Marketplace.contract.UnpackLog(event, "BidPosted", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseBidPosted is a log parse operation binding the contract event 0xd138adff73af2621d26114cd9ee4f20dcd39ed78f9e0004215ed49aa22753ebe. -// -// Solidity: event BidPosted(address indexed provider, bytes32 indexed modelId, uint256 nonce) -func (_Marketplace *MarketplaceFilterer) ParseBidPosted(log types.Log) (*MarketplaceBidPosted, error) { - event := new(MarketplaceBidPosted) - if err := _Marketplace.contract.UnpackLog(event, "BidPosted", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// MarketplaceFeeUpdatedIterator is returned from FilterFeeUpdated and is used to iterate over the raw logs and unpacked data for FeeUpdated events raised by the Marketplace contract. -type MarketplaceFeeUpdatedIterator struct { - Event *MarketplaceFeeUpdated // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *MarketplaceFeeUpdatedIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(MarketplaceFeeUpdated) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(MarketplaceFeeUpdated) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *MarketplaceFeeUpdatedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *MarketplaceFeeUpdatedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// MarketplaceFeeUpdated represents a FeeUpdated event raised by the Marketplace contract. -type MarketplaceFeeUpdated struct { - BidFee *big.Int - Raw types.Log // Blockchain specific contextual infos -} - -// FilterFeeUpdated is a free log retrieval operation binding the contract event 0x8c4d35e54a3f2ef1134138fd8ea3daee6a3c89e10d2665996babdf70261e2c76. -// -// Solidity: event FeeUpdated(uint256 bidFee) -func (_Marketplace *MarketplaceFilterer) FilterFeeUpdated(opts *bind.FilterOpts) (*MarketplaceFeeUpdatedIterator, error) { - - logs, sub, err := _Marketplace.contract.FilterLogs(opts, "FeeUpdated") - if err != nil { - return nil, err - } - return &MarketplaceFeeUpdatedIterator{contract: _Marketplace.contract, event: "FeeUpdated", logs: logs, sub: sub}, nil -} - -// WatchFeeUpdated is a free log subscription operation binding the contract event 0x8c4d35e54a3f2ef1134138fd8ea3daee6a3c89e10d2665996babdf70261e2c76. -// -// Solidity: event FeeUpdated(uint256 bidFee) -func (_Marketplace *MarketplaceFilterer) WatchFeeUpdated(opts *bind.WatchOpts, sink chan<- *MarketplaceFeeUpdated) (event.Subscription, error) { - - logs, sub, err := _Marketplace.contract.WatchLogs(opts, "FeeUpdated") - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(MarketplaceFeeUpdated) - if err := _Marketplace.contract.UnpackLog(event, "FeeUpdated", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseFeeUpdated is a log parse operation binding the contract event 0x8c4d35e54a3f2ef1134138fd8ea3daee6a3c89e10d2665996babdf70261e2c76. -// -// Solidity: event FeeUpdated(uint256 bidFee) -func (_Marketplace *MarketplaceFilterer) ParseFeeUpdated(log types.Log) (*MarketplaceFeeUpdated, error) { - event := new(MarketplaceFeeUpdated) - if err := _Marketplace.contract.UnpackLog(event, "FeeUpdated", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// MarketplaceInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the Marketplace contract. -type MarketplaceInitializedIterator struct { - Event *MarketplaceInitialized // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *MarketplaceInitializedIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(MarketplaceInitialized) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(MarketplaceInitialized) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *MarketplaceInitializedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *MarketplaceInitializedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// MarketplaceInitialized represents a Initialized event raised by the Marketplace contract. -type MarketplaceInitialized struct { - StorageSlot [32]byte - Raw types.Log // Blockchain specific contextual infos -} - -// FilterInitialized is a free log retrieval operation binding the contract event 0xdc73717d728bcfa015e8117438a65319aa06e979ca324afa6e1ea645c28ea15d. -// -// Solidity: event Initialized(bytes32 storageSlot) -func (_Marketplace *MarketplaceFilterer) FilterInitialized(opts *bind.FilterOpts) (*MarketplaceInitializedIterator, error) { - - logs, sub, err := _Marketplace.contract.FilterLogs(opts, "Initialized") - if err != nil { - return nil, err - } - return &MarketplaceInitializedIterator{contract: _Marketplace.contract, event: "Initialized", logs: logs, sub: sub}, nil -} - -// WatchInitialized is a free log subscription operation binding the contract event 0xdc73717d728bcfa015e8117438a65319aa06e979ca324afa6e1ea645c28ea15d. -// -// Solidity: event Initialized(bytes32 storageSlot) -func (_Marketplace *MarketplaceFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *MarketplaceInitialized) (event.Subscription, error) { - - logs, sub, err := _Marketplace.contract.WatchLogs(opts, "Initialized") - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(MarketplaceInitialized) - if err := _Marketplace.contract.UnpackLog(event, "Initialized", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseInitialized is a log parse operation binding the contract event 0xdc73717d728bcfa015e8117438a65319aa06e979ca324afa6e1ea645c28ea15d. -// -// Solidity: event Initialized(bytes32 storageSlot) -func (_Marketplace *MarketplaceFilterer) ParseInitialized(log types.Log) (*MarketplaceInitialized, error) { - event := new(MarketplaceInitialized) - if err := _Marketplace.contract.UnpackLog(event, "Initialized", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} diff --git a/proxy-router/contracts/sessionrouter/SessionRouter.go b/proxy-router/contracts/sessionrouter/SessionRouter.go deleted file mode 100644 index ad5fb484..00000000 --- a/proxy-router/contracts/sessionrouter/SessionRouter.go +++ /dev/null @@ -1,1885 +0,0 @@ -// Code generated - DO NOT EDIT. -// This file is a generated binding and any manual changes will be lost. - -package sessionrouter - -import ( - "errors" - "math/big" - "strings" - - ethereum "github.com/ethereum/go-ethereum" - "github.com/ethereum/go-ethereum/accounts/abi" - "github.com/ethereum/go-ethereum/accounts/abi/bind" - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/event" -) - -// Reference imports to suppress errors if they are not otherwise used. -var ( - _ = errors.New - _ = big.NewInt - _ = strings.NewReader - _ = ethereum.NotFound - _ = bind.Bind - _ = common.Big1 - _ = types.BloomLookup - _ = event.NewSubscription - _ = abi.ConvertType -) - -// IBidStorageBid is an auto generated low-level Go binding around an user-defined struct. -type IBidStorageBid struct { - Provider common.Address - ModelId [32]byte - PricePerSecond *big.Int - Nonce *big.Int - CreatedAt *big.Int - DeletedAt *big.Int -} - -// IProviderStorageProvider is an auto generated low-level Go binding around an user-defined struct. -type IProviderStorageProvider struct { - Endpoint string - Stake *big.Int - CreatedAt *big.Int - LimitPeriodEnd *big.Int - LimitPeriodEarned *big.Int - IsDeleted bool -} - -// ISessionStoragePool is an auto generated low-level Go binding around an user-defined struct. -type ISessionStoragePool struct { - InitialReward *big.Int - RewardDecrease *big.Int - PayoutStart *big.Int - DecreaseInterval *big.Int -} - -// ISessionStorageSession is an auto generated low-level Go binding around an user-defined struct. -type ISessionStorageSession struct { - Id [32]byte - User common.Address - Provider common.Address - ModelId [32]byte - BidId [32]byte - Stake *big.Int - PricePerSecond *big.Int - CloseoutReceipt []byte - CloseoutType *big.Int - ProviderWithdrawnAmount *big.Int - OpenedAt *big.Int - EndsAt *big.Int - ClosedAt *big.Int -} - -// IStatsStorageProviderModelStats is an auto generated low-level Go binding around an user-defined struct. -type IStatsStorageProviderModelStats struct { - TpsScaled1000 LibSDSD - TtftMs LibSDSD - TotalDuration uint32 - SuccessCount uint32 - TotalCount uint32 -} - -// LibSDSD is an auto generated low-level Go binding around an user-defined struct. -type LibSDSD struct { - Mean int64 - SqSum int64 -} - -// SessionRouterMetaData contains all meta data concerning the SessionRouter contract. -var SessionRouterMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[],\"name\":\"AmountToWithdrawIsZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ApprovedForAnotherUser\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BidNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotDecodeAbi\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicateApproval\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughWithdrawableBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwnerOrProvider\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwnerOrUser\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account_\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolIndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProviderSignatureMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SessionAlreadyClosed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SessionNotClosed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SessionNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SessionTooShort\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignatureExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WithdrawableBalanceLimitByStakeReached\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WrongChainId\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"storageSlot\",\"type\":\"bytes32\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"sessionId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"providerId\",\"type\":\"address\"}],\"name\":\"SessionClosed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"sessionId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"providerId\",\"type\":\"address\"}],\"name\":\"SessionOpened\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BID_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COMPUTE_POOL_INDEX\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DIAMOND_OWNABLE_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_SESSION_DURATION\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MIN_SESSION_DURATION\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROVIDER_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SESSION_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SIGNATURE_TTL\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"STATS_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"fundingAccount_\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"initialReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rewardDecrease\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"payoutStart\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"decreaseInterval\",\"type\":\"uint128\"}],\"internalType\":\"structISessionStorage.Pool[]\",\"name\":\"pools_\",\"type\":\"tuple[]\"}],\"name\":\"__SessionRouter_init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bidId\",\"type\":\"bytes32\"}],\"name\":\"bids\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"pricePerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"deletedAt\",\"type\":\"uint128\"}],\"internalType\":\"structIBidStorage.Bid\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"sessionId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amountToWithdraw_\",\"type\":\"uint256\"}],\"name\":\"claimProviderBalance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"receiptEncoded_\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature_\",\"type\":\"bytes\"}],\"name\":\"closeSession\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"sessionId_\",\"type\":\"bytes32\"}],\"name\":\"deleteHistory\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"limit_\",\"type\":\"uint8\"}],\"name\":\"getActiveBidsRatingByModel\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"pricePerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"deletedAt\",\"type\":\"uint128\"}],\"internalType\":\"structIBidStorage.Bid[]\",\"name\":\"\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"int64\",\"name\":\"mean\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"sqSum\",\"type\":\"int64\"}],\"internalType\":\"structLibSD.SD\",\"name\":\"tpsScaled1000\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"mean\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"sqSum\",\"type\":\"int64\"}],\"internalType\":\"structLibSD.SD\",\"name\":\"ttftMs\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"totalDuration\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"successCount\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"totalCount\",\"type\":\"uint32\"}],\"internalType\":\"structIStatsStorage.ProviderModelStats[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp_\",\"type\":\"uint256\"}],\"name\":\"getComputeBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFundingAccount\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"}],\"name\":\"getProvider\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"endpoint\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"limitPeriodEnd\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"limitPeriodEarned\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isDeleted\",\"type\":\"bool\"}],\"internalType\":\"structIProviderStorage.Provider\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"sessionId_\",\"type\":\"bytes32\"}],\"name\":\"getProviderClaimableBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"stake_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sessionNonce_\",\"type\":\"uint256\"}],\"name\":\"getSessionId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getSessionsByUser\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp_\",\"type\":\"uint256\"}],\"name\":\"getTodaysBudget\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getToken\",\"outputs\":[{\"internalType\":\"contractIERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"modelActiveBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"modelBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"providerApproval_\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature_\",\"type\":\"bytes\"}],\"name\":\"openSession\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pools\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"initialReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rewardDecrease\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"payoutStart\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"decreaseInterval\",\"type\":\"uint128\"}],\"internalType\":\"structISessionStorage.Pool[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"providerActiveBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"providerBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"providerMinimumStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"sessionId\",\"type\":\"bytes32\"}],\"name\":\"sessions\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"bidId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"pricePerSecond\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"closeoutReceipt\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"closeoutType\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"providerWithdrawnAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"openedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"endsAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"closedAt\",\"type\":\"uint256\"}],\"internalType\":\"structISessionStorage.Session\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"initialReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rewardDecrease\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"payoutStart\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"decreaseInterval\",\"type\":\"uint128\"}],\"internalType\":\"structISessionStorage.Pool\",\"name\":\"pool\",\"type\":\"tuple\"}],\"name\":\"setPoolConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sessionStake_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp_\",\"type\":\"uint256\"}],\"name\":\"stakeToStipend\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp_\",\"type\":\"uint256\"}],\"name\":\"startOfTheDay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"stipend_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp_\",\"type\":\"uint256\"}],\"name\":\"stipendToStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp_\",\"type\":\"uint256\"}],\"name\":\"totalMORSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sessionStake_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"pricePerSecond_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"openedAt_\",\"type\":\"uint256\"}],\"name\":\"whenSessionEnds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountToWithdraw_\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"iterations_\",\"type\":\"uint8\"}],\"name\":\"withdrawUserStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user_\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"iterations_\",\"type\":\"uint8\"}],\"name\":\"withdrawableUserStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"avail_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"hold_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", -} - -// SessionRouterABI is the input ABI used to generate the binding from. -// Deprecated: Use SessionRouterMetaData.ABI instead. -var SessionRouterABI = SessionRouterMetaData.ABI - -// SessionRouter is an auto generated Go binding around an Ethereum contract. -type SessionRouter struct { - SessionRouterCaller // Read-only binding to the contract - SessionRouterTransactor // Write-only binding to the contract - SessionRouterFilterer // Log filterer for contract events -} - -// SessionRouterCaller is an auto generated read-only Go binding around an Ethereum contract. -type SessionRouterCaller struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// SessionRouterTransactor is an auto generated write-only Go binding around an Ethereum contract. -type SessionRouterTransactor struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// SessionRouterFilterer is an auto generated log filtering Go binding around an Ethereum contract events. -type SessionRouterFilterer struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// SessionRouterSession is an auto generated Go binding around an Ethereum contract, -// with pre-set call and transact options. -type SessionRouterSession struct { - Contract *SessionRouter // Generic contract binding to set the session for - CallOpts bind.CallOpts // Call options to use throughout this session - TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session -} - -// SessionRouterCallerSession is an auto generated read-only Go binding around an Ethereum contract, -// with pre-set call options. -type SessionRouterCallerSession struct { - Contract *SessionRouterCaller // Generic contract caller binding to set the session for - CallOpts bind.CallOpts // Call options to use throughout this session -} - -// SessionRouterTransactorSession is an auto generated write-only Go binding around an Ethereum contract, -// with pre-set transact options. -type SessionRouterTransactorSession struct { - Contract *SessionRouterTransactor // Generic contract transactor binding to set the session for - TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session -} - -// SessionRouterRaw is an auto generated low-level Go binding around an Ethereum contract. -type SessionRouterRaw struct { - Contract *SessionRouter // Generic contract binding to access the raw methods on -} - -// SessionRouterCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. -type SessionRouterCallerRaw struct { - Contract *SessionRouterCaller // Generic read-only contract binding to access the raw methods on -} - -// SessionRouterTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. -type SessionRouterTransactorRaw struct { - Contract *SessionRouterTransactor // Generic write-only contract binding to access the raw methods on -} - -// NewSessionRouter creates a new instance of SessionRouter, bound to a specific deployed contract. -func NewSessionRouter(address common.Address, backend bind.ContractBackend) (*SessionRouter, error) { - contract, err := bindSessionRouter(address, backend, backend, backend) - if err != nil { - return nil, err - } - return &SessionRouter{SessionRouterCaller: SessionRouterCaller{contract: contract}, SessionRouterTransactor: SessionRouterTransactor{contract: contract}, SessionRouterFilterer: SessionRouterFilterer{contract: contract}}, nil -} - -// NewSessionRouterCaller creates a new read-only instance of SessionRouter, bound to a specific deployed contract. -func NewSessionRouterCaller(address common.Address, caller bind.ContractCaller) (*SessionRouterCaller, error) { - contract, err := bindSessionRouter(address, caller, nil, nil) - if err != nil { - return nil, err - } - return &SessionRouterCaller{contract: contract}, nil -} - -// NewSessionRouterTransactor creates a new write-only instance of SessionRouter, bound to a specific deployed contract. -func NewSessionRouterTransactor(address common.Address, transactor bind.ContractTransactor) (*SessionRouterTransactor, error) { - contract, err := bindSessionRouter(address, nil, transactor, nil) - if err != nil { - return nil, err - } - return &SessionRouterTransactor{contract: contract}, nil -} - -// NewSessionRouterFilterer creates a new log filterer instance of SessionRouter, bound to a specific deployed contract. -func NewSessionRouterFilterer(address common.Address, filterer bind.ContractFilterer) (*SessionRouterFilterer, error) { - contract, err := bindSessionRouter(address, nil, nil, filterer) - if err != nil { - return nil, err - } - return &SessionRouterFilterer{contract: contract}, nil -} - -// bindSessionRouter binds a generic wrapper to an already deployed contract. -func bindSessionRouter(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { - parsed, err := SessionRouterMetaData.GetAbi() - if err != nil { - return nil, err - } - return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil -} - -// Call invokes the (constant) contract method with params as input values and -// sets the output to result. The result type might be a single field for simple -// returns, a slice of interfaces for anonymous returns and a struct for named -// returns. -func (_SessionRouter *SessionRouterRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _SessionRouter.Contract.SessionRouterCaller.contract.Call(opts, result, method, params...) -} - -// Transfer initiates a plain transaction to move funds to the contract, calling -// its default method if one is available. -func (_SessionRouter *SessionRouterRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _SessionRouter.Contract.SessionRouterTransactor.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_SessionRouter *SessionRouterRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _SessionRouter.Contract.SessionRouterTransactor.contract.Transact(opts, method, params...) -} - -// Call invokes the (constant) contract method with params as input values and -// sets the output to result. The result type might be a single field for simple -// returns, a slice of interfaces for anonymous returns and a struct for named -// returns. -func (_SessionRouter *SessionRouterCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _SessionRouter.Contract.contract.Call(opts, result, method, params...) -} - -// Transfer initiates a plain transaction to move funds to the contract, calling -// its default method if one is available. -func (_SessionRouter *SessionRouterTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _SessionRouter.Contract.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_SessionRouter *SessionRouterTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _SessionRouter.Contract.contract.Transact(opts, method, params...) -} - -// BIDSTORAGESLOT is a free data retrieval call binding the contract method 0x4fa816f2. -// -// Solidity: function BID_STORAGE_SLOT() view returns(bytes32) -func (_SessionRouter *SessionRouterCaller) BIDSTORAGESLOT(opts *bind.CallOpts) ([32]byte, error) { - var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "BID_STORAGE_SLOT") - - if err != nil { - return *new([32]byte), err - } - - out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) - - return out0, err - -} - -// BIDSTORAGESLOT is a free data retrieval call binding the contract method 0x4fa816f2. -// -// Solidity: function BID_STORAGE_SLOT() view returns(bytes32) -func (_SessionRouter *SessionRouterSession) BIDSTORAGESLOT() ([32]byte, error) { - return _SessionRouter.Contract.BIDSTORAGESLOT(&_SessionRouter.CallOpts) -} - -// BIDSTORAGESLOT is a free data retrieval call binding the contract method 0x4fa816f2. -// -// Solidity: function BID_STORAGE_SLOT() view returns(bytes32) -func (_SessionRouter *SessionRouterCallerSession) BIDSTORAGESLOT() ([32]byte, error) { - return _SessionRouter.Contract.BIDSTORAGESLOT(&_SessionRouter.CallOpts) -} - -// COMPUTEPOOLINDEX is a free data retrieval call binding the contract method 0xc56d09a0. -// -// Solidity: function COMPUTE_POOL_INDEX() view returns(uint256) -func (_SessionRouter *SessionRouterCaller) COMPUTEPOOLINDEX(opts *bind.CallOpts) (*big.Int, error) { - var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "COMPUTE_POOL_INDEX") - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// COMPUTEPOOLINDEX is a free data retrieval call binding the contract method 0xc56d09a0. -// -// Solidity: function COMPUTE_POOL_INDEX() view returns(uint256) -func (_SessionRouter *SessionRouterSession) COMPUTEPOOLINDEX() (*big.Int, error) { - return _SessionRouter.Contract.COMPUTEPOOLINDEX(&_SessionRouter.CallOpts) -} - -// COMPUTEPOOLINDEX is a free data retrieval call binding the contract method 0xc56d09a0. -// -// Solidity: function COMPUTE_POOL_INDEX() view returns(uint256) -func (_SessionRouter *SessionRouterCallerSession) COMPUTEPOOLINDEX() (*big.Int, error) { - return _SessionRouter.Contract.COMPUTEPOOLINDEX(&_SessionRouter.CallOpts) -} - -// DIAMONDOWNABLESTORAGESLOT is a free data retrieval call binding the contract method 0x4ac3371e. -// -// Solidity: function DIAMOND_OWNABLE_STORAGE_SLOT() view returns(bytes32) -func (_SessionRouter *SessionRouterCaller) DIAMONDOWNABLESTORAGESLOT(opts *bind.CallOpts) ([32]byte, error) { - var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "DIAMOND_OWNABLE_STORAGE_SLOT") - - if err != nil { - return *new([32]byte), err - } - - out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) - - return out0, err - -} - -// DIAMONDOWNABLESTORAGESLOT is a free data retrieval call binding the contract method 0x4ac3371e. -// -// Solidity: function DIAMOND_OWNABLE_STORAGE_SLOT() view returns(bytes32) -func (_SessionRouter *SessionRouterSession) DIAMONDOWNABLESTORAGESLOT() ([32]byte, error) { - return _SessionRouter.Contract.DIAMONDOWNABLESTORAGESLOT(&_SessionRouter.CallOpts) -} - -// DIAMONDOWNABLESTORAGESLOT is a free data retrieval call binding the contract method 0x4ac3371e. -// -// Solidity: function DIAMOND_OWNABLE_STORAGE_SLOT() view returns(bytes32) -func (_SessionRouter *SessionRouterCallerSession) DIAMONDOWNABLESTORAGESLOT() ([32]byte, error) { - return _SessionRouter.Contract.DIAMONDOWNABLESTORAGESLOT(&_SessionRouter.CallOpts) -} - -// MAXSESSIONDURATION is a free data retrieval call binding the contract method 0xcd8cd4ad. -// -// Solidity: function MAX_SESSION_DURATION() view returns(uint32) -func (_SessionRouter *SessionRouterCaller) MAXSESSIONDURATION(opts *bind.CallOpts) (uint32, error) { - var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "MAX_SESSION_DURATION") - - if err != nil { - return *new(uint32), err - } - - out0 := *abi.ConvertType(out[0], new(uint32)).(*uint32) - - return out0, err - -} - -// MAXSESSIONDURATION is a free data retrieval call binding the contract method 0xcd8cd4ad. -// -// Solidity: function MAX_SESSION_DURATION() view returns(uint32) -func (_SessionRouter *SessionRouterSession) MAXSESSIONDURATION() (uint32, error) { - return _SessionRouter.Contract.MAXSESSIONDURATION(&_SessionRouter.CallOpts) -} - -// MAXSESSIONDURATION is a free data retrieval call binding the contract method 0xcd8cd4ad. -// -// Solidity: function MAX_SESSION_DURATION() view returns(uint32) -func (_SessionRouter *SessionRouterCallerSession) MAXSESSIONDURATION() (uint32, error) { - return _SessionRouter.Contract.MAXSESSIONDURATION(&_SessionRouter.CallOpts) -} - -// MINSESSIONDURATION is a free data retrieval call binding the contract method 0x7d980286. -// -// Solidity: function MIN_SESSION_DURATION() view returns(uint32) -func (_SessionRouter *SessionRouterCaller) MINSESSIONDURATION(opts *bind.CallOpts) (uint32, error) { - var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "MIN_SESSION_DURATION") - - if err != nil { - return *new(uint32), err - } - - out0 := *abi.ConvertType(out[0], new(uint32)).(*uint32) - - return out0, err - -} - -// MINSESSIONDURATION is a free data retrieval call binding the contract method 0x7d980286. -// -// Solidity: function MIN_SESSION_DURATION() view returns(uint32) -func (_SessionRouter *SessionRouterSession) MINSESSIONDURATION() (uint32, error) { - return _SessionRouter.Contract.MINSESSIONDURATION(&_SessionRouter.CallOpts) -} - -// MINSESSIONDURATION is a free data retrieval call binding the contract method 0x7d980286. -// -// Solidity: function MIN_SESSION_DURATION() view returns(uint32) -func (_SessionRouter *SessionRouterCallerSession) MINSESSIONDURATION() (uint32, error) { - return _SessionRouter.Contract.MINSESSIONDURATION(&_SessionRouter.CallOpts) -} - -// PROVIDERSTORAGESLOT is a free data retrieval call binding the contract method 0x490713b1. -// -// Solidity: function PROVIDER_STORAGE_SLOT() view returns(bytes32) -func (_SessionRouter *SessionRouterCaller) PROVIDERSTORAGESLOT(opts *bind.CallOpts) ([32]byte, error) { - var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "PROVIDER_STORAGE_SLOT") - - if err != nil { - return *new([32]byte), err - } - - out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) - - return out0, err - -} - -// PROVIDERSTORAGESLOT is a free data retrieval call binding the contract method 0x490713b1. -// -// Solidity: function PROVIDER_STORAGE_SLOT() view returns(bytes32) -func (_SessionRouter *SessionRouterSession) PROVIDERSTORAGESLOT() ([32]byte, error) { - return _SessionRouter.Contract.PROVIDERSTORAGESLOT(&_SessionRouter.CallOpts) -} - -// PROVIDERSTORAGESLOT is a free data retrieval call binding the contract method 0x490713b1. -// -// Solidity: function PROVIDER_STORAGE_SLOT() view returns(bytes32) -func (_SessionRouter *SessionRouterCallerSession) PROVIDERSTORAGESLOT() ([32]byte, error) { - return _SessionRouter.Contract.PROVIDERSTORAGESLOT(&_SessionRouter.CallOpts) -} - -// SESSIONSTORAGESLOT is a free data retrieval call binding the contract method 0x0cbfb226. -// -// Solidity: function SESSION_STORAGE_SLOT() view returns(bytes32) -func (_SessionRouter *SessionRouterCaller) SESSIONSTORAGESLOT(opts *bind.CallOpts) ([32]byte, error) { - var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "SESSION_STORAGE_SLOT") - - if err != nil { - return *new([32]byte), err - } - - out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) - - return out0, err - -} - -// SESSIONSTORAGESLOT is a free data retrieval call binding the contract method 0x0cbfb226. -// -// Solidity: function SESSION_STORAGE_SLOT() view returns(bytes32) -func (_SessionRouter *SessionRouterSession) SESSIONSTORAGESLOT() ([32]byte, error) { - return _SessionRouter.Contract.SESSIONSTORAGESLOT(&_SessionRouter.CallOpts) -} - -// SESSIONSTORAGESLOT is a free data retrieval call binding the contract method 0x0cbfb226. -// -// Solidity: function SESSION_STORAGE_SLOT() view returns(bytes32) -func (_SessionRouter *SessionRouterCallerSession) SESSIONSTORAGESLOT() ([32]byte, error) { - return _SessionRouter.Contract.SESSIONSTORAGESLOT(&_SessionRouter.CallOpts) -} - -// SIGNATURETTL is a free data retrieval call binding the contract method 0xe7d791d0. -// -// Solidity: function SIGNATURE_TTL() view returns(uint32) -func (_SessionRouter *SessionRouterCaller) SIGNATURETTL(opts *bind.CallOpts) (uint32, error) { - var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "SIGNATURE_TTL") - - if err != nil { - return *new(uint32), err - } - - out0 := *abi.ConvertType(out[0], new(uint32)).(*uint32) - - return out0, err - -} - -// SIGNATURETTL is a free data retrieval call binding the contract method 0xe7d791d0. -// -// Solidity: function SIGNATURE_TTL() view returns(uint32) -func (_SessionRouter *SessionRouterSession) SIGNATURETTL() (uint32, error) { - return _SessionRouter.Contract.SIGNATURETTL(&_SessionRouter.CallOpts) -} - -// SIGNATURETTL is a free data retrieval call binding the contract method 0xe7d791d0. -// -// Solidity: function SIGNATURE_TTL() view returns(uint32) -func (_SessionRouter *SessionRouterCallerSession) SIGNATURETTL() (uint32, error) { - return _SessionRouter.Contract.SIGNATURETTL(&_SessionRouter.CallOpts) -} - -// STATSSTORAGESLOT is a free data retrieval call binding the contract method 0x87040789. -// -// Solidity: function STATS_STORAGE_SLOT() view returns(bytes32) -func (_SessionRouter *SessionRouterCaller) STATSSTORAGESLOT(opts *bind.CallOpts) ([32]byte, error) { - var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "STATS_STORAGE_SLOT") - - if err != nil { - return *new([32]byte), err - } - - out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) - - return out0, err - -} - -// STATSSTORAGESLOT is a free data retrieval call binding the contract method 0x87040789. -// -// Solidity: function STATS_STORAGE_SLOT() view returns(bytes32) -func (_SessionRouter *SessionRouterSession) STATSSTORAGESLOT() ([32]byte, error) { - return _SessionRouter.Contract.STATSSTORAGESLOT(&_SessionRouter.CallOpts) -} - -// STATSSTORAGESLOT is a free data retrieval call binding the contract method 0x87040789. -// -// Solidity: function STATS_STORAGE_SLOT() view returns(bytes32) -func (_SessionRouter *SessionRouterCallerSession) STATSSTORAGESLOT() ([32]byte, error) { - return _SessionRouter.Contract.STATSSTORAGESLOT(&_SessionRouter.CallOpts) -} - -// Bids is a free data retrieval call binding the contract method 0x8f98eeda. -// -// Solidity: function bids(bytes32 bidId) view returns((address,bytes32,uint256,uint256,uint128,uint128)) -func (_SessionRouter *SessionRouterCaller) Bids(opts *bind.CallOpts, bidId [32]byte) (IBidStorageBid, error) { - var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "bids", bidId) - - if err != nil { - return *new(IBidStorageBid), err - } - - out0 := *abi.ConvertType(out[0], new(IBidStorageBid)).(*IBidStorageBid) - - return out0, err - -} - -// Bids is a free data retrieval call binding the contract method 0x8f98eeda. -// -// Solidity: function bids(bytes32 bidId) view returns((address,bytes32,uint256,uint256,uint128,uint128)) -func (_SessionRouter *SessionRouterSession) Bids(bidId [32]byte) (IBidStorageBid, error) { - return _SessionRouter.Contract.Bids(&_SessionRouter.CallOpts, bidId) -} - -// Bids is a free data retrieval call binding the contract method 0x8f98eeda. -// -// Solidity: function bids(bytes32 bidId) view returns((address,bytes32,uint256,uint256,uint128,uint128)) -func (_SessionRouter *SessionRouterCallerSession) Bids(bidId [32]byte) (IBidStorageBid, error) { - return _SessionRouter.Contract.Bids(&_SessionRouter.CallOpts, bidId) -} - -// GetActiveBidsRatingByModel is a free data retrieval call binding the contract method 0x3b04deec. -// -// Solidity: function getActiveBidsRatingByModel(bytes32 modelId_, uint256 offset_, uint8 limit_) view returns(bytes32[], (address,bytes32,uint256,uint256,uint128,uint128)[], ((int64,int64),(int64,int64),uint32,uint32,uint32)[]) -func (_SessionRouter *SessionRouterCaller) GetActiveBidsRatingByModel(opts *bind.CallOpts, modelId_ [32]byte, offset_ *big.Int, limit_ uint8) ([][32]byte, []IBidStorageBid, []IStatsStorageProviderModelStats, error) { - var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "getActiveBidsRatingByModel", modelId_, offset_, limit_) - - if err != nil { - return *new([][32]byte), *new([]IBidStorageBid), *new([]IStatsStorageProviderModelStats), err - } - - out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) - out1 := *abi.ConvertType(out[1], new([]IBidStorageBid)).(*[]IBidStorageBid) - out2 := *abi.ConvertType(out[2], new([]IStatsStorageProviderModelStats)).(*[]IStatsStorageProviderModelStats) - - return out0, out1, out2, err - -} - -// GetActiveBidsRatingByModel is a free data retrieval call binding the contract method 0x3b04deec. -// -// Solidity: function getActiveBidsRatingByModel(bytes32 modelId_, uint256 offset_, uint8 limit_) view returns(bytes32[], (address,bytes32,uint256,uint256,uint128,uint128)[], ((int64,int64),(int64,int64),uint32,uint32,uint32)[]) -func (_SessionRouter *SessionRouterSession) GetActiveBidsRatingByModel(modelId_ [32]byte, offset_ *big.Int, limit_ uint8) ([][32]byte, []IBidStorageBid, []IStatsStorageProviderModelStats, error) { - return _SessionRouter.Contract.GetActiveBidsRatingByModel(&_SessionRouter.CallOpts, modelId_, offset_, limit_) -} - -// GetActiveBidsRatingByModel is a free data retrieval call binding the contract method 0x3b04deec. -// -// Solidity: function getActiveBidsRatingByModel(bytes32 modelId_, uint256 offset_, uint8 limit_) view returns(bytes32[], (address,bytes32,uint256,uint256,uint128,uint128)[], ((int64,int64),(int64,int64),uint32,uint32,uint32)[]) -func (_SessionRouter *SessionRouterCallerSession) GetActiveBidsRatingByModel(modelId_ [32]byte, offset_ *big.Int, limit_ uint8) ([][32]byte, []IBidStorageBid, []IStatsStorageProviderModelStats, error) { - return _SessionRouter.Contract.GetActiveBidsRatingByModel(&_SessionRouter.CallOpts, modelId_, offset_, limit_) -} - -// GetComputeBalance is a free data retrieval call binding the contract method 0x76738e9e. -// -// Solidity: function getComputeBalance(uint256 timestamp_) view returns(uint256) -func (_SessionRouter *SessionRouterCaller) GetComputeBalance(opts *bind.CallOpts, timestamp_ *big.Int) (*big.Int, error) { - var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "getComputeBalance", timestamp_) - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// GetComputeBalance is a free data retrieval call binding the contract method 0x76738e9e. -// -// Solidity: function getComputeBalance(uint256 timestamp_) view returns(uint256) -func (_SessionRouter *SessionRouterSession) GetComputeBalance(timestamp_ *big.Int) (*big.Int, error) { - return _SessionRouter.Contract.GetComputeBalance(&_SessionRouter.CallOpts, timestamp_) -} - -// GetComputeBalance is a free data retrieval call binding the contract method 0x76738e9e. -// -// Solidity: function getComputeBalance(uint256 timestamp_) view returns(uint256) -func (_SessionRouter *SessionRouterCallerSession) GetComputeBalance(timestamp_ *big.Int) (*big.Int, error) { - return _SessionRouter.Contract.GetComputeBalance(&_SessionRouter.CallOpts, timestamp_) -} - -// GetFundingAccount is a free data retrieval call binding the contract method 0x775c3727. -// -// Solidity: function getFundingAccount() view returns(address) -func (_SessionRouter *SessionRouterCaller) GetFundingAccount(opts *bind.CallOpts) (common.Address, error) { - var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "getFundingAccount") - - if err != nil { - return *new(common.Address), err - } - - out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) - - return out0, err - -} - -// GetFundingAccount is a free data retrieval call binding the contract method 0x775c3727. -// -// Solidity: function getFundingAccount() view returns(address) -func (_SessionRouter *SessionRouterSession) GetFundingAccount() (common.Address, error) { - return _SessionRouter.Contract.GetFundingAccount(&_SessionRouter.CallOpts) -} - -// GetFundingAccount is a free data retrieval call binding the contract method 0x775c3727. -// -// Solidity: function getFundingAccount() view returns(address) -func (_SessionRouter *SessionRouterCallerSession) GetFundingAccount() (common.Address, error) { - return _SessionRouter.Contract.GetFundingAccount(&_SessionRouter.CallOpts) -} - -// GetProvider is a free data retrieval call binding the contract method 0x55f21eb7. -// -// Solidity: function getProvider(address provider) view returns((string,uint256,uint128,uint128,uint256,bool)) -func (_SessionRouter *SessionRouterCaller) GetProvider(opts *bind.CallOpts, provider common.Address) (IProviderStorageProvider, error) { - var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "getProvider", provider) - - if err != nil { - return *new(IProviderStorageProvider), err - } - - out0 := *abi.ConvertType(out[0], new(IProviderStorageProvider)).(*IProviderStorageProvider) - - return out0, err - -} - -// GetProvider is a free data retrieval call binding the contract method 0x55f21eb7. -// -// Solidity: function getProvider(address provider) view returns((string,uint256,uint128,uint128,uint256,bool)) -func (_SessionRouter *SessionRouterSession) GetProvider(provider common.Address) (IProviderStorageProvider, error) { - return _SessionRouter.Contract.GetProvider(&_SessionRouter.CallOpts, provider) -} - -// GetProvider is a free data retrieval call binding the contract method 0x55f21eb7. -// -// Solidity: function getProvider(address provider) view returns((string,uint256,uint128,uint128,uint256,bool)) -func (_SessionRouter *SessionRouterCallerSession) GetProvider(provider common.Address) (IProviderStorageProvider, error) { - return _SessionRouter.Contract.GetProvider(&_SessionRouter.CallOpts, provider) -} - -// GetProviderClaimableBalance is a free data retrieval call binding the contract method 0xa8ca6323. -// -// Solidity: function getProviderClaimableBalance(bytes32 sessionId_) view returns(uint256) -func (_SessionRouter *SessionRouterCaller) GetProviderClaimableBalance(opts *bind.CallOpts, sessionId_ [32]byte) (*big.Int, error) { - var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "getProviderClaimableBalance", sessionId_) - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// GetProviderClaimableBalance is a free data retrieval call binding the contract method 0xa8ca6323. -// -// Solidity: function getProviderClaimableBalance(bytes32 sessionId_) view returns(uint256) -func (_SessionRouter *SessionRouterSession) GetProviderClaimableBalance(sessionId_ [32]byte) (*big.Int, error) { - return _SessionRouter.Contract.GetProviderClaimableBalance(&_SessionRouter.CallOpts, sessionId_) -} - -// GetProviderClaimableBalance is a free data retrieval call binding the contract method 0xa8ca6323. -// -// Solidity: function getProviderClaimableBalance(bytes32 sessionId_) view returns(uint256) -func (_SessionRouter *SessionRouterCallerSession) GetProviderClaimableBalance(sessionId_ [32]byte) (*big.Int, error) { - return _SessionRouter.Contract.GetProviderClaimableBalance(&_SessionRouter.CallOpts, sessionId_) -} - -// GetSessionId is a free data retrieval call binding the contract method 0x0f9de78a. -// -// Solidity: function getSessionId(address user_, address provider_, uint256 stake_, uint256 sessionNonce_) pure returns(bytes32) -func (_SessionRouter *SessionRouterCaller) GetSessionId(opts *bind.CallOpts, user_ common.Address, provider_ common.Address, stake_ *big.Int, sessionNonce_ *big.Int) ([32]byte, error) { - var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "getSessionId", user_, provider_, stake_, sessionNonce_) - - if err != nil { - return *new([32]byte), err - } - - out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) - - return out0, err - -} - -// GetSessionId is a free data retrieval call binding the contract method 0x0f9de78a. -// -// Solidity: function getSessionId(address user_, address provider_, uint256 stake_, uint256 sessionNonce_) pure returns(bytes32) -func (_SessionRouter *SessionRouterSession) GetSessionId(user_ common.Address, provider_ common.Address, stake_ *big.Int, sessionNonce_ *big.Int) ([32]byte, error) { - return _SessionRouter.Contract.GetSessionId(&_SessionRouter.CallOpts, user_, provider_, stake_, sessionNonce_) -} - -// GetSessionId is a free data retrieval call binding the contract method 0x0f9de78a. -// -// Solidity: function getSessionId(address user_, address provider_, uint256 stake_, uint256 sessionNonce_) pure returns(bytes32) -func (_SessionRouter *SessionRouterCallerSession) GetSessionId(user_ common.Address, provider_ common.Address, stake_ *big.Int, sessionNonce_ *big.Int) ([32]byte, error) { - return _SessionRouter.Contract.GetSessionId(&_SessionRouter.CallOpts, user_, provider_, stake_, sessionNonce_) -} - -// GetSessionsByUser is a free data retrieval call binding the contract method 0x4add952d. -// -// Solidity: function getSessionsByUser(address user, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_SessionRouter *SessionRouterCaller) GetSessionsByUser(opts *bind.CallOpts, user common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "getSessionsByUser", user, offset_, limit_) - - if err != nil { - return *new([][32]byte), err - } - - out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) - - return out0, err - -} - -// GetSessionsByUser is a free data retrieval call binding the contract method 0x4add952d. -// -// Solidity: function getSessionsByUser(address user, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_SessionRouter *SessionRouterSession) GetSessionsByUser(user common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - return _SessionRouter.Contract.GetSessionsByUser(&_SessionRouter.CallOpts, user, offset_, limit_) -} - -// GetSessionsByUser is a free data retrieval call binding the contract method 0x4add952d. -// -// Solidity: function getSessionsByUser(address user, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_SessionRouter *SessionRouterCallerSession) GetSessionsByUser(user common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - return _SessionRouter.Contract.GetSessionsByUser(&_SessionRouter.CallOpts, user, offset_, limit_) -} - -// GetTodaysBudget is a free data retrieval call binding the contract method 0x351ffeb0. -// -// Solidity: function getTodaysBudget(uint256 timestamp_) view returns(uint256) -func (_SessionRouter *SessionRouterCaller) GetTodaysBudget(opts *bind.CallOpts, timestamp_ *big.Int) (*big.Int, error) { - var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "getTodaysBudget", timestamp_) - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// GetTodaysBudget is a free data retrieval call binding the contract method 0x351ffeb0. -// -// Solidity: function getTodaysBudget(uint256 timestamp_) view returns(uint256) -func (_SessionRouter *SessionRouterSession) GetTodaysBudget(timestamp_ *big.Int) (*big.Int, error) { - return _SessionRouter.Contract.GetTodaysBudget(&_SessionRouter.CallOpts, timestamp_) -} - -// GetTodaysBudget is a free data retrieval call binding the contract method 0x351ffeb0. -// -// Solidity: function getTodaysBudget(uint256 timestamp_) view returns(uint256) -func (_SessionRouter *SessionRouterCallerSession) GetTodaysBudget(timestamp_ *big.Int) (*big.Int, error) { - return _SessionRouter.Contract.GetTodaysBudget(&_SessionRouter.CallOpts, timestamp_) -} - -// GetToken is a free data retrieval call binding the contract method 0x21df0da7. -// -// Solidity: function getToken() view returns(address) -func (_SessionRouter *SessionRouterCaller) GetToken(opts *bind.CallOpts) (common.Address, error) { - var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "getToken") - - if err != nil { - return *new(common.Address), err - } - - out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) - - return out0, err - -} - -// GetToken is a free data retrieval call binding the contract method 0x21df0da7. -// -// Solidity: function getToken() view returns(address) -func (_SessionRouter *SessionRouterSession) GetToken() (common.Address, error) { - return _SessionRouter.Contract.GetToken(&_SessionRouter.CallOpts) -} - -// GetToken is a free data retrieval call binding the contract method 0x21df0da7. -// -// Solidity: function getToken() view returns(address) -func (_SessionRouter *SessionRouterCallerSession) GetToken() (common.Address, error) { - return _SessionRouter.Contract.GetToken(&_SessionRouter.CallOpts) -} - -// ModelActiveBids is a free data retrieval call binding the contract method 0x3fd8e5e3. -// -// Solidity: function modelActiveBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_SessionRouter *SessionRouterCaller) ModelActiveBids(opts *bind.CallOpts, modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "modelActiveBids", modelId_, offset_, limit_) - - if err != nil { - return *new([][32]byte), err - } - - out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) - - return out0, err - -} - -// ModelActiveBids is a free data retrieval call binding the contract method 0x3fd8e5e3. -// -// Solidity: function modelActiveBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_SessionRouter *SessionRouterSession) ModelActiveBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - return _SessionRouter.Contract.ModelActiveBids(&_SessionRouter.CallOpts, modelId_, offset_, limit_) -} - -// ModelActiveBids is a free data retrieval call binding the contract method 0x3fd8e5e3. -// -// Solidity: function modelActiveBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_SessionRouter *SessionRouterCallerSession) ModelActiveBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - return _SessionRouter.Contract.ModelActiveBids(&_SessionRouter.CallOpts, modelId_, offset_, limit_) -} - -// ModelBids is a free data retrieval call binding the contract method 0x5954d1b3. -// -// Solidity: function modelBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_SessionRouter *SessionRouterCaller) ModelBids(opts *bind.CallOpts, modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "modelBids", modelId_, offset_, limit_) - - if err != nil { - return *new([][32]byte), err - } - - out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) - - return out0, err - -} - -// ModelBids is a free data retrieval call binding the contract method 0x5954d1b3. -// -// Solidity: function modelBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_SessionRouter *SessionRouterSession) ModelBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - return _SessionRouter.Contract.ModelBids(&_SessionRouter.CallOpts, modelId_, offset_, limit_) -} - -// ModelBids is a free data retrieval call binding the contract method 0x5954d1b3. -// -// Solidity: function modelBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_SessionRouter *SessionRouterCallerSession) ModelBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - return _SessionRouter.Contract.ModelBids(&_SessionRouter.CallOpts, modelId_, offset_, limit_) -} - -// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. -// -// Solidity: function owner() view returns(address) -func (_SessionRouter *SessionRouterCaller) Owner(opts *bind.CallOpts) (common.Address, error) { - var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "owner") - - if err != nil { - return *new(common.Address), err - } - - out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) - - return out0, err - -} - -// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. -// -// Solidity: function owner() view returns(address) -func (_SessionRouter *SessionRouterSession) Owner() (common.Address, error) { - return _SessionRouter.Contract.Owner(&_SessionRouter.CallOpts) -} - -// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. -// -// Solidity: function owner() view returns(address) -func (_SessionRouter *SessionRouterCallerSession) Owner() (common.Address, error) { - return _SessionRouter.Contract.Owner(&_SessionRouter.CallOpts) -} - -// Pools is a free data retrieval call binding the contract method 0xc5c51dca. -// -// Solidity: function pools() view returns((uint256,uint256,uint128,uint128)[]) -func (_SessionRouter *SessionRouterCaller) Pools(opts *bind.CallOpts) ([]ISessionStoragePool, error) { - var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "pools") - - if err != nil { - return *new([]ISessionStoragePool), err - } - - out0 := *abi.ConvertType(out[0], new([]ISessionStoragePool)).(*[]ISessionStoragePool) - - return out0, err - -} - -// Pools is a free data retrieval call binding the contract method 0xc5c51dca. -// -// Solidity: function pools() view returns((uint256,uint256,uint128,uint128)[]) -func (_SessionRouter *SessionRouterSession) Pools() ([]ISessionStoragePool, error) { - return _SessionRouter.Contract.Pools(&_SessionRouter.CallOpts) -} - -// Pools is a free data retrieval call binding the contract method 0xc5c51dca. -// -// Solidity: function pools() view returns((uint256,uint256,uint128,uint128)[]) -func (_SessionRouter *SessionRouterCallerSession) Pools() ([]ISessionStoragePool, error) { - return _SessionRouter.Contract.Pools(&_SessionRouter.CallOpts) -} - -// ProviderActiveBids is a free data retrieval call binding the contract method 0x6dd7d31c. -// -// Solidity: function providerActiveBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_SessionRouter *SessionRouterCaller) ProviderActiveBids(opts *bind.CallOpts, provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "providerActiveBids", provider_, offset_, limit_) - - if err != nil { - return *new([][32]byte), err - } - - out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) - - return out0, err - -} - -// ProviderActiveBids is a free data retrieval call binding the contract method 0x6dd7d31c. -// -// Solidity: function providerActiveBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_SessionRouter *SessionRouterSession) ProviderActiveBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - return _SessionRouter.Contract.ProviderActiveBids(&_SessionRouter.CallOpts, provider_, offset_, limit_) -} - -// ProviderActiveBids is a free data retrieval call binding the contract method 0x6dd7d31c. -// -// Solidity: function providerActiveBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_SessionRouter *SessionRouterCallerSession) ProviderActiveBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - return _SessionRouter.Contract.ProviderActiveBids(&_SessionRouter.CallOpts, provider_, offset_, limit_) -} - -// ProviderBids is a free data retrieval call binding the contract method 0x22fbda9a. -// -// Solidity: function providerBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_SessionRouter *SessionRouterCaller) ProviderBids(opts *bind.CallOpts, provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "providerBids", provider_, offset_, limit_) - - if err != nil { - return *new([][32]byte), err - } - - out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) - - return out0, err - -} - -// ProviderBids is a free data retrieval call binding the contract method 0x22fbda9a. -// -// Solidity: function providerBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_SessionRouter *SessionRouterSession) ProviderBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - return _SessionRouter.Contract.ProviderBids(&_SessionRouter.CallOpts, provider_, offset_, limit_) -} - -// ProviderBids is a free data retrieval call binding the contract method 0x22fbda9a. -// -// Solidity: function providerBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_SessionRouter *SessionRouterCallerSession) ProviderBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - return _SessionRouter.Contract.ProviderBids(&_SessionRouter.CallOpts, provider_, offset_, limit_) -} - -// ProviderMinimumStake is a free data retrieval call binding the contract method 0x9476c58e. -// -// Solidity: function providerMinimumStake() view returns(uint256) -func (_SessionRouter *SessionRouterCaller) ProviderMinimumStake(opts *bind.CallOpts) (*big.Int, error) { - var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "providerMinimumStake") - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// ProviderMinimumStake is a free data retrieval call binding the contract method 0x9476c58e. -// -// Solidity: function providerMinimumStake() view returns(uint256) -func (_SessionRouter *SessionRouterSession) ProviderMinimumStake() (*big.Int, error) { - return _SessionRouter.Contract.ProviderMinimumStake(&_SessionRouter.CallOpts) -} - -// ProviderMinimumStake is a free data retrieval call binding the contract method 0x9476c58e. -// -// Solidity: function providerMinimumStake() view returns(uint256) -func (_SessionRouter *SessionRouterCallerSession) ProviderMinimumStake() (*big.Int, error) { - return _SessionRouter.Contract.ProviderMinimumStake(&_SessionRouter.CallOpts) -} - -// Sessions is a free data retrieval call binding the contract method 0x7dbd2832. -// -// Solidity: function sessions(bytes32 sessionId) view returns((bytes32,address,address,bytes32,bytes32,uint256,uint256,bytes,uint256,uint256,uint256,uint256,uint256)) -func (_SessionRouter *SessionRouterCaller) Sessions(opts *bind.CallOpts, sessionId [32]byte) (ISessionStorageSession, error) { - var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "sessions", sessionId) - - if err != nil { - return *new(ISessionStorageSession), err - } - - out0 := *abi.ConvertType(out[0], new(ISessionStorageSession)).(*ISessionStorageSession) - - return out0, err - -} - -// Sessions is a free data retrieval call binding the contract method 0x7dbd2832. -// -// Solidity: function sessions(bytes32 sessionId) view returns((bytes32,address,address,bytes32,bytes32,uint256,uint256,bytes,uint256,uint256,uint256,uint256,uint256)) -func (_SessionRouter *SessionRouterSession) Sessions(sessionId [32]byte) (ISessionStorageSession, error) { - return _SessionRouter.Contract.Sessions(&_SessionRouter.CallOpts, sessionId) -} - -// Sessions is a free data retrieval call binding the contract method 0x7dbd2832. -// -// Solidity: function sessions(bytes32 sessionId) view returns((bytes32,address,address,bytes32,bytes32,uint256,uint256,bytes,uint256,uint256,uint256,uint256,uint256)) -func (_SessionRouter *SessionRouterCallerSession) Sessions(sessionId [32]byte) (ISessionStorageSession, error) { - return _SessionRouter.Contract.Sessions(&_SessionRouter.CallOpts, sessionId) -} - -// StakeToStipend is a free data retrieval call binding the contract method 0x0a23b21f. -// -// Solidity: function stakeToStipend(uint256 sessionStake_, uint256 timestamp_) view returns(uint256) -func (_SessionRouter *SessionRouterCaller) StakeToStipend(opts *bind.CallOpts, sessionStake_ *big.Int, timestamp_ *big.Int) (*big.Int, error) { - var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "stakeToStipend", sessionStake_, timestamp_) - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// StakeToStipend is a free data retrieval call binding the contract method 0x0a23b21f. -// -// Solidity: function stakeToStipend(uint256 sessionStake_, uint256 timestamp_) view returns(uint256) -func (_SessionRouter *SessionRouterSession) StakeToStipend(sessionStake_ *big.Int, timestamp_ *big.Int) (*big.Int, error) { - return _SessionRouter.Contract.StakeToStipend(&_SessionRouter.CallOpts, sessionStake_, timestamp_) -} - -// StakeToStipend is a free data retrieval call binding the contract method 0x0a23b21f. -// -// Solidity: function stakeToStipend(uint256 sessionStake_, uint256 timestamp_) view returns(uint256) -func (_SessionRouter *SessionRouterCallerSession) StakeToStipend(sessionStake_ *big.Int, timestamp_ *big.Int) (*big.Int, error) { - return _SessionRouter.Contract.StakeToStipend(&_SessionRouter.CallOpts, sessionStake_, timestamp_) -} - -// StartOfTheDay is a free data retrieval call binding the contract method 0xeedd0a72. -// -// Solidity: function startOfTheDay(uint256 timestamp_) pure returns(uint256) -func (_SessionRouter *SessionRouterCaller) StartOfTheDay(opts *bind.CallOpts, timestamp_ *big.Int) (*big.Int, error) { - var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "startOfTheDay", timestamp_) - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// StartOfTheDay is a free data retrieval call binding the contract method 0xeedd0a72. -// -// Solidity: function startOfTheDay(uint256 timestamp_) pure returns(uint256) -func (_SessionRouter *SessionRouterSession) StartOfTheDay(timestamp_ *big.Int) (*big.Int, error) { - return _SessionRouter.Contract.StartOfTheDay(&_SessionRouter.CallOpts, timestamp_) -} - -// StartOfTheDay is a free data retrieval call binding the contract method 0xeedd0a72. -// -// Solidity: function startOfTheDay(uint256 timestamp_) pure returns(uint256) -func (_SessionRouter *SessionRouterCallerSession) StartOfTheDay(timestamp_ *big.Int) (*big.Int, error) { - return _SessionRouter.Contract.StartOfTheDay(&_SessionRouter.CallOpts, timestamp_) -} - -// StipendToStake is a free data retrieval call binding the contract method 0xac3c19ce. -// -// Solidity: function stipendToStake(uint256 stipend_, uint256 timestamp_) view returns(uint256) -func (_SessionRouter *SessionRouterCaller) StipendToStake(opts *bind.CallOpts, stipend_ *big.Int, timestamp_ *big.Int) (*big.Int, error) { - var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "stipendToStake", stipend_, timestamp_) - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// StipendToStake is a free data retrieval call binding the contract method 0xac3c19ce. -// -// Solidity: function stipendToStake(uint256 stipend_, uint256 timestamp_) view returns(uint256) -func (_SessionRouter *SessionRouterSession) StipendToStake(stipend_ *big.Int, timestamp_ *big.Int) (*big.Int, error) { - return _SessionRouter.Contract.StipendToStake(&_SessionRouter.CallOpts, stipend_, timestamp_) -} - -// StipendToStake is a free data retrieval call binding the contract method 0xac3c19ce. -// -// Solidity: function stipendToStake(uint256 stipend_, uint256 timestamp_) view returns(uint256) -func (_SessionRouter *SessionRouterCallerSession) StipendToStake(stipend_ *big.Int, timestamp_ *big.Int) (*big.Int, error) { - return _SessionRouter.Contract.StipendToStake(&_SessionRouter.CallOpts, stipend_, timestamp_) -} - -// TotalMORSupply is a free data retrieval call binding the contract method 0xf1d5440c. -// -// Solidity: function totalMORSupply(uint256 timestamp_) view returns(uint256) -func (_SessionRouter *SessionRouterCaller) TotalMORSupply(opts *bind.CallOpts, timestamp_ *big.Int) (*big.Int, error) { - var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "totalMORSupply", timestamp_) - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// TotalMORSupply is a free data retrieval call binding the contract method 0xf1d5440c. -// -// Solidity: function totalMORSupply(uint256 timestamp_) view returns(uint256) -func (_SessionRouter *SessionRouterSession) TotalMORSupply(timestamp_ *big.Int) (*big.Int, error) { - return _SessionRouter.Contract.TotalMORSupply(&_SessionRouter.CallOpts, timestamp_) -} - -// TotalMORSupply is a free data retrieval call binding the contract method 0xf1d5440c. -// -// Solidity: function totalMORSupply(uint256 timestamp_) view returns(uint256) -func (_SessionRouter *SessionRouterCallerSession) TotalMORSupply(timestamp_ *big.Int) (*big.Int, error) { - return _SessionRouter.Contract.TotalMORSupply(&_SessionRouter.CallOpts, timestamp_) -} - -// WhenSessionEnds is a free data retrieval call binding the contract method 0x9bc08456. -// -// Solidity: function whenSessionEnds(uint256 sessionStake_, uint256 pricePerSecond_, uint256 openedAt_) view returns(uint256) -func (_SessionRouter *SessionRouterCaller) WhenSessionEnds(opts *bind.CallOpts, sessionStake_ *big.Int, pricePerSecond_ *big.Int, openedAt_ *big.Int) (*big.Int, error) { - var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "whenSessionEnds", sessionStake_, pricePerSecond_, openedAt_) - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// WhenSessionEnds is a free data retrieval call binding the contract method 0x9bc08456. -// -// Solidity: function whenSessionEnds(uint256 sessionStake_, uint256 pricePerSecond_, uint256 openedAt_) view returns(uint256) -func (_SessionRouter *SessionRouterSession) WhenSessionEnds(sessionStake_ *big.Int, pricePerSecond_ *big.Int, openedAt_ *big.Int) (*big.Int, error) { - return _SessionRouter.Contract.WhenSessionEnds(&_SessionRouter.CallOpts, sessionStake_, pricePerSecond_, openedAt_) -} - -// WhenSessionEnds is a free data retrieval call binding the contract method 0x9bc08456. -// -// Solidity: function whenSessionEnds(uint256 sessionStake_, uint256 pricePerSecond_, uint256 openedAt_) view returns(uint256) -func (_SessionRouter *SessionRouterCallerSession) WhenSessionEnds(sessionStake_ *big.Int, pricePerSecond_ *big.Int, openedAt_ *big.Int) (*big.Int, error) { - return _SessionRouter.Contract.WhenSessionEnds(&_SessionRouter.CallOpts, sessionStake_, pricePerSecond_, openedAt_) -} - -// WithdrawableUserStake is a free data retrieval call binding the contract method 0x65bf0e3c. -// -// Solidity: function withdrawableUserStake(address user_, uint8 iterations_) view returns(uint256 avail_, uint256 hold_) -func (_SessionRouter *SessionRouterCaller) WithdrawableUserStake(opts *bind.CallOpts, user_ common.Address, iterations_ uint8) (struct { - Avail *big.Int - Hold *big.Int -}, error) { - var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "withdrawableUserStake", user_, iterations_) - - outstruct := new(struct { - Avail *big.Int - Hold *big.Int - }) - if err != nil { - return *outstruct, err - } - - outstruct.Avail = *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - outstruct.Hold = *abi.ConvertType(out[1], new(*big.Int)).(**big.Int) - - return *outstruct, err - -} - -// WithdrawableUserStake is a free data retrieval call binding the contract method 0x65bf0e3c. -// -// Solidity: function withdrawableUserStake(address user_, uint8 iterations_) view returns(uint256 avail_, uint256 hold_) -func (_SessionRouter *SessionRouterSession) WithdrawableUserStake(user_ common.Address, iterations_ uint8) (struct { - Avail *big.Int - Hold *big.Int -}, error) { - return _SessionRouter.Contract.WithdrawableUserStake(&_SessionRouter.CallOpts, user_, iterations_) -} - -// WithdrawableUserStake is a free data retrieval call binding the contract method 0x65bf0e3c. -// -// Solidity: function withdrawableUserStake(address user_, uint8 iterations_) view returns(uint256 avail_, uint256 hold_) -func (_SessionRouter *SessionRouterCallerSession) WithdrawableUserStake(user_ common.Address, iterations_ uint8) (struct { - Avail *big.Int - Hold *big.Int -}, error) { - return _SessionRouter.Contract.WithdrawableUserStake(&_SessionRouter.CallOpts, user_, iterations_) -} - -// SessionRouterInit is a paid mutator transaction binding the contract method 0x44ceb8e0. -// -// Solidity: function __SessionRouter_init(address fundingAccount_, (uint256,uint256,uint128,uint128)[] pools_) returns() -func (_SessionRouter *SessionRouterTransactor) SessionRouterInit(opts *bind.TransactOpts, fundingAccount_ common.Address, pools_ []ISessionStoragePool) (*types.Transaction, error) { - return _SessionRouter.contract.Transact(opts, "__SessionRouter_init", fundingAccount_, pools_) -} - -// SessionRouterInit is a paid mutator transaction binding the contract method 0x44ceb8e0. -// -// Solidity: function __SessionRouter_init(address fundingAccount_, (uint256,uint256,uint128,uint128)[] pools_) returns() -func (_SessionRouter *SessionRouterSession) SessionRouterInit(fundingAccount_ common.Address, pools_ []ISessionStoragePool) (*types.Transaction, error) { - return _SessionRouter.Contract.SessionRouterInit(&_SessionRouter.TransactOpts, fundingAccount_, pools_) -} - -// SessionRouterInit is a paid mutator transaction binding the contract method 0x44ceb8e0. -// -// Solidity: function __SessionRouter_init(address fundingAccount_, (uint256,uint256,uint128,uint128)[] pools_) returns() -func (_SessionRouter *SessionRouterTransactorSession) SessionRouterInit(fundingAccount_ common.Address, pools_ []ISessionStoragePool) (*types.Transaction, error) { - return _SessionRouter.Contract.SessionRouterInit(&_SessionRouter.TransactOpts, fundingAccount_, pools_) -} - -// ClaimProviderBalance is a paid mutator transaction binding the contract method 0xf42d165a. -// -// Solidity: function claimProviderBalance(bytes32 sessionId_, uint256 amountToWithdraw_) returns() -func (_SessionRouter *SessionRouterTransactor) ClaimProviderBalance(opts *bind.TransactOpts, sessionId_ [32]byte, amountToWithdraw_ *big.Int) (*types.Transaction, error) { - return _SessionRouter.contract.Transact(opts, "claimProviderBalance", sessionId_, amountToWithdraw_) -} - -// ClaimProviderBalance is a paid mutator transaction binding the contract method 0xf42d165a. -// -// Solidity: function claimProviderBalance(bytes32 sessionId_, uint256 amountToWithdraw_) returns() -func (_SessionRouter *SessionRouterSession) ClaimProviderBalance(sessionId_ [32]byte, amountToWithdraw_ *big.Int) (*types.Transaction, error) { - return _SessionRouter.Contract.ClaimProviderBalance(&_SessionRouter.TransactOpts, sessionId_, amountToWithdraw_) -} - -// ClaimProviderBalance is a paid mutator transaction binding the contract method 0xf42d165a. -// -// Solidity: function claimProviderBalance(bytes32 sessionId_, uint256 amountToWithdraw_) returns() -func (_SessionRouter *SessionRouterTransactorSession) ClaimProviderBalance(sessionId_ [32]byte, amountToWithdraw_ *big.Int) (*types.Transaction, error) { - return _SessionRouter.Contract.ClaimProviderBalance(&_SessionRouter.TransactOpts, sessionId_, amountToWithdraw_) -} - -// CloseSession is a paid mutator transaction binding the contract method 0x42f77a31. -// -// Solidity: function closeSession(bytes receiptEncoded_, bytes signature_) returns() -func (_SessionRouter *SessionRouterTransactor) CloseSession(opts *bind.TransactOpts, receiptEncoded_ []byte, signature_ []byte) (*types.Transaction, error) { - return _SessionRouter.contract.Transact(opts, "closeSession", receiptEncoded_, signature_) -} - -// CloseSession is a paid mutator transaction binding the contract method 0x42f77a31. -// -// Solidity: function closeSession(bytes receiptEncoded_, bytes signature_) returns() -func (_SessionRouter *SessionRouterSession) CloseSession(receiptEncoded_ []byte, signature_ []byte) (*types.Transaction, error) { - return _SessionRouter.Contract.CloseSession(&_SessionRouter.TransactOpts, receiptEncoded_, signature_) -} - -// CloseSession is a paid mutator transaction binding the contract method 0x42f77a31. -// -// Solidity: function closeSession(bytes receiptEncoded_, bytes signature_) returns() -func (_SessionRouter *SessionRouterTransactorSession) CloseSession(receiptEncoded_ []byte, signature_ []byte) (*types.Transaction, error) { - return _SessionRouter.Contract.CloseSession(&_SessionRouter.TransactOpts, receiptEncoded_, signature_) -} - -// DeleteHistory is a paid mutator transaction binding the contract method 0xf074ca6b. -// -// Solidity: function deleteHistory(bytes32 sessionId_) returns() -func (_SessionRouter *SessionRouterTransactor) DeleteHistory(opts *bind.TransactOpts, sessionId_ [32]byte) (*types.Transaction, error) { - return _SessionRouter.contract.Transact(opts, "deleteHistory", sessionId_) -} - -// DeleteHistory is a paid mutator transaction binding the contract method 0xf074ca6b. -// -// Solidity: function deleteHistory(bytes32 sessionId_) returns() -func (_SessionRouter *SessionRouterSession) DeleteHistory(sessionId_ [32]byte) (*types.Transaction, error) { - return _SessionRouter.Contract.DeleteHistory(&_SessionRouter.TransactOpts, sessionId_) -} - -// DeleteHistory is a paid mutator transaction binding the contract method 0xf074ca6b. -// -// Solidity: function deleteHistory(bytes32 sessionId_) returns() -func (_SessionRouter *SessionRouterTransactorSession) DeleteHistory(sessionId_ [32]byte) (*types.Transaction, error) { - return _SessionRouter.Contract.DeleteHistory(&_SessionRouter.TransactOpts, sessionId_) -} - -// OpenSession is a paid mutator transaction binding the contract method 0x1f71815e. -// -// Solidity: function openSession(uint256 amount_, bytes providerApproval_, bytes signature_) returns(bytes32) -func (_SessionRouter *SessionRouterTransactor) OpenSession(opts *bind.TransactOpts, amount_ *big.Int, providerApproval_ []byte, signature_ []byte) (*types.Transaction, error) { - return _SessionRouter.contract.Transact(opts, "openSession", amount_, providerApproval_, signature_) -} - -// OpenSession is a paid mutator transaction binding the contract method 0x1f71815e. -// -// Solidity: function openSession(uint256 amount_, bytes providerApproval_, bytes signature_) returns(bytes32) -func (_SessionRouter *SessionRouterSession) OpenSession(amount_ *big.Int, providerApproval_ []byte, signature_ []byte) (*types.Transaction, error) { - return _SessionRouter.Contract.OpenSession(&_SessionRouter.TransactOpts, amount_, providerApproval_, signature_) -} - -// OpenSession is a paid mutator transaction binding the contract method 0x1f71815e. -// -// Solidity: function openSession(uint256 amount_, bytes providerApproval_, bytes signature_) returns(bytes32) -func (_SessionRouter *SessionRouterTransactorSession) OpenSession(amount_ *big.Int, providerApproval_ []byte, signature_ []byte) (*types.Transaction, error) { - return _SessionRouter.Contract.OpenSession(&_SessionRouter.TransactOpts, amount_, providerApproval_, signature_) -} - -// SetPoolConfig is a paid mutator transaction binding the contract method 0xd7178753. -// -// Solidity: function setPoolConfig(uint256 index, (uint256,uint256,uint128,uint128) pool) returns() -func (_SessionRouter *SessionRouterTransactor) SetPoolConfig(opts *bind.TransactOpts, index *big.Int, pool ISessionStoragePool) (*types.Transaction, error) { - return _SessionRouter.contract.Transact(opts, "setPoolConfig", index, pool) -} - -// SetPoolConfig is a paid mutator transaction binding the contract method 0xd7178753. -// -// Solidity: function setPoolConfig(uint256 index, (uint256,uint256,uint128,uint128) pool) returns() -func (_SessionRouter *SessionRouterSession) SetPoolConfig(index *big.Int, pool ISessionStoragePool) (*types.Transaction, error) { - return _SessionRouter.Contract.SetPoolConfig(&_SessionRouter.TransactOpts, index, pool) -} - -// SetPoolConfig is a paid mutator transaction binding the contract method 0xd7178753. -// -// Solidity: function setPoolConfig(uint256 index, (uint256,uint256,uint128,uint128) pool) returns() -func (_SessionRouter *SessionRouterTransactorSession) SetPoolConfig(index *big.Int, pool ISessionStoragePool) (*types.Transaction, error) { - return _SessionRouter.Contract.SetPoolConfig(&_SessionRouter.TransactOpts, index, pool) -} - -// WithdrawUserStake is a paid mutator transaction binding the contract method 0x0fd2c44e. -// -// Solidity: function withdrawUserStake(uint256 amountToWithdraw_, uint8 iterations_) returns() -func (_SessionRouter *SessionRouterTransactor) WithdrawUserStake(opts *bind.TransactOpts, amountToWithdraw_ *big.Int, iterations_ uint8) (*types.Transaction, error) { - return _SessionRouter.contract.Transact(opts, "withdrawUserStake", amountToWithdraw_, iterations_) -} - -// WithdrawUserStake is a paid mutator transaction binding the contract method 0x0fd2c44e. -// -// Solidity: function withdrawUserStake(uint256 amountToWithdraw_, uint8 iterations_) returns() -func (_SessionRouter *SessionRouterSession) WithdrawUserStake(amountToWithdraw_ *big.Int, iterations_ uint8) (*types.Transaction, error) { - return _SessionRouter.Contract.WithdrawUserStake(&_SessionRouter.TransactOpts, amountToWithdraw_, iterations_) -} - -// WithdrawUserStake is a paid mutator transaction binding the contract method 0x0fd2c44e. -// -// Solidity: function withdrawUserStake(uint256 amountToWithdraw_, uint8 iterations_) returns() -func (_SessionRouter *SessionRouterTransactorSession) WithdrawUserStake(amountToWithdraw_ *big.Int, iterations_ uint8) (*types.Transaction, error) { - return _SessionRouter.Contract.WithdrawUserStake(&_SessionRouter.TransactOpts, amountToWithdraw_, iterations_) -} - -// SessionRouterInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the SessionRouter contract. -type SessionRouterInitializedIterator struct { - Event *SessionRouterInitialized // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *SessionRouterInitializedIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(SessionRouterInitialized) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(SessionRouterInitialized) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *SessionRouterInitializedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *SessionRouterInitializedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// SessionRouterInitialized represents a Initialized event raised by the SessionRouter contract. -type SessionRouterInitialized struct { - StorageSlot [32]byte - Raw types.Log // Blockchain specific contextual infos -} - -// FilterInitialized is a free log retrieval operation binding the contract event 0xdc73717d728bcfa015e8117438a65319aa06e979ca324afa6e1ea645c28ea15d. -// -// Solidity: event Initialized(bytes32 storageSlot) -func (_SessionRouter *SessionRouterFilterer) FilterInitialized(opts *bind.FilterOpts) (*SessionRouterInitializedIterator, error) { - - logs, sub, err := _SessionRouter.contract.FilterLogs(opts, "Initialized") - if err != nil { - return nil, err - } - return &SessionRouterInitializedIterator{contract: _SessionRouter.contract, event: "Initialized", logs: logs, sub: sub}, nil -} - -// WatchInitialized is a free log subscription operation binding the contract event 0xdc73717d728bcfa015e8117438a65319aa06e979ca324afa6e1ea645c28ea15d. -// -// Solidity: event Initialized(bytes32 storageSlot) -func (_SessionRouter *SessionRouterFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *SessionRouterInitialized) (event.Subscription, error) { - - logs, sub, err := _SessionRouter.contract.WatchLogs(opts, "Initialized") - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(SessionRouterInitialized) - if err := _SessionRouter.contract.UnpackLog(event, "Initialized", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseInitialized is a log parse operation binding the contract event 0xdc73717d728bcfa015e8117438a65319aa06e979ca324afa6e1ea645c28ea15d. -// -// Solidity: event Initialized(bytes32 storageSlot) -func (_SessionRouter *SessionRouterFilterer) ParseInitialized(log types.Log) (*SessionRouterInitialized, error) { - event := new(SessionRouterInitialized) - if err := _SessionRouter.contract.UnpackLog(event, "Initialized", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// SessionRouterSessionClosedIterator is returned from FilterSessionClosed and is used to iterate over the raw logs and unpacked data for SessionClosed events raised by the SessionRouter contract. -type SessionRouterSessionClosedIterator struct { - Event *SessionRouterSessionClosed // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *SessionRouterSessionClosedIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(SessionRouterSessionClosed) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(SessionRouterSessionClosed) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *SessionRouterSessionClosedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *SessionRouterSessionClosedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// SessionRouterSessionClosed represents a SessionClosed event raised by the SessionRouter contract. -type SessionRouterSessionClosed struct { - User common.Address - SessionId [32]byte - ProviderId common.Address - Raw types.Log // Blockchain specific contextual infos -} - -// FilterSessionClosed is a free log retrieval operation binding the contract event 0x337fbb0a41a596db800dc836595a57815f967185e3596615c646f2455ac3914a. -// -// Solidity: event SessionClosed(address indexed user, bytes32 indexed sessionId, address indexed providerId) -func (_SessionRouter *SessionRouterFilterer) FilterSessionClosed(opts *bind.FilterOpts, user []common.Address, sessionId [][32]byte, providerId []common.Address) (*SessionRouterSessionClosedIterator, error) { - - var userRule []interface{} - for _, userItem := range user { - userRule = append(userRule, userItem) - } - var sessionIdRule []interface{} - for _, sessionIdItem := range sessionId { - sessionIdRule = append(sessionIdRule, sessionIdItem) - } - var providerIdRule []interface{} - for _, providerIdItem := range providerId { - providerIdRule = append(providerIdRule, providerIdItem) - } - - logs, sub, err := _SessionRouter.contract.FilterLogs(opts, "SessionClosed", userRule, sessionIdRule, providerIdRule) - if err != nil { - return nil, err - } - return &SessionRouterSessionClosedIterator{contract: _SessionRouter.contract, event: "SessionClosed", logs: logs, sub: sub}, nil -} - -// WatchSessionClosed is a free log subscription operation binding the contract event 0x337fbb0a41a596db800dc836595a57815f967185e3596615c646f2455ac3914a. -// -// Solidity: event SessionClosed(address indexed user, bytes32 indexed sessionId, address indexed providerId) -func (_SessionRouter *SessionRouterFilterer) WatchSessionClosed(opts *bind.WatchOpts, sink chan<- *SessionRouterSessionClosed, user []common.Address, sessionId [][32]byte, providerId []common.Address) (event.Subscription, error) { - - var userRule []interface{} - for _, userItem := range user { - userRule = append(userRule, userItem) - } - var sessionIdRule []interface{} - for _, sessionIdItem := range sessionId { - sessionIdRule = append(sessionIdRule, sessionIdItem) - } - var providerIdRule []interface{} - for _, providerIdItem := range providerId { - providerIdRule = append(providerIdRule, providerIdItem) - } - - logs, sub, err := _SessionRouter.contract.WatchLogs(opts, "SessionClosed", userRule, sessionIdRule, providerIdRule) - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(SessionRouterSessionClosed) - if err := _SessionRouter.contract.UnpackLog(event, "SessionClosed", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseSessionClosed is a log parse operation binding the contract event 0x337fbb0a41a596db800dc836595a57815f967185e3596615c646f2455ac3914a. -// -// Solidity: event SessionClosed(address indexed user, bytes32 indexed sessionId, address indexed providerId) -func (_SessionRouter *SessionRouterFilterer) ParseSessionClosed(log types.Log) (*SessionRouterSessionClosed, error) { - event := new(SessionRouterSessionClosed) - if err := _SessionRouter.contract.UnpackLog(event, "SessionClosed", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// SessionRouterSessionOpenedIterator is returned from FilterSessionOpened and is used to iterate over the raw logs and unpacked data for SessionOpened events raised by the SessionRouter contract. -type SessionRouterSessionOpenedIterator struct { - Event *SessionRouterSessionOpened // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *SessionRouterSessionOpenedIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(SessionRouterSessionOpened) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(SessionRouterSessionOpened) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *SessionRouterSessionOpenedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *SessionRouterSessionOpenedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// SessionRouterSessionOpened represents a SessionOpened event raised by the SessionRouter contract. -type SessionRouterSessionOpened struct { - User common.Address - SessionId [32]byte - ProviderId common.Address - Raw types.Log // Blockchain specific contextual infos -} - -// FilterSessionOpened is a free log retrieval operation binding the contract event 0x2bd7c890baf595977d256a6e784512c873ac58ba612b4895dbb7f784bfbf4839. -// -// Solidity: event SessionOpened(address indexed user, bytes32 indexed sessionId, address indexed providerId) -func (_SessionRouter *SessionRouterFilterer) FilterSessionOpened(opts *bind.FilterOpts, user []common.Address, sessionId [][32]byte, providerId []common.Address) (*SessionRouterSessionOpenedIterator, error) { - - var userRule []interface{} - for _, userItem := range user { - userRule = append(userRule, userItem) - } - var sessionIdRule []interface{} - for _, sessionIdItem := range sessionId { - sessionIdRule = append(sessionIdRule, sessionIdItem) - } - var providerIdRule []interface{} - for _, providerIdItem := range providerId { - providerIdRule = append(providerIdRule, providerIdItem) - } - - logs, sub, err := _SessionRouter.contract.FilterLogs(opts, "SessionOpened", userRule, sessionIdRule, providerIdRule) - if err != nil { - return nil, err - } - return &SessionRouterSessionOpenedIterator{contract: _SessionRouter.contract, event: "SessionOpened", logs: logs, sub: sub}, nil -} - -// WatchSessionOpened is a free log subscription operation binding the contract event 0x2bd7c890baf595977d256a6e784512c873ac58ba612b4895dbb7f784bfbf4839. -// -// Solidity: event SessionOpened(address indexed user, bytes32 indexed sessionId, address indexed providerId) -func (_SessionRouter *SessionRouterFilterer) WatchSessionOpened(opts *bind.WatchOpts, sink chan<- *SessionRouterSessionOpened, user []common.Address, sessionId [][32]byte, providerId []common.Address) (event.Subscription, error) { - - var userRule []interface{} - for _, userItem := range user { - userRule = append(userRule, userItem) - } - var sessionIdRule []interface{} - for _, sessionIdItem := range sessionId { - sessionIdRule = append(sessionIdRule, sessionIdItem) - } - var providerIdRule []interface{} - for _, providerIdItem := range providerId { - providerIdRule = append(providerIdRule, providerIdItem) - } - - logs, sub, err := _SessionRouter.contract.WatchLogs(opts, "SessionOpened", userRule, sessionIdRule, providerIdRule) - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(SessionRouterSessionOpened) - if err := _SessionRouter.contract.UnpackLog(event, "SessionOpened", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseSessionOpened is a log parse operation binding the contract event 0x2bd7c890baf595977d256a6e784512c873ac58ba612b4895dbb7f784bfbf4839. -// -// Solidity: event SessionOpened(address indexed user, bytes32 indexed sessionId, address indexed providerId) -func (_SessionRouter *SessionRouterFilterer) ParseSessionOpened(log types.Log) (*SessionRouterSessionOpened, error) { - event := new(SessionRouterSessionOpened) - if err := _SessionRouter.contract.UnpackLog(event, "SessionOpened", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} diff --git a/proxy-router/internal/blockchainapi/controller.go b/proxy-router/internal/blockchainapi/controller.go index 543d2843..37b9656c 100644 --- a/proxy-router/internal/blockchainapi/controller.go +++ b/proxy-router/internal/blockchainapi/controller.go @@ -104,7 +104,6 @@ func (c *BlockchainController) getProviderClaimableBalance(ctx *gin.Context) { // @Description Claim provider balance from session // @Tags sessions // @Produce json -// @Param claim body structs.AmountReq true "Claim" // @Param id path string true "Session ID" // @Success 200 {object} structs.TxRes // @Router /proxy/sessions/{id}/providerClaim [post] @@ -117,14 +116,7 @@ func (c *BlockchainController) claimProviderBalance(ctx *gin.Context) { return } - _, amount, err := c.getSendParams(ctx) - if err != nil { - c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) - return - } - - txHash, err := c.service.ClaimProviderBalance(ctx, params.ID.Hash, amount) + txHash, err := c.service.ClaimProviderBalance(ctx, params.ID.Hash) if err != nil { c.log.Error(err) ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) @@ -874,19 +866,10 @@ func (c *BlockchainController) createProvider(ctx *gin.Context) { // @Summary Deregister Provider // @Tags providers // @Produce json -// @Param id path string true "Provider Address" // @Success 200 {object} structs.TxRes // @Router /blockchain/providers/{id} [delete] func (c *BlockchainController) deregisterProvider(ctx *gin.Context) { - var params structs.PathEthAddrID - err := ctx.ShouldBindUri(¶ms) - if err != nil { - c.log.Error(err) - ctx.JSON(http.StatusBadRequest, structs.ErrRes{Error: err.Error()}) - return - } - - txHash, err := c.service.DeregisterProdiver(ctx, params.ID.Address) + txHash, err := c.service.DeregisterProdiver(ctx) if err != nil { c.log.Error(err) ctx.JSON(http.StatusInternalServerError, structs.ErrRes{Error: err.Error()}) diff --git a/proxy-router/internal/blockchainapi/event_listener.go b/proxy-router/internal/blockchainapi/event_listener.go index 95572135..48baa4d0 100644 --- a/proxy-router/internal/blockchainapi/event_listener.go +++ b/proxy-router/internal/blockchainapi/event_listener.go @@ -3,11 +3,11 @@ package blockchainapi import ( "context" - "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/sessionrouter" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/config" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/contracts" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/contracts/bindings/sessionrouter" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/registries" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/storages" "github.com/ethereum/go-ethereum/accounts/abi/bind" @@ -15,6 +15,7 @@ import ( type EventsListener struct { sessionRouter *registries.SessionRouter + marketplace *registries.Marketplace store *storages.SessionStorage tsk *lib.Task log *lib.Logger @@ -24,11 +25,12 @@ type EventsListener struct { logWatcher contracts.LogWatcher } -func NewEventsListener(client bind.ContractFilterer, store *storages.SessionStorage, sessionRouter *registries.SessionRouter, wallet interfaces.Wallet, modelConfigLoader *config.ModelConfigLoader, logWatcher contracts.LogWatcher, log *lib.Logger) *EventsListener { +func NewEventsListener(client bind.ContractFilterer, store *storages.SessionStorage, sessionRouter *registries.SessionRouter, marketplace *registries.Marketplace, wallet interfaces.Wallet, modelConfigLoader *config.ModelConfigLoader, logWatcher contracts.LogWatcher, log *lib.Logger) *EventsListener { return &EventsListener{ store: store, log: log, sessionRouter: sessionRouter, + marketplace: marketplace, client: client, wallet: wallet, modelConfigLoader: modelConfigLoader, @@ -75,15 +77,23 @@ func (e *EventsListener) controller(event interface{}) error { } func (e *EventsListener) handleSessionOpened(event *sessionrouter.SessionRouterSessionOpened) error { + ctx := context.Background() + sessionId := lib.BytesToString(event.SessionId[:]) e.log.Debugf("received open session router event, sessionId %s", sessionId) - session, err := e.sessionRouter.GetSession(context.Background(), event.SessionId) + session, err := e.sessionRouter.GetSession(ctx, event.SessionId) if err != nil { e.log.Errorf("failed to get session from blockchain: %s, sessionId %s", err, sessionId) return err } + bid, err := e.marketplace.GetBidById(ctx, session.BidId) + if err != nil { + e.log.Errorf("failed to get bid from blockchain: %s, sessionId %s", err, sessionId) + return err + } + privateKey, err := e.wallet.GetPrivateKey() if err != nil { e.log.Errorf("failed to get private key: %s", err) @@ -96,15 +106,15 @@ func (e *EventsListener) handleSessionOpened(event *sessionrouter.SessionRouterS return err } - if session.Provider.Hex() != address.Hex() && event.User.Hex() != address.Hex() { + if bid.Provider.Hex() != address.Hex() && event.User.Hex() != address.Hex() { e.log.Debugf("session provider/user is not me, skipping, sessionId %s", sessionId) return nil } - modelID := lib.BytesToString(session.ModelId[:]) + modelID := lib.BytesToString(bid.ModelId[:]) var modelConfig *config.ModelConfig - if session.Provider.Hex() == address.Hex() { + if bid.Provider.Hex() == address.Hex() { modelConfig = e.modelConfigLoader.ModelConfigFromID(modelID) err = e.store.AddSessionToModel(modelID, sessionId) if err != nil { @@ -117,7 +127,7 @@ func (e *EventsListener) handleSessionOpened(event *sessionrouter.SessionRouterS err = e.store.AddSession(&storages.Session{ Id: sessionId, UserAddr: event.User.Hex(), - ProviderAddr: session.Provider.Hex(), + ProviderAddr: bid.Provider.Hex(), EndsAt: session.EndsAt, ModelID: modelID, ModelName: modelConfig.ModelName, diff --git a/proxy-router/internal/blockchainapi/mappers.go b/proxy-router/internal/blockchainapi/mappers.go index de868cdd..ddc9a91b 100644 --- a/proxy-router/internal/blockchainapi/mappers.go +++ b/proxy-router/internal/blockchainapi/mappers.go @@ -3,14 +3,14 @@ package blockchainapi import ( "encoding/hex" - "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/marketplace" - "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/sessionrouter" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/blockchainapi/structs" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" + m "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/contracts/bindings/marketplace" + s "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/contracts/bindings/sessionrouter" "github.com/ethereum/go-ethereum/common" ) -func mapBids(bidIDs [][32]byte, bids []marketplace.IBidStorageBid) []*structs.Bid { +func mapBids(bidIDs [][32]byte, bids []m.IBidStorageBid) []*structs.Bid { result := make([]*structs.Bid, len(bidIDs)) for i, value := range bids { result[i] = mapBid(bidIDs[i], value) @@ -18,7 +18,7 @@ func mapBids(bidIDs [][32]byte, bids []marketplace.IBidStorageBid) []*structs.Bi return result } -func mapBid(bidID common.Hash, bid marketplace.IBidStorageBid) *structs.Bid { +func mapBid(bidID common.Hash, bid m.IBidStorageBid) *structs.Bid { return &structs.Bid{ Id: bidID, ModelAgentId: bid.ModelId, @@ -30,28 +30,28 @@ func mapBid(bidID common.Hash, bid marketplace.IBidStorageBid) *structs.Bid { } } -func mapSessions(sessions []sessionrouter.ISessionStorageSession) []*structs.Session { - result := make([]*structs.Session, len(sessions)) - for i, value := range sessions { - result[i] = mapSession(value) +func mapSessions(sessionIDs [][32]byte, sessions []s.ISessionStorageSession, bids []m.IBidStorageBid) []*structs.Session { + result := make([]*structs.Session, len(sessionIDs)) + for i := 0; i < len(sessionIDs); i++ { + result[i] = mapSession(sessionIDs[i], sessions[i], bids[i]) } return result } -func mapSession(s sessionrouter.ISessionStorageSession) *structs.Session { +func mapSession(ID common.Hash, ses s.ISessionStorageSession, bid m.IBidStorageBid) *structs.Session { return &structs.Session{ - Id: lib.BytesToString(s.Id[:]), - Provider: s.Provider, - User: s.User, - ModelAgentId: lib.BytesToString(s.ModelId[:]), - BidID: lib.BytesToString(s.BidId[:]), - Stake: s.Stake, - PricePerSecond: s.PricePerSecond, - CloseoutReceipt: hex.EncodeToString(s.CloseoutReceipt), - CloseoutType: s.CloseoutType, - ProviderWithdrawnAmount: s.ProviderWithdrawnAmount, - OpenedAt: s.OpenedAt, - EndsAt: s.EndsAt, - ClosedAt: s.ClosedAt, + Id: lib.BytesToString(ID[:]), + Provider: bid.Provider, + User: ses.User, + ModelAgentId: lib.BytesToString(bid.ModelId[:]), + BidID: lib.BytesToString(ses.BidId[:]), + Stake: ses.Stake, + PricePerSecond: bid.PricePerSecond, + CloseoutReceipt: hex.EncodeToString(ses.CloseoutReceipt), + CloseoutType: ses.CloseoutType, + ProviderWithdrawnAmount: ses.ProviderWithdrawnAmount, + OpenedAt: ses.OpenedAt, + EndsAt: ses.EndsAt, + ClosedAt: ses.ClosedAt, } } diff --git a/proxy-router/internal/blockchainapi/rating.go b/proxy-router/internal/blockchainapi/rating.go index 6c067a1b..aa76da97 100644 --- a/proxy-router/internal/blockchainapi/rating.go +++ b/proxy-router/internal/blockchainapi/rating.go @@ -4,12 +4,13 @@ import ( "math" "sort" - s "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/sessionrouter" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/blockchainapi/structs" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" + m "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/contracts/bindings/marketplace" + s "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/contracts/bindings/sessionrouter" ) -func rateBids(bidIds [][32]byte, bids []s.IBidStorageBid, pmStats []s.IStatsStorageProviderModelStats, mStats ModelStats, log lib.ILogger) []structs.ScoredBid { +func rateBids(bidIds [][32]byte, bids []m.IBidStorageBid, pmStats []s.IStatsStorageProviderModelStats, mStats ModelStats, log lib.ILogger) []structs.ScoredBid { scoredBids := make([]structs.ScoredBid, len(bids)) for i := range bids { @@ -40,7 +41,7 @@ func rateBids(bidIds [][32]byte, bids []s.IBidStorageBid, pmStats []s.IStatsStor return scoredBids } -func getScore(bid s.IBidStorageBid, pmStats s.IStatsStorageProviderModelStats, mStats ModelStats) float64 { +func getScore(bid m.IBidStorageBid, pmStats s.IStatsStorageProviderModelStats, mStats ModelStats) float64 { tpsWeight, ttftWeight, durationWeight, successWeight := 0.27, 0.11, 0.27, 0.35 count := int64(mStats.Count) diff --git a/proxy-router/internal/blockchainapi/rating_mock.go b/proxy-router/internal/blockchainapi/rating_mock.go index 5dd72757..19a9be82 100644 --- a/proxy-router/internal/blockchainapi/rating_mock.go +++ b/proxy-router/internal/blockchainapi/rating_mock.go @@ -4,7 +4,8 @@ import ( "math" "math/big" - s "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/sessionrouter" + m "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/contracts/bindings/marketplace" + s "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/contracts/bindings/sessionrouter" "github.com/ethereum/go-ethereum/common" ) @@ -15,7 +16,7 @@ type ModelStats struct { Count int } -func sampleDataTPS() ([][32]byte, []s.IBidStorageBid, []s.IStatsStorageProviderModelStats, ModelStats) { +func sampleDataTPS() ([][32]byte, []m.IBidStorageBid, []s.IStatsStorageProviderModelStats, ModelStats) { modelID := common.HexToHash("0x01") bidIds := [][32]byte{ {0x01}, @@ -23,7 +24,7 @@ func sampleDataTPS() ([][32]byte, []s.IBidStorageBid, []s.IStatsStorageProviderM {0x03}, } - bids := []s.IBidStorageBid{ + bids := []m.IBidStorageBid{ { PricePerSecond: ToDecimal(10, DecimalsMOR), Provider: common.HexToAddress("0x01"), diff --git a/proxy-router/internal/blockchainapi/rating_test.go b/proxy-router/internal/blockchainapi/rating_test.go index b1e085a4..7e4c03a0 100644 --- a/proxy-router/internal/blockchainapi/rating_test.go +++ b/proxy-router/internal/blockchainapi/rating_test.go @@ -4,8 +4,8 @@ import ( "math" "testing" - s "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/sessionrouter" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" + s "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/contracts/bindings/sessionrouter" "github.com/stretchr/testify/require" ) diff --git a/proxy-router/internal/blockchainapi/service.go b/proxy-router/internal/blockchainapi/service.go index 63434619..a576c7e2 100644 --- a/proxy-router/internal/blockchainapi/service.go +++ b/proxy-router/internal/blockchainapi/service.go @@ -8,11 +8,12 @@ import ( "sort" "strconv" - "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/sessionrouter" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/blockchainapi/structs" i "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/proxyapi" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/contracts/bindings/marketplace" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/contracts/bindings/sessionrouter" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/registries" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/storages" "github.com/gin-gonic/gin" @@ -199,7 +200,7 @@ func (s *BlockchainService) GetRatedBids(ctx context.Context, modelID common.Has return nil, err } - bidIDs, bids, providerModelStats, err := s.sessionRouter.GetAllBidsWithRating(ctx, modelID) + bidIDs, bids, providerModelStats, err := s.GetAllBidsWithRating(ctx, modelID) if err != nil { return nil, err } @@ -239,7 +240,7 @@ func (s *BlockchainService) CreateNewProvider(ctx context.Context, stake *lib.Bi return nil, lib.WrapError(ErrTxOpts, err) } - err = s.providerRegistry.CreateNewProvider(transactOpt, transactOpt.From, stake, endpoint) + err = s.providerRegistry.CreateNewProvider(transactOpt, stake, endpoint) if err != nil { return nil, lib.WrapError(ErrSendTx, err) } @@ -269,7 +270,7 @@ func (s *BlockchainService) CreateNewModel(ctx context.Context, modelID common.H return nil, lib.WrapError(ErrTxOpts, err) } - err = s.modelRegistry.CreateNewModel(transactOpt, modelID, ipfsID, fee, stake, transactOpt.From, name, tags) + err = s.modelRegistry.CreateNewModel(transactOpt, modelID, ipfsID, fee, stake, name, tags) if err != nil { return nil, lib.WrapError(ErrSendTx, err) } @@ -322,7 +323,7 @@ func (s *BlockchainService) CreateNewBid(ctx context.Context, modelID common.Has return nil, lib.WrapError(ErrTxOpts, err) } - err = s.marketplace.PostModelBid(transactOpt, transactOpt.From, modelID, &pricePerSecond.Int) + _, err = s.marketplace.PostModelBid(transactOpt, modelID, &pricePerSecond.Int) if err != nil { return nil, lib.WrapError(ErrSendTx, err) } @@ -358,7 +359,7 @@ func (s *BlockchainService) DeleteBid(ctx context.Context, bidId common.Hash) (c return tx, nil } -func (s *BlockchainService) DeregisterProdiver(ctx context.Context, provider common.Address) (common.Hash, error) { +func (s *BlockchainService) DeregisterProdiver(ctx context.Context) (common.Hash, error) { prKey, err := s.privateKey.GetPrivateKey() if err != nil { return common.Hash{}, lib.WrapError(ErrPrKey, err) @@ -369,7 +370,7 @@ func (s *BlockchainService) DeregisterProdiver(ctx context.Context, provider com return common.Hash{}, lib.WrapError(ErrTxOpts, err) } - tx, err := s.providerRegistry.DeregisterProvider(transactOpt, provider) + tx, err := s.providerRegistry.DeregisterProvider(transactOpt) if err != nil { return common.Hash{}, lib.WrapError(ErrSendTx, err) } @@ -406,7 +407,11 @@ func (s *BlockchainService) GetSession(ctx *gin.Context, sessionID common.Hash) if err != nil { return nil, err } - return mapSession(*ses), nil + bid, err := s.marketplace.GetBidById(ctx, ses.BidId) + if err != nil { + return nil, err + } + return mapSession(sessionID, *ses, *bid), nil } func (s *BlockchainService) GetProviderClaimableBalance(ctx *gin.Context, sessionID common.Hash) (*big.Int, error) { @@ -545,7 +550,7 @@ func (s *BlockchainService) GetTodaysBudget(ctx context.Context) (*big.Int, erro return s.sessionRouter.GetTodaysBudget(ctx) } -func (s *BlockchainService) ClaimProviderBalance(ctx context.Context, sessionID [32]byte, amount *big.Int) (common.Hash, error) { +func (s *BlockchainService) ClaimProviderBalance(ctx context.Context, sessionID [32]byte) (common.Hash, error) { prKey, err := s.privateKey.GetPrivateKey() if err != nil { return common.Hash{}, lib.WrapError(ErrPrKey, err) @@ -556,7 +561,7 @@ func (s *BlockchainService) ClaimProviderBalance(ctx context.Context, sessionID return common.Hash{}, lib.WrapError(ErrTxOpts, err) } - txHash, err := s.sessionRouter.ClaimProviderBalance(transactOpt, sessionID, amount) + txHash, err := s.sessionRouter.ClaimProviderBalance(transactOpt, sessionID) if err != nil { return common.Hash{}, err } @@ -570,23 +575,34 @@ func (s *BlockchainService) GetTokenSupply(ctx context.Context) (*big.Int, error func (s *BlockchainService) GetSessions(ctx *gin.Context, user, provider common.Address, offset *big.Int, limit uint8) ([]*structs.Session, error) { var ( + ids [][32]byte sessions []sessionrouter.ISessionStorageSession err error ) if (user != common.Address{}) { - sessions, err = s.sessionRouter.GetSessionsByUser(ctx, common.HexToAddress(ctx.Query("user")), offset, limit) + ids, sessions, err = s.sessionRouter.GetSessionsByUser(ctx, common.HexToAddress(ctx.Query("user")), offset, limit) } else { // hasProvider - sessions, err = s.sessionRouter.GetSessionsByProvider(ctx, common.HexToAddress(ctx.Query("provider")), offset, limit) + ids, sessions, err = s.sessionRouter.GetSessionsByProvider(ctx, common.HexToAddress(ctx.Query("provider")), offset, limit) } if err != nil { return nil, err } - return mapSessions(sessions), nil + + bidIDs := make([][32]byte, len(sessions)) + for i := 0; i < len(sessions); i++ { + bidIDs[i] = sessions[i].BidId + } + + _, bids, err := s.marketplace.GetMultipleBids(ctx, bidIDs) + if err != nil { + return nil, err + } + + return mapSessions(ids, sessions, bids), nil } func (s *BlockchainService) GetTransactions(ctx context.Context, page uint64, limit uint8) ([]structs.RawTransaction, error) { - prKey, err := s.privateKey.GetPrivateKey() if err != nil { return nil, lib.WrapError(ErrPrKey, err) @@ -682,7 +698,7 @@ func (s *BlockchainService) OpenSessionByModelId(ctx context.Context, modelID co return common.Hash{}, lib.WrapError(ErrModel, err) } - bidIDs, bids, providerStats, err := s.sessionRouter.GetAllBidsWithRating(ctx, modelID) + bidIDs, bids, providerStats, err := s.GetAllBidsWithRating(ctx, modelID) if err != nil { return common.Hash{}, lib.WrapError(ErrBid, err) } @@ -710,6 +726,45 @@ func (s *BlockchainService) OpenSessionByModelId(ctx context.Context, modelID co return common.Hash{}, fmt.Errorf("no provider accepting session") } +func (s *BlockchainService) GetAllBidsWithRating(ctx context.Context, modelAgentID [32]byte) ([][32]byte, []marketplace.IBidStorageBid, []sessionrouter.IStatsStorageProviderModelStats, error) { + batchSize := uint8(255) + offset := big.NewInt(0) + bids := make([]marketplace.IBidStorageBid, 0) + ids := make([][32]byte, 0) + providerModelStats := make([]sessionrouter.IStatsStorageProviderModelStats, 0) + + for { + if ctx.Err() != nil { + return nil, nil, nil, ctx.Err() + } + + idsBatch, bidsBatch, err := s.marketplace.GetActiveBidsByModel(ctx, modelAgentID, offset, batchSize) + if err != nil { + return nil, nil, nil, err + } + + ids = append(ids, idsBatch...) + bids = append(bids, bidsBatch...) + + for _, bid := range bidsBatch { + //TODO: replace with multicall + providerModelStat, err := s.sessionRouter.GetProviderModelStats(ctx, modelAgentID, bid.Provider) + if err != nil { + return nil, nil, nil, err + } + providerModelStats = append(providerModelStats, *providerModelStat) + } + + if len(bidsBatch) < int(batchSize) { + break + } + + offset.Add(offset, big.NewInt(int64(batchSize))) + } + + return ids, bids, providerModelStats, nil +} + func (s *BlockchainService) tryOpenSession(ctx context.Context, bid structs.ScoredBid, duration *big.Int, supply *big.Int, budget *big.Int, userAddr common.Address) (common.Hash, error) { provider, err := s.providerRegistry.GetProviderById(ctx, bid.Bid.Provider) if err != nil { diff --git a/proxy-router/internal/lib/ethclient.go b/proxy-router/internal/lib/ethclient.go index 9128d660..640ddd84 100644 --- a/proxy-router/internal/lib/ethclient.go +++ b/proxy-router/internal/lib/ethclient.go @@ -1,12 +1,12 @@ package lib import ( - "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/lumerintoken" - "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/marketplace" - "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/modelregistry" - "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/morpheustoken" - "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/providerregistry" - "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/sessionrouter" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/contracts/bindings/lumerintoken" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/contracts/bindings/marketplace" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/contracts/bindings/modelregistry" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/contracts/bindings/morpheustoken" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/contracts/bindings/providerregistry" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/contracts/bindings/sessionrouter" "github.com/ethereum/go-ethereum/accounts/abi" "github.com/ethereum/go-ethereum/common" ) diff --git a/proxy-router/contracts/lumerintoken/LumerinToken.go b/proxy-router/internal/repositories/contracts/bindings/lumerintoken/LumerinToken.go similarity index 88% rename from proxy-router/contracts/lumerintoken/LumerinToken.go rename to proxy-router/internal/repositories/contracts/bindings/lumerintoken/LumerinToken.go index 22be7971..f498411c 100644 --- a/proxy-router/contracts/lumerintoken/LumerinToken.go +++ b/proxy-router/internal/repositories/contracts/bindings/lumerintoken/LumerinToken.go @@ -31,7 +31,7 @@ var ( // LumerinTokenMetaData contains all meta data concerning the LumerinToken contract. var LumerinTokenMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + ABI: "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"INITIAL_SUPPLUY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", } // LumerinTokenABI is the input ABI used to generate the binding from. @@ -180,6 +180,37 @@ func (_LumerinToken *LumerinTokenTransactorRaw) Transact(opts *bind.TransactOpts return _LumerinToken.Contract.contract.Transact(opts, method, params...) } +// INITIALSUPPLUY is a free data retrieval call binding the contract method 0x5ce0b492. +// +// Solidity: function INITIAL_SUPPLUY() view returns(uint256) +func (_LumerinToken *LumerinTokenCaller) INITIALSUPPLUY(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _LumerinToken.contract.Call(opts, &out, "INITIAL_SUPPLUY") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// INITIALSUPPLUY is a free data retrieval call binding the contract method 0x5ce0b492. +// +// Solidity: function INITIAL_SUPPLUY() view returns(uint256) +func (_LumerinToken *LumerinTokenSession) INITIALSUPPLUY() (*big.Int, error) { + return _LumerinToken.Contract.INITIALSUPPLUY(&_LumerinToken.CallOpts) +} + +// INITIALSUPPLUY is a free data retrieval call binding the contract method 0x5ce0b492. +// +// Solidity: function INITIAL_SUPPLUY() view returns(uint256) +func (_LumerinToken *LumerinTokenCallerSession) INITIALSUPPLUY() (*big.Int, error) { + return _LumerinToken.Contract.INITIALSUPPLUY(&_LumerinToken.CallOpts) +} + // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. // // Solidity: function allowance(address owner, address spender) view returns(uint256) diff --git a/proxy-router/internal/repositories/contracts/bindings/marketplace/Marketplace.go b/proxy-router/internal/repositories/contracts/bindings/marketplace/Marketplace.go new file mode 100644 index 00000000..2637178c --- /dev/null +++ b/proxy-router/internal/repositories/contracts/bindings/marketplace/Marketplace.go @@ -0,0 +1,1700 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package marketplace + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// IBidStorageBid is an auto generated low-level Go binding around an user-defined struct. +type IBidStorageBid struct { + Provider common.Address + ModelId [32]byte + PricePerSecond *big.Int + Nonce *big.Int + CreatedAt *big.Int + DeletedAt *big.Int +} + +// IModelStorageModel is an auto generated low-level Go binding around an user-defined struct. +type IModelStorageModel struct { + IpfsCID [32]byte + Fee *big.Int + Stake *big.Int + Owner common.Address + Name string + Tags []string + CreatedAt *big.Int + IsDeleted bool +} + +// IProviderStorageProvider is an auto generated low-level Go binding around an user-defined struct. +type IProviderStorageProvider struct { + Endpoint string + Stake *big.Int + CreatedAt *big.Int + LimitPeriodEnd *big.Int + LimitPeriodEarned *big.Int + IsDeleted bool +} + +// MarketplaceMetaData contains all meta data concerning the Marketplace contract. +var MarketplaceMetaData = &bind.MetaData{ + ABI: "[{\"inputs\":[],\"name\":\"MarketplaceActiveBidNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MarketplaceModelNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MarketplaceProviderNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account_\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"storageSlot\",\"type\":\"bytes32\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bidFee\",\"type\":\"uint256\"}],\"name\":\"MaretplaceFeeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"MarketplaceBidDeleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"MarketplaceBidPosted\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BIDS_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DIAMOND_OWNABLE_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MARKET_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MODELS_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROVIDERS_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token_\",\"type\":\"address\"}],\"name\":\"__Marketplace_init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bidId_\",\"type\":\"bytes32\"}],\"name\":\"deleteModelBid\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getActiveModels\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getActiveProviders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bidId_\",\"type\":\"bytes32\"}],\"name\":\"getBid\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"pricePerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"deletedAt\",\"type\":\"uint128\"}],\"internalType\":\"structIBidStorage.Bid\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBidFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"nonce_\",\"type\":\"uint256\"}],\"name\":\"getBidId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFeeBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"}],\"name\":\"getIsModelActive\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"}],\"name\":\"getIsProviderActive\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"}],\"name\":\"getModel\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"ipfsCID\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"isDeleted\",\"type\":\"bool\"}],\"internalType\":\"structIModelStorage.Model\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getModelActiveBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getModelBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getModelIds\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getModelMinimumStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"}],\"name\":\"getProvider\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"endpoint\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"limitPeriodEnd\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"limitPeriodEarned\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isDeleted\",\"type\":\"bool\"}],\"internalType\":\"structIProviderStorage.Provider\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getProviderActiveBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getProviderBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProviderMinimumStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"}],\"name\":\"getProviderModelId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bidId_\",\"type\":\"bytes32\"}],\"name\":\"isBidActive\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"pricePerSecond_\",\"type\":\"uint256\"}],\"name\":\"postModelBid\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"bidId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bidFee_\",\"type\":\"uint256\"}],\"name\":\"setMarketplaceBidFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", +} + +// MarketplaceABI is the input ABI used to generate the binding from. +// Deprecated: Use MarketplaceMetaData.ABI instead. +var MarketplaceABI = MarketplaceMetaData.ABI + +// Marketplace is an auto generated Go binding around an Ethereum contract. +type Marketplace struct { + MarketplaceCaller // Read-only binding to the contract + MarketplaceTransactor // Write-only binding to the contract + MarketplaceFilterer // Log filterer for contract events +} + +// MarketplaceCaller is an auto generated read-only Go binding around an Ethereum contract. +type MarketplaceCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// MarketplaceTransactor is an auto generated write-only Go binding around an Ethereum contract. +type MarketplaceTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// MarketplaceFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type MarketplaceFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// MarketplaceSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type MarketplaceSession struct { + Contract *Marketplace // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// MarketplaceCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type MarketplaceCallerSession struct { + Contract *MarketplaceCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// MarketplaceTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type MarketplaceTransactorSession struct { + Contract *MarketplaceTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// MarketplaceRaw is an auto generated low-level Go binding around an Ethereum contract. +type MarketplaceRaw struct { + Contract *Marketplace // Generic contract binding to access the raw methods on +} + +// MarketplaceCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type MarketplaceCallerRaw struct { + Contract *MarketplaceCaller // Generic read-only contract binding to access the raw methods on +} + +// MarketplaceTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type MarketplaceTransactorRaw struct { + Contract *MarketplaceTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewMarketplace creates a new instance of Marketplace, bound to a specific deployed contract. +func NewMarketplace(address common.Address, backend bind.ContractBackend) (*Marketplace, error) { + contract, err := bindMarketplace(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &Marketplace{MarketplaceCaller: MarketplaceCaller{contract: contract}, MarketplaceTransactor: MarketplaceTransactor{contract: contract}, MarketplaceFilterer: MarketplaceFilterer{contract: contract}}, nil +} + +// NewMarketplaceCaller creates a new read-only instance of Marketplace, bound to a specific deployed contract. +func NewMarketplaceCaller(address common.Address, caller bind.ContractCaller) (*MarketplaceCaller, error) { + contract, err := bindMarketplace(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &MarketplaceCaller{contract: contract}, nil +} + +// NewMarketplaceTransactor creates a new write-only instance of Marketplace, bound to a specific deployed contract. +func NewMarketplaceTransactor(address common.Address, transactor bind.ContractTransactor) (*MarketplaceTransactor, error) { + contract, err := bindMarketplace(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &MarketplaceTransactor{contract: contract}, nil +} + +// NewMarketplaceFilterer creates a new log filterer instance of Marketplace, bound to a specific deployed contract. +func NewMarketplaceFilterer(address common.Address, filterer bind.ContractFilterer) (*MarketplaceFilterer, error) { + contract, err := bindMarketplace(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &MarketplaceFilterer{contract: contract}, nil +} + +// bindMarketplace binds a generic wrapper to an already deployed contract. +func bindMarketplace(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := MarketplaceMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Marketplace *MarketplaceRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Marketplace.Contract.MarketplaceCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Marketplace *MarketplaceRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Marketplace.Contract.MarketplaceTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Marketplace *MarketplaceRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Marketplace.Contract.MarketplaceTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Marketplace *MarketplaceCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Marketplace.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Marketplace *MarketplaceTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Marketplace.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Marketplace *MarketplaceTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Marketplace.Contract.contract.Transact(opts, method, params...) +} + +// BIDSSTORAGESLOT is a free data retrieval call binding the contract method 0x266ccff0. +// +// Solidity: function BIDS_STORAGE_SLOT() view returns(bytes32) +func (_Marketplace *MarketplaceCaller) BIDSSTORAGESLOT(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _Marketplace.contract.Call(opts, &out, "BIDS_STORAGE_SLOT") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// BIDSSTORAGESLOT is a free data retrieval call binding the contract method 0x266ccff0. +// +// Solidity: function BIDS_STORAGE_SLOT() view returns(bytes32) +func (_Marketplace *MarketplaceSession) BIDSSTORAGESLOT() ([32]byte, error) { + return _Marketplace.Contract.BIDSSTORAGESLOT(&_Marketplace.CallOpts) +} + +// BIDSSTORAGESLOT is a free data retrieval call binding the contract method 0x266ccff0. +// +// Solidity: function BIDS_STORAGE_SLOT() view returns(bytes32) +func (_Marketplace *MarketplaceCallerSession) BIDSSTORAGESLOT() ([32]byte, error) { + return _Marketplace.Contract.BIDSSTORAGESLOT(&_Marketplace.CallOpts) +} + +// DIAMONDOWNABLESTORAGESLOT is a free data retrieval call binding the contract method 0x4ac3371e. +// +// Solidity: function DIAMOND_OWNABLE_STORAGE_SLOT() view returns(bytes32) +func (_Marketplace *MarketplaceCaller) DIAMONDOWNABLESTORAGESLOT(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _Marketplace.contract.Call(opts, &out, "DIAMOND_OWNABLE_STORAGE_SLOT") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// DIAMONDOWNABLESTORAGESLOT is a free data retrieval call binding the contract method 0x4ac3371e. +// +// Solidity: function DIAMOND_OWNABLE_STORAGE_SLOT() view returns(bytes32) +func (_Marketplace *MarketplaceSession) DIAMONDOWNABLESTORAGESLOT() ([32]byte, error) { + return _Marketplace.Contract.DIAMONDOWNABLESTORAGESLOT(&_Marketplace.CallOpts) +} + +// DIAMONDOWNABLESTORAGESLOT is a free data retrieval call binding the contract method 0x4ac3371e. +// +// Solidity: function DIAMOND_OWNABLE_STORAGE_SLOT() view returns(bytes32) +func (_Marketplace *MarketplaceCallerSession) DIAMONDOWNABLESTORAGESLOT() ([32]byte, error) { + return _Marketplace.Contract.DIAMONDOWNABLESTORAGESLOT(&_Marketplace.CallOpts) +} + +// MARKETSTORAGESLOT is a free data retrieval call binding the contract method 0x2afa2c86. +// +// Solidity: function MARKET_STORAGE_SLOT() view returns(bytes32) +func (_Marketplace *MarketplaceCaller) MARKETSTORAGESLOT(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _Marketplace.contract.Call(opts, &out, "MARKET_STORAGE_SLOT") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// MARKETSTORAGESLOT is a free data retrieval call binding the contract method 0x2afa2c86. +// +// Solidity: function MARKET_STORAGE_SLOT() view returns(bytes32) +func (_Marketplace *MarketplaceSession) MARKETSTORAGESLOT() ([32]byte, error) { + return _Marketplace.Contract.MARKETSTORAGESLOT(&_Marketplace.CallOpts) +} + +// MARKETSTORAGESLOT is a free data retrieval call binding the contract method 0x2afa2c86. +// +// Solidity: function MARKET_STORAGE_SLOT() view returns(bytes32) +func (_Marketplace *MarketplaceCallerSession) MARKETSTORAGESLOT() ([32]byte, error) { + return _Marketplace.Contract.MARKETSTORAGESLOT(&_Marketplace.CallOpts) +} + +// MODELSSTORAGESLOT is a free data retrieval call binding the contract method 0x6f276c1e. +// +// Solidity: function MODELS_STORAGE_SLOT() view returns(bytes32) +func (_Marketplace *MarketplaceCaller) MODELSSTORAGESLOT(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _Marketplace.contract.Call(opts, &out, "MODELS_STORAGE_SLOT") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// MODELSSTORAGESLOT is a free data retrieval call binding the contract method 0x6f276c1e. +// +// Solidity: function MODELS_STORAGE_SLOT() view returns(bytes32) +func (_Marketplace *MarketplaceSession) MODELSSTORAGESLOT() ([32]byte, error) { + return _Marketplace.Contract.MODELSSTORAGESLOT(&_Marketplace.CallOpts) +} + +// MODELSSTORAGESLOT is a free data retrieval call binding the contract method 0x6f276c1e. +// +// Solidity: function MODELS_STORAGE_SLOT() view returns(bytes32) +func (_Marketplace *MarketplaceCallerSession) MODELSSTORAGESLOT() ([32]byte, error) { + return _Marketplace.Contract.MODELSSTORAGESLOT(&_Marketplace.CallOpts) +} + +// PROVIDERSSTORAGESLOT is a free data retrieval call binding the contract method 0xc51830f6. +// +// Solidity: function PROVIDERS_STORAGE_SLOT() view returns(bytes32) +func (_Marketplace *MarketplaceCaller) PROVIDERSSTORAGESLOT(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _Marketplace.contract.Call(opts, &out, "PROVIDERS_STORAGE_SLOT") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// PROVIDERSSTORAGESLOT is a free data retrieval call binding the contract method 0xc51830f6. +// +// Solidity: function PROVIDERS_STORAGE_SLOT() view returns(bytes32) +func (_Marketplace *MarketplaceSession) PROVIDERSSTORAGESLOT() ([32]byte, error) { + return _Marketplace.Contract.PROVIDERSSTORAGESLOT(&_Marketplace.CallOpts) +} + +// PROVIDERSSTORAGESLOT is a free data retrieval call binding the contract method 0xc51830f6. +// +// Solidity: function PROVIDERS_STORAGE_SLOT() view returns(bytes32) +func (_Marketplace *MarketplaceCallerSession) PROVIDERSSTORAGESLOT() ([32]byte, error) { + return _Marketplace.Contract.PROVIDERSSTORAGESLOT(&_Marketplace.CallOpts) +} + +// GetActiveModels is a free data retrieval call binding the contract method 0xac59585c. +// +// Solidity: function getActiveModels(uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_Marketplace *MarketplaceCaller) GetActiveModels(opts *bind.CallOpts, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + var out []interface{} + err := _Marketplace.contract.Call(opts, &out, "getActiveModels", offset_, limit_) + + if err != nil { + return *new([][32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) + + return out0, err + +} + +// GetActiveModels is a free data retrieval call binding the contract method 0xac59585c. +// +// Solidity: function getActiveModels(uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_Marketplace *MarketplaceSession) GetActiveModels(offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _Marketplace.Contract.GetActiveModels(&_Marketplace.CallOpts, offset_, limit_) +} + +// GetActiveModels is a free data retrieval call binding the contract method 0xac59585c. +// +// Solidity: function getActiveModels(uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_Marketplace *MarketplaceCallerSession) GetActiveModels(offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _Marketplace.Contract.GetActiveModels(&_Marketplace.CallOpts, offset_, limit_) +} + +// GetActiveProviders is a free data retrieval call binding the contract method 0xd5472642. +// +// Solidity: function getActiveProviders(uint256 offset_, uint256 limit_) view returns(address[]) +func (_Marketplace *MarketplaceCaller) GetActiveProviders(opts *bind.CallOpts, offset_ *big.Int, limit_ *big.Int) ([]common.Address, error) { + var out []interface{} + err := _Marketplace.contract.Call(opts, &out, "getActiveProviders", offset_, limit_) + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// GetActiveProviders is a free data retrieval call binding the contract method 0xd5472642. +// +// Solidity: function getActiveProviders(uint256 offset_, uint256 limit_) view returns(address[]) +func (_Marketplace *MarketplaceSession) GetActiveProviders(offset_ *big.Int, limit_ *big.Int) ([]common.Address, error) { + return _Marketplace.Contract.GetActiveProviders(&_Marketplace.CallOpts, offset_, limit_) +} + +// GetActiveProviders is a free data retrieval call binding the contract method 0xd5472642. +// +// Solidity: function getActiveProviders(uint256 offset_, uint256 limit_) view returns(address[]) +func (_Marketplace *MarketplaceCallerSession) GetActiveProviders(offset_ *big.Int, limit_ *big.Int) ([]common.Address, error) { + return _Marketplace.Contract.GetActiveProviders(&_Marketplace.CallOpts, offset_, limit_) +} + +// GetBid is a free data retrieval call binding the contract method 0x91704e1e. +// +// Solidity: function getBid(bytes32 bidId_) view returns((address,bytes32,uint256,uint256,uint128,uint128)) +func (_Marketplace *MarketplaceCaller) GetBid(opts *bind.CallOpts, bidId_ [32]byte) (IBidStorageBid, error) { + var out []interface{} + err := _Marketplace.contract.Call(opts, &out, "getBid", bidId_) + + if err != nil { + return *new(IBidStorageBid), err + } + + out0 := *abi.ConvertType(out[0], new(IBidStorageBid)).(*IBidStorageBid) + + return out0, err + +} + +// GetBid is a free data retrieval call binding the contract method 0x91704e1e. +// +// Solidity: function getBid(bytes32 bidId_) view returns((address,bytes32,uint256,uint256,uint128,uint128)) +func (_Marketplace *MarketplaceSession) GetBid(bidId_ [32]byte) (IBidStorageBid, error) { + return _Marketplace.Contract.GetBid(&_Marketplace.CallOpts, bidId_) +} + +// GetBid is a free data retrieval call binding the contract method 0x91704e1e. +// +// Solidity: function getBid(bytes32 bidId_) view returns((address,bytes32,uint256,uint256,uint128,uint128)) +func (_Marketplace *MarketplaceCallerSession) GetBid(bidId_ [32]byte) (IBidStorageBid, error) { + return _Marketplace.Contract.GetBid(&_Marketplace.CallOpts, bidId_) +} + +// GetBidFee is a free data retrieval call binding the contract method 0x8dbb4647. +// +// Solidity: function getBidFee() view returns(uint256) +func (_Marketplace *MarketplaceCaller) GetBidFee(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _Marketplace.contract.Call(opts, &out, "getBidFee") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetBidFee is a free data retrieval call binding the contract method 0x8dbb4647. +// +// Solidity: function getBidFee() view returns(uint256) +func (_Marketplace *MarketplaceSession) GetBidFee() (*big.Int, error) { + return _Marketplace.Contract.GetBidFee(&_Marketplace.CallOpts) +} + +// GetBidFee is a free data retrieval call binding the contract method 0x8dbb4647. +// +// Solidity: function getBidFee() view returns(uint256) +func (_Marketplace *MarketplaceCallerSession) GetBidFee() (*big.Int, error) { + return _Marketplace.Contract.GetBidFee(&_Marketplace.CallOpts) +} + +// GetBidId is a free data retrieval call binding the contract method 0x747ddd5b. +// +// Solidity: function getBidId(address provider_, bytes32 modelId_, uint256 nonce_) pure returns(bytes32) +func (_Marketplace *MarketplaceCaller) GetBidId(opts *bind.CallOpts, provider_ common.Address, modelId_ [32]byte, nonce_ *big.Int) ([32]byte, error) { + var out []interface{} + err := _Marketplace.contract.Call(opts, &out, "getBidId", provider_, modelId_, nonce_) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// GetBidId is a free data retrieval call binding the contract method 0x747ddd5b. +// +// Solidity: function getBidId(address provider_, bytes32 modelId_, uint256 nonce_) pure returns(bytes32) +func (_Marketplace *MarketplaceSession) GetBidId(provider_ common.Address, modelId_ [32]byte, nonce_ *big.Int) ([32]byte, error) { + return _Marketplace.Contract.GetBidId(&_Marketplace.CallOpts, provider_, modelId_, nonce_) +} + +// GetBidId is a free data retrieval call binding the contract method 0x747ddd5b. +// +// Solidity: function getBidId(address provider_, bytes32 modelId_, uint256 nonce_) pure returns(bytes32) +func (_Marketplace *MarketplaceCallerSession) GetBidId(provider_ common.Address, modelId_ [32]byte, nonce_ *big.Int) ([32]byte, error) { + return _Marketplace.Contract.GetBidId(&_Marketplace.CallOpts, provider_, modelId_, nonce_) +} + +// GetFeeBalance is a free data retrieval call binding the contract method 0xd4c30ceb. +// +// Solidity: function getFeeBalance() view returns(uint256) +func (_Marketplace *MarketplaceCaller) GetFeeBalance(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _Marketplace.contract.Call(opts, &out, "getFeeBalance") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetFeeBalance is a free data retrieval call binding the contract method 0xd4c30ceb. +// +// Solidity: function getFeeBalance() view returns(uint256) +func (_Marketplace *MarketplaceSession) GetFeeBalance() (*big.Int, error) { + return _Marketplace.Contract.GetFeeBalance(&_Marketplace.CallOpts) +} + +// GetFeeBalance is a free data retrieval call binding the contract method 0xd4c30ceb. +// +// Solidity: function getFeeBalance() view returns(uint256) +func (_Marketplace *MarketplaceCallerSession) GetFeeBalance() (*big.Int, error) { + return _Marketplace.Contract.GetFeeBalance(&_Marketplace.CallOpts) +} + +// GetIsModelActive is a free data retrieval call binding the contract method 0xca74b5f3. +// +// Solidity: function getIsModelActive(bytes32 modelId_) view returns(bool) +func (_Marketplace *MarketplaceCaller) GetIsModelActive(opts *bind.CallOpts, modelId_ [32]byte) (bool, error) { + var out []interface{} + err := _Marketplace.contract.Call(opts, &out, "getIsModelActive", modelId_) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// GetIsModelActive is a free data retrieval call binding the contract method 0xca74b5f3. +// +// Solidity: function getIsModelActive(bytes32 modelId_) view returns(bool) +func (_Marketplace *MarketplaceSession) GetIsModelActive(modelId_ [32]byte) (bool, error) { + return _Marketplace.Contract.GetIsModelActive(&_Marketplace.CallOpts, modelId_) +} + +// GetIsModelActive is a free data retrieval call binding the contract method 0xca74b5f3. +// +// Solidity: function getIsModelActive(bytes32 modelId_) view returns(bool) +func (_Marketplace *MarketplaceCallerSession) GetIsModelActive(modelId_ [32]byte) (bool, error) { + return _Marketplace.Contract.GetIsModelActive(&_Marketplace.CallOpts, modelId_) +} + +// GetIsProviderActive is a free data retrieval call binding the contract method 0x63ef175d. +// +// Solidity: function getIsProviderActive(address provider_) view returns(bool) +func (_Marketplace *MarketplaceCaller) GetIsProviderActive(opts *bind.CallOpts, provider_ common.Address) (bool, error) { + var out []interface{} + err := _Marketplace.contract.Call(opts, &out, "getIsProviderActive", provider_) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// GetIsProviderActive is a free data retrieval call binding the contract method 0x63ef175d. +// +// Solidity: function getIsProviderActive(address provider_) view returns(bool) +func (_Marketplace *MarketplaceSession) GetIsProviderActive(provider_ common.Address) (bool, error) { + return _Marketplace.Contract.GetIsProviderActive(&_Marketplace.CallOpts, provider_) +} + +// GetIsProviderActive is a free data retrieval call binding the contract method 0x63ef175d. +// +// Solidity: function getIsProviderActive(address provider_) view returns(bool) +func (_Marketplace *MarketplaceCallerSession) GetIsProviderActive(provider_ common.Address) (bool, error) { + return _Marketplace.Contract.GetIsProviderActive(&_Marketplace.CallOpts, provider_) +} + +// GetModel is a free data retrieval call binding the contract method 0x21e7c498. +// +// Solidity: function getModel(bytes32 modelId_) view returns((bytes32,uint256,uint256,address,string,string[],uint128,bool)) +func (_Marketplace *MarketplaceCaller) GetModel(opts *bind.CallOpts, modelId_ [32]byte) (IModelStorageModel, error) { + var out []interface{} + err := _Marketplace.contract.Call(opts, &out, "getModel", modelId_) + + if err != nil { + return *new(IModelStorageModel), err + } + + out0 := *abi.ConvertType(out[0], new(IModelStorageModel)).(*IModelStorageModel) + + return out0, err + +} + +// GetModel is a free data retrieval call binding the contract method 0x21e7c498. +// +// Solidity: function getModel(bytes32 modelId_) view returns((bytes32,uint256,uint256,address,string,string[],uint128,bool)) +func (_Marketplace *MarketplaceSession) GetModel(modelId_ [32]byte) (IModelStorageModel, error) { + return _Marketplace.Contract.GetModel(&_Marketplace.CallOpts, modelId_) +} + +// GetModel is a free data retrieval call binding the contract method 0x21e7c498. +// +// Solidity: function getModel(bytes32 modelId_) view returns((bytes32,uint256,uint256,address,string,string[],uint128,bool)) +func (_Marketplace *MarketplaceCallerSession) GetModel(modelId_ [32]byte) (IModelStorageModel, error) { + return _Marketplace.Contract.GetModel(&_Marketplace.CallOpts, modelId_) +} + +// GetModelActiveBids is a free data retrieval call binding the contract method 0x8a683b6e. +// +// Solidity: function getModelActiveBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_Marketplace *MarketplaceCaller) GetModelActiveBids(opts *bind.CallOpts, modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + var out []interface{} + err := _Marketplace.contract.Call(opts, &out, "getModelActiveBids", modelId_, offset_, limit_) + + if err != nil { + return *new([][32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) + + return out0, err + +} + +// GetModelActiveBids is a free data retrieval call binding the contract method 0x8a683b6e. +// +// Solidity: function getModelActiveBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_Marketplace *MarketplaceSession) GetModelActiveBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _Marketplace.Contract.GetModelActiveBids(&_Marketplace.CallOpts, modelId_, offset_, limit_) +} + +// GetModelActiveBids is a free data retrieval call binding the contract method 0x8a683b6e. +// +// Solidity: function getModelActiveBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_Marketplace *MarketplaceCallerSession) GetModelActiveBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _Marketplace.Contract.GetModelActiveBids(&_Marketplace.CallOpts, modelId_, offset_, limit_) +} + +// GetModelBids is a free data retrieval call binding the contract method 0xfade17b1. +// +// Solidity: function getModelBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_Marketplace *MarketplaceCaller) GetModelBids(opts *bind.CallOpts, modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + var out []interface{} + err := _Marketplace.contract.Call(opts, &out, "getModelBids", modelId_, offset_, limit_) + + if err != nil { + return *new([][32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) + + return out0, err + +} + +// GetModelBids is a free data retrieval call binding the contract method 0xfade17b1. +// +// Solidity: function getModelBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_Marketplace *MarketplaceSession) GetModelBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _Marketplace.Contract.GetModelBids(&_Marketplace.CallOpts, modelId_, offset_, limit_) +} + +// GetModelBids is a free data retrieval call binding the contract method 0xfade17b1. +// +// Solidity: function getModelBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_Marketplace *MarketplaceCallerSession) GetModelBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _Marketplace.Contract.GetModelBids(&_Marketplace.CallOpts, modelId_, offset_, limit_) +} + +// GetModelIds is a free data retrieval call binding the contract method 0x08d0aab4. +// +// Solidity: function getModelIds(uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_Marketplace *MarketplaceCaller) GetModelIds(opts *bind.CallOpts, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + var out []interface{} + err := _Marketplace.contract.Call(opts, &out, "getModelIds", offset_, limit_) + + if err != nil { + return *new([][32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) + + return out0, err + +} + +// GetModelIds is a free data retrieval call binding the contract method 0x08d0aab4. +// +// Solidity: function getModelIds(uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_Marketplace *MarketplaceSession) GetModelIds(offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _Marketplace.Contract.GetModelIds(&_Marketplace.CallOpts, offset_, limit_) +} + +// GetModelIds is a free data retrieval call binding the contract method 0x08d0aab4. +// +// Solidity: function getModelIds(uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_Marketplace *MarketplaceCallerSession) GetModelIds(offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _Marketplace.Contract.GetModelIds(&_Marketplace.CallOpts, offset_, limit_) +} + +// GetModelMinimumStake is a free data retrieval call binding the contract method 0xf647ba3d. +// +// Solidity: function getModelMinimumStake() view returns(uint256) +func (_Marketplace *MarketplaceCaller) GetModelMinimumStake(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _Marketplace.contract.Call(opts, &out, "getModelMinimumStake") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetModelMinimumStake is a free data retrieval call binding the contract method 0xf647ba3d. +// +// Solidity: function getModelMinimumStake() view returns(uint256) +func (_Marketplace *MarketplaceSession) GetModelMinimumStake() (*big.Int, error) { + return _Marketplace.Contract.GetModelMinimumStake(&_Marketplace.CallOpts) +} + +// GetModelMinimumStake is a free data retrieval call binding the contract method 0xf647ba3d. +// +// Solidity: function getModelMinimumStake() view returns(uint256) +func (_Marketplace *MarketplaceCallerSession) GetModelMinimumStake() (*big.Int, error) { + return _Marketplace.Contract.GetModelMinimumStake(&_Marketplace.CallOpts) +} + +// GetProvider is a free data retrieval call binding the contract method 0x55f21eb7. +// +// Solidity: function getProvider(address provider_) view returns((string,uint256,uint128,uint128,uint256,bool)) +func (_Marketplace *MarketplaceCaller) GetProvider(opts *bind.CallOpts, provider_ common.Address) (IProviderStorageProvider, error) { + var out []interface{} + err := _Marketplace.contract.Call(opts, &out, "getProvider", provider_) + + if err != nil { + return *new(IProviderStorageProvider), err + } + + out0 := *abi.ConvertType(out[0], new(IProviderStorageProvider)).(*IProviderStorageProvider) + + return out0, err + +} + +// GetProvider is a free data retrieval call binding the contract method 0x55f21eb7. +// +// Solidity: function getProvider(address provider_) view returns((string,uint256,uint128,uint128,uint256,bool)) +func (_Marketplace *MarketplaceSession) GetProvider(provider_ common.Address) (IProviderStorageProvider, error) { + return _Marketplace.Contract.GetProvider(&_Marketplace.CallOpts, provider_) +} + +// GetProvider is a free data retrieval call binding the contract method 0x55f21eb7. +// +// Solidity: function getProvider(address provider_) view returns((string,uint256,uint128,uint128,uint256,bool)) +func (_Marketplace *MarketplaceCallerSession) GetProvider(provider_ common.Address) (IProviderStorageProvider, error) { + return _Marketplace.Contract.GetProvider(&_Marketplace.CallOpts, provider_) +} + +// GetProviderActiveBids is a free data retrieval call binding the contract method 0xaf5b77ca. +// +// Solidity: function getProviderActiveBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_Marketplace *MarketplaceCaller) GetProviderActiveBids(opts *bind.CallOpts, provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + var out []interface{} + err := _Marketplace.contract.Call(opts, &out, "getProviderActiveBids", provider_, offset_, limit_) + + if err != nil { + return *new([][32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) + + return out0, err + +} + +// GetProviderActiveBids is a free data retrieval call binding the contract method 0xaf5b77ca. +// +// Solidity: function getProviderActiveBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_Marketplace *MarketplaceSession) GetProviderActiveBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _Marketplace.Contract.GetProviderActiveBids(&_Marketplace.CallOpts, provider_, offset_, limit_) +} + +// GetProviderActiveBids is a free data retrieval call binding the contract method 0xaf5b77ca. +// +// Solidity: function getProviderActiveBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_Marketplace *MarketplaceCallerSession) GetProviderActiveBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _Marketplace.Contract.GetProviderActiveBids(&_Marketplace.CallOpts, provider_, offset_, limit_) +} + +// GetProviderBids is a free data retrieval call binding the contract method 0x59d435c4. +// +// Solidity: function getProviderBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_Marketplace *MarketplaceCaller) GetProviderBids(opts *bind.CallOpts, provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + var out []interface{} + err := _Marketplace.contract.Call(opts, &out, "getProviderBids", provider_, offset_, limit_) + + if err != nil { + return *new([][32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) + + return out0, err + +} + +// GetProviderBids is a free data retrieval call binding the contract method 0x59d435c4. +// +// Solidity: function getProviderBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_Marketplace *MarketplaceSession) GetProviderBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _Marketplace.Contract.GetProviderBids(&_Marketplace.CallOpts, provider_, offset_, limit_) +} + +// GetProviderBids is a free data retrieval call binding the contract method 0x59d435c4. +// +// Solidity: function getProviderBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_Marketplace *MarketplaceCallerSession) GetProviderBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _Marketplace.Contract.GetProviderBids(&_Marketplace.CallOpts, provider_, offset_, limit_) +} + +// GetProviderMinimumStake is a free data retrieval call binding the contract method 0x53c029f6. +// +// Solidity: function getProviderMinimumStake() view returns(uint256) +func (_Marketplace *MarketplaceCaller) GetProviderMinimumStake(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _Marketplace.contract.Call(opts, &out, "getProviderMinimumStake") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetProviderMinimumStake is a free data retrieval call binding the contract method 0x53c029f6. +// +// Solidity: function getProviderMinimumStake() view returns(uint256) +func (_Marketplace *MarketplaceSession) GetProviderMinimumStake() (*big.Int, error) { + return _Marketplace.Contract.GetProviderMinimumStake(&_Marketplace.CallOpts) +} + +// GetProviderMinimumStake is a free data retrieval call binding the contract method 0x53c029f6. +// +// Solidity: function getProviderMinimumStake() view returns(uint256) +func (_Marketplace *MarketplaceCallerSession) GetProviderMinimumStake() (*big.Int, error) { + return _Marketplace.Contract.GetProviderMinimumStake(&_Marketplace.CallOpts) +} + +// GetProviderModelId is a free data retrieval call binding the contract method 0x1cc9de8c. +// +// Solidity: function getProviderModelId(address provider_, bytes32 modelId_) pure returns(bytes32) +func (_Marketplace *MarketplaceCaller) GetProviderModelId(opts *bind.CallOpts, provider_ common.Address, modelId_ [32]byte) ([32]byte, error) { + var out []interface{} + err := _Marketplace.contract.Call(opts, &out, "getProviderModelId", provider_, modelId_) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// GetProviderModelId is a free data retrieval call binding the contract method 0x1cc9de8c. +// +// Solidity: function getProviderModelId(address provider_, bytes32 modelId_) pure returns(bytes32) +func (_Marketplace *MarketplaceSession) GetProviderModelId(provider_ common.Address, modelId_ [32]byte) ([32]byte, error) { + return _Marketplace.Contract.GetProviderModelId(&_Marketplace.CallOpts, provider_, modelId_) +} + +// GetProviderModelId is a free data retrieval call binding the contract method 0x1cc9de8c. +// +// Solidity: function getProviderModelId(address provider_, bytes32 modelId_) pure returns(bytes32) +func (_Marketplace *MarketplaceCallerSession) GetProviderModelId(provider_ common.Address, modelId_ [32]byte) ([32]byte, error) { + return _Marketplace.Contract.GetProviderModelId(&_Marketplace.CallOpts, provider_, modelId_) +} + +// GetToken is a free data retrieval call binding the contract method 0x21df0da7. +// +// Solidity: function getToken() view returns(address) +func (_Marketplace *MarketplaceCaller) GetToken(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _Marketplace.contract.Call(opts, &out, "getToken") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// GetToken is a free data retrieval call binding the contract method 0x21df0da7. +// +// Solidity: function getToken() view returns(address) +func (_Marketplace *MarketplaceSession) GetToken() (common.Address, error) { + return _Marketplace.Contract.GetToken(&_Marketplace.CallOpts) +} + +// GetToken is a free data retrieval call binding the contract method 0x21df0da7. +// +// Solidity: function getToken() view returns(address) +func (_Marketplace *MarketplaceCallerSession) GetToken() (common.Address, error) { + return _Marketplace.Contract.GetToken(&_Marketplace.CallOpts) +} + +// IsBidActive is a free data retrieval call binding the contract method 0x1345df58. +// +// Solidity: function isBidActive(bytes32 bidId_) view returns(bool) +func (_Marketplace *MarketplaceCaller) IsBidActive(opts *bind.CallOpts, bidId_ [32]byte) (bool, error) { + var out []interface{} + err := _Marketplace.contract.Call(opts, &out, "isBidActive", bidId_) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// IsBidActive is a free data retrieval call binding the contract method 0x1345df58. +// +// Solidity: function isBidActive(bytes32 bidId_) view returns(bool) +func (_Marketplace *MarketplaceSession) IsBidActive(bidId_ [32]byte) (bool, error) { + return _Marketplace.Contract.IsBidActive(&_Marketplace.CallOpts, bidId_) +} + +// IsBidActive is a free data retrieval call binding the contract method 0x1345df58. +// +// Solidity: function isBidActive(bytes32 bidId_) view returns(bool) +func (_Marketplace *MarketplaceCallerSession) IsBidActive(bidId_ [32]byte) (bool, error) { + return _Marketplace.Contract.IsBidActive(&_Marketplace.CallOpts, bidId_) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_Marketplace *MarketplaceCaller) Owner(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _Marketplace.contract.Call(opts, &out, "owner") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_Marketplace *MarketplaceSession) Owner() (common.Address, error) { + return _Marketplace.Contract.Owner(&_Marketplace.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_Marketplace *MarketplaceCallerSession) Owner() (common.Address, error) { + return _Marketplace.Contract.Owner(&_Marketplace.CallOpts) +} + +// MarketplaceInit is a paid mutator transaction binding the contract method 0xf6ec33fe. +// +// Solidity: function __Marketplace_init(address token_) returns() +func (_Marketplace *MarketplaceTransactor) MarketplaceInit(opts *bind.TransactOpts, token_ common.Address) (*types.Transaction, error) { + return _Marketplace.contract.Transact(opts, "__Marketplace_init", token_) +} + +// MarketplaceInit is a paid mutator transaction binding the contract method 0xf6ec33fe. +// +// Solidity: function __Marketplace_init(address token_) returns() +func (_Marketplace *MarketplaceSession) MarketplaceInit(token_ common.Address) (*types.Transaction, error) { + return _Marketplace.Contract.MarketplaceInit(&_Marketplace.TransactOpts, token_) +} + +// MarketplaceInit is a paid mutator transaction binding the contract method 0xf6ec33fe. +// +// Solidity: function __Marketplace_init(address token_) returns() +func (_Marketplace *MarketplaceTransactorSession) MarketplaceInit(token_ common.Address) (*types.Transaction, error) { + return _Marketplace.Contract.MarketplaceInit(&_Marketplace.TransactOpts, token_) +} + +// DeleteModelBid is a paid mutator transaction binding the contract method 0x8913dcaa. +// +// Solidity: function deleteModelBid(bytes32 bidId_) returns() +func (_Marketplace *MarketplaceTransactor) DeleteModelBid(opts *bind.TransactOpts, bidId_ [32]byte) (*types.Transaction, error) { + return _Marketplace.contract.Transact(opts, "deleteModelBid", bidId_) +} + +// DeleteModelBid is a paid mutator transaction binding the contract method 0x8913dcaa. +// +// Solidity: function deleteModelBid(bytes32 bidId_) returns() +func (_Marketplace *MarketplaceSession) DeleteModelBid(bidId_ [32]byte) (*types.Transaction, error) { + return _Marketplace.Contract.DeleteModelBid(&_Marketplace.TransactOpts, bidId_) +} + +// DeleteModelBid is a paid mutator transaction binding the contract method 0x8913dcaa. +// +// Solidity: function deleteModelBid(bytes32 bidId_) returns() +func (_Marketplace *MarketplaceTransactorSession) DeleteModelBid(bidId_ [32]byte) (*types.Transaction, error) { + return _Marketplace.Contract.DeleteModelBid(&_Marketplace.TransactOpts, bidId_) +} + +// PostModelBid is a paid mutator transaction binding the contract method 0x70ccc166. +// +// Solidity: function postModelBid(bytes32 modelId_, uint256 pricePerSecond_) returns(bytes32 bidId) +func (_Marketplace *MarketplaceTransactor) PostModelBid(opts *bind.TransactOpts, modelId_ [32]byte, pricePerSecond_ *big.Int) (*types.Transaction, error) { + return _Marketplace.contract.Transact(opts, "postModelBid", modelId_, pricePerSecond_) +} + +// PostModelBid is a paid mutator transaction binding the contract method 0x70ccc166. +// +// Solidity: function postModelBid(bytes32 modelId_, uint256 pricePerSecond_) returns(bytes32 bidId) +func (_Marketplace *MarketplaceSession) PostModelBid(modelId_ [32]byte, pricePerSecond_ *big.Int) (*types.Transaction, error) { + return _Marketplace.Contract.PostModelBid(&_Marketplace.TransactOpts, modelId_, pricePerSecond_) +} + +// PostModelBid is a paid mutator transaction binding the contract method 0x70ccc166. +// +// Solidity: function postModelBid(bytes32 modelId_, uint256 pricePerSecond_) returns(bytes32 bidId) +func (_Marketplace *MarketplaceTransactorSession) PostModelBid(modelId_ [32]byte, pricePerSecond_ *big.Int) (*types.Transaction, error) { + return _Marketplace.Contract.PostModelBid(&_Marketplace.TransactOpts, modelId_, pricePerSecond_) +} + +// SetMarketplaceBidFee is a paid mutator transaction binding the contract method 0x849c239c. +// +// Solidity: function setMarketplaceBidFee(uint256 bidFee_) returns() +func (_Marketplace *MarketplaceTransactor) SetMarketplaceBidFee(opts *bind.TransactOpts, bidFee_ *big.Int) (*types.Transaction, error) { + return _Marketplace.contract.Transact(opts, "setMarketplaceBidFee", bidFee_) +} + +// SetMarketplaceBidFee is a paid mutator transaction binding the contract method 0x849c239c. +// +// Solidity: function setMarketplaceBidFee(uint256 bidFee_) returns() +func (_Marketplace *MarketplaceSession) SetMarketplaceBidFee(bidFee_ *big.Int) (*types.Transaction, error) { + return _Marketplace.Contract.SetMarketplaceBidFee(&_Marketplace.TransactOpts, bidFee_) +} + +// SetMarketplaceBidFee is a paid mutator transaction binding the contract method 0x849c239c. +// +// Solidity: function setMarketplaceBidFee(uint256 bidFee_) returns() +func (_Marketplace *MarketplaceTransactorSession) SetMarketplaceBidFee(bidFee_ *big.Int) (*types.Transaction, error) { + return _Marketplace.Contract.SetMarketplaceBidFee(&_Marketplace.TransactOpts, bidFee_) +} + +// Withdraw is a paid mutator transaction binding the contract method 0xf3fef3a3. +// +// Solidity: function withdraw(address recipient_, uint256 amount_) returns() +func (_Marketplace *MarketplaceTransactor) Withdraw(opts *bind.TransactOpts, recipient_ common.Address, amount_ *big.Int) (*types.Transaction, error) { + return _Marketplace.contract.Transact(opts, "withdraw", recipient_, amount_) +} + +// Withdraw is a paid mutator transaction binding the contract method 0xf3fef3a3. +// +// Solidity: function withdraw(address recipient_, uint256 amount_) returns() +func (_Marketplace *MarketplaceSession) Withdraw(recipient_ common.Address, amount_ *big.Int) (*types.Transaction, error) { + return _Marketplace.Contract.Withdraw(&_Marketplace.TransactOpts, recipient_, amount_) +} + +// Withdraw is a paid mutator transaction binding the contract method 0xf3fef3a3. +// +// Solidity: function withdraw(address recipient_, uint256 amount_) returns() +func (_Marketplace *MarketplaceTransactorSession) Withdraw(recipient_ common.Address, amount_ *big.Int) (*types.Transaction, error) { + return _Marketplace.Contract.Withdraw(&_Marketplace.TransactOpts, recipient_, amount_) +} + +// MarketplaceInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the Marketplace contract. +type MarketplaceInitializedIterator struct { + Event *MarketplaceInitialized // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *MarketplaceInitializedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(MarketplaceInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(MarketplaceInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *MarketplaceInitializedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *MarketplaceInitializedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// MarketplaceInitialized represents a Initialized event raised by the Marketplace contract. +type MarketplaceInitialized struct { + StorageSlot [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterInitialized is a free log retrieval operation binding the contract event 0xdc73717d728bcfa015e8117438a65319aa06e979ca324afa6e1ea645c28ea15d. +// +// Solidity: event Initialized(bytes32 storageSlot) +func (_Marketplace *MarketplaceFilterer) FilterInitialized(opts *bind.FilterOpts) (*MarketplaceInitializedIterator, error) { + + logs, sub, err := _Marketplace.contract.FilterLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return &MarketplaceInitializedIterator{contract: _Marketplace.contract, event: "Initialized", logs: logs, sub: sub}, nil +} + +// WatchInitialized is a free log subscription operation binding the contract event 0xdc73717d728bcfa015e8117438a65319aa06e979ca324afa6e1ea645c28ea15d. +// +// Solidity: event Initialized(bytes32 storageSlot) +func (_Marketplace *MarketplaceFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *MarketplaceInitialized) (event.Subscription, error) { + + logs, sub, err := _Marketplace.contract.WatchLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(MarketplaceInitialized) + if err := _Marketplace.contract.UnpackLog(event, "Initialized", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseInitialized is a log parse operation binding the contract event 0xdc73717d728bcfa015e8117438a65319aa06e979ca324afa6e1ea645c28ea15d. +// +// Solidity: event Initialized(bytes32 storageSlot) +func (_Marketplace *MarketplaceFilterer) ParseInitialized(log types.Log) (*MarketplaceInitialized, error) { + event := new(MarketplaceInitialized) + if err := _Marketplace.contract.UnpackLog(event, "Initialized", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// MarketplaceMaretplaceFeeUpdatedIterator is returned from FilterMaretplaceFeeUpdated and is used to iterate over the raw logs and unpacked data for MaretplaceFeeUpdated events raised by the Marketplace contract. +type MarketplaceMaretplaceFeeUpdatedIterator struct { + Event *MarketplaceMaretplaceFeeUpdated // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *MarketplaceMaretplaceFeeUpdatedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(MarketplaceMaretplaceFeeUpdated) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(MarketplaceMaretplaceFeeUpdated) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *MarketplaceMaretplaceFeeUpdatedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *MarketplaceMaretplaceFeeUpdatedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// MarketplaceMaretplaceFeeUpdated represents a MaretplaceFeeUpdated event raised by the Marketplace contract. +type MarketplaceMaretplaceFeeUpdated struct { + BidFee *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterMaretplaceFeeUpdated is a free log retrieval operation binding the contract event 0x9c16b729dd48a231a60f92c4c1a12a5225825dd20699fc221314ea2d73a97cce. +// +// Solidity: event MaretplaceFeeUpdated(uint256 bidFee) +func (_Marketplace *MarketplaceFilterer) FilterMaretplaceFeeUpdated(opts *bind.FilterOpts) (*MarketplaceMaretplaceFeeUpdatedIterator, error) { + + logs, sub, err := _Marketplace.contract.FilterLogs(opts, "MaretplaceFeeUpdated") + if err != nil { + return nil, err + } + return &MarketplaceMaretplaceFeeUpdatedIterator{contract: _Marketplace.contract, event: "MaretplaceFeeUpdated", logs: logs, sub: sub}, nil +} + +// WatchMaretplaceFeeUpdated is a free log subscription operation binding the contract event 0x9c16b729dd48a231a60f92c4c1a12a5225825dd20699fc221314ea2d73a97cce. +// +// Solidity: event MaretplaceFeeUpdated(uint256 bidFee) +func (_Marketplace *MarketplaceFilterer) WatchMaretplaceFeeUpdated(opts *bind.WatchOpts, sink chan<- *MarketplaceMaretplaceFeeUpdated) (event.Subscription, error) { + + logs, sub, err := _Marketplace.contract.WatchLogs(opts, "MaretplaceFeeUpdated") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(MarketplaceMaretplaceFeeUpdated) + if err := _Marketplace.contract.UnpackLog(event, "MaretplaceFeeUpdated", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseMaretplaceFeeUpdated is a log parse operation binding the contract event 0x9c16b729dd48a231a60f92c4c1a12a5225825dd20699fc221314ea2d73a97cce. +// +// Solidity: event MaretplaceFeeUpdated(uint256 bidFee) +func (_Marketplace *MarketplaceFilterer) ParseMaretplaceFeeUpdated(log types.Log) (*MarketplaceMaretplaceFeeUpdated, error) { + event := new(MarketplaceMaretplaceFeeUpdated) + if err := _Marketplace.contract.UnpackLog(event, "MaretplaceFeeUpdated", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// MarketplaceMarketplaceBidDeletedIterator is returned from FilterMarketplaceBidDeleted and is used to iterate over the raw logs and unpacked data for MarketplaceBidDeleted events raised by the Marketplace contract. +type MarketplaceMarketplaceBidDeletedIterator struct { + Event *MarketplaceMarketplaceBidDeleted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *MarketplaceMarketplaceBidDeletedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(MarketplaceMarketplaceBidDeleted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(MarketplaceMarketplaceBidDeleted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *MarketplaceMarketplaceBidDeletedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *MarketplaceMarketplaceBidDeletedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// MarketplaceMarketplaceBidDeleted represents a MarketplaceBidDeleted event raised by the Marketplace contract. +type MarketplaceMarketplaceBidDeleted struct { + Provider common.Address + ModelId [32]byte + Nonce *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterMarketplaceBidDeleted is a free log retrieval operation binding the contract event 0x409dfc0f98bf6e062e576fbdc63c9f82392d44deff61e3412f8bd256d2814883. +// +// Solidity: event MarketplaceBidDeleted(address indexed provider, bytes32 indexed modelId, uint256 nonce) +func (_Marketplace *MarketplaceFilterer) FilterMarketplaceBidDeleted(opts *bind.FilterOpts, provider []common.Address, modelId [][32]byte) (*MarketplaceMarketplaceBidDeletedIterator, error) { + + var providerRule []interface{} + for _, providerItem := range provider { + providerRule = append(providerRule, providerItem) + } + var modelIdRule []interface{} + for _, modelIdItem := range modelId { + modelIdRule = append(modelIdRule, modelIdItem) + } + + logs, sub, err := _Marketplace.contract.FilterLogs(opts, "MarketplaceBidDeleted", providerRule, modelIdRule) + if err != nil { + return nil, err + } + return &MarketplaceMarketplaceBidDeletedIterator{contract: _Marketplace.contract, event: "MarketplaceBidDeleted", logs: logs, sub: sub}, nil +} + +// WatchMarketplaceBidDeleted is a free log subscription operation binding the contract event 0x409dfc0f98bf6e062e576fbdc63c9f82392d44deff61e3412f8bd256d2814883. +// +// Solidity: event MarketplaceBidDeleted(address indexed provider, bytes32 indexed modelId, uint256 nonce) +func (_Marketplace *MarketplaceFilterer) WatchMarketplaceBidDeleted(opts *bind.WatchOpts, sink chan<- *MarketplaceMarketplaceBidDeleted, provider []common.Address, modelId [][32]byte) (event.Subscription, error) { + + var providerRule []interface{} + for _, providerItem := range provider { + providerRule = append(providerRule, providerItem) + } + var modelIdRule []interface{} + for _, modelIdItem := range modelId { + modelIdRule = append(modelIdRule, modelIdItem) + } + + logs, sub, err := _Marketplace.contract.WatchLogs(opts, "MarketplaceBidDeleted", providerRule, modelIdRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(MarketplaceMarketplaceBidDeleted) + if err := _Marketplace.contract.UnpackLog(event, "MarketplaceBidDeleted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseMarketplaceBidDeleted is a log parse operation binding the contract event 0x409dfc0f98bf6e062e576fbdc63c9f82392d44deff61e3412f8bd256d2814883. +// +// Solidity: event MarketplaceBidDeleted(address indexed provider, bytes32 indexed modelId, uint256 nonce) +func (_Marketplace *MarketplaceFilterer) ParseMarketplaceBidDeleted(log types.Log) (*MarketplaceMarketplaceBidDeleted, error) { + event := new(MarketplaceMarketplaceBidDeleted) + if err := _Marketplace.contract.UnpackLog(event, "MarketplaceBidDeleted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// MarketplaceMarketplaceBidPostedIterator is returned from FilterMarketplaceBidPosted and is used to iterate over the raw logs and unpacked data for MarketplaceBidPosted events raised by the Marketplace contract. +type MarketplaceMarketplaceBidPostedIterator struct { + Event *MarketplaceMarketplaceBidPosted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *MarketplaceMarketplaceBidPostedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(MarketplaceMarketplaceBidPosted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(MarketplaceMarketplaceBidPosted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *MarketplaceMarketplaceBidPostedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *MarketplaceMarketplaceBidPostedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// MarketplaceMarketplaceBidPosted represents a MarketplaceBidPosted event raised by the Marketplace contract. +type MarketplaceMarketplaceBidPosted struct { + Provider common.Address + ModelId [32]byte + Nonce *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterMarketplaceBidPosted is a free log retrieval operation binding the contract event 0xfc422bb61cd73bc76f27eecf69cce3db0b05d39769ca3ed0fb314a3d04bff6f6. +// +// Solidity: event MarketplaceBidPosted(address indexed provider, bytes32 indexed modelId, uint256 nonce) +func (_Marketplace *MarketplaceFilterer) FilterMarketplaceBidPosted(opts *bind.FilterOpts, provider []common.Address, modelId [][32]byte) (*MarketplaceMarketplaceBidPostedIterator, error) { + + var providerRule []interface{} + for _, providerItem := range provider { + providerRule = append(providerRule, providerItem) + } + var modelIdRule []interface{} + for _, modelIdItem := range modelId { + modelIdRule = append(modelIdRule, modelIdItem) + } + + logs, sub, err := _Marketplace.contract.FilterLogs(opts, "MarketplaceBidPosted", providerRule, modelIdRule) + if err != nil { + return nil, err + } + return &MarketplaceMarketplaceBidPostedIterator{contract: _Marketplace.contract, event: "MarketplaceBidPosted", logs: logs, sub: sub}, nil +} + +// WatchMarketplaceBidPosted is a free log subscription operation binding the contract event 0xfc422bb61cd73bc76f27eecf69cce3db0b05d39769ca3ed0fb314a3d04bff6f6. +// +// Solidity: event MarketplaceBidPosted(address indexed provider, bytes32 indexed modelId, uint256 nonce) +func (_Marketplace *MarketplaceFilterer) WatchMarketplaceBidPosted(opts *bind.WatchOpts, sink chan<- *MarketplaceMarketplaceBidPosted, provider []common.Address, modelId [][32]byte) (event.Subscription, error) { + + var providerRule []interface{} + for _, providerItem := range provider { + providerRule = append(providerRule, providerItem) + } + var modelIdRule []interface{} + for _, modelIdItem := range modelId { + modelIdRule = append(modelIdRule, modelIdItem) + } + + logs, sub, err := _Marketplace.contract.WatchLogs(opts, "MarketplaceBidPosted", providerRule, modelIdRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(MarketplaceMarketplaceBidPosted) + if err := _Marketplace.contract.UnpackLog(event, "MarketplaceBidPosted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseMarketplaceBidPosted is a log parse operation binding the contract event 0xfc422bb61cd73bc76f27eecf69cce3db0b05d39769ca3ed0fb314a3d04bff6f6. +// +// Solidity: event MarketplaceBidPosted(address indexed provider, bytes32 indexed modelId, uint256 nonce) +func (_Marketplace *MarketplaceFilterer) ParseMarketplaceBidPosted(log types.Log) (*MarketplaceMarketplaceBidPosted, error) { + event := new(MarketplaceMarketplaceBidPosted) + if err := _Marketplace.contract.UnpackLog(event, "MarketplaceBidPosted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/proxy-router/contracts/modelregistry/ModelRegistry.go b/proxy-router/internal/repositories/contracts/bindings/modelregistry/ModelRegistry.go similarity index 57% rename from proxy-router/contracts/modelregistry/ModelRegistry.go rename to proxy-router/internal/repositories/contracts/bindings/modelregistry/ModelRegistry.go index c4db9f2d..d5317aa0 100644 --- a/proxy-router/contracts/modelregistry/ModelRegistry.go +++ b/proxy-router/internal/repositories/contracts/bindings/modelregistry/ModelRegistry.go @@ -53,7 +53,7 @@ type IModelStorageModel struct { // ModelRegistryMetaData contains all meta data concerning the ModelRegistry contract. var ModelRegistryMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[],\"name\":\"ModelHasActiveBids\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ModelNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwnerOrModelOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account_\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StakeTooLow\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"storageSlot\",\"type\":\"bytes32\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"}],\"name\":\"ModelDeregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newStake\",\"type\":\"uint256\"}],\"name\":\"ModelMinimumStakeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"}],\"name\":\"ModelRegisteredUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BID_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DIAMOND_OWNABLE_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MODEL_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"__ModelRegistry_init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bidId\",\"type\":\"bytes32\"}],\"name\":\"bids\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"pricePerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"deletedAt\",\"type\":\"uint128\"}],\"internalType\":\"structIBidStorage.Bid\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"}],\"name\":\"getModel\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"ipfsCID\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"isDeleted\",\"type\":\"bool\"}],\"internalType\":\"structIModelStorage.Model\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getToken\",\"outputs\":[{\"internalType\":\"contractIERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"}],\"name\":\"isModelExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"modelActiveBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"modelBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"}],\"name\":\"modelDeregister\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"modelMinimumStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"ipfsCID_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"fee_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"addStake_\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"tags_\",\"type\":\"string[]\"}],\"name\":\"modelRegister\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"models\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"providerActiveBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"providerBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"modelMinimumStake_\",\"type\":\"uint256\"}],\"name\":\"setModelMinimumStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + ABI: "[{\"inputs\":[],\"name\":\"ModelHasActiveBids\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ModelHasAlreadyDeregistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ModelNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAmount\",\"type\":\"uint256\"}],\"name\":\"ModelStakeTooLow\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account_\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"storageSlot\",\"type\":\"bytes32\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"}],\"name\":\"ModelDeregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"modelMinimumStake\",\"type\":\"uint256\"}],\"name\":\"ModelMinimumStakeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"}],\"name\":\"ModelRegisteredUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BIDS_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DIAMOND_OWNABLE_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MODELS_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"__ModelRegistry_init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getActiveModels\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bidId_\",\"type\":\"bytes32\"}],\"name\":\"getBid\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"pricePerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"deletedAt\",\"type\":\"uint128\"}],\"internalType\":\"structIBidStorage.Bid\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"}],\"name\":\"getIsModelActive\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"}],\"name\":\"getModel\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"ipfsCID\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"isDeleted\",\"type\":\"bool\"}],\"internalType\":\"structIModelStorage.Model\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getModelActiveBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getModelBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getModelIds\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getModelMinimumStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getProviderActiveBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getProviderBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bidId_\",\"type\":\"bytes32\"}],\"name\":\"isBidActive\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"}],\"name\":\"modelDeregister\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"ipfsCID_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"fee_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"tags_\",\"type\":\"string[]\"}],\"name\":\"modelRegister\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"modelMinimumStake_\",\"type\":\"uint256\"}],\"name\":\"modelSetMinStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", } // ModelRegistryABI is the input ABI used to generate the binding from. @@ -202,12 +202,12 @@ func (_ModelRegistry *ModelRegistryTransactorRaw) Transact(opts *bind.TransactOp return _ModelRegistry.Contract.contract.Transact(opts, method, params...) } -// BIDSTORAGESLOT is a free data retrieval call binding the contract method 0x4fa816f2. +// BIDSSTORAGESLOT is a free data retrieval call binding the contract method 0x266ccff0. // -// Solidity: function BID_STORAGE_SLOT() view returns(bytes32) -func (_ModelRegistry *ModelRegistryCaller) BIDSTORAGESLOT(opts *bind.CallOpts) ([32]byte, error) { +// Solidity: function BIDS_STORAGE_SLOT() view returns(bytes32) +func (_ModelRegistry *ModelRegistryCaller) BIDSSTORAGESLOT(opts *bind.CallOpts) ([32]byte, error) { var out []interface{} - err := _ModelRegistry.contract.Call(opts, &out, "BID_STORAGE_SLOT") + err := _ModelRegistry.contract.Call(opts, &out, "BIDS_STORAGE_SLOT") if err != nil { return *new([32]byte), err @@ -219,18 +219,18 @@ func (_ModelRegistry *ModelRegistryCaller) BIDSTORAGESLOT(opts *bind.CallOpts) ( } -// BIDSTORAGESLOT is a free data retrieval call binding the contract method 0x4fa816f2. +// BIDSSTORAGESLOT is a free data retrieval call binding the contract method 0x266ccff0. // -// Solidity: function BID_STORAGE_SLOT() view returns(bytes32) -func (_ModelRegistry *ModelRegistrySession) BIDSTORAGESLOT() ([32]byte, error) { - return _ModelRegistry.Contract.BIDSTORAGESLOT(&_ModelRegistry.CallOpts) +// Solidity: function BIDS_STORAGE_SLOT() view returns(bytes32) +func (_ModelRegistry *ModelRegistrySession) BIDSSTORAGESLOT() ([32]byte, error) { + return _ModelRegistry.Contract.BIDSSTORAGESLOT(&_ModelRegistry.CallOpts) } -// BIDSTORAGESLOT is a free data retrieval call binding the contract method 0x4fa816f2. +// BIDSSTORAGESLOT is a free data retrieval call binding the contract method 0x266ccff0. // -// Solidity: function BID_STORAGE_SLOT() view returns(bytes32) -func (_ModelRegistry *ModelRegistryCallerSession) BIDSTORAGESLOT() ([32]byte, error) { - return _ModelRegistry.Contract.BIDSTORAGESLOT(&_ModelRegistry.CallOpts) +// Solidity: function BIDS_STORAGE_SLOT() view returns(bytes32) +func (_ModelRegistry *ModelRegistryCallerSession) BIDSSTORAGESLOT() ([32]byte, error) { + return _ModelRegistry.Contract.BIDSSTORAGESLOT(&_ModelRegistry.CallOpts) } // DIAMONDOWNABLESTORAGESLOT is a free data retrieval call binding the contract method 0x4ac3371e. @@ -264,12 +264,12 @@ func (_ModelRegistry *ModelRegistryCallerSession) DIAMONDOWNABLESTORAGESLOT() ([ return _ModelRegistry.Contract.DIAMONDOWNABLESTORAGESLOT(&_ModelRegistry.CallOpts) } -// MODELSTORAGESLOT is a free data retrieval call binding the contract method 0xeda926f2. +// MODELSSTORAGESLOT is a free data retrieval call binding the contract method 0x6f276c1e. // -// Solidity: function MODEL_STORAGE_SLOT() view returns(bytes32) -func (_ModelRegistry *ModelRegistryCaller) MODELSTORAGESLOT(opts *bind.CallOpts) ([32]byte, error) { +// Solidity: function MODELS_STORAGE_SLOT() view returns(bytes32) +func (_ModelRegistry *ModelRegistryCaller) MODELSSTORAGESLOT(opts *bind.CallOpts) ([32]byte, error) { var out []interface{} - err := _ModelRegistry.contract.Call(opts, &out, "MODEL_STORAGE_SLOT") + err := _ModelRegistry.contract.Call(opts, &out, "MODELS_STORAGE_SLOT") if err != nil { return *new([32]byte), err @@ -281,26 +281,57 @@ func (_ModelRegistry *ModelRegistryCaller) MODELSTORAGESLOT(opts *bind.CallOpts) } -// MODELSTORAGESLOT is a free data retrieval call binding the contract method 0xeda926f2. +// MODELSSTORAGESLOT is a free data retrieval call binding the contract method 0x6f276c1e. // -// Solidity: function MODEL_STORAGE_SLOT() view returns(bytes32) -func (_ModelRegistry *ModelRegistrySession) MODELSTORAGESLOT() ([32]byte, error) { - return _ModelRegistry.Contract.MODELSTORAGESLOT(&_ModelRegistry.CallOpts) +// Solidity: function MODELS_STORAGE_SLOT() view returns(bytes32) +func (_ModelRegistry *ModelRegistrySession) MODELSSTORAGESLOT() ([32]byte, error) { + return _ModelRegistry.Contract.MODELSSTORAGESLOT(&_ModelRegistry.CallOpts) } -// MODELSTORAGESLOT is a free data retrieval call binding the contract method 0xeda926f2. +// MODELSSTORAGESLOT is a free data retrieval call binding the contract method 0x6f276c1e. // -// Solidity: function MODEL_STORAGE_SLOT() view returns(bytes32) -func (_ModelRegistry *ModelRegistryCallerSession) MODELSTORAGESLOT() ([32]byte, error) { - return _ModelRegistry.Contract.MODELSTORAGESLOT(&_ModelRegistry.CallOpts) +// Solidity: function MODELS_STORAGE_SLOT() view returns(bytes32) +func (_ModelRegistry *ModelRegistryCallerSession) MODELSSTORAGESLOT() ([32]byte, error) { + return _ModelRegistry.Contract.MODELSSTORAGESLOT(&_ModelRegistry.CallOpts) } -// Bids is a free data retrieval call binding the contract method 0x8f98eeda. +// GetActiveModels is a free data retrieval call binding the contract method 0xac59585c. // -// Solidity: function bids(bytes32 bidId) view returns((address,bytes32,uint256,uint256,uint128,uint128)) -func (_ModelRegistry *ModelRegistryCaller) Bids(opts *bind.CallOpts, bidId [32]byte) (IBidStorageBid, error) { +// Solidity: function getActiveModels(uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ModelRegistry *ModelRegistryCaller) GetActiveModels(opts *bind.CallOpts, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { var out []interface{} - err := _ModelRegistry.contract.Call(opts, &out, "bids", bidId) + err := _ModelRegistry.contract.Call(opts, &out, "getActiveModels", offset_, limit_) + + if err != nil { + return *new([][32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) + + return out0, err + +} + +// GetActiveModels is a free data retrieval call binding the contract method 0xac59585c. +// +// Solidity: function getActiveModels(uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ModelRegistry *ModelRegistrySession) GetActiveModels(offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _ModelRegistry.Contract.GetActiveModels(&_ModelRegistry.CallOpts, offset_, limit_) +} + +// GetActiveModels is a free data retrieval call binding the contract method 0xac59585c. +// +// Solidity: function getActiveModels(uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ModelRegistry *ModelRegistryCallerSession) GetActiveModels(offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _ModelRegistry.Contract.GetActiveModels(&_ModelRegistry.CallOpts, offset_, limit_) +} + +// GetBid is a free data retrieval call binding the contract method 0x91704e1e. +// +// Solidity: function getBid(bytes32 bidId_) view returns((address,bytes32,uint256,uint256,uint128,uint128)) +func (_ModelRegistry *ModelRegistryCaller) GetBid(opts *bind.CallOpts, bidId_ [32]byte) (IBidStorageBid, error) { + var out []interface{} + err := _ModelRegistry.contract.Call(opts, &out, "getBid", bidId_) if err != nil { return *new(IBidStorageBid), err @@ -312,26 +343,57 @@ func (_ModelRegistry *ModelRegistryCaller) Bids(opts *bind.CallOpts, bidId [32]b } -// Bids is a free data retrieval call binding the contract method 0x8f98eeda. +// GetBid is a free data retrieval call binding the contract method 0x91704e1e. // -// Solidity: function bids(bytes32 bidId) view returns((address,bytes32,uint256,uint256,uint128,uint128)) -func (_ModelRegistry *ModelRegistrySession) Bids(bidId [32]byte) (IBidStorageBid, error) { - return _ModelRegistry.Contract.Bids(&_ModelRegistry.CallOpts, bidId) +// Solidity: function getBid(bytes32 bidId_) view returns((address,bytes32,uint256,uint256,uint128,uint128)) +func (_ModelRegistry *ModelRegistrySession) GetBid(bidId_ [32]byte) (IBidStorageBid, error) { + return _ModelRegistry.Contract.GetBid(&_ModelRegistry.CallOpts, bidId_) } -// Bids is a free data retrieval call binding the contract method 0x8f98eeda. +// GetBid is a free data retrieval call binding the contract method 0x91704e1e. // -// Solidity: function bids(bytes32 bidId) view returns((address,bytes32,uint256,uint256,uint128,uint128)) -func (_ModelRegistry *ModelRegistryCallerSession) Bids(bidId [32]byte) (IBidStorageBid, error) { - return _ModelRegistry.Contract.Bids(&_ModelRegistry.CallOpts, bidId) +// Solidity: function getBid(bytes32 bidId_) view returns((address,bytes32,uint256,uint256,uint128,uint128)) +func (_ModelRegistry *ModelRegistryCallerSession) GetBid(bidId_ [32]byte) (IBidStorageBid, error) { + return _ModelRegistry.Contract.GetBid(&_ModelRegistry.CallOpts, bidId_) +} + +// GetIsModelActive is a free data retrieval call binding the contract method 0xca74b5f3. +// +// Solidity: function getIsModelActive(bytes32 modelId_) view returns(bool) +func (_ModelRegistry *ModelRegistryCaller) GetIsModelActive(opts *bind.CallOpts, modelId_ [32]byte) (bool, error) { + var out []interface{} + err := _ModelRegistry.contract.Call(opts, &out, "getIsModelActive", modelId_) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// GetIsModelActive is a free data retrieval call binding the contract method 0xca74b5f3. +// +// Solidity: function getIsModelActive(bytes32 modelId_) view returns(bool) +func (_ModelRegistry *ModelRegistrySession) GetIsModelActive(modelId_ [32]byte) (bool, error) { + return _ModelRegistry.Contract.GetIsModelActive(&_ModelRegistry.CallOpts, modelId_) +} + +// GetIsModelActive is a free data retrieval call binding the contract method 0xca74b5f3. +// +// Solidity: function getIsModelActive(bytes32 modelId_) view returns(bool) +func (_ModelRegistry *ModelRegistryCallerSession) GetIsModelActive(modelId_ [32]byte) (bool, error) { + return _ModelRegistry.Contract.GetIsModelActive(&_ModelRegistry.CallOpts, modelId_) } // GetModel is a free data retrieval call binding the contract method 0x21e7c498. // -// Solidity: function getModel(bytes32 modelId) view returns((bytes32,uint256,uint256,address,string,string[],uint128,bool)) -func (_ModelRegistry *ModelRegistryCaller) GetModel(opts *bind.CallOpts, modelId [32]byte) (IModelStorageModel, error) { +// Solidity: function getModel(bytes32 modelId_) view returns((bytes32,uint256,uint256,address,string,string[],uint128,bool)) +func (_ModelRegistry *ModelRegistryCaller) GetModel(opts *bind.CallOpts, modelId_ [32]byte) (IModelStorageModel, error) { var out []interface{} - err := _ModelRegistry.contract.Call(opts, &out, "getModel", modelId) + err := _ModelRegistry.contract.Call(opts, &out, "getModel", modelId_) if err != nil { return *new(IModelStorageModel), err @@ -345,86 +407,86 @@ func (_ModelRegistry *ModelRegistryCaller) GetModel(opts *bind.CallOpts, modelId // GetModel is a free data retrieval call binding the contract method 0x21e7c498. // -// Solidity: function getModel(bytes32 modelId) view returns((bytes32,uint256,uint256,address,string,string[],uint128,bool)) -func (_ModelRegistry *ModelRegistrySession) GetModel(modelId [32]byte) (IModelStorageModel, error) { - return _ModelRegistry.Contract.GetModel(&_ModelRegistry.CallOpts, modelId) +// Solidity: function getModel(bytes32 modelId_) view returns((bytes32,uint256,uint256,address,string,string[],uint128,bool)) +func (_ModelRegistry *ModelRegistrySession) GetModel(modelId_ [32]byte) (IModelStorageModel, error) { + return _ModelRegistry.Contract.GetModel(&_ModelRegistry.CallOpts, modelId_) } // GetModel is a free data retrieval call binding the contract method 0x21e7c498. // -// Solidity: function getModel(bytes32 modelId) view returns((bytes32,uint256,uint256,address,string,string[],uint128,bool)) -func (_ModelRegistry *ModelRegistryCallerSession) GetModel(modelId [32]byte) (IModelStorageModel, error) { - return _ModelRegistry.Contract.GetModel(&_ModelRegistry.CallOpts, modelId) +// Solidity: function getModel(bytes32 modelId_) view returns((bytes32,uint256,uint256,address,string,string[],uint128,bool)) +func (_ModelRegistry *ModelRegistryCallerSession) GetModel(modelId_ [32]byte) (IModelStorageModel, error) { + return _ModelRegistry.Contract.GetModel(&_ModelRegistry.CallOpts, modelId_) } -// GetToken is a free data retrieval call binding the contract method 0x21df0da7. +// GetModelActiveBids is a free data retrieval call binding the contract method 0x8a683b6e. // -// Solidity: function getToken() view returns(address) -func (_ModelRegistry *ModelRegistryCaller) GetToken(opts *bind.CallOpts) (common.Address, error) { +// Solidity: function getModelActiveBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ModelRegistry *ModelRegistryCaller) GetModelActiveBids(opts *bind.CallOpts, modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { var out []interface{} - err := _ModelRegistry.contract.Call(opts, &out, "getToken") + err := _ModelRegistry.contract.Call(opts, &out, "getModelActiveBids", modelId_, offset_, limit_) if err != nil { - return *new(common.Address), err + return *new([][32]byte), err } - out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) return out0, err } -// GetToken is a free data retrieval call binding the contract method 0x21df0da7. +// GetModelActiveBids is a free data retrieval call binding the contract method 0x8a683b6e. // -// Solidity: function getToken() view returns(address) -func (_ModelRegistry *ModelRegistrySession) GetToken() (common.Address, error) { - return _ModelRegistry.Contract.GetToken(&_ModelRegistry.CallOpts) +// Solidity: function getModelActiveBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ModelRegistry *ModelRegistrySession) GetModelActiveBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _ModelRegistry.Contract.GetModelActiveBids(&_ModelRegistry.CallOpts, modelId_, offset_, limit_) } -// GetToken is a free data retrieval call binding the contract method 0x21df0da7. +// GetModelActiveBids is a free data retrieval call binding the contract method 0x8a683b6e. // -// Solidity: function getToken() view returns(address) -func (_ModelRegistry *ModelRegistryCallerSession) GetToken() (common.Address, error) { - return _ModelRegistry.Contract.GetToken(&_ModelRegistry.CallOpts) +// Solidity: function getModelActiveBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ModelRegistry *ModelRegistryCallerSession) GetModelActiveBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _ModelRegistry.Contract.GetModelActiveBids(&_ModelRegistry.CallOpts, modelId_, offset_, limit_) } -// IsModelExists is a free data retrieval call binding the contract method 0x045147aa. +// GetModelBids is a free data retrieval call binding the contract method 0xfade17b1. // -// Solidity: function isModelExists(bytes32 modelId_) view returns(bool) -func (_ModelRegistry *ModelRegistryCaller) IsModelExists(opts *bind.CallOpts, modelId_ [32]byte) (bool, error) { +// Solidity: function getModelBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ModelRegistry *ModelRegistryCaller) GetModelBids(opts *bind.CallOpts, modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { var out []interface{} - err := _ModelRegistry.contract.Call(opts, &out, "isModelExists", modelId_) + err := _ModelRegistry.contract.Call(opts, &out, "getModelBids", modelId_, offset_, limit_) if err != nil { - return *new(bool), err + return *new([][32]byte), err } - out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) return out0, err } -// IsModelExists is a free data retrieval call binding the contract method 0x045147aa. +// GetModelBids is a free data retrieval call binding the contract method 0xfade17b1. // -// Solidity: function isModelExists(bytes32 modelId_) view returns(bool) -func (_ModelRegistry *ModelRegistrySession) IsModelExists(modelId_ [32]byte) (bool, error) { - return _ModelRegistry.Contract.IsModelExists(&_ModelRegistry.CallOpts, modelId_) +// Solidity: function getModelBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ModelRegistry *ModelRegistrySession) GetModelBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _ModelRegistry.Contract.GetModelBids(&_ModelRegistry.CallOpts, modelId_, offset_, limit_) } -// IsModelExists is a free data retrieval call binding the contract method 0x045147aa. +// GetModelBids is a free data retrieval call binding the contract method 0xfade17b1. // -// Solidity: function isModelExists(bytes32 modelId_) view returns(bool) -func (_ModelRegistry *ModelRegistryCallerSession) IsModelExists(modelId_ [32]byte) (bool, error) { - return _ModelRegistry.Contract.IsModelExists(&_ModelRegistry.CallOpts, modelId_) +// Solidity: function getModelBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ModelRegistry *ModelRegistryCallerSession) GetModelBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _ModelRegistry.Contract.GetModelBids(&_ModelRegistry.CallOpts, modelId_, offset_, limit_) } -// ModelActiveBids is a free data retrieval call binding the contract method 0x3fd8e5e3. +// GetModelIds is a free data retrieval call binding the contract method 0x08d0aab4. // -// Solidity: function modelActiveBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_ModelRegistry *ModelRegistryCaller) ModelActiveBids(opts *bind.CallOpts, modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { +// Solidity: function getModelIds(uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ModelRegistry *ModelRegistryCaller) GetModelIds(opts *bind.CallOpts, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { var out []interface{} - err := _ModelRegistry.contract.Call(opts, &out, "modelActiveBids", modelId_, offset_, limit_) + err := _ModelRegistry.contract.Call(opts, &out, "getModelIds", offset_, limit_) if err != nil { return *new([][32]byte), err @@ -436,119 +498,119 @@ func (_ModelRegistry *ModelRegistryCaller) ModelActiveBids(opts *bind.CallOpts, } -// ModelActiveBids is a free data retrieval call binding the contract method 0x3fd8e5e3. +// GetModelIds is a free data retrieval call binding the contract method 0x08d0aab4. // -// Solidity: function modelActiveBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_ModelRegistry *ModelRegistrySession) ModelActiveBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - return _ModelRegistry.Contract.ModelActiveBids(&_ModelRegistry.CallOpts, modelId_, offset_, limit_) +// Solidity: function getModelIds(uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ModelRegistry *ModelRegistrySession) GetModelIds(offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _ModelRegistry.Contract.GetModelIds(&_ModelRegistry.CallOpts, offset_, limit_) } -// ModelActiveBids is a free data retrieval call binding the contract method 0x3fd8e5e3. +// GetModelIds is a free data retrieval call binding the contract method 0x08d0aab4. // -// Solidity: function modelActiveBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_ModelRegistry *ModelRegistryCallerSession) ModelActiveBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - return _ModelRegistry.Contract.ModelActiveBids(&_ModelRegistry.CallOpts, modelId_, offset_, limit_) +// Solidity: function getModelIds(uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ModelRegistry *ModelRegistryCallerSession) GetModelIds(offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _ModelRegistry.Contract.GetModelIds(&_ModelRegistry.CallOpts, offset_, limit_) } -// ModelBids is a free data retrieval call binding the contract method 0x5954d1b3. +// GetModelMinimumStake is a free data retrieval call binding the contract method 0xf647ba3d. // -// Solidity: function modelBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_ModelRegistry *ModelRegistryCaller) ModelBids(opts *bind.CallOpts, modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { +// Solidity: function getModelMinimumStake() view returns(uint256) +func (_ModelRegistry *ModelRegistryCaller) GetModelMinimumStake(opts *bind.CallOpts) (*big.Int, error) { var out []interface{} - err := _ModelRegistry.contract.Call(opts, &out, "modelBids", modelId_, offset_, limit_) + err := _ModelRegistry.contract.Call(opts, &out, "getModelMinimumStake") if err != nil { - return *new([][32]byte), err + return *new(*big.Int), err } - out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) return out0, err } -// ModelBids is a free data retrieval call binding the contract method 0x5954d1b3. +// GetModelMinimumStake is a free data retrieval call binding the contract method 0xf647ba3d. // -// Solidity: function modelBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_ModelRegistry *ModelRegistrySession) ModelBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - return _ModelRegistry.Contract.ModelBids(&_ModelRegistry.CallOpts, modelId_, offset_, limit_) +// Solidity: function getModelMinimumStake() view returns(uint256) +func (_ModelRegistry *ModelRegistrySession) GetModelMinimumStake() (*big.Int, error) { + return _ModelRegistry.Contract.GetModelMinimumStake(&_ModelRegistry.CallOpts) } -// ModelBids is a free data retrieval call binding the contract method 0x5954d1b3. +// GetModelMinimumStake is a free data retrieval call binding the contract method 0xf647ba3d. // -// Solidity: function modelBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_ModelRegistry *ModelRegistryCallerSession) ModelBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - return _ModelRegistry.Contract.ModelBids(&_ModelRegistry.CallOpts, modelId_, offset_, limit_) +// Solidity: function getModelMinimumStake() view returns(uint256) +func (_ModelRegistry *ModelRegistryCallerSession) GetModelMinimumStake() (*big.Int, error) { + return _ModelRegistry.Contract.GetModelMinimumStake(&_ModelRegistry.CallOpts) } -// ModelMinimumStake is a free data retrieval call binding the contract method 0xc4288ed4. +// GetProviderActiveBids is a free data retrieval call binding the contract method 0xaf5b77ca. // -// Solidity: function modelMinimumStake() view returns(uint256) -func (_ModelRegistry *ModelRegistryCaller) ModelMinimumStake(opts *bind.CallOpts) (*big.Int, error) { +// Solidity: function getProviderActiveBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ModelRegistry *ModelRegistryCaller) GetProviderActiveBids(opts *bind.CallOpts, provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { var out []interface{} - err := _ModelRegistry.contract.Call(opts, &out, "modelMinimumStake") + err := _ModelRegistry.contract.Call(opts, &out, "getProviderActiveBids", provider_, offset_, limit_) if err != nil { - return *new(*big.Int), err + return *new([][32]byte), err } - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) return out0, err } -// ModelMinimumStake is a free data retrieval call binding the contract method 0xc4288ed4. +// GetProviderActiveBids is a free data retrieval call binding the contract method 0xaf5b77ca. // -// Solidity: function modelMinimumStake() view returns(uint256) -func (_ModelRegistry *ModelRegistrySession) ModelMinimumStake() (*big.Int, error) { - return _ModelRegistry.Contract.ModelMinimumStake(&_ModelRegistry.CallOpts) +// Solidity: function getProviderActiveBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ModelRegistry *ModelRegistrySession) GetProviderActiveBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _ModelRegistry.Contract.GetProviderActiveBids(&_ModelRegistry.CallOpts, provider_, offset_, limit_) } -// ModelMinimumStake is a free data retrieval call binding the contract method 0xc4288ed4. +// GetProviderActiveBids is a free data retrieval call binding the contract method 0xaf5b77ca. // -// Solidity: function modelMinimumStake() view returns(uint256) -func (_ModelRegistry *ModelRegistryCallerSession) ModelMinimumStake() (*big.Int, error) { - return _ModelRegistry.Contract.ModelMinimumStake(&_ModelRegistry.CallOpts) +// Solidity: function getProviderActiveBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ModelRegistry *ModelRegistryCallerSession) GetProviderActiveBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _ModelRegistry.Contract.GetProviderActiveBids(&_ModelRegistry.CallOpts, provider_, offset_, limit_) } -// Models is a free data retrieval call binding the contract method 0x6a030ca9. +// GetProviderBids is a free data retrieval call binding the contract method 0x59d435c4. // -// Solidity: function models(uint256 index) view returns(bytes32) -func (_ModelRegistry *ModelRegistryCaller) Models(opts *bind.CallOpts, index *big.Int) ([32]byte, error) { +// Solidity: function getProviderBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ModelRegistry *ModelRegistryCaller) GetProviderBids(opts *bind.CallOpts, provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { var out []interface{} - err := _ModelRegistry.contract.Call(opts, &out, "models", index) + err := _ModelRegistry.contract.Call(opts, &out, "getProviderBids", provider_, offset_, limit_) if err != nil { - return *new([32]byte), err + return *new([][32]byte), err } - out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) return out0, err } -// Models is a free data retrieval call binding the contract method 0x6a030ca9. +// GetProviderBids is a free data retrieval call binding the contract method 0x59d435c4. // -// Solidity: function models(uint256 index) view returns(bytes32) -func (_ModelRegistry *ModelRegistrySession) Models(index *big.Int) ([32]byte, error) { - return _ModelRegistry.Contract.Models(&_ModelRegistry.CallOpts, index) +// Solidity: function getProviderBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ModelRegistry *ModelRegistrySession) GetProviderBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _ModelRegistry.Contract.GetProviderBids(&_ModelRegistry.CallOpts, provider_, offset_, limit_) } -// Models is a free data retrieval call binding the contract method 0x6a030ca9. +// GetProviderBids is a free data retrieval call binding the contract method 0x59d435c4. // -// Solidity: function models(uint256 index) view returns(bytes32) -func (_ModelRegistry *ModelRegistryCallerSession) Models(index *big.Int) ([32]byte, error) { - return _ModelRegistry.Contract.Models(&_ModelRegistry.CallOpts, index) +// Solidity: function getProviderBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ModelRegistry *ModelRegistryCallerSession) GetProviderBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _ModelRegistry.Contract.GetProviderBids(&_ModelRegistry.CallOpts, provider_, offset_, limit_) } -// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// GetToken is a free data retrieval call binding the contract method 0x21df0da7. // -// Solidity: function owner() view returns(address) -func (_ModelRegistry *ModelRegistryCaller) Owner(opts *bind.CallOpts) (common.Address, error) { +// Solidity: function getToken() view returns(address) +func (_ModelRegistry *ModelRegistryCaller) GetToken(opts *bind.CallOpts) (common.Address, error) { var out []interface{} - err := _ModelRegistry.contract.Call(opts, &out, "owner") + err := _ModelRegistry.contract.Call(opts, &out, "getToken") if err != nil { return *new(common.Address), err @@ -560,80 +622,80 @@ func (_ModelRegistry *ModelRegistryCaller) Owner(opts *bind.CallOpts) (common.Ad } -// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// GetToken is a free data retrieval call binding the contract method 0x21df0da7. // -// Solidity: function owner() view returns(address) -func (_ModelRegistry *ModelRegistrySession) Owner() (common.Address, error) { - return _ModelRegistry.Contract.Owner(&_ModelRegistry.CallOpts) +// Solidity: function getToken() view returns(address) +func (_ModelRegistry *ModelRegistrySession) GetToken() (common.Address, error) { + return _ModelRegistry.Contract.GetToken(&_ModelRegistry.CallOpts) } -// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// GetToken is a free data retrieval call binding the contract method 0x21df0da7. // -// Solidity: function owner() view returns(address) -func (_ModelRegistry *ModelRegistryCallerSession) Owner() (common.Address, error) { - return _ModelRegistry.Contract.Owner(&_ModelRegistry.CallOpts) +// Solidity: function getToken() view returns(address) +func (_ModelRegistry *ModelRegistryCallerSession) GetToken() (common.Address, error) { + return _ModelRegistry.Contract.GetToken(&_ModelRegistry.CallOpts) } -// ProviderActiveBids is a free data retrieval call binding the contract method 0x6dd7d31c. +// IsBidActive is a free data retrieval call binding the contract method 0x1345df58. // -// Solidity: function providerActiveBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_ModelRegistry *ModelRegistryCaller) ProviderActiveBids(opts *bind.CallOpts, provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { +// Solidity: function isBidActive(bytes32 bidId_) view returns(bool) +func (_ModelRegistry *ModelRegistryCaller) IsBidActive(opts *bind.CallOpts, bidId_ [32]byte) (bool, error) { var out []interface{} - err := _ModelRegistry.contract.Call(opts, &out, "providerActiveBids", provider_, offset_, limit_) + err := _ModelRegistry.contract.Call(opts, &out, "isBidActive", bidId_) if err != nil { - return *new([][32]byte), err + return *new(bool), err } - out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) return out0, err } -// ProviderActiveBids is a free data retrieval call binding the contract method 0x6dd7d31c. +// IsBidActive is a free data retrieval call binding the contract method 0x1345df58. // -// Solidity: function providerActiveBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_ModelRegistry *ModelRegistrySession) ProviderActiveBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - return _ModelRegistry.Contract.ProviderActiveBids(&_ModelRegistry.CallOpts, provider_, offset_, limit_) +// Solidity: function isBidActive(bytes32 bidId_) view returns(bool) +func (_ModelRegistry *ModelRegistrySession) IsBidActive(bidId_ [32]byte) (bool, error) { + return _ModelRegistry.Contract.IsBidActive(&_ModelRegistry.CallOpts, bidId_) } -// ProviderActiveBids is a free data retrieval call binding the contract method 0x6dd7d31c. +// IsBidActive is a free data retrieval call binding the contract method 0x1345df58. // -// Solidity: function providerActiveBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_ModelRegistry *ModelRegistryCallerSession) ProviderActiveBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - return _ModelRegistry.Contract.ProviderActiveBids(&_ModelRegistry.CallOpts, provider_, offset_, limit_) +// Solidity: function isBidActive(bytes32 bidId_) view returns(bool) +func (_ModelRegistry *ModelRegistryCallerSession) IsBidActive(bidId_ [32]byte) (bool, error) { + return _ModelRegistry.Contract.IsBidActive(&_ModelRegistry.CallOpts, bidId_) } -// ProviderBids is a free data retrieval call binding the contract method 0x22fbda9a. +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. // -// Solidity: function providerBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_ModelRegistry *ModelRegistryCaller) ProviderBids(opts *bind.CallOpts, provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { +// Solidity: function owner() view returns(address) +func (_ModelRegistry *ModelRegistryCaller) Owner(opts *bind.CallOpts) (common.Address, error) { var out []interface{} - err := _ModelRegistry.contract.Call(opts, &out, "providerBids", provider_, offset_, limit_) + err := _ModelRegistry.contract.Call(opts, &out, "owner") if err != nil { - return *new([][32]byte), err + return *new(common.Address), err } - out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) return out0, err } -// ProviderBids is a free data retrieval call binding the contract method 0x22fbda9a. +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. // -// Solidity: function providerBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_ModelRegistry *ModelRegistrySession) ProviderBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - return _ModelRegistry.Contract.ProviderBids(&_ModelRegistry.CallOpts, provider_, offset_, limit_) +// Solidity: function owner() view returns(address) +func (_ModelRegistry *ModelRegistrySession) Owner() (common.Address, error) { + return _ModelRegistry.Contract.Owner(&_ModelRegistry.CallOpts) } -// ProviderBids is a free data retrieval call binding the contract method 0x22fbda9a. +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. // -// Solidity: function providerBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_ModelRegistry *ModelRegistryCallerSession) ProviderBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - return _ModelRegistry.Contract.ProviderBids(&_ModelRegistry.CallOpts, provider_, offset_, limit_) +// Solidity: function owner() view returns(address) +func (_ModelRegistry *ModelRegistryCallerSession) Owner() (common.Address, error) { + return _ModelRegistry.Contract.Owner(&_ModelRegistry.CallOpts) } // ModelRegistryInit is a paid mutator transaction binding the contract method 0xd69bdf30. @@ -678,46 +740,46 @@ func (_ModelRegistry *ModelRegistryTransactorSession) ModelDeregister(modelId_ [ return _ModelRegistry.Contract.ModelDeregister(&_ModelRegistry.TransactOpts, modelId_) } -// ModelRegister is a paid mutator transaction binding the contract method 0x82806227. +// ModelRegister is a paid mutator transaction binding the contract method 0xec2581a1. // -// Solidity: function modelRegister(bytes32 modelId_, bytes32 ipfsCID_, uint256 fee_, uint256 addStake_, address owner_, string name_, string[] tags_) returns() -func (_ModelRegistry *ModelRegistryTransactor) ModelRegister(opts *bind.TransactOpts, modelId_ [32]byte, ipfsCID_ [32]byte, fee_ *big.Int, addStake_ *big.Int, owner_ common.Address, name_ string, tags_ []string) (*types.Transaction, error) { - return _ModelRegistry.contract.Transact(opts, "modelRegister", modelId_, ipfsCID_, fee_, addStake_, owner_, name_, tags_) +// Solidity: function modelRegister(bytes32 modelId_, bytes32 ipfsCID_, uint256 fee_, uint256 amount_, string name_, string[] tags_) returns() +func (_ModelRegistry *ModelRegistryTransactor) ModelRegister(opts *bind.TransactOpts, modelId_ [32]byte, ipfsCID_ [32]byte, fee_ *big.Int, amount_ *big.Int, name_ string, tags_ []string) (*types.Transaction, error) { + return _ModelRegistry.contract.Transact(opts, "modelRegister", modelId_, ipfsCID_, fee_, amount_, name_, tags_) } -// ModelRegister is a paid mutator transaction binding the contract method 0x82806227. +// ModelRegister is a paid mutator transaction binding the contract method 0xec2581a1. // -// Solidity: function modelRegister(bytes32 modelId_, bytes32 ipfsCID_, uint256 fee_, uint256 addStake_, address owner_, string name_, string[] tags_) returns() -func (_ModelRegistry *ModelRegistrySession) ModelRegister(modelId_ [32]byte, ipfsCID_ [32]byte, fee_ *big.Int, addStake_ *big.Int, owner_ common.Address, name_ string, tags_ []string) (*types.Transaction, error) { - return _ModelRegistry.Contract.ModelRegister(&_ModelRegistry.TransactOpts, modelId_, ipfsCID_, fee_, addStake_, owner_, name_, tags_) +// Solidity: function modelRegister(bytes32 modelId_, bytes32 ipfsCID_, uint256 fee_, uint256 amount_, string name_, string[] tags_) returns() +func (_ModelRegistry *ModelRegistrySession) ModelRegister(modelId_ [32]byte, ipfsCID_ [32]byte, fee_ *big.Int, amount_ *big.Int, name_ string, tags_ []string) (*types.Transaction, error) { + return _ModelRegistry.Contract.ModelRegister(&_ModelRegistry.TransactOpts, modelId_, ipfsCID_, fee_, amount_, name_, tags_) } -// ModelRegister is a paid mutator transaction binding the contract method 0x82806227. +// ModelRegister is a paid mutator transaction binding the contract method 0xec2581a1. // -// Solidity: function modelRegister(bytes32 modelId_, bytes32 ipfsCID_, uint256 fee_, uint256 addStake_, address owner_, string name_, string[] tags_) returns() -func (_ModelRegistry *ModelRegistryTransactorSession) ModelRegister(modelId_ [32]byte, ipfsCID_ [32]byte, fee_ *big.Int, addStake_ *big.Int, owner_ common.Address, name_ string, tags_ []string) (*types.Transaction, error) { - return _ModelRegistry.Contract.ModelRegister(&_ModelRegistry.TransactOpts, modelId_, ipfsCID_, fee_, addStake_, owner_, name_, tags_) +// Solidity: function modelRegister(bytes32 modelId_, bytes32 ipfsCID_, uint256 fee_, uint256 amount_, string name_, string[] tags_) returns() +func (_ModelRegistry *ModelRegistryTransactorSession) ModelRegister(modelId_ [32]byte, ipfsCID_ [32]byte, fee_ *big.Int, amount_ *big.Int, name_ string, tags_ []string) (*types.Transaction, error) { + return _ModelRegistry.Contract.ModelRegister(&_ModelRegistry.TransactOpts, modelId_, ipfsCID_, fee_, amount_, name_, tags_) } -// SetModelMinimumStake is a paid mutator transaction binding the contract method 0x57fb5355. +// ModelSetMinStake is a paid mutator transaction binding the contract method 0x78998329. // -// Solidity: function setModelMinimumStake(uint256 modelMinimumStake_) returns() -func (_ModelRegistry *ModelRegistryTransactor) SetModelMinimumStake(opts *bind.TransactOpts, modelMinimumStake_ *big.Int) (*types.Transaction, error) { - return _ModelRegistry.contract.Transact(opts, "setModelMinimumStake", modelMinimumStake_) +// Solidity: function modelSetMinStake(uint256 modelMinimumStake_) returns() +func (_ModelRegistry *ModelRegistryTransactor) ModelSetMinStake(opts *bind.TransactOpts, modelMinimumStake_ *big.Int) (*types.Transaction, error) { + return _ModelRegistry.contract.Transact(opts, "modelSetMinStake", modelMinimumStake_) } -// SetModelMinimumStake is a paid mutator transaction binding the contract method 0x57fb5355. +// ModelSetMinStake is a paid mutator transaction binding the contract method 0x78998329. // -// Solidity: function setModelMinimumStake(uint256 modelMinimumStake_) returns() -func (_ModelRegistry *ModelRegistrySession) SetModelMinimumStake(modelMinimumStake_ *big.Int) (*types.Transaction, error) { - return _ModelRegistry.Contract.SetModelMinimumStake(&_ModelRegistry.TransactOpts, modelMinimumStake_) +// Solidity: function modelSetMinStake(uint256 modelMinimumStake_) returns() +func (_ModelRegistry *ModelRegistrySession) ModelSetMinStake(modelMinimumStake_ *big.Int) (*types.Transaction, error) { + return _ModelRegistry.Contract.ModelSetMinStake(&_ModelRegistry.TransactOpts, modelMinimumStake_) } -// SetModelMinimumStake is a paid mutator transaction binding the contract method 0x57fb5355. +// ModelSetMinStake is a paid mutator transaction binding the contract method 0x78998329. // -// Solidity: function setModelMinimumStake(uint256 modelMinimumStake_) returns() -func (_ModelRegistry *ModelRegistryTransactorSession) SetModelMinimumStake(modelMinimumStake_ *big.Int) (*types.Transaction, error) { - return _ModelRegistry.Contract.SetModelMinimumStake(&_ModelRegistry.TransactOpts, modelMinimumStake_) +// Solidity: function modelSetMinStake(uint256 modelMinimumStake_) returns() +func (_ModelRegistry *ModelRegistryTransactorSession) ModelSetMinStake(modelMinimumStake_ *big.Int) (*types.Transaction, error) { + return _ModelRegistry.Contract.ModelSetMinStake(&_ModelRegistry.TransactOpts, modelMinimumStake_) } // ModelRegistryInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the ModelRegistry contract. @@ -1007,9 +1069,9 @@ func (_ModelRegistry *ModelRegistryFilterer) ParseModelDeregistered(log types.Lo return event, nil } -// ModelRegistryModelMinimumStakeSetIterator is returned from FilterModelMinimumStakeSet and is used to iterate over the raw logs and unpacked data for ModelMinimumStakeSet events raised by the ModelRegistry contract. -type ModelRegistryModelMinimumStakeSetIterator struct { - Event *ModelRegistryModelMinimumStakeSet // Event containing the contract specifics and raw log +// ModelRegistryModelMinimumStakeUpdatedIterator is returned from FilterModelMinimumStakeUpdated and is used to iterate over the raw logs and unpacked data for ModelMinimumStakeUpdated events raised by the ModelRegistry contract. +type ModelRegistryModelMinimumStakeUpdatedIterator struct { + Event *ModelRegistryModelMinimumStakeUpdated // Event containing the contract specifics and raw log contract *bind.BoundContract // Generic contract to use for unpacking event data event string // Event name to use for unpacking event data @@ -1023,7 +1085,7 @@ type ModelRegistryModelMinimumStakeSetIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *ModelRegistryModelMinimumStakeSetIterator) Next() bool { +func (it *ModelRegistryModelMinimumStakeUpdatedIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -1032,7 +1094,7 @@ func (it *ModelRegistryModelMinimumStakeSetIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(ModelRegistryModelMinimumStakeSet) + it.Event = new(ModelRegistryModelMinimumStakeUpdated) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1047,7 +1109,7 @@ func (it *ModelRegistryModelMinimumStakeSetIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(ModelRegistryModelMinimumStakeSet) + it.Event = new(ModelRegistryModelMinimumStakeUpdated) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1063,41 +1125,41 @@ func (it *ModelRegistryModelMinimumStakeSetIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *ModelRegistryModelMinimumStakeSetIterator) Error() error { +func (it *ModelRegistryModelMinimumStakeUpdatedIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *ModelRegistryModelMinimumStakeSetIterator) Close() error { +func (it *ModelRegistryModelMinimumStakeUpdatedIterator) Close() error { it.sub.Unsubscribe() return nil } -// ModelRegistryModelMinimumStakeSet represents a ModelMinimumStakeSet event raised by the ModelRegistry contract. -type ModelRegistryModelMinimumStakeSet struct { - NewStake *big.Int - Raw types.Log // Blockchain specific contextual infos +// ModelRegistryModelMinimumStakeUpdated represents a ModelMinimumStakeUpdated event raised by the ModelRegistry contract. +type ModelRegistryModelMinimumStakeUpdated struct { + ModelMinimumStake *big.Int + Raw types.Log // Blockchain specific contextual infos } -// FilterModelMinimumStakeSet is a free log retrieval operation binding the contract event 0xc6a3fed0c85cd0fe428852d641b4474e85fe04352a84d9c83774e5180eed9bea. +// FilterModelMinimumStakeUpdated is a free log retrieval operation binding the contract event 0x136e2b2828baa18257e8eef3c26df62481c7b16303ca0ebe4202865df5e97d7e. // -// Solidity: event ModelMinimumStakeSet(uint256 newStake) -func (_ModelRegistry *ModelRegistryFilterer) FilterModelMinimumStakeSet(opts *bind.FilterOpts) (*ModelRegistryModelMinimumStakeSetIterator, error) { +// Solidity: event ModelMinimumStakeUpdated(uint256 modelMinimumStake) +func (_ModelRegistry *ModelRegistryFilterer) FilterModelMinimumStakeUpdated(opts *bind.FilterOpts) (*ModelRegistryModelMinimumStakeUpdatedIterator, error) { - logs, sub, err := _ModelRegistry.contract.FilterLogs(opts, "ModelMinimumStakeSet") + logs, sub, err := _ModelRegistry.contract.FilterLogs(opts, "ModelMinimumStakeUpdated") if err != nil { return nil, err } - return &ModelRegistryModelMinimumStakeSetIterator{contract: _ModelRegistry.contract, event: "ModelMinimumStakeSet", logs: logs, sub: sub}, nil + return &ModelRegistryModelMinimumStakeUpdatedIterator{contract: _ModelRegistry.contract, event: "ModelMinimumStakeUpdated", logs: logs, sub: sub}, nil } -// WatchModelMinimumStakeSet is a free log subscription operation binding the contract event 0xc6a3fed0c85cd0fe428852d641b4474e85fe04352a84d9c83774e5180eed9bea. +// WatchModelMinimumStakeUpdated is a free log subscription operation binding the contract event 0x136e2b2828baa18257e8eef3c26df62481c7b16303ca0ebe4202865df5e97d7e. // -// Solidity: event ModelMinimumStakeSet(uint256 newStake) -func (_ModelRegistry *ModelRegistryFilterer) WatchModelMinimumStakeSet(opts *bind.WatchOpts, sink chan<- *ModelRegistryModelMinimumStakeSet) (event.Subscription, error) { +// Solidity: event ModelMinimumStakeUpdated(uint256 modelMinimumStake) +func (_ModelRegistry *ModelRegistryFilterer) WatchModelMinimumStakeUpdated(opts *bind.WatchOpts, sink chan<- *ModelRegistryModelMinimumStakeUpdated) (event.Subscription, error) { - logs, sub, err := _ModelRegistry.contract.WatchLogs(opts, "ModelMinimumStakeSet") + logs, sub, err := _ModelRegistry.contract.WatchLogs(opts, "ModelMinimumStakeUpdated") if err != nil { return nil, err } @@ -1107,8 +1169,8 @@ func (_ModelRegistry *ModelRegistryFilterer) WatchModelMinimumStakeSet(opts *bin select { case log := <-logs: // New log arrived, parse the event and forward to the user - event := new(ModelRegistryModelMinimumStakeSet) - if err := _ModelRegistry.contract.UnpackLog(event, "ModelMinimumStakeSet", log); err != nil { + event := new(ModelRegistryModelMinimumStakeUpdated) + if err := _ModelRegistry.contract.UnpackLog(event, "ModelMinimumStakeUpdated", log); err != nil { return err } event.Raw = log @@ -1129,12 +1191,12 @@ func (_ModelRegistry *ModelRegistryFilterer) WatchModelMinimumStakeSet(opts *bin }), nil } -// ParseModelMinimumStakeSet is a log parse operation binding the contract event 0xc6a3fed0c85cd0fe428852d641b4474e85fe04352a84d9c83774e5180eed9bea. +// ParseModelMinimumStakeUpdated is a log parse operation binding the contract event 0x136e2b2828baa18257e8eef3c26df62481c7b16303ca0ebe4202865df5e97d7e. // -// Solidity: event ModelMinimumStakeSet(uint256 newStake) -func (_ModelRegistry *ModelRegistryFilterer) ParseModelMinimumStakeSet(log types.Log) (*ModelRegistryModelMinimumStakeSet, error) { - event := new(ModelRegistryModelMinimumStakeSet) - if err := _ModelRegistry.contract.UnpackLog(event, "ModelMinimumStakeSet", log); err != nil { +// Solidity: event ModelMinimumStakeUpdated(uint256 modelMinimumStake) +func (_ModelRegistry *ModelRegistryFilterer) ParseModelMinimumStakeUpdated(log types.Log) (*ModelRegistryModelMinimumStakeUpdated, error) { + event := new(ModelRegistryModelMinimumStakeUpdated) + if err := _ModelRegistry.contract.UnpackLog(event, "ModelMinimumStakeUpdated", log); err != nil { return nil, err } event.Raw = log diff --git a/proxy-router/contracts/morpheustoken/MorpheusToken.go b/proxy-router/internal/repositories/contracts/bindings/morpheustoken/MorpheusToken.go similarity index 88% rename from proxy-router/contracts/morpheustoken/MorpheusToken.go rename to proxy-router/internal/repositories/contracts/bindings/morpheustoken/MorpheusToken.go index 35e7a822..ee902aca 100644 --- a/proxy-router/contracts/morpheustoken/MorpheusToken.go +++ b/proxy-router/internal/repositories/contracts/bindings/morpheustoken/MorpheusToken.go @@ -31,7 +31,7 @@ var ( // MorpheusTokenMetaData contains all meta data concerning the MorpheusToken contract. var MorpheusTokenMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"INITIAL_SUPPLUY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", } // MorpheusTokenABI is the input ABI used to generate the binding from. @@ -180,6 +180,37 @@ func (_MorpheusToken *MorpheusTokenTransactorRaw) Transact(opts *bind.TransactOp return _MorpheusToken.Contract.contract.Transact(opts, method, params...) } +// INITIALSUPPLUY is a free data retrieval call binding the contract method 0x5ce0b492. +// +// Solidity: function INITIAL_SUPPLUY() view returns(uint256) +func (_MorpheusToken *MorpheusTokenCaller) INITIALSUPPLUY(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _MorpheusToken.contract.Call(opts, &out, "INITIAL_SUPPLUY") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// INITIALSUPPLUY is a free data retrieval call binding the contract method 0x5ce0b492. +// +// Solidity: function INITIAL_SUPPLUY() view returns(uint256) +func (_MorpheusToken *MorpheusTokenSession) INITIALSUPPLUY() (*big.Int, error) { + return _MorpheusToken.Contract.INITIALSUPPLUY(&_MorpheusToken.CallOpts) +} + +// INITIALSUPPLUY is a free data retrieval call binding the contract method 0x5ce0b492. +// +// Solidity: function INITIAL_SUPPLUY() view returns(uint256) +func (_MorpheusToken *MorpheusTokenCallerSession) INITIALSUPPLUY() (*big.Int, error) { + return _MorpheusToken.Contract.INITIALSUPPLUY(&_MorpheusToken.CallOpts) +} + // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. // // Solidity: function allowance(address owner, address spender) view returns(uint256) diff --git a/proxy-router/contracts/providerregistry/ProviderRegistry.go b/proxy-router/internal/repositories/contracts/bindings/providerregistry/ProviderRegistry.go similarity index 57% rename from proxy-router/contracts/providerregistry/ProviderRegistry.go rename to proxy-router/internal/repositories/contracts/bindings/providerregistry/ProviderRegistry.go index 0dabde87..f49c833d 100644 --- a/proxy-router/contracts/providerregistry/ProviderRegistry.go +++ b/proxy-router/internal/repositories/contracts/bindings/providerregistry/ProviderRegistry.go @@ -51,7 +51,7 @@ type IProviderStorageProvider struct { // ProviderRegistryMetaData contains all meta data concerning the ProviderRegistry contract. var ProviderRegistryMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[],\"name\":\"ErrNoStake\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrNoWithdrawableStake\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrProviderNotDeleted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwnerOrProvider\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account_\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProviderHasActiveBids\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProviderNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StakeTooLow\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"storageSlot\",\"type\":\"bytes32\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"}],\"name\":\"ProviderDeregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newStake\",\"type\":\"uint256\"}],\"name\":\"ProviderMinStakeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"}],\"name\":\"ProviderRegisteredUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ProviderWithdrawnStake\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BID_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DIAMOND_OWNABLE_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROVIDER_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"__ProviderRegistry_init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bidId\",\"type\":\"bytes32\"}],\"name\":\"bids\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"pricePerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"deletedAt\",\"type\":\"uint128\"}],\"internalType\":\"structIBidStorage.Bid\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"}],\"name\":\"getProvider\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"endpoint\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"limitPeriodEnd\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"limitPeriodEarned\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isDeleted\",\"type\":\"bool\"}],\"internalType\":\"structIProviderStorage.Provider\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getToken\",\"outputs\":[{\"internalType\":\"contractIERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"}],\"name\":\"isProviderExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"modelActiveBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"modelBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"providerActiveBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"providerBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"}],\"name\":\"providerDeregister\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"providerMinimumStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"providerAddress_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"endpoint_\",\"type\":\"string\"}],\"name\":\"providerRegister\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"providerMinimumStake_\",\"type\":\"uint256\"}],\"name\":\"providerSetMinStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"}],\"name\":\"providerWithdrawStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account_\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProviderHasActiveBids\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProviderHasAlreadyDeregistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProviderNoStake\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProviderNotDeregistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProviderNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProviderNothingToWithdraw\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAmount\",\"type\":\"uint256\"}],\"name\":\"ProviderStakeTooLow\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"storageSlot\",\"type\":\"bytes32\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"}],\"name\":\"ProviderDeregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"providerMinimumStake\",\"type\":\"uint256\"}],\"name\":\"ProviderMinimumStakeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"}],\"name\":\"ProviderRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ProviderWithdrawn\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BIDS_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DIAMOND_OWNABLE_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROVIDERS_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"__ProviderRegistry_init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getActiveProviders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bidId_\",\"type\":\"bytes32\"}],\"name\":\"getBid\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"pricePerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"deletedAt\",\"type\":\"uint128\"}],\"internalType\":\"structIBidStorage.Bid\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"}],\"name\":\"getIsProviderActive\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getModelActiveBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getModelBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"}],\"name\":\"getProvider\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"endpoint\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"limitPeriodEnd\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"limitPeriodEarned\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isDeleted\",\"type\":\"bool\"}],\"internalType\":\"structIProviderStorage.Provider\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getProviderActiveBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getProviderBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProviderMinimumStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bidId_\",\"type\":\"bytes32\"}],\"name\":\"isBidActive\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"providerDeregister\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"endpoint_\",\"type\":\"string\"}],\"name\":\"providerRegister\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"providerMinimumStake_\",\"type\":\"uint256\"}],\"name\":\"providerSetMinStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", } // ProviderRegistryABI is the input ABI used to generate the binding from. @@ -200,12 +200,12 @@ func (_ProviderRegistry *ProviderRegistryTransactorRaw) Transact(opts *bind.Tran return _ProviderRegistry.Contract.contract.Transact(opts, method, params...) } -// BIDSTORAGESLOT is a free data retrieval call binding the contract method 0x4fa816f2. +// BIDSSTORAGESLOT is a free data retrieval call binding the contract method 0x266ccff0. // -// Solidity: function BID_STORAGE_SLOT() view returns(bytes32) -func (_ProviderRegistry *ProviderRegistryCaller) BIDSTORAGESLOT(opts *bind.CallOpts) ([32]byte, error) { +// Solidity: function BIDS_STORAGE_SLOT() view returns(bytes32) +func (_ProviderRegistry *ProviderRegistryCaller) BIDSSTORAGESLOT(opts *bind.CallOpts) ([32]byte, error) { var out []interface{} - err := _ProviderRegistry.contract.Call(opts, &out, "BID_STORAGE_SLOT") + err := _ProviderRegistry.contract.Call(opts, &out, "BIDS_STORAGE_SLOT") if err != nil { return *new([32]byte), err @@ -217,18 +217,18 @@ func (_ProviderRegistry *ProviderRegistryCaller) BIDSTORAGESLOT(opts *bind.CallO } -// BIDSTORAGESLOT is a free data retrieval call binding the contract method 0x4fa816f2. +// BIDSSTORAGESLOT is a free data retrieval call binding the contract method 0x266ccff0. // -// Solidity: function BID_STORAGE_SLOT() view returns(bytes32) -func (_ProviderRegistry *ProviderRegistrySession) BIDSTORAGESLOT() ([32]byte, error) { - return _ProviderRegistry.Contract.BIDSTORAGESLOT(&_ProviderRegistry.CallOpts) +// Solidity: function BIDS_STORAGE_SLOT() view returns(bytes32) +func (_ProviderRegistry *ProviderRegistrySession) BIDSSTORAGESLOT() ([32]byte, error) { + return _ProviderRegistry.Contract.BIDSSTORAGESLOT(&_ProviderRegistry.CallOpts) } -// BIDSTORAGESLOT is a free data retrieval call binding the contract method 0x4fa816f2. +// BIDSSTORAGESLOT is a free data retrieval call binding the contract method 0x266ccff0. // -// Solidity: function BID_STORAGE_SLOT() view returns(bytes32) -func (_ProviderRegistry *ProviderRegistryCallerSession) BIDSTORAGESLOT() ([32]byte, error) { - return _ProviderRegistry.Contract.BIDSTORAGESLOT(&_ProviderRegistry.CallOpts) +// Solidity: function BIDS_STORAGE_SLOT() view returns(bytes32) +func (_ProviderRegistry *ProviderRegistryCallerSession) BIDSSTORAGESLOT() ([32]byte, error) { + return _ProviderRegistry.Contract.BIDSSTORAGESLOT(&_ProviderRegistry.CallOpts) } // DIAMONDOWNABLESTORAGESLOT is a free data retrieval call binding the contract method 0x4ac3371e. @@ -262,12 +262,12 @@ func (_ProviderRegistry *ProviderRegistryCallerSession) DIAMONDOWNABLESTORAGESLO return _ProviderRegistry.Contract.DIAMONDOWNABLESTORAGESLOT(&_ProviderRegistry.CallOpts) } -// PROVIDERSTORAGESLOT is a free data retrieval call binding the contract method 0x490713b1. +// PROVIDERSSTORAGESLOT is a free data retrieval call binding the contract method 0xc51830f6. // -// Solidity: function PROVIDER_STORAGE_SLOT() view returns(bytes32) -func (_ProviderRegistry *ProviderRegistryCaller) PROVIDERSTORAGESLOT(opts *bind.CallOpts) ([32]byte, error) { +// Solidity: function PROVIDERS_STORAGE_SLOT() view returns(bytes32) +func (_ProviderRegistry *ProviderRegistryCaller) PROVIDERSSTORAGESLOT(opts *bind.CallOpts) ([32]byte, error) { var out []interface{} - err := _ProviderRegistry.contract.Call(opts, &out, "PROVIDER_STORAGE_SLOT") + err := _ProviderRegistry.contract.Call(opts, &out, "PROVIDERS_STORAGE_SLOT") if err != nil { return *new([32]byte), err @@ -279,26 +279,57 @@ func (_ProviderRegistry *ProviderRegistryCaller) PROVIDERSTORAGESLOT(opts *bind. } -// PROVIDERSTORAGESLOT is a free data retrieval call binding the contract method 0x490713b1. +// PROVIDERSSTORAGESLOT is a free data retrieval call binding the contract method 0xc51830f6. // -// Solidity: function PROVIDER_STORAGE_SLOT() view returns(bytes32) -func (_ProviderRegistry *ProviderRegistrySession) PROVIDERSTORAGESLOT() ([32]byte, error) { - return _ProviderRegistry.Contract.PROVIDERSTORAGESLOT(&_ProviderRegistry.CallOpts) +// Solidity: function PROVIDERS_STORAGE_SLOT() view returns(bytes32) +func (_ProviderRegistry *ProviderRegistrySession) PROVIDERSSTORAGESLOT() ([32]byte, error) { + return _ProviderRegistry.Contract.PROVIDERSSTORAGESLOT(&_ProviderRegistry.CallOpts) } -// PROVIDERSTORAGESLOT is a free data retrieval call binding the contract method 0x490713b1. +// PROVIDERSSTORAGESLOT is a free data retrieval call binding the contract method 0xc51830f6. // -// Solidity: function PROVIDER_STORAGE_SLOT() view returns(bytes32) -func (_ProviderRegistry *ProviderRegistryCallerSession) PROVIDERSTORAGESLOT() ([32]byte, error) { - return _ProviderRegistry.Contract.PROVIDERSTORAGESLOT(&_ProviderRegistry.CallOpts) +// Solidity: function PROVIDERS_STORAGE_SLOT() view returns(bytes32) +func (_ProviderRegistry *ProviderRegistryCallerSession) PROVIDERSSTORAGESLOT() ([32]byte, error) { + return _ProviderRegistry.Contract.PROVIDERSSTORAGESLOT(&_ProviderRegistry.CallOpts) } -// Bids is a free data retrieval call binding the contract method 0x8f98eeda. +// GetActiveProviders is a free data retrieval call binding the contract method 0xd5472642. // -// Solidity: function bids(bytes32 bidId) view returns((address,bytes32,uint256,uint256,uint128,uint128)) -func (_ProviderRegistry *ProviderRegistryCaller) Bids(opts *bind.CallOpts, bidId [32]byte) (IBidStorageBid, error) { +// Solidity: function getActiveProviders(uint256 offset_, uint256 limit_) view returns(address[]) +func (_ProviderRegistry *ProviderRegistryCaller) GetActiveProviders(opts *bind.CallOpts, offset_ *big.Int, limit_ *big.Int) ([]common.Address, error) { var out []interface{} - err := _ProviderRegistry.contract.Call(opts, &out, "bids", bidId) + err := _ProviderRegistry.contract.Call(opts, &out, "getActiveProviders", offset_, limit_) + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// GetActiveProviders is a free data retrieval call binding the contract method 0xd5472642. +// +// Solidity: function getActiveProviders(uint256 offset_, uint256 limit_) view returns(address[]) +func (_ProviderRegistry *ProviderRegistrySession) GetActiveProviders(offset_ *big.Int, limit_ *big.Int) ([]common.Address, error) { + return _ProviderRegistry.Contract.GetActiveProviders(&_ProviderRegistry.CallOpts, offset_, limit_) +} + +// GetActiveProviders is a free data retrieval call binding the contract method 0xd5472642. +// +// Solidity: function getActiveProviders(uint256 offset_, uint256 limit_) view returns(address[]) +func (_ProviderRegistry *ProviderRegistryCallerSession) GetActiveProviders(offset_ *big.Int, limit_ *big.Int) ([]common.Address, error) { + return _ProviderRegistry.Contract.GetActiveProviders(&_ProviderRegistry.CallOpts, offset_, limit_) +} + +// GetBid is a free data retrieval call binding the contract method 0x91704e1e. +// +// Solidity: function getBid(bytes32 bidId_) view returns((address,bytes32,uint256,uint256,uint128,uint128)) +func (_ProviderRegistry *ProviderRegistryCaller) GetBid(opts *bind.CallOpts, bidId_ [32]byte) (IBidStorageBid, error) { + var out []interface{} + err := _ProviderRegistry.contract.Call(opts, &out, "getBid", bidId_) if err != nil { return *new(IBidStorageBid), err @@ -310,119 +341,150 @@ func (_ProviderRegistry *ProviderRegistryCaller) Bids(opts *bind.CallOpts, bidId } -// Bids is a free data retrieval call binding the contract method 0x8f98eeda. +// GetBid is a free data retrieval call binding the contract method 0x91704e1e. // -// Solidity: function bids(bytes32 bidId) view returns((address,bytes32,uint256,uint256,uint128,uint128)) -func (_ProviderRegistry *ProviderRegistrySession) Bids(bidId [32]byte) (IBidStorageBid, error) { - return _ProviderRegistry.Contract.Bids(&_ProviderRegistry.CallOpts, bidId) +// Solidity: function getBid(bytes32 bidId_) view returns((address,bytes32,uint256,uint256,uint128,uint128)) +func (_ProviderRegistry *ProviderRegistrySession) GetBid(bidId_ [32]byte) (IBidStorageBid, error) { + return _ProviderRegistry.Contract.GetBid(&_ProviderRegistry.CallOpts, bidId_) } -// Bids is a free data retrieval call binding the contract method 0x8f98eeda. +// GetBid is a free data retrieval call binding the contract method 0x91704e1e. // -// Solidity: function bids(bytes32 bidId) view returns((address,bytes32,uint256,uint256,uint128,uint128)) -func (_ProviderRegistry *ProviderRegistryCallerSession) Bids(bidId [32]byte) (IBidStorageBid, error) { - return _ProviderRegistry.Contract.Bids(&_ProviderRegistry.CallOpts, bidId) +// Solidity: function getBid(bytes32 bidId_) view returns((address,bytes32,uint256,uint256,uint128,uint128)) +func (_ProviderRegistry *ProviderRegistryCallerSession) GetBid(bidId_ [32]byte) (IBidStorageBid, error) { + return _ProviderRegistry.Contract.GetBid(&_ProviderRegistry.CallOpts, bidId_) } -// GetProvider is a free data retrieval call binding the contract method 0x55f21eb7. +// GetIsProviderActive is a free data retrieval call binding the contract method 0x63ef175d. // -// Solidity: function getProvider(address provider) view returns((string,uint256,uint128,uint128,uint256,bool)) -func (_ProviderRegistry *ProviderRegistryCaller) GetProvider(opts *bind.CallOpts, provider common.Address) (IProviderStorageProvider, error) { +// Solidity: function getIsProviderActive(address provider_) view returns(bool) +func (_ProviderRegistry *ProviderRegistryCaller) GetIsProviderActive(opts *bind.CallOpts, provider_ common.Address) (bool, error) { var out []interface{} - err := _ProviderRegistry.contract.Call(opts, &out, "getProvider", provider) + err := _ProviderRegistry.contract.Call(opts, &out, "getIsProviderActive", provider_) if err != nil { - return *new(IProviderStorageProvider), err + return *new(bool), err } - out0 := *abi.ConvertType(out[0], new(IProviderStorageProvider)).(*IProviderStorageProvider) + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) return out0, err } -// GetProvider is a free data retrieval call binding the contract method 0x55f21eb7. +// GetIsProviderActive is a free data retrieval call binding the contract method 0x63ef175d. // -// Solidity: function getProvider(address provider) view returns((string,uint256,uint128,uint128,uint256,bool)) -func (_ProviderRegistry *ProviderRegistrySession) GetProvider(provider common.Address) (IProviderStorageProvider, error) { - return _ProviderRegistry.Contract.GetProvider(&_ProviderRegistry.CallOpts, provider) +// Solidity: function getIsProviderActive(address provider_) view returns(bool) +func (_ProviderRegistry *ProviderRegistrySession) GetIsProviderActive(provider_ common.Address) (bool, error) { + return _ProviderRegistry.Contract.GetIsProviderActive(&_ProviderRegistry.CallOpts, provider_) } -// GetProvider is a free data retrieval call binding the contract method 0x55f21eb7. +// GetIsProviderActive is a free data retrieval call binding the contract method 0x63ef175d. // -// Solidity: function getProvider(address provider) view returns((string,uint256,uint128,uint128,uint256,bool)) -func (_ProviderRegistry *ProviderRegistryCallerSession) GetProvider(provider common.Address) (IProviderStorageProvider, error) { - return _ProviderRegistry.Contract.GetProvider(&_ProviderRegistry.CallOpts, provider) +// Solidity: function getIsProviderActive(address provider_) view returns(bool) +func (_ProviderRegistry *ProviderRegistryCallerSession) GetIsProviderActive(provider_ common.Address) (bool, error) { + return _ProviderRegistry.Contract.GetIsProviderActive(&_ProviderRegistry.CallOpts, provider_) } -// GetToken is a free data retrieval call binding the contract method 0x21df0da7. +// GetModelActiveBids is a free data retrieval call binding the contract method 0x8a683b6e. // -// Solidity: function getToken() view returns(address) -func (_ProviderRegistry *ProviderRegistryCaller) GetToken(opts *bind.CallOpts) (common.Address, error) { +// Solidity: function getModelActiveBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ProviderRegistry *ProviderRegistryCaller) GetModelActiveBids(opts *bind.CallOpts, modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { var out []interface{} - err := _ProviderRegistry.contract.Call(opts, &out, "getToken") + err := _ProviderRegistry.contract.Call(opts, &out, "getModelActiveBids", modelId_, offset_, limit_) if err != nil { - return *new(common.Address), err + return *new([][32]byte), err } - out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) return out0, err } -// GetToken is a free data retrieval call binding the contract method 0x21df0da7. +// GetModelActiveBids is a free data retrieval call binding the contract method 0x8a683b6e. // -// Solidity: function getToken() view returns(address) -func (_ProviderRegistry *ProviderRegistrySession) GetToken() (common.Address, error) { - return _ProviderRegistry.Contract.GetToken(&_ProviderRegistry.CallOpts) +// Solidity: function getModelActiveBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ProviderRegistry *ProviderRegistrySession) GetModelActiveBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _ProviderRegistry.Contract.GetModelActiveBids(&_ProviderRegistry.CallOpts, modelId_, offset_, limit_) } -// GetToken is a free data retrieval call binding the contract method 0x21df0da7. +// GetModelActiveBids is a free data retrieval call binding the contract method 0x8a683b6e. // -// Solidity: function getToken() view returns(address) -func (_ProviderRegistry *ProviderRegistryCallerSession) GetToken() (common.Address, error) { - return _ProviderRegistry.Contract.GetToken(&_ProviderRegistry.CallOpts) +// Solidity: function getModelActiveBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ProviderRegistry *ProviderRegistryCallerSession) GetModelActiveBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _ProviderRegistry.Contract.GetModelActiveBids(&_ProviderRegistry.CallOpts, modelId_, offset_, limit_) } -// IsProviderExists is a free data retrieval call binding the contract method 0x41876cc4. +// GetModelBids is a free data retrieval call binding the contract method 0xfade17b1. // -// Solidity: function isProviderExists(address provider_) view returns(bool) -func (_ProviderRegistry *ProviderRegistryCaller) IsProviderExists(opts *bind.CallOpts, provider_ common.Address) (bool, error) { +// Solidity: function getModelBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ProviderRegistry *ProviderRegistryCaller) GetModelBids(opts *bind.CallOpts, modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { var out []interface{} - err := _ProviderRegistry.contract.Call(opts, &out, "isProviderExists", provider_) + err := _ProviderRegistry.contract.Call(opts, &out, "getModelBids", modelId_, offset_, limit_) if err != nil { - return *new(bool), err + return *new([][32]byte), err } - out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) + + return out0, err + +} + +// GetModelBids is a free data retrieval call binding the contract method 0xfade17b1. +// +// Solidity: function getModelBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ProviderRegistry *ProviderRegistrySession) GetModelBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _ProviderRegistry.Contract.GetModelBids(&_ProviderRegistry.CallOpts, modelId_, offset_, limit_) +} + +// GetModelBids is a free data retrieval call binding the contract method 0xfade17b1. +// +// Solidity: function getModelBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ProviderRegistry *ProviderRegistryCallerSession) GetModelBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _ProviderRegistry.Contract.GetModelBids(&_ProviderRegistry.CallOpts, modelId_, offset_, limit_) +} + +// GetProvider is a free data retrieval call binding the contract method 0x55f21eb7. +// +// Solidity: function getProvider(address provider_) view returns((string,uint256,uint128,uint128,uint256,bool)) +func (_ProviderRegistry *ProviderRegistryCaller) GetProvider(opts *bind.CallOpts, provider_ common.Address) (IProviderStorageProvider, error) { + var out []interface{} + err := _ProviderRegistry.contract.Call(opts, &out, "getProvider", provider_) + + if err != nil { + return *new(IProviderStorageProvider), err + } + + out0 := *abi.ConvertType(out[0], new(IProviderStorageProvider)).(*IProviderStorageProvider) return out0, err } -// IsProviderExists is a free data retrieval call binding the contract method 0x41876cc4. +// GetProvider is a free data retrieval call binding the contract method 0x55f21eb7. // -// Solidity: function isProviderExists(address provider_) view returns(bool) -func (_ProviderRegistry *ProviderRegistrySession) IsProviderExists(provider_ common.Address) (bool, error) { - return _ProviderRegistry.Contract.IsProviderExists(&_ProviderRegistry.CallOpts, provider_) +// Solidity: function getProvider(address provider_) view returns((string,uint256,uint128,uint128,uint256,bool)) +func (_ProviderRegistry *ProviderRegistrySession) GetProvider(provider_ common.Address) (IProviderStorageProvider, error) { + return _ProviderRegistry.Contract.GetProvider(&_ProviderRegistry.CallOpts, provider_) } -// IsProviderExists is a free data retrieval call binding the contract method 0x41876cc4. +// GetProvider is a free data retrieval call binding the contract method 0x55f21eb7. // -// Solidity: function isProviderExists(address provider_) view returns(bool) -func (_ProviderRegistry *ProviderRegistryCallerSession) IsProviderExists(provider_ common.Address) (bool, error) { - return _ProviderRegistry.Contract.IsProviderExists(&_ProviderRegistry.CallOpts, provider_) +// Solidity: function getProvider(address provider_) view returns((string,uint256,uint128,uint128,uint256,bool)) +func (_ProviderRegistry *ProviderRegistryCallerSession) GetProvider(provider_ common.Address) (IProviderStorageProvider, error) { + return _ProviderRegistry.Contract.GetProvider(&_ProviderRegistry.CallOpts, provider_) } -// ModelActiveBids is a free data retrieval call binding the contract method 0x3fd8e5e3. +// GetProviderActiveBids is a free data retrieval call binding the contract method 0xaf5b77ca. // -// Solidity: function modelActiveBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_ProviderRegistry *ProviderRegistryCaller) ModelActiveBids(opts *bind.CallOpts, modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { +// Solidity: function getProviderActiveBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ProviderRegistry *ProviderRegistryCaller) GetProviderActiveBids(opts *bind.CallOpts, provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { var out []interface{} - err := _ProviderRegistry.contract.Call(opts, &out, "modelActiveBids", modelId_, offset_, limit_) + err := _ProviderRegistry.contract.Call(opts, &out, "getProviderActiveBids", provider_, offset_, limit_) if err != nil { return *new([][32]byte), err @@ -434,26 +496,26 @@ func (_ProviderRegistry *ProviderRegistryCaller) ModelActiveBids(opts *bind.Call } -// ModelActiveBids is a free data retrieval call binding the contract method 0x3fd8e5e3. +// GetProviderActiveBids is a free data retrieval call binding the contract method 0xaf5b77ca. // -// Solidity: function modelActiveBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_ProviderRegistry *ProviderRegistrySession) ModelActiveBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - return _ProviderRegistry.Contract.ModelActiveBids(&_ProviderRegistry.CallOpts, modelId_, offset_, limit_) +// Solidity: function getProviderActiveBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ProviderRegistry *ProviderRegistrySession) GetProviderActiveBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _ProviderRegistry.Contract.GetProviderActiveBids(&_ProviderRegistry.CallOpts, provider_, offset_, limit_) } -// ModelActiveBids is a free data retrieval call binding the contract method 0x3fd8e5e3. +// GetProviderActiveBids is a free data retrieval call binding the contract method 0xaf5b77ca. // -// Solidity: function modelActiveBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_ProviderRegistry *ProviderRegistryCallerSession) ModelActiveBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - return _ProviderRegistry.Contract.ModelActiveBids(&_ProviderRegistry.CallOpts, modelId_, offset_, limit_) +// Solidity: function getProviderActiveBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ProviderRegistry *ProviderRegistryCallerSession) GetProviderActiveBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _ProviderRegistry.Contract.GetProviderActiveBids(&_ProviderRegistry.CallOpts, provider_, offset_, limit_) } -// ModelBids is a free data retrieval call binding the contract method 0x5954d1b3. +// GetProviderBids is a free data retrieval call binding the contract method 0x59d435c4. // -// Solidity: function modelBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_ProviderRegistry *ProviderRegistryCaller) ModelBids(opts *bind.CallOpts, modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { +// Solidity: function getProviderBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ProviderRegistry *ProviderRegistryCaller) GetProviderBids(opts *bind.CallOpts, provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { var out []interface{} - err := _ProviderRegistry.contract.Call(opts, &out, "modelBids", modelId_, offset_, limit_) + err := _ProviderRegistry.contract.Call(opts, &out, "getProviderBids", provider_, offset_, limit_) if err != nil { return *new([][32]byte), err @@ -465,142 +527,142 @@ func (_ProviderRegistry *ProviderRegistryCaller) ModelBids(opts *bind.CallOpts, } -// ModelBids is a free data retrieval call binding the contract method 0x5954d1b3. +// GetProviderBids is a free data retrieval call binding the contract method 0x59d435c4. // -// Solidity: function modelBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_ProviderRegistry *ProviderRegistrySession) ModelBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - return _ProviderRegistry.Contract.ModelBids(&_ProviderRegistry.CallOpts, modelId_, offset_, limit_) +// Solidity: function getProviderBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ProviderRegistry *ProviderRegistrySession) GetProviderBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _ProviderRegistry.Contract.GetProviderBids(&_ProviderRegistry.CallOpts, provider_, offset_, limit_) } -// ModelBids is a free data retrieval call binding the contract method 0x5954d1b3. +// GetProviderBids is a free data retrieval call binding the contract method 0x59d435c4. // -// Solidity: function modelBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_ProviderRegistry *ProviderRegistryCallerSession) ModelBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - return _ProviderRegistry.Contract.ModelBids(&_ProviderRegistry.CallOpts, modelId_, offset_, limit_) +// Solidity: function getProviderBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ProviderRegistry *ProviderRegistryCallerSession) GetProviderBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _ProviderRegistry.Contract.GetProviderBids(&_ProviderRegistry.CallOpts, provider_, offset_, limit_) } -// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// GetProviderMinimumStake is a free data retrieval call binding the contract method 0x53c029f6. // -// Solidity: function owner() view returns(address) -func (_ProviderRegistry *ProviderRegistryCaller) Owner(opts *bind.CallOpts) (common.Address, error) { +// Solidity: function getProviderMinimumStake() view returns(uint256) +func (_ProviderRegistry *ProviderRegistryCaller) GetProviderMinimumStake(opts *bind.CallOpts) (*big.Int, error) { var out []interface{} - err := _ProviderRegistry.contract.Call(opts, &out, "owner") + err := _ProviderRegistry.contract.Call(opts, &out, "getProviderMinimumStake") if err != nil { - return *new(common.Address), err + return *new(*big.Int), err } - out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) return out0, err } -// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// GetProviderMinimumStake is a free data retrieval call binding the contract method 0x53c029f6. // -// Solidity: function owner() view returns(address) -func (_ProviderRegistry *ProviderRegistrySession) Owner() (common.Address, error) { - return _ProviderRegistry.Contract.Owner(&_ProviderRegistry.CallOpts) +// Solidity: function getProviderMinimumStake() view returns(uint256) +func (_ProviderRegistry *ProviderRegistrySession) GetProviderMinimumStake() (*big.Int, error) { + return _ProviderRegistry.Contract.GetProviderMinimumStake(&_ProviderRegistry.CallOpts) } -// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// GetProviderMinimumStake is a free data retrieval call binding the contract method 0x53c029f6. // -// Solidity: function owner() view returns(address) -func (_ProviderRegistry *ProviderRegistryCallerSession) Owner() (common.Address, error) { - return _ProviderRegistry.Contract.Owner(&_ProviderRegistry.CallOpts) +// Solidity: function getProviderMinimumStake() view returns(uint256) +func (_ProviderRegistry *ProviderRegistryCallerSession) GetProviderMinimumStake() (*big.Int, error) { + return _ProviderRegistry.Contract.GetProviderMinimumStake(&_ProviderRegistry.CallOpts) } -// ProviderActiveBids is a free data retrieval call binding the contract method 0x6dd7d31c. +// GetToken is a free data retrieval call binding the contract method 0x21df0da7. // -// Solidity: function providerActiveBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_ProviderRegistry *ProviderRegistryCaller) ProviderActiveBids(opts *bind.CallOpts, provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { +// Solidity: function getToken() view returns(address) +func (_ProviderRegistry *ProviderRegistryCaller) GetToken(opts *bind.CallOpts) (common.Address, error) { var out []interface{} - err := _ProviderRegistry.contract.Call(opts, &out, "providerActiveBids", provider_, offset_, limit_) + err := _ProviderRegistry.contract.Call(opts, &out, "getToken") if err != nil { - return *new([][32]byte), err + return *new(common.Address), err } - out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) return out0, err } -// ProviderActiveBids is a free data retrieval call binding the contract method 0x6dd7d31c. +// GetToken is a free data retrieval call binding the contract method 0x21df0da7. // -// Solidity: function providerActiveBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_ProviderRegistry *ProviderRegistrySession) ProviderActiveBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - return _ProviderRegistry.Contract.ProviderActiveBids(&_ProviderRegistry.CallOpts, provider_, offset_, limit_) +// Solidity: function getToken() view returns(address) +func (_ProviderRegistry *ProviderRegistrySession) GetToken() (common.Address, error) { + return _ProviderRegistry.Contract.GetToken(&_ProviderRegistry.CallOpts) } -// ProviderActiveBids is a free data retrieval call binding the contract method 0x6dd7d31c. +// GetToken is a free data retrieval call binding the contract method 0x21df0da7. // -// Solidity: function providerActiveBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_ProviderRegistry *ProviderRegistryCallerSession) ProviderActiveBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - return _ProviderRegistry.Contract.ProviderActiveBids(&_ProviderRegistry.CallOpts, provider_, offset_, limit_) +// Solidity: function getToken() view returns(address) +func (_ProviderRegistry *ProviderRegistryCallerSession) GetToken() (common.Address, error) { + return _ProviderRegistry.Contract.GetToken(&_ProviderRegistry.CallOpts) } -// ProviderBids is a free data retrieval call binding the contract method 0x22fbda9a. +// IsBidActive is a free data retrieval call binding the contract method 0x1345df58. // -// Solidity: function providerBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_ProviderRegistry *ProviderRegistryCaller) ProviderBids(opts *bind.CallOpts, provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { +// Solidity: function isBidActive(bytes32 bidId_) view returns(bool) +func (_ProviderRegistry *ProviderRegistryCaller) IsBidActive(opts *bind.CallOpts, bidId_ [32]byte) (bool, error) { var out []interface{} - err := _ProviderRegistry.contract.Call(opts, &out, "providerBids", provider_, offset_, limit_) + err := _ProviderRegistry.contract.Call(opts, &out, "isBidActive", bidId_) if err != nil { - return *new([][32]byte), err + return *new(bool), err } - out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) return out0, err } -// ProviderBids is a free data retrieval call binding the contract method 0x22fbda9a. +// IsBidActive is a free data retrieval call binding the contract method 0x1345df58. // -// Solidity: function providerBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_ProviderRegistry *ProviderRegistrySession) ProviderBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - return _ProviderRegistry.Contract.ProviderBids(&_ProviderRegistry.CallOpts, provider_, offset_, limit_) +// Solidity: function isBidActive(bytes32 bidId_) view returns(bool) +func (_ProviderRegistry *ProviderRegistrySession) IsBidActive(bidId_ [32]byte) (bool, error) { + return _ProviderRegistry.Contract.IsBidActive(&_ProviderRegistry.CallOpts, bidId_) } -// ProviderBids is a free data retrieval call binding the contract method 0x22fbda9a. +// IsBidActive is a free data retrieval call binding the contract method 0x1345df58. // -// Solidity: function providerBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_ProviderRegistry *ProviderRegistryCallerSession) ProviderBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - return _ProviderRegistry.Contract.ProviderBids(&_ProviderRegistry.CallOpts, provider_, offset_, limit_) +// Solidity: function isBidActive(bytes32 bidId_) view returns(bool) +func (_ProviderRegistry *ProviderRegistryCallerSession) IsBidActive(bidId_ [32]byte) (bool, error) { + return _ProviderRegistry.Contract.IsBidActive(&_ProviderRegistry.CallOpts, bidId_) } -// ProviderMinimumStake is a free data retrieval call binding the contract method 0x9476c58e. +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. // -// Solidity: function providerMinimumStake() view returns(uint256) -func (_ProviderRegistry *ProviderRegistryCaller) ProviderMinimumStake(opts *bind.CallOpts) (*big.Int, error) { +// Solidity: function owner() view returns(address) +func (_ProviderRegistry *ProviderRegistryCaller) Owner(opts *bind.CallOpts) (common.Address, error) { var out []interface{} - err := _ProviderRegistry.contract.Call(opts, &out, "providerMinimumStake") + err := _ProviderRegistry.contract.Call(opts, &out, "owner") if err != nil { - return *new(*big.Int), err + return *new(common.Address), err } - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) return out0, err } -// ProviderMinimumStake is a free data retrieval call binding the contract method 0x9476c58e. +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. // -// Solidity: function providerMinimumStake() view returns(uint256) -func (_ProviderRegistry *ProviderRegistrySession) ProviderMinimumStake() (*big.Int, error) { - return _ProviderRegistry.Contract.ProviderMinimumStake(&_ProviderRegistry.CallOpts) +// Solidity: function owner() view returns(address) +func (_ProviderRegistry *ProviderRegistrySession) Owner() (common.Address, error) { + return _ProviderRegistry.Contract.Owner(&_ProviderRegistry.CallOpts) } -// ProviderMinimumStake is a free data retrieval call binding the contract method 0x9476c58e. +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. // -// Solidity: function providerMinimumStake() view returns(uint256) -func (_ProviderRegistry *ProviderRegistryCallerSession) ProviderMinimumStake() (*big.Int, error) { - return _ProviderRegistry.Contract.ProviderMinimumStake(&_ProviderRegistry.CallOpts) +// Solidity: function owner() view returns(address) +func (_ProviderRegistry *ProviderRegistryCallerSession) Owner() (common.Address, error) { + return _ProviderRegistry.Contract.Owner(&_ProviderRegistry.CallOpts) } // ProviderRegistryInit is a paid mutator transaction binding the contract method 0x5c7ce38b. @@ -624,46 +686,46 @@ func (_ProviderRegistry *ProviderRegistryTransactorSession) ProviderRegistryInit return _ProviderRegistry.Contract.ProviderRegistryInit(&_ProviderRegistry.TransactOpts) } -// ProviderDeregister is a paid mutator transaction binding the contract method 0x2ca36c49. +// ProviderDeregister is a paid mutator transaction binding the contract method 0x58e0bd1c. // -// Solidity: function providerDeregister(address provider_) returns() -func (_ProviderRegistry *ProviderRegistryTransactor) ProviderDeregister(opts *bind.TransactOpts, provider_ common.Address) (*types.Transaction, error) { - return _ProviderRegistry.contract.Transact(opts, "providerDeregister", provider_) +// Solidity: function providerDeregister() returns() +func (_ProviderRegistry *ProviderRegistryTransactor) ProviderDeregister(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ProviderRegistry.contract.Transact(opts, "providerDeregister") } -// ProviderDeregister is a paid mutator transaction binding the contract method 0x2ca36c49. +// ProviderDeregister is a paid mutator transaction binding the contract method 0x58e0bd1c. // -// Solidity: function providerDeregister(address provider_) returns() -func (_ProviderRegistry *ProviderRegistrySession) ProviderDeregister(provider_ common.Address) (*types.Transaction, error) { - return _ProviderRegistry.Contract.ProviderDeregister(&_ProviderRegistry.TransactOpts, provider_) +// Solidity: function providerDeregister() returns() +func (_ProviderRegistry *ProviderRegistrySession) ProviderDeregister() (*types.Transaction, error) { + return _ProviderRegistry.Contract.ProviderDeregister(&_ProviderRegistry.TransactOpts) } -// ProviderDeregister is a paid mutator transaction binding the contract method 0x2ca36c49. +// ProviderDeregister is a paid mutator transaction binding the contract method 0x58e0bd1c. // -// Solidity: function providerDeregister(address provider_) returns() -func (_ProviderRegistry *ProviderRegistryTransactorSession) ProviderDeregister(provider_ common.Address) (*types.Transaction, error) { - return _ProviderRegistry.Contract.ProviderDeregister(&_ProviderRegistry.TransactOpts, provider_) +// Solidity: function providerDeregister() returns() +func (_ProviderRegistry *ProviderRegistryTransactorSession) ProviderDeregister() (*types.Transaction, error) { + return _ProviderRegistry.Contract.ProviderDeregister(&_ProviderRegistry.TransactOpts) } -// ProviderRegister is a paid mutator transaction binding the contract method 0x365700cb. +// ProviderRegister is a paid mutator transaction binding the contract method 0x17028d92. // -// Solidity: function providerRegister(address providerAddress_, uint256 amount_, string endpoint_) returns() -func (_ProviderRegistry *ProviderRegistryTransactor) ProviderRegister(opts *bind.TransactOpts, providerAddress_ common.Address, amount_ *big.Int, endpoint_ string) (*types.Transaction, error) { - return _ProviderRegistry.contract.Transact(opts, "providerRegister", providerAddress_, amount_, endpoint_) +// Solidity: function providerRegister(uint256 amount_, string endpoint_) returns() +func (_ProviderRegistry *ProviderRegistryTransactor) ProviderRegister(opts *bind.TransactOpts, amount_ *big.Int, endpoint_ string) (*types.Transaction, error) { + return _ProviderRegistry.contract.Transact(opts, "providerRegister", amount_, endpoint_) } -// ProviderRegister is a paid mutator transaction binding the contract method 0x365700cb. +// ProviderRegister is a paid mutator transaction binding the contract method 0x17028d92. // -// Solidity: function providerRegister(address providerAddress_, uint256 amount_, string endpoint_) returns() -func (_ProviderRegistry *ProviderRegistrySession) ProviderRegister(providerAddress_ common.Address, amount_ *big.Int, endpoint_ string) (*types.Transaction, error) { - return _ProviderRegistry.Contract.ProviderRegister(&_ProviderRegistry.TransactOpts, providerAddress_, amount_, endpoint_) +// Solidity: function providerRegister(uint256 amount_, string endpoint_) returns() +func (_ProviderRegistry *ProviderRegistrySession) ProviderRegister(amount_ *big.Int, endpoint_ string) (*types.Transaction, error) { + return _ProviderRegistry.Contract.ProviderRegister(&_ProviderRegistry.TransactOpts, amount_, endpoint_) } -// ProviderRegister is a paid mutator transaction binding the contract method 0x365700cb. +// ProviderRegister is a paid mutator transaction binding the contract method 0x17028d92. // -// Solidity: function providerRegister(address providerAddress_, uint256 amount_, string endpoint_) returns() -func (_ProviderRegistry *ProviderRegistryTransactorSession) ProviderRegister(providerAddress_ common.Address, amount_ *big.Int, endpoint_ string) (*types.Transaction, error) { - return _ProviderRegistry.Contract.ProviderRegister(&_ProviderRegistry.TransactOpts, providerAddress_, amount_, endpoint_) +// Solidity: function providerRegister(uint256 amount_, string endpoint_) returns() +func (_ProviderRegistry *ProviderRegistryTransactorSession) ProviderRegister(amount_ *big.Int, endpoint_ string) (*types.Transaction, error) { + return _ProviderRegistry.Contract.ProviderRegister(&_ProviderRegistry.TransactOpts, amount_, endpoint_) } // ProviderSetMinStake is a paid mutator transaction binding the contract method 0x0b7f94d6. @@ -687,27 +749,6 @@ func (_ProviderRegistry *ProviderRegistryTransactorSession) ProviderSetMinStake( return _ProviderRegistry.Contract.ProviderSetMinStake(&_ProviderRegistry.TransactOpts, providerMinimumStake_) } -// ProviderWithdrawStake is a paid mutator transaction binding the contract method 0x8209d9ed. -// -// Solidity: function providerWithdrawStake(address provider_) returns() -func (_ProviderRegistry *ProviderRegistryTransactor) ProviderWithdrawStake(opts *bind.TransactOpts, provider_ common.Address) (*types.Transaction, error) { - return _ProviderRegistry.contract.Transact(opts, "providerWithdrawStake", provider_) -} - -// ProviderWithdrawStake is a paid mutator transaction binding the contract method 0x8209d9ed. -// -// Solidity: function providerWithdrawStake(address provider_) returns() -func (_ProviderRegistry *ProviderRegistrySession) ProviderWithdrawStake(provider_ common.Address) (*types.Transaction, error) { - return _ProviderRegistry.Contract.ProviderWithdrawStake(&_ProviderRegistry.TransactOpts, provider_) -} - -// ProviderWithdrawStake is a paid mutator transaction binding the contract method 0x8209d9ed. -// -// Solidity: function providerWithdrawStake(address provider_) returns() -func (_ProviderRegistry *ProviderRegistryTransactorSession) ProviderWithdrawStake(provider_ common.Address) (*types.Transaction, error) { - return _ProviderRegistry.Contract.ProviderWithdrawStake(&_ProviderRegistry.TransactOpts, provider_) -} - // ProviderRegistryInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the ProviderRegistry contract. type ProviderRegistryInitializedIterator struct { Event *ProviderRegistryInitialized // Event containing the contract specifics and raw log @@ -986,9 +1027,9 @@ func (_ProviderRegistry *ProviderRegistryFilterer) ParseProviderDeregistered(log return event, nil } -// ProviderRegistryProviderMinStakeUpdatedIterator is returned from FilterProviderMinStakeUpdated and is used to iterate over the raw logs and unpacked data for ProviderMinStakeUpdated events raised by the ProviderRegistry contract. -type ProviderRegistryProviderMinStakeUpdatedIterator struct { - Event *ProviderRegistryProviderMinStakeUpdated // Event containing the contract specifics and raw log +// ProviderRegistryProviderMinimumStakeUpdatedIterator is returned from FilterProviderMinimumStakeUpdated and is used to iterate over the raw logs and unpacked data for ProviderMinimumStakeUpdated events raised by the ProviderRegistry contract. +type ProviderRegistryProviderMinimumStakeUpdatedIterator struct { + Event *ProviderRegistryProviderMinimumStakeUpdated // Event containing the contract specifics and raw log contract *bind.BoundContract // Generic contract to use for unpacking event data event string // Event name to use for unpacking event data @@ -1002,7 +1043,7 @@ type ProviderRegistryProviderMinStakeUpdatedIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *ProviderRegistryProviderMinStakeUpdatedIterator) Next() bool { +func (it *ProviderRegistryProviderMinimumStakeUpdatedIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -1011,7 +1052,7 @@ func (it *ProviderRegistryProviderMinStakeUpdatedIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(ProviderRegistryProviderMinStakeUpdated) + it.Event = new(ProviderRegistryProviderMinimumStakeUpdated) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1026,7 +1067,7 @@ func (it *ProviderRegistryProviderMinStakeUpdatedIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(ProviderRegistryProviderMinStakeUpdated) + it.Event = new(ProviderRegistryProviderMinimumStakeUpdated) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1042,41 +1083,41 @@ func (it *ProviderRegistryProviderMinStakeUpdatedIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *ProviderRegistryProviderMinStakeUpdatedIterator) Error() error { +func (it *ProviderRegistryProviderMinimumStakeUpdatedIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *ProviderRegistryProviderMinStakeUpdatedIterator) Close() error { +func (it *ProviderRegistryProviderMinimumStakeUpdatedIterator) Close() error { it.sub.Unsubscribe() return nil } -// ProviderRegistryProviderMinStakeUpdated represents a ProviderMinStakeUpdated event raised by the ProviderRegistry contract. -type ProviderRegistryProviderMinStakeUpdated struct { - NewStake *big.Int - Raw types.Log // Blockchain specific contextual infos +// ProviderRegistryProviderMinimumStakeUpdated represents a ProviderMinimumStakeUpdated event raised by the ProviderRegistry contract. +type ProviderRegistryProviderMinimumStakeUpdated struct { + ProviderMinimumStake *big.Int + Raw types.Log // Blockchain specific contextual infos } -// FilterProviderMinStakeUpdated is a free log retrieval operation binding the contract event 0x1ee852018221ad3e0f9b96b4d6f870d0e1393c4060f626c01ad1e09a1917d818. +// FilterProviderMinimumStakeUpdated is a free log retrieval operation binding the contract event 0x4d6b08cda70533f8222fea5ffc794d3a1f5dcde2620c6fa74789ef647db19450. // -// Solidity: event ProviderMinStakeUpdated(uint256 newStake) -func (_ProviderRegistry *ProviderRegistryFilterer) FilterProviderMinStakeUpdated(opts *bind.FilterOpts) (*ProviderRegistryProviderMinStakeUpdatedIterator, error) { +// Solidity: event ProviderMinimumStakeUpdated(uint256 providerMinimumStake) +func (_ProviderRegistry *ProviderRegistryFilterer) FilterProviderMinimumStakeUpdated(opts *bind.FilterOpts) (*ProviderRegistryProviderMinimumStakeUpdatedIterator, error) { - logs, sub, err := _ProviderRegistry.contract.FilterLogs(opts, "ProviderMinStakeUpdated") + logs, sub, err := _ProviderRegistry.contract.FilterLogs(opts, "ProviderMinimumStakeUpdated") if err != nil { return nil, err } - return &ProviderRegistryProviderMinStakeUpdatedIterator{contract: _ProviderRegistry.contract, event: "ProviderMinStakeUpdated", logs: logs, sub: sub}, nil + return &ProviderRegistryProviderMinimumStakeUpdatedIterator{contract: _ProviderRegistry.contract, event: "ProviderMinimumStakeUpdated", logs: logs, sub: sub}, nil } -// WatchProviderMinStakeUpdated is a free log subscription operation binding the contract event 0x1ee852018221ad3e0f9b96b4d6f870d0e1393c4060f626c01ad1e09a1917d818. +// WatchProviderMinimumStakeUpdated is a free log subscription operation binding the contract event 0x4d6b08cda70533f8222fea5ffc794d3a1f5dcde2620c6fa74789ef647db19450. // -// Solidity: event ProviderMinStakeUpdated(uint256 newStake) -func (_ProviderRegistry *ProviderRegistryFilterer) WatchProviderMinStakeUpdated(opts *bind.WatchOpts, sink chan<- *ProviderRegistryProviderMinStakeUpdated) (event.Subscription, error) { +// Solidity: event ProviderMinimumStakeUpdated(uint256 providerMinimumStake) +func (_ProviderRegistry *ProviderRegistryFilterer) WatchProviderMinimumStakeUpdated(opts *bind.WatchOpts, sink chan<- *ProviderRegistryProviderMinimumStakeUpdated) (event.Subscription, error) { - logs, sub, err := _ProviderRegistry.contract.WatchLogs(opts, "ProviderMinStakeUpdated") + logs, sub, err := _ProviderRegistry.contract.WatchLogs(opts, "ProviderMinimumStakeUpdated") if err != nil { return nil, err } @@ -1086,8 +1127,8 @@ func (_ProviderRegistry *ProviderRegistryFilterer) WatchProviderMinStakeUpdated( select { case log := <-logs: // New log arrived, parse the event and forward to the user - event := new(ProviderRegistryProviderMinStakeUpdated) - if err := _ProviderRegistry.contract.UnpackLog(event, "ProviderMinStakeUpdated", log); err != nil { + event := new(ProviderRegistryProviderMinimumStakeUpdated) + if err := _ProviderRegistry.contract.UnpackLog(event, "ProviderMinimumStakeUpdated", log); err != nil { return err } event.Raw = log @@ -1108,21 +1149,21 @@ func (_ProviderRegistry *ProviderRegistryFilterer) WatchProviderMinStakeUpdated( }), nil } -// ParseProviderMinStakeUpdated is a log parse operation binding the contract event 0x1ee852018221ad3e0f9b96b4d6f870d0e1393c4060f626c01ad1e09a1917d818. +// ParseProviderMinimumStakeUpdated is a log parse operation binding the contract event 0x4d6b08cda70533f8222fea5ffc794d3a1f5dcde2620c6fa74789ef647db19450. // -// Solidity: event ProviderMinStakeUpdated(uint256 newStake) -func (_ProviderRegistry *ProviderRegistryFilterer) ParseProviderMinStakeUpdated(log types.Log) (*ProviderRegistryProviderMinStakeUpdated, error) { - event := new(ProviderRegistryProviderMinStakeUpdated) - if err := _ProviderRegistry.contract.UnpackLog(event, "ProviderMinStakeUpdated", log); err != nil { +// Solidity: event ProviderMinimumStakeUpdated(uint256 providerMinimumStake) +func (_ProviderRegistry *ProviderRegistryFilterer) ParseProviderMinimumStakeUpdated(log types.Log) (*ProviderRegistryProviderMinimumStakeUpdated, error) { + event := new(ProviderRegistryProviderMinimumStakeUpdated) + if err := _ProviderRegistry.contract.UnpackLog(event, "ProviderMinimumStakeUpdated", log); err != nil { return nil, err } event.Raw = log return event, nil } -// ProviderRegistryProviderRegisteredUpdatedIterator is returned from FilterProviderRegisteredUpdated and is used to iterate over the raw logs and unpacked data for ProviderRegisteredUpdated events raised by the ProviderRegistry contract. -type ProviderRegistryProviderRegisteredUpdatedIterator struct { - Event *ProviderRegistryProviderRegisteredUpdated // Event containing the contract specifics and raw log +// ProviderRegistryProviderRegisteredIterator is returned from FilterProviderRegistered and is used to iterate over the raw logs and unpacked data for ProviderRegistered events raised by the ProviderRegistry contract. +type ProviderRegistryProviderRegisteredIterator struct { + Event *ProviderRegistryProviderRegistered // Event containing the contract specifics and raw log contract *bind.BoundContract // Generic contract to use for unpacking event data event string // Event name to use for unpacking event data @@ -1136,7 +1177,7 @@ type ProviderRegistryProviderRegisteredUpdatedIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *ProviderRegistryProviderRegisteredUpdatedIterator) Next() bool { +func (it *ProviderRegistryProviderRegisteredIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -1145,7 +1186,7 @@ func (it *ProviderRegistryProviderRegisteredUpdatedIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(ProviderRegistryProviderRegisteredUpdated) + it.Event = new(ProviderRegistryProviderRegistered) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1160,7 +1201,7 @@ func (it *ProviderRegistryProviderRegisteredUpdatedIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(ProviderRegistryProviderRegisteredUpdated) + it.Event = new(ProviderRegistryProviderRegistered) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1176,51 +1217,51 @@ func (it *ProviderRegistryProviderRegisteredUpdatedIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *ProviderRegistryProviderRegisteredUpdatedIterator) Error() error { +func (it *ProviderRegistryProviderRegisteredIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *ProviderRegistryProviderRegisteredUpdatedIterator) Close() error { +func (it *ProviderRegistryProviderRegisteredIterator) Close() error { it.sub.Unsubscribe() return nil } -// ProviderRegistryProviderRegisteredUpdated represents a ProviderRegisteredUpdated event raised by the ProviderRegistry contract. -type ProviderRegistryProviderRegisteredUpdated struct { +// ProviderRegistryProviderRegistered represents a ProviderRegistered event raised by the ProviderRegistry contract. +type ProviderRegistryProviderRegistered struct { Provider common.Address Raw types.Log // Blockchain specific contextual infos } -// FilterProviderRegisteredUpdated is a free log retrieval operation binding the contract event 0xe041bebe929cc665c6c558e3ad7913156fef3abc77ac6a2a4f0182e6dcb11193. +// FilterProviderRegistered is a free log retrieval operation binding the contract event 0x70abce74777b3838ae60a33a6b9a87d9d25532668fe4fea548554c55868579c0. // -// Solidity: event ProviderRegisteredUpdated(address indexed provider) -func (_ProviderRegistry *ProviderRegistryFilterer) FilterProviderRegisteredUpdated(opts *bind.FilterOpts, provider []common.Address) (*ProviderRegistryProviderRegisteredUpdatedIterator, error) { +// Solidity: event ProviderRegistered(address indexed provider) +func (_ProviderRegistry *ProviderRegistryFilterer) FilterProviderRegistered(opts *bind.FilterOpts, provider []common.Address) (*ProviderRegistryProviderRegisteredIterator, error) { var providerRule []interface{} for _, providerItem := range provider { providerRule = append(providerRule, providerItem) } - logs, sub, err := _ProviderRegistry.contract.FilterLogs(opts, "ProviderRegisteredUpdated", providerRule) + logs, sub, err := _ProviderRegistry.contract.FilterLogs(opts, "ProviderRegistered", providerRule) if err != nil { return nil, err } - return &ProviderRegistryProviderRegisteredUpdatedIterator{contract: _ProviderRegistry.contract, event: "ProviderRegisteredUpdated", logs: logs, sub: sub}, nil + return &ProviderRegistryProviderRegisteredIterator{contract: _ProviderRegistry.contract, event: "ProviderRegistered", logs: logs, sub: sub}, nil } -// WatchProviderRegisteredUpdated is a free log subscription operation binding the contract event 0xe041bebe929cc665c6c558e3ad7913156fef3abc77ac6a2a4f0182e6dcb11193. +// WatchProviderRegistered is a free log subscription operation binding the contract event 0x70abce74777b3838ae60a33a6b9a87d9d25532668fe4fea548554c55868579c0. // -// Solidity: event ProviderRegisteredUpdated(address indexed provider) -func (_ProviderRegistry *ProviderRegistryFilterer) WatchProviderRegisteredUpdated(opts *bind.WatchOpts, sink chan<- *ProviderRegistryProviderRegisteredUpdated, provider []common.Address) (event.Subscription, error) { +// Solidity: event ProviderRegistered(address indexed provider) +func (_ProviderRegistry *ProviderRegistryFilterer) WatchProviderRegistered(opts *bind.WatchOpts, sink chan<- *ProviderRegistryProviderRegistered, provider []common.Address) (event.Subscription, error) { var providerRule []interface{} for _, providerItem := range provider { providerRule = append(providerRule, providerItem) } - logs, sub, err := _ProviderRegistry.contract.WatchLogs(opts, "ProviderRegisteredUpdated", providerRule) + logs, sub, err := _ProviderRegistry.contract.WatchLogs(opts, "ProviderRegistered", providerRule) if err != nil { return nil, err } @@ -1230,8 +1271,8 @@ func (_ProviderRegistry *ProviderRegistryFilterer) WatchProviderRegisteredUpdate select { case log := <-logs: // New log arrived, parse the event and forward to the user - event := new(ProviderRegistryProviderRegisteredUpdated) - if err := _ProviderRegistry.contract.UnpackLog(event, "ProviderRegisteredUpdated", log); err != nil { + event := new(ProviderRegistryProviderRegistered) + if err := _ProviderRegistry.contract.UnpackLog(event, "ProviderRegistered", log); err != nil { return err } event.Raw = log @@ -1252,21 +1293,21 @@ func (_ProviderRegistry *ProviderRegistryFilterer) WatchProviderRegisteredUpdate }), nil } -// ParseProviderRegisteredUpdated is a log parse operation binding the contract event 0xe041bebe929cc665c6c558e3ad7913156fef3abc77ac6a2a4f0182e6dcb11193. +// ParseProviderRegistered is a log parse operation binding the contract event 0x70abce74777b3838ae60a33a6b9a87d9d25532668fe4fea548554c55868579c0. // -// Solidity: event ProviderRegisteredUpdated(address indexed provider) -func (_ProviderRegistry *ProviderRegistryFilterer) ParseProviderRegisteredUpdated(log types.Log) (*ProviderRegistryProviderRegisteredUpdated, error) { - event := new(ProviderRegistryProviderRegisteredUpdated) - if err := _ProviderRegistry.contract.UnpackLog(event, "ProviderRegisteredUpdated", log); err != nil { +// Solidity: event ProviderRegistered(address indexed provider) +func (_ProviderRegistry *ProviderRegistryFilterer) ParseProviderRegistered(log types.Log) (*ProviderRegistryProviderRegistered, error) { + event := new(ProviderRegistryProviderRegistered) + if err := _ProviderRegistry.contract.UnpackLog(event, "ProviderRegistered", log); err != nil { return nil, err } event.Raw = log return event, nil } -// ProviderRegistryProviderWithdrawnStakeIterator is returned from FilterProviderWithdrawnStake and is used to iterate over the raw logs and unpacked data for ProviderWithdrawnStake events raised by the ProviderRegistry contract. -type ProviderRegistryProviderWithdrawnStakeIterator struct { - Event *ProviderRegistryProviderWithdrawnStake // Event containing the contract specifics and raw log +// ProviderRegistryProviderWithdrawnIterator is returned from FilterProviderWithdrawn and is used to iterate over the raw logs and unpacked data for ProviderWithdrawn events raised by the ProviderRegistry contract. +type ProviderRegistryProviderWithdrawnIterator struct { + Event *ProviderRegistryProviderWithdrawn // Event containing the contract specifics and raw log contract *bind.BoundContract // Generic contract to use for unpacking event data event string // Event name to use for unpacking event data @@ -1280,7 +1321,7 @@ type ProviderRegistryProviderWithdrawnStakeIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *ProviderRegistryProviderWithdrawnStakeIterator) Next() bool { +func (it *ProviderRegistryProviderWithdrawnIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -1289,7 +1330,7 @@ func (it *ProviderRegistryProviderWithdrawnStakeIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(ProviderRegistryProviderWithdrawnStake) + it.Event = new(ProviderRegistryProviderWithdrawn) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1304,7 +1345,7 @@ func (it *ProviderRegistryProviderWithdrawnStakeIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(ProviderRegistryProviderWithdrawnStake) + it.Event = new(ProviderRegistryProviderWithdrawn) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1320,52 +1361,52 @@ func (it *ProviderRegistryProviderWithdrawnStakeIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *ProviderRegistryProviderWithdrawnStakeIterator) Error() error { +func (it *ProviderRegistryProviderWithdrawnIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *ProviderRegistryProviderWithdrawnStakeIterator) Close() error { +func (it *ProviderRegistryProviderWithdrawnIterator) Close() error { it.sub.Unsubscribe() return nil } -// ProviderRegistryProviderWithdrawnStake represents a ProviderWithdrawnStake event raised by the ProviderRegistry contract. -type ProviderRegistryProviderWithdrawnStake struct { +// ProviderRegistryProviderWithdrawn represents a ProviderWithdrawn event raised by the ProviderRegistry contract. +type ProviderRegistryProviderWithdrawn struct { Provider common.Address Amount *big.Int Raw types.Log // Blockchain specific contextual infos } -// FilterProviderWithdrawnStake is a free log retrieval operation binding the contract event 0x51bcac309509d42be030eac333c3d18a8a05c7b400560ce45b122bba5877c76d. +// FilterProviderWithdrawn is a free log retrieval operation binding the contract event 0x61388fbc2ba003175d3018b8f13b002234cc4e203a332a4a6dadb96bc82c3db2. // -// Solidity: event ProviderWithdrawnStake(address indexed provider, uint256 amount) -func (_ProviderRegistry *ProviderRegistryFilterer) FilterProviderWithdrawnStake(opts *bind.FilterOpts, provider []common.Address) (*ProviderRegistryProviderWithdrawnStakeIterator, error) { +// Solidity: event ProviderWithdrawn(address indexed provider, uint256 amount) +func (_ProviderRegistry *ProviderRegistryFilterer) FilterProviderWithdrawn(opts *bind.FilterOpts, provider []common.Address) (*ProviderRegistryProviderWithdrawnIterator, error) { var providerRule []interface{} for _, providerItem := range provider { providerRule = append(providerRule, providerItem) } - logs, sub, err := _ProviderRegistry.contract.FilterLogs(opts, "ProviderWithdrawnStake", providerRule) + logs, sub, err := _ProviderRegistry.contract.FilterLogs(opts, "ProviderWithdrawn", providerRule) if err != nil { return nil, err } - return &ProviderRegistryProviderWithdrawnStakeIterator{contract: _ProviderRegistry.contract, event: "ProviderWithdrawnStake", logs: logs, sub: sub}, nil + return &ProviderRegistryProviderWithdrawnIterator{contract: _ProviderRegistry.contract, event: "ProviderWithdrawn", logs: logs, sub: sub}, nil } -// WatchProviderWithdrawnStake is a free log subscription operation binding the contract event 0x51bcac309509d42be030eac333c3d18a8a05c7b400560ce45b122bba5877c76d. +// WatchProviderWithdrawn is a free log subscription operation binding the contract event 0x61388fbc2ba003175d3018b8f13b002234cc4e203a332a4a6dadb96bc82c3db2. // -// Solidity: event ProviderWithdrawnStake(address indexed provider, uint256 amount) -func (_ProviderRegistry *ProviderRegistryFilterer) WatchProviderWithdrawnStake(opts *bind.WatchOpts, sink chan<- *ProviderRegistryProviderWithdrawnStake, provider []common.Address) (event.Subscription, error) { +// Solidity: event ProviderWithdrawn(address indexed provider, uint256 amount) +func (_ProviderRegistry *ProviderRegistryFilterer) WatchProviderWithdrawn(opts *bind.WatchOpts, sink chan<- *ProviderRegistryProviderWithdrawn, provider []common.Address) (event.Subscription, error) { var providerRule []interface{} for _, providerItem := range provider { providerRule = append(providerRule, providerItem) } - logs, sub, err := _ProviderRegistry.contract.WatchLogs(opts, "ProviderWithdrawnStake", providerRule) + logs, sub, err := _ProviderRegistry.contract.WatchLogs(opts, "ProviderWithdrawn", providerRule) if err != nil { return nil, err } @@ -1375,8 +1416,8 @@ func (_ProviderRegistry *ProviderRegistryFilterer) WatchProviderWithdrawnStake(o select { case log := <-logs: // New log arrived, parse the event and forward to the user - event := new(ProviderRegistryProviderWithdrawnStake) - if err := _ProviderRegistry.contract.UnpackLog(event, "ProviderWithdrawnStake", log); err != nil { + event := new(ProviderRegistryProviderWithdrawn) + if err := _ProviderRegistry.contract.UnpackLog(event, "ProviderWithdrawn", log); err != nil { return err } event.Raw = log @@ -1397,12 +1438,12 @@ func (_ProviderRegistry *ProviderRegistryFilterer) WatchProviderWithdrawnStake(o }), nil } -// ParseProviderWithdrawnStake is a log parse operation binding the contract event 0x51bcac309509d42be030eac333c3d18a8a05c7b400560ce45b122bba5877c76d. +// ParseProviderWithdrawn is a log parse operation binding the contract event 0x61388fbc2ba003175d3018b8f13b002234cc4e203a332a4a6dadb96bc82c3db2. // -// Solidity: event ProviderWithdrawnStake(address indexed provider, uint256 amount) -func (_ProviderRegistry *ProviderRegistryFilterer) ParseProviderWithdrawnStake(log types.Log) (*ProviderRegistryProviderWithdrawnStake, error) { - event := new(ProviderRegistryProviderWithdrawnStake) - if err := _ProviderRegistry.contract.UnpackLog(event, "ProviderWithdrawnStake", log); err != nil { +// Solidity: event ProviderWithdrawn(address indexed provider, uint256 amount) +func (_ProviderRegistry *ProviderRegistryFilterer) ParseProviderWithdrawn(log types.Log) (*ProviderRegistryProviderWithdrawn, error) { + event := new(ProviderRegistryProviderWithdrawn) + if err := _ProviderRegistry.contract.UnpackLog(event, "ProviderWithdrawn", log); err != nil { return nil, err } event.Raw = log diff --git a/proxy-router/internal/repositories/contracts/bindings/sessionrouter/SessionRouter.go b/proxy-router/internal/repositories/contracts/bindings/sessionrouter/SessionRouter.go new file mode 100644 index 00000000..cf87fdd8 --- /dev/null +++ b/proxy-router/internal/repositories/contracts/bindings/sessionrouter/SessionRouter.go @@ -0,0 +1,2291 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package sessionrouter + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// IBidStorageBid is an auto generated low-level Go binding around an user-defined struct. +type IBidStorageBid struct { + Provider common.Address + ModelId [32]byte + PricePerSecond *big.Int + Nonce *big.Int + CreatedAt *big.Int + DeletedAt *big.Int +} + +// IProviderStorageProvider is an auto generated low-level Go binding around an user-defined struct. +type IProviderStorageProvider struct { + Endpoint string + Stake *big.Int + CreatedAt *big.Int + LimitPeriodEnd *big.Int + LimitPeriodEarned *big.Int + IsDeleted bool +} + +// ISessionStoragePool is an auto generated low-level Go binding around an user-defined struct. +type ISessionStoragePool struct { + InitialReward *big.Int + RewardDecrease *big.Int + PayoutStart *big.Int + DecreaseInterval *big.Int +} + +// ISessionStorageSession is an auto generated low-level Go binding around an user-defined struct. +type ISessionStorageSession struct { + User common.Address + BidId [32]byte + Stake *big.Int + CloseoutReceipt []byte + CloseoutType *big.Int + ProviderWithdrawnAmount *big.Int + OpenedAt *big.Int + EndsAt *big.Int + ClosedAt *big.Int + IsActive bool +} + +// IStatsStorageModelStats is an auto generated low-level Go binding around an user-defined struct. +type IStatsStorageModelStats struct { + TpsScaled1000 LibSDSD + TtftMs LibSDSD + TotalDuration LibSDSD + Count uint32 +} + +// IStatsStorageProviderModelStats is an auto generated low-level Go binding around an user-defined struct. +type IStatsStorageProviderModelStats struct { + TpsScaled1000 LibSDSD + TtftMs LibSDSD + TotalDuration uint32 + SuccessCount uint32 + TotalCount uint32 +} + +// LibSDSD is an auto generated low-level Go binding around an user-defined struct. +type LibSDSD struct { + Mean int64 + SqSum int64 +} + +// SessionRouterMetaData contains all meta data concerning the SessionRouter contract. +var SessionRouterMetaData = &bind.MetaData{ + ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account_\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SessionAlreadyClosed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SessionApprovedForAnotherUser\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SessionBidNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SessionDuplicateApproval\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SessionNotEndedOrNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SessionPoolIndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SessionProviderNothingToClaimInThisPeriod\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SessionProviderSignatureMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SessionTooShort\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SessionUserAmountToWithdrawIsZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SesssionApproveExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SesssionApprovedForAnotherChainId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SesssionReceiptExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SesssionReceiptForAnotherChainId\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"storageSlot\",\"type\":\"bytes32\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"sessionId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"providerId\",\"type\":\"address\"}],\"name\":\"SessionClosed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"sessionId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"providerId\",\"type\":\"address\"}],\"name\":\"SessionOpened\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"}],\"name\":\"UserWithdrawn\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BIDS_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COMPUTE_POOL_INDEX\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DIAMOND_OWNABLE_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_SESSION_DURATION\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MIN_SESSION_DURATION\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROVIDERS_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SESSIONS_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SIGNATURE_TTL\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"STATS_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"fundingAccount_\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"initialReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rewardDecrease\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"payoutStart\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"decreaseInterval\",\"type\":\"uint128\"}],\"internalType\":\"structISessionStorage.Pool[]\",\"name\":\"pools_\",\"type\":\"tuple[]\"}],\"name\":\"__SessionRouter_init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"sessionId_\",\"type\":\"bytes32\"}],\"name\":\"claimForProvider\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"receiptEncoded_\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature_\",\"type\":\"bytes\"}],\"name\":\"closeSession\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getActiveProviders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bidId_\",\"type\":\"bytes32\"}],\"name\":\"getBid\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"pricePerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"deletedAt\",\"type\":\"uint128\"}],\"internalType\":\"structIBidStorage.Bid\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"timestamp_\",\"type\":\"uint128\"}],\"name\":\"getComputeBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFundingAccount\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"}],\"name\":\"getIsProviderActive\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"approval_\",\"type\":\"bytes\"}],\"name\":\"getIsProviderApprovalUsed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getModelActiveBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getModelBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getModelSessions\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"}],\"name\":\"getModelStats\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"int64\",\"name\":\"mean\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"sqSum\",\"type\":\"int64\"}],\"internalType\":\"structLibSD.SD\",\"name\":\"tpsScaled1000\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"mean\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"sqSum\",\"type\":\"int64\"}],\"internalType\":\"structLibSD.SD\",\"name\":\"ttftMs\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"mean\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"sqSum\",\"type\":\"int64\"}],\"internalType\":\"structLibSD.SD\",\"name\":\"totalDuration\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"count\",\"type\":\"uint32\"}],\"internalType\":\"structIStatsStorage.ModelStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index_\",\"type\":\"uint256\"}],\"name\":\"getPool\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"initialReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rewardDecrease\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"payoutStart\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"decreaseInterval\",\"type\":\"uint128\"}],\"internalType\":\"structISessionStorage.Pool\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPools\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"initialReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rewardDecrease\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"payoutStart\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"decreaseInterval\",\"type\":\"uint128\"}],\"internalType\":\"structISessionStorage.Pool[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"}],\"name\":\"getProvider\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"endpoint\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"limitPeriodEnd\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"limitPeriodEarned\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isDeleted\",\"type\":\"bool\"}],\"internalType\":\"structIProviderStorage.Provider\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getProviderActiveBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getProviderBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProviderMinimumStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"}],\"name\":\"getProviderModelStats\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"int64\",\"name\":\"mean\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"sqSum\",\"type\":\"int64\"}],\"internalType\":\"structLibSD.SD\",\"name\":\"tpsScaled1000\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"mean\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"sqSum\",\"type\":\"int64\"}],\"internalType\":\"structLibSD.SD\",\"name\":\"ttftMs\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"totalDuration\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"successCount\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"totalCount\",\"type\":\"uint32\"}],\"internalType\":\"structIStatsStorage.ProviderModelStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getProviderSessions\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProvidersTotalClaimed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"sessionId_\",\"type\":\"bytes32\"}],\"name\":\"getSession\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"bidId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"closeoutReceipt\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"closeoutType\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"providerWithdrawnAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"openedAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"endsAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"closedAt\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"isActive\",\"type\":\"bool\"}],\"internalType\":\"structISessionStorage.Session\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"pricePerSecond_\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"openedAt_\",\"type\":\"uint128\"}],\"name\":\"getSessionEnd\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"bidId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"sessionNonce_\",\"type\":\"uint256\"}],\"name\":\"getSessionId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"timestamp_\",\"type\":\"uint128\"}],\"name\":\"getTodaysBudget\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"providerAddr_\",\"type\":\"address\"}],\"name\":\"getTotalSessions\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getUserSessions\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user_\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"iterations_\",\"type\":\"uint8\"}],\"name\":\"getUserStakesOnHold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"available_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"hold_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bidId_\",\"type\":\"bytes32\"}],\"name\":\"isBidActive\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"approvalEncoded_\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature_\",\"type\":\"bytes\"}],\"name\":\"openSession\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index_\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"initialReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rewardDecrease\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"payoutStart\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"decreaseInterval\",\"type\":\"uint128\"}],\"internalType\":\"structISessionStorage.Pool\",\"name\":\"pool_\",\"type\":\"tuple\"}],\"name\":\"setPoolConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"timestamp_\",\"type\":\"uint128\"}],\"name\":\"stakeToStipend\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"timestamp_\",\"type\":\"uint128\"}],\"name\":\"startOfTheDay\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"stipend_\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"timestamp_\",\"type\":\"uint128\"}],\"name\":\"stipendToStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"timestamp_\",\"type\":\"uint128\"}],\"name\":\"totalMORSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"iterations_\",\"type\":\"uint8\"}],\"name\":\"withdrawUserStakes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", +} + +// SessionRouterABI is the input ABI used to generate the binding from. +// Deprecated: Use SessionRouterMetaData.ABI instead. +var SessionRouterABI = SessionRouterMetaData.ABI + +// SessionRouter is an auto generated Go binding around an Ethereum contract. +type SessionRouter struct { + SessionRouterCaller // Read-only binding to the contract + SessionRouterTransactor // Write-only binding to the contract + SessionRouterFilterer // Log filterer for contract events +} + +// SessionRouterCaller is an auto generated read-only Go binding around an Ethereum contract. +type SessionRouterCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// SessionRouterTransactor is an auto generated write-only Go binding around an Ethereum contract. +type SessionRouterTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// SessionRouterFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type SessionRouterFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// SessionRouterSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type SessionRouterSession struct { + Contract *SessionRouter // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// SessionRouterCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type SessionRouterCallerSession struct { + Contract *SessionRouterCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// SessionRouterTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type SessionRouterTransactorSession struct { + Contract *SessionRouterTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// SessionRouterRaw is an auto generated low-level Go binding around an Ethereum contract. +type SessionRouterRaw struct { + Contract *SessionRouter // Generic contract binding to access the raw methods on +} + +// SessionRouterCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type SessionRouterCallerRaw struct { + Contract *SessionRouterCaller // Generic read-only contract binding to access the raw methods on +} + +// SessionRouterTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type SessionRouterTransactorRaw struct { + Contract *SessionRouterTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewSessionRouter creates a new instance of SessionRouter, bound to a specific deployed contract. +func NewSessionRouter(address common.Address, backend bind.ContractBackend) (*SessionRouter, error) { + contract, err := bindSessionRouter(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &SessionRouter{SessionRouterCaller: SessionRouterCaller{contract: contract}, SessionRouterTransactor: SessionRouterTransactor{contract: contract}, SessionRouterFilterer: SessionRouterFilterer{contract: contract}}, nil +} + +// NewSessionRouterCaller creates a new read-only instance of SessionRouter, bound to a specific deployed contract. +func NewSessionRouterCaller(address common.Address, caller bind.ContractCaller) (*SessionRouterCaller, error) { + contract, err := bindSessionRouter(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &SessionRouterCaller{contract: contract}, nil +} + +// NewSessionRouterTransactor creates a new write-only instance of SessionRouter, bound to a specific deployed contract. +func NewSessionRouterTransactor(address common.Address, transactor bind.ContractTransactor) (*SessionRouterTransactor, error) { + contract, err := bindSessionRouter(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &SessionRouterTransactor{contract: contract}, nil +} + +// NewSessionRouterFilterer creates a new log filterer instance of SessionRouter, bound to a specific deployed contract. +func NewSessionRouterFilterer(address common.Address, filterer bind.ContractFilterer) (*SessionRouterFilterer, error) { + contract, err := bindSessionRouter(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &SessionRouterFilterer{contract: contract}, nil +} + +// bindSessionRouter binds a generic wrapper to an already deployed contract. +func bindSessionRouter(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := SessionRouterMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_SessionRouter *SessionRouterRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _SessionRouter.Contract.SessionRouterCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_SessionRouter *SessionRouterRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _SessionRouter.Contract.SessionRouterTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_SessionRouter *SessionRouterRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _SessionRouter.Contract.SessionRouterTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_SessionRouter *SessionRouterCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _SessionRouter.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_SessionRouter *SessionRouterTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _SessionRouter.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_SessionRouter *SessionRouterTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _SessionRouter.Contract.contract.Transact(opts, method, params...) +} + +// BIDSSTORAGESLOT is a free data retrieval call binding the contract method 0x266ccff0. +// +// Solidity: function BIDS_STORAGE_SLOT() view returns(bytes32) +func (_SessionRouter *SessionRouterCaller) BIDSSTORAGESLOT(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "BIDS_STORAGE_SLOT") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// BIDSSTORAGESLOT is a free data retrieval call binding the contract method 0x266ccff0. +// +// Solidity: function BIDS_STORAGE_SLOT() view returns(bytes32) +func (_SessionRouter *SessionRouterSession) BIDSSTORAGESLOT() ([32]byte, error) { + return _SessionRouter.Contract.BIDSSTORAGESLOT(&_SessionRouter.CallOpts) +} + +// BIDSSTORAGESLOT is a free data retrieval call binding the contract method 0x266ccff0. +// +// Solidity: function BIDS_STORAGE_SLOT() view returns(bytes32) +func (_SessionRouter *SessionRouterCallerSession) BIDSSTORAGESLOT() ([32]byte, error) { + return _SessionRouter.Contract.BIDSSTORAGESLOT(&_SessionRouter.CallOpts) +} + +// COMPUTEPOOLINDEX is a free data retrieval call binding the contract method 0xc56d09a0. +// +// Solidity: function COMPUTE_POOL_INDEX() view returns(uint256) +func (_SessionRouter *SessionRouterCaller) COMPUTEPOOLINDEX(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "COMPUTE_POOL_INDEX") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// COMPUTEPOOLINDEX is a free data retrieval call binding the contract method 0xc56d09a0. +// +// Solidity: function COMPUTE_POOL_INDEX() view returns(uint256) +func (_SessionRouter *SessionRouterSession) COMPUTEPOOLINDEX() (*big.Int, error) { + return _SessionRouter.Contract.COMPUTEPOOLINDEX(&_SessionRouter.CallOpts) +} + +// COMPUTEPOOLINDEX is a free data retrieval call binding the contract method 0xc56d09a0. +// +// Solidity: function COMPUTE_POOL_INDEX() view returns(uint256) +func (_SessionRouter *SessionRouterCallerSession) COMPUTEPOOLINDEX() (*big.Int, error) { + return _SessionRouter.Contract.COMPUTEPOOLINDEX(&_SessionRouter.CallOpts) +} + +// DIAMONDOWNABLESTORAGESLOT is a free data retrieval call binding the contract method 0x4ac3371e. +// +// Solidity: function DIAMOND_OWNABLE_STORAGE_SLOT() view returns(bytes32) +func (_SessionRouter *SessionRouterCaller) DIAMONDOWNABLESTORAGESLOT(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "DIAMOND_OWNABLE_STORAGE_SLOT") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// DIAMONDOWNABLESTORAGESLOT is a free data retrieval call binding the contract method 0x4ac3371e. +// +// Solidity: function DIAMOND_OWNABLE_STORAGE_SLOT() view returns(bytes32) +func (_SessionRouter *SessionRouterSession) DIAMONDOWNABLESTORAGESLOT() ([32]byte, error) { + return _SessionRouter.Contract.DIAMONDOWNABLESTORAGESLOT(&_SessionRouter.CallOpts) +} + +// DIAMONDOWNABLESTORAGESLOT is a free data retrieval call binding the contract method 0x4ac3371e. +// +// Solidity: function DIAMOND_OWNABLE_STORAGE_SLOT() view returns(bytes32) +func (_SessionRouter *SessionRouterCallerSession) DIAMONDOWNABLESTORAGESLOT() ([32]byte, error) { + return _SessionRouter.Contract.DIAMONDOWNABLESTORAGESLOT(&_SessionRouter.CallOpts) +} + +// MAXSESSIONDURATION is a free data retrieval call binding the contract method 0xcd8cd4ad. +// +// Solidity: function MAX_SESSION_DURATION() view returns(uint32) +func (_SessionRouter *SessionRouterCaller) MAXSESSIONDURATION(opts *bind.CallOpts) (uint32, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "MAX_SESSION_DURATION") + + if err != nil { + return *new(uint32), err + } + + out0 := *abi.ConvertType(out[0], new(uint32)).(*uint32) + + return out0, err + +} + +// MAXSESSIONDURATION is a free data retrieval call binding the contract method 0xcd8cd4ad. +// +// Solidity: function MAX_SESSION_DURATION() view returns(uint32) +func (_SessionRouter *SessionRouterSession) MAXSESSIONDURATION() (uint32, error) { + return _SessionRouter.Contract.MAXSESSIONDURATION(&_SessionRouter.CallOpts) +} + +// MAXSESSIONDURATION is a free data retrieval call binding the contract method 0xcd8cd4ad. +// +// Solidity: function MAX_SESSION_DURATION() view returns(uint32) +func (_SessionRouter *SessionRouterCallerSession) MAXSESSIONDURATION() (uint32, error) { + return _SessionRouter.Contract.MAXSESSIONDURATION(&_SessionRouter.CallOpts) +} + +// MINSESSIONDURATION is a free data retrieval call binding the contract method 0x7d980286. +// +// Solidity: function MIN_SESSION_DURATION() view returns(uint32) +func (_SessionRouter *SessionRouterCaller) MINSESSIONDURATION(opts *bind.CallOpts) (uint32, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "MIN_SESSION_DURATION") + + if err != nil { + return *new(uint32), err + } + + out0 := *abi.ConvertType(out[0], new(uint32)).(*uint32) + + return out0, err + +} + +// MINSESSIONDURATION is a free data retrieval call binding the contract method 0x7d980286. +// +// Solidity: function MIN_SESSION_DURATION() view returns(uint32) +func (_SessionRouter *SessionRouterSession) MINSESSIONDURATION() (uint32, error) { + return _SessionRouter.Contract.MINSESSIONDURATION(&_SessionRouter.CallOpts) +} + +// MINSESSIONDURATION is a free data retrieval call binding the contract method 0x7d980286. +// +// Solidity: function MIN_SESSION_DURATION() view returns(uint32) +func (_SessionRouter *SessionRouterCallerSession) MINSESSIONDURATION() (uint32, error) { + return _SessionRouter.Contract.MINSESSIONDURATION(&_SessionRouter.CallOpts) +} + +// PROVIDERSSTORAGESLOT is a free data retrieval call binding the contract method 0xc51830f6. +// +// Solidity: function PROVIDERS_STORAGE_SLOT() view returns(bytes32) +func (_SessionRouter *SessionRouterCaller) PROVIDERSSTORAGESLOT(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "PROVIDERS_STORAGE_SLOT") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// PROVIDERSSTORAGESLOT is a free data retrieval call binding the contract method 0xc51830f6. +// +// Solidity: function PROVIDERS_STORAGE_SLOT() view returns(bytes32) +func (_SessionRouter *SessionRouterSession) PROVIDERSSTORAGESLOT() ([32]byte, error) { + return _SessionRouter.Contract.PROVIDERSSTORAGESLOT(&_SessionRouter.CallOpts) +} + +// PROVIDERSSTORAGESLOT is a free data retrieval call binding the contract method 0xc51830f6. +// +// Solidity: function PROVIDERS_STORAGE_SLOT() view returns(bytes32) +func (_SessionRouter *SessionRouterCallerSession) PROVIDERSSTORAGESLOT() ([32]byte, error) { + return _SessionRouter.Contract.PROVIDERSSTORAGESLOT(&_SessionRouter.CallOpts) +} + +// SESSIONSSTORAGESLOT is a free data retrieval call binding the contract method 0xb392636e. +// +// Solidity: function SESSIONS_STORAGE_SLOT() view returns(bytes32) +func (_SessionRouter *SessionRouterCaller) SESSIONSSTORAGESLOT(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "SESSIONS_STORAGE_SLOT") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// SESSIONSSTORAGESLOT is a free data retrieval call binding the contract method 0xb392636e. +// +// Solidity: function SESSIONS_STORAGE_SLOT() view returns(bytes32) +func (_SessionRouter *SessionRouterSession) SESSIONSSTORAGESLOT() ([32]byte, error) { + return _SessionRouter.Contract.SESSIONSSTORAGESLOT(&_SessionRouter.CallOpts) +} + +// SESSIONSSTORAGESLOT is a free data retrieval call binding the contract method 0xb392636e. +// +// Solidity: function SESSIONS_STORAGE_SLOT() view returns(bytes32) +func (_SessionRouter *SessionRouterCallerSession) SESSIONSSTORAGESLOT() ([32]byte, error) { + return _SessionRouter.Contract.SESSIONSSTORAGESLOT(&_SessionRouter.CallOpts) +} + +// SIGNATURETTL is a free data retrieval call binding the contract method 0xe7d791d0. +// +// Solidity: function SIGNATURE_TTL() view returns(uint32) +func (_SessionRouter *SessionRouterCaller) SIGNATURETTL(opts *bind.CallOpts) (uint32, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "SIGNATURE_TTL") + + if err != nil { + return *new(uint32), err + } + + out0 := *abi.ConvertType(out[0], new(uint32)).(*uint32) + + return out0, err + +} + +// SIGNATURETTL is a free data retrieval call binding the contract method 0xe7d791d0. +// +// Solidity: function SIGNATURE_TTL() view returns(uint32) +func (_SessionRouter *SessionRouterSession) SIGNATURETTL() (uint32, error) { + return _SessionRouter.Contract.SIGNATURETTL(&_SessionRouter.CallOpts) +} + +// SIGNATURETTL is a free data retrieval call binding the contract method 0xe7d791d0. +// +// Solidity: function SIGNATURE_TTL() view returns(uint32) +func (_SessionRouter *SessionRouterCallerSession) SIGNATURETTL() (uint32, error) { + return _SessionRouter.Contract.SIGNATURETTL(&_SessionRouter.CallOpts) +} + +// STATSSTORAGESLOT is a free data retrieval call binding the contract method 0x87040789. +// +// Solidity: function STATS_STORAGE_SLOT() view returns(bytes32) +func (_SessionRouter *SessionRouterCaller) STATSSTORAGESLOT(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "STATS_STORAGE_SLOT") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// STATSSTORAGESLOT is a free data retrieval call binding the contract method 0x87040789. +// +// Solidity: function STATS_STORAGE_SLOT() view returns(bytes32) +func (_SessionRouter *SessionRouterSession) STATSSTORAGESLOT() ([32]byte, error) { + return _SessionRouter.Contract.STATSSTORAGESLOT(&_SessionRouter.CallOpts) +} + +// STATSSTORAGESLOT is a free data retrieval call binding the contract method 0x87040789. +// +// Solidity: function STATS_STORAGE_SLOT() view returns(bytes32) +func (_SessionRouter *SessionRouterCallerSession) STATSSTORAGESLOT() ([32]byte, error) { + return _SessionRouter.Contract.STATSSTORAGESLOT(&_SessionRouter.CallOpts) +} + +// GetActiveProviders is a free data retrieval call binding the contract method 0xd5472642. +// +// Solidity: function getActiveProviders(uint256 offset_, uint256 limit_) view returns(address[]) +func (_SessionRouter *SessionRouterCaller) GetActiveProviders(opts *bind.CallOpts, offset_ *big.Int, limit_ *big.Int) ([]common.Address, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "getActiveProviders", offset_, limit_) + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// GetActiveProviders is a free data retrieval call binding the contract method 0xd5472642. +// +// Solidity: function getActiveProviders(uint256 offset_, uint256 limit_) view returns(address[]) +func (_SessionRouter *SessionRouterSession) GetActiveProviders(offset_ *big.Int, limit_ *big.Int) ([]common.Address, error) { + return _SessionRouter.Contract.GetActiveProviders(&_SessionRouter.CallOpts, offset_, limit_) +} + +// GetActiveProviders is a free data retrieval call binding the contract method 0xd5472642. +// +// Solidity: function getActiveProviders(uint256 offset_, uint256 limit_) view returns(address[]) +func (_SessionRouter *SessionRouterCallerSession) GetActiveProviders(offset_ *big.Int, limit_ *big.Int) ([]common.Address, error) { + return _SessionRouter.Contract.GetActiveProviders(&_SessionRouter.CallOpts, offset_, limit_) +} + +// GetBid is a free data retrieval call binding the contract method 0x91704e1e. +// +// Solidity: function getBid(bytes32 bidId_) view returns((address,bytes32,uint256,uint256,uint128,uint128)) +func (_SessionRouter *SessionRouterCaller) GetBid(opts *bind.CallOpts, bidId_ [32]byte) (IBidStorageBid, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "getBid", bidId_) + + if err != nil { + return *new(IBidStorageBid), err + } + + out0 := *abi.ConvertType(out[0], new(IBidStorageBid)).(*IBidStorageBid) + + return out0, err + +} + +// GetBid is a free data retrieval call binding the contract method 0x91704e1e. +// +// Solidity: function getBid(bytes32 bidId_) view returns((address,bytes32,uint256,uint256,uint128,uint128)) +func (_SessionRouter *SessionRouterSession) GetBid(bidId_ [32]byte) (IBidStorageBid, error) { + return _SessionRouter.Contract.GetBid(&_SessionRouter.CallOpts, bidId_) +} + +// GetBid is a free data retrieval call binding the contract method 0x91704e1e. +// +// Solidity: function getBid(bytes32 bidId_) view returns((address,bytes32,uint256,uint256,uint128,uint128)) +func (_SessionRouter *SessionRouterCallerSession) GetBid(bidId_ [32]byte) (IBidStorageBid, error) { + return _SessionRouter.Contract.GetBid(&_SessionRouter.CallOpts, bidId_) +} + +// GetComputeBalance is a free data retrieval call binding the contract method 0x61ce471a. +// +// Solidity: function getComputeBalance(uint128 timestamp_) view returns(uint256) +func (_SessionRouter *SessionRouterCaller) GetComputeBalance(opts *bind.CallOpts, timestamp_ *big.Int) (*big.Int, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "getComputeBalance", timestamp_) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetComputeBalance is a free data retrieval call binding the contract method 0x61ce471a. +// +// Solidity: function getComputeBalance(uint128 timestamp_) view returns(uint256) +func (_SessionRouter *SessionRouterSession) GetComputeBalance(timestamp_ *big.Int) (*big.Int, error) { + return _SessionRouter.Contract.GetComputeBalance(&_SessionRouter.CallOpts, timestamp_) +} + +// GetComputeBalance is a free data retrieval call binding the contract method 0x61ce471a. +// +// Solidity: function getComputeBalance(uint128 timestamp_) view returns(uint256) +func (_SessionRouter *SessionRouterCallerSession) GetComputeBalance(timestamp_ *big.Int) (*big.Int, error) { + return _SessionRouter.Contract.GetComputeBalance(&_SessionRouter.CallOpts, timestamp_) +} + +// GetFundingAccount is a free data retrieval call binding the contract method 0x775c3727. +// +// Solidity: function getFundingAccount() view returns(address) +func (_SessionRouter *SessionRouterCaller) GetFundingAccount(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "getFundingAccount") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// GetFundingAccount is a free data retrieval call binding the contract method 0x775c3727. +// +// Solidity: function getFundingAccount() view returns(address) +func (_SessionRouter *SessionRouterSession) GetFundingAccount() (common.Address, error) { + return _SessionRouter.Contract.GetFundingAccount(&_SessionRouter.CallOpts) +} + +// GetFundingAccount is a free data retrieval call binding the contract method 0x775c3727. +// +// Solidity: function getFundingAccount() view returns(address) +func (_SessionRouter *SessionRouterCallerSession) GetFundingAccount() (common.Address, error) { + return _SessionRouter.Contract.GetFundingAccount(&_SessionRouter.CallOpts) +} + +// GetIsProviderActive is a free data retrieval call binding the contract method 0x63ef175d. +// +// Solidity: function getIsProviderActive(address provider_) view returns(bool) +func (_SessionRouter *SessionRouterCaller) GetIsProviderActive(opts *bind.CallOpts, provider_ common.Address) (bool, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "getIsProviderActive", provider_) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// GetIsProviderActive is a free data retrieval call binding the contract method 0x63ef175d. +// +// Solidity: function getIsProviderActive(address provider_) view returns(bool) +func (_SessionRouter *SessionRouterSession) GetIsProviderActive(provider_ common.Address) (bool, error) { + return _SessionRouter.Contract.GetIsProviderActive(&_SessionRouter.CallOpts, provider_) +} + +// GetIsProviderActive is a free data retrieval call binding the contract method 0x63ef175d. +// +// Solidity: function getIsProviderActive(address provider_) view returns(bool) +func (_SessionRouter *SessionRouterCallerSession) GetIsProviderActive(provider_ common.Address) (bool, error) { + return _SessionRouter.Contract.GetIsProviderActive(&_SessionRouter.CallOpts, provider_) +} + +// GetIsProviderApprovalUsed is a free data retrieval call binding the contract method 0xdb1cf1e2. +// +// Solidity: function getIsProviderApprovalUsed(bytes approval_) view returns(bool) +func (_SessionRouter *SessionRouterCaller) GetIsProviderApprovalUsed(opts *bind.CallOpts, approval_ []byte) (bool, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "getIsProviderApprovalUsed", approval_) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// GetIsProviderApprovalUsed is a free data retrieval call binding the contract method 0xdb1cf1e2. +// +// Solidity: function getIsProviderApprovalUsed(bytes approval_) view returns(bool) +func (_SessionRouter *SessionRouterSession) GetIsProviderApprovalUsed(approval_ []byte) (bool, error) { + return _SessionRouter.Contract.GetIsProviderApprovalUsed(&_SessionRouter.CallOpts, approval_) +} + +// GetIsProviderApprovalUsed is a free data retrieval call binding the contract method 0xdb1cf1e2. +// +// Solidity: function getIsProviderApprovalUsed(bytes approval_) view returns(bool) +func (_SessionRouter *SessionRouterCallerSession) GetIsProviderApprovalUsed(approval_ []byte) (bool, error) { + return _SessionRouter.Contract.GetIsProviderApprovalUsed(&_SessionRouter.CallOpts, approval_) +} + +// GetModelActiveBids is a free data retrieval call binding the contract method 0x8a683b6e. +// +// Solidity: function getModelActiveBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_SessionRouter *SessionRouterCaller) GetModelActiveBids(opts *bind.CallOpts, modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "getModelActiveBids", modelId_, offset_, limit_) + + if err != nil { + return *new([][32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) + + return out0, err + +} + +// GetModelActiveBids is a free data retrieval call binding the contract method 0x8a683b6e. +// +// Solidity: function getModelActiveBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_SessionRouter *SessionRouterSession) GetModelActiveBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _SessionRouter.Contract.GetModelActiveBids(&_SessionRouter.CallOpts, modelId_, offset_, limit_) +} + +// GetModelActiveBids is a free data retrieval call binding the contract method 0x8a683b6e. +// +// Solidity: function getModelActiveBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_SessionRouter *SessionRouterCallerSession) GetModelActiveBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _SessionRouter.Contract.GetModelActiveBids(&_SessionRouter.CallOpts, modelId_, offset_, limit_) +} + +// GetModelBids is a free data retrieval call binding the contract method 0xfade17b1. +// +// Solidity: function getModelBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_SessionRouter *SessionRouterCaller) GetModelBids(opts *bind.CallOpts, modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "getModelBids", modelId_, offset_, limit_) + + if err != nil { + return *new([][32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) + + return out0, err + +} + +// GetModelBids is a free data retrieval call binding the contract method 0xfade17b1. +// +// Solidity: function getModelBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_SessionRouter *SessionRouterSession) GetModelBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _SessionRouter.Contract.GetModelBids(&_SessionRouter.CallOpts, modelId_, offset_, limit_) +} + +// GetModelBids is a free data retrieval call binding the contract method 0xfade17b1. +// +// Solidity: function getModelBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_SessionRouter *SessionRouterCallerSession) GetModelBids(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _SessionRouter.Contract.GetModelBids(&_SessionRouter.CallOpts, modelId_, offset_, limit_) +} + +// GetModelSessions is a free data retrieval call binding the contract method 0x1d78a872. +// +// Solidity: function getModelSessions(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_SessionRouter *SessionRouterCaller) GetModelSessions(opts *bind.CallOpts, modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "getModelSessions", modelId_, offset_, limit_) + + if err != nil { + return *new([][32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) + + return out0, err + +} + +// GetModelSessions is a free data retrieval call binding the contract method 0x1d78a872. +// +// Solidity: function getModelSessions(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_SessionRouter *SessionRouterSession) GetModelSessions(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _SessionRouter.Contract.GetModelSessions(&_SessionRouter.CallOpts, modelId_, offset_, limit_) +} + +// GetModelSessions is a free data retrieval call binding the contract method 0x1d78a872. +// +// Solidity: function getModelSessions(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_SessionRouter *SessionRouterCallerSession) GetModelSessions(modelId_ [32]byte, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _SessionRouter.Contract.GetModelSessions(&_SessionRouter.CallOpts, modelId_, offset_, limit_) +} + +// GetModelStats is a free data retrieval call binding the contract method 0xce535723. +// +// Solidity: function getModelStats(bytes32 modelId_) view returns(((int64,int64),(int64,int64),(int64,int64),uint32)) +func (_SessionRouter *SessionRouterCaller) GetModelStats(opts *bind.CallOpts, modelId_ [32]byte) (IStatsStorageModelStats, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "getModelStats", modelId_) + + if err != nil { + return *new(IStatsStorageModelStats), err + } + + out0 := *abi.ConvertType(out[0], new(IStatsStorageModelStats)).(*IStatsStorageModelStats) + + return out0, err + +} + +// GetModelStats is a free data retrieval call binding the contract method 0xce535723. +// +// Solidity: function getModelStats(bytes32 modelId_) view returns(((int64,int64),(int64,int64),(int64,int64),uint32)) +func (_SessionRouter *SessionRouterSession) GetModelStats(modelId_ [32]byte) (IStatsStorageModelStats, error) { + return _SessionRouter.Contract.GetModelStats(&_SessionRouter.CallOpts, modelId_) +} + +// GetModelStats is a free data retrieval call binding the contract method 0xce535723. +// +// Solidity: function getModelStats(bytes32 modelId_) view returns(((int64,int64),(int64,int64),(int64,int64),uint32)) +func (_SessionRouter *SessionRouterCallerSession) GetModelStats(modelId_ [32]byte) (IStatsStorageModelStats, error) { + return _SessionRouter.Contract.GetModelStats(&_SessionRouter.CallOpts, modelId_) +} + +// GetPool is a free data retrieval call binding the contract method 0x068bcd8d. +// +// Solidity: function getPool(uint256 index_) view returns((uint256,uint256,uint128,uint128)) +func (_SessionRouter *SessionRouterCaller) GetPool(opts *bind.CallOpts, index_ *big.Int) (ISessionStoragePool, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "getPool", index_) + + if err != nil { + return *new(ISessionStoragePool), err + } + + out0 := *abi.ConvertType(out[0], new(ISessionStoragePool)).(*ISessionStoragePool) + + return out0, err + +} + +// GetPool is a free data retrieval call binding the contract method 0x068bcd8d. +// +// Solidity: function getPool(uint256 index_) view returns((uint256,uint256,uint128,uint128)) +func (_SessionRouter *SessionRouterSession) GetPool(index_ *big.Int) (ISessionStoragePool, error) { + return _SessionRouter.Contract.GetPool(&_SessionRouter.CallOpts, index_) +} + +// GetPool is a free data retrieval call binding the contract method 0x068bcd8d. +// +// Solidity: function getPool(uint256 index_) view returns((uint256,uint256,uint128,uint128)) +func (_SessionRouter *SessionRouterCallerSession) GetPool(index_ *big.Int) (ISessionStoragePool, error) { + return _SessionRouter.Contract.GetPool(&_SessionRouter.CallOpts, index_) +} + +// GetPools is a free data retrieval call binding the contract method 0x673a2a1f. +// +// Solidity: function getPools() view returns((uint256,uint256,uint128,uint128)[]) +func (_SessionRouter *SessionRouterCaller) GetPools(opts *bind.CallOpts) ([]ISessionStoragePool, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "getPools") + + if err != nil { + return *new([]ISessionStoragePool), err + } + + out0 := *abi.ConvertType(out[0], new([]ISessionStoragePool)).(*[]ISessionStoragePool) + + return out0, err + +} + +// GetPools is a free data retrieval call binding the contract method 0x673a2a1f. +// +// Solidity: function getPools() view returns((uint256,uint256,uint128,uint128)[]) +func (_SessionRouter *SessionRouterSession) GetPools() ([]ISessionStoragePool, error) { + return _SessionRouter.Contract.GetPools(&_SessionRouter.CallOpts) +} + +// GetPools is a free data retrieval call binding the contract method 0x673a2a1f. +// +// Solidity: function getPools() view returns((uint256,uint256,uint128,uint128)[]) +func (_SessionRouter *SessionRouterCallerSession) GetPools() ([]ISessionStoragePool, error) { + return _SessionRouter.Contract.GetPools(&_SessionRouter.CallOpts) +} + +// GetProvider is a free data retrieval call binding the contract method 0x55f21eb7. +// +// Solidity: function getProvider(address provider_) view returns((string,uint256,uint128,uint128,uint256,bool)) +func (_SessionRouter *SessionRouterCaller) GetProvider(opts *bind.CallOpts, provider_ common.Address) (IProviderStorageProvider, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "getProvider", provider_) + + if err != nil { + return *new(IProviderStorageProvider), err + } + + out0 := *abi.ConvertType(out[0], new(IProviderStorageProvider)).(*IProviderStorageProvider) + + return out0, err + +} + +// GetProvider is a free data retrieval call binding the contract method 0x55f21eb7. +// +// Solidity: function getProvider(address provider_) view returns((string,uint256,uint128,uint128,uint256,bool)) +func (_SessionRouter *SessionRouterSession) GetProvider(provider_ common.Address) (IProviderStorageProvider, error) { + return _SessionRouter.Contract.GetProvider(&_SessionRouter.CallOpts, provider_) +} + +// GetProvider is a free data retrieval call binding the contract method 0x55f21eb7. +// +// Solidity: function getProvider(address provider_) view returns((string,uint256,uint128,uint128,uint256,bool)) +func (_SessionRouter *SessionRouterCallerSession) GetProvider(provider_ common.Address) (IProviderStorageProvider, error) { + return _SessionRouter.Contract.GetProvider(&_SessionRouter.CallOpts, provider_) +} + +// GetProviderActiveBids is a free data retrieval call binding the contract method 0xaf5b77ca. +// +// Solidity: function getProviderActiveBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_SessionRouter *SessionRouterCaller) GetProviderActiveBids(opts *bind.CallOpts, provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "getProviderActiveBids", provider_, offset_, limit_) + + if err != nil { + return *new([][32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) + + return out0, err + +} + +// GetProviderActiveBids is a free data retrieval call binding the contract method 0xaf5b77ca. +// +// Solidity: function getProviderActiveBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_SessionRouter *SessionRouterSession) GetProviderActiveBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _SessionRouter.Contract.GetProviderActiveBids(&_SessionRouter.CallOpts, provider_, offset_, limit_) +} + +// GetProviderActiveBids is a free data retrieval call binding the contract method 0xaf5b77ca. +// +// Solidity: function getProviderActiveBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_SessionRouter *SessionRouterCallerSession) GetProviderActiveBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _SessionRouter.Contract.GetProviderActiveBids(&_SessionRouter.CallOpts, provider_, offset_, limit_) +} + +// GetProviderBids is a free data retrieval call binding the contract method 0x59d435c4. +// +// Solidity: function getProviderBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_SessionRouter *SessionRouterCaller) GetProviderBids(opts *bind.CallOpts, provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "getProviderBids", provider_, offset_, limit_) + + if err != nil { + return *new([][32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) + + return out0, err + +} + +// GetProviderBids is a free data retrieval call binding the contract method 0x59d435c4. +// +// Solidity: function getProviderBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_SessionRouter *SessionRouterSession) GetProviderBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _SessionRouter.Contract.GetProviderBids(&_SessionRouter.CallOpts, provider_, offset_, limit_) +} + +// GetProviderBids is a free data retrieval call binding the contract method 0x59d435c4. +// +// Solidity: function getProviderBids(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_SessionRouter *SessionRouterCallerSession) GetProviderBids(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _SessionRouter.Contract.GetProviderBids(&_SessionRouter.CallOpts, provider_, offset_, limit_) +} + +// GetProviderMinimumStake is a free data retrieval call binding the contract method 0x53c029f6. +// +// Solidity: function getProviderMinimumStake() view returns(uint256) +func (_SessionRouter *SessionRouterCaller) GetProviderMinimumStake(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "getProviderMinimumStake") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetProviderMinimumStake is a free data retrieval call binding the contract method 0x53c029f6. +// +// Solidity: function getProviderMinimumStake() view returns(uint256) +func (_SessionRouter *SessionRouterSession) GetProviderMinimumStake() (*big.Int, error) { + return _SessionRouter.Contract.GetProviderMinimumStake(&_SessionRouter.CallOpts) +} + +// GetProviderMinimumStake is a free data retrieval call binding the contract method 0x53c029f6. +// +// Solidity: function getProviderMinimumStake() view returns(uint256) +func (_SessionRouter *SessionRouterCallerSession) GetProviderMinimumStake() (*big.Int, error) { + return _SessionRouter.Contract.GetProviderMinimumStake(&_SessionRouter.CallOpts) +} + +// GetProviderModelStats is a free data retrieval call binding the contract method 0x1b26c116. +// +// Solidity: function getProviderModelStats(bytes32 modelId_, address provider_) view returns(((int64,int64),(int64,int64),uint32,uint32,uint32)) +func (_SessionRouter *SessionRouterCaller) GetProviderModelStats(opts *bind.CallOpts, modelId_ [32]byte, provider_ common.Address) (IStatsStorageProviderModelStats, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "getProviderModelStats", modelId_, provider_) + + if err != nil { + return *new(IStatsStorageProviderModelStats), err + } + + out0 := *abi.ConvertType(out[0], new(IStatsStorageProviderModelStats)).(*IStatsStorageProviderModelStats) + + return out0, err + +} + +// GetProviderModelStats is a free data retrieval call binding the contract method 0x1b26c116. +// +// Solidity: function getProviderModelStats(bytes32 modelId_, address provider_) view returns(((int64,int64),(int64,int64),uint32,uint32,uint32)) +func (_SessionRouter *SessionRouterSession) GetProviderModelStats(modelId_ [32]byte, provider_ common.Address) (IStatsStorageProviderModelStats, error) { + return _SessionRouter.Contract.GetProviderModelStats(&_SessionRouter.CallOpts, modelId_, provider_) +} + +// GetProviderModelStats is a free data retrieval call binding the contract method 0x1b26c116. +// +// Solidity: function getProviderModelStats(bytes32 modelId_, address provider_) view returns(((int64,int64),(int64,int64),uint32,uint32,uint32)) +func (_SessionRouter *SessionRouterCallerSession) GetProviderModelStats(modelId_ [32]byte, provider_ common.Address) (IStatsStorageProviderModelStats, error) { + return _SessionRouter.Contract.GetProviderModelStats(&_SessionRouter.CallOpts, modelId_, provider_) +} + +// GetProviderSessions is a free data retrieval call binding the contract method 0x87bced7d. +// +// Solidity: function getProviderSessions(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_SessionRouter *SessionRouterCaller) GetProviderSessions(opts *bind.CallOpts, provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "getProviderSessions", provider_, offset_, limit_) + + if err != nil { + return *new([][32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) + + return out0, err + +} + +// GetProviderSessions is a free data retrieval call binding the contract method 0x87bced7d. +// +// Solidity: function getProviderSessions(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_SessionRouter *SessionRouterSession) GetProviderSessions(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _SessionRouter.Contract.GetProviderSessions(&_SessionRouter.CallOpts, provider_, offset_, limit_) +} + +// GetProviderSessions is a free data retrieval call binding the contract method 0x87bced7d. +// +// Solidity: function getProviderSessions(address provider_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_SessionRouter *SessionRouterCallerSession) GetProviderSessions(provider_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _SessionRouter.Contract.GetProviderSessions(&_SessionRouter.CallOpts, provider_, offset_, limit_) +} + +// GetProvidersTotalClaimed is a free data retrieval call binding the contract method 0xbdfbbada. +// +// Solidity: function getProvidersTotalClaimed() view returns(uint256) +func (_SessionRouter *SessionRouterCaller) GetProvidersTotalClaimed(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "getProvidersTotalClaimed") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetProvidersTotalClaimed is a free data retrieval call binding the contract method 0xbdfbbada. +// +// Solidity: function getProvidersTotalClaimed() view returns(uint256) +func (_SessionRouter *SessionRouterSession) GetProvidersTotalClaimed() (*big.Int, error) { + return _SessionRouter.Contract.GetProvidersTotalClaimed(&_SessionRouter.CallOpts) +} + +// GetProvidersTotalClaimed is a free data retrieval call binding the contract method 0xbdfbbada. +// +// Solidity: function getProvidersTotalClaimed() view returns(uint256) +func (_SessionRouter *SessionRouterCallerSession) GetProvidersTotalClaimed() (*big.Int, error) { + return _SessionRouter.Contract.GetProvidersTotalClaimed(&_SessionRouter.CallOpts) +} + +// GetSession is a free data retrieval call binding the contract method 0x39b240bd. +// +// Solidity: function getSession(bytes32 sessionId_) view returns((address,bytes32,uint256,bytes,uint256,uint256,uint128,uint128,uint128,bool)) +func (_SessionRouter *SessionRouterCaller) GetSession(opts *bind.CallOpts, sessionId_ [32]byte) (ISessionStorageSession, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "getSession", sessionId_) + + if err != nil { + return *new(ISessionStorageSession), err + } + + out0 := *abi.ConvertType(out[0], new(ISessionStorageSession)).(*ISessionStorageSession) + + return out0, err + +} + +// GetSession is a free data retrieval call binding the contract method 0x39b240bd. +// +// Solidity: function getSession(bytes32 sessionId_) view returns((address,bytes32,uint256,bytes,uint256,uint256,uint128,uint128,uint128,bool)) +func (_SessionRouter *SessionRouterSession) GetSession(sessionId_ [32]byte) (ISessionStorageSession, error) { + return _SessionRouter.Contract.GetSession(&_SessionRouter.CallOpts, sessionId_) +} + +// GetSession is a free data retrieval call binding the contract method 0x39b240bd. +// +// Solidity: function getSession(bytes32 sessionId_) view returns((address,bytes32,uint256,bytes,uint256,uint256,uint128,uint128,uint128,bool)) +func (_SessionRouter *SessionRouterCallerSession) GetSession(sessionId_ [32]byte) (ISessionStorageSession, error) { + return _SessionRouter.Contract.GetSession(&_SessionRouter.CallOpts, sessionId_) +} + +// GetSessionEnd is a free data retrieval call binding the contract method 0xb823dc8f. +// +// Solidity: function getSessionEnd(uint256 amount_, uint256 pricePerSecond_, uint128 openedAt_) view returns(uint128) +func (_SessionRouter *SessionRouterCaller) GetSessionEnd(opts *bind.CallOpts, amount_ *big.Int, pricePerSecond_ *big.Int, openedAt_ *big.Int) (*big.Int, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "getSessionEnd", amount_, pricePerSecond_, openedAt_) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetSessionEnd is a free data retrieval call binding the contract method 0xb823dc8f. +// +// Solidity: function getSessionEnd(uint256 amount_, uint256 pricePerSecond_, uint128 openedAt_) view returns(uint128) +func (_SessionRouter *SessionRouterSession) GetSessionEnd(amount_ *big.Int, pricePerSecond_ *big.Int, openedAt_ *big.Int) (*big.Int, error) { + return _SessionRouter.Contract.GetSessionEnd(&_SessionRouter.CallOpts, amount_, pricePerSecond_, openedAt_) +} + +// GetSessionEnd is a free data retrieval call binding the contract method 0xb823dc8f. +// +// Solidity: function getSessionEnd(uint256 amount_, uint256 pricePerSecond_, uint128 openedAt_) view returns(uint128) +func (_SessionRouter *SessionRouterCallerSession) GetSessionEnd(amount_ *big.Int, pricePerSecond_ *big.Int, openedAt_ *big.Int) (*big.Int, error) { + return _SessionRouter.Contract.GetSessionEnd(&_SessionRouter.CallOpts, amount_, pricePerSecond_, openedAt_) +} + +// GetSessionId is a free data retrieval call binding the contract method 0x4d689ffd. +// +// Solidity: function getSessionId(address user_, address provider_, bytes32 bidId_, uint256 sessionNonce_) pure returns(bytes32) +func (_SessionRouter *SessionRouterCaller) GetSessionId(opts *bind.CallOpts, user_ common.Address, provider_ common.Address, bidId_ [32]byte, sessionNonce_ *big.Int) ([32]byte, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "getSessionId", user_, provider_, bidId_, sessionNonce_) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// GetSessionId is a free data retrieval call binding the contract method 0x4d689ffd. +// +// Solidity: function getSessionId(address user_, address provider_, bytes32 bidId_, uint256 sessionNonce_) pure returns(bytes32) +func (_SessionRouter *SessionRouterSession) GetSessionId(user_ common.Address, provider_ common.Address, bidId_ [32]byte, sessionNonce_ *big.Int) ([32]byte, error) { + return _SessionRouter.Contract.GetSessionId(&_SessionRouter.CallOpts, user_, provider_, bidId_, sessionNonce_) +} + +// GetSessionId is a free data retrieval call binding the contract method 0x4d689ffd. +// +// Solidity: function getSessionId(address user_, address provider_, bytes32 bidId_, uint256 sessionNonce_) pure returns(bytes32) +func (_SessionRouter *SessionRouterCallerSession) GetSessionId(user_ common.Address, provider_ common.Address, bidId_ [32]byte, sessionNonce_ *big.Int) ([32]byte, error) { + return _SessionRouter.Contract.GetSessionId(&_SessionRouter.CallOpts, user_, provider_, bidId_, sessionNonce_) +} + +// GetTodaysBudget is a free data retrieval call binding the contract method 0x40005965. +// +// Solidity: function getTodaysBudget(uint128 timestamp_) view returns(uint256) +func (_SessionRouter *SessionRouterCaller) GetTodaysBudget(opts *bind.CallOpts, timestamp_ *big.Int) (*big.Int, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "getTodaysBudget", timestamp_) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetTodaysBudget is a free data retrieval call binding the contract method 0x40005965. +// +// Solidity: function getTodaysBudget(uint128 timestamp_) view returns(uint256) +func (_SessionRouter *SessionRouterSession) GetTodaysBudget(timestamp_ *big.Int) (*big.Int, error) { + return _SessionRouter.Contract.GetTodaysBudget(&_SessionRouter.CallOpts, timestamp_) +} + +// GetTodaysBudget is a free data retrieval call binding the contract method 0x40005965. +// +// Solidity: function getTodaysBudget(uint128 timestamp_) view returns(uint256) +func (_SessionRouter *SessionRouterCallerSession) GetTodaysBudget(timestamp_ *big.Int) (*big.Int, error) { + return _SessionRouter.Contract.GetTodaysBudget(&_SessionRouter.CallOpts, timestamp_) +} + +// GetToken is a free data retrieval call binding the contract method 0x21df0da7. +// +// Solidity: function getToken() view returns(address) +func (_SessionRouter *SessionRouterCaller) GetToken(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "getToken") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// GetToken is a free data retrieval call binding the contract method 0x21df0da7. +// +// Solidity: function getToken() view returns(address) +func (_SessionRouter *SessionRouterSession) GetToken() (common.Address, error) { + return _SessionRouter.Contract.GetToken(&_SessionRouter.CallOpts) +} + +// GetToken is a free data retrieval call binding the contract method 0x21df0da7. +// +// Solidity: function getToken() view returns(address) +func (_SessionRouter *SessionRouterCallerSession) GetToken() (common.Address, error) { + return _SessionRouter.Contract.GetToken(&_SessionRouter.CallOpts) +} + +// GetTotalSessions is a free data retrieval call binding the contract method 0x76400935. +// +// Solidity: function getTotalSessions(address providerAddr_) view returns(uint256) +func (_SessionRouter *SessionRouterCaller) GetTotalSessions(opts *bind.CallOpts, providerAddr_ common.Address) (*big.Int, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "getTotalSessions", providerAddr_) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetTotalSessions is a free data retrieval call binding the contract method 0x76400935. +// +// Solidity: function getTotalSessions(address providerAddr_) view returns(uint256) +func (_SessionRouter *SessionRouterSession) GetTotalSessions(providerAddr_ common.Address) (*big.Int, error) { + return _SessionRouter.Contract.GetTotalSessions(&_SessionRouter.CallOpts, providerAddr_) +} + +// GetTotalSessions is a free data retrieval call binding the contract method 0x76400935. +// +// Solidity: function getTotalSessions(address providerAddr_) view returns(uint256) +func (_SessionRouter *SessionRouterCallerSession) GetTotalSessions(providerAddr_ common.Address) (*big.Int, error) { + return _SessionRouter.Contract.GetTotalSessions(&_SessionRouter.CallOpts, providerAddr_) +} + +// GetUserSessions is a free data retrieval call binding the contract method 0xeb7764bb. +// +// Solidity: function getUserSessions(address user_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_SessionRouter *SessionRouterCaller) GetUserSessions(opts *bind.CallOpts, user_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "getUserSessions", user_, offset_, limit_) + + if err != nil { + return *new([][32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) + + return out0, err + +} + +// GetUserSessions is a free data retrieval call binding the contract method 0xeb7764bb. +// +// Solidity: function getUserSessions(address user_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_SessionRouter *SessionRouterSession) GetUserSessions(user_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _SessionRouter.Contract.GetUserSessions(&_SessionRouter.CallOpts, user_, offset_, limit_) +} + +// GetUserSessions is a free data retrieval call binding the contract method 0xeb7764bb. +// +// Solidity: function getUserSessions(address user_, uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_SessionRouter *SessionRouterCallerSession) GetUserSessions(user_ common.Address, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _SessionRouter.Contract.GetUserSessions(&_SessionRouter.CallOpts, user_, offset_, limit_) +} + +// GetUserStakesOnHold is a free data retrieval call binding the contract method 0x967885df. +// +// Solidity: function getUserStakesOnHold(address user_, uint8 iterations_) view returns(uint256 available_, uint256 hold_) +func (_SessionRouter *SessionRouterCaller) GetUserStakesOnHold(opts *bind.CallOpts, user_ common.Address, iterations_ uint8) (struct { + Available *big.Int + Hold *big.Int +}, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "getUserStakesOnHold", user_, iterations_) + + outstruct := new(struct { + Available *big.Int + Hold *big.Int + }) + if err != nil { + return *outstruct, err + } + + outstruct.Available = *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + outstruct.Hold = *abi.ConvertType(out[1], new(*big.Int)).(**big.Int) + + return *outstruct, err + +} + +// GetUserStakesOnHold is a free data retrieval call binding the contract method 0x967885df. +// +// Solidity: function getUserStakesOnHold(address user_, uint8 iterations_) view returns(uint256 available_, uint256 hold_) +func (_SessionRouter *SessionRouterSession) GetUserStakesOnHold(user_ common.Address, iterations_ uint8) (struct { + Available *big.Int + Hold *big.Int +}, error) { + return _SessionRouter.Contract.GetUserStakesOnHold(&_SessionRouter.CallOpts, user_, iterations_) +} + +// GetUserStakesOnHold is a free data retrieval call binding the contract method 0x967885df. +// +// Solidity: function getUserStakesOnHold(address user_, uint8 iterations_) view returns(uint256 available_, uint256 hold_) +func (_SessionRouter *SessionRouterCallerSession) GetUserStakesOnHold(user_ common.Address, iterations_ uint8) (struct { + Available *big.Int + Hold *big.Int +}, error) { + return _SessionRouter.Contract.GetUserStakesOnHold(&_SessionRouter.CallOpts, user_, iterations_) +} + +// IsBidActive is a free data retrieval call binding the contract method 0x1345df58. +// +// Solidity: function isBidActive(bytes32 bidId_) view returns(bool) +func (_SessionRouter *SessionRouterCaller) IsBidActive(opts *bind.CallOpts, bidId_ [32]byte) (bool, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "isBidActive", bidId_) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// IsBidActive is a free data retrieval call binding the contract method 0x1345df58. +// +// Solidity: function isBidActive(bytes32 bidId_) view returns(bool) +func (_SessionRouter *SessionRouterSession) IsBidActive(bidId_ [32]byte) (bool, error) { + return _SessionRouter.Contract.IsBidActive(&_SessionRouter.CallOpts, bidId_) +} + +// IsBidActive is a free data retrieval call binding the contract method 0x1345df58. +// +// Solidity: function isBidActive(bytes32 bidId_) view returns(bool) +func (_SessionRouter *SessionRouterCallerSession) IsBidActive(bidId_ [32]byte) (bool, error) { + return _SessionRouter.Contract.IsBidActive(&_SessionRouter.CallOpts, bidId_) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_SessionRouter *SessionRouterCaller) Owner(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "owner") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_SessionRouter *SessionRouterSession) Owner() (common.Address, error) { + return _SessionRouter.Contract.Owner(&_SessionRouter.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_SessionRouter *SessionRouterCallerSession) Owner() (common.Address, error) { + return _SessionRouter.Contract.Owner(&_SessionRouter.CallOpts) +} + +// StakeToStipend is a free data retrieval call binding the contract method 0xb3cb0d0f. +// +// Solidity: function stakeToStipend(uint256 amount_, uint128 timestamp_) view returns(uint256) +func (_SessionRouter *SessionRouterCaller) StakeToStipend(opts *bind.CallOpts, amount_ *big.Int, timestamp_ *big.Int) (*big.Int, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "stakeToStipend", amount_, timestamp_) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// StakeToStipend is a free data retrieval call binding the contract method 0xb3cb0d0f. +// +// Solidity: function stakeToStipend(uint256 amount_, uint128 timestamp_) view returns(uint256) +func (_SessionRouter *SessionRouterSession) StakeToStipend(amount_ *big.Int, timestamp_ *big.Int) (*big.Int, error) { + return _SessionRouter.Contract.StakeToStipend(&_SessionRouter.CallOpts, amount_, timestamp_) +} + +// StakeToStipend is a free data retrieval call binding the contract method 0xb3cb0d0f. +// +// Solidity: function stakeToStipend(uint256 amount_, uint128 timestamp_) view returns(uint256) +func (_SessionRouter *SessionRouterCallerSession) StakeToStipend(amount_ *big.Int, timestamp_ *big.Int) (*big.Int, error) { + return _SessionRouter.Contract.StakeToStipend(&_SessionRouter.CallOpts, amount_, timestamp_) +} + +// StartOfTheDay is a free data retrieval call binding the contract method 0xba26588c. +// +// Solidity: function startOfTheDay(uint128 timestamp_) pure returns(uint128) +func (_SessionRouter *SessionRouterCaller) StartOfTheDay(opts *bind.CallOpts, timestamp_ *big.Int) (*big.Int, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "startOfTheDay", timestamp_) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// StartOfTheDay is a free data retrieval call binding the contract method 0xba26588c. +// +// Solidity: function startOfTheDay(uint128 timestamp_) pure returns(uint128) +func (_SessionRouter *SessionRouterSession) StartOfTheDay(timestamp_ *big.Int) (*big.Int, error) { + return _SessionRouter.Contract.StartOfTheDay(&_SessionRouter.CallOpts, timestamp_) +} + +// StartOfTheDay is a free data retrieval call binding the contract method 0xba26588c. +// +// Solidity: function startOfTheDay(uint128 timestamp_) pure returns(uint128) +func (_SessionRouter *SessionRouterCallerSession) StartOfTheDay(timestamp_ *big.Int) (*big.Int, error) { + return _SessionRouter.Contract.StartOfTheDay(&_SessionRouter.CallOpts, timestamp_) +} + +// StipendToStake is a free data retrieval call binding the contract method 0xca40d45f. +// +// Solidity: function stipendToStake(uint256 stipend_, uint128 timestamp_) view returns(uint256) +func (_SessionRouter *SessionRouterCaller) StipendToStake(opts *bind.CallOpts, stipend_ *big.Int, timestamp_ *big.Int) (*big.Int, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "stipendToStake", stipend_, timestamp_) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// StipendToStake is a free data retrieval call binding the contract method 0xca40d45f. +// +// Solidity: function stipendToStake(uint256 stipend_, uint128 timestamp_) view returns(uint256) +func (_SessionRouter *SessionRouterSession) StipendToStake(stipend_ *big.Int, timestamp_ *big.Int) (*big.Int, error) { + return _SessionRouter.Contract.StipendToStake(&_SessionRouter.CallOpts, stipend_, timestamp_) +} + +// StipendToStake is a free data retrieval call binding the contract method 0xca40d45f. +// +// Solidity: function stipendToStake(uint256 stipend_, uint128 timestamp_) view returns(uint256) +func (_SessionRouter *SessionRouterCallerSession) StipendToStake(stipend_ *big.Int, timestamp_ *big.Int) (*big.Int, error) { + return _SessionRouter.Contract.StipendToStake(&_SessionRouter.CallOpts, stipend_, timestamp_) +} + +// TotalMORSupply is a free data retrieval call binding the contract method 0x6d0cfe5a. +// +// Solidity: function totalMORSupply(uint128 timestamp_) view returns(uint256) +func (_SessionRouter *SessionRouterCaller) TotalMORSupply(opts *bind.CallOpts, timestamp_ *big.Int) (*big.Int, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "totalMORSupply", timestamp_) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// TotalMORSupply is a free data retrieval call binding the contract method 0x6d0cfe5a. +// +// Solidity: function totalMORSupply(uint128 timestamp_) view returns(uint256) +func (_SessionRouter *SessionRouterSession) TotalMORSupply(timestamp_ *big.Int) (*big.Int, error) { + return _SessionRouter.Contract.TotalMORSupply(&_SessionRouter.CallOpts, timestamp_) +} + +// TotalMORSupply is a free data retrieval call binding the contract method 0x6d0cfe5a. +// +// Solidity: function totalMORSupply(uint128 timestamp_) view returns(uint256) +func (_SessionRouter *SessionRouterCallerSession) TotalMORSupply(timestamp_ *big.Int) (*big.Int, error) { + return _SessionRouter.Contract.TotalMORSupply(&_SessionRouter.CallOpts, timestamp_) +} + +// SessionRouterInit is a paid mutator transaction binding the contract method 0x44ceb8e0. +// +// Solidity: function __SessionRouter_init(address fundingAccount_, (uint256,uint256,uint128,uint128)[] pools_) returns() +func (_SessionRouter *SessionRouterTransactor) SessionRouterInit(opts *bind.TransactOpts, fundingAccount_ common.Address, pools_ []ISessionStoragePool) (*types.Transaction, error) { + return _SessionRouter.contract.Transact(opts, "__SessionRouter_init", fundingAccount_, pools_) +} + +// SessionRouterInit is a paid mutator transaction binding the contract method 0x44ceb8e0. +// +// Solidity: function __SessionRouter_init(address fundingAccount_, (uint256,uint256,uint128,uint128)[] pools_) returns() +func (_SessionRouter *SessionRouterSession) SessionRouterInit(fundingAccount_ common.Address, pools_ []ISessionStoragePool) (*types.Transaction, error) { + return _SessionRouter.Contract.SessionRouterInit(&_SessionRouter.TransactOpts, fundingAccount_, pools_) +} + +// SessionRouterInit is a paid mutator transaction binding the contract method 0x44ceb8e0. +// +// Solidity: function __SessionRouter_init(address fundingAccount_, (uint256,uint256,uint128,uint128)[] pools_) returns() +func (_SessionRouter *SessionRouterTransactorSession) SessionRouterInit(fundingAccount_ common.Address, pools_ []ISessionStoragePool) (*types.Transaction, error) { + return _SessionRouter.Contract.SessionRouterInit(&_SessionRouter.TransactOpts, fundingAccount_, pools_) +} + +// ClaimForProvider is a paid mutator transaction binding the contract method 0xf2e96e8e. +// +// Solidity: function claimForProvider(bytes32 sessionId_) returns() +func (_SessionRouter *SessionRouterTransactor) ClaimForProvider(opts *bind.TransactOpts, sessionId_ [32]byte) (*types.Transaction, error) { + return _SessionRouter.contract.Transact(opts, "claimForProvider", sessionId_) +} + +// ClaimForProvider is a paid mutator transaction binding the contract method 0xf2e96e8e. +// +// Solidity: function claimForProvider(bytes32 sessionId_) returns() +func (_SessionRouter *SessionRouterSession) ClaimForProvider(sessionId_ [32]byte) (*types.Transaction, error) { + return _SessionRouter.Contract.ClaimForProvider(&_SessionRouter.TransactOpts, sessionId_) +} + +// ClaimForProvider is a paid mutator transaction binding the contract method 0xf2e96e8e. +// +// Solidity: function claimForProvider(bytes32 sessionId_) returns() +func (_SessionRouter *SessionRouterTransactorSession) ClaimForProvider(sessionId_ [32]byte) (*types.Transaction, error) { + return _SessionRouter.Contract.ClaimForProvider(&_SessionRouter.TransactOpts, sessionId_) +} + +// CloseSession is a paid mutator transaction binding the contract method 0x42f77a31. +// +// Solidity: function closeSession(bytes receiptEncoded_, bytes signature_) returns() +func (_SessionRouter *SessionRouterTransactor) CloseSession(opts *bind.TransactOpts, receiptEncoded_ []byte, signature_ []byte) (*types.Transaction, error) { + return _SessionRouter.contract.Transact(opts, "closeSession", receiptEncoded_, signature_) +} + +// CloseSession is a paid mutator transaction binding the contract method 0x42f77a31. +// +// Solidity: function closeSession(bytes receiptEncoded_, bytes signature_) returns() +func (_SessionRouter *SessionRouterSession) CloseSession(receiptEncoded_ []byte, signature_ []byte) (*types.Transaction, error) { + return _SessionRouter.Contract.CloseSession(&_SessionRouter.TransactOpts, receiptEncoded_, signature_) +} + +// CloseSession is a paid mutator transaction binding the contract method 0x42f77a31. +// +// Solidity: function closeSession(bytes receiptEncoded_, bytes signature_) returns() +func (_SessionRouter *SessionRouterTransactorSession) CloseSession(receiptEncoded_ []byte, signature_ []byte) (*types.Transaction, error) { + return _SessionRouter.Contract.CloseSession(&_SessionRouter.TransactOpts, receiptEncoded_, signature_) +} + +// OpenSession is a paid mutator transaction binding the contract method 0x1f71815e. +// +// Solidity: function openSession(uint256 amount_, bytes approvalEncoded_, bytes signature_) returns(bytes32) +func (_SessionRouter *SessionRouterTransactor) OpenSession(opts *bind.TransactOpts, amount_ *big.Int, approvalEncoded_ []byte, signature_ []byte) (*types.Transaction, error) { + return _SessionRouter.contract.Transact(opts, "openSession", amount_, approvalEncoded_, signature_) +} + +// OpenSession is a paid mutator transaction binding the contract method 0x1f71815e. +// +// Solidity: function openSession(uint256 amount_, bytes approvalEncoded_, bytes signature_) returns(bytes32) +func (_SessionRouter *SessionRouterSession) OpenSession(amount_ *big.Int, approvalEncoded_ []byte, signature_ []byte) (*types.Transaction, error) { + return _SessionRouter.Contract.OpenSession(&_SessionRouter.TransactOpts, amount_, approvalEncoded_, signature_) +} + +// OpenSession is a paid mutator transaction binding the contract method 0x1f71815e. +// +// Solidity: function openSession(uint256 amount_, bytes approvalEncoded_, bytes signature_) returns(bytes32) +func (_SessionRouter *SessionRouterTransactorSession) OpenSession(amount_ *big.Int, approvalEncoded_ []byte, signature_ []byte) (*types.Transaction, error) { + return _SessionRouter.Contract.OpenSession(&_SessionRouter.TransactOpts, amount_, approvalEncoded_, signature_) +} + +// SetPoolConfig is a paid mutator transaction binding the contract method 0xd7178753. +// +// Solidity: function setPoolConfig(uint256 index_, (uint256,uint256,uint128,uint128) pool_) returns() +func (_SessionRouter *SessionRouterTransactor) SetPoolConfig(opts *bind.TransactOpts, index_ *big.Int, pool_ ISessionStoragePool) (*types.Transaction, error) { + return _SessionRouter.contract.Transact(opts, "setPoolConfig", index_, pool_) +} + +// SetPoolConfig is a paid mutator transaction binding the contract method 0xd7178753. +// +// Solidity: function setPoolConfig(uint256 index_, (uint256,uint256,uint128,uint128) pool_) returns() +func (_SessionRouter *SessionRouterSession) SetPoolConfig(index_ *big.Int, pool_ ISessionStoragePool) (*types.Transaction, error) { + return _SessionRouter.Contract.SetPoolConfig(&_SessionRouter.TransactOpts, index_, pool_) +} + +// SetPoolConfig is a paid mutator transaction binding the contract method 0xd7178753. +// +// Solidity: function setPoolConfig(uint256 index_, (uint256,uint256,uint128,uint128) pool_) returns() +func (_SessionRouter *SessionRouterTransactorSession) SetPoolConfig(index_ *big.Int, pool_ ISessionStoragePool) (*types.Transaction, error) { + return _SessionRouter.Contract.SetPoolConfig(&_SessionRouter.TransactOpts, index_, pool_) +} + +// WithdrawUserStakes is a paid mutator transaction binding the contract method 0x8293617a. +// +// Solidity: function withdrawUserStakes(uint8 iterations_) returns() +func (_SessionRouter *SessionRouterTransactor) WithdrawUserStakes(opts *bind.TransactOpts, iterations_ uint8) (*types.Transaction, error) { + return _SessionRouter.contract.Transact(opts, "withdrawUserStakes", iterations_) +} + +// WithdrawUserStakes is a paid mutator transaction binding the contract method 0x8293617a. +// +// Solidity: function withdrawUserStakes(uint8 iterations_) returns() +func (_SessionRouter *SessionRouterSession) WithdrawUserStakes(iterations_ uint8) (*types.Transaction, error) { + return _SessionRouter.Contract.WithdrawUserStakes(&_SessionRouter.TransactOpts, iterations_) +} + +// WithdrawUserStakes is a paid mutator transaction binding the contract method 0x8293617a. +// +// Solidity: function withdrawUserStakes(uint8 iterations_) returns() +func (_SessionRouter *SessionRouterTransactorSession) WithdrawUserStakes(iterations_ uint8) (*types.Transaction, error) { + return _SessionRouter.Contract.WithdrawUserStakes(&_SessionRouter.TransactOpts, iterations_) +} + +// SessionRouterInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the SessionRouter contract. +type SessionRouterInitializedIterator struct { + Event *SessionRouterInitialized // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *SessionRouterInitializedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(SessionRouterInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(SessionRouterInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *SessionRouterInitializedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *SessionRouterInitializedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// SessionRouterInitialized represents a Initialized event raised by the SessionRouter contract. +type SessionRouterInitialized struct { + StorageSlot [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterInitialized is a free log retrieval operation binding the contract event 0xdc73717d728bcfa015e8117438a65319aa06e979ca324afa6e1ea645c28ea15d. +// +// Solidity: event Initialized(bytes32 storageSlot) +func (_SessionRouter *SessionRouterFilterer) FilterInitialized(opts *bind.FilterOpts) (*SessionRouterInitializedIterator, error) { + + logs, sub, err := _SessionRouter.contract.FilterLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return &SessionRouterInitializedIterator{contract: _SessionRouter.contract, event: "Initialized", logs: logs, sub: sub}, nil +} + +// WatchInitialized is a free log subscription operation binding the contract event 0xdc73717d728bcfa015e8117438a65319aa06e979ca324afa6e1ea645c28ea15d. +// +// Solidity: event Initialized(bytes32 storageSlot) +func (_SessionRouter *SessionRouterFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *SessionRouterInitialized) (event.Subscription, error) { + + logs, sub, err := _SessionRouter.contract.WatchLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(SessionRouterInitialized) + if err := _SessionRouter.contract.UnpackLog(event, "Initialized", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseInitialized is a log parse operation binding the contract event 0xdc73717d728bcfa015e8117438a65319aa06e979ca324afa6e1ea645c28ea15d. +// +// Solidity: event Initialized(bytes32 storageSlot) +func (_SessionRouter *SessionRouterFilterer) ParseInitialized(log types.Log) (*SessionRouterInitialized, error) { + event := new(SessionRouterInitialized) + if err := _SessionRouter.contract.UnpackLog(event, "Initialized", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// SessionRouterSessionClosedIterator is returned from FilterSessionClosed and is used to iterate over the raw logs and unpacked data for SessionClosed events raised by the SessionRouter contract. +type SessionRouterSessionClosedIterator struct { + Event *SessionRouterSessionClosed // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *SessionRouterSessionClosedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(SessionRouterSessionClosed) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(SessionRouterSessionClosed) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *SessionRouterSessionClosedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *SessionRouterSessionClosedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// SessionRouterSessionClosed represents a SessionClosed event raised by the SessionRouter contract. +type SessionRouterSessionClosed struct { + User common.Address + SessionId [32]byte + ProviderId common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterSessionClosed is a free log retrieval operation binding the contract event 0x337fbb0a41a596db800dc836595a57815f967185e3596615c646f2455ac3914a. +// +// Solidity: event SessionClosed(address indexed user, bytes32 indexed sessionId, address indexed providerId) +func (_SessionRouter *SessionRouterFilterer) FilterSessionClosed(opts *bind.FilterOpts, user []common.Address, sessionId [][32]byte, providerId []common.Address) (*SessionRouterSessionClosedIterator, error) { + + var userRule []interface{} + for _, userItem := range user { + userRule = append(userRule, userItem) + } + var sessionIdRule []interface{} + for _, sessionIdItem := range sessionId { + sessionIdRule = append(sessionIdRule, sessionIdItem) + } + var providerIdRule []interface{} + for _, providerIdItem := range providerId { + providerIdRule = append(providerIdRule, providerIdItem) + } + + logs, sub, err := _SessionRouter.contract.FilterLogs(opts, "SessionClosed", userRule, sessionIdRule, providerIdRule) + if err != nil { + return nil, err + } + return &SessionRouterSessionClosedIterator{contract: _SessionRouter.contract, event: "SessionClosed", logs: logs, sub: sub}, nil +} + +// WatchSessionClosed is a free log subscription operation binding the contract event 0x337fbb0a41a596db800dc836595a57815f967185e3596615c646f2455ac3914a. +// +// Solidity: event SessionClosed(address indexed user, bytes32 indexed sessionId, address indexed providerId) +func (_SessionRouter *SessionRouterFilterer) WatchSessionClosed(opts *bind.WatchOpts, sink chan<- *SessionRouterSessionClosed, user []common.Address, sessionId [][32]byte, providerId []common.Address) (event.Subscription, error) { + + var userRule []interface{} + for _, userItem := range user { + userRule = append(userRule, userItem) + } + var sessionIdRule []interface{} + for _, sessionIdItem := range sessionId { + sessionIdRule = append(sessionIdRule, sessionIdItem) + } + var providerIdRule []interface{} + for _, providerIdItem := range providerId { + providerIdRule = append(providerIdRule, providerIdItem) + } + + logs, sub, err := _SessionRouter.contract.WatchLogs(opts, "SessionClosed", userRule, sessionIdRule, providerIdRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(SessionRouterSessionClosed) + if err := _SessionRouter.contract.UnpackLog(event, "SessionClosed", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseSessionClosed is a log parse operation binding the contract event 0x337fbb0a41a596db800dc836595a57815f967185e3596615c646f2455ac3914a. +// +// Solidity: event SessionClosed(address indexed user, bytes32 indexed sessionId, address indexed providerId) +func (_SessionRouter *SessionRouterFilterer) ParseSessionClosed(log types.Log) (*SessionRouterSessionClosed, error) { + event := new(SessionRouterSessionClosed) + if err := _SessionRouter.contract.UnpackLog(event, "SessionClosed", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// SessionRouterSessionOpenedIterator is returned from FilterSessionOpened and is used to iterate over the raw logs and unpacked data for SessionOpened events raised by the SessionRouter contract. +type SessionRouterSessionOpenedIterator struct { + Event *SessionRouterSessionOpened // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *SessionRouterSessionOpenedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(SessionRouterSessionOpened) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(SessionRouterSessionOpened) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *SessionRouterSessionOpenedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *SessionRouterSessionOpenedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// SessionRouterSessionOpened represents a SessionOpened event raised by the SessionRouter contract. +type SessionRouterSessionOpened struct { + User common.Address + SessionId [32]byte + ProviderId common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterSessionOpened is a free log retrieval operation binding the contract event 0x2bd7c890baf595977d256a6e784512c873ac58ba612b4895dbb7f784bfbf4839. +// +// Solidity: event SessionOpened(address indexed user, bytes32 indexed sessionId, address indexed providerId) +func (_SessionRouter *SessionRouterFilterer) FilterSessionOpened(opts *bind.FilterOpts, user []common.Address, sessionId [][32]byte, providerId []common.Address) (*SessionRouterSessionOpenedIterator, error) { + + var userRule []interface{} + for _, userItem := range user { + userRule = append(userRule, userItem) + } + var sessionIdRule []interface{} + for _, sessionIdItem := range sessionId { + sessionIdRule = append(sessionIdRule, sessionIdItem) + } + var providerIdRule []interface{} + for _, providerIdItem := range providerId { + providerIdRule = append(providerIdRule, providerIdItem) + } + + logs, sub, err := _SessionRouter.contract.FilterLogs(opts, "SessionOpened", userRule, sessionIdRule, providerIdRule) + if err != nil { + return nil, err + } + return &SessionRouterSessionOpenedIterator{contract: _SessionRouter.contract, event: "SessionOpened", logs: logs, sub: sub}, nil +} + +// WatchSessionOpened is a free log subscription operation binding the contract event 0x2bd7c890baf595977d256a6e784512c873ac58ba612b4895dbb7f784bfbf4839. +// +// Solidity: event SessionOpened(address indexed user, bytes32 indexed sessionId, address indexed providerId) +func (_SessionRouter *SessionRouterFilterer) WatchSessionOpened(opts *bind.WatchOpts, sink chan<- *SessionRouterSessionOpened, user []common.Address, sessionId [][32]byte, providerId []common.Address) (event.Subscription, error) { + + var userRule []interface{} + for _, userItem := range user { + userRule = append(userRule, userItem) + } + var sessionIdRule []interface{} + for _, sessionIdItem := range sessionId { + sessionIdRule = append(sessionIdRule, sessionIdItem) + } + var providerIdRule []interface{} + for _, providerIdItem := range providerId { + providerIdRule = append(providerIdRule, providerIdItem) + } + + logs, sub, err := _SessionRouter.contract.WatchLogs(opts, "SessionOpened", userRule, sessionIdRule, providerIdRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(SessionRouterSessionOpened) + if err := _SessionRouter.contract.UnpackLog(event, "SessionOpened", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseSessionOpened is a log parse operation binding the contract event 0x2bd7c890baf595977d256a6e784512c873ac58ba612b4895dbb7f784bfbf4839. +// +// Solidity: event SessionOpened(address indexed user, bytes32 indexed sessionId, address indexed providerId) +func (_SessionRouter *SessionRouterFilterer) ParseSessionOpened(log types.Log) (*SessionRouterSessionOpened, error) { + event := new(SessionRouterSessionOpened) + if err := _SessionRouter.contract.UnpackLog(event, "SessionOpened", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// SessionRouterUserWithdrawnIterator is returned from FilterUserWithdrawn and is used to iterate over the raw logs and unpacked data for UserWithdrawn events raised by the SessionRouter contract. +type SessionRouterUserWithdrawnIterator struct { + Event *SessionRouterUserWithdrawn // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *SessionRouterUserWithdrawnIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(SessionRouterUserWithdrawn) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(SessionRouterUserWithdrawn) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *SessionRouterUserWithdrawnIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *SessionRouterUserWithdrawnIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// SessionRouterUserWithdrawn represents a UserWithdrawn event raised by the SessionRouter contract. +type SessionRouterUserWithdrawn struct { + User common.Address + Amount *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterUserWithdrawn is a free log retrieval operation binding the contract event 0xe6b386172074b393dc04ed6cb1a352475ffad5dd8cebc76231a3b683141ea6fb. +// +// Solidity: event UserWithdrawn(address indexed user, uint256 amount_) +func (_SessionRouter *SessionRouterFilterer) FilterUserWithdrawn(opts *bind.FilterOpts, user []common.Address) (*SessionRouterUserWithdrawnIterator, error) { + + var userRule []interface{} + for _, userItem := range user { + userRule = append(userRule, userItem) + } + + logs, sub, err := _SessionRouter.contract.FilterLogs(opts, "UserWithdrawn", userRule) + if err != nil { + return nil, err + } + return &SessionRouterUserWithdrawnIterator{contract: _SessionRouter.contract, event: "UserWithdrawn", logs: logs, sub: sub}, nil +} + +// WatchUserWithdrawn is a free log subscription operation binding the contract event 0xe6b386172074b393dc04ed6cb1a352475ffad5dd8cebc76231a3b683141ea6fb. +// +// Solidity: event UserWithdrawn(address indexed user, uint256 amount_) +func (_SessionRouter *SessionRouterFilterer) WatchUserWithdrawn(opts *bind.WatchOpts, sink chan<- *SessionRouterUserWithdrawn, user []common.Address) (event.Subscription, error) { + + var userRule []interface{} + for _, userItem := range user { + userRule = append(userRule, userItem) + } + + logs, sub, err := _SessionRouter.contract.WatchLogs(opts, "UserWithdrawn", userRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(SessionRouterUserWithdrawn) + if err := _SessionRouter.contract.UnpackLog(event, "UserWithdrawn", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseUserWithdrawn is a log parse operation binding the contract event 0xe6b386172074b393dc04ed6cb1a352475ffad5dd8cebc76231a3b683141ea6fb. +// +// Solidity: event UserWithdrawn(address indexed user, uint256 amount_) +func (_SessionRouter *SessionRouterFilterer) ParseUserWithdrawn(log types.Log) (*SessionRouterUserWithdrawn, error) { + event := new(SessionRouterUserWithdrawn) + if err := _SessionRouter.contract.UnpackLog(event, "UserWithdrawn", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/proxy-router/internal/repositories/contracts/subscription.go b/proxy-router/internal/repositories/contracts/subscription.go index 8d53e63a..7fa5282a 100644 --- a/proxy-router/internal/repositories/contracts/subscription.go +++ b/proxy-router/internal/repositories/contracts/subscription.go @@ -3,7 +3,7 @@ package contracts import ( "time" - "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/sessionrouter" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/contracts/bindings/sessionrouter" "github.com/ethereum/go-ethereum/core/types" ) diff --git a/proxy-router/internal/repositories/registries/marketplace.go b/proxy-router/internal/repositories/registries/marketplace.go index 5a19288b..24fd204d 100644 --- a/proxy-router/internal/repositories/registries/marketplace.go +++ b/proxy-router/internal/repositories/registries/marketplace.go @@ -5,9 +5,9 @@ import ( "fmt" "math/big" - "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/marketplace" i "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/contracts/bindings/marketplace" "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/common" ) @@ -35,75 +35,57 @@ func NewMarketplace(marketplaceAddr common.Address, client i.ContractBackend, lo } } -func (g *Marketplace) PostModelBid(opts *bind.TransactOpts, provider common.Address, model common.Hash, pricePerSecond *big.Int) error { - tx, err := g.marketplace.PostModelBid(opts, provider, model, pricePerSecond) +func (g *Marketplace) PostModelBid(opts *bind.TransactOpts, model common.Hash, pricePerSecond *big.Int) (common.Hash, error) { + tx, err := g.marketplace.PostModelBid(opts, model, pricePerSecond) if err != nil { - return lib.TryConvertGethError(err) + return common.Hash{}, lib.TryConvertGethError(err) } // Wait for the transaction receipt receipt, err := bind.WaitMined(opts.Context, g.client, tx) - if err != nil { - return lib.TryConvertGethError(err) + return common.Hash{}, lib.TryConvertGethError(err) } - // Find the event log - for _, log := range receipt.Logs { - // Check if the log belongs to the OpenSession event - _, err := g.marketplace.ParseBidPosted(*log) - - if err != nil { - continue // not our event, skip it - } - - return nil + if receipt.Status != 1 { + return receipt.TxHash, fmt.Errorf("Transaction failed") } - return fmt.Errorf("PostModelBid event not found in transaction logs") + return receipt.TxHash, nil } -func (g *Marketplace) DeleteBid(opts *bind.TransactOpts, bidId common.Hash) (common.Hash, error) { - tx, err := g.marketplace.DeleteModelBid(opts, bidId) +func (g *Marketplace) DeleteBid(opts *bind.TransactOpts, bidID common.Hash) (common.Hash, error) { + tx, err := g.marketplace.DeleteModelBid(opts, bidID) if err != nil { return common.Hash{}, lib.TryConvertGethError(err) } // Wait for the transaction receipt receipt, err := bind.WaitMined(opts.Context, g.client, tx) - if err != nil { return common.Hash{}, lib.TryConvertGethError(err) } - // Find the event log - for _, log := range receipt.Logs { - // Check if the log belongs to the OpenSession event - _, err := g.marketplace.ParseBidDeleted(*log) - - if err != nil { - continue // not our event, skip it - } - - return tx.Hash(), nil + if receipt.Status != 1 { + return receipt.TxHash, fmt.Errorf("Transaction failed") } - return common.Hash{}, fmt.Errorf("BidDeleted event not found in transaction logs") + return receipt.TxHash, nil } -func (g *Marketplace) GetBidById(ctx context.Context, bidId [32]byte) (*marketplace.IBidStorageBid, error) { - bid, err := g.marketplace.Bids(&bind.CallOpts{Context: ctx}, bidId) +func (g *Marketplace) GetBidById(ctx context.Context, bidID common.Hash) (*marketplace.IBidStorageBid, error) { + bid, err := g.marketplace.GetBid(&bind.CallOpts{Context: ctx}, bidID) if err != nil { return nil, err } return &bid, nil } -func (g *Marketplace) GetBestBidByModelId(ctx context.Context, modelId common.Hash) (common.Hash, *marketplace.IBidStorageBid, error) { +func (g *Marketplace) GetBestBidByModelId(ctx context.Context, modelID common.Hash) (common.Hash, *marketplace.IBidStorageBid, error) { limit := big.NewInt(100) offset := big.NewInt(0) - bidIDs, err := g.marketplace.ModelActiveBids(&bind.CallOpts{Context: ctx}, modelId, offset, limit) + bidIDs, err := g.marketplace.GetModelActiveBids(&bind.CallOpts{Context: ctx}, modelID, offset, limit) if err != nil { return common.Hash{}, nil, err } @@ -112,7 +94,7 @@ func (g *Marketplace) GetBestBidByModelId(ctx context.Context, modelId common.Ha var cheapestBid *marketplace.IBidStorageBid for _, bidID := range bidIDs { - bid, err := g.marketplace.Bids(&bind.CallOpts{Context: ctx}, bidID) + bid, err := g.marketplace.GetBid(&bind.CallOpts{Context: ctx}, bidID) if err != nil { return common.Hash{}, nil, err } @@ -130,43 +112,43 @@ func (g *Marketplace) GetBestBidByModelId(ctx context.Context, modelId common.Ha } func (g *Marketplace) GetBidsByProvider(ctx context.Context, provider common.Address, offset *big.Int, limit uint8) ([][32]byte, []marketplace.IBidStorageBid, error) { - bidIDs, err := g.marketplace.ProviderBids(&bind.CallOpts{Context: ctx}, provider, offset, big.NewInt(int64(limit))) + bidIDs, err := g.marketplace.GetProviderBids(&bind.CallOpts{Context: ctx}, provider, offset, big.NewInt(int64(limit))) if err != nil { return nil, nil, err } - return g.getMultipleBids(ctx, bidIDs) + return g.GetMultipleBids(ctx, bidIDs) } func (g *Marketplace) GetBidsByModelAgent(ctx context.Context, modelAgentId common.Hash, offset *big.Int, limit uint8) ([][32]byte, []marketplace.IBidStorageBid, error) { - bidIDs, err := g.marketplace.ModelBids(&bind.CallOpts{Context: ctx}, modelAgentId, offset, big.NewInt(int64(limit))) + bidIDs, err := g.marketplace.GetModelBids(&bind.CallOpts{Context: ctx}, modelAgentId, offset, big.NewInt(int64(limit))) if err != nil { return nil, nil, err } - return g.getMultipleBids(ctx, bidIDs) + return g.GetMultipleBids(ctx, bidIDs) } func (g *Marketplace) GetActiveBidsByProvider(ctx context.Context, provider common.Address, offset *big.Int, limit uint8) ([][32]byte, []marketplace.IBidStorageBid, error) { - bidIDs, err := g.marketplace.ProviderActiveBids(&bind.CallOpts{Context: ctx}, provider, offset, big.NewInt(int64(limit))) + bidIDs, err := g.marketplace.GetProviderActiveBids(&bind.CallOpts{Context: ctx}, provider, offset, big.NewInt(int64(limit))) if err != nil { return nil, nil, err } - return g.getMultipleBids(ctx, bidIDs) + return g.GetMultipleBids(ctx, bidIDs) } func (g *Marketplace) GetActiveBidsByModel(ctx context.Context, modelAgentId common.Hash, offset *big.Int, limit uint8) ([][32]byte, []marketplace.IBidStorageBid, error) { - bidIDs, err := g.marketplace.ModelActiveBids(&bind.CallOpts{Context: ctx}, modelAgentId, offset, big.NewInt(int64(limit))) + bidIDs, err := g.marketplace.GetModelActiveBids(&bind.CallOpts{Context: ctx}, modelAgentId, offset, big.NewInt(int64(limit))) if err != nil { return nil, nil, err } - return g.getMultipleBids(ctx, bidIDs) + return g.GetMultipleBids(ctx, bidIDs) } -func (g *Marketplace) getMultipleBids(ctx context.Context, IDs [][32]byte) ([][32]byte, []marketplace.IBidStorageBid, error) { +func (g *Marketplace) GetMultipleBids(ctx context.Context, IDs [][32]byte) ([][32]byte, []marketplace.IBidStorageBid, error) { // todo: replace with multicall bids := make([]marketplace.IBidStorageBid, len(IDs)) - for i, id := range IDs { - bid, err := g.marketplace.Bids(&bind.CallOpts{Context: ctx}, id) + for i, ID := range IDs { + bid, err := g.marketplace.GetBid(&bind.CallOpts{Context: ctx}, ID) if err != nil { return nil, nil, err } diff --git a/proxy-router/internal/repositories/registries/marketplace_test.go b/proxy-router/internal/repositories/registries/marketplace_test.go index a4922be3..2c674eeb 100644 --- a/proxy-router/internal/repositories/registries/marketplace_test.go +++ b/proxy-router/internal/repositories/registries/marketplace_test.go @@ -5,16 +5,15 @@ import ( "math/big" "testing" - "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/sessionrouter" - "github.com/stretchr/testify/require" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/contracts/bindings/sessionrouter" ) func TestCollectBids(t *testing.T) { - bidIDs, bids, stats, err := collectBids(context.TODO(), [32]byte{0x01}, bidsGetter1000, 100) - require.NoError(t, err) - require.Len(t, bidIDs, 1000) - require.Len(t, bids, 1000) - require.Len(t, stats, 1000) + // bidIDs, bids, stats, err := collectBids(context.TODO(), [32]byte{0x01}, bidsGetter1000, 100) + // require.NoError(t, err) + // require.Len(t, bidIDs, 1000) + // require.Len(t, bids, 1000) + // require.Len(t, stats, 1000) } // bidsGetter1000 simulates a paginated query to get all bids for a model diff --git a/proxy-router/internal/repositories/registries/model_registry.go b/proxy-router/internal/repositories/registries/model_registry.go index 499e9962..edf8f792 100644 --- a/proxy-router/internal/repositories/registries/model_registry.go +++ b/proxy-router/internal/repositories/registries/model_registry.go @@ -4,9 +4,9 @@ import ( "context" "fmt" - "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/modelregistry" i "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/contracts/bindings/modelregistry" "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/common" ) @@ -46,8 +46,8 @@ func (g *ModelRegistry) GetAllModels(ctx context.Context) ([][32]byte, []modelre return nil, nil, fmt.Errorf("Not implemented") } -func (g *ModelRegistry) CreateNewModel(opts *bind.TransactOpts, modelId common.Hash, ipfsID common.Hash, fee *lib.BigInt, stake *lib.BigInt, owner common.Address, name string, tags []string) error { - tx, err := g.modelRegistry.ModelRegister(opts, modelId, ipfsID, &fee.Int, &stake.Int, owner, name, tags) +func (g *ModelRegistry) CreateNewModel(opts *bind.TransactOpts, modelId common.Hash, ipfsID common.Hash, fee *lib.BigInt, stake *lib.BigInt, name string, tags []string) error { + tx, err := g.modelRegistry.ModelRegister(opts, modelId, ipfsID, &fee.Int, &stake.Int, name, tags) if err != nil { return lib.TryConvertGethError(err) } diff --git a/proxy-router/internal/repositories/registries/mor_token.go b/proxy-router/internal/repositories/registries/mor_token.go index f8e6ce4e..9ecd9398 100644 --- a/proxy-router/internal/repositories/registries/mor_token.go +++ b/proxy-router/internal/repositories/registries/mor_token.go @@ -4,9 +4,9 @@ import ( "context" "math/big" - "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/morpheustoken" i "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/contracts/bindings/morpheustoken" "github.com/ethereum/go-ethereum/accounts/abi" "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/common" diff --git a/proxy-router/internal/repositories/registries/provider_registry.go b/proxy-router/internal/repositories/registries/provider_registry.go index 2fd0dc3f..fa62a53f 100644 --- a/proxy-router/internal/repositories/registries/provider_registry.go +++ b/proxy-router/internal/repositories/registries/provider_registry.go @@ -4,9 +4,9 @@ import ( "context" "fmt" - "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/providerregistry" i "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/contracts/bindings/providerregistry" "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/common" ) @@ -52,8 +52,8 @@ func (g *ProviderRegistry) GetAllProviders(ctx context.Context) ([]common.Addres return nil, nil, fmt.Errorf("Not implemented") } -func (g *ProviderRegistry) CreateNewProvider(opts *bind.TransactOpts, address common.Address, addStake *lib.BigInt, endpoint string) error { - providerTx, err := g.providerRegistry.ProviderRegister(opts, address, &addStake.Int, endpoint) +func (g *ProviderRegistry) CreateNewProvider(opts *bind.TransactOpts, addStake *lib.BigInt, endpoint string) error { + providerTx, err := g.providerRegistry.ProviderRegister(opts, &addStake.Int, endpoint) if err != nil { return lib.TryConvertGethError(err) @@ -65,23 +65,15 @@ func (g *ProviderRegistry) CreateNewProvider(opts *bind.TransactOpts, address co return lib.TryConvertGethError(err) } - // Find the event log - for _, log := range receipt.Logs { - // Check if the log belongs to the OpenSession event - _, err := g.providerRegistry.ParseProviderRegisteredUpdated(*log) - - if err != nil { - continue // not our event, skip it - } - - return nil + if receipt.Status != 1 { + return fmt.Errorf("Transaction failed with status %d", receipt.Status) } - return fmt.Errorf("OpenSession event not found in transaction logs") + return nil } -func (g *ProviderRegistry) DeregisterProvider(opts *bind.TransactOpts, address common.Address) (common.Hash, error) { - providerTx, err := g.providerRegistry.ProviderDeregister(opts, address) +func (g *ProviderRegistry) DeregisterProvider(opts *bind.TransactOpts) (common.Hash, error) { + providerTx, err := g.providerRegistry.ProviderDeregister(opts) if err != nil { return common.Hash{}, lib.TryConvertGethError(err) @@ -93,18 +85,11 @@ func (g *ProviderRegistry) DeregisterProvider(opts *bind.TransactOpts, address c return common.Hash{}, lib.TryConvertGethError(err) } - // Find the event log - for _, log := range receipt.Logs { - _, err := g.providerRegistry.ParseProviderDeregistered(*log) - - if err != nil { - continue // not our event, skip it - } - - return providerTx.Hash(), nil + if receipt.Status != 1 { + return receipt.TxHash, fmt.Errorf("Transaction failed with status %d", receipt.Status) } - return common.Hash{}, fmt.Errorf("ProviderDeregistered event not found in transaction logs") + return receipt.TxHash, nil } func (g *ProviderRegistry) GetProviderById(ctx context.Context, id common.Address) (*providerregistry.IProviderStorageProvider, error) { diff --git a/proxy-router/internal/repositories/registries/session_router.go b/proxy-router/internal/repositories/registries/session_router.go index fb65fe42..5dd8af34 100644 --- a/proxy-router/internal/repositories/registries/session_router.go +++ b/proxy-router/internal/repositories/registries/session_router.go @@ -6,9 +6,9 @@ import ( "math/big" "time" - "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/sessionrouter" i "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" + src "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/contracts/bindings/sessionrouter" "github.com/ethereum/go-ethereum/accounts/abi" "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/common" @@ -23,8 +23,8 @@ type SessionRouter struct { srABI *abi.ABI // deps - sessionRouter *sessionrouter.SessionRouter client i.ContractBackend + sessionRouter *src.SessionRouter log lib.ILogger } @@ -35,11 +35,11 @@ var closeReportAbi = []lib.AbiParameter{ } func NewSessionRouter(sessionRouterAddr common.Address, client i.ContractBackend, log lib.ILogger) *SessionRouter { - sr, err := sessionrouter.NewSessionRouter(sessionRouterAddr, client) + sr, err := src.NewSessionRouter(sessionRouterAddr, client) if err != nil { panic("invalid marketplace ABI") } - srABI, err := sessionrouter.SessionRouterMetaData.GetAbi() + srABI, err := src.SessionRouterMetaData.GetAbi() if err != nil { panic("invalid marketplace ABI: " + err.Error()) } @@ -76,8 +76,8 @@ func (g *SessionRouter) OpenSession(opts *bind.TransactOpts, approval []byte, ap return common.Hash{}, common.Address{}, common.Address{}, fmt.Errorf("OpenSession event not found in transaction logs") } -func (g *SessionRouter) GetSession(ctx context.Context, sessionID common.Hash) (*sessionrouter.ISessionStorageSession, error) { - session, err := g.sessionRouter.Sessions(&bind.CallOpts{Context: ctx}, sessionID) +func (g *SessionRouter) GetSession(ctx context.Context, sessionID common.Hash) (*src.ISessionStorageSession, error) { + session, err := g.sessionRouter.GetSession(&bind.CallOpts{Context: ctx}, sessionID) if err != nil { return nil, err } @@ -85,19 +85,18 @@ func (g *SessionRouter) GetSession(ctx context.Context, sessionID common.Hash) ( return &session, nil } -func (g *SessionRouter) GetSessionsByProvider(ctx context.Context, providerAddr common.Address, offset *big.Int, limit uint8) ([]sessionrouter.ISessionStorageSession, error) { - // sessions, err := g.sessionRouter.GetSessionsByProvider(&bind.CallOpts{Context: ctx}, providerAddr, offset, limit) - // if err != nil { - // return nil, lib.TryConvertGethError(err) - // } - // return sessions, nil - return nil, fmt.Errorf("Not implemented") +func (g *SessionRouter) GetSessionsByProvider(ctx context.Context, providerAddr common.Address, offset *big.Int, limit uint8) ([][32]byte, []src.ISessionStorageSession, error) { + sessionIDs, err := g.sessionRouter.GetProviderSessions(&bind.CallOpts{Context: ctx}, providerAddr, offset, big.NewInt(int64(limit))) + if err != nil { + return nil, nil, lib.TryConvertGethError(err) + } + return g.getMultipleSessions(ctx, sessionIDs) } -func (g *SessionRouter) GetSessionsByUser(ctx context.Context, userAddr common.Address, offset *big.Int, limit uint8) ([]sessionrouter.ISessionStorageSession, error) { - IDs, err := g.sessionRouter.GetSessionsByUser(&bind.CallOpts{Context: ctx}, userAddr, offset, big.NewInt(int64(limit))) +func (g *SessionRouter) GetSessionsByUser(ctx context.Context, userAddr common.Address, offset *big.Int, limit uint8) ([][32]byte, []src.ISessionStorageSession, error) { + IDs, err := g.sessionRouter.GetUserSessions(&bind.CallOpts{Context: ctx}, userAddr, offset, big.NewInt(int64(limit))) if err != nil { - return nil, lib.TryConvertGethError(err) + return nil, nil, lib.TryConvertGethError(err) } return g.getMultipleSessions(ctx, IDs) } @@ -109,24 +108,49 @@ func (g *SessionRouter) CloseSession(opts *bind.TransactOpts, sessionID common.H } // Wait for the transaction receipt - _, err = bind.WaitMined(opts.Context, g.client, sessionTx) + receipt, err := bind.WaitMined(opts.Context, g.client, sessionTx) if err != nil { return common.Hash{}, err } + if receipt.Status != 1 { + return receipt.TxHash, fmt.Errorf("Transaction failed with status %d", receipt.Status) + } + return sessionTx.Hash(), nil } func (g *SessionRouter) GetProviderClaimableBalance(ctx context.Context, sessionId [32]byte) (*big.Int, error) { - balance, err := g.sessionRouter.GetProviderClaimableBalance(&bind.CallOpts{Context: ctx}, sessionId) + session, err := g.sessionRouter.GetSession(&bind.CallOpts{Context: ctx}, sessionId) + if err != nil { + return nil, lib.TryConvertGethError(err) + } + + bid, err := g.sessionRouter.GetBid(&bind.CallOpts{Context: ctx}, session.BidId) if err != nil { return nil, lib.TryConvertGethError(err) } - return balance, nil + + var sessionEnd *big.Int + if session.ClosedAt.Cmp(big.NewInt(0)) == 0 { + sessionEnd = session.EndsAt + } else { + sessionEnd = session.ClosedAt + } + + if sessionEnd.Cmp(big.NewInt(time.Now().Unix())) > 0 { + return nil, fmt.Errorf("session not ended or does not exist") + } + + duration := new(big.Int).Sub(sessionEnd, session.OpenedAt) + amount := new(big.Int).Mul(duration, bid.PricePerSecond) + amount.Sub(amount, session.ProviderWithdrawnAmount) + + return amount, nil } -func (g *SessionRouter) ClaimProviderBalance(opts *bind.TransactOpts, sessionId [32]byte, amount *big.Int) (common.Hash, error) { - tx, err := g.sessionRouter.ClaimProviderBalance(opts, sessionId, amount) +func (g *SessionRouter) ClaimProviderBalance(opts *bind.TransactOpts, sessionId [32]byte) (common.Hash, error) { + tx, err := g.sessionRouter.ClaimForProvider(opts, sessionId) if err != nil { return common.Hash{}, lib.TryConvertGethError(err) } @@ -149,31 +173,33 @@ func (g *SessionRouter) GetTodaysBudget(ctx context.Context) (*big.Int, error) { return budget, nil } -func (g *SessionRouter) GetBidsWithRating(ctx context.Context, modelAgentID [32]byte, offset *big.Int, limit uint8) ([][32]byte, []sessionrouter.IBidStorageBid, []sessionrouter.IStatsStorageProviderModelStats, error) { - return g.sessionRouter.GetActiveBidsRatingByModel(&bind.CallOpts{Context: ctx}, modelAgentID, offset, limit) -} - -func (g *SessionRouter) GetAllBidsWithRating(ctx context.Context, modelAgentID [32]byte) ([][32]byte, []sessionrouter.IBidStorageBid, []sessionrouter.IStatsStorageProviderModelStats, error) { - batchSize := uint8(255) - return collectBids(ctx, modelAgentID, g.GetBidsWithRating, batchSize) +func (g *SessionRouter) GetModelStats(ctx context.Context, modelID [32]byte) (interface{}, error) { + res, err := g.sessionRouter.GetModelStats(&bind.CallOpts{Context: ctx}, modelID) + if err != nil { + return nil, lib.TryConvertGethError(err) + } + return res, nil } -func (g *SessionRouter) GetModelStats(ctx context.Context, modelID [32]byte) (interface{}, error) { - // return g.sessionRouter.GetModelStats(&bind.CallOpts{Context: ctx}, modelID) - return nil, fmt.Errorf("not implemented") +func (g *SessionRouter) GetProviderModelStats(ctx context.Context, modelID [32]byte, provider common.Address) (*src.IStatsStorageProviderModelStats, error) { + res, err := g.sessionRouter.GetProviderModelStats(&bind.CallOpts{Context: ctx}, modelID, provider) + if err != nil { + return nil, lib.TryConvertGethError(err) + } + return &res, nil } -func (g *SessionRouter) getMultipleSessions(ctx context.Context, IDs [][32]byte) ([]sessionrouter.ISessionStorageSession, error) { +func (g *SessionRouter) getMultipleSessions(ctx context.Context, IDs [][32]byte) ([][32]byte, []src.ISessionStorageSession, error) { // todo: replace with multicall - sessions := make([]sessionrouter.ISessionStorageSession, len(IDs)) + sessions := make([]src.ISessionStorageSession, len(IDs)) for i, id := range IDs { - session, err := g.sessionRouter.Sessions(&bind.CallOpts{Context: ctx}, id) + session, err := g.sessionRouter.GetSession(&bind.CallOpts{Context: ctx}, id) if err != nil { - return nil, err + return nil, nil, err } sessions[i] = session } - return sessions, nil + return IDs, sessions, nil } func (g *SessionRouter) GetContractAddress() common.Address { @@ -183,35 +209,3 @@ func (g *SessionRouter) GetContractAddress() common.Address { func (g *SessionRouter) GetABI() *abi.ABI { return g.srABI } - -type BidsGetter = func(ctx context.Context, modelAgentID [32]byte, offset *big.Int, limit uint8) ([][32]byte, []sessionrouter.IBidStorageBid, []sessionrouter.IStatsStorageProviderModelStats, error) - -func collectBids(ctx context.Context, modelAgentID [32]byte, bidsGetter BidsGetter, batchSize uint8) ([][32]byte, []sessionrouter.IBidStorageBid, []sessionrouter.IStatsStorageProviderModelStats, error) { - offset := big.NewInt(0) - bids := make([]sessionrouter.IBidStorageBid, 0) - ids := make([][32]byte, 0) - providerModelStats := make([]sessionrouter.IStatsStorageProviderModelStats, 0) - - for { - if ctx.Err() != nil { - return nil, nil, nil, ctx.Err() - } - - idsBatch, bidsBatch, providerModelStatsBatch, err := bidsGetter(ctx, modelAgentID, offset, batchSize) - if err != nil { - return nil, nil, nil, err - } - - ids = append(ids, idsBatch...) - bids = append(bids, bidsBatch...) - providerModelStats = append(providerModelStats, providerModelStatsBatch...) - - if len(bidsBatch) < int(batchSize) { - break - } - - offset.Add(offset, big.NewInt(int64(batchSize))) - } - - return ids, bids, providerModelStats, nil -} From 273b3b5128686114c93fce495d5b91a3c0668652 Mon Sep 17 00:00:00 2001 From: shev Date: Wed, 30 Oct 2024 13:54:24 +0100 Subject: [PATCH 064/260] fix: session open flow --- cli/go.mod | 16 +- cli/go.sum | 86 ++ go.work | 5 - go.work.sum | 758 ------------------ proxy-router/cmd/main.go | 13 +- proxy-router/go.mod | 1 + proxy-router/internal/blockchainapi/rating.go | 4 +- .../internal/blockchainapi/service.go | 25 +- proxy-router/internal/config/config.go | 9 + .../internal/proxyapi/controller_morrpc.go | 3 + .../repositories/ethclient/ethclient_test.go | 2 +- .../repositories/registries/model_registry.go | 20 +- .../registries/provider_registry.go | 28 +- .../repositories/registries/session_router.go | 23 +- 14 files changed, 178 insertions(+), 815 deletions(-) create mode 100644 cli/go.sum delete mode 100644 go.work delete mode 100644 go.work.sum diff --git a/cli/go.mod b/cli/go.mod index 71caabeb..bf19118e 100644 --- a/cli/go.mod +++ b/cli/go.mod @@ -8,23 +8,18 @@ require ( github.com/charmbracelet/bubbles v0.15.0 github.com/charmbracelet/bubbletea v0.23.2 github.com/charmbracelet/lipgloss v0.7.1 - github.com/go-playground/validator/v10 v10.20.0 + github.com/ethereum/go-ethereum v1.14.11 github.com/sashabaranov/go-openai v1.24.1 github.com/urfave/cli/v2 v2.27.2 ) -// require github.com/MorpheusAIs/Morpheus-Lumerin-Node/cli/chat v1.0.1 - require ( github.com/atotto/clipboard v0.1.4 // indirect github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect github.com/containerd/console v1.0.3 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect - github.com/gabriel-vasile/mimetype v1.4.3 // indirect - github.com/go-playground/locales v0.14.1 // indirect - github.com/go-playground/universal-translator v0.18.1 // indirect + github.com/holiman/uint256 v1.3.1 // indirect github.com/joho/godotenv v1.5.1 - github.com/leodido/go-urn v1.4.0 // indirect github.com/lucasb-eyer/go-colorful v1.2.0 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/mattn/go-localereader v0.0.1 // indirect @@ -35,12 +30,11 @@ require ( github.com/muesli/termenv v0.15.1 // indirect github.com/rivo/uniseg v0.2.0 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect - github.com/stretchr/testify v1.9.0 // indirect + github.com/sahilm/fuzzy v0.1.0 // indirect github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 // indirect golang.org/x/crypto v0.23.0 // indirect - golang.org/x/net v0.25.0 // indirect - golang.org/x/sync v0.3.0 // indirect - golang.org/x/sys v0.20.0 // indirect + golang.org/x/sync v0.7.0 // indirect + golang.org/x/sys v0.22.0 // indirect golang.org/x/term v0.20.0 // indirect golang.org/x/text v0.15.0 // indirect ) diff --git a/cli/go.sum b/cli/go.sum new file mode 100644 index 00000000..2c3a853d --- /dev/null +++ b/cli/go.sum @@ -0,0 +1,86 @@ +github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z4= +github.com/atotto/clipboard v0.1.4/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI= +github.com/aymanbagabas/go-osc52 v1.0.3/go.mod h1:zT8H+Rk4VSabYN90pWyugflM3ZhpTZNC7cASDfUCdT4= +github.com/aymanbagabas/go-osc52 v1.2.1/go.mod h1:zT8H+Rk4VSabYN90pWyugflM3ZhpTZNC7cASDfUCdT4= +github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k= +github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8= +github.com/charmbracelet/bubbles v0.15.0 h1:c5vZ3woHV5W2b8YZI1q7v4ZNQaPetfHuoHzx+56Z6TI= +github.com/charmbracelet/bubbles v0.15.0/go.mod h1:Y7gSFbBzlMpUDR/XM9MhZI374Q+1p1kluf1uLl8iK74= +github.com/charmbracelet/bubbletea v0.23.1/go.mod h1:JAfGK/3/pPKHTnAS8JIE2u9f61BjWTQY57RbT25aMXU= +github.com/charmbracelet/bubbletea v0.23.2 h1:vuUJ9HJ7b/COy4I30e8xDVQ+VRDUEFykIjryPfgsdps= +github.com/charmbracelet/bubbletea v0.23.2/go.mod h1:FaP3WUivcTM0xOKNmhciz60M6I+weYLF76mr1JyI7sM= +github.com/charmbracelet/harmonica v0.2.0/go.mod h1:KSri/1RMQOZLbw7AHqgcBycp8pgJnQMYYT8QZRqZ1Ao= +github.com/charmbracelet/lipgloss v0.6.0/go.mod h1:tHh2wr34xcHjC2HCXIlGSG1jaDF0S0atAUvBMP6Ppuk= +github.com/charmbracelet/lipgloss v0.7.1 h1:17WMwi7N1b1rVWOjMT+rCh7sQkvDU75B2hbZpc5Kc1E= +github.com/charmbracelet/lipgloss v0.7.1/go.mod h1:yG0k3giv8Qj8edTCbbg6AlQ5e8KNWpFujkNawKNhE2c= +github.com/containerd/console v1.0.3 h1:lIr7SlA5PxZyMV30bDW0MGbiOPXwc63yRuCP0ARubLw= +github.com/containerd/console v1.0.3/go.mod h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkXar0TQ1gf3U= +github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/ethereum/go-ethereum v1.14.11 h1:8nFDCUUE67rPc6AKxFj7JKaOa2W/W1Rse3oS6LvvxEY= +github.com/ethereum/go-ethereum v1.14.11/go.mod h1:+l/fr42Mma+xBnhefL/+z11/hcmJ2egl+ScIVPjhc7E= +github.com/holiman/uint256 v1.3.1 h1:JfTzmih28bittyHM8z360dCjIA9dbPIBlcTI6lmctQs= +github.com/holiman/uint256 v1.3.1/go.mod h1:EOMSn4q6Nyt9P6efbI3bueV4e1b3dGlUCXeiRV4ng7E= +github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= +github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= +github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= +github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= +github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= +github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-localereader v0.0.1 h1:ygSAOl7ZXTx4RdPYinUpg6W99U8jWvWi9Ye2JC/oIi4= +github.com/mattn/go-localereader v0.0.1/go.mod h1:8fBrzywKY7BI3czFoHkuzRoWE9C+EiG4R1k4Cjx5p88= +github.com/mattn/go-runewidth v0.0.10/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= +github.com/mattn/go-runewidth v0.0.12/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= +github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mattn/go-runewidth v0.0.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWVwUuU= +github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/muesli/ansi v0.0.0-20211018074035-2e021307bc4b h1:1XF24mVaiu7u+CFywTdcDo2ie1pzzhwjt6RHqzpMU34= +github.com/muesli/ansi v0.0.0-20211018074035-2e021307bc4b/go.mod h1:fQuZ0gauxyBcmsdE3ZT4NasjaRdxmbCS0jRHsrWu3Ho= +github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELUXHmA= +github.com/muesli/cancelreader v0.2.2/go.mod h1:3XuTXfFS2VjM+HTLZY9Ak0l6eUKfijIfMUZ4EgX0QYo= +github.com/muesli/reflow v0.2.1-0.20210115123740-9e1d0d53df68/go.mod h1:Xk+z4oIWdQqJzsxyjgl3P22oYZnHdZ8FFTHAQQt5BMQ= +github.com/muesli/reflow v0.3.0 h1:IFsN6K9NfGtjeggFP+68I4chLZV2yIKsXJFNZ+eWh6s= +github.com/muesli/reflow v0.3.0/go.mod h1:pbwTDkVPibjO2kyvBQRBxTWEEGDGq0FlB1BIKtnHY/8= +github.com/muesli/termenv v0.11.1-0.20220204035834-5ac8409525e0/go.mod h1:Bd5NYQ7pd+SrtBSrSNoBBmXlcY8+Xj4BMJgh8qcZrvs= +github.com/muesli/termenv v0.13.0/go.mod h1:sP1+uffeLaEYpyOTb8pLCUctGcGLnoFjSn4YJK5e2bc= +github.com/muesli/termenv v0.14.0/go.mod h1:kG/pF1E7fh949Xhe156crRUrHNyK221IuGO7Ez60Uc8= +github.com/muesli/termenv v0.15.1 h1:UzuTb/+hhlBugQz28rpzey4ZuKcZ03MeKsoG7IJZIxs= +github.com/muesli/termenv v0.15.1/go.mod h1:HeAQPTzpfs016yGtA4g00CsdYnVLJvxsS4ANqrZs2sQ= +github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= +github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/sahilm/fuzzy v0.1.0 h1:FzWGaw2Opqyu+794ZQ9SYifWv2EIXpwP4q8dY1kDAwI= +github.com/sahilm/fuzzy v0.1.0/go.mod h1:VFvziUEIMCrT6A6tw2RFIXPXXmzXbOsSHF0DOI8ZK9Y= +github.com/sashabaranov/go-openai v1.24.1 h1:DWK95XViNb+agQtuzsn+FyHhn3HQJ7Va8z04DQDJ1MI= +github.com/sashabaranov/go-openai v1.24.1/go.mod h1:lj5b/K+zjTSFxVLijLSTDZuP7adOgerWeFyZLUhAKRg= +github.com/urfave/cli/v2 v2.27.2 h1:6e0H+AkS+zDckwPCUrZkKX38mRaau4nL2uipkJpbkcI= +github.com/urfave/cli/v2 v2.27.2/go.mod h1:g0+79LmHHATl7DAcHO99smiR/T7uGLw84w8Y42x+4eM= +github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 h1:+qGGcbkzsfDQNPPe9UDgpxAWQrhbbBXOYJFQDq/dtJw= +github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913/go.mod h1:4aEEwZQutDLsQv2Deui4iYQ6DWTxR14g6m8Wv88+Xqk= +golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI= +golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= +golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220204135822-1c1b9b1eba6a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.20.0 h1:VnkxpohqXaOBYJtBmEppKUG6mXpi+4O6purfc2+sMhw= +golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk= +golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/go.work b/go.work deleted file mode 100644 index 7cf97849..00000000 --- a/go.work +++ /dev/null @@ -1,5 +0,0 @@ -go 1.22.0 - -use ./launcher -use ./proxy-router -use ./cli \ No newline at end of file diff --git a/go.work.sum b/go.work.sum deleted file mode 100644 index fa557e02..00000000 --- a/go.work.sum +++ /dev/null @@ -1,758 +0,0 @@ -cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -cloud.google.com/go v0.43.0/go.mod h1:BOSR3VbTLkk6FDC/TcffxP4NF/FFBGA5ku+jvKOP7pg= -cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= -cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= -cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= -cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= -cloud.google.com/go v0.51.0/go.mod h1:hWtGJ6gnXH+KgDv+V0zFGDvpi07n3z8ZNj3T1RW0Gcw= -cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= -cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= -cloud.google.com/go/bigtable v1.2.0/go.mod h1:JcVAOl45lrTmQfLj7T6TxyMzIN/3FGGcFm+2xVAli2o= -cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= -cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= -cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= -cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= -cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= -collectd.org v0.3.0/go.mod h1:A/8DzQBkF6abtvrT2j/AU/4tiBgJWYyh0y/oB/4MlWE= -dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/AndreasBriese/bbloom v0.0.0-20190306092124-e2d15f34fcf9/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= -github.com/Azure/azure-sdk-for-go/sdk/azcore v0.21.1/go.mod h1:fBF9PQNqB8scdgpZ3ufzaLntG0AG7C1WjPMsiFOmfHM= -github.com/Azure/azure-sdk-for-go/sdk/internal v0.8.3/go.mod h1:KLF4gFr6DcKFZwSuH8w8yEK6DpFl3LP5rhdvAb7Yz5I= -github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.3.0/go.mod h1:tPaiy8S5bQ+S5sOiDlINkp7+Ef339+Nz5L5XO+cnOHo= -github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= -github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/CloudyKit/fastprinter v0.0.0-20200109182630-33d98a066a53/go.mod h1:+3IMCy2vIlbG1XG/0ggNQv0SvxCAIpPM5b1nCz56Xno= -github.com/CloudyKit/jet/v3 v3.0.0/go.mod h1:HKQPgSJmdK8hdoAbKUUWajkHyHo4RaU5rMdUywE7VMo= -github.com/CloudyKit/jet/v6 v6.1.0/go.mod h1:d3ypHeIRNo2+XyqnGA8s+aphtcVpjP5hPwP/Lzo7Ro4= -github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= -github.com/HdrHistogram/hdrhistogram-go v1.1.2/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo= -github.com/Joker/hpp v1.0.0/go.mod h1:8x5n+M1Hp5hC0g8okX3sR3vFQwynaX/UgSOM9MeBKzY= -github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= -github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/Shopify/goreferrer v0.0.0-20181106222321-ec9c9a553398/go.mod h1:a1uqRtAwp2Xwc6WNPJEufxJ7fx3npB4UV/JOLmbu5I0= -github.com/Shopify/goreferrer v0.0.0-20220729165902-8cddb4f5de06/go.mod h1:7erjKLwalezA0k99cWs5L11HWOAPNjdUZ6RxH1BXbbM= -github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg= -github.com/ajg/form v1.5.1/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY= -github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= -github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= -github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= -github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= -github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= -github.com/apache/arrow/go/arrow v0.0.0-20191024131854-af6fa24be0db/go.mod h1:VTxUBvSJ3s3eHAg65PNgrsn5BtqCRPdmyXh6rAfdxN0= -github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z4= -github.com/atotto/clipboard v0.1.4/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI= -github.com/aws/aws-sdk-go-v2 v1.2.0/go.mod h1:zEQs02YRBw1DjK0PoJv3ygDYOFTre1ejlJWl8FwAuQo= -github.com/aws/aws-sdk-go-v2/config v1.1.1/go.mod h1:0XsVy9lBI/BCXm+2Tuvt39YmdHwS5unDQmxZOYe8F5Y= -github.com/aws/aws-sdk-go-v2/credentials v1.1.1/go.mod h1:mM2iIjwl7LULWtS6JCACyInboHirisUUdkBPoTHMOUo= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.0.2/go.mod h1:3hGg3PpiEjHnrkrlasTfxFqUsZ2GCk/fMUn4CbKgSkM= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.0.2/go.mod h1:45MfaXZ0cNbeuT0KQ1XJylq8A6+OpVV2E5kvY/Kq+u8= -github.com/aws/aws-sdk-go-v2/service/route53 v1.1.1/go.mod h1:rLiOUrPLW/Er5kRcQ7NkwbjlijluLsrIbu/iyl35RO4= -github.com/aws/aws-sdk-go-v2/service/sso v1.1.1/go.mod h1:SuZJxklHxLAXgLTc1iFXbEWkXs7QRTQpCLGaKIprQW0= -github.com/aws/aws-sdk-go-v2/service/sts v1.1.1/go.mod h1:Wi0EBZwiz/K44YliU0EKxqTCJGUfYTWXrrBwkq736bM= -github.com/aws/smithy-go v1.1.0/go.mod h1:EzMw8dbp/YJL4A5/sbhGddag+NPT7q084agLbB9LgIw= -github.com/aymanbagabas/go-osc52 v1.0.3/go.mod h1:zT8H+Rk4VSabYN90pWyugflM3ZhpTZNC7cASDfUCdT4= -github.com/aymanbagabas/go-osc52 v1.2.1 h1:q2sWUyDcozPLcLabEMd+a+7Ea2DitxZVN9hTxab9L4E= -github.com/aymanbagabas/go-osc52 v1.2.1/go.mod h1:zT8H+Rk4VSabYN90pWyugflM3ZhpTZNC7cASDfUCdT4= -github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k= -github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8= -github.com/aymerick/douceur v0.2.0/go.mod h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4= -github.com/aymerick/raymond v2.0.3-0.20180322193309-b565731e1464+incompatible/go.mod h1:osfaiScAUVup+UC9Nfq76eWqDhXlp+4UYaA8uhTBO6g= -github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= -github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= -github.com/bits-and-blooms/bitset v1.7.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA= -github.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40/go.mod h1:8rLXio+WjiTceGBHIoTvn60HIbs7Hm7bcHjyrSqYB9c= -github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps= -github.com/btcsuite/btcd/btcec/v2 v2.1.2/go.mod h1:ctjw4H1kknNJmRN4iP1R7bTQ+v3GJkZBd6mui8ZsAZE= -github.com/btcsuite/btcd/chaincfg/chainhash v1.0.0/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= -github.com/btcsuite/goleveldb v1.0.0/go.mod h1:QiK9vBlgftBg6rWQIj6wFzbPfRjiykIEhBH4obrXJ/I= -github.com/btcsuite/snappy-go v1.0.0/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= -github.com/c-bata/go-prompt v0.2.2/go.mod h1:VzqtzE2ksDBcdln8G7mk2RX9QyGjH+OVqOCSiVIqS34= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= -github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= -github.com/charmbracelet/bubbles v0.15.0 h1:c5vZ3woHV5W2b8YZI1q7v4ZNQaPetfHuoHzx+56Z6TI= -github.com/charmbracelet/bubbles v0.15.0/go.mod h1:Y7gSFbBzlMpUDR/XM9MhZI374Q+1p1kluf1uLl8iK74= -github.com/charmbracelet/bubbletea v0.23.1/go.mod h1:JAfGK/3/pPKHTnAS8JIE2u9f61BjWTQY57RbT25aMXU= -github.com/charmbracelet/bubbletea v0.23.2 h1:vuUJ9HJ7b/COy4I30e8xDVQ+VRDUEFykIjryPfgsdps= -github.com/charmbracelet/bubbletea v0.23.2/go.mod h1:FaP3WUivcTM0xOKNmhciz60M6I+weYLF76mr1JyI7sM= -github.com/charmbracelet/harmonica v0.2.0/go.mod h1:KSri/1RMQOZLbw7AHqgcBycp8pgJnQMYYT8QZRqZ1Ao= -github.com/charmbracelet/lipgloss v0.6.0/go.mod h1:tHh2wr34xcHjC2HCXIlGSG1jaDF0S0atAUvBMP6Ppuk= -github.com/charmbracelet/lipgloss v0.7.1 h1:17WMwi7N1b1rVWOjMT+rCh7sQkvDU75B2hbZpc5Kc1E= -github.com/charmbracelet/lipgloss v0.7.1/go.mod h1:yG0k3giv8Qj8edTCbbg6AlQ5e8KNWpFujkNawKNhE2c= -github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311/go.mod h1:b583jCggY9gE99b6G5LEC39OIiVsWj+R97kbl5odCEk= -github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= -github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= -github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/cloudflare/cloudflare-go v0.14.0/go.mod h1:EnwdgGMaFOruiPZRFSgn+TsQ3hQ7C/YWzIGLeu5c304= -github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cockroachdb/datadriven v1.0.2/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU= -github.com/cockroachdb/logtags v0.0.0-20211118104740-dabe8e521a4f/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= -github.com/cockroachdb/sentry-go v0.6.1-cockroachdb.2/go.mod h1:8BT+cPK6xvFOcRlk0R8eg+OTkcqI6baNH4xAkpiYVvQ= -github.com/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0/go.mod h1:4Zcjuz89kmFXt9morQgcfYZAYZ5n8WHjt81YYWIwtTM= -github.com/consensys/bavard v0.1.8-0.20210406032232-f3452dc9b572/go.mod h1:Bpd0/3mZuaj6Sj+PqrmIquiOKy397AKGThQPaGzNXAQ= -github.com/consensys/bavard v0.1.13/go.mod h1:9ItSMtA/dXMAiL7BG6bqW2m3NdSEObYWoH223nGHukI= -github.com/consensys/gnark-crypto v0.4.1-0.20210426202927-39ac3d4b3f1f/go.mod h1:815PAHg3wvysy0SyIqanF8gZ0Y1wjk/hrDHD/iT88+Q= -github.com/consensys/gnark-crypto v0.10.0/go.mod h1:Iq/P3HHl0ElSjsg2E1gsMwhAyxnxoKK5nVyZKd+/KhU= -github.com/containerd/console v1.0.3 h1:lIr7SlA5PxZyMV30bDW0MGbiOPXwc63yRuCP0ARubLw= -github.com/containerd/console v1.0.3/go.mod h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkXar0TQ1gf3U= -github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= -github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/cpuguy83/go-md2man v1.0.10 h1:BSKMNlYxDvnunlTymqtgONjNnaRV1sTpcovwwjF22jk= -github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= -github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= -github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= -github.com/crate-crypto/go-ipa v0.0.0-20220523130400-f11357ae11c7/go.mod h1:gFnFS95y8HstDP6P9pPwzrxOOC5TRDkwbM+ao15ChAI= -github.com/crate-crypto/go-kzg-4844 v0.2.0/go.mod h1:SBP7ikXEgDnUPONgm33HtuDZEDtWa3L4QtN1ocJSEQ4= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/cyberdelia/templates v0.0.0-20141128023046-ca7fffd4298c/go.mod h1:GyV+0YP4qX0UQ7r2MoYZ+AvYDp12OF5yg4q8rGnyNh4= -github.com/dave/jennifer v1.2.0/go.mod h1:fIb+770HOpJ2fmN9EPPKOqm1vMGhB+TwXKMZhrIygKg= -github.com/deckarep/golang-set v1.8.0 h1:sk9/l/KqpunDwP7pSjUg0keiOOLEnOBHzykLrsPppp4= -github.com/deckarep/golang-set v1.8.0/go.mod h1:5nI87KwE7wgsBU1F4GKAw2Qod7p5kyS383rP6+o6qqo= -github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218= -github.com/deepmap/oapi-codegen v1.6.0/go.mod h1:ryDa9AgbELGeB+YEXE1dR53yAjHwFvE9iAUlWl9Al3M= -github.com/deepmap/oapi-codegen v1.8.2/go.mod h1:YLgSKSDv/bZQB7N4ws6luhozi3cEdRktEqrX88CvjIw= -github.com/dgraph-io/badger v1.6.0 h1:DshxFxZWXUcO0xX476VJC07Xsr6ZCBVRHKZ93Oh7Evo= -github.com/dgraph-io/badger v1.6.0/go.mod h1:zwt7syl517jmP8s94KqSxTlM6IMsdhYy6psNgSztDR4= -github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dgryski/go-bitstream v0.0.0-20180413035011-3522498ce2c8/go.mod h1:VMaSuZ+SZcx/wljOQKvp5srsbCiKDEb6K2wC4+PiBmQ= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= -github.com/dlclark/regexp2 v1.4.1-0.20201116162257-a2a8dda75c91/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= -github.com/dlclark/regexp2 v1.7.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= -github.com/dnaeon/go-vcr v1.1.0/go.mod h1:M7tiix8f0r6mKKJ3Yq/kqU1OYf3MnfmBWVbPx/yU9ko= -github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ= -github.com/docker/docker v1.4.2-0.20180625184442-8e610b2b55bf/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v1.6.2/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/dop251/goja v0.0.0-20211011172007-d99e4b8cbf48/go.mod h1:R9ET47fwRVRPZnOGvHxxhuZcbrMCuiqOz3Rlrh4KSnk= -github.com/dop251/goja v0.0.0-20211022113120-dc8c55024d06/go.mod h1:R9ET47fwRVRPZnOGvHxxhuZcbrMCuiqOz3Rlrh4KSnk= -github.com/dop251/goja v0.0.0-20230122112309-96b1610dd4f7/go.mod h1:yRkwfj0CBpOGre+TwBsqPV0IH0Pk73e4PXJOeNDboGs= -github.com/dop251/goja_nodejs v0.0.0-20210225215109-d91c329300e7/go.mod h1:hn7BA7c8pLvoGndExHudxTDKZ84Pyvv+90pbBjbTz0Y= -github.com/dop251/goja_nodejs v0.0.0-20211022123610-8dd9abb0616d/go.mod h1:DngW8aVqWbuLRMHItjPUyqdj+HWPvnQe8V8y1nDpIbM= -github.com/eclipse/paho.mqtt.golang v1.2.0/go.mod h1:H9keYFcgq3Qr5OUJm/JZI/i6U7joQ8SYLhZwfeOo6Ts= -github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= -github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385/go.mod h1:0vRUJqYpeSZifjYj7uP3BG/gKcuzL9xWVV/Y+cK33KM= -github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/etcd-io/bbolt v1.3.3/go.mod h1:ZF2nL25h33cCyBtcyWeZ2/I3HQOfTP+0PIEvHjkjCrw= -github.com/ethereum/c-kzg-4844 v0.2.0/go.mod h1:WI2Nd82DMZAAZI1wV2neKGost9EKjvbpQR9OqE5Qqa8= -github.com/ethereum/go-ethereum v1.10.17/go.mod h1:Lt5WzjM07XlXc95YzrhosmR4J9Ahd6X2wyEV2SvGhk0= -github.com/fasthttp-contrib/websocket v0.0.0-20160511215533-1f3b11f56072/go.mod h1:duJ4Jxv5lDcvg4QuQr0oowTf7dz4/CR8NtyCooz9HL8= -github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= -github.com/fjl/gencodec v0.0.0-20230517082657-f9840df7b83e/go.mod h1:AzA8Lj6YtixmJWL+wkKoBGsLWy9gFrAzi4g+5bCKwpY= -github.com/flosch/pongo2/v4 v4.0.2/go.mod h1:B5ObFANs/36VwxxlgKpdchIJHMvHB562PW+BWPhwZD8= -github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= -github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/garslo/gogen v0.0.0-20170306192744-1d203ffc1f61/go.mod h1:Q0X6pkwTILDlzrGEckF6HKjXe48EgsY/l7K7vhY4MW8= -github.com/gavv/httpexpect v2.0.0+incompatible/go.mod h1:x+9tiU1YnrOvnB725RkpoLv1M62hOWzwo5OXotisrKc= -github.com/gballet/go-verkle v0.0.0-20220902153445-097bd83b7732/go.mod h1:o/XfIXWi4/GqbQirfRm5uTbXMG5NpqxkxblnbZ+QM9I= -github.com/getkin/kin-openapi v0.53.0/go.mod h1:7Yn5whZr5kJi6t+kShccXS8ae1APpYTW6yheSwk8Yi4= -github.com/getkin/kin-openapi v0.61.0/go.mod h1:7Yn5whZr5kJi6t+kShccXS8ae1APpYTW6yheSwk8Yi4= -github.com/getsentry/sentry-go v0.12.0/go.mod h1:NSap0JBYWzHND8oMbyi0+XZhUalc1TBdRL1M71JZW2c= -github.com/ghemawat/stream v0.0.0-20171120220530-696b145b53b9/go.mod h1:106OIgooyS7OzLDOpUGgm9fA3bQENb/cFSyyBmMoJDs= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s= -github.com/gin-gonic/gin v1.4.0/go.mod h1:OW2EZn3DO8Ln9oIKOvM++LBO+5UPHJJDH72/q/3rZdM= -github.com/gin-gonic/gin v1.9.1 h1:4idEAncQnU5cB7BeOkPtxjfCSye0AAm1R0RVIqJ+Jmg= -github.com/gin-gonic/gin v1.9.1/go.mod h1:hPrL7YrpYKXt5YId3A/Tnip5kqbEAP+KLuI3SUcPTeU= -github.com/glycerine/go-unsnap-stream v0.0.0-20180323001048-9f0cb55181dd/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE= -github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24= -github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= -github.com/go-chi/chi/v5 v5.0.0/go.mod h1:BBug9lr0cqtdAhsu6R4AAdvufI0/XBzAQSsUqJpoZOs= -github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= -github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= -github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= -github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= -github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= -github.com/go-martini/martini v0.0.0-20170121215854-22fa46961aab/go.mod h1:/P9AEU963A2AYjv4d1V5eVL1CQbEJq6aCNHDDjibzu8= -github.com/go-ole/go-ole v1.2.1/go.mod h1:7FAglXiTm7HKlQRDeOQ6ZNUHidzCWXuZWq/1dTyBNF8= -github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= -github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-sourcemap/sourcemap v2.1.3+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg= -github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= -github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22YWvt/FAX9NnzrNzcI4wNYi9Yku4O0LKYflo= -github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= -github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= -github.com/gofrs/uuid v3.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= -github.com/gogo/googleapis v0.0.0-20180223154316-0cd9801be74a/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= -github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4= -github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= -github.com/gogo/status v1.1.0/go.mod h1:BFv9nrluPLmrS0EmGVvLaPNmRosr9KapBYd5/hpY1WM= -github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= -github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= -github.com/golang/geo v0.0.0-20190916061304-5b978397cfec/go.mod h1:QZ0nwyI2jOfgRAoBvP+ab5aRr7c9x7lhGEJrKvBwjWI= -github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7 h1:5ZkaAPbicIKTF2I64qf5Fh8Aa83Q/dnOafMYV0OMwjA= -github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golangci/lint-1 v0.0.0-20181222135242-d2cdd8c08219/go.mod h1:/X8TswGSh1pIozq4ZwCfxS0WA5JGXguxk94ar/4c87Y= -github.com/gomodule/redigo v1.7.1-0.20190724094224-574c33c3df38/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= -github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/flatbuffers v1.11.0/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= -github.com/google/gofuzz v1.1.1-0.20200604201612-c04b05f3adfa/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= -github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= -github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= -github.com/google/subcommands v1.2.0/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= -github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= -github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/css v1.0.0/go.mod h1:Dn721qIggHpt4+EFCcTLTU/vk5ySda2ReITrtgBl60c= -github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/graph-gophers/graphql-go v1.3.0/go.mod h1:9CQHMSxwO4MprSdzoIEobiHpoLtHm77vfxsvsIN5Vuc= -github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= -github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/holiman/uint256 v1.2.0/go.mod h1:y4ga/t+u+Xwd7CpDgZESaRcWy0I7XMlTMA25ApIH5Jw= -github.com/holiman/uint256 v1.2.2-0.20230321075855-87b91420868c/go.mod h1:SC8Ryt4n+UBbPbIBKaG9zbbDlp4jOru9xFZmPzLUTxw= -github.com/huin/goupnp v1.0.3-0.20220313090229-ca81a64b4204/go.mod h1:ZxNlw5WqJj6wSsRK5+YfflQGXYfccj5VgQsMNixHM7Y= -github.com/huin/goutil v0.0.0-20170803182201-1ca381bf3150/go.mod h1:PpLOETDnJ0o3iZrZfqZzyLl6l7F3c6L1oWn7OICBi6o= -github.com/hydrogen18/memlistener v0.0.0-20200120041712-dcc25e7acd91/go.mod h1:qEIFzExnS6016fRpRfxrExeVn2gbClQA99gQhnIcdhE= -github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/imkira/go-interpol v1.1.0/go.mod h1:z0h2/2T3XF8kyEPpRgJ3kmNv+C43p+I/CoI+jC3w2iA= -github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/influxdata/flux v0.65.1/go.mod h1:J754/zds0vvpfwuq7Gc2wRdVwEodfpCFM7mYlOw2LqY= -github.com/influxdata/influxdb v1.8.3/go.mod h1:JugdFhsvvI8gadxOI6noqNeeBHvWNTbfYGtiAn+2jhI= -github.com/influxdata/influxdb-client-go/v2 v2.4.0/go.mod h1:vLNHdxTJkIf2mSLvGrpj8TCcISApPoXkaxP8g9uRlW8= -github.com/influxdata/influxdb1-client v0.0.0-20220302092344-a9ab5670611c/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= -github.com/influxdata/influxql v1.1.1-0.20200828144457-65d3ef77d385/go.mod h1:gHp9y86a/pxhjJ+zMjNXiQAA197Xk9wLxaz+fGG+kWk= -github.com/influxdata/line-protocol v0.0.0-20180522152040-32c6aa80de5e/go.mod h1:4kt73NQhadE3daL3WhR5EJ/J2ocX0PZzwxQ0gXJ7oFE= -github.com/influxdata/line-protocol v0.0.0-20200327222509-2487e7298839/go.mod h1:xaLFMmpvUxqXtVkUJfg9QmT88cDaCJ3ZKgdZ78oO8Qo= -github.com/influxdata/line-protocol v0.0.0-20210311194329-9aa0e372d097/go.mod h1:xaLFMmpvUxqXtVkUJfg9QmT88cDaCJ3ZKgdZ78oO8Qo= -github.com/influxdata/promql/v2 v2.12.0/go.mod h1:fxOPu+DY0bqCTCECchSRtWfc+0X19ybifQhZoQNF5D8= -github.com/influxdata/roaring v0.4.13-0.20180809181101-fc520f41fab6/go.mod h1:bSgUQ7q5ZLSO+bKBGqJiCBGAl+9DxyW63zLTujjUlOE= -github.com/influxdata/tdigest v0.0.0-20181121200506-bf2b5ad3c0a9/go.mod h1:Js0mqiSBE6Ffsg94weZZ2c+v/ciT8QRHFOap7EKDrR0= -github.com/influxdata/usage-client v0.0.0-20160829180054-6d3895376368/go.mod h1:Wbbw6tYNvwa5dlB6304Sd+82Z3f7PmVZHVKU637d4po= -github.com/iris-contrib/blackfriday v2.0.0+incompatible/go.mod h1:UzZ2bDEoaSGPbkg6SAB4att1aAwTmVIx/5gCVqeyUdI= -github.com/iris-contrib/go.uuid v2.0.0+incompatible/go.mod h1:iz2lgM/1UnEf1kP0L/+fafWORmlnuysV2EMP8MW+qe0= -github.com/iris-contrib/jade v1.1.3/go.mod h1:H/geBymxJhShH5kecoiOCSssPX7QWYH7UaeZTSWddIk= -github.com/iris-contrib/jade v1.1.4/go.mod h1:EDqR+ur9piDl6DUgs6qRrlfzmlx/D5UybogqrXvJTBE= -github.com/iris-contrib/pongo2 v0.0.1/go.mod h1:Ssh+00+3GAZqSQb30AvBRNxBx7rf0GqwkjqxNd0u65g= -github.com/iris-contrib/schema v0.0.1/go.mod h1:urYA3uvUNG1TIIjOSCzHr9/LmbQo8LrOcOqfqxa4hXw= -github.com/iris-contrib/schema v0.0.6/go.mod h1:iYszG0IOsuIsfzjymw1kMzTL8YQcCWlm65f3wX8J5iA= -github.com/jedisct1/go-minisign v0.0.0-20190909160543-45766022959e/go.mod h1:G1CVv03EnqU1wYL2dFwXxW2An0az9JTl/ZsqXQeBlkU= -github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= -github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= -github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= -github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= -github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= -github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -github.com/jsternberg/zap-logfmt v1.0.0/go.mod h1:uvPs/4X51zdkcm5jXl5SYoN+4RK21K8mysFmDaM/h+o= -github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= -github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= -github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= -github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= -github.com/jwilder/encoding v0.0.0-20170811194829-b4e1701a28ef/go.mod h1:Ct9fl0F6iIOGgxJ5npU/IUOhOhqlVrGjyIZc8/MagT0= -github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k= -github.com/karalabe/usb v0.0.2/go.mod h1:Od972xHfMJowv7NGVDiWVxk2zxnWgjLlJzE+F4F7AGU= -github.com/kataras/blocks v0.0.7/go.mod h1:UJIU97CluDo0f+zEjbnbkeMRlvYORtmc1304EeyXf4I= -github.com/kataras/golog v0.0.10/go.mod h1:yJ8YKCmyL+nWjERB90Qwn+bdyBZsaQwU3bTVFgkFIp8= -github.com/kataras/golog v0.1.7/go.mod h1:jOSQ+C5fUqsNSwurB/oAHq1IFSb0KI3l6GMa7xB6dZA= -github.com/kataras/iris/v12 v12.1.8/go.mod h1:LMYy4VlP67TQ3Zgriz8RE2h2kMZV2SgMYbq3UhfoFmE= -github.com/kataras/iris/v12 v12.2.0-beta5/go.mod h1:q26aoWJ0Knx/00iPKg5iizDK7oQQSPjbD8np0XDh6dc= -github.com/kataras/neffos v0.0.14/go.mod h1:8lqADm8PnbeFfL7CLXh1WHw53dG27MC3pgi2R1rmoTE= -github.com/kataras/pio v0.0.2/go.mod h1:hAoW0t9UmXi4R5Oyq5Z4irTbaTsOemSrDGUtaTl7Dro= -github.com/kataras/pio v0.0.11/go.mod h1:38hH6SWH6m4DKSYmRhlrCJ5WItwWgCVrTNU62XZyUvI= -github.com/kataras/sitemap v0.0.5/go.mod h1:KY2eugMKiPwsJgx7+U103YZehfvNGOXURubcGyk0Bz8= -github.com/kataras/sitemap v0.0.6/go.mod h1:dW4dOCNs896OR1HmG+dMLdT7JjDk7mYBzoIRwuj5jA4= -github.com/kataras/tunnel v0.0.4/go.mod h1:9FkU4LaeifdMWqZu7o20ojmW4B7hdhv2CMLwfnHGpYw= -github.com/kilic/bls12-381 v0.1.0/go.mod h1:vDTTHJONJ6G+P2R74EhnyotQDTliQDnFEwhdmfzw1ig= -github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= -github.com/klauspost/compress v1.4.0/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= -github.com/klauspost/compress v1.8.2/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= -github.com/klauspost/compress v1.9.7/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= -github.com/klauspost/cpuid v0.0.0-20170728055534-ae7887de9fa5/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= -github.com/klauspost/cpuid v1.2.1/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= -github.com/klauspost/crc32 v0.0.0-20161016154125-cb6bfca970f6/go.mod h1:+ZoRqAPRLkC4NPOvfYeR5KNOrY6TD+/sAC3HXPZgDYg= -github.com/klauspost/pgzip v1.0.2-0.20170402124221-0bf5dcad4ada/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= -github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/labstack/echo/v4 v4.2.1/go.mod h1:AA49e0DZ8kk5jTOOCKNuPR6oTnBS0dYiM4FW1e6jwpg= -github.com/labstack/echo/v4 v4.5.0/go.mod h1:czIriw4a0C1dFun+ObrXp7ok03xON0N1awStJ6ArI7Y= -github.com/labstack/echo/v4 v4.9.0/go.mod h1:xkCDAdFCIf8jsFQ5NnbK7oqaF/yU1A1X20Ltm0OvSks= -github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k= -github.com/labstack/gommon v0.3.1/go.mod h1:uW6kP17uPlLJsD3ijUYn3/M5bAxtlZhMI6m3MFxTMTM= -github.com/leanovate/gopter v0.2.9/go.mod h1:U2L/78B+KVFIx2VmW6onHJQzXtFb+p5y3y2Sh+Jxxv8= -github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= -github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= -github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= -github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/mailgun/raymond/v2 v2.0.46/go.mod h1:lsgvL50kgt1ylcFJYZiULi5fjPBkkhNfj4KA0W54Z18= -github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/matryer/moq v0.0.0-20190312154309-6cfb0558e1bd/go.mod h1:9ELz6aaclSIGnZBoaSLZ3NAl1VTufbOrXBPvtcy6WiQ= -github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= -github.com/mattn/go-colorable v0.1.7/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= -github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= -github.com/mattn/go-colorable v0.1.11/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= -github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ= -github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= -github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= -github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-localereader v0.0.1 h1:ygSAOl7ZXTx4RdPYinUpg6W99U8jWvWi9Ye2JC/oIi4= -github.com/mattn/go-localereader v0.0.1/go.mod h1:8fBrzywKY7BI3czFoHkuzRoWE9C+EiG4R1k4Cjx5p88= -github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= -github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= -github.com/mattn/go-runewidth v0.0.10/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= -github.com/mattn/go-runewidth v0.0.12/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= -github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= -github.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= -github.com/mattn/go-tty v0.0.0-20180907095812-13ff1204f104/go.mod h1:XPvLUNfbS4fJH25nqRHfWLMa1ONC8Amw+mIA639KxkE= -github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw= -github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/mediocregopher/radix/v3 v3.4.2/go.mod h1:8FL3F6UQRXHXIBSPUs5h0RybMF8i4n7wVopoX3x7Bv8= -github.com/microcosm-cc/bluemonday v1.0.2/go.mod h1:iVP4YcDBq+n/5fb23BhYFvIMq/leAFZyRl6bYmGDlGc= -github.com/microcosm-cc/bluemonday v1.0.21/go.mod h1:ytNkv4RrDrLJ2pqlsSI46O6IVXmZOBBD4SaJyDwwTkM= -github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqkyU72HC5wJ4RlU= -github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU= -github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modocache/gover v0.0.0-20171022184752-b58185e213c5/go.mod h1:caMODM3PzxT8aQXRPkAt8xlV/e7d7w8GM5g0fa5F0D8= -github.com/moul/http2curl v1.0.0/go.mod h1:8UbvGypXm98wA/IqH45anm5Y2Z6ep6O31QGOAZ3H0fQ= -github.com/mschoch/smat v0.0.0-20160514031455-90eadee771ae/go.mod h1:qAyveg+e4CE+eKJXWVjKXM4ck2QobLqTDytGJbLLhJg= -github.com/muesli/ansi v0.0.0-20211018074035-2e021307bc4b h1:1XF24mVaiu7u+CFywTdcDo2ie1pzzhwjt6RHqzpMU34= -github.com/muesli/ansi v0.0.0-20211018074035-2e021307bc4b/go.mod h1:fQuZ0gauxyBcmsdE3ZT4NasjaRdxmbCS0jRHsrWu3Ho= -github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELUXHmA= -github.com/muesli/cancelreader v0.2.2/go.mod h1:3XuTXfFS2VjM+HTLZY9Ak0l6eUKfijIfMUZ4EgX0QYo= -github.com/muesli/reflow v0.2.1-0.20210115123740-9e1d0d53df68/go.mod h1:Xk+z4oIWdQqJzsxyjgl3P22oYZnHdZ8FFTHAQQt5BMQ= -github.com/muesli/reflow v0.3.0 h1:IFsN6K9NfGtjeggFP+68I4chLZV2yIKsXJFNZ+eWh6s= -github.com/muesli/reflow v0.3.0/go.mod h1:pbwTDkVPibjO2kyvBQRBxTWEEGDGq0FlB1BIKtnHY/8= -github.com/muesli/termenv v0.11.1-0.20220204035834-5ac8409525e0/go.mod h1:Bd5NYQ7pd+SrtBSrSNoBBmXlcY8+Xj4BMJgh8qcZrvs= -github.com/muesli/termenv v0.13.0/go.mod h1:sP1+uffeLaEYpyOTb8pLCUctGcGLnoFjSn4YJK5e2bc= -github.com/muesli/termenv v0.14.0/go.mod h1:kG/pF1E7fh949Xhe156crRUrHNyK221IuGO7Ez60Uc8= -github.com/muesli/termenv v0.15.1 h1:UzuTb/+hhlBugQz28rpzey4ZuKcZ03MeKsoG7IJZIxs= -github.com/muesli/termenv v0.15.1/go.mod h1:HeAQPTzpfs016yGtA4g00CsdYnVLJvxsS4ANqrZs2sQ= -github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h1USek5+NqSA0= -github.com/naoina/toml v0.1.2-0.20170918210437-9fafd6967416/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E= -github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= -github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzEE/Zbp4w= -github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= -github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= -github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/omeid/uconfig v0.5.0 h1:jNI7QgdGvoazDm95yoFNSg7NL+TcjIScTOLn5nk4f4E= -github.com/omeid/uconfig v0.5.0/go.mod h1:a+bL4SpC/ZYQjRQGMkyT8Wk3z8XXGBqwtbNRnCukLP0= -github.com/onsi/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= -github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= -github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= -github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/opentracing/opentracing-go v1.0.3-0.20180606204148-bd9c31933947/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/paulbellamy/ratecounter v0.2.0/go.mod h1:Hfx1hDpSGoqxkVVpBi/IlYD7kChlfo5C6hzIHwPqfFE= -github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= -github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/pelletier/go-toml/v2 v2.2.1 h1:9TA9+T8+8CUCO2+WYnDLCgrYi9+omqKXyjDtosvtEhg= -github.com/pelletier/go-toml/v2 v2.2.1/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= -github.com/peterh/liner v1.0.1-0.20180619022028-8c1271fcf47f/go.mod h1:xIteQHvHuaLYG9IFj6mSxM0fCKrs34IrEQUhOYuGPHc= -github.com/peterh/liner v1.1.1-0.20190123174540-a2c9a5303de7/go.mod h1:CRroGNssyjTd/qIG2FyxByd2S8JEAZXBl4qUrZf8GS0= -github.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= -github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= -github.com/pingcap/errors v0.11.4/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8= -github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= -github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/term v0.0.0-20180730021639-bffc007b7fd5/go.mod h1:eCbImbZ95eXtAUIbLAuAVnBnwf83mjf6QIVH8SHYwqQ= -github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= -github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/protolambda/bls12-381-util v0.0.0-20220416220906-d8552aa452c7/go.mod h1:IToEjHuttnUzwZI5KBSM/LOOW3qLbbrHOEfp3SbECGY= -github.com/retailnext/hllpp v1.0.1-0.20180308014038-101a6d2f8b52/go.mod h1:RDpi1RftBQPUCDRw6SmxeaREsAaRKnOclghuzp/WRzc= -github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= -github.com/rjeczalik/notify v0.9.1/go.mod h1:rKwnCoCGeuQnwBtTSPL9Dad03Vh2n40ePRrjvIXnJho= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= -github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/russross/blackfriday v1.5.2 h1:HyvC0ARfnZBqnXwABFeSZHpKvJHJJfPz81GNueLj0oo= -github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/sahilm/fuzzy v0.1.0 h1:FzWGaw2Opqyu+794ZQ9SYifWv2EIXpwP4q8dY1kDAwI= -github.com/sahilm/fuzzy v0.1.0/go.mod h1:VFvziUEIMCrT6A6tw2RFIXPXXmzXbOsSHF0DOI8ZK9Y= -github.com/sashabaranov/go-openai v1.24.1 h1:DWK95XViNb+agQtuzsn+FyHhn3HQJ7Va8z04DQDJ1MI= -github.com/sashabaranov/go-openai v1.24.1/go.mod h1:lj5b/K+zjTSFxVLijLSTDZuP7adOgerWeFyZLUhAKRg= -github.com/schollz/closestmatch v2.1.0+incompatible/go.mod h1:RtP1ddjLong6gTkbtmuhtR2uUrrJOpYzYRvbcPAid+g= -github.com/segmentio/kafka-go v0.1.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo= -github.com/segmentio/kafka-go v0.2.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo= -github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= -github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= -github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= -github.com/spf13/cobra v1.5.0/go.mod h1:dWXEIy2H428czQCjInthrTRUg7yKbok+2Qi/yBIJoUM= -github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/status-im/keycard-go v0.0.0-20190316090335-8537d3370df4/go.mod h1:RZLeN1LMWmRsyYjvAu+I6Dm9QmlDaIIt+Y+4Kd7Tp+Q= -github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.2.0/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= -github.com/supranational/blst v0.3.11-0.20230406105308-e9dfc5ee724b/go.mod h1:jZJtfjgudtNl4en1tzwPIV3KjUnQUvG3/j+w+fVonLw= -github.com/tdewolff/minify/v2 v2.12.4/go.mod h1:h+SRvSIX3kwgwTFOpSckvSxgax3uy8kZTSF1Ojrr3bk= -github.com/tdewolff/parse/v2 v2.6.4/go.mod h1:woz0cgbLwFdtbjJu8PIKxhW05KplTFQkOdX78o+Jgrs= -github.com/tinylib/msgp v1.0.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= -github.com/tklauser/go-sysconf v0.3.5/go.mod h1:MkWzOF4RMCshBAMXuhXJs64Rte09mITnppBXY/rYEFI= -github.com/tklauser/numcpus v0.2.2/go.mod h1:x3qojaO3uyYt0i56EW/VUYs7uBvdl2fkfZFu0T9wgjM= -github.com/tyler-smith/go-bip39 v1.0.1-0.20181017060643-dbb3b84ba2ef/go.mod h1:sJ5fKU0s6JVwZjjcUEX2zFOnvq0ASQ2K9Zr6cf67kNs= -github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= -github.com/ugorji/go v1.1.7 h1:/68gy2h+1mWMrwZFeD1kQialdSzAb432dtpeJ42ovdo= -github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= -github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= -github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= -github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= -github.com/urfave/cli/v2 v2.27.2 h1:6e0H+AkS+zDckwPCUrZkKX38mRaau4nL2uipkJpbkcI= -github.com/urfave/cli/v2 v2.27.2/go.mod h1:g0+79LmHHATl7DAcHO99smiR/T7uGLw84w8Y42x+4eM= -github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= -github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= -github.com/valyala/fasthttp v1.6.0/go.mod h1:FstJa9V+Pj9vQ7OJie2qMHdwemEDaDiSdBnvPM1Su9w= -github.com/valyala/fasthttp v1.40.0/go.mod h1:t/G+3rLek+CyY9bnIE+YlMRddxVAAGjhxndDB4i4C0I= -github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= -github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= -github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio= -github.com/vmihailenco/msgpack/v5 v5.3.5/go.mod h1:7xyJ9e+0+9SaZT0Wt1RGleJXzli6Q/V5KbhBonMG9jc= -github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds= -github.com/willf/bitset v1.1.3/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= -github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= -github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= -github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= -github.com/xlab/treeprint v0.0.0-20180616005107-d6fb6747feb6/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg= -github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 h1:+qGGcbkzsfDQNPPe9UDgpxAWQrhbbBXOYJFQDq/dtJw= -github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913/go.mod h1:4aEEwZQutDLsQv2Deui4iYQ6DWTxR14g6m8Wv88+Xqk= -github.com/yalp/jsonpath v0.0.0-20180802001716-5cc68e5049a0/go.mod h1:/LWChgwKmvncFJFHJ7Gvn9wZArjbV5/FppcK2fKk/tI= -github.com/yosssi/ace v0.0.5/go.mod h1:ALfIzm2vT7t5ZE7uoIZqF3TQ7SAOyupFZnkrF5id+K0= -github.com/yudai/gojsondiff v1.0.0/go.mod h1:AY32+k2cwILAkW1fbgxQ5mUmMiZFgLIV+FBNExI05xg= -github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82/go.mod h1:lgjkn3NuSvDfVJdfcVVdX+jpBxNmX4rDAzaS45IcYoM= -github.com/yudai/pp v2.0.1+incompatible/go.mod h1:PuxR/8QJ7cyCkFp/aUDS+JY727OFEZkTdatxwunjIkc= -github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= -go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= -go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -golang.org/x/arch v0.7.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys= -golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190909091759-094676da4a83/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191227163750-53104e6ec876/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= -golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= -golang.org/x/crypto v0.0.0-20220518034528-6f7dac969898/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= -golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= -golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= -golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= -golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20230206171751-46f607a40771/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= -golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= -golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= -golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= -golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= -golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= -golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= -golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190327091125-710a502c58a2/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= -golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200813134508-3edf25e44fcc/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20201010224723-4f7140c49acb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210220033124-5f55cee0dc0d/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20210610132358-84b48f89b13b/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20211008194852-3b03d305991f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= -golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= -golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.3.0/go.mod h1:rQrIauxkUhJ6CuwEXwymO2/eh4xz2ZWF1nBkcxS+tGk= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= -golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200107162124-548cf772de50/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200826173525-f9321e4c35a6/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201101102859-da207088b7d1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210316164454-77fc1eacc6aa/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210420205809-ac73e9fd8988/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211020174200-9d6173849985/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220204135822-1c1b9b1eba6a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= -golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= -golang.org/x/term v0.20.0 h1:VnkxpohqXaOBYJtBmEppKUG6mXpi+4O6purfc2+sMhw= -golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= -golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= -golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181221001348-537d06c36207/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190327201419-c70d86f8b7cf/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200108203644-89082a384178/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= -golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= -golang.org/x/tools v0.12.1-0.20230815132531-74c255bcf846/go.mod h1:Sc0INKfu04TlqNoRA1hgpFZbhYXHPr4V5DzpSBTPqQM= -golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= -golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= -gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= -gonum.org/v1/gonum v0.0.0-20181121035319-3f7ecaa7e8ca/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= -gonum.org/v1/gonum v0.6.0/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU= -gonum.org/v1/netlib v0.0.0-20181029234149-ec6d1f5cefe6/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= -gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= -gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= -google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= -google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= -google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/genproto v0.0.0-20180518175338-11a468237815/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190716160619-c506a9f90610/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= -google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200108215221-bd8f9a0ef82f/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= -google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/grpc v1.12.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= -google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= -google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= -google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.34.0 h1:Qo/qEd2RZPCf2nKuorzksSknv0d3ERwp1vFG38gSmH4= -google.golang.org/protobuf v1.34.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= -gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE= -gopkg.in/go-playground/validator.v8 v8.18.2/go.mod h1:RX2a/7Ha8BgOhfk7j780h4/u/RRjR0eouCJSH80/M2Y= -gopkg.in/ini.v1 v1.51.1/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= -gopkg.in/olebedev/go-duktape.v3 v3.0.0-20200619000410-60c24ae608a6/go.mod h1:uAJfkITjFhyEEuUfm7bsmCZRbW5WRq8s9EY8HZ6hCns= -gopkg.in/urfave/cli.v1 v1.20.0/go.mod h1:vuBzUtMdQeixQj8LVd+/98pzhxNGQoyuPBlsXHOQNO0= -gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20191120175047-4206685974f2/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= -honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las= -rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/tmplfunc v0.0.3/go.mod h1:AG3sTPzElb1Io3Yg4voV9AGZJuleGAwaVRxL9M49PhA= -sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8= diff --git a/proxy-router/cmd/main.go b/proxy-router/cmd/main.go index 9cc13b54..6f618d41 100644 --- a/proxy-router/cmd/main.go +++ b/proxy-router/cmd/main.go @@ -119,6 +119,15 @@ func start() error { contractLogStorage := lib.NewCollection[*interfaces.LogStorage]() + rpcLog, err := lib.NewLogger(cfg.Log.LevelRPC, cfg.Log.Color, cfg.Log.IsProd, cfg.Log.JSON, mainLogFilePath) + if err != nil { + return err + } + + badgerLog, err := lib.NewLogger(cfg.Log.LevelBadger, cfg.Log.Color, cfg.Log.IsProd, cfg.Log.JSON, mainLogFilePath) + if err != nil { + return err + } // contractLogFactory := func(contractID string) (lib.ILogger, error) { // logStorage := interfaces.NewLogStorage(contractID) // contractLogStorage.Store(logStorage) @@ -210,7 +219,7 @@ func start() error { if cfg.Blockchain.EthNodeAddress != "" { ethNodeAddresses = []string{cfg.Blockchain.EthNodeAddress} } - rpcClientStore, err := ethclient.ConfigureRPCClientStore(keychainStorage, ethNodeAddresses, cfg.Blockchain.ChainID, log.Named("RPC")) + rpcClientStore, err := ethclient.ConfigureRPCClientStore(keychainStorage, ethNodeAddresses, cfg.Blockchain.ChainID, rpcLog.Named("RPC")) if err != nil { return lib.WrapError(ErrConnectToEthNode, err) } @@ -230,7 +239,7 @@ func start() error { return err } - storage := storages.NewStorage(log, cfg.Proxy.StoragePath) + storage := storages.NewStorage(badgerLog, cfg.Proxy.StoragePath) sessionStorage := storages.NewSessionStorage(storage) var wallet interfaces.Wallet diff --git a/proxy-router/go.mod b/proxy-router/go.mod index cf83f7ec..09c75310 100644 --- a/proxy-router/go.mod +++ b/proxy-router/go.mod @@ -91,6 +91,7 @@ require ( github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/stretchr/objx v0.5.2 // indirect github.com/supranational/blst v0.3.11 // indirect github.com/tklauser/go-sysconf v0.3.12 // indirect github.com/tklauser/numcpus v0.6.1 // indirect diff --git a/proxy-router/internal/blockchainapi/rating.go b/proxy-router/internal/blockchainapi/rating.go index aa76da97..af3b7d62 100644 --- a/proxy-router/internal/blockchainapi/rating.go +++ b/proxy-router/internal/blockchainapi/rating.go @@ -10,7 +10,7 @@ import ( s "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/contracts/bindings/sessionrouter" ) -func rateBids(bidIds [][32]byte, bids []m.IBidStorageBid, pmStats []s.IStatsStorageProviderModelStats, mStats ModelStats, log lib.ILogger) []structs.ScoredBid { +func rateBids(bidIds [][32]byte, bids []m.IBidStorageBid, pmStats []s.IStatsStorageProviderModelStats, mStats *s.IStatsStorageModelStats, log lib.ILogger) []structs.ScoredBid { scoredBids := make([]structs.ScoredBid, len(bids)) for i := range bids { @@ -41,7 +41,7 @@ func rateBids(bidIds [][32]byte, bids []m.IBidStorageBid, pmStats []s.IStatsStor return scoredBids } -func getScore(bid m.IBidStorageBid, pmStats s.IStatsStorageProviderModelStats, mStats ModelStats) float64 { +func getScore(bid m.IBidStorageBid, pmStats s.IStatsStorageProviderModelStats, mStats *s.IStatsStorageModelStats) float64 { tpsWeight, ttftWeight, durationWeight, successWeight := 0.27, 0.11, 0.27, 0.35 count := int64(mStats.Count) diff --git a/proxy-router/internal/blockchainapi/service.go b/proxy-router/internal/blockchainapi/service.go index a576c7e2..bff19333 100644 --- a/proxy-router/internal/blockchainapi/service.go +++ b/proxy-router/internal/blockchainapi/service.go @@ -7,6 +7,7 @@ import ( "math/big" "sort" "strconv" + "time" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/blockchainapi/structs" i "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" @@ -205,7 +206,7 @@ func (s *BlockchainService) GetRatedBids(ctx context.Context, modelID common.Has return nil, err } - ratedBids := rateBids(bidIDs, bids, providerModelStats, modelStats.(ModelStats), s.log) + ratedBids := rateBids(bidIDs, bids, providerModelStats, modelStats, s.log) return ratedBids, nil } @@ -546,10 +547,6 @@ func (s *BlockchainService) Approve(ctx context.Context, spender common.Address, return tx.Hash(), nil } -func (s *BlockchainService) GetTodaysBudget(ctx context.Context) (*big.Int, error) { - return s.sessionRouter.GetTodaysBudget(ctx) -} - func (s *BlockchainService) ClaimProviderBalance(ctx context.Context, sessionID [32]byte) (common.Hash, error) { prKey, err := s.privateKey.GetPrivateKey() if err != nil { @@ -570,7 +567,11 @@ func (s *BlockchainService) ClaimProviderBalance(ctx context.Context, sessionID } func (s *BlockchainService) GetTokenSupply(ctx context.Context) (*big.Int, error) { - return s.morToken.GetTotalSupply(ctx) + return s.sessionRouter.GetTotalMORSupply(ctx, big.NewInt(time.Now().Unix())) +} + +func (s *BlockchainService) GetTodaysBudget(ctx context.Context) (*big.Int, error) { + return s.sessionRouter.GetTodaysBudget(ctx, big.NewInt(time.Now().Unix())) } func (s *BlockchainService) GetSessions(ctx *gin.Context, user, provider common.Address, offset *big.Int, limit uint8) ([]*structs.Session, error) { @@ -712,7 +713,7 @@ func (s *BlockchainService) OpenSessionByModelId(ctx context.Context, modelID co return common.Hash{}, lib.WrapError(ErrMyAddress, err) } - scoredBids := rateBids(bidIDs, bids, providerStats, modelStats.(ModelStats), s.log) + scoredBids := rateBids(bidIDs, bids, providerStats, modelStats, s.log) for i, bid := range scoredBids { s.log.Infof("trying to open session with provider #%d %s", i, bid.Bid.Provider.String()) durationCopy := new(big.Int).Set(duration) @@ -771,8 +772,14 @@ func (s *BlockchainService) tryOpenSession(ctx context.Context, bid structs.Scor return common.Hash{}, lib.WrapError(ErrProvider, err) } - totalCost := duration.Mul(&bid.Bid.PricePerSecond.Int, duration) - stake := totalCost.Div(totalCost.Mul(supply, totalCost), budget) + totalCost := (&big.Int{}).Mul(&bid.Bid.PricePerSecond.Int, duration) + stake := (&big.Int{}).Div((&big.Int{}).Mul(supply, totalCost), budget) + + s.log.Infof("attempting to initiate session with provider %s", bid.Bid.Provider.String()) + s.log.Infof("stake %s", stake.String()) + s.log.Infof("duration %s", time.Duration(duration.Int64())*time.Second) + s.log.Infof("total cost %s", totalCost.String()) + initRes, err := s.proxyService.InitiateSession(ctx, userAddr, bid.Bid.Provider, stake, bid.Bid.Id, provider.Endpoint) if err != nil { return common.Hash{}, lib.WrapError(ErrInitSession, err) diff --git a/proxy-router/internal/config/config.go b/proxy-router/internal/config/config.go index 02e27543..2665b359 100644 --- a/proxy-router/internal/config/config.go +++ b/proxy-router/internal/config/config.go @@ -50,6 +50,8 @@ type Config struct { LevelProxy string `env:"LOG_LEVEL_PROXY" flag:"log-level-proxy" validate:"omitempty,oneof=debug info warn error dpanic panic fatal"` LevelScheduler string `env:"LOG_LEVEL_SCHEDULER" flag:"log-level-scheduler" validate:"omitempty,oneof=debug info warn error dpanic panic fatal"` LevelContract string `env:"LOG_LEVEL_CONTRACT" flag:"log-level-contract" validate:"omitempty,oneof=debug info warn error dpanic panic fatal"` + LevelRPC string `env:"LOG_LEVEL_RPC" flag:"log-level-rpc" validate:"omitempty,oneof=debug info warn error dpanic panic fatal"` + LevelBadger string `env:"LOG_LEVEL_BADGER" flag:"log-level-badger" validate:"omitempty,oneof=debug info warn error dpanic panic fatal"` } Proxy struct { Address string `env:"PROXY_ADDRESS" flag:"proxy-address" validate:"required,hostname_port"` @@ -103,6 +105,12 @@ func (cfg *Config) SetDefaults() { if cfg.Log.LevelApp == "" { cfg.Log.LevelApp = "debug" } + if cfg.Log.LevelRPC == "" { + cfg.Log.LevelRPC = "info" + } + if cfg.Log.LevelBadger == "" { + cfg.Log.LevelBadger = "info" + } // Proxy if cfg.Proxy.MaxCachedDests == 0 { @@ -174,6 +182,7 @@ func (cfg *Config) GetSanitized() interface{} { publicCfg.Log.LevelConnection = cfg.Log.LevelConnection publicCfg.Log.LevelProxy = cfg.Log.LevelProxy publicCfg.Log.LevelScheduler = cfg.Log.LevelScheduler + publicCfg.Log.LevelRPC = cfg.Log.LevelRPC publicCfg.Proxy.Address = cfg.Proxy.Address publicCfg.Proxy.MaxCachedDests = cfg.Proxy.MaxCachedDests diff --git a/proxy-router/internal/proxyapi/controller_morrpc.go b/proxy-router/internal/proxyapi/controller_morrpc.go index 81b3454f..60d88b29 100644 --- a/proxy-router/internal/proxyapi/controller_morrpc.go +++ b/proxy-router/internal/proxyapi/controller_morrpc.go @@ -144,6 +144,9 @@ func (s *MORRPCController) sessionPrompt(ctx context.Context, msg m.RPCMessage, } requestDuration := int(time.Now().Unix() - now) + if requestDuration == 0 { + requestDuration = 1 + } session.TTFTMsArr = append(session.TTFTMsArr, ttftMs) session.TPSScaled1000Arr = append(session.TPSScaled1000Arr, totalTokens*1000/requestDuration) err = s.sessionStorage.AddSession(session) diff --git a/proxy-router/internal/repositories/ethclient/ethclient_test.go b/proxy-router/internal/repositories/ethclient/ethclient_test.go index f93248d6..227df747 100644 --- a/proxy-router/internal/repositories/ethclient/ethclient_test.go +++ b/proxy-router/internal/repositories/ethclient/ethclient_test.go @@ -5,8 +5,8 @@ import ( "sync" "testing" - "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/contracts/modelregistry" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/contracts/bindings/modelregistry" "github.com/ethereum/go-ethereum/common" "github.com/stretchr/testify/require" ) diff --git a/proxy-router/internal/repositories/registries/model_registry.go b/proxy-router/internal/repositories/registries/model_registry.go index edf8f792..f3b00b1f 100644 --- a/proxy-router/internal/repositories/registries/model_registry.go +++ b/proxy-router/internal/repositories/registries/model_registry.go @@ -3,6 +3,7 @@ package registries import ( "context" "fmt" + "math/big" i "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" @@ -38,12 +39,21 @@ func NewModelRegistry(modelRegistryAddr common.Address, client i.ContractBackend } func (g *ModelRegistry) GetAllModels(ctx context.Context) ([][32]byte, []modelregistry.IModelStorageModel, error) { - // adresses, models, err := g.modelRegistry.Models(&bind.CallOpts{Context: ctx},) - // if err != nil { - // return nil, nil, err - // } + ids, err := g.modelRegistry.GetModelIds(&bind.CallOpts{Context: ctx}, big.NewInt(0), big.NewInt(100)) + if err != nil { + return nil, nil, err + } + + models := make([]modelregistry.IModelStorageModel, 0, len(ids)) + for _, id := range ids { + model, err := g.modelRegistry.GetModel(&bind.CallOpts{Context: ctx}, id) + if err != nil { + return nil, nil, err + } + models = append(models, model) + } - return nil, nil, fmt.Errorf("Not implemented") + return ids, models, nil } func (g *ModelRegistry) CreateNewModel(opts *bind.TransactOpts, modelId common.Hash, ipfsID common.Hash, fee *lib.BigInt, stake *lib.BigInt, name string, tags []string) error { diff --git a/proxy-router/internal/repositories/registries/provider_registry.go b/proxy-router/internal/repositories/registries/provider_registry.go index fa62a53f..6bf2e6a0 100644 --- a/proxy-router/internal/repositories/registries/provider_registry.go +++ b/proxy-router/internal/repositories/registries/provider_registry.go @@ -3,6 +3,7 @@ package registries import ( "context" "fmt" + "math/big" i "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" @@ -38,18 +39,21 @@ func NewProviderRegistry(providerRegistryAddr common.Address, client i.ContractB } func (g *ProviderRegistry) GetAllProviders(ctx context.Context) ([]common.Address, []providerregistry.IProviderStorageProvider, error) { - // providerAddrs, providers, err := g.providerRegistry.ProviderGetAll(&bind.CallOpts{Context: ctx}) - // if err != nil { - // return nil, nil, err - // } - - // addresses := make([]common.Address, len(providerAddrs)) - // for i, address := range providerAddrs { - // addresses[i] = address - // } - - // return addresses, providers, nil - return nil, nil, fmt.Errorf("Not implemented") + ids, err := g.providerRegistry.GetActiveProviders(&bind.CallOpts{Context: ctx}, big.NewInt(0), big.NewInt(100)) + if err != nil { + return nil, nil, err + } + + providers := make([]providerregistry.IProviderStorageProvider, 0, len(ids)) + for _, id := range ids { + provider, err := g.providerRegistry.GetProvider(&bind.CallOpts{Context: ctx}, id) + if err != nil { + return nil, nil, err + } + providers = append(providers, provider) + } + + return ids, providers, nil } func (g *ProviderRegistry) CreateNewProvider(opts *bind.TransactOpts, addStake *lib.BigInt, endpoint string) error { diff --git a/proxy-router/internal/repositories/registries/session_router.go b/proxy-router/internal/repositories/registries/session_router.go index 5dd8af34..d6b3c074 100644 --- a/proxy-router/internal/repositories/registries/session_router.go +++ b/proxy-router/internal/repositories/registries/session_router.go @@ -164,8 +164,7 @@ func (g *SessionRouter) ClaimProviderBalance(opts *bind.TransactOpts, sessionId return tx.Hash(), nil } -func (g *SessionRouter) GetTodaysBudget(ctx context.Context) (*big.Int, error) { - timestamp := big.NewInt(time.Now().Unix()) +func (g *SessionRouter) GetTodaysBudget(ctx context.Context, timestamp *big.Int) (*big.Int, error) { budget, err := g.sessionRouter.GetTodaysBudget(&bind.CallOpts{Context: ctx}, timestamp) if err != nil { return nil, lib.TryConvertGethError(err) @@ -173,12 +172,12 @@ func (g *SessionRouter) GetTodaysBudget(ctx context.Context) (*big.Int, error) { return budget, nil } -func (g *SessionRouter) GetModelStats(ctx context.Context, modelID [32]byte) (interface{}, error) { +func (g *SessionRouter) GetModelStats(ctx context.Context, modelID [32]byte) (*src.IStatsStorageModelStats, error) { res, err := g.sessionRouter.GetModelStats(&bind.CallOpts{Context: ctx}, modelID) if err != nil { return nil, lib.TryConvertGethError(err) } - return res, nil + return &res, nil } func (g *SessionRouter) GetProviderModelStats(ctx context.Context, modelID [32]byte, provider common.Address) (*src.IStatsStorageProviderModelStats, error) { @@ -189,6 +188,14 @@ func (g *SessionRouter) GetProviderModelStats(ctx context.Context, modelID [32]b return &res, nil } +func (g *SessionRouter) GetContractAddress() common.Address { + return g.sessionRouterAddr +} + +func (g *SessionRouter) GetABI() *abi.ABI { + return g.srABI +} + func (g *SessionRouter) getMultipleSessions(ctx context.Context, IDs [][32]byte) ([][32]byte, []src.ISessionStorageSession, error) { // todo: replace with multicall sessions := make([]src.ISessionStorageSession, len(IDs)) @@ -202,10 +209,6 @@ func (g *SessionRouter) getMultipleSessions(ctx context.Context, IDs [][32]byte) return IDs, sessions, nil } -func (g *SessionRouter) GetContractAddress() common.Address { - return g.sessionRouterAddr -} - -func (g *SessionRouter) GetABI() *abi.ABI { - return g.srABI +func (g *SessionRouter) GetTotalMORSupply(ctx context.Context, timestamp *big.Int) (*big.Int, error) { + return g.sessionRouter.TotalMORSupply(&bind.CallOpts{Context: ctx}, timestamp) } From 5382280ea94b7afcac1e3d1ebe0ae287949bdd7f Mon Sep 17 00:00:00 2001 From: Aleksandr Kukharenko Date: Wed, 30 Oct 2024 15:38:33 +0200 Subject: [PATCH 065/260] feat: open session with allowed providers --- proxy-router/.env.example | 3 ++- proxy-router/cmd/main.go | 13 +++++++++++- .../internal/blockchainapi/service.go | 21 +++++++++++++++++++ proxy-router/internal/config/config.go | 11 +++++----- 4 files changed, 41 insertions(+), 7 deletions(-) diff --git a/proxy-router/.env.example b/proxy-router/.env.example index 412f8239..ebeddc9a 100644 --- a/proxy-router/.env.example +++ b/proxy-router/.env.example @@ -8,6 +8,7 @@ WEB_ADDRESS=0.0.0.0:8082 # Change to your desired port that your Proxy-router AP WEB_PUBLIC_URL=localhost:8082 # Change to your desired port should match WEB_ADDRESS port number OPENAI_BASE_URL=http://localhost:8080/v1 # Change to your OpenAI API port for local model +PROVIDER_ALLOW_LIST=0x2736848ba8BfC010C845A3c95B567c5979E4C997,0x32c086D54b7CfddBEBF68390B0BA2fd597142E1C PROXY_ADDRESS=0.0.0.0:3333 PROXY_STORAGE_PATH=./data/ PROXY_STORE_CHAT_CONTEXT=true @@ -30,4 +31,4 @@ SYS_NET_DEV_MAX_BACKLOG=100000 SYS_RLIMIT_HARD=524288 SYS_RLIMIT_SOFT=524288 SYS_SOMAXCONN=100000 -SYS_TCP_MAX_SYN_BACKLOG=100000 \ No newline at end of file +SYS_TCP_MAX_SYN_BACKLOG=100000 diff --git a/proxy-router/cmd/main.go b/proxy-router/cmd/main.go index 99192342..d69d8b40 100644 --- a/proxy-router/cmd/main.go +++ b/proxy-router/cmd/main.go @@ -7,6 +7,7 @@ import ( "os" "os/signal" "path/filepath" + "strings" "syscall" "time" @@ -28,6 +29,7 @@ import ( "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/storages" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/system" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/walletapi" + "github.com/ethereum/go-ethereum/common" docs "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/docs" ) @@ -256,8 +258,17 @@ func start() error { log.Warnf("failed to load model config: %s, run with empty", err) } + providerAllowList := []common.Address{} + if cfg.Proxy.ProviderAllowList != "" { + addresses := strings.Split(cfg.Proxy.ProviderAllowList, ",") + for _, address := range addresses { + addr := strings.TrimSpace(address) + providerAllowList = append(providerAllowList, common.HexToAddress(addr)) + } + } + proxyRouterApi := proxyapi.NewProxySender(publicUrl, wallet, contractLogStorage, sessionStorage, log) - blockchainApi := blockchainapi.NewBlockchainService(ethClient, *cfg.Marketplace.DiamondContractAddress, *cfg.Marketplace.MorTokenAddress, cfg.Blockchain.ExplorerApiUrl, wallet, sessionStorage, proxyRouterApi, proxyLog, cfg.Blockchain.EthLegacyTx) + blockchainApi := blockchainapi.NewBlockchainService(ethClient, *cfg.Marketplace.DiamondContractAddress, *cfg.Marketplace.MorTokenAddress, cfg.Blockchain.ExplorerApiUrl, wallet, sessionStorage, proxyRouterApi, providerAllowList, proxyLog, cfg.Blockchain.EthLegacyTx) proxyRouterApi.SetSessionService(blockchainApi) aiEngine := aiengine.NewAiEngine(cfg.AIEngine.OpenAIBaseURL, cfg.AIEngine.OpenAIKey, modelConfigLoader, log) diff --git a/proxy-router/internal/blockchainapi/service.go b/proxy-router/internal/blockchainapi/service.go index efc1345b..e20cdcd5 100644 --- a/proxy-router/internal/blockchainapi/service.go +++ b/proxy-router/internal/blockchainapi/service.go @@ -36,6 +36,8 @@ type BlockchainService struct { proxyService *proxyapi.ProxyServiceSender diamonContractAddr common.Address + providerAllowList []common.Address + legacyTx bool privateKey i.PrKeyProvider log lib.ILogger @@ -73,6 +75,7 @@ func NewBlockchainService( privateKey i.PrKeyProvider, sessionStorage *storages.SessionStorage, proxyService *proxyapi.ProxyServiceSender, + providerAllowList []common.Address, log lib.ILogger, legacyTx bool, ) *BlockchainService { @@ -96,6 +99,7 @@ func NewBlockchainService( proxyService: proxyService, sessionStorage: sessionStorage, diamonContractAddr: diamonContractAddr, + providerAllowList: providerAllowList, log: log, } } @@ -703,6 +707,10 @@ func (s *BlockchainService) OpenSessionByModelId(ctx context.Context, modelID co s.log.Infof("skipping provider #%d %s", i, providerAddr.String()) continue } + if !s.isProviderAllowed(providerAddr) { + s.log.Infof("skipping not allowed provider #%d %s", i, providerAddr.String()) + continue + } s.log.Infof("trying to open session with provider #%d %s", i, bid.Bid.Provider.String()) durationCopy := new(big.Int).Set(duration) hash, err := s.tryOpenSession(ctx, bid, durationCopy, supply, budget, userAddr) @@ -761,6 +769,19 @@ func (s *BlockchainService) GetMyAddress(ctx context.Context) (common.Address, e return lib.PrivKeyBytesToAddr(prKey) } +func (s *BlockchainService) isProviderAllowed(providerAddr common.Address) bool { + if len(s.providerAllowList) == 0 { + return true + } + + for _, addr := range s.providerAllowList { + if addr.Hex() == providerAddr.Hex() { + return true + } + } + return false +} + func (s *BlockchainService) getTransactOpts(ctx context.Context, privKey lib.HexString) (*bind.TransactOpts, error) { privateKey, err := crypto.ToECDSA(privKey) if err != nil { diff --git a/proxy-router/internal/config/config.go b/proxy-router/internal/config/config.go index 02e27543..97823358 100644 --- a/proxy-router/internal/config/config.go +++ b/proxy-router/internal/config/config.go @@ -52,11 +52,12 @@ type Config struct { LevelContract string `env:"LOG_LEVEL_CONTRACT" flag:"log-level-contract" validate:"omitempty,oneof=debug info warn error dpanic panic fatal"` } Proxy struct { - Address string `env:"PROXY_ADDRESS" flag:"proxy-address" validate:"required,hostname_port"` - MaxCachedDests int `env:"PROXY_MAX_CACHED_DESTS" flag:"proxy-max-cached-dests" validate:"required,number" desc:"maximum number of cached destinations per proxy"` - StoragePath string `env:"PROXY_STORAGE_PATH" flag:"proxy-storage-path" validate:"omitempty,dirpath" desc:"enables file storage and sets the folder path"` - StoreChatContext bool `env:"PROXY_STORE_CHAT_CONTEXT" flag:"proxy-store-chat-context" desc:"store chat context in the proxy storage"` - ModelsConfigPath string `env:"MODELS_CONFIG_PATH" flag:"models-config-path" validate:"omitempty"` + Address string `env:"PROXY_ADDRESS" flag:"proxy-address" validate:"required,hostname_port"` + MaxCachedDests int `env:"PROXY_MAX_CACHED_DESTS" flag:"proxy-max-cached-dests" validate:"required,number" desc:"maximum number of cached destinations per proxy"` + StoragePath string `env:"PROXY_STORAGE_PATH" flag:"proxy-storage-path" validate:"omitempty,dirpath" desc:"enables file storage and sets the folder path"` + StoreChatContext bool `env:"PROXY_STORE_CHAT_CONTEXT" flag:"proxy-store-chat-context" desc:"store chat context in the proxy storage"` + ModelsConfigPath string `env:"MODELS_CONFIG_PATH" flag:"models-config-path" validate:"omitempty"` + ProviderAllowList string `env:"PROVIDER_ALLOW_LIST" flag:"provider-allow-list" validate:"omitempty" desc:"comma separated list of provider addresses allowed to open session with"` } System struct { Enable bool `env:"SYS_ENABLE" flag:"sys-enable" desc:"enable system level configuration adjustments"` From 0c71cc452e95b827fa79799f3532cd81a6fc5601 Mon Sep 17 00:00:00 2001 From: shev Date: Wed, 30 Oct 2024 15:05:51 +0100 Subject: [PATCH 066/260] proxy: consider provider stake in rating system --- proxy-router/internal/blockchainapi/rating.go | 20 ++++++++--- .../internal/blockchainapi/service.go | 35 +++++++++++-------- 2 files changed, 36 insertions(+), 19 deletions(-) diff --git a/proxy-router/internal/blockchainapi/rating.go b/proxy-router/internal/blockchainapi/rating.go index af3b7d62..eedf5c73 100644 --- a/proxy-router/internal/blockchainapi/rating.go +++ b/proxy-router/internal/blockchainapi/rating.go @@ -7,14 +7,15 @@ import ( "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/blockchainapi/structs" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" m "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/contracts/bindings/marketplace" + pr "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/contracts/bindings/providerregistry" s "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/contracts/bindings/sessionrouter" ) -func rateBids(bidIds [][32]byte, bids []m.IBidStorageBid, pmStats []s.IStatsStorageProviderModelStats, mStats *s.IStatsStorageModelStats, log lib.ILogger) []structs.ScoredBid { +func rateBids(bidIds [][32]byte, bids []m.IBidStorageBid, pmStats []s.IStatsStorageProviderModelStats, provider []pr.IProviderStorageProvider, mStats *s.IStatsStorageModelStats, log lib.ILogger) []structs.ScoredBid { scoredBids := make([]structs.ScoredBid, len(bids)) for i := range bids { - score := getScore(bids[i], pmStats[i], mStats) + score := getScore(bids[i], pmStats[i], provider[i], mStats) if math.IsNaN(score) || math.IsInf(score, 0) { log.Errorf("provider score is not valid %d for bid %v, pmStats %v, mStats %v", score, bidIds[i], pmStats[i], mStats) score = 0 @@ -41,20 +42,22 @@ func rateBids(bidIds [][32]byte, bids []m.IBidStorageBid, pmStats []s.IStatsStor return scoredBids } -func getScore(bid m.IBidStorageBid, pmStats s.IStatsStorageProviderModelStats, mStats *s.IStatsStorageModelStats) float64 { - tpsWeight, ttftWeight, durationWeight, successWeight := 0.27, 0.11, 0.27, 0.35 +func getScore(bid m.IBidStorageBid, pmStats s.IStatsStorageProviderModelStats, pr pr.IProviderStorageProvider, mStats *s.IStatsStorageModelStats) float64 { + tpsWeight, ttftWeight, durationWeight, successWeight, stakeWeight := 0.24, 0.08, 0.24, 0.32, 0.12 count := int64(mStats.Count) + minStake := int64(0.2 * math.Pow10(18)) // 0.2 MOR tpsScore := tpsWeight * normRange(normZIndex(pmStats.TpsScaled1000.Mean, mStats.TpsScaled1000, count), 3.0) // ttft impact is negative ttftScore := ttftWeight * normRange(-1*normZIndex(pmStats.TtftMs.Mean, mStats.TtftMs, count), 3.0) durationScore := durationWeight * normRange(normZIndex(int64(pmStats.TotalDuration), mStats.TotalDuration, count), 3.0) successScore := successWeight * math.Pow(ratioScore(pmStats.SuccessCount, pmStats.TotalCount), 2) + stakeScore := stakeWeight * normMinMax(pr.Stake.Int64(), minStake, 10*minStake) priceFloatDecimal, _ := bid.PricePerSecond.Float64() priceFloat := priceFloatDecimal / math.Pow10(18) - result := (tpsScore + ttftScore + durationScore + successScore) / priceFloat + result := (tpsScore + ttftScore + durationScore + successScore + stakeScore) / priceFloat return result } @@ -102,3 +105,10 @@ func cutRange01(val float64) float64 { } return val } + +func normMinMax(val, min, max int64) float64 { + if max == min { + return 0 + } + return float64(val-min) / float64(max-min) +} diff --git a/proxy-router/internal/blockchainapi/service.go b/proxy-router/internal/blockchainapi/service.go index bff19333..22df267b 100644 --- a/proxy-router/internal/blockchainapi/service.go +++ b/proxy-router/internal/blockchainapi/service.go @@ -13,8 +13,9 @@ import ( i "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/proxyapi" - "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/contracts/bindings/marketplace" - "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/contracts/bindings/sessionrouter" + m "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/contracts/bindings/marketplace" + pr "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/contracts/bindings/providerregistry" + sr "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/contracts/bindings/sessionrouter" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/registries" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/storages" "github.com/gin-gonic/gin" @@ -201,12 +202,12 @@ func (s *BlockchainService) GetRatedBids(ctx context.Context, modelID common.Has return nil, err } - bidIDs, bids, providerModelStats, err := s.GetAllBidsWithRating(ctx, modelID) + bidIDs, bids, providerModelStats, provider, err := s.GetAllBidsWithRating(ctx, modelID) if err != nil { return nil, err } - ratedBids := rateBids(bidIDs, bids, providerModelStats, modelStats, s.log) + ratedBids := rateBids(bidIDs, bids, providerModelStats, provider, modelStats, s.log) return ratedBids, nil } @@ -577,7 +578,7 @@ func (s *BlockchainService) GetTodaysBudget(ctx context.Context) (*big.Int, erro func (s *BlockchainService) GetSessions(ctx *gin.Context, user, provider common.Address, offset *big.Int, limit uint8) ([]*structs.Session, error) { var ( ids [][32]byte - sessions []sessionrouter.ISessionStorageSession + sessions []sr.ISessionStorageSession err error ) if (user != common.Address{}) { @@ -699,7 +700,7 @@ func (s *BlockchainService) OpenSessionByModelId(ctx context.Context, modelID co return common.Hash{}, lib.WrapError(ErrModel, err) } - bidIDs, bids, providerStats, err := s.GetAllBidsWithRating(ctx, modelID) + bidIDs, bids, providerStats, providers, err := s.GetAllBidsWithRating(ctx, modelID) if err != nil { return common.Hash{}, lib.WrapError(ErrBid, err) } @@ -713,7 +714,7 @@ func (s *BlockchainService) OpenSessionByModelId(ctx context.Context, modelID co return common.Hash{}, lib.WrapError(ErrMyAddress, err) } - scoredBids := rateBids(bidIDs, bids, providerStats, modelStats, s.log) + scoredBids := rateBids(bidIDs, bids, providerStats, providers, modelStats, s.log) for i, bid := range scoredBids { s.log.Infof("trying to open session with provider #%d %s", i, bid.Bid.Provider.String()) durationCopy := new(big.Int).Set(duration) @@ -727,21 +728,22 @@ func (s *BlockchainService) OpenSessionByModelId(ctx context.Context, modelID co return common.Hash{}, fmt.Errorf("no provider accepting session") } -func (s *BlockchainService) GetAllBidsWithRating(ctx context.Context, modelAgentID [32]byte) ([][32]byte, []marketplace.IBidStorageBid, []sessionrouter.IStatsStorageProviderModelStats, error) { +func (s *BlockchainService) GetAllBidsWithRating(ctx context.Context, modelAgentID [32]byte) ([][32]byte, []m.IBidStorageBid, []sr.IStatsStorageProviderModelStats, []pr.IProviderStorageProvider, error) { batchSize := uint8(255) offset := big.NewInt(0) - bids := make([]marketplace.IBidStorageBid, 0) + bids := make([]m.IBidStorageBid, 0) ids := make([][32]byte, 0) - providerModelStats := make([]sessionrouter.IStatsStorageProviderModelStats, 0) + providerModelStats := make([]sr.IStatsStorageProviderModelStats, 0) + providers := make([]pr.IProviderStorageProvider, 0) for { if ctx.Err() != nil { - return nil, nil, nil, ctx.Err() + return nil, nil, nil, nil, ctx.Err() } idsBatch, bidsBatch, err := s.marketplace.GetActiveBidsByModel(ctx, modelAgentID, offset, batchSize) if err != nil { - return nil, nil, nil, err + return nil, nil, nil, nil, err } ids = append(ids, idsBatch...) @@ -751,9 +753,14 @@ func (s *BlockchainService) GetAllBidsWithRating(ctx context.Context, modelAgent //TODO: replace with multicall providerModelStat, err := s.sessionRouter.GetProviderModelStats(ctx, modelAgentID, bid.Provider) if err != nil { - return nil, nil, nil, err + return nil, nil, nil, nil, err + } + provider, err := s.providerRegistry.GetProviderById(ctx, bid.Provider) + if err != nil { + return nil, nil, nil, nil, err } providerModelStats = append(providerModelStats, *providerModelStat) + providers = append(providers, *provider) } if len(bidsBatch) < int(batchSize) { @@ -763,7 +770,7 @@ func (s *BlockchainService) GetAllBidsWithRating(ctx context.Context, modelAgent offset.Add(offset, big.NewInt(int64(batchSize))) } - return ids, bids, providerModelStats, nil + return ids, bids, providerModelStats, providers, nil } func (s *BlockchainService) tryOpenSession(ctx context.Context, bid structs.ScoredBid, duration *big.Int, supply *big.Int, budget *big.Int, userAddr common.Address) (common.Hash, error) { From 8d611c4276a2ad9d76c8e5571560a0a8cb6e2e02 Mon Sep 17 00:00:00 2001 From: abs2023 Date: Wed, 30 Oct 2024 10:09:38 -0400 Subject: [PATCH 067/260] Replaced v1 contract (0x8e19...5fd) with v2 contract (0x208e..f780) --- docs/02-provider-setup.md | 2 +- docs/03-provider-offer.md | 2 +- docs/04a-consumer-setup-source.md | 8 ++++---- docs/images/overview.svg | 2 +- docs/mac-boot-strap.md | 2 +- docs/proxy-router-api-direct.md | 4 ++-- docs/source/overview.drawio | 2 +- proxy-router/.env.example | 2 +- proxy-router/.env.example.docker | 30 ++++++++++++++++++++++++++++++ proxy-router/.env.example.win | 2 +- readme.md | 4 ++-- ui-desktop/.env.example | 2 +- 12 files changed, 46 insertions(+), 16 deletions(-) create mode 100644 proxy-router/.env.example.docker diff --git a/docs/02-provider-setup.md b/docs/02-provider-setup.md index d2d1a9b5..ceb36c04 100644 --- a/docs/02-provider-setup.md +++ b/docs/02-provider-setup.md @@ -69,7 +69,7 @@ Key Values in the .env file are (there are others, but these are primarly respon - Ethereum Node Address for the Arbitrum blockchain (via Alchemy or Infura) - This websocket (wss) address is key for the proxy-router to listen and post to the blockchain - We recommend using your own private ETH Node Address for better performance (free account setup via Alchemy or Infura) -- `DIAMOND_CONTRACT_ADDRESS=0x8e19288d908b2d9F8D7C539c74C899808AC3dE45` +- `DIAMOND_CONTRACT_ADDRESS=0x208eaeD75A12C35625708140c99A614FC45bf780` - This is the key Lumerin Smart Contract (currently Sepolia Arbitrum testnet) - This is the address of the smart contract that the proxy-router will interact with to post providers, models & bids - This address will change as the smart-contract is updated and for mainnet contract interaction diff --git a/docs/03-provider-offer.md b/docs/03-provider-offer.md index ee301d2b..39440422 100644 --- a/docs/03-provider-offer.md +++ b/docs/03-provider-offer.md @@ -1,6 +1,6 @@ # Creating Provider, Model and Bid on the Blockchain: -**Diamond contract:** `0x8e19288d908b2d9F8D7C539c74C899808AC3dE45` +**Diamond contract:** `0x208eaeD75A12C35625708140c99A614FC45bf780` **Needed information:** * Provider/Owner: `0x9E26Fea97F7d644BAf62d0e20e4d4b8F836C166c` # Your ERC-20 Wallet with saMOR & saETH diff --git a/docs/04a-consumer-setup-source.md b/docs/04a-consumer-setup-source.md index 3840a6fb..9ef2cb0b 100644 --- a/docs/04a-consumer-setup-source.md +++ b/docs/04a-consumer-setup-source.md @@ -45,7 +45,7 @@ After the iniial setup, you can execute `git pull` to get the latest updates and You can also test http://localhost:8082/swagger/index.html to confirm the API is running and accessible. ``` -Loaded config: {AIEngine:{OpenAIBaseURL: OpenAIKey:} Blockchain:{EthNodeAddress: EthLegacyTx:false ExplorerApiUrl:} Environment:development Marketplace:{DiamondContractAddress:0x8e19288d908b2d9F8D7C539c74C899808AC3dE45 MorTokenAddress:0xc1664f994Fd3991f98aE944bC16B9aED673eF5fD WalletPrivateKey:} Log:{Color:true FolderPath: IsProd:false JSON:false LevelApp:info LevelConnection:info LevelProxy:info LevelScheduler:info LevelContract:} Proxy:{Address:0.0.0.0:3333 MaxCachedDests:5 StoragePath:} System:{Enable:false LocalPortRange:1024 65535 NetdevMaxBacklog:100000 RlimitHard:524288 RlimitSoft:524288 Somaxconn:100000 TcpMaxSynBacklog:100000} Web:{Address:0.0.0.0:8082 PublicUrl:localhost:8082}} +Loaded config: {AIEngine:{OpenAIBaseURL: OpenAIKey:} Blockchain:{EthNodeAddress: EthLegacyTx:false ExplorerApiUrl:} Environment:development Marketplace:{DiamondContractAddress:0x208eaeD75A12C35625708140c99A614FC45bf780 MorTokenAddress:0xc1664f994Fd3991f98aE944bC16B9aED673eF5fD WalletPrivateKey:} Log:{Color:true FolderPath: IsProd:false JSON:false LevelApp:info LevelConnection:info LevelProxy:info LevelScheduler:info LevelContract:} Proxy:{Address:0.0.0.0:3333 MaxCachedDests:5 StoragePath:} System:{Enable:false LocalPortRange:1024 65535 NetdevMaxBacklog:100000 RlimitHard:524288 RlimitSoft:524288 Somaxconn:100000 TcpMaxSynBacklog:100000} Web:{Address:0.0.0.0:8082 PublicUrl:localhost:8082}} 2024-07-23T12:58:04.560735 INFO APP proxy-router TO BE SET AT BUILD TIME 2024-07-23T12:58:08.249559 INFO APP connected to ethereum node: wss://arb-sepolia.g.alchemy.com/v2/, chainID: 421614 2024-07-23T12:58:08.278792 INFO BADGER All 0 tables opened in 0s @@ -55,14 +55,14 @@ Loaded config: {AIEngine:{OpenAIBaseURL: OpenAIKey:} Blockchain:{EthNodeAddress: 2024-07-23T12:58:08.290268 INFO proxy state: running 2024-07-23T12:58:08.290507 INFO HTTP http server is listening: 0.0.0.0:8082 2024-07-23T12:58:08.290631 INFO Wallet address: -2024-07-23T12:58:08.290841 INFO started watching events, address 0x8e19288d908b2d9F8D7C539c74C899808AC3dE45 +2024-07-23T12:58:08.290841 INFO started watching events, address 0x208eaeD75A12C35625708140c99A614FC45bf780 2024-07-23T12:58:08.290866 INFO TCP tcp server is listening: 0.0.0.0:3333 ``` ================================== ### B. Authorize the contract to spend on your behalf Either via the swagger interface http://localhost:8082/swagger/index.html#/wallet/post_blockchain_allowance or following CLI, you can authorize the contract to spend on your behalf. **This only needs to be done once per wallet, or when funds have been depleted.** -`curl -X 'POST' 'http://localhost:8082/blockchain/approve?spender=0x8e19288d908b2d9F8D7C539c74C899808AC3dE45&amount=3' -H 'accept: application/json' -d ''` # Approve the contract to spend 3 saMOR tokens on your behalf +`curl -X 'POST' 'http://localhost:8082/blockchain/approve?spender=0x208eaeD75A12C35625708140c99A614FC45bf780&amount=3' -H 'accept: application/json' -d ''` # Approve the contract to spend 3 saMOR tokens on your behalf ### C. Query the blockchain for various models / providers (Get ModelID) You can query the blockchain for various models and providers to get the ModelID. This can be done via the swagger interface http://localhost:8082/swagger/index.html#/marketplace/get_marketplace_models or following CLI: @@ -144,7 +144,7 @@ curl -X 'POST' \ ### Quick and Dirty Sample: -`curl -X 'POST' 'http://localhost:8082/blockchain/approve?spender=0x8e19288d908b2d9F8D7C539c74C899808AC3dE45&amount=3' -H 'accept: application/json' -d ''` +`curl -X 'POST' 'http://localhost:8082/blockchain/approve?spender=0x208eaeD75A12C35625708140c99A614FC45bf780&amount=3' -H 'accept: application/json' -d ''` # approves the smart contract `0x8e19...dE45` to spend 3 saMOR tokens on your behalf `curl -s -X 'GET' 'http://localhost:8082/wallet' -H 'accept: application/json' | jq .address` diff --git a/docs/images/overview.svg b/docs/images/overview.svg index 924e965d..59592e27 100644 --- a/docs/images/overview.svg +++ b/docs/images/overview.svg @@ -1,2 +1,2 @@
Provider Registration
Provider Registration
Model Registration 
Model Registration 
Bid Offer
Bid Offer
Model Registration 
Model Registration 
Bid Offer
Bid Offer
Bid Offer
Bid Offer
Bid Offer 0x1234...abc
Bid Offer 0x1234...abc
Provider Registration
Provider Registration
Model Registration 
Model Registration 
Bid Offer
Bid Offer
Model Registration 
Model Registration 
Bid Offer
Bid Offer
Bid Offer
Bid Offer
Bid Offer 0x1234...abc
Bid Offer 0x1234...abc
CONSUMER 
CONSUMER 
PROVIDER
PROVIDER
AI Compute Farm or Service
AI Compute Farm or Service
https://mycoolai.serverfarm.io:8080
Private Endpoint exposed only to the Lumerin Proxy-Router
https://mycoolai.serverfarm.io:8080...
models-config.json 
/proxy-router/.env variable
OPENAI_BASE_URL=
models-config.json &...
Lumerin Proxy-Router
Lumerin Proxy-R...
/proxy-router/.env define local address & port
PROXY_ADDRESS=
/proxy-router/.env define local address & port...
http://mycoolproxy.serverfarm.io:3333
Public Provider Endpoint that talks to the Blockchain
and Receives inbound prompts from purchased model bids
http://mycoolproxy.serverfarm.io:3333...
/proxy-router/.env variables
WEB_ADDRESS=0.0.0.0:8082
WEB_PUBLIC_URL=localhost:8082
/proxy-router/.env variables...
http://mycoolproxy.serverfarm.io:8082/swagger/index.html
Private Endpoint that talks to the proxy-router API interface (Access to Wallet Actions-keep secure!)
http://mycoolproxy.serverfarm.io:8082/swagger/index.html...
Arbitrum Ethereum
WebSocket Service Endpoint 
(wss://.......) 

Arbitrum...
/proxy-router/.env variable
ETH_NODE_ADDRESS=wss://
/proxy-router/.env variable...
Provider Registration
Provider Registration
Model Registration 
Model Registration 
Bid Offer
Bid Offer
Model Registration 
Model Registration 
Bid Offer
Bid Offer
Bid Offer
Bid Offer
Bid Offer 0x1234...abc
Bid Offer 0x1234...abc
Local LLama.cpp AI Model
Local...
https://localhost:8080
Internal Node Endpoint exposed only to the Lumerin Proxy-Router
https://localhost:8080...
Lumerin Proxy-Router
Lumerin Proxy-R...
http://localhost:3333
Typically, consumer endpoint would not recieve INBOUND proxy traffic
http://localhost:3333...
http://localhost:8082/swagger/index.html
Private Endpoint that talks to the proxy-router API interface 
(Access to Wallet Actions-keep secure!)
http://localhost:8082/swagger/index.html...
Morpheus-Lumerin GUIUI-Desktop (electron app) 
1
1
2
2
4
4
6
6
5
5
3
3
Blockchain

Blockchain -
Existing / Foundational Elements

Arbitrum BlockChain, Token Contract & Smart Contract
MOR_TOKEN_ADDRESS=0xc1664f994fd3991f98ae944bc16b9aed673ef5fd
DIAMOND_CONTRACT_ADDRESS=0x8e19288d908b2d9F8D7C539c74C899808AC3dE45
Existing / Foundational Elements...
0
0
Text is not SVG - cannot display
\ No newline at end of file +
Existing / Foundational Elements

Arbitrum BlockChain, Token Contract & Smart Contract
MOR_TOKEN_ADDRESS=0xc1664f994fd3991f98ae944bc16b9aed673ef5fd
DIAMOND_CONTRACT_ADDRESS=0x208eaeD75A12C35625708140c99A614FC45bf780
Existing / Foundational Elements...
0
0
Text is not SVG - cannot display \ No newline at end of file diff --git a/docs/mac-boot-strap.md b/docs/mac-boot-strap.md index 724cb5b9..4246f312 100644 --- a/docs/mac-boot-strap.md +++ b/docs/mac-boot-strap.md @@ -116,7 +116,7 @@ make run ```sh 2024-08-07T11:35:49.116184 INFO proxy state: running 2024-08-07T11:35:49.116534 INFO Wallet address: -2024-08-07T11:35:49.116652 INFO started watching events, address 0x8e19288d908b2d9F8D7C539c74C899808AC3dE45 +2024-08-07T11:35:49.116652 INFO started watching events, address 0x208eaeD75A12C35625708140c99A614FC45bf780 2024-08-07T11:35:49.116924 INFO HTTP http server is listening: 0.0.0.0:8082 2024-08-07T11:35:49.116962 INFO TCP tcp server is listening: 0.0.0.0:3333 ``` diff --git a/docs/proxy-router-api-direct.md b/docs/proxy-router-api-direct.md index 94c163d6..bc3659b3 100644 --- a/docs/proxy-router-api-direct.md +++ b/docs/proxy-router-api-direct.md @@ -21,7 +21,7 @@ Either via the swagger interface http://localhost:8082/swagger/index.html#/walle Approve the contract to spend 3 saMOR tokens on your behalf ```sh -curl -X 'POST' 'http://localhost:8082/blockchain/approve?spender=0x8e19288d908b2d9F8D7C539c74C899808AC3dE45&amount=3' -H 'accept: application/json' -d '' +curl -X 'POST' 'http://localhost:8082/blockchain/approve?spender=0x208eaeD75A12C35625708140c99A614FC45bf780&amount=3' -H 'accept: application/json' -d '' ``` ### C. Query the blockchain for various models / providers (Get ModelID) @@ -110,7 +110,7 @@ curl -X 'POST' \ ### Quick and Dirty Sample: -`curl -X 'POST' 'http://localhost:8082/blockchain/approve?spender=0x8e19288d908b2d9F8D7C539c74C899808AC3dE45&amount=3' -H 'accept: application/json' -d ''` +`curl -X 'POST' 'http://localhost:8082/blockchain/approve?spender=0x208eaeD75A12C35625708140c99A614FC45bf780&amount=3' -H 'accept: application/json' -d ''` # approves the smart contract `0x8e19...dE45` to spend 3 saMOR tokens on your behalf `curl -s -X 'GET' 'http://localhost:8082/wallet' -H 'accept: application/json' | jq .address` diff --git a/docs/source/overview.drawio b/docs/source/overview.drawio index 0b9111c9..67ae6f80 100644 --- a/docs/source/overview.drawio +++ b/docs/source/overview.drawio @@ -218,7 +218,7 @@ - + diff --git a/proxy-router/.env.example b/proxy-router/.env.example index 412f8239..d8d5e20f 100644 --- a/proxy-router/.env.example +++ b/proxy-router/.env.example @@ -2,7 +2,7 @@ WALLET_PRIVATE_KEY= # Private Key from your Wallet as Consumer or Provider (need ETH_NODE_ADDRESS= # Recommend using your own private ETH Node Address for better performance (via Alchemy or Infura) ETH_NODE_CHAIN_ID=421614 -DIAMOND_CONTRACT_ADDRESS=0x8e19288d908b2d9f8d7c539c74c899808ac3de45 +DIAMOND_CONTRACT_ADDRESS=0x208eaeD75A12C35625708140c99A614FC45bf780 MOR_TOKEN_ADDRESS=0xc1664f994fd3991f98ae944bc16b9aed673ef5fd WEB_ADDRESS=0.0.0.0:8082 # Change to your desired port that your Proxy-router API (Swagger should be listening on) WEB_PUBLIC_URL=localhost:8082 # Change to your desired port should match WEB_ADDRESS port number diff --git a/proxy-router/.env.example.docker b/proxy-router/.env.example.docker new file mode 100644 index 00000000..dd40c061 --- /dev/null +++ b/proxy-router/.env.example.docker @@ -0,0 +1,30 @@ +# The following 5 variables will be injected from CLI when running the docker container +# WALLET_PRIVATE_KEY= # Private Key from your Wallet as Consumer or Provider (needed for the proxy-router to sign transactions) +# ETH_NODE_ADDRESS=wss://arb-sepolia.g.alchemy.com/v2/3-pxwBaJ7vilkz1jl-fMmCvZThGxpmo2 # Recommend using your own private ETH Node Address for better performance (via Alchemy or Infura) +# DIAMOND_CONTRACT_ADDRESS=0x208eaeD75A12C35625708140c99A614FC45bf780 +# MOR_TOKEN_ADDRESS=0xc1664f994fd3991f98ae944bc16b9aed673ef5fd +# OPENAI_BASE_URL=http://localhost:8080/v1 # Change to your OpenAI API port for local model + +MODELS_CONFIG_PATH=./models_config.json +PROXY_ADDRESS=0.0.0.0:3333 +WEB_ADDRESS=0.0.0.0:8082 # Change to your desired port that your Proxy-router API (Swagger should be listening on) +WEB_PUBLIC_URL=localhost:8082 # Change to your desired port should match WEB_ADDRESS port number + +ENVIRONMENT=development +ETH_NODE_LEGACY_TX=false +EXPLORER_API_URL="https://api-sepolia.arbiscan.io/api" +LOG_COLOR=true +LOG_FOLDER_PATH= +LOG_LEVEL_APP=info +LOG_LEVEL_CONNECTION=info +LOG_LEVEL_PROXY=info +LOG_LEVEL_SCHEDULER=info +OPENAI_API_KEY= #optional +PROXY_STORAGE_PATH=./data/ +SYS_ENABLE=false +SYS_LOCAL_PORT_RANGE=1024 65535 +SYS_NET_DEV_MAX_BACKLOG=100000 +SYS_RLIMIT_HARD=524288 +SYS_RLIMIT_SOFT=524288 +SYS_SOMAXCONN=100000 +SYS_TCP_MAX_SYN_BACKLOG=100000 \ No newline at end of file diff --git a/proxy-router/.env.example.win b/proxy-router/.env.example.win index db21dc8f..ee0bd32a 100644 --- a/proxy-router/.env.example.win +++ b/proxy-router/.env.example.win @@ -2,7 +2,7 @@ WALLET_PRIVATE_KEY= # Private Key from your Wallet as Consumer or Provider (need ETH_NODE_ADDRESS= # Recommend using your own private ETH Node Address for better performance (via Alchemy or Infura) ETH_NODE_CHAIN_ID=421614 -DIAMOND_CONTRACT_ADDRESS=0x8e19288d908b2d9f8d7c539c74c899808ac3de45 +DIAMOND_CONTRACT_ADDRESS=0x208eaeD75A12C35625708140c99A614FC45bf780 MOR_TOKEN_ADDRESS=0xc1664f994fd3991f98ae944bc16b9aed673ef5fd WEB_ADDRESS=0.0.0.0:8082 # Change to your desired port that your Proxy-router API (Swagger should be listening on) WEB_PUBLIC_URL=localhost:8082 # Change to your desired port should match WEB_ADDRESS port number diff --git a/readme.md b/readme.md index a90fdf06..adffdc02 100644 --- a/readme.md +++ b/readme.md @@ -21,8 +21,8 @@ manages secure sessions between consumers and providers and routes prompts and r ## Tokens and Contract Information * Morpheus saMOR Token: `0xc1664f994fd3991f98ae944bc16b9aed673ef5fd` -* Lumerin Morpheus Smart Contract : `0x8e19288d908b2d9F8D7C539c74C899808AC3dE45` - * Interact with the Morpheus Contract: https://louper.dev/diamond/0x8e19288d908b2d9F8D7C539c74C899808AC3dE45?network=arbitrumSepolia#write +* Lumerin Morpheus Smart Contract : `0x208eaeD75A12C35625708140c99A614FC45bf780` + * Interact with the Morpheus Contract: https://louper.dev/diamond/0x208eaeD75A12C35625708140c99A614FC45bf780?network=arbitrumSepolia#write * Blockchain Explorer: `https://sepolia.arbiscan.io/` * Swagger API: `http://localhost:8082/swagger/index.html` diff --git a/ui-desktop/.env.example b/ui-desktop/.env.example index fecc58ca..3731cb64 100644 --- a/ui-desktop/.env.example +++ b/ui-desktop/.env.example @@ -3,7 +3,7 @@ CHAIN_ID=421614 DEBUG=false DEFAULT_SELLER_CURRENCY=BTC DEV_TOOLS=true -DIAMOND_ADDRESS=0x8e19288d908b2d9f8d7c539c74c899808ac3de45 +DIAMOND_ADDRESS=0x208eaeD75A12C35625708140c99A614FC45bf780 DISPLAY_NAME=Sepolia Arbitrum EXPLORER_URL=https://sepolia.arbiscan.io/tx/{{hash}} IGNORE_DEBUG_LOGS=false From 4cbe63214d809759ff449a95b6e907c4afef4f30 Mon Sep 17 00:00:00 2001 From: abs2023 Date: Wed, 30 Oct 2024 10:10:28 -0400 Subject: [PATCH 068/260] update swagger version and readme --- proxy-router/docs/swagger.json | 2 +- readme.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/proxy-router/docs/swagger.json b/proxy-router/docs/swagger.json index 84d4cdbb..4f202f7d 100644 --- a/proxy-router/docs/swagger.json +++ b/proxy-router/docs/swagger.json @@ -5,7 +5,7 @@ "title": "Morpheus Lumerin Node API", "termsOfService": "http://swagger.io/terms/", "contact": {}, - "version": "1.0" + "version": "2.0" }, "basePath": "/", "paths": { diff --git a/readme.md b/readme.md index adffdc02..f7ff04df 100644 --- a/readme.md +++ b/readme.md @@ -21,7 +21,7 @@ manages secure sessions between consumers and providers and routes prompts and r ## Tokens and Contract Information * Morpheus saMOR Token: `0xc1664f994fd3991f98ae944bc16b9aed673ef5fd` -* Lumerin Morpheus Smart Contract : `0x208eaeD75A12C35625708140c99A614FC45bf780` +* Lumerin Morpheus Smart Contract (as of 10/30/2024) : `0x208eaeD75A12C35625708140c99A614FC45bf780` * Interact with the Morpheus Contract: https://louper.dev/diamond/0x208eaeD75A12C35625708140c99A614FC45bf780?network=arbitrumSepolia#write * Blockchain Explorer: `https://sepolia.arbiscan.io/` * Swagger API: `http://localhost:8082/swagger/index.html` From 54e70a77c48789b3336fca060baa600fde5c7f5c Mon Sep 17 00:00:00 2001 From: abs2023 Date: Wed, 30 Oct 2024 11:15:17 -0400 Subject: [PATCH 069/260] updated with new v2 Testnet saMOR contract --- docs/02-provider-setup.md | 2 +- docs/03-provider-offer.md | 2 +- docs/04a-consumer-setup-source.md | 2 +- docs/images/overview.svg | 2 +- docs/source/overview.drawio | 2 +- proxy-router/.env.example | 2 +- proxy-router/.env.example.docker | 2 +- proxy-router/.env.example.win | 2 +- proxy-router/test/httphandlers_test.go | 2 +- readme.md | 2 +- ui-desktop/.env.example | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/02-provider-setup.md b/docs/02-provider-setup.md index ceb36c04..f9418aae 100644 --- a/docs/02-provider-setup.md +++ b/docs/02-provider-setup.md @@ -73,7 +73,7 @@ Key Values in the .env file are (there are others, but these are primarly respon - This is the key Lumerin Smart Contract (currently Sepolia Arbitrum testnet) - This is the address of the smart contract that the proxy-router will interact with to post providers, models & bids - This address will change as the smart-contract is updated and for mainnet contract interaction -- `MOR_TOKEN_ADDRESS=0xc1664f994fd3991f98ae944bc16b9aed673ef5fd` +- `MOR_TOKEN_ADDRESS=0x34a285a1b1c166420df5b6630132542923b5b27e` - This is the Morpheus Token (saMOR) address for Sepolia Arbitrum testnet - This address will be different for mainnet token - `WEB_ADDRESS=0.0.0.0:8082` diff --git a/docs/03-provider-offer.md b/docs/03-provider-offer.md index 39440422..359119b6 100644 --- a/docs/03-provider-offer.md +++ b/docs/03-provider-offer.md @@ -12,7 +12,7 @@ ## Steps 1. WEB3/Arbiscan/Metamask: Authorize Diamond Contract to spend on the Provider's behalf - 1. https://sepolia.arbiscan.io/address/0xc1664f994fd3991f98ae944bc16b9aed673ef5fd#writeContract + 1. https://sepolia.arbiscan.io/address/0x34a285a1b1c166420df5b6630132542923b5b27e#writeContract 1. Connect to Web3 (connect Provider wallet) 1. Click Approve 1. Spender Address = Diamond Contract diff --git a/docs/04a-consumer-setup-source.md b/docs/04a-consumer-setup-source.md index 9ef2cb0b..cf54d636 100644 --- a/docs/04a-consumer-setup-source.md +++ b/docs/04a-consumer-setup-source.md @@ -45,7 +45,7 @@ After the iniial setup, you can execute `git pull` to get the latest updates and You can also test http://localhost:8082/swagger/index.html to confirm the API is running and accessible. ``` -Loaded config: {AIEngine:{OpenAIBaseURL: OpenAIKey:} Blockchain:{EthNodeAddress: EthLegacyTx:false ExplorerApiUrl:} Environment:development Marketplace:{DiamondContractAddress:0x208eaeD75A12C35625708140c99A614FC45bf780 MorTokenAddress:0xc1664f994Fd3991f98aE944bC16B9aED673eF5fD WalletPrivateKey:} Log:{Color:true FolderPath: IsProd:false JSON:false LevelApp:info LevelConnection:info LevelProxy:info LevelScheduler:info LevelContract:} Proxy:{Address:0.0.0.0:3333 MaxCachedDests:5 StoragePath:} System:{Enable:false LocalPortRange:1024 65535 NetdevMaxBacklog:100000 RlimitHard:524288 RlimitSoft:524288 Somaxconn:100000 TcpMaxSynBacklog:100000} Web:{Address:0.0.0.0:8082 PublicUrl:localhost:8082}} +Loaded config: {AIEngine:{OpenAIBaseURL: OpenAIKey:} Blockchain:{EthNodeAddress: EthLegacyTx:false ExplorerApiUrl:} Environment:development Marketplace:{DiamondContractAddress:0x208eaeD75A12C35625708140c99A614FC45bf780 MorTokenAddress:0x34a285a1b1c166420df5b6630132542923b5b27e WalletPrivateKey:} Log:{Color:true FolderPath: IsProd:false JSON:false LevelApp:info LevelConnection:info LevelProxy:info LevelScheduler:info LevelContract:} Proxy:{Address:0.0.0.0:3333 MaxCachedDests:5 StoragePath:} System:{Enable:false LocalPortRange:1024 65535 NetdevMaxBacklog:100000 RlimitHard:524288 RlimitSoft:524288 Somaxconn:100000 TcpMaxSynBacklog:100000} Web:{Address:0.0.0.0:8082 PublicUrl:localhost:8082}} 2024-07-23T12:58:04.560735 INFO APP proxy-router TO BE SET AT BUILD TIME 2024-07-23T12:58:08.249559 INFO APP connected to ethereum node: wss://arb-sepolia.g.alchemy.com/v2/, chainID: 421614 2024-07-23T12:58:08.278792 INFO BADGER All 0 tables opened in 0s diff --git a/docs/images/overview.svg b/docs/images/overview.svg index 59592e27..bad8e791 100644 --- a/docs/images/overview.svg +++ b/docs/images/overview.svg @@ -1,2 +1,2 @@
Provider Registration
Provider Registration
Model Registration 
Model Registration 
Bid Offer
Bid Offer
Model Registration 
Model Registration 
Bid Offer
Bid Offer
Bid Offer
Bid Offer
Bid Offer 0x1234...abc
Bid Offer 0x1234...abc
Provider Registration
Provider Registration
Model Registration 
Model Registration 
Bid Offer
Bid Offer
Model Registration 
Model Registration 
Bid Offer
Bid Offer
Bid Offer
Bid Offer
Bid Offer 0x1234...abc
Bid Offer 0x1234...abc
CONSUMER 
CONSUMER 
PROVIDER
PROVIDER
AI Compute Farm or Service
AI Compute Farm or Service
https://mycoolai.serverfarm.io:8080
Private Endpoint exposed only to the Lumerin Proxy-Router
https://mycoolai.serverfarm.io:8080...
models-config.json 
/proxy-router/.env variable
OPENAI_BASE_URL=
models-config.json &...
Lumerin Proxy-Router
Lumerin Proxy-R...
/proxy-router/.env define local address & port
PROXY_ADDRESS=
/proxy-router/.env define local address & port...
http://mycoolproxy.serverfarm.io:3333
Public Provider Endpoint that talks to the Blockchain
and Receives inbound prompts from purchased model bids
http://mycoolproxy.serverfarm.io:3333...
/proxy-router/.env variables
WEB_ADDRESS=0.0.0.0:8082
WEB_PUBLIC_URL=localhost:8082
/proxy-router/.env variables...
http://mycoolproxy.serverfarm.io:8082/swagger/index.html
Private Endpoint that talks to the proxy-router API interface (Access to Wallet Actions-keep secure!)
http://mycoolproxy.serverfarm.io:8082/swagger/index.html...
Arbitrum Ethereum
WebSocket Service Endpoint 
(wss://.......) 

Arbitrum...
/proxy-router/.env variable
ETH_NODE_ADDRESS=wss://
/proxy-router/.env variable...
Provider Registration
Provider Registration
Model Registration 
Model Registration 
Bid Offer
Bid Offer
Model Registration 
Model Registration 
Bid Offer
Bid Offer
Bid Offer
Bid Offer
Bid Offer 0x1234...abc
Bid Offer 0x1234...abc
Local LLama.cpp AI Model
Local...
https://localhost:8080
Internal Node Endpoint exposed only to the Lumerin Proxy-Router
https://localhost:8080...
Lumerin Proxy-Router
Lumerin Proxy-R...
http://localhost:3333
Typically, consumer endpoint would not recieve INBOUND proxy traffic
http://localhost:3333...
http://localhost:8082/swagger/index.html
Private Endpoint that talks to the proxy-router API interface 
(Access to Wallet Actions-keep secure!)
http://localhost:8082/swagger/index.html...
Morpheus-Lumerin GUIUI-Desktop (electron app) 
1
1
2
2
4
4
6
6
5
5
3
3
Blockchain

Blockchain -
Existing / Foundational Elements

Arbitrum BlockChain, Token Contract & Smart Contract
MOR_TOKEN_ADDRESS=0xc1664f994fd3991f98ae944bc16b9aed673ef5fd
DIAMOND_CONTRACT_ADDRESS=0x208eaeD75A12C35625708140c99A614FC45bf780
Existing / Foundational Elements...
0
0
Text is not SVG - cannot display
\ No newline at end of file +
Existing / Foundational Elements

Arbitrum BlockChain, Token Contract & Smart Contract
MOR_TOKEN_ADDRESS=0x34a285a1b1c166420df5b6630132542923b5b27e
DIAMOND_CONTRACT_ADDRESS=0x208eaeD75A12C35625708140c99A614FC45bf780
Existing / Foundational Elements...
0
0
Text is not SVG - cannot display \ No newline at end of file diff --git a/docs/source/overview.drawio b/docs/source/overview.drawio index 67ae6f80..ae6aa753 100644 --- a/docs/source/overview.drawio +++ b/docs/source/overview.drawio @@ -218,7 +218,7 @@ - + diff --git a/proxy-router/.env.example b/proxy-router/.env.example index d8d5e20f..62a1f397 100644 --- a/proxy-router/.env.example +++ b/proxy-router/.env.example @@ -3,7 +3,7 @@ ETH_NODE_ADDRESS= # Recommend using your own private ETH Node Address for better ETH_NODE_CHAIN_ID=421614 DIAMOND_CONTRACT_ADDRESS=0x208eaeD75A12C35625708140c99A614FC45bf780 -MOR_TOKEN_ADDRESS=0xc1664f994fd3991f98ae944bc16b9aed673ef5fd +MOR_TOKEN_ADDRESS=0x34a285a1b1c166420df5b6630132542923b5b27e WEB_ADDRESS=0.0.0.0:8082 # Change to your desired port that your Proxy-router API (Swagger should be listening on) WEB_PUBLIC_URL=localhost:8082 # Change to your desired port should match WEB_ADDRESS port number OPENAI_BASE_URL=http://localhost:8080/v1 # Change to your OpenAI API port for local model diff --git a/proxy-router/.env.example.docker b/proxy-router/.env.example.docker index dd40c061..19c2a452 100644 --- a/proxy-router/.env.example.docker +++ b/proxy-router/.env.example.docker @@ -2,7 +2,7 @@ # WALLET_PRIVATE_KEY= # Private Key from your Wallet as Consumer or Provider (needed for the proxy-router to sign transactions) # ETH_NODE_ADDRESS=wss://arb-sepolia.g.alchemy.com/v2/3-pxwBaJ7vilkz1jl-fMmCvZThGxpmo2 # Recommend using your own private ETH Node Address for better performance (via Alchemy or Infura) # DIAMOND_CONTRACT_ADDRESS=0x208eaeD75A12C35625708140c99A614FC45bf780 -# MOR_TOKEN_ADDRESS=0xc1664f994fd3991f98ae944bc16b9aed673ef5fd +# MOR_TOKEN_ADDRESS=0x34a285a1b1c166420df5b6630132542923b5b27e # OPENAI_BASE_URL=http://localhost:8080/v1 # Change to your OpenAI API port for local model MODELS_CONFIG_PATH=./models_config.json diff --git a/proxy-router/.env.example.win b/proxy-router/.env.example.win index ee0bd32a..21bbe898 100644 --- a/proxy-router/.env.example.win +++ b/proxy-router/.env.example.win @@ -3,7 +3,7 @@ ETH_NODE_ADDRESS= # Recommend using your own private ETH Node Address for better ETH_NODE_CHAIN_ID=421614 DIAMOND_CONTRACT_ADDRESS=0x208eaeD75A12C35625708140c99A614FC45bf780 -MOR_TOKEN_ADDRESS=0xc1664f994fd3991f98ae944bc16b9aed673ef5fd +MOR_TOKEN_ADDRESS=0x34a285a1b1c166420df5b6630132542923b5b27e WEB_ADDRESS=0.0.0.0:8082 # Change to your desired port that your Proxy-router API (Swagger should be listening on) WEB_PUBLIC_URL=localhost:8082 # Change to your desired port should match WEB_ADDRESS port number OPENAI_BASE_URL=http://localhost:8080/v1 # Change to your OpenAI API port for local model diff --git a/proxy-router/test/httphandlers_test.go b/proxy-router/test/httphandlers_test.go index 03e773d2..380c15f9 100644 --- a/proxy-router/test/httphandlers_test.go +++ b/proxy-router/test/httphandlers_test.go @@ -31,7 +31,7 @@ import ( var WALLET_PRIVATE_KEY = lib.MustStringToHexString("") // Set this to a valid private key to run the test. var DIAMOND_CONTRACT_ADDR = lib.MustStringToAddress("0x70768f0ff919e194e11abfc3a2edf43213359dc1") -var MOR_CONTRACT_ADDR = lib.MustStringToAddress("0xc1664f994fd3991f98ae944bc16b9aed673ef5fd") +var MOR_CONTRACT_ADDR = lib.MustStringToAddress("0x34a285a1b1c166420df5b6630132542923b5b27e") var EXPLORER_API_URL = "https://api-sepolia.arbiscan.io/api" var ETH_LEGACY_TX = false var ETH_NODE_ADDRESS = "wss://arb-sepolia.g.alchemy.com/v2/Ken3T8xkvWUxtpKvb3yDedzF-sNsQDlZ" diff --git a/readme.md b/readme.md index f7ff04df..06e9d335 100644 --- a/readme.md +++ b/readme.md @@ -20,7 +20,7 @@ manages secure sessions between consumers and providers and routes prompts and r * Lumerin `cli` is the cli client to interact with LLMs and the Morpheus network via the proxy-router as a consumer ## Tokens and Contract Information -* Morpheus saMOR Token: `0xc1664f994fd3991f98ae944bc16b9aed673ef5fd` +* Morpheus saMOR Token (as of 10/30/2024): `0x34a285a1b1c166420df5b6630132542923b5b27e` * Lumerin Morpheus Smart Contract (as of 10/30/2024) : `0x208eaeD75A12C35625708140c99A614FC45bf780` * Interact with the Morpheus Contract: https://louper.dev/diamond/0x208eaeD75A12C35625708140c99A614FC45bf780?network=arbitrumSepolia#write * Blockchain Explorer: `https://sepolia.arbiscan.io/` diff --git a/ui-desktop/.env.example b/ui-desktop/.env.example index 3731cb64..5e9128cf 100644 --- a/ui-desktop/.env.example +++ b/ui-desktop/.env.example @@ -11,5 +11,5 @@ PROXY_WEB_DEFAULT_PORT=8082 SENTRY_DSN= SYMBOL_ETH=saETH SYMBOL_LMR=saMOR -TOKEN_ADDRESS=0xc1664f994fd3991f98ae944bc16b9aed673ef5fd +TOKEN_ADDRESS=0x34a285a1b1c166420df5b6630132542923b5b27e TRACKING_ID= From 9b56acc9497eabb5d74d4f3c974d9babf63ea7fe Mon Sep 17 00:00:00 2001 From: Aleksandr Kukharenko Date: Wed, 30 Oct 2024 17:48:41 +0200 Subject: [PATCH 070/260] refactor: spaces --- proxy-router/internal/blockchainapi/event_listener.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/proxy-router/internal/blockchainapi/event_listener.go b/proxy-router/internal/blockchainapi/event_listener.go index 6ada647f..2db6fc75 100644 --- a/proxy-router/internal/blockchainapi/event_listener.go +++ b/proxy-router/internal/blockchainapi/event_listener.go @@ -128,8 +128,8 @@ func (e *EventsListener) handleSessionOpened(event *sessionrouter.SessionRouterS if !ok { err = e.store.AddSession(&storages.Session{ Id: sessionId, - UserAddr: event.User.Hex(), - ProviderAddr: bid.Provider.Hex(), + UserAddr: event.User.Hex(), + ProviderAddr: bid.Provider.Hex(), EndsAt: session.EndsAt, ModelID: modelID, ModelName: modelConfig.ModelName, From 609b85e423844bbe256fa725dea873413b377069 Mon Sep 17 00:00:00 2001 From: Aleksandr Kukharenko Date: Wed, 30 Oct 2024 19:58:05 +0200 Subject: [PATCH 071/260] docs: add capacity policy example --- proxy-router/models-config.json.example | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/proxy-router/models-config.json.example b/proxy-router/models-config.json.example index d327a10d..c0a3e74d 100644 --- a/proxy-router/models-config.json.example +++ b/proxy-router/models-config.json.example @@ -7,6 +7,8 @@ }, "0x6a4813e866a48da528c533e706344ea853a1d3f21e37b4c8e7ffd5ff25779018": { "modelName": "llama2", - "apiType": "openai" + "apiType": "openai", + "concurrentSlots": 10, + "capacityPolicy": "idle_timeout" } } \ No newline at end of file From 5fa8aa8fb504d1945558af594f1bdc718e982fc2 Mon Sep 17 00:00:00 2001 From: abs2023 Date: Wed, 30 Oct 2024 14:28:35 -0400 Subject: [PATCH 072/260] udpate .env examples --- proxy-router/.env.example | 12 ++++++------ proxy-router/.env.example.docker | 30 ------------------------------ proxy-router/.env.example.win | 16 ++++++++++------ 3 files changed, 16 insertions(+), 42 deletions(-) delete mode 100644 proxy-router/.env.example.docker diff --git a/proxy-router/.env.example b/proxy-router/.env.example index bc0bbaca..c7dd1915 100644 --- a/proxy-router/.env.example +++ b/proxy-router/.env.example @@ -1,19 +1,19 @@ WALLET_PRIVATE_KEY= # Private Key from your Wallet as Consumer or Provider (needed for the proxy-router to sign transactions) ETH_NODE_ADDRESS= # Recommend using your own private ETH Node Address for better performance (via Alchemy or Infura) -ETH_NODE_CHAIN_ID=421614 +ETH_NODE_CHAIN_ID=421614 # Testnet Chain ID +DIAMOND_CONTRACT_ADDRESS=0x208eaeD75A12C35625708140c99A614FC45bf780 # as of 10/30/2024 +MOR_TOKEN_ADDRESS=0x34a285a1b1c166420df5b6630132542923b5b27e # as of 10/30/2024 -DIAMOND_CONTRACT_ADDRESS=0x208eaeD75A12C35625708140c99A614FC45bf780 -MOR_TOKEN_ADDRESS=0x34a285a1b1c166420df5b6630132542923b5b27e WEB_ADDRESS=0.0.0.0:8082 # Change to your desired port that your Proxy-router API (Swagger should be listening on) WEB_PUBLIC_URL=localhost:8082 # Change to your desired port should match WEB_ADDRESS port number OPENAI_BASE_URL=http://localhost:8080/v1 # Change to your OpenAI API port for local model -PROVIDER_ALLOW_LIST=0x2736848ba8BfC010C845A3c95B567c5979E4C997,0x32c086D54b7CfddBEBF68390B0BA2fd597142E1C +PROVIDER_ALLOW_LIST= #Comma separated ProviderID list eg: 0x2736848ba8BfC010C845A3c95B567c5979E4C997,0x32c086D54b7CfddBEBF68390B0BA2fd597142E1C PROXY_ADDRESS=0.0.0.0:3333 PROXY_STORAGE_PATH=./data/ PROXY_STORE_CHAT_CONTEXT=true -# MODELS_CONFIG_PATH= +MODELS_CONFIG_PATH= #optional ENVIRONMENT=development ETH_NODE_LEGACY_TX=false EXPLORER_API_URL="https://api-sepolia.arbiscan.io/api" @@ -31,4 +31,4 @@ SYS_NET_DEV_MAX_BACKLOG=100000 SYS_RLIMIT_HARD=524288 SYS_RLIMIT_SOFT=524288 SYS_SOMAXCONN=100000 -SYS_TCP_MAX_SYN_BACKLOG=100000 +SYS_TCP_MAX_SYN_BACKLOG=100000 \ No newline at end of file diff --git a/proxy-router/.env.example.docker b/proxy-router/.env.example.docker deleted file mode 100644 index 19c2a452..00000000 --- a/proxy-router/.env.example.docker +++ /dev/null @@ -1,30 +0,0 @@ -# The following 5 variables will be injected from CLI when running the docker container -# WALLET_PRIVATE_KEY= # Private Key from your Wallet as Consumer or Provider (needed for the proxy-router to sign transactions) -# ETH_NODE_ADDRESS=wss://arb-sepolia.g.alchemy.com/v2/3-pxwBaJ7vilkz1jl-fMmCvZThGxpmo2 # Recommend using your own private ETH Node Address for better performance (via Alchemy or Infura) -# DIAMOND_CONTRACT_ADDRESS=0x208eaeD75A12C35625708140c99A614FC45bf780 -# MOR_TOKEN_ADDRESS=0x34a285a1b1c166420df5b6630132542923b5b27e -# OPENAI_BASE_URL=http://localhost:8080/v1 # Change to your OpenAI API port for local model - -MODELS_CONFIG_PATH=./models_config.json -PROXY_ADDRESS=0.0.0.0:3333 -WEB_ADDRESS=0.0.0.0:8082 # Change to your desired port that your Proxy-router API (Swagger should be listening on) -WEB_PUBLIC_URL=localhost:8082 # Change to your desired port should match WEB_ADDRESS port number - -ENVIRONMENT=development -ETH_NODE_LEGACY_TX=false -EXPLORER_API_URL="https://api-sepolia.arbiscan.io/api" -LOG_COLOR=true -LOG_FOLDER_PATH= -LOG_LEVEL_APP=info -LOG_LEVEL_CONNECTION=info -LOG_LEVEL_PROXY=info -LOG_LEVEL_SCHEDULER=info -OPENAI_API_KEY= #optional -PROXY_STORAGE_PATH=./data/ -SYS_ENABLE=false -SYS_LOCAL_PORT_RANGE=1024 65535 -SYS_NET_DEV_MAX_BACKLOG=100000 -SYS_RLIMIT_HARD=524288 -SYS_RLIMIT_SOFT=524288 -SYS_SOMAXCONN=100000 -SYS_TCP_MAX_SYN_BACKLOG=100000 \ No newline at end of file diff --git a/proxy-router/.env.example.win b/proxy-router/.env.example.win index 21bbe898..73860ed1 100644 --- a/proxy-router/.env.example.win +++ b/proxy-router/.env.example.win @@ -1,14 +1,19 @@ WALLET_PRIVATE_KEY= # Private Key from your Wallet as Consumer or Provider (needed for the proxy-router to sign transactions) ETH_NODE_ADDRESS= # Recommend using your own private ETH Node Address for better performance (via Alchemy or Infura) -ETH_NODE_CHAIN_ID=421614 +ETH_NODE_CHAIN_ID=421614 # Testnet Chain ID +DIAMOND_CONTRACT_ADDRESS=0x208eaeD75A12C35625708140c99A614FC45bf780 # as of 10/30/2024 +MOR_TOKEN_ADDRESS=0x34a285a1b1c166420df5b6630132542923b5b27e # as of 10/30/2024 -DIAMOND_CONTRACT_ADDRESS=0x208eaeD75A12C35625708140c99A614FC45bf780 -MOR_TOKEN_ADDRESS=0x34a285a1b1c166420df5b6630132542923b5b27e WEB_ADDRESS=0.0.0.0:8082 # Change to your desired port that your Proxy-router API (Swagger should be listening on) WEB_PUBLIC_URL=localhost:8082 # Change to your desired port should match WEB_ADDRESS port number OPENAI_BASE_URL=http://localhost:8080/v1 # Change to your OpenAI API port for local model -# MODELS_CONFIG_PATH= +PROVIDER_ALLOW_LIST= #Comma separated ProviderID list eg: 0x2736848ba8BfC010C845A3c95B567c5979E4C997,0x32c086D54b7CfddBEBF68390B0BA2fd597142E1C +PROXY_ADDRESS=0.0.0.0:3333 +PROXY_STORAGE_PATH=.\data\ +PROXY_STORE_CHAT_CONTEXT=true + +MODELS_CONFIG_PATH= #optional ENVIRONMENT=development ETH_NODE_LEGACY_TX=false EXPLORER_API_URL="https://api-sepolia.arbiscan.io/api" @@ -19,8 +24,7 @@ LOG_LEVEL_CONNECTION=info LOG_LEVEL_PROXY=info LOG_LEVEL_SCHEDULER=info OPENAI_API_KEY= #optional -PROXY_ADDRESS=0.0.0.0:3333 -PROXY_STORAGE_PATH=.\data\ + SYS_ENABLE=false SYS_LOCAL_PORT_RANGE=1024 65535 SYS_NET_DEV_MAX_BACKLOG=100000 From 5061e4e77cd8d2f8f3ebff166efad90c0f55f73d Mon Sep 17 00:00:00 2001 From: abs2023 Date: Wed, 30 Oct 2024 15:01:59 -0400 Subject: [PATCH 073/260] update testnet smart contract to 0x10777...7b10 --- docs/02-provider-setup.md | 2 +- docs/03-provider-offer.md | 2 +- docs/04a-consumer-setup-source.md | 8 ++++---- docs/images/overview.svg | 2 +- docs/mac-boot-strap.md | 2 +- docs/proxy-router-api-direct.md | 4 ++-- docs/source/overview.drawio | 2 +- proxy-router/.env.example | 2 +- proxy-router/.env.example.win | 2 +- readme.md | 4 ++-- ui-desktop/.env.example | 2 +- 11 files changed, 16 insertions(+), 16 deletions(-) diff --git a/docs/02-provider-setup.md b/docs/02-provider-setup.md index f9418aae..936ce805 100644 --- a/docs/02-provider-setup.md +++ b/docs/02-provider-setup.md @@ -69,7 +69,7 @@ Key Values in the .env file are (there are others, but these are primarly respon - Ethereum Node Address for the Arbitrum blockchain (via Alchemy or Infura) - This websocket (wss) address is key for the proxy-router to listen and post to the blockchain - We recommend using your own private ETH Node Address for better performance (free account setup via Alchemy or Infura) -- `DIAMOND_CONTRACT_ADDRESS=0x208eaeD75A12C35625708140c99A614FC45bf780` +- `DIAMOND_CONTRACT_ADDRESS=0x10777866547c53cbd69b02c5c76369d7e24e7b10` - This is the key Lumerin Smart Contract (currently Sepolia Arbitrum testnet) - This is the address of the smart contract that the proxy-router will interact with to post providers, models & bids - This address will change as the smart-contract is updated and for mainnet contract interaction diff --git a/docs/03-provider-offer.md b/docs/03-provider-offer.md index 359119b6..36dfa58b 100644 --- a/docs/03-provider-offer.md +++ b/docs/03-provider-offer.md @@ -1,6 +1,6 @@ # Creating Provider, Model and Bid on the Blockchain: -**Diamond contract:** `0x208eaeD75A12C35625708140c99A614FC45bf780` +**Diamond contract:** `0x10777866547c53cbd69b02c5c76369d7e24e7b10` **Needed information:** * Provider/Owner: `0x9E26Fea97F7d644BAf62d0e20e4d4b8F836C166c` # Your ERC-20 Wallet with saMOR & saETH diff --git a/docs/04a-consumer-setup-source.md b/docs/04a-consumer-setup-source.md index cf54d636..08b2bc13 100644 --- a/docs/04a-consumer-setup-source.md +++ b/docs/04a-consumer-setup-source.md @@ -45,7 +45,7 @@ After the iniial setup, you can execute `git pull` to get the latest updates and You can also test http://localhost:8082/swagger/index.html to confirm the API is running and accessible. ``` -Loaded config: {AIEngine:{OpenAIBaseURL: OpenAIKey:} Blockchain:{EthNodeAddress: EthLegacyTx:false ExplorerApiUrl:} Environment:development Marketplace:{DiamondContractAddress:0x208eaeD75A12C35625708140c99A614FC45bf780 MorTokenAddress:0x34a285a1b1c166420df5b6630132542923b5b27e WalletPrivateKey:} Log:{Color:true FolderPath: IsProd:false JSON:false LevelApp:info LevelConnection:info LevelProxy:info LevelScheduler:info LevelContract:} Proxy:{Address:0.0.0.0:3333 MaxCachedDests:5 StoragePath:} System:{Enable:false LocalPortRange:1024 65535 NetdevMaxBacklog:100000 RlimitHard:524288 RlimitSoft:524288 Somaxconn:100000 TcpMaxSynBacklog:100000} Web:{Address:0.0.0.0:8082 PublicUrl:localhost:8082}} +Loaded config: {AIEngine:{OpenAIBaseURL: OpenAIKey:} Blockchain:{EthNodeAddress: EthLegacyTx:false ExplorerApiUrl:} Environment:development Marketplace:{DiamondContractAddress:0x10777866547c53cbd69b02c5c76369d7e24e7b10 MorTokenAddress:0x34a285a1b1c166420df5b6630132542923b5b27e WalletPrivateKey:} Log:{Color:true FolderPath: IsProd:false JSON:false LevelApp:info LevelConnection:info LevelProxy:info LevelScheduler:info LevelContract:} Proxy:{Address:0.0.0.0:3333 MaxCachedDests:5 StoragePath:} System:{Enable:false LocalPortRange:1024 65535 NetdevMaxBacklog:100000 RlimitHard:524288 RlimitSoft:524288 Somaxconn:100000 TcpMaxSynBacklog:100000} Web:{Address:0.0.0.0:8082 PublicUrl:localhost:8082}} 2024-07-23T12:58:04.560735 INFO APP proxy-router TO BE SET AT BUILD TIME 2024-07-23T12:58:08.249559 INFO APP connected to ethereum node: wss://arb-sepolia.g.alchemy.com/v2/, chainID: 421614 2024-07-23T12:58:08.278792 INFO BADGER All 0 tables opened in 0s @@ -55,14 +55,14 @@ Loaded config: {AIEngine:{OpenAIBaseURL: OpenAIKey:} Blockchain:{EthNodeAddress: 2024-07-23T12:58:08.290268 INFO proxy state: running 2024-07-23T12:58:08.290507 INFO HTTP http server is listening: 0.0.0.0:8082 2024-07-23T12:58:08.290631 INFO Wallet address: -2024-07-23T12:58:08.290841 INFO started watching events, address 0x208eaeD75A12C35625708140c99A614FC45bf780 +2024-07-23T12:58:08.290841 INFO started watching events, address 0x10777866547c53cbd69b02c5c76369d7e24e7b10 2024-07-23T12:58:08.290866 INFO TCP tcp server is listening: 0.0.0.0:3333 ``` ================================== ### B. Authorize the contract to spend on your behalf Either via the swagger interface http://localhost:8082/swagger/index.html#/wallet/post_blockchain_allowance or following CLI, you can authorize the contract to spend on your behalf. **This only needs to be done once per wallet, or when funds have been depleted.** -`curl -X 'POST' 'http://localhost:8082/blockchain/approve?spender=0x208eaeD75A12C35625708140c99A614FC45bf780&amount=3' -H 'accept: application/json' -d ''` # Approve the contract to spend 3 saMOR tokens on your behalf +`curl -X 'POST' 'http://localhost:8082/blockchain/approve?spender=0x10777866547c53cbd69b02c5c76369d7e24e7b10&amount=3' -H 'accept: application/json' -d ''` # Approve the contract to spend 3 saMOR tokens on your behalf ### C. Query the blockchain for various models / providers (Get ModelID) You can query the blockchain for various models and providers to get the ModelID. This can be done via the swagger interface http://localhost:8082/swagger/index.html#/marketplace/get_marketplace_models or following CLI: @@ -144,7 +144,7 @@ curl -X 'POST' \ ### Quick and Dirty Sample: -`curl -X 'POST' 'http://localhost:8082/blockchain/approve?spender=0x208eaeD75A12C35625708140c99A614FC45bf780&amount=3' -H 'accept: application/json' -d ''` +`curl -X 'POST' 'http://localhost:8082/blockchain/approve?spender=0x10777866547c53cbd69b02c5c76369d7e24e7b10&amount=3' -H 'accept: application/json' -d ''` # approves the smart contract `0x8e19...dE45` to spend 3 saMOR tokens on your behalf `curl -s -X 'GET' 'http://localhost:8082/wallet' -H 'accept: application/json' | jq .address` diff --git a/docs/images/overview.svg b/docs/images/overview.svg index bad8e791..20ee8529 100644 --- a/docs/images/overview.svg +++ b/docs/images/overview.svg @@ -1,2 +1,2 @@
Provider Registration
Provider Registration
Model Registration 
Model Registration 
Bid Offer
Bid Offer
Model Registration 
Model Registration 
Bid Offer
Bid Offer
Bid Offer
Bid Offer
Bid Offer 0x1234...abc
Bid Offer 0x1234...abc
Provider Registration
Provider Registration
Model Registration 
Model Registration 
Bid Offer
Bid Offer
Model Registration 
Model Registration 
Bid Offer
Bid Offer
Bid Offer
Bid Offer
Bid Offer 0x1234...abc
Bid Offer 0x1234...abc
CONSUMER 
CONSUMER 
PROVIDER
PROVIDER
AI Compute Farm or Service
AI Compute Farm or Service
https://mycoolai.serverfarm.io:8080
Private Endpoint exposed only to the Lumerin Proxy-Router
https://mycoolai.serverfarm.io:8080...
models-config.json 
/proxy-router/.env variable
OPENAI_BASE_URL=
models-config.json &...
Lumerin Proxy-Router
Lumerin Proxy-R...
/proxy-router/.env define local address & port
PROXY_ADDRESS=
/proxy-router/.env define local address & port...
http://mycoolproxy.serverfarm.io:3333
Public Provider Endpoint that talks to the Blockchain
and Receives inbound prompts from purchased model bids
http://mycoolproxy.serverfarm.io:3333...
/proxy-router/.env variables
WEB_ADDRESS=0.0.0.0:8082
WEB_PUBLIC_URL=localhost:8082
/proxy-router/.env variables...
http://mycoolproxy.serverfarm.io:8082/swagger/index.html
Private Endpoint that talks to the proxy-router API interface (Access to Wallet Actions-keep secure!)
http://mycoolproxy.serverfarm.io:8082/swagger/index.html...
Arbitrum Ethereum
WebSocket Service Endpoint 
(wss://.......) 

Arbitrum...
/proxy-router/.env variable
ETH_NODE_ADDRESS=wss://
/proxy-router/.env variable...
Provider Registration
Provider Registration
Model Registration 
Model Registration 
Bid Offer
Bid Offer
Model Registration 
Model Registration 
Bid Offer
Bid Offer
Bid Offer
Bid Offer
Bid Offer 0x1234...abc
Bid Offer 0x1234...abc
Local LLama.cpp AI Model
Local...
https://localhost:8080
Internal Node Endpoint exposed only to the Lumerin Proxy-Router
https://localhost:8080...
Lumerin Proxy-Router
Lumerin Proxy-R...
http://localhost:3333
Typically, consumer endpoint would not recieve INBOUND proxy traffic
http://localhost:3333...
http://localhost:8082/swagger/index.html
Private Endpoint that talks to the proxy-router API interface 
(Access to Wallet Actions-keep secure!)
http://localhost:8082/swagger/index.html...
Morpheus-Lumerin GUIUI-Desktop (electron app) 
1
1
2
2
4
4
6
6
5
5
3
3
Blockchain

Blockchain -
Existing / Foundational Elements

Arbitrum BlockChain, Token Contract & Smart Contract
MOR_TOKEN_ADDRESS=0x34a285a1b1c166420df5b6630132542923b5b27e
DIAMOND_CONTRACT_ADDRESS=0x208eaeD75A12C35625708140c99A614FC45bf780
Existing / Foundational Elements...
0
0
Text is not SVG - cannot display
\ No newline at end of file +
Existing / Foundational Elements

Arbitrum BlockChain, Token Contract & Smart Contract
MOR_TOKEN_ADDRESS=0x34a285a1b1c166420df5b6630132542923b5b27e
DIAMOND_CONTRACT_ADDRESS=0x10777866547c53cbd69b02c5c76369d7e24e7b10
Existing / Foundational Elements...
0
0
Text is not SVG - cannot display \ No newline at end of file diff --git a/docs/mac-boot-strap.md b/docs/mac-boot-strap.md index 4246f312..73b83311 100644 --- a/docs/mac-boot-strap.md +++ b/docs/mac-boot-strap.md @@ -116,7 +116,7 @@ make run ```sh 2024-08-07T11:35:49.116184 INFO proxy state: running 2024-08-07T11:35:49.116534 INFO Wallet address: -2024-08-07T11:35:49.116652 INFO started watching events, address 0x208eaeD75A12C35625708140c99A614FC45bf780 +2024-08-07T11:35:49.116652 INFO started watching events, address 0x10777866547c53cbd69b02c5c76369d7e24e7b10 2024-08-07T11:35:49.116924 INFO HTTP http server is listening: 0.0.0.0:8082 2024-08-07T11:35:49.116962 INFO TCP tcp server is listening: 0.0.0.0:3333 ``` diff --git a/docs/proxy-router-api-direct.md b/docs/proxy-router-api-direct.md index bc3659b3..70960fac 100644 --- a/docs/proxy-router-api-direct.md +++ b/docs/proxy-router-api-direct.md @@ -21,7 +21,7 @@ Either via the swagger interface http://localhost:8082/swagger/index.html#/walle Approve the contract to spend 3 saMOR tokens on your behalf ```sh -curl -X 'POST' 'http://localhost:8082/blockchain/approve?spender=0x208eaeD75A12C35625708140c99A614FC45bf780&amount=3' -H 'accept: application/json' -d '' +curl -X 'POST' 'http://localhost:8082/blockchain/approve?spender=0x10777866547c53cbd69b02c5c76369d7e24e7b10&amount=3' -H 'accept: application/json' -d '' ``` ### C. Query the blockchain for various models / providers (Get ModelID) @@ -110,7 +110,7 @@ curl -X 'POST' \ ### Quick and Dirty Sample: -`curl -X 'POST' 'http://localhost:8082/blockchain/approve?spender=0x208eaeD75A12C35625708140c99A614FC45bf780&amount=3' -H 'accept: application/json' -d ''` +`curl -X 'POST' 'http://localhost:8082/blockchain/approve?spender=0x10777866547c53cbd69b02c5c76369d7e24e7b10&amount=3' -H 'accept: application/json' -d ''` # approves the smart contract `0x8e19...dE45` to spend 3 saMOR tokens on your behalf `curl -s -X 'GET' 'http://localhost:8082/wallet' -H 'accept: application/json' | jq .address` diff --git a/docs/source/overview.drawio b/docs/source/overview.drawio index ae6aa753..f7badae8 100644 --- a/docs/source/overview.drawio +++ b/docs/source/overview.drawio @@ -218,7 +218,7 @@ - + diff --git a/proxy-router/.env.example b/proxy-router/.env.example index c7dd1915..3a479b2f 100644 --- a/proxy-router/.env.example +++ b/proxy-router/.env.example @@ -1,7 +1,7 @@ WALLET_PRIVATE_KEY= # Private Key from your Wallet as Consumer or Provider (needed for the proxy-router to sign transactions) ETH_NODE_ADDRESS= # Recommend using your own private ETH Node Address for better performance (via Alchemy or Infura) ETH_NODE_CHAIN_ID=421614 # Testnet Chain ID -DIAMOND_CONTRACT_ADDRESS=0x208eaeD75A12C35625708140c99A614FC45bf780 # as of 10/30/2024 +DIAMOND_CONTRACT_ADDRESS=0x10777866547c53cbd69b02c5c76369d7e24e7b10 # as of 10/30/2024 MOR_TOKEN_ADDRESS=0x34a285a1b1c166420df5b6630132542923b5b27e # as of 10/30/2024 WEB_ADDRESS=0.0.0.0:8082 # Change to your desired port that your Proxy-router API (Swagger should be listening on) diff --git a/proxy-router/.env.example.win b/proxy-router/.env.example.win index 73860ed1..d7d26bf5 100644 --- a/proxy-router/.env.example.win +++ b/proxy-router/.env.example.win @@ -1,7 +1,7 @@ WALLET_PRIVATE_KEY= # Private Key from your Wallet as Consumer or Provider (needed for the proxy-router to sign transactions) ETH_NODE_ADDRESS= # Recommend using your own private ETH Node Address for better performance (via Alchemy or Infura) ETH_NODE_CHAIN_ID=421614 # Testnet Chain ID -DIAMOND_CONTRACT_ADDRESS=0x208eaeD75A12C35625708140c99A614FC45bf780 # as of 10/30/2024 +DIAMOND_CONTRACT_ADDRESS=0x10777866547c53cbd69b02c5c76369d7e24e7b10 # as of 10/30/2024 MOR_TOKEN_ADDRESS=0x34a285a1b1c166420df5b6630132542923b5b27e # as of 10/30/2024 WEB_ADDRESS=0.0.0.0:8082 # Change to your desired port that your Proxy-router API (Swagger should be listening on) diff --git a/readme.md b/readme.md index 06e9d335..ff95ddcc 100644 --- a/readme.md +++ b/readme.md @@ -21,8 +21,8 @@ manages secure sessions between consumers and providers and routes prompts and r ## Tokens and Contract Information * Morpheus saMOR Token (as of 10/30/2024): `0x34a285a1b1c166420df5b6630132542923b5b27e` -* Lumerin Morpheus Smart Contract (as of 10/30/2024) : `0x208eaeD75A12C35625708140c99A614FC45bf780` - * Interact with the Morpheus Contract: https://louper.dev/diamond/0x208eaeD75A12C35625708140c99A614FC45bf780?network=arbitrumSepolia#write +* Lumerin Morpheus Smart Contract (as of 10/30/2024) : `0x10777866547c53cbd69b02c5c76369d7e24e7b10` + * Interact with the Morpheus Contract: https://louper.dev/diamond/0x10777866547c53cbd69b02c5c76369d7e24e7b10?network=arbitrumSepolia#write * Blockchain Explorer: `https://sepolia.arbiscan.io/` * Swagger API: `http://localhost:8082/swagger/index.html` diff --git a/ui-desktop/.env.example b/ui-desktop/.env.example index 5e9128cf..9fc0168d 100644 --- a/ui-desktop/.env.example +++ b/ui-desktop/.env.example @@ -3,7 +3,7 @@ CHAIN_ID=421614 DEBUG=false DEFAULT_SELLER_CURRENCY=BTC DEV_TOOLS=true -DIAMOND_ADDRESS=0x208eaeD75A12C35625708140c99A614FC45bf780 +DIAMOND_ADDRESS=0x10777866547c53cbd69b02c5c76369d7e24e7b10 DISPLAY_NAME=Sepolia Arbitrum EXPLORER_URL=https://sepolia.arbiscan.io/tx/{{hash}} IGNORE_DEBUG_LOGS=false From 57ff54a9e3311927df10e7f9c7e248a60f5b9176 Mon Sep 17 00:00:00 2001 From: shev Date: Wed, 30 Oct 2024 21:32:10 +0100 Subject: [PATCH 074/260] fix: updated abi for opensession --- proxy-router/.version | 2 +- .../bindings/marketplace/Marketplace.go | 262 +++++++++++++++--- .../bindings/modelregistry/ModelRegistry.go | 26 +- .../bindings/sessionrouter/SessionRouter.go | 158 ++++++----- .../repositories/registries/session_router.go | 2 +- 5 files changed, 330 insertions(+), 120 deletions(-) diff --git a/proxy-router/.version b/proxy-router/.version index 3effbab8..413f4908 100644 --- a/proxy-router/.version +++ b/proxy-router/.version @@ -1 +1 @@ -VERSION=0.0.3 +VERSION=0.1.0 diff --git a/proxy-router/internal/repositories/contracts/bindings/marketplace/Marketplace.go b/proxy-router/internal/repositories/contracts/bindings/marketplace/Marketplace.go index 2637178c..98bc4d3e 100644 --- a/proxy-router/internal/repositories/contracts/bindings/marketplace/Marketplace.go +++ b/proxy-router/internal/repositories/contracts/bindings/marketplace/Marketplace.go @@ -63,7 +63,7 @@ type IProviderStorageProvider struct { // MarketplaceMetaData contains all meta data concerning the Marketplace contract. var MarketplaceMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[],\"name\":\"MarketplaceActiveBidNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MarketplaceModelNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MarketplaceProviderNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account_\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"storageSlot\",\"type\":\"bytes32\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bidFee\",\"type\":\"uint256\"}],\"name\":\"MaretplaceFeeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"MarketplaceBidDeleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"MarketplaceBidPosted\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BIDS_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DIAMOND_OWNABLE_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MARKET_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MODELS_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROVIDERS_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token_\",\"type\":\"address\"}],\"name\":\"__Marketplace_init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bidId_\",\"type\":\"bytes32\"}],\"name\":\"deleteModelBid\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getActiveModels\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getActiveProviders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bidId_\",\"type\":\"bytes32\"}],\"name\":\"getBid\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"pricePerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"deletedAt\",\"type\":\"uint128\"}],\"internalType\":\"structIBidStorage.Bid\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBidFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"nonce_\",\"type\":\"uint256\"}],\"name\":\"getBidId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFeeBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"}],\"name\":\"getIsModelActive\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"}],\"name\":\"getIsProviderActive\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"}],\"name\":\"getModel\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"ipfsCID\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"isDeleted\",\"type\":\"bool\"}],\"internalType\":\"structIModelStorage.Model\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getModelActiveBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getModelBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getModelIds\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getModelMinimumStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"}],\"name\":\"getProvider\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"endpoint\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"limitPeriodEnd\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"limitPeriodEarned\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isDeleted\",\"type\":\"bool\"}],\"internalType\":\"structIProviderStorage.Provider\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getProviderActiveBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getProviderBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProviderMinimumStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"}],\"name\":\"getProviderModelId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bidId_\",\"type\":\"bytes32\"}],\"name\":\"isBidActive\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"pricePerSecond_\",\"type\":\"uint256\"}],\"name\":\"postModelBid\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"bidId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bidFee_\",\"type\":\"uint256\"}],\"name\":\"setMarketplaceBidFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + ABI: "[{\"inputs\":[],\"name\":\"MarketplaceActiveBidNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MarketplaceBidMinPricePerSecondIsInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MarketplaceBidMinPricePerSecondIsZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MarketplaceBidPricePerSecondInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MarketplaceFeeAmountIsZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MarketplaceModelNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MarketplaceProviderNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account_\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"storageSlot\",\"type\":\"bytes32\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bidFee\",\"type\":\"uint256\"}],\"name\":\"MaretplaceFeeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"MarketplaceBidDeleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bidMinPricePerSecond\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bidMaxPricePerSecond\",\"type\":\"uint256\"}],\"name\":\"MarketplaceBidMinMaxPriceUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"MarketplaceBidPosted\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BIDS_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DIAMOND_OWNABLE_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MARKET_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MODELS_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROVIDERS_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"bidMinPricePerSecond_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bidMaxPricePerSecond_\",\"type\":\"uint256\"}],\"name\":\"__Marketplace_init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bidId_\",\"type\":\"bytes32\"}],\"name\":\"deleteModelBid\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getActiveModelIds\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getActiveProviders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bidId_\",\"type\":\"bytes32\"}],\"name\":\"getBid\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"pricePerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"deletedAt\",\"type\":\"uint128\"}],\"internalType\":\"structIBidStorage.Bid\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBidFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"nonce_\",\"type\":\"uint256\"}],\"name\":\"getBidId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFeeBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"}],\"name\":\"getIsModelActive\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"}],\"name\":\"getIsProviderActive\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMinMaxBidPricePerSecond\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"}],\"name\":\"getModel\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"ipfsCID\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"isDeleted\",\"type\":\"bool\"}],\"internalType\":\"structIModelStorage.Model\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getModelActiveBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getModelBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getModelIds\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getModelMinimumStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"}],\"name\":\"getProvider\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"endpoint\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"limitPeriodEnd\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"limitPeriodEarned\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isDeleted\",\"type\":\"bool\"}],\"internalType\":\"structIProviderStorage.Provider\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getProviderActiveBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getProviderBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProviderMinimumStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"}],\"name\":\"getProviderModelId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bidId_\",\"type\":\"bytes32\"}],\"name\":\"isBidActive\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"pricePerSecond_\",\"type\":\"uint256\"}],\"name\":\"postModelBid\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"bidId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bidFee_\",\"type\":\"uint256\"}],\"name\":\"setMarketplaceBidFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bidMinPricePerSecond_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bidMaxPricePerSecond_\",\"type\":\"uint256\"}],\"name\":\"setMinMaxBidPricePerSecond\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"}],\"name\":\"withdrawFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", } // MarketplaceABI is the input ABI used to generate the binding from. @@ -367,12 +367,12 @@ func (_Marketplace *MarketplaceCallerSession) PROVIDERSSTORAGESLOT() ([32]byte, return _Marketplace.Contract.PROVIDERSSTORAGESLOT(&_Marketplace.CallOpts) } -// GetActiveModels is a free data retrieval call binding the contract method 0xac59585c. +// GetActiveModelIds is a free data retrieval call binding the contract method 0x3839d3dc. // -// Solidity: function getActiveModels(uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_Marketplace *MarketplaceCaller) GetActiveModels(opts *bind.CallOpts, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { +// Solidity: function getActiveModelIds(uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_Marketplace *MarketplaceCaller) GetActiveModelIds(opts *bind.CallOpts, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { var out []interface{} - err := _Marketplace.contract.Call(opts, &out, "getActiveModels", offset_, limit_) + err := _Marketplace.contract.Call(opts, &out, "getActiveModelIds", offset_, limit_) if err != nil { return *new([][32]byte), err @@ -384,18 +384,18 @@ func (_Marketplace *MarketplaceCaller) GetActiveModels(opts *bind.CallOpts, offs } -// GetActiveModels is a free data retrieval call binding the contract method 0xac59585c. +// GetActiveModelIds is a free data retrieval call binding the contract method 0x3839d3dc. // -// Solidity: function getActiveModels(uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_Marketplace *MarketplaceSession) GetActiveModels(offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - return _Marketplace.Contract.GetActiveModels(&_Marketplace.CallOpts, offset_, limit_) +// Solidity: function getActiveModelIds(uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_Marketplace *MarketplaceSession) GetActiveModelIds(offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _Marketplace.Contract.GetActiveModelIds(&_Marketplace.CallOpts, offset_, limit_) } -// GetActiveModels is a free data retrieval call binding the contract method 0xac59585c. +// GetActiveModelIds is a free data retrieval call binding the contract method 0x3839d3dc. // -// Solidity: function getActiveModels(uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_Marketplace *MarketplaceCallerSession) GetActiveModels(offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - return _Marketplace.Contract.GetActiveModels(&_Marketplace.CallOpts, offset_, limit_) +// Solidity: function getActiveModelIds(uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_Marketplace *MarketplaceCallerSession) GetActiveModelIds(offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _Marketplace.Contract.GetActiveModelIds(&_Marketplace.CallOpts, offset_, limit_) } // GetActiveProviders is a free data retrieval call binding the contract method 0xd5472642. @@ -615,6 +615,38 @@ func (_Marketplace *MarketplaceCallerSession) GetIsProviderActive(provider_ comm return _Marketplace.Contract.GetIsProviderActive(&_Marketplace.CallOpts, provider_) } +// GetMinMaxBidPricePerSecond is a free data retrieval call binding the contract method 0x38c8ac62. +// +// Solidity: function getMinMaxBidPricePerSecond() view returns(uint256, uint256) +func (_Marketplace *MarketplaceCaller) GetMinMaxBidPricePerSecond(opts *bind.CallOpts) (*big.Int, *big.Int, error) { + var out []interface{} + err := _Marketplace.contract.Call(opts, &out, "getMinMaxBidPricePerSecond") + + if err != nil { + return *new(*big.Int), *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + out1 := *abi.ConvertType(out[1], new(*big.Int)).(**big.Int) + + return out0, out1, err + +} + +// GetMinMaxBidPricePerSecond is a free data retrieval call binding the contract method 0x38c8ac62. +// +// Solidity: function getMinMaxBidPricePerSecond() view returns(uint256, uint256) +func (_Marketplace *MarketplaceSession) GetMinMaxBidPricePerSecond() (*big.Int, *big.Int, error) { + return _Marketplace.Contract.GetMinMaxBidPricePerSecond(&_Marketplace.CallOpts) +} + +// GetMinMaxBidPricePerSecond is a free data retrieval call binding the contract method 0x38c8ac62. +// +// Solidity: function getMinMaxBidPricePerSecond() view returns(uint256, uint256) +func (_Marketplace *MarketplaceCallerSession) GetMinMaxBidPricePerSecond() (*big.Int, *big.Int, error) { + return _Marketplace.Contract.GetMinMaxBidPricePerSecond(&_Marketplace.CallOpts) +} + // GetModel is a free data retrieval call binding the contract method 0x21e7c498. // // Solidity: function getModel(bytes32 modelId_) view returns((bytes32,uint256,uint256,address,string,string[],uint128,bool)) @@ -1018,25 +1050,25 @@ func (_Marketplace *MarketplaceCallerSession) Owner() (common.Address, error) { return _Marketplace.Contract.Owner(&_Marketplace.CallOpts) } -// MarketplaceInit is a paid mutator transaction binding the contract method 0xf6ec33fe. +// MarketplaceInit is a paid mutator transaction binding the contract method 0xf9804d0b. // -// Solidity: function __Marketplace_init(address token_) returns() -func (_Marketplace *MarketplaceTransactor) MarketplaceInit(opts *bind.TransactOpts, token_ common.Address) (*types.Transaction, error) { - return _Marketplace.contract.Transact(opts, "__Marketplace_init", token_) +// Solidity: function __Marketplace_init(address token_, uint256 bidMinPricePerSecond_, uint256 bidMaxPricePerSecond_) returns() +func (_Marketplace *MarketplaceTransactor) MarketplaceInit(opts *bind.TransactOpts, token_ common.Address, bidMinPricePerSecond_ *big.Int, bidMaxPricePerSecond_ *big.Int) (*types.Transaction, error) { + return _Marketplace.contract.Transact(opts, "__Marketplace_init", token_, bidMinPricePerSecond_, bidMaxPricePerSecond_) } -// MarketplaceInit is a paid mutator transaction binding the contract method 0xf6ec33fe. +// MarketplaceInit is a paid mutator transaction binding the contract method 0xf9804d0b. // -// Solidity: function __Marketplace_init(address token_) returns() -func (_Marketplace *MarketplaceSession) MarketplaceInit(token_ common.Address) (*types.Transaction, error) { - return _Marketplace.Contract.MarketplaceInit(&_Marketplace.TransactOpts, token_) +// Solidity: function __Marketplace_init(address token_, uint256 bidMinPricePerSecond_, uint256 bidMaxPricePerSecond_) returns() +func (_Marketplace *MarketplaceSession) MarketplaceInit(token_ common.Address, bidMinPricePerSecond_ *big.Int, bidMaxPricePerSecond_ *big.Int) (*types.Transaction, error) { + return _Marketplace.Contract.MarketplaceInit(&_Marketplace.TransactOpts, token_, bidMinPricePerSecond_, bidMaxPricePerSecond_) } -// MarketplaceInit is a paid mutator transaction binding the contract method 0xf6ec33fe. +// MarketplaceInit is a paid mutator transaction binding the contract method 0xf9804d0b. // -// Solidity: function __Marketplace_init(address token_) returns() -func (_Marketplace *MarketplaceTransactorSession) MarketplaceInit(token_ common.Address) (*types.Transaction, error) { - return _Marketplace.Contract.MarketplaceInit(&_Marketplace.TransactOpts, token_) +// Solidity: function __Marketplace_init(address token_, uint256 bidMinPricePerSecond_, uint256 bidMaxPricePerSecond_) returns() +func (_Marketplace *MarketplaceTransactorSession) MarketplaceInit(token_ common.Address, bidMinPricePerSecond_ *big.Int, bidMaxPricePerSecond_ *big.Int) (*types.Transaction, error) { + return _Marketplace.Contract.MarketplaceInit(&_Marketplace.TransactOpts, token_, bidMinPricePerSecond_, bidMaxPricePerSecond_) } // DeleteModelBid is a paid mutator transaction binding the contract method 0x8913dcaa. @@ -1102,25 +1134,46 @@ func (_Marketplace *MarketplaceTransactorSession) SetMarketplaceBidFee(bidFee_ * return _Marketplace.Contract.SetMarketplaceBidFee(&_Marketplace.TransactOpts, bidFee_) } -// Withdraw is a paid mutator transaction binding the contract method 0xf3fef3a3. +// SetMinMaxBidPricePerSecond is a paid mutator transaction binding the contract method 0xf748de1c. // -// Solidity: function withdraw(address recipient_, uint256 amount_) returns() -func (_Marketplace *MarketplaceTransactor) Withdraw(opts *bind.TransactOpts, recipient_ common.Address, amount_ *big.Int) (*types.Transaction, error) { - return _Marketplace.contract.Transact(opts, "withdraw", recipient_, amount_) +// Solidity: function setMinMaxBidPricePerSecond(uint256 bidMinPricePerSecond_, uint256 bidMaxPricePerSecond_) returns() +func (_Marketplace *MarketplaceTransactor) SetMinMaxBidPricePerSecond(opts *bind.TransactOpts, bidMinPricePerSecond_ *big.Int, bidMaxPricePerSecond_ *big.Int) (*types.Transaction, error) { + return _Marketplace.contract.Transact(opts, "setMinMaxBidPricePerSecond", bidMinPricePerSecond_, bidMaxPricePerSecond_) } -// Withdraw is a paid mutator transaction binding the contract method 0xf3fef3a3. +// SetMinMaxBidPricePerSecond is a paid mutator transaction binding the contract method 0xf748de1c. // -// Solidity: function withdraw(address recipient_, uint256 amount_) returns() -func (_Marketplace *MarketplaceSession) Withdraw(recipient_ common.Address, amount_ *big.Int) (*types.Transaction, error) { - return _Marketplace.Contract.Withdraw(&_Marketplace.TransactOpts, recipient_, amount_) +// Solidity: function setMinMaxBidPricePerSecond(uint256 bidMinPricePerSecond_, uint256 bidMaxPricePerSecond_) returns() +func (_Marketplace *MarketplaceSession) SetMinMaxBidPricePerSecond(bidMinPricePerSecond_ *big.Int, bidMaxPricePerSecond_ *big.Int) (*types.Transaction, error) { + return _Marketplace.Contract.SetMinMaxBidPricePerSecond(&_Marketplace.TransactOpts, bidMinPricePerSecond_, bidMaxPricePerSecond_) } -// Withdraw is a paid mutator transaction binding the contract method 0xf3fef3a3. +// SetMinMaxBidPricePerSecond is a paid mutator transaction binding the contract method 0xf748de1c. // -// Solidity: function withdraw(address recipient_, uint256 amount_) returns() -func (_Marketplace *MarketplaceTransactorSession) Withdraw(recipient_ common.Address, amount_ *big.Int) (*types.Transaction, error) { - return _Marketplace.Contract.Withdraw(&_Marketplace.TransactOpts, recipient_, amount_) +// Solidity: function setMinMaxBidPricePerSecond(uint256 bidMinPricePerSecond_, uint256 bidMaxPricePerSecond_) returns() +func (_Marketplace *MarketplaceTransactorSession) SetMinMaxBidPricePerSecond(bidMinPricePerSecond_ *big.Int, bidMaxPricePerSecond_ *big.Int) (*types.Transaction, error) { + return _Marketplace.Contract.SetMinMaxBidPricePerSecond(&_Marketplace.TransactOpts, bidMinPricePerSecond_, bidMaxPricePerSecond_) +} + +// WithdrawFee is a paid mutator transaction binding the contract method 0xfd9be522. +// +// Solidity: function withdrawFee(address recipient_, uint256 amount_) returns() +func (_Marketplace *MarketplaceTransactor) WithdrawFee(opts *bind.TransactOpts, recipient_ common.Address, amount_ *big.Int) (*types.Transaction, error) { + return _Marketplace.contract.Transact(opts, "withdrawFee", recipient_, amount_) +} + +// WithdrawFee is a paid mutator transaction binding the contract method 0xfd9be522. +// +// Solidity: function withdrawFee(address recipient_, uint256 amount_) returns() +func (_Marketplace *MarketplaceSession) WithdrawFee(recipient_ common.Address, amount_ *big.Int) (*types.Transaction, error) { + return _Marketplace.Contract.WithdrawFee(&_Marketplace.TransactOpts, recipient_, amount_) +} + +// WithdrawFee is a paid mutator transaction binding the contract method 0xfd9be522. +// +// Solidity: function withdrawFee(address recipient_, uint256 amount_) returns() +func (_Marketplace *MarketplaceTransactorSession) WithdrawFee(recipient_ common.Address, amount_ *big.Int) (*types.Transaction, error) { + return _Marketplace.Contract.WithdrawFee(&_Marketplace.TransactOpts, recipient_, amount_) } // MarketplaceInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the Marketplace contract. @@ -1545,6 +1598,141 @@ func (_Marketplace *MarketplaceFilterer) ParseMarketplaceBidDeleted(log types.Lo return event, nil } +// MarketplaceMarketplaceBidMinMaxPriceUpdatedIterator is returned from FilterMarketplaceBidMinMaxPriceUpdated and is used to iterate over the raw logs and unpacked data for MarketplaceBidMinMaxPriceUpdated events raised by the Marketplace contract. +type MarketplaceMarketplaceBidMinMaxPriceUpdatedIterator struct { + Event *MarketplaceMarketplaceBidMinMaxPriceUpdated // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *MarketplaceMarketplaceBidMinMaxPriceUpdatedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(MarketplaceMarketplaceBidMinMaxPriceUpdated) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(MarketplaceMarketplaceBidMinMaxPriceUpdated) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *MarketplaceMarketplaceBidMinMaxPriceUpdatedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *MarketplaceMarketplaceBidMinMaxPriceUpdatedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// MarketplaceMarketplaceBidMinMaxPriceUpdated represents a MarketplaceBidMinMaxPriceUpdated event raised by the Marketplace contract. +type MarketplaceMarketplaceBidMinMaxPriceUpdated struct { + BidMinPricePerSecond *big.Int + BidMaxPricePerSecond *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterMarketplaceBidMinMaxPriceUpdated is a free log retrieval operation binding the contract event 0x522f4bcd10bb097a0de10e63abe81fdef5ff505c11cded69df4bb84b1f87a563. +// +// Solidity: event MarketplaceBidMinMaxPriceUpdated(uint256 bidMinPricePerSecond, uint256 bidMaxPricePerSecond) +func (_Marketplace *MarketplaceFilterer) FilterMarketplaceBidMinMaxPriceUpdated(opts *bind.FilterOpts) (*MarketplaceMarketplaceBidMinMaxPriceUpdatedIterator, error) { + + logs, sub, err := _Marketplace.contract.FilterLogs(opts, "MarketplaceBidMinMaxPriceUpdated") + if err != nil { + return nil, err + } + return &MarketplaceMarketplaceBidMinMaxPriceUpdatedIterator{contract: _Marketplace.contract, event: "MarketplaceBidMinMaxPriceUpdated", logs: logs, sub: sub}, nil +} + +// WatchMarketplaceBidMinMaxPriceUpdated is a free log subscription operation binding the contract event 0x522f4bcd10bb097a0de10e63abe81fdef5ff505c11cded69df4bb84b1f87a563. +// +// Solidity: event MarketplaceBidMinMaxPriceUpdated(uint256 bidMinPricePerSecond, uint256 bidMaxPricePerSecond) +func (_Marketplace *MarketplaceFilterer) WatchMarketplaceBidMinMaxPriceUpdated(opts *bind.WatchOpts, sink chan<- *MarketplaceMarketplaceBidMinMaxPriceUpdated) (event.Subscription, error) { + + logs, sub, err := _Marketplace.contract.WatchLogs(opts, "MarketplaceBidMinMaxPriceUpdated") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(MarketplaceMarketplaceBidMinMaxPriceUpdated) + if err := _Marketplace.contract.UnpackLog(event, "MarketplaceBidMinMaxPriceUpdated", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseMarketplaceBidMinMaxPriceUpdated is a log parse operation binding the contract event 0x522f4bcd10bb097a0de10e63abe81fdef5ff505c11cded69df4bb84b1f87a563. +// +// Solidity: event MarketplaceBidMinMaxPriceUpdated(uint256 bidMinPricePerSecond, uint256 bidMaxPricePerSecond) +func (_Marketplace *MarketplaceFilterer) ParseMarketplaceBidMinMaxPriceUpdated(log types.Log) (*MarketplaceMarketplaceBidMinMaxPriceUpdated, error) { + event := new(MarketplaceMarketplaceBidMinMaxPriceUpdated) + if err := _Marketplace.contract.UnpackLog(event, "MarketplaceBidMinMaxPriceUpdated", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + // MarketplaceMarketplaceBidPostedIterator is returned from FilterMarketplaceBidPosted and is used to iterate over the raw logs and unpacked data for MarketplaceBidPosted events raised by the Marketplace contract. type MarketplaceMarketplaceBidPostedIterator struct { Event *MarketplaceMarketplaceBidPosted // Event containing the contract specifics and raw log diff --git a/proxy-router/internal/repositories/contracts/bindings/modelregistry/ModelRegistry.go b/proxy-router/internal/repositories/contracts/bindings/modelregistry/ModelRegistry.go index d5317aa0..4f6f09af 100644 --- a/proxy-router/internal/repositories/contracts/bindings/modelregistry/ModelRegistry.go +++ b/proxy-router/internal/repositories/contracts/bindings/modelregistry/ModelRegistry.go @@ -53,7 +53,7 @@ type IModelStorageModel struct { // ModelRegistryMetaData contains all meta data concerning the ModelRegistry contract. var ModelRegistryMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[],\"name\":\"ModelHasActiveBids\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ModelHasAlreadyDeregistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ModelNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAmount\",\"type\":\"uint256\"}],\"name\":\"ModelStakeTooLow\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account_\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"storageSlot\",\"type\":\"bytes32\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"}],\"name\":\"ModelDeregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"modelMinimumStake\",\"type\":\"uint256\"}],\"name\":\"ModelMinimumStakeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"}],\"name\":\"ModelRegisteredUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BIDS_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DIAMOND_OWNABLE_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MODELS_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"__ModelRegistry_init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getActiveModels\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bidId_\",\"type\":\"bytes32\"}],\"name\":\"getBid\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"pricePerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"deletedAt\",\"type\":\"uint128\"}],\"internalType\":\"structIBidStorage.Bid\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"}],\"name\":\"getIsModelActive\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"}],\"name\":\"getModel\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"ipfsCID\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"isDeleted\",\"type\":\"bool\"}],\"internalType\":\"structIModelStorage.Model\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getModelActiveBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getModelBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getModelIds\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getModelMinimumStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getProviderActiveBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getProviderBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bidId_\",\"type\":\"bytes32\"}],\"name\":\"isBidActive\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"}],\"name\":\"modelDeregister\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"ipfsCID_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"fee_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"tags_\",\"type\":\"string[]\"}],\"name\":\"modelRegister\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"modelMinimumStake_\",\"type\":\"uint256\"}],\"name\":\"modelSetMinStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", + ABI: "[{\"inputs\":[],\"name\":\"ModelHasActiveBids\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ModelHasAlreadyDeregistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ModelNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAmount\",\"type\":\"uint256\"}],\"name\":\"ModelStakeTooLow\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account_\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"storageSlot\",\"type\":\"bytes32\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"}],\"name\":\"ModelDeregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"modelMinimumStake\",\"type\":\"uint256\"}],\"name\":\"ModelMinimumStakeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"}],\"name\":\"ModelRegisteredUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BIDS_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DIAMOND_OWNABLE_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MODELS_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"__ModelRegistry_init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getActiveModelIds\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bidId_\",\"type\":\"bytes32\"}],\"name\":\"getBid\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"pricePerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"deletedAt\",\"type\":\"uint128\"}],\"internalType\":\"structIBidStorage.Bid\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"}],\"name\":\"getIsModelActive\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"}],\"name\":\"getModel\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"ipfsCID\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"isDeleted\",\"type\":\"bool\"}],\"internalType\":\"structIModelStorage.Model\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getModelActiveBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getModelBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getModelIds\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getModelMinimumStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getProviderActiveBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getProviderBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bidId_\",\"type\":\"bytes32\"}],\"name\":\"isBidActive\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"}],\"name\":\"modelDeregister\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"ipfsCID_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"fee_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"tags_\",\"type\":\"string[]\"}],\"name\":\"modelRegister\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"modelMinimumStake_\",\"type\":\"uint256\"}],\"name\":\"modelSetMinStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", } // ModelRegistryABI is the input ABI used to generate the binding from. @@ -295,12 +295,12 @@ func (_ModelRegistry *ModelRegistryCallerSession) MODELSSTORAGESLOT() ([32]byte, return _ModelRegistry.Contract.MODELSSTORAGESLOT(&_ModelRegistry.CallOpts) } -// GetActiveModels is a free data retrieval call binding the contract method 0xac59585c. +// GetActiveModelIds is a free data retrieval call binding the contract method 0x3839d3dc. // -// Solidity: function getActiveModels(uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_ModelRegistry *ModelRegistryCaller) GetActiveModels(opts *bind.CallOpts, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { +// Solidity: function getActiveModelIds(uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ModelRegistry *ModelRegistryCaller) GetActiveModelIds(opts *bind.CallOpts, offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { var out []interface{} - err := _ModelRegistry.contract.Call(opts, &out, "getActiveModels", offset_, limit_) + err := _ModelRegistry.contract.Call(opts, &out, "getActiveModelIds", offset_, limit_) if err != nil { return *new([][32]byte), err @@ -312,18 +312,18 @@ func (_ModelRegistry *ModelRegistryCaller) GetActiveModels(opts *bind.CallOpts, } -// GetActiveModels is a free data retrieval call binding the contract method 0xac59585c. +// GetActiveModelIds is a free data retrieval call binding the contract method 0x3839d3dc. // -// Solidity: function getActiveModels(uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_ModelRegistry *ModelRegistrySession) GetActiveModels(offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - return _ModelRegistry.Contract.GetActiveModels(&_ModelRegistry.CallOpts, offset_, limit_) +// Solidity: function getActiveModelIds(uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ModelRegistry *ModelRegistrySession) GetActiveModelIds(offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _ModelRegistry.Contract.GetActiveModelIds(&_ModelRegistry.CallOpts, offset_, limit_) } -// GetActiveModels is a free data retrieval call binding the contract method 0xac59585c. +// GetActiveModelIds is a free data retrieval call binding the contract method 0x3839d3dc. // -// Solidity: function getActiveModels(uint256 offset_, uint256 limit_) view returns(bytes32[]) -func (_ModelRegistry *ModelRegistryCallerSession) GetActiveModels(offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { - return _ModelRegistry.Contract.GetActiveModels(&_ModelRegistry.CallOpts, offset_, limit_) +// Solidity: function getActiveModelIds(uint256 offset_, uint256 limit_) view returns(bytes32[]) +func (_ModelRegistry *ModelRegistryCallerSession) GetActiveModelIds(offset_ *big.Int, limit_ *big.Int) ([][32]byte, error) { + return _ModelRegistry.Contract.GetActiveModelIds(&_ModelRegistry.CallOpts, offset_, limit_) } // GetBid is a free data retrieval call binding the contract method 0x91704e1e. diff --git a/proxy-router/internal/repositories/contracts/bindings/sessionrouter/SessionRouter.go b/proxy-router/internal/repositories/contracts/bindings/sessionrouter/SessionRouter.go index cf87fdd8..bb424f64 100644 --- a/proxy-router/internal/repositories/contracts/bindings/sessionrouter/SessionRouter.go +++ b/proxy-router/internal/repositories/contracts/bindings/sessionrouter/SessionRouter.go @@ -69,6 +69,7 @@ type ISessionStorageSession struct { EndsAt *big.Int ClosedAt *big.Int IsActive bool + IsDirectPaymentFromUser bool } // IStatsStorageModelStats is an auto generated low-level Go binding around an user-defined struct. @@ -96,7 +97,7 @@ type LibSDSD struct { // SessionRouterMetaData contains all meta data concerning the SessionRouter contract. var SessionRouterMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account_\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SessionAlreadyClosed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SessionApprovedForAnotherUser\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SessionBidNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SessionDuplicateApproval\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SessionNotEndedOrNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SessionPoolIndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SessionProviderNothingToClaimInThisPeriod\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SessionProviderSignatureMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SessionTooShort\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SessionUserAmountToWithdrawIsZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SesssionApproveExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SesssionApprovedForAnotherChainId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SesssionReceiptExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SesssionReceiptForAnotherChainId\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"storageSlot\",\"type\":\"bytes32\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"sessionId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"providerId\",\"type\":\"address\"}],\"name\":\"SessionClosed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"sessionId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"providerId\",\"type\":\"address\"}],\"name\":\"SessionOpened\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"}],\"name\":\"UserWithdrawn\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BIDS_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COMPUTE_POOL_INDEX\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DIAMOND_OWNABLE_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_SESSION_DURATION\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MIN_SESSION_DURATION\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROVIDERS_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SESSIONS_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SIGNATURE_TTL\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"STATS_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"fundingAccount_\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"initialReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rewardDecrease\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"payoutStart\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"decreaseInterval\",\"type\":\"uint128\"}],\"internalType\":\"structISessionStorage.Pool[]\",\"name\":\"pools_\",\"type\":\"tuple[]\"}],\"name\":\"__SessionRouter_init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"sessionId_\",\"type\":\"bytes32\"}],\"name\":\"claimForProvider\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"receiptEncoded_\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature_\",\"type\":\"bytes\"}],\"name\":\"closeSession\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getActiveProviders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bidId_\",\"type\":\"bytes32\"}],\"name\":\"getBid\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"pricePerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"deletedAt\",\"type\":\"uint128\"}],\"internalType\":\"structIBidStorage.Bid\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"timestamp_\",\"type\":\"uint128\"}],\"name\":\"getComputeBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFundingAccount\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"}],\"name\":\"getIsProviderActive\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"approval_\",\"type\":\"bytes\"}],\"name\":\"getIsProviderApprovalUsed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getModelActiveBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getModelBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getModelSessions\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"}],\"name\":\"getModelStats\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"int64\",\"name\":\"mean\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"sqSum\",\"type\":\"int64\"}],\"internalType\":\"structLibSD.SD\",\"name\":\"tpsScaled1000\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"mean\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"sqSum\",\"type\":\"int64\"}],\"internalType\":\"structLibSD.SD\",\"name\":\"ttftMs\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"mean\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"sqSum\",\"type\":\"int64\"}],\"internalType\":\"structLibSD.SD\",\"name\":\"totalDuration\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"count\",\"type\":\"uint32\"}],\"internalType\":\"structIStatsStorage.ModelStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index_\",\"type\":\"uint256\"}],\"name\":\"getPool\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"initialReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rewardDecrease\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"payoutStart\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"decreaseInterval\",\"type\":\"uint128\"}],\"internalType\":\"structISessionStorage.Pool\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPools\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"initialReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rewardDecrease\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"payoutStart\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"decreaseInterval\",\"type\":\"uint128\"}],\"internalType\":\"structISessionStorage.Pool[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"}],\"name\":\"getProvider\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"endpoint\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"limitPeriodEnd\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"limitPeriodEarned\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isDeleted\",\"type\":\"bool\"}],\"internalType\":\"structIProviderStorage.Provider\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getProviderActiveBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getProviderBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProviderMinimumStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"}],\"name\":\"getProviderModelStats\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"int64\",\"name\":\"mean\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"sqSum\",\"type\":\"int64\"}],\"internalType\":\"structLibSD.SD\",\"name\":\"tpsScaled1000\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"mean\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"sqSum\",\"type\":\"int64\"}],\"internalType\":\"structLibSD.SD\",\"name\":\"ttftMs\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"totalDuration\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"successCount\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"totalCount\",\"type\":\"uint32\"}],\"internalType\":\"structIStatsStorage.ProviderModelStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getProviderSessions\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProvidersTotalClaimed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"sessionId_\",\"type\":\"bytes32\"}],\"name\":\"getSession\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"bidId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"closeoutReceipt\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"closeoutType\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"providerWithdrawnAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"openedAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"endsAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"closedAt\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"isActive\",\"type\":\"bool\"}],\"internalType\":\"structISessionStorage.Session\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"pricePerSecond_\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"openedAt_\",\"type\":\"uint128\"}],\"name\":\"getSessionEnd\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"bidId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"sessionNonce_\",\"type\":\"uint256\"}],\"name\":\"getSessionId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"timestamp_\",\"type\":\"uint128\"}],\"name\":\"getTodaysBudget\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"providerAddr_\",\"type\":\"address\"}],\"name\":\"getTotalSessions\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getUserSessions\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user_\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"iterations_\",\"type\":\"uint8\"}],\"name\":\"getUserStakesOnHold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"available_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"hold_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bidId_\",\"type\":\"bytes32\"}],\"name\":\"isBidActive\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"approvalEncoded_\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature_\",\"type\":\"bytes\"}],\"name\":\"openSession\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index_\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"initialReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rewardDecrease\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"payoutStart\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"decreaseInterval\",\"type\":\"uint128\"}],\"internalType\":\"structISessionStorage.Pool\",\"name\":\"pool_\",\"type\":\"tuple\"}],\"name\":\"setPoolConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"timestamp_\",\"type\":\"uint128\"}],\"name\":\"stakeToStipend\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"timestamp_\",\"type\":\"uint128\"}],\"name\":\"startOfTheDay\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"stipend_\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"timestamp_\",\"type\":\"uint128\"}],\"name\":\"stipendToStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"timestamp_\",\"type\":\"uint128\"}],\"name\":\"totalMORSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"iterations_\",\"type\":\"uint8\"}],\"name\":\"withdrawUserStakes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account_\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SessionAlreadyClosed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SessionApprovedForAnotherUser\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SessionBidNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SessionDuplicateApproval\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SessionMaxDurationTooShort\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SessionNotEndedOrNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SessionPoolIndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SessionProviderNothingToClaimInThisPeriod\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SessionProviderSignatureMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SessionStakeTooLow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SessionTooShort\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SessionUserAmountToWithdrawIsZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SesssionApproveExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SesssionApprovedForAnotherChainId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SesssionReceiptExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SesssionReceiptForAnotherChainId\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"storageSlot\",\"type\":\"bytes32\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"sessionId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"providerId\",\"type\":\"address\"}],\"name\":\"SessionClosed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"sessionId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"providerId\",\"type\":\"address\"}],\"name\":\"SessionOpened\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"}],\"name\":\"UserWithdrawn\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BIDS_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COMPUTE_POOL_INDEX\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DIAMOND_OWNABLE_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MIN_SESSION_DURATION\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROVIDERS_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SESSIONS_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SIGNATURE_TTL\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"STATS_STORAGE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"fundingAccount_\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"maxSessionDuration_\",\"type\":\"uint128\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"initialReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rewardDecrease\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"payoutStart\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"decreaseInterval\",\"type\":\"uint128\"}],\"internalType\":\"structISessionStorage.Pool[]\",\"name\":\"pools_\",\"type\":\"tuple[]\"}],\"name\":\"__SessionRouter_init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"sessionId_\",\"type\":\"bytes32\"}],\"name\":\"claimForProvider\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"receiptEncoded_\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature_\",\"type\":\"bytes\"}],\"name\":\"closeSession\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getActiveProviders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bidId_\",\"type\":\"bytes32\"}],\"name\":\"getBid\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"pricePerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"deletedAt\",\"type\":\"uint128\"}],\"internalType\":\"structIBidStorage.Bid\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"timestamp_\",\"type\":\"uint128\"}],\"name\":\"getComputeBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFundingAccount\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"}],\"name\":\"getIsProviderActive\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"approval_\",\"type\":\"bytes\"}],\"name\":\"getIsProviderApprovalUsed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaxSessionDuration\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getModelActiveBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getModelBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getModelSessions\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"}],\"name\":\"getModelStats\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"int64\",\"name\":\"mean\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"sqSum\",\"type\":\"int64\"}],\"internalType\":\"structLibSD.SD\",\"name\":\"tpsScaled1000\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"mean\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"sqSum\",\"type\":\"int64\"}],\"internalType\":\"structLibSD.SD\",\"name\":\"ttftMs\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"mean\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"sqSum\",\"type\":\"int64\"}],\"internalType\":\"structLibSD.SD\",\"name\":\"totalDuration\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"count\",\"type\":\"uint32\"}],\"internalType\":\"structIStatsStorage.ModelStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index_\",\"type\":\"uint256\"}],\"name\":\"getPool\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"initialReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rewardDecrease\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"payoutStart\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"decreaseInterval\",\"type\":\"uint128\"}],\"internalType\":\"structISessionStorage.Pool\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPools\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"initialReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rewardDecrease\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"payoutStart\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"decreaseInterval\",\"type\":\"uint128\"}],\"internalType\":\"structISessionStorage.Pool[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"}],\"name\":\"getProvider\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"endpoint\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"createdAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"limitPeriodEnd\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"limitPeriodEarned\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isDeleted\",\"type\":\"bool\"}],\"internalType\":\"structIProviderStorage.Provider\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getProviderActiveBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getProviderBids\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProviderMinimumStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId_\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"}],\"name\":\"getProviderModelStats\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"int64\",\"name\":\"mean\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"sqSum\",\"type\":\"int64\"}],\"internalType\":\"structLibSD.SD\",\"name\":\"tpsScaled1000\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"mean\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"sqSum\",\"type\":\"int64\"}],\"internalType\":\"structLibSD.SD\",\"name\":\"ttftMs\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"totalDuration\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"successCount\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"totalCount\",\"type\":\"uint32\"}],\"internalType\":\"structIStatsStorage.ProviderModelStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getProviderSessions\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProvidersTotalClaimed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"sessionId_\",\"type\":\"bytes32\"}],\"name\":\"getSession\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"bidId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"closeoutReceipt\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"closeoutType\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"providerWithdrawnAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"openedAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"endsAt\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"closedAt\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"isActive\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isDirectPaymentFromUser\",\"type\":\"bool\"}],\"internalType\":\"structISessionStorage.Session\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"pricePerSecond_\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"openedAt_\",\"type\":\"uint128\"}],\"name\":\"getSessionEnd\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"bidId_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"sessionNonce_\",\"type\":\"uint256\"}],\"name\":\"getSessionId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"timestamp_\",\"type\":\"uint128\"}],\"name\":\"getTodaysBudget\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider_\",\"type\":\"address\"}],\"name\":\"getTotalSessions\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"getUserSessions\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user_\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"iterations_\",\"type\":\"uint8\"}],\"name\":\"getUserStakesOnHold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"available_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"hold_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bidId_\",\"type\":\"bytes32\"}],\"name\":\"isBidActive\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isDirectPaymentFromUser_\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"approvalEncoded_\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature_\",\"type\":\"bytes\"}],\"name\":\"openSession\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"maxSessionDuration_\",\"type\":\"uint128\"}],\"name\":\"setMaxSessionDuration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index_\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"initialReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rewardDecrease\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"payoutStart\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"decreaseInterval\",\"type\":\"uint128\"}],\"internalType\":\"structISessionStorage.Pool\",\"name\":\"pool_\",\"type\":\"tuple\"}],\"name\":\"setPoolConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"timestamp_\",\"type\":\"uint128\"}],\"name\":\"stakeToStipend\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"timestamp_\",\"type\":\"uint128\"}],\"name\":\"startOfTheDay\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"stipend_\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"timestamp_\",\"type\":\"uint128\"}],\"name\":\"stipendToStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"timestamp_\",\"type\":\"uint128\"}],\"name\":\"totalMORSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"iterations_\",\"type\":\"uint8\"}],\"name\":\"withdrawUserStakes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", } // SessionRouterABI is the input ABI used to generate the binding from. @@ -338,37 +339,6 @@ func (_SessionRouter *SessionRouterCallerSession) DIAMONDOWNABLESTORAGESLOT() ([ return _SessionRouter.Contract.DIAMONDOWNABLESTORAGESLOT(&_SessionRouter.CallOpts) } -// MAXSESSIONDURATION is a free data retrieval call binding the contract method 0xcd8cd4ad. -// -// Solidity: function MAX_SESSION_DURATION() view returns(uint32) -func (_SessionRouter *SessionRouterCaller) MAXSESSIONDURATION(opts *bind.CallOpts) (uint32, error) { - var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "MAX_SESSION_DURATION") - - if err != nil { - return *new(uint32), err - } - - out0 := *abi.ConvertType(out[0], new(uint32)).(*uint32) - - return out0, err - -} - -// MAXSESSIONDURATION is a free data retrieval call binding the contract method 0xcd8cd4ad. -// -// Solidity: function MAX_SESSION_DURATION() view returns(uint32) -func (_SessionRouter *SessionRouterSession) MAXSESSIONDURATION() (uint32, error) { - return _SessionRouter.Contract.MAXSESSIONDURATION(&_SessionRouter.CallOpts) -} - -// MAXSESSIONDURATION is a free data retrieval call binding the contract method 0xcd8cd4ad. -// -// Solidity: function MAX_SESSION_DURATION() view returns(uint32) -func (_SessionRouter *SessionRouterCallerSession) MAXSESSIONDURATION() (uint32, error) { - return _SessionRouter.Contract.MAXSESSIONDURATION(&_SessionRouter.CallOpts) -} - // MINSESSIONDURATION is a free data retrieval call binding the contract method 0x7d980286. // // Solidity: function MIN_SESSION_DURATION() view returns(uint32) @@ -710,6 +680,37 @@ func (_SessionRouter *SessionRouterCallerSession) GetIsProviderApprovalUsed(appr return _SessionRouter.Contract.GetIsProviderApprovalUsed(&_SessionRouter.CallOpts, approval_) } +// GetMaxSessionDuration is a free data retrieval call binding the contract method 0xa9756858. +// +// Solidity: function getMaxSessionDuration() view returns(uint128) +func (_SessionRouter *SessionRouterCaller) GetMaxSessionDuration(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _SessionRouter.contract.Call(opts, &out, "getMaxSessionDuration") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetMaxSessionDuration is a free data retrieval call binding the contract method 0xa9756858. +// +// Solidity: function getMaxSessionDuration() view returns(uint128) +func (_SessionRouter *SessionRouterSession) GetMaxSessionDuration() (*big.Int, error) { + return _SessionRouter.Contract.GetMaxSessionDuration(&_SessionRouter.CallOpts) +} + +// GetMaxSessionDuration is a free data retrieval call binding the contract method 0xa9756858. +// +// Solidity: function getMaxSessionDuration() view returns(uint128) +func (_SessionRouter *SessionRouterCallerSession) GetMaxSessionDuration() (*big.Int, error) { + return _SessionRouter.Contract.GetMaxSessionDuration(&_SessionRouter.CallOpts) +} + // GetModelActiveBids is a free data retrieval call binding the contract method 0x8a683b6e. // // Solidity: function getModelActiveBids(bytes32 modelId_, uint256 offset_, uint256 limit_) view returns(bytes32[]) @@ -1115,7 +1116,7 @@ func (_SessionRouter *SessionRouterCallerSession) GetProvidersTotalClaimed() (*b // GetSession is a free data retrieval call binding the contract method 0x39b240bd. // -// Solidity: function getSession(bytes32 sessionId_) view returns((address,bytes32,uint256,bytes,uint256,uint256,uint128,uint128,uint128,bool)) +// Solidity: function getSession(bytes32 sessionId_) view returns((address,bytes32,uint256,bytes,uint256,uint256,uint128,uint128,uint128,bool,bool)) func (_SessionRouter *SessionRouterCaller) GetSession(opts *bind.CallOpts, sessionId_ [32]byte) (ISessionStorageSession, error) { var out []interface{} err := _SessionRouter.contract.Call(opts, &out, "getSession", sessionId_) @@ -1132,14 +1133,14 @@ func (_SessionRouter *SessionRouterCaller) GetSession(opts *bind.CallOpts, sessi // GetSession is a free data retrieval call binding the contract method 0x39b240bd. // -// Solidity: function getSession(bytes32 sessionId_) view returns((address,bytes32,uint256,bytes,uint256,uint256,uint128,uint128,uint128,bool)) +// Solidity: function getSession(bytes32 sessionId_) view returns((address,bytes32,uint256,bytes,uint256,uint256,uint128,uint128,uint128,bool,bool)) func (_SessionRouter *SessionRouterSession) GetSession(sessionId_ [32]byte) (ISessionStorageSession, error) { return _SessionRouter.Contract.GetSession(&_SessionRouter.CallOpts, sessionId_) } // GetSession is a free data retrieval call binding the contract method 0x39b240bd. // -// Solidity: function getSession(bytes32 sessionId_) view returns((address,bytes32,uint256,bytes,uint256,uint256,uint128,uint128,uint128,bool)) +// Solidity: function getSession(bytes32 sessionId_) view returns((address,bytes32,uint256,bytes,uint256,uint256,uint128,uint128,uint128,bool,bool)) func (_SessionRouter *SessionRouterCallerSession) GetSession(sessionId_ [32]byte) (ISessionStorageSession, error) { return _SessionRouter.Contract.GetSession(&_SessionRouter.CallOpts, sessionId_) } @@ -1270,10 +1271,10 @@ func (_SessionRouter *SessionRouterCallerSession) GetToken() (common.Address, er // GetTotalSessions is a free data retrieval call binding the contract method 0x76400935. // -// Solidity: function getTotalSessions(address providerAddr_) view returns(uint256) -func (_SessionRouter *SessionRouterCaller) GetTotalSessions(opts *bind.CallOpts, providerAddr_ common.Address) (*big.Int, error) { +// Solidity: function getTotalSessions(address provider_) view returns(uint256) +func (_SessionRouter *SessionRouterCaller) GetTotalSessions(opts *bind.CallOpts, provider_ common.Address) (*big.Int, error) { var out []interface{} - err := _SessionRouter.contract.Call(opts, &out, "getTotalSessions", providerAddr_) + err := _SessionRouter.contract.Call(opts, &out, "getTotalSessions", provider_) if err != nil { return *new(*big.Int), err @@ -1287,16 +1288,16 @@ func (_SessionRouter *SessionRouterCaller) GetTotalSessions(opts *bind.CallOpts, // GetTotalSessions is a free data retrieval call binding the contract method 0x76400935. // -// Solidity: function getTotalSessions(address providerAddr_) view returns(uint256) -func (_SessionRouter *SessionRouterSession) GetTotalSessions(providerAddr_ common.Address) (*big.Int, error) { - return _SessionRouter.Contract.GetTotalSessions(&_SessionRouter.CallOpts, providerAddr_) +// Solidity: function getTotalSessions(address provider_) view returns(uint256) +func (_SessionRouter *SessionRouterSession) GetTotalSessions(provider_ common.Address) (*big.Int, error) { + return _SessionRouter.Contract.GetTotalSessions(&_SessionRouter.CallOpts, provider_) } // GetTotalSessions is a free data retrieval call binding the contract method 0x76400935. // -// Solidity: function getTotalSessions(address providerAddr_) view returns(uint256) -func (_SessionRouter *SessionRouterCallerSession) GetTotalSessions(providerAddr_ common.Address) (*big.Int, error) { - return _SessionRouter.Contract.GetTotalSessions(&_SessionRouter.CallOpts, providerAddr_) +// Solidity: function getTotalSessions(address provider_) view returns(uint256) +func (_SessionRouter *SessionRouterCallerSession) GetTotalSessions(provider_ common.Address) (*big.Int, error) { + return _SessionRouter.Contract.GetTotalSessions(&_SessionRouter.CallOpts, provider_) } // GetUserSessions is a free data retrieval call binding the contract method 0xeb7764bb. @@ -1561,25 +1562,25 @@ func (_SessionRouter *SessionRouterCallerSession) TotalMORSupply(timestamp_ *big return _SessionRouter.Contract.TotalMORSupply(&_SessionRouter.CallOpts, timestamp_) } -// SessionRouterInit is a paid mutator transaction binding the contract method 0x44ceb8e0. +// SessionRouterInit is a paid mutator transaction binding the contract method 0xf8ba944b. // -// Solidity: function __SessionRouter_init(address fundingAccount_, (uint256,uint256,uint128,uint128)[] pools_) returns() -func (_SessionRouter *SessionRouterTransactor) SessionRouterInit(opts *bind.TransactOpts, fundingAccount_ common.Address, pools_ []ISessionStoragePool) (*types.Transaction, error) { - return _SessionRouter.contract.Transact(opts, "__SessionRouter_init", fundingAccount_, pools_) +// Solidity: function __SessionRouter_init(address fundingAccount_, uint128 maxSessionDuration_, (uint256,uint256,uint128,uint128)[] pools_) returns() +func (_SessionRouter *SessionRouterTransactor) SessionRouterInit(opts *bind.TransactOpts, fundingAccount_ common.Address, maxSessionDuration_ *big.Int, pools_ []ISessionStoragePool) (*types.Transaction, error) { + return _SessionRouter.contract.Transact(opts, "__SessionRouter_init", fundingAccount_, maxSessionDuration_, pools_) } -// SessionRouterInit is a paid mutator transaction binding the contract method 0x44ceb8e0. +// SessionRouterInit is a paid mutator transaction binding the contract method 0xf8ba944b. // -// Solidity: function __SessionRouter_init(address fundingAccount_, (uint256,uint256,uint128,uint128)[] pools_) returns() -func (_SessionRouter *SessionRouterSession) SessionRouterInit(fundingAccount_ common.Address, pools_ []ISessionStoragePool) (*types.Transaction, error) { - return _SessionRouter.Contract.SessionRouterInit(&_SessionRouter.TransactOpts, fundingAccount_, pools_) +// Solidity: function __SessionRouter_init(address fundingAccount_, uint128 maxSessionDuration_, (uint256,uint256,uint128,uint128)[] pools_) returns() +func (_SessionRouter *SessionRouterSession) SessionRouterInit(fundingAccount_ common.Address, maxSessionDuration_ *big.Int, pools_ []ISessionStoragePool) (*types.Transaction, error) { + return _SessionRouter.Contract.SessionRouterInit(&_SessionRouter.TransactOpts, fundingAccount_, maxSessionDuration_, pools_) } -// SessionRouterInit is a paid mutator transaction binding the contract method 0x44ceb8e0. +// SessionRouterInit is a paid mutator transaction binding the contract method 0xf8ba944b. // -// Solidity: function __SessionRouter_init(address fundingAccount_, (uint256,uint256,uint128,uint128)[] pools_) returns() -func (_SessionRouter *SessionRouterTransactorSession) SessionRouterInit(fundingAccount_ common.Address, pools_ []ISessionStoragePool) (*types.Transaction, error) { - return _SessionRouter.Contract.SessionRouterInit(&_SessionRouter.TransactOpts, fundingAccount_, pools_) +// Solidity: function __SessionRouter_init(address fundingAccount_, uint128 maxSessionDuration_, (uint256,uint256,uint128,uint128)[] pools_) returns() +func (_SessionRouter *SessionRouterTransactorSession) SessionRouterInit(fundingAccount_ common.Address, maxSessionDuration_ *big.Int, pools_ []ISessionStoragePool) (*types.Transaction, error) { + return _SessionRouter.Contract.SessionRouterInit(&_SessionRouter.TransactOpts, fundingAccount_, maxSessionDuration_, pools_) } // ClaimForProvider is a paid mutator transaction binding the contract method 0xf2e96e8e. @@ -1624,25 +1625,46 @@ func (_SessionRouter *SessionRouterTransactorSession) CloseSession(receiptEncode return _SessionRouter.Contract.CloseSession(&_SessionRouter.TransactOpts, receiptEncoded_, signature_) } -// OpenSession is a paid mutator transaction binding the contract method 0x1f71815e. +// OpenSession is a paid mutator transaction binding the contract method 0x1c3744c3. +// +// Solidity: function openSession(uint256 amount_, bool isDirectPaymentFromUser_, bytes approvalEncoded_, bytes signature_) returns(bytes32) +func (_SessionRouter *SessionRouterTransactor) OpenSession(opts *bind.TransactOpts, amount_ *big.Int, isDirectPaymentFromUser_ bool, approvalEncoded_ []byte, signature_ []byte) (*types.Transaction, error) { + return _SessionRouter.contract.Transact(opts, "openSession", amount_, isDirectPaymentFromUser_, approvalEncoded_, signature_) +} + +// OpenSession is a paid mutator transaction binding the contract method 0x1c3744c3. +// +// Solidity: function openSession(uint256 amount_, bool isDirectPaymentFromUser_, bytes approvalEncoded_, bytes signature_) returns(bytes32) +func (_SessionRouter *SessionRouterSession) OpenSession(amount_ *big.Int, isDirectPaymentFromUser_ bool, approvalEncoded_ []byte, signature_ []byte) (*types.Transaction, error) { + return _SessionRouter.Contract.OpenSession(&_SessionRouter.TransactOpts, amount_, isDirectPaymentFromUser_, approvalEncoded_, signature_) +} + +// OpenSession is a paid mutator transaction binding the contract method 0x1c3744c3. +// +// Solidity: function openSession(uint256 amount_, bool isDirectPaymentFromUser_, bytes approvalEncoded_, bytes signature_) returns(bytes32) +func (_SessionRouter *SessionRouterTransactorSession) OpenSession(amount_ *big.Int, isDirectPaymentFromUser_ bool, approvalEncoded_ []byte, signature_ []byte) (*types.Transaction, error) { + return _SessionRouter.Contract.OpenSession(&_SessionRouter.TransactOpts, amount_, isDirectPaymentFromUser_, approvalEncoded_, signature_) +} + +// SetMaxSessionDuration is a paid mutator transaction binding the contract method 0xe8664577. // -// Solidity: function openSession(uint256 amount_, bytes approvalEncoded_, bytes signature_) returns(bytes32) -func (_SessionRouter *SessionRouterTransactor) OpenSession(opts *bind.TransactOpts, amount_ *big.Int, approvalEncoded_ []byte, signature_ []byte) (*types.Transaction, error) { - return _SessionRouter.contract.Transact(opts, "openSession", amount_, approvalEncoded_, signature_) +// Solidity: function setMaxSessionDuration(uint128 maxSessionDuration_) returns() +func (_SessionRouter *SessionRouterTransactor) SetMaxSessionDuration(opts *bind.TransactOpts, maxSessionDuration_ *big.Int) (*types.Transaction, error) { + return _SessionRouter.contract.Transact(opts, "setMaxSessionDuration", maxSessionDuration_) } -// OpenSession is a paid mutator transaction binding the contract method 0x1f71815e. +// SetMaxSessionDuration is a paid mutator transaction binding the contract method 0xe8664577. // -// Solidity: function openSession(uint256 amount_, bytes approvalEncoded_, bytes signature_) returns(bytes32) -func (_SessionRouter *SessionRouterSession) OpenSession(amount_ *big.Int, approvalEncoded_ []byte, signature_ []byte) (*types.Transaction, error) { - return _SessionRouter.Contract.OpenSession(&_SessionRouter.TransactOpts, amount_, approvalEncoded_, signature_) +// Solidity: function setMaxSessionDuration(uint128 maxSessionDuration_) returns() +func (_SessionRouter *SessionRouterSession) SetMaxSessionDuration(maxSessionDuration_ *big.Int) (*types.Transaction, error) { + return _SessionRouter.Contract.SetMaxSessionDuration(&_SessionRouter.TransactOpts, maxSessionDuration_) } -// OpenSession is a paid mutator transaction binding the contract method 0x1f71815e. +// SetMaxSessionDuration is a paid mutator transaction binding the contract method 0xe8664577. // -// Solidity: function openSession(uint256 amount_, bytes approvalEncoded_, bytes signature_) returns(bytes32) -func (_SessionRouter *SessionRouterTransactorSession) OpenSession(amount_ *big.Int, approvalEncoded_ []byte, signature_ []byte) (*types.Transaction, error) { - return _SessionRouter.Contract.OpenSession(&_SessionRouter.TransactOpts, amount_, approvalEncoded_, signature_) +// Solidity: function setMaxSessionDuration(uint128 maxSessionDuration_) returns() +func (_SessionRouter *SessionRouterTransactorSession) SetMaxSessionDuration(maxSessionDuration_ *big.Int) (*types.Transaction, error) { + return _SessionRouter.Contract.SetMaxSessionDuration(&_SessionRouter.TransactOpts, maxSessionDuration_) } // SetPoolConfig is a paid mutator transaction binding the contract method 0xd7178753. diff --git a/proxy-router/internal/repositories/registries/session_router.go b/proxy-router/internal/repositories/registries/session_router.go index d6b3c074..e74c905a 100644 --- a/proxy-router/internal/repositories/registries/session_router.go +++ b/proxy-router/internal/repositories/registries/session_router.go @@ -53,7 +53,7 @@ func NewSessionRouter(sessionRouterAddr common.Address, client i.ContractBackend } func (g *SessionRouter) OpenSession(opts *bind.TransactOpts, approval []byte, approvalSig []byte, stake *big.Int, privateKeyHex lib.HexString) (sessionID common.Hash, providerID common.Address, userID common.Address, err error) { - sessionTx, err := g.sessionRouter.OpenSession(opts, stake, approval, approvalSig) + sessionTx, err := g.sessionRouter.OpenSession(opts, stake, false, approval, approvalSig) if err != nil { return common.Hash{}, common.Address{}, common.Address{}, lib.TryConvertGethError(err) } From ffc49ffe8180379a7e20d160d0a18234668e6ae1 Mon Sep 17 00:00:00 2001 From: abs2023 Date: Thu, 31 Oct 2024 16:45:22 -0400 Subject: [PATCH 075/260] update .env examples to disable provider_allow_list and models_config_path by default --- proxy-router/.env.example | 4 ++-- proxy-router/.env.example.win | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/proxy-router/.env.example b/proxy-router/.env.example index 3a479b2f..827a294e 100644 --- a/proxy-router/.env.example +++ b/proxy-router/.env.example @@ -8,12 +8,12 @@ WEB_ADDRESS=0.0.0.0:8082 # Change to your desired port that your Proxy-router AP WEB_PUBLIC_URL=localhost:8082 # Change to your desired port should match WEB_ADDRESS port number OPENAI_BASE_URL=http://localhost:8080/v1 # Change to your OpenAI API port for local model -PROVIDER_ALLOW_LIST= #Comma separated ProviderID list eg: 0x2736848ba8BfC010C845A3c95B567c5979E4C997,0x32c086D54b7CfddBEBF68390B0BA2fd597142E1C +#PROVIDER_ALLOW_LIST= #Comma separated ProviderID list eg: 0x2736848ba8BfC010C845A3c95B567c5979E4C997,0x32c086D54b7CfddBEBF68390B0BA2fd597142E1C PROXY_ADDRESS=0.0.0.0:3333 PROXY_STORAGE_PATH=./data/ PROXY_STORE_CHAT_CONTEXT=true -MODELS_CONFIG_PATH= #optional +#MODELS_CONFIG_PATH= #optional for providers serving multiple sessions ... requires valid models-config.json ENVIRONMENT=development ETH_NODE_LEGACY_TX=false EXPLORER_API_URL="https://api-sepolia.arbiscan.io/api" diff --git a/proxy-router/.env.example.win b/proxy-router/.env.example.win index d7d26bf5..fd6a27f9 100644 --- a/proxy-router/.env.example.win +++ b/proxy-router/.env.example.win @@ -8,12 +8,12 @@ WEB_ADDRESS=0.0.0.0:8082 # Change to your desired port that your Proxy-router AP WEB_PUBLIC_URL=localhost:8082 # Change to your desired port should match WEB_ADDRESS port number OPENAI_BASE_URL=http://localhost:8080/v1 # Change to your OpenAI API port for local model -PROVIDER_ALLOW_LIST= #Comma separated ProviderID list eg: 0x2736848ba8BfC010C845A3c95B567c5979E4C997,0x32c086D54b7CfddBEBF68390B0BA2fd597142E1C +#PROVIDER_ALLOW_LIST= #Comma separated ProviderID list eg: 0x2736848ba8BfC010C845A3c95B567c5979E4C997,0x32c086D54b7CfddBEBF68390B0BA2fd597142E1C PROXY_ADDRESS=0.0.0.0:3333 PROXY_STORAGE_PATH=.\data\ PROXY_STORE_CHAT_CONTEXT=true -MODELS_CONFIG_PATH= #optional +#MODELS_CONFIG_PATH= #optional for providers serving multiple sessions ... requires valid models-config.json ENVIRONMENT=development ETH_NODE_LEGACY_TX=false EXPLORER_API_URL="https://api-sepolia.arbiscan.io/api" From c6ef7af5b2247625803d4b692a2a1c13c754dc33 Mon Sep 17 00:00:00 2001 From: abs2023 Date: Fri, 1 Nov 2024 08:31:28 -0400 Subject: [PATCH 076/260] add ETH_NODE_USE_SUBSCRIPTIONS example --- proxy-router/.env.example | 2 ++ proxy-router/.env.example.win | 2 ++ 2 files changed, 4 insertions(+) diff --git a/proxy-router/.env.example b/proxy-router/.env.example index 827a294e..8c876668 100644 --- a/proxy-router/.env.example +++ b/proxy-router/.env.example @@ -1,5 +1,7 @@ WALLET_PRIVATE_KEY= # Private Key from your Wallet as Consumer or Provider (needed for the proxy-router to sign transactions) ETH_NODE_ADDRESS= # Recommend using your own private ETH Node Address for better performance (via Alchemy or Infura) +#ETH_NODE_USE_SUBSCRIPTIONS= # true if using default http + ETH_NODE_CHAIN_ID=421614 # Testnet Chain ID DIAMOND_CONTRACT_ADDRESS=0x10777866547c53cbd69b02c5c76369d7e24e7b10 # as of 10/30/2024 MOR_TOKEN_ADDRESS=0x34a285a1b1c166420df5b6630132542923b5b27e # as of 10/30/2024 diff --git a/proxy-router/.env.example.win b/proxy-router/.env.example.win index fd6a27f9..fb8b3a39 100644 --- a/proxy-router/.env.example.win +++ b/proxy-router/.env.example.win @@ -1,5 +1,7 @@ WALLET_PRIVATE_KEY= # Private Key from your Wallet as Consumer or Provider (needed for the proxy-router to sign transactions) ETH_NODE_ADDRESS= # Recommend using your own private ETH Node Address for better performance (via Alchemy or Infura) +#ETH_NODE_USE_SUBSCRIPTIONS= # true if using default http + ETH_NODE_CHAIN_ID=421614 # Testnet Chain ID DIAMOND_CONTRACT_ADDRESS=0x10777866547c53cbd69b02c5c76369d7e24e7b10 # as of 10/30/2024 MOR_TOKEN_ADDRESS=0x34a285a1b1c166420df5b6630132542923b5b27e # as of 10/30/2024 From 9e5819665542d6e8d72c1e7b957259eb0bda120f Mon Sep 17 00:00:00 2001 From: abs2023 Date: Fri, 1 Nov 2024 08:43:40 -0400 Subject: [PATCH 077/260] comment out ETH_NODE_ADDRESS to ensure http default polling is active --- proxy-router/.env.example | 2 +- proxy-router/.env.example.win | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/proxy-router/.env.example b/proxy-router/.env.example index 8c876668..bc606ce2 100644 --- a/proxy-router/.env.example +++ b/proxy-router/.env.example @@ -1,5 +1,5 @@ WALLET_PRIVATE_KEY= # Private Key from your Wallet as Consumer or Provider (needed for the proxy-router to sign transactions) -ETH_NODE_ADDRESS= # Recommend using your own private ETH Node Address for better performance (via Alchemy or Infura) +#ETH_NODE_ADDRESS= # Recommend using your own private ETH Node Address for better performance (via Alchemy or Infura) #ETH_NODE_USE_SUBSCRIPTIONS= # true if using default http ETH_NODE_CHAIN_ID=421614 # Testnet Chain ID diff --git a/proxy-router/.env.example.win b/proxy-router/.env.example.win index fb8b3a39..056badb5 100644 --- a/proxy-router/.env.example.win +++ b/proxy-router/.env.example.win @@ -1,5 +1,5 @@ WALLET_PRIVATE_KEY= # Private Key from your Wallet as Consumer or Provider (needed for the proxy-router to sign transactions) -ETH_NODE_ADDRESS= # Recommend using your own private ETH Node Address for better performance (via Alchemy or Infura) +#ETH_NODE_ADDRESS= # Recommend using your own private ETH Node Address for better performance (via Alchemy or Infura) #ETH_NODE_USE_SUBSCRIPTIONS= # true if using default http ETH_NODE_CHAIN_ID=421614 # Testnet Chain ID From e26a04275bc0fb72be4fc72b26017a27d3ed2d54 Mon Sep 17 00:00:00 2001 From: shev Date: Fri, 1 Nov 2024 16:50:00 +0100 Subject: [PATCH 078/260] chore: remove unused code --- proxy-router/cmd/main.go | 14 -------------- proxy-router/internal/config/config.go | 13 ++----------- 2 files changed, 2 insertions(+), 25 deletions(-) diff --git a/proxy-router/cmd/main.go b/proxy-router/cmd/main.go index 78947fb9..1a76fbef 100644 --- a/proxy-router/cmd/main.go +++ b/proxy-router/cmd/main.go @@ -35,11 +35,6 @@ import ( docs "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/docs" ) -const ( - IDLE_READ_CLOSE_TIMEOUT = 10 * time.Minute - IDLE_WRITE_CLOSE_TIMEOUT = 10 * time.Minute -) - var ( ErrConnectToEthNode = fmt.Errorf("cannot connect to ethereum node") ) @@ -130,15 +125,6 @@ func start() error { if err != nil { return err } - // contractLogFactory := func(contractID string) (lib.ILogger, error) { - // logStorage := interfaces.NewLogStorage(contractID) - // contractLogStorage.Store(logStorage) - // fp := "" - // if logFolderPath != "" { - // fp = filepath.Join(logFolderPath, fmt.Sprintf("contract-%s.log", lib.SanitizeFilename(lib.StrShort(contractID)))) - // } - // return lib.NewLoggerMemory(cfg.Log.LevelContract, cfg.Log.Color, cfg.Log.IsProd, cfg.Log.JSON, fp, logStorage.Buffer) - // } defer func() { _ = connLog.Close() diff --git a/proxy-router/internal/config/config.go b/proxy-router/internal/config/config.go index 4669a5f3..3fdf6c18 100644 --- a/proxy-router/internal/config/config.go +++ b/proxy-router/internal/config/config.go @@ -55,7 +55,6 @@ type Config struct { } Proxy struct { Address string `env:"PROXY_ADDRESS" flag:"proxy-address" validate:"required,hostname_port"` - MaxCachedDests int `env:"PROXY_MAX_CACHED_DESTS" flag:"proxy-max-cached-dests" validate:"required,number" desc:"maximum number of cached destinations per proxy"` StoragePath string `env:"PROXY_STORAGE_PATH" flag:"proxy-storage-path" validate:"omitempty,dirpath" desc:"enables file storage and sets the folder path"` StoreChatContext bool `env:"PROXY_STORE_CHAT_CONTEXT" flag:"proxy-store-chat-context" desc:"store chat context in the proxy storage"` ModelsConfigPath string `env:"MODELS_CONFIG_PATH" flag:"models-config-path" validate:"omitempty"` @@ -86,7 +85,7 @@ func (cfg *Config) SetDefaults() { cfg.Blockchain.MaxReconnects = 30 } if cfg.Blockchain.PollingInterval == 0 { - cfg.Blockchain.PollingInterval = 10 * time.Second + cfg.Blockchain.PollingInterval = 2 * time.Second } // Log @@ -113,15 +112,8 @@ func (cfg *Config) SetDefaults() { cfg.Log.LevelBadger = "info" } - // Proxy - if cfg.Proxy.MaxCachedDests == 0 { - cfg.Proxy.MaxCachedDests = 5 - } - // System - // cfg.System.Enable = true // TODO: Temporary override, remove this line - if cfg.System.LocalPortRange == "" { cfg.System.LocalPortRange = "1024 65535" } @@ -153,7 +145,7 @@ func (cfg *Config) SetDefaults() { cfg.Proxy.Address = "0.0.0.0:3333" } if cfg.Web.Address == "" { - cfg.Web.Address = "0.0.0.0:8080" + cfg.Web.Address = "0.0.0.0:8082" } if cfg.Web.PublicUrl == "" { cfg.Web.PublicUrl = fmt.Sprintf("http://%s", cfg.Web.Address) @@ -186,7 +178,6 @@ func (cfg *Config) GetSanitized() interface{} { publicCfg.Log.LevelRPC = cfg.Log.LevelRPC publicCfg.Proxy.Address = cfg.Proxy.Address - publicCfg.Proxy.MaxCachedDests = cfg.Proxy.MaxCachedDests publicCfg.System.Enable = cfg.System.Enable publicCfg.System.LocalPortRange = cfg.System.LocalPortRange From ae8be5c9931db318a0d5f8b9ae7beef59f0e82aa Mon Sep 17 00:00:00 2001 From: shev Date: Fri, 1 Nov 2024 16:50:29 +0100 Subject: [PATCH 079/260] fix: ensure flushing logs before exiting --- proxy-router/cmd/main.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/proxy-router/cmd/main.go b/proxy-router/cmd/main.go index 1a76fbef..c7caf01a 100644 --- a/proxy-router/cmd/main.go +++ b/proxy-router/cmd/main.go @@ -130,6 +130,8 @@ func start() error { _ = connLog.Close() _ = proxyLog.Close() _ = log.Close() + _ = rpcLog.Close() + _ = badgerLog.Close() }() appLog.Infof("proxy-router %s", config.BuildVersion) From 4805c454669500ba51a5c31e9427ba911736f93c Mon Sep 17 00:00:00 2001 From: shev Date: Fri, 1 Nov 2024 16:51:10 +0100 Subject: [PATCH 080/260] fix: error when providing invalid flag --- proxy-router/internal/config/loader.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/proxy-router/internal/config/loader.go b/proxy-router/internal/config/loader.go index 22c097b5..39406b19 100644 --- a/proxy-router/internal/config/loader.go +++ b/proxy-router/internal/config/loader.go @@ -106,7 +106,9 @@ func LoadConfig(cfg ConfigInterface, osArgs *[]string, validator Validator) erro if !isErrFlagNotDefined(err) { return lib.WrapError(ErrFlagParse, err) } - + if len(flagset.Args()) == 0 { + break + } args = flagset.Args()[1:] } From f2266f7178e5d5d35598efca1fe24f8a545d8a87 Mon Sep 17 00:00:00 2001 From: abs2023 Date: Fri, 1 Nov 2024 13:05:24 -0400 Subject: [PATCH 081/260] update .env variations and update default proxy-router port to 8082 to remove conflict on packag deploys --- proxy-router/.env.example | 37 +++------------ proxy-router/.env.example.win | 35 ++------------- proxy-router/.env.full | 62 ++++++++++++++++++++++++++ proxy-router/.env.oldexample | 36 +++++++++++++++ proxy-router/internal/config/config.go | 2 +- 5 files changed, 107 insertions(+), 65 deletions(-) create mode 100644 proxy-router/.env.full create mode 100644 proxy-router/.env.oldexample diff --git a/proxy-router/.env.example b/proxy-router/.env.example index bc606ce2..71557ac5 100644 --- a/proxy-router/.env.example +++ b/proxy-router/.env.example @@ -1,36 +1,9 @@ -WALLET_PRIVATE_KEY= # Private Key from your Wallet as Consumer or Provider (needed for the proxy-router to sign transactions) -#ETH_NODE_ADDRESS= # Recommend using your own private ETH Node Address for better performance (via Alchemy or Infura) -#ETH_NODE_USE_SUBSCRIPTIONS= # true if using default http - -ETH_NODE_CHAIN_ID=421614 # Testnet Chain ID DIAMOND_CONTRACT_ADDRESS=0x10777866547c53cbd69b02c5c76369d7e24e7b10 # as of 10/30/2024 MOR_TOKEN_ADDRESS=0x34a285a1b1c166420df5b6630132542923b5b27e # as of 10/30/2024 - -WEB_ADDRESS=0.0.0.0:8082 # Change to your desired port that your Proxy-router API (Swagger should be listening on) -WEB_PUBLIC_URL=localhost:8082 # Change to your desired port should match WEB_ADDRESS port number +EXPLORER_API_URL="https://api-sepolia.arbiscan.io/api" +ETH_NODE_CHAIN_ID=421614 # Testnet Chain ID OPENAI_BASE_URL=http://localhost:8080/v1 # Change to your OpenAI API port for local model - -#PROVIDER_ALLOW_LIST= #Comma separated ProviderID list eg: 0x2736848ba8BfC010C845A3c95B567c5979E4C997,0x32c086D54b7CfddBEBF68390B0BA2fd597142E1C -PROXY_ADDRESS=0.0.0.0:3333 -PROXY_STORAGE_PATH=./data/ +WEB_ADDRESS=0.0.0.0:8082 +WEB_PUBLIC_URL=localhost:8082 PROXY_STORE_CHAT_CONTEXT=true - -#MODELS_CONFIG_PATH= #optional for providers serving multiple sessions ... requires valid models-config.json -ENVIRONMENT=development -ETH_NODE_LEGACY_TX=false -EXPLORER_API_URL="https://api-sepolia.arbiscan.io/api" -LOG_COLOR=true -LOG_FOLDER_PATH= -LOG_LEVEL_APP=info -LOG_LEVEL_CONNECTION=info -LOG_LEVEL_PROXY=info -LOG_LEVEL_SCHEDULER=info -OPENAI_API_KEY= #optional - -SYS_ENABLE=false -SYS_LOCAL_PORT_RANGE=1024 65535 -SYS_NET_DEV_MAX_BACKLOG=100000 -SYS_RLIMIT_HARD=524288 -SYS_RLIMIT_SOFT=524288 -SYS_SOMAXCONN=100000 -SYS_TCP_MAX_SYN_BACKLOG=100000 \ No newline at end of file +PROXY_STORAGE_PATH=./data/ # or for windows=.\data\ \ No newline at end of file diff --git a/proxy-router/.env.example.win b/proxy-router/.env.example.win index 056badb5..9892160f 100644 --- a/proxy-router/.env.example.win +++ b/proxy-router/.env.example.win @@ -1,36 +1,7 @@ -WALLET_PRIVATE_KEY= # Private Key from your Wallet as Consumer or Provider (needed for the proxy-router to sign transactions) -#ETH_NODE_ADDRESS= # Recommend using your own private ETH Node Address for better performance (via Alchemy or Infura) -#ETH_NODE_USE_SUBSCRIPTIONS= # true if using default http - -ETH_NODE_CHAIN_ID=421614 # Testnet Chain ID DIAMOND_CONTRACT_ADDRESS=0x10777866547c53cbd69b02c5c76369d7e24e7b10 # as of 10/30/2024 MOR_TOKEN_ADDRESS=0x34a285a1b1c166420df5b6630132542923b5b27e # as of 10/30/2024 - -WEB_ADDRESS=0.0.0.0:8082 # Change to your desired port that your Proxy-router API (Swagger should be listening on) -WEB_PUBLIC_URL=localhost:8082 # Change to your desired port should match WEB_ADDRESS port number +EXPLORER_API_URL="https://api-sepolia.arbiscan.io/api" +ETH_NODE_CHAIN_ID=421614 # Testnet Chain ID OPENAI_BASE_URL=http://localhost:8080/v1 # Change to your OpenAI API port for local model - -#PROVIDER_ALLOW_LIST= #Comma separated ProviderID list eg: 0x2736848ba8BfC010C845A3c95B567c5979E4C997,0x32c086D54b7CfddBEBF68390B0BA2fd597142E1C -PROXY_ADDRESS=0.0.0.0:3333 -PROXY_STORAGE_PATH=.\data\ PROXY_STORE_CHAT_CONTEXT=true - -#MODELS_CONFIG_PATH= #optional for providers serving multiple sessions ... requires valid models-config.json -ENVIRONMENT=development -ETH_NODE_LEGACY_TX=false -EXPLORER_API_URL="https://api-sepolia.arbiscan.io/api" -LOG_COLOR=true -LOG_FOLDER_PATH= -LOG_LEVEL_APP=info -LOG_LEVEL_CONNECTION=info -LOG_LEVEL_PROXY=info -LOG_LEVEL_SCHEDULER=info -OPENAI_API_KEY= #optional - -SYS_ENABLE=false -SYS_LOCAL_PORT_RANGE=1024 65535 -SYS_NET_DEV_MAX_BACKLOG=100000 -SYS_RLIMIT_HARD=524288 -SYS_RLIMIT_SOFT=524288 -SYS_SOMAXCONN=100000 -SYS_TCP_MAX_SYN_BACKLOG=100000 \ No newline at end of file +PROXY_STORAGE_PATH=.\data\ # or for unix=./data/ \ No newline at end of file diff --git a/proxy-router/.env.full b/proxy-router/.env.full new file mode 100644 index 00000000..de6bd0be --- /dev/null +++ b/proxy-router/.env.full @@ -0,0 +1,62 @@ +# Environment variables extracted from /proxy-router/internal/config/config.go +# Variabls with ** in the comments are required to be different between Eth Networks (TestNet or MainNET) +# Updated 10/30/2024 + +# App struct +APP_RESET_KEYCHAIN= # bool desc:"reset keychain on start" + +# AIEngine struct +OPENAI_BASE_URL= # string validate:"required,url" +OPENAI_API_KEY= # string + +# Blockchain struct +ETH_NODE_CHAIN_ID= # ** int validate:"number" +ETH_NODE_ADDRESS= # string validate:"omitempty,url" +ETH_NODE_LEGACY_TX= # bool desc:"use it to disable EIP-1559 transactions" +EXPLORER_API_URL= # ** string validate:"required,url" +ETH_NODE_USE_SUBSCRIPTIONS= # bool desc:"set it to true to enable subscriptions for blockchain events, otherwise default polling will be used" +ETH_NODE_POLLING_INTERVAL= # time.Duration validate:"omitempty,duration" desc:"interval for polling eth node for new events" +ETH_NODE_MAX_RECONNECTS= # int validate:"omitempty,gte=0" desc:"max reconnects to eth node" + +# Environment string +ENVIRONMENT= # ** string validate:"oneof=development production" + +# Marketplace struct +DIAMOND_CONTRACT_ADDRESS= # ** common.Address validate:"omitempty,eth_addr" +MOR_TOKEN_ADDRESS= # ** common.Address validate:"omitempty,eth_addr" +WALLET_PRIVATE_KEY= # lib.HexString desc:"if set, will use this private key to sign transactions, otherwise it will be retrieved from the system keychain" + +# Log struct +LOG_COLOR= # bool +LOG_FOLDER_PATH= # string validate:"omitempty,dirpath" desc:"enables file logging and sets the folder path" +LOG_IS_PROD= # ** bool validate:"" desc:"affects the format of the log output" +LOG_JSON= # bool +LOG_LEVEL_APP= # string validate:"omitempty,oneof=debug info warn error dpanic panic fatal" +LOG_LEVEL_CONNECTION= # string validate:"omitempty,oneof=debug info warn error dpanic panic fatal" +LOG_LEVEL_PROXY= # string validate:"omitempty,oneof=debug info warn error dpanic panic fatal" +LOG_LEVEL_SCHEDULER= # string validate:"omitempty,oneof=debug info warn error dpanic panic fatal" +LOG_LEVEL_CONTRACT= # string validate:"omitempty,oneof=debug info warn error dpanic panic fatal" +LOG_LEVEL_RPC= # string validate:"omitempty,oneof=debug info warn error dpanic panic fatal" +LOG_LEVEL_BADGER= # string validate:"omitempty,oneof=debug info warn error dpanic panic fatal" + +# Proxy struct +PROXY_ADDRESS= # string validate:"required,hostname_port" +PROXY_MAX_CACHED_DESTS= # int validate:"required,number" desc:"maximum number of cached destinations per proxy" +PROXY_STORAGE_PATH= # string validate:"omitempty,dirpath" desc:"enables file storage and sets the folder path" +PROXY_STORE_CHAT_CONTEXT= # bool desc:"store chat context in the proxy storage" +MODELS_CONFIG_PATH= # string validate:"omitempty" +PROVIDER_ALLOW_LIST= # string validate:"omitempty" desc:"comma separated list of provider addresses allowed to open session with" + + +# System struct +SYS_ENABLE= # bool desc:"enable system level configuration adjustments" +SYS_LOCAL_PORT_RANGE= # string desc:"" +SYS_NET_DEV_MAX_BACKLOG= # string desc:"" +SYS_RLIMIT_HARD= # uint64 desc:"" +SYS_RLIMIT_SOFT= # uint64 desc:"" +SYS_SOMAXCONN= # string desc:"" +SYS_TCP_MAX_SYN_BACKLOG= # string desc:"" + +# Web struct +WEB_ADDRESS= # string validate:"required,hostname_port" desc:"http server address host:port" +WEB_PUBLIC_URL= # string validate:"omitempty,url" desc:"public url of the proxyrouter, falls back to web-address if empty" \ No newline at end of file diff --git a/proxy-router/.env.oldexample b/proxy-router/.env.oldexample new file mode 100644 index 00000000..28ec9e57 --- /dev/null +++ b/proxy-router/.env.oldexample @@ -0,0 +1,36 @@ +#WALLET_PRIVATE_KEY= # Private Key from your Wallet as Consumer or Provider (needed for the proxy-router to sign transactions) +#ETH_NODE_ADDRESS= # Recommend using your own private ETH Node Address for better performance (via Alchemy or Infura) +#ETH_NODE_USE_SUBSCRIPTIONS= # true if using default http + +ETH_NODE_CHAIN_ID=421614 # Testnet Chain ID +DIAMOND_CONTRACT_ADDRESS=0x10777866547c53cbd69b02c5c76369d7e24e7b10 # as of 10/30/2024 +MOR_TOKEN_ADDRESS=0x34a285a1b1c166420df5b6630132542923b5b27e # as of 10/30/2024 + +WEB_ADDRESS=0.0.0.0:8082 # Change to your desired port that your Proxy-router API (Swagger should be listening on) +WEB_PUBLIC_URL=localhost:8082 # Change to your desired port should match WEB_ADDRESS port number +OPENAI_BASE_URL=http://localhost:8080/v1 # Change to your OpenAI API port for local model + +#PROVIDER_ALLOW_LIST= #Comma separated ProviderID list eg: 0x2736848ba8BfC010C845A3c95B567c5979E4C997,0x32c086D54b7CfddBEBF68390B0BA2fd597142E1C +PROXY_ADDRESS=0.0.0.0:3333 +PROXY_STORAGE_PATH=./data/ +PROXY_STORE_CHAT_CONTEXT=true + +#MODELS_CONFIG_PATH= #optional for providers serving multiple sessions ... requires valid models-config.json +ENVIRONMENT=development +ETH_NODE_LEGACY_TX=false +EXPLORER_API_URL="https://api-sepolia.arbiscan.io/api" +LOG_COLOR=true +LOG_FOLDER_PATH= +LOG_LEVEL_APP=info +LOG_LEVEL_CONNECTION=info +LOG_LEVEL_PROXY=info +LOG_LEVEL_SCHEDULER=info +OPENAI_API_KEY= #optional + +SYS_ENABLE=false +SYS_LOCAL_PORT_RANGE=1024 65535 +SYS_NET_DEV_MAX_BACKLOG=100000 +SYS_RLIMIT_HARD=524288 +SYS_RLIMIT_SOFT=524288 +SYS_SOMAXCONN=100000 +SYS_TCP_MAX_SYN_BACKLOG=100000 \ No newline at end of file diff --git a/proxy-router/internal/config/config.go b/proxy-router/internal/config/config.go index 4669a5f3..58adffd4 100644 --- a/proxy-router/internal/config/config.go +++ b/proxy-router/internal/config/config.go @@ -153,7 +153,7 @@ func (cfg *Config) SetDefaults() { cfg.Proxy.Address = "0.0.0.0:3333" } if cfg.Web.Address == "" { - cfg.Web.Address = "0.0.0.0:8080" + cfg.Web.Address = "0.0.0.0:8082" } if cfg.Web.PublicUrl == "" { cfg.Web.PublicUrl = fmt.Sprintf("http://%s", cfg.Web.Address) From c62a7f16af78ed955d620703d10312ba00b4a97e Mon Sep 17 00:00:00 2001 From: shev Date: Fri, 1 Nov 2024 21:45:52 +0100 Subject: [PATCH 082/260] fix: DEV-79 incorrect polling implementation --- proxy-router/Makefile | 2 +- proxy-router/cmd/main.go | 1 + proxy-router/internal/config/config.go | 2 +- .../contracts/log_watcher_polling.go | 42 +++++++++++++------ .../ethclient/rpcclient_store_factory.go | 2 +- 5 files changed, 33 insertions(+), 16 deletions(-) diff --git a/proxy-router/Makefile b/proxy-router/Makefile index e725c514..78134b8c 100644 --- a/proxy-router/Makefile +++ b/proxy-router/Makefile @@ -41,7 +41,7 @@ mocks: mockery reset-keychain: - go run cmd/main.go --reset-keychain + go run cmd/main.go -app-reset-keychain update-bindings: cd ../smart-contracts && yarn bindings-go && cp -r bindings/go/contracts/{diamond/facets/*,tokens/*,mock/tokens/*} ../proxy-router/internal/repositories/contracts/bindings diff --git a/proxy-router/cmd/main.go b/proxy-router/cmd/main.go index c7caf01a..230f7952 100644 --- a/proxy-router/cmd/main.go +++ b/proxy-router/cmd/main.go @@ -203,6 +203,7 @@ func start() error { } else { appLog.Info("Eth node urls removed") } + return nil } var ethNodeAddresses []string diff --git a/proxy-router/internal/config/config.go b/proxy-router/internal/config/config.go index 3fdf6c18..248787f5 100644 --- a/proxy-router/internal/config/config.go +++ b/proxy-router/internal/config/config.go @@ -85,7 +85,7 @@ func (cfg *Config) SetDefaults() { cfg.Blockchain.MaxReconnects = 30 } if cfg.Blockchain.PollingInterval == 0 { - cfg.Blockchain.PollingInterval = 2 * time.Second + cfg.Blockchain.PollingInterval = 1 * time.Second } // Log diff --git a/proxy-router/internal/repositories/contracts/log_watcher_polling.go b/proxy-router/internal/repositories/contracts/log_watcher_polling.go index 77e80fd4..c43808e0 100644 --- a/proxy-router/internal/repositories/contracts/log_watcher_polling.go +++ b/proxy-router/internal/repositories/contracts/log_watcher_polling.go @@ -37,24 +37,42 @@ func NewLogWatcherPolling(client i.EthClient, pollInterval time.Duration, maxRec } func (w *LogWatcherPolling) Watch(ctx context.Context, contractAddr common.Address, mapper EventMapper, fromBlock *big.Int) (*lib.Subscription, error) { - if fromBlock == nil { - block, err := w.client.HeaderByNumber(ctx, nil) - if err != nil { - return nil, err - } - fromBlock = block.Number + var nextFromBlock *big.Int + + if fromBlock != nil { + nextFromBlock = new(big.Int).Set(fromBlock) } - lastQueriedBlock := fromBlock sink := make(chan interface{}) return lib.NewSubscription(func(quit <-chan struct{}) error { defer close(sink) for { + currentBlock, err := w.client.HeaderByNumber(ctx, nil) + if err != nil { + return err + } + + if nextFromBlock == nil { + nextFromBlock = new(big.Int).Set(currentBlock.Number) + } + + // if we poll too often, we might be behind the chain, so we wait for the next block + if currentBlock.Number.Cmp(nextFromBlock) < 0 { + select { + case <-quit: + return SubClosedError + case <-ctx.Done(): + return ctx.Err() + case <-time.After(w.pollInterval): + } + continue + } + query := ethereum.FilterQuery{ Addresses: []common.Address{contractAddr}, - FromBlock: lastQueriedBlock, - ToBlock: nil, + FromBlock: nextFromBlock, + ToBlock: currentBlock.Number, } sub, err := w.filterLogsRetry(ctx, query, quit) if err != nil { @@ -80,13 +98,11 @@ func (w *LogWatcherPolling) Watch(ctx context.Context, contractAddr common.Addre } } - if len(sub) > 0 { - lastQueriedBlock = new(big.Int).SetUint64(sub[len(sub)-1].BlockNumber + 1) - } + nextFromBlock.Add(currentBlock.Number, big.NewInt(1)) select { case <-quit: - return nil + return SubClosedError case <-ctx.Done(): return ctx.Err() case <-time.After(w.pollInterval): diff --git a/proxy-router/internal/repositories/ethclient/rpcclient_store_factory.go b/proxy-router/internal/repositories/ethclient/rpcclient_store_factory.go index 18c296da..2a7b063d 100644 --- a/proxy-router/internal/repositories/ethclient/rpcclient_store_factory.go +++ b/proxy-router/internal/repositories/ethclient/rpcclient_store_factory.go @@ -59,7 +59,7 @@ func ConfigureRPCClientStore(storage interfaces.KeyValueStorage, envURLs []strin } if chainID == 0 { - return nil, errors.New("Missing chainID. You need to set CHAIN_ID env variable to use public eth node addresses") + return nil, errors.New("Missing chain ID. You need to configure chain ID to use public eth node addresses") } publicURLs, err := GetPublicRPCURLs(chainID) From c4baf85dbe3601f916ae634d3891df5ccb515a85 Mon Sep 17 00:00:00 2001 From: "bohdan.konorin" Date: Sun, 3 Nov 2024 23:58:13 +0100 Subject: [PATCH 083/260] Added handling custom messages --- proxy-router/.gitignore | 2 +- .../src/main/src/client/handlers/no-core.js | 6 +- .../src/main/src/client/settings/index.js | 11 +++- .../main/src/client/subscriptions/no-core.js | 3 + ui-desktop/src/renderer/src/client/index.jsx | 3 + .../src/renderer/src/components/chat/Chat.tsx | 60 +++++++++++++++---- .../chat/modals/ModelSelectionModal.tsx | 2 +- .../src/components/settings/Settings.tsx | 47 +++++++++++---- .../renderer/src/store/hocs/withChatState.jsx | 14 +++-- .../src/store/hocs/withSettingsState.jsx | 6 ++ 10 files changed, 122 insertions(+), 32 deletions(-) diff --git a/proxy-router/.gitignore b/proxy-router/.gitignore index 708c6949..e77303d8 100644 --- a/proxy-router/.gitignore +++ b/proxy-router/.gitignore @@ -8,6 +8,6 @@ logs dist bin -data +data* models-config.json \ No newline at end of file diff --git a/ui-desktop/src/main/src/client/handlers/no-core.js b/ui-desktop/src/main/src/client/handlers/no-core.js index 14c16273..676df241 100644 --- a/ui-desktop/src/main/src/client/handlers/no-core.js +++ b/ui-desktop/src/main/src/client/handlers/no-core.js @@ -12,7 +12,9 @@ import { getDefaultCurrencySetting, setDefaultCurrencySetting, getKey, - setKey + setKey, + getFailoverSetting, + setFailoverSetting } from '../settings' import apiGateway from '../apiGateway'; @@ -114,5 +116,7 @@ export default { setProfitSettings, getAutoAdjustPriceData, setAutoAdjustPriceData, + getFailoverSetting, + setFailoverSetting, ...apiGateway, } diff --git a/ui-desktop/src/main/src/client/settings/index.js b/ui-desktop/src/main/src/client/settings/index.js index a8e2a95c..8a2e2b27 100644 --- a/ui-desktop/src/main/src/client/settings/index.js +++ b/ui-desktop/src/main/src/client/settings/index.js @@ -8,6 +8,9 @@ import logger from '../../../logger' import restart from '../electron-restart' import { getDb } from '../database' import defaultSettings from './defaultSettings' + +const FAILOVER_KEY = "user.failover"; + //TODO: make sure default settings works as a static import. it was getting imported every time // it was accessed. if that's necessary, we have to use the async method // import() instead of require() with the new version of node @@ -100,6 +103,10 @@ export const getAppVersion = () => getKey('app.version') export const setAppVersion = (value) => setKey('app.version', value) +export const getFailoverSetting = async() => getKey(FAILOVER_KEY) + +export const setFailoverSetting = async (isEnabled) => setKey(FAILOVER_KEY, { isEnabled }) + export default { getPasswordHash, setPasswordHash, @@ -112,5 +119,7 @@ export default { getKey, setKey, getAppVersion, - setAppVersion + setAppVersion, + getFailoverSetting, + setFailoverSetting } diff --git a/ui-desktop/src/main/src/client/subscriptions/no-core.js b/ui-desktop/src/main/src/client/subscriptions/no-core.js index d739f268..f88d8a0f 100644 --- a/ui-desktop/src/main/src/client/subscriptions/no-core.js +++ b/ui-desktop/src/main/src/client/subscriptions/no-core.js @@ -34,6 +34,9 @@ const listeners = { "get-chat-history": handlers.getChatHistory, "delete-chat-history": handlers.deleteChatHistory, "update-chat-history-title": handlers.updateChatHistoryTitle, + // Failover + "get-failover-setting": handlers.getFailoverSetting, + "set-failover-setting": handlers.setFailoverSetting } // Subscribe to messages where no core has to react diff --git a/ui-desktop/src/renderer/src/client/index.jsx b/ui-desktop/src/renderer/src/client/index.jsx index f9e78e02..d966bbe2 100644 --- a/ui-desktop/src/renderer/src/client/index.jsx +++ b/ui-desktop/src/renderer/src/client/index.jsx @@ -142,6 +142,9 @@ const createClient = function (createStore) { getChatHistory: utils.forwardToMainProcess('get-chat-history', 750000), deleteChatHistory: utils.forwardToMainProcess('delete-chat-history', 750000), updateChatHistoryTitle: utils.forwardToMainProcess('update-chat-history-title', 750000), + // Failover + getFailoverSetting: utils.forwardToMainProcess('get-failover-setting', 750000), + setFailoverSetting: utils.forwardToMainProcess('set-failover-setting', 750000), } const api = { diff --git a/ui-desktop/src/renderer/src/components/chat/Chat.tsx b/ui-desktop/src/renderer/src/components/chat/Chat.tsx index aecd99ac..55e83497 100644 --- a/ui-desktop/src/renderer/src/components/chat/Chat.tsx +++ b/ui-desktop/src/renderer/src/components/chat/Chat.tsx @@ -105,19 +105,10 @@ const Chat = (props) => { }, [] as ChatData[]) setChatsData(mappedChatData); - const sessions = (await props.getSessionsByUser(props.address)).reduce((res, item) => { - const sessionModel = chainData.models.find(x => x.Id == item.ModelAgentId); - if(sessionModel) { - item.ModelName = sessionModel.Name; - res.push(item); - } - return res; - }, []); + const sessions = await refreshSessions(chainData?.models); const openSessions = sessions.filter(s => !isClosed(s)); - setSessions(sessions); - const useLocalModelChat = () => { const localModel = (chainData?.models?.find((m: any) => m.hasLocal)); if (localModel) { @@ -154,7 +145,10 @@ const Chat = (props) => { }) }, []) - const toggleDrawer = () => { + const toggleDrawer = async () => { + if (!isOpen) { + await refreshSessions() + } setIsOpen((prevState) => !prevState) } @@ -232,9 +226,18 @@ const Chat = (props) => { } } - const refreshSessions = async () => { - const sessions = await props.getSessionsByUser(props.address); + const refreshSessions = async (models = null) => { + const sessions = (await props.getSessionsByUser(props.address)).reduce((res, item) => { + const sessionModel = (models || chainData.models).find(x => x.Id == item.ModelAgentId); + if(sessionModel) { + item.ModelName = sessionModel.Name; + res.push(item); + } + return res; + }, []); + setSessions(sessions); + return sessions; } @@ -397,6 +400,12 @@ const Chat = (props) => { console.warn(part.error); return; } + + if(part.message) { + handleSystemMessage(part.message); + return; + } + const imageContent = part.imageUrl; if (!part?.id && !imageContent) { @@ -420,6 +429,7 @@ const Chat = (props) => { } } catch (e) { + props.toasts.toast('error', 'Something goes wrong. Try later.'); console.error(e); } @@ -427,6 +437,30 @@ const Chat = (props) => { return memoState; } + const handleSystemMessage = (message) => { + const openSessionEventMessage = "new session opened"; + const failoverTurnOnMessage = "provider failed, failover enabled" + + const renderMessage = (value) => { + props.toasts.toast('info', value, { + autoClose: 1500 + }); + } + switch(message) { + case openSessionEventMessage: { + renderMessage("Opening session with available provider..."); + return; + } + case failoverTurnOnMessage: { + renderMessage("Target provider unavailable. Applying failover policy..."); + return; + } + default: + renderMessage(message); + return; + } + } + const handleSubmit = () => { if (abort) { abort = false; diff --git a/ui-desktop/src/renderer/src/components/chat/modals/ModelSelectionModal.tsx b/ui-desktop/src/renderer/src/components/chat/modals/ModelSelectionModal.tsx index f2d6da16..0e1b2f2a 100644 --- a/ui-desktop/src/renderer/src/components/chat/modals/ModelSelectionModal.tsx +++ b/ui-desktop/src/renderer/src/components/chat/modals/ModelSelectionModal.tsx @@ -51,7 +51,7 @@ const ModelSelectionModal = ({ isActive, handleClose, models, onChangeModel }) = .map(m => ({ ...m, isOnline: m.bids.some(b => b.ProviderData.availabilityStatus == "available") })) .sort((a, b) => b.isOnline - a.isOnline); - const filterdModels = search ? sortedModels.filter(m => m.Name.includes(search)) : sortedModels; + const filterdModels = search ? sortedModels.filter(m => m.Name.toLowerCase().includes(search.toLowerCase())) : sortedModels; return ( { - const [ethNodeUrl, setEthUrl] = useState(""); + const [ethNodeUrl, setEthUrl] = useState(""); + const [useFailover, setUseFailover] = useState(false); useEffect(() => { - props.getConfig().then(cfg => { - const customUrl = cfg?.DerivedConfig?.EthNodeURLs[0] || ""; - setEthUrl(customUrl); - }) - },[]) - + (async () => { + const cfg = await props.getConfig(); + const customUrl = cfg?.DerivedConfig?.EthNodeURLs[0] || ""; + setEthUrl(customUrl); + const failoverSettings = await props.client.getFailoverSetting(); + setUseFailover(Boolean(failoverSettings.isEnabled)); + })() + }, []) + return ( @@ -30,17 +34,40 @@ const Settings = (props) => { Set Custom ETH Node - setEthUrl(e.value)} /> - + props.updateEthNodeUrl(ethNodeUrl)}> Set + + Failover Mechanism + + A failover policy is applied when a provider is unable to service an open session. This policy ensures continuity by automatically rerouting or reassigning sessions to an alternate provider, minimizing service disruptions and maintaining a seamless user experience + + +
+ { + setUseFailover(Boolean(e.target.checked)) + } } + style={{ marginRight: '5px' }} + + /> +
Use Default Policy (set by proxy-router)
+
+
+ props.updateFailoverSetting(useFailover)}> + Apply + +
) } diff --git a/ui-desktop/src/renderer/src/store/hocs/withChatState.jsx b/ui-desktop/src/renderer/src/store/hocs/withChatState.jsx index db6431cf..fb6a53b0 100644 --- a/ui-desktop/src/renderer/src/store/hocs/withChatState.jsx +++ b/ui-desktop/src/renderer/src/store/hocs/withChatState.jsx @@ -174,11 +174,12 @@ const withChatState = WrappedComponent => { const availabilityResults = await Promise.all(providers.map(async p => { try { const storedRecord = JSON.parse(localStorage.getItem(p.Address)); - if(storedRecord && storedRecord.status != AvailabilityStatus.unknown) { + if(storedRecord && storedRecord.status == AvailabilityStatus.available) { const lastUpdatedAt = new Date(storedRecord.time); - const oneHourBefore = new Date(new Date().getTime() - (60 * 60 * 1000)); + const cacheMinutes = 15; + const timestampBefore = new Date(new Date().getTime() - (cacheMinutes * 60 * 1000)); - if(lastUpdatedAt > oneHourBefore) { + if(lastUpdatedAt > timestampBefore) { return ({...storedRecord, id: p.Address}); } } @@ -188,7 +189,7 @@ const withChatState = WrappedComponent => { const { data } = await axios.post("https://portchecker.io/api/v1/query", { host: domain, ports: [port], - }) + }); const isValid = !!data.check?.find((c) => c.port == port && c.status == true); const record = ({id: p.Address, status: isValid ? AvailabilityStatus.available : AvailabilityStatus.disconnected, time: new Date() }); @@ -196,7 +197,7 @@ const withChatState = WrappedComponent => { return record; } catch(e) { - return ({id: p.Address, status: AvailabilityStatus.unknown }) + return ({id: p.Address, status: AvailabilityStatus.unknown, time: new Date() }) } })); return availabilityResults; @@ -228,8 +229,11 @@ const withChatState = WrappedComponent => { onOpenSession = async ({ modelId, duration }) => { this.context.toast('info', 'Processing...'); try { + const failoverSettings = await this.props.client.getFailoverSetting(); + const path = `${this.props.config.chain.localProxyRouterUrl}/blockchain/models/${modelId}/session`; const body = { + failover: failoverSettings?.isEnabled || false, sessionDuration: +duration // convert to seconds }; const response = await fetch(path, { diff --git a/ui-desktop/src/renderer/src/store/hocs/withSettingsState.jsx b/ui-desktop/src/renderer/src/store/hocs/withSettingsState.jsx index af871b09..57d2a7c9 100644 --- a/ui-desktop/src/renderer/src/store/hocs/withSettingsState.jsx +++ b/ui-desktop/src/renderer/src/store/hocs/withSettingsState.jsx @@ -55,6 +55,11 @@ const withSettingsState = WrappedComponent => { this.context.toast('success', "Changed"); } + updateFailoverSetting = async (value) => { + await this.props.client.setFailoverSetting(value); + this.context.toast('success', "Setting changed") + } + render() { @@ -63,6 +68,7 @@ const withSettingsState = WrappedComponent => { logout={this.logout} getConfig={this.getConfig} updateEthNodeUrl={this.updateEthNodeUrl} + updateFailoverSetting={this.updateFailoverSetting} {...this.state} {...this.props} /> From 2859de6b524e2cdbed8f0f92f5cbfab223fc2f30 Mon Sep 17 00:00:00 2001 From: abs2023 Date: Mon, 4 Nov 2024 09:08:59 -0500 Subject: [PATCH 084/260] fixed spacing --- proxy-router/.env.full | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/proxy-router/.env.full b/proxy-router/.env.full index de6bd0be..d12a73b7 100644 --- a/proxy-router/.env.full +++ b/proxy-router/.env.full @@ -10,10 +10,10 @@ OPENAI_BASE_URL= # string validate:"required,url" OPENAI_API_KEY= # string # Blockchain struct -ETH_NODE_CHAIN_ID= # ** int validate:"number" +ETH_NODE_CHAIN_ID= # ** int validate:"number" ETH_NODE_ADDRESS= # string validate:"omitempty,url" ETH_NODE_LEGACY_TX= # bool desc:"use it to disable EIP-1559 transactions" -EXPLORER_API_URL= # ** string validate:"required,url" +EXPLORER_API_URL= # ** string validate:"required,url" ETH_NODE_USE_SUBSCRIPTIONS= # bool desc:"set it to true to enable subscriptions for blockchain events, otherwise default polling will be used" ETH_NODE_POLLING_INTERVAL= # time.Duration validate:"omitempty,duration" desc:"interval for polling eth node for new events" ETH_NODE_MAX_RECONNECTS= # int validate:"omitempty,gte=0" desc:"max reconnects to eth node" @@ -24,12 +24,12 @@ ENVIRONMENT= # ** string validate:"oneof=development productio # Marketplace struct DIAMOND_CONTRACT_ADDRESS= # ** common.Address validate:"omitempty,eth_addr" MOR_TOKEN_ADDRESS= # ** common.Address validate:"omitempty,eth_addr" -WALLET_PRIVATE_KEY= # lib.HexString desc:"if set, will use this private key to sign transactions, otherwise it will be retrieved from the system keychain" +WALLET_PRIVATE_KEY= # lib.HexString desc:"if set, will use this private key to sign transactions, otherwise it will be retrieved from the system keychain" # Log struct LOG_COLOR= # bool LOG_FOLDER_PATH= # string validate:"omitempty,dirpath" desc:"enables file logging and sets the folder path" -LOG_IS_PROD= # ** bool validate:"" desc:"affects the format of the log output" +LOG_IS_PROD= # ** bool validate:"" desc:"affects the format of the log output" LOG_JSON= # bool LOG_LEVEL_APP= # string validate:"omitempty,oneof=debug info warn error dpanic panic fatal" LOG_LEVEL_CONNECTION= # string validate:"omitempty,oneof=debug info warn error dpanic panic fatal" @@ -47,7 +47,6 @@ PROXY_STORE_CHAT_CONTEXT= # bool desc:"store chat context in the proxy st MODELS_CONFIG_PATH= # string validate:"omitempty" PROVIDER_ALLOW_LIST= # string validate:"omitempty" desc:"comma separated list of provider addresses allowed to open session with" - # System struct SYS_ENABLE= # bool desc:"enable system level configuration adjustments" SYS_LOCAL_PORT_RANGE= # string desc:"" From 291126148ea498448caf147bed4a608e9843c4b8 Mon Sep 17 00:00:00 2001 From: loonerin Date: Mon, 4 Nov 2024 09:45:12 -0500 Subject: [PATCH 085/260] cicd: bump macos-x86 to v13 For more details, see https://github.com/actions/runner-images/issues/10721 --- .github/workflows/build.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5011c6c1..19bcee99 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -96,8 +96,8 @@ jobs: path: mor-launch-${{ steps.tag.outputs.name }}-ubuntu-x64.zip name: mor-launch-ubuntu-x64.zip - macOS-12-x64: - runs-on: macos-12 + macOS-13-x64: + runs-on: macos-13 steps: - name: Clone uses: actions/checkout@v4 @@ -328,7 +328,7 @@ jobs: runs-on: ubuntu-latest needs: - Ubuntu-22-x64 - - macOS-12-x64 + - macOS-13-x64 - macOS-14-arm64 - Windows-avx2-x64 steps: From 778fe2e8628bc8b182e8158521d8851a5281e653 Mon Sep 17 00:00:00 2001 From: "bohdan.konorin" Date: Tue, 5 Nov 2024 15:25:17 +0100 Subject: [PATCH 086/260] Fixed issue with path --- .../src/renderer/src/store/hocs/withOnboardingState.jsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ui-desktop/src/renderer/src/store/hocs/withOnboardingState.jsx b/ui-desktop/src/renderer/src/store/hocs/withOnboardingState.jsx index 9faee86b..c4c02b43 100644 --- a/ui-desktop/src/renderer/src/store/hocs/withOnboardingState.jsx +++ b/ui-desktop/src/renderer/src/store/hocs/withOnboardingState.jsx @@ -152,13 +152,13 @@ const withOnboardingState = WrappedComponent => { return true; } - onFinishOnboarding = async (e, path) => { + onFinishOnboarding = async (e) => { if (e && e.preventDefault) e.preventDefault(); - + const payload = { password: this.state.password, ethNode: this.state.customEthNode || '', - derivationPath: path || 0, + derivationPath: this.state.derivationPath || "0", privateKey: '' }; From cd371e4aa7ac8b98af6f9fc59a6f4f2dcc5ddd9b Mon Sep 17 00:00:00 2001 From: Aleksandr Kukharenko Date: Tue, 5 Nov 2024 16:36:23 +0200 Subject: [PATCH 087/260] fix: restart proxy after wallet setup --- proxy-router/internal/proxyapi/proxy_sender.go | 5 ++++- proxy-router/internal/repositories/wallet/keychainwallet.go | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/proxy-router/internal/proxyapi/proxy_sender.go b/proxy-router/internal/proxyapi/proxy_sender.go index 97f31d67..abb0c4b2 100644 --- a/proxy-router/internal/proxyapi/proxy_sender.go +++ b/proxy-router/internal/proxyapi/proxy_sender.go @@ -260,7 +260,10 @@ func (p *ProxyServiceSender) SendPrompt(ctx context.Context, resWriter Responder } func (p *ProxyServiceSender) rpcRequest(url string, rpcMessage *msgs.RPCMessage) (*msgs.RpcResponse, int, gin.H) { - conn, err := net.Dial("tcp", url) + TIMEOUT_TO_ESTABLISH_CONNECTION := time.Second * 3 + dialer := net.Dialer{Timeout: TIMEOUT_TO_ESTABLISH_CONNECTION} + + conn, err := dialer.Dial("tcp", url) if err != nil { err = lib.WrapError(fmt.Errorf("failed to connect to provider"), err) p.log.Errorf("%s", err) diff --git a/proxy-router/internal/repositories/wallet/keychainwallet.go b/proxy-router/internal/repositories/wallet/keychainwallet.go index 30e80eef..ff034fd8 100644 --- a/proxy-router/internal/repositories/wallet/keychainwallet.go +++ b/proxy-router/internal/repositories/wallet/keychainwallet.go @@ -77,7 +77,7 @@ func (w *KeychainWallet) SetPrivateKey(privateKey lib.HexString) error { } // either mnemonic or private key can be stored at a time err = w.storage.DeleteIfExists(MNEMONIC_KEY) - if err == nil { + if err != nil { return err } @@ -105,7 +105,7 @@ func (w *KeychainWallet) SetMnemonic(mnemonic string, derivationPath string) err // either mnemonic or private key can be stored at a time err = w.storage.DeleteIfExists(PRIVATE_KEY_KEY) - if err == nil { + if err != nil { return err } From 9972cebea63033a948d4943dcc8003c445679b7e Mon Sep 17 00:00:00 2001 From: abs2023 Date: Tue, 5 Nov 2024 09:45:46 -0500 Subject: [PATCH 088/260] update to minimalist and removed in line comments --- proxy-router/.env.example | 15 ++++++++------- proxy-router/.env.example.win | 13 ++++++++----- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/proxy-router/.env.example b/proxy-router/.env.example index 71557ac5..bdcd9366 100644 --- a/proxy-router/.env.example +++ b/proxy-router/.env.example @@ -1,9 +1,10 @@ -DIAMOND_CONTRACT_ADDRESS=0x10777866547c53cbd69b02c5c76369d7e24e7b10 # as of 10/30/2024 -MOR_TOKEN_ADDRESS=0x34a285a1b1c166420df5b6630132542923b5b27e # as of 10/30/2024 +# Contract and Token current as of 11/5/2024 +DIAMOND_CONTRACT_ADDRESS=0x10777866547c53cbd69b02c5c76369d7e24e7b10 +MOR_TOKEN_ADDRESS=0x34a285a1b1c166420df5b6630132542923b5b27e EXPLORER_API_URL="https://api-sepolia.arbiscan.io/api" -ETH_NODE_CHAIN_ID=421614 # Testnet Chain ID -OPENAI_BASE_URL=http://localhost:8080/v1 # Change to your OpenAI API port for local model -WEB_ADDRESS=0.0.0.0:8082 -WEB_PUBLIC_URL=localhost:8082 +ETH_NODE_CHAIN_ID=421614 +OPENAI_BASE_URL=http://localhost:8080/v1 PROXY_STORE_CHAT_CONTEXT=true -PROXY_STORAGE_PATH=./data/ # or for windows=.\data\ \ No newline at end of file +# PROXY_STORAGE_PATH=.\data\ (for windows) +PROXY_STORAGE_PATH=./data/ +LOG_COLOR=true diff --git a/proxy-router/.env.example.win b/proxy-router/.env.example.win index 9892160f..7332de32 100644 --- a/proxy-router/.env.example.win +++ b/proxy-router/.env.example.win @@ -1,7 +1,10 @@ -DIAMOND_CONTRACT_ADDRESS=0x10777866547c53cbd69b02c5c76369d7e24e7b10 # as of 10/30/2024 -MOR_TOKEN_ADDRESS=0x34a285a1b1c166420df5b6630132542923b5b27e # as of 10/30/2024 +# Contract and Token current as of 11/5/2024 +DIAMOND_CONTRACT_ADDRESS=0x10777866547c53cbd69b02c5c76369d7e24e7b10 +MOR_TOKEN_ADDRESS=0x34a285a1b1c166420df5b6630132542923b5b27e EXPLORER_API_URL="https://api-sepolia.arbiscan.io/api" -ETH_NODE_CHAIN_ID=421614 # Testnet Chain ID -OPENAI_BASE_URL=http://localhost:8080/v1 # Change to your OpenAI API port for local model +ETH_NODE_CHAIN_ID=421614 +OPENAI_BASE_URL=http://localhost:8080/v1 PROXY_STORE_CHAT_CONTEXT=true -PROXY_STORAGE_PATH=.\data\ # or for unix=./data/ \ No newline at end of file +# PROXY_STORAGE_PATH=./data/ (for mac and *nix) +PROXY_STORAGE_PATH=.\data\ +LOG_COLOR=true From 723faedd6b22423dde231f2374f8a73a65509d03 Mon Sep 17 00:00:00 2001 From: abs2023 Date: Tue, 5 Nov 2024 16:41:36 -0500 Subject: [PATCH 089/260] DEV-73 environmnet file confg and update release build to generate release on stg and main --- .github/workflows/build.yml | 101 +++++++++++++----------- .github/workflows/proxy-router.main.env | 13 +++ .github/workflows/proxy-router.test.env | 12 +++ .github/workflows/ui-desktop.main.env | 19 +++++ .github/workflows/ui-desktop.test.env | 18 +++++ Makefile | 7 -- docker-compose-startup.sh | 14 ---- docker-compose.yaml | 30 ------- docs/models-config.json.md | 41 ++++++++++ docs/proxy-router.full.env | 98 +++++++++++++++++++++++ docs/ui-desktop.full.env | 54 +++++++++++++ proxy-router/.env.example | 14 +++- proxy-router/.env.example.win | 14 +++- proxy-router/.env.full | 61 -------------- proxy-router/.env.oldexample | 36 --------- proxy-router/models-config.json.example | 10 +-- 16 files changed, 334 insertions(+), 208 deletions(-) create mode 100644 .github/workflows/proxy-router.main.env create mode 100644 .github/workflows/proxy-router.test.env create mode 100644 .github/workflows/ui-desktop.main.env create mode 100644 .github/workflows/ui-desktop.test.env delete mode 100644 Makefile delete mode 100755 docker-compose-startup.sh delete mode 100644 docker-compose.yaml create mode 100644 docs/models-config.json.md create mode 100644 docs/proxy-router.full.env create mode 100644 docs/ui-desktop.full.env delete mode 100644 proxy-router/.env.full delete mode 100644 proxy-router/.env.oldexample diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 19bcee99..0ee75078 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,6 +10,7 @@ on: push: branches: - main + - stg paths: ['.github/workflows/**', '**/Makefile', '**/*.go', '**/*.json', '**/*.yml', '**/*.ts', '**/*.js'] pull_request: types: [opened, reopened, synchronize] @@ -23,6 +24,37 @@ defaults: run: shell: bash +# Define reusable step groups at the top using YAML anchors +copy_env_files: ©_env_files + - name: Copy Environment Files + run: | + cp /github/workspace/proxy-router/models-config.json.example /github/workspace/proxy-router/models-config.json + if [[ "${GITHUB_REF}" == "refs/heads/main" ]]; then + cp /github/workspace/.github/workflows/proxy-router.main.env /github/workspace/proxy-router/.env + cp /github/workspace/.github/workflows/ui-desktop.main.env /github/workspace/ui-desktop/.env + elif [[ "${GITHUB_REF}" == "refs/heads/stg" ]]; then + cp /github/workspace/.github/workflows/proxy-router.test.env /github/workspace/proxy-router/.env + cp /github/workspace/.github/workflows/ui-desktop.test.env /github/workspace/ui-desktop/.env + else + cp /github/workspace/proxy-router/.env.example /github/workspace/proxy-router/.env + cp /github/workspace/ui-desktop/.env.example /github/workspace/ui-desktop/.env + fi + +gen_tag_name: &gen_tag_name + - name: Determine tag name + id: tag + run: | + SHORT_HASH="$(git rev-parse --short=7 HEAD)" + if [[ "${GITHUB_REF}" == "refs/heads/main" ]]; then + PREFIX="main-" + elif [[ "${GITHUB_REF}" == "refs/heads/stg" ]]; then + PREFIX="test-" + else + PREFIX="" + fi + TAG_NAME="${PREFIX}${SHORT_HASH}" + echo "name=${TAG_NAME}" >> $GITHUB_OUTPUT + jobs: Ubuntu-22-x64: runs-on: ubuntu-22.04 @@ -55,26 +87,22 @@ jobs: cd ../ui-desktop yarn install --network-timeout 600000 + - <<: *copy_env_files + + - <<: *gen_tag_name + - name: Build id: build run: | cd launcher make cd ../proxy-router - cp ./models-config.json.example ../ui-desktop/models-config.json make build cd ../cli make build cd ../ui-desktop - cp ./.env.example .env yarn build:linux - - name: Determine tag name - id: tag - run: | - SHORT_HASH="$(git rev-parse --short=7 HEAD)" - echo "name=${SHORT_HASH}" >> $GITHUB_OUTPUT - - name: Pack artifacts id: pack_artifacts run: | @@ -85,8 +113,6 @@ jobs: wget -nv https://huggingface.co/TheBloke/TinyLlama-1.1B-Chat-v1.0-GGUF/resolve/main/$MODEL unzip -o -j $LLAMACPP build/bin/llama-server echo '{"run":["./llama-server -m ./'$MODEL'","./proxy-router","./ui-desktop-1.0.0.AppImage"]}' > mor-launch.json - cp ./proxy-router/.env.example .env - cp ./proxy-router/models-config.json.example models-config.json mv ./cli/mor-cli mor-cli zip -j $ARTIFACT ./LICENSE ./launcher/mor-launch llama-server ./proxy-router/bin/proxy-router .env $MODEL mor-launch.json ./ui-desktop/dist/ui-desktop-1.0.0.AppImage models-config.json mor-cli @@ -127,26 +153,22 @@ jobs: cd ../ui-desktop yarn install --network-timeout 600000 + - <<: *copy_env_files + + - <<: *gen_tag_name + - name: Build id: build run: | cd launcher make cd ../proxy-router - cp ./models-config.json.example ../ui-desktop/models-config.json make build cd ../cli make build cd ../ui-desktop - cp ./.env.example .env yarn build:mac - - name: Determine tag name - id: tag - run: | - SHORT_HASH="$(git rev-parse --short=7 HEAD)" - echo "name=${SHORT_HASH}" >> $GITHUB_OUTPUT - - name: Pack artifacts id: pack_artifacts run: | @@ -157,8 +179,6 @@ jobs: wget -nv https://huggingface.co/TheBloke/TinyLlama-1.1B-Chat-v1.0-GGUF/resolve/main/$MODEL unzip -o -j $LLAMACPP build/bin/llama-server echo '{"run":["./llama-server -m ./'$MODEL'","./proxy-router","./ui-desktop.app/Contents/MacOS/ui-desktop"]}' > mor-launch.json - cp ./proxy-router/.env.example .env - cp ./proxy-router/models-config.json.example models-config.json mv ./cli/mor-cli mor-cli unzip ./ui-desktop/dist/ui-desktop-1.0.0-mac.zip zip -j $ARTIFACT ./LICENSE ./launcher/mor-launch ./proxy-router/bin/proxy-router .env llama-server $MODEL mor-launch.json models-config.json mor-cli @@ -201,26 +221,22 @@ jobs: cd ../ui-desktop yarn install --network-timeout 600000 + - <<: *copy_env_files + + - <<: *gen_tag_name + - name: Build id: build run: | cd launcher make cd ../proxy-router - cp ./models-config.json.example ../ui-desktop/models-config.json make build cd ../cli make build cd ../ui-desktop - cp ./.env.example .env yarn build:mac - - name: Determine tag name - id: tag - run: | - SHORT_HASH="$(git rev-parse --short=7 HEAD)" - echo "name=${SHORT_HASH}" >> $GITHUB_OUTPUT - - name: Pack artifacts id: pack_artifacts run: | @@ -231,8 +247,6 @@ jobs: wget -nv https://huggingface.co/TheBloke/TinyLlama-1.1B-Chat-v1.0-GGUF/resolve/main/$MODEL unzip -o -j $LLAMACPP build/bin/llama-server echo '{"run":["./llama-server -m ./'$MODEL'","./proxy-router","./ui-desktop.app/Contents/MacOS/ui-desktop"]}' > mor-launch.json - cp ./proxy-router/.env.example .env - cp ./proxy-router/models-config.json.example models-config.json mv ./cli/mor-cli mor-cli unzip ./ui-desktop/dist/ui-desktop-1.0.0-arm64-mac.zip zip -j $ARTIFACT ./LICENSE ./launcher/mor-launch ./proxy-router/bin/proxy-router .env llama-server $MODEL mor-launch.json models-config.json mor-cli @@ -266,9 +280,10 @@ jobs: cache: 'yarn' cache-dependency-path: ui-desktop/yarn.lock - - name: Install wget + - name: Install wget and sed run: | choco install wget --no-progress + choco install sed --no-progress - name: Install dependencies run: | @@ -279,26 +294,22 @@ jobs: cd ../ui-desktop yarn install --network-timeout 600000 + - <<: *copy_env_files + + - <<: *gen_tag_name + - name: Build id: build run: | cd launcher make cd ../proxy-router - cp ./models-config.json.example ../ui-desktop/models-config.json make build cd ../cli make build cd ../ui-desktop - cp ./.env.example .env yarn build:win - - name: Determine tag name - id: tag - run: | - SHORT_HASH="$(git rev-parse --short=7 HEAD)" - echo "name=${SHORT_HASH}" >> $GITHUB_OUTPUT - - name: Pack artifacts id: pack_artifacts run: | @@ -309,8 +320,8 @@ jobs: wget -nv https://huggingface.co/TheBloke/TinyLlama-1.1B-Chat-v1.0-GGUF/resolve/main/$MODEL unzip -o -j $LLAMACPP llama-server.exe llama.dll ggml.dll echo '{"run":["./llama-server.exe -m ./'$MODEL'","./proxy-router.exe","./ui-desktop-1.0.0.exe"]}' > mor-launch.json - cp ./proxy-router/.env.example.win .env - cp ./proxy-router/models-config.json.example models-config.json + mv .env .env.tmp + sed 's|\./data/|.\\data\\|g' .env.tmp > .env mv ./proxy-router/bin/proxy-router proxy-router.exe mv ./cli/mor-cli mor-cli.exe mv ./launcher/mor-launch mor-launch.exe @@ -324,7 +335,7 @@ jobs: name: mor-launch-win-x64.zip release: - if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/main' ) || github.event.inputs.create_release == 'true' }} + if: ${{ (github.event_name == 'push' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/stg')) || github.event.inputs.create_release == 'true' }} runs-on: ubuntu-latest needs: - Ubuntu-22-x64 @@ -336,11 +347,7 @@ jobs: id: checkout uses: actions/checkout@v4 - - name: Determine tag name - id: tag - run: | - SHORT_HASH="$(git rev-parse --short=7 HEAD)" - echo "name=${SHORT_HASH}" >> $GITHUB_OUTPUT + - <<: *gen_tag_name - name: Download artifacts id: download-artifact diff --git a/.github/workflows/proxy-router.main.env b/.github/workflows/proxy-router.main.env new file mode 100644 index 00000000..c6a50ba9 --- /dev/null +++ b/.github/workflows/proxy-router.main.env @@ -0,0 +1,13 @@ +# This file is used to set the environment variables for the cicd workflow +# To Generate the STG or TestNet release +# Contract and Token current as of 11/5/2024 (and are using the same values as the testnet) +# ...when mainnet release is imminent, update the values +DIAMOND_CONTRACT_ADDRESS=0x10777866547c53cbd69b02c5c76369d7e24e7b10 +MOR_TOKEN_ADDRESS=0x34a285a1b1c166420df5b6630132542923b5b27e +EXPLORER_API_URL="https://api-sepolia.arbiscan.io/api" +ETH_NODE_CHAIN_ID=421614 +OPENAI_BASE_URL=http://localhost:8080/v1 +PROXY_STORE_CHAT_CONTEXT=true +# PROXY_STORAGE_PATH=.\data\ (for windows) +PROXY_STORAGE_PATH=./data/ +LOG_COLOR=true \ No newline at end of file diff --git a/.github/workflows/proxy-router.test.env b/.github/workflows/proxy-router.test.env new file mode 100644 index 00000000..099d4a8f --- /dev/null +++ b/.github/workflows/proxy-router.test.env @@ -0,0 +1,12 @@ +# This file is used to set the environment variables for the cicd workflow +# To Generate the STG or TestNet release +# Contract and Token current as of 11/5/2024 +DIAMOND_CONTRACT_ADDRESS=0x10777866547c53cbd69b02c5c76369d7e24e7b10 +MOR_TOKEN_ADDRESS=0x34a285a1b1c166420df5b6630132542923b5b27e +EXPLORER_API_URL="https://api-sepolia.arbiscan.io/api" +ETH_NODE_CHAIN_ID=421614 +OPENAI_BASE_URL=http://localhost:8080/v1 +PROXY_STORE_CHAT_CONTEXT=true +# PROXY_STORAGE_PATH=.\data\ (for windows) +PROXY_STORAGE_PATH=./data/ +LOG_COLOR=true \ No newline at end of file diff --git a/.github/workflows/ui-desktop.main.env b/.github/workflows/ui-desktop.main.env new file mode 100644 index 00000000..d8294a90 --- /dev/null +++ b/.github/workflows/ui-desktop.main.env @@ -0,0 +1,19 @@ +# This file is used to set the environment variables for the cicd workflow +# To Generate the MAIN or MAINNET release +# Contract and Token current as of 11/5/2024 (and are using the same values as the testnet) +# ...when mainnet release is imminent, update the values +BYPASS_AUTH=false +CHAIN_ID=421614 +DEBUG=false +DEFAULT_SELLER_CURRENCY=BTC +DEV_TOOLS=true +DIAMOND_ADDRESS=0x10777866547c53cbd69b02c5c76369d7e24e7b10 +DISPLAY_NAME=Sepolia Arbitrum +EXPLORER_URL=https://sepolia.arbiscan.io/tx/{{hash}} +IGNORE_DEBUG_LOGS=false +PROXY_WEB_DEFAULT_PORT=8082 +SENTRY_DSN= +SYMBOL_ETH=saETH +SYMBOL_LMR=saMOR +TOKEN_ADDRESS=0x34a285a1b1c166420df5b6630132542923b5b27e +TRACKING_ID= diff --git a/.github/workflows/ui-desktop.test.env b/.github/workflows/ui-desktop.test.env new file mode 100644 index 00000000..827e23c0 --- /dev/null +++ b/.github/workflows/ui-desktop.test.env @@ -0,0 +1,18 @@ +# This file is used to set the environment variables for the cicd workflow +# To Generate the STG or TestNet release +# Contract and Token current as of 11/5/2024 +BYPASS_AUTH=false +CHAIN_ID=421614 +DEBUG=false +DEFAULT_SELLER_CURRENCY=BTC +DEV_TOOLS=true +DIAMOND_ADDRESS=0x10777866547c53cbd69b02c5c76369d7e24e7b10 +DISPLAY_NAME=Sepolia Arbitrum +EXPLORER_URL=https://sepolia.arbiscan.io/tx/{{hash}} +IGNORE_DEBUG_LOGS=false +PROXY_WEB_DEFAULT_PORT=8082 +SENTRY_DSN= +SYMBOL_ETH=saETH +SYMBOL_LMR=saMOR +TOKEN_ADDRESS=0x34a285a1b1c166420df5b6630132542923b5b27e +TRACKING_ID= diff --git a/Makefile b/Makefile deleted file mode 100644 index f2eaeabe..00000000 --- a/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -dev: - docker compose up ollama & - local-run-proxy-router & - cd ui-desktop && npm run dev - -local-run-proxy-router: - docker compose up --build proxy-router \ No newline at end of file diff --git a/docker-compose-startup.sh b/docker-compose-startup.sh deleted file mode 100755 index db5dced3..00000000 --- a/docker-compose-startup.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh - -# Start the 'serve' command in the background -ollama serve & - -# Optionally, wait for 'serve' to be fully ready. Adjust the sleep as necessary. -sleep 10 # This is a simple way. Consider more reliable checking mechanisms. - -# Proceed with other commands -ollama pull llama2 -ollama run llama2 - -# Keep the container running by tailing a file (or another long-running command) -tail -f /dev/null \ No newline at end of file diff --git a/docker-compose.yaml b/docker-compose.yaml deleted file mode 100644 index a76237de..00000000 --- a/docker-compose.yaml +++ /dev/null @@ -1,30 +0,0 @@ -version: '3.8' -services: - proxy-router: - build: - context: ./proxy-router - env_file: - - ./proxy-router/.env - ports: - - 8080:8080 - - 8082:8082 - - 3333:3333 - depends_on: - - ollama - volumes: - - ./proxy-router/logs:/app/logs - - ~/go/pkg/mod:/go/pkg/mod - ollama: - image: ollama/ollama - container_name: ollama - entrypoint: ["/bin/sh", "-c"] - command: ["/docker-compose-startup.sh"] - volumes: - - ollamaconfig:/root/.ollama - - ./docker-compose-startup.sh:/docker-compose-startup.sh - ports: - - "11434:11434" - restart: unless-stopped - -volumes: - ollamaconfig: diff --git a/docs/models-config.json.md b/docs/models-config.json.md new file mode 100644 index 00000000..e1fb352b --- /dev/null +++ b/docs/models-config.json.md @@ -0,0 +1,41 @@ +# Example models config file. Local model configurations are stored in this file +* `rooot_key` (required) is the model id +* `modelName` (required) is the name of the model +* `apiType` (required) is the type of the model api. Currently supported values are "prodia" and "openai" +* `apiUrl` (required) is the url of the LLM server or model API +* `apiKey` (optional) is the api key for the model +* `cononcurrentSlots` (optional) are number of available distinct chats on the llm server and used for capacity policy +* `capacityPolicy` (optional) can be one of the following: "idle_timeout", "simple" + +## Examples of models-config.json entries +* The first key (`0x6a...9018`) is the model id of the local default model (llama2) +* The middle two keys are examples of externally hosted and owned models where the morpheus-proxy-router enables proxying requests to the external model API +* The last key is an example of a model hosted on a server owned by the morpheus-proxy-router operator + +```bash +{ + "0x6a4813e866a48da528c533e706344ea853a1d3f21e37b4c8e7ffd5ff25779018": { + "modelName": "llama2", + "apiType": "openai" + }, + "0x60d5900b10534de1a668fd990bd790fa3fe04df8177e740f249c750023a680fb": { + "modelName": "v1-5-pruned-emaonly.safetensors [d7049739]", + "apiType": "prodia", + "apiUrl": "https://api.prodia.com/v1/sd/generate", + "apiKey": "ed53950-852a-45a7-bf07-47b89bb492e38" + }, + "0x0d90cf8ca0a811a5cd2347148171e9a2401e9fbc32f683b648c5c1381df91ff7": { + "modelName": "animagineXLV3_v30.safetensors [75f2f05b]", + "apiType": "prodia", + "apiUrl": "https://api.prodia.com/v1/sdxl/generate", + "apiKey": "ed53950-852a-45a7-bf07-47b89bb492e38" + }, + "0x06c7b502d0b7f14a96bb4fda5f2ba941068601d5f6b90804c9330e96b093b0ce": { + "modelName": "LMR-Collective Cognition Mistral 7B", + "apiType": "openai", + "apiUrl": "http://llmserver.domain.io:8080/v1", + "concurrentSlots": 8, + "capacityPolicy": "simple" + } +} +``` \ No newline at end of file diff --git a/docs/proxy-router.full.env b/docs/proxy-router.full.env new file mode 100644 index 00000000..9b42faeb --- /dev/null +++ b/docs/proxy-router.full.env @@ -0,0 +1,98 @@ +# Full set of proxy-router variables based on the proxy-router/internal/config/config.go file +# Includes known TESTNET and MAINNET Values if/when known +# Currently aligned to TESTNET, but after MAINNET launch, will be updated to MAINNET values + +# Application Configurations +# Set to true to reset keychain on start +APP_RESET_KEYCHAIN=false + +# AI Engine Configurations +# Base URL for OpenAI API (required, must be a valid URL) +OPENAI_BASE_URL= +# API key for OpenAI +OPENAI_API_KEY= + +# Blockchain Configurations +# Ethereum Chain ID (must be a number) +# TESTNET: 421614, MAINNET: 1 +ETH_NODE_CHAIN_ID=421614 +# Ethereum node URL (optional, must be a valid URL) +ETH_NODE_ADDRESS= +# Set to true to disable EIP-1559 transactions +ETH_NODE_LEGACY_TX=false +# Blockchain explorer API URL (required, must be a valid URL) +# TESTNET: https://api-sepolia.arbiscan.io/api, MAINNET: https://api.arbiscan.io/api +EXPLORER_API_URL=https://api-sepolia.arbiscan.io/api +# Set to true to enable subscriptions for blockchain events, otherwise, polling will be used +ETH_NODE_USE_SUBSCRIPTIONS=false +# Interval for polling eth node for new events (defaults to 1s) +ETH_NODE_POLLING_INTERVAL=1s +# Maximum number of reconnect attempts to Ethereum node (defaults to 30) +ETH_NODE_MAX_RECONNECTS=30 + +# Environment Configuration +# Environment for the application (default is "development") +ENVIRONMENT=development + +# Marketplace Configurations +# Diamond contract address (optional, must be a valid Ethereum address) +# TESTNET: 0x10777866547c53cbd69b02c5c76369d7e24e7b10, MAINNET: TBD +DIAMOND_CONTRACT_ADDRESS=0x10777866547c53cbd69b02c5c76369d7e24e7b10 +# MOR token address (optional, must be a valid Ethereum address) +# TESTNET: 0x34a285a1b1c166420df5b6630132542923b5b27e, MAINNET: TBD +MOR_TOKEN_ADDRESS=0x34a285a1b1c166420df5b6630132542923b5b27e +# Private key for signing transactions; if not set, the system keychain will be used +WALLET_PRIVATE_KEY= + +# Logging Configurations +# Enable colored logging +LOG_COLOR=false +# Folder path for log files (optional, must be a valid directory path) +LOG_FOLDER_PATH= +# Set to true for production log format +LOG_IS_PROD=false +# Log format as JSON +LOG_JSON=false +# Log levels for various components (one of debug info warn error dpanic panic fatal) +LOG_LEVEL_APP=debug +LOG_LEVEL_CONNECTION=info +LOG_LEVEL_PROXY=info +LOG_LEVEL_SCHEDULER=info +LOG_LEVEL_CONTRACT=debug +LOG_LEVEL_RPC=info +LOG_LEVEL_BADGER=info + +# Proxy Configurations +# Address for the proxy (default is "0.0.0.0:3333") +PROXY_ADDRESS=0.0.0.0:3333 +# Path for proxy storage (default is "./data/badger/") +PROXY_STORAGE_PATH=./data/badger/ +# Set to true to store chat context in proxy storage +PROXY_STORE_CHAT_CONTEXT=true +# Path to models configuration file +MODELS_CONFIG_PATH= +# Comma-separated list of provider addresses allowed to open a session +PROVIDER_ALLOW_LIST= + +# System Configurations +# Enable system-level configuration adjustments +SYS_ENABLE=false +# Local port range (default is "1024 65535") +SYS_LOCAL_PORT_RANGE=1024 65535 +# Max backlog for network devices (default is "100000") +SYS_NET_DEV_MAX_BACKLOG=100000 +# Hard limit for open file descriptors (default is 524288) +SYS_RLIMIT_HARD=524288 +# Soft limit for open file descriptors (default is 524288) +SYS_RLIMIT_SOFT=524288 +# Maximum connections allowed in the queue before they are refused +# (default is "100000" for Linux, "2048" for Darwin/macOS) +SYS_SOMAXCONN=100000 +# Maximum number of half-open connections that can be queued (default is "100000") +SYS_TCP_MAX_SYN_BACKLOG=100000 + +# Web Configurations +# Address for the web server (default is "0.0.0.0:8082") +WEB_ADDRESS=0.0.0.0:8082 +# Public URL of the proxyrouter (falls back to WEB_ADDRESS if empty) +WEB_PUBLIC_URL=http://localhost:8082 \ No newline at end of file diff --git a/docs/ui-desktop.full.env b/docs/ui-desktop.full.env new file mode 100644 index 00000000..9f3a4027 --- /dev/null +++ b/docs/ui-desktop.full.env @@ -0,0 +1,54 @@ +# Full set of ui-desktop variables based on the ui-desktop/src/main/config/index.ts file +# Includes known TESTNET and MAINNET Values if/when known +# Currently aligned to TESTNET, but after MAINNET launch, will be updated to MAINNET values + +# Chain Configurations +# Enable bypass authentication (set to "true" to bypass authentication) +BYPASS_AUTH=false + +# Chain ID for blockchain network (required) +# Ethereum Chain ID (must be a number) +# TESTNET: 421614, MAINNET: 1 +CHAIN_ID= + +# Default currency symbol for sellers (default is "BTC") +DEFAULT_SELLER_CURRENCY=BTC + +# Diamond contract address for the chain (required) +# TESTNET: 0x10777866547c53cbd69b02c5c76369d7e24e7b10, MAINNET: TBD +DIAMOND_ADDRESS=0x10777866547c53cbd69b02c5c76369d7e24e7b10 + +# Display name for the application (optional) +DISPLAY_NAME= + +# Blockchain explorer URL (optional, must be a valid URL) +EXPLORER_URL= + +# Local Proxy Router URL (default is "http://localhost:8082") +# Automatically set based on PROXY_WEB_DEFAULT_PORT or defaults to 8082 +PROXY_WEB_DEFAULT_PORT=8082 + +# Token contract address for the main token (required) +# TESTNET: 0x34a285a1b1c166420df5b6630132542923b5b27e, MAINNET: TBD +TOKEN_ADDRESS=0x34a285a1b1c166420df5b6630132542923b5b27e + +# Symbol for the primary token (default is "MOR") +SYMBOL_LMR=MOR + +# Symbol for Ethereum token (default is "ETH") +SYMBOL_ETH=ETH + +# Debug Configurations +# Enable debug mode (set to "true" to enable debug logging, requires IGNORE_DEBUG_LOGS=false) +DEBUG=false +# Ignore debug logs even if DEBUG is enabled (set to "true" to ignore) +IGNORE_DEBUG_LOGS=false + +# Enable developer tools in the Electron app (set to "true" to enable) +DEV_TOOLS=false + +# Sentry DSN for error tracking (optional) +SENTRY_DSN= + +# Google Analytics tracking ID (optional) +TRACKING_ID= \ No newline at end of file diff --git a/proxy-router/.env.example b/proxy-router/.env.example index bdcd9366..1c1b6c5b 100644 --- a/proxy-router/.env.example +++ b/proxy-router/.env.example @@ -1,10 +1,20 @@ -# Contract and Token current as of 11/5/2024 +# Minimalist ENV File to enable the proxy-router to run +# Contract and Token current as of 11/5/2024 and are TESTNET values +# ...when mainnet release is imminent, update the values to mainnet alignment +# Full ENV details can be found in /docs/proxy-router.full.env + +WALLET_PRIVATE_KEY= DIAMOND_CONTRACT_ADDRESS=0x10777866547c53cbd69b02c5c76369d7e24e7b10 MOR_TOKEN_ADDRESS=0x34a285a1b1c166420df5b6630132542923b5b27e EXPLORER_API_URL="https://api-sepolia.arbiscan.io/api" ETH_NODE_CHAIN_ID=421614 +ETH_NODE_USE_SUBSCRIPTIONS=false +ETH_NODE_ADDRESS= +ENVIRONMENT=development +ETH_NODE_LEGACY_TX=false OPENAI_BASE_URL=http://localhost:8080/v1 PROXY_STORE_CHAT_CONTEXT=true -# PROXY_STORAGE_PATH=.\data\ (for windows) PROXY_STORAGE_PATH=./data/ LOG_COLOR=true +WEB_ADDRESS=0.0.0.0:8082 +WEB_PUBLIC_URL=http://localhost:8082 \ No newline at end of file diff --git a/proxy-router/.env.example.win b/proxy-router/.env.example.win index 7332de32..1774188e 100644 --- a/proxy-router/.env.example.win +++ b/proxy-router/.env.example.win @@ -1,10 +1,20 @@ -# Contract and Token current as of 11/5/2024 +# Minimalist ENV File to enable the proxy-router to run +# Contract and Token current as of 11/5/2024 and are TESTNET values +# ...when mainnet release is imminent, update the values to mainnet alignment +# Full ENV details can be found in /docs/proxy-router.full.env + +WALLET_PRIVATE_KEY= DIAMOND_CONTRACT_ADDRESS=0x10777866547c53cbd69b02c5c76369d7e24e7b10 MOR_TOKEN_ADDRESS=0x34a285a1b1c166420df5b6630132542923b5b27e EXPLORER_API_URL="https://api-sepolia.arbiscan.io/api" ETH_NODE_CHAIN_ID=421614 +ETH_NODE_USE_SUBSCRIPTIONS=false +ETH_NODE_ADDRESS= +ENVIRONMENT=development +ETH_NODE_LEGACY_TX=false OPENAI_BASE_URL=http://localhost:8080/v1 PROXY_STORE_CHAT_CONTEXT=true -# PROXY_STORAGE_PATH=./data/ (for mac and *nix) PROXY_STORAGE_PATH=.\data\ LOG_COLOR=true +WEB_ADDRESS=0.0.0.0:8082 +WEB_PUBLIC_URL=http://localhost:8082 \ No newline at end of file diff --git a/proxy-router/.env.full b/proxy-router/.env.full deleted file mode 100644 index d12a73b7..00000000 --- a/proxy-router/.env.full +++ /dev/null @@ -1,61 +0,0 @@ -# Environment variables extracted from /proxy-router/internal/config/config.go -# Variabls with ** in the comments are required to be different between Eth Networks (TestNet or MainNET) -# Updated 10/30/2024 - -# App struct -APP_RESET_KEYCHAIN= # bool desc:"reset keychain on start" - -# AIEngine struct -OPENAI_BASE_URL= # string validate:"required,url" -OPENAI_API_KEY= # string - -# Blockchain struct -ETH_NODE_CHAIN_ID= # ** int validate:"number" -ETH_NODE_ADDRESS= # string validate:"omitempty,url" -ETH_NODE_LEGACY_TX= # bool desc:"use it to disable EIP-1559 transactions" -EXPLORER_API_URL= # ** string validate:"required,url" -ETH_NODE_USE_SUBSCRIPTIONS= # bool desc:"set it to true to enable subscriptions for blockchain events, otherwise default polling will be used" -ETH_NODE_POLLING_INTERVAL= # time.Duration validate:"omitempty,duration" desc:"interval for polling eth node for new events" -ETH_NODE_MAX_RECONNECTS= # int validate:"omitempty,gte=0" desc:"max reconnects to eth node" - -# Environment string -ENVIRONMENT= # ** string validate:"oneof=development production" - -# Marketplace struct -DIAMOND_CONTRACT_ADDRESS= # ** common.Address validate:"omitempty,eth_addr" -MOR_TOKEN_ADDRESS= # ** common.Address validate:"omitempty,eth_addr" -WALLET_PRIVATE_KEY= # lib.HexString desc:"if set, will use this private key to sign transactions, otherwise it will be retrieved from the system keychain" - -# Log struct -LOG_COLOR= # bool -LOG_FOLDER_PATH= # string validate:"omitempty,dirpath" desc:"enables file logging and sets the folder path" -LOG_IS_PROD= # ** bool validate:"" desc:"affects the format of the log output" -LOG_JSON= # bool -LOG_LEVEL_APP= # string validate:"omitempty,oneof=debug info warn error dpanic panic fatal" -LOG_LEVEL_CONNECTION= # string validate:"omitempty,oneof=debug info warn error dpanic panic fatal" -LOG_LEVEL_PROXY= # string validate:"omitempty,oneof=debug info warn error dpanic panic fatal" -LOG_LEVEL_SCHEDULER= # string validate:"omitempty,oneof=debug info warn error dpanic panic fatal" -LOG_LEVEL_CONTRACT= # string validate:"omitempty,oneof=debug info warn error dpanic panic fatal" -LOG_LEVEL_RPC= # string validate:"omitempty,oneof=debug info warn error dpanic panic fatal" -LOG_LEVEL_BADGER= # string validate:"omitempty,oneof=debug info warn error dpanic panic fatal" - -# Proxy struct -PROXY_ADDRESS= # string validate:"required,hostname_port" -PROXY_MAX_CACHED_DESTS= # int validate:"required,number" desc:"maximum number of cached destinations per proxy" -PROXY_STORAGE_PATH= # string validate:"omitempty,dirpath" desc:"enables file storage and sets the folder path" -PROXY_STORE_CHAT_CONTEXT= # bool desc:"store chat context in the proxy storage" -MODELS_CONFIG_PATH= # string validate:"omitempty" -PROVIDER_ALLOW_LIST= # string validate:"omitempty" desc:"comma separated list of provider addresses allowed to open session with" - -# System struct -SYS_ENABLE= # bool desc:"enable system level configuration adjustments" -SYS_LOCAL_PORT_RANGE= # string desc:"" -SYS_NET_DEV_MAX_BACKLOG= # string desc:"" -SYS_RLIMIT_HARD= # uint64 desc:"" -SYS_RLIMIT_SOFT= # uint64 desc:"" -SYS_SOMAXCONN= # string desc:"" -SYS_TCP_MAX_SYN_BACKLOG= # string desc:"" - -# Web struct -WEB_ADDRESS= # string validate:"required,hostname_port" desc:"http server address host:port" -WEB_PUBLIC_URL= # string validate:"omitempty,url" desc:"public url of the proxyrouter, falls back to web-address if empty" \ No newline at end of file diff --git a/proxy-router/.env.oldexample b/proxy-router/.env.oldexample deleted file mode 100644 index 28ec9e57..00000000 --- a/proxy-router/.env.oldexample +++ /dev/null @@ -1,36 +0,0 @@ -#WALLET_PRIVATE_KEY= # Private Key from your Wallet as Consumer or Provider (needed for the proxy-router to sign transactions) -#ETH_NODE_ADDRESS= # Recommend using your own private ETH Node Address for better performance (via Alchemy or Infura) -#ETH_NODE_USE_SUBSCRIPTIONS= # true if using default http - -ETH_NODE_CHAIN_ID=421614 # Testnet Chain ID -DIAMOND_CONTRACT_ADDRESS=0x10777866547c53cbd69b02c5c76369d7e24e7b10 # as of 10/30/2024 -MOR_TOKEN_ADDRESS=0x34a285a1b1c166420df5b6630132542923b5b27e # as of 10/30/2024 - -WEB_ADDRESS=0.0.0.0:8082 # Change to your desired port that your Proxy-router API (Swagger should be listening on) -WEB_PUBLIC_URL=localhost:8082 # Change to your desired port should match WEB_ADDRESS port number -OPENAI_BASE_URL=http://localhost:8080/v1 # Change to your OpenAI API port for local model - -#PROVIDER_ALLOW_LIST= #Comma separated ProviderID list eg: 0x2736848ba8BfC010C845A3c95B567c5979E4C997,0x32c086D54b7CfddBEBF68390B0BA2fd597142E1C -PROXY_ADDRESS=0.0.0.0:3333 -PROXY_STORAGE_PATH=./data/ -PROXY_STORE_CHAT_CONTEXT=true - -#MODELS_CONFIG_PATH= #optional for providers serving multiple sessions ... requires valid models-config.json -ENVIRONMENT=development -ETH_NODE_LEGACY_TX=false -EXPLORER_API_URL="https://api-sepolia.arbiscan.io/api" -LOG_COLOR=true -LOG_FOLDER_PATH= -LOG_LEVEL_APP=info -LOG_LEVEL_CONNECTION=info -LOG_LEVEL_PROXY=info -LOG_LEVEL_SCHEDULER=info -OPENAI_API_KEY= #optional - -SYS_ENABLE=false -SYS_LOCAL_PORT_RANGE=1024 65535 -SYS_NET_DEV_MAX_BACKLOG=100000 -SYS_RLIMIT_HARD=524288 -SYS_RLIMIT_SOFT=524288 -SYS_SOMAXCONN=100000 -SYS_TCP_MAX_SYN_BACKLOG=100000 \ No newline at end of file diff --git a/proxy-router/models-config.json.example b/proxy-router/models-config.json.example index c0a3e74d..9ca864aa 100644 --- a/proxy-router/models-config.json.example +++ b/proxy-router/models-config.json.example @@ -1,14 +1,6 @@ { - "0x2d4b79107cc0b262f29628d97e6a4905a37e7fc9cd820dbdaf359e9ff5f5d9cf": { - "modelName": "v1-5-pruned-emaonly.safetensors [d7049739]", - "apiType": "prodia", - "apiUrl": "https://api.prodia.com/v1/sd/generate", - "apiKey": "API_KEY_HERE" - }, "0x6a4813e866a48da528c533e706344ea853a1d3f21e37b4c8e7ffd5ff25779018": { "modelName": "llama2", - "apiType": "openai", - "concurrentSlots": 10, - "capacityPolicy": "idle_timeout" + "apiType": "openai" } } \ No newline at end of file From 78be0d0499e1cd65c50fc891b026638676b1ee51 Mon Sep 17 00:00:00 2001 From: abs2023 Date: Wed, 6 Nov 2024 08:50:08 -0500 Subject: [PATCH 090/260] added .env copy to root, changed pathing and updated doc names --- .github/workflows/build.yml | 18 ++++++++++-------- ...xy-router.full.env => proxy-router.all.env} | 0 ...{ui-desktop.full.env => ui-desktop.all.env} | 0 3 files changed, 10 insertions(+), 8 deletions(-) rename docs/{proxy-router.full.env => proxy-router.all.env} (100%) rename docs/{ui-desktop.full.env => ui-desktop.all.env} (100%) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0ee75078..c87f9efd 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -24,20 +24,22 @@ defaults: run: shell: bash -# Define reusable step groups at the top using YAML anchors copy_env_files: ©_env_files - name: Copy Environment Files run: | - cp /github/workspace/proxy-router/models-config.json.example /github/workspace/proxy-router/models-config.json + cp ./proxy-router/models-config.json.example ./proxy-router/models-config.json if [[ "${GITHUB_REF}" == "refs/heads/main" ]]; then - cp /github/workspace/.github/workflows/proxy-router.main.env /github/workspace/proxy-router/.env - cp /github/workspace/.github/workflows/ui-desktop.main.env /github/workspace/ui-desktop/.env + cp ./.github/workflows/proxy-router.main.env ./proxy-router/.env + cp ./.github/workflows/proxy-router.main.env .env + cp ./.github/workflows/ui-desktop.main.env ./ui-desktop/.env elif [[ "${GITHUB_REF}" == "refs/heads/stg" ]]; then - cp /github/workspace/.github/workflows/proxy-router.test.env /github/workspace/proxy-router/.env - cp /github/workspace/.github/workflows/ui-desktop.test.env /github/workspace/ui-desktop/.env + cp ./.github/workflows/proxy-router.test.env ./proxy-router/.env + cp ./.github/workflows/proxy-router.test.env .env + cp ./.github/workflows/ui-desktop.test.env ./ui-desktop/.env else - cp /github/workspace/proxy-router/.env.example /github/workspace/proxy-router/.env - cp /github/workspace/ui-desktop/.env.example /github/workspace/ui-desktop/.env + cp ./proxy-router/.env.example ./proxy-router/.env + cp ./proxy-router/.env.example .env + cp ./ui-desktop/.env.example ./ui-desktop/.env fi gen_tag_name: &gen_tag_name diff --git a/docs/proxy-router.full.env b/docs/proxy-router.all.env similarity index 100% rename from docs/proxy-router.full.env rename to docs/proxy-router.all.env diff --git a/docs/ui-desktop.full.env b/docs/ui-desktop.all.env similarity index 100% rename from docs/ui-desktop.full.env rename to docs/ui-desktop.all.env From 8613f02982c0f2338b7f7548c4484e4d9659a667 Mon Sep 17 00:00:00 2001 From: abs2023 Date: Wed, 6 Nov 2024 08:56:59 -0500 Subject: [PATCH 091/260] models-config.json copy to root for release --- .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c87f9efd..14e5ba28 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -28,6 +28,7 @@ copy_env_files: ©_env_files - name: Copy Environment Files run: | cp ./proxy-router/models-config.json.example ./proxy-router/models-config.json + cp ./proxy-router/models-config.json.example models-config.json if [[ "${GITHUB_REF}" == "refs/heads/main" ]]; then cp ./.github/workflows/proxy-router.main.env ./proxy-router/.env cp ./.github/workflows/proxy-router.main.env .env From 5fd3ea1239c937fee24bf9c7953b01db75a0c8f4 Mon Sep 17 00:00:00 2001 From: Aleksandr Kukharenko Date: Wed, 6 Nov 2024 16:18:04 +0200 Subject: [PATCH 092/260] feat: close session with user report if provider is not available --- proxy-router/cmd/main.go | 2 +- .../internal/blockchainapi/service.go | 37 ++++-- .../proxyapi/morrpcmessage/mor_rpc.go | 2 +- .../internal/proxyapi/proxy_receiver.go | 1 - .../internal/proxyapi/proxy_sender.go | 114 +++++++++++++++--- 5 files changed, 121 insertions(+), 35 deletions(-) diff --git a/proxy-router/cmd/main.go b/proxy-router/cmd/main.go index 230f7952..919a5de7 100644 --- a/proxy-router/cmd/main.go +++ b/proxy-router/cmd/main.go @@ -266,7 +266,7 @@ func start() error { } } - proxyRouterApi := proxyapi.NewProxySender(publicUrl, wallet, contractLogStorage, sessionStorage, log) + proxyRouterApi := proxyapi.NewProxySender(chainID, publicUrl, wallet, contractLogStorage, sessionStorage, log) blockchainApi := blockchainapi.NewBlockchainService(ethClient, *cfg.Marketplace.DiamondContractAddress, *cfg.Marketplace.MorTokenAddress, cfg.Blockchain.ExplorerApiUrl, wallet, sessionStorage, proxyRouterApi, providerAllowList, proxyLog, cfg.Blockchain.EthLegacyTx) proxyRouterApi.SetSessionService(blockchainApi) aiEngine := aiengine.NewAiEngine(cfg.AIEngine.OpenAIBaseURL, cfg.AIEngine.OpenAIKey, modelConfigLoader, log) diff --git a/proxy-router/internal/blockchainapi/service.go b/proxy-router/internal/blockchainapi/service.go index a990aed1..6fc031e2 100644 --- a/proxy-router/internal/blockchainapi/service.go +++ b/proxy-router/internal/blockchainapi/service.go @@ -47,15 +47,16 @@ type BlockchainService struct { } var ( - ErrPrKey = errors.New("cannot get private key") - ErrTxOpts = errors.New("failed to get transactOpts") - ErrNonce = errors.New("failed to get nonce") - ErrEstimateGas = errors.New("failed to estimate gas") - ErrSignTx = errors.New("failed to sign transaction") - ErrSendTx = errors.New("failed to send transaction") - ErrWaitMined = errors.New("failed to wait for transaction to be mined") - ErrSessionStore = errors.New("failed to store session") - ErrSessionReport = errors.New("failed to get session report from provider") + ErrPrKey = errors.New("cannot get private key") + ErrTxOpts = errors.New("failed to get transactOpts") + ErrNonce = errors.New("failed to get nonce") + ErrEstimateGas = errors.New("failed to estimate gas") + ErrSignTx = errors.New("failed to sign transaction") + ErrSendTx = errors.New("failed to send transaction") + ErrWaitMined = errors.New("failed to wait for transaction to be mined") + ErrSessionStore = errors.New("failed to store session") + ErrSessionReport = errors.New("failed to get session report from provider") + ErrSessionUserReport = errors.New("failed to get session report from user") ErrBid = errors.New("failed to get bid") ErrProvider = errors.New("failed to get provider") @@ -390,9 +391,21 @@ func (s *BlockchainService) CloseSession(ctx context.Context, sessionID common.H return common.Hash{}, lib.WrapError(ErrPrKey, err) } - report, err := s.proxyService.GetSessionReport(ctx, sessionID) + var reportMessage []byte + var signedReport []byte + + report, err := s.proxyService.GetSessionReportFromProvider(ctx, sessionID) if err != nil { - return common.Hash{}, lib.WrapError(ErrSessionReport, err) + s.log.Errorf("Failed to get session report from provider", err) + + s.log.Info("Trying to get session report from user") + reportMessage, signedReport, err = s.proxyService.GetSessionReportFromUser(ctx, sessionID) + if err != nil { + return common.Hash{}, lib.WrapError(ErrSessionUserReport, err) + } + } else { + reportMessage = report.Message + signedReport = report.SignedReport } transactOpt, err := s.getTransactOpts(ctx, prKey) @@ -400,7 +413,7 @@ func (s *BlockchainService) CloseSession(ctx context.Context, sessionID common.H return common.Hash{}, lib.WrapError(ErrTxOpts, err) } - tx, err := s.sessionRouter.CloseSession(transactOpt, sessionID, report.Message, report.SignedReport, prKey) + tx, err := s.sessionRouter.CloseSession(transactOpt, sessionID, reportMessage, signedReport, prKey) if err != nil { return common.Hash{}, lib.WrapError(ErrSendTx, err) } diff --git a/proxy-router/internal/proxyapi/morrpcmessage/mor_rpc.go b/proxy-router/internal/proxyapi/morrpcmessage/mor_rpc.go index ab804ff1..a9b90851 100644 --- a/proxy-router/internal/proxyapi/morrpcmessage/mor_rpc.go +++ b/proxy-router/internal/proxyapi/morrpcmessage/mor_rpc.go @@ -59,7 +59,7 @@ func (m *MORRPCMessage) InitiateSessionResponse(providerPubKey lib.HexString, us }, nil } -func (m *MORRPCMessage) SessionReportResponse(providerPubKey lib.HexString, tps uint32, ttfp uint32, sessionID common.Hash, providerPrivateKeyHex lib.HexString, requestID string, chainID *big.Int) (*RpcResponse, error) { +func (m *MORRPCMessage) SessionReportResponse(tps uint32, ttfp uint32, sessionID common.Hash, providerPrivateKeyHex lib.HexString, requestID string, chainID *big.Int) (*RpcResponse, error) { timestamp := m.generateTimestamp() report, err := lib.EncodeAbiParameters(sessionReportAbi, []interface{}{sessionID, chainID, big.NewInt(int64(timestamp)), tps, ttfp}) diff --git a/proxy-router/internal/proxyapi/proxy_receiver.go b/proxy-router/internal/proxyapi/proxy_receiver.go index 88b8d75e..e67d1ec5 100644 --- a/proxy-router/internal/proxyapi/proxy_receiver.go +++ b/proxy-router/internal/proxyapi/proxy_receiver.go @@ -216,7 +216,6 @@ func (s *ProxyReceiver) SessionReport(ctx context.Context, msgID string, reqID s } response, err := s.morRpc.SessionReportResponse( - s.publicKeyHex, uint32(tps), uint32(ttft), common.HexToHash(session.Id), diff --git a/proxy-router/internal/proxyapi/proxy_sender.go b/proxy-router/internal/proxyapi/proxy_sender.go index abb0c4b2..c4e962b6 100644 --- a/proxy-router/internal/proxyapi/proxy_sender.go +++ b/proxy-router/internal/proxyapi/proxy_sender.go @@ -45,6 +45,7 @@ type SessionService interface { } type ProxyServiceSender struct { + chainID *big.Int publicUrl *url.URL privateKey interfaces.PrKeyProvider logStorage *lib.Collection[*interfaces.LogStorage] @@ -54,8 +55,9 @@ type ProxyServiceSender struct { log lib.ILogger } -func NewProxySender(publicUrl *url.URL, privateKey interfaces.PrKeyProvider, logStorage *lib.Collection[*interfaces.LogStorage], sessionStorage *storages.SessionStorage, log lib.ILogger) *ProxyServiceSender { +func NewProxySender(chainID *big.Int, publicUrl *url.URL, privateKey interfaces.PrKeyProvider, logStorage *lib.Collection[*interfaces.LogStorage], sessionStorage *storages.SessionStorage, log lib.ILogger) *ProxyServiceSender { return &ProxyServiceSender{ + chainID: chainID, publicUrl: publicUrl, privateKey: privateKey, logStorage: logStorage, @@ -126,7 +128,7 @@ func (p *ProxyServiceSender) InitiateSession(ctx context.Context, user common.Ad return typedMsg, nil } -func (p *ProxyServiceSender) GetSessionReport(ctx context.Context, sessionID common.Hash) (*msgs.SessionReportRes, error) { +func (p *ProxyServiceSender) GetSessionReportFromProvider(ctx context.Context, sessionID common.Hash) (*msgs.SessionReportRes, error) { requestID := "1" prKey, err := p.privateKey.GetPrivateKey() @@ -187,6 +189,55 @@ func (p *ProxyServiceSender) GetSessionReport(ctx context.Context, sessionID com return typedMsg, nil } +func (p *ProxyServiceSender) GetSessionReportFromUser(ctx context.Context, sessionID common.Hash) (lib.HexString, lib.HexString, error) { + session, ok := p.sessionStorage.GetSession(sessionID.Hex()) + if !ok { + return nil, nil, ErrSessionNotFound + } + + tps := 0 + ttft := 0 + for _, tpsVal := range session.TPSScaled1000Arr { + tps += tpsVal + } + for _, ttftVal := range session.TTFTMsArr { + ttft += ttftVal + } + + if len(session.TPSScaled1000Arr) != 0 { + tps /= len(session.TPSScaled1000Arr) + } + if len(session.TTFTMsArr) != 0 { + ttft /= len(session.TTFTMsArr) + } + + prKey, err := p.privateKey.GetPrivateKey() + if err != nil { + return nil, nil, ErrMissingPrKey + } + + response, err := p.morRPC.SessionReportResponse( + uint32(tps), + uint32(ttft), + sessionID, + prKey, + "1", + p.chainID, + ) + + if err != nil { + return nil, nil, lib.WrapError(ErrGenerateReport, err) + } + + var typedMsg *msgs.SessionReportRes + err = json.Unmarshal(*response.Result, &typedMsg) + if err != nil { + return nil, nil, lib.WrapError(ErrInvalidResponse, fmt.Errorf("expected SessionReportRespose, got %s", response.Result)) + } + + return typedMsg.Message, typedMsg.SignedReport, nil +} + func (p *ProxyServiceSender) SendPrompt(ctx context.Context, resWriter ResponderFlusher, prompt *openai.ChatCompletionRequest, sessionID common.Hash) (interface{}, error) { session, ok := p.sessionStorage.GetSession(sessionID.Hex()) if !ok { @@ -218,7 +269,8 @@ func (p *ProxyServiceSender) SendPrompt(ctx context.Context, resWriter Responder return nil, lib.WrapError(ErrCreateReq, err) } - result, err := p.rpcRequestStream(ctx, resWriter, provider.Url, promptRequest, pubKey) + now := time.Now().Unix() + result, ttftMs, totalTokens, err := p.rpcRequestStream(ctx, resWriter, provider.Url, promptRequest, pubKey) if err != nil { if !session.FailoverEnabled { return nil, lib.WrapError(ErrProvider, err) @@ -256,6 +308,17 @@ func (p *ProxyServiceSender) SendPrompt(ctx context.Context, resWriter Responder return p.SendPrompt(ctx, resWriter, prompt, newSessionID) } + requestDuration := int(time.Now().Unix() - now) + if requestDuration == 0 { + requestDuration = 1 + } + session.TTFTMsArr = append(session.TTFTMsArr, ttftMs) + session.TPSScaled1000Arr = append(session.TPSScaled1000Arr, totalTokens*1000/requestDuration) + err = p.sessionStorage.AddSession(session) + if err != nil { + p.log.Error(`failed to update session report stats`, err) + } + return result, nil } @@ -298,27 +361,32 @@ func (p *ProxyServiceSender) rpcRequest(url string, rpcMessage *msgs.RPCMessage) return msg, 0, nil } -func (p *ProxyServiceSender) rpcRequestStream(ctx context.Context, resWriter ResponderFlusher, url string, rpcMessage *msgs.RPCMessage, providerPublicKey lib.HexString) (interface{}, error) { +func (p *ProxyServiceSender) rpcRequestStream(ctx context.Context, resWriter ResponderFlusher, url string, rpcMessage *msgs.RPCMessage, providerPublicKey lib.HexString) (interface{}, int, int, error) { prKey, err := p.privateKey.GetPrivateKey() if err != nil { - return nil, ErrMissingPrKey + return nil, 0, 0, ErrMissingPrKey } conn, err := net.Dial("tcp", url) if err != nil { err = lib.WrapError(fmt.Errorf("failed to connect to provider"), err) p.log.Errorf("%s", err) - return nil, err + return nil, 0, 0, err } defer conn.Close() msgJSON, err := json.Marshal(rpcMessage) if err != nil { - return nil, lib.WrapError(ErrMasrshalFailed, err) + return nil, 0, 0, lib.WrapError(ErrMasrshalFailed, err) } + + ttftMs := 0 + totalTokens := 0 + now := time.Now().UnixMilli() + _, err = conn.Write(msgJSON) if err != nil { - return nil, err + return nil, ttftMs, totalTokens, err } // read response @@ -330,45 +398,49 @@ func (p *ProxyServiceSender) rpcRequestStream(ctx context.Context, resWriter Res for { if ctx.Err() != nil { - return nil, ctx.Err() + return nil, ttftMs, totalTokens, ctx.Err() } var msg *msgs.RpcResponse err = d.Decode(&msg) p.log.Debugf("Received stream msg:", msg) if err != nil { p.log.Warnf("Failed to decode response: %v", err) - return responses, nil + return responses, ttftMs, totalTokens, nil } if msg.Error != nil { - return nil, lib.WrapError(ErrResponseErr, fmt.Errorf("error: %v, data: %v", msg.Error.Message, msg.Error.Data)) + return nil, ttftMs, totalTokens, lib.WrapError(ErrResponseErr, fmt.Errorf("error: %v, data: %v", msg.Error.Message, msg.Error.Data)) } if msg.Result == nil { - return nil, lib.WrapError(ErrInvalidResponse, fmt.Errorf("empty result and no error")) + return nil, ttftMs, totalTokens, lib.WrapError(ErrInvalidResponse, fmt.Errorf("empty result and no error")) + } + + if ttftMs == 0 { + ttftMs = int(time.Now().UnixMilli() - now) } var inferenceRes InferenceRes err := json.Unmarshal(*msg.Result, &inferenceRes) if err != nil { - return nil, lib.WrapError(ErrInvalidResponse, err) + return nil, ttftMs, totalTokens, lib.WrapError(ErrInvalidResponse, err) } sig := inferenceRes.Signature inferenceRes.Signature = []byte{} if !p.validateMsgSignature(inferenceRes, sig, providerPublicKey) { - return nil, ErrInvalidSig + return nil, ttftMs, totalTokens, ErrInvalidSig } var message lib.HexString err = json.Unmarshal(inferenceRes.Message, &message) if err != nil { - return nil, lib.WrapError(ErrInvalidResponse, err) + return nil, ttftMs, totalTokens, lib.WrapError(ErrInvalidResponse, err) } aiResponse, err := lib.DecryptBytes(message, prKey) if err != nil { - return nil, lib.WrapError(ErrDecrFailed, err) + return nil, ttftMs, totalTokens, lib.WrapError(ErrDecrFailed, err) } var payload ChatCompletionResponse @@ -382,22 +454,24 @@ func (p *ProxyServiceSender) rpcRequestStream(ctx context.Context, resWriter Res stop = true } } + totalTokens += len(choices) responses = append(responses, payload) } else { var prodiaPayload aiengine.ProdiaGenerationResult err = json.Unmarshal(aiResponse, &prodiaPayload) if err != nil { - return nil, lib.WrapError(ErrInvalidResponse, err) + return nil, ttftMs, totalTokens, lib.WrapError(ErrInvalidResponse, err) } + totalTokens += 1 responses = append(responses, prodiaPayload) } if ctx.Err() != nil { - return nil, ctx.Err() + return nil, ttftMs, totalTokens, ctx.Err() } _, err = resWriter.Write([]byte(fmt.Sprintf("data: %s\n\n", aiResponse))) if err != nil { - return nil, err + return nil, ttftMs, totalTokens, err } resWriter.Flush() if stop { @@ -405,7 +479,7 @@ func (p *ProxyServiceSender) rpcRequestStream(ctx context.Context, resWriter Res } } - return responses, nil + return responses, ttftMs, totalTokens, nil } func (p *ProxyServiceSender) validateMsgSignature(result any, signature lib.HexString, providerPubicKey lib.HexString) bool { From 52162cb49a6dec96d3cd817afb24e3ca90432d86 Mon Sep 17 00:00:00 2001 From: abs2023 Date: Wed, 6 Nov 2024 09:25:46 -0500 Subject: [PATCH 093/260] update ci-cd to use /actions for DRY --- .github/actions/copy_env_files/actions.yml | 22 ++++++++ .github/actions/gen_tag_name/actions.yml | 18 +++++++ .github/workflows/build.yml | 61 +++++++--------------- 3 files changed, 58 insertions(+), 43 deletions(-) create mode 100644 .github/actions/copy_env_files/actions.yml create mode 100644 .github/actions/gen_tag_name/actions.yml diff --git a/.github/actions/copy_env_files/actions.yml b/.github/actions/copy_env_files/actions.yml new file mode 100644 index 00000000..7b1e99fa --- /dev/null +++ b/.github/actions/copy_env_files/actions.yml @@ -0,0 +1,22 @@ +name: Copy Environment Files +description: "Copies environment files based on branch" +runs: + using: "composite" + steps: + - name: Copy Environment Files + run: | + cp ./proxy-router/models-config.json.example ./proxy-router/models-config.json + cp ./proxy-router/models-config.json.example models-config.json + if [[ "${GITHUB_REF}" == "refs/heads/main" ]]; then + cp ./.github/workflows/proxy-router.main.env ./proxy-router/.env + cp ./.github/workflows/proxy-router.main.env .env + cp ./.github/workflows/ui-desktop.main.env ./ui-desktop/.env + elif [[ "${GITHUB_REF}" == "refs/heads/stg" ]]; then + cp ./.github/workflows/proxy-router.test.env ./proxy-router/.env + cp ./.github/workflows/proxy-router.test.env .env + cp ./.github/workflows/ui-desktop.test.env ./ui-desktop/.env + else + cp ./proxy-router/.env.example ./proxy-router/.env + cp ./proxy-router/.env.example .env + cp ./ui-desktop/.env.example ./ui-desktop/.env + fi \ No newline at end of file diff --git a/.github/actions/gen_tag_name/actions.yml b/.github/actions/gen_tag_name/actions.yml new file mode 100644 index 00000000..6b2df8a6 --- /dev/null +++ b/.github/actions/gen_tag_name/actions.yml @@ -0,0 +1,18 @@ +name: Generate Tag Name +description: "Generates a tag name based on branch" +runs: + using: "composite" + steps: + - name: Determine tag name + id: tag + run: | + SHORT_HASH="$(git rev-parse --short=7 HEAD)" + if [[ "${GITHUB_REF}" == "refs/heads/main" ]]; then + PREFIX="main-" + elif [[ "${GITHUB_REF}" == "refs/heads/stg" ]]; then + PREFIX="test-" + else + PREFIX="" + fi + TAG_NAME="${PREFIX}${SHORT_HASH}" + echo "name=${TAG_NAME}" >> $GITHUB_OUTPUT \ No newline at end of file diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 14e5ba28..e20b2600 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -23,41 +23,7 @@ concurrency: defaults: run: shell: bash - -copy_env_files: ©_env_files - - name: Copy Environment Files - run: | - cp ./proxy-router/models-config.json.example ./proxy-router/models-config.json - cp ./proxy-router/models-config.json.example models-config.json - if [[ "${GITHUB_REF}" == "refs/heads/main" ]]; then - cp ./.github/workflows/proxy-router.main.env ./proxy-router/.env - cp ./.github/workflows/proxy-router.main.env .env - cp ./.github/workflows/ui-desktop.main.env ./ui-desktop/.env - elif [[ "${GITHUB_REF}" == "refs/heads/stg" ]]; then - cp ./.github/workflows/proxy-router.test.env ./proxy-router/.env - cp ./.github/workflows/proxy-router.test.env .env - cp ./.github/workflows/ui-desktop.test.env ./ui-desktop/.env - else - cp ./proxy-router/.env.example ./proxy-router/.env - cp ./proxy-router/.env.example .env - cp ./ui-desktop/.env.example ./ui-desktop/.env - fi -gen_tag_name: &gen_tag_name - - name: Determine tag name - id: tag - run: | - SHORT_HASH="$(git rev-parse --short=7 HEAD)" - if [[ "${GITHUB_REF}" == "refs/heads/main" ]]; then - PREFIX="main-" - elif [[ "${GITHUB_REF}" == "refs/heads/stg" ]]; then - PREFIX="test-" - else - PREFIX="" - fi - TAG_NAME="${PREFIX}${SHORT_HASH}" - echo "name=${TAG_NAME}" >> $GITHUB_OUTPUT - jobs: Ubuntu-22-x64: runs-on: ubuntu-22.04 @@ -90,9 +56,11 @@ jobs: cd ../ui-desktop yarn install --network-timeout 600000 - - <<: *copy_env_files + - name: Copy Environment Files + uses: ./.github/actions/copy_env_files - - <<: *gen_tag_name + - name: Generate Tag Name + uses: ./.github/actions/gen_tag_name - name: Build id: build @@ -156,9 +124,11 @@ jobs: cd ../ui-desktop yarn install --network-timeout 600000 - - <<: *copy_env_files + - name: Copy Environment Files + uses: ./.github/actions/copy_env_files - - <<: *gen_tag_name + - name: Generate Tag Name + uses: ./.github/actions/gen_tag_name - name: Build id: build @@ -224,9 +194,11 @@ jobs: cd ../ui-desktop yarn install --network-timeout 600000 - - <<: *copy_env_files + - name: Copy Environment Files + uses: ./.github/actions/copy_env_files - - <<: *gen_tag_name + - name: Generate Tag Name + uses: ./.github/actions/gen_tag_name - name: Build id: build @@ -297,9 +269,11 @@ jobs: cd ../ui-desktop yarn install --network-timeout 600000 - - <<: *copy_env_files + - name: Copy Environment Files + uses: ./.github/actions/copy_env_files - - <<: *gen_tag_name + - name: Generate Tag Name + uses: ./.github/actions/gen_tag_name - name: Build id: build @@ -350,7 +324,8 @@ jobs: id: checkout uses: actions/checkout@v4 - - <<: *gen_tag_name + - name: Generate Tag Name + uses: ./.github/actions/gen_tag_name - name: Download artifacts id: download-artifact From d4a89c95152b37bcae41f8bc8bd5ec2936a1c2af Mon Sep 17 00:00:00 2001 From: abs2023 Date: Wed, 6 Nov 2024 09:38:07 -0500 Subject: [PATCH 094/260] updated dependent yml file names actions to action --- .github/actions/copy_env_files/{actions.yml => action.yml} | 0 .github/actions/gen_tag_name/{actions.yml => action.yml} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename .github/actions/copy_env_files/{actions.yml => action.yml} (100%) rename .github/actions/gen_tag_name/{actions.yml => action.yml} (100%) diff --git a/.github/actions/copy_env_files/actions.yml b/.github/actions/copy_env_files/action.yml similarity index 100% rename from .github/actions/copy_env_files/actions.yml rename to .github/actions/copy_env_files/action.yml diff --git a/.github/actions/gen_tag_name/actions.yml b/.github/actions/gen_tag_name/action.yml similarity index 100% rename from .github/actions/gen_tag_name/actions.yml rename to .github/actions/gen_tag_name/action.yml From 35aed72d98730215f5377246ce517992f602dc14 Mon Sep 17 00:00:00 2001 From: abs2023 Date: Wed, 6 Nov 2024 09:43:00 -0500 Subject: [PATCH 095/260] added shell:bash for action steps --- .github/actions/copy_env_files/action.yml | 1 + .github/actions/gen_tag_name/action.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/.github/actions/copy_env_files/action.yml b/.github/actions/copy_env_files/action.yml index 7b1e99fa..b52ab7ea 100644 --- a/.github/actions/copy_env_files/action.yml +++ b/.github/actions/copy_env_files/action.yml @@ -4,6 +4,7 @@ runs: using: "composite" steps: - name: Copy Environment Files + shell: bash run: | cp ./proxy-router/models-config.json.example ./proxy-router/models-config.json cp ./proxy-router/models-config.json.example models-config.json diff --git a/.github/actions/gen_tag_name/action.yml b/.github/actions/gen_tag_name/action.yml index 6b2df8a6..28435160 100644 --- a/.github/actions/gen_tag_name/action.yml +++ b/.github/actions/gen_tag_name/action.yml @@ -5,6 +5,7 @@ runs: steps: - name: Determine tag name id: tag + shell: bash run: | SHORT_HASH="$(git rev-parse --short=7 HEAD)" if [[ "${GITHUB_REF}" == "refs/heads/main" ]]; then From 42c51caa7beaaa126261c5851f23a592fd9485d4 Mon Sep 17 00:00:00 2001 From: abs2023 Date: Wed, 6 Nov 2024 09:45:28 -0500 Subject: [PATCH 096/260] update go version for builds from 1.21.x to 1.22.x --- .github/workflows/build.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e20b2600..4988f05c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -35,7 +35,7 @@ jobs: - name: Setup Go uses: actions/setup-go@v5 with: - go-version: '1.21.x' + go-version: '1.22.x' cache-dependency-path: | launcher/go.sum proxy-router/go.sum @@ -103,7 +103,7 @@ jobs: - name: Setup Go uses: actions/setup-go@v5 with: - go-version: '1.21.x' + go-version: '1.22.x' cache-dependency-path: | launcher/go.sum proxy-router/go.sum @@ -173,7 +173,7 @@ jobs: - name: Setup Go uses: actions/setup-go@v5 with: - go-version: '1.21.x' + go-version: '1.22.x' cache-dependency-path: | launcher/go.sum proxy-router/go.sum @@ -243,7 +243,7 @@ jobs: - name: Setup Go uses: actions/setup-go@v5 with: - go-version: '1.21.x' + go-version: '1.22.x' cache-dependency-path: | launcher/go.sum proxy-router/go.sum From 84820323ba78c58db45d16edcfe593cc3a5917c2 Mon Sep 17 00:00:00 2001 From: abs2023 Date: Wed, 6 Nov 2024 10:24:49 -0500 Subject: [PATCH 097/260] added confirmation and tag from subscript --- .github/actions/gen_tag_name/action.yml | 6 ++++-- .github/workflows/build.yml | 18 +++++++++--------- .github/workflows/proxy-router.main.env | 1 + .github/workflows/proxy-router.test.env | 1 + 4 files changed, 15 insertions(+), 11 deletions(-) diff --git a/.github/actions/gen_tag_name/action.yml b/.github/actions/gen_tag_name/action.yml index 28435160..50a11dbc 100644 --- a/.github/actions/gen_tag_name/action.yml +++ b/.github/actions/gen_tag_name/action.yml @@ -8,12 +8,14 @@ runs: shell: bash run: | SHORT_HASH="$(git rev-parse --short=7 HEAD)" + echo $SHORT_HASH if [[ "${GITHUB_REF}" == "refs/heads/main" ]]; then PREFIX="main-" elif [[ "${GITHUB_REF}" == "refs/heads/stg" ]]; then PREFIX="test-" else - PREFIX="" + PREFIX="dev-" fi TAG_NAME="${PREFIX}${SHORT_HASH}" - echo "name=${TAG_NAME}" >> $GITHUB_OUTPUT \ No newline at end of file + echo $TAG_NAME + echo "TAG_NAME=${TAG_NAME}" >> $GITHUB_ENV \ No newline at end of file diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4988f05c..20d3f582 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -77,7 +77,7 @@ jobs: - name: Pack artifacts id: pack_artifacts run: | - ARTIFACT=mor-launch-${{ steps.tag.outputs.name }}-ubuntu-x64.zip + ARTIFACT=mor-launch-${TAG_NAME}-ubuntu-x64.zip LLAMACPP=llama-b3256-bin-ubuntu-x64.zip MODEL=tinyllama-1.1b-chat-v1.0.Q4_K_M.gguf wget -nv https://github.com/ggerganov/llama.cpp/releases/download/b3256/$LLAMACPP @@ -90,7 +90,7 @@ jobs: - name: Upload artifacts uses: actions/upload-artifact@v4 with: - path: mor-launch-${{ steps.tag.outputs.name }}-ubuntu-x64.zip + path: mor-launch-${TAG_NAME}-ubuntu-x64.zip name: mor-launch-ubuntu-x64.zip macOS-13-x64: @@ -145,7 +145,7 @@ jobs: - name: Pack artifacts id: pack_artifacts run: | - ARTIFACT=mor-launch-${{ steps.tag.outputs.name }}-macos-x64.zip + ARTIFACT=mor-launch-${TAG_NAME}-macos-x64.zip LLAMACPP=llama-b3256-bin-macos-x64.zip MODEL=tinyllama-1.1b-chat-v1.0.Q4_K_M.gguf wget -nv https://github.com/ggerganov/llama.cpp/releases/download/b3256/$LLAMACPP @@ -160,7 +160,7 @@ jobs: - name: Upload artifacts uses: actions/upload-artifact@v4 with: - path: mor-launch-${{ steps.tag.outputs.name }}-macos-x64.zip + path: mor-launch-${TAG_NAME}-macos-x64.zip name: mor-launch-macos-x64.zip macOS-14-arm64: @@ -215,7 +215,7 @@ jobs: - name: Pack artifacts id: pack_artifacts run: | - ARTIFACT=mor-launch-${{ steps.tag.outputs.name }}-macos-arm64.zip + ARTIFACT=mor-launch-${TAG_NAME}-macos-arm64.zip LLAMACPP=llama-b3256-bin-macos-arm64.zip MODEL=tinyllama-1.1b-chat-v1.0.Q4_K_M.gguf wget -nv https://github.com/ggerganov/llama.cpp/releases/download/b3256/$LLAMACPP @@ -230,7 +230,7 @@ jobs: - name: Upload artifacts uses: actions/upload-artifact@v4 with: - path: mor-launch-${{ steps.tag.outputs.name }}-macos-arm64.zip + path: mor-launch-${TAG_NAME}-macos-arm64.zip name: mor-launch-macos-arm64.zip Windows-avx2-x64: @@ -290,7 +290,7 @@ jobs: - name: Pack artifacts id: pack_artifacts run: | - ARTIFACT=mor-launch-${{ steps.tag.outputs.name }}-win-x64.zip + ARTIFACT=mor-launch-${TAG_NAME}-win-x64.zip LLAMACPP=llama-b3256-bin-win-avx2-x64.zip MODEL=tinyllama-1.1b-chat-v1.0.Q4_K_M.gguf wget -nv https://github.com/ggerganov/llama.cpp/releases/download/b3256/$LLAMACPP @@ -308,7 +308,7 @@ jobs: - name: Upload artifacts uses: actions/upload-artifact@v4 with: - path: mor-launch-${{ steps.tag.outputs.name }}-win-x64.zip + path: mor-launch-${TAG_NAME}-win-x64.zip name: mor-launch-win-x64.zip release: @@ -345,7 +345,7 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: - tag_name: ${{ steps.tag.outputs.name }} + tag_name: ${TAG_NAME} - name: Upload release id: upload_release diff --git a/.github/workflows/proxy-router.main.env b/.github/workflows/proxy-router.main.env index c6a50ba9..92855207 100644 --- a/.github/workflows/proxy-router.main.env +++ b/.github/workflows/proxy-router.main.env @@ -2,6 +2,7 @@ # To Generate the STG or TestNet release # Contract and Token current as of 11/5/2024 (and are using the same values as the testnet) # ...when mainnet release is imminent, update the values + DIAMOND_CONTRACT_ADDRESS=0x10777866547c53cbd69b02c5c76369d7e24e7b10 MOR_TOKEN_ADDRESS=0x34a285a1b1c166420df5b6630132542923b5b27e EXPLORER_API_URL="https://api-sepolia.arbiscan.io/api" diff --git a/.github/workflows/proxy-router.test.env b/.github/workflows/proxy-router.test.env index 099d4a8f..c8e1c587 100644 --- a/.github/workflows/proxy-router.test.env +++ b/.github/workflows/proxy-router.test.env @@ -1,6 +1,7 @@ # This file is used to set the environment variables for the cicd workflow # To Generate the STG or TestNet release # Contract and Token current as of 11/5/2024 + DIAMOND_CONTRACT_ADDRESS=0x10777866547c53cbd69b02c5c76369d7e24e7b10 MOR_TOKEN_ADDRESS=0x34a285a1b1c166420df5b6630132542923b5b27e EXPLORER_API_URL="https://api-sepolia.arbiscan.io/api" From 8926576d849575d4ea3e34670fcce7b25ea7a128 Mon Sep 17 00:00:00 2001 From: abs2023 Date: Wed, 6 Nov 2024 10:42:03 -0500 Subject: [PATCH 098/260] update env.TAG_NAME reference in build.yml --- .github/workflows/build.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 20d3f582..1d27f457 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -77,7 +77,7 @@ jobs: - name: Pack artifacts id: pack_artifacts run: | - ARTIFACT=mor-launch-${TAG_NAME}-ubuntu-x64.zip + ARTIFACT="mor-launch-$TAG_NAME-ubuntu-x64.zip" LLAMACPP=llama-b3256-bin-ubuntu-x64.zip MODEL=tinyllama-1.1b-chat-v1.0.Q4_K_M.gguf wget -nv https://github.com/ggerganov/llama.cpp/releases/download/b3256/$LLAMACPP @@ -90,7 +90,7 @@ jobs: - name: Upload artifacts uses: actions/upload-artifact@v4 with: - path: mor-launch-${TAG_NAME}-ubuntu-x64.zip + path: mor-launch-${{ env.TAG_NAME }}-ubuntu-x64.zip name: mor-launch-ubuntu-x64.zip macOS-13-x64: @@ -145,7 +145,7 @@ jobs: - name: Pack artifacts id: pack_artifacts run: | - ARTIFACT=mor-launch-${TAG_NAME}-macos-x64.zip + ARTIFACT="mor-launch-$TAG_NAME-macos-x64.zip" LLAMACPP=llama-b3256-bin-macos-x64.zip MODEL=tinyllama-1.1b-chat-v1.0.Q4_K_M.gguf wget -nv https://github.com/ggerganov/llama.cpp/releases/download/b3256/$LLAMACPP @@ -160,7 +160,7 @@ jobs: - name: Upload artifacts uses: actions/upload-artifact@v4 with: - path: mor-launch-${TAG_NAME}-macos-x64.zip + path: mor-launch-${{ env.TAG_NAME }}-macos-x64.zip name: mor-launch-macos-x64.zip macOS-14-arm64: @@ -215,7 +215,7 @@ jobs: - name: Pack artifacts id: pack_artifacts run: | - ARTIFACT=mor-launch-${TAG_NAME}-macos-arm64.zip + ARTIFACT="mor-launch-$TAG_NAME-macos-arm64.zip" LLAMACPP=llama-b3256-bin-macos-arm64.zip MODEL=tinyllama-1.1b-chat-v1.0.Q4_K_M.gguf wget -nv https://github.com/ggerganov/llama.cpp/releases/download/b3256/$LLAMACPP @@ -230,7 +230,7 @@ jobs: - name: Upload artifacts uses: actions/upload-artifact@v4 with: - path: mor-launch-${TAG_NAME}-macos-arm64.zip + path: mor-launch-${{ env.TAG_NAME }}-macos-arm64.zip name: mor-launch-macos-arm64.zip Windows-avx2-x64: @@ -290,7 +290,7 @@ jobs: - name: Pack artifacts id: pack_artifacts run: | - ARTIFACT=mor-launch-${TAG_NAME}-win-x64.zip + ARTIFACT="mor-launch-$TAG_NAME-win-x64.zip" LLAMACPP=llama-b3256-bin-win-avx2-x64.zip MODEL=tinyllama-1.1b-chat-v1.0.Q4_K_M.gguf wget -nv https://github.com/ggerganov/llama.cpp/releases/download/b3256/$LLAMACPP @@ -308,7 +308,7 @@ jobs: - name: Upload artifacts uses: actions/upload-artifact@v4 with: - path: mor-launch-${TAG_NAME}-win-x64.zip + path: mor-launch-${{ env.TAG_NAME }}-win-x64.zip name: mor-launch-win-x64.zip release: @@ -345,7 +345,7 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: - tag_name: ${TAG_NAME} + tag_name: ${{ env.TAG_NAME }} - name: Upload release id: upload_release From fe897b7948fb7abfbe942448568177261732cfc3 Mon Sep 17 00:00:00 2001 From: shev Date: Wed, 6 Nov 2024 17:15:48 +0100 Subject: [PATCH 099/260] fix: session repo with caching --- cli/chat/client/client.go | 22 ++- cli/main.go | 19 ++- proxy-router/cmd/main.go | 15 +- .../internal/blockchainapi/event_listener.go | 155 ++++++------------ .../internal/blockchainapi/service.go | 58 ++++--- proxy-router/internal/config/config.go | 5 + .../internal/proxyapi/controller_morrpc.go | 50 +++--- proxy-router/internal/proxyapi/interfaces.go | 18 +- .../internal/proxyapi/proxy_receiver.go | 53 +++--- .../internal/proxyapi/proxy_sender.go | 39 ++--- proxy-router/internal/proxyctl/proxyctl.go | 9 +- .../repositories/session/session_model.go | 57 +++++++ .../repositories/session/session_repo.go | 114 +++++++++++++ .../internal/storages/session_storage.go | 28 ---- proxy-router/internal/storages/structs.go | 27 +++ 15 files changed, 425 insertions(+), 244 deletions(-) create mode 100644 proxy-router/internal/repositories/session/session_model.go create mode 100644 proxy-router/internal/repositories/session/session_repo.go create mode 100644 proxy-router/internal/storages/structs.go diff --git a/cli/chat/client/client.go b/cli/chat/client/client.go index f65ecb38..45466854 100644 --- a/cli/chat/client/client.go +++ b/cli/chat/client/client.go @@ -10,6 +10,7 @@ import ( "net/http" "strings" + "github.com/ethereum/go-ethereum/common" "github.com/sashabaranov/go-openai" ) @@ -313,7 +314,7 @@ func (c *ApiGatewayClient) GetBidsByModelAgent(ctx context.Context, modelAgentId func (c *ApiGatewayClient) ListUserSessions(ctx context.Context, user string) (result []SessionListItem, err error) { response := map[string][]SessionListItem{} - err = c.getRequest(ctx, fmt.Sprintf("/blockchain/sessions?user=%s", user), &response) + err = c.getRequest(ctx, fmt.Sprintf("/blockchain/sessions/user?user=%s", user), &response) if err != nil { return nil, fmt.Errorf("internal error: %v", err) } @@ -324,7 +325,7 @@ func (c *ApiGatewayClient) ListUserSessions(ctx context.Context, user string) (r func (c *ApiGatewayClient) ListProviderSessions(ctx context.Context, provider string) (result []SessionListItem, err error) { response := map[string][]SessionListItem{} - err = c.getRequest(ctx, fmt.Sprintf("/blockchain/sessions?provider=%s", provider), &response) + err = c.getRequest(ctx, fmt.Sprintf("/blockchain/sessions/provider?provider=%s", provider), &response) if err != nil { return nil, fmt.Errorf("internal error: %v", err) } @@ -420,3 +421,20 @@ func (c *ApiGatewayClient) GetBalance(ctx context.Context) (eth string, mor stri return response["eth"], response["mor"], nil } + +func (c *ApiGatewayClient) GetDiamondAddress(ctx context.Context) (common.Address, error) { + response := struct { + Config struct { + Marketplace struct { + DiamondContractAddress string + } + } + }{} + + err := c.getRequest(ctx, "/config", &response) + if err != nil { + return common.Address{}, fmt.Errorf("internal error: %v", err) + } + + return common.HexToAddress(response.Config.Marketplace.DiamondContractAddress), nil +} diff --git a/cli/main.go b/cli/main.go index 9816c793..60489c7b 100644 --- a/cli/main.go +++ b/cli/main.go @@ -459,8 +459,16 @@ func (a *actions) createBlockchainProvider(cCtx *cli.Context) error { stake := cCtx.Uint64("stake") endpoint := cCtx.String("endpoint") - providers, err := a.client.CreateNewProvider(cCtx.Context, stake, endpoint) + diamondAddr, err := a.client.GetDiamondAddress(cCtx.Context) + if err != nil { + return err + } + _, err = a.client.ApproveAllowance(cCtx.Context, diamondAddr.Hex(), stake) + if err != nil { + return err + } + providers, err := a.client.CreateNewProvider(cCtx.Context, stake, endpoint) if err != nil { return err } @@ -474,6 +482,15 @@ func (a *actions) createBlockchainProviderBid(cCtx *cli.Context) error { model := cCtx.String("model") pricePerSecond := cCtx.Uint64("pricePerSecond") + diamondAddr, err := a.client.GetDiamondAddress(cCtx.Context) + if err != nil { + return err + } + _, err = a.client.ApproveAllowance(cCtx.Context, diamondAddr.Hex(), 300000000000000000) + if err != nil { + return err + } + result, err := a.client.CreateNewProviderBid(cCtx.Context, model, pricePerSecond) if err != nil { return err diff --git a/proxy-router/cmd/main.go b/proxy-router/cmd/main.go index 919a5de7..098e3f8f 100644 --- a/proxy-router/cmd/main.go +++ b/proxy-router/cmd/main.go @@ -25,6 +25,7 @@ import ( "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/ethclient" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/keychain" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/registries" + sessionrepo "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/session" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/transport" wlt "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/wallet" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/storages" @@ -266,15 +267,15 @@ func start() error { } } - proxyRouterApi := proxyapi.NewProxySender(chainID, publicUrl, wallet, contractLogStorage, sessionStorage, log) - blockchainApi := blockchainapi.NewBlockchainService(ethClient, *cfg.Marketplace.DiamondContractAddress, *cfg.Marketplace.MorTokenAddress, cfg.Blockchain.ExplorerApiUrl, wallet, sessionStorage, proxyRouterApi, providerAllowList, proxyLog, cfg.Blockchain.EthLegacyTx) + sessionRouter := registries.NewSessionRouter(*cfg.Marketplace.DiamondContractAddress, ethClient, log) + marketplace := registries.NewMarketplace(*cfg.Marketplace.DiamondContractAddress, ethClient, log) + sessionRepo := sessionrepo.NewSessionRepositoryCached(sessionStorage, sessionRouter, marketplace) + proxyRouterApi := proxyapi.NewProxySender(chainID, publicUrl, wallet, contractLogStorage, sessionStorage, sessionRepo, log) + blockchainApi := blockchainapi.NewBlockchainService(ethClient, *cfg.Marketplace.DiamondContractAddress, *cfg.Marketplace.MorTokenAddress, cfg.Blockchain.ExplorerApiUrl, wallet, proxyRouterApi, sessionRepo, providerAllowList, proxyLog, cfg.Blockchain.EthLegacyTx) proxyRouterApi.SetSessionService(blockchainApi) aiEngine := aiengine.NewAiEngine(cfg.AIEngine.OpenAIBaseURL, cfg.AIEngine.OpenAIKey, modelConfigLoader, log) - marketplace := registries.NewMarketplace(*cfg.Marketplace.DiamondContractAddress, ethClient, log) - sessionRouter := registries.NewSessionRouter(*cfg.Marketplace.DiamondContractAddress, ethClient, log) - - eventListener := blockchainapi.NewEventsListener(ethClient, sessionStorage, sessionRouter, marketplace, wallet, modelConfigLoader, logWatcher, log) + eventListener := blockchainapi.NewEventsListener(sessionRepo, sessionRouter, wallet, logWatcher, log) blockchainController := blockchainapi.NewBlockchainController(blockchainApi, log) @@ -304,7 +305,7 @@ func start() error { cancel() }() - proxy := proxyctl.NewProxyCtl(eventListener, wallet, chainID, log, connLog, cfg.Proxy.Address, schedulerLogFactory, sessionStorage, modelConfigLoader, valid, aiEngine, blockchainApi) + proxy := proxyctl.NewProxyCtl(eventListener, wallet, chainID, log, connLog, cfg.Proxy.Address, schedulerLogFactory, sessionStorage, modelConfigLoader, valid, aiEngine, blockchainApi, sessionRepo) err = proxy.Run(ctx) cancelServer() diff --git a/proxy-router/internal/blockchainapi/event_listener.go b/proxy-router/internal/blockchainapi/event_listener.go index 2db6fc75..9d54d6ba 100644 --- a/proxy-router/internal/blockchainapi/event_listener.go +++ b/proxy-router/internal/blockchainapi/event_listener.go @@ -3,38 +3,34 @@ package blockchainapi import ( "context" - "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/config" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/contracts" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/contracts/bindings/sessionrouter" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/registries" - "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/storages" - "github.com/ethereum/go-ethereum/accounts/abi/bind" + sessionrepo "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/session" + "github.com/ethereum/go-ethereum/common" ) type EventsListener struct { - sessionRouter *registries.SessionRouter - marketplace *registries.Marketplace - store *storages.SessionStorage - tsk *lib.Task - log *lib.Logger - client bind.ContractFilterer - wallet interfaces.Wallet - modelConfigLoader *config.ModelConfigLoader - logWatcher contracts.LogWatcher + sessionRouter *registries.SessionRouter + sessionRepo *sessionrepo.SessionRepositoryCached + tsk *lib.Task + log *lib.Logger + wallet interfaces.Wallet + logWatcher contracts.LogWatcher + + //internal state + addr common.Address } -func NewEventsListener(client bind.ContractFilterer, store *storages.SessionStorage, sessionRouter *registries.SessionRouter, marketplace *registries.Marketplace, wallet interfaces.Wallet, modelConfigLoader *config.ModelConfigLoader, logWatcher contracts.LogWatcher, log *lib.Logger) *EventsListener { +func NewEventsListener(sessionRepo *sessionrepo.SessionRepositoryCached, sessionRouter *registries.SessionRouter, wallet interfaces.Wallet, logWatcher contracts.LogWatcher, log *lib.Logger) *EventsListener { return &EventsListener{ - store: store, - log: log, - sessionRouter: sessionRouter, - marketplace: marketplace, - client: client, - wallet: wallet, - modelConfigLoader: modelConfigLoader, - logWatcher: logWatcher, + log: log, + sessionRouter: sessionRouter, + sessionRepo: sessionRepo, + wallet: wallet, + logWatcher: logWatcher, } } @@ -43,7 +39,19 @@ func (e *EventsListener) Run(ctx context.Context) error { _ = e.log.Close() }() - sub, err := e.logWatcher.Watch(ctx, e.sessionRouter.GetContractAddress(), contracts.CreateEventMapper(contracts.SessionRouterEventFactory, e.sessionRouter.GetABI()), nil) + addr, err := e.getWalletAddress() + if err != nil { + return err + } + e.addr = addr + + //TODO: filter events by user/provider address + sub, err := e.logWatcher.Watch( + ctx, + e.sessionRouter.GetContractAddress(), + contracts.CreateEventMapper(contracts.SessionRouterEventFactory, + e.sessionRouter.GetABI(), + ), nil) if err != nil { return err } @@ -57,7 +65,7 @@ func (e *EventsListener) Run(ctx context.Context) error { case event := <-sub.Events(): err := e.controller(event) if err != nil { - e.log.Errorf("error loading data: %s", err) + e.log.Errorf("error handling event: %s", err) } case err := <-sub.Err(): e.log.Errorf("error in event listener: %s", err) @@ -77,96 +85,35 @@ func (e *EventsListener) controller(event interface{}) error { } func (e *EventsListener) handleSessionOpened(event *sessionrouter.SessionRouterSessionOpened) error { - ctx := context.Background() - - sessionId := lib.BytesToString(event.SessionId[:]) - e.log.Debugf("received open session router event, sessionId %s", sessionId) - - session, err := e.sessionRouter.GetSession(ctx, event.SessionId) - if err != nil { - e.log.Errorf("failed to get session from blockchain: %s, sessionId %s", err, sessionId) - return err - } - - bid, err := e.marketplace.GetBidById(ctx, session.BidId) - if err != nil { - e.log.Errorf("failed to get bid from blockchain: %s, sessionId %s", err, sessionId) - return err - } - - privateKey, err := e.wallet.GetPrivateKey() - if err != nil { - e.log.Errorf("failed to get private key: %s", err) - return err - } - - address, err := lib.PrivKeyBytesToAddr(privateKey) - if err != nil { - e.log.Errorf("failed to get address from private key: %s", err) - return err - } - - if bid.Provider.Hex() != address.Hex() && event.User.Hex() != address.Hex() { - e.log.Debugf("session provider/user is not me, skipping, sessionId %s", sessionId) + if !e.filter(event.ProviderId, event.User) { return nil } - - modelID := lib.BytesToString(bid.ModelId[:]) - - var modelConfig *config.ModelConfig - if bid.Provider.Hex() == address.Hex() { - modelConfig = e.modelConfigLoader.ModelConfigFromID(modelID) - err = e.store.AddSessionToModel(modelID, sessionId) - if err != nil { - return err - } - } else { - modelConfig = &config.ModelConfig{} - } - - storedSession, ok := e.store.GetSession(sessionId) - if !ok { - err = e.store.AddSession(&storages.Session{ - Id: sessionId, - UserAddr: event.User.Hex(), - ProviderAddr: bid.Provider.Hex(), - EndsAt: session.EndsAt, - ModelID: modelID, - ModelName: modelConfig.ModelName, - ModelApiType: modelConfig.ApiType, - }) - } else { - storedSession.EndsAt = session.EndsAt - storedSession.ModelID = modelID - storedSession.ModelName = modelConfig.ModelName - storedSession.ModelApiType = modelConfig.ApiType - storedSession.ProviderAddr = bid.Provider.Hex() - storedSession.UserAddr = event.User.Hex() - err = e.store.AddSession(storedSession) - } - - if err != nil { - return err - } - - return nil + e.log.Debugf("received open session event, sessionId %s", lib.BytesToString(event.SessionId[:])) + return e.sessionRepo.RefreshSession(context.Background(), event.SessionId) } func (e *EventsListener) handleSessionClosed(event *sessionrouter.SessionRouterSessionClosed) error { - sessionId := lib.BytesToString(event.SessionId[:]) - e.log.Debugf("received close session router event, sessionId %s", sessionId) - - _, ok := e.store.GetSession(sessionId) - if !ok { - e.log.Debugf("session not found in storage, sessionId %s", sessionId) + if !e.filter(event.ProviderId, event.User) { return nil } + e.log.Debugf("received close session event, sessionId %s", lib.BytesToString(event.SessionId[:])) + return e.sessionRepo.RemoveSession(context.Background(), event.SessionId) +} - err := e.store.RemoveSession(sessionId) +// getWalletAddress returns the wallet address from the wallet +func (e *EventsListener) getWalletAddress() (common.Address, error) { + prkey, err := e.wallet.GetPrivateKey() if err != nil { - e.log.Errorf("failed to remove session from storage: %s, sessionId %s", err, sessionId) - return err + return common.Address{}, err } + return lib.PrivKeyStringToAddr(prkey.Hex()) +} - return nil +// filter returns true if the event is for the user or provider +func (e *EventsListener) filter(provider, user common.Address) bool { + ret := provider.Hex() == e.addr.Hex() || user.Hex() == e.addr.Hex() + if !ret { + e.log.Debugf("received event for another user/provider, skipping") + } + return ret } diff --git a/proxy-router/internal/blockchainapi/service.go b/proxy-router/internal/blockchainapi/service.go index 6fc031e2..afe329fc 100644 --- a/proxy-router/internal/blockchainapi/service.go +++ b/proxy-router/internal/blockchainapi/service.go @@ -17,7 +17,7 @@ import ( pr "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/contracts/bindings/providerregistry" sr "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/contracts/bindings/sessionrouter" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/registries" - "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/storages" + sessionrepo "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/session" "github.com/gin-gonic/gin" "github.com/ethereum/go-ethereum" @@ -35,7 +35,7 @@ type BlockchainService struct { sessionRouter *registries.SessionRouter morToken *registries.MorToken explorerClient *ExplorerClient - sessionStorage *storages.SessionStorage + sessionRepo *sessionrepo.SessionRepositoryCached proxyService *proxyapi.ProxyServiceSender diamonContractAddr common.Address @@ -77,8 +77,8 @@ func NewBlockchainService( morTokenAddr common.Address, explorerApiUrl string, privateKey i.PrKeyProvider, - sessionStorage *storages.SessionStorage, proxyService *proxyapi.ProxyServiceSender, + sessionRepo *sessionrepo.SessionRepositoryCached, providerAllowList []common.Address, log lib.ILogger, legacyTx bool, @@ -101,9 +101,9 @@ func NewBlockchainService( morToken: morToken, explorerClient: explorerClient, proxyService: proxyService, - sessionStorage: sessionStorage, diamonContractAddr: diamonContractAddr, providerAllowList: providerAllowList, + sessionRepo: sessionRepo, log: log, } } @@ -738,33 +738,22 @@ func (s *BlockchainService) OpenSessionByModelId(ctx context.Context, modelID co s.log.Infof("skipping provider #%d %s", i, providerAddr.String()) continue } + if !s.isProviderAllowed(providerAddr) { s.log.Infof("skipping not allowed provider #%d %s", i, providerAddr.String()) continue } + s.log.Infof("trying to open session with provider #%d %s", i, bid.Bid.Provider.String()) durationCopy := new(big.Int).Set(duration) - hash, err := s.tryOpenSession(ctx, bid, durationCopy, supply, budget, userAddr) - if err == nil { - session, ok := s.sessionStorage.GetSession(hash.String()) - if ok { - session.FailoverEnabled = isFailoverEnabled - err := s.sessionStorage.AddSession(session) - if err != nil { - s.log.Warnf("failed to update session: %s", err.Error()) - } - } else { - err := s.sessionStorage.AddSession(&storages.Session{ - Id: hash.String(), - FailoverEnabled: isFailoverEnabled, - }) - if err != nil { - s.log.Warnf("failed to store session: %s", err.Error()) - } - } - return hash, nil + + hash, err := s.tryOpenSession(ctx, bid, durationCopy, supply, budget, userAddr, isFailoverEnabled) + if err != nil { + s.log.Errorf("failed to open session with provider %s: %s", bid.Bid.Provider.String(), err.Error()) + continue } - s.log.Errorf("failed to open session with provider %s: %s", bid.Bid.Provider.String(), err.Error()) + + return hash, nil } return common.Hash{}, fmt.Errorf("no provider accepting session") @@ -815,7 +804,7 @@ func (s *BlockchainService) GetAllBidsWithRating(ctx context.Context, modelAgent return ids, bids, providerModelStats, providers, nil } -func (s *BlockchainService) tryOpenSession(ctx context.Context, bid structs.ScoredBid, duration *big.Int, supply *big.Int, budget *big.Int, userAddr common.Address) (common.Hash, error) { +func (s *BlockchainService) tryOpenSession(ctx context.Context, bid structs.ScoredBid, duration, supply, budget *big.Int, userAddr common.Address, failoverEnabled bool) (common.Hash, error) { provider, err := s.providerRegistry.GetProviderById(ctx, bid.Bid.Provider) if err != nil { return common.Hash{}, lib.WrapError(ErrProvider, err) @@ -839,7 +828,24 @@ func (s *BlockchainService) tryOpenSession(ctx context.Context, bid structs.Scor return common.Hash{}, lib.WrapError(ErrApprove, err) } - return s.OpenSession(ctx, initRes.Approval, initRes.ApprovalSig, stake) + hash, err := s.OpenSession(ctx, initRes.Approval, initRes.ApprovalSig, stake) + if err != nil { + return common.Hash{}, err + } + + session, err := s.sessionRepo.GetSession(ctx, hash) + if err != nil { + return hash, fmt.Errorf("failed to get session: %s", err.Error()) + } + + session.SetFailoverEnabled(failoverEnabled) + + err = s.sessionRepo.SaveSession(ctx, session) + if err != nil { + return hash, fmt.Errorf("failed to store session: %s", err.Error()) + } + + return hash, nil } func (s *BlockchainService) GetMyAddress(ctx context.Context) (common.Address, error) { diff --git a/proxy-router/internal/config/config.go b/proxy-router/internal/config/config.go index 248787f5..4439b7e8 100644 --- a/proxy-router/internal/config/config.go +++ b/proxy-router/internal/config/config.go @@ -162,6 +162,11 @@ func (cfg *Config) GetSanitized() interface{} { publicCfg := Config{} publicCfg.Blockchain.EthLegacyTx = cfg.Blockchain.EthLegacyTx + publicCfg.Blockchain.ChainID = cfg.Blockchain.ChainID + publicCfg.Blockchain.MaxReconnects = cfg.Blockchain.MaxReconnects + publicCfg.Blockchain.PollingInterval = cfg.Blockchain.PollingInterval + publicCfg.Blockchain.UseSubscriptions = cfg.Blockchain.UseSubscriptions + publicCfg.Environment = cfg.Environment publicCfg.Marketplace.DiamondContractAddress = cfg.Marketplace.DiamondContractAddress diff --git a/proxy-router/internal/proxyapi/controller_morrpc.go b/proxy-router/internal/proxyapi/controller_morrpc.go index 60d88b29..d4cbbbde 100644 --- a/proxy-router/internal/proxyapi/controller_morrpc.go +++ b/proxy-router/internal/proxyapi/controller_morrpc.go @@ -9,12 +9,14 @@ import ( "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" m "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/proxyapi/morrpcmessage" msg "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/proxyapi/morrpcmessage" + sessionrepo "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/session" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/storages" "github.com/go-playground/validator/v10" ) type MORRPCController struct { service *ProxyReceiver + sessionRepo *sessionrepo.SessionRepositoryCached validator *validator.Validate sessionStorage *storages.SessionStorage morRpc *m.MORRPCMessage @@ -26,11 +28,12 @@ var ( ErrUnknownMethod = fmt.Errorf("unknown method") ) -func NewMORRPCController(service *ProxyReceiver, validator *validator.Validate, sessionStorage *storages.SessionStorage) *MORRPCController { +func NewMORRPCController(service *ProxyReceiver, validator *validator.Validate, sessionRepo *sessionrepo.SessionRepositoryCached, sessionStorage *storages.SessionStorage) *MORRPCController { c := &MORRPCController{ service: service, validator: validator, sessionStorage: sessionStorage, + sessionRepo: sessionRepo, morRpc: m.NewMorRpc(), } @@ -88,42 +91,32 @@ func (s *MORRPCController) sessionPrompt(ctx context.Context, msg m.RPCMessage, var req m.SessionPromptReq err := json.Unmarshal(msg.Params, &req) if err != nil { - err := lib.WrapError(ErrUnmarshal, err) - sourceLog.Error(err) - return err + return lib.WrapError(ErrUnmarshal, err) } if err := s.validator.Struct(req); err != nil { - err := lib.WrapError(ErrValidation, err) - sourceLog.Error(err) - return err + return lib.WrapError(ErrValidation, err) } sourceLog.Debugf("Received prompt from session %s, timestamp: %s", req.SessionID, req.Timestamp) - session, ok := s.sessionStorage.GetSession(req.SessionID.Hex()) - if !ok { - err := fmt.Errorf("session not found") - sourceLog.Error(err) - return err + session, err := s.sessionRepo.GetSession(ctx, req.SessionID) + if err != nil { + return fmt.Errorf("session cannot be loaded %s", err) } - isSessionExpired := session.EndsAt.Uint64()*1000 < req.Timestamp + isSessionExpired := session.EndsAt().Uint64()*1000 < req.Timestamp if isSessionExpired { - err := fmt.Errorf("session expired") - sourceLog.Error(err) - return err + return fmt.Errorf("session expired") } - user, ok := s.sessionStorage.GetUser(session.UserAddr) + user, ok := s.sessionStorage.GetUser(session.UserAddr().Hex()) if !ok { - err := fmt.Errorf("user not found") - sourceLog.Error(err) - return err + return fmt.Errorf("user not found") } + pubKeyHex, err := lib.StringToHexString(user.PubKey) if err != nil { - sourceLog.Error(err) - return err + return fmt.Errorf("invalid pubkey %s", err) } sig := req.Signature @@ -147,14 +140,15 @@ func (s *MORRPCController) sessionPrompt(ctx context.Context, msg m.RPCMessage, if requestDuration == 0 { requestDuration = 1 } - session.TTFTMsArr = append(session.TTFTMsArr, ttftMs) - session.TPSScaled1000Arr = append(session.TPSScaled1000Arr, totalTokens*1000/requestDuration) - err = s.sessionStorage.AddSession(session) + + tpsScaled1000 := totalTokens * 1000 / requestDuration + session.AddStats(tpsScaled1000, ttftMs) + + err = s.sessionRepo.SaveSession(ctx, session) if err != nil { - sourceLog.Error(err) - return err + return fmt.Errorf("failed to save session %s", err) } - return err + return nil } func (s *MORRPCController) sessionReport(ctx context.Context, msg m.RPCMessage, sendResponse SendResponse, sourceLog lib.ILogger) error { diff --git a/proxy-router/internal/proxyapi/interfaces.go b/proxy-router/internal/proxyapi/interfaces.go index b57ec1a5..86b10bda 100644 --- a/proxy-router/internal/proxyapi/interfaces.go +++ b/proxy-router/internal/proxyapi/interfaces.go @@ -1,8 +1,24 @@ package proxyapi -import "net/http" +import ( + "context" + "math/big" + "net/http" + + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/blockchainapi/structs" + "github.com/ethereum/go-ethereum/common" +) type ResponderFlusher interface { http.ResponseWriter http.Flusher } + +type BidGetter interface { + GetBidByID(ctx context.Context, ID common.Hash) (*structs.Bid, error) +} + +type SessionService interface { + OpenSessionByModelId(ctx context.Context, modelID common.Hash, duration *big.Int, isFailoverEnabled bool, omitProvider common.Address) (common.Hash, error) + CloseSession(ctx context.Context, sessionID common.Hash) (common.Hash, error) +} diff --git a/proxy-router/internal/proxyapi/proxy_receiver.go b/proxy-router/internal/proxyapi/proxy_receiver.go index e67d1ec5..fa786f4e 100644 --- a/proxy-router/internal/proxyapi/proxy_receiver.go +++ b/proxy-router/internal/proxyapi/proxy_receiver.go @@ -8,11 +8,11 @@ import ( "time" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/aiengine" - "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/blockchainapi/structs" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/config" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" m "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/proxyapi/morrpcmessage" msg "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/proxyapi/morrpcmessage" + sessionrepo "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/session" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/storages" "github.com/ethereum/go-ethereum/common" "github.com/sashabaranov/go-openai" @@ -26,23 +26,21 @@ type ProxyReceiver struct { sessionStorage *storages.SessionStorage aiEngine *aiengine.AiEngine modelConfigLoader *config.ModelConfigLoader - blockchainService GetBidService + service BidGetter + sessionRepo *sessionrepo.SessionRepositoryCached } -type GetBidService interface { - GetBidByID(ctx context.Context, ID common.Hash) (*structs.Bid, error) -} - -func NewProxyReceiver(privateKeyHex, publicKeyHex lib.HexString, sessionStorage *storages.SessionStorage, aiEngine *aiengine.AiEngine, chainID *big.Int, modelConfigLoader *config.ModelConfigLoader, blockchainService GetBidService) *ProxyReceiver { +func NewProxyReceiver(privateKeyHex, publicKeyHex lib.HexString, sessionStorage *storages.SessionStorage, aiEngine *aiengine.AiEngine, chainID *big.Int, modelConfigLoader *config.ModelConfigLoader, blockchainService BidGetter, sessionRepo *sessionrepo.SessionRepositoryCached) *ProxyReceiver { return &ProxyReceiver{ privateKeyHex: privateKeyHex, publicKeyHex: publicKeyHex, morRpc: m.NewMorRpc(), - sessionStorage: sessionStorage, aiEngine: aiEngine, chainID: chainID, modelConfigLoader: modelConfigLoader, - blockchainService: blockchainService, + service: blockchainService, + sessionStorage: sessionStorage, + sessionRepo: sessionRepo, } } @@ -56,8 +54,8 @@ func (s *ProxyReceiver) SessionPrompt(ctx context.Context, requestID string, use return 0, 0, err } - session, ok := s.sessionStorage.GetSession(rq.SessionID.Hex()) - if !ok { + session, err := s.sessionRepo.GetSession(ctx, rq.SessionID) + if err != nil { err := lib.WrapError(fmt.Errorf("failed to get session"), err) sourceLog.Error(err) return 0, 0, err @@ -108,19 +106,23 @@ func (s *ProxyReceiver) SessionPrompt(ctx context.Context, requestID string, use return sendResponse(r) } - if session.ModelApiType == "prodia" { - modelConfig := s.modelConfigLoader.ModelConfigFromID(session.ModelID) + modelConfig := s.modelConfigLoader.ModelConfigFromID(session.ModelID().Hex()) + if modelConfig == nil { + return 0, 0, fmt.Errorf("model config not found for model id %s", session.ModelID()) + } + + if modelConfig.ApiType == "prodia" { lastMessage := req.Messages[len(req.Messages)-1] prodiaReq := &aiengine.ProdiaGenerationRequest{ Prompt: lastMessage.Content, - Model: session.ModelName, + Model: modelConfig.ModelName, ApiUrl: modelConfig.ApiURL, ApiKey: modelConfig.ApiKey, } err = s.aiEngine.PromptProdiaImage(ctx, prodiaReq, responseCb) } else { - req.Model = session.ModelName + req.Model = modelConfig.ModelName if req.Model == "" { req.Model = "llama2" } @@ -134,11 +136,11 @@ func (s *ProxyReceiver) SessionPrompt(ctx context.Context, requestID string, use } activity := storages.PromptActivity{ - SessionID: session.Id, + SessionID: session.ID().Hex(), StartTime: now, EndTime: time.Now().Unix(), } - err = s.sessionStorage.AddActivity(session.ModelID, &activity) + err = s.sessionStorage.AddActivity(session.ModelID().Hex(), &activity) if err != nil { sourceLog.Warnf("failed to store activity: %s", err) } @@ -146,24 +148,24 @@ func (s *ProxyReceiver) SessionPrompt(ctx context.Context, requestID string, use return ttftMs, totalTokens, nil } -func (s *ProxyReceiver) SessionRequest(ctx context.Context, msgID string, reqID string, req *m.SessionReq, sourceLog lib.ILogger) (*msg.RpcResponse, error) { - sourceLog.Debugf("Received session request from %s, timestamp: %s", req.User, req.Timestamp) +func (s *ProxyReceiver) SessionRequest(ctx context.Context, msgID string, reqID string, req *m.SessionReq, log lib.ILogger) (*msg.RpcResponse, error) { + log.Debugf("Received session request from %s, timestamp: %s", req.User, req.Timestamp) - bid, err := s.blockchainService.GetBidByID(ctx, req.BidID) + bid, err := s.service.GetBidByID(ctx, req.BidID) if err != nil { err := lib.WrapError(fmt.Errorf("failed to get bid"), err) - sourceLog.Error(err) + log.Error(err) return nil, err } modelID := bid.ModelAgentId.String() modelConfig := s.modelConfigLoader.ModelConfigFromID(modelID) - capacityManager := CreateCapacityManager(modelConfig, s.sessionStorage, sourceLog) + capacityManager := CreateCapacityManager(modelConfig, s.sessionStorage, log) hasCapacity := capacityManager.HasCapacity(modelID) if !hasCapacity { err := fmt.Errorf("no capacity") - sourceLog.Error(err) + log.Error(err) return nil, err } @@ -178,7 +180,7 @@ func (s *ProxyReceiver) SessionRequest(ctx context.Context, msgID string, reqID ) if err != nil { err := lib.WrapError(fmt.Errorf("failed to create response"), err) - sourceLog.Error(err) + log.Error(err) return nil, err } @@ -190,9 +192,10 @@ func (s *ProxyReceiver) SessionRequest(ctx context.Context, msgID string, reqID err = s.sessionStorage.AddUser(&user) if err != nil { err := lib.WrapError(fmt.Errorf("failed store user"), err) - sourceLog.Error(err) + log.Error(err) return nil, err } + return response, nil } diff --git a/proxy-router/internal/proxyapi/proxy_sender.go b/proxy-router/internal/proxyapi/proxy_sender.go index c4e962b6..41a51bc5 100644 --- a/proxy-router/internal/proxyapi/proxy_sender.go +++ b/proxy-router/internal/proxyapi/proxy_sender.go @@ -16,6 +16,7 @@ import ( "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" msgs "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/proxyapi/morrpcmessage" + sessionrepo "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/session" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/storages" "github.com/ethereum/go-ethereum/common" "github.com/gin-gonic/gin" @@ -39,29 +40,26 @@ var ( ErrProviderNotFound = fmt.Errorf("provider not found") ) -type SessionService interface { - OpenSessionByModelId(ctx context.Context, modelID common.Hash, duration *big.Int, isFailoverEnabled bool, omitProvider common.Address) (common.Hash, error) - CloseSession(ctx context.Context, sessionID common.Hash) (common.Hash, error) -} - type ProxyServiceSender struct { chainID *big.Int publicUrl *url.URL privateKey interfaces.PrKeyProvider logStorage *lib.Collection[*interfaces.LogStorage] sessionStorage *storages.SessionStorage + sessionRepo *sessionrepo.SessionRepositoryCached morRPC *msgs.MORRPCMessage sessionService SessionService log lib.ILogger } -func NewProxySender(chainID *big.Int, publicUrl *url.URL, privateKey interfaces.PrKeyProvider, logStorage *lib.Collection[*interfaces.LogStorage], sessionStorage *storages.SessionStorage, log lib.ILogger) *ProxyServiceSender { +func NewProxySender(chainID *big.Int, publicUrl *url.URL, privateKey interfaces.PrKeyProvider, logStorage *lib.Collection[*interfaces.LogStorage], sessionStorage *storages.SessionStorage, sessionRepo *sessionrepo.SessionRepositoryCached, log lib.ILogger) *ProxyServiceSender { return &ProxyServiceSender{ chainID: chainID, publicUrl: publicUrl, privateKey: privateKey, logStorage: logStorage, sessionStorage: sessionStorage, + sessionRepo: sessionRepo, morRPC: msgs.NewMorRpc(), log: log, } @@ -239,17 +237,17 @@ func (p *ProxyServiceSender) GetSessionReportFromUser(ctx context.Context, sessi } func (p *ProxyServiceSender) SendPrompt(ctx context.Context, resWriter ResponderFlusher, prompt *openai.ChatCompletionRequest, sessionID common.Hash) (interface{}, error) { - session, ok := p.sessionStorage.GetSession(sessionID.Hex()) - if !ok { + session, err := p.sessionRepo.GetSession(ctx, sessionID) + if err != nil { return nil, ErrSessionNotFound } - isExpired := session.EndsAt.Int64()-time.Now().Unix() < 0 + isExpired := session.EndsAt().Int64()-time.Now().Unix() < 0 if isExpired { return nil, ErrSessionExpired } - provider, ok := p.sessionStorage.GetUser(session.ProviderAddr) + provider, ok := p.sessionStorage.GetUser(session.ProviderAddr().Hex()) if !ok { return nil, ErrProviderNotFound } @@ -272,7 +270,7 @@ func (p *ProxyServiceSender) SendPrompt(ctx context.Context, resWriter Responder now := time.Now().Unix() result, ttftMs, totalTokens, err := p.rpcRequestStream(ctx, resWriter, provider.Url, promptRequest, pubKey) if err != nil { - if !session.FailoverEnabled { + if !session.FailoverEnabled() { return nil, lib.WrapError(ErrProvider, err) } @@ -288,12 +286,15 @@ func (p *ProxyServiceSender) SendPrompt(ctx context.Context, resWriter Responder } resWriter.Flush() - modelID := common.HexToHash(session.ModelID) - provider := common.HexToAddress(session.ProviderAddr) - duration := session.EndsAt.Int64() - time.Now().Unix() - durationBigInt := big.NewInt(duration) - newSessionID, err := p.sessionService.OpenSessionByModelId(ctx, modelID, durationBigInt, session.FailoverEnabled, provider) + duration := session.EndsAt().Int64() - time.Now().Unix() + newSessionID, err := p.sessionService.OpenSessionByModelId( + ctx, + session.ModelID(), + big.NewInt(duration), + session.FailoverEnabled(), + session.ProviderAddr(), + ) if err != nil { return nil, err } @@ -312,9 +313,9 @@ func (p *ProxyServiceSender) SendPrompt(ctx context.Context, resWriter Responder if requestDuration == 0 { requestDuration = 1 } - session.TTFTMsArr = append(session.TTFTMsArr, ttftMs) - session.TPSScaled1000Arr = append(session.TPSScaled1000Arr, totalTokens*1000/requestDuration) - err = p.sessionStorage.AddSession(session) + session.AddStats(totalTokens*1000/requestDuration, ttftMs) + + err = p.sessionRepo.SaveSession(ctx, session) if err != nil { p.log.Error(`failed to update session report stats`, err) } diff --git a/proxy-router/internal/proxyctl/proxyctl.go b/proxy-router/internal/proxyctl/proxyctl.go index 2813caf3..72a0a8eb 100644 --- a/proxy-router/internal/proxyctl/proxyctl.go +++ b/proxy-router/internal/proxyctl/proxyctl.go @@ -11,6 +11,7 @@ import ( "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/proxyapi" + sessionrepo "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/session" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/transport" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/storages" "github.com/go-playground/validator/v10" @@ -49,6 +50,7 @@ type Proxy struct { proxyAddr string chainID *big.Int sessionStorage *storages.SessionStorage + sessionRepo *sessionrepo.SessionRepositoryCached log *lib.Logger connLog *lib.Logger schedulerLogFactory SchedulerLogFactory @@ -62,7 +64,7 @@ type Proxy struct { } // NewProxyCtl creates a new Proxy controller instance -func NewProxyCtl(eventListerer *blockchainapi.EventsListener, wallet interfaces.PrKeyProvider, chainID *big.Int, log *lib.Logger, connLog *lib.Logger, proxyAddr string, scl SchedulerLogFactory, sessionStorage *storages.SessionStorage, modelConfigLoader *config.ModelConfigLoader, valid *validator.Validate, aiEngine *aiengine.AiEngine, blockchainService *blockchainapi.BlockchainService) *Proxy { +func NewProxyCtl(eventListerer *blockchainapi.EventsListener, wallet interfaces.PrKeyProvider, chainID *big.Int, log *lib.Logger, connLog *lib.Logger, proxyAddr string, scl SchedulerLogFactory, sessionStorage *storages.SessionStorage, modelConfigLoader *config.ModelConfigLoader, valid *validator.Validate, aiEngine *aiengine.AiEngine, blockchainService *blockchainapi.BlockchainService, sessionRepo *sessionrepo.SessionRepositoryCached) *Proxy { return &Proxy{ eventListener: eventListerer, chainID: chainID, @@ -76,6 +78,7 @@ func NewProxyCtl(eventListerer *blockchainapi.EventsListener, wallet interfaces. validator: valid, modelConfigLoader: modelConfigLoader, blockchainService: blockchainService, + sessionRepo: sessionRepo, } } @@ -138,9 +141,9 @@ func (p *Proxy) run(ctx context.Context, prKey lib.HexString) error { return err } - proxyReceiver := proxyapi.NewProxyReceiver(prKey, pubKey, p.sessionStorage, p.aiEngine, p.chainID, p.modelConfigLoader, p.blockchainService) + proxyReceiver := proxyapi.NewProxyReceiver(prKey, pubKey, p.sessionStorage, p.aiEngine, p.chainID, p.modelConfigLoader, p.blockchainService, p.sessionRepo) - morTcpHandler := proxyapi.NewMORRPCController(proxyReceiver, p.validator, p.sessionStorage) + morTcpHandler := proxyapi.NewMORRPCController(proxyReceiver, p.validator, p.sessionRepo, p.sessionStorage) tcpHandler := tcphandlers.NewTCPHandler( p.log, p.connLog, p.schedulerLogFactory, morTcpHandler, ) diff --git a/proxy-router/internal/repositories/session/session_model.go b/proxy-router/internal/repositories/session/session_model.go new file mode 100644 index 00000000..a42f56a5 --- /dev/null +++ b/proxy-router/internal/repositories/session/session_model.go @@ -0,0 +1,57 @@ +package sessionrepo + +import ( + "math/big" + + "github.com/ethereum/go-ethereum/common" +) + +type sessionModel struct { + id common.Hash + userAddr common.Address + providerAddr common.Address + endsAt *big.Int + modelID common.Hash + + tpsScaled1000Arr []int + ttftMsArr []int + failoverEnabled bool +} + +func (s *sessionModel) ID() common.Hash { + return s.id +} + +func (s *sessionModel) UserAddr() common.Address { + return s.userAddr +} + +func (s *sessionModel) ProviderAddr() common.Address { + return s.providerAddr +} + +func (s *sessionModel) EndsAt() *big.Int { + // copy big.Int so that the original value is not modified + return new(big.Int).Set(s.endsAt) +} + +func (s *sessionModel) GetStats() (tpsScaled1000Arr []int, ttftMsArr []int) { + return s.tpsScaled1000Arr, s.ttftMsArr +} + +func (s *sessionModel) ModelID() common.Hash { + return s.modelID +} + +func (s *sessionModel) FailoverEnabled() bool { + return s.failoverEnabled +} + +func (s *sessionModel) AddStats(tpsScaled1000 int, ttftMs int) { + s.tpsScaled1000Arr = append(s.tpsScaled1000Arr, tpsScaled1000) + s.ttftMsArr = append(s.ttftMsArr, ttftMs) +} + +func (s *sessionModel) SetFailoverEnabled(enabled bool) { + s.failoverEnabled = enabled +} diff --git a/proxy-router/internal/repositories/session/session_repo.go b/proxy-router/internal/repositories/session/session_repo.go new file mode 100644 index 00000000..5a778e29 --- /dev/null +++ b/proxy-router/internal/repositories/session/session_repo.go @@ -0,0 +1,114 @@ +package sessionrepo + +import ( + "context" + + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/registries" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/storages" + "github.com/ethereum/go-ethereum/common" +) + +type SessionRepositoryCached struct { + storage *storages.SessionStorage + reg *registries.SessionRouter + mkt *registries.Marketplace +} + +func NewSessionRepositoryCached(storage *storages.SessionStorage, reg *registries.SessionRouter, mkt *registries.Marketplace) *SessionRepositoryCached { + return &SessionRepositoryCached{ + storage: storage, + reg: reg, + mkt: mkt, + } +} + +// GetSession returns a session by its ID from the read-through cache +func (r *SessionRepositoryCached) GetSession(ctx context.Context, id common.Hash) (*sessionModel, error) { + ses, ok := r.getSessionFromCache(id) + if ok { + return ses, nil + } + + session, err := r.getSessionFromBlockchain(ctx, id) + if err != nil { + return nil, err + } + + err = r.saveSessionToCache(session) + if err != nil { + return nil, err + } + + return session, nil +} + +// SaveSession saves a session to the cache. Before saving it to cache you have to call GetSession +func (r *SessionRepositoryCached) SaveSession(ctx context.Context, ses *sessionModel) error { + return r.saveSessionToCache(ses) +} + +// RemoveSession removes a session from the cache +func (r *SessionRepositoryCached) RemoveSession(ctx context.Context, id common.Hash) error { + return r.storage.RemoveSession(id.Hex()) +} + +// RefreshSession refreshes the session cache by fetching the session from the blockchain +func (r *SessionRepositoryCached) RefreshSession(ctx context.Context, id common.Hash) error { + // since the session record in blockchain is immutable if we have it in cache it is noop + // if we don't have it in cache we need to fetch it and save it to cache + _, err := r.GetSession(ctx, id) + return err +} + +func (r *SessionRepositoryCached) getSessionFromBlockchain(ctx context.Context, id common.Hash) (*sessionModel, error) { + session, err := r.reg.GetSession(ctx, id) + if err != nil { + return nil, err + } + + bid, err := r.mkt.GetBidById(ctx, session.BidId) + if err != nil { + return nil, err + } + + return &sessionModel{ + id: id, + userAddr: session.User, + providerAddr: bid.Provider, + endsAt: session.EndsAt, + modelID: bid.ModelId, + tpsScaled1000Arr: []int{}, + ttftMsArr: []int{}, + failoverEnabled: false, + }, nil +} + +func (r *SessionRepositoryCached) getSessionFromCache(id common.Hash) (*sessionModel, bool) { + ses, ok := r.storage.GetSession(id.Hex()) + if !ok { + return nil, false + } + return &sessionModel{ + id: common.HexToHash(ses.Id), + userAddr: common.HexToAddress(ses.UserAddr), + providerAddr: common.HexToAddress(ses.ProviderAddr), + modelID: common.HexToHash(ses.ModelID), + endsAt: ses.EndsAt, + tpsScaled1000Arr: ses.TPSScaled1000Arr, + ttftMsArr: ses.TTFTMsArr, + failoverEnabled: ses.FailoverEnabled, + }, true +} + +func (r *SessionRepositoryCached) saveSessionToCache(ses *sessionModel) error { + return r.storage.AddSession(&storages.Session{ + Id: ses.id.Hex(), + UserAddr: ses.userAddr.Hex(), + ProviderAddr: ses.providerAddr.Hex(), + EndsAt: ses.endsAt, + ModelID: ses.modelID.Hex(), + TPSScaled1000Arr: ses.tpsScaled1000Arr, + TTFTMsArr: ses.ttftMsArr, + FailoverEnabled: ses.failoverEnabled, + }) +} diff --git a/proxy-router/internal/storages/session_storage.go b/proxy-router/internal/storages/session_storage.go index 3ec80a5c..85b7e83e 100644 --- a/proxy-router/internal/storages/session_storage.go +++ b/proxy-router/internal/storages/session_storage.go @@ -3,31 +3,9 @@ package storages import ( "encoding/json" "fmt" - "math/big" "strings" ) -type Session struct { - Id string - UserAddr string - ProviderAddr string - EndsAt *big.Int - TPSScaled1000Arr []int - TTFTMsArr []int - - ModelID string - ModelName string - ModelApiType string - - FailoverEnabled bool -} - -type User struct { - Addr string - PubKey string - Url string -} - type SessionStorage struct { db *Storage } @@ -113,12 +91,6 @@ func (s *SessionStorage) RemoveSession(id string) error { return nil } -type PromptActivity struct { - SessionID string - StartTime int64 - EndTime int64 -} - func (s *SessionStorage) AddSessionToModel(modelID string, sessionID string) error { modelID = strings.ToLower(modelID) key := fmt.Sprintf("model:%s", modelID) diff --git a/proxy-router/internal/storages/structs.go b/proxy-router/internal/storages/structs.go new file mode 100644 index 00000000..f6b146ee --- /dev/null +++ b/proxy-router/internal/storages/structs.go @@ -0,0 +1,27 @@ +package storages + +import "math/big" + +type Session struct { + Id string + UserAddr string + ProviderAddr string + EndsAt *big.Int + ModelID string + + TPSScaled1000Arr []int + TTFTMsArr []int + FailoverEnabled bool +} + +type User struct { + Addr string + PubKey string + Url string +} + +type PromptActivity struct { + SessionID string + StartTime int64 + EndTime int64 +} From b7aa4d3e682cb86991b9059d523aa406c1d0d24e Mon Sep 17 00:00:00 2001 From: shev Date: Wed, 6 Nov 2024 17:31:42 +0100 Subject: [PATCH 100/260] fix: drop ethereum hdwallet --- proxy-router/go.mod | 7 +- proxy-router/go.sum | 2 - .../internal/repositories/wallet/hdwallet.go | 84 +++++++++++++++++++ .../repositories/wallet/keychainwallet.go | 11 +-- 4 files changed, 93 insertions(+), 11 deletions(-) create mode 100644 proxy-router/internal/repositories/wallet/hdwallet.go diff --git a/proxy-router/go.mod b/proxy-router/go.mod index 09c75310..8ef4d7dd 100644 --- a/proxy-router/go.mod +++ b/proxy-router/go.mod @@ -5,13 +5,14 @@ go 1.22.0 toolchain go1.22.3 require ( + github.com/btcsuite/btcd v0.22.1 + github.com/btcsuite/btcutil v1.0.3-0.20201208143702-a53e38424cce github.com/dgraph-io/badger/v4 v4.2.0 github.com/ethereum/go-ethereum v1.13.15 github.com/gin-contrib/cors v1.7.2 github.com/gin-gonic/gin v1.10.0 github.com/go-playground/validator/v10 v10.20.0 github.com/joho/godotenv v1.5.1 - github.com/miguelmota/go-ethereum-hdwallet v0.1.2 github.com/omeid/uconfig v0.7.0 github.com/sashabaranov/go-openai v1.24.1 github.com/shirou/gopsutil/v3 v3.23.11 @@ -19,6 +20,7 @@ require ( github.com/swaggo/files v1.0.1 github.com/swaggo/gin-swagger v1.6.0 github.com/swaggo/swag v1.16.3 + github.com/tyler-smith/go-bip39 v1.1.0 github.com/zalando/go-keyring v0.2.4 go.uber.org/multierr v1.6.0 go.uber.org/zap v1.24.0 @@ -32,10 +34,8 @@ require ( github.com/StackExchange/wmi v1.2.1 // indirect github.com/alessio/shellescape v1.4.1 // indirect github.com/bits-and-blooms/bitset v1.10.0 // indirect - github.com/btcsuite/btcd v0.22.1 // indirect github.com/btcsuite/btcd/btcec/v2 v2.2.0 // indirect github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 // indirect - github.com/btcsuite/btcutil v1.0.3-0.20201208143702-a53e38424cce // indirect github.com/bytedance/sonic v1.11.6 // indirect github.com/bytedance/sonic/loader v0.1.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect @@ -96,7 +96,6 @@ require ( github.com/tklauser/go-sysconf v0.3.12 // indirect github.com/tklauser/numcpus v0.6.1 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect - github.com/tyler-smith/go-bip39 v1.1.0 // indirect github.com/ugorji/go/codec v1.2.12 // indirect github.com/yusufpapurcu/wmi v1.2.3 // indirect go.opencensus.io v0.22.5 // indirect diff --git a/proxy-router/go.sum b/proxy-router/go.sum index 3cdba599..f5208546 100644 --- a/proxy-router/go.sum +++ b/proxy-router/go.sum @@ -225,8 +225,6 @@ github.com/mattn/go-runewidth v0.0.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWV github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/miguelmota/go-ethereum-hdwallet v0.1.2 h1:mz9LO6V7QCRkLYb0AH17t5R8KeqCe3E+hx9YXpmZeXA= -github.com/miguelmota/go-ethereum-hdwallet v0.1.2/go.mod h1:fdNwFSoBFVBPnU0xpOd6l2ueqsPSH/Gch5kIvSvTGk8= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/pointerstructure v1.2.0 h1:O+i9nHnXS3l/9Wu7r4NrEdwA2VFTicjUEN1uBnDo34A= diff --git a/proxy-router/internal/repositories/wallet/hdwallet.go b/proxy-router/internal/repositories/wallet/hdwallet.go new file mode 100644 index 00000000..0ff5ae43 --- /dev/null +++ b/proxy-router/internal/repositories/wallet/hdwallet.go @@ -0,0 +1,84 @@ +package wallet + +import ( + "crypto/ecdsa" + "errors" + + "github.com/btcsuite/btcd/chaincfg" + "github.com/btcsuite/btcutil/hdkeychain" + "github.com/ethereum/go-ethereum/accounts" + "github.com/ethereum/go-ethereum/common" + "github.com/tyler-smith/go-bip39" +) + +type Wallet struct { + mnemonic string + masterKey *hdkeychain.ExtendedKey + seed []byte + accounts []accounts.Account + paths map[common.Address]accounts.DerivationPath +} + +// NewFromMnemonic returns a new wallet from a BIP-39 mnemonic. +func NewFromMnemonic(mnemonic string, passOpt ...string) (*Wallet, error) { + seed, err := NewSeedFromMnemonic(mnemonic, passOpt...) + if err != nil { + return nil, err + } + + wallet, err := newWallet(seed) + if err != nil { + return nil, err + } + wallet.mnemonic = mnemonic + + return wallet, nil +} + +func newWallet(seed []byte) (*Wallet, error) { + masterKey, err := hdkeychain.NewMaster(seed, &chaincfg.MainNetParams) + if err != nil { + return nil, err + } + + return &Wallet{ + masterKey: masterKey, + seed: seed, + accounts: []accounts.Account{}, + paths: map[common.Address]accounts.DerivationPath{}, + }, nil +} + +// NewSeedFromMnemonic returns a BIP-39 seed based on a BIP-39 mnemonic. +func NewSeedFromMnemonic(mnemonic string, passOpt ...string) ([]byte, error) { + if mnemonic == "" { + return nil, errors.New("mnemonic is required") + } + + password := "" + if len(passOpt) > 0 { + password = passOpt[0] + } + + return bip39.NewSeedWithErrorChecking(mnemonic, password) +} + +// DerivePrivateKey derives the private key of the derivation path. +func (w *Wallet) DerivePrivateKey(path accounts.DerivationPath) (*ecdsa.PrivateKey, error) { + var err error + key := w.masterKey + for _, n := range path { + key, err = key.Derive(n) + if err != nil { + return nil, err + } + } + + privateKey, err := key.ECPrivKey() + privateKeyECDSA := privateKey.ToECDSA() + if err != nil { + return nil, err + } + + return privateKeyECDSA, nil +} diff --git a/proxy-router/internal/repositories/wallet/keychainwallet.go b/proxy-router/internal/repositories/wallet/keychainwallet.go index ff034fd8..1530c367 100644 --- a/proxy-router/internal/repositories/wallet/keychainwallet.go +++ b/proxy-router/internal/repositories/wallet/keychainwallet.go @@ -7,7 +7,8 @@ import ( i "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/repositories/keychain" - hdwallet "github.com/miguelmota/go-ethereum-hdwallet" + "github.com/ethereum/go-ethereum/accounts" + "github.com/ethereum/go-ethereum/crypto" ) const ( @@ -160,19 +161,19 @@ func (w *KeychainWallet) getStoredMnemonic() (string, string, error) { } func (w *KeychainWallet) mnemonicToPrivateKey(mnemonic, derivationPath string) (lib.HexString, error) { - wallet, err := hdwallet.NewFromMnemonic(mnemonic) + wallet, err := NewFromMnemonic(mnemonic) if err != nil { return nil, err } - path, err := hdwallet.ParseDerivationPath(derivationPath) + path, err := accounts.ParseDerivationPath(derivationPath) if err != nil { return nil, err } - account, err := wallet.Derive(path, true) + prKey, err := wallet.DerivePrivateKey(path) if err != nil { return nil, err } - return wallet.PrivateKeyBytes(account) + return crypto.FromECDSA(prKey), nil } func (w *KeychainWallet) PrivateKeyUpdated() <-chan struct{} { From ec98dba0cbaa0989a2c26520b8f978fd35032a65 Mon Sep 17 00:00:00 2001 From: shev Date: Thu, 7 Nov 2024 12:46:19 +0100 Subject: [PATCH 101/260] test: correct derivation --- .../repositories/wallet/hdwallet_test.go | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 proxy-router/internal/repositories/wallet/hdwallet_test.go diff --git a/proxy-router/internal/repositories/wallet/hdwallet_test.go b/proxy-router/internal/repositories/wallet/hdwallet_test.go new file mode 100644 index 00000000..e20a5d36 --- /dev/null +++ b/proxy-router/internal/repositories/wallet/hdwallet_test.go @@ -0,0 +1,30 @@ +package wallet + +import ( + "testing" + + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" + "github.com/ethereum/go-ethereum/accounts" + "github.com/ethereum/go-ethereum/common" + "github.com/stretchr/testify/require" +) + +func TestIssue172(t *testing.T) { + // https://github.com/btcsuite/btcutil/pull/182 + // makes sure that the private key is derived correctly + seed := common.FromHex("00000000000000500000000000000000") + path, err := accounts.ParseDerivationPath("m/44'/60'/0'/0/0") + require.NoError(t, err) + expectedAddr := common.HexToAddress("0xe39Be4d7E9D91D14e837589F3027798f3911A83c") + + wallet, err := newWallet(seed) + require.NoError(t, err) + + prkey, err := wallet.DerivePrivateKey(path) + require.NoError(t, err) + + addr, err := lib.PrivKeyToAddr(prkey) + require.NoError(t, err) + + require.Equal(t, expectedAddr, addr) +} From 69c4dccd97265636a110836f0ffe518e37c5a7ea Mon Sep 17 00:00:00 2001 From: shev Date: Thu, 7 Nov 2024 14:23:08 +0100 Subject: [PATCH 102/260] fix: maintain model-session index --- .../internal/storages/session_storage.go | 122 +++++++++--------- .../internal/storages/session_storage_test.go | 64 +++++++++ proxy-router/internal/storages/storage.go | 26 ++++ 3 files changed, 153 insertions(+), 59 deletions(-) create mode 100644 proxy-router/internal/storages/session_storage_test.go diff --git a/proxy-router/internal/storages/session_storage.go b/proxy-router/internal/storages/session_storage.go index 85b7e83e..1b873ac4 100644 --- a/proxy-router/internal/storages/session_storage.go +++ b/proxy-router/internal/storages/session_storage.go @@ -16,24 +16,6 @@ func NewSessionStorage(storage *Storage) *SessionStorage { } } -func (s *SessionStorage) GetSession(id string) (*Session, bool) { - id = strings.ToLower(id) - key := fmt.Sprintf("session:%s", id) - - sessionJson, err := s.db.Get([]byte(key)) - if err != nil { - return nil, false - } - - session := &Session{} - err = json.Unmarshal(sessionJson, session) - if err != nil { - return nil, false - } - - return session, true -} - func (s *SessionStorage) GetUser(addr string) (*User, bool) { addr = strings.ToLower(addr) key := fmt.Sprintf("user:%s", addr) @@ -51,30 +33,48 @@ func (s *SessionStorage) GetUser(addr string) (*User, bool) { return user, true } -func (s *SessionStorage) AddSession(session *Session) error { - sessionId := strings.ToLower(session.Id) - key := fmt.Sprintf("session:%s", sessionId) - sessionJson, err := json.Marshal(session) +func (s *SessionStorage) AddUser(user *User) error { + addr := strings.ToLower(user.Addr) + key := fmt.Sprintf("user:%s", addr) + userJson, err := json.Marshal(user) if err != nil { return err } - err = s.db.Set([]byte(key), sessionJson) + err = s.db.Set([]byte(key), userJson) if err != nil { return err } return nil } -func (s *SessionStorage) AddUser(user *User) error { - addr := strings.ToLower(user.Addr) - key := fmt.Sprintf("user:%s", addr) - userJson, err := json.Marshal(user) +func (s *SessionStorage) GetSession(id string) (*Session, bool) { + sessionJson, err := s.db.Get(formatSessionKey(id)) + if err != nil { + return nil, false + } + + session := &Session{} + err = json.Unmarshal(sessionJson, session) + if err != nil { + return nil, false + } + + return session, true +} + +func (s *SessionStorage) AddSession(session *Session) error { + sessionJson, err := json.Marshal(session) if err != nil { return err } - err = s.db.Set([]byte(key), userJson) + // TODO: do in a single transaction + err = s.db.Set(formatSessionKey(session.Id), sessionJson) + if err != nil { + return err + } + err = s.addSessionToModel(session.ModelID, session.Id) if err != nil { return err } @@ -82,59 +82,50 @@ func (s *SessionStorage) AddUser(user *User) error { } func (s *SessionStorage) RemoveSession(id string) error { + ses, ok := s.GetSession(id) + if !ok { + return nil + } sessionId := strings.ToLower(id) key := fmt.Sprintf("session:%s", sessionId) + err := s.db.Delete([]byte(key)) if err != nil { return err } - return nil -} -func (s *SessionStorage) AddSessionToModel(modelID string, sessionID string) error { - modelID = strings.ToLower(modelID) - key := fmt.Sprintf("model:%s", modelID) - - var sessions []string - sessionsJson, err := s.db.Get([]byte(key)) - if err == nil { - err = json.Unmarshal(sessionsJson, &sessions) - if err != nil { - return err - } - } else { - sessions = []string{} - } + return s.removeSessionFromModel(ses.ModelID, sessionId) +} - sessions = append(sessions, sessionID) - sessionsJson, err = json.Marshal(sessions) +func (s *SessionStorage) addSessionToModel(modelID string, sessionID string) error { + err := s.db.Set(formatModelSessionKey(modelID, sessionID), []byte{}) if err != nil { - return err + return fmt.Errorf("error adding session to model: %s", err) } + return nil +} - err = s.db.Set([]byte(key), sessionsJson) +func (s *SessionStorage) removeSessionFromModel(modelID string, sessionID string) error { + err := s.db.Delete(formatModelSessionKey(modelID, sessionID)) if err != nil { - return err + return fmt.Errorf("error removing session from model: %s", err) } return nil } func (s *SessionStorage) GetSessionsForModel(modelID string) ([]string, error) { - modelID = strings.ToLower(modelID) - key := fmt.Sprintf("model:%s", modelID) - - sessionsJson, err := s.db.Get([]byte(key)) + keys, err := s.db.GetPrefix(formatModelSessionKey(modelID, "")) if err != nil { - return []string{}, nil + return []string{}, err } - var sessions []string - err = json.Unmarshal(sessionsJson, &sessions) - if err != nil { - return nil, err + sessionIDs := make([]string, len(keys)) + for i, key := range keys { + _, sessionID := parseModelSessionKey(key) + sessionIDs[i] = sessionID } - return sessions, nil + return sessionIDs, nil } func (s *SessionStorage) AddActivity(modelID string, activity *PromptActivity) error { @@ -219,3 +210,16 @@ func (s *SessionStorage) RemoveOldActivities(modelID string, beforeTime int64) e return nil } + +func formatModelSessionKey(modelID string, sessionID string) []byte { + return []byte(fmt.Sprintf("model:%s:session:%s", strings.ToLower(modelID), strings.ToLower(sessionID))) +} + +func formatSessionKey(sessionID string) []byte { + return []byte(fmt.Sprintf("session:%s", strings.ToLower(sessionID))) +} + +func parseModelSessionKey(key []byte) (string, string) { + parts := strings.Split(string(key), ":") + return parts[1], parts[3] +} diff --git a/proxy-router/internal/storages/session_storage_test.go b/proxy-router/internal/storages/session_storage_test.go new file mode 100644 index 00000000..5da5131a --- /dev/null +++ b/proxy-router/internal/storages/session_storage_test.go @@ -0,0 +1,64 @@ +package storages + +import ( + "math/big" + "testing" + + "github.com/stretchr/testify/require" +) + +func TestAddSession(t *testing.T) { + storage := NewTestStorage() + sessionStorage := NewSessionStorage(storage) + + session := &Session{ + Id: "0x0", + UserAddr: "0x1", + ProviderAddr: "0x2", + EndsAt: big.NewInt(100), + ModelID: "0x3", + TPSScaled1000Arr: []int{1, 2, 3}, + TTFTMsArr: []int{4, 5, 6}, + FailoverEnabled: true, + } + + err := sessionStorage.AddSession(session) + require.NoError(t, err) + + s, ok := sessionStorage.GetSession(session.Id) + require.True(t, ok) + require.Equal(t, session, s) + + sessionIds, err := sessionStorage.GetSessionsForModel(session.ModelID) + require.NoError(t, err) + require.Equal(t, []string{session.Id}, sessionIds) +} + +func TestRemoveSession(t *testing.T) { + storage := NewTestStorage() + sessionStorage := NewSessionStorage(storage) + + session := &Session{ + Id: "0x0", + UserAddr: "0x1", + ProviderAddr: "0x2", + EndsAt: big.NewInt(100), + ModelID: "0x3", + TPSScaled1000Arr: []int{1, 2, 3}, + TTFTMsArr: []int{4, 5, 6}, + FailoverEnabled: true, + } + + err := sessionStorage.AddSession(session) + require.NoError(t, err) + + err = sessionStorage.RemoveSession(session.Id) + require.NoError(t, err) + + _, ok := sessionStorage.GetSession(session.Id) + require.False(t, ok) + + sessionIds, err := sessionStorage.GetSessionsForModel(session.ModelID) + require.NoError(t, err) + require.Empty(t, sessionIds) +} diff --git a/proxy-router/internal/storages/storage.go b/proxy-router/internal/storages/storage.go index a0a03649..84789bee 100644 --- a/proxy-router/internal/storages/storage.go +++ b/proxy-router/internal/storages/storage.go @@ -26,6 +26,16 @@ func NewStorage(log lib.ILogger, path string) *Storage { return &Storage{db} } +func NewTestStorage() *Storage { + opts := badger.DefaultOptions("") + opts.InMemory = true + db, err := badger.Open(opts) + if err != nil { + panic(err) + } + return &Storage{db} +} + func (s *Storage) Close() { s.db.Close() } @@ -50,6 +60,22 @@ func (s *Storage) Get(key []byte) ([]byte, error) { return valCopy, err } +func (s *Storage) GetPrefix(prefix []byte) ([][]byte, error) { + keys := make([][]byte, 0) + err := s.db.View(func(txn *badger.Txn) error { + it := txn.NewIterator(badger.IteratorOptions{PrefetchValues: false, Prefix: prefix}) + defer it.Close() + + for it.Seek(prefix); it.ValidForPrefix(prefix); it.Next() { + item := it.Item() + k := item.KeyCopy(nil) + keys = append(keys, k) + } + return nil + }) + return keys, err +} + func (s *Storage) Set(key, val []byte) error { return s.db.Update(func(txn *badger.Txn) error { return txn.Set(key, val) From 749ba8bea5c736f19da8da1b40f702d73fd49422 Mon Sep 17 00:00:00 2001 From: "bohdan.konorin" Date: Thu, 7 Nov 2024 15:20:44 +0100 Subject: [PATCH 103/260] Fixed missed parts --- ui-desktop/src/renderer/src/components/chat/Chat.tsx | 4 ++++ .../renderer/src/components/chat/ChatHistory.styles.tsx | 7 ++++++- .../src/renderer/src/components/chat/ChatHistory.tsx | 4 +++- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/ui-desktop/src/renderer/src/components/chat/Chat.tsx b/ui-desktop/src/renderer/src/components/chat/Chat.tsx index 55e83497..6f4bea33 100644 --- a/ui-desktop/src/renderer/src/components/chat/Chat.tsx +++ b/ui-desktop/src/renderer/src/components/chat/Chat.tsx @@ -396,6 +396,10 @@ const Chat = (props) => { const decodedString = textDecoder.decode(value, { stream: true }); const parts = parseDataChunk(decodedString); parts.forEach(part => { + if(!part) { + return; + } + if (part.error) { console.warn(part.error); return; diff --git a/ui-desktop/src/renderer/src/components/chat/ChatHistory.styles.tsx b/ui-desktop/src/renderer/src/components/chat/ChatHistory.styles.tsx index 138722c3..2a544a82 100644 --- a/ui-desktop/src/renderer/src/components/chat/ChatHistory.styles.tsx +++ b/ui-desktop/src/renderer/src/components/chat/ChatHistory.styles.tsx @@ -20,6 +20,11 @@ export const Container = styled.div` border-color: ${p => p.theme.colors.morMain} background-color: rgba(0,0,0,0.4); } + + .list-container { + overflow-y: auto; + max-height: calc(100vh - 90px); + } } ` @@ -81,7 +86,7 @@ export const HistoryEntryTitle = styled(FlexSpaceBetween)` export const ModelName = styled.div` text-overflow: ellipsis; - width: 250px; + width: 220px; height: 24px; overflow: hidden; text-wrap: nowrap; diff --git a/ui-desktop/src/renderer/src/components/chat/ChatHistory.tsx b/ui-desktop/src/renderer/src/components/chat/ChatHistory.tsx index 3430d41e..3a06773f 100644 --- a/ui-desktop/src/renderer/src/components/chat/ChatHistory.tsx +++ b/ui-desktop/src/renderer/src/components/chat/ChatHistory.tsx @@ -152,7 +152,7 @@ export const ChatHistory = (props: ChatHistoryProps) => { @@ -205,6 +205,7 @@ export const ChatHistory = (props: ChatHistoryProps) => { +
{ sessions?.length ? ( sessions.map(s => { @@ -227,6 +228,7 @@ export const ChatHistory = (props: ChatHistoryProps) => { )) :
You have not any sessions
} +
From d67258480bf74913a50eff551907ea4f12732a8a Mon Sep 17 00:00:00 2001 From: Aleksandr Kukharenko Date: Thu, 7 Nov 2024 17:24:48 +0200 Subject: [PATCH 104/260] feat: close session on prompt failover --- proxy-router/internal/proxyapi/proxy_sender.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/proxy-router/internal/proxyapi/proxy_sender.go b/proxy-router/internal/proxyapi/proxy_sender.go index 41a51bc5..9f63143f 100644 --- a/proxy-router/internal/proxyapi/proxy_sender.go +++ b/proxy-router/internal/proxyapi/proxy_sender.go @@ -274,10 +274,10 @@ func (p *ProxyServiceSender) SendPrompt(ctx context.Context, resWriter Responder return nil, lib.WrapError(ErrProvider, err) } - // _, err := p.sessionService.CloseSession(ctx, sessionID) - // if err != nil { - // return nil, err - // } + _, err := p.sessionService.CloseSession(ctx, sessionID) + if err != nil { + return nil, err + } resWriter.Header().Set(constants.HEADER_CONTENT_TYPE, constants.CONTENT_TYPE_EVENT_STREAM) _, err = resWriter.Write([]byte(fmt.Sprintf("data: %s\n\n", "{\"message\": \"provider failed, failover enabled\"}"))) From ed1873f01ac5fb351f942c56defe25a606e8ed39 Mon Sep 17 00:00:00 2001 From: Aleksandr Kukharenko Date: Sun, 10 Nov 2024 15:46:35 +0200 Subject: [PATCH 105/260] fix: get session from repo when close with user report --- .../internal/proxyapi/proxy_sender.go | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/proxy-router/internal/proxyapi/proxy_sender.go b/proxy-router/internal/proxyapi/proxy_sender.go index 9f63143f..6d393dd3 100644 --- a/proxy-router/internal/proxyapi/proxy_sender.go +++ b/proxy-router/internal/proxyapi/proxy_sender.go @@ -134,11 +134,11 @@ func (p *ProxyServiceSender) GetSessionReportFromProvider(ctx context.Context, s return nil, ErrMissingPrKey } - session, ok := p.sessionStorage.GetSession(sessionID.Hex()) - if !ok { + session, err := p.sessionRepo.GetSession(ctx, sessionID) + if err != nil { return nil, ErrSessionNotFound } - provider, ok := p.sessionStorage.GetUser(session.ProviderAddr) + provider, ok := p.sessionStorage.GetUser(session.ProviderAddr().Hex()) if !ok { return nil, ErrProviderNotFound } @@ -188,25 +188,27 @@ func (p *ProxyServiceSender) GetSessionReportFromProvider(ctx context.Context, s } func (p *ProxyServiceSender) GetSessionReportFromUser(ctx context.Context, sessionID common.Hash) (lib.HexString, lib.HexString, error) { - session, ok := p.sessionStorage.GetSession(sessionID.Hex()) - if !ok { + session, err := p.sessionRepo.GetSession(ctx, sessionID) + if err != nil { return nil, nil, ErrSessionNotFound } + TPSScaled1000Arr, TTFTMsArr := session.GetStats() + tps := 0 ttft := 0 - for _, tpsVal := range session.TPSScaled1000Arr { + for _, tpsVal := range TPSScaled1000Arr { tps += tpsVal } - for _, ttftVal := range session.TTFTMsArr { + for _, ttftVal := range TTFTMsArr { ttft += ttftVal } - if len(session.TPSScaled1000Arr) != 0 { - tps /= len(session.TPSScaled1000Arr) + if len(TPSScaled1000Arr) != 0 { + tps /= len(TPSScaled1000Arr) } - if len(session.TTFTMsArr) != 0 { - ttft /= len(session.TTFTMsArr) + if len(TTFTMsArr) != 0 { + ttft /= len(TTFTMsArr) } prKey, err := p.privateKey.GetPrivateKey() From 2111bc5638203a5c785764065cc5db0272d739bb Mon Sep 17 00:00:00 2001 From: "bohdan.konorin" Date: Sun, 10 Nov 2024 20:53:11 +0100 Subject: [PATCH 106/260] Added localhost to default public url --- proxy-router/internal/config/config.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/proxy-router/internal/config/config.go b/proxy-router/internal/config/config.go index 4439b7e8..4b7caa39 100644 --- a/proxy-router/internal/config/config.go +++ b/proxy-router/internal/config/config.go @@ -4,6 +4,7 @@ import ( "fmt" "math/big" "runtime" + "strings" "time" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" @@ -148,7 +149,7 @@ func (cfg *Config) SetDefaults() { cfg.Web.Address = "0.0.0.0:8082" } if cfg.Web.PublicUrl == "" { - cfg.Web.PublicUrl = fmt.Sprintf("http://%s", cfg.Web.Address) + cfg.Web.PublicUrl = fmt.Sprintf("http://%s", strings.Replace(cfg.Web.Address, "0.0.0.0", "localhost", -1)) } if cfg.Proxy.StoragePath == "" { From 32ebe84355405aa1fd235fe55628a409f4a61e32 Mon Sep 17 00:00:00 2001 From: "bohdan.konorin" Date: Sun, 10 Nov 2024 23:16:21 +0100 Subject: [PATCH 107/260] handled case with double dots --- proxy-router/internal/config/config.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/proxy-router/internal/config/config.go b/proxy-router/internal/config/config.go index 4b7caa39..759bd98f 100644 --- a/proxy-router/internal/config/config.go +++ b/proxy-router/internal/config/config.go @@ -149,7 +149,12 @@ func (cfg *Config) SetDefaults() { cfg.Web.Address = "0.0.0.0:8082" } if cfg.Web.PublicUrl == "" { - cfg.Web.PublicUrl = fmt.Sprintf("http://%s", strings.Replace(cfg.Web.Address, "0.0.0.0", "localhost", -1)) + // handle cases without domain (ex: :8082) + if string(cfg.Web.Address[0]) == ":" { + cfg.Web.PublicUrl = fmt.Sprintf("http://localhost%s", cfg.Web.Address) + } else { + cfg.Web.PublicUrl = fmt.Sprintf("http://%s", strings.Replace(cfg.Web.Address, "0.0.0.0", "localhost", -1)) + } } if cfg.Proxy.StoragePath == "" { From a3b16faad357ba2f48baafcded53731d07f87692 Mon Sep 17 00:00:00 2001 From: Oleksandr Date: Mon, 11 Nov 2024 09:20:55 +0200 Subject: [PATCH 108/260] add 'standard' to stats storage --- smart-contracts/contracts/diamond/storages/StatsStorage.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/smart-contracts/contracts/diamond/storages/StatsStorage.sol b/smart-contracts/contracts/diamond/storages/StatsStorage.sol index 96fafeff..9a47c8fb 100644 --- a/smart-contracts/contracts/diamond/storages/StatsStorage.sol +++ b/smart-contracts/contracts/diamond/storages/StatsStorage.sol @@ -9,7 +9,7 @@ contract StatsStorage is IStatsStorage { mapping(bytes32 => ModelStats) modelStats; } - bytes32 public constant STATS_STORAGE_SLOT = keccak256("diamond.stats.storage"); + bytes32 public constant STATS_STORAGE_SLOT = keccak256("diamond.standard.stats.storage"); /** PUBLIC, GETTERS */ function getProviderModelStats( From 7dbf3096133cd5673d522a026478fc22d8e02f50 Mon Sep 17 00:00:00 2001 From: Oleksandr Date: Mon, 11 Nov 2024 10:42:21 +0200 Subject: [PATCH 109/260] fix H-1 --- .../contracts/diamond/facets/Marketplace.sol | 11 +++-- .../diamond/facets/SessionRouter.sol | 43 +++++++++++++------ .../interfaces/facets/IMarketplace.sol | 5 +-- .../test/diamond/facets/SessionRouter.test.ts | 34 +++++++++++++-- 4 files changed, 66 insertions(+), 27 deletions(-) diff --git a/smart-contracts/contracts/diamond/facets/Marketplace.sol b/smart-contracts/contracts/diamond/facets/Marketplace.sol index e5d47c0a..c55145aa 100644 --- a/smart-contracts/contracts/diamond/facets/Marketplace.sol +++ b/smart-contracts/contracts/diamond/facets/Marketplace.sol @@ -42,14 +42,11 @@ contract Marketplace is emit MaretplaceFeeUpdated(bidFee_); } - function setMinMaxBidPricePerSecond( - uint256 bidMinPricePerSecond_, - uint256 bidMaxPricePerSecond_ - ) public onlyOwner { + function setMinMaxBidPricePerSecond(uint256 bidMinPricePerSecond_, uint256 bidMaxPricePerSecond_) public onlyOwner { if (bidMinPricePerSecond_ == 0) { revert MarketplaceBidMinPricePerSecondIsZero(); } - + if (bidMinPricePerSecond_ > bidMaxPricePerSecond_) { revert MarketplaceBidMinPricePerSecondIsInvalid(); } @@ -74,7 +71,9 @@ contract Marketplace is BidsStorage storage bidsStorage = _getBidsStorage(); MarketStorage storage marketStorage = _getMarketStorage(); - if (pricePerSecond_ < marketStorage.bidMinPricePerSecond || pricePerSecond_ > marketStorage.bidMaxPricePerSecond) { + if ( + pricePerSecond_ < marketStorage.bidMinPricePerSecond || pricePerSecond_ > marketStorage.bidMaxPricePerSecond + ) { revert MarketplaceBidPricePerSecondInvalid(); } diff --git a/smart-contracts/contracts/diamond/facets/SessionRouter.sol b/smart-contracts/contracts/diamond/facets/SessionRouter.sol index e7edf4a3..38c9420c 100644 --- a/smart-contracts/contracts/diamond/facets/SessionRouter.sol +++ b/smart-contracts/contracts/diamond/facets/SessionRouter.sol @@ -18,8 +18,6 @@ import {LibSD} from "../../libs/LibSD.sol"; import {ISessionRouter} from "../../interfaces/facets/ISessionRouter.sol"; -import "hardhat/console.sol"; - contract SessionRouter is ISessionRouter, OwnableDiamondStorage, @@ -258,16 +256,26 @@ contract SessionRouter is return (sessionEnd_ - session.openedAt) * bid.pricePerSecond - withdrawnAmount; } + function _getProviderOnHoldAmount(Session storage session, Bid storage bid) private view returns (uint256) { + uint128 startOfClosedAt = startOfTheDay(session.closedAt); + if (block.timestamp >= startOfClosedAt + 1 days) { + return 0; + } + + // `closedAt` - latest timestamp, cause `endsAt` bigger then `closedAt` + // Lock the provider's tokens for the current day. + // Withdrawal is allowed after a day after `startOfTheDay(session.closedAt)`. + return (session.closedAt - startOfClosedAt.max(session.openedAt)) * bid.pricePerSecond; + } + function _rewardProviderAfterClose(bool noDispute_, Session storage session, Bid storage bid) internal { - uint128 startOfToday_ = startOfTheDay(uint128(block.timestamp)); - bool isClosingLate_ = uint128(block.timestamp) > session.endsAt; + bool isClosingLate_ = session.closedAt >= session.endsAt; uint256 providerAmountToWithdraw_ = _getProviderRewards(session, bid, true); uint256 providerOnHoldAmount = 0; + // Enter when the user has a dispute AND closing early if (!noDispute_ && !isClosingLate_) { - providerOnHoldAmount = - (session.endsAt.min(session.closedAt) - startOfToday_.max(session.openedAt)) * - bid.pricePerSecond; + providerOnHoldAmount = _getProviderOnHoldAmount(session, bid); } providerAmountToWithdraw_ -= providerOnHoldAmount; @@ -275,19 +283,19 @@ contract SessionRouter is } function _rewardUserAfterClose(Session storage session, Bid storage bid) private { - uint128 startOfToday_ = startOfTheDay(uint128(block.timestamp)); - bool isClosingLate_ = uint128(block.timestamp) > session.endsAt; + uint128 startOfClosedAt_ = startOfTheDay(session.closedAt); + bool isClosingLate_ = session.closedAt >= session.endsAt; uint256 userStakeToProvider = session.isDirectPaymentFromUser ? _getProviderRewards(session, bid, false) : 0; uint256 userStake = session.stake - userStakeToProvider; uint256 userStakeToLock_ = 0; if (!isClosingLate_) { - uint256 userDuration_ = session.endsAt.min(session.closedAt) - session.openedAt.max(startOfToday_); + uint256 userDuration_ = session.endsAt.min(session.closedAt) - session.openedAt.max(startOfClosedAt_); uint256 userInitialLock_ = userDuration_ * bid.pricePerSecond; - userStakeToLock_ = userStake.min(stipendToStake(userInitialLock_, startOfToday_)); + userStakeToLock_ = userStake.min(stipendToStake(userInitialLock_, startOfClosedAt_)); _getSessionsStorage().userStakesOnHold[session.user].push( - OnHold(userStakeToLock_, uint128(startOfToday_ + 1 days)) + OnHold(userStakeToLock_, uint128(startOfClosedAt_ + 1 days)) ); } uint256 userAmountToWithdraw_ = userStake - userStakeToLock_; @@ -339,7 +347,10 @@ contract SessionRouter is Bid storage bid = _getBidsStorage().bids[session.bidId]; _onlyAccount(bid.provider); - _claimForProvider(session, _getProviderRewards(session, bid, true)); + + uint256 amount_ = _getProviderRewards(session, bid, true) - _getProviderOnHoldAmount(session, bid); + + _claimForProvider(session, amount_); } /** @@ -370,7 +381,11 @@ contract SessionRouter is if (session.isDirectPaymentFromUser) { IERC20(_getBidsStorage().token).safeTransfer(bid.provider, amount_); } else { - IERC20(_getBidsStorage().token).safeTransferFrom(_getSessionsStorage().fundingAccount, bid.provider, amount_); + IERC20(_getBidsStorage().token).safeTransferFrom( + _getSessionsStorage().fundingAccount, + bid.provider, + amount_ + ); } } diff --git a/smart-contracts/contracts/interfaces/facets/IMarketplace.sol b/smart-contracts/contracts/interfaces/facets/IMarketplace.sol index 8a61e14c..54e1ebf2 100644 --- a/smart-contracts/contracts/interfaces/facets/IMarketplace.sol +++ b/smart-contracts/contracts/interfaces/facets/IMarketplace.sol @@ -36,10 +36,7 @@ interface IMarketplace is IMarketplaceStorage { * @param bidMinPricePerSecond_ Min price per second for bid * @param bidMaxPricePerSecond_ Max price per second for bid */ - function setMinMaxBidPricePerSecond( - uint256 bidMinPricePerSecond_, - uint256 bidMaxPricePerSecond_ - ) external; + function setMinMaxBidPricePerSecond(uint256 bidMinPricePerSecond_, uint256 bidMaxPricePerSecond_) external; /** * The function to create the bid. diff --git a/smart-contracts/test/diamond/facets/SessionRouter.test.ts b/smart-contracts/test/diamond/facets/SessionRouter.test.ts index 2ceba527..ee51d1aa 100644 --- a/smart-contracts/test/diamond/facets/SessionRouter.test.ts +++ b/smart-contracts/test/diamond/facets/SessionRouter.test.ts @@ -347,7 +347,7 @@ describe('SessionRouter', () => { const fundingBalAfter = await token.balanceOf(FUNDING); expect(fundingBalBefore - fundingBalAfter).to.eq(bidPricePerSecond * duration); }); - it('should close session and send rewards for the provider, late closure before end', async () => { + it('should close session and send rewards for the provider, with dispute, early closure on the next day', async () => { const { sessionId, secondsToDayEnd, openedAt } = await _createSession(); const providerBalBefore = await token.balanceOf(PROVIDER); @@ -373,7 +373,7 @@ describe('SessionRouter', () => { const fundingBalAfter = await token.balanceOf(FUNDING); expect(fundingBalBefore - fundingBalAfter).to.eq(bidPricePerSecond * duration); }); - it('should close session and do not send rewards for the provider, with dispute, same day closure', async () => { + it('should close session and do not send rewards for the provider, with dispute, early closure on the same day', async () => { const { sessionId, secondsToDayEnd, openedAt } = await _createSession(); const providerBalBefore = await token.balanceOf(PROVIDER); @@ -563,7 +563,7 @@ describe('SessionRouter', () => { }); describe('#claimForProvider', () => { - it('should claim provider rewards, remainder, session closed with dispute', async () => { + it('should claim provider rewards, remainder, with dispute, early closure on the next day', async () => { const { sessionId, secondsToDayEnd, openedAt } = await _createSession(); await setTime(openedAt + secondsToDayEnd + 1); @@ -578,6 +578,7 @@ describe('SessionRouter', () => { const providerBalBefore = await token.balanceOf(PROVIDER); const fundingBalBefore = await token.balanceOf(FUNDING); + await setTime(openedAt + secondsToDayEnd + 1 + 1 * DAY); await sessionRouter.connect(PROVIDER).claimForProvider(sessionId); session = await sessionRouter.getSession(sessionId); @@ -590,6 +591,33 @@ describe('SessionRouter', () => { const fundingBalAfter = await token.balanceOf(FUNDING); expect(fundingBalBefore - fundingBalAfter).to.eq(bidPricePerSecond * duration); }); + it('should not claim provider rewards, when provider funds on lock', async () => { + const { sessionId, secondsToDayEnd, openedAt } = await _createSession(); + + await setTime(openedAt + secondsToDayEnd + 1); + const { msg: receiptMsg } = await getReceipt(PROVIDER, sessionId, 0, 0); + const { signature: receiptSig } = await getReceipt(OWNER, sessionId, 0, 0); + await sessionRouter.connect(SECOND).closeSession(receiptMsg, receiptSig); + + let session = await sessionRouter.getSession(sessionId); + const duration = BigInt(secondsToDayEnd); + + const providerBalBefore = await token.balanceOf(PROVIDER); + const fundingBalBefore = await token.balanceOf(FUNDING); + + await setTime(openedAt + secondsToDayEnd + 100); + await sessionRouter.connect(PROVIDER).claimForProvider(sessionId); + session = await sessionRouter.getSession(sessionId); + + expect(session.providerWithdrawnAmount).to.eq(bidPricePerSecond * duration); + expect(await sessionRouter.getProvidersTotalClaimed()).to.eq(bidPricePerSecond * duration); + expect((await sessionRouter.getProvider(PROVIDER)).limitPeriodEarned).to.eq(bidPricePerSecond * duration); + + const providerBalAfter = await token.balanceOf(PROVIDER); + expect(providerBalAfter - providerBalBefore).to.eq(0); + const fundingBalAfter = await token.balanceOf(FUNDING); + expect(fundingBalBefore - fundingBalAfter).to.eq(0); + }); it('should claim provider rewards, full', async () => { const { sessionId, openedAt } = await _createSession(); From cc8668eb589f1ffd36033464dc9c49c7e8d19783 Mon Sep 17 00:00:00 2001 From: Oleksandr Date: Mon, 11 Nov 2024 11:21:28 +0200 Subject: [PATCH 110/260] fix M-1 --- .../diamond/facets/ModelRegistry.sol | 14 ++++-- .../interfaces/facets/IModelRegistry.sol | 7 +++ .../test/diamond/facets/Marketplace.test.ts | 23 +++++++--- .../test/diamond/facets/ModelRegistry.test.ts | 45 +++++++++---------- .../diamond/facets/ProviderRegistry.test.ts | 7 ++- .../test/diamond/facets/SessionRouter.test.ts | 7 ++- 6 files changed, 66 insertions(+), 37 deletions(-) diff --git a/smart-contracts/contracts/diamond/facets/ModelRegistry.sol b/smart-contracts/contracts/diamond/facets/ModelRegistry.sol index 5c4571d8..46e8b619 100644 --- a/smart-contracts/contracts/diamond/facets/ModelRegistry.sol +++ b/smart-contracts/contracts/diamond/facets/ModelRegistry.sol @@ -25,7 +25,7 @@ contract ModelRegistry is IModelRegistry, OwnableDiamondStorage, ModelStorage, B } function modelRegister( - bytes32 modelId_, + bytes32 baseModelId_, bytes32 ipfsCID_, uint256 fee_, uint256 amount_, @@ -33,6 +33,8 @@ contract ModelRegistry is IModelRegistry, OwnableDiamondStorage, ModelStorage, B string[] memory tags_ ) external { ModelsStorage storage modelsStorage = _getModelsStorage(); + + bytes32 modelId_ = getModelId(_msgSender(), baseModelId_); Model storage model = modelsStorage.models[modelId_]; uint256 newStake_ = model.stake + amount_; @@ -51,8 +53,6 @@ contract ModelRegistry is IModelRegistry, OwnableDiamondStorage, ModelStorage, B model.createdAt = uint128(block.timestamp); model.owner = _msgSender(); - } else { - _onlyAccount(model.owner); } model.stake = newStake_; @@ -67,8 +67,10 @@ contract ModelRegistry is IModelRegistry, OwnableDiamondStorage, ModelStorage, B emit ModelRegisteredUpdated(_msgSender(), modelId_); } - function modelDeregister(bytes32 modelId_) external { + function modelDeregister(bytes32 baseModelId_) external { ModelsStorage storage modelsStorage = _getModelsStorage(); + + bytes32 modelId_ = getModelId(_msgSender(), baseModelId_); Model storage model = modelsStorage.models[modelId_]; _onlyAccount(model.owner); @@ -91,4 +93,8 @@ contract ModelRegistry is IModelRegistry, OwnableDiamondStorage, ModelStorage, B emit ModelDeregistered(model.owner, modelId_); } + + function getModelId(address account_, bytes32 baseModelId_) public pure returns (bytes32) { + return keccak256(abi.encodePacked(account_, baseModelId_)); + } } diff --git a/smart-contracts/contracts/interfaces/facets/IModelRegistry.sol b/smart-contracts/contracts/interfaces/facets/IModelRegistry.sol index c842a04d..bbcfb100 100644 --- a/smart-contracts/contracts/interfaces/facets/IModelRegistry.sol +++ b/smart-contracts/contracts/interfaces/facets/IModelRegistry.sol @@ -46,4 +46,11 @@ interface IModelRegistry is IModelStorage { * @param modelId_ The model ID. */ function modelDeregister(bytes32 modelId_) external; + + /** + * Form model ID for the user models. + * @param account_ The address. + * @param baseModelId_ The base model ID. + */ + function getModelId(address account_, bytes32 baseModelId_) external pure returns (bytes32); } diff --git a/smart-contracts/test/diamond/facets/Marketplace.test.ts b/smart-contracts/test/diamond/facets/Marketplace.test.ts index aa28ee6e..47ed7af5 100644 --- a/smart-contracts/test/diamond/facets/Marketplace.test.ts +++ b/smart-contracts/test/diamond/facets/Marketplace.test.ts @@ -29,8 +29,10 @@ describe('Marketplace', () => { let token: MorpheusToken; - const modelId1 = getHex(Buffer.from('1')); - const modelId2 = getHex(Buffer.from('2')); + const baseModelId1 = getHex(Buffer.from('1')); + const baseModelId2 = getHex(Buffer.from('2')); + let modelId1 = getHex(Buffer.from('')); + let modelId2 = getHex(Buffer.from('')); before(async () => { [OWNER, SECOND, PROVIDER] = await ethers.getSigners(); @@ -54,8 +56,11 @@ describe('Marketplace', () => { const ipfsCID = getHex(Buffer.from('ipfs://ipfsaddress')); await providerRegistry.connect(SECOND).providerRegister(wei(100), 'test'); - await modelRegistry.connect(SECOND).modelRegister(modelId1, ipfsCID, 0, wei(100), 'name', ['tag_1']); - await modelRegistry.connect(SECOND).modelRegister(modelId2, ipfsCID, 0, wei(100), 'name', ['tag_1']); + await modelRegistry.connect(SECOND).modelRegister(baseModelId1, ipfsCID, 0, wei(100), 'name', ['tag_1']); + await modelRegistry.connect(SECOND).modelRegister(baseModelId2, ipfsCID, 0, wei(100), 'name', ['tag_1']); + + modelId1 = await modelRegistry.getModelId(SECOND, baseModelId1); + modelId2 = await modelRegistry.getModelId(SECOND, baseModelId2); await reverter.snapshot(); }); @@ -217,18 +222,24 @@ describe('Marketplace', () => { ); }); it('should throw error when the model is deregistered', async () => { - await modelRegistry.connect(SECOND).modelDeregister(modelId1); + await modelRegistry.connect(SECOND).modelDeregister(baseModelId1); await expect(marketplace.connect(SECOND).postModelBid(modelId1, wei(10))).to.be.revertedWithCustomError( marketplace, 'MarketplaceModelNotFound', ); }); - it('should throw error when the bid price is invalid', async () => { + it('should throw error when the bid price is invalid #1', async () => { await expect(marketplace.connect(SECOND).postModelBid(modelId1, wei(99999))).to.be.revertedWithCustomError( marketplace, 'MarketplaceBidPricePerSecondInvalid', ); }); + it('should throw error when the bid price is invalid #2', async () => { + await expect(marketplace.connect(SECOND).postModelBid(modelId1, wei(0))).to.be.revertedWithCustomError( + marketplace, + 'MarketplaceBidPricePerSecondInvalid', + ); + }); }); describe('#deleteModelBid', async () => { diff --git a/smart-contracts/test/diamond/facets/ModelRegistry.test.ts b/smart-contracts/test/diamond/facets/ModelRegistry.test.ts index 04bddbc0..fd1e041f 100644 --- a/smart-contracts/test/diamond/facets/ModelRegistry.test.ts +++ b/smart-contracts/test/diamond/facets/ModelRegistry.test.ts @@ -28,7 +28,8 @@ describe('ModelRegistry', () => { let token: MorpheusToken; - const modelId = getHex(Buffer.from('1')); + const baseModelId = getHex(Buffer.from('1')); + let modelId = getHex(Buffer.from('')); const ipfsCID = getHex(Buffer.from('ipfs://ipfsaddress')); before(async () => { @@ -51,6 +52,8 @@ describe('ModelRegistry', () => { await token.connect(SECOND).approve(marketplace, wei(1000)); await token.approve(marketplace, wei(1000)); + modelId = await modelRegistry.getModelId(SECOND, baseModelId); + await reverter.snapshot(); }); @@ -108,7 +111,7 @@ describe('ModelRegistry', () => { describe('#modelRegister', async () => { it('should register a new model', async () => { await setNextTime(300); - await modelRegistry.connect(SECOND).modelRegister(modelId, ipfsCID, 0, wei(100), 'name', ['tag_1']); + await modelRegistry.connect(SECOND).modelRegister(baseModelId, ipfsCID, 0, wei(100), 'name', ['tag_1']); const data = await modelRegistry.getModel(modelId); expect(data.ipfsCID).to.eq(ipfsCID); @@ -126,14 +129,16 @@ describe('ModelRegistry', () => { expect(await modelRegistry.getActiveModelIds(0, 10)).to.deep.eq([modelId]); - await modelRegistry.connect(SECOND).modelRegister(modelId, ipfsCID, 0, wei(0), 'name', ['tag_1']); + await modelRegistry.connect(SECOND).modelRegister(baseModelId, ipfsCID, 0, wei(0), 'name', ['tag_1']); }); it('should add stake to existed model', async () => { const ipfsCID2 = getHex(Buffer.from('ipfs://ipfsaddress/2')); await setNextTime(300); - await modelRegistry.connect(SECOND).modelRegister(modelId, ipfsCID, 0, wei(100), 'name', ['tag_1']); - await modelRegistry.connect(SECOND).modelRegister(modelId, ipfsCID2, 1, wei(300), 'name2', ['tag_1', 'tag_2']); + await modelRegistry.connect(SECOND).modelRegister(baseModelId, ipfsCID, 0, wei(100), 'name', ['tag_1']); + await modelRegistry + .connect(SECOND) + .modelRegister(baseModelId, ipfsCID2, 1, wei(300), 'name2', ['tag_1', 'tag_2']); const data = await modelRegistry.getModel(modelId); expect(data.ipfsCID).to.eq(ipfsCID2); @@ -151,14 +156,14 @@ describe('ModelRegistry', () => { }); it('should activate deregistered model', async () => { await setNextTime(300); - await modelRegistry.connect(SECOND).modelRegister(modelId, ipfsCID, 0, wei(100), 'name', ['tag_1']); - await modelRegistry.connect(SECOND).modelDeregister(modelId); + await modelRegistry.connect(SECOND).modelRegister(baseModelId, ipfsCID, 0, wei(100), 'name', ['tag_1']); + await modelRegistry.connect(SECOND).modelDeregister(baseModelId); let data = await modelRegistry.getModel(modelId); expect(data.isDeleted).to.eq(true); expect(await modelRegistry.getIsModelActive(modelId)).to.eq(false); - await modelRegistry.connect(SECOND).modelRegister(modelId, ipfsCID, 4, wei(200), 'name3', ['tag_3']); + await modelRegistry.connect(SECOND).modelRegister(baseModelId, ipfsCID, 4, wei(200), 'name3', ['tag_3']); data = await modelRegistry.getModel(modelId); expect(data.ipfsCID).to.eq(ipfsCID); @@ -171,16 +176,10 @@ describe('ModelRegistry', () => { expect(data.isDeleted).to.eq(false); expect(await modelRegistry.getIsModelActive(modelId)).to.eq(true); }); - it('should throw error when the caller is not a model owner', async () => { - await modelRegistry.connect(SECOND).modelRegister(modelId, ipfsCID, 0, wei(100), 'name', ['tag_1']); - await expect( - modelRegistry.connect(OWNER).modelRegister(modelId, ipfsCID, 0, wei(100), 'name', ['tag_1']), - ).to.be.revertedWithCustomError(modelRegistry, 'OwnableUnauthorizedAccount'); - }); it('should throw error when the stake is too low', async () => { await modelRegistry.modelSetMinStake(wei(2)); await expect( - modelRegistry.connect(SECOND).modelRegister(modelId, ipfsCID, 0, wei(1), 'name', ['tag_1']), + modelRegistry.connect(SECOND).modelRegister(baseModelId, ipfsCID, 0, wei(1), 'name', ['tag_1']), ).to.be.revertedWithCustomError(modelRegistry, 'ModelStakeTooLow'); }); }); @@ -188,8 +187,8 @@ describe('ModelRegistry', () => { describe('#modelDeregister', async () => { it('should deregister the model', async () => { await setNextTime(300); - await modelRegistry.connect(SECOND).modelRegister(modelId, ipfsCID, 0, wei(100), 'name', ['tag_1']); - await modelRegistry.connect(SECOND).modelDeregister(modelId); + await modelRegistry.connect(SECOND).modelRegister(baseModelId, ipfsCID, 0, wei(100), 'name', ['tag_1']); + await modelRegistry.connect(SECOND).modelDeregister(baseModelId); expect((await modelRegistry.getModel(modelId)).isDeleted).to.equal(true); expect(await modelRegistry.getIsModelActive(modelId)).to.eq(false); @@ -199,24 +198,24 @@ describe('ModelRegistry', () => { expect(await modelRegistry.getActiveModelIds(0, 10)).to.deep.eq([]); }); it('should throw error when the caller is not an owner or specified address', async () => { - await expect(modelRegistry.connect(SECOND).modelDeregister(modelId)).to.be.revertedWithCustomError( + await expect(modelRegistry.connect(SECOND).modelDeregister(baseModelId)).to.be.revertedWithCustomError( modelRegistry, 'OwnableUnauthorizedAccount', ); }); it('should throw error when model has active bids', async () => { await providerRegistry.connect(SECOND).providerRegister(wei(100), 'test'); - await modelRegistry.connect(SECOND).modelRegister(modelId, ipfsCID, 0, wei(100), 'name', ['tag_1']); + await modelRegistry.connect(SECOND).modelRegister(baseModelId, ipfsCID, 0, wei(100), 'name', ['tag_1']); await marketplace.connect(SECOND).postModelBid(modelId, wei(10)); - await expect(modelRegistry.connect(SECOND).modelDeregister(modelId)).to.be.revertedWithCustomError( + await expect(modelRegistry.connect(SECOND).modelDeregister(baseModelId)).to.be.revertedWithCustomError( modelRegistry, 'ModelHasActiveBids', ); }); it('should throw error when delete model few times', async () => { - await modelRegistry.connect(SECOND).modelRegister(modelId, ipfsCID, 0, wei(100), 'name', ['tag_1']); - await modelRegistry.connect(SECOND).modelDeregister(modelId); - await expect(modelRegistry.connect(SECOND).modelDeregister(modelId)).to.be.revertedWithCustomError( + await modelRegistry.connect(SECOND).modelRegister(baseModelId, ipfsCID, 0, wei(100), 'name', ['tag_1']); + await modelRegistry.connect(SECOND).modelDeregister(baseModelId); + await expect(modelRegistry.connect(SECOND).modelDeregister(baseModelId)).to.be.revertedWithCustomError( modelRegistry, 'ModelHasAlreadyDeregistered', ); diff --git a/smart-contracts/test/diamond/facets/ProviderRegistry.test.ts b/smart-contracts/test/diamond/facets/ProviderRegistry.test.ts index 9a392db2..19ac57a2 100644 --- a/smart-contracts/test/diamond/facets/ProviderRegistry.test.ts +++ b/smart-contracts/test/diamond/facets/ProviderRegistry.test.ts @@ -29,7 +29,8 @@ describe('ProviderRegistry', () => { let token: MorpheusToken; - const modelId = getHex(Buffer.from('1')); + const baseModelId = getHex(Buffer.from('1')); + let modelId = getHex(Buffer.from('')); const ipfsCID = getHex(Buffer.from('ipfs://ipfsaddress')); before(async () => { @@ -48,6 +49,8 @@ describe('ProviderRegistry', () => { await token.connect(PROVIDER).approve(providerRegistry, wei(1000)); await token.approve(providerRegistry, wei(1000)); + modelId = await modelRegistry.getModelId(PROVIDER, baseModelId); + await reverter.snapshot(); }); @@ -184,7 +187,7 @@ describe('ProviderRegistry', () => { }); it('should throw error when provider has active bids', async () => { await providerRegistry.connect(PROVIDER).providerRegister(wei(100), 'test'); - await modelRegistry.connect(PROVIDER).modelRegister(modelId, ipfsCID, 0, wei(100), 'name', ['tag_1']); + await modelRegistry.connect(PROVIDER).modelRegister(baseModelId, ipfsCID, 0, wei(100), 'name', ['tag_1']); await marketplace.connect(PROVIDER).postModelBid(modelId, wei(10)); await expect(providerRegistry.connect(PROVIDER).providerDeregister()).to.be.revertedWithCustomError( providerRegistry, diff --git a/smart-contracts/test/diamond/facets/SessionRouter.test.ts b/smart-contracts/test/diamond/facets/SessionRouter.test.ts index ee51d1aa..842a89db 100644 --- a/smart-contracts/test/diamond/facets/SessionRouter.test.ts +++ b/smart-contracts/test/diamond/facets/SessionRouter.test.ts @@ -35,7 +35,8 @@ describe('SessionRouter', () => { let token: MorpheusToken; let bidId = ''; - const modelId = getHex(Buffer.from('1')); + const baseModelId = getHex(Buffer.from('1')); + let modelId = getHex(Buffer.from('')); const bidPricePerSecond = wei(0.0001); before(async () => { @@ -61,7 +62,9 @@ describe('SessionRouter', () => { const ipfsCID = getHex(Buffer.from('ipfs://ipfsaddress')); await providerRegistry.connect(PROVIDER).providerRegister(wei(0.2), 'test'); - await modelRegistry.connect(PROVIDER).modelRegister(modelId, ipfsCID, 0, wei(100), 'name', ['tag_1']); + await modelRegistry.connect(PROVIDER).modelRegister(baseModelId, ipfsCID, 0, wei(100), 'name', ['tag_1']); + + modelId = await modelRegistry.getModelId(PROVIDER, baseModelId); await marketplace.connect(PROVIDER).postModelBid(modelId, bidPricePerSecond); bidId = await marketplace.getBidId(PROVIDER, modelId, 0); From ec2f394a4b8bf835fb999ea85b7881aa352497e8 Mon Sep 17 00:00:00 2001 From: Oleksandr Date: Mon, 11 Nov 2024 11:27:24 +0200 Subject: [PATCH 111/260] fix L-1 --- .../contracts/diamond/storages/ModelStorage.sol | 2 +- .../contracts/diamond/storages/ProviderStorage.sol | 3 ++- .../test/diamond/facets/Marketplace.test.ts | 10 ++++++++++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/smart-contracts/contracts/diamond/storages/ModelStorage.sol b/smart-contracts/contracts/diamond/storages/ModelStorage.sol index 90df70cb..a5151c94 100644 --- a/smart-contracts/contracts/diamond/storages/ModelStorage.sol +++ b/smart-contracts/contracts/diamond/storages/ModelStorage.sol @@ -38,7 +38,7 @@ contract ModelStorage is IModelStorage { } function getIsModelActive(bytes32 modelId_) public view returns (bool) { - return !_getModelsStorage().models[modelId_].isDeleted; + return (!_getModelsStorage().models[modelId_].isDeleted && _getModelsStorage().models[modelId_].createdAt != 0); } /** INTERNAL */ diff --git a/smart-contracts/contracts/diamond/storages/ProviderStorage.sol b/smart-contracts/contracts/diamond/storages/ProviderStorage.sol index ae87e2ce..bcc837ec 100644 --- a/smart-contracts/contracts/diamond/storages/ProviderStorage.sol +++ b/smart-contracts/contracts/diamond/storages/ProviderStorage.sol @@ -36,7 +36,8 @@ contract ProviderStorage is IProviderStorage { } function getIsProviderActive(address provider_) public view returns (bool) { - return !_getProvidersStorage().providers[provider_].isDeleted; + return (!_getProvidersStorage().providers[provider_].isDeleted && + _getProvidersStorage().providers[provider_].createdAt != 0); } /** INTERNAL */ diff --git a/smart-contracts/test/diamond/facets/Marketplace.test.ts b/smart-contracts/test/diamond/facets/Marketplace.test.ts index 47ed7af5..906b693b 100644 --- a/smart-contracts/test/diamond/facets/Marketplace.test.ts +++ b/smart-contracts/test/diamond/facets/Marketplace.test.ts @@ -240,6 +240,16 @@ describe('Marketplace', () => { 'MarketplaceBidPricePerSecondInvalid', ); }); + it('should throw error when model not found', async () => { + await expect( + marketplace.connect(SECOND).postModelBid(getHex(Buffer.from('123')), wei(1)), + ).to.be.revertedWithCustomError(marketplace, 'MarketplaceModelNotFound'); + }); + it('should throw error when provider not found', async () => { + await expect( + marketplace.connect(OWNER).postModelBid(getHex(Buffer.from('123')), wei(1)), + ).to.be.revertedWithCustomError(marketplace, 'MarketplaceProviderNotFound'); + }); }); describe('#deleteModelBid', async () => { From e09a68b6c56e3949411b132748f2608d5070acb6 Mon Sep 17 00:00:00 2001 From: Aleksandr Kukharenko Date: Mon, 11 Nov 2024 15:10:37 +0200 Subject: [PATCH 112/260] feat: session auto close --- proxy-router/cmd/main.go | 7 +++ .../blockchainapi/session_expiry_handler.go | 58 +++++++++++++++++++ .../internal/storages/session_storage.go | 24 ++++++++ 3 files changed, 89 insertions(+) create mode 100644 proxy-router/internal/blockchainapi/session_expiry_handler.go diff --git a/proxy-router/cmd/main.go b/proxy-router/cmd/main.go index 098e3f8f..1fd41112 100644 --- a/proxy-router/cmd/main.go +++ b/proxy-router/cmd/main.go @@ -277,6 +277,13 @@ func start() error { eventListener := blockchainapi.NewEventsListener(sessionRepo, sessionRouter, wallet, logWatcher, log) + sessionExpiryHandler := blockchainapi.NewSessionExpiryHandler(blockchainApi, sessionStorage, log) + go func() { + if err := sessionExpiryHandler.Run(ctx); err != nil { + log.Errorf("failed to run session autoclose: %s", err) + } + }() + blockchainController := blockchainapi.NewBlockchainController(blockchainApi, log) var chatStorage proxyapi.ChatStorageInterface diff --git a/proxy-router/internal/blockchainapi/session_expiry_handler.go b/proxy-router/internal/blockchainapi/session_expiry_handler.go new file mode 100644 index 00000000..30ada6eb --- /dev/null +++ b/proxy-router/internal/blockchainapi/session_expiry_handler.go @@ -0,0 +1,58 @@ +package blockchainapi + +import ( + "context" + "time" + + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/storages" +) + +type SessionExpiryHandler struct { + blockchainService *BlockchainService + sessionStorage *storages.SessionStorage + log lib.ILogger +} + +func NewSessionExpiryHandler(blockchainService *BlockchainService, sessionStorage *storages.SessionStorage, log lib.ILogger) *SessionExpiryHandler { + return &SessionExpiryHandler{ + blockchainService: blockchainService, + sessionStorage: sessionStorage, + log: log, + } +} + +// Run starts the session autoclose process, checking every minute if any session has ended and closes it. +func (s *SessionExpiryHandler) Run(ctx context.Context) error { + ticker := time.NewTicker(1 * time.Minute) + defer ticker.Stop() + + s.log.Info("Session autoclose started") + for { + select { + case <-ctx.Done(): + return ctx.Err() + case <-ticker.C: + sessions, err := s.sessionStorage.GetSessions() + if err != nil { + s.log.Error(err) + continue + } + for _, session := range sessions { + if session.EndsAt.Int64() < time.Now().Unix() { + sessionId, err := lib.HexToHash(session.Id) + if err != nil { + s.log.Error(err) + continue + } + _, err = s.blockchainService.CloseSession(ctx, sessionId) + if err != nil { + s.log.Error(err) + continue + } + s.sessionStorage.RemoveSession(session.Id) + } + } + } + } +} diff --git a/proxy-router/internal/storages/session_storage.go b/proxy-router/internal/storages/session_storage.go index 1b873ac4..b6426bcd 100644 --- a/proxy-router/internal/storages/session_storage.go +++ b/proxy-router/internal/storages/session_storage.go @@ -113,6 +113,25 @@ func (s *SessionStorage) removeSessionFromModel(modelID string, sessionID string return nil } +func (s *SessionStorage) GetSessions() ([]Session, error) { + keys, err := s.db.GetPrefix(formatSessionKey("")) + if err != nil { + return []Session{}, err + } + + sessions := make([]Session, len(keys)) + for i, key := range keys { + _, sessionID := parseSessionKey(key) + session, ok := s.GetSession(sessionID) + if !ok { + return nil, fmt.Errorf("error getting session: %s", sessionID) + } + sessions[i] = *session + } + + return sessions, nil +} + func (s *SessionStorage) GetSessionsForModel(modelID string) ([]string, error) { keys, err := s.db.GetPrefix(formatModelSessionKey(modelID, "")) if err != nil { @@ -223,3 +242,8 @@ func parseModelSessionKey(key []byte) (string, string) { parts := strings.Split(string(key), ":") return parts[1], parts[3] } + +func parseSessionKey(key []byte) (string, string) { + parts := strings.Split(string(key), ":") + return parts[0], parts[1] +} From 6534aa84f131a5dea9553c6f50bc2b0716e22f3c Mon Sep 17 00:00:00 2001 From: Aleksandr Kukharenko Date: Mon, 11 Nov 2024 17:28:36 +0200 Subject: [PATCH 113/260] refator: run expiry handler in proxy goroutine --- proxy-router/cmd/main.go | 8 +-- proxy-router/internal/proxyctl/proxyctl.go | 60 ++++++++++++---------- 2 files changed, 34 insertions(+), 34 deletions(-) diff --git a/proxy-router/cmd/main.go b/proxy-router/cmd/main.go index 1fd41112..9c0e46af 100644 --- a/proxy-router/cmd/main.go +++ b/proxy-router/cmd/main.go @@ -278,12 +278,6 @@ func start() error { eventListener := blockchainapi.NewEventsListener(sessionRepo, sessionRouter, wallet, logWatcher, log) sessionExpiryHandler := blockchainapi.NewSessionExpiryHandler(blockchainApi, sessionStorage, log) - go func() { - if err := sessionExpiryHandler.Run(ctx); err != nil { - log.Errorf("failed to run session autoclose: %s", err) - } - }() - blockchainController := blockchainapi.NewBlockchainController(blockchainApi, log) var chatStorage proxyapi.ChatStorageInterface @@ -312,7 +306,7 @@ func start() error { cancel() }() - proxy := proxyctl.NewProxyCtl(eventListener, wallet, chainID, log, connLog, cfg.Proxy.Address, schedulerLogFactory, sessionStorage, modelConfigLoader, valid, aiEngine, blockchainApi, sessionRepo) + proxy := proxyctl.NewProxyCtl(eventListener, wallet, chainID, log, connLog, cfg.Proxy.Address, schedulerLogFactory, sessionStorage, modelConfigLoader, valid, aiEngine, blockchainApi, sessionRepo, sessionExpiryHandler) err = proxy.Run(ctx) cancelServer() diff --git a/proxy-router/internal/proxyctl/proxyctl.go b/proxy-router/internal/proxyctl/proxyctl.go index 72a0a8eb..1fa6e738 100644 --- a/proxy-router/internal/proxyctl/proxyctl.go +++ b/proxy-router/internal/proxyctl/proxyctl.go @@ -45,40 +45,42 @@ type SchedulerLogFactory = func(remoteAddr string) (lib.ILogger, error) // Proxy is a struct that represents a proxy-router part of the system type Proxy struct { - eventListener *blockchainapi.EventsListener - wallet interfaces.PrKeyProvider - proxyAddr string - chainID *big.Int - sessionStorage *storages.SessionStorage - sessionRepo *sessionrepo.SessionRepositoryCached - log *lib.Logger - connLog *lib.Logger - schedulerLogFactory SchedulerLogFactory - aiEngine *aiengine.AiEngine - validator *validator.Validate - modelConfigLoader *config.ModelConfigLoader - blockchainService *blockchainapi.BlockchainService + eventListener *blockchainapi.EventsListener + wallet interfaces.PrKeyProvider + proxyAddr string + chainID *big.Int + sessionStorage *storages.SessionStorage + sessionRepo *sessionrepo.SessionRepositoryCached + log *lib.Logger + connLog *lib.Logger + schedulerLogFactory SchedulerLogFactory + aiEngine *aiengine.AiEngine + validator *validator.Validate + modelConfigLoader *config.ModelConfigLoader + blockchainService *blockchainapi.BlockchainService + sessionExpiryHandler *blockchainapi.SessionExpiryHandler state lib.AtomicValue[ProxyState] tsk *lib.Task } // NewProxyCtl creates a new Proxy controller instance -func NewProxyCtl(eventListerer *blockchainapi.EventsListener, wallet interfaces.PrKeyProvider, chainID *big.Int, log *lib.Logger, connLog *lib.Logger, proxyAddr string, scl SchedulerLogFactory, sessionStorage *storages.SessionStorage, modelConfigLoader *config.ModelConfigLoader, valid *validator.Validate, aiEngine *aiengine.AiEngine, blockchainService *blockchainapi.BlockchainService, sessionRepo *sessionrepo.SessionRepositoryCached) *Proxy { +func NewProxyCtl(eventListerer *blockchainapi.EventsListener, wallet interfaces.PrKeyProvider, chainID *big.Int, log *lib.Logger, connLog *lib.Logger, proxyAddr string, scl SchedulerLogFactory, sessionStorage *storages.SessionStorage, modelConfigLoader *config.ModelConfigLoader, valid *validator.Validate, aiEngine *aiengine.AiEngine, blockchainService *blockchainapi.BlockchainService, sessionRepo *sessionrepo.SessionRepositoryCached, sessionExpiryHandler *blockchainapi.SessionExpiryHandler) *Proxy { return &Proxy{ - eventListener: eventListerer, - chainID: chainID, - wallet: wallet, - log: log, - connLog: connLog, - proxyAddr: proxyAddr, - schedulerLogFactory: scl, - sessionStorage: sessionStorage, - aiEngine: aiEngine, - validator: valid, - modelConfigLoader: modelConfigLoader, - blockchainService: blockchainService, - sessionRepo: sessionRepo, + eventListener: eventListerer, + chainID: chainID, + wallet: wallet, + log: log, + connLog: connLog, + proxyAddr: proxyAddr, + schedulerLogFactory: scl, + sessionStorage: sessionStorage, + aiEngine: aiEngine, + validator: valid, + modelConfigLoader: modelConfigLoader, + blockchainService: blockchainService, + sessionRepo: sessionRepo, + sessionExpiryHandler: sessionExpiryHandler, } } @@ -158,6 +160,10 @@ func (p *Proxy) run(ctx context.Context, prKey lib.HexString) error { return p.eventListener.Run(errCtx) }) + g.Go(func() error { + return p.sessionExpiryHandler.Run(errCtx) + }) + return g.Wait() } From 40b65a52673376248a45050a0141ec35a044c22a Mon Sep 17 00:00:00 2001 From: abs2023 Date: Mon, 11 Nov 2024 10:31:03 -0500 Subject: [PATCH 114/260] set draft=true on all but pushes to main --- .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1d27f457..143c6507 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -346,6 +346,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: ${{ env.TAG_NAME }} + draft: ${{ github.ref != 'refs/heads/main' }} - name: Upload release id: upload_release From 89aa41231883b49774f1912bfaa9024228aefdb6 Mon Sep 17 00:00:00 2001 From: abs2023 Date: Mon, 11 Nov 2024 12:30:14 -0500 Subject: [PATCH 115/260] set to pre-release (not draft) which is what was intended --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 143c6507..acba89c4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -346,7 +346,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: ${{ env.TAG_NAME }} - draft: ${{ github.ref != 'refs/heads/main' }} + prerelease: ${{ github.ref != 'refs/heads/main' }} - name: Upload release id: upload_release From d6036d42ad81385e8b1cdf2d4592ff9724001a08 Mon Sep 17 00:00:00 2001 From: Oleksandr Date: Tue, 12 Nov 2024 10:23:15 +0200 Subject: [PATCH 116/260] implement delegation functionality --- .../contracts/diamond/facets/Delegation.sol | 21 + .../contracts/diamond/facets/Marketplace.sol | 10 +- .../diamond/facets/ModelRegistry.sol | 21 +- .../diamond/facets/ProviderRegistry.sol | 47 +- .../diamond/facets/SessionRouter.sol | 41 +- .../diamond/presets/OwnableDiamondStorage.sol | 6 - .../diamond/storages/DelegationStorage.sol | 52 ++ .../interfaces/deps/IDelegateRegistry.sol | 293 +++++++++++ .../interfaces/facets/IDelegation.sol | 20 + .../interfaces/facets/IMarketplace.sol | 23 +- .../interfaces/facets/IModelRegistry.sol | 2 + .../interfaces/facets/IProviderRegistry.sol | 14 +- .../interfaces/facets/ISessionRouter.sol | 5 +- .../interfaces/storage/IDelegationStorage.sol | 37 ++ .../delegate-registry/DelegateRegistry.sol | 474 ++++++++++++++++++ .../delegate-registry/IDelegateRegistry.sol | 221 ++++++++ .../libraries/RegistryHashes.sol | 303 +++++++++++ .../libraries/RegistryOps.sol | 31 ++ .../libraries/RegistryStorage.sol | 69 +++ .../test/diamond/facets/Delegation.test.ts | 109 ++++ .../test/diamond/facets/Marketplace.test.ts | 129 +++-- .../test/diamond/facets/ModelRegistry.test.ts | 115 ++++- .../diamond/facets/ProviderRegistry.test.ts | 112 ++++- .../test/diamond/facets/SessionRouter.test.ts | 277 ++++++++-- .../deployers/diamond/facets/delegation.ts | 31 ++ .../test/helpers/deployers/diamond/index.ts | 1 + .../delegate-registry/delegate-registry.ts | 10 + .../test/helpers/deployers/mock/index.ts | 1 + 28 files changed, 2262 insertions(+), 213 deletions(-) create mode 100644 smart-contracts/contracts/diamond/facets/Delegation.sol create mode 100644 smart-contracts/contracts/diamond/storages/DelegationStorage.sol create mode 100644 smart-contracts/contracts/interfaces/deps/IDelegateRegistry.sol create mode 100644 smart-contracts/contracts/interfaces/facets/IDelegation.sol create mode 100644 smart-contracts/contracts/interfaces/storage/IDelegationStorage.sol create mode 100644 smart-contracts/contracts/mock/delegate-registry/DelegateRegistry.sol create mode 100644 smart-contracts/contracts/mock/delegate-registry/IDelegateRegistry.sol create mode 100644 smart-contracts/contracts/mock/delegate-registry/libraries/RegistryHashes.sol create mode 100644 smart-contracts/contracts/mock/delegate-registry/libraries/RegistryOps.sol create mode 100644 smart-contracts/contracts/mock/delegate-registry/libraries/RegistryStorage.sol create mode 100644 smart-contracts/test/diamond/facets/Delegation.test.ts create mode 100644 smart-contracts/test/helpers/deployers/diamond/facets/delegation.ts create mode 100644 smart-contracts/test/helpers/deployers/mock/delegate-registry/delegate-registry.ts diff --git a/smart-contracts/contracts/diamond/facets/Delegation.sol b/smart-contracts/contracts/diamond/facets/Delegation.sol new file mode 100644 index 00000000..9009b38b --- /dev/null +++ b/smart-contracts/contracts/diamond/facets/Delegation.sol @@ -0,0 +1,21 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.24; + +import {OwnableDiamondStorage} from "../presets/OwnableDiamondStorage.sol"; + +import {DelegationStorage} from "../storages/DelegationStorage.sol"; + +import {IDelegation} from "../../interfaces/facets/IDelegation.sol"; + +contract Delegation is IDelegation, OwnableDiamondStorage, DelegationStorage { + function __Delegation_init(address registry_) external initializer(DELEGATION_STORAGE_SLOT) { + setRegistry(registry_); + } + + function setRegistry(address registry_) public onlyOwner { + DLGTNStorage storage delegationStorage = _getDelegationStorage(); + delegationStorage.registry = registry_; + + emit DelegationRegistryUpdated(registry_); + } +} diff --git a/smart-contracts/contracts/diamond/facets/Marketplace.sol b/smart-contracts/contracts/diamond/facets/Marketplace.sol index c55145aa..55c95c7b 100644 --- a/smart-contracts/contracts/diamond/facets/Marketplace.sol +++ b/smart-contracts/contracts/diamond/facets/Marketplace.sol @@ -10,6 +10,7 @@ import {BidStorage} from "../storages/BidStorage.sol"; import {ModelStorage} from "../storages/ModelStorage.sol"; import {ProviderStorage} from "../storages/ProviderStorage.sol"; import {MarketplaceStorage} from "../storages/MarketplaceStorage.sol"; +import {DelegationStorage} from "../storages/DelegationStorage.sol"; import {IMarketplace} from "../../interfaces/facets/IMarketplace.sol"; @@ -19,7 +20,8 @@ contract Marketplace is MarketplaceStorage, ProviderStorage, ModelStorage, - BidStorage + BidStorage, + DelegationStorage { using SafeERC20 for IERC20; using EnumerableSet for EnumerableSet.Bytes32Set; @@ -58,8 +60,8 @@ contract Marketplace is emit MarketplaceBidMinMaxPriceUpdated(bidMinPricePerSecond_, bidMaxPricePerSecond_); } - function postModelBid(bytes32 modelId_, uint256 pricePerSecond_) external returns (bytes32 bidId) { - address provider_ = _msgSender(); + function postModelBid(address provider_, bytes32 modelId_, uint256 pricePerSecond_) external returns (bytes32 bidId) { + _validateDelegatee(_msgSender(), provider_, DELEGATION_RULES_MARKETPLACE); if (!getIsProviderActive(provider_)) { revert MarketplaceProviderNotFound(); @@ -110,7 +112,7 @@ contract Marketplace is function deleteModelBid(bytes32 bidId_) external { BidsStorage storage bidsStorage = _getBidsStorage(); - _onlyAccount(bidsStorage.bids[bidId_].provider); + _validateDelegatee(_msgSender(), bidsStorage.bids[bidId_].provider, DELEGATION_RULES_MARKETPLACE); if (!isBidActive(bidId_)) { revert MarketplaceActiveBidNotFound(); diff --git a/smart-contracts/contracts/diamond/facets/ModelRegistry.sol b/smart-contracts/contracts/diamond/facets/ModelRegistry.sol index 46e8b619..de75e6cf 100644 --- a/smart-contracts/contracts/diamond/facets/ModelRegistry.sol +++ b/smart-contracts/contracts/diamond/facets/ModelRegistry.sol @@ -8,10 +8,11 @@ import {OwnableDiamondStorage} from "../presets/OwnableDiamondStorage.sol"; import {BidStorage} from "../storages/BidStorage.sol"; import {ModelStorage} from "../storages/ModelStorage.sol"; +import {DelegationStorage} from "../storages/DelegationStorage.sol"; import {IModelRegistry} from "../../interfaces/facets/IModelRegistry.sol"; -contract ModelRegistry is IModelRegistry, OwnableDiamondStorage, ModelStorage, BidStorage { +contract ModelRegistry is IModelRegistry, OwnableDiamondStorage, ModelStorage, BidStorage, DelegationStorage { using EnumerableSet for EnumerableSet.Bytes32Set; using SafeERC20 for IERC20; @@ -25,6 +26,7 @@ contract ModelRegistry is IModelRegistry, OwnableDiamondStorage, ModelStorage, B } function modelRegister( + address modelOwner_, bytes32 baseModelId_, bytes32 ipfsCID_, uint256 fee_, @@ -32,9 +34,11 @@ contract ModelRegistry is IModelRegistry, OwnableDiamondStorage, ModelStorage, B string calldata name_, string[] memory tags_ ) external { + _validateDelegatee(_msgSender(), modelOwner_, DELEGATION_RULES_MODEL); + ModelsStorage storage modelsStorage = _getModelsStorage(); - bytes32 modelId_ = getModelId(_msgSender(), baseModelId_); + bytes32 modelId_ = getModelId(modelOwner_, baseModelId_); Model storage model = modelsStorage.models[modelId_]; uint256 newStake_ = model.stake + amount_; @@ -45,14 +49,14 @@ contract ModelRegistry is IModelRegistry, OwnableDiamondStorage, ModelStorage, B if (amount_ > 0) { BidsStorage storage bidsStorage = _getBidsStorage(); - IERC20(bidsStorage.token).safeTransferFrom(_msgSender(), address(this), amount_); + IERC20(bidsStorage.token).safeTransferFrom(modelOwner_, address(this), amount_); } if (model.createdAt == 0) { modelsStorage.modelIds.add(modelId_); model.createdAt = uint128(block.timestamp); - model.owner = _msgSender(); + model.owner = modelOwner_; } model.stake = newStake_; @@ -64,16 +68,15 @@ contract ModelRegistry is IModelRegistry, OwnableDiamondStorage, ModelStorage, B modelsStorage.activeModels.add(modelId_); - emit ModelRegisteredUpdated(_msgSender(), modelId_); + emit ModelRegisteredUpdated(modelOwner_, modelId_); } - function modelDeregister(bytes32 baseModelId_) external { + function modelDeregister(bytes32 modelId_) external { ModelsStorage storage modelsStorage = _getModelsStorage(); - - bytes32 modelId_ = getModelId(_msgSender(), baseModelId_); Model storage model = modelsStorage.models[modelId_]; - _onlyAccount(model.owner); + _validateDelegatee(_msgSender(), model.owner, DELEGATION_RULES_MODEL); + if (!_isModelActiveBidsEmpty(modelId_)) { revert ModelHasActiveBids(); } diff --git a/smart-contracts/contracts/diamond/facets/ProviderRegistry.sol b/smart-contracts/contracts/diamond/facets/ProviderRegistry.sol index 13dcbca6..c410ad7a 100644 --- a/smart-contracts/contracts/diamond/facets/ProviderRegistry.sol +++ b/smart-contracts/contracts/diamond/facets/ProviderRegistry.sol @@ -8,10 +8,12 @@ import {OwnableDiamondStorage} from "../presets/OwnableDiamondStorage.sol"; import {BidStorage} from "../storages/BidStorage.sol"; import {ProviderStorage} from "../storages/ProviderStorage.sol"; +import {DelegationStorage} from "../storages/DelegationStorage.sol"; import {IProviderRegistry} from "../../interfaces/facets/IProviderRegistry.sol"; +import {IDelegateRegistry} from "../../interfaces/deps/IDelegateRegistry.sol"; -contract ProviderRegistry is IProviderRegistry, OwnableDiamondStorage, ProviderStorage, BidStorage { +contract ProviderRegistry is IProviderRegistry, OwnableDiamondStorage, ProviderStorage, BidStorage, DelegationStorage { using EnumerableSet for EnumerableSet.AddressSet; using SafeERC20 for IERC20; @@ -24,15 +26,16 @@ contract ProviderRegistry is IProviderRegistry, OwnableDiamondStorage, ProviderS emit ProviderMinimumStakeUpdated(providerMinimumStake_); } - function providerRegister(uint256 amount_, string calldata endpoint_) external { - BidsStorage storage bidsStorage = _getBidsStorage(); + function providerRegister(address provider_, uint256 amount_, string calldata endpoint_) external { + _validateDelegatee(_msgSender(), provider_, DELEGATION_RULES_PROVIDER); + BidsStorage storage bidsStorage = _getBidsStorage(); if (amount_ > 0) { - IERC20(bidsStorage.token).safeTransferFrom(_msgSender(), address(this), amount_); + IERC20(bidsStorage.token).safeTransferFrom(provider_, address(this), amount_); } PovidersStorage storage providersStorage = _getProvidersStorage(); - Provider storage provider = providersStorage.providers[_msgSender()]; + Provider storage provider = providersStorage.providers[provider_]; uint256 newStake_ = provider.stake + amount_; uint256 minStake_ = providersStorage.providerMinimumStake; @@ -50,13 +53,13 @@ contract ProviderRegistry is IProviderRegistry, OwnableDiamondStorage, ProviderS provider.endpoint = endpoint_; provider.stake = newStake_; - providersStorage.activeProviders.add(_msgSender()); + providersStorage.activeProviders.add(provider_); - emit ProviderRegistered(_msgSender()); + emit ProviderRegistered(provider_); } - function providerDeregister() external { - address provider_ = _msgSender(); + function providerDeregister(address provider_) external { + _validateDelegatee(_msgSender(), provider_, DELEGATION_RULES_PROVIDER); PovidersStorage storage providersStorage = _getProvidersStorage(); Provider storage provider = providersStorage.providers[provider_]; @@ -86,32 +89,6 @@ contract ProviderRegistry is IProviderRegistry, OwnableDiamondStorage, ProviderS emit ProviderDeregistered(provider_); } - // /** - // * - // * @notice Withdraws stake from a provider after it has been deregistered - // * Allows to withdraw the stake after provider reward period has ended - // */ - // function providerWithdrawStake() external { - // Provider storage provider = providers(_msgSender()); - - // if (!provider.isDeleted) { - // revert ProviderNotDeregistered(); - // } - // if (provider.stake == 0) { - // revert ProviderNoStake(); - // } - - // uint256 withdrawAmount_ = _getWithdrawAmount(provider); - // if (withdrawAmount_ == 0) { - // revert ProviderNothingToWithdraw(); - // } - - // provider.stake -= withdrawAmount_; - // getToken().safeTransfer(_msgSender(), withdrawAmount_); - - // emit ProviderWithdrawn(_msgSender(), withdrawAmount_); - // } - /** * @notice Returns the withdrawable stake for a provider * @dev If the provider already earned this period then withdrawable stake diff --git a/smart-contracts/contracts/diamond/facets/SessionRouter.sol b/smart-contracts/contracts/diamond/facets/SessionRouter.sol index 38c9420c..4545e19b 100644 --- a/smart-contracts/contracts/diamond/facets/SessionRouter.sol +++ b/smart-contracts/contracts/diamond/facets/SessionRouter.sol @@ -13,6 +13,7 @@ import {BidStorage, EnumerableSet} from "../storages/BidStorage.sol"; import {StatsStorage} from "../storages/StatsStorage.sol"; import {SessionStorage} from "../storages/SessionStorage.sol"; import {ProviderStorage} from "../storages/ProviderStorage.sol"; +import {DelegationStorage} from "../storages/DelegationStorage.sol"; import {LibSD} from "../../libs/LibSD.sol"; @@ -24,7 +25,8 @@ contract SessionRouter is SessionStorage, ProviderStorage, BidStorage, - StatsStorage + StatsStorage, + DelegationStorage { using Math for *; using LibSD for LibSD.SD; @@ -76,38 +78,38 @@ contract SessionRouter is /// OPEN SESSION /// //////////////////////// function openSession( + address user_, uint256 amount_, bool isDirectPaymentFromUser_, bytes calldata approvalEncoded_, bytes calldata signature_ ) external returns (bytes32) { + _validateDelegatee(_msgSender(), user_, DELEGATION_RULES_SESSION); + SessionsStorage storage sessionsStorage = _getSessionsStorage(); bytes32 bidId_ = _extractProviderApproval(approvalEncoded_); - Bid storage bid = _getBidsStorage().bids[bidId_]; - bytes32 sessionId_ = getSessionId(_msgSender(), bid.provider, bidId_, sessionsStorage.sessionNonce++); + bytes32 sessionId_ = getSessionId(user_, _getBidsStorage().bids[bidId_].provider, bidId_, sessionsStorage.sessionNonce++); Session storage session = sessionsStorage.sessions[sessionId_]; - uint128 endsAt_ = _validateSession(bidId_, amount_, isDirectPaymentFromUser_, approvalEncoded_, signature_); + IERC20(_getBidsStorage().token).safeTransferFrom(user_, address(this), amount_); - IERC20(_getBidsStorage().token).safeTransferFrom(_msgSender(), address(this), amount_); - - session.user = _msgSender(); + session.user = user_; session.stake = amount_; session.bidId = bidId_; session.openedAt = uint128(block.timestamp); - session.endsAt = endsAt_; + session.endsAt = _validateSession(bidId_, amount_, isDirectPaymentFromUser_, approvalEncoded_, signature_); session.isActive = true; session.isDirectPaymentFromUser = isDirectPaymentFromUser_; - sessionsStorage.userSessions[_msgSender()].add(sessionId_); - sessionsStorage.providerSessions[bid.provider].add(sessionId_); - sessionsStorage.modelSessions[bid.modelId].add(sessionId_); + sessionsStorage.userSessions[user_].add(sessionId_); + sessionsStorage.providerSessions[_getBidsStorage().bids[bidId_].provider].add(sessionId_); + sessionsStorage.modelSessions[_getBidsStorage().bids[bidId_].modelId].add(sessionId_); sessionsStorage.isProviderApprovalUsed[approvalEncoded_] = true; - emit SessionOpened(_msgSender(), sessionId_, bid.provider); + emit SessionOpened(user_, sessionId_, _getBidsStorage().bids[bidId_].provider); return sessionId_; } @@ -207,7 +209,8 @@ contract SessionRouter is Session storage session = _getSessionsStorage().sessions[sessionId_]; Bid storage bid = _getBidsStorage().bids[session.bidId]; - _onlyAccount(session.user); + _validateDelegatee(_msgSender(), session.user, DELEGATION_RULES_SESSION); + if (session.closedAt != 0) { revert SessionAlreadyClosed(); } @@ -346,7 +349,7 @@ contract SessionRouter is Session storage session = _getSessionsStorage().sessions[sessionId_]; Bid storage bid = _getBidsStorage().bids[session.bidId]; - _onlyAccount(bid.provider); + _validateDelegatee(_msgSender(), bid.provider, DELEGATION_RULES_SESSION); uint256 amount_ = _getProviderRewards(session, bid, true) - _getProviderOnHoldAmount(session, bid); @@ -419,8 +422,10 @@ contract SessionRouter is } } - function withdrawUserStakes(uint8 iterations_) external { - OnHold[] storage onHoldEntries = _getSessionsStorage().userStakesOnHold[_msgSender()]; + function withdrawUserStakes(address user_, uint8 iterations_) external { + _validateDelegatee(_msgSender(), user_, DELEGATION_RULES_SESSION); + + OnHold[] storage onHoldEntries = _getSessionsStorage().userStakesOnHold[user_]; uint8 count_ = iterations_ >= onHoldEntries.length ? uint8(onHoldEntries.length) : iterations_; uint256 length_ = onHoldEntries.length; uint256 amount_ = 0; @@ -447,9 +452,9 @@ contract SessionRouter is revert SessionUserAmountToWithdrawIsZero(); } - IERC20(_getBidsStorage().token).safeTransfer(_msgSender(), amount_); + IERC20(_getBidsStorage().token).safeTransfer(user_, amount_); - emit UserWithdrawn(_msgSender(), amount_); + emit UserWithdrawn(user_, amount_); } //////////////////////// diff --git a/smart-contracts/contracts/diamond/presets/OwnableDiamondStorage.sol b/smart-contracts/contracts/diamond/presets/OwnableDiamondStorage.sol index d671a880..c484d6c8 100644 --- a/smart-contracts/contracts/diamond/presets/OwnableDiamondStorage.sol +++ b/smart-contracts/contracts/diamond/presets/OwnableDiamondStorage.sol @@ -16,10 +16,4 @@ abstract contract OwnableDiamondStorage is DiamondOwnableStorage, Context { revert OwnableUnauthorizedAccount(_msgSender()); } } - - function _onlyAccount(address sender_) internal view { - if (_msgSender() != sender_) { - revert OwnableUnauthorizedAccount(_msgSender()); - } - } } diff --git a/smart-contracts/contracts/diamond/storages/DelegationStorage.sol b/smart-contracts/contracts/diamond/storages/DelegationStorage.sol new file mode 100644 index 00000000..eff95de3 --- /dev/null +++ b/smart-contracts/contracts/diamond/storages/DelegationStorage.sol @@ -0,0 +1,52 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.24; + +import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol"; +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {Paginator} from "@solarity/solidity-lib/libs/arrays/Paginator.sol"; + +import {IDelegationStorage} from "../../interfaces/storage/IDelegationStorage.sol"; +import {IDelegateRegistry} from "../../interfaces/deps/IDelegateRegistry.sol"; + +contract DelegationStorage is IDelegationStorage { + struct DLGTNStorage { + address registry; + } + + bytes32 public constant DELEGATION_STORAGE_SLOT = keccak256("diamond.standard.delegation.storage"); + bytes32 public constant DELEGATION_RULES_PROVIDER = keccak256("delegation.rules.provider"); + bytes32 public constant DELEGATION_RULES_MODEL = keccak256("delegation.rules.model"); + bytes32 public constant DELEGATION_RULES_MARKETPLACE = keccak256("delegation.rules.marketplace"); + bytes32 public constant DELEGATION_RULES_SESSION = keccak256("delegation.rules.session"); + + /** PUBLIC, GETTERS */ + function getRegistry() external view returns (address) { + return _getDelegationStorage().registry; + } + + function isRightsDelegated(address delegatee_, address delegator_, bytes32 rights_) public view returns (bool) { + DLGTNStorage storage delegationStorage = _getDelegationStorage(); + + return IDelegateRegistry(delegationStorage.registry).checkDelegateForContract( + delegatee_, + delegator_, + address(this), + rights_ + ); + } + + /** INTERNAL */ + function _validateDelegatee(address delegatee_, address delegator_, bytes32 rights_) internal view { + if (delegatee_ != delegator_ && !isRightsDelegated(delegatee_, delegator_, rights_)) { + revert InsufficientRightsForOperation(delegator_, delegatee_); + } + } + + function _getDelegationStorage() internal pure returns (DLGTNStorage storage ds) { + bytes32 slot_ = DELEGATION_STORAGE_SLOT; + + assembly { + ds.slot := slot_ + } + } +} diff --git a/smart-contracts/contracts/interfaces/deps/IDelegateRegistry.sol b/smart-contracts/contracts/interfaces/deps/IDelegateRegistry.sol new file mode 100644 index 00000000..c3aa59b4 --- /dev/null +++ b/smart-contracts/contracts/interfaces/deps/IDelegateRegistry.sol @@ -0,0 +1,293 @@ +// SPDX-License-Identifier: CC0-1.0 +pragma solidity ^0.8.24; // Changed from `pragma solidity >=0.8.13;` + +/** + * @title IDelegateRegistry + * @custom:version 2.0 + * @custom:author foobar (0xfoobar) + * @notice A standalone immutable registry storing delegated permissions from one address to another + */ +interface IDelegateRegistry { + /// @notice Delegation type, NONE is used when a delegation does not exist or is revoked + enum DelegationType { + NONE, + ALL, + CONTRACT, + ERC721, + ERC20, + ERC1155 + } + + /// @notice Struct for returning delegations + struct Delegation { + DelegationType type_; + address to; + address from; + bytes32 rights; + address contract_; + uint256 tokenId; + uint256 amount; + } + + /// @notice Emitted when an address delegates or revokes rights for their entire wallet + event DelegateAll(address indexed from, address indexed to, bytes32 rights, bool enable); + + /// @notice Emitted when an address delegates or revokes rights for a contract address + event DelegateContract( + address indexed from, + address indexed to, + address indexed contract_, + bytes32 rights, + bool enable + ); + + /// @notice Emitted when an address delegates or revokes rights for an ERC721 tokenId + event DelegateERC721( + address indexed from, + address indexed to, + address indexed contract_, + uint256 tokenId, + bytes32 rights, + bool enable + ); + + /// @notice Emitted when an address delegates or revokes rights for an amount of ERC20 tokens + event DelegateERC20( + address indexed from, + address indexed to, + address indexed contract_, + bytes32 rights, + uint256 amount + ); + + /// @notice Emitted when an address delegates or revokes rights for an amount of an ERC1155 tokenId + event DelegateERC1155( + address indexed from, + address indexed to, + address indexed contract_, + uint256 tokenId, + bytes32 rights, + uint256 amount + ); + + /// @notice Thrown if multicall calldata is malformed + error MulticallFailed(); + + /** + * ----------- WRITE ----------- + */ + + /** + * @notice Call multiple functions in the current contract and return the data from all of them if they all succeed + * @param data The encoded function data for each of the calls to make to this contract + * @return results The results from each of the calls passed in via data + */ + function multicall(bytes[] calldata data) external payable returns (bytes[] memory results); + + /** + * @notice Allow the delegate to act on behalf of `msg.sender` for all contracts + * @param to The address to act as delegate + * @param rights Specific subdelegation rights granted to the delegate, pass an empty bytestring to encompass all rights + * @param enable Whether to enable or disable this delegation, true delegates and false revokes + * @return delegationHash The unique identifier of the delegation + */ + function delegateAll(address to, bytes32 rights, bool enable) external payable returns (bytes32 delegationHash); + + /** + * @notice Allow the delegate to act on behalf of `msg.sender` for a specific contract + * @param to The address to act as delegate + * @param contract_ The contract whose rights are being delegated + * @param rights Specific subdelegation rights granted to the delegate, pass an empty bytestring to encompass all rights + * @param enable Whether to enable or disable this delegation, true delegates and false revokes + * @return delegationHash The unique identifier of the delegation + */ + function delegateContract( + address to, + address contract_, + bytes32 rights, + bool enable + ) external payable returns (bytes32 delegationHash); + + /** + * @notice Allow the delegate to act on behalf of `msg.sender` for a specific ERC721 token + * @param to The address to act as delegate + * @param contract_ The contract whose rights are being delegated + * @param tokenId The token id to delegate + * @param rights Specific subdelegation rights granted to the delegate, pass an empty bytestring to encompass all rights + * @param enable Whether to enable or disable this delegation, true delegates and false revokes + * @return delegationHash The unique identifier of the delegation + */ + function delegateERC721( + address to, + address contract_, + uint256 tokenId, + bytes32 rights, + bool enable + ) external payable returns (bytes32 delegationHash); + + /** + * @notice Allow the delegate to act on behalf of `msg.sender` for a specific amount of ERC20 tokens + * @dev The actual amount is not encoded in the hash, just the existence of a amount (since it is an upper bound) + * @param to The address to act as delegate + * @param contract_ The address for the fungible token contract + * @param rights Specific subdelegation rights granted to the delegate, pass an empty bytestring to encompass all rights + * @param amount The amount to delegate, > 0 delegates and 0 revokes + * @return delegationHash The unique identifier of the delegation + */ + function delegateERC20( + address to, + address contract_, + bytes32 rights, + uint256 amount + ) external payable returns (bytes32 delegationHash); + + /** + * @notice Allow the delegate to act on behalf of `msg.sender` for a specific amount of ERC1155 tokens + * @dev The actual amount is not encoded in the hash, just the existence of a amount (since it is an upper bound) + * @param to The address to act as delegate + * @param contract_ The address of the contract that holds the token + * @param tokenId The token id to delegate + * @param rights Specific subdelegation rights granted to the delegate, pass an empty bytestring to encompass all rights + * @param amount The amount of that token id to delegate, > 0 delegates and 0 revokes + * @return delegationHash The unique identifier of the delegation + */ + function delegateERC1155( + address to, + address contract_, + uint256 tokenId, + bytes32 rights, + uint256 amount + ) external payable returns (bytes32 delegationHash); + + /** + * ----------- CHECKS ----------- + */ + + /** + * @notice Check if `to` is a delegate of `from` for the entire wallet + * @param to The potential delegate address + * @param from The potential address who delegated rights + * @param rights Specific rights to check for, pass the zero value to ignore subdelegations and check full delegations only + * @return valid Whether delegate is granted to act on the from's behalf + */ + function checkDelegateForAll(address to, address from, bytes32 rights) external view returns (bool); + + /** + * @notice Check if `to` is a delegate of `from` for the specified `contract_` or the entire wallet + * @param to The delegated address to check + * @param contract_ The specific contract address being checked + * @param from The cold wallet who issued the delegation + * @param rights Specific rights to check for, pass the zero value to ignore subdelegations and check full delegations only + * @return valid Whether delegate is granted to act on from's behalf for entire wallet or that specific contract + */ + function checkDelegateForContract( + address to, + address from, + address contract_, + bytes32 rights + ) external view returns (bool); + + /** + * @notice Check if `to` is a delegate of `from` for the specific `contract` and `tokenId`, the entire `contract_`, or the entire wallet + * @param to The delegated address to check + * @param contract_ The specific contract address being checked + * @param tokenId The token id for the token to delegating + * @param from The wallet that issued the delegation + * @param rights Specific rights to check for, pass the zero value to ignore subdelegations and check full delegations only + * @return valid Whether delegate is granted to act on from's behalf for entire wallet, that contract, or that specific tokenId + */ + function checkDelegateForERC721( + address to, + address from, + address contract_, + uint256 tokenId, + bytes32 rights + ) external view returns (bool); + + /** + * @notice Returns the amount of ERC20 tokens the delegate is granted rights to act on the behalf of + * @param to The delegated address to check + * @param contract_ The address of the token contract + * @param from The cold wallet who issued the delegation + * @param rights Specific rights to check for, pass the zero value to ignore subdelegations and check full delegations only + * @return balance The delegated balance, which will be 0 if the delegation does not exist + */ + function checkDelegateForERC20( + address to, + address from, + address contract_, + bytes32 rights + ) external view returns (uint256); + + /** + * @notice Returns the amount of a ERC1155 tokens the delegate is granted rights to act on the behalf of + * @param to The delegated address to check + * @param contract_ The address of the token contract + * @param tokenId The token id to check the delegated amount of + * @param from The cold wallet who issued the delegation + * @param rights Specific rights to check for, pass the zero value to ignore subdelegations and check full delegations only + * @return balance The delegated balance, which will be 0 if the delegation does not exist + */ + function checkDelegateForERC1155( + address to, + address from, + address contract_, + uint256 tokenId, + bytes32 rights + ) external view returns (uint256); + + /** + * ----------- ENUMERATIONS ----------- + */ + + /** + * @notice Returns all enabled delegations a given delegate has received + * @param to The address to retrieve delegations for + * @return delegations Array of Delegation structs + */ + function getIncomingDelegations(address to) external view returns (Delegation[] memory delegations); + + /** + * @notice Returns all enabled delegations an address has given out + * @param from The address to retrieve delegations for + * @return delegations Array of Delegation structs + */ + function getOutgoingDelegations(address from) external view returns (Delegation[] memory delegations); + + /** + * @notice Returns all hashes associated with enabled delegations an address has received + * @param to The address to retrieve incoming delegation hashes for + * @return delegationHashes Array of delegation hashes + */ + function getIncomingDelegationHashes(address to) external view returns (bytes32[] memory delegationHashes); + + /** + * @notice Returns all hashes associated with enabled delegations an address has given out + * @param from The address to retrieve outgoing delegation hashes for + * @return delegationHashes Array of delegation hashes + */ + function getOutgoingDelegationHashes(address from) external view returns (bytes32[] memory delegationHashes); + + /** + * @notice Returns the delegations for a given array of delegation hashes + * @param delegationHashes is an array of hashes that correspond to delegations + * @return delegations Array of Delegation structs, return empty structs for nonexistent or revoked delegations + */ + function getDelegationsFromHashes( + bytes32[] calldata delegationHashes + ) external view returns (Delegation[] memory delegations); + + /** + * ----------- STORAGE ACCESS ----------- + */ + + /** + * @notice Allows external contracts to read arbitrary storage slots + */ + function readSlot(bytes32 location) external view returns (bytes32); + + /** + * @notice Allows external contracts to read an arbitrary array of storage slots + */ + function readSlots(bytes32[] calldata locations) external view returns (bytes32[] memory); +} diff --git a/smart-contracts/contracts/interfaces/facets/IDelegation.sol b/smart-contracts/contracts/interfaces/facets/IDelegation.sol new file mode 100644 index 00000000..956b68a8 --- /dev/null +++ b/smart-contracts/contracts/interfaces/facets/IDelegation.sol @@ -0,0 +1,20 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.24; + +import {IDelegationStorage} from "../storage/IDelegationStorage.sol"; + +interface IDelegation is IDelegationStorage { + event DelegationRegistryUpdated(address registry); + + /** + * The function to initialize the facet. + * @param registry_ https://docs.delegate.xyz/technical-documentation/delegate-registry/contract-addresses + */ + function __Delegation_init(address registry_) external; + + /** + * The function to set the registry. + * @param registry_ https://docs.delegate.xyz/technical-documentation/delegate-registry/contract-addresses + */ + function setRegistry(address registry_) external; + } diff --git a/smart-contracts/contracts/interfaces/facets/IMarketplace.sol b/smart-contracts/contracts/interfaces/facets/IMarketplace.sol index 54e1ebf2..f2ddb297 100644 --- a/smart-contracts/contracts/interfaces/facets/IMarketplace.sol +++ b/smart-contracts/contracts/interfaces/facets/IMarketplace.sol @@ -19,35 +19,36 @@ interface IMarketplace is IMarketplaceStorage { /** * The function to initialize the facet. - * @param token_ Stake token (MOR) - * @param bidMinPricePerSecond_ Min price per second for bid - * @param bidMaxPricePerSecond_ Max price per second for bid + * @param token_ Stake token (MOR). + * @param bidMinPricePerSecond_ Min price per second for bid. + * @param bidMaxPricePerSecond_ Max price per second for bid. */ function __Marketplace_init(address token_, uint256 bidMinPricePerSecond_, uint256 bidMaxPricePerSecond_) external; /** * The function to set the bidFee. - * @param bidFee_ Amount of tokens + * @param bidFee_ Amount of tokens. */ function setMarketplaceBidFee(uint256 bidFee_) external; /** * The function to set the min and max price per second for bid. - * @param bidMinPricePerSecond_ Min price per second for bid - * @param bidMaxPricePerSecond_ Max price per second for bid + * @param bidMinPricePerSecond_ Min price per second for bid. + * @param bidMaxPricePerSecond_ Max price per second for bid. */ function setMinMaxBidPricePerSecond(uint256 bidMinPricePerSecond_, uint256 bidMaxPricePerSecond_) external; /** * The function to create the bid. - * @param modelId_ The mode ID - * @param pricePerSecond_ The price per second + * @param provider_ The provider address. + * @param modelId_ The mode ID. + * @param pricePerSecond_ The price per second. */ - function postModelBid(bytes32 modelId_, uint256 pricePerSecond_) external returns (bytes32); + function postModelBid(address provider_, bytes32 modelId_, uint256 pricePerSecond_) external returns (bytes32); /** * The function to delete the bid. - * @param bidId_ The bid ID + * @param bidId_ The bid ID. */ function deleteModelBid(bytes32 bidId_) external; @@ -67,7 +68,7 @@ interface IMarketplace is IMarketplaceStorage { function getBidId(address provider_, bytes32 modelId_, uint256 nonce_) external view returns (bytes32); /** - * The function to returns provider model ID + * The function to returns provider model ID. * @param provider_ The provider address. * @param modelId_ The model ID. */ diff --git a/smart-contracts/contracts/interfaces/facets/IModelRegistry.sol b/smart-contracts/contracts/interfaces/facets/IModelRegistry.sol index bbcfb100..0bea4210 100644 --- a/smart-contracts/contracts/interfaces/facets/IModelRegistry.sol +++ b/smart-contracts/contracts/interfaces/facets/IModelRegistry.sol @@ -25,6 +25,7 @@ interface IModelRegistry is IModelStorage { /** * The function to register the model. + * @param modelOwner_ The model owner address. * @param modelId_ The model ID. * @param ipfsCID_ The model IPFS CID. * @param fee_ The model fee. @@ -33,6 +34,7 @@ interface IModelRegistry is IModelStorage { * @param tags_ The model tags. */ function modelRegister( + address modelOwner_, bytes32 modelId_, bytes32 ipfsCID_, uint256 fee_, diff --git a/smart-contracts/contracts/interfaces/facets/IProviderRegistry.sol b/smart-contracts/contracts/interfaces/facets/IProviderRegistry.sol index 3c05429d..8386e5e3 100644 --- a/smart-contracts/contracts/interfaces/facets/IProviderRegistry.sol +++ b/smart-contracts/contracts/interfaces/facets/IProviderRegistry.sol @@ -28,14 +28,16 @@ interface IProviderRegistry is IProviderStorage { function providerSetMinStake(uint256 providerMinimumStake_) external; /** - * @notice The function to register the provider - * @param amount_ The amount of stake to add - * @param endpoint_ The provider endpoint (host.com:1234) + * @notice The function to register the provider. + * @param provider_ The provider address. + * @param amount_ The amount of stake to add. + * @param endpoint_ The provider endpoint (host.com:1234). */ - function providerRegister(uint256 amount_, string calldata endpoint_) external; + function providerRegister(address provider_, uint256 amount_, string calldata endpoint_) external; /** - * @notice The function to deregister the provider + * @notice The function to deregister the provider. + * @param provider_ The provider address. */ - function providerDeregister() external; + function providerDeregister(address provider_) external; } diff --git a/smart-contracts/contracts/interfaces/facets/ISessionRouter.sol b/smart-contracts/contracts/interfaces/facets/ISessionRouter.sol index f58439bd..ff759435 100644 --- a/smart-contracts/contracts/interfaces/facets/ISessionRouter.sol +++ b/smart-contracts/contracts/interfaces/facets/ISessionRouter.sol @@ -56,12 +56,14 @@ interface ISessionRouter is ISessionStorage { /** * The function to open the session. + * @param user_ The user address. * @param amount_ The stake amount. * @param isDirectPaymentFromUser_ If active, provider rewarded from the user stake. * @param approvalEncoded_ Provider approval. * @param signature_ Provider signature. */ function openSession( + address user_, uint256 amount_, bool isDirectPaymentFromUser_, bytes calldata approvalEncoded_, @@ -132,9 +134,10 @@ interface ISessionRouter is ISessionStorage { /** * The function to withdraw user stakes. + * @param user_ The user address. * @param iterations_ The loop interaction amount. */ - function withdrawUserStakes(uint8 iterations_) external; + function withdrawUserStakes(address user_, uint8 iterations_) external; /** * Returns today's budget in MOR. 1%. diff --git a/smart-contracts/contracts/interfaces/storage/IDelegationStorage.sol b/smart-contracts/contracts/interfaces/storage/IDelegationStorage.sol new file mode 100644 index 00000000..1cdd0bd6 --- /dev/null +++ b/smart-contracts/contracts/interfaces/storage/IDelegationStorage.sol @@ -0,0 +1,37 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.24; + +interface IDelegationStorage { + error InsufficientRightsForOperation(address delegator, address delegatee); + + /** + * @return `keccak256("delegation.rules.provider")` + */ + function DELEGATION_RULES_PROVIDER() external view returns (bytes32); + + /** + * @return `keccak256("delegation.rules.model")` + */ + function DELEGATION_RULES_MODEL() external view returns (bytes32); + + /** + * @return `keccak256("delegation.rules.marketplace")` + */ + function DELEGATION_RULES_MARKETPLACE() external view returns (bytes32); + + /** + * @return `keccak256("delegation.rules.session")` + */ + function DELEGATION_RULES_SESSION() external view returns (bytes32); + + /** + * @return The registry address. + */ + function getRegistry() external view returns (address); + + /** + * The function to check is `delegator_` add permissions for `delegatee_`. + * @return `true` when delegated. + */ + function isRightsDelegated(address delegatee_, address delegator_, bytes32 rights_) external view returns (bool); +} diff --git a/smart-contracts/contracts/mock/delegate-registry/DelegateRegistry.sol b/smart-contracts/contracts/mock/delegate-registry/DelegateRegistry.sol new file mode 100644 index 00000000..046eeb1c --- /dev/null +++ b/smart-contracts/contracts/mock/delegate-registry/DelegateRegistry.sol @@ -0,0 +1,474 @@ +// SPDX-License-Identifier: CC0-1.0 +pragma solidity ^0.8.21; + +import {IDelegateRegistry as IDelegateRegistry} from "./IDelegateRegistry.sol"; +import {RegistryHashes as Hashes} from "./libraries/RegistryHashes.sol"; +import {RegistryStorage as Storage} from "./libraries/RegistryStorage.sol"; +import {RegistryOps as Ops} from "./libraries/RegistryOps.sol"; + +import "hardhat/console.sol"; + +/** + * @title DelegateRegistry + * @custom:version 2.0 + * @custom:coauthor foobar (0xfoobar) + * @custom:coauthor mireynolds + * @notice A standalone immutable registry storing delegated permissions from one address to another + */ +contract DelegateRegistry is IDelegateRegistry { + /// @dev Only this mapping should be used to verify delegations; the other mapping arrays are for enumerations + mapping(bytes32 delegationHash => bytes32[5] delegationStorage) internal delegations; + + /// @dev Vault delegation enumeration outbox, for pushing new hashes only + mapping(address from => bytes32[] delegationHashes) internal outgoingDelegationHashes; + + /// @dev Delegate enumeration inbox, for pushing new hashes only + mapping(address to => bytes32[] delegationHashes) internal incomingDelegationHashes; + + /** + * ----------- WRITE ----------- + */ + + /// @inheritdoc IDelegateRegistry + function multicall(bytes[] calldata data) external payable override returns (bytes[] memory results) { + results = new bytes[](data.length); + bool success; + unchecked { + for (uint256 i = 0; i < data.length; ++i) { + //slither-disable-next-line calls-loop,delegatecall-loop + (success, results[i]) = address(this).delegatecall(data[i]); + if (!success) revert MulticallFailed(); + } + } + } + + /// @inheritdoc IDelegateRegistry + function delegateAll(address to, bytes32 rights, bool enable) external payable override returns (bytes32 hash) { + hash = Hashes.allHash(msg.sender, rights, to); + bytes32 location = Hashes.location(hash); + address loadedFrom = _loadFrom(location); + if (enable) { + if (loadedFrom == Storage.DELEGATION_EMPTY) { + _pushDelegationHashes(msg.sender, to, hash); + _writeDelegationAddresses(location, msg.sender, to, address(0)); + if (rights != "") _writeDelegation(location, Storage.POSITIONS_RIGHTS, rights); + } else if (loadedFrom == Storage.DELEGATION_REVOKED) { + _updateFrom(location, msg.sender); + } + } else if (loadedFrom == msg.sender) { + _updateFrom(location, Storage.DELEGATION_REVOKED); + } + emit DelegateAll(msg.sender, to, rights, enable); + } + + /// @inheritdoc IDelegateRegistry + function delegateContract(address to, address contract_, bytes32 rights, bool enable) external payable override returns (bytes32 hash) { + hash = Hashes.contractHash(msg.sender, rights, to, contract_); + bytes32 location = Hashes.location(hash); + address loadedFrom = _loadFrom(location); + if (enable) { + if (loadedFrom == Storage.DELEGATION_EMPTY) { + _pushDelegationHashes(msg.sender, to, hash); + _writeDelegationAddresses(location, msg.sender, to, contract_); + if (rights != "") _writeDelegation(location, Storage.POSITIONS_RIGHTS, rights); + } else if (loadedFrom == Storage.DELEGATION_REVOKED) { + _updateFrom(location, msg.sender); + } + } else if (loadedFrom == msg.sender) { + _updateFrom(location, Storage.DELEGATION_REVOKED); + } + emit DelegateContract(msg.sender, to, contract_, rights, enable); + } + + /// @inheritdoc IDelegateRegistry + function delegateERC721(address to, address contract_, uint256 tokenId, bytes32 rights, bool enable) external payable override returns (bytes32 hash) { + hash = Hashes.erc721Hash(msg.sender, rights, to, tokenId, contract_); + bytes32 location = Hashes.location(hash); + address loadedFrom = _loadFrom(location); + if (enable) { + if (loadedFrom == Storage.DELEGATION_EMPTY) { + _pushDelegationHashes(msg.sender, to, hash); + _writeDelegationAddresses(location, msg.sender, to, contract_); + _writeDelegation(location, Storage.POSITIONS_TOKEN_ID, tokenId); + if (rights != "") _writeDelegation(location, Storage.POSITIONS_RIGHTS, rights); + } else if (loadedFrom == Storage.DELEGATION_REVOKED) { + _updateFrom(location, msg.sender); + } + } else if (loadedFrom == msg.sender) { + _updateFrom(location, Storage.DELEGATION_REVOKED); + } + emit DelegateERC721(msg.sender, to, contract_, tokenId, rights, enable); + } + + // @inheritdoc IDelegateRegistry + function delegateERC20(address to, address contract_, bytes32 rights, uint256 amount) external payable override returns (bytes32 hash) { + hash = Hashes.erc20Hash(msg.sender, rights, to, contract_); + console.log("msg.sender", msg.sender); + bytes32 location = Hashes.location(hash); + address loadedFrom = _loadFrom(location); + if (amount != 0) { + if (loadedFrom == Storage.DELEGATION_EMPTY) { + _pushDelegationHashes(msg.sender, to, hash); + _writeDelegationAddresses(location, msg.sender, to, contract_); + _writeDelegation(location, Storage.POSITIONS_AMOUNT, amount); + if (rights != "") _writeDelegation(location, Storage.POSITIONS_RIGHTS, rights); + } else if (loadedFrom == Storage.DELEGATION_REVOKED) { + _updateFrom(location, msg.sender); + _writeDelegation(location, Storage.POSITIONS_AMOUNT, amount); + } else if (loadedFrom == msg.sender) { + _writeDelegation(location, Storage.POSITIONS_AMOUNT, amount); + } + } else if (loadedFrom == msg.sender) { + _updateFrom(location, Storage.DELEGATION_REVOKED); + _writeDelegation(location, Storage.POSITIONS_AMOUNT, uint256(0)); + } + emit DelegateERC20(msg.sender, to, contract_, rights, amount); + } + + /// @inheritdoc IDelegateRegistry + function delegateERC1155(address to, address contract_, uint256 tokenId, bytes32 rights, uint256 amount) external payable override returns (bytes32 hash) { + hash = Hashes.erc1155Hash(msg.sender, rights, to, tokenId, contract_); + bytes32 location = Hashes.location(hash); + address loadedFrom = _loadFrom(location); + if (amount != 0) { + if (loadedFrom == Storage.DELEGATION_EMPTY) { + _pushDelegationHashes(msg.sender, to, hash); + _writeDelegationAddresses(location, msg.sender, to, contract_); + _writeDelegation(location, Storage.POSITIONS_TOKEN_ID, tokenId); + _writeDelegation(location, Storage.POSITIONS_AMOUNT, amount); + if (rights != "") _writeDelegation(location, Storage.POSITIONS_RIGHTS, rights); + } else if (loadedFrom == Storage.DELEGATION_REVOKED) { + _updateFrom(location, msg.sender); + _writeDelegation(location, Storage.POSITIONS_AMOUNT, amount); + } else if (loadedFrom == msg.sender) { + _writeDelegation(location, Storage.POSITIONS_AMOUNT, amount); + } + } else if (loadedFrom == msg.sender) { + _updateFrom(location, Storage.DELEGATION_REVOKED); + _writeDelegation(location, Storage.POSITIONS_AMOUNT, uint256(0)); + } + emit DelegateERC1155(msg.sender, to, contract_, tokenId, rights, amount); + } + + /// @dev Transfer native token out + function sweep() external { + assembly ("memory-safe") { + // This hardcoded address is a CREATE2 factory counterfactual smart contract wallet that will always accept native token transfers + let result := call(gas(), 0x000000dE1E80ea5a234FB5488fee2584251BC7e8, selfbalance(), 0, 0, 0, 0) + } + } + + /** + * ----------- CHECKS ----------- + */ + + /// @inheritdoc IDelegateRegistry + function checkDelegateForAll(address to, address from, bytes32 rights) external view override returns (bool valid) { + if (!_invalidFrom(from)) { + valid = _validateFrom(Hashes.allLocation(from, "", to), from); + if (!Ops.or(rights == "", valid)) valid = _validateFrom(Hashes.allLocation(from, rights, to), from); + } + assembly ("memory-safe") { + // Only first 32 bytes of scratch space is accessed + mstore(0, iszero(iszero(valid))) // Compiler cleans dirty booleans on the stack to 1, so do the same here + return(0, 32) // Direct return, skips Solidity's redundant copying to save gas + } + } + + /// @inheritdoc IDelegateRegistry + function checkDelegateForContract(address to, address from, address contract_, bytes32 rights) external view override returns (bool valid) { + if (!_invalidFrom(from)) { + valid = _validateFrom(Hashes.allLocation(from, "", to), from) || _validateFrom(Hashes.contractLocation(from, "", to, contract_), from); + if (!Ops.or(rights == "", valid)) { + valid = _validateFrom(Hashes.allLocation(from, rights, to), from) || _validateFrom(Hashes.contractLocation(from, rights, to, contract_), from); + } + } + assembly ("memory-safe") { + // Only first 32 bytes of scratch space is accessed + mstore(0, iszero(iszero(valid))) // Compiler cleans dirty booleans on the stack to 1, so do the same here + return(0, 32) // Direct return, skips Solidity's redundant copying to save gas + } + } + + /// @inheritdoc IDelegateRegistry + function checkDelegateForERC721(address to, address from, address contract_, uint256 tokenId, bytes32 rights) external view override returns (bool valid) { + if (!_invalidFrom(from)) { + valid = _validateFrom(Hashes.allLocation(from, "", to), from) || _validateFrom(Hashes.contractLocation(from, "", to, contract_), from) + || _validateFrom(Hashes.erc721Location(from, "", to, tokenId, contract_), from); + if (!Ops.or(rights == "", valid)) { + valid = _validateFrom(Hashes.allLocation(from, rights, to), from) || _validateFrom(Hashes.contractLocation(from, rights, to, contract_), from) + || _validateFrom(Hashes.erc721Location(from, rights, to, tokenId, contract_), from); + } + } + assembly ("memory-safe") { + // Only first 32 bytes of scratch space is accessed + mstore(0, iszero(iszero(valid))) // Compiler cleans dirty booleans on the stack to 1, so do the same here + return(0, 32) // Direct return, skips Solidity's redundant copying to save gas + } + } + + /// @inheritdoc IDelegateRegistry + function checkDelegateForERC20(address to, address from, address contract_, bytes32 rights) external view override returns (uint256 amount) { + if (!_invalidFrom(from)) { + amount = (_validateFrom(Hashes.allLocation(from, "", to), from) || _validateFrom(Hashes.contractLocation(from, "", to, contract_), from)) + ? type(uint256).max + : _loadDelegationUint(Hashes.erc20Location(from, "", to, contract_), Storage.POSITIONS_AMOUNT); + if (!Ops.or(rights == "", amount == type(uint256).max)) { + uint256 rightsBalance = (_validateFrom(Hashes.allLocation(from, rights, to), from) || _validateFrom(Hashes.contractLocation(from, rights, to, contract_), from)) + ? type(uint256).max + : _loadDelegationUint(Hashes.erc20Location(from, rights, to, contract_), Storage.POSITIONS_AMOUNT); + amount = Ops.max(rightsBalance, amount); + } + } + assembly ("memory-safe") { + mstore(0, amount) // Only first 32 bytes of scratch space being accessed + return(0, 32) // Direct return, skips Solidity's redundant copying to save gas + } + } + + /// @inheritdoc IDelegateRegistry + function checkDelegateForERC1155(address to, address from, address contract_, uint256 tokenId, bytes32 rights) external view override returns (uint256 amount) { + if (!_invalidFrom(from)) { + amount = (_validateFrom(Hashes.allLocation(from, "", to), from) || _validateFrom(Hashes.contractLocation(from, "", to, contract_), from)) + ? type(uint256).max + : _loadDelegationUint(Hashes.erc1155Location(from, "", to, tokenId, contract_), Storage.POSITIONS_AMOUNT); + if (!Ops.or(rights == "", amount == type(uint256).max)) { + uint256 rightsBalance = (_validateFrom(Hashes.allLocation(from, rights, to), from) || _validateFrom(Hashes.contractLocation(from, rights, to, contract_), from)) + ? type(uint256).max + : _loadDelegationUint(Hashes.erc1155Location(from, rights, to, tokenId, contract_), Storage.POSITIONS_AMOUNT); + amount = Ops.max(rightsBalance, amount); + } + } + assembly ("memory-safe") { + mstore(0, amount) // Only first 32 bytes of scratch space is accessed + return(0, 32) // Direct return, skips Solidity's redundant copying to save gas + } + } + + /** + * ----------- ENUMERATIONS ----------- + */ + + /// @inheritdoc IDelegateRegistry + function getIncomingDelegations(address to) external view override returns (Delegation[] memory delegations_) { + delegations_ = _getValidDelegationsFromHashes(incomingDelegationHashes[to]); + } + + /// @inheritdoc IDelegateRegistry + function getOutgoingDelegations(address from) external view returns (Delegation[] memory delegations_) { + delegations_ = _getValidDelegationsFromHashes(outgoingDelegationHashes[from]); + } + + /// @inheritdoc IDelegateRegistry + function getIncomingDelegationHashes(address to) external view returns (bytes32[] memory delegationHashes) { + delegationHashes = _getValidDelegationHashesFromHashes(incomingDelegationHashes[to]); + } + + /// @inheritdoc IDelegateRegistry + function getOutgoingDelegationHashes(address from) external view returns (bytes32[] memory delegationHashes) { + delegationHashes = _getValidDelegationHashesFromHashes(outgoingDelegationHashes[from]); + } + + /// @inheritdoc IDelegateRegistry + function getDelegationsFromHashes(bytes32[] calldata hashes) external view returns (Delegation[] memory delegations_) { + delegations_ = new Delegation[](hashes.length); + unchecked { + for (uint256 i = 0; i < hashes.length; ++i) { + bytes32 location = Hashes.location(hashes[i]); + address from = _loadFrom(location); + if (_invalidFrom(from)) { + delegations_[i] = Delegation({type_: DelegationType.NONE, to: address(0), from: address(0), rights: "", amount: 0, contract_: address(0), tokenId: 0}); + } else { + (, address to, address contract_) = _loadDelegationAddresses(location); + delegations_[i] = Delegation({ + type_: Hashes.decodeType(hashes[i]), + to: to, + from: from, + rights: _loadDelegationBytes32(location, Storage.POSITIONS_RIGHTS), + amount: _loadDelegationUint(location, Storage.POSITIONS_AMOUNT), + contract_: contract_, + tokenId: _loadDelegationUint(location, Storage.POSITIONS_TOKEN_ID) + }); + } + } + } + } + + /** + * ----------- EXTERNAL STORAGE ACCESS ----------- + */ + function readSlot(bytes32 location) external view returns (bytes32 contents) { + assembly { + contents := sload(location) + } + } + + function readSlots(bytes32[] calldata locations) external view returns (bytes32[] memory contents) { + uint256 length = locations.length; + contents = new bytes32[](length); + bytes32 tempLocation; + bytes32 tempValue; + unchecked { + for (uint256 i = 0; i < length; ++i) { + tempLocation = locations[i]; + assembly { + tempValue := sload(tempLocation) + } + contents[i] = tempValue; + } + } + } + + /** + * ----------- ERC165 ----------- + */ + + /// @notice Query if a contract implements an ERC-165 interface + /// @param interfaceId The interface identifier + /// @return valid Whether the queried interface is supported + function supportsInterface(bytes4 interfaceId) external pure returns (bool) { + return Ops.or(interfaceId == type(IDelegateRegistry).interfaceId, interfaceId == 0x01ffc9a7); + } + + /** + * ----------- INTERNAL ----------- + */ + + /// @dev Helper function to push new delegation hashes to the incoming and outgoing hashes mappings + function _pushDelegationHashes(address from, address to, bytes32 delegationHash) internal { + outgoingDelegationHashes[from].push(delegationHash); + incomingDelegationHashes[to].push(delegationHash); + } + + /// @dev Helper function that writes bytes32 data to delegation data location at array position + function _writeDelegation(bytes32 location, uint256 position, bytes32 data) internal { + assembly { + sstore(add(location, position), data) + } + } + + /// @dev Helper function that writes uint256 data to delegation data location at array position + function _writeDelegation(bytes32 location, uint256 position, uint256 data) internal { + assembly { + sstore(add(location, position), data) + } + } + + /// @dev Helper function that writes addresses according to the packing rule for delegation storage + function _writeDelegationAddresses(bytes32 location, address from, address to, address contract_) internal { + (bytes32 firstSlot, bytes32 secondSlot) = Storage.packAddresses(from, to, contract_); + uint256 firstPacked = Storage.POSITIONS_FIRST_PACKED; + uint256 secondPacked = Storage.POSITIONS_SECOND_PACKED; + assembly { + sstore(add(location, firstPacked), firstSlot) + sstore(add(location, secondPacked), secondSlot) + } + } + + /// @dev Helper function that writes `from` while preserving the rest of the storage slot + function _updateFrom(bytes32 location, address from) internal { + uint256 firstPacked = Storage.POSITIONS_FIRST_PACKED; + uint256 cleanAddress = Storage.CLEAN_ADDRESS; + uint256 cleanUpper12Bytes = type(uint256).max << 160; + assembly { + let slot := and(sload(add(location, firstPacked)), cleanUpper12Bytes) + sstore(add(location, firstPacked), or(slot, and(from, cleanAddress))) + } + } + + /// @dev Helper function that takes an array of delegation hashes and returns an array of Delegation structs with their onchain information + function _getValidDelegationsFromHashes(bytes32[] storage hashes) internal view returns (Delegation[] memory delegations_) { + uint256 count = 0; + uint256 hashesLength = hashes.length; + bytes32 hash; + bytes32[] memory filteredHashes = new bytes32[](hashesLength); + unchecked { + for (uint256 i = 0; i < hashesLength; ++i) { + hash = hashes[i]; + if (_invalidFrom(_loadFrom(Hashes.location(hash)))) continue; + filteredHashes[count++] = hash; + } + delegations_ = new Delegation[](count); + bytes32 location; + for (uint256 i = 0; i < count; ++i) { + hash = filteredHashes[i]; + location = Hashes.location(hash); + (address from, address to, address contract_) = _loadDelegationAddresses(location); + delegations_[i] = Delegation({ + type_: Hashes.decodeType(hash), + to: to, + from: from, + rights: _loadDelegationBytes32(location, Storage.POSITIONS_RIGHTS), + amount: _loadDelegationUint(location, Storage.POSITIONS_AMOUNT), + contract_: contract_, + tokenId: _loadDelegationUint(location, Storage.POSITIONS_TOKEN_ID) + }); + } + } + } + + /// @dev Helper function that takes an array of delegation hashes and returns an array of valid delegation hashes + function _getValidDelegationHashesFromHashes(bytes32[] storage hashes) internal view returns (bytes32[] memory validHashes) { + uint256 count = 0; + uint256 hashesLength = hashes.length; + bytes32 hash; + bytes32[] memory filteredHashes = new bytes32[](hashesLength); + unchecked { + for (uint256 i = 0; i < hashesLength; ++i) { + hash = hashes[i]; + if (_invalidFrom(_loadFrom(Hashes.location(hash)))) continue; + filteredHashes[count++] = hash; + } + validHashes = new bytes32[](count); + for (uint256 i = 0; i < count; ++i) { + validHashes[i] = filteredHashes[i]; + } + } + } + + /// @dev Helper function that loads delegation data from a particular array position and returns as bytes32 + function _loadDelegationBytes32(bytes32 location, uint256 position) internal view returns (bytes32 data) { + assembly { + data := sload(add(location, position)) + } + } + + /// @dev Helper function that loads delegation data from a particular array position and returns as uint256 + function _loadDelegationUint(bytes32 location, uint256 position) internal view returns (uint256 data) { + assembly { + data := sload(add(location, position)) + } + } + + // @dev Helper function that loads the from address from storage according to the packing rule for delegation storage + function _loadFrom(bytes32 location) internal view returns (address) { + bytes32 data; + uint256 firstPacked = Storage.POSITIONS_FIRST_PACKED; + assembly { + data := sload(add(location, firstPacked)) + } + return Storage.unpackAddress(data); + } + + /// @dev Helper function to establish whether a delegation is enabled + function _validateFrom(bytes32 location, address from) internal view returns (bool) { + return (from == _loadFrom(location)); + } + + /// @dev Helper function that loads the address for the delegation according to the packing rule for delegation storage + function _loadDelegationAddresses(bytes32 location) internal view returns (address from, address to, address contract_) { + bytes32 firstSlot; + bytes32 secondSlot; + uint256 firstPacked = Storage.POSITIONS_FIRST_PACKED; + uint256 secondPacked = Storage.POSITIONS_SECOND_PACKED; + assembly { + firstSlot := sload(add(location, firstPacked)) + secondSlot := sload(add(location, secondPacked)) + } + (from, to, contract_) = Storage.unpackAddresses(firstSlot, secondSlot); + } + + function _invalidFrom(address from) internal pure returns (bool) { + return Ops.or(from == Storage.DELEGATION_EMPTY, from == Storage.DELEGATION_REVOKED); + } +} diff --git a/smart-contracts/contracts/mock/delegate-registry/IDelegateRegistry.sol b/smart-contracts/contracts/mock/delegate-registry/IDelegateRegistry.sol new file mode 100644 index 00000000..8c7cb101 --- /dev/null +++ b/smart-contracts/contracts/mock/delegate-registry/IDelegateRegistry.sol @@ -0,0 +1,221 @@ +// SPDX-License-Identifier: CC0-1.0 +pragma solidity >=0.8.13; + +/** + * @title IDelegateRegistry + * @custom:version 2.0 + * @custom:author foobar (0xfoobar) + * @notice A standalone immutable registry storing delegated permissions from one address to another + */ +interface IDelegateRegistry { + /// @notice Delegation type, NONE is used when a delegation does not exist or is revoked + enum DelegationType { + NONE, + ALL, + CONTRACT, + ERC721, + ERC20, + ERC1155 + } + + /// @notice Struct for returning delegations + struct Delegation { + DelegationType type_; + address to; + address from; + bytes32 rights; + address contract_; + uint256 tokenId; + uint256 amount; + } + + /// @notice Emitted when an address delegates or revokes rights for their entire wallet + event DelegateAll(address indexed from, address indexed to, bytes32 rights, bool enable); + + /// @notice Emitted when an address delegates or revokes rights for a contract address + event DelegateContract(address indexed from, address indexed to, address indexed contract_, bytes32 rights, bool enable); + + /// @notice Emitted when an address delegates or revokes rights for an ERC721 tokenId + event DelegateERC721(address indexed from, address indexed to, address indexed contract_, uint256 tokenId, bytes32 rights, bool enable); + + /// @notice Emitted when an address delegates or revokes rights for an amount of ERC20 tokens + event DelegateERC20(address indexed from, address indexed to, address indexed contract_, bytes32 rights, uint256 amount); + + /// @notice Emitted when an address delegates or revokes rights for an amount of an ERC1155 tokenId + event DelegateERC1155(address indexed from, address indexed to, address indexed contract_, uint256 tokenId, bytes32 rights, uint256 amount); + + /// @notice Thrown if multicall calldata is malformed + error MulticallFailed(); + + /** + * ----------- WRITE ----------- + */ + + /** + * @notice Call multiple functions in the current contract and return the data from all of them if they all succeed + * @param data The encoded function data for each of the calls to make to this contract + * @return results The results from each of the calls passed in via data + */ + function multicall(bytes[] calldata data) external payable returns (bytes[] memory results); + + /** + * @notice Allow the delegate to act on behalf of `msg.sender` for all contracts + * @param to The address to act as delegate + * @param rights Specific subdelegation rights granted to the delegate, pass an empty bytestring to encompass all rights + * @param enable Whether to enable or disable this delegation, true delegates and false revokes + * @return delegationHash The unique identifier of the delegation + */ + function delegateAll(address to, bytes32 rights, bool enable) external payable returns (bytes32 delegationHash); + + /** + * @notice Allow the delegate to act on behalf of `msg.sender` for a specific contract + * @param to The address to act as delegate + * @param contract_ The contract whose rights are being delegated + * @param rights Specific subdelegation rights granted to the delegate, pass an empty bytestring to encompass all rights + * @param enable Whether to enable or disable this delegation, true delegates and false revokes + * @return delegationHash The unique identifier of the delegation + */ + function delegateContract(address to, address contract_, bytes32 rights, bool enable) external payable returns (bytes32 delegationHash); + + /** + * @notice Allow the delegate to act on behalf of `msg.sender` for a specific ERC721 token + * @param to The address to act as delegate + * @param contract_ The contract whose rights are being delegated + * @param tokenId The token id to delegate + * @param rights Specific subdelegation rights granted to the delegate, pass an empty bytestring to encompass all rights + * @param enable Whether to enable or disable this delegation, true delegates and false revokes + * @return delegationHash The unique identifier of the delegation + */ + function delegateERC721(address to, address contract_, uint256 tokenId, bytes32 rights, bool enable) external payable returns (bytes32 delegationHash); + + /** + * @notice Allow the delegate to act on behalf of `msg.sender` for a specific amount of ERC20 tokens + * @dev The actual amount is not encoded in the hash, just the existence of a amount (since it is an upper bound) + * @param to The address to act as delegate + * @param contract_ The address for the fungible token contract + * @param rights Specific subdelegation rights granted to the delegate, pass an empty bytestring to encompass all rights + * @param amount The amount to delegate, > 0 delegates and 0 revokes + * @return delegationHash The unique identifier of the delegation + */ + function delegateERC20(address to, address contract_, bytes32 rights, uint256 amount) external payable returns (bytes32 delegationHash); + + /** + * @notice Allow the delegate to act on behalf of `msg.sender` for a specific amount of ERC1155 tokens + * @dev The actual amount is not encoded in the hash, just the existence of a amount (since it is an upper bound) + * @param to The address to act as delegate + * @param contract_ The address of the contract that holds the token + * @param tokenId The token id to delegate + * @param rights Specific subdelegation rights granted to the delegate, pass an empty bytestring to encompass all rights + * @param amount The amount of that token id to delegate, > 0 delegates and 0 revokes + * @return delegationHash The unique identifier of the delegation + */ + function delegateERC1155(address to, address contract_, uint256 tokenId, bytes32 rights, uint256 amount) external payable returns (bytes32 delegationHash); + + /** + * ----------- CHECKS ----------- + */ + + /** + * @notice Check if `to` is a delegate of `from` for the entire wallet + * @param to The potential delegate address + * @param from The potential address who delegated rights + * @param rights Specific rights to check for, pass the zero value to ignore subdelegations and check full delegations only + * @return valid Whether delegate is granted to act on the from's behalf + */ + function checkDelegateForAll(address to, address from, bytes32 rights) external view returns (bool); + + /** + * @notice Check if `to` is a delegate of `from` for the specified `contract_` or the entire wallet + * @param to The delegated address to check + * @param contract_ The specific contract address being checked + * @param from The cold wallet who issued the delegation + * @param rights Specific rights to check for, pass the zero value to ignore subdelegations and check full delegations only + * @return valid Whether delegate is granted to act on from's behalf for entire wallet or that specific contract + */ + function checkDelegateForContract(address to, address from, address contract_, bytes32 rights) external view returns (bool); + + /** + * @notice Check if `to` is a delegate of `from` for the specific `contract` and `tokenId`, the entire `contract_`, or the entire wallet + * @param to The delegated address to check + * @param contract_ The specific contract address being checked + * @param tokenId The token id for the token to delegating + * @param from The wallet that issued the delegation + * @param rights Specific rights to check for, pass the zero value to ignore subdelegations and check full delegations only + * @return valid Whether delegate is granted to act on from's behalf for entire wallet, that contract, or that specific tokenId + */ + function checkDelegateForERC721(address to, address from, address contract_, uint256 tokenId, bytes32 rights) external view returns (bool); + + /** + * @notice Returns the amount of ERC20 tokens the delegate is granted rights to act on the behalf of + * @param to The delegated address to check + * @param contract_ The address of the token contract + * @param from The cold wallet who issued the delegation + * @param rights Specific rights to check for, pass the zero value to ignore subdelegations and check full delegations only + * @return balance The delegated balance, which will be 0 if the delegation does not exist + */ + function checkDelegateForERC20(address to, address from, address contract_, bytes32 rights) external view returns (uint256); + + /** + * @notice Returns the amount of a ERC1155 tokens the delegate is granted rights to act on the behalf of + * @param to The delegated address to check + * @param contract_ The address of the token contract + * @param tokenId The token id to check the delegated amount of + * @param from The cold wallet who issued the delegation + * @param rights Specific rights to check for, pass the zero value to ignore subdelegations and check full delegations only + * @return balance The delegated balance, which will be 0 if the delegation does not exist + */ + function checkDelegateForERC1155(address to, address from, address contract_, uint256 tokenId, bytes32 rights) external view returns (uint256); + + /** + * ----------- ENUMERATIONS ----------- + */ + + /** + * @notice Returns all enabled delegations a given delegate has received + * @param to The address to retrieve delegations for + * @return delegations Array of Delegation structs + */ + function getIncomingDelegations(address to) external view returns (Delegation[] memory delegations); + + /** + * @notice Returns all enabled delegations an address has given out + * @param from The address to retrieve delegations for + * @return delegations Array of Delegation structs + */ + function getOutgoingDelegations(address from) external view returns (Delegation[] memory delegations); + + /** + * @notice Returns all hashes associated with enabled delegations an address has received + * @param to The address to retrieve incoming delegation hashes for + * @return delegationHashes Array of delegation hashes + */ + function getIncomingDelegationHashes(address to) external view returns (bytes32[] memory delegationHashes); + + /** + * @notice Returns all hashes associated with enabled delegations an address has given out + * @param from The address to retrieve outgoing delegation hashes for + * @return delegationHashes Array of delegation hashes + */ + function getOutgoingDelegationHashes(address from) external view returns (bytes32[] memory delegationHashes); + + /** + * @notice Returns the delegations for a given array of delegation hashes + * @param delegationHashes is an array of hashes that correspond to delegations + * @return delegations Array of Delegation structs, return empty structs for nonexistent or revoked delegations + */ + function getDelegationsFromHashes(bytes32[] calldata delegationHashes) external view returns (Delegation[] memory delegations); + + /** + * ----------- STORAGE ACCESS ----------- + */ + + /** + * @notice Allows external contracts to read arbitrary storage slots + */ + function readSlot(bytes32 location) external view returns (bytes32); + + /** + * @notice Allows external contracts to read an arbitrary array of storage slots + */ + function readSlots(bytes32[] calldata locations) external view returns (bytes32[] memory); +} diff --git a/smart-contracts/contracts/mock/delegate-registry/libraries/RegistryHashes.sol b/smart-contracts/contracts/mock/delegate-registry/libraries/RegistryHashes.sol new file mode 100644 index 00000000..6437df11 --- /dev/null +++ b/smart-contracts/contracts/mock/delegate-registry/libraries/RegistryHashes.sol @@ -0,0 +1,303 @@ +// SPDX-License-Identifier: CC0-1.0 +pragma solidity ^0.8.21; + +import {IDelegateRegistry} from "../IDelegateRegistry.sol"; + +/** + * @title Library for calculating the hashes and storage locations used in the delegate registry + * + * The encoding for the 5 types of delegate registry hashes should be as follows: + * + * ALL: keccak256(abi.encodePacked(rights, from, to)) + * CONTRACT: keccak256(abi.encodePacked(rights, from, to, contract_)) + * ERC721: keccak256(abi.encodePacked(rights, from, to, contract_, tokenId)) + * ERC20: keccak256(abi.encodePacked(rights, from, to, contract_)) + * ERC1155: keccak256(abi.encodePacked(rights, from, to, contract_, tokenId)) + * + * To avoid collisions between the hashes with respect to type, the hash is shifted left by one byte + * and the last byte is then encoded with a unique number for the delegation type + * + */ +library RegistryHashes { + /// @dev Used to delete everything but the last byte of a 32 byte word with and(word, EXTRACT_LAST_BYTE) + uint256 internal constant EXTRACT_LAST_BYTE = 0xff; + /// @dev Constants for the delegate registry delegation type enumeration + uint256 internal constant ALL_TYPE = 1; + uint256 internal constant CONTRACT_TYPE = 2; + uint256 internal constant ERC721_TYPE = 3; + uint256 internal constant ERC20_TYPE = 4; + uint256 internal constant ERC1155_TYPE = 5; + /// @dev Constant for the location of the delegations array in the delegate registry, defined to be zero + uint256 internal constant DELEGATION_SLOT = 0; + + /** + * @notice Helper function to decode last byte of a delegation hash into its delegation type enum + * @param inputHash The bytehash to decode the type from + * @return decodedType The delegation type + */ + function decodeType(bytes32 inputHash) internal pure returns (IDelegateRegistry.DelegationType decodedType) { + assembly { + decodedType := and(inputHash, EXTRACT_LAST_BYTE) + } + } + + /** + * @notice Helper function that computes the storage location of a particular delegation array + * @dev Storage keys further down the array can be obtained by adding computedLocation with the element position + * @dev Follows the solidity storage location encoding for a mapping(bytes32 => fixedArray) at the position of the delegationSlot + * @param inputHash The bytehash to decode the type from + * @return computedLocation is the storage key of the delegation array at position 0 + */ + function location(bytes32 inputHash) internal pure returns (bytes32 computedLocation) { + assembly ("memory-safe") { + // This block only allocates memory in the scratch space + mstore(0, inputHash) + mstore(32, DELEGATION_SLOT) + computedLocation := keccak256(0, 64) // Run keccak256 over bytes in scratch space to obtain the storage key + } + } + + /** + * @notice Helper function to compute delegation hash for `DelegationType.ALL` + * @dev Equivalent to `keccak256(abi.encodePacked(rights, from, to))` then left-shift by 1 byte and write the delegation type to the cleaned last byte + * @dev Will not revert if `from` or `to` are > uint160, any input larger than uint160 for `from` and `to` will be cleaned to its lower 20 bytes + * @param from The address making the delegation + * @param rights The rights specified by the delegation + * @param to The address receiving the delegation + * @return hash The delegation parameters encoded with ALL_TYPE + */ + function allHash(address from, bytes32 rights, address to) internal pure returns (bytes32 hash) { + assembly ("memory-safe") { + // This block only allocates memory after the free memory pointer + let ptr := mload(64) // Load the free memory pointer + // Lay out the variables from last to first, agnostic to upper 96 bits of address words. + mstore(add(ptr, 40), to) + mstore(add(ptr, 20), from) + mstore(ptr, rights) + hash := or(shl(8, keccak256(ptr, 72)), ALL_TYPE) // Keccak-hashes the packed encoding, left-shifts by one byte, then writes type to the lowest-order byte + } + } + + /** + * @notice Helper function to compute delegation location for `DelegationType.ALL` + * @dev Equivalent to `location(allHash(rights, from, to))` + * @dev Will not revert if `from` or `to` are > uint160, any input larger than uint160 for `from` and `to` will be cleaned to its lower 20 bytes + * @param from The address making the delegation + * @param rights The rights specified by the delegation + * @param to The address receiving the delegation + * @return computedLocation The storage location of the all delegation with those parameters in the delegations mapping + */ + function allLocation(address from, bytes32 rights, address to) internal pure returns (bytes32 computedLocation) { + assembly ("memory-safe") { + // This block only allocates memory after the free memory pointer and in the scratch space + let ptr := mload(64) // Load the free memory pointer + // Lay out the variables from last to first, agnostic to upper 96 bits of address words. + mstore(add(ptr, 40), to) + mstore(add(ptr, 20), from) + mstore(ptr, rights) + mstore(0, or(shl(8, keccak256(ptr, 72)), ALL_TYPE)) // Computes `allHash`, then stores the result in scratch space + mstore(32, DELEGATION_SLOT) + computedLocation := keccak256(0, 64) // Runs keccak over the scratch space to obtain the storage key + } + } + + /** + * @notice Helper function to compute delegation hash for `DelegationType.CONTRACT` + * @dev Equivalent to keccak256(abi.encodePacked(rights, from, to, contract_)) left-shifted by 1 then last byte overwritten with CONTRACT_TYPE + * @dev Will not revert if `from`, `to` or `contract_` are > uint160, these inputs will be cleaned to their lower 20 bytes + * @param from The address making the delegation + * @param rights The rights specified by the delegation + * @param to The address receiving the delegation + * @param contract_ The address of the contract specified by the delegation + * @return hash The delegation parameters encoded with CONTRACT_TYPE + */ + function contractHash(address from, bytes32 rights, address to, address contract_) internal pure returns (bytes32 hash) { + assembly ("memory-safe") { + // This block only allocates memory after the free memory pointer + let ptr := mload(64) // Load the free memory pointer + // Lay out the variables from last to first, agnostic to upper 96 bits of address words. + mstore(add(ptr, 60), contract_) + mstore(add(ptr, 40), to) + mstore(add(ptr, 20), from) + mstore(ptr, rights) + hash := or(shl(8, keccak256(ptr, 92)), CONTRACT_TYPE) // Keccak-hashes the packed encoding, left-shifts by one byte, then writes type to the lowest-order byte + } + } + + /** + * @notice Helper function to compute delegation location for `DelegationType.CONTRACT` + * @dev Equivalent to `location(contractHash(rights, from, to, contract_))` + * @dev Will not revert if `from`, `to` or `contract_` are > uint160, these inputs will be cleaned to their lower 20 bytes + * @param from The address making the delegation + * @param rights The rights specified by the delegation + * @param to The address receiving the delegation + * @param contract_ The address of the contract specified by the delegation + * @return computedLocation The storage location of the contract delegation with those parameters in the delegations mapping + */ + function contractLocation(address from, bytes32 rights, address to, address contract_) internal pure returns (bytes32 computedLocation) { + assembly ("memory-safe") { + // This block only allocates memory after the free memory pointer and in the scratch space + let ptr := mload(64) // Load free memory pointer + // Lay out the variables from last to first, agnostic to upper 96 bits of address words. + mstore(add(ptr, 60), contract_) + mstore(add(ptr, 40), to) + mstore(add(ptr, 20), from) + mstore(ptr, rights) + mstore(0, or(shl(8, keccak256(ptr, 92)), CONTRACT_TYPE)) // Computes `contractHash`, then stores the result in scratch space + mstore(32, DELEGATION_SLOT) + computedLocation := keccak256(0, 64) // Runs keccak over the scratch space to obtain the storage key + } + } + + /** + * @notice Helper function to compute delegation hash for `DelegationType.ERC721` + * @dev Equivalent to `keccak256(abi.encodePacked(rights, from, to, contract_, tokenId)) left-shifted by 1 then last byte overwritten with ERC721_TYPE + * @dev Will not revert if `from`, `to` or `contract_` are > uint160, these inputs will be cleaned to their lower 20 bytes + * @param from The address making the delegation + * @param rights The rights specified by the delegation + * @param to The address receiving the delegation + * @param tokenId The id of the token specified by the delegation + * @param contract_ The address of the contract specified by the delegation + * @return hash The delegation parameters encoded with ERC721_TYPE + */ + function erc721Hash(address from, bytes32 rights, address to, uint256 tokenId, address contract_) internal pure returns (bytes32 hash) { + assembly ("memory-safe") { + // This block only allocates memory after the free memory pointer + let ptr := mload(64) // Cache the free memory pointer. + // Lay out the variables from last to first, agnostic to upper 96 bits of address words. + mstore(add(ptr, 92), tokenId) + mstore(add(ptr, 60), contract_) + mstore(add(ptr, 40), to) + mstore(add(ptr, 20), from) + mstore(ptr, rights) + hash := or(shl(8, keccak256(ptr, 124)), ERC721_TYPE) // Keccak-hashes the packed encoding, left-shifts by one byte, then writes type to the lowest-order byte + } + } + + /** + * @notice Helper function to compute delegation location for `DelegationType.ERC721` + * @dev Equivalent to `location(ERC721Hash(rights, from, to, contract_, tokenId))` + * @dev Will not revert if `from`, `to` or `contract_` are > uint160, these inputs will be cleaned to their lower 20 bytes + * @param from The address making the delegation + * @param rights The rights specified by the delegation + * @param to The address receiving the delegation + * @param tokenId The id of the ERC721 token + * @param contract_ The address of the ERC721 token contract + * @return computedLocation The storage location of the ERC721 delegation with those parameters in the delegations mapping + */ + function erc721Location(address from, bytes32 rights, address to, uint256 tokenId, address contract_) internal pure returns (bytes32 computedLocation) { + assembly ("memory-safe") { + // This block only allocates memory after the free memory pointer and in the scratch space + let ptr := mload(64) // Cache the free memory pointer. + // Lay out the variables from last to first, agnostic to upper 96 bits of address words. + mstore(add(ptr, 92), tokenId) + mstore(add(ptr, 60), contract_) + mstore(add(ptr, 40), to) + mstore(add(ptr, 20), from) + mstore(ptr, rights) + mstore(0, or(shl(8, keccak256(ptr, 124)), ERC721_TYPE)) // Computes erc721Hash, then stores the result in scratch space + mstore(32, DELEGATION_SLOT) + computedLocation := keccak256(0, 64) // Runs keccak256 over the scratch space to obtain the storage key + } + } + + /** + * @notice Helper function to compute delegation hash for `DelegationType.ERC20` + * @dev Equivalent to `keccak256(abi.encodePacked(rights, from, to, contract_))` with the last byte overwritten with ERC20_TYPE + * @dev Will not revert if `from`, `to` or `contract_` are > uint160, these inputs will be cleaned to their lower 20 bytes + * @param from The address making the delegation + * @param rights The rights specified by the delegation + * @param to The address receiving the delegation + * @param contract_ The address of the ERC20 token contract + * @return hash The parameters encoded with ERC20_TYPE + */ + function erc20Hash(address from, bytes32 rights, address to, address contract_) internal pure returns (bytes32 hash) { + assembly ("memory-safe") { + // This block only allocates memory after the free memory pointer + let ptr := mload(64) // Load free memory pointer + // Lay out the variables from last to first, agnostic to upper 96 bits of address words. + mstore(add(ptr, 60), contract_) + mstore(add(ptr, 40), to) + mstore(add(ptr, 20), from) + mstore(ptr, rights) + hash := or(shl(8, keccak256(ptr, 92)), ERC20_TYPE) // Keccak-hashes the packed encoding, left-shifts by one byte, then writes type to the lowest-order byte + } + } + + /** + * @notice Helper function to compute delegation location for `DelegationType.ERC20` + * @dev Equivalent to `location(ERC20Hash(rights, from, to, contract_))` + * @dev Will not revert if `from`, `to` or `contract_` are > uint160, these inputs will be cleaned to their lower 20 bytes + * @param from The address making the delegation + * @param rights The rights specified by the delegation + * @param to The address receiving the delegation + * @param contract_ The address of the ERC20 token contract + * @return computedLocation The storage location of the ERC20 delegation with those parameters in the delegations mapping + */ + function erc20Location(address from, bytes32 rights, address to, address contract_) internal pure returns (bytes32 computedLocation) { + assembly ("memory-safe") { + // This block only allocates memory after the free memory pointer and in the scratch space + let ptr := mload(64) // Loads the free memory pointer + // Lay out the variables from last to first, agnostic to upper 96 bits of address words. + mstore(add(ptr, 60), contract_) + mstore(add(ptr, 40), to) + mstore(add(ptr, 20), from) + mstore(ptr, rights) + mstore(0, or(shl(8, keccak256(ptr, 92)), ERC20_TYPE)) // Computes erc20Hash, then stores the result in scratch space + mstore(32, DELEGATION_SLOT) + computedLocation := keccak256(0, 64) // Runs keccak over the scratch space to obtain the storage key + } + } + + /** + * @notice Helper function to compute delegation hash for `DelegationType.ERC1155` + * @dev Equivalent to keccak256(abi.encodePacked(rights, from, to, contract_, tokenId)) left-shifted with the last byte overwritten with ERC1155_TYPE + * @dev Will not revert if `from`, `to` or `contract_` are > uint160, these inputs will be cleaned to their lower 20 bytes + * @param from The address making the delegation + * @param rights The rights specified by the delegation + * @param to The address receiving the delegation + * @param tokenId The id of the ERC1155 token + * @param contract_ The address of the ERC1155 token contract + * @return hash The parameters encoded with ERC1155_TYPE + */ + function erc1155Hash(address from, bytes32 rights, address to, uint256 tokenId, address contract_) internal pure returns (bytes32 hash) { + assembly ("memory-safe") { + // This block only allocates memory after the free memory pointer + let ptr := mload(64) // Load the free memory pointer. + // Lay out the variables from last to first, agnostic to upper 96 bits of address words. + mstore(add(ptr, 92), tokenId) + mstore(add(ptr, 60), contract_) + mstore(add(ptr, 40), to) + mstore(add(ptr, 20), from) + mstore(ptr, rights) + hash := or(shl(8, keccak256(ptr, 124)), ERC1155_TYPE) // Keccak-hashes the packed encoding, left-shifts by one byte, then writes type to the lowest-order byte + } + } + + /** + * @notice Helper function to compute delegation location for `DelegationType.ERC1155` + * @dev Equivalent to `location(ERC1155Hash(rights, from, to, contract_, tokenId))` + * @dev Will not revert if `from`, `to` or `contract_` are > uint160, these inputs will be cleaned to their lower 20 bytes + * @param from The address making the delegation + * @param rights The rights specified by the delegation + * @param to The address receiving the delegation + * @param tokenId The id of the ERC1155 token + * @param contract_ The address of the ERC1155 token contract + * @return computedLocation The storage location of the ERC1155 delegation with those parameters in the delegations mapping + */ + function erc1155Location(address from, bytes32 rights, address to, uint256 tokenId, address contract_) internal pure returns (bytes32 computedLocation) { + assembly ("memory-safe") { + // This block only allocates memory after the free memory pointer and in the scratch space + let ptr := mload(64) // Cache the free memory pointer. + // Lay out the variables from last to first, agnostic to upper 96 bits of address words. + mstore(add(ptr, 92), tokenId) + mstore(add(ptr, 60), contract_) + mstore(add(ptr, 40), to) + mstore(add(ptr, 20), from) + mstore(ptr, rights) + mstore(0, or(shl(8, keccak256(ptr, 124)), ERC1155_TYPE)) // Computes erc1155Hash, then stores the result in scratch space + mstore(32, DELEGATION_SLOT) + computedLocation := keccak256(0, 64) // Runs keccak over the scratch space to obtain the storage key + } + } +} diff --git a/smart-contracts/contracts/mock/delegate-registry/libraries/RegistryOps.sol b/smart-contracts/contracts/mock/delegate-registry/libraries/RegistryOps.sol new file mode 100644 index 00000000..b59ade16 --- /dev/null +++ b/smart-contracts/contracts/mock/delegate-registry/libraries/RegistryOps.sol @@ -0,0 +1,31 @@ +// SPDX-License-Identifier: CC0-1.0 +pragma solidity ^0.8.21; + +library RegistryOps { + /// @dev `x > y ? x : y`. + function max(uint256 x, uint256 y) internal pure returns (uint256 z) { + assembly { + // `gt(y, x)` will evaluate to 1 if `y > x`, else 0. + // + // If `y > x`: + // `x ^ ((x ^ y) * 1) = x ^ (x ^ y) = (x ^ x) ^ y = 0 ^ y = y`. + // otherwise: + // `x ^ ((x ^ y) * 0) = x ^ 0 = x`. + z := xor(x, mul(xor(x, y), gt(y, x))) + } + } + + /// @dev `x & y`. + function and(bool x, bool y) internal pure returns (bool z) { + assembly { + z := and(iszero(iszero(x)), iszero(iszero(y))) // Compiler cleans dirty booleans on the stack to 1, so do the same here + } + } + + /// @dev `x | y`. + function or(bool x, bool y) internal pure returns (bool z) { + assembly { + z := or(iszero(iszero(x)), iszero(iszero(y))) // Compiler cleans dirty booleans on the stack to 1, so do the same here + } + } +} diff --git a/smart-contracts/contracts/mock/delegate-registry/libraries/RegistryStorage.sol b/smart-contracts/contracts/mock/delegate-registry/libraries/RegistryStorage.sol new file mode 100644 index 00000000..93e8f178 --- /dev/null +++ b/smart-contracts/contracts/mock/delegate-registry/libraries/RegistryStorage.sol @@ -0,0 +1,69 @@ +// SPDX-License-Identifier: CC0-1.0 +pragma solidity ^0.8.21; + +library RegistryStorage { + /// @dev Standardizes `from` storage flags to prevent double-writes in the delegation in/outbox if the same delegation is revoked and rewritten + address internal constant DELEGATION_EMPTY = address(0); + address internal constant DELEGATION_REVOKED = address(1); + + /// @dev Standardizes storage positions of delegation data + uint256 internal constant POSITIONS_FIRST_PACKED = 0; // | 4 bytes empty | first 8 bytes of contract address | 20 bytes of from address | + uint256 internal constant POSITIONS_SECOND_PACKED = 1; // | last 12 bytes of contract address | 20 bytes of to address | + uint256 internal constant POSITIONS_RIGHTS = 2; + uint256 internal constant POSITIONS_TOKEN_ID = 3; + uint256 internal constant POSITIONS_AMOUNT = 4; + + /// @dev Used to clean address types of dirty bits with `and(address, CLEAN_ADDRESS)` + uint256 internal constant CLEAN_ADDRESS = 0x00ffffffffffffffffffffffffffffffffffffffff; + + /// @dev Used to clean everything but the first 8 bytes of an address + uint256 internal constant CLEAN_FIRST8_BYTES_ADDRESS = 0xffffffffffffffff << 96; + + /// @dev Used to clean everything but the first 8 bytes of an address in the packed position + uint256 internal constant CLEAN_PACKED8_BYTES_ADDRESS = 0xffffffffffffffff << 160; + + /** + * @notice Helper function that packs from, to, and contract_ address to into the two slot configuration + * @param from The address making the delegation + * @param to The address receiving the delegation + * @param contract_ The contract address associated with the delegation (optional) + * @return firstPacked The firstPacked storage configured with the parameters + * @return secondPacked The secondPacked storage configured with the parameters + * @dev Will not revert if `from`, `to`, and `contract_` are > uint160, any inputs with dirty bits outside the last 20 bytes will be cleaned + */ + function packAddresses(address from, address to, address contract_) internal pure returns (bytes32 firstPacked, bytes32 secondPacked) { + assembly { + firstPacked := or(shl(64, and(contract_, CLEAN_FIRST8_BYTES_ADDRESS)), and(from, CLEAN_ADDRESS)) + secondPacked := or(shl(160, contract_), and(to, CLEAN_ADDRESS)) + } + } + + /** + * @notice Helper function that unpacks from, to, and contract_ address inside the firstPacked secondPacked storage configuration + * @param firstPacked The firstPacked storage to be decoded + * @param secondPacked The secondPacked storage to be decoded + * @return from The address making the delegation + * @return to The address receiving the delegation + * @return contract_ The contract address associated with the delegation + * @dev Will not revert if `from`, `to`, and `contract_` are > uint160, any inputs with dirty bits outside the last 20 bytes will be cleaned + */ + function unpackAddresses(bytes32 firstPacked, bytes32 secondPacked) internal pure returns (address from, address to, address contract_) { + assembly { + from := and(firstPacked, CLEAN_ADDRESS) + to := and(secondPacked, CLEAN_ADDRESS) + contract_ := or(shr(64, and(firstPacked, CLEAN_PACKED8_BYTES_ADDRESS)), shr(160, secondPacked)) + } + } + + /** + * @notice Helper function that can unpack the from or to address from their respective packed slots in the registry + * @param packedSlot The slot containing the from or to address + * @return unpacked The `from` or `to` address + * @dev Will not work if you want to obtain the contract address, use unpackAddresses + */ + function unpackAddress(bytes32 packedSlot) internal pure returns (address unpacked) { + assembly { + unpacked := and(packedSlot, CLEAN_ADDRESS) + } + } +} diff --git a/smart-contracts/test/diamond/facets/Delegation.test.ts b/smart-contracts/test/diamond/facets/Delegation.test.ts new file mode 100644 index 00000000..1cb56151 --- /dev/null +++ b/smart-contracts/test/diamond/facets/Delegation.test.ts @@ -0,0 +1,109 @@ +import { Delegation, LumerinDiamond, MorpheusToken } from '@ethers-v6'; +import { SignerWithAddress } from '@nomicfoundation/hardhat-ethers/signers'; +import { expect } from 'chai'; +import { ethers } from 'hardhat'; + +import { DelegateRegistry } from '@/generated-types/ethers/contracts/mock/delegate-registry/src'; +import { getHex, wei } from '@/scripts/utils/utils'; +import { + deployDelegateRegistry, + deployFacetDelegation, + deployFacetMarketplace, + deployFacetModelRegistry, + deployFacetProviderRegistry, + deployFacetSessionRouter, + deployLumerinDiamond, + deployMORToken, +} from '@/test/helpers/deployers'; +import { Reverter } from '@/test/helpers/reverter'; + +describe('Delegation', () => { + const reverter = new Reverter(); + + let OWNER: SignerWithAddress; + let PROVIDER: SignerWithAddress; + + let diamond: LumerinDiamond; + let delegation: Delegation; + + let token: MorpheusToken; + let delegateRegistry: DelegateRegistry; + + before(async () => { + [OWNER, PROVIDER] = await ethers.getSigners(); + + [diamond, token, delegateRegistry] = await Promise.all([ + deployLumerinDiamond(), + deployMORToken(), + deployDelegateRegistry(), + ]); + + [, , , , delegation] = await Promise.all([ + deployFacetProviderRegistry(diamond), + deployFacetModelRegistry(diamond), + deployFacetSessionRouter(diamond, OWNER), + deployFacetMarketplace(diamond, token, wei(0.0001), wei(900)), + deployFacetDelegation(diamond, delegateRegistry), + ]); + + await reverter.snapshot(); + }); + + afterEach(reverter.revert); + + describe('#__Delegation_init', () => { + it('should revert if try to call init function twice', async () => { + await expect(delegation.__Delegation_init(OWNER)).to.be.rejectedWith( + 'Initializable: contract is already initialized', + ); + }); + }); + + describe('#setRegistry', async () => { + it('should set new registry', async () => { + await expect(delegation.setRegistry(PROVIDER)) + .to.emit(delegation, 'DelegationRegistryUpdated') + .withArgs(PROVIDER); + + expect(await delegation.getRegistry()).eq(PROVIDER); + }); + + it('should throw error when caller is not an owner', async () => { + await expect(delegation.connect(PROVIDER).setRegistry(PROVIDER)).to.be.revertedWithCustomError( + diamond, + 'OwnableUnauthorizedAccount', + ); + }); + }); + + describe('#isRightsDelegated', async () => { + it('should return `false` when rights not delegated', async () => { + const rights = await delegation.DELEGATION_RULES_PROVIDER(); + + expect(await delegation.isRightsDelegated(OWNER, PROVIDER, rights)).eq(false); + }); + it('should return `false` when correct rights not delegated', async () => { + const rights = await delegation.DELEGATION_RULES_PROVIDER(); + await delegateRegistry.connect(PROVIDER).delegateContract(OWNER, delegation, rights, true); + + expect(await delegation.isRightsDelegated(OWNER, PROVIDER, await delegation.DELEGATION_RULES_SESSION())).eq( + false, + ); + }); + it('should return `true` when rights delegated for the specific rule', async () => { + const rights = await delegation.DELEGATION_RULES_PROVIDER(); + await delegateRegistry.connect(PROVIDER).delegateContract(OWNER, delegation, rights, true); + + expect(await delegation.isRightsDelegated(OWNER, PROVIDER, rights)).eq(true); + }); + it('should return `true` when rights delegated for the all rules', async () => { + const rights = await delegation.DELEGATION_RULES_PROVIDER(); + await delegateRegistry.connect(PROVIDER).delegateContract(OWNER, delegation, getHex(Buffer.from('')), true); + + expect(await delegation.isRightsDelegated(OWNER, PROVIDER, rights)).eq(true); + }); + }); +}); + +// npm run generate-types && npx hardhat test "test/diamond/facets/Delegation.test.ts" +// npx hardhat coverage --solcoverjs ./.solcover.ts --testfiles "test/diamond/facets/Delegation.test.ts" diff --git a/smart-contracts/test/diamond/facets/Marketplace.test.ts b/smart-contracts/test/diamond/facets/Marketplace.test.ts index 906b693b..63c3bd6d 100644 --- a/smart-contracts/test/diamond/facets/Marketplace.test.ts +++ b/smart-contracts/test/diamond/facets/Marketplace.test.ts @@ -1,10 +1,19 @@ -import { LumerinDiamond, Marketplace, ModelRegistry, MorpheusToken, ProviderRegistry } from '@ethers-v6'; +import { + DelegateRegistry, + LumerinDiamond, + Marketplace, + ModelRegistry, + MorpheusToken, + ProviderRegistry, +} from '@ethers-v6'; import { SignerWithAddress } from '@nomicfoundation/hardhat-ethers/signers'; import { expect } from 'chai'; import { ethers } from 'hardhat'; import { getHex, wei } from '@/scripts/utils/utils'; import { + deployDelegateRegistry, + deployFacetDelegation, deployFacetMarketplace, deployFacetModelRegistry, deployFacetProviderRegistry, @@ -28,6 +37,7 @@ describe('Marketplace', () => { let providerRegistry: ProviderRegistry; let token: MorpheusToken; + let delegateRegistry: DelegateRegistry; const baseModelId1 = getHex(Buffer.from('1')); const baseModelId2 = getHex(Buffer.from('2')); @@ -37,13 +47,17 @@ describe('Marketplace', () => { before(async () => { [OWNER, SECOND, PROVIDER] = await ethers.getSigners(); - [diamond, token] = await Promise.all([deployLumerinDiamond(), deployMORToken()]); - + [diamond, token, delegateRegistry] = await Promise.all([ + deployLumerinDiamond(), + deployMORToken(), + deployDelegateRegistry(), + ]); [providerRegistry, modelRegistry, , marketplace] = await Promise.all([ deployFacetProviderRegistry(diamond), deployFacetModelRegistry(diamond), deployFacetSessionRouter(diamond, OWNER), deployFacetMarketplace(diamond, token, wei(0.0001), wei(900)), + deployFacetDelegation(diamond, delegateRegistry), ]); await token.transfer(SECOND, wei(1000)); @@ -55,9 +69,9 @@ describe('Marketplace', () => { await token.approve(marketplace, wei(1000)); const ipfsCID = getHex(Buffer.from('ipfs://ipfsaddress')); - await providerRegistry.connect(SECOND).providerRegister(wei(100), 'test'); - await modelRegistry.connect(SECOND).modelRegister(baseModelId1, ipfsCID, 0, wei(100), 'name', ['tag_1']); - await modelRegistry.connect(SECOND).modelRegister(baseModelId2, ipfsCID, 0, wei(100), 'name', ['tag_1']); + await providerRegistry.connect(SECOND).providerRegister(SECOND, wei(100), 'test'); + await modelRegistry.connect(SECOND).modelRegister(SECOND, baseModelId1, ipfsCID, 0, wei(100), 'name', ['tag_1']); + await modelRegistry.connect(SECOND).modelRegister(SECOND, baseModelId2, ipfsCID, 0, wei(100), 'name', ['tag_1']); modelId1 = await modelRegistry.getModelId(SECOND, baseModelId1); modelId2 = await modelRegistry.getModelId(SECOND, baseModelId2); @@ -128,7 +142,32 @@ describe('Marketplace', () => { it('should post a model bid', async () => { await setNextTime(300); - await marketplace.connect(SECOND).postModelBid(modelId1, wei(10)); + await marketplace.connect(SECOND).postModelBid(SECOND, modelId1, wei(10)); + + const bidId = await marketplace.getBidId(SECOND, modelId1, 0); + const data = await marketplace.getBid(bidId); + expect(data.provider).to.eq(SECOND); + expect(data.modelId).to.eq(modelId1); + expect(data.pricePerSecond).to.eq(wei(10)); + expect(data.nonce).to.eq(0); + expect(data.createdAt).to.eq(300); + expect(data.deletedAt).to.eq(0); + + expect(await token.balanceOf(marketplace)).to.eq(wei(301)); + expect(await token.balanceOf(SECOND)).to.eq(wei(699)); + + expect(await marketplace.getProviderBids(SECOND, 0, 10)).deep.eq([bidId]); + expect(await marketplace.getModelBids(modelId1, 0, 10)).deep.eq([bidId]); + expect(await marketplace.getProviderActiveBids(SECOND, 0, 10)).deep.eq([bidId]); + expect(await marketplace.getModelActiveBids(modelId1, 0, 10)).deep.eq([bidId]); + }); + it('should post a model bid from the delegatee address', async () => { + await delegateRegistry + .connect(SECOND) + .delegateContract(OWNER, providerRegistry, await providerRegistry.DELEGATION_RULES_MARKETPLACE(), true); + + await setNextTime(300); + await marketplace.connect(OWNER).postModelBid(SECOND, modelId1, wei(10)); const bidId = await marketplace.getBidId(SECOND, modelId1, 0); const data = await marketplace.getBid(bidId); @@ -149,8 +188,8 @@ describe('Marketplace', () => { }); it('should post few model bids', async () => { await setNextTime(300); - await marketplace.connect(SECOND).postModelBid(modelId1, wei(10)); - await marketplace.connect(SECOND).postModelBid(modelId2, wei(20)); + await marketplace.connect(SECOND).postModelBid(SECOND, modelId1, wei(10)); + await marketplace.connect(SECOND).postModelBid(SECOND, modelId2, wei(20)); const bidId1 = await marketplace.getBidId(SECOND, modelId1, 0); let data = await marketplace.getBid(bidId1); @@ -182,8 +221,8 @@ describe('Marketplace', () => { }); it('should post a new model bid and delete an old bid when an old bid is active', async () => { await setNextTime(300); - await marketplace.connect(SECOND).postModelBid(modelId1, wei(10)); - await marketplace.connect(SECOND).postModelBid(modelId1, wei(20)); + await marketplace.connect(SECOND).postModelBid(SECOND, modelId1, wei(10)); + await marketplace.connect(SECOND).postModelBid(SECOND, modelId1, wei(20)); const bidId1 = await marketplace.getBidId(SECOND, modelId1, 0); let data = await marketplace.getBid(bidId1); @@ -208,54 +247,67 @@ describe('Marketplace', () => { }); it('should post a new model bid and skip the old bid delete', async () => { await setNextTime(300); - await marketplace.connect(SECOND).postModelBid(modelId1, wei(10)); + await marketplace.connect(SECOND).postModelBid(SECOND, modelId1, wei(10)); const bidId1 = await marketplace.getBidId(SECOND, modelId1, 0); await marketplace.connect(SECOND).deleteModelBid(bidId1); - await marketplace.connect(SECOND).postModelBid(modelId1, wei(20)); + await marketplace.connect(SECOND).postModelBid(SECOND, modelId1, wei(20)); }); it('should throw error when the provider is deregistered', async () => { - await providerRegistry.connect(SECOND).providerDeregister(); - await expect(marketplace.connect(SECOND).postModelBid(modelId1, wei(10))).to.be.revertedWithCustomError( + await providerRegistry.connect(SECOND).providerDeregister(SECOND); + await expect(marketplace.connect(SECOND).postModelBid(SECOND, modelId1, wei(10))).to.be.revertedWithCustomError( marketplace, 'MarketplaceProviderNotFound', ); }); it('should throw error when the model is deregistered', async () => { - await modelRegistry.connect(SECOND).modelDeregister(baseModelId1); - await expect(marketplace.connect(SECOND).postModelBid(modelId1, wei(10))).to.be.revertedWithCustomError( + await modelRegistry.connect(SECOND).modelDeregister(modelId1); + await expect(marketplace.connect(SECOND).postModelBid(SECOND, modelId1, wei(10))).to.be.revertedWithCustomError( marketplace, 'MarketplaceModelNotFound', ); }); it('should throw error when the bid price is invalid #1', async () => { - await expect(marketplace.connect(SECOND).postModelBid(modelId1, wei(99999))).to.be.revertedWithCustomError( - marketplace, - 'MarketplaceBidPricePerSecondInvalid', - ); + await expect( + marketplace.connect(SECOND).postModelBid(SECOND, modelId1, wei(99999)), + ).to.be.revertedWithCustomError(marketplace, 'MarketplaceBidPricePerSecondInvalid'); }); it('should throw error when the bid price is invalid #2', async () => { - await expect(marketplace.connect(SECOND).postModelBid(modelId1, wei(0))).to.be.revertedWithCustomError( + await expect(marketplace.connect(SECOND).postModelBid(SECOND, modelId1, wei(0))).to.be.revertedWithCustomError( marketplace, 'MarketplaceBidPricePerSecondInvalid', ); }); it('should throw error when model not found', async () => { await expect( - marketplace.connect(SECOND).postModelBid(getHex(Buffer.from('123')), wei(1)), + marketplace.connect(SECOND).postModelBid(SECOND, getHex(Buffer.from('123')), wei(1)), ).to.be.revertedWithCustomError(marketplace, 'MarketplaceModelNotFound'); }); it('should throw error when provider not found', async () => { await expect( - marketplace.connect(OWNER).postModelBid(getHex(Buffer.from('123')), wei(1)), + marketplace.connect(OWNER).postModelBid(OWNER, getHex(Buffer.from('123')), wei(1)), ).to.be.revertedWithCustomError(marketplace, 'MarketplaceProviderNotFound'); }); + it('should throw error when post a bid without delegation or with incorrect rules', async () => { + await expect(marketplace.connect(OWNER).postModelBid(SECOND, modelId1, wei(10))).to.be.revertedWithCustomError( + providerRegistry, + 'InsufficientRightsForOperation', + ); + + await delegateRegistry + .connect(SECOND) + .delegateContract(OWNER, providerRegistry, getHex(Buffer.from('123')), true); + await expect(marketplace.connect(OWNER).postModelBid(SECOND, modelId1, wei(10))).to.be.revertedWithCustomError( + providerRegistry, + 'InsufficientRightsForOperation', + ); + }); }); describe('#deleteModelBid', async () => { it('should delete a bid', async () => { await setNextTime(300); - await marketplace.connect(SECOND).postModelBid(modelId1, wei(10)); + await marketplace.connect(SECOND).postModelBid(SECOND, modelId1, wei(10)); const bidId1 = await marketplace.getBidId(SECOND, modelId1, 0); await marketplace.connect(SECOND).deleteModelBid(bidId1); @@ -264,17 +316,32 @@ describe('Marketplace', () => { expect(data.deletedAt).to.eq(301); expect(await marketplace.isBidActive(bidId1)).to.eq(false); }); + it('should delete a bid from the delegatee address', async () => { + await setNextTime(300); + await marketplace.connect(SECOND).postModelBid(SECOND, modelId1, wei(10)); + + await delegateRegistry + .connect(SECOND) + .delegateContract(OWNER, providerRegistry, await providerRegistry.DELEGATION_RULES_MARKETPLACE(), true); + + const bidId1 = await marketplace.getBidId(SECOND, modelId1, 0); + await marketplace.connect(OWNER).deleteModelBid(bidId1); + + const data = await marketplace.getBid(bidId1); + expect(data.deletedAt).to.eq(302); + expect(await marketplace.isBidActive(bidId1)).to.eq(false); + }); it('should throw error when caller is not an owner', async () => { - await marketplace.connect(SECOND).postModelBid(modelId1, wei(10)); + await marketplace.connect(SECOND).postModelBid(SECOND, modelId1, wei(10)); const bidId1 = await marketplace.getBidId(SECOND, modelId1, 0); await expect(marketplace.connect(PROVIDER).deleteModelBid(bidId1)).to.be.revertedWithCustomError( - diamond, - 'OwnableUnauthorizedAccount', + marketplace, + 'InsufficientRightsForOperation', ); }); it('should throw error when bid already deleted', async () => { - await marketplace.connect(SECOND).postModelBid(modelId1, wei(10)); + await marketplace.connect(SECOND).postModelBid(SECOND, modelId1, wei(10)); const bidId1 = await marketplace.getBidId(SECOND, modelId1, 0); await marketplace.connect(SECOND).deleteModelBid(bidId1); @@ -291,7 +358,7 @@ describe('Marketplace', () => { }); it('should withdraw fee, all fee balance', async () => { - await marketplace.connect(SECOND).postModelBid(modelId1, wei(10)); + await marketplace.connect(SECOND).postModelBid(SECOND, modelId1, wei(10)); expect(await marketplace.getFeeBalance()).to.eq(wei(1)); await marketplace.withdrawFee(PROVIDER, wei(999)); @@ -301,7 +368,7 @@ describe('Marketplace', () => { expect(await token.balanceOf(PROVIDER)).to.eq(wei(1)); }); it('should withdraw fee, part of fee balance', async () => { - await marketplace.connect(SECOND).postModelBid(modelId1, wei(10)); + await marketplace.connect(SECOND).postModelBid(SECOND, modelId1, wei(10)); expect(await marketplace.getFeeBalance()).to.eq(wei(1)); await marketplace.withdrawFee(PROVIDER, wei(0.1)); diff --git a/smart-contracts/test/diamond/facets/ModelRegistry.test.ts b/smart-contracts/test/diamond/facets/ModelRegistry.test.ts index fd1e041f..c64a09f5 100644 --- a/smart-contracts/test/diamond/facets/ModelRegistry.test.ts +++ b/smart-contracts/test/diamond/facets/ModelRegistry.test.ts @@ -1,10 +1,19 @@ -import { LumerinDiamond, Marketplace, ModelRegistry, MorpheusToken, ProviderRegistry } from '@ethers-v6'; +import { + DelegateRegistry, + LumerinDiamond, + Marketplace, + ModelRegistry, + MorpheusToken, + ProviderRegistry, +} from '@ethers-v6'; import { SignerWithAddress } from '@nomicfoundation/hardhat-ethers/signers'; import { expect } from 'chai'; import { ethers } from 'hardhat'; import { getHex, wei } from '@/scripts/utils/utils'; import { + deployDelegateRegistry, + deployFacetDelegation, deployFacetMarketplace, deployFacetModelRegistry, deployFacetProviderRegistry, @@ -27,6 +36,7 @@ describe('ModelRegistry', () => { let marketplace: Marketplace; let token: MorpheusToken; + let delegateRegistry: DelegateRegistry; const baseModelId = getHex(Buffer.from('1')); let modelId = getHex(Buffer.from('')); @@ -35,13 +45,18 @@ describe('ModelRegistry', () => { before(async () => { [OWNER, SECOND] = await ethers.getSigners(); - [diamond, token] = await Promise.all([deployLumerinDiamond(), deployMORToken()]); + [diamond, token, delegateRegistry] = await Promise.all([ + deployLumerinDiamond(), + deployMORToken(), + deployDelegateRegistry(), + ]); [providerRegistry, modelRegistry, , marketplace] = await Promise.all([ deployFacetProviderRegistry(diamond), deployFacetModelRegistry(diamond), deployFacetSessionRouter(diamond, OWNER), deployFacetMarketplace(diamond, token, wei(0.0001), wei(900)), + deployFacetDelegation(diamond, delegateRegistry), ]); await token.transfer(SECOND, wei(1000)); @@ -91,10 +106,10 @@ describe('ModelRegistry', () => { await setNextTime(300); await modelRegistry .connect(SECOND) - .modelRegister(getHex(Buffer.from('1')), ipfsCID, 0, wei(100), 'name1', ['tag_1']); + .modelRegister(SECOND, getHex(Buffer.from('1')), ipfsCID, 0, wei(100), 'name1', ['tag_1']); await modelRegistry .connect(SECOND) - .modelRegister(getHex(Buffer.from('2')), ipfsCID, 0, wei(100), 'name2', ['tag_1']); + .modelRegister(SECOND, getHex(Buffer.from('2')), ipfsCID, 0, wei(100), 'name2', ['tag_1']); const modelIds = await modelRegistry.getModelIds(0, 10); expect(modelIds.length).to.eq(2); @@ -111,7 +126,33 @@ describe('ModelRegistry', () => { describe('#modelRegister', async () => { it('should register a new model', async () => { await setNextTime(300); - await modelRegistry.connect(SECOND).modelRegister(baseModelId, ipfsCID, 0, wei(100), 'name', ['tag_1']); + await modelRegistry.connect(SECOND).modelRegister(SECOND, baseModelId, ipfsCID, 0, wei(100), 'name', ['tag_1']); + + const data = await modelRegistry.getModel(modelId); + expect(data.ipfsCID).to.eq(ipfsCID); + expect(data.fee).to.eq(0); + expect(data.stake).to.eq(wei(100)); + expect(data.owner).to.eq(SECOND); + expect(data.name).to.eq('name'); + expect(data.tags).deep.eq(['tag_1']); + expect(data.createdAt).to.eq(300); + expect(data.isDeleted).to.eq(false); + expect(await modelRegistry.getIsModelActive(modelId)).to.eq(true); + + expect(await token.balanceOf(modelRegistry)).to.eq(wei(100)); + expect(await token.balanceOf(SECOND)).to.eq(wei(900)); + + expect(await modelRegistry.getActiveModelIds(0, 10)).to.deep.eq([modelId]); + + await modelRegistry.connect(SECOND).modelRegister(SECOND, baseModelId, ipfsCID, 0, wei(0), 'name', ['tag_1']); + }); + it('should register a new model from the delegatee address', async () => { + await delegateRegistry + .connect(SECOND) + .delegateContract(OWNER, providerRegistry, await providerRegistry.DELEGATION_RULES_MODEL(), true); + + await setNextTime(300); + await modelRegistry.connect(OWNER).modelRegister(SECOND, baseModelId, ipfsCID, 0, wei(100), 'name', ['tag_1']); const data = await modelRegistry.getModel(modelId); expect(data.ipfsCID).to.eq(ipfsCID); @@ -129,16 +170,16 @@ describe('ModelRegistry', () => { expect(await modelRegistry.getActiveModelIds(0, 10)).to.deep.eq([modelId]); - await modelRegistry.connect(SECOND).modelRegister(baseModelId, ipfsCID, 0, wei(0), 'name', ['tag_1']); + await modelRegistry.connect(SECOND).modelRegister(SECOND, baseModelId, ipfsCID, 0, wei(0), 'name', ['tag_1']); }); it('should add stake to existed model', async () => { const ipfsCID2 = getHex(Buffer.from('ipfs://ipfsaddress/2')); await setNextTime(300); - await modelRegistry.connect(SECOND).modelRegister(baseModelId, ipfsCID, 0, wei(100), 'name', ['tag_1']); + await modelRegistry.connect(SECOND).modelRegister(SECOND, baseModelId, ipfsCID, 0, wei(100), 'name', ['tag_1']); await modelRegistry .connect(SECOND) - .modelRegister(baseModelId, ipfsCID2, 1, wei(300), 'name2', ['tag_1', 'tag_2']); + .modelRegister(SECOND, baseModelId, ipfsCID2, 1, wei(300), 'name2', ['tag_1', 'tag_2']); const data = await modelRegistry.getModel(modelId); expect(data.ipfsCID).to.eq(ipfsCID2); @@ -156,14 +197,14 @@ describe('ModelRegistry', () => { }); it('should activate deregistered model', async () => { await setNextTime(300); - await modelRegistry.connect(SECOND).modelRegister(baseModelId, ipfsCID, 0, wei(100), 'name', ['tag_1']); - await modelRegistry.connect(SECOND).modelDeregister(baseModelId); + await modelRegistry.connect(SECOND).modelRegister(SECOND, baseModelId, ipfsCID, 0, wei(100), 'name', ['tag_1']); + await modelRegistry.connect(SECOND).modelDeregister(modelId); let data = await modelRegistry.getModel(modelId); expect(data.isDeleted).to.eq(true); expect(await modelRegistry.getIsModelActive(modelId)).to.eq(false); - await modelRegistry.connect(SECOND).modelRegister(baseModelId, ipfsCID, 4, wei(200), 'name3', ['tag_3']); + await modelRegistry.connect(SECOND).modelRegister(SECOND, baseModelId, ipfsCID, 4, wei(200), 'name3', ['tag_3']); data = await modelRegistry.getModel(modelId); expect(data.ipfsCID).to.eq(ipfsCID); @@ -179,16 +220,44 @@ describe('ModelRegistry', () => { it('should throw error when the stake is too low', async () => { await modelRegistry.modelSetMinStake(wei(2)); await expect( - modelRegistry.connect(SECOND).modelRegister(baseModelId, ipfsCID, 0, wei(1), 'name', ['tag_1']), + modelRegistry.connect(SECOND).modelRegister(SECOND, baseModelId, ipfsCID, 0, wei(1), 'name', ['tag_1']), ).to.be.revertedWithCustomError(modelRegistry, 'ModelStakeTooLow'); }); + it('should throw error when register the model without delegation or with incorrect rules', async () => { + await expect( + modelRegistry.connect(OWNER).modelRegister(SECOND, baseModelId, ipfsCID, 0, wei(100), 'name', ['tag_1']), + ).to.be.revertedWithCustomError(providerRegistry, 'InsufficientRightsForOperation'); + + await delegateRegistry + .connect(SECOND) + .delegateContract(OWNER, providerRegistry, getHex(Buffer.from('123')), true); + await expect( + modelRegistry.connect(OWNER).modelRegister(SECOND, baseModelId, ipfsCID, 0, wei(100), 'name', ['tag_1']), + ).to.be.revertedWithCustomError(providerRegistry, 'InsufficientRightsForOperation'); + }); }); describe('#modelDeregister', async () => { it('should deregister the model', async () => { await setNextTime(300); - await modelRegistry.connect(SECOND).modelRegister(baseModelId, ipfsCID, 0, wei(100), 'name', ['tag_1']); - await modelRegistry.connect(SECOND).modelDeregister(baseModelId); + await modelRegistry.connect(SECOND).modelRegister(SECOND, baseModelId, ipfsCID, 0, wei(100), 'name', ['tag_1']); + await modelRegistry.connect(SECOND).modelDeregister(modelId); + + expect((await modelRegistry.getModel(modelId)).isDeleted).to.equal(true); + expect(await modelRegistry.getIsModelActive(modelId)).to.eq(false); + expect(await token.balanceOf(modelRegistry)).to.eq(0); + expect(await token.balanceOf(SECOND)).to.eq(wei(1000)); + + expect(await modelRegistry.getActiveModelIds(0, 10)).to.deep.eq([]); + }); + it('should deregister the model from the delegatee address', async () => { + await setNextTime(300); + await modelRegistry.connect(SECOND).modelRegister(SECOND, baseModelId, ipfsCID, 0, wei(100), 'name', ['tag_1']); + + await delegateRegistry + .connect(SECOND) + .delegateContract(OWNER, providerRegistry, await providerRegistry.DELEGATION_RULES_MODEL(), true); + await modelRegistry.connect(OWNER).modelDeregister(modelId); expect((await modelRegistry.getModel(modelId)).isDeleted).to.equal(true); expect(await modelRegistry.getIsModelActive(modelId)).to.eq(false); @@ -198,24 +267,24 @@ describe('ModelRegistry', () => { expect(await modelRegistry.getActiveModelIds(0, 10)).to.deep.eq([]); }); it('should throw error when the caller is not an owner or specified address', async () => { - await expect(modelRegistry.connect(SECOND).modelDeregister(baseModelId)).to.be.revertedWithCustomError( + await expect(modelRegistry.connect(SECOND).modelDeregister(modelId)).to.be.revertedWithCustomError( modelRegistry, - 'OwnableUnauthorizedAccount', + 'InsufficientRightsForOperation', ); }); it('should throw error when model has active bids', async () => { - await providerRegistry.connect(SECOND).providerRegister(wei(100), 'test'); - await modelRegistry.connect(SECOND).modelRegister(baseModelId, ipfsCID, 0, wei(100), 'name', ['tag_1']); - await marketplace.connect(SECOND).postModelBid(modelId, wei(10)); - await expect(modelRegistry.connect(SECOND).modelDeregister(baseModelId)).to.be.revertedWithCustomError( + await providerRegistry.connect(SECOND).providerRegister(SECOND, wei(100), 'test'); + await modelRegistry.connect(SECOND).modelRegister(SECOND, baseModelId, ipfsCID, 0, wei(100), 'name', ['tag_1']); + await marketplace.connect(SECOND).postModelBid(SECOND, modelId, wei(10)); + await expect(modelRegistry.connect(SECOND).modelDeregister(modelId)).to.be.revertedWithCustomError( modelRegistry, 'ModelHasActiveBids', ); }); it('should throw error when delete model few times', async () => { - await modelRegistry.connect(SECOND).modelRegister(baseModelId, ipfsCID, 0, wei(100), 'name', ['tag_1']); - await modelRegistry.connect(SECOND).modelDeregister(baseModelId); - await expect(modelRegistry.connect(SECOND).modelDeregister(baseModelId)).to.be.revertedWithCustomError( + await modelRegistry.connect(SECOND).modelRegister(SECOND, baseModelId, ipfsCID, 0, wei(100), 'name', ['tag_1']); + await modelRegistry.connect(SECOND).modelDeregister(modelId); + await expect(modelRegistry.connect(SECOND).modelDeregister(modelId)).to.be.revertedWithCustomError( modelRegistry, 'ModelHasAlreadyDeregistered', ); diff --git a/smart-contracts/test/diamond/facets/ProviderRegistry.test.ts b/smart-contracts/test/diamond/facets/ProviderRegistry.test.ts index 19ac57a2..993a589e 100644 --- a/smart-contracts/test/diamond/facets/ProviderRegistry.test.ts +++ b/smart-contracts/test/diamond/facets/ProviderRegistry.test.ts @@ -3,8 +3,11 @@ import { SignerWithAddress } from '@nomicfoundation/hardhat-ethers/signers'; import { expect } from 'chai'; import { ethers } from 'hardhat'; +import { DelegateRegistry } from '@/generated-types/ethers/contracts/mock/delegate-registry/src'; import { getHex, wei } from '@/scripts/utils/utils'; import { + deployDelegateRegistry, + deployFacetDelegation, deployFacetMarketplace, deployFacetModelRegistry, deployFacetProviderRegistry, @@ -28,6 +31,7 @@ describe('ProviderRegistry', () => { let marketplace: Marketplace; let token: MorpheusToken; + let delegateRegistry: DelegateRegistry; const baseModelId = getHex(Buffer.from('1')); let modelId = getHex(Buffer.from('')); @@ -36,13 +40,18 @@ describe('ProviderRegistry', () => { before(async () => { [OWNER, PROVIDER] = await ethers.getSigners(); - [diamond, token] = await Promise.all([deployLumerinDiamond(), deployMORToken()]); + [diamond, token, delegateRegistry] = await Promise.all([ + deployLumerinDiamond(), + deployMORToken(), + deployDelegateRegistry(), + ]); [providerRegistry, modelRegistry, , marketplace] = await Promise.all([ deployFacetProviderRegistry(diamond), deployFacetModelRegistry(diamond), deployFacetSessionRouter(diamond, OWNER), deployFacetMarketplace(diamond, token, wei(0.0001), wei(900)), + deployFacetDelegation(diamond, delegateRegistry), ]); await token.transfer(PROVIDER, wei(1000)); @@ -86,7 +95,7 @@ describe('ProviderRegistry', () => { describe('#providerRegister', async () => { it('should register a new provider', async () => { await setNextTime(300); - await providerRegistry.connect(PROVIDER).providerRegister(wei(100), 'test'); + await providerRegistry.connect(PROVIDER).providerRegister(PROVIDER, wei(100), 'test'); const data = await providerRegistry.getProvider(PROVIDER); @@ -103,12 +112,12 @@ describe('ProviderRegistry', () => { expect(await providerRegistry.getActiveProviders(0, 10)).to.deep.eq([PROVIDER.address]); - await providerRegistry.connect(PROVIDER).providerRegister(wei(0), 'test'); + await providerRegistry.connect(PROVIDER).providerRegister(PROVIDER, wei(0), 'test'); }); it('should add stake to existed provider', async () => { await setNextTime(300); - await providerRegistry.connect(PROVIDER).providerRegister(wei(100), 'test'); - await providerRegistry.connect(PROVIDER).providerRegister(wei(300), 'test2'); + await providerRegistry.connect(PROVIDER).providerRegister(PROVIDER, wei(100), 'test'); + await providerRegistry.connect(PROVIDER).providerRegister(PROVIDER, wei(300), 'test2'); const data = await providerRegistry.getProvider(PROVIDER); @@ -125,15 +134,15 @@ describe('ProviderRegistry', () => { }); it('should activate deregistered provider', async () => { await setNextTime(300); - await providerRegistry.connect(PROVIDER).providerRegister(wei(100), 'test'); + await providerRegistry.connect(PROVIDER).providerRegister(PROVIDER, wei(100), 'test'); await setNextTime(301 + YEAR); - await providerRegistry.connect(PROVIDER).providerDeregister(); + await providerRegistry.connect(PROVIDER).providerDeregister(PROVIDER); let data = await providerRegistry.getProvider(PROVIDER); expect(data.isDeleted).to.eq(true); expect(await providerRegistry.getIsProviderActive(PROVIDER)).to.eq(false); - await providerRegistry.connect(PROVIDER).providerRegister(wei(1), 'test2'); + await providerRegistry.connect(PROVIDER).providerRegister(PROVIDER, wei(1), 'test2'); data = await providerRegistry.getProvider(PROVIDER); expect(data.endpoint).to.eq('test2'); @@ -144,21 +153,74 @@ describe('ProviderRegistry', () => { expect(data.isDeleted).to.eq(false); expect(await providerRegistry.getIsProviderActive(PROVIDER)).to.eq(true); }); + it('should register a new provider from the delegatee address', async () => { + await delegateRegistry + .connect(PROVIDER) + .delegateContract(OWNER, providerRegistry, await providerRegistry.DELEGATION_RULES_PROVIDER(), true); + + await setNextTime(300); + await providerRegistry.connect(OWNER).providerRegister(PROVIDER, wei(100), 'test'); + + const data = await providerRegistry.getProvider(PROVIDER); + + expect(data.endpoint).to.eq('test'); + expect(data.stake).to.eq(wei(100)); + expect(data.createdAt).to.eq(300); + expect(data.limitPeriodEnd).to.eq(YEAR + 300); + expect(data.limitPeriodEarned).to.eq(0); + expect(data.isDeleted).to.eq(false); + expect(await providerRegistry.getIsProviderActive(PROVIDER)).to.eq(true); + + expect(await token.balanceOf(providerRegistry)).to.eq(wei(100)); + expect(await token.balanceOf(PROVIDER)).to.eq(wei(900)); + + expect(await providerRegistry.getActiveProviders(0, 10)).to.deep.eq([PROVIDER.address]); + + await providerRegistry.connect(PROVIDER).providerRegister(PROVIDER, wei(0), 'test'); + }); it('should throw error when the stake is too low', async () => { await providerRegistry.providerSetMinStake(wei(2)); - await expect(providerRegistry.connect(PROVIDER).providerRegister(wei(0), '')).to.be.revertedWithCustomError( - providerRegistry, - 'ProviderStakeTooLow', - ); + await expect( + providerRegistry.connect(PROVIDER).providerRegister(PROVIDER, wei(0), ''), + ).to.be.revertedWithCustomError(providerRegistry, 'ProviderStakeTooLow'); + }); + it('should throw error when create provider without delegation or with incorrect rules', async () => { + await expect( + providerRegistry.connect(OWNER).providerRegister(PROVIDER, wei(0), ''), + ).to.be.revertedWithCustomError(providerRegistry, 'InsufficientRightsForOperation'); + + await delegateRegistry + .connect(PROVIDER) + .delegateContract(OWNER, providerRegistry, getHex(Buffer.from('123')), true); + await expect( + providerRegistry.connect(OWNER).providerRegister(PROVIDER, wei(0), ''), + ).to.be.revertedWithCustomError(providerRegistry, 'InsufficientRightsForOperation'); }); }); describe('#providerDeregister', async () => { it('should deregister the provider', async () => { await setNextTime(300); - await providerRegistry.connect(PROVIDER).providerRegister(wei(100), 'test'); + await providerRegistry.connect(PROVIDER).providerRegister(PROVIDER, wei(100), 'test'); + await setNextTime(301 + YEAR); + await providerRegistry.connect(PROVIDER).providerDeregister(PROVIDER); + + expect((await providerRegistry.getProvider(PROVIDER)).isDeleted).to.equal(true); + expect(await providerRegistry.getIsProviderActive(PROVIDER)).to.eq(false); + expect(await token.balanceOf(providerRegistry)).to.eq(0); + expect(await token.balanceOf(PROVIDER)).to.eq(wei(1000)); + + expect(await providerRegistry.getActiveProviders(0, 10)).to.deep.eq([]); + }); + it('should deregister the provider from the delegatee address', async () => { + await setNextTime(300); + await providerRegistry.connect(PROVIDER).providerRegister(PROVIDER, wei(100), 'test'); + + await delegateRegistry + .connect(PROVIDER) + .delegateContract(OWNER, providerRegistry, await providerRegistry.DELEGATION_RULES_PROVIDER(), true); await setNextTime(301 + YEAR); - await providerRegistry.connect(PROVIDER).providerDeregister(); + await providerRegistry.connect(OWNER).providerDeregister(PROVIDER); expect((await providerRegistry.getProvider(PROVIDER)).isDeleted).to.equal(true); expect(await providerRegistry.getIsProviderActive(PROVIDER)).to.eq(false); @@ -170,9 +232,9 @@ describe('ProviderRegistry', () => { it('should deregister the provider without transfer', async () => { await providerRegistry.providerSetMinStake(0); await setNextTime(300); - await providerRegistry.connect(PROVIDER).providerRegister(wei(0), 'test'); + await providerRegistry.connect(PROVIDER).providerRegister(PROVIDER, wei(0), 'test'); await setNextTime(301 + YEAR); - await providerRegistry.connect(PROVIDER).providerDeregister(); + await providerRegistry.connect(PROVIDER).providerDeregister(PROVIDER); expect((await providerRegistry.getProvider(PROVIDER)).isDeleted).to.equal(true); expect(await providerRegistry.getIsProviderActive(PROVIDER)).to.eq(false); @@ -180,24 +242,26 @@ describe('ProviderRegistry', () => { expect(await token.balanceOf(PROVIDER)).to.eq(wei(1000)); }); it('should throw error when provider is not found', async () => { - await expect(providerRegistry.connect(OWNER).providerDeregister()).to.be.revertedWithCustomError( + await expect(providerRegistry.connect(OWNER).providerDeregister(OWNER)).to.be.revertedWithCustomError( providerRegistry, 'ProviderNotFound', ); }); it('should throw error when provider has active bids', async () => { - await providerRegistry.connect(PROVIDER).providerRegister(wei(100), 'test'); - await modelRegistry.connect(PROVIDER).modelRegister(baseModelId, ipfsCID, 0, wei(100), 'name', ['tag_1']); - await marketplace.connect(PROVIDER).postModelBid(modelId, wei(10)); - await expect(providerRegistry.connect(PROVIDER).providerDeregister()).to.be.revertedWithCustomError( + await providerRegistry.connect(PROVIDER).providerRegister(PROVIDER, wei(100), 'test'); + await modelRegistry + .connect(PROVIDER) + .modelRegister(PROVIDER, baseModelId, ipfsCID, 0, wei(100), 'name', ['tag_1']); + await marketplace.connect(PROVIDER).postModelBid(PROVIDER, modelId, wei(10)); + await expect(providerRegistry.connect(PROVIDER).providerDeregister(PROVIDER)).to.be.revertedWithCustomError( providerRegistry, 'ProviderHasActiveBids', ); }); it('should throw error when delete provider few times', async () => { - await providerRegistry.connect(OWNER).providerRegister(wei(100), 'test'); - await providerRegistry.connect(OWNER).providerDeregister(); - await expect(providerRegistry.connect(OWNER).providerDeregister()).to.be.revertedWithCustomError( + await providerRegistry.connect(PROVIDER).providerRegister(PROVIDER, wei(100), 'test'); + await providerRegistry.connect(PROVIDER).providerDeregister(PROVIDER); + await expect(providerRegistry.connect(PROVIDER).providerDeregister(PROVIDER)).to.be.revertedWithCustomError( providerRegistry, 'ProviderHasAlreadyDeregistered', ); diff --git a/smart-contracts/test/diamond/facets/SessionRouter.test.ts b/smart-contracts/test/diamond/facets/SessionRouter.test.ts index 842a89db..0c396b82 100644 --- a/smart-contracts/test/diamond/facets/SessionRouter.test.ts +++ b/smart-contracts/test/diamond/facets/SessionRouter.test.ts @@ -1,10 +1,20 @@ -import { LumerinDiamond, Marketplace, ModelRegistry, MorpheusToken, ProviderRegistry, SessionRouter } from '@ethers-v6'; +import { + DelegateRegistry, + LumerinDiamond, + Marketplace, + ModelRegistry, + MorpheusToken, + ProviderRegistry, + SessionRouter, +} from '@ethers-v6'; import { SignerWithAddress } from '@nomicfoundation/hardhat-ethers/signers'; import { expect } from 'chai'; import { ethers } from 'hardhat'; import { getHex, wei } from '@/scripts/utils/utils'; import { + deployDelegateRegistry, + deployFacetDelegation, deployFacetMarketplace, deployFacetModelRegistry, deployFacetProviderRegistry, @@ -33,6 +43,7 @@ describe('SessionRouter', () => { let sessionRouter: SessionRouter; let token: MorpheusToken; + let delegateRegistry: DelegateRegistry; let bidId = ''; const baseModelId = getHex(Buffer.from('1')); @@ -42,13 +53,18 @@ describe('SessionRouter', () => { before(async () => { [OWNER, SECOND, FUNDING, PROVIDER] = await ethers.getSigners(); - [diamond, token] = await Promise.all([deployLumerinDiamond(), deployMORToken()]); + [diamond, token, delegateRegistry] = await Promise.all([ + deployLumerinDiamond(), + deployMORToken(), + deployDelegateRegistry(), + ]); [providerRegistry, modelRegistry, sessionRouter, marketplace] = await Promise.all([ deployFacetProviderRegistry(diamond), deployFacetModelRegistry(diamond), deployFacetSessionRouter(diamond, FUNDING), deployFacetMarketplace(diamond, token, wei(0.0001), wei(900)), + deployFacetDelegation(diamond, delegateRegistry), ]); await token.transfer(SECOND, wei(10000)); @@ -61,12 +77,12 @@ describe('SessionRouter', () => { await token.connect(FUNDING).approve(sessionRouter, wei(10000)); const ipfsCID = getHex(Buffer.from('ipfs://ipfsaddress')); - await providerRegistry.connect(PROVIDER).providerRegister(wei(0.2), 'test'); - await modelRegistry.connect(PROVIDER).modelRegister(baseModelId, ipfsCID, 0, wei(100), 'name', ['tag_1']); + await providerRegistry.connect(PROVIDER).providerRegister(PROVIDER, wei(0.2), 'test'); + await modelRegistry.connect(PROVIDER).modelRegister(PROVIDER, baseModelId, ipfsCID, 0, wei(100), 'name', ['tag_1']); modelId = await modelRegistry.getModelId(PROVIDER, baseModelId); - await marketplace.connect(PROVIDER).postModelBid(modelId, bidPricePerSecond); + await marketplace.connect(PROVIDER).postModelBid(PROVIDER, modelId, bidPricePerSecond); bidId = await marketplace.getBidId(PROVIDER, modelId, 0); await reverter.snapshot(); @@ -160,10 +176,43 @@ describe('SessionRouter', () => { tokenBalBefore = await token.balanceOf(sessionRouter); secondBalBefore = await token.balanceOf(SECOND); }); - it('should open session', async () => { + it('should open a session', async () => { await setTime(payoutStart + 10 * DAY); const { msg, signature } = await getProviderApproval(PROVIDER, SECOND, bidId); - await sessionRouter.connect(SECOND).openSession(wei(50), false, msg, signature); + await sessionRouter.connect(SECOND).openSession(SECOND, wei(50), false, msg, signature); + + const sessionId = await sessionRouter.getSessionId(SECOND, PROVIDER, bidId, 0); + const data = await sessionRouter.getSession(sessionId); + expect(data.user).to.eq(SECOND); + expect(data.bidId).to.eq(bidId); + expect(data.stake).to.eq(wei(50)); + expect(data.closeoutReceipt).to.eq('0x'); + expect(data.closeoutType).to.eq(0); + expect(data.providerWithdrawnAmount).to.eq(0); + expect(data.openedAt).to.eq(payoutStart + 10 * DAY + 1); + expect(data.endsAt).to.greaterThan(data.openedAt); + expect(data.closedAt).to.eq(0); + expect(data.isActive).to.eq(true); + expect(data.isDirectPaymentFromUser).to.eq(false); + + const tokenBalAfter = await token.balanceOf(sessionRouter); + expect(tokenBalAfter - tokenBalBefore).to.eq(wei(50)); + const secondBalAfter = await token.balanceOf(SECOND); + expect(secondBalBefore - secondBalAfter).to.eq(wei(50)); + + expect(await sessionRouter.getIsProviderApprovalUsed(msg)).to.eq(true); + expect(await sessionRouter.getUserSessions(SECOND, 0, 10)).to.deep.eq([sessionId]); + expect(await sessionRouter.getProviderSessions(PROVIDER, 0, 10)).to.deep.eq([sessionId]); + expect(await sessionRouter.getModelSessions(modelId, 0, 10)).to.deep.eq([sessionId]); + }); + it('should open a session from the delegatee address', async () => { + await delegateRegistry + .connect(SECOND) + .delegateContract(OWNER, providerRegistry, await providerRegistry.DELEGATION_RULES_SESSION(), true); + + await setTime(payoutStart + 10 * DAY); + const { msg, signature } = await getProviderApproval(PROVIDER, OWNER, bidId); + await sessionRouter.connect(OWNER).openSession(SECOND, wei(50), false, msg, signature); const sessionId = await sessionRouter.getSessionId(SECOND, PROVIDER, bidId, 0); const data = await sessionRouter.getSession(sessionId); @@ -189,13 +238,13 @@ describe('SessionRouter', () => { expect(await sessionRouter.getProviderSessions(PROVIDER, 0, 10)).to.deep.eq([sessionId]); expect(await sessionRouter.getModelSessions(modelId, 0, 10)).to.deep.eq([sessionId]); }); - it('should open two different session wit the same input params', async () => { + it('should open two different sessions wit the same input params', async () => { await setTime(payoutStart + 10 * DAY); const { msg: msg1, signature: signature1 } = await getProviderApproval(PROVIDER, SECOND, bidId); await setTime(payoutStart + 10 * DAY + 1); const { msg: msg2, signature: signature2 } = await getProviderApproval(PROVIDER, SECOND, bidId); - await sessionRouter.connect(SECOND).openSession(wei(50), false, msg1, signature1); - await sessionRouter.connect(SECOND).openSession(wei(50), false, msg2, signature2); + await sessionRouter.connect(SECOND).openSession(SECOND, wei(50), false, msg1, signature1); + await sessionRouter.connect(SECOND).openSession(SECOND, wei(50), false, msg2, signature2); const sessionId1 = await sessionRouter.getSessionId(SECOND, PROVIDER, bidId, 0); const sessionId2 = await sessionRouter.getSessionId(SECOND, PROVIDER, bidId, 1); @@ -213,19 +262,19 @@ describe('SessionRouter', () => { expect(await sessionRouter.getTotalSessions(PROVIDER)).to.eq(2); }); - it('should open session with max duration', async () => { + it('should open a session with max duration', async () => { await setTime(payoutStart + 10 * DAY); const { msg, signature } = await getProviderApproval(PROVIDER, SECOND, bidId); - await sessionRouter.connect(SECOND).openSession(wei(10000), false, msg, signature); + await sessionRouter.connect(SECOND).openSession(SECOND, wei(10000), false, msg, signature); const sessionId = await sessionRouter.getSessionId(SECOND, PROVIDER, bidId, 0); const data = await sessionRouter.getSession(sessionId); expect(data.endsAt).to.eq(Number(data.openedAt.toString()) + DAY); }); - it('should open session with valid amount for direct user payment', async () => { + it('should open a session with valid amount for direct user payment', async () => { await setTime(payoutStart + 10 * DAY); const { msg, signature } = await getProviderApproval(PROVIDER, SECOND, bidId); - await sessionRouter.connect(SECOND).openSession(wei(50), true, msg, signature); + await sessionRouter.connect(SECOND).openSession(SECOND, wei(50), true, msg, signature); const sessionId = await sessionRouter.getSessionId(SECOND, PROVIDER, bidId, 0); const data = await sessionRouter.getSession(sessionId); @@ -254,13 +303,13 @@ describe('SessionRouter', () => { it('should throw error when the approval is for an another user', async () => { const { msg, signature } = await getProviderApproval(PROVIDER, OWNER, bidId); await expect( - sessionRouter.connect(SECOND).openSession(wei(50), false, msg, signature), + sessionRouter.connect(SECOND).openSession(SECOND, wei(50), false, msg, signature), ).to.be.revertedWithCustomError(sessionRouter, 'SessionApprovedForAnotherUser'); }); it('should throw error when the approval is for an another chain', async () => { const { msg, signature } = await getProviderApproval(PROVIDER, SECOND, bidId, 1n); await expect( - sessionRouter.connect(SECOND).openSession(wei(50), false, msg, signature), + sessionRouter.connect(SECOND).openSession(SECOND, wei(50), false, msg, signature), ).to.be.revertedWithCustomError(sessionRouter, 'SesssionApprovedForAnotherChainId'); }); it('should throw error when an aprrove expired', async () => { @@ -268,35 +317,50 @@ describe('SessionRouter', () => { const { msg, signature } = await getProviderApproval(PROVIDER, SECOND, bidId); await setTime(payoutStart + 600); await expect( - sessionRouter.connect(SECOND).openSession(wei(50), false, msg, signature), + sessionRouter.connect(SECOND).openSession(SECOND, wei(50), false, msg, signature), ).to.be.revertedWithCustomError(sessionRouter, 'SesssionApproveExpired'); }); it('should throw error when the bid is not found', async () => { const { msg, signature } = await getProviderApproval(PROVIDER, SECOND, getHex(Buffer.from('1'))); await expect( - sessionRouter.connect(SECOND).openSession(wei(50), false, msg, signature), + sessionRouter.connect(SECOND).openSession(SECOND, wei(50), false, msg, signature), ).to.be.revertedWithCustomError(sessionRouter, 'SessionBidNotFound'); }); it('should throw error when the signature mismatch', async () => { const { msg, signature } = await getProviderApproval(OWNER, SECOND, bidId); await expect( - sessionRouter.connect(SECOND).openSession(wei(50), false, msg, signature), + sessionRouter.connect(SECOND).openSession(SECOND, wei(50), false, msg, signature), ).to.be.revertedWithCustomError(sessionRouter, 'SessionProviderSignatureMismatch'); }); it('should throw error when an approval duplicated', async () => { await setTime(payoutStart + 10 * DAY); const { msg, signature } = await getProviderApproval(PROVIDER, SECOND, bidId); - await sessionRouter.connect(SECOND).openSession(wei(50), false, msg, signature); + await sessionRouter.connect(SECOND).openSession(SECOND, wei(50), false, msg, signature); await expect( - sessionRouter.connect(SECOND).openSession(wei(50), false, msg, signature), + sessionRouter.connect(SECOND).openSession(SECOND, wei(50), false, msg, signature), ).to.be.revertedWithCustomError(sessionRouter, 'SessionDuplicateApproval'); }); it('should throw error when session duration too short', async () => { const { msg, signature } = await getProviderApproval(PROVIDER, SECOND, bidId); await expect( - sessionRouter.connect(SECOND).openSession(wei(50), false, msg, signature), + sessionRouter.connect(SECOND).openSession(SECOND, wei(50), false, msg, signature), ).to.be.revertedWithCustomError(sessionRouter, 'SessionTooShort'); }); + it('should throw error when open a session without delegation or with incorrect rules', async () => { + await setTime(payoutStart + 10 * DAY); + const { msg, signature } = await getProviderApproval(PROVIDER, OWNER, bidId); + + await expect( + sessionRouter.connect(OWNER).openSession(SECOND, wei(50), false, msg, signature), + ).to.be.revertedWithCustomError(providerRegistry, 'InsufficientRightsForOperation'); + + await delegateRegistry + .connect(SECOND) + .delegateContract(OWNER, providerRegistry, getHex(Buffer.from('123')), true); + await expect( + sessionRouter.connect(OWNER).openSession(SECOND, wei(50), false, msg, signature), + ).to.be.revertedWithCustomError(providerRegistry, 'InsufficientRightsForOperation'); + }); }); describe('#closeSession', () => { @@ -326,6 +390,36 @@ describe('SessionRouter', () => { const fundingBalAfter = await token.balanceOf(FUNDING); expect(fundingBalBefore - fundingBalAfter).to.eq(bidPricePerSecond * duration); }); + it('should close session and send rewards for the provider from the delegatee address, late closure', async () => { + const { sessionId, openedAt } = await _createSession(); + + const providerBalBefore = await token.balanceOf(PROVIDER); + const fundingBalBefore = await token.balanceOf(FUNDING); + + await delegateRegistry + .connect(SECOND) + .delegateContract(OWNER, providerRegistry, await providerRegistry.DELEGATION_RULES_SESSION(), true); + + await setTime(openedAt + 5 * DAY); + const { msg: receiptMsg } = await getReceipt(PROVIDER, sessionId, 0, 0); + const { signature: receiptSig } = await getReceipt(OWNER, sessionId, 0, 0); + await sessionRouter.connect(OWNER).closeSession(receiptMsg, receiptSig); + + const session = await sessionRouter.getSession(sessionId); + const duration = session.endsAt - session.openedAt; + + expect(session.closedAt).to.eq(openedAt + 5 * DAY + 1); + expect(session.isActive).to.eq(false); + expect(session.closeoutReceipt).to.eq(receiptMsg); + expect(session.providerWithdrawnAmount).to.eq(bidPricePerSecond * duration); + + expect((await sessionRouter.getProvider(PROVIDER)).limitPeriodEarned).to.eq(bidPricePerSecond * duration); + + const providerBalAfter = await token.balanceOf(PROVIDER); + expect(providerBalAfter - providerBalBefore).to.eq(bidPricePerSecond * duration); + const fundingBalAfter = await token.balanceOf(FUNDING); + expect(fundingBalBefore - fundingBalAfter).to.eq(bidPricePerSecond * duration); + }); it('should close session and send rewards for the provider, no dispute, early closure', async () => { const { sessionId, openedAt } = await _createSession(); const providerBalBefore = await token.balanceOf(PROVIDER); @@ -376,6 +470,36 @@ describe('SessionRouter', () => { const fundingBalAfter = await token.balanceOf(FUNDING); expect(fundingBalBefore - fundingBalAfter).to.eq(bidPricePerSecond * duration); }); + it('should close session and send rewards for the provider from the delegatee address, with dispute, early closure on the next day', async () => { + const { sessionId, secondsToDayEnd, openedAt } = await _createSession(); + + const providerBalBefore = await token.balanceOf(PROVIDER); + const fundingBalBefore = await token.balanceOf(FUNDING); + + await delegateRegistry + .connect(SECOND) + .delegateContract(OWNER, providerRegistry, await providerRegistry.DELEGATION_RULES_SESSION(), true); + + await setTime(openedAt + secondsToDayEnd + 1); + const { msg: receiptMsg } = await getReceipt(PROVIDER, sessionId, 0, 0); + const { signature: receiptSig } = await getReceipt(OWNER, sessionId, 0, 0); + await sessionRouter.connect(OWNER).closeSession(receiptMsg, receiptSig); + + const session = await sessionRouter.getSession(sessionId); + const duration = BigInt(secondsToDayEnd); + + expect(session.closedAt).to.eq(openedAt + secondsToDayEnd + 2); + expect(session.isActive).to.eq(false); + expect(session.closeoutReceipt).to.eq(receiptMsg); + expect(session.providerWithdrawnAmount).to.eq(bidPricePerSecond * duration); + + expect((await sessionRouter.getProvider(PROVIDER)).limitPeriodEarned).to.eq(bidPricePerSecond * duration); + + const providerBalAfter = await token.balanceOf(PROVIDER); + expect(providerBalAfter - providerBalBefore).to.eq(bidPricePerSecond * duration); + const fundingBalAfter = await token.balanceOf(FUNDING); + expect(fundingBalBefore - fundingBalAfter).to.eq(bidPricePerSecond * duration); + }); it('should close session and do not send rewards for the provider, with dispute, early closure on the same day', async () => { const { sessionId, secondsToDayEnd, openedAt } = await _createSession(); @@ -527,7 +651,7 @@ describe('SessionRouter', () => { const { msg: receiptMsg, signature: receiptSig } = await getReceipt(PROVIDER, getHex(Buffer.from('1')), 0, 0); await expect(sessionRouter.connect(SECOND).closeSession(receiptMsg, receiptSig)).to.be.revertedWithCustomError( sessionRouter, - 'OwnableUnauthorizedAccount', + 'InsufficientRightsForOperation', ); }); it('should throw error when the session already closed', async () => { @@ -594,6 +718,38 @@ describe('SessionRouter', () => { const fundingBalAfter = await token.balanceOf(FUNDING); expect(fundingBalBefore - fundingBalAfter).to.eq(bidPricePerSecond * duration); }); + it('should claim provider rewards from the delegatee address, remainder, with dispute, early closure on the next day', async () => { + const { sessionId, secondsToDayEnd, openedAt } = await _createSession(); + + await setTime(openedAt + secondsToDayEnd + 1); + const { msg: receiptMsg } = await getReceipt(PROVIDER, sessionId, 0, 0); + const { signature: receiptSig } = await getReceipt(OWNER, sessionId, 0, 0); + await sessionRouter.connect(SECOND).closeSession(receiptMsg, receiptSig); + + let session = await sessionRouter.getSession(sessionId); + const fullDuration = BigInt(secondsToDayEnd + 1); + const duration = 1n; + + const providerBalBefore = await token.balanceOf(PROVIDER); + const fundingBalBefore = await token.balanceOf(FUNDING); + + await delegateRegistry + .connect(PROVIDER) + .delegateContract(OWNER, providerRegistry, await providerRegistry.DELEGATION_RULES_SESSION(), true); + + await setTime(openedAt + secondsToDayEnd + 1 + 1 * DAY); + await sessionRouter.connect(OWNER).claimForProvider(sessionId); + session = await sessionRouter.getSession(sessionId); + + expect(session.providerWithdrawnAmount).to.eq(bidPricePerSecond * fullDuration); + expect(await sessionRouter.getProvidersTotalClaimed()).to.eq(bidPricePerSecond * fullDuration); + expect((await sessionRouter.getProvider(PROVIDER)).limitPeriodEarned).to.eq(bidPricePerSecond * fullDuration); + + const providerBalAfter = await token.balanceOf(PROVIDER); + expect(providerBalAfter - providerBalBefore).to.eq(bidPricePerSecond * duration); + const fundingBalAfter = await token.balanceOf(FUNDING); + expect(fundingBalBefore - fundingBalAfter).to.eq(bidPricePerSecond * duration); + }); it('should not claim provider rewards, when provider funds on lock', async () => { const { sessionId, secondsToDayEnd, openedAt } = await _createSession(); @@ -649,7 +805,7 @@ describe('SessionRouter', () => { await setTime(payoutStart + 10 * DAY); const { msg: msg1, signature: sig1 } = await getProviderApproval(PROVIDER, SECOND, bidId); - await sessionRouter.connect(SECOND).openSession(wei(50), false, msg1, sig1); + await sessionRouter.connect(SECOND).openSession(SECOND, wei(50), false, msg1, sig1); const sessionId1 = await sessionRouter.getSessionId(SECOND, PROVIDER, bidId, 0); await setTime(payoutStart + 20 * DAY); @@ -657,7 +813,7 @@ describe('SessionRouter', () => { await setTime(payoutStart + 30 * DAY); const { msg: msg2, signature: sig2 } = await getProviderApproval(PROVIDER, SECOND, bidId); - await sessionRouter.connect(SECOND).openSession(wei(50), false, msg2, sig2); + await sessionRouter.connect(SECOND).openSession(SECOND, wei(50), false, msg2, sig2); const sessionId2 = await sessionRouter.getSessionId(SECOND, PROVIDER, bidId, 1); await setTime(payoutStart + 40 * DAY); @@ -690,7 +846,7 @@ describe('SessionRouter', () => { await expect(sessionRouter.connect(SECOND).claimForProvider(sessionId)).to.be.revertedWithCustomError( sessionRouter, - 'OwnableUnauthorizedAccount', + 'InsufficientRightsForOperation', ); }); }); @@ -701,7 +857,7 @@ describe('SessionRouter', () => { await setTime(openedAt + 1 * DAY); const { msg, signature } = await getProviderApproval(PROVIDER, SECOND, bidId); - await sessionRouter.connect(SECOND).openSession(wei(50), false, msg, signature); + await sessionRouter.connect(SECOND).openSession(SECOND, wei(50), false, msg, signature); const sessionId1 = await sessionRouter.getSessionId(SECOND, PROVIDER, bidId, 0); await setTime(openedAt + 1 * DAY + 100); @@ -712,7 +868,38 @@ describe('SessionRouter', () => { const contractBalBefore = await token.balanceOf(sessionRouter); await setTime(openedAt + 3 * DAY + 2); - await sessionRouter.connect(SECOND).withdrawUserStakes(1); + await sessionRouter.connect(SECOND).withdrawUserStakes(SECOND, 1); + + const stakesOnHold = await sessionRouter.getUserStakesOnHold(SECOND, 1); + expect(stakesOnHold[0]).to.eq(0); + expect(stakesOnHold[1]).to.eq(0); + + const userBalAfter = await token.balanceOf(SECOND); + expect(userBalAfter - userBalBefore).to.greaterThan(0); + const contractBalAfter = await token.balanceOf(sessionRouter); + expect(contractBalBefore - contractBalAfter).to.greaterThan(0); + }); + it('should withdraw the user stake on hold from the delegatee address, one entity', async () => { + const openedAt = payoutStart + (payoutStart % DAY) + 10 * DAY - 201; + + await setTime(openedAt + 1 * DAY); + const { msg, signature } = await getProviderApproval(PROVIDER, SECOND, bidId); + await sessionRouter.connect(SECOND).openSession(SECOND, wei(50), false, msg, signature); + const sessionId1 = await sessionRouter.getSessionId(SECOND, PROVIDER, bidId, 0); + + await setTime(openedAt + 1 * DAY + 100); + const { msg: receiptMsg, signature: receiptSig } = await getReceipt(PROVIDER, sessionId1, 0, 0); + await sessionRouter.connect(SECOND).closeSession(receiptMsg, receiptSig); + + const userBalBefore = await token.balanceOf(SECOND); + const contractBalBefore = await token.balanceOf(sessionRouter); + + await delegateRegistry + .connect(SECOND) + .delegateContract(OWNER, providerRegistry, await providerRegistry.DELEGATION_RULES_SESSION(), true); + + await setTime(openedAt + 3 * DAY + 2); + await sessionRouter.connect(OWNER).withdrawUserStakes(SECOND, 1); const stakesOnHold = await sessionRouter.getUserStakesOnHold(SECOND, 1); expect(stakesOnHold[0]).to.eq(0); @@ -728,7 +915,7 @@ describe('SessionRouter', () => { await setTime(openedAt + 1 * DAY); const { msg: msg1, signature: sig1 } = await getProviderApproval(PROVIDER, SECOND, bidId); - await sessionRouter.connect(SECOND).openSession(wei(50), false, msg1, sig1); + await sessionRouter.connect(SECOND).openSession(SECOND, wei(50), false, msg1, sig1); const sessionId1 = await sessionRouter.getSessionId(SECOND, PROVIDER, bidId, 0); await setTime(openedAt + 1 * DAY + 500); @@ -737,7 +924,7 @@ describe('SessionRouter', () => { await setTime(openedAt + 3 * DAY); const { msg: msg2, signature: sig2 } = await getProviderApproval(PROVIDER, SECOND, bidId); - await sessionRouter.connect(SECOND).openSession(wei(50), false, msg2, sig2); + await sessionRouter.connect(SECOND).openSession(SECOND, wei(50), false, msg2, sig2); const sessionId2 = await sessionRouter.getSessionId(SECOND, PROVIDER, bidId, 1); await setTime(openedAt + 3 * DAY + 500); @@ -752,7 +939,7 @@ describe('SessionRouter', () => { const contractBalBefore = await token.balanceOf(sessionRouter); await setTime(openedAt + 4 * DAY); - await sessionRouter.connect(SECOND).withdrawUserStakes(20); + await sessionRouter.connect(SECOND).withdrawUserStakes(SECOND, 20); const userBalAfter = await token.balanceOf(SECOND); expect(userBalAfter - userBalBefore).to.eq(stakesOnHold[0]); @@ -765,7 +952,7 @@ describe('SessionRouter', () => { // Open and close session #1 await setTime(openedAt + 1 * DAY); const { msg: msg1, signature: sig1 } = await getProviderApproval(PROVIDER, SECOND, bidId); - await sessionRouter.connect(SECOND).openSession(wei(50), false, msg1, sig1); + await sessionRouter.connect(SECOND).openSession(SECOND, wei(50), false, msg1, sig1); const sessionId1 = await sessionRouter.getSessionId(SECOND, PROVIDER, bidId, 0); await setTime(openedAt + 1 * DAY + 500); @@ -778,7 +965,7 @@ describe('SessionRouter', () => { // Open and close session #2 await setTime(openedAt + 3 * DAY); const { msg: msg2, signature: sig2 } = await getProviderApproval(PROVIDER, SECOND, bidId); - await sessionRouter.connect(SECOND).openSession(wei(50), false, msg2, sig2); + await sessionRouter.connect(SECOND).openSession(SECOND, wei(50), false, msg2, sig2); const sessionId2 = await sessionRouter.getSessionId(SECOND, PROVIDER, bidId, 1); await setTime(openedAt + 3 * DAY + 500); @@ -791,7 +978,7 @@ describe('SessionRouter', () => { // Open and close session #3 await setTime(openedAt + 5 * DAY); const { msg: msg3, signature: sig3 } = await getProviderApproval(PROVIDER, SECOND, bidId); - await sessionRouter.connect(SECOND).openSession(wei(50), false, msg3, sig3); + await sessionRouter.connect(SECOND).openSession(SECOND, wei(50), false, msg3, sig3); const sessionId3 = await sessionRouter.getSessionId(SECOND, PROVIDER, bidId, 2); await setTime(openedAt + 5 * DAY + 500); @@ -810,7 +997,7 @@ describe('SessionRouter', () => { let userBalBefore = await token.balanceOf(SECOND); let contractBalBefore = await token.balanceOf(sessionRouter); - await sessionRouter.connect(SECOND).withdrawUserStakes(1); + await sessionRouter.connect(SECOND).withdrawUserStakes(SECOND, 1); let userBalAfter = await token.balanceOf(SECOND); expect(userBalAfter - userBalBefore).to.eq(onHoldAfterSession3); @@ -825,7 +1012,7 @@ describe('SessionRouter', () => { userBalBefore = await token.balanceOf(SECOND); contractBalBefore = await token.balanceOf(sessionRouter); - await sessionRouter.connect(SECOND).withdrawUserStakes(1); + await sessionRouter.connect(SECOND).withdrawUserStakes(SECOND, 1); userBalAfter = await token.balanceOf(SECOND); expect(userBalAfter - userBalBefore).to.eq(onHoldAfterSession2); @@ -840,7 +1027,7 @@ describe('SessionRouter', () => { userBalBefore = await token.balanceOf(SECOND); contractBalBefore = await token.balanceOf(sessionRouter); - await sessionRouter.connect(SECOND).withdrawUserStakes(1); + await sessionRouter.connect(SECOND).withdrawUserStakes(SECOND, 1); userBalAfter = await token.balanceOf(SECOND); expect(userBalAfter - userBalBefore).to.eq(onHoldAfterSession1); @@ -852,7 +1039,7 @@ describe('SessionRouter', () => { await setTime(openedAt + 1 * DAY); const { msg: msg1, signature: sig1 } = await getProviderApproval(PROVIDER, SECOND, bidId); - await sessionRouter.connect(SECOND).openSession(wei(50), false, msg1, sig1); + await sessionRouter.connect(SECOND).openSession(SECOND, wei(50), false, msg1, sig1); const sessionId1 = await sessionRouter.getSessionId(SECOND, PROVIDER, bidId, 0); await setTime(openedAt + 1 * DAY + 500); @@ -861,7 +1048,7 @@ describe('SessionRouter', () => { await setTime(openedAt + 3 * DAY); const { msg: msg2, signature: sig2 } = await getProviderApproval(PROVIDER, SECOND, bidId); - await sessionRouter.connect(SECOND).openSession(wei(50), false, msg2, sig2); + await sessionRouter.connect(SECOND).openSession(SECOND, wei(50), false, msg2, sig2); const sessionId2 = await sessionRouter.getSessionId(SECOND, PROVIDER, bidId, 1); await setTime(openedAt + 3 * DAY + 500); @@ -876,7 +1063,7 @@ describe('SessionRouter', () => { const userBalBefore = await token.balanceOf(SECOND); const contractBalBefore = await token.balanceOf(sessionRouter); - await sessionRouter.connect(SECOND).withdrawUserStakes(20); + await sessionRouter.connect(SECOND).withdrawUserStakes(SECOND, 20); const userBalAfter = await token.balanceOf(SECOND); expect(userBalAfter - userBalBefore).to.eq(stakesOnHold[0]); @@ -888,11 +1075,11 @@ describe('SessionRouter', () => { await setTime(openedAt + 1 * DAY); const { msg: msg1, signature: sig1 } = await getProviderApproval(PROVIDER, SECOND, bidId); - await sessionRouter.connect(SECOND).openSession(wei(50), false, msg1, sig1); + await sessionRouter.connect(SECOND).openSession(SECOND, wei(50), false, msg1, sig1); const sessionId1 = await sessionRouter.getSessionId(SECOND, PROVIDER, bidId, 0); const { msg: msg2, signature: sig2 } = await getProviderApproval(PROVIDER, SECOND, bidId); - await sessionRouter.connect(SECOND).openSession(wei(50), false, msg2, sig2); + await sessionRouter.connect(SECOND).openSession(SECOND, wei(50), false, msg2, sig2); const sessionId2 = await sessionRouter.getSessionId(SECOND, PROVIDER, bidId, 1); await setTime(openedAt + 1 * DAY + 500); @@ -903,13 +1090,13 @@ describe('SessionRouter', () => { const { msg: receiptMsg2, signature: receiptSig2 } = await getReceipt(PROVIDER, sessionId2, 0, 0); await sessionRouter.connect(SECOND).closeSession(receiptMsg2, receiptSig2); - await expect(sessionRouter.connect(SECOND).withdrawUserStakes(20)).to.be.revertedWithCustomError( + await expect(sessionRouter.connect(SECOND).withdrawUserStakes(SECOND, 20)).to.be.revertedWithCustomError( sessionRouter, 'SessionUserAmountToWithdrawIsZero', ); }); it('should throw error when amount of itterations are zero', async () => { - await expect(sessionRouter.connect(SECOND).withdrawUserStakes(0)).to.be.revertedWithCustomError( + await expect(sessionRouter.connect(SECOND).withdrawUserStakes(SECOND, 0)).to.be.revertedWithCustomError( sessionRouter, 'SessionUserAmountToWithdrawIsZero', ); @@ -928,7 +1115,7 @@ describe('SessionRouter', () => { await setTime(openedAt); const { msg, signature } = await getProviderApproval(PROVIDER, SECOND, bidId); - await sessionRouter.connect(SECOND).openSession(wei(50), isDirectPaymentFromUser, msg, signature); + await sessionRouter.connect(SECOND).openSession(SECOND, wei(50), isDirectPaymentFromUser, msg, signature); return { sessionId: await sessionRouter.getSessionId(SECOND, PROVIDER, bidId, 0), diff --git a/smart-contracts/test/helpers/deployers/diamond/facets/delegation.ts b/smart-contracts/test/helpers/deployers/diamond/facets/delegation.ts new file mode 100644 index 00000000..f54cb91d --- /dev/null +++ b/smart-contracts/test/helpers/deployers/diamond/facets/delegation.ts @@ -0,0 +1,31 @@ +import { Fragment } from 'ethers'; +import { ethers } from 'hardhat'; + +import { Delegation, IDelegation__factory, LumerinDiamond } from '@/generated-types/ethers'; +import { DelegateRegistry } from '@/generated-types/ethers/contracts/mock/delegate-registry/src'; +import { FacetAction } from '@/test/helpers/deployers/diamond/lumerin-diamond'; + +export const deployFacetDelegation = async ( + diamond: LumerinDiamond, + delegateRegistry: DelegateRegistry, +): Promise => { + let facet: Delegation; + + const factory = await ethers.getContractFactory('Delegation'); + facet = await factory.deploy(); + + await diamond['diamondCut((address,uint8,bytes4[])[])']([ + { + facetAddress: facet, + action: FacetAction.Add, + functionSelectors: IDelegation__factory.createInterface() + .fragments.filter(Fragment.isFunction) + .map((f) => f.selector), + }, + ]); + + facet = facet.attach(diamond.target) as Delegation; + await facet.__Delegation_init(delegateRegistry); + + return facet; +}; diff --git a/smart-contracts/test/helpers/deployers/diamond/index.ts b/smart-contracts/test/helpers/deployers/diamond/index.ts index 36c74670..53aedb86 100644 --- a/smart-contracts/test/helpers/deployers/diamond/index.ts +++ b/smart-contracts/test/helpers/deployers/diamond/index.ts @@ -1,3 +1,4 @@ +export * from './facets/delegation'; export * from './facets/model-registry'; export * from './facets/marketplace'; export * from './facets/provider-registry'; diff --git a/smart-contracts/test/helpers/deployers/mock/delegate-registry/delegate-registry.ts b/smart-contracts/test/helpers/deployers/mock/delegate-registry/delegate-registry.ts new file mode 100644 index 00000000..9fee3f6a --- /dev/null +++ b/smart-contracts/test/helpers/deployers/mock/delegate-registry/delegate-registry.ts @@ -0,0 +1,10 @@ +import { ethers } from 'hardhat'; + +import { DelegateRegistry } from '@/generated-types/ethers'; + +export const deployDelegateRegistry = async (): Promise => { + const factory = await ethers.getContractFactory('DelegateRegistry'); + const contract = await factory.deploy(); + + return contract; +}; diff --git a/smart-contracts/test/helpers/deployers/mock/index.ts b/smart-contracts/test/helpers/deployers/mock/index.ts index cfcb186e..e63b68ea 100644 --- a/smart-contracts/test/helpers/deployers/mock/index.ts +++ b/smart-contracts/test/helpers/deployers/mock/index.ts @@ -1 +1,2 @@ +export * from './delegate-registry/delegate-registry'; export * from './tokens/morpheus-token'; From 2c6527a322fcfe315504f7f868f4d0f42dd82710 Mon Sep 17 00:00:00 2001 From: shev Date: Tue, 12 Nov 2024 12:25:57 +0100 Subject: [PATCH 117/260] feat: initial implementation --- proxy-router/cmd/main.go | 15 +- proxy-router/internal/aiengine/ai_engine.go | 269 ++---------------- proxy-router/internal/aiengine/history.go | 65 +++++ proxy-router/internal/aiengine/interface.go | 24 ++ proxy-router/internal/aiengine/interfaces.go | 11 - proxy-router/internal/aiengine/openai.go | 139 +++++++++ proxy-router/internal/aiengine/prodia.go | 162 +++++++++++ proxy-router/internal/aiengine/remote.go | 29 ++ .../file_chat_storage.go} | 89 ++---- .../genericchatstorage/chat_requests.go | 53 ++++ .../genericchatstorage}/chat_responses.go | 2 +- .../genericchatstorage/interface.go} | 92 +++--- proxy-router/internal/chatstorage/structs.go | 1 + proxy-router/internal/completion/interface.go | 20 ++ proxy-router/internal/config/config.go | 4 - proxy-router/internal/lib/hash.go | 8 + .../internal/proxyapi/controller_http.go | 197 +++---------- .../internal/proxyapi/proxy_receiver.go | 50 +--- .../internal/proxyapi/proxy_sender.go | 136 ++++----- 19 files changed, 728 insertions(+), 638 deletions(-) create mode 100644 proxy-router/internal/aiengine/history.go create mode 100644 proxy-router/internal/aiengine/interface.go create mode 100644 proxy-router/internal/aiengine/openai.go create mode 100644 proxy-router/internal/aiengine/prodia.go create mode 100644 proxy-router/internal/aiengine/remote.go rename proxy-router/internal/{proxyapi/chat_storage.go => chatstorage/file_chat_storage.go} (65%) create mode 100644 proxy-router/internal/chatstorage/genericchatstorage/chat_requests.go rename proxy-router/internal/{proxyapi => chatstorage/genericchatstorage}/chat_responses.go (99%) rename proxy-router/internal/{proxyapi/chat_requests.go => chatstorage/genericchatstorage/interface.go} (50%) create mode 100644 proxy-router/internal/chatstorage/structs.go create mode 100644 proxy-router/internal/completion/interface.go diff --git a/proxy-router/cmd/main.go b/proxy-router/cmd/main.go index 098e3f8f..a555ac9e 100644 --- a/proxy-router/cmd/main.go +++ b/proxy-router/cmd/main.go @@ -15,6 +15,7 @@ import ( "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/aiengine" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/apibus" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/blockchainapi" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/chatstorage" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/config" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/handlers/httphandlers" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" @@ -267,27 +268,21 @@ func start() error { } } + chatStoragePath := filepath.Join(cfg.Proxy.StoragePath, "chats") + chatStorage := chatstorage.NewChatStorage(chatStoragePath) + sessionRouter := registries.NewSessionRouter(*cfg.Marketplace.DiamondContractAddress, ethClient, log) marketplace := registries.NewMarketplace(*cfg.Marketplace.DiamondContractAddress, ethClient, log) sessionRepo := sessionrepo.NewSessionRepositoryCached(sessionStorage, sessionRouter, marketplace) proxyRouterApi := proxyapi.NewProxySender(chainID, publicUrl, wallet, contractLogStorage, sessionStorage, sessionRepo, log) blockchainApi := blockchainapi.NewBlockchainService(ethClient, *cfg.Marketplace.DiamondContractAddress, *cfg.Marketplace.MorTokenAddress, cfg.Blockchain.ExplorerApiUrl, wallet, proxyRouterApi, sessionRepo, providerAllowList, proxyLog, cfg.Blockchain.EthLegacyTx) proxyRouterApi.SetSessionService(blockchainApi) - aiEngine := aiengine.NewAiEngine(cfg.AIEngine.OpenAIBaseURL, cfg.AIEngine.OpenAIKey, modelConfigLoader, log) + aiEngine := aiengine.NewAiEngine(proxyRouterApi, chatStorage, modelConfigLoader, log) eventListener := blockchainapi.NewEventsListener(sessionRepo, sessionRouter, wallet, logWatcher, log) blockchainController := blockchainapi.NewBlockchainController(blockchainApi, log) - var chatStorage proxyapi.ChatStorageInterface - if cfg.Proxy.StoreChatContext { - chatStoragePath := filepath.Join(cfg.Proxy.StoragePath, "chats") - chatStorage = proxyapi.NewChatStorage(chatStoragePath) - } else { - log.Warnf("chat context storage is disabled") - chatStorage = proxyapi.NewNoOpChatStorage() - } - ethConnectionValidator := system.NewEthConnectionValidator(*big.NewInt(int64(cfg.Blockchain.ChainID))) proxyController := proxyapi.NewProxyController(proxyRouterApi, aiEngine, chatStorage) walletController := walletapi.NewWalletController(wallet) diff --git a/proxy-router/internal/aiengine/ai_engine.go b/proxy-router/internal/aiengine/ai_engine.go index 5d8c7e3f..4882f8ff 100644 --- a/proxy-router/internal/aiengine/ai_engine.go +++ b/proxy-router/internal/aiengine/ai_engine.go @@ -1,32 +1,21 @@ package aiengine import ( - "bufio" - "bytes" "context" - "encoding/json" "errors" - "io" - "net/http" - "strings" - "time" "fmt" - c "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal" - constants "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal" + gcs "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/chatstorage/genericchatstorage" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/config" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" - "github.com/gin-gonic/gin" - "github.com/sashabaranov/go-openai" - api "github.com/sashabaranov/go-openai" + "github.com/ethereum/go-ethereum/common" ) type AiEngine struct { - client *api.Client - baseURL string - apiKey string modelsConfigLoader *config.ModelConfigLoader + service ProxyService + storage gcs.ChatStorageInterface log lib.ILogger } @@ -38,246 +27,38 @@ var ( ErrJobFailed = errors.New("job failed") ) -func NewAiEngine(apiBaseURL, apiKey string, modelsConfigLoader *config.ModelConfigLoader, log lib.ILogger) *AiEngine { +func NewAiEngine(service ProxyService, storage gcs.ChatStorageInterface, modelsConfigLoader *config.ModelConfigLoader, log lib.ILogger) *AiEngine { return &AiEngine{ modelsConfigLoader: modelsConfigLoader, - baseURL: apiBaseURL, - apiKey: apiKey, - client: api.NewClientWithConfig(api.ClientConfig{ - BaseURL: apiBaseURL, - APIType: api.APITypeOpenAI, - HTTPClient: &http.Client{}, - }), - log: log, + service: service, + storage: storage, + log: log, } } -func (a *AiEngine) Prompt(ctx context.Context, request *api.ChatCompletionRequest) (*api.ChatCompletionResponse, error) { - response, err := a.client.CreateChatCompletion( - ctx, - *request, - ) - - if err != nil { - err = lib.WrapError(ErrChatCompletion, err) - a.log.Error(err) - return nil, err - } - return &response, nil -} - -func (a *AiEngine) PromptProdiaImage(ctx context.Context, request *ProdiaGenerationRequest, chunkCallback CompletionCallback) error { - url := request.ApiUrl - apiKey := request.ApiKey - - body := map[string]string{ - "model": request.Model, - "prompt": request.Prompt, - } - payload, err := json.Marshal(body) - if err != nil { - err = lib.WrapError(ErrImageGenerationInvalidRequest, err) - a.log.Error(err) - return err - } - - req, _ := http.NewRequest("POST", url, bytes.NewReader(payload)) - - req.Header.Add("accept", constants.CONTENT_TYPE_JSON) - req.Header.Add("content-type", constants.CONTENT_TYPE_JSON) - req.Header.Add("X-Prodia-Key", apiKey) - - res, err := http.DefaultClient.Do(req) - if err != nil { - err = lib.WrapError(ErrImageGenerationRequest, err) - a.log.Error(err) - return err - } - - defer res.Body.Close() - response, _ := io.ReadAll(res.Body) - - bodyStr := string(response) - if strings.Contains(bodyStr, "Invalid Generation Parameters") { - return ErrImageGenerationInvalidRequest - } - - result := ProdiaGenerationResult{} - err = json.Unmarshal(response, &result) - if err != nil { - err = lib.WrapError(ErrImageGenerationRequest, err) - a.log.Error(err) - return err - } - - job, err := a.waitJobResult(ctx, result.Job, apiKey) - if err != nil { - err = lib.WrapError(ErrImageGenerationRequest, err) - a.log.Error(err) - return err - } - - return chunkCallback(job) -} - -func (a *AiEngine) waitJobResult(ctx context.Context, jobID string, apiKey string) (*ProdiaGenerationResult, error) { - url := fmt.Sprintf("https://api.prodia.com/v1/job/%s", jobID) - - req, err := http.NewRequestWithContext(ctx, "GET", url, nil) - if err != nil { - err = lib.WrapError(ErrJobCheckRequest, err) - a.log.Error(err) - return nil, err - } - - req.Header.Add("accept", constants.CONTENT_TYPE_JSON) - req.Header.Add("X-Prodia-Key", apiKey) - - res, err := http.DefaultClient.Do(req) - if err != nil { - err = lib.WrapError(ErrJobCheckRequest, err) - a.log.Error(err) - return nil, err - } - - defer res.Body.Close() - body, err := io.ReadAll(res.Body) - if err != nil { - err = lib.WrapError(ErrJobCheckRequest, err) - a.log.Error(err) - return nil, err - } - - var result ProdiaGenerationResult - err = json.Unmarshal(body, &result) - if err != nil { - err = lib.WrapError(ErrJobCheckRequest, err) - a.log.Error(err) - return nil, err - } - - if result.Status == "succeeded" { - return &result, nil - } - - if result.Status == "failed" { - return nil, ErrJobFailed - } - - select { - case <-ctx.Done(): - return nil, ctx.Err() - case <-time.After(1 * time.Second): - } - return a.waitJobResult(ctx, jobID, apiKey) -} - -func (a *AiEngine) PromptStream(ctx context.Context, request *api.ChatCompletionRequest, chunkCallback CompletionCallback) (*api.ChatCompletionStreamResponse, error) { - resp, err := a.requestChatCompletionStream(ctx, request, chunkCallback) - - if err != nil { - err = lib.WrapError(ErrChatCompletion, err) - a.log.Error(err) - return nil, err - } - - return resp, nil -} - -func (a *AiEngine) PromptCb(ctx *gin.Context, body *openai.ChatCompletionRequest) (interface{}, error) { - chunks := []interface{}{} - if body.Stream { - response, err := a.PromptStream(ctx, body, func(response interface{}) error { - marshalledResponse, err := json.Marshal(response) - if err != nil { - return err - } - - ctx.Writer.Header().Set(c.HEADER_CONTENT_TYPE, c.CONTENT_TYPE_EVENT_STREAM) - - _, err = ctx.Writer.Write([]byte(fmt.Sprintf("data: %s\n\n", marshalledResponse))) - if err != nil { - return err - } - - chunks = append(chunks, response) - - ctx.Writer.Flush() - return nil - }) - - if err != nil { - ctx.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) - return "", err +func (a *AiEngine) GetAdapter(ctx context.Context, chatID, modelID, sessionID common.Hash, persistHistory bool) (AIEngineStream, error) { + var engine AIEngineStream + if sessionID == (common.Hash{}) { + // local model + modelConfig := a.modelsConfigLoader.ModelConfigFromID(modelID.Hex()) + if modelConfig == nil { + return nil, fmt.Errorf("model not found: %s", modelID.Hex()) } - - ctx.JSON(http.StatusOK, response) - return chunks, nil - } else { - response, err := a.Prompt(ctx, body) - if err != nil { - ctx.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) - return "", err - } - chunks = append(chunks, response) - ctx.JSON(http.StatusOK, response) - return chunks, nil - } -} - -func (a *AiEngine) requestChatCompletionStream(ctx context.Context, request *api.ChatCompletionRequest, callback CompletionCallback) (*api.ChatCompletionStreamResponse, error) { - requestBody, err := json.Marshal(request) - if err != nil { - return nil, fmt.Errorf("failed to encode request: %v", err) - } - - req, err := http.NewRequestWithContext(ctx, "POST", a.baseURL+"/chat/completions", bytes.NewReader(requestBody)) - if err != nil { - return nil, fmt.Errorf("failed to create request: %v", err) - } - - if a.apiKey != "" { - req.Header.Set(c.HEADER_AUTHORIZATION, fmt.Sprintf("%s %s", c.BEARER, a.apiKey)) - } - req.Header.Set(c.HEADER_CONTENT_TYPE, c.CONTENT_TYPE_JSON) - req.Header.Set(c.HEADER_ACCEPT, c.CONTENT_TYPE_EVENT_STREAM) - req.Header.Set(c.HEADER_CONNECTION, c.CONNECTION_KEEP_ALIVE) - - client := &http.Client{} - resp, err := client.Do(req) - if err != nil { - return nil, fmt.Errorf("failed to send request: %v", err) - } - defer resp.Body.Close() - - scanner := bufio.NewScanner(resp.Body) - for scanner.Scan() { - line := scanner.Text() - - if strings.HasPrefix(line, "data: ") { - data := line[6:] // Skip the "data: " prefix - var completion api.ChatCompletionStreamResponse - if err := json.Unmarshal([]byte(data), &completion); err != nil { - if strings.Index(data, "[DONE]") != -1 { - a.log.Debugf("reached end of the response") - } else { - a.log.Errorf("error decoding response: %s\n%s", err, line) - } - continue - } - // Call the callback function with the unmarshalled completion - err := callback(&completion) - if err != nil { - return nil, fmt.Errorf("callback failed: %v", err) - } + var ok bool + engine, ok = ApiAdapterFactory(modelConfig.ApiType, modelConfig.ModelName, modelConfig.ApiURL, modelConfig.ApiKey, a.log) + if !ok { + return nil, fmt.Errorf("api adapter not found: %s", modelConfig.ApiType) } + } else { + // remote model + engine = &RemoteModel{sessionID: sessionID, service: a.service} } - if err := scanner.Err(); err != nil { - return nil, fmt.Errorf("error reading stream: %v", err) + if persistHistory { + engine = NewHistory(engine, a.storage, chatID, modelID, a.log) } - return nil, err + return engine, nil } func (a *AiEngine) GetModelsConfig() ([]string, []config.ModelConfig) { diff --git a/proxy-router/internal/aiengine/history.go b/proxy-router/internal/aiengine/history.go new file mode 100644 index 00000000..4cef1c5e --- /dev/null +++ b/proxy-router/internal/aiengine/history.go @@ -0,0 +1,65 @@ +package aiengine + +import ( + "context" + "time" + + gcs "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/chatstorage/genericchatstorage" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/completion" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" + "github.com/ethereum/go-ethereum/common" + "github.com/sashabaranov/go-openai" +) + +type History struct { + engine AIEngineStream + storage gcs.ChatStorageInterface + chatID common.Hash + modelID common.Hash + log lib.ILogger +} + +func NewHistory(engine AIEngineStream, storage gcs.ChatStorageInterface, chatID, modelID common.Hash, log lib.ILogger) *History { + return &History{ + engine: engine, + storage: storage, + chatID: chatID, + modelID: modelID, + log: log, + } +} + +func (h *History) Prompt(ctx context.Context, prompt *openai.ChatCompletionRequest, cb completion.CompletionCallback) error { + isLocal := h.engine.ApiType() != "remote" + completions := make([]*completion.ChunkImpl, 0) + startTime := time.Now() + + history, err := h.storage.LoadChatFromFile(h.chatID.Hex()) + if err != nil { + h.log.Warnf("failed to load chat history: %v", err) + } + + promptWithHistory := history.AppendChatHistory(prompt) + + err = h.engine.Prompt(ctx, promptWithHistory, func(ctx context.Context, completion *completion.ChunkImpl) error { + completions = append(completions, completion) + return cb(ctx, completion) + }) + if err != nil { + return err + } + endTime := time.Now() + + err = h.storage.StorePromptResponseToFile(h.chatID.Hex(), isLocal, h.modelID.Hex(), promptWithHistory, completions, startTime, endTime) + if err != nil { + h.log.Errorf("failed to store prompt response: %v", err) + } + + return err +} + +func (h *History) ApiType() string { + return h.engine.ApiType() +} + +var _ AIEngineStream = &History{} diff --git a/proxy-router/internal/aiengine/interface.go b/proxy-router/internal/aiengine/interface.go new file mode 100644 index 00000000..cc1d97de --- /dev/null +++ b/proxy-router/internal/aiengine/interface.go @@ -0,0 +1,24 @@ +package aiengine + +import ( + "context" + + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/completion" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" + "github.com/sashabaranov/go-openai" +) + +type AIEngineStream interface { + Prompt(ctx context.Context, prompt *openai.ChatCompletionRequest, cb completion.CompletionCallback) error + ApiType() string +} + +func ApiAdapterFactory(apiType string, modelName string, url string, apikey string, log lib.ILogger) (AIEngineStream, bool) { + switch apiType { + case "openai": + return NewOpenAIEngine(modelName, url, apikey, log), true + case "prodia": + return NewProdiaEngine(modelName, url, apikey, log), true + } + return nil, false +} diff --git a/proxy-router/internal/aiengine/interfaces.go b/proxy-router/internal/aiengine/interfaces.go index 8b454dfe..1f7c4023 100644 --- a/proxy-router/internal/aiengine/interfaces.go +++ b/proxy-router/internal/aiengine/interfaces.go @@ -1,14 +1,5 @@ package aiengine -import ( - "net/http" -) - -type ResponderFlusher interface { - http.ResponseWriter - http.Flusher -} - type ProdiaGenerationResult struct { Job string `json:"job"` Status string `json:"status"` @@ -22,8 +13,6 @@ type ProdiaGenerationRequest struct { ApiKey string `json:"apiKey"` } -type CompletionCallback func(completion interface{}) error - type ProdiaImageGenerationCallback func(completion *ProdiaGenerationResult) error type LocalModel struct { diff --git a/proxy-router/internal/aiengine/openai.go b/proxy-router/internal/aiengine/openai.go new file mode 100644 index 00000000..b7357ea7 --- /dev/null +++ b/proxy-router/internal/aiengine/openai.go @@ -0,0 +1,139 @@ +package aiengine + +import ( + "bufio" + "bytes" + "context" + "encoding/json" + "fmt" + "io" + "net/http" + "strings" + + c "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/completion" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" + "github.com/sashabaranov/go-openai" +) + +type OpenAI struct { + baseURL string + apiKey string + modelName string + client *http.Client + log lib.ILogger +} + +func NewOpenAIEngine(modelName, baseURL, apiKey string, log lib.ILogger) *OpenAI { + return &OpenAI{ + baseURL: baseURL, + modelName: modelName, + apiKey: apiKey, + client: &http.Client{}, + log: log, + } +} + +func (a *OpenAI) Prompt(ctx context.Context, compl *openai.ChatCompletionRequest, cb completion.CompletionCallback) error { + compl.Model = a.modelName + requestBody, err := json.Marshal(compl) + if err != nil { + return fmt.Errorf("failed to encode request: %v", err) + } + + req, err := http.NewRequestWithContext(ctx, "POST", a.baseURL+"/chat/completions", bytes.NewReader(requestBody)) + if err != nil { + return fmt.Errorf("failed to create request: %v", err) + } + + if a.apiKey != "" { + req.Header.Set(c.HEADER_AUTHORIZATION, fmt.Sprintf("%s %s", c.BEARER, a.apiKey)) + } + req.Header.Set(c.HEADER_CONTENT_TYPE, c.CONTENT_TYPE_JSON) + req.Header.Set(c.HEADER_CONNECTION, c.CONNECTION_KEEP_ALIVE) + if compl.Stream { + req.Header.Set(c.HEADER_ACCEPT, c.CONTENT_TYPE_EVENT_STREAM) + } + resp, err := a.client.Do(req) + if err != nil { + return fmt.Errorf("failed to send request: %v", err) + } + defer resp.Body.Close() + + contentType := resp.Header.Get(c.HEADER_CONTENT_TYPE) + if contentType == c.CONTENT_TYPE_EVENT_STREAM { + return a.readStream(ctx, resp.Body, cb) + } + + return a.readResponse(ctx, resp.Body, cb) +} + +func (a *OpenAI) readResponse(ctx context.Context, body io.Reader, cb completion.CompletionCallback) error { + var compl openai.ChatCompletionResponse + if err := json.NewDecoder(body).Decode(&compl); err != nil { + return fmt.Errorf("failed to decode response: %v", err) + } + + chunk := &completion.ChunkImpl{ + Data: compl, + IsStreaming: false, + Tokens: len(compl.Choices), + } + err := cb(ctx, chunk) + if err != nil { + return fmt.Errorf("callback failed: %v", err) + } + + return nil +} + +func (a *OpenAI) readStream(ctx context.Context, body io.Reader, cb completion.CompletionCallback) error { + scanner := bufio.NewScanner(body) + for scanner.Scan() { + line := scanner.Text() + + if strings.HasPrefix(line, StreamDataPrefix) { + data := line[len(StreamDataPrefix):] // Skip the "data: " prefix + var compl openai.ChatCompletionStreamResponse + if err := json.Unmarshal([]byte(data), &compl); err != nil { + if isStreamFinished(data) { + a.log.Debugf("reached end of the response") + return nil + } else { + return fmt.Errorf("error decoding response: %s\n%s", err, line) + } + } + // Call the callback function with the unmarshalled completion + chunk := &completion.ChunkImpl{ + Data: compl, + IsStreaming: true, + Tokens: len(compl.Choices), + } + err := cb(ctx, chunk) + if err != nil { + return fmt.Errorf("callback failed: %v", err) + } + } + } + + if err := scanner.Err(); err != nil { + return fmt.Errorf("error reading stream: %v", err) + } + + return nil +} + +func (a *OpenAI) ApiType() string { + return "openai" +} + +func isStreamFinished(data string) bool { + return strings.Index(data, StreamDone) != -1 +} + +const ( + StreamDone = "[DONE]" + StreamDataPrefix = "data: " +) + +var _ AIEngineStream = &OpenAI{} diff --git a/proxy-router/internal/aiengine/prodia.go b/proxy-router/internal/aiengine/prodia.go new file mode 100644 index 00000000..0b924f3c --- /dev/null +++ b/proxy-router/internal/aiengine/prodia.go @@ -0,0 +1,162 @@ +package aiengine + +import ( + "bytes" + "context" + "encoding/json" + "fmt" + "io" + "net/http" + "strings" + "time" + + constants "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/completion" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" + "github.com/sashabaranov/go-openai" +) + +type Prodia struct { + modelName string + apiURL string + apiKey string + + log lib.ILogger +} + +const HEADER_PRODIA_KEY = "X-Prodia-Key" + +func NewProdiaEngine(modelName, apiURL, apiKey string, log lib.ILogger) *Prodia { + return &Prodia{ + modelName: modelName, + apiURL: apiURL, + apiKey: apiKey, + log: log, + } +} + +func (s *Prodia) Prompt(ctx context.Context, prompt *openai.ChatCompletionRequest, cb completion.CompletionCallback) error { + body := map[string]string{ + "model": s.modelName, + "prompt": prompt.Messages[0].Content, + } + payload, err := json.Marshal(body) + if err != nil { + err = lib.WrapError(ErrImageGenerationInvalidRequest, err) + s.log.Error(err) + return err + } + + req, err := http.NewRequest("POST", s.apiURL, bytes.NewReader(payload)) + if err != nil { + err = lib.WrapError(ErrImageGenerationRequest, err) + s.log.Error(err) + } + + req.Header.Add(constants.HEADER_ACCEPT, constants.CONTENT_TYPE_JSON) + req.Header.Add(constants.HEADER_CONTENT_TYPE, constants.CONTENT_TYPE_JSON) + req.Header.Add(HEADER_PRODIA_KEY, s.apiKey) + + res, err := http.DefaultClient.Do(req) + if err != nil { + err = lib.WrapError(ErrImageGenerationRequest, err) + s.log.Error(err) + return err + } + + defer res.Body.Close() + response, err := io.ReadAll(res.Body) + if err != nil { + err = lib.WrapError(ErrImageGenerationRequest, err) + s.log.Error(err) + return err + } + + bodyStr := string(response) + if strings.Contains(bodyStr, "Invalid Generation Parameters") { + return ErrImageGenerationInvalidRequest + } + + result := ProdiaGenerationResult{} + err = json.Unmarshal(response, &result) + if err != nil { + err = lib.WrapError(ErrImageGenerationRequest, err) + s.log.Error(err) + return err + } + + job, err := s.waitJobResult(ctx, result.Job) + if err != nil { + err = lib.WrapError(ErrImageGenerationRequest, err) + s.log.Error(err) + return err + } + + chunk := &completion.ChunkImpl{ + Data: job, + IsStreaming: false, + Type: completion.ChunkTypeImage, + Tokens: 1, + } + + return cb(ctx, chunk) +} + +func (s *Prodia) waitJobResult(ctx context.Context, jobID string) (*ProdiaGenerationResult, error) { + url := fmt.Sprintf("https://api.prodia.com/v1/job/%s", jobID) + + req, err := http.NewRequestWithContext(ctx, "GET", url, nil) + if err != nil { + err = lib.WrapError(ErrJobCheckRequest, err) + s.log.Error(err) + return nil, err + } + + req.Header.Add("accept", constants.CONTENT_TYPE_JSON) + req.Header.Add("X-Prodia-Key", s.apiKey) + + res, err := http.DefaultClient.Do(req) + if err != nil { + err = lib.WrapError(ErrJobCheckRequest, err) + s.log.Error(err) + return nil, err + } + + defer res.Body.Close() + body, err := io.ReadAll(res.Body) + if err != nil { + err = lib.WrapError(ErrJobCheckRequest, err) + s.log.Error(err) + return nil, err + } + + var result ProdiaGenerationResult + err = json.Unmarshal(body, &result) + if err != nil { + err = lib.WrapError(ErrJobCheckRequest, err) + s.log.Error(err) + return nil, err + } + + if result.Status == "succeeded" { + return &result, nil + } + + if result.Status == "failed" { + return nil, ErrJobFailed + } + + select { + case <-ctx.Done(): + return nil, ctx.Err() + case <-time.After(1 * time.Second): + } + + return s.waitJobResult(ctx, jobID) +} + +func (s *Prodia) ApiType() string { + return "prodia" +} + +var _ AIEngineStream = &Prodia{} diff --git a/proxy-router/internal/aiengine/remote.go b/proxy-router/internal/aiengine/remote.go new file mode 100644 index 00000000..fcf2ba3e --- /dev/null +++ b/proxy-router/internal/aiengine/remote.go @@ -0,0 +1,29 @@ +package aiengine + +import ( + "context" + + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/completion" + "github.com/ethereum/go-ethereum/common" + "github.com/sashabaranov/go-openai" +) + +type RemoteModel struct { + service ProxyService + sessionID common.Hash +} + +type ProxyService interface { + SendPromptV2(ctx context.Context, sessionID common.Hash, prompt *openai.ChatCompletionRequest, cb completion.CompletionCallback) (interface{}, error) +} + +func (p *RemoteModel) Prompt(ctx context.Context, prompt *openai.ChatCompletionRequest, cb completion.CompletionCallback) error { + _, err := p.service.SendPromptV2(ctx, p.sessionID, prompt, cb) + return err +} + +func (p *RemoteModel) ApiType() string { + return "remote" +} + +var _ AIEngineStream = &RemoteModel{} diff --git a/proxy-router/internal/proxyapi/chat_storage.go b/proxy-router/internal/chatstorage/file_chat_storage.go similarity index 65% rename from proxy-router/internal/proxyapi/chat_storage.go rename to proxy-router/internal/chatstorage/file_chat_storage.go index 3ab9aba4..07ff0c56 100644 --- a/proxy-router/internal/proxyapi/chat_storage.go +++ b/proxy-router/internal/chatstorage/file_chat_storage.go @@ -1,4 +1,4 @@ -package proxyapi +package chatstorage import ( "encoding/json" @@ -8,46 +8,20 @@ import ( "sync" "time" - "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/aiengine" + gcs "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/chatstorage/genericchatstorage" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/completion" "github.com/sashabaranov/go-openai" ) -type ChatStorageInterface interface { - LoadChatFromFile(chatID string) (*ChatHistory, error) - StorePromptResponseToFile(chatID string, isLocal bool, modelID string, prompt openai.ChatCompletionRequest, responses []interface{}, promptAt time.Time, responseAt time.Time) error - GetChats() []Chat - DeleteChat(chatID string) error - UpdateChatTitle(chatID string, title string) error -} - -type ChatHistory struct { - Title string `json:"title"` - ModelId string `json:"modelId"` - IsLocal bool `json:"isLocal"` - Messages []ChatMessage `json:"messages"` -} - -type ChatMessage struct { - Prompt OpenAiCompletitionRequest `json:"prompt"` - Response string `json:"response"` - PromptAt int64 `json:"promptAt"` - ResponseAt int64 `json:"responseAt"` - IsImageContent bool `json:"isImageContent"` -} -type Chat struct { - ChatID string `json:"chatId"` - ModelID string `json:"modelId"` - Title string `json:"title"` - IsLocal bool `json:"isLocal"` - CreatedAt int64 `json:"createdAt"` -} - // ChatStorage handles storing conversations to files. type ChatStorage struct { dirPath string // Directory path to store the files fileMutexes map[string]*sync.Mutex // Map to store mutexes for each file } +type Response interface { +} + // NewChatStorage creates a new instance of ChatStorage. func NewChatStorage(dirPath string) *ChatStorage { return &ChatStorage{ @@ -57,7 +31,7 @@ func NewChatStorage(dirPath string) *ChatStorage { } // StorePromptResponseToFile stores the prompt and response to a file. -func (cs *ChatStorage) StorePromptResponseToFile(identifier string, isLocal bool, modelId string, prompt openai.ChatCompletionRequest, responses []interface{}, promptAt time.Time, responseAt time.Time) error { +func (cs *ChatStorage) StorePromptResponseToFile(identifier string, isLocal bool, modelId string, prompt *openai.ChatCompletionRequest, responses []*completion.ChunkImpl, promptAt time.Time, responseAt time.Time) error { if err := os.MkdirAll(cs.dirPath, os.ModePerm); err != nil { return err } @@ -69,7 +43,7 @@ func (cs *ChatStorage) StorePromptResponseToFile(identifier string, isLocal bool cs.fileMutexes[filePath].Lock() defer cs.fileMutexes[filePath].Unlock() - var data ChatHistory + var data gcs.ChatHistory if _, err := os.Stat(filePath); err == nil { fileContent, err := os.ReadFile(filePath) if err != nil { @@ -80,34 +54,15 @@ func (cs *ChatStorage) StorePromptResponseToFile(identifier string, isLocal bool } } - response := "" - var isImageContent bool = false - for _, r := range responses { - switch v := r.(type) { - case ChatCompletionResponse: - response += fmt.Sprintf("%v", v.Choices[0].Delta.Content) - case *openai.ChatCompletionStreamResponse: - response += fmt.Sprintf("%v", v.Choices[0].Delta.Content) - case aiengine.ProdiaGenerationResult: - response += fmt.Sprintf("%v", v.ImageUrl) - isImageContent = true - case *aiengine.ProdiaGenerationResult: - response += fmt.Sprintf("%v", v.ImageUrl) - isImageContent = true - default: - return fmt.Errorf("unknown response type") - } - } - - messages := make([]ChatCompletionMessage, 0) + messages := make([]gcs.ChatCompletionMessage, 0) for _, r := range prompt.Messages { - messages = append(messages, ChatCompletionMessage{ + messages = append(messages, gcs.ChatCompletionMessage{ Content: r.Content, Role: r.Role, }) } - p := OpenAiCompletitionRequest{ + p := gcs.OpenAiCompletitionRequest{ Messages: messages, Model: prompt.Model, MaxTokens: prompt.MaxTokens, @@ -118,12 +73,12 @@ func (cs *ChatStorage) StorePromptResponseToFile(identifier string, isLocal bool Stop: prompt.Stop, } - newEntry := ChatMessage{ + newEntry := gcs.ChatMessage{ Prompt: p, - Response: response, + Response: responses, PromptAt: promptAt.Unix(), ResponseAt: responseAt.Unix(), - IsImageContent: isImageContent, + IsImageContent: responses[0].Type == completion.ChunkTypeImage, } if data.Messages == nil && len(data.Messages) == 0 { @@ -147,8 +102,8 @@ func (cs *ChatStorage) StorePromptResponseToFile(identifier string, isLocal bool return nil } -func (cs *ChatStorage) GetChats() []Chat { - var chats []Chat +func (cs *ChatStorage) GetChats() []gcs.Chat { + var chats []gcs.Chat files, err := os.ReadDir(cs.dirPath) if err != nil { return chats @@ -166,7 +121,7 @@ func (cs *ChatStorage) GetChats() []Chat { if err != nil { continue } - chats = append(chats, Chat{ + chats = append(chats, gcs.Chat{ ChatID: chatID, Title: fileContent.Title, CreatedAt: fileContent.Messages[0].PromptAt, @@ -216,14 +171,14 @@ func (cs *ChatStorage) UpdateChatTitle(identifier string, title string) error { return nil } -func (cs *ChatStorage) LoadChatFromFile(identifier string) (*ChatHistory, error) { +func (cs *ChatStorage) LoadChatFromFile(identifier string) (*gcs.ChatHistory, error) { filePath := filepath.Join(cs.dirPath, identifier+".json") cs.initFileMutex(filePath) cs.fileMutexes[filePath].Lock() defer cs.fileMutexes[filePath].Unlock() - var data ChatHistory + var data gcs.ChatHistory fileContent, err := os.ReadFile(filePath) if err != nil { return &data, err @@ -250,7 +205,7 @@ func NewNoOpChatStorage() *NoOpChatStorage { return &NoOpChatStorage{} } -func (cs *NoOpChatStorage) LoadChatFromFile(chatID string) (*ChatHistory, error) { +func (cs *NoOpChatStorage) LoadChatFromFile(chatID string) (*gcs.ChatHistory, error) { return nil, nil } @@ -258,8 +213,8 @@ func (cs *NoOpChatStorage) StorePromptResponseToFile(chatID string, isLocal bool return nil } -func (cs *NoOpChatStorage) GetChats() []Chat { - return []Chat{} +func (cs *NoOpChatStorage) GetChats() []gcs.Chat { + return []gcs.Chat{} } func (cs *NoOpChatStorage) DeleteChat(chatID string) error { diff --git a/proxy-router/internal/chatstorage/genericchatstorage/chat_requests.go b/proxy-router/internal/chatstorage/genericchatstorage/chat_requests.go new file mode 100644 index 00000000..baff1326 --- /dev/null +++ b/proxy-router/internal/chatstorage/genericchatstorage/chat_requests.go @@ -0,0 +1,53 @@ +package genericchatstorage + +type ChatMessagePartType string + +const ( + ChatMessagePartTypeText ChatMessagePartType = "text" + ChatMessagePartTypeImageURL ChatMessagePartType = "image_url" +) + +type ImageURLDetail string + +const ( + ImageURLDetailHigh ImageURLDetail = "high" + ImageURLDetailLow ImageURLDetail = "low" + ImageURLDetailAuto ImageURLDetail = "auto" +) + +type ChatMessageImageURL struct { + URL string `json:"url,omitempty"` + Detail ImageURLDetail `json:"detail,omitempty"` +} + +type ChatMessagePart struct { + Type ChatMessagePartType `json:"type,omitempty"` + Text string `json:"text,omitempty"` + ImageURL *ChatMessageImageURL `json:"image_url,omitempty"` +} + +type ChatCompletionMessage struct { + Role string `json:"role"` + Content string `json:"content"` + // MultiContent []ChatMessagePart `json:"multiContent",omitempty` + + // This property isn't in the official documentation, but it's in + // the documentation for the official library for python: + // - https://github.com/openai/openai-python/blob/main/chatml.md + // - https://github.com/openai/openai-cookbook/blob/main/examples/How_to_count_tokens_with_tiktoken.ipynb + Name string `json:"name,omitempty"` + + // For Role=tool prompts this should be set to the ID given in the assistant's prior request to call a tool. + ToolCallID string `json:"tool_call_id,omitempty"` +} + +type ChatCompletionDelta struct { + Content string `json:"content"` + Role string `json:"role"` +} + +type ChatCompletionResponseFormat struct { + Type ChatCompletionResponseFormatType `json:"type,omitempty"` +} + +type ChatCompletionResponseFormatType string diff --git a/proxy-router/internal/proxyapi/chat_responses.go b/proxy-router/internal/chatstorage/genericchatstorage/chat_responses.go similarity index 99% rename from proxy-router/internal/proxyapi/chat_responses.go rename to proxy-router/internal/chatstorage/genericchatstorage/chat_responses.go index 76622cd3..b56ddca3 100644 --- a/proxy-router/internal/proxyapi/chat_responses.go +++ b/proxy-router/internal/chatstorage/genericchatstorage/chat_responses.go @@ -1,4 +1,4 @@ -package proxyapi +package genericchatstorage import ( "net/http" diff --git a/proxy-router/internal/proxyapi/chat_requests.go b/proxy-router/internal/chatstorage/genericchatstorage/interface.go similarity index 50% rename from proxy-router/internal/proxyapi/chat_requests.go rename to proxy-router/internal/chatstorage/genericchatstorage/interface.go index ad5c08f1..f55dbe0b 100644 --- a/proxy-router/internal/proxyapi/chat_requests.go +++ b/proxy-router/internal/chatstorage/genericchatstorage/interface.go @@ -1,56 +1,70 @@ -package proxyapi +package genericchatstorage -type ChatMessagePartType string +import ( + "time" -const ( - ChatMessagePartTypeText ChatMessagePartType = "text" - ChatMessagePartTypeImageURL ChatMessagePartType = "image_url" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/completion" + "github.com/sashabaranov/go-openai" ) -type ImageURLDetail string - -const ( - ImageURLDetailHigh ImageURLDetail = "high" - ImageURLDetailLow ImageURLDetail = "low" - ImageURLDetailAuto ImageURLDetail = "auto" -) - -type ChatMessageImageURL struct { - URL string `json:"url,omitempty"` - Detail ImageURLDetail `json:"detail,omitempty"` +type ChatStorageInterface interface { + LoadChatFromFile(chatID string) (*ChatHistory, error) + StorePromptResponseToFile(chatID string, isLocal bool, modelID string, prompt *openai.ChatCompletionRequest, responses []*completion.ChunkImpl, promptAt time.Time, responseAt time.Time) error + GetChats() []Chat + DeleteChat(chatID string) error + UpdateChatTitle(chatID string, title string) error } -type ChatMessagePart struct { - Type ChatMessagePartType `json:"type,omitempty"` - Text string `json:"text,omitempty"` - ImageURL *ChatMessageImageURL `json:"image_url,omitempty"` +type ChatHistory struct { + Title string `json:"title"` + ModelId string `json:"modelId"` + IsLocal bool `json:"isLocal"` + Messages []ChatMessage `json:"messages"` + ForwardContext bool `json:"forwardContext"` } -type ChatCompletionMessage struct { - Role string `json:"role"` - Content string `json:"content"` - // MultiContent []ChatMessagePart `json:"multiContent",omitempty` +func (h *ChatHistory) AppendChatHistory(req *openai.ChatCompletionRequest) *openai.ChatCompletionRequest { + if h == nil { + return req + } + if !h.ForwardContext { + return req + } - // This property isn't in the official documentation, but it's in - // the documentation for the official library for python: - // - https://github.com/openai/openai-python/blob/main/chatml.md - // - https://github.com/openai/openai-cookbook/blob/main/examples/How_to_count_tokens_with_tiktoken.ipynb - Name string `json:"name,omitempty"` + //TODO: - // For Role=tool prompts this should be set to the ID given in the assistant's prior request to call a tool. - ToolCallID string `json:"tool_call_id,omitempty"` -} + // messagesWithHistory := make([]openai.ChatCompletionMessage, 0) + // for _, chat := range h.Messages { + // message := openai.ChatCompletionMessage{ + // Role: chat.Prompt.Messages[0].Role, + // Content: chat.Prompt.Messages[0].Content, + // } + // messagesWithHistory = append(messagesWithHistory, message) + // messagesWithHistory = append(messagesWithHistory, openai.ChatCompletionMessage{ + // Role: "assistant", + // Content: chat.Response, + // }) + // } -type ChatCompletionDelta struct { - Content string `json:"content"` - Role string `json:"role"` + // messagesWithHistory = append(messagesWithHistory, req.Messages...) + // req.Messages = messagesWithHistory + return req } -type ChatCompletionResponseFormat struct { - Type ChatCompletionResponseFormatType `json:"type,omitempty"` +type ChatMessage struct { + Prompt OpenAiCompletitionRequest `json:"prompt"` + Response []*completion.ChunkImpl `json:"response"` + PromptAt int64 `json:"promptAt"` + ResponseAt int64 `json:"responseAt"` + IsImageContent bool `json:"isImageContent"` +} +type Chat struct { + ChatID string `json:"chatId"` + ModelID string `json:"modelId"` + Title string `json:"title"` + IsLocal bool `json:"isLocal"` + CreatedAt int64 `json:"createdAt"` } - -type ChatCompletionResponseFormatType string type OpenAiCompletitionRequest struct { Model string `json:"model"` diff --git a/proxy-router/internal/chatstorage/structs.go b/proxy-router/internal/chatstorage/structs.go new file mode 100644 index 00000000..9deb7ba1 --- /dev/null +++ b/proxy-router/internal/chatstorage/structs.go @@ -0,0 +1 @@ +package chatstorage diff --git a/proxy-router/internal/completion/interface.go b/proxy-router/internal/completion/interface.go new file mode 100644 index 00000000..f862802c --- /dev/null +++ b/proxy-router/internal/completion/interface.go @@ -0,0 +1,20 @@ +package completion + +import "context" + +type CompletionCallback func(ctx context.Context, completion *ChunkImpl) error + +type ChunkType string + +const ( + ChunkTypeText ChunkType = "text" + ChunkTypeImage ChunkType = "image" + ChunkTypeVideo ChunkType = "video" +) + +type ChunkImpl struct { + Data interface{} + IsStreaming bool + Tokens int + Type ChunkType +} diff --git a/proxy-router/internal/config/config.go b/proxy-router/internal/config/config.go index 4439b7e8..4cf57b14 100644 --- a/proxy-router/internal/config/config.go +++ b/proxy-router/internal/config/config.go @@ -21,10 +21,6 @@ type Config struct { App struct { ResetKeychain bool `env:"APP_RESET_KEYCHAIN" flag:"app-reset-keychain" desc:"reset keychain on start"` } - AIEngine struct { - OpenAIBaseURL string `env:"OPENAI_BASE_URL" flag:"open-ai-base-url" validate:"required,url"` - OpenAIKey string `env:"OPENAI_API_KEY" flag:"open-ai-api-key"` - } Blockchain struct { ChainID int `env:"ETH_NODE_CHAIN_ID" flag:"eth-node-chain-id" validate:"number"` EthNodeAddress string `env:"ETH_NODE_ADDRESS" flag:"eth-node-address" validate:"omitempty,url"` diff --git a/proxy-router/internal/lib/hash.go b/proxy-router/internal/lib/hash.go index b2568fcc..f3c90070 100644 --- a/proxy-router/internal/lib/hash.go +++ b/proxy-router/internal/lib/hash.go @@ -1,6 +1,7 @@ package lib import ( + "crypto/rand" "encoding/hex" "errors" @@ -64,3 +65,10 @@ func HexToHash(s string) (common.Hash, error) { func has0xPrefix(str string) bool { return len(str) >= 2 && str[0] == '0' && (str[1] == 'x' || str[1] == 'X') } + +func GetRandomHash() (Hash, error) { + // generate random bytes + bytes := make([]byte, common.HashLength) + _, err := rand.Read(bytes) + return Hash{common.BytesToHash(bytes)}, err +} diff --git a/proxy-router/internal/proxyapi/controller_http.go b/proxy-router/internal/proxyapi/controller_http.go index 7e77d749..efea1025 100644 --- a/proxy-router/internal/proxyapi/controller_http.go +++ b/proxy-router/internal/proxyapi/controller_http.go @@ -1,28 +1,35 @@ package proxyapi import ( - "crypto/rand" + "context" "encoding/json" "fmt" "net/http" - "time" constants "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/aiengine" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/blockchainapi/structs" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/chatstorage/genericchatstorage" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/completion" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" + "github.com/ethereum/go-ethereum/common" "github.com/gin-gonic/gin" "github.com/sashabaranov/go-openai" ) +type AIEngine interface { + GetLocalModels() ([]aiengine.LocalModel, error) + GetAdapter(ctx context.Context, chatID, modelID, sessionID common.Hash, storeContext bool) (aiengine.AIEngineStream, error) +} + type ProxyController struct { service *ProxyServiceSender - aiEngine *aiengine.AiEngine - chatStorage ChatStorageInterface + aiEngine AIEngine + chatStorage genericchatstorage.ChatStorageInterface } -func NewProxyController(service *ProxyServiceSender, aiEngine *aiengine.AiEngine, chatStorage ChatStorageInterface) *ProxyController { +func NewProxyController(service *ProxyServiceSender, aiEngine AIEngine, chatStorage genericchatstorage.ChatStorageInterface) *ProxyController { c := &ProxyController{ service: service, aiEngine: aiEngine, @@ -85,7 +92,6 @@ func (c *ProxyController) Prompt(ctx *gin.Context) { body openai.ChatCompletionRequest head PromptHead ) - var responses []interface{} if err := ctx.ShouldBindHeader(&head); err != nil { ctx.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) @@ -96,104 +102,45 @@ func (c *ProxyController) Prompt(ctx *gin.Context) { return } - var chatID lib.Hash - if (head.ChatID != lib.Hash{}) { - chatID = head.ChatID - } else { - bytes := make([]byte, 32) - _, err := rand.Read(bytes[:]) + chatID := head.ChatID + if chatID == (lib.Hash{}) { + var err error + chatID, err = lib.GetRandomHash() if err != nil { - err = fmt.Errorf("error generating chat id: %w", err) ctx.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return } - - chatID = lib.Hash{} - chatID.SetBytes(bytes) } - promptAt := time.Now() - chatHistory, errHistory := c.chatStorage.LoadChatFromFile(chatID.Hex()) - if errHistory != nil { - c.service.log.Warn("No chat history found for chat id", chatID.Hex()) - } - - if (head.SessionID == lib.Hash{}) { - body.Stream = ctx.GetHeader(constants.HEADER_ACCEPT) == constants.CONTENT_TYPE_JSON - modelId := head.ModelID.Hex() - - apiType := c.GetLocalPromptApiType(modelId) - - responseAt := time.Now() + // promptAt := time.Now() + // isStream := ctx.GetHeader(constants.HEADER_ACCEPT) == constants.CONTENT_TYPE_EVENT_STREAM - if apiType == "openai" { - prompt := c.GetLocalOpenAiPrompt(modelId, body) - var newBody openai.ChatCompletionRequest - if chatHistory != nil { - newBody = c.AppendChatHistory(chatHistory, prompt) - } else { - newBody = prompt - } + adapter, err := c.aiEngine.GetAdapter(ctx, chatID.Hash, head.ModelID.Hash, head.SessionID.Hash, true) + if err != nil { + ctx.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } - res, _ := c.aiEngine.PromptCb(ctx, &newBody) - responses = res.([]interface{}) - if err := c.chatStorage.StorePromptResponseToFile(chatID.Hex(), true, modelId, prompt, responses, promptAt, responseAt); err != nil { - fmt.Println("Error storing prompt and responses:", err) - } + err = adapter.Prompt(ctx, &body, func(cbctx context.Context, completion *completion.ChunkImpl) error { + marshalledResponse, err := json.Marshal(completion.Data) + if err != nil { + return err } - if apiType == "prodia" { - prompt := c.GetLocalProdiaPrompt(modelId, body) - - var prodiaResponses []interface{} - c.aiEngine.PromptProdiaImage(ctx, &prompt, func(completion interface{}) error { - ctx.Writer.Header().Set(constants.HEADER_CONTENT_TYPE, constants.CONTENT_TYPE_EVENT_STREAM) - marshalledResponse, err := json.Marshal(completion) - if err != nil { - return err - } - _, err = ctx.Writer.Write([]byte(fmt.Sprintf("data: %s\n\n", marshalledResponse))) - if err != nil { - return err - } - ctx.Writer.Flush() - prodiaResponses = append(prodiaResponses, completion) - - body.Model = prompt.Model - if err := c.chatStorage.StorePromptResponseToFile(chatID.Hex(), true, modelId, body, prodiaResponses, promptAt, responseAt); err != nil { - fmt.Println("Error storing prompt and responses:", err) - } - return nil - }) + ctx.Writer.Header().Set(constants.HEADER_CONTENT_TYPE, constants.CONTENT_TYPE_EVENT_STREAM) + _, err = ctx.Writer.Write([]byte(fmt.Sprintf("data: %s\n\n", marshalledResponse))) + if err != nil { + return err } - return - } - var newBody openai.ChatCompletionRequest - if chatHistory != nil { - newBody = c.AppendChatHistory(chatHistory, body) - } else { - newBody = body - } - res, err := c.service.SendPrompt(ctx, ctx.Writer, &newBody, head.SessionID.Hash) + ctx.Writer.Flush() + return nil + }) + if err != nil { ctx.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) return } - - responses = res.([]interface{}) - responseAt := time.Now() - sessionID := head.SessionID.Hex() - - modelId := "" - session, ok := c.service.sessionStorage.GetSession(sessionID) - if ok { - modelId = session.ModelID - } - - if err := c.chatStorage.StorePromptResponseToFile(chatID.Hex(), false, modelId, body, responses, promptAt, responseAt); err != nil { - fmt.Println("Error storing prompt and responses:", err) - } - return } // GetLocalModels godoc @@ -223,7 +170,7 @@ func (c *ProxyController) GetChats(ctx *gin.Context) { chats := c.chatStorage.GetChats() if chats == nil { - ctx.JSON(http.StatusOK, make([]Chat, 0)) + ctx.JSON(http.StatusOK, make([]struct{}, 0)) return } @@ -310,73 +257,3 @@ func (c *ProxyController) UpdateChatTitle(ctx *gin.Context) { } ctx.JSON(http.StatusOK, gin.H{"result": true}) } - -func (c *ProxyController) GetLocalOpenAiPrompt(modelId string, req openai.ChatCompletionRequest) openai.ChatCompletionRequest { - if modelId == "" { - return req - } - - ids, models := c.aiEngine.GetModelsConfig() - - for i, model := range models { - if ids[i] == modelId { - req.Model = model.ModelName - return req - } - } - - req.Model = "llama2" - return req -} - -func (c *ProxyController) GetLocalProdiaPrompt(modelId string, req openai.ChatCompletionRequest) aiengine.ProdiaGenerationRequest { - ids, models := c.aiEngine.GetModelsConfig() - - for i, model := range models { - if ids[i] == modelId { - prompt := aiengine.ProdiaGenerationRequest{ - Model: model.ModelName, - Prompt: req.Messages[0].Content, - ApiUrl: model.ApiURL, - ApiKey: model.ApiKey, - } - return prompt - } - } - return aiengine.ProdiaGenerationRequest{} -} - -func (c *ProxyController) GetLocalPromptApiType(modelId string) string { - if modelId == "" { - return "openai" - } - - ids, models := c.aiEngine.GetModelsConfig() - - for i, model := range models { - if ids[i] == modelId { - return model.ApiType - } - } - - return "openai" -} - -func (c *ProxyController) AppendChatHistory(chatHistory *ChatHistory, req openai.ChatCompletionRequest) openai.ChatCompletionRequest { - messagesWithHistory := make([]openai.ChatCompletionMessage, 0) - for _, chat := range chatHistory.Messages { - message := openai.ChatCompletionMessage{ - Role: chat.Prompt.Messages[0].Role, - Content: chat.Prompt.Messages[0].Content, - } - messagesWithHistory = append(messagesWithHistory, message) - messagesWithHistory = append(messagesWithHistory, openai.ChatCompletionMessage{ - Role: "assistant", - Content: chat.Response, - }) - } - - messagesWithHistory = append(messagesWithHistory, req.Messages...) - req.Messages = messagesWithHistory - return req -} diff --git a/proxy-router/internal/proxyapi/proxy_receiver.go b/proxy-router/internal/proxyapi/proxy_receiver.go index fa786f4e..e88df933 100644 --- a/proxy-router/internal/proxyapi/proxy_receiver.go +++ b/proxy-router/internal/proxyapi/proxy_receiver.go @@ -8,6 +8,7 @@ import ( "time" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/aiengine" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/completion" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/config" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" m "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/proxyapi/morrpcmessage" @@ -65,24 +66,21 @@ func (s *ProxyReceiver) SessionPrompt(ctx context.Context, requestID string, use totalTokens := 0 now := time.Now().UnixMilli() - responseCb := func(response interface{}) error { - openAiResponse, ok := response.(*openai.ChatCompletionStreamResponse) - if ok { - totalTokens += len(openAiResponse.Choices) - } else { - _, ok := response.(*aiengine.ProdiaGenerationResult) - if ok { - totalTokens += 1 - } else { - return fmt.Errorf("unknown response type") - } - } + adapter, err := s.aiEngine.GetAdapter(ctx, common.Hash{}, session.ModelID(), common.Hash{}, false) + if err != nil { + err := lib.WrapError(fmt.Errorf("failed to get adapter"), err) + sourceLog.Error(err) + return 0, 0, err + } + + err = adapter.Prompt(ctx, req, func(ctx context.Context, completion *completion.ChunkImpl) error { + totalTokens += completion.Tokens if ttftMs == 0 { ttftMs = int(time.Now().UnixMilli() - now) } - marshalledResponse, err := json.Marshal(response) + marshalledResponse, err := json.Marshal(completion.Data) if err != nil { return err } @@ -104,31 +102,7 @@ func (s *ProxyReceiver) SessionPrompt(ctx context.Context, requestID string, use return err } return sendResponse(r) - } - - modelConfig := s.modelConfigLoader.ModelConfigFromID(session.ModelID().Hex()) - if modelConfig == nil { - return 0, 0, fmt.Errorf("model config not found for model id %s", session.ModelID()) - } - - if modelConfig.ApiType == "prodia" { - lastMessage := req.Messages[len(req.Messages)-1] - prodiaReq := &aiengine.ProdiaGenerationRequest{ - Prompt: lastMessage.Content, - Model: modelConfig.ModelName, - ApiUrl: modelConfig.ApiURL, - ApiKey: modelConfig.ApiKey, - } - - err = s.aiEngine.PromptProdiaImage(ctx, prodiaReq, responseCb) - } else { - req.Model = modelConfig.ModelName - if req.Model == "" { - req.Model = "llama2" - } - _, err = s.aiEngine.PromptStream(ctx, req, responseCb) - } - + }) if err != nil { err := lib.WrapError(fmt.Errorf("failed to prompt"), err) sourceLog.Error(err) diff --git a/proxy-router/internal/proxyapi/proxy_sender.go b/proxy-router/internal/proxyapi/proxy_sender.go index 9f63143f..df6e209d 100644 --- a/proxy-router/internal/proxyapi/proxy_sender.go +++ b/proxy-router/internal/proxyapi/proxy_sender.go @@ -11,8 +11,9 @@ import ( "net/url" "time" - constants "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/aiengine" + gcs "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/chatstorage/genericchatstorage" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/completion" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" msgs "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/proxyapi/morrpcmessage" @@ -236,7 +237,50 @@ func (p *ProxyServiceSender) GetSessionReportFromUser(ctx context.Context, sessi return typedMsg.Message, typedMsg.SignedReport, nil } -func (p *ProxyServiceSender) SendPrompt(ctx context.Context, resWriter ResponderFlusher, prompt *openai.ChatCompletionRequest, sessionID common.Hash) (interface{}, error) { +func (p *ProxyServiceSender) rpcRequest(url string, rpcMessage *msgs.RPCMessage) (*msgs.RpcResponse, int, gin.H) { + TIMEOUT_TO_ESTABLISH_CONNECTION := time.Second * 3 + dialer := net.Dialer{Timeout: TIMEOUT_TO_ESTABLISH_CONNECTION} + + conn, err := dialer.Dial("tcp", url) + if err != nil { + err = lib.WrapError(fmt.Errorf("failed to connect to provider"), err) + p.log.Errorf("%s", err) + return nil, http.StatusInternalServerError, gin.H{"error": err.Error()} + } + defer conn.Close() + + msgJSON, err := json.Marshal(rpcMessage) + if err != nil { + err = lib.WrapError(fmt.Errorf("failed to marshal request"), err) + p.log.Errorf("%s", err) + return nil, http.StatusInternalServerError, gin.H{"error": err.Error()} + } + _, err = conn.Write(msgJSON) + if err != nil { + err = lib.WrapError(fmt.Errorf("failed to write request"), err) + p.log.Errorf("%s", err) + return nil, http.StatusInternalServerError, gin.H{"error": err.Error()} + } + + // read response + reader := bufio.NewReader(conn) + d := json.NewDecoder(reader) + + var msg *msgs.RpcResponse + err = d.Decode(&msg) + if err != nil { + err = lib.WrapError(fmt.Errorf("failed to decode response"), err) + p.log.Errorf("%s", err) + return nil, http.StatusBadRequest, gin.H{"error": err.Error()} + } + return msg, 0, nil +} + +func (p *ProxyServiceSender) validateMsgSignature(result any, signature lib.HexString, providerPubicKey lib.HexString) bool { + return p.morRPC.VerifySignature(result, signature, providerPubicKey, p.log) +} + +func (p *ProxyServiceSender) SendPromptV2(ctx context.Context, sessionID common.Hash, prompt *openai.ChatCompletionRequest, cb completion.CompletionCallback) (interface{}, error) { session, err := p.sessionRepo.GetSession(ctx, sessionID) if err != nil { return nil, ErrSessionNotFound @@ -268,7 +312,7 @@ func (p *ProxyServiceSender) SendPrompt(ctx context.Context, resWriter Responder } now := time.Now().Unix() - result, ttftMs, totalTokens, err := p.rpcRequestStream(ctx, resWriter, provider.Url, promptRequest, pubKey) + result, ttftMs, totalTokens, err := p.rpcRequestStreamV2(ctx, cb, provider.Url, promptRequest, pubKey) if err != nil { if !session.FailoverEnabled() { return nil, lib.WrapError(ErrProvider, err) @@ -279,12 +323,17 @@ func (p *ProxyServiceSender) SendPrompt(ctx context.Context, resWriter Responder return nil, err } - resWriter.Header().Set(constants.HEADER_CONTENT_TYPE, constants.CONTENT_TYPE_EVENT_STREAM) - _, err = resWriter.Write([]byte(fmt.Sprintf("data: %s\n\n", "{\"message\": \"provider failed, failover enabled\"}"))) + msg := struct { + Message string `json:"message"` + }{Message: "provider failed, failover enabled"} + + err = cb(ctx, &completion.ChunkImpl{ + Data: msg, + IsStreaming: true, + }) if err != nil { return nil, err } - resWriter.Flush() duration := session.EndsAt().Int64() - time.Now().Unix() @@ -299,14 +348,15 @@ func (p *ProxyServiceSender) SendPrompt(ctx context.Context, resWriter Responder return nil, err } - _, err = resWriter.Write([]byte(fmt.Sprintf("data: %s\n\n", "{\"message\": \"new session opened\"}"))) - if err != nil { - return nil, err - } - resWriter.Flush() + msg = struct { + Message string `json:"message"` + }{Message: "new session opened"} - time.Sleep(1 * time.Second) // sleep for a bit to allow the new session to be created - return p.SendPrompt(ctx, resWriter, prompt, newSessionID) + err = cb(ctx, &completion.ChunkImpl{ + Data: msg, + IsStreaming: true, + }) + return p.SendPromptV2(ctx, newSessionID, prompt, cb) } requestDuration := int(time.Now().Unix() - now) @@ -322,47 +372,7 @@ func (p *ProxyServiceSender) SendPrompt(ctx context.Context, resWriter Responder return result, nil } - -func (p *ProxyServiceSender) rpcRequest(url string, rpcMessage *msgs.RPCMessage) (*msgs.RpcResponse, int, gin.H) { - TIMEOUT_TO_ESTABLISH_CONNECTION := time.Second * 3 - dialer := net.Dialer{Timeout: TIMEOUT_TO_ESTABLISH_CONNECTION} - - conn, err := dialer.Dial("tcp", url) - if err != nil { - err = lib.WrapError(fmt.Errorf("failed to connect to provider"), err) - p.log.Errorf("%s", err) - return nil, http.StatusInternalServerError, gin.H{"error": err.Error()} - } - defer conn.Close() - - msgJSON, err := json.Marshal(rpcMessage) - if err != nil { - err = lib.WrapError(fmt.Errorf("failed to marshal request"), err) - p.log.Errorf("%s", err) - return nil, http.StatusInternalServerError, gin.H{"error": err.Error()} - } - _, err = conn.Write(msgJSON) - if err != nil { - err = lib.WrapError(fmt.Errorf("failed to write request"), err) - p.log.Errorf("%s", err) - return nil, http.StatusInternalServerError, gin.H{"error": err.Error()} - } - - // read response - reader := bufio.NewReader(conn) - d := json.NewDecoder(reader) - - var msg *msgs.RpcResponse - err = d.Decode(&msg) - if err != nil { - err = lib.WrapError(fmt.Errorf("failed to decode response"), err) - p.log.Errorf("%s", err) - return nil, http.StatusBadRequest, gin.H{"error": err.Error()} - } - return msg, 0, nil -} - -func (p *ProxyServiceSender) rpcRequestStream(ctx context.Context, resWriter ResponderFlusher, url string, rpcMessage *msgs.RPCMessage, providerPublicKey lib.HexString) (interface{}, int, int, error) { +func (p *ProxyServiceSender) rpcRequestStreamV2(ctx context.Context, cb completion.CompletionCallback, url string, rpcMessage *msgs.RPCMessage, providerPublicKey lib.HexString) (interface{}, int, int, error) { prKey, err := p.privateKey.GetPrivateKey() if err != nil { return nil, 0, 0, ErrMissingPrKey @@ -393,7 +403,6 @@ func (p *ProxyServiceSender) rpcRequestStream(ctx context.Context, resWriter Res // read response reader := bufio.NewReader(conn) d := json.NewDecoder(reader) - resWriter.Header().Set(constants.HEADER_CONTENT_TYPE, constants.CONTENT_TYPE_EVENT_STREAM) responses := make([]interface{}, 0) @@ -444,14 +453,14 @@ func (p *ProxyServiceSender) rpcRequestStream(ctx context.Context, resWriter Res return nil, ttftMs, totalTokens, lib.WrapError(ErrDecrFailed, err) } - var payload ChatCompletionResponse + var payload gcs.ChatCompletionResponse err = json.Unmarshal(aiResponse, &payload) var stop = true if err == nil && len(payload.Choices) > 0 { stop = false choices := payload.Choices for _, choice := range choices { - if choice.FinishReason == FinishReasonStop { + if choice.FinishReason == gcs.FinishReasonStop { stop = true } } @@ -470,11 +479,14 @@ func (p *ProxyServiceSender) rpcRequestStream(ctx context.Context, resWriter Res if ctx.Err() != nil { return nil, ttftMs, totalTokens, ctx.Err() } - _, err = resWriter.Write([]byte(fmt.Sprintf("data: %s\n\n", aiResponse))) + chunk := &completion.ChunkImpl{ + Data: aiResponse, + IsStreaming: true, + } + err = cb(ctx, chunk) if err != nil { - return nil, ttftMs, totalTokens, err + return nil, ttftMs, totalTokens, lib.WrapError(ErrResponseErr, err) } - resWriter.Flush() if stop { break } @@ -482,7 +494,3 @@ func (p *ProxyServiceSender) rpcRequestStream(ctx context.Context, resWriter Res return responses, ttftMs, totalTokens, nil } - -func (p *ProxyServiceSender) validateMsgSignature(result any, signature lib.HexString, providerPubicKey lib.HexString) bool { - return p.morRPC.VerifySignature(result, signature, providerPubicKey, p.log) -} From 4c3b1e2d76552f4c5f9134e4d01369d4da75bd66 Mon Sep 17 00:00:00 2001 From: shev Date: Tue, 12 Nov 2024 19:13:05 +0100 Subject: [PATCH 118/260] feat: abstract chat message format --- proxy-router/cmd/main.go | 2 +- proxy-router/internal/aiengine/factory.go | 13 ++ proxy-router/internal/aiengine/history.go | 7 +- proxy-router/internal/aiengine/interface.go | 24 --- proxy-router/internal/aiengine/interfaces.go | 26 +-- proxy-router/internal/aiengine/openai.go | 23 ++- proxy-router/internal/aiengine/prodia.go | 36 +++-- proxy-router/internal/aiengine/remote.go | 6 +- proxy-router/internal/aiengine/structs.go | 8 + .../internal/chatstorage/file_chat_storage.go | 46 ++---- .../genericchatstorage/chat_requests.go | 11 -- .../genericchatstorage/chat_responses.go | 8 + .../genericchatstorage/completion.go | 153 ++++++++++++++++++ .../genericchatstorage/interface.go | 44 +++-- proxy-router/internal/chatstorage/structs.go | 1 - proxy-router/internal/completion/interface.go | 20 --- .../internal/proxyapi/controller_http.go | 13 +- .../internal/proxyapi/proxy_receiver.go | 8 +- .../internal/proxyapi/proxy_sender.go | 43 ++--- 19 files changed, 292 insertions(+), 200 deletions(-) create mode 100644 proxy-router/internal/aiengine/factory.go delete mode 100644 proxy-router/internal/aiengine/interface.go create mode 100644 proxy-router/internal/aiengine/structs.go create mode 100644 proxy-router/internal/chatstorage/genericchatstorage/completion.go delete mode 100644 proxy-router/internal/chatstorage/structs.go delete mode 100644 proxy-router/internal/completion/interface.go diff --git a/proxy-router/cmd/main.go b/proxy-router/cmd/main.go index a555ac9e..2380749b 100644 --- a/proxy-router/cmd/main.go +++ b/proxy-router/cmd/main.go @@ -284,7 +284,7 @@ func start() error { blockchainController := blockchainapi.NewBlockchainController(blockchainApi, log) ethConnectionValidator := system.NewEthConnectionValidator(*big.NewInt(int64(cfg.Blockchain.ChainID))) - proxyController := proxyapi.NewProxyController(proxyRouterApi, aiEngine, chatStorage) + proxyController := proxyapi.NewProxyController(proxyRouterApi, aiEngine, chatStorage, log) walletController := walletapi.NewWalletController(wallet) systemController := system.NewSystemController(&cfg, wallet, rpcClientStore, sysConfig, appStartTime, chainID, log, ethConnectionValidator) diff --git a/proxy-router/internal/aiengine/factory.go b/proxy-router/internal/aiengine/factory.go new file mode 100644 index 00000000..baf7df4e --- /dev/null +++ b/proxy-router/internal/aiengine/factory.go @@ -0,0 +1,13 @@ +package aiengine + +import "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" + +func ApiAdapterFactory(apiType string, modelName string, url string, apikey string, log lib.ILogger) (AIEngineStream, bool) { + switch apiType { + case "openai": + return NewOpenAIEngine(modelName, url, apikey, log), true + case "prodia": + return NewProdiaEngine(modelName, url, apikey, log), true + } + return nil, false +} diff --git a/proxy-router/internal/aiengine/history.go b/proxy-router/internal/aiengine/history.go index 4cef1c5e..a8e3189e 100644 --- a/proxy-router/internal/aiengine/history.go +++ b/proxy-router/internal/aiengine/history.go @@ -5,7 +5,6 @@ import ( "time" gcs "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/chatstorage/genericchatstorage" - "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/completion" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" "github.com/ethereum/go-ethereum/common" "github.com/sashabaranov/go-openai" @@ -29,9 +28,9 @@ func NewHistory(engine AIEngineStream, storage gcs.ChatStorageInterface, chatID, } } -func (h *History) Prompt(ctx context.Context, prompt *openai.ChatCompletionRequest, cb completion.CompletionCallback) error { +func (h *History) Prompt(ctx context.Context, prompt *openai.ChatCompletionRequest, cb gcs.CompletionCallback) error { isLocal := h.engine.ApiType() != "remote" - completions := make([]*completion.ChunkImpl, 0) + completions := make([]gcs.Chunk, 0) startTime := time.Now() history, err := h.storage.LoadChatFromFile(h.chatID.Hex()) @@ -41,7 +40,7 @@ func (h *History) Prompt(ctx context.Context, prompt *openai.ChatCompletionReque promptWithHistory := history.AppendChatHistory(prompt) - err = h.engine.Prompt(ctx, promptWithHistory, func(ctx context.Context, completion *completion.ChunkImpl) error { + err = h.engine.Prompt(ctx, promptWithHistory, func(ctx context.Context, completion gcs.Chunk) error { completions = append(completions, completion) return cb(ctx, completion) }) diff --git a/proxy-router/internal/aiengine/interface.go b/proxy-router/internal/aiengine/interface.go deleted file mode 100644 index cc1d97de..00000000 --- a/proxy-router/internal/aiengine/interface.go +++ /dev/null @@ -1,24 +0,0 @@ -package aiengine - -import ( - "context" - - "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/completion" - "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" - "github.com/sashabaranov/go-openai" -) - -type AIEngineStream interface { - Prompt(ctx context.Context, prompt *openai.ChatCompletionRequest, cb completion.CompletionCallback) error - ApiType() string -} - -func ApiAdapterFactory(apiType string, modelName string, url string, apikey string, log lib.ILogger) (AIEngineStream, bool) { - switch apiType { - case "openai": - return NewOpenAIEngine(modelName, url, apikey, log), true - case "prodia": - return NewProdiaEngine(modelName, url, apikey, log), true - } - return nil, false -} diff --git a/proxy-router/internal/aiengine/interfaces.go b/proxy-router/internal/aiengine/interfaces.go index 1f7c4023..9424a252 100644 --- a/proxy-router/internal/aiengine/interfaces.go +++ b/proxy-router/internal/aiengine/interfaces.go @@ -1,23 +1,13 @@ package aiengine -type ProdiaGenerationResult struct { - Job string `json:"job"` - Status string `json:"status"` - ImageUrl string `json:"imageUrl" binding:"omitempty"` -} - -type ProdiaGenerationRequest struct { - Model string `json:"model"` - Prompt string `json:"prompt"` - ApiUrl string `json:"apiUrl"` - ApiKey string `json:"apiKey"` -} +import ( + "context" -type ProdiaImageGenerationCallback func(completion *ProdiaGenerationResult) error + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/chatstorage/genericchatstorage" + "github.com/sashabaranov/go-openai" +) -type LocalModel struct { - Id string - Name string - Model string - ApiType string +type AIEngineStream interface { + Prompt(ctx context.Context, prompt *openai.ChatCompletionRequest, cb genericchatstorage.CompletionCallback) error + ApiType() string } diff --git a/proxy-router/internal/aiengine/openai.go b/proxy-router/internal/aiengine/openai.go index b7357ea7..3b653774 100644 --- a/proxy-router/internal/aiengine/openai.go +++ b/proxy-router/internal/aiengine/openai.go @@ -11,7 +11,7 @@ import ( "strings" c "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal" - "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/completion" + gcs "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/chatstorage/genericchatstorage" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" "github.com/sashabaranov/go-openai" ) @@ -34,7 +34,7 @@ func NewOpenAIEngine(modelName, baseURL, apiKey string, log lib.ILogger) *OpenAI } } -func (a *OpenAI) Prompt(ctx context.Context, compl *openai.ChatCompletionRequest, cb completion.CompletionCallback) error { +func (a *OpenAI) Prompt(ctx context.Context, compl *openai.ChatCompletionRequest, cb gcs.CompletionCallback) error { compl.Model = a.modelName requestBody, err := json.Marshal(compl) if err != nil { @@ -68,17 +68,18 @@ func (a *OpenAI) Prompt(ctx context.Context, compl *openai.ChatCompletionRequest return a.readResponse(ctx, resp.Body, cb) } -func (a *OpenAI) readResponse(ctx context.Context, body io.Reader, cb completion.CompletionCallback) error { +func (a *OpenAI) readResponse(ctx context.Context, body io.Reader, cb gcs.CompletionCallback) error { var compl openai.ChatCompletionResponse if err := json.NewDecoder(body).Decode(&compl); err != nil { return fmt.Errorf("failed to decode response: %v", err) } - chunk := &completion.ChunkImpl{ - Data: compl, - IsStreaming: false, - Tokens: len(compl.Choices), + text := make([]string, len(compl.Choices)) + for i, choice := range compl.Choices { + text[i] = choice.Message.Content } + + chunk := gcs.NewChunkText(&compl) err := cb(ctx, chunk) if err != nil { return fmt.Errorf("callback failed: %v", err) @@ -87,7 +88,7 @@ func (a *OpenAI) readResponse(ctx context.Context, body io.Reader, cb completion return nil } -func (a *OpenAI) readStream(ctx context.Context, body io.Reader, cb completion.CompletionCallback) error { +func (a *OpenAI) readStream(ctx context.Context, body io.Reader, cb gcs.CompletionCallback) error { scanner := bufio.NewScanner(body) for scanner.Scan() { line := scanner.Text() @@ -104,11 +105,7 @@ func (a *OpenAI) readStream(ctx context.Context, body io.Reader, cb completion.C } } // Call the callback function with the unmarshalled completion - chunk := &completion.ChunkImpl{ - Data: compl, - IsStreaming: true, - Tokens: len(compl.Choices), - } + chunk := gcs.NewChunkStreaming(&compl) err := cb(ctx, chunk) if err != nil { return fmt.Errorf("callback failed: %v", err) diff --git a/proxy-router/internal/aiengine/prodia.go b/proxy-router/internal/aiengine/prodia.go index 0b924f3c..9f7ce171 100644 --- a/proxy-router/internal/aiengine/prodia.go +++ b/proxy-router/internal/aiengine/prodia.go @@ -11,7 +11,7 @@ import ( "time" constants "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal" - "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/completion" + gcs "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/chatstorage/genericchatstorage" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" "github.com/sashabaranov/go-openai" ) @@ -35,11 +35,12 @@ func NewProdiaEngine(modelName, apiURL, apiKey string, log lib.ILogger) *Prodia } } -func (s *Prodia) Prompt(ctx context.Context, prompt *openai.ChatCompletionRequest, cb completion.CompletionCallback) error { +func (s *Prodia) Prompt(ctx context.Context, prompt *openai.ChatCompletionRequest, cb gcs.CompletionCallback) error { body := map[string]string{ "model": s.modelName, "prompt": prompt.Messages[0].Content, } + payload, err := json.Marshal(body) if err != nil { err = lib.WrapError(ErrImageGenerationInvalidRequest, err) @@ -47,7 +48,9 @@ func (s *Prodia) Prompt(ctx context.Context, prompt *openai.ChatCompletionReques return err } - req, err := http.NewRequest("POST", s.apiURL, bytes.NewReader(payload)) + s.log.Debugf("payload: %s", payload) + + req, err := http.NewRequest("POST", fmt.Sprintf("%s/sd/generate", s.apiURL), bytes.NewReader(payload)) if err != nil { err = lib.WrapError(ErrImageGenerationRequest, err) s.log.Error(err) @@ -72,9 +75,11 @@ func (s *Prodia) Prompt(ctx context.Context, prompt *openai.ChatCompletionReques return err } + s.log.Debugf("response: %s", response) + bodyStr := string(response) if strings.Contains(bodyStr, "Invalid Generation Parameters") { - return ErrImageGenerationInvalidRequest + return lib.WrapError(ErrImageGenerationRequest, fmt.Errorf(bodyStr)) } result := ProdiaGenerationResult{} @@ -92,18 +97,19 @@ func (s *Prodia) Prompt(ctx context.Context, prompt *openai.ChatCompletionReques return err } - chunk := &completion.ChunkImpl{ - Data: job, - IsStreaming: false, - Type: completion.ChunkTypeImage, - Tokens: 1, - } + chunk := gcs.NewChunkImage(&gcs.ImageGenerationResult{ + Job: job.Job, + ImageUrl: job.ImageUrl, + Status: job.Status, + }) return cb(ctx, chunk) } func (s *Prodia) waitJobResult(ctx context.Context, jobID string) (*ProdiaGenerationResult, error) { - url := fmt.Sprintf("https://api.prodia.com/v1/job/%s", jobID) + url := fmt.Sprintf("%s/job/%s", s.apiURL, jobID) + + s.log.Debugf("waiting for job result: %s", url) req, err := http.NewRequestWithContext(ctx, "GET", url, nil) if err != nil { @@ -138,6 +144,8 @@ func (s *Prodia) waitJobResult(ctx context.Context, jobID string) (*ProdiaGenera return nil, err } + s.log.Debugf("job result: %v", result) + if result.Status == "succeeded" { return &result, nil } @@ -160,3 +168,9 @@ func (s *Prodia) ApiType() string { } var _ AIEngineStream = &Prodia{} + +type ProdiaGenerationResult struct { + Job string `json:"job"` + Status string `json:"status"` + ImageUrl string `json:"imageUrl" binding:"omitempty"` +} diff --git a/proxy-router/internal/aiengine/remote.go b/proxy-router/internal/aiengine/remote.go index fcf2ba3e..86088600 100644 --- a/proxy-router/internal/aiengine/remote.go +++ b/proxy-router/internal/aiengine/remote.go @@ -3,7 +3,7 @@ package aiengine import ( "context" - "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/completion" + gcs "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/chatstorage/genericchatstorage" "github.com/ethereum/go-ethereum/common" "github.com/sashabaranov/go-openai" ) @@ -14,10 +14,10 @@ type RemoteModel struct { } type ProxyService interface { - SendPromptV2(ctx context.Context, sessionID common.Hash, prompt *openai.ChatCompletionRequest, cb completion.CompletionCallback) (interface{}, error) + SendPromptV2(ctx context.Context, sessionID common.Hash, prompt *openai.ChatCompletionRequest, cb gcs.CompletionCallback) (interface{}, error) } -func (p *RemoteModel) Prompt(ctx context.Context, prompt *openai.ChatCompletionRequest, cb completion.CompletionCallback) error { +func (p *RemoteModel) Prompt(ctx context.Context, prompt *openai.ChatCompletionRequest, cb gcs.CompletionCallback) error { _, err := p.service.SendPromptV2(ctx, p.sessionID, prompt, cb) return err } diff --git a/proxy-router/internal/aiengine/structs.go b/proxy-router/internal/aiengine/structs.go new file mode 100644 index 00000000..99e5e568 --- /dev/null +++ b/proxy-router/internal/aiengine/structs.go @@ -0,0 +1,8 @@ +package aiengine + +type LocalModel struct { + Id string + Name string + Model string + ApiType string +} diff --git a/proxy-router/internal/chatstorage/file_chat_storage.go b/proxy-router/internal/chatstorage/file_chat_storage.go index 07ff0c56..bba5451f 100644 --- a/proxy-router/internal/chatstorage/file_chat_storage.go +++ b/proxy-router/internal/chatstorage/file_chat_storage.go @@ -5,11 +5,11 @@ import ( "fmt" "os" "path/filepath" + "strings" "sync" "time" gcs "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/chatstorage/genericchatstorage" - "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/completion" "github.com/sashabaranov/go-openai" ) @@ -31,7 +31,7 @@ func NewChatStorage(dirPath string) *ChatStorage { } // StorePromptResponseToFile stores the prompt and response to a file. -func (cs *ChatStorage) StorePromptResponseToFile(identifier string, isLocal bool, modelId string, prompt *openai.ChatCompletionRequest, responses []*completion.ChunkImpl, promptAt time.Time, responseAt time.Time) error { +func (cs *ChatStorage) StorePromptResponseToFile(identifier string, isLocal bool, modelId string, prompt *openai.ChatCompletionRequest, responses []gcs.Chunk, promptAt time.Time, responseAt time.Time) error { if err := os.MkdirAll(cs.dirPath, os.ModePerm); err != nil { return err } @@ -62,7 +62,7 @@ func (cs *ChatStorage) StorePromptResponseToFile(identifier string, isLocal bool }) } - p := gcs.OpenAiCompletitionRequest{ + p := gcs.OpenAiCompletionRequest{ Messages: messages, Model: prompt.Model, MaxTokens: prompt.MaxTokens, @@ -73,12 +73,22 @@ func (cs *ChatStorage) StorePromptResponseToFile(identifier string, isLocal bool Stop: prompt.Stop, } + resps := make([]string, len(responses)) + for i, r := range responses { + resps[i] = r.String() + } + + isImageContent := false + if len(responses) > 0 { + isImageContent = responses[0].Type() == gcs.ChunkTypeImage + } + newEntry := gcs.ChatMessage{ Prompt: p, - Response: responses, + Response: strings.Join(resps, ""), PromptAt: promptAt.Unix(), ResponseAt: responseAt.Unix(), - IsImageContent: responses[0].Type == completion.ChunkTypeImage, + IsImageContent: isImageContent, } if data.Messages == nil && len(data.Messages) == 0 { @@ -198,29 +208,3 @@ func (cs *ChatStorage) initFileMutex(filePath string) { cs.fileMutexes[filePath] = &sync.Mutex{} } } - -type NoOpChatStorage struct{} - -func NewNoOpChatStorage() *NoOpChatStorage { - return &NoOpChatStorage{} -} - -func (cs *NoOpChatStorage) LoadChatFromFile(chatID string) (*gcs.ChatHistory, error) { - return nil, nil -} - -func (cs *NoOpChatStorage) StorePromptResponseToFile(chatID string, isLocal bool, modelID string, prompt openai.ChatCompletionRequest, responses []interface{}, promptAt time.Time, responseAt time.Time) error { - return nil -} - -func (cs *NoOpChatStorage) GetChats() []gcs.Chat { - return []gcs.Chat{} -} - -func (cs *NoOpChatStorage) DeleteChat(chatID string) error { - return nil -} - -func (cs *NoOpChatStorage) UpdateChatTitle(chatID string, title string) error { - return nil -} diff --git a/proxy-router/internal/chatstorage/genericchatstorage/chat_requests.go b/proxy-router/internal/chatstorage/genericchatstorage/chat_requests.go index baff1326..f958da4e 100644 --- a/proxy-router/internal/chatstorage/genericchatstorage/chat_requests.go +++ b/proxy-router/internal/chatstorage/genericchatstorage/chat_requests.go @@ -15,17 +15,6 @@ const ( ImageURLDetailAuto ImageURLDetail = "auto" ) -type ChatMessageImageURL struct { - URL string `json:"url,omitempty"` - Detail ImageURLDetail `json:"detail,omitempty"` -} - -type ChatMessagePart struct { - Type ChatMessagePartType `json:"type,omitempty"` - Text string `json:"text,omitempty"` - ImageURL *ChatMessageImageURL `json:"image_url,omitempty"` -} - type ChatCompletionMessage struct { Role string `json:"role"` Content string `json:"content"` diff --git a/proxy-router/internal/chatstorage/genericchatstorage/chat_responses.go b/proxy-router/internal/chatstorage/genericchatstorage/chat_responses.go index b56ddca3..4eb6129d 100644 --- a/proxy-router/internal/chatstorage/genericchatstorage/chat_responses.go +++ b/proxy-router/internal/chatstorage/genericchatstorage/chat_responses.go @@ -131,3 +131,11 @@ func newRateLimitHeaders(h http.Header) RateLimitHeaders { } const FinishReasonStop FinishReason = "stop" + +type ImageGenerationResult struct { + Job string `json:"job"` + Status string `json:"status"` + ImageUrl string `json:"imageUrl" binding:"omitempty"` +} + +type ImageGenerationCallback func(completion *ImageGenerationResult) error diff --git a/proxy-router/internal/chatstorage/genericchatstorage/completion.go b/proxy-router/internal/chatstorage/genericchatstorage/completion.go new file mode 100644 index 00000000..eb9fd0fc --- /dev/null +++ b/proxy-router/internal/chatstorage/genericchatstorage/completion.go @@ -0,0 +1,153 @@ +package genericchatstorage + +import ( + "context" + + "github.com/sashabaranov/go-openai" +) + +type CompletionCallback func(ctx context.Context, completion Chunk) error + +type ChunkType string + +const ( + ChunkTypeText ChunkType = "text" + ChunkTypeImage ChunkType = "image" + ChunkTypeVideo ChunkType = "video" + ChunkTypeControl ChunkType = "control-message" +) + +type ChunkText struct { + data *openai.ChatCompletionResponse + isStreaming bool + tokenCount int +} + +func NewChunkText(data *openai.ChatCompletionResponse) *ChunkText { + return &ChunkText{ + data: data, + } +} + +func (c *ChunkText) IsStreaming() bool { + return false +} + +func (c *ChunkText) Tokens() int { + return c.data.Usage.CompletionTokens +} + +func (c *ChunkText) Type() ChunkType { + return ChunkTypeText +} + +func (c *ChunkText) String() string { + return c.data.Choices[0].Message.Content +} + +func (c *ChunkText) Data() interface{} { + return c.data +} + +type ChunkStreaming struct { + data *openai.ChatCompletionStreamResponse +} + +func NewChunkStreaming(data *openai.ChatCompletionStreamResponse) *ChunkStreaming { + return &ChunkStreaming{ + data: data, + } +} + +func (c *ChunkStreaming) IsStreaming() bool { + return true +} + +func (c *ChunkStreaming) Tokens() int { + return len(c.data.Choices) +} + +func (c *ChunkStreaming) Type() ChunkType { + return ChunkTypeText +} + +func (c *ChunkStreaming) String() string { + return c.data.Choices[0].Delta.Content +} + +func (c *ChunkStreaming) Data() interface{} { + return c.data +} + +type ChunkControl struct { + message string +} + +func NewChunkControl(message string) *ChunkControl { + return &ChunkControl{ + message: message, + } +} + +func (c *ChunkControl) IsStreaming() bool { + return true +} + +func (c *ChunkControl) Tokens() int { + return 0 +} + +func (c *ChunkControl) Type() ChunkType { + return ChunkTypeControl +} + +func (c *ChunkControl) String() string { + return "" +} + +func (c *ChunkControl) Data() interface{} { + return c.message +} + +type ChunkImage struct { + data *ImageGenerationResult +} + +func NewChunkImage(data *ImageGenerationResult) *ChunkImage { + return &ChunkImage{ + data: data, + } +} + +func (c *ChunkImage) IsStreaming() bool { + return false +} + +func (c *ChunkImage) Tokens() int { + return 1 +} + +func (c *ChunkImage) Type() ChunkType { + return ChunkTypeImage +} + +func (c *ChunkImage) String() string { + return c.data.ImageUrl +} + +func (c *ChunkImage) Data() interface{} { + return c.data +} + +type Chunk interface { + IsStreaming() bool + Tokens() int + Type() ChunkType + String() string + Data() interface{} +} + +var _ Chunk = &ChunkText{} +var _ Chunk = &ChunkImage{} +var _ Chunk = &ChunkControl{} +var _ Chunk = &ChunkStreaming{} diff --git a/proxy-router/internal/chatstorage/genericchatstorage/interface.go b/proxy-router/internal/chatstorage/genericchatstorage/interface.go index f55dbe0b..631dd868 100644 --- a/proxy-router/internal/chatstorage/genericchatstorage/interface.go +++ b/proxy-router/internal/chatstorage/genericchatstorage/interface.go @@ -3,13 +3,12 @@ package genericchatstorage import ( "time" - "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/completion" "github.com/sashabaranov/go-openai" ) type ChatStorageInterface interface { LoadChatFromFile(chatID string) (*ChatHistory, error) - StorePromptResponseToFile(chatID string, isLocal bool, modelID string, prompt *openai.ChatCompletionRequest, responses []*completion.ChunkImpl, promptAt time.Time, responseAt time.Time) error + StorePromptResponseToFile(chatID string, isLocal bool, modelID string, prompt *openai.ChatCompletionRequest, responses []Chunk, promptAt time.Time, responseAt time.Time) error GetChats() []Chat DeleteChat(chatID string) error UpdateChatTitle(chatID string, title string) error @@ -31,32 +30,29 @@ func (h *ChatHistory) AppendChatHistory(req *openai.ChatCompletionRequest) *open return req } - //TODO: - - // messagesWithHistory := make([]openai.ChatCompletionMessage, 0) - // for _, chat := range h.Messages { - // message := openai.ChatCompletionMessage{ - // Role: chat.Prompt.Messages[0].Role, - // Content: chat.Prompt.Messages[0].Content, - // } - // messagesWithHistory = append(messagesWithHistory, message) - // messagesWithHistory = append(messagesWithHistory, openai.ChatCompletionMessage{ - // Role: "assistant", - // Content: chat.Response, - // }) - // } + messagesWithHistory := make([]openai.ChatCompletionMessage, 0) + for _, chat := range h.Messages { + messagesWithHistory = append(messagesWithHistory, openai.ChatCompletionMessage{ + Role: chat.Prompt.Messages[0].Role, + Content: chat.Prompt.Messages[0].Content, + }) + messagesWithHistory = append(messagesWithHistory, openai.ChatCompletionMessage{ + Role: "assistant", + Content: chat.Response, + }) + } - // messagesWithHistory = append(messagesWithHistory, req.Messages...) - // req.Messages = messagesWithHistory + messagesWithHistory = append(messagesWithHistory, req.Messages...) + req.Messages = messagesWithHistory return req } type ChatMessage struct { - Prompt OpenAiCompletitionRequest `json:"prompt"` - Response []*completion.ChunkImpl `json:"response"` - PromptAt int64 `json:"promptAt"` - ResponseAt int64 `json:"responseAt"` - IsImageContent bool `json:"isImageContent"` + Prompt OpenAiCompletionRequest `json:"prompt"` + Response string `json:"response"` + PromptAt int64 `json:"promptAt"` + ResponseAt int64 `json:"responseAt"` + IsImageContent bool `json:"isImageContent"` } type Chat struct { ChatID string `json:"chatId"` @@ -66,7 +62,7 @@ type Chat struct { CreatedAt int64 `json:"createdAt"` } -type OpenAiCompletitionRequest struct { +type OpenAiCompletionRequest struct { Model string `json:"model"` Messages []ChatCompletionMessage `json:"messages"` MaxTokens int `json:"max_tokens,omitempty"` diff --git a/proxy-router/internal/chatstorage/structs.go b/proxy-router/internal/chatstorage/structs.go deleted file mode 100644 index 9deb7ba1..00000000 --- a/proxy-router/internal/chatstorage/structs.go +++ /dev/null @@ -1 +0,0 @@ -package chatstorage diff --git a/proxy-router/internal/completion/interface.go b/proxy-router/internal/completion/interface.go deleted file mode 100644 index f862802c..00000000 --- a/proxy-router/internal/completion/interface.go +++ /dev/null @@ -1,20 +0,0 @@ -package completion - -import "context" - -type CompletionCallback func(ctx context.Context, completion *ChunkImpl) error - -type ChunkType string - -const ( - ChunkTypeText ChunkType = "text" - ChunkTypeImage ChunkType = "image" - ChunkTypeVideo ChunkType = "video" -) - -type ChunkImpl struct { - Data interface{} - IsStreaming bool - Tokens int - Type ChunkType -} diff --git a/proxy-router/internal/proxyapi/controller_http.go b/proxy-router/internal/proxyapi/controller_http.go index efea1025..0cadc20d 100644 --- a/proxy-router/internal/proxyapi/controller_http.go +++ b/proxy-router/internal/proxyapi/controller_http.go @@ -6,11 +6,9 @@ import ( "fmt" "net/http" - constants "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/aiengine" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/blockchainapi/structs" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/chatstorage/genericchatstorage" - "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/completion" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" "github.com/ethereum/go-ethereum/common" @@ -27,13 +25,15 @@ type ProxyController struct { service *ProxyServiceSender aiEngine AIEngine chatStorage genericchatstorage.ChatStorageInterface + log lib.ILogger } -func NewProxyController(service *ProxyServiceSender, aiEngine AIEngine, chatStorage genericchatstorage.ChatStorageInterface) *ProxyController { +func NewProxyController(service *ProxyServiceSender, aiEngine AIEngine, chatStorage genericchatstorage.ChatStorageInterface, log lib.ILogger) *ProxyController { c := &ProxyController{ service: service, aiEngine: aiEngine, chatStorage: chatStorage, + log: log, } return c @@ -113,7 +113,6 @@ func (c *ProxyController) Prompt(ctx *gin.Context) { } // promptAt := time.Now() - // isStream := ctx.GetHeader(constants.HEADER_ACCEPT) == constants.CONTENT_TYPE_EVENT_STREAM adapter, err := c.aiEngine.GetAdapter(ctx, chatID.Hash, head.ModelID.Hash, head.SessionID.Hash, true) if err != nil { @@ -121,13 +120,12 @@ func (c *ProxyController) Prompt(ctx *gin.Context) { return } - err = adapter.Prompt(ctx, &body, func(cbctx context.Context, completion *completion.ChunkImpl) error { - marshalledResponse, err := json.Marshal(completion.Data) + err = adapter.Prompt(ctx, &body, func(cbctx context.Context, completion genericchatstorage.Chunk) error { + marshalledResponse, err := json.Marshal(completion.Data()) if err != nil { return err } - ctx.Writer.Header().Set(constants.HEADER_CONTENT_TYPE, constants.CONTENT_TYPE_EVENT_STREAM) _, err = ctx.Writer.Write([]byte(fmt.Sprintf("data: %s\n\n", marshalledResponse))) if err != nil { return err @@ -138,6 +136,7 @@ func (c *ProxyController) Prompt(ctx *gin.Context) { }) if err != nil { + c.log.Errorf("error sending prompt: %s", err) ctx.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) return } diff --git a/proxy-router/internal/proxyapi/proxy_receiver.go b/proxy-router/internal/proxyapi/proxy_receiver.go index e88df933..5d94b513 100644 --- a/proxy-router/internal/proxyapi/proxy_receiver.go +++ b/proxy-router/internal/proxyapi/proxy_receiver.go @@ -8,7 +8,7 @@ import ( "time" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/aiengine" - "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/completion" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/chatstorage/genericchatstorage" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/config" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" m "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/proxyapi/morrpcmessage" @@ -73,14 +73,14 @@ func (s *ProxyReceiver) SessionPrompt(ctx context.Context, requestID string, use return 0, 0, err } - err = adapter.Prompt(ctx, req, func(ctx context.Context, completion *completion.ChunkImpl) error { - totalTokens += completion.Tokens + err = adapter.Prompt(ctx, req, func(ctx context.Context, completion genericchatstorage.Chunk) error { + totalTokens += completion.Tokens() if ttftMs == 0 { ttftMs = int(time.Now().UnixMilli() - now) } - marshalledResponse, err := json.Marshal(completion.Data) + marshalledResponse, err := json.Marshal(completion.Data()) if err != nil { return err } diff --git a/proxy-router/internal/proxyapi/proxy_sender.go b/proxy-router/internal/proxyapi/proxy_sender.go index df6e209d..b8846dc9 100644 --- a/proxy-router/internal/proxyapi/proxy_sender.go +++ b/proxy-router/internal/proxyapi/proxy_sender.go @@ -11,9 +11,7 @@ import ( "net/url" "time" - "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/aiengine" gcs "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/chatstorage/genericchatstorage" - "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/completion" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/interfaces" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" msgs "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/proxyapi/morrpcmessage" @@ -280,7 +278,7 @@ func (p *ProxyServiceSender) validateMsgSignature(result any, signature lib.HexS return p.morRPC.VerifySignature(result, signature, providerPubicKey, p.log) } -func (p *ProxyServiceSender) SendPromptV2(ctx context.Context, sessionID common.Hash, prompt *openai.ChatCompletionRequest, cb completion.CompletionCallback) (interface{}, error) { +func (p *ProxyServiceSender) SendPromptV2(ctx context.Context, sessionID common.Hash, prompt *openai.ChatCompletionRequest, cb gcs.CompletionCallback) (interface{}, error) { session, err := p.sessionRepo.GetSession(ctx, sessionID) if err != nil { return nil, ErrSessionNotFound @@ -323,14 +321,7 @@ func (p *ProxyServiceSender) SendPromptV2(ctx context.Context, sessionID common. return nil, err } - msg := struct { - Message string `json:"message"` - }{Message: "provider failed, failover enabled"} - - err = cb(ctx, &completion.ChunkImpl{ - Data: msg, - IsStreaming: true, - }) + err = cb(ctx, gcs.NewChunkControl("provider failed, failover enabled")) if err != nil { return nil, err } @@ -348,14 +339,11 @@ func (p *ProxyServiceSender) SendPromptV2(ctx context.Context, sessionID common. return nil, err } - msg = struct { - Message string `json:"message"` - }{Message: "new session opened"} + err = cb(ctx, gcs.NewChunkControl("new session opened")) + if err != nil { + return nil, err + } - err = cb(ctx, &completion.ChunkImpl{ - Data: msg, - IsStreaming: true, - }) return p.SendPromptV2(ctx, newSessionID, prompt, cb) } @@ -372,7 +360,7 @@ func (p *ProxyServiceSender) SendPromptV2(ctx context.Context, sessionID common. return result, nil } -func (p *ProxyServiceSender) rpcRequestStreamV2(ctx context.Context, cb completion.CompletionCallback, url string, rpcMessage *msgs.RPCMessage, providerPublicKey lib.HexString) (interface{}, int, int, error) { +func (p *ProxyServiceSender) rpcRequestStreamV2(ctx context.Context, cb gcs.CompletionCallback, url string, rpcMessage *msgs.RPCMessage, providerPublicKey lib.HexString) (interface{}, int, int, error) { prKey, err := p.privateKey.GetPrivateKey() if err != nil { return nil, 0, 0, ErrMissingPrKey @@ -453,36 +441,35 @@ func (p *ProxyServiceSender) rpcRequestStreamV2(ctx context.Context, cb completi return nil, ttftMs, totalTokens, lib.WrapError(ErrDecrFailed, err) } - var payload gcs.ChatCompletionResponse + var payload openai.ChatCompletionStreamResponse err = json.Unmarshal(aiResponse, &payload) var stop = true + var chunk gcs.Chunk if err == nil && len(payload.Choices) > 0 { stop = false choices := payload.Choices for _, choice := range choices { - if choice.FinishReason == gcs.FinishReasonStop { + if choice.FinishReason == openai.FinishReasonStop { stop = true } } totalTokens += len(choices) responses = append(responses, payload) + chunk = gcs.NewChunkStreaming(&payload) } else { - var prodiaPayload aiengine.ProdiaGenerationResult - err = json.Unmarshal(aiResponse, &prodiaPayload) + var imageGenerationResult gcs.ImageGenerationResult + err = json.Unmarshal(aiResponse, &imageGenerationResult) if err != nil { return nil, ttftMs, totalTokens, lib.WrapError(ErrInvalidResponse, err) } totalTokens += 1 - responses = append(responses, prodiaPayload) + responses = append(responses, imageGenerationResult) + chunk = gcs.NewChunkImage(&imageGenerationResult) } if ctx.Err() != nil { return nil, ttftMs, totalTokens, ctx.Err() } - chunk := &completion.ChunkImpl{ - Data: aiResponse, - IsStreaming: true, - } err = cb(ctx, chunk) if err != nil { return nil, ttftMs, totalTokens, lib.WrapError(ErrResponseErr, err) From 3d11184521f1266342494c4a4c0e1477af7d6b2b Mon Sep 17 00:00:00 2001 From: Oleksandr Date: Wed, 13 Nov 2024 13:09:19 +0200 Subject: [PATCH 119/260] add length to te pagination results --- .../contracts/diamond/facets/Marketplace.sol | 10 +- .../diamond/facets/ModelRegistry.sol | 2 +- .../diamond/facets/SessionRouter.sol | 7 +- .../contracts/diamond/storages/BidStorage.sol | 28 ++-- .../diamond/storages/DelegationStorage.sol | 7 +- .../diamond/storages/ModelStorage.sol | 12 +- .../diamond/storages/ProviderStorage.sol | 6 +- .../diamond/storages/SessionStorage.sol | 22 ++- .../interfaces/facets/IDelegation.sol | 2 +- .../interfaces/storage/IBidStorage.sol | 12 +- .../interfaces/storage/IDelegationStorage.sol | 10 +- .../interfaces/storage/IModelStorage.sol | 4 +- .../interfaces/storage/IProviderStorage.sol | 2 +- .../interfaces/storage/ISessionStorage.sol | 10 +- .../delegate-registry/DelegateRegistry.sol | 128 ++++++++++++++---- .../delegate-registry/IDelegateRegistry.sol | 98 ++++++++++++-- .../libraries/RegistryHashes.sol | 60 ++++++-- .../libraries/RegistryStorage.sol | 11 +- .../deploy/1_full_protocol.migration.ts | 13 ++ .../deploy/data/config_arbitrum_sepolia.json | 1 + .../deploy/helpers/config-parser.ts | 1 + .../test/diamond/facets/Marketplace.test.ts | 36 ++--- .../test/diamond/facets/ModelRegistry.test.ts | 8 +- .../diamond/facets/ProviderRegistry.test.ts | 8 +- .../test/diamond/facets/SessionRouter.test.ts | 24 ++-- 25 files changed, 392 insertions(+), 130 deletions(-) diff --git a/smart-contracts/contracts/diamond/facets/Marketplace.sol b/smart-contracts/contracts/diamond/facets/Marketplace.sol index 55c95c7b..dff7ec7c 100644 --- a/smart-contracts/contracts/diamond/facets/Marketplace.sol +++ b/smart-contracts/contracts/diamond/facets/Marketplace.sol @@ -60,8 +60,12 @@ contract Marketplace is emit MarketplaceBidMinMaxPriceUpdated(bidMinPricePerSecond_, bidMaxPricePerSecond_); } - function postModelBid(address provider_, bytes32 modelId_, uint256 pricePerSecond_) external returns (bytes32 bidId) { - _validateDelegatee(_msgSender(), provider_, DELEGATION_RULES_MARKETPLACE); + function postModelBid( + address provider_, + bytes32 modelId_, + uint256 pricePerSecond_ + ) external returns (bytes32 bidId) { + _validateDelegatee(_msgSender(), provider_, DELEGATION_RULES_MARKETPLACE); if (!getIsProviderActive(provider_)) { revert MarketplaceProviderNotFound(); @@ -112,7 +116,7 @@ contract Marketplace is function deleteModelBid(bytes32 bidId_) external { BidsStorage storage bidsStorage = _getBidsStorage(); - _validateDelegatee(_msgSender(), bidsStorage.bids[bidId_].provider, DELEGATION_RULES_MARKETPLACE); + _validateDelegatee(_msgSender(), bidsStorage.bids[bidId_].provider, DELEGATION_RULES_MARKETPLACE); if (!isBidActive(bidId_)) { revert MarketplaceActiveBidNotFound(); diff --git a/smart-contracts/contracts/diamond/facets/ModelRegistry.sol b/smart-contracts/contracts/diamond/facets/ModelRegistry.sol index de75e6cf..2b46af4d 100644 --- a/smart-contracts/contracts/diamond/facets/ModelRegistry.sol +++ b/smart-contracts/contracts/diamond/facets/ModelRegistry.sol @@ -75,7 +75,7 @@ contract ModelRegistry is IModelRegistry, OwnableDiamondStorage, ModelStorage, B ModelsStorage storage modelsStorage = _getModelsStorage(); Model storage model = modelsStorage.models[modelId_]; - _validateDelegatee(_msgSender(), model.owner, DELEGATION_RULES_MODEL); + _validateDelegatee(_msgSender(), model.owner, DELEGATION_RULES_MODEL); if (!_isModelActiveBidsEmpty(modelId_)) { revert ModelHasActiveBids(); diff --git a/smart-contracts/contracts/diamond/facets/SessionRouter.sol b/smart-contracts/contracts/diamond/facets/SessionRouter.sol index 4545e19b..5b330636 100644 --- a/smart-contracts/contracts/diamond/facets/SessionRouter.sol +++ b/smart-contracts/contracts/diamond/facets/SessionRouter.sol @@ -90,7 +90,12 @@ contract SessionRouter is bytes32 bidId_ = _extractProviderApproval(approvalEncoded_); - bytes32 sessionId_ = getSessionId(user_, _getBidsStorage().bids[bidId_].provider, bidId_, sessionsStorage.sessionNonce++); + bytes32 sessionId_ = getSessionId( + user_, + _getBidsStorage().bids[bidId_].provider, + bidId_, + sessionsStorage.sessionNonce++ + ); Session storage session = sessionsStorage.sessions[sessionId_]; IERC20(_getBidsStorage().token).safeTransferFrom(user_, address(this), amount_); diff --git a/smart-contracts/contracts/diamond/storages/BidStorage.sol b/smart-contracts/contracts/diamond/storages/BidStorage.sol index 7a2db7ee..7a842aea 100644 --- a/smart-contracts/contracts/diamond/storages/BidStorage.sol +++ b/smart-contracts/contracts/diamond/storages/BidStorage.sol @@ -32,28 +32,40 @@ contract BidStorage is IBidStorage { address provider_, uint256 offset_, uint256 limit_ - ) external view returns (bytes32[] memory) { - return _getBidsStorage().providerActiveBids[provider_].part(offset_, limit_); + ) external view returns (bytes32[] memory, uint256) { + EnumerableSet.Bytes32Set storage providerActiveBids = _getBidsStorage().providerActiveBids[provider_]; + + return (providerActiveBids.part(offset_, limit_), providerActiveBids.length()); } function getModelActiveBids( bytes32 modelId_, uint256 offset_, uint256 limit_ - ) external view returns (bytes32[] memory) { - return _getBidsStorage().modelActiveBids[modelId_].part(offset_, limit_); + ) external view returns (bytes32[] memory, uint256) { + EnumerableSet.Bytes32Set storage modelActiveBids = _getBidsStorage().modelActiveBids[modelId_]; + + return (modelActiveBids.part(offset_, limit_), modelActiveBids.length()); } function getProviderBids( address provider_, uint256 offset_, uint256 limit_ - ) external view returns (bytes32[] memory) { - return _getBidsStorage().providerBids[provider_].part(offset_, limit_); + ) external view returns (bytes32[] memory, uint256) { + EnumerableSet.Bytes32Set storage providerBids = _getBidsStorage().providerBids[provider_]; + + return (providerBids.part(offset_, limit_), providerBids.length()); } - function getModelBids(bytes32 modelId_, uint256 offset_, uint256 limit_) external view returns (bytes32[] memory) { - return _getBidsStorage().modelBids[modelId_].part(offset_, limit_); + function getModelBids( + bytes32 modelId_, + uint256 offset_, + uint256 limit_ + ) external view returns (bytes32[] memory, uint256) { + EnumerableSet.Bytes32Set storage modelBids = _getBidsStorage().modelBids[modelId_]; + + return (modelBids.part(offset_, limit_), modelBids.length()); } function getToken() external view returns (address) { diff --git a/smart-contracts/contracts/diamond/storages/DelegationStorage.sol b/smart-contracts/contracts/diamond/storages/DelegationStorage.sol index eff95de3..a5418894 100644 --- a/smart-contracts/contracts/diamond/storages/DelegationStorage.sol +++ b/smart-contracts/contracts/diamond/storages/DelegationStorage.sol @@ -8,7 +8,7 @@ import {Paginator} from "@solarity/solidity-lib/libs/arrays/Paginator.sol"; import {IDelegationStorage} from "../../interfaces/storage/IDelegationStorage.sol"; import {IDelegateRegistry} from "../../interfaces/deps/IDelegateRegistry.sol"; -contract DelegationStorage is IDelegationStorage { +contract DelegationStorage is IDelegationStorage { struct DLGTNStorage { address registry; } @@ -23,11 +23,12 @@ contract DelegationStorage is IDelegationStorage { function getRegistry() external view returns (address) { return _getDelegationStorage().registry; } - + function isRightsDelegated(address delegatee_, address delegator_, bytes32 rights_) public view returns (bool) { DLGTNStorage storage delegationStorage = _getDelegationStorage(); - return IDelegateRegistry(delegationStorage.registry).checkDelegateForContract( + return + IDelegateRegistry(delegationStorage.registry).checkDelegateForContract( delegatee_, delegator_, address(this), diff --git a/smart-contracts/contracts/diamond/storages/ModelStorage.sol b/smart-contracts/contracts/diamond/storages/ModelStorage.sol index a5151c94..0b8425df 100644 --- a/smart-contracts/contracts/diamond/storages/ModelStorage.sol +++ b/smart-contracts/contracts/diamond/storages/ModelStorage.sol @@ -25,16 +25,20 @@ contract ModelStorage is IModelStorage { return _getModelsStorage().models[modelId_]; } - function getModelIds(uint256 offset_, uint256 limit_) external view returns (bytes32[] memory) { - return _getModelsStorage().modelIds.part(offset_, limit_); + function getModelIds(uint256 offset_, uint256 limit_) external view returns (bytes32[] memory, uint256) { + EnumerableSet.Bytes32Set storage modelIds = _getModelsStorage().modelIds; + + return (modelIds.part(offset_, limit_), modelIds.length()); } function getModelMinimumStake() external view returns (uint256) { return _getModelsStorage().modelMinimumStake; } - function getActiveModelIds(uint256 offset_, uint256 limit_) external view returns (bytes32[] memory) { - return _getModelsStorage().activeModels.part(offset_, limit_); + function getActiveModelIds(uint256 offset_, uint256 limit_) external view returns (bytes32[] memory, uint256) { + EnumerableSet.Bytes32Set storage activeModels = _getModelsStorage().activeModels; + + return (activeModels.part(offset_, limit_), activeModels.length()); } function getIsModelActive(bytes32 modelId_) public view returns (bool) { diff --git a/smart-contracts/contracts/diamond/storages/ProviderStorage.sol b/smart-contracts/contracts/diamond/storages/ProviderStorage.sol index bcc837ec..5dad575c 100644 --- a/smart-contracts/contracts/diamond/storages/ProviderStorage.sol +++ b/smart-contracts/contracts/diamond/storages/ProviderStorage.sol @@ -31,8 +31,10 @@ contract ProviderStorage is IProviderStorage { return _getProvidersStorage().providerMinimumStake; } - function getActiveProviders(uint256 offset_, uint256 limit_) external view returns (address[] memory) { - return _getProvidersStorage().activeProviders.part(offset_, limit_); + function getActiveProviders(uint256 offset_, uint256 limit_) external view returns (address[] memory, uint256) { + EnumerableSet.AddressSet storage activeProviders = _getProvidersStorage().activeProviders; + + return (activeProviders.part(offset_, limit_), activeProviders.length()); } function getIsProviderActive(address provider_) public view returns (bool) { diff --git a/smart-contracts/contracts/diamond/storages/SessionStorage.sol b/smart-contracts/contracts/diamond/storages/SessionStorage.sol index eb33f9ae..3a34f4ef 100644 --- a/smart-contracts/contracts/diamond/storages/SessionStorage.sol +++ b/smart-contracts/contracts/diamond/storages/SessionStorage.sol @@ -40,24 +40,34 @@ contract SessionStorage is ISessionStorage { return _getSessionsStorage().sessions[sessionId_]; } - function getUserSessions(address user_, uint256 offset_, uint256 limit_) external view returns (bytes32[] memory) { - return _getSessionsStorage().userSessions[user_].part(offset_, limit_); + function getUserSessions( + address user_, + uint256 offset_, + uint256 limit_ + ) external view returns (bytes32[] memory, uint256) { + EnumerableSet.Bytes32Set storage userSessions = _getSessionsStorage().userSessions[user_]; + + return (userSessions.part(offset_, limit_), userSessions.length()); } function getProviderSessions( address provider_, uint256 offset_, uint256 limit_ - ) external view returns (bytes32[] memory) { - return _getSessionsStorage().providerSessions[provider_].part(offset_, limit_); + ) external view returns (bytes32[] memory, uint256) { + EnumerableSet.Bytes32Set storage providerSessions = _getSessionsStorage().providerSessions[provider_]; + + return (providerSessions.part(offset_, limit_), providerSessions.length()); } function getModelSessions( bytes32 modelId_, uint256 offset_, uint256 limit_ - ) external view returns (bytes32[] memory) { - return _getSessionsStorage().modelSessions[modelId_].part(offset_, limit_); + ) external view returns (bytes32[] memory, uint256) { + EnumerableSet.Bytes32Set storage modelSessions = _getSessionsStorage().modelSessions[modelId_]; + + return (modelSessions.part(offset_, limit_), modelSessions.length()); } function getPools() external view returns (Pool[] memory) { diff --git a/smart-contracts/contracts/interfaces/facets/IDelegation.sol b/smart-contracts/contracts/interfaces/facets/IDelegation.sol index 956b68a8..3adb2619 100644 --- a/smart-contracts/contracts/interfaces/facets/IDelegation.sol +++ b/smart-contracts/contracts/interfaces/facets/IDelegation.sol @@ -17,4 +17,4 @@ interface IDelegation is IDelegationStorage { * @param registry_ https://docs.delegate.xyz/technical-documentation/delegate-registry/contract-addresses */ function setRegistry(address registry_) external; - } +} diff --git a/smart-contracts/contracts/interfaces/storage/IBidStorage.sol b/smart-contracts/contracts/interfaces/storage/IBidStorage.sol index 708bf7e8..05f2ad25 100644 --- a/smart-contracts/contracts/interfaces/storage/IBidStorage.sol +++ b/smart-contracts/contracts/interfaces/storage/IBidStorage.sol @@ -36,7 +36,7 @@ interface IBidStorage { address provider_, uint256 offset_, uint256 limit_ - ) external view returns (bytes32[] memory); + ) external view returns (bytes32[] memory, uint256); /** * The function returns active model bids. @@ -48,7 +48,7 @@ interface IBidStorage { bytes32 modelId_, uint256 offset_, uint256 limit_ - ) external view returns (bytes32[] memory); + ) external view returns (bytes32[] memory, uint256); /** * The function returns provider bids. @@ -60,7 +60,7 @@ interface IBidStorage { address provider_, uint256 offset_, uint256 limit_ - ) external view returns (bytes32[] memory); + ) external view returns (bytes32[] memory, uint256); /** * The function returns model bids. @@ -68,7 +68,11 @@ interface IBidStorage { * @param offset_ Offset for the pagination. * @param limit_ Number of entities to return. */ - function getModelBids(bytes32 modelId_, uint256 offset_, uint256 limit_) external view returns (bytes32[] memory); + function getModelBids( + bytes32 modelId_, + uint256 offset_, + uint256 limit_ + ) external view returns (bytes32[] memory, uint256); /** * The function returns stake token (MOR). diff --git a/smart-contracts/contracts/interfaces/storage/IDelegationStorage.sol b/smart-contracts/contracts/interfaces/storage/IDelegationStorage.sol index 1cdd0bd6..487f56cd 100644 --- a/smart-contracts/contracts/interfaces/storage/IDelegationStorage.sol +++ b/smart-contracts/contracts/interfaces/storage/IDelegationStorage.sol @@ -8,27 +8,27 @@ interface IDelegationStorage { * @return `keccak256("delegation.rules.provider")` */ function DELEGATION_RULES_PROVIDER() external view returns (bytes32); - + /** * @return `keccak256("delegation.rules.model")` */ function DELEGATION_RULES_MODEL() external view returns (bytes32); - + /** * @return `keccak256("delegation.rules.marketplace")` */ function DELEGATION_RULES_MARKETPLACE() external view returns (bytes32); - + /** * @return `keccak256("delegation.rules.session")` */ function DELEGATION_RULES_SESSION() external view returns (bytes32); - + /** * @return The registry address. */ function getRegistry() external view returns (address); - + /** * The function to check is `delegator_` add permissions for `delegatee_`. * @return `true` when delegated. diff --git a/smart-contracts/contracts/interfaces/storage/IModelStorage.sol b/smart-contracts/contracts/interfaces/storage/IModelStorage.sol index 64529112..9387ad5f 100644 --- a/smart-contracts/contracts/interfaces/storage/IModelStorage.sol +++ b/smart-contracts/contracts/interfaces/storage/IModelStorage.sol @@ -35,7 +35,7 @@ interface IModelStorage { * @param offset_ Offset for the pagination. * @param limit_ Number of entities to return. */ - function getModelIds(uint256 offset_, uint256 limit_) external view returns (bytes32[] memory); + function getModelIds(uint256 offset_, uint256 limit_) external view returns (bytes32[] memory, uint256); /** * The function returns the model minimal stake. @@ -47,7 +47,7 @@ interface IModelStorage { * @param offset_ Offset for the pagination. * @param limit_ Number of entities to return. */ - function getActiveModelIds(uint256 offset_, uint256 limit_) external view returns (bytes32[] memory); + function getActiveModelIds(uint256 offset_, uint256 limit_) external view returns (bytes32[] memory, uint256); /** * The function returns the model status, active or not. diff --git a/smart-contracts/contracts/interfaces/storage/IProviderStorage.sol b/smart-contracts/contracts/interfaces/storage/IProviderStorage.sol index 74fc8e1d..308a711d 100644 --- a/smart-contracts/contracts/interfaces/storage/IProviderStorage.sol +++ b/smart-contracts/contracts/interfaces/storage/IProviderStorage.sol @@ -36,7 +36,7 @@ interface IProviderStorage { * @param offset_ Offset for the pagination. * @param limit_ Number of entities to return. */ - function getActiveProviders(uint256 offset_, uint256 limit_) external view returns (address[] memory); + function getActiveProviders(uint256 offset_, uint256 limit_) external view returns (address[] memory, uint256); /** * The function returns provider status, active or not. diff --git a/smart-contracts/contracts/interfaces/storage/ISessionStorage.sol b/smart-contracts/contracts/interfaces/storage/ISessionStorage.sol index b2eb97ed..50abd11d 100644 --- a/smart-contracts/contracts/interfaces/storage/ISessionStorage.sol +++ b/smart-contracts/contracts/interfaces/storage/ISessionStorage.sol @@ -63,7 +63,11 @@ interface ISessionStorage { * @param offset_ Offset for the pagination. * @param limit_ Number of entities to return. */ - function getUserSessions(address user_, uint256 offset_, uint256 limit_) external view returns (bytes32[] memory); + function getUserSessions( + address user_, + uint256 offset_, + uint256 limit_ + ) external view returns (bytes32[] memory, uint256); /** * The function returns the provider session IDs. @@ -75,7 +79,7 @@ interface ISessionStorage { address provider_, uint256 offset_, uint256 limit_ - ) external view returns (bytes32[] memory); + ) external view returns (bytes32[] memory, uint256); /** * The function returns the model session IDs. @@ -87,7 +91,7 @@ interface ISessionStorage { bytes32 modelId_, uint256 offset_, uint256 limit_ - ) external view returns (bytes32[] memory); + ) external view returns (bytes32[] memory, uint256); /** * The function returns the pools info. diff --git a/smart-contracts/contracts/mock/delegate-registry/DelegateRegistry.sol b/smart-contracts/contracts/mock/delegate-registry/DelegateRegistry.sol index 046eeb1c..4489b234 100644 --- a/smart-contracts/contracts/mock/delegate-registry/DelegateRegistry.sol +++ b/smart-contracts/contracts/mock/delegate-registry/DelegateRegistry.sol @@ -62,7 +62,12 @@ contract DelegateRegistry is IDelegateRegistry { } /// @inheritdoc IDelegateRegistry - function delegateContract(address to, address contract_, bytes32 rights, bool enable) external payable override returns (bytes32 hash) { + function delegateContract( + address to, + address contract_, + bytes32 rights, + bool enable + ) external payable override returns (bytes32 hash) { hash = Hashes.contractHash(msg.sender, rights, to, contract_); bytes32 location = Hashes.location(hash); address loadedFrom = _loadFrom(location); @@ -81,7 +86,13 @@ contract DelegateRegistry is IDelegateRegistry { } /// @inheritdoc IDelegateRegistry - function delegateERC721(address to, address contract_, uint256 tokenId, bytes32 rights, bool enable) external payable override returns (bytes32 hash) { + function delegateERC721( + address to, + address contract_, + uint256 tokenId, + bytes32 rights, + bool enable + ) external payable override returns (bytes32 hash) { hash = Hashes.erc721Hash(msg.sender, rights, to, tokenId, contract_); bytes32 location = Hashes.location(hash); address loadedFrom = _loadFrom(location); @@ -101,7 +112,12 @@ contract DelegateRegistry is IDelegateRegistry { } // @inheritdoc IDelegateRegistry - function delegateERC20(address to, address contract_, bytes32 rights, uint256 amount) external payable override returns (bytes32 hash) { + function delegateERC20( + address to, + address contract_, + bytes32 rights, + uint256 amount + ) external payable override returns (bytes32 hash) { hash = Hashes.erc20Hash(msg.sender, rights, to, contract_); console.log("msg.sender", msg.sender); bytes32 location = Hashes.location(hash); @@ -126,7 +142,13 @@ contract DelegateRegistry is IDelegateRegistry { } /// @inheritdoc IDelegateRegistry - function delegateERC1155(address to, address contract_, uint256 tokenId, bytes32 rights, uint256 amount) external payable override returns (bytes32 hash) { + function delegateERC1155( + address to, + address contract_, + uint256 tokenId, + bytes32 rights, + uint256 amount + ) external payable override returns (bytes32 hash) { hash = Hashes.erc1155Hash(msg.sender, rights, to, tokenId, contract_); bytes32 location = Hashes.location(hash); address loadedFrom = _loadFrom(location); @@ -176,11 +198,20 @@ contract DelegateRegistry is IDelegateRegistry { } /// @inheritdoc IDelegateRegistry - function checkDelegateForContract(address to, address from, address contract_, bytes32 rights) external view override returns (bool valid) { + function checkDelegateForContract( + address to, + address from, + address contract_, + bytes32 rights + ) external view override returns (bool valid) { if (!_invalidFrom(from)) { - valid = _validateFrom(Hashes.allLocation(from, "", to), from) || _validateFrom(Hashes.contractLocation(from, "", to, contract_), from); + valid = + _validateFrom(Hashes.allLocation(from, "", to), from) || + _validateFrom(Hashes.contractLocation(from, "", to, contract_), from); if (!Ops.or(rights == "", valid)) { - valid = _validateFrom(Hashes.allLocation(from, rights, to), from) || _validateFrom(Hashes.contractLocation(from, rights, to, contract_), from); + valid = + _validateFrom(Hashes.allLocation(from, rights, to), from) || + _validateFrom(Hashes.contractLocation(from, rights, to, contract_), from); } } assembly ("memory-safe") { @@ -191,13 +222,23 @@ contract DelegateRegistry is IDelegateRegistry { } /// @inheritdoc IDelegateRegistry - function checkDelegateForERC721(address to, address from, address contract_, uint256 tokenId, bytes32 rights) external view override returns (bool valid) { + function checkDelegateForERC721( + address to, + address from, + address contract_, + uint256 tokenId, + bytes32 rights + ) external view override returns (bool valid) { if (!_invalidFrom(from)) { - valid = _validateFrom(Hashes.allLocation(from, "", to), from) || _validateFrom(Hashes.contractLocation(from, "", to, contract_), from) - || _validateFrom(Hashes.erc721Location(from, "", to, tokenId, contract_), from); + valid = + _validateFrom(Hashes.allLocation(from, "", to), from) || + _validateFrom(Hashes.contractLocation(from, "", to, contract_), from) || + _validateFrom(Hashes.erc721Location(from, "", to, tokenId, contract_), from); if (!Ops.or(rights == "", valid)) { - valid = _validateFrom(Hashes.allLocation(from, rights, to), from) || _validateFrom(Hashes.contractLocation(from, rights, to, contract_), from) - || _validateFrom(Hashes.erc721Location(from, rights, to, tokenId, contract_), from); + valid = + _validateFrom(Hashes.allLocation(from, rights, to), from) || + _validateFrom(Hashes.contractLocation(from, rights, to, contract_), from) || + _validateFrom(Hashes.erc721Location(from, rights, to, tokenId, contract_), from); } } assembly ("memory-safe") { @@ -208,13 +249,20 @@ contract DelegateRegistry is IDelegateRegistry { } /// @inheritdoc IDelegateRegistry - function checkDelegateForERC20(address to, address from, address contract_, bytes32 rights) external view override returns (uint256 amount) { + function checkDelegateForERC20( + address to, + address from, + address contract_, + bytes32 rights + ) external view override returns (uint256 amount) { if (!_invalidFrom(from)) { - amount = (_validateFrom(Hashes.allLocation(from, "", to), from) || _validateFrom(Hashes.contractLocation(from, "", to, contract_), from)) + amount = (_validateFrom(Hashes.allLocation(from, "", to), from) || + _validateFrom(Hashes.contractLocation(from, "", to, contract_), from)) ? type(uint256).max : _loadDelegationUint(Hashes.erc20Location(from, "", to, contract_), Storage.POSITIONS_AMOUNT); if (!Ops.or(rights == "", amount == type(uint256).max)) { - uint256 rightsBalance = (_validateFrom(Hashes.allLocation(from, rights, to), from) || _validateFrom(Hashes.contractLocation(from, rights, to, contract_), from)) + uint256 rightsBalance = (_validateFrom(Hashes.allLocation(from, rights, to), from) || + _validateFrom(Hashes.contractLocation(from, rights, to, contract_), from)) ? type(uint256).max : _loadDelegationUint(Hashes.erc20Location(from, rights, to, contract_), Storage.POSITIONS_AMOUNT); amount = Ops.max(rightsBalance, amount); @@ -227,15 +275,29 @@ contract DelegateRegistry is IDelegateRegistry { } /// @inheritdoc IDelegateRegistry - function checkDelegateForERC1155(address to, address from, address contract_, uint256 tokenId, bytes32 rights) external view override returns (uint256 amount) { + function checkDelegateForERC1155( + address to, + address from, + address contract_, + uint256 tokenId, + bytes32 rights + ) external view override returns (uint256 amount) { if (!_invalidFrom(from)) { - amount = (_validateFrom(Hashes.allLocation(from, "", to), from) || _validateFrom(Hashes.contractLocation(from, "", to, contract_), from)) + amount = (_validateFrom(Hashes.allLocation(from, "", to), from) || + _validateFrom(Hashes.contractLocation(from, "", to, contract_), from)) ? type(uint256).max - : _loadDelegationUint(Hashes.erc1155Location(from, "", to, tokenId, contract_), Storage.POSITIONS_AMOUNT); + : _loadDelegationUint( + Hashes.erc1155Location(from, "", to, tokenId, contract_), + Storage.POSITIONS_AMOUNT + ); if (!Ops.or(rights == "", amount == type(uint256).max)) { - uint256 rightsBalance = (_validateFrom(Hashes.allLocation(from, rights, to), from) || _validateFrom(Hashes.contractLocation(from, rights, to, contract_), from)) + uint256 rightsBalance = (_validateFrom(Hashes.allLocation(from, rights, to), from) || + _validateFrom(Hashes.contractLocation(from, rights, to, contract_), from)) ? type(uint256).max - : _loadDelegationUint(Hashes.erc1155Location(from, rights, to, tokenId, contract_), Storage.POSITIONS_AMOUNT); + : _loadDelegationUint( + Hashes.erc1155Location(from, rights, to, tokenId, contract_), + Storage.POSITIONS_AMOUNT + ); amount = Ops.max(rightsBalance, amount); } } @@ -270,14 +332,24 @@ contract DelegateRegistry is IDelegateRegistry { } /// @inheritdoc IDelegateRegistry - function getDelegationsFromHashes(bytes32[] calldata hashes) external view returns (Delegation[] memory delegations_) { + function getDelegationsFromHashes( + bytes32[] calldata hashes + ) external view returns (Delegation[] memory delegations_) { delegations_ = new Delegation[](hashes.length); unchecked { for (uint256 i = 0; i < hashes.length; ++i) { bytes32 location = Hashes.location(hashes[i]); address from = _loadFrom(location); if (_invalidFrom(from)) { - delegations_[i] = Delegation({type_: DelegationType.NONE, to: address(0), from: address(0), rights: "", amount: 0, contract_: address(0), tokenId: 0}); + delegations_[i] = Delegation({ + type_: DelegationType.NONE, + to: address(0), + from: address(0), + rights: "", + amount: 0, + contract_: address(0), + tokenId: 0 + }); } else { (, address to, address contract_) = _loadDelegationAddresses(location); delegations_[i] = Delegation({ @@ -377,7 +449,9 @@ contract DelegateRegistry is IDelegateRegistry { } /// @dev Helper function that takes an array of delegation hashes and returns an array of Delegation structs with their onchain information - function _getValidDelegationsFromHashes(bytes32[] storage hashes) internal view returns (Delegation[] memory delegations_) { + function _getValidDelegationsFromHashes( + bytes32[] storage hashes + ) internal view returns (Delegation[] memory delegations_) { uint256 count = 0; uint256 hashesLength = hashes.length; bytes32 hash; @@ -408,7 +482,9 @@ contract DelegateRegistry is IDelegateRegistry { } /// @dev Helper function that takes an array of delegation hashes and returns an array of valid delegation hashes - function _getValidDelegationHashesFromHashes(bytes32[] storage hashes) internal view returns (bytes32[] memory validHashes) { + function _getValidDelegationHashesFromHashes( + bytes32[] storage hashes + ) internal view returns (bytes32[] memory validHashes) { uint256 count = 0; uint256 hashesLength = hashes.length; bytes32 hash; @@ -456,7 +532,9 @@ contract DelegateRegistry is IDelegateRegistry { } /// @dev Helper function that loads the address for the delegation according to the packing rule for delegation storage - function _loadDelegationAddresses(bytes32 location) internal view returns (address from, address to, address contract_) { + function _loadDelegationAddresses( + bytes32 location + ) internal view returns (address from, address to, address contract_) { bytes32 firstSlot; bytes32 secondSlot; uint256 firstPacked = Storage.POSITIONS_FIRST_PACKED; diff --git a/smart-contracts/contracts/mock/delegate-registry/IDelegateRegistry.sol b/smart-contracts/contracts/mock/delegate-registry/IDelegateRegistry.sol index 8c7cb101..5ff67ad2 100644 --- a/smart-contracts/contracts/mock/delegate-registry/IDelegateRegistry.sol +++ b/smart-contracts/contracts/mock/delegate-registry/IDelegateRegistry.sol @@ -33,16 +33,42 @@ interface IDelegateRegistry { event DelegateAll(address indexed from, address indexed to, bytes32 rights, bool enable); /// @notice Emitted when an address delegates or revokes rights for a contract address - event DelegateContract(address indexed from, address indexed to, address indexed contract_, bytes32 rights, bool enable); + event DelegateContract( + address indexed from, + address indexed to, + address indexed contract_, + bytes32 rights, + bool enable + ); /// @notice Emitted when an address delegates or revokes rights for an ERC721 tokenId - event DelegateERC721(address indexed from, address indexed to, address indexed contract_, uint256 tokenId, bytes32 rights, bool enable); + event DelegateERC721( + address indexed from, + address indexed to, + address indexed contract_, + uint256 tokenId, + bytes32 rights, + bool enable + ); /// @notice Emitted when an address delegates or revokes rights for an amount of ERC20 tokens - event DelegateERC20(address indexed from, address indexed to, address indexed contract_, bytes32 rights, uint256 amount); + event DelegateERC20( + address indexed from, + address indexed to, + address indexed contract_, + bytes32 rights, + uint256 amount + ); /// @notice Emitted when an address delegates or revokes rights for an amount of an ERC1155 tokenId - event DelegateERC1155(address indexed from, address indexed to, address indexed contract_, uint256 tokenId, bytes32 rights, uint256 amount); + event DelegateERC1155( + address indexed from, + address indexed to, + address indexed contract_, + uint256 tokenId, + bytes32 rights, + uint256 amount + ); /// @notice Thrown if multicall calldata is malformed error MulticallFailed(); @@ -75,7 +101,12 @@ interface IDelegateRegistry { * @param enable Whether to enable or disable this delegation, true delegates and false revokes * @return delegationHash The unique identifier of the delegation */ - function delegateContract(address to, address contract_, bytes32 rights, bool enable) external payable returns (bytes32 delegationHash); + function delegateContract( + address to, + address contract_, + bytes32 rights, + bool enable + ) external payable returns (bytes32 delegationHash); /** * @notice Allow the delegate to act on behalf of `msg.sender` for a specific ERC721 token @@ -86,7 +117,13 @@ interface IDelegateRegistry { * @param enable Whether to enable or disable this delegation, true delegates and false revokes * @return delegationHash The unique identifier of the delegation */ - function delegateERC721(address to, address contract_, uint256 tokenId, bytes32 rights, bool enable) external payable returns (bytes32 delegationHash); + function delegateERC721( + address to, + address contract_, + uint256 tokenId, + bytes32 rights, + bool enable + ) external payable returns (bytes32 delegationHash); /** * @notice Allow the delegate to act on behalf of `msg.sender` for a specific amount of ERC20 tokens @@ -97,7 +134,12 @@ interface IDelegateRegistry { * @param amount The amount to delegate, > 0 delegates and 0 revokes * @return delegationHash The unique identifier of the delegation */ - function delegateERC20(address to, address contract_, bytes32 rights, uint256 amount) external payable returns (bytes32 delegationHash); + function delegateERC20( + address to, + address contract_, + bytes32 rights, + uint256 amount + ) external payable returns (bytes32 delegationHash); /** * @notice Allow the delegate to act on behalf of `msg.sender` for a specific amount of ERC1155 tokens @@ -109,7 +151,13 @@ interface IDelegateRegistry { * @param amount The amount of that token id to delegate, > 0 delegates and 0 revokes * @return delegationHash The unique identifier of the delegation */ - function delegateERC1155(address to, address contract_, uint256 tokenId, bytes32 rights, uint256 amount) external payable returns (bytes32 delegationHash); + function delegateERC1155( + address to, + address contract_, + uint256 tokenId, + bytes32 rights, + uint256 amount + ) external payable returns (bytes32 delegationHash); /** * ----------- CHECKS ----------- @@ -132,7 +180,12 @@ interface IDelegateRegistry { * @param rights Specific rights to check for, pass the zero value to ignore subdelegations and check full delegations only * @return valid Whether delegate is granted to act on from's behalf for entire wallet or that specific contract */ - function checkDelegateForContract(address to, address from, address contract_, bytes32 rights) external view returns (bool); + function checkDelegateForContract( + address to, + address from, + address contract_, + bytes32 rights + ) external view returns (bool); /** * @notice Check if `to` is a delegate of `from` for the specific `contract` and `tokenId`, the entire `contract_`, or the entire wallet @@ -143,7 +196,13 @@ interface IDelegateRegistry { * @param rights Specific rights to check for, pass the zero value to ignore subdelegations and check full delegations only * @return valid Whether delegate is granted to act on from's behalf for entire wallet, that contract, or that specific tokenId */ - function checkDelegateForERC721(address to, address from, address contract_, uint256 tokenId, bytes32 rights) external view returns (bool); + function checkDelegateForERC721( + address to, + address from, + address contract_, + uint256 tokenId, + bytes32 rights + ) external view returns (bool); /** * @notice Returns the amount of ERC20 tokens the delegate is granted rights to act on the behalf of @@ -153,7 +212,12 @@ interface IDelegateRegistry { * @param rights Specific rights to check for, pass the zero value to ignore subdelegations and check full delegations only * @return balance The delegated balance, which will be 0 if the delegation does not exist */ - function checkDelegateForERC20(address to, address from, address contract_, bytes32 rights) external view returns (uint256); + function checkDelegateForERC20( + address to, + address from, + address contract_, + bytes32 rights + ) external view returns (uint256); /** * @notice Returns the amount of a ERC1155 tokens the delegate is granted rights to act on the behalf of @@ -164,7 +228,13 @@ interface IDelegateRegistry { * @param rights Specific rights to check for, pass the zero value to ignore subdelegations and check full delegations only * @return balance The delegated balance, which will be 0 if the delegation does not exist */ - function checkDelegateForERC1155(address to, address from, address contract_, uint256 tokenId, bytes32 rights) external view returns (uint256); + function checkDelegateForERC1155( + address to, + address from, + address contract_, + uint256 tokenId, + bytes32 rights + ) external view returns (uint256); /** * ----------- ENUMERATIONS ----------- @@ -203,7 +273,9 @@ interface IDelegateRegistry { * @param delegationHashes is an array of hashes that correspond to delegations * @return delegations Array of Delegation structs, return empty structs for nonexistent or revoked delegations */ - function getDelegationsFromHashes(bytes32[] calldata delegationHashes) external view returns (Delegation[] memory delegations); + function getDelegationsFromHashes( + bytes32[] calldata delegationHashes + ) external view returns (Delegation[] memory delegations); /** * ----------- STORAGE ACCESS ----------- diff --git a/smart-contracts/contracts/mock/delegate-registry/libraries/RegistryHashes.sol b/smart-contracts/contracts/mock/delegate-registry/libraries/RegistryHashes.sol index 6437df11..c8a51006 100644 --- a/smart-contracts/contracts/mock/delegate-registry/libraries/RegistryHashes.sol +++ b/smart-contracts/contracts/mock/delegate-registry/libraries/RegistryHashes.sol @@ -111,7 +111,12 @@ library RegistryHashes { * @param contract_ The address of the contract specified by the delegation * @return hash The delegation parameters encoded with CONTRACT_TYPE */ - function contractHash(address from, bytes32 rights, address to, address contract_) internal pure returns (bytes32 hash) { + function contractHash( + address from, + bytes32 rights, + address to, + address contract_ + ) internal pure returns (bytes32 hash) { assembly ("memory-safe") { // This block only allocates memory after the free memory pointer let ptr := mload(64) // Load the free memory pointer @@ -134,7 +139,12 @@ library RegistryHashes { * @param contract_ The address of the contract specified by the delegation * @return computedLocation The storage location of the contract delegation with those parameters in the delegations mapping */ - function contractLocation(address from, bytes32 rights, address to, address contract_) internal pure returns (bytes32 computedLocation) { + function contractLocation( + address from, + bytes32 rights, + address to, + address contract_ + ) internal pure returns (bytes32 computedLocation) { assembly ("memory-safe") { // This block only allocates memory after the free memory pointer and in the scratch space let ptr := mload(64) // Load free memory pointer @@ -160,7 +170,13 @@ library RegistryHashes { * @param contract_ The address of the contract specified by the delegation * @return hash The delegation parameters encoded with ERC721_TYPE */ - function erc721Hash(address from, bytes32 rights, address to, uint256 tokenId, address contract_) internal pure returns (bytes32 hash) { + function erc721Hash( + address from, + bytes32 rights, + address to, + uint256 tokenId, + address contract_ + ) internal pure returns (bytes32 hash) { assembly ("memory-safe") { // This block only allocates memory after the free memory pointer let ptr := mload(64) // Cache the free memory pointer. @@ -185,7 +201,13 @@ library RegistryHashes { * @param contract_ The address of the ERC721 token contract * @return computedLocation The storage location of the ERC721 delegation with those parameters in the delegations mapping */ - function erc721Location(address from, bytes32 rights, address to, uint256 tokenId, address contract_) internal pure returns (bytes32 computedLocation) { + function erc721Location( + address from, + bytes32 rights, + address to, + uint256 tokenId, + address contract_ + ) internal pure returns (bytes32 computedLocation) { assembly ("memory-safe") { // This block only allocates memory after the free memory pointer and in the scratch space let ptr := mload(64) // Cache the free memory pointer. @@ -211,7 +233,12 @@ library RegistryHashes { * @param contract_ The address of the ERC20 token contract * @return hash The parameters encoded with ERC20_TYPE */ - function erc20Hash(address from, bytes32 rights, address to, address contract_) internal pure returns (bytes32 hash) { + function erc20Hash( + address from, + bytes32 rights, + address to, + address contract_ + ) internal pure returns (bytes32 hash) { assembly ("memory-safe") { // This block only allocates memory after the free memory pointer let ptr := mload(64) // Load free memory pointer @@ -234,7 +261,12 @@ library RegistryHashes { * @param contract_ The address of the ERC20 token contract * @return computedLocation The storage location of the ERC20 delegation with those parameters in the delegations mapping */ - function erc20Location(address from, bytes32 rights, address to, address contract_) internal pure returns (bytes32 computedLocation) { + function erc20Location( + address from, + bytes32 rights, + address to, + address contract_ + ) internal pure returns (bytes32 computedLocation) { assembly ("memory-safe") { // This block only allocates memory after the free memory pointer and in the scratch space let ptr := mload(64) // Loads the free memory pointer @@ -260,7 +292,13 @@ library RegistryHashes { * @param contract_ The address of the ERC1155 token contract * @return hash The parameters encoded with ERC1155_TYPE */ - function erc1155Hash(address from, bytes32 rights, address to, uint256 tokenId, address contract_) internal pure returns (bytes32 hash) { + function erc1155Hash( + address from, + bytes32 rights, + address to, + uint256 tokenId, + address contract_ + ) internal pure returns (bytes32 hash) { assembly ("memory-safe") { // This block only allocates memory after the free memory pointer let ptr := mload(64) // Load the free memory pointer. @@ -285,7 +323,13 @@ library RegistryHashes { * @param contract_ The address of the ERC1155 token contract * @return computedLocation The storage location of the ERC1155 delegation with those parameters in the delegations mapping */ - function erc1155Location(address from, bytes32 rights, address to, uint256 tokenId, address contract_) internal pure returns (bytes32 computedLocation) { + function erc1155Location( + address from, + bytes32 rights, + address to, + uint256 tokenId, + address contract_ + ) internal pure returns (bytes32 computedLocation) { assembly ("memory-safe") { // This block only allocates memory after the free memory pointer and in the scratch space let ptr := mload(64) // Cache the free memory pointer. diff --git a/smart-contracts/contracts/mock/delegate-registry/libraries/RegistryStorage.sol b/smart-contracts/contracts/mock/delegate-registry/libraries/RegistryStorage.sol index 93e8f178..92c4fcb0 100644 --- a/smart-contracts/contracts/mock/delegate-registry/libraries/RegistryStorage.sol +++ b/smart-contracts/contracts/mock/delegate-registry/libraries/RegistryStorage.sol @@ -31,7 +31,11 @@ library RegistryStorage { * @return secondPacked The secondPacked storage configured with the parameters * @dev Will not revert if `from`, `to`, and `contract_` are > uint160, any inputs with dirty bits outside the last 20 bytes will be cleaned */ - function packAddresses(address from, address to, address contract_) internal pure returns (bytes32 firstPacked, bytes32 secondPacked) { + function packAddresses( + address from, + address to, + address contract_ + ) internal pure returns (bytes32 firstPacked, bytes32 secondPacked) { assembly { firstPacked := or(shl(64, and(contract_, CLEAN_FIRST8_BYTES_ADDRESS)), and(from, CLEAN_ADDRESS)) secondPacked := or(shl(160, contract_), and(to, CLEAN_ADDRESS)) @@ -47,7 +51,10 @@ library RegistryStorage { * @return contract_ The contract address associated with the delegation * @dev Will not revert if `from`, `to`, and `contract_` are > uint160, any inputs with dirty bits outside the last 20 bytes will be cleaned */ - function unpackAddresses(bytes32 firstPacked, bytes32 secondPacked) internal pure returns (address from, address to, address contract_) { + function unpackAddresses( + bytes32 firstPacked, + bytes32 secondPacked + ) internal pure returns (address from, address to, address contract_) { assembly { from := and(firstPacked, CLEAN_ADDRESS) to := and(secondPacked, CLEAN_ADDRESS) diff --git a/smart-contracts/deploy/1_full_protocol.migration.ts b/smart-contracts/deploy/1_full_protocol.migration.ts index ac3b6c87..f7abe4ad 100644 --- a/smart-contracts/deploy/1_full_protocol.migration.ts +++ b/smart-contracts/deploy/1_full_protocol.migration.ts @@ -4,7 +4,10 @@ import { Fragment } from 'ethers'; import { parseConfig } from './helpers/config-parser'; import { + Delegation, + Delegation__factory, IBidStorage__factory, + IDelegation__factory, IMarketplace__factory, IModelRegistry__factory, IProviderRegistry__factory, @@ -40,6 +43,7 @@ module.exports = async function (deployer: Deployer) { LinearDistributionIntervalDecrease: ldid, }, }); + let delegationFacet = await deployer.deploy(Delegation__factory); await lumerinDiamond['diamondCut((address,uint8,bytes4[])[])']([ { @@ -84,6 +88,13 @@ module.exports = async function (deployer: Deployer) { .fragments.filter(Fragment.isFunction) .map((f) => f.selector), }, + { + facetAddress: delegationFacet, + action: FacetAction.Add, + functionSelectors: IDelegation__factory.createInterface() + .fragments.filter(Fragment.isFunction) + .map((f) => f.selector), + }, ]); providerRegistryFacet = providerRegistryFacet.attach(lumerinDiamond.target) as ProviderRegistry; @@ -98,6 +109,8 @@ module.exports = async function (deployer: Deployer) { ); sessionRouterFacet = sessionRouterFacet.attach(lumerinDiamond.target) as SessionRouter; await sessionRouterFacet.__SessionRouter_init(config.fundingAccount, 7 * DAY, config.pools); + delegationFacet = delegationFacet.attach(lumerinDiamond.target) as Delegation; + await delegationFacet.__Delegation_init(config.delegateRegistry); await providerRegistryFacet.providerSetMinStake(config.providerMinStake); await modelRegistryFacet.modelSetMinStake(config.modelMinStake); diff --git a/smart-contracts/deploy/data/config_arbitrum_sepolia.json b/smart-contracts/deploy/data/config_arbitrum_sepolia.json index 2436772e..42edaa04 100644 --- a/smart-contracts/deploy/data/config_arbitrum_sepolia.json +++ b/smart-contracts/deploy/data/config_arbitrum_sepolia.json @@ -6,6 +6,7 @@ "marketplaceBidFee": "300000000000000000", "marketplaceMinBidPricePerSecond": "5000000000000000", "marketplaceMaxBidPricePerSecond": "20000000000000000000", + "delegateRegistry": "0x00000000000000447e69651d841bD8D104Bed493", "pools": [ { diff --git a/smart-contracts/deploy/helpers/config-parser.ts b/smart-contracts/deploy/helpers/config-parser.ts index a17a6f71..10a3773f 100644 --- a/smart-contracts/deploy/helpers/config-parser.ts +++ b/smart-contracts/deploy/helpers/config-parser.ts @@ -11,6 +11,7 @@ export type Config = { marketplaceBidFee: string; marketplaceMinBidPricePerSecond: string; marketplaceMaxBidPricePerSecond: string; + delegateRegistry: string; }; export function parseConfig(): Config { diff --git a/smart-contracts/test/diamond/facets/Marketplace.test.ts b/smart-contracts/test/diamond/facets/Marketplace.test.ts index 63c3bd6d..50837814 100644 --- a/smart-contracts/test/diamond/facets/Marketplace.test.ts +++ b/smart-contracts/test/diamond/facets/Marketplace.test.ts @@ -156,10 +156,10 @@ describe('Marketplace', () => { expect(await token.balanceOf(marketplace)).to.eq(wei(301)); expect(await token.balanceOf(SECOND)).to.eq(wei(699)); - expect(await marketplace.getProviderBids(SECOND, 0, 10)).deep.eq([bidId]); - expect(await marketplace.getModelBids(modelId1, 0, 10)).deep.eq([bidId]); - expect(await marketplace.getProviderActiveBids(SECOND, 0, 10)).deep.eq([bidId]); - expect(await marketplace.getModelActiveBids(modelId1, 0, 10)).deep.eq([bidId]); + expect(await marketplace.getProviderBids(SECOND, 0, 10)).deep.eq([[bidId], 1n]); + expect(await marketplace.getModelBids(modelId1, 0, 10)).deep.eq([[bidId], 1n]); + expect(await marketplace.getProviderActiveBids(SECOND, 0, 10)).deep.eq([[bidId], 1n]); + expect(await marketplace.getModelActiveBids(modelId1, 0, 10)).deep.eq([[bidId], 1n]); }); it('should post a model bid from the delegatee address', async () => { await delegateRegistry @@ -181,10 +181,10 @@ describe('Marketplace', () => { expect(await token.balanceOf(marketplace)).to.eq(wei(301)); expect(await token.balanceOf(SECOND)).to.eq(wei(699)); - expect(await marketplace.getProviderBids(SECOND, 0, 10)).deep.eq([bidId]); - expect(await marketplace.getModelBids(modelId1, 0, 10)).deep.eq([bidId]); - expect(await marketplace.getProviderActiveBids(SECOND, 0, 10)).deep.eq([bidId]); - expect(await marketplace.getModelActiveBids(modelId1, 0, 10)).deep.eq([bidId]); + expect(await marketplace.getProviderBids(SECOND, 0, 10)).deep.eq([[bidId], 1n]); + expect(await marketplace.getModelBids(modelId1, 0, 10)).deep.eq([[bidId], 1n]); + expect(await marketplace.getProviderActiveBids(SECOND, 0, 10)).deep.eq([[bidId], 1n]); + expect(await marketplace.getModelActiveBids(modelId1, 0, 10)).deep.eq([[bidId], 1n]); }); it('should post few model bids', async () => { await setNextTime(300); @@ -212,12 +212,12 @@ describe('Marketplace', () => { expect(await token.balanceOf(marketplace)).to.eq(wei(302)); expect(await token.balanceOf(SECOND)).to.eq(wei(698)); - expect(await marketplace.getProviderBids(SECOND, 0, 10)).deep.eq([bidId1, bidId2]); - expect(await marketplace.getModelBids(modelId1, 0, 10)).deep.eq([bidId1]); - expect(await marketplace.getModelBids(modelId2, 0, 10)).deep.eq([bidId2]); - expect(await marketplace.getProviderActiveBids(SECOND, 0, 10)).deep.eq([bidId1, bidId2]); - expect(await marketplace.getModelActiveBids(modelId1, 0, 10)).deep.eq([bidId1]); - expect(await marketplace.getModelActiveBids(modelId2, 0, 10)).deep.eq([bidId2]); + expect(await marketplace.getProviderBids(SECOND, 0, 10)).deep.eq([[bidId1, bidId2], 2n]); + expect(await marketplace.getModelBids(modelId1, 0, 10)).deep.eq([[bidId1], 1n]); + expect(await marketplace.getModelBids(modelId2, 0, 10)).deep.eq([[bidId2], 1n]); + expect(await marketplace.getProviderActiveBids(SECOND, 0, 10)).deep.eq([[bidId1, bidId2], 2n]); + expect(await marketplace.getModelActiveBids(modelId1, 0, 10)).deep.eq([[bidId1], 1n]); + expect(await marketplace.getModelActiveBids(modelId2, 0, 10)).deep.eq([[bidId2], 1n]); }); it('should post a new model bid and delete an old bid when an old bid is active', async () => { await setNextTime(300); @@ -240,10 +240,10 @@ describe('Marketplace', () => { expect(await token.balanceOf(marketplace)).to.eq(wei(302)); expect(await token.balanceOf(SECOND)).to.eq(wei(698)); - expect(await marketplace.getProviderBids(SECOND, 0, 10)).deep.eq([bidId1, bidId2]); - expect(await marketplace.getModelBids(modelId1, 0, 10)).deep.eq([bidId1, bidId2]); - expect(await marketplace.getProviderActiveBids(SECOND, 0, 10)).deep.eq([bidId2]); - expect(await marketplace.getModelActiveBids(modelId1, 0, 10)).deep.eq([bidId2]); + expect(await marketplace.getProviderBids(SECOND, 0, 10)).deep.eq([[bidId1, bidId2], 2]); + expect(await marketplace.getModelBids(modelId1, 0, 10)).deep.eq([[bidId1, bidId2], 2]); + expect(await marketplace.getProviderActiveBids(SECOND, 0, 10)).deep.eq([[bidId2], 1]); + expect(await marketplace.getModelActiveBids(modelId1, 0, 10)).deep.eq([[bidId2], 1]); }); it('should post a new model bid and skip the old bid delete', async () => { await setNextTime(300); diff --git a/smart-contracts/test/diamond/facets/ModelRegistry.test.ts b/smart-contracts/test/diamond/facets/ModelRegistry.test.ts index c64a09f5..9d2005c6 100644 --- a/smart-contracts/test/diamond/facets/ModelRegistry.test.ts +++ b/smart-contracts/test/diamond/facets/ModelRegistry.test.ts @@ -142,7 +142,7 @@ describe('ModelRegistry', () => { expect(await token.balanceOf(modelRegistry)).to.eq(wei(100)); expect(await token.balanceOf(SECOND)).to.eq(wei(900)); - expect(await modelRegistry.getActiveModelIds(0, 10)).to.deep.eq([modelId]); + expect(await modelRegistry.getActiveModelIds(0, 10)).to.deep.eq([[modelId], 1n]); await modelRegistry.connect(SECOND).modelRegister(SECOND, baseModelId, ipfsCID, 0, wei(0), 'name', ['tag_1']); }); @@ -168,7 +168,7 @@ describe('ModelRegistry', () => { expect(await token.balanceOf(modelRegistry)).to.eq(wei(100)); expect(await token.balanceOf(SECOND)).to.eq(wei(900)); - expect(await modelRegistry.getActiveModelIds(0, 10)).to.deep.eq([modelId]); + expect(await modelRegistry.getActiveModelIds(0, 10)).to.deep.eq([[modelId], 1n]); await modelRegistry.connect(SECOND).modelRegister(SECOND, baseModelId, ipfsCID, 0, wei(0), 'name', ['tag_1']); }); @@ -248,7 +248,7 @@ describe('ModelRegistry', () => { expect(await token.balanceOf(modelRegistry)).to.eq(0); expect(await token.balanceOf(SECOND)).to.eq(wei(1000)); - expect(await modelRegistry.getActiveModelIds(0, 10)).to.deep.eq([]); + expect(await modelRegistry.getActiveModelIds(0, 10)).to.deep.eq([[], 0n]); }); it('should deregister the model from the delegatee address', async () => { await setNextTime(300); @@ -264,7 +264,7 @@ describe('ModelRegistry', () => { expect(await token.balanceOf(modelRegistry)).to.eq(0); expect(await token.balanceOf(SECOND)).to.eq(wei(1000)); - expect(await modelRegistry.getActiveModelIds(0, 10)).to.deep.eq([]); + expect(await modelRegistry.getActiveModelIds(0, 10)).to.deep.eq([[], 0n]); }); it('should throw error when the caller is not an owner or specified address', async () => { await expect(modelRegistry.connect(SECOND).modelDeregister(modelId)).to.be.revertedWithCustomError( diff --git a/smart-contracts/test/diamond/facets/ProviderRegistry.test.ts b/smart-contracts/test/diamond/facets/ProviderRegistry.test.ts index 993a589e..9d9b8af0 100644 --- a/smart-contracts/test/diamond/facets/ProviderRegistry.test.ts +++ b/smart-contracts/test/diamond/facets/ProviderRegistry.test.ts @@ -110,7 +110,7 @@ describe('ProviderRegistry', () => { expect(await token.balanceOf(providerRegistry)).to.eq(wei(100)); expect(await token.balanceOf(PROVIDER)).to.eq(wei(900)); - expect(await providerRegistry.getActiveProviders(0, 10)).to.deep.eq([PROVIDER.address]); + expect(await providerRegistry.getActiveProviders(0, 10)).to.deep.eq([[PROVIDER.address], 1n]); await providerRegistry.connect(PROVIDER).providerRegister(PROVIDER, wei(0), 'test'); }); @@ -174,7 +174,7 @@ describe('ProviderRegistry', () => { expect(await token.balanceOf(providerRegistry)).to.eq(wei(100)); expect(await token.balanceOf(PROVIDER)).to.eq(wei(900)); - expect(await providerRegistry.getActiveProviders(0, 10)).to.deep.eq([PROVIDER.address]); + expect(await providerRegistry.getActiveProviders(0, 10)).to.deep.eq([[PROVIDER.address], 1n]); await providerRegistry.connect(PROVIDER).providerRegister(PROVIDER, wei(0), 'test'); }); @@ -210,7 +210,7 @@ describe('ProviderRegistry', () => { expect(await token.balanceOf(providerRegistry)).to.eq(0); expect(await token.balanceOf(PROVIDER)).to.eq(wei(1000)); - expect(await providerRegistry.getActiveProviders(0, 10)).to.deep.eq([]); + expect(await providerRegistry.getActiveProviders(0, 10)).to.deep.eq([[], 0n]); }); it('should deregister the provider from the delegatee address', async () => { await setNextTime(300); @@ -227,7 +227,7 @@ describe('ProviderRegistry', () => { expect(await token.balanceOf(providerRegistry)).to.eq(0); expect(await token.balanceOf(PROVIDER)).to.eq(wei(1000)); - expect(await providerRegistry.getActiveProviders(0, 10)).to.deep.eq([]); + expect(await providerRegistry.getActiveProviders(0, 10)).to.deep.eq([[], 0n]); }); it('should deregister the provider without transfer', async () => { await providerRegistry.providerSetMinStake(0); diff --git a/smart-contracts/test/diamond/facets/SessionRouter.test.ts b/smart-contracts/test/diamond/facets/SessionRouter.test.ts index 0c396b82..8279f3e1 100644 --- a/smart-contracts/test/diamond/facets/SessionRouter.test.ts +++ b/smart-contracts/test/diamond/facets/SessionRouter.test.ts @@ -201,9 +201,9 @@ describe('SessionRouter', () => { expect(secondBalBefore - secondBalAfter).to.eq(wei(50)); expect(await sessionRouter.getIsProviderApprovalUsed(msg)).to.eq(true); - expect(await sessionRouter.getUserSessions(SECOND, 0, 10)).to.deep.eq([sessionId]); - expect(await sessionRouter.getProviderSessions(PROVIDER, 0, 10)).to.deep.eq([sessionId]); - expect(await sessionRouter.getModelSessions(modelId, 0, 10)).to.deep.eq([sessionId]); + expect(await sessionRouter.getUserSessions(SECOND, 0, 10)).to.deep.eq([[sessionId], 1n]); + expect(await sessionRouter.getProviderSessions(PROVIDER, 0, 10)).to.deep.eq([[sessionId], 1n]); + expect(await sessionRouter.getModelSessions(modelId, 0, 10)).to.deep.eq([[sessionId], 1n]); }); it('should open a session from the delegatee address', async () => { await delegateRegistry @@ -234,9 +234,9 @@ describe('SessionRouter', () => { expect(secondBalBefore - secondBalAfter).to.eq(wei(50)); expect(await sessionRouter.getIsProviderApprovalUsed(msg)).to.eq(true); - expect(await sessionRouter.getUserSessions(SECOND, 0, 10)).to.deep.eq([sessionId]); - expect(await sessionRouter.getProviderSessions(PROVIDER, 0, 10)).to.deep.eq([sessionId]); - expect(await sessionRouter.getModelSessions(modelId, 0, 10)).to.deep.eq([sessionId]); + expect(await sessionRouter.getUserSessions(SECOND, 0, 10)).to.deep.eq([[sessionId], 1n]); + expect(await sessionRouter.getProviderSessions(PROVIDER, 0, 10)).to.deep.eq([[sessionId], 1n]); + expect(await sessionRouter.getModelSessions(modelId, 0, 10)).to.deep.eq([[sessionId], 1n]); }); it('should open two different sessions wit the same input params', async () => { await setTime(payoutStart + 10 * DAY); @@ -256,9 +256,9 @@ describe('SessionRouter', () => { expect(await sessionRouter.getIsProviderApprovalUsed(msg1)).to.eq(true); expect(await sessionRouter.getIsProviderApprovalUsed(msg2)).to.eq(true); - expect(await sessionRouter.getUserSessions(SECOND, 0, 10)).to.deep.eq([sessionId1, sessionId2]); - expect(await sessionRouter.getProviderSessions(PROVIDER, 0, 10)).to.deep.eq([sessionId1, sessionId2]); - expect(await sessionRouter.getModelSessions(modelId, 0, 10)).to.deep.eq([sessionId1, sessionId2]); + expect(await sessionRouter.getUserSessions(SECOND, 0, 10)).to.deep.eq([[sessionId1, sessionId2], 2n]); + expect(await sessionRouter.getProviderSessions(PROVIDER, 0, 10)).to.deep.eq([[sessionId1, sessionId2], 2n]); + expect(await sessionRouter.getModelSessions(modelId, 0, 10)).to.deep.eq([[sessionId1, sessionId2], 2n]); expect(await sessionRouter.getTotalSessions(PROVIDER)).to.eq(2); }); @@ -296,9 +296,9 @@ describe('SessionRouter', () => { expect(secondBalBefore - secondBalAfter).to.eq(wei(50)); expect(await sessionRouter.getIsProviderApprovalUsed(msg)).to.eq(true); - expect(await sessionRouter.getUserSessions(SECOND, 0, 10)).to.deep.eq([sessionId]); - expect(await sessionRouter.getProviderSessions(PROVIDER, 0, 10)).to.deep.eq([sessionId]); - expect(await sessionRouter.getModelSessions(modelId, 0, 10)).to.deep.eq([sessionId]); + expect(await sessionRouter.getUserSessions(SECOND, 0, 10)).to.deep.eq([[sessionId], 1n]); + expect(await sessionRouter.getProviderSessions(PROVIDER, 0, 10)).to.deep.eq([[sessionId], 1n]); + expect(await sessionRouter.getModelSessions(modelId, 0, 10)).to.deep.eq([[sessionId], 1n]); }); it('should throw error when the approval is for an another user', async () => { const { msg, signature } = await getProviderApproval(PROVIDER, OWNER, bidId); From 6cb661e8df9dc5220fa5f9dfd111a997ed4ed00f Mon Sep 17 00:00:00 2001 From: shev Date: Wed, 13 Nov 2024 13:36:57 +0100 Subject: [PATCH 120/260] fix: chat persistence and response headers --- proxy-router/cmd/main.go | 2 +- proxy-router/internal/aiengine/ai_engine.go | 6 +- proxy-router/internal/aiengine/factory.go | 8 +- proxy-router/internal/aiengine/history.go | 22 +-- proxy-router/internal/aiengine/openai.go | 4 +- proxy-router/internal/aiengine/prodia.go | 127 ++---------------- proxy-router/internal/aiengine/prodia_sd.go | 115 ++++++++++++++++ proxy-router/internal/aiengine/prodia_sdxl.go | 113 ++++++++++++++++ .../internal/chatstorage/file_chat_storage.go | 26 ++-- .../genericchatstorage/interface.go | 12 +- proxy-router/internal/config/config.go | 25 +++- .../internal/proxyapi/controller_http.go | 38 ++++-- .../internal/proxyapi/proxy_receiver.go | 2 +- proxy-router/models-config.json.example | 17 ++- 14 files changed, 337 insertions(+), 180 deletions(-) create mode 100644 proxy-router/internal/aiengine/prodia_sd.go create mode 100644 proxy-router/internal/aiengine/prodia_sdxl.go diff --git a/proxy-router/cmd/main.go b/proxy-router/cmd/main.go index 2380749b..c7268f60 100644 --- a/proxy-router/cmd/main.go +++ b/proxy-router/cmd/main.go @@ -284,7 +284,7 @@ func start() error { blockchainController := blockchainapi.NewBlockchainController(blockchainApi, log) ethConnectionValidator := system.NewEthConnectionValidator(*big.NewInt(int64(cfg.Blockchain.ChainID))) - proxyController := proxyapi.NewProxyController(proxyRouterApi, aiEngine, chatStorage, log) + proxyController := proxyapi.NewProxyController(proxyRouterApi, aiEngine, chatStorage, *cfg.Proxy.StoreChatContext, *cfg.Proxy.ForwardChatContext, log) walletController := walletapi.NewWalletController(wallet) systemController := system.NewSystemController(&cfg, wallet, rpcClientStore, sysConfig, appStartTime, chainID, log, ethConnectionValidator) diff --git a/proxy-router/internal/aiengine/ai_engine.go b/proxy-router/internal/aiengine/ai_engine.go index 4882f8ff..633716b0 100644 --- a/proxy-router/internal/aiengine/ai_engine.go +++ b/proxy-router/internal/aiengine/ai_engine.go @@ -36,7 +36,7 @@ func NewAiEngine(service ProxyService, storage gcs.ChatStorageInterface, modelsC } } -func (a *AiEngine) GetAdapter(ctx context.Context, chatID, modelID, sessionID common.Hash, persistHistory bool) (AIEngineStream, error) { +func (a *AiEngine) GetAdapter(ctx context.Context, chatID, modelID, sessionID common.Hash, storeChatContext, forwardChatContext bool) (AIEngineStream, error) { var engine AIEngineStream if sessionID == (common.Hash{}) { // local model @@ -54,8 +54,8 @@ func (a *AiEngine) GetAdapter(ctx context.Context, chatID, modelID, sessionID co engine = &RemoteModel{sessionID: sessionID, service: a.service} } - if persistHistory { - engine = NewHistory(engine, a.storage, chatID, modelID, a.log) + if storeChatContext { + engine = NewHistory(engine, a.storage, chatID, modelID, forwardChatContext, a.log) } return engine, nil diff --git a/proxy-router/internal/aiengine/factory.go b/proxy-router/internal/aiengine/factory.go index baf7df4e..820f82e3 100644 --- a/proxy-router/internal/aiengine/factory.go +++ b/proxy-router/internal/aiengine/factory.go @@ -4,10 +4,12 @@ import "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" func ApiAdapterFactory(apiType string, modelName string, url string, apikey string, log lib.ILogger) (AIEngineStream, bool) { switch apiType { - case "openai": + case API_TYPE_OPENAI: return NewOpenAIEngine(modelName, url, apikey, log), true - case "prodia": - return NewProdiaEngine(modelName, url, apikey, log), true + case API_TYPE_PRODIA_SD: + return NewProdiaSDEngine(modelName, url, apikey, log), true + case API_TYPE_PRODIA_SDXL: + return NewProdiaSDXLEngine(modelName, url, apikey, log), true } return nil, false } diff --git a/proxy-router/internal/aiengine/history.go b/proxy-router/internal/aiengine/history.go index a8e3189e..b79fe753 100644 --- a/proxy-router/internal/aiengine/history.go +++ b/proxy-router/internal/aiengine/history.go @@ -11,14 +11,15 @@ import ( ) type History struct { - engine AIEngineStream - storage gcs.ChatStorageInterface - chatID common.Hash - modelID common.Hash - log lib.ILogger + engine AIEngineStream + storage gcs.ChatStorageInterface + chatID common.Hash + modelID common.Hash + forwardChatContext bool + log lib.ILogger } -func NewHistory(engine AIEngineStream, storage gcs.ChatStorageInterface, chatID, modelID common.Hash, log lib.ILogger) *History { +func NewHistory(engine AIEngineStream, storage gcs.ChatStorageInterface, chatID, modelID common.Hash, forwardChatContext bool, log lib.ILogger) *History { return &History{ engine: engine, storage: storage, @@ -38,9 +39,12 @@ func (h *History) Prompt(ctx context.Context, prompt *openai.ChatCompletionReque h.log.Warnf("failed to load chat history: %v", err) } - promptWithHistory := history.AppendChatHistory(prompt) + adjustedPrompt := prompt + if h.forwardChatContext { + adjustedPrompt = history.AppendChatHistory(prompt) + } - err = h.engine.Prompt(ctx, promptWithHistory, func(ctx context.Context, completion gcs.Chunk) error { + err = h.engine.Prompt(ctx, adjustedPrompt, func(ctx context.Context, completion gcs.Chunk) error { completions = append(completions, completion) return cb(ctx, completion) }) @@ -49,7 +53,7 @@ func (h *History) Prompt(ctx context.Context, prompt *openai.ChatCompletionReque } endTime := time.Now() - err = h.storage.StorePromptResponseToFile(h.chatID.Hex(), isLocal, h.modelID.Hex(), promptWithHistory, completions, startTime, endTime) + err = h.storage.StorePromptResponseToFile(h.chatID.Hex(), isLocal, h.modelID.Hex(), prompt, completions, startTime, endTime) if err != nil { h.log.Errorf("failed to store prompt response: %v", err) } diff --git a/proxy-router/internal/aiengine/openai.go b/proxy-router/internal/aiengine/openai.go index 3b653774..cf1edb3b 100644 --- a/proxy-router/internal/aiengine/openai.go +++ b/proxy-router/internal/aiengine/openai.go @@ -16,6 +16,8 @@ import ( "github.com/sashabaranov/go-openai" ) +const API_TYPE_OPENAI = "openai" + type OpenAI struct { baseURL string apiKey string @@ -121,7 +123,7 @@ func (a *OpenAI) readStream(ctx context.Context, body io.Reader, cb gcs.Completi } func (a *OpenAI) ApiType() string { - return "openai" + return API_TYPE_OPENAI } func isStreamFinished(data string) bool { diff --git a/proxy-router/internal/aiengine/prodia.go b/proxy-router/internal/aiengine/prodia.go index 9f7ce171..5699cb95 100644 --- a/proxy-router/internal/aiengine/prodia.go +++ b/proxy-router/internal/aiengine/prodia.go @@ -1,130 +1,41 @@ package aiengine import ( - "bytes" "context" "encoding/json" "fmt" "io" "net/http" - "strings" "time" - constants "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal" - gcs "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/chatstorage/genericchatstorage" + c "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" - "github.com/sashabaranov/go-openai" ) -type Prodia struct { - modelName string - apiURL string - apiKey string - - log lib.ILogger -} - const HEADER_PRODIA_KEY = "X-Prodia-Key" +const PRODIA_DEFAULT_BASE_URL = "https://api.prodia.com/v1" -func NewProdiaEngine(modelName, apiURL, apiKey string, log lib.ILogger) *Prodia { - return &Prodia{ - modelName: modelName, - apiURL: apiURL, - apiKey: apiKey, - log: log, - } -} - -func (s *Prodia) Prompt(ctx context.Context, prompt *openai.ChatCompletionRequest, cb gcs.CompletionCallback) error { - body := map[string]string{ - "model": s.modelName, - "prompt": prompt.Messages[0].Content, - } - - payload, err := json.Marshal(body) - if err != nil { - err = lib.WrapError(ErrImageGenerationInvalidRequest, err) - s.log.Error(err) - return err - } - - s.log.Debugf("payload: %s", payload) - - req, err := http.NewRequest("POST", fmt.Sprintf("%s/sd/generate", s.apiURL), bytes.NewReader(payload)) - if err != nil { - err = lib.WrapError(ErrImageGenerationRequest, err) - s.log.Error(err) - } - - req.Header.Add(constants.HEADER_ACCEPT, constants.CONTENT_TYPE_JSON) - req.Header.Add(constants.HEADER_CONTENT_TYPE, constants.CONTENT_TYPE_JSON) - req.Header.Add(HEADER_PRODIA_KEY, s.apiKey) - - res, err := http.DefaultClient.Do(req) - if err != nil { - err = lib.WrapError(ErrImageGenerationRequest, err) - s.log.Error(err) - return err - } - - defer res.Body.Close() - response, err := io.ReadAll(res.Body) - if err != nil { - err = lib.WrapError(ErrImageGenerationRequest, err) - s.log.Error(err) - return err - } - - s.log.Debugf("response: %s", response) - - bodyStr := string(response) - if strings.Contains(bodyStr, "Invalid Generation Parameters") { - return lib.WrapError(ErrImageGenerationRequest, fmt.Errorf(bodyStr)) - } - - result := ProdiaGenerationResult{} - err = json.Unmarshal(response, &result) - if err != nil { - err = lib.WrapError(ErrImageGenerationRequest, err) - s.log.Error(err) - return err - } - - job, err := s.waitJobResult(ctx, result.Job) - if err != nil { - err = lib.WrapError(ErrImageGenerationRequest, err) - s.log.Error(err) - return err - } - - chunk := gcs.NewChunkImage(&gcs.ImageGenerationResult{ - Job: job.Job, - ImageUrl: job.ImageUrl, - Status: job.Status, - }) - - return cb(ctx, chunk) +type ProdiaGenerationResult struct { + Job string `json:"job"` + Status string `json:"status"` + ImageUrl string `json:"imageUrl" binding:"omitempty"` } -func (s *Prodia) waitJobResult(ctx context.Context, jobID string) (*ProdiaGenerationResult, error) { - url := fmt.Sprintf("%s/job/%s", s.apiURL, jobID) - - s.log.Debugf("waiting for job result: %s", url) +func waitJobResult(ctx context.Context, apiURL, apiKey, jobID string) (*ProdiaGenerationResult, error) { + url := fmt.Sprintf("%s/job/%s", apiURL, jobID) req, err := http.NewRequestWithContext(ctx, "GET", url, nil) if err != nil { err = lib.WrapError(ErrJobCheckRequest, err) - s.log.Error(err) return nil, err } - req.Header.Add("accept", constants.CONTENT_TYPE_JSON) - req.Header.Add("X-Prodia-Key", s.apiKey) + req.Header.Add(c.HEADER_ACCEPT, c.CONTENT_TYPE_JSON) + req.Header.Add(HEADER_PRODIA_KEY, apiKey) res, err := http.DefaultClient.Do(req) if err != nil { err = lib.WrapError(ErrJobCheckRequest, err) - s.log.Error(err) return nil, err } @@ -132,7 +43,6 @@ func (s *Prodia) waitJobResult(ctx context.Context, jobID string) (*ProdiaGenera body, err := io.ReadAll(res.Body) if err != nil { err = lib.WrapError(ErrJobCheckRequest, err) - s.log.Error(err) return nil, err } @@ -140,12 +50,9 @@ func (s *Prodia) waitJobResult(ctx context.Context, jobID string) (*ProdiaGenera err = json.Unmarshal(body, &result) if err != nil { err = lib.WrapError(ErrJobCheckRequest, err) - s.log.Error(err) return nil, err } - s.log.Debugf("job result: %v", result) - if result.Status == "succeeded" { return &result, nil } @@ -160,17 +67,5 @@ func (s *Prodia) waitJobResult(ctx context.Context, jobID string) (*ProdiaGenera case <-time.After(1 * time.Second): } - return s.waitJobResult(ctx, jobID) -} - -func (s *Prodia) ApiType() string { - return "prodia" -} - -var _ AIEngineStream = &Prodia{} - -type ProdiaGenerationResult struct { - Job string `json:"job"` - Status string `json:"status"` - ImageUrl string `json:"imageUrl" binding:"omitempty"` + return waitJobResult(ctx, apiURL, apiKey, jobID) } diff --git a/proxy-router/internal/aiengine/prodia_sd.go b/proxy-router/internal/aiengine/prodia_sd.go new file mode 100644 index 00000000..826e21fb --- /dev/null +++ b/proxy-router/internal/aiengine/prodia_sd.go @@ -0,0 +1,115 @@ +package aiengine + +import ( + "bytes" + "context" + "encoding/json" + "fmt" + "io" + "net/http" + "strings" + + c "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal" + gcs "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/chatstorage/genericchatstorage" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" + "github.com/sashabaranov/go-openai" +) + +const API_TYPE_PRODIA_SD = "prodia-sd" + +type ProdiaSD struct { + modelName string + apiURL string + apiKey string + + log lib.ILogger +} + +func NewProdiaSDEngine(modelName, apiURL, apiKey string, log lib.ILogger) *ProdiaSD { + if apiURL == "" { + apiURL = PRODIA_DEFAULT_BASE_URL + } + return &ProdiaSD{ + modelName: modelName, + apiURL: apiURL, + apiKey: apiKey, + log: log, + } +} + +func (s *ProdiaSD) Prompt(ctx context.Context, prompt *openai.ChatCompletionRequest, cb gcs.CompletionCallback) error { + body := map[string]string{ + "model": s.modelName, + "prompt": prompt.Messages[0].Content, + } + + payload, err := json.Marshal(body) + if err != nil { + err = lib.WrapError(ErrImageGenerationInvalidRequest, err) + s.log.Error(err) + return err + } + + s.log.Debugf("payload: %s", payload) + + req, err := http.NewRequest("POST", fmt.Sprintf("%s/sd/generate", s.apiURL), bytes.NewReader(payload)) + if err != nil { + err = lib.WrapError(ErrImageGenerationRequest, err) + s.log.Error(err) + } + + req.Header.Add(c.HEADER_ACCEPT, c.CONTENT_TYPE_JSON) + req.Header.Add(c.HEADER_CONTENT_TYPE, c.CONTENT_TYPE_JSON) + req.Header.Add(HEADER_PRODIA_KEY, s.apiKey) + + res, err := http.DefaultClient.Do(req) + if err != nil { + err = lib.WrapError(ErrImageGenerationRequest, err) + s.log.Error(err) + return err + } + + defer res.Body.Close() + response, err := io.ReadAll(res.Body) + if err != nil { + err = lib.WrapError(ErrImageGenerationRequest, err) + s.log.Error(err) + return err + } + + s.log.Debugf("response: %s", response) + + bodyStr := string(response) + if strings.Contains(bodyStr, "Invalid Generation Parameters") { + return lib.WrapError(ErrImageGenerationRequest, fmt.Errorf(bodyStr)) + } + + result := ProdiaGenerationResult{} + err = json.Unmarshal(response, &result) + if err != nil { + err = lib.WrapError(ErrImageGenerationRequest, err) + s.log.Error(err) + return err + } + + job, err := waitJobResult(ctx, s.apiURL, s.apiKey, result.Job) + if err != nil { + err = lib.WrapError(ErrImageGenerationRequest, err) + s.log.Error(err) + return err + } + + chunk := gcs.NewChunkImage(&gcs.ImageGenerationResult{ + Job: job.Job, + ImageUrl: job.ImageUrl, + Status: job.Status, + }) + + return cb(ctx, chunk) +} + +func (s *ProdiaSD) ApiType() string { + return API_TYPE_PRODIA_SD +} + +var _ AIEngineStream = &ProdiaSD{} diff --git a/proxy-router/internal/aiengine/prodia_sdxl.go b/proxy-router/internal/aiengine/prodia_sdxl.go new file mode 100644 index 00000000..4fe18f51 --- /dev/null +++ b/proxy-router/internal/aiengine/prodia_sdxl.go @@ -0,0 +1,113 @@ +package aiengine + +import ( + "bytes" + "context" + "encoding/json" + "fmt" + "io" + "net/http" + "strings" + + c "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal" + gcs "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/chatstorage/genericchatstorage" + "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/lib" + "github.com/sashabaranov/go-openai" +) + +const API_TYPE_PRODIA_SDXL = "prodia-sdxl" + +type ProdiaSDXL struct { + modelName string + apiURL string + apiKey string + + log lib.ILogger +} + +func NewProdiaSDXLEngine(modelName, apiURL, apiKey string, log lib.ILogger) *ProdiaSDXL { + if apiURL == "" { + apiURL = PRODIA_DEFAULT_BASE_URL + } + return &ProdiaSDXL{ + modelName: modelName, + apiURL: apiURL, + apiKey: apiKey, + log: log, + } +} + +func (s *ProdiaSDXL) Prompt(ctx context.Context, prompt *openai.ChatCompletionRequest, cb gcs.CompletionCallback) error { + body := map[string]string{ + "model": s.modelName, + "prompt": prompt.Messages[0].Content, + } + + payload, err := json.Marshal(body) + if err != nil { + err = lib.WrapError(ErrImageGenerationInvalidRequest, err) + s.log.Error(err) + return err + } + + req, err := http.NewRequest("POST", fmt.Sprintf("%s/sdxl/generate", s.apiURL), bytes.NewReader(payload)) + if err != nil { + err = lib.WrapError(ErrImageGenerationRequest, err) + s.log.Error(err) + } + + req.Header.Add(c.HEADER_ACCEPT, c.CONTENT_TYPE_JSON) + req.Header.Add(c.HEADER_CONTENT_TYPE, c.CONTENT_TYPE_JSON) + req.Header.Add(HEADER_PRODIA_KEY, s.apiKey) + + res, err := http.DefaultClient.Do(req) + if err != nil { + err = lib.WrapError(ErrImageGenerationRequest, err) + s.log.Error(err) + return err + } + + defer res.Body.Close() + response, err := io.ReadAll(res.Body) + if err != nil { + err = lib.WrapError(ErrImageGenerationRequest, err) + s.log.Error(err) + return err + } + + s.log.Debugf("response: %s", response) + + bodyStr := string(response) + if strings.Contains(bodyStr, "Invalid Generation Parameters") { + return lib.WrapError(ErrImageGenerationRequest, fmt.Errorf(bodyStr)) + } + + result := ProdiaGenerationResult{} + err = json.Unmarshal(response, &result) + if err != nil { + err = lib.WrapError(ErrImageGenerationRequest, err) + s.log.Error(err) + return err + } + + job, err := waitJobResult(ctx, s.apiURL, s.apiKey, result.Job) + if err != nil { + err = lib.WrapError(ErrImageGenerationRequest, err) + s.log.Error(err) + return err + } + + chunk := gcs.NewChunkImage(&gcs.ImageGenerationResult{ + Job: job.Job, + ImageUrl: job.ImageUrl, + Status: job.Status, + }) + + return cb(ctx, chunk) +} + +func (s *ProdiaSDXL) ApiType() string { + return API_TYPE_PRODIA_SDXL +} + +var _ AIEngineStream = &ProdiaSDXL{} diff --git a/proxy-router/internal/chatstorage/file_chat_storage.go b/proxy-router/internal/chatstorage/file_chat_storage.go index bba5451f..ddd64faf 100644 --- a/proxy-router/internal/chatstorage/file_chat_storage.go +++ b/proxy-router/internal/chatstorage/file_chat_storage.go @@ -15,11 +15,9 @@ import ( // ChatStorage handles storing conversations to files. type ChatStorage struct { - dirPath string // Directory path to store the files - fileMutexes map[string]*sync.Mutex // Map to store mutexes for each file -} - -type Response interface { + dirPath string // Directory path to store the files + fileMutexes map[string]*sync.Mutex // Map to store mutexes for each file + forwardChatContext bool } // NewChatStorage creates a new instance of ChatStorage. @@ -43,13 +41,13 @@ func (cs *ChatStorage) StorePromptResponseToFile(identifier string, isLocal bool cs.fileMutexes[filePath].Lock() defer cs.fileMutexes[filePath].Unlock() - var data gcs.ChatHistory + var chatHistory gcs.ChatHistory if _, err := os.Stat(filePath); err == nil { fileContent, err := os.ReadFile(filePath) if err != nil { return err } - if err := json.Unmarshal(fileContent, &data); err != nil { + if err := json.Unmarshal(fileContent, &chatHistory); err != nil { return err } } @@ -91,16 +89,16 @@ func (cs *ChatStorage) StorePromptResponseToFile(identifier string, isLocal bool IsImageContent: isImageContent, } - if data.Messages == nil && len(data.Messages) == 0 { - data.ModelId = modelId - data.Title = prompt.Messages[0].Content - data.IsLocal = isLocal + if chatHistory.Messages == nil && len(chatHistory.Messages) == 0 { + chatHistory.ModelId = modelId + chatHistory.Title = prompt.Messages[0].Content + chatHistory.IsLocal = isLocal } - newMessages := append(data.Messages, newEntry) - data.Messages = newMessages + newMessages := append(chatHistory.Messages, newEntry) + chatHistory.Messages = newMessages - updatedContent, err := json.MarshalIndent(data, "", " ") + updatedContent, err := json.MarshalIndent(chatHistory, "", " ") if err != nil { return err } diff --git a/proxy-router/internal/chatstorage/genericchatstorage/interface.go b/proxy-router/internal/chatstorage/genericchatstorage/interface.go index 631dd868..8df8abd4 100644 --- a/proxy-router/internal/chatstorage/genericchatstorage/interface.go +++ b/proxy-router/internal/chatstorage/genericchatstorage/interface.go @@ -15,20 +15,16 @@ type ChatStorageInterface interface { } type ChatHistory struct { - Title string `json:"title"` - ModelId string `json:"modelId"` - IsLocal bool `json:"isLocal"` - Messages []ChatMessage `json:"messages"` - ForwardContext bool `json:"forwardContext"` + Title string `json:"title"` + ModelId string `json:"modelId"` + IsLocal bool `json:"isLocal"` + Messages []ChatMessage `json:"messages"` } func (h *ChatHistory) AppendChatHistory(req *openai.ChatCompletionRequest) *openai.ChatCompletionRequest { if h == nil { return req } - if !h.ForwardContext { - return req - } messagesWithHistory := make([]openai.ChatCompletionMessage, 0) for _, chat := range h.Messages { diff --git a/proxy-router/internal/config/config.go b/proxy-router/internal/config/config.go index 4cf57b14..4791a141 100644 --- a/proxy-router/internal/config/config.go +++ b/proxy-router/internal/config/config.go @@ -50,11 +50,12 @@ type Config struct { LevelBadger string `env:"LOG_LEVEL_BADGER" flag:"log-level-badger" validate:"omitempty,oneof=debug info warn error dpanic panic fatal"` } Proxy struct { - Address string `env:"PROXY_ADDRESS" flag:"proxy-address" validate:"required,hostname_port"` - StoragePath string `env:"PROXY_STORAGE_PATH" flag:"proxy-storage-path" validate:"omitempty,dirpath" desc:"enables file storage and sets the folder path"` - StoreChatContext bool `env:"PROXY_STORE_CHAT_CONTEXT" flag:"proxy-store-chat-context" desc:"store chat context in the proxy storage"` - ModelsConfigPath string `env:"MODELS_CONFIG_PATH" flag:"models-config-path" validate:"omitempty"` - ProviderAllowList string `env:"PROVIDER_ALLOW_LIST" flag:"provider-allow-list" validate:"omitempty" desc:"comma separated list of provider addresses allowed to open session with"` + Address string `env:"PROXY_ADDRESS" flag:"proxy-address" validate:"required,hostname_port"` + StoragePath string `env:"PROXY_STORAGE_PATH" flag:"proxy-storage-path" validate:"omitempty,dirpath" desc:"enables file storage and sets the folder path"` + StoreChatContext *bool `env:"PROXY_STORE_CHAT_CONTEXT" flag:"proxy-store-chat-context" desc:"store chat context in the proxy storage"` + ForwardChatContext *bool `env:"PROXY_FORWARD_CHAT_CONTEXT" flag:"proxy-forward-chat-context" desc:"prepend whole stored message history to the prompt"` + ModelsConfigPath string `env:"MODELS_CONFIG_PATH" flag:"models-config-path" validate:"omitempty"` + ProviderAllowList string `env:"PROVIDER_ALLOW_LIST" flag:"provider-allow-list" validate:"omitempty" desc:"comma separated list of provider addresses allowed to open session with"` } System struct { Enable bool `env:"SYS_ENABLE" flag:"sys-enable" desc:"enable system level configuration adjustments"` @@ -146,10 +147,17 @@ func (cfg *Config) SetDefaults() { if cfg.Web.PublicUrl == "" { cfg.Web.PublicUrl = fmt.Sprintf("http://%s", cfg.Web.Address) } - if cfg.Proxy.StoragePath == "" { cfg.Proxy.StoragePath = "./data/badger/" } + if cfg.Proxy.StoreChatContext == nil { + cfg.Proxy.StoreChatContext = new(bool) + *cfg.Proxy.StoreChatContext = true + } + if cfg.Proxy.ForwardChatContext == nil { + cfg.Proxy.ForwardChatContext = new(bool) + *cfg.Proxy.ForwardChatContext = true + } } // GetSanitized returns a copy of the config with sensitive data removed @@ -179,6 +187,11 @@ func (cfg *Config) GetSanitized() interface{} { publicCfg.Log.LevelRPC = cfg.Log.LevelRPC publicCfg.Proxy.Address = cfg.Proxy.Address + publicCfg.Proxy.ModelsConfigPath = cfg.Proxy.ModelsConfigPath + publicCfg.Proxy.ProviderAllowList = cfg.Proxy.ProviderAllowList + publicCfg.Proxy.StoragePath = cfg.Proxy.StoragePath + publicCfg.Proxy.StoreChatContext = cfg.Proxy.StoreChatContext + publicCfg.Proxy.ForwardChatContext = cfg.Proxy.ForwardChatContext publicCfg.System.Enable = cfg.System.Enable publicCfg.System.LocalPortRange = cfg.System.LocalPortRange diff --git a/proxy-router/internal/proxyapi/controller_http.go b/proxy-router/internal/proxyapi/controller_http.go index 0cadc20d..e458d9df 100644 --- a/proxy-router/internal/proxyapi/controller_http.go +++ b/proxy-router/internal/proxyapi/controller_http.go @@ -6,6 +6,7 @@ import ( "fmt" "net/http" + constants "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/aiengine" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/blockchainapi/structs" "github.com/MorpheusAIs/Morpheus-Lumerin-Node/proxy-router/internal/chatstorage/genericchatstorage" @@ -18,22 +19,26 @@ import ( type AIEngine interface { GetLocalModels() ([]aiengine.LocalModel, error) - GetAdapter(ctx context.Context, chatID, modelID, sessionID common.Hash, storeContext bool) (aiengine.AIEngineStream, error) + GetAdapter(ctx context.Context, chatID, modelID, sessionID common.Hash, storeContext, forwardContext bool) (aiengine.AIEngineStream, error) } type ProxyController struct { - service *ProxyServiceSender - aiEngine AIEngine - chatStorage genericchatstorage.ChatStorageInterface - log lib.ILogger + service *ProxyServiceSender + aiEngine AIEngine + chatStorage genericchatstorage.ChatStorageInterface + storeChatContext bool + forwardChatContext bool + log lib.ILogger } -func NewProxyController(service *ProxyServiceSender, aiEngine AIEngine, chatStorage genericchatstorage.ChatStorageInterface, log lib.ILogger) *ProxyController { +func NewProxyController(service *ProxyServiceSender, aiEngine AIEngine, chatStorage genericchatstorage.ChatStorageInterface, storeChatContext, forwardChatContext bool, log lib.ILogger) *ProxyController { c := &ProxyController{ - service: service, - aiEngine: aiEngine, - chatStorage: chatStorage, - log: log, + service: service, + aiEngine: aiEngine, + chatStorage: chatStorage, + storeChatContext: storeChatContext, + forwardChatContext: forwardChatContext, + log: log, } return c @@ -112,14 +117,21 @@ func (c *ProxyController) Prompt(ctx *gin.Context) { } } - // promptAt := time.Now() - - adapter, err := c.aiEngine.GetAdapter(ctx, chatID.Hash, head.ModelID.Hash, head.SessionID.Hash, true) + adapter, err := c.aiEngine.GetAdapter(ctx, chatID.Hash, head.ModelID.Hash, head.SessionID.Hash, c.storeChatContext, c.forwardChatContext) if err != nil { ctx.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) return } + var contentType string + if body.Stream { + contentType = constants.CONTENT_TYPE_EVENT_STREAM + } else { + contentType = constants.CONTENT_TYPE_JSON + } + + ctx.Writer.Header().Set(constants.HEADER_CONTENT_TYPE, contentType) + err = adapter.Prompt(ctx, &body, func(cbctx context.Context, completion genericchatstorage.Chunk) error { marshalledResponse, err := json.Marshal(completion.Data()) if err != nil { diff --git a/proxy-router/internal/proxyapi/proxy_receiver.go b/proxy-router/internal/proxyapi/proxy_receiver.go index 5d94b513..de4c1fa4 100644 --- a/proxy-router/internal/proxyapi/proxy_receiver.go +++ b/proxy-router/internal/proxyapi/proxy_receiver.go @@ -66,7 +66,7 @@ func (s *ProxyReceiver) SessionPrompt(ctx context.Context, requestID string, use totalTokens := 0 now := time.Now().UnixMilli() - adapter, err := s.aiEngine.GetAdapter(ctx, common.Hash{}, session.ModelID(), common.Hash{}, false) + adapter, err := s.aiEngine.GetAdapter(ctx, common.Hash{}, session.ModelID(), common.Hash{}, false, false) if err != nil { err := lib.WrapError(fmt.Errorf("failed to get adapter"), err) sourceLog.Error(err) diff --git a/proxy-router/models-config.json.example b/proxy-router/models-config.json.example index 9ca864aa..874c9a02 100644 --- a/proxy-router/models-config.json.example +++ b/proxy-router/models-config.json.example @@ -1,6 +1,13 @@ { - "0x6a4813e866a48da528c533e706344ea853a1d3f21e37b4c8e7ffd5ff25779018": { - "modelName": "llama2", - "apiType": "openai" - } -} \ No newline at end of file + "0x0000000000000000000000000000000000000000000000000000000000000000": { + "modelName": "llama2", + "apiType": "openai", + "apiUrl": "http://localhost:11434/v1" + }, + "0x0000000000000000000000000000000000000000000000000000000000000001": { + "modelName": "v1-5-pruned-emaonly.safetensors [d7049739]", + "apiType": "prodia-sd", + "apiUrl": "https://api.prodia.com/v1", + "apiKey": "" + } +} From 43ed95061054f298a195664303e3503c49b7d49d Mon Sep 17 00:00:00 2001 From: shev Date: Wed, 13 Nov 2024 15:48:01 +0100 Subject: [PATCH 121/260] fix: missing history.go param injection --- proxy-router/internal/aiengine/history.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/proxy-router/internal/aiengine/history.go b/proxy-router/internal/aiengine/history.go index b79fe753..362ca71c 100644 --- a/proxy-router/internal/aiengine/history.go +++ b/proxy-router/internal/aiengine/history.go @@ -21,11 +21,12 @@ type History struct { func NewHistory(engine AIEngineStream, storage gcs.ChatStorageInterface, chatID, modelID common.Hash, forwardChatContext bool, log lib.ILogger) *History { return &History{ - engine: engine, - storage: storage, - chatID: chatID, - modelID: modelID, - log: log, + engine: engine, + storage: storage, + chatID: chatID, + modelID: modelID, + forwardChatContext: forwardChatContext, + log: log, } } From 13d75e4c2b72c8eee6ed7dce1eb580417df951db Mon Sep 17 00:00:00 2001 From: shev Date: Wed, 13 Nov 2024 15:48:37 +0100 Subject: [PATCH 122/260] fix: set models-config.json defaults to match our bundled package --- docs/models-config.json.md | 15 ++++++++------- proxy-router/models-config.json.example | 2 +- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/docs/models-config.json.md b/docs/models-config.json.md index e1fb352b..dee8d26b 100644 --- a/docs/models-config.json.md +++ b/docs/models-config.json.md @@ -16,19 +16,20 @@ { "0x6a4813e866a48da528c533e706344ea853a1d3f21e37b4c8e7ffd5ff25779018": { "modelName": "llama2", - "apiType": "openai" + "apiType": "openai", + "apiUrl": "http://localhost:8080/v1" }, "0x60d5900b10534de1a668fd990bd790fa3fe04df8177e740f249c750023a680fb": { "modelName": "v1-5-pruned-emaonly.safetensors [d7049739]", - "apiType": "prodia", - "apiUrl": "https://api.prodia.com/v1/sd/generate", - "apiKey": "ed53950-852a-45a7-bf07-47b89bb492e38" + "apiType": "prodia-sd", + "apiUrl": "https://api.prodia.com/v1", + "apiKey": "replace-with-your-api-key" }, "0x0d90cf8ca0a811a5cd2347148171e9a2401e9fbc32f683b648c5c1381df91ff7": { "modelName": "animagineXLV3_v30.safetensors [75f2f05b]", - "apiType": "prodia", - "apiUrl": "https://api.prodia.com/v1/sdxl/generate", - "apiKey": "ed53950-852a-45a7-bf07-47b89bb492e38" + "apiType": "prodia-sdxl", + "apiUrl": "https://api.prodia.com/v1", + "apiKey": "replace-with-your-api-key" }, "0x06c7b502d0b7f14a96bb4fda5f2ba941068601d5f6b90804c9330e96b093b0ce": { "modelName": "LMR-Collective Cognition Mistral 7B", diff --git a/proxy-router/models-config.json.example b/proxy-router/models-config.json.example index 874c9a02..b9d1391a 100644 --- a/proxy-router/models-config.json.example +++ b/proxy-router/models-config.json.example @@ -2,7 +2,7 @@ "0x0000000000000000000000000000000000000000000000000000000000000000": { "modelName": "llama2", "apiType": "openai", - "apiUrl": "http://localhost:11434/v1" + "apiUrl": "http://localhost:8080/v1" }, "0x0000000000000000000000000000000000000000000000000000000000000001": { "modelName": "v1-5-pruned-emaonly.safetensors [d7049739]", From 1616d1ce5402e6060c7fa6265ea8614688ccbfb8 Mon Sep 17 00:00:00 2001 From: shev Date: Wed, 13 Nov 2024 15:49:02 +0100 Subject: [PATCH 123/260] fix: remove unused OPENAI_BASE_URL --- proxy-router/.env.example | 1 - proxy-router/.env.example.win | 1 - 2 files changed, 2 deletions(-) diff --git a/proxy-router/.env.example b/proxy-router/.env.example index 1c1b6c5b..31cf6892 100644 --- a/proxy-router/.env.example +++ b/proxy-router/.env.example @@ -12,7 +12,6 @@ ETH_NODE_USE_SUBSCRIPTIONS=false ETH_NODE_ADDRESS= ENVIRONMENT=development ETH_NODE_LEGACY_TX=false -OPENAI_BASE_URL=http://localhost:8080/v1 PROXY_STORE_CHAT_CONTEXT=true PROXY_STORAGE_PATH=./data/ LOG_COLOR=true diff --git a/proxy-router/.env.example.win b/proxy-router/.env.example.win index 1774188e..2758c76c 100644 --- a/proxy-router/.env.example.win +++ b/proxy-router/.env.example.win @@ -12,7 +12,6 @@ ETH_NODE_USE_SUBSCRIPTIONS=false ETH_NODE_ADDRESS= ENVIRONMENT=development ETH_NODE_LEGACY_TX=false -OPENAI_BASE_URL=http://localhost:8080/v1 PROXY_STORE_CHAT_CONTEXT=true PROXY_STORAGE_PATH=.\data\ LOG_COLOR=true From a541fc106c873f7a8440ea6c9a365db023dfd1f0 Mon Sep 17 00:00:00 2001 From: shev Date: Wed, 13 Nov 2024 17:08:08 +0100 Subject: [PATCH 124/260] fix: bool pointer env var defaulting --- proxy-router/cmd/main.go | 2 +- proxy-router/internal/config/config.go | 24 +++++++------- proxy-router/internal/config/loader.go | 2 ++ proxy-router/internal/lib/bool.go | 45 ++++++++++++++++++++++++++ 4 files changed, 60 insertions(+), 13 deletions(-) create mode 100644 proxy-router/internal/lib/bool.go diff --git a/proxy-router/cmd/main.go b/proxy-router/cmd/main.go index c7268f60..75818605 100644 --- a/proxy-router/cmd/main.go +++ b/proxy-router/cmd/main.go @@ -284,7 +284,7 @@ func start() error { blockchainController := blockchainapi.NewBlockchainController(blockchainApi, log) ethConnectionValidator := system.NewEthConnectionValidator(*big.NewInt(int64(cfg.Blockchain.ChainID))) - proxyController := proxyapi.NewProxyController(proxyRouterApi, aiEngine, chatStorage, *cfg.Proxy.StoreChatContext, *cfg.Proxy.ForwardChatContext, log) + proxyController := proxyapi.NewProxyController(proxyRouterApi, aiEngine, chatStorage, *cfg.Proxy.StoreChatContext.Bool, *cfg.Proxy.ForwardChatContext.Bool, log) walletController := walletapi.NewWalletController(wallet) systemController := system.NewSystemController(&cfg, wallet, rpcClientStore, sysConfig, appStartTime, chainID, log, ethConnectionValidator) diff --git a/proxy-router/internal/config/config.go b/proxy-router/internal/config/config.go index 4791a141..c6dcab26 100644 --- a/proxy-router/internal/config/config.go +++ b/proxy-router/internal/config/config.go @@ -50,12 +50,12 @@ type Config struct { LevelBadger string `env:"LOG_LEVEL_BADGER" flag:"log-level-badger" validate:"omitempty,oneof=debug info warn error dpanic panic fatal"` } Proxy struct { - Address string `env:"PROXY_ADDRESS" flag:"proxy-address" validate:"required,hostname_port"` - StoragePath string `env:"PROXY_STORAGE_PATH" flag:"proxy-storage-path" validate:"omitempty,dirpath" desc:"enables file storage and sets the folder path"` - StoreChatContext *bool `env:"PROXY_STORE_CHAT_CONTEXT" flag:"proxy-store-chat-context" desc:"store chat context in the proxy storage"` - ForwardChatContext *bool `env:"PROXY_FORWARD_CHAT_CONTEXT" flag:"proxy-forward-chat-context" desc:"prepend whole stored message history to the prompt"` - ModelsConfigPath string `env:"MODELS_CONFIG_PATH" flag:"models-config-path" validate:"omitempty"` - ProviderAllowList string `env:"PROVIDER_ALLOW_LIST" flag:"provider-allow-list" validate:"omitempty" desc:"comma separated list of provider addresses allowed to open session with"` + Address string `env:"PROXY_ADDRESS" flag:"proxy-address" validate:"required,hostname_port"` + StoragePath string `env:"PROXY_STORAGE_PATH" flag:"proxy-storage-path" validate:"omitempty,dirpath" desc:"enables file storage and sets the folder path"` + StoreChatContext *lib.Bool `env:"PROXY_STORE_CHAT_CONTEXT" flag:"proxy-store-chat-context" desc:"store chat context in the proxy storage"` + ForwardChatContext *lib.Bool `env:"PROXY_FORWARD_CHAT_CONTEXT" flag:"proxy-forward-chat-context" desc:"prepend whole stored message history to the prompt"` + ModelsConfigPath string `env:"MODELS_CONFIG_PATH" flag:"models-config-path" validate:"omitempty"` + ProviderAllowList string `env:"PROVIDER_ALLOW_LIST" flag:"provider-allow-list" validate:"omitempty" desc:"comma separated list of provider addresses allowed to open session with"` } System struct { Enable bool `env:"SYS_ENABLE" flag:"sys-enable" desc:"enable system level configuration adjustments"` @@ -150,13 +150,13 @@ func (cfg *Config) SetDefaults() { if cfg.Proxy.StoragePath == "" { cfg.Proxy.StoragePath = "./data/badger/" } - if cfg.Proxy.StoreChatContext == nil { - cfg.Proxy.StoreChatContext = new(bool) - *cfg.Proxy.StoreChatContext = true + if cfg.Proxy.StoreChatContext.Bool == nil { + val := true + cfg.Proxy.StoreChatContext = &lib.Bool{Bool: &val} } - if cfg.Proxy.ForwardChatContext == nil { - cfg.Proxy.ForwardChatContext = new(bool) - *cfg.Proxy.ForwardChatContext = true + if cfg.Proxy.ForwardChatContext.Bool == nil { + val := true + cfg.Proxy.ForwardChatContext = &lib.Bool{Bool: &val} } } diff --git a/proxy-router/internal/config/loader.go b/proxy-router/internal/config/loader.go index 39406b19..73cd5b6c 100644 --- a/proxy-router/internal/config/loader.go +++ b/proxy-router/internal/config/loader.go @@ -60,6 +60,8 @@ func LoadConfig(cfg ConfigInterface, osArgs *[]string, validator Validator) erro envValue := os.Getenv(envName) _ = field.Set(envValue) // if err != nil { + // replace all bool envs to lib.Bool to uncomment this and error on invalid env var configuration + // fmt.Printf("invalid value for env variable %s: %s. Error: %s\n", envName, envValue, err) // TODO: set default value on error // return lib.WrapError(ErrEnvParse, fmt.Errorf("%s: %w", envName, err)) // } diff --git a/proxy-router/internal/lib/bool.go b/proxy-router/internal/lib/bool.go new file mode 100644 index 00000000..12f4618d --- /dev/null +++ b/proxy-router/internal/lib/bool.go @@ -0,0 +1,45 @@ +package lib + +import ( + "errors" + "strings" +) + +type Bool struct { + Bool *bool +} + +func (b *Bool) UnmarshalText(data []byte) error { + normalized := strings.ToLower(strings.TrimSpace(string(data))) + if normalized == "true" { + val := true + *b = Bool{Bool: &val} + return nil + } + + if normalized == "false" { + val := false + *b = Bool{Bool: &val} + return nil + } + + if normalized == "" { + *b = Bool{Bool: nil} + return nil + } + + return errors.New("invalid boolean value") +} + +func (b *Bool) String() string { + if b == nil { + return "nil" + } + if b.Bool == nil { + return "nil" + } + if *b.Bool { + return "true" + } + return "false" +} From 77904d3e8568cb514dbf1a18fa9ea889b595ab6d Mon Sep 17 00:00:00 2001 From: shev Date: Wed, 13 Nov 2024 17:18:33 +0100 Subject: [PATCH 125/260] fix: avoid mutation on AppendChatHistory --- .../internal/chatstorage/genericchatstorage/interface.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/proxy-router/internal/chatstorage/genericchatstorage/interface.go b/proxy-router/internal/chatstorage/genericchatstorage/interface.go index 8df8abd4..690c00f1 100644 --- a/proxy-router/internal/chatstorage/genericchatstorage/interface.go +++ b/proxy-router/internal/chatstorage/genericchatstorage/interface.go @@ -39,8 +39,11 @@ func (h *ChatHistory) AppendChatHistory(req *openai.ChatCompletionRequest) *open } messagesWithHistory = append(messagesWithHistory, req.Messages...) - req.Messages = messagesWithHistory - return req + + // superficial copy to avoid modifying the original request + newReq := *req + newReq.Messages = messagesWithHistory + return &newReq } type ChatMessage struct { From a0ad6b0c46e9edd6587902f85b64d74ddba01a1a Mon Sep 17 00:00:00 2001 From: Aleksandr Kukharenko Date: Wed, 13 Nov 2024 19:05:51 +0200 Subject: [PATCH 126/260] fix: send actual message to prodia --- proxy-router/internal/aiengine/prodia_sd.go | 2 +- proxy-router/internal/aiengine/prodia_sdxl.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/proxy-router/internal/aiengine/prodia_sd.go b/proxy-router/internal/aiengine/prodia_sd.go index 826e21fb..782bf335 100644 --- a/proxy-router/internal/aiengine/prodia_sd.go +++ b/proxy-router/internal/aiengine/prodia_sd.go @@ -40,7 +40,7 @@ func NewProdiaSDEngine(modelName, apiURL, apiKey string, log lib.ILogger) *Prodi func (s *ProdiaSD) Prompt(ctx context.Context, prompt *openai.ChatCompletionRequest, cb gcs.CompletionCallback) error { body := map[string]string{ "model": s.modelName, - "prompt": prompt.Messages[0].Content, + "prompt": prompt.Messages[len(prompt.Messages)-1].Content, } payload, err := json.Marshal(body) diff --git a/proxy-router/internal/aiengine/prodia_sdxl.go b/proxy-router/internal/aiengine/prodia_sdxl.go index 4fe18f51..ff856100 100644 --- a/proxy-router/internal/aiengine/prodia_sdxl.go +++ b/proxy-router/internal/aiengine/prodia_sdxl.go @@ -40,7 +40,7 @@ func NewProdiaSDXLEngine(modelName, apiURL, apiKey string, log lib.ILogger) *Pro func (s *ProdiaSDXL) Prompt(ctx context.Context, prompt *openai.ChatCompletionRequest, cb gcs.CompletionCallback) error { body := map[string]string{ "model": s.modelName, - "prompt": prompt.Messages[0].Content, + "prompt": prompt.Messages[len(prompt.Messages)-1].Content, } payload, err := json.Marshal(body) From cb430dcccbf7560edabbff420f7b75646ee2cf62 Mon Sep 17 00:00:00 2001 From: Oleksandr Date: Wed, 13 Nov 2024 23:10:49 +0200 Subject: [PATCH 127/260] remove console.log --- .../contracts/mock/delegate-registry/DelegateRegistry.sol | 1 - 1 file changed, 1 deletion(-) diff --git a/smart-contracts/contracts/mock/delegate-registry/DelegateRegistry.sol b/smart-contracts/contracts/mock/delegate-registry/DelegateRegistry.sol index 4489b234..fad4c6ac 100644 --- a/smart-contracts/contracts/mock/delegate-registry/DelegateRegistry.sol +++ b/smart-contracts/contracts/mock/delegate-registry/DelegateRegistry.sol @@ -119,7 +119,6 @@ contract DelegateRegistry is IDelegateRegistry { uint256 amount ) external payable override returns (bytes32 hash) { hash = Hashes.erc20Hash(msg.sender, rights, to, contract_); - console.log("msg.sender", msg.sender); bytes32 location = Hashes.location(hash); address loadedFrom = _loadFrom(location); if (amount != 0) { From 83445c1c3310776a94887c45578188e27e1b91bf Mon Sep 17 00:00:00 2001 From: Oleksandr Date: Wed, 13 Nov 2024 23:11:27 +0200 Subject: [PATCH 128/260] remove console.log --- .../contracts/mock/delegate-registry/DelegateRegistry.sol | 2 -- 1 file changed, 2 deletions(-) diff --git a/smart-contracts/contracts/mock/delegate-registry/DelegateRegistry.sol b/smart-contracts/contracts/mock/delegate-registry/DelegateRegistry.sol index fad4c6ac..766413d4 100644 --- a/smart-contracts/contracts/mock/delegate-registry/DelegateRegistry.sol +++ b/smart-contracts/contracts/mock/delegate-registry/DelegateRegistry.sol @@ -6,8 +6,6 @@ import {RegistryHashes as Hashes} from "./libraries/RegistryHashes.sol"; import {RegistryStorage as Storage} from "./libraries/RegistryStorage.sol"; import {RegistryOps as Ops} from "./libraries/RegistryOps.sol"; -import "hardhat/console.sol"; - /** * @title DelegateRegistry * @custom:version 2.0 From 694c13b643f7dad3b83ad7f38b5821d50a314f23 Mon Sep 17 00:00:00 2001 From: "bohdan.konorin" Date: Wed, 13 Nov 2024 23:01:51 +0100 Subject: [PATCH 129/260] Removed useless public --- ui-desktop/public/.eslintrc.json.bak | 20 --- ui-desktop/public/favicon.ico | Bin 3870 -> 0 bytes .../montserrat-v25-latin-100.woff2 | Bin 11624 -> 0 bytes .../montserrat-v25-latin-200.woff2 | Bin 12504 -> 0 bytes .../montserrat-v25-latin-300.woff2 | Bin 12580 -> 0 bytes .../montserrat-v25-latin-500.woff2 | Bin 12820 -> 0 bytes .../montserrat-v25-latin-600.woff2 | Bin 12700 -> 0 bytes .../montserrat-v25-latin-700.woff2 | Bin 12848 -> 0 bytes .../montserrat-v25-latin-800.woff2 | Bin 12896 -> 0 bytes .../montserrat-v25-latin-900.woff2 | Bin 12048 -> 0 bytes .../montserrat-v25-latin-italic.woff2 | Bin 12996 -> 0 bytes .../montserrat-v25-latin-regular.woff2 | Bin 12708 -> 0 bytes ui-desktop/public/images/MainBackground.png | Bin 8534085 -> 0 bytes ui-desktop/public/images/ant-miner.jpg | Bin 39359 -> 0 bytes ui-desktop/public/images/banner.png | Bin 17324 -> 0 bytes ui-desktop/public/images/banner.svg | 20 --- ui-desktop/public/images/pattern-light.png | Bin 64054 -> 0 bytes ui-desktop/public/images/pattern.png | Bin 104810 -> 0 bytes ui-desktop/public/index.html | 137 ------------------ ui-desktop/public/logger.js | 42 ------ ui-desktop/public/main.jpg | Bin 12676 -> 0 bytes ui-desktop/public/manifest.json | 15 -- 22 files changed, 234 deletions(-) delete mode 100644 ui-desktop/public/.eslintrc.json.bak delete mode 100644 ui-desktop/public/favicon.ico delete mode 100644 ui-desktop/public/fonts/montserrat-v25-latin/montserrat-v25-latin-100.woff2 delete mode 100644 ui-desktop/public/fonts/montserrat-v25-latin/montserrat-v25-latin-200.woff2 delete mode 100644 ui-desktop/public/fonts/montserrat-v25-latin/montserrat-v25-latin-300.woff2 delete mode 100644 ui-desktop/public/fonts/montserrat-v25-latin/montserrat-v25-latin-500.woff2 delete mode 100644 ui-desktop/public/fonts/montserrat-v25-latin/montserrat-v25-latin-600.woff2 delete mode 100644 ui-desktop/public/fonts/montserrat-v25-latin/montserrat-v25-latin-700.woff2 delete mode 100644 ui-desktop/public/fonts/montserrat-v25-latin/montserrat-v25-latin-800.woff2 delete mode 100644 ui-desktop/public/fonts/montserrat-v25-latin/montserrat-v25-latin-900.woff2 delete mode 100644 ui-desktop/public/fonts/montserrat-v25-latin/montserrat-v25-latin-italic.woff2 delete mode 100644 ui-desktop/public/fonts/montserrat-v25-latin/montserrat-v25-latin-regular.woff2 delete mode 100644 ui-desktop/public/images/MainBackground.png delete mode 100644 ui-desktop/public/images/ant-miner.jpg delete mode 100644 ui-desktop/public/images/banner.png delete mode 100644 ui-desktop/public/images/banner.svg delete mode 100644 ui-desktop/public/images/pattern-light.png delete mode 100644 ui-desktop/public/images/pattern.png delete mode 100644 ui-desktop/public/index.html delete mode 100644 ui-desktop/public/logger.js delete mode 100644 ui-desktop/public/main.jpg delete mode 100644 ui-desktop/public/manifest.json diff --git a/ui-desktop/public/.eslintrc.json.bak b/ui-desktop/public/.eslintrc.json.bak deleted file mode 100644 index 79e94c7d..00000000 --- a/ui-desktop/public/.eslintrc.json.bak +++ /dev/null @@ -1,20 +0,0 @@ -{ - "env": { - "node": true - }, - "extends": [ - "bloq", - "prettier" - ], - "parserOptions": { - "ecmaFeatures": { - "experimentalObjectRestSpread": false, - "jsx": false - }, - "ecmaVersion": 2017 - }, - "root": true, - "rules": { - "promise/catch-or-return": "error" - } -} diff --git a/ui-desktop/public/favicon.ico b/ui-desktop/public/favicon.ico deleted file mode 100644 index a11777cc471a4344702741ab1c8a588998b1311a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3870 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ diff --git a/ui-desktop/public/fonts/montserrat-v25-latin/montserrat-v25-latin-100.woff2 b/ui-desktop/public/fonts/montserrat-v25-latin/montserrat-v25-latin-100.woff2 deleted file mode 100644 index 94871cdf3aade5ccef49ba997991f258953f0f5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11624 zcmV-uEtk@FPew8T0RR9104-<$5C8xG0DIg304)Xp0RR9100000000000000000000 z0000Qb{o=29ELOoU_Vn-K~zKlg%S}63W0$z=RymFKmY+Y0we>7d;}l`g$f5C3_~*o+M8I}|Ca<#WC+xUPQ4-`QboW>h&{cJHDLIuszr1& z)e3v^p43LvMDEV--|cIEM=#+6hIk28b7x%sF)f4Vcg+PGd*3x#R^;yNJ%I017DYdn; zns57bow0Q;g(w;;t9$R&%YY>r72%N7t5{^?BUz}hkJZ2fAzj!!L`GI3mB>ltWqIZ0 zxLhumU!Z^4{c_4<&E-2xk9-Kg~Egh6AIwpFQ=co zmhC^Y&$^$Ya)qVCV?eTe_LbgD{ds6IJTx?c0VEA5zyNUQnk%&t%yc~d=v+iz80_zD zYVAJ%`xC`SyQ9fi2`dc!`Ut3~p1;@8etp9_%3TB@&>AKy*_lWQD{)3)J4Zw-=U^Q^ zz>28_?0~v!vA*`YE6OWt>icWUE6@L$R?_Lyj6=$R8ITYXqPpL|`>oXK(T1$kg*+$c z)IB4wMytya-Ldtdg|<}{kUA~aLO zTQAaFV4@}%;Ic=v%MuJ+MkXR1UlR7PamCgS8GRxlacm}GiEe!@M|vHFl4sYl#BlLf zz)BR)2p$xqV$5Ai3_{~RbA&A#xul+L45?BPUJO(Q$HtD5WuDTwHn6j^XfhUdqDz7{ zsgR!FkGWQ7 zF5jtgH&dE3rAzOYHHGE@HK~4*!YMs-!sHM=1ZHdCG%*rj^3t5LlWLJ|xw*#)CQ^46 zh!yDob#rxqNW6~r@6pJ7KbVO(Lak?ep$V*?8hc-Ht>5_466m8n&^*R8q}wvSdlCL; zWv7P5ip-J%a%jQ4zW~aB}0b^N)p!%mS9^hL-`v7$q`Iq z@VY831*7bpNwBqCiBi5&5wCYzU_bF5!!;eo04O;pUedp7`#3fT7EJ5V}Pb%GrC)fJG!0fl>5qNOxFV54%XED%gu)>}7AN zoo)Eb`2|87aq|Sz}8LQ3Z^9l>~Oz;i7I$_CniCu13EYPuK{dLvf4jPt? zmzDN`?i^L{-wCd5uIw)@*8@2N`$S5dDtrq9{h9Eu6!FdmRl`3IrqNZ?_>~Outb_jb?caLQ8c>w0) z-juizRAw1qb?(aA7_4i zYrS?HUEgDh`?05}&WZ>y#yZMuf@4t#-D-@9JNsKLZpcp{vAG)9Ovqm9%A6tEM8b%2 zcW4*>b_|*!i=j;NtP(O@z~Ink*ti;&J$o0y_<6k?Y+*%~#vEpO=QVzrY|}YYKVzF# zG`$R3rgX3Op#19XIQGMUO-@zd43I&@aMA`%JrR%D3ep5T@l;hB>ReJ_ImiXjXNb17 zF6tjbRFie)2u*JJP%59;5RFhL@NbM#S`K+VVBDty4GbvlxDrRY9dt(?tS7W&dAJj# zY)v!3zQufKB;yrw4>YC3@bA}wCtUlpS=$Z>&R6RNG^L*AKOdIq^5$lXw( zJvfvzXYG$;LbiCAPsQtD)k3jRaF3Qys8qi)L*Gr&h3UU9#zkF0n#D+TYW0O;e88<& zL|ROES>WU!GPw6g8;4Bq185KTy15B&wq2)Y69?o28fT^)u|ze~yo}!>)Rr{mH6=o7 zC6`8k5Nys5W@TLOairugf1GsMrq)BDJoVD3v+^l;NV&Xtcsya1E^4PnrTR|Vxx)!Z z{eD5uxB3QGVEA|o#PIV1=k%;*>lzKm~I zFf!FwfX$QxEpccgRSI}iFdMQdkG(Nq7UpX@qf;AB>kJ1ygGcz9S5c~-&5I=_5JNxx zRPFR~-A(>GKcL9I0rvIP9UyWcr?-7blE3&*OBjAt`Y$sApy(>%O2L#PheL_bYkn>V z_ECohgqSO_iXk}Wm&>RRQ3g``IP9`KO@kQ&hl)uNX+)RFSwxoTXs?@7j&0kDNRrvi zAM#Ic4Cyhj7LD&=ut?de(Ap?Deh6N)!p-uf@UW7RWn!pamO<@E@!*$~iGT&yd~Eb7 z_1-P?l^O{`!o2=jC+2LqTX?+@z@YDVVi_iH@!D|#(tl8O#wDGwJZF*C0E2uUXDLU@ zLXZt}kre2d)y+hGt-#g=d}CqVniNKJ*GOuORe?4Z0mj)Jw`uJ^Tnua^ID&$@1g{iX z3nKxgv{|dbEM1>z6Gw~(KA$CElsMvrj3!C$T>+tJ>MDGtB6HMs_+S*>3>%>)CiMmZ zmUSr`SE(D@q-Zy6@PQkQ(yL}%ezV@W;Vbq6TI-%s43ojZ#2b*n-8F%v=(8)V&Zjsk4zZHE!7 zvn>VYP!y8Wy8*L-z)a@P)=&(xon;LA$EgO9VOTgs#H3{GT*~+~8@JF&(`H<9)pd`2 zY96X=oO@iT8R;$n&jK%@`&7CRWk}ozyeLAsMwFp&3+0)@D;ACmm?xH7C@%_vB48E} zfexxCZd3s*1=a!^fxNKh-ijY63Qe`A5*l@1jP z;RBW!;WK8TVG~vw^O9+kW}Nn%bKbJvMeo|=l6$uKzt0^qXU@yM@r_q}?+35?**{)4 zZ{8UQ#JsS>8!kmOAdSKgnko&h0xw-gtP24%991?Z&qS034}d8-NC&6EL%k6~#CD34 zFXEVUfdtz16$i~7A|k*9Lnv%mAwY#{ZoNpw2$b4l{-ptp3F&C?@u;b=Bst?%0g2@V zY@D^_p;%rF&{Q5^ovS7Q4bWu(F|H*NkMiIq3*}KmBe?fk7>J@3Fi37LPRROg$|Nl*Ff<;DxE)RuBHs*HJIcRwJgc|9Ab1@=Q0+1n* zI7ts03i6w>1V~BZ4?UiklErVjzy-)MVTvFAL~ls<$Eo`I+(uK6=;WZK;9u&$Sv}K zJWTrh!9YhZeEled;m2oi|G&c=_qrJuT{$A3yYuPbiGS;Nzk8CfsOfv)C*fnR7^v{? z39Xxo#GNRmC+C8;(j&WU(+{%kNFM)Asr8}u1Azc!k)lKcfd~Xo5E4#s1V|_eBM~I7 zFur0;R2IfNuL_}+X+>JlB(zi}PZD=Y8`FkG_0=ouf^xb?Pz38Nqu~n+x!g3|riE@= z*rtVV8lFZh4+)U;8-_eUZ>U@N=x!ATp~?m%rD5J4+Dhp{AZj2wfdFa}l+tQm3yNi& zIFwQZJ|*B4ZZ1caYj#e&NyJ5Flw;8H^`^k7$qombtn$2j!pcknG76{^Bk0iwQ3=ti zhNVHk1lj1UxQsz%1VuLe&=7XGwAtT6K|0iOU>e^d#7crlgaHqNPQXV0X)d^^1$Y9q z-4pWOgaQ-`64M%T6p$*Uhd^r~5C}XJs1F6&LwDS4?neNue^%FyU=TQQ5I}?mAVZ*0 zA0Pk{kb(L_AV7V%v>zCb3MUn)flF?Y`S4TLnZDBx`~UqB)NSf+YBDvQnnlf}3aJXJ zp4v}6o|%>TT;}>LVphWZJU|UpJPNzRPiapzw%bKbqNeVOfGYpBO{#0aEI_#*@c-#2 zk|*LvHy&MobOL}cUOZa&=)FhV9t9ss9tl6b_i^pVH4kq+yb1`wU|_!ggE*FL;4sGF zZ16wZ_r30}Qy%)kFYY<#ylJ0#**jh`;}x%Z>`PyH!_N>A2%^NmkR(WyB2}7n88R`j zMIwq7 zCtfnLBoxu8XtHF>lj94ygn0M_WSH6%Qc=??prK=6Q_RB3t5g{`lLhM4@@r6MPC$=N zUAhel8ba4--V@i|aM@MYT!BE!d9i?K1xO=7^aiy*05p06P@D#N6F`ENn+XR6CTt7^ zbVLXwt>eqT5WdzVqz)xi<041kc2|ko9DUslS;?-Ikc)jo_ZG^R7{(wE0_mWq1P9HV zmSGygxU}dIAg_yqz^1PiGQw6#*f%{=Ss*5ao#}K#UE>m`dIYwF&NvM`5~^b8s>M7U zurMdH)@=wWthWe;Xj(L5@59n5hmKx)MtIt4IhICgCe-mi4VM(_uHaPBmQf=VT@9T_ zJn&P4?Ro#L#{Jvmqle^%sFyHm$T%Gm7Avb)+Y&My@q+J-)6%`!6EP~rG=;KUCp;kW zNnIj(Sm52j7$3M)$@zS?R$nC7d;gM;?8MWDw*qwo#ZdEKjIo|s{n&@2^N;-F@!0#a zqX$Qu7XU-dTEsC%VY@_q4=AVvzFgNug#+x#K6cZbrlc^5XEBg8RSOD5-nN7Z1mF(g zt1;9G56v*aNRJ2=LvU?C2N~(H9@)04%@Pp?02x3%@@-6^odXFP^7=C?gQ2!`P2_Vf zLro<)`xLSpBXM}kf;cJ4?}XD$gERufO`@P_HQ#H@s`o`6uO zox(F5FJ0q&UEJ{bjqLw*EmAab30)(uHxpeOP=S9^Gqk=9nsmk@ax<+#0UND!d~{Lq zm?|yG5QXfuO8y_LihXlc-POxjl9g|HQI_qoL)%!84h?U~GICS1oe|Q`H{uC=W2cZY zUAi%>4M^czS*3THc4cis(BC>A{5_Gd%&llepkP_L6F}lR3vB{C!>JVIhIpLis*mBU zr+YI2u!0`0odYag0()=zPM!ah?Y>oCAPbRFRBE3>gkms=Qjp}Yq1IdRCpgs#xyV|N z`*HcWIkR>pVrNv&Zp=KOHIHZJB8&e1_6x&M)$QfpFl||r-*+JV@k7_-JL4r9x1Gxp zWzG-Zfuum@xmT^fGJWgEe#nZS+Tn)QFVx*sb0r8;uIVRVP$?Uhy0!~C%;c@(V*Ldu z#LVA*k=Gj`D@XX#D%Fe}H$O+iL}sD*NXGQ8S7!U=rL7Z}-iqjVCXit~*N-mVA3yN^ zd9c1S_Kvx8=AloG7iRK18LSJn>5Wl&>W-)9wmw^i);Wj44|+4<`drv{O++sDTf6vM z^52pc4LVaJN<#2uIGN!0$PMdX!sOe%-CyhXeA|B&ykjdw)27ql{b+frxeJkK?DNm> zu;V39!f>WLA6LKrf$a=Wr2qBc*1Yw&s8@y+K$Rg=MJvPIK0F2SdHe)@_@o4LJ@elY zSy*|8cmCpivT~JMiH;HQMrY_^3WTtf?Pj;ry z4bu$P4(uN~uoanvHSM+ot#4X&-n1P{Yvjy1lUA1Q!I7+xcogXgx0J!Q2OOXZ#@J0V z@tPN&a@*uRCYHb-;y?&&MX#EAddChjK0;|11LZtKyS;%N>$6*1jitXn`g)FhdKyy& zulheANbMlj4|Qmq_6o)+J(Dl-d1NhChvGmpR;9taBE{(Vn$wB4rdK1oP`j*&H0Yp6 z)si*wwJhu}j=A0}wOB$*_6i`>0E1qFI5)ht5Il(TwffQ1UCR{A4 z7Nkpm4dKiVU!R}7ZaiPuU2yKoOai6Y=`1*cmYA6ai^OV;(6Em?I>Xu)4E|84*W3!2 z{cVAxsSOjg!6jOdL5?IO>lG}n^O#l*+B+sZ;C4;!(a98^UCHRNJ1#qgrJtL5mMfpg(OblYy zp|?bq+T6od0vi{&^WIEOD-N;N2_YttAY!LCcvvft*Xa*-#QNB{WY+}Rh3zJ>3$#p& z7u^VDotW~ffgkJQHk*RkC4`{x$YkfNNvox4X;z=JZ*xN-tBrR^N;`J5^;;&*9$M*@ zz|Q+uizV|0t@9dftY4*7j;frwk!6GU!`B^`Ot*#2?Oar`Wm+p&f zAk#*dY0j&+%=Vw{&W^7wRCIT5@yp}mAm8V$OG&Xsx=p2wq}=%OFWouK!}~NeK=}g; zzP30z4=nw>Pm1QnIxWrDGQn2ki`&y@*+2q|`h^84gS~2m8&43b$Kk+^N}1$Llp(F% zj!Fq@lFX^b>q0QL*FxO=9N1j#RqPwkXB?sI6tczigD^`c@LX-!Z^o5`ApV$|A&u#a z!H7?V#P$UcyvdxbMzLI2@kKrP=uyHDB+0H-YdJ@bL{8!qOwDVTgwZP3lV#zbiPj?t z^S>A1?ukh@Zk*}?w<_m~)<6n1SS6Wm1}*D6T#vE}aPRPK{-1k>ZoVVuZiN06DSF7N zV+6;tThG7tJVeZ#O286tzj}Ol{gTSCh^;HI6*%J=?AFW$>?N3-NoZeGUapYZ0yJ$@ zNh@9KRF;p|EG7{t-Te-ar{CV4ju9F!E4PV}hzm!LZ3hByye1nx5SMPG1?zhsl|Ut^<`-I~p5_wCnnn_)FUkk7tA555%R~ zeu4Gvba0(j9x#yZCfScVo)XnHg@!5YFpXzD_R@64bQ~?;k zrcgINo`nqIySTWA)Ahm7UwM?JZLt??%7hyJ5=R;+KVQcbCm~-cgCRvDmC_ zvIpn=bmd?FtoVFvNoPajl8&*@SHLr?v5Yhh#y%}Zic7y;{U@j)+3)C<;go{TXMWs3 z(g`$48D52PR&6z|@olR7oOBvFTm46gb$|Pt+RMU4ZOf(1|A&o>i*0@e$H)@=>&#k^ zSVMN^a*L!Kp0kNxDr?WGerac88n?KX$u{N-n@wvH7bHDit%SpOw(tOd1c#+!xFfI@ zUHI(!4Vy`u)-GK&G^EkBn@F2C6bWEZoFWU35u#4M+Ckb6rxG6@i~Qjj2|59K!g?g> z+XFb-0VS~~4y~a4VhnRON%OHX)Dr>4L${wJKl5D1yMdLVg4cD<7xHHbCxnHqBsNBk@%Us#Ni+j-Z+zd#364-V|vL(olV~ zSW&0dD*SEYVr{EXQ->J4PlP!r?Z)+stv;qL@+;lRk|=idDyMC#zg4|+%vVLUG$@3X zJgKz2PNWU?x0fqK6}5cJpS|sSdqIj?`*gZNn_b=CuG8z=H3fZE1V!&)?=LdkwiO26 zqA=Df*BDf(b;Q~E>l9IiG!Xg6&`($%2D*#J5w>Y|u!EuPZf)s1xPAK!>HfmOf#rA2 zy&7Flu|?P2TWBusF4S~eiZwmm8Z%MftWdS+4XU7d^hGTS!=TR*Z!@S3*HrNYwMIUP z@2?A#>+2-KdL4x{N9rdg7IitGFO(Dt@fXv3h_e||L9x_GvdRk#FtIhMuQct^)qjpN z=SXuae&YV~j}rP`tHW>M1r0zgW)`6LcMp5?9a_<)jjg-Q^_Q zp``Vdz(dX5?nE1AHunHxkxYU;qZ1oq3mZ zMqW5~ld3>X)r+huxqA+ic4!FSq(j zYqTZy8y7Qg%AE;4Xlk&jv?)AQxqu;Y$~=8lRVpmdSzBtTEB94)ws-zR`qv?Ct`}=H zRcyXf$fg<=8!5S~4MDctTcB3?nz-->sxCCh|0ew=tq_SaW{GwG{u=A!HK?v8E@lh_ zstfb&;}3>A8M)I(Xl2IFe{96$X_-bo_uwxr7j-PS^b)r?k6~nU7zX3qgz#|K3}f_@f)blrn^_Cg zrI%@g-t+Iaf1S64-cTCc*%DJg(LyQ)1L_?1>UOrZ0cDueHN>SM8=|GNM7^;osNMjN zrMRoa2sY)2cM_a=WyNXi-5FrTas*e{MSrJR0^VA43!`$jt(R@n`I$neER)MM&C(br z-^Tz&or|S^UpWqo?ai&VE?0YPUry|oyu|g`A?6%AKHTP0he!kc(%ICZ5B`~dc>5W?}Hj;MF#mbI@1TE=dt2|1%s>00e+R<50_gIzP>D1-5G||OYkwoSQGK?noq~s2XNMa4ri(?zRN{!~;viiE7GLx~h z3_{Kj?YN_3z%tcrmpO*+P7bs0>w;#1HmAFxPO3{>fVxJ!MLXNtfR^Us%zH|ANr7Cj zp_@S-Fh|V20Eb+BU#ZsA6)+7yk{m-Es zmDeR%7|s9xX+-F;`vvSWzKG}SXE#mJv|U(3Fq>WRO#8S%>{CdD)h$vOL(9iYbW`0v z_Oi0_KDLo&js5Z2bB1V|Z<*Dyp(`=mxju+$iYnW<1;$pPs#2{|RR@I{V!;BgxJ)7y zm-;zHg#nJdRLT%|8|4sI`qCRA4wcEVE~jd=e1uczk;x0nM%m>R>Qq=JmuWns93OFP z*#eu*g~rB~8p3JRQ`*Ur+Jqvdt&3%MI8$X431!Jz64y24(HmN!_V!^Z8}LBk8M<5F z-qYl|A;z8@=GYg^&{wr`3k_}Fs8YdF)hzs3T{8qrrII;X$I)r(;VqLe1s>}?#NqGp z*D7}ydW4NV-r#MjsPHx#3>x18P4E+b@-cNMGiGyZtIJbI8vgiDCjn<3jNaioh)MPfEv&)%uATVG715Lq$bwEEHvl z3~7)(6mvg`{2*yx6>(^2nAn2-0ynEY(ENNezqW~d?MLF5!wECP3k;^U9%@Zhw+71`98jZsq8UES$W&VjdhrC=B_8{9STcQ(X;#E^^D&1swgPG;dLQ zenqvOM#h=_Iw(0wA3qYPjB+l=sDz`lrxIgtP>B-eCGttV-$xRD0QH*m^^sBYIj5)_ z5up*}Q0gS~oC=wDs8gOPG;+cm^63rf)BJrAdHUnQU#B={uSZ;+W@-av!{x_j2rUBk znR5}>PB9}SG|ZjS)iOjzHuKcg@XIIZB$idXbTUs7C@FiX)*gHlQ-_V7YkT` zwC_cd8c;YfJQcjOx|ureA9Bu*&xq3A|54<_WVNENh>CVfu$|xOSRGq=?cjIt z*VZSl74cG=6SJ}G#9%56YOsc=G(77q^~&kK4*u9Vd#q! z{K@}~fhR1Sg2S#&V~xC0{QR3onf%WfWkG4vP>hHl=?A$#aJc087F^{&M`Jlds7RZpakzSK=?LWCakt z@mbQd_fBKmFtC(ibmDeq=B)5&BDCY$S1yELZ9;GlTW~(G^~18!Ly2qm;bUy#)}x8= z`JppHJ1PZhEA5_=wJl7`iQ9fIgYj1!k*U;j_8Mj=bnto8d!!S~F{pp`=+?w2?^}xx zz@|YXG1W!tMRtJC%O_Zgqc8;SPUo!H&M(ody2H5=|;ep7XMqXu_`Q znVeYmQ^SV^6b-ZI6lg=`h1brxF(EN9Dh!DcG^#u+TAMk?x`}c#9IA7 z<6#DsIL~>-9B;y|=~?;LTp6$pwN8j@{h|qrMLc0Pi^W#!Vo^=4XpxN+FZTQEkHxH(U$}ddsl=pKtDR}-COEuAV^m5c&PKBY z4yEpjzg-r=#~Hs1TN--B9C^(gzLdD`0I`O6U>)3io}tgnD`GN%HjKe6;)vd#qwQnm z(3tyZ6PdIe*1mDA0K~F8HrN`Z!-!c?L#n}w{V8GL;;xte60ZZSv-bdsnvEUwH68F| zi)4X4H6tC==t=3R4SQ~Z=}uWWoJ1Mfnw+wAgpxG8WiNGATKXDl#_EjpVQ6hlz#V-( zKIye|EU}ZSMo;C1C=9m<_N^hsks#$xf-3sO>B#tur_++PS#b#tEUM)FtQ-Xt8BRY- zMrIhQ#F{avFy!``$$Bbat+!NK~Iln%@9>?u6V#iWO$q$Z98X*Z_k}`H_P2L zchFQ+u1CCu)h4srk(ye$LR1%O>XcI@5fvrUQ7g9qb)iNQ8OX^`lStsV(2-30-XOQ#w{0SK=pAwo?lDy{^W<3s zWZ&45ukVvKjSNU-QV=AON~D6nq60AjIAS!>OpC0FKWIl1K6!K&etZtYXXDRx;V^(o z<@b*OsksWZ5TfuuKoyYAtN<^_n$imoq=Ir-eYR(jKq}E0lh~z2D^OwuvmQi4KqxdZ zvw?qFm3ZJ`t+=2W`fo)b1*cC-VVWkSG~w#@R9Ip~lK|3U=vtgtZuTlH-~?>AqLMF= z3@hIkk3;&e3B6i!0x}1HqkWGHMByNc{|3nCuk~mp`NaJ0az18`j?z@G*#}au@4+-6 zKLw|sNMV{&eO$<)BT!(BoR< z#>*=GHfjaT3%mwS9UB6zj*2b#7;Y0EdfcLhaoCe_2x7`=#y-)s& zzt(?1MJPake|R%0wrsfm{r1!l;WHGiYDMqMA|71%*S^v(Ci^aB)1@$Z$fQo0~^5E9%1_|9U$l>!!4lQTmt`tyY{*+L+%zGV4Hu1<%y!=FR5wBJVSlo z;N&l^@{zYEoYnZ*jNYC4x|T9tgw#!Hb6{PDBbljnQC1Wo#A59PJ|M$Ks7Xg z53JG3yoe4T00VM>2O?ktZAo!zW-m`?_jp78RY_ikH)x9ssB!bdKdXhNWg>N1;UQ1Z zOifaHRCe;`TbKFMxNTyljMSL(Dw0p@rG#n{5gDh2@UP%)#*pa;A|ufHdXCB=3WV5+ zH;6YKO1ug8-vIU%iur35o{_h{Q>-NEZI!;R%+k2>SRY{Vrdfr7!vX>Ck`|SqH?>L5;zXL4xA)-%R9d1 z=HV9Xg>!HK_WQ51rZIav%VB5HQf>Gc9^{YDM$Z5N(MpAI?KJ`d;CWa*sOd!^kfI83 z6~qn*x|ccHrVl!VP?%HWI)q9NwL_TPC_2Ot#or-LdN#C=hmY%%1gIYOAw49hN1uCj z>m$Tligf8VqF0NcX8ouHc=-6J+?q9_vg^{RU!O+3dezl%7m>WR6oE9PH9)0V7w?0h zYptwbw>}D7TtO|xOatn11a#>TZV}!-fBKF3)$wRohud%A3_-Ja$`+j`UOJ1Q=G1k1 z$#C!vQ^~`|g(_8i7me89WrK*8%5*B#ywx|nc7c5mh_vW#5gg4(JI=ItuyrMzjBMli mc!W=*U!r(wY<`h|(usa7d;}l`g*pcy3Bi!(DG=pf(6j`)B`uO3-4+faT%4$_JogdpBWdV-DL<`U|+(C?OGXN8KG6Dj-rSf=sjl7f#o%%WXfR+TP?Y`kKd09Jl9kN-XKlBWt*`@j1gki9w)A4^ z;KO^vD?7M^+@-1xY&cl1%PV!kO^M!Z%EW8{qH;ClB!*doK%G_k!b6U$$2x zS|4)BJhv#`9D2$V%)N%5R|>WXdB#qfEuo&k$H<&=btP0(?KDEaQXoy`6rK>T!W}nPS};_0+g1tnZEuZupdztC5B2KNxWl&nh^E^wVgQz; z`SA=S+t;AA55-W%KRs^cVlJIeh@kyS&_T2H_w9z_;trGh%~MG$F~VR#@Q z_^+=M&?Y}64HZ!w!!6TYWi}cps&|2kDIe=ei3q9h*tW5NSlnGa!jqO*)Gn8{q>^B0 z8n8RlurPLPI2r0^^VYTu7eY8?64mU=1Vjgd@9X%1zDW@a=O&~w`5ScSs2^#DySuNz zX0HXlLbKZv+9;VxDAXOc(OYO!cNP#_3M+pILm4p_EhcTnr7P|D3?kqW}7 z)BO2@f0xgIaNKp>Ff7U=9ju0>v(N}t2nJ>#8oSL7hP@ZyBb*(2Xhnk{ku;&1Qxy2I>BRJwJm}o~M9RV zaw4=vc+GTLLMzuHX_DuAw`~b@o}=6w(y%o*H=Rr=DFl(1MHKG*skel0(#ijdfN^A{ zyYMvwHNu}D#P<~ULQ8SR5VZ?(qoQLklpRz;IJ(rbmCh6*sbY#^?^zAM z;Ox*(-bgN#Qd_#InsW->p!o3mBx9mo_uE}mU9DrD=z^lC`{zOXIhifX^B?r0iqest z%V50iaMwZF^~sEM?i-t6mtY~6U0x@bWjL{Uz4CkMSzN>t+oh0>Um+G+aEC57d^e}tH*`yrq>WT+EPh|@1hUlL9`pO9KRt!JLqq=sNiljn%*7=7m~D8N$e;*T z>FHiUt9GfI1xyesjZ4%6te!bx>laY(q1;&##b^-wq!ZN- zIn$_adrY0C;b$Pc(}*69sU^^)i0?Z>0Wo|pywrRc9mb!k#sE(ZT7hF0YLWJyUB0Y< zc8p+i@Sy^IUuEY^93xUhh8iJqQC@Ew#W9bD&+ttwicYXJn=xyNFCbj&VzW6sEdx5G zT45T(JPD)Q0dF^5#NL##F0J>e#37k3N%j`NcPBqP8wIb8g3;FSH+9VmF`*ZaikAv zbL(0S;(!A}{u_%cN0^giWNOFkNG<=1V(0bPonp<*wTPE@F*q+7wun?7_ApaHL+rcW zxuS1dOE}lmkLncrSkef#`QN7bs#k!!eyL_@)xDs`7H5lnO3}e%N#0Nnq9j6y^|{&Q zEzK@DBq*_#SN5uu+{;Y0dL0-x8BsSEE8=3W-Pe<}ltG%-?}T+ty>g}+IMl3Eyn|n# zZ*y{;eCoVqdp4-dSNKU?+}(!1w7UMT9^*&s8aQi7Z+pvE?s!?VWxySqzqJh0nKZid zm}9J&nW{@+o)ZpZIr0`yA-yUfJ|IBWJUxPn;W{ZjY zR@dUUK2XY^`}S}>Xin6NHa?a_b4SyM%m%k8(Joy_~{58bsyk+EqX)%sxrd%KzFX_TQ8Z7gusAI#- zytri)?&(uL(R-9dZD{(~e$c_|?0ki(D}z$Lus@Kim7*o)EOgE+0QM`+QeDqhk2Wz7 zlk+KxomMPw?!Mw+=YFYQrEY7FqRq{y*^Oyh(I~JuSRp2n?uyhmY@*h~xw99dAcx*J zO|G4@eTAuPq7SNw0BMU}RuAlt9OD}XDAN0*d*Tu(txMH2Bz|7Oq!$Gb%U8|@)D4pYSFA+K()HEPqWa1_U<7?DNz`; zJs-A;UfTu1NU#E%;+gExmwybM1xVUBk?pyY{j@nVjOG0}!KW&9+wWwfIW(>_OEv6KS<=+^>r zL}{b5nF65uOZ~$ZYcc&~P_e7SLHWb*)&yqJRem?XE<1xGhn2LTH4dpw#`_-9qBo$J1y!bxpEXQAEjwwCBFR&i5gS-mXLdu4g={~nn$;liCS zKLG+IQcIJi)CeOT&_&~d%dYD24=t#)nM$A6xHMQN5vLIsDE))QNMk0Qu1w~*)bk*X zg>-xwb0w1z4)y#mjj?nBnPh~*0m%S0AdQoBAu>hE0ptQo02Kg^5!6Of+fS*B8gY0Y z1(C%Y(KJIu8a1Mc7?s9U`ixM~)1yWZnXFNUh%7*kHd%%nsnuvx47WpzEVf zJLRlJF1TZvNB*-xuUcQcSd(9~ z38eT~wwP=~L_q*x;x>ypg{+eAe3`3C$OE-oFhOddlN9Et3b~mL@yWuFjVS)ccPSw zK>m~*N%^wn{PO1Q*z@E?Sjr3fi`zt15tU^`0#s4p`o0b+%9sd;?I*bY^!iD2cmM!~ zoGTv;MgRqg&j=Yf;^;pW0)(t?mXb6e?ZA&8do2}@e=Q{5BZK*q!w^Z%**bvNzRUE*aF=h-*X`P^bss-zdopGUMXs(0}q; zO%*o(f2C%{0Wa3;0@pf{)tfL5JCXcOhW%IM2ZLqA$-CiAY8&DI>abuj2MXkyz@DQAd*1hNgRm^gp5&tVx%RB zWTuPB$3%cu8{MLWsZ&eh&&BArIBjv;;om-eG7F;%k2YmKZ-IhP7TWOOS%_RjLG@W7kOCOP_CB@YkZV!qN#8gk5vTQj-~#=y z*?{=-VnOcljz7$!j{!$Oh5u@1Tn+_}fnpPLZgPQhH3Syq3jpYnY5*(-K?qQQ7zNm& z?>{eXBmgLTXGkTf1;Js206>a!00u!L1^^HMKmiOuj6ncmoQ?v7U~yOi^m$MjMN94^ ztrvQx5Bg}k4y((GSs821Dp&{BhYeyQ*hY4%jlyQG&3uJOVXD;v0Q9ju1?h|zN$q@K zvk5C5LsTcG>N@ zr=HpG144(89s?%COqsD@$%-{O8%|ufa^uc}FF*bQsGM@xX|G*~0fL2#5G6*UB+1mW zDDdP=gFsXoy|~>Qt*yt67N_N=3Bzey6lQe2r?}U0U+A| zfF1?Ne!%Dl!2AP%^F1)H0Du#kmtlzlb!WbnuC%Oi_D&DofAVvMNOR{)xu!cRBM|MlBqX%Gpc5mW)vBe<#G^6k&N&d zF)a5Tv34uB(VvD3(rgQk4c&cch@z{>(~u{A?9k`1Gj5+QAHL=75Vhil28AS(D-z zhjN62IBh4BNwN^;P_&fxBAD=4)&Rml)lsR?@U7hpu&5EH41==Spp#eBSfhS+rM5!Y z0C-`j(PpGt9{_?PczC5%!p>cFAtzC}DG;f$)KK?GBo%|*lr0WM;uj>d%&^-r(S@Nt zjyZGtw6j=zy~6IT>{7(ZmphbWtjZb=EM^{~= zDr`PbO19+o6@p`6%GbwIG&(4=h^8}F0WnZknN))}!)$HGUp$339C{dWCW?Ah8{vFHk zxlZY=SFfXq*V_TTasYMBv%N9Cgshhvc%wqG6XZlbMQLB*NKWKx@-h??-Y{R!S78CQ9-Wy*6E1A#-l$t{Z&kOIJU2@N@Gl z#}@(bXDM6S$(K_jS=;T4d-M@L^1A3g=Ul(AxoBR0YPX3b>@Z;0wPWGe={QR}gly@cAFTJKHp=zE?I;c@Fe zU5bu1V%(Ct;ub{MXlD*eotQA29KxOoYK=X;20H(Z<*0yXDr!n)(FWQDEIf&asi-NF zMH|Ef=9I~Q(T<}_v(@O1_+|Oe`n04^J+7m|S#|oWKw^!9O|U|dThFv(!E^*k=SH3% z6fMFoeN4EmN`o=clj}IoHj3U6zEI_B^@XRi4lCnMvr=Tw1kXiKqCFeQn<)SrUcLlK*^x2^Q%+wy)k==>+@k7Dk)aS zLHN?pgY$0qAkp1YXtqoYYsMM;l3UQ6hMD<6$G#hg+0@K=BZO&hXHYI}>*#OsFl{K5 zmydhK!=^l;!W8T+35n3pUJ@4kYkYh26T0?V>9~*kcXa`r?t_`P^LKL^d@Q3r6V|!> zl8Yv+8H!Z}{-tmMoaBewk65cLZ^xFALCiKeN}$ekAFS0)k$dX&q${>sBs)YnA4PiM zt9ZVE)7ckCk#{^t#Nw8}lrAz{JCU7B3enM_$+F5#xKTid(b%`P5V?QHw@@)(te*WGNy zrA15H(%Sy^?|A3nFA2AR4+GS_G5ho22tJRFi}m8D2*5fxO>@bfiOgdwHf#^u)B^-M z=;v}Mot9qU-ho148BXl$Vt%)~Ps+ZOM5M@>4edmnbr^|a>!`qKZMLz)#@7riq z8mjL;_A@sotp;&^)UQW4L9Lg7G`dY^#Aj}5y8#Es#$X-9>cEPRbz^n)kqX@Mx$hYc z`%Rm!<91l+o<5d3Bpkil!Q#kW#c(&-*tMqQOYgdfnP)nNBwaQRF}!NB&9zcXRiS{B zq*QxF6-dT)csfdJz}gC2&EFTUkL;3mfo0+Iv`c{He`WROgX@`RZoCAR9q6`|(_+_O zQ~S*B5UW*JZIX{$qP&NCUvrUq9hkXbS-qh%3aPzmmZ{p8`+?AaI~Qq^%4Z`l1;x?>H{D)LW&hgO*#}PFA$tZ;&$#@Ne&q=p#Q9i5X~2pgH!4p5lzD|#a5OO(`2(9 zio|Axso=)pt2z^B`m*vfc2(~1X=;1+Sg>t>BGI<*m^yokYCLAKG9M%BHE7o9M02`{ zkq^HA`|smFrS1Ag7gVD;r)x+Z`DymQP@u9un~T?x zQv1%)$;F85b9p;tVHrJ+lh!R_-CUDOmw0L4Z_fUIe@r#|gh(0htXkDrzh3EZCOATj zC;ih$i`OTcd~C5rBasF3@-}FQUifORh%B+ixdJm!*7YXp6IFA>m|7wa7Gz+_3PNR2 zE6!l|qM3OMPuYqEvm>{RkH_BG1vVKLQ-G=F+3r`?UNq)sWzhVl+wT9hqE~BeUamFn zU8{Jmta!Ru@YyjmN=hwDQrz!D@hroxjMX%ZaVtCV=5_$a_Y(b0`|A6QjqYRGzS;aI zkV*bIApA+S{CIzogj8Uo#sc&7WqS%*HG^xn%q~zY$Y5KFD4BDNzL<4&dadI4$bp@; zO8bci_pPaT+#B@!pah%Jhz)RciJoLU@Ij?6#1LQtHUkNwdGuxr9k>1xUE^^_4dJtBFuhryk4&W$f#qi+|Bc06JutFZ5Tz0ejidEMl58c zx9LDHgqQ#Z_=}y~eD`wS3g1CmFDQ& zJzisR$ZWF?p~eYM<&w%5TONEKRcBMM!9dgnv85JWe-1V)VyxGQ`}l&%0)xeYkkho~ z|F1^g8dYlL51YOui^%{xWm_){bBlvq(_k(;bY_Klx%tl4+oRW%XJ2!UBj!<;i)F`6 zPRFnj9r1Y3QI@ljv5W@lLoukwl);cb4cvpFaG&|S0KGyaE>ooKGMXfjNOhnIg)D_M z(LS>obu=PFZZOQJEdw>DgN7n;)FnR~4wSCPg{cFVV zaaH^xG{t1H##+WwA!C<98s2+4v8uq&@v_zf+L{5kKhW>T`8U@_jD~fPOC=6!;TKa* zonshQ_IR=4nAzzZH={+b2Q80d4lOX_EcTY(0-*e(OH280mNTX_ZSVV|}BUI`B0`hS|@4Unt-hA|9QT z5qZ^xbFX|SO~BgI#zv)S(vv!0gc^lGr$NMwz3Rfds^1O@xX)$MK#`Km+4bS2Bq+*O zxYfa-a8yT0<-2@XyuCe=&*lH3{qRHij0(dNVtGI*qFHCGMAn=oD}usCgFc#*fWIkX zwi|w@eNY9+6@+E9(aLYUeauA7De17-bt)Ax#*~tjX#jo24H|HPpI-5pAAG3(@F&JA z9(d`@($@K(2oHXs9QlcG;X~_b9`(ZKmtA}cns1xn7XatL*Mz%YvM+He->Bm~{PWyH ze}V8R#@#la^%V;H#CH1>`-eX<4BK^|WK7@tV~yPh?|{gB;N6pTXJf^g5qI z7f;m*hK?`vzv^R|?_n%NQ&`iQoZSv=jDKy|JXa_Hwa*`%Oc3P)6noyQ+n?#v?K5TU zw$)yEUtb2^Z@!Sg{WrdOP<~wlzC<9pUl95SDJm7}vSqohzCuyrHTMXV0fmH`6eeKX+9dA0d3KrWMVt0mrXPG*)Fo2SOUqw(J#QP?2U#Ee>Hyk7~t zOnhy-VXjd2oZgGx$ag5tLG&m*vd@cmQNYp9Rjo_X^U^%JBd8qwRH7>6tn zVKJ`Vl4q|C-&7QMLaU|nfQ(*;DDBle>NB^gz|DlWs$`r`TNG`De9YtF^kHe!w@Uq; z)Enz6ZfF_4z7T~q(SjUU&o}ws8$!-|xNq z2jPUxrWT3&3J_m*1Rf=zAfM4hp9BBTw5(C~Umgj}4CI-S#<#o|<_R-TGZI6@9PSsI ztOfIEalO$HU#&znCAGwthA~M@Nv<@A?ANHjd$cyBO@WKNXS9=&doDA{jP(N%T|pf%LJV%GYq*(bTgsqu;B*_NNd z3-y}puWmXb=kYC)c)sbyPsHb!>h6CgVGFd-8FZ!ny!?`OrUo(=Wilx~d3VhN znRpi-ZW~iXAcNRKi7=T_3-$FNOd}Lw8YAS^h#H=|0*=0VU`t<3qB)6|quwt}JKOa5eW2=^GCK0@z3 z_|fgwCGWGCsCq1opt9Qrem(B`z=PlC?^X6q`D3;$&pAFdA@P}ecuKb-oa3$EF5ag! zLKu{+Fn1qsyIsP&;UfS3b&d+b_0Rrx-(3y?DR0c4NJN8eki^RclL{tY?rJ z^<@$R+M=~2Q@Jh^jD~&^ zL%S7BAHQ~vRn5>a8C?DFKC9}}{N#PW^n>!7f`2VOwOl>VPP@XsX|FO_)xe zoP&y}7D=*CiJtTOriN`g0|yzA8CFyI{{PnRxshUU=&~0rn!XXJL!WKg@OL6b)Qsfw ziRX_AsY zVMXln-VSCF)$@gI;`DO!a_?=_CBjBBT}|qDCymF)hEBr+Q*(y;VdKeU!fBM8rW5U6E0oiK$NtY?`SRsVe*b{35MM7zjf!%YCh*#$I!)%2kQj4lHB2R=(i<<%Kjy z?Fuvob@$m7VgPS>k&HQ36E&Q95+)g~=Pqh*;bFDLJe$x2qMtQ_r3Q@v$1zWxxnVXeWeRVd>7)vy*^PwHs8o``?JOFT(fa~#o@N!-NrHrX@OrA-Afb3E13WUBk^=Rlm)7R$4AsVN5G#0cPg&4z{%vg5k3Q~iSC*TfS*n} zzEdjQb)ALfb-Q@`c3!)WZ6lL+QmuDTtS7-hX?@-OR~kz$r$~t#>FND^r;+52D&o?E znA>3?YXQVNrg7Y3_X}$%1yYlQUegdHR&`&ZvjzYbdEuZHZzLu%$U|h%5y>_?XzVrz z5X{0WaBJwocsv7SN8)O#@T+h*otJOY+}?3*Z?2)Y*pz>CP#l{!-c1PQeq~A&?u;A)Qiu2 zrMA()w&Ea!nudyqi7-RYh_yw)b8FMqBFQ8s*JDW~vDurrnTMK&ib74EOd=F!GUBl} z@el|#4HXd+63{3Xkl-g{o`rHk5lTb3ghwJ81>Z@`lQF+SIiVmFQqG1SsWuI_t(n#q zt!1r=MD=Vuk{!#}a)})oxHpE+Lph-crB9~A2%d~o?TxX9P);ZaB~4Gpob$kgXd*uu zb&Pn1Tmw{t^MP!U7Dx-FMbctviL_K&CbhelV@T(ubJDpDp5tI8z|od$2TUA$)gX}; zx6wHd-G?1Oe#aBrhS*t}?C|e!(zhcMu};pwMb5v88Jt{|u99ogHF6UnRsgvr-6D4o zq8(LeATSEhcx~yux+QE`7=Q=}hk#JRC)_j-peu9uqP;{VM&c~t{Zcz-`ghM!y!*_V zJZip;lluYi=kX1Y4Tac((eHnN5A>H&92860l+IK;kZL-0VUH03Q>rlr=*<}?CIwq& z4Fa+q06Rg>M{kS*PL>rvWA^?UdT@%|DVxwGQKV;BLp$sY!FWml^daB6zVmnP_gax| z*nAjIKgV}EgdSt!>>^3dtCT*~F zsT!b1eg(w?@=5dG8Cwk*z)N@nHY%ycK8gU;Y)~s&mg*GuWVp`qY?aB z<48@s3uCH_kl6sdFBamWpZM%SrlhshQKGUX+he-++mmp4YgQLx~?9l=)tBWjbXzu6BWo58u^MnQONdklav5 zr{z%Bxzvp88pa07v~x4{L)#Q z0JyXE&shL?{B7-H+RQ({&G+#ez(WB5f&Y6mcw0O5zg`^@@%9Zww$XUX9>o8wADkO%@$dIsld--V-n#g@~sJVgD1zj^1LuPopCg&WmF0fdnW+9I!! zch0$=W!7cNSh*$O4mI8UBum{|2@B>Ow=zhs0cOD_W(JQe<=9R&-A9!?!n)7rDq-9y z+;o1crc<>aY}>$35J`>1s4oXdf+)y>!H@wlsm$EW0eUuoBPhTXyud}b-7LI}WBzWe zo@vZ~vOj~4j_BJS5;Zj3{2~vQRRmGXOubTr8y+NU7fCB<#28d-r2b(30@I8#il0avhrX=Kq3jcgq)Q|Ul2o=N8u)($jE*6p!-_7Abok~B z3s|=%nrjJkdV75l2QZ?oI1wJ1Y7BDSw84RAvo-U^OUjPgOp-_B!xyR`{{v3e zQt8r>D3-Qj%typ&p{YO~pbN-404o4L0PTQFfQ|sJ1j8Hk1Fk?jbioSfh+c~53WZZR zwV^4P31ltYg1vJ7H23cg0kRD__;TnV%*|sk00Y}G$U+CePPn!weC_14Fa5VYBg%(R z&h}ig1a8mcom7v(=9#d)5$hb>&X_oNRwIC3UVxjrz(o4;sTD(5if}b*wW(L8M5#tB zZ=Sq(VWlfogq5g9wMGq!)T=iH!_`Fc@=_GslcAdED^$N(*{Ll<<%&N7d;}l`g%SrK3@(&E}%oqKrk^ z-van=Kmi7TgL6BXl1aostCV1pE^3Hx{(q*X?f%=tBb2eE0`1JC6pMzzA?Kp{m>uk3 zFr34ZJQ`sQrgPvP1PcI*NGA7T9#s;HD4r%{(l7Nl$cakGSS(XD%ayjm*IF4X zWQ`FJ_wnho|Lyz#-)o||uc0}QJGPM|$&zl8WXY1w}Wm%+st0?{9Eb$F+L1Q&J z27!_RSbP8LAXEqqJt9aHB1Q}%P68rHCL&udB4070R5hZO8PRPBF=8BHu^O?#Mhrng zWl$Lb0V?tojEx>!Y=r)CVz3+f7pCD}=+RAU27BTBPaG#aQI2?8KpX^X|6-IoBd)k* zcc2)QW3w$gf&=xA8? zz6Rt;p_b0riHrxus-^v-^>YVuOL!B)rY!NCjsXaV2&_kOCACKq7j8IrwtiexRO)L` z(i5RhkS)?W09h^dF%}>;Ni&i1y^|6aEN{>ycz9FDK!;^XwYj?bO1u$Cf)r7^gfvyP zi|kzW7RRBT3?S);b}LBjQY2rlIt>Ore#4Xzk^xx|NkCyNvK9m|65bj^9z7^ZOMEk> zC8ZP)AUGyxS6W7~w52lZ_9@(l-rn_0qwRNch%!xI=q^tonZt)TSo7^SJ$wYo8x88F zfqIR1f+(zy72yTtRV~Q6%M8G9+?xC=J_Q{G`fg=i5s}ll2Td2n-i9iZiY^Wal2aA1 z-8NZvLS?{)awo1)H*f1p#5Z>Ob<$U&@}8)2v8aYz_MYG^rR|kK!`7EuZ$WI;NsI(+ zO8T=-kvaMy$zKH*x$`1_!fLJC>qMdwB^V_QMNjFqs?_t!+_|(*BW+`hq>bIFg_N*u z^k}5OpA_Llx6%POoeNx&IaXy#orcr9)N=Fl8Y8~cppZpQQyd_!chRUF$Xoi(OI`>3Dj5>xoLMRXwgevWs zufuim!dSS|G+j3;dkt*$ylbV79V!>}%m$hlFw*|~Mv{$)m`3DjH*;zzsmO@+wJR+4=8x*R zhbT`>fQO`r#eEWa3-bNeYB)GLf|Fy4a)&1vZqPJajp5zNiEng%EI<_f=~aqE)Czgf z_G5<|4cf_eIXl(G5Zc59J@GvGa%M9mzp`us~edA08A-C7`x~s7pyODd4 zy$`vDwUXk|))QV^p>=n2YiH79hoV%G%t1O^6VT z3&{{1;(=v`UzG9&2}TOaO|?lcH-S3)T;hYJ+qfOHg%`X8Ta01pnB8dVV9RZ;@rNYo zI{y_d>fLnm-y~c=vnEU4lGe{5L>cKlUZP0t5%+D&!A(-mu_sKytB8F3;3Ug!j>TCL zMK^cLaEi5CXfP7}Ceeq8e-9AWP8w#SK#|lk-J4h!#8l{oArP@Pv2m#gl4LVP1$vba ziQwMO$&xUCNTVE>VUPXjU7$~#@ zKRd=75u4HhS9q^LOW#}`x}KBD3pC?S*N!~aSlkGSAaLz2sJ)bbF42(iEI;-nJ~AV3 z(H#pJ)y5HBvrXcWhRTWS*Mwhe>vOaV92cz(^}eT67?zg}%g&q=xrWSPPags5ly&>%??iWC^kv~-# zTV^zuS8ScWREXARjQ%VtaT#(yI$mn1Qbtprq52!Qj;VHa&}=$1vKjs(qOL9X?*fgI z{k5lJCIvZaaw%2E89nEux*$4UaA;$Sk7_0*7@$t>h&&{lCplK-6`B$HaSQkpZSEQ= z24{1(o^@_@b|gEudEVyFBnM6q^w(HS^w8FGq*Hs)-0#Z&)Y8e;W2XuaY;0sNw`y1% zTs#0)Fz?2gso<|TO1nXn%a#knJmjf5M#UU+WXI9d@N0;BfV-#M6*`K%pfdLjM)QFs z&JIu-tAJL82{D>;#<_3u8irm~wY+lR&a;15VcC5*u;39*n@WXT>5+aoaZ4S1!{J-` zy6#csY%zLLvr^@<|Ka%{C)digC`h-V_rK{E-o$$VUb4e?rW7F3hd7$RU}}5XtvB7_ zk=as$JM4UKo>4kgxj@6U^ni3r`kZ^fI)g>(psyVZ=-4Wv%LMDo1X~79uiwE2U=j61 zM4Qa+h$`w1&aU!DMQ9Bp;3_^rK5L=ts!9_ z#ZyK<%~Rqfq*#-=hrC!;3i5h(RwXa1vmnZX^$SHQgCLDChI=Qbzb~+d6Fwe7Z+?K7z1)O>SAcxjDtf*Pf;GXn%@keeFnOS8n0v;OeL8xVqXQ|EVO#;^g9olf zN#M52ax^!|=7k_AeAHkFA8*-*dlg zIN%uUA)+FTQL!oAw-wp!OgE#)WN8pBXlBKhm#!fd$10z6>X{vJ%xCPW(n<{uxk)gT zE|q*4!?o%@R%O@-0m4za;sH8|m-TNMiqyEbdl|jY&wJP|u8ovYrnk(f1omzH@qdq; zs09fXEk>MpB@8N5>#)WhzB9vWm%a8|aF7jEG5;B7MZijHGiEDh7rleDm{Zba zFbq?{gV8dTW2&OSG0a>A2S#?PxRc5P)4+5vOAw=ERdUpVgt`FHS|nm*7@~p!F+zi?;KVq9%9|zwhN$9+k|V0Y0u!pOc876ydDv=`W<0=Zy=QDP z=Q&$!_o7{X^QwOw_K~BGnsUl1Yn^q@w2N-}nvKl{1YsjQ+eF;h18EXntve4~M$D7f zy^w${!qZ`WZz@`10JY{rbM?N&XqyBh-$fyqKSu8}7~bcw}in;%Ntox6hoFiU%L&H?3-9F<#kf?Z1@yS8Ldjn@B+#0G-I zi>2q!MKqnj$MyE%D_n%iTU~_8QEv{Q4zLuQU+E^Cx^kA#66G~lijhR_FLg;6AoCI| z3d6+FqG;8T(G50!s}LYu>t^Y>1f>1Mh-uzGxF-mcBvYhpxf10omZD6ROts7kbsN%P z#JCm~t978@9r(gbovJ^0T$H}a{T=ajKH36}QJg8h&qzQWku6jGGeyW~4FcbzR3BF# zf5K0*U%j=j2cQ0btjB<<7oF`U%)IDp?#3oix2b#7pVU9p{|XMj8tECt$u}X1^B>^Z zU#0fBuUT!e=d=&|#Xm@#b`>wkQiMc?v)~8Oh=n;k7Vk2QJjotaj#g+=MqR6LYH{|U zWwxy~JiEN8UJnRTkh>{$d)-w6F$57DK!6Ylid^ZjA7Tivp;8cuB@`#>2)Rs_qS)mu zM;DVC^o$CMiEdHS)QRB}ZH(=GaeWE;680tPOYD=>BLO7C#*tSTO!O0_7Be9TwC8EG zmWk|#d16w31)>)Os4Ah{*TAcZRyd%RYUQN-^$1nMc%`Wt9hDQ`3)P@nwa?J>b6$t% z4sZByhetfya+il|MT(b*ax;OwRwL>V>Xq_9z=q6{HG|bqXHiZ`pE9BZmj)x40Mee; zfJxUQj-?`lQvX%m3GKip0OmYo0FR*M4tr(%1|q4jv)v!3TmUEHM(P6 z$1nkG_+aWLY6M4t0Fg;B$Osx5KmZcRpf-kp+PHKl7>vhp2UUbga3@(!7 zBcrC_z>ynw9z1#R79dEl5TU|EixDeMf-TnD>Wp2HAxV~Ox$>1LRmPxNtvdA@tk9-I zC$nxn1`QcDV%(fXo1OB9Z~SAyzYe(VO6+mf8b3O1yK9l-hLb+_Nu)UIvhTADAGyO% zzVNv(eMf*|L^wiX%c#gHD7kXt%!NIkFD)H^K92AcC0v9^@d9;8lPpDsROvG1C|00Q zkt*dX80BfyWTjPFm>kt?K(9XiMztHG*UDzee)D$QYo9#`QrO6WXa=OA5Z$5rPoUl- zP&xs5Ga#YGV*-Z)v22F|9c75l_#dKFsAPVIi+M9SLU4xziG(@ujcC*;KdOt#rO`v7 zbT_ggCbiR>CbdCCwS_tg5_MMbW@7+1*U8c>70T>Uh>=7%_2|ez1iKu?StY0%by3~O zfu_VFv*)~XVqOtMwZG_^=F_~W?)JdII8jM@#Nb(+C7YwO1bnw17X*r%_?V z^qG0U=szt#5c$ybn!~2)o$zbP0d2`X9@hMxW+D|fFFe^HXTf0RUheYnj{-|HBkT|3 zA=8M(8ABsJ&&ar+3?}@V+<25oqh;{_$I8T}bO4B_EWM7zX&N?%_p z<@1?~!ae86upA4RTEQpB`?dazYN+}@Gvdjldz{0x{8H0gW+oDWz;Hkd& z+$f@jx01eLt-BLNI@hXPH>gAFa6PqUk>^VsaJerS;UGB}(+YZUY{nu5q=#7&ZesQ6 zV4QUs8jN5JD=xbPSeIipM%U&p2h$}I05o{KW_A8*4}o%SKa(cG;C58#GJ+>gq&`+Q zdXY$#ly6Bx19fT`jFV29cq36L9_kKE)XG$TJLinIsGcglUdx-S8zeYHuXWg=S)8Lb zuCMfyV3SB^pVUmVXL|~>)vxAml_U`yAT0Q`(6N_7lw%kHma$PRE6<~>^fs{cem#VH zd;EOWTZiDi`ra+ly{Zu&X0oMyzEjDZjPRAFwIb+sohP)-2B71ZHrq5o$q`rqQ7~Yham5oDJDP16!UWK&%rr zm>=3PJc5eLmKD!o4fLAlwPi^bClf5jx|$^4EL_p+jv>pj0<_3^W#}jo?yH`|Le?xM z5{_GU1!p|9!%hICW@|BjkznnAd1|;(A2N`ZUV5;D zigwFK!lbQ|R%Jv?ZYjRAlf!#j5q1yd;o8uz`41*RdiVHKdZu%K#^?fAv@+um_O*;j zo7w#E*qZWAD-EIA-3#vP=%j>B@JUth$`sE{7cn~rS7l-(bv_pkp$lMedRBeE4#_iEp}2HIZ5y(LC=MRTF$f{K3Exvbyl(?xkzZ{jNOz?@pO8Ym?O2>TQz zYf(Mn2aAm`QYx~wYb0CBbjC~}fn2%&Uelq(4&xa6D0R|C7Lajh4}%T9S|?w2_9M8! z!ahO+!&6%&w&)i<87ppC7MrYP2#g?7Zqu1^LiEsW)n)kodTjOondPXAGs0Ic)p;MG z()_&ZcW}ZlNG!-WT0-bCI&h?P+e$SquQ;Cnypj0%+!a=c!}NzNuB2!JnGCuNn>s+- z=};-bofYx4dz1v2wer`ZSY{1RW(a;uN7Ff231Y`M!o@*@lN3Rw-RtOB*_Ls{TdOB-hsE%$XfN4FhB6OR6QDWk<s)xn$ zp|iw(-nB+P;U^Xm1w66ywUv!r^K!p^@d#V9k)!@X8yt+h_S$8Y+U>L99`vH8w(Jak zzC)EQx;OO~9+{-HR=)q_=mGc}OHYDlML;&d%QUx4+w)89_h-{{B9Nrtn1!<1Ru{N9 zB6R7DYGF%#&J<8k4P#6yhPtdSiHcW~%NG9;9)6tjK1T)Kqe(?>fc7iA9sNk(^*JxS3?0gNkz`wpptop+ZorqL zqy<=((Odtv>e_l%2u#Zu;c~sb{Ro%?g~)*XiP^_y1Hsx69>SV(=ty$QVkKODeM!iY zX%$n*r=xEmN5En$)U`b16Y;I}BuSnjLFL({{^j9SQ(-}(NnyZ!Oyps0HGInjeA>C-lMZfu_~S5HIRv+HualmKRm^9K=?x z;W;cTnPWfx(@Ioox*47fiRHv;`mZIzm#cD1DtuQ_n8??Zp%P_nIV_++4O2pNbxZ8dBR)H*iou$Tsr%0-JA zi>FmgBA^gg{-$2Z`Iqv zWSS8A|5{^(^0a-f_AU3^e)tJ!=$8XGaV`ONQDHM()IXRR=-U(=1~oVK3CFHQ|0dpU z@${eVV_iKl&0ZgD&bEmcNbr_&bUHtDfyDULS{W*+E4Gpmjex^-w{gAV&g!LIy<=Up^?CU(?P3;K{|%AmpEI!e(yOo_%|Far;;I-qGIH+qb%(yK8Uq z0`j;KA$72lHpqW801D5HpdSyGeL2V;A1wWJkn_zcKDKV&%?sqaEv3v%O23j6E)9yN zNAV?#rGGmM{&a%MrOUI2!r52LmoQ&mf0zFQ)90r?^-qWn`mxVF1%Zw!JBb$>pNR8l zQ+nCTo!tIJ*4jl`MEWl7F5dGS)0unUO*L|4-(kkUgjJVJipOqVb?W{DOHO8l=H;u!dgh2ky^$$k{LM;`rf#B{DjqH#t% z_SIdz93+9LeWqPdrpdVMXn?5J66-|MrcZr=d_^NiR|a`Pp}t)CVdX5PFd9Ww91r2M zR|1kWsW?Tkxa2=fS7VL_2y`%QyF%IPbSu;J(3*NMEMvD}y==@rWt_8iR&Yk}+-nqR z1B%8}7#d}(R9cUkn93qNfRI@-YE7@zrbm;(EQ%!af75qvU$!h<92`Yw%Gfr3%VcYM z0uD3wVCr6*U7eALvBz_!-A+ZXiP8UFsOz5f@A~s8pUn);3a;gh1D?~i@?}vqCX2MA zMtOp%3`|o({nPZNNo?byTsLf*`_91I&bf$bhqLU+!Y<|T3U3{Zg*b?V&gR&Bh@`G5 zY~wNQUbyDfPwzbTDM(@Vg?i6WX1dgReW!{i$u?#B)ECKDIdgfd0;ohBM7d$P<@Oyz zl^ieOjYnMm8H1iWmC2^Vb!PLw8!Bey^ZYZ$`yawW7+_oV%i+w4ST|YG6pb|X&$7<2 zo@2eXdYNVOJEk6`W`W79>FQCK^qo>wr`@LN>Xc!0MFS75m&wt(2ChOD=Aw0S8CoCa zfkt~}J&PALvN;UDKje@F*hoN8$QkFfZSU*Rfo3U33e;OGcU1G{@L9FhO>nSs)zC^ypk#WO8R2-rm1kt!ZAVFg~o^iP}1Y7so z#_qkqIu|kDB`vQ^ka;(}(ob{N&tfUA+0?y?PAWR7N(J$G6D<+*JI6Wp3&1R8J!M~! zQrp;598-Le)<`z^mZ>_4-=yA+L1LGlPp{IvZk%h(`cOlsJn;Ep>}c6|YNoS*X3+^~ z)w(zG-|0WVVEFqG0W4;?my)k}kKs@k#ME)jjm{b|><95GqrzvmyJFGkpPZ{saZ4kr zQHPmaH=j|h>(rJ&C$Kh#$SYUK0*y>CiD?aH>?h6{P63ns55`$J=aX2!sf?*3aghv! zToE)BltUog-Ta~W-AM`m?{A$y{5IBi|O@{T6w07W2Dzvv0o( zoc<`8@xlzz^mxIQap6m|XTM(}8U59J-Os4o3Vq>S%lotfO7#%zjURj)HOFC}zOVcH zA01=fpFprS{^BD&@NRtK#gA6Qpjpb6TI=WAO-Ozw@;j=bx!lkRF;%J3+d#K(?&}x0 zNo`;c{3lCyO(j`va3ZQSV#(t}lf?%pP``GfG|f3&iu;I8b39ykU+D*4{G4r}(DV!@ zO=lsqN|;QO$*@>wO%fGo1VROoUnsbjplSAn;Wzri=5H_AJ(*Y?zh;vL2F|g>qaAMV z1v2GuE|$t-4@4a^2sTEV1RKz*#^MGuYO;tAIdJ{M)Ex3~6i|K0!~?^hmtp~n4~vq8 zioV5cn>J2IT_Sw0lBNH!Ab-jT0;X`*HC*G~UxrzR`lws4i`F#Ji4V(TTaa7Ohvf~0 zeM{Q>Vl>ps1+-b>k~c()-?)V`o_KW5?i~9d$l@#wPalR@`bfm5<1qAXq=s#fs~f3b zUqxB8yk!|j7?O+mb*(6{bG1v|ilMeK>+ohrBg2{Xv*EB#Mj73@|3J|+U4MR)!WpAU zb&VWxokA(CZ{%uVfs=xmIOcdDAo9U1Gn2|N`I+Ea)UkpG`-VB!fAb062gIB^&6N9O z5*f1TH8mN!-2KZ-;ma^xaH7kp*Xgbji4Lbuzg%2kX{HFQs8H-^fepqbE^!F+Nwv06 z%=lo;C|4zoK5xRPR78zn)+RIC2ir%jhXRhQDb0Erxw&|n_6j?quxuYjt~n9#D?YC} z&b8F5JJi~v8zy%ZgxS_@5nfJ2oiGYFhE2i^+TY0itxm?lE!qdXS8YyGm{s@Ws{zu!|6FG0PNfrf@^6NiJ_P1LY=TTOQG7 z9o>e6<23#DueEA>k|xu&W&2hr>RWjlSm0?ha#$>rUmR#NvB-!y`z`8-bw$G94(AU? zJnYqSTWw8^EhHy|ylcVVlGFx#5q@v#fk}M54g-$sqvzLLD5~D7)MJJE8-sQap2MnO zR($c*^r7!acu^4t##YW&eNU!5RFTSd9kZ$Nyi)(4&P0LTq2%Me#!67pSN3Wi z{k1&4zj}2?e|7}=3A{uFwK(6r8f!U6HAW(JaYMdTP0tDXev?=sZm?`9r_uS_NfHba%lzUwtyW! zZGDA5IRbS?N?%+9-lQT!`EfkqsKZSpc9tC_;IBK}4`~Y!GRer)Y79&g*?_1oJB$K0 z(=V}D0}>X?BXE?+RWv*SqspWz3IVTz!D(7nXZ&7tyV%wctm%I@RwF89Xp6}yT_qzF zZjKw-P}Q>nEst7wb_)ajnHI3bWlaBC7j*MN^HT0ssUA`)AKGsDVI+L?`?y&B(9Uw| z4y6b;B+&06n4csU6J_73J<4%~a!je(mtq`GUrYWv#TUWvh(VR|?#C17pWrXP+?L@xErh4Irz z3EY68MiZq{EX#Viq2MI_jjjOnF63;;&0B9alb5>?Y@W|~FgI5@_dyP^Mr48dJ2u)rhvlc z{9_jpodDiuP%j4?*VP*92-vcC0XvNg8sYxBkb)X z+wTH@0c*oO%(7pQfc1wdlMpru@MC{LH|KP}{_r?(Ae|n|q%;4G(f|D;_<;zd?|<(( zCL)Sr6tj^Q76^5Q*%YIS#BnOd;IL2tZ2b~APC2MDOBHdsLXl{esgzAJc|swV$D5>} zYV17meBOfBw7EDD-U(m0@qUlWy|(*ajg$9Sl$8$x?Cv7TUvne;@|FOYzvt!IzwBAP zxG636$>ODbMssZu+LDZgo<2DTNkl|u=t&63!mp_(1(Xftw=nuByv8cpg8v79Yhykd zOnY*eF+6b_J_7@N9-r*}4W_^3c)1|xzQ-HS%ab`diL9K;Z5?lRPgW{>qeiw5=zpM{ zp`HHtcQ(+!jO;p67;}-+=UL!~mmPxc)dYs1Gw{T*gN%a{H}}TCN(V@O=2AK7CXO&k zqtbIA=9&AZu^aOss#fU14}%Yp>q`Pb;HmQi3|B-yvcBNxda!%mm^nks&?2N7kw}q8 zVIVT=QJ%tSG|B*vFVhVQ*IO+NT>;k(`7|izt32U`Lv*xq!=NLOeP`9ZRqT7qH1SS) zC;0U;duH{$)fSd3@cZ$kZHd#EWufYLyahY4WbBNxEpbY*qz5}1tt4i&a)h~$>z|3u z@}5LC!|w9xsin<^kaTxv*8yQ&-GHQ{O}e+XUb3&f_kg61k<35&#LW&z!DISPOqn)Y zl--?}Ue~ISciV09bc;eomDZvBhzjF}>-bV|eu*pj(fafg6meJ*7Tb6*(cm>0D8Cr_ zuj1gx1IORIBifEQi5U3wIs!>CS*xZ{P z+>#shtyziT=VTfc|v#J6=yUEW1)Ad9UE5mZ&G zIj0oFnXW>*)yd-%gs1dMUG5Q-&Qlup%_J6Qf6pO37bc=w3!itetJ6A#KJStjs?`0v ziwAqDc{#r!%v)|U@t4zM1>bC5!K-iJE#nw}MR-;F`7xDi z(j1?UozZAn-Ckc0ORLSWy?$1YMx!X%X|`p7w2n7!%4CAFyp-i2?)=6E-6FF;ldrt>$Y@zaV;R0b#eSKN^nN-Jkk0($uZS_SUzKxx_F^X0hb z2g^zao_pRag~K&fRy0=Ne4wqZ5W0IkyXY#ey8J1q_@6ue@_cMgwe&6U@%c+z>G%o*83LT%7d3NM6#J%>avFhUx@59jng`j(eU z=H#S6lV!eUewGw-74vzI$s0JkqBV`8gI%Afc(wPJesOR2I%plCbt|;>O~$`UE!aui zIoVygmAI8PK-(gqY-svW>tI#o>bvDafEd%cIJy+7#O5ly+~{=NRwdJ}835~GRjAz& z{aRCW0B5m7tdctSG9%lBccR%rt%Frr^&scU?wChdqFDjf!KzRb=Nb%>5_TFaXJM%o zASAm=e2e@+%w{LtCbSM;i0d;dCy#%Y|!{Wy-F zH$gj}yR%JD?;YD4)hPi!f$?=$YU$b495gnBCL6bKxA<(IM=@vrm*%V%1bh#1=!vV;7oVU z32?8KGauU$t({GqAq`Q1&X>dl0k#b@K0D4r3q+NmzQ@ohM`E1^2b`mU_?Mo9kDJq_ zG&Xmms(3_OvRVXBgXHlpfEV8et_P%fDEQhQ4*+ZeZ?Tmk#0m_^gQK8_6QF^kphwtM zkRO8xc<BZ_Tm+ETLf{@or{4F;-9b2Svm|bf^jKaK`SpkG+F*Z6A zw=_B@=5=Dqh0OD&qBI+6aRATFKIg_(`FO>;)RnQVzuGzeSxM;G?LAJ{5+8OBS{r?( z4`*XPx1+{*YPoo+?J?W^GybL6V$~>D#&efTgl)cO5z6g1>uNsLA1H28b+J#4ts7^cfLp~EdMV|K^Ka@}`#g&d zSm2e9q)Ak{xa?w>9AhU5ONI1ZMbj>V>|^OcVSPbY^CV^d_4WaJjJZJ~;23oG;mL`C zre~3RggFA#f(R%C3R5AuZsg!14;xB!W}9VQ~aDnQI7c7D`$|lNDu~;0*A^UG`aViIAiyjz!p~g$J>= zYlGsdrR_pd&i3x8d?#NfPym^*+*b!Vwjp2A0jhjD@B%%ALV)y!^6Qi=KZFmalq0C3 zSEsW>qQ8+dTU2?bMpEo{x${cnTx*PTui~RD!ex0QRi3ayY*hM_DZCz#iZ-WkSddnq zR7m~;Ofy0VKE$Ag%JDoc28n=F5vnE=3eDlnA;3Cz0a8z^NW zQ3ymcwM4p42?9K483R>)i6JEk;1b+jM4%~7`@X-rm}JMhb6oBFxS0*qzI~v1!T*w_PrnI+I<@OCj29_fga|xi1+BbfqJFPoLs|_Q zWZDx3gD!2>s##BD7=hNIj}JlUu`uy|Q=BMFn0B4cpT;Aaglg8ON0>q*x^-$b%%oB` zldyOj53tY_d1po!EzTibu2nl~vB{u#p~BDHB$bL~a4sAsyN5s($wqYgx_Gfcf>{Zu z#7StjI`s#MP*kg1Xvv-$?ZTAFRh;E)3Dw3e3W`U{Xf-P@>}SoS7Xv7MAd7d;}l`g&GGS3k)vkpN0dIL!_BqixSN(+F4NMsk8B)(JOO7Sr8^)p&is0h>>4P^lB$A6 za$%Mp%eRdF6+gTzqQsR~(m!iQXzY_*c;Im^-~UOPkctH@l;FjSnC-BGsS6YHGEqG- z?|$#hBs(rho+9JSC~Jq)b!>lS zY1Qs>X_79E?ue8#n23{+zu;u>7r4>X*J9==)H^8=)XPgouc2*ADxUW55wi`Jfdmu) zm|WXIB{Z+rA|a9}%^LaD5Rq-TOj_XYZCa)M+^ceX(QPkyjy14I@lbj|7(`#cf5X>z zk6PfeTD@ZpP+J3%hUC&hcN?zVmKV@EU~G*J1`aec%hAjnLIlJ?LLp`sUv%MymxY{N z8e9-=7+!cG!2kd6*Xn<>*Fj!FG?Lo==wCEiGr5CC@oX9)%?zOtsUE2&iAADUd>gr* zmryJ{u91lxvcTOhb+@;0N}{$uZIvISR#aCRfHNfggOm`CY^+Cy@Y zl}nJo1zZFWz!X+Osd0Fc$P%X>PvoPgpGbtfs#8xS<(K#vAxuhQ%LX6-2!dpg(oIr< z$SvYYAc&k(freyqh+IwXB@Z89gZ(l28Tk&CzQ_mpfc!_Yv+^hB6N%2uSt3YocY;a0 z%CjE*0#IP# zSCG8mA;LpBrWRJb8Qze%bOdrlh3LwCl%%PcvA&)Iq}(^eeKO)Po2w3eL(;TJyVrHn zSwjBf!%_0?;oS5LEJ{wqet(_AlDYq-t`Num3C4Tmi{4Z@#XBJeK_)cmG6O+q5J-{r znFR{T0bf`}0#=0)3@E9*RvVDxn38u}t*m;O*+)&CM#CUmT;(}BVctetE&>JzRQ8?H z9DEOQKUt7YoVxH0-bBgeZ8i|7D6MK-*Ig@uT_BSKgN-9v`St?uBEj2c@fYPvah-(v zAOc%DH_zQyf6UDjHJRg12*j;lr6r+!9e90*V0^^A#k^V`+C7v!P(Lf@))!l4mX(;f zn@O)p&Q~1ERHR5!?mO!+4KY|i?jiF`0O^>Bc>~_m4ZuegRD>B)C5bROQ*>n}H1)}x z^U4ASnX}dcy^R*h8M-;Z5nTeeUv7mtg#q?*-vLaJGZShcJgcaE0&CI41Fds ziyR_Kn>RyCBt0#GbLGmcO*Y|G;SLt$Ny@vNEQDb*&5R@NHx}o^lDba(ep#>bDWp?5Gwmp?pJxYWz1iZ( zs-O+H^0N0~D-J55XvXO-i4_ZDXf4S}f~b$A@b9xEWjR3Jo(e3ORVkby4z$3C$fhgo zUyZBMt2tI1It+Kz*5R-iO@A1B)h%pkLR%I!rD4Y4COG}MTX}h_OdO4tlc@k%AzWM% zuF2I;7mXn|UkO*>>SbkP&E_WbG?%0lZ^VIR%}X~of7KFfnAAdg19S8g0u`6wx?utG zT2&hb0eZO|`Gp8~*cO^iKLl90y;9y$LnyHzz)Azn=^)vuB*_CG6&BZ=Pk99b!mpCr ziRw8NyHWTHFQmau5}BPh_zw1R@`c*w3Q-ku^ODFuT6SDgjx~o|xAT*AYpR^?_T^z4 z!i_aegrzy60Sd$jsmf?eOP2~JbY>YL3GKHBbzY`Xv``F|3Doq^Z6;(7DR+9%T`Ss> z$d#O-s1EmD)w}W(vU!_K8PgHyTgv7LAY-Mdn$7z|kJTeSlG%>pS@6CgBHg59iLRe$ zm>@6wd^`)WO?|$5ExrC)5;7Y>eqP{3=)2OZe{}W7C&Zh|6ud){&XVeGZEpo%EU^yE zvOveISe0bcY}I(dEI>=+UV_6UB9tIkO1zgIJU` zYL0AFD9Ul>WEjKG0H->Agb`_>nM}ul$XJ-2HdWH=Kcl~p0jI)EfI%yBXrWXJAhZaM z6Sg_aRV(PmAg0yws1;)cIhe-j%@)D|zGS1!Ob2 z8sv*gXj2{OVQq6Y7n(vM;1t9=+gLQauq~A+Pwg*r5!3bT#iv`3-5?q;QKMcS*&r(> z-ZJe{f$*@OnF{9F(SA+~Xoa8@daWGvNORz+9&_Z3BgL4p%4)%Xt~6>Z@q$`AMbPh0 z9KC)*5bGhB6HMe}ZhQr6J6du?RE@Q~ayO;sw$9`r*JT&d5pI?0MI5-AXq4L0t=}g% z!20H-(rNOi%vmXT4L_L=CHV%Si^R#T{Nua@cW`T7(Tybd%+=Ok$zrs@5f{+oN+_10 zLJ{on3uS|uTQ_wt?dI4WSD`Kid(ZD;K9o&qFR2RT2~JDm-2Ae7^s zd=?Qbq>z=MQ>Na!GMa-+LW6MesK-GV@~gV(NUJ2Xm6gmFaRU>E0_lnaB=>;33v3CW zXeZZy<2TxbCyk7dczWlXw%j07KQa&uQxRmDf#?sB^aY){TsUy)NK2YyY@VCmCnLli3+eftz0O-b|4orfPx>t8i4EPfL0LrS8v>lCg z*7>=xvZrK@3>s<+^P_x3`P2uMqpqSyx*%8Wa2=x0Mb{hq?->^`;0FlHi{XKdQC1Ha%m z{D&Fm8+CzEZ-{uuC}B22m{v(RBT1MrN;rc>nviaiO6sd`ltGvhCV2_d@Y6Y_o#z5) zyU5kf^P+cLA!gPsKJby-eByI=`pR$a^^ZlKw8RoGS!t!0t+CcCHrVMk@m{Kg_aGt8 z@rvp~+#uTZ`%RZYU1JE#yv7T#b+#OAo+Tig0T2{(S@)mEAfpKs-lKd9bm`auLmTG9`0ci>V zd|p2hB#QU}))iy&Xf%j-5iQzcZZeaOXPD(Il7$mN=HZK`-#QEiF^}zF0%>Zgwx7Myl^TeEMIHmJ=YE(Faf2T-0gb6U?9*@0SyNU`0{?lx-f8@ zJxzoRIiyNDF&mOS@f}K0(u7665kNeid|qPa-hY#Ro^rIMwxzY@XiIO)P=YsVCIm=M z*DdKAoNAtIO6oq=WJnQjXNiZ8-o2}ZDF_af#EAd`@E916>`%QA2M77R#BtN<48s(g zJewu6w^~UE-rD$4J|;d((%YsP@5Ao*#9`OCwfiE2jVje^Bndf(PB<-zeI*eT%W(OO zW(wy@X4HJiUo1&-*1IPdF-e}9O*D|#HUKbmzCs`l#EXdikLtxJ0LK9UF!xRe-~(hI zD5pmQb#6R1aTh>pG6rl40)c@9EE32i&w6n5=>jNn(f&eV4ybz$7O(h+;Dc9gaFGWS%jrC*)-b%hhoJO2MoJ+(I@kBC_LgW*rL_M*c zxQ9e0ts$)=r;{_0i^l=Du|+j{D8+I0-N+gHc8Z;TM=I@x-?mBj9hd_^+y?Bq+#@=x zVc*RAe%|W<^FGe|dfvTx_s*+6sAYV5?f--BA9(Ml|Gq^4P!A^Efw((wg9lOEob~?8 z_II!O)w}+))<(biz=z(k&`Un^qL`PxV!5T3dBcXBL;{nGN022^l8|&6!ZKwkRIEg) zGUck(s8y!{w4a#usnx!UhbCS0j9>^ml!ISTiBch9)oR7nY0#)un|2+#9kt8HR{F#1 z{xQ$L=G$#^+-z~aZ>{pVt?{zm3Qu`D(^+Gaw=#n#UEq@EJ?8~)62c=XbSejfQ-GI` zUz%hoQn}gkWXn+?*JAmqL{+F%ugG!QG;7hJRl80-hM{0)VddlE=3!E%Lb-@aQ4?OWgZhCsxJ7eHhJWGh4zzVAqW2Y~tnl;Z(FBIA#xR3yY2 zhmaui3c^+OAA(n`uHclAidOe}f%=q*aGaZ7PDXB{PfA|A2$oMyl0z+qiEkiyDP=V# z_gdrjLPSzW^_&!-4);>?^omve4m%)mOg$1Y2&SB_>MYQjMnbYHmq2n-6RYpq;?{|Z zlhl?NurN2??bbFSSWa*7W>if@no(p>hvguUA{pT^VptxNv7Rd0=+A}=-ix;d$A&I1 z9-`=`c^dLUj~)CR6XW*j(&48%J4CI7#RJAkte7vYUT#V#P(ly1??{X8^^OROV@wl> zi&a7wL|MdoL>}g7H9f)`%IoEPI$0|(BC5~v1uPcg0c?gbI|U7q^kj_m0Z)%kC~f^q z{&+ZuECdo9Z7HW1pyFn6gkjDuFx^f$u-Q|Ig7SQdxK0hOi6~<^pxuQAY=UnDyx3Sp zivZlF>59RdBFim?O-h7GHXqYVCpHs2}o>x>1uNg1q=u&2C?7|d0?38 zpc@ZLbKleIBjU320Vl{OkIOzP_Bdg_V6KzH-K@{0s)6$*7F*@gp5*&MRgp6PQi#QM zia1RfGN|IEY77Q7#Lbe(X|$~;sgr+3#V95-ypf7JW|)U_rfX@ngX>f@b-ke4DxiVCqtlTdFTiFzp%u zgt(kN!rnkq45G`O{XQD$ej3Ki~H5ON926mU|xb4#Ef$b5$} z8tG$isEtyPkLfZwPb=B3JO%?{t@0%}44Z=Frr4`u)xkNk7`L%O#qnlqUn1tVMetuZ)0CO&p}xMt>D)<+JJ0IWlfzZ`MLT?n2OrfbG}wnPEDRuycTjEgEmgc35|4hXJ;%0N_DtO?@RFPP57qN9Dt1@ zXsDi#6}`uWel~6xc&onbN^c;(4{rt}L4A z?+5ad!|jHIgkNe6yY;9Ur!57Y99!xPTd6%sBbZ?%?E|pHqf%H^aTSA)yh3kE5x7n7 z!aH)KGOwnEqnd9%yMP4dKI@Nd3tT_~bDx>m0J0w zt1@t%m9oTkxgy)1tHfk+_*e_>7qOR!cSIL%~3 zY#)gfQX03A;U)t zX!r|**hJg{U}a=%d>Sd6HfeGtAEDUAkQ45D<|? zCx|)^^@`6^ugM^d7icVw1fzQ~?5+7>&^i}sG;{1=Lo!g$6R`8m0Lyxis4S-n*c);R z!D~i;!XM`8V-9IDV=QT5H?oW&w@O)-8XGr@V+eo0dOFad$k2Hx!Fdz&yNBcyc+) zwO*jJg=&1ga)IL22$Es@m&@n5wHwWC?>K}$N}RxfCp@lQG* zC6E(qD%Q1bC$Twrkjl=-K>xl|;ZNXGn(o{!blFLL;ZfYcW|LcWP$TG%%&#J{Y_h_d zkP2i`+qfPH#_(aNz8nXwd$U?-iMW*pc<7?5i{jQ0`V-COot@lj4(H!+_K?t?Oq$P+ zE6E=X3XeGr!bvXT+6I3j^9g^*aztV&B8=iB$=1k_kuf|S#UtS3kLoG0|J1IH;hYd~ z#l_6Zi`ijc#fKGRM}oWK@NU50mL*9(+-t&;)t0do6mdZJYP_{mAHL=PYyUI<2#Cj| ziN1&j;vwE5UY@+PNa&E4EUQ@hgJZ(&7t0lNa`%6n*KBUFM6wmz1+a07W0{~LBJQ)> zoe_&zOAhCt=x4Pu5u-t}N~+mJtB^{86pV z2mA{)hE6+b=x}BJ1K`*VwF2>PHW>y-PmcTI(=e5#jkZj24hUl0jLL{@$K@Up{(SdE zB}FE$rdl32=sH;7Dym#kP5x41l?^k)Rg)rVApCCS{>rsd{C59V|5gxx?w$SMsIIK% zr$V|@FrC@Ga_Db=<##8~pEh7ikQgsNK-vmU!RsYc%AavTQA< zh58^vqs?Y$=#z$ST~vNQGCa7#X|+m4wK0@Va0L@1wUCZ!Hg1&rHEyeh$JPQqL8ACaDa$jh+#M~YaWSE z*p21}=a%GNTZ32#m2`{1i>l{-o&R|i7@jix-g|GZtQ_vBt`C>X9_Sd3u6*;|_W+;2 zuK}}EiCbF9+XtpE-&b>Oso>ty(9NYhua&=kdc@E9u;+bXR`zlveSYgr`r#YJjj0_l zc}3fIO6C(KNT1or{CE9d8>D}4h%x?MHWL)aEx^`TQmY!hmOBIgXDF zYig1isEx_zAxwrtkSgT5{49uLBa9?I)&VWkQO{}jrkA7q=b7rr`*x=^6~ z+&oCz$}*$%1+uW;U(!6Sc2ayz>DlEY{cG*^s;8i=HWtW%_M z6mP!4rL1H#BXp-P40bF^>fvU!|M0Zw+RIN46^P^VCu1>ro?=`1MSrt zyB(-8(QB}~`3@G#BY{{3<6KV}9g&=xU3#q{sj(|7NpgD@7<4|bNwlvMq~3J3Kbg6o zjpuYCghO0>b(^MbkZ-TL2ASTht$kNQM)jDWAI?cfOn9&Fh{UFOZF0^4N>I<2)OtJz zb+eC;&=pV`2(9k-)j+l~$BdMbV5xs9*pQ;_%+IA-vtk5+ZYw!gw%0V>lzLFa<_b*} z6uqD>CyQnkBWYCC4IeaUIU9OHdIl-Knng;*KCLA1c9Z&1!#(Z+5|bRz|*e~ zn$$Yj<#hZKdFIhHH%nl+hA$3E*knVqHkWi&8Dl{{rB)GY;DXc?hu`a%h&*EKrLk`0 z>0L+2rwzUwO3_yrOR6^p*pJRL)2MbyI#(*JuL+r0>aVu&3ICgI+=`wYwuXcMMNZ+lswopG|5Z0pau0yh@uuY{s@WCs}pJ}wm z<_1QLA<4|C&CkF2`L5T-!8cFx(IS?a&0)bPjW3WQCd^?o&2<(kJ`=u_r;E8aIILTs z6&P%L&s zgx^14+xoFH{-ph&P>)M@8!u*wtO~OvSTI>9ZCxgEn(Nt8znq+=DK`K6?-!lh{UAjj z9AEn3(TkU`OQ2`JoctUA+BafZY3J>9)0 z+52YrZIDL#XIAC#>L6+`gm;b>G>-VIxj3R~AihWlg_UxsqFoBSdRf0y|8{eid-H4V zD6b@AQX#TQKZ{bo;MM+2Xnxwi)yfjQ&{)q`gf%)%tVw8gu=S+gBBd9$a83EksRbc( zA=pV<^X`V!vB;HFJ*Eq&b?^LQT}Y)=`{pwPfnKJ@uTbei3yM7sPgpOLhP57dnN}(* z)4QfRn&>izM5gq#u&g#&r1HolWq1o6RheBffzT^68o8NJ;E;jzW93VnIw5=3xnsrL z+!-I~XH)9B>XYssATl)6t1Fs?u!ChF)zjT6%v?Bs1*NbwtW5VV@xdGBHNm5xUPCaN z=9LJQo`Be^;B*E8GS#Dy!2eeOb`_ofcKVS2@&3B8>;6;_=%%E{s_$hL@C-PiES#UE zgEkF`+-MU==9iJv)qG1{%8QdP{Q%az!>nyQySlc>;tpvcaf!AJGTwgKBme*OxBp?2 z`vzJ9GI=y10fOB|`I$!fnK`MxN4xjD;$2_*Ii zu7bvQ{GD7Jan6dySB3JhLN1FXq@Y_557^;%T0Go=Q2AoMgIhW`qY(YrFo$Akm8&}Z zS;5k;wy6~nk`!(dsKRQkHr6IW92}VRZV_#{g~aC|r1Lb=0y_;nXkGK}G2&R{3SZCf z0wF!vS8NQalsa!8D->G7()$!DQ>d>v=m=KprLt;muq39HNn`rpRBs1e;gHBQo=%p- z*~!v+WD=#LlkQQWK{;PoDno1~G9lkD2ilJ%h{~RSz-^K z7`1lfJenqb&Q1To9)(?aaRGT4C4ukNa8-TOAdXfEjD+2#%Zg6tz#hani>Sh`M(7f@ zkuX?D+YJ*7nGh)-;P7w$vA@NB9;S2HWuAo@JD^uFhu#zt*5xM9*7d9_i%yr_hIfU;#wfy&uuT8ZiguZa+;CN0gVuyt~hKcOPicaGiL3 z2M$|>$5#Wvy5ciuGGYXL6)sPdH=SG?WeZXAw}!wA7{LHfm( zw2PF7I3X4zz~MX?tQS1~r{Jx|Yn>x`T&qkc_fsce{`x+tACA+db_xBR1*f`3N!&*` z0|uv?V&4{TgzM-KBA^YAe71BYv63<{|60cguE+}M6am@^nEz^@G%CUAF<1jGkIPwL z=>=hhJVWb7@a`8muMc4{gKy;I4s>I%iDjVogaK>D?dTKzwrya&T-)|ECI%}+1K;%{ zX%Pa}dH0!6aqts!-2CDbpCKgQK8R9)jm_OW=9e7kIqZJV`@z=@xjZbEmzzt*V#%QT zpInfWos^rCl$`^>uOHTzD4q=uE1pXNrLwqqqQ4(V*MOc6OXU@WRi)B^{CR)R%bx+l z5v$c=p1^cv<~#B;yD$?LtJ%s#a|=zB+xc1KPiKCTpOt@`Vk*o_sJA;~oGOaeVWdhSRm+TLjC!*7A)d-p6i_^87(rYR>BjA8})xlMV z0?Q9AKL`>7fdyqPP<~GX`sY(-O-`OgYFDy4IlJY=BV^6R*4DbV*0vdSD)hXKHe4IL z7TTknF0P=NVR~3B7Q<{dLo9)5F&C8xNehe+yU52Ay7+vdTZ=>jKacM=gYUxYIly-9 zQSYHNoza%&{Uynjr1?JnLgr-`=kZE6TGIL>JAU&MPbPyFMA8<+u3Fa_ucG;1*|TEf?xABXaCWwfRD( zwpiE>O@pQm-M0gNTk^T*^JyQWhf$!d0bzB2OBF$xLZC3ql;k1zZ=@t+Fd!!yZeyJ zxjL?yL-RtAAho&0Fo$Z05EV^j^NlJMvTT+Bwo+jFZpjeoAt}(>XmW3ym1-(!1(XNe zXNS)ZyU+I*mNz5KAjwyDjhr8W@Fz5Q<;&XLy7>v+wpdKJwKuU>6R+8+>TTC;h zb}b~)>Qs8$)Yhf`TH2hPyuEV+N{?i)F1A__46c>Lt0gPEKJm)h>eZ4UyK3&q@@s9` z#$%>Nt*XspRkb#%O@ZttYAY({*{$fPSVaGe%mkz^ zDdH3%rLcuEuIHT1CI7+V*eMxD>7eDL^1)@~&I~MvZS+teAws6B*))pItAYy->IBCK zqzWUJqpOGDwp6bzC!;blvce1=9ri>~#uT6;vB(jl>(~~@%b9Yws=1wNN?v}yK2@JF zN?{g@;A)zQV3_d~#luu*CR3-U)3Br^`Z@Z!OE64<(zJ5>9jmz z|JwF4`lw8a(hMFRsife^>l@taR=5Hq77MM`#e#6TV4+(i zTpWqCci+O)G;!Q+R!AFVF6 zWaMqhNZ*3T=0wHcZ$3bx>$pH}`0`!Z7w>{tGrAfD>Yl>QuwB9cqYJ0QV0Ad0mYymE zp!MX;{h3+RnRz~o+l-7m&+RYX57vYm`byB_s%tck;eRvz3((ZEQoT|Y*{I&QZu~*D zH*HmKo%D+Nh(ijjhMVG&L(3CZK4ej z^epl%>tz%0OedxT3g!uUN)tpqSO(FSZVlalI5J~+!(1b|Jn0fLC5m4htv-9g!E zRg0BY!$Eg6pg*JNR<$6**gd*Por5^iN;;HIOAE<~z3DhSzkimwVh&tZ{ESsCRyHPR zad-GQVOhxqR<$5GBcuG6kPt@h(HYGlj2BSldv#yo42AmC zr@l}7P&@z%Jex5vad|_4M|ZXH(5S@D7a?xv&{K}TgyzNC7cHxPG2isI`7C@rrY}Bg z_+H=hgMQ%WUib&VFZzYwdf~5=dJK{a6XFj$Rp0MlXch`!paK#d?J);PT>#vvl2WAR z9RJ$U!1)i}XWfVB!$aP0>*K>7=dF+MYUNJc8n7%lD{m=Y|(`p1+PZ(Av*u+a_glqZkI(0yN3 zqq=6-oG@JXqVZ-&;++oxzneo=$;pexE~eRvgf@CX;yQ#60esWV+5yq&lCuF^UWeee zRr#AyfX}*gegVJt?8m0wkF#s`1LQbW@R;%c?!w#cQ*;V*ABg;Z()qJu>dQUtbzYFA z{ds3H`Y-9p$=V(Lt?0oNxomF(sA^884 zGi^?+*PQ`p?br`qHZNXhdC0I367W9)_gf6VLz4gl zKHdBNtlZoD*HDyYfZulaTmsAMsuxs&>Fg{``$mmDJjGPwSwJV8;dCMn4d+ZOkWiO*LPyOCR7HM`&|=@!NP#&oCf z9>ThNn(ne+n-sw=SUiu)l0?msuW;#3`z6^B@X57z%mywf7%iJ$l0J_?swIZ5P2Mk`8~Yo_tq;DhDseWh`?WCK49(CAHP8WrFaS-_j=UgU zA3GrwNrF5**LQx|7Qfr0@{A*<9OR-ILBx?-i$IWjfj+|MX2Awr3AiL)<@U?uZ^@zxcNyo7&90o5x0eo}eqK5zJ#&4mtsAn26gD72yH>ZE zL_4OmgMxV>ZIMMERa*+GcvNXFbO2op$29azP11A%%s5yNXTW?o2WH`NxCY*dwlv@& zd<_YB7dl`F4q#l+Ogz5B;m`pq;Z?X*Dj%2LfB=zcA5-L{(+~hxO+f)Xyg)&y3BXIZ zW(i8XL}fqn&n$&jD`r<`X{3cV%Ry1JvpiI%VU|xg8)o{s#Cu5rB47D69|R-6?H!9L z7UDCmMT~7DDmLW;|>+r4%4I&$Dj@k;;OWZ@@f#pNjGtkhvZ1($Jj9jT4~V^ja;mT zmPWZCQ6~C&b(_p(qahYM!v(Q8+D9~F6)#sp-q9??thnYl#-_Czuq*f4sKGIZ mk*!qs4t}M5%v?oWPb7d;}l`g(?Ri3uxE1C{~Uxfvm#B^)6iC8n6DYRH!&Mdvx26WG{ z&sn-UT_JXTs>UqjKr*Cc8GM7@_l;TpA zaxTgrggeNEeuX%Jkih6nIE4RdzsFA3&(!;M10CqV1UfKDb{5{kTLwoUfz@gjZk=aG zDC}00>HnMCW3AF6p%ddYnJA+Fc1t-k$&L$>r^q-OC3a{5-5zqj$-hXLD}aA{+;8P3 ze%pVDX@e3dfdmu)_&-zAc0WgJ0*YAS0_hAz!jZI!1{52InCmo{8SG+qFhsh5#XgFp zBA2{CFkCPlu*={jNa;ePbEK}4GAJt3feNt-sl9WRQs`sRxhPe-t5v$K{9IIOOP4m0 zsre)W>7W@3QF*`Lag4&#F~)B1|7+WE`qKlw^ggzgQbdA?xF8{fAVIv3-z~#g;|4pE zfA7t)04byfbT)@TF#@pey!{}|5JC!s3m=3ZKZH^sB3Kk6MjRqR3L;GoB2PV{Q9Ghj zUqpWc5QiK_BPdW4)I>ml>ZDxJWA3J8LUF&Ntr3bB)g8@Hpf*2jYlh`Nv4=p4BF2&d z0uTraA4MV)1EPHopwyv2Anm(@0ZpzH;;L~2apR9+sk2@7LH2-3zYRE${cfB~4qS(} z#0~la3o0K1<20WTRUlp{&DkGau@_w>Z$#?D)?+GTVTs3)(Ax5yLLs1r`xUM@*a3=A zm~vQQo5+%Wsc=WAP&A4ssp5%BuOAGxO~J>AkhFq#vz6kO#=@r_ZkE>vWl5^N^AYqd zzFdlBsyiw01Et=ltYJ7+AQ4>vr1`$CjS3)Rav>6WGU(fXbB4 z9qmrUGmV}P-q(t}=22d^C=6adI&2r;-nK*tYXuGwYGZ1Z3>3S#oLSVH(_QaJ0otm~ zVS&ZBdhwR~_rOuNQHB@;ln{!Z2b8&v`Z-aK2o(SjA#bT8QO;Q%ioxVABOrmZwrfxG zATohV3~vuWQ>RFB3D~2j6C6x&T=txo*6xhfcUpz=FjglLi=_+m!y|_VFmUHRttNmj zD>ZNhZm^ssT?zt|io2-Hm4$+(QYFX7NQUIes@~BIR8BKxlGVXri@_(xYe^e><1ewi zy@0o-SVB6DTn@BO|+IW-Du_4 zT_5|f?K=Ur=tbRqx#}2To704A4o z$jSa*b1k%e7z84!QE^&D8E4+}CL*G7wv`YbMK~<{HrdJGFYF!a)!8x80h$d%T0#>0 z=IXS0gvAnSP(CR$AuwPy02H^A_XAP~0HK*}qO^pu8rNb73FZFcW~e?RY_!ZZ%z|zZ z=;jI|Ed*QP44XT7agih&D(fnhE*qC7RGZ3VWq4(Y_cy$?p3DNQ(1dBGZO*T-_5evl zDD6=Eh^Eyy;wHdBGATdW)E`JY0ATe|WDQQJhlfCNC=;bH+ck-Xk0U#Hq@1BE3Z<;B z)!1xe)`n?-6JWJS;#L@j0Lz@K_ozo zCr&WovnratLEb!2LZo}~U{El-V-g@Mw+F-^?npA-#xU9jB|X}2D}Z|v%z!}9FaN2lV9Eu6w|)Ww$R-T6vFlaZxTbiG z3c4Yd3*GA;p!@9bBg_vfDl{g|tQKKqD$FK%)U+|+%*@a{vv7?M5#y>eae5`i^?3}U#*t5wsK{)TNK&}zJPw_ao_GLPmM9mLX7B@%&1hA8Ej zP3A!i89H70O1`o@q}3NJXGHsKFZI-M#l4)&(OIce2 z%+;3ov@M!xvKU6Xa7AxQ`C8*DkK?i11lcEQ=H<0J88%mc_$qI79xjKT3JeTpTXzLQ z7t&v9l2hq^O9QTbSWP1#Oezg$#4(USg)uJ$rdzR7(>O^Q#OtMk5%Si#3JQ*F$e|9C z)9`9Mq)a;M?CxGqOt%rz-p~THOL%~ZPiGprwRHPxy*ag(-b>T(vcCUGq2Y}HJXedF z0@p=)NGBz2dPLvo3@c0GDQQ81SnI(24}?{BIuNk%%hx{lz~JR+!66q|nN1&1P+4ozO|wx`4N!?Jqi9Du`U%&^M3U8HW9;E~ zzdLpL#aK(q9>%Wi+sQN=FsWyvh-Bxx-Xg(i*99`oY}+>=S~WEPvalaue9*?e^l++) z$R-{=74{eb0+CV`uTi26+{(Wsnq0CYMCganQ3#N{qV6+I#XLHFYd3I-ahKIHOF!-9oT`H{&Dg5$VQrOqcY7RZ40C;GxSNiY~P_0X5BWe z!k|^+iD*YYtZ7NDi91jBr>g+&XENqE30X;41dAa-5%iUpv{lqzEjprR^$Asf1E#xa zhJUgTq(dV!cDcS>X9q1K?R2K&7hAf-TKg|g?hh!P>Kz?U`<&j>48YF#igP@e8Slo; z#^%SNN(cd)Kqh`n=F4ar(GFes75L#+UZ2T#RGr$EFY#rP3^vAOj;(p^UFg!>=Y-Qv zxYh0Maj*M5;CU~3)tf%{rLTPBdq4WqKmPN-8*0Y$s_+_Vezf|D{6hXT-LTqu)%2S1 zhDGyIzB%3NA)|!@kYMnOn0-(h6OERRriun{2q}$}hn6o;0}auPfm8-v+uaoQQy~uS zGeiz=MCSq`gX*j&LZ({IQb`Ivhd}I&fbiJT?r0)bgHL!WP5%B<;@e zWOjI14p`fs85#Zr=2{QJXYGlPiU`n*4>#dT@Zx)bgoArAK{cm^U~*ufAoYiXc?}N7 z(AVNXtIOyP8feN#ln7otg$m)q(l1^eAnwuQ#+|pEgV~HgbB+L?`-?y$3O_)Mj{mAxxNfEr|(eqIeISN0P*~tm+-e8--e_PudpE3Of48lPSA|ap-qyLV?W?TgD zr{KtnF9*)K-+}nAvsSXN@J;)OrN7EKf!dKtAYohV8@jY zF;FI2Ik5FbT}>JGzi6pw#E}V|LKo0AbO$|J@A<3FrZ&8JQ(5@*0UrlH znA>P4jT0`s*w5W)2iN?aAAa~hTw;U|;0xZ!d$BD3-ipj*iOFau)%BRH%&!ZWW{%0F zociiYPu0n@b%3A;3NZ=8t1w#-9}&bu33+m9!shDhQ zE)L`oT>z7(k7c~$Z~vd_e&_-=12Fd_61WBJFVbh0160h75sRDwvJ#~MZP5sVj{*%* zpd)JA^o`rxvFt-&^Atyw86W96(58^p$7IxrjUW%kqTXUNQCBApIU3(HfGrSS@N4@4f^ zfVE^LkHMP_{CgXTOJF)svVs5a{?GsaUhNg_W$iA2SD&;g?RD*ZZJpL%>+|^5cHuFu-Wt_@P|7ZKqPB$I!$VXq@a>P;lJ+sv*TWD;v-D@wsvfCGg zfF1)z%n6Bz*^sa$WyhWq7p~m6^We*mKczq?9CXrq=VF9l(PG3&kSa|&l^l8U6)04! zTCFr^n7^B-8YpshOKKN#D^s&Yu z*KD%UW_xf@XgmxqK7D44nJ{I|f+Z`4SUt%&aMZ&Kay~qH@fN^YgK!~2MG6xkN~{!# zk|fKfmLXHTBIQbys#K;+gXHQ1>U$ zA{tkoUeCsEqtD7- z5UET(6^gCKoT3rr2M|P2RAaI|+45r}#A_LOh@k(t z$Z6&D8au|;^%xi?!?W>k#4#C4CcHY&A1ut;X>A=sDC#vnGF4MA%_!1OtK}e&A{pU6 zBxBiTV?9}?4SzJ8bKQGWaA@fI&H;+fTE_tw{7@jTamifYMLyUo)FCEI)!Anp*Xzs{ zRxj2iM7Y5ld=yOc@M=qp&KT1e+I*St0uvs|>p?comUw4=h!5QN%lUY;7B42Q=jOcW z5aRBO>k4ggqMgIuB?>CxpBC*U zCEP--+^lLO6oHg;Se1lgphKYXVe3>7fGSM{5$8vaD;P@$5iSZfFxAeBXik?ET6q3Mt@*5Df>Mk`dMtJzwm7 z@(GRi-$99M;(D9j-fbGSf&Xx*GYzzD{TxM{rbhOBriCPwqE@#{hBI4rp0aZP+*k;= zm|+X$@jtG1l(%#hZS`Hd%o`_v#!d=iu0L*Lc)BN>)52ZXn$)L^JDXngEFBjR=gO9 z%7ojpH--V_GJeu~r#N635Y8;vL1qiE>?7v%O7cE1Q@m(4{qST$-tz(S=egI9xmiPb z_IPYdU9A@coc}zf&v1L(rz$NCK+jyIUU8OFTjMY&%Vr{mqzK1f0?y~D%>JPb$>0LV zwkrr}pVags-Eu4CV~n28xzbM5o@G2LTh(e7#-{Nh8mOO8PkW{E%J%nRt|7wz_;=PO z?180*%GXjFALTB5z*mC6i=+2_a`=s!Fp)@q0}eJ5 znibgea6DKi+Q+%4vQy{TDOp0(o72f{%33#o@NYq}iR)cQu&BtMq#Wk1tfmhQ;>*fw z&6()|-+O`kM;E+5#Xhh-Qu;p0;&3ZaksK}#Dn;HVtNUfLZPJ*6(+WOD=riA)KH@h6GOqOzjA^gSjBW7!{K8gS7}94Q)bq0b38s=2!saG zW0FrQ|EQw8(QDJEMn>_`Je5+4NNcBIdyJ-mEMUJEaATlSnf1j29^BDjsrA#=pb}j> zWqMaHs}ZN|!JarnvHlaZr$bBO!$rl5Q#Rw>!zSlIi*-7alzc2@e%|>JWt>E_t>P*dP+Ep~)$szkVahWyFD)zBXtLkbxzdF4E^ zMJTUwj!~1rt)MV2`?%Tbmoe-2pLJ^*UeC{i*QqH7p)Gaq&V(Dq1rm+M!3g?K2h9R$ zdz4D4@<0w&G=NrT0QFAyP6g|d`@XroeKqco-cH$y5`VR`#1W@!+HxCr`QyY+B`Z(^ z(FFAuvEJo{0*>8X_M1hu^|20Wu?D`aJynXFQ&|ghbW{2EVEpI$5r*7;f8MM*kgM>c zM;M~U6`f<>cEZh3MN&p(AZ2E<4f}sGVpIW__SyRptV4-C^0%klq@gB;p81g(nUe28 z)rVrP+yZx5mDjhOL?`yCG51F|*v1FL6|JIu_2@41b?r3u{JKs27vh^VZ785rox9m$ zsd#g_v;6Dp7gF5Ge`K}l5e?Iu2m8zMfEz(RrHJF?U^#%bqW7<_4doLat?ru z`iU&a66aUA0udBhLA9yLzhr_;#!@Edg;$-g2gtjSA+vz#l+f;Tz`mVTS2)3q$&aztV2A&lZG$#E}O2EUBm^(Zxf z&QDs(^gq+YNdIH10!6AHzkI-tfiF{fuJ0(QWDDee1{bW9OHC8WiH#2lmz&v zi(Ak8s`fWFR2|^zt&c{}*;*y?h~6M?bgyYU2j1SZHnJ8L(2%z}Dr1#Pmks|m=mgA} zxfO*Cch-{&o8`8USfMIHIdazM? zw{7lQ*9ZJ`Jxzm~FsPZsGL&9ZlMAB*jekYEUh7VDfY(o??~QeDV?jFWuM|t)+GTQ& z-*Qmhvc_VYOBG>15Yit+z*HCbJOBSP-?Ve6e|D{SCZC5GVC#aDFy|;Q91sjoS_LZ( zM>(9y^}3;ORkBJ8uMDqL5lZ=d#*EqF@k;S3Cg=&vfpZjv57ajvdMtLpvL5RzSPsNI zdnzN9%w9hIpySrTR6Z=xt+QAJ^OdZ8_rT)64qfwl^(x4#^S*Hy%*10)e=j~An^N01 zX3e7GH^fMST~s9)y4>3)i0TX#NhhBi#Xm*=C0|39=rm3bXu| zw^;w!f8*Q!d-K<#YhJG*xK9c`%(=7ZDSBv27fmUEa{kQ6%<8jCGfVUJREAC{lKQ)a zfs!ut93}L9Fu#be%KH|9xvGbkWtHaX3+Xz6Q0ngyf*-8k#GJ8jtY8eb<=D}^V7k(n4|O@XwRQzLg1&}<^{T0;3|qWkNqv6sYzi(&wi z@2trk+5Q^#vAeibcE6vpXV(WD$-5k|R8(MN{yzS7N7`>YhBALg+TftjcZvMT?U-_N zC`jP3|2Cap+U?+W@C(|mNyX`mL4Nm5p6Wrpg>2uxiNmE@CrunU#`H;jH`x173YIc=e+3F*h7AIBSgTP5*9&yQGGdA5vr7$xf>L2? zgV{g^{&ax>nA6K1 z*6O=#c5P?3#%}F^G+pi`Y5aq(F4zi3jhf6Tk|IgVB5rrGk+}>V;zgBN)Iyd{zU~K%%G_3^%|)U^0z_$ihFQ6l}1X3 z@B}S?WzSbVf%8u^@_{qECmZBn$In;c*IuUM%BlDsOlhDNJlnqTK=y)NKm4fVe|4{G z==#|+_tJvP+`x%};1`6VhAn_Qb(uz7_&H9)U&X$=vf~qm-@CsEASWOJiBTR_(Fr__)Sq>!+ywu9mYaNVvtg6FJDE*Fk1O^ka0SD;p*9M5SLE zZxE}8b+S{t+Fy7#-h2Fkz*6!9#Jdq|KJ{mMtS~yt7eboOdQH7p3UY-bb@HGqi_gA6 zl;_#)XZ&5@%#Lq=e?zUn5^s5JvCidmrh(tnqdRdzrk@`~7E5f1Z2o>NOq;PqP{a`# z>nVDEG>6CZd(9anQFVT<;GlMiX7wWiMzPosp@7Zls6T5nYWX`+l;k};*TPo_>Xg8w z;4}XcEA%?;Z$007)otw}qdCG8Rfvo5x+Cg*{6a-7L*i4YbTE-YPerMPP)3TSX6Ik_h9r2t(3076Lh?R5jb8~<&!VqgO_I&w`LQkdpx*) z3EqBsR`}>_!?{_(h1qqN;fei6h=+~<*cn zxlXp^?P6D8e#yga%|U4n-FPSQmttJ1F(MRC-=hp(x(!G+eX6lM^iq98jYUGhncbZ| z>Q5#ICX=vVC^*HcDs075RD2^9-$QcyLkpjzjO?EeShh}4(Sq+UM7GHPIIhYjTO53y zJwKgR@_Qjw$uR{vKH@`}Sy?F5&h4-6oCI&4xe2y8Id!!Fa2wl=})xZFc7bHIeD znyZ5;uLuvn0^iTax$!0Qh+^FUOF@Gno(rZVt*Z4k`_&M?gN?H3SVjZuXo4^{Td`Kh+OeG5HyatbfE70I5W+X55(K8)iVtlJYKn?TtaWsB~0;1lGva)`L zy3|%p>+k1y!+Mv5$CUC<1&~A zj#R4SFd14d$hi_2Mi{-cMpQAZi>=Eq4fgGJ_O=C9`JG4tpA}B z=G*8s9cgYc9ahuV6b`pEGse2!W|ompZF0F}X9J(jt|fTBc<)=$o6)cL`o`Xm5`f!> zT8v@8kcs*CS$BSE=QY_iAuYGHvE+@{C^<&Pub+LIe-V0^XM*~bEZkR1(iq*YfkWVg z%HD3cFZ#dU_)!@g8V$*UeG0w6nMu`Hb$q@&_Uqw=EQ*e_?*IlEC%ndohc%aKqLo-u ztjV)su`FM{t7m>ML<#jRJVijE)`Sy6N4QW?pdk>rDkPl>A=eX7Bn=k4#vg&5yB9-p zA316*to&h)zNywX#Hg&?$k1jC{f zs@n!xA~udvVO30r-e}yU|XM%zA z{Px2zA6e$`X?Un>f6X3YTdD)s)A`ki6FAj26P#N7ARlpu#T5@FUsA-_$02p%%QIE_S28CXnBDBP3D};%zeFYY$qiWUCMbDmGJ9 zfGB2;xYi1J+$x3L5m0h@l>!%sHlLgOAC>xHZtln6SUTpv2pSSSpR2YQq-VTf%1FNY zh0|snJJ8TrqZWl4_?R!KMC5AOHZ0{0H1ch5b#AJ9^*IbW(s2(6qxvz=wij%H*9u?w<1a|U?fPBx0qS6qh%Ispwc+)fCE|h#8e+PrP{XcFf z_HkpBDzynHqmh%rF=QX1z5IkLo=a4*#R3OqdzCynqNpR{CeGmq=W-o^)C}%F67fGA zVU9?e1Eo=KJisVFAM&?NgzAGcxL za~WyVF3yELYe>D4y4W&yaqJZ^VQA@apKOW0uYrMj>@e9ri#nCUjrO4m3`P#hE^`MebN0J--VFW7<(>S~n;=i0f#Q-seSm(6;IdN@= zSDkd}JI7Q(SygtN(y+*x!SwoU)>GfDin^mN?!8l;!Y*)GJ{nsy>c|`&I-LROV(aU) z8QN8&>x%*RyJsRZh(|(qLO?;QI%?+B`lY7TtGKpj+b-&>kC6#9rX7iD$Dk9)9rFM> z9*CoH2~Om1-yhwzzW(Gv@v5}`_7hEDMMsChk}Ob`t{=qZry@@wP6zJZv5}Kauf}2W8p>UX|VC^RrSaiN|66)!KP6dO|$=;4fp-A0%MfZC3;eeOX?N-Xzqzri&kR>Xi5S}$1WzR-8wY7ib&9~*z)hCiUi0oLmN}+5){*HReB@g zf{J!J8?}Q>{RX@G)tm<{HER3jzKq>j1#Gslf+7<+2}NoawNP7HV!$>2|8Rz+{Yg{Q z3w154Tp>(WsCLUv3-~Pf&MSTf&nXlMopp4L##r~m_zxhm%_QT$kIhF7s8*>m`*Y|V zfvJgRLhF{Q;8lcjts{#rdkUAcykE6am9;*f!I4{@SVeKHQX}kywM(iotm2K>yn+_h zN@z_rg)Wkt*#;Tu1~wlx2(46Q4&>6=Jado+#uu9UcvS&zpV7$cs|xhb=Z!=|b(V-sN3w%PXNX+YMZyu@hFGp+xD^S*;21f|2?b z7W*dE2&M}T8!wT`FO!YnkPo0&AGl9FdLNGI^=>ot8@74DYwKBNI^9&n6s$IjX$e=3 zVKUK~O61K0NaUd#$b$DKQOL>nUg&g6*40XcyZ~p~&Y)z(-{x;M_-bHNLmmc!z~<#) zu`%X@Py%R;=s5Z$gBqdgBOud1ncO~{1n>BVRhjH+@^4JGQeE9hYhd>WR6Ex81{(8) z9E-EQg+ae*T~ok86mSdjAtZtW+WfgS-#xh!ei#8Eg*tX_+qX}yfKM)kU?M%}?J<>` zz{+Qc_X`{USZt1L%UCr~fX)xA-+Ag04Bb!+B${UrYu(JCf)h9r074CMNM9+xTtJKB zZ=o?a@%Za#>@-L;<}Jv}TbP%-AU_{G9(sXM{%Eq9>S|)G-ZA|B=|6zp=FN`H_TVwc zu^%IUSiR9x&Qpu+NlE zZts( z+@`s8bD~l*cREy`D!i06Zm4)8TEwwTEMlp}0yI7KlQf4@AFGpukLJ ziz=xRL4F3Qkr@!J)S2omb+$T3ovY4M=c^0+3#U-WtK-%27df8XV$j8gYzBt6-7?6i zb6QwBLw2zRVh=96BC*wswuHCn*0$s;&ZARso>%F_4MvyM%jk-F1zitccLm*0Z=hQk z;^?G817)znzH*GoipHki16hC&A2A4sLOjGVxh*a5)2dP`tui&-KWo=SPqc^e>Elx3 z@P5tltAHxy@CKxICAOf2|3~*Hq_kHDO@O;rA9I2W{Vf4`%zai z#5x4GSC$1)$)Tk|`v?4K75AsKe!LVO>hBlBewD(cy*KdQS)o(b zWp&h$E6#&V0VN*le-^_&H4j@M4RYLsq4Qe%ah2leh|lOl&Ku^EjOlxp5y$Kvmm1sX zT@5h!P;haMj{=zTIp89|2yO>Hqr_Rj41FxOftWG{#6uUv!+VH;E{Jc~B^8R-RN+5W z9Ie>yE>xn{RqJ-x5=u{#w9IhkI|h#&IBfy8528g43OgqzdonACNVvs%D?= zLb7m@sP~-0ig{Rru3mCwBixxO_wLlI(K&ta&mBcl0XsGKg#S}Qe{V!)H zhvs7nkzAUyclXcwvgs~@oV7pQSJNC$y(YOOTwP$E9HE=38%qvbU~CJ`CFw;!ccXL@ zb?iles1h11-zxf9iPU{Aj^zrzmCPN8AI^mpzX8kqAlpOiP*cG>f!vaF@&_UvINHr9fs1iPJ{uBBm);e6VSTQ5L_! z^Nc7tpM1`+sUZEl^R=LeH1V7pO0!6S2X~GT1~>u)`nW1;NFKi><3`$PT)etJFVk^N z6A7qjDN^`rF3gUNX*M2W$|UCo5uj$=gP)rNbG7UG5z>nH#Ao@$uA zS%-F2+O#QaER{Cq^{J?ctw^1u)oS7G5Q?d+4z0&SgLv>zqppZ8PC0iKjnl+KQtULU zQ`I&slciDF@aH$NQ-)neUe{`@4BixYlqJ%rl3LVEJ+w@l0PZ}Or#D!Z6p?}#B$7(#wJWFz W|BjVuMgx=!;q9aE&FHRe-6R0O9x>qn diff --git a/ui-desktop/public/fonts/montserrat-v25-latin/montserrat-v25-latin-700.woff2 b/ui-desktop/public/fonts/montserrat-v25-latin/montserrat-v25-latin-700.woff2 deleted file mode 100644 index a7e1118fa179a6b2a7274f574c8df90ad9b640f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12848 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 Kn7fbM0RR9NS)X+P diff --git a/ui-desktop/public/fonts/montserrat-v25-latin/montserrat-v25-latin-900.woff2 b/ui-desktop/public/fonts/montserrat-v25-latin/montserrat-v25-latin-900.woff2 deleted file mode 100644 index e73b95af1841cbb80172aeef20e7ef573a7eae3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12048 zcmV+rFYnNIPew8T0RR91051>#5C8xG0DL?E04}Zo0RR9100000000000000000000 z0000Qb{o=29ESu3U_Vn-K~zKlg%S}63W0$*=35JdKmY+Y0we>7d;}l`g%SrK30DMd;U^6j!LoR{Smu!m6oj`cv>#>WBHKV!=eC2#aQUu+4*u zY&4iNux;c|a`F;9`3E*{H?Vn9o$`n-%y%FAxr&KmdI#98;leji_!1!c7xUOeqsF zKZyCk4{q>-8>9gK1Hkvw`JZIRA9OvRsNw~J9!MHF_5-H0lcrq)sP}9G3OE70vbkO8 z_DF|+i>dt|E)_#Zm!`lq=7{L!bG5diB}yb$zBH>Qj_&PUnU<#0H$Q}-!_wku5AR8T zWRUFDF`$sK+d?# zyC9N+M9P$e3S(u;Gp3#^(ulhPrR2?$8D({KiApZZKI zr?t`6f5AR$sC!ELL+melA!xrB>qIX?PKtO9=NKlX6+$ajViGEk`}M6#R!&uG!T6>B(+@%kJoi zjF#n252couR^1Ra!YkHf43(M-^k-xaFX4M@YK8r zSGh@}_~i(x_+GN5dyeazDs(@+t3pXK$0{^W9&9EqgXz;Jy4Of8M*pO2Q5lvDLwW7wYyMp(UEsw3u5Zn`=i3FsEOR44rj z{0dB*nW)~;erMA6G2Gi5uUA6A8hf6OhWr_;#~3ItXq^gB7*xu|FLU#skWO@G_Z+vT z--1eH@_a0=qWV2Hb7DE>>pD)JcfO(A*5(m151u=Nr>RQ#NQ}b%j`DOT`GrJ%%G!x3 z7A$S2&@55X4~z`Ty>J$&@BsBGq0-h&1b%PBWJ4#9F_Vmc+J#Cb)r)vuwFxduC!o5n z)A1aEFT^ABTZI|J(U*NigKZ2M@QJ)<)a0{*Z^k?-owBe8fgut)@gUx(Ym&1p1=CaV zy)o`Dv|DA+B#R>UPEr8AG7W!O6`1*N7! z{nc_uEEd+uy=scW``+1&#)`KRXx|IQuH)bwwUr~v)Bf`UJ^9mRfZJcwmOY-W5%?)FElqIj0^LynT!v`2pBB*}e;&C(k6NO-S`FBg)B` zUZ*J79j2p%@=E7c$&YDrsr{v87iyxoADs|KBxS6(S=8Xk^ z9_YvVGde44Ip$f7r2p3h`u~2chgMzf!AGoC#V-9V0rFVDDk@Eqy2+LFx^gfm-Ea<+ zB;CxBg1I?jRqbFDA3N%Z(t5YnsP2S3S+XTt#`?G;-|r%RB8nc6hdgqZhacp>(YUr+ z;*YQ;+7@tWck#r)G@krnAdnubSbCZ7ml3|}+D$KY3Afhb8O}O6Khzzrqar$N2;Cn$ z4CBC_bw1ao#r4CA&l(RQRbC~ICy&8WQSFVxqz}|B2R3?0+)cmHXQ9Rk@1IlSB?6ux z5mR*9v^o2}OdoYt(_=vht9pMJ9VBsbqUm4nJ7m9g-}*2llY^f9Xk$#(e9Vk96%&JeYgdO+Vf zk|`x+F&TlpuyIZ-pd6i|@8J+uzp}z5T72!o#O7DYcOT_`~6Xw;Gxs55KXOLtKV1 zd`NIum?X=vw5{f!02~+c#rV1@=>i*L;xE#|5V74h4~WiQD>ti7a$N~$^T@X_y?*EpD(?8A8JPJRT&=K-e(LCLbq%@6u0$sde=l<-}#DUcrX-DyJmK!c?&@Q7G-i z;iRvHaKxt3k{H@Pp#p{$l^HzB(x^&b)ri*&sZTFL4_y-hWRQ+)lt*4zzY(-F@V$gj zO@T>rR+QXyq}he;AG!T6nlB$wV({?AOOQ^-C`Y9>?M9q8=9(M6bH}7Pi4lhhg^MwX zuEP5g-Zc!95;-wSWI~ZWa-rkGD4q#Z)?7A!&JDD;osG$jl)p^=bo^NmkR8e6&kPk% zb696>blN}Ivl!0PL0sSlk%I%#G=(tI)pOyYOa{{wQB3Gs5!onEu*84vV6H`SEYYr2 zr?r+CblxgsF6eg26(9S;*S5RnrrrMVpTnk1IpvW@PJ8N^A^-Q@usMa7ArNyOT&xjq z6a({lk2{{wd9s=2jajrj+hg@scQQh*%*^A@NgnZ?bg^3XpYaWVWB#_{;~nWo3phG% zaFIw5?tL37_fS;wAPrFOTwiW&o}I4LMFfDd9;~hVSGagr6JWRi0K0nyP%O3q@`h?= zgKh816_NUI-|3Q$&+mq0o+uKPvX8NBo=(`6ua?<1pZNeqGCMcHRwr=dQL{ZI30KzR zu5usH$=x-~%MV}j$UK*7y3!J0XOc;BxB9kB!wk{h$5G@INHrfkm^fHD++SQ6?Dosy zY0u_1x2Wa*;NMraMWRQhsy8jk>dBeRbHTGGp6#9RTA__rz?rV@bm+sWv(RH{4Cdu65T0mSlXg8N-AZ@9>LWZ?e6FvBEB`0!TY&Mms-g&f zeCtc>a68ez=zsJfou;p5&1`C_ZA4I8P6pz-ZFAazc@pZzWbrQ#}G&1M2}W^GOAG6*N2U zjIRqoiJ9?i0=W%HCDV&Q6HX8aS16zc6wm@{_nS%w0$}Y|WJi1;oZ%pVD4S0J83GkG z00JNZ8K}Vt0@UD~4gmvDIU@lTu?TdS3wDeh>sS4)e^9J%Lu>5NHny|#cE=vuTl>Sl zv|anV{nP2L5RBJ3P!Uxup?zV;&{2l@M{RA#k6_y#{i6+%Z-L2xq6y&tQL}OX?|uIL zo$u~^3i$l@dDrLTcXoeXaVPE$_wSp37yNDe>&L%t00PhlnBfl)cd}c265~p?`aj$E z4Ex2XzdZBYO_yAD-oH-y%Ahf)4SC?6`_B451ezNRPd@Mnhysz2Q3MGVAxbo+7%V(| zapDPl;eszcaV?%iq-5lj(q+h`lOvCrg_TXYN>!@a)oQemLz7ll%(&{2+dlP&JO1>K z4_=0cSK9pGv9G-jthXLI;%MAF^}@NhJFMN0PB`wQ5iU@i%;#(#SMI!F;dlw)%a1<~ zRAFdBgbQ^S9ak(ijs%fvq)3z`RWdP&G+HWZ8rcktOce4JD^RFZktrn>s8g>&vkEO3 z%FOxScfL2_hHqVmK#D?TKr{xVK_I#Sc2!=Wb_SGqOx^$qFT!*QJeH_&R^kutfkF6K zSt7+D8E-KlVVVb8B1WP|GFFtq)x}%R^wIb-;5_3{73VhBtZqm0rbYQch&N1Zaw*EK z(3|2wJ0Q;!@nuR2DCV7gWYVZ)_ZY*FJql}s0#qk_G@u>CeFCclN%B^f)?FCJis-0h zGa(H^MaGoeEeQ>o)Fc$H@6Afpb5VBp*7cL}RHKyFr?j9c4^tJTVpv|R)Ke@Z_!2d1 zbvvc%a44rJm7bNTj#h`tWL}1 z#7KYG#XNYieF&Z-n?_4S3bciR0xg>yuFT)RSof9-hwK1G>hUn51K&@h_R-UFf!yp- z8Aq?wsG7{6T8@^C#rAV+dglqHdt7&2y&bBkNvF((t8tJb=&~WX#=(Sj{r;nA}83c002ZE1$^ z3_NZnAE%KRXfR>Z|B~d)iSaegl%cS`fiI!&8ZbDOBBc$iLb7f6N`9m2 z6&w8h6{Yg4fgWsNiFib7pHWKnzzpw|p&D-&fElQ!K>(vR#x1_p~X6VdpZ(n4=ZzpNY?DnZN(Lq%k78$V3PFt15x!>5jujOdRTz zf>v13Ic+*p7iDYCn`L8cJG@=~BmeODkIg6-Oil4)rDt08B=6MVC6WT!3!l;_ml5R$ zHD}-kUKjAjLp3LMZqq@H24-Wzq^AN4uPOfTli_KdtXxma+CPl~IMRBJ1`Ci`)_~!h z_0ctr%{z$_iRa5#yu*N5{sM&fZAU`uK%Fs(aDa6jkOH7S9NDpCLGOyKUG z@DJa%&Mk%a?k94>rmb|6{5bXWCn4`^tKuBeXX4YOTmF-YP>aFm-#e+cmU4xqin*C} z0)>XXoX#C=t3L|%20(bb2AX=mK%rrEbN~GMcv+n~~Z9>_@SBtL*28t-` zP|#R`{j>Za?YGz^eY@0JqXhx~VchZoT+m~>BTu`!;ArLnYn~OS`b0IG`a6yMZ~6;9 zYSqDe*q)~Of^_6r8asUOqsJ>Xc9*QL$R8HC2~A@Hs&2W7dDZNCg7(y*sxsAk+GW!a zl2TsTo{nQW*Xc}mr|!jt`xpwxb;k&)?s5hHHI|^% z$A8!pNZ7Z89k`-`e; z(%JMsZ_aKMs~p)fX=H0M$!DRDN%~CY$U}m>u{ZSOj#ZnraICwgdi!c*Hox5mTAf{{4EvJrN-qc%CbycS%E;~b%YayAL(Je)o zGAk;%8ki(x!rYciLC4(pEQ)`6$vqeDiVR72A*TK_%s9znVH?<*L9}a$snv&*MwYw@l-*qr#QS zG$u6t&bEz>Y3;{IYBG@S#3dz~vJR6atAj!Py=}JMrlnd*SnRYhdpa0u{{R)E4h~>V8+nyQf>nCGqQ^LhsiH^0 zm2O=*rH*8UjhyfmGZ<1mF%rgNsi}cCSJI;d!B}3?X;aB3_S%v?-o42_Qo>P(MX2NW z5vp=mP6^;fnluaF%^Tuj|9-r2r*!DUX4N@hRncZ%PUV3#o_PC87cHF?e(yqOM0g$g z!Z@9w3D~z{|GPdWvDxhg17=4bk3Ig)8XtW2?#eq5=qGy&9$*bCctaiAP8-PD9Ji-K zw@z;UxC`93VNmmFNO;=vRUyyD?vMR<1G{s7+Ua6tm&B3vJ9Wi(yc|1z1sT1Cw9r0F zsJxsI*_w22$x-vb)Y1cvV6!*#tBQrIGIhe09%CgddsCdTQkTgQWK+}U!E28DiX$TI z%E#9PlX*A-Ph?N6z2uY8qvv|rnwp9q7oqlNv3t*bvP??r{n8h2Oi6Fn>(iSyii^Lk zEcJR_S$&cHh)#dRz8KDh7nNsM$E;X=c3bvTv;P?=)>U43d;tz)v)cMsXX8G$(K{n5 zORIb?a`<8iyz6Bx>fEw|9<((|acoTb5evOWj?KP1F+23CZC|t`Y;Iq8rsf!FF-=IT z#9@54$vpKqL!gWqp-xCuR&P$RE7pncC8!oU0yZ_9Iy~`di)(IqRPJ%?Y`2MoJ)C~yXqqEZ)J6>np|L}%~e~&&N&RBdg z7W_b>H_?tf*w{sq_gGtkdGjvjPsfMd?HYkmERqn?9UI~>Eo6E1&465;Jl zd-rYoetG*=Zca2nif6C5`fC6pa!7R@@M5&@ir-~%1j>ik?vUlvwXwS1h zw*S??qW9Jpz0mc3RP_J%)mj-4u+~nch3roV3pSoLhOgBH2mMp?Yqjs6-lIR$*IetDv{RxOj1G{j4}8oy4O2}`5MBdys?S>Wqm z@dqkYu2Cz;Y-OK))R47zw=wGg5tm6MW_l5+Uj?rlsRv?c=BZQmeFz2U(yc1}QoT{v zxj~VuUz=iR&&QD557shGB&xlYL|SX5(n3xrgwdV)nwl3oqCw+Y-O=6@s>F2h_w?`Z z^!qb7V4ihTbiu*B2SG8R?+Omq?0Qp7ik6>`k3k=WqsCijdk1%oKS*m4tD5xs(xW9M zO<|6Ya+uA@qpOy1gBq<~gIsK6iiXHkc`wrzWS4Zo9C4Ag~fR z@nR5L%uFukB+#`71md4ZhPi+3_Ky6Q9CB;#=#z>>v9eC>t&_QtrH$H#U^c(+#Io6d z&floicN&dm->AsX-=xq*#MN$6TE%uAWT4Gm*$>;LFq@Yt(on8;nKEnnNw_dr{E8I?ixop_VT4S{&!!m zfIK>HAb4vKg+~r94}Cp(+p23@ldQ9}3sZ}eVxzTMegTQYF34+RNvu-2xTJ{(0`!7* z`+{qeWBNz00Es^$rCl?#Z1l@<_F_LbqsNP_6&Siod`F6r`?fBAaFwd3At@^jaTpH6Q%H`%hjm#&nrCd6P&Ci-V4RgxU;PP%l2ki%QVIl&s@Y} zQDkfe+mI$>5=0m`jHib^BVwThe&3sDiR5b89Ii&gqC|6Kn8W63e>G7p@lP`44LvH%nXh=z3xvnWcQBu1h4Tvq<87KZvK2b}h zjHI@-&O2N4*KY7*0Y#poKrC@0YJzs;hoO$77Te<_C21N>?NX8L00DxC!Oc{{|5!vK zYZ{i#uShP|TB?7zO3vxN9|;C*{)V{BQkhI&(8V^J3kpVL$j`U-&<@dFUcvo_jGL8Z=(FM!_D(E|F)a0)8>gaVN2$y|%^F=D zL_mUEg8=few#`|FK8Hh5J8k6qn?L4PPe_-_2-Ya(j(&j*w=}4c#haQ(nk5+LBLD)#y#Y`esxiDT*B2%Z=u1hT5M~v0^`s&z3Vrrpp z5yQuU70Jcf@(UGp&mAToYugm38*3=o%(hrJu?@(OSMz&9Z%W~2=$9>|-?TDDi?M3! zN^W+}3a%O%au?&$02YbF3h+;huna@!ryUNqytqD5+>m{Zk0B^sFf!cf+s< zzCPUxBdrd66K-Wf}-X38{rx{u98UO+NafCLF5~r?%F`5rKMu}fA!^-)(S~D zBP%B@AtXv-jR26^PR<-2oRRs+8o!asycWc-egc=!ydobK$NoX;Nue=ZPsB#Q*|>T{ zpN#1-CRb{+Y1;76@^u;sQ|Qvx>VmY?%4VUSp~iN_Rr(M3$Cc7OV7{f`Jv&lPJ;sP; zOH3i6Qv6jPpJBYue?IP)t3Wqgz4wn;1Fa1)(qp(ZjSax8&Dk(Ct@4Avql zCT{cg-bP%z6Kn>%P#~z1W@T4Oy=#rop!GI*dZzmLq~c-**o9`OaT{6?EDPJsHZz0C zPR$C5Yw4SjiK|+KL9_UueK42uJe$<;1^n~p=+U_8`Ilmek9Ex{XULP7KdTCdTM z+AdT{gd(*}ATW0kE^~&EwiP7q(Sx3v%_EF!ayCaL&A2J09JW#puZYp7?&K718fhHP zH!0CBRK#0MgKym_tS>z$qOiUdBV3)?-k5VFW67%X zTROWrW=qTO)uIb)HQ-p!vP>Zo#im5|{wrXjIYt#3rD4TJsZWZRo&KZKe9b#Eg87G#}45o_`Z|lR)N1u zju#z=>tfE__Ie4dxX4@^6J*9T!jZt{ZAnYwOmfJH}S9{WvWQ1PV=V;{T|LZbwYBg2UP36euc(Yer>`{)pu%~H9*WJGeZy+$Q z#iz?hR6ChyXxmp^-PUIL>Zm=U#IBB;!*uxXOq{V-We9~Kd+RBX^dX)>3 zYluea>F+*BQk5WiS(?vK^H5XZO23uh&gE~g5N2L9?s(OBFK;?(|47sj-4L}--VFR+ z`EdAQZtuYC0K~a&ZE1HaDq32aww!E9a+!U>5+}v7#X^=hgzVV3qnOVkF$?PpADo!g zGy@lQ7Qb=JIyVG7jYH95a}b~T0COMyF#JRAj{URyVdq0y+#b3YaUXd-QektbY4QzZ zuu~rEp`yS6ydl%@fO-Hz)}K2#q~U>`4aEgmgF+rn(ZCShQNO6(u z(DL>Xd87T5q@!83$6S!ItXeEK6y#e8EZ3pdsCYyPD=1y?d5)OcDz2Jb?xDrz;k)zgk)0#ODnI4 z6lBK5#-^91Xh|JG1|m*VPl~f8$Z9a^VLq|EwfB@6{wq0sxs)w5Cnt+74tB;i_1Qt) zAgtS5U8bnP;iiSZ|I2;Hj2GoB;TDoJU3ESeleTU*;3A@~czQe){QfilQ4A*~_c}2u z&m+@!{7#pb_|qvXJaBVM4}T1P6D1UzCBD^VayvcpXt4LpxcJ;UF0`REo&17AUZ+~k z@ANK9`5Mhqo~?k_QL6l za^iD^LZBZkMQRh_JH^|&y*%s>@%V>!53lZR?6}~%5Tfe1i%loDIL0jqP->z*v zW3p<*a%-9?r0{A0KFh}^3m*XAlX_R2MyDM|FGqU1k)M1Q49Z&uNk9L|T-MmvxSR>! zS-Dv(j-Jak^vk(C6G=>$tRUjqL?RncTqaR1zLc6Bce~kdkHEIZ_O0!Ps=C4MYTG0zvrb!K;v32%ddWSc3EpxnI5S1SOTpLE$JP&95 ztD%Q!{|(Rded6c$#FzNN4eh^yXPH{?}m;fMg%Ny{CT$^fMXSaFzwvo0_hFnptU#GLTFl;RJq)a1yLEv zs#G>RmFzu}*gTa4)@6sxEi$GG@7{xoQD(7Lt#A45A_1%C@oXYzN!P zcCp>;lg>R{Y&09qM*q2wM%M$hb}T1>(zbOWXs{g<>~l%24T9)tp0oq`tW(;kCuQSt1ok_)3{#Ok)3X=!mK6CD zw=q3jIOWbB2+lJU3gPUXK@(uoZbi9t?v;x7pETH|^OjopJ0Hk+d{~RZBftbSy>^1rHV;^o;B4bC3 z=^M<{0f#fErAO)zg8x8|>Cs}Dka7KW^Wl08C)YuGUTo~Qa{o6!?7Obo*L5=X6QXnr z&Y(ePiD!7_EF6FDVdNa(l9ude%jd0ezO7;Po5)?INBBp90g#|s1OUk3#R7pXgS3`U zLK}!D=cmBVfh%zf!0Ya~b;df!OL%KRhhXCE@zBu)-aoq!h!8Pc+kTD_oLr3T?)9sA z>1!VG?A|W!-=>hoKPYL(Du-FmSr;=W65OFbsv3@Dv>=p@noPG{Ug7Xb-fI1eMq3qA2tz7U6!-3z?9#j{5WP$6FLjzuvW#Ij?P9EZ ueN7d;}l`gkT3C3RH7TO(|678VG6dp|zH3#H+Q!wUwxMcAScPs>O_%*=rOh_*bKQR|J?iDqr^hR#wQjQm^m>TV~RFb4`F32Bm9c1cG+%!bKOAv z`)aFlG8l`ioCL1p*5?q*#Vjbh+qUH11rK{o()rxp>{@&VXili~_A#^<&NI z14V%hE+@v%Rl*C5)3dHp9p%CNic9A75?ncEhSw zVS4ww_suIsiUcWM2ofYn2(rhTr30v!vMp_kAs(xUG!+%?N&jX71v3EP#OI*{;XzD^ zAZ~mi{`?_L8Rg!2~r?wav^!@APrg}YQrHTwLy+Kj(}ib0x$sr3K&Pg1F`Gw zDcKJ0@n78UAb|1Fga8Fl5R3)0k$?nh>CFJGgVTd?mtG4b zF!lSO{Zac{_RnVScZ!fJ+*269o2Lo0g>}MwVd-Q7UIzZ+mi>3U2Jyng;vgNf`(SB* zYcrodx(@bNm>G6~Jat1xLJ$PQw1I#mfuy?$HmP2g4JcvtkDx}HiNGO96=z6_x3o?) zoDi?6vw~iJoQ;o2$*E>=@;z^>?Rx|=`4ZA8K_!B*CGkA7pl^|iM0m*W8#FtG$O9lv z(BGCx6c z(|(pN^9#IDJ?bo;{`k%Ot<@e&p#H>1APLD4(nPh?J9Z6etVFC3io-y_8qcmy9~2Ji z?B!>@>H0<-1sTx3Qz#HT1rTjn^`}^9_r{94O*(Sw+_0E^f3GHku!7+XA+50*ejL+l zJhH{jfnDDilrBl_&B|~**v?-FwMHG%%&luxmkslPC||)i~`Gq4`07|U|p_u_qL(7QVkC`@9=>?L1<8Sl*`01?)@T#t9x>0%5z&=eo z*XdmQ`%j?b0#bn0;t0C+8?fQjrX_pKq=Zxu?lr73lLR)xxxFvWiSa&QWgUw7<1^hH1Inwo ztzqyLGiy=>06GbIVdVU@2qnJi3MAGk-(9@JtzV{@jQ3?P&^wwpJ-R(Fp1NtKT5DZe z!S|+0$KuDXu=+ESnj(43?wcRiP+%i;K+ef>6OOi@<_@&C|1_eRh?(Lrv>D5w**^mN zK!lDq(aMugHIln`Xq-dd{TDS1-b%S3!L(6C0(pOK90IJU9YH4`*6+pyMMIrm?^W1R zh*pwMV5Spj z&)K~O%jw?+)PEvT9?AXtmQeWw@8+ZWdrEW5`=&rE>9ligePc|8RIxD)?ql+e1iQzC zi%vwYU$AA(i9zCZj7-?J6-J&UiKb;8G}K7ly8|}OOd3$6uq+-oh8Y2cUWx&~<%H*rETqPrT)++8%uG$dqeeG;y{5lQzdtV*Z6Z}3)PMA0t6ls;rh-rU=O zjW#86WLsl~HGH!T8-V@AsYYTw*D)w1zn@S{y!AVp@j>kXuXKmx>Ec-w4oTy0JNC#K z!oV4y7qThbj2`lbp0!au0L#bCq!6VJ4(nMW0$wLuI^k9vGoWZonP(sN;6OBnzoecc zlUGL@n&iZ-i1SWzQZdtwDyhL@pQMdE9h~Ru7R`0`^;&8z1{Uk80FXZ2x_R)p{?ZND z^eNa~zC6bo%3CHfz`%fG{ZY!~*$PC~bb6yH;%*;ksm!H`AP|G{T3G56ymdfrOf-Hj zIVS}{X4Sp1P3Q8Qh~~x#WcfA|)+sjP4a6o18}ym&b#>XGH?1s0hat9&kfXY3Nb`5) z4!8i3_1~dncEI^%t-2NV(P$E^?!paw*;--BKawtSUU4nZ;rc8s$4bz9)y~2j(h2zs zXk_`^4QN-idevo#<-Ji?Es1%nMA1z{*}s!7)>B==Cs}>5cyE>e#o}@6td~Ht?O!b=3aNvXs=MfK9B9v0cr7)cD7y=d{%t2h4^;T>SJf`Ox#2;68}@amW63LUkW zfP(W?r^a28NX6Bd=gU*xO0 z1wT1w>#a(c^5Lr5mF7PmML8xnWqFEha69&;@?pCp+4>G8XSDfB&3@PWzBe4+|9ghP z8o(F)@g`4|mvHA@ui~lM(lQC3c0b}Z%tsYZYCSn~CBGBOLcM;2g8AR93TR(Z(3r8H zG+r3`w!dZ<4i>s2-pN)dyVcSJX_Z94((0=H`9du@IvcI+4@>M1&$LvQU8su0_Sa;T zFV$s-oKE?Q0S3s;8Ln;eWvup(Oza=vo*5s!1_b?lW{N*t8^xV<=^*)T<}~UbR8%p9 z&Z*uhY1F{z(V#(w-n}||3o1KMm6O#Gj+!Pn))!f`+%VKUM-xFrQw|a-Bp`>nGlKW} zeJrEgA&7661r+qX;$d3&ejK|0`^A933)M6mSxafQ0-m|?M3D0DCViE@{6ffK`A~Pg zw+sqCecBv%8sFrRW7F!2-p}`ddfKpi+mSeYT;mJIsTUX_b66Ty>YhD28|8WmQ+v(M zC}!b2SuUDllFCcM{x%qymU2Kz_5sg;0eoVcQqYtV zH%$;}r)X=N4jDW=aITh<>(mDtp}=Cd%(qt06G*oPN+PL=+v0!r#%8@iK>-A!eUC$E>taE35 zRVIh-2(Y&*7&~JvZ}MOx2}`~@4NAMfDhE4McB{x3+2W6U&9JzUW!)d28o6=gPG}UD z!G{<#;ZDqtzd%7!$z;h@L*s~}`aOkZp=1Li9pU6Ck&`H=QJ!)_$Rd! ztUF!fkjk;^JV?^9R#op)QjBq_3Mm{+v1a z%*#p06{OKb&A{)#(UkBSi#Obir67P2Owmkv@C3w^|1rR3$lQjlV#FBjenMDsf+z`y z-ZqLDU?AYm2Z0d49)Rv`bRKIm1Uu$9oTT%B8LYbVFV;mYxpCvngD)5U{7D1~<|R}# zUs7>GBuEi1U5-KW)Jf8yRUx(EDvZ>o1_nL{zEuakq`wrLMc+&P6>___ByV}VxplKT zy@6Fxm8rXh7!Xnd{?!ppN7Fz5Z2HHa+1vbscF+*oUF`CH$8r!59DfcLEtO5!L80g{BrzsC17D9-LNCb#N48%r8 z%Z)kK77G~Hb8-OjES|xWJf}7K`A$2pYQ>(gYMRDS}MC@Tij^N%x(m zAzvnrw%kJw&AyI>$<;uRJqXFr5#KhreV*muFmr{CGpCsAA7%0l^ARKjW^Dv47m^Qw z#MNXAfdvL5?>?C}$Tu-_s}BxIMP_KtMuA)&d4H08{ruu8=2L+4kLAT+HEe$57X z87K&3j0FfV03M3)?{+fnz_w^48(<=dV4ZZxyRy=o)47)iOW5>ydIoJp3uqzjO#9Ly zw3JrS+wFz+bL{5{c|tRt4qzghmk_J-uFPlz1Jh{>+U7ib=-}@+WaAQW0HA3A{y$I) zX%+of`Y!`~{xZPl*YS-bpizYDq@vCmDh z@FXVT$6tUz!A{xjv_FoPg-|i1;v`6wCY?;KJoyR~DpsXNtvU@FDYa5j8}5W(PI}{x zE)Vp3=!xIHmbq`*UG!F;?`7$y*EZXdsdv8ElbKCAT(ZM{*IaiMf?5X?pcVtNJ*Z8 zI+3KqNmSk&%2^7x5(O}|OTuC{`LZ@CmAzK!g2?ZIQ;Ox<;Izb6lEiq)8W)=LAgFPj zKDwBhDu|0L>LkSoGTg=cngHz;ko3_`Yhd+PS9Lg#qjra5Knh%f<#^(A>Dlu!C_#&s zn7=)bu#h)_;tugzqKRG&i{w zAWAQy%SG#y&M~DtR}E0JMZI%m4lP2HTpmF5Ev*CxAqi9L=lL=EzU4e-WOMM^*NkdT z9CmoBQBes!puC%JaKW;4j#(FC?1ur|PRm#?l##=_e`p%x(ngP)_LPK*`7*WB0bgO< zbp(wyni?eFijjn^kWI*Us5A&_&beg${cr+kah%_pYZoaWLJ1_4isDfG#4?P#K?F+@ z9iq%j+CNqZWH2aW8eFhgbcvyTs>+_2Xg-%IG+IEgz?@1HVPSsZ(#FDVMZ9X<$NNXd zeW`Xt0m8Pli~KzD`3~^Qh_p({Oig5Xg9W%r)q{JunEoRX8hzOS_Ct)@@hYJh42+5g5P2c?&5W?%_dz(KfTp*E z=?66}08#F8MFan*oAGQy=BjU%CK0WaEJG-ncdj$jek3_GqA1`tC8kS`PB44q;)Uy^5% zaVuSwf2+}kX;VU)c#-lnIlO=oAz|*9aJ`wDpYoDvT{u=0?bGIN1e513D|d7Tp&`r_ z%!TSxZpLSPa%(g5UPUdgtd#*6M~bUz?dsST9wS|3(vMW1>WD02L&ngI%UiE`XK|V8*m4_n3u+FAT zp0%u3$p9oHGS@#&AH(DY$2@}V+&GehsyVblytqkC+FxfQj6-cInZJuss%E~;88wA1 zTV5Wz?CUsdP6Ks;Lth_6x?WD3+)&XA9RT51HHmZ&Nn^a)z{ljMh2Xd zT}-OAniuABsHD1JVP*rDYmzX?O9)w_nid5Ur(DGv(w+zs!zbW-Zch8Wq(6DwzF|DZ zT_k}T`1bxy2pRvGvWwIT9(3^sDxrcO>&T-z9T$y-KxpFi(y}iXCm$2r9M> zNbntx9!H*u5AJ|@6o>Q*qb_%x6s3hCP!LtQ8=avOvmc>LQEqIU%O3ZgPZ4aCf(S8_M`kEPK>=-64V6_G7$$US(ayddgZ zD)P{iNjh3HjMfu>#oqMLya;xeoXoCFH|BhvDpuC}%rnIYvXl&`lK!$C?co6g)(Ji4 z$aZCz(33mGlfyfZv_|$u@0vW)l5eFdcSf~h+5e|WxFg*qqTIV)Y-ex~KvlC^iJEF? zRWz#o!)4tz{0hrXgZwdyn>6n0)2*AeXu8DdjMF|fp%ls}3BH%k4E;q0Omf{01)}kVrMc_$!0Q; zqJjS8ZLWyU&?YN;U0!vRA#zI3ku<);`}66cBZY9FKk)r&nsKVYr9*NwHqUvUuL{w;xAfo1&1%p-7cIjmPTE3$toOp27F zgE|}%IZ~&T83J`{VmC;3;hMJX3-6V7jKl4Ui{5Y^(cKT`SA?kyl_u@U|0yy-d?IZ^ zaenDMS+-SqW)G*wD6RQnrO`a^D`T(7C`jf-j)xTEyH&mx%!vrDU_cgrd7+fSu_)w%#NhuAw&h;?>rzuT^CPb$1 z!~-y~Ti6!32Il%=LA1&=FWfj>8N>SPv0Hl)Xsa_DxL%}r0fVpw+%7r8( z-b|y438f`n?b3{R=B)D0nGHw!S_c--i+r7-){)sQG(2gdKo= ztqdRVxe!ICqx$1hgfmmNne5%?0mmn5x}=h(?(LtEz){)E#^{Ha7eyo|XX|5LY`+8| zrbQ{i2!?8u-bR|d+)-=5w7QzrO#i&}x3JQTNo@?v(z|cN{6vn1%{4R8kHAE#VNz#U zL(MA@=HnbthY_tY?lb!u^ahsXi9lJ*>VX$HIe`!Kd~N^2N)`K5c> zn-5C@uPfeaUF|795LAomIt895LEqT+`|Z?4CojJ@?b6_>8s%((R)*31_sWU3$ z4i4j<;8sgT4JBIZu+&?{8bSBBQ&g^KAU*lckFnyG8ukK&7YEL2(2a|JGwv4YeS8J< zgcV|OUxK}qrj|D>FVRt1GJ_`3>NxlRETZ^2!6dEllEB(svEDy+EBZ9kg*M)_>F)}R z5;hfFGd!?v_I70HT)~IOiOMmNE)#M5=fYFJeO9Hs`a0FMf!<0KqF|iapa;?W?^o6| zY@^2YC{06rPYq*Orx6DuBIm%|t`l%MFtv8O)-Y1;F5jgGC%^^bE#2E5q->0S_;_I_ zE~|^V-+q68{_YtYs`Q!$CzW+ywEOqiJ8m@!Z_52Fx zsqQhMDvxn!5(<*WDw&0)KWpnJupT2#Ys39!^kbK5@-F=IncVTmC(Xy^l>Jlg*<+2* z|2wz*Yo7J*^sjNF{sZcI%MR=q-&(x6tXI^lEq10-D0oNP__|o%z%pe>1woclnG9Ew*7uNVD`7pHc%B)-D{+*$GOat zsCn}Ea@S=eQKSoS<)K8(vP);(pS|_OP7rfWV>mQPJ2Po|BnsXs(V(8m;`&M0H(3;z z)b~V9o))OQ6*yE437@D>JIh@}U^+~}^p}Uyrga}Nwcwd=OysFAl6IbLbDuM>`*JKN z2C$|I>U^Kgx=;D*us<$?kit5Ow|IvF`Jzx?d-|Yxo8GdMu;<7Wmt)?nH*ZdQ^5}r$ z&OqeYfc?$@FjyQD;)w#Vni4TPnrIMQ#pL)^Rq*x^J0e%r%f+pT$?LQ!Lke+=&ggai z7i_yLH@v(#?;z3;2kwy)JMkVxA8|L|>b#B^1Z?v23aTNWr<%;@Pk`m9kyAy?>UlzI zYe*=m@R~t<@gWSVAhNafTv0%q#FV`_apKdJMNTtSpa{r?Eqa^J>J>N(-e2fwDU-?T zN+H{3D^6uJ2MU2?-e>WNZF!*;!TeJnkeX^H+Yh33r9Jxc28L2o&lLw?4JBf+ucRyG zs-V>YkJGNK7hX3W*pOHgUmVbQjhi-DJZJ;=v1=|vF<(`!FOP#$UUI#J(8X<#FDp{g zgSi?Qgz!g4-;Hel42YPR07K{!VMyz+%qFj-aqP?f-<;OTZftJ|73!BiYx9YTkP5( zSLn7A(_ff4{@BW5r-_3&!7yg8!^iU!y!exJ_^|<@YI6eWwdnIBc|YF~)2mM=8swGl zAXm@9GvJ5QiNnfP@BF|1D6ebw;i|INXE|d%ghLwN^I02q4ph7i*KkCYN{F)3Y-y&d z6g3o~O9KYOn?`JUxvE|wX;ABY7Mm(05#MhWSY(WN`30c_L_$U+ltd%svN>9O$v#0Q z(qi{)Yi6;!R|X{2aY!f*M4T=dRV?}1i$Xuq#zxw>d56IGwD|HNQjqX|vu^sfaPE_} zA!+ebu^{>C^MLo>WW>!U${s`NvX~oPIG2cc=#aV0*03spnl-t*zQPN*Lxu`WMO1AP zQlcM4jgzENx43gT?@g|=+J`|ZFd?;JzUa6wwrQ=UT-U%8qBptPYRubG zDAzYR+=78Ii%na%Bwzl*j$^p@%i#ApydJ;i6`6hf6V|{}BQ{s`d~UqE7C^AWx2%?R3>*Z#mJxMtDalCm5v+je5u*WBOIy!?jPI^rqK))ztI)I;yS z{sK+AqC8F$GsEahI`-Jc*UB5#D`RB;p!*9HkI4 zHrbP_>i&o?``I|hw6dLpNXtv63ApBD%|*Js9o z)m3py|L6H>pG&LK4>0a?SQH0WJcEyU1{|!2?fc`gv5!CAeUiydb)CvHtedAlp9hoE z#p(>6eZi}?1rzgrmi2BAvws1ZXh6YGMV6%d)xX z2GS?eV(M|mm6N3%14|#7^`aw=E_YjPtv(zI-R$YG$dXM~J6MY@MnOP8Awda0V)igk zc*jQdR$W~&rOomT^-5(Otm!CRukksm4N*5RVq)K+CpKX}W+35MQFf^S3g>ZkQj?&L z1ZQ2E;2E`5WTu{7nr%>7E-M$(rf1p2#tAu4|f3t>ua(sJ5~*!ZcFW{=HX zk-*2H0W!xVR3o8L5wPgm{>8 zw+<9g<_@aNCW2J{VYbKCL6%wsDs9yW$0n_5wQ8jSjk~5rzCN{@effrPDGz1K6z&d& z5eb)xF`h)~Y^R%<&KguI@W>6eTAhODl!LfO46QP#ufpKRz{xDf{gQbcHYg2z+Jw|O z@_L$N76Jw5Y5Y31B#Hjx8y9l(Z`P-L0U?duR%) z5Q6=yIaQuss?01@=&IIm-O`nvHjOk4*EF`dj4PHq z`j`%8WxZa?uaY}_4XBjohd{?87L{Dt=QY?nOf^kP=1!Iej#8htG-LUjt#t)LRd{cc zTdq?FA+-wC%RFQjdrKhm$h)z@<}|~s&MH`gy}TM$*O=e3HL{{gj%W!BElwcfDpKH zUArA<7DKM3QSyIcOX|+-8&BL6QhRp)aJmK&GAaK$X+VZMfKlYaq|?rgN5iS%=Wt#Y z^9Qg}(2K0C^U>uCd0a-FxHF=*<(>0|#cyP& z+&qeB=~6CJw9rlyDXlV*)TcL)xId6x&d|A91{vpE4zjb>|4u%aQpZZ~sjtNifc=D{ zO2H|fv)hQBRT6H|>vq9eNJ}j)P?2N`Ev=|fSr#~9atau1zuau}h#3Xjj9HNAtNgsj z_`=tTgi~O4jok|FEGL?-c5#oa&k+4+7mN2O7fSsYM&dv$a!Gh^{RwX?G>Tvp+*0p1 z5&MjHdd=H&_b~GIoY-k9+h-#58SZqOCUR1D+xRXs5R}W8r(BYQjyLe{r)B2h@z15> zzS;t|oitgHl$x&Q;ZuKN$Y>5Ou$*JLy%PT(KD+eu>G5l3W7~l5W!o!9^H;LhNr3iW z-`$p)_+=*$dmHBXra7B5?cJ25FSaD&qiOhgQ2s$w^kHuIXM?AE?H z6MVi(;V)vUnbi5bb-hzQ2KH5-juXxO3J#_)C=I&F;Q#f zX6CPY^R&WfVft=8H|E9Ua9wdUtL#)Y``-$mAGce~o#|nGw>guT9R=_s(QMML-HWvd z7p#h&FOk5pF6NS2cs>fu_Eo#O6>Wn9xE{TwgCjqKy!*!NA010bJdL6k+ zARt%kQ5P19V;Dmrmfk8%S7N`kMj-KvM3Racp;Sy^Q3ZuXew_-g4%2&VJBzOEC6OP* zQ*H1@i;aJ;zpm|?YMA;(QHbP}b!D(+gzv3k%x)JsAL+t4_q`;iyJ?JLl7+HzNPjxa zIJG_Qlv>x#yK%G8mx1)?>>RLA%G@x2z%aLt)UwWW@b09P88^0U!N%uP&;>r9;yA7F zrRNUJT%Q3J#k12hpz|%8FE*qs=HHIxpV4Bq^gl22&ZVTklbW(875@T%IQi_R{N3K5 z=Gx5kvyY$md{mk~GhTV?NOjMVnJpLNl)%U1KIirkOMlt6&5bqF(bu=zk1CeP+}^x@ zV4GnH0jbC?F4)K#BdM+uOB0aF>0T+?z#1i~kAkE&`uB>$>Fya&Q6H5DqiR^LGihbi zkX<2uzfUQ(!KPSAJ(X)G^S&TcZbt3DZyPE{bJXlWPaYJg&VwFZ^Y}#Q@zI=`Hc1=! zgOv0P<>O=jVjVowzNez{bW1b#$mXf1vf5W&_f{NhhVuu-)g~cbFmfXS8ClXm*rUV- zdamW>Tg&YDAivVG>9Db<`HFsMTz#pw+BCV(+Qtv0O&mSZg3o>wD&z30ln|*IvxR7i z;L0XY4ziUS25hKE8BmCtV1vhMRs>|iCau9`1D`2XWeFEyaX7XXqpK7vaB`FL^Zup< zYh;}4bJt0O|N2jV!VWIxvy3j1kgmybl`xpPdZo1pD|Aa&7PAd9MAIv(?IOA(CBcq$ z+f-n2dF}TgwSWpSG?1&EjAq1+CrOvT%DWJMkU-S-MbAWsQwqj^)$zU^r?JIYBUww- zthnLz>Fb$%iltmmCALE;+T?%7#bUGVgE(<*;lIE9mD%wyyPTHa@k>1Kzf~Rr%<I~a~~MntWmw_~_=hGC_&lFO@*$)bRgQnsyZ{Ic}9LW;Vi1ZFTG zpbMq&Iq9W|T9$fR`MZMq`ODS06;XG$z>ysX^$wj3av=Kf8gR9WcbQ7L#H$AfZET0A zn`G%rWQ_Hmc&LZYRM zNw}L<2&ojft~L%PrJYO0btR{sePR&u+!i~&7}cwp?Kziu6+RN2n*MT!Prc~Hy3kqE`KW^e0w=3=i)cl1m!uoZbEK|kn048 zD$)yQuH*2p7~DHNrRha8(@E(cizyKlJRHA;cL?0QZ+ZSN=bh!LL|S^v^=v%JOWCtn zlS|d`00B$)a8CCx=+e%N&wv=18PLg@b{*&#O*@~0pU+6UlbZ1#=vCvKNvZo&lAOsY z8}^`I#Bf?%>U!{L@vs5dJ0N$38Li<-KbEtdMN81eoJrP||I^ae4UwG9EF5XctNh%Z zti8`mfLB4lsN#f5g7tz~73`j)i-2Ogn21X`P{mMIaYt6^ud6apixUv67tBIz%9s9j z99_Lbs9q?GXD_$2qpTj;58w>L!Fs{0V0JA7F6FY2WB{iWg7tz~h>ZfPIL0Wn7P1Y( zwP1QUovQXhkElu!%(4Z;Iy0Rhc$&L%@$0iZ%rsBwtV&U9=Zm|Pwzp@q1L6rth) zh?@lATC}wbYB5PlvQXmyB!nP5kQNY7HB3V{J+vG^YR}PRWq}y-@pb7u!P)Zj`33w! zei6TzU&1ftml?}t_@j%LfM19fjqYqEu-dkE0*-gST)^NL)wEhb-)@838U}PntUFEb zg4x}^13g5&!y(&n$M=IoFJz+2=4E>^y24*UxBRzkMK|~x=qB96a_A9EJE2ueV4+MY z;1Q1zX))X!4dlHsyKHVD0K_Q6RkV`|5QT`}b|kA^7M)TdC=m7TxF=S9s~X!dPSBW zY8w-VX)W>0U>q| z?~VE79vBxOT>@%K2Eczw?(;|ZcTJyvEWV{qsHJu01tT+F6LOr6*q1y=R$A#{} z&B+o75~CfPd@CFr<>*$TzwUOG7>51EB8ZoO zkH&A@41iDWY&oeDYX3<#@ejs;0SXMSGzBnfQ49YbZ@m3WXPuuwwK&QBB^UeB$5BVH zbrwG z42Bc%f0_l4-w*T3UIbl`PWLT#J)S8r^l6U5R#C{kCl(5=R@Q?0bNu>s7O-4E|BOP| zQe~`@kSx3PN+Ku)C!oO-B#;lC;IlNYop_vGW&eSn<$o$!gC`&`fMk$^A9(YAkPTH3 z0`X7^VGw-kFk8-)q(Cm>mW~xuI+?$ca*^x?jvGCYNjOD<5N%}sW5jAnpmZGBDzzr( zG0%vV-Yd}8TdZ6gmE~W$plSFX6p3F%Yfz#bPHFA%vj4FFf2W|{5Bc<{b;w=7Bi7ji zsMHv%b^}#zh&sUlK1K z+?zFo%bQ#c#Z@mG6Rlvo;bgt;Cxfe4810|T)~U~#c_8++hdHOQ{;l9I;6;HiVGX^lCoj*))lRN2a=#+?G;)t3 zFYCzN1_;;vnM0r!lVi%ohMaGp0RfCR6#$;Uwe6RMXZr?_;_@EO!uF`Bg)L8(@?8Y(m&Uc7muWh7d;}l`gnS1e3mWV46xzr4WRgL6GlQktCu4Jwl%715#9Vf*T@5# z?`JrZpCJwb$jrC_;};3XF?3Od_EgJc4Uvw}*eAK9L9}L7_slGd>^fq*n?(b@i-atM z#e9*#k>`jIg7^j^en!NJm_U?#vJoR9#u>?ls4q|dKlc3g%zfVt)B0COEt*J(c=L>h z23fpBLf12dn|3p=AhRk~JcuVDke~sAX?>-2s!*Bx|4&@nSK0cyH?ganR<~ruRo$8c z4w1uTSa==qfTIc7ywNfFt9^V902UZr$MfHt*3Ot7HE&h)()=|ldjA+zsf1Z$YzRKc ze2@_&WCUS;|JSL_+pSZ^YjwT1ms-Q~ zN{i%r6UBAX0#~M%>GrL*2=ZR{z~K#!vN$~7*&sP1<9!hI&d%;&Fj!(ioLTIW{tZDs zpYEIimWS735AO^q;~hx8IU|F+lQSl>KFD5?u|cLF{7_k}@FS(Mq7P#Qk^JxPo4($e z({ib0#mLTUM@;|U{R1|hhE4PU|3nFAF{J_Li>-aUqy@LSMGX8}LoJb6PIH{y-v6%~ zJJgxkJ>a>oaw(;V1PS7bNRS{woX77TV@r?tWw3p#fS$k$D%L7?1A-C)0AR@Zl}tzx za^47ET12Q&M7RiqPAno`A|hEjB2xjPP$i<;P(+gvh*3r(4mpfLP=F0Y3B3DO6#Ot( zU6Y;%?}tVjtKt3hz{Xm5qfb3ztcAmW;!Q$9s}}nHAEi-1CjBSo0)5C8u|coIEDhnSomWAJ$3&ZKg?EgpB0wFnP0HQl7x< znZ!u`x^>S||I1vFiu)Ig^)ji9yxQk9q$H>?PK#r1E@PA3cm@IUn@$qVzUUYvwGN{#GAWmRkIN)Q6VNtxfYq8wr_c&e1>kCT>NV?&bqTPcPY>qItbW# z^BArwc&%IMfU|UiiL_WPQ`)pV2Z!um>ZT^6WM8g`g?G7fgnNPJFsUF>ADcVwfyMSV zc!=4~rbPq6ve9dv)%ko%2oCM89rS$7%MzHX!f!($q80=RmZFP;(MC$Cb&q3J6nWDv z|8c|SPk_Y5?oHEmqjI5v^>xg-MyJ;61>HP}gJNiFvGYc^U;lV}9NKHq8gmEf5Fk{{bGeHgNp@YZg%s^UOH93-ba6o~SBkH`hum&6LnrYT z9^&GDRWRA0Tr&YS#K+>8Xpe;>mqDeK-R|~wDauV;qnND zZ7@K-UqgXC!4a7d-Anh6AD<_9G<=K}Ohi}M9MzU_h+Rqo9j(+7l6|7ho!QimA#eW; z8V2`bJ0S50IM}f0aEDiITDEBC?c7!={f;SG87Q{nCafvlO0T4YSqy1HvER9AC;E(u z`aq~g8T_$|4jyc;A7!Z zFY+1tkbwRiQQz>GV&@~34DEQ~cM38;Z^#|a9QjI}HTfgl8N7DU9#bwmE+9^G7Y?}|@`yQ#FD$)=nka@PO_X~d+5b=DMJM$&|Lc2r-tfnk~LR;-2( z`$V{D$p&X|@J=K!_^W$lcfau)n(dF`I2ms&Q=zXkqzyz?uMAe1jO(KO zE{h;Lh$G_jB8jk2ocUPVBg62s;90v)i%ZK)X5v5;VOZ>&s_FH;`odN0^$M(d|NfLU zlzS!;6(Lc|w&HSG1xqo=oR3p0WS_qI0aw9mp~Ym7)q+}{4Q39hDORm4`fITuvX{`4&{@Xj-zMq+=PwkZgT!Ad3Em` z@uNqAt(z{DnmRJOwt2_q^TY#ti1qJSw0o@667{M5`ROVDOI)y7k6kSiu8L8;JX+y= zViy9p&{7_*WTt{8vD?kYm4g>8e|Ys2-3Q+TU~^<*=Nl4NwexV(yxh#{O1z-XICf~f zKWXyv0bNAys-We0$y{Xxt814WimI}fSEWs^v;46B>tw!h z>Y^M}4HfjRN;+Shm{4V2n zK;(-B_$HZTC723hN8L}qs|Z0n_V3RIq#vu}?8(}7_4GaB=SwqBefrqVmk{sywDqM2 z+CKLTxpB#voi6Zu4({q7W)d->o177qJ+8qSA!Pp{2}9)u9pw(Ic~_Wo^TAHJLPdC~ z<6J^6v|#-Jr>VX1x65+NGrxSe_L^|W8wu)wVSm^;OuAA?7}Q*XkML;?!SFA z`$o3aEwx$?+k;h7=X|Ph$6>a1PKOGjuj1~i^Z!Q6l4mj|{jEoPWv|kkt<$Z128Nu- zzh<@0c2L1Y%SEtqRVVd`57c`x__ZZ4dwg=B>n4q1{0byt|j}yov}B$(@16%BtctTaaRVXSpr7LS;e$%fR)??=OAPU|Y4$%3BT#8ruFE(lI zR&fibLqoy5N8wv_A8Rs{5FtE*D;-o`!mC%P3`bhLqGT&fDiFEQfssogk4QcVj$u-{R5!QpP!F(Rz>!OU-s4+|17txXfd8jEQoeYFfPR27Kox*B zhQU|{dwJW>fH*i85d}1erV)r-hBHQvk`(Jri%OauaycZOONk=>u>*xhDlpnuBaAo6 zXs!19gULa&9dXPYC!8|hSvM_q-#<3!(xpweZacj2(oS!DwVRpQAp~K@d&Vs|698$j zct97f*daazBSHkfvYLDYK+<@6ddXf_8BY{(tfRSN*{d&Uy0O5(HLl7~1NCG77XPY2( z3?Tn{-71~ErG_CdE#=Zo(tg?X*(nef+nwg4aZeO~QT9?j;qHy*Y!7s84L%X;4Q!&l z*~B9OBHI3I6CL^LC5$&OjzYNcd3nU{JOl}rRj$8)y{iXXkRx0%hc{}3eOIz=0Vv6X zmk6Z;F3JiV&rtHCZ43{mB9e$0={n@_Uljs`Q`=l`juC^NLWQ#TukH~7>BQ2Am#DX7 z>7r!G7pqXERMmzm(qx3eMj5Rf1#|+sRB~7Azr5U@o*4ZC(Vk6Xcwl4;axmkuRw1|Hrx;v^`x>HW2%tt}Cg=5s*9N^YT^sw)}9t zf1YisG2-d-(ZQ>i;mSXd*=jeF6V5*i|G4fx^3Qz0yYeGEBE$>8Qx=!snV`bAD`WCh zBrh%pF?L!^znC^NJ-*F#voBVCb57c9JpjTAz;u%kT!nO#`7)6$WLAdE$voLo7N;eM zzVN|2?$`=M;VV3aRj5GB5cMNst2iijrks383YaIkOIhVkZi>bB7`rrfY24CyOS4!S zU$LBx1fUv?K;FQZuV*ntEAfDf%q5Quo^0PHQD6|oh*|&v2sg-4ins`o)Im8jlEaEG zWylwK#~}5S^2UjMn{1Fxku4~n;}-ZjaGCW7PSz3~Z_;!cz4S&o8%f73K=eZ>s>2n5 z0>BuRA_k+OpG(f8eWoga2i?>ybPxU;M?tW*2w=A-_PiXUEmcmV_e^aA9$59FgPwmpR8 zgUt1Rwzuqd!vPPy^wv#B9JSxy+H`1TvcpdQdF+Y3-XJVlu^}WQXUmQ=7p@ePdg#fQ zAAbP?g$NZUT!a%2I_bHy5kemQ>54sNqhMomUI=9}ZX z-L}VlogVnpckd&>2V-3E%qbru!e>uyv?*42;hlZ4#s*_uwar%Bwc}6>3oIT!Yf>U& z5>D(na3rAOLCuX9cmMLF6(pEOFFvY7ixeeBA9}G8q)U-1O}-qt@+A4$ApH$6*g#!M zG^kal-Y{i`^H$32hf6Ly=YosQBgmME03c@q0KEhtCjs%d0QEXcvQAnFd67#ikh?3o$g?ClTz!AR=)k^hPpzD?cfH$|RURBuXtSMzz$>&c_Rj znrg?bKn`Y2`jp9?Wf7LAS1j{quys4Jg;1iFHg5qcocQK;JX1c%$5rs;CS0sD9jU-_JSNxcBV6Sl=Clq>n^C!ED z#CeyLV%04dvy$MbC2Vzu9Ex^sIq(uGAALCNI6^G$E%x-3%N25#W<5pBFLfXsi|gCW zW|4saAC!!Sr3InKq?#rasbp*nxF5znQTNBzUMT>Hf>fU+{7?+)Q zIYvHtT=G${$1$}bKf3*&W_Ict%lYgwN>{j;%q|az@{1)F9QynY3O6Bzi&WM&!AovR zX_eGXtF8luV)M&HBx5tf0%ht?p!FB!LzHnaeTg|^E^sn(FT{pdZ4DJ2Z`?_ne;$|Z zQ(C0zc_%zfJd@C@@@B^5B9xvQgOxn{#*eP_U|0&;i%nRw#Oa@0*)<6!1Dkt;6)*NwX985TuM+iEszl&cB_8ro^w<0Z zKonzRsR5u3P0lQ@=L{Gvkj#f6M=CH;X|!pvj63nvzxxcN^M86*2|>Exi&AK`%Q2bG z&K^GdG4^!Xg$R4%V6rfAOlotJK%TwY=iM9z#;J;;HFPJya7WYIkN2X{coL*7UD6Aw zFs*Oo)^^l+6_1^!y?9V{Uk9h$klo>ndXUU@iKeaReVVXQRzD4;kvoxT{cHN*1# zF2X-}pS6OIU~Ng!xqsB}+fvDI5I-h0Qu|`vnj4wB^`!I+Jyp-=r##EszJ3qk$7!;8 z78AYfjgbFO$I8jwPgq^aXHLqdl9sbUqWf3aL&|0sR}l6S7_4w{_Fjvv=dCicQP@ALM25Vov#z<$pR}%+)BNB@2wxmmzwHB{;c4I&9IT zJ7AlWaY#KQUtZh*BuP0aU^wxyzk(oHE};q8T$zA%+;TP{q;^lqq&Y93Avu^jeM+4m zlYh8(*dh*`AvQM2I8QvIgEi^CVR)JCfIkG(KI)d_ndsZ86xX2A)QlBPKK$-6F*X)q zSW9YZ6abZ=2UPmyqAQZA&zl8Y-R)t`4=>CGjxwzqublY&A!!26%FIE#Ox8RLO6fMW z{Ny#cmpr;f&?=u}d0Ui$B@{>+)DPk}Y5O0%-Mf1?#2jUTG^9}pZ0C8}Zl zD3EzrjvCNo>LJbWh!N|&lE-^tLm_zW$Pf9w9DTqRQ>f08Gt8n&QJZF`N#~YOcyIf- zKhw7{(+v>e_a6Mk{RVurDU}JU(eht?@T>PNiKRvYLR@h2K*f*g22~!Hgh2tAzaK!o z{e7u*+2-A6Pk;5Ou?;d(8G**QOm)PQEPi9)jz7(hBAyR#L?vQ%aV0 zEq?$cJ++~>J{BO4IVj{OX@j#hHO>r`=z5}~Xx&0C*q7t&W5!)O*FgmceKhkdnPZ<^ z$kkv%S~Oj4DgAfDqEVo;E;|*F8kKd(ec9)@vhR!7{mL&nE{I+5Jwo-kElo7935_w; zH8=4{M&5RBE*?*nlI0WIAGPM3?v>ZTuI9p0U733PqswylLb=~1(Lix(C_HoU_jczz zmwWk~>!fun245Y`x$(qvPw#t6oGtbDX|mDIo@iv=yTw`$uqBAy*^(Nz{k@UX|NqmtjL0?~)1<8P?=Xd_PJGzy~|%KlUFy&jtwz zC;@2ZfCJw>=HYB9#?{%x4kP{f$-~U=wk#^VJ!paXPj^RmPa3yQ|GlYGKOY!PlHMh$ zuukcY^VE~@0Tn7Q99vei;`hjpMFUX_A@wK!PdyG68I4#H4Ze?6T-G1Tnkw~Dx4W}y ztMZO1*Gl=z-)$-5!p0T>_o8Z;bmj5w}4M{c8XPsW^tar!U-6Q>)Z`2NtDG+)WG z-5a4#`Lu3G8`!ap7H+uGSBdX^OLojT{{%g-^(a5I27B%WVk|3#%a9S9JD>Hlo5#?DDgS23JI=JXu@4e@MX*geHixJ z7)<4w7cE*aJ9X1gM{h$~>KNK&-@0SrB1D7^d&{6;OWH;~iF_pY&752ZzE#u;;nsU&ZHWbGC z+7N>5Gviq=h3ES4*!a(q8mBbznwCEqp^eBDNd#3Sw1!q2mCF+-B2RYjB8X%?qX3Auxx6yeFitqR;x1B;kbMmWmFEhR)__MPHtvn zoNJ8Bd(B>QJ67ylS+$b0+f6`jQZVmp$5gQ_)G2`TjX3XJkam{k=@96Q^ z&^&{fb^4TEtZPKOzYSU3?aARpmhup}e!_+7B5f%}7SXEf_j3fWX5`Q;Hukk4mJUs04l!b6G=BNS z@}a%>v9ACKC?ti9Y_sNleljULg+{pEe-M&YGKRxgU-~}=2q+|ljM#sEUF)wY@EVsB zqbLy&GaD0W)NL7`VFN$cr>29KY|K#hwBJ7#)Ed$x;T2&Q9nDW2rwiUo5g zeBnjWDr{zmTWoqP+1f6Cf$){c&DCr$fpu-qKA(6~A$OJuFfmc>@aPdg_&JL(c)d!$Gu|fX0=I& znDZX2;1xZ8V9Q^)xLM<_5ZNVCk=0!xU)ffvq(p2uUxgbLN*q;*qyl|l(9uivKg6Y> zM8bMoEouVXvtmhQB_Va7aEc(lsKEB+ zuTScqo8YA_pWip|iap}D_|QrYQ@DAtg0iJW+K|4yzy#U9wc>O;F~EB1&Cr^Pf-W%; zNs<^ACu`-Z*Jmzi)<32V*W5gv7Y%hp4VqL&1-#moU89D&(JC$WO8Y+LVe4)n=E#Xq zu3~JLKOReZFtGqzz>3|^s$7iKnu|I3^5(?~Z4xzTsyj3whf9t3oA$P6y$3gES4l(p zFDzw3J3EG=O@nO zTJ}^p(HyQP&DrKb^Q-mt$6;bGjAL{n>?j3TF17}Ke#N| z>ur;2gPQU}OzD_e$UVPb4^p_$Bq-Nd&>?oGYDf&LChOIzk7jP!tp8LS_R>?iczH+E zpilLxfUaFhjAqA=rpcSI?!W{14q)KagXmuFvlURE$Y~64_?X~&O#^FSCyuczH((v+ zVh(Fl>r$mYf#|i>JvuOwOa4w-_hiD*%4ljx<`#zv#@;@fAmU_Y&G_O<#st$i$6}MU zo@=nRE76n@GgY^%9I%q&hzYS+jQcoRRe&SI#cZJ^BnHppmsGu>Ic|I0M**(^MOSD5R6!2i=il7pK)PWhOA%EMq*f-tG+bYEi_PSozd4LqP#sK%%@Ys zRF5zK#p(#1egPf{*W-F!4FO_~Iy-N7=PirE67zw^I@-;)!*!_au)-V1B_c5qQv2hC zh$AFM-ehtHch=Sj_iL!8wuVovvxmH1dr;Rw@H;OA7$VdC=ZklbnJ{9V_!J0od+@}d zb@U>gf%{un`hH)D+UGSvC7*w}c|N1?2WOb@|IN>)>)dmt$Zi&UEiB+{+C6lZID)lt zPc4)3n^fhEu2SGs!M>9R-_1J_60L7)HYA`Qag_-xnxBpos_Qh1b(n*QpEQhzwS~5kx zoXb6+R{Wok_r<`ZOOq{pMlOJI4XkGdaf6A-F1pI%9QMuA8~pPQb68jXMZ1iIfXyO= zMidva*th^W>I-Y+vN-JaBoLV_qVbjLZj_Y1rqNt0DY*&OGcHp|zV7C1S3Kl4e1u^J znOkaHw@+r4EkNLwD-(c^8~Lt z-(%kCtvk$blXU)Yfu~n|&TM?Va8?g>0C!`lib=MHg{pwHfv@;SC*mG;k=P9XTH(4$4YS_BjUZ9Y%YB&Ul_iA7;=; zz<|HxX9^3?&{$pI-qEl){N1`Kkw1j}MCcpTpRH;p)FDuHG+wuX=qI#M!w>Bbo$fmz zJ&MPh&Hp)Nlm zk&G=zAZ6Ehi|G675nPA=8~j~j{NPbz{_V!b4ZS_R6E<*u@A<}^D*Oy~xYsa8TgP|W z1yvf2pxWukmR3g=>3~{>t4R9}*26U#eNv~>r)spYfh=8$EM3yR0Rz|JXXR(-cfOk) z?Mg)sBIer1RM(j4@2e`;fPJ+BLRok`%+Sc&^WR^;e=uj*97;pmhu}C; zJA3e~E>2h0*QO#5-LlcgVkSa9DhJ^~AkpM0Un{)N=(3K0Aor!BF(OQ+Gn*$n(I@}d zvvkD(5~6v3!)=XnfH;p3bhpNvFUf}K^xK8B+oL^Pxag&c#;_T*;TG)5UH(kBe+Ihq zpz1!l&*gKm;M0r|L3gr9Y`rsoZ2d9%@E<#qS77kF$UXDMJ}1_)dC(YVJgF)|C(bwC zH?__<5_}r{GWu$d0p!d$zbxw9KHb3;3eKTr>{yqL541_RA)QW83sR|7!plfVBfgR8 zT?B!=Os)gsl=p@O*fNkhB#>1D(fW^+4toX4l-OgK5rFbxW1b4y;DU5Q5x zo7>X&s}qSGy4GgHwpdKRy`}kneL~zozXm!Q?2yN7b!M!GB(d%elg-kMz+GN1+}(se zs}9ScIE+BiFr?OoASedIP%I<|&Kyx8f+>}l=ZxANypOD!_vY~^nd&|P{Yf|N9J6WZ zH1}0My7&vs6k9E`mu?hs*`@$$<9=k1xL3wK=_;06+jP#}yy((`y2R?$3EDR97#?JH;kCp>RmrW5y+&!BCe3 zC%UDuDDWxifAcEK-tngPXzmPu67Mi&{i&P542qAmeb$&&yOf&te z2kQ5z?-%7pLv>#?md^Y3rUmT?7POI#tH6#SstY3Fc~t}0;c`IyJi>ey5rO3)z+ipN zb^SAF=}F^xzgkawZQL9`8x^=cjOnW#@y9Uh=QG(z_*DuOrzhX(QebHTEMgT z&|uY?LGZMglT~R1Xf9qdXg|fwi<-1M06sazU!QZC|L`}i#os)vwI2NXsvUZDOLPoC;zg9 z$&3rXTxRM~@g3-saC>Lqt(~YyG^{Xy!5}QWDk6~_^bBLJ@P%{ z+-!HqcL16I0YC%FbyRIt+LK+!k%JDcsj$ne!1(26ngogonk(1sV#StS|DXUPruw=~{FAX&jqXuOa zplCW_Za6rk8T5rAxh^{WYEWIz0dhL$avtY%0T*%+7jwz|QVd?pYkBR*Yk67@@UkV_ z0gmS_fD|s+vhoeR5UoJI#-q0zS(`FiC#~*`TC?k1M@M#Uw>f7s#U)v@0eQrkZ}598JQ z-iX7)r*-@!0E>C?JjmX`R0WLa|A7Mibu}c925s`PhI(s+jC+st7y&T5sEHBi10FAu z8AST?fn0*dDfmSI+2*G*wUYyGtBUV1?Jr9PFX6A3As8p%l(bwiE7wJ`E6M!&^krd_K`8LUfWhg&Q+in`E*_RVM z8Mf4)klhKSBlCEc65~o$GUtj{0G+qd+C5KimOU$3cl+mB?>RQ^S&e5R!Icwk?69=; zyg#6(-j@E6j_!86xtY7vn9FZ~8)gS;qc>G|F zx=$4Oeq@*@0NmX5;~D^X@LBx{bN-L-!{_xKz(WB5f&aHzyfYf1Z_g$puD_4SnUv(+ zJLp|#V|k*!VeBO#HI^R66%9d`sW?%KK@1$^#kv04e@= zQIe3*rY6?Aj2d8uSH7EN0*iuO4yY!(?S9OrfJe8GbP!3tpQiHfU4xn_JPED0PSWE_ zszm@ChyJA`M81xWO;@8G0Ye@X!5P%x zV|wkLT^=f>`J34^$t;JwySUPIp%6AFG}P728IOzw4Ts=}X}(E`*L1(K>rJkqhIbo= zDbTEzW+G4#_l`$o+%_nTsO}<>;QRu^j1Xc5t#${YhDoISyEK&dj8H+?-z&jcG=~SQ zg5LmGX>sL@P{;46RSrcLvU3A*>6Atz5x}^#MA1h$dbw@4-im@xqsnRD8aI{*={~{D zvCUUp79SzW_!hBB{r}dC7Q;`nX*ugjW1G-@%9ETau0>|Rfjp~MDFcCJw zAJ78F$pja)F`nF^5>nt39D$Wu`K0up3;}W`3Rx&*iEwWlg8|r>k3lw;0NUVeAr#tL zD4~lj488j;tbojK;W)+F!sD0vLxe)IWfYMit7G zYowwPBv>$&JOiaX!!diUMnjb{G8$;}21e$UR+L=xF`6h+u8t3d@TS6n*B2Z27AR1e zis0|#CW8bhQKv?rR86W?DAj17zN!rrm~Q($Jv2vNk$4V?G9o^Z2YU$+^n6Wq`brl= z7t8hle<&wSkjjdD1Rq)#b(SSQ)6%hO(H-4T;#R1S6amC;wSejpzHOZ)QMv-9jT0&L eBb9VZq7e&Iq_9Y#R*7g7(M}RH3Tlx=NYo~I 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 xNHu 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�gn5oU66IAAaqF!dp_U)1 zBSM%M97G5p7`UPCn&d|a(8VT_U z=_GI$Cuw9YP9pTehlfi11m#0=h}W^4r%m2s04chPG6M26nRr=26A_(F6!@GIH0c;x zXd;0WylkS4FeO9?<0gnhJ|-Dc6DY>kERNu(BOVO?1PonH4IxU1VDT;i!VDq?7cs>0RV^p8@EVrVS^qS7809(DpIO+b_q{8)@89fv$m0?E3AHX<^Yctlh5D2Oe7aK&ys>iPjiHT9_17* zOrZ_B|j+=}jV|F5Hulgj*ls9Bnd}6SQ$F1F@+mh=msy21N`fjqPMgjKs=p2Fq&t zlc3eC;GA~UA82RXAtxDWXXt(UxABa8EtBw3f}cE+@zR|n+}ewM)Uullt(8sW$aG%h zZ>r@Lk{QCC)X>IMx=4~P-0EoIVVer=o$*Cl|76n zho{)U8T}U_qVfVW$c_3iq#q|`CGCmhAf+^6;>6$t zm9+5~YxMwK$iyN{JZGrJ&w0{GB+M#yP)L*@^}2&PT5*wyNi0oNvyTeSql9Q>9C^g^ z5vQrrQTjE1aR(m2iA6JU(up*^N59rRyu;rpRfK8bZVvD_JE@{x%Lox>G!@kHI+NIxpIPP6rGg1pLZ!n&4&>}D~WIYl<9I9WtCajd6;RxBJe z@q_N>G@o&rGc1w;x6lZ-&OTSzGo*J+0M7@VFrU(%05o(T0PD= zg##3@kgXim5p2~$CecQ#mg~o?)>78-kFMe`N;JX=J;jT<2dBbAysya=aD*jHquws2 zjRyN4UCU4Uq>iPxUM{f&wL}kc+Ro;`d}U81Kwac>{>|NyGyI0bp28|E;BorUBK4Hg zO&0K^%(6%DhyKc&csMO5>A+w;K_(rziAwtDS(;>lW$0ZxLBjG9SL+fE&_Dw<9Of;? z6Q(x@u%(*m(vQRZrNtblh$#Q2KN$?q}**i!hYRjte4xlL|aLr)h?30WU`PRr0LDH(%v3Un0=Z@fo^3B@ziL4HnG}R zh=)qKl!;8Tng~*AUrP;XMn30s2Vdi-N+)uejAkMm^nm2jAU`pIVKi!^Op`wPyzbSA z@d0t9uvdoR;Ai^FAnCz0dgw8J)4%m*awV0s^dUzIxI{*3CfjsBYsr@$`XU|3ktrll zD+V*k(z)#8kkx?-FuGBXrLQxCcI1#rlIH0#{x;T7M}?G17P&f~F7#!l^dM1Zl1q_3 zrYktA=j0NaWjYP?78eF#yEi$w_=0oP8MDZwyY|CD8zw<~_9P7Iso@eb^=^u&vo2*b zzZg5{K?j-3aE97zDdG^5v9UFmaiq#~)UcOzm{drO3}K=DAKl9~Hc`h8o*Gacb!z(}=g1Q%nOv?w1LC%yqg~Pmqh7eNf&z;^5t9}Bph`)JZHiRU%zBfiqZb`^CjHvXnRv*ljykZU8?vtHlU z8#$xz7$4AwbTJr1CVh!vzaEg;GMV>vA9;2m$?TWENu-^=L?bOkiIp5GnZ*>I)gL)v zjh7DWQx_Jyv`(%dNk%hRp0z)qig~P~hz5?4g^TN1C=2ZO*u`49mc!osMwHGyn_=8RiF$Pdgxt@?~dCLAtPjR06F*wgODmkG`fC>)L z9Y1q8z;CS9<7C?<9491~>oGR!Fv=;^TD){OA~JvxnvR1Yxspzu+BooY66mB?Zz9a1zl^rqQ;L(Nq=Q_pn>Z*Uqsg=X6dxA1 z=x$V2;v-wGlVLPiH|RS4(p&U%{lmONE|-rVuf5|U&2wnLSDq6O%iZ1Ml!H)vWY^rFpqY6T7P3dd-Nyf164RR%H<$=?4g+| zxeNzgHIF8WbSj0Ek}d9hr`m+{ByK0@iS=j6(@Bj}QUfLna-xksa)i zT@0ZESI~vQ{7xfb`H)N!xEeo&Rte4QlQlpJhbiNb-HDy_;1Drb_B|Zoh%UxYiP4kc zOqX`Jh_mZCL%r@Iz&S?p2c@!(YgxcHst7nY@*HdII=1kIOdttc>o~(E8G=cQeH(GQ zNeel_PF^O5W`3q0Y0SliSMoT>DSFb8EUBO?ZtX@H73SB>WrQxL0>Raj(8?4&*wf>s1`5Q2wSJiTW=( z;iQRr{IZ7I;@DWnyzdMKelPjHa4#zuT(vY9g7rzRrFI-E|#8vW@(dv)`K zOfn{s&p_)Fj%B9a2}H<j3FMtyIyCUWOq<@#;Y; zXrq91S|}rhu>MMjy~fY7Sda|kId74>;K_49o9OQml zDb`+W-A}NazqM=#cSUwS1?j1BZM9I zuz;I2UWTxfLyV^%CuJOU_9DtTf&-=AD3u#!s@|ssxb2_y8(nT(OSbe-2L^3+j2!69WC|msmoY~!Wx9Q8E)F zX_2?+PK=J^n0Vv}GZ?3p1oZc~s&l;_fUizl^WjNXP$GV#>5=Vpq(whW2+D}nK9U&rg7AGMZ zj3gPt5cbeQJ!5qze)$hUO7s<+L>v#xLb*-*a6orNH|ZzrG3GFqSq#HVdsfq1y6Rz$ z>8ETUj$)P&M~iuaTew@!l1VzhP)Cb(JzM!zis_3-oG3F%$1lP)07kw|yPWd1FW+e7$6AGL#QSrhfGehk?GP~y3vasT*^u5u9)hH;|BRJSL$9}OFavv z2T68+{e>F&lFb)iqfTfqN=R_XCk!E3FDHP~f{n^R>Je)>?{QR?(v3tjMfNaPU*|I# zbhLg?sXRhgs`1lIln3d9SM%jzEaPgUnvR%^#G-)_+{ALCvXBCv!lqge>T~)kll1kN zV!fWzRxkS_T0*tKf-G#svAVnIXHWaLkqk%+b%7F0b47 z=w14$y@Ah2jvloakt`!*6m6y@*)rKF#+!`srI-VZKU#)F_uDV&_q5Q}yg?eN;3ov+ zawd|lV|kB&`3L`FxShaL9I^{|oiofJ6R&f-Bs1Uop0(`Nr#Ok9pJ*U#J}QTp7(K5B z-)kbfsgd<0;nYv5!OvJKIceX=jYQ3lC6D8JSgHsx)R-x6*q7@_?ZoZO*BkA9OwkN8 zO&&6)c-IvSrz__`BG8yemIL{$54qUFR7!uJNb^Mj3#QV zT&ou|d74o&OM|*tc3Z`Ef-W{bF~`V%9f|TQSH_Gmzd<8QwLuD7z4kJlCof6?TeJ&X zIBD!-5xJD1*!CWd(@ZPHv~m^giJ^fY5h@T|bjOXTi{k|4Bhqm4KN@J00SqBo#?XZr z-XR?q4^oH8orJI@m0qNZVQi2m&GGsS)1`*>ToU<#vE(z6M>!r|r6(99U5tW8+2rMLsj<8og-ni2118ZZ}$WJR1$_ z6rHON5W`N!5r!TV}|oE57F0dF+Z1wbuqQv#BT1C z|LFlf)oa2(MLTJRte4r=QuhNC7<+=ZY7eQj8mt;E(2tCNix_v>#l{QGIgv7^n1$k! zlJq4~#AMe1qa*X}zT6@oSV_83*UP8+hg>2(?K7-4tBp}wU^W`x$QCWO%k^`6npP4a zTmGO4Lr)RqF&RQ86UZj^B3={0Kx7r;B}ea|i8czT)Bxw`Ea~(n9WP!CROZozIQ@yA z^|bN1ESK5rCXBLyE2-5L6w)Le=}98l#NZ@E0=8J<;VOq^-YxIZg-`S$+SE%|?P0E# zTlGs0@vfbx@97swd%27P`^HdL>sZUb>=(Gj{!)K8PC5Q3hJ0j|+K;n5aEV5AaHAn_ zNw(uJIVD%dWjeEXUp`>4eiGfGOXXhaXDcu3rTP=oWvX1w+vd}92ji?KnXKwLRWYk3un;*f(Pmm}x=s+@WGL6nW$Og{xJbzJz4+G(9hSHui&f%9wWdoP# zPZY63e&RBEY8tEPL~|@V?^wlgBU@gex5F#r5V?a=*%TROf3Kgj zlbhsP^8=#|KYch(h?|&54p-2dWX;lboZ)ZE2yp@a9!(ChtmQO~JjF;la2vl;EY~rB zWFBJ}8B!q+GEjT#DvrzZOeRMk{VQS|%C4 ztD)b>EFO{{?P1zWr(kI*JIp;&&TNiRLy$ZY@NySJ$Rt@0Xcd*L<`fSzlJ@*cDSqOK z$HVdQ0{lCR`S>B6&2qZ8!>iOL@Crk@7*h7%m4 zhBg!@YV)MKb{L2@OUs`HO*ao*FjlBO1|coyigk1^J5MOs5-37fQX^P7%%g%1P?lvg~64V6!)d)xq(3=eLv6-{lKn^}U zWYJkXl0m69=>Zyv;KV?rI~n+J%K+l^AQkv2(aP+(9mppB#_dzcbgp#;B96(O5lg%rIt4cTIL&Eg#!^>=w;unlVMIb*LBuV;D&u zUQ7^!W&D@m@4TLp@QVG!Vj~4GS9=PE1N@CP)rR#1O6t6f6L3rWH%#@L_6*bbK^PA{LMeOe0-4iO4k!q(=AaN@FcSW1M!9U)Vq#17$E3 z6zT(fzz-Ud7H*=w{LVOi4j&bqCuz{T`I2MQ5Jg$V_4Jm98BdPp^8=@tKsS}EZusn_rIAeFLACgRlz9AiIUFpLa7 zB}QDl$Cc!%Pm2Q9em@%XigM|}VCWA@G z#zr})4Fu^!B?0cCfNDx;#bOJ|c*w+ylb@-gjRxsMs*KQI3GpF0#Kzr>evo0(&iI5uq}nt1QcuY-GV!ukzaT(g;&933gs^BNjHP7+ ziOOaw39+2XbYL0BX(p3mTI5;sNz^93;jHYFhe=>4DLA-aKO@Xa+&Hu=zfr+nMv=z7 z6w)G-SV(8u5ysLJ{EuRpDXDnqjGH+Ar6)18HwS2xoeYu`uBI=-N%m_EFHwwNpQZ^5 z53vOJgI1z^L>WQ)T?q0qo^)fg+=;1K^vACgC4pKE>UOGi71ba=GlC?Z!HdXuG!bS! zwb)iXZPaot8N_fKx#BgC%dbq3YpEt7lC1d>FJ%lN!9FGrX`Rev7j^ateVcQ#id?+X z#5huA1fB6o58^Pa3SQt09VG>?93q)S?WGO0;KwE^8>ACHok)lXyQLTLa=V_!#E%u4fCXS}#CT0F0zBXIy&IB?-Yun2KIX}IwaC5j(6F1p}CaNx$lcbq54t+XeG zZ>c3HHxrLjchH6<_mYI_VH5{PX~kj)ZVXOh;3SR!K|Mq)9=V)2+-xC47#D3sxQq;3 ze99RD%pn0cr!X+MoODFL=R8P9T$nTvz{yzr1ZjtfivWR(psAM;Bx2&nz+f{iD94G# zO(z8KAs7_l!bvi23{Ig~%oG<<+BAZ}C_pJfG1v^aXd*zA7jfex8y_aA7})xr261o< z!J%sj5|DYsBl;K-9Lzw7Y6yVM02;-OlLBqQCSDS8Nf(Jnbvq$UMw5z-7bn6w+<2*` z1&gC72A>c?xnPEN;KpDdwbcVah79aOiP@AaTTFB3MKjOe>-n?5BmC!e%g0f^s7RambydA|w++nTZdR z<3thepo|FT=z)vvgb}Ua2vJ(;frk?~f%|BOTtNBdKHA~ZkEtRg|Iuo~x{Y#78N>;q z6ws5fEF=L_r*o1pcTo@afAtsqlu%5Bd^+IJXK4Z6r-q2WPZ>cTq8bN9bi}QR94DeC zOj7mc*)&D4X8$Hd}Gau6P&2^anFplltj3?v?>{7zqDbrvN=WB?9SH)CLR1&;^w932EheYltj3pmv1pC4)@QidLPF|yuHg)N5H1a&@B=Z>OXqLChBTl!` zK!{y561?d5okIc5d`>GN`jd>8Rn(&-6D7(J;&3sV6ugWh5hrg`L?fj{P&cx#+mJm_;6TqSj1#TuDHzj!S@F}fC^%sipa|%$Nrwj26rJ0D{Pcf}@A{`I& z@nZ4^Em+(`SDd_$4^ywBoHn|ViigRh;3I=lTGYz{>UabLgCnHkNc_qQqlj;2?w&CJ|GvCKiJh{6ysevPoto=kaR*Fys{s93+vB z%a|?KkgAJFq?v4dIMvHB{OY9@%Xp00q-qespc4_4Ep)-l0xD6t9)pm?(VaMU(L{vR zl+h}4xReh1KAWi4OwMC*fNVVYh+30i*=^ zWh9fRB&3(Jo%6;Td7J_ID5JDi<}gI^8HWo~n_0eMKR4Xo^6!t+x(7CZXuxMTEHk7A(zvhSQ>OEWjaIp5s`1XlOa^mN>sn1 zjIi{JImVTt*#4qh}aZt~3p1&xflyjWY zGulEINg|h@^%Ny|fbO_~A9M*7Ji`u-a*_(_X+&t#?d;_=s)s2fhDKVLC+!ejrvFgL z0ovG&mpYo6$x5x#HEd@eJ2=id>Ih=cn}MWp1MAtR-)KFpY^8!mzMzOIIwCYNnEqsH zKHqSF$rMt^L4BG%9OXxC(>p1mkPj%Lmi3(EL-lAWXIX+xfF+z|k1nTbor|1gdx*sd>ej4FLaztHb>JlAqSU*$iX(ueqh13F0G(bd)$I+X?d zDtFMAsk};09Y~0Bd#ygpH}*j$=yK~pU56(!jmKCWI;+2EG@58{QJ)Nuy=;^93}S{p z&JDzgC7rZhHtSGcwa@VaJvAi5adIW~nASJk#x7YxGai{QH9So$XE-2NGgfBnAw*9a zcT%lEF(}|9HRR}7>pW$I$frNK{6a1*oIr`^W68iYmeE(Pv7gijbTP*`MG^T78Vie)es zf5s(Dmvv;4MtAm7U>qf#CaGeMjMv#5*G64~2ZL(4LWbKD$wF`t#K9*-G|U+B(rjlk zi1Rv&G_tuJFNPiBPmb{#3F4Naj3rfLNx-M;2vVXO_>&k(VjQE5T{Kb6vt-eMU#Q{~ z_mjtPT4>}?eSrjGjd?(#-bXSa;(-+1E2HVmt++YOS`w+36{Jy3fRhyJ0Mal zHvH`B6DH?8!;tfkbIyXOsF)Lim;)$c!mQVZ;oBeqPeuWXdRz2$UlA(?klhNu^BM<6`tCN{HYuMv|hf5&q^* zxsh)AgjQ2yCXr8)ZP2ayGZSPiMHCZ>-)_L+ta=C|l69ox>XSJ1)$7URgk4Xa?lN^$ zQK7Bb%pN&H1c`DdGvzt`4+q&Ji|EZ*na(hoV#_Jhv(zyLSMQ@ldKia9G8n~O(p?ww zr+&ary3j^zu6=a76#D&3tthDtwsfmqJ*KB>gZYd8#&XUUQ{ zb0gWLyFXJ*t@ZmHtd&l8omHrkXW) zDaGL+XSI+js)#0nUGfB7=`Pbz(pX3a{p=~Wu~p77iObA7E@7~yvY(wYpU#ZYci7EQ zO6g84(=n(Hz|yEMkk3!1h%St?&k(0ObT_*Zyo9Ki>#=y5$a&7|cVv)e7LqCLXrPi< zbC4Vc@jYpjOB+VYC1lV{EIAz1(@u!N_{kzd;&@6N+M2%lBOUcy&QapD$TM;u$0=mD z{-v|2lr${inj)QPM;_3k`-tb98Am(%X(b69G`;9Te~!>VHDQb*-E5URWxT(hzT6m` zp~G~zXS1x4W;2^{+@+n_#|~L6m(aroC}bUp1c;;+&77hONo2?#qN#SfvynMk%6W3- zGun`&k)$9phD<8tH7;iY`za!xdALN&(_BUmJ-`w6QA7&SW+ITJlW3tqpCJ+}D>%h! z^D7aw*!QT%D>cN^R=&f7SFa(G77@AwuhW{|#8bxwtF%z5Z8^aq=WklmTkc^vS85(b zoRW7);3Q)RP|qS_adiWc6gVM9GE`rrnt+TYl|)m=bh#(g%!}GqPSBn#Q_g6{Y7VD4 zYaVB!TxUPz8~sU}DAINMx-OG(jN=zwz^ioUgg9I+mpM;KXHr97>wUUS?qQ(ZZI*Ex z8sHM^t60S6vgCFs|9Q#mK51QrTBCeZKa=1r;Zrb(@Z=GB!l|{ z$2lxxxdH23MmDwlmjN=AStOGrV{6&R-?EribkfBnNoP|)Ym&|9^k*FBNg_e7;RuBiP8XS}=O`yk ztH{!0b{UpN^E6#$pm~S!JWLpk6mbumr4LV1LkqKL&}uH=lZkFN2Xuky$~d`^h4=`_ z7`$|oH^`zpiwMyuh164}Cpe;8WEfY-bqpttER#>XOw{+-$4>c(UUZfj#M4gK62wP; zN{Nu0NFa-RQsrs+oD|~pDe?)@3rk0Po&#)=Av92@9jU<28o)A-?qs?DaFiW*h?5j4 zz)uE0l1dvAX`#VvB8P!mjGtO=rUBJLPH;djA(>c-pck#=ES6}7QBDy{Xp(WB3A|30 zjnIxv5QlKmbsqbvvwhgfHhGr-@$w7(7%S`X5^d(;qX#z=O&nvWM05p)a6ZBy+(-m! z?_dXiGLd8Y87r70dA5LWSVARjWf^Z1Mo)c}deUSOS@hB!81}M|652A8AQ^fY$2jPH zif6e`m(oBRoy}?T;F@rE2Gkt9yi$Vs<_Ma^CVpuAqBLhx8xJac{<~#MLLp3EAtX?!ahR{ zfAR&9T*fFFOR{{#Fp{{F^As=uLxr5i5~;)K%osU9ru5XGsMjy(NE=GEn=YbA*V9C` zoRD}dbE%|6x-ynYT!oAA#Ir;W2ELGXI$6KuPAc4xR+1}MP)~u4;RRNhm*q2V;BmkOz$yj<(N(plbGLD(r$bN~GShDRqdXTMlv9913nJ8^&#ov0C9(Fb@H1jQn za!F)3+05iL)m%*lEqXWg1Z^sLx=#qGnam}H=}q)uF_YekN#?& zrN0bzSL-res-5tWEcelf5aKxdY_9&P-`UQbWP}n9DYiIo z(1Y%hi=RaOl?xP7N&@woOMs9*#&$~BM?c1}pLSGgGxeysKv&}Q1jPhtLmE+1&tTeU z6x;EbW%Qso&vSvJdXiFNOn)xtYN}|WTt{H3kt^gjdU1+9WHN|L5oaWqN*DP|KG!9b z1KqU}p~ej1R+3!HudI;CBonUTIMg}EWHf#vsiM7ZC4yvvR3X|}a_iL|$ImbUg|-9#~a$)LztEaT|uR_kZ1 zVkvRd$qpiDtskP)8XptrW3D8O);dGdi05iOM^CoWNFyuhj^Ac+h(@jFD5sqDv?sze za61F}m41vc2jwamuF3kS{$!tFIh#xlH!_xkR1pmAWHrCr|FU0KXj@jX+jx1LiDo8u zlWtZqj{lNF6S+KuAFuw8T&iRUvBb+=q!VLTaY7HvtK>+U{KaYA!63R2p)nX#=d+Pj z=2oUMNxR@9=tR>FYgh9fyL20+w6!f1=ngXkhiti%kuqF=B%FX*N^89OBb#Y9qj*53 z>i`OMmCfKN2W17FbgR2p|B>lt1;^!Eok9>l{jqA@UHm91PCLdklwqWkpgsmjir&F0 zU1bY6%Tc+TzjcS)N*|fXIO^!-+#@eBRhQ_sGKoZD=q{TXL>pbem#iR{FanY(m(j+) zr)$|LS%eWK@5+NrV3~fxE_#wejvRaR+^NdN%$Bai@TZp0L>LB-{3D}DwlC}J943`W z9M)4pBZG*=FCB=&qZzEHh#d?jofkMx1t)od0zGb*Q|d0#NgNFM-1WNJO|pIXD%5CC z@`gKFXLBSt&E}Y&>%R=Hm8ym8Y-Eb;Ls`nBzAK$BvLUIDZ>sD_dcwb%sgdQL zhfosfz~7-eZL#|7R*H4BjF5M=(!4Ko^af9=NoIwaA&x#}yD^*p)ju1$)ZWkR#A8yKL@GYOSo0P$Y3HtCE_<|we<-CVu|zPO zeCqT@JxYVV&X1habzGp?oZ^03tK}fgOlK!GriBJFB%~)99NO!C%3tny8^Z72p{E!f z$aI_aXsE`n=T_^{70!pv>gLH04ez}MH%l1xv~ZKZ*7;RNMlbbjljh8u!{TTg zwb0v+QafB-X1Jp@QfJw*yrIfD?$r$EJ#$q1d7m&XTu%qa>vc^Zxw-cK>Q~$^w5WNW zeM>7ePZqPsxI9g^ydtd$w-4!JikQSHn)PmqX_C$iCxKZM(?UPM)!rPYT0S6!2z{19 z8veE5l%w<}`XXm5oN#;`q?{&Z5|4*y96ZjY45g2Jq`$Ezc)`x&+MweOlPLtzu`BufV#^mV?{RIz0Taw(H?R$;u-7R{L zjitSQ!DJaj9t#;loa~|>@p6V?B(Rfef^269N%E4kTV!sy001BWNklYY zgGj=U7vUMQiISOQ6V7{dAXW~`C{k%h7+%@NKvD<-R^Ff+vAj<=;zVT%ZFQxN;dJmz zyFzCKdWKH1v*l^GiM=iVbDz{{fil;_jV=GU1#}H&1;1ubQwO`qED3p}m-DoalEYHw z{lvLi-uCu&Mw!cfSD93nq^$FGm+uqT`YUK5Eaa!A4$?xUSk0B*hsN%(9_h*S-GFC@&ZFi*U>DYfP3jplKjkM zvh_w5amJpr)AYsA`))eZgGXJTJ``AQ+w*l`PUum6x_M@3CP(WA1!n4z;?J5l^IY&l zDxFVE8)vfF;5+P0k;gpM=DhUvE_Ifgx#7p1S7lhr3E$O>i~Qa*nFn}>$MhY!PJUyu zca5pnF23i?NGOXDvnagC3GQPujd!?h$9S#wHMPH3%G-5lN_Ct0B8$w&TwWTR!bwK@Jfv@!X((f9* zy6VDz14l@=Y0j5sp?{I*N#{@BQfIt*(bw6TE`?5-IU&#b-ZM>dP24{3EiyjwSKn&g z2k1FZKQmNbHq8>p^|*k`F7BZR zJ``ae#WYYr6)kcLIV6%NbLpdd^={VjBZs)4PqCQ`Qp=4D7_#-sT9iz~X?FSJfe>-kPltZiX!D1YXj(^?`FA+6-fPSh^RT~z)5Uz{ zU+F25vaqL}cynXibWb;`Ba%IXbZscpey@2ES2}TOylb6Dw9)G^Z!w&X(!s9LPC7_W zn5FUpDQ2ZKF@P$XsFjT}U3%zpEzl}n6KAPmC}~7%J&*Da3%Hq%_;GOL26~aKOV~xN zw$tUhD)_EjO?qgaJ6WG;Ss8kbS6c?V*XSd)|7jkqp0Z_4S^7*(TBwXZfv2>V$WSXT zVOm6mZ<#Blb3E*6Zzq%Jd)Mh;0=|5wr&$)+;xuw+)IH7=zA&@6U5EIdblPjc z*UP-5X@2WWP)H|Sf0GC0MjheQnT_1cPs|{i3=#?F1f?|L$AgjS3?`MC3?Q8XYH22y zLK<1BSLLFei@cc2aNocpqUP3Hvtq3;>lJS6n0X4Zev@`_F^3pTE@ zw^mFEEKz@x$Nhvl_chk=f<{U~g=~T&rJ%pY81YQEhHc z4n3!jS8LN@&8WUEFqmIz`-M_C+PunrL7#SK>3_6Dmk_6q*g1M1k4LWYl{u3mj{AOf zMu+wE?s0DO-RJ3UlDw7X5$P2^)EUAH~FTTwYte0FF)8r-t*?19yWi<^Ln}G zjPdFk^Ow|Lq~U=dKZc&9NhB7lmINZiOC8Ps?^;k!9YGQa$HPggXkrLi5_d5I->_4Q zX+sL(7b8KM;w?BP~=k|tYtoPqie zr>K@2=}oeRGmCX}Ba;|ba)b&FQ$r&?NF-7h=w3>Qkq8{NY5~v*8gZO~$nyT}3GqYGtzMPS#7^>guK1y&2 zppr!_KK+3sRB)aeTG&nr4dhWuGgUMZW`Zo{D3$D_ghu_1JgP3vR0}yqCFiIk!0mJ;K_~D#`Fx{CsAM}u zG*Ur;p#EDDbDTPw`INm>>d)j-!ylZXj#3&45`zbaxAhPe`aXxLU@kkf^k259PG=*9 z?53Ka-oqA(*{v67p_RnoVW_U++(nXfM`G~t4QHv>lYGokX48dODhQyw!VxO?_c})- zuFccWIVwGf!KV+hpYn?`=&Q*jf_FJXExReFMVC@cBad)Gt7svFs~z+o3Q5MnBZV?f zvh-@*tEI$B1dayv7fura7*T&&@3$k2#6Q?=4 zk7{*UPbv9?P`jHIT(Bc_Hv1)v;iO3)8AgnKO;=HF|I5=HlM;FoOSY5|3dp9z0saPAW(zgk>Uec=a^fsKMf3Sg+NDm>_NN zGg=SP$VmLCE}{uTBlWcKGXaERYG@%9gV2QpykroGpMBI4xVXzp!Hd#>2SaDPsLUoF zzdk|*0jA)?OD;i_Yly~j8jDCTJgA-}h{!Zj@UWV4Ts@8=G69DmKH~7}b}kT*&Iqa{ z7_5vWg>d#zhteIv(tsa_Mw)Pm!2s9dL-_`ap$9G&iw8p!4jxA0$0Y$D4l8K_ZX^ zM>LHz%1Sa2M&idq1Ac_ggyBjLA_$|3W~|Pq5~wE(4=yc)WFFag2`2=)9Kn$X@Zd@` z{qQi32*P-qT7((|t3?EHB$q6N)wqP{P7Hny(t!TkX8D?QR7+?kC?oOVCzl4AxRN-$ zx`QJq8)$=J5tZ0~M}gc#GDeRPLin5-l&gUdPf~%=xs+n%aUyWJok&8wO&#cQf+#;x zgUdu5EPK(5wCsOn?y!zh8d*ghE`9J|D8`GAf2bqKKcwPv6(zX3j}TsYoHYF8QcqCl z(u9W`gb>9vgY?HGpdV3%m1Sh&=&Mv=c#{hk9SRK3(g8m|QcQr8G@z8wL^EHKg^!AV z&l_;?$R#9V^a!=Mlpy#i$70FAi%T3)gb~0cgpWo-SUkXd&Jd(Mv3QBXiz9PLz> zB3u^JmT*mHJGC;MNQ}Nu<3%?UxR;|eX&E&%$ZNDEl6b=L=}gYhBuN+)AB`w|iNX0- zzOP+5Os%|3XJT~`XQ<^MWdtOF@ucwzh17E`iG-7VakaRWD*2l}#K{JRlB&(Dq(q~1 zJEeRm?TM17$sp|CC(|7PN#Y99d6;9=QI3mhJKaVFt%xF=52Za`UeW@Z^f}JaEQ5*1 z%T!6eIKy}-!(s_&Jxz4Nk58|pfChP-RD4X96e6^PZl;3gIZY!g=t(rcQiIF=WD~(` za%muhA4j&*o=Clfqtsj!7N?*nKT%A8B7y{T4HX1sI%!1eSCr5oeTc@VxrDItIBkg` z6E8;ZQvYF_ckEEte97Ba?{6qunL#p9{0$hcAsk^KepFr~5u=kSL^X?ink7hE zJQ71cV)ZEh+DF$Al=+M!UWyq)oLJHFp z>@s(96`6Q2zz5QfDDg0c6p3XlNoE!^X>ZcxU3y7A{UnKx=tQ)MkdNsvlZhwH+$XCU zB}14&M-!Bf87?(UmR9CYd7i$~k4NZkI>;ujWh>=0nSWR!6C^12(~X5pBwI$vs|+(& z@iAlh4`a!a8hJwc%j=9GgU^{vJE@c>7$6&%MmJ_Nm`r&}#?gu)v?Wd!bBlCik=#Iz z+(mEFWF`00m-o4W&fG1-$dZ@2LfXqKOr|rJkwYpE%6Qr_l8z+GFglUI5IPe zagcMmjVc1v5Tt<`;%MR@im2r;-9|2ZI7f-@riNyI;}jopnly_z;!H1j zNoHuKF6Jz6Fq{Y(%OQ^1&YaMNd@3_!E(^3q3#gKC%H4MQDSygGT*!@ z_sbI6NsN0doAocAr6V2PJt$r?fpp2#QmXVIw~|Ga?4yb(9BzG>h$G&4hY56a{k+6>)-#m^{eU#u$p6T|rJOT_G?HZC2a>QPGn8Jsk@@^&c5y4? zHG(iMP|i7OWTV`{WcwKo5%MABbkyl|Bp@@0r&#kaz;#qpEaT`zD|es1%?DgfGiA>2 zvWs6dAC(7nCfWL}p5RY*aDfm-DpZrel?)|APSAr?dy-t5xQi|9=UQemg${U79+eR! z+GBc%&2lX*WNRYnWa=IK%{qM&OTF`$Ji)#8Wg-Z(f9NWHlN)6y!}Mi_VDx=9a#%ZZ zhF$FBH6Euu1?;AtIvK@Xv?ju~P_KEqp2OtQz`Zhx7qCQA!!g~#NXm$^Bd}C4n^Dr= zUPcya)KNvb=1`{jOdt{?FVaCe>IXDx3Ez=N15qRrqs8=+M0bdcpgW~ppj!XbpY%6l z``!9$Xka{AVFs92ibEmW+!>XR;wB5*B z-7G#@qb#QlIsAx~F7mx((avq7tMv`?i6qMTP^QQY8jGI>c2P?&+e1&Y)_GsXa*KVK z-7J>(v>B@%2vH*qGJwnV4-T?KuA@EubtZ;Lr2eo0(b@AVH_5VK zXCBqtiHL>;>|jw2i~ z*VBtqr<^`KZbRgeN*AKp%M2PB#z`9S$VA3T7aPMeT_$gkNjImAQ8M2C!wLOMeH3wq zHz}pUJi-XBvfVhtKHWkyXQU^6xxslurphGyfG*PI+Lv>jktmXg*UJgwWhp|vW>ZO? zv?q<;+)9|F*k9P9tDXB9CAUa4Nm!fCF3n{c+0v0$aP=$?;YfyALtDCWh-!||LL}*S zBWF2DG#(8|XH?qoHBFT9Fg_ymHCnV(B1nNsT;1Pf{g;wse%<5>Ae-(;5n-LbC9wqkAdmQp(7e!Q_zb-owxQWeT{3 zD@h}l?YfN$JmyLIGFZ1#POZF3I5E0|Bb>JjsHZ?`h@~^D2&dV6EF&0Y2k07B*?-u} zIn$T^w05qNFL{O*HgQz8(Vi*6WqK>)*+2t98BH(7$wUlA3?)FU`x&crx#>(-87~J( z#AhBSn@+4Hfoyj*yI3ht(~1lh;h{Avsp0~AXvURoBoJxm@f&;igb3nANhVD1r|DwJ zeUn^GDy{WCn()h1GU&z-O4uuqNDMEMKoYHJN2KfHS$)L!wXBlgZ7)4UfK6=TSNA9O zahmyf=wb$wh@(N8snh<{;gw^=6U|a;Nsy%ksk90Bh%^i6M2fwJUs$hG*g}En!#r-6 z-w~4ZWq#rZ#?zNRawVy>*9{c2ReF=oVEvs!@+qf=I`amjnZVtIh|<3a z%au$oq*R-Lp>B`-_qR(@j-LjqtYP2tn7+xTYwj}U5 zpX)XZ0bNT8DlmqzGKRG&i%FQ!3}2xKbvQ{oSUtW<*X#0Xj=Vy-erfdk}b}!Jjoo} z%yBC9O3qSk7Sf7TcPoGMhx>wl!XAENwf>Jj+{RSTIC)I|!zy;LnkVqmmannY;US7F zTc|(khb$vTdfMM8rAaO!8oyabHwMb5l0=$qqh~lKHMG!Z{cP9W#1Jp7%m7ljS>uS} z0ACZrvHjSlD`g3hlE5IqD^uw}7oEgD-J&}vAtcvg#V-pP&set=o7gEOWaDQJ8?^`* zAC;zpK{A;6q|;Hu+0RLhrH(4Tqk$%Z)M7bG309t=1KC-v07KM6o6;((wgsRrcmx=v<%ZY*6I;iPPX*q7D`=WGuIPKdozwO3;;p)kxaI`obOpCdw-Qrm}d9!H^-SpKSof=dRFi?CFJoDVWjA<#L>aDq8shW`=AN(0Td;>o_jY(~4m% zA&d&nP(q15hb5f3G|(iG45OF1jZ37T4klOkO9o1Y+kqtHlm@AyQ68pJ&ry#>IZTFl*+~&mY~!pRG&`9r-MN-{GPRn$h)iH2oq3-U zjQb@o>KA4)v*ij&CY7N5hmUmwCDhX-J7_1#BoITq&gY<>G11JFt9h8+C^#hJ^6X`@~0V_CbzLV$ZZ4-1F zoB5h=sMe3|la#nowl^n2N9`K@(_Lm?VYxfn!o7j7?RRo*Xq3Ix{LwHfv{{<#8r;ot zkNYQ=%Vsk~4zMsR&B>9v#ckFeVTGJu)sb&S{Yo?C!K57myM81*tXf3nICPJrjkV^IF zJ}T9+h70;J%Q&xw-Bd~)eTk7Z+)YP{2%#F!CdxREA{t;PRk~N#P%bSpfxOY|iG8VRtlLlTc2`iZkIA(hB1Jxzo$#UpvUO z3zRTl78q;Bo8gq=(!+DoBuLlT2fX*1;~BfdYRHNH+4l}{{K7{5;Z9Q2Uj{H zO^bf&Y?CZ)G8bfyHtRtO^yQRH#aA*)0Q}*5rj;l5qVthq8nj&5nAKmk=b-4O1w-WlSk=5 zoXnL@L`sm$X>Ipu9zO?g+v?pd2i!^?4{Uea>%x}TLQlxxK$6=|Uu(W2RH((FJ8VC> zA{e1BdY*6WXK$4z=RN05ndSY)`A9l?u7p$qFaQ7`07*naRFD(0JK{ReyXLl(z5dhu z9y{B6gpJafF*-$)`CF5`VrKE6cfT`RpYdRlxy>L0w3l0E@3RYo@7RIbB;UzuYUB%f zgK)h?w{u?NWfnb1Ck7A4xj>LP^p`}=QcFOdWhkliBbjhcQbT|bWgO{pJ>7_-E#WwP z%mgw?WNn5G$-|2bOtn+LzKbSdTUwNLB zWl{HdE-{xSt?|y&brDxO0UimwY0I?HyVkVP_x)>~T@3TCabEgAp3eGBt7`qj_p|q# z^G?q&#T4D$AxH^`iin7X*hlOx4y7Iiu>&#Cb3{cEK>;Nc1w^`=A%^LWclwRJpYIRM z_5BC-b*Wjmz?p`GnlfBk~nfB}*5wQ%m@m zLzL=PE>eqNVaO2Dh|~`_NC_>3v809<7|b!sY1D~)%Q^XmX>`yHoTFO$l88r7QAI!& zGMY60A&)wp%byg;R5}r-o5`b&5Md0Cv4w#Bh&`Xrts?sm{Vd#IUB#5pebxqD)zUrm z0}JY=2e#>kl8a5J)K%>Zx91(5X5439cIG>tG`@%!>UiBKb96A`qnxS69H!VK^;5g2P9~)HnD@$Q znQ!cpMyAU>bSIH1(v>)UMz@jAX)0(YjVPS7Ck_t>DW;AuI7lUv=tvBA)0Z|}LB{W+ zA8q7i8A&P`MB`>ISCdWz3f!tclEX0RKs2v1igdo@FclP2PY^dYZhNS`lRxZTb{3z9 z@3bG(iQ$db2(|}a31{ofhHb$&bV>Q)rjfd!dx&xO6tZkjrg!BatqosM-< z2U@S_0O@9^q`G4qiAJ{XCf7c5mv^`GUL)0!ZcH_nIlCAS$n*%qG-O%SA;)U+OsDM8 zBF|FeHyz`eX+EVFoEgRvO_YT))!rhde9U9UJYzl+7)m!nMB~OGgXlyYFI1TH+qU3MMj*vv*TLhPRB>a ztHvPrC8=PsFKlkr8IE}I=q1mCrf9Nfyji2C&G|;Dy2;^^<~vpysdSd5QYkl)LIMtc z+|X+2>a zVgex)#e-mQPOE5YH4Vq$z@!^#L~@z}8u*g0@z~S!Q&xu`uP6#j z*-u-dFaZZ9a5e2Ej!>)lFcKFH1PF7Aa+=7;uTA7qMSuZh5=|ryF}X;sHZh7$630>U zw4PKF#6vMP+CnWYgmEGmx|=*|ugpN1L{Hjqno=6{5P8%|FH(tY9iy2HmY(_$Ycx-W z(nZpU#?pLlqNl{@CcRp}N%DAWRBDOFQbY>TxH&*R_4>SS<~#=|r%ATTo%GQUbr1QZNF;7%={nBHR=JnH_DQ{u zjpCHWjOP~pp5r=(PdG{+GKeAy6O#lYacEGV&_78fiAcFk`VdEFV(_w#vsCI&dV(sp zaEV$jP(=&zcyW+J1wr!g)1s?5MFm}mCxSy1Q_m(Y;HQ!hVNO#@6J1FnLhsiNTqKz& zoK)i{#5OMCCx{c_cP>-giaWb7F!U$RQOoZXQBM*kCWk1ei2wq;!`~D$h7QE&W-j69 z-@083xt5L+%ljPCVoLF2@ed_5>IQPCW)kg*<5w6wjRBJc3Q6`%hPND``PoWkPz@{fVsUU=n!OsjLmfJZ*t^JLzC716hB%pJ+ zNF8Ts#^Ml-8nip=B2M!o<+N~wdP4d)HH1~!O%Q>Ka83Bf1V#`z#@aR6mC>@Bz$^R(FmS>43ObXuCxPqlE2mu*REM5w*F&IuXCR?Z> zOeT>ysmD(n-$<5*prgd#=7ct4@gpIe48esmSllR=G>lRQ7|f6u9MTJ$u)awX zMyu<2koXW*s~?*OBpO;#)G9(q>&ZF+Czeda0h~lJT9NK6sCNZE-1-$21m#sCfhs&W zm`W^$-bNuJHxP?3kZ6Q4C?UoXf$$K1Tr4LYVGUK-vXVBa-a;iJC+LiWdMpgO-~qbf zKsZPf7Q>0c$ylNge!!2(4B|n?5rL^!Q9!sA&byCzJWL}JnMcm;f=nJ{+{kHIo(u=NC`G|4Ku64APv+7N@23>2=w+4?vo zSVRyeEMLPAde6SBoLs9-)KNc#)qf%OnGHxouh>od5{z$iNGSLCuqdt$}^Ku zAORPO8wF+%kMm0P16fQ$>+Evs)8x_8ItqPo17U*LIB?n(gin8>B}%;bP}s6mzx<+n=5y8dLxIamCtF9PnT0k5E~Oy zUZo2@oyR#EIZtD28%3%aM50!+pDO9VXp&?;$vAZ=C-BR1IuWaXQBP2&5P_-fIY}+e zG-0>KA;P$E@g|*#WDaMj)dds~;2bSjG;1>!VR0k!DXDn5g>*dnIex;J`WKb-#D}SG zkWZ7;%4kxrK*MaNfsjtnQ#3M=2u!(|1Uz~#XQ*K?iFjo`i8whyBet%i8HIB{I5ydgIbiP^fp6w*Ra?j!}DK29O^6w-`x6B$IYnOywD z6NO154&3y|LTSQ5nD@Cv6EBfTBv*EdGHl>DVQd0eC}WAj%~+yvvY1@zuxTR9Pc#tX zYqE%FwL~AsgOex%*sWC#VlWW-f>d1k9yQo_(bm1m%OD~!apJ%rj|%E|hAzbOF8MT& zh7*IENW#M`VsNmY0_tTG{fJ{bwS;v)l?0_9ak#jNBwX@^WZ`8dF_`QnjLC!efO~0! zOKo;jA#ScBk?(21pcghlxra75^ax>GT%eH_E?{Gjhzar&aVT%nnHa`VLV)XOAt0OR zM=ZCKM1;=aXUb&&qlo7v5^?A?GHDtVV|Jn{mG zIEWzJ8ZmNQd1K3KGKLuKt6xz_B_oNK@1+wlMgCz~Q{Y-61~LuVPzG%}4D@}Uf56iIlD!@NOH|_SFNEZ_2JWoka*}yb9%kMIau5y`Y7=RN4Q*2qpFz%oq$#RCLWDwWWjU@S4rqP+% z3?!A?8BDSqkmndef3k>?7r9!p`4?A_DbF#Pj!c%WBr}p8cxfSmnk)4UB$+Hs{fiTv zB87N7)FSvf&RH(8kxH#60xtmy@Kb|}M4*}q>M5gvdfiSv^_;?@fpj7Wa+dQH(V~iz zT@+HG%gEybCDc>L2b?CKqf}E(m=Y>DLZue!QL3nCEhRM4mwv>sib5)Mo_@zJmUEu! z*4?Rq^PFQhA?kD?+c`>ml8NOaaVY=cAZK(v1zI4zNyej#IZg>hm<07YUBh3Trv*Q& zX{KIhu$nFOB!fs+a*SfC2@}#p{?@&mqXxf@)-CL%Bgw?-WcG5Bp8UvfdMo=Vwx7_q z^ee`YN3KTlK0n!$^iF-3UJRFh_5oJtI{S<+;6v>|C3)7<+@lNiFJ# zZU_%!Df61{u*cc|(bwohe`_$CS!+MWMYftha2pf!8J2O${s#}I9G}WY?$9+1rw@^w zBv(J<43|mJ-Q@8uNwj5=%psi}x}HLPmPT^;Oa3db8!s~zuN}`OJ)=iB%y05J%j8v_ z#=xh`DA1F-k>5C}o2et0M~TJBja-9|d9|`hqJnZ6IAjSOXN{rA)w{f3zTtEm1>R|nN$&wYzAD)P9f?Wn=869^C| zZ*f0kbpj#ksiBl+djLLM@)DWY^kbNGmrgiHvYk{@YVV+23+PEBHTom<*z9AhjFx|4 z5UJ@D>Q~l3Bp~7@ib2{I4|zJ1T=vOsk{C&>+$2xx2p(q?(^$s;^d&v68}tX#$dG$v zqKwr0IY$$>Q>i=cEDV}7o&X8P8ro5)j}t3H;Qmo}1W~;tJh-OkqB-$`Z zpqCt{1700P4JFnIPO+OOi6Gf5343}T2rPXiuVLlhB` zfPc}S+i*joi=LxWkOd=?!o&=eTi86zc#4{Wx zF5N;S&Gvi}Xg2Sb;XJ7Ix{rFUSLDfIWydM9Cvu#m(j{O1Wrvpd7!(QHjM$5-8G9lu{{O z=}Hgv;U=5*1SynFwCASqZLH@N*DCJeE`5<)^0Xgmq}zQtM~Mz0kNxIXOyhR@8!9L= z_L5D6jwh2|_8c~{RldYejZ7n%t_-0M8HSImr7N+Z)%IvMQYD+|O`@Gi9U^DwB;D+C zw(D*=#Pu>#Cv!%37$ay)n&wbSqj5=kNtSLPmJaq=J)?)@b-WTM8zmEmJwtP-QFz=a|ZPDmYKIw8KpbZ!u ztsl`ylysq|jHQS&4$8Nr(~0jXC(^bl)_v?DOs!b7kxcoGHgwY0sNpOR6M;)oq&I`@ zLfy-sa+XF6UL=BOJxsCYF_I24lDEj=xKYN{yry4L!|#NpJqB;+Wpd>M3U#N9rj6Wg zFTSS%uTym-4R!nYm zy5uAIKxb$*iF_p;8Db^qXFOpW6zk{aBD%|bM$?s$Y-Am=`V!qq7MosVv5H2{>Q9{I zlw=S|whWUexX*r2-{(zcQi4}*raNt9EAd3o5f|-AA%X_0BR}xHd63b}G7K5QNc#mn z#Wt0^Jx4!-6#u41e+U#?|Iu$Rsv-8EKrON#u9)B3jcqVA)V zr-4lS2#483F&1Iw5kXjYu%DB%j6QUe7ipqG57B@rv&kggew{KZ?WG*zs4I-82T_?g*r}421B`%&Rk@(l%ovhJ}jJkMQ?f;>qx?5Pvsn^>=o?hxcmo`D4xR4 zCA$abD3=0T5kpAbo+PU09jvI{45bi_lN&f*CF$Wgj6&X`F%`q*FbH(#*;7Z^@@ zGF_jcj0)LFD!ug)nyHcb2&S=*A&d<_$y>b54MY**NgPDl-{?IoVGZ30n%~HyJV%%e z`sinz;i$Z)d)L~1m+|P9VlYH_S%O!Gojz~IbCJrnNEu?}m6mVL9CWqzU9{e(g6teUHCSloxqI^m`o!CPYKkH*u(UZS8#A*5vq?kN1h#{RI?d5tJ zvFv+^!;&+2N#-XCInQM>NMIFp7_yR7I%_+sIVYV+pogY&mU=nIB?@#sLJjB0q$^Kj zV8|sb+S$L8$6k4sVT=q{Y6rc+Fyt<2XUyj|o(Z4lW4@4$xG2{9wTu`eTdrn;PUAFx ztLg=+sX=CWR9KXo#OF7(juG*BZ= z^rfFYl;1gQWN|BFbUnXw&U{r?alh@W%@EcJ!%K_Tk6!}FellDfr9}k4Q3|y@GpBM zhd8TU+080Rp%d3RZsY+O$3zN250a~w?X|>W>ui?uz0{IUH))|e-FTQtd=jD=r*5R4 zAx%u`IB5^!49CsM%;rWTf$L<7HGsEtjXi}8oS`$ZV00mgM0uSX$dCfc(C{#p za#+5jJK1J;u9sV^ZLHRJ^;-f|vQQ6EM|;XRA*<+07x`4iFj}KH%2`=}L8_j_NisE5 zQO@gH!dc@#Bs0K{-~c&B54nr6_7MG(-*`yc(ZzV0VPxT_2#n)o$T+)?uG00+aBG<2hPtSC{G*w6A87i1v47;8i_43AD^J%7t>WXlBmXY%wgbGSr< z#4?!fGK!v(s#Ez>585B_DeE0;`ArtdM(IYo@OXVezc#+6J<LmX};wGb=*t|CA>yo z86Z~?h1lo#TSLyN@{#<@KBimPq!svxVIoI$pG>8{jM7i|N`K*gMvx+ZF-)#!2~{*R zpL|NSABq}H@*LxgEjVy$if-cox5@y<*w^W1PKlpv()A;9Iqg^`cX5l3rYYaBX*gH#(EC6AG6aDhBNM-gry5eMa}h$KljI@ncuKfA>Vv?q;d9NNfcigY=b zY1FXpqe>U>K1vLuFnL)F{Kj76cH)gG`Xjk|pB!R>UNm0dCC6>VY5|`yKpn2z%n zR#T(s8nUeibdL6SJR`SDd&fCr7LWQe%qQt@|6wiDMd3AC#xIT=d7K>MqU14}6l}u0 zCpX}eQF<63CEP)leU>d0tDAlJxr2O~m_rIasbUPNtf7p6{=#<@(T4^?Tm@i$Co33W zjnP{J88~BW4Hcf&gQt>ZuQZ0 z;`L2k$+{34p$EB2o@J+Fs|?^??_~2G@r4FzZ@Sfct!H(%{iEE+*PvTzCYgK!>f#8^ zR}9(gCyz!s!&SuVOpehg!x%%H+>8@bUndGvUZj{NUL%zRmf=L0Mg?Jsq$^(X5Rk1h zk~aE)R@11{q&?|IkR4<=UohO1+dt?#JfpX8LT)vp?5F4?_i&2q^dVyG$J`ra0UkRw z{DwpXzq1!{gKUtyXlsVXIy!~5o)@~HHSSm<1e&zvHU$y{rvPSyA9 zG5Vz3Y@g7OUUp74nu#@f8XwC#_i}R<@92GW6nCK6UaRe7t}MjKGKvWB3)KWkW-#%3 zpXN{}3#AhY+{tV#9^o7fq~pTSZ;8PpBI8LT1Q;x)0}U)7n<(*fJ*je-Hn_2AAcTz* z)lap6CeF(>)EU=`m#MBSbBnyG`9$j1lyFi$u|BnzbF0-&|EAHE;+QYLnhxt0p4U6W zU9C;#0^-cY?A8AAa_A?^r8gT-n;!Wk@REH}U#NaQxIwBNAIoB{jUMXEk-zLx9Y;Uw zDt%60kh|O-{*gayvii7v>P-pgf0=*r?EkV)UNg?q z-8e5_Xb!0i!mZmVph;%Yn_ ziR@u8$++1;5oftbo!Ts7KX1^PX!cS;lMZG#B`hZj7oTt=9f{*QTt+XM&V%$YK9(u^ ziC(MyDZ-G~?3sGACPn^RZ)Z)?Y~9JAu&c>Xmw#J0-?BoVGnwL+7MV+?XQk|v>-8_| zOJgV#=*;i6_k?ek2*+#EfoZO{jaTIUaGJe@X-=n+h-jwHAla(1@6xsARmL_cw$9jZ zv)Ee60R335lbhsA<}sT9cj{q+l1&uRx{NZKTjB3<{Ky5_&UiA6Sn=|lzQZK`(EfUg za;gbpF@cW6af%)!Yo*R*CqX)sPYgbs@{kOpE2mJJw6lK1QCTf@(k&;`MHazvAj zNo>=d5@N3XroBp|x!0^Q+8AB^QQ-vn(|l8gGS|^Y*2}R#vo)KaXv?pRkOJAMZ<(j% zW%)^8rJ4;^8(pfkrc2I{&1v4D7Z>PGyeyQl(w0ZKigX@g2r2xJBUJETN+@9nS;Ue` z6i(em9t}Lg9~5vs-HGQO`qGAC`~*nEi<3EQ;2cjegba@1CnRT?N(U}-7d>D-CwJYk+UvUNH)+Hc!wYO}_OlD^z2H_!_o<7rD2YdJ|Jd&#ANadak*L?UrX ziM%2sG+pQG9+t>-I!hLjIJAczBcFOI3Cn#lf;3)coMfU{Byfo;iRBkgYNd>1gUr;a ztl+4;!%cM4tND<92qsEjQi%|cT$JJFD#NRPk;PV7!gAa!(YJMjCPlyE`AkCA!|JE2 z&X&cL)taGH{eoLGmiI%&c2BKn_6F~<;^b|)R^rVZX(!8#r{#d|l*jm1GlNr&Yh<%A z!+t{c`yMg3@=j>1{VHCWkDFbt1b*PK<4fZoPFst$T%R<*<2BtZjq;`RVkZ~120x2s zC=arl)07Y(sMqUfx*t=np?xbl=|M2*CmC0~Z3ri{mH@LxmPQ&3Uoz2wH0c)bYSpJ|3&Bk!KjXlQ4GMwv;V|JWO zU=u5t)4W!e$Z^^lf3wi>7Y!0=thC-wh7hTT%eK$itrPlka}$)ohWfLf^3PWj(}FSw(cy|+Kdwe;UI-tPaIwxxN%^TM-44B z62K;#Hh3k4Xx#dp?xl!a8Al{@nIIkI8un-b57SlR*}!?NMt}-xsNy_Pg!G(lA%{Y$ z*sn*K#BwZ|%o>t(kj~S;ThZi|azDLvn7+$4`qP$JSuOX_SBL3a?3a1mKs$yIg_Ar= zX<{^KL{bA-_z7WguZ$o~d+B`k$PfIB-t6Q8wZxM{4Y#q9)4CKJc#SX?xA7InS3TopvPFqwbG959HmlzmRpI_vHB%@c#=_M5o8ZVe8ygciS!~K2QEx-y78@yrdan;PLq7C`8fEH3;1ay zjIFcSOPO(!_ZgwnI7dCF2ol!eR1w6%MO0SMk3`*1dr6jSrMp(>0MI}$zx8-&Ap;K% zzLvfu$R}DxfX6va4U6eQjHED|E<8&TZnjWPv#i67LuYW53U1>d)p7|32J>YQF+7Dq z0z35^T`WXTFkg2rQN={H`f6VvfGmc}_QiOpaOJz1$x=g>P z&^X0&bYdmd*!CN&qu6fL|8miIm{d~jI*xJ1n!zJ_*s+kK(j)w#4Avdie*IGq$T_+a z!BV`4ox*2aHYRg3srE>Ipu|XLAwBqpqg2^mexjH(z=@X#90X`0#9nG>rW294d6U#u zMA*_VsHTN{ytv51gCYHhBSNH#o_Lov8aJr-#=2+@u>eB=|tOA`)4 zJU|LwQc*&BWd)zW0!c-&^;bM7HnI2^N(2@~2qEc#6Q6!b1wolZA};-$YHXQ`3)P*} z5uy~ukcm{#j1LQ_AQmSsytp}x1LYznJ~DwCPSS`nj3`VDEc6OY%rROBlZ%N`p^ZQk z28s_8n-kiEO*w*-{wUB(e3<;9EttfL8^w zFcIo$y5b_0cSt}OPckn3jngPM5{Jt7#AC1tCtgLC=QM{9hf5#c2gQ8rVH#q}g$=qB=jB_v`ph&G63 zQ;)^xv|w8d7936slmjhb7>|db5Oz@BTQJAQieet zN|VNLEs_w5 zsiB^u1Tp!X4!Ef&0(2-$cL4$yQ(egH%waK*r_-&0DMAl-IicU354Y%lJM$RwBXVkxj=v|_z?Yo06}RX3x~YTSQ7a!PT*dE%s@4P%TI3MFh*JAi&Ke;KGjpC#a-ZhBA&Moy7tCd`mS! z>CY5WapNaMJT7dMMod!i;^1{E2(p@ZJeWk_w0~kN74jQhh_avJI|^hyqlniRsiK(< zWZ;t}WZ+XbNAR zcQ{Rz{7MsE5^xb_BXw8|CmN@0l^(?4B^?h#DW*v_(LyYJ$RtXi(myC8iAbEZ!HLN= z#NyV@>hS@>}B9yJ7Mz>UaPw84vwiA!JLGBxa{l4g03_QdLQR1n0( zONcMXz(;okk#_iS=od6%u>n5;t|k^QV~E4e^E49t|3I+|^dgP4NIOhCv_mim;l)KR zA(RJ6!K+t(D!fMmUb%xf+&YOu8ubH8v7|5YI3}FVa;X(tmSCg7PUL&EQuGS*fpcT(`@IL~)RElBnT(a;2DivFt%Qh;_yS*~cwR zp^li=`YYWrSkH0NNWmhRXl$KLNF0B2N^|wNUg8piusO(9Dyd)qktn@M$Hiru`9Ge{E3m3+YunFQYp3^w^a7-j zgdPY*DM7jjD55C#igK_4dMt=XMa71wsMy7h4M7Byj)3$|=n14k3hBwt-h0jQUFiQ` z&YN*J=NuQ$`@9VlNDARB)m@aZ2mb8>Y0&xX;24)!L^~GM)bS2342w8L2_8ZTpcbFj z>TFhXn3qVVMpJbS$GILKZvMu`(2WwxxQjJZ={$CGm?fOz0-3}TsK;2R`za^=;l`CyN*)q z`d>|~}zqlfY85gE)dZXk>lj&hb``hk{kL>u)qEizt)GhVZ$54GAvDlSQ+iOXgo zo2iix8Ngs3z>lNWeD0OWz8@K{b4)q?G1iOZF;qA3s5~Gp3M5-kvrU)q1(8JRuVfO> z2>RmF4^X`%R}w*+Jjst-kYl8hAT3-^cfFrD8Du>ra|qV~B&{ZKbiEi>g#{f&G1k9mj7oaG*dN`^IzestEk#Lz)s z!pLWki%e_QlaZpB*#K*Xal--2jr{^)Wnd2O!M5fY>I+-sCbeQJ} zW4}(PFER3#%w+&6gs@Hf(v$A`1F^)jkdrh?8qHMe69mxC7j&ZCG~q`X(F~Naj3JB& z^CA^m%YH&=({@@ZrI1)E^(TZj-A)aS+{`xpM6V&2RQ-ejWXd<3rJbwkgiRyqWQa`< z>B(#y0?iV{#TGrC=-60T94!poCblu0mM2-V+6k}Q3m5}NF#t@G}Elp@TX2vapU0xX+&`?ZhYoO=|mUWv=X;Hlu$gn6Qz|3(&(?l^e}5R zpHOP_RT)f%HJ)iQUV=D=!)ngyk4|q|sFiKR5GaMD6Q!qVrb@SRkaM<=Net8hY@yuz zLXcM4pAjshspceY^rn~oq(Q9aqWF_fImL7##`=^Dy68N1=`WHmkIN7Z)J?>54Nxir z7({>VBYxP{5hQ&NE03AH#*p=k4q{+)*NmjOn)aG%Q?(qmf0V1Epx4v zIF!jDQZdeA%BavvV(~JQ4w|gbNF~|2h5|CpP`t$QByNP+G!SN9=OjP5!nl{a_>(aF zbtADfnI*WW6EAthSW8K!D}U0HFlpg3hGzQ7wQ@Hlx{d9G(IPjH#~^)&Hp;Ag3Z*X| z8r4UK6v#lS(ckq~8BC}oSt-(oQ1gqP(Zf8?MU(Xg!^tyWP(rCr$FN0iA(ebuI7z9=;50>YfWc(A z*2xMvqW9`78ks?xmWYdRc5)3I(`7Wj>pq<=H==BlM+nu;)(mWl^nN^e`G^sW z;~al;PQE5Z!q|!*!Fm9r_3{|iL@)^y?#f{L zlR>aVOBk`F=?2R2lSfFDT)x0Xt@(t%^#E5<&uRW7mR!~og-eHV9+#G}Pghtiq{wv= zL7;@$v*Z@;)g+o3?*!>aHdqbhF`8GfDOF2%vQ5?#g{3R0)a};8bd&4lNBYQ>dX{qB z+DsI=aV{YUKJ7qn8)`eJli3^;NAzDqS)lLolZ3TJ8 zxx}9oNh8t3GLOM{^=8VbaPH0tk~)Ol64qo>D4tw2G5v1{bK3ml@1JIWFPkN-=KQv_aRiO{d|| zF8MN%vCdju%IEZ9J(yCe*kFCn83IfkEqM8!U;<1K9_qOg8zUF!MR&c48qUc)29YhV z(}6#gq*8B{(u+iM56kpbek6=a{e?Cf#3mg-{=lMH8px+BlL#V6S5d`jl1U+o1;jB( zzT^yNBk`HMg}GNBSjq5W7ve+s~N$K`WgioorIepDmg_R?LaMCNT3JL5RRW&$tu>$ zIy^-2qAaAZF4m9*H0l@{xWt2a31K)H#G7Y1!v<-mfJxj; zG^$r}hD|boP(tnNn90-Tdn)kAOp*w&ey4!3(w`dCN#S??Vkkb^tc`@>kp|+3&;ZMTZ4F=~BlQ3+sJ=r7{wyIDF&}e~6*86>x@!Z0R5@<8;s zPCwp8xGY}U7)UJ8V(ui6av4NC`PNCglcmp4NtJG;hGy2{PaHjoB}lHtB0yKufQ>)R zM3{2gILCRKspb*~spUs{GEncOAMxf5)>C9%Ad@(Kl@>zHjjZA`DWn%kW)$D>itR6{ z@~!;Ilgx8EvyczveY%p$vqTfAijQM5gAgJ)LKcHrC_SmBjwswZ5;qpdayMbFVS*^48lbRe(a(ihY`4F zHo>}5Kh}1F*kPB*T$y1Sbh{q^C$=wDBw;fE7b@w*5-8ibj%(yuTx6-CTx)rRQff>s z=cr&UA#^f>si59sN^gB+y~S!N37Xp~ljYI&DYh)2xi8e|(uGO5?C)q=_ zJxj~B|EBUGCPs za)aw`=_7YL>-7!&L3WWsvtG$=imVqIMi;*3JZ}AiA9SDWqnq^Le+-s%J%~U3oSWFm zN#4Yta*h&$(v>s1ix3*A)rrJP7u+1z-=zyNT4OeHQIeUALnCgk#4QUMOdOevpm zlk{UU6^K;xrc9!MRs!W|A{Z#uq*H00rj|o;6A(>TDhM_s^(-g3TCzx$uEcX$t|N{} ztG7JJ7-y|MNQ=J55Q4a$Q>4?K4)$n)?xfXaES=6)YnuGPFmegQU(5A7F34#aN0QdE zoMO3!WClwF50GPi(-8jRb&3fkmmI>`$v$e#DyFef{Fy;F4wFcbel9CXx6bo4>iWiV z%YEFt(FxGk$0H z<<8!7c>O2ZyZB#3PuYXd6>SZcJ2cGMr*oZ8)lIg3NwQogKWQ#qjIHJRr8QK9{{FvO z`z0s%4P9d8x6W~z&AZNK7E{b(ZsahFxq&u%5RIQzF8OpeKkILlGnG>`Gm=VLbp>HW z6Tlgot$UbEirz~*Ub8?qP-`8Ro9Ik`V)4_>6w%C8B;jZOz;_HZZ)!Y6)=QFwTV}{R z1iB*a|L|Yk!P7E|4ScBI`k!VbgS~}jnR;AB)>1}_T%Hrx~C4b2TxtkzAs*8~HSG0tNko zGqhUk;?XFa{FEFMyHzC7%d=k9Hg$A&X$SUSesJP{tCX-^upmX)DPrH)s3~S-Y)|OpVUb51d!DM8=qv`X3(f zG&`cV)c>l-WxSm(r?Fh$Sj&weM-{GiXub@Hj~a6;6US7bQo< zX+{N}v~RW^Hj8+}+~cdzIK5Is2xSLj8BT=0#bvx!Zy8P}ULc16#&VbjEny(Bl+%RA z8bS<#ViQTA_SL;q(_5}3LY^U)a9+fR=wX^M(t|*RR(vR33B#r*5%`f$5<%7gN#Y^D z<5srJQ=?6KgRXJyBa4e%A^oI;Uv#K<7o+Iw*Q`aF6f~FPW>~vRxABPiK)+}HL=lJwgGD)@^qDmf- zex%5wT1zw=tWL5-f7P3GqN_nmImaV*I%D~f|4E5%WF1A3@B2Tb*LpXZK%La`txjWs zufaTS-g1q%#)#KhXMWSJzB4kKy0%};eNxmA%zBLP2DU}jV zPrF>^kuROKfX!Bgc&%lctBzS`y6aQ?AW5>9Bw52pxa3}<3D66iqF!DinJ^3%Hmfjj3;jSx}@!bL9<36g7QBZ|HZAzA;+VQS<#3Q5)VoTeTx zibz+&@zqA{QCY$3$3#0-3%grd30nC|2l;uJ5cP@+y5uB2<5(l2*o$Pb~Gc z;E{zGge!?BRIg_Nr|C%n33TA2<{y+z21x=zOr;k_s$>rN%;yqqOrkrT^iEyDSu0oG z<0=-&5CT}nWFk4hMcR0som8<^%89XFm0uW!@PYiuy;SQI?X8Pw(aZKZnGyC)Kq*O1 zs@`nfq{_WzV;s=W`9yS18h6x=Z)UQaMX!`AP1V z?kr^rIoSAvcGiWu4?{UEat#@TktW#^&1^=H%ofhj$Q=}rAg?oqE_BeF1bvuQoTQu< z+PRF(DgkNK|N)|2$Jjx)u6NIzts zdDePXCQC%y%W|vivPG6kv41}qN=nCE=MpKr!U58)r>!tz>WAu-;>X zeNy5WPcq?j5KjoMe=(&p>T%v(&a zNo46a{7vP*KyY^wBveQ7J_#feM~ME1A2`leRM5g(Or}4du#0kr)00R^lrkA-&$oQ~ zn|`Zr$~3vH+hvR*EjM-&_=S^ssUP}cbL^CfEhB?dr8JM|KaPVbNO7)N{w%^ z^N2Ol_ljAsFSXWqHu%O{JEgzmFpZ;9E-PG5TXFKMJRrZjU*b334*bh<$$Fkefx1qd}gO8_CtD^mmTRNLfof zGbxmzTE=ue#Y9@DAciA)R<7e};`AiPsFnXPL9)1$D@bL5OwiMKQM~k~GvT=LV)QiC zw6lf*Br-(Oh+sLH7`oAkAa0ZbIun46i~s35ikU(m5_pABf~cYqkM`GB*dteyN4$Q@ z`y6Bp1~^J9J}u@lZ3MBLBJpwq-6*1j7DBKP)=@$|sZ`OzjpUO+AU3uJ=<{qRo=zn5 z00T+lHooJ8_S9SXnE+bw(?2MoK^|lfDQqB$;C~Q&{fueSP5t#5-Hk;XK78a6E65vM zrJFUA!?d6X^%%SyqJn0ca8R~TPSd|Ak6^G!BbWe=aG5r~=Qx*nnjs|7lLSI|o^4d< zC%T_YxbYFpIT~@3O)NpQ*lp1RBVOYyK8d<<_lB5?cc=bo>@vxRk+H|h&rJB>U;82bm zAM@xfvGN`+8uTd+>Lt$6hL2R*@k%10xb&Y^D-;07}FJRy=IE-a7_$s|rQ^efuAfCnQp^uX=$FV)54w zex;NiMBy(>=uM2-$Tq6wR=JxDKBpIs{zNV9vW!CFbSsCs%t&Ghl0yt9fa^#k$a)($ z$}j>E*+PF}Xu(F?XNCe4JHf%-Cy62&-4k;6pd;#rQ;s9#V`J3rymDhio~k5SlI z49DP;RrDa7x#SQkX_V4#N?FGx875Om)c@*Un#t!7m*s1^5o%qQ+v%z|bAU#jr-QV~ z`hX?UUGpf#W53Gh($|cZ|7xjgoRr8|{aCk9?VF}cbv?n<;j?CvLWo>N80s6wTuxdO znMaoPq?Rh{TW%(i6#TGE2tRO%MO5Kor)1+t2U)=D1mY%-I0F7f3{TR8o6ERxaVv=g z@hRnWFqkN8PEt=hp#%}g2|Pe|JSbhTaj2yohdTUl5kfG5@&sWRj-&W z1Z4*;C`p76q$g>@Lp|Zxx{D4R8ZlU$#}9w$4Y+AU@Fx>N^heyN^uu6r2?c_2V>pGI zRvZM2;Y1met@GlbQ=mDBg_M`uAn%sx; zPdEo3U*L}mg9Dtw!o^vd@ctW8`VW_JScwPKA8_F(w_tEMNDGihG`935ia=dY9Ukt( zjUkaJ{Ph}2@$v-mIC2#i@naA!Jlse$E>_Tj;S3%u$sq{gDg1zSG~vjHB;e8?Xhd~8 zApD7dtRV>(btuq;gM~#fq8|3qq0du?k60`$Yarclas59h9DMX69DmwzA+nRM*jmpa zJj^E^VLlD`>10a&b%Fa+frWA$McGX|E=J);hc2QK!`p--|GKp25ssmpDr`N7gGD-E z*h~?^0>ZE*k6={aB#~h4MF~c>l7S(ZAS~MPAsnL-4^0@nvW6s-RvNJY8<982Ac{I# zY1h}dgd=_N$BQ3=zurbE4iiWN=}aJ@EWtu~3>%B<2<2ZtG%5JuVmygJF|8=y(?KAg z5QrNeV3XMw=ngK?CItlJXd{Pc<2PankrgBp zNG+j6=uBD>4p2=8AJc?S=TnA9Mv_FJ7URXmB1&mwH2(N=AK@UK2*kx3G~(6El+emJ z5(zX(d`E?~nlZ#^ADTecFoal2xkw8Gv9Z}s8y-1MZ#wBYHd8Gf6c9x-b$FP>A)5G# ze2m;eEWu1fa7i75h~;-0aX3OAp|X=c#PB9Q&_GslQSKs^K%L7uJS1?KW-FVUNz!_D zQpY0vvGK=2{(VKK5J#Z=NEH5B$X`_R3JNlYi6m<^YpGm}asFAwXu3K#f-&C{}ZxHn!4$j}e67M+V{eaTB4~L=lA0jXl&-gFg=71Aj0%29MHXVVAxAJO>!fBiPx=E&_V|eLMU+rP(~pB zq!Nh5&v-HV4mGsPtz;6xWFl};h>chF(vwhaWCNGzLM-qp3c3k{a1rzW8wth}`L9*l z=mFYrWEcqq=?hfTj0XqnU+;MUpd7)6@CK!{aV?SfNdn!8;Vf-9`XuFeWg?kGXfAbl zxK84T!XgOaH?5DqmNP_v2W|Z03h;FA9AB#yMm@`<|dIe`` z<2XV1X%;(ZmR}nL<~BNuUm&K0z_=6jSTZq_rj=yU?<;8ht%to%(OomfU4Mv92XpMk^>C|?szfEmPZ z)JX!_gh?Gkh}8|eild+CNt&z&=?wjq{Z!!QA~|%z;Kr+sQb=!t^)q&Hgx$338V2IWLH?!+hf?Zj;w?^4 zq78UykT~Lr)=$_F+TsrZr z?&KVQQ_i0(V>Y!qmeZ8eg||7O-%>*@$2rUe?)zs4!J$J3@jFLlCQ-Qb5f11nR-v>q zQ~%^FeF>&bKjs)Ebg%}GPUUxYkxDw9m`pr|Vf5k=T}cDYOr$%}atFbHkG*=1SM(@n z%}yF{xRN~_)OV<3g@!YQZ@HOdVz{3btkGGzSr6%dc!!mySYKs1?Yu<0wy>SkTFH-k zNWb6$JM~Epa$I+_oE^H4sdUrfgwduaXr#=E=SNPO77nn|_qHz5Pc&PGan$VBr#P*j zbBRXzh;QTzo(A1Smh>V=y_{krMI?}|-_U?%vWcLcwbF;)GKx8j(RSh_if75w&00bO z7rDT@@{qMl&gc=HKqek%A4Qy%VN9flyiXKKQbn}HNGT6%iK)b*jPWEOOq4-#4FgG_ zP1E!%{Z4M?jFzw+@akuhM>oC%$|RL2{MpG+=`SD3JdAlrKh+Pcx42%$aytk0b3IEt zwR#gCnnbvXQKo|s)GVQrDt&>4`l)`8@|EmlFyl-i6;yMI*Y#_?fi&94WE2^)ohv2V zdW=MhomcQ`xx6kTWPm2?Y27GMhE9Dk)Wf+U)MVX{C38NFI@UlY}5JxAOPcPEULu7GTR^t#y ze>{}(pw`iqNa@6t`V|GFQX%8924s@RP!}|xxDmNqXqPl z91}q)MUqDb1-gY|Y&H^#S0Cg!7o4TkQfyW6q|BD((wS@tq#u#GkOQ=Ic&HaNRfd}PZ_!Q_P11=-`e+U3OmBRI@)3d9(jZf~Rc_NlZi@8*&U29tloTtTq2y>J z=h&s`T%_6>M+{l^GfZVNeF&!Abmvcsm`@DK4|FC?8c4-YCa{kV+mCw~?Crric94sg zCjEtchRGaSX_8dxXx5GRUMDM#h?LMAE4Hh^0m6W7A(YagjsTFH~`c1!OXjX#`Qq zOqyt85Z&l4Q^;j7gQ#JT^unUS%%Y4KatJ2VUN6(-A)@F*Z+i~In4q0Gz+c8q5__yC zDBxNOi6_|HN+m6{KNhKfa5geKsK@g=Hz)6l+Z6s6Z zx{D`dzFo)&rtyZP>L2D|UBOQKeR7$uwLq0VL_3FMEkcxQ7*DX&*@auP7|bym^f*Br zXBrKhk_Lt`n_sD?S}u@AoYt_3zfCEXRO{cI;-rjb4A-)UcHB(o9LMDel8Di57=k1c zgWHML7xf`|gv%_`!R+N*>jGJ1(~Ee-gzB%lk-5}UYgLg*w1yFkA0LrLx>ONE1U+fR zD+?JY{d5e?TE%ECQNim>r@Vd=(TJ*FkBFcaBBht*CxgE&hq-L)P+PFa^_x(t-{gp+Pg=z6@mhH~5* zj6X$uL_XbQ7Cq^ZpD8EZj3bUrt5pV2pgpOjleLE+raEbQm@lM`?lO^J=|a5D)-t>j zNg@ek)4@gE!WrE_U%Ja&U#LE*?=pvSW?9$bk!TDSNnAw%Ic6lMX*N0f9bak>j?<<^ z)KFn1N*W2)eT-wSvs3TT0yYvU_uGN8kTJTA^Z4{-ZNf{f3?WU!^kX*24U$4{Ge>{p zZ|i9iNRvOwA>F!93K*}0w1FCHDmfTy4fQg?48lXK7U?MtOR=Odo;$UezjPaJEWHsw zqH$ABv6Y6GbXJf_7Z%Zu%~A|4;>ala8AsQ!OkX4#OG0EIV@ywk-gYtxG?73WnX(=~ zV(mb3WuDzn_Gqhlj`vwA@9K8?$z18hAiY^jK}JYd(yWE_mw8qljrxRnU!UQ5+L=f% z`)#?0J7qNS4AMkS5n>IK`#IpoPoij$X9ys{{K{dr+b7B69wO*XyPbqE#?1QuA2GZ_DQ9#KUWB*kM67A$7`x>Q!a!dm3YTmmfHavv1?MH0{v?^B z{LOym)4>_vAc{CA{JOHB%ea7mI2)2 zdtN_f6Jb=+EVoEMrpkW^#mi~QAXbKxNT7Vg74oRuO^S||kz|m>Ov%En`?Q!=D^Bu= z(&5BVXJ5-Kd7)!9OZ6MS#~C5t=roij&E_oaGESy4mVq>KhHhHINn2$MnOZ_QZtE_Z z>8x|KjGfk#jHbVa(?Yzi<09Lv2V??QnMd^te~#M6^ZLd^`$b3uC3pZ=6`oa0t3 ziS*Fv_^8poT)u}XZMrWnPNuK&abkTCgQ~=7?)n4kt!BTE+e>;WW;qymPwAxB$IjOMP{;37UNGC z-EfXzK#VFL7w!sge+Q} z5M8dn$xYIWHXP#VB`yl^IwAVDernfAZz<46^dgolq=OVITJmM6iXPHRf@q4Al65{2G{|TfB7^N!x`}%8E>&9N z3gvnk$~A1!9lDkXd@`37V)RB@I46JM5Jv=;P1BFwTF*-y-SO!2x`MO51`e{p9wKv@ zCUeQ8I}rpBY|gWsl>`u@%j7Y)nIua?gE*%@3#hI6I9sM}4W zenO+1#HQU|D1|ab=Bk@`36gH~AfJ3%0$vCo!Wfa|swK5sU1ihUY2FQP9s@!ZHAc+FA zR=<}NpTAbh*MQ~jP1#7GzG z0rCmvfOR46G$SMS0tYcCPJ(D&5EX!V0~Gi;7fg%SUOveNDqcFK?hOn zvObXK=*0+PaLW|Z2+_rKpt?do|OK zoRwAgu&=f66Vn|`Fbo3>Esb<{D_Df6=pQk7#6(fSE<_&_K@3nIM8!r#x12BA6>m@L zm~;zH)yY!sd)~Q8JF-VU!8SAG1g)L!x|$2b5Q&(2d7jQ1qu&t0NdV^?R*|d2IZuE) zNWp6+(T)~wkNnLPe&i2gY+(Z111I!vR=Nr#lgaWlvuR)%waa+yf4G3G{;D$ z!s%=7q(Mux9qXOBQi;m#yuy5aKxR14cp|JnO}zb?zQ^w1GAELI?H~05pV;-DVD+8a(H=e=feTGF2_T0~X);T#T-)V0x)-Rk2iX~o$X$ST+J?`|Ra&;J2Xq1yO0K+Ezi-2sU2eEug z1wpOXjTF<3BVfK{3e6ZHAqZnhCRD%2Ld?6|L6)9kGuNe>UL+EM!Npu|#O)Ny|EQ3j zvVt8}E7`-}uHo`6mfmT8#TOL&RbApdAu~u5pDA*Do;CK@65;zrFKf^V*FPE5w84&L z4J#SPV^v=Tzaqx7vT3IL692q6k1+Q|^Qe5~bk*^QzM^k3O;2dDe&;NZW~jWwf25Tw z$JFtNx1)|VQ=KjLea>>{1{P^Y9nMf391Oxp(g>HAXdzLIB#sa+(}Ya}&c8?w`VD0? zg0v)x*U7}z4s4-FKEi{WmW1PGAOlDyi!j`>Tso1!RMJsh%voyWD&t9UeP?zsQ%A5* z-gD;YBL4P7TPO5YjbgLB!R=Vui8$+C_FCOZ)c2e^`?y|e4C+T3sXH}_$@V@cnm+=A zIj`L+4$vGuJID1vFJ+%VdPN-RG~OTVsJ5v7DQ8wj{sQ`gUj^hZ3bv8 zhdHl*(Tp%cX+<=b@!{w{31kVqNY*bnOC|T}OB`Vqe_`ubT}>q~QbRLo#dUyYcpCr! zAOJ~3K~!#cJ!o=eBWpB-93Ei;KkFtUsC6#uW`5Cqo_i%aev$r13+%|ow)Pj*>jPa) z+u)7XpQcMlp=*nlS{vjoK5H6nH>lKrhYhY?@{~kGzu-QrtK|z_O+s+G-uqu%Vgcnn?MbD47wT;(1UH5KC*ht?^ge z(Pz9H`A{B^p3;wO_Y97(!>ToH%=ut9=R;?jyeI4U!77zOJVt+7;-WiWaE9@;AewvV zOdJ`+5vsfNZ4Tq1ghu&IX3s}&wn0JZPyL3G{@|8@c4J`=4%PER!l>f?TG991( z%^v9|pAbnMZlFC;gc3^x9$FJmDAO59ta(~SF+&fSC*(G(P{Z{*y^l{g=3TGv@JH0s z-Vhn$Y}9-+*}2|$zc#mr2a5DHzY|>R46`0K@5v<7mn7aGf=Dx|sh=ICLHU(Yd{q4a z3*<=b6Yd-2n_#70r&*xL@pDiP;vn*+q?2hqDm5hAA80EbP6LP8W^Lsx^|X~il+v42 z!sS)zAxR9OEwQY|0A*wohrwVGMF=kHX+$|n5k5UgDOV9(ShOad2pVw^Ja}+%iUR8B zN*d^4@@bG4nMgK0DWj1p0w|}cpg}}7)77do!{z_91s$kxZ_qFGDL%Ela&yR0U7?>v z&GPJ`E^y6xLpnGYImJ5t!j7PK;DY1msiwPw8=a$#)n>hP4=ppN%&FiT&K_r|^@FT2 ziS-@mA{Q;&HAhP9HadkspcgTI_Q#|Il_?W`; zjG`qGSXi_q2`^WuAi$IS%q1%HG&Xr$!7uCOKIuwFniH;5`B^Vf#LbeaKk*8s+ERCG zzJ$tb>5PRNizr;U2*r)aV+cbV z$=4=Q%-<%CR6Mk1qq~LGjuD|5?gMnSpV7s%u;0_Kby2WUi{(A1f3TTGS|7OPnb_b5 z&V9~IyUO`cbA1Z}Z`zqMSTcEumBceoHcAVwm?#-+y7}igqxjT%%lcNX`m;1sx;rbJ zhn%nEcd;~wueeFJ$+w*2Zj&c}P%HE3i<|eEDjj)`UD&vAA=J{SL2{{;NQTo^;wYvL zI7Nxp(upLAqzWIwe^dJ(oYr#MlSU|qDAZcwhyraFklBwTuP>UpuB)nu}A@V-cq$3wNr#{Wo8JuCIEFxdNXQp&TaC9#>N+!|d(S(m! z@#2!<3?@O>bCg2frHV%OYXSAFVK>)xHNR0Hn`ANlxksz;{bS>m&XnO}1Sy0|YvKsk zN&?vQA{@6F#2?(Mcd(KZ?B)y=T&9L5ovDjB#~Pjk(h0{yszg!8Nmk+JB9-{0t0WSp z6Z9)C>HYjp4mZ=07@0{|(j|)+yfouFHC)3_6Dfq@r2!jTR>{q@(zg08M|HU#rbPNk z8j-Z4k${|$N9fKCw31kj)R%QX1(egk5YmYuo=7ZqkW1~q&|nz>Y&w!m7#q1jH3kFN zI3NQgohaR_*Qw(QwfHH;N09C`C!8gWqy_uQqn7X-5=Z7Rn&f z^f%osE%=G6*u23&lCU{~;UU@*hZlp;0xw=Z(RExBfE2!wL_#UY!KO@CQA8f~INU}W z;Sz!YeVdGbYj?wTN~qxswKP$!MJN*`i7+#lSca?7wdCl3*i1g7^*Vn1e2QTy-H4NX zIugg{T%?8~E>J6*h`^&&{Hj+-BUV}(uY4qfoUuHv`?;M~+Q=kQB}`V!jU?#Mj#&C^z?WEf%=0^(g@hipnOGkL4YDIJfAhf;qa+Ok z{qFO__dnQmuIqKq+4DRe_r3d{K8tI2lU&rhJh;xzSv?T_Nwk2WjmYS3YQCI z!4bA8O(Lw~k|BxJ&b1UiTB@G}!Ga1FP_~ooZ5PP#T6ICdr3xFgBMZRX*vTqSCF;$Z zRZ2~*9x^vmnL?2Q6lB_N?8SDq_f~W2!@io*e`C7w=|qc-cRBLKuXKsLR^HXrdG<H&0?^2ylw;cz-e3Ily?H$UU`zB%jPz7SGLzlFaYQfAbPXnMPic_n1k$<#C zm3_AxFgQfm*ovE-HaZ`cXFTT>b}NCGU8(YQdXk4mRip-tH6>6`&;`XNkE-e1Nuh`; zbla17854crQ7{T;_HcrS&;R2Z+xoDy8sod-~RUuh4?fRDegxLUDK3|2p; zvt&o*ypg1IWQ|W*XsAZqebMS?s^sd3OJh%ne-7mP28b10u>@t++9XWeM-L8oIW)S;%YZRIo-wV20WELroD+IubN z7$9-HI^Cr-fm_&Xg1y;=0Ac5iX}DMvH5-f-b}fbG5<2rZG%orQSqpM~n86O+n#p1< zV2^{aC=_JXKduxUO2S694>lU*gr$7*ohaAk6(W5 zIh$=~v}uh~YOka$nz&v92gb905f?IFvPv>KI@lk>Pn##2w>u|r62NTrm49i3@OwULm5msXL^M%=~~#6O9kM7jL79r zDpt^*Nqmk(7nMNGBb+6bX=k#f9w0rK#@5t;2Wu>M&)={?*ptP_b2bgWv~JWO!EUaO zGw--W>A)TaR^>^q(Rt)lRH0~DlP$BxkkyezDn{o)yD!i=hj`cpF%ox9FFz%DZ^taY zdF@WKC~uBBQ6k=KnYRZ+WoJh55I)6%=Ws1HH3y;tNhLzD zVn~&iz{BJ736Sn@p>vns@XYCN>-8kDGJFZFgl@oCPmOzB3DATAN7hXv#s8akqm=_%STe>e*K9*Jsef_?Q!AK|gG0DzeiA~kzX^vbLe4zX7!08Acq_FCwUOb2 zlAiHWLRb3>q!Pt4#499ELi}cQIj!ZseiJQ=;Y=5NdVDH-fLW7j{^K9)21cUI5_(bR7G?$TXwy+efB{}1_9-GjBWlX z_}iSBU{QNlN$=KZFvD4_w10Ki-|E6ma1^}zNIpe!zJ=^l+>q+x+oU{zuZrV;orSN^ zoOJ0ln_L?5kowuK%A+5;4O6(aV(o+QjKt6aU|VF#jgkR!s({;hz1_7MgrL?i=8EdX zY!#utQOeharMi5>pux2B->vM@N_?u0rd@{A)ZEOSJ& zKT2y_@O9m8fcz*w2?cD8c9ChP^_e@RG;E&Dr_KoS)CK=a)rr}dD)Dm}43U4Cf32Td z?~crQEqjw(xPFrCaQ(*^3#twj9~bATn(`+z&e8^Jk#l<{FZFsfB@f}FaCf1y?1(YP z9=+|yg{Y)|n)Sa+o}if;FTfwBY)Z&^b<3aHPMU*iJ&3QH<~Q0B(z^>-) zf1*AU7h29}-)R42-_jYk`9V$FT42$qd(j|Yozwj3?a+Tr?m&;|!Z4Y0PJ-rBB0ilv zc#$Zc?;RzCPkyjzcrn%@yImGu{Kgv|%r(JVrQL~C3F{p7zrx(?wvP^x;kux>*9qms z*22|Do#jkGI4D(R3xK+bMnH1_nGB#jpvqoJscGVkobD zcB;yACM$f1n|wR)A=*TFN8%;AY;aok7iCR2PfO0V=Mn^1laIu`VpA%QEs9;j9e{_o z#(%_Kv4@=r0t6q)@=dKf#5>Fm(7Tp_fmzs*pgYn&(Zf-hRDnv2biw7GSBAGq_Q2y3 za*F_V46K@?zP%@MQKKpKlh6}Ud$@fK3&Ej<^C^~hBgrRVjZ}R}%Oaj9oNV$*WZ?yt zJB)(@zku^JT;Mlu*J^fjdQ14XhZeBMm%i3CidP#Q$e4bEz9B-qS2j}T_^iPj=WVMn zhN13(<~+NgPK7#EFe?At5zUJ9-$#8wM%6i;eMXnhWmTo+ig zUNpE*vn%$iYtr%WR*4Q&*Q7g7V<|Y1eeImNo0WI~DOMrQ|7*Q%>hWzBdvX2Aiz2$@ z9s6eMjWh8w3E>T%iaJ;BKoBGEtz}bB z{LCel{fzIT#)LuzXpg4EUweg&{!WwyZc0g8DL*E@mHE6VJ5UBto1V%1kykuI>ND6@ zIH8-(_OndNs1Ctj?!1D zJIwp@$$M!u6q1@u{p4i4dGOHE+?mX+3u%wU;y>;7zI#T}lK3nJ-Im-V0<{sQHt}Pq za>&+yp8isnimASn?*5aaB=fsVV^L&?H`vC%DOVF^z=Ip{V74-5)E&P*S<0o;7dYa{ z=z|=xFo;$v{##}9tzQM=am0rw%o z@dab{;uxJTq(ZV;GeHu(uw=x|XVZI~j09&sn;Y8q(7$dl_599@i~@?m^-r0|SqYMv zUVi)9H6NW!6QSJB@erYg!ZSMmvMqKY4HSOglWxW3nIEikvY;TeX8Gyuvy4lcL2U&r zlsfASdl-Xpvm{Vvh?86#haGg0T@|51RpmNWSR6rB6V`?X5`uF~IMqSODPzX3J{$@5ZM1vw&(auHK>0OKEfr>U#U-Wz3(UJjTx}Q~K3O8qJ61H^YR?c-OmLrMJ$yd(v24|2 zl&}SvAl8EnL&I;x#`tpHgNr6gQ$`4VZ5`v6&nCFUw4|J?ki9k;74>;u&Y}i+XqaE9 z>&RLW*H8~~9a1Q{c3X${!Wt6*npP=PoiV;3%CA(q6;GnQ-o8u=E33x_SH@SIdE{i| z$IT!Z&oeH^Z!U|Q@gNo;y0zQhX=eq0x5Qr(rkw1@*d}Jzqg_1l%6uoC+z6S6G*503 z$a?mScd6!D*ebAU3WI-g>(}XZE!5k$CM>5(?RmUc<)NP5*Q9E-^jH0|!Vv1#UamPB zn&x>G>t$*K1BNpQTAA{B$Su>VTCJ?(EtV z9ExLQ-=sS(zr-|4INwMM4sIIgKN2ECEl}wVD%oZNj;FwTybTCJu=}B@PsNYvgZ(P7 z=GqT*q4MS7@-R$dw`DoS^b207eBbe^;={y0qM}4;Aup;RcKCkV%wfZwR-J{-`;h&g z1l(bFdT@|cwy)>{yx6_awqCbM5K^mpkAC`3 zlXzD-IcsQ^)R_0C(oJ!D+a*mf0V+{w0(`q*vdHW>QOUHi@RaPirdsN}o*bAJ7;q(OuJvXn-k zJ4!JJ6AD)4gbNTQoD_DfnS*m8cgsb7m-d7{Chvpj$q*|RD;5@~O zT$|9}vxB>=)BdWPWLWAKzxUz2UodtmWY> zz7SZg-xHbQIT?I|hfV8-{!L%4MQ?wOF1t~?I%Oe|8;PSaFvTz9gZ%;;mTWgs6n8X& zTt&-e1C68#!SsC!`Gc&U|0WS9-ncWb5;_+)mtog};@3WO<(r%?sUc~L13{jRLn)al zD#Zwi=6y=YO@SH5Xu0xYzX#XSMs&DQwVOV@#AiOc}ZaDT9MCa?W$A(HV?3FluZfn??NO zHa}2z$4r0wVGj&LGNIzj^RUv}rc_1U=n#z18=Q}c-7fMbes8a#{h1TD^Pgmne_RK5eqfd<|}wfjMjtJ~tKE)vG;^O-)H61K~h5$4^CVP~{1hH6R> z7l>5#B-#@=J&3c+RojtYu~28A$9@gA-N|r&_V@NJ)`{zR=r+w>QTbF8E)4Lj0KF}J z`y8A`FNXUjzTRgJRN^v&%0vSc!ryg^r>aSzkG{e zq7X6>Wd3u!tL9pO4a9OfV(ZL1aL!xbwoCHNn1r{<4uI}uQDeS(b$0hc9r*3;QPFB~ zW`%__oezYA!6FNEZGO;9$9}FtswgI|y|O7|gD2wX)vYkOq9I4-Q1#FBJo-`@AGd2| zT2HvXIsW}He0$p~0xqo`!U4N6k^16Gf#FPo(^)g4Jp5e!=H* zXWg3XZJE!gNfzWPD~S5cR95%HE$6arsWrb1F9^sSHkFdHzwZ2TVH_1y5bT1up(Nqp z>iM`MEfXCcG*jqJ$)!@C|I+k9F!ZpV{hPFu#tBUiDd-&62$|I}RD@mf9E`W{rtKNEIwET}4>2L|xFrM*qwQ z=bF8l!Z!P4v_~js36!UtIYq(DHJE?M-#97!u~sYpg86Yq#FhL*wCN{JMkyA4Iq#rV z(<>M7n+wG(nJq>>V;&l8D*pW*%f?;xAGSk+GxRkef9U9g$PmVva_Wch*Va(c>BusZ z@y%=5>r{L9<&|L{{N%!IWGvZK^ocGi5BiClWhgH#RU6>X)A}gmVe7RtB~cytb=t^e zNp59{7rm}K$k`$L(tY7PmE!TAI-{NLrb1@zuVz^gbn@X#yH3s8NIvyMSH&k|i|%C~4Stp^ zl*#Dqyd@yZv+>tEedO{7cm4m?+599K1`zN}9=YD^h$P|O53r}lW8hl$(NKR>>aD$- z(woNYtrP!+%8;w>pejUX zG_TXkeU!L`drHqQwA4ph4WvVd$5s*P!;(wf_Sfq;zOP3J>fz;-%dU4k88r#Z-8LsT z*g_sfzZx|et{{}s4k=ir+?h2Li!Z+%VrjGq1y%9vYE$^QQTvjBc$a)$vgOxyqLy#2Yea@1)$|0VP*WE7aUUutGJa!mbjv8ilS|Z5~zro+cqjm56)8U zf@$xO8Noo(cqnQIm3BnD*A7Dc8}QW?|Eid-hL&J>P2udtrAHV52tvSs=!7LH^~}W2_8K z^e6b|uayN0-zoHr3r7*rSkA)@g&@4#BdlptS-RA}^-&XV0aTmLD?e7>FfnO+UKOTXa{V}M$BVR>DJ+W9 zL*d1mmaYEsRO3wKgYAJ{E=-;Tdx?-IaFT&$a(s~?O4wI}!~-GQk81fxSAK}NsY;;fm?vcmtuxo#$E@SNA`?JhT;Zoc@klxO5{ z74Kf`>c>RGqm>ZsEty^Xk0Zrw`9d?P%$HtFD!;P$mP|z5C4bKse#w?j*L-z{tq*PY zt6^rJCfGiRK6~5@+i<8Z&vL9&JrNQKgUydV;f>9ULT@mDetCzF zlb8+rohH(i|6LQ+s5fMmHDjPtr8DO3Sdz5$&%3+Ao%KU!#oX`iQr`lckXDviF`M)!^Gsdp-%e!@Nspt*yMibODC0mHB zB+&W0uVv_h#9PG!C%NOGQoc-)#Uy7%QfOJgga4Eh%c-AkZ>q58JlK%%x6qAk+I)Iz zwZ6!PvR$lLkzJf$VeeegM7BW6yEV(x%pYpaK<4CnnG;BzDWIyD)}s+Pl{sm3 z;NRn`7GkCcDADr7^jfF{IYV=0mC9=3Vcl5d#`|qoXLgh-MP8HhytK;)k2KyUE>1$^ zB2al}1hQf&ys0viEFNy(uNLS#ZET}4fYNQqKF+Pk<>8ZQ^5%OD*FLPPkg%9F=`Q!5 zF}57zt;o+hsnUT7f1j~^W)HjT`TKDKnJJgBNpqF|($OrdqB_Hjlp^OvLb4N##rKfR z!R2>Y9Y=3mXm(tt@eI(1HUOV6T#9ob=;Zuh)VVw6Y3MB=*IB)4>#r^-Xaz2YbJIZ4 zA1AJ3qh_9vDs8gx_L3MoL zw4SL${X<&!YD++Z`1l`}NtTmJ6-+&uRL%?M8|z-==bCl(lLioV0`?;$hx3(U23nS> zFftceEeS3TMz{+fbY!(?fSq{Z{Kf5}W~Qy>lod5%A!N3G!BvJtW<5!AMFV<6G@4~Z zvalzkkm=T1Kh6muW^F6gTYUrD=`Vf_f;`NPs4I@G<2ifeT$N=-Jw2jfju$7qL|0!w zc;P2rNE22wUWad%$d2A^sKz)+R$2$B8oYX0vAJ=g6!oh%Ram^0Y==I3P#sdtvgy&L ziu_lb_|FQiJMGPeVv$aD*Yn3cS6+NR1cBii=O^++Ax7D(a}Pe5BxP)J&nOAv(-=rB zZAI6P`CHyJR#F`&9sw7QNsp{@T9JVKyAWX(SDYd$KGvxD@3^)d!Oz7+rR9X)_4Jyh zxxluQYdz*4YtrXY>__xB`lbO(MtU*m_ZfY{g6ZP#mc5VP_#nXoMV7B7eT7V*?Aabl zLn^!6Y4n8eGi>VFvx&x(Y`hMl_g>hW3$Z?BHq^0_4EDyY_Zp?!+vs;?_I<455>RL718ydNnW1|E(^$O zwWsz`q>t1SG6q4hu(=Avk z5tYZg%IDd7rj<5yr@i;++HLYTy8X@|>}?E8%J5#FW{J1by;cH<>a`ABc2d9D_KHJ< z`*`r%JPZ9AzD$CDF@-Tj8&ij+l{5|Z`sM*qQVHf@>(s~+*<^^#dGummb#N6MFcU(G zATxKgnmub(SJ;Xl(;9;`e-#-5<@pJ6(f4 zs}(CJ*I0+U;ZT~ZKtvC)I<_GF250MI1|FOae*#ilcQEBz@E<@S@mEJNb&?u4LhBNx-eYrV5?}FkP-}K**R_E$blD z|FUDS7&Ms4k3tY(|=X=@X_+=kJ(E&$n@Cbgkgnl>Qu%3lwLSSwm-?Z!bjscAS{^~H52D156QFt zJkgRzyD6FtK>h_}x(7|!wnH!v+jk@6`c|(8C`G2S#%sdC!qLFnMr>+S zsel|ImG$4?iaxcc{xx9i;Lcdytb7a3l=}U21_+Vpu?mZ8q^{baNRG9nEf{1?vRw#E zr0Gfyf}WDuS~Ikr@Y2p;_Z>t4DaW7M14sD@3gEqv%lzaFD4@H-!YHb4wp^it2d46Sr)l~Z1r2hJwypedYDD~70gWDcr8F-HTFLpDAAPaPezEq-8Ds{Yr z#dV=yFAR+6h7H^1*F=r`=@!(_Rc@T*a8rFX*ZYP;a*AHuC_LU#H1oS7DF60E^C1TN znE)v0QJL=Ji{^-X9C zl<(PR3_#CW?;MZjZm34QxUabV!DD#52*<2MzsVD|{fOPyuyz z6Q%NB1VB9X?<4@Fce4((IeC{n5T>AEAK+sW9QG|XS5HF>wf#H+nzZG2)sAsWuzt`T z(ugTQ2f4fVAQ$+w;q;{}`_IAy?s*vn6{epJCpW zmPjZp`XsZ0eN%w1Md?DhaN_}=DX>FjZHwoJRf+|Le0hI>yiI1hLCKlE3gMAA#T8ma zKe#~r$~B#klY(yvtbJ@RRP`h*jWP;j^*dp4!`gt|Lv~$9?&5}NWB%~4YS9*on6<} z&%4uK+7T2ft*;Vl+C%c-{ZVmV(PW~(4}Y;aGc!35XpUw#RYb|Ag=_LOtSjcvSrdJp zsurG?edE&dTLVAsLRwZow%jrD>&-Sc-HjgYEHq#86q$PzR=^PJrH_v!d0vZMaxhj6 zk4ffn`WgC|;jcGiiVEU&E2H|2$X^-P68~s4K4LS`4$(^E+TRvOIi7PS?GKS1GE(hp z)46lgX8GKq2G2A{qHb9?PL$!3+22%vE&rYs< ziq`!sxgcO)ljLY3nR4(ob))lFt06O6(%6$Kf32~FwCcnBZj%8t=I=OU-LcpJczttNWI+2t}5QhW@Xud~id63})1&DlSIg(@L z6OzE02WJ#hA==U2{KenKu`{|oA1u?n#S%}c=dEDO!SMUeq>c#v`BSd-Vj^^LR4HDi zIQQ4V_v07&rSwC18IpOeY~_2VkEK!z2hlR0KQ(BU)gTTxql-VFotF>{_{huyh!Krn zZfy0lGZXo?it8K7mjBWb#FDWHf&gsZ!B5dnd)4w#}d6kiSw#nX#t~Yp8nIYi_ug{*hGHEOW8Me{k z?XyEUsyYu?SDt-8d6a0L76izFE4z4l*FMTnn|Zp;+xVz8DFQKtPprDo2yv7??(~rz z_|!-7tX%qO6jSzLK1;E3AD`%6IZl!Y~ zEyhda=BI1_V4dRRDOqK-m1CSJoM?&;yf5Cjg1=_|Mqb(v-LMcniK1T8wTCAX$_2q&r&La&@5$HXMtu0ka4`Y%O zDt>$yUsWEZ1KaD)O?j81{hxV4;5_VX%oDQgner|ed3l!#0EM1 z?%0~)=WvGa^d?!?nrIhcHLWGGMj2O7oBM79*Wb=x%W4}FoD7b>OGN?Q<3?Ep7AR)E z`9ywhb+&+zE(AL4l;bi3PyZ1S(&gEqVC5HlW^SJiH3HC(Jn`5qYLjTOo8C`T;DKJu zP3Te2Lw9CI|B)uX#AzemhklU1fLj%X*KlW*SCmegK4n$f#g3T*W6OioC*DOHVVP_& z7RY(+;b2<}9_IzgQL1e#VSYOt4ly}ge{}Ksu%j8Dq_&8-pUnSYOsC5=dInXIu^>Y9x$f}Lsw=pE~~8UfEcSRhI}XZ9 zUNXX0@_x*~>&H2p(x{cg-M!%&qwz~WIamC{Y<3K63SKOauej3K8Crj9K<~B(tES(+ zU0qZSZmdrhgjGWLcyxd%M#YF{`U4b~Ab5=9;1DLE6$(Z%2e)k%-p;)s6Qr=`f^$qfP`!R(jyis^Tem64=V%R+Mp#z$I z%6qSpk&Z28Up&_@Dp9)nmr3-P_-_TJGvB97xxCaYQa|hfX1fGYBmJ6qR8)ZhBKOax z>&bb9?5+dA!8?sn-6AnzgP3_HmI?Y~=R_ZE{j-F8V@L)<*Jlg`H_Dz%#8GG2615x* zuZ>3Yr49YpSyc7x{LxH8C}u>)(w!B|u`?FzU``i@n{cPx7qtt;cArQf5~H#b{2Y9!>YKF+r`?OvVNrJ9>&kfVX5KoM zIrUrZJOid#McLut($2f9gZ|MRCSolia`ZoB-)+7a#6io@1l474xB7`d+`$~jYKG@EmfgE+)uq_%IH$di zve^=o>%u4JvJ@BKOembwIxp8iM@q+pYO^~|%W>cIS2-lAD5aA~=4MPA$<1w+;77cl z>P~kS~K1W`yLBN}005Id97)9YQJFGMY27a0w{IZn32&p&>$;UvF zP_HgfM{1|>5uw&4O*XN!#*idGoN78p;C#J*rQJV3QH&QGabuTr>Db0nzABVP9}&tz zq~2qS418Z0_2mwsXSmeFIo`^7Pw1SFQRUPY|=9ps=vCU z+4o;`;!5|@(?R!gW6T{o(;ZkoC#zv{EEJqMH;bwXq^kCQu>rwx<5K6TjU+!tvr83P zc485?1nz43r!EtXx)^C)eq=`Hy@a}3nckOO3g_f*>W-6_J_w4G#IjLW;*11^w6d8| zdrtdRa96QnJB)aC@VkETrRemgOIeX!lV*Gz|C%=kg*{TdMDlm4pJ0p;tIIOc#4#h7 zDgGhLUj2pM-PYC(pHbGE@-}!5sWsN(Uv$38x7X`)8Ft5s&STeH5-bV>uS@%IdTbo& z&@;8KYxKKCa|LN-YSY)yYI07S$m)_jmQf69JbnXpEK1_LT4@an^$tYsOC+V#|NcKL zbd-JLeZL#~Dg-{PoNhR0+h;eLiWO@248eMrU5JozAjn-!1gF~Z48ZzVi2sdGWUZ|5 zIyh)ker19_mP?^Ad1KTyo11UAf2d`Rs*K;U^gjU7+h4>zalo0sPM<(1(2MG!hUtsuOfHZl%Ko!QfotmPjKdIBX5BDs=0=*c?OrVD4Qq$as8(Bu&_8U zWcY2`buvzRQ$crNwv*0Bc`=0F0h4WUJin_qZn%oaPe?T6e zj*yzRGnl(>!WMbZNkMZw?WoVcOxnah{mO}M3vc^t!j`>ve`%5tax+@Ml3W6#Yq>Mh=lRIUIz?Zn7rSnbxBKS z?nOqk&OJsV=py~qCb&r&)~G`6?n75)mJ5X+%j>kr*czb`D#rGed zo9>>W9(DaChB5Q}JM1)&ArT?q({Zd8yYY7!`|XwA9HRuy!?C~Hi|D6?aZh`O7x)yOc-m(6#d`vt%DrB z2A6qoOWCOGR`DGOvz6(i3wALtIv8O%^Xr#h`K67hP)q?kjP2>`Fh)MuqnZr*EVJPg zxoqs1(Qmu>BF~gxA{&MkbB~mt00umbrVJwdi}Ytj{1kq&^g(Vd@`Ur-Is_=VXa8we z#bIt7e6iJ8izLTG`TnMy-YoX?MKtMs`(ATO?BMYi=}KBS2u~#V5kD6Diun6@xaa+T z9l4*|oyk?9=0XskKd%0Zq`x{=N|dBjjeEHypIJO%P)a3|qG7oNxw#p6%rYuVHa~9AKQ*@B|F63=Y5a~txZog4^tJ!Gvvnc&&hpIlkHhDCA}4==cQQLT z$D;n2NA-X5A3t`z|1j~T)bwrnp-I}I0S-g(M9b!lXC|kM3N@-u+q^8F^_Au$&jX(&_cBc0Y68(Zi(_eq8FYHQr2c2E`Mf33gvj9&x zG43+k?O2am^VD|}{7q8}4V7sTX8yU`xuP@S^Dw@zX76lX&pnkKU)YY`$J|3pH5X>T*KizpAcCJ#JX zuBf67a6Lxv@_*<2r!r5FXX7RoX8p+&?k*qM2ZT3( zr#yT9^L$?+DXnce2@pbts%xRbZ-ecZAD?*toO)j_mH{soRb6v0&_O;jLMOxyvYGky z)^RALQPE12YM3%sX|P@yu-J&D`{*<-S?I47J;&aK?K5#|EqF`RHw?VS~rWyl2U9kpjKhS!p>gF5KGhL52r~RYV zA3pzYpBB@W8xFF3y=f0_U;I-a{^Xs{Sss^Gj=0S}eH)?zFn<4&2yros#uEhNK6;m3j{Tunw}LT4Cfmi2Ccq9Rv!d^jc3S!szG5C^zQu9-uKg-~;t@b+cY z2w(@y5HQtCatr1tl}yOvm?IVI#% zq0gDqP3p(b$LYU&X1v9?xo#`Hu_eovIev8D@V!hcU=_w;%LAdSGTQ*KU&4x<{hsB{$(-WfBTVtX4F?= z3>mZB;O4K&a?(S}eWv9$UFc&=K!;VmtDg?(O6B`pwQu6ReIr*eCa) zLr@J%u8%^PW=o%A!xiWj^YQg{LcgJq>!qDlLJBNq_l^jcCj=|#j0ESyV>dWe-;ST- z#GYU+Ikq?Dm&d>9(HztM9J{7wi=_I{>Y9FT%4{pcGSj$u!rgQ1TKq#UuVKhveir3s zL!V0p!Q48$(}kQ57M@!PO-5FqDY*5PqeG~vjNQD1K+Am$ zsMZu@fAIjF&5o%$kk5p9x@?twqWxI9qs_iq!s#~Y7Sh#+2M@UgNu9@B$k7rd*35=F zLvj3Cn{G_N;?KMWz(sQV7Ih?6}wZ_&3L%qLOB^9vW}}B^brTbd@B3Y5$mTbB3xgwwm_X z)<`!ffYdu?(9M=5!ZNDBIgO-^Cc#gg`8(fWVQb*J(8qFiXb!1;Hk{)Lv@DmND`#OKIX*CuprkSNUjlo%o(Q(j>iw04GdF z7Yu>KHKmQC%`>#(z-eU$wT!1rIUOUIKwOOX9{gY|}x#spaF_)$=3iuU+au zAN2dwa<0z1cJpNG5Og>EL>$F!Tmf;CSy)&@Gt_|FHoeqzBgix3TiMXiX*7#PcV579 z8}3=Et$JzWx|10R$9%zF^(M7XN?B2nj*6*-Fkq@cshFu=WFXrz_HbiI?t&q6SUw(< zzLzT2A93<#UH}w|B}*4rrWe`GUZOsZbsli&41$_Lx$c@~G#;==6@ZjylGVlwQ(12B zfcfrC^+i7(#ZEJ6ESuwXe-euUIPg(J}A(4=AkD89oLeuSyIA?WWTTbv)_% zEi~emjjqM+`VH2kOOXqV%+NX<^qRlqtDs&g@|6on9O@+lO6`)_=)J}4Ri+Wz!m>2PZG)j7`?UPuxk5arI=J3(FJJeVSvklG7i6XA9!q8n*vRxrNi!#iCx=jFv}!HPn8 zctKc?UeMAqlNk(CX4HMiJiq1rDz0>tpuzRnva)KSGwo%%5qj~*M)w9jFvMs$NU~7} zm!U4lMd@f6iq5c5{^TGP4L`(P>FMncm* zItLX4;Q?pK6nSaTt53y;Y)DCz}gY zD)tM2BIT_Gr^I(_O!n=NHE~{jqx-V5x295?SZq>L?$7~?06@j!YX;KsCfa>P%SQCV zyRC6t-fRR(BSrhPOba~<>M0@ct4laDvx6xxE}AwC^nU>9Ko-As(w{(W)G{nxOcg#U zr6&&koeE6enRBeWw-q8z21AcU#J<772w z@smdo$|_p0uFU)d6dztJ99JOwHoTZP2_R6OqZ>{g!WsNHi6WR;MB-sRU6^d50-prn zMD-9Zg2>?#KIRhxtfmF04x|_#Sy#Mhp{U-08%vhZjX>VTkC$LVFtr39s`qh$4pNCE zm=;1X^ck87B$|5s)DnR5HZ|BhN(2Tu1mb5DB`87&p>mWF1ZZE*(J60{fytZrFgSrh zAeV5XtU)mOh?BJP3cZNrUYrPF7{F)b;$S;|OgsqC7cYLv!9$SVj~~Chh7;9yxJ(BT zq!YrE0I{HERzU8brh%Q z;2u)2r6+lWU}GMzG(5KMX#jzhOmk6W(6MUX^dfVL1xATQ8?#XY1FNDDSLl?32m2(bjQmu5Uf zVBla6t+W$Q1`$jr7!wF55CEIINF?&!C074U5zPc(0(toG%HuR*%NOM1Vkm*APNyBEj0QTHNhD#$e5Mj^ zUtk-Jq#^{$Qlb$ppaj3X0~pLEo?y9|U@U!;CcHYEvouRRE}UvmL?;C_(~BJsxa2urPEK$7z%MD58xKT%tq6*+CsU z=uV|HsGl@;%H#Odt?Q|gd*wzPVltgb-KsUX^{6bPRlXvPFiud1OJbQumVUrOnyF_m z^&Ho4DVAV4P9N>fw-oCZU5wwjO+F`*ALUI(b2|}K>OC~$kt&{LAm6Z$%la4j#K^;h z5TKLvTbkrixm(Y%8JG0q9`%q+ne@cX8~nv3eVi`br06RI$bZ;_#eV$(I7A1RxmT_y zjbn7s#1Sef)4R2mX4x;q#e;|FD+7wU}nwi6Mzlxu0<)v5!)k^iM8O%zLhs`umAp@( z9%B{>1o9C(Y1HQ^;UFojVvGJnGtC^(qnsvPvWTMti%vbPjnq>`9ZihJK?_USN3}l0 zaXn8dVVJBTm=nV;iSF%ZB6cL2#r}{1HP!8hPUn$hRe82^^ z+HU=nKe&Nm)U%CWY0~j{wazZk7x)~v1mk8f50Iq}zT+EvH9zYi9i_z_)ARhwJ{`;t zxGm8q^auadOy@;w6Jr?X{Xu`yfAa>**e(0y8E(}XJU}tSIK*LXWClT8PdnlEU2Nu( zJitmCWu@*Wm+iDsM>28jvfpGaTa8t6oK+lRuWr#XD8I`Ccp1q^rZH5VOd(lDVI!;{ zknJpCASw2{t$*pAbmCR>?MrsL{^?7aJw6sYN z`pGDHfLZnjMA5F*x`n;+z1*#3I+8p|;%na3YWse6^1ZyFfAJST$TD8Cs|cdI`7n)G zWRr-8e-T2sj;1^L>Y=Cf!Jtt)^l>URSALTuNwi}0Z{2OI)P1^9E)j~_wTxkoG!aC* zQH_IkT_F>R=VwNcW;^iVli{?`&U}W+2-(0`;`xKoGMa^)(9POT8EbigI@)w4UV@FI z+{L}-3*^Wg`)9^5ozYZNuYb_OQQjjIQ@0b3Po9?yA{fpv0;rVh8KtK%ImtQ>@Rcs7 zfIMv`k6?M1HdG&A4}Vij3Sk=0NXgV=6zN7ruu*TOnS469mM|iumHs5#8#qe6_~mhi z;nh>Lu@@(Pd5jv4n+{nZ52=eox|&p7PclDBPlm7$=oI8uCTl2_lpC3ZG1Y!kk8_km z+%AvdA_AKx8ufR5nU85!AAY(RLbaZ?v+;A9kz7SIw^6K1bu|Nt&;dk~&8^gd{Q&3K z%Rq|sC!S##QDTw9WqSdsL}@L>9G0~Vps)QfsiZTUYRWVlr+VdcQYhp}`q7)E5-V8@ z*0Wk^KTSBcoa8#WLvE0CDvUvhOdyp=lJpSW=+vQ@(%l|U10LDPX)Q7KGg+=Dn0R@b zJ)|*JchbQLV+|JN)_VLT=w719u;-CZu&%(vDPs(Q#OmYpC(8)JgEwR3#k|MF`P9Nhe z<7J9Hm>P&j`C%`r)xY)MdKJ_(ATK8B$FsmMq1AOUtOB!N?^N4=2eXT<&Ht z1MNpR&U$*#fzq2$#@I6n<2*y@PY-QpJ4Lh;jz^}GLz;05NnEm{IZiQ~5iqusPNUpT zGO6|s42GCr@(6KSP6PY(Ewb?$OK2oqUdB%_Pty(CPUHwp#t|kn#T>+78EgN|E}g^~ z(kaklw)3lw%w?^^&@*5v6N}9?$;;%<($NF+yWA0 z&Y+v_)-SM$GD74U>Bl;f=%sVy1{q{-phC~+n*>V)^RN)zK&`fLlU_#c1Gpv7I3~l0 zkZGiYeUJ3kMteD49Gu3IM4|~H&h*iXe*SY5af-L_P-@*l7Z=SJiK4)mg^MnGA40S7 zB7K>{83H&iVT@)r=P05|>gi9SWYLEj@~NZ4ev-3zji;H!6g!q<)ahT;vcs6peD1U^ zu#DYg(Sr)(OI&o1c*Q6*Q)GYr>eE#VqT#4v9pT>9u&C?0$`v{1wKBxlGYQ|n~4 zWa5@L@zLeDB!grK$Fx{W?D2TDNG8)P2`31LK1Mx(j3NRb*%&l4f@li(nG_G)okSal&1h!xyzwe2^s&?UfZ6&TbzC;) zQ@|8?mF}e3(>cpw*+C%fwwJ?fwXf4Pj`D++QX*dwO{DI_MJBgX!8z$c3Tb)+huG+OP#3VtIZGxmP($d)MV1jk zurU&oXriPS)9gq+!)M0bA6>LCpKL7t zB8U!IL?De4F1K(izpbY!JeiUC?kgsBIzWY40TXN6GLg|Jl7F{*SJ73BkdC{uqgOAJw@>vTHx92JaZoKS?H2t8uZ0cW6d=nMiu-r!>Fe=_I6( zkU$EZP(v@$5fqRIhyp4qC@83iJ_LKkf{Lhs6-A07_yj?E@4eRq2np%EC->fS*84&K zg+107d+)L4H^0ubWt6pyKdERDh@nIi#Tc$~i)`vB=50x&r!1uv z_4Z{tkiZV=DVIQc(1az@olshmPqpl(HLWy<8)Vww>wZocdohTU7fB$R*;J8ZHj~$R zUG{UA)Apa_5uvN~B2F$7MPt3h4YG}M^rofGBM(1)j-8y9?-;{CBZM01Mjf?8ae!Lt z$RLhby}~xG>Sm%SH&SUzYks8@5%L%zn0!JiZMej3Y@JUzw`h+Khs>oXX|jw&QteoN z<6Gtsq9wA8N{KTn7%a1;BPqmNyV=GOt>K2AlkE(XfwGcrr17;x=t_N5%P{Q#Ny3kF zRMVh;X%6KSQKtJCfRkg=ASN9N*D7olQ%sJGBStfIr6fqKw8lk%&eICbl>#z3%L-zs zFt*a2J`zNL#M&8TYOeJitMv!teMU1_!s#f{j)!D6!+qVgldiMNNGIEIiwFwYN_!gd z0;R-BOR6+e*W*W?d`&mn+jF?ZQB9`?RuG31o@CSYMj($lsmA>)(&JjK&41;ERj!QLjoh44jNrE2Ns~CFTaYBlupKc~s?}#6vbdU)o zOE>!g-KfXS8HC$#cA!;?VK@&NgFz8h@RuD zhU;RkODyG-@U=WlKN@oxH{0k8l1&JWbt&;g%4@{oW)!E%!QdpyX{jB-= z6Z?#{@+eJ>6yBn}hH``w>j7Tkpphd>NtHV0k)*%q7D|jKjW*mh19Tgcb+xfuo{;k- z=?`*@O1A2Eb|?MBFUri-^VT*ynWYV@w2%DHvroI|+t%MYL|b?sv?~}{vcz*o&N%;+ z9C@YD7xJxcaD*B6$SeFsiLPfDv!uCh)7e_$jk3!n)^Xfu#Uo~a$tEgjk-3EbdS0vl3b$}56S$GdMtT~A;c0)9X>tI zc`7B2D1sSFHZ^RfIe`R_NH9LCfCV_QbQf9p$j1-tDw=T3eAsxKmSpQCV);w9V!O^7 zJ-N@bojx*|m$7(K`{+-0qo57u4C7GkbSp|9@Q%?Ji039>($bD*n!HpV=Y2-sH807R za>x9{IEC$QZZ4F!jlTt+v(Y{JnTRCtq}{_FC%w6B{7Rw`BTiENkC@jOu4Ak&`l`=Q z+sFd_kF?=8{f=7AHj)`BO=J;aL}@7jIJt^}i32e7A-zBuGbNrt`GOeSa*!l~SV0^? zvV!)6v6b^w=sS7?mz2sVf@n(wezf|x0Mv^`7orI??noIU&8uc}+|H+orM14m$E4{o zHps_p_pRiVy3BQaXgtk!0__9dFYUtmIGrL-Sc&=)J$#Lgw(^)PSkI$b~;sJ zQitvfno>bgqzxWumXx9ty@`nNF%?Xb_v^NqaSy%tT`$9<_Cf-fwNzzd6kb zhTt`}OC3|0$`I_BFC)vjotQ zXnUWibCcPc=e=|7jtug>sjc;pGfA4sLcPcg!ug1c6w3*jN_#S?ppJR;B}!-MR&L8U zX+xMSm$o$4Lwc7&`9ONmn$0{&0$*{Oe1h=DK_*o+@D2lL${XzCE>B8lqL@Vwq8Y>k zq|k+8s-+*X1e3^pB+JLLodwM-40ty|@gH(gsO zc5=fqyRyEi^}D^U?vQ?{ZFye@n6YMiDbUfLzh${STra4jaDx^T^(}WNY*|`ndY~(tnT&92;wVB6Nd6|c4#TZUd$R2J{K`P<689{rR zFr6)=^B-E!TdL(%dXq*xHi<-1FV9O~;*6=R;z9bD{g|yu{3H+Ra`S6l$X}eIx4mBb z$iPNt)z+onTDwRd*QLH1I@PW9wb9=jhWR4wKISnaUPg1&kz;&oEVX~ogOXxIo->~2_ExeTLyU0lH)7=iO<0K^3#^s)M;hYjU~Hhhey95} zIYBTET}T;4jFNUlGX*y>OxIOhp#{;>LY^lQfFiBYVJz3P(ws2d;^0fUSC?{_I~*gE zavq{HQIu1Mhg+0V&nx`OOjGU73{ z!Tg&jjUt~gJ;z1PTP4~>pY`^#Z{b(o#~UTF_AA%i7FA7!atAe2|Bkp&EtL^Uz>PofFJ#U$xT zQ{E+l8gk@0(parWxJwc-1QLiJ4qPb8gVL2~e$lJsGFDQF)IDTSMmbe@2_XnS_L4yv zt%=k;c|n>}XTEJ%G^Q^nWTswa1!2K$bQ0(+O7t(esaJTuYLu?iudD_77@^iawfUbW z$Zo-F`7YZj_3P!7m1pdc(Ui(FGK7r`b3A2^;Gz*Mo4jx8b>=x-I-gVCy>^l@!nkBK z((`gsN;L}AB>Np1#)G;`uFB73(t{-29O9;y(Tc|6=3ZJ7M)i%Ll(RD0v67s=EjY6+J> z9J-BQO87)~bC=PWgzNkK&23r2MA~qVv?fe5^c8Al9BDM+7JIp?>$pHZL)kzE50gq` zf(gNoVEl0KJEth5Gcg2ll3Z$K1s#ah9bBbYdP^5#^%31frTXj7T;e(U5szS_+KsO{ zDb1NmN0xG$d~LxJPB4@(+)~A>^fOZBXBn-J(3Z?_vqPj(| zQGy?e3l}a-5^0P-Tev|55d`BP1Sbya@nOp}IuWV2I7f-J!^H6~`n-hmLN;;2$u08<|uy zRN@I?4Xp^^3Z-}n!iC_6Vo*c_7A*SU4hz|a74sg*UlnJ^lt!pjQUOPDmF3nG^Z z!)?!Ct=^KebS6UE5k`&i8*^!?@9-73^-+`}xg+n;nk^LL;Q$9Hp|zF~%y~j_$RS!2 ztZleJIg?~837U_OGOghd#l}XNPKq6>i@0jEkfTP z&rpLOri`K)fhy$DphL-`#0X*r@p_i^6!9s|2o{St0+~WMF8<&e)hs0j7w?OS$@3)P zrZEQo8lpQXl$jDukWA7l{Pij!m}F6kmvDUeNmKkWwSW);3C4kgAY3@~G$mB9i&~T% z;t11A_<%_25%RGy2*$vt+wkF(6ck&g5rY#S7OER5piUBqCy;(vh!#2NIyWi7YnEsKU_S76XgIl9xhOWg9scL|Jr2V z)dFnV;6O;0P~1e}#z!nXuU3I3SU1_y@h$A!fi zEF5eFO!`9?i!=fQ%;`Ki(%ACxK)lRN%s&2%PxHz{VqoX@$Rz zAQ!J5paF~jVGyk82wq7f0H^B0RxrS2*%X8)X|tZII!eD z_^77|ZlE3uVF+%N{S?z6IW)%~2ZDoNDF&|K!z)7>PN;U^D)ss<1z2*7C>rQWC?+;_ zz$QGHa)7qDbs6;t&Dleq4&VY6@*SzfND4y;otK#*srE!I%hlX+YRW3j%1yRXp_OE_K?8i&V>_v?SmkL%hTifm^G{q>5Qs znDQuYOrtwPiDWr#2+>>YrdW2-2!}d#4~5*8Ae=JvU)bHkryfpI4wTR!@$@B%r-{M! z4`{AqxQ&+*41~#giE7= zX{{%)^cIzPWif#S$TUK5&{v{y>JqKREze66T=d1pW`t&76N>|rbto3qc(EBoFit)r ziy976OdXSGMi|)$202vVAs!zluM$Tf3%ErMjqstIp*PXY;u6LG+M`<#fJ>$jiHmdi z@S_VMIAjXp_!CSm9-TuyE^2XLkc$_eE}{(nb*t~DkXo5R94?ZvF!WnW@lZ-N^&G_n z;)o#N-@ouQ0)b1I*tk#}G(k~)gKX+(Lnuyc{IT#6LMU#^s3DvP{JD)_P=$@jCuCB_ z08$BKB2Dn;GL?AsJI$f~UsU=ltwh)%Z3)y=3aOWuh{d13r8AA$O)E^xD7UD` zjT_+tMbzp>-1xDETX&pi2Aj#kUkf>;75~H~P zUw-2OqFBH-O7sH1lWUHY!}QT)Olob9E+boJ$^FFXyPT(vh1{mfzM?C*EvMx?@py4# zYJ1L6Evbwngu}Q%UZ*K;im1intY*@{GI^HZe_qS_8)f+Lu$MAzLkEiVE&YZDbGmG& zsfM$YT)Rvk)xE}RvP15tn|{YtohdJK)OZpHBYB&ng+D%`xJx=0DWgDtp^9jFvRhYBNd&q4z-jXIB~EgK7r99ull2tW=|~)*Y9Jiv zGMN->9tK5xLk>m!%0;}y0|ks`pI*>&+$Q_q$j}9xlrV!GoY$*3fkl*2M+NCvI!;$` zi7CWT%gb!0MDJmPZk1Q)NVL937CAh|9Zu@2T&9SxX^H9@UCCY&q$4ee(my$=6=YDy zJpGo7te{A9wLc&6q<&8=#Y`ccv)WzPv&p{BG+o6w1gAz)Of?HA=M4Q=fYT1tSJ@;F zafKxN7e3eBTCG`}(C^txuCFO?@~ypGx9N6YIpdh)dr`mAcRXjbRJ-U<*0R`$WGn-% zMO1K``v@X}lSGigF1Avw%SooCoRV*usEN9hzjX?4^PEv9fAg{qqn;jg;wCxvM1oi< zGfASAd4XH9*7}eGI*K20;M932MY2S?OBcrI*Sd{&iIiSOngnUJ{fHjqfSs-<36&3} zHPO&W0L^Jz~ayQC==Npz=$eoGpae9gU*YIkD3ejycdALDc^?WmFh z(g@;HT+)Q2Y}R?!MXBatXDDyV2>U56lBe_V=tW;Bm&i50V-QZ-5g_r>UIsIOWZf!_ zwJjBTSHIUIdd4^|qhtaHX@%-sF6rNTTeG-n?3R8qkRIIBGmK@3q~c*R!|eV1$UYs% zH7zh#(M($DW~#{MC}Fr|BL9(L_FPJE@*Fk>i-{w^{x3P4WG|KY@RI;C)n9Xn0w6?3 z>qhp=1>#B4u3Ao+d@a4$ND5KZYBlB5@flN?D!=2Th9xw`K_GVt@oe_`!u1MsbdCLp+FH&nNs$COM-2{pDshBRMGIO; zPa4yLX*8wAzD_me+7>Tfc@&{WFVjv&GnNLj>=VS&-gugDLiv$q)Z6}KlOPl6Po2I@ zEy0pQ6oxLMfxQw-H{P=oIn8OF;R4sp?|F!ER(t%Z*9qK5syPe?w%tG^Vl0yX$g^^h zWIds|wBoXSBgw?eRvOcoY9eT6^~b?AV=M->7{t+&;dCWPf2NF!_HPuEE{$k}KObTf ztFMz!gz*L42(zj<%`WYXQ?F9WVEi2ec|abs7f?y57Gly|B4|RW(UUSspe5bu#T*PQ z9Y_>T>sQw5CG!&kBwi0uftcgzBSWPZKGLNv9-@hqI7;<9&85_^q%XrYn=_8LHJlKf+~x*H_=sAn9ZxZa_WXwu)GDMFlOM_8 zj(L?w8N{b#lB0_`%W0iS4IZx3m+l&j&27Cv6an%R0YtM4iy(Zs@yb(FQ^8^CadC+T z8h98VL0Uo`*i&dmreiw&xrYy^)|p_Pk027<{B!wh)5-y$Wdvu!~m%+Fx&<=W2_Y;Xtj@+R+ zEf`7wZf(jr&6Roha7u^_kWlW$AE)L~ske-D5~Pjx)H5`<){@81=0Ys_K)359Ei=|g zcezJ55y2hftaOqGB#|*ZZMpcEcgfINYKfL^Ts2w~Ns|6V6*2Z-+++_cXiQ6OPCj>x zw`fJY&X9i6U)*#c-j3!ZnMMa5AWi>E0bc!y3tTk@(U)W$&wj4x+vIcFoW)eeS{td= zWkzHA%A@8lGEo+59bxzz`*0DgkJEzYnxcm|D$8UjUHFiEEHP<8r0yq=Q<8)qq4qc~ zV~fy>ZhC-PF7Osf1j{d^(#PCO2$2M1VDU1A9MKpWQEl(x1UYQLMlF6Sj#XIHU{LM@Yax|Hd}lOtWE9lgZCV8U<^Or5+* z0-fzQ$>KK|A&>I9Hs&h3NR&{z*oDNf+t@=BdgxA0aZac60a;Q)8V?XcKDovh^e4@J zozooBZz$(BUlT-(giA|mnM5mM=s`Y_Y^0uC`bz@Mh$aq){6>r<*%cJ&YUwTQNngf zaF*gG&G8~LT6mP~d~N&rwmDV6dh$qX_ll1hK?%bey0m$}A1V>;~^&pR|` zpz}kSEQ{=FJ+JTj3|6w)h@c;1>?723L~8JtVfr2Ex`j}p2r)X)f;RdDal~l}C;5|m z2qvBe{PE~}#9+zO7&Or@ap2V_xIh8d@nP7P$)MVZ#n21pG@5c(ex;T=P2eh-Qc7E5 zSw=4D;-Uqkd5B8N`I!jZGM)sQ+L^c+%WsrXW!==D*(1YbAOnm9=}BWdmRqc#1F?+c z2zNPQe?T@-JdGDWX5k~#c#U}4*lVbvT>Eenn*f3clmcl?w5$V)XhJ8FwE4gAbbDgC zLpe7jRVFZ=Lwb|jI+;99=?v0YZge34n=yppH5SQ2rt5qTk)uEB?`+az6i_Q|FsZfk zILIcpVi2cY$)!>%2qMsoVgkc;0cGUd3Dn?EDJFg_A(2FR0v|PUA91v{TX2;l@+_?w zFY{?asQnJdIm%cHsFE}SaLGkNv3Qt3n(-qIWY`-x%wPOLOPWa-{?yxL6mdpQkW7d= ziJ(^cd7=_63qSf3_Z$m z*-RGK?BkSSN_!#+(Y7chq#}6rV~V&bsWO0JvP1JJm%cp9INeDmH@QSDfy^U=>D~S@T!4j&q>aRD+Htv&N($CJ&Ts?2hmsT{h_mD}ZcqN5a zlB*5UM4CuH670G9yWSv#T+SQY8O$)rAs&B@(V!LfMY3eL^d|(B6O3n^JqHMt9W=tH zYe^!EH@VI=V+k=dQ8$WPN^#LdzN0;HtfLS9x|H)2;sXNg8T_H^&1npjF4}`GnkfZ% z2-a(a(TGDtN;6hbqUCalmiXK2S;854v9LrEdg5C%!4)mfVBLHgq2fDwle7a8~{(M5z1t*iAI>BgUu z#w=B;B-p-BZ|XtwBYB-LSwS_8w3Iq3rJN?XX;~adux_ zgGYYUja1N`Xlf);rg1M-G6|oa(e13GUivUt59u8;WUD+&8)F^OBpQ$L25I^Q=eR*N z#Z)-#wzQ@%F8eYY9j_a2F$aryM9$D(Vl;q_dY5`^JbXfX8p$7o;l~X!sAeop31SNc z)MAT?u$=&+n4{+@msZqa=|pZ)j~f$1`%+J}@veAiVID9x@u2o4M`p3pzF!YGhZzT{ zlI8g89gVkd>0t&%#U?+REGGMwRhZL>yh3if4COc8aX}JBqK4m5IB?0vhFqh87%{|Yv!h!UnQRrn? zHe;P@jnCvoU%H0rGOL?@Eo-z`Khs^l0K1eQj1SE>nc#Zdh>|};)p1E)wo-f+Z&-f1 zP-nAJJ|Ke~3?x9-5{5&jGn{DIEMMT%(?sIsI3_0lC6`*+OB61h$w|u9)az8pb?HJQ zxyvA8cEc0VJQSTbfv+T0{NMMf4 z)U7<@nQJ+g!(hEwZKc4TRTeaJV}4zUv1XMF9QZOyXN8OAD!GTx95#%B#L+Nvaujl~2RH+4A&%`0+F-scUL>vns&zRCcjlUyX4 z#~6x>2I}zrYb6ZAMD!q8)JQNzc%)Fq(OkdRs}#^(KBquB5Ko}C!4C%~$)}!0oS+C> z#?qWiT1K5(I+PqXl0lvHA%Qrm$;U%H5xC^0d`4$;m(fvv)P4GnuGdWrl&-p#G`-GT zzL3w|9xc=-!}{rHnt6V+Q*~GMX1kkiuv^L*PI+>yMEfb0@~iQwIQSfI{k`&%JX0~y zH&$AO<1A&n@wfa!Q2m>}61;lM5zly@<^f$u4a+DnUXgy%)qaUuJ!4WL1n4qugA!hL>H<(68BIO1%XipV^;$SQr^)_31Sla4m9MD`|ql`S3 z5{N^3vYf#h#v;x!nj&hMfj@>!qy>%iV~$aP8-Gm3l0XoV@+>Z6HtTtuV&hABU8m>> z{lIzH%#t;FfE{>(nrJ*4wsJ$F<%q0sRY^D_Jzv?aC^Wko^NBPv z)WaFacq5Wt_Me)_Ec>)>(D7yi2N6cgv$%MRGvw&-UL6Da}m7>$5f%CuG=W+T@qClDtKIZQ4mm_=8Pl0mt=%y63PWQwR}Bpry< zYL;?R1~Zr>y-f_E`XaSh63$&J(q5e-ofX)(6 zp!~ojX{)!%)4$lRS1FYMSti4IiS3%9$GJ|qjH4?t1mcH5u8bm(Nqj`T@s^Rnla61x zBNOxyy-7y!QQqZMyQ6(hNBR38*IAJ(t7Cnj6 zwHzgvqnbqpDdHxOSJX!$`!$0yCQ4VL7EN3rS)Sy5B zZk*&&k5~7TOO-q=&(cj_(e2#EPuvLUnn$fXK@)=6DG>xSSF3RFJ~MTvB(g&8(>c7$ ze$L{DlXs{`IY1_rI+DeDmX9@;JQZFiM?RwwZhU}nic)I%mJuYginA2zAb#b#w4@b{ z=udM(xJ({(T%eRXS`vwyon%mYf(T?s!F`N`ana>{b$fgD#!-=O6x2U9EcW{U5f1Rd9RO7>k zp%H%?W0|-ldwsBoV6L za+zZOrVbx7=|H4xB#98Vl0g;eRO8X7xlNV)CPQe7pXO6b82&hUf_8+nitAL8$3>JT z1mluLv>=Q}u|a;KB_WjJL-jYg2ajyQMtNI{sHZjOu-HH@wXCNXP3TM=UM|v%W_q0K zRI-vHs_8-~enk8mdn?CB1wkPB+)px_|z7kYeBIW^u>axuY!ubcN7Js7Xj%dfe=DS zBczv`+h+FvgRK9zS!?FQnKOHznKkP<&yQH#e5z~Des9AK_JxG+1B;nD~9HK#@ zayi*-VKi~NkChbjC^`5gNEUt>#kquN17IP!Bks-fRU~qnkolc?(n~L=h_w|E#rf*$5C>WC6LYp9Jd z1V0vqoFT%kbR%BoNiPz~K+j%h@Dq!dbihL^VWQ+q260qtDK=F^5#lj~$-u&m3olA6 zjkM7bKbE+Nf)?XNsK$+l5FXrGMu@Ns#)rYsM2H+xi6Id%6iXbj(p_t4)BSY7uR#>V z2f%f>3DN-%Udbkc!vI_uz>Q1#6Cp}xiO2mfa)%!eE+9gbR6H2YB}9P3C>|1U;V@m| zP=*qV;aLq}QzQo0SvzcR+}ON;Lx?O%Cdw`ZWupcVEU~bO$BP@EHq*{Tz=aDh4i+J7 zeV9`?6q1Ao3lD|>E<7|-i_K-E5W^m#IJ$!n$``bu3_%fkk%ODLxKS*c&N`kQolh8# zd_XqJvt(gmVK8*Y5aD;)u(_6aEY=Z&P(%pT4{5_N6eTJ{iN&IjDlBdw0f%QuB+5rL zLH@IWCJOP^v8$j z3QnK(E{kN#WmufS0l8JHh}9=JK}h4MA}Yzm@oy@TvXWMWxx^A>8Yi&%iny~_me3DB z!U{@=GJ{0iGK&;ktR^0ZJBi1llyro-gb7O#1sEbkaWR}WY_=0c*g-83x{yE&7KwQ9 z;zwvFOoa1@!6FIQSs!_n@2CO!jZ`eY#E(!y1dH>DML2-L#{mpN5e5%}jU#i(#6uP# zlmuE3T}2ITY^52Id^+RSn`s2DArZH}Pmm~!C?_a)(+i(2r2;SMD0+4dk~l+<6g;@) z4HEIvfa|Pp*usw&(P@+r!bJj>Y+w`#%%uZ<8H^C20T)J>agqqziGm~(#Zd)f=#Gy7 zVG?k3D#ZlYPCQ<1WE0IC0KY&$zb65eGP>c>XK5rP&(MQJ9Y`@js&U~mJ}#z{E~c19 zNoP12{7xegUCc3Bh@}gDE~b!xEFup->p4X$S;U|$rGk+DhG66!I^mN~7(}X`$1a+f zM=pMz;sh=1MnNXw0G;q5q>+eQTA4&geTX7j_~z_Z$y0>5i)`W;L_A)tVmB??g|#%0 zh=U_zIiD0MmYI0@j^PCLSP^ai2TA7Q% zLz$KnmWw0~x8ABpX(Wd@+^nUJAk*niGEhgDRNPp^VQ^87bGEPJI2SL1hXNAWP9tI7 zBbRs{qKe>IV{#E5Tzt-Pny4U*kb@r&3B=*%S5DK${d6Qw=TSzxOe6_6A#9NENFz~q z&_Ej=Y=kv5(I#)woj8UQk4Nv|I4$%f0gt2+gQZVUOjK)#0TMYwfK{{*lpb^@QIFsN z9Z?*~ClkNEPa#d@lZaccpc4ty5y2r9_u26)`>7_N579(Oz90p!+$iZ7U98o>cA{9+ zARvn*7I>W;VkpAK=HE5BH;H)U7Q#gJ0}jw256}^>d`}k=2@)W{lO*G!igtvFq~W89 z79u=M8ir-m<7g?{Xp%a5k;o0iV9PeLacMbqINFQjII@({#Ovc!(#{K%(asiQzO6byz|hFqj6y+R6?B6ynC1-?@VV z=LsI>fR;)Z{CrM6;pmroH9O7y@;^G58{~C{(upwy&D~5VC;A5$vfXvJ+)07+KpHE zP3F*xI6cY{s;MSKJGT<0NxG1aPxn%zr&!8C%6O4p)H9PK9M_>V5z>eCBqwMVKVfS5 z2_GNgC(1f%IYmD`#A&W26T=Q#XxE?EPYFx;izs_2rJfg@4V-2n z|4>RVide^DhLEk#P)QAS?BEENe$RG&g&h0HYM?$fVzz5X5T z#~>=4Eezn2@I;-dH-;x`tqzHXxrTe4#d?r+W}Uo7p;NBc>-$6*Dt);{9wBNh{$jSI z$!OAalWu0eye1R5P8ZRKT)l~QS|}tysWxy9z2tF9@i-%OH)RYp!ePehX);J>8^!#W zMvU_jEn37s3?U%1NzpQ0fsYo2MB=zt(lO3L-N8CDSYDTVRuW+Oq2f2CjCK@ zXqI7&k@@;O9jT@($51ik(~UTiaXbBKAwUA(=}z-JgJp&_l_!|b_w<+U&IkfpE|~-= z(H&eZ<765S=1ofiO0A%VpA6(cQY;IMQD()>6XwO|o>R zj~*ditC&faB+En86QhG@pjtMQM7&%`FX^s-kxi@VKt7rFP6VhViEerx9jTO8iD0P3 zp_6uCwSG-L6Xg<~(iV!Ln8gQfo)g09j7Kd3&JI(ZDC^4MNNt&o+ zoD4K2)DzV%3?M@naY~Y8Bv}}|GLCW1b(}`*J9Uq)G&Tu1dZi4IoAfe-I`aU96x&C% zUflGRL~XDJuz(qMH@;(&lZjDcRZX+nm$Ko zO3mFgkttu$pB`LDEt|Q9YI5{j2GT*sQAdleVY7awHW8U6XSkXtHHqUKl|!V_Uk&l3 z+g-3Y&JxL^E7MSV+23e8l`==t$j~;D^(}py{+yA^WfJ4LpEwRU2WX+jn!%Nfw}w)S z%@z3RBy0JRLO!Mw<0xXh%+yZo)Sv8Deq)ujmHs5U3iwREjQ)?;b+Jt62Dyv{9MPb8 z3_lUQhu);?x9p-y#*#vaPpPJj=kRKat|BO2Gm0vVv=T$6JV$ToDIi~; z$6)Jc_$7m>K%68ngiC0}u#1zNqSib>0Nb7~>4eO6Od+fnVTj{=S{dWa$4!M?O%fh? znf{!X5;}94Yp^^ik7zQT_(`wkFaai$$QGGIKhoqky3tQ+7(s6>Vl!)GGI0#hMp8J; z5WGZWDP0*Ti^;{MZM2gt^GPC(JrrO$m6WoHJ;aj8YjncP1jf*hefVgT_vlHO61*7a zZtB>h%c$XyET${{$R&cxZTQI1dr?BV6q`~hC7o&7i)}1t5MDY^KzDNFW)cWT`|%$C z<9hn=ABoorT4XDUjMgmn@H-K*nV>~fbK1B#hoNSj4CFk0U2AF8tr#-ZBEoKcf-r@8 z9(nZQQj$pEK4Lh|9&OiSR7yO@tjA>-UF?r^JHN;;+Q3L1FNwN`c7${jWwPYz)iRW7 zX(U9fmXSfbxXC5OJSP{)V8^dVbeGJQfpq153~k(oP^X_$qZ`a&dPt^LQ>tgUmjR@* zk02@BMl)VH!+BiGQ!Jp9D50EeT=ZZ+ zvDC{hx{#|r8VSfOhB1W0l<8->oI07pA2LXC%}d|&+q&s^@-Hkv7Mf|PTwJjm62pnvfz z>$#E;75X}fjJ9_22;*fwqhyr*G~Z~lNo59e?Y~({r8R~zOvXhDwQ>ZTbF>FXIV^9` zhLI$)F*=KJ}0L{e8Cc4tu>A)JkF%bqb%Gpc_wNgfB;>~b6 zGEslWMU&h@Jr+;kqfsu$L%iOHk2o1hkX$XJk%M?pD$GVkGFVs2JbE&QE)+URY|`7E z_u0obsU)4FW<4Y59bL&jnsqHf%FHSzaV29Z=d^sp1ah1JtJz8x-AFZ?7(}Wr(>K`X zTrC5LrIBZj!BnG z$d+k%@#qe0nw%`%!!B7Q{TQHY^)OXjExAl&CN20_q;;f*up9qiV`Pxv5!@H7sD7RV`!s|92ybbN-PCpb1n(;6iM{rVL~*KOawPe zWV+mDDs`S-ubny0uW}L7$+x01PZmaFb)}9Whr>A5L)^d%;wKZIK296O`Z=}wr(Qx0 z8@Zl1vP>-(aH;0Ap3OXf7mp4kibx6}A~Fs?VeJOQ%W7;I^ky=Nx|$iyW%gdSu$3*8 z(@BSLoMHxI6ED!4RBpmUtE4cJKJpT=_;eff)KW+(N;Vxx)-#-a}OgKpxMC?}bII*}lsIGyxY+Ds$;86pMJ zhf+2XAx@XkMyBlwN&3*;ETNGsdZGB)LM+u<$0;^( zGYRwu>M3Ls0pgusI6{#VVxu;?UuA(@$2QW)vVUQTF1Ai^sa$K;GlmPD8#&AmvYL2W z`IK%H$SV3uH|`;kEEZ789y5b{JbDA|_~kv?$l+6R@iCS(6SC{GKl5b%RurD}8hrA+3^G{J?YG4oJ*o!L<7go3a*erTtI_vH6!RMBPB{QgSd^G zWP-lQI^85;&XY;@VAknIYcgGNJI{!pdeWFelv~-TEqW!pSmDg%d;Q!z%XKm=TF%qD zNiLxqYF*Am8OuQ|I?1OpSH?1pKlCfPnqkD7({h(gwO>GJk|G%`+2#riiPFevT4b;m z>wY^HOS4%3{vrsPhcZ-xv&@HrSofc9eU7T2Ibd6QX^>QVf=}wlD z!PorF4C0BASGba!^#mQ*ByUL{c5{jpil`=mbh$%rW2X62ZrW*Tuw)#ni^or5${%Mj8? zlh3qo@7|Zjx{1@062n!?g6@eK*lB=6Y81?~m z`9!WUBO( zNAU7FRRky{it5E2ripL0i7-z}NBsJNe#%Mxlv=_p;xqv{$UsswgPqhnpYc7Fv|;0z zH@S{nZDu=lP6z!j#k!f_sFqYlkZonrh2BijugS5GIUjQ{@|gXpK434_Oxm2co$uu7 z@HXcm-iqFD?=tVSon!YjZ-(ZmM=p{^NfDQPB`w_T{njdzgoNp?i{)g-5bt>U#=q@8 z$vzH|!lLLc`n8_#6zDse#Gf)-V@(eks^#vF%w$$-CYy9(ODKBC>DCm9KJVP(oRCHQ zB~J)+)BS9uT23&SL?)Af%UPgba>_KwZFJ=|stHm-8zH@yDnjxd`S=(`95K?Dv82fY z;(=*o5hrs=!su7j5R^~pLcG+_mqhK%0h;6rPGg&=wSWYBk)A6vf;rJ|_2uwZ`&IUY z7dSg~j4pOA!(x>4iOFak5;-A3`&wCSYIT;JG$Y;1tzYF?&kg2~6#Ld#uS<{g<=$WA zr<8WjyVSd1H3#*(NR@q+9+E6`Ew5WkrLS7nPUF=9)_PgYTlx&wI$MK(+oE@cRyhS) zPr1CsULDOy8f7*)xMc!Yk*Bv(Oq0AyXA&g9g=Em5INZ`jE+tpCFoF&`ifx>cq0A&# zUZER_oJTr7IU*CtW-bN9@e}0)WHqBnm;Fp6lSDiirqO{|{>#tQM*eY*@^JVXyOsT+ zhoV30rtp3CkK_j5v)|Nz!kwb`X|DaMT_?fj=j|`8_d}wy#dh6l)tXiAjplCYA}!_- zN%kzU-ju0HxvsC}pY&I}FB0{3}PvB$fuA-LMR5q%QA`#$sqwZ&oi0~DhU#mcNtA5?qw)x z+{YG9)5bh{|LZfBb0v)!J*;PF=VwZ21-u|PNpDiPpJ8M%o*d$sKrRUk<2{OE%3Xev<;~tPSQJW^*OyarE)zzNzp}Yrb=crkTm^~!_-SY$#}^l5ug4= zF?H;rg0S||p{#X|IsJGmI^3D7|Bc>c_vW|I+tI<=D>y82pU$o?3tq3))w#g}Okk?> zku2j1%V*}q9yV|;GU*LwX> zKpr&!03ZNKL_t*Em+k7Ovs{DaKN{zmX#JrXBvI|muqQc(b(L$6)l=qM!(<)z%Pbi} zBK=7xPG8sUR7xg(EY6oa64{_7G_hOeF@OcE=7gm1Jm>36Y^H({e8eGs;~Kh=iVrt` zQcjcXU=F?5NfiP8nnTpdmGmHy?c6ARS;-!)qL2n6RMAdYKVdy>dcMBTPxfB>N1Y#? z=sd@Jk#f6^_k!0(Ue!qrAGRNJF06jL-KBXgBkk?-ZoAtV!%EK?_X;z^zux`56&o|p zJ;^k>qh`IS_Vluj$t|8)rcK^SzQFwfr#=6ezw}b`GA}8we5MX-8M1)m!`6 zmpRWly<~)hsj`-v7v(xuFpJJ828V^Lqe6b*dV1+Xe&d9|GmJWmfY0Cy4x29W1{3u| z-AffK*iS8U=|cy3NXF1v|JHJv`Gcc0@hiuvmE*F2;q0Y?W;)=-%^Zf4K@06f$sqwB z#WWM*UHzQ~dzfbH4bet>B(uXGN0;f8@F({9I;=e*(w~L(tJ){(oo99g8}x8%y}e3X zgCVCE8(br-eR6B8?b&N}irL|M$hy~?>N;f#J)NupvdW!dy>1r9Y&Q>*neec6yWTDx zvnQc7BWV*;z3?@Ub zWCeREqLMc5V?4RCjG6RTFY{SVKROU2vl&Te=L1d9KkPWCg1OP%cAR#NJY~Pc;`Z+& zJ)PpFs^C=&tM#^{+VW6jux1DM(UbJ(&CcWcn7P;bPW+x6YlL|)c80sfIv%sk^SU|W z`No=L{&d$^73MwnIJtof;_tEid}6iAQ_dP+m6fF~&l&JwS`a9HbP8UrMqLh7_lAJy+TE}zR>>8%01 zUDxoV+)RJzLnmVOKK+`bJT8}!&u%Jc)n57}+c6kKqVg(Z$siuLbR-EcE?ijp8QZBM zk91;qR^Or0c}I^?Y!9+W>*$DMf6L(Z`y-d?wN1B$RKs`*6Ly7S~IX83Qn z40W!KGK%ZGv#kPWt!uLUuC>xkzB9(vV9s#4bd}{CVi-C2v@0*@R=JTuWNImmgyg?m zA>AmWi6AWmv6;azvRT7nPV2L*(UWZCIQ0_bC7Hld{^k_v_;680od(!MCCwTjfD#6f zhZ!fix`cIlQu>lZynfFfs%0(nWQbnCJGu)Wf+hXQC!U!Ml#cA6iWZXb;KIhn*00#3 zH5}j+EmUhG0UqI3O1YB0bdcpTlXLWH{eZ&+un?Y=F?42#F5w?NOf}8Yg*5!yj*Ttd z$vW$Q7G1_Bs(6R>oFb1@yo3qk{QERn#Zl_@XO3`2=FpE!Zf7Lf{2Pw^4jU-f(Yl=7 zOk)5YwF|GYlb)m#Bi}QdetHhCvx9nC33CN2bU*VMEuD3eex!$JCVDpPJ49FFaq$yJ zsbdr6w6jibqL==y*Yk(m$tW`Q5LLAD7iBb&PaIwrv4u*GQB8n2d>Ht(i@{*n%qg0gPCruF%}LtmKpZZ8jO|nrAdJnQ6wyL&GV!sR6Ew1$YT7wP zD^aRxB}_X}R1Z)|KypdLt@rD%dP<+-Zz`oPsl+gvPQ>YxY@v#J!r1@Xrg?|`)X)JR z9=_o?jo3Iq5*~~`#@|%&AKgL)=aWMMTPUYZXYwm22;rbQk2O@tIds6MwFHQ81*G)=)!$?>J5?%|x;FB?`5kYxs?FwsIx;Ok+J2x||{!&pM=6Qc4qd z>t;^t8x+$bb15KRC$WwS#*>9#6Zwi__RvI--82*A9`Z?%dGsVvU!;%*?Zr==lrf|e zLkI^)-_{Zu<$B2@QR@g{bAV<-ihjy5`Vo(hle80-#~DD1-obWiNI2UO4vq{b6`!+& zSJ@}R6moSsJE>LWXFXwZxkd`KhA67%=smhsPY@tV4N;US?4m}8vXRsDB?%7;DWXZw zXB##8oR-ikKgdwhoIG8?9`m6*PG9F&T}}x}tff*n(@0capcnDZGTx$?cx>P!t)X34 z^Ai>N2qgrVLm`dMZ+xdGS)hfqa+~B3;|$lAI3|6F#nRF2rjc)HB&=UhOITOyw^Zv` zj?k>rDWZuw+EB;EdlYjwCA9MaUGZy`{za|hK_gd7E{Qr-57EdZQt`=TiNn%GT17h!0m3u@hIl-9@X|sn zMa1DFiDn{l11T8VNydv11-fED*V2MbIYE>>1Y0gA6*vE&xc ze-TOMk&NLj8qUsun;aY**+gfQdLn?qCQ3ij@aa;Tah*lOyCOt+mu3uil8i@g#7BtP zWZ~v#>VWR}5k?Y^$j21m)u$*WB3($ptH&@H`4?>Zl1zk-q!J?+5r?XeLXeH*W9fOE zLYY7;Du0lN;Tbv-!x9>Z(gPnZHWMJM_fbk%-XIH0HqZ~By4g=u8>k^b4F)66k&e+D zs6ypp;&JJd)S?W;O@xlPvE*9(C^wRhi(;Cv^%VcmF6-!uMJgWL`Zi~XvY7zF547Si zn>eC;iH)DDiNWRo)dbj22y`V5UP_1}vX2znX(LRSzW_fDuK%y40^BH@v53)Slo6l+ z7ltqnLAIiJwlKW;3LFUdr77AI-fPHd)8E@3L2D96F@ER}?$mi}jx8sHLQ zFcjn9*4GIjQotEn8B9EAJ_iXglXN_+qJ}6hQj4Q?gmEMhB}y6=E`5^<+N1|pk;mN} zr&Z^3ga)pmgf^`rh{$uK<6;64^~N%2gE6$V5``Q9(0d{hB(W^6#IP zH%Z6ES2W>h2lmrQA_}seJYsl}&iLuYLF#o2%^>eFfE309s_R(ADRS`RmZ!)ePJg3? zkc=l5ul|b&AEOOhB8((SeQctZJM;+6>_~5BTOM%XHiBA+iAe&OR8vP7O8mo zg*rl9N-AFbcyNTs{5R01OhalkSVWQY_3(5G%#fL>A z5XBIShZWQl!ACP;_7DZFA%YT*2TM|j!J?T)f;d=+Zlwk1-?L<3fE40zQ$~cS48l(g zjkM6Ng(%7bj?*kh=}FRA3wlS~=-E5VB83?K;1o@i5(J(l9gnP%b4cI^ZN(;D3}~g+ z(=Pv$?)Y)AFlReuHd**EG!T+SVk<3#m_sH$sU-KT%py!15tPeF#B;XVUzU!D{`-DRB8p4W@Zd04d^qwDQ%T_( zDiFPy3PSP#NqBS)6+~qy6C_a@=tsP)r6)elAh@)dE!5M81Y*oOZYGBuA_Un=Gf^2L zmy&4@&>Purosu`{EhD*<&b&bd?dE^HN_SS{;Nnp-@mRU?6g`~1{6?KA<3YNbhh!dk zBw;Wzm8s;ISuB^~(k$c2lr;mNJgOCQ>&g)*Er976I6Q%EI+jyQ~@ClSt-jzA{)xamPQ z!WtU1Qb+4+{3-vD^T;EC9E49f$tj*@G97t?BUI|wx|!XK<`Z^nGj1G7Ar+elDL5!T zY~9Tnn&eWtk*8Bi`h{bH+0QDpxC=Jxzte-mdyuwNyKr#(Fnw9#s-mPErm1a`JPRC+3d-)qfoSmif^oeK!x3koq zp=k<4 z%>?Oz(k9Df0eyIsdP;PKmQg{8+(b`vh`HRNBREZiIYfUMXFtXU-7fdg6N_w_iJxtH zm=ZoAhNvcCV`Qm}mf_k&v2JrZ66OS_w30Rk$`qz>H5o+ZX9^_OX{A(8$ZLdX)RXO`|N5*%Z^C!OjD^Oqb|U z=}VNg^r5fBaz@0*+D%4DIL}M9A#O%RMmNwBs zl}_OV0hvMq0Uno&8Npm8FjGI|I0xkiGH8^M^d!xhPYy2J>|&ivA(MgnB{y)p`uK-G z%tMrOL<`8KgZ@b|Ma<+H`f@*YBi^dFAtXOvRI47!t{d6GvGoyjFtN03N2nh6u+JrW2xH?x;r+)V=~8N?VIlgc7l z>O99+TBwVdDA)25Tl8J+!eX9a3BU0nGYM1ge9v0elEb+a$Va5gbWNil5$%p2pZ*Uw z<+6+@e*KYBV#GrhVf`3Gllo*lopmpVDRY{2y`Gf6033fAeoHD=DgvB!aq&umU=sNQu5@C~0^^SPKAl#@xe&f*AV?8ioEl2PRHBnh~j z{<@EYCRL_z0e?|W88&WQW-t9X*ZH1C3N=cITC0En$?9SxeOQiw+)7`$P-j!2>!pNr znMykCx`Rf%*vzGlYG(xrz>S1Sb=5Ff?sV#Lv(F}fI!>@t zJIN^e$Yedp5xUZ#Rn~salZ&EPQp!d%mk7!e#FFg1LMn;&6@beulHMe^FQ*GB_LEeR zLO0UD9KjG}Gu`OvEM+x2I2SL;W+@jkPJN>!7DiO`F2kv^>CRarqo#bMf=**{4i}{RFcC$rW>7rHAUkYTE7U^yr=_3P~hT@hIx{_;O#Bmx) zqe3@Yxtu3cbTjG1@G^cf`G&*nqyaa1&OgLcW1e9YmpH@uk`?k9*>o}+8NpaO5l5E( zgCUy@^yEC}ZT{wUy3kA!50g%w2?E{iIh3+llF6jS{+S)@Fgr{iX&{58|gq#eV!l@d5Es`cUEzV17-xtgw5p)VuD@6J`P9>of*tgPOwpr z<8VgWaMMlSB^HN%gbB(AbYn2{aO0M9DBv7+&`g_dqKPW!clNSJ?xqKq=qUD3V`9n1 zD>LN|nW|sWq$hQvmatcDm7#JmcX3$HXoFU>gH1AwPL8dAb6AuF`k5bPnas3r(tGp) zxey1Byd@K4x;%!D7{(AHnQk})bs?v;FnW)!6Ih| zk`NLIJ#?gZL_ic2>k(8$Y}l~(BY5n`iXD%gq99mMX#&!u1&~k@Af5EycX^)s{Q&Fz z2WHKhcCR&a&Gn-K9~ZO*iy+Bn1Y>0z(FEx|9A>{fO9I37JY^iSf8;EAvV>4=5<|L7 z)&>{T8W;sU>+*(W!mgJL2FS#8<43%`ytm|+HH!snTWP2vt`B5UsV2&K7 zC+T_xr`f5UDP%hj(Le|NiKM?Y5km|fqOf!>Z8XR%+$6DrHauoIqZsNWP(z-6PYoCB z7(UTAtu9QL7v(_)GQs<_4%VKo#j;3-IA`?`p;9H|2{%>T&8JdA0^#Nap(JZD8`x+j zaTWJCEgWUNen15U+>e_!e#1=)Y51sgu4O+*UBkGJIoyGw&c8^YE4dWnm(S>oTdt=& zqx4^FV>4HiL8NB#7bUWfBz!uTHtOU(g6YStWMJq)FhM$%7JLjQp9WqboL1@2TzN8( zr$h8bt6rAU-;AX%12u~VnhB?0?(#u@VZL-*2 z!l(MN>?4X8{g`&tew9`r{#q=bNUQDHiDmhPQCbNW48uS&i$<`aFrBFIZ zW{A^MvpK{b>S)lfsi4jkE7vh!(|~5_O#%rzomwh%5Dp@5U=z+eT22#>NG4OvI+RL0 z1mnTM5GMf|DbhJa5adjtk!~`SE)q^x-K!h*TRJGAyF}6*m$rkvB?-iHCoy!_5rpC) zUJtX2?vVbC3egvV>Fym^+BTaz3Yk-R2x4xl;F&%}Hj{h>}4!8AA@i+N53% zkuAqaAy~iRZ<@J=5NhOp5{S}pa>CDnhG4>YgaC~? zmvfvp4{)74XMe(R{oA-v-1-i=oN%7j!{l2NC5tp?B>CjYY(_AQ>G+8wgLXn>DoO<# zX(xncs>valc+z-_{tTDgD58U>Xd_zZvy}~UBN3#^FO1Pnif2=H)a3cdLq}JI_KDF{Nal~^A zg&fdtsi4C;&!fB$n9XAD};k90ho$0r}-rioVCNpd!juZPH^hoq9o zUd=b(Fh(Xj%PFK#-=&-|Nh5+#JwSyXBZoE#lYai9?-vRMR5+=pa+y z{M$hFRDPEexpe8@q$k1Pg~ zLn7hSP((4^h@+K}{E6Q@%lF*HA&zn0S;QCoB4LcAk4&Q#k$A>2O3qCyoml@-+j2Wx z-!n&KD0jHJnAOad0lZ2#ey4=COCiypQ9v^eeuN4F*!m&)H1h|Qc-hQF)WE^fS2ULv z%ILsmq9hQcg}RzTxt1hC7)%U7G*W`$8lI;{cR0(*wtG2woUm6peRZw>Ip-6u4b(XY zs0du6e$(##(T*mVcC&zb5MqS6JHYiF+)AE zRx)SoG0uB>oqwQC*2{REhcwA}BuQJ$3^R-CUC)^5lyD;@I@4QfZ_=(!PuL6fQ9fg# z9(G}#rGb4+C5SYRQAZjsEauROVEvBYxWHL$y5tr^=W&K+eS`v9UcdwgKU-IMDq%YWgXBWMmRII2i1XOd%7+Nlsj%2VGnV_wcL41 zS8~C(HBccB+E3{aGqHJc;AgYZKaBYj%p1~2>Ri9d3bq8TwXT)mn09xO{FS&SIF&J> z%dP+Nj+4tcKJzy^_o!PJ5~A$p!c9S8a=)@j+6Ux6hM>CfbgGc|xIhrJkAw*kKd5-?h0@hPT6Rmh9 zn=GQm$8ch_7l*0U6bkT~2u~Uz#gOXY>`Y?q!f_RYvns}0ABIGXa zp{LwO7s8lND&bNovq@$dc{Ir*JW4;j1aOEY1WUFvnnZn`voy;4WD=zd`G98sVEZ-R z_Kmhr=}X>|_CiMc2H2hPd2bA?(FOj#_8_hHeG?cbh0O=;IJ3t0j8s^OQYKxLq{9M41SboG`MdZ(^rG2>l3ja%Px_cu$lpX;pY#vNvw zxkkr3!*q;>+T)#}`XAlKBt2&qiz8E+LKYE(AXq#i!-$hnq!LCu?by19a@r+_JLoBI zFow?D!%#Xii7tf5Xz4sEDCIQy$V_GZeO zz*w{0%C%~&5aSK{-g;fG^elD7m|zy_AF?*&0oSL}FUIZ8B_-lUR|fynnL0^uQ^{gIrJ!itX$}Et3xk-MK`I1H$!MHV4U(-Vz zVX^e*D!$V^{gpiGFgU2J;#zuekWyOk;owk(7e_zkD3vmaG@^N$5hPJeGd^;uqm6Z( zp-zA06g3>Aj8woRIEVGgz!Lj$=JsjV%G*Q;`a+BG0#TLc8`&Sm=*3&3dGG%P6Y><%Y4tH)?FIw+GD($6qIDH)@^!@Xy;|SSNu%^jl4OCL(G}KC^OZcyBnA`1cO0ckUS%d3OedWf*)9v{ugCNP&AiTj zin*CA64^~5jm%>pojF4#ZS)`x51k0X#RZ!15`=(^mTp8{dah0-77w%NMeL<9_FW8( zrG_@HCW{1}q|3;+i=3l6FEH1x;d=jcyHQhp!|hk~uGag!t94rKwe4NCyzV;xmAu{J z39QuVf%*JT4wRIf1LE5aZOsUBT^PAi7gqB$4 z`m*(;6lrnDMr)q-4DwswYpDC6^%c+SQcZOhnjhtVM4D65i*fRS+#uaq$S{)lH`^&- zFAp+;#jN2B2PmUay6_P*wI8o@fP)lM$2^A81;GLN4>QToxA==<-ee~QyvrpvOqeaJRwyw6jJ5Agd*l&mGL|>mk zS3S}m>>t7UhQGZxX>fg)jt0H5F~t7@>He$rh&sL}HAknKt!(Fw&K?F zf-_vHrmy=q*Q2Jz^^5G3-kyJ3UAQ`8yVa(1T{$%Bo}m8LGnx|AXkFlD*MH%7z?Y7yY!kcVGaS z&b|5#?al$d(R1o2pW98i{Fh+QG1pd;8=M_<()uuHhqc)3@bqxy8;?npnNkuu#oEH6 zkO|gzgjhYLOp`sK<_=x&dS0&5|4F1grS;~h3{WwzNG^p;BZEk60tB=#uj_vKk_D1= z(I~9{=4U-CM|o04v5upZ(U&B`*}ze)Vm7^{6Enynfv?G?Oh0D7mP#+;31=8xC0zUK zGTkd~`9QAVOAcx&Q^=G!EztS;Ge65>1`~A2?Rn9e7>*@{ydV>KhK=M>O9!@2*AMlu zE@eG=vXtp`=Q_zEfvuWLH6C18?B^`a%p{XYs_~=psa!)Z4b$h@%~X04iw74%Bw+-x ziodyVu}vr?b!e;VGB!nRSR1Z@|HdU8CSJd+uqePbp3Ep3EX$_fbqU z>-88_*tiLj7i27n&LSPex7^DZx*|9@{6-OtB;ditb8P+pz~!UV(5B@ynl{1_4C^>c9mlAoohsV#kwp@r7ps!K$ZpEzE(Q^&J1L@t#vkO%hg?p&o~MR(S_$Cr z9Q(My5vu8+hBj<1$BUQmIYSfo=r#(OOCMqhB^Zl!oT5Q{@(rghx?%Na3TP&m2D}u| zh>tHgMLm6qBUta#J(N>J2R3E2Ve>HisKiAGqVI81>+oPOJj5ZYbPZ={lq=~*xIUzZ zsN!4B(?}RDToluWUmxHY)zsp{<|i)DN+Lm6I-A{8$P@GunR*yPfRpEX)Yi&V;$bkk|NlMDPoHSPKwIn)!30eOf_qV*GU zX~M#Q3@3&l?Z#G$^=^(*OCD_m7)2Z&ZPc}zFON$fiPm4KRxgnVs!_U`3);v}6v!j= zAX5L!IhvToA!-;*G#(9QGi92le^9}GTJh@wj?q9F3T&c`cJ0nis!$A~^}3nzi|DJS zv6otE2;ewxvRVuD2tQIPOGqJ1S5iR-Pv{w1>{C3&KXQ^mL<3-SHlI?!e@Q2dw<)3B zN!E8ct10ZKR%19u1HVvDK>KlmCJxe$?Tpip$+t7PM^BpDct-|U?eaf{=##pEQfDD+ zxxnKbqfV7m>SGEaVmS}#My=7q?4?FtB?XVYlNUK-idalHCUAl#=LG-IE(;09b{4Uj zM(Xh6m*+^pqpRpZh#`Q(TFPmqi7?!_v2f|XwUBm6#)V(^(S~9XN)Uzy+Nr{a!!B%u zI|)Vz;K8DaP+X+YK>!zCe0Z=hcnKv~k|mB{{X@&>Af67|fe1omEG~pW_-G;r#ltV#&;u9uQiSRQwBVAHq=Vi{1xg=Wh|D1Z>k?Ggj6;B@iN;V&3pTSz zz@;gi1#=lAG5P`Z7 zj3JC5Y*tZ?!y6>w;%#bx%ZbCqEJ9FTq70w5bBqAD5``m=(gl}pqY6ic5`odRG-BwF z&@L;Q- zH#4NCX@gH*+?R) zU(t#!o9T{6$8m}_SxPD%9Z4aEv4kS@K=9IyV1lsm5s>%EAmkGATZ)522mu_<(u&Ak zbjHPSY;5_6zC<|r9HiAOVKU*oP8ZzTmoKQ~71Hp?7P{ln;gp~f&rm|>Nf;r_B9|sz zM-eUZI+;Xq952GNgk$su&e0?bi6@v5bRtxkrmRPNd1ux zgv~VIBS$M~WfbAK*+4ZNWFQFN(}<7z=}IU~IKTnw@#-{kX_7ZdBMcz~H`C}u2o)V{AUWVa9i6((?9-uSfd`L0Pj3or&;_T1n94#^$4@y5G3F0qm@ZrLPrAO#Mr4M1a zi9&HShXBGooTpJX(32>p(urXGgd&>xnksxOA{=BqU5F%|SUma_MKsB?q!39G0enCN z9^N6JM(H9Wh@uOz1ha&$xcP{DIv7a|LAp@S&?3)D1U|--LMM5UP;4F|9*-8WpBg#B zAYybI?bz~P5^&Lg;GzgOE~aBpS;CdX^9seZvWjYa3?%{&qlv`G7j(s~pV9IHxiCpEl$#MF~LASq#GgZr5QzO$4?pk@UVUH-X>E}eB*5-GP6h0(5@ z(YA{fQ#O+!VXUMNq2>tJ(^Zzs&7^9qzRPJmgb|_>I8L24MAkEcM;JtB9mWdIxv!C- zETkKuSk4-~pKSe#QrcY8J-im{hrfu5y~!$TIV| znQknW9z@70h7v3P;Zgd_L!=XFn&kr-BP)4>5hP0lLGlop#G0>omr*8O_Ays0>A-L1 z@RD36Y4RLH{~lEE3=T17Xy;3JX{ym)a@!w$+Rm5*6K4;&nP`Zk9-#SKg(fv?G@1cwfq zc#8d;A)YRT={9o7H2Pq_2>z`Lc}%WvJ%!x$dVG8y{gP ztq6v4_31AhVw&_JlI6OC9Nj_yACu@oEJOH-Y~4sRwY*9Vg?fgs^-rFr7tuP3{p8R` z_miVuTx@wamW%XpV3>5N-nCWa>G zR$Zve^igW4Gg}x-k`MLh1eqlF%N>C@y-Dx&#c7<53FPQ39`HtSw@$Y6DPy;;VLzdI zl@@YdO5_&0kil`zn-eTx81K@IOOv>pATwX)GEmF(JgWC{m_KAa{m9TgGMy0ll1MyK z&Xe3MztVQMOR3rP7UPYMsS;m>fMSX(UOq{>?UB zO#{*FmRGouQFN9r&f}EpN&FO2!$|s*LNd{)x(KCQCJ|1o?qIxR=~lki@AX;&gsKt^ z=4Eb^>+~?+>1VQ@NV+?%JSBadS9n?1%4Lk=DxJk>iIVHtq}l3c1R)%kbjgw!I%!Sd zc04jr9>GfikJFh@*+v3hUB(4%Rhvo*=*nD~;N(-FztBPr{mefMlYvez^7S{J0>tYB zOqFEwU*ZU%GjU|F6%QS}#ss?S62ge$zckWGu91O6XeBo4Jg#rDOe}`eSu*55tl)MA zl8&Ez_Ujb(^9RcbCWw#dMv(d_XE#Gg=PLP<9@OhgWE08U!&LmE8oO|d_PkS8O_+G-eo_}*S^=#4`5JZ1qvu>8lxJ#~ahEb1SHxfxQ zV{p@IUSb}Loi+T*XYvI3{OvqOJZ*s&aFcAk!#ox{=Ma9z%^%dueIzrT1H@566-ozf zM5Ek8A13G@v`{FAB%U5pr*#DMsH70AYiZ-OM3KcPej?9 zU1cEsNFWYB+4gQ)QCUt5gRS{w5w2^fA>0|pKK?R~GL-@P6cDcoWV6>qFp}ORQbUK` zp8#I@j3m6yOB|qvtH~hLr9==2yv1IAFlQOceA&Y&GMxgdX`oeR%N_c&Zr3&XFx3?E zDrrnHMYK??BP4?iZl#8HR^ld_Z}8JWq1v4128kq*7ja1v^O(YD=cIn3ub2p#E(>%7 z<>X5#79pfFn6AzM!m+HK#1QXX(53plekB7itRWSjPGXcyu{JZ93GxALMCehP*h?ev z3{{6FYIuT10``aGvBR8U98<+hH!^ex71;6^Da7dqoME?oOINx(ZmK9_Ah8T)3PHrM zfm;4jrGvc^MG|xL7|k4J27oz5EYlntA7`9eD#>%XnZR`CMb3~X8yU+~{g~sN(3ynN zW_~1|O#O;DqV-KmsWe4&rk7YUg3FxAT0xPPk8WDK)(znZ&QkW7a3kZwdu z94RuvxrL*8K;EIR^wJ+mz|BjP>q!|$cj+%JMB<^D2xjT89N{9ME$=x!6LDmee zmdBl?)d_jORd$z(nTgd^WLD?j?&kGLT*v zw%`!PKFSGqGC0GR@)yuWcM(Dl*OR;<_v!8I(jAVli(SrD{6n@m#uVnrDLN6XPg6{z zvxPJ4)uZgA(pt}LJircm)0vkjpj>0AWhXtbxQsO7FxGsgafNq)29e_0BzJKm9|1kg zDQ=;k^9VaBq?I_T38sNo2_co<&V5vpV;<)=9+O(SN;mzKU3!cnPLj(7%DA92v58|D zF3M#Q(YURhEMk#Pz%P;Z9ekrdagsW+^%sh{V7k$lXSs|ZN;H)aip(zJ8Km{(aa!LY zmm~T?Q-_AjRz3iriIZAcHI2QX7f11xI#CPOM#gMGROG_kAClz>R$HI z7a`a>ErS`R)f7_83LJ{%X$COKIj+C6PSRxv*UCEtsACCfB+Iv0_?;)%&VD&SCd1`1 z2FMuwhogE*Z`K_4=n*<-FbCvHS;`RHc9@L)_h_e9M$(6#a+DMX=w+G$e;~}a_1B!w6TKj#G92Q$Vk1HM$OX<_H$l7C4qq?V^OI$Qc1DCPdz8NoLf8Tya@jZb@0N)(xFop{z zhVhKGb2&hnj6!J9MN|_ked$RAnL@khFUE17u{v32Jq7$ztfvU zoj^8z^ESyOIuV>?C-;&IY82U;)V@Y+c zW+lJL64Ghcn>eT!66?F92T z)#4$6aG6FYqFG1)x9nsBBMGI227Q$hTD6L^oRW2PqcdOg50&~g4)xXuUS=siYUsm< zC^`1Syw3M#DTC;4jx&vE+Cc-SO$6ha#0w39_v;X6fYwrP8QDs#9Oqi%w47EPN@*cL7V&sk#&H_uZ3YrUF>TnogdFPGMFn2j zBNGYL>vRt_q!WspUc?hZ3cOnr zo}D=EpUq41o-@rUMV(=K1MfL4q*BjeP1M!S4CihpSihSPSrgRT6q6A0g9hmrEf3m< z`PMAbq4Y8bTI=+E9ig#Q*_S!nWD=*$qilDLk{5X-{3~k+H#mp5(p=y6 zu=9X!F$-j;R_KRvBPV4yx6sMF&JCn$Uk*^Kg>0unK4J(l;%5jk7oP^@9+C*sja1_3 z?bP9uIk>QhB7l(_7)iA3k|7eqRV3lD9+US8*ZJH-lYT=oE-96sq`AE2Gz0W?YPm+o z=>6QT3+y{-X0{0;!*{bb>I?3#B-NSY)M%OfCveoR=d6BVO67WXlBB=4t_dt;kM$(| z*cW`n`bXA>N4vYrTC0L4!UCDjdi_)9n19J++|CSMbG>f%>g`shyevI}`&fO=&h}jU z59b-%VK;en;XbN$9NCmfZ)Va}o+E<@{-FiG2B^a;ONqdugz+Td29REa;?dVQPJ=X) zOgOKQOAFDsu~n>(J8us3~RJBvB_Cy4K|<1tG=bq|ID`y zZv=Wvk}TqGz75~t%8~CGrJGsjyV-eAmq?lX!dN*f?J~*QZ=#rDS_sw^_BrPV?w0;0 zn%TU{4y|K684^S{qNE=?DAZOGaZ@foFqfVjqlPvfAzh;Qn&Wy-Kj%2rvWo@umA6PF zlsgH*%@L|-)gi1ThY#67u>^RCK|IZ0T;L0?B3%|Uh(z*;#-lIbL*<|xWvCf$3gvk# zgX<_zhY1YT-x#b%otNB>+!V7~e;~>~Src_~&6nPHw3jc$zuNw{F6S5e1Ql52<~|Z7 zldt6s#%WvYX!|!lb=@c9<=My|Tm!{+a#=`+zru-RAG;Wg+lr8ls4GSOGFPjgH=XJB zV5g_PE>BxscPyE~l6l0@RT}j|+s?001BWNklTzo{-Bs3g0bXo`V&u2Cee*#qVcevzbK^-@r07XV1jv-!(7n+u$K~flwl+> zmTp9oO*t)c8*@oCspbae@jDsh=$HBqnc9VeGB3E3KF7G|QNiD`J+M`0>R_+wSfSGc zOPz`GOyKdr6#L!QBXX1rq*7`6JNcT;1~c6~-z0cF&eu}f^tOK`$Qf-ur3A2Gn%WBSRPSp2N7>v&qo)HXdwRY*rroGg!4JtCXz zEsWHsoz0rYsP^ej4Xgc!?di_sw(ERn!CE7WxI?~SE+Y)`hIvlXWs>%8&v8DHE-tqj zB5T4{q@xI-_H)f}JdBXZlmg|pZt$9F7oibggzsmrrqKoX}ytdMt&XPztZd|M) zo63tWTefjK12u)S)N&^_HsOR4#6655ng6nld|ky6%GpmX9X!lfy3v6jKby&+hB#vJ zu$Mv_rGV!d$1xpFp5#+c9HAVhLO)|Sg))CFl$k(t(2rb&O$Cv-7=-6yP2x!U=H z!TMyRrLWP;{@htZyq&1cY-|m+56Bt&Vf!xa=6py7-CHf+279gCB;&~ADAiWH<0nrK z%Qn|M>mF}Er&iXQbSBHWkYVN?ZqgLz3l5ow!Rxe2o;<^4OxFgyT=#!Go%NemW%sww zwfCLVT}&}EbjJ{agrF!OAc~5eD0X+ZVxo@^s3?koNGKTOLpL}>Gt?9_!*s_Td$0Eg z=KcN!``XvOj?UmbttV`O*75-n9FdI=_)CN z>3zh|ERQfjGIf}KpnG+X^rV?oYPCi_V7l~>FXd4QGs1X451UULGvy04xJ5tp-0rkw zy1q%CuCQwKW=XUYDAvE)XIRKXfy1^}f7DHsQE6SN_v_O3`vNyvEBQ-K5iP?gWrlf^ z@v>a!>S10YX&vkA6fPK#NRU46$B~*@f*LI8<=UNu#aSQId+mPT)(fr#JVojN{zJ2ual&SfZ!oRw^Y07fu{9 zmF^P9SVD1=PrdqBFSBXp6~Q0JilGO|+`69wjEsX?-A{2*AqBn8WQA{%n*iSh_h$lq`LV;Bi| z2~tM~N2sBlD8g|tm1rVZNg>TL1}AR4UJp~t)l?HhI3YM$!#NuDB6j>MLrJ)ph9KSf zp5uBFFc2IFFEN}%_EJu(3?d${ZlsD<1V08ZFoZZ>;2<@0BLa^MCRV&Ujk8)JdzeO7 z>NrTHd?>jj=p5aR%6^$frvAu&s-%!+;%L?u0(yY`RFlR!O5`c#(1%a)5zrazqJjZ5 z5}=B9lqD3>LOnL{5dDdk_i4q_k2y+%3?L3KGvy|_(1g$-pUF@Xbe^7~(YQmdB15Bf z73cIB4p1$>aSa&^Aq*E!(t=;U#EmISm`!&rVlk&Qp2O5gKbb8##Nx%&o%#bOB|@gt zRXQY>cr5*kHvOJ_YUC?&Nzge|;?ui1OuanKRJ!Of{FG5a3$~nL0!jRjN__T@g}gvoruaB~E^)6lCF;=<5P)Z&*Yxt9#*HMnKEJxnuj1=p&j zE2Nlt5~s}^rG<}iYEYA?pxwBV$%JYTwo@y+$;QhUMB^|XXC__rHBQnd-_wmS<1rEl zu~zT_MaBds5vyBipq)=BB1k-Sw6T~Llv$+U;T!=B_E3*su98R$J*R$LR1<z|ARbrG<8J;AOHTU~`-%d@NJNO_X?XFdc(-zM~nF6*zH_h>0)& z4>o6UV^B&f7VqH4U{GhZcLI}$>_lAyoTm|$*?4g1UIdfv)DmPV2GUuhJ|Y7b!-zy! zLIXbfAV4b-7!=||xdkW6Vp>sVV1wq;fQLUZQI2Ea(+ZAZa0Cx350ebKo_2(vs3R!z z3B#g_Xwc7T!jS10AkB2ap(h9;avd?K?#9MR3?Z13f)iUea2Ao@>4qV<5{g@|pc+ex z$Ut>1Az<6=#g;UN;A8`S3~nP5gA)Wnzn}>vmTKB4#YPy84}%fJ;gnkXV=#pVl(%R? z2_X^W6QZ&7Ue4j)Q(h#@;kLCK(y0C@y4`IZDsH8_hQHxZBM{ge`5DNbyjLh#90yf`#S z6F&YS2N&NFiCZRP)2z!WMK7YUx(^=)`-#AkYe>PZ>uA6&Q-}d3VGv*{3AorvB~9`e zDTL8ZJAUpa6F0jkBEU$ZG4v;jX_0B960SAu$HysRY3FV-2;(G9-1-@^xRdOA`P$(hfS5Q*?+;DyGJ97>ljAF!cG(k(mb2L7b#R&d{B3g?wuHo!*4$Z=A!= zJw)S>-{?b}j^GFlGMfZK_?a}kq>@jgyiXdTI+pD;u#b9t)LorJ}p5o zq#vQU^uN>*pb^2AmGmTvpD3n5?n5wjGfnsaHzK!_L6}ysiCQTlmq=~GLZ~AWqjUX7 zC_?2Ca){JO-A1hrkrZtC50{a^D|ErD;kuRz%BjWABFQGmQ)Jjd?J8T z7=+N37|>8XLeoW;vka16M3R7F=!3X189@|o=|cn_Js=qvoYzJI#7QKEex@BXvxIsA zbis*3K9z1n>K)YLlOG8uN}tyv+L?_TSLYyy6BC0VZXEIt{fXf%$s&?vdY-0>U^Lxv zDy0k{fohIXO+5|_ZYPN_T5#i#&k4cQ z6C9^rdSZa|C7y5!>5EgVsH2TIY>;R?m|8&w-cH|h1r7|NabQq^pzNlZb{?V&5%{qP z@+$*~(FncR*OIY#iYgqWV*|xh(;@FjKcW~#A{~q(9LT_hgH$3hrGPOc=oab;iqV;> zSC3yFrVF9^0CiY$lw?d9O$egPNFtOEXhU$|BZ!wEZhf6vf^;DSQ&+Q#R?g$a-~{#f zw3g$va1~*QgfW;fZlU?2{Su3R2*=r(%J?ivc(j%xI#@*u!pHO`f^yPv>tniw8Xm=k zTlz^79;;S2Q6hWkM+Ab6A+O3*?T~IoAVd zWS*8c7;RsnuX4<2mzx-%+x0BX#Nj6>Ur28vN#tI&SWl6};6gEYl2bJ6c2-cvFS?fm z=^UHE(r_0%(=jA6#WD*m#1waO4>p^Pp>ms&N!4}d9)7LmejSS^5HFTqq zZ2eFVP|4RafkO=96b(GDGj%oZ%RI@T6(34J-AJgE%IkEYFNt_{GbRB}>g&3O-qMc) z9HW^M>T%E^A26F#8mXgFkU z>aAlsTkj2sPS9KUj7kdp?@`SzokuzM>K~k78S}Y~;c}x~Lq85MoqTzihZ!UnXeQ1s zrk+}Tn=Mq>4^hhHa;-eTa31Cx{JMov*fg@A)7;BQQV5VwomI#Y{*)4WlFT^#*zy_{ z8N5Ir8n~8XR3r2_r**4j5y2($UwL1yN1mn_KZRPt)r4a57(KLt;nY#C$0*^X z@jaKzSiO;2{hJ|FVA!`2OO95vOjnabKN)Mh#c;gZk603k;JoI`tvpR2xPY%IV>3tf zh~{t|U5ud2mVR=b{;v5NB9F_pa+oVfu=ikULGX3`gA=kquH&@6uElzqpJbeL*Vh?A zZ|-NKcw{xhh}Qdv!7yLpMtRlB;#*y+lenHZy0L*Yd5Lk7$|SndpV1uQw7rrhc9@$O zL3jOK5~z{wIC1Gt+9;8(WaE_pS%lM79$=O(q=g#(%iSF37YaCGd`dK3bqx->=~>31 zIv*D`j3JJma*n=)%gwYA!(0YZ$ItX9TlX`b9C@4L_*g3A>85w;#ewksl*)%(#-(<5 zPE%>GqJiT)#vSsEjG+yYHVX8hJ%xDM$kBRS+(I=Lmotuj8buSOa*A}Kv1sBvYq^7I ztYQhKZp4j?Yw3?^pQ4g>b}uMGm2V^?Q_8)qj8kviSaCHzt78XAC z8>1wWNV~uK*e9oCAme2@QCyHEgptHDE+JLEC6rh>!f=_S0})+ic&R5>{vwiU&7qyH zatZN7X2wTgOePxom5e6|3wt7vW0W3({fC@ahOSRyI#p@{Z|T6 z&Kb~xpCZy3<#y)$B_=9i;Y6xD=ibtN1D>=<5+8IxOEF%mbk+OzH%8XowaH~CyGKzVJ zSbXv`#Z*fP>Gapf>BboHILlheBAhAu4Ss4lObyBMFp=~zx{^j8wi8DlLO1~(ND&A1 z7)M!Qe#a1IF%Ab}&!--@OyCNp+P`sz{SwPy#yYkV;0Ae(uJ_w{$JohquCbpajxFXExs}muqmK+V z*3qBEIt+tlq|-#TRmL`5WxT`?nZ_|rORQ1G45o7n9^9Ho6NN?_E*YR7qNK}C1~7nl zgn;H!Pnh=S09!PMD%~$@=`MG&0fS13Ck1#Bn+$oK?u?X)^kKAhg2g;47Rf}*Zfv~z zBtsa$6Lb)icyhUkL$q+3b$AhCNX2PC$qIJZH&aHW@drcbVc*U%mdQ#+&_~)hLA@5z z#2I;yA{zA@swtI!NMoS5NT8pLXArYAidL3u62%-dUuG6}*gM(IM&mZR;m`=Sv&MLl zesq)j8A*svWCvU1S%xr0>&V0}TW~YbUdt|a(MTzcvK>P^tUUhaO)Vq@LzXgtK`bJJ zVg_T;o&7}7;uy>fF45l@hF5=PAQz0=fF?T)AEEq43z70B>4eJ!(ix_|Q$dNNMK&?V zn9LvYez1edx`8QFQ7*CEEiXw5`C6|1Xk!UQq|nX;T*Mo1kt-AJef*=}8NZTCs%|43 zu?yKnxjal4;4bnsV> z>jGM6p~-%cI!-f}DB_GMWYU`xq#?G4Wh?-a>1A{KPA03>Qf!Ora zU)ak!>um~ji|%I!g__A}b{m7}N4892nDjRfGLRO#h0S`Ht7xV`?j@EUb_fUAYxZLb zV{{}3^^6Q5g(l+>$;GL=C?Q{$6G@}|#%MB$q=GbQB!_6Dhs@>%MlzJ1{K!#?i~vu| zyY}n6thdTK2Gc9BS?|^iqX)T6=Vx*`ZL~@@U1c67mGmN1>sW~ohx8>=oa`rBZT(FT zbI^ENdXgd2n2Ot|lL_>j*t^H@wYP1KP>EZ=hs5C5eN2crpM z>rJ$>TW%wkUc5spk@guXD3q^=C0x(b&Uq;%My?8W=TF@!PvB)E!>Pt0eg=__je}HO zN+EmoPHOO=I5?({lCA~DkK|(LyVPUrSrYJaj#Sc&M*7o>C1lEAf^=x1%%PHizKRP= zAEl8ChD|O5wT(RX$zFyb5=l3v=uhO+pidKt-#*0-ij6y%Nq?P49;TRhxgbXwK&sx2 zgM3`1(cenfzu3s15(=7&K?`A&5v#%(>g68k#Yp{`bZo8AGAb!16q7{~L8vz1q1bvr z|74-eB$G>w>DojVr*P1qAvh?NI_b+0a&-@NbfcJNxsn*1`XwFMtfiVp9wdWs{>3Ii z`%q6gPih?n`T$!vE#t^$wtP<z{2t?Q_xmymuMj1DfW;;0}J>)M8{M<$n&4iOoy4+6% zVZ1~uCabY&()WnO$p{kYDYpYY$93|6Oy@Du${*ZEqxmR^xXvNYg_^&}R0QAu?JI5rSKXvtR$V z|J0SF${F%#l=0-qP`gEsu})ezLbNW!O`RiOZf3mwvi>Y%SVjZY!OtlqXr3XPI2}$k z)#{^>9Xb`imQh0sEpmb+Z2Jjz=ph>L;*+7wV6?2nDbey4;bc-qI;NIUuGRD)OCt13 zD#+3_+As{87+Q(rlpfLl;*>}+8BT(fvzZJ@mRlGm*D#AV=|&}fuE9&T@ebo8hZm{F z6>Q`i{l}QiP>B&AJxJqT4A5sVaI=>Xnv5mf%>=HcjFaqRAR~<=y5rY(DW{YM-Jsj8 zP&}M<+%J#ImD)}r@$xx>rK4%UXBN;+a!E(2wi@(l-Dr%GOQk?!7*B-#I7hi40qR)8 zZqi9NACV8ZoS}@PgOQ{VX;0*LN@Y4}n0hrWi1cI@*XvM@v6rRvWw5Np<_I_A#iLsZ zA=;?pGDhkI&XFfuh#^_NqAMmd2_?z+mdm)p_Rzv+MpI1_nXKoST+3BN^EEMKI~MUH zPt%)LEbgbB5;@EW2HPL-D?9Z&HgiFGkxi8G3Li7s+CmBErDRe07Y)VsM|v$EcI4V4 z^*}IBTlEI>4_Ux4^Cn4>aokB3Uf$(2P5L)A+RkSb(@ZE14610y(*ICEEB{bKI~Er3 zEk(5I9hy%a4h)nRIYJXbY|t+#rsbkNS6<~TJ`U>zs_aGj5l4c(t!4U{RcMc5v(=z; z2?p-7zL%4}(e^~iX}&5Dl;V~X)-7_2RmnGU&YW&^NSwJx=EEsif`X<}cu5);wv zTuFcVM3(cNm8#$B41ESeXW6%NNZm%e4A(5z1mkhOllP=bX9p8>o~E@-2|lf_`YQEn z%`#t<%Lz5Ul`;nN5~VbdPeZ2-1YJr!etDcEym~)pXw_kQn0h8qK%@Rm4FMTV6i&T| zQ#8|pfcEDA4O~wVt=vW&UIr41soCtIh7-DoRpN$v8PGLHQ}P-TX@;lZLs=xG}oH zmBbOll%4z;_{>gGpJvfr@6p|~>JcMehN;)tV$Na}-;kvV?Q^WYy0qz2>ka#n;4)HK z%gfxW-?N!8n)#GeLP*1dsa@DdwK;_6q_;JSIeL&Z+^DgE>qt>AM``5(K_C_bTe28S zoMy3?TH|ARPx^Bo7w~D3?$dfXO%9>*U%6V6sOCID;~||-hBe6EMw9<%D_J)OuC;%X z4F7TK8$IV68tl$czSl3AZx`5&MzFnA-!N?bSt5;l%?zViW*b+@3_0rl!}vkQ#1y&i zl7sQLxf_`lQeZCSRolftec5_a@6a0@JB-EJU>=q?xzu^sT%b4V0&?`F;4J%`e%!8B znLX8>PbQzRn1>0`+bHCaIGIR_^dSU;VMO6#q4Xrm7|Cq9>N09*m*+?&Oafd*GM~|x zSYG2KjdE1Rlf-yp@$esp5<>!BOk*VX(oKpPFDW{S-C8MsF;e0Q(2mQh*5kU>pJ6Rv zv_D|=*M+_l);gB@ehl8tChI$UrT*Zn56sp}n+^p3F*f)H&}cT2Ax}$RW1SI@ct^Ie zUXsjcnIad$Zg-wFcEl}q-HAk9@BD_cU=O>m)*8#@v<~v@ay-qWrb9OAjgEQdxB9G{ z;B}@2!!^VH)w)%?a;15>TtNs2A>vT0Ga=l~`NfI%*iN=L+Fa3yP zIqRvndfCF9;CEJ=UJ_^v9@R|WXltg<@J$as$*rx2{OQ_Kd)7BXH&wmtUtv7MaO0Fw z=lsl(FYDdcnY)dHj(d&q#wE_R#(lCS>=Wl##+IIv&XzqM+DWrP3xR1jH!B$ zXS8E7i=3Yt2i0RPGlpw{{kwjv-PKK{eq}yr+=L-B*hCL(99aCpSsLj<7)}D%SnQ*U z4#IIE3@3$fe&ZNb`WvTclF_6R#_bFyiT#w)z#x+GkVgd_9HWjlt|o_QN@>8yKoSUH z4QFYfnszMxnuAnwfCDtykJ(?b+B#(~(943WtpUsnJYePOy!Oij`?;ZMiSL58S8i$d z=ruJj_-l1O2hC`6yl1fUkg?j8Z+>O0cb1uB@G7DTOZ^krm3hNCZw z0)Og#c9GdCy%_2FkGa8K?R?*8)KkVd8LiRwe0@qc`EA+AQ?2eyxcE?()6@sb86!CqADGKk9t#s=ahkh|`>+jiIkQ=ds$6V+8FZ zD1Eh3Q}kWkWjhP&s_w!BgUF%aF8{BQRXt=-Bx>m3AMF+!ps`;qzd3~d%w*7>**XIYWrmX!ZtB#xo{3##&|{^F0@A)6lj^|90~0GTR&V z^`=Du7yX-71#i`PfqC|R-Uv?QA@w^p8ac8(^fOnpIn_Pf@v!lr`vpgi`MvvBM~M;Y z{Meiqo{T#*YqP@*IpH$Ukv%9$@W&|UhGE|L1OuFvd%1dbkG;d5 z%cfwOJx!nR{~ZkHww8F`f3>19-8Y2&E&Z*lc%l7@V5*)9ZnPJ(B6y4*nq@E1CiT0v znTzFd*8#`%<^!HroePXzp68qa^96SgbFOjR*lP^pC+`ts08#GlhQUGCL&i>RbKhi~ z*S_+nIP_H`lvDP5#v)?|*ULht5tOYwLN2WYur!6&*v1ylX@ma75vt@Zrb;$V_y}@4 z{YhX4B{b=atkpB}0AnSCbRzLmMk5_;r(BzvORgldl@nUU0m^9Ab)2AvNFs2{2r`M# zI@$=zSkfelgj4UBpgUPav7S6G(32D*5o|0rXaV))NE}{TXvfd1`X^_Z zOfTX)P12vpOnT@ux{A|;;lz~3*z(S#_31wC6@$3nIb)jveE zfD2;s5+n3A#`Bw$@C-vVlZE8t#)s-pdW2e;D%nKqLOn_)KKv-BsHOu44uqpr(#j@E zXeNmWoE)ZtcD?9uEToZk4pWDp-o)Tx8|P_ZA^WH%l?WV^(?XC#RMEy2WD=pvIYm9| zwU|cMaYh?yrUQ%7q)7xna7=41+M{&^C#mOePEpIyPW-w7A6qD+r4z?o%{dx5Nh5xp ztZO(&3Sl@HDzSvJNDoo1-*TEdifJdnN9>`R2N^`1`uK!Ax)6d38yn>@-O2^sMGbA7 zqzONLiNZ?^KXZ~1BocyPA^J9lw7N6-XDrEhbTofbA}NI6pot)=@97b0`GF!Dbsv@Z zB?1?Qe!&?UIZg|HJQ#>R&LL_fn-ENG;d@R~$t*H?n`6{-2~l{MPazHZBWG!nIrJt< z*HBEWe9BPb^g4D?!T+eFjlqQBW~H8|nNbo?h`dQIaXLdcQO+7lX(fp;Oif}Xh0LKF z5nRSLD)d1PQ%^U-aO!sbQ45$YiG+6Ub_i}98l!6{) zS^AQMM~88oj!v8MXuOzwN-aT(XeXd2wDteo$jdhsb14wA(S^v8pF(f6#ov6ZmB-nIJtFjZ0so5{SdV==3EUSQs*dE`)Rf$16y~$pS9Wrf0~*W(i$!cjo8( zN((CQ5DWStWds>OJZ>2e1T>ETCNgg){D(SV z4w3lrVd3CYYOtxrk5WVjHUTVxd`LE4uH+0so+X4JJ23I;=QM#altCEwK6cS@@f1l8 zg3X(xVDbT#_;oc6Ama%Ko*@yBUPBowLlA8BW8s&9crbM_6$B-N(Rj(`5N+B(1Yw+| z5likS2Ae(96VOIl2(X+0B2N&7!6PISqPJ3oE%Qjh!_QRF!ox)1;ubRSFq@OKUPNYj zksib_nQ#JfH%^3Xx)7nM{KEzE2x5_p7ojhqxLHXRL1vOb2<7+*=v>YdAdeE7WIo*q zAr%9M2H8suACpNKJE)|MSYq+Y1Edp09ez3(fCuMAfLhm3i^Y%B5o8?=_{hYIOH(*X zgOt#XFxJzEpU=r6L~rCYZRAnkX_^nRfm(w6LN~(riCX;fI%&AI5(9&8D5ITWxG`lS zF@)HaY@kfuBAZBt5`w|MG~<`==t&eE2)5q9AsRa0w;2md*3*Xw{-hS4Zl)PO+o&PH zSfX*uFx-gl!-o=z3t%_0iPdZMBrPnbm?pA` z#7!dFSs4uOkuHRguk{2thGMfFKT17qC<6%4(P^Xq1t$hk1VFdbPC#a00A<)1#9?6b znG7M0n{_`mc<|!nMv@6(31zf)n$D+@N(7r}A)t$>paTzJOD}9}ny|2mA`Fv02o84O z!07B*PTKL)hX|bb2_p2xAV3G;zzrZ@$N(bvjAXoQr@_yR!?Yt*{j{rIBa50lvwfO_&Uy;G;H+XPujgJ>Fk}&LZouKRwabNKOwAw*(0`_o ztBs;pNz96FnnZzijsLA{4vW1{wHL`zbphRAms#3=c$~*5XhEea_}VG~iVbncq>i%) zNaCDm;z6r*8xfJLt~*T7HVQ757v1n@+l&#hU(CkB0U)%`=$?8@lKA&5(&}6^&?hhC z?4Kp)o^;TzL&OUn=HP!j#IiG=lClS&`cpxQ%DaIibkn!cWJJEEqYL;WmI|GL=&>J& z!E1Kxhe-H68cDUF9m?TMBd7)xw?N0uUaHhr{n6P#;Rm2B|8Q_t-K5L;2T1auk7O#? zL2R2V9e0|_n}A=2)J-2!{H^{^^(4x$-EtPM_}*zNhu)Bo%4rHoFB~x5O{sU5u!igt zN;4eV8kr7QsR?28b;4HVaPmySNx*2B)tfXBT+OCJWOXc@6@+H1S3T5WHB=zK0uk_} zTf4NskC`O7rD19@yXzihyi3@a(T*A@?M{DzYbvLSBP*?VXI!pGVBPY-ZFGDUKszzFpzDbC>)!X~gtk#;>`LkyQDIF4nS}IA$y6~2Uw_FJQ9SMv;J>{@^P^&- zf-kMZP10+@I_2u&J6Ma7kku;JT*h;w1=36UPRtjBO2ej{lEH7(e{yL&NBnuLXob!| zFy==iHX<`v>t)QC+gt`O0_{RmMV@i!E-uj(-|E{3EVh52Em^b^DLPR7D1aWAh*zp# zEvFbex(Wvlw_^-*{uKH_j8#FU&%CM?XV249`K(0N#~iChscQ0Y7jE4jG#HrWUZlXD z@{I`W`bW}f3dWCact2^iuTo^c2LFmVls!U1JEnOQdq)Hv5KO z1#8&@aXCZQdeEB;YO{_4J2wiCSjk8Muc|}&#c!gDY}h};W+Y>XTXL1fhh0Tl7Nxut zxl%tXls^6@Q@?foI~Qy*OKRti;VzFt9hMejDgg zhh|L$YB~^h+5EXO-#4EMVfFuHQvLaCJIn8!!wVEFg1dO@Sb>aw@?4ND0`(wihTu-U zJy8A;PNu{|Cd@{p2$8!;w^P+UNbEjJ!%!KSj3`=D2SrqEy1Y@rMZA+~452ZHmK`VzZE;2LK$V6x(Pamn>BYq$Vtl+#{e!98*!Sa}bpXp;V8JQqA zw_)Tdtt~f?TIBSXr;Yo6)W7sP?G<#^*h~K2k4f-)A?iVQL^e`A4k|T;79zITKM}D9 zpJd_;JZMcSCfgtuk9_yT@MoH?=6>-(gO5P@;B_9GZ$xo`ZC=QnXL-Fn#B&Q?fhP!Q z7gb?+1tMkbF3QZwElgh|n#k)4id?^VyO3`=_b>r!@gNEP3ZwTL49*XG__-%2 z=LV&Z3JQ<8-QzfX^(L+NL`+^cuUlP;^AM&KxSB?6zsPPoZ#29y^0s$R>1iCX5*xWHSxIg=#O`*|_&Fk&vT@V-p-u z>&P*}f~0nz&MLbr8V5E5vgln1YDbB{`^>E25nW?8S=VSWdo}4v@#S3~&r47DVz?Uo z?LO^>uqYe3#AjARF}{?@Z|$<5kTze@x&+c8kXUBxiPyjU+1+2&yRwMMO`A#A($F8~j3>O*+H`hs(Fx(X%jr6|dH9L!O?7Nz~*`lt!#9_|wupXE|u zW^bMjg?tehW9`B7$zn{hY8%=+^N@2(X?8&_@!C%H6VNCC7iH|xnZgy|>;;hSihXw= zs2oaY7b>d@Dh_pc1ftnYm9qly^$*Z5bL>&@_}`1R|Zb3%M3 z=WCJ7Pu3|<#T0Gfr9%Xr-36l)a7Ur0q!hVt)w%1mTQ!5yOemQzuld_!Sepo5W%naP?lk!N+om81;?0m zos8WwL?6{xynNIios*p~*22Uk257`Np7YKZQ~EAF-ecMAFcc9ReF{iO)Mx8c zzpE)AU&AR{n7$fM0^7db=3N!oCVL+$dEd#<{kcI{wBYZc9?K(z^wr(~Bo;I1*7&y6 zowwJ{(M0W8L^=Uxi)!z=15cKT;7%BOe{q0OK;}@mm)MIeXZZpCP2(@aX``=^^xWzH zS*^f%4~0QlA8z^ zdm8iphd-$zKu4$S`)_tI`dzIB^z1W7E0ci{NS2ClI%Ya|(t(aI5zo_(5fFkVm?RVV zIS=avU1B(@S~?JP)Ob~2PS42}VA|jj%AecWuO4+3UP8INW<-Xb!-n8y0m2#x`F4v# zSNjE_VW57?a-yC7aiKMivo(XNOTifZkyXCm%S!AQILgIc=U{`>{@52YSurvW~RLCO%R%p@B zg#*)k?Ih%3t!-5{RL^!J^vMCq-%Ki2E&uOJIt3TezP5Q(hkPQFG@y94U#6$_3%wzU z%Gk*w>30B~_GlEPuXLxumXTjgCL7j(vk^>@5%TumrgAhk>IQ1Yv|0WFJMHpe>75PE zCHO@l>*MHQ-j<{(D2Z$7605>zUr6o;Z*yH`&Q*Y)3>}2E@BYNR+n(@=SLL%nq~;S< z3W2wNRjLCMUL>PrC)1JZ8>u@|il7V@DBfD&mB|brp8G0~5;^)&)~x}UZJ|vO_FV&b zKO1EFgXPRJ_tk+u=k(nYl(y}6BecaqDBNW3b>tfXP1#-f+>DIx7HqR8HVEz(=E}ad zrVX%ZgFUWPU)E>!wSmm(>qksA2@{yJQ}Qlz_8Ma0=d<##p)D zF=|r+CPufmRbnjzND|HT~m5X^Y))EBa<~PQ6U~mR;Z8qP>mu{ zHSwG3zr#Ap+VYI&5-0F%D=-pN{3>y|Nx6PlBy2XBx~p`6ePEcjyw`LzuroeKE7Mpx z|F||CDz5<&2@xME^5CZHz=IvU_FP>KjzK>jq?~Q>Vtkbl*1w_X^4JrDg?t7KaAolU zgSeV*K*>B+71}&XkGhdXom_^po^SHFj1qmr>({*y@SNgSf$329J4^-hnds>HIlY+< zg;#jTXoMuvk}4}_!K_?cDiF>!u<-@wx7$P@_7GuLg#xqjh8|mM`Y2j z1*gK>9nSnI>h+I)w}C2)mr?36em^P7uNt`L5oO9bon4xLA!b{lpz25?jnS+SW$pXv z#N@pBJjj5Dr!__?#T4munU9e4qWK6tK8|TKyc*(>5E7=-k|VhnifL0%S(y?z3j2;G zk5nD%U>|Vz-g%%iGx1EmLR)wf)8<5Bh*aQec^K9jCj~To4xbyjGZ3vj8L{s7{t5B} zM&y@-;Fos|f&DAvUVyWWywd|M%7S{ZZ47U^lsmm4wq%!#8NtKh$tyOW?<>Gf^?-k9 zk*kh`uh{Wg-y2@hn#z-G;vsN*Z8uC8H)IMOeH*1T`A3~g_GhP(A;EB}2b-qNSPa_* z$G1+zFm_1I17v4Y6K10S@}ep^7&G*r0#=7zK0VjN+OsQ|{?FjJAr(S;*M5=m*tItz z^YcLywUGQUH6Y;U{o5a{2{4VkVL!HNMX|Z*?^AZZnFCjSo??4AwfH-nWD^dWzP~Hq z0&C7aWWL*L*n%r(kjf@F4AKJcY3Y$^Ch=q;gsEmb-heo`a-xh0$lD-IDE$HuZq9&&0u;zkJn?z=s= zuMFQ)Z;x(ol35kq2^LuBCG*BwF3%S|2rhS^sECL-eh^iU|bVZ;J< zm{)0WYzlZO@1s&b12j(!=+GID=swRwY|x`)KzRhI5L6hhpYQ2`PMZ?WuxcE-O5ewM zo`fL1yjn3MQInJqusoP;8atUGuOEuIp8i|X@ai$g5A*WPyQxQuriT#y z353q5-Z0cLhgd1yijz7$OlRJ-z*9)|slUv?(DqZ@9Z)pK6TmEO%V%!H@u{xK`964U zNWj}bjwZ9ZG}!dW5c(VIW&4Ay5eEX4=7XnUO%1z7wgv9ru`)`UN)Gf88vUjYi2;-yhDmR%uJvg4$D(8t=D8FBKlJG@1);{|ReR{qbJM)JX*U z<-A*3hY8p73$m|&J$tQ_(IUJ&Dd1kGH1RN^FEqYB6LKp4vxZgdDQbhjMx8!l=Rd#8 z))IYN9Z4C7H5Sep^94C=;eBAQX{@9FK5h1mgomdSzB3-xN0Y-PkvCh+~vnQ#y2 zkgcJ$6iNu9N99@~=``+z%0)gHmv4N0jf}sc^^vcAku?vh^wgx{JuvR}5)epjVJc); zIkI*2+m~44@xe@-83l0c<9=|IM5>_v;hrkfXg4%}*^+c$k)G-tK304Cv*%gcdV?eB zl00MA7tYH4_PWlDlb}5-WdM8a_L0gv|LRH`i0bI+l;`^BQLONOk}#P;aO%R!^pTD{ zq8+Occ$iU;v81w}x~~~+_N>xD_l!fARaeMmw`0vP*QYY1#Jixg)URrk;{uqk_mXTT zhecx-a(g>_8#KZ_1QKaotoKrrXZ8Kj!y-CkHmUAzBTmjX5JdT%56A{I$afc5QRrm zAf8+}_>*2c4$3ysAR=LQ<06R-%sbBMq{GBM#c)GP!bc|(liMe<#ZO{cpZItmZ-Y{`Il8hIITD6R*P@%j;pjBUGIBb-m^5}=aPK! zkl=NvyA9mz=*;GGwal?f7@s^{G#F&sr5h4DUBNHa$M4qE6GZu}i*H;GwR9UIuYLdI z&-7~bq)+^9aoC^7$0i=?8*cAM4;d!Hy1d>E_f1U-UwX(jpOY246V=KWJp%c}F18xW2AdMu8nC7f(xz9Jwqye$l0IPI;F!4MJzzUjw?>aMk-xlz z1_68=!gr$7sucZE7N6`;9~?9rxeV4dWh(8KAkMU@45-xi+TmwXH% zJFdu6xW)*~rC+ZZlw2XWPA0-z^ENH(&frgf!(Sy3I;QQnu&0JZsBWITA)N?{9%~&s zu2qAazh}xXF%wg6cvh8>wW=!bc=+A@KEuj4RVMqxJElB(_Py}9>eWX_#r|zY|74;M z*xhuU-nC|)#XczRnOl7J(T4lIwBf%@mOmx#KkL5FcqxrTjQ}rOuj4h8C#4?Ml(y)n zT(Vo$W1B-j4!MB_tXmBnNH%-{xKhbi?aoEuawE`Md^{JvG7BS?U6K6eHAyr z<6Q-XIgNqvlExMj2%695nx^<7Fs3@wXbzL-Lr_>B!tGExd%tMcU(d4)8R=^SlASHF zy7Zqq<9=pVH(>pdKp94NIpL-_lx3o$+z1CQgK42};Mj>s$l9qRdQhw0Uiy#Be|=SD&wHhJ;A1`FDre|98zk@N4F0@?dc4IS)>OBgz9R$ z=7+j1?3oX6XsL>T;8gORH%YNoEm#V+Gv_y>5E7b6xuha@!N$&f8LdaHMGzDz^9u|5 z%*r5M8!AW%?GsaN$=kYNW4nqU1qL_mbs0j}ruMHUJi~^uK9)|F`d+f<6_`4MewY#{mb{i>czm zg$FvL#PiuBP)`O&?a$%jkMQNYv|?Cr3Ii}epTKkr!wbbATH~w^r&!sV1#|;j*u1&#I~Xq$9BxdZMubLas%S^GhA69@=~=b5QmmAsHK*5_}= zXDR&@&2jsVld`$*RS+4O<#q@K9JfM~ROA(`)7sVEKYSY2V2 z2n;*$`16I0^1y8tos`fHHFVe93(jAP*3CmmAVJY_w)P7EoxE;M85I=1cR7d@9{x9! zYW#@;U}_RXYa~O$KVtkm(bF(>jsH-~nQTCl#81mAnVBo5|A$FpDYrIpfG4qi*4Bo- zrp}*b;>)VVnTFbS@@ljWVbMt6qE53olO#-dPSqo)6sj7Nv2!@t{ zhDn1V*{rO6!Cd{n^7qJc_I}!awma(u+JwS3pC2-6YTX?IpM<358bTMghx@hV9ikAt zEW+K^7kmuW6wIPibejAgWKNE))r;FhL$-t+C?2&;9kyAYX`>Octv&OCfYuCd5?M~F zb~&|YO8k^4-Ht+*2A@B#K4v%&Rn`KiyVwe8n+AyP5-rxw$pcx8TsF6)y~Pn5v>Smy zvP?Lc=n4$dpSa+9SSYoz`QId23fV?AwV2K;0vazeQ4}H7*TC#DqivA7N(BjvKEF(G zXR2f2iXkt365+3k@S^GKcpYl<`0{V7e?*?=7S{JwGuI6-3RBNFOus2mP^o1d_)lrM z<#`Uvyj~>TaIfcK)XTu;WF7WSG_6H%1s!iOdEcJt)TW2@Lt-3=ST5s1MhyI3-?P}K zJtb!B>GQ~P0%oS`B277%L#b-Iv<)TstG}TJLBzC7& zEOsQ$v%>LjXoJN0$Lk6Ipakvjw0ZS}{giHi%x`u{fVAIv2{e@*G@4k)exgPyq-#AF zdp*@6Vgc+e0hJ+xi9;YLd2XA}CI`MkAp~4-d!W_9zfKM=gi!^C2aKC_(f6q?0Lq9| zgqdal?~eKC#bSJw@brw_20q5k-W~e-cL7C_f?k8bRFnRuzVDRv!>`2x$nA{gviWVX z26;8DxwenA{zI!CXt1Z$eMHlEX(GGfY~_(jkp&n0*-0w8Jnc6eR^)TfDVe$Ep3nXk z;QjcOn9fF56rHs-Jf!7vW|EjoixlsM<}h`@hnx-!sQgrF@^sv1lgT)y4S@ ziMSu##7CSF!b^3;X8Dx(g^x)?srXt$Su!^fY8a!7`^cB#2_Njm+dJW;z#Zlq%$P7s*BKY!7KN8eW}kLbN_$@W-YCvAqqc5N9yWFjRJ++LqJ1|2Tlmg>0zt+I~=s zo?M$nhhKwci)^;^Dotp~h33Js!EXDCFDQpLClE#QWHw#=ng-nwp1r*=CKE(f$te~j z;w1SzJPMj?Smen7xAhlS2{jM{PDbFHKdK;>UNI_Z`iW9e>T( z^zXXsz_KjnIWxM|WK5yiC``ZE7Y9wJr zgY5P5CsQiX`IV3&56=O^tB=<@xn|{IhZ5f=5c#^XHLZz3oeymR?aG_ zkYCM6Gx8zsI|Fb`PfEPS5w@txQnw|8LS>UGRH2k|K|c60lzIjk?@V63@XhK*^_PUY zYyhepw7ISP%WTST%oCKz(tW(}N@_kH1Z;bdBHvVbZAy7)z|M0~%ZQG`@id*Yq^vYZ zMD+{a-wb{NMVGEL4NbUX9j2F#XM?`DrTrazX47PK>0s&AqcTBpQWd;1w%uhS>q+wm z`K+xpW}E=;X?j=UTFE)fo)eI_k0*yR{bcVw<4=@-eRjOf;PG5X`fgO^ai2HEC2?;v z`d!^XxoU5V{<9@nn?^}FZAMi%yD3}K?PapVu9%Ux$9iqGFPJSuMGI^=rTr)V=ag@B z!Plav*IYs?YI35={T>bT>31Lf?GcKfLz`nNC@=0sTP+>x6gR3KgdsPwX<%Tuq6ti( zlHk*IRNwSMdARiu`0gfsYN;pkd1%oShehL%TbQC^y~m zKan{ky{X0a3ogPH?(N8X347#A7Fb0*LtAJGJWV>CA1Yi<6Yg%QS#vvgH5n}qr3(-3KULfBU^pQts0VwZe0As+)~dcKfw5gk$wG^w(yCLw9v9OO8uxG2@@jK|3rRY&N zKq&ZC9*$@I8`Zw%AC&Hy*|c?2?t3@dU<4D_Y~iLo5H1!-t}1hazgJbXtz1Is6Xe$Q zR7CfMhq^TX@sujO&(xP{*5k~zE28RYNDOKIQ18Q{&w0Wk5G^nZ>uKP-RPQt=!HPMK z+PU-mK_DIW;{4`iZ1p&FlX&d8Dzzxj=ya;`U$hvT%a5opO2pF{Z1;x9+;*nTs>z}D zBoyYb8s2qSF@BfQwGmdMm7Y+VSG$^rh6y3q5mtU0v~E}vpIYifw%viysjK;k#e90e zpMuBi0qJj2Pea7%7{)89c&N(@gp|~{f_A)Y(flc7JQi~Y!=XVBqFG@W&J8h+kIz{2 zY3`Q0h1NYAr&C@`dKY-P(7mwFey%mAo6cEK1jSE7fuFNsW& z-B{yUxPQ-37pi*c;JD*pTL(Iz*XGj>joVcYpkm3a_rHQGQ(Z|8K^Sd@=Ad+s9hqPx ziV8Z0xEUn{7~8oAXS*Cp=;-BKi*;fkqh#mBOSo#Seo%(Dq+ukjYca5p$_SJG`B1&# zui$HXJy!a9%}W-CDKC{rAoE|DdO4SL%DaA)3Nx6eI37cfpwx9}y4I>qSg?>+4f7`A zy(l#0Jd*EEFp-GG|p z*lP=O!P;GQ_q;*`lTKb8EUKto6eho!Y3{sl~N#M)_|ty`$A- zcA=#4`bUW1R=_}OZS5xT~XrW)hNZytLzYCrRiPrOKx=p#Q2+XLcQBdDl1?9i9sBu@N zL%-?bROoeEO}21VEQyzT#81 zu>s``cG|hZ^NpE68U4GNWU>N*O{rRV`NWrma)X>L-t^r$(s!*ig;e<(5aot(s0C+s zB}S*kr+RIu*q!(cGtsKnDzDYbi3JMV7Wm7>7d`|5_?oqjScAo!rN$(bI#L1Jn5kMu zLyWerLLuQ?H4VLIO_Hfau*sO0VJC&3NLa~$VP`!spVnLx__EV}v&x>QD16B-geTw3 zOu(FLW*9e;IDO#^sH}=(XKVad2|j6j)#jSjiIrqLAp%q*lyOa>gJZ4-)F%#C9Mg|7brUDk)=Nmm({Rxc8 z%Bb5bLjv?rR9V8Sfdxi&?Iw{Gi~kVZ#T*$i)8}QC)8B4e^j-t^bO11!w^TsKr)BnU ze;=Clw0B}+x=JiuKy%%^^c{xhaL8f<2;UQ0d4I5w2m=?AH@3UGDQiMhQ_p|3`KF`= zet4sh8<>aGA0NVVbM{!>an|c_Hq;tiiM*k<#QP^TQC0DE-Un!ZXTP^h5HF*YzG6RI zHfiKS=i>Gq@oc*w7JmC!L^wMSfE_Qu7L(3 zu=W*ebS=g?g*5peJ$?bc&tKysDP2P=6Z^t*eB>K=f=vLA^$2eR1j}z0USbjCM#2hG ze8}!ZgXXuIlu8iSqMlEF+g0Q_)_$Mq^8^_41J1#-@N$#(Ji-;CF7wW)9hW3(bv1_%i zes-i;w4r-V%glG6EuuZ~QNP-N56$vLw+?e1Qt=$tHIoeOhi!=h0^i4MNGAkPRomE_ z8`kF=Q{>&kM!CNfvbJfXmTgQsan&p!Dw4$UGm!>C!#aCzNv~(bEV>yj z?gr^GumwYpZ;f5WdL}XE~w^ zZEpc+F&tuu-%^}BmxJe6&!H-rG}{eaUQ$&)pabO}!K!mtMu{QNG~umw&dt=Hr~dP4 zS8}3WA>8m^^E5;qor6wyQhAaW<rX4BPgB_vcWcCtW2@>8aRPN&>RB zd=W^4=mc+NeWLcceE$n6(MK9th+vKvn3v`qW!g=wbHz_uVjt`ZIMlGdqjv5sX&d?G zFO09TM#m;1)}HwMo%L@gR~6kS;~N~XY%Ggg5BK~Cqf}Zgwp~|eJVavjNlf>can@MmRkF>gojYwUyeeAgPi8ffyTD%vSaR->dW{Q|A6Pa;{{z|@dQ zzHI9iLtxHrTNF1jC|2X5Oeg#B5|rMFvdgd zX-6Tk*RJpmg>JEbDA#@{IcK*5VR_Hbgzq)WZNO4d7EJS@v9Ps%NBW1kI8mrUOim8f z2376KDemA75 zgw5Ma_wAPv?J+mD_yhM3?x5?{#QEb5532SWOdyq$#AT9{nOf5|5@&#UeSl-3A0|$~ ze`+bNE7|rX|8SyJcSk_sJQYyao*{Eu>1CbEJ?g}2nx)xd$u`g@VJA?0ep0yuCpZBX zVSg@=2};Q14V%riyul|;I$sDCwOWp04bVXVGW0`$wsG-GM*GZdXc6@u**ZL{TFX?- z&PyNvj4W6SiYp1PPPT7>1GCH$uvBws2PBN8IH2%1jPIf7>_@NyKr=~6lX-Pq6~7>| z8y#_zZB24CR3(AOwkI84xYOXxd77;I;mPBX@b>}FgB3C=i)zp;-o^fMI5=O<&`pj7 zdfH8Xl8p6eZ4lnFOPD-lo7~~s(ixjh*aL4TH65aRN>O;p|1@d%@rR0gjSY@FGM(!P z+<&YP6h>F5M^Az@97`)&Fpn|rUNm_^{{td&ULrV`%9qpgvz!52(ad03s_5g5Xw-ZbWfLAipLBy&Xh3HBdb z{*a}i9eMb8l1DF8YTq*}wv88ly2-73LgBC}WIG3YDLkZK;a7zMrf*c}@h*?320f5u z;l}0}HA%)kysMKw-soO~8P6@~OZeGeRJ?-BX?0WA5NFd3Vz^%@X~~K>iS19&RAK#W z#S<8ETP@e`T;%6KVqGq~q0kG(W|;TQ$7{3k<9kL=W3mV(9mQbm^k8&8VhbCJfB`A_ zD;)L%jeH_d&05U``cgRSmtJ%29kfavwEZ1=m8lS_jPJQq9k@?Gww?P_6^{6hc(I^- z?`!K{SaAD3?qhvA>1_id#m z*|FzVWqqte39Ayncq97?>3@tX{a%OWBQr@KVG%Wc!*kO`Vi$P^AqhuL>;Ans#)2x1 zcg@STe6^nYUEX?b&pb`6W@MIqd#6vH%ygE$9+!28oYnBrWY$QI^2S|S&{uJi@^H!m znR=4uXYtHdx;YY>%Ptgt29P#-(7Rpm5x!#`zh8C0|I56RNKU8ykk1vq5Jq0T5>p~b z-Q|a2Kc7T&qAwTe=%;nkcEcPNtu9IPzkhdP3$4r-HH}0oUO9{x{)`_HFxQ>_wvIS_ zmHPYj+Yx%pe`I2~!d>P+zt8L1r;wUgKSehUKWtSQ1ge;-5;Z(Nr{j<=maihomFEjh ze$^*;?smX*H>BY$)ve+r8fdK`%rxd3gZsCo`q(prF_g==)nuN=L) z{=`;cz$YwI5&w)A#>^j1-veH}@knCjHg`#XntX5)RA}B}=Z|1_IbASG7oWb)!+S^R zB6CsFyt^{L0a#r4`}Qw_iFd9=i{FNM-P79W_sM&A(klB$GF9YG_^0lN-Q zMB2W)lxK@pUf4Z-A2UX2q#tc!m6vNHSj>;vPs*9Z%LB9LGMm18PrO$~wF~mK z`294<2ejoUuTaD4oeh^))#~5NpIfmcebb8BEjs2-LT^Gd)a|(`dnand@Xes~hX3*WES1V)a*S%$Ze>s|% zW9+?q$)#idNmT#RPTu2gk@pwL6K~(2seStUQOb+M{G_Bdcrv%;1^M6cDVxspl_>hRxLNRFee<;j4`)KQnuR!NC-vh%@r zQ96)T^M7>P1O(a^!pDAe&DkRwI|Phc1{wtFhneo43C>-L-@BWB{wDbHn`_zU*|JZu z&q*lz2riMmiZ@VePL0ftDUfgd;z`VA#qoxb!Yk}LLu)FkZD7bO$Qn4E>3cWKcd?x$ zul0A%{>!Jt&;*;Y|CFa)uBS@M&KPRCJ;k^`7o6$}vF+R9JK+gWhDHjhT-#@@K5TQ~ zAJM-^DKES-takd0B6yZlT3TWmB;DCdAfpr_$#@4n2h%YaD-_)csucj?pv## z^E93F_h*a`I@G;)+~(@E-w4#k(s~U7@OW(9mKdC0vKy4htNJN_SxKopT-t~|X`+&= zJ~Gy&U{{bNb1L#iUm-$5b^8Ba03W%RZd%)Y3zB%O>aDzye73bUh(0#ueo>`P4$i`B z#Oip7;-`7#i~qEv_%r6?H>J*bZ!hd@f2QxO2wjl7np_#bFI4z;gY*X~iubEjJS9T* zwyN&B-AES5eb~Y$2UxbM7RSDgKA8NY#5B>o%`XW68Dxj=@~nSn z@mCV|IDmsxZDk`q$%wXbKJid30$zGm`(3H*YF@S|LLHwpq(#x$@6ESpKf^QQ1Ee zQR7zrklxEyhh0a&&3Me@0iSvGpzynq&s->DBeo1y|NM9GH=VCOrJT+FoM6YH_fP!c zKMeO-7Y_UzKz$MIgXk(D&%LVX+L9Tr)Y4t9ZwP`VT76PXk`rabLQr~8LBtD@op~*m z6h?z`Av;hZ@pa+bw%vz+(t;ziwzD>CkdTP1v$lD<9TPYN6&|py({T#T5tx-jG%?W+ zUCzZbsLZc3%=E(rLm5f=!3L@old`F*2p)PC^^zEm53rmV_1G_fd~KqWHZ|k%PnOS4 z^oo=vlD_*~&*{1K=o|*=*u5P-Xv;a(9B&LB?rCwTnAjbrim>u)?K<#c%2U2>^2&P= zRl{+>r>dau1^^dT6Wyk6&SmhANb4j>40*rxf0vs-&7!!>I}Ljt6PXGrkgt-FsfN;( ziaNi``6=c&SF!Zw5#=Emn^cnki#rz$o3SZ%Bg(yy{<}yB4FSKuKq{3Fb?nfROiS28 zm#4JjSXjt}@vRYdqLe@M;t;*HU)qbJxO0BzYtUhFGYzT(_eKHn99 z9Gu*^ENFPJhFP~>vPI}{xs<4YNq1D_PmUO3GKk7icSEqa3+M9UGRB*hXZGRm+zNQp zKJQBY>e=yQD?^N6V+ltNz{+j_e+f;NYFT`E?C@JJoze-KFuNX z@h1Sj%L3Sm{eX$fO)C)kgTu)EF^Tjc*AJC_Q3XiU{q9bdZ(USdBFIKQmqFDnwWTQy zFLh3g8uhF2szGH=xDe-u00D_#CYagLvJpjpZ#eDvXV^bLbWdF=ujdMVT|#7a>&q@b$ozpn3+5U3e6jKuSxXoGE}_hd{4S!sXnlgvD;$uH<~{z^j2n`vE247V{+9wn zmEA_W$Ig7_sQykCV~m&RA(;F2RV5zHra*C8WgQU}z0pbnA|n3&jFxOd+oTU`(!;U! z)lzgAA99z&$aBw)tPb&f?W(q|2g>C!tANBGqPP4@l@{~Du4EMxWvnURtLSjrY-E}0 z3`VTlB(u+B)x%r@#$5+D=H6Z9QgjxJf)0G{^jT3_+r!4Rg?}uzT;;s9=Ht@Nc`9)` zj$@vS^1d~h1JG2<$_t1o%_s=SU-d$KyNbvGHB`nIYHL9GG{DtcqP89#hyZBY2@7{^_Dw>@ z&JL9d>N5pGKt}(nirj}Wa4B9`pC;&Nblyr1-gw8qJ-Xxn(rY%_g3gKK64_xihjPc} z%nA!=Wr8nLdCZyNs={a3q{L2J11!5UfpREWA^)PzhkcAetr)qzE;GtQ1rm5pc!qKM zr~RR1*Wm^|NStm`&e*UEpoc>URe3UV4`5WXFd?Aa%i92Rq!SBGD~9KW>6uBt=r^+Q zuT;D?9>GPnUQSd3=Z;-^e9;ni8fxW%Juef>1)HU7uadQG1I>bYAULZ7ZW8M$66 zUyJ2l{MVDT?dAO@r0#oVg7r&@18sH^KVV?;c5vK_X9t~ zP#u8)xD?&O*2fRRpv)KaDJKgAU}AD?5@ozOGM2t=qY7VYD!b9A?!Sh-LXs4L0H7p# zqWE8BvcB_e#gu>XZBg45K92m1C ze$k~j!mpOK*y-e0wE#bq8Ikh(WVPwF#Jem!{q}~^kl%DKesEKl0UnU%2Dr??Kow8< zd9Ki4bTfb2N`{$rRNZMPxk}9muc~t86|5mC2FOx`Qv5L&`Z5 zIr~xyAsSa_v}uXT;jvbzJ|5$(AS2&tftF{y2!Ya2h`e;^4$BwiB~x(R6QBQi_)FQPegK z#m^M87{K>fc%oB#>#-T|fyPg5@#CH!nyOLUuL8GRxa+ktGn_`BdA&GLd29O0r*5PI zulDZ*LIVyV-`=cf^D=#vAbw{6x%ci7PIY1QvWga0iPxtMsG?Fqtd?bmq_iBc6sCX;yac@YOXy98Re1en1eP$keNn&-CW z0Ee+jecn+YgG2bzH?_6~fk{J(gY3npM`JYjA?Ejth} zk}Y~kQXvt_ds~;Ipo4C>X0K)?N-3)ez>vV5qy)}e+Q7-5VMFz-J2M|eZJQRpx>|%X zXG6{Wc+5#mP^E-X{7ytm`V`b0x*(%YN-1WGr{!3Y0) zJFk(4tD+wO1rj{-A&+@nOmm6hm0njGa40xUj=6DyQ z&Kk3l#w^>DG|2O>93A;c`@fDPQf%LU7|1rf*7~QX3$Pwf@PVx{Yz+?IXHnASQQ-t} z^4WQ*r}^1~$-D9?E`KuZlj|`qVMYToEt&=f!8olAx{hpyI5k?aWX<04B=N6Dsurx5 zEvYiUWEM^9A6=t>`Te0F*56}Nwyl}egUdecG#;Ap)sojmuAoFamhvOqmfR7UsU}$p zg|Bb>ir&2?XD2p%Z(GU33%*!o{vXWQ#C28dsw-DyST(7H37$e0m4S@vr|mi1IB0xk zD$)M{>p&F0nx#Uf(3W)!rOEzOpV0lrAz336^(_uiWh~%-jJ<+HcP0)O59wA4b%~54 zPj2Nrb@~w_Na1GvoQrfP85lzw0-8simT`lOmMDreS1+($#z|X-Fbog1oYz9Rk8RRM zU!X*b_=YSor7OF&PG_@)L-Zw;7*3N&^=0M2{*K33Ni^*+adRGJHJ2!1sUD(0*W#m^ ztz6_Hd9){5{T${8Eg(ky@*hc;Y`sHIahj8y(IWbAfP4&UXx5qh$ZlE8AQCl&zxi7S zQj5VMs;DAFG-2k`hb-Nrb6HI#ABoa$&Jb1N< zKiQ{!`Iig&o*vhHJ;Zyg(PjL^Mrn&hww@!GBifz<4r>mPw8&~%BzM>@jn(72fgr^) zl6sC=FYyoSr3Y90TrhSKK_)xsMY^8C zL%arQhq4JDbw)P1`02qhF3C<=$h-C;{fc!ONed;?n|ge97u|)y(|D=ntaL!=Ds73< zV_HNpr=<<~%%uy%bUfedQl2D&MEhm}9Fiyo(T44qIC+*NL}I7`ni)+GM}z^UmtG{8I~hScwvvcjThodl$0dcMETt7=G#``pQcZVaq&opBC}b>2yhAFz^ggP& z#PKUSb0%flk2*p!i_7uj5-*Q)O?V7*aU1;^$RIt*NHXkO z$R|nrlZI_AM#wWBryFDKOmZmEKEzNd4|5gC_GT`zUS^TR2=?R0p%pZ8K>{Qa(jH{e znelpzy+$_0q}$)nK(WpvnnG4c9|jmlDZ`LyL{iOfWYAS!#!VVic#^L67It$U@DOdR zV*qXC5ba2@AK?=FC?|m1=+98DwqvLzUltLEtzTmh&ur2ukx4Y-vH)rE5^dxz z{CMquIEHD&F+;}5zjBg$>}=BLYnRd_3Fc&GGLBLNTQ-nJyxzrn98@!uUiuPoMCeZb z1;!)!0!2bx7X3U{Iee6&0P=rN1t>r-u(_a4}lQ=s}1eQcdR}#go z1tjw^ZsLrO>CR-!K@K_QXL38Y**|cJ9G2)I&hrXUMA?Vf$&Z|qBn&3gmeKYYeTN^6 z!&*&}*+#}N%KniO%B{Qg1Oc|V42DU{hUTFu$lJK+gLAiwAtRy zes)(doRJ7JiQ!i=i7`IJ zB9oOQW7&)OhaZid^dXHTVu_R|+>x8AK~iE9|03chN#XZy}m^V=vRW%9_DWR>?xnQ)bMeJ3}d!FA{K>b=tnHEcd~(9OlBx8`Z0BU zYyQX-uD9=`h+J!xeyguKqvcas;rNUH@OrqA95(7hoWN#gG*d76L`xq&!-t;~Obqj9Zk0aT zm3DeopCUk$&Zd%(%tor)_0uBbL;aI>h`pFFplz#R+{?QZKLasK3f6$J+WX_Nahovq8)}8#OOJoe^xLStLUeb*nTtgq8rr!nARID!3T5_d@){#mAP5Ki>6fl(IT58SV01Y~jFxB!GeWj=Ii9AGx^$6>9tC2$*w){y*V(rzs zS&z`3IxWzA)^fypPDgM+YWS4fckbBshug1)Gm zbRDsqFBOi$}T>hSUaE@>rS(@P65SuTTJY=F zYLRERk{HfWLL})_5J?@2Ft}(;;|8vinKFne+@}Zmg+V~QQ6!U@sD@S&vcF;{d(6+c zfsR^D91;2$C)vz+vS}hnBoUg;G2jzw2*_z-$>c4fIBl%vW(I3EK}?>ZHBl_aq@z^O zjID3s=Cm=3_H>{F4K&)R{bl~PI! znJgli;pQ9i3{Cd4nCy_3qz65iO%<1j5+}+m+L38A6G5WhsO#}dKO!;k;lyLyBvToW zM=x=jl{8St3S4-lzf5JIX6QB!>jcj5w?0TQHO3UiF>B+` z|CXOT!}T==>r=S3#Tdzb;xez3{>)j#I!Y9oPlo9qiPI1ntB8AR;My{mlUu0_o!>N~%##4-zwnjI(k-1ireoiqt z#L8fP#iWgX&j}oM1T}ib_=T`c(pU5Xm8@ki>AIC}IPC+Rql)dcP|8KR;E zoqAZB=_+kyF`a>{CROYde6M~rzuPdWDafd;?{V!@P|2-Tj*+c;~thWf}ymw$CASlGm3ad$QKO2 zZC}UF9AFvMR563LB2(miIr;Fk>Id)+kM&2X5%z9=3+T3mCiVG z1UK6q>C2(eNNv<%`mBCQwLBw21Vf0&rWzACK?5Oqn{E=XZ7I}7CXtGV8vMl32|v}c zoIWJ#QR?tBjeXQe7d$xhQGzJ1NEc$|Bw@U2=?02O;&u$0u`!Q7%*C{#CnxQ1 z7-9Y{oA|&HC&RU~=Yr{!FYV=eyQbSMT1IsE43WHN&(c!XhCKEXxx4nJV3xk?TqXa= zY#AW;aFuJB`G9=MllrgTXTQb+GJ~C5;vwrA`>4Jo+qp*;8TT7wb%fh%9Fv9NS5@_| zmerPn<@Vj$nvT*>{>IB43?%9@{w#}VL!@pe2`4ES7_yXD9NLE*8s$;xLag4a7if?$ zZHUyt{KMrn^2$vlSzp=}4eMmKG0SWh z?8F%77-JMYTsw_BSZ)m0jffq?UU|W~&)&cWeN5gaEZ1tD4m10SQ$CKWGSeAk57+;4 z%s)_-howf=^R1rJaze(3GDWiGer_b)ZqFy=vOtTpi8tj&$)u5JJoW-zt_51pE-K_x z(utHl{7eibGEP#hZ}lb3F?@29Wa?zi(@JBJTrDXC31S)lFqd@uB&TVVLgQ{?oX<0t zB0B0Y3>I)$KCn&wmB*~T?3Sr^jp^2pT?-jx-y{bZDH7VK*|gSCb``IPE&Vmcf1|xg zCRDc$Rq9!1u3^dem_+9|MjOYthmWlB`WKnj^?XN@tkPFyh}@#{^cCY9d5uxdX~qt` z_EvqAR^bnHC)Kh?{4{7g9GugaIY*-`rw8%0B@!nuX)X;qRwhv`AMgx47|C8Lv>j(~ zu~>77AQLZcX^=_8>VG&xgZxT79*Mw>$y?NDhzH0Puil_LDVNo96(Tpw3hC?YVLYiv zd6TbXf+mowpJ^&D@Vx!L?&5;|tA3_^oIA{aa7V1MQtjC0P4-5yHQwlFEYl78i~Jkj zrdR6%@~t8IEbEvl_0HX)^*o=rSRSC8<5vkVJ>;`nOCR%q+@ho86=O5^+YbAXJa4`% zhYT;>c*FkDdPxsSUk$T_eAz@joplp?D3$3{5-&%&i;mih6`bb;)wJkAs%Vxyv?45tS9L!k8zaF`i{0?uzXhS^`#_y+WfHVb9`g^B!Z3mg~d%qr^xzxt|`|Mi=W*(r`;82be28 z*~l5KVkaf|SjGveNgzUtbT+?nUVh_RYUK~IiPy~()5I}tSL)G~%%*_= zAM-EeOyo4xS6Y}e**eMM9(lK+)GEXK75rg zL3;!~uyXA^;br2Ig+WX1(x7ppe4)F=Vksl7^F}wB(eR(}F{YV|$>9y>G~+KB=Ra!A zB;<}_K5E<|Udmk#-A)H{viy(g(2w?Vd#tn6m?*!Qx5~F9$zkTxSzn`!W=>OyUssbu z1#hsIGJTgyeA1txr0J`iq6V7~iWd(Kd5Do@(Fs2`M<`PtC#j*5ZX^*Qk28`?9;Giy ztRjbM`H=C_Rv+M^)@y?9)63tJBG-z^6vHxdIAbRA9h0<}2)SEVa+Ge~Z`^a~9nP`K zb(Zy!-^aHUhNtQ~ftt_)%L>o2dud2scjd_^W-BSQ_c#K^RHG^Q3phIf03ZNKL_t(^ z+Wt%@Hona!`Q4Eu!{r{&Pv!=`44Bqr_R2U0@V&goHC*q=FxoN1ZqWj!*yvQm{9O(+ zlqvKlLTB+aWhAYM!i~v$Tu-80Pa`3m z)DqHrbt4z#85u^V#PJbVafD(T_=gdsi<42LOMluBM=5#K;lYV1cQc08#sVqiVIDE& z$!6yh`ZSF^ZWa*GQT(EdV)EQi$tLShJ3(EcW!84u_@~)#Lg1|4tP@*a4ZUqWjV-bK zSJ9hzM%(BUJS9ndfho((QsWKZzxK_%VxBTxvLZOx&eJ32`0x`bd8V70uEpj+d0x|W zsLrv)ep*`_YmDhKL*674FAX#jB9D6fv?dxCBWXvREa47%a#)8`rjK!v)9fS{VI#TJ zF_;d-Ye!yZC(*>3TI`62DF(j1Y{l~Btx&` zD?P!RawDCLdl@RDwXgoEdwC2OnQ{mHrInWHEd5ir%Y3~g{m8&8gZNQ~l0pn=l0+Jj zx{q9HE$fy|3H&Sbx-J z60}orgy`5v=+>O=B~d68?)o3)4hEYDjb`Nq}R+-c-m-`cC}8G6*n(4pqFa+S2AkZKLG zkS&BsBIa^YSqy1ns&wT%Wi;t#PHBz2LArF{K1NA41=M458L~^liGyr9D0^&TBH{_TFG;GXx2J? zKsR$vHsWWAOrtaBDWipJ^mC4ph#Qk<7(*NOaFIHlssH7yj3%3S%Ba9cCSIHrQbCKp z&Y$E`PHSTIbM{cdZc1rkA(Ln)XBb2(iLBuqpXmV#TA0lS z8raHg`pGonIn5NhkgTzM%~5Wm8%f;8DozrG2d7Nu4{pwBdv(i|I(c#itrI;3m2%nf;d;=Bg`n;5l0(|CCouBrJ2*z5#Sg#v|It8 zC)1TA)^VO%Jx2o}wo!qPi!>7Cb~=+lfJl@LT%du?VD0+7c@fJi#t4;9mNXLOb?Tf*Thm75E6twRmysTFPi)5E(>KhL12;Us=~) zLKAI>z$IfS#itjj!p9Fd5Ee*plGsZbEwYDtImf2X?V0zKc!Iq;96gd%wQL#%p(&opD~0~>Ca{gbsohu$*c4xkr8q?>GY-*(XF zWL5p13uI7%sXtMKPi|ujnMBbvXNCL9=eDU=xgr3uyEx`k4CQk+C-U)@honi)p2WYU^w+u|om*iRFd{6jn* zzLn9WuwFM(!UYNl5XOZ;51fcSpI<1kdNPddoFE>DCHf-A^?$6P%6wMZ%3vA*bR*q~ zktK4gq>{{dOnW5X>n5X|6WYLU7^swyfx~#0DWviZiFo8mnozrl^;A$sAEIcag*ZLK zHcDj%g*dr`c0`j!7E!!RARsI!GKIJ*bWN$i|J6k>Wr&rnLlU5fg)W zz(qjoXd-}{NHQc2Hx?!a4h$fY0De787!y-mn36yO9?G%ta~40Ub?QSUR=haqh((wS zSctSnu!tlKY{H9|R01^07!;+D7ED@*z$6(zK8|QDHmQ<~i!g$VdW3*hp|~-$k%0V1 zVu1<-H*TUasihG}2g3Mhq=nu@;=&>TY$1qAcjQXr)}R+2oU|eU+(9zR8R{^v6pJHq zU1<-SyoC#4CqXP4u?Uk!1VTI!xbb43`Z(pl*SK)7jYgCt3@m+@285ybF=aYwa0N84 zA%x8hL=)lw0nlG)#E=hZjj{#{H<2_FCXEmwa%chlnOF?oCV+ziY6$5mytsf$oSdfx zOX|tMmOQdCu&E(HCJ~5^qYQ&Q+=OHfZHV9!m9${v#BsT4t5K~>4$#@;(85#-2+=}1Zrx1-7W2s^zz1aEhi(Nl(&9oumLh0$4H#FD8SD#ij33Oo;!G zkB^(Q4rQ)%AfA2HV$+8N!g7tI5UWKfHr^|`Su{=pC|pqpMv;JvzpiK`QMlYNMNcq6JjOBv@n`#Y>M_8B9 zL`Wu)NCcyZ$DkH)%A3>@;C+IGd6qbwoTP#9Z`Li5ntVZ)Qg}lT-;`y64L~w#cJXD|{ zBWZ<4CXkJn5CZI{4x1ZE!lU2m?-a{^d6PtTQHq~yFfep8mH3U>^d^b-31jmjC#c1s z4Usxe4^SzKWg;F1l1Zf6x{TAZU1rinNAfed4CDk+xNxBI0nLQyqF?C={gYd1M_=iN zY7>7_Bkk#jo52jmVk`UDqA%+N{Y*CTE5}%)kLcIhhg^!~14ghy?`N2PMk#K7!-GeE z(AkvnJ%_l7a%M<>+Hz1&QLfMPI~(NxSUS)Ds>`GgUvr<5a?*PvA&^iKY9Mq(K)R?{ z5K)v>?2CP^>#nQVyK7$+U3*#J5e1Q6L$9F((twbJgpgiN&iUQ*ywI8dU}iouFXo!> zOkyFi+$=Nb&1PCTr&s9~_Tlg`yY(ao^aR6DU@o^vUvg0OGlRXH(G-12H#3oggy}b| zqgs<$!z%W2f>XStJ2|ck=|>EU|>ow{CEvrVT_$`)oa7hx60^@JW^1^e_2)wuK{eq*zJM9=U( zcStWH<&PEG(;VZd{-mq)|LmJQ%yZn#Fv9g1(;31PnyGS*bAT2(Mk={nPAd)eY7Ven z7wJd3iN7*{%kAStalv1r3%F0#F$U2uWfF6Bv3x9X&Q*GrI9IkjNQW9$5hZ7E5Oacb zTJ3x?DB?qg;3b|8Qf)u3Wvoo2nocR=Jm>h0JmPgC@znAyqgBT;94}9CMoY|4E|-}^l1LUI#A0PPl`_`cP8tQyc;46Vc!dbbl!e@g zo13H`@p`X*$3FQ8KOy3m$K_F*uN}DUF-gTG0elRUo9IcB{*Nfa_>L}G^*i=(T4VJT zwI)i&qw*O&2*^hI6Q#MFr&QvZ%WNG^1N+5t5~GXxf?o;aQgWq^Y!dYyE^$$pY4wV!g9A{jy-`pCUR(WHymsmpkhXu{RU zYx*je(}!lcl9>#nh7?KCnfS=*#M)4^^kR`N9Dm8R#x4uU>J#>@Y zAUEhb-NpCvItjRSIt_%8sR6bS%OUOLL54`A=HX_q{;VhUcYR(`NjJBVA-$!9)11|6 z`f!s@BFI^tLo!Lu&BPETC-|8auH{UUJ$f97(Io_E)ew{_xrZFm(pb`*0{=4oQUb91g7# zLKca};w3j2N+eA-l%0G|Dh>3JLwM++_2iSHZ?l_SW&`~x;7YRSXFg_#%#^(p;+1Zq zFbv^@9+vMpA&LBr9HR6mw(4$EN-mu`i>3Ok*^7s8T}ZwR(l%o0ZI;SqjM2w+9UJUc zN>Ov2o~2!8;#a?1DYIp+`(|QUU=Ol}?XDVbV7d&agF^(coYPJ+i8jj!0Hb9NbL`K= z;gxAbVT*=eY#J^}G6zT?$~+^PI7E{!<8(1D-Ay>nT5eX#G=jQG zcj+&*$X)W8>mib8c8c)g(f|R1?q9KVNE(TV{gw@^XE4Xv;ktqmxbQKK-sWYZFt&&q zTAW9zKwOV;4HLDJPO9t@&T?LQ;={UDGnHHIe%ffX>nLTd9L1yCB#KPAoD<}bFRzhB zwmyc3FrA2tc(YJOG0zw+;tN|vJ*DEsAx>+EqEKEXfilwzL!2JMjh}Dm;F#G=9AVCJ z=|Qv1(0WFQi)sRPnWPgYNw_)4B-|uYC)2p!&d^GVWdWgt%0?`>qL|L5x?d)8)c%!b z>YQhE6KhSOOyg=Z5)WbKU-B&XIPE%)f7@|X(#ird7%El@Ntf#>$7M5#!S7t)1e=_3 zx`b}eEcp*Jot>Q1Bj!5#$N;mEFx|>0cqxz(gh(Q>G;5n&#t89g8Ar832UDqAbS&}o z#KDlvNesqzP2gPBd|-T*n-_%HGd9Y8ZjlN^=9# zq`0 z7^H)#(x_>4V(3kf3#KQ7$+i3F%}r85JX!cC zL&zqBFquy*4f+sORIrKwafFl4D2frPOc=wtQg_qJNyp7LUUKbV7*{fp7Ch!^`ZGiy zrHxo7aGuTXujLuW1>ey(SkL3Ml5B2dJd^+UKcjb1#ZlXXU38c`8N_9>pC~+ffpeVY zF^VZ=2~i|67Y}Y3BE!kjGTp){b?|dkUSb-v<$$D+AV>5xT?B~1uixnftXA?7-P}qT zMyGOsM*dA2sk)p5>Zm42t}B8}qMdcRNR7NkCFk8IWh^(?n{*|sbQkgDsAVl%v<|~L z_os5J{A3IDG3{ZlH_EL_pmFMmqd9Sx0cCt zl4YEIg;n~Y`$3k=P4-_@>KRHg)Z1OuvVw)WPS0x@pR=4Fh-V`Y&_c3oWr$qIOH}Fw zSxvr-;9=@@i{4KQt@1N{$zUvQTsoCqtmS#)$#C5-kI9dAr!Lb+WE}m;kq4+HQd~@u zEOya_$5zu!r);H@0KeeUGS}5i1N$IKgwsM1KbTI2=|OHLPm-mHJcj5FPT-hhgiD?@ zkWQAaXS?pwI^wW0f;P&7U-ODy=XO{uaqPvzL$Zq@WNIltu$p%`Lbur=w{y9SWQOE< zR>-UT)%jU3<(U0|V#?)1GIY1R&OAxA7kE#l%O zAayADB*`+8Bvl^6MGTolQ0r9ji#EyQScz8$v`yBKDI?@*I?3W9u`FU0b!^5GK{G>$ z#|B^IDYohd1hhhaCrF|;(LkqZl!>%5p58K$Sr~2QUE*k#^$cY)C4|zg(X>#il{Dcs zsSF^21gZ(jR6G)5U!hEom}Vx+P!g!ucHMyDGozU$$@(fF(Mx86PQfEyeguCzZ@I5wz-EHdGH| z%n-RouHhz5a8ir4Sx?GGM9V;F!Ah*GBUVpKf0-`%WNHB?CwMgnoAk3*@ zFJGFgxm1g}k4Qpzmp&9qJLe^hZv1*q+Q^lmIuwuosC#Lk(}odAoE)Tq5?V;7pKhg` z4h`oF#j=pIx=p?&pBUU^W93OQ7^Q{)K3&3LJ*4jw%0_jlVudDihO<&l206S)8qxA1 z38cz8+Gt}9y$HB}!*GS&NjO_|ncTw^9ZEWpR8dQl>#tnTBhG&*;h4I0Bg-X}R?;{{ zHzK#oB@C3cL^0m^M8D<>xlDS~&;F(-*~mx4kS==(p(l?M;35wZP@}J7$k1fA zuz|10Aky4V9=$2V;I}W+!geVngecukHG8>8AL%&O;1b=# z5q9tqU34&pAzY$|ILr>IA{EhOYPldqc<8BT=?00EEWGkK$z&0!wO9`7S*o>}3YugQ zed#CbWCZ;*Nh>IqB&zV(d$~xtxrcEKl{<+i(V4<`tdt!j5yk_g(UTLDQl|STh$@Pey*tRp!^gBEf^51GGHAmPlAEHW{A zh;n&{)3h-UA8k$uzp+ccr+^`{kYtkO7~w?9aI$3*6@(Efr${E18|juT8%+fP_jU3b zPjHJi5YQZo*eO}06J__an+8faNQ>S`9gSShS(@Ctd5b5Vmw1oYSxXWwo+XtQJ;EM# zNdbkDDKF4Ml2gXld}-cf5(TaoxSPA|WZq*B;}}Sdp2rOoP(=uq3v^071Mu)AWi-=+ zVmfRTM~KlAY-N|uql8Y0C4@_#Gr)i$^5`|YfSwfH$yeI`k;h`r{xa9-lC7$)v&`FSfKtE!&gIJExNCE*oyvkr= z*iQ=qSt>(tag;Q=wNN)x&k|1KA)Oq2@}Zn1$MrAy3x$$u?w94f!x2{NZzStdZxSEz zEN5h+T^sfk_n1Z9RrU9o`Xb{0NdK#D(~Cw_ zO5}5tGCFYN3?qpr3Ps7Gh>Of)4DmcnGeJ7Y#wV@vC>czkgf<<+QGEKG9;T6TbmPc# zWD-s@0Yp9^hX@_Sahh}zduiZZo+VxOOEjb1znLmrY_kdcjV{wB+bFZm`iR{s70d`( zW&X{z&Q{lb@_c)gO=hnyBcR1nFN>tu`Jeu-_ch-d93bmLMs=q$Fkxp%hdk!~r`f>U z!AyNj_v=NSNT*HIWTNd9`zo#SfGLwFJa3qrC=7qy^&Q25XM)o-(TUdCB$#Fsi%-Vz z2I+Pgk8_APLU8dP$&v`I#NwFGxq&R^{kce1JiJK{!sI;}CGiX+iBQ)y@{$bZ2Nuwi zWin8r8Vf^Y0uz7l$bTWj?S9Fs!D5E~06qTh>TEu@n+ZCl63ev;If{ zi4@We?4yV}xq(J);6nyVEdSDyKQEkGSRfhF%Ux@3&{H~CUzQ=7q_64IcC;%(e&uT> z;?}vkS(|;gdf#D-#03`Gn>yZi4)c?9Dcz<*4oW{-S)!xuQrG2j(yVMb=v*mlT}^?n zxFT+b_o#d&4Lqkiy9YT_iIWx7$~?JBF4cK5PGY&nl_P7-A`M}Ip0;0Tw>_hN#!4Os z<#TdLWhjaI4GnbaQvHT<7RnG}%~-A>mxt&=^&+oxh%x#tUWC)M$Qb#a-YnxREzH12 zgxb+gvkC6XgU z%onXQbeJT2evwLIB5(9e=Pm8a=N#|q8$3>$S>vved(6F3&%LgfxYliZQ`Ml|H@JcC&U+7)0rLIUxCB(nLxkDzKJ0+Zf<}m3Lc?OzS zNimoLp8n4VlxIG6BtA^!$}~F)3o4_L?ofa5TyTN?KB>xV(lLKas zyvG)am&KfQXPa-C@08mH{ge_jQonLdkZ74wvWk8H03ZNKL_t(5SMn62WvpC5u2$>K zRB)Vn+U2Y~$S4w+Pdjfgg>>!Gr`gUm)d3B#=$ zDWzFPFpdm{k%>>=V;QBm=mvS5sr29g=V+7fxR-qMn0b?E*Bh*(ulg7xJ()!c8!6VC zbb*ZwiI>*``SuH0b@5mKt+dE+&0v7PuRcZJt})$5oTK`(e#|!aujUhZMdE{B*mndO z$_Jby)7-5ce8?q{U%8$!ef-mHktVo4mndyFqs3?I+`CM;>8-iC$8ONKwU<`OcBz!S zKeEhyOdyjPe99r*oTf!*@ft-^&aDjM0B2~H`?!>zP==u7-Y8Q<{{d*ulpVJt2JSiFSc)~8s`3I2u)mqg1snc+HSW^#y! zd4dR?>TrDNYLH0#Gr;Dst!}XHjb50pQ1?DnVu5ga=1pdH}PPpFNb$uYi zx!MyjAB($tsZ7SpFHAG<$^chDe(s93kJH!ltjUqM&Wp~&oW)_kZpC4e>F0J#(5|(2 z+o$!cE7Q!u$Ne%3kwUVFW-&P=Q9(VHPC#^wzM=c*CEpP$W66~mJ*(67H)=UWBgdX6|#&=7(L(p77BF~Xf~{w-f} zLbLJ7Mr-)NlVi@A}csdEHpKx4~q5o#5p5bfG zQb!Xb=+-ybtyO%i8#p7s%S4bULh$Hv4sf0X#*x7`YH4L5f?^1wWD!S*e#rr?mLZ&% zC=v+ArB$@ymx&CLB%P~Y=wbPv+$;ldXxA=A>8tEzHUmjv9z#jwTP>oRLdhkTFn~Xl zN9BFFR{H9HIj#+SsWUmmG2#eiBt3|v5kC%N=|hbC#t2e$1aGpBmF%XPySS8ee&IL` z1PNlfWq#*%?Uu{PtEYb2L=vWOv5&*)StxJWDA1W;5mp1ggW&UAjX(vb;egbUg6wREXkxrWEB0xOhc<4g{A?&A) zE<6~NZY)Y3@r3aUWwdaB27-U8=MN;FP)a#P6CD7g6G;f?xIjCW2!tNQ5P}b{xMUnX zw3SelpghGTr0XLrqnu*g2sy+NLOCr2xsfPBxfFxpb~bWa4{(7_P7}Z(>Q7V%pp;Gm z^d^QdEvJnjyQ!!BPbm3Ss%hg&a*5>=j#I|<`o*VJ7KBFp&fzWEf{@=1DFigURfm&TiraO|o7llOa#(VUqEa zNrc|PUh3ryhLXs$xDlRYIz9N9YTETVf+(9w#>b=N<7E-MsOJ)@X=edhM3G4x9%^xL zm`WPqY|{q(T$E`jo2bLj%M{bBzj2;Uc9KLWFOf;4-ojRD0UsXODAUMf1LsMwdvqGV z@DE}LrHcW?5zjgC$UJ$G96iAgl#{FL^_&dgJbrzP->BkNN@-yYJ&9mD&G>QQMPwLr z=*he630n16%4nmTbK1c_qz|2} zAd)VzGJ|B@raw|G%2ZO!M7j|BG|dE9Mk38Jmn1@YS|*bspK2vhc0M0bfsYW(pX!W# ziNr%+B5*T=aJ-Vl^`v`dN*i=m z6vfEHMBrf_4pxRr3T~~(VrkU?LAq%{C`3>WYY>NI3?Wpa0C@0_f`WDgwjckcF{?bL=vjyc<@q-VB|iD!$mYMAO;u8ZrcAuW`i^mK2PZBG7NBZI5mXI2V~&k0(JQLlq_5_gGivB z3%K-YI_O|O217h?gtHD8F8Pco{Pr-1QQ1QVE>;mm1idkIaUMT@S%?oP!;R%?>alt? z)d-bD;FVa$5XQB%60|4ThL!tB#w9nCL4=00lSbWygUDDf32ngyGIC$w#Cw~4*Gmu9j;S^%&k_-&!9xR4d z1j{K5Zsrh&iz0#``Lxreb11WAqmB+dkI731-ej5=)xff z2gtx+_|hGXI+x?LkxvvJj!;V*KhO)G6c9<6rgDZZ zKHxNMw9tf=yCn-BbIHWW+l(byOIS;td_*6j`5Px`*WDbUMJ^+WaIT;S5nN3)AzDTk z4)vVF&shW)1M%S^2@gge*DCyEODxLI+Jt2WAw-f*0Lxmfq@6n?oJdqV=++su;qbm* zpo=STV~5 z6xjsnmVb~*C?#~GoYCX7$CjR(P{)Vl;$smdw8?oUlEiZ)5+Qxvd*Vop)YSz>uji#cTX(ZUItO+QqR zb1fI;E15!~N41O^h$E36~Hhg?RiZsb(W~?ytfH1D zImA2~XxH1RBa1b9JNxw|PHH*IY6<6hDz$-EDB~Cth#`ts_*f6>rL?kz@tmYquh*3v z<3~a`LzY}lFZ$_Mtkfcu4rbDdhaXtVNtsCtv-K~0qPs~YOQJN5(|S&iu$wJ7WD$^L z3W#7X>vgrh#aC<~mSlYNVHYQLAt`if38fSCepN0DF0Y!SvKbqKUH4vw*i`4}W2}oMsQ@&SAYrm)I1( z;8&+V-?7{d<84L))iq_?NEd0xAJn%q%^Hk2+TzQ@POq=s*|08n)@H_Fn!& zg!w<-lq*CjWEiU{;eu(AArxwW9t^O%bORM~h{YV@E;4AblXV4$#F6`$%W^si;{mQ> zqI^L=f}}|jUHVsTCsOy3OBw^1&v+sv2_%*zB3Mlm?e=yi;*$YfDHFAbAYt}B_Ub;V zV7go?!j&>#lPS>?`XSwP>U>t|P6?xz%r!qSMe_AJ>CHgW2**;WKagr$5W4a4D_iaN zx>2`CjN~yy=V&o*j-nW+r44rD( zLx(uTkYR>%8TqnC{>Njwlc%w&6th{AIYY6&K?GiXhTr*>B+`kJzcQa}eVTB>Bw7|S zo$pb}7el<3*;0a(GMh%KddXvu_Erbc73}Are2JGQH;^i@}CSQg3*=je?pP=?5fhax3CU$Tmy*SSd8feilMl#m*2)&51FH=vuD*=ck zlDlNOYYvS#&WBWJEmu-ZB~$6aMSf)<;pTu$Ay4<|Pb5=BGCk#eo{}eMp@AwM!$Ap? zY*P6YFRN@j9UM2i0NfIHx}_mR#pEPAVPF+X(1qv{B(YNf(aZ$_1L`eWFQX4TouF4YP@n zjl^PgBkgp_R|IJT>S?j9G-GrrUfPMrLk9^2XmpK`$@H^NXaz@2J4%A}(?qLe$xK<~ zIz>Mg+C1*mInEbaN}Kp4k4#yELvnB@enLz-+jWb%flPd+O1J51*DRSKJ()l*(}VqK zV5ELPj@)8a&_ShbW}AL*-j>la)47VC#7PLTbjW8k(_-e)#W`A-%t(5YE4R9~QNY{$ z&Q9Lc3q%sZKdGQv?;x8jI}jgXt_(tnky2u5w;Soep@v2(^){l&u$D>=%0wdQa9u|x ziQGq=Ote+F$u*aeM84h2VSY2O(UUQfO*=K})?K`4Z{q|fO`-IrfdA=IxmNP&&E2Gv=sc#s zvDS=~xy%(y0pnyLjhr{5y3DH(wqe^;E!(jPR z4BfbFD|@tDt|vzd_=FY-w|}RNVLXVNi~JQ2E_M(q3A&9=0`d~s^pzc$7$y@WpDZHuFx`41iNtaVhgi=be#ggZ?&XXm6G@o3 zxyUHnii<|Qgo~6ggBn^*Uzx*9E!1tCpG4} z9)6D55L$_IuH|2>^zP?ZUNglqfK2lN zKOzg|A-hF8bq$rYl1v(1)H{z*$$qnt>zH6}XCYT2JTr(Ywr#BoS}^Dvz+3b=pjtbB9h;kBP+1NirmZT%D)2S}L14 ziO;O#Dux9AMV@xc?UG2jEY%})&{p=$SkKRZz+w@h6sF5=)mU;3f zUfm;exj-^SoTFSP&`Chn6RD*v!b^wlrA3QbM>YYoSN_di&Plz2RvAPT8QP?!dRpJ4 zfoc(M=L&J-B37f=j!F(qdQuwbFR}U=q3TF9d33Rj)6!F4!9#?;!wD^>j41qOliW>? z>ve7;U42Aw)<&>LKc$>r(w`$lk&i==CQ0WAT{4w8;`Dn&Vz`5LZIzE0!64a)&{OUq zoQvE}ANpzn4V21UE@7NL%4+?dEMjGxyvWruntHmqs3TdcJ7gq=cGi$YyuQORJ*L?- z$n&mx{vwarTj{0S%uBCg&VYyFoDI-f_$YvrxU~vc6u~>hx1)Ss^_w8Ix zsu;59W*ym*r!(-A!i#@=7i2IEl1C1`>=O3s8S@P(l7f#=kbE*FoptmkRK{=$m%d0e z<+7S+T=p5Zv)H`AECx8YvXn!51);jz^%4W+dL2N!6xyB~(d`_WJ|O|C<#f_y3Yb6-d6`ft)K+TsoGhWg#JLB`tvKW`ktueQjFW*JAd6^OOizZp zui<(wmA9orjH7JeefxsW)4$tBj?m`rg_jQPkD;4X87yP@8$r^|E;2~hWOhm}R}hJt zIGM?KQ%jyaO0|yGjn2btp3FzNw7smb20>35454dW4$RQ#z@*+J@nMp6k=_!8X7y}3+S@(04{ro~IaeU7Oj>`tT z)G?7Pvdu`+iIn?jq*hKbl>zo1ex%sE#{_ch5e#Fwi8h)^(PC;fL*hAQx)?{CY$l%3 zI)}3y*Erg#XEIe(%hys!Pd-*ZULB^}Sj!ER(=LCdH+im~Wd!%|AU;}cj&5YXEF_jL zxkxlIvY!5gQi~EMErc+RCy5}azfn#H(}*EjS{X^2ox>51$ubHVBtyx zFCXF|oh&km(ja@N<#Eb5h7d=xb32EqH6PH24A#<@T;0z`TI32+Y0*2Vq0Dx&QH$j} zY9*WJNg&*A#6?is^=Wb*^PHR(ePxqsf-jGF&bvo+zwNCK|Vl zkOJ~;seY%+^f(zZii?EnDf0x;(o4S=4`H^08p`d%BvE5Nmki=$qJB>~Z!n%*{g?_4 zk%dDhHxfZRH;_x1uBDj<{e=TsW^QMJOwk}gLgZnlGD>cwlWyl-*0Rero$Htq+{J_X zFV|WgmKl10R+?lH9wPXfc4~B~{=`luau7or9;!@?^kKSA(d9JIg9Xgu5xQxXbRr3N z2D5|jjA1^boD=-QHvAY8-LLa7*E_GXlJDgKa_K4e6GoW*oUhp-A*6FypTXkhHk6Jv_oR zJxm8-JVIYwdWs{Q*Q?mTZu4&zGuP~4JbC6cmyzkb&pLMUC~2fg2b1y0Y|fCZ*OLM^ zj%p6Dnez;#H}Uk8r3|Etr6f~h_ppr<<{}drX>aC#?4gier0RFLXq8m@)5CR}ye2nE z$(5(SZdoY}azHaYRc1ENyCTfDv@(jD^gn@dI*B_vXF6{Cj6BE7{N^5O>iN4|B`-?0 zgcE|0M+9CC)m5Bk5^;p_CZ)9KCR(*iCXygwI*N^2hvolSI?wPdimn0QXZC5ylO9q? zAPJDrd+#WySWv7ef&~%ltD*?DPhWd)SYNv+cA5$*N|W9@gqi{=r1#`$yXX5s_Sat5 z{+PXHXU@zud!PG+ar8S%X=N6BsAUAHc=dL+Q_WGD2op;*7T@Yo0$k0vRB@NC#Bttn zmf_fSjxsxPt5c)5hWFTc`gkNqUo?|j&W1-wOUv9ys{G#CU+0@K8YSs6!RjLoEU-?> zck)N#Xm^PerGD>CB+380dk;n;a-Y5%`LEN9DfR_=r;d|Pq*|k`OU+MuiK|#v@+_xl z(LSLcbfj8M$0K*^n|dF^^_aEIJV1>Jv7Wwcqm>B%;Q$S~o(4j!qn-#KQA(TMPbtmJ zAQ>+|Q$v_zv|;NU@@e1!3Tf4C+Jenk4pOflagH__MKo@wlz*vWDo1EE^XW{c4Ax8r z*~6T-_`p8xg!QAy3VS-A*jG7E;ElvMZf=a^J1r*Ia4LMrtPIZAUNX%2NgkDL-Z|DB zdD04+o20=1nzceQQ{%n25RU)ZJ)ccxmQ?dcswmpof}!+7CMqH-B&cp_$S}w(^balp-4K3Z0`{q^k^;WV4*PQ9+{j20oYQQiS_Y7STOQ(C z()C_;(_sG5TWN|kJF9e4u!p^ejG#C27EjneX+KUy9QzghKl^z*TmA|6ac(iU1s>5# zvypdXw|T<#wn-A7YlO*^(Vp+E?b1CF_j__8?PlL$a((+OhYy?{nywc*8?}cHwEXgc z4ss2$F3a{p}S@23b(dia^(>|tW*eazo>2fMqL1&VP$P`lWaa6{VB9lnO z$LI7Ro`0w(C@bkrvXnB3bUtMe$#R$E;MYI2jDYNtiKKHoU5Sw!=|mJy(1Unc%m5N) zi;R_YngQi8dXYdEB1AjKoV~gs)Mz_&4V|)&>-WLC>@EBj+!wh~L!le&8j?dVMNZ;s z-W<71jb$7TnydBD<9IGcespna`5Al zcbPy2Cutx;PZDwS4<)qn36sf2aB%2DGG2;lLuHHHKvxQAB}4^{IQoL_qEh}Rm(f}N z=4!f}hoy+ci*O$UNa209`gN z=W1&8fwsq(Q}beEzr16s+-XXp*1Audp6*MmpUf)vVsnMeaW68L$jGQN*9bAm{oL0} zf`7Jasm`+JIfwN@^R-0j!Km9^gLIhtQpOG5CPvR5CJS*&Pi%H zPB~4u@!=tdcwFt}ogG|QWD}2@FE~IA6X--dyE#rsi?xXp_A&bt?u=wQlXXn-W&IF4dRJL0QDTvI$#DJrVPviu-*8~k2W95C2!-QqHWZ>s^29vJW>rWhGCuOwAGcu9R%%%@1jG+%n3?h{n5{Sddb@V5h?VO@X zw^K-i%wjB=#1Mt0|K(4LWf3#zNg96KTF5w-*jG4RbzbC<-G!0i{`M9f6S^fbfRCE* z3qJ1@R`+b%sJ_|};R?AtFv0mtd$q2M)Ht;=US`XX*oS?uxqgVwb=zj4=Nszf-g&L}cDMkOswV=;$V#Y_gshulhUP3B?N@dh{0QaDyf^ZVkSv6KanJZsobAC+xmd1_~lubZcb4 zo>JjH>CJtzy)=3!R=aOn%ocR*9@*y!=mYCtfG(2OMO!j39*;!Z=(^SK@g~w@^j_ zwFEgzInCmi_heH0eEgVe>B)FLXP+L^n{}m(mKAcXzRo{dB#W3Ky~!pPw?^sz=_W~# zg)*7f*i5l5WV4pa6I>vfxUdi`+*tS#j4o%Ro^!T3kFwo==+BVz!oFDaszNEeM4Gt0^Pk!dRsPEkg<{{4o)>iBCD8Hw{ zTHxL4`r8=mRr7(I@)np3u8Mxsyv!+6Estm)*W2={?s0cAb-F{w$$MJrnkmb)l&|Gt zT|okF!qm}3Sl-}D$zwak)ay%Z(_)fv;o`iVcefT$!*m%&ri>$-1pR`Yl*{v6DqU$r zQ99torBn3_JxILxaWR=(5=kZ&5C3wSI-+r5kwQFf8Av*@`U^WLrx^hbX)%pBxDb|b zh$`F|V81-Z2=3JH$)|!kLR?NS5?Re@8mXX(0NJDy%Xe};-Dx9)t$uxk^^#2oqI4Qx zafF)~NUA);6moSq@32cg=34UfUDi<4zK%S>N>1xhYG{+OWRb`uy5iTFx{Tvg(Ao~+ zqGS1#{W6zPWU8B|Sg#l9B0a`XGKrNBWQugrD|C?_Wd^@;ioG(2{@kU@Il-L_Bb_Uy zCrOI_mu-B*3F_#C4;O1Gq?T;r@$ncNDB&Mw(u)^Z#~GcXKXI}hiT;zb)MEosMLl7C zmEDwy7sco%&eB3EiMVN?g-E;g`8c(NXeH3@m=*nmy;RG^bR||dQ9?6K1h8@8!mvQs zX)!%XkZ6i&B-Gww5iJ@ZpHkXLAqF?GL}BS0?4*pd)Dk9>1l+vCZYrsynJ_8%aPtd= z)afqDXqB7jO_J{79IYInfdKJ%uy{b%a^^h5rthKCJsW$7dX-o@sO=9vcT(LnW7K8S%0TcrqKz%vzIS9F8N$SCnuZx*eshELz=GPYdx+-x|||8!dN=$ z6n0bXyv(~Ck@<8bMxP{~CT-T=IKw=S(!h135zPWl(dd-1f>IeoB5r37i#bCPt=POr z87;a{O9^Q;YboO?PSK)waGFL9uvX8B%_K?HL^f(Ix9DLS^lK_jYiMX@XdwF4j`5J7~eyyZMPT%%&qgJ<4jTsKkY>11TnAjb}N-!s~QDUr8Gm z(t%z$Ah(f>Pls`mhDeHb*Y$it3+B9sRflqdW-L6obtrqNqm>X5z9fJxLB^A&rL3h| zo7qDh2}I%3WmMA2cIpW8F4crsNfs6#6F~42#NlTeh~UD5rRN=%(L``?NF<6Tt)Yc@ zF&K8^!9y8>hvE28lqOmzM=&H4L1h?VYZZQ?P%IqjKr7+)tB8UUjQw1u$TEHTJ=OoR;F7~M(} zwsh18Atp;a!qIl%x|uK*L2P`);BNOWXJRm>b1Nk9o<Jr51vJV^`Vh|o(sAnv4$vlx$;M4@ zTtEmLqthwDmdUuV8IK2B-=>ZT`P32S6b>S@$tG4$(tlZ1&&3d7 zJx$m;i2byXPZ-00>3|`LC|tbE83OF3ks#4{FdQd{@Eo1-@*54n2I>f&ABTD+M`)E_ z=}(+~Ocf!{5g^0|loG^`2RBvNSgfUzW@eC0JYP^ts2%E!!$K(}fa)fy3CKNkC6-be z2MItU%)1PEs;y5+jMjr7r zQBP2_*h_;zNkxdkLQa}s&L=e4*<21<$29v@gBqHizD^=QyLo|t> z5yZ96FCWqPm`4o}6mUrzV@c2$c2L7_)Znm^EX4F+BuUN#ETx199-_IJ4tO|8GdAZ4 z5Y!tvNq{sInBrPzvqhV*c}^1A zqty2 zB*YG_qm5HE64tdek!GCs^b!S(9;K16WZ@8E7eh&6D~;I9AQ_K5Kn5OJM0etJF~u|!1QbIQ zZdpkZ%5!ukn(pKi;9ff5l0|gKuZyX{mcQwWo5j=+A(03Xo*|bQy@pa8GnEU7*Wu*T z%iZBP0~Lo=T{j_qU4c)CGT;o1LJL!3Tzbe@>n;!Blqe+uROdv&W zXD&myMYftvq)wb12GK1MUdwR zQ>IHe#%akUj!GFJUowH-G*PVRFC3O7ayNZ6ABzAd^bkknS?Nnhw$p`(*3dw$bfJz) zouYs1K^9?Cq6g?ef_y7eq?2~n&vXm@Wf&Q3&rH~5+B+0RjD9=4t~Q{^eS zD$=Nz>s0$0{${1KilY>@zN<#l!hD`gp_NtgAyN1^&TzUpUlE|d z)RIUKZlxEA&Oy>RB)8Iqt0Yr$3Fwm~5|+)3Bv=1n2bCNqlXxl^gNu6!6L9Y47k0_D z+`$aFiHl^A{z{eR>kSN+Tq)wDZgMI}mK=SVSgjL-5aJDbOO8_}J?Nz`P(}r3P%V%z zwV4Jg7oZem8ZF#>mpBa zko8tCdg0?!ib)j@-7)+@PqK6x4u|y^QDpKzDzW5I4Apv<+{ZOe5Eo)>S~)`=_j48h z<9#+!N)%`GLMGsnD!MXKm*FK@&#-|d`02%9G8j$={fU(vltenxT^ADKkgS$RxSf$C zViCoKGFDf!M7Pn03?lr6Lj``K$aN0T44hyn9b_9xR8U6+9`^8rTu(8-aZKkEPn4da zLeDy5=q~Yc1q12DY^piTVJfvvzsC>GFYM%mbY-SIYQ85#ikU8VlNVX8fAESI@Kftd&;q=?BC{AOgXzgIt>yqrbtxsJ z%Lk+p(Oq<9ID_#JabBmK-SQv0VcQ!?Vx*)Iq0M=aIx1K|2Rx)RlsM-?4seVdDhSG# z%;Z8RjU$vW9Y0>Zj)CNuX9#fAd566e1HI{}TS#Jn#K>rJ8AA&jm_mqb=V1&HYZn8! zQHLY!=K=bXV>}ocYrjCPek2F+&|5yCk#J-vYuUmcE+Rpzh$BfpAd|`R9w*r%{Yj^l zS@b5Ev(yu%AK?(iYh=-z5tOnYn`D{DCyb&+-oizS^p=kFkuNpCPTMW9gss1@xL9Hc zqjnfKyQrcYsq`U}99=~*m2y4Z80Z|JiIe6i2FEHQfh_wKiV5>9*O0{rD5X4$i;;|> zj&f%XC;8i~;trlQAJd)T`Z}lC?7YY>4seDkj4?+z#o@^7xQLh&1nABpYS|#yaUny= zrG|3-f}^;lj1kB#_dP;%()c=Q}a z9F(ClL0%`8GzvJPf6xsOzuoegYbm-8GEf>sS3@oO%PdPp9oi*zx~OyV(TG8O!x4bc$|-@rqG$rR+gJD7|s+Oh?iFRmMrp2N5(MJZsjvR)v;s{FOT9S z#d@8-Tw;&n5dX5BTs)K!&!x_K^7&TorzZnl3AjkNr&3P2{U)i{@;-?qNt1LSokpy7 z(`Xx4N<1RhlSZcI=vFGFLb}tDIC?NZ-=LIz%%u#m@QSJOi z169mq2tBM<=q%$S&+~&W*DZRQrLshF86rdQlcQggO2E8C4;kZZXQM9G$H<_IwUP03 zh+M!YtdR>C%q01l8jARfQ8I;J$s&hFCULP0U^6Rq1JxulkqG4)q*4z^0$n6sf1!+c zc^Q`;Cz&V`^jpqRAfMBhY#ybfOmK?mL7HC7yZX9yf+=z%Q%J_>pX5`_mBf>*Lpe)` z3KHmU#xsKPwuh5^DxXnLGY@hB{q6pIs!Oeo^pyT|C4&^5LkX=sfSVc_fDpqA^x!JG z5W^YiippFn`IV48bQa(#l+`Kesbb<0KPDzt+QSWf>99 z@dnX!mY&j`T-~V+puO2kzIl^@jKfVU%5V5_bRSimrkpgg@DX4SHW4O<8<@|{t^vHt ztumKr#&ADwM0!as{q;*d%yD@KFEv~(*^F?e>Rx`9Bhr;TdT1Mo8ljMVa!PtKTK+>C z=|pQjr^u2xe7Zv$iO5O0L?$`g^$-1B$5YN}>zrK36?z#J)bpY?P@rC#2$4iAF*=bT zn0qCQSRN-r4ns7AN4}OWGEEoiE`5#yIuNUOP|QIYCKoeNSLr`=ku2g_MXaQfsR3=o zB?l!|#&8cgbdh{|Q5E?@AJL2D6bW1_Kaz~!%$3n{rSrHR({f3Z3_Q+ZUCFOZ!N*Xu zkU=uUd7mQvowu-vF~yQgl4fZgQCiP2O5`275sRB9;^<2P1=go>g-o>n(zUt-n+QYX zafD9VjGJaNOtNLT3YAog4-3CUkxiWb2=sRD(@j*FXz53~Ggl9=hx=*PO){Ds$<$m# zgVsxOn_SFQ`aWB259{?Wt|o)drn6ijx9V)&&tW}BneLMuy2?PR32CjqNinr%2LolI z{zQRpsm+NVuhG?n*sMcbBpra&7E`s3%eHhJpYDiW;b)3+p?A8r( z2Oi0=L>}WaJETAJA3i2Ph-Dno?apa-b4rV8qrlq99OiI{Cg~y@=t#Vs!5g|?2GfIl zvyqANj($TGTjU5Ha-5&pq03AO7s*iVN*!^sfpp^aT3R@#H*iAtYflQOF-I997ikY% zlt>08+M-p2#ATLqF*7J-rGDx3q=Zu>(Ss~~gN-zqkqncOx|<`M<1eE0n7NvZWeQ6< zi*YXCp#C6}$d%D-p%lY|bilBX2CZ?%vxPmTjSPC4+qgqsw^LcmdorCEIuT1XC!LR3 zr-#e}dXcLO@JfPgA)XkS#u$dE;UIO~N)ZQ1BuEog1n_bPV;ODDWe8)O6TGF*a}k%y zNT-^2b+P0!L9Su}jg(W0MT%3zS$&471Z1u}N;6sdA*$QuH7rS%??@m~3rVI)Mo~wC zIm|%%*-h+V8^iRJR>(ZLQ)cL3{$>Yfv{sK27LR1;rCLEyQV43H9>hf|h1Ai?l>~5f zF(E2xpp1z1yiAj6`mNSbt1CF5J7^>%xw@1(Jt}T;WSE&HlepTsLEqK|Y^R@0;Ag4` z=yx=04V`dvO75T>+j*K+g8Y|Ss^kW`Gl+CVdg(a+)h~@Of{DCJ6c*o-ggEo504?PJ zbus`yZQ7F-YR&H?(u-y~;-P_al(8Nnd>Y9~&zPoL2P zgycCwxb-z!DdrF!U=7U-HTRHCtp0}5HrRNLVh8ZPJB%+-OVT&OR7%SHSExPC?vzVj-xE&7`^C59vdk!Q|UvN zlfiz9or_q@W+@?$I4&oMk-LbcvnEmv^hT&Lzi=s6a377}WU-p>w16^NnT$i7Tt+Ls zsUibgE+Yx!1ldfXq>_${2sOl#OfxAmjV}0{blt#4^R8UXtxiyv^AA(-f^){BjaeKmz-uiN%ATlyiQNn zvo1WCMY`5|37^Q1`ZoET)i=mzmG(#RaV<48%L-hi*|)NtEv67Z10|0hS` zGdM+&GmAYOlx%I(h-{S!GE%%GGr)<~zxb6E*n}llx{&I;qB}Wmew7iV$r5rH=rrmw z{+72%A)6e@C0AY`iZo}M{=q-yL+Qyd`x;%tDY=a-+|nXhWN4MH;h1@x@eI)~$>$^^ zDWpsuV?3js-TbO6%#U)X%yn+n@7N}Z*c9qSJVazPVJ7LYF^3Bo$Qh1lC2MKW zN?fS9nn{c^U8ECMq*mWznOV(6^rM_M(#+FzC5r%UG)8vv0pG9}!B`)0KTorpGR`m( zs9-p?G&$obpkDqYmo8FA5~;G3R_dLD9N}M8icxbvIgHceoTgaH8B8+AaFeFLbDU#V zEq8H;Y>>_*Id|&{wopJc9&KS48^nX+qdSA>q5UuzulK*tky}CQEk#0NUna) zpVXTzJi}CTHhJ6qhN=_-N@(nD5@Db&B+ADEd`nuz3am*%lnzYDFg=jpCccfC<3ng7bIlINOd zo@6K$L{ZN}^dh1CCv-PmM+qNNOcTRNz^l)3NE@j_vB@GD7x!?GdVQKh)Dn*iiytYc zmBZ8#*6%2xmF?6J;!iz6n_Rm7z7W42cP}s(==0Vllcj@n3*-2+bztOk=Z4k+&ImmsA_<&viQLCX zj&UO$)#gvmNgh#HG~j^#LIm^SwS;vP`P8wQdLsIfo+CgQ z8~B`a1oRwRs3H}`P(}l4{ep*~`k8*hMknmV@o%Krew_|>Pp7{=X6*vK9l!FyhmBAF7n!2(YGtDp$<xL8RYA<{6Y4CgXZoGba1BGM2H14+Omxd;x2 z=s^risVC%I$1jwb|KoZ($xL!dls~nB%y6RJjXwhuBNyuo`x>W-?C?`gD&g=a_Om)i z`|0PB+BP=Q!vw?s($_3C`^|6W7i*H~B3bT%=5JZxSz! z9UbwD%4MW+jsQXz{8;h`orvZu`jaTdOd_2q6k`_3eEP`}#*wT`D5q5}B@I7M(wjJW zh3>@Bk!W1ZB}ZcARp~_n%NR$B3?>DiR&tWCo$NfP3&S_tXhJZ{{*c4LdG={mg?y3S z`eX2MJBe$9*M!~rPUD8~FXs2a5)N7)S(7ZE%<|mnddgI}zLo|lb1$t&JLPX;x#;>bB>lS=^sR3Bp#&m0y5aHm9!EfKt%peM$(ZWoKK;^ z=u^6l3OOLRkVgVOEIGhzdg(qMXRFve$N&=Y<0h48-1reJeTa`ZX4g3se;i>uu(7d69W` ze<#*?LgHmDUz$DUPi~V~zL$Q|Q{r*!H2qVHm`-o$KrB9#LsV&)E9oIgjAoG@CK)d- zvhd@gFR4WHF#m8?cTh%?Or$e0`UizH$>nq*mR_U~rL*{*B6f0?1}2b4l03mk()1X0 z1o?u$3F*tuPyAy0oF8;jIK$q-O~HR7v-G84$H@P5PQz8fdxXh3Cv>$Y5>UT; zxY?x<@5fe0EwfVOX&vF*s5|vpd0&G1wyTG^Lr%$RxtC73aDZWC5i2w3PZEACT(l7& ztgARljSL`_SUpP+TV~OZB>jdxR7xU#Tnr(CC?}YuXz1 zimLTNzj~W8Babk{%(70)hNuL0u5~QxBiBXdgzrB0L*@$4Tb6A~+;QekGc)QfYdbf` z9e2H;54sLvGs^X>$#T|t|F$M-s%N5klfLYhyPT!WqCf{*BTTtWmOTDp0;%}1Pz*vf zZ3LJt1IeIJt7(yMk1B1%}Hu$mFWy7 zonE98#qV+#&d6U_001BWNkl!QEpuJtk2FfGz)emi#@k)JuxVv_4o)Est=@gp9G-i7eU46}j*grl0 zvv&FBxYt;}dJ3!_W{aoTb)Q-1>StqF`>y9r7oL*gvQ5Uz3`UZnZ?S zAir`<4ls}5`UyKJCx=8lGJuZ6>t@c-NF{Xys3PLk+O}`Q!*zT^c0l=GbxEK>8(Nwo zKj@+GCpuKCBcJOg*6CpK`60T4=O@dFUg()*J>t9BeZ3j#skgqdCR&+hu{64W77rt1 zrdfS;opo4#)^fk?O4e%6RoS$OwkgiFo~iLs}t&=_oO}hqKx!KHL~?W{{*~69yfq&r;*`)YW=6;xY@ zmOSFMhrZ4ZiNlMFZ{=2cb5PIHbpE)L{&XgWb5zsH3Oz*~J&41{Lo%5z4AM5k0W~ykzZcje>oSl@@K!6Z_1kqf5o84S5y-1Yl3?&1D3rmCg zBy05(woxjdaXEQ>%pS^koD0b2I5o6tU*2Ii(fG0C2d<{4vyI#JPnPLXs<}q;i05Km z%u&9T>*!7=eV={g%RLO#b$Sf0QWYw1J`r)ecj5C>(sOeBMux{-4I zk|LToLn{&Dh(cIMK6PxTh5!XjCWo%9rbw?~E$76;?c_0;bo{L594)$#m<3e;E`83cAKOSw>wN%iN?NmGYtfoZUSg+^!f>HwH;KHR{bsIJEDtScf zME23dzf=>_y{x9(KCF+CFPD*un+lq6od56xMI5IUWd$wRI*U^@>ys4GEHBZGI7jtU zPCA7=#u530VI;|QOeITvGML!#e6@ACzNUXsW!)reWwd_AZ=BO=c4!MFG}2}#>s(Ij zwh+Rm6&Dt@xbV=40Bz#OgIk-hi4Y}vE2!lnS<8sva2yAV46UOHzeHh4Km54$00C6` zB1EXd0X?N*9O*9cM9~)qhcigKyWJrR#nDZ8@X1X$1n|&CfKt5eD2YWpjRZM>2M@`3 zaC0?&Y|4lrD6NEvA__wg0frKdP)8ez8w=AOt1@uo-~%i=VQ~1J5Eg@Qp%mf9OE&~% zEYa8;L5Y$(@X<^<5gf|!5lsee(BBB*Ztu5RLOAE`!g4o$;1~gfnIr>~iN{SDVH_55 z4x8nqVe=r(co<7GLJIMC%85YD6O!-z&{Krj?gOGwty z1CK7JxgB5j(-k-N`GZlWaD+BSl7L5^CkwZ(p%q~XHG~*V9Bww#is};-(I!umi=UhE zq4E=Xc(gAkaCnX)S|m(Ayt);zn9m7<9HNCVTj>F`ViB#G9H31`6NjOYFsi3eT(XP| zM7OY!fYg#jm@Twnb1}*InAwhHpCzdO5WwFZ zdKvqulgBSX5o8hRSj^!xVf~OgB248VwQ`hE zr08Fi(=1a+#zzfaJUWvj)RRjbUhcvVav`xq>06Z2%*7m~>3oU>@hFB-Wa426vAEep z4Pkwk0-9w$xg_Y*{69};{byy>zU|{$_uhLtnC_mT2Zru$MMMnj?s!m9RO~|R0uiuw^4TcvwdnZ90N- zY$>G=k({BCPCZEnKJwW|BfrvvaPu+OkgWGoN+TUhhNj!M>DyEBKYaVk!S`H zftyIeSV{$Lyh|zp`X#?o#VT5`C5$n|=s31g&IvkDMiE0W*V6^Jy4guBIfPs^n)|8J z7CPhu$tFY(;K!27h`{sjq}6BiBu&If1OXT4QcpnHkB!m@xHznpwCQWq;FT4UMbQ7d z1$u-A9+hN**^UBZ3B!d8FFsBqxL8RG$_=>jQ>?9ccWO0$Ty&ze;KjM93vq-JOeU_2VKq35;?M^#4wIz|Zhp}QI;Bi{5=t}?gz3A~ z&>;h{=_HY8LiBIiP|2f_X4cb{P#H-yK@{M|rj1BKm`DJ^7%co8r3ssV0K=6;;gRcz z#l;LFaWfGQ7PWZkkb9X$ItD)uMFd^s$G6F7BJpS#hiGOVF?ht1d_wfFZljJ^4A2)B zN<5(i@d+1brxyu?laGB-ACaeJwxqI)8tu^4`VUQ9i3eK}WCSsK3m52=CyB&t9s{D_lp0 z`B;`QK%y8x2$xWd?_Y&77EjStmdjjvP>f0+yU8MuPua*` zuHZ^CNWeqAOr?Mr{eu%!(nJ6q3?x-6Wf46jj(PZK)Ki4u@HpG`7>_ZQ7}nEC4gZlW z3{UGOs@Y9FRr)N|)DT1`)l`y3FdOKC!$CGt$U|firqA;@OBqZODu3_+H|k8*@{iWB zME^@R-3em~4q-gaX-Y_9I4OKjGquiNx{h6xOCBw()?JkGrc5GHLcMYc84{-nY}8$BqlO0O1mE#F1=>V}DyKQ7*AYaGKE&S~;#PjvP0lLH zsbdgToF|VF#Aq;H&XGnlC!Bti(Zq3mOF!a0x=V($l*77T=1_pk|6g9?179&8=yUdq zdLIwA@7D+P4m*c5u2&(5Z2J%qoRU7Y;g=Fd(c5fe0zQ38EeA(U~j%VVZfCZbXrShZy~yNNQywcX26CQ^FR>B!WCWMj0n*XBYue zB7GR_git{%EA>2ebjTeH&=>R{;|GD&}93!P41_VAC)p$~mI!xb{d`Gh7t zCC}1TQlu-fggZA-N3kp?RO|I2Y#N-tC`xzfCWHLvbg3?}dNY}H-lHA3Uv862C6)0E z-~^2{IZt6I#?MFkUuzFf%45zj0Omj$zdWQk6?p07W+srwAujNvzJN`4zM_*-^CAhL zeHh9ReV=lg%|MwS&~#H;5(A z-pU1z(LlI%NIhxPa~*@E2XE3uxO!=zK_hUq$|ymIyeqfKoBn%rId90H(w82ZstrWw z^%73C7VCa?o1f$}p4H#j%yzwip;T|+nC_M5xJs_nwVcLrUZ5v7kJ3SzJVys9`YRS$ za*jBP>`~a1=};nwFnj1pe}>bE>KcZUAnPb2z@AD5eg@IRezA!q)_D;jK=Y~RjO-(t zOK@oAjEuHIJT5 z(P8xFq-5hIQmcq1+WMJP86_Dw>eVa;OSV0npLLb<78Mk^9-exsezS^0)s6Ez_N5 zswB!K)<2A8lpdm-?Yf@<43XaKqs+{u8xi*BxN)g?uXwSj3u-fHwPUnkm#PnZgJ?%__b$e&XojoFS2T#u1KR zN+pk*%{y90mH%7n*=MdJp5CgoazwtxB2s2aDs8e2AD#C7gc8jIfSN4giIO>-CQwe0 zL=1I|lc}5_ftQW{6oL^|B-u{Q}9Jlr|lVQ$4Hn7KMv5qy?JzU29 zvPQ-+n67HmV1AP@GVH5#H*0vDOd`mZD7ss35Jzw4SNt4tj#5sGa|1Rd)(m#DwtXij*{Q$d5G8YI;kMxNwK z3c*BZIcM~YLNnXsQ-;ZHPAv!Yuo+B$$#M#))oLq=Au^i96yoUf_$k)K*fg+}IHFal zquuPHCnL3mGwddtM2r*3Px_^`mi}^!^DJ;dn#ki)qB+lAULb|RdMg&4+(QS48A};e zETWSznMN-8x)p<(VHg}eN&vZfgevxlVJMgD3lwo!MiGyj^|a9D%%zwTJhamyT^Pt1 zZl;h8?8GA98Yt7aL+`@jyz{=EWTUi5EV+E3E#%9il1sAFs#|zZPht^I2!fxVX~(7( zFBkZoXoB?(T8WWIDW*_fA)XiHMT8}IWFm`nxcW5H@g3L-hn(%qKF1X*_`;jNkC%aVF?q zewH7l2U+q935?=lgwsxx{=<3ckWBhGzw0`d%Q2#eX1nB&A?t|8LlP16vL0ZPjB?7^ zqCe_mRFlCgdYpqS#UfpH$|%X;ccO{1N9oI&W7W%@QtkX#m+3;TAcV70FWnhozG0Hw z#R&Z5+Ry3_dYAc1#uK3LP)fd@)Z>(z8zhq?=WZ?HFuNs&7#`3L!q_RnM9ACP$|?He zC0JMECPJU4g3a=r43%qnUC(NXJSO3^ODa=kp7zu4b*T)L(b9vdBoJb6(sy*1$tM-% zb19Gk`WF{;168zZ^K(6(Uc|Robk7=}r#O zfsc74NgsI{hc-UM(I$Hy+bMDllqcjKHgSTJEW@TwPpLx&4^v8wv=C1K!MJenOCWCk z(l%`8X_o2l<|)R=5Ph3qg4sl&9+Wb=${0nf$bCFwKcNeGM$4$zBI|J;mf8G5HA(7lf--#r zIK>$(EuxlUDkYN1a=TV?l+(oEAy8)EA%SZ+#vbP_I%$*dNFFof|AhH!nH z)%rWrh#}adFioz~-#DqeWhs`#>05Y6F$c*d$w_20=kQ;sjCyA0oAdajihJN}N zM|Go&XOfIy2Q36sfK4o&l(Abw*``O#KIY5){)0Tq&*m=1FqRSy>ry>JBh8Y;NV$dv zcIgIPL>-PSBT@SCU-C$mJF%&?oB3M5)+IC$=Bi=2{B8;fBifGQMII)F{!DPD=}Y>Q zX_TolluwCfApgNoOD}S%)_m3xBFj*`IzjhRVZ90P2$Dv6OQt=BZ*-LmWr*A=!w4f$2UE;3-ApLPj3Jhxb|M?~TU|>KO(u-4 zr0^5lDPa@sIL;_)Im-+@B$=Ls5u^Pmp@iOa;Ndgev`RHS7>!N3gfNiP+Q5G5D3Yt_ zC8O-S`Jb+&0XIrI=jdcC>GX20VGlpbaI)xO{Y)qYIs#B<2&L?lI+PA6B$ZSRqLDP2 zj+;(ZgQK^9X&()9YEncls)!bTw;9XO#05 zC-{>rsww4W;>eS91~8n(Tws@0a+qrQh)jkOfrG{i&PVys> zM3SxVXcb1@#7Ba;Ri+cK)7i>S9wmZ29ZX+_GD$z-H{C%M)v}08RG*=qFo_|FP+2M2 zggeXhbGA84`GbvS4Fed@G$IM-6HaoT>&YfS9w33fMAJbVE9oRk=W>kWT1OexTu%!X z)Ce>CDVHDwOCGZr>#S!DNA(XqPKgvsB4WDJlTmV-J`A<{=}WxK zI8Jk%I)b%T1~X8`$TrDltiDbuN97g-zdBlo-`T}!YOP^%E!px24TSsJ^e%nfs^=;h zsW;)LT0W;gQ`tiaw)W)&+f9pH!({steV&bGK7;5^DM>WjxA39<&lS&Nc}Xs(7R$Mr z6CBnr`IWz=C%x%wj!-~9`xnl0oSl>tX?`M}03A#Rhxm>rLdd6`K7rwwq7r$58!?GMZ_`!b?|D@#xdM z&pPuw&vT`jElCu(WB@05%lS(`Ai>Ghd*n6yJ7=Zt2n zf3$AW{r2O|F>RhGW!Uq&UnaP8(zy z1Bv4U3Tf6SD4~^?=|LCDI72JhMB$>hWZ>Zodf}FMhBDR^%8eYdI;Fo1=24TNMNUtR zr$S#c?`YS+Ej*{*@X@X@daSv@|CsrY?<0-WyL>*qf=+E=j`VMsg{`OELnT8lw+aF- z#{^8YCdseXC+2niO#RL>9G$OQ*ykJNtS5+HB}Q&GC*%*E6R^ZYNU?Tj80Bp>&YxQ6 zOlJhG)&x-rl2o}BC4+W#G++OwR_?-pK1LBOGMuYP(O|x%gx5Gn8!wVYu$*Twu^Ph$ zs^kO7B#e=S;UbR?963cjQCgxqsMbULPKA!)c3MrLgfdmT$T5JPGC|FmXGPji*G(YZ}l*X{BB!kz91 zOah*uJ=SGBsPE|t`Z`B>QpP$fwV(b^BUmPL%wo;rIoEx1BcUPRSdZv>d#?X$n!PTD zv)>#+sFyq@;^TEZ82t~+I4f^4i)6iq3$*J*wou0`y5Q2s*hr0ZVI;AV&J6@fGh>L6 z)pR3N$8v#Ar;J6Mlj}K0yIjQ-;!P}%)0IWoIBX#kH&07F9@nF0JP)}etuwsLTZHkB zvxt>!l6d|i-zWB6x-9U3$<-LMUfYg>v8#%Zj}2S96S;tbLH{6a9>yb$#q;N z$S0BAqz@j~De1x}UCw0rkA9&$$namPm-2~~r<-)3F_JFpJg=K)rQDfkzsE}Z6=v(* ze8)V#p%O3k{6~+{$eWT)r0iobv7}Lp7Y8@Owd|vT@90OQKF(`D!JAWIOx5<7@3%J(o=51b!OhkF)$th}A=$lV7YdDW}RGs&fg`b$m*O zJWm~=45JrD7qXoinM(n&@*;zY)34dY1sSKm&`BbDG14jz(2FHZC7E0JlT!Uok5MPn zB$F7HGo1)ZX~(bEvyW;P5Kky)h$fKTl+${#;I{)8j;!Ye`dZa8n%8uLd5@`jpJvFz zdct&C9+<92H zGu)X;r8U-kuQmFMmPi=;s3e#s{3s_V*ADWD77sQ;2u;+}K{N@3vW-$&Sw|sFT8|eW zAtVsOS6o7tJj8ygm`NxBx|D-d(m+=tnLrlde8*90^aZw1N-1eXGJ<@NSm{E(nQaQ? zIoA&M>uz1jX1Q4_Ngyt4xqe5RFU^_B{a)K~X+hK7z8mZrUY~r&Y8giai_Iyr&CC84 zndiLiALLv`kG6x-U?vOxCDJ#1s`VjP*gt6>Zq!vwpxyPW+0PATi_B)9)zx&7gMPO& z%+7JLbsjHR4@xETm_aXsh{27eUvZEc=}!`2K zwlYmW9m!#5ft}%u)ip+TWk^*`Yt%oSV!%Ivdop>S%F0C6aJF zT=dq8&;S4+07*naR3g0zpqLsuC7CFOSivS!R_S7Ev98p2I7FQ144=tWp-rq|i!)L0 z)mt5(?j_N_Qg1acniA)NPU}qbKjJKJKBAG_uFE*Xqf$sdO_D03$d^wEHz6JGFh)wP z$+A>_4}96|U}VQe`x2_?O>oH;A7VoTHT^cAV2+msuqyLHBY*_Q^Q5C{jrx91kZsN0WZV zUM}z%353dQ29TuF*h4vr!AKPg7^lm4nQh!iZ{kda43>vovrUcusmC;tRQC?ckvRQJ zuj8181-z&O?VGg=A89;S%7oT`{9D;+kLGIqR8~m6bao8$r`r#jS>{?!NUF@CfP>nT zW1a=Bo>rQSH1|ktTYz(wj0(Qjyv$c^(f({IIqJHWgC4P3=x=8^3pIf^iPWDAQiq3n zd5)o+Qi&skU$llw%4or>Pw^o|vQrC*=0^FCnWy%Vp?R1d@R#+puVGfc}PZ+N(-_0=}8x^~2 z(LcRQ{C7B2dN)tngROnym7{Vg!_E8h8a;@1>NQH|+0nW~uXOd0Q~HhF$NpPG1OMk* z&KP~(Jjo4gwgR=;deQt(LYOE6^gJWUBoZ&l`1E$pYAs7SK_x@UA(AI#0_l9qNy=!& zK}jJT5AVxN^0-%5a*|q_=+w8^Oo?oi`{>7fnLs8jgy82%UB?+_N*wX*((N?JXL2pw z^kx3!JRR!2SXqyZCXEP|%Oo83N?+;3OK*KbyRezr)X>hi%wvQ6z;tq%PXX~H5lH}#Q%^hJ=sqfW zgKd<{Q>00Xu4by%N>36A!^krX(Q<90iNCm`PaSl+;NRkNQ2(@(R51gcq`)S2514$r=v((c`Aq{lUgcpaMl+i{xP521F zgQa_@r9+|!#)E|)^e`2)5=tO$woyq7cS%3u3DduDafmwFvGJlzCr=`oOdKIBWQUgN zDQf7X7(WgZ$Rd(LnrY`Wm2^^v51aexLp;MsB9v{E)5=*|@w0%TBy*l+9HWphI(dYC z#PbmCl+sgT36W8HoKA{p!mIBgz#IkwZFU^CM?zq!kBfKxkzU zvHWZ3=%O9e(8^Nk@yY89lXx9Yjh-i;SP7t*Hf@m$Tt`f8HR^DXrM!1qZ5@Uq!&h7=pa&u z=yoFY6$)wM2X<0#RNkeZ4kv;Z=O?|7J+ekFCq@0bfjaVVWArYL)68dFz$@L!mlz#G zo7S?CCOYMi^dVAh{h4ygh{dB%Q$o9jQjeN(awUnnfhPPKs(({QAzcV!C{Z|k!x5TE zAs9C?gy3>A^i$3{hk1i@3?YqB|3iA2?svDC7@6tZq^me9t$ZXgrmw6e($3Lqbf<2> zP;1Q;l`y(cORE@0Yl-wHgJd~C6vAX0@Z%=|3om|*?&So{%*BNzPm@CgHZ?TsIz|&O zi>bx0t0|*R9wmt&+HoOLKrLQ9uf;S_jSrPjNu`T!#ETG(A1^0yFnWv*Y<|Oon=!QG zmuNhQR{ww6v%!lGTY4ebT8R>fO)vp;&;l}uC<1Y4qmwdxfFHr7yRh&Rq4ji1qy%EL z4j(=o2_=9txbf(A{Mfh%0DK4*VR-S8Btf_d$Bo00i(5z#7CAUr`a8||XaW2*;=zzW zG{GFF0siI9lSUwc^uWU55Q0NC9kj6zAAuC&$3=exAsfNw5UmJ8Gd?V02*jonKLLOt zm>>)rsK@!<v(t2u;{Hd`u@oZyanYuxQgiXoZWk>GL$>kWL7Sk4}8-z>g4(2bWAG z01F2j^e5`^%5xYzoWzClD|LuEw4rh}br`x5h~i*fv`52XT2VcYVoMH!jQ~O1K`_c^ z_;BH(6CZ;J#$2>n@1pG@*;;7Fg-a{hMvL4}D#EX%VbM$oK~y2AF2x~)+o;2*Pg96j z){=vA7vcD2GLg8LgaY5wg6df|)50U9nuhL6Vx$H*THC5jigKszsyh)1ud8J|o=37|V}U?NB9OoACiIX<1q z7S8i6nS}8>r)koUsKG09=|i-<&nP1GBs-|(3@$9D6M~DgD2A~_5h#}ufkibjc=Tfl z#sLyRE+q;VN2sKY7$OK_i+J!5t(`dXxpXH~-=KmvUeQV%=1MY#xzd$jxl7OCqDk8@ zbeCk{BN;;?E47sxhDit(gNPx3eKY||D?(2Mn{w>{3h6-f9qRG&8*M0O{$=<}5a1=4 z0QM4wn~@TY%~q|YgJA?9)Zs&kBmgBvA}&rCzjhlEnu<_!;MF>GybR`Ch-PGZiXUQRm za2m0Bm1sQwHVI(kLzzx7opi&6#ZR=;%JT$Z>tdR)IYuakR188lJwr36XvHPXl254Q z5Q62b)h#s0$K(-AF@m3mNFajA)X}M6DjQ?!_!%%i97p%s>XR=HW=rH|(kIggknr>z~qY2|tKy^AR*(&3SVYJR+H~TrE z@6v{!Z)ueX#*xBhe8oQfgfI-rbWlwa!L+lF0Q|hqM(TBhmT0;BC6gpmmG{};jMhi> z11woctIQ^VXbojAM@i8diYb*51kjZOln{Wy#X;Rkk!JHcYYEUjT*<@iMpShbTlG8s zphMd^pdHkagWq|AkMtv5seiB>iy&MS$rmK*BzCh&bJ@sl{=*|&!&#d6Tl=t)6Y?TG zP{*Q*qj)GGMUUz?{2=S)E$-C$tmYd&qYBkUoYX&MxGa!C&MvC;kZ-YyzGA+lo?x6E&R4AER;G|^=3-%Jp&L1-Sgt4E zS-}WN)wQ}vzclM)FbR5+nZ)wE^dypdxQRX*!!K;KXH!O-nZhbrL@>wL$4Lg!om2^v z5WQM|*0b~=S$df-WEe@(pJ3^)5hPK;KkU&`eT6vOu4m;=#yXkANwPdg3c1pS%b3AF zQs{KNR8fwLb+pMrQe>FDS0B(4=Tmt?9+y;x(<$4?BgC0RJK0iAR|YvZv4Lv+g~7yf zzqpAv8T6u?vk)H*Od*CQc}6awo4K1_;H zW8^BrwT)T?8M=ib&yHiqz}jhhOvlJ z{Bk1&_>7VN@RB@00k-i|PMEcU4E)YSk_dG6vV#V5C&Ni{hS5QTOk_0qaviZa@*d|1 zGkN6FRi7dUnZE=RRPzha!Y%yQyz z%Pthl`JO}q2q%(A86s&iOD-XtRJ~dc5o-M^GiACaQ$Z22Tt-jxw~Ur+iKdbx z3}-m;CLJi!HRKTQ&mfX$GlL!k$!=;m&lR|7@O?lb+f6pnbnzI5Fvfn97-HB=5r60h z*m$k=#4w$!*~3v8%oK9v4sytsFn(nxl~l4pJ|&!F29b<02Z^MGB8my;i0p zYZpF(^>q$ukp_@~Ej>slp7Zz_Y2C|EvYZDw&jx!PKH9AWhBBBBSi>T-hD;K%xInvk zjc9u5LL8#>CR(U8`ShR{UrHPvxer0j3f)H+y_q_iI88g1t}Je1lwM9X=Vhjr(<;Fd zNVe3IKp}^TrcKA<2h$fXXLyb%667#7RJxyH2AA8L=)~uwaGFy(73GNRp^Y%(V=!aw z8n&_0#50y2%%q6pW*Ht_P83a?)Xy2hDDxJvjMEo5!%1CE0zUkNEFINhF%f7*C>Oq4>m4lBDt#0rWColZD|s zI;gSdQ%w-H_$k+V8u+jCA{F!}j!*{5G6qU_JDcrV&dcOWrWrvtxpq6-b&V8}h+jrC zN~V}TjO1Qx1S#@}{X8eNirX-#w2{kT$_VFz6T}8ia)t~N|Nrlo(oNHXVep1dDc=BUf>$&e2WO z>o_8aU>2#2GgD+NZv7CO)9jUOTI@hw&&zT(u?#iM(wC9?1a+L(t$Kt5ECAwV41r|H z7RkmZ&k)Z9uE$HWvr%^v$pYQN=W-6^C<)Y4!DfO8(>OY)k%Pn#A^V9VfqTd%i7#lP zn8yjBQ=%n}Z0AEPPD^j;!+av>#Ou0B#&EfFP7kr3N2o=(o=kem+hpR`09{QfO%lcs zy^Tmp71cRPhsg+ zZpA}a^M=giq*hR;5i(t-(S_Z(h@=nElJCr5pEgS_;j~Do^d`iaL^(}zjtEL+wPfPa zp9#Y)u`)?+Bbzh|9R=Mhv+&^2>v0h+$0Uz%^9ec9T|c0KSUx8Rm-7g<6uR@smCNh_ z943Xa5{x~J{(fbP@?1#%|WTvTX68{1wEnrh!!`=JVUZv zBO3?>_iDLQMmTvW$U0&qh2sQkD^U_dkba?Cb-Vl`LnPUCIVp^xfChGJAH6^)S4$#> zx%fCM1;i7hk8@U!GMF%2tVbozd5-n^tInmJGYsRnZnv^zx%`Svz0A{k{gx1UfiR5L z(n5^doYY^O=~Q63=gXsVr@d2m$~6*8Z)UTaWbT%=1hZ2|QOG~~2ysN|6dY3R*Y!`< zn_p!(_h^=$lqtH3R)P>p*`;#`p_Q*G)gmIP;Hch9DADpcjhvCSD9UUCh+r0O{5->K zrpq7>QY>Ej5TfZ65~m-rokOOQVPr}^17(gr#5!u6AK1qcQ$%lx*MXd)hUH`s=>*}Y zO`GZDgmh=5^pd`0Fj>12PM))lH7ur$IBNNVIy`{IIeC;A@|ZvgM($vuT%tWVOM)w( z+ZoOz5{Q$TTp|nPZkfnEexFXlt#=bCk>X-JL->wzLU_Lwe|Zs;S@~ zI_YH}U=5}672_G8U(-st?3KYp>tn>yDOb~z5Q;cNy)&M_^qjeY4C$r^D504J(hHA$ z8y25h9xmrer;tC`#(EM_XAXP$fkxs<)&~fnMml7SB+Iiz&_`|~hXT!`oOb>oiD2&K z4z4x>Xr`QlbR%3BvW^b9LdFoT(ORcfj!h#lOwUNVW^qI}SmQ{PnvXwB-}JH z0GpSICCK$Zd6Ut(w<9#{_l2}2@rbk zMXJ(70R5xqjC#ouTw5Ufk5n5$+>O`cNzFwI`8;@wD{PV>(mMQOXCBN`Ipt>G<_cJwmCb zlE)DlPb3j?H|1vvfd_#~`)>BLP5wg{s+fLthb@6vIml2t5srgP zvXvmQ+K(n8IYI=jFF*6XPz zN)C`hEBkg%ktcIVqYK~D6$gJ}k}rqxpc>#JX>yQwN_mmd#A`eDaFAsrGfbb>^OP`- zi=5J8q6ymNoF~A1ZNVwqB!z08Vh7tbnR@E*5Jjo(qY0Osm0@(3S$Igb_v;q^lw#V@ z#~6!`679};HZzcD`WpdeGk`}qN5K9sXK6N`A)Oleku3V?J_cfwp zBu;UGTN%o==7S7ifX<|WGJ6{D@|#?yFFgnnO|!j+KlE40Ax*9~%Xx#*_9i~(M`=TU zM$m-NU=Ly=%Z$S^i)W2z2_we7py#nQnKZZ)Sq; zUn|XCt!{epq4RkoTHcd$vWtQIz$F^=A&yafwe&NRFbrL7)&% zlHA~Sksj5~^&Fj?-x(b_5E^b@tKrrXU8$l!@rpJ(1{tgMNppv>TjL}s$8ZFnvOQYe za>5#`rvjg7qTb;6z<8f1vq55|BLPeTI+7#Q>Wz9tYdLrIfVKj^zDpiWx{37^%WI?( zp|4X(v+*Ifkzv2YkL2rlwo$@N;tA6}dX#DwQ%nm^OrQ!sB2!5vUVb8t%R0^ejXt5f z?e7R!IrdtnSVOFH`f&(*5eNN`Sg#rpjZcQo7<>I~7$LvdpD|HRn9F3n6gwX^=SUY< zh2fMVu{SzCVP@hTo>5e|b{LB}5gKR@(~kB8K31o_i3?h59FuyDa;`HTVuqZO6*|1- zcdNwyy6)f5Fdbp9l{d&Y7Kw*O`;6|;Qsa`$lGes^d`W+;VJ8*#C_dqWbYn0v{7N&Z zk6n~8l?cRK$QKM?I{{QDu#Z~%IsT;7*vV|tSWOiHUZE9kUf>+fMg(utNq&T3uHvZX0tPYB!1%>C^tt9cYeiRMr*0o<)LMIUT2vbWf7gsImTNW zaP&2nY9D!!3)(I8jGd`@zNPk8dd!~B2AxA!7PDVtInQOO<~mY%N800+a||b0?j)6P zR?>%f*~lQ`HIi)XY^|OEO5n zgUK^=Ax0*WMue{A4}ziVtvTA)Kh?URUj~*~ei~Yq2UijoTw|Tp7lXxC1ci-f0tNJ} z|JI&nzN{}Beq)HEl`%_pI+vSua=T-$F<9PkrW;X4MofY8Jo^#{yPoAo#|2|L|J7SK zqJx~9jR@^x4wI*~wd)o$S8q0k${g;rUesDGv)}$ zW~O6+9yQxawqiUgr`6$FY`nxEccj@)?{@eMOXG-@{u*Xk_UC%q{LT1`RAZm4mKWs? z8A!Cw)(x7=X7Xv4b23l5>Pao5@hX_5m?+e0qo?8n{3;0p{of6k12M5C669vgYaB;702V zcllNXSLx8^zd}g#i&%j>jiVEraAvHW~rYe{A>@<{koi6 z9I@sU<{7yXO+QA_o*1Um_3A1&NyUx9MlMk!v*$siHoS}jyng{`R(od3b18|-i z_3;&lDV5)4j&x=m>BQ+1`lsfwj&s!UA|oV?&79Y2+LA~ZnS_f|9+085qJSy__F8r5 zKUST!nHNH057m*OepYL~ZrK%Fr2nb?swGw5D4pH1Q7aoyT3_p?mU4TbTrax~zvPEa zbbfCJ!dslDjGJAlW`VKW{jp=KG1Bp%u~W{(jC0JPV?>TwuH)>RwM372?lJr8P}ekb zzgo_BjT<#!U)D4B{l;^~SA>i)a+};LYk8bj@`wy1m1h`98@6$QT3xQksF1PJfk<7Z zhbWczWg;15Q%#V8w86_+N@!va3+Y7*L6Dp2MjYux;btW#sbDhQh^ob_m;eAE07*na zRA)3Dh@+jP5XKYw3+H){DYTRMGFsYRfrfQA7qr&)*njYmwbK4d#|0-_dzly<6naDB zTC#&<^v=3k-w`z{ukpR9ZR^uRS>*eUSdZ{jFq?Mzn%nKzEpgH19vrtiwwZSum)s9I zV$6lkBI6@@+1cHgAPXWtGgndSavRHao@=_XM>E0`9d6BZOf{nQoGj-aT}!sSs}s!> zqh4NIZBkp9|E`%yBAcq@G4Be&BYxafE#8 zS-dV_pyRA@-erNMNd+R)UVjjWgcb?=cIs_8LqeS zKhD~p*mvmDp=a$kba<$%)t{k$E3`$!no0tuK415$Zxzqh4h(d$4>gG;JQuWdmi%R} zCAJ1`4^^wD$p}p6 zyZXliU+5D}YeLU6**Dw1oo@nvSqpW7zOE@6q3dvRk#d>MbDmF}{mk(2J)2q-=i#u?&OB1XKXQhV<7{R2qt?0C@sfOR440?$1XE=s zD&0xNtAq4I4)LYjN++CnaB!SUR8y$61aOKA2cPM`6w44LaY?9PNn3EpIY` z4F2Q{wbvAUUpMX1M4|Q-4$?L|Du2<&QOP+Bb3ra zC4Ma8F%jAlg^Qm#O%2P*riL5HBAOZWAdZD>q)<;%MT@i|4ChsxIvx{~ty)CmRfPJ= zRYIfs@e@F)#79V%afV9CAOe?eqmX*q5{a7#To_c~CqyN61jwg}5Px%-dis+<1ShGa zg)Srz#)llCOb=2*^VMg4#0e^Rke(!xLp46mQH@{!)Ti0W%DLu-Hx>jWiR&W;uB@=uxe}$E|GR^3_OQHl?)aV;t0St|R@b&m5UTszm8fHfp~9 zk26$DI$oT5fJ%HahmJ(+B92g{2laEZr9!5V$$NT=Dm_U(0gls1fOy;pN2wveKC1E4 zpLm>HLmXk;%V8?7R?ipX$0Cz3oK#|A>vAqquMzyp1=KQcnzawxxXim;pkCKdM3c-Wg-C6~KU~%)IY|vS=pn7t?(F1>4H(9g zNSF#6Dbzvip+al)cM2&Zgff#;EF!r~h>%{;%~aUSSWgLGQBKIdli$cE76+zWOCsUHwpypFWCc?sUO#1vmPvr& zlI$pvlZ>?*^hS1CH|g_wkv##OkA*qn5SQ;im~Vk*ueRM#^bK^(ZwoNo$;-`!I1)L?aea zxG;!CvFU&lp#&!m((n<$jTaaBG!eMsR+mJY2wb&9H(d$4p`aBAHYN!~NCHjxaM6t7 z!XQL54qUXM8K3@52qAz4WMC7b5jQ3w+_(t-KbGyoCWZ)!z>iO_fK#2Z326}?+*d)~ z5N=Evjzx%kd{`t9O~h4qtOo@eh`>o4J_1xzO*12i$3p@p(13+a9zKL?3CHFrK}<4m zVo->IK`#RMC_r!!iHU`uMnXj6#c?&<(SvYIE@Kno3^myFA^{Jvga}|`;-Vu;fXmo$ z)kS)xPoo_k1Pc>~OeRD?&tc%;GB!dIUYs%lH+lt7W)4ws)lu!hg)#^?2CZ-*EF*xM z@i?%UgcnQN6NM8G09OptZoF4b;lfzLFbQH2pe-Iu?Z!oHIZPIYj3WlO9wUfBI!cHS zsl=8-I$nLZ9@bNdB?)xJ){QhE%%>cim9)j=V~PlhlRA4Edhc zh`vr4$YPQ}$C86z9wZTT1&uha0N-+fj<^`aNt$&D%^=SagF!VOTuj7^!5$j0^j%I+ z$#mKhB|S*N%Sapq^L&EF=Mg zjWlBE8`R^HzvzUAd3aIQQ-!TDE34BfkE!>3% zWjd#*=N3}&uz*&0`H_5TSwjf{DPSb=`Z)Qtu$3xo1`>~lI9v$XG$R_%UdowBBnB&J zBt(b+4rY-_IIodMv;IXnEnFgqEt84ELp&~wtC938-t=Z#u&xFGQt%+Ul`5LA0Mjyw zB)rU^9pRk4+Lqx*F>zz^4^;$6#K7VUx)99?n$W8;qvKQ(qB~I-vWrf{GL=-q)M7uC z9H0_E*ONpT5x5X}fmVd+bPDj%aJ3D|A|SI!#HCva;G~%r0(?dR4V2=*CF2=IlpLl5 zUV9?HQGV5Pzl1WHnM(ww(Va(WYsayi5*@`!>SYZbiO>NYqDscnfmn(N0+nRoDa$Nmb43=12MBv0h3}DjRBLbY2r-l>Oev=WE&@d0lp5(qID?5HoGO9@Wf_?gsfTo@ zR%#CpQ!V{uGAZ&PZft!-ORywC2I1vP>OiaXFDkF#(ZryH^f)dY@;ez4P7Yys*iR)P zT}`<*ND>O<&{yKF81yj+5zuA)q1D6^hLel*m1tQ`6gK^d#K~*4pd6wB$fqZfyu&5x zI8HMbCN4x=j3!A8h7fB%$1*M(1DQyY<`cp;T4Ww+#zJP$#%|I@oR>Z_jzsCh2$Ceg zP-2bm`Ug<9L z=}H?+O!09$Sxh612)S2YrJv#D9=foH$O7VG>F9`+UVFYn1+%zlozeP3$I*0`iDM8^AZdFht#dt*-LnUEJm>lWf$L(E=%M_M%&+Oo_1tC4@nPQMj0j2 zB!6&|ajVv&_8;u0M&4%_ZFQ5liDNABT-4E&Qfz$AV|15~d67kWoPF$J1;;teL`tZ# z4Mx*bme7li?2_5^W->+Wl^V)%YZ(jV1@l_^a@>XzJ!#*`IjYo+gDT?>`jV*=*+sML zWU7qRX{3{22RNnc_=!$*B$<8GlFR~WM~0-)Mo!U8gZ@ef94sT2G*+Yd_?;6Rv)j-f zuWt`9p>>NQP5Kt^G7jL}*9csC1(zCO^{L$(0}(Oq5p`NV=WFHkQgjrZboMl0cp|V390aaBzu#$e@Q^MiaJ#Q%xC5nJklN zkBLiXQL6i_qttWM$fXSr4DlJHVZF2%Y7w-z&-SZQV4#Q?h6 zRUG19EhJ2Rtfqw)))On~I-VY6v500|q)7seIu4~8H;J@jwjS11V#pME!ro6ZhJHpF z#XLu6f;yhRxyVT>sOBC9(qE6$8LuuNgdr;#!#E95LLoI|Q^d{OMKAk9HgUlIo7Q*$ z?LZR0j4^~0Vdc|ArA%ND!zGyjjrI_fCQZjriSYm(iM2nbmJG^hMU#CkLKy`Fh;zit z6mGWvCXzZ`N)5H4H5_NF8RTXb7_Tw_cjzx(;&Yj(jaYWG44|F7O$x1KGZC1yCV_5D zqaDrGWh$vMpCC=HV?GI5&D|tWB*VB&A-`bLO8=rO>8v0@I%#K`sMRDaO!Hylspnoi z#Ir?)Gu~dM`RtVQ;=*M-Lu)!}1xbWUAwFDkEp71X8^qw#2y&>g3uq$SXh#Z@?Ms~G zFMBARNS9BEAXyfXK#dOO82=d8ay#>^ugT>YC#fe%I$~1p?7?^zST~SLvvrBRY&JJ= z4>wRqBi#@xsj*(AkX^=SWD&(cn&_)xl#?sj3_)!NmDHNO=tL*UBS0(5BuKF|;>HvF zFSXPg&tj5qwwG&}!9skLTRrq&at)O!+$i%2!_Y4XqsjV=V%&~}^pk7!APt-@lnhcy-cIgLwYjS4x=>*)=ivb zw^kA2gt3%#dYd26k&!xuOzFxboO;^6k1d?l<0zJ_rVYb&FO~dj3?qv{+MNPUXcQLF z@+?kjWj~V`rQ@ihfsw>YGW9sMi~t>^gLQ;$xa4IlJtch!AsUV;NxXn+qyB@7kbZ_z z%vyTNWO0#86}|E32`mz&kJM8|11_d=o!(9vTRBEL3vGCXFN_X!!)xy#6SuLDaFS#% zHo5i+Y7uEq0txyPe)8m1`f!tU!lKHGW*2MeMFO4WS8Uw&MyjZl=ZIy1o~4D;(wz(} zV<~MJ#sG;W!g@;Aa9n25fp(lGj0mY9nrJ;w4%;=Aek6)l;>eUGdXzl70XLTMmULo- z=ILd!WvmS38sf+!*ZM>Ea9C>S%V-%PiG-`0I-CsBV%ExVlIW-}h)FK>q|#1z=q?T# zJ_ZbCrAkunSf8se-;KFSr$tWJw;pDQK30g_H%#-1~ zD$R7FvmM4Cye^B$pto-2JTCf@iV}_zO$;`rq~RwhNuw2rYx~Puk%Q*6B1I=lD(L z^D$G2qRE&`C%MDU=ZLN(h5$i%k&ZG%-CWYMb{`7KGraVd0rD#bP0S*KPP&#ux{gi= z1;))hCX4MAtkPfPHrh#F`#D{z@7hoE6~~MdjHZ`#mK)?DiRBvlEYl<5QvyfPLqu|^L4NMt+?4Eq{grkmI*UdiM!;)#~=I56mg z;FBOOV(qzljx&Tw8`_z9jN^q+7yXEP@z9`U5-HuJ3um+rpLCK~67*l)N3HCa5v1yL zYPiU^dYME!#8LgnST3{VLHUUYLb8k|Z2K+E=7i)+J9_FN-LHT03#k$-U1-F?8X3$i z-qk{KID(0bdg?gKw~|bfF^vHX&_piN-HOn6b&9N^jf{{bbYmcSSezw|AT@MA2x<%$ zN#K1-bqBZOk|gOxXU1?IAwUXBI9G%Py>U{lGdN43{6ZqFb=qY!w3j;ryn3%egQ=F1%w51mxaY+vni6vq33gZ|nH{<1qb&Q_~ z$`m57c%C@YS&om8(a81O5n9YkylqZn3?mg9I7KrBxO6-96v<^$$s&~~dNP4h(s`6N z96~6kLVxBwK5fw5`iZ2=2pP?vco`&@=*L)l7eDI@Od$*>UlWoc5{r*ZnyW!AmkH9F z%leeQ#(Co{`ALpjb^3$eYCa&HrM+FDhp{-1myQ}sIR)C6<9gWqn(O2NT}l~8*p98a z_CMrNW~`vST&sh~)qV8GB$Rxm zV7G46g_Pl8G1Ua5fgm|jMlWuo4T`}DYN^7&#Zg^g5icGh za1d!E(o=fa)f~}-8qyqd zaGXd=?5%9zq&!U*u9y4iNE_Kpdu&OgoKh>5&)KdsaN&{)3=Ek~XND1m2SKT%o)>AR z&i;TpqU0<->SYXBbkmhw;vz>hpK_TaBN?c1x`R`CnoFFJMj1?R*+MwU`Uyo;>Pvcz zT)xJl)*itD_Q)$l(#2>Yi@rLJ1{!TAXNh(UdY9r<~zD zZ?m7En2hIISx0Bu+Apz}twuXW)0Z*iP%1qL;8Tk{0@9YY#Iv8t46}aWaXukH6U{P{ zKJ?}l>L}3^j*ur+bfLG#afXXLLJj4zfF#oOZfXhGT`43_CXq!K;{Z3)mo@bD!mz^>AIi4qz3_Nc?F@t5`LmU-X?-r77<4W5{RNymSYmfwOFLe zAv`EWBoVEHIL0bjMH)jSUmjq*-9=wuHS2I9W`jJ-efAbz!DgdSu4R-S)nioI_ppr( zW*6?`R(m4ZoR{@@X=^N!o9Sm=)MadzB_xq*Z)G!QWd%L($WEGZ$**)GQ_pgia=Dcr z3^&HeC_2-Ea*1=)&|=5xVGe45gE*xt3AB^PWD4EM(IV>X`#Hd2NuU)Dc@`H*>gPv} z%EcjtG;RysV9)1q>l&@pNaI%Nt=F0Djo)>G@s`}mTjnq$hwajh+q57Q&;?BL-C@nO zzmakBH-(NB#$I_*2J-hv;6)xP~}9{K#b*uO1lk9xfT5s!9w1n1LD|B^m zn*A%^hhDJACY!ZZOzx^ro{K% z`^oaQb8e>$7j=4f$YbB7sT`9T+^Zpc_GaTwnV>b!MDwh?qm}xpRtF~AOLcS8$JP*g zv#yr=sdb){y)r{GWFZb6$|0)t9zClKtfdkkP7L5}&eEv&l1medDW-{sNFj_A+?ZO< z4$AqAQd$^9Bu<^nIU3~$vWV0vrZJ7y_D?*?W4$AZk^IeI^P~7-}skVJ7rUIPrYn@Y4kNFNN-1!u~ZH? zcbJB8*fGIqkmShqj_>4XN|AdwSrMlk*K^idrs?`BtvI3W&2)KPoo2f6jb=KkjZAK% zfPgjx2HWfHE&g-%cKzA@nh6|cIoEO)C7NdLr8OSoVR?Woexw`m(uEid-X@b6d4&wT zbR`l8x6zsi`BeH7%RWYu%r_L!EPkeuCh5$OOwQ3nP~MO(#PA|nMB~7XDO(sz3g6O~ z1pPpJawxdNeoEi+j|{ElG5;umoF`}oFA)y@PDZ%e7%_NxXr9I zgGQobpYe>`??^MJNuzO6%EcRA@91Zoj{n5@B!gnUb0)Lgh?KWt}+&AN9iT?+!$)7-R(>EYx+9F%~-jM{%n;uNaJ@dQ71R@DZ?ovi1I%BDaDNo zC%4j`Xl|1(L~}^1@#6xJO)``AgyX{Cd3I3D$6QAn#*j`V$+&S!XOaoijpR~G8d13A zHo6i^0$v=HQi5f7()IiuinfO9z~Duzkmmz)tnanP|4}GHCpNtsSfoR%U-7Nf^wO7o z?@6c7L1UY7hijH&im}+e$BZ*3Is2KrXE4vz+HBFm<{)FO4zO3*o9)>|%0M14UY9o+W<(T_y_ zp_nH9hNF~GNf6;}c5<2Fw8hI~3?!8r>Je?NH&SgsY6n;y@>|1oYA|GN(q8@y>tS*m z>-~4DqoSy#NgK)+_^(r!?|a=Nf4JUuwl*#I0JERb;&PZj%OKYuj$aLr%V9Pd>s(@V zl8p%uIG@B7)@=T!qpVxCQU7-S*SM&O&Rk=Z&T>3stkxHGu}-nCC7nC;1;-=i!}5WV zDZN;L8y7+v(YR$U-H7KLH3ak$H8jgtOeK@*1s7Vua&;D_HDfF+Ti@q{7?8O=ljM9 zcdg?KbAZQiR2cED`Q|+N)UiXN!_URJSFt*EMd@HxoPTCTOM`!9UoZ=Nm(N+%0!}Mf1*;H{i{Ylk!`VI$4 z6E80LjahV%g^VSg2;4YyHODBI>*z!rGw4I2zROk$slrcC_V5sWc%2>O@r_KUlPqM6 zr0Xvn(Q+9`8;R8Q9M@X=U;7XtHV07Cry~AOJ~3K~$#ev%Zwz zYy7WzTFaaIRz*%rZ>?^L)ogzA_pk>tFSJDKbd+bPGtO{%7CYWCD?P6|ml(@jH#&YX zhr3=d@??<%W4hcQRbjrPTU|}Yc9ys*jYu`a!W`SR$r)*Uqqpd{{7>&So|aO5!8~Ui zkQexuXX(o;Y$BI&v?qqnv?h}6oTrLx%4y~q#?X!m8u9Zbdnx7!Mby(s5L+@>$`oP< z$H6L&Qi>nN(EIs`lkx>K>8iJ}oD)~qNhA?C8N??Xm3i!Bw!X_&F0p}Z%6W&4R9LUt zb9G5*hJC;G4owanWuSj*s6<;g4GZ3>-&WT&zp4}JSB3(-)skhkrZQM;e`?=pc{$2` zt}MrFdCIfYF~?l(9`77$#<;gQ;*1p6bB=r?*(fGQzIJ(ydoaRpFna4l&N=eF{v6)Q z@q=!5?K8J%C)#tJmYJ80k9CXuS6XOGHFY!tE<`4fA@RDD<65egKE@852qG@|h*2_? zUL@KD`T$!+wXnTD$(@WHoL?Ui_ zN^2sip#~qH>p@ECN-7@4Nk?KCM-~Y@pudtsCUJO3x(ZC!5a50pNTT-A_c$cONhgMn z<#xJolYYYq&EYbQ(wcA_45B?T%#Z;j^SvIRjLTHh%q{dLnJt{6n*YgdWZ}Yzp&9xr z`}mj3G;o$On&bcr>Bn9!QqLDMmG)Ys53u zoE%~(gwfK)Ml&M>p#ks^~0j@baeaApZ&mtyz4=VHUHKV*Qr_ zt>sTWL!I=IZ{=F@sl~60bgcfSD>+G}yu~Qm=zRVnUoLPTy|g`Fk}WSXlw|G07i80n zjZGRcxa0tH>1O9?koVNdn;c?2v&fQEoCuAC01LU=xM64sO@#P{(^S%hXgqA-0<|RI z!O36b(ZG2c@RLRaE(X(zh%5K#0m^9MJe9PtO3zYD70m>QAsi>=G!i5ZFHQzX3gLXN zN3={oP)Zrrv6XVKQA7u|E#NolDI|+p8FqV-+85TCD zD8+{Zfaf_xDaABm>k)0j#~A*kkX&jA(grV1{f_fm%O{+qh6%JKf>m6ife|DS#z7kJ z=>q`Ii2=jcy7Z*zz$hLK8`yiOky?A`hS$9RXc)Xdg?z5#cA{fjLinu@nmfp;MDp*4W&H6LtwCF(HsipkFWm+_c-?)Gm2co0c zOBE}rqFLwZ0qW^5ak%(MFVd(DY@kRp*-kk*1hF)gzo;Mv14Fy(VXDcY5sU9Br%6L> zr(FARf@;2{K%3Rl?UZv=h7hlR>q;)`ZDdm~Q%S<5N$jJ>evEI(lj}&tqixtrmHn&! zPB8$&K3WK|gBpT*BRMqk6SaiwNd1yrwo`{~cj15J*|0?OC6jTIEC#&^(|b5WJu@l5 z&%>nPv19ccEi&$qQ4(kE(oeLIJv0!!f)DC){-%m$Wa5aoWFKNQ!EIyR;82lek=lva3x&7g1pEHx0N$-^e(g=Y7(yMetK(Qc- ziU?O!RP6OC_Qv(v3tqdTD55ALpa@D41*8)aAcT+tDWs4($&_>U_Xo1R|G`=7-Fv@h zt@qi_$3X~Q{1nlOpH{-~=w7_|h$BFdMw~c^x&Yw=5JQk47+8d06N-f`>DbtM5(9?}z>QE(I{~dC3^zWS3DAsScO$tM77^R&M9Cryp_mSo zOrmfSBm{@_paU-Of3c(amZop3#PK3ck;$k5QIQW`QOxDtlG7;#KHDq+d*A5CU?P!9?oMG|?#!kxH~4QU zN^%J$j1V01KD}`2gOuXqPOYGmF@$2u!xD*MSLmNKt4T3FSxYW%`r-hlP)rwH0Q4pd zlaEP254wP&J8v_r* z^&}F-tCZ5fI{FbqfA-VNIO1?!=mL3;RNOj_V%jmVu<69a!Igw#lZ6upZag^IhZiLQ z16v*;i4gsS^8}bdB5qc5jAo{hj)yp$xXIx#4SY^AZux@2#OYW3#5sv!6p_469ELV? z6d&(VK|3RHVCym(u;misaL^Ms4*mul-RmDi5P}!1?Kp@djImhw^n04JaGdFm_UiPqqHEH zgkoWlE1@`;K~lGa{6eOLUv4Lv2vTukF_LIJEXIv3d+1Lji>N24XKA5Jek6x*7UD)& z&UrfZ2F?fcJVlh}j3$}d9O(f|y)=|evI#gvTH%Sk< zln5Xau(g_PwDLF^czB;$eC%O3QSu$Rg!4G%bZ`sFxTTCfxS32CPHyKML9QSSkti8N zjJ(Ko^iY$(Xq5S65yo21(PezdI}9L&P@IGShVhQfqlejxU5w{1&g0kTD5cGOP*%yP z3z>>?hQTDrAx04+oidgr8P3h5%dPy2Y`KSY!id3z!84Legd}h^8OB`hAfJ~cm*@*& z>2fjiBv%Rno8PaBNIuJf!sw zF@-DwoFtJhw#Yal^)emDGu%iXX|jUZB=dpXO)?AE%6@L+M)H`$ctWV4gp*Rod`55z zXw-3Rqe>PrkvJ|VidLP)3bx71%w>QEd75<$WeA2Glm{5D`Fe~Z?ac{F8H|lzj>?@3 z=ULs!Ze34_p65q`v~jacB9?%jqLR%VrJChjgjet76s=Tnh|}_+Jj!q#s$X+R&vSq? zdKqmTXFMT<@*L+mt&h?`nKUtje(d1~j_Xex)NT3+iC8S6ni{5&PmF%A-}9?Jh6(B* zng;&G^Q_=CZeyM%vX8C$B>Q!({a;?<55C7oE8)c8WG8(ow>Rh)>}DT5NarExgV!3X z&*`V~uskAJI!|}%8tZB9>-^T|IPZ2J`!x>BVM;&CXPt{!!BZtL)=bp z8ktEnlQ=;W=g1|8h4K~&@)FVcK*2{GIlWm0ZFmvnz zw(+Zur+|D}O9V}vryZ{zCV-FcFiDV1`4^L!MnBH7fD)SdnS14N!^w4|+FwygiHx97 z%d9aRWF6Z`qCl=-0)zB9TE)R^qJU*`3j_31Eu&g~!qQruODCQ5kYSQ;uOWbwH%KLv zqk2I1^EXX|8lAFCuCZqEq290W;UUp{iTmXNJwpw(_T#kBA-!3^04fQ?C*cI}+iTfR z1L0i8rFsu#6iWtCoUrdiXwhbp>1RxlKEy}_gBd_6PT~or09BJ}A{jyr+sP)MXd;=* zbb7FpovdIkldYY6&N?GNI6-=HF&D9qNO~HJWf-~YCZA;WQbVD}90kMCx#nw5UQWCi%$KL z(;U{@Nh4C;V<=}nkDLVsk9ahuF$k$g?O zjIplJz52QHce!3}We$qddO&yTdj6E5^kpnATym0l8D>4qS=}nraZziSG?8ojfCfos zkQC^pRBDO*L!RVtnj{SA0ra-6=5PJWT*nLXtK`|k6Yf>W1O?< zXlJ*S(~iymWH`NUD6N{y{(Jt8QlrP2L8lCm8uH20>p7{bbUjW&MeyNc6zS4SZX_RNCw@|} zDdsd`7}$0)>4cb0dN53{ri5atU>MW%UWD`3oBYfM^C2$bQr^ZQ-cF^7BXU6cGE?_x z6@P0a#cW{#(M*y=Qc0wUSbTB<6X9o?@!GTS(`F2j5zMzcw3zMkjwBPtD_TV<+a--S zYp||jt082Orw?9#z&IJaX!Y0OAgS7X*A$P zb@^8dL7U#-ZPHkP-r9lCEhSWrJDI zaITSi86mgnI9hZs;V6bKq>)M}4rA^c7|CJ&RsDC0X)@M{8IinWml;-!O5V!4KR8Drc{Dh{%%0 zjYMPWZv0v$uMv*TYMS}e9-_a2<7ata-qoil<|6F{tkp8sQN+6hamo@>h_}-95q(Bl zm_dd(WQ1JHMw+yOMp`k+Btv=`pE7|4+C9~r|LDU(P*$W)t?tT&R0r=MohLam*y z+jTR2uq4kIE7KXF6FIDF_>_R;@rq^>a z(_XqqH_H>!N2c;PlbFm#w(*nPK{^?{K|MAHfl&QhYd9!_C4mHeTkC0%o;2a%H9`p^ zjxdB6i6EYBm_+Fst)|?_#Dh;-q<~r0&AN_{WDSud>GL#U7>8vnlP@Hf>Jn|Egtw`t zgZ`3154}M<31}hT=ql)b-9+Myn;1YIo%o2*OiokEjf4?mJVz?=I*Cp!R$?>Bm@Ai% zW~b<8e&<_EoTN}pkzsKueXS(E=d`Y(OSj8Yq{}$zg^5G&<|Id~Qnu*V9HEgGvKh@x z<1adKQx1})H&TYvaRV>0*e<7#O?sMoPH7g$w9f3!3|T@Ep%{{kVrVA&*+f2(xb;)& z>EI@O)XD2iW(;5P7Xe*>n_BsW1Y)dPcu!XuTbU;l`GDQj>q2U@Nv=gCo)X40ipx08 zHpyWmGnhpumQLj~RhR_m;4l_$ju1n*B$7a)9;1S@@)0I3oktmB7^E}K+Qtq(l>131 zi{)6fGa4sBmJuM7|B=FQ`2+)}!YTHum&5GUc!Jp6ix4j7NhU%bB}i0Yg)Y`nA$Lom zRB|Pql-uJeC6sA&;9wyggfW3|oYotafI8$*~I~Um1eCqrja8f^-JQgD58!|Nyf&qhf;}8r%<8g%qNUyZQvgYa+~oD9i;hta+h9C0-;1PmRQ_`&`D5kCzM>BPCaK>L;`Vo4|_Ol?4%C^B!M(Z z(>XYC>q1UwncPDYwfZaVlyN0WKg}UXD=%vqt;XeYDFxP>`V&9mrHu^pZkfO!`?MaU zL|>tk5>4O?9r7E|IAjBU2I>#kbjl~h5G6S{@#!i~(WpB(Lr{L?B6{jz&Qin#d_?g* z9rVydj%*T1OYPgWodFz@6lrs)oX zwAm|J$rkfLCNWBTa)MH=$3pEb?4U$UdJ@a8G|?s*WRSxO;xKgxl{8btF)CyXgBi{+ zgeaZOVNT1t6p*Hu={h#*7HljDlPG%d4;Dc=LL3Qpo$lc<|Dl;vT8W!%BT@#DWm)&=ip>;CBss+CW=g5%4g#23!7snKh_N#m7B@O&1uQN ztsC?(74*g=**qmfNwk*fE~+F(1~C{v9W?Wlp5`R0fjGN?YAiW{hYop&2r~6JyVQNfTutWyXYB}f@~h*xtl&i%N(-&_A9{i_vRN)?h<#Mw zWQXjdC*k(j{K0+F18PPL@4h;90VuG9tcqU6ct<~uS?A9LPrY?Cm5wLM6OS;Ot+ zy47*B@tn+&0b~)yA>s(p?bOi48M?4!vy327-MW_sW|K-dgCrU!YqT1#Y-WyR=uir^ zNk_1a8b0C-U0h8Xp^U-8(sBAX4J?+s>1*6!%wQx-m_v?EvLB$(+-$sqQ}1I4NtE-M zo^*Y!OR0^ha3nF<8W+gpjK4~Et2bDw|CR~*q4gos@^AgG{%BUoo${vnl(CANJ@=SF zdBl9icz}ARjlTq{u8%b)xQ|ft!g1O=2BY#w&7+a5LQKMQ`rrMSe3=wI>ey3S+2# z@4Ay0?eFwj-Ot9r+ktgPr1iM%V|VZn*V=DLtTE46;D5$$<+7%!fv5GLaS^}qchupK z*LcLdUS5#pI>xT#guO%3I2CNP57SN?@6l`qjTO|o&zb9`(JI#unCiX4zCz!6(V>3I=#U`cIJloAoW?L_lBhe`O9wBok~8*1ifK0HGLK+kqnRDfZ}b)t?1lO=vs^zp z29h0c;+2=I;j)@0X9_jCz%|YK)gJ2~rhglefj#zKqU0eewS!(PAj12ZbvFl^di$@E zM~z41K{`DTnqwJY{i|z2={eVh3Wj%HHx&e+9 zLU3?DN41%H6xBDhRHEf?nLs#hyjaxX#o{*_@Jpn8M{mcyMjqGNpPD^*-7eBYe5{*I zOa84pxI*6uxr>41L@&}`WkE|uV2WMaHOyWnvw~-cpqj%{ipxax zIVuJG!|=$@ou}n7InP6SkAI^zlH2);=OvW;D8S?V%-pVP&31XvD9~M6V9&FM>K1+0 zcwaWkqddn=#A^s&P$C~NoJ3v8Nm`_iTj|Gg4%5hZ?Z6}7%T#)CH9164O9w4H%OK(z zO)6n>Hv>r0PPS0azbGK_0xT=@=}$Z{I5Ej20tY8)#D{|joW^%DfYFXt<4*ZNKTu02 zX)E8#V|t1Hmw|e*v!6_~RhQcj`8HU&`bX1W!T0PEYo5J84%sV=m3nnxyETwUrISAT zv+SduE8Cxt1xA6h!*=Vzs5<9a`NPVwm$9YmN$VTEUM}S}=E`{9lqJRjX*QPIYjlnM zfIW`~D3giui0+hEX_9zdqNNCD>A=ZLGDUjPpl-r$hG1+qjL% zMjoTgZ90ISI-gx~uYSe^eh#g1hS3tcTo1CyztrAMb;DQw5$yDL1tP64sbD(Cukp9GdF{eF$%2zsuS9Ee3Cn(OQP9e{U{HFtTp~%R_CpjO`TCE zh19!#kn!|2(j||RI*Vb0!F76)<&Fb#i}Nz$Dn{Cu>jT<{#r7Tgiur@FSKebLeTe4_ zEp+i0d#GkOy@+NJS;TUX3ff2}8aLDEO+2Nv(4~*@y_U)nD&$5E$Wx5bIXayq@&wb! z(&yN!l@!w;aZ<)BOw-SJjz748fh4n@1q@_9MKmy#<210FYTCGrp@f->j5p*Kok9+e z>qq88dVk0##B;s7(WJCoj0q+RI$u&wOT! z@t7Qumt`F9pt6VA@_firvlq_?eVQvj`F_*)WP@G7hh)ngmWu@ALs>(L^C=^f2s_7K zq;Y1R@h)fBEYFch3(a)t0{vEx=>)cM6hD3t@yAmfaX-vijR5%So9(hw+xYE zQebX0RI79@11WZ$c6`H5{-%{Pc9A|r0f%rB&|$im)4rSZ3UTWi4JS@NGF~)}*?xPa zz1E7iM%tfP76W<0?2-YzM!p;sx6EM~N9_+Zmlk&@V z%uLSVMKLgVmg+@hJtI?S`ixrin7WL|1cMzLMJ*q;>qtDVijnP(IfpYV}Dr zQXx)xfr%{9!E7O)MBH)-Zi%N|rV%6-7s4Hkp$D7fM*7M=J?KBABYEvF4X8!6#DckvU6#*0$VZMsG0QpZe+ILAgxY18AJ@5TUa zs_7uuU55q+(tSsGv4QjWv53XQq!BL`CuqXgUDr{BU=m6Q4jecThSP({ZUnQGCiN3a zP#pZKWwhyU9Hs+^#wB+!NRo6Dd$pD(3{1I>JfihmPH>*>)Zt|nWwbGe-b8VVPJ(Qq zoK{AVfQMTtAb|(j#aS6ZGGY1xJE@gB7(|k;qMY+gkzPddx9-JD4hguaC4eofnNFr& z#}+DhhF#Q(mn;YK^JH{>#3lPZk*8%;RtFBU>UEA;YwhYCvg6u%$PlnAFpS zG95rZV*t_IjsmeH5-QKpiwG_u1_zIFh7K(uo)GCzJC?nZlhhL?iMWjsTtYH$u!~q3 zreDYa{SR%#TS2`__nY6#aw*W>G}2()#T-)ggp8AD>v4TW%XyS4I(eKJ96U)I0j?$y zx9(>DDEG(iG*Xvaq;(RgUXPf!LEhN&0K#|`)a zpTuCIgk#~Li+~;^h?@`u=pu-%ztE0N2qqRy*jPjnfrncB*eIR&F2LOCLomdJflUEU z4A#)~|BhrgHa7Ky;30t^KDw~6i9vu)92gt`gfKb~0$2n|B@_oI=tR3ybavy$qKXdm z!t)*$ew+-&fz3fIAP*Oz9K^&T1`i>0(29kJAU09BaqC{Z1lfm)LvBJa*oK8eKc|fl zd9~ZN9ZwhrK`b(e!lSEbCqNwrA#yiS*py;p=)1H6{jo9R4#KeM0z!zziOsdR5MH2~ zE?j^gFL{LVE{WKh%yEKTPZO5(Clxmf3B%O!loF6V^u(u)6l2MiI5F5t7%u7%obnbi z_{kv_heR?I2g?aZ*vLUt-=G$se1!{BO?KlYj0QUO527xFp3_MaakzPa7;IVrLk|(a zFQYht%?Mhs^ii6DUuY*NpE43RkKw_P9SkL04^x7VzNF!#vU_2m718$qn{0aF!3{W> zN-LJ^ra#fN(~d);xrk8qlZcD+_))z_Yw+_j4LIn76Tdt~5}|s9meQte1PO8%Ep$>( z3(9>oVe4c)jo{-fNHIf+VHL+|;SS<)Xl=JwJ`~mYl+eLjlpxy0CR$lePu%>2j}Uo> zMBGwM1|B<)Ei`E%UQ{X(L>?uJFxFE}K+B0GTz{v8R&vR}!?P68r2A0}z9AGBenN5c zG!BH*1PIcOjYR|o2756v+0A(@*+CBB4515^S;XSfgPbQo01L&70~Zx^VUtZH5QQ6; ze!)qa`H@xvvX*f~(Mk(G(ul%?7cW8ba3KIVIDwa7x9R*XdK1M~+OQZ(5@CEm79r%b zi}Uth9HCX7q8AbLBbpFyAQ89hC!0`xpY>FeNEoK9B9~CEA_X_Y>BL7KCJy4vJB11`$Juyh|b` zha{g6O~Z*_XLEvP2I9ixEj>?wQ{n=KOFRyi>Nx`3hZ~cNh{4SUIx)G88Uo$xF576v zK`4oYav5=m-j9vV%QRx+AP%D&gPti)y115DLin04l+y(8a;2ma!VYZ!h7yJljbdY= z1Z62{gzFBx1Z5K`xG2MeK?){lEBk4aMGV9v3kks^<@6?kZ3GDFG6DqUTe1j|wImbD zCfta&0fruB8%;8jp~Paaj~30Lj83_hT*8b?Wu_$BZ|E0VfluNH=PE6yP2QJFBu)RL zHCoN3D5lJjSR!OBOG%MZd0ev8%Salv2m7>L-5jNbRGhfwX)?uQujUhNGrs07$<%)+ zrJXk^)ednnmRJqtA6l403U0!PRJ$8||Au67Dr}~KK7?V)bL2_1KF05KaSd67@+BSk z=|>DM9;BQut-;2SZ8T%aeI((w*Kv$aDZ`BmAEB69#4g%o5u=FWzl4D<(1WxXKgl}s z#X&Z1qn?}TsR070JWmf?+$b4@>Cd`>M&=WTL!;QsdGRuY7-O;ANe($o#VHOZlE(Ms z;Ncz;2&FH5h$Nj1!dOo=0nMk9dKo6ylPTdWAcF#82gmOA$5w}YZqWN8SXb;^_1&299q5eoMCcCMpNykvgUOu5Gsr09v zE?vx8-Kz75q1m{exs0|t_=->LP5J_><)FOIETUx@*YS|P#yj@S`aj*xK2EVOI86uZ z6nUIe9JNgSo>hUTScuQ}n@-XztsnTAKdmaJ(8u_j23$ItINI$zc2i>R!cDwRVk(LJ zA~T4PYMv(9Ud#qMG*!}wGx}DpgprJH^NP&nm%B zEsJCVp$k>! z?v-2AK^aYwAdm4p1F_kzqU$&yD`?i^TtT=*&`-v3g7eiN!%jkiO)|&E%0oC>F87H#kQnGjOn1 zwlkao#$$NNvk+n%=AH z^=I>lTp^=5i-~D`Ko{}yq+BC68y68^5?km&l=Y(i%&*)my*Vj9La}5Ned$9Ky}62d z;xP0Oewt-Ilb9-FsV7f9B^OZ#30U$lBe}@Bi_ba0zX;%EBH5&wo#Zh~YRDkd9)^c7 z*+C}FjHLsId`B!H=1e9ro=KE)$a2ty&uk+S3=f0o=h!U|(=+%E5ya^nt=40j%sIB% zU(*x9BfokYn`zf$x`dc+ z4M1Ps!VPvf&DioW8PppliIS=|7HKSD9e?UsLWyNRMV!(`dedS4L?i=s89kYxEjTGO zwh)vodk=?+GY&I>VZki6>T7@@F;dD*uC-Q^OsJ!T1ma~B4lW`Yi%z?NPP&YAlwthN z0(#j4_=_*NiX^7;0$C(TP@;*{cS$0aoj8DK`Y~P);A55Cj!B0U%S?uwlc}Y*JWGF4 zbQzfxX}H8wr}vXVq5T>rP9v9*TwxC7BuA|ogkb4iGLjVIS7tNQF+pC#!~KjSR7#mf zHp{4{nG%Eww&5n1(KKo&qdCi8Qb-1SB?b>y*gtTH{dl-Yo2VlRgWvJcW%eLaGVH53 zqT9Hhep+u_&m_sRzNA49^BYC_m*HR-;fyANWb((xA))mHbBFMDwCrf(BbMzyhN7%tZxr<~5*|SL@mM zI=;dwdBzy}(Az#wJLUQ;jZ_+IB?b>~X(b2Dai}noF~%^7Y+jXN4CGPzkwP8kDCSPWsMOmD1M_x9(_1G=KZJOCkfNigq0COBhF@(< zPf#Tj<#v9Md5j^`UdBNxHC+8VTJ~z-pzE;vfz+A}1TxMTK zA-~Ih>h!f>mu}!X;}IFpNaGKNFpmDT5a55rAbJH5qUT7XmobxAV&o2n;1eNV@-&Kl z1nnK1&`-1oCv|2r^SIWY!B151J5jVq9Q~*>UGgNaFa#G{tamx9*J&~F>~$vbKUr+= z;R{ykS{k)UhLItc+MiKRoqR=aJi46|6iF8`7&?|ZZI^U9beFx7O46l;TuI|e&T5H$ zJ^xU~=lnsb3o6|bGM$ML*JAFJz*3OLQe^j zAwBhKs`W1&MNoQ@PLlMo0{X3fV>~K-m@129l8oapA2E&BIKozAAXB*0`ZvWqFRv59 zV6DWSLm!fEb9VJO-$Ug%U~&N_Q-=EDPIRcg>vNAK>_W=MR{f z2k1jIAJagKjf z*+2>3OC|%jTAn7EcxNM9IL1~|$dnn<5u4xWK^sYtEcWR8dXRE+pN!`=?aX-&YK9(Q zois>3J*{-u4gLeD>jIaa`8Xkq%l&4Hujl zdXO`0!y!_0sNgJxp(i(sxvz$^^>woD> z8Yw!08Xz9ky=EFQq8$+n%4C81|N1kCnHS!38k5>E~tc^#W5=LU9i$i#33`Ql*E(6{`|R_j~FAZ8NX8E(JI*SskYVuMDJOf?%x z#bG`PG)ftLxZBjx1}9X{Y<9{hvPg7ZWfLDtkiLvJ&(Vr3Euw*9sb(zCJ08B^aY?5$ zU0pNe1D>=W(9;^!BzADl%8eDg8d(SIGiDwlja>-Gf3YeL;6Wi!f7EuA?4bKdfiP2ny8W@ zMw6z7bDSlTy}DlKkV=x7Mt5ni^_N1r8xSqI)@_iwF>uC+Lie&k&lV zCvl|fNlG~?>2xQ0{hZZSv~WRQCmOGul3|Qt71{LG zaIIpC^$N;3zMu?rGUwPWL*+W!>Jopeqs+L zTYF2w?gB|uQp7)2cOaS?RN zSjI;F%SgiL&uEf}la2(eZ@HcR)Dj|K-z)>@W&%848^4 ztS2Z3bQ`UmXIR26GlVuo+xKY!!=$%_lfchdR7(T7wAN3g1AeoEY;ts=ZsV{N(}LkX zq9~WCbS6^<;i0{ZNAU40ZHSZC@RG>SlyKN;C!g{Xi}fwggL*sL7)U&cvRAs$$yki1 zkCTauAE_XgOlzXt#dW4H{mHd=>S?~^eQHTIBV;&(%=Z-0moW8nN*~8Vp1oQJvdl^0 zOLn{dlKXgCW2qv-c?9JkqnSy$H9=nEd3&MGWQiFgchi%pcxcf_QHpt$i&V;?qB9qp z+J?XBdV`R*(#Q3>&|Uh9cEis^z1yso!6aH^%n#br-Peq#N-|}kK4P!YYY6)PvU}*S zb}8@aQ?5KyB)6LWQcA8oNDtyTKs5ng|Q-Up0TX#k1VKXTdrenox-Dx7^jORtyv$DeDHGjygH3<#mAzKhHe3wdXA+w~v)?!0I{EUNq{%Fq$QG-YDK*)y9kNOi zVm@%$yq4PJjlo1+>Doo3(_1?-+ulfjovAl7RZq)4S>$}=epHUAm-_C@bDrTgfW-X)JiudlB2^o zMx9>80qV#j0+;E?L{gkP_>^LD2}4m@P^qF9Q52xKOgDL+_VPSQxYVNysU%r<;0?TQ zcjg~|kv&Uq4Xm&y@v}YBxruS10{au49GY&gky*_(_9Irf{R(5vI%|S;P}*DV%^Jyd zZ!x1}lJ{-bSLV~iTih4OPC6e}Or`q)Q>sfsXPtJ8&|=-86>iIVQ-{0S8LytRzBlu9 zd8mgoUDx`C*@N^)dnvc*RkULpO}cIcKpo*7`t4 zNs1iv%(MoZhOmCt5P98J(>-A~UhX#MLt978iHe|TbR}k8+-5TEa&(?&Jea)$QOVc_h zURs$OT>)37wZOEOw1_hIIy1m}%9P1GPlI*Ld=fU+OqF*NN4YPe5wE&t>N~;zIX+b@ zOgy?b!t2V_(e6C6RCA42x-!}xs+*m!WSneascW)H<#X96bEGqZ3%%sm=>|PT9sf{C zGZ(4WX1bCr(TpLNNM`ew77@fjnM`L%;3Rb#WDXlR#|(OssIRb@VoGR1Wg5Lm*3Z~W z1^;l7Mq=k<#U zRX<`JiF$=uD!)<12HUM`{1^2LB<=Xs&ivF)tLUSI{-W9Tu{tMBL~OTC3eltk2B~?~~TQW{-QR zD^gatCrhNvi@x4^kbPl4m<7&W*K_hO-NVaV>+~Mi1hZGyn%xqiM|7V)@03_qo1-$& z9FjJSmFHzN*}9Js8YPZMT+E;!83>?c5r>;9>IjieEN(f+%M9c_)={K;D5Y5j(~elK zp#$+)fWy;rC9OH6B{a)gnIYZuLv~TZ22N?Me9X1dR;TGoJ;51DX_mKTinQ0y^mjey zT&ww98LYF@G%8pXTBmaY1@=`;XgVD@slBU%EwAbHimQENG(Q-pt9Y_$rG3D8)T%N! zh=iZ_TyLF-_}qQ7)yK2k`ccXN03ZNKL_t)~^`mvIcdDzcX|{eeEz;KQk_qHT&9N@9 z#{Ifn>y&t_tex8At+QUDo$Ecb&DpE3vR(hR5={$(&1T7z8@Y<^q|k_upd=BETNki} z^Gu*438WB17<2fQQyip}Mv{pmf@+%av4rdBL@hyVj!{A*i`Ydmk292PqOdSp%0s$N z)-gkRP(T$;jG--wG}A(mf2gE^5COQfqO@6W)4y%MQ^#$g*3LK`6Pz7-R&VjY6dJ^o z`s@5p>Ymz1eK{K4;0^5{w{bymqsD5D`HX3f(Vm*^e#g4nJQV(qJ7g7kzjhxqYa(`d zez1z4ENJ>U8^U+E7O3A{X02r?1?+Venm6PXGG!6d zP})fn9{Q3?j7I7+Y?UH;jsen}cEo5Am9$6}@pyGRXQ`(zSwvDo-DM5eC1dCy36#@- zpA@1Aqc5$9=6@WZlwo8OcgY=RE$65q3O5$RXiF>=G!w*y0~FIhK(}%XN8eSWC+%>j zkhg-xp{;!BueE#V(#8t^J-Vy0PcTG&L+{X2GCfqH9xQvOF4f2E*?Lx=^o)?r>JFbJ zU&xJRg1pHPRegd@Ji-t%=_08_@UpJs99>8yf<-c!JbLN- z>?4J6T$fyJ-NYH{WVg(s7kB7a9Mccj#)Zpa&81ZLPYS4EDD6m)Cm2B{@5oiO=7d(# z%t{VWg&+I>zJ9T|ap_X_a*;-w2(gq3F&jJp+IYNmTp9F;U=31Tztn~N;yCsexh+>QA0I8o@YF{n#)4= zvzrSv@edbiqAzKLGoS60I;Zq$wpg9S%Pgmdw&OGXj6+n*Ewm+8mvV#}_E14H#ncnH ze1_J<;h~8T4ow8GsiK(>n<=D;wj>b7Au4GBKy)*OG;)?&T4+lWVV4u?vy|iGCp|+Q zahHYf3T+~tC<)^LrP@R}&4dUM!ok7dpafApL=}GirkKXdCUk4!2qPR9hLcp%a{1o8 zxUlp(e&e+CCW}Zt#06U9I@%GdY5F-wctX09!YOJA@U9-9oB|pMXah|IIYcFX-efoB z`XNWCyqt8G;3LFeoTrf;l+eO>S`))GHc+Im>mh3RlMmlV=K zEFOe|)DxhDWTQoSjtTXFKJz=msiiW*mQVk=N-%64TjAnI5GP zKL=?b#5mFjXRhw08kdA)X}EsPDfym(r0D|AP_H(tIm;PZuz8i^)M1>-k^|1?aX${Ng)iE_GAkcdNcc}(iinh z3QbVv(!;6MIqbi5MSX|!_;d%qbDoDtCPEkUofhg8Jwz?9bBZR0kxZBxHc_ePSW7t( zxPc$3BA_pEfq=fRUvrKs1cw#^puN~no#wEgTJ6qpY7uNK)0bJa<0C2v$UWRdrtcYT z$0OD#exbWFimxb>kwoE^^ISoUlfYY?lPrdjU=PDP4naa%K_qTTr-l}yF*rnHA(sa| zE{%8O;}F1uh2a2xlq$lov<|_NObiws@B)eW2vCTR5H1plCPVt@Aieoh+g);Y1K3 zKrs%6Pq;up@1X*{WK>Hxx+83$8PQ=BVqbc*_=|Q#%J|Ex)sOE|%B*Xt#o=pwxM@!$ zLN*SL+)E@51Bl0cNuJgv)Psy84i{_4!1}-O8^!PkwS=UIPI&pRq$7G!4`a)nL?OC~ z8iKNfwuJMTB;nC}bS32`TOK8uV+67E0nQQR6TN^BLx`YW&joCGgft>~pID5x;S2$m zT^jGFie^3}lSrPWiom742=oC83CcV&@aP$;Y2YT#5HiI)OpZRn2^#cT&JvIWJh*i_ z=V)ORHa-eTAeJvUNj(pegNsen083~?G&fR-qboQ`H7hQM;1&2UtHX5&FboT!i6p|A z$^mNWL_A@fppq7{iNw-XloOElMB&!IslS{}J2IRMV)Q6=_@x!Ggk5stbq5!ymxpOj zG}QzU!m%%>&u(^7i=P|FA&w*r${NaPp#xsrm#y?uI2i6F4G*_-gnF(b>i?c#Bpxg( za8Q}TaN_x#MnrF;h!&YcG^*cHLO`yf1JQbjQhf3}?TFTK9Hf?)D8$dLB;%5wX^od6 z1h>9V89rG}JG@%R4(d5Z4SqV}#mGVOh|-s-BE)~WfR8GIDDRO;7#H#4p@CYO_>&ea z1`>_%6Sau`Neh00)Z!Mx6WPR2O%NZ$urMsA4x6q-B5bCX5T&%>FoYz+P?`yGD>=mR9mUj= zh!2NC+!+4Fk8&T$xM;zJhZb7!lZcNHUQ&paMWi4^V*o#bVFDiX(zpUO_y}J5h7e0V z&D=#BBIS}~zls-6sWi0Xf zffnKCBYfEM9$AEI8I9PoOF9!_rgD`e(u+8}+Jk?oq5+4HzN0^BB?}~vc!{QmgfoR? zTzY{WS|?ACBQeY&1(zIWI7zyeWqL+JjF2Q}2FtZfJ|tJdB#I%#X#`uS)oGNd->l+( z$z?A^)bj(~h@mxmsbd}~xcLV^!cf8xNn`@a+K!#na)u^EpXNu(Wh~=}znsW#p+Cv; zH{FTSUhJSsrZJ9Wo}h}5?2=n(C0~<wbyr31%k zBE)L?k|2ZRCURshor#h)^e6QaIU!+;CyQsL9dYsxBPER-+&~5~c;qO9NvAW>xXpX= zE?3Av9;B-r;wrLPO%+Z0FDdwVob_yC13j^v>pg0|3w&Im!;NE~rg z>N$N5FZD8t4$>MwUGZ`$VI06Ox*CfF42Q93l0V5pG=a4o(*d01z$HUnRxq7zI)Yss z-~_$sLJr_pVI`mIYlPvEXX#Bo)9Hvuli0*xY{o*F#R=U@CMRgtXSJGUrpQ%9@Lviz z>nzlnOs5rH8R>jQ3_*V2d%h={Y?7p2-lV@XSASxQyh0AcdGc7pP9-B^wMUIb0{>Br};AYxxS~b*!OcA_xpUhQ@_=l zn8Qa5<0!kC%#GyAJZ5mU6UiKou!sP=H3o;>@)(2Z$qHG{B=&Kb22Ih^6qpV2DR=1S ztYD{pPB$uLF(VnwPvp>z0xGDK#~4fswbGe5XNbPcFMKYqajSDBHT+?nU<|#S_c%!l z_mhN2-((aK9AycA$OGh(#RH6!$(n;8Qa}o+x_}5hWhM|$vy)GZ^mImYLI06;@~up# zD_^nQNzvW9QEniWuKXgSBwbh0hkW|rC6x`7Qp8x4W1-t9K_tXz^5ho|>pFRo-g1Rb zCY?5va*{tNBtRnfGlzV$ibgE8NyKq(CWcs^Wdld$5t%|K5{N>aUWAh%nJ5)nLIzpV ziEPrek`t8aMv5pkG4v)|qIicZRjH-f$z=^Ibr<;zF|$Ypy@PW0(@Y(;;-eF({2_z6 zmG2lyM<;=Q@R*$pkx0GBLEXV$S{M5@+bfB%~QpjOu5h9NF$&+r>6RYP) zp^x0AH;_USF&xk(@+E#;Y~>cY#<4icUdff-^pQ76qPPA{Px|UGPVg=nSa`Kk|K^~K zm439=Hd;UtU&wV#aF*kt!3?7s)pGL4)JCc}$!hZGtOM{;tDULmxI91vNje3a7>8dwUg^$0;q)DEmNSovb{P<)giFni^Q+hkY zh^A1!rcfIQqpP&iyQK$1IZ7h2GJ^`XbC7hxr88C3@Gw~nr2rpw&TSm#pxMDS4B-Hc zSO{?>a1Ct;(~%sZo=+&JKvt7a28IBs8cq~v^)b?ED|2uWE{UY#W&}3I=}sxllFn#4 zGm!*b`XBZY;wVD31n5DoK1LWZv{1!4?LZoN62wEioRDamxR!1*glBZ8u2HYFmx*k{ z(!b3&K$xx6VaYneN#Z{QC=1a`XfhydgvA z%E#DLJBv6=kx5|;6XXGcCa9F-1mo{=G?d4j% zof7?>+lVHdKIG9_2UATIt%xJZdX8oy?d3S=rAU-?dP*yeVYe3RF1!*!3~6|z3vSY- znGWPTjU45u%%_eby^9{S;aW~o<-CiZM){E(hB_xXtKYkRBTuek6#*JF8$TsZ9Ho@< zA#Lcb-=VbdE!pJAB&uoFE2t*K7<`=4y%>zSnMRW2YZ=L0P0{mwJndLn2hjAky%JhB<&jNxxK;-!WbbrGV*@-mKFbvYN<$sF2p1FN{m3FZ<< zjl4`N@`JbOYbxAX&cQ_Lp9Y2aZ}$&{N=8pR=p zaMlw+8yP_-V(jI-%+DOhjnM~*qRLd$RUWe*ARAxk7B=ZJnaW6chIcrpyQP*s($i_n z-?~D2az=i1ws2S{nEBjH&|FU%t(~jbz&0nBFxoJIa|F!OTqzUv9nR`5ekYYQbAfI$ zh$k*3dFh}u7HXdRK(|ah<6EYiz5D(IdNX=s(g;Go=ZJl=P0og}S$uJk_MSFdO zDvprGVLfE8rik;_9)`*z`U8h`1NW09ow*(t3A~BJMUE0iJM#wN^sv)dqf@0VeQD#| z%w7u2T2!WSI|-CKyLE$pr;BO8cHJd&WWG4GB2}{~WDlRQpXyMdex}DwnmjG-0KmJI6Xro;3vU1WZh{?g9buj}-r)lXiOn>3jk z3?uMS!z!9d;7QJ~M^4a-&XjYJGuniMhY>Uq&+{bW)eK50G;_(Kx1^Fugnf^$<$Gz7 z_H>sIXd+$5QO8N?%zfM?5tQIE<-pYU;7!>A!umQsq3udWe^f+$Ec-pn*EvL^{uLlu}tqDn#|xeaE9~FH+;x1@(nq3;xm$ol@MVB^iM8wlJ&HpTuV3^OedKpuHy_% z`Y~m=q>(I=sK)|YXdzx6Cx@3a!(l z`W96Z%PImyNHe+gl5okw<-DYu*~TgYxXpvoi@tn=8gCrfrDGJO_at%E+MYmC6f5ci{BkzzxqWOl-(!-g`E-mD4Y)RvK8nn#H<}SJ2 zp1@-LuWq7<3VE07Wu}Bv%VGVHM$)v7lX}nu87bp+4;MLa|HJqCi@Cr+dg^qxaDYR2 z32~B4`bsZOQmz|FqnXV#Vl<5NR7fUCC~s0vgB+x*jMMR4)Dma7u4e(2-(h?tmb=@&qLfJt!YDoc47->S&olJwo`-ctYH@?&144AS+Asy3#Ko9 zxRNte6Ro{C$X33fl7Dm$7m3xcXu@yqCyf*mh$W6>8bSAPn6vsdXQ(yrGJ(D<;RL6g zWVW+IZYF~s@)-l^;`HE0)|qqkrMG%1p_)!qQm#*siEx?|#4wITk~ycxs5W;>9_ciY zOrrBE7pP#3p5~ZNp&YN7Ml!Yzqm*Ke;~34FNj+jdq8&+WAc)s_n}h6^zsMpFRWK&7B`0W>kIs3osda%R+~b^TEb0? zREv|G)V(wz8pCeZ;nHK&$x7+YKzW;F!kj+3h5crpEQMqBXyo7~GyZ@y=~EYM$q>CPBE-OwEB z?X-68CWaH9PNu6&m3gw5SbnF5Mh?(Oh2Jd6Fq?42^cJ`gl!yYHm_WL|Q%iCc!cUNI`A))}*3GQ6)@y<}Ki zqiZ7lljn#1PPY4dlgaCJU_EcylQh;T*Ux!Y&+;>!_1CbSuHi(}mkwIy``DhYN9#J< zRdm=$be~hzUzqR}FlYWSYw<*-Vl(0iWGMY45Kv&`!O&lKS#}ryqO9169&e6c9bRu3_ zWCE?s81AFJzQQr;xu5n#%F}crM&6@62@EHRFy_!fVr09FB12xGCyCrlHWAFDCyCs{ z7aXW#r%84(Jaqt+hJ z|E%_=(B0d-EROqKD@Pvno^#DN>diH6>7TsFbCiF=jTOzp&;{o)O?GWGZ|MwAj(Jgi zo?fmoI>!1@o@aYPkUnZ41?KYZ?wN>MDTUHmyQbbwm;XofvNTq7WuXZXJ|z2UY}3*lt=i=^pC~{ z4Va_W|E!)S#p`t)GjF;^m?zAMuxniRnB%TDjgcF}YRnm4Oa8`_CNbV$tYP|D;5~b! zzUrwn-SmPt#*ue!EK_2lW5ru~~ z#1p1h^A*RqlkTMOJIATw6jcNnOGn~(ie>nncb(0AZ*O*9(<_4m>>Az)NazKfR;y|k2jA7c^t2Wje|U@gHLG*PJG)-cZ5rf8jdR^5kCGpjWNmXk^4w!3Fh%ki;k@Xy=RU2pUYFZAWQEKx z%#lyHnG8~i!NqI_(u#{T5TFqsA##W%oFkOcL)}y>JOZxHPN`GlcW+&N7C^!o!(?{H!C^DJ6uUF`?*Myj?%ZNc9uGQ^@&ir z(^jtt&axx9De!VAOYdylHtiZL%WV!mARx%{)XIUj9V&8KGb+_e`U&wX6Z9dnW@GaJ6&3C_R{j3?h z%Gb`Lx`-WG?t0#2$t;;I7nmRe$Rd&(=s_}xgyUi%J1Ai(H_?He6j9567)0jfAaDL< z5jmYGxfFa4CWmO*A^(xydV?<4x8EGKos{?oNq4GlIlkS7xmue zUiJyy7kX1~)(6bkDm|*1C-N1ka6S@PdP1w zqz{=AslRbttK|x^C6=ccLNcy$d&sFG<6 zq?JzQD~>XO_QcB?xr?sM)9qZ)@7PBLer#+xAy3hdS^5iSE}7Yy$xHmr3tUOI%wZ@w z`ZilBl1I3LOrnUubtxRz2l$bK%kOV%QV7>#>Il+AkdPK~Cu?K{x6@VrWCqKE^tVc#OUz{Xd@0Gs=o8``gd1x~XsX?HuStM`)THB2@w&=86@Y_bf$9-w{NWdexTp~*IKJ;ty-t{u2XfM-*Z^O z8CrOmja0}>Y~=J`N3hMEZNF*kEX`qY##Ng0-`IS=KxUdsIu~^3iS}t2x zIYb>@)YCzbYB~r}L=!&ZaABi~0G6)c1Pv4rhZ8$?gtOG*<0m~!3-`-l61h{?YB5)m zD;|bR3Q_#57inV^r?p9I@ev|O2um`F!gjfK^de38*+w~Sj3I+4PSZdavAD65O%yJE zp_pcVrHocGiN>KXa)261!H!+O<08%SX9|heZz!Ra161LqfOwpIspn|XXV}dp4p4)a zQKaGKC=K{{k=<0&MX1~OE&2^-X}Szy>k$2p5_wDp6Q_&yAdP%a3GJ-l0xbjyVzGdM zBA0{Hj{}1@xJU~Jm_i2A*+unbi@ZL}Ug}szIUT&rU=rBEB|0eS z_HhEbl5#pZK`Q~aQ$v?5X9OuaQa4bp%PFOe2l#^qt!FKzx`@*>i=8>-Y9#9^(_CGz zm87zhDm_9ILAjm`q8Nw=o1SJB#rh3pba5YNY1JIvMjbbjOaw1bM7#ALKBCA<)Wuwe z-z^Eq6q58){em)GLLRq)nHxjb^>1e`u>QNFJ7S>%aQ0R$2vo zN+n6eV%PVm!Dl?jl_Xd__&3Emg41-!cyfs4ZhGLVaJ1)5Jypz zWb6pJ#1kn|`0?q<%e#!=#MTWoSKz`^|B?M&=1w`sSR1&5T zAHK^sC$Eu=LqFgWJ{Hi5!E59ZAzMj7Sw<593UFcSgVZ2Y&_R$<#A3S)n2MhXL~ATt zXyPDV!h~?*!iFD<5CKB;!HLQl#t_d}G~wqgK7@J1V2YQKxcEpCuxW)J!cPneoWM)) zGM>nPX~mKi^dVZ`rGb!qLI%PP8nE<1YVb?7j3SotI8hwxMOZ)ut$GYUPQD_D$vh1F zT*D=T(n25Hl;FeC&3I9!a*$RAk%*}U9H5P7NWpR02F+xmuxl*m2uUf!iP0B1M=Sei zAw&*wL|jHHbr{EJl2k?!Pa77>7(6(6mj=2Rf(?VEcrh_)p;bSl6@#Ctq=RdSK==k9 zN`Ktg*hC|Kj^RUyA`UxAbRfEvQW|L_fJHV*xLHp%K6#pa;%Fp5SnDtdagkQSBw~O} zAQ6}TOeJ2DiNqn#(UV9ncb>~#VjOPl*f9|*u~7DM2`~4Pftw3-5@a29ba4~$M94o$ z#jZC~LWsWD2@*{dPO@4k@Q90(6`lqUX6Dh@uQ704q7J5Q5>lhd>jB7~n1+X-Xx8JFNa8ST^}7>p!9fDt6(x*Y9b4{ZdABLb0IiNcNzKLPz0&A>T)1iNkY z(L@nJF7Y^7!)cnii&R{M2w?Fwjonvv6T~7Q_mG4`Ptit@ZG;ex(}0gr#Nl8E4Fqr# zfyqQnpdT?f*-CqN>_qWm;^-cW23qkmnlz&1KV)F)S{ktk;lPk(WaH#d#Ngs(j?+Rm zNw^q5BqHm{CsNkYhj?92JAOuUf)=qTz|HL>VG!yDLvJ8MuEHd&n`ofJcvfzZp3Em5 zr}dFOrx*B!3=DZmvT^ezK}^HW1CpUnQ-oJv)*rQsMz=3P^!qoD}xv-aqMQCc5yA~1Z0;? zkZiT-&w4;UkOCr@z&H{#LqB1;aa4-r4LT8OMCEys^{Bq9J9IZiG#U5Gb234P>RCN6 zhTKG=mT{6ZBr%+HD)HgxBo{fu+qe-~$ER|Wdihwt*3*2$A%a9vFHPi=U>&B84(`wr z&JsZl)tW*nwX#T7at(K~p9}h-Ze%Zim$@VvE11VrYbXoZNFpvSaV7bf!$h135WG3erFH=#-`gjk4y6PBn?`xV`-;c7g0!X_PugOC{VGE=D_2Cq(~6$?M@wDU0@ zA|;Xnu--(7kSc1h^mhi3Y+cJ#j+tMQ%LEORK@a&umdIVkC`zdgZK7QFNhfJ!vl9!a zbxFTqxltoebG3C3r>Nj5a%q$@rg9DcVyN866BKdKYGuFvPZsl#T(4D}(K9-k49Swu zNWvgOW{@sd;wRlYM5KPNCuqkbG4zn>noT0@#{ZasBm6L5Q*Zo8G!7j|9?{m*?9-pj zbv!B~!@2ydCnbaNGDn_dDDj$#2SYO?k0ch7h$Zi9F-Lh*u3(xL;iQY1cqqljSZ>ft zHgeqhg*g1oCI*i@Pb6**F_t_dzyMOXh2tF5H1a6WkqBp{j!E>fuHzi_x|$Zc5tqcjjP9>)Nn~5@7T{P3k6r5V6ot&jggMeQa(i2O6;~cGWilH(=7gMHN zB#t>U#d@0>t&}$zAk+0#Iw_Z(^d?z*b>mtmwUO=2lmhX~H4LIn_i;u&l8dQ-(iU7a zaEVf4We#(7wtmg`dQ2u$$N@5lFy3Pp4_Ncr#VQ_VIB{H!7dz+3BSnvp3Hl?|w6c;T zY~)??n5A-;BNN%8)b((UDtY>f$Fk%_WC|yerBGk=R4oNLH$?b9{oiuR)FP7oJB&-+Y zb_%UpT0kt4uv;5-zwS1Qamqw~lc5xHB_6u0I$f^s$#NM>oUCS=Oe2nV;`odhF6i~N zlPHU@6XX^0iK74;(Hx;aH^`?%5Y0i#S*cH9$I>Nq&?!$bg0aSXB-7LKaE3NLOdiNc zVoBCojB$HgerIaEj;G~(QxTvr~q%hgofR}dT-}va@BK_zQ zaC3yivYaqp+e?h$8a<97`K+QX(x&FG@}WV z5?V+l+l@zwXOQKlgI42h29u*t6NxFC=)h(aGC;;#chJN!&QnKF&Xa*#7vrH*UMG>B zas}~BwQj~o70(0q@O(=6#cZMn1N0%{Ax^+kz8%uKqiUdOZpx^tHDrQ+6%#NY>{*ZNFJ%g z>Q+5Plyw*FT#$$G5N5rk;319zddLV$sOC;>rB#p6NCTfpK0Wk22C+sIeHazKUf-q2 zK1|BwTg{}$|KcG-U9=LUkuExP6%AB~GJt-vnc*@cc#y|+lHJC$ ze5;RfmU4ZZY8q@_?vZywc2?=r@&|5$dOLm^nMNk#*g`X53E{wI&F3t8r3*Jh=#LY- zOvgnX76vYB12xoIudt0B=0YB3u5m5rB_o_olAf1^#8HofD59m38shX?D#vCms4IP7LE_f}jopH0XOIOCOm<8#aA~HmxzXFiggUIm8LZEL4m|@2QISZBZ4&XH=-$!TH=W1QCg_xAH*`4xwO-!@6bqy zA4tH|_c+H+q6iZwC+J54ow%7HyQt?6^-;wMHsc~g-{v?j_7g>%48%!``6Kh0Y+cVz zj`IsmG+0kkNsV|YWEAH(%W&pH>XB7jg9FR`QvwE7;5`U5()48U~Oi zSJOzFY{E@)_ze!RM@Q>EU2lENIzF_Q$Wm#gm}ENjAdNV!p#H!fV-fub8lTFw+^GNH z1Q)D3ane(2=s_ZWyfo`%-9wr2p7iBrV+|u1X?3!bH}z(%r<|$cB8wpyl*nY_h}L8J z2d#W8`Q#g~GKjI^wYr~g<&@YNXuQBcQZ1MM#*6wSbzCJj;_$IVM$(`=Fz`r{zDbGR zPbCI#GMhA+fk7)S8i+s`~B>FI0JzQW1E!go$A9Bd$ zU0SI#-lre^tTpW8JOeRsN)@Rjb2Ckx(7zK&n(m^SDB}>xB+`p8Xe({h>*pNcM;SpD zy{)O7V;}e8BPO&`m*~yrR(U{97_U*tXrPtjT0kxJ#%<){(Rmcnt{-zs4>Ev&*l|!m z4;qNV$v1QmHu4z7omMQ*vXb#kC5LJ%DV1ADBb8^dgEfV<`m@|iUnyh}5qNl;1p2TC z0|zsx;-bWmL#me3Ni4JQVwZms<`mTkmfnF6pYG=jHF7UW6cUXBN+V}^k6sKViw*`d z3+14ELlVQSK^Ro&1&(sS9Kk@whriYB>^3gRNUl_;{=q@3ALqF!hshzCyJ#RRyGbE~ z&oHp`M$S_#AK<~Ew@^n7H(}xAFGP|i2Kn?C3#HTQWDEPPQ>@ixayOIYHg?lQfPsXy z+(_qIdEI)G<@%P?GE0VVJ-c+L=F^3#z3Ie|<-|xj2k1?P-oj=*s!3E*Ew3?xp4!5B zYIOoz`APQ^$6%ueh4eNuiO0f5jHKw(RBMxdNd@R{)Zo(%6mdrWN)!&+Od5UlI!?3S zNM{t|^f5{)(HHb0Zu}BYgSB5zQ))a)3R#9FbL2j&RDaj6!#}W#I`caQlgE$v>D1F4 z<5XE!bBN<|Gb0(O_wfryWgg?1OdG9ilMgW%pc@Gj zCC}1Ms}@mDB^U4!vd(jsVjp-U@S!&df_ zNVJ4VB%WBRXp>_4GTOSCgY0G=ZM1}*(53pe?W8;)ugNfy$fTJRQmwn#&UOh?NW5lq zno_OT!*m$W)0bGim2;fbhp=!`hm!(5fuBzEC$h=s1{p@AzNrUjltRfPU;nE|IiYX! z2j_T}Oa{oi#L}*_sG(e=*~KNPBAY~cpFCo;k%P2xEuBOf)!fEJYdVKGU|hsaKRrt+ z2hCD$<*M+TY@>*QbP}u6Sk13;j-J>#OCFK3l795phgr-z>lxfMkwzU3W|F~B8HSw* zeV+!-TXS>^2MxE(;2z0FIVnvPk|}wZnAZK2QK=7bmTJkuOAqy7qruvwyYa~&NycSZ zj35Rtr9|mVTFGe{F1_eu^y4;WSflkNzM@zP87_0MBi16_NEQ33qe!lk$Cz(CLJx!~ zL~uzn*hRZFS)vI*0O8dXeTl#Zs2a<1VdjrGt(E#BuQOGqGD&7(qmSXBHwF47 z2dLB>y~J;Ng0ob~bwrTHYGR2o{wxC-W__nclpE6}k2rPe5vpZf#HlGA-oze`R*8#^ zv45{e>;>jT+@by9Gn#7kVLgu;(~aG%kO~%Bt8MQX8#Kd~VB8|_T7!61Kk)YtTl!q! zFV-UMYle(hm};M3G|4mE&0wPFAb`bI>gXa1H#U8rBHEb8Ug~gT!_Yk4OclGR$H#nf z@vw(hg6d_B7ITR%Eb?&Suom$O$EAYlq;ZmFLefPE;8US2e5IxQ%UWSAA|v#JwN&p3 zJQ~jB;m|i$o*eP+35}Dxo1Y8BNu1B2zsX!)kQk}AFE%@k2km{0681-)GPlX>l!MOR z*rT4Z!!$X|Fufs^Xg$rNx`q~=#Sr;K4;f!cK>hY>&HrFYCx6vcZEluTJW7AQ*FeWR;T6`0 z9qHj4^;2n*Sene|WFUPxE>no71_gPYRP6e_uBDC|8B3h}iD+!}!i`Q>bhx|Z4;;5jDFtIo>#l;LVWDSFe zr!O9Ck}bEBOCFJ!^dSZZvq{AzOBg_m^x$U6zP$V_KggJF>!vV{7$U^Oz2wV7^d?4o z@pmdhd&A%AJpayc1xo@$!prq`-`3DKM zm%lNbWSyX^DW)G$*l8t9SZIttZ`Zp92yp$2|g8e=y$&RL#?EA{T4WAt!nc)+c;{;CdiledYyZ$piO8}oFvd9w%^Z2jw%8bA{MF_+DrKVQbK4GCoN&_dogUG{ z`WE@tdpgo;iios5O<%_?=4PE~KVU4-Bz5X6YoW#wCl48m(3l#TMbyd>9>j$p&k zLs~)$i}^zv7)hE$u$^-4-~^ZGq>vXutjjn?qufp*vFxRcHa$ii zU2-2oNY=lyjVcOAz%Bzw!lj3)CBRlnX{L}E+^pmmnygl9EYF9Agm2SZLwl_ISmgga zG(ex|EDHEFvH3OMe!Zz`n)gHfxGP`{r?*^ZTVnprdAF^>m>lth{gm-1$JfSc;|0eW zGbBGbR+#@au8CS=UPoc%GIO0KX(8Ly=6J`5)rrp4#x||AUun2?zYLd6T5i?pcs*@C zZ0u*Mx!?GLr{rJUOb(ASOnNYtFZ3iyMBv~K29O9iF}R67k|0wh3lA0+s%6@UUkW4z z7rjWq-Hl%Dr<`_bv;{vN92lIVQN8k{jF${fQj3>67)lb8$tRZYI8GhCi6Kf2{ga*u zUt=}#NO){`icSc88Gc#&_&0|d_@M0;-%skQyS8h9`kNyHi}fY%omMG-F+Mj($Sn6d z2j-2gO51M3?Z`HR#!kl@<^sd(=rli(5w5+)MJb3~ZhJ%b$we8ZN%m`vPIX4iH2=qF zTe7j=+HV!=aQ#vS$u^x~+i8rE_oQB4q9B(3JqwsjrhLt96mWogI*G-JgVAK+xoj|&B{D~{b&>v{C0sAVNtD&hlYac0 z{Zvy)1AcNyB0^76MLYND+gcJ@W_{1#aB_IOP7F>9AJZh?klzA?mh)Kp`G*-zH+Ys9t2 z0!fUDu#v-pNqsEP-{lsDN)PT~Ajx_?U+XE^!=o~cG(0%j#98VH z00y1-3A2lGT9`sU2^`=Otvt>s(ilZ1F;vh-PzIApl=TlCs>|h9`Lhh>I`WC<1l4qC ztKO_9Lj$aNObGrxT(5<}xX^t%*n2uyu6MU@@*iPj>nZ;#UDDbXn#)fAht^dZuM6~L zevnf6SywpAY`u*wuCE>QZ9lns*}gTFIzF;}X?Sg^#_PsY_LW9DGoqH5GdXPZ|k&86rqc4d>@;fCoat*zR z=NpbuhZ7TF8oh|qkJv(^UZ-dENN7oTH3tHN!;kAc-)q4ud9WicFqihuPeKoJXUEmS zR{dvirS&^iMo*2>weGXFdB#HfFS1mBvE6H|l2ZMOFF7jpd_=57$Wq1-%@wqnei>($+K*xgf_ZRUSq?GO$4Gh-BUwb@&}usH$^BeGs;20h>}R^<5+k$e zMLbRvbgX{C30{(Euw#WU-1OLP%O$KM(U>=qn=ut@$(Z!G)pJXF`YWYePZrVLrqqYoKp8D~ zyWuJqHMA4dbyU*EUdm}FlUSU*#Ubhl&_$R?92mr4!(b1UbZR4BELsT>CIna=7;*3c$F)fpa)>(OaA0bP=WuA7O?NhlAbJimjLQOUgB!KWO9>U06Du z)3nP?#1UZ)l=QgLI1*9YPpgG9O03AzaEu63?V^%?4-f?g*!;siImc%862ZsJshWrBn)gEz{E}y zjkN0s&ft~xMPh{A!%d79{A3Sk251B`A%v*5u^3Y~bV z!TP`B3HS+c1QQzt*t)T1i*^D8NyCMmGGhM!oD&!AbkGdg2-8Kd`)TwO#*%ytz=;>1 zHsZt~Zv2FBlT760Em<$4&yqnWfo{C7i!Q=AFn|D&L})95g+U0Fo>&C2;lxH3E=lhAE`4|e0=rT8!}N4}YY2N(u~Xd{vcI&tElomRTIo=Bh&I|kp=MVQ`1 zVwdNM0~!es>INvskwOG(XhEsLN07%!!A>DI;5N?UA@iEdLtDWJVOOO-AMyJ8BH3|`X!g}%8Mjp=zG)>Vl4qo9-;>hYUv;-CmBX0+iAp- z)g&Ss#EqRpv=Jhn1l)292L5i;bq5WEs6#MxIX+CW$V9nA;&JI|JwT^COcFMhNH$Kn zizq~I)eCg$OzIJ;@u5;q9~^4q1OZH%@m^k{m8E3jv^v>OtGqxO4xK|0o%~D-7SGTF z7uyH}5rlw0Xu!)1JlJI{5t!Y$f*s)!0i?UfUqlJ%$JArdMh8Jsi6??fSU`Xly5zDw`ttWt9fBQ; zE-XEVkDy#f0xp7t32>TbLJY)>VB*A1E_RIW3W_BHCpP>9`GrQhI6^Z4UL&6vmQX?m zU6|OonpjM7uw$}}a@ujBz$UIB0S8`!%%XuX>DV!uOAH2u*f4m7T6`qnz{XVE$mM^n zdKKmPB?AM4C1m211tj9K%GgVjjKYR8hbV+3Vu+BF3?@b|vW+_Gu`qa&o@*R?WIY{p5lti!G|@yC z{fNd%CjkPKV_=ekVlb5dGw$;Tek`Wo!6b_yA&O8;(uv0*D@n(x_fbZtTuA~EQb{f@ z-9#5k1%iQ>F2eE~`M4NCfB>_|Ad2mT5qSzhbw7T>@)pSmcM^|7CXUe#(#3=&MxYlet79GM_t0zx-Cx z6Kti?_%}C_L=p-tp$~E0I)mS^KrTsNqUB*`lFD=r(;!p0j&!~x2Pd)EQQ1ZxqRgk| zP5SW(qe<6Jexq7`r;sSQjoZkSPv}L2#L0A0#m)ptmB+b<9J!i!9CDT1NCs~(fEf9a z0YuBIsfWD^TXm5VZy zSW@VZ=&O|Am4i6&39^O3cyZ&Bo!GI6A%zIdr-F-eln2P6KW&sVhc4X zwXCC+=a^`u%0dQMEA_8@PP)uuIDX1GCG$wa$`eJ6(5zx z)iRnWy^9Ds*{CPzuqxTXPA16>pj-6-KCa~g`|;wUR6n4OCViEK`UQCmCz(!q)6@Ei zP3+(yvgu*<;s9T= zr9AD+&~~+jOZb^8V>rvWO84;#YxF0!<1k<#E~_uk(O0&~wdB#Cne-Ro5a+awYA(uR zMo`FAWD{u}=OBAz8Ba5X$GCu3hfqr^57U#rTErB(ILSe(n8Pqa#>es$cUb%Rf^T#@ z`ShR%Bjg(Sf>J$Yji8olW{{6x9;JY>dIJ^IN+b(qEDsQcDc8`GY`ubZ4ul`Ujok=K z8WEI{L@sZUK$SKD4(nA)@M;oiT4FpxheWZLs~IKbq+^$N=}kKOsU{}8j!e3ELhfL& z=Ifih!E@M%m%9j2Y0YE^eW)jjDsH3?gXJ5!f(fz`FXfi0hd69i5kuHkBa;{!o=GZ$ zWi?~)>M~qpGM_n2RVQEYiOeO1Axt8l5Rc&@&ax-7t5U?)l9!A`cGBBVkOI+!6- z8BZ-9s<=o2W3AWuhLv(RW0<55(LtvSqLBU=Or${D2;JZY38YbPEu#`shBKXB)o7iPt$p+n~-%>%5 zc~X|j15DRa^-6^FC#;i+k!;B#mVDhvC9N!{kW7u|B%8%z2zSa`BvVNeArkZ{+Gv#$ zW-*kPImZQEPYkj0AU<03U*s{^D58)7`Z*^!zC$ttNJHoaH#^ zz)d{q`U&-vN)7>%i6DYY#L=I8{SYBpM{%BAQY$l=#dli77WPUK1E?d31RkQ522CT2 z3|&t#`?-oXBFsNAl5C!5icAhKu^#oYe;0cR5P0CRy!xz$}{AV$JdB956q%NQo>T?i38r`2?5 z0j1O$CFf=Ny15*#FNHxt)!X)lwxZg%^?4e zsq_4E!UdM_j)gcK5LsM0~H(u<0qUaVL^ucB8hTzdf|ljM}W-UoSaygy;@4}0t})?9OTlpH#frVY3lL@>>~g_kC7kT!HR!-=BF z_R>RC%I(sR{(*1wPrhM_Wa4-7=)qk31@&yvS2@R7z9x=XQniR;=M9<2gPO)cHgYFz zNwrVv9{wUlQV5eWBIsaO>Pe0eiH|Vnu*_k&e#}`^AL4I*)1}1WVmKjmHm@*(rx-{$ zrF_pZO7%uUh~|0PP@s_HM`CI3dYSpMHgKLr`lcSGgoC<{8VcD>5vQD44CgW1 z7v+k5fCKE2#WdpL6Eeu9h8iw&k&g7`Fr}Q=g;XN^n>zAzDh=##T5$`H*!^s!*o4uU zKHNbgmAaHhBKR)`N9R*TsZ3@N8EoSyg-j=kXrkHAKHH93O8Jv^q{s`z62dgR#IlJ7 z5@b8cMCdbAQY6s~lrgm6p-~{7&h{i5^+k$EALr%8(w|oe zCfZD87=yJl`#7v$P{w7Q#~D2>Ye{t#}bk3`d+?wUp+$IMFFF_G@n zaNfQ{9w)V&W`fKUq%zRX=B%!F9$x{*yR(-+x64R4Z50y7XAI87+cL=#O1lG#s#v@nc# zTfu$~NHU4Er4t^EInGTCwHx`0RZ>7E+1!obMsO(A8tQ0~Q6!To_YzAR`wf?=rGNw~ zoKbk`paXG}7|@JfF;zoT4!m5D@2}< zZ!zS9%*Wtpi|*ktZ^%fx%3VMTN(w2qT7Tgu*Z<^uK36EEBrsTC=ae}p4$Ukef=FG8 z;fTy4giuCfh|;5anQEHwQ?Hxwpe9p#bB!FOA9Dg<>JrAASEVc0+ZDQ*17<#HcCV3bDSWQ)i;Mn}YnIWAA@)`_vr&E|i@|ya^)$#HLWy7#B^>7pL4=uF za=0O|l}0M%MZ8=lnR4prLI%N*M#*V}H0$Fs75WE*`$(9xQ0_f7}+GzN`GVD_Y5EJxwhk(t{rQH_;?ELO3p>SV1u{gcC{)15s+3fs0u7Q$Uq{l`^Vi zJUJxt3CAgybEMNzbGX8BDJO*<`Yi`^8x17lVgX33F65+MlHbXdL}^bPgLMl@M2f!0AG%ww!;2vv%LyE!>BayKa-3$uNtF3Skzkbq4oVu~ zbSIg%k|-}C>d`1pa7BV>EqypgK=ZXPr>Wu%(jLlu`~7nvk5g#9!zk3I}wHc`~+&m88c zMskiSGmSL5(?S$2wjZ0=O?R5`=uE)tY-1cZ>Pzh5m|ox{o8=^38EvQW9e)u|IEgF) zYRyXe(l+4HW&9!UNFvR;U-L*Y<&sSYJ*jz|)*+No$QAsgxSo>7dCBe}fdcO1S88Mu zJ&53YDhZYEF*F3qbtiw>0=BZt`Iw%%lxbEXUA5 zf6n5uXQ?5d&j_K38C)htHjqt1onvMMmHZi&?`N zVo`aF46@lkA|2&pYB-`D$fKE93W$;}T#H{j(n6&<%OED(SM@2rXP#t|hKC#ySjz>Ulj*g_9%mct~F-4!``1212xoD#Uiw*ZEi< zr@W_gHs(w(1qfa`QFTd49K)JJ*Rd@ZvXDOHqG zVi)KYjO)L$gr~GWKeLOkX(EkTMA4!_7Pd`mGXw`4YO8n^4Hr}xLbGV6HM2^xTK$dwB4Xx+)tTxGQjopb8Mhc$Mc(nP=XK35gG{< zk&%+Db99TA(v5H&rg8HB4#nkJGKtW>)Z)dBgEEQJ)JtnR63GZ6aZ4*{&m`$%{=-i5 zroNBQIb~KcS+3EG8ps{KP_xLbSZYqlRF15@=eQ|N!0A$$^8Y`tui2gpJBfQ_Wq zKH`7SbPV2Zj#3%@nEM4?>OSGbNtkbIpn*&FJuK1wH|*W)kax`?o$tg;R|26&&DS!_ z*QDvpZxP$5GxQ^Qn6oC1dQ@N33Yu&Rd#N=Z=|>Wk^dW{ml;gLL>2fZabm>TfxQQTA zkLw0XOhEdPK_h~(A-azWvrN7w)Om$h=w;6E9v!tcyQr{(bT%hsvW%w{W8_7eTpt=Y zmKzA;-M|{BuPis=`lNnkhG~_|qm};15Pr310$y{Mb~Jmn9xZT;pFrW=$J8C#{^BGM;H+9b8|_2Qq|d`bgk&eO|Wc9QzzTdgACiuKngVdE9lu zl(WE{uTj$MJ#Blbp9S(THH_p%EPqmtk84RJjK?@awbrBf^Bu~0`bh9Dj1JVlSN>FyZ0);q|4Wj8lJsyog2mfimGI$XkC6HHHM zjI5V7fg*iZ=Qe)he^cJ9c~Jhxr1--@`Al@Kn16GPf29r}!wI(yvQlyxO^$26`B;y+ zuQ#Wq+TTz2>)SR#J8+Hpi@tcIK`wJGBWXhzWB8dovWO;F_HYfI3B`b{k_n`%| zqKX!tr#}fCq8z{8&mPJ+P91(;U>C*2GMY4=C%Bh0`t zGwCK%T@#!fQ?7^f2etONeP4IT4d#@tFyC`j?xHh^1WCHY5~i1_l_b_^0fzP@N*IGk zP(KSfOeJH;BAO)}&{C$-TViD-O$luNXj?XFTj)!95^I%<2KvvrbAThmrzxrc4xQO?`)s{a%F z2PHCvx7njTsnf56W1UvG8An&X30%p5@!mkd(;JlIt8agLE@%`AD93M=+TPouOm&fryWTN6U?YL3Xzu z_s_Sh`73aT?^#B+d~9FRHBHgJzBW}hGFLv6ev+z3WI7AANZymTIVqhaMFuo}X9vo& zk<*;dc)`EW9w4-3EG2p`Gq^?E&I{&7y6emO0Am8T*)ilf9ZeK>NuA85JuVdGcg|45 zDT-+1L59POtd62|EvRWvBcHC1km zEa9;JWFzbX?y*&N2exjee+X__q!(GP4LVhidS3K(u#XtGIFiI1ls`j%l@yklea^p3 zSF=Vrtzqur{iIE^CagYQ$lR^abv|wq%hmX#*CW0RLh`@`N z0PirK96FOs1RFU+6(!W-(cfsKMGniKGMw?WCyq)yc-ccKUQ#1D001BWNklRU; zmn7$5bDeI|27O(gqP???v!Uzxi&TEmzx0CrNMDx`f$y}Pdd+ItC*QQ(V&Bnc0|j;x z3tA%mC+!=0lnnoP>B?J9YuO-!2s4M}b~*14*stW1hRHgb+d?8ti0-^(fdRTA z9u%$Ir}&337t(=ffDFKRoRuJ6mf=9>c}NU*EyY8rJQ z_t9H^me*yXR7y7)!BSnPk1&M&{B2_8J(Fg4s_GCOt_?aO@QyCyYww+b_R=wExbvj+ zaK5y+Q)E7t>vgBhGm~gxz3ioekEzA0K{`jbayt>6mSP%+&=&gf9e;5zU3gsE@fYiG zQ7b;KX8F9GUVHT}aTL{6(R@p?fKmnQ|w&x`cz2a#%W$z-ev3qc?JqQ~$WAuR7-+(O)>D zr@4YhI*?7Q9^pLIl#ofRd@fH*U;f89!r07Vswty^7JWk3=|#f%f@4z8GxX89{7C^{ zbD2h}Xu^*R7owreXCKcpj8xJ{qLKrY)68y)sHYx_Y9TH7B#nARFVl#ZU3l=(o&-WT zM-5)akxmrvu$MAo3BjQ=8AOmyGk!^+2A}>xAx&JO1|OAp@LhGb{;9<@&>0Bjb3H`` znONM^U{zVBCxLi^#HBw{K_e9u5|A9yh}JDM;H3e7E|3ph-PMB>8eT252L57g1ZF3M>pS)vH$gjUm}Ybc~nZXk`0dXl45 zkW3sQ+)5YXNG1#y*~AdSJPuIG)5PKCc9Mya>&Yfc$MXyM(nk^q(fN9W3dWF5lx!fC zFiO}<1$FpAf1-c}Ac;`w@uIAxKTxO=z;T+%Bm$R= zAo*(c-OCz^Y33vi_!&hkp^POB*VUW<2Znx!bJXfaO7QS2#Wcz|X46f-U?yAbAMB&d zOlK}VWI0*HFpmzzu#+-cFnIAZk|e^IrF$vkL&+cs(PcEq0ooAGAiMDjs z0xr@ZH`0c1eIEx$UZ5Q@T;OktS$K81!(gPF+)g?#(G@RCv6Rb1k_crN5xDFDmT_5f ziM@)*s*YkGb&^92Zu^3+=CXF<7it+r9HIP zM!QgAo{=Z$t;zZoMqg(p$IMquCdE3;C(rpnHqqDH*Y4CKQY`(6k`DZiWegiB;%6ce zyN$28B1`B=EbpQqTgV_>wlat${gqO@dXAllyoKUoH#M~IGGRDad^ohh5}=MyT>L>5 z&02xQFRf6}N(_GLaTA6ip6II}ub*HHjTjU!E`q3~h9+vUKng*)@Zw;&hzmn4wFF4S zhoAcY=Pm!o=o}`K5L)y+wfHEdf;x`iCYWqO5K8c3XeILu^7T| zh(!qyMi4FpH!eI_Ac*Lz=%g19UaXd2Kw1+-&_AHCmf*%E88qR=A&4M~usB*z01x#T zLhuoSBWcvqKqyfJODMqv(TOI!#9xK29bD`tfYBzJ2uK_O^q+2k#1oH;EZit%2rf#n z_=v@er8|j)a*Pt1uiCGV{67>Mb`trj~#^IqAv-!|5?@0UueQ7Lx?9*$8er{LODk@ z|09+VnL{j=N_@C9o%8s3jT!>x9uf%BejKBTdcp|i2HF#@rIZjLk%QE*fjXLa4i6zZ zmoU8AjbfBkF5r`gNhL%!lTDZ&A%q4>2@v3YO0nXnACWqSlQiR@oMtv*aqG1d&_WHZ zamip3agl-_FIluDioQhRryl`)l;c6fM>m3biVIk-r5QH`G~w5~C?UW)Qcw)hgtC<~ zTKGdo5Xv@MaO=Igg(_J{F2QmHH*RguDLm}aJv8tEHCWw62pBhEgy~PzVfY9`FrBEw zBaf0qFyUOLkyC^d1cVdHLMpKO1GQLrf{sM;2cKB^f?3@)xE z7&j*fCzuezakvLC(u*j9bvb1;>jX~FfDnse5gt@$P(TwiD96Jdd|1M8!Bw+=InhK= zO9_qqgV*29IcjKw3m5GOC0HINhyaavL4TkY|36M;3jX=~6O3CwqG;VXd-Z9F+epIp$nl1F$Ck{OUh}ckxH6q0fa_^adRsrcBrH}^Z(TX6B z!{s2Dy%tcyt-%cuh|R&`Ni6nFi+#c||&C z3?7UQ)X(&+=Id*ERvsjaNSPBvcNQMi`M4 z;E`cO5zLol5-!KdBvb;@kqG@$YiW^q3B%FnwDhW1ES0(RM|hBPRLgHXNVZt6C6QbX zQ=wBiPm??@&yqt6*AvduoTf%TU^wxnlv%Ws)^fjO@em%Y{K*(%WhdQ8kn4!V#dXBu z!i9s8yGbUL`w7OyJ+vc4uc4e4NhgtDJb<~{d6~*VYM9Od66sAYF?1k~5a#Jws&$my zMx~r%3~f102|gYs8?>YT$`#_srIspcFm|sF(Qi4*SfbfXGgs_7mU5A~3?M?MvW7BL zS5qjfB!yPw5TJ<(yiZs4>RnutRI>5uD%uiEHdm-)6D8#99Ws*hGLw-+$XUjb$$Y9Q z)GoBe;W|dpLE>@nY9_yPLVGYD%MksREd;TFJo?CMwBudnm)byR4#z z&ccUZBiKiYq;LYEiX`Igvs7_NX498cr%d{gV=Jg2I#8;s`A~xO37X}3*+ozLj2`B9 znq`WvXDGQO8802lViJ!@FV+B;$z`9O*4aeRAotOzR~U$q;rv9cHpv7TA#F8QJ$gpo zlHM}F{z$o=kZ2;LkAx9Vviw_*(-629)iU`~y5bG`lLhjm_i5I%!Q4wS{bV&A7^(TX zi$k>GJOkwrH=Ld}BP-+q#z+daq)HrVG_jr<$|Rg- zBKcJhaZ;Wqk4pP3E`;YZt(n+-uj3!EEuvfRrNh+w)CFE1985p9R#iUEJwqYm} zbr;PP=rZyoi=_mJpg(7+U<lw9y0MgM&gwNJP%2Y6j%72Mw2^PQpPTdtD#+&s{P?tn zFcKw)Vf5!=1`@~DRFf=0q?4^jP|oSiT%nv#=t79zj6)JuH?fWgJd~-(05W7E<&hAJM)bPMfhuLEgfo9ri)4B1Pwo;3@kmn3MFp3yvZ>lWQ2JqgCh zIHpLrvC z%O|7~K@2Til*ecyixQ%7QAIkb&S-As6}z4j>@ibG#0e;WQObNW=prNV;g{zrq?k_$ z!Ac|X`1KqmxT(ZVjq%7W%+N!+leMx`(iuXLdT3;_L{XvBbvyM&=}ai8GE1JeFOj2{ z;+Boa%LRx_L^NteHgB1Uh= zM;G@aWJ^2EpcTnlKou^zmLQ^a4(DigcF|E1OctRG4jiHxulz|m4SY=u(WZ*FWCW6k zqs+A9I;OFLCU)y-+A*FFxlEoEOA0mejaHFv+fk0k*-sYH_5jy2Ln5Rn{hdNC<7Nha zYDgxIIz37QezRE~?Qe=>hl?eW2rxC(= zT`Y+-s8{Q0Yu+Jmm$2vB?6L32o;(~3l(-D(GTb z!u<@CG1|y(-D3uj&NQ9(BbD#}$1^fYIQBT!ahzk1WAAlvj+s#z2jN(e?2u&dd5(2B z$KD}CAQ?GY|lnz2k=jf$tm@vxyd1Ai&8$uzDhS(j;Jti`MCLe=g zB&8qX8VmaTt)v_{x8H!G$?x0?Be}5 zz!9mHAtLo<20XEAVd7qucgHu~I;qu1`4f-QU2~g3I9WU7jr=Ffpba}g-Cu(Cfs=|1 zTlQZk*%izz@CLO4OP4QD_W*k^r9 zpN*MsMWRp>?R~1R+P-j+yrrz^%f}UF3TBrOie{mJVN?yT;{47(l>xDbuCnzQeQA9{ z6q~%+J810DA%IX=Mi$P990V`(Ji#2{mqm@S;F8z5ws6Uey&NFT zx$|s7q$equ_R+Z?jIEwV)~HijcxY=;_u%1X2StbZdjxKdGU$<(OrB>WH7(*k+VbstU` zJ%W{3+xxBJB>pLWL91vU-}-7+Zf8vW@Iv{h?A%@zmf~C{^d*3r46FC9E zeAZ*G?@pS)yQ$0J<#J4GUtbk4gc}%=i3mLUtWVn6^F7`af4zvhqYy4b7^|hd1vXLG z->&;nc$5eaZH>QkfbtP3{E`xVJiA$p`PJ!kDRY6#mEyxa2?cPySl+xCM*F?cU3i4s6VgDXRi5x7qS>YK#U)tMSDM2 z8IXU6@!0}}QO%;;IpQhNNOTzk);3czH$hJMkFrw-o{`ohi;|NG(t*_)_5PbkAVC>%N~z-rISX6p=G= z2Nol$*Flu8FY}KSRIS%T`4?DdEJsR7N%9eiboPiGEx0PdyC%cXDv7?Q*2q@$7fX_} z6h$|+bZcVuA>bp-RtrQEh7T0qkUGaaC>6Ck@{ zNcqx@HMxV`d6c>3r~cbUOjf4S-V7hDQG%s$>((zG`Nuv8y7>|Z5tz*koz4iZ&U-uQ zZGI^JL{2S1wkMFYo?+Hg%;Pn_8tV9vh4$0KMES&5k#NyFhaw+I1sQt~`;P%7kfzZ= zgR|@y_$PUrx%)*s2!*uY%a%!z6~_)0b+bzLLt?dXh`jw3IH#G%gx!FwPa&DTEobky zLMZSN^f+dqzwvYOUhGOK$OUa53w0s`czP!{J(sd{yjM##(fN$!nxR44~!anJ?-YxPD zc59#D;L*JtEBD>sXO*EwQ zY}9|@G>_dGEUcG#OzAAP^}7?UH-DVEECQ-ceD1@IAwF`5`)L1pR(X%og7&S8Vkx&k z#fx289O=^?W1PS-UM8;cr{|;$oR&%M`38HCfl}b-XD_D(&8>sUl<(fXyW&8J$A<*5 z0@fa$p08k{<=>ib)1y;o=S|bcSqtA!vL#S&bLlB9>wd1Xgj^)C=}k##=yUQ7X*C3= zN-x|z#7|-*Z4wcnXUx~GW+r~LPS_e!km>umubCP4>4tOu;*5E(2Dy2Tsft=+tds)A zOmpMlotvtIfC^gd#zOZaECUNH2YuA$jsQ^ zB|V2Z(aVjWo3vEh%c-Wn-mTvYM|ESlLS_gC9oAA=$daj72lHd%+-7$7GiXjtOLAPh zyS0?P!G?*43jZy3bQhg{gZ-^y3~5p(1QeILUn5T2e!FkmXC|jUW!y&h@wA5=k9-IFqc_C_ZkSpF66M?UZau5xZ=}Vd z@`llOtS@wY=h55RN||x3sm$(yKDsE5caKvfA8!;t+Gf${>w)}QR6lW9q=nP&nx7d< zY*658GrIe`97}R)mmW?r9Xj*g=Xv<_-QuH;I0b~5)2jz!ArV=}6?pcrgF~q(n@5{; zcVHgv=y?78M(>4bIs42AV6mcftgS-{i z>uk)qW$ zG)lmk%-kk4fQ!j6qU?KQ@@5yKip98RM6~}?vo8T9t&8_wqSk0p3r&OejF8)(c2}}8lDlO(~bJRxDKB1%!C0vP05PXjDJJ2(d$<~galq*;G{DD9= z{Nl8Aua-yq@tmU-LYPO0x{-kK(5Ew_URxex=w?AuKlQ5q9+db% z+A1;WReHWsr`U%%IuV7{ev9ZWoLOv_p`Xj!pkh^#pkvPr4{QHtA6YK%aLVdBW&YKu zDq;BNdl@62*Y)jn7m1C1+eaqi9qT)V&Y#(o`}*n}pQmDsL}qKx6yVIGv z`{#E`vRgN`x&~j*dSDuqUyd+fKxZZnv3`mT?C11+dmm%^L*p59C~Ar?Tse^RRJMKo zR;q@oPEIbh`P=vQHY(QT*t8jSJ2xVT;37n9^c23@@Ub^V$6+!;! zgcwXx>vqaURP7ErIug*+D$ue7Ryye{a5^~>qc0P_0>jA zEy}gMMsZU3PVAK9=|)Bi#kAVbqsfC`F1?#=$?Mr3-$nyMlruD{c##V)e7jzKfKIWS zk1@e4AgqIQZONCb2KxL~K@_YWSj!%6{Hap!a{p@<{BshPCnJW~EzsE9S?7fK0*7YF}l zf=gEH?l^pWyR~Rx_A3DlKGxapl}L7_xM{1ZWV6=`l=z{_0UthJ{L&g*5iKYVicJ9V zu{;ori9f!o(tP;q>@xe;zwU*QCdIor?VoZriF5ncuOc4bc%Fe!%nP)2%CAKig~b00 zeyk=lA$7N+eO&9gmGpg^|5*PN17X7~gIV96qlE1y(T;{BQ8f_@nJ9#dL6S`FeJr=U!E6Wjm`Y|KQj_5^tLCMHm1js;*+7 zE+JZzBa2UrD~pfl-WeFFNemsRjoE1>14itQL3V~jafqE_P2$VWRG8lkGib|a=&69V z%Kk~hlnUlyQPD=_!* zI)6|}q?7^6ukL9S*VM9PJ!8!-zpJBq$eVeZg3pYVlWN>Z!q$VJXa_=Z7&eVNWwsh( z&C(ffDmFAF{;(>Cvqg1y7*=RQUcB2DG*N06`YV>cZOGvytGL;d+_{n4u#}vbV+^%x ztN#Jho~=c4^3V0$R}+W`ghnM%B-2fSWcJAF_sddywQWeO86`hMYnZp}E|^evl8kf} zJh`h{|CZ%MKKAYpbjQyvACDgo87ef|O!CL=#h{anW-IhgA0cno?XQF_5NTmMH3Oe3 zcS9OJv22=dnrN<_lr`rZ?Q5DtHTAF+E<+#gi{o6I^UKoZwu}i2MATWT+l6j6O>eT2 zp2m>Ep})U>Sl&w2q3WCZEh*_*fgmy}#&1JCGe8|n%yGc!Nnc}>3I;560LvW=XN(cF zhvIK=L@rnevp}1(MO(JiA-ysz-fe!)OxpYO7_eX^{Yb9h?K}x-qZFt<7#zpH_SCxu zgAAlF>56_TxmD*h^-m?)095jf8O`s>qiON(8I+D0Lmp%k9mv{;UK>lIv8F+EJvmxF ztP)IdUj->4GyuPSg9yr`$((C^7nrV8MDG$5ZQor7)+rpEpKJPCKWDD=BV{hUN1XGv z4rba_Ea|LB3A8ln4?B%^oNvQFRoJ2JPBRQQo)#)FN***|qD~5?3_B5=QZRu8gsCKz z46$xro7$@?5%lZf`V*LH9@)t(U7L-5Ta$bDY05(dS6RAi#=`tdL)ZjfCK?e#n&k@f z|Cn7;*O`q9?pDx|+d^QVU;wz`B-r~UI6K>nwP9CrO{8FwO3!J^Fo{;Q+TIG$Kk7iH z2yjS4Y?K(pcwLP=e}Zqa2On~1E!k&fOmTL~&CjKn z@hMpXm$>W(yGYhsfz$%K^;KyvRLs?BcLXPyNhz}`Z;~x z+Rx@q-=6Q*tzTD5hLza#1lDWx`Ad;X>(D3Oy$s{rXy)gSUl!0HN3x1NJCmKx`CqgY zpjHoxoWoKNE{2_Wj-_5%3HuO*{v2zRl5OhmZkxT1(&6SiyvaxpL;iH9tEFT9&~XlY zbE5TUZomq~bybBe%O_<{y{oTvcqN+vyd>O>J-o#|bVS1x=jU-NFPCK~UmT~GkFCgh zc`p#B`>HBPP8DwLV%~l$mRaqfYIHmF&?#Ya)wG0TI#b z>{n&_sLJ*WnW?Rx*F5CHMKRFmsz5xaDfUwMfu_C8sfkjsY5I5@=8-Ku(l*Ls6M;b({QFFG!Q&=d0 zHvkp!DWfK=Uq!p%^s9rEv7h4USw@6tc#{O9e?n3Xgtg+Y;S)3X7F$}AmzmK5simqz z<-SG-Eds*^&?vYevq*yoyro_+)&Lfp_6<%~ar&F2$0i_#77VsFs^y1pa2^b;x-0u> zoU=0C_ykX8h8WXFMaCbjR5B;gEi>ywUEsycK%`*|Fjh1K?0OZ`Byyc8k?SH1%*xA^ zm0%{v=)~e(ofhWm4=|xCcEeZPq!nn%j~Fn8unI^8vkJvA0|faw>w{TFAdH;s!DVcK ztm-exlo?^IW3>sg*H3?sX^`vV7RiFu@MH>LS$1#_+g#?9ajb0*^2WHcD1VXng^|$A z;}kM>j7Iooif#z2F8royN_h;6niq)nH7Z)*gSb5%7D=m=BC6!5Aans&1eBnuk;k=Z zD*J;TYD4-wT4xCwzHP05r@4@dz3S@@(!!-Ge51N*>%0+bADl&Ni?>ve|7qL3JQtbz zbSwfeg0RMA!P&?)hdHSNx$8`KsQu9b$gpExwe1<3%vFpv*OFvy2D4rCwwc26SfxsQ zSTs;_Bq!1087U)p>?<0eFU%OFIZgpORDIgA;nUXI>C~1|ZtM_Hh~RXY`lug#!0sJ( zA}sFz$rvP;4&exkMzNr&PvS%5nI}*T1dSm;EX;f}yV~$sRZ6W2LPB#4nh@MgH!fzF zGv?ZD`BfJx{yICx;@yU96H1?V`%T#Gl4?HT08_zRrb8@>R(@St_`#s}JycOk8PIBo(8y1pk``T|UmkKr^!AF)l zjhizRhu6ip%=+Vs-yRPLr_nJFSg^UPNT)9ut0lU`2OK}+>VakO50xYqzXsIAefhmM zqsx^ikvv%aXbzDpxa=xR-x*eDtQXdDdvncbor4D3$8upCApoUoy~Ue!0A5)!DWaDv z4US}+qiNA_i{)fR>7vCSb7#@lhF_qg;ZZyv0U z407;nP?BWN*-zlyW(@gnk-Qum)UBPR`|WbPw6^*HdKP^)BM{7Hb&A6Sv%FOKyrW1M z{=2XYFH>)xdDR$#GLd)Dn&;3nbnixcv%l$Z9OstgR~Eiw7WxpMFbARRD zcJ0z2((#6`RUMhZ(AgP-vg-q5+S9eYbFrr26ngN=22z~9sC>!r*;D+ZIzdwor>`cQ zuQbfnEyev;gawqxL@=qP=0IONNzLE82}85fgYgH4lz+E#;msPCKIE|Ol8%5~8GEn^ zxAv-sSR7*6p~1UAWx6t{8O`1SOJM|tX8b?J40j2u;j23muu4JIhm!E z@&1Ln;&L$Zya2aiAuQzGe+elaa7cBN>ojX$_j^SqGvKRnoJLZH5v%Qs+D<|g48eL@ zVtgcxBd;Q5ubZW}e?}4|x?_K}eD0@TMR-WRYr~2x=}9_xm#6*OHtEUSa7$G+%321L znu6!V<{ZL4He%Jeev$(_4w(~(;pwWf`JESRxPaKmDp&Ref^ zaPY2Z{>cJe@OCc@@B0+-jHJ03pCfnJg|f(b+w6W`5ZQm78aJTMvL(4t8&bU_K3vAR zy>Z?s4IX0A)S-G6IfbZD%YB&J5(_4ES{cfXHI@l@?r?TvUMQqVYx*+HZ*^ICjEAMJ z8#*m3ZAJ0Byx3cn9J$U9o&4B8Z+Oc8{xGKs7CS$qW;SoB zaJ!H0?S|;%3A#2eoo721uZ~G9cQKMjsz$#+3A_a6_eULPoPZy}Le94($sgg9lJ5Ar zwVk1s6U1r)#vx}{)S3J;m`Q6OLVZF7k~MczzZXwLs3+OFs>F4{?$nI=UX~gbPE+%x zrgiM)=(5f9OGX@udUKu2TSgEOt6Yt|0f?1w!|bYet=8{?q^mgDJyeCn*9|ez1t(?s zI~qvHz-^#8ZUULN5apU^P!0HGP7pl7Z00w(?~AsQdEC*JI>&=Pc6 zPwa>8UgEa4p+^KY9FZAUBa%BVDdyUU95fn2F0j0k&t?eR0CuIl3@_%bYfWOcNaP;$ zAAqHmqkNs=!VcghAjv;S6=0WM?idH8;Wpq`dP$x-`Vp~epT!50ThrQ8VMj%%q1&;6 z{KQ<$nATZxIbQ53mmqde*mvepQwj=lbgaBc_d}-2>iMNye4$a?tL>=6>T8^Q_|?!N zy0&OrApe$Ru1qrXd$V~fDHDVsE{0V4O`}p#Vf$HtrR3Sm&uhw86t zR!+KnS{-=VckRhl_Q%eAoQ+%xNKMteR|BD;d7`X!|2jKb9yN#ulQn+i(?9UlQ3k`P zg@^#4uhQFhIk|D!^xR5NcuY9o-h7o$en@p40!h{$;Zs(p`JE*haq z&%@uJP-IO!eU+r~&{bTFWE6;~u=I>kDr7u2&cr>pj8GRknDEz3-^JcKD@z`03WB0u6WS;LItA>m~iUiE_ zxcX5jg%vlPCIL)jP0u?}%T;@rt-doTWS9Bi%{OBi%tW=4};(-D#GN;4O4zl8u`RhYD?OqDKi*Wh(<1gN+mxg6U&|I)FjN?>p!+{5Q#W+6Cs>f^$CRBxLeB&@5LDN5-Y)dZ{+4EcHot*>cPomuTi@^RJqZ zAW|i_zi`8t45gqpVp)UW4I+4#-8wT{-BSEaotbNO^c z(T-{8H%}2jFO%r&XJ}5D=Ly9;ZJ&`H9fcGO9e=V%aMRT0w;P#Simh-)6xg8&F3D9( z7Bk)>Rcm>bKFG<8=^HKbC5M>BfUfC^(}0YBW&>1Q)6P?ir-}c|h1BLC3zf{m>bLBC zUGZl?mtyV-mBeut400Y?UuDcB2;X3(kt=+@4gO&4-W=)k&OFI!D8rUoAp?6M<%6uM zeVb|k`8Z?P=+|$N{r)&_OiTlTZz4 z)^CbuKb$wgIG98mp3KnKGGZ5Ne#AW*wsh)VrWL23o=M$AI`XbImTcQ`_c*H1XmU`k zCM*`m1*gt9CyuL?k?KbwpvTJ}v;C^@R^KX$;daA4Bl0@2|(F%^@{|?hAjpl@^>WHITxqohk}|3 zjIi;a6Ev4Y9fb}DEy>_>wb#Gp1k{f{A!1K%{PI=^$bUo{kL5ibC-Hn{(DUn6% zjD~afXi2(VlC=U}cuL{q_1 zCrQt1T|MH;L0wBP(mt)Fm&XzgC6T9GhPi5ObSv1dbeA%m*>&<0$f!BC-$r`oQGL}2 zeITAn5|U_pR=fML6rH_7Mj{k%PyrXgoU{dD-ok=W_M#vE63Y^7?M2
Zc;yYR?-s$jFsv6@-}Zuf!OB5tzBMwci&)u? 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

wNI5N9 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%0Dl}NlKX&5b(a~cRYEHaGVyroVe^&ZZ$ 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℞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%0D_6EcDr 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 bR9f-V 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

uT*e0xQMXpjjJ+SwN%-Dko{RF-WD^!-Hfvh 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έq;cvKQ) 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%0DcUY+b=&D%#;@ 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%0D>~_ueX(30OH>% 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≪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%0A9<3AcU`2ck`}>juM!#vmqbu<9 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 FgnNA)x3=-r#%1L804GfWi2M4Q|K^_5OKq(ox zSMMgLD(*1icK~mfN^3yNW!#d`=w$HiB>m^C@IIKM{yt9$Tg}N8S!U zuD=U>9~sc|W5=xf_*lJMrtiltx8CHD*!x_pFG{7nWll5ScC?$@B||*2PTH8tQo3m6 z6j>_k__ zZHyxoHzxmPA03P$1vhsxmmbEq=*Kz|>b%H*_&jj%k;WjyyB6e#tekMr~NgUU1Mr4(oLY{UIB+8xo zB_}wC(WDV1ghT(JwQLJM8cEk5b~=Q?jgmdXUc}e~jI&8>2;5x%H;jVajie z>x{+5O^#KL+2$#{$Ct80^5q(?mBTzJ=gJOwg@=uQa|K_!svW9j1SN6%K9|WP$>tqBs9pR{=1T$Z=^pK%hJJ!PDrZU= z>$Qd+j?$?k+$U#9iLB-fO7$c5(kcJt8YXiOpL0y(Sm$&KNs;m7;3Hl$eF^_zKS#Ay z{ql+o$lbWPoo|?Fn@L?5Z09(GTBU#2AIT>PHxJ8FDPxEsqU@!EAx4N{F@r)<*i8ci z@*dYQMIYg7YRMrDFOTWB)Wu;7*(^6RO*e3qULMm;)H7MK@zJb(gxEuy4zXGm$SAvh zy__uEw*M7Oge1H;Ih_hp`HrLXQA0lgd6eahWemA^IY=Xex|#*l@FPdG|9 z3n(L%apaLi9i5ECu_qhttsoblu4O+Rayio};9HK;r9pzksH2a7T*5T+=wXO3iy22I zb#yR{8z+Wssf>VE@dR!VAf&U@!RmtGAhX=MieE603{^hVn1E@>0po$OQ|H= zt|O1fk$$9seq0C!53-!mwx_U`E&{YLNC+PuOupnWUGgqhF-31@Eyt+0p=uuqdvcUf_EgS*$4z0IszV&q5xXErB7-T+UNVUi0m-=5l$RZgpnRdLPLx%|29{pj0 zSaxxI9?7_wBsutWxxS(YNWsLUiXxI}XMg}-Q)9Qj7_>4>kYwCA?Ef)76IvJ~!bT3! zNesijMUp@+DL6SnJHwQbjgK_EB=Ft;&peulAk3wL6qYiMbOZyF4OG*M2PcByz+^8c z@pB=Q$l?_8@bLx5>7kSq5(r^n$dyc!xPMagRkmxpT*@@bW|530jbc)8vtEzU&y%u( z3LE-~&&*+B#PDEZ$jzKavA$}Tu#FIwx44!moJs{5Jj-`9l8T8inL<+Zk8Ge$9^foW zNyUScbsVvg%qUA3Lz+DT6=dM$1U&?(qZ2<1C?k_~9HEo{a3vG@nR*6nRA@6N=(SzW zo%9nSnFNIQI7kP#vVbCb2w;&$5)SHVXGG4GNn~pW0YaEqAhRhaBW{n@-P%l_jFBu7 z8AA>}W{^h;DWs4$li)y;nPZ6o&wE@lLJgr;h7S5oY zMNE`j8;_4;ri*1fS#k@DsL;>YOPlc*;n}fg+f=5W+;T zq?Bxuw4P3eP(bA@swkj^K1P^B1v&q7#G06NG02E*DjjB+D5)fpKnjVt7$!v2hEP42 z7<3aLgclPhBgBX>%m`6VXA=1+iqb$gei~?Jh`5(Jj#2h8LWnGUxNNuV2q7YIuvxcr zgmxKgJ6_#5ZAd$x6g)P(7zfu<@RDHftAl<S^-JAJJtt_RpKOxwkwzMB8!(OUtBEfBa=KJe zh!RD$gFZ%R*FhWT^y9&UQ)bB+vh}Do(Z@IJqLBA{B! zhrRdsdFqgTe%Er&2~HC+K952q7%`2@tkn+afYZw6XAEMu_MD z!$c&TG(7g-6W`_uS{bl|*&~FB(Tkq|$t2=pjebupo%9m4o#=5a@-TJUt4;Lcw|g!2 z(MT^_IYJw|XrjkPlfTnLw9}8DFn{L@stFUqvf=5yG|;bmIq`omD{rxbCOkMW@e?CT zln6?r_A*SCB;)3Lt<^3P zhya#UkpI6RMiHra^jnV5CGjxWR0>J40pbXXWdq8s^b*v)w9qG|b_<$`Xg%!=(@TIb zVInBq3=y&;fln2aWeMB3;kNG=(;c||u-j|U$n8F+Bfji2EEtjTVi{6vj*6K`o6 zORgl-M2`;B#|RPfND(hx3~A7Y=>gm5AJe@w(`O$$KOrJAnNg%_9c>H)PKbAO*mv26 z2@{h-GVy2!eS{>BG+c}(ha|fVLvWy4Ln}ivmOPS(H^X>wV^T{ye)37j%azQQVvf+l z5SgUfaahQgbi54c5MfrxGzu6)Hc9q;tD%D-Ih8SFQf~V!`v{S2ufql~jzUtnh9y*x zO(JfF2->|Z;3q_s(_|7k?ALnwWtNN~UAuIU5K$sna*Zscf)4zIXr>!KXEBj{ex{xt zD#<6+_KJ5gNRR_G)5~OvNT-JYA^leO(O#bEwK_RejLHn8l9rosAW73+WC%hYPn84XevLlOMju67FKbC zB0l3175WF>!1H=V%k)`7sN++V8m@DW1~ZT2oX0`}un{M<+#nXwPk2HbNR*oFVxLwqnmFTe#xhRh5kj?< zE-G1vNj}NcW3Yg1GWaXGBw=F3Pq$M?nLdb6Z9GCO(Yg;eO}dLfyyQz6$v}RfhaUZb zK;pOsKa|x3V4;mfNx_e9+I1KKgvhN7BUK;bs_xWDn0SjpyyVJUtkju55lsl+lSvY9 z;iN|vl1Vam;ikgO<0OX}gcX0*(}+`wnMV#!$VkR$IURJ9L^OUnmK$8*2b{$4Dp5Fj zh)hED8ye{{zUF3Tn_V1Z5A%p1fE9$}r^{%?DtTn#(j=TXVYh*Y_Wd9>n9h(4^R*(P7eGzRH* z&wIEQn%GA;sd|!Lnwd@z!PGE-I32`!uJR-{to#{o;27ET)0eR0z)mCqG!a4oL9}|1 z>uUZ@0150PM+UM4)fOF$om%||9oS_Q0c7w5=@Q2qwByj538qsH5<{HK!;4t+bDGIB zg*I(9=948OF|py$zYvR1gD(TvCeid~me#Y4XC;;4GK3CVw1*Db#X&G>T1Nxtv_^X| zIV`Cp$~*L8(I04_QI<1|p_)Srm-Ruyh~#~u31S~6hCG57p}L(yRNrPIjl^T8fdkai zAd3hfL0%z;*}9c_u1Fe-xJNCNQs91=&-k9t@Z|<8h$BT(8OJQ|;5=yi=fKD7z z&fl1z|K$ip8b}45azB3f87G-YfA{}5%VEk$!b&$a++a1~xMecQ%;!N#k{q3&*R)U% z&`T#DkjF_L!516H$RUMiaS%-}k<`gR{IKbhI8bItJpD<)N3xiOXo()cUqWOkzW7NF z12FYg_G*zrB*Apz#3ApHEkh)j3}(7NWtBc6zY#{LtYfwemd8osad#vK_?S&t3FZ)W zTBxfDlcmPj%wR54aB*E1Q^g5=ks>PPB>ptAoLDCEUy5mEA%k(6BiOGy8BLGeYHZ+c zMsPPN1Zo*wbn**DG#QJzkB4;yTloeDF$8Kqym0F))Z#4@P>NYg2yV*hCPQAL2`dwr zjh}qSU?!V)^BbG=ZmOsiFQQ46FNh|A-*M4uW>7>0C-5cG*vU|a%OeCZ-MyTXe8E`a ziINBD;Vl0}u*yBe5^Wx)nM5hZk5E<+O0#?>ncS%hw3t7bfsJhAE}16J>n5t%sa3S= zRi}51YYDU*O-Dob^32=^^_>SlB-`3 zgoU4I)-zP#FOy^g!9?ht)aY535HBN{KqNi-75izIspR5kj3b$$Dzs5cBq3yrn@G|a zi{dAX$i$`}lE)1*l~epo8=<7h{fs7853!5mtip#zbEIz4b+Sxm$#lsgl;M`qJSXL@ zWFFOId6rx7Vm`^F@d_3Cb3%rosLUaREPVwx z!CFfbXIVrWkyvqYo%5tJm1PvtA=61Ff(`c5 z+T;l1n4*(8$Oie1napPi1}57HB~Tuumt37n1qbyte&QwLBCm6fD>QLV-=TvuJc*6r z8qNg{8gDX|l{$n*_ECw0D9Ip$SY5;s_A-_bTKR?;hUgqF;n06_m6t3ZFq5_B>)b$j zhZfdLDH9kcvvD!dXl8-TbEopNu2e5th%)}oV);;C;ebBmTF>`uHfW z72_OTm(xmTVdf)0HPZ#~Oc z>M&#}Nu;xrOYGEtV-O*Q3?!aaG+^Nsd}WCCr$Ou4iBM|r@WFy&*47_Zrc zQ!BTSO&a?#uxL2@so{GZG-4qHw}g>Jh+d=}ldmWt!d$M0*klCDG$!#A?LZ0sglIC& z6w15w(vKTN(y2%Bqk~jBsFkJo5~#J5k|)8WF-C`Ti89_GoHUZ?=A_ZWD0#*#CQpyZ zO4{+!M~T3j{aC2c*%VT49Az5gHIil=X14C&XJeNPWH?2%$b6%ko5^MoN{^}hrklBk zE~?}K;us)pq|0E9rCu-Vb@C~bS&U#XGx3pRf`N9qN+6N?Hm9_d3q;ZF4$%Mbjy%W& zaxGSQSblP6>WjLZ9MY)fb6mu8hGq;If*(kv3?)IY>shw&jKnfhl1L}Z9IM~)ElY{T zA_oX!Fl!~93=P(+oaP)(yvW6e5lo_%w~QDW$CGMkDQ$ESNEe66qrqLyAvRjymsjO` zB1k5JUnwG7$7q!v;#aKHikAe)LuRn<*7xNZG8oJw*eKvDLS-mlQKR|HK|qsn<7C5_}zQQGbvL2N$;j z(DiynFPbMPqS%Nho_TIBzT;Wre(vTUmNhb3=9)fwLcftjQsq7#CzQczp^Z%vAt^lU z-m4$zJb8jNS)^~WU;iZ~jApK$rjY`}pP6Kv%Q?y}5;;$Q29rUHe$G)2%BxJ^UVVYz z`BI)>9FNNV)Pc?+iUvyu%j8@66oX3ld5-B@dOMfd4%BiFWtj9xD!zpC0&$Y%p1@)K z*77M!WHJ9CUyI!7yvrACU@ZORb|SIKbqo^CJNb=&i8teUQNQC4wi>0p$Q+HMn60?6 zk}4lyWwKV|%>m737x_jD%a|r{gvvdLLXt_=bqFpBaH0&PmsU38!i&4`!KQ!F6C5`(Wgh?1B%1h5hG8SZ?9s1zm$lgF zC5sq_5rqwZxkL&{#=m4d6U|EfofF!E4;C4RU^lDDr&vCti!|vVg?RqJi$L=`&az47 z;zb(?*a_hu3?z&xD4DVfNOLdcOCB{I=T@F&FLnxfoN&T8M-3J70F$}Zw6TT%vW0e< zqd~SZiZq?XWemL^2iJ{ivY5dJdT{8&IH>{Lgy6zKm3&1MGr2(s2X!o4XqM9? zk*dP51Ji`&AC;M(H7ifpP~XD!pV# zfAb%Ft*7Nfh9NXyNFrl#BXWd9#+akoz-h~M7PDHX(9SZwmr{fREcnxcNjFyfNYW+L zaZzr?3twGAiMB~7;S$bn{4q6_D!su86y<$PiDCz$7d4bZoU(vnGGDK7QO_`iV(N4q z`7{{AxnE|p7B4L}<}*@q-Ouu!ZYG#UY;@vH7q^i>mJB0N2C#x!tU8fPx?R3!03mvq zEBG^oR)j6Y09WXyOMbzZAoZe_QXNhWSL7Ta%vU!hTr$340mBUoOXW}I4lYq;Y@{C# zyL0(k|HekD>0$tFSk2e;42L;F2i-=8Ea4`WQbY}p5RI^%b~16(PNgnXJ7*Xmeq_pH z1QMzPw1PU*#aFx~@uV`ux>eqjAKee@R{f8DP8-d#2_b|3VyBT-La^#K>L{fjZTRR% zG@x9kiF%npF8yRW=|nM;2FlIb*})Y?;7hc0k;(|BW1&DE$BQrq5P+|);y9PNgF)od zi<5Rfpp8~}kSqp^K_Uap864$05758~xsz0qNXJ5y8O&i07{yFuh%^vP8sAY%khz9> zuE;K8h<8888vbqUVHD%#Ci*jp=c%EEaX9JFcpS8F7u`7JE&_?td6ZBguMtB$d&wZ1 z|ItblLvdj86}2>(Yq-olnN2GeNo6{-5cLpA*JbR;YuA^$yPHbLIlWPexJW{s-Ukv4jiy zo!4~BTDjfp7vmKk_S$CIBIk`bN#{=TX{DQVBJc)4^fgXU-OYjZ2Sd z58Is6UEiqmJnx*Rc6(jVB`xg^bJglS?h9t8xx_Nu@~L67+-a<{Y%#W5Y?ih1vHUJB zu5y=b(eG$blQ>OdtK~yuw=D5~(D+T~_)WKD=n~0fqPle@KWK^hckR*3mO1haz57Gzh$|hMtrjF1r$&=6JPb5)JJ-y_Th`&zLHRQ96 zVztY3`LE367W*%vJl84w!U!(2OB;dy*o>Xudc3I6$q%oRA z0`+wcP)Ro(sJ^88_1oT5=LOx>xxaU@{?a%Z%0c zI6^hYw9?~>b9-8Jk0O~Mu6kUWplsp_4Xk7$iFBcuoS}v;qVd6tOcL?qCALw{C)`3h zHMHVjilh?Edc8nHpDkNcxSNCSaqe&()VbU7wwc==-ut5Odju zgW4khHU?SOSmTU?Mvbx8xL+FBpmrJ=W~`8Q`Ja5i1wyQ0lESBfcX*A)VY}J74YzBP z`&;vgu0^i<%%hfv3fgYUE3j+(e#NvmYE?h(rjEx8h!kaJkFjZWjjt;(& z#biq#`W#09Hho9;QO;mVB#I&*O~Nr}>p@GKKzx=~o=5 zT2^usX&$`xFvT>pfrlBQy*$J=`8T(b$rw@z_4Givg;kuDpShP@4pM|&pX68axsTB# zdS2)EH9Gh9c#us*GKs-o3#g^j)1G@jMc6$y%pROL$tH?GtQf%eoT0`OKuRY8f6@rX zk9s=k#SbsMWDxQAs|!V`#ZEWn*y;6PuPt=q^Z+6aIOwGv2d3OkF41HYPk`7cR*l5??K%jt&_}B0*#lg}>)$WwhbK3ovyP7pa#wxP^>952Jp=392|t1$McM z!Nf3>6hgR26>ZFK_Lxvl0h5+^wN!qU?3iNr61Aw zd%n|)6O%9ku+m01E^K&V_1uM60Ck7<=Q(u0dLl+hsz87(oS5`;I`X`owQ;14aP&vTnfFg~6> z6^ALJmFZ*>;=#VZ;}o^r#2_L)#>W`^@nQn~2;qO6p^hn}6GALOc+*NZE)G&mi#*Fz zNz~6cp|ySZo$Qu}C0Cc}uUf=aYUrkxE*!kT6cXs58#kw^q=N*)@M8cG;>TI4wT(f< z;x7xxl5nolNEZ_%l_2gQhiLY3gH{pB>wmiNf0(noVW!Yk@gonAi!Xwe654Tan0%UO$Aywb1U7DE5Yb$r zfiBVs!&h#R!9;O|8alN~?KmV}BJuIW7Dtjuuzshfsh0a>IMFoY#?-ZXf*KhtvH0^5 zcQJt1*v1XUl0pdc7)%re)X+wSr(*ZT%Dqe?$rB7{q?2A^2*R6s+HrE4Vh>vC#UN4$ z@fbRT3Bb!U&OJDB$;-@=LEe*CG8#q`W$kJVHSgl@l@~r zSP{908T8i<95{KJuQd{SqLEJOXrY@Fq6i?BNCH^Sd~(=L9#uTg z0&?Vgc|m6BM158_$s^2@Z0?nrWYLc(f+?ec4$_Gx5H|`$6M?T}5KC|$+N<@n(Cu-E zh7*8~r<+PL(F9OWJ3XWmNgz(#sAnzggR1-dmkEU9=W#-p(nzNVR*WZ{08$AjkkgdX zfPo;S5k;WKXWVCO?Te}K|D(=*re%xA7~SVay-YdHcws?2wqXzyUu^&XzV~^!`=HNA z{P3ZOT3Q)ODv_jzdRBA9)grQEX@fHIs6qN%2V zPD1d*=84~?OFSV|X(R1);lM?P#1l%1*3&At$Y|2(pp)Ldv*)>&w47!H z6ZHUp{YfN*dYb7Xj}jW`PZD8-6NtCRo!m(`PHM2zg%c+x>BJMlAudvZ1wlw4ia^S! zqm43}XeXK={OO_>Csj1kiGc!<1Y)BeJKbEOh89|ArH2p#uu(-5og@=YASpx;Kp278 zsHBljGKnX|gQWM(u|5FW4;xm`2={%iqMi-{J^u)}QSzvw1;K(ak~AVX%MBVmbEdEM zX!5|`E))kYTzZNE>iaC?l1U=LdW<}3X{Q?}l{9#sfW0(o8xAf~LK9c1qFJv}rgoe- zaC4aok8RsYF%7hnPYtd7${EV=!3&H2p=YS#AbHeMNj;rJ6M-LxJZNqgPA*f5UHgF1 zYt+zA9AWryi0d?Z;z=V(Ba|yt(dKdSp4AGPnI!2%aY<{i6C;86cnr0DcxaI}&`y7e zC5RY;@bLi9edE~|+qj}t*ijS^1Q;c$gv(rp663k5zB*($iG)g@q2Eq74t(&&>glJ^ zw{H?L1Q3W7FOrGD-vhW`rWiXpq!U65EjSoP8sS``0y}lI(oGy8o)BG&XZ`7O689mk zMbyyVH>x;rVS46FIDzGIp z_~XqX3Tf1KI&pf;%~jax;T$Ejc>LCV=y@+D>ZyVp9t*z{rI02%JYt9z&+6+&xlSz| zoY69xNg)J321pXYoYhiVI7g{A6HT!Al1vzWgi9daRO$cW%i;+swbJQ1H;g2Wa8LN; z1`Tu(Ll`#tNd$pZY8%}YQ9~Oc_;}WCgZ>grAbDCzD{b`PB%LS%>7f@F<0OMfhLc7p zZ|QGb<$0OQ0EUuEs3a1C4@rdMOBs!HGns)zQAq=xOeU8Y0`T#y+Tt-Q52qgy6jMzb zGh`@neKSxZ3BlLneeQ$)`zpP@m8Wm(3qSP5D(YyXo1vr=P8dGesP{OXU6?e{Mi23X z;rD;&JPmZk0c>HKX>C!iK3#T|l z045)?owIrhp^Xu2=b{$lqC>_rjaXg4c0I^-s%XNSG(vT_9wCpxbkNRO{OQ$aIY}WI zoZuWjxNzxl!ssT0{hZW7z~C1gRB8u#TEK09uNLb@wy_HD5VQ!C@}gwp(vNAST1OB-B|qt5%Jd`$ zbq_gmAIZ8$n<&@+NF1#?O~2tM^C~~+AnUwD8&>#G!U zhJM80%e$nJz*O8gWIyA`G+(BXat7ewI+L(t=Q@#$#|s-*^<{}ej5ql+%hb*VE@&Y) zIL_A$XS6I}G6Qu!mE6$3QbsSa3?_o{_|T~HIZwH~$URJ9G_z#9p69skk-7L2qM1Yz zWbWnyr;Wi3B8tDt5R!C(HqpQgT=?p}bkNN_8A6VX2Rd{eftU;;OOn}2G``f(NjnGd zA&Cq^XksoAgzyycgy}=H(!}os(y05e5U-8YQDeN$7)Iz^O1VHL3-}YC0A38{8bz8% zFs)edrCXn%i#C47AD28p6ocdgNh8vHR4ci`df#0?1}ib(B`9|2?&fKU zIE+6&T1=y!l5Gr?A^Hez?V=oq*yxXoP(6y!Dwhc$lqrlR*1Ve?delf~m`paK@TT3^ z420?g45}5namyTH8Ej7A2YpZG@{+u$ZdxgpZ|EeET1h074J6`a4y7K4s@8DbvKcp( z+8}etWDHS^l7pl%Lzi=!A9W_JwCPT41RJ*#N}N7TEb*F(H{J3kUUah@A(S_`L9s3) z8n~G;;Q=|?ovu;bz(LNPdj4{AP+5+rwHBS1fCMQT{koh-GQ_V19h?j4PAe(<+ z!7ginR(+mMTJ;zXlK74;wpq5x<8sv8&SlPU44c;A#zB#8(xVhgwhUwly(k^xQiqJw zBuU2PE|RrMztgo8@-^{T%*7n#H~BN;>2KU4{TZXb>KQtXD48vfX#+wBVKj0@Z>2$- zq?i;L#jVtFMPeCEgxO9Wrrxdjy4|u}{vu!KQ7SpdeHb)z5I4Q%5YB43Wgqk9W6h_B zAGMlJ-K!foC~5o)Xfs}C1hYxSg{gMjoRt~aaFI?Jv*c@rGtsQ$4CiDP79ypRP@2r2 zDd4;`kw%b?rjjyp=_O3((n%f<5<@?uj=|h1TkytZPT>e^m`64N`W?UOZ^m}U$@`=c zO9oX`V3&g=5~n8q{3-(xMrtEXxXfp0;XE%>L$KyhsvCKqCYh--k=pj1_8c z5ql)|UO{57QhUWJRjZ1hs@g$FV#HRPmfDIgGxk=i+S-IJt3_#_{9imr-sMG(wx$z3E6YlS z%g8nL)U}T!-f2wTDO@q)qg5+yyRuix?t?|8);9#pZkZ7{Iwtlw9pKPPI4Hw54D=^T zU%R?^z)+EMA};_Y-}^XjJWv4#_k6a}t2m~rLq$Untbw@jAZLTLMm&DC7CT07b8VQ; z(AkDO4N%#in{4-x*Yc(AMwkUf`G+aKr3tUI-G` ze=nNalNOud&gim$xZ$vUk70;si|g$&n!jMkme(vh1KXX*Qc={rQT?UW{?!N@tX?2+z;MN>K6Mn9SMfzOZ?&JpVTl@{`}o7GTpa>RFe=+a`tKA6|J}? zT^uxfM&y;`l9^crNop>`v5D7pUigq4k2R2VeqxVu*wX+*GGYd17(QsCU#E)@#87Jq z=#**(8TCg$E+jo5AmKwb2{;NU`%m%4})wjt?ADwwxCXbk+UG zVL&mdmOal?&L!Jgkd~y=&0lW$UD)Wa%x~-{(}_gwnfkX13{+fzUQ|D1B=F?nFCyDO z8Eb)z=xDzHicfAj)b#h5NX_{5rB-cthZw^fgfDA%Lrq2yr6r=SCA}at#Q~;HuY(El zrjM%oKBF;3Okr`;Y*h>kHaxH7J$u#xhsFE zLI*5jkLv=FG*3Zc1wYPLimRo2(3H;xx}4a?PkM?aqxA#C_cX?jMD0ZnITuH1_40>q zsrfJRo@a|b^2F>Ld#lnl;3E@wagqbu(>*uKaT@U*I$xGba{N@ORz`eqoXDu+(bj%V zyyRu&tYq7cMJvxMB^J}#?R~$-rN&n72Ui!4ts;7|M8UU%{_*}B3X115FsgUE91`7r z-TG{!p_+BRrz)d^Gu3peDF*LEF_zC!<+^S=&pnm3mZ7WLYxE&`#Jo-m>iE2-({;BbkU5qjLeTsXG^ogU59N}T?v3C_w z5>sQ3ms3CdvofZcuI!@cFzbwB9NG@a084NrAS!-UmKu9;zmofqv2GLrzlDMw)Gja^ zs+XLOZBbIEf!KMqNPQDr_fw{U94@ z@uaVaZ^cAzg#(CY#P658+}pR%Zk#!BoyT+Jw(~Ip?-ad^mD6&Zx2OyNBKbUa&GxyRVqADrpIp8J^tmRTY|DZf;3| z2_bKz0E5ZOn$fb=3cz?$6OR8ud}`k_qklIkJgXDzN~_W%v;;DcjXOLa2qscOXfoEV zTHlp{sFxd{#Gxv$!mQA=1VhQnZWm=sf`fk*zkiI5e0NVi`19=T1s2be@x2DfgDrzn zFKQa(VdQiFJV@lm_I+~r!Z@p!^84)@0cer)ur^a~h}W5b+1C%EDkg7v1ad(x2+brY zzc$VR!CkIlLUr*5p;X?Q3-Ebuc&L7vqhTn|u;tcz*C!+~TB>kb(byr25rIpWRRRMu z%4O$a(pGm-IaJibi)$6WssdK$^FyvQo(+`#@BTh#keLk(6u1-Q%}8@TCfkZ3sae!7 zjM)#O?t|l*P~Os_`<_Z*Tez1QAQ##UG$)M8Y&RL&dd-g8l!Q`nq36U&g3cw?)9jME(0_Ef-SgGe+^fSegl38LX+(lt*9GKZe z@Drbm5oeA(w202p*ka@y7LdXA=@6{5@mAzMQ~!b4G83huLg?N%cHgyX`k zX$V7fAePbE9IM9e@R{fQ7>l+myqpkHQS1Czi;X9`;4sJX>E^&U4vMi85O$KbICA_y z5L4A_>fZG7?XaZR`-BwidHil@0@%So&Hu{u=KW~px8cpXYK};9{gGT?1xnFvhwGx1 zRZ>Q2#-vKhqYAJTWPYH;HcM~2rBk*3!`tD$L$vLkaU^p}INg@_jV32OG$2UX6|48I z6J|`$?^uB*?;dDf4nApk*uIgM3l!02Hi1IU=Md}+pEtqQcL#29sldc}Ve9iLFC(R7 z?ZDYEfwGVsN0N4yot=`+#fU88qBN?iHCM>7jxe~+;=?rjs<;;QVqy0F-#bghEt!E& z<;f=o_UNgHrVll1MIG%hBgT(9!iM-iQ|*bzT^X2v!wXSHMt64q{X6THFTg1gH3exzD5&2e zsB|d|SaS?qUcdh3^6}-{moC3wM=afGe$+zeS!qH~O+hV!J}pIn3rt^^ec=y#H2q*| zR9iJ{Y9i|U$=aWZw@tqfuM^Ev8y4^r7WduKMtxQW**@nzZZ+42hGy*Tq~&XE{TI~y zYE>rp&)4J-PVEsR&k^#?)B(X;UApR=z1ys@{TfE9yu}EHqhlc5$fB9T2EH8RvBVhz zqkjc0P#A;viDZil=;DtRAFfS_;T$GjEgWd6p*XT5aR{}fN2-Q2{)0z_FU!S&UY~1i z^ehZxEq&LgNFC$Z?g4&?D5Eoo4n1heYbrd za9L}-zNxz+8X`LM(mTZF+vvhdnWF2S_GLm;LV+Nix5Un+SQ*jaQu4`0fK$zpX5%k? zLvnfEPo3D~q{qEtJ7%M}CGn2Hq-!x|^Z9_MHWji~x{p{DNDyEa6Ch;y)a2ezU>}9~ zj6S9|oS!$(Lh_DhOPfv6zGzk?&n4)Ozb~|)OI1hmFKLtwY8}#=r|b_glSllZ{mjRQ zc=zCudtsE(box`t)7sv#k-*2e>QL*6{OCVEAD0Mjm%#sqQujIEOtWg1ON!@> zlYnc!8q(5T_nmflq|*=E-d4T1FPmy3N_^BXgV_#d>?S3qm8GNVgs4mV;YI>F1KmB* zY5wjNBSa<-kETSpi<9`A-hysae%>?DF|BcWoBl%<`L>(Q@+pALyW>_pZ~_{A!I~{# zRV?P<%n@z+kuxJRUn;jeGI&!*$|#ge=Ig?`@Ss#Es^i|`Ykv@H_u6Tj#HmT-^Jpp= zI<30R5={=@Sm=4owxJ71S5-i@GjuC-#s6as0E)|1H;S2iD$ z`DnGp-EI6Gy8~)19p@C>lTTyS%>G>m;uIwn){WwwbvgYD2itN^*lVz(niGOwp6`Bw z-*$C%mzACn$)aFoS7O6ikPE}X=3tzOlu}OWUy@d?0H)NUG2xutoIn}vFv6s<)<3LZ zP*arKBR0dt)yVzUf}U&F;QCL3vVZ19v0d}xU19M=MKOG+Fb$!t)4!9M^w=VNvlb;5 z_vV~*C$miCc-mQe{%4zMxitb^BuedRZCRVinUAOhDZM&yJ?R`dS#8iYil5B-G8^<- z&wL258q?|$%gV?O$AUKJjK5Wtkt6z~{kurJRaMYFrTHvETW}rIDc^hJaiYIZoSd&E zoIGmKbMJP<94KJN)A&s0y7XQ|aG~oDO*!ZgH-Sv7X|9b#{oj7>%iTqQ~`mT8A{K!QHDCq>r zN<3zH;@RLjNX3(#n}hYafHKbOynh$idF0uweTC{CT4E8KySahzfe3dc$VUoZ#dSNg z8~mMqW5!t6gg||T7%ngTviSIkaNYR=Dg3Gx$8cfz`Bqw&sfc~=|Ho^L-m(fWAWV~Oq0ed|CKZ`wVq33SFhRj#Qe#mA8d?hQ4>8fx)5 z+irMcssSRX^z%fouen9}Bhr_*MO6`^v6&<~L2g!8F?5miA+IwA+UN9d*vM37gugX; zQe(KfBj|GscpvP@zW+pp^jbJD|7dQG10>63VctahChU~`7fb57@PFNF@74B6u-Hb( zqhLoZA2H=*e#l99q{_TT;}^rRQ-P*~$Ah6Y_uIcY|FP&y$%q-i+z%C>HevoUuHWk9 zy5|$?3D{983K5pvy!^To+7XsDgWP|uH zLx3&$G5-y#Yljz6mTbo5JHaKD|7NdoVzQ$vRx{b^D%s==^NAM!+*eA}Io4?l;GN+o z8onoN>h-mSN_4|1Y^$8xDxU!R0f9B8LpfMO(l?JJzW@PyDL(ZIuI`YEtsjc+4nr;q zit;^k?VgNVtv=*d3?F@eanoygf+qS@j`wt4N0jUZ&lSbD^KJjB+C({zna1J@Cz8p~ z;gaFCe^nx2bH}p=r!T3QczW}fmF$U_$bcSsMaM!EXtN^IoID&TFlc-H)6z&*_d1uQ z9cuw?83ZOY7pYxx7;^=6=hGltOVr-5X>APZwC8G3?u3G~Eo7PX+UHF2Dbe3 z6P1Y|+Mgs%9G&_S6z%+OkK@}V%^!cPHWbZ6z!{LER8WE?6rRfnUYEd4kmlM@Oxi{2 zV+9Cm1B6XtVRwyBR4EHVIz(F2mr&#n%UMgEzs3uAaP50wJgQiXgk1okWGthbk_@xP z+RXjiELrJiJmm?d8Y*`u#GqorMUn3|=e{5+{d zi7huORWk%o4AIo{aP5S^%0j+(v%>A=iBI)VddcR2rUFGO2SiVd;-z{c>0p(A3AwAj zW91-Z5RH$mudSHrT$>gWU*KJMj<*o6MN8pAnzJRM9s0#^-ZYgUmoMH~O4+c5YP_yS znUy*BIHv_ycjVyEmkURWx%eyr#$fO*o~m3jB^xyUkAu!j)5^OzsjLnZ%_ZbdM{Z^N zx);L$0{g)f7kFKmuqyFtR71QuEop`>Qm|7XyG*InJA>CJZxUfyp>2Z&pklmEWK!DG_rmI)aEjYK@Ec`x(c+tVdrt zLKx5|c?m>UVA3cRxvpFT))4iwuwsK8j2;&s4^J%_|7%q={&t2)woUlfo(2Kahon9F zdDFxMR1-LIDG^bH zW$4o0808s@KS6R`SQ|3XIFcHZWA($5jLq@bOORWbsq3aSp$+fYqgpn)eIoK-{hop= zWmoA1pfb@JNSc8ln{sC*ntG@Z+vkkp%t%yZ$^2=#ZhIM|)W2Cb)jqWgx-f?UC39>l zw>oA!cJ6}4%kjN)#R~$O z_jOX8fy-25_=adU>)JNXkmn|ViC}?Y5(llfGJW8X{DsjgPMYqRODXf%#=r)TM{agC z#?|3i&CO?sbmVx5i81cJ3~_q!H{BrXS2taz@2s{!kW^Xb40Hh zz%1NpBqmYCd3nDk3-fo(gR4SLq1JCO;Fj$w(Fda$ou-5nArlpCf6B*2M8<`h`>BV3 z(h_VI{9nE6x8SMFCL>pv>$`D#VcslC0sJghsHenuwc$=1>RQ2OO1x)8UkmM|W$d7jK$yeme+#b?9- z8w1Q23fog>*_WQ1VTDSU{^jYq z(fgt!NfSQQ?}K}3`6;L?+=t*5!<|&x9+I(Ny)l@@*)$6RG!cpZn|Yoj+&&^PCE!Ma z?A-@#3{F`&9?kkEZIi<|rY&(H6&(L=zWYWk>i?_^!n(d8K!1AI?t2R>$*6~x&Aa=x z3YeZPtgwNmltl=aazq5<%t=uBG)3dBkpcbNCI7zBW7;^(YV77=Ww878-%gn@%-a|p z+7^|9L27H%5c>KF+Y@ETsXRPYTP{V2bi$32ObxgTXtI=#e43P`6f=74oQ4TZrfj}z zXjIg_i9xZ``T{)6blRh#Y$I=AHQMKK zits`(g{PtpV?Xyv5hl)j&(~ftSF-rLSq-BRwq0PBW?lB z*R5lamc|;d#eBL*wnOtVH3HOH)}0hR_99v}gts{Bo7SIYPy2%_@GRR*c$_X^eAK<_ zstA#>z}?KUP61|~8xct|k|Qq46q6=+3?*|--Fc?xjOkuM5{Q>P^gI;>ti>?~Yz2ek za=>NdmW*}g=k3L|U(Y9%{RIbUD3nJtzknAR{bYOr25P8pm+7VgSunmz z9mAiGlCgF8^~%x@8Q!cGmgXWPKXD|woJmx*i$v0w`*e>Aqnz3|bdm#!CoYHV8=R|1 zydUQ@UD$zHz5^v_y`@bEd=BBr84kw1z-OCEO*563F%LewlnHusWvnH9k#UdoEn72D zaty)W(rAB*foTmC4Bt?EqeqQZ+|IUuv{W7ZScW{Lyw8Iq_g5(}le(zF=mXM6Kz4g@ z9vPY0*tG^0Wv%b-ITK5&JhN^K7Wokl!wO)VjHi9w6x0ViT*PNd&N*9ExX~SzkzRAQ z2p1j3GqtB=wo`-pX|ei=L8U`C*ZS^qN}7z;!Vmoy2UZ7fkVPZ%Y+ZX3&yVr8Za&Lrr?IR|*+<6ROB>A=f{H;5Hw6`s z8Thz5n6+I99J@agRnvc5)E?bHY{OnYD{5Rb0#u?oO`pMj1`6NnuwF#_t1VFGOwSG9WOgi33`?#y@tTBo&cYpPjnU4U+Hpj7#3(5 z%F2)=3bkD+P}A!|;haOtPSSM6pvaoQwA|AT(v7qKjIaNIZ_!XVA^$;0zGAV3(ybn} zR{Ym;#wLbZJmp_QD&8DiA2LWJH#JZ+lNicBbZQj4Yrn|pB)+ZYV!%T(6@wwB(_Zp5 zJlg5R%6?I`87x zcsM9KP>_TYyzoi?wf{OCLCzNuz^h2eg%(OqzV5)?3{7DjHN9O7;0nv14wc>ucqgnw zUZ7^eczDukn-`Mj6PE7+^4Io1MQ99UfMjx$cA*gm7OlV{z=zkC&r+W)j#&!fCPlU( zCZD~yCCFUXP5ARx$a;H8hKSmpE+uvn5dA7UK(qfZJ-Y^_VXJQ!QgS z(~uPw{{<-}(y(~F(3)c6U#XXDLy!pLb~|})HKM_0ok;f|$dG^jBf1`H6EqhabD89f zXsJ4(yh*A>kQ;NDNwDni2vFq@s?b&y*c$$19;3cyzaNPIHsMvcGR5W!p&apj8Yq+n z!G&cxi}3Qyd!R z=xt{PbK7S{ZSGDOw9idH*bRTT=>{9|>C6yFA$cg1&18f#89L>#Rz2AJUrEw$=qrQE zUm@k}o1T?2 z2G3`C#PnK6Im@e7P5d>+i@?NfZWvu9MrI3|Zi+Dn z;tctC-{`P2dvVciYh$6Ehi$C0DfT|V!D?A1AMWvbU+#|_{r4l|$iPhHX&Q;3E5Oep zB$hB_Dr^rX+GXym(V|3_?oJ05^hG;IFUMpyDj3tn5&|%>orP2=%LlfYAzG3jbK4{H zXHA1ArF|;{JEvL#!{u2>=TWXgYfkQ^#q*1_@^*+0RY&+p$;1}pF~|IN%=d~Sn9aG% zKVdRj?`kQ5`00!d{m1ZM+2cU1+I%6tXZW|#@-F$fX%G+25LGN_4;;{YoDv)Hq9pXw zJ?B1(Zkq>#)!b*?5vfH~M;PQnTgENZs@wB1N%p7yYZ;>B=cRh8>Y-F+hw}va40oW> z=-{}gn$-!fBdTR6tU#mk$p-g3h}Mqtn2_?%o|lRbs!$04&(^75N+&zF?w7m$SxME+ z4XVurbtiM+9&#GBj9&xF-M%bH4B8348a*U=1}i12QX>P`^va#5->W=p@_%}{ENkOU zzV}n3J~S_=%36EFKutwD1>sfExml@KDpW=uyI8rfA6uAeDc&X~_u~UTQtvYolD=c@ zE-}n8Xz`}Xy1M$3`_E1UAtYHfgFdj6K3jW4yMOCpqgLR8d`j3h9jAFkhbcI%Wk)}wZ9GMGR*dbptCb+8ONW+;G1$zosfYF>ou05@%Wfw2Xu!ZE3TlM$UcKqF&hy4Ls(!Hz8~ zv&A?FGaRm_eaOBW{HgyBv}<|yuy{MU(FRbpw3VlW2&dwp92QIU@BNzlK7soiO% zQT9&c&^a?Pjp<2yup<6so#&;3#EvKQ6f8abl9_8|@<*|cjv*9>n812e?Z3E`Pbr8K zS~C|hQY=x+BnpQM9J3?=ya2Ai9f_$;XLC8YvLpwx$!><>Sb{Hk|K3&mi6C0xM9kGu z1W$DC4MS$XENjX9jW(Nbw?cB21-HG?g)DI@LwWI0{6?yi_NQ2pvP}USH(_|0c~t?Q z7gPkWgiiFU%GV0*AZ=Cg>4;}8@4?Ba7z5!CIqSXa@;$-acchTzpY^mWJF@sAo!%i8 zLV8LxzvjgdAa}F}&9h5AmCxo3phI7W4cL_}<4Bqbs9wtK1kLwhleZza*h5-g?ue3% z7L@xqc5wlRvfUfnVQ&|$B~!emeDm)_7dH~jpatPUKA7_8COaG5n{T^L730HCB+o!Z zA&GWp<9w;G9j5{vc$2NHVygoI+c1B|f?Gx~(pTY7`mVhOlqo2qQ*%nyN%4EZep16{ z3Wqc-o>~!c@f znp~I-AQe=)#gDmDPPJBaX}wKF41wON^%)=L7v?}V@Hv)U*31?XZDs^nVa13H_;~5h_Utpqto*n^e{13+4F=t2< z){e2GT$#FIW;$dDMV&J5K5T{K>~2U92|ji+1A=_d;we>OWL|P|N8?9Z51)MhB$|*T z_env~tw}Ut`qb#7mVOr@BIOOdr+uX8jjxkm;>GH(c&udhH%1PGhL@CLkVkjmt`#SV zC5RGv%H$CWAMBG=V5!Jdy6h@MRh=l^K9$4TeqER~qE_}Fv>}NByHI^TpT7Ulg>dLo z1_@E1Ea6aw#bBPYytX2rlYCXZY4jDO)!CPFI8pvA=g0i|gPxW>o!%PzM5@!k0w3Ft ze*>L7O>=*X^ohw$;oc)&@ni!Y-x-%H7`!{R1HD#X;*=dzdOOA2{&sBWWw=wzyXO}B z^J*@?jVXU{5*-`w9M?s{Z)b%F%KUNkQr7y&ot!-indW?5HTJ6++bayjDtq&g3Biye zm54cI@!ACAXzH7~{h?GR|0~@cIo-*wZrD-zuPbK*7LeBDMRmV@!>BqwKpdhRBKqHs z85?d~hU@4^B7MY*#{tw_79HK;+V;=}sgHcOs$V2zzs?yE9+#!&&|i{s@G+(lzxqYNJnZdOgwy*gwy@+zyI(8)gh$Q;frRynoba`( zEy9$Ot)sHm<&j{1Lrp$XVqduKO9;-DfyCiMR56c-yrEdJkc4#d45wVk_LX+$ImfLPX}f@+k2nQN8Gw}KdcEcAU|?0bJe{v)MtrAH1|X~Xg0 zqkpk)jL&fAVk#sEVw|B`I96$mGI_b_a!{9dhj337f$chDf4maXcqD4qbKPlfmLn2q z{l4csMP{8h^GNxG)4bsDn>0Z)wC37t%LMB6y@PirJs+?Iys$ft%(d2pQ6(tI>4>F8 zkMlwcGQ=W{xvvvNvOqkSnu_P!AqBdW44%!z_h$kn$jyEdO_5IdCYNr3c+|f(((osF z2nRLGXz!#zS}U%6aX@;5;v==eUzYAWVF`@M!!OQh$xqI_e>gooQ`1)X5V-F1U!GO( z1tDCRL^Qw~6%&S0aYZnE8rN<>2|Z07D5`WTua^ zZ?@lk786bnW=?UL@}j6;8+JbKN}{(t^o=q5ZyUZHRkFv=>G<-?fA*J86g6OH^dyx zQDr+9JRW)6;JD1>0NNt?ClB}uI=#cFpMQ;p+HLHGt>RE$n@MHHo1FF*7 zK3RO^;Xyx<@DWUIG5@|Od-Lr^(InmVyAhug;F94Vlh)-GFWEi1KaU8oC~S%fp27hk zUVq8+u^#W80Ww=VmO2S%tR+_4|Did#;Z*;M@AG@n7aZabf(1o1NPm_cu=Er}ch1LU z!2)|pJWkxOH;ut%T2N)_neFTVts#!!04=r^_o5E5nz4Bln&vtxOqLQ`lN&xBWv!Q{ zI&hWx@8msi&uYw*_3m|tOa1ep`DsYrzTR$=Q) zyyvXk)^(WF2X01m=Y-{t?ri1+h$|*TESfU^fot@jF27gyvVngEk1RksQP*ZuaEQ)oxY>#e*IrQ8~Es-^8Yc zP2IS*szlcAf&x;}RaEz};g@IHSFRw^p7$W3;IgHl{6WavvH*WbZ1Cf4^%CCa(BJop zwE7+n5?y8ThVR$j|JGUE$(}*#DE$sm8uu=d!YKG}(0#|+M&+k}vlxeRZ88i^;Kw~( zTi(K5|Jn3;U;$BuNe5w?LE61H2`Pku*7!}o4MwG}Y%gDB8%7r(m`8C&LgvvlOp9(R zh)3>kETY4^@!~ZEMB^Yg zN5~qr$F*yvquB^(##2U*g2=cHs+f&fO3wXj@R*0mSwd#^5VSKLMMG6WEL~bp{3wzn zm8MiN=hhn6C?UbAU9a*IRHyp;DQU_Zw&WV6$`cii5rolcp4tRefbe9f+!Lc)-zGdc zMnN0>L8{T}MA4C38KUV43$v1Ya(UrkxFFwS(gRKi!8p6*S~nS-+s`q7+jm!i*Rck7H6t;q!NB}xTDCN zlG@5Rd2rqYuHPD0zBxO|v&6?a$%FtgGMdu~ItmRSI^^&Mtl7qzv3jsaKiDBtdJn&{ zt(K;xbCAZy@j)A`n%mi_(w4gf_Y@Ja7WzptNcRy*BhJoG5+zVt`?TwEb%8k?*KbeoMtuN zjGr2E+p$K_mKK?4*iA}OKqOrpg#o~qA;o4DH>y;#w$jOnpMnMCE6hj z!clp$Du#Rrm4Z<}s48jm@@7QQv?7_|atG|t4<}EwdTjK{N}4VZfm(CnjX7+!%G}&l!t2CI&zvG!0Q*z;G$O&=JR@VJB&@5TKqc zWc_pV70(~0%YPd6-T+eS&uvtGLEef08If|b7h2>wVQCS@Bf<^@W5N1WRF*EPV)`1u zv_PFUrjpihg8%mKrmvS@bv9YD6&$F<>Y;K0YD=$FaH{0(*vRxwt+Ij3&;%lz7OhRV zA4_>wur{M_uIgwxfbM=r%4$(M^uol~S?O23`o6q9r*2KsUkDI&rS#^i91+Sg-8|Y5 z9*H%d<@;MYRiH=6fc#SNIeI*^P*8sc*(7$~C;2#t&L`LOGNsTeo2)ak?H-;m~{jkF4XF`^9XfP9vU7G9&(sy${w{^89A4VgUW&pB!vTie_=e zd>S6+B~K!xH=Ax)O=zM)&LHNL1jc1U#WeTze*dQvdTcaZL_zq7V;d)EqbgI0vO--= zQ-}9cUPm-^sA^yNYb6ao3E`eDH0M`c78kK8EH;~&bT^P=6pWPzF8&W4?8)`K>X68dltj&9Iq?^9hZ|3R!iWr#I6 z3AEMUE3j&XF}-@?6}T81%U3x9!h<$B^w^F7ayo-h6+9N50ouykDJlBbFQnA3FK6Pv;NXY=3FVM;HCQ>Pz9M6-$f)nCtCj z_@;=C;0nl3k6(gnin-f}cuobei=E{u6ok61L(W+(?sl=z`GET`RhZTIIqpTS-Ea3XM zl#*+CQ1ISqY%Ee8T!~nhrrh6TQR^_Wn9~)0U00EOKk?{5<+*>g;mz|?o`_KL@*CXR zR=SOUr(RtOpRt-0%Xk%i_vEJ{&f2Q2NNR^r?fK`UV;;m-^8cifwMxoXRw0l*PD;wZ zgiaqiel4yra$DC(J5RLX*}GGyg8V%Cz;?eQJOrm-O!AW@m<3kl>=akyTku(vS*d%E z9^1Mty)RJJ7+NacR-M`bs+Q>zHaw)1iEOd%X_0Uw3p>P^<)UOD5X`X69F(&YO;bX0 zJGf;L?YsPa#UtJjN?LUn_ah#YMt5ThGW4gmr4X|c@0Ns3McjqcXsvE?^?q7Xh+u?`Gb+u40=uy&))4+Xfy3s& zf=k|8Ah|52nh7C1&!;3h?MF8TWk<(AX1~!q4Lj4rKP@V8ysZtYxK-H z=w12ylXO!&(bSreCi2Ybxj(jy(}XOY8DK^d#oIEaB%BS(J$u9q7CRyNne3nr1b>D< zr|M}T9(yvt5Ga2&qLvJdha_4@6|dwRgd=inU78eoN=Vsit^%j5eiz9daSGNrozpAp z9G7PuMi~CM--SYC-N68$Nw42T{NW6;>B&sdP{#P`uRvN_0o=yVD}h@4_et&d8;U_a0F& z@^6U5nQu}rm5m5F^6AJaW(9Gb-C0{0rFI)nl z%gMy3<-mltEeP@nYUanU@4%^ekIBT5@&%C+T}6SE2U!a91NU_jU^950k~DUG{vmVG zkM--UA2~)$#YO3}YGw`F{_666Y7k}cP9NM{Fj_E6T@#^6JlF}hf=NE5I0UTvWpg7c zWrwLnN_C_hPubMOw&eOKh`&jgqZ_EfW11kYQ9<(AC;Jsxytuo-t2rI2CoCEIzdgyn zQJBQ9SumJCjtk0hOEo;DTWcTdh?MgmGAr5+yS3!#@O4{u(S1`e=P#1jq+nG`b>s=n zMGEb(RZuVNEX;wo5bl^#tjZLsyfN{o7TBf7QRoO0U&0hkEsDEXrk>Xh4zZ%l*3bN2 z&4+IQ=e}#7fpugEW{obsUmhoOF{Gfk)+cB9E|AZ`=gwhu$^B8KhPjGm!UTr#dZVws zi!suyUJT0#wex}G&R(((FIShV1draRAWpN!JUf*0^8xn_wxYS>yLv?uf3p7}HhsC<@Doo0MYq8%zgD8`LA>Q>=ky_ES8UC%nUt<@UmT>L4nw0X*_bm++0rx^OWK@{(?V3VF8Q>*}G z6G>*xv3sH2xL~ROHfUR+4=DWy?$HhkR+lBZG;9k#KeDdWp4aJVDWGxoDcJ>leB9Wu z+jXJIc=9GOdx+i+>U*L52xIi_du8hT3>ttyLK{pT_E|sm~_z87g&Lq^=jW*F!|YR^QD}bs=D1KKuRFN zwBD18rJ*q=*nE}wqS%6F$$p3Dsp+mOqGn!V=B$A=-8Py=`~PPFVl!s^oCoK0*xk6< zM|aJ%FmlmiA0oIKH;OBU6m|kuP$dy*4fkSaj1*n7LT1JCHmYo%GO9B&$^P3Etsu_* zIGTCxbc*@wy+~5kK5(rlmS6PGB+6VAnxt+s6yuuy&7v>ab%CG+8X?xAvy8k0wF^Bx z#O{ra_7OK&_Owl+F)paaOcpLTJD2r>C}{iAohzX|spRVp!W8(BxmKBWVaWA@8*!!0*>(@r_j$+*QhnX(OsiJx^7##gXQ%vn_2#6RE#PJ7G zw8+0An@xf!peN%2ezk8rrlLdkDSTg(XG@vp*_~-@vbgew5Z2hNGRcRQraVtEvLH|j zR2Du(qL4LZPYU3Ua5V#B-mlK(S{6`vmA~T-nIvYOS6)zM{LLPm=2yjEVZ!r7f)Qvu zRdD<=ZrTARge7g_GS&?rX9F4F?BxKR7Wk%%-hQpW?J-Kqo#_#=GN*Z!x>EbqK}XJs zd^WXD#nDasQSZ+_T60c*6})BJOzC~!IJ&$U3$|NsQ+b7}7=*(GMl(q8{=J5khE4X1 zTw6*`hY4iO-wC$PQ0b`rOHK2+ZhSh=+^lU2!jq=v{mbfv^w1pLwT2(931vv7`qMps zy;M0Lh*@cit9RMovG5+$JlJvhUhD|0U|LwEE79+3;(nt-^K{`5^syVCw-^f=eJZR| zR%!GSQ_E@aBmnZ~^uO!Uw=rT?gOGd&j_omH9;lwFkM%QQ)h4&|n3(?16T6!6!^ImB zhk9FDL0b%(aGLuu`rP!kLd73kBJ<%K9Sf;LwuT4a0=?_c;of|APA!|ttcM*h5~M0l zdDZ-U+(BOKDb;Zs8A?iWdf(gsZZcJ`>ShOduuy7+ zQiF>O6gHu*KE)Zo=-o@S?(@#dMtvZ?H}3?6U{2z(j1>i3MiW;%q!7Sct760`T?Ow{ zI?np8@YlUi>X+(;)emNo+p@BM9%U4&N{o+sVPZ`U>pJa_)GY$%ao5~A>cx(@+bxrDN@YLQ*-LIPmcUg2vOjP( z_9vN3lh_-tFVPH(s;ps_TKK=t>H0;g6_3_ybbz2N6;A#9?fqBn0fNNvO~HJ3J#SHl zuWM#Kr>|=Etsfg^X7}YDCjhY6%aoTN9!JxY*~(+YpsFx|JBe0F!@+Pq2L&(q%iA@# zdq!i-UgjRY9X`ANcIAzs&zNUxGYdk&ocsdz=#b3qM!<#6J8ucRKM#G~0!xAuc`!6P z>qgmMDsGo!HqD$v`>$20^v+}M-RZ%4AS2w4&$Y=TtC2g)9Vm*PBMbs(`dhIT{)h9v z^SJQZh)zW~PZDe{BRhQ+E?<;kG_nPzA?UWBr{+o`%VChY-*vGyubh;FQ!S9n8=#OJ z2GX$5XzlS`i(=R3!x`wRHe2EDUbp|F>8#(H{NFw-AuTbGZbtV8(w&1jQW_*ihqQoz zG>qOxcZW)YgdjZ_9g-4~5*DR^AMn}p!}lN9ao;<3U-x_0b-m8>y}I%qTVJtNuRpQ< z32l+RjJ|Ao%Ht_Gs?ThXX|`Ic-UjIN%x^&Ho>hH0 zY&V+bwV4q}pdMD~YHmkF6y^N%T{y8Gpn8|}kix#mR3cCLT?JcVWKtnt@~`=tE7qOf zEYyT4>Ue0EdU`eW=@j4M%k+%v7zPQFOoRMk>X`aHk#bqxtl~?DoFsK_)a%#dmKvY%jvG7|s1$Mcir|^m!p!<6BErZ1{SHTfVmPoR|CXS@f zpy)r*Qoz82P(1$b{Ug$_cf%H5V;Tx-ttlb6UZK^@xO9}hU6$O`@^DXKrARqhti(6M zlkN6Jpd8_j3pjuOR8C0n6NGL-s0j`0UYfh~%4exHTY7&Fn4#cDJz;iIzx4GcaoC?1L9txjK3`s*<+skL z&hCCIG3Gn3%JB_4kTBRrXEG`>q&vqTDUcg3@9ReJRCAKvpXm*4y`!-B+`vN@fF2n- zh$n_RadSNP!|{uV>EL8%JkrY*^P{S48|LH8z;CNp*79{SB~{`N!_~-xZgbeHtzV<1 zdO~zh>-L-=z*K|w0{X}*KyG@C*<_G-E%4KOqx&(JZO!|Mw_XI@$rDSxC{4qpXoD5|oosPmK)Ht7 z0(mNiTaz6l7VIg)a7m)|X^~q6rQS=yqepZd+-mwd%RC=e^dYQE~##C@@ z@MtMjH3{j%hb%j0EuUa+Vp)BAVTo1SqY5ptUW>~m;;YX!G+WSptE{ikfzbe=%0oy8 zF$5!-oMOAY*<YM&KC?cZUGYh7^{R|);ds)UlPwO?DQjA0P8o$H8(^kn{f`e2)a-#8%`PWbtFFfOyPmJ_r zt4{^@>r!1GkQPjZ+BjzF;m9R>WeAU+)igB<4jRqea6LNYNo5f;fCN}zO*-K0?aFkT z>TwIsbe5F}&4Uw-+Yn7sZ%+7ZinpEZF3Ctx3v!y@S~y)l`-7DxECXO3oClIT4a5qs zo}EaW8jev9B~>Mp7>CeuJoc}+845J7!;Rtk?wzDTX*xk~Ts%8OKV2shS z-R=xp6Deb-lmAbV^ z`W|i z;fYK~eV;q^{Q7@*&k>rp{Z;mSS-3_!{oy0>y!VX5x=qqDhlxM!Whz;vDm{xhv)nnG zfhWt@{=-cekSokA!@Vnl9A{j(z_aFIAkfMG-ZLko^(Wx*ba+#O$WDKlai40}Aoo-E1tYKKJu$oB;Bdy#Nejom@O?_RxfIEhb{1FrC_ zeKA32BHy57#zne%f!tOwrkvk>Py?jmkH>&R$0b?dcV{aO9pS}AYwp2$_}y11gHAiQ zM4rE02-s+QD!k6_-?UI@mCz-6>bgx3hA^EV;~A}M&s}Yu=9n7QeuHyLgyj`piB05T zxr`Cnw17$b8~w>V4%wBWS{(u+7V}fW3x6h^%noyzWB+6IcVwa{mFf&=mS_*BeMe~L zx3)W%u8<`=AF*7jG~ojp_KGMel}u(;red6x^zmlaLTaIQSaZ@40)p;W4HdODT}WSf zUeiV^{>D?FB8|3vVOn7KF0uH@Z(}Wfo&R!*#d;%Cy_#|sAyUDtxAb7Q%c`)SpHhDO zRWj-54ORd1bh+#|v0{EN)`A@#d(+XqP0}t3{wLvh5TodT^EZ`bILO4$EBy^W!RN()0X$C=M-`c4?M-6@BM1jLWE_S zVvq4frY`f7^m$bo9>{=T#D6mqss?kqovFEW>WtdlYF)p+RFcY=iL*ad+*!?6W#uZW zdL$#WkU?@^ks93pb1Vfh`e>gT!ms@4pOOY*Oc1ThZ8LxN?JVK1q2KGTwvB_{e}XcW z#1#OFi$V2ULqzw>^2@tYIt3Tgs!sVxM+*9EQ>R`rRAleC;CFlGNnV=-7QSuj$IY{K z3j}IoQy-zyk?8E@FtelBu>L0F+>?;VoUjro3EDaAw14Q5O$0cv%S9ax=!173xmiD`_Zq?|S^B;4CSM62$-7_zx@;UT<20Xxs;zQYC zzU`!OfOdeAux$O}l>!XQ6q>ao|NM1j9O9Bk52MGtL%~VO|G3Ndbg!obWhaAbpLm=4 zOuy8HxO1-5tsa@nIBE057goCbG|O>5HiIyxc~ZN(Fgh&peuPPde_?KklsXeDOda588 zM>|JOiq!!ndf8msx0I#?9z9Xgq1^!_+ct9NGKT%yJ-t#r<(pX$c`1<^qUTnX!tHVV zNnZYJf`Tk*Fxvii464WUbtR_2Mf%vbI9|ziy%vnQ$V>=Gi5!y*k|=iV`)Orz`R?b_ z&3bW*PD$g5?>ycHpH=9QAjEEJ_+%vrh2M>c-Iyc{eU9Ja)ph`;Oi=bzc}vWev9{}M zydpWPwJpB&v%$u8cf37f)a_NSCD-!_?P$*fJ+dU;WL0Q{?&|~A=e|)MhoCINP;-}g zo#(E?&hM7cpDwym`JXBudbF+$hFS%ZeyHc9QwTOYc0cLTNI-qE{;GCMn}IgvCY_VK zrO|<>Yz*5M*RsftQDAws`Q{Qy@E`0vYvfE(u)w-6Ah<2W=L-eDL(YD?Ju}a7jlG}I zwF-ImIY=z1B)5V8Qem6s>0oPeAU~5=W$}vF_GK|@c!6eQbApA zRpcC>Wi^z@^Hk;e>uX}$q!u8IczIHbS{d7~*R*hDjnIHVH1IFYluOtzck$MZcouzJ zUaRYV(4G0ezKUqd@bz?t(kUkj!J?`JN)O*1zCsK2RSl*FD-Cj6lny@E2p~BYN6bEy zb#6b#({sm5=^j?}y| z8@5-dt>07hzVxNyf$SJX?$Z5{D4@HsWp|1DSYIeuPD{0A_Y?F%R;P_4cUy}|l+eks zIlfJbR+}?Hc{Xfj!f=7and~mrJurANWi#@v;hc}k*J_zpd=4;C1 zF-B4wx{t;-$$0JQ`1f6w(Rn-)OE=U=Y}~C|o&?_NF`|$3tNJl9v@Ghfc&k?eOY1Wa znU7FLaJ?5C&lV8CJdo8fS1bwZEm)_c1W<5NI|SphNxFX(Q)SuQ$r3(oY#|C1}pNI*Sm{pP(MmfXH0a6o3I`Ge+QizibM8^ zFsPchtNL=a9qGYqA{haK*-{JBZvIKXt>KgI6^lRdrg=*Yx4xJW(P&FVXPIQ^|3JH6 zF8;iFA-0Q2G%rD|UGm2Ys3W)li5!bit}M=kg~U3$l!jE7C?FCl3+vaq7Gl!kldGbh z;ZianSVO7D^>bhVF|n#%t4Ul1szW5es4%M|zC2DZAay$0Y$F8D>8|-EB{&Qiql-_< zPt79QzH=7)y07soHGT_i6sIi7khW~}svjU~^F% zMNq3zQx1`GMXmoMSi!#o2jE2@b|hTu`4c4YvHY=aUaQppkZj$amS*2Y#F)zNXEzfW zp7HDun6Wm`!%ME2pA0`6V2dm#M-kNw1*~dfq(#+5e9XS{qgozrPOJownmCXZ?&{T; zuG*2hvTCe{y~_@_^L=(C8)><~3Q`A!F~L6sBewq-$XajiD*1?FVjn;$O`s9t)H^bE z=Ef=dp6)eh`i;wL>-%>(^O};++NqxsstMTjo13|pr8U}7mvUWlC5X})!#;3G2Ln{` z{bb#%9?IP5@}aB>j?0QE6)$;;b-h+4NO^hR1N5eR-dmSBn* zV@RQjDYXV6rI?|<0?)C&lybN#X;7Cge-8DGNm>d8faL5maWQdb80#6qLZ-Tskm8W}Nh1&e%D4w3{l8ft^ey)%czu7? zO6j=Ad5-^;`1F}8GigE;X#gV+KuJSsEaH-JyZiVZU0nr|@SV|=46+mVG2jFAM;uvP z>GogRJG0g#o+&Cwtu7r`(I@|caTI(gY2bKUve{32(v1(QPV#GoI*Es_R^`n+OWyJ3 zpC4(296KV;J#lPdan5umZ!RpyD1&z^;(2@0y?apVO2f0C=2Usvd!$ngEDiAUQL+M*wgBEqH%(ijUi?NDvshqk~5Li@dKfW_H#CQ~$9#J#5Kkff2 z^%^I3tuj>S=#`KEX;J&x{jlPr7V8tS>YT^702synux!OUujDJ&K2-neH_yfR+n98| z%#`yFHlm@d+!m+qKueS^pQgSPitkOJ92(1sGnLk`3;8Zd6?tE`3(h%t4ar zsuFd(5j6?}fNmDFtPrH6%00LbPBIN&Ma(6xRk8?jS%ab#7f5T6WDz9-w^&ySP6TkK zt*{%O*?219*QSm_9MZR9T{_tJyI`5on%KlZhe{He;7v6m*w#>b3SJc|l@|R#nDn4` zKNCZ(N5X?RBSc{|*WKp74@9!7lVoo~In68Us-f0(74dhPw8?7hq3w&&9z@YnSoPf& z6HO`0B4DalA2h~|OZ9F2(!VlONIDQ%1qrD~Q?gcBeK<4Z&ox$URZb?RGC=^-KGauf zGSFxxPw~)qMrz5h^=dKCZ^Ua+m(qwy-bxl*y=9U$#Gz#_9Rxe9%DV-W$&N5z%wwp1 z95VNhZ3?dFUeItFRnZ_!o^w73iIoV)sQHi2bJW*BYMp56o8}Sv_gqD0cAU8_W)F+$ zSSm?4)wLaXG&O)E;={k@fz_JeIc5m3!Zs|~3DeJ82t8#!sryQaLd-b<(VWHYG*CfH z!j@u6ujR?Edfo!u)Df;o$3i^L``pD5`RPOY!k?tEVNPaM406D&ct+fmF*j2)ZpL0h zYgq`O%gsg{Eni5l=evt>j$6#tM~vyTU5V7F6wt-0aYh{YB+!mqr5o?R-IwiWOc^gz zwHmk2+|r`$=%Jz#P324#ctbii46c%}n{?mrx*wwXC?T}Zd_U~Ho?3|O-OwG8TSx^I z{`jQridhkd8)=@wEQnT_i>j|CkR+kFR@B0V}h3yB`(V<8915Ns z<8A-_Z{*HKPb>m1zX?44`f0C{tyO)Zn@kya%HW00`MUjBf64`Ef6`C{!FitO@b@OssU_B6d5Y-Efj=OP@nZygcT z`7t_{9dKY|oHybPz=qo5G|x|-XFY7S;;2FtvsS~buh~ZGUqsu%6>$3^W00J;?=GZH z%zljU#inIod0^XB(2U6d_}&4X?#GUVlt8!CABzOs)bjzzo3f;t z|K<}NQU{+F{3uI3D5^o-WAG2bvw!#s*LV{VoQCY&(c##!N%p%`v!XDDVpD%XNzLOW zufwizEN)Wd>rtQUzbny2lOhzFXG3&O<2`aT78tPglGfV7WebM)Z$Zv9VEh^_qV4(G zDrt@i@s;p#JCalK(y6PbTelqJmrUlQuyVmz>Yo(bniIl&N$(*r4-Inz*Pb(S+#dd7 zetz=G)Yvns_&>`3?E<`WCR*{Mr?TdaAxvPBFlPTFwyz%%#T>_)KO>7`#FA37Ji$!< zT`n{|{bvDT;lBi{H&3>i(zq$93;r7?(A>$4-$&JEwB!SBir+HUY`3O&gg*t-r!eZh zFLIP!>&bM4?m1v4xf^if)ffUPT7gGUq~9%wA+Y#fTe>zin<9Jc9RPOJxlgV4+{%di zz&!>CH8`tQcABn8TlD7{&eP`glXYedoysa5N8YriJRobRm96{RowgX#;P=hBnr65^ zPf!6eI4CqEA(w1IbgGoP?Yg>_HtJA{E9+d91J|d*c zA~UDPCH!$`Hpzw5dvap@dQDYH%#KE=ONy)i8pI9t3Z!UwoTl|k;N8k&cqOeqxQ!Wf#af=jp zc&7*-wRB8A*Ym&cFG}oczd}Z(Ucd`B#ufuT73wv|1%8yP<63=&CrdNibS=r6iecmm z_27~(VJRIt97?UzZtjNFG1h1VY6<0taa-g| zCc)?cbQEjkL)y#k@Fq(RJKqCu0b38)!% zn^URIGVLB>9<;I*xI=uUu^JzA-7ttFJT8`PPd9KM9W|!NpJJdp5lo-gDn84!5q)9t z9A})J%bm^L@S?P@d6zr3Px%8WLS(eF*;sl)j_YQ`9s1{89V$&720x+ZH%TM+7o-VG zrri7jzJz_0ZrpnsI`~H><8-mLG(>xRX9P~xkxX_RfytsSP*Fx$Z=eHp`2 zCq{1s!7z#Jx0imwCUv27E%8)G`p-j4B#4eR^;XkZ%58f`z?K(+wOOu+vgPY!Y_Bi` zrB@6;g517pIw1ameu=2fu+x9U@Jx0ZuaVH7H%$^gud48D1IiJob-YtXXNET4{C+Ak=zj!P(O(;kF3BC3_x3W%KbAGph70)IMM$2FuxL6{|*=cp04OIz4Yuhn}Xjup(WmG zsH1?q$5;%-%X3N2Twj~d9&6cmLD$z0#ia{WtLY_6h+?ks%XO@Dv%PGS zQYbAA7zrZGTP!-k$*eQ0R^8gl%m2>#|Mp>TlRtX(3R8iXu4USs<2v&H9SfNOG?dXs z>-z?~hOx zTZ-cL0Q$i(Z4bd}ar<1U+XVyV916(7O1*imU8BmGLcc^D9(<=lA49E?x25%1G#rsA zhTu%+#Hl3#ON9E3@3<(?7Cp!FWAz%>NSIQSjB#3qxL_>`4Ww14q1-TC)GFK1ZohOT z3ijq=(%;R~QiRQzR9E+8D6xL!^y$&%Mk+q4j`kqsj+L4*GI*4`Tccx!hHyB&-w+Ep z7(dzlY`a&yba+R|ysaPK*sOlZrsOD+-HCJkg#^8Kmr>3pvD;I+!zhpRmV|&O+%j)m z+UEyi4@1|02IEqKz%)nsqbe$-Y-qw6&=*A?e!tgWX}X9dL6Pnv7>JydP|LxPVHoO*TM=zv87y!)nKf}W)Z2zyFr@LvyJYyWoa zRN?asQk%2-d|<;T1BT8Xf0s9Tp3~1X!P2UA>)vvfj-1UsgoUQgP7iBSaICxL{X_1( zx5UsYy5q=2`GdX-q`L+aM~)w7373V8DFxDQ8bAzhR?2gUZ;|ullDtkeO!Ecx#tf%<53g3rAzc~ zV)?hz4F0S;PmAZEU9weX9aPY>1}iT?R{AT+eU!Ok{j>f)@6}E29r2zTW_@ppw{>pW z(FSvR{!U6F1+acxP9UR4!A0m>ViqP)h4fj+4P*<MC$Yt2wIp(>#QS&7$3d#^=bx4&D8VXYKM3}ZB3xa+*pi|WLF92 zH`NNwT~0D$B8KA;jo0d=aLPN9KN?#q{>d)=!k%<~gg4f$D)WTKiNvM-B)$TJdEaUi zVEx$_l()26qMIRMugXStM{1r0e&LE@hbmR?cwKGnM;IK#&MB7?mcg5Ax8Avv7tLE9 zO1i>IE^mwk8!$Ej9odm4J?^y-3TU@BY;^ygyBj^WcirKOcSv z^K>J0x7q>HrYg%U;TJ(~f9H8ppc%)A4+VVMe#-pIk(m}w#Zfg(B6Iw3woMtQV~x1p ziGMsNio<&XP5lw2YZcxneGHTDH&SdQF*SvbvEBow8tRXzIpbBh@Bm>X(GSWKwj^tq zot&V4gMBZtDCf5?-Jf;NhN^r6{*0WHUeWuoSOO~Oe*Gt3|KrxUJZwVE$DUi~*dYm* zL!ELtVd8wG@PwI(+e_~7-|%SG*{fwg6g?5bek>u)b^}9L;zZl@dgvca4g6Kiy*Z+i+|YIKz$z2yqWnYsG_ z?aXBILc0dxI+OzL4sUyXDtWhh_Tx6DrNT%6^Llqm3Qk`O`odm(iT)*a_v+tOIkW9! zVQE*-!pQ0i%L+@c-Nev<5B|pcw%a5-@?AdMm;;qSxx@}Ep z02yGIlDNO?-k}4!cG~QCgSDi%*+$;E>wQsU7ntnfXWV}KR^GZqRMy=uc zzCv$~kz%27a<`2>)zA1Z$o?MS&6Gvy`TvqM7t(cZU@td+KVb`9I=ysCp9lhFvu^6q z68Mo9+f2~mau|fIvT6)?9!I=xTn%R*%{2LZww(CC_vpPn&M}8eR*G8qvh>f<^hpJ$ z!PwVn)?di0*UwMhAi?A4m(waInPSN^QY$A0^EjPP`lR!@wVd-S%zgYF%^s#v4z+Cpd!k%47{r5}T<(Nr#umLSbqKHOSyAKfO< zp}NB<>6jyY2@YPIV#-2e9MTrh&w+c}e3^b#$7&%kuiZqiRFi4b8G#)5XqT;FeAL85Ee9RujVRCjAD$-{SyNdKA@aADH+w04h+t zMd1FmPrz{uQIU=#0-TRzh>Wrxf(ina7b^qjG&yjn2w;_lreQuz((W#gZJmo_yaSYA za4BJXtF&}7hG0Vq?x*D9P~jjG|1)E4A$ImJ>e^Q9XH;uyfZ1krzS2W*Y-cUxmC zthu?C7>mtu(y$gM4N_XQRecr$C|8DN!4aRTV15Yh&UIZ?9$i|yHY}388%^?8xDeQt z{Z0{31WRzo7?2Qirt)%#E7ZBF;(jyzHe*o#uDmmNOJa@e8?Uv4N4=|(BIcKZVWj@j zi{mZoh_jfVwiGl6>U^0vH3+_Ck3P#$#`Cw6qo5qQtK!WD^clDlcci34@H=YjVJIXd7;GyLQ5a46skaTqW z@0-35q{|l_rIyJl$;PdzNj8p|BqYOzTI!Y;k-zd^-(zF;xCgw@Lr@JkJ$<(0J+Do@%-Ng~5P`+rUP6`PqAu;8y zR*Mb%3s*G4G}F1f+Rs;(k~|$~j%t|2?0Lt=k$@A)&ex_%*L8<$lhZ z-;a(@i<1o^jyMQG!f;lmR)zC(BI;YFY+)r^nEwTJD99bT$I-m{=fDG#}bpvVt+yu`JbFy91wEkX6k50qY zGj}%c%VY)_*!S8DYQEr1xQ%Q_3SLaR2SY5q5BtjwN(t3G9G^fIH#s)z56R`IuSkLd zxiRq7K4dR24d`A3Lss zzSVpghOkXj7-}mc%rdd<_y8>eVg#t@q$r%((8tjzkZ zFxb4i+JGO+E#Dire;kKDFu(hagi{fvoHUbEwrY3~0m(QqB2r`669_Jq{_C|$B8i6u z!M`>c9V64jae>w&`%KONCM~hpIMVsa2M#rc>he!0DBdPwo=%-fXtRC4T!eBA<1)wy zTK*?Jzi7)+9yr*(edV5Gi7WK#nuyUR(T>~)Trf9b0yr{Rhm4n?iG4}?wyriFuiNy{ zuqv?wsr=D}X9AUf6bRO2h#+i`3?6@zOC+HhmGqbbF-zlT9sJ+j6Wo~% z2+g9|M<$hW4V{U$8y*_t4of-QsQQX%Wg!9X{H8S+fgS5=KGp&xN~io3<%ggWhhb0} zWCVny;9_Ht$n2lBRQ?rE=q#>Wm?`q*!fi|q)!*#z(q=r?N==j!65w1aV8E3urpuED zTyGNwZa~@G=hzV(bDkVBro$$B-9VDVLPg1ZR8~sS+a*w$1h-k0sH={T^oNXU;DYF~ zTEutD7LiGm@)zg*+wwS~;_v)-w%*M7A7Pd6db zrAGR(jkWPl?uUbwre2wv)Q&N_WOCHir2lEpkq@4KnyWla1M^GOmbVyvP(0F1yZq`} zEu$r#p1HoP2)MNaeAJW2!&;ln82N1^$&iZTNIEP}XaPI+lzW&kNGwry;Kpm&yC+#- z*q_;X-;Mjld0*tXU3v>buh***Nf}|$??m;wqQs@asWNibF$e1|pSyJX=+7C!t1A(h zzfGy5qM($+@F#~8*(v@W#NMr9)5)v#k$l26Jw}%8=JdPXY2NEggLayQ{|$%#Xt=Hw_}rlsZ8S#MoRLc1Njr8+C}MW=Y_~+VJ9(V~h(jRpUO++!)K75Zhp^mTp(w7nXz%$)@pFILJEXSw$Rq z$;+vc%dPr7fJJiU3kU|fqwh;>AZP_f9o|h`@J*rFX+ekCeIt#Wf&6T4a%sv@-g|^` z*_+jscGB0R;sYaMkmHzuy*d+AkE%~yq+K6W`7eJFFL9O;46KuJ1R?d>ZV zO9)nSbiz1w`!=3(t-*JAVi^RhQxD)YJh1}bt+;&jq|8~|N5vlRPkOOcnUvD;8`YTT z)$lD$(OBv!gD-)64nCu4=B1c;6EPrD|5gf@Ww@H@XPQ>*r$qPKQZI}y{o^{yHk=G| z;nmR`k#f7o!_-U~Ma{R%CtzTb!B#~PNQpyyD`Xn44@KKUJDwYUGLGSG!#c)$j9{DHKFRih1r(O8bWFteUNi#J|x)F+?ZU&XHKvI@#1i!AU0%Bhh-2~b3`mfz6 zgSOCy_w#|-q1)r2Tft0qfFzOciBkxTN76!CAy+sk2EZD|;PCM<=?C|G(m2O~gE#zf z$Dx!uCwU!b%~w#}QY%W&a>$d=y(R{3yqeBXxTT%+pvfph(7<0hyLT23x;RN0p*vfd z1d> z!C}y4%jaO>i|%P?dCIUCw|YhuILAgw^AQcxpgVNAkaQ=@6*5q6zJN%PFK}~Vm4i>R zWM$e@8ctH~*@=DiuoPP>GH9eUdTTH@x@95XbRkUY|7dp4IZsSZn~GfyDyAjREDixZ z74ogK{VWTm=8dgJIW7IubIxVof3^OL_J9HK>m-fv*QBnVV3~F=MZLKJAWP4&>&msq zJ%`r6M8uWA)@l^bdtcy>-bWGMY`>%@{-&jl4>%rUq{L9fm%L`DI?$RVil;Tnc9x@b z`ArI|4OAyQ>*VkC4}{#8I@hN4yekU1cv4bY^8d7IJl_}n2F=ZeW`%n3tKm|MexMD^-sD5hah%a;U;3?}o z{`(e#kM@d{LHwJh2o8m>$ESqXF_TGAEt#M57_5iT?`Vl{;vgehB>XpY%!P7k=F^>P zlVdh&v>w)&e`l|)u;SrwhuZ@T$NZCF7ZFcdmMo^dH|qbc4e1yU!Z9ZtH~Fy`?$+@g zAP;2zf`n$?e09?3rby1_-L_v+WHJOUYV;ptuNof~1De?{SamBoB$b<@i}W1n$}4oH za0Y3s917oMJei;A&riu!FR3iL_@n`bR0U){0~HHSE$ir3#%ry*+4OOMU7w#~|`acV^I>yl% z-JibH8g)u)=7^Lf)iJs7f38kHp325ClIyjPYbLu8rbDvhIibw<#gQ|fP~>0f*x@j= zWDHs3oPvb=f>rurrGC9@)W6EaV9O!s#1*H4>`dkUu039w*Df8=fwpAZfp||*rcdtd z5w9wh^U_@%{CoE0P#KC`> zGLh$ymG8Gwws8kx+T*Ih#B#z^Xn*^< zYNTk4>b4Rn`P2u=1Lbsi(yYC5MtdVGg%D!S)5$}>=k`I$+=wEe5)91<*Zr5P0xN0l zM;8S*2EWe#w+o>CSnLAy`@Fj)ok_&$Arnxayc-lx0L15w>oBYQ_Eq8!?Sn`lV!jHk ztNMNiUIeQuB!Gj*#cmKHVoQW!x|yEGl{)8GUXx|Nj{n@)56I~+1ct*j&5+QTje(Hv zk-#?FKmKets4?+N_s5-?e3b$R&5^SPbQ1u%6vkj%HR6tN2q_b5?W0myrFQ?q1qsNF zz*;!G%m;&1CnV7pCL9GB`g z|A7L%32gJ3sCCDJ{HN&dj8^gt zn(6!V2g#Nvspx1ktF!i`?{z^b)7GR$qRPhOU?~0MPexu|ses3VQ;6dFrXypeLLWtc z6(d|oJInZnS*BPUhk7A-)^xjS`BK65BQA^Cyzbub-7v+wQyr zx?g?aF^ab88Z&}ro&L6c9x}<$_p-kmYu_FnoHHGn%g6p_Q zOVbZz6D z{yq1lKPofwQAy9o+`)Y)F&^E$7waQ}6C_S60rfa%*1qweCER!-4Eo-kie*)B1M`$jvXGC8z04npMMdJhF47`V}m>qY*6Za$#uFuZ5QIiyA zS}WWsAt{bGv}3n_fK<7vJPYv%>%@?_hx?$P<2`0w!v>QQhT_~leePZj3y1C!eJgT|-5R2K(#9AY*jKEEvlW6M zi+!4B*nT-}@}`|(7@1M4r551soQGy%Rfpy7PKTkDNk8&b+-=0`CHLx)frEI)0@EVZvK;mv(@*4| z3u%N%#TEzVakQGttbX3-zp*HFWc&Lx1A~p{Iyqq66IhIVbH(r;B$Ds1u*cM7;$D_P z-U6O_(5G29G)?^i0931OHTeve36O--xMHP>XF3Uw2A%>aiQJZCWNV0}5(QRse#PM$ z%V{63q$_}ceXeknI2JnGPzusz-m9A@D00lCx6bGleVx>>LVhKB5pL!;LcizIZD-EYE zHAoznC4{WIHLh89>f(517!#C=YMVazw)`^$p%!DMMjTOvC#Xn7c%X64BsvQisVamU zUxs?rEle_1Z3gr8=Xg$Ed9Co!IidzKR+F%Wvdu_?^ekUI+snzBV`&y5_WuJqLB+mz zZZf9mjjr2m8`&=B$^$x&L!5(MUgs`G8jU>Eg+ogY|iv)g0j*c@o*#2gOQ@m-?orv?McQQx!duP?FYWK zon!RNZE}ugGDeY1IXSqAFi1!rU<;jm z$O-xh1IQ7sV~l>p2?ph1W|65cagZ+B2m>wz z%)j@XAAD1P6TB|^0mr!8xK6g(zBio4JGS?YRmM5SHO4ICxB4pO+{&0ueeqA@(^X(N|+dp^bn$(0451|FyaNo`I>6_IZi(z#*#(?2k0iq1r(FS#~j5^ z0ZBNl_fIfD*m|(zz(BN_0V23C5Vp}th-}>0S<5K~DAgLG=KE%VyTV7KznIknl_9UL z^8XxqQNz)Cb2_)$#@IfQleR?TZ$`H~XVlrwkT+$j+^!wm%4CM{%kN|nD_Ly3AdA>; zA1{-%+;xNTcb#hMlV(Nl=P4b}i%jDVmUD?dXuM-QM8JN!;o)oNFkbJ5&_=%vvT*<*p21(eMNiM#)vzd=LMxV7@MK3{X-=~m^hw}gLkfxL*95m2R zMCMb1FYXT47db$;%q0&mw=#oF_R`ESKeLmb*jjTEcSi4s?bNe}o(+GakN4djSYb|& zsJ_AL+{ACFGL{do_PWhxd~DogE77C8&1HN@7Jtw!w9DzTR6Fq+Gi8Uq=4rDz zc-VQ5F<%SiH*$x*sF&!2`d#cxeMQ?G%ZwY?<^0-yA#dA%vNgzO_B3ghzw(ycKyKW) zCXaGD1-hRu%m0M@mf7U7ni_iXU`LojHeP*;19Zwna`147+nK_j`JPi8#!rYuYzXCK z;--Rh+?-DdDU^_biz`{laV};QsVrhVX>6nhf810`5`xck=^grTs6R4AzwPe~j?+7b z_D0^;h32sK>La|Zd$`B8%$6s!q}P~Zv&)0V1mhNchCT9U!j!XA+}LEc@w$xVX*tUhxv%k;bR#gFLADgVXfAqbnzXv_~i?^ma&$bEyr@% z#z0TdOF(k*;NZWdffEo$la8B}?4^rF9^*6~XC3t%rJZ4R(as>RvV_q@F;P0{C8X2z zX7)v%j^^l&!PVip=IxP|*vE1%A@0=Y^jhub!$_q$sP@?PW}~h)cG`MvF8d?)tL&#? zC(ImN?4UsgX^?N_M)`q%8dpdY7dt%$T$%WYa|bu-b9$e?I8+x|7Q5G0Dks?B`o`gt z)wZh*H~*9}3NiRKvnb#uW{}PKyv70DNizeolIxkkeXOQNXX;Dr<0Vstfod6@Fs`jHf2fXHO|&2Sw|xt5-?cA>m1@4 zmNJUn)YETyNo(n0h$yRd()KiSVUu9wSrRxTw=CR0Qbb15T*HU@~w8g8S~JkC{oE)R1d z<$TO;TKNZy8N)?PB$LnBOPkgEoVc;mh@SwLGLbA^W)lr0;=#e+xR_D&F-(+q*+wIF z5^yqy0upH@K#;$&nmQihLdu!XC{pDtMv$i0^AU$g#f_7X*h@PV z+3%BdGt4rklE*hx(Z#h)Bi{mT_tS`8Bq=MWuy z$v)b+!b1G(=(Fs(Q^>=|5J60K(#imZB;sT@tqfTf*Tsyr0whD^kcf-JbTCK+Fd1YR zlXZH6UM`SPq_BWdq_c)&bdydh2^L72g&QYt>0Vm-jZCM&!ezdvmQHqS3j<`}!b!Pg z;n+7Nt3SPu=dD(GGB^V%tX@J$tec7gz==~CIKfa zI6xcAnMe-5&`2MN*s;qWIFAzjJL{<9YNnAZqsYOh`)Q<~E{2H60>+TZ3`$95Gso$$ zko{?tlAH!qAX`N1^94cu!Va1h!Mf$2yK>8HcH$T-A+GIh6oX661gPO$`BE{ z7$(L{3h)sk3Y3$F$HJ`B@ZjJ~Mw5;bBSt?#6eo7zD9sEpmVA6J~kPA3pgi^fd%1{m z-ewDpG|^3nF%;lq7Nw+fh-Un3po(s;WE%PO5hBVwMv~6^Y@v~nuT%C!$e`NEaW=WGeY`9~V-=VVdaElk_qy zzhOS*?4ub!ad-Y}{79XYlYy5d%p{){Ith|PDhZrNB?UCn#QvGKOMOaUd9RWRMUMVvMF((ov$A)+ic30$vhuP(dl_)*i&+dj~db zq?3dTFi`yX2{Doq(#Rwgk0j#8sd0O>4=)Z(6pcqKWfTRZ5yM2uA_WgEbTgzoI7}lM zq~eMHR#HjCrEv^9j!oCmL=X97lEiL~(ZU2qk|kp(CPO>uWtb}J>7a~!(x|4ME6wz+_2}mB9cX`z=?5^-55dB}<-II&r{p-Ge& z4RkRSN4NC^E%Zqqsd(c^s5WYkb>|>PGhGZ?IOZ{$>7|t(25F^(VUE*IAASZ2agt63 zwVn>EA4aSec#M^s1i_hd4=>5!H{M&1(@LMUuDF5N zB!*h>@gbV!DY_Y;g8@Pe5+F=FeFR7+3Ag3Ajvw175n^!-0mFod zkw)A}EWl)nNaHY#R@+OUge;P1p_f5YaFakHE*vC~fQ=wwVir8@v*H*I3~TPLrIP^; zQco{#>=>lr#YsB@1g&v2em(FddpKnw)Y&BC(Vz4Xtuj*bNU}Z^KQBe3;w6k?vY$G- z)v8;f5mYiH9T#o{8(>4|!B0qQwVi?ZHb}n2t5bL|^rW^hD7li3M}N`-w2)6aUNT9> zg;(6zE&R7f2MNX9(o!fXc=d?J!+183(`BqR*V#zHi;E0=Bru*rQmvTKG)9n4HO=&M zCKJfD#=~4v@W^S5mmJ#ZB4EvE@%Ay95o9n)O39#)AYn^+P)rUMQ z(TV@RcaX><9S=z);t(GW92%cBY}hd*6&L@lFffE^RX>0n67gyS-3*8e2R4oS*Ne!) zOMqdbl0zCEGDyL#dpSWTJ`zdbbM{fkOS+ludI2x$H+;$-4(LzRQ^y9{=wc&%bn&kK z#D4uJ-{~&)BABe8fi^u#A1&~LW9+Lx6s4^3Q&{?tnpc&rBtQ8$eI#GyF&uYuLqZ{Vjf4xQju0 zbODJ3*g*#!dM4}nfo9HRf@#+$^(p=%)A8^lc?_{o*Roxs8Vy zG?9PtnQkDNc0HTrxb-dG=S#lU9r`WT$~|(C1~{yn^);gOOFa+EJ*=REV{D;GtLfo% znZi=4^pIZ02+84?T*?dz$e@a?T1z4aWda4fKsh0~fe93;ms%S1HiA@hgjr0c6+frs zCB{*p%W+|lO@Kb?89@%;G02eqhkQKJ!B}z`kQ|bk%|a^W8tmA$mrwXuzoe9rq;NSS z(dZ?p^zmbBA3uP?HI!+H$D?2D4S7*`5Aj@%+D!-Pq8LzKnkfvvnK|Ak| zf=~ZUGCr9@9Zh6YNVfjR3Xm0&!YcZ3;irUrj*~zKA+pKQKhQ=*E+d;%oj{Bu`Xv3> zIO{_=x(L9|H)m(>{ zTw^S!@f)4N9$uCZlbLU()65aZBBW4_mv+(#k)#V5qz?y06w2kKl5Hjsp^kItBx(dH zq+D;q4dyKD3>ddCg~d#!gF~z*jdXnr2j~X+XyG0bFysLyaSmSGgf#^}?eZZ3dep%V zHgg6^c;p@yvzRObq-rHGy7UkObn`U*^y>@`(59KVIcS{AGOlGg4w<7*P^VjT1&T^7 z>4-cpqo~lC^fAnG3S@-*i}_5^$EemH%NtRbhB9FI-5z>ok z$7h_)WJ+U0Y}eO~Y|fR-NoA0z3jMS(5+`1BCg18Rd7lzoJi&ZfL=YuWf6aFNOcr97 zd6Y7e4E+neRLdeN7%6vh78mh5hKOha)pT)$0-T)0Ai(={(n=2{l<_u0_$8HGlFY|x zCV~wYUO9t2MrktLbn`2q$y`AlTUkOk&BhR?aW~hIjaMJ$0P7`XU3Ee=o{y(11Gd!wt``h>0dnS`f?>!-n z6pEquqV%GO4Hd-RJ02D5@rb>558_emilBgnqKGKcJA{&iKzi?e+FtL6%>Vt84|64R z&E8p0nf=_qd$n*zpCyAZJaU8~j8vfkAK{dEbkfbjn#W7^Jzha@?Ay2iT@ZIm`)TncT!G7HI=p86i&Qu$WK+qLpNvmH?5r4 zYI;#w!vMx<67>`rlNigDRtkS}S|EsI<8CfusBbje`9wY@m~cXIVDdeR%UVt;dn5%P zD(lE&fnG=*yZMu9JlaV!Rc05@vRxnI1lxESI0^KTq{lHy;XC>`#73GpLp^qE+=#(k z`HNJ7tsB|P5#w8+cQKtg+Q@N&C6aV(no0+K9H5so*0=1T z-1wf^OyXJGRO&yp;*r_JZ~->FoR>;6NwB`BlxkUklLmGY%2ckzORr9$kezaZ!6X|? zNtcJb_p(DjmfvWn!@QgYa-U8lSle|P)ojpc4sk|rC4fP43!T(RD3h6@k5Ixsrqe>L z*~zu?ij~Z6-KJS6yX04LSjb>nIirgyB7+0;QpqUdaT`A{LY7*eaYok|<4BY1d}rCD z8;x9M$qm-KY||HvJIErA%W;xM5l(EHPZx>AVt^)bicRtY;lSU-Fi|#=DH(iCH^>cS z6Rtg!f#qa_{$K<$SLWbA@LG1Z=}u`UpA<!EzcU zMMu)32PBAY?ACUADVLi_XOdCG3|XX4vYCSnAqh7x;icPpo^|@Yk<2`K(Ylhux>7!2 zB$?X75jM%qWRRr|xXB`g4m#y9$&#-xvqgWwAe1CJh-RnR$`tvRwT5D?)^oISM3s}Y z8q1i^0$EJ7jM8|#`iox69{!ZG#4}b4I7x{ynLH*+F9T(owUq<<2U`foMm;L=Ml+WX ztR=J)rWa9&%Quw`y4=`D0T)sXBr=XF$+i-B%#l$#n=&mjB3U9!xtl!{>vWU| zokXAhN;92wvm6&;{DzYd1_HumKmZ%?;F06ROR8?ANgG&CBUL(-M#_xkTp@2*5p2*^ zEJ3N2ISgVf(by$YCNqJdI)be<>O%g}9dZMMBuAbmPF;*3K~m|alTeCjq*JHSt`*YB z7`aH7QqBS6R6g5hAi^^u3Pm>c|Zn{lO$y_001BWNkl0&ggDAjfGEo@ky*Tf)*{26sC}%k=Ur< zE4t~_OYzWQ{6Z`dJ_j$bg_p>|&hs3n*LaJInW1e&5MuNYMyj=$?>H$*OqZp^;?xp( zgm@WXy+X0>G0u`Nqcnsn{YMiiqE~j&Nt#|lg~V7tvP0iBt60rQ*-j|ARxV%jldhm0 zOYS0`c-c&@%;!nMw2ziyKyB5xByz240?)LW0RgLjN5?&o>^mh&8x zp%gGwucMhJ`IckE>t4e6neS1i@fzJ!>S(H|p<9pPGv>+)=Cg-tJTi|o2J2cjQLLfZ zIc!<_8LMQNT*wS_05{1RpPl#gUdE9^nC9y5d?*Ey$JM+*6v5^^rpm*Xk8)k5&r!rV z%JAW%nPxCN(x|H#xs;rN;ftV zxPV5SV(PgTAx>T=kvQut=Qybj{-)XpqkvSs zgF^n0EsS6s<+w4KL>STPql!X;anYsU(o2FIWF%2Cmpa0ABOV%9!YR(Pom>j!7QCSI zX{VG(;;_q6+Q{&&(y#bTTBU$&qlqiHoAoFydNFmh@gN5{Ks!Pcv$2!JR>HCLA3E@I zKh;#xtF@qS&_^2^>CzhG2^lZrwH76q%e9DV{hn6Nu@=EDXGmfQ-LztH8Ur^Dl5om$ zxqw+L)IAjHb~-3#Hf5aUFD4VEp&X`F){xJII*wCx^EYlfSkX#E_~hY10$(4at(GYuTm8^(-D*d~&-IYk5Oh{Tl9 zgi^2f(M1G%sm5&-bFo~hPt!;>|Hg;t%^cG|>BU8|)Q~NiOd}beW>BZ6sH2&9Cg7u+ zyJ(?8ztLjKjU1W8C7dEjF0fANYF#Uv2qVIHSuT@d>Y+w!7(@@fj6o!dq10(F8wrsR zO~R}7Iv5wN@{Km(A`&|x9Hft8y_9NNd6*6&IY9(zvVk)1gP%Pf5QB$NZ8@ z9;h~r|`q;)_)cRhw>^jr?j_)URyXJW|>(1^&?nvwF z_CEJ+&iHCsXRJ0Oj0E}GY%{`)1+qz&$@4N!Cd!Rk#6Irj4lZRl(fT^u%pc`DeIn>S z+d)3He`5^gfc2!c&3Gzb-A)`nnh`Sg~A|r{%!8(d*(Kp#c6W6naa-L-ZNxZ{R z8o7ilA_ye_A&)phuwmi#H?Dkzz0~n5=V;>v#*(D@IzqSjR{Jj0NOzXESPQ$3xe|0i ztL56Rx!xw-%2UQ&Mv@V1jy6J#*NuI~YNJWc%0TJSSyZxAgJ|Y{4(Pu*VN^*cn*;8a z7j>TVGP71qsU@C^aL7D;O%4;R_0|~X5@&QtI1kw_Hx}}keW|&Vd+g)Q>*N#TZCS<~ zxt%FQlSl|Qh7gOBUnrqVoAKe3D1x!+TkN5M(IgW@g&(o7fcAcuGlIogns8G_7aqc} zVX~8Ix&Z?S!o;KpA3iOl6?Z=tECqxUr0?l7G z=#}O_w$-);MvwWCaZrk7m@$rtJiu~Q9Y(mkDL=_Eu`@_tHSaVorOf$-aX)$XDr2bL z%@Ou$i8WUbXp{B4zNxN&Ys`tfA8@&OLN2xUn5C>YE;9Zjcgk)aU=SIE6G#co^!Zz# z8yMIaMj}D<;=%X-QJxG!*+UgQe8{C_@fnAyr<^uCIVi`gVPJLZ>Q9~rb*r}qB9^VVr-I~*P%>ArB+WuVM0BdsZwcgG801Nd} z-j_7FOPA_PGSzs~9ARE<3zj(J4dWEuT*%|xLI5-6Z!VR2@`&tavhf93tO;0Pr09)- zkC;34F48I1&DI{BqnG$|#-YPms%6RY3q5gKKY3?Y{Lm_iZ{vxRbhY@m`>dig;MX^}#CkWow~ zjc^^#M;v5_7ST={UVQSPj3bE^%qE*n6wyQyVL14e(=_P`t)y2gu=AB?oac!3UB}n1 z*YvHvP2Md!Su1oj11V%53%ym=-6S7orwFh1ZCQn^OX$O@Kl7dOlE z5>6c(0&Qk5>7lpU?OhLZQ#?k@seyd8Dr%cS z`vIOMGMqSSwH-HGD58Y|5(%cB4m`}3d?F>0a02y9Jx(LV)X+r^aX95sxsY^bF^Cw7 zsH01N;uKBtG1oANgH+JQ3g(gN_qpE0_Y^UiOd@%h3rXcX?YLOQK57|63_&!|hD-lc zWsU20&%bng_e<`}tOqTdb%>$5ikUp;&9^Sn_kI7duGApw-{i=XW}+Eot}6o$URIZML%R0wVbAw4!+|!P5i{o4CO2KQ-gtl z$xVzU!GGlZJ4fm9IjoZ`>Al5WZ(ZjtwIw#ql^`-;AJ{Fz-IYP?D8x3$t-&5H6taN{Gd|%bMi%Ci#=Le`(E>St@WNB z->sHAaFDG;Pn%Wpt&HGW8AUWT{~rkrl!Xi>jv(w9Jjxt0XrL1hZ}BIUBocs-!Y zZsuzWS;MUimjaRq*13GhL4AwgDU*1<;!?_J#f=GA(qB1`$b542YWEaI7a+*Yf2w*AW{Gdu8dnu=lctWr-g>0hvg<~|3K@@?k z=Om4OH}fzO2_Xb00d(TR!(|L3k<&EMhX)T{yeJj}i6fL}*hmqh7(h5P$RnCn?4go5 z5%k;@rIk{+hokBN84t8xW{i1fRy1<{N3zZ~dy zb;~0%gDhR3AF-dsj3z~HmN6vrwH~EbU*UJoF^O!VGVUQ{YKj(oTF9dFpPNZ$5kyXe3D26 zfx3m$G_sp=+WYOu{z!=f6Qzh2`p74mATo%?i3VC|ii=fp1$lmmErSRGDWQR0zTyOpyv$rOa1wwi z6UZi7w{eOl;)x(Yl87RRS!5ICAHRjv(M=;=c<7}U59vhVB#RiFexQF6*+fuG6FpSZ zKo1r+Og%|0ol-zDp^PDoaR2V8m2TVwU}8{5H(p{1{{IeOF9r~W6C2S46X>^(J26o* zi6I0JKD_>l?)T&N`=f7QJSl`q;Qu*9rGHF$Q7k>I)%4)RMC2M7O_Kgwf2BySk`W{^ zlthB{8$C>&OqDERabUw>8hJ!eOB*hKB{&Jd;5~Lw&NOm}^6%d>i6fXZG|1W&^#4^4ZoG^ohgimwO}tEDh$Q*(!AT4v zfp)ra`JKdqB7Sr@Rw4=Vo4*UlA%-4$@KQ}P-6Ro-lfh&VEdxmqhvI&9bwnZh8F z=%5D|X~YqN3pZYZuwkPOFCIpdNh~dN(8mB`2=!Z&BMHGl6%BME7zk4sOcJ%U)8k)X z;)uZMH|P&0nP`8VMoTCTqKUxiN6I1y#@UbckxC4q^uL}$tc2o2uoz7?iGD+8s{i|q zVECcxAOf-Z*N8-73B|;Y5P*S=FhX%iBq0Q97rnS802|`}{eh$qjRzNAI&tIiBih-L zK!o3aoJ1@ker&f)t7s!z(uk&mPF!?oA1;E$;kU)&e=5+X-MEO75S%0uLonNPAEgBP z*WVsoT0#{q{m~xDB#lVCeuJ~()8mxTNB}kr8BHFE{k~@1#BNIa@kDy)_T%sP-OP~$ z5x_ZWY3CmbwTjUUlz0wNtc`Tz!NYJeC5Anm)*4Jq3|i@+k5S|h&sGjmt|us=S<*-( zjDaK*){jK{0cFFFm>a+ta!F(_r>P~CSVH`xGLdM4$stuDsG?3gNF`Ci{dYbRCk{Vq zUrUSjkVb;^!~S;Gvr~)xai9*maQX4*cG~=1x9}ssXQ`sykFEb7+SrXp%e0OTEHQy2 zdWJeGX{MWAeE8_04-e&3)9L>VtNDv!t)Y=_i6)#tEuxZke^jUspAn|}5!NP-*L=-_X zolx_pDdeAj`qA6n6w^pO?es8> z!6Z>hBi;PT8S4B%b|7{PKPKRapKbYQcbngGz?=7}4QNI^Fo=}3AKn^jq(u3QN zAlJ}B51TkfmEXtQ|CxLJ=JI-fY{iFx0mKrF6CnU0o**24Yr7jS7TF~D9sVX07)TuD zG}7s>>V9{A4vB>I?;>R)`I3Me3!ne_??`fp^LMR@BBXy_!z5n%10+8B+lYqv12p}k zAeC4``zu!ZSG`oC38vit&CEjmGhTlHshKWZL=j8?Bgr9_HrjFfuce)C+zcawXiic= z3kgKx^v_f^G|^2u353x^d;fDr@LT+|NG6O*8tB5nLa0nlr`U)jf@FF|d&j7}g$PwD;(+T<+ zztK!6$~pNGv5 z2lPscsU(*uLe#}Jw(D1X&o6R{Cs@R7r8~z`!MU(SnZv z?qeeRNhC;H@ZshKdNAb_aX=9k2Ju|NAa0Z?B(attBJ^hJso`pp36XhZk*YJ;!S}p_ zhd$z%L>@f^5h6WY!F*j#2?z9FMB|i?i6xj=95nJYNrW>BgAO)HE<>%&dV)?_LNq3G zP*mKqTo&q&9M?Z|B|c1c;KoT3>2%0)29ahJ5ripEQcDd}2_=%B7%qd^PY40}BYk?D zH4Gq%d4x+KuMMayg?>?x}GMjF(PH6jL|^^&_@wH2yc)|pq3GY>SeUkN-nKh zYuwLrxlgz87YFqZ(uk2k*l4l-OCKJYLIF8^Ll5UDN666Eu+b;il1PMpM-Xw`LJ9jB z!yKlv8v)MHNToi4K{W#yOfKsrfp~hfk7h#f(WP0EO@cP+IeO)138IU^M3GDuqZrFc z9MtJ!bl~I;+GylL(y`+qgD@RTJ07;tO*=m^m<+DOpqp#R=K@~GMXml!5Ozi(bm<0~ z=#kgRA%hN5iPQvk^Cwp_m{clo5I__*;x&s_%IP4FfgHg`14$CkAX>GaMqMH~M6eb? zsXBSaCaH_%EEzY)L?N(mrV3pl`9c925=D;UIJmeWZ) znFJ6_3{Ijk2*%JHVz6l%URvc12`5p#+Cz=pB2EGs7hCTD;w!bvw4 zGKvA(K^Ld=6vdp-)m(r>Q}AN2k5atyDARH4eyYhKo_yxffQLp|M+EVfog(&QBNnG7 z~?DCM$}46-DG zKvV}(Pmea!OP%zPO{{)~jUetIh*bRmgAU5DFyskIBTygJ63UoG5HZ|G3)Kve(G=(y zx@gt`^b#Vy7+4%6L2@`sk2WwDA&_TCKzV>>PH2bL$Rr+-bnGPIpo_bSB8oCxD6iwf z#aCR)DE4xUVuoWU+4ztwmRQFq<24NGfo~W`f&N7cJLN@kh~YZ|Sjcl!(_^J_ieJbk znJBrP6cS`AZaS?B$_bT9=5vL{P{uJ1;lU$ra&WN$FEQ-KO&i}4Nest{BAh|=;h>iU z;`uKpsgQ0KFyETY4*t{-cC(%LNW?1-Fogl6qvX&)2kn&O!XXl-Yg?!`qPw@IEnB8AK*MrTpV0Xcw^7;6&S^*gzaU;^1j z7K6n_fsD2~_(l(DhBmX^ct_^T)f&hlU8BF~Ax_CQnazzHrh{4?K{t&o*9NM1MPkX7 zbqr^qZsa&V2_OzcNS5pMMH=-7<7%eM0zJZUDzuPrTDge|-HshdiEdc;r`$kX~f9jvjob4d3X#at*)5J4#EgwsMLU(<apuIO7uPBUha@D^fnH# z)A%>zxXJf0zw$XB(8NA{iDunRFZoNEF{J8$2qT^_diY0H&_D|_NN12LrwPxz~v3+Rc%@VHSK}vDR6p~0%Crwl{o^CGDk<{>+WHW)O6wyVG7>wcq zo}-OQBbL$fl8&HR*Xu*BK$&?yin*Q<>Z{nWagVw&VuE+AHXneRj6WF1AnPpK`H@EnCR>&fNGMB4ks-W8t9DrD zIm@qFL?K@r&oQ2voFj~Ay^rIx%e%x9p@js{VjLu2Zj~YiQ((QvpSn)oC6`{klVbXG zEN(Cx7$djnL5}KXttOIW%gs?%nF&nd8Xe3b{?JO=>5$_Lle;M*Si7mCN$grpgSJZ# z4!ZO)swp%MaiKim+rZEIBC9E7pEPhWON|d1BiCCge5pU_3eHm|6B$Y{uaZcx-pWBv z81uMN-lqvTsRKEyN8~LMWfYT8E#?U#Wt_gp9^J>?xHzVLbWz6)0%(%2NR|7HKE^VH zz4Q>OKJ1*)x7e!N%`My~pIMVxskc~X>7YUC7${fB4)SnmJ%4LGErg>yj$Oidj2b;B zd&rb*Ydht7K$hSnmSoOKfn3d0@(Dtz=To|ITZydEkK`M2_y@I10)H{J5^GR-(`E}7_EN)MxsGH;Vj~PUvni82?j{KMnS3&2 zCZot>1?MPb15Wa^nm_d$YH5)Wd6+cZdNu9Z!hW0x-E?E=-MFdaAocV}DZ%9W-qwvg zY2Gdi<#Wkr2p4lN*|ZtAF@TZQHrDYrefUV$ah#*V2;m+c(@!{$%NMQh>kUlc7k-e> zxq`7wz#@bHN~)w$fKN}8O|*{%n%&1m{hrhn`H=zTBEyllWCWSWuA)xQaT6BZdK?>>7(|Lw-eoA$^+I;)w@f6NKw}OulA?FvL9H!3rQaF9 zalhQD4)*FctAb*V%cG<-KvEdaKw1IS*Vx1%=HtVVyNHnsd5aLOVFjZkgD?3*i!B#N z_){KafZQRSWRN5iaB|M~06*v_#(pL-$GVWCRLUWS5GQjOL=+!WOogtb3K!p^sD`nR zeU|F)tTtYg`8>~OgwbIXawQ|J#r(ucxf~byT*45%a+D_0thpTEw5HI)F1dmMjO2cj zaS=oWWDmL*E%0;q`+2r}|)8|=bJR%F3 zrJoWm4|A(<$tOqFgD3D;%1mohml zBXD|ibrE-&@5q;YugCNV$JNUrwlIWF4D)Sykk_n@x|45ZDhZ@1x#rA%O$bxMEaPx5h4Sz_@W001BWNklMqJC)H5`(TkRYtmRkv=T)*TG%49bM zIAk)Bh)$=T26=|D%rsshpZUI(tl>opv6I45syNRqf2Yb$TI4ULa)HzlPLfr}Q#?iv zqZpwb9Hx>bL=$ho0#@i+zTmtS%~4j!6vhxI4)U3xZjN%8wRF&-ztB#fw30^#+vujA z5qL2Ppq?mhp^H8GFPd?gJ9&oxvXFG5tPI{~mADCV4u zM`+L*+&JU~5*Vq6IL9G5LKyM-9L3bilSGhCGHKLk0*AGR7YUOAEJwA1uNWXhtq*ut zU$WBJ!7*Di&&X=oOeDi}JoW50jxm#A)+KD_FYm*=uCL0kgc2junaorjKoON@3yb7I z7SqK^cKDxQ`smYl@u7^NUb{7vTH54EVhCXrp{OiCC7wrd5uwlGp;iCQF>R0^$(C5g zBigQiQp7P9;~<)qL=q>XaY~5BQ>|58Mkt+JMja{gB3&S9Tp<@*r&z0RYns;KkuXUn zUDIgctUwMU`HD*FWFv`^X1$=>^|ZW69C7?lvI%7qNB zomac=)WELc9v9zIAnC>)bF%rWvDdiX2$H?#d-Aq%r@p|?jMbm%C09SzExaMa`9O~a zd};Jh;`qqi!27l+$n+D zF-q<-N+gAmEMz!Qj3O2XK?usr9HyBJLUGW7BD}&y#A`kuQ6e+RAXsl^D^)y90nw62 z0!{!79%T%1{m3KbbmG#N*iWmh;WAR$N-3S3pdOe0%?aA|V(V#r%p2qD)CAY#-uLvE z&Ocq2wY2>c*CI`|#>frEljg0)YeuV)V!SQOjc(&lqg5{;RyN3ZZsT!lu^!=h$(3Sq z%==i2+tFqIp$|Jw7#=3*P)hV6IZd*DD&vUJSFB^Sa)Ys1Zl>9Ot@%He+1t&{vdsR2 z@dLjZ4HCjkf^dk?i%*qZRMX7~n(5URy7AHNhhYK`i6;cR_Tj?E4yx#(ls4Q{(uJ2H zL=xynI)0&q4o=ca9|0%^UQDchXD69N;Gh`~J}xDZDBZ6;Z1ALcmuht1FP<}cqVqX4O9|yFJVOv3iujIeY+*(#o9%C!b^IsbYBNcSjDf~Nu4Ei( z1TvWc1j`Ik3Dr$h(#c3-aZ*kfZjuPX&QTia^ZTBo3C1R)i6cliP)UbOBb^XELp>gu z&H#e_$IBTIE%yk>Wo*j`bg$0XmagIp}-PH$yY}e)n9Z`#R?J&C#vh zuX+yaG+(@~)oW}w8z<#aBg;Hw=1Pd+Gp5O-a*HuvzULACrzf$=MlQr8!uUa6rP18O z6FMg-)$GtPTa>XyN9qV2u2*}WwTA0RbER>F-hhkE81AySnKkmP&2B!#tA@%bSu8Wi zCX8vM5y~Xe3FU9j(cy2oel0_ZrIubi@`lVMLx<`I9O4=-Adyql(M1a31d>81cDYf; zkwh(>^!Wkeew^zl)pYkC^2swYoeUO|N2EThJE)W_iNxO!T<_86sqlW`+pZP8?e2xv z$88mTKK;$J$d||4I*MzwRpyDXM6Q!xj9Vqf=rVueUgJN;XL2_;GMD8{;aRy!{*kAR zi;3lsIa50I7e~0+PLus=<7RzHD!5VSd#|!Wb&m{`LVYmc9dnUP4fwoFQ-quj(`j!;b(f{DRFs%Y2e^e?LAq&&zd z9j5PagaT3tmB(cg$@;MVMwz@Q7m-RF;RNz22dQT~>4fVO`WxrSA%;L%AcKhOHw98f z4SiOD^)#J#G~4g{hilZXU3-g&O>8x4Cq&GuRW)L(N~jO2s`iML7>T`AOKn9}%@C{h z=u`={+L|po{PO+d_jhtm&Pkp;=Y8(i>%K0vOJwPBqEmAO%f4%k=)-4?mZ$$+TbW$- zdi{c=2HW!~`(x>6@svYe!#mm83!O6vMz7!ps!=8dDy43Y_{UfZ7gpRU+7poAcLP(EM+B+xIJdgbun?~4EO9w~3 zki)X<#`I-(D60+Ec*Ekt!guS1>fu`$D>ZMZ6gszteajs1erME@lGp#)o{6F3*fiMs zhZ$Z(N@Jlu*Tw=oSZGo`u6&`Lg|R8dR;M~juPWaO=6yJtjR9 zIrFn?_5W3=+lDo=C~WFHzg7O#Yj@gp3ZMLbT>S!YQ$P1*X3FY-QNcuTh;kP+eP6@) z{K-oE_m;b(vlaYZdNr?>&wX7sU;oxMaJn}$+T~DpRlehq^k&tO-tf~JX5O%IDNY*Y zbG(tjc}~!HeWFh9c}c<|INrgC2uK%uw=*>Te!nvPSl+LXTRG0gYW?%RmliRRBZ&sf zXM|*j@tW4k>i$DV$TsLPpPz%Y!C7DDDh^ZNjrL2ePd^EjG7UsviMociYrLlNa5lVr}Or#``Pom276QJ3ID~1g^gQ4*ER(~UN;ay zgPoq?brK-l$f~m52E)#qC>0vQH}KJp?!Pw56J+t`Nj6{DcYL9W~3kCKKsw; zKWu*eIIQfl{YtLE0hh%C)d%Qt%3!4w3Y+DjJAeQgN1hd4sq;Z*#mzm6JZMhMbQyrq!kB3QSXu12)e`HZH%`reJZelEj=5}fF*tBjc`Pmpgldnc|0}nWse*}2o zemwQdQ3XjWY}_xH#94Ql!CpV~_u*EeGTN^wRrxtb(6T zyyzFHxjj?hT=T^zK9qKH@y@#`hI`!#g<&0yd0v>)&%G&%b-7R>ZnCpG?KY2&xl0tJVgji#1l5B_Kh&yB~ggK<{jCl{_!zAiihqb0I z_V>WS+_cEjQ{u*K3z?c;j*FrJ9$H|&Bjr7ir$H0CwP3BrIpV9UlaXS1SiB)~+$VE6 z5@iP#1CeL_TjY`q0kE3WRu&xNO?&%CsiF}Y_-+v32?&hj7zKzAbu)U*&nW93$&Wo_ zBt@C6uP z1HtMWF8d3%KtwAy7IHlbuuXGu-D<>p3|L4}ks&#fG8aH%xe4JazEo9~GLrfCpL(Za zPuAyRPdUX*H<07b4mku13ur3^?iar9tDsJvH#5M>`vL>Vxi?wp(v{KWV*K5yx$09A z!Z&RBVA95%3hduv8YBt>nV<;OP8O%Kca+zLht@S(vP0GezRCNhBI7BC7eezovO8}9 zv?0Hh1Lge-voqy~hN~oIi&cSm%#E?&m4vk=M^V6~JpgbD zCz#9<2%3L+mQLa;xb=w6nWwMVLbsKZs@WczRdK=409fx3n@_dWI+86A!i-Dt^Nt00 z=4iQTfuxGLCuN1jZsPRKaAGOk8}gt_cB>OxW9>CE7OHz1t{gl#TgtLgna&C3^Wik` zL0}QzhzZ>a!zY&yW@DRw`}?HY?#(30$EnlZi1-kRud-snK9-T1;G6+g&=XPmPy{xx6x1fJX2f0o64|@6aA3Bg{io;i{`-Tw3L1b(l)hE$Fcr>a)h!@97V zWC?+t0juJlq*kF%wkF=vuvFzHmW@`Hlibr)3r+9tP!6BLMiojQam+f0-7}Asj?b?I zYUBXUgHEsP1;)i*@bedz32$?az1+O@;*@0(;?njv?UtM;>xoC(Ik-JzVddg$%M z)3S&Q{`O~qax{@nCRcYB=SKM!#>GDAa9DeKx%_$|sAm ziOcal@!A^a&$1gk*;-wagTGlg)AC_O|@oP-hD^l`uwNi~&$*xl{fy>r}j zjG@AGU&E`DidaKQt3R1Pw8wcnW}iJgSl{yOLZyo+KOv5%@ZT6sdtIA(%Y|4~78 z37I{Omft7UaC+T5f_>6$zF|}AV|4C!5~vim%dN+U-VW%P9e)o4zj%xg{C!SuNLWi( zu6!8h+3$n)OuDCb@Iqw8{zBJXr=!p+Sls%BFYC%4eauXDB16&pv*gVE&2XV$lCr{u zJEVDS;6Eie30{Ew)Q^0W0(?#&(=T)t|}+wCsa^alR?;=S6CYXSQRHerEDz;s)> z9Q3O?EI67+LpSEF+PWG(D{}z?$o3;jI)5HDlX$#%dv)CONMCLZ!uv>m6YO}*pDDE1 zj2n{P!<%W`_4YP-BPrb6D4r})n!u*?)k}F~sc~KRyIBKv38npY@9n|t3vCt^P&=qH z(Hw7B7QHs~>&SI0$67*8W{y{Tly4FTZ~KGMhh`6)v}e1n5$3HZ~p__ z-VuT;*EDY|v&xxm0<(}aK4|0}hz=LnRR4O6wNQdiws?G7fh8hyNaZ8JZlbm%n+QxY z%k$h#8?H?uj>)u-OBKT}4)+v^W3@kapnsFqI00#lGF6E;C{pF`gQf$0mcRBQFjB4? zwfF@bRDTYkY@s7_p;qr-m*&i^Y$mSQR9mLllYiCWn3c*UTvR;zOi+Ad)lAm*g3bfW z29hq7X?r>=5Pz~4UB@t&fc0%7)+JVuZ3iNBS&rN2o;*(F;^noE+r5LHo7DA12|OM& zV;@bzmSfHF|1wwch0mbu7~Vbb?J7)4c^Wh>VJ($EJmNk8DswB&*kawb8*j9=S+un3QJ z@Z|)b`wWmtDM&`_7Ru&m%IjhkB-)A-_{*iDrC#{0Pkut_j8}cJy?8Sb>3=<{yGE4W zQ(@4YNoB-)MF3WZxZY5+`;r#7!QNnEpUyd1Z9>|5G=Y=BhksE~0?--TL4C4584HRA z;n-O@>QwE&OH#f17tbF1iNdGI9O0hsN(#7Dh8p$~)7n zE>>d`M=K>^yU3nmY9_MG7W5gOsQGS^UAqnP&jjrKMQOGEEkwp|JfHBAyTz@%BER~C z!yMf;S0{|R22UF^y-Fcjb<8V-w6)k;&@rDCuyI6{JOCvA*IKNUsmzPa(l_CHfU&0X zjJ3F$FAprT(=*d-DVn}$>>p4gD!Vunbi!~n`-P@co-%L2aOxYWU%35L%P9fMt8?@Z zj`=g`zv0lU>Lr!;Nn@k$PiDu20vWcgLpQ)%oEy|12gF3j?~Jq5^-L{GE*>^aVJR78X>S5gsaRryGa^^2+*|pn_s#Mcg)sbEDOjtCX?EC6Me!83 zj{{VnOjMu?(ePaVANkf~!((V*CscG+Gs-b`+HIM#qF6DNXV=z)4sQd98l!3oB({nK zwT!Csu+`-|T(s-~H}UnBJ9V~ffd&a%)IVE@IPsM*?H>!U;(u_#0PHmCs^(-AEqm;f zJKzT**ywa00B042tV9q672ZvG<0D;6=34_9!*Zq_sX=f2GMUE-kqmoCK zZTOIyb|;bb8&yz8CFzqW;fgd?Iw!-cpXaR;a>uPVc~0kGYSTB%(U@VkN97#5-Rw#M zFl4$;lf<>)H=AxRX4x2X%;+0Bj?4uZw)sz5EF*HJ*K{(e=$w)=K}=AiDbqhGN;OzJ z-xjRA1(}71b1@J;OAPPbQNOf!9Rhaue)7lVg_rp4qLm}r|A^I7-kpc$1$GUh^KbJ$ z4MVetZbvp0moIWC6Lx5S3@)QT{?3gW8 zX8Hu(0hVXv{}MxsBl_Nn4x^veW!FOx(Go$lJC2b$aQI5D@ z$~Vj1r(}kzVD&ksCktL0p{c?@b=^r;&SNd|*DkYuoifF;p<5GK?9SwDaVQad<06Q) z{dPuZ`?Qngb@fFWOPGQAYEVr}SviU$AuoyTfZvZ#+KG6tkwQ=OQy$d62PnwV8W*F` zB9biMdX-4^nFuvC4ikeNIcxB){Dac%PDZub8459q$4-*}?c4}nyfF?aNJ7a3kOLIN zsXv&jVviWw8A3S^g06ERo+k|d@pouVKMvQ_-yk~&M@E)KRCQ8o{yvq4amtn389q7Z ze;DaHGia6^ya`rZvf8hJ`sNx*Jm0BE%aExUKjSqhyse(4aB-tOAz~Nm!(hK`1EJ)< z6wRcSFVXY^M5u@INPb9%?bvQ!tFwM8D*b$ugVU!h5+q^#aGTKFJl|Ab!zxYnZ{~_2 zi7^E0Iu)otI~I;f*e_tlDXfHvwAKW%y$;W@M*sXWl5*S8MtqWdm4$QadBB1uWN?th z8PbS2q=Mqwij8EaUHTWZd#)De5gq5XKBG6E>PsvEt&rHXD8xY#Pz~CXlor+%85Sft|Q51Ycl!?XZmpYQC)wC+qBR; z`K<#4dJv(w=+hN;p3ni6rO4{kHCmu>l#c2NmzRoG1_x@I6!YxmYTpORa!O#@I~8=E zXWdX2w{xVwlQ^t&oUHE=T$|p$I#t8Hi^VR32&+H*R2Wp)_+nev>9b0ar(BI+zv|*k&&=p zZeTX34h(hpwW@*Ya(kht6#)K$Xpa@ofJ$0M*vr>X22CMq-Deo#{#^HZ`2|}sG8wqH zu=DGl6T?4t?w-8W;jO&&(^BJVmtsgk;fZ|F8H_E=;n%UNS%3uVEBV5^t?^4+w_*kj z9~r$mz4a(AHsU>;IC{jC!4Gh^mUe&R$uCY>>JeM$E(PJ6?s6_iv}ecm*V*0x0mrqx z+icRE&2j+5yuDT~Fv@AFX-i@8sMeiWA%b}iDx5r(`nheeDTI=;e>}^o2l@<6md}%{ z3C)c%xOS067j8hmW|39`jIy)Jn(|3knO7d4^Xq^LuFhx;b1ED|D>MB~grki%I?(ra z^Y4#K)}-)zYCax%5|G{fCG>OTB0 zz1!qD-V!!apVIeSp~qg(Q?ITc3@rnEc)_LDRE5vEvINsA6v0`}NfJ&Qx6TyAGZ(-!m z!4wUKeZ}MYwAU;)gDkOW*tn?XenR2TmOoa&6VZ}cgPkO`*`X`3Ms}3O-w_}mQT&Fa z5V&c8zO_ffLuuEOaSDOR!vS$+C5T&f!T8KJf*zb#P zp!p8U#{J?2;bCt?>MaXrM+$35Bg)Y}DnZltE)?&p6o+5bmh89%xykaPDzz=|ZZdz2 zFVFd4sH<@Yu9UKQ4~(l5+^I@92iS=nKVgJYU?W9u_uxM#l)|9vp`TtsI(H%4emES=KEPFD6@yQ#vwGh$ueQ_{RvBe$A(``@%zI-tl0 z^wI-ER0>_Nz81onCY|opxiHEaYfa7ARzz!*$6;CIHb!lCDnWP95@$cMqjb=khB8a5 z5>;yW!_4OXC@xy(0jpwFsQpxhM%xqPE-trG^=LW0NJf$m>>o@f;`rLn*`N}y>o1cY zo>2Y8kBqb6eS$q$zaA<8KaOyixAo*lcTHl?K+BJJk-g~Bwye_&YWJVpDAxJLuR-*~ zM^Z*F`ot}XTYOx!&Z!C18;8oo2wmFop)6~^Af<0d4Y2Af2C;5aVkvz5H7VEKEL7^w z`}&7T7qa4i)Hp`SvgwfZ;H+&VCUr>sag{^tDjn@9#e8CwD>6d= z-vvnUN599}Zr{O#KJQwNe+{CW+OW?4*uh6{K`Z^*8XNA|LOgk+mg3 z{X|yy#8@}P#vtLHp=P|f-hPGgFE37wnL4wA2{2O{`2JTpJ&7?;;hNpB{KTn57Rt!F z-u?zzY9npKaRWME$nPEZp6{yL8E%8$XhhW_j^kKcZ-Rql4K9|tsAip)f1Kmx>)%l} zbUy|p=abd{H03mBrY_&G0ds4rpodn<>KDhd`$R_;Rm6l_LjiLt(D?0w%g4$DHTyBS zGpI@(5$s%ds-+TX|8Pk`6pGR6Niu1B;CABxEG#;4cY7h?UPY;Q8z!KwVK^%}o+(W1D_e0uG?KCVQ+Ax&l<6n}sDsK5+*gx?ZCz?G6p) zkpdiZ{^qO5GhrFXN*E=tlke8n%GN_0!* z+>=*E^#NZOj|cDQXy{B|J`-WgE4qd8e(&=>kbANdl@HUL!3dCad+a{ta@-lw_f={5 zJGE3FnVZl>L$H@e_DL0PNBh0{#?oI%-D6&T>x8Ma?#;^Qz=YPD{o;jw2#d#?XRF;X zkq)Kyzb+c@*aR(m#(zGPH2)XaC#T`)=_L)3*%>)h7mn;HV&Xg#qz?^Knk15e8uQb3 zs8BmY0hMJ^2^P)i!ENB_z9o;MP(4_Xnzw2~(YEnLqwPXIbZI7&871cWuKt7dk2gQ7 z;ftpbcLd#ddTn3*Niizi{h3=__iTCy`q2ORzdJm{HM90_qFp@IBL!X#?`QI@P+e1A zY`n+3s7<$tX_=2uz4B0==ijW3cs`F2_^2L@BWL-R=ufo2I~t2@!rf z$hPmh11HA@m*m5_K|XN-B+2i(=}3FAdmp8R!fn3olkUZt>P5}9$+gSZE|2E$yC--` zJ1w=<9I1EKY?Gw{i=>g+8Vf1BpA+xVxz=bv5|46^c>hDAOzne4$~Dq8!ltn^n%H#o z?4NTWnZo7aoFKD@{CppA+!QOa;QPv@{aan*GM`?Jh~COiN)vQcoT7DOA~_RRI&FnD z$UeWX5u!uFW9|jza~<`X*^u`F{N6@o5A5EzdH=)>bEx$qbO3(5{teLaY; ze7W@fy>ReC)?7+V`7TZWOXHWj*NUo=(wkN^RT!Pb*wM@2Eu;8o{| zkEXDl7>VYvC)}LF|7D$`vh}~~4##r+nt=ZO&`1e58onmM7k+nsoskQF&lP2wUlW_qy|l zLXPFfCiMHFlfW^yt_MfS_g)`@*iee?P%r+gfIt~*B)d|&OmR=L1*N2M;qQ|p6XGY+ zqho$|J@t<}57wAhBtB+f$pJj16?<>C_{{7R))McjC-#eDs0I_miIl)y4NrvvaH z3!(&^ZEgbRHYkBQy~Da-`CLQU=TkuPNw19cK;3^)i{<{GIQ8wzeR5ySQfq7jKK2E< zKWo<__>zQN^He;3-z8bTBj&wnDa)TK_>1DwBwpt+lcc6rGqe5*fiGA7 zz|5uZGrXJ1ITz<`FuA?IB-*uz>RkLWAk zcW*|7ALV}(3z=Zx!EvHB48W7#NBg%v{BR1H%y(atW3z*4x>LKEs^clM_?yDjXJmax z+o$$t42M@KacM+IVbq17{t}Sqh=o29U2Zd!?~ptFM*F6yw7lS<9g5;mkE7`zeev4D z$d(fy*fm&1m&QsphcT+EaT=^zsD^y^ps{MhH1|NdCZ@sGN^>ix-7}jJMbvUetRFQ_ zP1a=}+5H23KJ57b?Q`RRF#F*iGc_&i{TbS~fBB;DK^x<VX-N>&C(%eRaz3Z{8@A zOBtVz0J^I8d}O1la|?%08$4t6T`?rNPq~^>?;cxgS$hkmWOhdXccS!-233qqSiad*cpMZBi5^mIqGmqR{`5MqEq$prV+F%1OkHyb#JM!nIzD(C%y*}z#IZ> zid+Ec52;b;PPJsr%^JpEeELTFl}Q}C+hYlZS1jVhEEJ(5HZUFdq;-jfE^9xTHo*a# zmLVBV$`lJ{Q8C1wlez9!e!Y%huQ%Tz$R*WqR)4k~t60hcW;=KV_~yu*SC^PKge>YL z1B#u5JP>dd!=&rWxL08Prw+UpGD`JC$wUf~L^ z%N38h^`gS=KYuxIE%tSH{c1z^bqn7;)?NO(GI5}M*gXUH=NiD-31v!xCNa(teTY)6 zw;vZhO9oOVH{CvGS^LF5TCznR<=pqLOAOz53J|Ps^wDtM-{KCr=W!*QV&y38e;XTZ z!xF63N~1F3QD2CpuHi^B)P?UmzWT|?!Yu_G*%f}vBf#G&)cP0A zK{!KMk@$gVS*SNxCQDd+2rzX0W@9J+j_m<=aR64(*(58Z<_QNL&ZAghZ$fRpJ!(v? zvI+v=ohHTsS?+{GBo5x^sO*s_1Do6u=_y_VaG0w1jBqj9n#j*RU?F*Pm;%0dVmtuh zV=lfq$)ckbY;07{Kp(&^`SR;(h#wBx1_2fU(gwxlaArlZb)6@ZN5P)N*q(phIohTEpHv;a) z&KRXjBs=^~*SXj0OBdO`>LdAigMh|E)Dx$ ztDJvz^hqecI(J*yRq~h76e6Pz@>q=5PJuVHh}#8spGyzDAGnTH2}|R6Lij55``TyyK|EXik1il*L>2U+rPt81xgL%T4UFh*CTh;d1DP7z*Po5k{;=>)H+U zdKspTCJ(>6@h6ed)`EwqHan<%D-U~qclBiovOuNSjdk9{;7|*hlbGT3ZpSANsZ0CR z6NqO~%@Q@Vh0hTgC_(K+1ce8yX&i|kR-1=jD)kBsYwp(*jdT}Mr3>iZ@d5K4N_c9{ z@ZT$PH^C_}ft?BBFm5S#HqEm_1whu&lT-w;}MER-vGZ}0+9lv)vUsWjkPW1JLF9CoJbY!E9 zR5^eLjCFgr#vCk0I9w!tptt*aE7|b-AIJuB#2T^?7+~j7Hb22BS$UqOcO5~ z+Rm6`j?|9TBa1PQcJx}V?1zkEnF8ffc~4h6-8 zyKz4EK4XAz@Q>`l13NYC8hrFOF%(0&r=DR-mXk*`V#<1cknb1-#D~v^TF6JVJ{K)d z_V;AZcA!wQ9ZeJp!#7UEGIiM3Zfw@e=Xp`U@=yUquW<}_$@2b$1fz5<89S~l@`vNk z9Yn9HQO-ECF`55?wRvYI9Q?iF>Qsl7;8$WsHslANy)T+d}7lpM+-XW83R{a z@X*UNtzml@ITWpZJhjSslbr4Tu`z?}so5DG{JO#liJ&-DT9mTGV>`OwcZAaB@Q z6A8U*ROUsKeIVr;Y5r#APH&3%#TtZ5_)jTi4PNwVZOXOq*@>Xuq-r5=>X%un1cq0( z*A7(sDJr}4Si+(5lS0Qo=mUNi|FnPbp_$tA7! z6y08}4x!b2-F=X2hLef4kfezgl?-psHp}9$WL12fZ@oIx9_?V=T8sjp+(yq1!gmAa z-&6FycU29`ms?7$+)~)s6wT5W0(zYv*Er2!-R_ZFL`Iq^aL6A>aMh0^9#OLhwI)J# zN(w(Yuit_(;wOi-P4+=nS;H!`Qx4H+SWmbs9oLQsiqUg1s>z)wqmq zoBD-eMLa^p=R!`S*7II=b za^bsVeGGCJ%oKWfn^Kt5qhoX#p>XSSX^#Z_Y@5RPE6c=(MslGBA7kJ^6*q!i!QS;m zj{c!Zt^ab(;?%Wl`w3a4o-z_H|8XKxc}h*j3m(WXDW`1v@M-{io&>;1`c>QBIr3m6 zX_$ByZ`aM^RnHKLmQ4qV6(B$Kvarpyv0>vP zY_p~#A%UP3(GIFN=RzWMn?|q?Cs+u_*A4Nfr>popq#IyIgD94?viKJ8QhBtZKQ6`a z2r?k^mbwQdC z$(>QtA2ob6Wei#RdZ7A30YoCW1fJ#3$upBZ7Zxeg+^~cB5xaRP=}zzV#t#RZ+S?nR z&l?Ffm@wq*^Zz!+6!yk_-GaNFs`yW677%p&0?Xfmhs>p(O^x zinM#Ndf~H%R6&s}l>W`zoYtFL6QzCWu7cA^y&0t+;?h2Lo5m9C+Mh&3@MVnGVqT?T zdj8-eeGdhnX%WoPc7bK1bRWfdvDU5M7wi{~5I zMyAPxT3Ku$zXU$=b;-3}W3Y^PwkiX(fOUOo_~?55WPm`8vnxW-6ny(lyt_C*Qp#f8)$plE2rvzlwYU+MgfcM=>_HIDYP3XHoG8{u=Dt&SMZZ6w<%` zmJsWUrg>4-tC-dG;O^*}3u&;9Pcmdgmdefp%E2>p z{y&cmbWLwWRO2(cZ?`k5OqerhJc_>)GvMh4BZXu5S7Lv*x=Q0JAh7hEEn5NzY~ch~ ze=`ORKBMbje_UG-Bb)gg+6BNM2W_<{Y~THu^m)-YxymcJ;PmguhxLqc!In8oT?V}{HX5oxDJo% z^q*X|^ZHf_zmsG73*c67zRGK3rLSTi=MBa8GHdg4ni@=yCZZ(eQ^LyP0ap`npgYDo zsd0%BzDw0WkBLllfX)Md?)vSE-J1ELvA^rBWC)+TsjF5~^~mb@}-pt3&)2aauA`#=ckYZ(0AHI!hKuv{9D>s!ReC^oN}z1n+_!c!DIq zZj-OMMQ#QSEsgymr@LBeHwa^3Po|cHvf4~VBr@Fe{n!&0$ADRriW@umcL4JuC4+Ze z#QDjSV%m^6osV#Q5jR)z=kA2VBV1IvRiEVP2nqaCwK!;6>D%OdU z`wbG%e-wMtVyD_%CMFZ>Rvl-#$u#djTK#w~t9a61Dqdv%Z0;=C;l)yU1LDmx>ZYcx zp+GK*h7s%%ftk7Gt17&|d|zuqL)Z}eFSyY=Ro+7;y(I%OKjjs>@&I*p2mGlUtERYa z_rc-l23~7gxeImkpQ+G!qr?+x)$+TiJftub{;BA!#q&i~=yxxbY3{J1g*<#=oB4A- z2=%nQL>9{-R?1tgK(aSeG1^}e%MvYBZmhLB!zWWCl3-%SQCaUJ9|B!*gnI^Ftv_w) zn^b1$AGUbqmSqn-6lUy3=mwCVV!gR{ZVSx?LVeR&7J`57`98`sbKy5Mpxai{8>Kte z?>ema>2;eKjxkqCJJON$%u_8I8koGu1G)&{233#R0UH`$cS0;qocn6lo{@vJgNy!* zTKm?=Ha$PNQXAYB3&M&U};_?wB>Xgl4k=jA2=SVlqu z>}&3T{Ogpx=?0-CKZV;U4*OG)XUJ_MZc*1mQXU6@ivSmcuvDjVzC!1Y?DV|e>YHN#)Ch(liOuM043mM20n=N#|Dn~*YvSU>#h7DO8!R6Q3$ES}Xb;X7!Plm3UGRfP>FY+$nySB|af|D^>?)#qrbY|08u|I#wkyquGaJiY$xX|7iE_Qs7i z{-?K*m`9IJg-;*41Qb}H#&3POl79pWK_$FDi_bTcDpYmbz)e9MLz!v?dEGBO*=HZm z#bu{#SLJhc%oAS$a>jq)PR75Hl?UAh9`;pFDz{pSOKvMI)v%9cEG{(NwjEP(HrKDx z^z?qJKcy5y$PBMK61$4V@UIfRC0XfOXbtjv^B4AW?S^{B8i$7+qcVkbx$TT!T&#}D zI?o_DPq|#S3uK(2D)*Nj2<6)ahEBSlOGjM@UsnsLDyv#f&3)Jn-yc!Ua?1)e`MVfa zL>2CdN))>@!U2DAUioiSHlRQpy&<4y&hf*>vWPsH55qp+7WYt`xB4?arqzluj&o zg~m~`)Qx}e)){i|PRSzpTV08y9nk@wdc8clL-e#H_hDMq3Xbp>C448iK7De06BWk) zW7`~sap0dZ9^tAF(G?nkXJ`-~b+FHRhOe{Bc~jiN;qy(y+SOyW4&d5iPm|)`Yt5Y~ z6@7V@L13B=_Ba||R>xZ&Yr+JV5f^wqLsoMaKw8LuMFysPNMo-_RlyLiuztBse?8ia z8l4;bC@JtB5UnE{l_KI6V=l{4GLTUIK#Q>uR>IlzV<+UJu_`d_f?6anlM^q^ylRzE zwuDfq&X|-!hfW|Zsku7LvL|JrSY46oV*if`^Gzw8cE1GfL+NNv>F(8+5;uVHY@O7` z|0G1{nc36)Dgd0d*IeNI>a-mhzgxXMuNamz)?O8rVwi~S-Kk7qfaWm!@E!IV|Jsf^ z#K_u*Up*D_6>oBBundqE%ifTH{q)J}pF73HjB$N*8-Pxkp^_ftdVKd9%B`75tZ5P#7bnHeae z{LUwFYKu8UGC}!+*6Ogfj*mDADoH)KIJ`KYwJ~a~4%Fa>Gll3uR5BSnSNSc#p8Iu0 zB0ueuQe1I2!StZv;rk`kJ@?n!5_tZs2Gp&%1rc^lF1ZF3bVgn(D?7anzubE4^d{u( zVQe+q)$*@Oq#((eGs}M(U9Go2DTk=_X7b!auvwD*8gjB9=nKXq539%a(KkA7~a5hdITHQ^<;sjP%!~L^|EQqvFTz{cv$4K3_H>Ma6cx`{7W$ zNoesBkdV`M`|A(Gk#@MZFH5|y-Np`oE~!m;;4p8c>H*WXq;no zrhHWHoDTf9y(u3L%#1xF;nZQamf6WXNq35Y^VBTF^Wnk5I?MF&J!ZGc0KLnDO?A5Cnt+$ft{a(Z-ra|_hrNd-ed6!Wj0Mn)MP|$|_cXrybjJ|Gz;|D4%HHuV zRq}D;EeI~HVQzE=JJ>H)%Z2lN-83rLyWEzFzLtT&X0_`1?icRe8&g<0?0(R6*xJ~t zsOojj#_ZE*f`S(x&Lvx0>Da(9$n<=jX!V=IBJmf(qv7K=8!bVi%71B0JHUy6AwHO{ zXUE29O&)9C;)2x`sW^6HEuP&&cCy$~q*1ZZBiEgW=egf2mmmBp_b#KTJybAc}tTqE6jh zpnLf+@305n8Kac1GY_^k3w;&!gn%2}iu~k}aGH0R;qLi9FmGJAYqNlanz(qL`_}H+ zCUk==$^uBI)1^%vdNL@sfov;`j*d(`1hnVGRGk+sbR5%P4?obchtAO!gt>k9lV?O3 zeaBYzI%ag_i)xu#j@xt_ZCP}&F4jh)VHie|V={-asvhlGL3PK062am{z^>{=^5x*o zuI2FZUrXDX-0YH!htCTfKj|#hYkwNZ%d)-i ze>vq@xXDJk?<`S{RA>A%4lRmGZ>R~oo{;+W&QE(`iz+QH6s~B%q%D;&aI@9R@S=j* zSxho*LBR#~3SFQ!bb4RUGUWq^1X;d)swBG^Ap=Mf`W)W(d$>w)nDkO1pMmI)MZij zsT=8Ta2bLsOnoWp&9{hv7E^(GvT8NN3(w48cmya@rl6(8s-cAGa5}Evm%kpj{b;_>Pc~rlF6|e7C2)f2UdW;`22Zt>KWe#o?`Non$r|>~!=rTj(vwa`LBBqF14BF06gFazzl4F2#htJV551BF|vC{tih$bR>+ zbm#Ycj4kgr%U{|3tH1rz+P{O7kATN~*%^Z)oMwv9?nrE@!;u)4NH&hJ8TGaB_m+(s z;ml-au7(VbdSH<4c})&sGUp?$<+3{6XlhPSB|fAleQ;z46=5fglJA6)==7oiF%2W#6pkgRyM@SxrcUY=&>s}^T+*uO6q+Co{7jr{u6BV zkrwte>ThYg!yLR>9>LwBHc6)ff6>EkQ#Us@1Nn`g#n%09*y4|^#2q5o zr84kFW}>}~DNk#$z;_1|@=Op9^ogX)<7IEPasT-=3D{7}|L)wKu)jYC+dAKwut@?^ zKyH^m6i;xDb29%C!`n{oe1zdCOO|FYYBrYjq6>JIk@3+z*cdSJ*MJslRvD_pnEdC{6OBH>uAF?9dR`TCZ@S4jDN*YEim<26vd zO8(lBv}=OAswK3-wMy-h~V zYda^zoDltU4r`AHn*@E{2a!Y&1+Cz@qWWl5Ppi8-yP0gnlOi*lAVC8-E3ImigDI^G zQH;xY{M)(@EguZL**TBupIw`hC%+Dij&!~#Iwzj<6LzMnScsHiat;Xs2s-5-^Ydh& zN_7)BGz`g&?g{oV)^9zFT0OW?b%9Rwz>QeJ_{JJXYJR^=LnfT-1s0(3zucZU7}2_1 zq&e~sg=Q9J{F$vMJ=@XM{3APbcfwL+t3oA3M0e^*8^+z``d~#1SMkSesYCLrAqHGOc^D z_Jghjri(mc5nBdxp&)w04KZECMA%I3iKlh-tpik^`*W@df3x; zv;>L=V8HrHELUZBP{x4ViRw^nAd{rW$@Y(N=?neLJZqYqVB|4QS605~V9;1hF4DJ- z-dr;O=g19y8k(1#TZ5(wdRdmwG7IB)k3NXyF2Go{r&v?hp|pJt_?w*zd?uT>O|^&w zcBJ}^u%I04rEOY-Nn@Ru&2}wI-B;zNM~kKwYQd%c?Wq!gow)Cz&)<{(r`?N1hhhXC@U#PW+as0clxd;ikaXoU!Gt}QA5r@UUrDzjPTp!LL9&WyA%Y=KkSf!}+q z-cX5_XMl+(8*T-$Da5rFgc?bigw|HzAJkO_e*H;FMreO)B3i8X)j^ zeAwAU@SA6jZX!9G4be+rr8M~MP;-;T1rFlkKCB|4ReKD~hw@Z5>AO+076xP+tIACeIy6P_|%x8SW~Bl8=-J9aN?6+ zwN0FJ*>*9cEtWpURaRNigEcei2pX&j>7UkZqYZ$;WpC}1$bbJFN(G<%BBQlA8iiuc z$?un|$ik!DC-2y!k2&yp$Y?2%5=gXxkiSmi+mx{6h57_t>cFoymc|lj!WKhj-H)aD zXO1LEBh68opI<%-Yyr(r)W4irufLFhz~s)B+~+1`0=5(XtI2oBZ%g9%TA%0Lb5MtC zUb1e!cjP9w=aLm9z};qdrg(GdgzB;SD4BYPFlW!KcnBHdl?SEMX;%ud`1sY^KV4?m zLZS(7+q7E7GX0B2Nq-AEa*41l^t=fm=!eShm8xuuDSCgu>Lj|=!#!SEm7^b=mZpMA z)J2U?50Fn1k^UcsEu~2z$l&5fCsy_5p~=wywiSP$X<=FaCZ)&8Z*yP4J4mu4nj`ec z1*B$~Mj0F7X!2`~rEy5%JA{uarYB=K8u4#ZAqMY~Wr4SiRu}lXbn_C@&tZoDWP1J0 zt(&!$Ex_v%zlh;X$`2R6uZ&Ck`?+D(27$b0qEec0p-tKPQirQ}o>jDuW+NCYa=`Se zBVCS@wSG*gwY30AsR@kyfHVvSsc_fh0h7RNjM8FT9>*SQ)%N5LT(Q3+IyO+r3pZ zE&1f$=WSXS56+@3>?Ci?`yA;L(#Cb^aZhR`-~vjI=bQh60f(dd3o|CqR?cxmh;GGT ze2J|_@G0NAz~Vl7cocfcG3~jPO3GkVu;>v3>DW4stik9e;5>SvD)16#Od-T~ zj`KC-wlbD8;DHsd$ry~g3u|jes|z_4PWz4?bB+j9Cfb!=QiMldpq#coWKl8Jrw&)W zBW&V6@=PT46xNh3%}WaQW@ko6WiuAmyqGuT&0De@^8>(ljM+~P>9ON^Rd^i!%6Et9 zm#b)L2-6<{F${!U*ckMwK85d94zxXR$bjQFgX{Npgmb_stwGh*HxVs~NIsC(=q$et&owMEg?x+Vp5|#Uc0(+GN!3?RLJ0}p z(B3oqkw zHVb+}T;11oBA%p0257=1ocGMJ8F^#x3~q44Xohb&-VGf;CdxvI3|ny3?0KY?OET`$ zYq16cNw1pTDX%rq{_&j51AI=4_2K9XxzcUP2RpdIm<9N}^s`141*$&_rb0=YNWnJ^ z1bA_;F~#+sLiVgv>3PVmR1QL{2akGiEB474XcQf z%d^3mT~lDDQL@`33WlJ%Q%s`I09Teed1@z=^gGH()p13lnyK$HAc~4*zY!pb>Poje zg`n>KTehb5TdE1Oo|RdZW%SC=7@QRBaeg$eS`=sg##dzKkFBYCAYrmBB)e`737{p9 zZ;&-!W&}-D-j(2%>;4W!;c=%n=aj~FjO{)6;DRI#g{w*;t)Fjjp{cAZu6uNEBWhBsNQ!d^0?Bnj0dns zmHRWd>%CIUH zZk@8}?0rT@xyPP$O>-Y0FHzrA(Bwurq+Ef5rwDxv)Pns2O(*BYA%7GZr)lrX6=Lyv zV?c%~^L5ckZPK*|(M~O1Ia9l$4ykhiGe_D1OYO<3?1vI+iWYl3ua!$Fe}Gjx ztp9VT`1kJl3emt@Wxq4kF1n$h8If22vSj!YwT6f{gsB7yTuPgf#$`Mei^B=?y1n2av90W^XO!&%U&?SWo+n!LRe@& z460VQ9;-W(7AYx961Az zw$%3i95dL3s#&R=Wlz7`@=|kTeeM3+DP%b)iQ1dUmaIgGNxgUOR6d%GQpYRL(CwQ9 zE~+(FE((m92zhF3dZrSu$zyHmlr33;a>`^0gHbL6N!Bia@jM4T+Lw0097yH$NIMk# zhB*#-YrT_o)KO)7>7+Ag;*@D|$68CTFLtc9%lDo7(xOOq4v|t&SMJ`Se;P!RDhNxo zA5~2HbqE+3>$I3L?8OtCr`$mJRuj|7`V(GyqIAS2uhK1%35epZrr4!kj>a)aSGw!@OxLwhfj;> zPNARL)7C6id*P!XlX)G1d%t`0^8RyVRk?I*eHnPVo*~;3D%wH1+taXnXBEE3sbBNS zOmJ5dDj{L5b*k#;!aOImj>PYq(~{{du}ZEGcrBfavu8) zk1!;U!yfEcwy4DJv3I-NwW!FpKOiPI z??k>#;4?W1mN_|(!eSOaYYsoUY(5hU%u$;X|GGTAvuN}@aM+mB!Zby5%Be_~57{%- z_vcxPILlz*PH2i|CGG(5;fpwhkA* zlgycU`oKxNVC+eIVm)Ls;)i#{5uXbvwc<5e%zhbXNPZNSlB@_L>LV(4wOkT3|OZ?w4z{So?)iW}SL!;kbRq-yD zy--0xH-h%aTtN9zXsUyED_aG#xYg4f(;}(62gry6noxnKLAjCDZMsIjoh2zpqjMM!02vez7?4G#e?p>*H#14~vZ(oz!}!8JWc;OoSG?2xpFZ_13j)>Z z&>M0~e7}^_8M_lq1e)qlihDRS%?G)gOTa&+1&fA@wZaQV37YBYbm0~zDKqcBk$6~$ z?7S~JAoa%KD*O;VkZSer%~Kf84*{~i=OyEKIpB9yaxEOpfs)KuD*PKz$yxHL=}zf} zX^*cv7sWy*x2JT$DHSnt8W*rnHPOkg7Tks2fvl6pUEsTvT2;pO3NJ9Tb|=y0T`~ZYf6r1U*+0c3aB|WKI5crPOVMfPi;K4uL&awTl#0}5f*wJ>!mn~ zDW9x0xQ^_l>V1eA?WU)4+BGfDO@J<|+A}pv6J?K75mf)l#(q?9Zji!!2Fd)ry2hA> zvwT5)WUA~?M!0Nc#RZ+wSH<#CqWI+v)?6jv{Im7kki_l63^FY&Hzz5{7sO^NofkH5 za2q7Zr>DLz9)H4lO0Sf$eEY+=d5n=XCIg>q0FGnJz>V=vpKt80P2AY~(qr|-Q@w^x zZFEv+m&-o$Mu|3*mF45{237?OSAI@n{29cg;3A)IH$-C4BGUg*i(Rac!|lj*JMfda zlCDv(mfU7?cb>{P?5L6X({qI*(^Dl5U>-%-T+Q=_5uZP@+)C#6&zNeX)z@>0yzRV5 zZs*Qm;Z3G(`j}F&GI`3cgXVKFsT@6Klt6e-j2=(m`b3mgv&11mdJ>jn7%?AbzB=xW zIA%v4y#Z6obdSCyz+cG^Jb!0}tVWQ_kPI6^9&-Wzd1Z6)Vw_~ffW=iiAqjFzMHOxK zza}8bI0Oc3o}U@o8}IOdwPk1KPb~W z4L^}jmW8U4BAXn{yEAf~z+LD_^!wo+YnD@yv~(0Zx}p)n*67uXu-b&=#i8?lhh_gq zR!B;F<*p9R)df3=BLsGt4?uXGeFJTH{o731=duQ^>`*x$uiJ;54RDqRVQ$0K&;6=t zX_=XL;hJrysrZSYSAG%}02(LtFV&86|J;=kuR-`kd`dK5OQW10Bw`; z7@vxx9>?rszK-d|9)av&Hq}_gzgSb!EuWHILEDetm3zWdqv~Jzs<|3O3IyxsGgGaGGor<$7UIDxG+qoH-=V&0ijNCb0B5S_(xCoA?32bo5 zQUBSWtvQhmn7T0lIy7{D|1YG_``N)DFjcT5Ag5&f{rfZXiBxd`nKuo1{=?9P92jJ_ zHKBTgxX~Y;`1EP3F=Nbk8i&qTp|2k`T)@U~e>0cBj?Xd_G7B>5N4%n3VsAz8J>n_Z zH9IYmk|8~MyJvM3XV|`D6uaZR%~@7_^Jm@5w4mS0qc>vU811I(gm!CljGXzA+mmAH zG`Z(qytltO%IPIL#46W~gFo6$DmN)6PYRwwLV4m#kbfjo{Fp9Ymqs3MNpRg(?TbIN z8P|tmU{9UsIu6a5-kn?2<)o!|H&y2{!pBB}9gcs{alkjp8Ow3!44@D{4ZAeY<#k$L zrKj@@&TIlVGraJRd^R5b_%##N_YaI)UH%OUwLdOo_O5*SDP&>1734_6JDFLZff^NB zZ!T*`NGM|G12#DRQvywD@FEgt=2*UZjq<(J$hL3s?zWWkA=!qe1}@{+2f@zISlZF{ zSTU+I$B%rbRh<0=H2eSe0<6l&F5+jR3r;jD`17zMWYZukx-u&;!Db$v?eNV?#{dW) zQnIW>d^~9{wq6zLsd3@tfdkx1YXx7}E*fXSFQYIJ*rD@ zxp>hR5NW=-@~N40EKS}!RV?vUON&gS%2(TA$$WG*+zz{I(y>-=`~h7R%r~a}N$E#8 z=HktRir{`kyFzE!Y0Jx@c7uHKv(nz;y-4~9uT6{ilL5HFJ)*Kv8-Gnt$V<9W*8S#) z=Bx_X&X}#4Bys(9lUKZFXibKQ%e}=XDia|^NWSl1T=-Hs)NK1)`rliXd$8P)_0l+O zcjhvE8(U55x8V@G0RBt##d>kUv3$J)O$#6U?Bk;@z26IeqTf?<7JPd@-07Isc?6{T zWm02st0Sue59b&I(_J`bm(K(a!lABecGrgs$OYdfz#O?eqlnMT7$lj4n?o4Pt}b>$6LMudDS8W@f|BWj_k)rs^(em182Sq z3O39?E%|=HygV5xFDlh~uYa!4HFrj2ta`aWfSbRcKSC@on`G?|bg~Umz8limK%{`ff&j;uZ>VI z7;GO!#qO5coKSKHso~)BQ87@qz*4*4>^z>F@UF|CP%Q(-J}d%a>%_xTJn9ud;-;;; z|LDEd!r|-;rg!{WluqIOp6Ofh?1E6YV~M_a$`8H*;Fh)}yE^-a*tn+M@K04a zl--FG8D6{{Uga4eC!I%5J|E;zYr#KlV{@+{o%khnrYX<{T z-j*V;K>?d9>gLMpxfaI&GjcU)W|J0oDs1MQSIAw zHB<_9fAPi*7&fdP&{o#2Va_|c3wD~ieOJqfs))eRlG1=LyXKN0ir7&|^V@{H3ky-A zLVHpB86LChgcRTBF@EMWNQVsvPktD-SV$G2SBs#O)aMJ7zG27|03%Q8!AbjV~g#Qkxz zXJJ&J4qimUCp@{I9dLBu4yH=Yi?KqBn0&Q+Y4hbE_qi8Y{VfgLDMbKMe76Xh&d*=6 zv5-^Cd|ZmTgdDw4^%4m8(JuL77PBQwdx;U!>PB+TJ*bdXPxT*%v-C&Dt^i#@IZ|@a z(MvM;f;NHFJl<2nu=-ot2KICzh(e?%o818oV5m2A8xfJW`As>euwtsUetxn^K$lSu zwT}CSq|W!Nn<+OEwx}rw>>Uis10+R?U@lwcCPh%8U?veEZXZ8_ftU;BAEKXwfufl_ zeOIfSYjV?WY_7-$0xMFhoVAc+$4_3Y;FdrYrie+TZuS>KmJPDw0L|eHq50)jL+-NG z--vjM4YD*8EF%lGec*~gU^3KO-HgPZEa>=I;Qf`&d=}Lp!BB}j;i+mN<;p}^o3du+ zUP@^vG)&=jf<;YzIa@5)vyRk@5AwBjl&I+x6PN({KR2|Me+AIs;y4&{VARMM9=fy6 zZAPPh?WH#?QxiZwW4h=Lw_y=B?uelvcg$0wO}kWGlKlF!k2x5XDFZN zP9E1Vr#Jwltp?ALUh?ql+B+v{^4XGFSH2Q?x?M~DG{O); zq$$t&amIr5tziP9ct%sc%NcF~X$o#;!X~c?zIwY#NRGdYq9*3qxQ~k^`O5rA!59O` zS}2?+Bf@nINqGXXK)3?cfmXWG^M)Kr!wHPTuR_!U1$MCdDi@yYrfPlXyn5PjFp>d2 zVxU7&O+I-R^{V03P4ns$)Rhm$vx{LeD&su2&?A1`vGvMn0o`U?idlWpY0(LVlFDA3 z-CWO>vnz6TW2VJX5N~iPIl7cdh+j{GVdA530F!YRE}@GUC`0 zPF1F|=%sb#9)D;|BK>>&q+tiAU#mKYB7R_}c2IfNi4|6EnQ;kz~JBy<=MzZ3~ zuBho?+Uh`m`dt+`fZotvj$`KEY=dC(ZCvWG8I@dQ(>o%$)Wr(OrKYuNoCAat;ElG6 zNE$R(#C`{#A9=D!cR6FLOy=rotmn0JdfM+*X5AU>}XEvC9K$^?GahpbqwDme} z2^oE2U-Y!t|ACJ}ebYE8Wzg(F9m*xk|HgyOFGG~@*C9E4li~uZ1u6Y)D4`gE$_(4& z95|&!W4$s{`4KeBBAtUa0xeNYca@1!u^S+fk?sIgWHp`WfSX+X$WV<0oXv0PKKGN( zxvcl?*HerYk_C_4W*@D-af@?)UHlk~L>g(7|-Gx*!N?MwA(#Gp8E@0e( zxsGVh@#gEV-`(h5mTAX8l*qGtnG0Eo1-w()Zu`4xPG{}d)H6=#R1ADw%TM=|!47)N zLrxn?@D%_#(yjRq2r`X?jRgang*3+75esmj6#xy?|9v1PLPZ2I(}rv?}gJ z^qkn6`H+QL_;s@|N6Qemu@>6K%1r6vLjXg{J4z`ofu~pv4Y-()nnYtA3Pa8#2R}Q| zrPzhs>2ySHDH;lC1A<&@lA)T*Z~0VZQl`mP`9<@bYoalUbV}rg0d-xeX&`Gl?umnm z@^vgcWA`3Q#o;w@>MrM5*j8>A+&5;K_3@F%Zk*|zWpcIhC2{^~5 zT09d7cxRxaCj}^j(BSk+cbkRvwb6x%ip?}tRXaFcRkWcf4^Kv2oabe;G?i;7XO2J% zFA!%_Eyt?P+7kEo^>_8d>g;RVyt00|7F7?HyHhN^X^~9Nw@gG`)*=rqg|(>Z>@8kW zy;&J28zXv29POX<;&1rk?>v?()XujHZpA){w)(zkevVN)$JJbFI(`^~BCV^04?yd~ z?**zduEG|c-3!G!Fk2f5erc>PE-S6h6)QXs?4LOutmw$=`#P9S z^hXBgnov^viL)7e-eJ09L!tc)Jy8EW*uqpP)%XGzTO8>uh6^=C4Q3HmBggInS^EM(TmRck$@X>_wzfl-+^-l+;8DJN|h#$4|&rdgC}#Q zvfB|tqFDcqJLU)9_bjv8N}0PeD2f}uw<14nx+@B53G74DU@q`o7dOhNuua04K(a}i%V2~S0sJ+Q6!nz= zXA0#Rkp4(kzg!*rq`pSKDA4o?py2f)KcG;y3zxD28*U?(S zB2*r_4~t|mU51MWcX@IL^JtpK@dSDbTtw4r+5C7&Es+faNv&0WJTLp@#kCD{huFtt z+<2|6Cp`quWnMVc+jVFUK4jd%ytttfT+FViqKFDhwlHKvH5wnxIlXE(d%Mp!<93^( zm=x@A;LQ`oN$f^=a9)&FWk^GnbwB!5I`rf8^*#ORtjlrK?)K)CVx&NTWm$4|;7m^H z27q~&9S{u0E~;?oiK<^J!B;vlfe!Wvp_5bgZK*wutWX&DygAE5HgowGIp!+A*ihM< zK#`lG&3h)SRD$Rj3JXcy<5fUuiT}gr#P+X8WCK znf!=Rb*}_Uyxi21{YhROKAN8{~Z*Xmi+kUQPXc(y#BClJW zs(Hv&)^+9VqZlKNMPA+H@+x|k*K9`Ala|pWHo$>Iv0Z|{kKh?Njvl}5swgGdM(~#w zLO5p>I7CpcM=Dyl^S~%Vd7$#&tqeL^3f!EA6sSLpm8|OVXPfZRHo?i zUtNj(j}Y6fJWI`gf-=LH*dYqv16bIS2`iO3P64U{Ei$r&3@5 zUv;MPrREcYi3CTHnOL*H`@6(3s8*imF>6`w7KjFS8}41GsjKbbhtH#m=60r*s=tn6 z3|^G4u%1%sD`M!0!in6-AWxJtIGdTpF%tLN9jX4C|F3s<%#obP^vAu z-h!b}=0`Y{Bk8k4i_d|F43Wv5@mpAsx~fC1)2I^qgW&?`0byK@NnGF5^QM7UzUrbb zPIay}GlYW76Neu8Zdyazavd#8qvJqtMRES?qo^*=oGkIg)^xgWI~qqPIfk@XF?!FK z6uE+>hJ8hnt|O|mO~A)<&BWaKn#|J8xR{BHDQ_(rxmDxl7Iz8?;;Sd)(`&v+Pg?Qz z3j3)!7ZcxiyQS57E&$&Csj8gxY2lSo%O3#d(~<`_?gsb84pO{oOO`EG!SQJdjEOju zi=pT)a{OeMDn1OlT(LCwK>q{X_5PuZq0ZEp**==%u{{uLF9Q~NOl`lARepcMct7KU zGpME9K*PIB^_H*~Ex$MpmZ*gQSU=pmJ9E$%7PK6p^W$9iX$=P2UA##sdM@devX+6O zo8IHBXsr-Y*Bs-andAfTzVPtdD9pg8hVHnfbvY>P^2mhCh36jdNjG3(_LR)ngE4`7 zZRqS>+fyF5Ch-y_4I0Sk-4)4YnxpgKm0?PurJB+q33ImGtvQFRgW4rlv&OcH0HMX$ zOU0K3CbkxF`~?{vK$Z#U*RE;RukDyioGj3XrwQ;;ofh}96BpHzF$$*Y6(`ZOAJ6Y-@Qi<*GichlvyE)o6W+@V z@W`{&mu3TQd!{h zakr~@8z#-Q%mV+_V^kOK;E2O)genHk{2@e&W7ni7wX($SsO`{3GnIfbZ;u^xStp~m z#XK?$?T32jJT5WXqGT(?^-K0!oy0esIj+bp+N*J%G52mIo57MxmhJn0hbXTKL-aMx z7;j$k-^?9PM|dcuG*mfi`=|)no3*d`#*PYKmS^}t1W)B6lKnNtj-TUP{5unH0(sj^ zm4%vE-HI`&Mwto+z>t!n&I)Z{Mef9BA+OCfeGaZge~=4J-Dl`7o!oI!&Z`J}9suO) zFJ7|n`-2ldeT(1R=xP}<%^hvW(L}=tW9ihL#`h}onFA}69C(MLLK<6Y>EE1)j%4J? zlk4Eiheh){GQG9LA1OKqg8ywi>2ow07c=6r5>Y#}O1R8Kh&Yd08!02Zi|G-|!WS+& zmV=Xj=NMxqEw=%npl%4n*tDPNfz ztjV_Cqp~@Cd@9(DHx&}|L^D@s^lgb@osJG@Lr%8cHPD6@@wD~Y<5JGEdhK4t0YHW@ z)^Ny0IS%w=0YAD^R2Jg6GX*yk}z&J>V> z`ps1$Yg3f}q+mGxsq1|eTf|drJ^}P-e(+IfSgbj`us*vx!zWCX?1uS>M0!bFbdj8j zS^LlqT6lxb@?lK^Jo+6}{T@+uLEV@JJIx+-FMk}cJ{Tp%qVe*Eizb5hin)?#bC?viOOE<%^-uV4cKNxKG zpOVihTF8}xS(WeI)MiLus#q?+8gVhCA6ofUIrL1d*p6tqF4b=d%aR|RWDvio)f-L|iY%2GbZ#1>#5pVZC``jLnS~)NXYs$CsD-oaE`R-s`W?M3R_SkmP z7@RM;EhfLq-jVk%%$Iw;H1C_C`?gqhD2<<{}L?egEAY;e1-d=0D|nDU_FVe&m?ddSssw*Zu85Zg&ZQ3iB*?=kA42apLcu3 zEOnpWVz_%P6NTfeOqS=GH@?9??x8u^^hjQGbzH0h2wl+6ih+S@!X&-EZW=gsohPV9 zN0!AR%1jySr|*)JNHyh$nuzPoetx3)xbn-eKen45#Bc1q5) zDa$BeU_TZW7|b@%sVS*M4C=8crvl#fmZF*p;&&{8_i`p8`%gsU@$+ff2E&rQuO z<#dRK|IvMWZ+>PQm7vm^*O$Hwk*YGLO+QXspQWas^1C|RoNb^<3Fe^IU%qU zMOP0nMr3+ij!Vy(R!{Ju?}TrGPw@TBza1dzxf)Z5+KUQ}b?YpS85Ti1mdU zv1>>DGU#YOEXVcjEW_2i^Y|a0k}Nq0i;ly=hdRV}e^`4;-f6nE)EK-_mKTTr9d?dO zc@Hy)!h$sHkT+HTlR!xZic!(tTSPf?TbMu3WjD)rnNZU5C3^-Cw;q!#n9j=)aCgDL ztuSrz=(v7MlY-diZ$1#^dCf52Zsm`!SCvHG)lrdmW4(?L!O~S9Q^<$lEn>y6o>!%+ z(!1iPJoPmVp0DM1fDx-~&46SVn-&rCc2D{1oX^UhM5m4Hz>{O(oW!Ov{JTF{iw^Qn zhqKBI1K7>fEW2JhJUW~$%?$%B7-e|!yim+_i-D)c{!5gE zzwE9YF$pZHZ0xkCxe;x_^5s#X;esAr|5qBW?n-FQXvpt~Cb!`b(Nd50cm*%p zI#wbPU%nlV-VUIfR@py-7Rfn=rvy8>+nL@rIuF2QFo4DWQ*yx?2Ndukq{v-~l(z!~um+r}-w4?z0!oGlU=!+ZKMD@O2ok@o-z;s(PyN% zR8(rL=U(Ky3n_>vz(fN%>j|ul5}jE>T9uZUZml{?O@jkNbIf&*9jVMq(lw~A?)lC= zGHxi`&#-^Rxy}B#M{c%jXj#_4tNoG=o|q+WRPL^zd?E9+Jq2m?VFo;==#lYX)}Ohb zH_RtQ(C?p5B^@nSDwXa=$J<&M#py?3`2}9{eOD&LRy?SW@l&`pvv2vEdsOzq$pyoe z1{W7<>xIH0an$HRBIBh*vnP4`LxW)x>U^`)Wka`yzonZ_}CTOa&+0KGa54#YCNzJ zy_%^He40(bkH#s;0bvEpH0zU1lrw=RJ%?4 z;qOe$&y)E4BihS0t`o%<2e44tn()Ra9ZLExsa=GK+&5yjyx9|0zms0oe*ir#u;QJa zUD|My^)n1EwCyFhjtvm91|ymW45|rigZ2;Z>PYz2e&$L@MP#+M|r8=a5P#HgQT?tYBl^_uy+d$)!)xn94j;e~V%16(iV&AT*j=vez9Q(}W zK=99>c(~?Q68L+hYcSvI&saoy#!ZYPNsDGu`81^zo7roaTH>i;aFDOIs~#KV;zKyR zpLIL)fdh*11$2VV+gI=4VUPWDVEMN{Un5tzrZ3o#9~rzqhGv%R_P=_aS{HN`^Z8%`lR5m0!q%g}3w(Qqa)jMR=v6DKCk^xq8ggWM8c z2{M&4?k_a(JzP+z9BUKG{pt{-8E4YC}AJq=$hUtr}XMW>lxXkL!^x+dji=Mh`=bb zv?vtOX~3TFcI#I-^#5J}J%k zplQb~Dy^OlJ7ko2?(EI0{?)znn`+dZiilXRDUTix)HhRSNhQrjg$v_CF%pNqQ%$I| z>Tk)YW%ZfAviDXL^-s0#g7c``(Zg_%(n?p}cc~g-G8TZxfc>cjDusvob}jilu{5QK z;9%k_PH}sPd1j&6ye-MU8|CMzlqQGxI0dpppAVUA!AA!PE)vyk3u?qd5l?ZQ^tMx7JRmyZ3=UzhrwX;U;>3&a^F%DQPD_7o|Hg~V}Pt{~|joQl6!vf)0J zlJHXdWiwU>Xj`4!iDet?s9=IJHPe^y`B`;_yCi)Ot)~~FHno#VhX-_%0 z9Vnz$LzGA+pLF9MpO<=+E^tM+c~F|2g1ApyD$!Dr=xFeMFj~s-Gd9! z7z(P#vu8U#vVh+9AcB_L_1@2A-X&v~!Pl{gjt`ge1oqvNv9cpOto4r@YsNx^LE8iJ zi;@6z06W?zGfrGIA4u@jdHUM7p!GDN6^Fs|} za268)BVjk780dCAg@j+8&vYHj@%_3&Qodh4AZaCz;c<#C}-^3`L^*TQ)iW72LJVms!YpN+i3SjkVyozex469ZVcQ zHyaN&j_S>;Epgw$iAJ*OSD^xss?Bq8S5kzLYgT_t)_k1!;p@c1BtpUcqBY4R4K`{f z=8}-_bJ;IYjd8hD@~bR}l@Si~U{Js0>krPCzobj9deB@w0)9rb%Ll@tX@&KqeQV8s zSsT}{O>mwzR;O$89S~j!UDAc5*+#<&X4K7Ln-cNV0xR_F?&^_0;xaIm_2`qGR<0UkA2ghgHBR3gDcs#1&Vra;fIl zj#C`k!%sJ4=nwNZ}loxP$?BP!vi$IShRq1hB58>#xQitkp zOV!@smIsg@Oc^I@HqH|ee9AcHH!`4Gh=8P1QXi7_7+F`@!${f6v1GH76E_oSB)L>P zxIK;yKj-VkwNf~JZL4WrWGy!`S0lPBVIHrT%IOqIPvH{NkTh8j7hsNFA{V|c%^Rqa zyU9yE*_+*7|7L5hF%85X?%18L1c6iCw8nhh_g)M~4eq{fU* z9hnvhL3hYjp~iv8wDGop>Ih8|hvzjS;Tp|^EHr0Cm;7zCuTxhrM?AN%9y@xJHyQ6$ z%_N$6Ef&F8#jmf5?h10>*94hpKOt?5B~z6o6?tP2xn2W;qqGifTL zXzB(bbDHw42YS#<_{n(_-Rs570+-8UKPT_ zgl%t*-;Ma0VhK)>R4NHof4@5zSUA~FOaf^Fa;oQt4#BX&f zn=rs@o%jzs*Jj;XwWs}&EIR$PN`6&1Z5fn%@a9fKc`Yx0+8{NrzQ#AwmUuR&`(ZV= z@U6~y0~I77$Zd?Pe8F`@9WR>8H5of^CY+G)^83r}s(WAjM#abysAaYVlEVjL%5RTn z9hQ>zeL43haPpaB)dL%Q2u!ArT+COX-=4ZpeY5j0R<0IKLxwy>LuVKCl7So}md({k z9V&Ak-4B1$yIUD33kg8l$lc&qD)V~65{H7I(R7w^O}=j*RzPx$l zh$y|$Y;?m$sWd2{qQHpJ9V&{HluG(j1by!Ri|76QYP+xNbKd9qJ&yy;`u=F0?xmUi zqAQw_>xDS*b-C@Z>q9|~075*N8nniSRAO*ciLu}w(F)13M%)-iNbeEX`xCRnvFLWj zZ>_wl74VN`wZ*~in0~(|N6B0jgkTChhMK8$2fu|i0RdBHL+-V+uo5-3;vtUq#;O$L zJ}?voURSSce*eaCAV6)E`dP0baY>OQrH76LoeG8e;PgOOzo0SoCmh?ZTXRvL{P@J;3IW;;GI;vF1$3 zp1{{5mQZ;>IA<|oV6ZDdMPlGVDsExUuiU&lGN`sR?m#=~!NBcHBUKholad=^f1dj( zq|K#PGLj=iOG3H!1P?D?c<6fq$G+b*rz*LKUH%E{GlZX(4Tlc9OYByT0f_JQFANY6 z(u2VT;-kuzu9OV{9kwExS=(tEUA5b zKWiYt`*BFQ*Wq8|+g6GdB-&1l5hpZOHvTW{^E2)HPT7k zOZnOA2$N>E}3iA7?g+=?+y292D*ngwQ;+vXOu4`{ zQAtb$OFcfI4%Gg3A;hbIlBn&ymvw}eluvCn`i%1f~hYT++ zk8|B#Uk_C)iov)5Fr)4hF6XlY8Xg0L9Ew7LZ)hqNDio_DNh2v(YBmhl*wa8Nk)JvB z{z|;LLJed^&#d1mq_pzLn8+i|-Y~H@+O}qw_hv8=tc`#N*N4}Gv81o+df^A=QF}y$ zn%|*NvPumn9Q$6CWTnJtL0KuE5eR0{m3X*2FnC7=1=wB?7fO@i`?8?@E%}sjTf4bL z{(8{6I(fOyLa!|nHPXtM>cgU`x|49W%9;sta8HH824agRbYYP8uP5EzvpqG+FYYQN z=qZ&IF@VWDFN|6F_a)Hqtw9Xyvi@eZgll=6kv&!IN9Ji|eGy36UfEq#51CJ8OfC&C z^W5ceRyY;oNHV57@FTT`^Qo zMGWaO{g~BDb59GF7dtE_8x4`&@yLUdrN2GY6E-SCppwzYSQCr|ne zAzt3q!87z_xjc4bDuHHscQ{3sPsO~>LTPN^GjG4(O_xx1*?S?5yZH<~c6{595n|8bE?@qpP z^4U`4;hEJY*YLQ)hk0ib?P-hc5g)KtTmQY9eztz4Uz+5pWJAaif;kNMy`Oy0=-we& zgEn*S=9E4~VF{;u_2v9>D&BeWIjOtCn4OuC*OO|+#K0W{jCY~5B?R5{(Tt4#MRrdm zvs7KWrZ>~GU$@C71WYTS3HD(yrzpolM%S`qa+_}bx1QSf4yeMJ@|3JOYM$+RKoZfS zsf>Ij+wMkk2<6t)Z*!)SEUIQ8xnaS&BLViDWM9sas9ZJXHdKydEGt%z7Ef}6{)Z~C z{hgv>?O9wVBU8%1-*N$^U$K|D4f5<&%_$GuRDZqlThy;C{|-vl@~frEjmLtynAd2; z%jO!4H4x2Rwi`J=Nm0d;_nI_A3n?CD+QiCiB7`c6J2x4Eww+!eXdp#Hf8ND8AjljX zvzXg?v9%h(7va1CyYCPh$~G4H(lv>Z-=T?ZbAwQK#q1_qS$=+{-)YAa%d3ame!;}l zeq|!eV%bJNZmsJfTuR)H z&e9L|f;#6~4*ceLL&Xs*6W|wNqkWbIque{TS9c%mgR^W*1j&83ZXTL_sXS{--|Vz9 zS6(d}1gfrKalJf$p>qWe>4K1oj|S}3Gnto#4>(gxZ{%$ZuQM^zkh+L79uxKU6%5h8 z9e%i9M}V*va(jzhF}~PE0st&@>&~E^+`f4=%rUKS5}o78IXGhLN3IFVabMHR|EsIq z#N)|BGP7hzu%Re~qSEBwi%+Ba%w}2NN8I?&5+NkITYv%yVZuw$^NHTv#=qV*KvNGm zO_PYb29Dt`o%Lj{Ux8Hw0yv2VN#J6k2XaZXu@-DhY6XtB;QhKU&5RI>+^RK;6Cwzs z6FNQ<#S%45_t-Ix9z(i@dfms>_ZU{57RxY{0BN#2_qHBfkyb`1dhB1i4~jk>GJd?P z+c(dU;nRa&-SLjJF=7oCB5herjsBQ$uh0NOi5orkQ*r^TPx)Q(rEqZpL`nd2U1WPf zVyApDkNAdgpaHi;cf8L;xKe9EOuNcdhr%ZIdQ@k*LX8)rF^Wa@zc9A%wf;pQCt!mY`;%J32 z57Ay4l{1Nzs$!FBY516x?)ZmWD0);`lVlB!?M)G5Tt&6XtJREn!B?DOt2<(Ld#M{f zutKi?V3wi2^|`T{=xhT@>yaO^M%URJN;NM!4@FGtLga_ao>4V=(@Xf>)?S{I3@)E? zyV8&Is*}Wq!QHPd3v{+6hlA!Cf#9S{dc&N)#I!%APwbT!)_Ky|y{&^UWRHEpx93}| zbfNJ?zAei3v-hjuIk+Y_eZjk97~)Qpx{iH@*aAY<&FuU(58w zcW>oV^L7-(M4+3!kSxfr(Yp4#bm!Lv{;7N^bC+Go@_9e7vdgmAISP) zC+g4K+e=K=>gN3jDMR)|=ER(;LKaUJZR^BLc7zueCC)x}N`@gO`#TVPiVIO%xaUEV z9`bkODN;cmBFHx>=PS`^V4fH{dLDO1mwjQJfk`;kO$Baz@j!G;jx^a$cyr!t{EzS& zuu^cYn={eG`D~-MQtx+?M%phrItBf4AYiL|5@oTmHy`0R?1;cIOK+Nd^L|rcGo*#d zT`j9^>rFKo)Ta$=`qALla!fE2!PLX+4Ybx(8a;E2>lYhL8Ro<`eKP7i*+3g`dU zy*DWJ5^G$MRh`!)NlYQ<2E%$XIoyl%CH|b-#L!q8G1AGH)W@1jZiZ`3=8=?6R1E)X zP5!KE1a_mGF%j%p36aB5sBO!#z&pKZCPtAUS=pWYxkgNPj@iAtX7fhK7 zC&hd^URaPd4iV{0C*)zGPWFQcG3{Wg^^p7(wHLfT?i|l0}4Md_I>Aim|-!#U6)G{;&n4 zN-TPj--&{lCF%Xn((GNlqfC98_ogB(38zHs)tyyk60k)@IYtd;$u^f3C^k5_6*qsg zEH!>(KuFicqdlW5^0-TSw!b&sZqr@WSUQJWobu5%e(;+o+Tm|!r+Pxu6tlI%>FzU| zGWRIVN(YrePN`>;E$(^td@s<3Gk~a2W`-hBA_|JcgNKQ`+IdJ4?FKl*D`EN z6aymrVn|-wHPJTbbav%*O#id{VP&*R4Gh{~$F6e2P8L@hLoCDsoyu_+Z7B0FywYye zmQ#j(pVM(fu)v*paEJnR#C$tOCr+S%b+xbM^~+ZVBBKX${`qZB{=m0`lziVzE!+=! z%=ywJche8=^zY{Bli7Fvdxc-rW-c5*L||s8fArcFj0K#HK6aRRw&SYbv)I>vX~QSq zB73XIv(GzrN@z3iccHW3{ZJ{+m@+;|abmhYw{IO4f0}T8ZmO~J9L9ZJRAAoo+OZ0H z2&q_35nlO%5iLFQZ;U3E=qBV0r$NDxp@;>UGg;n~vI!xl9}D*zXL>Fwv>2a*m;Gap z{>~@_9Te~WtN-+w>F19b#{9>~!aHmZ-pG7pPinxHna0L&X1NV%VA7R2WS_ckT`VY^x$X%oj}`fuchlc{vq3~! z-qqftXE*!t5e%7UrfM$k@PRB{%Hx#?^2M_`bM0Fm97o!TS-Rxz!Us*U+)*l?zCjk* zj|mZ851Xgwwgm@cDwQ@}HeocYeTsCGK}Kb$Ubj};zfx{jI>xgDcB%t!J?S2?p3*7C z-tX{ao99vAW?5sM_m3Ml-N=1*<{!}V*9nkvoj)k|bP6UM6={w{CD8l~4|~)3K8suV zv}mI6E$4WP?VR+hZbV9Gf;5?dj+i=`8v4I8+0S8(tf%U=?*%R7joW_}nu(fz-DQ@l z&5BF71}7Flu17l$hrNh1zkyg`y0t4b>IF;loT@1@sPG{dU7eHyebwtD48#nnHCIwl zrSQ+Peco7il==~~^dLEIE1T{up6>jvv{xMpS0>}NQ~rW3NCsYLJ0AJ^Bq0{B+)>y_ z;a5i87XF`366aqm#bDPK#x@>KSo1AD+suX?BHeVf2&BQDLUgP_l&ia+h} z#o7~wJ7Uq+z0rw6-`xO5P<@77=<&uDFa#4~M^HR{RxblH*?k#<_Ex=@f-|Agm28@| zi^WRw9cDnd8N`VmUvKPKztfcb%25p6SU3GSJD_la&em#(^f0cWoJBvDg)=THl#`ZR z<91pKdStp!CjI>W+^$Ge0S^cxwC5O`RNd ze6J@yeJj{TICa*DEP6jZx}PV0=Z zLKJY&0snO2AFp~;OOmIeM^_1S6`~wk{c%$7Z{%mshX&fHw|nTqLPeJ!Gr#^mb?sf` zajbi=-&e#wDJr;gMqdOU2}8J#kok*i<|y` zq+cF{O|~!y|Hzd&_oe$K&qO zIl3hSo4pQpq3ZbGnS-5vkhNdJ8&AxH`KTCRHleEUH$RPPMBb0DJ>N#`Sc%DmvHdp7 z*TZ}TUs*{QZhI9sVJ^_ko8&!klU-uAAuVdfi~m1)#PkOF&lv-T>jei&7y8Qf47>SP zHe}*UO%opSj*2T0=W*VO`;SxA+Ja_h*3xq!xQ>UI$3avQsQd?DX zxaTQRFQ3G!nwm?HgIk9j4EC1c+wK1Ld;Y~gMwLl;@~lF0lggc6cXJp}9y{atJFNEO0rPelAyrN7$S`2GNe77BiBW$Q3kVLB4i|i>E4d8Sy#XW<7yp)r*aq z{|+;8`4Pw~od;Cf&s6`eb11pXZYio3_Fv?Gua!$s8NUt7<+zo~uMp+b zT3IO7Xqe_|dy8==$sZ>;>;UW!9fv;UOIV>0-xmq+epqh;ZI3xpSlj>LO-1AE*e_{2 z8{PD{no?D9Ixn)~&KXnmm7}pJ`=}Uf1)*4e(e%BpBD7?0Gu8+zvKobA5=b&K`*K*F z^_{vxh-yo&?lhyhD!~D3f&E);>|2+%BxbuX1TuktF^#n14^UW;+j)RlMyEA1!DBxhGOSLb z*j;#CL#g!SpgeaWmqtBiHBTtkMy=jsAZ$Q9p2i4eCd0>5R+Y~;hjOdWV7sscfliK@ z2Z64oa%K*Z%Td_ag%}jg12$^fl3mQktp2D# zmP@P{CaTqN`iO&PMZBKoUgtkIja8y)7IZW13Ff_tvLNW4d!^DW`_bd?zZw>P;5NgV7QQsJMHv;pBe}xbDUTcN_PirLI8U-~hLF08sT@EzbPTEIOnrDSWhgSNL zfwmU|4RJH)m6ulHIm4QH`A5hp=a@Y$e1{V0CHuCu{AmMKI5hfSD${s4rKu5dfqTd@ zeN^Onx~vHgACFmqI}9$8%R!l=$0Op+icSHd3UayC1XJc<9%=yqe9gk%Rzv_cHyc61 zkTenFCue#vywzQGap;#}eaT2#;c^NTQ@ZARLB``0qxFGU7(yW49wl4QZ?yuxIA+=k z7qQY23U-I4f|y5zFe>}L)ukV{V~5=afh^e|DXk`rN)<`>N>z`Xu6WXtc2qc5*E3hF zZT1bI05uV6^Tg_ET$dbJu>{eI38-GY61sMAjl_7L^-;j0^fzIn!xd^j*?pm#14(Tv z2$phI(>?;$gckjnvxn2pfu_wiDnz9?N;$K zpsfD9(e$^MsV}i>M~vWs`7D!0Am{BFzyW`N=v0HnhZI5aD3rfq=GhFA{rYR-Cb}qPD3MAX zqk`I{1Y29s9;+ZAG=&C#b>sAsP%Md=)qppd{fdGlN^fy?jz+ARk|9Ik{e#|Mo9Vp_ z5#`?R%*W>>ywceR;=49li|j? zA4bP+KVapyLr-bNktNlPG!=-%G!U|~#L9T(+{&t6S%pJsfW_kN;Oql=Mhg_6~If$l>&pL{&4`E z0xc)*s`AIL2U$&rd%lnoOs8mvi(~=e01vSnP?l7BZa!vAzXiV_ptjT4tkLpSR(jt_ zr43vZh(Zc?h(|J@B|tJCtB?lLOYJ|Zz=@ffTyngV0*JvZrmF`u4ulOiC^-Tzy zV~Tzm4|-=xK6&Qus*jgq%)Q+;+RY_*T$p2V@(;8vsMk4%c&xC`f#Eb*KXw6o-%s)=eE6;-9$C63kW`q=>AnqWr;1r!L zr|v*{iPhoukuQSw4HD}r-DZhBy;(sECTx*AArPOCgv7(S0FppfGV$8OB0a9#&brd~ zk06h85;H;HMR2yC+^=B*b5UCd58l7i;(`{$y>QPRT>}XagD7^_RVi&IxLG&8JnC&2 zG*>Hj9u=cKGk%{9c4Dd0cRU2B{}wDHH_y zo1Pi9VO0`uVD@5D(BK+XoHHTknbYd{Ju_&b%8n}}`F_Zkul^?RZLXLQ`FtyabsD`s z!>FruV|C@NzImkNU#!_&6x#jdcwK~eTLq90c%DRvbuENak^n?l@utRrO5Io{Nc8qw zXaP^0D3d53#hG*2Su1nDC#~GCZBTnij!6z!O2`cDX-)F12SHN3oA6fu@_5>RGz=dI=h6eDe}1^#)kt_3z0%22oIGC!z0&E3Mb6|Uv)+m+hwqRS*e*veL(8<>?o@%#-F`yH zy?7dNdBLKZ{gSl=DdKLbrMxqdsRpKQV{! zY1Y^&7UkZjf=+NC*k~pADzvvi(jS~CJx(-%K`KB!B|?3 zeybR<`2(6St_;zHQ>ClU_H2P~Aki$)8*JPyKfzKr4MVz2XAv8Yk?Ewi24OzayN>!d zGhr#Y7vzezrxGHOS`dR*U7Vt*;Z^%BSUH&iJ7c1$c6}jb@Sr~PTWcMWmJQ(w3NDqp z-)C;eEkNr3|xzatxlU-?e zT$nW{c+G%QB7*YCM>vc|gUG5{N}qS2RIWqi_MKQ|?6X1OXTJfmQs!QrV5P(j0VV3Q z|7^@kB!@Chc~lTfm40qik4>3y!a99s?S0jEADq(BByBm`rtE1S%{_ZOYm`!^#|$X~ zYTS`b=%@g1zdf@moJBOc=uwQ0C{{Gt8V>GppD`YF9H9Q#{vMSnx4ZYH8RWey!*oC|HnQ+wA~+>vyuDryEyGC@sVO z^r6R%p|dYORD9Oq;E232q2NuI18=@{P7iHd&%#BPJ$RfgaCWIm)>IB9pQS))g-*Pc zbv^j!4BxkpzJirz*3k)!HHs9+l@%U&;q#OHU;#2ywK715}Hv3j~aA znZdeT9;y-_oaGGPBH^>ry9$i>uns2*>As8Rj@1uU#{yqiiffZ1PGl{Zmu@e`U6n8Z zBhwDFh}tii2qG+-36{o6a=*s1CC>aVrs54xE**TJRck>}5~2eOjw6)t$U_;%$IJ9? zT`lnjE<}WiB2>ch&2Hu23w1q5=ev(g=y9H8O$%<2+-rAxbHSk*{m#VL1G)X*pStO` znRtz4xX)pE_rygB=O>hYCv1Z69rT%7S4*Z{u2QT|I0UEVbei4ezS#!AsLqU|aUhfD zF&BO~r8KYCv&6mEO<@k>ys%6g)l?_6u#pdnS=&nmIR40(CWkyLf7Vh_ zWlf3-&MV(KW(W{}*kdkDM9>=AH$-Utagaf<$~%1*p#S0|IlMm^=z-Um+%v0Y#5q1H z*XJQz=dSzo4uKry&&!c=5_6SAlvNen?6e^i+KdVwc9PMD&l`v~vK~{2AbTppQvxV; zvqqgyIK{`0*4wnU1-cyJ%K0a9;GKQ??iF`QPwI|yvD)Vw%p0o7g(&Rv{Dm;f$ed~M z(3^JyJ6zn9MYjwk^`ILNQZT9}Vcf zT|fkHMdzu4X7Pd5lTq1iWrMW}s059T(QQ#ZPsf%Sq6xrlO?^&5S$u!g&kWqOc<-0~ z_ra`?>(|RN2x7OeN3Ds{F$&4ZI5#q|$rj^rl0r(bq%~?hn1f9C4Cw6%HMCe58nrkv{rj#~LyqNO3>Ey*c zzs1vM1Q(>o1xGs!!-iw5wdV_eSAbz+1Mj5w@?7U1wpjt>1(nE|jJux%?ikp~my9>% zKVPs|F(xaQ1OVDSMMA~#EL0=Eu8ZDyE?8-^SC`M*Th80*D8E``!Hty0y%ej-cl>VH zg^UFi#J(vYca+H9EC_tW!##O&EmA}tSJgb9zW^B~cNV|5C(iQ~a>agdPDgK*-cQDi zQTzn8@ZM#fvwW6Ff06sqluEa;Hb>9Tqmy-4TWqjae+B={i@swEx{bx-3Ehe zyQK%SbBAry^3|0ZIgHuXjm2qX%%rL!pWPeQ4?!A~L-O80Ovp-21kfnT3U z>+CAWRpsAE4`9pWKAMy+$x>J0rO!K@hXFo%yG!nffc9R#DX2d#NX4 zHx|aEHLRI2gHC@`s@`%Jh9pa_b24)TT~1#6+aHzCJ$U=Fp`-0fZq)CrsPA^Zzy`jq zk*r1;33=D=BT|QLTttMaUD{oJdfcv^(`|B{F?CD%q%}-N({b2VufZ8%KMVv5qNC7| z=gY0Ys65+N@^6*lvy1~y!P9}%bM;4=7S!tse7MtXgoBY1_#!0HYxCiw68#vop1+^B zGQ*f`sFzkS^BE(h+ZDoe)vH3}!MOgHp^Gvt2>)mlGB=t?f=er znYg~WxZ0WO2ZxJnE9~Bf=w>Lb}k&^ z6yBj>ZhxXsS$TdxZY$P$E1bDu!BLI+gpULb70o{j(>_)S=hSY?cH*40|6N*55y7r) zBO%8MvwPcb%wFmG#e?elestz_Gn|B9p%B7N?fOAb;Tn zA*gQKNAvaxdk<*cP|rSwVUedlc}948JtrU|csQ)dH$&&_|e6cRW0-?sZl(0T;c zuOQt|)Cw%0?R?+^ZYwo$Yzu>k(xCfUDK~4fDAx=`N9EEuMefTcX$8iKr4 zx2?_iia(l5Z38+Gh!+{n${F4M9(Dvsq9mNnHQ^kFuAk4EagU=t7(90C4eG4)cuex#2S_-EqOO9JI1^&1wSlR zHc))2!!p_Xgso&HHJfhxTCmL;04tlpZVV2grORqY?m0HuOF;DDLOfm@aNl}_cGHoz^b-xQP zQB}#8n*ik~X98Zv@iCoTS!Q++LEDNhTm<fzVMjES2 zueFeA+KE)|sbNOdbcFBTdpD!z5N|@}V+qgw7?1OeuxUIHgBrCLJwdbw1396nL^mSp z=It1GhpHJKiZxODJY&f63NC8V3^k?1qBB{oN$*~bLfbI)y)et1lQJ}g72cwA>A zLTu6g`8$ga4L#|^2tJ8$UMW^G8`LxS)O2C#Qc5j``9G}bfD3Ob7m@!m* z&b)IT9~rbjep2g6f=femSa>ORzp@4O&$J9>inrwG)`jDc1?QRH-EkU1G@u#b7|Z`g z1+h@vNSmzJLzmzE%|W5BK=MdY2R^U5ipD#$E%#4g(&E(^?aZ)W_MgM}lr&?xPhb7! z|4XY~|HE-HRGfy@G^g~8Jlgq1n04f6W!{JR3>J-m51s-p9do-I^fsAB(ZH05Ep*#m zBp0wp?JY=C^c%~#sopWd4Injj8C0R0OF;{pxa)*X_g+s%?s%1R$QpvBZG{QQ@9Q%8 zb$eEW2FDSxVv`iI;dnlLd1fGfs(1A1lAo^eFRSw#34$*RBL98+m;HUWf{&w$KOp`! zw0_*Er=P>)&nO^-PP3sT#eVx@Vzd|0YrTUge?5A4nEOPE#=4m*966zO>g7G6asT^F zwxUDJGM-i5xaCWD`$~;WTe-*w$0v_tJ(_VZxA-q{(a;S+ zN-E7H%f9+NrD3c&&($v)`FoVP??R>U$q-d{ zJo5?kx(|i4&&wAq>%nogDKwyWnRG)lxd16=W}?;RP5dv*SCkKzFCKR_@A{tnb9xJY zLwNMj*PG)jS0UGp;e%n{4_2EuH}%Zjnib|G7>@F~oHYY?-l}jwdnUZ!UfHNReeG@T zpr5na@xcz+IiB6TV)#5BaM<~GN#g9b>TTwzMbu1qNaC9zXULzRo5L#7N>i}r{OA+m zJ2u4Fc8mwz!%pAM)w`DH&BdrQwijIsh}q_5!j7c15&0zfQ>Hj}T;>Wkz9$7{#52JLTIa5!bO zsOZ~;N^pjDlw$(UIpEl1s_Ig&Z;wF6O zP$)`aXh*>nADvguh(g>;Q#r;0)F%8uPGc?$BMixp)-GVxg5fgejL`pgB_CGpyVB( z!wNoTN&Vby+BX;Z;nm4a?sE5n(3jr?@kaOCcJ^396=uTEqZJu9s#`M^wvyk2viZ?3FiBeXZrwu!XH`it`5ASgsp>Z{1a8 z%CY+NLWcU&(|hNE|2-y{HYuzj>dwoR{Cc&TgWvS`7GJj(`N36Rk{nve=WfO21b9N1ckjfY74zo%uOq>*RmFS>zjjlOyb21FA7#C>S&I1kN>AGl!?dNUI)0&R8XgwXcV6B6QhJdJ zzNla{YUNQR)&Dc=xJMGZ`g#ajH?C^-#hHzCBedgi+syezU~~p~oAUe0!R^DYwF!=Y z#F=fouKW7CR^#FMtJ(!W4xdeUJjeOF_+&KKVk7OWk?O#b4dhRB5<)F~=nx>c*Sz`|A&@;#;;uIS1UD>I<(F0{FAX{IJs~O*B&=y|yp!4-2~QGp)y( zKgJE~{C*LGxORl+e8+?c@Bcpwpy;rDQS&#Y(71{J+~w!!RT(K{N}xhvxV8Kd@ia-= z11!P@R%_UF)I=n2jWSGlXkG>4qT6%(U&L%yhIV|@`~dR1$^SUyg_(yKsTXLrdNPu_ zTgeB$h2H8ptWV+l831{6=`@8;`m74aSKt9Tk@r|k^B38Xy)Atut4XCMyp7sc(A3-m z2a??1!I-B2EmkEIm?Eo?!`CUkorS1DNJ8)@jDH&O>0h?6?<6jbgaI23tcx}c;8)t?>qr7!*0=POL>TP#Wp!Lel_e#66D#UShKqP4>pV&47yPLGg@Hl z&S?xj?ln-hG3AdN$bG^R$x{ToCL;&wopE&GDTgFpI5n!yM(@^Rz|rCI)jB0Kxo=wfsu)Od2>w#KI1b|)g5vaP z+YUD=?*6JN!o{C}BpRUP4B$}o2%ouFJ#(Tat%}{83B&!?icK>-nsu(`=WTMaT8x$m z)|9NYu_p0GhEQfXPd)CD0!t$+yWX$1-Kt7P2dk>5bd}%hid}%;#6@F8HUf~$yDKk- z+W;5?9Y#+s;iw2+W8d05qYD+BAmNzq50H}uU#OP45l-oWF>?xELWTef!&kXH+a()> z#3a!A6IzANSfFLK04ha+5O%jNJB0NeF9J*x3hWHm6(IHA>+$!aOPzLX^k@wU8#Ng4 zWl@oil;*Dp&6}O+g+&d;Ja-4J)P&Y69OCv>AmS`kiiMO>WU^|is982h zJvWMFEjyg$im9R84O!r!lQn>a%vL|LhZ&~93CUV|vzuL&lrh4o24%l!SO9CZH|wKs zRi&=1VxLVEgRITC+9+tqeB?504_D+kO_WfCFa7;J8G>}`NHb1!p~{*LXQl!G!qv0J z;M_bntJAf}@^TPlyx}aa3gp7Y!l5_u4mI2={nX+Dxn8|EuBn1Ao^r`#uVLswjrZyN zbo|#PfpbC15Mhu3W~-tk=!PqB2t9eo5m}C~2dD(4U{57Ot6y=n`iRV5D%(at%Ezg( zT9}sS&MaJ}1$d8F%@vzIjw(=&S)Lp{%@!!w$`wMbFj6R^R!Blj$~~Tp#!858AU6*U z1+ea}83x`r*&}I5B7$TUW3rSv97AjmcOe|->se5MU6pIWEM@f|kWU;WR7z}MP}D)o z;%lFD?nZH>)0J-J>S_S{+-V8EOqMX5CkB!UbtgeGqXwwC6klXjJy9Tus{0p38q&Yw z+z`%+g<*U|JVre@q6x0?-x*SQQDrK4rUf(WBSt8^h>L3vy%GNJE03aF&CUXwV<#0kOZ9E1 zz5YyYs&C}FNzN*B}y#~XGr zct#f*VS<&uB5!Z*TG>0Dcz^>hB*in!^gNR z8OVxDEKIbW$w;oUdK?W#M2XcGyg=V9UH|8?|N7sDr{Dkmi@irG@Eq5FvGv9{P;}~3 zIuxoSAQ;F@{qV(1dv)!hwIi+6!zA7TzIY0$56weQ-5ADJZOOF6qkJh8u zb1L}Pia%Ok;l0z#reT zcVyHN;dA2%t|J&$j@)dLEO7e+IS`U^9< zG!EUngwktmL`Gf|2Sdzf(^29O=lk6(j&k)qe5D2!lkWN-C$Qtd*nt$q6v1U(Lz*&c zixe(6U7zq+W4_AP`$6d0ktU=4!h_Ik&nA36-+mW8zr%)L)^!~@O9RTgo8TJs9GBy6 z0Z4=BFaPb#kkO4Q@;TOsxlL_%`a9&^wK#f%Df2{dFLjQNhLSUECD~oJ&TVMDsG^#e zo9%h7<`ISBzw}q2=AHh(Kw25l{k}KXPB9Q%@MqCnY4Z?fQ(uDLR%vB4WWRoK3>V7M zUBAtY85+LEOha$PP&2JYP0PSFQ`*J-c+0k_CjL8mv9CfYrm;GoZ`ji0mdI66?2yPU zalu3b&~pwZvyZ0i*9VHkBA8sY;6;EnJ)f=jC=5ns;gbueD?fwjXp4Z|(OClLiN`6r zIWO~(m$`Ri7&-6bMVTGxjE}B16=q1$8A7S}g&8C$QZhq;pCO`ie%$f|J|F-pt6{ni zy(L>nv$dH^!DAaBzs3qzJ5GG{OyzH?6rJJLdYaB+-zcWclv!?NhzsTS-}-V~otzmA zBg&^PXW*8ToEoK9l!OqZ5hYKe!6l|raO%qW^;Xhy0a)%0Dw#XLEg^PH+?ZigJ3??q zNBLH>R4UDxWas6is*@csOkL^_tND`SP2F2@IvSD40CHY}2@I9Q>8evXYvC{{@qDrT z!osejy#Czy#r`d%jf|2z)1$n5E5plyv*f)6CQt1fMOF0G1!I1v>D%rq^K7tIhL*4m zurgZkmUr&f2fFc3+AofT?(e!{_z29}dhiD}Bu*tJ0xn2l9xgL>O?#vE_B~fk^<&vQ zRxMBU)J9=Go8=k`>W#(7C1wj&{!lc8M?j~3iE(%fyf!91fX&Lk*XFkS#&LwH!cA2D zEGR21rT&)#!>)1oT>r!F-35WgvYG$(YRmuYOfh=DIxfgN7L05t)C<~lvg^pwG!TrD z2sV3@tnARN?zi&<92c;+{HAvx7X31cRA#FF$9@W>S)F_~-@w1VsbXAgKqfPvRPR?$=Xs-mNp$mO_%2h8oKiC`QxCC-+;YNT0Lvq*OoF&So3Z_r4}+n5ibm(8mQH)>VReK#+3UKVk_y@QVmOgjQexaft1X8I8|A z){sjl+GSkb97X#G$+6+%aze{Z&gHlRmt#?N7tgB;TmPyg(-xF%6d#Kzk<-WzYYyXJ z{x&UQEl8-q+84%Q8r_m}xy;Qd@avAJGo}peqv3~=l|0h*9anT?WCkp;uehvD6l=FX z-i3VtJ+K?QcNEBSgolF@WV8{2kP9>Un_cZcGXFgkmQa-!PQ2YpYCrVVrHDw2wlZ#Ncy z%&72ZVq)@_u!6~?pyocZb<``z-@ELv6}v(s_Vq^3 ze$mwJ2*i{GEA)wtmU)5tC^75dfcn6Z>5&f0VS8zf<(m+kE#L5iMt-0Ba^qC#$l1E z_mX$|mG`<%i=z3&GbA^zo7k9XvU;!)Q?y^G6w`BnrTKd3g|~oR7Es5aG93$=n8o-Y zbkysRMDacx(b#BOiWB11td&_7USc5|69uqw@)8cLjLeT{UO>n&PzpqN1a!<#xDopq zPG0O;YamSQs~vA0yha4?3Ju@zyAbAgYf~)|C#mhOj)zs7-tA@nBUuZEdTz*8csa&x z`FX8+k9W-);1+@{C+Q+vnF7#1ehTeG5QhGAv>KR3CDIu)h-B55Cpegtr5_dmJV);VsZ7@`S7Y4%1 ztraG*O8Y$2WEnfuzGPC072|pHH(Oy@*>0Hq7kfg9&c*TGS*s1WSF+Z+fmm$s2@+>N zx-I4FMOPozd;8O6=D`Pu|&D$T2zQd zZ(t#KFS?cwLg$k5>|%KCb;IOP@tgN56{F?4_7e}34I$a==&v>uQe?VzYuw-LaKws% z`mmZH*y4Iy{P05#p^Il#zFrx@1i*!}nHO-)0uvcLpT6?@$-V0{k z50UC-Y^>`j;TC$^?$9vXQ5(&N*I4buHkV+G;g`84+P<#f7NC_{T^aCQ#{CXqHDNvp zE8DS%dJp`24~Ij6VhK!$_co$a5N{O}|K5@Z3B#LisH8s`+aEknbpycQIfF75C>EYw ziQWE*|MqPFtn47f<4VgnqX5|5E@}V zt}@%A_t{f(`QoKGgD2jC?9R=q*uA=M68o`12J9?49>OMa-(WZIK zWO`8@EbF4-M(Nl z!4<9XSl-s^d1Rc_FVY*hSGJas zM(?Ob^ovLSDwg(S!J$o)oxxEtIALac&b|dB^()BSZhsddjuF_G8Os}D1sNpx;G%xL#inQPxx z|D3vYlkI4DwQcIbIkthf@dIU0^n3sI5Q$jEvO&4rv7zML9g&}Xw# zYr0W<(6JA;^D5AiVuU~+Ov`@rWVqRCo)_{S)nqz=gM9US z^Y`B8p5WJwIVRr0YL|V%5IPV{o#^yKJljdgLOk}2@zr8&q~JR5Z~=H7owe!mvaezA z=?4?~@ourdHEK>KL1kK!{fUi5z5z9Na0OOQk82FnjugR9m9<|~4>%2!EM@TA93+>g z8x?I2_WPsEbeMsA&d!-7<*K2n>O$SaEbND{@+WlZB#9!q*C7ORw`u}pY8(!kk`SDw z3GmT7JYo2yP(HW%aUExM?Z#qS+Onir!fF)ft=0qRLhCMvpD(D4$~Aopa5Glj@lU89y$zUwXm-l;JJ4JmQmlb<}csZg^?w-Z^Rr-{P6TxHfamT+5lX-{r< zg{vk1b#@H3o+W9GW#^}gJIw8}NF8%VpJE)^)5y?L1oVUSiNNPg!Nt`4!A-HDhpB%N zEn0@kAYb)+9%^!1h04?b?TmC4%{$Ozwx&;%%8n3*%pj?&3C4tTSK5nuJ= z$~3>g58RP?yZMFcJ5yFcY@_@g+tZ)!b%WnZf}DlL^rQ~vgP!JBy_kKoV~Y91H|BLt zgP77FK^8xb`Nn#2q@nX18yg*J-El-62U}x081c5w27~Yv=L?UtgR5%$=55)m5t-cQ zzF>T;!q1N>&c3do@t~{-GYQ8(>cg?oGuDGa$ka8Vi?BTuWs13DSmNO98q%_aLaZ?9 zoTWNJkFUlPax9JTwO=Q!WPjh&UN&ife}#s=`{7Pwm?}}kji~BGaB+uo)RYYFV|%Jj zpZciB#se$+to5X9j;H7@O3bBD6|STtO{3>KAFlY#8{AC(t9Nr5%0&aNRczX0Jf0pw z%JkWosaQHO+)GhRVce8*Xe^1d zPfZ+^CDX+1j{$QDwq#ySCp~%Yccm5}zPqu%Cmb$}#iX zfJ{+Kf+<7)xw7tF;OB}$Y$+{uo~`##v}{#j)Jc=Y?=<`l&OiAS?nvnuN8?&@EU0uR zo>-?n@w@sdtc<=Nn)5}nCkgLH=VUH`&7`?$df+j{4>hw(SpT+W@?kM0MIAB)37Z1M zBFS88cD&E0&*B@Ljl}k^CrgQ7W%-~y0yP>%mQmIe&fC;ahAB(665!DDd5LVqhg1`P zjKj8A(Ka@eFa0)XIxFch$yy_Y1s)J0@5SZeA^&je(;~5$sD~puRq~NhN3c7UKUaD% z%YL)FtWgGmxkt*ghgXcJ(0ARun1&y+XpdCK0SGw_n@=V{N^VLRM&k8e7a3NvEAwFi z_b#B+^PN`pH3}Vm8bXPDK5BFj^!sQf0egU(t9D@B38}LBEBDo0#I(?u1E#(|1-Bln zj*D2X`grP9gIWQW&{lf!-{D15&K>^kihRuzMZN2z^Il9l>a7?ZI^cDI$;B6c4yZ2^ ziA-vg$$>>TKZs>vAZZ}xFm01R1|9Ky_z)DFX;t}S_IuBd{k>>@G$T)4#iL2TA1ZGO z|D5#{__%tgZwjB;v+$1d9~D+P`rYvLPIhQS#Cq~78IBiEN0K_sV)K1u)GP{kzi(0f zGD|0{alQwS#+g=fGR%FMgEg7NXd}S<|N1sWPW~xaxbzj|i2FYPXE` z90e6Q9D+SDla4C6rerZ)5-`pYXhKa3Y|U9j_O%jQL`swAy%f1t|c)!rR^4Uf#9 z9Tz1X#x>zny!brPb8U_~xj#|5|0*oq`k&;3$+`WjcaPPyr^=ArLo~n2WTn+b4b^$1 z9Uz;qv)ZWRgT_(9*vtgDIo}Iv8@^*apd35|^~@k_1YZ&yzT<9()wdN$Ec7*Hh$cI2 zs6sZ8%jx=pItGa|DO2PJ1#$Y9!_;-D2Wci7IyHE6@m|b>64r$R9cRUhQr#AJfaTJ~m^&0kx<^|Lm)H6jETQHEQzi_FW|C@hZ(Seu^;d{;^yQgH?U%gtWAe_!!0qyg5_Im&xz zCYo%EYos_Is1~=q<06oaI0GgJf_iFZoKOO5rA5%XD4zBkdPU_I9-%ckLc|(TNV*h~ zD}D&Uzq1K7H$y`H^Q}k@KRJVpL5Fs?#wQ`ss=5| ztl$5aKA~Q}=73q3waASYLumBe(h_v5d6cX+gj|++v+I$!&w6GaKBTjj<`FmS_4J3* zZIvwcceU5tHs3sTl-<-qUcNc#h~Ap_t5==<^-fKpU*`I|8)F+h;^v>HS*u>;={N%% z$&b)0RNi>V_gCIy!XW!46ro`{cjreTfk%nQ=k@TyGor-*_ zXTB1W{XkAbIhfJjU_d1za8Bfy>ua_?_1t!C6fK@@sI0(T^~kFLXg7K#ol)9hi+nG5 zvW|)leG~KO)grsl!+J$%XCJ}cJLOUFIvLu5UI;O@7i2xO*%nYD-8+KDI1JV)bxKDk z{GFTfJRpT@i0=ih^qH{!c?c0GfV@fhXCyUu&dNHn9_;_};O65-UA9{ROFBXC&RYI* zUxc}5(|J9W!G3xX=qc{M86r1OCBo*e_m^Z3bq3f;80PIz-S=j_{dZhkdVNEvFvCh@ ziiPradh+zwx=$R40zy9udBR2dy_hBfj;|0o6l<~_Q*VCwoT+!?XNRekQZ{ukndMAr z{aA{et?oPkY(7SZa}aZX^qBhn^I^$-JTyu)P4nt#Ei~@Px!<#Bo&Py-S&k8vwuxrn zP;ry68e{G9l$+zBlwA$pSQ9G})6SQ#t2Ve>YmnKD@ZOF7T$_(7skJbxN|L!ly1wLU zF1Hh1%ebJmpL1678Nj^C9MBqj-x+{u#bfNYpozdSPS&P?X?(TPR0^*3MGO|ee9#b zyE~vXrvSnrudO1Lmp0|XkhuzE$^=sjUJQ6Fwk0fVP%M%$?1}f-Bt?ww{SHk>cw6h? zmSmMueN>I-Ph9Q{0Sb*+7-Vv9^Y+6Qw|Q&Yz5nk8$ZgmR$3^7&ORm_x4xvErw9@yd z2lY^Y8@#m&xv&^J)*UGXDS|9k=%Q^1uH9dAXQ}HmaqkCp&>wR9s|y`Cn0Oes-KxQj zQW=B=Cq_lHTW#}vt3=#Bn6#??QE9j}q+sh?m2t)Ll%iSqquyzC8!;`L$lh%#8O6cfe3#=&zR z4a7$X`)J%aXJnm_`%MzOu3mTlI9qg*x2W>d)2~eTX~k#1#t^EDopZ2)!K}BlQ>7<~ z1+!w{5yIx}&Wn+Hyc1#sbD86RC)BD;ls-;RK#vQ2bf_%1_b!3JAaf*W-r zg|hA>GcOJhCiP_9;ieo}{e4JJ##>=S0VcRge>NtWo&i-7hrK8bD-L+=qUO z+{s)*OEIsM_)fdf6+ zZqIqPPJj~v=VFwnF!_P!3rREyR5`Ru>Zz4DP?T>)K3lHxDmX1ir+tY(dn8hlz?%rO)RIk^&Zc+ zatFFcjT*M**Z-JRWIUx0`6`~ss=J!n(~>7g9aSXB1SiZB2{LQyWz@Jc!hOQWQTqvy zqe3QA4HP{?udb4nhMJ;a>V6 zHW?WcUL}{?Iou+y6PKMlc zR7j3NS3bFN$+TU5HlLOt36T&{gBW>ATvZ$E8UK*M`nXTHD3S3R1Sf+K?Bh%jUo*%Y zFc1u{+>y}Jy^6we9ZaKO#I8$L5#dui_6@&m4aMEeB|%BtiwCPfI)OUk8Zp~D zI^o_cnKh(IP+Zl_Iw0HWS8xs;G-%z3JyEsu*iRM{W-4mH%AijAkbw8@JQaT=1;;AH zQZuapscsVmx_x(dHaNyA3TO!B638gwzBMp3he^iB6N}(zVxQN{dVFfmb|Z|J^m)|aW3 zTF7Fsn?RMIkN>gKfc7ie0i|%QQFa&+u0SL>S6wjSk5%7dseu@a0j;9=t=()OQhZNS z3Yn^=04!r#J5fFXrgMTP(W0zsJ3#h4BkDw6xfXIwiQt7(lLtUAjxCs$x7&n^yO5Wm z?Sun6$+Zs5QxBM#hL4xqI1M#&V#;Facx4&)gOW`;#D9M<6k}O58x%P(kp@iwt5SuI zZT)3Ok4YlDALv~U)*R*E(Rwv*twTUXst{25EvJLE9*ki!jO9ma;oBlmRDlu0j{PK@ zXT2S5zj(kQy8ak|-JoxKjEm}oW=04C@o^=HLW6(q)xNUdk4Y;`H=8^^uFp(p@M73l zJzYgfkgb8aeqfWclAgdoNF@sv3}Z9W-TC2 zkf9gI3GPkn*LMM;aA_$KeC9gB%vJaL1hh}h0clPl{g$2ZDHbLW1p|;E#DNmirY$rR zRBdOHrh|m7`Ord$q=2Gr4<Oi{6lx#(A-~}zclAfwWAG@iRYC1|Ltq+!zLDQ}y?8NhxT=Q4Alx6z>hXizu8LR(Q zKqaN6A+W|)N`9?2DTd441Mm?Q5+_b@zv{ss3@x-dm!vr+Yp6>Y|MW@^+yoQ)%o#)) z;{)V;UQ;@xnk@&+Kn|Dj_`bDGWsfaI#^S(DJJo#vUK0P%$n)cwqyhoC)R8GPL(T}{ z>~9Ta`MQ1UMMbKRh(=u zZ0jm5R>WsDPkW+0M_V$N+oDK_n62>cxN^Y#yi6uz57ntl69P|oJwCCCW z*>MNyRl^l})0aq!9tdg=^vZyL6>T9;zHzRXKFv0vjK-WKFTN&V5Qn_jKT!;?2{bYK zWO57=na0(8A_X5$++2?Z3#t39LEZ- z;rwB}D+vBqC3r5}2f4MzeHA&_^ndCv1`CZB;2~~g)(pYcFOsddJS(hH*k$=bl8mzJMY1z9qBtA_6OqqRLeZ>%ARj|y3DsW^(-jIcDFtk#>uP# zONl{NUTetV{2=ux+cLS%X{U+~&lLi5&$^&WKn)ePV5z#Z8R`Z?dzr&I`pJZSa zacLWSMmWBqE;E4WeIxwy1~wq7vyZn>^39L}Xxn1mx%WOW7@|~75NXvP_tSn{6(_e& zeQq6-s)POSp}Z6iIkdCxzq6e64s+1G{7yJCX`E>B`ZGDqyCqX8y5Z5zqjM^?VTE>U zWLxs{2>g{>Au4ot0>qt@iybFmZw~|~olY4fGHFJ>Ue_XQ`FPUdVGLblx}2Nz3UF?P zEXGZ-W>g1gmEyn{eYjLDJ#UFWxEef<66cOzG}7VgV2}W^D!TkNqEoFo0Gi%gF*v8+ zxgYU#^*_J5{2Q)))viWbg&oCyhsRe$_UjK+Ln8%ms)n2xo0E`$*k>ECfcYJR?H6xJ%+8ZW*E8YH^-8!7L?5DXmoU#|IP4a zSslchB2zndTFXokc7EMs8H3^K*yQH&U=UJoGfl>4UDJ(OTMPfO&Jru?XnH^aHHClU z8V(Ebtw6*5Ug0EHeE5$WZTigG^;oB1DPvwq!Z>9529Z0+z6+a+#(B6}@rY!bu{H3m z-MnluQp%KWPht5BsFjo`cMRc92`n#p5Ru+)+b=&~_}t=NrBxoMrJl69Wtkq!LwGfg zWnF#=^rrC!BW5Wz$vGluJ#RB&!{kWRr!7&%sA;GzrHM(Y%SXIxs04-egrl^2N1Vcs zD#C2dw1!iAM&-Wsk&cK{6?d(Z5+0=1WW~UdrGFE|UmyjG`6irR1gO5>GU3>aZsvV< z8Bm>R8MZnr3$(uPI?M*zxkd0Q(zTGny{3;w$tN#k>o6+3J%E`A7%I^Vfojb@5oCioa00{qRCyn&u0MO9n^F|k_7GX z$9fCob0ppNR3DOqhonwU5^6G~$zpB@+aY6_sxsGDP@ch&!R+Cy&Wh(Y>sLA2T{oW7BR{J(cxU-$d)#TKJ20_O>J9lPg(V>UDz`U#euw9HN{_n^wa;~V zEbu_de5%h}PNL}L+x?>8Z!-@z>63EyWM-SDw!OK&2H{*>HrzC=N5#nH zP9{k{&Gx#JJ4VxiXG)A4fzMj4=lpd7ksJE)trq+Y7ZzV8uLyj!kY@-Hk)uApmbuG) zndk7!LjrFX!l&(2U4Vpcx+M?U-+|p&9=P{1|7KfWOW2OKV71|UWGi}8h%7NquaMqE zb5rA`d`j(ZaRi!&7tDGDRz0e6GkE2&YwT2wEmYptfo7}4%Pz7h5NucpT*+ZwW}8))^6i3@lE(M?Rdgt-6jV0%^yu#pp3TEFbbq<=qZUW$W7Zrq z;m6e(T9LVASDD|q#OVO!JM^?y7-bw8aRTwPu6w8dsCN4SP7sz;u~;yzomm-pX;Ifd z?1x2;eI+`u4_e!Q_IdAWcEeJ6Zhgf<@&_|P=-nLWrM|a>sa#E5Ib8Yu z*Qg&V(-GN!jvKo1%>=E3eeuhS{)h}lr*bdC2IrC6vnQ8*Y~bRcP>ovzQPDXCv~47H zHTl$54qMR)mqL#DFpBK`7iIs*R~gWm$5aTB-y63lN9;=WyqvRmuR3gP04=2+^Q2X@ zA2J%|YtN1!xsX{&fqoVJ4q#OFMpd|{#Iea%87gd zuVHRY=9*&grM^SRv%OdhbgL;#vnZvi$K`t^E+I>5KW#!{2)!;@%u(~7?XfT>tWp>4v~KJFV*{A{?u{AC0B0~KeV`1NUJ(H}}x#2WU8hslqHYwaP|h?T$|WaKP9ml*4zjNwE40X;n;aw)&e7D}pI!uxX;laz0f} zu7*H&L?7EB=^>w}){^zGIWv0AOR2YD6g(3O|4gakbC?_v79QxicgOf@8Q%$dg}S}O z!1jdwneS|SgfEgRuyUksW)k#A5`}w@VAOdPlvB20hom>>tGm!G9aGZD-2L`xPP^s# zM?c4Rzx~=tAwN}LEB34QyGN3Pu9NU@;!6CP5(_|GP+z4qO%uQ7WXA6ogOy=2ypgYTE$E~+l_CE6N6 z)yPPMst6JOWAa+iTFzIqZXs~aMu-@S!?QsDB_MhK^#-o`QMQRvE)KzRM-wf9m+T!L z#Tmbheg3_*C7)jZ;@^Ktgq}aA3~4kTxX+m>fCGiB5ZPIisN+zV`JsHEjVS9X5XOyr zlG5@7rK)sg;Ab6?RHU!A48`D`Ua*I!&2?m60{Py_)KGy%eBW*;Id1LHgiTAoDR<(p zaTJ)h=;At(=1|vTac&D!l|9!fQ#7j29&twb-ITN46qex|hMh9tVMf=&gcKo2rC6an z-xoQdX%l1RS{BeW2f07*H?Kz;?vx_vu_c`$X^ox(YOuHsaZ7=4I zJuWBC6Q?8Q4&);W`hHEbWQ2=Bor94hcg$Uof#tf=IC{8MGsiiK=e3&a6AdP7w=6 znjT0ZN&T-$v9Lmydo{sBWy)Cbm2wcenz*ilLv@T)+Y0zjdXT#TC0ur5`B(!@zPN2c zv2Q-rKywaZR}>UO$4|87HdkTXw+7sfKe1vFRtm+`<4~^h&(W->N!ZR8n2YSDkPgX5 z<~ie%n-UIw_#;;`GU+DL?fGR$%En>ytJIc*6@E& zfc|sbU-&fy6Vg^sGjIusoFeub1+D9?-AjDmqjT=8f1~cy+FGRlT>rRz`|TocyQIt0 zhdrf}Rg2Iz^`)1epIX@U`^u;YD|7Q6p^~g77H<5tJ^Uh1F4Er0GGfdXcz=s8S%OvF z((ZIh2D-Qrd~o#WaDS~SUoeq|iNhnCYeh`xnn3~!)Eum1qA{RQMKDqn-rWX|gf#~r zaehBd%Z{@v%}LtWkvP9G+Q&xNm}f-By~xHxW~%?p+m&q?YKapXo-zRVfvq$e+!H2wFwRW=uKN$fqt*lgPbM@H`Ul|Itm-vyrh@D z;YjAuP=nWtrS6Z>Nj-EeXo+*9sr9Xt&fT^-r+SI#Zmecy#*3XSv@W~m^3-ooY znxA+NEHW}gw((hTyM<3CWz8+X@+o^e{E3a~qyY;Ii1im|Pg6(nM@Age>1;~Y+Q2lk z4p=jdtiZI80&1(_(<>SVbFVIopQ5~ebHW$uV zY`i(mVa$WNFqr;!{@#t&%)d%S&r?i=8UEcX5pGv_o%hiGX_;+(r9vnIKoBa4+0-uR!wl2oDD8hBa{>jW8#7OXNdyqhkt%TBi&|*!{@;83Jk`zP4bj zsT2ch9q=R}Yz53RFI15)>P$HX%~jLBRXkx2G3%A^v9_p*9cD=0bn(XadO>ZP7oK7? z`=}NVl(M9zHeect1KTdu(^s@b9~O`6&VnD)UhbBBrgv-_eJkn%)jE$A#gIr#7nSm0+!vzo*z zuXJRbU&-oS_Q+2iW@5I)=Sx>J88;t>Hm`0-chIxD$FV66*y(YYZj0%u8KRqul!&gv z`AT)OR`VA5!jt}CLeC2js=6U)szTA9Lkq7955q4TN+*2g;Tabea=2hLK!~+rm*u{v zsswJt*w&D{8nxn`$Y%3_SM>3^>%gRbqRnTInnV{;K3gQ(3+LX{n&g$-gk>h67FgOS3PY+LmG1!Pr8wcP!9E^~<&= z!Sbq&bB`-7GV7*U-c2tJl>rlSMgPI8$O>NXA{%LuA*JSYzfTH0J)$*PyZHocBxU>C zw6Ru`7j0VrWAL@dnQ|cyi5K-Xs~cl9qLOgj=TQ_BXZ&l z7dJ&zB`-xZdA}>RQYW2_l$+Jq!k@h#vr_(~*By}#t0;+$=fdmb?CtcL1Bsc!i@d-- zr$bnt%XL^yJREo889rem7YRII*PRB5gmShVTZT{gd9nr5?8))-xr1_v>tHi@o{fcE z##2DPc4ZD|C%YzV=MlkO>?~q4OSQSwoI22z z_gifmd(=LACF~Da7sJPp*Obiq%BlCo zQg5pgykI?y0_F(7@dEVhyCw{eNk6?HH-cN_gl>5!L3>vBAh$U_<3i4kTQ zqS-T&DD1(;onLk^RhT{A6v}#_apKzRdOZ~h;8kaDhKW647WBkMY4Uk!N)Q*__Kzqc z_Tcu1anI;M1_y=gfOHCA8$?#$9Y%y64|<}+G9gjerXVSn1VjSMj}`R_7ASw+ z&t^OeldC$hTh#)D+y*S}AJ9CcEY-zq=S`)>XRP7Z6VPmHJT3<<@pUM?6*WUZb*_FV z(0$4ZD|v&6mjo-7$_V&9a;Nfvmda#KS;k4yec+?4q$odumA zkrZE`+q0^~h4J%=b<4LZ1l;b>^%5yTgIQTyBqcC1xZrFPDa30VD_tJwu+A`Ikq^`- z38)+?kB7IXw&zfsNG7e>2osVRnV$^2ER*fy5JvftNu>+4A`!jAB`ekMcdkXE(NH|9@k zoifxb+Ax+|QI9!w>OrNe>x=ZN3eOFRQjK}gRR6q;!`x2@|qnw!0moq2b>;wg-WpoBj8;)b0EXeoDwA=McWZ^1&Qe7(WauC@2` zGBBPjp)0Akb^ZAaONH{xz*pZ0G1&gOji5l5d)dxVc;s708j8}Ee7$+6hNtY#zH}ye zfPF(qurkSwZhyTWlYuzr0~CjKCNi-1WaJysZ4W+3*rmEiEHqQOdaTf`0Eq~i9v6+B zf=NI!q0@*rES!@HHYRE8EwZF)E*yeW=-6%$pb4oekRh}w@FG*oF}yX|@x}C2Mhjzd zE&;5qG+>rE`L z2!`MkxhkWkZ*LniVlRl;#Ni)!Lt1(dcR(N2Z!PG)0?M=3M#hAmv&Slq-Vn|9I{5SH z>x`vqr4puv?xr*vylND$2iw1YzXVu2 z&}^ujcgpwV3yG;2;pfWkZ_Cz;%M_}@J~d7AIxH={pdjP1{8A)h3Lt(_KrPAtX7B41 z^$dFsz5%O5_6ziyD1{-<0c%v;Zfj60gReP6@JdUd7XSM>=V4$gzWLhYv;MVrr}w)a zE&;zwP=V9qm~Rh?2L(5({OHd7)V!|r(`bm)Otr+>s?=vBMQX01`_9BE%FdafdcME# z+kjaD2UEJE8IYm~C3jnLlW`QV_b&K@WM0hGK^qVslhO;1b6!AVmV(V8Od>6zb?UdS zPdE$YTTN-8fs+xrxwngjN#GPAeuF3F9`TFt-WD`F`jhF8?!Lx`2s+BAUAx>BFIGO7 z&s&S2mwDgM{+;_gEYYA@qEMJ_joTly_-A?8CTjhqe=`g;`AhQAwAB?>VZm^MsN0U* z=eLVHJ*KM8z*PeUUZ5VYNbDaoWU#zS6&ktPmsauL)2d<{F3gunoW*q*KhQkqyNeZg zCj!TL~2{$XOT6BZ*4JmZBh-tD^CoS$Glv#`gm|^x%BGi z;Gkq^T`n~gCO#SHBUoE%epRDYDUOvj4LJYr>~^?41qYz@48Q`1|6zD)e+cXCOM}Ug zffc;&Z%6S5e;Zh9IZUfK6?ZBbMGA?Z24eAdW~O0$#>9oj#~1af$ckUl{KhtKqYSTI zo|42c!2b}i4;UIon$2s!rk-Z)IR>oCzCK`NZE<_FGacO>^?Bmt+nVGurEoVh2%SIQ zhj?FWQyeDrpZW)HgTzzaWpeEMiZY$=JqBlLlxtah*S9iVtT`g(^4qj{M4X}EGd*s_4D-u4UO+5L_wBu^ES)G` zgA)mpSB2iqK`klzE+DfxAy~hiKfFG3^4tFx1Q~>Ub^SD|jddDPbcUa|zVny21lsW1d+mgP7UcGTzuXN&n zsqE1E-L*O^{>Mx;t$KHLj`bL&I>cPeXH69EXMXG$;00DZpC^AQ7*eMgPF$KvgB72A zSFijYekdbat~)stC*w`6%>^C0PuX~sLz5H}3yceeCGx2>@LHWwboY%mzNkxJG&>i^ zUJ+#QVb>MUos%qRF8JQ$9QYq9EF=gd_(1vwS)xx*G{xFB?rUJAL=*2)LM0Z6o^CNS zc0>%1?mIXNWVh*SOZHN_YGekAtH|)J5l}lbQrDBxSTbbiL@^|xd{x8+r>tP&xAI7~ zTS{pP;A2>ahCa7VJOziO6>R>T-_~08>Ug5w%1%5N?w+bJyfewxCB`iB zxZGsug~)vMmtlb%o6)yiFil6rB)ijiosKXaLqSiCLiLDz8|blG8((>9(@dlO5^yTL zU*R8xEvvl_$yYqj;j$i?ZlhPgco;-6A4pnj1};Lndy$JzztYLTDG%{OZtlQvtcB)X z3WXz-fl>j(m0i0@ud_%$E!$O9Bvvw_0D6eR23(SY!=dOTl7+p^n4gq}DJ!R!z&h^+ ztwqqv)4H|wurUmn(Z z-))JtCwr-aCA+IwSHE5feTw8ChwAa{@exhSKztrb6x}L5LGYJC9{%(u`}+-hFR$W!*RZ!}I0m}*$szjno@vS8*4%O0XxapNaS zal9?*fJ?DV+4e-fb<#%y3QwTS!;T`}H*Y)l@otem!t<}r(zDm+2Om$@y(QI}JoZTB z98lS?zIR{TP-^50`!v-%11L&IZGAOPrKBJ{luMVY&=gH8xUssyxGcSJp2uZV(?b5Z zeBLVTC2!#+(>{=a8rFJ;W{O{{#nm~8H|#`dWIW%bDj`#So-w4or}Wi&xUL8W)xk*u zCtb*2zj=b_sDf>JT@gNDU9!efuL$zKR)u4*FrpB0&ADIfU72RlW+;I;tXnXyQDmVF zc0%y|i6{!JjM5ZxdO?hb3J)?b^#YqwIv-sFOWcJXgo00)(o>|KG1#OwV&GD(*+6q7 z<|0X>rvKfN1=Ku!bB*S;z@wG|^F6`XEukU4VOl;54Lqi)xnS6nJtjUM^QRqq^H?@s z&_|0#@Z%reO1H6!B7VMX*Srume51+><^ZwV&@|}Ngf>z(REh}yPjNx?6}(CF80>}@ zxM#A#A+>*7pDBKTuCTXV#wUkMMZHJg?W3svvZ1cwv6&)(uR(i;UxZW=^1OrI?_JO}l6n5bR7L*DpZ5SyKf!X6Ok`gj<9a0(lfswl=cvUG9XW!`aX za@Eu9ztb!o3I->0smBFMUbPDe+Pi*1Y|JWK5c%VxJMjnO(Vi=f?y`eO*OLW_`p?J` zHN)yJZ;sq zMU>3dM@IKvJLKckxWzLK)3#wM+SE=jB&$TQuk(8cIegPDUAucI5n3<+f@+9m;fLW; z^mZ={z+V*cEWakv8CpW3*N2RsW!gwQMOqAG)lsSr`Ja@!qSa zJx#7JFhctjjORva-wzN=eB$`UTkSt$5kzK75N_gZ1`VvQPSJeduMfFu^mId3^M5p* z_dA;n8-}YksS#>#N$eGBZ$Tmip^BnKs8uCJQB|9e7>T|2s6E=E+SV+YP#dJN_3 zdXlJfP9*QN807$~EL`r2Q9Z;pq<^`s6fjXjmRh!d;g^KfTC6tdxRnrF(O^?@^&_ozisw0vjd8FOY)G*H8d2qsinSF0d z*1 zVgT6)mbyRxP)IzSB1ViB5USy~agit~ZSZI{U+_u&Chr6q+X|Q0+ffeZ)?Fq@)QN~a zm(4CXHv5MAmesMx<<4lc72z)y?_a16$9Wv2>h3RsSjmsix$e_ogm^l<@5CXD$Ye$saRB*-CSuF?Aq2BMmpAi? zbpyz98bo&2rrS>7_bs-OrNk7_hM9cEZ4V_Dpaw5k;OGd~RGpyfNMOyCxHT>;`E_DZ znD9uQw~!b;swhg`!y5gd*quJ)FkI~ zp3B@>ecgv!TFLMQ{$01UCNX{SJ9E`KnmHQ+s&C5enp&FfRzyxXq7llvRVM!1hCW`I zzu~TK`@%hCFUhLVEhh&;juhHhbzrmnbjw%z*I@Boerhc9b8Wv*{U0^IoKhn_8bfB^ z)tCU8?aM6u${fmYC0n$^#HN3yT0+}_nH4=#DokPd8$o>k)@7SW1`b1)4YPthwI!|5 zwVy4NAK2&Z&uMy>+Iqry&&+2{Ud+_q2`B`~_fG$;iY8T#dEJv`b{B5VQ_#>C6Ng6I zK08Jvs6+mNOqAZ1!T3SRNQx-=%<3oc#so17tI;LvCZth$Tlh#+;YiS-+eHX$AwQF~ zznvsh>GCww5k(|zF+$<1Mp%341y?l2nN0Oz51qQ}awO+Zdf$W8i9MHDUW%etsD3kq zq6>`rJ1Wdp*YdaO%kIc9w9DW}x|UMlj*g1*V66IaXZFls?K}y5L_tG76Xu)5W*0si z2`=*AWVrxf<2jX$N4}}D@Hu0IB*ru-m0t@E?Y=+M|uoK~Sk9J0;TpV+QZ6KX~XBu*uK)t`lKf5WwwLX8@D%jKSxDn>rYL;y?&a6ArjcDoPnD4v#xzQ9!Xaf5#r$P1cCND!xrKg`N{LvyRYUFOmdbA1(}kWq zqS;Xc=89i$-MFy%lG6+?#nbPWB85E48Zv!HF^k{UI$yvw*s&+7K=tyMbB3`K24qia z5By7(w!Acg3>ovrzoICl4s>1N=KS5=@r#^0wN-@&SiZ~96Dk^o=QLhov6$)uDHgsU z+D4VtYQ~yb%`$w`UBN5+_ZwY*-3f2~F((Q>8hy8SG7$YyzxF@cddm=#Li zG}F|0_5f-oSg@Uii_#Y9T>NFw=S)$q5b|EqbXjIJqf}(sD6Jn`h3~pHbmB|k! zr}%5bdH5QA`Flb#4gY>w7OPc16ny#ZI#1Hn_S+syu1J%`UVAQ{`b|Gn^6O^HLvB^* z1kL1@$RC1S;gI_4Vy^HiF11}JeLyVtPBno!5c}+ToMq@hPo6}V{RlM5OJi?wN>dE~ z?F?WwGNQhly@Y9{!091HWLqLwAw7*$vLjmieZKuRYiox1dGd$duWbk)N>``P95pKw zO{Jt?a}m}N{E1FYhLOAu&)ixUju=R6k6eXb@vA7p-Qq-A|mzPQ_P z7r?TihAncEVBc0Gz`A$W9|7j3_$jx=2fRjvNDE4yX^P$C*l{^1%6$_7%~^Y|I1~pa zH8YSZ-)^@E5re7`bnd*`Rc{= z-3x>dZ_R`0@lq!fDfbf}3J?EdlGjVWvoimq-o#;_jq7z84rtF6KPQpj-yJ$EtvbRt7z9;-PLz#Mj z2oz}suZn^JAe85dnji(EOe7O3|9OsxC{Qs^in1~^x_z)mucC-~n=5}eGxvR^#O~pa z+Kh=@N(8S?b>y8po3}49>TGBFw}Y>y@s42H4kWsUdOk9Y^PL&S49o74e8JD2Ruw&V zsI?R!4%1%@z_T@3K-#__AA|KUPtxDg`eXJ_`i!sh$-g7W1)A6C3nqe1AZqFhd5^|y zQkw~B_M3|y6PpX$Bf}DhA`0U-GTRLJc|=P<0uw}SVr7B=Fj(SA99%y-{5x1S2QJ4O z`fGJwB8b^pwM8+{N!vVA7I^mRM^#QxVUkO4xaL+Mg+r!YCl;G^u9_GY?ZFv%{b{La zH#mf}o$8NsuIP$pWN$vXSZyqO9CY{C;z@$-kyBWIsNr8P0kt^08O_`|C@Qwy8yZz#s(;zkKA9TT0s6JFnflk`HFJAu~w;7`pj$NU^7 z&A;Yt!#-#zC<(2znC2{r-O)f3?o)bx%6XhmGE2O2ZrWy4v$n>{S6jh}`&(wi-r#?w zsZKrWU}jdv<+PGod`%MQ6O!K`aO3J_Oa(xh9I`@$;4c9nLdA>F{_ekfz zA%<$V`|A_ogCd^HO69?n>fG8cG9G&{-5RYMrgw^4=&`(**Z8UYW;STy&V>7Ug0`Gx z8>mCQdm>+|WYpyK((5m+u+NBqTm^W&wcABsb{acXpDCjVbL`IWzImhXp*Dx!l_hMx$B*x? zQ(i`;m#T|2`_;*8thihT;XQ-zTb_9`@y8sX>VI}KtOI){%Ew*3`J+fj(3fdTLS&7Q zOVZZf(Ybffs}nwC5XASGgV$GkKh$_iRY>u3&bzJ{r4>WX8j=abhJf6X=o**I#CUe1 z)E+PHg^9047PqK+!Y*#0x9J>rAop@!xlrNA~$PGDuJP20=FA5|Ih zS66xk4ntwtNZNl}443=wRWAf8ZpH4`Bwl$-Izw{`*K4F4U~q{v0^O8tTyUFijn>vr z>b#vn}J4OIZv8{@+XdbY;LTN!qs+0lj zJAs-z5k13ZA#=l57}b?F{;D_DB(iRs=*Y9|R~k5& zllqQZF57j?hU-=1%9a#5x>`yyZClx-ZLvS_yF35L&RpY*$7=fK6z~v&e`iqQA+J$F z(^t0FfVF#>3QMNkQWU_k=*H-}nTxv`Wv>{NaKN6j&{-N!)$g~_d7qvD#YGVR(d#{5 zt1zNxY_)neijl4g)i6;IUBA1-5it-5K_}%<9MgMg;W1PiHW1;aG=qPq^5POeVTM)5E52g&LUiE)ZcTS~< z>E_HZD`H{4+k+uiKKK^0%p(c|1c+QrSkq}_IkweS2$uASFDSJ!6o3 zd-(OdOiBrE1HjflC^jrfXC^2}vt%M}G>?u+WI1OL?NrP&pd$Nit6$E~q?S0L1C@)= z=+6&i!QWWzr=i1#rE`K%+{m(Fg0BG_f>i#j(fBQP_0#|0MKvr9jxx7Yb>L z&$PTKX-Y%b{hrT;22<79ewSLey;?JJeA?jUiK6{j%?)y@(aUpiaL@tuHGs8&rvGq8 zS`Or#C+jSe)bRb3;Xvr)F6G6B@t~UttA>=Uh!%|rnlXj{VN~KveD>YDE6$v#0s|nW z;Svbe>0!1>0DE9n>)A^KMykRj0CZvl_=-OSajyv+3K zkKUg46x6&(Jgl&Cz1KkMtdmz%A3vUJqDzf;Yb`LL<1x~8nS~GbX-kt!qlFAXYp`51 zcCvcldO9r{ksn!c0$7!R**B5$I5U#@>0{$?L?b@jiy7t5CCdBrO^G!B&GcVUmK2Zm zFc;0CKaGkloB|#C?Vs92mc=4-QM&C?60tPIKx`q)MJT+tk4>~+wlrUsju9wMufWnp zu;Hz*KO+vbC3|y1v!uyw_qXH#K#Tw_=wV8sIoNckKQa1B)#hqeylr~f9_36a?1N!X zXkOER1l3SuWKagzIpgq??^t>yuMwXVXmyA%@M0q|>2Bb&@7wSC#gD2I1b%!K@L4kA zpq9m4?GmV=7oL*@$J(7UDiVNDxHu(*zw!Sp0FGuBF$BIr;rQyDstn2w!&T*hin%7& zH2^@+1T^pPU#quIoyc5*2nW13^9(OBA|#hG+Kbc(t4ue5%A1XX^OQK#J&h*l?xx4k z=a^?gp`#Kc%*VH{3YRh|acvi|!IoUJ=bMYYZUTV?CfC9^GmMi5Wv*a|2?a1<02;DX zNkp;;LE$ex`an|-Hf`WsE?6=M$GOs(^yP*zX7vO6Rs2}!v(f5I%8?IR#1JmC;EdiO z{ODis6=CVlfDH`ah9t;5uJ(Hwsy7-T8deDu(H|5-ZiqN*>723ylK73Pl7VfhAOwG-*++jnn0n>4w$gbmj zsK2+^+w2 z9kT;Tm!D2`c!a@d1c{>bLZuQEewMmu)rs7h^*er1Co{G~er&^lMnqCdHLkmF9=-+ebyn!vPz^ zp9fUtEP*WMF9PHI%|<176;Oq$@&fG}mMrFcUhe6XIl%o_g@1TJaQ@e)>O~HjO6F14 zuP#3UfGwu|p|W2rldK_DCKS^f2~v$VW*InTWbzQvEiBXreiBzqK>! z-^g58qUp`*e}5vU%ps&a3=#2@_9`NZ2B-;dPEKwRD|c&tRsQ4K@`8GkBhI07L@CS&fInf{1F|ZGsgGV`j92#wT=LVk`{}Sx!{XlQ-N8xCq)mI`lx(rw`?xsN#{a;H2QTl zcd9Z%_)gWdPFnoS3Vl*%Q2cw(ah|drGxc|7;d0dK*7@F51y2w8O&3j>PgGVVO6hCo z67Ie`kD`-aLh4vl5-mC+P5B8uje3DZ#fzXB6TT20hOkA6$ug^0PUri!S6E1 zSf=d0cX?Av3TK(qm!VT_=qAYdt!kPZwvf_{zP4r*t;A%h>ZGvhJ=j5@YRPHm6@R0# z$$4Yay7%}Hpd)1^K<>ZU2Pe$VaMmXgDAmZxb(+UFvYJnqBhnR4u0QL@Jo?LLhmHLk zul{}W2HKiZpX0M1_MajPIw4}@McMTV0@&iSCigvPf41hzLAhq=kBwd&s8>kMyAQ4s zYle)OyYON~Z&$1GRnQ1Eq*Cjca4Vac@>10L^#YWHIe%qgAT+_HP4SeqrX!|aiU@iV z8~J+F?3wqvtI0U*1u3dew=gK(jAn)caNXpvR1X;rC?;(x65+)|(FJeUU}QH2p(e2$ zGF~*>T&OhOY?-0z_LqBCVjZDY-?fmwqlYYyOYOEulDxy%FM8=TD zt~@}G(Hb(2lqLi;IHj}0e#uZIfDzB0+uacnOeqvIm<@(DF869rwbN@IZDKE(nps+k z*6cNmm30PzrMK>kfNYyU&ct9r`TOqI?xFgOV1h<2D#_xzJ3iE9nw`Js_zsgO?z z!mRaVh>)5C=$lSvpkdQpNhzn)B1N4cC9@MMEG{P)8gG3rFLyldSFL#GZDsD!O65&~ z>32$snBs|YE4|XVjZF8EVNx7N)6a?^k|9I`tDJo6&R~3>%gP|yQhV*3erj&Ky>oZX z!Q9UeM6ePZ(fCif7;|w8yQkj6(K{o|Ee#Wj9`IY!Q|SG0)%K)Ya5zRAV>QR1RF-WLd{$rzJrwEoaTB zk&IRoj_bVTUw6w&iYiMv=U{3NNTYDUl)E`y$AKs{4pSnho2bcnKuStroR^j}5E6J^ z`D3;u2t|<-M7yB*L9UvQ5T~lt-q1V`Z?D-(?ZY?ZsqzR;2A>#piZh?N^zc zDGQY6ZTK0-{>Z5@+kHF*_#`bJK*C+87EXvXkeMt5-~5ALKx9QsR;4Jq7%_VBiXKBr zn%$>(s%~#rhKe)pqM*E|uCH|an51{Uib7g@lU(zhno15y#Tnulvh%Dyl?p6>xPZ7Bk&HL~e3oMEZ- z9F}Ks(NEVk=(U~qbPHHNB$7qH$uirr+i3f+a9q)gSOIVsdlI@+#_3A*uZ$x=L**m$ zy|xdjU4sr}2r4wFc0$^g2xVSFZ`4WTRcVif?mP9NOJ^?B?rBJdfs|(K$+p#bme{0b z0Q0S*Zbtsj3_TI^xt~f>8Qd*Oy*Ft_b0m1jv!JwU*4;!bOMQ-Rw+f%|pG|N-FPMAO z^Qw~l?p$+ixpA?0mdu35{$|+5bra}qE>d4^RNvDxShjMe*JlyD3`jUpw%@ccvX{l& zt&`s)iaKufgCJ+S0VI8rDGbRJnD-<+H$}EQk>weC_>f2{Zg55-@0>&aekK}`;pEP= z8$|09RG)2Du{mmfR7sh+;-7Pl$?B4<7dxp-!iNxrgV^j4zircS6tdE09gM!Ur>j$& zT;hYQbCP?vqjG*MTX(v%p!S@Gb!%|liq%6P%Wofh?I_SI1x6HeUAAb<9(RV`X7wFE5~zm^({LW$2JBmyD;@f{xd-%f!?VW; z#ePKbI>g5j&EC{v#w%75D9slinO9rtbnZzcd-Q3R|5%WI!HyUmKf9ADD}iYwSgXF3 z-G^tBSiP{?3lSbusF1X_8x5O_}y!-Lb#BaRChE`V}ayB zZ@V4K^Y%AJ{93lWrKo&Kq8<-F25=-L8i&5-1*Sd}62~LLNZ2CbBIwyLfW!9Ib%4r+5*uRNpIy+>cb zW{%1*cy^GqGX8$KBC+Ik}Oa2`diETw3n%6P z=SzKo0{fZuqn>4|=qcJI1iyo3w7H{(g_c?XpKELciii3fm~(oKWWTK(RpL3e+xPC_ z;Iuq{i?TzGD>f6iKU6{I96r&Ou18jVVP%ka#`WHB?w>pBpUMnZyt}6L@h_3rgZW+i za}V%KfULlkm;%EelzF|BXrZApsl7-1_d4j-m&#)QkQsQ9f0@Z|p1C}!hn-1jD(yK6 z!LJXrw#nK>De9qkCf=i|S-AUjHz{^^4C=BciB7`tzOH zc&GK4nF#@ZrPmh|1rZ1iL{D!(_xk~GcqN`~MYb;y`LHvNlo%KQTUZ;pkAcRq_awv% z5h|RXmT}hr*cHf54|E4yp6IVLtlp!gO2`Y5`+Dz;G1lC-x<~%;1h@K-(%&?`sn*0R zTgOmf78Z)Tk<*f5lRxEpV#dvTs3kQLZFy@tj#LF(S1LHsJ5T75w@G^cDLmP6Nz4JC z`Dt0K)l*g?n9xdy2qQ{t`U?!hy7Owk3%I_GWOlkQ>kcT39@_tEe9i`(Z@hitn=p-R z6WV4g8wLtx9`G6D{RO#?-mP3QsRZphcd&`dfLPx`d^7^+^e%m{b_xhtagV$n84mc& zTsZueH!Zh%Ex)9=T{t+zzYEQc(sGE!IZ>ARZq zCWw1Y-s2>2>+pS9ki}z32@@tB)(f23y4=&R#$l7c>pY*`P6lV~ z5yG3m<9H95=3m8j917eZ=2vILA8P`UVvIQ-aqct zmY~itLe_%;{Bk0uJR>wmMt{dye7O{UnLg#!J9@T11hQKokcq-l`(*)oH~UyTVa!Xp(5^7j~o6&&cbI^BiWh@6d^( z%oA=(??Y>$FLxYOdG13~G9)A0yu|pLDUL&Nd^xLLJwhC(<^}F$Tfx*?um;!`XJb}Y z60avlzyK)0nwr{~w{w;fzU=4ra6zfzMrdOF@{V?e1Uqy zt1XZ`?tMsux`+HOz(XfX#Y}C<+=^eKt9KkE;1$h4mNW&$IMTWfF~ATeqPT4$qF2 zQ(vC2Gi@S{3_dlt=;#7%2q?@D}J_;i7>zz58Y%Q%_HtT%0324>I=Gf8M(!mm&bAOu)J4^I zjWA+L_QCvXfE^P#%2u}3b(Db@l^I!j&#NN-NbR|Zvw7V${4A%~P*#|yv1d%p9+Us%=_qP9P@c7CP{O(7^zgY-%bbAX$nDheaqVi7 z%DdB{)8@F{@G!?8*|FQeCuuZA{l@<(bIUveI6e69*ELcu67Laj&m&EBR$mCceR9Lu zy$AAhOmBkweT7B!7uf;fT*yI>Z16VM6hEt3osimv8$~tE#*ySMHwVuyV9#8uT+M96 zix%qwYduB17ZH`rHdvfU+#Vc^Hd!})o}d}NXmmyKR|T{{wDXwJtPWgY-yie04gq3E zDPQJlSKfY};M@ks;{78te;c}VxEPg*8$D3;KT4Y(+HU;x=q$uL`h3E)V?|r`0lnE4 z^%<&v%WTP*mjD}mA0fTlnRHjxu8By&&lELe4M*GR7*rq7f6r;nR>Kg&-mZ)^wk?I` z?sh}d{XLH|0&TI2+-wiQC&N}}sh%6Ykrk#wMB_m#r1E8(<5wFUUg!{fBia_-da6M}=Z|K*ZB zYfg;DulJZ`cA@Ox<$)xDa;K)Px7+4VZqm?km3 zDQ2O9P>f)RPOs{ikRAbwkZ*Obew;i!`Oc|aQ26fp5PzIFtYpnp8sW<0|H8^#=F_R7 z!#l?OV*%R1)_5k(u582gN?TRMzHhCk9`#QM-)-C{PTY8{5eB!y>$zjd;xOzh?1cnF{f}rH9PhBg_^3O)J;fc zG-hv`gy(?a6aF;8x49%5}R6!#8qYKz%7X#dC zaQ+dUfp@chcgFZ#$~>-f*Sj9{O~I)=)}=71A%piqH>mi%3~AD;J%=^?@BU+hf6u<; z75OP8do(#sJ=yLxW6bP`iL*&NNI9C@XLStxz&8Zhs35EP)wJfs+fn$I9UX^#&9!e zU0?Au{mDEqxrptBwITm+CVKz!*fLoy4z%Ec{V3T({V~PW6 zyP~fWLTS4=lKG)`5)R)8&1&ir8Hv(HxrW3y4SLq1Uq%7EWeiZ+t96srVsMq^s=xB-$=hVf?ln%nPQHi1D*YycjOgg zyrwcNlHZKFiA@;Eg8N_U1QbVAVOO8nX=Z=)ACj z8Nnxvlw~ebXt=&qlh~2!A7)lPYMZdO4ekDQc+XQgZexCi{IakT`F4%%1e#5;92?SQ zGZ-vp#Y*j%u0zs!Dltz=DUc(i0oE@g7Ds{X3Y#J@4Qi(VC% z`D+4S9W=!6SijSg+F~pDmU3t+v`tYed71NC2=S^{!64s6Z50CWjnM2}&$nj}bl5{p z3mbCG!|Wp6RcK+!xBr92N!U*W@LE9Sbt)`dVg(TWQg^U=94*t6R}3W$m7WLfxf-@8 zCTqLpAw?O(v)?{U2jjswU}4-kGmFn#IR7QZyYL7~2)d*wVmI&mV>(#AT1T#{dZt6h z^9&Or2MnHh2vsC4xaIFs-pYs*mlL9-`d=GgA<6I|6G^ToF%Q(iIZF7@%S=f4iK0h` z86;4BOD@~Gm)FN@!MJBK^3zmUK1SOpsXA3v+uVbvb$?r6aAmfyD47i+|VsbPvN;z?8cHHD}#3RBs>pJDB> z4vM5Z7@oZK4w@6@^iExj*MLv{$2xWD&e!m`@Uw~uP)Zr)XriMHpc#uxRl3Xi`;x4b zd&ObniUmZ7PLlbDR;+yyy@GVCNw0dK>m2lcRid)(j8V;ximWvdP>KT_3;$I8)jP`r zD~QOi){?B?P>9sragFlq{xzr1>XQF!ea`fR-z=%`?4Nb$8Qf0Mv3gw5?bzWm8vVrh zX*oa*<#&jSW3y-%DlN%b8m7&*h9&oaQbs@22VZ+#SXnIOe-FCb;HhvEFM5r8jx0uu zAToSa@cSyZr*0z1%yXS4N&HuZ{&m6A&XipYHbz=A=An~3`bckK+wd^J+KgEU7_e5A zB^Fo{dMEh=Mh16-i~38mDyUqeJC!^McUZh_Ng zIyzW28w5XWr6XRqr|*I9Zg2hdplOAr%8l}zE7hvgskba`j3px70(Ug>e+8sVck>wY zt;Jg93zg=}y9ELb=|cKX;tU$lvwQ%!8rfkPHLlF~aBHqY%Eq0Q#a8NHQyHq!^|Hv|%eu zC14NlXV9#vNjKme@nY$Zu{%F-Ul*Z?m33nnNT6ljQrTEThSr_EQ2_?B#~9P_3ju&QPA!yQCr%Wob$xzjNShbQ$F;&Bqz$k#lM~#`NVq+l zBwl#cFebhJ@4GoE2KG31AWbU09_xS!Lr4P;3_+thOCB(0+3jqlHF)RJW8We&0l72F zrXK(_VK5?#gij;oL>Co1O61Qm+BleN-__2fUK1KsN`~^cqG9W-P>}Sim=IrPmkS!Y zy$TmPtGqGJHuA6m1B*ahItS~&l*JvLyaFFi% zG@blP+*~4SNhMn>l7dqv8NfoP<@rh#l5Xb{;j(LSB=gL_6Or(|Pj0qSMydq0A+(V@cLw4$)n)p|zo2W@F=~;mF$ZA_yAC7?T~l7!<>~PJ@nGgAx`?Z)pMORlBki{w=lUP-ctD9eB@KP%%7p zxAdl?H85bKGE;iFBj2-oR5Zn2JCwIKQJ6$A1Wy|`18UN!E;^Ya%3wEZy#{Y{rRY`QUD`MvF~msnHPIAKF`SrT8_#$EHs*S2Kf;SGKp0m0XJ^Fn zYO8u|5?1=4Q?e|Es~?w+5sQsZ4Csf0qZz^v6!nFv0qGWe{=LmQK}-Fg`#)nJ$7NWdn~!zCpZICp^;#>Q1_rHmpL=yGLUxD{C>PGR>il5+ zE8sfO;Hp15sW+NnW!OTebWXPn&H(^<4Jm&n*5xW*q!7-j+$@0|p+3_W35-R~GK@qQ zm}r8TwDRngct!B>oCvzs&cJ{KGe^WAAy#EQfc9siy%>X0%(pAl2E6*-r39gK9+6%+ zGzpRzSP_cLjghq)Mb*z<@M6@McOVG!TGK2*13m&g}0M9@hV)%4}oSwne-liKJvm6w( za(<;CV1#RhmToT_!DL5-_aels4JMW`l4KaWnIsoNg7H>M>{+b+jnd`=@%ylK!%B37es|Z!!!3rMbM7|GLX5%n35;U@wC^5)h~{f zvsKD-jj8G|Gik9U-W8^vL`YqDg5CYEQprgk*XY$J!`CAKH_`jaz2+767g=p;wi=v4wNcYU{Xy_l1?VhW7okujv(@Ymd-{ z5G{oT8@8cs80p4&Z)MYCHBCxou4m{50383Z)BNeW)aMWPZ6Ct_O4)b_(0ABc?gWvu ztfstMo4(TA`$e__dUPz|Z++opt_aw9sxgM>QAwXb_y0n27=zlgoZ5C_QtqPhn5!um zl@sEyxb3dNB~Bo92C}gw)s;3ET8p_V!{`dgnztew-(U9)nUS1pofSLlk$Cwql}@Me zHyStgm?mHbS@Xdv$vA->m2Dry7y?{Ea-+`jujZ9LB^|&X#=n@6EJ2DIhbyc4oMwmo zm+=lWe5A^VF%w317HTcNgT!ew9jl4`YA+T#_ZG{Sm(M@}E^X(AVZ&A;X``}jL7ByO zSqmJ-WIYkU*AtbAFh6rpNPv9Yg&BK={fPE(x&5z$ds6{se~r|YdQkM-j7GcLo}NlK zZM-UraUgnXWw{Fz&@Y}k0BOX!VUYgXX&JzZ%z!-+=d0ZYc-!-qT2&uhBg9QxsteUY z3=^=aY)+LN5c!Y*jy6~Y~n)O4;L>0K)tf;0b(5m8oA4j z@2sQ{ZAnW|4t_i6iPm}D7N^i_$%lbR-4Gyr!FP8=;!lz&BX{fIfoRMv6Q$@O2D@(D zdmrg7SH_{Kh_OyMpcQtgg#gob{_pKr-Q!!paL&(OIVCb=I68lp~sAqSCfPJ#;h5O%~`T4Uv4zP#9iD@ zVB0&~YhK=PC+B()a7YJ_$&h!ao4JUEn0atf5AL8MLOZFL?UoFp@fo{N(w97M$4Spf z%bNeZz#j8$C3Iuz#@B1MT+VlUjdaBqlWAYUhzjGuqN7qcCe$HJI++RHYDzErMOjAU8k>k)$ue%97MuZjDNHd*A%|wW*Ql|QS z;#YFc?O-J^^rKVRO&ec*@i$|x?)T6b>wX~~HB zJ%{iP6lBg+{MLqea=^Lwobck96rvoj`e_6M3CM8wbE6N0T2o{A`bQRcsJkZ-`m4}3ISq#gGR&Fe) zIuC~xMx>@dn#x&gdMuu89;uKAzk$ql=7pq>Z~dq#`Dc}E*`ySnTPGw}k)Lv|!Sbo% z(?znBFc6Vh=-RaMOsh77^TUQnLhvH)LqNzkyN#RKW3RW79qq=dBqISmD@z5VKz5Hp z_i}BBdoDud0clbXArTKA4*Z<1X3nZNTh%;gnHZ7GoHJFKExwI;(P{#8=w))3sOWsJ zmpl^O4O6^B+>$(#-IDbkQ<3BEWS+qW5DSucrH+u5f+feohspI&Bd&sXI}7K< zQ>(IH##G%7ycvu3t@QTnM&Mf>#csVc>w$eU(W&vpWd@Nqeech>If(mTm`mX8j)ZhdO_xl-AD`>9 zexp}Gqm*v)gzFa^tGhI=aqDJi5BpNjv8Vci$HD{~-|n(T#27SBi00$AHFfl*3gFd7 zx6sD8$_9^$-nJ2J8)Qs8KnV^_KMlz#BZ|#&AKj9gNAu+ z;1H)w7^M!T+l172-KQldLU#3VU@-hZ~aNkfTD} zi--7f2-nerZEk%tPJW*0ey&`jPPp|SNpxe=g7O@v@N2G=wgcJL0kot^JXo*H6KzYH z%v6d4`GuY(2t^X}C{q>WehvEZ?uh>qMO3ZNXdSe%p?G~AOkW^WZasb??{mOb>g@8B z=6xo=DwBukKT(2Vk-p63d4d0ium3<|-H7_2>XHSYg9=9qA6FN?e&XIS|1;xJ(PArY z;>eZnPWJ)>+O;2ic&PuU^6JaQyd>j~TaW~DEXW;b!TH+hE_Wz|olvrN z4iR#M*Ia8}LGt`L=6nsCU& ziv9yxf41f)fM|<1nJ?R0qZ!-CwX4$po>H!-6Z~}^HBO~$FRhV1PUIAQ7UhEs&kK^5 z7`5()BRoKn=uy}|5E&K|+7kyffIbDGlD$kNfx;WSu3-hXT^hgmf9`5^r`avzhgKl( z#$+~0a`ijg+BbOc9|Vuv$=dqY_Z-ZsisxQgkvAj~l5V?*68@YxNP8{h6=EccI@!8g z6`iE>27f+JknhH0`iH7cj=i4ekpsh0e@j)Y6e1b#g(fJLpXS;D?3DEL^N-gu>N?5W ziWInXU9Mw4Zv@fr0(UzvnZU*MO_Gnn3nZ~Ln5g2K^CuUg>@^gd@_@mkJ!4!}gX{F> zo%gTs&^!ro*^*I$x$?UsQlzK+7BqzaYgdl%)!SX9pGgCzs+MdD=O({vSV{$SFC;oDbW~nT;4ZA7*2Qk(_gwQz55>B;|Z&8|Hi_6>TmDH(Th-kQJq#Vhd$f3X7xTtEBW z@I%HYO2iGAsfcHJHc~z_c!xD`2X9Z#Nc7;!Keh-tl$kz~og^1F<{i#8MA6r(%G7Lm zW?R(nk`nS0kGL?SYEcYJ`qI-Yrod}M;zOB}+KhzYSTBtWWcva+!oj98zP*j2sh;2| zOP(`^ykReW;~#T}!YPJUg;8kE%iPV^NNpXI!zg|h=X$q=o$yshLu7mG zDAUKi>+g%LP}6Qmo^m@Xkh~=l$Y;1VU@H0D?X`&=Rm$;?0Oz-;bpy@fxWPlbuuL%3 zw5c75P||Z7>c|xGkof1CJUz)$r&2ZIP&X5-IjHqG z9{$I!(cgT$81yteWH-!i8yFLL2#v8&PcbRT>RubXI^a4g)_&XR26dVA`11u(%SRBL zBa;eB0@RMFO@#ls$*Y#kK>J3vI@(T6pEcQLNXG4@ObE#?3af_C*y+@ zIgGRCjcPSX8IBoHmVLX$B6d`mEWxe%-JBe-9$5#rez;zld_#Fg&OK$o(`h1vn(ov& z%WJP!8eJZD7nf^Ztze?fx0*5IQ3H^cnAk@nFa05!g;_QNCPL4>^xBIg`zTs07w6Dx z248yOjaCK05eOLwSbvD1%Y=$~eOVxLB`OwBhAfS5Z}v~J(+lti9@97YK?KoZ=tv)H=!E@o(886?oka)ywKgeiz4bcr9+O ztL0mkii=o!O^C|k1u-qvR3Cba@xq5}Rw@K|ZA61Yg;Y&B-`i7iO9h94cN+AnW}b@Z z=P~6dx8g_q!(zY#e82n)9mvKG+}rnjM0=tK*uBG|-)?vZ3DkD108nDAPcJj4){};> z!3s6nlWAs1u37_E{@74^Lcn8$PiRHLpe*rT@v5f5D!<7l*;xENJekQp;csPGcJ7n=) zlCR?(xT|blTZ5k>dUUGHr1%SPAZS+ z9-=3d`t%_&f?bzy*Y~5?Io8Xl+1GE{GEs-P!&hLpJ3|Znbs+6GCuB|sm&W_;s>j0Y z>c4n=b4|X;igX+h;gAn$%^QOcAI6+DM0^XK0+6$+`k!xEl$&ghDccTzmaIxvgfnL-~$568%(m2Q2Q{!&|8{{#5l*Mq^xXNel)tkG)6Z38r z>vNg>)04+EXQ*!!56{Fy&?3BlQ`q*~wvxiu-5+4LMhz(-j_WF@SXAPP8&8Zj1VnmrvV5@Mrads2ky5W1;gB&Zohk9*ie<``@Z`4>5jmBD zKts89^VVHm$CteK^8Ii?-aJo!i7W4ol?)edrt>{na~jS^@Vpth7HIB4#`2h#F|_BO z$Zmp?a!s$$MV#uU-?;|^WxhT{>!!m=hQZpPK;Gd{9lNS2PRJG%*_X_l*wX@=fr*}U| zr1NlkG@ZpkKX;B^%yiyn9bG@t2(uakcBHhgK)#QF1K$<&(Mj-4X1quidYRIt@#T{n zdZr}eef@IvcZ+gxc;frn{3S^7!NbLtO+Dd`uLY>~9d^Etnez0F1$stqL zrd5|v`Le6Qqo+^l&mUa5aXeBuUZ(Ti<;F=X_(i57)OJYZ`4q!xmP8yU$WVHuZ=#sb zlr@$v;H!AHCD1GYrXS4wy|EaITg}{p=Zaeg70}RMGU;}??wgpnV4*3~A^j7t_3;je zBko2__8|S4vWu-$(qWwe$<@Kd!J|mh6ww!YE05x|Zo7NylY8sRP{fcD^#@_cM+yEZ zAa|iFg8bnAX|(?vaA?r()v!(J;VJEcxNobLdxKUX)=j=I_=KcHksAKJDg5CsI{R%~ zCVvMb`OXH2`9ZYGOuPt$HCM{;bgAxIOqip5)iX~UBTbGnNj7LYERKC(P{wB!9t1$B z$F}+ZKMX&zJT)>bO^NTty_%|cbVM8eiP5Jual~D@eU_0cXmKME=PO1ZCbYt9@4wn{ z(1NSAPMueL@9!->*+ANMn(#JS*U!Fm&+AOE{7fuPZ4b=J^!v6Uo(s};4NSU-4G(NH z3#TC3XC*W8!$ug#zuX>z4FU# z1&NfA+!P7R&p58sK(LY|GCYDw38_b24bJg*Bs4yCJGL;UcZ$o1BlHKemllZ1KiV|w zSpD12);#D5j(eeWG4~}xhPorS?m@v%GsqYA^`0hc4*%6lEntgq*$&>q0T*6AD&g0P z-#rhg8eI&8@{XvkNKgLAyvV#KbapW^)PwzXrQl2Cr;E&;h9@@Vua5r$r*(Iwe(2?n z)BG}y&+mR~o%_b*<=luHEx7Mz8xx87xQ(eGBvVH zWkxCA1-HCF&gw{hKR~l7%O<9^lr`332y?9P9$=E;c%=m+K_2C9@_bRf#ABcofV3-IyN;`~US-sDaCEJPi1mw=m^j_M6&z-*uYJ!9@485+}FX8Li{cm&7ak6iqH zitn;vp+ZmZyf#}7ExbY^0Z>LQTD=bivjuXE)S#CN0E`O$iRdr4tan{Juox954LF}! zW<^6X{XXV$!bN`J@`z6y!7W|l*~oahr= zc05>TrKrSZ%cc_#>#z2&s-24PL4e*X=*lQepFwV~Vq+Wnvn#_xat(3DSR`QP(AB>H zLw~~mhopJbwDO+iU3C%B}ZT3gkTgV8QIhTZX3Qk>-& zwo7vT=$A0Gk6BzrabJ2UW(DKyb<^OzO*%ef^=|KLg&j{3H{)DJ9r#e$TBR~@SzcId zgyWFk^0vgY!9lcmy1eVaSt4z-C5k69SEigiRsVotqS1y&v7o=1W8um<{m0y4MJkmL z&}cIzrVh_s#T^-Co4ddD{x>c~G>_qh*gr3i|7ULawsS&!=&q1Z47oR*a6_<^pnTD$ zhGBz#)Y|Jy6#IdL=bl&8mBraoKQzezqIBLi7)^}1Ho*$ax4QWZZ{S>Qf#BB;iuqPy zND}S?k@UeIViH|Gtgl^brTQ<78JGWluV4z4{1Cb{4h{eC9@>E#q?#-mO9iI)1# zvAS`-?po;$lzpySw@fmisR>kfBX97&*qPB?0}aGpB~X>x zRg*usjNEyy)9t6@)VC#!697B{HI>PMfhc#@>lL#G2>@Yq1~ddco(g*wjLjYMg5hs4 zEMb6M6|QR~ctHVLV;Aj-7&174phcg6Mex+1OJi7MxlP_@Pvg9`d9qo=65?4p+kC2z zB$*E^qS$zE1S>^drHyu>WQ1U7B?G8@U0U`6M}dg>a4`(wh7 ziHJVGAq!-b3uUc5oiSht8*}Hq2Q0RguQ^fJwE$g-Ye=JA9t9+UbgoVCueqohAqYtf zyi#xuelN(lk2JZpE1!cCgrgDyW>syBt^vsq(I+mf8|TVn@DVY)ogAl6s}b1^g@{I` zFRPrJ=F&~>p!N>Chtuere^|^htTfmF=MgfjNTUjikN`@(E*y~<#I3v2_m2R%6yy)r zxpG3LYolR!EDHEJMDQm2$7O+j@m|}&%kHi757f&?Og9zyaiftz-a06$)C|#(D``YJ$fUiH$c*f#Sx4oYKR$$YzkTqr>I`3 zYAB&}*^rHc3`&R(AQHwb?6x9_d(zqtlvf?~1ZW$;r&y)3wRniZ=6lmZ%k-0{%C%W*+m@^yc=5EP^LHW=ktDoHGM+a<-KS}U!l zKjF2{K>a0UgatIFgIzS(|sGT%AiQ)k%5^uQFXWZLLVoQH>ecjTl-f!xd&(2u9It4RHf_KLl$3~mJU4@p)^cc7 zJy$#l{vhcexJTWzcBi(Al%`?QX1(px+*<29WBv5tiu;alUpunRjEC}JSFWtQrs zCQ`?!(<(r4)HC3_fP|lxUr%Xg#mVMG6@z?xJ8%=zwdwH-d zS&N=5LFISYZM#UUOKnOH?=%7hA0I;{XZcJsHKR{vCZo6s`crX7gsz7~;>VD1Hq+qQ zNk(RJbHD+JBs|#H=yDzbLvH;0Jqk>ni zP%q>N-9Is7aS zyFt6ib&2ew=y$cBo3giTssv8%T=dD`^{&iPJ&SdWsQ9h+g2B5gOW}D{TzySdX8+u- z#a$%(v{u^e`yX@uL~7nP?|J+vauB~tnX1}XZb&RwJ}^^hECz(>XvwoU_F8=PhP>z! zbk2zUw5izgs;Y=yQ%7K*j?q<|vhIG<+W;OvzbDGYw*AX0h)9FhyRcvjH2Ch;?dQfi zTTx(gMxA$x>7o@jcvTv+*b6(KPSw8kDoL#*1%GuE#6iB#=;qT0*Va`hLW$e5?^Xr& zJ+Bn+szkaf?Iw8TL?-9NM3&^AI^5ZiDw;{&u7V!kFRTuFrN1|)8mtKfrPm)=^m?7i z@O4(3?Lzk4Rkgo@DHcPbA3`Z|?>+L;%5pJ3VVA|C!{Y3cYG$K5 zM;vkofHoD_*!;*M3fiL~<>aDg810#$Wgr5TO*&8_W>Q`!0+o+|j)I$rIA}^n3OE`& z!||0oFgOf1$Ml)Rj(#CpDyp8x9|=+jNo%oBo{4UPD#BiR?G!_6ONN^js^>;2wd zQ-C4jnyxDFc%L$D&o|%IoDY3%qmxE=rX=;e4qPGjsZRlXk;Fyt#!Z)P&6aDjm`lz2 zXMB+~n?=M(7)wnv1aNJnQ#m>GmE0DF5;T!jsXTvs{Nr|f>}sm7sz$P`NKVcg6W*C{ z=wbnSD!;x+^j-~SpRWlHB3+@nr%g$xHsE&n(l8EFp6l`A*yQqnO=4_L@rVlxv~k2! zOf2oIp2IOVnRk^&5O6NLFGwJeJzf-{RA^Zgbp&?##%vzPd%V~XhDkaDbT_wIoVD-x zCrqroS9TSIBnPO+2orxNvM>CW6gQc~34CvS#*#EZ=5wf!vO45?lcB4k8Or3mR-GVt z=n8$t647D%>$UEiHL>(N?$U;@O7nriYob|N2=f<{Q)YGQUd~m;y&EN@mub4R2=Vr>37v&XNXSp)dY($E_b z&TS`Me)Hf0a4gB8$~PwXZAuPv+DxL+r$K!}3#NN|*j93ptX-LJB^|82-(k_nI0D~A z#mJYZi5f2J^Nd=?Y*Q4Ik`Yykh92gK+{hlg$jpa)!#4NC-@Z3!r;mWvo3- z`)bw27$9~(IT`yWS%uSuM_9Z7c;)z@KxKUaSn(zM1KjWH>h!QTY? zN3YVo%XQa%T=Hc>IWTBV2I?FtoJ!>&A2QpMMs~szSjCUDY?}d3Hhsb}@}F1P)t4v3 zpSX$>HXaUm&rVX^w#LjYPTj7mT|>f~qu;~w!?CZ7J`D1ZT|gUqV4eC0H)W1VDRfqw zK^^1Vs)ocJIQ{m*{Kbp=BjS+?Z*~G+oMthoAs}2#B?!oqH6}H50e0VATc);u&pB({ zle_-`j~}d^n+;$hwE>eEP1mTc77qoFC}K*9!hIbHevwLAo5p_YreDv}>Ma6awNv-c zw$BI|D`YQ?1)7D1{7X^=qs(RSYsqS85JIrpdS*yk%7bpbmYdZaJPFPGaYFyjrR7}$ z*?L_yPHkv05)n3Rx^HN6cU>Gs9EQQ@K?(}Zbi(rjR(tG%-zAc(6+_gzh_ zK10_lS=yjF2bzR8?-egBhvGCY~&u}UT4f7H<`ltuG$%j4BvIRT^1&-Nx(S0C@nq#zXFS>Tm@9|(fPE2OIOk1osys>;C^gMr784fBZwJndYgel|f@XMr55c1K~Z|NQ<6zMs7d`_XGFAg#%`x-lNJu8hg5 zW?WlH%_f+g&YTty)QWvzhezrhtS0Sf;#lpY7CV9G`+6sd0J z+L7oPzWxp841J*~?QVMkKYe9EO#$!+u7K`L6?(yBSv;Gc()~K>Chje9?7A$d_kM>i z+gA^Z8X`ITvde!s2eM-O=(+B%#zlb4_0H_2(w8kOB#6=mzf4*8wvjl|yo$@K0@Vp~ z;5jTsY%dxr@2KL%!7yWnlh@ze`6H=SY%Yr4;|$|RbUtU>)zT_)NCHUlekm^&@va=qt2`0(i1JfECH03Vh$G18_gT|z?rb!OuYahL zJol=C9udYJn!9TDql(9*zvz6PshWG^KX93Q%`bwl=llTu0l<-9$@Edlx-VR{Zn=Wl z#(|-XY_qS}PJ%vpXsM+vU|AcmA+SWLqbee{cU~R&_R~02B7kk*XVqc`wI04Q*HEl7 zG-k*R?NyIf7gm-akSo=7uD(?hB7}FvA?!d&(W?xUXS2H1!{WWha^)=^@vGNZ& zL@nt7WdDm$?^dUc+n<`=ZwNiUO^x;jUu{O7>G&B*VYOTKvV`ao$(ra5%*k}WWQ@~0 ziamXR-TvOzogrKFrtA(lK1@B9XT~NW9Z~D4Dq?)&O3JLv2QvS9*xw#Eo8YnqiFcd- z#?9LCi(HEbO7%ZDXay^ySPRsN>OcK~;L{Dh7^zMqc>Tn6VcS(0eER|rY%zMHc{?O` z!X|gvfwOt$8TQqislgDQby5AlrovmJ+#Xn;u0GFB1%jgFR5A3!D~`yy@IS24DnH#U z?(-J_srnfaK5LrYlN({_!ATnrFvMI0>2pwG3tr?5E3(SYpoU?uHb9o!$b2w>R5sts zN^#FaZx{{vSE)2ae^%C|H9fyNymX(0uCmF_DAD;0$qG0ZiVwZr%HfKvKO{ z+EmqVcwPEPI`;@u$8FWGP$>y}#Li0=FG4%^Th_ff>am6GkZv4Uetu98zZ1wLmhHU# z@at?L=}2oIJG2$ZNqChT9+S0K>7*YnFB94m(9tO)VtZ$o_nhkq*uIL-#9iZ!?OXVJ z6-`v}^rHu?9Q>(^Br>R0EG6eLZf%b91>AXM*c&!$qX6W~em?i+{V37 z2!YI^<9OI->nmAu(2EXfURf@R_I_&$c%z4Fs6PZPXL_~U!f*Vl(|pe*;*VwA_?kBK zTA@X1!Nw{N_~$&2?QMIk_}p(DmPVF!i@t&iQ?T#FbhygTWVon2v#e7Jf|*paHT_;f zYlGb>Z=clRcyi>`e{KkO#f2Ee#u!8mF_g!t?)%=7@ zsTI@4QJOInJG8BrQ2&f)lm^Uy%9MWpct)2fNv|s^85;v#>Nk)+w!2&7rh>T~2njp7 z$-^~csy-sD-hx=PP)MdY#Q7J5sN3q$mr*ql^&8Nkpdw6Zl3ZYvt4C7K>S;TXesl@R zBmbX~+=)+RdPepRO3+(MFD$#-9jV`gX?M@a z!6VmJfC^>Yw*RVcK3}_K=aqdq4rYAsxx3Pv%wcnubEFbK#o_Gb1Do!-C;Yqa9S-#h z&fCU+kWX9{*fUYqI4jUNkQzthrn2bX9$1znav1If(SSMDvEbG7EwVqxi3+I9-6(b|vBuV&v%wfIz+aqm7ifub+d6c84 zFVTMG80yGoKCFLwur!GiE+t5s;U@*@1F-#UF^uH5*dayw6ZnKR@Yde^Z+MFSol4!$ zN}o5K+D$%tFx~P&KsSIMfn^c0K?ec!wv-*K#~H695ybR?2^^-1lgqNWG)bCIkA|R@ zj^N}kOMATLs!@Jo%KBRWdzl3rKp`m40m;a#E9ES)VK+ARYR)KOwvYRwM}n^VMw;r$ z=OF=fHdALxv20l8EQy>R8bB@4Vx4PO@5^pM8xQ@X{Osg5ZaR*c3s&&e$YyvK7ytkW zvDk%5+4)Lr4}h;)m~|H#mK}*wRXMupu?;I|_7*ao%XsD7O|agFsstt#R7DF`THl^U z)t?@kOIBMVV=+}!*+GU$Ce>KTHp$srZT33#@%d$AG_2u3u?SvP&E>9x9T}(z;P+aU zjX=YA%yo4>Us_p!Xa7izNGq02gvG%4deSpVW5%r`cW21Tew#24a*@qMWnp^UkU{aZ z3D+N4l_I71ylX>IZ=sHB{OPJx1-|A6uqxR1>ZTOOZ=ysYmSOheR@}wjNW=#fAHU|gD>3DI!Zkoc@#xXC#L|C(yqJ{K{&B$?ij zaK=3<1S3Rr*{e<&7YK_VbrzUP)xe>N?BcK9dIR6ftMlR7zm-Sd!>Nba3?R*^wJ9hn z>F^^@ad|LDmKt$w_WIn6K7dyB1IebDb9n8+AL99d=|Vu4tO_WgTSEM0nd$kh#mtdM z3v$uF!17;semMOwSVseIY3004KMzHFJvmS>~5Ip?N3G1vRay+9x`dmzL)P=$+JP4J^X zR@U0ch!_rEKj~9Vkq{ zsbz932SU7!1@E!`GAWLjRM{#|yQ?IhK5}d5O<-5^h{hl7XMs&c0|A?3Q0o0JJ8)=M z;>QiXv66L_+~-%mJ>dh(;x{U`q1ZESNcKGu|<&ozW!=^k|($apAokcoSJ{c6Z;jmRNw>40gX z(gPcuyH97`_pYD=&fTxQ$EOT}Z=B}ByOsb7|DA#+pDX5!m~EDCa(oaqoq6#foI!Zq zBJrT;LB=m!XXfY`QDDsW)tgZ3+~Lq6=&ak8(S+J~;OEUy zr)+o}>HY|;J=+eGeG&*<4@*iF^khCe^{R+xbR0lt$W}O@_=VLOxys`u12C?VJD}P~ zqixZ?`jruomOJmn5u+!z&S*#6m`KCP;(Ccj19e|oe0^lN`c6}ENUkwQr1*gO(T1Xaqx1YFE|G-@+n3GvMiN@a9f8pn7o!x6YJEzVj-%hDb_LdXxVIT17^ynSOUE zbm*hg7|+Ssu#kt@g_^z3s0?HhaD2me{oHkQXS4Rgbv#2;UDlc;Ih(%LbW*&aASGsm ztPA-=tvXy!%Ne&lYJat*g@8R3zcApC)g-9a;CXFF6#pBy2nT?kj#?!h?gpGE24sZL zKQD`o3`?<;T4$CZ^vn2Ep+4iTn$jJv8oX9KSnb7uY(tkYTw?77Oq2tLp$sxMvi#O( z7lDb35i#|4!UqaMpLFILqZs;CqzEP6du6p-J@BRj z>8H{pcvDCTR}t{y5G?$kVKs$}`9whr2EOPNQ~mPbucOvt*VFlL-6OCq?7C2zK|Myp z^W;P!#Qjq^~0{I(YQYcy&x+GrKs!$^l&l5aA^Q z$SoG7Il+Z0RI2P*z1RtLo>!OZ$U}G zlki`Iw%r}OH@346K=*K|(=MOxwWUZ671t0q)eS88 z*C;tCkloTuQh5F25r+9(LAC0p^WkQ#LCMYP*?|6ykiTNQ=8{0rbm!O!XJ3`9j6rt>$^}VI?}jEj77R!>lEF~~5RAJg z-6W72m0m}e+Ay>yDb#>OimiSq|F9jB&qEETC;MEqEe&ymBm0x}@9l_>v){*xcJrS8D6D4^%F6|olp|i7M!R3qNOr1ndL#8!E zn+Ybz_}jEXOHwIr%~RDhSSe0?MiCk1IIbMU21zQj8HiF?LID?{$*`_?g%ACnK4nj- zIdO)EI^P%51+2{HKn5j3(7R6qH}_uuHsd_(O#49m5b~Bl^~a0+xO(!cG|sPR?J}a_ zDQ$2dQJx--fl$%L%x6AZl7);C5|g{X<^s#C@M%v)DQm-74yMO${}}__BnQlhbmF`t zxFdY4S{KzXNlko{eEu`y5{oR0V{JTK_mI9qg=5n?h6cDCv5(bk`V0{uzsM1z!HIqq znN0xw*6|G3%&~)GAFIHz!w7&G_ksmn65o=@F7UiE9~}V?OaJWU%A-#vE^fevwkyvi zx&xRjr7lym#dj$Z@qT>+k|5f2>WR1)?n=B@H7QslVq7Ip5_q-#T3uLxi@#SKd9q8iU^wXb*Ls16D4rTP2@Q?xU~(j~nLcGw_%hDsmlSZ%BB`pC6dZwrf>gg_p zI}R-Lq9fW)-Ahc5$jBipQ1$RK54eILeKpsBLy1p1*UDIoChabR*csN(xkGC(kahH> z1KD7C8~j3~@u{8K)4-X;GJrag`1~SM%}O!G0ZSIWQY{psp4&hPia~@^Le%mt&hP)p zaw8Jr&787do(kF5lomQX3&ocx4pJGYHq0ohlQ@FH0g7dh9;nDbWBCx7biT#j;42kS zB(ZJZLRgPp%VBLuSH(LNfY72D9f9ZwM`8zh5_@H($(7F{p0x$6mqZ13qD%1(ofXc@ zMavvmWCsziud};TatDKBiN$e%2IKt9TspZwuGc+_n4wa+tvW*k6q8CR$Qg~i<{61@ z3Eh@es;;_UO0>VV@Att{?dq_Rw4byjC{-4AfE439^Td^7?mCB|9b|K8F<5RYj1oQ`*HhK=`>jXb!Y9C=6h@|;+zA?S4D(Z29VCH!|7vMT06Hf{8+-NBRiXX zBNB3Ju_?J6Z>FLvO0$fFXrdIY8hu|ar&_X^o4s_b7cI0}37#5`N;T%in??cWX8r6f z%76Yxplw(Oe_S#ue;kKO4&!8}CSj7%ES!*Q+ENAyc;~6KjDe@t;Vs4J%Xni2P4%dF ztAMrsuu15(EZn{6jep9Z?YFWw-LL%d z^bwIUKz&DITsLjXSmckvh}cyT$77g|(tb>HuJ!o`GunNXyMkhR1;X@+Sd6f4+Khn$ zHNT8zc@{F))BJdb40RfGS>7udL7|-)Io3d@S$~v2#BJg}hH!agg!@+K1d_#4fy-!K z+JVGbLseSpVBYyixd_-u#vf|^*SN6dJmmVK~IH=1ol&HZsTS7Q~ zlu|O@%ir~Cy(e@XkBSNjXZl#K#aApzoj(XJw*IsINBHwY@f!6-PC|Ru1}^Ud~jrz)MXFt7Pw*n%0vKwW(3vA(UTE>w`ajnq$gE zd%9cm$HjbuB{|u@yYci_)LU{C`8WqmgmX`~OX3x;EgRQgJIOYdr(xZOeta+3vXvcy z>Nm<^WuN}fYBsOnwmXYHd3s{6tVsEC1#;$H!Jb>;F-LDAS9Ih#08|*Pfv1}#&^W5f z7aUKS#V|7?A(Az1JM)YdNgzVhwFt<+bkx;IqAur8GY?prc%D~vvFi~N{;9~D)D%xn z(OAJ}p^3E8*SRyQhP_H}BP?~(9;c$x!!9E;sGDuQV<=KAwt}lHKEd&(nA&<}M$(Tb z@W>Q8Z#q@no0ImDLBEmyJ~UcM8^ zTYO0PRPy~u=zfEqYE!zK@=jnHcCzK1b<7)-cK2F<-o*g)g*Q;Qp!(EcaXb7g9HS7q z7Gm>_;~nmr&?)q|*v|CYqwUgYYyqS84Cdwj@F!hfxfri1qwe0a^p<09876T9H63PJ z*~&crkQrp*w@N(qt?GYWfOIWZyb*sP%T%wYGPWNXmr`6KVDE8F5R$=qG} z;hH0F1k0@NR~7QZ7&*5deBG&v^T?YUn|!qf^FCwqqlWD@P0{gr${Ixt?J#GFjFQeB0?E(+@!5D( zBbs`T@#r5Z{QIfo=*g3R9iFOhQ7R8+AL%hl9e?7;6lau{R2gtnNcgj)`L#FDKr=*^ z;kCbkg^sxzH%;ZQPx{OmpT;CU;F{hB{rfu-`L6!+zaQcIdm2i=erPBy{_Y^0rG|Udp&^T4^^1hP}XQ7?jhRViB?i>VVg3baX$_QH}OY5nl+ zg#dA{IjDJ~`m3lgN?U4hrr(hJ!AJ;3#zhLb#ikeeVh3qa!O$=}#LUf0iv;KNO#a9biBH7r76s`~eZzuSDC80rTohV2a9f$GrqCpJZA99H;Zxf*<1{(K4M={YL zV?xx_mG?;iRhk?ci|9B}#UC`}`0I`I=q6x>pP{Z@i$Oib;Y(=`vFK8j=?W8Yp?PFQ zvYlw*U%>%UtafFVUJ_Z9n_z&*zzFts*3g$1krH~#I?$=6xiU&MUOX-2)IBes}(lDYB&wVg7_3;%%T!TB8w)P}htn>}vKO3)zhUs;ClP&m&4 zNi9dyp(IL4a5cQFSHtw`11yFvQ8Ud~$VjP0Lk9?!6;HF`PY~195@Rg>ARyy11aob; z%V|2dyKj&&WHe_v8SKiqDeM3uS-(GMu^5=pcrW&<`H;b{qd5a1pB&AR;=v6raM${9 zd_!bYL&ip5a2D5k?4r?hEbeJT{bZYvU39y24pzJS!RF%0iPce}Uy%zp6RV6z2T=4` zjJk~gfzop>6^)d>ihO5ow(sm|g=XG;Gfki7U1D66-nmQegcFTdIx<6^fwFOd!IIY; zrhXrbzD<4H7-gSgE-|9_pWzj*3%b^VGJ4GGTqXY~ z7bfpznc~=em0`wOGY{cIDktj$()Vdx)RSC|8{D4fUxPm{kMiM!Cz)_kY^x5Ur~=x@ zwN2=k2%f3&e7&MUvQG{K?pxL{P&6gT-1}v5h_Hm3 zmHPR;@=Tk&Hjs9vVe9(=y;|8)u4Zn6>*FjtYEx_rbH;mr_SqdXEE%knUVjoah7!&) z>_n@xGBZLP?z=MFOm$lsh(4~$qpnyBj~BZAEh|TbTen%Hm%zUWgUWv5DIsAA+(#R- z`cjJ3uM_Ws2+oMt8LKQft^H<>r<~#pJHw0*%#AWT^(1+G*I~RDznYT1r^v1JeGZEY zy*p^ac_o|*ymxz5!TT`xEqnyH(!(yCqnZe@7@j42cNMz6=byw6v1nCC1H<#2kJ_%O zUeBA9`kNti?DEbd-Ua=1<%J|eer@^0qes{RlCVvcCZQmTPj-6M~w zBlKs^c_A{V+{ZpL~gL``P-tt`p0Uu zGNHK+f^>)PIVGh#mcA3oxzsqDq)i_}Gv0BI|>ew4TbF8{&MhiHoNb z;Y)$ki$qvtW#)s;fd8oaK2N;NY-J%!+|J|hxCdBBJ9^6b>vP~8&4PIauVH7^LgE-F z%7gSz=nwXZqP3z;oFd7*HZ$uuGrt|pFrPQhmlmWep_FU5jAp;495`encU#GXcQ@>P zo{3F)Jz2eK)DerMdweh(lggGj=&RC@=eUAlq0UpU=exf`Z^;Lh7p<~bdaYL2)l?ZK zL+53JUXO)38KBmrd<60K?sSX(SVz)P9*b)V>r|KWu4=)C=sKTHe1t6KoFvte)B>78 z5LZTR&IKNF=#kX8RBs21+?FJM!V$(EaW}AW$zW`Uz5asjK>z`Ebaj&TQDIor4dN8y za$JRCl$Rp{IC~o95y^Em@p$w0=*~iDp1F5ftesLi=YP(}Yf@*{L!8F!ZViDq>dOXl zKfjKSE$Hv(Yao!>e@;!XFRW53($;0S4rh_gHhjpUvzwnS6@CNsQkw%A(q{~=yk#;% zdeHnnU^i3o411>NI#PibMR1~;vi;LcHt9mPd3@%+K(%mbD|Zq8c5i5e6SMR|1X-m7 z@iZtY#-A+&))LDflIM9^|L$(Ufmy(gQZtph#yJLWPyK{Gc-*5MTy`jTRx#=X!=>>H zmgh~=xvUDGmxgD2R;%@G{z@~ZRz!rH=>H7p-8NzEf1q4y@SDED<~xzELTLy-#%&9_ z9y9B^>HjP>yV7B-dK1a|L!@RvkLS)zj8U~kKjLqEbcmA#{^f?7o}_9{K%Cq1`1LN) z^i`n4Oq(6zMGmc1V4f~Z_VDu!m`jY?0nG;krR!{toTH)$m+}mh2lLyrfupNzL0#eqr_K**tt5b{s)kMU>4Izn)6h1%Eod0Faor?$tad<9JF&TMF>cOONxv1>zeUg^}k zIZQHE;W!qHgR3Rwo6AvH#Qy#YZi&2mEFSIUR=EQFaUwY1rfhmu4dRWTfQMZcx$)^F zJe{?rU<0Ey^P|A!DuXvLIiKu)>8ii+^SwSym74z6O>^2EoWRj`GY zL@}LkX)3ZSp0i`nSW9Jplilzl+ITc9GsQ<9A2qlA(?SC%8Da$otGt zi8hR5mq8t|{|R;IcFB2H_OB#Y8sXgULR7Tz@Pfv6%oGgpsf_vW;kGsGq{@YPSJ4Im zFajgzz^Hln4mK?S*~*1_QUkO&&%fPP0-CT^DU=^`XpW17rx1eq1I9OmA_pqWzh!wLw&ms46D}mz0Un>Ks^OBV{+C7G zN|mIV#$--j<(};g+be+8`rzVOsPyllEm*oI6;FNd9g)g$%kpX@mE5+_>!Q*^WY83r z+H>yfudXz76ol$Qq({jZ^Muc{VP0F$n4GRqF`N>pjNf$`W0# zoy^_4ZfHfGNTJvzf^xYXM^Kn;SNUn@v+SFp*ng?)qx2USb-EY2nqxHae|33<&xoOT zWF;Z|Q;%W3u+g@%Ux|Y1$fcnSKff>fX?PPx-;Tl%`O!iH&KeP{ZuHMG(qmYzzw3$V z*TYeZb9}wLCJJiJ1jd$)xWDeUxw9BAr#&*>7*b-Cem=9_<}%E|=``R;$6@Ia;eb)LX$LS3ccdXk`MiUI3-Wg>GpG=<5bR2O~3S1B?7 z>i=ju>%S)7zYQZGEnTAr8=a#YMh-?J0@92Wi4g)KN_TC*7#*Xe5hO&AW^^f_pmh3C zDHQ~L_Wbbu7w*@6UH5%m@AEv418HbL<`P_1lOa`)w>FLJGRQWIlg^w^XIBk2^7~2q z13K4v5rrMDtKD-|g;<~JG@IKOzEPGYtftu1IQH8Tm78?FWQtj)M1xd~ex$*Y>bHk| zVUL67e*BkBSBFth2Co?BoECdjoHnmNy6S3M3wK&M#9YXB`Le6-NnmxIucguFW9S=$ ze=IjOduE?IK6|X!1)OT^TnV8s1!i*4XLTCo<8@vM?*)?Zt>3!Dx13HCc7oQt*AO?; z@Tn(b7|27eMlkhYYL;Z#C;r>rqCPm)@jH@zA0pi36dZFGH`3jSLHO=p&`hfK0eO^Wh9(* z0g+q;#TWu~R4O9Vnrq^p;-qraKYLpy3+S?)X!sHbMr10rotVGPc>A~d?^@x`vr)DR z%*O{|&)sGNo{gTriJWFdf+q?BY}36m-gxA!Kfam!-DLsgIRU4^qa3Q4?BMZ#@m(O! z9Ea^X4@~1h10fYPc>Q9}vwrD(H(1X-MD3x{wli+!@Y#pZG34itzi#60VdlNnb|1)Y zeXe5Oj~Oruyeb%Wsq`Q}$1gQp<+zo)fMAPgBHJ;buac<%Pyaq?C|A|pEV)w}of+R! z_pf8_vS0w|q?bzXi<+NSl53*^U6_g%3kD9PaxXh*F2TS*8U;7aK zUk^T$Uk*Ih4CkMI-jn{VMSerA8U0(g25(*8s^M$rUo2OuSlTJhXZSfASyFrIfXKO- z@I0d!bmiJ{T^}Q{oc4W~%+N&l$teAA-%I0;i73?ln^}i1f{)+tmiLeG__xoz_H*@~ zcS$qLxATWo?z-1wz!$C{{6F$!y#6;nXY$ruS%;Q}ZsF521$UBF6N=blEt^1_QWtSN zj@~G{c~{K@$#$iCE@L%;0C;&Lq$%T(srKvF>IXjCPmBWbE$g}pq1``#wlN&*1%)rs z%HN*7e{P6Y`M2>{mN)Qr<(2N2Uy`yqfSOxir zj=!X}zF}0u;h$a6ed4?p2B~{q%GKww{jJjn#m~Au90+NJ>`-!E(TAezBu>x-RjK2f>8lg{|30WO;rlsu|+j}zh;~Ue5_wdwMXvy zPFWhizKQc%ouIN4%ra*Cenz^Hi;q$kYFYTCF&~~glf(P*Puf!VTtVHhC;iK}&i^!3 z1Ab(DhzLuQ=Z@8UO^e#ef07Y>Bi$s>{$><#cB}m1XNoug+9B ze9Y*jgV}S&5CYXV*AGSUzLTpe{|=5}Q0bZ0uh4_5$qSe9Pa8rP)R*4Q-xL(47;CPC zispQ?zsF;7Hs|F|`ht+9RV%_E3l;(T6R- zZ`q#iKJ3XLwm;pbvwq2wU6;<<8_Jm=HyIwufR}a9VQo+{y65=Yoa1O{oCcXfspS29 zTZ8Nz@TP|=(D)NW{1%SMl-M*jWhgbT;)0)1y3Loq#qHPg08=*_srHPu{0;qP+t5;{ z-Fx3D|1sWM@>8FMJj2}6MU9BuCO__&)O}{q=4N;eTltjgo5YvS-|FzsNaXA7|k>a-;V0DK|U`q(0+TJbc21bBO#g_z3`uBog$l zu6RtZM5ce5i=D3yS|xB3Nd3{b)IRMrLMZ<`tR`ElnYOBWk#LC5r)}~ zUO1gq1}EKvr6gO+(WDeiCV(BS-;i^$i#7z<3uh73T+{%&U8UdWQVSP}82XR>sn?hpdv8#dpEaFkpt?rjk63P?2z0U}oYAu~Twd3j+KQmEil=e7SW(XD%rKA_^+&_<|ml(;AWxyTJnxq zg`XBiOv)pSqB_-V7V1t9-#TFe(_y=e!w!ikVJ2`A`!nY*OHkK@i)Coaw{3{~#2DV+ z$Qu_=rh*5SO7}SHqia50a)sWEdK7ji0CDC<-2Q*d3nG2JhX{8gVEq#gb*LjzTZxv2 zjNcag9W-DPi8a$CENUy>y69jJ3Rth*+@dZgPZY%IniO8oT2fsW9IwPrQA3xaWGKk* zQXa48S6=XmT@OMTPe0-$xnM-huxcn!xXEKsHjUCA*&2*^*I_r!$u@!&^t@ zK$*ibt+b2&nweRRn=dApr`o8Ix)ObF%V50DHdM0HWh7pu|A5S$e39~#z@Dm3R#Ca& zy4PV$clKy|v?W1q2__CCT}b4VQtj5IUYZang&uojlxe^gkGw04{XN)4K#U0`EMKdO zk7)Q}m~t0P#c9PmmNK&JXh1S9a^Gd(S-=uQ%ap+wmr*FE(+yX3vOZ%VBb3vzz@a=< zp_xC6UDT&mjHvh0cJ--4D{XAsJd`cEINt3-X*X08+(CHK$@35nA4~;;o||xYrlYY? zAe;@A1IjJxEAC7TrqJ;U=E-del9DUvqfD4bm$w9Y2&`fqeH5IW=O!|Rtk>I$ZUbTj zNyf#P-mDKwqX=ba)K$t`>z}#~k;RjDRuxf(jq&dEx>6_-G9yLcs!YK&5o6Fo3PvY) z5iYFFeo+ubo}&$_US1ltNcHARVjk*A3%aOG=J*)6HOf|?4M`TT*3U^n=HBAQf~U8HX%G6Q9W_asr`eic-Z%)4gAe1;MD zloh36YvL_3c5KHFxDE%05J`Rb5CRT)eOS9=K~M26jvi*_A{ZwOrQ{cOdDt~UA89OZ zLF!(W7`A>PP{OW1U!=4MjtO-5n3%*2d#BAKqD#L1--1%B@!WWAY4)`6b#^jk0glOl z6sF6R>Y_uCLVGU;F-nqvlWdvq@&~#IBw1Gy|6J!WzLY)#-7zM*e;-aYA*et^@pE;i z#f|R>M{gWX)G(7xT1ia*T+MWdxc@WHbemB2JVt!`X|{I?SY`7^2fZ1WD*}~>mgc9R z-CUMYq6FJi2GVO6kfKclXNji0wCS%Gigf#aOH+Q_oBx>0_>{! zMDHB+B_w0p7?`y(+*1hPZyWLA^7z6R=kjs7l|f6eu5WwH9*b$##k**2@#n|_Mu{pO z%m`D0j#zzd9>R^XHlC`Guw5$N;`#3=a)*oHViVuV)QVImO2@X5M8nm7pQ4S3bBZeq zd>uL#^)%ilSCtB`$1}kKUFP<5%#G^Ha|oPdb8UHv-_oZ76l9&t4QblD#-iNaN3`jF z^7jZ=wQ(-Jhm~)}amLg$-6V$B9xpq<(#@L&l!Df=hvimpdT=a+sHooLf2lrHg>Jv_qYK~;>pMV8E4^2x>u7RAszX0M2IRw=3Y z`tEfsCa_6qaQKYJmDB&==iTG)yt8!k&vhrZEKKFpLWk);^?A|z%S%fF!v?jzgi$b# z$r$@#i{E~Tf>!I_!3EVloDr1hgmx$)?VHx!!dp4T;Ydfb3Unc;56$>5{lb@6>~&9 zaQING>mFl9_k_S*A(rK(Otc~NZ&~L`LJ|!sWkiqD5yW839;)7=?^8?d#aE6PEKe4- zCk|~Sp>t|vXOC&sowHgG-eX}pOi@=#p?$H^Po(zvPCV&0MHQO1_vmPGUKSI&m{A6K z8FUxQq5ez?4kuJ?pE_(xe*8g7zg2oJUW4+yDG)ZTqyT0HLWxViB7I2?Uy*)zKsdB* z@v)07=+Y0tjOs@9$T#ADt=1FXOSJG;hZ-)n_ubwHeNHt%^Cbu<#+y)nM~gG2RL1Q8 zd-6ej;6w1ntOY9tQGB+(I0KC!CR~&N+cs4>l}+yl-MuEd&{f?I+AdEp?Jbz3h`j6K z&GtBCisCvao|>&xOR0j1&WS&T;GQjxd7m>M_vn|JNeN-QL@RN{8)lQ{Xj54%FX*tQPhiPED=D*^^DMT- z51G=x336MYzrC+$r6XkWb&rbe!YSR|2EAixnlB%vYBW>B3)|K>xA@-7AB0a~oZ<@uI zeT0-*DUhg>`8G(b`$a!?@zh*fNHM_FNFI%L?WYyvYFloY_jeME(+{1Sz7s_0BcgQ~qkH?wyA8?HEk*1h1i7Y)+ zn+qokre`ye%hnPu+a~EX%wy)s*SOfuWj($V{VwwXhQ#0gDL()`(z5x#EC9p?X$T^v zPD&X}#0U=kPGjd^)>l3#Fs@Yyl(O=Gkgd^d@+x_IfjziZ@<`n)XsHLq2jf!W#J4Xg z?d#lFnmSs^RTXYP^bM+~+pf~LhMT~0wEj)VuRe?A3X03$ltY7(jP#3m1c;oHpB*#e zdT7zK&6Tw^4(-ID$H0$w8B0*6-QR=~bU&Bp>%ZQth!tgo@v{ioT?0%%UX^;<3y1qU0RxE%xT`zN?7w zsZFE5M#rM3a14+8!FLg@4^~cPt0;tGp+gg%iWMQ263_5BYP9dIVai=pR?tK8a=FOaQsAaCewD zR^72;oiAGOduL2Cl?*gZveEopPZZK?z?dfUr+L%yC)sT39)^QJ<(eM2}uq zke1@fc?_+p>n^>KG(({Yzze~aqZ>#mC37Ytv-l-_v$Z)psoT`QoRW@phr+7ci5wX# zFpc9}>O*t)I(?-9mp#t`w{hr*gkjADxcyuqrnicJLeXt`rx0{eiYLw{sF=Wod&jo{ z=jOb++vS9UqQGXF;|BDn9g9gxl-rdK#*nHD9;3Axl~{9HlEVOp#bK2MPmXkB8k9l0 zT20Vfo}r}Uv|_ia&nad00*P|S5c!H-ye4JsQdEpW<_{*YwMEul4?$Kkqq~&wh49H$ zaNLnGZ`5is0Xi!K$I!zC=H}sPJo`kvZUPKKbDM)=3pB2=UkPC*lPcmZ19;{!+In8} zAz(=D|G5G?``wbe(%feR_U>WW-(8|t*oi8&q(P4_-=oUi#T&wnqVrYR4XK8r`IX|3 zIb5g-$b+_0XNe89;VBiute-KyB#@vmGG-FqB6g=36El-d+=A!QS5gdv;>J6;q&QPt z((;kHPz}D=7zZkqVITibO$fhe5PaGFSFj7u=Qbnkh_6Mas`>9oLh)$qqM5&3*KyFZ zK}$Ya?5s{MlOC5g#DdMTssWT=fA*pWI`IDCC5u`-=i5D%h{S;fxH4PahcL&NCJq(E z)Y!9RoKbo-0X#FUz0S3#p8_TyP;f77u$%H!*5Lu7X8F##O@}7-8fcd}qtaOL%)Xr1N{lkFYtp4B?)!4JfqaIgsI4Ba<*r~G z?2gT2P^oYVF!vurO5B?utEoq%Of63@JEDbpAi6b&5|Q@*wprW;1M%z;3tTThh2;5x ztjCPf*9s!erv+Nl zBGVO_@cqNPnTKB}-V2`Jr+tO*o-p@3mXWmd<;w4Aw-o4%*E!1^sUmeXFj-*Y%BH6& zhVyfEHCM-Z?wCN5x65t2jaFWky^72fz5Q5Vfa=@)GV$R0Wl$mj$zs3&1)1t22l{ad z%Z7P~ZF#yw1xGl_B*`gHW1DAl8_4Nj}NVh@mf@oe81x zD>y%J7Aq90IdJGG=O&xai1+?$%HM`dL4TfJ8RqifW3c|ii;#GfUW>0C=+7+E?@8NQ zcS+9)xh^oiWIy@Ms%kU44TKs5mO8elyDavUA!0p5)^?9%zaA7vFtK%O$r|+s@!kTw z6VJrH01SGtvkU2Xw z4*A-BRPyQJ4Coxf`5P|QJ>+RO&Roh*rV0zMJIMWDH6-G$A%JaI^V@t#wpiq_0b{~k zJQWqrb*6N)&QdNi6{W;<8J6ocdvPfq)Bm)nb6zZegrMH>xC6Ad6mrfnD}1i%d^8?e zD%*%AwZ!U?2}+FFUr!G2yG>p`N-4)UGCJn@#2+tG5xxn zO@FFFOqydP8=*yK*li^U@UoYw< z_lfWHjB(YSC{I4^RtDC>D$DxeBuUeL#AK(o+NUq`bT6zhbb#X}V z^*pThU#Me+v3QzCyP6ST7!OV|Dl{C|V-i8g&d|MANsKuKJdiEr`grQTXxOTj zo*|se$046W_Oge8)4~mi4hhygximieQHjeI1#(OQnjnHQ_iLtz`_dHx_SD|&5eXzK zn4Ok3W1bXt)b*7i|bgdgpw(VPF20?9dbQxQalyp)#P$h2m5vzC@n`-?cS|!g& zWz<-uCOX-9@%^mFTki<$r#+2X*Fh+EiS5OckB6wg%L|Qr%Zs8`K}4+lDT@-}G8a^T zl!Trd@@q5IZ&emovfYMouvkxovUkX&+4BD`MIQIial)>p2T5}>SZZwobExzC)3*hK zi65@<|4A7afL(ZS&@m=em|2Z@bRy%=&-n46NsjC6$DMli&$E4lYd>pM%(>IPA9NJE zasE*)E^~b(b2S^4=ZW8Yl7SYm9J9pdKSriCdnxryujnlw)7uFb_1T=0Ir;(I;$bg= zh-2x08HGbF`5XW~7?RChdH=cdgA<6I>wX)Q%$TNZLNsHub=t;Ck$rgA3oA4gkqjbB zW}>#Kq(E_2Ys%1!#p>yA4$ec=4dUQcF??>x{JLl0l)#M!^~VTwvS%}nX*6(*ep2H| zM|Pl|nvFoHr1YaF_ur^ZSTZ?n^QA7(c~B&+Z2)sO>%-ME>$WFtcVxqZCwFm4ymSD6ay z$+Ul)N-j6`yV!BJu*GutSwCARFE1y+{@s0=g`*B*RD^nfVa6VliJxq_E|M>voxgisCH}+n>dRIFZJN{rwqv*8 z(kry`VE6bc|4zv3h}l)qdt+g5p-pPD)N&95K}d-~sPdn~?_U~YLz)y;ez;5+O^F-{ zf#cl-umKmjL1;B$nSQUCM>CPwN%IKfpA&4oqv2+aXPF@OtU$XOV_9Wg<2$A`$8$mS_i!B@M4bc9}~vuz?46Re8pwL)r5*Q34lgNx`X$N#l&M8 zJ{t{$=n)*P<`$vz#PYMd`ts89yu?mj`I4m{SAL0hne7yIf3?XJ@SR#dz|ARX>%S(l zF5hm}6Df|G738bGo*KTS_$mFEhzxixK*h4*3X`6_&^LiZ?M9bWg*_Yp6MH3$|M4*nhrhHlLoJvSLENcfV*eIb?^XiDd?qZIB3W|b?*B(8#So<&X!-AOR1zh&~uHm8cDQBqL8D^jGfwM>r zoKldGdvo-DZ7kAGwB`Io_pURtxa)WIPv3jv2&zXidzHHzh0Evek5B_HrXS7x9<*-Q z`V@<#aVc^PLzr(}&)iD5o`C1(J@GD;@Z3M%OY*N3+)LF&<|gl3+rBf&6?b8{kFZMO zRU9}FYmlgp3sAxnb}EF>kaD9^wh=NKJg7QGw9WS5)oG4vL!i^&*{`hNUkC003o`<;D`s&+2PahmFJvK zL%|WVpZrM93U(p|Fz1zKLTo3pZD#0|@+aGfqz5`Y(IX8VsR{UNH$J8umjX87Ry?m7nuEiZYBSGZk9Mo@V>RX|7|$ z#w}Z?1xK_}81`=wS^tpxImdI1+$}H)GQ$t5o8iNkBDt@nBy{%NGo8Yqm3vllVM>aOVk)q$#gZ4Zp}%Y zH1$VJ?8`=*DA@)4br3~8+qaB%FY`qhw>;}?Dn#&S_gNnt$~n%8WCrCrv*BERO zs;KRz68B(rijmb4n1xhkvdq)7VqHbkFuZ>sH7J8MmRGjk5y(*NNvv<&4=%JD3^A%k zpCAPPk!{|8?JHLL?+(3>!(@ojRjSTKTbvcC?R5Crl`7|jl2}1zmfT|NIm6SVef@o_ zVKUk!GclcbzK$--QApISHKPPg)D?d+b=HN317d zNR`fALVP=LyMjn4t^nlm+S+aD;PPRjL|vuHABu)bJ~G;|69Lj>JC||V#{ycKpJ0as zGm~VY@H?qs99fx0y)zSzl$S?gX(+q2-mEPzzz3WZNp)(ZjKv-C`K<22$F^43R;NWI z77tcOpA>@x?#@hb)sNQB9b-t9;%Zl$$wLK{9i}+Bw&ac{mhN9O0I_^v>qFj4tHL92 z@(LAbB-yRK#D*A-qX?LMEZ(r|cYGhO7q#$h9=l;Q8ipFG+-tJE_0! z3u8s9gPI66?l+FAj8-}i`gs0X$kf`RE>P2rV>G=so8jZ3SFV&2^f^^3%52ZZ^W^Te zd{cgXFPh#$(u<6xZXAa7Zp7mtZgTIoV4=K(c4%aN9c@^u!ENw)Jw#WsEkShCbDFL_R z+nB~p)SF^Gdv9Sv_$kYD)did+?Cs@*Th>fad@Hdm!F zD5LGEk_oYN5-`FF_Bvc?mYz(;E&gc5X1kjqKEcxLjuibq$Ru~GItf@Q;@rP%0qu>} z&BYbN1g=zyZbPhMvO@gW*+)`xc11LHgf-o0S>QFP;@mC&5J?Ua)IJ?iZ6?->I`R?! zhNHwL1WFi@KWsNhEQy{_9x34p)F2@RVchvtXCpeSM@le8Aw0c+?kUq?f(y~#e{@{% zwdW;DZ9byA(tyEDzW-=YX0$xi55z!hihBsOHm$#d$iPd5B|WW439q*#MWKj)|9Tom zVFeV}bb7a3*m5?K;Z303ydzbZd?VHjC1KZ1=_;UqM;TH5^9eP8SxchGPf91gwN_f% zk9~J@7)|{A$m0bA1P{u97)^BeTH99Xo*L5DT&~r3&;JAFN%{$AlQO^Ob9J*!#K=+4 z^BTzCy^z+OP#F*@mgg3tUB_*;HqPDB(DNG>P;@eHR?%xZWd@_7{dTuK1et`ZiZrO3 z(&ne=T{-Fn%iKE_0xI%F_yQpA!Z@r|eYj+e$IE6ucrIZhsEFrpKdLG#Pp>Uh;}GFb zvJktm(|s*o8SCKbGAzlqsKszgBm0s(B`3Sh8jV37`ilOxHWSep0vSptLa3t@B?{yd z@_Peayi_uB?Rc)2r?PmZT%jZ4zn{Kv)feIWl&Uu*UMM_npul5KSSkEBmWAzXXl)f! zF+sw7-Tx8IomgE8Ca^w}JTnp{Nhb16YOiBS=LLKnm!o@1Y{;V^vJ(BMOkzH|Pq#6W z9;i)TLSvx|#O|WAFiI9E%TZcW^VqBqR9+`#j*?T)DLD+{v(O78cbnEM#s_; z%b90p$^I~h-C4seLD}w1kblfTJ%xdv$awl7fH6x?WGqjj2$)XFKpD>$R?PmJfHGRc{d1m&J_UF#b8OLH z>Kcw`#z~SVKHb?c6DJTgA^kfXY*v3If zH(jY-CY_#t2tH;x5){ck28!_kPSl%yt;~`>7pYA@h42n|{4sTh5Qub)?R^^M zJ4$bD65unoRQ{5+FT_vS41Bq3xNd@&J?<+!G3$ zJpDU&Tjo>o9=t68vqaa^6Gv=gXpDsU(s-@`75T^;r63pjicJ30iQy^4n7!Ase!Q?u z!%H0TgM?i)~w;epXn+}wl{4uBhj?T0+0f<0F<0fMhd7*a>g^(v}u!E%uh?JBUxlcHlOO_ zN~OudZc!$^NdeOAAX8#hSrGxuaIs6lNquEHJI}US78?Sb#$Hv%=w9G>!QerepoFi? z7B@vD#yN4(Oq}Fe*11QZ>9CVDqI*Gti**O{lVJ`WC%?|*Ls3lwd25l$qrEBGJg(f2 z)+VIY9VV~f+fLUJS(i~WpVmiR{c-mc!y;1D^e+RVrWDn5RC*!}^Q}g|hoYnB9-}07 zy5VLE26?;EqR+d&{(5?;6OqA!tX9)wu<9&r`JK-W43ec(eRV|{46Ds&^jm+IwdWU! z2Vn;AYtz|^hqWw8KNrOmC)GS580hguM5SDC@6UxHL{BN!52&9lo#gFx&&a&FIwh?; z*}*6x1+o~C86An>ekHsUa_er*nRoR(u3N3kgX34&F6&;mI&xGOQ~kF<?^u55SY1GC;?Vzf| zgkKNHTQVsp!crXcYh1KHkVz<7u{FS?)) zE;D*9mI#}a-JPEZzbsbbTqN?@3EPyw~8y?wa_d<9+7apWD z_W_uQP|!X_HZY?NR4T_2KuP?zr_p6yA2fcW=Fs#u`+n{c|2Qtu^KA*bJ3T-cXYq3) zBoPD^0bGk)w0CC_WBCU>l9g7r$}ybYd{tp9J}h982&*zRQ) zL`#(*Za4W01Kt;}!DP*_KMGB2D^1%o{je!yN@A*Jonr=mK<}PCfIjnokDi5=+YP+q z6BZPr#J;~^a4YGbaPG+l)yPT5^dOe>YJX$RGX20wysgPS<;KacrW|VjZF8!}X89n? z#P>11PGtvkG_K~;(S<=%WH*FJcoL=lz0j}5w1Gr9Ssny1akX~j9*19d_$H z?7~9$iKUK;>gh4hMpAYz3ztELK>;}9j4L=?4X`!PC*>n&DK=2a+coRf^m9Q=12%?E zF)-VCN(P#s$;1xqhu)S1$)E3Gki}r}EuyBcD`hU*1etcWKK7o{rPWY@{kUt?O$L5? zg&L30(oc4C6VjG_z9W4y^N=DZO`AhtdT53j3OdYVIJO(<+-W`9MQq+*!evaT>_`Ln&QTIPK z-)i%-Y)!Hu8%cvLK6}DNBJQycv!Lzca;!qhP*MlGI>(lvzi!|W<#snY@j58j{X80->tX=||v0|sm zt{A_tx;}CzXgE#(O+E}aOmlSVyf$fwhC11Ch%eHi2Ms2STHzJMH zIL79=&)8Ep0*z?hVe@?Mh&$s9uia}C5_YBSK3B0~u3G&+JTIVD9;|aPQn0GyPnisw z+>N?rBe`z6iN6!O&lB65VgD5|MS~R<>#+EAnHweIUakA>y<@LcG=BtSHp(XJNZSrt zxSW<0HFnqq0_+MR0q;9M*6<=#DT{C782A^3J0TAbdL1!l`>s!2v6A*XeX%L_Z=6csesXl(69`X>+=PIo zDV9eNHXw&5R@QkGQWo7Xu%%RmV5)fMjiKK4d*wXv{xUM5c~B6Wp5v9C0EsCB2_1X( z&o6nu?~F20JwZ@2n6j5i=it>$$g0jb_a|tYTwcK7BPN^{FTFPvJ}SBNNij_<3x%@X zIn6H5k7HNrc`&J5X0@9wh4$Wm9JGm&Jz^3{%W&n+`GOQMsFQQ9w)@4ga?FD*ACkGg zs`VGZ5BTH=3R;=uYZ&sXR&z+1L<*T29r44U{LE8#+wW;AIGSlTjXmELb&~(GJa>gr z6YN0PayQBpku zz3}^TN10`p8Tl)I~(@G z7@;hM)-DyD@q2H=1)BJTYtvGEmGfi|eB8Ynm1`F6C}=(_cPk}vV|+qM&`ytg6mQDq zgX0=^q#A3n>ep(OLLTZofGIQBu;B9=vaDv1RwnDYD2Yni?R8xro~Fn8jnBa&jX?pH z*E@~7a?xgYc(IzbcK=?AQMP^Z4D4JV2`a2t{K8k_TK~?te{INAMDCj_nQ;eprZ0|; zT%Jn@(DsG@IVuTpcj~I^^C;2i*d9Em$aXRW(v9(}@d3A-(>|=Pa?(6dRhUmsYgip2 zI(q%2JNv|L$TkxGJD>5~xPRp-K@YWO<<99PGyAhq4fuS~D~Mj^`?5*L#2hXLpf4k9 z=Q^fT_avv{aR+;l@!q)$2<4o{6LQJhMt zuuJa;VjV_pAU`IgPOT7XBlmDeSMhQ$*-jaPxQFzU+OTlDm(L2A3r^NdQ99xHT$5#U zp)yMli@2-OWuLK5d#am8o^+VerPU-(f1iGlRkBJKiE_N=e5>n}$9YNeiK-cW5(Hd6 zqo*7z((`jIkS&1n3@3-%nn2C)L}?TgkJED~`=&jw10B8CWyNcQn5+9Vn zsJIJCPT;KFe~a(Sq@&!i^B%KR-AZIwV7zhA&K@g=Hy_3#7R5&(CB9u%E(6A@!8pi! zP~u4Wm<+428MtSPX>HMl8wPKE^5>f2zh2rn*D9UnJ!B76wXGttGv}vW;{5{G59ffU zZuaq`)#NFIbl3b4d{j+ax^$jrsm8G2-xn$M1Hg&eYh~!Gbt7Km2uek!$83Qj2i~&W zU$bisYt!E|Z&p*&c}$m=sFNDb&-zA%gABpJA)=Hoae0wvou&WIq(1C`@ccLFIkG7- zlawD{K*qKRSLj>7B#6_v$r}wbwm(-dNY{E(qQmeJ2x+&!Ihw6#J>3gY9Xs8({aR9G z$DAGL&ByJO>}IW&lH2lU%4Tl4LCsN#n6=2GtDx_~i?DrNdZz4i94#JU#yF zm_e)t@rcN<4)hue2ZvhftJ58_W~ONOGZ(})t_;5}xk)a=KHi-mF3+}qRT}D-{XlpS z@7#u#NV4NI`G_ZSJ>9Og`3cD+tC58cwB-lejR;&UReh3flg;5HiPC2PSi)$1iVdoA zm*zD5AS1Rfm8N;r#scc|!HY&J=$VIWv$Q>VmhDFf=GrT=q>JF;agg0a0KQ_vZ;x9e zm)FV!EsiU7n*|kF?kKqnACN#M_Ee}Q4kQx+*(TQJhMZ`_su)_bJ)O$c&eZ>+q}Zf0 z^o=a|&y=ZsHlZpes<7`*%e7c$who^~o0!*<&yQYt~<<_k#^)L~on=@Ns7^I`H>8@Fuw6 z+@>>b{~jk21WKxB_0np?tZX`4GzwA4mxe3lV!orFQgNN9APZu{+eSs|(#eWHSW3e` zq+#495}=T+W|p$E-a-hnutSQF{2YSuBFgI~c{2e~_@+Xir&%^DnxQCNb?Rx&HeinH zUneQWGMPDu`k3bqb(OX=$n*2qc*g|dnRzM7%Y%w;!u{Gx!?UVy)ct0dt08oe6Kl#zE^MrGQFXCK>7vesZ_>0-iOuO2yypdiDM@L?#=UX7<>%wqGVPk~agV6_ zM_N6D!*H@P`fRe=Q!|3Mx-u%s69YYlVaP7QD?sO&`(sbuH{qGWORG@j74UaRS)Ru! z-JaWR#ksaS8D`R8)r0IH82$I7tq>jFd&txOAZSMjNgkS#h5&q@g!kD0bJsLW-IMu9 zAWVQfVjbWzPT0vJ@jdwK`TC5;S`*rKl*mot9Y(qAtTZ?OkvZ97gf1N;f4$;7^u>2? zfssEi+OcTTOR^7v&~NV_k6Z#27UpFAYS2nv7K7DtIWzPu1qw3Je7wr9{tK(pybU?v z+&?;%+4uOp699U3!Q<%8BQs#yKPss(X@bN~=OjDKs z9NfI=d!FonVD0U5!_y=^u=47H;oFCdvsSnbrpNw!?m>osPiDkfyOV)tzb7=pR^>%yH z)0qE)Qi7?)e1_)Eqs(}(y4!+TFL%v#?)d1M=Zaxt%c?HuU3nAIw?|{N3zUp}Ial?_ z1&VPP3*{pHo9QYVsVcuJhPR*U9A*W2uiyJN^AgcE-etKL zT5^5&Tb=ub5Yg^5@0(eH<34Q(IZg}t{oQX(*U}C`%z=GGV@ToK{hD6HOq5|j=*(M3U8P_NJDL;JDTIO}(1b_s1bG=YQdv@}X@h!)KoCFfqT0`m&9QS|VK}wEDKK zDZ6?fhRwOF*ixzllS z%n??W82s74ZpSaKq)iN;x1_obW)b#TzI~o-?p8M#H~a9rDF;MYH!XMv_Z?NP!eu=4V$u;)Lvo~;wY<7>?YC9)A3-X%lugCicg z>@mRJKE<;br5_T^^d66$KdaHc3|1)IUzaRWEh|jBu)B|-4tQsG#hbFEq-t7-rpWxP zeEOE}!f@N7b$K{u;b!Kmqn}!~__ky$&kmCqGu^|S-;ZK+Skt@vaMzf#-B3Tk}J|4g~Fu=w;nH(sg~(-=}i@OC!V z)|W_CKDK=~E2q>-t7L$YyLJRc(SwtJn(Nn_>Ml=0<}}fU|AwxYS)_4ez-O3 zJ&O%kh@aN=o7p-?)N`5Pj>3PtTYwxwWiG7Rtv_xI3wwZI2>B{I{)l?PstR@GnK?o& zQKDP7eo;J6xvaw3A{r`FEymQkbgAzpZJhwAv?@!RiLGK^^R`uj)n38)bu9N(ii>bSw?q zn(jjD+zd>%W(+|mqkTynjANxermis=N?PPwkg7*~XKF)kf|A{CwOq0_HsPW3<1#^z zIsJVko4(~SanpB0O^*Z?tR;ZdcphZP64x;-g4#ofbnF2~w`Ecs;|+4tj@dDe$1A!yE3S?4MG2b%mZ z(pDF26Eh-Cxl1APdv;`7Lzauwp9CyHx0hs_$)OSQK|mUn2}%gyu7`Bo#f7YsMCvPK z1iM<0?7PvOMO5S2a7IRD6xW=!7FyK2#kWXmb8Ums&ic_ZLMi0Flfky;pIy)d^qUlp z>80(*0MV5~#tYWRlr`qpH7OzK*gcPs5fcvSbcPmh3v3y>Kx9_Y>_o>kD1d`e;9Wo@ zojMDBPnMKJYr4r%sQw1!h4MTVjX* zj{Mh0GK;tkJ48t9qk#Jlk({6GlIUKo=p`it}-T}p!GWp_B(Bu8~{vc=n+&M%ZEIiCUse)BjOs7+SD9`0e zi)-h23OD05qRTtylm;?Xwuo4v$1ki9$%)d+_0ugl868SVk&pmkH_k+R_9U}Z0kV$qcf5zIP$EkVpzP>UK({=y$7Dk@^utn86#8@|6T&8>lE z8IABBq>6a@EVCZ=xoZFsaZUcjZ-7{+`h) zxnG9Mhfm~TTSMJ>aiZU#<9JwUIH>+zXfYF%WfekN92hL;vvD<&?Izlz)D?l6Kl74O zjKhDz0=2xU1!1S#ln8JWkIkSxpmfaiaSgzODj(>g=lVH|T8PY4K(adsoA1SkBidn% zf^M<8IBog(L(^A)wexM~RIZ-1$a2@uHK|G3qpOin8L4c}s?CG|enD&Y5aU$r4MshB z$`CH=lDGsBZ~hQfn*_+2n@UUP7z^I z8W+P6H*_tE8#>wTqhqzwFwQ@BE{RuXJIQ-;-gJyBT=_4l9K?*0t<6K>IK{n7Dr?|P zC)M-X=tLtkK`FG|HZ0%nn`EC%MqpKLaGOQ@)AtM4c3*rqYuk6)iFn9cd&%y46SchK ztAS_M2pF;pc0pSt9q;Usa=8G-#Ta}Jiw62D$d(w-AlQi-+!*Z>=l;3cW*En@bwcTc z3`5sdImPqCqsM*R7O~D3bgc9QQs=mjb2}Y!ds@GPDOO|<^v)Uz!te(c%s?e7z4Xm4>NX=kyuD;&g>%+Kg!% z6)(+~z_kv4uGJMdGK8%U88tgtKD{i#p<9%}w(uNYg+B%fT8Z2`>f^vqRtAy|wubDDui3=SGGV#0 z4iwGDl=qTlmD5*zBcbp_Zu&cLx*?~L+cN!NUks~XkJ%fr1y?NwK?4rmHT#fhOT~G- zo-+X!v=4i+TB=7~WW|%sZpao;{X^m3HZMVwk0ch44LS%@_sbAhB^Q%E{nWd+Wp<@; zjsv4BU8-itZ%@i(9ivEO=);&c)|J)Y18@&Z36>*-~rrak|fIL_=~m@M)7Gwmdp#Uue< zPi5Io5W?sMyz)Flxi!KRT~A%^+9xXGWW1>ZGQil&;&aZ^msS>T=+KoB!^-gWlp$me zWJ7g3FSlQ!m-IzRrY1v{>GI}$f7otaUhq_ZhHHgCkA`6OoU}%Jal{e#!zD>iE+Z$% zMg!O)Z_-UprLo`*tcdk{70+5sdTVPYt=NNgLawY-mPC&Lv4DqQrRVD>rz2CHe7Nu1 zQqG$5%iSI3{iGw_xm^q&V0>tSOL^5t^|EztRN? z{K05_vL7a2YI=R3>e+@55%n<82Uf#677j4He0gDf7bW5P2}561pnMfoUuGO6X8bJP zOcd>G3eaI*UZiqbM->)1FE|E=Y~(2KufcZ%^o&!bcx9$;}^*YvEP-Cs-;ZB|TURd7baCG3T(DMVn z00NTP2(U>=%aD0CW6jtOwP-046OYd%82!!0xsf*pnq8GgH_Qf@-V@AapZVnFvGJ@e zXkfX0#65s<*;hqx1Hi_@ob}8)48LvAg~6cgs%g9#A3st(Ui}8+w=;dgXe~&*8MQxp z2U66%Id(ZUa9&$`H~+VcVS`tu2;XXL;_V}0hGH25u?%CkXy;^p{*Wumo42$PZAq$g zk&IgoqYfws5h_mgTU8c&&QChaMN>}ue`LOo1^kpss~=Jo`?^!=tP#cjQTqz^Vf&m> zy$5>wZHr8iR133Zes`XT-oT23-IP9_9>W|n$He0`-x$~UXN!7GT9iZ^{zIv6kp&K< z+^_G3D9*5*J=Ygkphq0Y2iw)wXL4=0uVhnbx(n07v8rRiOU6+B8b^N$MasgNo|}>eVcg_v&E;7GXy}(~su2hV6|7bq8bFvd1+FP9nQPbJ zezdO5|Jm7uctUaXj~nV7fvL6@{Cd%w+R0pcRyvcxm+;PT8QTMTKhT!|nOAL(#CnT+ zay>V}LO&_ycB9d1N7la%)vL0JKC;yFak1FP*{TNxz2$VIc0ZHPZB7n*WC@`h?a@4L zSk-OTT!ho6ESa%VU|c#;-})_I#al7qg6proNClt`{u0Hr^Z8|F_$TC#E-9@MES?sC znWfwlNOpI};Ne{N2{3Gdk<+n&e7DO}!v2sCRS%?w8!)+;gDwKsxgTp*D?T_j7n!m9 zn})1|E(^nY%LQAE@AykN>gv!AsNgw*O)!4O48h38y=v!5hNkPvC@++0%_yn zZ>eCH>$c!8=b?Ja+A&Bjl z2e7xmx@-&f9jD;FD8*LuLQ5KZ=QNxc!#tv9=}Eu|vJlCNz*98IqxJwa{`)ZEWmq!L z_W~)NG54N_A$mS;Ql=nZFw@Ikcr|IiAp5;#JN)h;ZBhQ?e;Zv#HTVp!F()+;rz2Fk-Q1u$X z{L0{twNe5ArSTS@JqasC96Wz+KPGmokdIM$ zRNo-wS>d4Z7KU;KSs0Mu8siGEM_fKq&f$?-oc%T{gUnhWO7<#D2;|6@pKOYhd9M`4 zIjMh|4KHbavF@jA`I7X-Td3oMg#;liyf!wjRaX%zvu7f z&@VbDf!&tK$T#tgjSD-rl=oS7ph^5_VCPMhdXj^2kb3Tp_=-=7{NSe6;hR`94N5)L zV}ss}x)GDFD$!NuDE*kw4lJTe<$`l34@Vnq@5@Z@aD=Dj)D$z2xvIYfSGgMxo2l1e znlao{zhl$oR%&$?<mWLfPwh-1bcULh+r?=ck#>F90J3*173!~7M0}4!-xl`w#bJ0w`cUOfhw>r$ERw)!);y&{>Dr4 z`{kmxJvJ0q6h!wJBcY2Y4{Rsqn2Gt4pApi_x&uGXGj5>t=M7FgUbJP$_`E=GxNG^u zk3Z8~7}i&BCz$D(vb4g5FK>DNP1N+gT(foc>BxXM zMUns-SCtOU?aqtRFL)6|h}TYcydh`-96YZ%NxK$YU*H&1=%)2ljc9MmZc;+FWvAlH z^OMuw!o$ndKTw{Z_uoHgjUVwRhnI=@muR$9BnWJDmtfCS_-*g!`CNQ(;|RZMAO>$? zW%;}b)MCxcUu1gsWT$RLfa1h3#sWHc81h-{(+#b)jxUI)prUxIR**6qzd)%hu^z({ zv)p*?+%hE&#X&`@(U&}ZCRw(@y9YfILUSpA5fZlZi%6~C$f`#($3tGTrJ4D{5cwFh zkH2n_EPtrpJ&>@XiSCf!{fw!@Qd+wAIS{Rp}Kl2)~zH<;NQ@6sEW~>{wD@= zG^~aV1e63-1~vq|&C0lgAC!_t(yI$TtJgBh-AY`Z4!oaZU#5D|ZWehy3N9|XHNp^h~3xlpP<0Qxa8AI>wc{JL@Z4iC4na^sl}`%07V5;^QnOGb?u$Mm>; zc%ql|uCrU2|I1C4?Dw6{useXdLLq~&jOFTAWpj3i>^ZIG`aTTohnCOn$Fxv(cNol% zi&ODQ$VU?H)k9+WswI{n>y|vHcO@?y=wk>>&8^E)N;a}DOU$|w#DDC**-XGt6Z@Px z?XBnGow}nuW~E`lvxC9p$sk01o`l|%qn;_32zuO!!H1w!G6BEOq@g~!&UmqiAC_@8 zmiq6Q&5h_2z%WY`T;ZW0V=p@cm9v&eNag`EQm;91(8*Hk?UiOA!JgIYb-bmpRPacK z>$Y+>{87Cf!=C<1jgnCRftZOx?SZD?c4tpcmff&JH_CJU`id2=WHISkL=yW{etOoM zz)i@#M58vBx^UjhLxcvc9>O$^^@c!>XYTxf-Bg}rk#{XpM64+PK-<)z)d{e>CBA~J z|4z;_M^laMzKx#+?6KmeA~X`+bV_f}RF2&i{wz(0X_*T<+o4%!vn7}++>qLo?b{A5 zwy(uXY0fxHPv_klIS#o0Xqn(As6in&=#u7`VzaT?-aLOsy|bZ3ZvH2?{doT^s0%e# zvx|zy8H2%ov>U}!T)jN|S3-m)0O~D^u+oHsvSmZ)?t%36uoC~af{10b>}0qacUTxp zl*AHS*JgwS^V@j0&CF#>RlbjvEcs{#n8!`cLDLeH_U|#LGKU+27omq-@h%o?$_hiA zSK3k`ailp@I%klw)8C|m*;qXH*FHMc@q|qA)JPZQVRN}Odf&On9*@I{#m`bdHv6f< zJUyi0>0>|&IK5zqYd|$Nb1o?M;o$^;9|0>7i^a~OnB2c4Ui>!L(VRq+Zb9XU35nY!c< z=ONB?p}Vjw;YezkNHbTdSuAqMZ@QbQ<5c-eP-nNvScp2PH3rj1h`?YB@6v9?jgMwF|i#x z`Bpf(I{>R?_gN_SfXm~L9m|PqQDa>F?2$6{P)egcw2aUQIM>*RZkc6$ogw&RyDbaH zR>(#QP=--Jw;TJuC-9^*HH6R3QYROh9A8E%3}K&7yv`BGYz4c{zzOmN5iGPj2_Yp9 zt}-G71j^pV_FxMvjHw_&o98wu!lE8T40FGneXFl8gRN%vdrgUd&%bs+w#{z#=2Z8u zb?POZh(I@-|5JOb;aUGB#=Ty6!dPzc1}guaAHK|==0!xVZY6K5kcqTiPOkVir(Toj zDZ1E1GZ^u6dgQjJ_cGYkuQLwvY}Z(>_*Mx>{dE3~sqpcg)`tWxL9kkn`$xhXiVyR= z&au3&!pp6wZWC$l5d~HW^piy+-cD+|?H7tvS$S-xv>3h4TNsTLJEP;&e0GK+&l8b; ztD*@|iA{`q9bf=r7iLqP@zcgo7~P!`XDnz8V1{gqvAHOvWWw|@Da*IZF{cIN$G6W| zGfb|35c%BuPdq{?;GTj@*2;PA?tIb#-#_I~FcB3IRfYqG-#hWXt#NY5qc9iBI#sAs z;Ruqw7soRBZ}c}`k!HzFHbRQF8y}}xlH267gF=H+j-#ZHZ~Y}bDQ^MI|CDtBU{T@O zra3k8jg6b#=8822V_|YZpY>%W(%;hOOHO}54>&`(ExfAZtz#-$u{Yvm&`k~0!rHCP zEJXbJk2y8sG0msPy_3+wmI{}0GpQ9_G_%6j&mmVx2DX~VZ>Y93&V!b5$E88~@#t~$ z^O3NkW+S=5p2=~iPiM_{uUennR{3^Ajg6&yYr>>0SZXWRax^h_L z9!G4}U)K;qBOcwSFE^rJ z58@+{<)G|Nr}()~uhhK~h=Fpkri1_zu;Nx(t|J4od>1ZCXCcj_Lx+&YSIDd-{~Z-{ z+43XjSupXXnk>v-HLP~stt)!6n?bD-TO-((x@5$#p<|);{adUO5}`3iJOr$_2Bkyr zpPEO}y<1rjq`=1c@UOy;pXF7j?LMkZCwMrP6m?uRxq^CjS`h!_iBq#_q06aGNcT0z zFrLMlPwj4R@P1biY#|+cm1cyvW_y?e6!iG0!fo zC3tQLH_o_XUa{iK$=r4n)hiZ#jpN74YHie5I6mRzG$Rl<`A1n@zPzkhIup=I3(n>a z=f(>6!zp4!vHLj+4$2w2K8VU}$C!tLn3h~iZJ8QDj=`OqNOnuDThY{khWs&o#TjX? zAx=!0vIx~%+U}UK%x`x!@|Eu1KjizJ=2tj>HerWjKas-zhstB{_yqp?CLMO$#kF)_@zY*`&@h*0T|(~PaTnRr zz(QFVqN3BoyW91zm)>-~2^S)@HECYeXC&EzeRlDVUO-@NPGGEN-{s|#QAxSg#>dqu z9wk;ZijTI`5287_{S4G1xl`y^t`cXehZp8#+cSq0r(w9rHl|^@fBx)Cy;GNb8c56> z_ZsU=9{Gq|WDks!ib^@pXrS6Q3e$KF-|x0QvP} z!MH?HX^fE^*6peO6XM%d#2?s~l_pu&mR41+6Sp6CbIHGnEYdLobFMCX=JEs9p)&Zp zt@~9#!jGFxssl0bH*M-pY^U=rKlL`cb8UxIIKb*LrC!Vug~$(2E5Z`ByB|qZ2My-J z@I1_Zt*AlrtseCBA%tL2=Qc3hAKiu}-rb6&y!Zd`v(Q@P8 z27@ij7~rP*d=a?fdmiumH?;NN-d`SppLu&#Iw|L0%6y&?E_AH*F2eDtSdnHF zo%EMYTS28$5a4O~E`MFjdYzfTh2g6GGi0Q4)d{Ngm_JZF%Vyvh&>XGV z__kvnAs8QSk*6$;REGlRSUL{)-*$vcN-{~~y@Jmt!kYc*1?izlN%#higS4lFrHSf< zPxITXcOrkvk2Jh}Z{rZ+Pfvkt>!8DVQ!K>j4fsA%;YTM%x%S9XNB|#L)0*WijX8l% z_%<|`hG=W8!5_$!_*ngcg*2^(`$_0LLg|#mh35Wt)KbCHk#7iMH$!UMF6=1EWtt}$ z;c;286=bL4yg?wIUIIZz%Cvq+a8z_3|eb5!n#4q+Vs2r+^D< z+(>C+eO}aP^-aq&?#aNpOi(&!FsmfN;$hgl3G-xh@c=L8GHbe&>iS!@vg$`3y$!6= zRMT3=M(qQ~9swgE#n=7@1rRTZAcuK0hbf73Dz}W3LswRr_C?TG_dP5duJ~E+7r_iP zb*ZN;iRI-cS2`}#WqAaZO&FQ8$~JI27p1e`|S^6R=~JH2=X+?fkznoJn;nq#8n z(VV!vOj@lj@_D=?mJ3gotxpTNu`@6tJ~caP5svlYxyW2om(DYj42e~4@%GlKRrT^3 z8IyAPX=5#~PbOq#;eb`?k$9#xdcTg{yNLi4kNEu+_rQS^S*;v6_#! zRABOyTe2ox5dtkD=sazM${f8&ctKYcd>iZ`$fh#ey|C zVL?D0*&)CO#x?JLdc0JQ&GH8;C54VTE7ht+tOW4hrMzzu@^@GJIl64tGnr2O*%apz zbvS?RR26wB+FI*~YqpMElEAX}4P8@Rm#$bybpBwha*Kv@5}~IMIh%`-U;+~>U;F=u zH-XKPIFnVpLcR+(b6m%Ph+@ff5l~KJ=6=4={&Yq!2Vp+re;jnjj8R1WA!Pv_$FDRd z4M}MN)B)eVyZ2Xb>)NI=gud2K>@D(ez+RxNQhGm8n>6}r|(;-?yls>6InEZJ}!8)RID^m*|RH`3{n zUd3?q!Qv!zj86F`pg(oajMK3@8M00%vaS#BN{;=oFe&x$%*#r4uN|~OmSpceVn8bz zKvTUSF`v_ziM8`*f4kFy=E`idz;9-FdkQdb!3;tiHo30NtQ1hY83j{E&fta?XtX&E2; zxOeFAe^}@5KVQ-Gq4p%%W0j%%^EsuD^tp9+sXIkj=~WVUcUDLojoWJuYNe)j>3eC? zwIxQG-`=0L+^S2MBtq@rnrJ~|rFca<)0=(0!X~O!H1Mt*2JKO?%lsEX^+>yhYMfIz zq7tj#lPQ&+*EjK{aTv$OSa=B~YOTvfFD}qAmy`htb`lse#0S>OhFS*oRepNmA(06x zc5+LdLFu>;0Zaoc0TYIoq-nvjcn}vcuu+}U2!xi9f|o@$UcVQX>E6`UiF}pBX(9S> zIpgJTtzFl^I+kJjGR@XmGkJHX7GLJRS>_>tbP;1-Ft=%|MD}nlXDT;~d*m9+*F3%G zpYui>dNlv;Yly`92{6+<3oXj7%maN0+xVuEkJNV_I#RgWTwB8aFo?{Z`0ujm&vh}G zOGEc|`uSUQJ`=2(Hu1?wB|GzbmFmV!Wa)l-Z?@telGq^%y&H91>8!9;z(e@YUqjZy%%O?DFV>;%sMXdPH%f^y=CqIvyg{V;NhS#5K zsCnkHgA{Oy#}oa7|p3+WEtV)YBxL9niM zxuI)AByubtG}aWboIvUBefS0|1I1)$%Pwdfbv+^k!O*ay+dZzi2h1syN;YtvTW(%u zh0h$C4)^bqOHm9D6#>+WXFDH~nmQ0e6Ro#gr1!f#eBKD8dcFTa@geCBI47&-Zj=p) z(LM{tJjh;$B<$#4wE}XvSxaL{`Id$8!+`t7Z}L7juHU;54wzgC_D+jOF|i}+AEFiB zzbXdyKRD1UC@Z=_O@M4wwUsI*CF*{4Gkw{s(2hw~^i}so^cf3ZJE8`Hc3<-k6+J~s z@h}FJ`CMh}Ds{TSOa*aZi^Pv=ELIlA%_tH$KEZVU9dqKx$@>$8ds?H?y>KxeWt{N^ z$G47AkG-%k;$M(*Qs{DYOTLlhio<9<1~Bp@yUM^h`e)@3x8(0J!?|OgWY@ZlAqp@Y zyUpms{5BwH7^xsFLJrSyj2rU$$sRu^UsHDf^I1yE93%Vf^*P1o4nts8NRKQ~BNLASxTPT1;vknSR- zrriF3b9U&9ef0kLr%dte_M=KSQ*OqElu|Ek3n@E)@sm3>Jyb0CFoIiJys0qMZOGmb zmg`$(8Zy-PG%J)70+s=l$ES*y)jlwLK09U_H?%g>8VPu+v}S~1@?N|n?;Rc8`Quk2 zQ>>touCIU<+cy}Sj^l+eUys(5l-wqmY}fE4u+|wy6Ui6f!%Ti)zs-fHV>g$PzQPi< zP8*K|uK`KiDJWykUvp>`<=c;x*h~9^=Xf{Qh7gKtC%B4H z4E|TWhYobNs@UJHfj*2quu4>seIA~XLn^sZXfNY?Y~MV8*pp$C`kz!X-zkDT?uXiL z$cDWXw0;&Gz+v0_EM6#kA0W3831s)dT$U8@`Do0`h*R2`HoX5pF)D(Q7pTU)+c(L{ zy6PCU<02%eM8GW_`Q(chkKf;Z(K`x`GkN+5_MCdqm44!~%oW&#rT0h94_`ak7rsl7 zd;i7q1ETP7i0ko>)jFgcmEc_A-T(CS4hgQ#i4>TgMbad2qOzgI;-KRC#i?m{O>mx2 zo5hxUuj-CyS0`E|KG*uDcb%4oe?Us$|a%J5( zbMOi)bw)J~Oc$Niy0DK00Zat8@I!|8ElV}cKw#V-DR-2b# z-PxY+`-E?K33>O`Eet%ZsX5dENvI!sEq}91;tMtYiv57kEA9JZHufPqh z&T^9e_e}WsYe5tcPW37=$YX1al&Ary6x#IAZe4_cIK-%7RiHf5Hkms&)n@2hPpVIR zLH+(rl_*y#Qr}k^I)_R)csooJ6)t4p)8s?1wXKehXpZY+N>)uK2-qnurS36)Fs7}r z$#MOaKg1-mPOoqV;%@-u1n$MyA_J-Py3x4=+p#|fs@4J3r*6G_~tOG{V6tVKB!F7t^fmxlvn&Dj9ZEUQIU1!h;O5 zcq}lYd7oM1s&*E`-x=QEO1qpO7LCy;Sv+pM4Z(pt9_iG&Ow<*ka39;QSp2}6E!lZ|^o+0)VX zFDV4d!Z>%6I6?bWhQHn|)v>LK`GhYT-SF8H=+UM*l7+TR+bk=Pew9*I1&9s-TvXr1}Akr)*6?sg0PjbJ+ z$Ym?}Deiu)VWy)KPU(8UWOqk@#Y_9RGTtwG%fCea38pZ+h?l8Ko15U{qiL4jYFdp^ zWRdlH{JqNTF2#ajwDZOW=+;^9_c_lyPzAWq4~wcMI~|3yyIN_c{yRRm7NTGvm$HM$ zQQlJ50GP~POJ)1xAZ&gp4xFjGq?FS7<$VuFsjaMvbLIQl3GbTJCCurkxo43n`yH%! zjSJUfNq4x8{!p}Q`j|y|PDcA;X3;L0tL`8>o*HCnuUA>nRFJ^flcZ&_ZLQrR#3!hz z;l*jx_VA4VGbu0DxP$l?=6;(&XzMaQlaQcX_-FDnH4D8akYF@1)EJVpR%lf1lZSfw zJQTs_mG3>5%cU#%f*U;RFhc?9WtZ0+)WT;elOK|iAH{_Eg*yc6_n&Vn+s5ux&7L@i zY{>l^Ijj9E@eD83en*}+mGTN6Q7o@4V9YKZzhn+NR5LC;Df=C0x)pLGbku#5vp;O? z6#3lJVEX`KnRQ++;eV1qCYOh2k@BB-yfVb)Cue!p`BvFfh~r!$!2FSf?rhw-{{r+H zUke9|Lihuw1DrB>##*$B?ZrMH$LK3EJb2>W5@u~~wrpEKK8Uz~rT_&AiXuS>R`M`( zFQ_u>zdL&IrzM&LCyDCXC=J)s{uA&E8?PaxzT~;if>-ylq3UN0>_XN{N&g(=z24Te ztsY}f=t?x*<_4+XPlXvbzMXVBNz}C4sk@RT9hz=;KiBF!!w==tb3RI6SJ@F>*qu$_ zIyY4>x+!ak+YYsPqvqx&nRR??Y!l(KKR-zmUhF*~?eNI9w%isl+zcP%I~y%7x8T4$|G2lvS7k!Z9irD5g*j&0%*jD7y)iwR5bMwE0z#1qDLiNZ&!1( zOz$}U^(yZQtWFk4-vBV0`|%p5{!Mk4-b0dRJd5U1OYiMe6{eMuO!&DG4Rt;>Q(blp zqfYO*jG5kZF_698HuJ3j8Wb%uVb!z7VCPE7gcL>N`tFToyxbt=`D-QlEqUG?JFIthzNmRZNtvEq5|nU4F?z)ZTnDR z*yASQxxI>?0+}h>W_pj2orMbL{^=^j~Bn~1DklJdi1`2XRQnZ2Cmur zP}F*gWl|>X)OWO3atb=Pp|1yhbSb)Iou7ITH;NZ z|7hXtCNG`k5BR$v=Ks;?Jv4?61E!hMZ}8Nnjwx)~TTuByS$OlZkow{*?Hs+>WzGJJ z@T@qqRMcB72kz7)7Gd!rAA&9!e^VEoz_9mfVM8*>AFYxoGk2Qgg4ot;8_iduh^4c$ zK0eWLcN2Sn@&Cynel+Hb0i@?5V7R!4Ejz*s5eN@Z>P{c-9pZ*;K0iV#E39KzLGOlT63FoMyy+sRFiQgl{B-Px z#u_FaV{ym0ZM9(EnhEK`(0x4F%Q%cveo$~i8L%JjQ9bJ2(j&7$dV4Y>6F|6AoHG;> z?;V3gFEZ}x->?15^#+;y`>42i+s3&`5_j+Tvikl@zBad>O~F(5=}|pM;ma6C(WpoG za@25tujJA(|!;PIQY z!O^{cf3|ObJ$Cu&h^Qys`Xjc#RwJTdYb@)Be!0 zSqUBPc9YJqZ>R8|O%{m57vDLuJxTa2td#aJY|<;uU>P{6z0t8eT0tfpNK1muUz0q- znZf19#2JVImnr9OXqx6zIta!R;L)9)G&GAsUNYQo&twMuRMct2%Ol7}O3jhGD!?jx z5nuX!RH3RdD3vq08!KVlvfd}uh51gd%oxEa$`)eDD+itE=kSdd@CT{}2byzh@_c#y zNVl2$2cI+=%FQc zF8d9xo~wCrL%7YKH4~uH(nyWZF`3cpC&ZeC9bNS>?AvT9tk~nm_b-lRh5TgrnFAEN zQ^&6;g3A*|9q^|J>lu>plC^?oSf-1+p^|c`ENSjN=*(Lh;QO`EBIcv|B>C*{@Y) zf4ZxG$6OdcYK@+Fam4oHa8IMS|KUy2*h@FOr_{p>vV9x;E~Oa& zx;rW)0>Wwtq8a{efY=}y#%mA^6LZp&@gJIIY*A%Seq6o?4BrwQkfM_4?6ezkja{07 zIsxDe&o&DdYB^%3`O+1k?rOxH!rq%6)gc7qqA5|FbB@Zz??sJN7&$=dHBKc}< zNIn(AI%I;6O>Cn?u4WlEn%u^+p)O_6VZL7g#uNaeq|O=Z=&^#5l;_=Yz8y= z^d96}crVDh{z3OA-3L~MZN>lc8k=K{e{2N(v+*q?Icwjk^-y?5vGvDKF@HExDcnPM zTZtAu*=qZE-{t8W3gBNvoDZTXM7E9BWm{z_c;Wq#+Vt(ecVjH6)4mKsvTcN8vMBkc z?t=^m38y|yJYBncKeG^qzA^O%vtP%&DIb^WI?ZXJ>uA8`kwC9YP)#jMsz~&iRe`E) ztkX_@*OM7A{jehq1T*k1o{>_#9rFkpXv8$XYYw8@HEQZC6a_&R1&O{u z(lyQA+Q^MrN;qSLSVNAv-u9SLw0fe zZ$I+mY}mE;gDamWv+JfCek(5FA-}IY@9$sqdSJ!kWz3iol*DP=Ktn5Dl?vi?xkTsL z0DYD2OfMf9V644 z)QQ2kEI%wC7&SA{^3;o4p{*FZ8G6N+l6SAfS_&OCm&9vSjDW_M^vQ6I$0F0tSGZm@ zEB6rEtA9&ZSOXXMGhO(`-L}LGSKNk=)s-l8i^yDV1)!_$8qkHt5VNj;N16h@YW4nF`&P=zsQ{NVExvo zDngjc91$YJy%W|Q`&^xv)+7PMgZ(uxj^=C|BWXqFDFjcrmhE~RlI}uQ**3&iWDBHe zs9`WW#5rDK-q=eX&Yo`u2IM8Qu!CT?gQen zN6(t7oZDoEM`#^0z6rw9KxNpe-=#>>Afql_Ko=9 z2U0BHAA63spx&AFo4SHZTW5^!!;`4`yi*4xdyK9H!@SI}(m!G?%(UXYS}YHvV``;Y zrV4s{Ex%i!lFO%IqNsiJo%J21t6$&orK7;hy9<^%%bG{~sju z)rRM3N3BX$pu#vMlk8uwM)`kf)}6R9`lKdc zw|>`bj_b~yq{@BR3i&^p&NG}1_U*&9sn|+vk%(C%Q9|tzLd2}1)QVX}P({(&LafBz zd$g$e6kSG)*sDb!ZOt0hK4yz*`{w=d|C(<(j{CTi`}$qK^PH+I(oVvE-QKUep7^1@ zB#jD6bsfAS$ik`0wYKm`!VtwRZd!84yXL7G5xy&7nB&#UJewIWz1uC5cT9Cu1AKB4 z{)~bmu{2%SS;L#vP{T!3iZqY(zzDmefSY1703L6Bc?8^6wkxJ`FvZmM#Y*W@+6%oH zdomnyW-vOSb$csrW~EV1tB!=aG^M2FBk!|VulcEa#+({J=+oyNiK-F#kw=>}Q#JZJ zRh%#I@}J4S_O~4rYB0$vhSa|`X*MlHlFVF;2uQ(~nxtJnN5~9Wlw@|t%A5^Z6#Z#( zOIoI|B(d;Fp`->A3JqB#0X)z~5e=$0&FTZ{3g5@)BJ^jmj2HIM5Sjc?%0T1CgcJ#l zI3<&W1OkcHiJA^56ZoZ6=WrhVc%FDGZnAnj%VujCBO{KOlo*4=!wapWu&dDY=1#7@ zMAmpJ$HgjviAh^{Y18F0RrsHf5>TXoWMz4K8hZrZ#meHUcR4+T3gVUuY|o~~&=SM$ zP|~!m>7hq;>6JUa?paoG5JawWO-C&Fq@%35(Sl*ZQ@$`%2~DrY-UL0kkp0(ZFzs4e z;n^43gs4~c(oj|oxndwXkfYq&ru0)fAJ zS>l?Ng`dr}Hb;&z$arEm)}vAnYUlbU4xP+JF^;>E6I7HL1sBNzFXN61Ri>)D^%E$z z+1XEj465x{k9Qh>K);ZdW^DvhRnnlY3%NI6lu8MlUc5Iz-ys{6kx5{1kd+yYHf1>0 z;1`}7q!$OFBjd-v$-Bzmb%!iXf<%;}-(C9vI;Y=yoaHN9S!MWl5aW2N|GOaCmY8OI zv}szG70XooXF{2AlM7QvK)9_7SEO^nC#4J%fY(pBbGESp@QEd2+;MxGnEXc0qUa^G!43O1aRN6epvXEp995l0qmL$wr#Z>=8EKq*#g%b_Gl+POXJr+| zTvsW>*B@Mg#(X4m4wg(|Q&TD-EJ~)r{9*D0B~w6uT!E`36t**z!NDKK2%O`T+%#iP zJUdY8<8;%&DVs|6)NBk>qjnhja(;~E8#YC-Q9R9xr_XF{wUJr=OJFwdaOqL#m#n1R zoPL!DM*DwsG%p?>;0k$Bbu5MTt5dw>;sGuA;f4gV0BASY>idM5>+p(ij^z`vn|$(h z)B#h9bg3b}(7SBf|7sg4DHqc#P?@ZqBr{^nuFhMKw=Hf!&%D-`m@AQrk}@n{_TqgtUD={vvipI82vao%?7F0G3iBg%L!nyUEL4HCmF5`^HhM)*pNb2X zM3%_&Oihsu)P55zO|^Hu?)?nO!3#vg)g3M-T~iC&&&f_oM8p1Y5I#+FX_!lEJ_xLi(}!)ErjFL6YbT+y47UK7Do2Z% zA#p~&5JM?-J*a3E#H46ym&!yQO6It^AuW|37AXMDm)8u(p}0&gB5|mIEyPi3b zjrma-d$?~y=}b(ep~~)WbP~P%iZd(Bt%+v!0GL-?vUjZjfhSjzD4;d5v z8gqnYWuV1i;re7?Tv6G6N>58%k#59QgDFW?#p~fXxUrY1O>Ez)c)jCaN9&+;2#feF z0SWz_1Ya;looIvSasE&Z{z3>LCQYJkQ2pO_*9ZGk*m?3;cU%kF$g{RbNegqs;tuEm z3RlMbJ>-P`(P44S1s9T~ST|U7IeZjiXv+uB(5KplrHnS$JwUtNN+yE?_A>eYP)lP_ zG6JcVo0DY@s<$?y7B<@q12P6B!qdLZ(nM9%Ykg$siUGYR z%pu&tgpC0JL(e$51dsL&N?W-jc4{-NVQphT+0l15Q6m{V9E=+^oQlbzFaM!hVnzx_ zfJdGZdT|$Ar<){D2UVNFrX`#gbx}|`iS?)!lk=$I6np#rZsFv=D!y{w@L1E5Gp=3% ziGCF)G8M?9fEhF^bD9Ls`AF&!+$5+7ri_`fD~a~!8AyP7v4+e@JS)cwOT`BXLr?WG zh>7WUPNYXgcsJhVFUM!n&T)!L_OZ;3>MxIn-DiqgDjY)`9!ET-o1x`q6PgZ`1$IbrsvdY@@a z&JclQhOc&PezrUz6Rg~G1li*CWwfj6B-Z5G>`1Yx)!L5z|MB|l=B=v+Pjer(G3{DO zDZUzAfB<1kZ;54ZmBg8UUe$RO$ELQ(Q)Bb*X~_Gr)ApPq+uExUS(8zt^q6%Bqd;w@ zCL=I6#AFaz(75?kZ|-m|A-0u9j_y@#8tqiR13GKI(73RyYWlEIJ|Ayui4+LKS(52d z^(6&%vm-3pwdp+8W45UUs66z09e4wiC*YKqtIibaC*`ctkp$Epwj2*HL<&}=om;-e zN`!b4PHe7Ui%Mc++RCwRyHL$;f~>k(2;fjYu2I4CvkHISaBjDyTq1nB?lY z2WmHV>asO2EL%Kb0>M`e?0x$6EyW~DO$DW;NFk%uhB2r(!0Y%cY!gyRB*Z&3iRoZt zK}Wd{7r`PYaN!L*42I53V`QZ_UnFp;+N9)117^qEDU!EkRmiO^HRU``;N22PAjyJ- zXJ?D^cvLFh`sk3NPycMnm}PJ9$?a51f1Qq%iTX=mWuahj>zLLiybzV6ocq{%gsX5& zPy8xilnQ#^0?bjo_(8}M->5SmaXlT9Ol6!Yl??XRb^$|6V~shitheQHpl* z_R?e-Ibfy9V|ti_ffSQ^qQu;$X>jBFF39c|?ndvpl~HOdR4P6uArk7xntb9M!6H>1 zrKcRAmF#>nsxk~WTjVD9XBzsf+m01Vzo3hc6i{%AR;1@!atz zg^4#ss)tCcr7sd~xZ5wMdc$OqWdvNcaT6IITih|9L)DzePPmX}NY&tQ1vIXzWR z4cG5yW`!vJ5rHfL`YxC6^^RZs_)+SUqu@*@cAJrv&Bur-y{7{4E__zvH~a?%=zFf} z2t=9DSS0~Lw^ePXHaAU^&TQXjo3VT*B0(P!cH8$-2ykSIScmYO|V3G zV~+bJn)s~N?hEv9t1##^)Qh@zQf$z5j!f#6@fWup&$Df)>Ll`krCWEm{?vkJ zDAzp4QuEhtA%0Ng!C1ORp_TJU$B9S&FGO-J+MUDB*Yir|9~1RKm9^ZWO>f~v1@M4B zX3l1*R%}!4g&`$g(vOJr_z-OsT#2zFzlo)~pFE*7*}m)%CFFH`!n zxphf?8D+qp8>#5Lzi8$&|FOiBp~rpj`i=dnRAB{3-0c={>EQ)!d}jwhC#;HeljX3PaQY24_h0M259llvSl`MA!#xy8ll8UVq!g{Rv+{Rq9ps@g^t_vW;tGz&vN8BFPJx zj-hM`hxzebUoa8a4z^!xOIz$JWh^=2?udfI3rqHA7%#B!t!{fgWz}U+Pf4TPjkv^- zQ3FqY4Ceh+q!RJt1>-cFw7ep*?OI>R0!4`RugW@}nw8ZSfYAnx*$;T(w=*}~gy%bB z7jKa6mK*`y>TqJY6H0gUBI|arzq13o%g{|15R@GWCFn5BrJgu)iV;MRul&RjdeAcs zmkhNdbC9%#Iia9E_kWZJ?0Wd*ShRGX=&4@$Mf$l1kLy8T~Q;DwKYKrJdneMb&g#HCb^ycBPqxP>&fBKMc&umTDEG!Lrn{*rAGpy5!K<@l? zzk437pT(~(kiXE%t0?;ynpq*bmJ*QF(H3G)M0A;t9helx3`zU8m$>)RH|9h}CkK24 z)3kU7x8v1L{QN)k)vpk8@mN^O?QPC#D>jk7@yNp+E{f~Z1tEsuBBv2~2>?ZNtkqYr z_|#at0uAlR)~MUn_+6B%@uc!C|1(?8MUT#o_}^F*m-l!m->9nNaznYh>!{aLZ2Bi7 zoo~axVJ>6#6Y3>XJi**t@2yZR+J-{U*rZr{P%c}{Iy*2%pt5#Wq7#}2vwx&=1C7b+ zC|X3wD`?{JktT|{ps`v*s&RlN6m;fLH`%+~YEr8y&v77!G5-@U(v|=JSz5vW|bU%t}Y~0C@g|qF6MVq)T>Lp-bcx2hn()Y-JW^cMxb8=DQrno);P*L zEV%Bw_>)^603pS3`52N95iRIbo$_P~lKDXMx<|u%4Gr9C-++^IgF({(6C_>UVbloU zc9HtYpR!$`nHO$NEfX4H*I;=RgzwDpiIRCRt0w`3Qk;zJXz}RyG=wuOlIgF!`b?|r zf4cz9opY}HISfuuy?0bUs0>d>4Iz@2#?28xEEmm1Xv$!MXRd8Xw!*toVXp%Eo9T}! z%TDF?Ri6)t@{)RdYBuuxcm9lVf7ldIFCIF2co|O2zX#V6tSJ>+%1rm)U}$tzeR&Aa zS2Adt9qi3kJ-gN62xU-^-4Z3j7 zSX7V84%r{bn_<3ieqA=?>8Q;_l?*H5g3)s_wHO6)p87WwW}0PkguLZh>|@ekm^Ma1 zq9Hme6%^K!5^;IgQ6MdyL3l&*lScvW!=U(eEDy#{V-8Vcyln?H*}$6|pP zzE<17y8MrGCe<-JoRP=wI8%62<{c?vSA_|y==tCQ%1Ee8N`fF*tnOd115iU zB-^bErQ|cmuL4!p+}h=bJjnE&gP=FYwRZr^l|1ThgUh_)hzVHX?vW>`+NYVdrM zWNfcy!m7{rsIye_oKBC*DDjl(=`~SnwfS4gM9G!o^q<4?=*aoxHx4geil*gp&TQZe zp1YN=Aal{6@(rNlB;S1^lT4ki*J@q|V(JR`0%*LuaOKXD_X-6iUy&;itbM+}__Lu; ze>5oj`l+TqO<06sOSTSF@m>C@lqd}a)>2m{@ten(Sx~Xv5!%Sp!DzKS~I zOzkPA(BKr0ODZ0!pszx8#x(1{a1s#oJBvAnyBj}lgw3{Ka6_s;$z@+Qlex9ToYj8{ zn3D+{XE@4H-Lw16CY8dO^VPRr^W02(`_|Qle(Kv7t6k2CeTfEBdo0nNyVdl}6q2pw z^BzO>D!HIw30%tGk*kH3(_ahQ(_Yh`@Y}kt>C`C4>Uc=CEQS!?MKbcyMk?F{w(on< z=8tlX0oS81@Mer@qt@}?&bUYH2XS{Lk$Io=p9DA_665)$lDZoQo{h2m*t>ZGAK>N9 zj+m&S6`K^!0iN69lN~N|-7kE;gvK%32&83d_Z}QE-lwlgVIgF13y{Y*5WwmD?xi6S ztfjb+Ouc2GcUCzOe)2Y|_Th1?>et1{jtOu0@u~Sn)R(dNaH`u?*fRx_x53!7gxez# zV0{P*#AQk{ljM*{(xy&hB=JOPw2Lrv|1!OhFs~*s zG%RHpgoB0&2QxA-KZhIh&BUb%o)-Z6204?oNACVZ@kCb;FaQB#8g@Ud)U}0HdX65= z{wuieo*K7`hTK$F`^})YSNowqvoLSokU6g((F)iv8-rOgssX!O`(RlMSO&`lr$Hx* zrgmZMZKDJ$e@~7N&&~7a^wL#XzMCF9*bh7Fw3^|P`S2~<9yYnH3vQA9+-aFAOjwq2 z+jmc0wcT3#E$pF<0gcjFLz1uSXn5{?<7|X*JqZBVf0amrl~rX%lMij6UvWioO04>K%tZB$aD3U6m=^rksB@BBd)b*YlPC?fhf0_afFFCFJN{d3Ey} z5t;k>#}17#rUf7!n?auU+vzUEd(S$s&q7cZ%{3 zRvPu%=xyz-FQzgIE7Fvl-RtKay{AKl(e4D(P~S`2uEZn{u%Kv5N8G@h4qIQCP%Q}XgY~ z1STrE6+Z&FzlhV35mQQ5zn{bdln0n`(aJq$f4Oez9Jc;rIOcBAprxc3Ssx?pgBR$v z9JV&g&Q@|HJWqc;EHS=?Oh4pUt|@NJu0Mf0qm#-j?c>-&xQFZ_4&*vmTEf!?F{=7!+}Fr6A7 zH4|V=Vwop%qRO(3avIJ5lEYptwT)sNkRmJqfELQd?QIlf(enAjofj(Obiv#a1V8S0 zX09q3oszo~{3;=Qo;Am6|IGF?5TuH!2*}OII_n1S5HaJ8Maa_|YQY}zHP0A7bG#(o zPH-W(Ox`(iX@ri_MUl1s`PuZsp7w|kbwA;OOn`brv_Exl+{(`(MoRv7H23kme^1uw zh1sJPPZn?cFQerr26oCBX56aId6(J|=`npG8So|!Tw3!?yK~+hF%|928y>y5X8HVI z>hZ!cMq10SCNPm`*Y&93tf||=b)Q3B^HxWuG{+9d{@cW+o-+O}L4I-<)4GhiI(N8A zHqC-?LiFR(8YPSGhbrqcV*LHT01c@5-gqdPcXa^CK|_qp7v1=4WRdYx@~zPCN45{l zT`d;s?sV!s_m<@6=1bP}t~oALAWBq!Y#m=54iAvJ%@@*fiO-$zq@C}{-$wXrLJPBg z$a&B`U%EbQ6gd-V`)PK2J#a@$Fy*^NNz1)C?bdzJ;GfnmmyG2%?VV$HhMkWfZ%HpV z{o8%ra)8&)T0@|>&d!qw*PdYW=D`&c(WV@fc*h zsXv_ED5O5jyg`KozTL8&H&Sfc0>;aXG&3@ja`ay<1+A0EaEvK?yss19Dc@d?5n(|{ z6cfD}@m(0cs?KtuYFgihUP+plm%L0mtTH=f@OYfwBC+c(bsvs=f;1-J` zaPyHg_0>g9lz4)r-d5N@oEdJ=oaB~0kJCEYgZo!pyBXFLe4RwGXqln;L|7R4vS(9$ zYc`qmFZUf1$HAK>R|bw<to zLqn%9o2zGr9KK>^wRXWii<~&snI^gwnR*i$9X~MLL=JaUU49c0P-3mmsGy}MMnf%% zJ+;`)EO8Yv*C2PnZXIo@P1F;(kSV_WAa0q(YIN-t4i+k18&*oI8bWZJf0UoZkXBaD zG0S^D?Qd3;Izp#ccX8Y%0b%iFEc7Z*AT;Dg0q`9nP%4g+d=gNm`lfRw0Da?W`c|;O z_Gr3%Ro3BA%d4?_onw!JOAi^RIXkZbZJ2w?%^zjG2yK2-nKv6Tt9t}^Hb@;l>_4}! zN4?xK-3aK(?GP|#{087$zo9x)71&yg!5vvlt>4R-8Al2N7uZT%P4cK|m6wfC?`6Cs z;hphW5wceR^#=DNTV z{i8EZJ1NiA3%RHA@teDo7wUzSpQkA+^;}^y*gN-@{p3y9p^q2d4uwhT%pGl}T?oF| zwf@Z;A84PP?zrBx=J9DZdSYR_r*PxaQLHs*Jf!IbLo>%1NG6XDllMzKzinlNdoP0c zpL&VxP>aR!jr1ewd{~)pPFAc4D^oS|Ymtp_nu^u$KvAG8`o-+rSg~de zlPr3_^(U+~m|#SO7X4YC)`xynjv3S?OBQy+Ak~4we&18)KA=8GIJ($e1)l9b*S1O? z5Y13Fxz^K-&(htx>Sftv7M^iEYTPX{JmI*ZvdsE2s?Y0#Ie#z*&A>!uT&UeHh*3IM zzNE&V{Fb=OdwA{9?kq>BT4^Vb_*j(RDE5h7RVSDDKx7ec)oG8C%fh?nR>ixq$R8>) z3FRz_%lR=+Q7ZQFN~w3yZ+1BPbBBF?nkJHkTLP{BCihOEo9LSIn>A^;bpJRDGQ|?Z z7w~5)aUn=6u!BQRRX)7U&C*yjKth_4-JjX4(3Hj*z*C#dN#$%al}^+EU9OsCzuc66 z8d@7rr?r)y_j6ODZs$>NX&C#g`4bu5jeLtu#=2uRrrkNUP@el+wkN{vS1(vT;9 zWmwqMGaC)H5Svl-$=ZVD!!86sRrz1P?&rNe;;e`1J}G!pcgH8&6PCvP+xF+I|NB{89UJNXk-HxRYEz?D2$Dkig~)5-`UD*B+7LUl zVh5h@izQx+l@CDuDp|Ceh$RE2!B8%7BwJ6nPjxxxjm-@=H7TI-zgcldKdIUZ)8L?@ zUFmu&V}+0ODcLHs@F#;OJT7gY{4U$a!#|@Ijw}dMe$zh85g}gJhjr#BS z5`qsma-J0!WK*qTxe>ru{g8 zW0V22N{#HopIs%l(J|6+Lx8Rc(li5xqkZY|gQ3b}Y}6^@R|NWnQy(_4NU}GSIm0uNhux`>nW38*8Jx?gh5Mp|l zljW)5{`bYN$=`3a`FSNtXw90nK7CR3vx&vX9k&GcBl8t?FNw1uUQ$1o;4Z9finqc+ zPoVH*J`kF(0dy~*X0L!(-EB6ypqTmO4+i{Te>aX10W$%0Xv5;Tcy;LfIP)@gwLhNY z<+-y|3Td^q=j&B2Rq)+wTUhw$70{2M1oq%jvU!TM)m*Dvb*xupV=cj-XCa_A&8=gb zjTc>VLVq7n@H!jMpS)ZAy}I1$f`t?It0O5mSltvJonvXJalLcKLaU3nz}SSQpHJQ% z9Uhq@uAG63yL&|G_qKbAs?|T?QMx@0q(*-m^!HB+vwWmp)1!HU1o`CYsnIq%tDEIz zCMVQX%z&`h8gZjU*W4w9R&Td5)5^cbEnA}fpfKs95^mm3Xe9QU91YK&1*o|(@8MiB zzf?w!#p30ov9BejbV^wZIxKB#1MwddR=;((76z>He%c>Ce9RnJK+giTG>YvRK`%$$ z+<_Zce-2fzk4a+Y8pgB9iLNZEW8~<*{Jz2=x_@@C4)MBpPwHd;;mc~on_8|pcQ~uB z7QdODk<5u(hqe~S&6Xles?#vYgN?yhsaxZ*oGc%9X7!S8nB)|~^h|fElDP!CjDAUH zOHe9GXkq5tKczwLDt^y?Sj!C&4N`zOr|yYSUwA2*OP@T^@#|ni>F}3+`{5rKKT{?H zUQ+VsgauQXJ`1^z04t>E?uk-g!>%)?=Q*4*>{<2cZ+xK5qf;(@L>tL#I305#Fr3L$ zzsvQLy3Qg>=4ZfJwsb2Q}#J(D{*+9=~wh zhLX;rbaley4k@mFyv81eW`1L3;q#WI>k(Np>_eAxGWya9Ctf9Mg74K`Sze{GRoRed-n?=h=eS%wLz+y(n^+w3V%7KZUs z(BRU&7qr0#^C+=F>LP~kRGh7KtgCnezTnLvz4nS%YDPSL>iSSxyz~AR{asB&V{MYA z1U+7PLK?IJ#eD0Zx)Mz&dNwovYW!j3&FNiJ?RoS4*)f=8gIPYft+~?SzzGQ66ZjERMO_Fi<~z0B4$b^9>R&{n$gw_#mi&FIpsx zJvc@0BK+3lFP!%gPXhMICo(Zup}=(mpPEc4qffQ@U$j)SrjeQmdKii3Z#BAoEXug^ zPS{QH@9f~oj&bPhsKooj*BSLL9QR88TW)z=S1S6u`b~dFZzf|HB=CzuwD@`BpS+hm zKe-n~_T2c(dAvo9UQOy{>|Jkid%ZGgUNWv9iND9f=?z-$oH1bG(@v=34uFn^ajBii5H2Y?i@p~WEoyp&NYLCwi0u`QYVyPdAs3b;JrJMx0>?9_NB<06l`1&bFgT_tEl#3Y!3LXL(w`!~tsT#1@xHny;${t6W;*42|BJgiHeDGb9 zse_fiot<|3O{*B7ZOClHMh1Eb@|@p%9lGbI->?a`Ke>wZt;?QogifgWFFtA=+ZLUE`R#0m+Ygke@t6a4`r*Lmtm}57iPS{0FfuH`_4me#v-c_}JOtP26 z6x#Df_r_fZ*WoWtsi(Ner4e}e;cSvyOLlZ*g7BqvCePb9h6O;2Y$W@j{n7xSPRaav z4JqaiO3+RM!fdUlb6=wvMg^KPgclGJneX7NtK23Ri~+B&fd*Q`Sq=*rM=NY(Q8Sq$Fa8*1&XFGx^|+jQvs<3?RFMMP*4A15 zWaeDpCh(us(EN^ch5nIDo#kJ#=+5>WZH<$N{mo;rTkpyA=B)G!OSFs*ceU+X@gx@o zFV!xM0rBSEY(!YI+mrHi`~vQuH$zwMtIU`_%Oj?hCj-f~f$kd>uO?Dn zTQy&qhIKLpMH#8H_9QBmYGU|2wxpMt>8NY~aLYQnc{@7eUXF9rh^Su!v{=t^OLebc%D9`k z{hH!;L!II?yU);mE01gMoLUsK%<@(Yq3qgH#Wn9|$zIO-!o?+oOuy0z@%x>e{X@_x zSHVJ+kdlXZu1fyVIU!)>=k9EoONn#lUrP`UVtg)2Isgw(yGNAs*?x2#Y?|qW&eB#L z3k^^WE`+=_D;rdZ))#v(J{evsoO#K}biOjd8Glix+KS0K?nVY~&?j#>IW3VARoX51 z_X6GvJ_uHLJ8z}2JaiAcKB&+2j=WPxg^nvbTFDkdaZThchg23R)}={7HYNS?S5%b~ z37wP@aPc1 zSog-@(y3f&FI zWoPZ7&ibcMHr?%xRRpBr=`Ju5-1GG&*ZatC^?1fZA_=e;6ZTc~$6={|ZJDICT!_GQ zM{n-OqdSFUqh8yW%MfphZC-1p9lIq;RNIfmq&cSY&WR_H*TygrtBkL2gJ(I_CwtgrB1(d=Mkk_y@?Ph01h4nSt7AKUU){JE|&F=+JWD zCm~q(wyV;F>K`48Z2>W(oSFf66e|lu1FP@u~a8kDK^>F*o+tEMM`^C{6H_N9dw5H+k>C@NW6^>Le z(;XS{q1LjQSJX!D!*cBFNRr^?C%67xFlMS%O0pIXDn9Y|%hSYv}&6;CrH%D1dLlceclbQOhl7(9YP`2-dEVWd0 ziSUu60!65+N3%~j2Ypr&4g^kZ55RWc=M)bQMgN;^iVjv@hLvYSTz#~)dhI$8>BcVa zw4$W)$E54v`Pz&WZK#Q0vbtH#A%fIB_$oW{le=X48TP6bVfL!v(kQ(I9+JSGL~%)I zv;ExH|8uVbd3!vjN;02TA2`S%9pQ)sm0MOgcc*iB${u&-VR{RaNg)@s=C+iO?gIVm zT*731Fv|u1gN2R~!=fQ^s*O=4J$zGeF2z$d8qrhE>9ymFv5|s$;O87JDLO$L3(yR= z{Ckbybg!$v4Buu4#h;HU0q)lmJc4sjEB&s1OJk2m-Du$~oOS;NC+N%6#XClGRNg6b z6FzsWz1ff>LNtHs(D;rw?e=;%>7C=C#V{+ZOs4k|&hB9g=8hh=-1U%bJwY6}!8& zX)2!}yvdpd!U5Xb01+>`8~ZsZ`yex>>O#3_V*I?*)0ayX&I{a)E^Wo{@(eU5RQDuH zX*AG3j}qS?Wxk#U=Ipv`T1whQq&iFxAEkH-gMC+X(5~ESdvqn$S;87Y2MQl~+mr5M z3buD@`@0hkHOHpUT7PjIb}GQ^h~N;yo$ger$%kiU(`T{%?gZ&Mlf`cfmPX1nk(+W! z9VvmW`h8;>szQ&c#wZW1e9lQub~y5<%@p)Em9hHDRK&XwEsu{BdKY?6PAZhm0F@tJ z9jonyW6D0sGNscN^#-;@CcGA&ZF8z{1|w>{+4%FvLRGm8aw28EbVnr?TY}4qdv3Yc z4E=8xpwN1X=b79t^+feU7A|w<_wyraW=1+TiQK?G(nZx4=k3u`GN-<Zxf`k2wXo;>0e#(NUJn?!J|y$ZQ}y;iS=rj77LpJ0_)4kMDsG_A zOJU~vMcpi99t&XYO5}W+vnDH`+%n|f%aqIx9*Y2ydQxR{zgBB^v zEjsP9?ZyG?n4~pGp<2*v)eB3Mh>eoWw(|#;d2OwJ7Uy`&>wk$rXwdWb)vrvzGiH43 z5y)Y}CFO$?UbzSp_393H)yg*e;(NncWlnxa~G$wtmKC`YgJt*e=J|w;IOT;&S}@ z@QKs73h{6)*M@*C5p}&G@vA6_X0*y^wetN!=ywIlR}X)oE74nMJ& z+ZmKoe*!3dg$A?%vathL1y#*g%-s=p<#yMNDBi&P^an@PdDfNx&Bf*8iF)0D3jPS(8}YjNJqF091xGrwwoHGjbxd%RIseSvr`ivCV|6Kl#tIT zR9Bt;6$9a#tos32p|6Ay`w8plyx+n(SLXx<5RpN94%C-|mCCHNF&=DX=OHD23>@F$ zor%@s(XuVR#oO+37o2G2E>+%mag|BE!mOd*sk|oD)I+PIU>q^Pl3TZ7{`Dr68mV}S z7N2NxjruJ42M|)KsG3FTEfaVXrZsnK;pdY#;?t&2*WgbHYUwvU6F0}Bxuwb}FWU3E zf(;)> z8+Nn4&)WCh3vVoUW8SE|Q4Pbr9SX3e1XJ8@7IuQpQu^@eVA~meNOpG$Icd~hzy$J8 zIW_!G?PDu*X3)}Zosc4*Qv#<##|9-c3q5erGjB@(%EKf_qO94ni_TFy5dx@XZ(2bCnG})@XWC&>Fh~1}_;ozpbOfC^X;2#dK&A z{=A=$6C1p=ym|iqt^C2Oh^Fmi?c$ha?b(~UJkbxC0ydoU#+j!a>IDOO^c2(>1vAI3 z9efS<^!+@k7KES2w92+h<^%YxPU-13N;~pTGk>z?Jz>w%S2A)ZqB5Yn7QgZeUY?}j zYFEa0vw&Y!|M=dyzapO2Vdy>%?H9zz3h4#sR^GQ?1uh=e30=onA*cW~M+%hF+8{Adj5fua5=E7%= zQp2|#JowWb#vxHl0u6FYy8i&ya#pa06vy8a+Jj4VwHe9sg@AmQ^LorlsY?C5m{p7P zIVpo5_QP<*ChJ#a^*}awSsq8arU#3fa+>f;NwtWgui>hzV2`1d3ERgBP%*RMPQQhg z$QjU36LXX@^6tN|+-CxMaRJpic7D6Va=+78KO$P&O1T|Jr3#gh*=Xr{-j zukN0>G-fU-z~|0Za4UAYr8lO+4c@5DVOe>4;;6suNsN(&C{-^1ikyGM>x5%Pbg@KGoEs$I`ukO*&%cO-1g9pJpXL|w8!iH^FP-V$bU>W{*>i%rnrqjCs7}%Ik*>B*x)6#7fUB3r$tqE*Sr9tT59$^URf(bkV^o zzFU|@mN#uHAUg=N5XNu+ytOd}mv>}34rgZ+b35*Ma&mQ_bPs=ZoDTntdENdHA6PKe zRRDAN(dx{L>pc)D|l(Ui*=I7_)-;(^NX=;nV- z+vu6E=R%SyN6hmSYV|yU@qXR!yst4#dt76_AW?ph{2FUU2mY79h>YNln?z&6xKDc! zPe$ym`~xCd2qrKgZp?Hh@Hu5YXVM_N3!gJV-cs0+bm(oSjr$ znlp=*SVK^Aeaw?9G#NH#H(7yt-1%@*Yx_aH=Jopy64lF%wJLCH>!9P*Kb1rKl?1zB z)W9TU4lhB%vUnswcrdbD38s)W#L4xKHQp$YsW6(PM{c`i=9Bee(=X|3*qBdUcGyL$ z`xX99Iu0Y1Iq=W%AuOZw)MV(|yMT))=8kB(K?uVOf_N@7y&iDzN>%8!M-6!|dkO&2 zWuIj#Q7;c>(fqFoIgqM``2fumk9kZJ(7(>GI7OUZPR1~mBuPElRBAeOcR;awTJ! z3#PlGSPeR#TA@r$2%Iukegb4$V5&CEURtKU0}4j_Vx~n^r>u>oBp2o>&1kSzxX$c< z7*ULDfaC6PW^C-yjpQC(QI>85O3Qg=g5DZ(iwe0-13E3Wf(i;Mes#sEhK1y*Mwqog zGqr4IOlaK@IL^2o)YDx~A-g8WDz?y3h=2)T&}1Op{fYMTx7PYHlP9B&J;}J=y3KD| zgk;!$OiI_5iPkBlNdJRNdcSJ*al)afu#D=o$Y)Q8-uA&MY1OWoGW@s zzf;2`HeO&z#rU&cQ<+Q4G#qFpTH6#c&^fcyP&IO->D z`5~Q3NwyL|UD}q_yJ0~|cESjy6mec51$lcD@Kq@i1zKe7xa-Brph7gJUBhxG#}AfN zr)Afyea}=<&IpzGl__Mb&M*9WW4D%nNROFs&!^g0fuy-krSMqt!Q<%vR3&&ZW*Z_p zfJn^?oqMgL!Cr97pO)0Sr#;@Z%#Ft2m-#Re9nJ~uS_M6!Ft)@t0K`*RVWGopog=ND!ycHQ<2G&vFqq;z;FD9Bbec+#EH6( z0k03Y{z7_2I=%MW=94R)0CiYFZ1Dtm<+QAEZa3D6D9RXeOT0Z&n&)g{-g2rSMF6Dm z%qx03V@T0P!&VZ{!Z=efKTjOeLyndTP~@Yp_{PlV1uHQOHtD-g=|>Qp=Y?)taVpn1F&(5;pqca%sri82W(y z{zsWIn~WceKmc$&Rli3K+Eemy0B9_g)T}2zi--?9Z`(AX9UO)7J)BYY8)A+Oi9TZ) z9U@4O=&NvReX+R+mJtdzi70q^OUM0Yj=cLXwz?WBNfTwr^FEWoOh@)xe{v@MI*w$( z*GA?tv*&zhmSsNxL?@AnCMs^!n47~6tF!KJq=ZGNLpYJrpzz(nY5F7TcJ~X@D?kjp zOu}lPpdsBanss{#7FPHC`+CeUz|H9JgSGy6ot;!nF0VvS#e+_!S!-6+1iqr(VLY9X z=*0ou)$lkG7X7xhY7QMi0xJz7$aT;hQ5iaK@ZVqbH1%2C6cBk$qmF%KYMo zl?AJ_-uRITBgydE|Iu{b|7^Z*AEx%+Tg?cm9V_-GA-1aBB4$;IQ53cJh(r;4k5=v0 zsJ1q-XN^)TwzeoOKGi;Xe)#?g$?J99_jRA=`+Xc7UISGOblX2}n>`dVf-XqvR^h7Z zXk&J&a5VD~v^O649cj(wott_<+dP zfiv$SiiEFFyZGVBzg5yieRfYClEUli}GZG>rv0H!nh9v za%~;kXP`=;Dn>4~Pq%_Gf1i*lSCKxh(kz+%f&O9GPS!`6C`7=6CzIYdsE|8Xb7?IUYF2;t&Y&@E` z=Wj%x(a&uXcy9)cDhR-=%~KrOEI=8D1LSfF1&|poc&r|{K;odRJnRieeOYFS7!#rL z@x{upZNMxVB+dQ+kIulaSQWM1{;Y8DDhAc zg&M(Kk@j%}WaL#97d}Qcw4tec_`~vJO^j^_6Kv%=UINlf3|S2Rj-^XfWLqyIxpN2tS#1%T5K2iR^;PHUsQ0J%ya`mNzuw=cnp z7G`Qqfgqc)<;mZi0B>ax*0eP9)k`AvPWMa+(WZYeoeiNJe~o#h)QtE_=;3f?v4Q$v zNGslj9sE)adHvF=Xfdv6Uu_W%Fx+D{h&JXL2)!+`G#%qjWO~y?VEbkRvL`z9Sf+ea zL=(S-9v}+eZH=IO;SHTs?lLX5*J&~*js|GJISKI}giMLN>8y$ReTe@tceht0GB~3L@;ohfoPZ=UqY&ihEO!@Q5v}EgINBer3*q}%ovY|H#;D^Cv~j%<99xNn@p5Dv ztI-Ds78r5$`zIbfXt(P9jlhhP-5k^~YSvz=wcuqb#3j4qAQgu?DLJfM+8@7GB-xI0 zYvBZ9t=EOJDMMT-{gox#4?X72nlk`L*a7Pjyp7FI7Hqo6%lqx~#?c<(lp=|aAL7hc z>qLsAxEcRMWWhQVQAUveysC>ANl(GKq-rOEIdG@MQs+d}7=o0;q+x*G7nn|bBRE7og7T;-xV;C$GmB zzV>>Q54Koy~wvD!r&sOG&c7rs2R@0#rN>M-a@E&w?(QG4U2v&(fhkq>xzq~nOjyv4yLw2)L4TDYd$uH zubqAn1G9KaIOvtastyYbg4ym`9;JY@taP(zYqI3dHI$GozIhPz#L|TT8JI4q84&wco@siR4MQ9=ubc50x9oV3$_~P6;UazQN7E;p zTq+>+03q6!vE*v{Q>BG=rWEw3RQ7?COLj|Y%Xze4O`MQ=g5ejgY1l^sYL^X^Xaxit zi_Ssg98D4t`PKFf4x!2RMu=)!fHnV28*OeDba>JYoTKO0r%&18A8Qm?(zvV2=b|Q8 zZJ(G8G;UAykxP|~c%mjfenlWzzyz5FcTn%^-5`Ye<19yej=GvQ2YbjE)DqOMBlP}I z*na;pkLMLVe;i#J0_ShTRI_^{F38GbmM#3daOr1Kl!=rD0QV#ra4a7G`ay|~w+lC) zP(Hi||5I^sSw2?rs48x@?wWJIUF!re&UP+w7=I4fM34lxA3RwIob#6{O|sJ=Q=K5> zq$oVz^SM?|p!?SJK8DOfDQ1!!gb?JikanAoB9`D?#+|SNRj)1MyEyNumP~&XFSsk2 zy$FvDgiO{>)Fe1^X^Yif@LwE~MU`cdJ5|(zc7*zqnRSu7E>RU}8g?*6#gA1i9kiYT zad(`27Yjpq3LODTs0mxi{q~QIFMMb|^{o; zbGn!afZVR)iWVpRiit+n5lhe+<~yEfWW|VqDKYO_0?hBu^4d!vo^gk0C%@j#+JAVh z@%5!HRzw+GYQ5cpBofuI)8)i^fERt|U!Oga-II$`Q#TR3KP-xnS?zIFYBi3^si$2O zT(FqxSlF3&xTO3xEY+3xm~v*syUmf|z`i~YZr96y<(;Qc6_{aKfo8EUBl{DbM|+vA zM-er?f1a%7`L&Pz7miw}c}##j;O%D%9I&{8!h7#QL4CFyQrOH&TTJv);Jx>r#cKV$ z#)&mk#qI*nID-85F{jVfeTK&@0S0LZIepFEEKV8%)%YQvRTG;O zj*WXnn`AQ2C>4(oAJYL3OBV?Z@7M9N1<*Se2h-i9D)FI3e<(yhsF_I1u+hw?2&Ud? zEKd!w*{ren#`}4FPWxRI#uONMA!M{{AgocOx9uv%12IiI6M4YoA?3zH=vTKmPLDu9 zC~xL*y&5kbT`m#ts^iBO&34E$w87}eLoBz*&LJ`>Wk z0y@*tp5GRcnKJ3?rpeF!p0lqqetw)DCsf)8Ib~++%$Tua zY8Z&~eeD~!h)i?#Rf(a=8I3}7J+YgPY><8ECTA zw0|tzmv%7&;Ff0$DqHJ`yA#6Iob0{#GotYr0kU$hnkq}a=SChFX8W)vpW0ccZjiY;U z68CQBjlndOu{@t~qC`$YcsvrVU^Q(4P#Plw55*J`+gI1tTVg7^Q&nY~F)4!c`B_%a zTJLrsMoZCCGR3tbzQSq#e+;ywc9`E<4XZU)WGq%4QBAdEYv{bqw_!G^cHB^~&lgfU zrxy&p04w^N+Q`O6Ukm*gRO$;ftl`uQpc)Tu1DJa>E^%B$Rc4AKWEVqW3x;CVL!Bux zj*SlWh}Rztl57t27XlN#di1sj&5~$=ta*MO;?8d3OJf`Dq`S%SEGDrfJL%s&1*IJS zq$Wj2X|Xu9vSR$eU0O|_XN@}`qkyEs7Gp@lGL;LNU>)xx4a_Cv(~+6AmBegOHC8V& z-?u$SXrF@`*O#A<`00|9S>fc3k#_h})JiCf{kzrYFMYBj1h-ec=tH*T7 zatf!zTg4<5B81atOk~oR)|@eD`fe`Gt~jrsQDrRE)|IP5eNpvmR(!fVeIAiH-#^_R zfX2bAUT$14JGiEf$IPJ|p#-p()yizTj}SgWi$rDmML9uz`#T`HOqVD>Ifq#GFx8 zsNQ2jZ5$TEXVk@_>BMc!rr@Z5H@HFcrLQ+ITi!_zRBg>{7;7yP4{ObJ6q=BEcUFB( zU3!+6tpmK~6)FzG#;44$8OVx?)$-+WP7F`JwzeFh&;!pPrPJ`jpOR`Xmz!Yt<&jq6dJd+3u=a}A`3KUC0ooBr(y*nv^@`Ka`} zybaabhz@Y{DgKd93vG^3m=VK~KIhz^$F=5Vi`kDKg{)o`Uz0a^Xur7ShI`M52FaHm zn}zo~`dX*y+K~V9u58R5nFMMu^5h-z*mj!PaPOQQ-3wc@748`S7a*5H8PZGe9)Hl{ zPfcSa%;kujmu?pxgZ2+!=DG918WvdO<@AJF0xX}O1wwhnWS3ja%NB!-sM&pQRCj|8 znck4z0BDmCFmk^r#CwSj4UYy7w0Fw|^H%!XHzHp*9&6y9e7(`4cait1%3J`2$I7W# z+z;d$F$#004ST4$B@Dz_p`}DS6V=0^jXy_@zJ+I(dldFCq1}}Q@9w3AkM`K*Zq?fV z717klws`fMjEWC`-<_ zJQi_khjDM&ashSyd8+>i{cupSD*=4*^AZ&8k7|3Wz~1rTIYy!XkJjrjyH7LHi}HnU zZPMthejQ833pSuQ>vPNw9}#o;=4FLySK8uiKdtjhvb=fjUQ6HlxAaV8C%D-!XS^XP zqcC*p)8`1N5(RrfVc6$?3dE5XsUpr_+tvv-LIY+o!4$jY-AlT!Qb8vu1G6kVJ_~05$*>qc+{nSpSna8NnUUUAU zZCqKuaCZhb5T#Q$k*zE7ZmPX==vz;pBG#CMB8ZItEyGXz>&~j1Y(SA zKONfT%B3LId%5hflX_^8I8NRhZq<5s0y!BrkYM5&km?atNm2U8Neal-bfdlDrt~(P zoPr$(%z_93XkVAi0oC9LG5T@Wo%>KKLc`2I49-72dwmx*_9b{ihMxkg9s?}1RJ$0WfS!e@^kw9@9V21 zDWfG2VzWgxbWNR9Lp3iim}c@;U~l#0qABNK!t8yzQ)mT-9QTT&}BhxJU4ZvKx7eBn9;= zYbg}BrhMTVF1BS1rz$%s%LzG$38jl29n6wN=*za9m7h!2cLwbA136fdFon?m>JXde zLWy7I!chd*oCTyA$B3qM(>T*^H^PhB^~Pns{rnBQtmg3*7F+w}cTX6!guN-k=XyO9 z+8uD9dqkO2m^7I+$unVwK<_>u_ZnX$#e09O%BNajOuU;FhS8{c{Cxk00prEvri|+l zG;`p`)Xm6$DQ)ff+4xbi;2YN-|A5>%sG@0Q%6@-TYKL8NX`h;nptF~+4Bnr$I0Df%A?iAU7HC}w zk`$qw+Pbm?7r+*E1?z2x1TiV62|3f+7^x*hmxd39vG0FgeR|u=<`dGTh(HT?Ai$i zyw&ivvqEv*KHZCYjc*h0Oyon9`8y&_{HFOH+H5xOhJ`uje)-sHTIFoRoKQ^I686#7 zuq32S+NJ zjG{VeP6vOSd0>0*wf|VKgm40|=PFp_OC2E9WpFl*!5vVqcW}1>-#md}_U^_q7sM@F ze~R?y!i?fS`PRl#A9;I7kOau3@opbfaA-FDOe%3=LX{?P2xRR-_ zRX^am2q>WsKNDI7Wf9`oN6)+CsGUr)?=1Cbobv0!m#g#%t;CpenoG@Y2VNwWcJcVq zQyupSZ^R|FGzPJ3N7<_==)SJQfY2tsj13Lt@$4R>Wq+#`_5Qt91$pM;v&A@AQsQj; zn~(4PLS{NULZG<-UNnq1C7hgNoz+5@WJjdXYs!nR819DBqfjs80nM@VWpkm2l)`O4 zuv!|{O8`ps$XQY|(l{l~c>lbB7kh>}E-t?N5nS_FUjM^`@z%9nXCk+?Uh5=h=5Uw* z6@c*$p|%B#&&!>0X4dIt)fF3NEhHl6NpA`G;nWIv{TnQ7qJI3J?Ed6s@kaNr0~OD2 z3eTszN}tb{edy^YaCS;NW2sih7@4qe*{EA?3PmnMrbBMg%v649)5y|UgzfOhpdLt2 zSJV`ha~Xd}1kMW#5~X-b&|QdjMz^HzvK!rj?k zJ*c@6qo}GkV34Vs^PP@g{nHBX9CV+vJyrGEmkTD{6(hOZbfLl^QkDyKbuA92ZOTYJ zsC~#^9k74x$tWi~YqeM@GFghxgG$@RpQ#cg$iwjLTq+5x#iTK85uK&>XW4FuJ{+s1 zfw@XvKWX!=e~HL8W>c;@6COF- z)46FE6{IWfIX-)&n6L~C8`_53^ZV5F!d4ZHDg){6%!(1$hctIrTj)K$k{7l zL^U@>WHIF;q0Gt2$!aWRN`1QHdI#v7k*zf}AYk!&Zp1=Qg}<%T)U+}YZZs;8u@l5N z_x7Z^*v9}f^rT3?dcji1{6$#_-@3N6FbHB1H7qd(F@2v{jrO%(LiZ6pxnO#`StVn^ zjKB;c$lXcn1Q;G3T|whHVFuNcU~y(k`BX{R+RCW+e1U!zw$}X|i`cG-7dQkENq8yH zDJfPALXr6%H)6UlaN-@X7%(Xat|gf)gQ1<1VQgl^=d7sg+BKon{)kBpwgP^Gdnw8A z*?!8k!h=vt9jTA3S7N5Vy_^w{0H(g?=0nypEE4b^bR>bUA^W9^czlJ}Jg0HC`%i^r zVRnI%SVvJyZ9bDA87+F^aq&W(?*_>%1AbdQ^>t>{XEKLFfHZgy0t)n|eH_mzsti-o z$8U9%xJfBr9h7Ad14jX=2Xh~2QGSawp&Vl`ych)MPPa)} zcPXEHdn#Jh325g)-q6|-)!kL{hEU0lQreN8+UMeZ46@z&vO&h}+J`SbEP>pDB;CYX zo1qk@Cy-`0+fE-o?3Ly1hW(d#Ex%l$Thyc^QdO(s!HC$t3&Kv$KjpbtjnEMcVtdiz~W%P_L(Tu{m zTW?EUD$>h~cwg^XB`$Ek8m(Lc_Zq-v^rZ!9(u$@?jW_{t(pq=wcP^EA#Qj+2bg{}fN7t7Z0G&ofoD8-(J}%|Mrvi_^rSY)+~-Yf z3>^=BZ(<**Q8H!_9O0j?drzvuIHuy{; z^`!^4Mecf1k1df$gw|CT=zst`rJrYwO37py%(ZePB5YX4n$s6R6oDEmR}xE2bou~y z0aM~_Dc|MxH0{LdL~5jh9{v-NpNdr-0hv$1#)|HP+aF?Z>5P@R5_6I-BHr&#ObKfN ziF%xl;HwU5;fd|491V%ItJm)_L=eZ4~VljEsfHweI zO$l-zAh^j8qY-zi0?;1e4MyTZBh)I8`pN|7C)I_5H2%_nyyzT^nbvbIq5gn^gBq0Y z9l~K778ua0D~pGph?&FxzF7L8tCxHS)=S`;5%+XTgsx|jkZ^?f5*F7v0vc-E9`SXo z7~N>*bIQ$uxcMWr@hJxQAUhK?WWy?GI!8@a#rTW1^%O1Oq3^tqs>=$K)ovXf91+kk zfabY6=DMt2Kg6rEF+%M(QtC@`kErbQ&ax9JL<1@Y1GeA!9?J^FCtD0zBj22+(1Wro<{00Tx^ zH3<=#Peq9=wT%FW;d3xgaPdcIj*Z_Q>ied4{2Tkhj&Nv=@CjbOtKg^I^fV|N6fyQd zOg6kT&$;O8usY5~@l>HJopH;4%C&nfEvu7WwpUi8FD@^PAiZn60Kb&WA9S`$XP~$* zKjsIN(R~j{3vb+HSCelmRv7~cNoBd9hs6QOKgDZgvSILE;X_)B>W%EA(L%)bmd;w} zCBb=`Mu-xNr&~$TRObWSw0>_3$L+Tqg4ktke7pzyI6XG?^YxUCI0`Qz9f9xQx&O)F z+%yM*WQy;pod8l{d~W$QKjw|)!U!{RPZ-mVT^3K0UwIzMf~8*hg!bu?J=X|4tcc9| zC%r{Mz7b>A6hMnz^q}J94;bT~@RSGWKidK1Edw!aSA5sR?0xy!-hEb?es|s~<9}k} zozdzyN&-`MsLye1^d(V9A`Sq{k^&~V+BcVn zt5DcZbL7aTe35~=(U4pOFxhp2Jf$yr%hFrAbKd|$893~E`mCom?%hT(9t+w1d zxLi1>t$jxaYtLQr@6GIzD!#`xewvQv+8>1bb3SjJ=rU3Mt{j9ov+VXG(ZP3gy z6$`tlSJ8++PR-AaRk!;-HE5HnC-jo8zM_A5+Rm~(>p1C#dua^LH7)He2v7}b`&jc3 z-Bf&GCAu{FsWZn;ZJcL879Q>Ufsr5fT`-SXYN%>GqQp<5HkC18B_`!T=A(gO&Xc-7 zu|!fDeWqxe)Z}qO&6?b?1mSR{ z>YUeELH6#l`!d)KW|1*>NDGTVycxaQ%rtV<``r^1+j(M_*3zNRErsB{V9?XkdW$g= z3A6-u$nkDvA*C!v=D*2xZrA9SL2YsJI<)8NL)J#Z-tc)9(=*BYwC2+Y)1yz9FM`F* zNNpmmYb}=__JY z3be!1kGtaKf~gI0E-V?G!*J6b_=i|^UN&jD(e`y5**Ry{Y@7+7EBN)~m+Q>w%imXr za@4RRi=Rw4$zm6?)0ecfeH3`c%??@?MRxNv!{T_#L(_u8x#!!S=1!&yTQyZ@FxaJM zP=Oiv)hEic!5>gh!{+kEI>4ngl&GBPQ<)epOMT+^-hIROB6wkZi)NRu?6cF%U6vm6 zPo@@B`lB&6*CJ_%Z0Cj-^QA{#%s0<=oazBibZ^`mqUz<$1ROHg-;){GcN#DHmP z8h}!vFOV?%lKI6ybsgh}3u7zxK)%SiD{9R=RG)3ni6=+MR0U6y1mW`XnfN5!I?=s* ztvYL_&LN{RJ?}c4b}?kft_EheEn#rM5AfQhbPC1o+#7T6;Ux~gRw$mp{D6*{Ri{wF zt57b$@!(}dY?yd0MC8*W@Je@y!Kz(?Zs9fmob0H3d|7}78#Dfn+QjE)b#4?&Gv(jF zrE+-Quw3Fl9?Jjbc6*Ga2JqX0E{;IVb;jE03iwL{ia9bRU>R#HtgSw1c2Mm!{Rpab z#GsYXDYg}5GEd@biE*aqY{D^jjdZ5!Pso3+SksbnS-rIHrW`jN9=%=gk6v$h>2vG& z*Cb`(;Q2-NjCeaNYdit@(b1DWK#yOpWI&o>d>w)(w;T7Cn3d(-u99#qSbOpZ#=iNI z+#sN%QDA}tjFqiAyYpN|e##<*XGt#Qu%`Us(Zhq>gmY;-IF&|Z5iubgR#p5BFIzRl zJ5P52eNATwPRE%6BVwDxx$yS+=If zlorHy+n(QX&h+DW1B#?=;+vb?D|JUZieNxPlHt5T-h7j0J9e{- z-t%^>VgcfgV!y|mzh(Rd9OI#O!?XmJu;+H!XGke>N&KAs}$$SX#6M{q|UND9ZNX=E5?O6G6qw<1{(aRNmi^h z-_gW}P}yB7)7pec-c8P^C%vd~1eM6Jyicdj2u}Y`lH_vo5gmZZhS`@Uh>ODe`rn58-Y*J&rU7L+=*)&_gCE&|LALwiA+Ce4TSHdz~|zgk$#cXR68tI-?v$D{ZD-^9@#}NY5v% zcq>=Da_o&J!*2`TuIa|Y!%FU~Dx?uBj#}g>4{NiJ-3@wlE*?q7@jhKQ$DbsObaZid zVOC5I?=d{e9A*5`Wy!;%Et8WzkbC0{v=c1Kba&HDBeyn)uv*YvUKV;$k!-oTl7338 z-`-lJ7Q1)b^Lh!UFpt+MYG=8B;HFoxYD~A|RcX&4J1C_*2AA4h;^&n0Zb)l#ep914Ck?!L#T`_i(7Gx(|*YJGiZNl z6~vk4U#j+~q%ZuJ5tAbF$pe3uPg~4JT%Nyv0-m)Hk_!liw~oS|$fBhM{bcf=mKu8= zZKWNTa`6F0(oJAkl;}eOvh1=YHEXwYp*jAzIe<5g$j@oOLu222Z36FjqSqBo>DLt- z4c`qhN^Z^zkM(uU$KZG)b!xwS9;Lp{^6i^K$n{&P;S~3n5VF{bc9Y%kMx&m|hn<8r zw9j|XXqg|ztQ6Spq5)n4Zgyyr)d<_TlRPiZ0ZvT*Is*H;xdGSBu$y>~05Sm*R}Ge3Wbn7#z(Vv%I-@Hx2^oJClSKI?&( zYs66XiAV1BWA!N?tT>JBSY$XlN&{s{9hSt`jd>aI#tdhebN+U%7vf=3Mgypw~1`JtQFlXoyPN_wHE(GzHAoEWH zBNpqg9CkylEyo~5J=PnG48CTv22!7SC}j)cLcP#x5n!vS>Y|7b8H(iTbqXLb!V&4 z(z*_EZacN zMT0lh(c#KaRG7Ufk0|A)U|~2sydIDzL-nW17{&D`2MKo1aWsTKJEd;RhtVmzP6)=) zj)5v1{6yopCCgtD^8vET+RbCL6xwHnvIxZ$RS`Oh*Zwm@O=sE0EZVJ{ckD$36yW&B znHX)7nY#DwG#oo#ZnjS=(^$51u<4)oFNvgXQIR<~Y9E{j zS^9&Qnhkrx4rC8bQ=^86_|0Qr8e|Bod;fZM=|@h%gLlS8=QyYWw7z&%l|Ez=OivT& z0%t;)oXZpC)fVJZ9zezn5$4e&J%oA@31g0l9z=kS6t|=eXFjKO@$g|Fr@*V;tJ@=9 zRmL%&K-?)3a=2c&3o-r7Yw%QEvNWtYGXz@n-6>+lkwzeXK923oFn!f!`CfSxsB)m) z8RI&Jf1<{UW$-uJaJ#D=#2-*0A2;v&;-Rwh*!l-n(@f{eeZRqa%3b#QEX3D(MvS=@>4r}7t))X( zXJaImuoAvmsct)yJ4ud1dc&4_@iNY|{W-}DR+&44Z-m29#S%+#fQjIIQe}y*D|{(u zx=pQOtC=e}QMP`{)#HCz0I-=wfgfIxL;=;f+6HYj3f; zsds(Vladq&5`o)_1{RTf3zb?%rZa7y)2-7UQlV+b?suj%r^9mQC;bwY^B^X0Q7zeh zS*>VyS`^+PmUOUBttOD+P5km8h~9|D&){G<$;!+>{kFhFI$)>Cu~&cY*8X=|To;H- zLECZpBJlEn=WGXOcoBMn9Yo&cxs`8$nb8?kXfCmMq|>|AN_za4CY$7W^&!FqpJteg zv~))Q*O?Ky)-WEdp#5$}kL5VbB2P8evSGb(V|kBRA#*g8x?T72B}t|BSI^2Yo!X;C zW=zMj*Ne$e6j`R}7nN)NFJi*QwI|mGS%0jfa$J3O4X|cX7Nq4?&pEYW=s|rIKLcYa z=SYK3l?lw}P+=ohjK(%#S3dRZ@R_{apN+f{U=6&YsO)=fu}f-nm7`#-#i+p%m6aY* zE&IVx1U6K#OUEoL1J;?7eSP+r;3e`)e|vm1xH0)0fB!mTA_w{9o^yvmpKd zsZA~3@Qj4LdnmJX{lMY9qhG1FS|7zbx?#WT*UJbIeO^&LR#h0<8l6x`#8;Gyt;?79 z9kkfw$(+;u^Y6LxGcpXWA_Yhe+a46)QBu^X%|?Bm*N00X*oUl9i8GS|7LnNEpfN`y zssjF3xWbeYyvDcGNn_T>A$79h#n(}FVj5WE;N-iGkKTX18VsEbwSEU}JF5stJG)2W zUL1cBtUk(BWWZ2+9PxFZh-PKP{)=nLVs3lV$p-k5gJ{>ud|ueHW9_a=F#%kC!;qo+ zDx<01|ErsvtqXt4+fj}G1b4vKZ7pB@{n^;?o9Gc+t(32QOYPYNjU3MfghYZcZ*DW{ zn6G)^Can(6RO?X#wBg?RBC-x1$j_ND>pD=fmCKs5*V$&3|@@*-wP56tV#BWHW0^jcbJCb1zq~^GCscTopA-+{_7*%g}ukg8AY8_inR zmc^arpNhCgbp#U1N7A&7E-5V=sBQ$NYInuL z@CO?9T&6Bst!VN3nmBFd&w?u(^MeA!gr|h}*K)xyt8>dqzQ2(TR!?a^@xT6z^RVnV zliUe){*gy|dF~L&qB`9&r#SvDClK&RZBQq&h`b*CCPL?KZI$^~G)KO>YR3Bus{ihT zZO#@{{~Fqig@0c(uE+!4c7yH8{>_-JcdRmi=iiS0YT#8e<#KAsJ;s{FeC?;;&1RD* zFOt$3g!P?0ZBC=_N^U{OW=8b%Oi8Io%B|?!8x-#zerZ>L{9>(oGUp zs9e6~C8+N;FSV)vJ&u;!b@Ul^rNwrJX2k_rX)$(aOtvkI1hRbkJh`Q5_;WJ#ihtt2 z>s89}rStODOPdeUVO?P{Qn1GTAIREA60MV!aJ`dZ`5h@7p6|m;34?-7e_s2(TqcT7RG{(ppy6po3+9srgPZI6iK@Z=tIvnp-O5l3 z-5y~jnFOkw&3)2hKv;^T^|&on+5zzgmTu2pUMt8S7@piQnrLV^!n2cbVp7NG^6CI zaeT&tcT*2g6H~v;WX&)K%XbP-CAJfC!_8L)u?%O>>E>GMHo9M^>1ztZ%kqhW+gXJ4 zVgcGckW0FcwXj^-6ty>%rD873fHT*Qh-DeJvu!+2=FEVa0Y;lQ zI+(X2%>ipdRf>$4Iu3pgB3@IQ{4MW)w@vKbMBc`1FHvNCa!Wc4j|5qXZ8t@X!*m8^ zK*L#Sl&~Bz;8>i5E2}qz={rKfurrm5)jyWL-x{T_;*Qut2fC{%Ux49g0vr0+=r)`E z{B&pAz}b!8`46NsKLBrA7BaT;WrULIb6}32xNivII57!pqq(Wi0#fM{4@I>tOHgT? zZp8Csq^C1b>49!5Gg+|*<3ZGCn8Y*}^x%a!{hY8dR!eFI|BlcFSdFUT| zn1j(~R0`ofaLu2TpEsn5)Vrn`=N$LsEsN_|)}i4bpxk>x{bz7Qgj(L1lC$Ao?e|lXcA3$ki83Nh`XVsQ z==2awxGCDd{c!Ek049-t6LtS^f~)OGQz;?Y4{ zdexF#sij(H^SnMk(>Q1G6E1PL+}|2F(o`xVcKVZ5v!Zx-MLtpGCm>-vb5ib{W=WTAR2XR4ZtFgnSOmTcws^eT8fI|Ag zI4x*L4Tu@J+im&GQZMr=)Y#7j*m3k}SpG2Fn@u1c#Jmm_XZyALMN1ZM;*8R@7{GUgug z%)$IAS=bfUnC=>poiLIrSnUCOV~r99^{TL0nA%}Stc=)|5vhgDt*5dH+{iNmvX~hO zVa8A1kr1Y;KU>Ou=@Af$xN>JnmzUq+F>hQ zzNkMoPSqB`1m>zF?Yo41+Zo1yTM8&w5CIufqwh+f(LrnQGPEO@ z5^cZ{8IK(cO-;!jtV)v7$+6S}t{^a`@szUTzDFFIQsHlxkZk`-2O#i#PGYKUAO_wO z&ncv1t2+qMmm_py6Y}oBE|nSRGmk7(Mss=RBqvq@G0eh7Yj?EXw-=(^gH5(#y6~H# zX2{c)`yCc$^vYMbT=-lABUD`S0z4{U(Nj+-i%+(<*rh6moF4I<&x83VKl?}~!FvEHu5-ruF5t7B>LlWR)@(DBLBSgo52-}@+ZevJ&Sr-| zLDN{k3VyRP#i0Ap1?581W;R4*$ryGoJO_{o(;U!)hHdkB)n;*z;okPF)Nk}yzWYI} zqemcB1|50TP{aXjRTVV-9Iwu{YD#68ZVud*&;PrT5bb$nZYcMGJ!B2aLo(sPTrF0X z&M4?N`Eg;=ZA8j`L*6UW2Xvg^gJkhqvz30XOVjYN9t;*NR>Z6SgP@ z>G5Q{4=lCmcP(|;Gs07y$q(G}gZ@-mh+UI<%>lzDiaHAUbnp(uW}@`5SEndy!)G)4 znsoAW#v;3TnNgyFs`QG-}#qvO5$kJz_$V4_1pC(c z#O9A%vW&&+dFnehdB(vDHmiqi8sqIA@gxJ_1Em=)1~)EUjepNd9C)kKi2Daq(9I>* zV=kp0c0=E6qWh*`rgQx!H+M=8ro)O}oOef+t6r#UxXC>~EHC`M+-LF5Kh@wi`3bLU zVac2ouS>Fwq#oBJRXX|OXD8b-7Cp<$1gFDK1<4>L5f0J+AVznM6ip*Do}7qA7XnO{ zlUoy2o`}E&>5)(l&4+=|tONTedl1zFM7(aiS7jFGE$<^#{>MHUCxRoM;b}|42YFXv zm>iYCvH^=zcczs3km*T$XlV#{GKOe9E6e5c0aL+M><;f|)#WLVk9~kXmi9TgX5_`O z9{oXhWUM0h6`Q2|v3hsPlQq(dgN>`~+Z&$G$2=Y{|K?ImD%n-PzOeb+23)Cqef>Tx zo#WE`V|jLnJ*Q#8R9QwiR+pIk?J{n$6jSD)7@*pALAD0r++tZh+!rOa8?g_Wn-amx zns`_Zd^)JIC>=D*Eiz7T_7k}K-WsV97=!};YK;quC%C@1)%MU?S;*nGScnrPlTIgB zMM80UZ4qJ5nF)(uF(Sd{92>XK2reS4i>B_}tDpS>dF6n2PL(~ZvGuvM5RxDJ1}`^S zVgecwDG9gB=33G-iws7ng>nKj96xUZa27@>7=biyFn}cVLE-WQWyndlHg$cjDwEoc z#!i5LGAS%%r;4Y~Ku{g==x6}om8)rC^iFZ7x9Ps`)|0Rt-eDLpuN6)aTBv#0#w#pk z)`otNZ_IEvLMPTa1DUUoz7z8O0VX&?hiZ3F8AI$EPH!09fz=0XY?kLys)rud-qBP{ z9mN|I;lT#OmaiVCSWds8eYDTbTgNA$#q*dTh z)FuQ1#&G5Fp2_po4)s;mK<3^?X}Q5DMOWc8CFuXrbl&f5z7HF=_ogIvh`nR0JriPu zDy3?KqN+lws4BIIk;L93)~7nG7S+~>5vx{fR9hs}YHPM=wQs&ZynjND<2iCa&wX9j zdGak3L<2W9^34n_fgn>_{E{h6uCb-qeRp|wkBMx{tqn#FKjjbcJI724b*W}!2W^!A zl~|Ea;M07q*TfCtNw;}MoRa)4-)FDlZRwxP zva7|WP$SYv0CM{^TE8ROzx|sG88E2i-Lt0Ubu|HJGRwvPF-$0<-7XT%Jazu#xE z?_qS(2YW1@T)+LnqIs?r3}Po(JMzh8&jE*@sPPZy*HZzbCejjBg;ZbY6j|OoCMBl) z*3XFad&DGCP^83VeJQ0bHWNm)Ul5b5MZ_bv|2FJrn?HZ(pW4H2-fs**iEpW6e>YjuM#e?|NPlT2*iv%`>U! zZV{6(!I^R}Pq|hCKjA!j5=rx!Yhhrc@CK{pVjGlM#$C@RI zA)`29&WQZt19cOB*04QMtsfha4>HnN)^I@OysB-Z(D$A5GzFq^F8=|E^>P4vR!*%| zeEVph)r($huI;a7hf~_tj-moPexHO)|F;P(rui~CFl3}Iu1;T8R2q6T?)*Z zT}dGGP485W%L_-RkWK$qWze^XDOTdM*I-`h{QUZ?#VlJq!7>% zKdkWve*;SbA4%S5Uydp+bAPP46<~k(^-sk@_G6E9i@#~WKbC4p&E2~ichS3!B*Mbz zW?UGVF6W4~3NiIATPT39pvV3t%GE>?rc{8lc%dv^5fWJ+Kj0Fa~aT4S1EI1=qA5k8P$Qb*LZahDe{FR-+f&-DgMsWS^qfX z;{uPBu~)8R=*aXRCwIF=nPulj0}RG_r2xg~t+eB|cZ)-YF$lXeoERiKM0V>zGP*8C zH!a34@>soMSo*YNND=rhbgFM$l?>k;o7^lCogXxGY($Qthh6$CV*xYwgJxCE6=nVI zV;*lvMdsxmYkv>qs0&a#i+Gw-=dF8G9=6^Un%4}mcw2q_S2!yzaI*ar6(ZA!PKvWi z0EQ0wK>tB8ggA@Da*zm0vl_L2Zgg+8@MuE#Q`0*D_qbnolJ;IhwvKJ5y;@xcmBJ#! z*iwCE_(+}HgniE-zsC4TPd`c3_yem}FtZw7p^>^C{LkG1ck&186lx@<2nTMny=W?6{2)SB zQ2#p=T^F^9rta1@N|CC7mB*?yBz}uX*v=oNTR+7o{Ygt2R>?=$t1zj!t~VBHaA>+b z%q7_xRY}KL8D-jiM{3CC$^iGbK*33jjh6BU1D8 zDKN66;bC1$MH`2R-`^D43+oSg()SKI=|$h`Zmrn>?FGLc@#$PUzWj4rZg0*wv^>8X zl9U$IkbQSKbDU*Ne`46OBrtwhhihM%>*sVzg|)tjui+AWUF+!Xh50|lhj>KEkocqg z2wK(9I7{{c+C6YLj~cJPf>rroC}e-y3^Vv&=vuM2Bdd1k&2-t>yUeiLwIvS@FLx&& zbrpo2cXM4H!Car;XFfvYw3XVSure`7{FAb+;X%=!(OJ!ooQ3QM5WG@Mh17hDpM-?S zf_g^EIfy>F6UIHG%1&Tlei&G6aN)$guksG6Q80W4rzmFbtS8j35-sJWA&W|zLCoLu}sgPxp-SKNEM z3;lg&^pVvoqv|%K1ZmxrWSrB=VG^cq!&cG_6^D#r5XK^^#sBm z{Y{hQ%ibk$$j?N9%SRf|aR-+cM#rst1XkZiZi5L0vB_c+=CC{jB3;+t5c{EE#uaRhX(%zaR;EsK_8ra;Tj zS1jYWl=kPr%N3}CCM7a!|uaGh{Bw1zV4uH z_GISCc~)qlGEhzzXH~OJaQJsKCjaur+Gr7#Nh`t#$v;9fsff=WNgA27{;1Q@2 zyOZj_Dp&JVExMcy<=au%5sptIOp%f%!FBa;>fGhT^NFv%L`K zn@x1Fqf`bB5fuT(neqyffxrpyk-1jw`}e`l^^2WEd$ni;78%oh<SVoNpC>+Mo;a+i9O`O}^@Tz@=)k0S~iXdIB_QzHv8 zgFGUSLWCT7v#jpxC1$tpS0nk=4z7(v-NwB;X!ERE2e2yln`sZB=SbB1B!8Axjye0D zOp9Up?!3?|e8B?j!I%&CJmBmmd}&p8kDW;0koe)W`L=~c;*wWgds9srR?F$}cvD?A zjRJDlv13l^+A8<~E;2VquT4MP4J=fzfUn2E5v0xh zsJ5#)B=x`p+JbcP_ZKbmjO9MB4%EL!yfro#E7Kko4~fA=L$c$Tuy_8J+2)M#wRNSd zr8ipL_ZW|7nweykuCgnEX`h@RK3-iqLRljunQF=+SyX*OMqZY z7S&H=qrxqj@KE6tOBR$I5R77C0vhDoD#{2k55)CyG+=l*IR^Stveb<`U53nH1deCE zxXGkIrTeF;o-9(a<*!@t!fguVSW&`0v;Fb5S$Ri0mxS>J{A$~fo}wnO@mF}M>{)UI z0&0_SQ-_uEIO~dNUcCU1+FeW_wSo2UdDdAEj^_uKB;I`;B0nryl4nfSiX3}?t8jtgKv# z!=nRS`FPN`>CQbQFn;;uO6h@SzPqKMdV&Dc>?0SurnTxy7=Oi~9(>LZyI+^=EYg|1| z@A+P|+J^{RhGP#52*Tb~sRvWeA>SCUJ4q+Fb+*{Y}w#l)2@t?1; z^v0nv|3rVwpcq$4Zu`(yUQG|QkaQ`+k>J3*<2NpKX0h4k#m!5#9V7<|XN=NyC(wr0 zFi9}a+vIws@;plmmXh?wg$F5R*4UqF)LUj|44LxCB1|9sC%P8-|6PEv`Ag*u3E)r! z_&^Wc_+n<+WWZGxCf*uh`UY7V(2CN$v-q@4bny1)$Bb?7dObb@7BB98VSDXJUK#-) zw3<>j>*9RGwLW7%4gYFOc(pjlPMK+WxLqNN?T)jsrD%5I1-*n1wjOK13bz?BK!S6_ z{jGK0?LcmcvTvoC+WBH<`2oXFeaCxa?_5WJDHnWP^z#@oZy=cj=uFACOmo`>@Z?s! z7p=pa+rsKAb^b8a-u7b`oC=_6RsPCSah@4Q=~$r#2z?o_1ZN758Yy|Jfx!fHkuOFS zl6panZBENv(0m{%M#OmihokI!(Po#k#}~JRLw?)({r1kryiYW{MQjMzndY7_kqQ>p zKn#KIZQVaiQ7*cN%<@XJx!g3+U=|75Z6^CIqZ6E^DyY&MJlYA~7m;wK*Sv8>j(;QX zbFkr%d|0;f%>8Js-i1Hu+}U-*-mw#N!i~2m;@9QXMkBhbXnV@>rt~)uXV!LCRbmcZp?}*m4XZU(U={Fiafz1HZAl^2Qfy&(WGsnp**t zc?=E?D*~0Dob&xUhz*LTuo}IK_WDjvrqZhKkbIV&-T)dwV1F-t5@8Oiz4{kKrp8Ix z$D?%-g7n393Zy?{@yqBpI;;Nb&0R}_r)o+-8lfg2ee0^U< z&5+(B95RtvX)JZ5VMUkvgy`#y+UNuNXX=YR%jJFnD!Hna9X!V-59GN>9{4!RO?&A2r*zi#3yLbcx>q8f^k&W+v) zlIx4Twy#;`jC`Kx-?6JoMHX796EiPmg-LT=?k23`cA-+KS411K#mWap?+v_f3y*Y9AgP9iNFI>+zw{6O9sGIsODrk_S~i%LF10WG1RqJu1onE*+_&5E zmHltWvc+#S?Dnev8}gSPsY5$t&tBUEg;RVufO07QI40LcU`IG7vZVLvc$c#`hs4~s ze5SYT&yb~c!{>#DtHpO>iZ@<=P5p7@Uike}&j;3SxT%{tkre4O+gL)%E2N?f7{V#J z6J0sPgWFK`d(KN>G!bbg;GH=nbGTwzTQfp>wk1N!Fzia1wD87cuplZg%ACbggVn@$ zAc8d@TE8k0j7wy`{K_51+1#bx^#~N*TvL|UOCoc$ohhfZeK~ve;Bo7WGRJ4+hq8^> zH*Y`{uFki-R3GA>GM?udhyJ~-is^v94#)`L`?7uS&_Fsmhf86N(R-7w`*_7)s2Mf-#3`X0MOnFEO_J+DoU?v4y?9Fipjn#4A1SN+ocR zco-gpgByu4oH=ucu>Zp~##F+CfS!#cS*XCKq z9rMlnTAF}$V>|?oAV~+-zPmS;?D%gV=aOFd)f7qE^1nXjvk}#q3Iwx$h$-|$mK|yQ zRwX;#iQiXhpIrHm`Q$#Cw*)NVaRc&Z6B%7u(s(raEZXDWeD36Lsb`}O<7VStv#^5S z9)vqvao&Cgj@x%2Fz@WH`Q~wY>A^eWw+f50kI?Po{#7BclMA(Ir5g+nS#H#5A|G|a z{`u<%ix$bnWR1%Q0BwT(Y14w&bh+jpCDjltIUh-nf}Vcio^++w*za9z!>+N82^^+> zMFFi|7}j`dK=S~~<@3gL=SC)T@(a7p9Di}Q0FRUIGCmyFg;dqV3VG^DdS*yhJqB3l zyhGt^#q+3rkYbw2Viu-deRIvK@Jkx!IZr<@Ro2)DQOC+0-P7qC{BaoEAmDTh*(-`I zLJQr~%*du9pi)>K(R0)Fjw}9mSF@XF$0jaH!6j#Py3R~Qa`--v8&|<>K5%nc%2n99 z7P6J^*j4IlP_VElS)`eYY5Ek(;{hH$iooXYl=XP!;!VpJm#ph`BE|ekGNuf8c4QZI z;I{(u<0YWdN_}W98`D`rsfGuC ztyO8k%YvV%tA3oFp#}sih3m}3qn}$o-UfT(G75kkU?9!R)f4bHFmIok0x23Q?Jc@D zAItILd70`?@CU^yq$DjHOuEphr5YD0FP#z<$8e(db58lIdKK1dFuaW-76F~-KC67) zJ0ZB!o!hQJQ8TjC{K8+ISRbKQw*@l2VbUeLK#Fc7N%P8mJI$DGGCrrsz#5BhYS6OF zZkgOw;9PXd141&<%Eg4^!Ig8t$IY^)EHeDuQ7VQ~k zUmK|XH+@5Yf@OAp+Ae)6-pz&$%vu!o-XLUjI18UtUhBCzb|oK`Id>eM&eTJJ10P+z z*IdQrqrxMVJjJWpXW_%+t_DJ|Oe;LF*H ze8$PM9`5Iq%x9tf?X)`yMxly2V@bnV>?XX`?!8^leMXl5**@NuOveK_GGRkQ@xoif znTfn93*2)#RVShi6>OPM$!yE=d|Xl*jhTQhS12T(!?5R(H1)GvQsMBwi9%4dNJrrl z(FGkNhs#e)1yM6R&X=zzAKUz=uiya(Rq2Iv;w?qd<6gtq5tI6S*T0QrO`r+^zl|HN zP{F$3dJ&0uPG@tbu(44YEQzB~piM?x&2E2I{?-O6kSB|O=B2xNeedx5`~&%`P7W&n ze5F$eyd#P~!%L}uqlYTHO`8^Oz9Wf@Ns$2zKmuPbJ)T8Y%vtlEvJRC9+y~kTF46>8 zGRg7^a7Sq%Ar`H8YZf7K>ilxRfB-41&mG3>W3tA#2wGt;9tyScpB<$zYMz9Y`+sK#MubxuA;c? zZ~vrcgu(C(4sbS}VcVw{BU8n6yPEy&Pu^jfs8B+Xka()C{(Y`Nsa5-mgE_-_+8O5SYN*PZxHy3HP2KTHgjf$ zBJf!h^Q_6Aue_D3SZuXUyu%&l7rxqOYY6MwpR zI-`xYnf#!!Smz$aW8&MOUg>u&sJ6@@cHduWCfxU53kGl~!>x9E8KWl5-BgE-iXef{ z{)LXTF4mod4W<9hWSz6ML0@rjn1c$v(wk7QRgmN~F{A#r%ruZd-p_|&-&q1XGJhx0 zHdB3KnqtRvnI!jAtc_B|F#;y`1dLC3^~D=5TLQM^{U@2YMc}{-!1@PaM)sFqE!v5Z z12|G#sR(KhoEcpT5hwg$3MMHg7p5>`miA(H(49(ifPr~!E{z1sCL;anE|sRF87d|i z(jEUOp{dylF0Yv++B|#qCHY%{!1|Vp2`H*HP1s8>d^)9yhJF;BL5;&}Pu@Q))S0#w zqWzQnoZM%t$l9fE#eV(5J4&CsU$QFDfCMUt*2k;M&ZQ3}0yzzm)fGUzchDn+PNs^j zT_~P@BBu6CA7>A_zEf93V>Tc_GDVQ2nbj=o9&WRwK(GQk;j@BP@9;3$9Qf=3PgWKH z0+lwtR=b0T{BcLfm@Yb9#@aACJVeZUz1F=w z!&G2bwa)@RfA;A|;&&4&e5}@!+Lhq#r|WqX>wwK>7V(v`to>KOQIoC}LIuXlGhwF! zb0VA?oE;Lw3TqHhR$GaOyUtJi**WLO#k}At@qM;0B6axX0}Z*@P7_o_8&c>XdS)V= z5eiF$t&semK~8>bDY!9Osng(w>mPwoR)3tvUR~C|_?%Bt&|((aH*EsG1f5UP3!wd~k@6!U>~%^f z!|`>+?NypOz*Kx8!cj0ddL!Ly#45Hu?55b|rogn%gWhf^jSUV$rR0AmTTwcYa_Jt& zsSS=0J#$V~1gTGknOZpQNq23TZ_PEZ_NmEuh|1LS0P~}Ecs@CFt|-K~pQz+~$8*7Hw>VY%VY4bySSsXlI%@}`aqh-=Y7cybR<^^(}zH*%mUFq0- z@&I^%{uDKy?Y<4hBo>e`NJ!F>qqN;YJDx<9JV})gG&+v*c+JRu&ssKnH9s!;)J@ly zE4(3UZp34~9=0$h8L=f@>9@R9og_nreyUz~rKW};E@&8%y;WPr{>cBX^;!f zYsNiFBsnqds2g^88vC*FPbdY0LmOs@I-fVeZ^u-S2<0ERaR#!U3?*1Iy9Hm;wSP#f z5e=2g7BxzfeAQLxw&EvKLH8OHCro*}N1Ku7kc!F^VAC#O>1@klKm>z;&pMnPySvj> zdp0z2s7OvONXC#=^2>dv5fQy~U-68tr5yIf%nE_C5{BVm4q$$9bI0tsQlBXfYN;YY z`VG&BtNXFv^WjihqU0ejrNe8~-I^qg7`TXiDc(0Sc&cX!Y9*iqAGp`k_Se-dy>kf0 zEqRS<{Up0^n?<2GVe@70c7$TJk7N>=Jres-;#e~RK%rdWWi$O-)%m48ze|oY(6-@l z_*H<3x{LMJwVk^~>d z>Z4j_zBD5_ZCLoF?TY&fAZeC{o80s5*0M7Wi}C>g|IUop9pjd%F23G<2xCGSdfuHl z#NlW7JneT=11?PiTHtsvYoAVIHLMC8vJWhYw@Pc_7xIYJ*6*5px$T#6igKBX+!-9= zf-%M5ec`x7g!PNK$08^ylVUp}-|Nqzs`z?6s~o8X3m@xDAvEa$5SEhyq3pcOG8v)G*FrwrEn07#}0jq1KAynxin<|+ZJ2ND7YR$?~kOr>0fUu z^xWoOBeT90=R3a{;Rnfzv5O=pQb%Y2m<(?$uel-I4v;U}x|i?tBu%egMEbGE<7dDH zT!z&*Ko8XurFI8OSAZ^lw-ff}d7MflQsZ|}9VP=zURQsBBSx?|E16 zGCFHb_C{EK3=#Y843NC&C^aeX7E5$soI9gu&WM$@^H57c=RF~N5bsbGWr5?t>nvMb zif7l~)|I*G7qx0>;;rd=9fkD^T~;RFPB#A;vi@9;bxz2FT@ZrF67fH@Lth7FH#*U01vq=BMTE(1w+$ z01==nJW>5=W4d2zWTuWvby7-iauG}!L>J2+zkFBxzDMYUzo3726?Tz0q|xi;s1vhZ zIL?{}<%pcP&)V+wY({v80`m*flqf*z?3ZF(3rNxRcgPt6K2`UG-O))UVu_&qjwgBQ?|c{s1O?0dseA!AIE#1>$)k_2t5u6LA-* z+K`0i@_wnu!*)+1!+h>)`sctmv3H8$i6B(9%+*_H??6No|l z;stvsofeP}wNnHRIXL$;xu3iIQ~&8xWJi)oS&JKIjm6aGJ5AIR@v6qXO~$q=1=ivg z068J`bl**NKj=D%LHHj>JhE!}u{+BJA19*ti7aHdm@X@e4&5}6F zk6MqB5OG+7CbO7X{u+GUt*pQcF;Z-YxHF&D6ve>;J16>2c47Lw7 z$*{tkEE*p1etP_!So+XaX+M3Ry|1dW+t1ML#R9V#{exk+A^Xex6Qq{FXDhj7#urJJ zsW3wsjHaghJ1KwAAizSGx?6=Zm1VPNc9lOIb%{v&xv$vhZprFDs2P2|s=ap%P~v;- z*x~~IW-U|}AYoUN595k#TD9T>5F(q`5?0JaxLzly?^1!0pkl(RP9_05wR*V$0a}1| zdp*tN2g81@6Bdij#Vt;POB^m8pr4xw)(LDWAyiponFUYU@!}*MM6vW$E7gS}4@^=Z z8=4)o)6Gv$xe9b>;9AJ;NqO1nHic(JkJ4lY%?h*PWp$gfV{^il#I2#?0k}&g&0m7r zmFp5^OQ5FT{b@Y(VsdH(LWJa+1N9t2dqhndDfW<#QhH0|^Qk$VknS=v#60WF^QEv{ zx62d)+L%2gS}!D$ChsToX>ZkI06Ct7A-I0!XNZJ&p4=+2N-UQf2Y>?(`OJZXKxs{l z)9b&HGF+BF8nCa=6)Jk%pHcFAvxP)_z4{a`xZ{mve&xw;pR3+R1L{acHOh5Z<7#HC zLNqb3yXtF6&81L35j9#=Pim|YSP6>LyO8@0-PD;DTft-*lWJUFafl=Zr0eGloo6fG zq~WSCV-UJCo%Qx@(SJp=uuBJeETh*V0t(?if~lgQjDBpz-psQuF13a~P$7ql+M0;4&#dXcZ>?B_IT>aIy)aB~cg{;BULh)!$ zPx(6Fv+sSW?^#F%D||6_RqI^juy5qVLW&yQ`K}0{eX;n13jFb?1=yLGyC`4unA9(RmRxnV=sqYQ9smI?2k7Tz zN-*CxD86uA>rZrR6(N5x^6pjxrBr~$LHMa2{9|2+1BWB_0F%1zZNzYkl~aOtxn_9~KR2d`XR@o>;Osc+h5o8YO6 z9ue z+r#Q!NR1?AQFMsd1N59ZJD2g0dDTk4Q-oHU^d7H>20>UIdvt94p|uc&o~cutu}EhW zC9~u@jnd@ISxmdzDctnXH)D>UZS|`u6gPKAk@I57Zr*L5>$!10VI94y^;6@ajv^){ z?{+K3*VQvRSh zR^H^e*y!Q51rt8=esLru6w$r`d-41u8sc$-{mZR41AgSL-sT%)XAzYvw+#cRYRt2_ z(?&04r86Oi*yp_cPcH`tq!ZSqOu1k8U}VpcIdE|H`2H$x*IDYk33A61@IgBZse?dId26+S%WheKMlhUeEFpF8Ipp)`7?ORl$#t2l-J)%$x|m z*vUWTL$8I>!kp|VO!jlx!&ws}&HpU~J*Cp2R>mE4+6(V*`!_k<%v^cmdEy7W^rAh% zs^*r|ub`I~tm6prqT93JS7!+UJ)fZj`^sshQ?IXSKP}^Z>p_s*R}{g>r}4Mu0SAZ1 zc8eC3hAQo&e$*GtHJ!G7Cr7z#4rxxgkInU2?$x<|xb&}DVhkM;rdmT;F1a{!9(oB- ziJgJ1L6|6d*4lIoDr;SIbjhZvu_#@W@>1trb)3L?<~BHX}^D3;^t66Z>9J^$u?p#YCAacgTk%M4h~pn=wVSt-F*rn$^!|GzlYXU#16F`U2%;Ew3(0_o^?0t-ECm znS(YKH#jo)^K$941h+o!kzKmeY7P~P@*3}q2MI^JEksUk>~EN z>U`DxbhpL_+HQV-@)9D{IK+CwF*}R$d+Lh%|91iG&YafWeK5Fwi0g;etU6Kh6}QOj zH)cI6YPtsu@4F}<@9+2DPXxYrP=HE$BX8$!JsMGDIP$ordsFl~tG9Uk4g5y+T}DS( zPPq!Z3@JkG34)}B=q?vncdu*QcUDFbr#a=nw3o^Hp?vXwWv@0<@TSxh*oN8d5jcyT zd3$}>RtH85cir6@PGYo>m^EqMycP>BC}Z)5;FMSP8n86a!c}7sirxd|(}J=3QrhKr z%5GAF?J4aSF98BD^&1)@^mYR;`5-nsvDU)g-7e-@TT$)#*@xX4%j)ivMS=Q}8?k@K zZ5={h#9LZWgx~ln*-bQ(3gkL7RmpeHyuUwp1*q-%mCdR?Hs_!8jm^SXL#uL&e?vmhMpp zyq7+(D`#zZd=>i{?T^>D9Qrf#)=(6y`98`1=D58fNk7i&zY?>;vxYxX9!!TfCg+Yu z$)4Sw@%}~ekMEQg?eoJT;5uW|Z-ARlVgas}PyLI@D!U&K-6yoh7lsG=F0Zu)#@}$E zc)y-Qgegn={GL3lY{9~mZ-O_FYr|P-#@@c1C*bvgG5NOi`a*|C#Q*?DU$*@{XNlYQ z(8yIsEA9k^6hq*s^BHY!RS?VhmxOLjPj6 zNl71GR_+M&CgDP!cHDWPLo#n4?Oi_Ycxin6;!O68TC>2Ec}#khD9fyfoj;4gR@N|2 zMn!7ByXIZA;69*U87ynR8m_ET(1{m7}y z)O=haiv3HONpPXZz>^;Dhw5Ku&kmbW#t*lAr|_B^O@ADO8k=U1Vlvwmv|jFnC|=x1 z^WHpM?EY!*?mxcw1$Y#9(w{4x%kYndduF0|`-RbAQ9T^emFBRXF>^;f5se6Mb1jBjh6{IYa zja=sx9AZ*{UIRgUkn{+IyEzC(^zX0s{JbIR=3?pcw(P~1O_^UPasT7Ms5!XqC-hjj zSLon)N>73ug>e}sXUCbkq)|^z z$f?@1Ef6?K#=Z?o9D@6`M$}{SmBnC6@g+8Ftq~v#5>ns{93=P9Ma5#2I4PVnYpn|! zSboG^aL}=SlV+QU7(&IOMYPeQ+87xdYn)lj_jQKb#mP<|Zb^Rv^Ca2J;%y%N^c>8c zgLD5|D}G^VH0C&}OxpDP)KGD;kS=uDt@ONAF#?S3N7BU*cZGGri`|UOX<>%MYa!Z& z+>0bS@4y~-W3j8OIzY{{xwhl3Ap?=x~WULXa`Ex|E9=pD5euL)n|b ztJ8O>;$xpDvdTB@6ug=6X5}j+y|xn;`_tN~O=AIKi`PHz;KpjE9YR@S#*JJ^bTP@#fcA9k=7cyW){hJl{Kp&;pD zGG~9hb8-%(QX?Jp49YL)6h@R3a4Bixboo2adeTzkZ*+<;xc!Of#K?O7Yc`o4s@ki^ zHVcq9s>)%$^Fp7w8zdStyaN%oidAhHbC^IHacYF`4S@~7_{A99$DNmtA6&P){4kQ^ zmVoPZn=2iRL0RUZ-iCk~eU8p$GpDQTb!7)QJDs$S#IO>{fasH`i`2Q9=^10HH>TLt zueru(=iq~Us<*8$iUVBnZ)83u73NX-@ON)z@a5b0Ui_L;eZ{W)`W~Ydqn3N0AigO> zrd76;sO5>V_IJey+wF<%WpeT|@a9d?eO&zfdv9<4Ypls069fySj9SIRV%S9< zQ5EUTIvBkOvAQ&0F=>%1u;0)?^c4&%&IY1m=)TTF(F@ci%KIMvH9_89F)HW90{BBUf15FnSH;K;~B!dh1NfT(Q801X0{b4eFb3-i#iTm?Sj6yo>ZH zH9I~PkX;sb9{?WKn%yU^nQ)7Xg4gBJnYp8wfJo(>`+|0$W(>|$?|ZOH0Uv^O$mof2 zEfNQl3L^~<^T?XvV8cTIf6M)~L6W>Q0|_6B8?6zR7)ARe`#w6>>n^xu64K`tf@)^J;q?HYGBDEYZ~o%VMX2f1uZrY$+s|Lw^o zEif8Q|LFU_p$3oD>liZDWyhjb(qWJcQQ^)+Z@z<79{`P-F^&v)oJhlVpw!_E6>sLy zG*95QW*Pdn$*&+I9rp2Cjl@IIM0+`UHGc*c7r1e-rMgDIiuvuKM>VgHHKY_y!*9{6 z91nv=;fRC0F>~9keA`sAQ!rxz(%DAk(**WRV1%AEGh>+cJMRhusR)8t7yo^5y`w1J zns<+-nX*18Jx2}<=_o!(#hY!o&l{xaz@%GcjL4UqLx*U^wbyxsYqQD1cZ zGjldrKpu$B6{@&&;4PMx&D>E$^Bz+0r>nom>LZX)=8)Q4iwhmTAUf9;M-#IvnyfVr zGPvcex}aHUdIQPpTXNKLfoyt(d<-@BHnt8=`as7|$VX>7&#p_pvFio%ARZcaslO42 zP(9`*F%%qJHaPm9N!JqZJ{bASgt1rG0nYR(C65S*AE00zBjS#Szm2K}`pbdY(}#JHN_Oh&M&${YZW&fe zyQ>$QDgbdpKP=QorNq>D%`ppJn(Mx~2g~Z@H#d`{l=FS@2eAQE`<|0Dfe$P-2P5)- zS+h8J*qO^G`m4guIEFB+w1pYDJA7{lJ_`i{xaVZnWJ{1M3{W{%U0*58`b|vKIgl!+ z?|LVpl;=agpy^M$i#_~yn zk`daH>Z-AK@;Iy5((kiM`a@c!Ta>^C{1hlQNG8pXjp9b?dulTG1Bf39ug;&bk$ZPb z%t4{xm3}Uxz>HFnCKUQ_+!b+#1JE176`kXWIRyq|`;bu@{kY5&jmn#BS0LhVVB~b2 zbZ&ND)m0AtBw6bY`~T!6J%3^0xypHH58KOUfF8!0T-$Q+_!*T~pnKNlWD~AgVX)V+ z4mO1V3H)nz9FIq<>5xXuxURa`io+-_{V{ufY6V)nbP@75FLCZI7_6jE zAjKQU?ZCL|stDZcbLJ?N>3Mgt9g@|*eE#Keq%bOyBQ4aIuU$J!mJ4d)BERs^PWvpP zNXN+nk`cWTg;1#TK5RY8PHmdmB?#oU4ER9Ug91&AshmewvM-NGSR2JF8F`T-K$kz0 zRCR&GHU1kmOSr;-Y8T}%i?iUpv`0wd(y3YO6iNbr$a`d_1`}wfE-?@cS%x+=Ggpec zHtxXXuGEFD+suv*TJdb*LLjgYyV2Nh)JpZ)a&nRxsXi$$tPW?nIcrLH{W$WGG}xaC zFqF0Eg7qr^F|%n^7acp270UUd|D6^3MNqu+o#XpJ3OyL%2O?;m$1V5>x^sc3nG9BeU`E;<{W6Ya8S4VCcSUiJ?`#EdAjU8B)Jx2SrC#!Y&Hh;`oJANj(Z{M~ zL}#oL$3>8QxJHFq>f!$0J1iid)^HIfYl}PWO6Rz}E|aQJ|A^_lJ_~&~p%V-J8eH0$ z#C9l?a>2lQR3LD~PtQ4XM^%X1?13dS>%O*NNw(uI_F$Eh+g9+>EXbIo8`YLywd2(T zm}l_Y^G}_?pGB~m;Q;t0fe67lXyF%pMp6B##>CC&(yM4Wo$}$x{K(3s5#M;NwvvpG zq4ilwhf3#*12M$WSv)uo{0nbsyr7XVxiap{)tV!vxM4dWTB!5Jm)lE?l^w=~PfAfg z>4MJf2Kf~o7y!MRmcZ-keh90?V|7@d$USwtFWNsE@skk(NlS-7EZKHV{ z4Vop5rGZRJ3& zw{>_O2Y&&j8+qy1bI5fQ$E~?S82$;L#P5w*p1A{*@K;-47WIe;*1E+hw?F6bM9}%& zeMm}#ZM3Q5bH~Rp$)UCzsuaZ|?Vmn#DY1{g}G>7)T^S&t5FeEtV7F@WG<{=HLX=tO9d5`lAoinJLCU#-MZwIXla=m{{ z`=H=zK-S8H$)x(19obKbunGc?G$D8Pv592zXx=}kM|PD`{O;*44O_Q6f_2pn>VCGD zczZ~VK#9{?PM>7HYI+E6h18y6o)jM{^#Eq)0)(0)#6RjM94eDq@UOrH@6Wjy4M}g) zXTVg&sl?;i=Ir6vKvG0x-tE}3mH(sZJm1-V|2AHw#NHz)5)onxHA-!fM8vGpsu`z*j^!4BHV&)AN?9Q%QeWvRPzYR`SWSjVx65Hj_G-**I zbKt@Lz*wcP(~N0X$jyGNJU+FF(BqqP75-~TkJh zzmq5N?*md>Z#fNE=qGJ$(ra~!#VVlF}cxTE5P^e;}(jr(Iu{DDsOCdzs|-*<4k9)@_wQYlOf- z*QAdVn?nPD)0AG}?~>^^RZH@Zv&^m21~fA(CCzWjOSE(LLg8Ak7w!rO_ z(pqpwfGS=d%^V1HDCqA?gO_Wy6^2yO@o#)Tz4DlJCxudRy)9MJ(L%uL0Nys=Lz`>x z^Z^-(8((tqFD6MJ5ryrDwh=+si_e?0g>`cmLi4C)m>$=V#(bu*criDGwj9iz-pP9A zRn!+{)`el{Xa!J2ZV)14<>?Q~B^lHRG{kv9Qnwq@r0Y~n$IJ0?`(h!8rW~ihb*6Yf zY}SBUSkA(t34;=)J(DEdt{=xSIieEAsAMzBqr0qoo-B|tcyD9{tUigUTId(laSOvg zKh6x09B%1~AXA)eo^Wz@xfUY$Ypdmv;krpjJ=8bz

qHd(|Zk`NNx#i1g=9@;O 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%0D;f9#WY1R}E$ly%9!UDwNf~g%*3D{7fOq0qZcr+> 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 WjrO9%gwSEFNv~_dcxdK59usrB-6Bobe!@K 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�*T`ZwN->01?xt|!7OxHff@Pqg` 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

k2TwjLr4UZ(k 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∨id*a! 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≦;K3i$! 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

^C*%lwUr45*oG5B*KkTtvzP=! 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%0Doah1V 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 z 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

    ?Uw$Tr2ZBC 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

    `!9b3JL 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

    %u`+~z_ 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

    AmSHQZZTm;oOVO)RnQ_9&}b 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

    6DQqF*>$L1{1}fE3r4vZwQqEr&udvpn zbHf*1`xm@>$)(xmnF~5+q(SIRw)|C~cN9830We1Bx~Ev~LexPeUg+p>qZ=I&=T)fs z1>>BLN;maGJ&06^YIh`Q<%E7Sv}yVuVW|bD*<7a7XIwS-cEV8REU2(y@O}=l22rL4 zA#fE>G;@t)Bv&>+>#fDMLgXLrv1pRa(L>(9;L>;Ud>!Z>-! z8@+IB47;vX;m>O2F3af^H;-OH5L zF{eDepiptP=J|ojB$v!n7=LCyY45Ly)EY&;{{My7-~tp{!AmVdQQmDsXX0w2<6KKA znY{B}w61A!8fVwzQpEh5)L%XnZX>jeTJYaZiIKS3y9^a}p%Y&_hL-kOgRmv4E&>fx z4)}Zb{L9=Q7WIZ1E_|6DGhZ~5-RYN+lLn!y0(!&08F+;DxX8n0~PW{_RCk%hGmJU<4wM%lBe>*9LXEC;8Z}GPq6AY`wgj`_iiqzm!Dt~isB+Kx1CgUAK^?2#*SzwnvZ^JgS)HfEm2~n& z*zHagJZh3%G6`&im7>(?5Y+Cy#5$Ynfr!%tWR2vIUw2N1;08WJjS2SCp@Mze8A8PP zj#=h*xKG#^vS*F|Bvr~{i)n>4G~mcIEZ68$-QxqlGRqn-sMl;)C>Lt{S8kFyb5bS3 zMKyqKSc?KYYWNBxlT|6DUFcxU&80m7CiuR{lZrMKmauE3e9f8XkOKT}g@n57h7?lm zaj=#`%^~>|*>dXq^ zFuai6ul5!^a*aKEBpy{GQZfdU#hME9#y3v_?fc5kb?cYyOIa@za;Pf`0~w)nzqZ++ zg{+DAs|M3BEXy1sMcQ4&1=)TR7CIp+W%WbhhE>z9dC4Vl&Z=aX|Izi~jC1>i%Zfv8 zS1)?|zxZw)mWB5P{xh%jL%hhGi^TI34l3oz z#aS+&(~>BtF@|3w_4b?oW!}d16FvI%WDs&0_m$cQ=dMS3Q6ym)hN2IW@<6o?S7Q)3 z@zoz*OW0nPJNA9S8(8i<|2y9@Ce|Tj!juo5a<2UwCO5$$e?86uVf(Z`>sYx z&P)1vh;D706&(c>uG&|*@{S3lx}Wr`gTyQjen&d#avUazV(EQ8SrX6*$mpt`p)J@j zqnKMOx5l+%-@2Fo{T)nOsD(db;;$(5@A=_fTX0r20GEk4Bz9j}-_}2ln9nHE<>Ed( z(>^0*+H_BK&8vsl?@|!1lq_eeF_F3VC3?+12d%4rNhBP$EjFD;+=Z^Dyr8t$eIP93 zX}4UX5--m@ssDWpI$*mUhKck9r+bN3pz^U!RR$-B5cO!84c>Jkt;!&PboCZxl_1^VMSxC@@M4 zuG2hyKvcReWaV5Jn0~tq$y)BPDb$@(O4V$J-AK`fVo!7q=8*5asxuGc?PR%x@9E4! zqV~0)28-C#X*!Fe53K2eq&Gqc3@ylMS(i8KC|hY4t;lOdi>`u$3e(+Cst$}2O5S~W z^Q!bh68a-eJ~{He_k@0c9&(UC%7ddzs&jUg$u4B71uue!W6cRqw#RUw z8{D5ELsiqo=Pxh^<@%pO2*IGOoMN?P%6_1Jukb;`pp=f4Yqne`VLO;FwD#;TmH^%h z4^`h?=F^_u&$yon$werVe`Rp@AD zlSG$VysCoR$o4vX#1b``(ZjL9Dh%3j>(a01B$_tkE$qKl`dI7+G)`33ovX_G0>sUf zk+C{VTP! zTcYxmZ|$F%O_OlrLWDokp7VNVKT$AY;-XR{t8G7xHZghpluBUoG~r!6;^~2yy^PwH zTBmO~IC@-16SP{ZT%XD>F0k(T4j`tUwRH|HBz){lC<7gTbsmUeo*SpD#yzR8=tn6yeJ>5_Rkg#%cO9I)>7sY;>F8k zQ&gH!yA*sWIVXoL28rt78y`!>W!c(z_Rw-3TiaPnIks&piQXcWi`vz5zY&4L!+u%a z{1VdkplXR~tzuxUlu-I>VflYjq^p-%i|0I2gDP7_WMV0Q!x-W&#>}b=8||~1&7Onj zyZIv4Z2xc>7m=zYnT5nJc<&aiw)GZWB;N+C9N!^Yo96_%^u~DVZHQG1ADeiTMj7$x zR2n#DYGx1xGKFTmC(KPOOXLLS>%|1y?R?ubYY7dsMe%HVE6+BJgb(NTB~T_Ziu8*o zX^v_t%YwM9BtO9q&ir^U{bWyA;}(NBV0zCcx_um>U5+I+63sAzTW2$y*;+Z7@LL;u(SzuaN44? zCY+k!Y0DGg;irH($AOl8lLLe0O_E4tDVf9-PgV13Jx=OSLu3$2A|UFwQ-|hTy1s&6 z>`-4b+*_6ppwU&h=rIS|ymGEy8W#Mp+KVShoRrQ;d>D-RR5J$H>om|bw^fl{t{Rhg zm#-iQ$!BF#idv@eF@5%;%OKY`Tfoqj4(lz9jPo+`6rna}U@?m8CCChOJD6H;KUjeC zcvQ==(@yyL@fSak z?WsFZxbP^aEr}%R<%*d4g7r_Oy$4r$wnB=ij}+WhzW#CLmEX1g-8k0I!o7VW*&%!)=->T-#mkTHydM@Y) zpSC=vPzpzg^Eey$P)i(uAQ%IWW}1&RuiEcX>U@$DGzjtYk6WKVv%u=_QHW zz~p--wPRfAtF`mbgR$B4o!`2XfV-=B`M{$67PnLin7dxkk5<_t19vzdm!X$Zn0xZ;@$E6v^+Uq!lMKC3 zmFO4-zBGvlo6ym$#pjvxLvfiSy2aw}mEeHUr^flwd#a_-WTiqYd|rkc&bHnuTycIF zOlV0t559hiyikwx)!v?F7!J+t@`r0v<(hEI7ABFNh0YLB4nd(4zpy!^SlV9aB2Y8m z)jwBDs$%duLOu_M#1Z%&i>-UWhjAA7Kcd8dJ+s~0Yf!In=ry?&Zoy0I<_P+gRc4k! z8_=@qRFiv;IoG*%30GW2}B4^JiuiFQwBXHx;~^k{OLiNQp+? zi0KM>F)H+n%GRN$Y|Vqn2}x~)(C~WY8cwLq04e7r*LMLEkFQ2t=rXz z=(oy2+ZjGi1;pa2|J(kb9~F!tg-@o@VLGzYc1~8ADNL7+#q-?OyxR2-hC#RMuWK9a zq7Psw$@EBfgL03Sr7CTNg1 z%fwl?3zrdD_HT}F*c;i^imCmpcybgL@R&8ZGtb7p`9Xcf1K|)!W^l(G7qgST&jruM z#WbQO5d&y?TT6MQP!8@p;TKiBLk&jm3i5+P20nTj+JBYOi9$21Y&AS`$7+-Gpi+^~ z1E5u{=**CAfHPC76$IyB`r>X;zG;HkI9D$n>Ifgl(jyKNQkjjmKyY8W{ki?Xm?msA zH=PAUr_@VLuDDLCaCsFX#Z;WcVl5WocipRKC6E+ifv_w@u(cT1L&GKvVWu}8p&Wa% zJnLBsZr>sgbP*W}+a#BGbX`I{!j1`e%*|G$S&WCg0oDXqbm{fq&AJ)b=Cuq8L{=J@ zq8+E&MSBr=n4~ea#hVqU>-0z&B3UlEb^W@WBamLN*w^klJE_)m7>T>tS)v!V{BO&@ z&Q*>*POz2V=10zVHjx@2xnQf)wPbxThkM}x^V6m6VgFjgRwh5e8QF+@jQ>yuKfXfN zAGvXpFSk4EXwma;$Pe8=JDcYp!f|lul7Dj?)^94fTdFcqb+2kR2bz&wjSxC3_wV-d zg`uf0B(LGs(ilJPq>2Z%m(I7A(H_{3%7koargI}7`^-+>oCB&GYvYTrklOzMxcj%6 zut{2Bm`}9(P17zh;Z)GCoq-yJW}{G`y9CCfuhPb2f2PQ`Aac%o8nZxed2j*DWHI>9 zKU}@=@Z2KIA5B6#Cyy70TPt zNJ?5TwIinCao7xkDy<}Dd-jK%qCU^Xwc{LmII=(w@j_fRneQfvrSV1(_YBlR?Lpw3$pgTMXADtTL zNN&T;X)0r-6_GN^O$FNID^9Cg7k$lhPr`!#=Z!Ja?ozK;UUp(kd`CLMC_f+@(9^nj z*cXhv36Novasx_5sC9cm>nSe?YVu@TNBonTzYhGxy$#*I0)BJjSPEJO6RSx-;`b|VQPqza_6;y3;zd_W3OB{()l&1GDo z{q}~_{pbo-tUFK}@?R&Czh{v zh;$8KIzFUE{*r;UU1wS|?Q@maiLy~Rpxh6PqwCI9SfzM`jD(r=FQ_Zbr%{7SL?D8c=8M^kpwJNwOZj%j5$aL4`xf|IynlF9V3slv@3brj)t(I(d{A+YU zN)XB3%?g0zJ>zWHH3i9TRpT^KCL{W(5In)#3+>rr5JO4;i|51WS)5sjW$%m$jV%N!*$T^dmF9$WciW>Dld>iFt5EuK+lNCK3GIjGMO2rCxEfY!`I0xQdG5H_# zf9T9)c#;vtq2iZaN}9KF3j3B;t;~ADn&eb&cqS=}YT(@nyR3YAksp8LbGysS^N4BL zt(FX1QH(nkG?8nblx$tNl_Px>)Ei~u)8;DYg0%EA30(rAOdvtl-A9*5*P2F9-2(4) zeUI%Yuku#pH37BgI>+67y9Co1C^SgQ>m7<&KuHVMp(PI&M|Nla(SJ!AnMxW_qq3 z#QyVBjtAUGv$RUQRMURvM>gMz&!M&;R63Hq__9aPRwCgKU|yd z8vO{Rmn4M^4KZGL`GHQDvaWTnU#2d5YQ^dg zJ&++fzx-fvomU9jit_pblJ&3H^zRl-8OK!u`btcB4fz%{bsIU7$HnM=hh|<^(%_E8 zs}}{cJaqmb%!2M0cl#4MPfq5T5#QgI@Qxy2{ zkzj0%3CgHQuAIo@<5#qVcKRWu-Pz0S)S(rp(7#Z+;t@-EUF0|UOLh=#lI!u6zA1U> z=u31K%8+FNB_S*CVUDe_%yKjo*47W5eI7+jXZUkm3*BXMBjqnNBd!CNH@_sp5SqGU z<)$vMv0qu|n3nNY7ghK$KdeJN?ym)kr8fQr&!G-)eGq)mJ%qWZ@&#&le8yEttqX4$ zJ!MocRA=^nBz$}9P{Q7_SY*?od50kGIWk-=&P>;IH~ajdce_rbdMopX#NGWZEN=!B z&66EjWSNBKafn_@k*yS4%Z_!b7Ih(EK*v%QyDfY30R}sqk_U;d)^Jd*U%ext{}3O< zJ<1{+n*Hdw-MC%Wx^n)4-4{Tzlzre3O3kds2`L+`9tBh%&5(GGKbUNY#s{#@Z`NEw zO>e6#RZs6GMIREO0`$li{*0*tf+ksk?qZCYl8DptFG4SIlc_Bhgb&wuP65P?%B?B!Qp~J66$eLDHjTd zoBng6oZJy}uPv0L<`&-CFaOGVD_nj8X{^_vQq*>+L zI=c!l5RUtoEbB?Dp4Yy(6E+8egLaabDD9qjNGpGcsD5tGxvKENMGt4!8UaXk|8Is~ z$b{zL)VH_O?z6@0cn7(47dUyo$+)i6@BFMQMB;>`=OWDhUDt-k^&R?o#GXLN0Lz2#JzN|5as#WlhuwF_i=a^o$jP)c0iNT)DzZW~t{8Hss&p<~;F{WmnGgmth&aMI&atXC z-7e$z5HgYOc0Hp&`unwm$#~&m)qQy+-t9VMxmNqDClfJ7+RUqq=V+mP`ZM7w)VgA} zCYOIdkdx3%fC|piylkI0CR13>hYpm@WtB)woN7xJxqV(Oz}h zfoW8LxIALgt!Gw=q#GSMm!yFGjz7{v8C5L;ey0~Nl}}ebF^0t0E%QuQK)AF>pbn8VNsBI{ashmP*jI?2B|~bvtYq*eWLK# z1`u^B8>LyOS=Ydvc)^!&^g0#2|h8e30TB+l2wIL(J;Srs5=@qQ(=<-nzoG~ z;#ub#A}0E={U*b4eKUw!C3D)UUbE9$8$7n)xHv@lc2(3^OTpQwU6ZeCD`URmBv^~& z!_{5R1|^Tt0Jq+TPmG!5^*QG2W5`;Gs^3xVs`>U-txQ07ttQ({Yf?3R6{W|b7qnC= zOG3qJS+PnnhJ_E22d&iMtcOnzarPr*esni6Y#?i&P9yNCvrNT!&al=liGXVb1*_`RAKAuQt+qa`B=G2zumP|5&_EvCvsV%l{KcVfYA zLuQ@^9^NJbBAx>#*WsZQxZRprpwmIicj=3C^5V zW*m0?ni-&E?J1-3nZUwW*Z->);|w+`hMJkzIgq_ls95O0y9lK7sH*{rL>U(N@-DA>mBF(07Ts zg~dP1GNz02K1$$>BL?fF@jjbcIV&HoQAGC{;_8>+W-`|DLVoj&AKku~i;;-4@Ac8H z27Ljfk-WBx3L@r)?a(v^zR~5+5Rhj@s%ajIyNQSYpMEN%c$xWq%U5apRTwm;2@Wco zEcvXN(TI72`@i!XdrqL!$joleWdoWrx9`}+)uUzY{)+04Yj-awSuZsSos2T%AFq5) zOYJu6nn|9!i4tlbQSc(87szCZI)1t?>a^h zs(aAPx=s(yu{70W(uwh!ckefiZX7nf83@s9|F&YA#IkMgMK%~B^n^!-WDUcuUvVx| z>Bi}|$y8`3h(laPv)$j;zn<)(;xpv6>i3RDB(a#iQLYy6#GVs?6((79k9^^>2#e{* zy3Bjkro8q_Funi~UAj2e-&#AQmyYN_u7sVjudkh%Di|=)4NQP7a7^iNZClk&* zJlC2KxQJ5S7Y{7rC_O{b|jDx#db+Of`{j$k{hM+a>i3WDzYlOvkt zLG^4hd}67Llut(UAt~ zc%+TfCroXta3uQA(2Iz1*FomTtn*yPApQx1ALEg18@?HSO0}Vrv1{y6FE+rhth8?9 z6_=SKX}tX`Z;g63xKCE#`0R*PsKPcoi)XubzUm%-BQ{+1{y&-SZ4YRo>A?}+tMFIr z%5J51?KM^RIEK}=nEN47;NHzj8bbs34(xKTUqs19ZqNqCfJx}JJg$V+eQ~;lm8vz5 zOSCuD@_CqeU-fMJU|emQuzH@Sj8O#V`gi#ZU`4JtA5+vORCX|E%_%dN+=)@j8!Ot& z4I9aJM<`WYLL|#nQ@>sX9k5aGSXB?Xw~lQ^b!@2lO{TFa5FU`^$Qj%1w!S~3r~VhA z_6C0-%G&MELT+YW%YToT&3mLtyJ;;jnWxrBQK4yAW6%|O$6ZjP7q2FdM%ZuYMW74V zP5GZ}1S*>|Z!}o7KV05QBOiV(Yki;sR@gC-=sS5L8!_F=AY)rdLuGmKyS0^h?Yp08 z)k5V)=*9Kwj?&o$LA25k+4!^dr+p$as4lhJpq4rFw9q>S=$zo>fpvJbx~I$#HXRwk zPT3xlF=;5Y5@DP482M}7ua*+L`Qje8w`*)z_>xSDyV!q4A5a-b zQ2(xg_hZ(Xr-S4a^eE%n8Og`~H?RZ2uY9U`KziQ-r$#MDZk;@qYGr$KuPS~fU`1ZJ zP7!l6orPP9gMADl|b6}XgA233yxu2p@(Fg=anzZ zA1d2tX0yio43SL+#!$d57=uQ#s;4|`C2@Q%Lr6FzC^He@i;QGL9Ac0AopTcuvyk}j zDmIbjQ(9DLovR+;pb@?*`B%tB?3G`b9Bq`(EAJ-E6MhLA-!06=&|r}Xhp;VRje0}O zg*PPiXx(%(Eq2G@iB zO#MC1Z~LPh-{m69(`9>=YN0dbTE*&=xT7}li6lkIXWbF&k2YzNFPDylCP{vWkW#?C zjWa8ys}<8!vLY3aCh@Ij>)>j`#Dk|A*)QzyRqGz^^wp+SZ^A9$OpR~57;eC$Nx$-( z4SNjg<{RE29zivtqtM?0w6rf9hd=nn=;zTEwd$E!v-a(j1zUOk)CrcZfhLpM;WluZ z7-HgnP0RQLO^QjQ7b#~2JlpMs?^P$Hgs%U2utrqnY8p(g3v|A1XtkBv;TE{XlKBiP zkF=1a!CUqZ+tB|sp#L#olG2Pv#-712DIJrJo1+b5yF^Ldbz%+a>42|oWSn6nr9F>! zFL-=2c%~5TnG%%4gJXa!IwPF-a?|PidBN>00b%N`;5v~vRZHH;INTO0o!gqJdi$?G z@kzl!*5B=YVx!KO)cs?2``q8!_sAW8d77}f^8w+GsUm&`ERk-9_;QuVTbPbGs%gTP zZ>*+iXqYG)_`5+^Lqa`vyY@UOyfXpJ+q9t|m?zlAs{q$R_;@tS_Au;OKJN#Vint6p z+BTZal&)3kO*4z^ByK)1i;c+Yp8pc=MdVc5U3MEttLM%1spoT)WXvSdkai0Vb||Gn zH4o-WvrqBbLAnB=5qUm-@4v?2K(z>1a6Y5dm6aCx0_231a6~a93FR#rvgGzF` z?VQXy%$HA51x^`H;v#0=w%T=SJbMPl zNh@yOEl7Hva=9;fY)3m(xp=N)O-MgRSbF_;q?=aOd!@P?yu}YWCg7k>1bR#28XpHY z?HUP4FY`H=eWCx1E~b9F0jJ9=iJ{Cbl5~69ANjDzxcpUJph?tKP_tlAVnsR8dXhR8 zDfr>5-QU%+%q?;95un>xC7VjWz+3QPgVa6l`DA?8&*x^C*p6Xs`^d@<36o?J zLo2iPZ)3SOIhalhdF?E3<0HMO34Q=5!kuSmL4|gc9EM@0MLW34IaytOke&^&FSHl^ zEkl(OJYF&Xp*DmZkmg+1&p1QRF0nH9)3CX)s0Ys;1&rVP`EZwfyYuoI)x0AuV_o`f z;MrUk8VGUW{xj|p#B&@}WV}rs*K&h+h2b8=28>G4fxxmnl1o2cr&a}~3qgEuySaVB zR9Y!+RqCSy$8dDh%`4u;=@8Rkj8S&19r^WPmI(bXMg#gWrynV_DT{3Xs7^uam#Q7> zCM9Fta=}m?)KTRAN48SknC8L4De`PC;YL9P`$TV*C!;@g#gaPpN|#)6(szS3XH%U& z)4RWMjDER4{~ZM0q|DbHV!Pz~n@i7My64@C5hfT0}D5&vGCzZ zYIMZr1AzgKe&bg-qz>VtD>D9yM^m&$oGEV0uu5&vXYMntjqs0D6l?tB+j<4g&C0wF zWyOxVw^?7Wg0F;g?dya`pznGtQf;(iI@W!XVu6oIQ#Wq|_5^u^{s1#=dhCvt*&9+4 zt4;Wr>R^IWdq5Ff75KFx?Y2}tFy>_yc!y4zn~pIt;yA5T_B@YCp>zTE_3HJJ+8AB_v`~w*( z9?LOa!0t1@`%%u&HrTwDCF9RN{_0|=$~2CGjsm@1$w{<9l9y@}`~U6}9K?QL1Fbp5 z{@XF@-Mg8VJEeWU9623h*{T=R?6T4_p3P9dfDpT_H_GkvFt4v*+OvE$UemEAd&!^0 z!DU^gQ}@6SHR;kJ9d6VLA9X#vpuM=Ji*0oWG%lsBFFHh7BaK2U&#ZQ^r=?;3g!p79s8QyF}ms&NN;twg>Y(q{xE2McF|G3*# zzR4_e<`mvd%Z{}Pr?|yNy6%4%JfDJbGqz~t$=P9R`69Ku{jHpb*ftFzYS#P$H4SSW zz`@Ygp_L@&q`?$)&>%7EGkBAq$rO#b2%Y}JC@wa;MYF)Q(LAnQhxdpIHY`#lvN0)L z^@xvN73o5~dJHq1%0|=&YKfAVmPKCoc6BW5EQvXu6uqE2qs%|&Y}V;AYkpQNMQ1h8 z&;K-lESX6{`4j9at!|MuF#mr1%q^j_*_k(GI4_WfI zZM{zEx^PJ!N@;$mBP+%y6Ida(63kSOU4ONEt zQjP<8te+{eN)6x0IcYeCuPEq7^6F|`1;w~<#|}a^p>fP(k?}$WaP~8%CleH>qf~$!PJ%G zN0~xTv&Vo!HdU-KWeUP9lB|keV`^f_qkr3(c?I;S_BxhM(~R2)>?aDeK+c7`GFgCI zg+Di@0*wzZ>daPsG}Lap-wnUUYoYGypP!&nN3H*|hPcG_=X~!lU^R`!Z8H%I7nz#H z%~8f}%6aFSL*zGJnk_ObU}&n#QKLogAa$OBPrgFurX@uo4Fb@@5vi2A_meFI=n&1| z6LVta0=aFaS_ViQMxVs53AGy)de`m^akI$pjnk~3andtbR^SJIB4Vs`Ih{VOJv-W{Ab z^G3CLYzS<6Q=xpFJe(-8{BmRVeRFg24`P9R$m`8u)V9Sk+pP0YWZNIC<%dZe6T26YG!Uzv>@XXYdyz`4UTwW{NP?Vni! z8rQo%M3eKB&D4B|p|4JN4MCT0b_1PdY;$Q)Fqzrcck9MwHa0b)2u!PyuDke~Nx&|` zy6oRNl`aV(ok%ph)d0PoU(W_3rv=T4ufCiOke$36AEP}Wb_xzt?oV+-xmXQy8J*w! zV~vVf7rl{lucDCmRzXg7T@0zW>_3%?elZ7{EayJ-&vp?!Hgbl@8OM3sVJj4759Erq zFGI&T3R zskBg$11jr7%yvNJOb4@M{@)bxrD|DXCL<{CH?F$QSR3j){PQfR!aFbjckWxHThcVOrksvJX zVlH0FZOv7>_L@WieynVLK$vgbm=mNFFG=Q`8Cx%as_fGH)}KBdfHi?V#|=<6JtVyzfEu?bEJby(hF}0iiR`*NzQ6;$O6CW|V7uqOxs&7nAAkQ0SOv zGM>%UUt(t*tQzmvTlu#6Vvj%NWhxbQm_>0}$G4Y*e_l+oB1KS&}vNuiq?4!eAJ}nZwivNyEyu)sr z8e5WTX`#|wuwg~MboXdWaNR7=a5A*s`%KARj;5}ayI^y=>`9ev`(*tN-!HN6IWJCT z-Vf9knVit-eJEp$dY@rD7-W4SOC|wnH&nk$(ez?8VK`%*r!Pyi@hJ55X9^S#yn;&& z{;Em1NT~fg@hjIb$$-0MuRkOONK12ugZBr0W1y>@dVdcC-_Q-AdaK3cP-^z8FQ-g? zOjAoU9|x8F(*cTEXHQ*f&zAX&(>Vol}r3Dlv3R^n5bg0EL z#cpvwA_n;E2WnuyK%>!vc;d&0r-OV=g*st*ub`~d)VP-B47Y5kp`3o0||Gps=WRo=E-pr!ITVd2Om>ZpKX+xpay@ z`5vN~K{|O-&flP7DNDq>E* zk+de&SSOJd^D?=}iQd3CsU5B0sS?ARH%`)((<-+Knued~wYJyRXIQl+v+6A42O4y$ z0GiDWbD!g{&o{7cZ;>=fEK>9-#=N}Q+)Q>e?u(;SM)ds$HeS?As3P0q^Cc>z|TKwT#P(k&wSlf>adltIqfr>P0+3;TG>1{)jl8`Wl%!di@5{iYBk%OdTnGz5@S&DFRJT*08H~TWp?aC zK>ws`37AM@10^#xn-d=s+yx3thLmHIWo$bs&*%lx zg;jqVlb-R*)jo|+X4J2jh$fRIp$uNh-{JxouF{Yaq~GeIWqaTf{=a)N6?R`T-{B?p z+-3w9A|&03umix)bcVsm_vMm2!9$VV$+<=V@K4tj2^R4Rx%HP)9u(iJ(hsl($RP$c zGQ5WbW8L55;Hz{Ap!|OkN4C&r`pwawkfnK#IeP;-s(f*RvpUsv^1&pqz)*W7G)stO74*-~Gi1n908jW&w z+DFoU%9`cBXuexcY2deJ-n*(9PS`qXJNQZa8=It^ef>#L)YCWF(!!k%{dBl~rR3c+ zHp-WxhkvZ?^#H_@LiY1m#E`XJJ1A0em1U}B0MLp1xVO+-D{(BL-RFo_5u+Q6-}s4` z|0$zQM`85nrC$LsbqT)WFbo{{RR}@++A^lbL@Zy#JmNRe)Jh=w&4Xz61hV+-VquVj z-=q$veChf}%VF%U#@{JSK)7K)@n@KrGvUl)Jm5e~=3y?RPKc|{oZFL`d&*^EF!h7i~Q zWsq06Or`x*rA?fVBqdGz>yjWPq@VZxTSLWbW5gUUtZJb{(?(5qjJ~3hw4-l(q^9t* z1mj4SWXZCD-~4D>J|$|E62vND->qj%y)Rk)E>+a)TK5UfB695uQxn%A)}7ZI?wp1VyGW*qXz3$98oa-Ig|f0eHX{I3`K?Xy$>OX7_<%W0h> z*#+O%qc4)2MEfv*k3zMT6f^hsz;b9kG$YbJL+?mUcetBPveGOUFc_OWyhirMt8F;# z0b$_rm#7X=ZwU??r39SGc&6|pO$%%59b%^2F6bn#vwNbffq|3ypz)jtXkB=u-NmV$N2* ztMS#rAhqIisw^I0mlV~CTiav~pq6%-@S`RK#K$CbYY)}7%H z9Ph1Vw|^c==~DdfF!Szr6q#ehj@sqIO072UUbP-~Kp>>BP735O7GN6JBMmU_QYK4s zn|mH-NSCl}Ux-%xrnwy&b`j&-iJdUw9;BX(MU+dC2K$9=JwYr$`+P~|o>b%D5z?juw$QQ4!HRVrZrb@^ z?K-*A0HB=*fNVZU%)Ejz`ED22Ec~Z`|0Ck8!1Jr(%} zEP!*=NZRwTIgBJ;OS$gz7={}$C@aUsKV(2xCUG0mqY&_P3Qg3=Kjb1`?Ozr zs->qjYHO(#tAf}Z)QY_~wKug%(e@~6&sZ^v3_++7d$dOEmDsbyidlP=-noCc|A9R6 zxPG`kpX>d4y`N8CZ6>kezOsiSEsw#_RQ>W7PEr%$VdpZ;3rWnPRT@>|N`{8z;!4F{ zB()?K*!d(X_MSo7Gj~d5wDEh#c93d+(RmPxOWGSdmM*lE>cCVL&_S`>I3+qa=#2KS zvQ%fA;-$D+CbMvF9NKj^f(HXj>$<`tD3c)F=b=4t15I)s75;IaTxp^wXIw?ewfSh} zj*WZQXG}EFE!3J1hcbIHevJ+8jy@O*s`bH4nIx$#O|$Y*!7$rK%?zjq9kYZFxLiE$ zT^`*-733?dJK>Mg{}Bvkdd*x;HF!yNh>q=HDXpN34-LJb~k+Wd&189 zVW*f`u~@!C;YR zL2J_Mr8m3r_+*_${H--fvqr1Eebc~s+msa@8b5GBYj@maTQnn%M%f_ll?Mby~>7mc$F zFdNq7M`Gbi)T>e->Olu)Xbog=gc@7sZWCaFG){i#NT~2IgaRoH;TjY0k&n598=f-^v8RlG zOAuU-5#_@(qWgIqqUeRM23s)u;@9l}ltvH8hO*n)5MlYu!vu`|_g#E0Kn1%5SsST! z?(2jY)%|7AAgpa(su|l@nf?^-412new38w9cd~T1zpGTax_-%|u8_=LT@PnLjZMac zK9|7aKP<0^V~=5v&0@)nx)gfNI%EH9AM>9^*BdbzuT(U{%{{y%d0s9cl6!5#fQg?^ z1WlYe0>hrEiO=po^R(vFQ_rceQ2Sk`5>sHGB}1mx)GYp$bX>oad7$jhiC+>@xAK~C zlvIaj9PBP@>a5v(>n0&g zw%-O0<=BhP{(B}wg)yb&0B(Di`sbH)o3^r%nIs+E*Im`!&Z~o=+Hsb&@rY2>P6mps z*t&LZiW{ha0gp}`p#7S)Zfs#1R^6j)77J^0%%*DBeUu%lmkVrH!~SC`HKAKjLPqV` zI+Gdd)#xmt@{ku-Ay}ZQ1yz^&h}evm7(ALIY_?7pG{alq``4(%c9DSf3a(6s5OuvLwAd7B>jdLY)s~YA9dzT+-=ALrnN1mHl(Jk!ZE7jwa79Nx8 zR6i*{kNkDtGEVtNDv@poc)-B#Pb+``=ya@qDPR`^FiA2_umS~XTyM(wDUK-a&u@^D z3KaBm+*9DsLWWXleT<)1otEmC@ij{Z_h42fB8vH(K3@r+*B82fbjy;|4iiaZ@A!v3 zxJbtJmG4nipG~D+kv9X3MFf<{Q8u$GV3^ql=4QCe{rpI1oP>DSV^~LwbWD!cvrijx z@<@Q5OZ`)*|FY*j_v6p%##U@a&?x5^FRI?n8>ipj8gFNX{HNSr15}b6RGH8IUgbw9 zTf6f4sE~KU7(>L*zm#`BCZ9nzHC&a)nf&|0f6p;&rwNP{9GQnpJdRa4XCBU*6w5bl!Pd64X``!a_=qG*mkzB20p}6Y4?BAMNds@1x()mZ$7kvj?1>8 zml)^UG}$1o&_%NyY5qwb(AK$@${hgGMhah-&TQ2 zf88~=rXH-QYBfYrR0Ui%Q_7i{L;4(QoWOXH>1!WuQ1~GRMaL2+&D_4KtS%87AXF=k zl!n`8(|LCB8s|L?t}vxlbQ#y}#Jh*|i>lYi9tUSQYoOy>`f2 zWL?+U(ML8vZ#lQwrdD_#)@Q~(L)HmR?W-wCS2VHz?M55d`B}^uKqV<4mbHk|YK^3= zQOyO(veHe3sUkAJE&30HlI^z#4=DE^Y6h)ZUoeTXj=n~icL=)6obArI;y;>BI9*mT ztpQ?Eo8&7c z1guG*Xog-I*|wh`w2NChgB3AKO~voBiBmwnM1VawWongcRg}BscJy5nU)IiXi}l0j zy-7ToS9<*MYYs`2-D4wlVv$4dyiDA{A&VZ`E>e0HIYcEAC15@oD? z7BDOiYR>BVUa_i9PqXZ?89-va`dLg@nRGEIa+X18RVV<{0EU!JSB!n8a*q!m`7(0! z7eBa*NyaI5MS7z7sCD{1Xpz(Gv^Ega@p7ce4xHhxUj?^9Xz770I97B|rDPYkDU4dy zMC$v3Ru{k{XC=Sir5i>ouwO{6M_-zdp=tZ`YsLtB517*32-o zyuWw{AMwV*)&Y&SXv*R#|IGKSaS^i5O0<^&$N;i zHxt&?q&hvI^&YD^kq-$(I!=7$_i#YbBb~M5FI~AA;E-7Pw5t#+hp2>&R0tsh9Kl`w zN-{362qs~*_8xNTdVwO6<}RN{Qxcr71N#yToG~V*a1?9m)X#?n5XaaU^MZM8W<4?Y zSk~C2@_2${Kt4y2_C9Iil!7*%xNPnU4X%h#El~BZ%sQ1)Y0Y&r-g*|5#dvNnl50?^ zGflx@o|+}|^XOEajmCvNrJ_y57V*;513NBFqAVa~1u9R|3Lk&_t6CogstTc5_UK|R z8sB|4zr!sn_Pl4Iom&F&{L~{WZ8yMUvISo`v1fSEB!-&UZ6EO*=|@TeUVB?hiA79w zcSsh&&NGEZ2gB7O#22bX_Ombx~*&W*!DVNF+sfaO=z|dE~L9a=qTGWHg zg?($<^4mACj>|93Rq<9(>0E`k<20o*r*0rF$&KxE$xbst#ib342Ly-_B*Lh(+s`z1E>5h)W(^EnCmU{Yq-UO_**rZ}7@hBSo#p0uxKAu1CF&&V9y zbI;%`Cf-_E9a5Yfcr+=65AR%{%p&iY+iQF1XBX6Bxf>yU)_;^zqwIX$IBCy$D`Csc zt6={r=9EE1dM(xGfunl9Z-SVit2OJ*T42(#c6t0WM3&lz`B*Eiz`4R;z7QxR`bdk( zs46ZA>5tw}&eDg$gXECX&$*$Nya@H$|`5F6{jH+7Uh*_eK zmIxu6eJp`J#n79wVfB+@%Tx1W z;UKnS3$C(U-ovbdWX*Q`?(|#9#7jqlCI=k*D!@n7=R3<|czXx@MOI%yxx^sAgt2;h z@An?;wpV1$iou+zNT1~qKIJh|SmLup%e!8n(jCz*IF2$dv zJ*Oq8*PD_KVV8raca_Qv?s-60aeBumx;r55#YgFY-I(yg!G@8JI5Cc7LK{dn|G=+5 zWXjx2%wW?`-u?ASe#P$$PVd?duh%xE8gYIjE_5g}h~TXZ8_@OrCXJAANVdJ0pR-p& z#ZvZlk`uehR_I`ep!`NiGD!!E!?!Dx3}#C6;uA*GCH54euGjcI*V;~>suS*$-X9NN z=SP+{lx5bFbR5|w(PHw*aqCQ$sY3<{|9n?nvO|i>p)-s89vD9%QFKb|d>pfK$Y81i zny1mN=_>}0^n?WDCyjfp{JKoXNG>5p7)ItF^wJ%-$;= zhnf_?k9xI)J@H}@8?W~=%oq$W>bjGqD9a#q*`ZaT`s`zbPe4O-gKTlP3Z*s#T49rH zfB!rW!l_yrr%GYS871Pfb`exYA`p|PvCjA8_?nv!t+^56t*3(jtWjo@vr6lbpLZWI{w`1kS{BW>Ya@SirHJ^NM8p z;a84l`=AAx+fWj?n5emcl_q_>f4&pa5`6?~>NgE=M{$i#mdu`{XPu^_j+ zdDp&f;4{j)=2kh9_N0Gbz(XCmQ5IZutd`w#>}L2vlC4&q2V`*wU_(xYVT0~QJPS6= zZ2iS;4xam@%vicBT`QIXCl0W}4gH(u&p4(^h97QZv6!HFmmK@G+hiH~A)G+~U9wZU zZ;S|FvDxwv>TpG6us1AeU$^^Uj%0&$)vBLBa$_Z|4s`N_Br2?JWrm{8dms7+C!5qv zrb{``gua(~xjSr*5MC~gKmBN%QPY1_o-blokmx8wXMz51|Abk8hsvt0OSNXcInVey zW8b~;sk+W}tKn7EyI?Qlw}Uy7d`3GKQMlXQ^V3SdN5;)_S!JjBhFWbuKPqg^xy2ta~Xf?4E{Lm$tt7|g0g7b?v-BwNP~$^Ki!SnE*a znQ285HA5MJa~)t2CPGo=X#taMk!3Gq;SWYCqJ*Bca%ec|tA09;U22#OV}zi-n^ z;7JICH4Fj~pf{z=D;f(0`lvTGWWJ17SEd0Mj#^fwy`||jGqiQqVdG$&JEM@ia>Otd z?|}7CbuSVo9*ORnG^w{9)eq$~Uw*3-=Qn!cr7tKxnB6uCC=sRVsk)+P8;U=>@ zjghaaYBkd8!~sE*P3svTzB9>vo+PkT*$jLaW5Qk(s4J-5`R;p};#?8slos+dCp{<+ zYT&4m#@SA(bCpAwB0*1ErC zzzEX5?QI!8O>DXC_3NhE7`RM-By=po?(g5>-Ki4$G{J-q=w%6#hcD%*;6_>&9S}!{ zquBA3ebCpLrn$hboZL{%6w2%W7+x1{oswSL3rFtwCy|5>CKzU{Dgg4EO;7J{{>r~I ziej!kXBMSRQgF0_AQWYp-&^})qj1`u1kXX)N&^zhIb&C%^kGomeAwYUdjt|HkXZx9 za9&9J@X_?NR_b!-q>!+B)f1P-`R>J5ZE6X6Eh`T@f2j%FR=md!n0$S4J0;4ckWu&! znA~$V4R3_EvL>wHu+wl61TVJF%Aw8@g*I6Wq1o2bBmc=Xe~OO0!iij;U(eMYP!|h( zo${qx?VQc?NidL$E?Cb~l0hr8->B5kzJ)9x4kn2oJf~s&X4m;pq|q2^A7I#mBimdh zlHU_1#MdQi03PB1DAA1cP3aE<%(zd)#vx6qE?t&YY^TWE1jf)ha>sXM58E5}UNp$q z3?C3{p@wu)pZtAklg!wFyQg~cYvqfk7;ba**DGoJS-9_<vNlzH4GLI*ND(O`=69m&-w-Ma5zG%fD)jO2+6jNF*&NvCUV3?0d~o=ML*IFHVh zO@6Tm7)_?+4n{;~0M-Y$C0uab^GPiVpmLC-DIRX!F)i+7xq%)Na9ST2zVYcUW2%dH z`mD1S?6XMFbvB6j_7+87-!f!z!D6oqz| z;d#*y7b64A5{|mLtkTC$QYIz@-~9=W>PE2hHOvUKAu3j50sVbi$xd6N*`9uSUt|aG z+n*^>PPZd!KW#6M+i)CZzmJ^a&ysxdfJ`3REdZ4VkALLfDl?(OmeaxCvw|2oYE&^6 zbtinmIFbi_jwqL`or#?@hN{F3Co0s*NWCHD-1)J#rRx^H=g=U8>X>ksWM`^lZrdlnSOYxl`* zlrW^Hd!qG^Vx3cvS@@FH4E5Cmsyl#oO)~Jl>`}+b=OAcXI7fBa6=Md ziD!An=16ebk}mUfrP^xS%{g6681$^1ycmacVV@ew-o@0Iw3E5;9~~h&^KXkChDvO6 z4PTB}X`x2)l6W?#FwJ_U(?7XlP{~Qt`IaNbMQ3D zV=*^V{uLfA;|kLk!~X@#<0i>lEsISSo|A(qkVkZ|*IFJhJCrtAqLP}c$pEW zBsG&5lQVF$%`k!LL&)S8EsQ~h1wzhqlFvV(bzg_$muIWvY=|{Tx)2p3#wpYSnaO9>Bk>^#jPCSjbu3eee)iLD z%0%fIX6lwR7Evc~`j1M{2%I*fWU(3+NI+`mg4}gKC0a!LZ-h=KkjfZ_N~Ym{1RQm4 zrV}?|6JKwX)`I%ACIdAP@AUq3kBO~?kovd_#8NV0tA6T1fW;IzdW!=LUl7ZDx*?B| zex)(m<|XHuQS$!ST`;*S&!5WmfErLTt3`vL5px;dnR1+6o-FU%bgLP6BuT3qqJ+6{ ze?FXPPr%hQ=k2p~$+X|FAHuvrJ3yp*_0zDgT15t9^VLSJ8I(q@JFj=1l542hrRYB3 zqfD8-&wo8&CAc#i!@W}43AaAujfBlQ!2CVOlJ4dF=b;d%KS{>0NU+oCkZFZEDw2pwJf@NH__rvMIO>Y3WRp7{@K&|v&H^EaI$hf1b-n< z%9EOLkSM2L*!}hwho;?mYPfTJ<+p!3GFl#!@t44*J@vvbj|v>!=iRfD&0W*TbjWg@ zAp#3Q&nv;Xe6qrzQrVeqp;{v8QmJLA@U)&y<}srv@gsXF1HjA!m+0OZ*r;;n(%Ntu zdz$Ez2>aGWMSZvTRQ)jwL^P(58KK&s@eoTN{l))8x=Mh$7iPmagmu%0t29p3cN-87 zjvaOaYZ#o*w_n?L(x}AXzYbg)w@HBDLL?QEf|;xi#`YGsA2R$Ej2#p*tLBRs#uO$b zcsG1!nnpu&KX`gdIy81u8fF`07$A)8=TS>P!#RH#u;GLZieD_RhwG564uZ6Ezr(+$ zEN#76T)Ph%yBTeLoLkWNrg2wnP1(~JRTQS}89wM)dDav~i7~F8R1=sCosV1^q#JCU z7bC_sRj@2l>j{%cF7jbEZG&yM{V$_ zZ@c-Jfs3WBZz5qZf&`g3s!^p~-=oZZB5loaM#*C1R-q<;tusq%da1LM**xizVi)3@xBbx0X zJ;;=u2`9+SGsU}b`l<9lL zsR9bN63yjO-bi}tyH6)JHvxnj)aumelieiNfzQofnk8FjHxDzzDyQhqcA&W#Ka{b9 z)~v1;&c-=fe+m!I>dC1YsSp1hbh?$u^ODP-|4N zAe4n2)+Bb6%zb=BHwZ5(&rC`na=OaCDivGua)sc_cFN*X`rUL78+8z^gaXoPU;y37 zlQ#?kSc_cQ5vB`Y;bg4vsWoKSQ>gBHK{B&eQAnXO`7WZ5)-|w1PJF5M1g@#=BX6^n zWVN?JX_3e`u=kTzJDtPxMZxpPQCT`>y+aUO>~7%1aGnSlGHSd>ri*=5sR|IsBCK@s zbY07*3O&RJE-Y4lVNT09Z|7u$l3n{)HCME(oCS|SGrhUzBt2OIWWiX2M%t~qTXz;c zTo&n@(%3v^KJQ6xOwXS-i)R)R*r5!b-^j|Jrg7yIfMI^5{r5t*hLM=SMqpSZ!W!Kw zVXram1~H6cKFlCCf!1a9I;<~xC>W5{fHXhzjAsE1?!aOjy_Wtd(Di2(_FpDr5IpZB zi{{3(Kzt_)mOny0DJ?Jx>aj+jWuA8MZ4w;vCRc%%+h*>+$>JG-wZMeiajSeHhurGK z?5fwHCamq}fm_`ht?PUN8%G#L&A37cvgjrmk&JwpAl{4BZF+G->)o-9vfX0U8%*1> z@tA^p3Qg`U$n1U7!?c~=y48y>|6KBOKW{A5zPK*8ja@`(wmTycr)0=ELY^f0ggMD< z!7G+(XsI@lU#J5SI}vKn_VU$>6`;_}7DqMD&eRv~ov0r8@TgxJs z$Nq)ZCy~V~sON;#$3v#KC^`F~Qr?@jJd;1bW6TU)(9A>7CgU2*Cx08UXHM`a#%~}w z22A!tnSswSex)IA>gtI9?Kww6@5W5AF-t-Mw5|dTuQ6gCokRKVSjsRUNsf%xZUqSa zddRe@jG+mwc;p54o&E|OowR>tQ_YigCDNS!p+Qle1NGi2ynm?Fy6y?sk|6Iw-SZq@ ziQki+mt!9jFxXI;cpEi^CU1yJHO!}XIDH~D&3&ONs_T-;W(2Kkv$ZT%P3Fru*ZLS$ zOcb5=YmzIIC%VSlGrRg;A!%k;Eg&}11(;5~KR`Ln>63H?FFnU zTxB6*_Zo)o5y^r;K_iBRcjM5(HZ_DHwJ9GkHIMC=hFAR*Ogm5X?VC@WTJ#l(%uLbo zC8EcK8u5IdJv>T2xi@Ck13-=b#xw149zi>AoM*fZl^&J!O@`nw|HE0L-ZbTj5D( z&Ehi^Kt97Cu9>oX1R27XQOeVcH!s;W*r&7>Mnact6TkbQpYM?4N#CIK6r z6c62JTooLm1IP$cKAq>%2TpY4$7#HovxQ}*J*vcxo;`}9VU!d^uxKwl{R7YguShx@ zty`7%$|i!zZnhKaYmA!cd|Jp)|Xe>A;wmOCpRj12)9w9eY zkRM-YYo-CuQD!^Sh0W7U4bpn1O5*PE1VZc?T>bVeDooy&Y+xN1@W0hQ#D!c|V>7~Q>j|CH$SR7U5%7>4|?L%5tp3){a+twjS z^yeOR+J$JTk&@Z<$eVQihCj*u`DDykqc@w*bfHCw$|A zo`X3O<(OaJgj)&DJc;fNic3#F1nPzlcE@8h^yWy(P3i^np>-p+g|-__-FI$+@;e29 zk}hhVO8*9Umr89*kQQ=1XR<)SNu2sRJ>Q&JWX{Rk^6(4WkyViH1!po+#BGZH&;*6| zr^rGE(Xd>6WF7O!EOIf8cH$3&<6}DF}gOo&lOq znvD`}jjJ^{L|w%#1sexYBcmxG8pOgGk~f_2KVdVDt={%>L0w|9XG$j^T}N>u_Z&AS zlyYKNLra>-so~5*ooHLJNb*aPZ&vq7-N=pRUOrL#W(LG2tF9RnaIeW;;wWIj+7Uye zhuE!WIhLp1Ty$0QS#&@P80ON9S;jGO^Nd_Y8APzxb!A;9ByOHch=hU*6Ahm9Pwa6* z!FVfb_zKIk<7~b*xleH~<4y&uS>fbeGw=6+wSE8@S}M9Ux8gBFzd|;LRmspjh-qU&lvJ>=D)QpUl_xLL*vcJ`yMR%rpV@yzbsS? zsaVN?1BI&|k*R*T8L5^Rij2B@W|!c7Br!tLfCxu`8wbo;tQ;%0s1ZccW<9~%r)HR? zl$)6-CnA}Z+^Sq?TLfJ@Hcpqp7aWBf15QH3S_szj0>oHm<7O38-*APEig zM?p+FA#P?a{V?aro(Cni&N5tB&kzLbE*=&*w-G?oEPJADy`@OVtJkU!Fz(qgUVU@j zY?t%;pAW{a8M0GzISN}!9|nhI7N$t1(m?bQ&4)>(zLup!WnIM^>Dx;ud~F;mu5NX#0Mbqex_9Z0l`a6vqdd?3#eE#6@;Ug z%@rOm7r@jI0;=l&EnHzSq-!h#W^{OJr&I{l8$|1>ASa~=Adw~^q)=cpNOcF##Utn1 zlW0FAVVPMQ3;}j{<+_CNnB3&L-%n=>>X#@8W=Y-s>%CllA!yBw&Z2TyxYWZ2zPxc1 zygTVBQPCHR-5qQQ>)}}A@H)wBvdIl1VJP=bsZ_y+#g38B_0Sily)k>>?A>t=UaxmP zat>q(s-pWv;5->ej1v(e=LD%lZ{VQ3Yrlb+d8KN*AAkD_F_Huc)6G8JJ>m`1y)M=& zs5URoH9oM9@Jr&1Von@_-#mV%XMvdBWedcYj=mF&7>=-v=u`G2Kk&YZCdr-31idnY zw^7X4yUNL4Bs~?!%tl9G@{+EMQO10|q&!B*-?7~U&ChmvE2Zdx`8K9J1D8a$-tx)& z$elUcvTyaCkpxI(Tf`ebWUd8EVlyhDMOl zQW}=&RRsZ?ZPQyGYe7A%H0}KF{xTcUr(0K{5Hp!=Gtvyr0-Ij$w{i8#Mme&;aXtq~ ziX6**jgpTT{}^cnbxVwua61)#F@|YA-&8uD zSQP)D$wcVzfTMl?w#yhwiqelp^kYDe5*COhbi|0LOzV2=)5Uj zk;ZUDWXNS)G=N4ts zRoq0q7FPOfR3E)ymzbB#AuF`3V3ykf^XdPsV0$2E#-Bj$6u}_vPLrY6we0G|4??w? z(d4}9goasbMI$9tFhHwK)RrV@q|5z&diN>ms-BZ=W~0x*(J|lgjV{EtSkq1;1p;W- z#J$^G3k_=HzG)_ZbyIgvR=p;$&V+ehn=*_3yyDZhSISE_Z~=n~idQm@RGp{8GRP*- zPHGgpmNPXRf;op&bLQ)B{~NA`F=Lj5za~$qgb!=Kr}G&VYrdaU)oFQkD=z<&K+gH@ zXIZ6X?Vi?GYn=a&DSNg|qtrDC_Urjb&3Nk>e7e5t;e*?$dlmVUT=gYm@Mi(jRNR(2 z11Z(!j9UAW1=n~|VMtHoRK*!Rtqk!21CGhZv}(C8Ut3SW2rYV}rPnG3k{O{$-p$(W zOp@9;pV0X%pLDsqA;4l%Nw!qcIWKB)Dps=Imy)$ zi)bY2Jg^ba)3Pp=@-VEBCf1m$6+(~bt@z7%=nhymPBm*(y&Kx)ej<)_!1z%nMTX9u=!e3P?#!=@1& z@OFqHR-~D$uyN#G>GW*n)Mrs=su6^Myjv@8yAyt^z&>q7`eze^iARBJf{+W_ak^xf zp{Hg3-8%nDl2#j_%E0B-t#wM5lnpL{lme*lNs4#IU$E5^+^5Z1uXdoQTjb;3A(Pom zg-zWjstGU~l321-R^(pTYW}7 zNP)?;XXA`xdhT{|(WQfo*e$9^x@>Yx#=qj|xMWI#XO_>cVO%HnCZ!qnRa9yp@YF3Ta(>~#auWPoN!Vaj12 zOgs$r|CG%HJAATRVg>P@8RKi#lxy{B?M_J#+(#dTa1Aceu_Z9isM-=|%S#kfSfx*9 z$vAYZ0k@i!;kU!C;zumX1r?kVOc*TS$|&jFz-sc2axA5ee`Zg0yDk=_;-Zr)QEpeE zoI8A|oK5O%|ZQN-d^m+84pJE?B9xFZYkyBt10`Uki=Fg0_!T z#L~@LzEdQ#NV2zA1+_@j=#*L!Xhfu$xi{N}lt+Y3D~926b$+=91tbv4ih1R{wyEE4 zDVH6r?z{o3u~yxC=U%CW@sWi82%JX^=K4X}bk#7}th{#!Rgd90bf4r|Zmr2D&Ls%` z=(IB5oN?FYZ5)d+n6gs83S9A$+SKB$4xQ&W0W6E;KSA;BE|HuqdbZ?ikLB-iUG-sp zlUy2>iRh^vqRb<07O`T%+o{y#%gjglB;LC>@^>mub;ocEJU8UNssS z-853GIex?=2^K+3m3xiS_VZz;=!?`086rmk@(1YA6kJh?3@`#pA3ceG#ogrvS^S7^ z`p(%qZ7#T?B{SSKeD5`)$KE-8y~(FD?xH7Gfv8$K4M-Dn~&{D4fhw z@N5O`dc{+Btp4i}5~t%=D9ak6f&Ndt)arxr`yY=;pXCTh8*i<8MxakmJz#1xFt2`& zS+z>P{5uEh#6FV+J*nm0El_y6P&t`J8QAxp$ZCZbj-qm?0~5;W0OPLX8jv5UZB2O4h%M4( zxkcQkz#}?%7lc@;cQTC&pYbsDGVeFA*NsQnprmc~8_!z@0w`}sSt<=*s)sIqoV!dG z5Jxp$N8La9er*wd#1gStvXlfuG+rgp-ffmC9Zr^LH`+SNjP&FFG)+2~St16<_9fwj zrx7*$K4-P3qo*Nc!P(n+o-?uvc%o$SDhrTNs{eyOoclKW`QskMG}<2vY}Q?c^wzo% zd^97&7j`SpAKaW;cucx29>~{7-wwoyd$eEkr37G%?Rzx4NuB#3LA&I{0E_`kHCEYg z-uHW=-FvlI=d7~$T?qm0CnO;Ip&ydW2OKh~FdS%GI)BNV2tjOs3B2;9B2^(-(IkG} z#9n7hV-E=rHLP;3k-p75daRzA0@$%7OW3i?gNxvik*ggca(f?1Grc zp_IvW^wKraW7im=&L**ARXF3=&P<_Pwb=B7$Alzt5ZFal&yn@0zb{L&-QNv=<<|?X zfZlZnT(48Df_12FC;xJE(axKw1S>7BvyzDe0ORK-#~3oa?N*R&^3Z@cu}7WgrE|i# zlImCI{+?N!Eu=Tdw0VjBKIuN`FU--PIf`c~k39r$GF_f5RP#m^Vw(LB8^3<7Gw=9f z`JWHR9?!4RvLCaELL;H)Oygvf5_!Z(vnwh36%navzgG4ikBKV07h6%@~nZg<52nu1C%sRF!QLa1DHU=cl z$}vlL&09*u(>+}MVnE1)4oSM;7Ul4eLD}Fq?!kS@xA@y+mSbTSp>fyYe9kN7D9&b7 zLlRkAhay9B*R&I$!(1d<7w%r*a8!TeLg|?Qqs-7|=Rw`SrXkw75^skS$;4O7q}&Fx zYJM}za&3eI(=ETyWctzFJy!_{d6wN<*q~hqDXNDig zU;g94hh%)+3u0XG&*nCxub4?gUf7PEM2@#zK@XbgUAyLtniAuDRk@>hfn*6V+Bp(8ve6@n8%Q-~COFwP7H(C(>Ro3iz{& zs{b|Q(K9c#{iI2l{rYB9kRhCMd!1X>Bp5j8fQ~vaW*}ffy6g;2xB|XK)($*x8YO4a>E#deFHi$V;?5QPM zH;oKF4`h}^n5N0~x@ZeziL8{dx5ObYXQGo>a>Fnu z(5>+c;eKbBneQ+?2ple1#e(VQ+=~6Bfyyu+E|B@xVZd3u%l_zd1frY(#KybIcihJ4 zSfWfnk@?P00VB6U8AP6OzY#!B4eD^EOAhS}MNK^oi>N21&}R zeFK%-zfK%>IO0xcx*wx6wr0iFLOrHi?9uDbhIckbI{^y)H1sUplh>r+s-00XNwZ#6 zYo`nebhysTI-+~4UQ>VUElwd|iqEg-DdwmI#6{ArZkRBPcA?`G;5T)G?bD2MVmJZ| z=pnD9kNE$r6$Zi@TZT6_1*Q+n2zP7WltN}J!729;=TgOXan@vutJj;(m)unARMLN3 z9cW$#lEzEHahzl!D6@pa@W)8nIzI1|Dn|X1Hyt!KlqLcOZ)eLyttvH=WX^g%-lI6y zVHC5E4nq$rlUG`Ifxv{H&j+C{e(MhjuF8%6f!j&;VztWA>Bgay0%Z9s&_^7Xlm|p; z7h7L_5tALIc~B2XUC&pVbzK^x|sh29& zD|*Q#<8sK>7o^FfBfH+TJjGgS+2^Xb#>U%ZdnjAQ~C4bj@4Zsa#UJL;0A zyb1>`5|8;s+^68+G{XPOHbqVq8vZR-ezLF{TE8vswfNaxJs@yMB65bJVbtH$3 z2u`I{Y#e#mSHEM1(f+go8Ge|=oZ0uB`21W7F{LlVOFrzqC!B|A&$nyIR|^HAkH~d> zXN@NG-oT&Gar-Fcrg`Q7ImeXbOL(he5p@J6~)AiStnjr z7A^4Vb!6U6tyu0h33DwUP(5<&Am4w$(Z~4xs)pC>SgY({N0-1|35Q&1Fn*FV<&72C%ioZ$@FH56H zv81TcI-I|RPf!OpLk{ZI(ze`*wS673sTbu{H$|zFC&8~dl9xH_fhLQ1s&zeYe~3+_ zcO24^$}ejk>|K0Ctu>9^^aVzi>sP*LSg4SQ=vkTb=#U;X<}><<49wk}lNO6+3hURj zDnR_md1#-p;qhmzTG0+6rwRnn3w-P42@n!9gKmn8m>`>(Gp+19JSv3D97nxS$~AJZ z%1J);s&&B%3AAz5>w*FhtU?!Rs1l<+|F#`BcUwE}9|W?f(7f7XDtWO1U$FKpNaaFn zImb)nR&@EFOuC7iA$l3mel=QxMM3y%zOccPvnfDVK%>*1aYA4y)Cd-46R(Kvg z9K3ioV{<^Na`sExobIP+@NMjb)C)&Jlk0Y#(oIVwf3Pg$gGJO+Zc6Q|Xr+ikI!mIS zu>KY|8zq}bWtV7_ZeM2}?@VlEYU%J(lufBpZtMQp%w=0xXof4B>6#kL(%a_Rzhn1L zrL8dIl~d@;!f>v;X|d!U>0`Fz_oaTE?CBEp>ccaK8P|b01pCoj!N&1_gVFYSPMvP9 z;bMauIln}GHL8PR8$yMBL|wA!v#dD#49^(M-3N^=^LB1+_7b^{wgT-vrZKOQVXxih zgFtZdSEE`qIB4g$Y3X#+!ngG>sK;#&+-SOWj;i&H`HS8on{z9lG;g#)G4I;9_8Pqc zo=$BEutZM9cdon7Itt)3J1%)DxO7;)rBKTmDB zUU?d+8B(dm9mBc8O;+I=L>=_^~(36|K9~bn4y9lJ;GHJ3XUkQ46oI< zS_BzbP8}Ajm1|OVX6R3xheNBWL04J#x~mMzy5a&&^Ee(6-B{~;>h1A6^*F@}=+={R zr?t=SrG>9)?-xq&njk(j4(_g*sO=?dQBY0^OnudjJhzTGf}PfLx!bRS%$l{THPz|( z7uN`)D_nP&*l+qBHAMq;{eEHO{>1I*Nt>5uoDBFEzmsVeQLeGi?`Ne?SL z=mbx#P{C)LT+mXW@u3ErD5w4xkm{OYYyb2kV5rfoL^@{L-FK@k_16BHf(oA7D>{0N&Rqj>6A1QP#yC zP~YDa-337;w+^P(8oQ&1k{CtlIEttX%oyWnbr&*n4>@NnJ?9NWJf;p^{r3}Y2c7Vd z0+=%odEFi=b-Djb(|JEMmGxWyo$-o~DEcVUidj*f>7xNJg;n7^``j3UoWt4;c1*CP(@tQPzI&a$XIuUrq-xA6o(j4x zptP<@ljoCMe#_@?cBe-T?*x{H8@3p{d#Kv7Ho&XwJoq1&OL8+JN)k1Tt~MI5_juks z6rj_#ni^~Zcq-K6W?5or3Cpi;n2pa49+#TCNLjcTu>7AU?WySq3Swr~^!t@Z6i@FH~HW zC>%vdX_SFQ6@Exfb@g0KybEg#7^#qx)-=xX)Il_kx$ntu+8*~#{UgSf*mJ1@Z}c|G z+qkvXPs@@rU-t?BK9wIb*lJl8ibV{`DB)hdm%wBWg!Zb>#-)1J6v%1Ss8m)&sC6+f-69Hk{~Y4045QPH^-bS)J_-6#g1AH zZD%(*C~Mi?e?RB1x6k3{04$ScCz=Mn+`V+~O-X1et3s)|rw$T{^3x_`yhq{jf#PqVL)tD2lbdL26(N*z2@FQ~U_ z*C{~z>%JF^UX*l7`pK)fqQ(VSsl_skKwlnK1r2utIeQD>VmLUQ9b#1v z3^!m|zO^)`@m#rVScV;%W#|U4lYw)B+5jq_(`jxn`jPkYExb>HB#GigYm_!^jG!>W zCa>;WIJPamB+hy&DwUFk4?xJXwNfOQNw@Y>JBOS0sKX1d(xdn|b$=O5eh<#Wt#>cn zI!QRNvfYbP?Wb`Du6k;&l{rjGqzwkZV(-J#Ty-M_L&4#&bwOk@l)T!rFEOaTQRx?D>g7f=OajS0K)N#q|i@_`GgDIQ`G&_6llv zU0?S5BYt_eWan@?WZ#%V{uFFeN{zY@<(TudjQiQoiyq_Giyme*ac(E6E;|NQTD$6s zn$UwEL_45vZMzS4;ZQxFy>F`Q_7H}UE^hSm57%-qGD>nbv80uHcV$L$`C&&;Y6{~oIaPWMG}|@#4|n*eS{7yKsClYK zs^JNkV}RysAAM%+PFX%gP3Iih{m{x1H_Px-^m{5ZUbXNuiLZC>-waN=dC*}CjI3KY z?%w+dTiPaNol`Oj8Uk>%!s1eyCVg8fBZ{Sm;oq+4R>eE$?hg4(z6#&5D*2Z5eK@Rx zY=UEB%`UBTJmJ60vuF&*xm`0~%JsshBc+2vP}OJah+~`au)aHmQ(ie)_r$-_K5!QX ze}C&l2*6(17fe*c|C)iRQg*1W^V?{fEDZ!owKqFXR>fVOJZpbrS*C9>gY@^Wre4QR zjS6G`%G5eZqchOXuPDMaf|Mm#2=-tPo$Pn;DTKbA_4B-)EWr z`HCST9ICme9|r7Kqyv2uZ|9l)h&fmH*7|6Ef4m4to(Km^rQ^j-W^goB zz)eaCe&-$nvsQ?lriVi9Jc{mcme0R{%(SblziI&t)%RV(WO`zR_KD?+!i^NiXYzWq zHAk+-={=i#p-A5Y>BCZ50kMC3zQ)>dUT}BspqBN!4NHBP?Zm%fOP^mvGq|ppY$+4w zZ`opFyuZJm-?mZ9X&zo@=AI-NKz=XO8t_z@rNvZJ+q}k|3k5qVOuo7$?XU3{?-Ox* zwX=T(I}j}XdwD08g%uZ+uIo!+Ta$R2#=0y4_981E^mZB^T-elcEP9k{v4DNu(C7m2 zQiB$WPn&(EDQg!hyBY~izV2^T_P5TiKQxy&dG`KI)jp;X7vdWdZg}5-4*&RlDaD6jfoqmPiC;o=e=MGo}$f42*n&tUK zjBJiF*1*pB{WLHARvXpqD36%FjqFY+cq&%K)I-N7`)nSWV0u|fu^O>V%IpAQm zG@N??!keYS`z-n?Tktsq=Izce>cHz1@451uxk1!N^E1oP)Q_3o;~28!Ufc%FT55a) zr#SLuuGk@Hek)s#iXpT;bi~=2tasA$EwiJ=_mX<3c}kMU@I$(w@@D+Cq+S5+fsqZ~ zEQzf-jV&Fp0>Z1K5kqxa`h-egvEh||MS=g;O~74qXmlld@rlDuk}u;5-Uwf4>*YIN zL`(lom})xiqpgauGh5BlvO>!1CHe&qD-jdiDtgsVeOXd2KFXaTryg;b^EAEPBLG%0 z@RE5_T1uSfmhDPlAjpm;b5+59YNe*h7DeBQ1&UMtIy+BaS>i>x_@%QQj4d)3pJ+o-srqikc)0VQQn7(_e8#4OJxN57#>I&HkK>F z|DGbL-ia0Ib4t{)K4aaA=g^MpcK0NYzx+WfpSYXFn<v5%$;u~)`# z=O_BoJJ(B*D6fXDXGA(l7g}uxKleMJT$N|QeYFZY-{lURDIcK;xQM<}GDlkvrh8$ZJO)5Jyyh0MaQhN#j@E)Rjq z-BmHW0ZUW9y)`S&3yUd^aMZTtKN`~ev}=mJhaMY*!#1_<0PMBheIoEjMP{Gr`7ez3 z{MMb;A#>+WR9mp*~O7yxMAlR_h+lnem?(cK%oc}FFWT}LF4u&nzweMawj(w_*YNjBFX;734;_gy<&4Q0^SA@4MyZR3h`?EVqC%;yy3iwHqSku-cf^8>#R%=!@Z zi@YmMjM**ACh@cqiFCHg(UM2e6cHBjpyJ+$H`G(NRpXM*f*Y9o6D_!ha>oe@=>Vl^ z#P{nwEG!=00=M5JCEO?*y@&{ElaywqJI>sx&wQV99>e9QoYa>ykn8=WBVqO4g8|P& zfAtDqqc%DqnmPCf50zRmmabZ{3BDnjg?-lBE_rLuT=eUZ!{Y^}0>`GnfvE~hj0RbE z_@s`?t;E0bIWa}d`vKXc`DxC2`8c018zz0&SfJ93&^vY#v~$$JWSzWg@}I8pRWZIQ zWtLcF=B3tH)I}tF(Y9n6`hxL19C=?MnMSYd~n}fRcA+ zGEyrBhO-#1JgBxvl{XwRuQDmuVl@H}N29h5)BI?|@_Iiiz4yZP4sCsMK*}~{gK}3W zWC|#VxFv_kk#A-Nl3$3C_yZF-wswG0H~Hn<)0@GS=8wb{c8#Gu((T(gCZ~1Y_KhRn z_?54L7WH?VHN3Eahx<6@w_p~kY{;6=o7K?PvM|H1zL#CZ90*P-4fFjq`%s8rHT%Vq zLKrWRB0JVw`0Bcmzq`2mHGrEvcW5|ho&E9l_tr}5)I}d{LO{BQJ3~k>2?y>DY@6dg z+za*LHqQQhALKlnnE2FnKI1^KLZ5@(%_aGIGu>R71+QI=G>N@qI3ZbQ*FistS7(XB z0axI7JH^%~N)_W0t6}J*EqmT2M&J(cl@`h6GzQV3aV@D>f70lzeOo#uHI-AAt^n_# z>9+N0&(6D$074YEi@XHIF#QB)R(IikJ`f8#^m|Gr zUk9@53lEYXqqBS2DYAa9m#lK<=fQ_th8g{g_AvQbj+_+Z+xR?4Jr2Otm3v|!$oxcn zWOW*p|M}fX3+o~HS?W!T%JQ~Y{-TjCj0$-yA-mv=_E&LxDiiP29%y!i;FVl8j!Mo%4 z<&}uZ@&cuYK^PH$+H#Zg$d)1~;f8fzuerEsejSZZ$z3-os`-+qZ2HUO7XuoKUvW)| zyJFO@H$!-(bofMxcJ3?RbLWDx^7)T+esr(l2Et+|w z{8QxejYdYFvR;m$>^5*OmuQ3@7_#0nm;Q9GFO?C@`YyQ|O%a-K9jrGI$P{~wd9ktl zW_QvT$9@V=5EW@j%!}KF-8_BY$>tfbst|G%E2#XBRj$=Zl`C7@cQuiMam33;IS4;j zUtV`FTT(7m+DW(ZI;}y~W0a-4#A~YZU!k)Nl@EUS8)8B+BjzfiHN1=oKo4CTmY<(r zB+%aFokd5TX`%O^b){}mTX6F!I71>M=j!sv;K9fEC(;qdD)8})b0Ik|H0;!Gw4^uP zgb&J6Y9VJyJyUHZdPRJxGRjV=E_}9-(tLOzZ*m9djyCMQ2ooKUt#r{x`t;06&C2qfb{AH%e9@1 z7{{#Zl7m(pmO|kvS6HdhW~OOm0RKNZJg+day3$2iO)6RfJ&DP_DhlM^*OK z>;A~<(@#k`b*3E#_l>M=(){XS#!*TIlP=GpqAXp4Fb?niz~;`bSZ?-Dts^I4wI7h` zwo<18?{e-GRg{FJ0CAv?Y{v1n&)f7<6YGZ{B1YM@mSl@Jb*6Y2j(vx=QkwHo$KG0L=1=s%cG4Ek?O>e<4t^z($5S(` zG~R=24wkCjEuRvZJtM$-xXBJ-0-|g9M5G?Tf zlKcSP9I*yK4;2q`_OJDU=Kh>$;ozSr(_&OU3!2a7YZaViy$sYgV8Ik!8P(Fx6d7#_ zlhsi>-o%&wDUn~n)dTqJ_1^|p0QdfbWM8GEqqYLR%Pr8khNpZivmC8$@e=LyfF5

    {#&GRImH_-cM!YHuDl_vQK(T}#Q-$KJ5X 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%0A9r}u1JMbamx>xbrHp)O!*F$tpCJ-p2gtp5(;nZg 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

    Xlur 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 z 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%0A?-A4r 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

  1. x#Mp3o>(CvlhyWQ9b1{hw*rTNXuW@8<&QGm-4@z!%I;zUCGT1ZPH)CZ6JHUZ2PiSSRTF^Cuqaw z|Br1%kIxLX4rJr}5={YcAFc+ZGqnnRPBov7ML7kOt?Nwle}D4%}btbmpJf z{u{Y|BZ(VH_VO2Yo!ku`%&Ni52&nIYXD(%2>`JEfvgG^dhP}l;{wN!y)BaAvE7Ls{PvqhzyPHBT~*?gJ4I^%MiT)Y;vQR`mqi z{ZqjCD#ezaqUyS%F?kp+heHx5Ma+ChN2dwb$=3BzoflMMY?AL;ArxWMIvUXC$`Phh zY5ds?XMY7&hTGO5Wcq8&i2C#7@}q*a!pkuP`5*%c;VBcAS5t;vMc^?;84&6?0P* zCpg!K#w}O=C_NdO#0%_<{QM``o<3O9w}0wXTKC)zRxY-9avVB+Bs!oMD(HF4a63@9 zJ!=2p5SCMIqzeoYLOpWp@cWaVX33ni^c7L_Eg5(|=D1J9h{K~=D!AeIX;$&XR%W2# zx$(I#N|cJp8#r{Ke-CEn3M#i}XzK@z(dO;}>Ji4Wkt)7Uc_jIu&Kt`GBW|@kjf+zO z?ae?L1E8Y83$3QG=tPOsaHW;?Qww@+Q+Lq8Z22He1rKQz_+G-R9CTKsdq9V226TLZ zA$c-Fz~_^Ht#Z@ zHlKE4BNj23dT)kjCRslB#LQRQp}XakTZBXuUfp+IE`Jp{FF*iBmCXh1q6o^$^pybn z{&BY~`?9MxvjTSS z@-zY;dj~N@B~mR4{>9qfdB7N>tHjC4=7F}&+x91p6$eYHiv zzmq=s-+B6?zl)6Y&TDj58m-dxp1cql&>P4K#XjMbd3fTEkiWycp_A<{OSN%!1`5kc zQ9Ob^r1m}z#9+olQ#Du7B1XAtS7D3A4>+IqSs4GTajUXV*KG7GH0?KSwBDriQ#A+| z3)GXfN3<#1Bj4>MCLj>AY^r)_suoovYVjdQr??{JG&$ln_Qz}L=mjw6iCoC{-$aQR1#^j`TIU=^cNgVX9G;U4E6PL>qR9Nni z_rcY5pZi{Wppz?Sjg(#exqtorXx-<@iwTtMG%BoRYhaJG zTaO{>=H%X^c776FG`aXbo~hx~s(I}VpvuJV+!hXbvMLfN3cr*n(Dsac+9GmfQ}H55 zSZ3pCa3_85gJqGjuUlSTSR{~lPbtdjHFZ2Xjui0`C>a0uj$o%Uu@we_8NWF;!%S8^p{;BV>ek+iPu6(=}PuMcv0N?7} z=RJ7v>xcOLq-tQJ({AOw6mU zq`;Kt4Sz`(+%$ZA5ET90Mf2!&%(J1kba3C17^7%D;w7YS>VoYs2T)#mg@I^Apktn#G zGKD_2!tuA3n6~^F)EjWU2;Z9cEMh=e=%P{(Ns+OmtYycYb5(ctcPOLzvjgCx5_3}T z{XpUPvRd#u*St&KP?1#QmjBmx_UG@==PKBKE z{LfTgU56lKl9Gss&!|z*KzbrV%n5cWU!c#NvX)Iz8c3|efep%K%SC?! znzoJVaAbWD@ALM)_4C76;E%EuYgVMJqN7hh?^!k^qc`G(w632gPjXP(o>N|atzzHC z*sc=uv9LL7+pkaambfX~XxZs4U+Y7hT_+-%D<9XZ4@(h-K76uo_in_KXqD2`!DU8V z(zY!gy_apX`|>pIQNMDEx1u4GW*o zoUS=b*51}Y(O>bdE;|T_>9Vq9t!4&7Y|azCi!L8TTp8jC;xalp&z%Z=nC)L8U96cc zxwKfrUuEx2dN%EZG-agV8dk*ga4VMV?`UxGJY^T(uwn1=7g^KVWZlo~MhP4J=H$Aefdaun^h1-f|jPV(ZCMw=r0f1bt%rT`FX%DPCh z#e3(klRunJoT4uRv>8yT`2Bi8-kL5Z9gnbCrRBYYkgqH!A`@@) z^4`B|Hz$lbP|G%)lS%OgJ4l1|2iJM{NoUNC<>Q6K$kr@4<*^CA-DokpvNQ2e=7(gp zwoCu7(nss+Rp4e4t%RPU)g)(w!atV658FOsZBN<>`0HwL$ZpAEo%<2?>2EJ|(p4cH zoGB)ym+*JyXk7n6+GNRGFjW-P%KaS7dOy79WuxehEQ4F_h15-cOmq4gZ(`M>Ca|wW zu=QcL2qGDut&(;pzt zk}GAwqnrKOY@$nj)syx45znmXPX{1nFQPVbKGahYKi0vka8oyvUaG5n)n5G%CJ9yM zFS4RXP|rY1oJlA=Q|9rt>+5mXxlVE5DIV~Fh(vKKQX0R$W?LTzYMDhm z584=kkJY=?Jg(HoJQQN)lzaM&D*#|{8{_Guv?9_)y^Rw2GTV~U9$rREPpO}VL`px! z&lLY~xCdZ7!{wtO$C z&Zw*PrsIvkXwKfn7W?sndFS*h>R3k?jw_wIy(o%-t?I7fEvW0=H^40L&DVsvY>%#I%^oF+K)ver6?ec*sGjf4gx{DjRsV9>@_@a3>Z1+ z8GQg>qI>P;nCDnwr`bGsk2df2Ij_bNyLj4kb&gr(Hkf9999XOA;sY{5xw^Acf_hzp3LNq_72F zOp<7M&_7-7u!)+!!G(qLQq-GDleau9G%)bxAdivVr)JO|TyE#lrcBOY3ZE^C#D;S@ zU-C>z9s%lf%V=SwU5GCWzIXSC>ilWO)@M;>IhZm@SWxi5gB7gkg5+`ctPS8$Uu9oT zGQ!H`zd}bn^6HhkLKKa*<{=ae|U;HcY2xYbasC97+5s%>6vrj=5R0|m<#AWya*h6 zHrL4fSn4T1%u+KWjE(6KP)n8V0-;MgU!!!nM@U8uez#<&cK&&0)T*@PjO+n`p1D=a zN{Db~B&p2B2CPeMaaMFXQb?@fonkDCU4AeCMC>Tv!r?+j82AQaPDw@xaZh+gdmDB# zu!4|AQ9I`>Gca==teok2NY5)PnBNGQ8t;vGi4L-38j!ZaNh%X|Wy!Xm)lNdb$~N(g z5?@vpLkW)IJR^J49*qH9SsBj+5|_@xl{msN+2+NruukNRb9OCN*fH(~wwK}a>Fh#j&^WOFygwvWrRdh2EiOXIuZ_uMmNBv1tS?IJ~{ z?Er1J<~;Mfjm%d!_y75#YWTWN^cEAQM!irVE608KeJO+P>+P@B21g|_=ht@15{HXl zHI&tQB5cVw*mT(@cR%vt_Lny&++L?e+|p#2M2qG=1P*nrkAfV&p!3KFo1tldVBBn)wT+Ko?B&Vw#H%0u2=3foh@ zNqR?RtE_ULbR48Kj&TZ3y~$=DnprH4!Ix-@K}APCPkchHkPiO#o~EZ3RH9rWQ*5O|$tp(LBSO3sebqMb`UV<~ZB5O^ipC9+fk1RIx?GAeDhV|71hI zZNKL@k+&OF0bVy-*Gv+ZwnOr%cP{0MKL7o%f>xwx)C2UWdzkQC`i@?q?y99zW1gi? z%G|p2T_F4mv;h|80uhF~+m6>W7NrL85YZNxf)n}eS~1i_OSI$&N9DrOJsOpE-y2%s&$!{Ym`;-iXo-d+q82}&`hENX{Ov-ktCBvrMsj5 z`5~Qnw1z^U{QH4A*gG~nwWg}Ee zNSS<=SwdGpTGejt8{HhQu%d}Ug##GT8}|g3h5(I5?God%U%+0~urQX?9`OIA=`7pY z%-(2!I&EQ!bxMIkus={NSb^YHN`Vrb5ZsCrthhs`6ema_xH}0D++~p9PJ&BIa4oKd zlk?(yf#k}5uIy*;d#&|b1L+Q}O1Qmb;N4@hMya&hC-!A8p=`b;gwOr-62Nt>T2i9e_=ER8)9J3 zfZP_2;#?rjiND;5kB4*PTm#|qPg5!RC!(;ikH|E9CJ=(<{*elZMZUviP7^QNgC0@< z*`Ok!aSyQa?YF4YAPkw;7QM=Iw;1O{K@QI)Yp$``&)+0=HNDGy3_`u1@{9BayMDrv z$S_OQOYM}I!jg-Q4UkGvV@3@-!cJQ8G&Xy@v6}ntgGwSC2DV`y%f%CbIdE-b!0HoM zZB!o>8+iQ*+icOxw4rp9-XI4hf`bki)_YqfOEBCGN}gk-K&wnIIhmH5Iw z7EJ=_c+0kLO4HVTxJQjKB4to7E;n?$UoO(!-Zm=0wMdd@R`qJN{^!(il2Gf}kraL? zY#oES5L0Ge-tzAm+8+Pz+@maAplG1=hr0l7SE_;v+U4HivP>1 zu>_6M-1apE#t}Qu6!GJLIyC6vL5~=n*MC;%c1`|p&|Oj|@x~EX#-yIJP3Wt=U8xir zi=qs2;|*u<)_#@rsbl@hu)*rS6c(`kyD%7ocvHYll2BnKE8MU}7vOOY$l zkQ#Xzaq8nl=1M^t$BrMesQ+$qR8vb(Gk4@mDK0qWEW-6eNU}XkNyPY&uhDmidRTYQ zdp@>#?AhIn8u{%8s-E{@BJcHsVoW1wC9p1;OOPpK7N%~LKi__hVr%rz1rBr+>H4)} zm;_2(xu8~IfHPk0JoPToBy74f_N$mhY^tuDq<=DR0ae%P zmOoIt6XE|D9SSZygYGgM-Y&y3{J`+?xJtMGc`Jq<5=~nHroY!K)p2xzH^J@Hp%i^n z^VCU)vBWd1inasx2YP#si#qA*MmFy1HFIpMCE~N2E7|;-bEVA4f3z*sK1-Gj-P1;O zxOLIbeD_SG#1IvZ1V5^|>e<=e`ar=!SZiVYe)NGxv4c(P)Eg{PO<*wf_zg$;7NZjM z?o9*7u0Hp~3%^#&h7QrT$!D7>z@|0bd;w=6jO8&7&3RNip(Lm0YPs5$easeYXVSKW zRpAHqrmtG(vh5};jK{_viY{2FdH5TIwyXjjEn5}g+-_YJYP`uc94nT83#7l56B!(i z-)5NJWwqhx)2Q@DPP-&EWvr7Qr6R~^p}P?fbi|6uJ8P-w&}pRBFCAR&haVNN&jMZ{H(w; z+v-#M-+ROXYf~J>5RRd~KTPr7GJEXtK(U{)hJ^N$nM0n&i>Npk}Vzvq6}89w2q-)6**i4%93kQi|oiP-lxPve_zGT2HndF+tC>N?j}> zC^DSgv$(BF2FNAEQk9xl#xBr6LND^4_hK}Ib>b^lac-$O6c=zhwbvWG zZecpvCtoFO4dE%EpQD~hSAhEWwA0x>Ifi=u#Tw!jT512omXB`+%!WFAvl*Ttv_zk3 z(2u$gf`mc#SGs{JF>JDEjmp>$Nd#9+&vnZaMMAyXKXw4OKBDbwgigfM+agis%X#@qa~R{Z_dlfuIdjh5*7tPj|eN_&0aOkQLEubicoI&`D?l zYJ`KH^WeezhiW*z^evXK(k4X@U2y-*OB^g(Cy2-@RC_?C1V@CpO{PnRFm3}HmdvdQ zv|`*|R{lpX|M6$3117zqT_s5>k0oHQ!1=G^=glu@N+{G%|LDNa0>@Ye@M&xh>HgMg z1P5!+-nAwpMW56`Bj0gX#knoBmWyq>A$n{VrI)dv7A!nn2p-jSEst@J59mfu$E#oX zPps=2RjFv71K+WXPdVrtIU&M`tkoLzh(-5inUlVc1()fn-@2+;-KV+;lo~$9m)t#E zh5~209$Phsc4cHZJAD3TKc|>x&6|IYkhgfII8bH9=v8t3{2;ocAo+>n`zO0H|LFWL z>^!TUP&TzZ@p5Y+q{l2^#qqFXZSGE|a!9#2sIxF{Sb(u{CKCkEa>~+qv!|b>PT?;i zTiN|qfDpF+k`zjTS>p4Ga>3B_0gdl*IHcN_j2A#P?EaU|0#(Nf(8{yabo&g69*twS zcRpJkl9qn$);Yyt4o4#bN@$51;J|`a9dWYZMobAXCIrCzn25+3%S}i3M_)%<;T2Z% zk{2nYkbP4fcD?E*AyLGEq%YxsqmC6H7HOcf-Yt=f9~wW4aH>!tC=pT4`+-pQA zu9p9#bcRV6PSF^j=5p*cn1;EBE`}j!em?KGjSl{$W>=OJO)7Wc^Ah7SASn{AHfbPE zxZC5h7wa*-TLyc^aYCy@lChGSp&U|Vi#uFik}~Ca%M(-*+^IXiqs=p61+30JSGxOS za|Gk_bfh!M0!+TX53IT@fHg*sGMLXgSOpJP$6guPAeZ2K?`9I*6z|rp^{=ZWp^9@- zxCTPlch|@7KUDCxJznkVqYLECBOMRl)i*ukv&H3|f2HLff4vk0a7v0DV^NYEX*N+w zr*sN8k*{!_Nq?dPF=<|Yb%I_svVcm@I6;w{$8%$5A4hMMs+#WXBVF6z*m56@BhjD5 z1#A5`Ct=cpKHTvFeY!lnLo#L)V*X>YB70U;+M`tctA&y+><=1shb zonuzfPgVi(ZYK3byyr_=;Z@;VUZHVon-=3X;vl`6p~f;0UzMI+I0;^tYQ-6js$G%E z8AD4HVK7FAkq8d%n7R%rm*4dy0~;OwGCOK@Sj_9ztcpGkVyj|0{*!7Y5x=kqr^`1< zr;R;d+YU~dmP{#0vyWiyH(t*8iMvr#9GIL8w@uPZ0>QVJ!iq&CBCV2fZCOk zdzXsog9Gs~i!6YZt+AuI9?`B2h}Z~eQT9Y`6r_iq>}cN440w1nJc|{ zR;6W=K{u@1YN+2?F>4=tmC^0wQ#vF#;f=ZZQCja%^C1aF9v&t338$gQJY!nWBWU#9 zD~$Ugr3-kQl~ma{ABcwz8yp^%d`xcvBL>Vo_^OrD6UinPl5H-1$E`ze+F3Ae{>v5o zdK+z)Ib%7{V)=9y{QA1RR(kGGa6@O30!6a~hoqAp7Uh#m(w0>zYCB&EX|qup)papQ z+=hE_J<#IS&x1DsBClTa>bs}$k)7t((D{`Xe(UL%)WV=(Au zfVa-n$K(yqI;*C2CS@CxHZm#pW0WCL@|HQnIN{hv=N8L8to9{d=k#QQ(8g>dtF-&!A0}`Y+~sRuIMdOH#a#eF?{wkMU`_`3m|5ASQe<$k?vM3On|8@I_WcQYKL7% zlH%+edoS-(bA9{osLI_cpOP%z&$D%+`eu82y(P#0Y{AA~(#~v<-efLQiIvU1YO;T~ zAja_K4b5R()4~sB!y+!8is%u=VBwcrK6u)W*=CUtr-)6rf0NWbydRV(&AqfuGINLD zfbL#aYW(JVO4Oe7(hs!VHqt!5uX7P5;g=bKe|smbFFuywvCholc=h#ofqw3$T^Mh4 zp#*JShAlf)%JoO>k+cO(a=VJm30A=Y`^;~VfR!z4rhjk*x7?T_;EPcqHBEY?uJh=@7?{x51+ z$+>bDkpk&Cdu?a6;wQ%H+ONe7Exeq3I@bg1^xf+uCl(IWQu`v-563|`=ZCGtgQm&9 zn5SNGZl-$!Yxs>1;F~87cH0w{2>pBZrG^b-JUI-Gtk&&# zDb8?J?xpsyN}ql7x~FhQ*KsuR#BjSB1{s6j_$56oZ$d-^rsYu#n?7dsf^zn?=_g`v zKnHhM@)g}hWQ0e!3qb^yS=b*AG>rKC+ER%ZUMPYZUfam!)289v_$uoaEt4sbxwG7? zYswpmkWK29*n_(%WgW=a4uptLeI)SM+j*Ezm7(E>QK)rzuyvLH{_-I^r+vZ+WTxS| z88GIDUxt%E=eILtFxOX>MUFnh>3BH_PDJkGpScd7orXS`2fnX-5|C}*I51i}3BQcG zZ_}%E%K>8^%GZ2<0VdcXNlPZsy9G;Z!xfWT{i-9G^l{CB|cENKra?eXNAvh642ey#UDb z2XUh$K^dCO@|%E{7%?oJH^Q>vs7@OdlXbXrUnpGHT{8|KTY*+ z;Z_x+kEa4%vD5cqK*bD^yCMpks>n07n4~&Q&4+i)^?Fd=cfBt?_hYR1K&rUJf*v6U zFEwr3e4!3Eb(1}DMq8u^RKD$n62f=c8p^NrZo}=6q6}o34Udl9%ymbNUt6dNW{61) zu`*96SDZDL=_p^)dzSJS5`x4tew`gTXB@Awm`98d0TodaCpRsDp`CaQXax5vP8h!nnpiq zt6dTo^V7Ba9J2aziYq?esOn<^agg8~Y)n*92~Jlnc(oh%>-uZ?Y@agjHnH%$8QjLN zS|N(L1M%Q&2J<9cBMIZlLN#C@&gSO5i5=pFpWmuugfad|Tq;~7o%$-XT)*-vBgMQy zJtSqZl2c>k?qGy@zO3)yUM^_rA3MTM;Adx?^QL)4_JV_FI_J>el*UyA^VAyvQmRC>x+?H85c2aXmhU<0W zo>CB#_33!^Z&HwA7pvwzwa*c1d06hw?WZdH$Qr^g^Zc|;8#AsL5nQMDwwLSQn^ohW{|R0RF{41bfA$cML_rG zAU9(ZsxiW|0KIIU5tXT``_Qo#08O>TAcN-J)#+~7GS}y7J}Lxq(I5##!5?gQ!t%xZ z^qzD$m@dsZl9<;kU# z>6Oeyo@eRxN|MoyJf7w$oID*vB2*KPe@D{PscGd9&=wl(jeAi;8iG^e&lPJH-`Xq? zcCmN@_!E%5RX*nG57qBnilOiu{`^$=OF|edc@xCefAG6@ym@Vb!|wy?-}X7Cr)~&8 z7#BFoo`C|PrMlV=xqpb(D}e~#2u?=NmR;nT)hrBxGH6!#@=X5b-$Q=}pN&N^ zODsVLJNk4Q_AZLn0qz7L-U<@XbR`8+5Dw)eW)B%9k z+qNH9y~l{^8zQ+o*Qt{3seVztM({K$#BU$YI=%;ZB+aOwB>(Z3wrMhJ^8&bcE+Dg9 zwjM*KN45D)=y}v8?It5xiX1CNZzA8cn8*{P#J;mjTKA|Mz^Il@mJU1X(m8D;US03- zud(4VVa3W^|GuhrMOPQM@Gy=(5WY~zhh8Yd$Cv-AZ{YObw8KJet8k*thoGl)F)hH4 zNA(cnc1%r)c<*28B}mZG-#SKC224*#M?gp&v_)Sx8__Zgo9F^^=>-ifS~W(GEgYU! z`JwxxVt5?w=GH6f#`Uo&~zNzeg~F)y8|l2%aBEEKdz@G{R9U%+4d8AGK}|Iq=j%yOH#t z(~0gC8PGuL_q1$7yzL^`wdsq)YvqX5r;7SfEo?8#;d@*nWsoLY2zF~mbOF6=a?vuf zZ&aXBiIjF4{4^@6kyZ+>(GFEQXw;9lg+^x`8_ZNT;ez*_s|WarJ=0*LdD)i^O~ckU zvWH+!-#!kJ+r#=1dEMQHxhLDk1%`F$wo4YJqN;o|72}`=Z{Jl>2!d<6P`4&@@fhhr?ZLT-cKl! z%dw?BlhH2FqT(^03NLQiqW(9anb-a+^;TumTY`%AFRe&uw8^Ma1mU)#G}Vjf;i7 zZ!duLyF$KitCPW03(jc%iKRStp9QoSM`j+-*lTYNsn8{8MZ$zFS<4T6+eAm80LVt1 z69nq{$XC0;cV1FBZ32Tozt2N--jR$9Ao;B`Uc4I&ajH=*jT)wM)I}}JJKxsR&Z2t6 z+5OJ}Q|ZQM|Gl!m;W`63Ogv#L`Irs!lE@oX6_v=l`?TzuWhr3nnyZ&h4UZx5*J%N3;-XdeI+;8ie)rY*9Qqt51<04{F?G^NX=7d`m*J z)pX`U?*$Y7$8G>zy5W2yMk;e`oa6Z^Ggu(N)L8Z>#z}&*)CATF=m2|6qFPpHa^Z?8 z0U|!TAQ(2yb(5LUXX)c8xaQgLNYRyEs1e3_h(j7RxF?OyT6geCdc;!@C{L70CM7c# zvWGSih2RFali<=!mwEXP+q8m3!4z7waodyq4kXU{HLiKU<8r=AksueMs?Fm`*nzs4 zNcr?_XI#07MZO9QQLa;=n@A}vQvQXYgI>~woMz1MigY)fY8bnxR^E)CZeKHU&>f8_0uHc;3H)qsc7d})H|W3x z>#p;(m8v+8u^76Na<^DN4kPEVCwC09$FHlZfxY@NC8mNklb-OK`1_0yjL0G{$T$qZ zCt15jhPV1*#V06{p{`@oNVKVEkf)NaRUrsOl-HOz5QOIrqlRIVBib3SJ&-+Gbfw=e zH$RY%V>eP{y#7C6jM{ABM1qS#ID>1ngKY-VERph6oh8ypl~2DwGyXHDB)IOBtz2wF+t6fElJ}$Zo`+M#I?NWSz>#Gj%eTts z06|!;LMwx(R=klS7?f#W;AO-xJ|-G4zD7n1vi|WUOORUm{?i1Bv+Tawi1S(N+#%NX zeQ^>)67ivaq!0r99rhak7aNRv(?!Owao~*RjbnUz2~gW*G;TTFT&vUo9Z9mikol*? zm`Nm9pcY3a<$;z|EhB4GkBO(suWE_s=;w!{L5&OjSovQo2vev+fBOjw(p}_PO2?Y z5D>7A*H~>#AYi<3)_)=VKy)Ml5*wd1S}(*5-#n@o70ZNu18(=#h%O)k@NY4;*16qj z>#qLPf&Ud4IL8aMHNdLH#ptGxm=DTQ%Gm(9I-F4lM|86;s&?6SP~Q9<0pB4Dr%+0# zV;T%vJj27B<6Q^9b!6gWLcO=`K+m5MqW*e?__6aMPN$PrrhS4)>077CQ@iA?Iyw|{ zP}6N((J+JxC*Se{Tg#^TESS{;2`prNdYz>F?ypyVqsJyLafln5fC~Lmh4hK-T(3SU z{L7RraGmE;iL!FLc1O8iPP*-;XTU+-YH&ahBuwE(kyO1}fF|>G60Q~WnDw%a({)_` zzB>TVps2Xb)xg^Ic{I%xFh!Y*b3j^t~=J5`bQ?%Q!n6nOm2CDk!%WpD*40mGjJ{ zvZZP#kh3rB=4p~hUme8)bA%Q0b^8SO76-aT1|9XHD6)jrQ0?1 z%Zk`a&Q@nQdH<((?D47aYHuRqR0-#%cP}{}JL4p%nfu(WV352;*!2oi_Aae*Az#b0 zfZudamPiBnCc&CMnRb%IDP#Z41!HPbE3I+dxXtU3*Y5211~K^pGv z!TPEB*Wb19EFDH?O&nbF#RGYi9*o;ug}`<7R&puDP?el%G-2>)1zjx|{dCV}JD@F_ zjoyab#DX{ZA&jJldK(D?7hA3EoaRGadyUv4UtZ)#rc!b9*Z?cH(VCChDt@K%0kz}# z%S=3cQKVJ~9jP-javG`s9S)%-H}YcOw6Vt-NAu0{p&WKxqAgkn+K;?Q_o$`;AP?_Z zy~1s~X^X@S_x_*0Vv-EYZ`4)w!`0pQ5e~!I_G(=ryU_h0B#u@n?;qyr3Q$O)MF9dC zJM-PleAd!DZ~!!O=HGT0jT-YvrfL7_IkqKHkvEYb`?CL+xX5a{%+1xkBCqH;B~NVm zdDkeD9zc?sXmtQ``eFR+N~hkTi$MbY7+rI{!hhI?dBxU6;q9lHhMS&{G?qV zmVF2y?$$i$_K$iPYz<^uXud0&_DA$CR0jjL>LePFfTsWInJap_>VSH)TqbW9yez*& zPG=Wq3MSuZW4uHTK-0=UHs#-^2xhLsge!*l?>a2oETcYS{OX>tD>`QF+&a~+jNDL% zHu|=`y2EoJ7G-Qlfu!m>TRc1CB8>qHMo%v>p|)+KgswbE<*tYODE;MMF&yQwg-~vv zB)SqqYqfMg0Qq**V(q|0acRdI8N?Zs72#ge5scPH*u-f&n01cH2dt}j#P*pd?+v@| z3gPT79NiE@u=cfXr=h0+vc3?Mc9zdl!XxlN9vYioJY){~=rHd2F5yO<{D<%tN3|u!}!$jZ(Vl)JC%bKB%PZw{`^YXrZV7g0hHll|p$~OD_>Uj!S1d zl*7oP#prd=D$Cug@G}{m%n8YzFTt8!m%fF;n-XI)!F%Gbaj@C4A;uEJWMi2mbVm7N z!WlNBQm?q)B-f=&u|+e}HOiFYTEBKcRW#k&D>;47w9|TY)uedr^14GX;?zfpysx+< zWAB-|TT2r8!YdgX37*{F8QB`MC3An_ajkmg-w1{`Ue_e>ic9Y7b$yiHh8snzW}zDZ z52WVU5nVEj8xTFlT8GDrTi8_%y^*Gpo2}w>fx1-9C1+;6^y~X`(rz;zLrGfkP6aXJ zp04*26S4=TR@@?W64}n zu=-WuiPuG(_j@>@VbKrMUC@-dVf_XPJyiTNJgVgs)NWf+B8}T;s@88gEfABOk~(#9 z_HJ3-Zw&a4HRdeD>B2Ls_~-JxV`9|sccx>AO=BogY@LDR!7~JSokCUjx*EGLVk$bI zYHOInIlmL;+xM)vrGLMLeHAG&el8IcG@9ysQA-c^sX)Q~1p^L$8!!m}09>bZ4kH;`Y8dK5FTL1WEQZR6N4R_Fc zi}n*T*TF01)-3rqAw}3-Cu5AgmVS^PHZ0vCjA`dkA}L~v$5RAnVg9mx)@NgC&ptpB zuX@h#8o>2a_nXl;k(=O%Q>K~o0c?R)MJj0!5Vk+6rwgn+;QMKn`Tj^|LTUOGG_!KSt(|YgeMg&urz)oH{6hQMI{eHyMqP175ry3!XTNV$aIm9!drdr_)R8vt~UWv2I)TJ0- z8#CPl5xKFs)9xO^ilr1lDm|mk`&nbuacJoh<2^1272SC4a+ao%%{=6!8Q|fby?xJd z6eY1rSqJJD40iE2`dxBR1LTiaBCX>W+Y~mm?bwbvimvMrjBzg{7A)$O5L~NomV23Q z{Sj>|7ez#RzV$T{NzjPT?ppYo?CNBg;JJo7x^@dCRlkGw1Et~w72!>3h$WGX^^=~V z95?+y?UqFYr}l8^5%~#;GHpUVbFts7gQ&2J*xZMB@gm`n;$?o#M6~boHp_fPAqqoU zS4cV6k_R^Es8KDqv*7cwm(DLMri&sP;)^z{ZilROOmCIw6g}Q91G>@B%0P&xyUJ@c zO?h;)LS#ymSu}(#|MytF^yFokx43@5%39!9wbC4yAP!8dc4ZtyG%92)V%(qvU3|y?t264o4xy76JZ&@nLi<+X>;Te;4AMd3aKd zNZCHT{XVhifDRDJF!rp2Rxt-i$6cD_q-y#CIWSQfc-UETn?jwVsiUsrgHjV`-3$d9 z6ERl*cGaoM>NHf;!1y{k+ctpZ4o9`}PiY(PwrchRb*Ura{a6?LijLDily#DY(n|~1|x25;EUrjKz(9>j~*o?_AHG<|F`ns8Pb4uC5 z?mDZR8e+y}^QQ(S()=^OHa@sLu)9WkE4ZlzgN&UG>|DulfWmvu&V!;~Ejj5$97fvhqLBmZ*R~ury%ovLMEkQ4=$^ z7faJ=8#-vZ$Pj&;vCbd{cmp{zVnenor@kRr1L_Apj;u4t;R=_Zw$`zCIvZ6C=PpzV zGheAau*^zoquo3F@uFUPXGuh!8`_r++%RD_{t+IpjFh!mJ1)IN2mN*xn^B)IAh}<7 z_QE=4K*a>1AhD~D1dmS&E**d{3BHZy_f#^m%4a>ik$TG73X)*yEHzJm`l01`M{iHQ zS8`nwDYC)z6t;fGF~HuU6+f!X=sDR2-+F?JwsNV$W-Q@7p~D5-G#J?NOlE-Ps0r%y zsgY&4o!8&`gvtgeQg_?Us6j%$@IjtV=x+q+5g&2``)YN)V_c2Onu3UJElc8~@mqVO?^*!%+u6RP|9;jbPRcnxk zp`QJr_v`0vnTm0z33^=`W*nOB(#ZC6@T7MpLBPAQl(v=Uz4C6@ zt4twUw}2g1_vAv&a`>b5y`Z(Jh4=K-tAW@8xA*{_t}@t29W#7 z8yXt^3AE9E#m-7i&ISOpD%G#M&JkMaZ%SbdI zR^QrycrP%wksGeR9(VWtjFJlwy=K?ED}ajFJ~-+w`bt*~P|$mO1XKjW?o!YhvU~>;`Qg?YO>}=8EvH z;}e}a^p^TrZH6A0=$K+a0|hg3bzz3G4*7IMPPJ0@O~U(UqFpg<_~CY$)%5^T*eD?q z<+=_`-O?Sv7|PP;jt;21ryTV>K^ttdWvJElF*$aOMa}xQ31V&-=?^a1g+acPel;Aq zjXb%rT?;nGzbHcrcMMc)D z4JAA~byEVT{B)HkbZ@9!8Wmeuu6*AzY3~vi<^>S1%#o4o+_EaKPg=JgC0(S|ET*AV zH1f>qM8+l@&*AC?{bkd1qY^CrxRdWIq*0^YrjtGOD|9tE)zCJs`ct~xe72@T!$9|P zp`PKgRgTJyVB0}`PYvLn*L-@L&RKA2x%vM{)eST|LAOHwEXbWPxq6Ee2Wdkp>Wxu* z(lfbd-SgQ3{gj7$1&i^PwfGgMQG1gzW%;l%3SSxKCWtYJZtTjwW~B|U;3hBa^sm*a z?sI&_w1t2BoTYjTCQlyEIDN$8f!H!MtLE!;t<29V)il6Y>a~F7<;7CAKHAZu*9-|6 zjVDh}zB(`7537wySTrmE)vJ3;K?XnRBB-PkT57T^3V=aOO*5&UyB=+9O%2Qy^<7R{_VS(5NZ}f zS2Oy;@56&achR*gXS0Co=~vR^gm=1e{dWX8zum)sXG$^{|tA_{neH0mgr;b=Rh$VVX zY?2m&{qeGon;%XMOBP>qvZ?8#OG&ey&r|5%JuAR&>w_6ZF`_npUJuyUW}vrmfm!1< z1|9in;XDWjpBM*N)-G3_n&+qPU^vV)5j~%(4`}$%MpU_F6Cqf4Q8v*wS`XsaamJ!b zj9~dn?EMZ?Ik`HegEqqmar;s05TSxOj^_%OC}`1mRR8wXg~}OqrbAG&FZaaQt3M}l zZZ#jwY}-~=!*5Q~#rvs;}i}`HK zy(BEd9U45|yJ}&eZBnEVakb@o-ZyrVt1(0jU`nk{#HE=ln zL%^Qkb%X`I<=1(G^0aGvnOTT+p)X{Wvo5tn?+aSCBWd5*^)d5CCNbC{9d11KPhB3r zOj@#m4}=s8g_o^TgHzKt3}h&jD|MObvS1&~j=bAyL0xtb>%ehsSsGRtpfo1 z(J!#4wtd8QC7AG)F$3%VJg3eN)@{Ava5`a&KH2PWG9I0S6Q?Ox^-+DaDJmFk1$q?A z^_u5vMf4+vv3(dp1)J3*W3S!m2tliUC$CSr4nTysUWZ$-YllKO)q|-Rf0k7%$r%Xw zrEZ%+w7_DphTu3`;=^WDnoR;ABDC9-oM}5BsKM*@PnAw3*a#)IWWJ%h$n||-@^vh@ z7yt!&w+;>Ch3a${-lV3b`^@KaK91zc#ybd?83{^K742K9V0YgYndr;f@^&)XVV*Iz z^!~rfN4!;BoKj_rG0TxCCBjc;;=9WK_X2eNI=G}q?|Qd9hnfBgz6->WF0S7?elGCSIT{GSI?4sog3wolcW zWbWEF&x{~jNl#0@QWd44dMj=j<$+TTtP{w|> z$X_AQkxLu2L%iyF<~eC8P%IxDXV(BYX*I)d4JV$GFV%;+u-6t*5B_G85W+9D#?mM9 z(5+3|UTq>TaME|dW3isWH%gMbkxqXpRsbi?0eFsYg&N{5wBhX z6JO`z2!QHB6OHBxL)fSr_A6%t?d4aWGOy(_&-;qdTZCbW^&+*uszJGKBZGX6no8Y< zO8?pdO2EXn>H|u5Foy`UTCV-Mc?w*->RQ7pa=Pii$P)DHv%bTZ4l)%@sj@l2KmDUA z0wdJ3JoV;n+ABn4VI(hDj*^rA-VP^vF1ty^9mA_*5kb?-bY9}UFEW_Q1~$$!i6cj>`j0EuWV*4nQf#@TcP!0H!1e%=YJ`=Z)!hO%j?QB zy!*hF%nknz!4AH7!C}7PuOWFcrp;Qc z8UI8D-*3W@Qijc+D0`K}p*xuJ&ZVchA}ucI^aJoM`{pMuN_Ai|AG?ClqFd#y+W!{! z6XL3|4D5T*VRD4Vj>x`sT|R>!0SKMyjIB-&Hhg$13n{(>YDBR*oV$*Nrm0v6>dWBCx>Tfxq=Utf_H5xY$60lHPqaV=A^MoT>vf2a?MLn3pXB-|= z0l_nyO&2JjSw_Z^nNx-lv7CoLr4PS+8cOOZ;+|Ms|0rEGkVYmy9eF6(1LvQ%Z(tuL zr%&>(!3-bhaZC)Ax)0{L$*0?g>nv2&$#*p?Rx6Ej2XEcd6R)v6p^Av&HEP4_Vq|~ z^J?vv^19JDP2c6!FAd~d;sT=(pla3kI^Gx1>Az1mRSd2Ejov*m7hEaG{AX0B^nC}( z%_-H8dkGH4ZvFSHK?yjFRU(?e7cTtvLK(ELSFRgp1SP?tbU|>DT&M44FTJAGhWbC8 zA@-+X2Hl>oA&to<5CfM^umoj~XOBX9*#k!si@RNknF$xT<9#fcNpFlT`AS>;kd+z*T zoRSPAcW1{7HLE(tn20vzl%++s(O?y4oP zt7XgI7YBGb%oQ4COBc3UWdbA~Dh6u$h%3%=e5>qvSMi)oCknzFX}YYM4gSI%5Tg{= zA>78&FYi>$Rc5hi4vd^4n$j(lpSXR=HlSC3Oi+$VSTl#4rxM~=e(*80rIV>3xx`nw z*(jVEb`dZVSeJ!f(DtD}1K)@77UsB*LRLAsdHmq(Ur_N$M9d9C`M*W@TBk#5*G6RDTp1k(2qg!IbkgQt)M(}LJ*Xx+$(LA8q)*d? z2+;mcp&*>9MSArvSOorPLry+jCneXsGY)@RGs5rMJR_yn_vCI};el1NE7MwXohfE4 z>9aIN_?xlRUFQW@FR?-)^aL?qx{@-Px0LSR@rp-8l4Yhj@!dgMv~Lo%hGzWE+577p zy@p?`Xw-!;GzIflhnfE8xP{Mc;Qe(mxP3~cc~l6*Lan6bo2WwnGVe%&hjqE2%_lOk zK|QN%%vRV^0`p_Jj$yNI6)k$IYK_Fu%{9;rVqn|FVyXePRJuN{1}^XDq<#wL>1_*o z8=JmgaGhs+mr%*&X>6sJ<@g^#bEU)tmn|{*31uNy{;FF+F9f610hdU#fOQ{2n(O$$ zb96IWy`LClv`L1cxh-Z1>U1@j{`!aFJHzq$>N$_uS-qI&-U~kfU*scd=H$1{bAYA8 z@*8F{!_&UsnUl0M{_GTkzgx5bOQwAKkn0Scj$wwHkvW8c{qo1bxYRu;gG;i|tD{uz z8PF0e)x<{@@m_A4x^{PSVZxO{D!j5~OVxINfzFMcGw=qlj7m<@@d)mppZ? z?|jSSEyLL=dg^11n?&qa>oKw*PoilE2y}29Z@pcQv3sPfmmn}aGXO|>r zKb!rdQ1#s??37`ym`6{1>q}ZS*fi3XCz5>82IF`>LK>63_q0Z@ZF~LdpkDZd4rRKz zFGTJCU-Dm>YP)|6029DXzDp&2*|S_%NS6Wp>s#`$C1~rr|4Y+Z#kG}vfBQevX*zT>W_i%;4o<4?lel~COq;Q|PeYfo#8ifk;raTgJU4cA@ zZR$GB>KA?7Rpblu2At$FxrVaIWrLl|xpN=a${L0~;v%Y`M?y5NubU~#);%^X?qeGA z^^^=JK&fl{W9RQfpLv#@j=hW;l}QA z&f82mby&lk&bjp`{1w~tY&D%Z)UlgQMMSPzM+4Sk*}$<+w;JioqxX*@RO2wtvXP3p z87q|h>uKn>DmlyLk3mwm>aDXi7TPURog=EuXf!}8OtFGYQ@dY;@p_>4EiQTYaOU+? z##ZEt**(Le04}B|fC9@}LKnvVx9SRvyMryXdaCxD!)Fx(gBaRoGaGmQnh7iOYRu80 zr9H&iyH{t!xmJF)ynZ&sR)+M5{B7DP1>>0Qaqtc4ea9fJyu0O4{*NK%WfM)8f?w|$ zniwb9L*0Hv*O=BSF^{J+h3&V6Y5ewe96j68FqoR}3iaV{bHl}j#AcL`#X zvGz~g;U8Yyma2D#6zNkmOIZ&$C3zv(O zEBnRZsg;p+nFhKiG>+QHEwQPgHN15^+hG&JPK|uK25Sw&<>0SW3+LAv5*C?SGOI$f zcAVFhzBy06wv9Rj{2b~baoo-YrTwD#3dt4Tlcx`W4vNhp$77lKVOYpNO|6+eCSTTyKQ(7a`n9 zaaN^Axrzrrr6+&dj!e=czCu?X@*q;Bmhu zlCrDFmpz%6u%aU-!wAaAmGubnJH;e--^-40UZTWf+xjUl=JP-9d|HRz&r|0mIqP2P z(n9(?_hN7EEFuJbkxj47i}c33TWZTU`@B3xsiZo=n!bXR#lW|ouQHZqC`nsDo2 z{^4g!qyGw^50p~l-y!5A+l+F9`@-Sxht4Jt%$mDd z5U(77SG!n|j=fRx_TT+6YlFPo(}We~qtD;IBjmN9HKg-pi0qnlrB-d%FeLTth?b^} zuHvI<;dGE@wA64kZIm$3)aipqWi@_Tl%^p0}-oNB)gYM7)o`!X$GO+Gs6{d1;R_lJ>%6 zAHU2oiBFIWoDc%dI#dXi>C?mX3i=m31da=fJOoBvOCGPzWQFva-Lt?%?A<%w#+Dow zn~tAbC>I)pNUUhG9d#J7f=&qzbm z0kPTKhP658vTTC-PG2vW#*;((bp)1^j_v)#=l?^#Ppt}pjav_GkEHtbX+7&jF;4C< zNEaTET;LXv_R`()YW$JkJKal|ai!E<95q_X2+HYjY73jOdP7TU?Q>d)OUA`ruPOO1y-sM4*F(G0OLNCQDJq zv8F!m)xMSGKMhqW!W7>}GWRU&+1PjRD3q9J=myEU)M|P6>oa$KNDOM`om_d>(HFHr zR35Ffg_ja@tP>lTS;RGp(FgR~u|<|Kk?8Q$NKYE_o^U}eRD$m2xy9A?{7YT84vRE_ zWw1JY+3a`%543w%%j1Sg*m9o-Kd0-LEcthl&ye&|WVZ-~SV8HE(iQJ>6!?N))SmcV3y~8cjGuc;6(?>GP!J z`RQVL1%Lsvm`I95XunVtD}T+g2pOIeoG7-4?qrJ&HDZ5E<18NGf8?fWcN1ZO(Unj} zeyf=*Ylyg1RwFX|;6$A|sns8dXhVhR$A7Oi9Ph!C zW~mQm9YaqZ&sXxXc~$|-Jlk=4D-ZA7`Ck&Ac&mE%GB|7ZH@*X>??8$m=?*}Y8K~mp zk77%2kAXukmbg6_g}8ON#ox>JoT&^ltSC61VGb z28S1ZbV{#!ZpoGq=43^2rO^X6+&1Ua{LDwRY&U1PvA?SPthWiHb=OL!N8Tz&N;um^ ztJ?E4FO(^}f3|QBWo(qocIZhC6K!yg5qJcTysKNC5p*4fj&k+z@)RAZaC?R6_8XQP zN7P+@dV)oVYW#}(ZQWB73s3*f={h=P=RC}7F9(}+s|Xxul5kI;U(PyO$s9=JhR$Qf zOkIBHo2_736C%;gVi99^Z*t8En5b@1Bv$yrIVO#zmiso1~w;2XDeIv;0`ImEH36TM$byde{+dgmY>atfE^ zatye3DN8HJl6aGiE1%N^&hge$TzUqLkF==ep~4bOScVSc580F@G`GYdY4#EJk$Yr+ zrv;?Vwk&X*V|Z!n&@!T+oA8u6*V;EJA=)DLP7}2Ibp}=JVfGBzTfgqopmz~HHG@IQ zN0JcZYLS6N13tCtrM@&4FR`E>Or-Hliazb5EH=+(+6X&F-~O}ZG#G`X?58hMjy<1W zo8_^>jum(!Sv+)a%ejO2E1P73z~L+jmt8ya6+o1ymm`@~gGId#hlm!_@CpSvs8u4U zztz+xw2Z>)Z~O#Sve6Ml-R=&DRYln0nl(~+X(g}%1@iL@V62jW%*y=byZO}1wpIux zC-cn7fZYk5v%D}!QDk`%biLIg-?T}d7D*W$9>EG{hwJuE_SP@YEoY|JjTg266L$5S zimDV|Ow}INU9`vyCKZ^$-=dcR_K-}(yFA~hwmrQv)6NEi4g7bnPVw!#;V9~d=g^TN z5Q_W^Aoj`(5k{4>>@6w9aVy3T1awp9ofa;cIfe640_qgU`8>m4MWk8ezZi_MIthER zry-A+t+BU;t4w0xRDq`L5*Jb5*}$+Dx6@%kOboB0jl$>$shC&(xak1!+FfhzrpEj} z_0mw&G z@#`YvHFosSPY%*dj?REgueBtHCfw|KC6GG$JINXBZ9Og(tg(@Dbg1LX2g{ET>#cZ` z?RkgMV&@(j(cm|^?i@$D@jDZ4V&-MD>8i>B9emjf&#hM z-w|}bK=w+bzsd3A(k}$YmZe;JBJ^I3sW(qDxJIC>7VVQ(Cu^Q7BLzh!m{If}wu1R8|@nX&xHdHg!zV?@j)xC0H&J4`NG zJXAPAgVy;B3XOF(sq&g$-Y;6)R>wb;bpe`we4Ab|y*O<@(D7P1*HopBl1X%H#BcnY z1V=Ad5f{3=z#!gJyg&9gv+veX3j+sW4R63{Rief^BFVZQQvE30(rf-xnmDtB6Iq7G z%hFDmCI~lSYd(vQXZGpMe?nhp$0*6^Bo5>4BDPpR;6i}#Nr+#co|t?IvyFhuT2CjV zW{S0Ql*+eOLN$`!hLTLU0V;J`>EB4LiSY)tL&UUQFOzkN+(n;!?Uc9m+gA!(4RKRg zZd*+$wN5#eI%Qsk|K6~imPl}r(uXyg3AM(Xp?goTK|kbvdyMOKEI7{+UES-?Yxp{* z`18){B$&thFCIspwi?6Dv$9{){ASFe3QSAv zf=t@2yM6S!TaWE$OPA7@q+N!6`9Zs;^=osRVZxnU+9s8H5oWHFTVA58e~*qzq(2|} z^u+Lg;u`oYJcDEESAScWfr){Eh)Vle`XPO6a_^WN^4HMrlv{2PkGBZocH+s`+*m?H zPL+8Ry>$eCXsjB=Oc^144A}3blFl^)$e9gOB zmj@+>g}!B?R?%@aZ&S?0>ky<)%sjz5K8W6<*be{wP>}NYZW4C44BJU*pLGd$TEo3o zi>7b}{Q~jO-f_K4A+rYvLqz5eShwxe)#p%iEr0%D6#1|~DyU!X;c@X_>Mw79nD8R( z)OnHwo-5l0^yZf8C%U{Nt$Kqh<5c;0=IjVKj$S?DS!XD+vKNY5 z{g<;pv3GAWWBDPL0-4Iq)U{$mSrV7|FATx`@e0_E5&Yuu)f9p$nor#WX5;W7H> zB|P!i%}k;x)7lXz`C2}8&ggf+*Sh77y)_Vl zw&bjW_Z1RfEo0m;93E@GUK_@T)uVg#3i_hTp`wnpE*bGq_=1LAB+%Ho`n#0fup@~z zK9}r>(*nf|fGgf7fFC%~<6rahaE3SV^QhB4qU1F!ep3>5+VEA>P^=vPN!V7#+swAf zMs{xkmSRXqk$@T`iumK!`iD{2L$C0GWFG7JmM5+{5xeXC$$W;Rb5uKGuUThJxUgU| z@hverwY7dSrsLw5^nA(I&3CmEPgt*0`jcGSJ59y5Ko%hbeVeK z-WXCVJctm#>5=!ibJ=3B@eQ3yJL~u|2@1ShGxda1gWhozxkRB-=NjV%jR|C(+?8$fm^yP!;JzuIM`SnQ%1W+<1aqvjF*MUsxVUNYO;`d}IWRWHbF46`#I=uI| z@WMH^gv1W!lAk?eJTK{Nv+Ms6Mr{~C0m$lVO5vp|1HK%yR6El(Do{=F$l0Or&OQIm zfg}B2PGzN5n;FwHMscG?IoZ9jEjs+bM_{aF{REGXan?_$?2YJ1<#9{?8XwC+O7fcZlY<2ocFpk0}MO@=NNgE;#8C#zizP3>Sydxg+y80L=RP-=GuI+>7pSL$|dZsi& za7jXV_o|3_Rs|=MmVrz?=I+g|77NW?5rE=mq$N4KPvRAWv)+F_HA>;sv|oy3C?l7y zfl?~rWDlEUE4lAS@U=XZl0wOSd$Vy7oZIx}MuJ1Gf+LJ>M}}rSA}7hrVuBf;X&*)bbD@)eR{aEn%~5uX1?u)hD%Ns6f(V*6ux zH2;@=P23UhR9nRNx#6vrsKw zSm#7dTc-s>GMyt}rLRP|jCAHp`rfwFF&;5J-i^j~(CemqnHX=-PjI38>WWteU#q1a zFn)Yv>++MMK;N_zq(O9u!`Lp{lx+);SR=a=udr-b- zmLQsw2lWeE9JyF^L1`dTvGdAqZcMyUfs9*2+i^d zp#7IMHZH$Ah2PUWon{YZhh(iOFg+UAG}Z;w%5^zAKz z^Yu%ndNL+?5^a5_3(@8eGzigoY2}LZ_MNfBPv+2x``yo%>Kl%S$(@!IrI{m+BEVgrQ*WdD7I};kd9B=)3~!Tt)OxI{l4*0r@O`!KlOD*}ZN>XC zO3>_o7lTFXk68_$F`6z%acZm$JRN&B2VQN-4eouo9zx0LtJI1~mGv?S!`5TJ zBpB)@p0=&W3`ZCxy>?+*^()UB=9qbb<%cm^_RBi40tsp_5j~F#zniKATmD@dX1`d( z2|Illu0uX#@(*~%MN93rom$+7u|cgox$scGRm6f<&9`GRv4z{clYV)nb~a4iDitvt z8{>7;(x-EgEO^5@;`&1FU#mDZEyk0lwh<(u(r7@+I$lh0j6zwpQ@P4y`Rn&D4<79b zE04}fW7l+wK!IBhL-(2SeXAwcdcpdvsIIQ0h1Wp$c0=9 z-DHaT3FC~ihTghUtG(u_G_7fxL8GmJ-wwuZ^R`NEEtZI&DV)TbbHux+S>+<}Gbn*u z)2_)&rmtjZH&B@bRLi8pJnv^szlmUKks3;9>-4)X?t4rp)i$M-VadyRqSyw)&8t^* zxt*Z82SXZdXt+`vMS4E__y?A zMC?j_PVSkdeQKoWOE{whlH1bZM>?lQ6~$6AitoM@<{!UZH$zUPm2i}PQ6WPr)NGyX4J|px>iH4>Z$;RI3UMWvGCjq9LbL>Z#!JnQEKZ14SpM`tf6LhO*o?|=^3k|TtoYzBw}4T?72g9cB0C+^MCH3q=ah_nA&s-k zLh1OkO6nA3pZ+_898ni<-+9PqPX9(&(v^Q_lYf7dsiqe4@PYCy;#ynZgmg!=$G5%Ripf6R6aPMUfGX{_xDsvGRQ9 zJ74^Ex~zZM+&WMAB!$_XV%z(b`0`)SUdTiGTuE5OZ}I#kgSeX(fc-jBJX4hQ@Ed`P zU)XUTmM3Z5qg`UkRsmx6iB_1Ps^Bu(@_1!XWO!_frt&lHt__O4%Z_OG+pmz;?5Xe4{l1*!J9i>MkjHJe}K0Eo5sus9z-%RMi>jH0of%v$!djnO_r zekr_sD!}WJme#S(ktyb<6YZgW&3gVI#ni>1N?34|^Vn;}vc|M1<=$yJz&60WO9Owm zSj-`)Z|^NJyTe9eGVKYJIK>Z@gB_}S^W$`0fV8?iT^ZX&Q`Pb2*K_M+m-KyD}*BqOMM^O zzf)bv)H%kM7z-GXoGAO^tX2PSs9Sw^t3i0r&euwJ603&I_l>7Q1)h%!&V1^P#>qKr zHS;wZ!AD&p!VsIr1Ebeb#N;7r>tUdsKcgEzU* zg!2~F)}x@e&5wpMAid=!Wu&PJRIevQYOoJCVTTH~92h%YKcBWUWubKgR>*A3E{6x< zKKNi2%>WxRzo=RFr?LX$_}(?LXKW|WLjxBPT8aCY9VYIz{;DVH7gDc|ndC>d^~a8{ zE|De-tB=ql|FJ%*Ur^KAeOVwM0#WUlLARYE4a*f2i)E+U$36*@het(JjWgLNa_@vSO_BpDj#<2Zl*Qj76yQh9_WGrU8T_}J3g4ghQ3_i% zY9>3@0+m^w9f)&Y_@x~ie`A;Y7D`B1E0VxqiBiw(Vg>tD@PwGweaWGLpkX%oD?5en zzSu=$rz&fewp)|V*;}x}{{E$3wo@)Ulf;4|U@~*(I0`FYrJM*p!*zh(Y7aJzag9-u zYdcL`XXpnXS#levFXWz?-^R{N0wk+>yKP5fo6>RyBw?gj&jqPPEHns zcqG>!UbDuz0mS7Mk@)jV?vnvSq&{4Rmg~4;*4wX?=4;66w?A&^o%PENe9ixH=#@Q2 zU46L6Sw7t2BIv~JfHEwlunP)%0#d@39+i^Ujlz%3%O;6(x{+9-=r*CjAaR?7#oRj* zeTc#=B^zfqXZ|xOvzj=)>SZN(+PcKe>i&10&kvoUbUo@)DeTr!c81QcDpghqyW#W8 zP}A%z3m@rk>^?tSuOx0*qEMOk8O~bbLli14L&baNoBB2CjxoX~mGSzbIiQvStNG2+ z0G6m=9UuLI5&00dhgj)J9akBfTw3!&^Ugn(=#VE8vYqRK?Pmbt1wGhEk&psvw$J^C z*E9Oe`7KZXHZ)tbTV~dTIfgEz7C~be; zuFPgkwv^x?{$O3_D_g^mU58zP$eqSGBo>ynV(VV*yZRg7-Hv9F#}F?d-{y8nW*b&8 zR`-O@C;GCkVUG10UI9GF{~gn~-e&}C6Zu_6ur6Jbk=(FHra0E=YTpja-8liBPZb_+ ztoz8`3G(fo$HZzAM#}16>A>p;&JuTP7A#d_Tz;|5$|_0-agX@;rVNOuJ^%D^xB?1g5s! zKbWHb%%NOgzeV@}Z)L(tg0n8MFqgLCLs<2zX8;$x;_0Z(QQADwIbz4O^JKZva5{El zF^E^9SGacatnK)ll~a^q@eA8^UXkUgRtw!OGpqgRW+eQPRa`**dV$48x0eDDpQE} z=GB^Tqsf-OU!~kJ9)6o;(x{nf7koGrB#3T z?|dt+I<@~wPCEwAZ_G+9ogL{r2mkwfJ6vu;>4ZqTUPcg-W+A`pp(84GC@C-;)VyvE zOo}M!6D_-^;gWa5i1%)8*dugxfb)sxNhqD3}qJf zDK?BN%p4TfwFr|u;^LNZwBng=O3y>HE?&hV7_wGE95UTvOzaws8kl{ME4R&Q9mwZ% zgo|9i$j02b3#aprfVI{I@M9L|)_~X?n|M;{O(@~Q2u~Ce)OT|>&*zhDHGbYyrk_X{ z^sU9)h6|EwF`ftiwz1c0p3^(+YbW*u2`Z+A4ydd{k2Hm*5qMMX7E>~_dQpv>wE`BA zWHTETHj!chQaV#dFVlCO_Nv=dte1PGjs)|RXVWA{x9UbdeU)~!q?*EH$Pv6CXDDAe z^e1;S#wVIDPsG=pKcjuO!@az9dSD6l&NKWCVloUniF*r zuvE`7cgAKLm>c_fS&DMA29e53Tn{vc**di}X zo%a#e;TTbVeZre#(%;^(&LF;h(k`(T^}FdE!ekph0|nYH<~2_{H?~ulkftOJ#GPz< zW*DxVf)@3H=??yU>!aaLT9Ljf2tm6v1`D$3y(d$LWDd% zRu;C({C>0NZJWK!_@He!egd3DZ%Aa}+tY(Ys&zo5?p<0ruNtmO`bxDx#Nu@1405+| z=<_Sdg?Hxrc3I+O{Wo4RbO!?tdxOaN3be1dG4VENCWNVCV)k1WsJD5=81EwN^h5Vp z6E

    m>T4^4}5NuD1JQ-xcIIyff70)rUY8I3ENdRlGGG4d zcaeenVoCm-OqIsTq@0~@Hm!r{{+|<0-dTu=liZJ?V86F{dB#raw|(l6X+-{n(Me!a z8L1Z$QVC2N3izo*xt@{ha8uN|FCKo2aBpx}5o{94#D z0PJfOR4@<$^k!trZEmM$SilB@O&iO+(}JZpmvX4jy0%*7Y%&a1LJCEm zVqY9Yb1Ljg@4*^{+dV>ZH9`i%YX{sKc-~dv2MAB{PAeZ=QHqLZ6uwYcZ=YO`y>|*- z{2J}|V$s%rxwCc9(><799|3&3Ey`6jWN|&7u2*Q-{9KKK@t3S;N4Rx;2&?4r+EGyCa#h4HD)XL= zD>JB`w&WmNf0MiW{AMKyT!ya-h?{Xr%1uXs>|sss_ePpdJ6p}VnQg+M{;d`=!N2l$ z;jLW!L%(ZPLW2ftw|7PDdd6m~#|2rr;*U=)uC>=elRHuDMO)sJ*`c-gZ@eiQ=5DRm zQs^*P)pqi#uUsh}CXWd+s^EbQ?p@2h{H2I-`I_r7?RcB@E{R4(Va0eX+cniG34_>? zJE(!!#~g2fkqPw#gRSiJB8;ZePm;m)ShWgCG!_M}qr8|DajUZwnR;i}0U*v8d27_? zOQfjy1}zn!!3b4*S-CPUZ4=9J&oMY^m*H-&#=J`6z!^6RDo>Uf?R$v=w_khF9qaT; z=6EHGY5UbnBjs(o6)MCt3(@(7MQCPrkL(Cz7H=F&sk+L&Ro4f%TLDN}lrDxR^Z042 zeqe_p*x9SA6**p^M?_hUtoez8uqq4{pdx(D%ET)X?P$5#7xHScWJwsUS?3>)A(OGQ z#DLN)>(+AIsRQcCoNe?UE0{Rx85i*~5b`ZFK1+;|K7jR?{!R38hh&}+%TzB9BtWY) z1TR+JWRPRCAak1KN}|@PV1miG1dLFlo|cm(b3aC!PFlc*pfY_pP0{E=ZY@>}WbB-) zsz?ZQY348CIk$GJ#d%teEhk7!yY+v1OJ4Y=eF-n<1s%|K{O!W17p2octc)_R7>{A~ z(kFFW)!qJ_YnIp5y>lyn5p;%;IQiTrJPQZ_l9|*};fiCuvtt)8)=G5h)6uIi2!BE9 zk$ME4G8#TVV{v`c&8ZUw7Fw%l9jdWhX>yj#2Zs}&U^4Gqq?zi63QE0VPSv}(6v5GIfc225PVo1aPqr&DHe=wGy%+J@WtFy&d+$qEMO=Ph1V zYNx$P$PXILc*}B~%-2p@(bNc^*@HuUu&m8Mn7i_5h0nHMr(~tZ-?{;_U=9r3z-Zwh znr&#RVQ129zJ)|_-gxefOL6pl*KKV(3kOKT=5_=&ScEepcSjtGp6yOKHMJGNHy+Eu z+D+*-ytYL)g%jqSkbpI?8B+c2`-L_NseEmebrB|+*U+vvpIZ45e3j!WQvx-!UZbxS zFtNWY;bc%s5^yBYY#X_ZRBM&n6me;@x!$GnJmVebCAhYtm#26vS!iR$*8cM2@!k2} zrd+T=Ty#Rg5Ha-Z0!{mPw3>gw z&n4FW1r2&0_a9U_5tLaq!$D(mn@l$iTatz9DITsel;tEIG3@afbWD(fNwQo$hin3w z>^~atIN^9wc!i5~)PDGFjvC)?Qqy$798EpYSwcIdQ-)%C?UTZoc$r+xl+{6^Ta8KS z+Il9WtJNvNhImKn3|Hdwg=t6m1$aAM(iBpt*yQzBAkO0A2j?{wBQ|XshFbdTet2Mo zL4k2?2pMC{|DOd==+gl53_7?>!Xg!lW~x+D9QJ(Pr6-ddk41&A1&e&QGDf=$SUvvSb!J1@jAgQTV!5L)iK>@5#~L=zwDb|Cko@c_2XclB z?hC9ucY~dJDSQ`l_N)hh+E|X>1##VvkmbdP`c%Hv>a}-|k-iGOazJfL+Ks!(<)clp z&~q@iqjUhxoBILfR#{lX%gOX|9h3V>TL0lRmWGi(EFvrlz!hqpPW^^gg+8L=$U2MC z5Cksyy8i5ZgVu5sX8yTs%GwyNfe45LB#5#U3Fn>0pw*T%w?s>Ti7(E!ld)QqNU<#E z%m7;vD~B0dE-j3lO3wq!VQ6$l2^k{Br3Ou1!7oPOkbwGr3E!3{(&q@0wzsp$|9KiW z*g6+k>jy4&NEIQo2Buo$3K~Ab)PI6QJN=+5(vO9HZ{V6M#B^5Xy&(k>kci%$6f^&p zbvzjKn(S!9PpyljgK=4eCc%6IWh7OzoL4R{BSK^7uO9!-db~oDh7rM*>)FNL1?0H2 zg4n^e;=akcPAh9rPvz6drhGY&$@OVC4^MmzPz zB=e3|Pu1{f(3{!B%iJ_DOW}5ywZ;2LLInOk{TFm5W$HzbKmint!WKyYTUBjdma0f# zR^d|qh%u8U;bT`ls9aRL6_M&#*W2MZZu>@R&_h5&Tfg#yR@Y!j4pJut1a@p(u*|`w z@adz#2vyN>nM%T^DUUQN&lN37Tr%&7U8WN!E`?VgX`JDKP|I59&`8dLcKJ{8_TNeh zUA9w|LJhc!-7--l&pAEeFcxvnlm)1Wpk-y4RoKC-J z!yh|>%hg)JzZnmP9&4>@Qu#m6JY({Si50_&wCkfJB{!ok%E!_#FhQDkGVNz7h@|oL zM*tS_Pi25W!Rr>wG5OuHtWS$ej5h_3J!$nDqbYTh>oEV#Ee3KE_& z*Kv1e2VYy{15x7okkMS0dhS##Ki;!Ks|u2A@Qx%5!MYo!jJE_x6ob3pWTn&FO3 zGE-56*vKM+7g_p;%!i!Qz0rq5rQ5*nt1Aoj45X>hBMRQB+)~EjJWtojy@#F@vSTgf z3W)hSqHfE$l8Wk)kbc!-o19BM_e8}7`5JCdr90e-aQ>;B_iiy=Vn<8dupOCBEh;9( zbDn8$TUn!P5@K2Lg;`saXw_h1aB3^y4ju&BbgK(79WrfXZJ=xCIj<^$e#%!ztLS`8 zq?w2p)mHcE^;&aJML?wNP*cbDu_>zU25XCu(Q$LzBw2oOE{`IEy9mndvrvtc^-@;% z9|1#wugFZr89@$RBHpQV!M`Z*cl~&YRe^P;#xXWoqN!-MU8+n93|KVb<}Ks+zWi6q zBtJK1-xz>hCtSx}nw~SB34b-|*AeO+Z^8QydbM(`xg*G`u9&i1y-_uTSwLw%*hm@2 z(3pL{(YQ^n&ST<|c)D|fsBG-VbJGBnD-cO)`&r3x3yzC7o%MSygSDg_e(OKtFBoO!IsVr6iqAHF6~uKcKD8YiFeirn-g9x9$$Vf`I3pjE z(q@z;_>}j&@PgNHmuz6*3x}o0JMwD1Qp6@2ke!!u?d7jil{jB8YG)43q%qUfEq==-#qa$$_ykc99l3I+veSlCVNP}Ygnj& z6!6LhHMQ3t>VKtLZ24Gl zl%~mB_}>#-6D{xQ8Ony!bu;w<&kFnJ#!b?n0vb3qlJQcSDaamY)wAAkh^(ySli*r? z?eWWsdl%mfecF-=y*(~8#sV7C7F4S2vt~ul*V_)Nh{bCe?c0pmfOn9tuyX8 zag_w<5m$X9-|7&Y&ohTqj#Vts)-^9QQ8!0u*(y{Enrf99rWtLY>t$E1zUpEdWTldF ztfvw6FplOj(~`=!?0#-lCpYL7txlq^8}d*7o8q6ed~0S|#RX|!e8+}c`ejUOB+C_V zShbJ^XKs{LD7WBpI_Q|cEeX<9c%-ie#$ zd?;9W)R{aX(Z2LNN%|kr%9!T0ti49U6tGOtrMb`fNU)xj7L~riqDC5CJ5Z(L6M<$t za2!x=cR4dtk(r0}mi0lTg@+_}&o4`;4d)AhtLaAatQ@9VN8Iu;^VOy*_oWu+vY1)-CHKUgY)8~t31Bo!a+=2?UoCJ%Y@=1smvMX}l9U2-{L$c-=A?b(>D(bs zvgwWa$64$jf07~imvm|@*v?m9vU9h*7z-J?{sha>hnDn(+vgsY`jMnR*@(U}vjL#( zk0`Fl6e*U_n3+K#^R(vmgct>wPd4JQ_tiJ`92{I~lixcYFT^~~fJF+kRFz~Ap|n0% z4R2X-$xLw`kc1C+z((cAZI2oMu zZRUB$fNN8G4NMEFw&Cv+Tnws&mHOvDg_RY~%xaVUHZ0DK0k@B8UD9QJ}cy;>>lk!MHW z@3}`t`Sxm- zV6YimB71+%gM#FzbhXroL!4ZzG=Zo zaVQ=f-F`kGSH6M}S|xqTVkT7BW0ER=eQ}qibO!JL>3Y?C`)uu6n~^|S4TcWSrf1&GP(;HV zQ+MoD>c*q5=NrDqVBHEy&ESz-zpp12i6kS`M0!Ecn^Jgn!^DS5QSE3}qU{E}FKfZgbo~HQ+tsK74#u?iy!JFNfdiW;ZgSH9l3Qo`2*lb#oQITl1gmd1{ zMO7W?$dlo`XS2IgVqz6Gi7hfqAA%LK4yLvQ%_dCNlOn24-PPiH$1(|Vck5C-zaitA zi>~j|0M@2mza%10w9oxtNI*rVoWU6+C-c-YNF^2HHNmhx<;94DxaP(mWK<94({QwT zM@>Uh>}UStM6K~=$)!1D*6_)Q8E0-tf0%ch*!)G_ApM`H&m4_|@lM!olc8@&?~>f^ zROZGPo{Rt)SR6%_sXrfT5fUU7IO=(P;rksX6`L+9I2q<2KTB| z+*%;+aS|8KgW_I){uh3ixB^$;cH{MWKOc|h{T`>Xs^+C(?;jPJXr0l1aB>{-?e<-- zlZOdM0~KuaIVu;t-+vcu?xh`Bd-Aopwf8J*U1x50^eyvjYR`B;mlW^e?#Z9MoaB%s z*Y+W^qifH}-<>)!?41?(3Z(HqqO-4cn)bhF_eO$JZK48Kf}WUEQ~h{Gp_!4Zb(o=F zr(92}h-E8#-E+r0I2} z%m;=QLWUQs@e7u9!b@EDS(T@qG(Cqmx>gI_e?q;(>>B1S1^?`4nl-vgE9@7XunJ9sw2i1CX- zC+zv<>4n?Fs}t=j6!-&!6mND|wwyG=hHzn?2VCAmH)6FP0yPoVna3%q9@E99)Tex0TMK8>iwjxHDM#o}jN5g7;Ep

    0KFx%sZN+_wut8DY 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а5eZB7In?Hs4;9&b;pA9(C#5bN_^ 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

    hZvl2Sf3dmLYQM?snKAaGoK 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

    O@ox`c8ihZH46NOIQ|XyKj> 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 vLm{ZJob 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%0DpqSl2q$@VHT{pl5Uy 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%0Dv%VJcL3xA&S>IPC=-aDy{< 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

    b*8N-lQ^)$$n|nR#M=~PwsUvXYW;G}t|%m# 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%0Dl9Yn)G$m-rr~az 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%0ALjMhRrO^=~*iA9mhN@kA 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�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 uq#B*LFnTp|oe-(|6*+e$YbwvV$0Ig`5!3fn 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%0AEdts(hw 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

    eqY>uzxK1Dr+`kJsns`f-JGuTOwAaDy@`vN(P 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%0DF$sz-Ga|Zf}UW>V` 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

    ~+{7+Xb#vt4R&|ovBg1Nd^tY`&A3`^y=|` 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

    {y7 zaJm}K@Xh4j4jgmidtMSnY}RAWTK4!4d5*a!ZFN#wj?m2YK^BN-v*le*cLjqK))=kQ z@;9OqOt#-;=qH)W2R=SV8+7_hM=*cPmJd5>T3BP#+0=u5dG0m<-l{W4(-a*W5Z$lD z&(YmEC#CbfO)p))?1}+xhOGl$rIfAV5u(ccDoBoFcUBNGSGjP&`h$x?vbRjGFi+^NKojNY z_T%ox-OP=q;)E|Og(#~9!b%uc=#?%!4W==zf#iwu?9}vY46yzd)1p9)JLdeVVtI7cD}MG^d=)L2eOPIqr%dCMkdC{^<7H@s|1??_}VR zuOfG-=c8f<%j0rjUg52Z4y+s_$^}ci^_iraR?oj@U@qzYc^v_s3R?QdLfz-@kvUkH zmDB*7XVYL~0%W#c*5EW`HCL(}BZ|8yxyfX8{JLS9!avPVN2Ry*ndwr-D#>zw?QENR z80|BcBQd-2aaZ5AH1LtVxox%w)6(gWM+C;=$@dS|vM7*;!W)2HfQ#FQWTe&}tmgGA@9YE4Og5 z{D@4m)#`9C?iasv43S@vHd{M(g~ZCpmP%ER;Kb=ewm7PfKd@W-REmz49HJ@>w|u9| z9U6*Vod_#a+uk+ z-V_xMl-ZOP0cYrn5N|$Yo%qTOr~ogWr`hhr)#C@(VuTFcV?vcp3T*Bu8*OX_@`sj+{-+_`&M$(8~7q?|AUhE?6y1%8fj#1r@ypnf(lkdw0q=8 zaj#e1x7M5ME~hRt(Fh@7eZ3keSPS$B1P=Jyiv zyYCVkWZ#UHJYUj<)bfEAMkzi%VB)1Mrhj)}p6r&iVAnXZU4Qi;aqIKnryFzERS~Rf z4y_i}ERevlh=oKAR?m0_w%7xf5`KQTOd8RtwLV~4*XMRc{{VXf?IV!|I(?ntGjLqF zep>e~eaCj$3;IrIL2g(4;zs3louhXqi4u42lU-~qKvWfc!_7|)l6Q;|4$!ZHjzGs3 z8v(F0NPn?0yAkQrov;y+!3)*VHY^4)&DY8zO}g+2M4H*WJM3wDv+SGY#vT_#9y8BP zyGlyU-uDp34!3bG_xV}ClEU1hE0#_n4KF&grh@?Spy`+Qip1B%0~|+oQfK`fzsNfj z1?p%pgav(V97=0j+I@s+n?PUqSa*8Rco|+dt{};sKojm6;00KN6Y+g}$QF=Ru| zBK>c1PO%zVeS=3Ts73d@%PzH!9Z4`nxrn?&Ma&?TXDn=;Eq83q%~n&qH+hvws@L|S z6z7WRWi*J5bHN|iX|veo=`V&W33(YqOp)EpI8dhW-BbY2RVyiJ_mN80=nQ3Eb>`~Ktr;TZtH&eZ!)6yXO>aV8&{9t1WS=p= zu+2k{;eCbW_}(d!b`4{hRIYFF%MR=JRDK0jNUv%c^73$!Z>Dpu zRIlPiUb8s+D7)AyqzFS)XiGmx-=+RWsdJ^oY9u>Rer-RV7~=*sw6L^q71j7!?LYNC znEl6lz7A^d>MkL=rY+6w`V=E?k9oEV(&_?#R4U z4dSi_&6lqV;7oQvX7)nE40Pl_m%+~#wLM*z_COm#r(sS1{b2>lC*azx)#7T!mv_xR zzGa;{Gs-*5V^bw@&YDcpt+kt)I(q=pNb7TfICQ={Y*rwM^fUCEo?K z3@YesZr|OVk#qMKGjeA4?H;F@rat}i+0*xY4|JbCEZP09>wokQ9z0f{DEu5=SX}5W zF<95@izn{xdUuW-{0k4g>)L5^Cv`Q;<;APUMnBZg3rPaWEKoLqQz`2H6gHUFAVXh>tZqH+oiE&K_>?e7gj|hLlqCmxLoY_rbt&Po-r08>^~A z3f4CRJghcqwOChMRhskMGIfO&c8(!G$wfnjdOfp4>$_ST{|pT{D1`JWCU_vBbc2Ge z*&@pHN~L3!=}B71biar4;X9NkcuSckI!5&rIa*H8N88SrI3&xuw1h?Tn4l!4B$tj8 z!-9o|hl{F2^xMW2juOsO3~cqyH{I|0P=ewLnP|Mt@=?o5lX}eMdCo)PdICFo){JV- zh_Rukt5Q6_!yk2XNttG5r(durb$Gf;lFM5@Q)=BkgJ$xwvTT>Zg!p z?0Js1#?j+u>~{Kd9%Ey8Cr=e%==s27hRZ;6=dAv1vJ!jW9T5)z_b8i+-!JkmkkTaq z2z*1(uX-Hpfl!e)wUDid8kO?&-dU<;P%8bBaNH=TKwtt zcV_xvsz7cTR+<^*f{UW&WIX>IS%B77cYk7I8$yfR9iUamQL=&f1-R-Dvu#m z9=Xm~lH(*3J%@f_7nwWrW1J^fDRhjEUqDotVctFH+PG$*Z4L#&CM~V7`>5H+Xf`iixagma2|V7)}A;-M;>F? zA07Q6Y_h=$R;P@~-tChedTi;_HkMgL(4)aSWVuaOPlgnI6*ZVd_Kg@jX5q2Uac7KG zB6mm#Ca-+z7mb+ai15b5g}V6*FPjD#y5vngv3_qis)73?) z!a^1RH9={CMXQEI;_LI3M}cib$wBiPEi)mBk3DoUyD>P#_%B?;+;a^ri6uCOxsZ!S zR5;74%+13(7AU2VGp_}DYD+LnWI6Fy8~gs~gxUA2igIIyeM7&9m5F=fo5u5w;D-0{ zT*T&OdA23C37?Bp6(9K;i>#Bm`YiW0hcoLw5L@7p>0S$FtCl}RYk$OV7TRjXG&CK& zypX>4X-#~cqq1Hq#I}y_A|KdQGLY=}GcarS?fQsYtx~6lDf~UgvvZ;f*XV|xf0;?R zDy}lMfX4gspddvC%E=pAzD`1IxTv^sw+{Bj7a4no{FT1nGPoUzFrah9wCkr%5Sx2_ z-|l(6C%wFN!q%YyK6U*`B}VRv$A1tQM#(ID|HGq=W!Y_IG0iu#1>B5aM#pG-lNEax z&3bu>b)`~e4OwU7l0bTBJ%GL$KaqMbTxG5bU!H6rXf}_ua5!tJ^6AJD-|fgom+?fc zQ=9Cb6tGp-pIQuxk$g6cy+Y`hm3a2T9INi&^y1KC1!8-oT7X1-MNZy^b@hagpxrAr2jXkdN&)Q(rj75AlwJ+c>AMl(E3OJ6`Po~KX=k?ABN%}qa%oDPffnXMj2&SeUN9>Vk(IVi}XQ^Ws*NXl6&UIxBF^KAb}N&FPA4^be0@ zzspqh$=}qPrE%jnN2NTo*x3#_=e@Dtj`{fEGm)MwB}+~ECF84hRTR-@%%#Ww=O|rk zd|;_VIs=#UcT5^$Iu8D!cEGV>nz8v`R{zYITb+mUfp`JLOLz}DJdJ=l1>T*yTE_>J z(!(%Qx01u&w1o>olcbK{rIeXwDXu0bT6`A&-)STk7W7gTu*dNvRvz*AYfB%XPTV^*=RI`I*AWa@FEk=f=*7{Q$|{@4;@7T4ZtP5(FbBTOvz3pV zq2^N>?r|OnuNm4fH`j$)+K@ckoXSlLoZ$={5}6;_n_`$whpB{gG0W6Vnd&t6@#4;t zDQ>Tt@_<0(dGp@G}m*sOxT6B;+7z?ALHr#?~ulv9UknSfBx>nI(22W~Je8f{xd9>Swnoa!g&LlpT6x===DO9RpTt(#PA_aiz%bu+Om3tnOhly99=({#VsE+|d1m(A<;XD? z&p`~Ovr&crmmtM;S1#dR`(L{829=N0(jtV!2bp2+Bts0MuLK&oOubQYJFLz~{(8ne z=|_b1id^)_;pr?aQTl`eQ*K!J4<)G=sLdz;Jc5YKhFR`q-QTeK`%%-0q z*kkj)225JLG>_Yrkp2Y0$JVbDOrx0d{d(UdxVlr{UmV{n^@0Kw3XwMP1#a< zm3f8Le95x;LnY>9KsrkKf+c(Gg^!A>xWM%+&0;{r%_Z2ZaBK{ki~{w4V6~4$wk=!U zRAaQ$G&J@0Lg`j&k;#E*?v#Nl&;RcJYPx$&1~Dh7ROmv(wUva#v@?X1#+^#W|HP(e&Fvyg=_w`i4fK+3DBLEj{}~ol#8AYZ*E&OQmbAlKsQa7x7`YmDfY~Uvry@_3 z7ys(4x9HRx_!=Bdx#Uu(o>lzs-CTvRQC9if4?bv{!?)b?0{hI}3Ftpd4uw#B1YM48 z-L{19v@G?2_ZG0yApCdI0uomuqKt^rt0JtFKVZUTmg{2x_5o#XEo8rDJskmr2~-nY z_>1{*(NBr0p_`Ut-a{mNHxzRhznc{XrB>VVW)@McdcJ1J@AYF$FICvZU^RfNtDn0( zB+R4r{=0&>zk3B*p{y>6%oF#fi_S*A0k2+`?E`4IB+d|{vIQ)kwhV3o^BF}y*8uX3 zJaQdp($LZ`nstAGMd|6*XlH~oC-2ma8nOM|Z-%99p&|0MlCmLDVzlMtY3m`TBZ+YONvQxnrqmJ4}aTm{5Uv zR5LO~dcxTHZJD)ddLh;v93ePeU=<@;GC<8V<^Jb=t4UV5X$BuMWd`<(ddiovME&Kk zLFtk!aA3g|p}ky7Fs^}4JL-0>_$Q4GOm2>Gq{;L!X1Pvqf&mCAK+5Jgj~1k?N894= zfNKqI0Cq7b{McsgoEcbhC`7+qKZn9S!&XF-HTCX=XGJc+7*b2}Lyr0cfzRnpp*T?u zd{L**HH+l6{ZjaDNFOB&Lr;I^Tz(TpPv^t<^DlLQv11iUxrKX(gJ~O_=~f@js{hm% zsp}r4@(>I#Tpw(q?wJ=y_T%=(o_P^EMV4O*LJen%m%m4Cr`*NIyLbG(E$7<0e;54K z+^r@z-9A=b`9@_a-Lzy(-A5|_jJm@|vE<0OR8dXdHD2*Pw;Uq;My=}k;NJNCFe=Wh zUpmhEKqa|CpXg(8sijvTJI|F{ucVj34Lo(4NYmLexW0SL7Di!H&5enm;wOetM$|Li zmso-gE6nvW^t*4Zgr>N0598ZA^qgaONcdj%b{5Xz@& z0VQlO?9Pz$COy3qVG;O{j1nY)_ge`c+=JN&MV|Ltch5#F`2_Fdc08j! zCmV(aw z$Ccpw^jDZiG52(UxDk=(Mm0}xi5^YvxYlu>dWN=*9m%lC)cgNvdhfm_lmC7D59=|TuqU?mho-9SLP zckVxa&*7SDX5Mq2#}NflA8SmtTQ8`CRA#m<--T0s}^>`Sc^M*Jkv|~Ai1KOq5QsJ?>S+!#M4Pg*+ja;d@qXm_EAL0!totO(HkQzOf9i z18^E=8hJe>Y!+Q^13L#bz&P;(ueuCM^hV{S)1~7El4HdDt@v53Ypv6jyJ-7r6PJ-d zOw?iP^K1z-8&CH*n;M}b?DW6g#yk5a;H4GAYb|G$_SqqPp8dkFUQ89CH8MgQe!qA< z5$Bga5t%si{dQ=&5_JNYHc>tAYvK-*8fiZXT5>I6cZ$2Kz%0mOMKTYjBj-?-LKt#G znl(L`Gt{f}r|#7>Y_Ru;;sef!8r^OYCR}N*G4Mo9a%bqlmXkX!&e~K743<(@7Mz(y zOX9k=@8N>$L>6HQ7h@x%V(T`dpaHv0s)m>sZ&9#T_U|P7VCso&{eDE;R9xpuwA=vK zIG=Y#N{)Cardz!POLiO|bmS3Mc0o1dyJZSXP)ld*Jx#Q0``=W{jlPW;!k(8Rm3hP7 z)ST{1`8g}sS~Vx6Dr@)9p4>RNj`KT2TsV)9p1%6uVOSyBrz~ZMS}6U_FO9@d#+(@V z#aV4%HlYB>ZV?$x6a)FLNuNeE`2^M9IjVh)=O}!EnW#e7=~2sK=~&VBc;3w#Igv}aTd|<9 zjk`UgNV#Lcj5azJgbN|vgOCr!d>B^=z~GwLc^bD!$Axi{vPuoa0`oGJ`zk;t!^kY% zWGZU(&-RJo%SXsI2yZn@<<7L-96QjC5SZeK4(w!357 z&tjjOQ~8?6VQ1%`%S)Er-zJe#4&-bBK=;gBo%RU{2XH@o0)jY4c?SJnGxkVyzPr9Z z4tF3qe|X%1k z!v`L4hWeiOzqWGlllzGvzV5;iisPWeZ`e>dTdNZH@3|UazJNZec*H!!%>#dKxn(vvzr(Gqwj-yC4xghFO zWUD6{#`zr%&fZC;@jJ^8D$H8>!WB2s>1%75VzbM65W&2NczhInpC}^Q#Mt!kW zK+d;Upk*$F?zMKcV{t2Har(F^DVG~mz#7qhDZg-@tW;R`O7V;He;Q?X)ya z0>rHwV%8d4BT}LX^Etl|(?7%N=3`z|2NkhPbK0Q(?zQ%dk!c*rZL`e|0z4yv*;-Ds zyE#|;KoW-^{?M*pW|@GrqE@usAseaRz z=B~aN6!2i1b+J%cSi@_Y_P&|D`~IZ-eb7Hw#*I+v>A=Gi#`jNSTnR%#{|tv2G!IT@ z7Ah8^rz~1GC*XSitqa%RmHexGM(s2#kc)d+q$HzE6ZmL|J#b%3x!62iLhJap^@RspUIr0mtBGCH-ae zyH9r*SSMiZbhSaEvISm}zEsxr5o^k&D?T07pv;*}j+dVEc zI!*hjG_S)2J*@}?MK`#LYP%7&(&gqM*KV@YAT?v|T0gGm@p-o-q{`dk9xSrjA{oMP zx#d5x|9c!tAB&$4c##BOtZ(Uy8>peI0)*1X6zYPA#GgdcK&mqNnKXz*2bzwnl^%r8 z6nSR0P-My`T%ng=?`f>?zHgtp2&0eK*_=h6PpHy3B&goC{8WG9VhYP1l68z;Y+XQe zMnm&g`>@orZe`j2gxrXf?3)YQ?lyKOz0ujAzQXUWZ$x6O8@xwAp1F~O?BJ zvHz5ux@G*{l&Br*wXP0ruuHstPi2r6N#GDQ08a3hDVnVZvhr-XG3JR_@!;G(_5xY{ zq72FA?*Ed_?Q$Acb^N4brW(Ve#-c<59h~8=KX$m)Uf|?x$Uh=`OMMi4EsHZ{`FOmK zTVW4+{hByB04pi!$^*!DQ}^>Zq4W>RqVNOt@aklqn9m+-J+39M+V~hwcbPCt)VQeE z09Oig)y!7aC`stZC*8gHllES?k7+6n0>s-8o)}c3d3g{tjh<3s)P!eXqnOe=NE8X8 zG(G2z1)SvY&<@-FiShJu_{j?DjXFqKvp}fN^KNNq?X2J{({`oQW8jG!vA8z_j&JoDJ5Am!ZN6@)qX>ReB+i8Agm^L z_wY4l)Vf0R_m<@X?Zp9@nR=VrzNlP>ANdPM!gxG1r^g!Z_w8|i_aO2#& zmBRCwo`1tT6r)Cg8o~B)BQBcdle1lMl$zBt5b-etiGHe47nZ)C6CkVHZ8C&j<99OBHiee>#e4Nr# zu3pl92p*~Z9=yw^6|%r}J(88n zkikAW#uz92({{rpoiOrHB~t3rynElVjJPrH(`au!@@?fQe%Qq?sKiDuutg+oFy(yF zMyRy0?s!pCE&zBgy0nRIqY%5YWUJ-sp3JC^7jC&Wv!>n3fPoVN__F-jgHy;>s=$7R z*v1tc!@Dvyqd^inGCq%b49}rA{==@Jv}q&EV&A(t(%htFLU3!OV9h$9ZPe%2=4xMy z-I5Smf*7^MFJH`=g=OAb7%;|hlJ69U_~(j&#`ms>5p0auV@W(Pgn1fite}V8l3&4 za#C`1{O+C>H>;YUeKmV{gT)#az>eHHi;b*V3sarU6ywq1zLC^dd^ayuFjr^fy?d}J z)J3r9S7#;DfWa3a8ArA0H0J3ySlOK9&|XuL>@p!NM~|St(D^yY<-x_d(!0O%&QpPv zQj?z~dIIYC62}o1B@MHF4O<5UM`tN0>}&I8YRxmb)GHIhkF(~eml>8-d1(e-xG%^1zYD&H zr4RCR{NENwGK;G2eu)inJlCvGF^~>^b?%TrZUc%*j0Rmj^TYphb1%tCG_X4R@T~pK z_DC;1RSoZCSrf~TR5R&b|1vtpM6a+(`i)T>i)MIwRva;F-rM-P|G+7!VQ(y)HOGWb zUi?r=PvwhDErFN#WYwI!4f0Gx6z}B-BC=;za;t5>p2mFL!hd(gD;mrdEObGIWCp1x zaR20XIcZ_}@sSs+k4z3Iy9W{P)W{lk#0Pt}HS>MWGq*8VNXvKUk|=0?IS4uQtj=Vm zxVB|RbB}_hJ|M%t%A3F7iO*X#?Phb+?dp@4$XUlU4R@$&kvFA%8Tg2JhR5A~&yC2j zj|BCDr-5BAQKBhF4n^J?Z;o?OoPkvjx=*x<{8A`WI7&nRt4l-n0K%foS#9G`@8R%y zhw@^ae{*ag=BgJdDYvj@j8#pODr%W?EuIK0F_IfA;Gc>lm3}YU6T^;D{J$1pAzbN6 zeNsmb38xoh4_UT_DFGF%%8&_gYHh7`_6`Oi2aNZgW&!M*}>H)nn1! zK1dyn@4Cv8)}_nD@hfNdZ~f}pplQqpm0*Jx_UjUq6oJRPj35iQ?zy4QUi+@!fq;#Z)=G&pq^5YT;Q^m=VKnNCE430=5qI1wle%$LyrVzA`qwqT$bWvQGmi_dq6ZYYf?7kvRQ29;^~rR~*>?-m zr;xuSp({mE%*fGF-;BWYG!;NVh^_XE^Tf;u>tgR(x%&UwY>WLmMU1yui=y|gEea%SEB@Wn75%r zqtPK`_ogcb+goRI1CCnqLgAK0 zWy&wb*~vxsm3SMi61Y3JiQ^?hNHzO}(}*$>n&-V%fL{zW4fx~r?$2pKcj<4H@_bOizZ?ue88)x-i}pc;s=6$x?OJlubh35 z;B4LkGs75O}}}>nOgh+`LP{z1APzAzWaxdwSv4IeQ}GsDih)cELp98;L~u1 zrBK*_FaWZqZwzT0^zZx*BgW#FUvPjV0X=oEg^p&|L>+v`1g5YGHod8Nsg&(b<;_%n zn#WkVrW z29nnfPbAGr(SDX+9faIU{f@T2dLGRI%9O#u{w)(A49hMqFeQGddu=3e7&K8nCxbOz55bA|=)ni=W&UjB)a5+!Dw*NWb4`eE2=K-xBivKBA7&>qslM-ub zeOwyb{@oP79@$C9-^YfmUBPX?y3e^EXYHOP)DiPF%Hcp5p6H;&2aMAu&gLvmZ;CtK zzA8d;XkM&3&VSo;oUEJB=e;(5uAIw@5@r3+$J%CnIRfthyGPl#g#0b+wyhglj>ELr zR$|W5xONqc^cecGk;=0B7Cjy@U4LKOcq%jQec&F5wO^@HtyNWb`RbHt9)%rE``AGYyLnF(?Z}W_#R^*KdW)LbAFy)2!TxoF=A9%JVrj zqt?&FBj54P?GHOYhk05yQ#BlSApyT+C4*A=g-FQKF@mUY(<85S^PS;Qd%}RC z&VP>eU*(H90H=b&H#F_isJGyrEk-j}gb8vW)pNAKtFC#HRZg9K}BP@m6nxKS0Sh97OSHF(7^+|Z|( zX=SZ?s(&6O)yA#8yW;|su>alfY2rd{E2U?fvPHx{1&eANxM6Eul`MaNZ_<&sc6KS?e=j_vS%ut)?k~i$~e(#2M8KKWigbg6{&HYnniAU7Z z4<6@K9gRiZC5i3Sc!6(QJ7KfFsa|!AtJeC?rOP3CUIzAgk2}7(pWtGk!LEAebM29( zIO$)~qv}o`b@lm((nNJX!q`S#i^8;B1@^d8bFpl+Woh*|E6#~D5Hrzxz}?%7ewDPS zowFR$OeMK!^o`Rji3@w&&D4Hqy<%mfTF+{Pi<~`n@+Yb|^OpMG1cq0`aiP5X&VYL?7c%89v=vme1X)55a#|8f)SXJRat#k4#K?R*5e64zAu6xS5$aZq| zk%iew=;Qnq< zTbk{%&3K@}!FyC5re~%5*%WC^+bPW9pRUsGMVpg@(f8qqtu=(F>Wi4fX$g3#<(-lRJTKSt2mRYhu{v;yK@2X@ggh*KaC);^=R_DZ) z2Ca0ow2Yds|2^=XTIE>76Ut{*Z=WPWl_0Q)Mf>f$)gHQ1v zr=q1}oEPu7xb~MPY9B4t>Lhb2IHN``^0h;+?z0xK1V^SZ4a)h9XF2si_zxT4Uqj z;>zXw?j!r?o&SFVaO0h+^#j~5p@yTKaiqp)wdtUG)=LGtOA^-mN37R+A$? zCU37i3at|_rMi8^r9baw7+bwz3<3C1PsL(qLjWC#AG04T&*IEWo=uX_*e7O1x}M2^ ze4MfFDZyG%oZ!;y|DeG+aq<|`9YwKnN7mR%;SAni$%X=+y}xm7 zlZ&2%RI(n`cnDqc7s>K&;gho`JUrZ&_rgN{^>ELDTYUPK%}K|DiJ!wC?ztuI-85X! z85(T=9tb)q@r#mDv8j3R03r_c$+a|2vjX0Y$AiO9d!qWhByQ84*a02W5uP@iIn6di zSNAC(n5X(jB?O)RFDB|ttk$*$k}cMa zw|So#QZIp>1Z)BZhB^5@*mCe1QIL{Gw)yqSoV-~k)<|H===>pun9XFjn`<*~cE-Rh z>J7}S>P$0hpYdsg{-jphyB5~lxOQRZUTQYjW&HU}R}*cd!!CNpI*^MPk;S1NX;<{< zQiNohwlrIgB;+S-^mGNFt8Upnsd%@*N5$unkbAPR$Z6s|wIw4Q4#1zTG|y3$4H180 za|hOReJJr>A82?;purSoUv2!!#xC-cY2Y@ccKl{&a<{Z|85U%TwXHF%l%IPJoE)z#Q3E)=K+x&pX%sA@*|17Hk5d=qUD+aNDY7hAJS&sY$k`_bv|e8bqeHQdH9)mKdnW(BYc^zP*sygLqmh>H z3F?{HDt%SJdlP*kIZ_&RG?sv2hdD10@Sj;jl^k zT66E0g2SlF+$^)YS?W-$PTeh07?A-Oqio)Sy_sy$oGw`BKMW%?nb$in7CVt0wnTl{ zKP;4=>({vD!$3^O6hCg#;BYG~nmJqQJX5ZG`L}H5lHmX@!(hZ}MTf5G9i4|dLM1i< zAqbm0!%*11D8aZ`%$wK=H4J=b|0lf<2oA&7)W{`k0Wv&GXMW@#vl4YxvUb%EE@`r* z#$`zkfd1g4{H*q;___AwnuBC32cf{uZ`+Z`BgBF6w)wKWUfx&)u<(11jNy%ysPQPf zW;Ni-zsKb(yO#$>l*;W4YMIFfO7OtM0kGv}bovWGA9+y21Sd+j(*Q(|QN7U1 zKpV`WI^bkD?eJNYN#~mvD~yQGf23?5_+_qF<#Flb&PEL%A6J4TO8={J*D5z9ju(DX z9il-OG<}Jm|Ni|-9Bi7WKD-=4Pq{u{XIXAm@>|unU$c_qjA$lAj}LM9my=TRL$|Kg zPCNwdo*LXb?4I}OoO0^N6wuf)CIUlp0Z06D)6Y2yyFCI5VQ9AHCc}M+gwy@r|DKKgb5J7Hb|+)8=13qAH8_K3doJa>*#R`Ii%a;vsthM*YN7*@h#3x z<$pJ4cgG@(LGEzyq1AdXv0&;s# za7I#vI#*~N1QeZ&0`;mGdv1TL|4htL^?6rYEXG1p;Q74=K%N~pZ!EssCKz$PHuI;|+$EbGgq_Nzr%~r`y$zUlvp{2D=61%FqF4vjl|jYPL~W0jsPM0U3sWA-d!tc3Kj0)|nuEHap`#k6Dy1PK-o5XyBgeI>}mH{Lf z&WFIdZ>}i^Y4XDY@=?V&NJ`2fjtK6&-3;(~m1N1T=|6iVeiBin>x7>c%bo=IQ~X@c zCvTSw9U@x$UL4ZpXeBR8TuTDm!x9+QdeeihPmboc%Yl_?`&ANRRVGtKdph$%X-Lk6 zmpy~&=0cl?13^W8#?t9Z3S;<*Hz6fP>4C`)lo-Jde#R<=p0x@DRl(m=-cL)|(`xMT zwGV^}HS4}b{I;oFDj8Bbu1&pc`}SdyS zg`SJQU!O91?@&T(eo_``$MqX$;C)(be1jGk`W!D*+B9)9nDW~MDwEdi){BWTBPu!P z+OFTR3qD|}u@hj(K{Cl{!asXhh*2ncQ*D}Wa|GOL@iH}~(xD+b#Bd1Wv!CqhM1RG< zx80_EbP|4=rQQeQe&WHU>60G5I_OqyZx9!YYLJ4eklCRMY+hp@Gw?K~xtG&=vD#>Il;5Em zNI+e_dBqM)zjv!f=EVwMN>cCa$BV{mqay~IyMrS_oQ0*aOL3L*%ef=z0yM`R7&fq} z;E;`DqbwDX27IxjIiTM>ZdY)U+RTMWS{O97*<+5Bbr0mXsfa~Q?yZEKn06Z!7o(5S zgEit~VO=!0u1rPg#qDDzs7n@Fu(j=zuG8_kG^Emf#OTN85bW&+jlaXUQhzXY^`ori zrPStf6phjjXpP$0*6l7hX!S^sYQDeuO#a`uNC!2V7vHVih04Tg(p{b#XqN06x|rsj zIIM0{VP(4^@#?yfj(l5PE9;8R?Y1k@4VVl}b}HVoGARu4#3R12VIF|?F)6e3h>xK* zI%)5DV9+SCWNW`=bZR!WEDoMKsXD=Vk(-a`5Q`R4)<-=2@X@2lb+dr_1(97_joTtk@Fa}93jFX`7y<1;BMhcL~r9f5TQt_ zj~KdF`Q0lcd$C?6%+4JpOk#Onljs33&`8Q2c~1-HfTt|3XR7KrPi_{aR}bm@tFUBj zu0FS09aKiFO|7%4J#337OZNzzO~x*ju+sv=^`pD)$VMqR?OI91r#PH1C=Q#3HT`*1oPO%`eN>O_hnhM;K&R)zI}W%B#l;lTjSdg(FNMfJYMD!hG=P* zXs!Cyd7m|y&n@5)o)i-nHl|1!>)75|P`E+KTMZIek^eP|NUSWFiT&K9IskG-UmtSo zuAHA7be<4UIet5{A1?l6erR_4bq$bf)j`Y0rEt$=-K(eYay+u#R%^ZfXVQDq@Vp(g zmv+{YcWLB$(H$2my!R4Y4A-jtV667Jl$-PKw9`x}G*Y zE221J;Hkn(nlYbL%7rygo)! zbkS@AtFwEAE*;63oB=l}b#!_3UTbkc>3MtU7kXGLk{yzRQYxlm%^1+DyNdd;9i$U4 z^k=4BwqnFL0s0wTnE>ltu1@hU`|r6T*({d+nfc%ssFSA!!)lau=%ej?dnVYsdB^8g z4V=H-EBp4KZ1?DcUZ6vlS8AoraHl;8bBLdKogR`@!!XEDFYFOo*cm&QyqIdg^eeiI zkdE^q)X`%~3c%AS#KCeJ3v(2XFp6~b1EC2o z0-L?6w6fiT^4*;*S@Mh342ZUG0J+B1#m^TcCtg2U(_T$%c~l?#?E}B;LLE7n?j2Y# zVYvmmVEz2I!)wn*2c7qz-k3-ko9t*?)1$`QYSHJqZ!$wNQCPR^GiLN`g=+p;p^BB$ zY2t5%933&451sOh^a3X17|+A8=JH`L5}H_fL;|@y>eU`o`1f&g2>P&R*XL678g=#3 zHQ{U|8DFTdZ0ZsYuUFEht)07%C0zu9Ya69c9ak(m#A8jOJEk8ciZoX|+6}24pD&3X z@=yrgFwoa5MOQcWmLEr|6nrc|j=duPqj%eeblo^jHgZmjZcvc8Bv2G>9_k=9xO8ue z;)xfNZc<-Y8wN1iZlU)8wWhXF0a0U`d1OTdCAvv+)LIVW`&DAje16M2aV}!wI(|9h zCdyl}u=FgexV2@HSHdjlE7r8g&+OO#OiBvS5>`1b@K*O5<|eXLCc(pQQI3TTQ>cnp z*%@{gS&Sy%7%ggdYO$@>2-77R>E(DyUXJOG8f4Fkb4M&?yTP41Jui#a-XFp&>?{*@M>y=j}N z-KN9ds9%H3m3c)6bUcasF{fHA5$xBY8lLvMA2-*Bmrzodb3!C8!zT*W#Du&}=V=$G z`;?1mVFlt@sz8(MNzSdUye?0?Ll>{ebbsmj^EH^)X(OApfq$y`Y24>b$j=+FPpJ|N zyWgHcIVe8zn!nsCY2YFO&5S$UIG~JIO%;k8!$XwER$UQIy z@d3?eU7}3%*M}4bjzc=-)M>AmBNXFSXfmk+T3&vi&lWfN2gGyD2dY3<YP0m>eVA2*0BJiAGIis{TJjrcs^8s zezE(ZkD(hr=i4mf-41?}HR7uyCUK+m8J-4$q5W43COIF!C>(Tv+g#?A9vZ82^_hW+rdy;&pD5i+shr;j(6=M> z+Sw&8>s`o3QA|}}l6_W9tjFd8dv9gx3LC13o|w^Gv{7iBrrC!zJy&=u^7;RMWWB<&DCdQ&foX4u7#n6z6*@dc*%F>+ihpEcEdX52ra8#V5v5Vqd{_+1x-qEt> z2^u~vg|qH;VETgrd*8H5dy09nhtc=Fk7B~a!QHQ0)DlkBJ|nq4<>(drk`70-l~KpC z$6X~X#4k~48ubecrQHS?FDVDP8+XA$86 z4JJ6`?J{pwDylj++!Ns7&y@3dYBpwZ`Yw19RytFmwac{e1)CQZtplfd7Tj_<@M=!$ zukBsrMAHr)?{qNLc%vyE!Iafw9EJw%RzHmD{e#rA?bA{qlMOF!uqrqV+e!~#xaUA2 zBu}oW8kjT5B~ctz4LGn8{gEed-#k)lsl_1ME8u!x!L7E3PW(Kx1+2iajVC?6B*(19 z7=$l^N`}7ScA|?~n?gQWH#`&CueYw747fSGfSCQzDHuBC!09vmyMag3pZLcKWYu?g z(ztR8gb_L-%fzR>r>L2M2S{#rr~2^OOTlE%LWPDJr#n z<-?QifwesocJ@pqoai6Mj`4Bbuwu5*z@%=@egfOg4#@kB$petYLF|nY!n9?}&%Bw6 zXZ>(HeY%YjuteG;_PciU;wKAo6e_v6#@TPxH}snrDS6V71MXg!S8IYalh=W&|NGRJ zQlqnYAE)XM^_}fy@`pXg*$kfe2fy@FkAZ6i6X(h~r;KtBN|dDV4Tht`hha0zr3i`78$-ccL} z=C~F)Pm-^+AOA0I5$0Ct3aZVc3II4&D<(d^IcDXaF*=2wg%73Y4}n&`@7N||H`9VX zJxpvBxAjQ+gBqCnKo1R{*$^GIUom)>8bO5%NKL@R&6*ujNVCG;5|A93CpL)~Du121 z&GDP!o)G+9Da&n9#6?C}Y@Eka?|J`vHHPp-&^l~}J3vBtXk74HgVsDjbs=*W=Y;tj zQrcdlep&IXWFUk;>B(Js;1D22vi%VPYS6F+|zKnkNGE@L&9tW z2&o#sNpVLDah~c>fr6IxQvMd0*-9G{8x?4shy%-gW;KFRh2a_NyiddDtDYvhASUYd zJ~^K~`XPEl34O1-Uv@=j8U=uL;4jNA>{qt-<>|p<`FCzGH3VIPpBFXoBW%{W2L@M# zo2KX6=Is|ICA|u1F<0$l%|WiG*wo46M5jVZ5xU^Nv5{XPP95&x!W@uyZ>`R|0~Xe5 zYnmrEtY3GOe&tUx${H#O7H;WlZJ8;Li7~awr~^XDxWd8W%5SgEEkSV}^(wW)tvHnj zqe`O{s^CuNcmk=&a`z*Pxj!r~Vyu6e*ZQI)S6oj0H*prLbLm!e8InMw$ca_CJHg?a zNU?~~%@-R04fjf&;ki72!qdo0vFJlD?Z?7e1;ZmohbMqSnv!=E`BIS*N$)?-cic84 zD9^13uk)3}6?turjX~kAaiU=;8pqI!jq1_l)ld+gy?um6#u<;}toUx75I3yfxJ!*K zqaE>j$_{r`+Q#cgto8yckYO-}b7}D9>_h|zsuCmru2^_!3rxP z0KyZnFNV<3Eaf&`DF6^B!-m*$yh*jxFaiFY)f~I2J zq3gzVGliT8>*B#8H1OilsDe!Whk4F$A>TWF7lr_`1nf9&JLP`Od4dc()$UV?F0=hDMa`Xc?T zJ~@@Rjkhh}9I*3+hqNyT*9^D?(*!Qzo~O-gUL;++l$g)WOR0SKn$-P5-cVNl++_yY z!_p^uYM0)g^IeWB&|R|XTl%j_Tj$nK{hV1B$m7H~IOg<9_aI`|M-`pLWRjKpdUj7D zh9j&gsVy=k*<*|t%{%5K9<6};ajI<$AVt8M)tA@G!ITK*Z?Y1Z5sZR5>!DdEuc)G!CFs;?1wMSkK=d%@bPVua)s zwqFs_izPD6_b(>?sDv1@uXr;=%sV8(xy4>hP0SBwc6$mU;56%)$ED#-SH1epLt(A6 z4KxW8Mfy;!xz4Y93LO0}1rY(j;o`C$S9?ug`&wh7df$(8JBIY{|FVcTkKb5|q1A72 zsaEK^bPV0oVgx#MglPCQFRM~he};a|Z2KPIm$n!<`zqw*ePs=aiz-j&A8zVp`L#D$ zr0*E0Afk6~&JX|I*OKmTmX$_PoD=+=TIO(fZ(m`t!20`YrKMkj&`|7v6aEW>dtlkm zHh*_N@G&V`bNlt0^CS(NVrq<=JmjC;F;mfsPyW51Bgy0sX|fekw72?~h&H4L4Nuir zR}4T)35yQ^aJM`;cBda|(c7WOw;}KOjK5+#E#>{SQa)F zPabPq2=C4>$h)L>@TPax1-08JCUfyJ{_N!VX^Vj*-iy5D6EtWti^%-7$;bFo#g0$J1le+ z6pWnpdD=D#0n|6zrx=9rA8Apb>I)vI-6jX~jy^X6qeCRh)6;{(1Ge@|Q@-eNt@NKM z!cKLXLe}GVsC)L-TrdkM(!loA&Nq!3|HQY%Ztkl=K|`zs|NEz6mdq1stOml&9*jC-e>4LBbv9=F!@m-)%wT1v%}*Y zkY{P2VVMco7`e$c+_q5a6GpIubMXJoDS2BS^!yat4y0kiHj`pO9yvA83VU6kP3?>Z%?tk39w0RXZoi8FTr_`^_3n>Q+R2JJVhuY|G#UX=5@=L`Xn9wp^Anc(@G$2g~`?yA1V zM397%USh4Bu}3$y?_(glCj})Y-uyf>^$#`D=^=mIudYASRq3A zaxL$p0Axu8m)@$y^4s0-K6LN1O|E&>C=I_ZR_=Z$Ef0!hwUyms**+lCe_GbO(2XLp zc>gIid)LCR%V~=+r_Pub_mk-5(LtOn{JMSh# zLV+WhpItphEFYnO$mELU4_&+A{ku;yZ;J$MjnSuf~G)etO8d3|k_3*AtyGG7zL5owavqpE!GumV88VP-~*fao4c za-*VGI3+j-^m3#B@i2gNx+Gqw+qS|EJ_eFW3hy|c$Mf%5tS79u0hLeFM4SzI=6_Vo z)+`vo(&c2Dz&QWAX&D+LD#hGtMyMMl2xoO=u(3CKl%Z8g8(1fmWT_>ef38sM8!dE8 z2y^E`?|`II1>7nVdU9n*iVivGVo{l+d{9Yllr=*0u{%!TCZEx=e65&FCUl3pg#FwE zpVNc0sLO0IG(Z36&Y$$#4FYSA0HEk^k4En)>LCY;QIo^i5H!x00_cT4%+5N5#i&yg z_cP6f<<##zF$)AXX?M^3wcwso+fb0b6!cD%US3%`1H_1wl#T_No{L0nkABb3l^BX& zaNjlUWZk@DE)^^5(vse}6U6$0IE`RUi=5(yF5y@^<)1TmGsLadpI44dAi6mZSs(Gt z1L;fNjE=|kMl%`%B+xLb#u?(sJ_tY@@^UqnOn>ovwt4|JDR+bT zX%W(e@;8ci&m*jmuJ1!k%#^DYFRVVbdudcC149SfMtPyyK97!OfqA*;y|0oAHbo-4 zIX64aJJ*lXtwQNmMoTz6HBQIayJ$qF{+)-jXf0c{&0gjzYS1r32qyDWZs^lY_PSF2XPXn2owv4_Z`RkxZT~_BXyk zVV)!61O(jSf~{JMC1RM0kT=021PY>*`Ib^5(O^XMHqB%7w!&=CW=U#r#VQ4kpGkdK zz;Sf~XVnvGh_HNxn2y?U@a%P0`6f^ifMPJ3vLUYG#qF57S_$AGOyi`Vn}xSriB;4p4A3E5Bi#zeO_Q+#HKpdPJj{oOW-zu=$$!vB%tp z@4WhI*C99(^ZEK%iX?~KhBKABA7*1$zy`)kDUABM$2?EEcbB?#N11e2+Z)2a!H(>R zd1}r?g=JIz;1N%~K-1GyChI_`U(d(N@9-4DTF=sExy`qlmAXyz)cZ^$kz|b8>HU9;qlv};A z7e35YIRLY5j|qBbl6sKq>Pj+7)fD}S?edwN7hd0h<7X@}FkPYMOH2OWC9N25s|5Fz zu*9PRBwPt-Tc;s|XCY&8&Yn^kCA&fKh3hR$Z4q>badX-_@0wKnl!vwEW4)+6-Ne#w z8{l}AhySa!q<51wRO%J~1?$iI?%%2`&Rud({h~Sn?49u`Gzs~t`m)ljr0`~8QSXv{ zhKK(vVw_@CWC>sK6gfI;E0LEMe4{wiCmR_uFylaUdfjnUeFj$=L3;;~;6vL1@xCYg+Gd*o1 z4|e4LKLCzEalgiyrqKj-@lP#w*k?p0tuet8a~)LSJG$()+lZOYS7%==wH zy%v8?A9HH@A7A#C7bUatO%t7vKCjO}yrs&ZyY2O)yd(C-&*k(Ow#z1eG(*_0K(GI& zK#?bHb+>AB&9=y}&iFsCdcs&)Rmu#@#}{?lZKDG1(PPLs?=vWjQX%hmHh46?VTySv z<22{RQv3ZUonpiWzcI@^2aIToZx~c$SjKowsl;eaao8Rc_2_qNs+W<8t%iNw0UJ$I zXhFKgJmaI?e!Cnmt4x_fL%IwY$-m{GZJAS@;&?wX(F_H0%G?|Wt@ST^wELZE6Vv{5 ziVI^(?6yUrLP?21RdKJEJ>)MYE6j}6U`%|(W-rCxO^{ci$JR72O|vw%#Y>(sGu9ZF z-rjV)%8+{X7D)cbup!^HOQ(04ZhYEnoH_oPlAY;alGCC$HhaTS1Df3Gusv=v-f8ha z(dv+YYcXV4vEH~xw}a_41qOUhy<_b(sM}`U`u)iSGpxl%9Y$nQqhVv?QtbxcexJu* z<<$6%LtfP*FKfF3i{c^eUP<3qH>y8e1tuDL z$G7d#kj^&FbTiB|H%@oZ2It%5;kd<0d{2$T9yYAq)3)O{qvRE7F`&kX7H6olOc6TL zBBd(hRBw3FfI)*UG9v4jvU(ksBxOoXaH0~0@ilw2>DF&UI%~=GzIx>< z(3n1=RFxG*4ETe7J8gADF8<4QhtucG)#WMMalNq$JnV=PuWIu|TIP5cdPwMuXLadI z;|+N;?vj^RuiUtFvI0~(Vpm$FO@S*NQIqMmS!p`K9>o^MuWiZnd0n|u|EIZNaop>; z>}sRc$7O1~k^N^pY;JnMa^>%=YUkon9dV_rRAdggQ)l64EOtR|dwkWK*{#0oWUt2; zy^?Nso+W9Ei(HUih&zo^;gHE`VqB}+3TKgdH2$bAv&E@takRzBzhO5#mnFkNS% ze*MV!yYbQG1LmhW>Mc%V^~Jb2oNiT->YXmD!eZ4b(@Q>|&P@0Ey-6|GAp`08biOg_ z4H`~gOydptx(iJ5=hUdk=bdGgoz~fAk$UxR_5sJG<+9r2Uy4<^&w>fDui$*zSN~ z#~7=_YW>El*QNOFWgn&L6ex1O1*XMKp0i(pjq!>meR|yKSs8y(qaOCoNi(q?`K{}wFY&^O&+q}eHO`BXO}kZS{?QyyHuEDf^m-8?)iAsCOcETB1Jy$ zKC9vr@#A*x=U=&HZ zLJR2T2Z~S~z>Dl6OLuXRFJ%t-KpnJm3jr&vrqaNq3bjcgE&6tJ34f}{*%*eWf@UAgKs#lWjcf3q*8t& z)!fK2+Ct;?CJOXbHq#-M%plgdlc~75N**AEYt>C8b10ydc1(ojjAevumt0Kq6a6o% z$fATOIU+ZLrt3xuH9~J@huVoH$H?M8jO0rqNs>Muqm-Y>B2K&bibi8U4`X8h8Mt%_ zC#h$#{z#jIWHp86w-nGW3)w=4enbIvx|Vc`Xw(Cg$prb6oM5&bW{J5*XK}$i#kUk& z{>ptMuz@3#m|w7t-4b9tF|v<^3^Z<)ued=gw19H6oO`(_6=cyV)npTAKBOO0MJ-Qp z(zuDwxWg=A}xXgbwxd1MSSv z)g0G745d~_as(f>oW^Th$$LzeO^l#9^r`t8PZA?Jq_a^E;g*%s&vm9v7qLrgaZ;#0 zEF6|hZX=y=9wI@1A%YURsL}?VgiD4~j}?!3PG+%#-6&Qj@J}%R$5XmrZ_Z@RmS^>A+d17Yw*ofITm-mG?%*lw0j_3bU=&SM1R^P-MN{=57Fw6^vtG?N zB$6QWIK~z|Mj1(-mHHy5%zbR7GUUKRukO@L{j>2Fi%8=dE>U55N#>G{mu@{P0m($= zB^D8Hd@7sx!2i6aa7)cFUXO6ONl>9F@N_oJnRZrBqnPGKL)8EVnY!XyajQ=5P8pK9^=7U9Td87@dsZ z3H?en&BhHx6D7k~sqb)*ELx4DR8YZEhDu84BdTe!tfHI-nZ+C?n!DM{R2eOR*SLc`FlNdVEagKj;4BX6sWjK>PJT4b%Igf~De}qG96b0f?=YDRb3GN> z#2Py2w;W-COf=p6sN3~#%#h{!nf{Mzsl`v6`3Z+9F^)5aRPLt_12}2LKZMXM^H$G@h-Ux$A%S~u~{xB-z=h-B1vZ|H<~YV zh<%m~Ok_E`$s^0$sGWqgmRj262hLI@Q)MKB^+#-alE+EIftL{QB1yzDk~HG9NB6Ru zG`X2+GK10NG8hxPCelGmXeHn2Rx!wt40(&m& zC<$cBWTHtnzvURmWh-$+>8+gB3$lZGGMcX`2YTq&4$Y@nVx^DCM9F)klYv{?>Cr@b zXl5>nw5XHQlo)&DPOg#VOk}v+!3gp+z*)}gjhyB@!*CJKd*qTTFOW(c9(?$jh8Mqn zK_{Iu4G(@!kV29?NP@&_A|CCQv63m7bQ2_kTeVfP)zB6U<4>}PxqOU?NdiH7X(ULH z)ufRqOBqOp_E1BkOkoC-Xu(E6FR_;bPLV>ggqX->x`0|5v>L%Ghe#)d5KaW>p^tiO zSgD{Jx4cCr>AXT09WoIgL9xp$X6qhx(=E4SVu(ntWHX5{th`99M9W_h?a`H-(;{gl zM{?=Jg+s5WjwbmAKVFuTMk-MV79CF!m*j5JNzspqz{+B(Xp&5(GMYn-XSAMV7YEd! zgbD`HhnomOn7o7o2Mft0ov-PpOBZvIa;~D38cG7bq)=+he70px4aBtZ_7K^V`HOuVLYk#^b06*7@5oFwZ) zDyWkCNR%kaU?HQKK{6?_ksQWxkN^Q)Llf<6!->gTL||nu4b+oO9MSqIJ@n}=&Qi>S zfZce9#auxbPHbj?y%g{sf}sOA!V#_}oh07IO{ZQ*6-_dd0i@#~iU=IUh>OiM5knUN zLaZi(Ox{EZ@;EW1FqTTHNyh+YF^XaQOdnQuF`f}zOBp|!!}w0O$^B%IEvFeJ!(|<5 zWRO5VZf0NuOCqzGX`ZEyc71?C3iU1y=s8(Nwxn|}R)Ty(BqJpSCsy+!eth)MLK7<} z)+(kkPDV-{L&?B~qVgG+XyR1{lO_MfB&4^{LA!p-DT<|z8<{23*-n8LF@{`OL^~d$ zsHR!(#Ep+j#EO&8aT6;WNhXC>QYFfKRrly`Y@(G~<8N|7QPTR<$8=qdmC932dvPt1ZtT=TI4YccB_z5u$6X?NBC!2`GrE|21V%AVfqke~- zaQU80Qp{#O#0h?8Kjrc`;ka1MUouNzmP&4 ziCm;o5^!QCooK=tL>w7Rii>`_X~Kq!aDJwRS~d`dQ=g%T zat<*WizJaxjsz&BUeC}+(EPXV=ZJhJ>7?jE$s|bz;H8;`+J{F6b5g6MfD|lzPL?E) zMVt1>wFD%?tfzxMSxO8pX5z%jE|ehmV8g+iT%v}J2sUvsnaO$&?Rew_4h&hzCEYkh(Zpr~^ve|DiR340=+(Qmm2Mu#j+3n@4mQ(F zr};4#D3K;|7$gtlCZN@%5lsXaDU;9X$D?(4#V&6#fPvy=pp4f2oYHezODA5LPO9YK z=7JtjCn0?NgCHUK7vPX3Sh1U1@lh$SA(%RzTH1JlRMNN;Kc=qdG{?C_B~3D(09ILt zmu7vGc%pcbK6>~Q;~2&kJOt!!JOp`!i43C)KLNRuGgRr_3?fZ)siaAI2qV#ag?>FF z$FYhE)? z6S#_*a+FHibPs;|aM48zi|D~`Jx(?Q^$bqDCYpZVX<0x%W6jqo z;RHS{3k0G--EGgXx9a~#yK8BILBl0h%6I*UVk zihHQ$oLVWRLgtV{EIIVyH{aJ%j%zYrM6Sb5nAwV(MoGg#f?Obl#NY;gU?;CrgDFY* zxWp4&pqe;L`i<#~W2Ee4208j6O?2v2D0Mu}R!~jwyAURCpxE4^T zSJ96L4;QtHY^v$hJ2}j02C!Iekt~uJB3Du;HuDucIOH^5Ou0xRR=tHox=$96Kq}7@ zMZb3HHje2I1TjP=lB~ZFgNt|RqlE=bB7+q~k)Y48lL|AO57{TJjHHHGVu@xZ*D;$t zT;e1bP<$H2S&B$uB$37#mNQ3BQcbTGbApR(B%WAf9N|>5mlhz31}>O4=n10azc@(H zhd98m{6ZHEp=WiO?vz*ghSNMvGLf=@SbAkN)3LJy8&RC14%Gx|$Y25ycx3@MkfqZY zL?Iu_Kn8=B(I(%@IC8i}cXP~GB}DvrweE&oERn(M;AGONfQKcJXx6w|3U+Ew~Aznfp zriTEFNG4oYQB04_B@ri6iNs0(11J3i2qJ_q<$98_bAmd0@d6gIabnfoG~t&8q!OlW zG|-2KW>m%#Kp2Z1p^gwH6L4W8i3scr#6ysq$;3q`eFV8ll5uhgHvzl|b|MHzxJWO( zgcFH_5WV#AJ79MO3D`-*hE1kmK}e&AAS=irl2@svm-iV%9KCo6GLQ%?GMsoE`ZV?Q z>(?~VFV~TY6Cngt(~h5P41`TgC5E@Cz{_IN31bdElpajr4w4DO2Uxg>8@G%n3Y%8q zBgjdDsJuoF;kuDZJRGNiUM7)(lmF6!mwD9Tkx!UPJa-e0fty||3?do}E-VPY&_F*~ z*fAJFEDp}mOOPkX#>pXC@aYcP2og;O;gr%vkW+NvWh8Mp)PoI!b=2XN_ZUVv69~h> z3EJqFxnvQ}0wOVR00v3KU?+f^09_gddnGo2{x@}vwW`ge~qJ_J+7lZZ_ZQcR~@ zMLLm;AqpFP1PE}JPW%#w6Dv~?ES#o~01q+XcU%-mz=8!oCJ+SRbEZl%ArxdRafE3b zejJiXI9A<8EgrIPVIdp=nMNWG>TzMC8$UrJ@e*Pq<+w>E8atDTCX5z>gvcQdhs?l^ zfdd~VK_anG@&|P4#iW=XJT%gQmu2J;!*1&6lVxOJXEagR<#r4p6$1;W=p(?jgyY~F zN^moQG{OlXDCtBI_J{E|fS(|KOzdo<7B8cS#lkUq2+)KN#ep3QbBMq~4PHVd6NU{Z z;Rp{if>;0y%IP7%VloNmSDNTo50Th8iXDqQ$`HbJA8q)^#)as3F8y(M*NP7}AuiF1 zk35oa62OC>Q*;u<#QfvEK{^n^IYBQWyck%RKseyOcn%_03oImi=D%?;2{K97)d-1_EAPB5!i7s0L3H|8&<}UghOUyL&(L6 zgW-e-kV-g00d2q)BoKxZD^~r1a(d{an06UMBH@xjBw@7CijR4u5Kb=9IAs6 zNtj;3ij8qt5xqzNlUNj`mk2CG5<+DG88|7R8ISI#2lyT1j>U>a_t8S1xNu_EF8c9H z3X#}lAdwhahMSNKB=V2iC^Cj9BIx>~0!I_3ztVtP;)x@YNyK8)AE~Dw3t?Df5(XBQ zGLQ(FKnFhkJ%gucrdR8TBwQvEhMjPfAORF13=4){!b6B=99XEshbh+*gIy2Nfsb&P z&GM3-VFsV#;~0H1i&o00rBXhphe&;&srZ-0*+~uZs!us@*soh&3TCYxTKpIT+ao{ zsWHk3FxGsHSe*I~21*K}X~4!YZNsZq;nM#xQlceZ<};c_bP+LfJ8Eo`X)MG~9H(@@#L&S7!YPogq%xUK+NsrZ*fHs+iFoGGLM`u- zOazV8lfcVVk;F<&`t$@noZwBslv9Kg(!==aq!<^ue5FTmawVN4>3w=u3kgUn1`bJ+ zSpA1qX*D|}j&3QC;n>;6IEMbQSoS2T#SVU;4ukjUBbE||5u=0H#~!(r zY2->4l{B)7EXMO6x^Pf{iC61zb5hUi5lmwR@yyiqTFNhks3KjrY60JK3z-b$2Mk;k zYd=;Eu$R;F1~FX0X?igD9w$BAkDW$oB8ItqP7GGwApxgU0#o!cA|!={m|7}-$40-L zqFyo?L^uh00hJh8hL2c%o?dOIfeuMFeq1j4|iCji$nU+vUFX7nKDhYUGCKl4PMKZClmtLDWh${a zxPmZ=U?z#AagbVU#Z9TB(w4WXK{G(N89a5k00Q9HL*oB@71z zTqd(u$njIU~tulcX|Ct|W*_rq*-0jFen*smH|437qukIIZCj zPf|gX+(Z(0sG(;#VhoeXysBG?q)N6(IOn;I1Z-TuONDqyV+4P~jYo&lOr`8#FmuI2 zI?+0uvz#X!3wGw=AWdH*BoBw>-UI0$MfCQ)joN!wUWGo=VZv#z3Eck?K{RB?%3+6l+U5bYvJ zg+zeXa|0@=Tu-qU@DT0PbAosr{0(U4A6QUYX_ja`fLmLzQifj+kS3!wk0L!NJD4G( z`2;7~T0pc$F+#q=^jDbR4am z;aPe(uUjw}EZZ@O)W>L~M4lv?d~PHXm$qvmd)b1QOj(bU0aWRE&PX~!n)cJj84ePT zfgL}6T)-flZbGgGTOO;yLVW!?f?KF07*naR5YK9liUevX8-0n*qcVLl1t!b)tVHlJe$Fu*8__z0B7Tz%M5FQ`VZ`IdM=O^T#K%?SkcFQx21*_VJ}mTO zFqIxsxSSLgvzssmaT!93o~4^`xt%QHn2U`VR$?PW8kr2?5G_RODLi!Y1tF>t!Wl2S z$Y(4k2oR-f@zRM611FCYN3yo!=CJ$+I|Jw?fGI&nGheGYPZ^_$$Ijg(Fo2;r38N9k zM;`%FxQAR)NG6g*KBS)0+K9}Le`@iQ%S5u%U4@3wTkh#SAWkDEvaQ$maN2){5{HtPo3EHCmC5yoYP54|#;e*8R#SKDQyJT6)KnC{VXrb#Zbas$!$^l!SIC}tC(0a-00 zWH_q`(ZK+@jAU*i6GY_>1~ZW+J%g3YWEM_(u~JD59tMz0GSjiqC(kpBNaC;(;vFJ^ zeyZ@uPR0_>Dq8U|kxl~KNCx1g3m=n6CtCi^Py)P!hdO?t9Xksc!6L@dPo?CLL#jSP z6CnyHr-?VYjC8ET5`ho*AH9)s*0WhRQc6%Fxst`?@h|e|fdz}CpgS5TGhwfG%-d0r>D4`I;`gV+{_kvm@LA$RyS#dUdg*Ov4n*T*9v`tUwM!& zV$4%4;bV%mf+n)qkK24y6ZE*=%yeqmt`}(H9$uwDA7>BW@iuRvG|@p^=nb9Ek5bK2 zV)=+d+}g`ebjfi!%w2k?{*@o~Hl45Md zPTfrua}bWm3WkwoM95-N%$GEpQgbf*IFC>NObs8hfe|u=NyO_I_T#0LE$r4I`X%8y znN5`Q7yR^^vvm@k2tB3^*9;J!!*c9@`#dkT+c{8AViz4&~NoHUrMSBWjO|QdYP`_oNS_&B;#j} zQ*18dERn`4hSDJp=HcQ5TRF)HCJ?Q$`hOhY5G&Xvsl*X34-!K*5!}pGdM`!P%Q{vN ztz+p$)y+q=8ZO>sD9hN&38w4w?9(O8AU#ydP`X)8Gp$@?JI!XEj%2S9C!?5W?A7 zr41bCf2eFDLToyTJaVLkMqm|1l;NaI8$ts#9;famRt88t8|Y%F?xRtZNFt1vxJ@oI zUA&`>W(EJ@Fpttohu+O;8a0X{x-3;F!*$#@H_Ja4lQtAdze6VW3r};lbnofHnG&^-CU=5ppdjC}$hjGQ$=}91+IX zQY!1rO)O-axt3BrXX$5-Ot&v*E;0QnG|*~P(!ge8j-)f#e3@v**laS37$d|CQbSYp z9$6Gzz$$$%c#eS7n@2g!fw1pskzIj2#_0bA41I*Jbh+d}=o2lb)|M_45OXOHlPN#r zquyv@23G}R_?G(ML%NQS0ypul&W-#?MoWcbs(c}TF~P<(_3@i-V>S;+8Xr@Mjqj+` zb9xKW_~mN-kl$=M{DM=1bZ}ng(nbwy@e)P8EG12b;ho73?65ah9KWU7iUwvw};;(~M+<@fm|~hW>}22DXZw zUdsd~aI-8Ul6rGF$0#g`;{%?q#0L)eRUJ#&)tXSb&{0eU52NCzoWB zbrpqNkR6O-g!wG%_`(t?&$3A8aXa03NW?}rQREo2NW#k_zi`odfs0&iJT6zUKo)R6`K+XscG-Xfr#7;K0)0!5GFYM* zNpxt6Wa>f75gwHV`Y{FgNn;2(GKqNR$`}&CoK6WPTu(sHT3+K?NzsYa5ioz#pXkve zBs0*`CUvy(0WWT&E=dn{Nw~>mSWsD$I zf1;CSeTIEh8ta)ro{=jv8K(p2r&ES8j8s`eGEOnLOeX1v9HmQUF@?c0jKz%Newj?3 z+O(1rY?3%?nZiIK$iaciN}O1XubDxN?x&6>y+k@0`Z*PpoA>BZN{pQ{k4X%ofj&|h zOh32NN|*5}_c31$-etS|L@iAk&LK_`CW(@1KBI+NFSBJjot96yg(ab_`l!C7D`mD! zlmBoTQ`Es}F6dnR_&B0>vr8VKj+t^qCXlJyX{E`yk1H81x$n%%q8Lf5 zcIvwX2#`*(ETfqz3}P*U$=xIqEvx7wmB%QeNb;FPzWKUtWt*In5#-B*3?@ljL^OJ)L1W1%EP1* z#GxH}ghR5Pd@^~2SfXS;S!A(~L1f8)34$)=EX8sQDMWLT8k&tx9_BV8fgp|a5iV;< zB13o5kB3=Yq*AY-O)IsBHcD8jRazlaiI7kk~4AO^#AnAXxHvm}-by+Nz!)kkR84%tJFWU!WQ?O+H_V2F0$(KjVp z%Z#N=k}-M@K72ff4THC6r&CL4qet$*g@b5JLcB&L4GhGBNfIt1RXE5gvQezEhYZp+ zf+HN$XHbF?U>cJ-hZ6^vtIVBt#!lF3Ij(Lxgz zge`Q?O#xo~a-6|r>gP1lP89|=UZ9mmUL%)5Or@1}ZNQIDUdKf^f)fjF09~ZzRES3g zGk}+#C5vBap&b_%4DKe1NDKmm<~XBeJabTTsn*e) z*J@hnpjlgpAcA@n@L+)C5F;^+#G^f=VZopl8y4=yz%Xv$dbyH9gh>5_7Fy&RMl(!b zqlq>~F_U$(u9L>ZK8r2*3wI_OlGEx<2WH~c(7tH zf_P$#`4m*PeOzUm}}U;9ulb6Mnid0?$M`- zka2o}CfeCd2QH~3m1MQjO0%qD8l#y;9UUB|oMuhryk2A{DKdpRYH1S}(L`_+;l$`T z9JEOeW69$gn(5$aJcM*1o%FL7uX<#h#8E~RF$~b-B&b^+!zC`>C7EQsoU?in2O}g~ z9wknO=tQ>YZq})XejNt1^M<4nFL#nmvR;OTX8DR#25<*?c$tI`H$9j*^i#mj6I4^l z^CXif{~(+&Y8c8eE~koGcF;mQ4x(_;i<1au;Gms<(N2@TfMUurl5lYqrzqBwq>;>8 zVhGcnw9zdu6M;>i=MuGiK{M@?V<$?Q8A`6cLOaL;d<0oW5{cZ01uIX|LMI=SOs+fw zI5|rrZJI}j5Fe6DGW~QBFJH?95;=f{b}1m67(JzjDUyFl4AJr(DYA&kT1q_+Vq)h? z+UVCd>h&T9DOjnZ7v(mhiR6AtDAJ{vbjd-|h|_y1pql%!6V7M&>0uov7IQS;vPFLP zXWOZvMjs=Sc!KoOEva0fmM}8N)C^phG?T&*9YY;$?8T&$k&;h_EXP44N4Q9AI9!YULT~X*FM>kq*8fh=)5!AdFhQ zsP(ds4!X?QI8dWc2FOtJke<>rET)+#&BIN%enl@{V=DO!lSJI~>NtAoH_IvFjPV(R znXH3JB9o73 z<1`*2oNm2=0c7$U&04}te1sTE5-$A#FOhnjYRd4_K?|esi^Z5Gm*X(kX|+O})I#9**cr`Z>!i>QEz_BqGV;3>S2hHc~?e z4LEsM2IJK#CKAI0bhKPy+>R;@Nih_s*EGPnkfYPKx5;`FX>7-8DWM-0?$@Kc%?+3Ep zv({PbtaCn{z3;u(-sfERbvLSWFn!a-=EaTbWz)0i6Rz--Io3HdouW6cj#sU;-pf|S z#yDhVdPrWC!KR4#kk`Bw=lh2h9@3#Sy=9EK@mKZg;$+LzWI14(X3k6BOeeK4qc7afh#a!X9T? z99g}3V!Ht?X}0l3`hr=eXYNVAb7cJ690SqiDQ~+uy&>wV!)4uCvTGb+Yp5QdgN3kNJz$)~QsT|Eq_sv&Tz{V@mu)ZF)(kO#C#y;YE4t zG-tl=G$$Hjt1efVYNq{Zfum+XmusV9@t|9r~tZC2+) zajTut72ou{r!6%l^Gy1_X;F=c|MM4{GmrbZQ@r{AKf70W*a9`N**o@FtXg3zNgpyg z`r{AQo9#Irv0aD0tW@EWfyr^ad*T%9v|C}nL+MT}+P!Q*nJP)%Cf$-A-I8xurQUR< z3SDEe^27GlhwasAu0n-}P0wF4L23L$!c^sQ=_7_KF;1CGthQIDo%-bsAfG;LsKVH) zm$=0)-Db(jq|r)*Gu6nYDGo`Fks*D}3{|rF4Va6pYtwk;&WqR7TcTQ-S{?eGmPRUe zgh7hs^y>GbP6IZ^A$>{&KA1)-OTSAC4bdz~x{x)`5QXL{l=XxrJ+3j^AP?BCU8i25 zS)Yts?b7LXvsJrSlb(1^gFf30Q7j{2z9EV&vro_aX?VzBrFuP1GEAYDH0$?*gZf>l z5;*WjEvE8@~P1UMk=vimnYQe@tkJ8 z<|>yx{A{=~Icv4+b&k=>^y}82Mk|-}C|4SFx`fR-^rtVIszf=$7=-!8s*0tW^y@Pq z%usdM$z5caB3aWF%j!xw8HF;ELj5v2qgVK78mG)Om2$qIOp5ok>Gop>^qHbmLAt~^ zMX^eQ&UC#&a^BS{?_#5sIiOG8^`@qB&Dx@0(P1pUCnd)k9eKqHCC}IuZO$_;RT!c~ zPL~jttJ597mXExthNfbhbr?{oOn6VL-uL0@Xx1arwWg`CLx;Rtz528w`@XMNje^7b z%$z>``c%jYIRofdB4@QmJ)Tgn)2q7hdq){;gM+%fXrE3MlH_P(mA+pY=CDinbQ6^+ zl|iW@S!KE;oq7x$20h0sL7y6h4(QNhkTOLY^vav5KzKu|exsBsFju*Zefoqx1+sSQ z)NhGVO4CGx6d5ifxlx|jrBI;~MRMtLW+{t*+Ns4lhxD2#Nv128kwZA7L!Y@SXuR1-BRHIndSY^g3QKV7QZI&TQWK~L5Y11n&k9Qo>XOwD1 zrYMoMUYFzrdvqLzp5IUGd_ui0*O_mqMm@pI6y z{?$+!nKV>V>;f~CVVmYOS-FDuBQ|Qa=+hu06DzdHD^{jJsfT#2|$-X_87AXBn!<9=+J9U9V$Q zD}Em(PUDox8Lv`-4chdjMTRKWs9)Y9A%D1)dW1+bRmsIxITfiy63X@Ji*0&k<&bwk zn@Hmgl8eV2)TdBJ)iNh{*=&*RDsgtfW)ioC2{ zzoQLTY>xvvZPlUQY&A+fqF%Q%j8g6$?Rt$;t_Xt_`?tM1U2LpU3k_Ewe;Dy^(Wy#> zqI9Jx#`?BVPVqtQHpb(akzR0Cx*%TDV{iI_xylEwN|o{L%q1$#Np0yP7Uq{Z+S;@@ zeZ|qf9go-+zqiv1=?#ap#OF;{;leaiwO_;?R@s)O>-Gyd-Cna-Q`%{|ljBROG%K)A zuZmPBkfBQE7h+Pb1@Hk65TA{lgGN zK4Z6evDR~*Pg|T~e*DR7L(^uZ2K%dnIwEJSy>YH?jV8M?O-?`ejFPy<35NKX?Xf9M zOlPOle8&jW6&bHNUUJBOot{@?jb=@*vcyTc)6ph+FqV7OO|stdW#g4ZS$xsWo=j&N zXO#-G;}WB+O{c1HavW=)7C+RgD9u)CS~|lxN5 zAbiW{G%+pItjuz=)mRh_HreN0@43nt*?7c&J?WonUOOAW+crHazzcte-^^g}hutdrO2S_6g|9$UQ?i}l-K zWg4W)ve>6T|57TpBE9Y?bJW979`-Fpbq!EsEi6^bo5jR?ItIrtYpqrH& z<9ix3TW*l9%pc84OXDFA#ILP4-E2pjYN~=bsM{MN>Wp+KRXWWi1={q*`pg%d;Dl)R zf+sOcXOuca2Zj3c@ak5?N)5#_n6`$8; zb2?eGnpk6}wp3|>Gt(W0XpL#sdpiA1kwacKDb4gx^UPH)??h+o)1R(4QMWPLHKhOO zO=Ar)#)8ylf>|-m0ln_D!7F~F+bFl9Jq=YO=MsmM$2xm$O`DV(ZG{>q`M@PKk z88<32JWWi+hQ*ho!CqNqrVDLaVoV&g#gl2IF|p2GyG)8EuQ)!9w9h2Hid~@6m~@Lt zrbL|$-c+m6-uR4ueV%bB9(R?TJA6QqS;`%-E0)XK=WNaKl#}(R%hK;u;ZF`}$iM3O z_`6fB@@6{0Sg)#97yJFm{B*p7LTkLJQJ-!VX`(9>OWswh#?R!`$GhH%HSs6=tw?iR zlx}dbeX`y(QoDzYGA35qraoP#!i0Fierr4@YnJIc^`uJ;(R#QV!ZAiTCY^1!-q@~D zpF?)(NMF;dGJX(Uwws&^jfk#jwmYp#6ODIa8mh{rvBonVGRD{#9P2Dk-%UeJ$Zyu= zwseCLruwQ%Q_@|=DK*V5hvIV0_M{v2DD@Mi2E{ykt%x1=8=*;yhV+DK&h;6UI;_+Z zulT2o4Kd2QR(e%9LYsQKT&UP^WA&?Xq+(oQgDv^%?1wpgRLZuHWHPml4+vg)H%vNWx15s?BgZ3Dt+I_~RIl2|e_?PlD)IC~aSv;jV z)}`+#v)|kH8l*&TnrMjXG&22ICf=WQE1YJeBkfRWdJM8fv4aX@b^OB`jqX-xxF)$Y zCVkVOG}%x^>P#{qr%owBeboA>eiNd`I%nq*Y|$JWL3sa{PwI~^@& zVw|Ww?vFp|&}+IP4R+d~#|%YE+@nXc^OYLnknU6!!@M1J=}ARtw$qFhu~eh|KB-u7 z8m`D7A9q%|(IAb+rvE56%SV;z_MB!LW0!ZVOP^DzD6Lg2W4}p`if1(G^n!LfVwlxl za5_2-QJ~j+ecEG{&0bGmG1C%%uwSinR2rpOhwbrQyS1j(CM)rPP7Q8QuG&Tw4yC^u zYIOc_du&LXRcK3h8exJDD|KSD+HP(7hQVeU@1PQIYt&?>0mI%;+Kff|>~)hyt7DA) z>U~C!IXA`WV?LA5Sp6w9jflqyqwT9pw|uE8$LWOZ1lPpv=LBYEC*lYK>* zeM%H4@TeApeM_tDx}#CG+cZd4Y1Zr&T^i#a6^GoXmmTrb*y5mz z?UGL`6dG-kE;;2I3^&mT{qYZb)uuTHboitq)$TOWVmI4il_DhuoTf;X|JpBWtBf%| zWTc&5(XLO6K7C%c-+L-_%X!^i8AlqbAl+t+@$rU(wx;vs4Kc$IMgFDBe#dAv#Iy4H zeZXi_ZPuV6F1E`%={l3m(yP;Mb^4W>rc!%+!VX)~0kfPFS-aJyKO19FyrSOo>7T02 zjHh%P>rZxjJsvR0@fK>;mc|>bJ08%cH(g+mQS!2C;udvQxJQpnJR;0gV3>+@hC(SW zv&rjT5}H$+$v&k;jm}tThZX5HiWhAcsD(4v{A0L*<0~X<*L%B zO*h7ReY%X36xgEE=G3iSwQ=?d-|>RI1vkYb7UZ|N&4UG3_^mnF{VVj!%X1 z2I6XewmSXA_0Cjht?hBU?GE^XlN{|{In&|=%dAfGwcG1d{f2qUdk*TdL%mKz%y5p` zMj)ry_q=MG1q$`~qFIKUVXvM3XpJqh<{RNH@2NAO+GGv3*_GxQp*ZgJhJ)6t)gy0G znjGKrRCJ_oxYa&|7NsdpR;|b;9jaA07~36ThjsCj*ko7wce*AW7lReWRt*yIWNg=N zp+DFq=YZGaK6~_~%@&#Om;UMPc*cCA-4omGu-$(}?Ds9N$5*V4hEyQ0#dKo~HrZ}( z#u@Qd?^8IJ}$ONy(RHms|``0G&b0)Nt-?eajpB}6;H`2@jL6)YDQyvz$8U6 zKW_3`TmTnLEgi~T%JnCU3o;IMw7GvTW zn>Bh^g>mtc^J*&}jy$14M&$s%XGv)QB7t;^Y*J5M5qA&jk z4{GpftChrXe~*o6rYn`kS@B8jF~m;YagjZ$Q`ScvpO$*o{5-D{fx*E(HMG`S^S_2t-?MyFHKC(KHB8LvBkN!)C2KKvyf%ly=YG}@!-aanzy z@OmnZ)po^?j8vU=q|0rIt3Br3{KR-gKHZ%bD@A0wLzqiw`wZuNFtw=R;7C1hC zLHr^%WUotqNlRk1r>xUvg}v#w<|;7MZgp-qPH!6JjfA+eujx!?e@T}njM?|H2Qfr!Gn6u+HuSKmBy{X&+U2(J7CZ>O; zw@gY)ZS+?3cvF3>iO+gIo-)VWRGv;V&Rs?rh@a~aX_zYi%Re5sYE4z?WEJVtCdXZO zGtZ@;$7VO^&>E}ab}zcuoLDxn(Jkuz%q=#iUpqoYex|R*Tm84>TV0c8$t!VcDsd=( zdpu*f7lqL=-VLUuKY7xIzGq^$W%2X)jfVaqX^H7BihI1`$5!f&gW8m(|D?~SdGU={ z8h6G9cgMPDh^H0if2>-a4|~n_fio?!DXz6ejmPb`DPDDtHTj~r$9s;l#++CapSL<5 zRHQq9haS!8lACMqsxKaB^HS{1z393$E;l1BGC$f~&|K6r-H#3`ghw z=qOVL2K>i=2d=ln=G?aQfS+g2FfpB+{kEStv*&Bk6yvf#@M&knt!aVd(|x9<(fKbp z7;Dp8j!Tm=yA3xe)9*@0r<=9v&SaIDFmQ&=w#P~4s*1m-i!IWOLz#XVqY8fRXFeKR zHR(v#t5KABFI|(C=2zHbo6^`B?YVc;*V2jkIo`7;jW$6+8fAggGb3Hv0IF$pd{U?@ZI-QahWxkfa?$XR!3ml)0 zvshJHV3AqzYfo7jR~n=uJK0GV6+D>!oG!~>tIE)PueUAF_Bh7G{BLcP%f97o^E2N{ zmz$c}9OY=mN>mt-Rp2p4sz}$Gndavg+o3r-Io;@l%tNkpMSMWNvdjz4GBxwnbh**_ zWSG8a3- z%*@;A)9IopQYL4nLjBpz&Uci1O*6eCaQ?b?bRAHy=q$;??{8PlhaRpE52jBbw+B@on7wN>Fen`CL0|$ zC{}2vof=KoOLkbg*Owz}jeY4FlMFM{0qyB_H~Fw%Z$v_bY@y?yb(sH zBaBiM6KuC5y={cy4w`35`jI0XnZ`NB;CR(jmZcx7G$gaucYG=y(V{bLNmGrs&H)YX zQ>4IK=9rmj^~H3BPQ~)B@|t(k3ddTQZgYy`EtmA$uTQrdl`GSyLPh4ube?15Z(4Py z5sH*LU!jO!YSo#pHo}BdYpn8AV0s#7pTTNeX1ozLY1W)FPI82{-YJ%(iyf0@*{V^CGwh7L%H$NOlhKjB zo-Rn|rb9*;>(5&4af2boC|0RF{ls(=ovci$XYID%^{SOxr(8u^kf%!vPJv@ea2Q=kADzs|w}(%@mW3Z~g!y%oi-O1)#uT6K{VUIfF zj8LgfUSXQ8Pp=hbo2f#Qw_Jw~Bb6#Ue5X~&YLM5LUQW|Zc8oy=yHkTk!xYHGzw{dL z=h&$(%}XaaQmupbdtF9>>53GmC(Sg~llG{KEh?3#PpVQJFFK?>U2RwzX}|VpiO)Oe zknOs3rpuj|PP4;abur(L*q5f8l_r=aut10YxW<7vguHxOZfqLvJT1ZF7W~@oVdCak1uTu~eZ^=Z{1t3#wwjy6@d1DfM82Q*tLBbPpIz8U_bMN3?&Ti$eQ zV{^LNoHQkF(xffgydE1fH~M%w-yr)nMy3D7vUI>H>8SXUCY|YTDpjVHW}6z{RBNA$ zZHP_2Yf2jF@3uG)H#ryw(r?X8dv-_WAbQ~H&}zwETZ1bM~jqlT*TmYl5H?%lLOxhfBs zZo1d)Rp)csb@;MEWhy0kk62}uBTX|!o&65juT8g)M7uuOG}xf{cx;bt>5oEAi@|AR zJm=+D?t}I^=v>oGPN&6x4yJUD;_d2jgJXli#0acV3R!-nyJc8 zZNBSeuczOeVV09r$a>H)!{X)mt@~1=a#gNPBMf(bylZ1Bbx3Dit4D9VX{FVM>2t`L zCK{i4zfUV5K_r35#t~mp{Xs@k-{C3R9JrRjP_=1qw37cG@1# z#{ zGs#p_@^^X8t5zyhoQ~8hGOc(c#J*=nkB#>bgjWYl=i7OiT%m!8%qS?8dE z^o$Xz<7wM%P2W+V#|8t+ecu{;)5|895lyz)V60}zGb)rsX}l5}Grehs(UFfwJ(|wd zr!p$+(3F;G*P8xhq>STjvD=AqCg*=+huX|z+O*_9Z=0Rjhb(qxEOkJA=4}&Smb?S>x zc{6sWWzI`8RC+DmP3J006VrzsXM`8kD~^lZ9rt@yhXxar8=Arv>#dhFG9Hh2?f0}= zJJb2;BhJtF#rb}e78q<|>QiW^uUPD)Sm{~sx=xQ=8gQ~>+~zS)WFE8F6qUMF%PQ5K z|GF>44QYbPG|E!5onW4%T9enjla7o7_L-Fyo15C?b*2aH@@9TntcVWpA79miiU97{}#FRIs>K4qJ>_>xTynXXTJxTT5#TeRs+*DF`%bsOx7YxS#C94&esqft}3L$92fDukb^laEKe5)J9=rlv8L%BYNC z{%dRci?htn7sukbCI0F?P3gNv8kaiKOkJtPSJJ2Q5BW*F7`eF5dW+oWHLp6!qVzYj zOo>6>w8u5_di>D6md7P(rF5gAs?sw?%cQ(ZEsc}xCjQS_JL0Lh*8k!%uWQOY;XGq3 zHC~k;D={IxkY*Vb{qcnL@qz<-GE38k&5i5hH9MW5L09^mVG1MTc`eR2R`|0O>e3*m z8y`QiS6LMLop;jhmY5NjdP`gSq4%u!FQ*&oCcE^w++ah~3YR)7y8O|Lb{b_`{?@p| z-pu7`iMBX3Ua&j;I}MYZZjzDd?OKef#yA~SacQ)CU?lN3?eAjx1Jgq}%OpD)p zLAO3_E;H8*KeR(@>PjDWWc(>s*yAVGt4$rwF~>|pRY!*>)unsPQJDtPQsZKDJYj46 z!9Klat5)uI>$LiSkxJBR)}uy=LPwZqrhdB|(4|j{efs2l&`M2~s#f4*#;A@9tks&X zFvx)OOfkx4ol?5R3{`Qj{W=_Ph~o4!Q&h<77ctMP8s7*0($|bs6t~%~HGRiqmHwke zUp%GZaIxc*{?Bw(4(KreLYqE$ExP43%gV~@)n|@U;pQ||m3jjP)JC&Dr={UaJRQyY z?9#5s(aL09mPRV|_o&xvn{K_XO=Fe#b=2x{k_wr_O{nW%lWc@7Sj| z{l#=;KA=XS^*Z!BLbU>aw@s@v)hJ9?o2)!G>J{3x=}V^?qr`Rx^~DMu2GS2qRc?+- z1$JrEuUZys9nj@0wdRU!qx0tQcZMJH6qQMH^hZH4*sVd}5QLP}Iu0l~X z>(rk{8murLv`t4kO|=5onWapDLIqy6U&s43f*hMhDRCgW^joIIfJLfgHR+ajK)Zg| zrOC>zi#C0}lqM+iz1XJR+*BrKu?o3#ocDjkbm>jU8LY%)rIKYD^!c1=$}BM`6&t2N z*7FWTmoFHf$~>k{&tWj}aeJfPTblK{%9vE9QICB3oGGdt)TP$}A>t+b^`&!-Rvd3? z(37q-O_fn{;xOphuTREcr3&N}O1gCEKaBS7(Zk^tRD*tbpEXg5yo_X*HUpB}VZ4;2 zOXyG}r&Ng~quqe91}ii}MzUU~yaJ^P9Al_rYaP^~MVEf_j8rc3|J}1;mu}$%Ba|E- z>#McNyToXPw&<4LZ(;w_V!#rE6{ew*fq37Q+phorBii$gR$`oD#p-qIO`{dd#6Epe znx;~rQ3@oTLd3&%>2y$Dzdd>+;}pxz{?JE+$bIpQ|Eb*JAu z+7NrR>vx|$I^S;x%|ganZTehjf=WAd>9<#xyfWk+XPj!yy7ar-1_xx6DvW(PMY_Q} z)ka7dXOQB!#0vYNOC%b?Q%-nX1x@4(L*2S;#(ur>8YEdG6djI%0Y@1m zt4o)>9lG`F1{0Jkl97}CezpAn*s4dEtwMppie#;HP`7DDD2ZR_u-62yc{Y|?V2~AVishD?pK8*N%`!9p zF~`PBKIc)7$6e_rW8(znR;HhsXtrNDR!9DJ>nuyp$M@Cyk4nAqvW&}?6{%IbJPmu8zCFKegG8a(J&p;VuO7~(*@>0(Qa^=)JI#LWtAGtqvT z7@W@2=1n6Vv__>eTkX&u)jp!tzvX4(Hbr)({R)k9g|iKh&wJUkdYq#=K5L?IUAjPj z{3RZ;=6&Z=tX68J73pddwHU4}E|s^*TRL@mTdA&mlaI;C`+(6A*2hEXM>Z;sd$m~? zZ~COg>6mmy8lB%H8?SlW5xUK`S~fg{X?5( z*ErK;3uW}CYtvCisWjK{Smt%>^S_t(TBg?3Zi*!ewPb$iD3`@0CR^##>2eGFGv2a2 z{%gAz)A)3xPxzL>%FL&%_fP=HHM@M<6-3vsZoy4%RA^CV@;FSp)(e$ zvOC>xg6ZiAqfCf4Mfxm|war3<46!(kP@-6`f^>x`Cd3MPU9yT4rtcbJnB7Lm_>gin z=~)vklC)@vlOzpB7%h`-QEgPL)2A@=R=P4h9Cyb0xFUXKo5FODQ`1o{Oy#CUN34lI zri`JEvOXP^M!3i{gVL>94a7g<{&+lnFkO|F#8^$bQ_eK=+^^5@*yF{xKkai=8sn!H zIMG!`n2>TtJ32Kw!5Pu$A^(VRM%sFK-TOkR z;%&Xk^BcVo_oa14>q>vLFnvmsWVMgzRBn_JCZ&^2a40@ytu>BRYN!`=8R1ObHu<1Y zYEq4{j*G83pdme~+ycL`KsGwP>DkOroZ##T?V5Z*rAik{I-=iB9qC^dn5f=9Z@3$C z(q-v5OPy}GqWF_lUh}vLQ|woyEAtn}I3{-6W{uy-n&P8+b$QqW)Rm3EDm=(k(9GP(4OnWo1z>SUG4+L#_S(m2ay73F{D<#;STWN4b7erO=PF|pgLu1=*ETM{jHCTXmiSfs^jKT~B|+H9CH{wo<~wFBPs zps|kkdmM_v_Sl}DH&JC;X0+2{vi1I9pDtO84Ofz8n3KK`|MEiI>hC7H(l7LRJHDh{ zbNa7pgPmls8J^MPU4Jsxe6Q=&=@spo(qEOUjt}eA=T3RG@r*WoX`<(pq5j4B&+XiU$Vlg_e8pH5A>v`38{vBgSA}AsVHUq&|o9osojA%N=xk4W zEOSukRj$zpt$H-bDKk-4w`-Kj`IjD2&Jm9FOO3>(>NWb6@rF9V9y{Z1ZFXc%H_fSW zpDtZq(4p2cdA;7&WV2ryX0bmT(C=8?+AUCHuya%zk&aekVjQp5YLg8&T#-Jzd__)$ zE7YsksM4U+XQ~PDS-ZVytYV{mLX&N=RX8YC<0bVbV2^(xGZ3mvr19(kP}GRiq= zwv4*`4r{!c-gAUAEqBN^%`%cDN|eM5?|C~tZn~)^D>N*ft;YD+sb8;*0SD6%18U-D z4q4?P9siH1v;MNWT>tlVzjw`^*?YR1ff>3Rkq{A(5JgeII38QiF^-LK4D1f4KM}FFidyno?Y+z^MkJM`u+*eTF(#9de(JaFM4$cRkX-7qOnT>qqtB%r=Diw z5i?9>PBha9 zCxK0L)4(7MThIer$NP2*oV{A{fiN)R3=h zsUuHDGmZuNH67IOGxhY)h)F%eu@R4f3zOaS)6JDw7{Ov(_*qXo=QxFjRyy$F6e}4# ztM3vdmszy3or|#IlvFO{CT^yTLaiZymr4TE^AF0X<}p$kPZ~D*$i;(~Fub%-gcC1s zk-#PN&`uS*fLen15RPC)I72-R`Xha`QiBzntRjpw4EzYQ=?B?{7n{ta5W|?uCgSBy z-Ac1JY!ez6*N0;St{zs&-RCh66l-)!ld{3)f!#B8iRbQgi z@&!LLMLZlQg?scl>f~-VOBO|Xz50#qtd&@KLa){;adH<{_ULBGkk!18pDQRMfu(fd zm#KgK1mGr9Pv|*%WGp>YYc&O0LMxpFWHCWHs3L|OEufKp`H+hwf>+q7)m+0|8OSWc z@sUV3etNKC!NeZ(7Uc#&adK(AsuGi5x}^cUSnK3i$Ut~c^F z`8t9!!t_J^iV|s)xk&JRb?7h5A(CEFh-EN+xUljPCJ}__T6Sv%TWHqLNg>EeT1h6J zMq2bFKhVlr=HS*kexa6qlu(Obt8wtUjK`s$>T$w3NIzcnQ%s1tkK6fF-ouT^KAmWO0?Cca>l&Ss}Xa1+VqBJR*Uqmpb|&6%{5ss)sYi{*6S zBnl6{zy}(sYk5H*U6Qbj5Cv=d5KV42S6xG_Pta=rPvw(>eR z(?lPQT*Fnt9o)t#{gO&jExUP*0aj}p3%S&Hisw0KN#iyK1U}S#bjbY-rdVu5GnUs0 z&?M7k93w4v>35tnhq8@fW+_$F6HhTMa*-aPLdVErX2}g&L784kH6C*)r*ycbOb*Eg z$CdIXOM+iB6IU=u2{pkSjuA9U8HxorJp^qR%Q|_*?9=-w@txur`Pz+_4r4Gq#9Foz z#Q^g;c2g=vOl6`hBm{?fx!%Z!`aA>mfj}y)IOM!M&Se^-*HJAqX{OqIlxE!p3?iQ4 zWDv!BjAmpYk`LJ}mBbKj%;k1Q1xN8e4jVHW%{9hD`aYZWN#ba+oR$}P#B5?GrDi?` zorZ@IglG>YV!4q?Tx@5|H5-e8e_!d5-Vqh!lPI+!}n^8rWMWb7k}6gfr~X_g~Q zK?6=+;GkyHMTqq#t|!a#0KN1EL-|%u7+DM=*)m0zFoL5bVekeAD3t#Y&2U*tB&F=* zV#ab5Cy8>6ES4eucd6BC!$X!N5+DeH|B*<$?q!{RXZ^2yERE*7bkh(t^k!bP8uD*$ zu*~ER=9=@V;;h`tBEl`l-DU>$9-~>u3{$#Sl`N9{RE2<}6)w z@(S^U@inb@sl!50o@5Dg)khKMG)Yfui8y7pj3*yIp;EylhKq$1()4!f=%5ZCovg)A zoRP;BTtYaC!z^G2xw4RO9QwRgA@UGTTwEYAgvny;xVfBs&gm1h(kfSyL@b{W#55Q3 zBb%h1RFZj^Fhb;iq%u&~QcI0arG!d(lL?H}2RTTQaVZbUtul;8Z6bnjaqHVu>sg&b zt=7v{R8kp^hk%S>6hnxigAT^vB2?~^CCt|?`W;)elo*_{j&MS>Q1_B67t2zvAesmq z7`U*>X@)SAPiduIr|>7a@+)a{GKGPpF^Os{L=!D8xtPIZ@rbry)pe4HlPTItHy&J+ z%RU)Mwq8dKb#j;iq>w}yHr_-D=y|HCVGUdPL%tw`WW9h;gr%est<4ltL?sP$$a&^4 zNmHq(j)PdRNDkAvKni54Owr4i7X%-HzRNmqL)xlt^7nf>2%{HRKKE@ zP7-kwqo=i)QeGp3Fiz1-P+y~&Mlodq;~9*L5T0Uyq|%E)7`IcaHQGxT-MmXL;p7s; zU=)Uork^1F)T0=>fet*JrD zTraCw%qsQcRVd&ra|j`XT0C^{4%uYL6p0|5m4p$(S6V|26C{T)&fx#MyBRKnXrhzF zGK2wC;ii{byac!n7jB-QgHD}GG3Ur3h@UU;;h_yTS@IyslBySQM$1`57#_*MNeB&$ zmElaLR9i`;l^$8oXvx;C6l(+9=%WL{k5xvKftAlmk^~;6O4~SwRpNCKXQ<#B8falW zZVAPK50ezS>0&vhTFq&k7;+gA;@}?oNn#2qq^XMnEs__wOvcNLK&Eb|h*H_cPzIP= zsnj~!Xpjtfj~r6 z7E?o$R^h@)H@$dOImH=CVipr683#7KfnM!p04|AQCGjNSA%OBRXK7>sJ=#VY$uffR z3?NhX6Ne7;KY;w7s+^5&`GF{$45Ul#>)`1hCj7X?je;VUT1_%GwD`fs06jI0)xCvPk4Ds;I()fpRaC7{Tw9 zP|v-j5F^JKN-A^dK*=PMC@tVLrx{8;&3XZw*v4ICGJpzdXvR-0;p$`)Tjjq@VVb~1 zMw3Dx{eR8&v4{{{45J$_+i9UmH_?l74NjcYQAz{RSTJcPlyJVLS_>tca2d;ubl_tX z9$FcJsdYSuhf`cg6ydy2CoMck8WHTHiy*mFQ7fM_f`QtPNl>FGrvfXXgzzT;dUYjb z)Dn*s8;|3|gm=gJgbTW*iG|3>Y#zvSdL5R>}oTN(6 zBRHs)Xp(pYB`DA1B2@NjC0^Y~3w_dy6_?yhBNf_!NuOSW9h>nf6PaQDNdq1Y!=!^V zcrY}VZaRZa)KO0>siavJ6GI9&$Sf>)iN&G&Q2bhi1-~(#2qKBoI_hNy5Xme;u}cFs zLU^5ae7cM#>Wm~tk!_YyMv>e|2eDE`A7{;Ky67~<5>JY8DX9$Bt#s1H9{RECd}^uC zwY1PDW3Xasp;l1I+qBVZo}v#k@IQVc*V4mqqAc}<(Z^0&@S1NSSS*uR$WmU$PLFP5 zAN%x4Y}n*8dWh7Y*r|u*DN<#mzJePIt#namd7HUhWM080cFI~3iPm3;!V`Q`w{p}{ z%1|b$gH04mGdZMLlnG1@WbqS!vIYm;MlAKz8&8nJFx^NWU6M~SgXKLYkz*#Yg?2NU z7JS4LOSG|2W;03x45q~#r~5gJNee;3C7CwKAsV*~lO;^h`T8~6bqnX{S;MBK>AcxP1lYugTNcz=7 z0j7?ig46OlAp|v-W@ywls4>)AcF^J!KO1ffsfni(F(daNG?w^h!`0|1nuTr z{giSkq?3XAJzm^|j?r9kV$0lhn}WaZ(}dt@)gbWax)nW)GP{U zqlsL~^=S3Q+Cmxfatj10|A#~!ES4kk8f6FZ_W&@Q}a+lu1CtA$+bnr2WM9af? z=#?=nC0-1!;X1l0!mDtI@41~>q_dkgyi8*#LpVz@E#~XI%po>VL95(E2l>VYGMXMX zkb=e7BtLPfe#~r+$zrTH)y7r|_>*wbWCFt&#ctv-#b7Dpc!8JL7+j-s`BMflh7|G0 zBqqxH%pl#|t7|FJKXe}@Z2wzL8AB{fP;BO_JkNf~<1$85L?~9R*S%EfLCWZtLYYqv zThxomMRQTv-D!>lbokpu4O20vIxV*LW#mbissQvIROIN zN*@84Kq{esRX+*Pj+aLz8#iaQ9j`u3IbK;t5@Doa62yTE8zBHZsORbD3mJ@)d`$f8 z(02UXDFbnFnr5tQ))xACQS0$>u|#0Ur>!W0i6I}$KtlCCe5lMLh7fvjq56eZ(uGel zu`q~mY^N`{G}1$mOd@c|qom=`*YIGn|Ldz;1f+Gm~&^l+lh)cTk6y zK5Phf`~*qIfekBQ(1;)X8>jrMoSK3ghy0Ut9Qyv>;9wBQ!i|NIL}MooCk8=GgmFY- zl_|tx=OV(e@&hOF>PGzduwVo22Sjd0u<;8e^!~jPa0U;4oZ5wre@P0VtkpfVGLcY1 zm@5f{@Vi#hLlRCbs5nt}0bbc5vW}I-%HzAp#41m>5*hidHbm3(jHY_p-7Z8FEgTMAc!U;i$!HMw~ zdP_0Ac;zzUu&a-Dy!2pT5RDMfJlYBT1zyVpGKkQ_l+(dPlCS}GY|Oxpl}b7Za-J@F zxQW3;bA)F4Xvd3BCKHEU-=mB^`Y``KRe(h7SSg?zA34~uGLac~Zv2cT2CIxC3g=(Iw06^imr|S<5NyEh%n&{;Wz4(d8j*VZLK{V?*O(#jXurq=v?9|{x zsizeW6@ajfdOQpw6f5m`5P6DJ(rINBGbtdJfaY+&4CG%FYLEFYlkv*}ToR>aEY(f& zmOexdne@}gRh;KIW931vlrhxc#YTW*Kq&1zEveLzqg^hMf>P36QVnXkiL=Ixw(^Fj1zdn+Dy? zt#smMz8;`XCdu`r>66UE#~6-N#Uif4&Tll6A@j*(xK1O1E*VcErhcM35Gi37(aa%@ za7HqeapcfSG>6E*Dj#ze^fkh%#fpa}V=~8x*TrOEp@4xhh%Zs>vYu?5{4VLVvILJd za0|oPOBd0^vWYMvC6_erB#KNbbsxR-8c~EZLX|vDns;d)X>5>WYPn11%2Kv+4P97h z)*80cLmdOiA&V6fMuwCymRMcDPzrQE#Z<{dj3Sx{N~z~6lJL?-E;X!WHa7Dm-N{at zU}Bm_sMOuYv+}6iqtSTS#szdR#N3L>Ryj=<$=sk@*~bZX&?2uelc|!#Fd41S(V<85 z4P2x#o^u@3`|;2xW0)e-btbWxI7yNr0vUwrFdB8gzC}GYxl!|Fus%tizRVeUKwg%+ zFmN!0-`J)(v~yUlAcKK8sHY2)sbuK8_%K<-0S@yA=?s-1!&pKZe#(g^K%{=Eg%og{ zE*z|qE3xY-PIE|JAV8#M;M2ow!3k_eu(OaPNz%Ki)Kjv7p)y8_h-WNoFi2Dfm6Y%Z ze){>0@l50$x+vuXJxhyBkh$E;O_=y(BhmQzf_^Hsnl3uzB@!4+5`Nq|lk=RBmx&{m z_iO~mlI1fp$uiHKCD~yRM72E+dj0*~m1aSu075&;|Mu56dTvV=80GBtzb0D3N?1X^iA75wtOs zXmM(^{;6NeEi#7$Jx?b-eU*B=8mfhCl_t4_vE0t#<5{+a=<6u5M zNur!8Ld4EY=4uRQDC7vORO(v<2*}-}GFI=vB#wVlqwAP}OBTy?GPzV+aB^OL#voCD z;4}w~+nL2e<}sd2^iw*pGKnsNavle5oRr~AV7ivmLpnW(yeSzB*Qwe@Hy;v3C`ynJ zU7*brQihKb<3X9gJWb&^AK)d7VH!gXQH|&9aA1ti~Fq%SEIT$`JLki+Y}9I37k5%_zR6h9kNj zFAi}rl9Ad$9_4JL@9%ttn;7~i;t)~f=q$=O$2>ymH)fL|VRSgSa!2eA@`pBV(Gpqe19RAbPg8xU>hQo1Et{y~n6 zZXwj&S0mNi3B*u6ilovCrBLMp!DOTk!s!`iX1*BmTWF0mC42>*bq(O zEJr9OoDTUOLz_5Hw2UNz7JBtZ3fV4)NkW-S2!o}JaME-e``JJu354sL^kBh5JJpOM zoEUkMC=z84v7~Dijhx^DQiC#7isTgyNP3^pd2NF;+k+G&w%2*;xh?B#0>B}knV5XqgA&S1t6#d*ri zL-=Wz9XJtf;tYp5fJqNa=%tE#aWQ~cDyblq1R_~Y182E}@xN?(^k^|>`H@PJ7%at%U>;x5NUOO2%C!pUVcaZ+EWha<887(fUv>|B7IJ}x4h3?872ave+?)ijbx zI>{*QdVn6Bnn4Z6SU@Lkd7B~3WfFeMbuuN?uo0nO@1u$DWeZ^>u#5->(nvP}eT5oM z%5qYO!$K=@OvFzAUqZ4ZU?+;J>7w(L*IY*b(la zh7ukpjdARtkxDJ3n`$=Vqk#(guxm6e6i5P7QGEubh%2$tukX=Ck=#QJ2^_~DR1Xm# zmR)pEO(m`L@FodN;7^n~exZj>dhigzt)wxO}jwSfG0-q>Lctd?eXqNHWV9M=XjV$#N;7 zn#UO|asuQ+vak^3Nv)(^7D*N{{eo3nB`lZYjb4!UG5(@E4NY-KkKu@T09>7bn-*vSd5Wg6-1VTbNwH@SFZ z4fo4c#NorIuQCh==^$|w)1ck_$#F{9szsd81{ud#&S2o81EEhw$t6tFeR_}*R&$t6 zGO*#Gff8Ev5C=KSMk?u|g>K*AqhMjWC*9K8he zF;3I3$Mi!EP=FV3;vp!xRO8n&8tIg6ay28(yY)X*@F2NV=uP?pJ9Q+L1Y|H@;?@+l zah5f#=R&^K+bJ{mk*LRI2j9pNF5!E+EZ1^3iNS^3PEoKySL#XQ6eCHK>twvlWGM02 zN#H2OywB}q>3#%LAHYkfY0)9N-*T61loUP27nE}mKXFh$B?lk(Q-)pl>8~Is2@r4I zs;}r-!r9MxS;#YtlYf&(Ic=oLO3fyYKC?*|=r1hfdt%HL8qWb^1S1&40y1!GGfz=z zjFo)(w~Qx>BwdURkrCV~speKz=qJQ7f-AI^3 z3jWa3GFVT^ZQ9Ce-NO%b(8wu<5v5D`gk$=oF6K);&pzhqg*ruF)(qy8%PF?dqD%E7 z8g(N(DKSp4f+%g}JA7uT-ogfXPjb1O=h;uIPUm-O^*>rhJ%?o(DgJJq#5&`CR#R>6 zV;<)@OeRUe75WT$^veQV#ttlCZqTh1YCgwlmETDqL`zwsn}e6><@{pqWC3I45gAEE z@IHN1_e(u?`hqKXk}7$DM;Ol#M$;O+O^@-tzQ9VHdM7LCG4CLUE6CL!Ijif~PH51p z$~JDM8JmEU5rOwuLV-NW5Hh)r>13Lvd`ykizD=6A+y9`x#(485a%r*N$3mtUf6zru za5SA&SR32-uzx+ZQ;M|3y_6Pr2@Z#1B{(Fw6oN}AZUK5qaRS99c#0)B1edlzf`tIV z^%QrCJA8Z>|Lb{XF4oN6&zil~dSB+3P5f3#+9mAop(&rP*lS}Rx$8#O2+$RH9h+LF zUBqFSa2mi*DIscle@t>GkZCf;AJX?|GA#AGt5=NoRI*F~9$3-xFG(ihblz6Tckz)r)D=YV)Ua6Ftr!@-H8R)a(RI z9-aEU_uyuT5B%OcK90;O{cQ-~FFwxM>u*P6W<37d#l7gaFPv19bW+EJ;<>S$Uq_M4 zy~`31(ld|Lv6vjF09zU#y%GuSw$|I1HmXajQI?-083ve&g>-f=QI+Bp1LGnI)czws zL~@6X)Y(+;5x{Y_;qo6OhyH_u^ai$-g(C#LWmK{r>}> zUJpn?TbBYxd(ke;l2`95U5~P;wgmgJaax}N-#ZnT1LqQR;KKo@5#VkSU1!{qVx~Ji z9;`{eP{2F=Yx&VLw)d5snm`lmD+rHAlB4W^NNsc6r)&GtwPAL7(rbHe#%WHg`~Hw+ z%7r!G+;WsWVY;HyrkLxdL~B3*HdE2_8ndCkHYw4_#!76MLHElCaZn z8R@eBd<&z5aT~tmjI4d2VYlo~5P6ktVz`QY=z z*SvphvYt-&(>T42|L|;7Dcd-+pNn2F^ZTgc-xaR^dw>2&;>l5s&9c&8k1i6S(#9$z zWrweW$L_sXPSLg_s*?FqPyaFj(}L9!efyk z;txhDz1N(^Ki^2*pE=JZknw8Se*2NPGE%9svlivbmS#-y?4#X_UGM%^_99Az+MI`n z|68_gGAF!Pb0VYB6nJNDBgx^^J)-f}+MdO1ikCNv4P;2E6m=V6!};|^IZRuQ9~KTL zv45dPMZ46+89Zps(^Xn*skHe$(!CmjjB`fW0X({2YSA*!{Cp5U@FGpvtdc$T=Oy!Q zeZLRglt27Y;mS}ay6fiHghj+7|84z9Dv*hF-n9t+8Vu6IJsAD4DuxjgO?utFrhk)D5x4H} zMH3srtsoS~q`LIu7v* zeP7n~FZfo4?j;j@xTA#@rv)D}*Kncd2R>XmN=5CHX6))~CuNaDy(HxL&iJw?edGz9 zgpgLDB;ky+5_Dkw9ks$s#&-YD~4fnHdM~TOQ6X%~d zMcxxU<1Ocblx~6icBX7S=3GV|uXqjhiiL*EhgjnK?tekGsA9mWi{6}Pg(6?QjH`vR zNtc?lh068S0S|5Egq1zz9;&aB()=AV1Zm?4`tU}vKl7)u;fQ8V8}@C)A?x+)`LB9T zzSSB>whtx;-q#^1g!oE`DQ`?}HaNwSJBNwR>yD@gd^q*p8T=M!RQbSur-}5{Z zdQ$t%z!Yzr|8HOoB>myrZ*N=G-$aD3yzH(3kLhblP*lW7=W- zT!0tl#;gxi_^22^2o`+(-vj**?=RnG)~gqvHCLTI^=!NAnsH$bsv<}WA}~GE&T;)_ zWb{$=YdDyjW&h-ydx^zGXCN82mAPufkCg6MJ(wgOFd>PkXFQA(u#m6RsA3eScWbM0 zo^vVz7?q0iXpiS}XV}9+26@buxaR|zsgdKW3oxRuAEPjxoPE}d$rbcOa~IF*g$28G zn-PMA6%3t{qv>he87mOOZA{YhV;RvZ6)j7)LA$5bigNN*KozK{W!YIEabfCXT%dwM z#n^kYVr;cQg-30fy%cNM)`?4kQY~?T^v2mHQ5qkR4Sd(5GvjOp8-Bun5y$pW3apr^ zLCP4-5+;&2T%@pP;H>Ep4sCt@kOw@yI}WRB(yy}gTQjVfz`oTwXbQ;zrf}i8pV+cM z5%ID{3AasV7)6!UCr3uADOizrPrTB|a!->uRQxhGr+!I*o%;9v@h(!fMR1<>GCB8g zs1}GJsb`wyR9|2qL`hhJLux9WicCtXnEn)PZkM2UI#s5Iwm6^%$4CK-l78<8&cyt> zcTlDISk?@&HH@5#|{Vu_rwmZZ&4D^u_SOYNOCibEKAc9*{X8?LjNa zqS*M?q{Y@=DUUA$|z;?w%+6{9rAzPdO+<3ySH%sYKu zQ%Q}w#3@%)f7_e%*`4bQw_F^EQDpYf$q0Jn+p8|=!zbGnCoU!3D{Z4;7xh&PdG0ML zMKMbu2?3*jt;-CcXXuZ`i8sB4Osppw#Jp-#(po*C1zEGZh_> z!|zMgneAsr&w3EEzRc*6HE>u7n*pkT$@L5K4H+uNJhoD2iuIIkL0ta5$cYQLg>9$S zC5!k0k_6*SD?DdA70zWiL*kj}5{Hs7x6H2IAa`!#yS3JSP@^N*@;Y4R@ENN&MseMg zDU@)xlII%h*PSWc`Kjhinv3w~Y0zAT)sgL(lL&{qsH;$AJgaooRQA~#Q{+`N?UI*( zpKbPbJ9&Q)zi^R1Lcz@8-v=+xntH#qsmA7>hx=vGxOu>vJ&LvA9xdWDw5$X|i$Xu- z-_4%+0OY$7)US-|Fu91sl7Qq;WrQznH-&30-r}NdKI?k&O~Up`lILvwI>tAXWtNm~ z$neZ8PvHo)djRoDl{CvSRWP#7#sre$1dOs+wo`cVti~mL6nLF;BiFb(=FLwhA_;%2 zT--+OdS{ucrbPxYxO)R?=7rQ90kSccd~`!RHU6zjCOm(|Y~b%;ZU^nqDD$~c-#*6L z2@fbwx(x3d2Aw#KIHue*k9>+tikV5F`=rAs2I$Od44gJh*7Ai^V#f1*P!<&?Mb9oV zL4&>zFLj*^7n~y9&Cq=IXp!vg9ilsW1i17{>&;>bIAD%d;ZugmMSjHvl$qqKPx4wBcun|l@mevBn}V?zv~A zqC+W&#!5^rM-XS68W7lF>&{eR+5B8nZx_VPKf<|VfEx7w3cV3wX_%r@hz-9yLN>o| z)n<=?aTS-H7Fzerp!vVx7-t{(iGQP^+E&Gg+g0}@9fI#%|nSQs_u8aDLM z*}XaB&<9DyKjPMHHgeR5MGelY+O}CWzj9|tOPeW}1cAGCm+?nV4^eCR}l;lHpk}^|4JGX^AFP62~%;|Hc6H0yCvb8B=Sy`+;}Ecq|+vK z?;O*EU3uDuvOofhu=o7+Ru=ZPGK1>Ad>esAf^K%nd#AbmN039>iLEFK8RIa+;1xl> zMuppQ!%SiKV6Pt7i7y@K`1f3X7l?|96`AVNr^p`iDmkvfXynt}-UsB-y6Leagw8VkU z?;5tm6*Gq`xsK_?3f2C5wG8s_m%kYTD22_pklqLG&x6i0{-7q+=2u!VZ{(d4Bd&9) zPlNi&+t+L|w5$pWSfU{lCwY z*M=+YstMKxV<=td@aIO-|5~$cYSVW|mhG5TncT906f*^jYJ+1RbF{-2#@wec_VmFY z1zj*2jnB38+`<&wipX{J%ghr}o_sBIYaz=jwrsYLKDp=PH`5e=qDidb28d8*&{i_H9n+Y zHOhOsT}S-P1|}ilC^bYG|ShNCFr0`HJCVZMxs+G5}wLI!#ea!Ox67;?kXpp-`$2j10u{LmT9T{9mNMm|y+ zcW2eiq9+#j%sHiHifY^tr8it|T14GK>aQOA^E$5VQq~1wy&sF_Kjz={cwfKr^0Yv$ z$ZGogbctKFygW2fy=7UF5>9Ztv~bLsxXw;@J3MXr;c;v8W2rQHxi{9U2$#(enfdam z%-{#8Zq>#I3ty@3PS=<)K2Ta!K%=LEMBzQCN0?^1LeU@>Y9}CS8d>SD94j?}rU|H^ z^$MO_dxT-B8&6y6Tv9?U6Ha-t_6mm8GFNaP?;6$ptq-FD1$VFlgv18 zo#q)iT{uX}PhvT08+s7fiO<8f%YU@~t&p{Baq(DZ7Luu&dQdN=w{8umQFepzLC>Ia zfOWO+?JPvw?9ia}WY2CEmte(c{)@-xo%nY0M&pfY83)H2nT1LX2Uny0PX%KiLhe_& zfMLuqM;ym|s22gp)E$pKmtKyT@PGTqB29DLm2*vR5+A(=D{)n)Q|}PS-_nYu^qc zkcv)FqhSV!rZC%t%-c#_h|(<~-aJ>q2m<5t_`sA);C9ALSIZ4y^s1_)`n{23(|MC7 zyE+~SIaS>I{o_ul{y^r1JVAy}m3MVL0pvBkpM!Jz8R2!kx*c12mC;J@*gTWGfg{Mo zc>((oH}0ZYKD{y4tWI%pXsX z;BS0`*y%S~LfET8LMCfn{W3B=lC(w1T5#q54%h$WG&&iSNcaWLAZNts)&ql%qOVKI zJe(>qLx)X$zXiN=rm^eyGfq}>C3-)N+-m0@Gkgt@Dt!Yi>~~cd{un#1S_ZE{jdxc; z3Jvf^mHeT|nH0$x%OL)7h*6sH-eUr4n9i!<$MgX`(+De|1&qZ74jFXh1{=!ol8emx!2tkt zs;PCW_ISuW6t@ykI#%F3c3#9b3$qHZ0WgSgw|Z|R5H@P(@&+X)w*%|5ioTgG+rdxQ zOF)PvF*5Rmr1yb{ZizGxUSwVdvq_jenJ!f? z3v}QH{{a-WEXhTPt%>qz9*diKMZ0Ge6S)Cv&o8uE!7^Qsh}Xn!$x+s?Y=W~TZ$ipt z*Mi1L*H`6vW$7TAB493Iq6~a$fBOmb4c<5CkbpXF{TX#bGn2~R0aazP`M1KC`V_G~ z)uz&zS$q!#%be{2*vaCo3EA-1W4SQ4^pRrnp+8 z8`kH`P^}PJr1Z0z9CP3lTzuK#(a63CycD5}CG&+0Jnn0pa|&zeR$|>wnos;?j&=Yh=hA2X)q@ z31xc70V%*Ng0L*E#gXCOc0hjkIXJ?+NTYMN{uc!(e{=w{X**ZsbLJFj6OGzV#JcMEFeKafCb#S7BA z+br0orZx3Nh2M7}qF_H&5psgA13JbIYS~ETMl;eSk(>z=XkLF4-dxRjcp2XYuHrwi zBJ%mRyGbwomCA7$#iJE~T4jOnBUb)9Pw(U49$$vTl=Fl=YUJSomE;6^NM4j5!p3{S zx)Z*K8Td43Q%T?aRK~N6XxTyNeiUXeAWCDij4i&C7VWjkKdtWe+xZdwx8Yg zhU+iOx+MgMyyJ^$_GOG-#zehGl!&LACxsfWdkmze#GR0ZZwyxHdN!_Nn_hGBP%XIS z>R*{deK&uZ@8|riI9>CSFRNM^ypHv2nhXeB+PKb)_s6R-SvK)67H~t4-!r{TSW%kj zp=J>l6zDfg4g4oFEafr==PL7w%@?j{0Gm+MbEwn@m5EBki*R#DszY+!G3l}e`V}Ss z`$(r|`TirAT?2v@kG*v0C?4k{iaU-McHNmIGw#;>%9ulm7vtXJ81h0-zw)C<*BS0G z2C?oL<$PEfeEoGbUYfaBIkKH2%efqImA&)=FNHHOz0pW#F3zwCEKkr_{;y4Ve~2?D z3+?3w8~a+SOJ7pvr2`!VRNa%3W3@m|@fH`w77-v-4HyuPhCQj;#@)>Ho~__7QaTZZ zQn$?R3DW3Y@r~U}*Mz#kXuXSS3304;31S&%>Q=WPA9i4pOm&20sgb|kaO}E>(NmrM zO@?+Q7Im}CW3!e%#2%J}tmaJw86bq;`^h_1GNXgk4z10l^+j? zv;$0~NVuH%={WkOb7JiCn1Qf)Ny_pOm*K`EiCmHSH?fC46oEhYWz*be+)M}iDUZ}F zMY(CDCfF{t5_s@d)0;S!KP~S5DrysJZoZeSXH&-JNwk4KZPr%?oO7tuR==$_kAxnw zF?z;@n%bA__NQDTcLUI?zANe%iWIAq0OR!MhdRwab+k?_J0g!3`Uu#@A5oGjkePU){($u!PDiJ1Ml^>kxhFD6ALIfwu-8X|PmJ z8}sfAZbECgs|cM_TQXRB0nIo@z9G&dD6dyEq5`haJZIhER>m2#JCR}E+=b_5Npv_j zJ6*qbJx?;1>laDmnm?9)7(BcR=4~Q$6hw*x?SrL7bmI+!EUq7tETs31~A$=BY+zm6MtYGkTJw<5cT-p{Nhxc`?&>0*VT(A;tiXS+vG0z-LvPkg6&;)cjS{>=a zRFT3`xc5h1>bDCsZU=};s9!)xf&~Y`jR)hhqp1=>t&_Bbc6FAxn1yr z4gK{Js9#WVLlL|GHoepkDhs`@^aYOL~^Sg@zlpZ;dY*wp; zk*!$HbsaJ)#v^?K)y(oualnEFU`2)1sGV$PD}C-x37hOK|a|>{rbn2Pa5_gEqjY2n{NamJ<{^24m&S(ltGzZQ zgyw>JKC3}1@?eAR?x`1QQoiRh7tgCwLgb+b)4!Dt&pN1duv8`Kt_O1It=gEF^GfoY zuDrqR>$&cx(eQU&n_?}NJP8-;ej!uQG$79-cYF7st@Au?|A^X z1aaxtxqqkB#R*Kwr$fM1P?qL7Tp&cq3RC#!`D5w>)9l}0mZDx(Q9E1Ey2m>3dmDGS z##&r(K7P7dhwc027Jm)|q=`b<(!{QQ1 z1Cfc|O3YHHZ!w2%ol2gbR;q~3bO(NaATuW7vqp7`E6Jwu+rTvcVM}kSpUO99t85^| z|9ZL<(FB-~8OawfO z*t=LAnP=hwS&BLDto~54a^H^C8LC8Q+GD{Syb0WuQFSC|-L2Ul%X|Q4E@>m$Uezk$ zf*B5`zvWqdJr=A>au&*z17PCCr4lO5z(sID`KMUcp2%zS^j!ZQQX-^Yg#Ccn)a!AZ zC@VWrO7>gMjL2Md!Q4E*wuU(*!HoZxKVY5Dn8n;(?=-W)2Wbxegb@6{XEAO{VFVc zU@6dus%ikoC)g&c-SC`omrL{5Cz@&3dYW0mF5uvi9SXp~v_)izyS zxN3^IY$SgeuDE~ZyNgO$Nq4JLAQv@+m@}0a8#m#KhWf5{Car5k?1WWPFU>0_J2reB znaWM`66x$Z=oei6N!Ob3-ZVlPb0xT#uf9))*J)?I3?2DC?XW|1`S)d*-kQG}mYKt; zK|9kr9VOKNkS>OuiBavm@BrIt9*Y-Vko7tea-aE_z)++Ou0Z`!IFL`5B>Kvnl#cHx zLdMQ(SZ+q#lJs~qg%<)iGXAS-aH(0Wu5FqwTFBjemVn!|&#((?w#Nm>M_+`v_(0*~ z#q{a>jbL=0<}j0j5CA(>G8h%0ha9>qHK6n}`I!4koaA(KY;PAOE~VQ1{(6?r;OMbV z(1evHfGuS6wWwFpye|*9P?ke_Ec?9uVog#t{LtLC=%j{VZm`72LBCH{_HD6R2QAOu z4@tI1$`yf{xA8(Fb|gIQ1&=6Zoze{;No#Z-Fed9MA$fNTsAuN05xS}jhxl=lHwqO! z6X!L3#VgMM)4v@!=$X??4ID}ULBVs%%i?rJLn1Oeo*4(KxWMOwbzM;}T~4+Mom*lb zr=kin1eJGuyVnS->=dm2ekmU)T~U z;-e~Mm9us3DMp{;=Mb9{QbG*Dp(p8#P)2SgUtUdiKZ01~>thVtTk3g?=m}YF#qacK zLi6rUjAdy=2dnQPVWMDO3ALB(s1!!S6jaf1zI9j4z=(&V_UZc$hEO5m+sM-BE!l;J zxw0N#8Gf;u4gZnBjGbUC!!8f{NQ8=f(6bgbrh6!TvmUlfJ3-?}CS?A76*g1lSZ<`St-1ATNy&s$O#x9AOqTybpGSEO&lpw5mN}=CYGZEO7}RZJ zG{>ObI@x{NK0OCpb|{MH=q>^{;aTZ)y_1LLn8gL6h)aIOQe69or6uAnA|nsCzMpX! z?aHK?q!I$yC(lctAT3;kNMfGUN(e~2!>&Hv>6P=S;a%Ek8_l_(pqO&@GvB$E>DQ_Cr z9^O*^=Hfgz7!(@`+O3rfO_IU%V7A0e?a+n<>`!~M+@PJIJku?*P;t{Rg$*KoC%E`c zD5SAn;6CauW2MoHj1HguT zG>z%E=X{N$0)l4H!g~h1>yLb)LIs_=`CMbW7taTUR6E(6%ETwupYD!2bhfv+8VN2{ z!j#Y>Pe^C2%Xuc1E2L@Z0UJr?b_OARszKLEb=WC~DqkZ;q|_}mc>>lu;o4`%q2_hn zOa4&a-C?ihA1|@ipNM8W@62wz^tkg42=xagZhFK#vm4vzOy!k=@l`=OV*(oFE5fbT zNoFx+W8c)!6Dd|Tzj(Hf9TT=IYDX905(dq{BKeP*J^{6I035|QBI9g(;&MUWGI>!}4HE(TtA^*jWgD1a=|u;}*sCG)%qNH-NsEFVRkA zWhiQB8b7<{;TiP!G>5cskH-*i=iCq#2lY2Cg(jIh>kI=7R_2U4P1L-pEfziEhK7c8ilgrMOtk3!$B123W&jl4}nIJ-pP z5bC@jWIkNQJ}WJGr%}Q3uoi#uJ-wV)d*GdAycZ;BeIW~9?&zW6n#3o;{IMg(0YXBS3maF+$;PFA= z6n$;>|FcxN5GGOPf@!g*xGJ|1QXb76Z-bPC9hA@yY3$gj@mp9nPNFBU;^_K3(DLYDsgy53%%2 z;ds-(1Vn>gV)jrU!n3aLA04HcS~lStmmwV=TZ2O&ZXKBl$E@2VtS2Lq?qhs5%S*y3R7sz;{z8XY5B!94vKYt zmO8Z10uJBH>nf&iya7v&%^MuJ;qPEj%SykiR`dg`=2gU}-#>D*rXtwLHz@?t15Q*oCiyMT2Tw@cxa{YE3q1xj36C9~4sYET?dHMqW$ zu-N^Kd?5LVlcoMcaufv}TH1Y-$GcRR11bh@n>19xm2t?s7c{eAh5*|qyyw7dSHoL( zc{>Xx_j2jh-N|L8HAK>+zdAbeetG#Zm$NDS_gF>_RXWp$Esf?}hQ-1Jt?Fm)OGT#n zmPL$iBKcMyzmODIy@Z5+@o6D#nNd#Nt5(W05J%VRC0Jh_)A=@+p-vbQw^IL}J>kAI z;T!w-j~8LGrKZrqS<&#!_j&mEZ^G`8!_L%Wc#yE?7V>_Y9I-|iEUdmQTL2Pz6RmI+;P;I;QYK&C>IBDqVd-Q+j&jZbj--^I^*_XdJ!sdbQ-Q6 zb5nL6x9fe$Q5xUZpSnig6(ejIJ;=F}cEBEqI?88$;+g4tV_#|*g@hZ}g#p5{#<@z3 zD$VKiUi23MR32MIP>;nvRJZI{wVf?e&ZHDW>yDLdyt8=1T&Nn|%mAMGKKW_Ey0zfE zy3E-X{5E|HU^|sRR-VEIMs>d<7nxaf9Zd{voc~;>X|$~;b0TFJ=9%;UXAWRPHve=; z2w0@H3-~X1jh-@gob~T%jl+F_122YAOb;#+>8x9*pXsT@LtWmeQB~+n zJ+T3<@78V~64RT1(03kE5jeLhiGOOdE9h_0Dh&oQm#G)6wveu~mNzJn6TkN#WQ{YT zN$xxAZ!{1g?sBxPaZDe65oI*>krvUCpH6I=0T127*8jKNNy zDj!*iw!78#f?J;nR+`T{%RUwrOM+kMqvj&>p?Mi`<0783ueT8h_qq-x;D()StpbJ26|b_y{tV;rV)KU&5xI z#5%&c=;?yttnQkXFMTg<{boWY7ML^oF$DYODwZ}#Hk3+KmQs`oHu|jCg%G+zVUruu z>e)Kf*305j4zPe*KYnOZfq$g|-hdOZ7-%oL{P65LhB@t`q<&!2UW#X%uNLSRGSs;f z2NAz)-p|@ZDF!b*t`CiUDQ44vnc{-tq&4W z-R||vsKBaAA2(^knfsXv**c3=TtWsN2FH;7EM}VGJ1ni36(cG)pH6NOmiV4{u6P3T z?WQw^WG_m^xt9NK!+j{0ohdccBa6J#D=}&vOv8 znHMj{ac6BMk5EI{rIRgi-23NU28jIFE{=g~%sZCBeVkE_d3IU1U!8XJWUZ2yZ_AvD zu=ri!;610fFC?MmEjidFhwNh2AHicF#uKeRBq4FP{JL&QnFuF%c?WScPVW}|lFs`R zZ09?jn!MzSh9qg2=a^m3F4irOKD1{TW3IYL*)As{Gg$pH$gMzy&7X|2Y0|GkXS|S< zgX7-@To2u?07Td=Ej$rvSo5hSe9gqQZB%v+s?$QSrw*~sC4aY;^+ICi4J4ch z8}NuXNL{R-Wl$iZ-}UnyvpxKkeDMxR<}y|+SSdQ$ce-68eTSORu5zAaav9q&V4-As zIhn=q^rC?{IFMdmFQU2((qV83ryXOYU6))8svR@fONeCJ8N1F}cl-1G8B4;mc&{wr zV|WeLL%YAma$=b+%n~!GM{}7wZy6g*?xVP1`@slCa3q^SYF06f7oUH9@UBOt`B(D6 zmoQL|n$5o^l_S=`g+xLBxo+cpPF2KjQtEs83TH}&$$71YP2zwL{VqM@$qJe3Dq}d> z{6%_mFCC^Qc7DJ4*DO6S`VA*rV$m-&Cj1%Oy$_@ zbA%H|%aAEy-3>La8W}*-b4cf6ZJEc&FA7W@ri2XodO`n`_w0dvovp-`C7fX7P z^bZ4nI>X-u5td|4)~;besdILHNp3!ygJ+RK3!xw5+b0$vRW)n=9RxAFE`3m3s$M2J zZJ?%pQ9s>7VzuPt+Ems=R&H^LHT*T32ce9vMo!K%YcIl;hx>E(yFr zqjkaCpTVWcQ(aH?wNC825ol1$YcgTtZyst>+pq+SqEXqZK9bm-M)8KeMx%oFc205G zfwA~cErO+!ZePC-^IvWPY0+ZxS+2DcXJE;Vfe0x%mYTU6rvycgZoeJFydhELe|av* zy|Uw=C1?>@_yjb;j8s(2Gi#?>w@wG9lX%!Wc_CK`H~K-+^RawGP_-^TqzDYaLgvMSAV{IBdb1ZjA&Kol5_Etb}Y!-`b5hM8|% z>rNGFGX}@)r9^W_IM$WHo>|8mwPqa*5>qQaCB6NAiEox&4IG=Vym>X}BcvrH`UX5) zW~^b-mK6_pmR%7$2W9Ys5N9utw9MKxl8qnGGm=|F1hCF7f9_e69AeH2UMb;$dxcpv z$QTvy=#(}tDOe$2^&HAo7*v_XiK>O$lc|>JmUe1uS<;fY>92fdY6!?x_1iuTmrqUd?HqMgYsh)J-+&l&(h%YSXlrD=Z?l{7@_Wt3DRv(e^=MVXL|ed_YYy;Wmv{bM`$Z*rq_>+Tv8M- zk2lBDL)^Z1EgJ#K&dOM1G!wy_YKN{K?IM(zt)#li5dPe1f^!Mop3u$lbcK;&$)tFH z*(7TA1j~Tvc(<~oIu9^$uF@|-0|bK2;A{u{tvg_ja-DR#N)GvItIVLC`hLp4;P2^n8R+?6f*KWBci=ijig0Kwv z3-WRuyHdQtKdqgY`p>o6QlZ)<-<`;vlaHtE8r|sx1lO=uO9nkpN`B7R7K#R2C~#Lc zd_ea_a8(-%kkxlxPUTu^8Wor2MseDhxPo}L={0se|NS@62Q4SeDnly~yXpUybPGGn>*oDkMqHt6r>;laK|&ou$&t#P@> z&=xUx>|zhPrYBpBBlSD?6YhlUikitoLa``j`%@Ip#U^lE1hADz3PQb|kjdyD4I2{r zam5hMqh2Ltk804GbeIp*ydGpf@VuOYJ5|16&I0u&tEV#*z3JGBHcsqVE)<)DUWn8T zd%BF;*(2!hYE_fZcHhmfIf|e1=rXWgHcHgHc)t!N_-IEho~P@`Ld)cMs8#aX4QIDB zAz-bWAv3y z;A|w|!;?VSiEZ7A*^th*hYs~y73=>)7fa%EKxrG!a(k$N>o*VTH^>u&$_IG z2kDX9^Hs6!xG)btzO#n=r3>!Z^6zDAPzL0V>`5n_|M!ginDYn&HNBy!{Aj@c$qnO}`71Mc#I>>I_Z09&Vqt|k- z|HSm>FYl=2HmX^?QGs&a3@E)-ICqjk!Ox&AZRk)g`T7UKw+Jquw{}^4DER_+rR*YY z(Ht!N-i3kHs=?F)rO$j~2{7&_`&3IyG&M+FwTw}#=quOg^srr<-8|d;+QDuU!lwc6 z7snax=xy1=VlG)B;3oM!%piXANms3cU+T|hvNU=Ig~nx3>K|G43$F&21uwU?o?rKG zs+z9+b8k|PC>~F04>nkS>u$$ORu$dc;=T?#ZTdN-@heUzwv1?QQxaPM~)wS<=^6){4P~-22l%;CHuj;Bq-kp zDq@U_v&c&Q4w=u5kCqBy+z-%bl-o2}Sqc$l&Z41bQ%LJc;PdoksG3<^cG@>f9}>q+ zj-igi&l`L6obqlnTSp0_HNkHLL+H_N6Nuj$JSPmOV)rz`z*&0{zDhH@(hQReWJJ+v0x4?-49L_TSv|gRHAMqasn}GyIZC>yDFYh_wX5_-dDP4n#A{=+d~jfCxBhl$dsrrp$hetQ3TN$UZN49C zs-?_!G+ldR?YD;aMjQo&xYr!Ex#WD~A=3GvvhB)4Hs1`m0%NZmpNmEovyY!Z;jBS# zuQ1*@7nuT)v2&F1BJzlRSBH|PWT_q%s*IyQ#0EBYBG6_^tyKmRgqq$f~Y!uznJNJNp@@jXg=D)3#;D|nJ#j~VJm0(&lORhO*;BOWUzS&+bHD(D zY+_G516W(fFJ^W@`}V6mq6*rLtpdz$am5|Ydq?RzjtYmoRsD{Gt%5gf!A7Yb&d4rC zLpv)ExTsCyNt&IdUozvUG7UuL|~_bL>d5>4ru4_y{TnpT(H*5m``zm*|N;*4&m7D$l2 zLy4dy=WVF~8IWQMDPA{NF?1Lu-BUL3NlApWh!-Y*R_F&yx@mO54+QVLB>2z06&?Nf zIFN{r7h%hB_Gh3sK^MyBEPWT_wn&%Xm%O8XUV+!tmS}#97n`*n66^b)S`glI(Kl(t zDQ={=c|n?21VJPaC62j4baK8kdAGQ~Z-|*&W40li3|3Lk3}<)VQnwI&NK#kR%$&^Z zv(Y&SZ5<5BT#0EB%gwRI(?Ospkxx|B$7`9?Zx@w+LbB-#iR%?LXDHV52vK_0geXeXi`J z{CEjqh#W?~mKjlMq!uJT)<7%dUmn!#RdR(> zydLT;A_3kkN1o`RE(oc;_qF7T}hQ% ziNeci{0FVDd6*GWJYM?>OyH@RZ9np7bF!afoP|!<+~qAbzajxwWI?!VPk2QGKrvH| z-2?GrZ6L!g(0#N(Bu(Hgof;cOQ|cjAU`gR4|SRfGg%h?>hKUH0tgX7vay* zQ~!NrwX27qxj;ltJs)`m)kl7Zg-Q2q92L$OL0TOz6bp2_MBs1K%^~(|D=K$=GHpLR zmc0!|)iL(Q3hxnmbPS&<=Wb>KNr^sN(aj5q4*RrtAnL&oNPr#tn1e|1t%UxMyiPM#`rt!*_N$(mJ@ktM;?7wzwadEK>E+OA4 zX2kq1vy;^jNfI=-RgOVc>*-( zIBRY~G91Om3;+A#9Z>^ANVUg{1_`C)VofgrVK;oO)m^Yz;K9R}X$3SN^dkh~s1>F4{F z>!gWI)J`Q=!cDUo2P9Qh+!Iu(hnp@Rl3~f^qKGVf_oxIhPVL&u8$re9x3Bs_a~;`{ z|0*ICSJ$}`I=VVtz5+U}Dm9a$I7c@>aB#hqq_KE3bP`0kwKL2ZxGX+&vN`@7QbuZ{v!tLK7Hq{S0`tPtC=|Q1wCpR+oS12i}jWJS@5y{D&uQ3 zMGB)E7NbaiZoTRBa-33aqH#pgVlarXtx;C0m!Uc9?XU0ohldoAjs3&KqwSk~tAAO? zVq04<#1(OPq?)K+KY&aGqh8TB{%ahdjk3o+MGub{Z8~9(#~!A%?kIB06?BtbAso<&JCVPkG)%DGKRv4!aMF>JO>%(_8CrKR^igV*AInDub*{4FcyatQ^i zl2awP%xl({zfIbFs^$LsD;L$yR!(2QpG9N zpEy6W^d4j`KJQXpI2>&vbo9lQ=f1?SX_RZVU?A0dlk1V`iGHgVeCJAvC{WuM+o07(bQ?og58@uOqQ>$65+{3nI82#)CYPMir}Nd62$@r_V&@e8YG#XL-A4i>P?Ro@ak=d!<~ z(r?GWDFq48*uTm%!S473QwNnmlAQ;Nhd8YhtxUMB1h0eTX3-L*gJu7~F28w@7ULv% z(wi5fDEB1DGDdtZ4OYHQMA0k7Un=r*j;)WQf@Tk>jbUBi0|$E|(j_u!p-va!5|f7K zv7XF6Dba{rjqG9C$5LCY29)4@Mx~^>%~3b3YTCKMQ6OH*+=0#hYmv<2>m327MqCZC zob7%z%`9;P-qO6U(YldaufPd?9W2zonkJ)OTtsawz?9f~OlM#=rzT{L2DQOJNzX%C z0e>v8(z#orK9q}lz^-2lqrYy(XZNgC;*o0592@x$Ga9AZ+?CI6f$e?k5=^-q$ZSP;F)XGxc~fV0KAc zDr8omM$vkl^Dty+*+u2Nk-g$e{K;9ux_g305OJ3BOodKMRY&TX+SxbjfvZMCNWM+b zz`XTIjdGXfJjIQ2cer;@i`Fu$JbtTL*0xLr9fq4Mra>sm4=k zfd*)*jjC+ppa|=dWvHz)!h(DuMS$jc>$86*2@`_TJ^?wf}zGLN_-_JZIe+Toewb#eECsH_EEm`7zE91Me(CIWX-sk zYCqDALcfpv7^CPMfd zyfz+QmfA9SA?Osz=0IU52*j(qkDW|g2&eE(V^xH&hAqka1-O&hN<)_7x3%htqF~(X zJ?C+kY;je}U*U|?JUqIMI`ghfT59}Y#>DBL1qOG#TuQ~w5V!%=sIMAVO#Q);%{j2o zq0Fx1wkfv*jRcYKyJ%)ts_cbljXG4FT!)MH<|c|8=Hzg*Svc+717CU{Sw; zdTAUMP}}f#pZ^tOC{4s9f4WoAt$WJ1t)EPzCZF9-3wB&ndW|$--@z&8LO);c`ysaf zRLsi-cf)TB;Vh!)+itkuz$S`EIF-h>eI@SK>y>liVpeBMR2y&gGqF{?onRA^3t5mM zFVvW*UoHTITt2_WS87tXU)fCZyd{zJOG##nMOITah)#J}$4Ph^b}0K099lZZh)t|I%guL0Lw}37}sm&5V3qrI*$C zcr=YMQIF-~T#}gdH{jFlie>XDF{7cNw9aqRERG8-bXfAv1+NE%+NI5X2*$Zy4ZXe6 zraDy*fLr3AwAc9Kz9}rI3V=L#QEid|p)>dinZ;!}H{H@)U5-khbt|SHls1mYojDd@ z^tv7peV#|g=;l?#_1$~+05cisb!S1;NJaatx9S`dx4#IqUKdLXFB?`Y5Q33iGX4!S zL5|&$SFHeQW~FIzR4e9U#F?|*vv!-t?83AkYMPl)LMYo|?L9UL@)lUOpZ)CQKLVP@CXC z%0@?_Bjs?ZBd4>ABu@OND}ZDmcUIAl#iL2a^-R}{yQ!P;K@Q{W4hhpW3v7F5qE~Os z&I>gnyDhI)6g;BZn(qw92@Ov`puz7VPRe{femafS+-uRp{qi)+-frHQfN1Q7I?X<5 zG-K55-n*2vS~KwINy)ZM*MX-q2el#ESKs?!z=0YWJK0QI+#_WV8(6VnK=xldM>Vf> zd>YtVp&xcn9a;u^#}|1o>{{5GjefZo3lX0^=@891a@obWE>2(=eoiM)=>iUXKMaT!l)FX%WStLkC|0Cno{px;8 z&^dCMZjAi_It65s<*buanxDIy}GEiq4{0E>yDW}IDBsXdiP9p{1#!$-hL58PJ%_3lH+ zvWw6}i;j-gC8+uQNDx;_Ar*}OO)))F6O`(zo59wYg+);G)=$;?rN4ibA;jkS!9b;PrCvDU?eJMlkuiu(lu9eWiUNS zTinPhxX(bI_&=+YK1|ZOK{%aflD=lHJ1($0xgVZN8v06hFH0r#$HthhPamxU2^3!S za>WE)AJ?7H@_#Gi14T;CC{stv&h<*yNbABOfkk^hf)U*b@?#|1l9GeefO>}aeV~x{ z=RV5dX-v3M3=g?ya}a<+X}PDo(H?WxGIwY>^Gx=eLkNqGKI>seDh$`DYib=!lXD$q zS;CHrI+_Xgoy1l1!Rq;cRNPam#>&sxF*@xy3jeBO&;1~wgvFVv7j;UxTXRP~#Y53? z5$QcOazaO-kj+c8s)eH(ecp>)xo(=xT4j**H%5FaCUI|TLU~?bJJtlawJ$F_yNs8^ zA(=L{y*|5=UGiQ>>?g#v814Rsd$pK04`;gMK3I-g5(GtH2@=PEkpaUs>qA;*oTJ=^_1$gyVWIBw%%b0xs>a0T`9hE*F`%g`uLr zGM0Fl#h{@>rgFbayp8-jFn}~tB4q59nbU=EAlMD|&>#neG-j-$8HYgj=4xk}C zXTu?*;w6V}ot<=%ji*!T{ZeT;%KOxPUB!C;ko%^76&R~9_DX9d+38XYcAr9}ve8Ca zJshK}?%@7GwKSwxSrUoW8|d2W?gwiT;hkbh3{Yzfbo1H#9R|>TALTeZB=Is{mriul z6su%}8b6hpF{h>OeEYT3W&fRj>}SsMp!8nx&{uF4Cb#H^bJ~o1T=U7BpmPoZWwz9f zj8eh0C)~ZUL!mBhiYEe+qiGn@ha=kV$nHNC@pmZRk)>mvpF(OR=){FVo=uOtxkkUt zrm-@&`4W~XuHBl!olhy5EFO4AkLgDU!?r#bS980}{pP6PjW&4fN4eB~{yJmhJiv~Z z%SV;L#OR5DdBy&>ceUZQ2#$IorDV@<_qW`?s9>WL4I*kN+SE0pc49Cz)Ty{Ty%!*< zQMhtTk_N>Q!qQRjvUWhL8VH<1&`sj{Wge-wAs`67L)Y3*L_zY6uYE+ppf_A;i6&`uVW1r?`RMy>Nj!m?28_nVJ{Gu|b2P?b5kzXPEx9et% z5q8MO)VR0FJZm78hI8Wb=i^gX%OcZ{ci5oEK^kW6btE~mI0n~enqO(MHRV6-m|w~c zM%U;R=G`2*EcrlBkmciNBk{;@@G}~Gr|;IXVq1etT8(sWNj}>3`RaaCxKz+IJ-byU zLHmwZ!z`fKJQ`+YU1!q_jscq6XAHGF)_2B_Io&vY?=-RB5r2uVh)pe1F~)OG*&zjH z()`VkI)cZ5_fc$;j)Fk_kB?Pr#t_#ImABYP-jRrhHr3XU7UEwiR?x4ZYZe|(bErNH zyhRLn?swT)*5op*7`qQ1s11wuE0O6R z*&crJyZRPdlFR2GIGjt7$bc?cN9h0jH?sn0GO9-3iif3r!?7m}l*ywCE;8sKP*r370gW zY?t80XumTGxDY6zVW{83AS2vq1Ma{lNvp=uSmOOUrwcJEHC(rE*u$hX9ILQOxN(~|2K_r z&N1U9v^6-#`f&Y0Ybl^+0|4-zFa9JI_*=GXW%l-V`GTi zgG@)Rf4;5sTd}8`C8NvGGlOhS3Ry$$H#c4iN}c{=UB9pZcaZD*?k{Y-F4aOx7}TOn zmX;^zgoL2ZazI%Zb7_um@QdBC&G8FF#DatdHifgaBVvLpVKmO%%&a~-JN&`u0xm7X~W^eJ$P+a)-s1(N)X7~`NjK= zJ1(vARu3<(=A)X=JW-O<`K34Bj=N6Qjk7Y`ZW^?pdU>dC&MS&F^4|INc7{|*haB}{ z;8VjSl(*Tc%gq9<#x|_5S?iVn<@6v;t+`FR9*0V>kTR4E!39HSym6c0ZXu~;v~Tmh zM2caKjv-npBzX-n>gRF)w|~o`LbxK*+y>*B{i&(X8kdzwa!^Cc@^18zdph7Hdq~%i zF&6G=R*_SL!^zBZhqW^VgAm!)Eoc4dPUxoTvcxgPR>HfA@UY`8etxCMC}lXETN!8U z6wLT%sz_C6_b@%uw1RYf|1j+|oPOH!fc@WPLu_8Pj=Ci?Vij3OjJ{{5p#V`~%cV~_ z8?kRVQY0Jf#`uF%@K?mUVir-~#Yq22OTXwM8x=7z^Ulczlv8E1i^s(E(u0&eO$QUhW}aA~^Ox#}jqd1kdk24& zS1ZIcy-usqNdj}CdV&X*yl8PqK)wkj6Q~IdmP{`jvRdaCS#vN(YPfn!Eb&y?C0$Y;qL|`qJ3jy+XlKnITwB|FCNNE833~v0}pd( z?a*9{2KmM^^V>&ifr|4He9KvL_b$fQMZDeFRz-`KUs_Ux+(`19#6FjH{YZP*Tb|>Q zoMpU@#-Ea^S-ZL_`DceE6#Bygsd<8#o42`LJzBpAd$|i_L@A{JRwtvm_Nn3)9NTTA|U}ek-eTWzb~Lf1e)|ffJJlM>wFbE9&Ou z4zY2ZE=}Ljav7eD%BRt=s{@#4zMHt8ygqc!w&P;8aR*ADP+zl8pP2!42K{VDDfY0OqlxgK|*;#Ea>!zDNeBerQ_?!eF zhTKc-7Tf>y!25#Ky#Mw@+)4gNVGEJ}&lVgOtiN&c{5efmjPvODWNyN7;KBgRQ&sNA zUn)Fq4Qu|^$fdzVcQ0SKnWJ0wZozFOr)ms5*AUcewW(3nH6RB>g%Zko;iWu7wG%G` zV4nV)>yle=f8u}ogy=V_d(HFDV`=F|+H5}}_dP(qtM}S|g&#H8Mz&~v%&VUTrbrlC z~_Z?JNjw;>G?9kZx^Fwn_N7}46sNX!uEBG zT3%@L;_N%CnRgAcdHa>Bo~WyHFO{oK1VtvImST6awbby}%{$aZFcT`Co2_T^ze*rb#6IQveGfR!BL5NRh7A-6c#=6AVx{kBhC;nHl z`N8r!*IOIyby+i=FbB#5ddXq`LY{W}HmV}DW9fJ>Sb|jFWUkg^T6j;^$`}7lFWjoo zwE6aVJ!;E+a-%#l)4opXuZn1e|E~quIjDCb73(8RRCsVdEfg$cyG_($> zC42H+Wv3a;LN4#Jp_;%R^DSZnys3|RVyFnE!12@nAYDGED4@#QzxzXGuTwT&lYm3v>ao-98Z+TMNCC$O`2G@2kp0y=*j(bj2;kNxLrnU;QvTY@~B!_4mVX7|Luo1OAF z0Fe9V|46`o_Clp^v@@K}k8=L}~;23@Y*C@}Yogh7FiSSr9=nQkL)9)}ri4Jg_ zDzS=EjbuESv$Tb}CoB)Db`)jN&~;thmmr7+aU3;;2L=y5!=8PSZd<*{a;=s3p~N8x z&LHNXA<;X*-)#Hq<=%Y@iZ@xKe>x~Bo{g=3x~LcayX=;#$Y$TJ!oaP&ORjZxnL@rR z?NbhF+I=DvA|zdSX93;U>pvdh8F{ho`R#-CL7*V?ec~_uDt(XLF?RK_<(WF7~=TQOrhElWdsMv?@sY{ekgINLCFxY(To%U}XRErgAH+alD{Y@;T zbREDMxoXArC)vh47ZFT&gAFJoQ>h+@%PXfPj-b5S#k|w9!foH^GclfwK)Fe$z`@E> z)PpX3ts4J%Wk|p%zai6sznd5C5WE$=kO}n-1*z;FGjP(Ybu^3dExLv5{%*D1R4g{k z52ad{ZwAz_I+MhtO}admO<5OfL=$?a&+OaNrDe)^lrRSIX3eSytA1c>d>n{a&evW! z_~o)tM}>Y<;>Y?<-GDTi-SK7fL94dDMzLgr+<<*CmRuq{tGJA7q9#88UEk>Q*IAU0 zorB%J(DkRSJJFFcQL}b#+rS?yrjB`M0eGrH_%Hl+f5)twZm=mn*^_?C%^_95FHh}a zen)a^zCc^`g?AB;PuH`mExl5nk>O#54dB(eB~oprk<%zHj5Pw1RygCoY>66qwc0{w zj(+7cjO(yAW&7a3fmHe<^Gg{THXnfj$aEUwAW6qbJC~KX5!w^h->~Wrb zivqgfgvUP0R)oIokg$u?KXDu1i*_e*aTC!CIddNB9Hq|ioXXExu3))N@e8QQGj{hH z2`&TRL)2FP?q$JRS?x=w#B0%>!RemToP_`KIR*(Pyob z%XZ-Y!_F~h%}QgV-a2m-mUpIVQFc=@?b@Lj*X~ii6Y(BRdl>p4;8}uEF$Vtky@>qm zvZoy=@*_u#=jSJ_KYggz8uKCCWh8AAY)YxIEHz>4Jv_3n5q+o*SXF?Z`6=yTiGh-? zcB8huX*!KF%O?m}T$>ydEei3@KlDx8dGI$CsX)#6TZJ|O?WHCrzqqMf@vS(~L6?T< zhdull;dzc_;F=z6EQN3No?x9tqkgueo6zstiw?n&!d%;rqql^rYTCVOU z;%mM&&U2sh&mj$G_}f2LPiDdAsZZSFx!J0v7cwj=66@?fr3e3GGF_yQeLpr$Z0N|e z(q43UK*%))e6k^^J%-Uog#;dQp3Hbu1WN9E3u0dgjfq^nY5wIIAy#@(<3Ob~?<8HS z{8CJaF-sRL8@d@Q9QnT|870?0jN4}@U7a5Uoiov<42c#VNhAieZUY$VQ!8s<2VD;Q zPe^R>O$3oX>?lXB(`a3;O8%$XfP3%Qu#deC?t9*8(j&rJ4O{#`3bb*?_3nK~lx95r zBp*Ph!gL`d*g48KPSp`X1X^Fod1v`X$#;2zEAjT&Y*{kfd;f;AJcYP3vgMP@nGLC}VOx?P7L(LTD7U2W+SJM<4k%kJ z-92MqZ`~C6H{p*`)cWI_hCYcF&R+c05au#In&9d?`bz6XjTB68JWGAkWVbl7z6%F~ zt6KjQ6FH-5TgKQHW4ygzRf=k5!h$dTa-6g&r~uqh&Ey@iksZzc;7QCJdk_Z`-&%q9 zp`d40?2wUDqquiHzjxjGK|C??65Vr2R&t2oTyP7v{ON0$&H3! zC65!m*2fPnJn|*gyy^dB-lgNG!lKqiT359_W|pPZHip&|riX|)%z@;<&X+wzrFAU8 zN{yxRhjDoSfly>?M*4S)ZX8Lzke0I6aHe zkuEV2rE8N1i4$)SPr)@m&}yp!>6C*{)@{67B!upCxim~vO(nSZFQ2o!7Ia-EOOB}Z z#Y2>J!fi3Dw8jI;oq*`>ll6GHv?X!LeycLGEVYXx?jk$BGKReRk*^QbQ@lj9o=dN@ zaVl|=fZ1-DY+-$hG&vaEi03Dp5`5W4vIc2@Du<|BHUqepE4hTxjW`x`f5Nsg5FCGy z`TL|7o5~A#LUUgrtMJu#$9YYvahRyS1AJeWJ6B#XcoA>nR2BNXhZQ;V07_o}-w*kc1;gSenTBqf#_LYjsvf8r3qeX-Px%;wYQ?L>wnI^13BPz&! zk}vgrvOcB)Sm2!Onx-SB*$fI~QgqJ$7_9SAX7L$W?uaGzUccg2!L1BeaKK-bT~X)W z<5G@)LEtmafo)|tO$!}h&0|~QVULCL=OkC7t%k*S*W_Eb(<$QiFXL-7(fUZ)cd44T zIe}@rLql>Qd<3^q`wG37&WI;qw%)t-lsb!!r%o{S{=eOc|R z{Cib$&M(UWtCe0&G&?PHQ?z*v(;pb(!8>p10E6Qd;v!=Z(MUINR!6mtiKShnZ9f<= zvUkzg=7|Z&PD>SB0dStXlS)NO(T1>k$IgS1hD{PiEwk{yB3tVZ>*uO$!h*YilJpzW zD=f!=xbZ@k6gt~yny;Hb(aBLin2}@GR9W?Mxx^W)3D)&a5S(rBd0^_&vmpRI9bcSL zal!0|1OF&Z+ZeAx!JsrCy8-sq29ET#aIQd|;E?UWfz=3rF>3awMmJ47!zB>W_Id~| z)!UJFg=}{u;*7Fv>J5>8Y)H#209a~6w4h8|1{|x2FA)#FcW;8#VD~MLk<9Dxdw$dj zkgyfakeDS@3DQALr9huNytgY>Vjdx$d+_ivpiIB`=K!;_Z`_2+KY7yIlUr1LE=!?W zGdYlHQEg<+ZK4>AJ2G>qP5T_*u@}G3lhm2 zHWc4Nk3CQJx^oAuot6xLSyf~hNB(^>g~icxwS2mYWG^0mj~@JbOLdh6s8ehnM5h6A zHDW;;zcL)>H|bCQM1Mt7Pm%vjrO+7FTX1Xkr*Uq2KQPpDtfLQM?w0XMFn)U9uy~H< zPBDLzmTF=uY8!(wkL|6qn}1J0ZZK`>>sip7I5M9Tw(yWrsL)HLP5t2 zY5hI`fvL*Hub~bxE#RNPVlo#SfS)4fTpP%g=QsL6)qK1wTFgN8+NM&hOeO!77Ka{C zE5%&vh|)Ol^QnQ2&=Cu~ZIzzQ>9ZWSxIvZ$bOLFi!7ov^;uZ*syBV;6CMKFet*yB- zw*G_%YnUmN@DBG0`mEG3vp~|dj$|J4bt^;rQ4j=g^nlRQ5 z-CthX(xeGC>_}32=*?jZYIjC0!?U6PC_~jRg{}()Mj9uXb*G~u7F-OrtBs(Q(w%Ys z-#%b2E3+2jX5p;Jd9l(}Y4Yr2Ki9FGjv4}jYs}TF_2DG`n|geMMwPFMnMaQ1AJ=h? zN!jVk9Q!o&OM=AN+c;mf!I7Th>9oD$dWT9QhoVZ$r1Iq=s^s7@*^i~zJVI!n>cO`1 zz&%oW+>@E@w?;FBS$@j^X=1D6+*xV*0g@7&_HfL}s zjk@ynSBnkxjx&7Xl)ct@T`~`0i}T8y$)seSqRiCPa$VTsY6do22bJ4W{bt`mavbxf zt;Z>ns~G5)av?aC`*!mi-!!A4#A-qS@;SxRHP5YLfNSf(fO$*#?bu_TTK*fYj9Vh? zy^5@7%PhNZNaH;jxNQ5t9EVhPrsH)Jp*p_M!m*^%05!zGkSNOyurJunotR;gjqQ;O z@>%h#>EZ@b#tN*vj8a+!mC*fDmM*v+#U<15miyDYbu`+ERhpnP0ZtlCx3;vfgvp`f z%BHbu)1NeSfgy%fn)n@3l5!*Hv|W}E_!htUyoj_fdJWo2xT*0~(i_(x7Mmo7YGG`Z^xv;Jf;_nbGIklmP=Gm8gS z{JZg2MMp6~Ia`k{1{0$0v-b8t4G%DCcb8&M09}@bFM2ax_*euRrl_{W8+k;Fnjvm8 zUwqQwHD@UX^-CQ1AeJ7r(I?vU*be)a!piHkxKCEa!}s6iRPZ)*TdH?)bb9Cdx&Fpv zsmX~8du!%!Jejpml!%k;5hb6j$!Q(fER_GNmKN%uz8kZM5jQnmKawHbDirfDG-9nA zcN>;Io~AGaa`1E3_ivsSKnYX^#sd9wPT2dGelNs+P(sTGz6Tpeh0?-v1g?D*Gl%+@22#3w_@sGST;!fZfQj~#eQ!+9oD81e5ow3Ev!SFcQFc#Xj*4 z@6?XgP{KsYXqt_mm3n~#+UQRHrr6@-IN^2TOxK<5?uNulEo=?Vr@vwRiY|3Wepe@^ z_N~$VjF<9UhP$FBGiB1g*@ZvsBnIodw(^W1nfd|6Q0qiNNmlM}!Die6x`1ocwJ$Ga_w&xrTum4#Skk>>8g5lT~P8f10y+Or-!8_XK#ofW8y`Bys4U{;@*dKM7ksinD=;dEWJt9 zi_nVUl{r_{>uw+OxIeTOQ11kD!`715U9WlwE&-WBXRSrPkOP^mZK1iP*Qo9%V7bbp zQt&nB;qmmgBZKy#Tl|ld8LxbSbGrr;j$Y1vK|{M#2=W(K9nYV@sEJJ1G}u+8m_Wjp zt$MZ$?`@;JW$b`-@kUcqZ*Vw$q6wMczb?p{_aIP+`_G+X+>~9E>&>@Y5=K35CZ{Uo zg(sYog`>KQF6$M2gT5Cu_-hL_&vbaF%nl|@i!Hq2c~LuQ5zyRy{Zqq8hV)_cvZ(Qe zF)R^lElPX_rMXWKHiWd_FtFuT89v4DoLC0W>g)V&oj+Lzx@}VxK-{pFskKryO+oOG< z`z2$JXG$%(73PMPPOT6t$mh=Sq92cgD*7g09KtPKKQ$9J^h#Cr&4S;?j-BO81xPKR zbU+L4vE80|wvlJC`sN|#RSl;}$ukOlfT~RslmwL_-|L(}%E`xjAv3%_3r%!40{>E; zbS#HRB5a$iFQ-@xm+jilfpTS?lRI_d>H%G(vF%`|rXThaiaSCgUC(GOf7-RhoISmL z(tVNkH-4vK(glF?fA#(2X`DI3fn<2(oMQ&;iHtTuh&RjW9@Uh)L$f@;3GA-P7BwtB zX&u$9>bk9#m4WvWJi}TmuCZ1w{H3}Rka2aslv0|tECY!XR9v>#Dl)L^EU8qtXY?M7zRYkrzl` zygT__g<#zHwtLluMUHc&hM7Zo$hE+Dk5(k>T2MA%xkoR}$5m?*p13j2U}6F7 zO=I4AVVUj6&VPd~2d3rb+DM^VyXAAh8$*k1%r?JU;vJqey^W2zOgixYt`210#m(ZE zNN2YTQ}=$ufAR98mLBew>nn zUk(K0=;S83sJSdO;yB_j*1qDLGDt>_z!2`oO<}XEUdzy!sCenr4t=L44^z8DlSAyB zV@HPjKzKk{J1ZnkZ%?SrHwz=Y)~)CWSP2R65XQ}vr?Xe9%5_^pa`*l)mjj8KJ%Jg; zk`yB1rrs!OOW_^rW*jp=LX|j!ChW4407H`6xmuuy!eRraM^uS<8x59>wo0qL{A^?K zm>Z7tJNKY1{@!zG)6U`-m`~EC%7LfeVdWLvioGD(KBXbe!s;s)=MZzF%|0y!57o;b zGCk94vg}Lx-r5Hr80yW1jqq>4IV-QK1Oi80@vW0h9Q9qW+)(F_Y*#b)S&&j{7@UIq z=ZVa`5f+0rX5BSnt4>y46Zy%KW!;O(bib_1ZuSQGciDhDLD;?_$LvSNife_zUCxtT ztm#1#89`%$=@&5r%laYJLXA|`2Ik;T0wo;4+x@y1aaNMnfDjsAdp#Ls z)+{8&>el$WUE-!pXzz$lAr%!Q78<@kjgVfu(m9OWEj!8|773ZPR32jRivE<30e1F; z^xsA$!)wG^Al zxiH_P_9pF!B&0=%%uQ=hgiA5&$13cu7RE(cWR{p}2;55i*w;|Kh%!nw2l5THmSNv4O9`*9YcX$lWv-9eGhvH34uz+u8= zaUl!#73gxPYJ1T8V1%&#e!wVIr_WGfHzeJB-PMqqj+1d4xf*~DQgqEz^;EI^<=oM$ z&iO*R3@aqp`O;pLz`%iF4$_$v0ug$ct?|{+T8;MfjKmn$}twPM^ zPIv*w3}Nr4<%8ELOEXJ8*JW~54H{5eyvLay`N?v4yGfHk7;NY#cWY+iWFA{%*GW6i zp(*z;ER1?BbpE9n?q<0bS|!_ejX^C-<@Xt5d6}fwe5<>6suGT6aPd8Fkmj`b2} zJqNRs%w==h11eRiBy&X+LE9)h-IwH95#2oW*Q$!LS4MY)h}=BIGw*2|GU|$aJMVod zZE&9$fgXAcdEhG5O@+(ml zqk#tsT*z#lwmfxeX$e04qPoVE=+zO;AY_}JlmfNrL?+Bb{NoVfz3-xuywONxu zZER#M?V$L`yGq|t$V^-x-n)hzvDbsQGO)`yMp|4}^=M0cFdURD|BV@G`A3WEz!}zm z+_JQBT99(sk;Va>bHy)%)a42Ck`!UfCpWeq%Z0=NO2rzWYrUXdk-6PmF=>(7nRH@v zUUkWDzgX=W&|e|~0Ks7D9`9h8tB$wQx0wOtTkmrAsMp5K4t&}7tk~|;GL8VSF@&gc z*ct^-e;qrk4WNNEQFD!yR?mfq4jFs=zrrKS<4qu%+5(D@m-!|frMRPvR>eL3OW6hX zJ?VnE4_XyC{bp~@B=7lU4R(-T26x>8{j5-m1&%`rdx+G{?$=Tk&a@_v^-ahUP3~&$*&5mR{85*ww{X z`ZSQP`o6xh8MVu-iyzN?5URq=%Y5fpbv>|< z+mWE|0@{D->vnVBCp|2ebQZP30;=p$;n}J8S8?>zjb5UFBZa0zT$WJw=BXeK-FOSF z6W-D^jZPS9RM-%xVsmqM_be(-6#%TNiTIBN^rzvCo5lYK@JswK6$&i@MG2iV4jJ+0 zx~EAZ9RlxncMOVaMJ0>hK;p#AY-4jh(;SZj5;=Xlkpybq-dC<;0F|q4g~B7B`eix= zYJ)3hq62-J7VacB{(miiO0M}8brq;}7Kilw+C0}S#4J&`QBH`tn_IH0zO{$2J?Nx}WQ+yA3GZNo`n$9& zu7`N0)QAz#{o^aj-}#{RN72~Ovrn8@#!C{NKT{8qsv8$UVG`}vN$h51B?#FF;)&iJz^^rfqPh`J#wq*-K zn(LOD=6;R^6IeHkjamBJTgkgDk4E?n({CK&kELA2W}@o1dQ&(@^X8@22u&{y2M^eV z#yI>~-7G23-RNWo9*ZDsD?DX?kk0H{DLFFJ8RM?MpG)emn?5gIj;f6FJ1?_1EHs7T zuK-5E|)MVQHPeEE~*_NkcBC|zmKR+q^& zXFcw;Kqof(h-Fo#Rb#?&2GVdHKOSRY1%f{i* zBuCevRmG||$nfIWE1ea{vM1Tim^NXSFCm1ZmIEmH8^@F#K%AI)uIn+ESb?D1CCPxy z%f1fmk)PACfUm7%8+77e*mgLRljMt^0>t0XmO!_Re7AY+#Yp@z(AiNpH!wS_u61{yxVBw z<0=Dc;$2!b=kLAYRkx@if1s!$r{#VJd`Xvfe^nuL8>b~cW4Au-nvBYFbChM7?KZev zQNL5wsE88}Jv|Ew`K)q%akl*m*=fDavDq|J;~0lKHQsbzK3ZI^QNg`hqTUs`B$pN2 zqe*L_ArIK;Bw?akY||bW8flcfOmlcVXQUB&?Y6P>G0%C~>n56AxX@U$^KWXj=3fn1 z9X}OXOS8Rdl?!aKqI|g#T1vMVrozm8+>&@YnjEJ$S1ZP1{wL%c|Msh#nb4_FW6&aVPPB|3uBZr#eA3D zxzP)`U%OF;X(@iiYc^DT!}TsM9_}UEO1F8^lZ8*Y)O%g4q*&_H=c&RBi`3^@CG~lO zZPE`FWwzw6+*x)_{8M?(i&i78$n7?k?zPSi?=i)(%5$@};)ng&(!y7qV}X}FX|G3B ztICO1H@!ovY&+_iLBwCHtu1>4(sL-EZG@#SN-ttNo z{li19cZpN7+642XSB;(7XM<&>M{Ls=tDWL_&s%SKtVV^|-tc@@Ti~>^-@C!(`8mJw zR4nse$3>?qWiemTrlF;IW!@gw*b@^A?b)WH^mD88&BDd;^Y~WWZKw5Fo%dLupYx)K z{myi3JmeE`dfw}a+!b@pGnD6fDqk|r(a{_yXvuE-G-}XhhXY0_=yaQ2P5F64GB(8r z%`x6ZnmrarYxlARLVrwFpHC?BMm(RZt&cO+8Iw1fY_dLUY=~>jHquSj*io9|0nf$^ z$Ec5q7MkGOMj8?8eZr!=-(p*{#>;lO-W!(XC;irnSmrDz<`rJHN|hcXRqL}lKkuMA zFXcAf?sJ!E=BQDb|L}b7i;bG~xzVb8%$H5prcaY;vD9ID^Lmwrd(mDUh4;m!CX_yr z_t}-3^lFM3@josse9l;v#b4!nJnUTWa-4D#Rhj5w^Huqrf0cgd4ll(EniNgZs6M{p zVl$P+St{~qRhGuljxwv%;}LJf>9N~sHs$Sx@~eJmt6zD=0Uvj~ev6GWFE93jm4$2K zJ5J4FUacY?_6;XytDktN?CXBy)Y1aq_Np{dvy+_bs90>gJ+aU(oi5Ul{e|pX^oOWbIjI~d)?!e(!~6T`}1LsDcKrR^>{t^tB#kAvPZSu zy5petSQytk+nAi@QEisTB_>;*4_O?ysnz4RW*B8u?$(~ug!V#peAq|w<-F7Kyw1O^ zjX#@hgp*>CDe;nN%5%3(N>=AR)|jqEwMr#}@j;_S95BW3TpzPk$0PQ>y_1HL4Y|^R zxW-87{1~q(f0T=Du}7#iPJ_X?DZb;F{8VnR#Emi02&)Xp!f)bghh<0p#YXRoN$TSC z+=MU17&X3=EA4l<;i_~?G%G`$a$#HcD%tCRqAq<(#;6b$zWpwp9R^$#(+zV{OjPN; zdJQQ^>GeEd&{0vP5GR_dLcMN7*`Y`16S~Lhe5x$U7uCjRp?NZ`F$I7#|Mm46K5Kx+?PyOmy0}QZ(L`b zYQJ%~1~2F^=+8FkHcF*}*X-BtyXG2ZpF!be{f4v|G#DosraB)N!YI8;G2U>MK5v8y zql{IP7g%ghylSd?y$ZrvTGZ)PREj^w@tU$XH|X_@29s7Qncj>cVDsyd2R^tf= z4aNVNVOS2gRc~CPRjo8yZLV|BfNF_aH3}{mq8mBJ~;sxe8m zLd?;uG9R}?k4Y*O@Q#8VG z)%sC51i0Vkam8pmpbt}633`j6*Hq=dET2l6)e=E#xNC_s79ILx};mJ(WzXyG)28ieToLXq9_e2$G5y; z-=SVLB@8N8@b*zqF7z70{_HZ~fbE79lqoY#y$W+xph~q0OSS1cRM0;?Mya(eHyCnZ zOx0p_9?`rJy5I(RLmBtaZ?UHbr^p>K~;bG)A3* z`s_Z`z#dW%1`OArLQ$nMTlFhipB;M4jNxiLm%H`rQlaFuXc7uaiVkKfX*Vd;s8Qy~ zc)Rmmjt$vqP_G`DT`FWujYbv9RVbJfwZiK;BuzQA-iyjSXs;nNj8&sYw|?Dv4OyyJ z#1~_Vnp~G%D&D^5^X)494^XCApFFe{u8#SJo1a^BX*VdfDX2U28+@TDe&8*&ewNQ!nyb8QV?1f9dDb})N9DI;k&znn_1xg>++~|5 z_36|aW3?21tl5RR+hMkr)tc#)(o<^uzO>1TyrcXW;??4heaKyf@xH3XcXF*i>xob5 zaIzyzjHOD7KId@5^7o#~$Kq&1F*Vnk7gJ-Lw{m&j=~zR~_YZAxYpzk|EMwygAB=a% zJkg$9W>qfz|9Cpj@G7h9ec$UnEhoMA-a|}4GNVM8oqM^r4M zA_^!dil`vHmp}+fC`m{{dhg{V=e+Cx0j~eI{dKQhu50ggKhHz0h$N7%-g=Ou(ja4q zXCqhBznsT6f{*F?obevzdBYFe#-O z1Cuzpj9l5Ti=oC3`hkBv1&RdZ8DP- zhO~#B)W{3mON#!W%?yc$F49@9d#EBrM&K(S5J84#9ibf12MMQ1l9?i-^(HoG3tqZU zrVxgM4t^3lWxAC#yr>|Z5UMDpm>q270FN<=ce=;oOI#es|GNS=@dTuD2nwCKHhh(oeW?qRO} zMhBl+ZfXmoHF9GCHhDFa4kAV|A zhVIdNO4v<59wtc+LHaQzoRNiE!a4n1eDIR_l<+r4n9ViXNexXBg$oM?r5wUTBgNdw zByN!V2qHpv;!8Wz2_};Q4p2(G4gz1Xi!g%NM>kcp;Kqf4P1lN#p5+k3C6SeM(U^>ZI zvFLqNvRnR%l`aBkCXg;h;>`_OLOr)qOB*rTM~5yF1Cvf|C0>#-aTAU=E#zu3t%&51 zLKLx*tt+Y3mBuU_EV1^CPkQxrLY*m|yFUtd?Q)5Xv!30<>TEb6f_9A_uo55W;d`P;wc`RroiHO{vXv^$UXSb zBGDN1lSvRo@)7Z}lwCA2NEUVq8BGvDdMkBQ@+jSe-~)uIixU*eGh{K3&9u-YQ*hCQ zA02q{ot~ftUxYC2)Dlke1m~!bC-K3T%?!~l9}|FGmrzfMti+f3IsqHUWRO@wb(+{2 z#v<&5a5GLKq($PGsc&lu+oVYcN#sS8L0u*OM3Ra(KFpAC(&!=`FIi4F*Xaxz*h42K z;q0WFHhS^GEkBdaM7@d&)N-65oN_Z`WsDY4sC!w2ACWqVF3M=8nOZ3%icHE0#gF$m z$4Qz{dgL(CL}8E@eI*Q0RJV1IPIm9V)+Csf&5Aoc?=OK{$x?2`?#G{0!hQ4 z1fHg!3b~&|#^}S8a6tkHCYbNA(5&}Tqet0EAGI1nHRbX!xiXzVZ201fL!$IedbL&# z5GN!s9Mmb23WN|r>B=Z?vG)gc@ zlEXGU4CwQ;Yd)_NBIDGbM#3bLXzcjX4s61pl~?GYOJAfLx2z%zU-AgS#U^U?G>Rc9 zgkr(qeMXZ>H7+8#mP(3A#2^?C-qi6Oy>t?ZgC1VSmjF&NfJqqs*ombchdf6(BXt?d zZuvJYI5^l}=hmojo#j32)EGn-(XTtzMCh{cXSJ_x?7r-KSc(u=8KG*hj!spN0j zN-mSQi&!GC(NDO1MIi0wt?b}O<{(%|W&kgKWeAKLxQf}@$q5c{m^uQh3%2Jn-`q~XU_nn`3CiTE*@HcpdG zH*WomF6tzXIA$5s$hjmrF4rA&;FeuP63Q<)X<;rF!nlVrHnD^-?Bw7@68Q{aVFQ&k z69p*M*zo6dYB^6fCL`r$k{F}w>E|e^bmGf)T;%f@{v@!66sFOEH@Aojl8OSxP51InNW^tA08G zyS&8hc$k3TW*m(~B3h0?AK!9P4l|x4yf{idC#eQ@v6q9qjs%noYgIT8>WIY%Q7 znzfl08srLnpOf^linCfxiB{4&QysM0caaGrWCqgabr!#)ZrB9cI+ zlSv}WI7|({u!mB<wI&8Etmq7f;A%tfBO))N7 zNhgz&lu<$pwOo)_8B3&Yp@@2XNgC254pokvvjK(buUJZ_=<4BoTPy(2w!P!bp+{;e84@j~_$Y z%}ClLm=63f=%$B3Mw2b^e84_!)Vp;HhlrPjdW1|Ou`rK?jMr|xQ9qGw{FBq%BX=>C zGt_aKFaj?2_HeS93d(d8Ybj$1Q<%V?_z=kZ{K#Iti9Iy%C%yDg#2HF-qZVOelVHL% zoA22zdx=9RGwRuelDkhc70zT=TEtrStuo} z;3$<0;jLG(Nzb#AT3p0q(61x$W(SchV6wJyC9C*?N<4a)05bSXUt)v4%-=Nd1bN0ls`$vU(e|p8W}|cy_&`MwCXqd5{KADz4)say9m+`*v%e# z*{6rNTg&lRJ4-mo{d5t6lWZc`12k%aE@cB@q+m#;+{kQh=O}#y^C5>#^g-Rvc=AZp z8<{4762iOMt&h3Rv^5Sz`PIDyM}m)r3&*YGO)WC2OUc-HU( zT{Lr?Ld$hri?>eV3-UeNbR{{`#bK0p2t##+{(?#;A=sJE6+{?|WHLkgu5P88wd9aX z6DDP5hQ7oBZlMBy&XLCmrqN7|c@sCXR$c68$Qa85M46|#z%jgVB62^!Qzv1(##s4N zW|OL$wVXzIPBIDMFM@#6x}O8Q${woqwEj#e^W+wyHBZ-5$}DS79Y30Qho2~C1{1ki-ryLG<`EikSQe5% zg#I5}InMLcQO9tqDbaI`AzE(XCNi1K04ArY#^5ZM6Tuw*;=KOA>zp7TZ$gRFKiDUI z@)Xy|^?b%W8mVJI#xNWkkLXV7HG?~-;ST1LsY!gnA9BA`GfNB}#ov6KyEvv_={KB{ zk#Y-(o;|vR2m&}mkY@5e=VgFM3~nHZWVP`+hm34y;bXp`A5o=66kwI#=%GMYl0_$J z2hDc`Tv`WiAQW-S6l`%FG6hXTK3DkMp^{ zr1?0^`}tOznTR(ne8jzy%$vN3OPA4up|N_0ZssdqqRq&X0=Y#~wU%i4S+1a$27(A@ z4-llcu$DoFVWmSn_|WCKPrsu>Lh)h9Jj_{avYr`;8BabY1;k@DujfIUG@IY(;&E;*K8m_dvlryU=@WGr6hQ8rVdE{^F@Yk<5b4_HR=77u$q;2YM<^(-b^ zK4K)o?pdH?xdLLM50PBpK0o;bo>$MuTjZ z+Zb=;FoSsRXNf$+XwK>$^9Qz5Y~9E*xzqB8+(DjsGm0Va>0VChV=@ANqk^#vCzL>9 zB#Wu!m|bjUmBnNcH*h5mRF*K6adJ>*kYxFu#WG5lQcb@sVKK9fNhD%7ucilwv0Uad zMt;Ey(O2lFmD{*Nnkaadj@nqb>xsg!&IF(_dpee}!6j3vc*nP+)KyC|a6yoEy) z$;-@VitQ$OLvG|M6mKSwKoGeIrX^KA=1w_JGGi7UxUkDKvWYOJ@&=1^JdHG1-je6#N&SEeoR=md zurd*U{H2R%GK@YR=T?TOph&Ke%NWOh@WCSCWD{dK!yFmo`J4lK-q_7znZvaNU^DKK zhq+PQMB~TL_<)|^0B4Mo+{ZlbA&D4SNHjrsahCIx;J{n%V1Z0CN(jfUZoF{Phk=)b z$tbdkL~A4c%)yBoMe?9rC-bpllRKEj zXtS0TtdZjckzriUDwgPCE>LUCkqP9H1`Ki)K}1Rx(`6jj;KvZ>uwbEyX6+>rKk<`b zZeR}o;XJjHMGQ8wi6LE9lS6{}HK(XBULuz)<29L01_dOOtV5L3py{0Eg7Foz86_W* zO&tHiDUlLJE~$E!3aWS-JKj=FCdo1jAFR?TV;H3&T1$&0N;09^sQW448HSN1&5}x} z^sty&#M8|HE2*T5*N7&VDTLxJYe^uOh1hY(9P9+?0_teuZ`x^*U@l{lT*)*UE6++S zA^It8^vJIylfX{A@s$ZoV-(jDN&p3%rJO>nILIQJV75|E3pZoOkSDpCE46{+6c9}x zL$Z>wq{}Me2vA>&spoIf$&d&Hmkei=j3hy#2-6?5MeAjk#7QEb(?vIV1mHy$gP2Uj zp9uMqc!I@6Itg?WNw8X}p`Hrb=oK5oh-C!{#LF0BiPQ%a6C0c8VUURg;6*1M zM4w^+m+>UCWST~DM2onYC<&4!BoW6X25~cm5d689NJ4p>S{m`kz|BtFD1CI$!>fc6 zN;U!b%5kPMUT0E584iZ<(7+J=@(O7r%X-2I)9a|GLEoW{R(XtMVq`z5Ba|`Quwao`{P1QLU?mcN@#O?f+RSi#@YdI9pq)<`qF?T2mQ3LZPU;zHWsKzLYY0L) zgY;8NB@N6afhYtwLM}ymR!`GHtDInr3}-t2_>)03byCl5EY`j3=O|M!annO9t$a=! z{Y)T{aJJG#Hw|>r$(Lj^OhRy@+DH!!V|qKV@{oMI!8NCG&52az(u z31=sEL?2_T9w&`J@#j^lwN?_iT^5*E^M!s-AcG7V?{m8>lvbR0nbX*$TPp`9^8f%K z07*naR5?qygb~0X!gB=RgEwciSl8=e&d6aIMk>`%HaN1Bz z&eBLb4^T=ayGbO00o=GqAQV4Vu!F-oKoxaNCxH}so^T=wrk8F`&_)La1Gu$j3obXrjaNA$|m#4&AK>bp?kxWo#jdaU8*pOMB>`K~8ajR{fn$#HgZ)T8Y7zNOLY7 z^zi}}l(QNKc8Ns@;4exjG(Vw|D$9$212-PLbpuvhdYt1_7?%@7n3<-9)X01IVw1~o z5GrG7rO~(`8N{2n=-2u)W!S`9_fVv#ScDH=Ean0Y#$%*1+_Rp89F%$n2{b&wfcXNg z^ogB*x}}YJs$~S>WSc3JQOIunovoHLvXI+p)@tf>2FIy3&XPccxrsLVWEq1D=p&q_ zO>;O-iR@t<6OG#t+-4nxoa7BEY2#*^X=W0|beL6IrpK(SWvb-JdkFp#!!WYV<9x4w zvJ|(3N{Lo#iRWeV$>&FWiLf*=L^oIBN0>Z@H-6^NG*CehN2rzvEF?0L686e&hLIso z@;U2X%~lRrin*LoI*%qCMj^2{>0>ARc?>6EoiIpppHtphgcacYpByw9mQ|t%R#PT66pwb`9Fpb z^9_BU_54gHR?6w5PW)vSv$;Xfa$bfcgAkpe>o_2PGM?##p;(ziIVUORC$_K#UqXy? zT*YO2mQPqGNlYYBZM@4yw&0C0gK`Wlp%vj{Ezt`!5-cO+R+-62*@&ILn@#0TBIHa5|&g+j9X}|e4&$H36v5;(@Cx;mR$4NSj|B#MT$J2$?{Dc+k zq)(60U@VoZnWk^)dNvueMpRa8^K0$OM!9)k!z z(7jY}1{ZFcIjR@vqZ1F6RMMqSV@fm?G-!jYV1mSO8;7)#KPaW2WcqM(A8912hs|7& zSjH2gS?r{NyR?87Hsio4cM^cpJkI@Wl49Oqs{YJ!4iiBvxe~*0U>R*#%};rYd`ZWf za9P2_OwpO_<*cm2Mi&!sU^nt)E!UWvbq2pN6+6Pql+f>4qgS)RNM}B2Jb;A|P2@1u zvYN{Y=P^3zmvEU&qTa2qu%9=X%rIF_5}`Z@_|ZfQotncA&a;mOdWpwP7mJxlo=n0A zKOVu2$%h=I%)E^EI4nOgpIQ0~$0#EnADr?wessx7GKtcEaUQpP%49Nh83(CUtA0t5 zERkH|s3RV?{F^j_$-xV|4zh(Blt@x#88$?prIb#NYb{Njr4*crr)axiIOY7<7aY@5p z<`IdV^Yk)A4&GSw22Rk))r4Tf2f>gGyfKKx3xg|(z{xu586XJ z#KBjLCWs#?r;B+6VWShU;K0D7g9%bjizP;m7?X;zb=@nEXXOeWc)nl~|luxP}ybSiu>32*Lu)Bp5phgkWQkJ_h-n zItCd>Aa6K~tW7RFR(l3vaL;w~*IY>J$-ANPu@(A(x5rH38qOoIeD^cQ234@p%rCxja z7b)V8ffa*pJRpyfgtxxKIl3=lrd_!3kcB@siNYV7*3gCfq93!o%m_jlMDdVM2OdTf zjFqW`RMN{z@(7YF0&wULl+lA1HViy~ zUV`|O@yE^}1DF)ikDCB|un~(Li^SqUaA3pGi!$JDJXjW8lv#R za%l%%#ELz5m_#f-)H8@MSHiHfPU|k!L@+RbL)7EqV;M^T&A2eA(*XwY6(@G~YYT4f zl6btx#s}dIEu)uktO!?2DnWdvCA3}g4890$kCI4yD4-iRE_DINa3Q3N9|qOhkDFM) z(9fx(4?mn(WfVa;bT#Mcx#R=iiC~aLAYSsYWDv|At)o-_rr{DE?Vtw_5R3hijDJWL zNece@hqmG77|rxEj8J^Zr;#2U7+A<98Xw7%0KBwWUAXDOg_}>PrjKB(SQtmZ#Ta>D z6U_|Lj~m4g2Ua2o!kcZJrvuBS`znS2zNUm$V)4aJ9uas`NiS}$BnBUn#S4QEw1Qqd z0NAi#P>mZdtw=gvSn{ z$#4n6j#W*do*_(fBp9oHt7qwyaT150R_Oppgm_^A9mGwtgyYm>T1OviX-BzBl5uiM zTNz{sHy(=VxdfCOtmXpU%)}Ri(Zmu+J#I`2Xl8&Q99YP{R4oG&r#P|lyH;O<)`c_l z<7NV(I7!C`D~0soW*ybk={wZZs^{6lYJHk&{aPO25pH1%ZaVbS=

    IHqrq##svG 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 z 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,lh0dJlFygafxgNwT;eCKrHfn|=pujy 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%0DaO<`67&^5 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Ô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

    {xQ1ZNNc@^dIlw0t;<9VzAWY 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 z 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 eB}CqgixQ)92A{n(amRA3^8;?5!w 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%0DbkB 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

    {uFz+! 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