From 8a165cabe766a5e19ef7c779cfa4694cbf14c666 Mon Sep 17 00:00:00 2001 From: David Porter Date: Wed, 20 Nov 2024 21:42:35 -0800 Subject: [PATCH 01/13] Picks change (with modifications) from temporal to fix a failvoer polling error --- common/persistence/versionHistory.go | 7 +- common/types/history.go | 25 +++++--- config/development_xdc_cluster0.yaml | 2 +- config/development_xdc_cluster1.yaml | 2 +- config/development_xdc_cluster2.yaml | 2 +- service/frontend/api/handler.go | 46 +++++++++---- .../engine/engineimpl/poll_mutable_state.go | 64 +++++++++++++++---- service/history/events/notifier.go | 7 +- service/history/execution/context.go | 13 +--- 9 files changed, 114 insertions(+), 54 deletions(-) diff --git a/common/persistence/versionHistory.go b/common/persistence/versionHistory.go index 0b31c23c2b5..2210b34d2cc 100644 --- a/common/persistence/versionHistory.go +++ b/common/persistence/versionHistory.go @@ -65,7 +65,9 @@ func (item *VersionHistoryItem) Duplicate() *VersionHistoryItem { // ToInternalType return internal format of version history item func (item *VersionHistoryItem) ToInternalType() *types.VersionHistoryItem { - + if item == nil { + return nil + } return &types.VersionHistoryItem{ EventID: item.EventID, Version: item.Version, @@ -229,7 +231,6 @@ func (v *VersionHistory) AddOrUpdateItem( func (v *VersionHistory) ContainsItem( item *VersionHistoryItem, ) bool { - prevEventID := common.FirstEventID - 1 for _, currentItem := range v.Items { if item.Version == currentItem.Version { @@ -301,11 +302,9 @@ func (v *VersionHistory) GetFirstItem() (*VersionHistoryItem, error) { // GetLastItem return the last version history item func (v *VersionHistory) GetLastItem() (*VersionHistoryItem, error) { - if len(v.Items) == 0 { return nil, &types.BadRequestError{Message: "version history is empty"} } - return v.Items[len(v.Items)-1].Duplicate(), nil } diff --git a/common/types/history.go b/common/types/history.go index bc376fa4e68..4cfa8c8fdd0 100644 --- a/common/types/history.go +++ b/common/types/history.go @@ -100,10 +100,11 @@ func (v *FailoverMarkerToken) GetFailoverMarker() (o *FailoverMarkerAttributes) // GetMutableStateRequest is an internal type (TBD...) type GetMutableStateRequest struct { - DomainUUID string `json:"domainUUID,omitempty"` - Execution *WorkflowExecution `json:"execution,omitempty"` - ExpectedNextEventID int64 `json:"expectedNextEventId,omitempty"` - CurrentBranchToken []byte `json:"currentBranchToken,omitempty"` + DomainUUID string `json:"domainUUID,omitempty"` + Execution *WorkflowExecution `json:"execution,omitempty"` + ExpectedNextEventID int64 `json:"expectedNextEventId,omitempty"` + CurrentBranchToken []byte `json:"currentBranchToken,omitempty"` + VersionHistoryItem *VersionHistoryItem `json:"versionHistoryItem,omitempty"` } // GetDomainUUID is an internal getter (TBD...) @@ -272,10 +273,18 @@ func (v *ParentExecutionInfo) GetExecution() (o *WorkflowExecution) { // PollMutableStateRequest is an internal type (TBD...) type PollMutableStateRequest struct { - DomainUUID string `json:"domainUUID,omitempty"` - Execution *WorkflowExecution `json:"execution,omitempty"` - ExpectedNextEventID int64 `json:"expectedNextEventId,omitempty"` - CurrentBranchToken []byte `json:"currentBranchToken,omitempty"` + DomainUUID string `json:"domainUUID,omitempty"` + Execution *WorkflowExecution `json:"execution,omitempty"` + ExpectedNextEventID int64 `json:"expectedNextEventId,omitempty"` + CurrentBranchToken []byte `json:"currentBranchToken,omitempty"` + VersionHistoryItem *VersionHistoryItem `json:"versionHistoryItem,omitempty"` +} + +func (p *PollMutableStateRequest) GetVersionHistoryItem() *VersionHistoryItem { + if p.VersionHistoryItem == nil { + return nil + } + return p.VersionHistoryItem } // GetDomainUUID is an internal getter (TBD...) diff --git a/config/development_xdc_cluster0.yaml b/config/development_xdc_cluster0.yaml index c38f2cd51fe..923f51efd22 100644 --- a/config/development_xdc_cluster0.yaml +++ b/config/development_xdc_cluster0.yaml @@ -69,7 +69,7 @@ services: port: 7941 - shard-manager: + shard-distributor: rpc: port: 7951 bindOnLocalHost: true diff --git a/config/development_xdc_cluster1.yaml b/config/development_xdc_cluster1.yaml index 9812eba58a6..c8b194998ef 100644 --- a/config/development_xdc_cluster1.yaml +++ b/config/development_xdc_cluster1.yaml @@ -68,7 +68,7 @@ services: pprof: port: 8941 - shard-manager: + shard-distributor: rpc: port: 7952 bindOnLocalHost: true diff --git a/config/development_xdc_cluster2.yaml b/config/development_xdc_cluster2.yaml index 54efd225e08..0ee8de10867 100644 --- a/config/development_xdc_cluster2.yaml +++ b/config/development_xdc_cluster2.yaml @@ -68,7 +68,7 @@ services: pprof: port: 9941 - shard-manager: + shard-distributor: rpc: port: 7953 bindOnLocalHost: true diff --git a/service/frontend/api/handler.go b/service/frontend/api/handler.go index a47e1a2414a..23bd906b097 100644 --- a/service/frontend/api/handler.go +++ b/service/frontend/api/handler.go @@ -87,13 +87,14 @@ type ( } getHistoryContinuationToken struct { - RunID string - FirstEventID int64 - NextEventID int64 - IsWorkflowRunning bool - PersistenceToken []byte - TransientDecision *types.TransientDecisionInfo - BranchToken []byte + RunID string + FirstEventID int64 + NextEventID int64 + IsWorkflowRunning bool + PersistenceToken []byte + TransientDecision *types.TransientDecisionInfo + BranchToken []byte + VersionHistoryItem *types.VersionHistoryItem } domainGetter interface { @@ -1866,30 +1867,45 @@ func (wh *WorkflowHandler) GetWorkflowExecutionHistory( // 3. the last first event ID (the event ID of the last batch of events in the history) // 4. the next event ID // 5. whether the workflow is closed - // 6. error if any + // 6 The version history + // 7. error if any queryHistory := func( domainUUID string, execution *types.WorkflowExecution, expectedNextEventID int64, currentBranchToken []byte, - ) ([]byte, string, int64, int64, bool, error) { + versionHistoryItem *persistence.VersionHistoryItem, + ) ([]byte, string, int64, int64, bool, *types.VersionHistoryItem, error) { response, err := wh.GetHistoryClient().PollMutableState(ctx, &types.PollMutableStateRequest{ DomainUUID: domainUUID, Execution: execution, ExpectedNextEventID: expectedNextEventID, CurrentBranchToken: currentBranchToken, + VersionHistoryItem: versionHistoryItem.ToInternalType(), }) if err != nil { - return nil, "", 0, 0, false, err + return nil, "", 0, 0, false, nil, err } + isWorkflowRunning := response.GetWorkflowCloseState() == persistence.WorkflowCloseStatusNone + currentVersionHistory, err := persistence.NewVersionHistoriesFromInternalType(response.VersionHistories).GetCurrentVersionHistory() + if err != nil { + wh.GetLogger().Error("Failed to get current version history", tag.Dynamic("version-histories", response.VersionHistories)) + return nil, "", 0, 0, false, nil, fmt.Errorf("failed to get the current version from the response from history: %w", err) + } + + lastVersionHistoryItem, err := currentVersionHistory.GetLastItem() + if err != nil { + return nil, "", 0, 0, false, nil, err + } return response.CurrentBranchToken, response.Execution.GetRunID(), response.GetLastFirstEventID(), response.GetNextEventID(), isWorkflowRunning, + lastVersionHistoryItem.ToInternalType(), nil } @@ -1931,8 +1947,10 @@ func (wh *WorkflowHandler) GetWorkflowExecutionHistory( if !isCloseEventOnly { queryNextEventID = token.NextEventID } - token.BranchToken, _, lastFirstEventID, nextEventID, isWorkflowRunning, err = - queryHistory(domainID, execution, queryNextEventID, token.BranchToken) + + vh := persistence.NewVersionHistoryItemFromInternalType(token.VersionHistoryItem) + token.BranchToken, _, lastFirstEventID, nextEventID, isWorkflowRunning, token.VersionHistoryItem, err = + queryHistory(domainID, execution, queryNextEventID, token.BranchToken, vh) if err != nil { return nil, err } @@ -1944,8 +1962,8 @@ func (wh *WorkflowHandler) GetWorkflowExecutionHistory( if !isCloseEventOnly { queryNextEventID = common.FirstEventID } - token.BranchToken, runID, lastFirstEventID, nextEventID, isWorkflowRunning, err = - queryHistory(domainID, execution, queryNextEventID, nil) + token.BranchToken, runID, lastFirstEventID, nextEventID, isWorkflowRunning, token.VersionHistoryItem, err = + queryHistory(domainID, execution, queryNextEventID, nil, nil) if err != nil { return nil, err } diff --git a/service/history/engine/engineimpl/poll_mutable_state.go b/service/history/engine/engineimpl/poll_mutable_state.go index 535da71ea96..7d12fe5082f 100644 --- a/service/history/engine/engineimpl/poll_mutable_state.go +++ b/service/history/engine/engineimpl/poll_mutable_state.go @@ -22,12 +22,13 @@ package engineimpl import ( - "bytes" "context" + "fmt" "time" "github.com/uber/cadence/common" "github.com/uber/cadence/common/definition" + "github.com/uber/cadence/common/log/tag" "github.com/uber/cadence/common/persistence" "github.com/uber/cadence/common/types" ) @@ -43,7 +44,9 @@ func (e *historyEngineImpl) PollMutableState(ctx context.Context, request *types DomainUUID: request.DomainUUID, Execution: request.Execution, ExpectedNextEventID: request.ExpectedNextEventID, - CurrentBranchToken: request.CurrentBranchToken}) + CurrentBranchToken: request.CurrentBranchToken, + VersionHistoryItem: request.GetVersionHistoryItem(), + }) if err != nil { return nil, e.updateEntityNotExistsErrorOnPassiveCluster(err, request.GetDomainUUID()) @@ -156,10 +159,29 @@ func (e *historyEngineImpl) getMutableStateOrPolling( if err != nil { return nil, err } - if request.CurrentBranchToken == nil { - request.CurrentBranchToken = response.CurrentBranchToken + + currentVersionHistory, err := persistence.NewVersionHistoriesFromInternalType( + response.GetVersionHistories(), + ).GetCurrentVersionHistory() + + if err != nil { + return nil, err + } + if request.VersionHistoryItem == nil { + lastVersionHistoryItem, err := currentVersionHistory.GetLastItem() + if err != nil { + return nil, err + } + request.VersionHistoryItem = lastVersionHistoryItem.ToInternalType() } - if !bytes.Equal(request.CurrentBranchToken, response.CurrentBranchToken) { + // Use the latest event id + event version as the branch identifier. This pair is unique across clusters. + // We return the full version histories. Callers need to fetch the last version history item from current branch + // and use the last version history item in following calls. + if !currentVersionHistory.ContainsItem(persistence.NewVersionHistoryItemFromInternalType(request.VersionHistoryItem)) { + e.logger.Warn("current version history and requested one are different - found on first check", + tag.Dynamic("current-version-history", currentVersionHistory), + tag.Dynamic("requested-version-history", request.VersionHistoryItem), + ) return nil, &types.CurrentBranchChangedError{ Message: "current branch token and request branch token doesn't match", CurrentBranchToken: response.CurrentBranchToken} @@ -186,12 +208,21 @@ func (e *historyEngineImpl) getMutableStateOrPolling( if err != nil { return nil, err } - // check again if the current branch token changed - if !bytes.Equal(request.CurrentBranchToken, response.CurrentBranchToken) { + currentVersionHistory, err := persistence.NewVersionHistoriesFromInternalType(response.VersionHistories).GetCurrentVersionHistory() + if err != nil { + return nil, fmt.Errorf("unable to get version history while looking up response for mutable state: %w", err) + } + if !currentVersionHistory.ContainsItem(persistence.NewVersionHistoryItemFromInternalType(request.VersionHistoryItem)) { + e.logger.Warn("current version history and requested one are different - found on checking response", + tag.Dynamic("current-version-history", currentVersionHistory), + tag.Dynamic("requested-version-history", request.VersionHistoryItem), + ) return nil, &types.CurrentBranchChangedError{ Message: "current branch token and request branch token doesn't match", - CurrentBranchToken: response.CurrentBranchToken} + CurrentBranchToken: response.CurrentBranchToken, + } } + if expectedNextEventID < response.GetNextEventID() || !response.GetIsWorkflowRunning() { return response, nil } @@ -230,11 +261,22 @@ func (e *historyEngineImpl) getMutableStateOrPolling( response.PreviousStartedEventID = common.Int64Ptr(event.PreviousStartedEventID) response.WorkflowState = common.Int32Ptr(int32(event.WorkflowState)) response.WorkflowCloseState = common.Int32Ptr(int32(event.WorkflowCloseState)) - if !bytes.Equal(request.CurrentBranchToken, event.CurrentBranchToken) { + + currentVersionHistoryOnPoll, err := event.VersionHistories.GetCurrentVersionHistory() + if err != nil { + return nil, fmt.Errorf("unexpected error getting current version history while polling for mutable state: %w", err) + } + if !currentVersionHistoryOnPoll.ContainsItem(persistence.NewVersionHistoryItemFromInternalType(request.VersionHistoryItem)) { + e.logger.Warn("current version history and requested one are different", + tag.Dynamic("current-version-history", currentVersionHistoryOnPoll), + tag.Dynamic("requested-version-history", request.VersionHistoryItem), + ) return nil, &types.CurrentBranchChangedError{ - Message: "Current branch token and request branch token doesn't match", - CurrentBranchToken: event.CurrentBranchToken} + Message: "current and requested version histories don't match - changed while polling", + CurrentBranchToken: response.CurrentBranchToken, + } } + if expectedNextEventID < response.GetNextEventID() || !response.GetIsWorkflowRunning() { return response, nil } diff --git a/service/history/events/notifier.go b/service/history/events/notifier.go index f6f873133f3..e770ddecdfa 100644 --- a/service/history/events/notifier.go +++ b/service/history/events/notifier.go @@ -31,6 +31,7 @@ import ( "github.com/uber/cadence/common/collection" "github.com/uber/cadence/common/definition" "github.com/uber/cadence/common/metrics" + "github.com/uber/cadence/common/persistence" "github.com/uber/cadence/common/types" ) @@ -56,9 +57,9 @@ type ( NextEventID int64 PreviousStartedEventID int64 Timestamp time.Time - CurrentBranchToken []byte WorkflowState int WorkflowCloseState int + VersionHistories *persistence.VersionHistories } notifierImpl struct { @@ -90,9 +91,9 @@ func NewNotification( lastFirstEventID int64, nextEventID int64, previousStartedEventID int64, - currentBranchToken []byte, workflowState int, workflowCloseState int, + versionHistories *persistence.VersionHistories, ) *Notification { return &Notification{ @@ -104,9 +105,9 @@ func NewNotification( LastFirstEventID: lastFirstEventID, NextEventID: nextEventID, PreviousStartedEventID: previousStartedEventID, - CurrentBranchToken: currentBranchToken, WorkflowState: workflowState, WorkflowCloseState: workflowCloseState, + VersionHistories: versionHistories, } } diff --git a/service/history/execution/context.go b/service/history/execution/context.go index 6de31d22999..2f41518c41e 100644 --- a/service/history/execution/context.go +++ b/service/history/execution/context.go @@ -597,11 +597,6 @@ func (c *contextImpl) ConflictResolveWorkflowExecution( return err } - currentBranchToken, err := resetMutableState.GetCurrentBranchToken() - if err != nil { - return err - } - workflowState, workflowCloseState := resetMutableState.GetWorkflowStateCloseStatus() // Current branch changed and notify the watchers c.shard.GetEngine().NotifyNewHistoryEvent(events.NewNotification( @@ -610,9 +605,9 @@ func (c *contextImpl) ConflictResolveWorkflowExecution( resetMutableState.GetLastFirstEventID(), resetMutableState.GetNextEventID(), resetMutableState.GetPreviousStartedEventID(), - currentBranchToken, workflowState, workflowCloseState, + resetMutableState.GetVersionHistories(), )) c.notifyTasksFromWorkflowSnapshotFn(resetWorkflow, persistedBlobs, false) @@ -846,10 +841,6 @@ func (c *contextImpl) UpdateWorkflowExecutionWithNew( } // for any change in the workflow, send a event - currentBranchToken, err := c.mutableState.GetCurrentBranchToken() - if err != nil { - return err - } workflowState, workflowCloseState := c.mutableState.GetWorkflowStateCloseStatus() c.shard.GetEngine().NotifyNewHistoryEvent(events.NewNotification( c.domainID, @@ -857,9 +848,9 @@ func (c *contextImpl) UpdateWorkflowExecutionWithNew( c.mutableState.GetLastFirstEventID(), c.mutableState.GetNextEventID(), c.mutableState.GetPreviousStartedEventID(), - currentBranchToken, workflowState, workflowCloseState, + c.mutableState.GetVersionHistories(), )) // notify current workflow tasks From 5cbb096587fd4eb8a2e405587924081ac8d90ac5 Mon Sep 17 00:00:00 2001 From: David Porter Date: Mon, 25 Nov 2024 12:54:41 -0800 Subject: [PATCH 02/13] Fix test --- service/frontend/api/handler.go | 1 + service/frontend/api/handler_test.go | 14 ++++ service/history/decision/handler_test.go | 6 +- .../engine/engineimpl/history_engine_test.go | 69 ++++++++++++++++++- service/history/events/notifier_test.go | 17 +++-- 5 files changed, 98 insertions(+), 9 deletions(-) diff --git a/service/frontend/api/handler.go b/service/frontend/api/handler.go index 23bd906b097..48fb232ba93 100644 --- a/service/frontend/api/handler.go +++ b/service/frontend/api/handler.go @@ -1876,6 +1876,7 @@ func (wh *WorkflowHandler) GetWorkflowExecutionHistory( currentBranchToken []byte, versionHistoryItem *persistence.VersionHistoryItem, ) ([]byte, string, int64, int64, bool, *types.VersionHistoryItem, error) { + response, err := wh.GetHistoryClient().PollMutableState(ctx, &types.PollMutableStateRequest{ DomainUUID: domainUUID, Execution: execution, diff --git a/service/frontend/api/handler_test.go b/service/frontend/api/handler_test.go index 144524688d6..7d0261cfe27 100644 --- a/service/frontend/api/handler_test.go +++ b/service/frontend/api/handler_test.go @@ -1819,6 +1819,20 @@ func (s *workflowHandlerSuite) TestRestartWorkflowExecution__Success() { }, LastFirstEventID: 0, NextEventID: 2, + VersionHistories: &types.VersionHistories{ + CurrentVersionHistoryIndex: 0, + Histories: []*types.VersionHistory{ + { + BranchToken: []byte("token"), + Items: []*types.VersionHistoryItem{ + { + EventID: 1, + Version: 1, + }, + }, + }, + }, + }, }, nil).AnyTimes() s.mockDomainCache.EXPECT().GetDomainID(gomock.Any()).Return(s.testDomainID, nil).AnyTimes() s.mockVersionChecker.EXPECT().SupportsRawHistoryQuery(gomock.Any(), gomock.Any()).Return(nil).Times(1) diff --git a/service/history/decision/handler_test.go b/service/history/decision/handler_test.go index 3e0e1faa551..8a40c530ee2 100644 --- a/service/history/decision/handler_test.go +++ b/service/history/decision/handler_test.go @@ -648,7 +648,7 @@ func TestHandleDecisionTaskCompleted(t *testing.T) { engine := engine.NewMockEngine(ctrl) decisionHandler.shard.(*shard.MockContext).EXPECT().GetEngine().Return(engine).Times(3) engine.EXPECT().NotifyNewHistoryEvent(events.NewNotification(constants.TestDomainID, &types.WorkflowExecution{WorkflowID: constants.TestWorkflowID, RunID: constants.TestRunID}, - 0, 5, 0, nil, 1, 0)) + 0, 5, 0, 1, 0, nil)) engine.EXPECT().NotifyNewTransferTasks(gomock.Any()) engine.EXPECT().NotifyNewTimerTasks(gomock.Any()) engine.EXPECT().NotifyNewReplicationTasks(gomock.Any()) @@ -777,7 +777,7 @@ func TestHandleDecisionTaskCompleted(t *testing.T) { engine := engine.NewMockEngine(ctrl) decisionHandler.shard.(*shard.MockContext).EXPECT().GetEngine().Return(engine).Times(3) engine.EXPECT().NotifyNewHistoryEvent(events.NewNotification(constants.TestDomainID, &types.WorkflowExecution{WorkflowID: constants.TestWorkflowID, RunID: constants.TestRunID}, - 0, 1, 0, nil, 1, 0)) + 0, 1, 0, 1, 0, nil)) engine.EXPECT().NotifyNewTransferTasks(gomock.Any()) engine.EXPECT().NotifyNewTimerTasks(gomock.Any()) engine.EXPECT().NotifyNewReplicationTasks(gomock.Any()) @@ -1153,7 +1153,7 @@ func TestHandleDecisionTaskCompleted(t *testing.T) { engine := engine.NewMockEngine(ctrl) decisionHandler.shard.(*shard.MockContext).EXPECT().GetEngine().Return(engine).Times(3) engine.EXPECT().NotifyNewHistoryEvent(events.NewNotification(constants.TestDomainID, &types.WorkflowExecution{WorkflowID: constants.TestWorkflowID, RunID: constants.TestRunID}, - 0, 3, 0, nil, 1, 0)) + 0, 3, 0, 1, 0, nil)) engine.EXPECT().NotifyNewTransferTasks(gomock.Any()) engine.EXPECT().NotifyNewTimerTasks(gomock.Any()) engine.EXPECT().NotifyNewReplicationTasks(gomock.Any()) diff --git a/service/history/engine/engineimpl/history_engine_test.go b/service/history/engine/engineimpl/history_engine_test.go index 74af6069057..38d19e6a5b9 100644 --- a/service/history/engine/engineimpl/history_engine_test.go +++ b/service/history/engine/engineimpl/history_engine_test.go @@ -202,6 +202,20 @@ func (s *engineSuite) TestGetMutableStateSync() { workflowExecution.GetRunID(), constants.TestLocalDomainEntry, ) + msBuilder.SetVersionHistories(&persistence.VersionHistories{ + CurrentVersionHistoryIndex: 0, + Histories: []*persistence.VersionHistory{ + { + BranchToken: []byte("token"), + Items: []*persistence.VersionHistoryItem{ + { + EventID: 2, + Version: 1, + }, + }, + }, + }, + }) test.AddWorkflowExecutionStartedEvent(msBuilder, workflowExecution, "wType", tasklist, []byte("input"), 100, 200, identity) di := test.AddDecisionTaskScheduledEvent(msBuilder) test.AddDecisionTaskStartedEvent(msBuilder, di.ScheduleID, tasklist, identity) @@ -266,6 +280,20 @@ func (s *engineSuite) TestGetMutableStateLongPoll() { workflowExecution.GetRunID(), constants.TestLocalDomainEntry, ) + msBuilder.SetVersionHistories(&persistence.VersionHistories{ + CurrentVersionHistoryIndex: 0, + Histories: []*persistence.VersionHistory{ + { + BranchToken: []byte("token"), + Items: []*persistence.VersionHistoryItem{ + { + EventID: 2, + Version: 1, + }, + }, + }, + }, + }) test.AddWorkflowExecutionStartedEvent(msBuilder, workflowExecution, "wType", tasklist, []byte("input"), 100, 200, identity) di := test.AddDecisionTaskScheduledEvent(msBuilder) test.AddDecisionTaskStartedEvent(msBuilder, di.ScheduleID, tasklist, identity) @@ -306,6 +334,10 @@ func (s *engineSuite) TestGetMutableStateLongPoll() { DomainUUID: constants.TestDomainID, Execution: &workflowExecution, ExpectedNextEventID: 3, + VersionHistoryItem: &types.VersionHistoryItem{ + EventID: 1, + Version: 1, + }, }) s.Nil(err) s.Equal(int64(4), response.NextEventID) @@ -317,6 +349,10 @@ func (s *engineSuite) TestGetMutableStateLongPoll() { DomainUUID: constants.TestDomainID, Execution: &workflowExecution, ExpectedNextEventID: 4, + VersionHistoryItem: &types.VersionHistoryItem{ + EventID: 1, + Version: 1, + }, }) s.True(time.Now().After(start.Add(time.Second * 1))) s.Nil(err) @@ -340,6 +376,20 @@ func (s *engineSuite) TestGetMutableStateLongPoll_CurrentBranchChanged() { workflowExecution.GetRunID(), constants.TestLocalDomainEntry, ) + msBuilder.SetVersionHistories(&persistence.VersionHistories{ + CurrentVersionHistoryIndex: 0, + Histories: []*persistence.VersionHistory{ + { + BranchToken: []byte("token"), + Items: []*persistence.VersionHistoryItem{ + { + EventID: 2, + Version: 1, + }, + }, + }, + }, + }) test.AddWorkflowExecutionStartedEvent(msBuilder, workflowExecution, "wType", tasklist, []byte("input"), 100, 200, identity) di := test.AddDecisionTaskScheduledEvent(msBuilder) test.AddDecisionTaskStartedEvent(msBuilder, di.ScheduleID, tasklist, identity) @@ -362,9 +412,9 @@ func (s *engineSuite) TestGetMutableStateLongPoll_CurrentBranchChanged() { int64(1), int64(4), int64(1), - []byte{1}, persistence.WorkflowStateCreated, - persistence.WorkflowCloseStatusNone)) + persistence.WorkflowCloseStatusNone, + nil)) } // return immediately, since the expected next event ID appears @@ -405,6 +455,21 @@ func (s *engineSuite) TestGetMutableStateLongPollTimeout() { workflowExecution.GetRunID(), constants.TestLocalDomainEntry, ) + + msBuilder.SetVersionHistories(&persistence.VersionHistories{ + CurrentVersionHistoryIndex: 0, + Histories: []*persistence.VersionHistory{ + { + BranchToken: []byte("token"), + Items: []*persistence.VersionHistoryItem{ + { + EventID: 2, + Version: 1, + }, + }, + }, + }, + }) test.AddWorkflowExecutionStartedEvent(msBuilder, workflowExecution, "wType", tasklist, []byte("input"), 100, 200, identity) di := test.AddDecisionTaskScheduledEvent(msBuilder) test.AddDecisionTaskStartedEvent(msBuilder, di.ScheduleID, tasklist, identity) diff --git a/service/history/events/notifier_test.go b/service/history/events/notifier_test.go index b4c4ff6bdc8..127b36d26c4 100644 --- a/service/history/events/notifier_test.go +++ b/service/history/events/notifier_test.go @@ -86,8 +86,17 @@ func (s *notifierSuite) TestSingleSubscriberWatchingEvents() { nextEventID := int64(18) workflowState := persistence.WorkflowStateCreated workflowCloseState := persistence.WorkflowCloseStatusNone - branchToken := make([]byte, 0) - historyEvent := NewNotification(domainID, execution, lastFirstEventID, nextEventID, previousStartedEventID, branchToken, workflowState, workflowCloseState) + versionHistory := persistence.VersionHistories{} + historyEvent := NewNotification( + domainID, + execution, + lastFirstEventID, + nextEventID, + previousStartedEventID, + workflowState, + workflowCloseState, + &versionHistory, + ) timerChan := time.NewTimer(time.Second * 2).C subscriberID, channel, err := s.historyEventNotifier.WatchHistoryEvent(definition.NewWorkflowIdentifier(domainID, execution.GetWorkflowID(), execution.GetRunID())) @@ -117,8 +126,8 @@ func (s *notifierSuite) TestMultipleSubscriberWatchingEvents() { nextEventID := int64(18) workflowState := persistence.WorkflowStateCreated workflowCloseState := persistence.WorkflowCloseStatusNone - branchToken := make([]byte, 0) - historyEvent := NewNotification(domainID, execution, lastFirstEventID, nextEventID, previousStartedEventID, branchToken, workflowState, workflowCloseState) + versionHistories := &persistence.VersionHistories{} + historyEvent := NewNotification(domainID, execution, lastFirstEventID, nextEventID, previousStartedEventID, workflowState, workflowCloseState, versionHistories) timerChan := time.NewTimer(time.Second * 5).C subscriberCount := 100 From df4e08690dcf8b391da8dfd768e75957e771fab5 Mon Sep 17 00:00:00 2001 From: David Porter Date: Mon, 25 Nov 2024 13:15:23 -0800 Subject: [PATCH 03/13] lint --- common/types/history.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/common/types/history.go b/common/types/history.go index 4cfa8c8fdd0..4f4b424ea42 100644 --- a/common/types/history.go +++ b/common/types/history.go @@ -288,9 +288,9 @@ func (p *PollMutableStateRequest) GetVersionHistoryItem() *VersionHistoryItem { } // GetDomainUUID is an internal getter (TBD...) -func (v *PollMutableStateRequest) GetDomainUUID() (o string) { - if v != nil { - return v.DomainUUID +func (p *PollMutableStateRequest) GetDomainUUID() (o string) { + if p != nil { + return p.DomainUUID } return } From 74b2575de956eec0abd2f51d8ee4226ad502744d Mon Sep 17 00:00:00 2001 From: David Porter Date: Mon, 25 Nov 2024 14:28:58 -0800 Subject: [PATCH 04/13] fix test --- service/history/execution/context_test.go | 31 +++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/service/history/execution/context_test.go b/service/history/execution/context_test.go index b987c532b3f..1a2881631aa 100644 --- a/service/history/execution/context_test.go +++ b/service/history/execution/context_test.go @@ -1691,6 +1691,7 @@ func TestUpdateWorkflowExecutionWithNew(t *testing.T) { newWorkflowTransactionPolicy: TransactionPolicyActive.Ptr(), workflowRequestMode: persistence.CreateWorkflowRequestModeReplicated, mockSetup: func(mockShard *shard.MockContext, mockDomainCache *cache.MockDomainCache, mockMutableState *MockMutableState, mockNewMutableState *MockMutableState, mockEngine *engine.MockEngine) { + mockMutableState.EXPECT().CloseTransactionAsMutation(gomock.Any(), TransactionPolicyActive).Return(&persistence.WorkflowMutation{ ExecutionInfo: &persistence.WorkflowExecutionInfo{ DomainID: "test-domain-id", @@ -1708,6 +1709,20 @@ func TestUpdateWorkflowExecutionWithNew(t *testing.T) { BranchToken: []byte{1, 2, 3}, }, }, nil) + mockMutableState.EXPECT().GetVersionHistories().Return(&persistence.VersionHistories{ + CurrentVersionHistoryIndex: 0, + Histories: []*persistence.VersionHistory{ + { + BranchToken: []byte("branchtoken"), + Items: []*persistence.VersionHistoryItem{ + { + EventID: 1, + Version: 1, + }, + }, + }, + }, + }) mockMutableState.EXPECT().GetNextEventID().Return(int64(11)) mockMutableState.EXPECT().SetHistorySize(int64(5)) mockNewMutableState.EXPECT().CloseTransactionAsSnapshot(gomock.Any(), TransactionPolicyActive).Return(&persistence.WorkflowSnapshot{ @@ -1728,7 +1743,6 @@ func TestUpdateWorkflowExecutionWithNew(t *testing.T) { }, nil) mockShard.EXPECT().GetDomainCache().Return(mockDomainCache) mockDomainCache.EXPECT().GetDomainName(gomock.Any()).Return("test-domain", nil) - mockMutableState.EXPECT().GetCurrentBranchToken().Return([]byte{5, 6}, nil) mockMutableState.EXPECT().GetWorkflowStateCloseStatus().Return(persistence.WorkflowStateCompleted, persistence.WorkflowCloseStatusCompleted) mockShard.EXPECT().GetEngine().Return(mockEngine) mockEngine.EXPECT().NotifyNewHistoryEvent(gomock.Any()) @@ -2521,7 +2535,20 @@ func TestConflictResolveWorkflowExecution(t *testing.T) { MutableStateSize: 123, }, }, nil) - mockResetMutableState.EXPECT().GetCurrentBranchToken().Return([]byte{1}, nil) + mockResetMutableState.EXPECT().GetVersionHistories().Return(&persistence.VersionHistories{ + CurrentVersionHistoryIndex: 0, + Histories: []*persistence.VersionHistory{ + { + BranchToken: []byte("123"), + Items: []*persistence.VersionHistoryItem{ + { + EventID: 1, + Version: 1, + }, + }, + }, + }, + }) mockResetMutableState.EXPECT().GetWorkflowStateCloseStatus().Return(persistence.WorkflowStateCompleted, persistence.WorkflowCloseStatusCompleted) mockShard.EXPECT().GetEngine().Return(mockEngine) mockEngine.EXPECT().NotifyNewHistoryEvent(gomock.Any()) From a1e18b28bb593de15fb99e6d8d97891d75d6122d Mon Sep 17 00:00:00 2001 From: David Porter Date: Mon, 25 Nov 2024 16:29:04 -0800 Subject: [PATCH 05/13] adding lock --- service/history/engine/engineimpl/poll_mutable_state.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/service/history/engine/engineimpl/poll_mutable_state.go b/service/history/engine/engineimpl/poll_mutable_state.go index 7d12fe5082f..498e34b7313 100644 --- a/service/history/engine/engineimpl/poll_mutable_state.go +++ b/service/history/engine/engineimpl/poll_mutable_state.go @@ -83,6 +83,12 @@ func (e *historyEngineImpl) getMutableState( } defer func() { release(retError) }() + err := wfContext.Lock(ctx) + if err != nil { + return nil, fmt.Errorf("couldn't lock workflow context: %w", err) + } + defer wfContext.Unlock() + mutableState, retError := wfContext.LoadWorkflowExecution(ctx) if retError != nil { return From ce0d00da156877dfa3ef56adfe858dd12026efa8 Mon Sep 17 00:00:00 2001 From: David Porter Date: Mon, 25 Nov 2024 17:54:06 -0800 Subject: [PATCH 06/13] Fix hopefully stupid error --- .../data_manager_interfaces_test.go | 27 +++++++++++++++++++ common/persistence/versionHistory.go | 1 - .../engine/engineimpl/poll_mutable_state.go | 6 ----- service/history/execution/context.go | 4 +-- 4 files changed, 29 insertions(+), 9 deletions(-) diff --git a/common/persistence/data_manager_interfaces_test.go b/common/persistence/data_manager_interfaces_test.go index 166fc090a58..980bc1b8c5e 100644 --- a/common/persistence/data_manager_interfaces_test.go +++ b/common/persistence/data_manager_interfaces_test.go @@ -547,3 +547,30 @@ func TestTaskListPartitionConfigToInternalType(t *testing.T) { }) } } + +func TestVersionHistoryCopy(t *testing.T) { + a := VersionHistories{ + CurrentVersionHistoryIndex: 1, + Histories: []*VersionHistory{ + { + BranchToken: []byte("token"), + Items: []*VersionHistoryItem{ + { + EventID: 1, + Version: 2, + }, + }, + }, + { + BranchToken: []byte("token"), + Items: []*VersionHistoryItem{ + { + EventID: 1, + Version: 2, + }, + }, + }, + }, + } + assert.Equal(t, &a, a.Duplicate()) +} diff --git a/common/persistence/versionHistory.go b/common/persistence/versionHistory.go index 2210b34d2cc..8460cb0501c 100644 --- a/common/persistence/versionHistory.go +++ b/common/persistence/versionHistory.go @@ -589,6 +589,5 @@ func (h *VersionHistories) GetCurrentVersionHistoryIndex() int { // GetCurrentVersionHistory get the current version history func (h *VersionHistories) GetCurrentVersionHistory() (*VersionHistory, error) { - return h.GetVersionHistory(h.GetCurrentVersionHistoryIndex()) } diff --git a/service/history/engine/engineimpl/poll_mutable_state.go b/service/history/engine/engineimpl/poll_mutable_state.go index 498e34b7313..7d12fe5082f 100644 --- a/service/history/engine/engineimpl/poll_mutable_state.go +++ b/service/history/engine/engineimpl/poll_mutable_state.go @@ -83,12 +83,6 @@ func (e *historyEngineImpl) getMutableState( } defer func() { release(retError) }() - err := wfContext.Lock(ctx) - if err != nil { - return nil, fmt.Errorf("couldn't lock workflow context: %w", err) - } - defer wfContext.Unlock() - mutableState, retError := wfContext.LoadWorkflowExecution(ctx) if retError != nil { return diff --git a/service/history/execution/context.go b/service/history/execution/context.go index 2f41518c41e..71177ed7603 100644 --- a/service/history/execution/context.go +++ b/service/history/execution/context.go @@ -607,7 +607,7 @@ func (c *contextImpl) ConflictResolveWorkflowExecution( resetMutableState.GetPreviousStartedEventID(), workflowState, workflowCloseState, - resetMutableState.GetVersionHistories(), + resetMutableState.GetVersionHistories().Duplicate(), )) c.notifyTasksFromWorkflowSnapshotFn(resetWorkflow, persistedBlobs, false) @@ -850,7 +850,7 @@ func (c *contextImpl) UpdateWorkflowExecutionWithNew( c.mutableState.GetPreviousStartedEventID(), workflowState, workflowCloseState, - c.mutableState.GetVersionHistories(), + c.mutableState.GetVersionHistories().Duplicate(), )) // notify current workflow tasks From ef5667cd7c3402f1d795333f1a24cae66223c26f Mon Sep 17 00:00:00 2001 From: David Porter Date: Mon, 25 Nov 2024 18:12:21 -0800 Subject: [PATCH 07/13] NPE safety --- common/persistence/versionHistory.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/common/persistence/versionHistory.go b/common/persistence/versionHistory.go index 8460cb0501c..a5e65750999 100644 --- a/common/persistence/versionHistory.go +++ b/common/persistence/versionHistory.go @@ -405,6 +405,9 @@ func NewVersionHistoriesFromInternalType( // Duplicate duplicate VersionHistories func (h *VersionHistories) Duplicate() *VersionHistories { + if h == nil { + return nil + } currentVersionHistoryIndex := h.CurrentVersionHistoryIndex histories := []*VersionHistory{} From 953fe811039a150d495585bdcf8ecd5646858267 Mon Sep 17 00:00:00 2001 From: David Porter Date: Mon, 25 Nov 2024 20:57:20 -0800 Subject: [PATCH 08/13] IDL gen --- .gen/go/history/history.go | 202 +++- .gen/go/matching/matching.go | 80 +- .gen/go/shared/shared.go | 418 +++++++- .gen/proto/history/v1/service.pb.go | 965 ++++++++++-------- .gen/proto/history/v1/service.pb.yarpc.go | 877 ++++++++-------- .gen/proto/matching/v1/service.pb.yarpc.go | 256 ++--- .../uber/cadence/history/v1/service.proto | 2 + 7 files changed, 1737 insertions(+), 1063 deletions(-) diff --git a/.gen/go/history/history.go b/.gen/go/history/history.go index 7475a1135ef..d863f56f085 100644 --- a/.gen/go/history/history.go +++ b/.gen/go/history/history.go @@ -2397,10 +2397,11 @@ func (v *GetFailoverInfoResponse) IsSetPendingShards() bool { } type GetMutableStateRequest struct { - DomainUUID *string `json:"domainUUID,omitempty"` - Execution *shared.WorkflowExecution `json:"execution,omitempty"` - ExpectedNextEventId *int64 `json:"expectedNextEventId,omitempty"` - CurrentBranchToken []byte `json:"currentBranchToken,omitempty"` + DomainUUID *string `json:"domainUUID,omitempty"` + Execution *shared.WorkflowExecution `json:"execution,omitempty"` + ExpectedNextEventId *int64 `json:"expectedNextEventId,omitempty"` + CurrentBranchToken []byte `json:"currentBranchToken,omitempty"` + VersionHistoryItem *shared.VersionHistoryItem `json:"versionHistoryItem,omitempty"` } // ToWire translates a GetMutableStateRequest struct into a Thrift-level intermediate @@ -2420,7 +2421,7 @@ type GetMutableStateRequest struct { // } func (v *GetMutableStateRequest) ToWire() (wire.Value, error) { var ( - fields [4]wire.Field + fields [5]wire.Field i int = 0 w wire.Value err error @@ -2458,10 +2459,24 @@ func (v *GetMutableStateRequest) ToWire() (wire.Value, error) { fields[i] = wire.Field{ID: 40, Value: w} i++ } + if v.VersionHistoryItem != nil { + w, err = v.VersionHistoryItem.ToWire() + if err != nil { + return w, err + } + fields[i] = wire.Field{ID: 50, Value: w} + i++ + } return wire.NewValueStruct(wire.Struct{Fields: fields[:i]}), nil } +func _VersionHistoryItem_Read(w wire.Value) (*shared.VersionHistoryItem, error) { + var v shared.VersionHistoryItem + err := v.FromWire(w) + return &v, err +} + // FromWire deserializes a GetMutableStateRequest struct from its Thrift-level // representation. The Thrift-level representation may be obtained // from a ThriftRW protocol implementation. @@ -2519,6 +2534,14 @@ func (v *GetMutableStateRequest) FromWire(w wire.Value) error { return err } + } + case 50: + if field.Value.Type() == wire.TStruct { + v.VersionHistoryItem, err = _VersionHistoryItem_Read(field.Value) + if err != nil { + return err + } + } } } @@ -2583,9 +2606,27 @@ func (v *GetMutableStateRequest) Encode(sw stream.Writer) error { } } + if v.VersionHistoryItem != nil { + if err := sw.WriteFieldBegin(stream.FieldHeader{ID: 50, Type: wire.TStruct}); err != nil { + return err + } + if err := v.VersionHistoryItem.Encode(sw); err != nil { + return err + } + if err := sw.WriteFieldEnd(); err != nil { + return err + } + } + return sw.WriteStructEnd() } +func _VersionHistoryItem_Decode(sr stream.Reader) (*shared.VersionHistoryItem, error) { + var v shared.VersionHistoryItem + err := v.Decode(sr) + return &v, err +} + // Decode deserializes a GetMutableStateRequest struct directly from its Thrift-level // representation, without going through an intemediary type. // @@ -2632,6 +2673,12 @@ func (v *GetMutableStateRequest) Decode(sr stream.Reader) error { return err } + case fh.ID == 50 && fh.Type == wire.TStruct: + v.VersionHistoryItem, err = _VersionHistoryItem_Decode(sr) + if err != nil { + return err + } + default: if err := sr.Skip(fh.Type); err != nil { return err @@ -2661,7 +2708,7 @@ func (v *GetMutableStateRequest) String() string { return "" } - var fields [4]string + var fields [5]string i := 0 if v.DomainUUID != nil { fields[i] = fmt.Sprintf("DomainUUID: %v", *(v.DomainUUID)) @@ -2679,6 +2726,10 @@ func (v *GetMutableStateRequest) String() string { fields[i] = fmt.Sprintf("CurrentBranchToken: %v", v.CurrentBranchToken) i++ } + if v.VersionHistoryItem != nil { + fields[i] = fmt.Sprintf("VersionHistoryItem: %v", v.VersionHistoryItem) + i++ + } return fmt.Sprintf("GetMutableStateRequest{%v}", strings.Join(fields[:i], ", ")) } @@ -2715,6 +2766,9 @@ func (v *GetMutableStateRequest) Equals(rhs *GetMutableStateRequest) bool { if !((v.CurrentBranchToken == nil && rhs.CurrentBranchToken == nil) || (v.CurrentBranchToken != nil && rhs.CurrentBranchToken != nil && bytes.Equal(v.CurrentBranchToken, rhs.CurrentBranchToken))) { return false } + if !((v.VersionHistoryItem == nil && rhs.VersionHistoryItem == nil) || (v.VersionHistoryItem != nil && rhs.VersionHistoryItem != nil && v.VersionHistoryItem.Equals(rhs.VersionHistoryItem))) { + return false + } return true } @@ -2737,6 +2791,9 @@ func (v *GetMutableStateRequest) MarshalLogObject(enc zapcore.ObjectEncoder) (er if v.CurrentBranchToken != nil { enc.AddString("currentBranchToken", base64.StdEncoding.EncodeToString(v.CurrentBranchToken)) } + if v.VersionHistoryItem != nil { + err = multierr.Append(err, enc.AddObject("versionHistoryItem", v.VersionHistoryItem)) + } return err } @@ -2800,26 +2857,42 @@ func (v *GetMutableStateRequest) IsSetCurrentBranchToken() bool { return v != nil && v.CurrentBranchToken != nil } +// GetVersionHistoryItem returns the value of VersionHistoryItem if it is set or its +// zero value if it is unset. +func (v *GetMutableStateRequest) GetVersionHistoryItem() (o *shared.VersionHistoryItem) { + if v != nil && v.VersionHistoryItem != nil { + return v.VersionHistoryItem + } + + return +} + +// IsSetVersionHistoryItem returns true if VersionHistoryItem is not nil. +func (v *GetMutableStateRequest) IsSetVersionHistoryItem() bool { + return v != nil && v.VersionHistoryItem != nil +} + type GetMutableStateResponse struct { - Execution *shared.WorkflowExecution `json:"execution,omitempty"` - WorkflowType *shared.WorkflowType `json:"workflowType,omitempty"` - NextEventId *int64 `json:"NextEventId,omitempty"` - PreviousStartedEventId *int64 `json:"PreviousStartedEventId,omitempty"` - LastFirstEventId *int64 `json:"LastFirstEventId,omitempty"` - TaskList *shared.TaskList `json:"taskList,omitempty"` - StickyTaskList *shared.TaskList `json:"stickyTaskList,omitempty"` - ClientLibraryVersion *string `json:"clientLibraryVersion,omitempty"` - ClientFeatureVersion *string `json:"clientFeatureVersion,omitempty"` - ClientImpl *string `json:"clientImpl,omitempty"` - IsWorkflowRunning *bool `json:"isWorkflowRunning,omitempty"` - StickyTaskListScheduleToStartTimeout *int32 `json:"stickyTaskListScheduleToStartTimeout,omitempty"` - EventStoreVersion *int32 `json:"eventStoreVersion,omitempty"` - CurrentBranchToken []byte `json:"currentBranchToken,omitempty"` - WorkflowState *int32 `json:"workflowState,omitempty"` - WorkflowCloseState *int32 `json:"workflowCloseState,omitempty"` - VersionHistories *shared.VersionHistories `json:"versionHistories,omitempty"` - IsStickyTaskListEnabled *bool `json:"isStickyTaskListEnabled,omitempty"` - HistorySize *int64 `json:"historySize,omitempty"` + Execution *shared.WorkflowExecution `json:"execution,omitempty"` + WorkflowType *shared.WorkflowType `json:"workflowType,omitempty"` + NextEventId *int64 `json:"NextEventId,omitempty"` + PreviousStartedEventId *int64 `json:"PreviousStartedEventId,omitempty"` + LastFirstEventId *int64 `json:"LastFirstEventId,omitempty"` + TaskList *shared.TaskList `json:"taskList,omitempty"` + StickyTaskList *shared.TaskList `json:"stickyTaskList,omitempty"` + ClientLibraryVersion *string `json:"clientLibraryVersion,omitempty"` + ClientFeatureVersion *string `json:"clientFeatureVersion,omitempty"` + ClientImpl *string `json:"clientImpl,omitempty"` + IsWorkflowRunning *bool `json:"isWorkflowRunning,omitempty"` + StickyTaskListScheduleToStartTimeout *int32 `json:"stickyTaskListScheduleToStartTimeout,omitempty"` + EventStoreVersion *int32 `json:"eventStoreVersion,omitempty"` + CurrentBranchToken []byte `json:"currentBranchToken,omitempty"` + WorkflowState *int32 `json:"workflowState,omitempty"` + WorkflowCloseState *int32 `json:"workflowCloseState,omitempty"` + VersionHistories *shared.VersionHistories `json:"versionHistories,omitempty"` + IsStickyTaskListEnabled *bool `json:"isStickyTaskListEnabled,omitempty"` + HistorySize *int64 `json:"historySize,omitempty"` + VersionHistoryItem *shared.VersionHistoryItem `json:"versionHistoryItem,omitempty"` } // ToWire translates a GetMutableStateResponse struct into a Thrift-level intermediate @@ -2839,7 +2912,7 @@ type GetMutableStateResponse struct { // } func (v *GetMutableStateResponse) ToWire() (wire.Value, error) { var ( - fields [19]wire.Field + fields [20]wire.Field i int = 0 w wire.Value err error @@ -2997,6 +3070,14 @@ func (v *GetMutableStateResponse) ToWire() (wire.Value, error) { fields[i] = wire.Field{ID: 190, Value: w} i++ } + if v.VersionHistoryItem != nil { + w, err = v.VersionHistoryItem.ToWire() + if err != nil { + return w, err + } + fields[i] = wire.Field{ID: 200, Value: w} + i++ + } return wire.NewValueStruct(wire.Struct{Fields: fields[:i]}), nil } @@ -3218,6 +3299,14 @@ func (v *GetMutableStateResponse) FromWire(w wire.Value) error { return err } + } + case 200: + if field.Value.Type() == wire.TStruct { + v.VersionHistoryItem, err = _VersionHistoryItem_Read(field.Value) + if err != nil { + return err + } + } } } @@ -3462,6 +3551,18 @@ func (v *GetMutableStateResponse) Encode(sw stream.Writer) error { } } + if v.VersionHistoryItem != nil { + if err := sw.WriteFieldBegin(stream.FieldHeader{ID: 200, Type: wire.TStruct}); err != nil { + return err + } + if err := v.VersionHistoryItem.Encode(sw); err != nil { + return err + } + if err := sw.WriteFieldEnd(); err != nil { + return err + } + } + return sw.WriteStructEnd() } @@ -3641,6 +3742,12 @@ func (v *GetMutableStateResponse) Decode(sr stream.Reader) error { return err } + case fh.ID == 200 && fh.Type == wire.TStruct: + v.VersionHistoryItem, err = _VersionHistoryItem_Decode(sr) + if err != nil { + return err + } + default: if err := sr.Skip(fh.Type); err != nil { return err @@ -3670,7 +3777,7 @@ func (v *GetMutableStateResponse) String() string { return "" } - var fields [19]string + var fields [20]string i := 0 if v.Execution != nil { fields[i] = fmt.Sprintf("Execution: %v", v.Execution) @@ -3748,6 +3855,10 @@ func (v *GetMutableStateResponse) String() string { fields[i] = fmt.Sprintf("HistorySize: %v", *(v.HistorySize)) i++ } + if v.VersionHistoryItem != nil { + fields[i] = fmt.Sprintf("VersionHistoryItem: %v", v.VersionHistoryItem) + i++ + } return fmt.Sprintf("GetMutableStateResponse{%v}", strings.Join(fields[:i], ", ")) } @@ -3819,6 +3930,9 @@ func (v *GetMutableStateResponse) Equals(rhs *GetMutableStateResponse) bool { if !_I64_EqualsPtr(v.HistorySize, rhs.HistorySize) { return false } + if !((v.VersionHistoryItem == nil && rhs.VersionHistoryItem == nil) || (v.VersionHistoryItem != nil && rhs.VersionHistoryItem != nil && v.VersionHistoryItem.Equals(rhs.VersionHistoryItem))) { + return false + } return true } @@ -3886,6 +4000,9 @@ func (v *GetMutableStateResponse) MarshalLogObject(enc zapcore.ObjectEncoder) (e if v.HistorySize != nil { enc.AddInt64("historySize", *v.HistorySize) } + if v.VersionHistoryItem != nil { + err = multierr.Append(err, enc.AddObject("versionHistoryItem", v.VersionHistoryItem)) + } return err } @@ -4174,6 +4291,21 @@ func (v *GetMutableStateResponse) IsSetHistorySize() bool { return v != nil && v.HistorySize != nil } +// GetVersionHistoryItem returns the value of VersionHistoryItem if it is set or its +// zero value if it is unset. +func (v *GetMutableStateResponse) GetVersionHistoryItem() (o *shared.VersionHistoryItem) { + if v != nil && v.VersionHistoryItem != nil { + return v.VersionHistoryItem + } + + return +} + +// IsSetVersionHistoryItem returns true if VersionHistoryItem is not nil. +func (v *GetMutableStateResponse) IsSetVersionHistoryItem() bool { + return v != nil && v.VersionHistoryItem != nil +} + type NotifyFailoverMarkersRequest struct { FailoverMarkerTokens []*FailoverMarkerToken `json:"failoverMarkerTokens,omitempty"` } @@ -12983,12 +13115,6 @@ func (v *ReplicateEventsV2Request) ToWire() (wire.Value, error) { return wire.NewValueStruct(wire.Struct{Fields: fields[:i]}), nil } -func _VersionHistoryItem_Read(w wire.Value) (*shared.VersionHistoryItem, error) { - var v shared.VersionHistoryItem - err := v.FromWire(w) - return &v, err -} - func _List_VersionHistoryItem_Read(l wire.ValueList) ([]*shared.VersionHistoryItem, error) { if l.ValueType() != wire.TStruct { return nil, nil @@ -13176,12 +13302,6 @@ func (v *ReplicateEventsV2Request) Encode(sw stream.Writer) error { return sw.WriteStructEnd() } -func _VersionHistoryItem_Decode(sr stream.Reader) (*shared.VersionHistoryItem, error) { - var v shared.VersionHistoryItem - err := v.Decode(sr) - return &v, err -} - func _List_VersionHistoryItem_Decode(sr stream.Reader) ([]*shared.VersionHistoryItem, error) { lh, err := sr.ReadListBegin() if err != nil { @@ -22552,7 +22672,7 @@ var ThriftModule = &thriftreflect.ThriftModule{ Name: "history", Package: "github.com/uber/cadence/.gen/go/history", FilePath: "history.thrift", - SHA1: "f3fb626251b424b0f8fc8b63f2f39ad00bea2ca1", + SHA1: "442ce449568e891e66a38176ac8dddc07bdd68dc", Includes: []*thriftreflect.ThriftModule{ replicator.ThriftModule, shared.ThriftModule, @@ -22560,7 +22680,7 @@ var ThriftModule = &thriftreflect.ThriftModule{ Raw: rawIDL, } -const rawIDL = "// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\ninclude \"shared.thrift\"\ninclude \"replicator.thrift\"\n\nnamespace java com.uber.cadence.history\n\nexception EventAlreadyStartedError {\n 1: required string message\n}\n\nexception ShardOwnershipLostError {\n 10: optional string message\n 20: optional string owner\n}\n\nstruct ParentExecutionInfo {\n 10: optional string domainUUID\n 15: optional string domain\n 20: optional shared.WorkflowExecution execution\n 30: optional i64 (js.type = \"Long\") initiatedId\n}\n\nstruct StartWorkflowExecutionRequest {\n 10: optional string domainUUID\n 20: optional shared.StartWorkflowExecutionRequest startRequest\n 30: optional ParentExecutionInfo parentExecutionInfo\n 40: optional i32 attempt\n 50: optional i64 (js.type = \"Long\") expirationTimestamp\n 55: optional shared.ContinueAsNewInitiator continueAsNewInitiator\n 56: optional string continuedFailureReason\n 57: optional binary continuedFailureDetails\n 58: optional binary lastCompletionResult\n 60: optional i32 firstDecisionTaskBackoffSeconds\n 62: optional map partitionConfig\n}\n\nstruct DescribeMutableStateRequest{\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution execution\n}\n\nstruct DescribeMutableStateResponse{\n 30: optional string mutableStateInCache\n 40: optional string mutableStateInDatabase\n}\n\nstruct GetMutableStateRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution execution\n 30: optional i64 (js.type = \"Long\") expectedNextEventId\n 40: optional binary currentBranchToken\n}\n\nstruct GetMutableStateResponse {\n 10: optional shared.WorkflowExecution execution\n 20: optional shared.WorkflowType workflowType\n 30: optional i64 (js.type = \"Long\") NextEventId\n 35: optional i64 (js.type = \"Long\") PreviousStartedEventId\n 40: optional i64 (js.type = \"Long\") LastFirstEventId\n 50: optional shared.TaskList taskList\n 60: optional shared.TaskList stickyTaskList\n 70: optional string clientLibraryVersion\n 80: optional string clientFeatureVersion\n 90: optional string clientImpl\n //TODO: isWorkflowRunning is deprecating. workflowState is going replace this field\n 100: optional bool isWorkflowRunning\n 110: optional i32 stickyTaskListScheduleToStartTimeout\n 120: optional i32 eventStoreVersion\n 130: optional binary currentBranchToken\n // TODO: when migrating to gRPC, make this a enum\n // TODO: when migrating to gRPC, unify internal & external representation\n // NOTE: workflowState & workflowCloseState are the same as persistence representation\n 150: optional i32 workflowState\n 160: optional i32 workflowCloseState\n 170: optional shared.VersionHistories versionHistories\n 180: optional bool isStickyTaskListEnabled\n 190: optional i64 (js.type = \"Long\") historySize\n}\n\nstruct PollMutableStateRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution execution\n 30: optional i64 (js.type = \"Long\") expectedNextEventId\n 40: optional binary currentBranchToken\n}\n\nstruct PollMutableStateResponse {\n 10: optional shared.WorkflowExecution execution\n 20: optional shared.WorkflowType workflowType\n 30: optional i64 (js.type = \"Long\") NextEventId\n 35: optional i64 (js.type = \"Long\") PreviousStartedEventId\n 40: optional i64 (js.type = \"Long\") LastFirstEventId\n 50: optional shared.TaskList taskList\n 60: optional shared.TaskList stickyTaskList\n 70: optional string clientLibraryVersion\n 80: optional string clientFeatureVersion\n 90: optional string clientImpl\n 100: optional i32 stickyTaskListScheduleToStartTimeout\n 110: optional binary currentBranchToken\n 130: optional shared.VersionHistories versionHistories\n // TODO: when migrating to gRPC, make this a enum\n // TODO: when migrating to gRPC, unify internal & external representation\n // NOTE: workflowState & workflowCloseState are the same as persistence representation\n 140: optional i32 workflowState\n 150: optional i32 workflowCloseState\n}\n\nstruct ResetStickyTaskListRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution execution\n}\n\nstruct ResetStickyTaskListResponse {\n // The reason to keep this response is to allow returning\n // information in the future.\n}\n\nstruct RespondDecisionTaskCompletedRequest {\n 10: optional string domainUUID\n 20: optional shared.RespondDecisionTaskCompletedRequest completeRequest\n}\n\nstruct RespondDecisionTaskCompletedResponse {\n 10: optional RecordDecisionTaskStartedResponse startedResponse\n 20: optional map activitiesToDispatchLocally\n}\n\nstruct RespondDecisionTaskFailedRequest {\n 10: optional string domainUUID\n 20: optional shared.RespondDecisionTaskFailedRequest failedRequest\n}\n\nstruct RecordActivityTaskHeartbeatRequest {\n 10: optional string domainUUID\n 20: optional shared.RecordActivityTaskHeartbeatRequest heartbeatRequest\n}\n\nstruct RespondActivityTaskCompletedRequest {\n 10: optional string domainUUID\n 20: optional shared.RespondActivityTaskCompletedRequest completeRequest\n}\n\nstruct RespondActivityTaskFailedRequest {\n 10: optional string domainUUID\n 20: optional shared.RespondActivityTaskFailedRequest failedRequest\n}\n\nstruct RespondActivityTaskCanceledRequest {\n 10: optional string domainUUID\n 20: optional shared.RespondActivityTaskCanceledRequest cancelRequest\n}\n\nstruct RefreshWorkflowTasksRequest {\n 10: optional string domainUIID\n 20: optional shared.RefreshWorkflowTasksRequest request\n}\n\nstruct RecordActivityTaskStartedRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution workflowExecution\n 30: optional i64 (js.type = \"Long\") scheduleId\n 40: optional i64 (js.type = \"Long\") taskId\n 45: optional string requestId // Unique id of each poll request. Used to ensure at most once delivery of tasks.\n 50: optional shared.PollForActivityTaskRequest pollRequest\n}\n\nstruct RecordActivityTaskStartedResponse {\n 20: optional shared.HistoryEvent scheduledEvent\n 30: optional i64 (js.type = \"Long\") startedTimestamp\n 40: optional i64 (js.type = \"Long\") attempt\n 50: optional i64 (js.type = \"Long\") scheduledTimestampOfThisAttempt\n 60: optional binary heartbeatDetails\n 70: optional shared.WorkflowType workflowType\n 80: optional string workflowDomain\n}\n\nstruct RecordDecisionTaskStartedRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution workflowExecution\n 30: optional i64 (js.type = \"Long\") scheduleId\n 40: optional i64 (js.type = \"Long\") taskId\n 45: optional string requestId // Unique id of each poll request. Used to ensure at most once delivery of tasks.\n 50: optional shared.PollForDecisionTaskRequest pollRequest\n}\n\nstruct RecordDecisionTaskStartedResponse {\n 10: optional shared.WorkflowType workflowType\n 20: optional i64 (js.type = \"Long\") previousStartedEventId\n 30: optional i64 (js.type = \"Long\") scheduledEventId\n 40: optional i64 (js.type = \"Long\") startedEventId\n 50: optional i64 (js.type = \"Long\") nextEventId\n 60: optional i64 (js.type = \"Long\") attempt\n 70: optional bool stickyExecutionEnabled\n 80: optional shared.TransientDecisionInfo decisionInfo\n 90: optional shared.TaskList WorkflowExecutionTaskList\n 100: optional i32 eventStoreVersion\n 110: optional binary branchToken\n 120: optional i64 (js.type = \"Long\") scheduledTimestamp\n 130: optional i64 (js.type = \"Long\") startedTimestamp\n 140: optional map queries\n 150: optional i64 (js.type = \"Long\") historySize\n}\n\nstruct SignalWorkflowExecutionRequest {\n 10: optional string domainUUID\n 20: optional shared.SignalWorkflowExecutionRequest signalRequest\n // workflow execution that requests this signal, for making sure\n // the workflow being signaled is actually a child of the workflow\n // making the request\n 30: optional shared.WorkflowExecution externalWorkflowExecution\n 40: optional bool childWorkflowOnly\n}\n\nstruct SignalWithStartWorkflowExecutionRequest {\n 10: optional string domainUUID\n 20: optional shared.SignalWithStartWorkflowExecutionRequest signalWithStartRequest\n 30: optional map partitionConfig\n}\n\nstruct RemoveSignalMutableStateRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution workflowExecution\n 30: optional string requestId\n}\n\nstruct TerminateWorkflowExecutionRequest {\n 10: optional string domainUUID\n 20: optional shared.TerminateWorkflowExecutionRequest terminateRequest\n // workflow execution that requests this termination, for making sure\n // the workflow being terminated is actually a child of the workflow\n // making the request\n 30: optional shared.WorkflowExecution externalWorkflowExecution\n 40: optional bool childWorkflowOnly\n}\n\nstruct ResetWorkflowExecutionRequest {\n 10: optional string domainUUID\n 20: optional shared.ResetWorkflowExecutionRequest resetRequest\n}\n\nstruct RequestCancelWorkflowExecutionRequest {\n 10: optional string domainUUID\n 20: optional shared.RequestCancelWorkflowExecutionRequest cancelRequest\n // workflow execution that requests this cancellation, for making sure\n // the workflow being cancelled is actually a child of the workflow\n // making the request\n 30: optional i64 (js.type = \"Long\") externalInitiatedEventId\n 40: optional shared.WorkflowExecution externalWorkflowExecution\n 50: optional bool childWorkflowOnly\n}\n\nstruct ScheduleDecisionTaskRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution workflowExecution\n 30: optional bool isFirstDecision\n}\n\nstruct DescribeWorkflowExecutionRequest {\n 10: optional string domainUUID\n 20: optional shared.DescribeWorkflowExecutionRequest request\n}\n\n/**\n* RecordChildExecutionCompletedRequest is used for reporting the completion of child execution to parent workflow\n* execution which started it. When a child execution is completed it creates this request and calls the\n* RecordChildExecutionCompleted API with the workflowExecution of parent. It also sets the completedExecution of the\n* child as it could potentially be different than the ChildExecutionStartedEvent of parent in the situation when\n* child creates multiple runs through ContinueAsNew before finally completing.\n**/\nstruct RecordChildExecutionCompletedRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution workflowExecution\n 30: optional i64 (js.type = \"Long\") initiatedId\n 40: optional shared.WorkflowExecution completedExecution\n 50: optional shared.HistoryEvent completionEvent\n 60: optional i64 (js.type = \"Long\") startedId\n}\n\nstruct ReplicateEventsV2Request {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution workflowExecution\n 30: optional list versionHistoryItems\n 40: optional shared.DataBlob events\n // new run events does not need version history since there is no prior events\n 60: optional shared.DataBlob newRunEvents\n}\n\nstruct SyncShardStatusRequest {\n 10: optional string sourceCluster\n 20: optional i64 (js.type = \"Long\") shardId\n 30: optional i64 (js.type = \"Long\") timestamp\n}\n\nstruct SyncActivityRequest {\n 10: optional string domainId\n 20: optional string workflowId\n 30: optional string runId\n 40: optional i64 (js.type = \"Long\") version\n 50: optional i64 (js.type = \"Long\") scheduledId\n 60: optional i64 (js.type = \"Long\") scheduledTime\n 70: optional i64 (js.type = \"Long\") startedId\n 80: optional i64 (js.type = \"Long\") startedTime\n 90: optional i64 (js.type = \"Long\") lastHeartbeatTime\n 100: optional binary details\n 110: optional i32 attempt\n 120: optional string lastFailureReason\n 130: optional string lastWorkerIdentity\n 140: optional binary lastFailureDetails\n 150: optional shared.VersionHistory versionHistory\n}\n\nstruct QueryWorkflowRequest {\n 10: optional string domainUUID\n 20: optional shared.QueryWorkflowRequest request\n}\n\nstruct QueryWorkflowResponse {\n 10: optional shared.QueryWorkflowResponse response\n}\n\nstruct ReapplyEventsRequest {\n 10: optional string domainUUID\n 20: optional shared.ReapplyEventsRequest request\n}\n\nstruct FailoverMarkerToken {\n 10: optional list shardIDs\n 20: optional replicator.FailoverMarkerAttributes failoverMarker\n}\n\nstruct NotifyFailoverMarkersRequest {\n 10: optional list failoverMarkerTokens\n}\n\nstruct ProcessingQueueStates {\n 10: optional map> statesByCluster\n}\n\nstruct ProcessingQueueState {\n 10: optional i32 level\n 20: optional i64 ackLevel\n 30: optional i64 maxLevel\n 40: optional DomainFilter domainFilter\n}\n\nstruct DomainFilter {\n 10: optional list domainIDs\n 20: optional bool reverseMatch\n}\n\nstruct GetFailoverInfoRequest {\n 10: optional string domainID\n}\n\nstruct GetFailoverInfoResponse {\n 10: optional i32 completedShardCount\n 20: optional list pendingShards\n}\n\nstruct RatelimitUpdateRequest {\n /**\n * impl-specific data.\n *\n * likely some simple top-level keys and then either:\n * - map\n * - list\n *\n * this is a single blob rather than a collection to save on\n * repeated serialization of the type name, and to allow impls\n * to choose whatever structures are most-convenient for them.\n */\n 10: optional shared.Any data\n}\n\nstruct RatelimitUpdateResponse {\n /**\n * impl-specific data.\n *\n * likely some simple top-level keys and then either:\n * - map\n * - list\n *\n * this is a single blob rather than a collection to save on\n * repeated serialization of the type name, and to allow impls\n * to choose whatever structures are most-convenient for them.\n */\n 10: optional shared.Any data\n}\n\n/**\n* first impl of ratelimiting data, collected by limiters and sent to aggregators.\n*\n* used in an Any with ValueType: WeightedRatelimitUsageAnyType\n*/\nstruct WeightedRatelimitUsage {\n /** unique, stable identifier of the calling host, to identify future data from the same host */\n 10: required string caller\n /** milliseconds since last update call. expected to be on the order of a few seconds or less. */\n 20: required i32 elapsedMS\n /** per key, number of allowed vs rejected calls since last update. */\n 30: required map calls\n}\n\n/** Any{ValueType} identifier for WeightedRatelimitUsage data */\nconst string WeightedRatelimitUsageAnyType = \"cadence:loadbalanced:update_request\"\n\n/** fields are required to encourage compact serialization, zeros are expected */\nstruct WeightedRatelimitCalls {\n /**\n * number of allowed requests since last call.\n * assumed to be <1m or so, saturates at MAX_INT32.\n */\n 10: required i32 allowed\n /**\n * number of rejected requests since last call.\n * assumed to be <1m or so, saturates at MAX_INT32.\n */\n 20: required i32 rejected\n}\n\n/**\n* first impl of ratelimiting data, result from aggregator to limiter.\n*\n* used in an Any with ValueType: WeightedRatelimitQuotasAnyType\n*/\nstruct WeightedRatelimitQuotas {\n /** RPS-weights to allow per key */\n 10: required map quotas\n}\n\n/** Any{ValueType} identifier for WeightedRatelimitQuotas data */\nconst string WeightedRatelimitQuotasAnyType = \"cadence:loadbalanced:update_response\"\n\n/**\n* second impl, includes unused-RPS data so limiters can decide if they\n* want to allow exceeding limits when there is free space.\n*\n* used in an Any with ValueType: WeightedRatelimitUsageQuotasAnyType\n*/\nstruct WeightedRatelimitUsageQuotas {\n /** RPS weights and total usage per key */\n 10: required map quotas\n}\n\nstruct WeightedRatelimitUsageQuotaEntry {\n /** Amount of the quota that the receiving host can use, between 0 and 1 */\n 10: required double weight\n /** RPS estimated across the whole cluster */\n 20: required double used\n}\n\nconst string WeightedRatelimitUsageQuotasAnyType = \"cadence:loadbalanced:update_response_used\"\n\n/**\n* HistoryService provides API to start a new long running workflow instance, as well as query and update the history\n* of workflow instances already created.\n**/\nservice HistoryService {\n /**\n * StartWorkflowExecution starts a new long running workflow instance. It will create the instance with\n * 'WorkflowExecutionStarted' event in history and also schedule the first DecisionTask for the worker to make the\n * first decision for this instance. It will return 'WorkflowExecutionAlreadyStartedError', if an instance already\n * exists with same workflowId.\n **/\n shared.StartWorkflowExecutionResponse StartWorkflowExecution(1: StartWorkflowExecutionRequest startRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.WorkflowExecutionAlreadyStartedError sessionAlreadyExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * Returns the information from mutable state of workflow execution.\n * It fails with 'EntityNotExistError' if specified workflow execution in unknown to the service.\n * It returns CurrentBranchChangedError if the workflow version branch has changed.\n **/\n GetMutableStateResponse GetMutableState(1: GetMutableStateRequest getRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.CurrentBranchChangedError currentBranchChangedError,\n )\n\n /**\n * Returns the information from mutable state of workflow execution.\n * It fails with 'EntityNotExistError' if specified workflow execution in unknown to the service.\n * It returns CurrentBranchChangedError if the workflow version branch has changed.\n **/\n PollMutableStateResponse PollMutableState(1: PollMutableStateRequest pollRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.CurrentBranchChangedError currentBranchChangedError,\n )\n\n /**\n * Reset the sticky tasklist related information in mutable state of a given workflow.\n * Things cleared are:\n * 1. StickyTaskList\n * 2. StickyScheduleToStartTimeout\n * 3. ClientLibraryVersion\n * 4. ClientFeatureVersion\n * 5. ClientImpl\n **/\n ResetStickyTaskListResponse ResetStickyTaskList(1: ResetStickyTaskListRequest resetRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RecordDecisionTaskStarted is called by the Matchingservice before it hands a decision task to the application worker in response to\n * a PollForDecisionTask call. It records in the history the event that the decision task has started. It will return 'EventAlreadyStartedError',\n * if the workflow's execution history already includes a record of the event starting.\n **/\n RecordDecisionTaskStartedResponse RecordDecisionTaskStarted(1: RecordDecisionTaskStartedRequest addRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: EventAlreadyStartedError eventAlreadyStartedError,\n 4: shared.EntityNotExistsError entityNotExistError,\n 5: ShardOwnershipLostError shardOwnershipLostError,\n 6: shared.DomainNotActiveError domainNotActiveError,\n 7: shared.LimitExceededError limitExceededError,\n 8: shared.ServiceBusyError serviceBusyError,\n 9: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RecordActivityTaskStarted is called by the Matchingservice before it hands a decision task to the application worker in response to\n * a PollForActivityTask call. It records in the history the event that the decision task has started. It will return 'EventAlreadyStartedError',\n * if the workflow's execution history already includes a record of the event starting.\n **/\n RecordActivityTaskStartedResponse RecordActivityTaskStarted(1: RecordActivityTaskStartedRequest addRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: EventAlreadyStartedError eventAlreadyStartedError,\n 4: shared.EntityNotExistsError entityNotExistError,\n 5: ShardOwnershipLostError shardOwnershipLostError,\n 6: shared.DomainNotActiveError domainNotActiveError,\n 7: shared.LimitExceededError limitExceededError,\n 8: shared.ServiceBusyError serviceBusyError,\n 9: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RespondDecisionTaskCompleted is called by application worker to complete a DecisionTask handed as a result of\n * 'PollForDecisionTask' API call. Completing a DecisionTask will result in new events for the workflow execution and\n * potentially new ActivityTask being created for corresponding decisions. It will also create a DecisionTaskCompleted\n * event in the history for that session. Use the 'taskToken' provided as response of PollForDecisionTask API call\n * for completing the DecisionTask.\n **/\n RespondDecisionTaskCompletedResponse RespondDecisionTaskCompleted(1: RespondDecisionTaskCompletedRequest completeRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RespondDecisionTaskFailed is called by application worker to indicate failure. This results in\n * DecisionTaskFailedEvent written to the history and a new DecisionTask created. This API can be used by client to\n * either clear sticky tasklist or report ny panics during DecisionTask processing.\n **/\n void RespondDecisionTaskFailed(1: RespondDecisionTaskFailedRequest failedRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RecordActivityTaskHeartbeat is called by application worker while it is processing an ActivityTask. If worker fails\n * to heartbeat within 'heartbeatTimeoutSeconds' interval for the ActivityTask, then it will be marked as timedout and\n * 'ActivityTaskTimedOut' event will be written to the workflow history. Calling 'RecordActivityTaskHeartbeat' will\n * fail with 'EntityNotExistsError' in such situations. Use the 'taskToken' provided as response of\n * PollForActivityTask API call for heartbeating.\n **/\n shared.RecordActivityTaskHeartbeatResponse RecordActivityTaskHeartbeat(1: RecordActivityTaskHeartbeatRequest heartbeatRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RespondActivityTaskCompleted is called by application worker when it is done processing an ActivityTask. It will\n * result in a new 'ActivityTaskCompleted' event being written to the workflow history and a new DecisionTask\n * created for the workflow so new decisions could be made. Use the 'taskToken' provided as response of\n * PollForActivityTask API call for completion. It fails with 'EntityNotExistsError' if the taskToken is not valid\n * anymore due to activity timeout.\n **/\n void RespondActivityTaskCompleted(1: RespondActivityTaskCompletedRequest completeRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RespondActivityTaskFailed is called by application worker when it is done processing an ActivityTask. It will\n * result in a new 'ActivityTaskFailed' event being written to the workflow history and a new DecisionTask\n * created for the workflow instance so new decisions could be made. Use the 'taskToken' provided as response of\n * PollForActivityTask API call for completion. It fails with 'EntityNotExistsError' if the taskToken is not valid\n * anymore due to activity timeout.\n **/\n void RespondActivityTaskFailed(1: RespondActivityTaskFailedRequest failRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RespondActivityTaskCanceled is called by application worker when it is successfully canceled an ActivityTask. It will\n * result in a new 'ActivityTaskCanceled' event being written to the workflow history and a new DecisionTask\n * created for the workflow instance so new decisions could be made. Use the 'taskToken' provided as response of\n * PollForActivityTask API call for completion. It fails with 'EntityNotExistsError' if the taskToken is not valid\n * anymore due to activity timeout.\n **/\n void RespondActivityTaskCanceled(1: RespondActivityTaskCanceledRequest canceledRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * SignalWorkflowExecution is used to send a signal event to running workflow execution. This results in\n * WorkflowExecutionSignaled event recorded in the history and a decision task being created for the execution.\n **/\n void SignalWorkflowExecution(1: SignalWorkflowExecutionRequest signalRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.LimitExceededError limitExceededError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * SignalWithStartWorkflowExecution is used to ensure sending a signal event to a workflow execution.\n * If workflow is running, this results in WorkflowExecutionSignaled event recorded in the history\n * and a decision task being created for the execution.\n * If workflow is not running or not found, it will first try start workflow with given WorkflowIDResuePolicy,\n * and record WorkflowExecutionStarted and WorkflowExecutionSignaled event in case of success.\n * It will return `WorkflowExecutionAlreadyStartedError` if start workflow failed with given policy.\n **/\n shared.StartWorkflowExecutionResponse SignalWithStartWorkflowExecution(1: SignalWithStartWorkflowExecutionRequest signalWithStartRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: ShardOwnershipLostError shardOwnershipLostError,\n 4: shared.DomainNotActiveError domainNotActiveError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.WorkflowExecutionAlreadyStartedError workflowAlreadyStartedError,\n )\n\n /**\n * RemoveSignalMutableState is used to remove a signal request ID that was previously recorded. This is currently\n * used to clean execution info when signal decision finished.\n **/\n void RemoveSignalMutableState(1: RemoveSignalMutableStateRequest removeRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * TerminateWorkflowExecution terminates an existing workflow execution by recording WorkflowExecutionTerminated event\n * in the history and immediately terminating the execution instance.\n **/\n void TerminateWorkflowExecution(1: TerminateWorkflowExecutionRequest terminateRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * ResetWorkflowExecution reset an existing workflow execution by a firstEventID of a existing event batch\n * in the history and immediately terminating the current execution instance.\n * After reset, the history will grow from nextFirstEventID.\n **/\n shared.ResetWorkflowExecutionResponse ResetWorkflowExecution(1: ResetWorkflowExecutionRequest resetRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * RequestCancelWorkflowExecution is called by application worker when it wants to request cancellation of a workflow instance.\n * It will result in a new 'WorkflowExecutionCancelRequested' event being written to the workflow history and a new DecisionTask\n * created for the workflow instance so new decisions could be made. It fails with\n * 'WorkflowExecutionAlreadyCompletedError' if the workflow is not valid\n * anymore due to completion or with 'EntityNotExistsError' if worfklow doesn't exist.\n **/\n void RequestCancelWorkflowExecution(1: RequestCancelWorkflowExecutionRequest cancelRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.CancellationAlreadyRequestedError cancellationAlreadyRequestedError,\n 6: shared.DomainNotActiveError domainNotActiveError,\n 7: shared.LimitExceededError limitExceededError,\n 8: shared.ServiceBusyError serviceBusyError,\n 10: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * ScheduleDecisionTask is used for creating a decision task for already started workflow execution. This is mainly\n * used by transfer queue processor during the processing of StartChildWorkflowExecution task, where it first starts\n * child execution without creating the decision task and then calls this API after updating the mutable state of\n * parent execution.\n **/\n void ScheduleDecisionTask(1: ScheduleDecisionTaskRequest scheduleRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RecordChildExecutionCompleted is used for reporting the completion of child workflow execution to parent.\n * This is mainly called by transfer queue processor during the processing of DeleteExecution task.\n **/\n void RecordChildExecutionCompleted(1: RecordChildExecutionCompletedRequest completionRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * DescribeWorkflowExecution returns information about the specified workflow execution.\n **/\n shared.DescribeWorkflowExecutionResponse DescribeWorkflowExecution(1: DescribeWorkflowExecutionRequest describeRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n )\n\n void ReplicateEventsV2(1: ReplicateEventsV2Request replicateV2Request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.RetryTaskV2Error retryTaskError,\n 7: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * SyncShardStatus sync the status between shards\n **/\n void SyncShardStatus(1: SyncShardStatusRequest syncShardStatusRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * SyncActivity sync the activity status\n **/\n void SyncActivity(1: SyncActivityRequest syncActivityRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.ServiceBusyError serviceBusyError,\n 7: shared.RetryTaskV2Error retryTaskV2Error,\n )\n\n /**\n * DescribeMutableState returns information about the internal states of workflow mutable state.\n **/\n DescribeMutableStateResponse DescribeMutableState(1: DescribeMutableStateRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.AccessDeniedError accessDeniedError,\n 5: ShardOwnershipLostError shardOwnershipLostError,\n 6: shared.LimitExceededError limitExceededError,\n )\n\n /**\n * DescribeHistoryHost returns information about the internal states of a history host\n **/\n shared.DescribeHistoryHostResponse DescribeHistoryHost(1: shared.DescribeHistoryHostRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.AccessDeniedError accessDeniedError,\n )\n\n /**\n * CloseShard close the shard\n **/\n void CloseShard(1: shared.CloseShardRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.AccessDeniedError accessDeniedError,\n )\n\n /**\n * RemoveTask remove task based on type, taskid, shardid\n **/\n void RemoveTask(1: shared.RemoveTaskRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.AccessDeniedError accessDeniedError,\n )\n\n /**\n * ResetQueue reset processing queue state based on cluster name and type\n **/\n void ResetQueue(1: shared.ResetQueueRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.AccessDeniedError accessDeniedError,\n )\n\n /**\n * DescribeQueue return queue states based on cluster name and type\n **/\n shared.DescribeQueueResponse DescribeQueue(1: shared.DescribeQueueRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.AccessDeniedError accessDeniedError,\n )\n\n /**\n * GetReplicationMessages return replication messages based on the read level\n **/\n replicator.GetReplicationMessagesResponse GetReplicationMessages(1: replicator.GetReplicationMessagesRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.LimitExceededError limitExceededError,\n 4: shared.ServiceBusyError serviceBusyError,\n 5: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * GetDLQReplicationMessages return replication messages based on dlq info\n **/\n replicator.GetDLQReplicationMessagesResponse GetDLQReplicationMessages(1: replicator.GetDLQReplicationMessagesRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: shared.EntityNotExistsError entityNotExistError,\n )\n\n /**\n * QueryWorkflow returns query result for a specified workflow execution\n **/\n QueryWorkflowResponse QueryWorkflow(1: QueryWorkflowRequest queryRequest)\n\tthrows (\n\t 1: shared.BadRequestError badRequestError,\n\t 2: shared.InternalServiceError internalServiceError,\n\t 3: shared.EntityNotExistsError entityNotExistError,\n\t 4: shared.QueryFailedError queryFailedError,\n\t 5: shared.LimitExceededError limitExceededError,\n\t 6: shared.ServiceBusyError serviceBusyError,\n\t 7: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n\t)\n\n /**\n * ReapplyEvents applies stale events to the current workflow and current run\n **/\n void ReapplyEvents(1: ReapplyEventsRequest reapplyEventsRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.DomainNotActiveError domainNotActiveError,\n 4: shared.LimitExceededError limitExceededError,\n 5: shared.ServiceBusyError serviceBusyError,\n 6: ShardOwnershipLostError shardOwnershipLostError,\n 7: shared.EntityNotExistsError entityNotExistError,\n )\n\n /**\n * RefreshWorkflowTasks refreshes all tasks of a workflow\n **/\n void RefreshWorkflowTasks(1: RefreshWorkflowTasksRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.DomainNotActiveError domainNotActiveError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.ServiceBusyError serviceBusyError,\n 6: shared.EntityNotExistsError entityNotExistError,\n )\n\n /**\n * ReadDLQMessages returns messages from DLQ\n **/\n replicator.ReadDLQMessagesResponse ReadDLQMessages(1: replicator.ReadDLQMessagesRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: shared.EntityNotExistsError entityNotExistError,\n 5: ShardOwnershipLostError shardOwnershipLostError,\n )\n\n /**\n * PurgeDLQMessages purges messages from DLQ\n **/\n void PurgeDLQMessages(1: replicator.PurgeDLQMessagesRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: shared.EntityNotExistsError entityNotExistError,\n 5: ShardOwnershipLostError shardOwnershipLostError,\n )\n\n /**\n * MergeDLQMessages merges messages from DLQ\n **/\n replicator.MergeDLQMessagesResponse MergeDLQMessages(1: replicator.MergeDLQMessagesRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: shared.EntityNotExistsError entityNotExistError,\n 5: ShardOwnershipLostError shardOwnershipLostError,\n )\n\n /**\n * NotifyFailoverMarkers sends failover marker to the failover coordinator\n **/\n void NotifyFailoverMarkers(1: NotifyFailoverMarkersRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * GetCrossClusterTasks fetches cross cluster tasks\n **/\n shared.GetCrossClusterTasksResponse GetCrossClusterTasks(1: shared.GetCrossClusterTasksRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * RespondCrossClusterTasksCompleted responds the result of processing cross cluster tasks\n **/\n shared.RespondCrossClusterTasksCompletedResponse RespondCrossClusterTasksCompleted(1: shared.RespondCrossClusterTasksCompletedRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n )\n\n /**\n * GetFailoverInfo responds the failover info about an on-going graceful failover\n **/\n GetFailoverInfoResponse GetFailoverInfo(1: GetFailoverInfoRequest request)\n throws (\n 1: shared.InternalServiceError internalServiceError,\n 2: shared.ServiceBusyError serviceBusyError,\n 3: ShardOwnershipLostError shardOwnershipLostError,\n 4: shared.EntityNotExistsError entityNotExistError,\n )\n\n /**\n * RatelimitUpdate pushes global-ratelimiting data to aggregating hosts,\n * and returns data describing how to update the caller's ratelimits.\n *\n * For more details, see github.com/uber/cadence/common/quotas/global documentation.\n *\n * Request and response structures are intentionally loosely defined, to allow plugging\n * in externally-defined algorithms without changing protocol-level details.\n **/\n RatelimitUpdateResponse RatelimitUpdate(1: RatelimitUpdateRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n )\n}\n" +const rawIDL = "// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\ninclude \"shared.thrift\"\ninclude \"replicator.thrift\"\n\nnamespace java com.uber.cadence.history\n\nexception EventAlreadyStartedError {\n 1: required string message\n}\n\nexception ShardOwnershipLostError {\n 10: optional string message\n 20: optional string owner\n}\n\nstruct ParentExecutionInfo {\n 10: optional string domainUUID\n 15: optional string domain\n 20: optional shared.WorkflowExecution execution\n 30: optional i64 (js.type = \"Long\") initiatedId\n}\n\nstruct StartWorkflowExecutionRequest {\n 10: optional string domainUUID\n 20: optional shared.StartWorkflowExecutionRequest startRequest\n 30: optional ParentExecutionInfo parentExecutionInfo\n 40: optional i32 attempt\n 50: optional i64 (js.type = \"Long\") expirationTimestamp\n 55: optional shared.ContinueAsNewInitiator continueAsNewInitiator\n 56: optional string continuedFailureReason\n 57: optional binary continuedFailureDetails\n 58: optional binary lastCompletionResult\n 60: optional i32 firstDecisionTaskBackoffSeconds\n 62: optional map partitionConfig\n}\n\nstruct DescribeMutableStateRequest{\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution execution\n}\n\nstruct DescribeMutableStateResponse{\n 30: optional string mutableStateInCache\n 40: optional string mutableStateInDatabase\n}\n\nstruct GetMutableStateRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution execution\n 30: optional i64 (js.type = \"Long\") expectedNextEventId\n 40: optional binary currentBranchToken\n 50: optional shared.VersionHistoryItem versionHistoryItem\n}\n\nstruct GetMutableStateResponse {\n 10: optional shared.WorkflowExecution execution\n 20: optional shared.WorkflowType workflowType\n 30: optional i64 (js.type = \"Long\") NextEventId\n 35: optional i64 (js.type = \"Long\") PreviousStartedEventId\n 40: optional i64 (js.type = \"Long\") LastFirstEventId\n 50: optional shared.TaskList taskList\n 60: optional shared.TaskList stickyTaskList\n 70: optional string clientLibraryVersion\n 80: optional string clientFeatureVersion\n 90: optional string clientImpl\n //TODO: isWorkflowRunning is deprecating. workflowState is going replace this field\n 100: optional bool isWorkflowRunning\n 110: optional i32 stickyTaskListScheduleToStartTimeout\n 120: optional i32 eventStoreVersion\n 130: optional binary currentBranchToken\n // TODO: when migrating to gRPC, make this a enum\n // TODO: when migrating to gRPC, unify internal & external representation\n // NOTE: workflowState & workflowCloseState are the same as persistence representation\n 150: optional i32 workflowState\n 160: optional i32 workflowCloseState\n 170: optional shared.VersionHistories versionHistories\n 180: optional bool isStickyTaskListEnabled\n 190: optional i64 (js.type = \"Long\") historySize\n 200: optional shared.VersionHistoryItem versionHistoryItem\n}\n\nstruct PollMutableStateRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution execution\n 30: optional i64 (js.type = \"Long\") expectedNextEventId\n 40: optional binary currentBranchToken\n}\n\nstruct PollMutableStateResponse {\n 10: optional shared.WorkflowExecution execution\n 20: optional shared.WorkflowType workflowType\n 30: optional i64 (js.type = \"Long\") NextEventId\n 35: optional i64 (js.type = \"Long\") PreviousStartedEventId\n 40: optional i64 (js.type = \"Long\") LastFirstEventId\n 50: optional shared.TaskList taskList\n 60: optional shared.TaskList stickyTaskList\n 70: optional string clientLibraryVersion\n 80: optional string clientFeatureVersion\n 90: optional string clientImpl\n 100: optional i32 stickyTaskListScheduleToStartTimeout\n 110: optional binary currentBranchToken\n 130: optional shared.VersionHistories versionHistories\n // TODO: when migrating to gRPC, make this a enum\n // TODO: when migrating to gRPC, unify internal & external representation\n // NOTE: workflowState & workflowCloseState are the same as persistence representation\n 140: optional i32 workflowState\n 150: optional i32 workflowCloseState\n}\n\nstruct ResetStickyTaskListRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution execution\n}\n\nstruct ResetStickyTaskListResponse {\n // The reason to keep this response is to allow returning\n // information in the future.\n}\n\nstruct RespondDecisionTaskCompletedRequest {\n 10: optional string domainUUID\n 20: optional shared.RespondDecisionTaskCompletedRequest completeRequest\n}\n\nstruct RespondDecisionTaskCompletedResponse {\n 10: optional RecordDecisionTaskStartedResponse startedResponse\n 20: optional map activitiesToDispatchLocally\n}\n\nstruct RespondDecisionTaskFailedRequest {\n 10: optional string domainUUID\n 20: optional shared.RespondDecisionTaskFailedRequest failedRequest\n}\n\nstruct RecordActivityTaskHeartbeatRequest {\n 10: optional string domainUUID\n 20: optional shared.RecordActivityTaskHeartbeatRequest heartbeatRequest\n}\n\nstruct RespondActivityTaskCompletedRequest {\n 10: optional string domainUUID\n 20: optional shared.RespondActivityTaskCompletedRequest completeRequest\n}\n\nstruct RespondActivityTaskFailedRequest {\n 10: optional string domainUUID\n 20: optional shared.RespondActivityTaskFailedRequest failedRequest\n}\n\nstruct RespondActivityTaskCanceledRequest {\n 10: optional string domainUUID\n 20: optional shared.RespondActivityTaskCanceledRequest cancelRequest\n}\n\nstruct RefreshWorkflowTasksRequest {\n 10: optional string domainUIID\n 20: optional shared.RefreshWorkflowTasksRequest request\n}\n\nstruct RecordActivityTaskStartedRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution workflowExecution\n 30: optional i64 (js.type = \"Long\") scheduleId\n 40: optional i64 (js.type = \"Long\") taskId\n 45: optional string requestId // Unique id of each poll request. Used to ensure at most once delivery of tasks.\n 50: optional shared.PollForActivityTaskRequest pollRequest\n}\n\nstruct RecordActivityTaskStartedResponse {\n 20: optional shared.HistoryEvent scheduledEvent\n 30: optional i64 (js.type = \"Long\") startedTimestamp\n 40: optional i64 (js.type = \"Long\") attempt\n 50: optional i64 (js.type = \"Long\") scheduledTimestampOfThisAttempt\n 60: optional binary heartbeatDetails\n 70: optional shared.WorkflowType workflowType\n 80: optional string workflowDomain\n}\n\nstruct RecordDecisionTaskStartedRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution workflowExecution\n 30: optional i64 (js.type = \"Long\") scheduleId\n 40: optional i64 (js.type = \"Long\") taskId\n 45: optional string requestId // Unique id of each poll request. Used to ensure at most once delivery of tasks.\n 50: optional shared.PollForDecisionTaskRequest pollRequest\n}\n\nstruct RecordDecisionTaskStartedResponse {\n 10: optional shared.WorkflowType workflowType\n 20: optional i64 (js.type = \"Long\") previousStartedEventId\n 30: optional i64 (js.type = \"Long\") scheduledEventId\n 40: optional i64 (js.type = \"Long\") startedEventId\n 50: optional i64 (js.type = \"Long\") nextEventId\n 60: optional i64 (js.type = \"Long\") attempt\n 70: optional bool stickyExecutionEnabled\n 80: optional shared.TransientDecisionInfo decisionInfo\n 90: optional shared.TaskList WorkflowExecutionTaskList\n 100: optional i32 eventStoreVersion\n 110: optional binary branchToken\n 120: optional i64 (js.type = \"Long\") scheduledTimestamp\n 130: optional i64 (js.type = \"Long\") startedTimestamp\n 140: optional map queries\n 150: optional i64 (js.type = \"Long\") historySize\n}\n\nstruct SignalWorkflowExecutionRequest {\n 10: optional string domainUUID\n 20: optional shared.SignalWorkflowExecutionRequest signalRequest\n // workflow execution that requests this signal, for making sure\n // the workflow being signaled is actually a child of the workflow\n // making the request\n 30: optional shared.WorkflowExecution externalWorkflowExecution\n 40: optional bool childWorkflowOnly\n}\n\nstruct SignalWithStartWorkflowExecutionRequest {\n 10: optional string domainUUID\n 20: optional shared.SignalWithStartWorkflowExecutionRequest signalWithStartRequest\n 30: optional map partitionConfig\n}\n\nstruct RemoveSignalMutableStateRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution workflowExecution\n 30: optional string requestId\n}\n\nstruct TerminateWorkflowExecutionRequest {\n 10: optional string domainUUID\n 20: optional shared.TerminateWorkflowExecutionRequest terminateRequest\n // workflow execution that requests this termination, for making sure\n // the workflow being terminated is actually a child of the workflow\n // making the request\n 30: optional shared.WorkflowExecution externalWorkflowExecution\n 40: optional bool childWorkflowOnly\n}\n\nstruct ResetWorkflowExecutionRequest {\n 10: optional string domainUUID\n 20: optional shared.ResetWorkflowExecutionRequest resetRequest\n}\n\nstruct RequestCancelWorkflowExecutionRequest {\n 10: optional string domainUUID\n 20: optional shared.RequestCancelWorkflowExecutionRequest cancelRequest\n // workflow execution that requests this cancellation, for making sure\n // the workflow being cancelled is actually a child of the workflow\n // making the request\n 30: optional i64 (js.type = \"Long\") externalInitiatedEventId\n 40: optional shared.WorkflowExecution externalWorkflowExecution\n 50: optional bool childWorkflowOnly\n}\n\nstruct ScheduleDecisionTaskRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution workflowExecution\n 30: optional bool isFirstDecision\n}\n\nstruct DescribeWorkflowExecutionRequest {\n 10: optional string domainUUID\n 20: optional shared.DescribeWorkflowExecutionRequest request\n}\n\n/**\n* RecordChildExecutionCompletedRequest is used for reporting the completion of child execution to parent workflow\n* execution which started it. When a child execution is completed it creates this request and calls the\n* RecordChildExecutionCompleted API with the workflowExecution of parent. It also sets the completedExecution of the\n* child as it could potentially be different than the ChildExecutionStartedEvent of parent in the situation when\n* child creates multiple runs through ContinueAsNew before finally completing.\n**/\nstruct RecordChildExecutionCompletedRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution workflowExecution\n 30: optional i64 (js.type = \"Long\") initiatedId\n 40: optional shared.WorkflowExecution completedExecution\n 50: optional shared.HistoryEvent completionEvent\n 60: optional i64 (js.type = \"Long\") startedId\n}\n\nstruct ReplicateEventsV2Request {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution workflowExecution\n 30: optional list versionHistoryItems\n 40: optional shared.DataBlob events\n // new run events does not need version history since there is no prior events\n 60: optional shared.DataBlob newRunEvents\n}\n\nstruct SyncShardStatusRequest {\n 10: optional string sourceCluster\n 20: optional i64 (js.type = \"Long\") shardId\n 30: optional i64 (js.type = \"Long\") timestamp\n}\n\nstruct SyncActivityRequest {\n 10: optional string domainId\n 20: optional string workflowId\n 30: optional string runId\n 40: optional i64 (js.type = \"Long\") version\n 50: optional i64 (js.type = \"Long\") scheduledId\n 60: optional i64 (js.type = \"Long\") scheduledTime\n 70: optional i64 (js.type = \"Long\") startedId\n 80: optional i64 (js.type = \"Long\") startedTime\n 90: optional i64 (js.type = \"Long\") lastHeartbeatTime\n 100: optional binary details\n 110: optional i32 attempt\n 120: optional string lastFailureReason\n 130: optional string lastWorkerIdentity\n 140: optional binary lastFailureDetails\n 150: optional shared.VersionHistory versionHistory\n}\n\nstruct QueryWorkflowRequest {\n 10: optional string domainUUID\n 20: optional shared.QueryWorkflowRequest request\n}\n\nstruct QueryWorkflowResponse {\n 10: optional shared.QueryWorkflowResponse response\n}\n\nstruct ReapplyEventsRequest {\n 10: optional string domainUUID\n 20: optional shared.ReapplyEventsRequest request\n}\n\nstruct FailoverMarkerToken {\n 10: optional list shardIDs\n 20: optional replicator.FailoverMarkerAttributes failoverMarker\n}\n\nstruct NotifyFailoverMarkersRequest {\n 10: optional list failoverMarkerTokens\n}\n\nstruct ProcessingQueueStates {\n 10: optional map> statesByCluster\n}\n\nstruct ProcessingQueueState {\n 10: optional i32 level\n 20: optional i64 ackLevel\n 30: optional i64 maxLevel\n 40: optional DomainFilter domainFilter\n}\n\nstruct DomainFilter {\n 10: optional list domainIDs\n 20: optional bool reverseMatch\n}\n\nstruct GetFailoverInfoRequest {\n 10: optional string domainID\n}\n\nstruct GetFailoverInfoResponse {\n 10: optional i32 completedShardCount\n 20: optional list pendingShards\n}\n\nstruct RatelimitUpdateRequest {\n /**\n * impl-specific data.\n *\n * likely some simple top-level keys and then either:\n * - map\n * - list\n *\n * this is a single blob rather than a collection to save on\n * repeated serialization of the type name, and to allow impls\n * to choose whatever structures are most-convenient for them.\n */\n 10: optional shared.Any data\n}\n\nstruct RatelimitUpdateResponse {\n /**\n * impl-specific data.\n *\n * likely some simple top-level keys and then either:\n * - map\n * - list\n *\n * this is a single blob rather than a collection to save on\n * repeated serialization of the type name, and to allow impls\n * to choose whatever structures are most-convenient for them.\n */\n 10: optional shared.Any data\n}\n\n/**\n* first impl of ratelimiting data, collected by limiters and sent to aggregators.\n*\n* used in an Any with ValueType: WeightedRatelimitUsageAnyType\n*/\nstruct WeightedRatelimitUsage {\n /** unique, stable identifier of the calling host, to identify future data from the same host */\n 10: required string caller\n /** milliseconds since last update call. expected to be on the order of a few seconds or less. */\n 20: required i32 elapsedMS\n /** per key, number of allowed vs rejected calls since last update. */\n 30: required map calls\n}\n\n/** Any{ValueType} identifier for WeightedRatelimitUsage data */\nconst string WeightedRatelimitUsageAnyType = \"cadence:loadbalanced:update_request\"\n\n/** fields are required to encourage compact serialization, zeros are expected */\nstruct WeightedRatelimitCalls {\n /**\n * number of allowed requests since last call.\n * assumed to be <1m or so, saturates at MAX_INT32.\n */\n 10: required i32 allowed\n /**\n * number of rejected requests since last call.\n * assumed to be <1m or so, saturates at MAX_INT32.\n */\n 20: required i32 rejected\n}\n\n/**\n* first impl of ratelimiting data, result from aggregator to limiter.\n*\n* used in an Any with ValueType: WeightedRatelimitQuotasAnyType\n*/\nstruct WeightedRatelimitQuotas {\n /** RPS-weights to allow per key */\n 10: required map quotas\n}\n\n/** Any{ValueType} identifier for WeightedRatelimitQuotas data */\nconst string WeightedRatelimitQuotasAnyType = \"cadence:loadbalanced:update_response\"\n\n/**\n* second impl, includes unused-RPS data so limiters can decide if they\n* want to allow exceeding limits when there is free space.\n*\n* used in an Any with ValueType: WeightedRatelimitUsageQuotasAnyType\n*/\nstruct WeightedRatelimitUsageQuotas {\n /** RPS weights and total usage per key */\n 10: required map quotas\n}\n\nstruct WeightedRatelimitUsageQuotaEntry {\n /** Amount of the quota that the receiving host can use, between 0 and 1 */\n 10: required double weight\n /** RPS estimated across the whole cluster */\n 20: required double used\n}\n\nconst string WeightedRatelimitUsageQuotasAnyType = \"cadence:loadbalanced:update_response_used\"\n\n/**\n* HistoryService provides API to start a new long running workflow instance, as well as query and update the history\n* of workflow instances already created.\n**/\nservice HistoryService {\n /**\n * StartWorkflowExecution starts a new long running workflow instance. It will create the instance with\n * 'WorkflowExecutionStarted' event in history and also schedule the first DecisionTask for the worker to make the\n * first decision for this instance. It will return 'WorkflowExecutionAlreadyStartedError', if an instance already\n * exists with same workflowId.\n **/\n shared.StartWorkflowExecutionResponse StartWorkflowExecution(1: StartWorkflowExecutionRequest startRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.WorkflowExecutionAlreadyStartedError sessionAlreadyExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * Returns the information from mutable state of workflow execution.\n * It fails with 'EntityNotExistError' if specified workflow execution in unknown to the service.\n * It returns CurrentBranchChangedError if the workflow version branch has changed.\n **/\n GetMutableStateResponse GetMutableState(1: GetMutableStateRequest getRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.CurrentBranchChangedError currentBranchChangedError,\n )\n\n /**\n * Returns the information from mutable state of workflow execution.\n * It fails with 'EntityNotExistError' if specified workflow execution in unknown to the service.\n * It returns CurrentBranchChangedError if the workflow version branch has changed.\n **/\n PollMutableStateResponse PollMutableState(1: PollMutableStateRequest pollRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.CurrentBranchChangedError currentBranchChangedError,\n )\n\n /**\n * Reset the sticky tasklist related information in mutable state of a given workflow.\n * Things cleared are:\n * 1. StickyTaskList\n * 2. StickyScheduleToStartTimeout\n * 3. ClientLibraryVersion\n * 4. ClientFeatureVersion\n * 5. ClientImpl\n **/\n ResetStickyTaskListResponse ResetStickyTaskList(1: ResetStickyTaskListRequest resetRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RecordDecisionTaskStarted is called by the Matchingservice before it hands a decision task to the application worker in response to\n * a PollForDecisionTask call. It records in the history the event that the decision task has started. It will return 'EventAlreadyStartedError',\n * if the workflow's execution history already includes a record of the event starting.\n **/\n RecordDecisionTaskStartedResponse RecordDecisionTaskStarted(1: RecordDecisionTaskStartedRequest addRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: EventAlreadyStartedError eventAlreadyStartedError,\n 4: shared.EntityNotExistsError entityNotExistError,\n 5: ShardOwnershipLostError shardOwnershipLostError,\n 6: shared.DomainNotActiveError domainNotActiveError,\n 7: shared.LimitExceededError limitExceededError,\n 8: shared.ServiceBusyError serviceBusyError,\n 9: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RecordActivityTaskStarted is called by the Matchingservice before it hands a decision task to the application worker in response to\n * a PollForActivityTask call. It records in the history the event that the decision task has started. It will return 'EventAlreadyStartedError',\n * if the workflow's execution history already includes a record of the event starting.\n **/\n RecordActivityTaskStartedResponse RecordActivityTaskStarted(1: RecordActivityTaskStartedRequest addRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: EventAlreadyStartedError eventAlreadyStartedError,\n 4: shared.EntityNotExistsError entityNotExistError,\n 5: ShardOwnershipLostError shardOwnershipLostError,\n 6: shared.DomainNotActiveError domainNotActiveError,\n 7: shared.LimitExceededError limitExceededError,\n 8: shared.ServiceBusyError serviceBusyError,\n 9: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RespondDecisionTaskCompleted is called by application worker to complete a DecisionTask handed as a result of\n * 'PollForDecisionTask' API call. Completing a DecisionTask will result in new events for the workflow execution and\n * potentially new ActivityTask being created for corresponding decisions. It will also create a DecisionTaskCompleted\n * event in the history for that session. Use the 'taskToken' provided as response of PollForDecisionTask API call\n * for completing the DecisionTask.\n **/\n RespondDecisionTaskCompletedResponse RespondDecisionTaskCompleted(1: RespondDecisionTaskCompletedRequest completeRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RespondDecisionTaskFailed is called by application worker to indicate failure. This results in\n * DecisionTaskFailedEvent written to the history and a new DecisionTask created. This API can be used by client to\n * either clear sticky tasklist or report ny panics during DecisionTask processing.\n **/\n void RespondDecisionTaskFailed(1: RespondDecisionTaskFailedRequest failedRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RecordActivityTaskHeartbeat is called by application worker while it is processing an ActivityTask. If worker fails\n * to heartbeat within 'heartbeatTimeoutSeconds' interval for the ActivityTask, then it will be marked as timedout and\n * 'ActivityTaskTimedOut' event will be written to the workflow history. Calling 'RecordActivityTaskHeartbeat' will\n * fail with 'EntityNotExistsError' in such situations. Use the 'taskToken' provided as response of\n * PollForActivityTask API call for heartbeating.\n **/\n shared.RecordActivityTaskHeartbeatResponse RecordActivityTaskHeartbeat(1: RecordActivityTaskHeartbeatRequest heartbeatRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RespondActivityTaskCompleted is called by application worker when it is done processing an ActivityTask. It will\n * result in a new 'ActivityTaskCompleted' event being written to the workflow history and a new DecisionTask\n * created for the workflow so new decisions could be made. Use the 'taskToken' provided as response of\n * PollForActivityTask API call for completion. It fails with 'EntityNotExistsError' if the taskToken is not valid\n * anymore due to activity timeout.\n **/\n void RespondActivityTaskCompleted(1: RespondActivityTaskCompletedRequest completeRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RespondActivityTaskFailed is called by application worker when it is done processing an ActivityTask. It will\n * result in a new 'ActivityTaskFailed' event being written to the workflow history and a new DecisionTask\n * created for the workflow instance so new decisions could be made. Use the 'taskToken' provided as response of\n * PollForActivityTask API call for completion. It fails with 'EntityNotExistsError' if the taskToken is not valid\n * anymore due to activity timeout.\n **/\n void RespondActivityTaskFailed(1: RespondActivityTaskFailedRequest failRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RespondActivityTaskCanceled is called by application worker when it is successfully canceled an ActivityTask. It will\n * result in a new 'ActivityTaskCanceled' event being written to the workflow history and a new DecisionTask\n * created for the workflow instance so new decisions could be made. Use the 'taskToken' provided as response of\n * PollForActivityTask API call for completion. It fails with 'EntityNotExistsError' if the taskToken is not valid\n * anymore due to activity timeout.\n **/\n void RespondActivityTaskCanceled(1: RespondActivityTaskCanceledRequest canceledRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * SignalWorkflowExecution is used to send a signal event to running workflow execution. This results in\n * WorkflowExecutionSignaled event recorded in the history and a decision task being created for the execution.\n **/\n void SignalWorkflowExecution(1: SignalWorkflowExecutionRequest signalRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.LimitExceededError limitExceededError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * SignalWithStartWorkflowExecution is used to ensure sending a signal event to a workflow execution.\n * If workflow is running, this results in WorkflowExecutionSignaled event recorded in the history\n * and a decision task being created for the execution.\n * If workflow is not running or not found, it will first try start workflow with given WorkflowIDResuePolicy,\n * and record WorkflowExecutionStarted and WorkflowExecutionSignaled event in case of success.\n * It will return `WorkflowExecutionAlreadyStartedError` if start workflow failed with given policy.\n **/\n shared.StartWorkflowExecutionResponse SignalWithStartWorkflowExecution(1: SignalWithStartWorkflowExecutionRequest signalWithStartRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: ShardOwnershipLostError shardOwnershipLostError,\n 4: shared.DomainNotActiveError domainNotActiveError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.WorkflowExecutionAlreadyStartedError workflowAlreadyStartedError,\n )\n\n /**\n * RemoveSignalMutableState is used to remove a signal request ID that was previously recorded. This is currently\n * used to clean execution info when signal decision finished.\n **/\n void RemoveSignalMutableState(1: RemoveSignalMutableStateRequest removeRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * TerminateWorkflowExecution terminates an existing workflow execution by recording WorkflowExecutionTerminated event\n * in the history and immediately terminating the execution instance.\n **/\n void TerminateWorkflowExecution(1: TerminateWorkflowExecutionRequest terminateRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * ResetWorkflowExecution reset an existing workflow execution by a firstEventID of a existing event batch\n * in the history and immediately terminating the current execution instance.\n * After reset, the history will grow from nextFirstEventID.\n **/\n shared.ResetWorkflowExecutionResponse ResetWorkflowExecution(1: ResetWorkflowExecutionRequest resetRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * RequestCancelWorkflowExecution is called by application worker when it wants to request cancellation of a workflow instance.\n * It will result in a new 'WorkflowExecutionCancelRequested' event being written to the workflow history and a new DecisionTask\n * created for the workflow instance so new decisions could be made. It fails with\n * 'WorkflowExecutionAlreadyCompletedError' if the workflow is not valid\n * anymore due to completion or with 'EntityNotExistsError' if worfklow doesn't exist.\n **/\n void RequestCancelWorkflowExecution(1: RequestCancelWorkflowExecutionRequest cancelRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.CancellationAlreadyRequestedError cancellationAlreadyRequestedError,\n 6: shared.DomainNotActiveError domainNotActiveError,\n 7: shared.LimitExceededError limitExceededError,\n 8: shared.ServiceBusyError serviceBusyError,\n 10: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * ScheduleDecisionTask is used for creating a decision task for already started workflow execution. This is mainly\n * used by transfer queue processor during the processing of StartChildWorkflowExecution task, where it first starts\n * child execution without creating the decision task and then calls this API after updating the mutable state of\n * parent execution.\n **/\n void ScheduleDecisionTask(1: ScheduleDecisionTaskRequest scheduleRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RecordChildExecutionCompleted is used for reporting the completion of child workflow execution to parent.\n * This is mainly called by transfer queue processor during the processing of DeleteExecution task.\n **/\n void RecordChildExecutionCompleted(1: RecordChildExecutionCompletedRequest completionRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * DescribeWorkflowExecution returns information about the specified workflow execution.\n **/\n shared.DescribeWorkflowExecutionResponse DescribeWorkflowExecution(1: DescribeWorkflowExecutionRequest describeRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n )\n\n void ReplicateEventsV2(1: ReplicateEventsV2Request replicateV2Request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.RetryTaskV2Error retryTaskError,\n 7: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * SyncShardStatus sync the status between shards\n **/\n void SyncShardStatus(1: SyncShardStatusRequest syncShardStatusRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * SyncActivity sync the activity status\n **/\n void SyncActivity(1: SyncActivityRequest syncActivityRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.ServiceBusyError serviceBusyError,\n 7: shared.RetryTaskV2Error retryTaskV2Error,\n )\n\n /**\n * DescribeMutableState returns information about the internal states of workflow mutable state.\n **/\n DescribeMutableStateResponse DescribeMutableState(1: DescribeMutableStateRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.AccessDeniedError accessDeniedError,\n 5: ShardOwnershipLostError shardOwnershipLostError,\n 6: shared.LimitExceededError limitExceededError,\n )\n\n /**\n * DescribeHistoryHost returns information about the internal states of a history host\n **/\n shared.DescribeHistoryHostResponse DescribeHistoryHost(1: shared.DescribeHistoryHostRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.AccessDeniedError accessDeniedError,\n )\n\n /**\n * CloseShard close the shard\n **/\n void CloseShard(1: shared.CloseShardRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.AccessDeniedError accessDeniedError,\n )\n\n /**\n * RemoveTask remove task based on type, taskid, shardid\n **/\n void RemoveTask(1: shared.RemoveTaskRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.AccessDeniedError accessDeniedError,\n )\n\n /**\n * ResetQueue reset processing queue state based on cluster name and type\n **/\n void ResetQueue(1: shared.ResetQueueRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.AccessDeniedError accessDeniedError,\n )\n\n /**\n * DescribeQueue return queue states based on cluster name and type\n **/\n shared.DescribeQueueResponse DescribeQueue(1: shared.DescribeQueueRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.AccessDeniedError accessDeniedError,\n )\n\n /**\n * GetReplicationMessages return replication messages based on the read level\n **/\n replicator.GetReplicationMessagesResponse GetReplicationMessages(1: replicator.GetReplicationMessagesRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.LimitExceededError limitExceededError,\n 4: shared.ServiceBusyError serviceBusyError,\n 5: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * GetDLQReplicationMessages return replication messages based on dlq info\n **/\n replicator.GetDLQReplicationMessagesResponse GetDLQReplicationMessages(1: replicator.GetDLQReplicationMessagesRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: shared.EntityNotExistsError entityNotExistError,\n )\n\n /**\n * QueryWorkflow returns query result for a specified workflow execution\n **/\n QueryWorkflowResponse QueryWorkflow(1: QueryWorkflowRequest queryRequest)\n\tthrows (\n\t 1: shared.BadRequestError badRequestError,\n\t 2: shared.InternalServiceError internalServiceError,\n\t 3: shared.EntityNotExistsError entityNotExistError,\n\t 4: shared.QueryFailedError queryFailedError,\n\t 5: shared.LimitExceededError limitExceededError,\n\t 6: shared.ServiceBusyError serviceBusyError,\n\t 7: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n\t)\n\n /**\n * ReapplyEvents applies stale events to the current workflow and current run\n **/\n void ReapplyEvents(1: ReapplyEventsRequest reapplyEventsRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.DomainNotActiveError domainNotActiveError,\n 4: shared.LimitExceededError limitExceededError,\n 5: shared.ServiceBusyError serviceBusyError,\n 6: ShardOwnershipLostError shardOwnershipLostError,\n 7: shared.EntityNotExistsError entityNotExistError,\n )\n\n /**\n * RefreshWorkflowTasks refreshes all tasks of a workflow\n **/\n void RefreshWorkflowTasks(1: RefreshWorkflowTasksRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.DomainNotActiveError domainNotActiveError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.ServiceBusyError serviceBusyError,\n 6: shared.EntityNotExistsError entityNotExistError,\n )\n\n /**\n * ReadDLQMessages returns messages from DLQ\n **/\n replicator.ReadDLQMessagesResponse ReadDLQMessages(1: replicator.ReadDLQMessagesRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: shared.EntityNotExistsError entityNotExistError,\n 5: ShardOwnershipLostError shardOwnershipLostError,\n )\n\n /**\n * PurgeDLQMessages purges messages from DLQ\n **/\n void PurgeDLQMessages(1: replicator.PurgeDLQMessagesRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: shared.EntityNotExistsError entityNotExistError,\n 5: ShardOwnershipLostError shardOwnershipLostError,\n )\n\n /**\n * MergeDLQMessages merges messages from DLQ\n **/\n replicator.MergeDLQMessagesResponse MergeDLQMessages(1: replicator.MergeDLQMessagesRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: shared.EntityNotExistsError entityNotExistError,\n 5: ShardOwnershipLostError shardOwnershipLostError,\n )\n\n /**\n * NotifyFailoverMarkers sends failover marker to the failover coordinator\n **/\n void NotifyFailoverMarkers(1: NotifyFailoverMarkersRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * GetCrossClusterTasks fetches cross cluster tasks\n **/\n shared.GetCrossClusterTasksResponse GetCrossClusterTasks(1: shared.GetCrossClusterTasksRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * RespondCrossClusterTasksCompleted responds the result of processing cross cluster tasks\n **/\n shared.RespondCrossClusterTasksCompletedResponse RespondCrossClusterTasksCompleted(1: shared.RespondCrossClusterTasksCompletedRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n )\n\n /**\n * GetFailoverInfo responds the failover info about an on-going graceful failover\n **/\n GetFailoverInfoResponse GetFailoverInfo(1: GetFailoverInfoRequest request)\n throws (\n 1: shared.InternalServiceError internalServiceError,\n 2: shared.ServiceBusyError serviceBusyError,\n 3: ShardOwnershipLostError shardOwnershipLostError,\n 4: shared.EntityNotExistsError entityNotExistError,\n )\n\n /**\n * RatelimitUpdate pushes global-ratelimiting data to aggregating hosts,\n * and returns data describing how to update the caller's ratelimits.\n *\n * For more details, see github.com/uber/cadence/common/quotas/global documentation.\n *\n * Request and response structures are intentionally loosely defined, to allow plugging\n * in externally-defined algorithms without changing protocol-level details.\n **/\n RatelimitUpdateResponse RatelimitUpdate(1: RatelimitUpdateRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n )\n}\n" // HistoryService_CloseShard_Args represents the arguments for the HistoryService.CloseShard function. // diff --git a/.gen/go/matching/matching.go b/.gen/go/matching/matching.go index 7c61ee6e66b..93ac36e01a8 100644 --- a/.gen/go/matching/matching.go +++ b/.gen/go/matching/matching.go @@ -4289,6 +4289,7 @@ type PollForDecisionTaskResponse struct { StartedTimestamp *int64 `json:"startedTimestamp,omitempty"` Queries map[string]*shared.WorkflowQuery `json:"queries,omitempty"` TotalHistoryBytes *int64 `json:"totalHistoryBytes,omitempty"` + AutoConfigHint *shared.AutoConfigHint `json:"autoConfigHint,omitempty"` } type _Map_String_WorkflowQuery_MapItemList map[string]*shared.WorkflowQuery @@ -4346,7 +4347,7 @@ func (_Map_String_WorkflowQuery_MapItemList) Close() {} // } func (v *PollForDecisionTaskResponse) ToWire() (wire.Value, error) { var ( - fields [18]wire.Field + fields [19]wire.Field i int = 0 w wire.Value err error @@ -4496,6 +4497,14 @@ func (v *PollForDecisionTaskResponse) ToWire() (wire.Value, error) { fields[i] = wire.Field{ID: 160, Value: w} i++ } + if v.AutoConfigHint != nil { + w, err = v.AutoConfigHint.ToWire() + if err != nil { + return w, err + } + fields[i] = wire.Field{ID: 170, Value: w} + i++ + } return wire.NewValueStruct(wire.Struct{Fields: fields[:i]}), nil } @@ -4540,6 +4549,12 @@ func _Map_String_WorkflowQuery_Read(m wire.MapItemList) (map[string]*shared.Work return o, err } +func _AutoConfigHint_Read(w wire.Value) (*shared.AutoConfigHint, error) { + var v shared.AutoConfigHint + err := v.FromWire(w) + return &v, err +} + // FromWire deserializes a PollForDecisionTaskResponse struct from its Thrift-level // representation. The Thrift-level representation may be obtained // from a ThriftRW protocol implementation. @@ -4725,6 +4740,14 @@ func (v *PollForDecisionTaskResponse) FromWire(w wire.Value) error { return err } + } + case 170: + if field.Value.Type() == wire.TStruct { + v.AutoConfigHint, err = _AutoConfigHint_Read(field.Value) + if err != nil { + return err + } + } } } @@ -4983,6 +5006,18 @@ func (v *PollForDecisionTaskResponse) Encode(sw stream.Writer) error { } } + if v.AutoConfigHint != nil { + if err := sw.WriteFieldBegin(stream.FieldHeader{ID: 170, Type: wire.TStruct}); err != nil { + return err + } + if err := v.AutoConfigHint.Encode(sw); err != nil { + return err + } + if err := sw.WriteFieldEnd(); err != nil { + return err + } + } + return sw.WriteStructEnd() } @@ -5038,6 +5073,12 @@ func _Map_String_WorkflowQuery_Decode(sr stream.Reader) (map[string]*shared.Work return o, err } +func _AutoConfigHint_Decode(sr stream.Reader) (*shared.AutoConfigHint, error) { + var v shared.AutoConfigHint + err := v.Decode(sr) + return &v, err +} + // Decode deserializes a PollForDecisionTaskResponse struct directly from its Thrift-level // representation, without going through an intemediary type. // @@ -5184,6 +5225,12 @@ func (v *PollForDecisionTaskResponse) Decode(sr stream.Reader) error { return err } + case fh.ID == 170 && fh.Type == wire.TStruct: + v.AutoConfigHint, err = _AutoConfigHint_Decode(sr) + if err != nil { + return err + } + default: if err := sr.Skip(fh.Type); err != nil { return err @@ -5213,7 +5260,7 @@ func (v *PollForDecisionTaskResponse) String() string { return "" } - var fields [18]string + var fields [19]string i := 0 if v.TaskToken != nil { fields[i] = fmt.Sprintf("TaskToken: %v", v.TaskToken) @@ -5287,6 +5334,10 @@ func (v *PollForDecisionTaskResponse) String() string { fields[i] = fmt.Sprintf("TotalHistoryBytes: %v", *(v.TotalHistoryBytes)) i++ } + if v.AutoConfigHint != nil { + fields[i] = fmt.Sprintf("AutoConfigHint: %v", v.AutoConfigHint) + i++ + } return fmt.Sprintf("PollForDecisionTaskResponse{%v}", strings.Join(fields[:i], ", ")) } @@ -5382,6 +5433,9 @@ func (v *PollForDecisionTaskResponse) Equals(rhs *PollForDecisionTaskResponse) b if !_I64_EqualsPtr(v.TotalHistoryBytes, rhs.TotalHistoryBytes) { return false } + if !((v.AutoConfigHint == nil && rhs.AutoConfigHint == nil) || (v.AutoConfigHint != nil && rhs.AutoConfigHint != nil && v.AutoConfigHint.Equals(rhs.AutoConfigHint))) { + return false + } return true } @@ -5457,6 +5511,9 @@ func (v *PollForDecisionTaskResponse) MarshalLogObject(enc zapcore.ObjectEncoder if v.TotalHistoryBytes != nil { enc.AddInt64("totalHistoryBytes", *v.TotalHistoryBytes) } + if v.AutoConfigHint != nil { + err = multierr.Append(err, enc.AddObject("autoConfigHint", v.AutoConfigHint)) + } return err } @@ -5730,6 +5787,21 @@ func (v *PollForDecisionTaskResponse) IsSetTotalHistoryBytes() bool { return v != nil && v.TotalHistoryBytes != nil } +// GetAutoConfigHint returns the value of AutoConfigHint if it is set or its +// zero value if it is unset. +func (v *PollForDecisionTaskResponse) GetAutoConfigHint() (o *shared.AutoConfigHint) { + if v != nil && v.AutoConfigHint != nil { + return v.AutoConfigHint + } + + return +} + +// IsSetAutoConfigHint returns true if AutoConfigHint is not nil. +func (v *PollForDecisionTaskResponse) IsSetAutoConfigHint() bool { + return v != nil && v.AutoConfigHint != nil +} + type QueryWorkflowRequest struct { DomainUUID *string `json:"domainUUID,omitempty"` TaskList *shared.TaskList `json:"taskList,omitempty"` @@ -6746,14 +6818,14 @@ var ThriftModule = &thriftreflect.ThriftModule{ Name: "matching", Package: "github.com/uber/cadence/.gen/go/matching", FilePath: "matching.thrift", - SHA1: "783f78afea40b3b610396c5ec94ec78f490a3f4c", + SHA1: "e7db050ae64980b33e3f8ed3f6a3bba3d63174b3", Includes: []*thriftreflect.ThriftModule{ shared.ThriftModule, }, Raw: rawIDL, } -const rawIDL = "// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\ninclude \"shared.thrift\"\n\nnamespace java com.uber.cadence.matching\n\n// TaskSource is the source from which a task was produced\nenum TaskSource {\n HISTORY, // Task produced by history service\n DB_BACKLOG // Task produced from matching db backlog\n}\n\nstruct PollForDecisionTaskRequest {\n 10: optional string domainUUID\n 15: optional string pollerID\n 20: optional shared.PollForDecisionTaskRequest pollRequest\n 30: optional string forwardedFrom\n 40: optional string isolationGroup\n}\n\nstruct PollForDecisionTaskResponse {\n 10: optional binary taskToken\n 20: optional shared.WorkflowExecution workflowExecution\n 30: optional shared.WorkflowType workflowType\n 40: optional i64 (js.type = \"Long\") previousStartedEventId\n 50: optional i64 (js.type = \"Long\") startedEventId\n 51: optional i64 (js.type = \"Long\") attempt\n 60: optional i64 (js.type = \"Long\") nextEventId\n 65: optional i64 (js.type = \"Long\") backlogCountHint\n 70: optional bool stickyExecutionEnabled\n 80: optional shared.WorkflowQuery query\n 90: optional shared.TransientDecisionInfo decisionInfo\n 100: optional shared.TaskList WorkflowExecutionTaskList\n 110: optional i32 eventStoreVersion\n 120: optional binary branchToken\n 130: optional i64 (js.type = \"Long\") scheduledTimestamp\n 140: optional i64 (js.type = \"Long\") startedTimestamp\n 150: optional map queries\n 160: optional i64 (js.type = \"Long\") totalHistoryBytes\n}\n\nstruct PollForActivityTaskRequest {\n 10: optional string domainUUID\n 15: optional string pollerID\n 20: optional shared.PollForActivityTaskRequest pollRequest\n 30: optional string forwardedFrom\n 40: optional string isolationGroup\n}\n\nstruct AddDecisionTaskRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution execution\n 30: optional shared.TaskList taskList\n 40: optional i64 (js.type = \"Long\") scheduleId\n 50: optional i32 scheduleToStartTimeoutSeconds\n 59: optional TaskSource source\n 60: optional string forwardedFrom\n 70: optional map partitionConfig\n}\n\nstruct AddActivityTaskRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution execution\n 30: optional string sourceDomainUUID\n 40: optional shared.TaskList taskList\n 50: optional i64 (js.type = \"Long\") scheduleId\n 60: optional i32 scheduleToStartTimeoutSeconds\n 69: optional TaskSource source\n 70: optional string forwardedFrom\n 80: optional ActivityTaskDispatchInfo activityTaskDispatchInfo\n 90: optional map partitionConfig\n}\n\nstruct ActivityTaskDispatchInfo {\n 10: optional shared.HistoryEvent scheduledEvent\n 20: optional i64 (js.type = \"Long\") startedTimestamp\n 30: optional i64 (js.type = \"Long\") attempt\n 40: optional i64 (js.type = \"Long\") scheduledTimestampOfThisAttempt\n 50: optional i64 (js.type = \"Long\") scheduledTimestamp\n 60: optional binary heartbeatDetails\n 70: optional shared.WorkflowType workflowType\n 80: optional string workflowDomain\n}\n\nstruct QueryWorkflowRequest {\n 10: optional string domainUUID\n 20: optional shared.TaskList taskList\n 30: optional shared.QueryWorkflowRequest queryRequest\n 40: optional string forwardedFrom\n}\n\nstruct RespondQueryTaskCompletedRequest {\n 10: optional string domainUUID\n 20: optional shared.TaskList taskList\n 30: optional string taskID\n 40: optional shared.RespondQueryTaskCompletedRequest completedRequest\n}\n\nstruct CancelOutstandingPollRequest {\n 10: optional string domainUUID\n 20: optional i32 taskListType\n 30: optional shared.TaskList taskList\n 40: optional string pollerID\n}\n\nstruct DescribeTaskListRequest {\n 10: optional string domainUUID\n 20: optional shared.DescribeTaskListRequest descRequest\n}\n\nstruct ListTaskListPartitionsRequest {\n 10: optional string domain\n 20: optional shared.TaskList taskList\n}\n\n/**\n* MatchingService API is exposed to provide support for polling from long running applications.\n* Such applications are expected to have a worker which regularly polls for DecisionTask and ActivityTask. For each\n* DecisionTask, application is expected to process the history of events for that session and respond back with next\n* decisions. For each ActivityTask, application is expected to execute the actual logic for that task and respond back\n* with completion or failure.\n**/\nservice MatchingService {\n /**\n * PollForDecisionTask is called by frontend to process DecisionTask from a specific taskList. A\n * DecisionTask is dispatched to callers for active workflow executions, with pending decisions.\n **/\n PollForDecisionTaskResponse PollForDecisionTask(1: PollForDecisionTaskRequest pollRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.LimitExceededError limitExceededError,\n 4: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * PollForActivityTask is called by frontend to process ActivityTask from a specific taskList. ActivityTask\n * is dispatched to callers whenever a ScheduleTask decision is made for a workflow execution.\n **/\n shared.PollForActivityTaskResponse PollForActivityTask(1: PollForActivityTaskRequest pollRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.LimitExceededError limitExceededError,\n 4: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * AddDecisionTask is called by the history service when a decision task is scheduled, so that it can be dispatched\n * by the MatchingEngine.\n **/\n void AddDecisionTask(1: AddDecisionTaskRequest addRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: shared.LimitExceededError limitExceededError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.RemoteSyncMatchedError remoteSyncMatchedError,\n 7: shared.StickyWorkerUnavailableError stickyWorkerUnavailableError,\n 8: shared.TaskListNotOwnedByHostError taskListNotOwnedByHostError,\n )\n\n /**\n * AddActivityTask is called by the history service when a decision task is scheduled, so that it can be dispatched\n * by the MatchingEngine.\n **/\n void AddActivityTask(1: AddActivityTaskRequest addRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: shared.LimitExceededError limitExceededError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.RemoteSyncMatchedError remoteSyncMatchedError,\n 7: shared.TaskListNotOwnedByHostError taskListNotOwnedByHostError,\n )\n\n /**\n * QueryWorkflow is called by frontend to query a workflow.\n **/\n shared.QueryWorkflowResponse QueryWorkflow(1: QueryWorkflowRequest queryRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.QueryFailedError queryFailedError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.StickyWorkerUnavailableError stickyWorkerUnavailableError,\n 8: shared.TaskListNotOwnedByHostError taskListNotOwnedByHostError,\n )\n\n /**\n * RespondQueryTaskCompleted is called by frontend to respond query completed.\n **/\n void RespondQueryTaskCompleted(1: RespondQueryTaskCompletedRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.LimitExceededError limitExceededError,\n 5: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * CancelOutstandingPoll is called by frontend to unblock long polls on matching for zombie pollers.\n * Our rpc stack does not support context propagation, so when a client connection goes away frontend sees\n * cancellation of context for that handler, but any corresponding calls (long-poll) to matching service does not\n * see the cancellation propagated so it can unblock corresponding long-polls on its end. This results is tasks\n * being dispatched to zombie pollers in this situation. This API is added so everytime frontend makes a long-poll\n * api call to matching it passes in a pollerID and then calls this API when it detects client connection is closed\n * to unblock long polls for this poller and prevent tasks being sent to these zombie pollers.\n **/\n void CancelOutstandingPoll(1: CancelOutstandingPollRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: shared.TaskListNotOwnedByHostError taskListNotOwnedByHostError,\n )\n\n /**\n * DescribeTaskList returns information about the target tasklist, right now this API returns the\n * pollers which polled this tasklist in last few minutes.\n **/\n shared.DescribeTaskListResponse DescribeTaskList(1: DescribeTaskListRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.ServiceBusyError serviceBusyError,\n 5: shared.TaskListNotOwnedByHostError taskListNotOwnedByHostError,\n )\n\n /**\n * GetTaskListsByDomain returns the list of all the task lists for a domainName.\n **/\n shared.GetTaskListsByDomainResponse GetTaskListsByDomain(1: shared.GetTaskListsByDomainRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * ListTaskListPartitions returns a map of partitionKey and hostAddress for a taskList\n **/\n shared.ListTaskListPartitionsResponse ListTaskListPartitions(1: ListTaskListPartitionsRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 4: shared.ServiceBusyError serviceBusyError,\n )\n}\n" +const rawIDL = "// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\ninclude \"shared.thrift\"\n\nnamespace java com.uber.cadence.matching\n\n// TaskSource is the source from which a task was produced\nenum TaskSource {\n HISTORY, // Task produced by history service\n DB_BACKLOG // Task produced from matching db backlog\n}\n\nstruct PollForDecisionTaskRequest {\n 10: optional string domainUUID\n 15: optional string pollerID\n 20: optional shared.PollForDecisionTaskRequest pollRequest\n 30: optional string forwardedFrom\n 40: optional string isolationGroup\n}\n\nstruct PollForDecisionTaskResponse {\n 10: optional binary taskToken\n 20: optional shared.WorkflowExecution workflowExecution\n 30: optional shared.WorkflowType workflowType\n 40: optional i64 (js.type = \"Long\") previousStartedEventId\n 50: optional i64 (js.type = \"Long\") startedEventId\n 51: optional i64 (js.type = \"Long\") attempt\n 60: optional i64 (js.type = \"Long\") nextEventId\n 65: optional i64 (js.type = \"Long\") backlogCountHint\n 70: optional bool stickyExecutionEnabled\n 80: optional shared.WorkflowQuery query\n 90: optional shared.TransientDecisionInfo decisionInfo\n 100: optional shared.TaskList WorkflowExecutionTaskList\n 110: optional i32 eventStoreVersion\n 120: optional binary branchToken\n 130: optional i64 (js.type = \"Long\") scheduledTimestamp\n 140: optional i64 (js.type = \"Long\") startedTimestamp\n 150: optional map queries\n 160: optional i64 (js.type = \"Long\") totalHistoryBytes\n 170: optional shared.AutoConfigHint autoConfigHint\n}\n\nstruct PollForActivityTaskRequest {\n 10: optional string domainUUID\n 15: optional string pollerID\n 20: optional shared.PollForActivityTaskRequest pollRequest\n 30: optional string forwardedFrom\n 40: optional string isolationGroup\n}\n\nstruct AddDecisionTaskRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution execution\n 30: optional shared.TaskList taskList\n 40: optional i64 (js.type = \"Long\") scheduleId\n 50: optional i32 scheduleToStartTimeoutSeconds\n 59: optional TaskSource source\n 60: optional string forwardedFrom\n 70: optional map partitionConfig\n}\n\nstruct AddActivityTaskRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution execution\n 30: optional string sourceDomainUUID\n 40: optional shared.TaskList taskList\n 50: optional i64 (js.type = \"Long\") scheduleId\n 60: optional i32 scheduleToStartTimeoutSeconds\n 69: optional TaskSource source\n 70: optional string forwardedFrom\n 80: optional ActivityTaskDispatchInfo activityTaskDispatchInfo\n 90: optional map partitionConfig\n}\n\nstruct ActivityTaskDispatchInfo {\n 10: optional shared.HistoryEvent scheduledEvent\n 20: optional i64 (js.type = \"Long\") startedTimestamp\n 30: optional i64 (js.type = \"Long\") attempt\n 40: optional i64 (js.type = \"Long\") scheduledTimestampOfThisAttempt\n 50: optional i64 (js.type = \"Long\") scheduledTimestamp\n 60: optional binary heartbeatDetails\n 70: optional shared.WorkflowType workflowType\n 80: optional string workflowDomain\n}\n\nstruct QueryWorkflowRequest {\n 10: optional string domainUUID\n 20: optional shared.TaskList taskList\n 30: optional shared.QueryWorkflowRequest queryRequest\n 40: optional string forwardedFrom\n}\n\nstruct RespondQueryTaskCompletedRequest {\n 10: optional string domainUUID\n 20: optional shared.TaskList taskList\n 30: optional string taskID\n 40: optional shared.RespondQueryTaskCompletedRequest completedRequest\n}\n\nstruct CancelOutstandingPollRequest {\n 10: optional string domainUUID\n 20: optional i32 taskListType\n 30: optional shared.TaskList taskList\n 40: optional string pollerID\n}\n\nstruct DescribeTaskListRequest {\n 10: optional string domainUUID\n 20: optional shared.DescribeTaskListRequest descRequest\n}\n\nstruct ListTaskListPartitionsRequest {\n 10: optional string domain\n 20: optional shared.TaskList taskList\n}\n\n/**\n* MatchingService API is exposed to provide support for polling from long running applications.\n* Such applications are expected to have a worker which regularly polls for DecisionTask and ActivityTask. For each\n* DecisionTask, application is expected to process the history of events for that session and respond back with next\n* decisions. For each ActivityTask, application is expected to execute the actual logic for that task and respond back\n* with completion or failure.\n**/\nservice MatchingService {\n /**\n * PollForDecisionTask is called by frontend to process DecisionTask from a specific taskList. A\n * DecisionTask is dispatched to callers for active workflow executions, with pending decisions.\n **/\n PollForDecisionTaskResponse PollForDecisionTask(1: PollForDecisionTaskRequest pollRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.LimitExceededError limitExceededError,\n 4: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * PollForActivityTask is called by frontend to process ActivityTask from a specific taskList. ActivityTask\n * is dispatched to callers whenever a ScheduleTask decision is made for a workflow execution.\n **/\n shared.PollForActivityTaskResponse PollForActivityTask(1: PollForActivityTaskRequest pollRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.LimitExceededError limitExceededError,\n 4: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * AddDecisionTask is called by the history service when a decision task is scheduled, so that it can be dispatched\n * by the MatchingEngine.\n **/\n void AddDecisionTask(1: AddDecisionTaskRequest addRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: shared.LimitExceededError limitExceededError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.RemoteSyncMatchedError remoteSyncMatchedError,\n 7: shared.StickyWorkerUnavailableError stickyWorkerUnavailableError,\n 8: shared.TaskListNotOwnedByHostError taskListNotOwnedByHostError,\n )\n\n /**\n * AddActivityTask is called by the history service when a decision task is scheduled, so that it can be dispatched\n * by the MatchingEngine.\n **/\n void AddActivityTask(1: AddActivityTaskRequest addRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: shared.LimitExceededError limitExceededError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.RemoteSyncMatchedError remoteSyncMatchedError,\n 7: shared.TaskListNotOwnedByHostError taskListNotOwnedByHostError,\n )\n\n /**\n * QueryWorkflow is called by frontend to query a workflow.\n **/\n shared.QueryWorkflowResponse QueryWorkflow(1: QueryWorkflowRequest queryRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.QueryFailedError queryFailedError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.StickyWorkerUnavailableError stickyWorkerUnavailableError,\n 8: shared.TaskListNotOwnedByHostError taskListNotOwnedByHostError,\n )\n\n /**\n * RespondQueryTaskCompleted is called by frontend to respond query completed.\n **/\n void RespondQueryTaskCompleted(1: RespondQueryTaskCompletedRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.LimitExceededError limitExceededError,\n 5: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * CancelOutstandingPoll is called by frontend to unblock long polls on matching for zombie pollers.\n * Our rpc stack does not support context propagation, so when a client connection goes away frontend sees\n * cancellation of context for that handler, but any corresponding calls (long-poll) to matching service does not\n * see the cancellation propagated so it can unblock corresponding long-polls on its end. This results is tasks\n * being dispatched to zombie pollers in this situation. This API is added so everytime frontend makes a long-poll\n * api call to matching it passes in a pollerID and then calls this API when it detects client connection is closed\n * to unblock long polls for this poller and prevent tasks being sent to these zombie pollers.\n **/\n void CancelOutstandingPoll(1: CancelOutstandingPollRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: shared.TaskListNotOwnedByHostError taskListNotOwnedByHostError,\n )\n\n /**\n * DescribeTaskList returns information about the target tasklist, right now this API returns the\n * pollers which polled this tasklist in last few minutes.\n **/\n shared.DescribeTaskListResponse DescribeTaskList(1: DescribeTaskListRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.ServiceBusyError serviceBusyError,\n 5: shared.TaskListNotOwnedByHostError taskListNotOwnedByHostError,\n )\n\n /**\n * GetTaskListsByDomain returns the list of all the task lists for a domainName.\n **/\n shared.GetTaskListsByDomainResponse GetTaskListsByDomain(1: shared.GetTaskListsByDomainRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * ListTaskListPartitions returns a map of partitionKey and hostAddress for a taskList\n **/\n shared.ListTaskListPartitionsResponse ListTaskListPartitions(1: ListTaskListPartitionsRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 4: shared.ServiceBusyError serviceBusyError,\n )\n}\n" // MatchingService_AddActivityTask_Args represents the arguments for the MatchingService.AddActivityTask function. // diff --git a/.gen/go/shared/shared.go b/.gen/go/shared/shared.go index 51b762b8af4..b3b49389c0d 100644 --- a/.gen/go/shared/shared.go +++ b/.gen/go/shared/shared.go @@ -6749,6 +6749,280 @@ func (v *AsyncWorkflowConfiguration) IsSetQueueConfig() bool { return v != nil && v.QueueConfig != nil } +type AutoConfigHint struct { + EnableAutoConfig *bool `json:"enableAutoConfig,omitempty"` + PollerWaitTimeInMs *int64 `json:"pollerWaitTimeInMs,omitempty"` +} + +// ToWire translates a AutoConfigHint struct into a Thrift-level intermediate +// representation. This intermediate representation may be serialized +// into bytes using a ThriftRW protocol implementation. +// +// An error is returned if the struct or any of its fields failed to +// validate. +// +// x, err := v.ToWire() +// if err != nil { +// return err +// } +// +// if err := binaryProtocol.Encode(x, writer); err != nil { +// return err +// } +func (v *AutoConfigHint) ToWire() (wire.Value, error) { + var ( + fields [2]wire.Field + i int = 0 + w wire.Value + err error + ) + + if v.EnableAutoConfig != nil { + w, err = wire.NewValueBool(*(v.EnableAutoConfig)), error(nil) + if err != nil { + return w, err + } + fields[i] = wire.Field{ID: 10, Value: w} + i++ + } + if v.PollerWaitTimeInMs != nil { + w, err = wire.NewValueI64(*(v.PollerWaitTimeInMs)), error(nil) + if err != nil { + return w, err + } + fields[i] = wire.Field{ID: 20, Value: w} + i++ + } + + return wire.NewValueStruct(wire.Struct{Fields: fields[:i]}), nil +} + +// FromWire deserializes a AutoConfigHint struct from its Thrift-level +// representation. The Thrift-level representation may be obtained +// from a ThriftRW protocol implementation. +// +// An error is returned if we were unable to build a AutoConfigHint struct +// from the provided intermediate representation. +// +// x, err := binaryProtocol.Decode(reader, wire.TStruct) +// if err != nil { +// return nil, err +// } +// +// var v AutoConfigHint +// if err := v.FromWire(x); err != nil { +// return nil, err +// } +// return &v, nil +func (v *AutoConfigHint) FromWire(w wire.Value) error { + var err error + + for _, field := range w.GetStruct().Fields { + switch field.ID { + case 10: + if field.Value.Type() == wire.TBool { + var x bool + x, err = field.Value.GetBool(), error(nil) + v.EnableAutoConfig = &x + if err != nil { + return err + } + + } + case 20: + if field.Value.Type() == wire.TI64 { + var x int64 + x, err = field.Value.GetI64(), error(nil) + v.PollerWaitTimeInMs = &x + if err != nil { + return err + } + + } + } + } + + return nil +} + +// Encode serializes a AutoConfigHint struct directly into bytes, without going +// through an intermediary type. +// +// An error is returned if a AutoConfigHint struct could not be encoded. +func (v *AutoConfigHint) Encode(sw stream.Writer) error { + if err := sw.WriteStructBegin(); err != nil { + return err + } + + if v.EnableAutoConfig != nil { + if err := sw.WriteFieldBegin(stream.FieldHeader{ID: 10, Type: wire.TBool}); err != nil { + return err + } + if err := sw.WriteBool(*(v.EnableAutoConfig)); err != nil { + return err + } + if err := sw.WriteFieldEnd(); err != nil { + return err + } + } + + if v.PollerWaitTimeInMs != nil { + if err := sw.WriteFieldBegin(stream.FieldHeader{ID: 20, Type: wire.TI64}); err != nil { + return err + } + if err := sw.WriteInt64(*(v.PollerWaitTimeInMs)); err != nil { + return err + } + if err := sw.WriteFieldEnd(); err != nil { + return err + } + } + + return sw.WriteStructEnd() +} + +// Decode deserializes a AutoConfigHint struct directly from its Thrift-level +// representation, without going through an intemediary type. +// +// An error is returned if a AutoConfigHint struct could not be generated from the wire +// representation. +func (v *AutoConfigHint) Decode(sr stream.Reader) error { + + if err := sr.ReadStructBegin(); err != nil { + return err + } + + fh, ok, err := sr.ReadFieldBegin() + if err != nil { + return err + } + + for ok { + switch { + case fh.ID == 10 && fh.Type == wire.TBool: + var x bool + x, err = sr.ReadBool() + v.EnableAutoConfig = &x + if err != nil { + return err + } + + case fh.ID == 20 && fh.Type == wire.TI64: + var x int64 + x, err = sr.ReadInt64() + v.PollerWaitTimeInMs = &x + if err != nil { + return err + } + + default: + if err := sr.Skip(fh.Type); err != nil { + return err + } + } + + if err := sr.ReadFieldEnd(); err != nil { + return err + } + + if fh, ok, err = sr.ReadFieldBegin(); err != nil { + return err + } + } + + if err := sr.ReadStructEnd(); err != nil { + return err + } + + return nil +} + +// String returns a readable string representation of a AutoConfigHint +// struct. +func (v *AutoConfigHint) String() string { + if v == nil { + return "" + } + + var fields [2]string + i := 0 + if v.EnableAutoConfig != nil { + fields[i] = fmt.Sprintf("EnableAutoConfig: %v", *(v.EnableAutoConfig)) + i++ + } + if v.PollerWaitTimeInMs != nil { + fields[i] = fmt.Sprintf("PollerWaitTimeInMs: %v", *(v.PollerWaitTimeInMs)) + i++ + } + + return fmt.Sprintf("AutoConfigHint{%v}", strings.Join(fields[:i], ", ")) +} + +// Equals returns true if all the fields of this AutoConfigHint match the +// provided AutoConfigHint. +// +// This function performs a deep comparison. +func (v *AutoConfigHint) Equals(rhs *AutoConfigHint) bool { + if v == nil { + return rhs == nil + } else if rhs == nil { + return false + } + if !_Bool_EqualsPtr(v.EnableAutoConfig, rhs.EnableAutoConfig) { + return false + } + if !_I64_EqualsPtr(v.PollerWaitTimeInMs, rhs.PollerWaitTimeInMs) { + return false + } + + return true +} + +// MarshalLogObject implements zapcore.ObjectMarshaler, enabling +// fast logging of AutoConfigHint. +func (v *AutoConfigHint) MarshalLogObject(enc zapcore.ObjectEncoder) (err error) { + if v == nil { + return nil + } + if v.EnableAutoConfig != nil { + enc.AddBool("enableAutoConfig", *v.EnableAutoConfig) + } + if v.PollerWaitTimeInMs != nil { + enc.AddInt64("pollerWaitTimeInMs", *v.PollerWaitTimeInMs) + } + return err +} + +// GetEnableAutoConfig returns the value of EnableAutoConfig if it is set or its +// zero value if it is unset. +func (v *AutoConfigHint) GetEnableAutoConfig() (o bool) { + if v != nil && v.EnableAutoConfig != nil { + return *v.EnableAutoConfig + } + + return +} + +// IsSetEnableAutoConfig returns true if EnableAutoConfig is not nil. +func (v *AutoConfigHint) IsSetEnableAutoConfig() bool { + return v != nil && v.EnableAutoConfig != nil +} + +// GetPollerWaitTimeInMs returns the value of PollerWaitTimeInMs if it is set or its +// zero value if it is unset. +func (v *AutoConfigHint) GetPollerWaitTimeInMs() (o int64) { + if v != nil && v.PollerWaitTimeInMs != nil { + return *v.PollerWaitTimeInMs + } + + return +} + +// IsSetPollerWaitTimeInMs returns true if PollerWaitTimeInMs is not nil. +func (v *AutoConfigHint) IsSetPollerWaitTimeInMs() bool { + return v != nil && v.PollerWaitTimeInMs != nil +} + type BadBinaries struct { Binaries map[string]*BadBinaryInfo `json:"binaries,omitempty"` } @@ -57390,6 +57664,7 @@ type PollForActivityTaskResponse struct { WorkflowType *WorkflowType `json:"workflowType,omitempty"` WorkflowDomain *string `json:"workflowDomain,omitempty"` Header *Header `json:"header,omitempty"` + AutoConfigHint *AutoConfigHint `json:"autoConfigHint,omitempty"` } // ToWire translates a PollForActivityTaskResponse struct into a Thrift-level intermediate @@ -57409,7 +57684,7 @@ type PollForActivityTaskResponse struct { // } func (v *PollForActivityTaskResponse) ToWire() (wire.Value, error) { var ( - fields [16]wire.Field + fields [17]wire.Field i int = 0 w wire.Value err error @@ -57543,10 +57818,24 @@ func (v *PollForActivityTaskResponse) ToWire() (wire.Value, error) { fields[i] = wire.Field{ID: 170, Value: w} i++ } + if v.AutoConfigHint != nil { + w, err = v.AutoConfigHint.ToWire() + if err != nil { + return w, err + } + fields[i] = wire.Field{ID: 180, Value: w} + i++ + } return wire.NewValueStruct(wire.Struct{Fields: fields[:i]}), nil } +func _AutoConfigHint_Read(w wire.Value) (*AutoConfigHint, error) { + var v AutoConfigHint + err := v.FromWire(w) + return &v, err +} + // FromWire deserializes a PollForActivityTaskResponse struct from its Thrift-level // representation. The Thrift-level representation may be obtained // from a ThriftRW protocol implementation. @@ -57714,6 +58003,14 @@ func (v *PollForActivityTaskResponse) FromWire(w wire.Value) error { return err } + } + case 180: + if field.Value.Type() == wire.TStruct { + v.AutoConfigHint, err = _AutoConfigHint_Read(field.Value) + if err != nil { + return err + } + } } } @@ -57922,9 +58219,27 @@ func (v *PollForActivityTaskResponse) Encode(sw stream.Writer) error { } } + if v.AutoConfigHint != nil { + if err := sw.WriteFieldBegin(stream.FieldHeader{ID: 180, Type: wire.TStruct}); err != nil { + return err + } + if err := v.AutoConfigHint.Encode(sw); err != nil { + return err + } + if err := sw.WriteFieldEnd(); err != nil { + return err + } + } + return sw.WriteStructEnd() } +func _AutoConfigHint_Decode(sr stream.Reader) (*AutoConfigHint, error) { + var v AutoConfigHint + err := v.Decode(sr) + return &v, err +} + // Decode deserializes a PollForActivityTaskResponse struct directly from its Thrift-level // representation, without going through an intemediary type. // @@ -58057,6 +58372,12 @@ func (v *PollForActivityTaskResponse) Decode(sr stream.Reader) error { return err } + case fh.ID == 180 && fh.Type == wire.TStruct: + v.AutoConfigHint, err = _AutoConfigHint_Decode(sr) + if err != nil { + return err + } + default: if err := sr.Skip(fh.Type); err != nil { return err @@ -58086,7 +58407,7 @@ func (v *PollForActivityTaskResponse) String() string { return "" } - var fields [16]string + var fields [17]string i := 0 if v.TaskToken != nil { fields[i] = fmt.Sprintf("TaskToken: %v", v.TaskToken) @@ -58152,6 +58473,10 @@ func (v *PollForActivityTaskResponse) String() string { fields[i] = fmt.Sprintf("Header: %v", v.Header) i++ } + if v.AutoConfigHint != nil { + fields[i] = fmt.Sprintf("AutoConfigHint: %v", v.AutoConfigHint) + i++ + } return fmt.Sprintf("PollForActivityTaskResponse{%v}", strings.Join(fields[:i], ", ")) } @@ -58214,6 +58539,9 @@ func (v *PollForActivityTaskResponse) Equals(rhs *PollForActivityTaskResponse) b if !((v.Header == nil && rhs.Header == nil) || (v.Header != nil && rhs.Header != nil && v.Header.Equals(rhs.Header))) { return false } + if !((v.AutoConfigHint == nil && rhs.AutoConfigHint == nil) || (v.AutoConfigHint != nil && rhs.AutoConfigHint != nil && v.AutoConfigHint.Equals(rhs.AutoConfigHint))) { + return false + } return true } @@ -58272,6 +58600,9 @@ func (v *PollForActivityTaskResponse) MarshalLogObject(enc zapcore.ObjectEncoder if v.Header != nil { err = multierr.Append(err, enc.AddObject("header", v.Header)) } + if v.AutoConfigHint != nil { + err = multierr.Append(err, enc.AddObject("autoConfigHint", v.AutoConfigHint)) + } return err } @@ -58515,6 +58846,21 @@ func (v *PollForActivityTaskResponse) IsSetHeader() bool { return v != nil && v.Header != nil } +// GetAutoConfigHint returns the value of AutoConfigHint if it is set or its +// zero value if it is unset. +func (v *PollForActivityTaskResponse) GetAutoConfigHint() (o *AutoConfigHint) { + if v != nil && v.AutoConfigHint != nil { + return v.AutoConfigHint + } + + return +} + +// IsSetAutoConfigHint returns true if AutoConfigHint is not nil. +func (v *PollForActivityTaskResponse) IsSetAutoConfigHint() bool { + return v != nil && v.AutoConfigHint != nil +} + type PollForDecisionTaskRequest struct { Domain *string `json:"domain,omitempty"` TaskList *TaskList `json:"taskList,omitempty"` @@ -58930,6 +59276,7 @@ type PollForDecisionTaskResponse struct { Queries map[string]*WorkflowQuery `json:"queries,omitempty"` NextEventId *int64 `json:"nextEventId,omitempty"` TotalHistoryBytes *int64 `json:"totalHistoryBytes,omitempty"` + AutoConfigHint *AutoConfigHint `json:"autoConfigHint,omitempty"` } type _Map_String_WorkflowQuery_MapItemList map[string]*WorkflowQuery @@ -58987,7 +59334,7 @@ func (_Map_String_WorkflowQuery_MapItemList) Close() {} // } func (v *PollForDecisionTaskResponse) ToWire() (wire.Value, error) { var ( - fields [16]wire.Field + fields [17]wire.Field i int = 0 w wire.Value err error @@ -59121,6 +59468,14 @@ func (v *PollForDecisionTaskResponse) ToWire() (wire.Value, error) { fields[i] = wire.Field{ID: 140, Value: w} i++ } + if v.AutoConfigHint != nil { + w, err = v.AutoConfigHint.ToWire() + if err != nil { + return w, err + } + fields[i] = wire.Field{ID: 150, Value: w} + i++ + } return wire.NewValueStruct(wire.Struct{Fields: fields[:i]}), nil } @@ -59324,6 +59679,14 @@ func (v *PollForDecisionTaskResponse) FromWire(w wire.Value) error { return err } + } + case 150: + if field.Value.Type() == wire.TStruct { + v.AutoConfigHint, err = _AutoConfigHint_Read(field.Value) + if err != nil { + return err + } + } } } @@ -59558,6 +59921,18 @@ func (v *PollForDecisionTaskResponse) Encode(sw stream.Writer) error { } } + if v.AutoConfigHint != nil { + if err := sw.WriteFieldBegin(stream.FieldHeader{ID: 150, Type: wire.TStruct}); err != nil { + return err + } + if err := v.AutoConfigHint.Encode(sw); err != nil { + return err + } + if err := sw.WriteFieldEnd(); err != nil { + return err + } + } + return sw.WriteStructEnd() } @@ -59737,6 +60112,12 @@ func (v *PollForDecisionTaskResponse) Decode(sr stream.Reader) error { return err } + case fh.ID == 150 && fh.Type == wire.TStruct: + v.AutoConfigHint, err = _AutoConfigHint_Decode(sr) + if err != nil { + return err + } + default: if err := sr.Skip(fh.Type); err != nil { return err @@ -59766,7 +60147,7 @@ func (v *PollForDecisionTaskResponse) String() string { return "" } - var fields [16]string + var fields [17]string i := 0 if v.TaskToken != nil { fields[i] = fmt.Sprintf("TaskToken: %v", v.TaskToken) @@ -59832,6 +60213,10 @@ func (v *PollForDecisionTaskResponse) String() string { fields[i] = fmt.Sprintf("TotalHistoryBytes: %v", *(v.TotalHistoryBytes)) i++ } + if v.AutoConfigHint != nil { + fields[i] = fmt.Sprintf("AutoConfigHint: %v", v.AutoConfigHint) + i++ + } return fmt.Sprintf("PollForDecisionTaskResponse{%v}", strings.Join(fields[:i], ", ")) } @@ -59911,6 +60296,9 @@ func (v *PollForDecisionTaskResponse) Equals(rhs *PollForDecisionTaskResponse) b if !_I64_EqualsPtr(v.TotalHistoryBytes, rhs.TotalHistoryBytes) { return false } + if !((v.AutoConfigHint == nil && rhs.AutoConfigHint == nil) || (v.AutoConfigHint != nil && rhs.AutoConfigHint != nil && v.AutoConfigHint.Equals(rhs.AutoConfigHint))) { + return false + } return true } @@ -59980,6 +60368,9 @@ func (v *PollForDecisionTaskResponse) MarshalLogObject(enc zapcore.ObjectEncoder if v.TotalHistoryBytes != nil { enc.AddInt64("totalHistoryBytes", *v.TotalHistoryBytes) } + if v.AutoConfigHint != nil { + err = multierr.Append(err, enc.AddObject("autoConfigHint", v.AutoConfigHint)) + } return err } @@ -60223,6 +60614,21 @@ func (v *PollForDecisionTaskResponse) IsSetTotalHistoryBytes() bool { return v != nil && v.TotalHistoryBytes != nil } +// GetAutoConfigHint returns the value of AutoConfigHint if it is set or its +// zero value if it is unset. +func (v *PollForDecisionTaskResponse) GetAutoConfigHint() (o *AutoConfigHint) { + if v != nil && v.AutoConfigHint != nil { + return v.AutoConfigHint + } + + return +} + +// IsSetAutoConfigHint returns true if AutoConfigHint is not nil. +func (v *PollForDecisionTaskResponse) IsSetAutoConfigHint() bool { + return v != nil && v.AutoConfigHint != nil +} + type PollerInfo struct { LastAccessTime *int64 `json:"lastAccessTime,omitempty"` Identity *string `json:"identity,omitempty"` @@ -107638,8 +108044,8 @@ var ThriftModule = &thriftreflect.ThriftModule{ Name: "shared", Package: "github.com/uber/cadence/.gen/go/shared", FilePath: "shared.thrift", - SHA1: "480e79881fe0a4251d58530149d2b515c4831e25", + SHA1: "c24af4a97d8b3051d71619467e1f84024a8f8757", Raw: rawIDL, } -const rawIDL = "// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nnamespace java com.uber.cadence\n\nexception BadRequestError {\n 1: required string message\n}\n\nexception InternalServiceError {\n 1: required string message\n}\n\nexception InternalDataInconsistencyError {\n 1: required string message\n}\n\nexception DomainAlreadyExistsError {\n 1: required string message\n}\n\nexception WorkflowExecutionAlreadyStartedError {\n 10: optional string message\n 20: optional string startRequestId\n 30: optional string runId\n}\n\nexception WorkflowExecutionAlreadyCompletedError {\n 1: required string message\n}\n\nexception EntityNotExistsError {\n 1: required string message\n 2: optional string currentCluster\n 3: optional string activeCluster\n}\n\nexception ServiceBusyError {\n 1: required string message\n 2: optional string reason\n}\n\nexception CancellationAlreadyRequestedError {\n 1: required string message\n}\n\nexception QueryFailedError {\n 1: required string message\n}\n\nexception DomainNotActiveError {\n 1: required string message\n 2: required string domainName\n 3: required string currentCluster\n 4: required string activeCluster\n}\n\nexception LimitExceededError {\n 1: required string message\n}\n\nexception AccessDeniedError {\n 1: required string message\n}\n\nexception RetryTaskV2Error {\n 1: required string message\n 2: optional string domainId\n 3: optional string workflowId\n 4: optional string runId\n 5: optional i64 (js.type = \"Long\") startEventId\n 6: optional i64 (js.type = \"Long\") startEventVersion\n 7: optional i64 (js.type = \"Long\") endEventId\n 8: optional i64 (js.type = \"Long\") endEventVersion\n}\n\nexception ClientVersionNotSupportedError {\n 1: required string featureVersion\n 2: required string clientImpl\n 3: required string supportedVersions\n}\n\nexception FeatureNotEnabledError {\n 1: required string featureFlag\n}\n\nexception CurrentBranchChangedError {\n 10: required string message\n 20: required binary currentBranchToken\n}\n\nexception RemoteSyncMatchedError {\n 10: required string message\n}\n\nexception StickyWorkerUnavailableError {\n 1: required string message\n}\n\nexception TaskListNotOwnedByHostError {\n 1: required string ownedByIdentity\n 2: required string myIdentity\n 3: required string tasklistName\n}\n\nenum WorkflowIdReusePolicy {\n /*\n * allow start a workflow execution using the same workflow ID,\n * when workflow not running, and the last execution close state is in\n * [terminated, cancelled, timeouted, failed].\n */\n AllowDuplicateFailedOnly,\n /*\n * allow start a workflow execution using the same workflow ID,\n * when workflow not running.\n */\n AllowDuplicate,\n /*\n * do not allow start a workflow execution using the same workflow ID at all\n */\n RejectDuplicate,\n /*\n * if a workflow is running using the same workflow ID, terminate it and start a new one\n */\n TerminateIfRunning,\n}\n\nenum DomainStatus {\n REGISTERED,\n DEPRECATED,\n DELETED,\n}\n\nenum TimeoutType {\n START_TO_CLOSE,\n SCHEDULE_TO_START,\n SCHEDULE_TO_CLOSE,\n HEARTBEAT,\n}\n\nenum ParentClosePolicy {\n\tABANDON,\n\tREQUEST_CANCEL,\n\tTERMINATE,\n}\n\n\n// whenever this list of decision is changed\n// do change the mutableStateBuilder.go\n// function shouldBufferEvent\n// to make sure wo do the correct event ordering\nenum DecisionType {\n ScheduleActivityTask,\n RequestCancelActivityTask,\n StartTimer,\n CompleteWorkflowExecution,\n FailWorkflowExecution,\n CancelTimer,\n CancelWorkflowExecution,\n RequestCancelExternalWorkflowExecution,\n RecordMarker,\n ContinueAsNewWorkflowExecution,\n StartChildWorkflowExecution,\n SignalExternalWorkflowExecution,\n UpsertWorkflowSearchAttributes,\n}\n\nenum EventType {\n WorkflowExecutionStarted,\n WorkflowExecutionCompleted,\n WorkflowExecutionFailed,\n WorkflowExecutionTimedOut,\n DecisionTaskScheduled,\n DecisionTaskStarted,\n DecisionTaskCompleted,\n DecisionTaskTimedOut\n DecisionTaskFailed,\n ActivityTaskScheduled,\n ActivityTaskStarted,\n ActivityTaskCompleted,\n ActivityTaskFailed,\n ActivityTaskTimedOut,\n ActivityTaskCancelRequested,\n RequestCancelActivityTaskFailed,\n ActivityTaskCanceled,\n TimerStarted,\n TimerFired,\n CancelTimerFailed,\n TimerCanceled,\n WorkflowExecutionCancelRequested,\n WorkflowExecutionCanceled,\n RequestCancelExternalWorkflowExecutionInitiated,\n RequestCancelExternalWorkflowExecutionFailed,\n ExternalWorkflowExecutionCancelRequested,\n MarkerRecorded,\n WorkflowExecutionSignaled,\n WorkflowExecutionTerminated,\n WorkflowExecutionContinuedAsNew,\n StartChildWorkflowExecutionInitiated,\n StartChildWorkflowExecutionFailed,\n ChildWorkflowExecutionStarted,\n ChildWorkflowExecutionCompleted,\n ChildWorkflowExecutionFailed,\n ChildWorkflowExecutionCanceled,\n ChildWorkflowExecutionTimedOut,\n ChildWorkflowExecutionTerminated,\n SignalExternalWorkflowExecutionInitiated,\n SignalExternalWorkflowExecutionFailed,\n ExternalWorkflowExecutionSignaled,\n UpsertWorkflowSearchAttributes,\n}\n\nenum DecisionTaskFailedCause {\n UNHANDLED_DECISION,\n BAD_SCHEDULE_ACTIVITY_ATTRIBUTES,\n BAD_REQUEST_CANCEL_ACTIVITY_ATTRIBUTES,\n BAD_START_TIMER_ATTRIBUTES,\n BAD_CANCEL_TIMER_ATTRIBUTES,\n BAD_RECORD_MARKER_ATTRIBUTES,\n BAD_COMPLETE_WORKFLOW_EXECUTION_ATTRIBUTES,\n BAD_FAIL_WORKFLOW_EXECUTION_ATTRIBUTES,\n BAD_CANCEL_WORKFLOW_EXECUTION_ATTRIBUTES,\n BAD_REQUEST_CANCEL_EXTERNAL_WORKFLOW_EXECUTION_ATTRIBUTES,\n BAD_CONTINUE_AS_NEW_ATTRIBUTES,\n START_TIMER_DUPLICATE_ID,\n RESET_STICKY_TASKLIST,\n WORKFLOW_WORKER_UNHANDLED_FAILURE,\n BAD_SIGNAL_WORKFLOW_EXECUTION_ATTRIBUTES,\n BAD_START_CHILD_EXECUTION_ATTRIBUTES,\n FORCE_CLOSE_DECISION,\n FAILOVER_CLOSE_DECISION,\n BAD_SIGNAL_INPUT_SIZE,\n RESET_WORKFLOW,\n BAD_BINARY,\n SCHEDULE_ACTIVITY_DUPLICATE_ID,\n BAD_SEARCH_ATTRIBUTES,\n}\n\nenum DecisionTaskTimedOutCause {\n TIMEOUT,\n RESET,\n}\n\nenum CancelExternalWorkflowExecutionFailedCause {\n UNKNOWN_EXTERNAL_WORKFLOW_EXECUTION,\n WORKFLOW_ALREADY_COMPLETED,\n}\n\nenum SignalExternalWorkflowExecutionFailedCause {\n UNKNOWN_EXTERNAL_WORKFLOW_EXECUTION,\n WORKFLOW_ALREADY_COMPLETED,\n}\n\nenum ChildWorkflowExecutionFailedCause {\n WORKFLOW_ALREADY_RUNNING,\n}\n\n// TODO: when migrating to gRPC, add a running / none status,\n// currently, customer is using null / nil as an indication\n// that workflow is still running\nenum WorkflowExecutionCloseStatus {\n COMPLETED,\n FAILED,\n CANCELED,\n TERMINATED,\n CONTINUED_AS_NEW,\n TIMED_OUT,\n}\n\nenum QueryTaskCompletedType {\n COMPLETED,\n FAILED,\n}\n\nenum QueryResultType {\n ANSWERED,\n FAILED,\n}\n\nenum PendingActivityState {\n SCHEDULED,\n STARTED,\n CANCEL_REQUESTED,\n}\n\nenum PendingDecisionState {\n SCHEDULED,\n STARTED,\n}\n\nenum HistoryEventFilterType {\n ALL_EVENT,\n CLOSE_EVENT,\n}\n\nenum TaskListKind {\n NORMAL,\n STICKY,\n}\n\nenum ArchivalStatus {\n DISABLED,\n ENABLED,\n}\n\nenum IndexedValueType {\n STRING,\n KEYWORD,\n INT,\n DOUBLE,\n BOOL,\n DATETIME,\n}\n\nstruct Header {\n 10: optional map fields\n}\n\nstruct WorkflowType {\n 10: optional string name\n}\n\nstruct ActivityType {\n 10: optional string name\n}\n\nstruct TaskList {\n 10: optional string name\n 20: optional TaskListKind kind\n}\n\nenum EncodingType {\n ThriftRW,\n JSON,\n}\n\nenum QueryRejectCondition {\n // NOT_OPEN indicates that query should be rejected if workflow is not open\n NOT_OPEN\n // NOT_COMPLETED_CLEANLY indicates that query should be rejected if workflow did not complete cleanly\n NOT_COMPLETED_CLEANLY\n}\n\nenum QueryConsistencyLevel {\n // EVENTUAL indicates that query should be eventually consistent\n EVENTUAL\n // STRONG indicates that any events that came before query should be reflected in workflow state before running query\n STRONG\n}\n\nstruct DataBlob {\n 10: optional EncodingType EncodingType\n 20: optional binary Data\n}\n\nstruct TaskListMetadata {\n 10: optional double maxTasksPerSecond\n}\n\nstruct WorkflowExecution {\n 10: optional string workflowId\n 20: optional string runId\n}\n\nstruct Memo {\n 10: optional map fields\n}\n\nstruct SearchAttributes {\n 10: optional map indexedFields\n}\n\nstruct WorkerVersionInfo {\n 10: optional string impl\n 20: optional string featureVersion\n}\n\nstruct WorkflowExecutionInfo {\n 10: optional WorkflowExecution execution\n 20: optional WorkflowType type\n 30: optional i64 (js.type = \"Long\") startTime\n 40: optional i64 (js.type = \"Long\") closeTime\n 50: optional WorkflowExecutionCloseStatus closeStatus\n 60: optional i64 (js.type = \"Long\") historyLength\n 70: optional string parentDomainId\n 71: optional string parentDomainName\n 72: optional i64 parentInitatedId\n 80: optional WorkflowExecution parentExecution\n 90: optional i64 (js.type = \"Long\") executionTime\n 100: optional Memo memo\n 101: optional SearchAttributes searchAttributes\n 110: optional ResetPoints autoResetPoints\n 120: optional string taskList\n 130: optional bool isCron\n 140: optional i64 (js.type = \"Long\") updateTime\n 150: optional map partitionConfig\n}\n\nstruct WorkflowExecutionConfiguration {\n 10: optional TaskList taskList\n 20: optional i32 executionStartToCloseTimeoutSeconds\n 30: optional i32 taskStartToCloseTimeoutSeconds\n// 40: optional ChildPolicy childPolicy -- Removed but reserve the IDL order number\n}\n\nstruct TransientDecisionInfo {\n 10: optional HistoryEvent scheduledEvent\n 20: optional HistoryEvent startedEvent\n}\n\nstruct ScheduleActivityTaskDecisionAttributes {\n 10: optional string activityId\n 20: optional ActivityType activityType\n 25: optional string domain\n 30: optional TaskList taskList\n 40: optional binary input\n 45: optional i32 scheduleToCloseTimeoutSeconds\n 50: optional i32 scheduleToStartTimeoutSeconds\n 55: optional i32 startToCloseTimeoutSeconds\n 60: optional i32 heartbeatTimeoutSeconds\n 70: optional RetryPolicy retryPolicy\n 80: optional Header header\n 90: optional bool requestLocalDispatch\n}\n\nstruct ActivityLocalDispatchInfo{\n 10: optional string activityId\n 20: optional i64 (js.type = \"Long\") scheduledTimestamp\n 30: optional i64 (js.type = \"Long\") startedTimestamp\n 40: optional i64 (js.type = \"Long\") scheduledTimestampOfThisAttempt\n 50: optional binary taskToken\n}\n\nstruct RequestCancelActivityTaskDecisionAttributes {\n 10: optional string activityId\n}\n\nstruct StartTimerDecisionAttributes {\n 10: optional string timerId\n 20: optional i64 (js.type = \"Long\") startToFireTimeoutSeconds\n}\n\nstruct CompleteWorkflowExecutionDecisionAttributes {\n 10: optional binary result\n}\n\nstruct FailWorkflowExecutionDecisionAttributes {\n 10: optional string reason\n 20: optional binary details\n}\n\nstruct CancelTimerDecisionAttributes {\n 10: optional string timerId\n}\n\nstruct CancelWorkflowExecutionDecisionAttributes {\n 10: optional binary details\n}\n\nstruct RequestCancelExternalWorkflowExecutionDecisionAttributes {\n 10: optional string domain\n 20: optional string workflowId\n 30: optional string runId\n 40: optional binary control\n 50: optional bool childWorkflowOnly\n}\n\nstruct SignalExternalWorkflowExecutionDecisionAttributes {\n 10: optional string domain\n 20: optional WorkflowExecution execution\n 30: optional string signalName\n 40: optional binary input\n 50: optional binary control\n 60: optional bool childWorkflowOnly\n}\n\nstruct UpsertWorkflowSearchAttributesDecisionAttributes {\n 10: optional SearchAttributes searchAttributes\n}\n\nstruct RecordMarkerDecisionAttributes {\n 10: optional string markerName\n 20: optional binary details\n 30: optional Header header\n}\n\nstruct ContinueAsNewWorkflowExecutionDecisionAttributes {\n 10: optional WorkflowType workflowType\n 20: optional TaskList taskList\n 30: optional binary input\n 40: optional i32 executionStartToCloseTimeoutSeconds\n 50: optional i32 taskStartToCloseTimeoutSeconds\n 60: optional i32 backoffStartIntervalInSeconds\n 70: optional RetryPolicy retryPolicy\n 80: optional ContinueAsNewInitiator initiator\n 90: optional string failureReason\n 100: optional binary failureDetails\n 110: optional binary lastCompletionResult\n 120: optional string cronSchedule\n 130: optional Header header\n 140: optional Memo memo\n 150: optional SearchAttributes searchAttributes\n 160: optional i32 jitterStartSeconds\n}\n\nstruct StartChildWorkflowExecutionDecisionAttributes {\n 10: optional string domain\n 20: optional string workflowId\n 30: optional WorkflowType workflowType\n 40: optional TaskList taskList\n 50: optional binary input\n 60: optional i32 executionStartToCloseTimeoutSeconds\n 70: optional i32 taskStartToCloseTimeoutSeconds\n// 80: optional ChildPolicy childPolicy -- Removed but reserve the IDL order number\n 81: optional ParentClosePolicy parentClosePolicy\n 90: optional binary control\n 100: optional WorkflowIdReusePolicy workflowIdReusePolicy\n 110: optional RetryPolicy retryPolicy\n 120: optional string cronSchedule\n 130: optional Header header\n 140: optional Memo memo\n 150: optional SearchAttributes searchAttributes\n}\n\nstruct Decision {\n 10: optional DecisionType decisionType\n 20: optional ScheduleActivityTaskDecisionAttributes scheduleActivityTaskDecisionAttributes\n 25: optional StartTimerDecisionAttributes startTimerDecisionAttributes\n 30: optional CompleteWorkflowExecutionDecisionAttributes completeWorkflowExecutionDecisionAttributes\n 35: optional FailWorkflowExecutionDecisionAttributes failWorkflowExecutionDecisionAttributes\n 40: optional RequestCancelActivityTaskDecisionAttributes requestCancelActivityTaskDecisionAttributes\n 50: optional CancelTimerDecisionAttributes cancelTimerDecisionAttributes\n 60: optional CancelWorkflowExecutionDecisionAttributes cancelWorkflowExecutionDecisionAttributes\n 70: optional RequestCancelExternalWorkflowExecutionDecisionAttributes requestCancelExternalWorkflowExecutionDecisionAttributes\n 80: optional RecordMarkerDecisionAttributes recordMarkerDecisionAttributes\n 90: optional ContinueAsNewWorkflowExecutionDecisionAttributes continueAsNewWorkflowExecutionDecisionAttributes\n 100: optional StartChildWorkflowExecutionDecisionAttributes startChildWorkflowExecutionDecisionAttributes\n 110: optional SignalExternalWorkflowExecutionDecisionAttributes signalExternalWorkflowExecutionDecisionAttributes\n 120: optional UpsertWorkflowSearchAttributesDecisionAttributes upsertWorkflowSearchAttributesDecisionAttributes\n}\n\nstruct WorkflowExecutionStartedEventAttributes {\n 10: optional WorkflowType workflowType\n 12: optional string parentWorkflowDomain\n 14: optional WorkflowExecution parentWorkflowExecution\n 16: optional i64 (js.type = \"Long\") parentInitiatedEventId\n 20: optional TaskList taskList\n 30: optional binary input\n 40: optional i32 executionStartToCloseTimeoutSeconds\n 50: optional i32 taskStartToCloseTimeoutSeconds\n// 52: optional ChildPolicy childPolicy -- Removed but reserve the IDL order number\n 54: optional string continuedExecutionRunId\n 55: optional ContinueAsNewInitiator initiator\n 56: optional string continuedFailureReason\n 57: optional binary continuedFailureDetails\n 58: optional binary lastCompletionResult\n 59: optional string originalExecutionRunId // This is the runID when the WorkflowExecutionStarted event is written\n 60: optional string identity\n 61: optional string firstExecutionRunId // This is the very first runID along the chain of ContinueAsNew and Reset.\n 62: optional i64 (js.type = \"Long\") firstScheduledTimeNano\n 70: optional RetryPolicy retryPolicy\n 80: optional i32 attempt\n 90: optional i64 (js.type = \"Long\") expirationTimestamp\n 100: optional string cronSchedule\n 110: optional i32 firstDecisionTaskBackoffSeconds\n 120: optional Memo memo\n 121: optional SearchAttributes searchAttributes\n 130: optional ResetPoints prevAutoResetPoints\n 140: optional Header header\n 150: optional map partitionConfig\n 160: optional string requestId\n}\n\nstruct ResetPoints{\n 10: optional list points\n}\n\n struct ResetPointInfo{\n 10: optional string binaryChecksum\n 20: optional string runId\n 30: optional i64 firstDecisionCompletedId\n 40: optional i64 (js.type = \"Long\") createdTimeNano\n 50: optional i64 (js.type = \"Long\") expiringTimeNano //the time that the run is deleted due to retention\n 60: optional bool resettable // false if the resset point has pending childWFs/reqCancels/signalExternals.\n}\n\nstruct WorkflowExecutionCompletedEventAttributes {\n 10: optional binary result\n 20: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n}\n\nstruct WorkflowExecutionFailedEventAttributes {\n 10: optional string reason\n 20: optional binary details\n 30: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n}\n\nstruct WorkflowExecutionTimedOutEventAttributes {\n 10: optional TimeoutType timeoutType\n}\n\nenum ContinueAsNewInitiator {\n Decider,\n RetryPolicy,\n CronSchedule,\n}\n\nstruct WorkflowExecutionContinuedAsNewEventAttributes {\n 10: optional string newExecutionRunId\n 20: optional WorkflowType workflowType\n 30: optional TaskList taskList\n 40: optional binary input\n 50: optional i32 executionStartToCloseTimeoutSeconds\n 60: optional i32 taskStartToCloseTimeoutSeconds\n 70: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 80: optional i32 backoffStartIntervalInSeconds\n 90: optional ContinueAsNewInitiator initiator\n 100: optional string failureReason\n 110: optional binary failureDetails\n 120: optional binary lastCompletionResult\n 130: optional Header header\n 140: optional Memo memo\n 150: optional SearchAttributes searchAttributes\n}\n\nstruct DecisionTaskScheduledEventAttributes {\n 10: optional TaskList taskList\n 20: optional i32 startToCloseTimeoutSeconds\n 30: optional i64 (js.type = \"Long\") attempt\n}\n\nstruct DecisionTaskStartedEventAttributes {\n 10: optional i64 (js.type = \"Long\") scheduledEventId\n 20: optional string identity\n 30: optional string requestId\n}\n\nstruct DecisionTaskCompletedEventAttributes {\n 10: optional binary executionContext\n 20: optional i64 (js.type = \"Long\") scheduledEventId\n 30: optional i64 (js.type = \"Long\") startedEventId\n 40: optional string identity\n 50: optional string binaryChecksum\n}\n\nstruct DecisionTaskTimedOutEventAttributes {\n 10: optional i64 (js.type = \"Long\") scheduledEventId\n 20: optional i64 (js.type = \"Long\") startedEventId\n 30: optional TimeoutType timeoutType\n // for reset workflow\n 40: optional string baseRunId\n 50: optional string newRunId\n 60: optional i64 (js.type = \"Long\") forkEventVersion\n 70: optional string reason\n 80: optional DecisionTaskTimedOutCause cause\n 90: optional string requestId\n}\n\nstruct DecisionTaskFailedEventAttributes {\n 10: optional i64 (js.type = \"Long\") scheduledEventId\n 20: optional i64 (js.type = \"Long\") startedEventId\n 30: optional DecisionTaskFailedCause cause\n 35: optional binary details\n 40: optional string identity\n 50: optional string reason\n // for reset workflow\n 60: optional string baseRunId\n 70: optional string newRunId\n 80: optional i64 (js.type = \"Long\") forkEventVersion\n 90: optional string binaryChecksum\n 100: optional string requestId\n}\n\nstruct ActivityTaskScheduledEventAttributes {\n 10: optional string activityId\n 20: optional ActivityType activityType\n 25: optional string domain\n 30: optional TaskList taskList\n 40: optional binary input\n 45: optional i32 scheduleToCloseTimeoutSeconds\n 50: optional i32 scheduleToStartTimeoutSeconds\n 55: optional i32 startToCloseTimeoutSeconds\n 60: optional i32 heartbeatTimeoutSeconds\n 90: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 110: optional RetryPolicy retryPolicy\n 120: optional Header header\n}\n\nstruct ActivityTaskStartedEventAttributes {\n 10: optional i64 (js.type = \"Long\") scheduledEventId\n 20: optional string identity\n 30: optional string requestId\n 40: optional i32 attempt\n 50: optional string lastFailureReason\n 60: optional binary lastFailureDetails\n}\n\nstruct ActivityTaskCompletedEventAttributes {\n 10: optional binary result\n 20: optional i64 (js.type = \"Long\") scheduledEventId\n 30: optional i64 (js.type = \"Long\") startedEventId\n 40: optional string identity\n}\n\nstruct ActivityTaskFailedEventAttributes {\n 10: optional string reason\n 20: optional binary details\n 30: optional i64 (js.type = \"Long\") scheduledEventId\n 40: optional i64 (js.type = \"Long\") startedEventId\n 50: optional string identity\n}\n\nstruct ActivityTaskTimedOutEventAttributes {\n 05: optional binary details\n 10: optional i64 (js.type = \"Long\") scheduledEventId\n 20: optional i64 (js.type = \"Long\") startedEventId\n 30: optional TimeoutType timeoutType\n // For retry activity, it may have a failure before timeout. It's important to keep those information for debug.\n // Client can also provide the info for making next decision\n 40: optional string lastFailureReason\n 50: optional binary lastFailureDetails\n}\n\nstruct ActivityTaskCancelRequestedEventAttributes {\n 10: optional string activityId\n 20: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n}\n\nstruct RequestCancelActivityTaskFailedEventAttributes{\n 10: optional string activityId\n 20: optional string cause\n 30: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n}\n\nstruct ActivityTaskCanceledEventAttributes {\n 10: optional binary details\n 20: optional i64 (js.type = \"Long\") latestCancelRequestedEventId\n 30: optional i64 (js.type = \"Long\") scheduledEventId\n 40: optional i64 (js.type = \"Long\") startedEventId\n 50: optional string identity\n}\n\nstruct TimerStartedEventAttributes {\n 10: optional string timerId\n 20: optional i64 (js.type = \"Long\") startToFireTimeoutSeconds\n 30: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n}\n\nstruct TimerFiredEventAttributes {\n 10: optional string timerId\n 20: optional i64 (js.type = \"Long\") startedEventId\n}\n\nstruct TimerCanceledEventAttributes {\n 10: optional string timerId\n 20: optional i64 (js.type = \"Long\") startedEventId\n 30: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 40: optional string identity\n}\n\nstruct CancelTimerFailedEventAttributes {\n 10: optional string timerId\n 20: optional string cause\n 30: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 40: optional string identity\n}\n\nstruct WorkflowExecutionCancelRequestedEventAttributes {\n 10: optional string cause\n 20: optional i64 (js.type = \"Long\") externalInitiatedEventId\n 30: optional WorkflowExecution externalWorkflowExecution\n 40: optional string identity\n 50: optional string requestId\n}\n\nstruct WorkflowExecutionCanceledEventAttributes {\n 10: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 20: optional binary details\n}\n\nstruct MarkerRecordedEventAttributes {\n 10: optional string markerName\n 20: optional binary details\n 30: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 40: optional Header header\n}\n\nstruct WorkflowExecutionSignaledEventAttributes {\n 10: optional string signalName\n 20: optional binary input\n 30: optional string identity\n 40: optional string requestId\n}\n\nstruct WorkflowExecutionTerminatedEventAttributes {\n 10: optional string reason\n 20: optional binary details\n 30: optional string identity\n}\n\nstruct RequestCancelExternalWorkflowExecutionInitiatedEventAttributes {\n 10: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 20: optional string domain\n 30: optional WorkflowExecution workflowExecution\n 40: optional binary control\n 50: optional bool childWorkflowOnly\n}\n\nstruct RequestCancelExternalWorkflowExecutionFailedEventAttributes {\n 10: optional CancelExternalWorkflowExecutionFailedCause cause\n 20: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 30: optional string domain\n 40: optional WorkflowExecution workflowExecution\n 50: optional i64 (js.type = \"Long\") initiatedEventId\n 60: optional binary control\n}\n\nstruct ExternalWorkflowExecutionCancelRequestedEventAttributes {\n 10: optional i64 (js.type = \"Long\") initiatedEventId\n 20: optional string domain\n 30: optional WorkflowExecution workflowExecution\n}\n\nstruct SignalExternalWorkflowExecutionInitiatedEventAttributes {\n 10: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 20: optional string domain\n 30: optional WorkflowExecution workflowExecution\n 40: optional string signalName\n 50: optional binary input\n 60: optional binary control\n 70: optional bool childWorkflowOnly\n}\n\nstruct SignalExternalWorkflowExecutionFailedEventAttributes {\n 10: optional SignalExternalWorkflowExecutionFailedCause cause\n 20: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 30: optional string domain\n 40: optional WorkflowExecution workflowExecution\n 50: optional i64 (js.type = \"Long\") initiatedEventId\n 60: optional binary control\n}\n\nstruct ExternalWorkflowExecutionSignaledEventAttributes {\n 10: optional i64 (js.type = \"Long\") initiatedEventId\n 20: optional string domain\n 30: optional WorkflowExecution workflowExecution\n 40: optional binary control\n}\n\nstruct UpsertWorkflowSearchAttributesEventAttributes {\n 10: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 20: optional SearchAttributes searchAttributes\n}\n\nstruct StartChildWorkflowExecutionInitiatedEventAttributes {\n 10: optional string domain\n 20: optional string workflowId\n 30: optional WorkflowType workflowType\n 40: optional TaskList taskList\n 50: optional binary input\n 60: optional i32 executionStartToCloseTimeoutSeconds\n 70: optional i32 taskStartToCloseTimeoutSeconds\n// 80: optional ChildPolicy childPolicy -- Removed but reserve the IDL order number\n 81: optional ParentClosePolicy parentClosePolicy\n 90: optional binary control\n 100: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 110: optional WorkflowIdReusePolicy workflowIdReusePolicy\n 120: optional RetryPolicy retryPolicy\n 130: optional string cronSchedule\n 140: optional Header header\n 150: optional Memo memo\n 160: optional SearchAttributes searchAttributes\n 170: optional i32 delayStartSeconds\n 180: optional i32 jitterStartSeconds\n 190: optional i64 (js.type = \"Long\") firstRunAtTimestamp\n}\n\nstruct StartChildWorkflowExecutionFailedEventAttributes {\n 10: optional string domain\n 20: optional string workflowId\n 30: optional WorkflowType workflowType\n 40: optional ChildWorkflowExecutionFailedCause cause\n 50: optional binary control\n 60: optional i64 (js.type = \"Long\") initiatedEventId\n 70: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n}\n\nstruct ChildWorkflowExecutionStartedEventAttributes {\n 10: optional string domain\n 20: optional i64 (js.type = \"Long\") initiatedEventId\n 30: optional WorkflowExecution workflowExecution\n 40: optional WorkflowType workflowType\n 50: optional Header header\n}\n\nstruct ChildWorkflowExecutionCompletedEventAttributes {\n 10: optional binary result\n 20: optional string domain\n 30: optional WorkflowExecution workflowExecution\n 40: optional WorkflowType workflowType\n 50: optional i64 (js.type = \"Long\") initiatedEventId\n 60: optional i64 (js.type = \"Long\") startedEventId\n}\n\nstruct ChildWorkflowExecutionFailedEventAttributes {\n 10: optional string reason\n 20: optional binary details\n 30: optional string domain\n 40: optional WorkflowExecution workflowExecution\n 50: optional WorkflowType workflowType\n 60: optional i64 (js.type = \"Long\") initiatedEventId\n 70: optional i64 (js.type = \"Long\") startedEventId\n}\n\nstruct ChildWorkflowExecutionCanceledEventAttributes {\n 10: optional binary details\n 20: optional string domain\n 30: optional WorkflowExecution workflowExecution\n 40: optional WorkflowType workflowType\n 50: optional i64 (js.type = \"Long\") initiatedEventId\n 60: optional i64 (js.type = \"Long\") startedEventId\n}\n\nstruct ChildWorkflowExecutionTimedOutEventAttributes {\n 10: optional TimeoutType timeoutType\n 20: optional string domain\n 30: optional WorkflowExecution workflowExecution\n 40: optional WorkflowType workflowType\n 50: optional i64 (js.type = \"Long\") initiatedEventId\n 60: optional i64 (js.type = \"Long\") startedEventId\n}\n\nstruct ChildWorkflowExecutionTerminatedEventAttributes {\n 10: optional string domain\n 20: optional WorkflowExecution workflowExecution\n 30: optional WorkflowType workflowType\n 40: optional i64 (js.type = \"Long\") initiatedEventId\n 50: optional i64 (js.type = \"Long\") startedEventId\n}\n\nstruct HistoryEvent {\n 10: optional i64 (js.type = \"Long\") eventId\n 20: optional i64 (js.type = \"Long\") timestamp\n 30: optional EventType eventType\n 35: optional i64 (js.type = \"Long\") version\n 36: optional i64 (js.type = \"Long\") taskId\n 40: optional WorkflowExecutionStartedEventAttributes workflowExecutionStartedEventAttributes\n 50: optional WorkflowExecutionCompletedEventAttributes workflowExecutionCompletedEventAttributes\n 60: optional WorkflowExecutionFailedEventAttributes workflowExecutionFailedEventAttributes\n 70: optional WorkflowExecutionTimedOutEventAttributes workflowExecutionTimedOutEventAttributes\n 80: optional DecisionTaskScheduledEventAttributes decisionTaskScheduledEventAttributes\n 90: optional DecisionTaskStartedEventAttributes decisionTaskStartedEventAttributes\n 100: optional DecisionTaskCompletedEventAttributes decisionTaskCompletedEventAttributes\n 110: optional DecisionTaskTimedOutEventAttributes decisionTaskTimedOutEventAttributes\n 120: optional DecisionTaskFailedEventAttributes decisionTaskFailedEventAttributes\n 130: optional ActivityTaskScheduledEventAttributes activityTaskScheduledEventAttributes\n 140: optional ActivityTaskStartedEventAttributes activityTaskStartedEventAttributes\n 150: optional ActivityTaskCompletedEventAttributes activityTaskCompletedEventAttributes\n 160: optional ActivityTaskFailedEventAttributes activityTaskFailedEventAttributes\n 170: optional ActivityTaskTimedOutEventAttributes activityTaskTimedOutEventAttributes\n 180: optional TimerStartedEventAttributes timerStartedEventAttributes\n 190: optional TimerFiredEventAttributes timerFiredEventAttributes\n 200: optional ActivityTaskCancelRequestedEventAttributes activityTaskCancelRequestedEventAttributes\n 210: optional RequestCancelActivityTaskFailedEventAttributes requestCancelActivityTaskFailedEventAttributes\n 220: optional ActivityTaskCanceledEventAttributes activityTaskCanceledEventAttributes\n 230: optional TimerCanceledEventAttributes timerCanceledEventAttributes\n 240: optional CancelTimerFailedEventAttributes cancelTimerFailedEventAttributes\n 250: optional MarkerRecordedEventAttributes markerRecordedEventAttributes\n 260: optional WorkflowExecutionSignaledEventAttributes workflowExecutionSignaledEventAttributes\n 270: optional WorkflowExecutionTerminatedEventAttributes workflowExecutionTerminatedEventAttributes\n 280: optional WorkflowExecutionCancelRequestedEventAttributes workflowExecutionCancelRequestedEventAttributes\n 290: optional WorkflowExecutionCanceledEventAttributes workflowExecutionCanceledEventAttributes\n 300: optional RequestCancelExternalWorkflowExecutionInitiatedEventAttributes requestCancelExternalWorkflowExecutionInitiatedEventAttributes\n 310: optional RequestCancelExternalWorkflowExecutionFailedEventAttributes requestCancelExternalWorkflowExecutionFailedEventAttributes\n 320: optional ExternalWorkflowExecutionCancelRequestedEventAttributes externalWorkflowExecutionCancelRequestedEventAttributes\n 330: optional WorkflowExecutionContinuedAsNewEventAttributes workflowExecutionContinuedAsNewEventAttributes\n 340: optional StartChildWorkflowExecutionInitiatedEventAttributes startChildWorkflowExecutionInitiatedEventAttributes\n 350: optional StartChildWorkflowExecutionFailedEventAttributes startChildWorkflowExecutionFailedEventAttributes\n 360: optional ChildWorkflowExecutionStartedEventAttributes childWorkflowExecutionStartedEventAttributes\n 370: optional ChildWorkflowExecutionCompletedEventAttributes childWorkflowExecutionCompletedEventAttributes\n 380: optional ChildWorkflowExecutionFailedEventAttributes childWorkflowExecutionFailedEventAttributes\n 390: optional ChildWorkflowExecutionCanceledEventAttributes childWorkflowExecutionCanceledEventAttributes\n 400: optional ChildWorkflowExecutionTimedOutEventAttributes childWorkflowExecutionTimedOutEventAttributes\n 410: optional ChildWorkflowExecutionTerminatedEventAttributes childWorkflowExecutionTerminatedEventAttributes\n 420: optional SignalExternalWorkflowExecutionInitiatedEventAttributes signalExternalWorkflowExecutionInitiatedEventAttributes\n 430: optional SignalExternalWorkflowExecutionFailedEventAttributes signalExternalWorkflowExecutionFailedEventAttributes\n 440: optional ExternalWorkflowExecutionSignaledEventAttributes externalWorkflowExecutionSignaledEventAttributes\n 450: optional UpsertWorkflowSearchAttributesEventAttributes upsertWorkflowSearchAttributesEventAttributes\n}\n\nstruct History {\n 10: optional list events\n}\n\nstruct WorkflowExecutionFilter {\n 10: optional string workflowId\n 20: optional string runId\n}\n\nstruct WorkflowTypeFilter {\n 10: optional string name\n}\n\nstruct StartTimeFilter {\n 10: optional i64 (js.type = \"Long\") earliestTime\n 20: optional i64 (js.type = \"Long\") latestTime\n}\n\nstruct DomainInfo {\n 10: optional string name\n 20: optional DomainStatus status\n 30: optional string description\n 40: optional string ownerEmail\n // A key-value map for any customized purpose\n 50: optional map data\n 60: optional string uuid\n}\n\nstruct DomainConfiguration {\n 10: optional i32 workflowExecutionRetentionPeriodInDays\n 20: optional bool emitMetric\n 60: optional IsolationGroupConfiguration isolationgroups\n 70: optional BadBinaries badBinaries\n 80: optional ArchivalStatus historyArchivalStatus\n 90: optional string historyArchivalURI\n 100: optional ArchivalStatus visibilityArchivalStatus\n 110: optional string visibilityArchivalURI\n 120: optional AsyncWorkflowConfiguration AsyncWorkflowConfiguration\n}\n\nstruct FailoverInfo {\n 10: optional i64 (js.type = \"Long\") failoverVersion\n 20: optional i64 (js.type = \"Long\") failoverStartTimestamp\n 30: optional i64 (js.type = \"Long\") failoverExpireTimestamp\n 40: optional i32 completedShardCount\n 50: optional list pendingShards\n}\n\nstruct BadBinaries{\n 10: optional map binaries\n}\n\nstruct BadBinaryInfo{\n 10: optional string reason\n 20: optional string operator\n 30: optional i64 (js.type = \"Long\") createdTimeNano\n}\n\nstruct UpdateDomainInfo {\n 10: optional string description\n 20: optional string ownerEmail\n // A key-value map for any customized purpose\n 30: optional map data\n}\n\nstruct ClusterReplicationConfiguration {\n 10: optional string clusterName\n}\n\nstruct DomainReplicationConfiguration {\n 10: optional string activeClusterName\n 20: optional list clusters\n}\n\nstruct RegisterDomainRequest {\n 10: optional string name\n 20: optional string description\n 30: optional string ownerEmail\n 40: optional i32 workflowExecutionRetentionPeriodInDays\n 50: optional bool emitMetric = true\n 60: optional list clusters\n 70: optional string activeClusterName\n // A key-value map for any customized purpose\n 80: optional map data\n 90: optional string securityToken\n 120: optional bool isGlobalDomain\n 130: optional ArchivalStatus historyArchivalStatus\n 140: optional string historyArchivalURI\n 150: optional ArchivalStatus visibilityArchivalStatus\n 160: optional string visibilityArchivalURI\n}\n\nstruct ListDomainsRequest {\n 10: optional i32 pageSize\n 20: optional binary nextPageToken\n}\n\nstruct ListDomainsResponse {\n 10: optional list domains\n 20: optional binary nextPageToken\n}\n\nstruct DescribeDomainRequest {\n 10: optional string name\n 20: optional string uuid\n}\n\nstruct DescribeDomainResponse {\n 10: optional DomainInfo domainInfo\n 20: optional DomainConfiguration configuration\n 30: optional DomainReplicationConfiguration replicationConfiguration\n 40: optional i64 (js.type = \"Long\") failoverVersion\n 50: optional bool isGlobalDomain\n 60: optional FailoverInfo failoverInfo\n}\n\nstruct UpdateDomainRequest {\n 10: optional string name\n 20: optional UpdateDomainInfo updatedInfo\n 30: optional DomainConfiguration configuration\n 40: optional DomainReplicationConfiguration replicationConfiguration\n 50: optional string securityToken\n 60: optional string deleteBadBinary\n 70: optional i32 failoverTimeoutInSeconds\n}\n\nstruct UpdateDomainResponse {\n 10: optional DomainInfo domainInfo\n 20: optional DomainConfiguration configuration\n 30: optional DomainReplicationConfiguration replicationConfiguration\n 40: optional i64 (js.type = \"Long\") failoverVersion\n 50: optional bool isGlobalDomain\n}\n\nstruct DeprecateDomainRequest {\n 10: optional string name\n 20: optional string securityToken\n}\n\nstruct StartWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional string workflowId\n 30: optional WorkflowType workflowType\n 40: optional TaskList taskList\n 50: optional binary input\n 60: optional i32 executionStartToCloseTimeoutSeconds\n 70: optional i32 taskStartToCloseTimeoutSeconds\n 80: optional string identity\n 90: optional string requestId\n 100: optional WorkflowIdReusePolicy workflowIdReusePolicy\n// 110: optional ChildPolicy childPolicy -- Removed but reserve the IDL order number\n 120: optional RetryPolicy retryPolicy\n 130: optional string cronSchedule\n 140: optional Memo memo\n 141: optional SearchAttributes searchAttributes\n 150: optional Header header\n 160: optional i32 delayStartSeconds\n 170: optional i32 jitterStartSeconds\n 180: optional i64 (js.type = \"Long\") firstRunAtTimestamp\n}\n\nstruct StartWorkflowExecutionResponse {\n 10: optional string runId\n}\n\nstruct StartWorkflowExecutionAsyncRequest {\n 10: optional StartWorkflowExecutionRequest request\n}\n\nstruct StartWorkflowExecutionAsyncResponse {\n}\n\nstruct RestartWorkflowExecutionResponse {\n 10: optional string runId\n}\n\nstruct DiagnoseWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional WorkflowExecution workflowExecution\n 30: optional string identity\n}\n\nstruct DiagnoseWorkflowExecutionResponse {\n 10: optional string domain\n 20: optional WorkflowExecution diagnosticWorkflowExecution\n}\n\nstruct PollForDecisionTaskRequest {\n 10: optional string domain\n 20: optional TaskList taskList\n 30: optional string identity\n 40: optional string binaryChecksum\n}\n\nstruct PollForDecisionTaskResponse {\n 10: optional binary taskToken\n 20: optional WorkflowExecution workflowExecution\n 30: optional WorkflowType workflowType\n 40: optional i64 (js.type = \"Long\") previousStartedEventId\n 50: optional i64 (js.type = \"Long\") startedEventId\n 51: optional i64 (js.type = 'Long') attempt\n 54: optional i64 (js.type = \"Long\") backlogCountHint\n 60: optional History history\n 70: optional binary nextPageToken\n 80: optional WorkflowQuery query\n 90: optional TaskList WorkflowExecutionTaskList\n 100: optional i64 (js.type = \"Long\") scheduledTimestamp\n 110: optional i64 (js.type = \"Long\") startedTimestamp\n 120: optional map queries\n 130: optional i64 (js.type = 'Long') nextEventId\n 140: optional i64 (js.type = 'Long') totalHistoryBytes\n}\n\nstruct StickyExecutionAttributes {\n 10: optional TaskList workerTaskList\n 20: optional i32 scheduleToStartTimeoutSeconds\n}\n\nstruct RespondDecisionTaskCompletedRequest {\n 10: optional binary taskToken\n 20: optional list decisions\n 30: optional binary executionContext\n 40: optional string identity\n 50: optional StickyExecutionAttributes stickyAttributes\n 60: optional bool returnNewDecisionTask\n 70: optional bool forceCreateNewDecisionTask\n 80: optional string binaryChecksum\n 90: optional map queryResults\n}\n\nstruct RespondDecisionTaskCompletedResponse {\n 10: optional PollForDecisionTaskResponse decisionTask\n 20: optional map activitiesToDispatchLocally\n}\n\nstruct RespondDecisionTaskFailedRequest {\n 10: optional binary taskToken\n 20: optional DecisionTaskFailedCause cause\n 30: optional binary details\n 40: optional string identity\n 50: optional string binaryChecksum\n}\n\nstruct PollForActivityTaskRequest {\n 10: optional string domain\n 20: optional TaskList taskList\n 30: optional string identity\n 40: optional TaskListMetadata taskListMetadata\n}\n\nstruct PollForActivityTaskResponse {\n 10: optional binary taskToken\n 20: optional WorkflowExecution workflowExecution\n 30: optional string activityId\n 40: optional ActivityType activityType\n 50: optional binary input\n 70: optional i64 (js.type = \"Long\") scheduledTimestamp\n 80: optional i32 scheduleToCloseTimeoutSeconds\n 90: optional i64 (js.type = \"Long\") startedTimestamp\n 100: optional i32 startToCloseTimeoutSeconds\n 110: optional i32 heartbeatTimeoutSeconds\n 120: optional i32 attempt\n 130: optional i64 (js.type = \"Long\") scheduledTimestampOfThisAttempt\n 140: optional binary heartbeatDetails\n 150: optional WorkflowType workflowType\n 160: optional string workflowDomain\n 170: optional Header header\n}\n\nstruct RecordActivityTaskHeartbeatRequest {\n 10: optional binary taskToken\n 20: optional binary details\n 30: optional string identity\n}\n\nstruct RecordActivityTaskHeartbeatByIDRequest {\n 10: optional string domain\n 20: optional string workflowID\n 30: optional string runID\n 40: optional string activityID\n 50: optional binary details\n 60: optional string identity\n}\n\nstruct RecordActivityTaskHeartbeatResponse {\n 10: optional bool cancelRequested\n}\n\nstruct RespondActivityTaskCompletedRequest {\n 10: optional binary taskToken\n 20: optional binary result\n 30: optional string identity\n}\n\nstruct RespondActivityTaskFailedRequest {\n 10: optional binary taskToken\n 20: optional string reason\n 30: optional binary details\n 40: optional string identity\n}\n\nstruct RespondActivityTaskCanceledRequest {\n 10: optional binary taskToken\n 20: optional binary details\n 30: optional string identity\n}\n\nstruct RespondActivityTaskCompletedByIDRequest {\n 10: optional string domain\n 20: optional string workflowID\n 30: optional string runID\n 40: optional string activityID\n 50: optional binary result\n 60: optional string identity\n}\n\nstruct RespondActivityTaskFailedByIDRequest {\n 10: optional string domain\n 20: optional string workflowID\n 30: optional string runID\n 40: optional string activityID\n 50: optional string reason\n 60: optional binary details\n 70: optional string identity\n}\n\nstruct RespondActivityTaskCanceledByIDRequest {\n 10: optional string domain\n 20: optional string workflowID\n 30: optional string runID\n 40: optional string activityID\n 50: optional binary details\n 60: optional string identity\n}\n\nstruct RequestCancelWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional WorkflowExecution workflowExecution\n 30: optional string identity\n 40: optional string requestId\n 50: optional string cause\n 60: optional string firstExecutionRunID\n}\n\nstruct GetWorkflowExecutionHistoryRequest {\n 10: optional string domain\n 20: optional WorkflowExecution execution\n 30: optional i32 maximumPageSize\n 40: optional binary nextPageToken\n 50: optional bool waitForNewEvent\n 60: optional HistoryEventFilterType HistoryEventFilterType\n 70: optional bool skipArchival\n}\n\nstruct GetWorkflowExecutionHistoryResponse {\n 10: optional History history\n 11: optional list rawHistory\n 20: optional binary nextPageToken\n 30: optional bool archived\n}\n\nstruct SignalWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional WorkflowExecution workflowExecution\n 30: optional string signalName\n 40: optional binary input\n 50: optional string identity\n 60: optional string requestId\n 70: optional binary control\n}\n\nstruct SignalWithStartWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional string workflowId\n 30: optional WorkflowType workflowType\n 40: optional TaskList taskList\n 50: optional binary input\n 60: optional i32 executionStartToCloseTimeoutSeconds\n 70: optional i32 taskStartToCloseTimeoutSeconds\n 80: optional string identity\n 90: optional string requestId\n 100: optional WorkflowIdReusePolicy workflowIdReusePolicy\n 110: optional string signalName\n 120: optional binary signalInput\n 130: optional binary control\n 140: optional RetryPolicy retryPolicy\n 150: optional string cronSchedule\n 160: optional Memo memo\n 161: optional SearchAttributes searchAttributes\n 170: optional Header header\n 180: optional i32 delayStartSeconds\n 190: optional i32 jitterStartSeconds\n 200: optional i64 (js.type = \"Long\") firstRunAtTimestamp\n}\n\nstruct SignalWithStartWorkflowExecutionAsyncRequest {\n 10: optional SignalWithStartWorkflowExecutionRequest request\n}\n\nstruct SignalWithStartWorkflowExecutionAsyncResponse {\n}\n\nstruct RestartWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional WorkflowExecution workflowExecution\n 30: optional string reason\n 40: optional string identity\n}\nstruct TerminateWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional WorkflowExecution workflowExecution\n 30: optional string reason\n 40: optional binary details\n 50: optional string identity\n 60: optional string firstExecutionRunID\n}\n\nstruct ResetWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional WorkflowExecution workflowExecution\n 30: optional string reason\n 40: optional i64 (js.type = \"Long\") decisionFinishEventId\n 50: optional string requestId\n 60: optional bool skipSignalReapply\n}\n\nstruct ResetWorkflowExecutionResponse {\n 10: optional string runId\n}\n\nstruct ListOpenWorkflowExecutionsRequest {\n 10: optional string domain\n 20: optional i32 maximumPageSize\n 30: optional binary nextPageToken\n 40: optional StartTimeFilter StartTimeFilter\n 50: optional WorkflowExecutionFilter executionFilter\n 60: optional WorkflowTypeFilter typeFilter\n}\n\nstruct ListOpenWorkflowExecutionsResponse {\n 10: optional list executions\n 20: optional binary nextPageToken\n}\n\nstruct ListClosedWorkflowExecutionsRequest {\n 10: optional string domain\n 20: optional i32 maximumPageSize\n 30: optional binary nextPageToken\n 40: optional StartTimeFilter StartTimeFilter\n 50: optional WorkflowExecutionFilter executionFilter\n 60: optional WorkflowTypeFilter typeFilter\n 70: optional WorkflowExecutionCloseStatus statusFilter\n}\n\nstruct ListClosedWorkflowExecutionsResponse {\n 10: optional list executions\n 20: optional binary nextPageToken\n}\n\nstruct ListWorkflowExecutionsRequest {\n 10: optional string domain\n 20: optional i32 pageSize\n 30: optional binary nextPageToken\n 40: optional string query\n}\n\nstruct ListWorkflowExecutionsResponse {\n 10: optional list executions\n 20: optional binary nextPageToken\n}\n\nstruct ListArchivedWorkflowExecutionsRequest {\n 10: optional string domain\n 20: optional i32 pageSize\n 30: optional binary nextPageToken\n 40: optional string query\n}\n\nstruct ListArchivedWorkflowExecutionsResponse {\n 10: optional list executions\n 20: optional binary nextPageToken\n}\n\nstruct CountWorkflowExecutionsRequest {\n 10: optional string domain\n 20: optional string query\n}\n\nstruct CountWorkflowExecutionsResponse {\n 10: optional i64 count\n}\n\nstruct GetSearchAttributesResponse {\n 10: optional map keys\n}\n\nstruct QueryWorkflowRequest {\n 10: optional string domain\n 20: optional WorkflowExecution execution\n 30: optional WorkflowQuery query\n // QueryRejectCondition can used to reject the query if workflow state does not satisify condition\n 40: optional QueryRejectCondition queryRejectCondition\n 50: optional QueryConsistencyLevel queryConsistencyLevel\n}\n\nstruct QueryRejected {\n 10: optional WorkflowExecutionCloseStatus closeStatus\n}\n\nstruct QueryWorkflowResponse {\n 10: optional binary queryResult\n 20: optional QueryRejected queryRejected\n}\n\nstruct WorkflowQuery {\n 10: optional string queryType\n 20: optional binary queryArgs\n}\n\nstruct ResetStickyTaskListRequest {\n 10: optional string domain\n 20: optional WorkflowExecution execution\n}\n\nstruct ResetStickyTaskListResponse {\n // The reason to keep this response is to allow returning\n // information in the future.\n}\n\nstruct RespondQueryTaskCompletedRequest {\n 10: optional binary taskToken\n 20: optional QueryTaskCompletedType completedType\n 30: optional binary queryResult\n 40: optional string errorMessage\n 50: optional WorkerVersionInfo workerVersionInfo\n}\n\nstruct WorkflowQueryResult {\n 10: optional QueryResultType resultType\n 20: optional binary answer\n 30: optional string errorMessage\n}\n\nstruct DescribeWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional WorkflowExecution execution\n}\n\nstruct PendingActivityInfo {\n 10: optional string activityID\n 20: optional ActivityType activityType\n 30: optional PendingActivityState state\n 40: optional binary heartbeatDetails\n 50: optional i64 (js.type = \"Long\") lastHeartbeatTimestamp\n 60: optional i64 (js.type = \"Long\") lastStartedTimestamp\n 70: optional i32 attempt\n 80: optional i32 maximumAttempts\n 90: optional i64 (js.type = \"Long\") scheduledTimestamp\n 100: optional i64 (js.type = \"Long\") expirationTimestamp\n 110: optional string lastFailureReason\n 120: optional string lastWorkerIdentity\n 130: optional binary lastFailureDetails\n 140: optional string startedWorkerIdentity\n 150: optional i64 (js.type = \"Long\") scheduleID\n}\n\nstruct PendingDecisionInfo {\n 10: optional PendingDecisionState state\n 20: optional i64 (js.type = \"Long\") scheduledTimestamp\n 30: optional i64 (js.type = \"Long\") startedTimestamp\n 40: optional i64 attempt\n 50: optional i64 (js.type = \"Long\") originalScheduledTimestamp\n 60: optional i64 (js.type = \"Long\") scheduleID\n}\n\nstruct PendingChildExecutionInfo {\n 1: optional string domain\n 10: optional string workflowID\n 20: optional string runID\n 30: optional string workflowTypName\n 40: optional i64 (js.type = \"Long\") initiatedID\n 50: optional ParentClosePolicy parentClosePolicy\n}\n\nstruct DescribeWorkflowExecutionResponse {\n 10: optional WorkflowExecutionConfiguration executionConfiguration\n 20: optional WorkflowExecutionInfo workflowExecutionInfo\n 30: optional list pendingActivities\n 40: optional list pendingChildren\n 50: optional PendingDecisionInfo pendingDecision\n}\n\nstruct DescribeTaskListRequest {\n 10: optional string domain\n 20: optional TaskList taskList\n 30: optional TaskListType taskListType\n 40: optional bool includeTaskListStatus\n}\n\nstruct DescribeTaskListResponse {\n 10: optional list pollers\n 20: optional TaskListStatus taskListStatus\n}\n\nstruct GetTaskListsByDomainRequest {\n 10: optional string domainName\n}\n\nstruct GetTaskListsByDomainResponse {\n 10: optional map decisionTaskListMap\n 20: optional map activityTaskListMap\n}\n\nstruct ListTaskListPartitionsRequest {\n 10: optional string domain\n 20: optional TaskList taskList\n}\n\nstruct TaskListPartitionMetadata {\n 10: optional string key\n 20: optional string ownerHostName\n}\n\nstruct ListTaskListPartitionsResponse {\n 10: optional list activityTaskListPartitions\n 20: optional list decisionTaskListPartitions\n}\n\nstruct TaskListStatus {\n 10: optional i64 (js.type = \"Long\") backlogCountHint\n 20: optional i64 (js.type = \"Long\") readLevel\n 30: optional i64 (js.type = \"Long\") ackLevel\n 35: optional double ratePerSecond\n 40: optional TaskIDBlock taskIDBlock\n}\n\nstruct TaskIDBlock {\n 10: optional i64 (js.type = \"Long\") startID\n 20: optional i64 (js.type = \"Long\") endID\n}\n\n//At least one of the parameters needs to be provided\nstruct DescribeHistoryHostRequest {\n 10: optional string hostAddress //ip:port\n 20: optional i32 shardIdForHost\n 30: optional WorkflowExecution executionForHost\n}\n\nstruct RemoveTaskRequest {\n 10: optional i32 shardID\n 20: optional i32 type\n 30: optional i64 (js.type = \"Long\") taskID\n 40: optional i64 (js.type = \"Long\") visibilityTimestamp\n 50: optional string clusterName\n}\n\nstruct CloseShardRequest {\n 10: optional i32 shardID\n}\n\nstruct ResetQueueRequest {\n 10: optional i32 shardID\n 20: optional string clusterName\n 30: optional i32 type\n}\n\nstruct DescribeQueueRequest {\n 10: optional i32 shardID\n 20: optional string clusterName\n 30: optional i32 type\n}\n\nstruct DescribeQueueResponse {\n 10: optional list processingQueueStates\n}\n\nstruct DescribeShardDistributionRequest {\n 10: optional i32 pageSize\n 20: optional i32 pageID\n}\n\nstruct DescribeShardDistributionResponse {\n 10: optional i32 numberOfShards\n\n // ShardID to Address (ip:port) map\n 20: optional map shards\n}\n\nstruct DescribeHistoryHostResponse{\n 10: optional i32 numberOfShards\n 20: optional list shardIDs\n 30: optional DomainCacheInfo domainCache\n 40: optional string shardControllerStatus\n 50: optional string address\n}\n\nstruct DomainCacheInfo{\n 10: optional i64 numOfItemsInCacheByID\n 20: optional i64 numOfItemsInCacheByName\n}\n\nenum TaskListType {\n /*\n * Decision type of tasklist\n */\n Decision,\n /*\n * Activity type of tasklist\n */\n Activity,\n}\n\nstruct PollerInfo {\n // Unix Nano\n 10: optional i64 (js.type = \"Long\") lastAccessTime\n 20: optional string identity\n 30: optional double ratePerSecond\n}\n\nstruct RetryPolicy {\n // Interval of the first retry. If coefficient is 1.0 then it is used for all retries.\n 10: optional i32 initialIntervalInSeconds\n\n // Coefficient used to calculate the next retry interval.\n // The next retry interval is previous interval multiplied by the coefficient.\n // Must be 1 or larger.\n 20: optional double backoffCoefficient\n\n // Maximum interval between retries. Exponential backoff leads to interval increase.\n // This value is the cap of the increase. Default is 100x of initial interval.\n 30: optional i32 maximumIntervalInSeconds\n\n // Maximum number of attempts. When exceeded the retries stop even if not expired yet.\n // Must be 1 or bigger. Default is unlimited.\n 40: optional i32 maximumAttempts\n\n // Non-Retriable errors. Will stop retrying if error matches this list.\n 50: optional list nonRetriableErrorReasons\n\n // Expiration time for the whole retry process.\n 60: optional i32 expirationIntervalInSeconds\n}\n\n// HistoryBranchRange represents a piece of range for a branch.\nstruct HistoryBranchRange{\n // branchID of original branch forked from\n 10: optional string branchID\n // beinning node for the range, inclusive\n 20: optional i64 beginNodeID\n // ending node for the range, exclusive\n 30: optional i64 endNodeID\n}\n\n// For history persistence to serialize/deserialize branch details\nstruct HistoryBranch{\n 10: optional string treeID\n 20: optional string branchID\n 30: optional list ancestors\n}\n\n// VersionHistoryItem contains signal eventID and the corresponding version\nstruct VersionHistoryItem{\n 10: optional i64 (js.type = \"Long\") eventID\n 20: optional i64 (js.type = \"Long\") version\n}\n\n// VersionHistory contains the version history of a branch\nstruct VersionHistory{\n 10: optional binary branchToken\n 20: optional list items\n}\n\n// VersionHistories contains all version histories from all branches\nstruct VersionHistories{\n 10: optional i32 currentVersionHistoryIndex\n 20: optional list histories\n}\n\n// ReapplyEventsRequest is the request for reapply events API\nstruct ReapplyEventsRequest{\n 10: optional string domainName\n 20: optional WorkflowExecution workflowExecution\n 30: optional DataBlob events\n}\n\n// SupportedClientVersions contains the support versions for client library\nstruct SupportedClientVersions{\n 10: optional string goSdk\n 20: optional string javaSdk\n}\n\n// ClusterInfo contains information about cadence cluster\nstruct ClusterInfo{\n 10: optional SupportedClientVersions supportedClientVersions\n}\n\nstruct RefreshWorkflowTasksRequest {\n 10: optional string domain\n 20: optional WorkflowExecution execution\n}\n\nstruct FeatureFlags {\n\t10: optional bool WorkflowExecutionAlreadyCompletedErrorEnabled\n}\n\nenum CrossClusterTaskType {\n StartChildExecution\n CancelExecution\n SignalExecution\n RecordChildWorkflowExecutionComplete\n ApplyParentClosePolicy\n}\n\nenum CrossClusterTaskFailedCause {\n DOMAIN_NOT_ACTIVE\n DOMAIN_NOT_EXISTS\n WORKFLOW_ALREADY_RUNNING\n WORKFLOW_NOT_EXISTS\n WORKFLOW_ALREADY_COMPLETED\n UNCATEGORIZED\n}\n\nenum GetTaskFailedCause {\n SERVICE_BUSY\n TIMEOUT\n SHARD_OWNERSHIP_LOST\n UNCATEGORIZED\n}\n\nstruct CrossClusterTaskInfo {\n 10: optional string domainID\n 20: optional string workflowID\n 30: optional string runID\n 40: optional CrossClusterTaskType taskType\n 50: optional i16 taskState\n 60: optional i64 (js.type = \"Long\") taskID\n 70: optional i64 (js.type = \"Long\") visibilityTimestamp\n}\n\nstruct CrossClusterStartChildExecutionRequestAttributes {\n 10: optional string targetDomainID\n 20: optional string requestID\n 30: optional i64 (js.type = \"Long\") initiatedEventID\n 40: optional StartChildWorkflowExecutionInitiatedEventAttributes initiatedEventAttributes\n // targetRunID is for scheduling first decision task\n // targetWorkflowID is available in initiatedEventAttributes\n 50: optional string targetRunID\n 60: optional map partitionConfig\n}\n\nstruct CrossClusterStartChildExecutionResponseAttributes {\n 10: optional string runID\n}\n\nstruct CrossClusterCancelExecutionRequestAttributes {\n 10: optional string targetDomainID\n 20: optional string targetWorkflowID\n 30: optional string targetRunID\n 40: optional string requestID\n 50: optional i64 (js.type = \"Long\") initiatedEventID\n 60: optional bool childWorkflowOnly\n}\n\nstruct CrossClusterCancelExecutionResponseAttributes {\n}\n\nstruct CrossClusterSignalExecutionRequestAttributes {\n 10: optional string targetDomainID\n 20: optional string targetWorkflowID\n 30: optional string targetRunID\n 40: optional string requestID\n 50: optional i64 (js.type = \"Long\") initiatedEventID\n 60: optional bool childWorkflowOnly\n 70: optional string signalName\n 80: optional binary signalInput\n 90: optional binary control\n}\n\nstruct CrossClusterSignalExecutionResponseAttributes {\n}\n\nstruct CrossClusterRecordChildWorkflowExecutionCompleteRequestAttributes {\n 10: optional string targetDomainID\n 20: optional string targetWorkflowID\n 30: optional string targetRunID\n 40: optional i64 (js.type = \"Long\") initiatedEventID\n 50: optional HistoryEvent completionEvent\n}\n\nstruct CrossClusterRecordChildWorkflowExecutionCompleteResponseAttributes {\n}\n\nstruct ApplyParentClosePolicyAttributes {\n 10: optional string childDomainID\n 20: optional string childWorkflowID\n 30: optional string childRunID\n 40: optional ParentClosePolicy parentClosePolicy\n}\n\nstruct ApplyParentClosePolicyStatus {\n 10: optional bool completed\n 20: optional CrossClusterTaskFailedCause failedCause\n}\n\nstruct ApplyParentClosePolicyRequest {\n 10: optional ApplyParentClosePolicyAttributes child\n 20: optional ApplyParentClosePolicyStatus status\n}\n\nstruct CrossClusterApplyParentClosePolicyRequestAttributes {\n 10: optional list children\n}\n\nstruct ApplyParentClosePolicyResult {\n 10: optional ApplyParentClosePolicyAttributes child\n 20: optional CrossClusterTaskFailedCause failedCause\n}\n\nstruct CrossClusterApplyParentClosePolicyResponseAttributes {\n 10: optional list childrenStatus\n}\n\nstruct CrossClusterTaskRequest {\n 10: optional CrossClusterTaskInfo taskInfo\n 20: optional CrossClusterStartChildExecutionRequestAttributes startChildExecutionAttributes\n 30: optional CrossClusterCancelExecutionRequestAttributes cancelExecutionAttributes\n 40: optional CrossClusterSignalExecutionRequestAttributes signalExecutionAttributes\n 50: optional CrossClusterRecordChildWorkflowExecutionCompleteRequestAttributes recordChildWorkflowExecutionCompleteAttributes\n 60: optional CrossClusterApplyParentClosePolicyRequestAttributes applyParentClosePolicyAttributes\n}\n\nstruct CrossClusterTaskResponse {\n 10: optional i64 (js.type = \"Long\") taskID\n 20: optional CrossClusterTaskType taskType\n 30: optional i16 taskState\n 40: optional CrossClusterTaskFailedCause failedCause\n 50: optional CrossClusterStartChildExecutionResponseAttributes startChildExecutionAttributes\n 60: optional CrossClusterCancelExecutionResponseAttributes cancelExecutionAttributes\n 70: optional CrossClusterSignalExecutionResponseAttributes signalExecutionAttributes\n 80: optional CrossClusterRecordChildWorkflowExecutionCompleteResponseAttributes recordChildWorkflowExecutionCompleteAttributes\n 90: optional CrossClusterApplyParentClosePolicyResponseAttributes applyParentClosePolicyAttributes\n}\n\nstruct GetCrossClusterTasksRequest {\n 10: optional list shardIDs\n 20: optional string targetCluster\n}\n\nstruct GetCrossClusterTasksResponse {\n 10: optional map> tasksByShard\n 20: optional map failedCauseByShard\n}\n\nstruct RespondCrossClusterTasksCompletedRequest {\n 10: optional i32 shardID\n 20: optional string targetCluster\n 30: optional list taskResponses\n 40: optional bool fetchNewTasks\n}\n\nstruct RespondCrossClusterTasksCompletedResponse {\n 10: optional list tasks\n}\n\nenum IsolationGroupState {\n INVALID,\n HEALTHY,\n DRAINED,\n}\n\nstruct IsolationGroupPartition {\n 10: optional string name\n 20: optional IsolationGroupState state\n}\n\nstruct IsolationGroupConfiguration {\n 10: optional list isolationGroups\n}\n\nstruct AsyncWorkflowConfiguration {\n 10: optional bool enabled\n // PredefinedQueueName is the name of the predefined queue in cadence server config's asyncWorkflowQueues\n 20: optional string predefinedQueueName\n // queueType is the type of the queue if predefined_queue_name is not used\n 30: optional string queueType\n // queueConfig is the configuration for the queue if predefined_queue_name is not used\n 40: optional DataBlob queueConfig\n}\n\n/**\n* Any is a logical duplicate of google.protobuf.Any.\n*\n* The intent of the type is the same, but it is not intended to be directly\n* compatible with google.protobuf.Any or any Thrift equivalent - this blob is\n* RPC-type agnostic by design (as the underlying data may be transported over\n* proto or thrift), and the data-bytes may be in any encoding.\n*\n* This is intentionally different from DataBlob, which supports only a handful\n* of known encodings so it can be interpreted everywhere. Any supports literally\n* any contents, and needs to be considered opaque until it is given to something\n* that is expecting it.\n*\n* See ValueType to interpret the contents.\n**/\nstruct Any {\n // Type-string describing value's contents, and intentionally avoiding the\n // name \"type\" as it is often a special term.\n // This should usually be a hard-coded string of some kind.\n 10: optional string ValueType\n // Arbitrarily-encoded bytes, to be deserialized by a runtime implementation.\n // The contents are described by ValueType.\n 20: optional binary Value\n}\n" +const rawIDL = "// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nnamespace java com.uber.cadence\n\nexception BadRequestError {\n 1: required string message\n}\n\nexception InternalServiceError {\n 1: required string message\n}\n\nexception InternalDataInconsistencyError {\n 1: required string message\n}\n\nexception DomainAlreadyExistsError {\n 1: required string message\n}\n\nexception WorkflowExecutionAlreadyStartedError {\n 10: optional string message\n 20: optional string startRequestId\n 30: optional string runId\n}\n\nexception WorkflowExecutionAlreadyCompletedError {\n 1: required string message\n}\n\nexception EntityNotExistsError {\n 1: required string message\n 2: optional string currentCluster\n 3: optional string activeCluster\n}\n\nexception ServiceBusyError {\n 1: required string message\n 2: optional string reason\n}\n\nexception CancellationAlreadyRequestedError {\n 1: required string message\n}\n\nexception QueryFailedError {\n 1: required string message\n}\n\nexception DomainNotActiveError {\n 1: required string message\n 2: required string domainName\n 3: required string currentCluster\n 4: required string activeCluster\n}\n\nexception LimitExceededError {\n 1: required string message\n}\n\nexception AccessDeniedError {\n 1: required string message\n}\n\nexception RetryTaskV2Error {\n 1: required string message\n 2: optional string domainId\n 3: optional string workflowId\n 4: optional string runId\n 5: optional i64 (js.type = \"Long\") startEventId\n 6: optional i64 (js.type = \"Long\") startEventVersion\n 7: optional i64 (js.type = \"Long\") endEventId\n 8: optional i64 (js.type = \"Long\") endEventVersion\n}\n\nexception ClientVersionNotSupportedError {\n 1: required string featureVersion\n 2: required string clientImpl\n 3: required string supportedVersions\n}\n\nexception FeatureNotEnabledError {\n 1: required string featureFlag\n}\n\nexception CurrentBranchChangedError {\n 10: required string message\n 20: required binary currentBranchToken\n}\n\nexception RemoteSyncMatchedError {\n 10: required string message\n}\n\nexception StickyWorkerUnavailableError {\n 1: required string message\n}\n\nexception TaskListNotOwnedByHostError {\n 1: required string ownedByIdentity\n 2: required string myIdentity\n 3: required string tasklistName\n}\n\nenum WorkflowIdReusePolicy {\n /*\n * allow start a workflow execution using the same workflow ID,\n * when workflow not running, and the last execution close state is in\n * [terminated, cancelled, timeouted, failed].\n */\n AllowDuplicateFailedOnly,\n /*\n * allow start a workflow execution using the same workflow ID,\n * when workflow not running.\n */\n AllowDuplicate,\n /*\n * do not allow start a workflow execution using the same workflow ID at all\n */\n RejectDuplicate,\n /*\n * if a workflow is running using the same workflow ID, terminate it and start a new one\n */\n TerminateIfRunning,\n}\n\nenum DomainStatus {\n REGISTERED,\n DEPRECATED,\n DELETED,\n}\n\nenum TimeoutType {\n START_TO_CLOSE,\n SCHEDULE_TO_START,\n SCHEDULE_TO_CLOSE,\n HEARTBEAT,\n}\n\nenum ParentClosePolicy {\n\tABANDON,\n\tREQUEST_CANCEL,\n\tTERMINATE,\n}\n\n\n// whenever this list of decision is changed\n// do change the mutableStateBuilder.go\n// function shouldBufferEvent\n// to make sure wo do the correct event ordering\nenum DecisionType {\n ScheduleActivityTask,\n RequestCancelActivityTask,\n StartTimer,\n CompleteWorkflowExecution,\n FailWorkflowExecution,\n CancelTimer,\n CancelWorkflowExecution,\n RequestCancelExternalWorkflowExecution,\n RecordMarker,\n ContinueAsNewWorkflowExecution,\n StartChildWorkflowExecution,\n SignalExternalWorkflowExecution,\n UpsertWorkflowSearchAttributes,\n}\n\nenum EventType {\n WorkflowExecutionStarted,\n WorkflowExecutionCompleted,\n WorkflowExecutionFailed,\n WorkflowExecutionTimedOut,\n DecisionTaskScheduled,\n DecisionTaskStarted,\n DecisionTaskCompleted,\n DecisionTaskTimedOut\n DecisionTaskFailed,\n ActivityTaskScheduled,\n ActivityTaskStarted,\n ActivityTaskCompleted,\n ActivityTaskFailed,\n ActivityTaskTimedOut,\n ActivityTaskCancelRequested,\n RequestCancelActivityTaskFailed,\n ActivityTaskCanceled,\n TimerStarted,\n TimerFired,\n CancelTimerFailed,\n TimerCanceled,\n WorkflowExecutionCancelRequested,\n WorkflowExecutionCanceled,\n RequestCancelExternalWorkflowExecutionInitiated,\n RequestCancelExternalWorkflowExecutionFailed,\n ExternalWorkflowExecutionCancelRequested,\n MarkerRecorded,\n WorkflowExecutionSignaled,\n WorkflowExecutionTerminated,\n WorkflowExecutionContinuedAsNew,\n StartChildWorkflowExecutionInitiated,\n StartChildWorkflowExecutionFailed,\n ChildWorkflowExecutionStarted,\n ChildWorkflowExecutionCompleted,\n ChildWorkflowExecutionFailed,\n ChildWorkflowExecutionCanceled,\n ChildWorkflowExecutionTimedOut,\n ChildWorkflowExecutionTerminated,\n SignalExternalWorkflowExecutionInitiated,\n SignalExternalWorkflowExecutionFailed,\n ExternalWorkflowExecutionSignaled,\n UpsertWorkflowSearchAttributes,\n}\n\nenum DecisionTaskFailedCause {\n UNHANDLED_DECISION,\n BAD_SCHEDULE_ACTIVITY_ATTRIBUTES,\n BAD_REQUEST_CANCEL_ACTIVITY_ATTRIBUTES,\n BAD_START_TIMER_ATTRIBUTES,\n BAD_CANCEL_TIMER_ATTRIBUTES,\n BAD_RECORD_MARKER_ATTRIBUTES,\n BAD_COMPLETE_WORKFLOW_EXECUTION_ATTRIBUTES,\n BAD_FAIL_WORKFLOW_EXECUTION_ATTRIBUTES,\n BAD_CANCEL_WORKFLOW_EXECUTION_ATTRIBUTES,\n BAD_REQUEST_CANCEL_EXTERNAL_WORKFLOW_EXECUTION_ATTRIBUTES,\n BAD_CONTINUE_AS_NEW_ATTRIBUTES,\n START_TIMER_DUPLICATE_ID,\n RESET_STICKY_TASKLIST,\n WORKFLOW_WORKER_UNHANDLED_FAILURE,\n BAD_SIGNAL_WORKFLOW_EXECUTION_ATTRIBUTES,\n BAD_START_CHILD_EXECUTION_ATTRIBUTES,\n FORCE_CLOSE_DECISION,\n FAILOVER_CLOSE_DECISION,\n BAD_SIGNAL_INPUT_SIZE,\n RESET_WORKFLOW,\n BAD_BINARY,\n SCHEDULE_ACTIVITY_DUPLICATE_ID,\n BAD_SEARCH_ATTRIBUTES,\n}\n\nenum DecisionTaskTimedOutCause {\n TIMEOUT,\n RESET,\n}\n\nenum CancelExternalWorkflowExecutionFailedCause {\n UNKNOWN_EXTERNAL_WORKFLOW_EXECUTION,\n WORKFLOW_ALREADY_COMPLETED,\n}\n\nenum SignalExternalWorkflowExecutionFailedCause {\n UNKNOWN_EXTERNAL_WORKFLOW_EXECUTION,\n WORKFLOW_ALREADY_COMPLETED,\n}\n\nenum ChildWorkflowExecutionFailedCause {\n WORKFLOW_ALREADY_RUNNING,\n}\n\n// TODO: when migrating to gRPC, add a running / none status,\n// currently, customer is using null / nil as an indication\n// that workflow is still running\nenum WorkflowExecutionCloseStatus {\n COMPLETED,\n FAILED,\n CANCELED,\n TERMINATED,\n CONTINUED_AS_NEW,\n TIMED_OUT,\n}\n\nenum QueryTaskCompletedType {\n COMPLETED,\n FAILED,\n}\n\nenum QueryResultType {\n ANSWERED,\n FAILED,\n}\n\nenum PendingActivityState {\n SCHEDULED,\n STARTED,\n CANCEL_REQUESTED,\n}\n\nenum PendingDecisionState {\n SCHEDULED,\n STARTED,\n}\n\nenum HistoryEventFilterType {\n ALL_EVENT,\n CLOSE_EVENT,\n}\n\nenum TaskListKind {\n NORMAL,\n STICKY,\n}\n\nenum ArchivalStatus {\n DISABLED,\n ENABLED,\n}\n\nenum IndexedValueType {\n STRING,\n KEYWORD,\n INT,\n DOUBLE,\n BOOL,\n DATETIME,\n}\n\nstruct Header {\n 10: optional map fields\n}\n\nstruct WorkflowType {\n 10: optional string name\n}\n\nstruct ActivityType {\n 10: optional string name\n}\n\nstruct TaskList {\n 10: optional string name\n 20: optional TaskListKind kind\n}\n\nenum EncodingType {\n ThriftRW,\n JSON,\n}\n\nenum QueryRejectCondition {\n // NOT_OPEN indicates that query should be rejected if workflow is not open\n NOT_OPEN\n // NOT_COMPLETED_CLEANLY indicates that query should be rejected if workflow did not complete cleanly\n NOT_COMPLETED_CLEANLY\n}\n\nenum QueryConsistencyLevel {\n // EVENTUAL indicates that query should be eventually consistent\n EVENTUAL\n // STRONG indicates that any events that came before query should be reflected in workflow state before running query\n STRONG\n}\n\nstruct DataBlob {\n 10: optional EncodingType EncodingType\n 20: optional binary Data\n}\n\nstruct TaskListMetadata {\n 10: optional double maxTasksPerSecond\n}\n\nstruct WorkflowExecution {\n 10: optional string workflowId\n 20: optional string runId\n}\n\nstruct Memo {\n 10: optional map fields\n}\n\nstruct SearchAttributes {\n 10: optional map indexedFields\n}\n\nstruct WorkerVersionInfo {\n 10: optional string impl\n 20: optional string featureVersion\n}\n\nstruct WorkflowExecutionInfo {\n 10: optional WorkflowExecution execution\n 20: optional WorkflowType type\n 30: optional i64 (js.type = \"Long\") startTime\n 40: optional i64 (js.type = \"Long\") closeTime\n 50: optional WorkflowExecutionCloseStatus closeStatus\n 60: optional i64 (js.type = \"Long\") historyLength\n 70: optional string parentDomainId\n 71: optional string parentDomainName\n 72: optional i64 parentInitatedId\n 80: optional WorkflowExecution parentExecution\n 90: optional i64 (js.type = \"Long\") executionTime\n 100: optional Memo memo\n 101: optional SearchAttributes searchAttributes\n 110: optional ResetPoints autoResetPoints\n 120: optional string taskList\n 130: optional bool isCron\n 140: optional i64 (js.type = \"Long\") updateTime\n 150: optional map partitionConfig\n}\n\nstruct WorkflowExecutionConfiguration {\n 10: optional TaskList taskList\n 20: optional i32 executionStartToCloseTimeoutSeconds\n 30: optional i32 taskStartToCloseTimeoutSeconds\n// 40: optional ChildPolicy childPolicy -- Removed but reserve the IDL order number\n}\n\nstruct TransientDecisionInfo {\n 10: optional HistoryEvent scheduledEvent\n 20: optional HistoryEvent startedEvent\n}\n\nstruct ScheduleActivityTaskDecisionAttributes {\n 10: optional string activityId\n 20: optional ActivityType activityType\n 25: optional string domain\n 30: optional TaskList taskList\n 40: optional binary input\n 45: optional i32 scheduleToCloseTimeoutSeconds\n 50: optional i32 scheduleToStartTimeoutSeconds\n 55: optional i32 startToCloseTimeoutSeconds\n 60: optional i32 heartbeatTimeoutSeconds\n 70: optional RetryPolicy retryPolicy\n 80: optional Header header\n 90: optional bool requestLocalDispatch\n}\n\nstruct ActivityLocalDispatchInfo{\n 10: optional string activityId\n 20: optional i64 (js.type = \"Long\") scheduledTimestamp\n 30: optional i64 (js.type = \"Long\") startedTimestamp\n 40: optional i64 (js.type = \"Long\") scheduledTimestampOfThisAttempt\n 50: optional binary taskToken\n}\n\nstruct RequestCancelActivityTaskDecisionAttributes {\n 10: optional string activityId\n}\n\nstruct StartTimerDecisionAttributes {\n 10: optional string timerId\n 20: optional i64 (js.type = \"Long\") startToFireTimeoutSeconds\n}\n\nstruct CompleteWorkflowExecutionDecisionAttributes {\n 10: optional binary result\n}\n\nstruct FailWorkflowExecutionDecisionAttributes {\n 10: optional string reason\n 20: optional binary details\n}\n\nstruct CancelTimerDecisionAttributes {\n 10: optional string timerId\n}\n\nstruct CancelWorkflowExecutionDecisionAttributes {\n 10: optional binary details\n}\n\nstruct RequestCancelExternalWorkflowExecutionDecisionAttributes {\n 10: optional string domain\n 20: optional string workflowId\n 30: optional string runId\n 40: optional binary control\n 50: optional bool childWorkflowOnly\n}\n\nstruct SignalExternalWorkflowExecutionDecisionAttributes {\n 10: optional string domain\n 20: optional WorkflowExecution execution\n 30: optional string signalName\n 40: optional binary input\n 50: optional binary control\n 60: optional bool childWorkflowOnly\n}\n\nstruct UpsertWorkflowSearchAttributesDecisionAttributes {\n 10: optional SearchAttributes searchAttributes\n}\n\nstruct RecordMarkerDecisionAttributes {\n 10: optional string markerName\n 20: optional binary details\n 30: optional Header header\n}\n\nstruct ContinueAsNewWorkflowExecutionDecisionAttributes {\n 10: optional WorkflowType workflowType\n 20: optional TaskList taskList\n 30: optional binary input\n 40: optional i32 executionStartToCloseTimeoutSeconds\n 50: optional i32 taskStartToCloseTimeoutSeconds\n 60: optional i32 backoffStartIntervalInSeconds\n 70: optional RetryPolicy retryPolicy\n 80: optional ContinueAsNewInitiator initiator\n 90: optional string failureReason\n 100: optional binary failureDetails\n 110: optional binary lastCompletionResult\n 120: optional string cronSchedule\n 130: optional Header header\n 140: optional Memo memo\n 150: optional SearchAttributes searchAttributes\n 160: optional i32 jitterStartSeconds\n}\n\nstruct StartChildWorkflowExecutionDecisionAttributes {\n 10: optional string domain\n 20: optional string workflowId\n 30: optional WorkflowType workflowType\n 40: optional TaskList taskList\n 50: optional binary input\n 60: optional i32 executionStartToCloseTimeoutSeconds\n 70: optional i32 taskStartToCloseTimeoutSeconds\n// 80: optional ChildPolicy childPolicy -- Removed but reserve the IDL order number\n 81: optional ParentClosePolicy parentClosePolicy\n 90: optional binary control\n 100: optional WorkflowIdReusePolicy workflowIdReusePolicy\n 110: optional RetryPolicy retryPolicy\n 120: optional string cronSchedule\n 130: optional Header header\n 140: optional Memo memo\n 150: optional SearchAttributes searchAttributes\n}\n\nstruct Decision {\n 10: optional DecisionType decisionType\n 20: optional ScheduleActivityTaskDecisionAttributes scheduleActivityTaskDecisionAttributes\n 25: optional StartTimerDecisionAttributes startTimerDecisionAttributes\n 30: optional CompleteWorkflowExecutionDecisionAttributes completeWorkflowExecutionDecisionAttributes\n 35: optional FailWorkflowExecutionDecisionAttributes failWorkflowExecutionDecisionAttributes\n 40: optional RequestCancelActivityTaskDecisionAttributes requestCancelActivityTaskDecisionAttributes\n 50: optional CancelTimerDecisionAttributes cancelTimerDecisionAttributes\n 60: optional CancelWorkflowExecutionDecisionAttributes cancelWorkflowExecutionDecisionAttributes\n 70: optional RequestCancelExternalWorkflowExecutionDecisionAttributes requestCancelExternalWorkflowExecutionDecisionAttributes\n 80: optional RecordMarkerDecisionAttributes recordMarkerDecisionAttributes\n 90: optional ContinueAsNewWorkflowExecutionDecisionAttributes continueAsNewWorkflowExecutionDecisionAttributes\n 100: optional StartChildWorkflowExecutionDecisionAttributes startChildWorkflowExecutionDecisionAttributes\n 110: optional SignalExternalWorkflowExecutionDecisionAttributes signalExternalWorkflowExecutionDecisionAttributes\n 120: optional UpsertWorkflowSearchAttributesDecisionAttributes upsertWorkflowSearchAttributesDecisionAttributes\n}\n\nstruct WorkflowExecutionStartedEventAttributes {\n 10: optional WorkflowType workflowType\n 12: optional string parentWorkflowDomain\n 14: optional WorkflowExecution parentWorkflowExecution\n 16: optional i64 (js.type = \"Long\") parentInitiatedEventId\n 20: optional TaskList taskList\n 30: optional binary input\n 40: optional i32 executionStartToCloseTimeoutSeconds\n 50: optional i32 taskStartToCloseTimeoutSeconds\n// 52: optional ChildPolicy childPolicy -- Removed but reserve the IDL order number\n 54: optional string continuedExecutionRunId\n 55: optional ContinueAsNewInitiator initiator\n 56: optional string continuedFailureReason\n 57: optional binary continuedFailureDetails\n 58: optional binary lastCompletionResult\n 59: optional string originalExecutionRunId // This is the runID when the WorkflowExecutionStarted event is written\n 60: optional string identity\n 61: optional string firstExecutionRunId // This is the very first runID along the chain of ContinueAsNew and Reset.\n 62: optional i64 (js.type = \"Long\") firstScheduledTimeNano\n 70: optional RetryPolicy retryPolicy\n 80: optional i32 attempt\n 90: optional i64 (js.type = \"Long\") expirationTimestamp\n 100: optional string cronSchedule\n 110: optional i32 firstDecisionTaskBackoffSeconds\n 120: optional Memo memo\n 121: optional SearchAttributes searchAttributes\n 130: optional ResetPoints prevAutoResetPoints\n 140: optional Header header\n 150: optional map partitionConfig\n 160: optional string requestId\n}\n\nstruct ResetPoints{\n 10: optional list points\n}\n\n struct ResetPointInfo{\n 10: optional string binaryChecksum\n 20: optional string runId\n 30: optional i64 firstDecisionCompletedId\n 40: optional i64 (js.type = \"Long\") createdTimeNano\n 50: optional i64 (js.type = \"Long\") expiringTimeNano //the time that the run is deleted due to retention\n 60: optional bool resettable // false if the resset point has pending childWFs/reqCancels/signalExternals.\n}\n\nstruct WorkflowExecutionCompletedEventAttributes {\n 10: optional binary result\n 20: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n}\n\nstruct WorkflowExecutionFailedEventAttributes {\n 10: optional string reason\n 20: optional binary details\n 30: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n}\n\nstruct WorkflowExecutionTimedOutEventAttributes {\n 10: optional TimeoutType timeoutType\n}\n\nenum ContinueAsNewInitiator {\n Decider,\n RetryPolicy,\n CronSchedule,\n}\n\nstruct WorkflowExecutionContinuedAsNewEventAttributes {\n 10: optional string newExecutionRunId\n 20: optional WorkflowType workflowType\n 30: optional TaskList taskList\n 40: optional binary input\n 50: optional i32 executionStartToCloseTimeoutSeconds\n 60: optional i32 taskStartToCloseTimeoutSeconds\n 70: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 80: optional i32 backoffStartIntervalInSeconds\n 90: optional ContinueAsNewInitiator initiator\n 100: optional string failureReason\n 110: optional binary failureDetails\n 120: optional binary lastCompletionResult\n 130: optional Header header\n 140: optional Memo memo\n 150: optional SearchAttributes searchAttributes\n}\n\nstruct DecisionTaskScheduledEventAttributes {\n 10: optional TaskList taskList\n 20: optional i32 startToCloseTimeoutSeconds\n 30: optional i64 (js.type = \"Long\") attempt\n}\n\nstruct DecisionTaskStartedEventAttributes {\n 10: optional i64 (js.type = \"Long\") scheduledEventId\n 20: optional string identity\n 30: optional string requestId\n}\n\nstruct DecisionTaskCompletedEventAttributes {\n 10: optional binary executionContext\n 20: optional i64 (js.type = \"Long\") scheduledEventId\n 30: optional i64 (js.type = \"Long\") startedEventId\n 40: optional string identity\n 50: optional string binaryChecksum\n}\n\nstruct DecisionTaskTimedOutEventAttributes {\n 10: optional i64 (js.type = \"Long\") scheduledEventId\n 20: optional i64 (js.type = \"Long\") startedEventId\n 30: optional TimeoutType timeoutType\n // for reset workflow\n 40: optional string baseRunId\n 50: optional string newRunId\n 60: optional i64 (js.type = \"Long\") forkEventVersion\n 70: optional string reason\n 80: optional DecisionTaskTimedOutCause cause\n 90: optional string requestId\n}\n\nstruct DecisionTaskFailedEventAttributes {\n 10: optional i64 (js.type = \"Long\") scheduledEventId\n 20: optional i64 (js.type = \"Long\") startedEventId\n 30: optional DecisionTaskFailedCause cause\n 35: optional binary details\n 40: optional string identity\n 50: optional string reason\n // for reset workflow\n 60: optional string baseRunId\n 70: optional string newRunId\n 80: optional i64 (js.type = \"Long\") forkEventVersion\n 90: optional string binaryChecksum\n 100: optional string requestId\n}\n\nstruct ActivityTaskScheduledEventAttributes {\n 10: optional string activityId\n 20: optional ActivityType activityType\n 25: optional string domain\n 30: optional TaskList taskList\n 40: optional binary input\n 45: optional i32 scheduleToCloseTimeoutSeconds\n 50: optional i32 scheduleToStartTimeoutSeconds\n 55: optional i32 startToCloseTimeoutSeconds\n 60: optional i32 heartbeatTimeoutSeconds\n 90: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 110: optional RetryPolicy retryPolicy\n 120: optional Header header\n}\n\nstruct ActivityTaskStartedEventAttributes {\n 10: optional i64 (js.type = \"Long\") scheduledEventId\n 20: optional string identity\n 30: optional string requestId\n 40: optional i32 attempt\n 50: optional string lastFailureReason\n 60: optional binary lastFailureDetails\n}\n\nstruct ActivityTaskCompletedEventAttributes {\n 10: optional binary result\n 20: optional i64 (js.type = \"Long\") scheduledEventId\n 30: optional i64 (js.type = \"Long\") startedEventId\n 40: optional string identity\n}\n\nstruct ActivityTaskFailedEventAttributes {\n 10: optional string reason\n 20: optional binary details\n 30: optional i64 (js.type = \"Long\") scheduledEventId\n 40: optional i64 (js.type = \"Long\") startedEventId\n 50: optional string identity\n}\n\nstruct ActivityTaskTimedOutEventAttributes {\n 05: optional binary details\n 10: optional i64 (js.type = \"Long\") scheduledEventId\n 20: optional i64 (js.type = \"Long\") startedEventId\n 30: optional TimeoutType timeoutType\n // For retry activity, it may have a failure before timeout. It's important to keep those information for debug.\n // Client can also provide the info for making next decision\n 40: optional string lastFailureReason\n 50: optional binary lastFailureDetails\n}\n\nstruct ActivityTaskCancelRequestedEventAttributes {\n 10: optional string activityId\n 20: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n}\n\nstruct RequestCancelActivityTaskFailedEventAttributes{\n 10: optional string activityId\n 20: optional string cause\n 30: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n}\n\nstruct ActivityTaskCanceledEventAttributes {\n 10: optional binary details\n 20: optional i64 (js.type = \"Long\") latestCancelRequestedEventId\n 30: optional i64 (js.type = \"Long\") scheduledEventId\n 40: optional i64 (js.type = \"Long\") startedEventId\n 50: optional string identity\n}\n\nstruct TimerStartedEventAttributes {\n 10: optional string timerId\n 20: optional i64 (js.type = \"Long\") startToFireTimeoutSeconds\n 30: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n}\n\nstruct TimerFiredEventAttributes {\n 10: optional string timerId\n 20: optional i64 (js.type = \"Long\") startedEventId\n}\n\nstruct TimerCanceledEventAttributes {\n 10: optional string timerId\n 20: optional i64 (js.type = \"Long\") startedEventId\n 30: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 40: optional string identity\n}\n\nstruct CancelTimerFailedEventAttributes {\n 10: optional string timerId\n 20: optional string cause\n 30: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 40: optional string identity\n}\n\nstruct WorkflowExecutionCancelRequestedEventAttributes {\n 10: optional string cause\n 20: optional i64 (js.type = \"Long\") externalInitiatedEventId\n 30: optional WorkflowExecution externalWorkflowExecution\n 40: optional string identity\n 50: optional string requestId\n}\n\nstruct WorkflowExecutionCanceledEventAttributes {\n 10: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 20: optional binary details\n}\n\nstruct MarkerRecordedEventAttributes {\n 10: optional string markerName\n 20: optional binary details\n 30: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 40: optional Header header\n}\n\nstruct WorkflowExecutionSignaledEventAttributes {\n 10: optional string signalName\n 20: optional binary input\n 30: optional string identity\n 40: optional string requestId\n}\n\nstruct WorkflowExecutionTerminatedEventAttributes {\n 10: optional string reason\n 20: optional binary details\n 30: optional string identity\n}\n\nstruct RequestCancelExternalWorkflowExecutionInitiatedEventAttributes {\n 10: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 20: optional string domain\n 30: optional WorkflowExecution workflowExecution\n 40: optional binary control\n 50: optional bool childWorkflowOnly\n}\n\nstruct RequestCancelExternalWorkflowExecutionFailedEventAttributes {\n 10: optional CancelExternalWorkflowExecutionFailedCause cause\n 20: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 30: optional string domain\n 40: optional WorkflowExecution workflowExecution\n 50: optional i64 (js.type = \"Long\") initiatedEventId\n 60: optional binary control\n}\n\nstruct ExternalWorkflowExecutionCancelRequestedEventAttributes {\n 10: optional i64 (js.type = \"Long\") initiatedEventId\n 20: optional string domain\n 30: optional WorkflowExecution workflowExecution\n}\n\nstruct SignalExternalWorkflowExecutionInitiatedEventAttributes {\n 10: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 20: optional string domain\n 30: optional WorkflowExecution workflowExecution\n 40: optional string signalName\n 50: optional binary input\n 60: optional binary control\n 70: optional bool childWorkflowOnly\n}\n\nstruct SignalExternalWorkflowExecutionFailedEventAttributes {\n 10: optional SignalExternalWorkflowExecutionFailedCause cause\n 20: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 30: optional string domain\n 40: optional WorkflowExecution workflowExecution\n 50: optional i64 (js.type = \"Long\") initiatedEventId\n 60: optional binary control\n}\n\nstruct ExternalWorkflowExecutionSignaledEventAttributes {\n 10: optional i64 (js.type = \"Long\") initiatedEventId\n 20: optional string domain\n 30: optional WorkflowExecution workflowExecution\n 40: optional binary control\n}\n\nstruct UpsertWorkflowSearchAttributesEventAttributes {\n 10: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 20: optional SearchAttributes searchAttributes\n}\n\nstruct StartChildWorkflowExecutionInitiatedEventAttributes {\n 10: optional string domain\n 20: optional string workflowId\n 30: optional WorkflowType workflowType\n 40: optional TaskList taskList\n 50: optional binary input\n 60: optional i32 executionStartToCloseTimeoutSeconds\n 70: optional i32 taskStartToCloseTimeoutSeconds\n// 80: optional ChildPolicy childPolicy -- Removed but reserve the IDL order number\n 81: optional ParentClosePolicy parentClosePolicy\n 90: optional binary control\n 100: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 110: optional WorkflowIdReusePolicy workflowIdReusePolicy\n 120: optional RetryPolicy retryPolicy\n 130: optional string cronSchedule\n 140: optional Header header\n 150: optional Memo memo\n 160: optional SearchAttributes searchAttributes\n 170: optional i32 delayStartSeconds\n 180: optional i32 jitterStartSeconds\n 190: optional i64 (js.type = \"Long\") firstRunAtTimestamp\n}\n\nstruct StartChildWorkflowExecutionFailedEventAttributes {\n 10: optional string domain\n 20: optional string workflowId\n 30: optional WorkflowType workflowType\n 40: optional ChildWorkflowExecutionFailedCause cause\n 50: optional binary control\n 60: optional i64 (js.type = \"Long\") initiatedEventId\n 70: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n}\n\nstruct ChildWorkflowExecutionStartedEventAttributes {\n 10: optional string domain\n 20: optional i64 (js.type = \"Long\") initiatedEventId\n 30: optional WorkflowExecution workflowExecution\n 40: optional WorkflowType workflowType\n 50: optional Header header\n}\n\nstruct ChildWorkflowExecutionCompletedEventAttributes {\n 10: optional binary result\n 20: optional string domain\n 30: optional WorkflowExecution workflowExecution\n 40: optional WorkflowType workflowType\n 50: optional i64 (js.type = \"Long\") initiatedEventId\n 60: optional i64 (js.type = \"Long\") startedEventId\n}\n\nstruct ChildWorkflowExecutionFailedEventAttributes {\n 10: optional string reason\n 20: optional binary details\n 30: optional string domain\n 40: optional WorkflowExecution workflowExecution\n 50: optional WorkflowType workflowType\n 60: optional i64 (js.type = \"Long\") initiatedEventId\n 70: optional i64 (js.type = \"Long\") startedEventId\n}\n\nstruct ChildWorkflowExecutionCanceledEventAttributes {\n 10: optional binary details\n 20: optional string domain\n 30: optional WorkflowExecution workflowExecution\n 40: optional WorkflowType workflowType\n 50: optional i64 (js.type = \"Long\") initiatedEventId\n 60: optional i64 (js.type = \"Long\") startedEventId\n}\n\nstruct ChildWorkflowExecutionTimedOutEventAttributes {\n 10: optional TimeoutType timeoutType\n 20: optional string domain\n 30: optional WorkflowExecution workflowExecution\n 40: optional WorkflowType workflowType\n 50: optional i64 (js.type = \"Long\") initiatedEventId\n 60: optional i64 (js.type = \"Long\") startedEventId\n}\n\nstruct ChildWorkflowExecutionTerminatedEventAttributes {\n 10: optional string domain\n 20: optional WorkflowExecution workflowExecution\n 30: optional WorkflowType workflowType\n 40: optional i64 (js.type = \"Long\") initiatedEventId\n 50: optional i64 (js.type = \"Long\") startedEventId\n}\n\nstruct HistoryEvent {\n 10: optional i64 (js.type = \"Long\") eventId\n 20: optional i64 (js.type = \"Long\") timestamp\n 30: optional EventType eventType\n 35: optional i64 (js.type = \"Long\") version\n 36: optional i64 (js.type = \"Long\") taskId\n 40: optional WorkflowExecutionStartedEventAttributes workflowExecutionStartedEventAttributes\n 50: optional WorkflowExecutionCompletedEventAttributes workflowExecutionCompletedEventAttributes\n 60: optional WorkflowExecutionFailedEventAttributes workflowExecutionFailedEventAttributes\n 70: optional WorkflowExecutionTimedOutEventAttributes workflowExecutionTimedOutEventAttributes\n 80: optional DecisionTaskScheduledEventAttributes decisionTaskScheduledEventAttributes\n 90: optional DecisionTaskStartedEventAttributes decisionTaskStartedEventAttributes\n 100: optional DecisionTaskCompletedEventAttributes decisionTaskCompletedEventAttributes\n 110: optional DecisionTaskTimedOutEventAttributes decisionTaskTimedOutEventAttributes\n 120: optional DecisionTaskFailedEventAttributes decisionTaskFailedEventAttributes\n 130: optional ActivityTaskScheduledEventAttributes activityTaskScheduledEventAttributes\n 140: optional ActivityTaskStartedEventAttributes activityTaskStartedEventAttributes\n 150: optional ActivityTaskCompletedEventAttributes activityTaskCompletedEventAttributes\n 160: optional ActivityTaskFailedEventAttributes activityTaskFailedEventAttributes\n 170: optional ActivityTaskTimedOutEventAttributes activityTaskTimedOutEventAttributes\n 180: optional TimerStartedEventAttributes timerStartedEventAttributes\n 190: optional TimerFiredEventAttributes timerFiredEventAttributes\n 200: optional ActivityTaskCancelRequestedEventAttributes activityTaskCancelRequestedEventAttributes\n 210: optional RequestCancelActivityTaskFailedEventAttributes requestCancelActivityTaskFailedEventAttributes\n 220: optional ActivityTaskCanceledEventAttributes activityTaskCanceledEventAttributes\n 230: optional TimerCanceledEventAttributes timerCanceledEventAttributes\n 240: optional CancelTimerFailedEventAttributes cancelTimerFailedEventAttributes\n 250: optional MarkerRecordedEventAttributes markerRecordedEventAttributes\n 260: optional WorkflowExecutionSignaledEventAttributes workflowExecutionSignaledEventAttributes\n 270: optional WorkflowExecutionTerminatedEventAttributes workflowExecutionTerminatedEventAttributes\n 280: optional WorkflowExecutionCancelRequestedEventAttributes workflowExecutionCancelRequestedEventAttributes\n 290: optional WorkflowExecutionCanceledEventAttributes workflowExecutionCanceledEventAttributes\n 300: optional RequestCancelExternalWorkflowExecutionInitiatedEventAttributes requestCancelExternalWorkflowExecutionInitiatedEventAttributes\n 310: optional RequestCancelExternalWorkflowExecutionFailedEventAttributes requestCancelExternalWorkflowExecutionFailedEventAttributes\n 320: optional ExternalWorkflowExecutionCancelRequestedEventAttributes externalWorkflowExecutionCancelRequestedEventAttributes\n 330: optional WorkflowExecutionContinuedAsNewEventAttributes workflowExecutionContinuedAsNewEventAttributes\n 340: optional StartChildWorkflowExecutionInitiatedEventAttributes startChildWorkflowExecutionInitiatedEventAttributes\n 350: optional StartChildWorkflowExecutionFailedEventAttributes startChildWorkflowExecutionFailedEventAttributes\n 360: optional ChildWorkflowExecutionStartedEventAttributes childWorkflowExecutionStartedEventAttributes\n 370: optional ChildWorkflowExecutionCompletedEventAttributes childWorkflowExecutionCompletedEventAttributes\n 380: optional ChildWorkflowExecutionFailedEventAttributes childWorkflowExecutionFailedEventAttributes\n 390: optional ChildWorkflowExecutionCanceledEventAttributes childWorkflowExecutionCanceledEventAttributes\n 400: optional ChildWorkflowExecutionTimedOutEventAttributes childWorkflowExecutionTimedOutEventAttributes\n 410: optional ChildWorkflowExecutionTerminatedEventAttributes childWorkflowExecutionTerminatedEventAttributes\n 420: optional SignalExternalWorkflowExecutionInitiatedEventAttributes signalExternalWorkflowExecutionInitiatedEventAttributes\n 430: optional SignalExternalWorkflowExecutionFailedEventAttributes signalExternalWorkflowExecutionFailedEventAttributes\n 440: optional ExternalWorkflowExecutionSignaledEventAttributes externalWorkflowExecutionSignaledEventAttributes\n 450: optional UpsertWorkflowSearchAttributesEventAttributes upsertWorkflowSearchAttributesEventAttributes\n}\n\nstruct History {\n 10: optional list events\n}\n\nstruct WorkflowExecutionFilter {\n 10: optional string workflowId\n 20: optional string runId\n}\n\nstruct WorkflowTypeFilter {\n 10: optional string name\n}\n\nstruct StartTimeFilter {\n 10: optional i64 (js.type = \"Long\") earliestTime\n 20: optional i64 (js.type = \"Long\") latestTime\n}\n\nstruct DomainInfo {\n 10: optional string name\n 20: optional DomainStatus status\n 30: optional string description\n 40: optional string ownerEmail\n // A key-value map for any customized purpose\n 50: optional map data\n 60: optional string uuid\n}\n\nstruct DomainConfiguration {\n 10: optional i32 workflowExecutionRetentionPeriodInDays\n 20: optional bool emitMetric\n 60: optional IsolationGroupConfiguration isolationgroups\n 70: optional BadBinaries badBinaries\n 80: optional ArchivalStatus historyArchivalStatus\n 90: optional string historyArchivalURI\n 100: optional ArchivalStatus visibilityArchivalStatus\n 110: optional string visibilityArchivalURI\n 120: optional AsyncWorkflowConfiguration AsyncWorkflowConfiguration\n}\n\nstruct FailoverInfo {\n 10: optional i64 (js.type = \"Long\") failoverVersion\n 20: optional i64 (js.type = \"Long\") failoverStartTimestamp\n 30: optional i64 (js.type = \"Long\") failoverExpireTimestamp\n 40: optional i32 completedShardCount\n 50: optional list pendingShards\n}\n\nstruct BadBinaries{\n 10: optional map binaries\n}\n\nstruct BadBinaryInfo{\n 10: optional string reason\n 20: optional string operator\n 30: optional i64 (js.type = \"Long\") createdTimeNano\n}\n\nstruct UpdateDomainInfo {\n 10: optional string description\n 20: optional string ownerEmail\n // A key-value map for any customized purpose\n 30: optional map data\n}\n\nstruct ClusterReplicationConfiguration {\n 10: optional string clusterName\n}\n\nstruct DomainReplicationConfiguration {\n 10: optional string activeClusterName\n 20: optional list clusters\n}\n\nstruct RegisterDomainRequest {\n 10: optional string name\n 20: optional string description\n 30: optional string ownerEmail\n 40: optional i32 workflowExecutionRetentionPeriodInDays\n 50: optional bool emitMetric = true\n 60: optional list clusters\n 70: optional string activeClusterName\n // A key-value map for any customized purpose\n 80: optional map data\n 90: optional string securityToken\n 120: optional bool isGlobalDomain\n 130: optional ArchivalStatus historyArchivalStatus\n 140: optional string historyArchivalURI\n 150: optional ArchivalStatus visibilityArchivalStatus\n 160: optional string visibilityArchivalURI\n}\n\nstruct ListDomainsRequest {\n 10: optional i32 pageSize\n 20: optional binary nextPageToken\n}\n\nstruct ListDomainsResponse {\n 10: optional list domains\n 20: optional binary nextPageToken\n}\n\nstruct DescribeDomainRequest {\n 10: optional string name\n 20: optional string uuid\n}\n\nstruct DescribeDomainResponse {\n 10: optional DomainInfo domainInfo\n 20: optional DomainConfiguration configuration\n 30: optional DomainReplicationConfiguration replicationConfiguration\n 40: optional i64 (js.type = \"Long\") failoverVersion\n 50: optional bool isGlobalDomain\n 60: optional FailoverInfo failoverInfo\n}\n\nstruct UpdateDomainRequest {\n 10: optional string name\n 20: optional UpdateDomainInfo updatedInfo\n 30: optional DomainConfiguration configuration\n 40: optional DomainReplicationConfiguration replicationConfiguration\n 50: optional string securityToken\n 60: optional string deleteBadBinary\n 70: optional i32 failoverTimeoutInSeconds\n}\n\nstruct UpdateDomainResponse {\n 10: optional DomainInfo domainInfo\n 20: optional DomainConfiguration configuration\n 30: optional DomainReplicationConfiguration replicationConfiguration\n 40: optional i64 (js.type = \"Long\") failoverVersion\n 50: optional bool isGlobalDomain\n}\n\nstruct DeprecateDomainRequest {\n 10: optional string name\n 20: optional string securityToken\n}\n\nstruct StartWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional string workflowId\n 30: optional WorkflowType workflowType\n 40: optional TaskList taskList\n 50: optional binary input\n 60: optional i32 executionStartToCloseTimeoutSeconds\n 70: optional i32 taskStartToCloseTimeoutSeconds\n 80: optional string identity\n 90: optional string requestId\n 100: optional WorkflowIdReusePolicy workflowIdReusePolicy\n// 110: optional ChildPolicy childPolicy -- Removed but reserve the IDL order number\n 120: optional RetryPolicy retryPolicy\n 130: optional string cronSchedule\n 140: optional Memo memo\n 141: optional SearchAttributes searchAttributes\n 150: optional Header header\n 160: optional i32 delayStartSeconds\n 170: optional i32 jitterStartSeconds\n 180: optional i64 (js.type = \"Long\") firstRunAtTimestamp\n}\n\nstruct StartWorkflowExecutionResponse {\n 10: optional string runId\n}\n\nstruct StartWorkflowExecutionAsyncRequest {\n 10: optional StartWorkflowExecutionRequest request\n}\n\nstruct StartWorkflowExecutionAsyncResponse {\n}\n\nstruct RestartWorkflowExecutionResponse {\n 10: optional string runId\n}\n\nstruct DiagnoseWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional WorkflowExecution workflowExecution\n 30: optional string identity\n}\n\nstruct DiagnoseWorkflowExecutionResponse {\n 10: optional string domain\n 20: optional WorkflowExecution diagnosticWorkflowExecution\n}\n\nstruct PollForDecisionTaskRequest {\n 10: optional string domain\n 20: optional TaskList taskList\n 30: optional string identity\n 40: optional string binaryChecksum\n}\n\nstruct PollForDecisionTaskResponse {\n 10: optional binary taskToken\n 20: optional WorkflowExecution workflowExecution\n 30: optional WorkflowType workflowType\n 40: optional i64 (js.type = \"Long\") previousStartedEventId\n 50: optional i64 (js.type = \"Long\") startedEventId\n 51: optional i64 (js.type = 'Long') attempt\n 54: optional i64 (js.type = \"Long\") backlogCountHint\n 60: optional History history\n 70: optional binary nextPageToken\n 80: optional WorkflowQuery query\n 90: optional TaskList WorkflowExecutionTaskList\n 100: optional i64 (js.type = \"Long\") scheduledTimestamp\n 110: optional i64 (js.type = \"Long\") startedTimestamp\n 120: optional map queries\n 130: optional i64 (js.type = 'Long') nextEventId\n 140: optional i64 (js.type = 'Long') totalHistoryBytes\n 150: optional AutoConfigHint autoConfigHint\n}\n\nstruct StickyExecutionAttributes {\n 10: optional TaskList workerTaskList\n 20: optional i32 scheduleToStartTimeoutSeconds\n}\n\nstruct RespondDecisionTaskCompletedRequest {\n 10: optional binary taskToken\n 20: optional list decisions\n 30: optional binary executionContext\n 40: optional string identity\n 50: optional StickyExecutionAttributes stickyAttributes\n 60: optional bool returnNewDecisionTask\n 70: optional bool forceCreateNewDecisionTask\n 80: optional string binaryChecksum\n 90: optional map queryResults\n}\n\nstruct RespondDecisionTaskCompletedResponse {\n 10: optional PollForDecisionTaskResponse decisionTask\n 20: optional map activitiesToDispatchLocally\n}\n\nstruct RespondDecisionTaskFailedRequest {\n 10: optional binary taskToken\n 20: optional DecisionTaskFailedCause cause\n 30: optional binary details\n 40: optional string identity\n 50: optional string binaryChecksum\n}\n\nstruct PollForActivityTaskRequest {\n 10: optional string domain\n 20: optional TaskList taskList\n 30: optional string identity\n 40: optional TaskListMetadata taskListMetadata\n}\n\nstruct PollForActivityTaskResponse {\n 10: optional binary taskToken\n 20: optional WorkflowExecution workflowExecution\n 30: optional string activityId\n 40: optional ActivityType activityType\n 50: optional binary input\n 70: optional i64 (js.type = \"Long\") scheduledTimestamp\n 80: optional i32 scheduleToCloseTimeoutSeconds\n 90: optional i64 (js.type = \"Long\") startedTimestamp\n 100: optional i32 startToCloseTimeoutSeconds\n 110: optional i32 heartbeatTimeoutSeconds\n 120: optional i32 attempt\n 130: optional i64 (js.type = \"Long\") scheduledTimestampOfThisAttempt\n 140: optional binary heartbeatDetails\n 150: optional WorkflowType workflowType\n 160: optional string workflowDomain\n 170: optional Header header\n 180: optional AutoConfigHint autoConfigHint\n}\n\nstruct RecordActivityTaskHeartbeatRequest {\n 10: optional binary taskToken\n 20: optional binary details\n 30: optional string identity\n}\n\nstruct RecordActivityTaskHeartbeatByIDRequest {\n 10: optional string domain\n 20: optional string workflowID\n 30: optional string runID\n 40: optional string activityID\n 50: optional binary details\n 60: optional string identity\n}\n\nstruct RecordActivityTaskHeartbeatResponse {\n 10: optional bool cancelRequested\n}\n\nstruct RespondActivityTaskCompletedRequest {\n 10: optional binary taskToken\n 20: optional binary result\n 30: optional string identity\n}\n\nstruct RespondActivityTaskFailedRequest {\n 10: optional binary taskToken\n 20: optional string reason\n 30: optional binary details\n 40: optional string identity\n}\n\nstruct RespondActivityTaskCanceledRequest {\n 10: optional binary taskToken\n 20: optional binary details\n 30: optional string identity\n}\n\nstruct RespondActivityTaskCompletedByIDRequest {\n 10: optional string domain\n 20: optional string workflowID\n 30: optional string runID\n 40: optional string activityID\n 50: optional binary result\n 60: optional string identity\n}\n\nstruct RespondActivityTaskFailedByIDRequest {\n 10: optional string domain\n 20: optional string workflowID\n 30: optional string runID\n 40: optional string activityID\n 50: optional string reason\n 60: optional binary details\n 70: optional string identity\n}\n\nstruct RespondActivityTaskCanceledByIDRequest {\n 10: optional string domain\n 20: optional string workflowID\n 30: optional string runID\n 40: optional string activityID\n 50: optional binary details\n 60: optional string identity\n}\n\nstruct RequestCancelWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional WorkflowExecution workflowExecution\n 30: optional string identity\n 40: optional string requestId\n 50: optional string cause\n 60: optional string firstExecutionRunID\n}\n\nstruct GetWorkflowExecutionHistoryRequest {\n 10: optional string domain\n 20: optional WorkflowExecution execution\n 30: optional i32 maximumPageSize\n 40: optional binary nextPageToken\n 50: optional bool waitForNewEvent\n 60: optional HistoryEventFilterType HistoryEventFilterType\n 70: optional bool skipArchival\n}\n\nstruct GetWorkflowExecutionHistoryResponse {\n 10: optional History history\n 11: optional list rawHistory\n 20: optional binary nextPageToken\n 30: optional bool archived\n}\n\nstruct SignalWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional WorkflowExecution workflowExecution\n 30: optional string signalName\n 40: optional binary input\n 50: optional string identity\n 60: optional string requestId\n 70: optional binary control\n}\n\nstruct SignalWithStartWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional string workflowId\n 30: optional WorkflowType workflowType\n 40: optional TaskList taskList\n 50: optional binary input\n 60: optional i32 executionStartToCloseTimeoutSeconds\n 70: optional i32 taskStartToCloseTimeoutSeconds\n 80: optional string identity\n 90: optional string requestId\n 100: optional WorkflowIdReusePolicy workflowIdReusePolicy\n 110: optional string signalName\n 120: optional binary signalInput\n 130: optional binary control\n 140: optional RetryPolicy retryPolicy\n 150: optional string cronSchedule\n 160: optional Memo memo\n 161: optional SearchAttributes searchAttributes\n 170: optional Header header\n 180: optional i32 delayStartSeconds\n 190: optional i32 jitterStartSeconds\n 200: optional i64 (js.type = \"Long\") firstRunAtTimestamp\n}\n\nstruct SignalWithStartWorkflowExecutionAsyncRequest {\n 10: optional SignalWithStartWorkflowExecutionRequest request\n}\n\nstruct SignalWithStartWorkflowExecutionAsyncResponse {\n}\n\nstruct RestartWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional WorkflowExecution workflowExecution\n 30: optional string reason\n 40: optional string identity\n}\nstruct TerminateWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional WorkflowExecution workflowExecution\n 30: optional string reason\n 40: optional binary details\n 50: optional string identity\n 60: optional string firstExecutionRunID\n}\n\nstruct ResetWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional WorkflowExecution workflowExecution\n 30: optional string reason\n 40: optional i64 (js.type = \"Long\") decisionFinishEventId\n 50: optional string requestId\n 60: optional bool skipSignalReapply\n}\n\nstruct ResetWorkflowExecutionResponse {\n 10: optional string runId\n}\n\nstruct ListOpenWorkflowExecutionsRequest {\n 10: optional string domain\n 20: optional i32 maximumPageSize\n 30: optional binary nextPageToken\n 40: optional StartTimeFilter StartTimeFilter\n 50: optional WorkflowExecutionFilter executionFilter\n 60: optional WorkflowTypeFilter typeFilter\n}\n\nstruct ListOpenWorkflowExecutionsResponse {\n 10: optional list executions\n 20: optional binary nextPageToken\n}\n\nstruct ListClosedWorkflowExecutionsRequest {\n 10: optional string domain\n 20: optional i32 maximumPageSize\n 30: optional binary nextPageToken\n 40: optional StartTimeFilter StartTimeFilter\n 50: optional WorkflowExecutionFilter executionFilter\n 60: optional WorkflowTypeFilter typeFilter\n 70: optional WorkflowExecutionCloseStatus statusFilter\n}\n\nstruct ListClosedWorkflowExecutionsResponse {\n 10: optional list executions\n 20: optional binary nextPageToken\n}\n\nstruct ListWorkflowExecutionsRequest {\n 10: optional string domain\n 20: optional i32 pageSize\n 30: optional binary nextPageToken\n 40: optional string query\n}\n\nstruct ListWorkflowExecutionsResponse {\n 10: optional list executions\n 20: optional binary nextPageToken\n}\n\nstruct ListArchivedWorkflowExecutionsRequest {\n 10: optional string domain\n 20: optional i32 pageSize\n 30: optional binary nextPageToken\n 40: optional string query\n}\n\nstruct ListArchivedWorkflowExecutionsResponse {\n 10: optional list executions\n 20: optional binary nextPageToken\n}\n\nstruct CountWorkflowExecutionsRequest {\n 10: optional string domain\n 20: optional string query\n}\n\nstruct CountWorkflowExecutionsResponse {\n 10: optional i64 count\n}\n\nstruct GetSearchAttributesResponse {\n 10: optional map keys\n}\n\nstruct QueryWorkflowRequest {\n 10: optional string domain\n 20: optional WorkflowExecution execution\n 30: optional WorkflowQuery query\n // QueryRejectCondition can used to reject the query if workflow state does not satisify condition\n 40: optional QueryRejectCondition queryRejectCondition\n 50: optional QueryConsistencyLevel queryConsistencyLevel\n}\n\nstruct QueryRejected {\n 10: optional WorkflowExecutionCloseStatus closeStatus\n}\n\nstruct QueryWorkflowResponse {\n 10: optional binary queryResult\n 20: optional QueryRejected queryRejected\n}\n\nstruct WorkflowQuery {\n 10: optional string queryType\n 20: optional binary queryArgs\n}\n\nstruct ResetStickyTaskListRequest {\n 10: optional string domain\n 20: optional WorkflowExecution execution\n}\n\nstruct ResetStickyTaskListResponse {\n // The reason to keep this response is to allow returning\n // information in the future.\n}\n\nstruct RespondQueryTaskCompletedRequest {\n 10: optional binary taskToken\n 20: optional QueryTaskCompletedType completedType\n 30: optional binary queryResult\n 40: optional string errorMessage\n 50: optional WorkerVersionInfo workerVersionInfo\n}\n\nstruct WorkflowQueryResult {\n 10: optional QueryResultType resultType\n 20: optional binary answer\n 30: optional string errorMessage\n}\n\nstruct DescribeWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional WorkflowExecution execution\n}\n\nstruct PendingActivityInfo {\n 10: optional string activityID\n 20: optional ActivityType activityType\n 30: optional PendingActivityState state\n 40: optional binary heartbeatDetails\n 50: optional i64 (js.type = \"Long\") lastHeartbeatTimestamp\n 60: optional i64 (js.type = \"Long\") lastStartedTimestamp\n 70: optional i32 attempt\n 80: optional i32 maximumAttempts\n 90: optional i64 (js.type = \"Long\") scheduledTimestamp\n 100: optional i64 (js.type = \"Long\") expirationTimestamp\n 110: optional string lastFailureReason\n 120: optional string lastWorkerIdentity\n 130: optional binary lastFailureDetails\n 140: optional string startedWorkerIdentity\n 150: optional i64 (js.type = \"Long\") scheduleID\n}\n\nstruct PendingDecisionInfo {\n 10: optional PendingDecisionState state\n 20: optional i64 (js.type = \"Long\") scheduledTimestamp\n 30: optional i64 (js.type = \"Long\") startedTimestamp\n 40: optional i64 attempt\n 50: optional i64 (js.type = \"Long\") originalScheduledTimestamp\n 60: optional i64 (js.type = \"Long\") scheduleID\n}\n\nstruct PendingChildExecutionInfo {\n 1: optional string domain\n 10: optional string workflowID\n 20: optional string runID\n 30: optional string workflowTypName\n 40: optional i64 (js.type = \"Long\") initiatedID\n 50: optional ParentClosePolicy parentClosePolicy\n}\n\nstruct DescribeWorkflowExecutionResponse {\n 10: optional WorkflowExecutionConfiguration executionConfiguration\n 20: optional WorkflowExecutionInfo workflowExecutionInfo\n 30: optional list pendingActivities\n 40: optional list pendingChildren\n 50: optional PendingDecisionInfo pendingDecision\n}\n\nstruct DescribeTaskListRequest {\n 10: optional string domain\n 20: optional TaskList taskList\n 30: optional TaskListType taskListType\n 40: optional bool includeTaskListStatus\n}\n\nstruct DescribeTaskListResponse {\n 10: optional list pollers\n 20: optional TaskListStatus taskListStatus\n}\n\nstruct GetTaskListsByDomainRequest {\n 10: optional string domainName\n}\n\nstruct GetTaskListsByDomainResponse {\n 10: optional map decisionTaskListMap\n 20: optional map activityTaskListMap\n}\n\nstruct ListTaskListPartitionsRequest {\n 10: optional string domain\n 20: optional TaskList taskList\n}\n\nstruct TaskListPartitionMetadata {\n 10: optional string key\n 20: optional string ownerHostName\n}\n\nstruct ListTaskListPartitionsResponse {\n 10: optional list activityTaskListPartitions\n 20: optional list decisionTaskListPartitions\n}\n\nstruct TaskListStatus {\n 10: optional i64 (js.type = \"Long\") backlogCountHint\n 20: optional i64 (js.type = \"Long\") readLevel\n 30: optional i64 (js.type = \"Long\") ackLevel\n 35: optional double ratePerSecond\n 40: optional TaskIDBlock taskIDBlock\n}\n\nstruct TaskIDBlock {\n 10: optional i64 (js.type = \"Long\") startID\n 20: optional i64 (js.type = \"Long\") endID\n}\n\n//At least one of the parameters needs to be provided\nstruct DescribeHistoryHostRequest {\n 10: optional string hostAddress //ip:port\n 20: optional i32 shardIdForHost\n 30: optional WorkflowExecution executionForHost\n}\n\nstruct RemoveTaskRequest {\n 10: optional i32 shardID\n 20: optional i32 type\n 30: optional i64 (js.type = \"Long\") taskID\n 40: optional i64 (js.type = \"Long\") visibilityTimestamp\n 50: optional string clusterName\n}\n\nstruct CloseShardRequest {\n 10: optional i32 shardID\n}\n\nstruct ResetQueueRequest {\n 10: optional i32 shardID\n 20: optional string clusterName\n 30: optional i32 type\n}\n\nstruct DescribeQueueRequest {\n 10: optional i32 shardID\n 20: optional string clusterName\n 30: optional i32 type\n}\n\nstruct DescribeQueueResponse {\n 10: optional list processingQueueStates\n}\n\nstruct DescribeShardDistributionRequest {\n 10: optional i32 pageSize\n 20: optional i32 pageID\n}\n\nstruct DescribeShardDistributionResponse {\n 10: optional i32 numberOfShards\n\n // ShardID to Address (ip:port) map\n 20: optional map shards\n}\n\nstruct DescribeHistoryHostResponse{\n 10: optional i32 numberOfShards\n 20: optional list shardIDs\n 30: optional DomainCacheInfo domainCache\n 40: optional string shardControllerStatus\n 50: optional string address\n}\n\nstruct DomainCacheInfo{\n 10: optional i64 numOfItemsInCacheByID\n 20: optional i64 numOfItemsInCacheByName\n}\n\nenum TaskListType {\n /*\n * Decision type of tasklist\n */\n Decision,\n /*\n * Activity type of tasklist\n */\n Activity,\n}\n\nstruct PollerInfo {\n // Unix Nano\n 10: optional i64 (js.type = \"Long\") lastAccessTime\n 20: optional string identity\n 30: optional double ratePerSecond\n}\n\nstruct RetryPolicy {\n // Interval of the first retry. If coefficient is 1.0 then it is used for all retries.\n 10: optional i32 initialIntervalInSeconds\n\n // Coefficient used to calculate the next retry interval.\n // The next retry interval is previous interval multiplied by the coefficient.\n // Must be 1 or larger.\n 20: optional double backoffCoefficient\n\n // Maximum interval between retries. Exponential backoff leads to interval increase.\n // This value is the cap of the increase. Default is 100x of initial interval.\n 30: optional i32 maximumIntervalInSeconds\n\n // Maximum number of attempts. When exceeded the retries stop even if not expired yet.\n // Must be 1 or bigger. Default is unlimited.\n 40: optional i32 maximumAttempts\n\n // Non-Retriable errors. Will stop retrying if error matches this list.\n 50: optional list nonRetriableErrorReasons\n\n // Expiration time for the whole retry process.\n 60: optional i32 expirationIntervalInSeconds\n}\n\n// HistoryBranchRange represents a piece of range for a branch.\nstruct HistoryBranchRange{\n // branchID of original branch forked from\n 10: optional string branchID\n // beinning node for the range, inclusive\n 20: optional i64 beginNodeID\n // ending node for the range, exclusive\n 30: optional i64 endNodeID\n}\n\n// For history persistence to serialize/deserialize branch details\nstruct HistoryBranch{\n 10: optional string treeID\n 20: optional string branchID\n 30: optional list ancestors\n}\n\n// VersionHistoryItem contains signal eventID and the corresponding version\nstruct VersionHistoryItem{\n 10: optional i64 (js.type = \"Long\") eventID\n 20: optional i64 (js.type = \"Long\") version\n}\n\n// VersionHistory contains the version history of a branch\nstruct VersionHistory{\n 10: optional binary branchToken\n 20: optional list items\n}\n\n// VersionHistories contains all version histories from all branches\nstruct VersionHistories{\n 10: optional i32 currentVersionHistoryIndex\n 20: optional list histories\n}\n\n// ReapplyEventsRequest is the request for reapply events API\nstruct ReapplyEventsRequest{\n 10: optional string domainName\n 20: optional WorkflowExecution workflowExecution\n 30: optional DataBlob events\n}\n\n// SupportedClientVersions contains the support versions for client library\nstruct SupportedClientVersions{\n 10: optional string goSdk\n 20: optional string javaSdk\n}\n\n// ClusterInfo contains information about cadence cluster\nstruct ClusterInfo{\n 10: optional SupportedClientVersions supportedClientVersions\n}\n\nstruct RefreshWorkflowTasksRequest {\n 10: optional string domain\n 20: optional WorkflowExecution execution\n}\n\nstruct FeatureFlags {\n\t10: optional bool WorkflowExecutionAlreadyCompletedErrorEnabled\n}\n\nenum CrossClusterTaskType {\n StartChildExecution\n CancelExecution\n SignalExecution\n RecordChildWorkflowExecutionComplete\n ApplyParentClosePolicy\n}\n\nenum CrossClusterTaskFailedCause {\n DOMAIN_NOT_ACTIVE\n DOMAIN_NOT_EXISTS\n WORKFLOW_ALREADY_RUNNING\n WORKFLOW_NOT_EXISTS\n WORKFLOW_ALREADY_COMPLETED\n UNCATEGORIZED\n}\n\nenum GetTaskFailedCause {\n SERVICE_BUSY\n TIMEOUT\n SHARD_OWNERSHIP_LOST\n UNCATEGORIZED\n}\n\nstruct CrossClusterTaskInfo {\n 10: optional string domainID\n 20: optional string workflowID\n 30: optional string runID\n 40: optional CrossClusterTaskType taskType\n 50: optional i16 taskState\n 60: optional i64 (js.type = \"Long\") taskID\n 70: optional i64 (js.type = \"Long\") visibilityTimestamp\n}\n\nstruct CrossClusterStartChildExecutionRequestAttributes {\n 10: optional string targetDomainID\n 20: optional string requestID\n 30: optional i64 (js.type = \"Long\") initiatedEventID\n 40: optional StartChildWorkflowExecutionInitiatedEventAttributes initiatedEventAttributes\n // targetRunID is for scheduling first decision task\n // targetWorkflowID is available in initiatedEventAttributes\n 50: optional string targetRunID\n 60: optional map partitionConfig\n}\n\nstruct CrossClusterStartChildExecutionResponseAttributes {\n 10: optional string runID\n}\n\nstruct CrossClusterCancelExecutionRequestAttributes {\n 10: optional string targetDomainID\n 20: optional string targetWorkflowID\n 30: optional string targetRunID\n 40: optional string requestID\n 50: optional i64 (js.type = \"Long\") initiatedEventID\n 60: optional bool childWorkflowOnly\n}\n\nstruct CrossClusterCancelExecutionResponseAttributes {\n}\n\nstruct CrossClusterSignalExecutionRequestAttributes {\n 10: optional string targetDomainID\n 20: optional string targetWorkflowID\n 30: optional string targetRunID\n 40: optional string requestID\n 50: optional i64 (js.type = \"Long\") initiatedEventID\n 60: optional bool childWorkflowOnly\n 70: optional string signalName\n 80: optional binary signalInput\n 90: optional binary control\n}\n\nstruct CrossClusterSignalExecutionResponseAttributes {\n}\n\nstruct CrossClusterRecordChildWorkflowExecutionCompleteRequestAttributes {\n 10: optional string targetDomainID\n 20: optional string targetWorkflowID\n 30: optional string targetRunID\n 40: optional i64 (js.type = \"Long\") initiatedEventID\n 50: optional HistoryEvent completionEvent\n}\n\nstruct CrossClusterRecordChildWorkflowExecutionCompleteResponseAttributes {\n}\n\nstruct ApplyParentClosePolicyAttributes {\n 10: optional string childDomainID\n 20: optional string childWorkflowID\n 30: optional string childRunID\n 40: optional ParentClosePolicy parentClosePolicy\n}\n\nstruct ApplyParentClosePolicyStatus {\n 10: optional bool completed\n 20: optional CrossClusterTaskFailedCause failedCause\n}\n\nstruct ApplyParentClosePolicyRequest {\n 10: optional ApplyParentClosePolicyAttributes child\n 20: optional ApplyParentClosePolicyStatus status\n}\n\nstruct CrossClusterApplyParentClosePolicyRequestAttributes {\n 10: optional list children\n}\n\nstruct ApplyParentClosePolicyResult {\n 10: optional ApplyParentClosePolicyAttributes child\n 20: optional CrossClusterTaskFailedCause failedCause\n}\n\nstruct CrossClusterApplyParentClosePolicyResponseAttributes {\n 10: optional list childrenStatus\n}\n\nstruct CrossClusterTaskRequest {\n 10: optional CrossClusterTaskInfo taskInfo\n 20: optional CrossClusterStartChildExecutionRequestAttributes startChildExecutionAttributes\n 30: optional CrossClusterCancelExecutionRequestAttributes cancelExecutionAttributes\n 40: optional CrossClusterSignalExecutionRequestAttributes signalExecutionAttributes\n 50: optional CrossClusterRecordChildWorkflowExecutionCompleteRequestAttributes recordChildWorkflowExecutionCompleteAttributes\n 60: optional CrossClusterApplyParentClosePolicyRequestAttributes applyParentClosePolicyAttributes\n}\n\nstruct CrossClusterTaskResponse {\n 10: optional i64 (js.type = \"Long\") taskID\n 20: optional CrossClusterTaskType taskType\n 30: optional i16 taskState\n 40: optional CrossClusterTaskFailedCause failedCause\n 50: optional CrossClusterStartChildExecutionResponseAttributes startChildExecutionAttributes\n 60: optional CrossClusterCancelExecutionResponseAttributes cancelExecutionAttributes\n 70: optional CrossClusterSignalExecutionResponseAttributes signalExecutionAttributes\n 80: optional CrossClusterRecordChildWorkflowExecutionCompleteResponseAttributes recordChildWorkflowExecutionCompleteAttributes\n 90: optional CrossClusterApplyParentClosePolicyResponseAttributes applyParentClosePolicyAttributes\n}\n\nstruct GetCrossClusterTasksRequest {\n 10: optional list shardIDs\n 20: optional string targetCluster\n}\n\nstruct GetCrossClusterTasksResponse {\n 10: optional map> tasksByShard\n 20: optional map failedCauseByShard\n}\n\nstruct RespondCrossClusterTasksCompletedRequest {\n 10: optional i32 shardID\n 20: optional string targetCluster\n 30: optional list taskResponses\n 40: optional bool fetchNewTasks\n}\n\nstruct RespondCrossClusterTasksCompletedResponse {\n 10: optional list tasks\n}\n\nenum IsolationGroupState {\n INVALID,\n HEALTHY,\n DRAINED,\n}\n\nstruct IsolationGroupPartition {\n 10: optional string name\n 20: optional IsolationGroupState state\n}\n\nstruct IsolationGroupConfiguration {\n 10: optional list isolationGroups\n}\n\nstruct AsyncWorkflowConfiguration {\n 10: optional bool enabled\n // PredefinedQueueName is the name of the predefined queue in cadence server config's asyncWorkflowQueues\n 20: optional string predefinedQueueName\n // queueType is the type of the queue if predefined_queue_name is not used\n 30: optional string queueType\n // queueConfig is the configuration for the queue if predefined_queue_name is not used\n 40: optional DataBlob queueConfig\n}\n\n/**\n* Any is a logical duplicate of google.protobuf.Any.\n*\n* The intent of the type is the same, but it is not intended to be directly\n* compatible with google.protobuf.Any or any Thrift equivalent - this blob is\n* RPC-type agnostic by design (as the underlying data may be transported over\n* proto or thrift), and the data-bytes may be in any encoding.\n*\n* This is intentionally different from DataBlob, which supports only a handful\n* of known encodings so it can be interpreted everywhere. Any supports literally\n* any contents, and needs to be considered opaque until it is given to something\n* that is expecting it.\n*\n* See ValueType to interpret the contents.\n**/\nstruct Any {\n // Type-string describing value's contents, and intentionally avoiding the\n // name \"type\" as it is often a special term.\n // This should usually be a hard-coded string of some kind.\n 10: optional string ValueType\n // Arbitrarily-encoded bytes, to be deserialized by a runtime implementation.\n // The contents are described by ValueType.\n 20: optional binary Value\n}\n\nstruct AutoConfigHint {\n 10: optional bool enableAutoConfig\n 20: optional i64 pollerWaitTimeInMs\n}\n" diff --git a/.gen/proto/history/v1/service.pb.go b/.gen/proto/history/v1/service.pb.go index ebd1d1e79ad..f889c1d2579 100644 --- a/.gen/proto/history/v1/service.pb.go +++ b/.gen/proto/history/v1/service.pb.go @@ -33,10 +33,10 @@ import ( proto "github.com/gogo/protobuf/proto" types "github.com/gogo/protobuf/types" - v12 "github.com/uber/cadence-idl/go/proto/admin/v1" + v11 "github.com/uber/cadence-idl/go/proto/admin/v1" v1 "github.com/uber/cadence-idl/go/proto/api/v1" - v11 "github.com/uber/cadence/.gen/proto/shared/v1" + v12 "github.com/uber/cadence/.gen/proto/shared/v1" ) // Reference imports to suppress errors if they are not otherwise used. @@ -997,13 +997,14 @@ func (m *ResetStickyTaskListResponse) XXX_DiscardUnknown() { var xxx_messageInfo_ResetStickyTaskListResponse proto.InternalMessageInfo type GetMutableStateRequest struct { - DomainId string `protobuf:"bytes,1,opt,name=domain_id,json=domainId,proto3" json:"domain_id,omitempty"` - WorkflowExecution *v1.WorkflowExecution `protobuf:"bytes,2,opt,name=workflow_execution,json=workflowExecution,proto3" json:"workflow_execution,omitempty"` - ExpectedNextEventId int64 `protobuf:"varint,3,opt,name=expected_next_event_id,json=expectedNextEventId,proto3" json:"expected_next_event_id,omitempty"` - CurrentBranchToken []byte `protobuf:"bytes,4,opt,name=current_branch_token,json=currentBranchToken,proto3" json:"current_branch_token,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + DomainId string `protobuf:"bytes,1,opt,name=domain_id,json=domainId,proto3" json:"domain_id,omitempty"` + WorkflowExecution *v1.WorkflowExecution `protobuf:"bytes,2,opt,name=workflow_execution,json=workflowExecution,proto3" json:"workflow_execution,omitempty"` + ExpectedNextEventId int64 `protobuf:"varint,3,opt,name=expected_next_event_id,json=expectedNextEventId,proto3" json:"expected_next_event_id,omitempty"` + CurrentBranchToken []byte `protobuf:"bytes,4,opt,name=current_branch_token,json=currentBranchToken,proto3" json:"current_branch_token,omitempty"` + VersionHistoryItem *v11.VersionHistoryItem `protobuf:"bytes,5,opt,name=version_history_item,json=versionHistoryItem,proto3" json:"version_history_item,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *GetMutableStateRequest) Reset() { *m = GetMutableStateRequest{} } @@ -1067,6 +1068,13 @@ func (m *GetMutableStateRequest) GetCurrentBranchToken() []byte { return nil } +func (m *GetMutableStateRequest) GetVersionHistoryItem() *v11.VersionHistoryItem { + if m != nil { + return m.VersionHistoryItem + } + return nil +} + type GetMutableStateResponse struct { WorkflowExecution *v1.WorkflowExecution `protobuf:"bytes,1,opt,name=workflow_execution,json=workflowExecution,proto3" json:"workflow_execution,omitempty"` WorkflowType *v1.WorkflowType `protobuf:"bytes,2,opt,name=workflow_type,json=workflowType,proto3" json:"workflow_type,omitempty"` @@ -1081,9 +1089,9 @@ type GetMutableStateResponse struct { StickyTaskListScheduleToStartTimeout *types.Duration `protobuf:"bytes,11,opt,name=sticky_task_list_schedule_to_start_timeout,json=stickyTaskListScheduleToStartTimeout,proto3" json:"sticky_task_list_schedule_to_start_timeout,omitempty"` EventStoreVersion int32 `protobuf:"varint,12,opt,name=event_store_version,json=eventStoreVersion,proto3" json:"event_store_version,omitempty"` CurrentBranchToken []byte `protobuf:"bytes,13,opt,name=current_branch_token,json=currentBranchToken,proto3" json:"current_branch_token,omitempty"` - WorkflowState v11.WorkflowState `protobuf:"varint,14,opt,name=workflow_state,json=workflowState,proto3,enum=uber.cadence.shared.v1.WorkflowState" json:"workflow_state,omitempty"` + WorkflowState v12.WorkflowState `protobuf:"varint,14,opt,name=workflow_state,json=workflowState,proto3,enum=uber.cadence.shared.v1.WorkflowState" json:"workflow_state,omitempty"` WorkflowCloseState v1.WorkflowExecutionCloseStatus `protobuf:"varint,15,opt,name=workflow_close_state,json=workflowCloseState,proto3,enum=uber.cadence.api.v1.WorkflowExecutionCloseStatus" json:"workflow_close_state,omitempty"` - VersionHistories *v11.VersionHistories `protobuf:"bytes,16,opt,name=version_histories,json=versionHistories,proto3" json:"version_histories,omitempty"` + VersionHistories *v12.VersionHistories `protobuf:"bytes,16,opt,name=version_histories,json=versionHistories,proto3" json:"version_histories,omitempty"` IsStickyTaskListEnabled bool `protobuf:"varint,17,opt,name=is_sticky_task_list_enabled,json=isStickyTaskListEnabled,proto3" json:"is_sticky_task_list_enabled,omitempty"` HistorySize int64 `protobuf:"varint,18,opt,name=history_size,json=historySize,proto3" json:"history_size,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -1215,11 +1223,11 @@ func (m *GetMutableStateResponse) GetCurrentBranchToken() []byte { return nil } -func (m *GetMutableStateResponse) GetWorkflowState() v11.WorkflowState { +func (m *GetMutableStateResponse) GetWorkflowState() v12.WorkflowState { if m != nil { return m.WorkflowState } - return v11.WorkflowState_WORKFLOW_STATE_INVALID + return v12.WorkflowState_WORKFLOW_STATE_INVALID } func (m *GetMutableStateResponse) GetWorkflowCloseState() v1.WorkflowExecutionCloseStatus { @@ -1229,7 +1237,7 @@ func (m *GetMutableStateResponse) GetWorkflowCloseState() v1.WorkflowExecutionCl return v1.WorkflowExecutionCloseStatus_WORKFLOW_EXECUTION_CLOSE_STATUS_INVALID } -func (m *GetMutableStateResponse) GetVersionHistories() *v11.VersionHistories { +func (m *GetMutableStateResponse) GetVersionHistories() *v12.VersionHistories { if m != nil { return m.VersionHistories } @@ -1334,8 +1342,8 @@ type PollMutableStateResponse struct { ClientImpl string `protobuf:"bytes,10,opt,name=client_impl,json=clientImpl,proto3" json:"client_impl,omitempty"` StickyTaskListScheduleToStartTimeout *types.Duration `protobuf:"bytes,11,opt,name=sticky_task_list_schedule_to_start_timeout,json=stickyTaskListScheduleToStartTimeout,proto3" json:"sticky_task_list_schedule_to_start_timeout,omitempty"` CurrentBranchToken []byte `protobuf:"bytes,12,opt,name=current_branch_token,json=currentBranchToken,proto3" json:"current_branch_token,omitempty"` - VersionHistories *v11.VersionHistories `protobuf:"bytes,13,opt,name=version_histories,json=versionHistories,proto3" json:"version_histories,omitempty"` - WorkflowState v11.WorkflowState `protobuf:"varint,14,opt,name=workflow_state,json=workflowState,proto3,enum=uber.cadence.shared.v1.WorkflowState" json:"workflow_state,omitempty"` + VersionHistories *v12.VersionHistories `protobuf:"bytes,13,opt,name=version_histories,json=versionHistories,proto3" json:"version_histories,omitempty"` + WorkflowState v12.WorkflowState `protobuf:"varint,14,opt,name=workflow_state,json=workflowState,proto3,enum=uber.cadence.shared.v1.WorkflowState" json:"workflow_state,omitempty"` WorkflowCloseState v1.WorkflowExecutionCloseStatus `protobuf:"varint,15,opt,name=workflow_close_state,json=workflowCloseState,proto3,enum=uber.cadence.api.v1.WorkflowExecutionCloseStatus" json:"workflow_close_state,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -1459,18 +1467,18 @@ func (m *PollMutableStateResponse) GetCurrentBranchToken() []byte { return nil } -func (m *PollMutableStateResponse) GetVersionHistories() *v11.VersionHistories { +func (m *PollMutableStateResponse) GetVersionHistories() *v12.VersionHistories { if m != nil { return m.VersionHistories } return nil } -func (m *PollMutableStateResponse) GetWorkflowState() v11.WorkflowState { +func (m *PollMutableStateResponse) GetWorkflowState() v12.WorkflowState { if m != nil { return m.WorkflowState } - return v11.WorkflowState_WORKFLOW_STATE_INVALID + return v12.WorkflowState_WORKFLOW_STATE_INVALID } func (m *PollMutableStateResponse) GetWorkflowCloseState() v1.WorkflowExecutionCloseStatus { @@ -1576,7 +1584,7 @@ type RecordDecisionTaskStartedResponse struct { NextEventId int64 `protobuf:"varint,5,opt,name=next_event_id,json=nextEventId,proto3" json:"next_event_id,omitempty"` Attempt int32 `protobuf:"varint,6,opt,name=attempt,proto3" json:"attempt,omitempty"` StickyExecutionEnabled bool `protobuf:"varint,7,opt,name=sticky_execution_enabled,json=stickyExecutionEnabled,proto3" json:"sticky_execution_enabled,omitempty"` - DecisionInfo *v11.TransientDecisionInfo `protobuf:"bytes,8,opt,name=decision_info,json=decisionInfo,proto3" json:"decision_info,omitempty"` + DecisionInfo *v12.TransientDecisionInfo `protobuf:"bytes,8,opt,name=decision_info,json=decisionInfo,proto3" json:"decision_info,omitempty"` WorkflowExecutionTaskList *v1.TaskList `protobuf:"bytes,9,opt,name=workflow_execution_task_list,json=workflowExecutionTaskList,proto3" json:"workflow_execution_task_list,omitempty"` EventStoreVersion int32 `protobuf:"varint,10,opt,name=event_store_version,json=eventStoreVersion,proto3" json:"event_store_version,omitempty"` BranchToken []byte `protobuf:"bytes,11,opt,name=branch_token,json=branchToken,proto3" json:"branch_token,omitempty"` @@ -1671,7 +1679,7 @@ func (m *RecordDecisionTaskStartedResponse) GetStickyExecutionEnabled() bool { return false } -func (m *RecordDecisionTaskStartedResponse) GetDecisionInfo() *v11.TransientDecisionInfo { +func (m *RecordDecisionTaskStartedResponse) GetDecisionInfo() *v12.TransientDecisionInfo { if m != nil { return m.DecisionInfo } @@ -2951,7 +2959,7 @@ var xxx_messageInfo_RecordChildExecutionCompletedResponse proto.InternalMessageI type ReplicateEventsV2Request struct { DomainId string `protobuf:"bytes,1,opt,name=domain_id,json=domainId,proto3" json:"domain_id,omitempty"` WorkflowExecution *v1.WorkflowExecution `protobuf:"bytes,2,opt,name=workflow_execution,json=workflowExecution,proto3" json:"workflow_execution,omitempty"` - VersionHistoryItems []*v12.VersionHistoryItem `protobuf:"bytes,3,rep,name=version_history_items,json=versionHistoryItems,proto3" json:"version_history_items,omitempty"` + VersionHistoryItems []*v11.VersionHistoryItem `protobuf:"bytes,3,rep,name=version_history_items,json=versionHistoryItems,proto3" json:"version_history_items,omitempty"` Events *v1.DataBlob `protobuf:"bytes,4,opt,name=events,proto3" json:"events,omitempty"` // New run events does not need version history since there is no prior events. NewRunEvents *v1.DataBlob `protobuf:"bytes,5,opt,name=new_run_events,json=newRunEvents,proto3" json:"new_run_events,omitempty"` @@ -3007,7 +3015,7 @@ func (m *ReplicateEventsV2Request) GetWorkflowExecution() *v1.WorkflowExecution return nil } -func (m *ReplicateEventsV2Request) GetVersionHistoryItems() []*v12.VersionHistoryItem { +func (m *ReplicateEventsV2Request) GetVersionHistoryItems() []*v11.VersionHistoryItem { if m != nil { return m.VersionHistoryItems } @@ -3182,7 +3190,7 @@ type SyncActivityRequest struct { Attempt int32 `protobuf:"varint,10,opt,name=attempt,proto3" json:"attempt,omitempty"` LastFailure *v1.Failure `protobuf:"bytes,11,opt,name=last_failure,json=lastFailure,proto3" json:"last_failure,omitempty"` LastWorkerIdentity string `protobuf:"bytes,12,opt,name=last_worker_identity,json=lastWorkerIdentity,proto3" json:"last_worker_identity,omitempty"` - VersionHistory *v12.VersionHistory `protobuf:"bytes,13,opt,name=version_history,json=versionHistory,proto3" json:"version_history,omitempty"` + VersionHistory *v11.VersionHistory `protobuf:"bytes,13,opt,name=version_history,json=versionHistory,proto3" json:"version_history,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -3305,7 +3313,7 @@ func (m *SyncActivityRequest) GetLastWorkerIdentity() string { return "" } -func (m *SyncActivityRequest) GetVersionHistory() *v12.VersionHistory { +func (m *SyncActivityRequest) GetVersionHistory() *v11.VersionHistory { if m != nil { return m.VersionHistory } @@ -3503,7 +3511,7 @@ var xxx_messageInfo_DescribeHistoryHostRequest proto.InternalMessageInfo type DescribeHistoryHostResponse struct { NumberOfShards int32 `protobuf:"varint,1,opt,name=number_of_shards,json=numberOfShards,proto3" json:"number_of_shards,omitempty"` ShardIds []int32 `protobuf:"varint,2,rep,packed,name=shard_ids,json=shardIds,proto3" json:"shard_ids,omitempty"` - DomainCache *v12.DomainCacheInfo `protobuf:"bytes,3,opt,name=domain_cache,json=domainCache,proto3" json:"domain_cache,omitempty"` + DomainCache *v11.DomainCacheInfo `protobuf:"bytes,3,opt,name=domain_cache,json=domainCache,proto3" json:"domain_cache,omitempty"` ShardControllerStatus string `protobuf:"bytes,4,opt,name=shard_controller_status,json=shardControllerStatus,proto3" json:"shard_controller_status,omitempty"` Address string `protobuf:"bytes,5,opt,name=address,proto3" json:"address,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -3558,7 +3566,7 @@ func (m *DescribeHistoryHostResponse) GetShardIds() []int32 { return nil } -func (m *DescribeHistoryHostResponse) GetDomainCache() *v12.DomainCacheInfo { +func (m *DescribeHistoryHostResponse) GetDomainCache() *v11.DomainCacheInfo { if m != nil { return m.DomainCache } @@ -3667,7 +3675,7 @@ var xxx_messageInfo_CloseShardResponse proto.InternalMessageInfo type RemoveTaskRequest struct { ShardId int32 `protobuf:"varint,1,opt,name=shard_id,json=shardId,proto3" json:"shard_id,omitempty"` - TaskType v12.TaskType `protobuf:"varint,2,opt,name=task_type,json=taskType,proto3,enum=uber.cadence.admin.v1.TaskType" json:"task_type,omitempty"` + TaskType v11.TaskType `protobuf:"varint,2,opt,name=task_type,json=taskType,proto3,enum=uber.cadence.admin.v1.TaskType" json:"task_type,omitempty"` TaskId int64 `protobuf:"varint,3,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"` VisibilityTime *types.Timestamp `protobuf:"bytes,4,opt,name=visibility_time,json=visibilityTime,proto3" json:"visibility_time,omitempty"` ClusterName string `protobuf:"bytes,5,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"` @@ -3716,11 +3724,11 @@ func (m *RemoveTaskRequest) GetShardId() int32 { return 0 } -func (m *RemoveTaskRequest) GetTaskType() v12.TaskType { +func (m *RemoveTaskRequest) GetTaskType() v11.TaskType { if m != nil { return m.TaskType } - return v12.TaskType_TASK_TYPE_INVALID + return v11.TaskType_TASK_TYPE_INVALID } func (m *RemoveTaskRequest) GetTaskId() int64 { @@ -3786,7 +3794,7 @@ var xxx_messageInfo_RemoveTaskResponse proto.InternalMessageInfo type ResetQueueRequest struct { ShardId int32 `protobuf:"varint,1,opt,name=shard_id,json=shardId,proto3" json:"shard_id,omitempty"` ClusterName string `protobuf:"bytes,2,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"` - TaskType v12.TaskType `protobuf:"varint,3,opt,name=task_type,json=taskType,proto3,enum=uber.cadence.admin.v1.TaskType" json:"task_type,omitempty"` + TaskType v11.TaskType `protobuf:"varint,3,opt,name=task_type,json=taskType,proto3,enum=uber.cadence.admin.v1.TaskType" json:"task_type,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -3839,11 +3847,11 @@ func (m *ResetQueueRequest) GetClusterName() string { return "" } -func (m *ResetQueueRequest) GetTaskType() v12.TaskType { +func (m *ResetQueueRequest) GetTaskType() v11.TaskType { if m != nil { return m.TaskType } - return v12.TaskType_TASK_TYPE_INVALID + return v11.TaskType_TASK_TYPE_INVALID } type ResetQueueResponse struct { @@ -3888,7 +3896,7 @@ var xxx_messageInfo_ResetQueueResponse proto.InternalMessageInfo type DescribeQueueRequest struct { ShardId int32 `protobuf:"varint,1,opt,name=shard_id,json=shardId,proto3" json:"shard_id,omitempty"` ClusterName string `protobuf:"bytes,2,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"` - TaskType v12.TaskType `protobuf:"varint,3,opt,name=task_type,json=taskType,proto3,enum=uber.cadence.admin.v1.TaskType" json:"task_type,omitempty"` + TaskType v11.TaskType `protobuf:"varint,3,opt,name=task_type,json=taskType,proto3,enum=uber.cadence.admin.v1.TaskType" json:"task_type,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -3941,11 +3949,11 @@ func (m *DescribeQueueRequest) GetClusterName() string { return "" } -func (m *DescribeQueueRequest) GetTaskType() v12.TaskType { +func (m *DescribeQueueRequest) GetTaskType() v11.TaskType { if m != nil { return m.TaskType } - return v12.TaskType_TASK_TYPE_INVALID + return v11.TaskType_TASK_TYPE_INVALID } type DescribeQueueResponse struct { @@ -3996,7 +4004,7 @@ func (m *DescribeQueueResponse) GetProcessingQueueStates() []string { } type GetReplicationMessagesRequest struct { - Tokens []*v12.ReplicationToken `protobuf:"bytes,1,rep,name=tokens,proto3" json:"tokens,omitempty"` + Tokens []*v11.ReplicationToken `protobuf:"bytes,1,rep,name=tokens,proto3" json:"tokens,omitempty"` ClusterName string `protobuf:"bytes,2,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -4036,7 +4044,7 @@ func (m *GetReplicationMessagesRequest) XXX_DiscardUnknown() { var xxx_messageInfo_GetReplicationMessagesRequest proto.InternalMessageInfo -func (m *GetReplicationMessagesRequest) GetTokens() []*v12.ReplicationToken { +func (m *GetReplicationMessagesRequest) GetTokens() []*v11.ReplicationToken { if m != nil { return m.Tokens } @@ -4051,7 +4059,7 @@ func (m *GetReplicationMessagesRequest) GetClusterName() string { } type GetReplicationMessagesResponse struct { - ShardMessages map[int32]*v12.ReplicationMessages `protobuf:"bytes,1,rep,name=shard_messages,json=shardMessages,proto3" json:"shard_messages,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + ShardMessages map[int32]*v11.ReplicationMessages `protobuf:"bytes,1,rep,name=shard_messages,json=shardMessages,proto3" json:"shard_messages,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -4090,7 +4098,7 @@ func (m *GetReplicationMessagesResponse) XXX_DiscardUnknown() { var xxx_messageInfo_GetReplicationMessagesResponse proto.InternalMessageInfo -func (m *GetReplicationMessagesResponse) GetShardMessages() map[int32]*v12.ReplicationMessages { +func (m *GetReplicationMessagesResponse) GetShardMessages() map[int32]*v11.ReplicationMessages { if m != nil { return m.ShardMessages } @@ -4098,7 +4106,7 @@ func (m *GetReplicationMessagesResponse) GetShardMessages() map[int32]*v12.Repli } type GetDLQReplicationMessagesRequest struct { - TaskInfos []*v12.ReplicationTaskInfo `protobuf:"bytes,1,rep,name=task_infos,json=taskInfos,proto3" json:"task_infos,omitempty"` + TaskInfos []*v11.ReplicationTaskInfo `protobuf:"bytes,1,rep,name=task_infos,json=taskInfos,proto3" json:"task_infos,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -4137,7 +4145,7 @@ func (m *GetDLQReplicationMessagesRequest) XXX_DiscardUnknown() { var xxx_messageInfo_GetDLQReplicationMessagesRequest proto.InternalMessageInfo -func (m *GetDLQReplicationMessagesRequest) GetTaskInfos() []*v12.ReplicationTaskInfo { +func (m *GetDLQReplicationMessagesRequest) GetTaskInfos() []*v11.ReplicationTaskInfo { if m != nil { return m.TaskInfos } @@ -4145,7 +4153,7 @@ func (m *GetDLQReplicationMessagesRequest) GetTaskInfos() []*v12.ReplicationTask } type GetDLQReplicationMessagesResponse struct { - ReplicationTasks []*v12.ReplicationTask `protobuf:"bytes,1,rep,name=replication_tasks,json=replicationTasks,proto3" json:"replication_tasks,omitempty"` + ReplicationTasks []*v11.ReplicationTask `protobuf:"bytes,1,rep,name=replication_tasks,json=replicationTasks,proto3" json:"replication_tasks,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -4184,7 +4192,7 @@ func (m *GetDLQReplicationMessagesResponse) XXX_DiscardUnknown() { var xxx_messageInfo_GetDLQReplicationMessagesResponse proto.InternalMessageInfo -func (m *GetDLQReplicationMessagesResponse) GetReplicationTasks() []*v12.ReplicationTask { +func (m *GetDLQReplicationMessagesResponse) GetReplicationTasks() []*v11.ReplicationTask { if m != nil { return m.ReplicationTasks } @@ -4451,7 +4459,7 @@ func (m *CountDLQMessagesRequest) GetForceFetch() bool { } type CountDLQMessagesResponse struct { - Entries []*v12.HistoryDLQCountEntry `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries,omitempty"` + Entries []*v11.HistoryDLQCountEntry `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -4490,7 +4498,7 @@ func (m *CountDLQMessagesResponse) XXX_DiscardUnknown() { var xxx_messageInfo_CountDLQMessagesResponse proto.InternalMessageInfo -func (m *CountDLQMessagesResponse) GetEntries() []*v12.HistoryDLQCountEntry { +func (m *CountDLQMessagesResponse) GetEntries() []*v11.HistoryDLQCountEntry { if m != nil { return m.Entries } @@ -4498,7 +4506,7 @@ func (m *CountDLQMessagesResponse) GetEntries() []*v12.HistoryDLQCountEntry { } type ReadDLQMessagesRequest struct { - Type v12.DLQType `protobuf:"varint,1,opt,name=type,proto3,enum=uber.cadence.admin.v1.DLQType" json:"type,omitempty"` + Type v11.DLQType `protobuf:"varint,1,opt,name=type,proto3,enum=uber.cadence.admin.v1.DLQType" json:"type,omitempty"` ShardId int32 `protobuf:"varint,2,opt,name=shard_id,json=shardId,proto3" json:"shard_id,omitempty"` SourceCluster string `protobuf:"bytes,3,opt,name=source_cluster,json=sourceCluster,proto3" json:"source_cluster,omitempty"` InclusiveEndMessageId *types.Int64Value `protobuf:"bytes,4,opt,name=inclusive_end_message_id,json=inclusiveEndMessageId,proto3" json:"inclusive_end_message_id,omitempty"` @@ -4542,11 +4550,11 @@ func (m *ReadDLQMessagesRequest) XXX_DiscardUnknown() { var xxx_messageInfo_ReadDLQMessagesRequest proto.InternalMessageInfo -func (m *ReadDLQMessagesRequest) GetType() v12.DLQType { +func (m *ReadDLQMessagesRequest) GetType() v11.DLQType { if m != nil { return m.Type } - return v12.DLQType_DLQ_TYPE_INVALID + return v11.DLQType_DLQ_TYPE_INVALID } func (m *ReadDLQMessagesRequest) GetShardId() int32 { @@ -4585,9 +4593,9 @@ func (m *ReadDLQMessagesRequest) GetNextPageToken() []byte { } type ReadDLQMessagesResponse struct { - Type v12.DLQType `protobuf:"varint,1,opt,name=type,proto3,enum=uber.cadence.admin.v1.DLQType" json:"type,omitempty"` - ReplicationTasks []*v12.ReplicationTask `protobuf:"bytes,2,rep,name=replication_tasks,json=replicationTasks,proto3" json:"replication_tasks,omitempty"` - ReplicationTasksInfo []*v12.ReplicationTaskInfo `protobuf:"bytes,3,rep,name=replication_tasks_info,json=replicationTasksInfo,proto3" json:"replication_tasks_info,omitempty"` + Type v11.DLQType `protobuf:"varint,1,opt,name=type,proto3,enum=uber.cadence.admin.v1.DLQType" json:"type,omitempty"` + ReplicationTasks []*v11.ReplicationTask `protobuf:"bytes,2,rep,name=replication_tasks,json=replicationTasks,proto3" json:"replication_tasks,omitempty"` + ReplicationTasksInfo []*v11.ReplicationTaskInfo `protobuf:"bytes,3,rep,name=replication_tasks_info,json=replicationTasksInfo,proto3" json:"replication_tasks_info,omitempty"` NextPageToken []byte `protobuf:"bytes,4,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -4627,21 +4635,21 @@ func (m *ReadDLQMessagesResponse) XXX_DiscardUnknown() { var xxx_messageInfo_ReadDLQMessagesResponse proto.InternalMessageInfo -func (m *ReadDLQMessagesResponse) GetType() v12.DLQType { +func (m *ReadDLQMessagesResponse) GetType() v11.DLQType { if m != nil { return m.Type } - return v12.DLQType_DLQ_TYPE_INVALID + return v11.DLQType_DLQ_TYPE_INVALID } -func (m *ReadDLQMessagesResponse) GetReplicationTasks() []*v12.ReplicationTask { +func (m *ReadDLQMessagesResponse) GetReplicationTasks() []*v11.ReplicationTask { if m != nil { return m.ReplicationTasks } return nil } -func (m *ReadDLQMessagesResponse) GetReplicationTasksInfo() []*v12.ReplicationTaskInfo { +func (m *ReadDLQMessagesResponse) GetReplicationTasksInfo() []*v11.ReplicationTaskInfo { if m != nil { return m.ReplicationTasksInfo } @@ -4656,7 +4664,7 @@ func (m *ReadDLQMessagesResponse) GetNextPageToken() []byte { } type PurgeDLQMessagesRequest struct { - Type v12.DLQType `protobuf:"varint,1,opt,name=type,proto3,enum=uber.cadence.admin.v1.DLQType" json:"type,omitempty"` + Type v11.DLQType `protobuf:"varint,1,opt,name=type,proto3,enum=uber.cadence.admin.v1.DLQType" json:"type,omitempty"` ShardId int32 `protobuf:"varint,2,opt,name=shard_id,json=shardId,proto3" json:"shard_id,omitempty"` SourceCluster string `protobuf:"bytes,3,opt,name=source_cluster,json=sourceCluster,proto3" json:"source_cluster,omitempty"` InclusiveEndMessageId *types.Int64Value `protobuf:"bytes,4,opt,name=inclusive_end_message_id,json=inclusiveEndMessageId,proto3" json:"inclusive_end_message_id,omitempty"` @@ -4698,11 +4706,11 @@ func (m *PurgeDLQMessagesRequest) XXX_DiscardUnknown() { var xxx_messageInfo_PurgeDLQMessagesRequest proto.InternalMessageInfo -func (m *PurgeDLQMessagesRequest) GetType() v12.DLQType { +func (m *PurgeDLQMessagesRequest) GetType() v11.DLQType { if m != nil { return m.Type } - return v12.DLQType_DLQ_TYPE_INVALID + return v11.DLQType_DLQ_TYPE_INVALID } func (m *PurgeDLQMessagesRequest) GetShardId() int32 { @@ -4766,7 +4774,7 @@ func (m *PurgeDLQMessagesResponse) XXX_DiscardUnknown() { var xxx_messageInfo_PurgeDLQMessagesResponse proto.InternalMessageInfo type MergeDLQMessagesRequest struct { - Type v12.DLQType `protobuf:"varint,1,opt,name=type,proto3,enum=uber.cadence.admin.v1.DLQType" json:"type,omitempty"` + Type v11.DLQType `protobuf:"varint,1,opt,name=type,proto3,enum=uber.cadence.admin.v1.DLQType" json:"type,omitempty"` ShardId int32 `protobuf:"varint,2,opt,name=shard_id,json=shardId,proto3" json:"shard_id,omitempty"` SourceCluster string `protobuf:"bytes,3,opt,name=source_cluster,json=sourceCluster,proto3" json:"source_cluster,omitempty"` InclusiveEndMessageId *types.Int64Value `protobuf:"bytes,4,opt,name=inclusive_end_message_id,json=inclusiveEndMessageId,proto3" json:"inclusive_end_message_id,omitempty"` @@ -4810,11 +4818,11 @@ func (m *MergeDLQMessagesRequest) XXX_DiscardUnknown() { var xxx_messageInfo_MergeDLQMessagesRequest proto.InternalMessageInfo -func (m *MergeDLQMessagesRequest) GetType() v12.DLQType { +func (m *MergeDLQMessagesRequest) GetType() v11.DLQType { if m != nil { return m.Type } - return v12.DLQType_DLQ_TYPE_INVALID + return v11.DLQType_DLQ_TYPE_INVALID } func (m *MergeDLQMessagesRequest) GetShardId() int32 { @@ -4900,7 +4908,7 @@ func (m *MergeDLQMessagesResponse) GetNextPageToken() []byte { } type NotifyFailoverMarkersRequest struct { - FailoverMarkerTokens []*v12.FailoverMarkerToken `protobuf:"bytes,1,rep,name=failover_marker_tokens,json=failoverMarkerTokens,proto3" json:"failover_marker_tokens,omitempty"` + FailoverMarkerTokens []*v11.FailoverMarkerToken `protobuf:"bytes,1,rep,name=failover_marker_tokens,json=failoverMarkerTokens,proto3" json:"failover_marker_tokens,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -4939,7 +4947,7 @@ func (m *NotifyFailoverMarkersRequest) XXX_DiscardUnknown() { var xxx_messageInfo_NotifyFailoverMarkersRequest proto.InternalMessageInfo -func (m *NotifyFailoverMarkersRequest) GetFailoverMarkerTokens() []*v12.FailoverMarkerToken { +func (m *NotifyFailoverMarkersRequest) GetFailoverMarkerTokens() []*v11.FailoverMarkerToken { if m != nil { return m.FailoverMarkerTokens } @@ -5041,8 +5049,8 @@ func (m *GetCrossClusterTasksRequest) GetTargetCluster() string { } type GetCrossClusterTasksResponse struct { - TasksByShard map[int32]*v12.CrossClusterTaskRequests `protobuf:"bytes,1,rep,name=tasks_by_shard,json=tasksByShard,proto3" json:"tasks_by_shard,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - FailedCauseByShard map[int32]v12.GetTaskFailedCause `protobuf:"bytes,2,rep,name=failed_cause_by_shard,json=failedCauseByShard,proto3" json:"failed_cause_by_shard,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=uber.cadence.admin.v1.GetTaskFailedCause"` + TasksByShard map[int32]*v11.CrossClusterTaskRequests `protobuf:"bytes,1,rep,name=tasks_by_shard,json=tasksByShard,proto3" json:"tasks_by_shard,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + FailedCauseByShard map[int32]v11.GetTaskFailedCause `protobuf:"bytes,2,rep,name=failed_cause_by_shard,json=failedCauseByShard,proto3" json:"failed_cause_by_shard,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=uber.cadence.admin.v1.GetTaskFailedCause"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -5081,14 +5089,14 @@ func (m *GetCrossClusterTasksResponse) XXX_DiscardUnknown() { var xxx_messageInfo_GetCrossClusterTasksResponse proto.InternalMessageInfo -func (m *GetCrossClusterTasksResponse) GetTasksByShard() map[int32]*v12.CrossClusterTaskRequests { +func (m *GetCrossClusterTasksResponse) GetTasksByShard() map[int32]*v11.CrossClusterTaskRequests { if m != nil { return m.TasksByShard } return nil } -func (m *GetCrossClusterTasksResponse) GetFailedCauseByShard() map[int32]v12.GetTaskFailedCause { +func (m *GetCrossClusterTasksResponse) GetFailedCauseByShard() map[int32]v11.GetTaskFailedCause { if m != nil { return m.FailedCauseByShard } @@ -5098,7 +5106,7 @@ func (m *GetCrossClusterTasksResponse) GetFailedCauseByShard() map[int32]v12.Get type RespondCrossClusterTasksCompletedRequest struct { ShardId int32 `protobuf:"varint,1,opt,name=shard_id,json=shardId,proto3" json:"shard_id,omitempty"` TargetCluster string `protobuf:"bytes,2,opt,name=target_cluster,json=targetCluster,proto3" json:"target_cluster,omitempty"` - TaskResponses []*v12.CrossClusterTaskResponse `protobuf:"bytes,3,rep,name=task_responses,json=taskResponses,proto3" json:"task_responses,omitempty"` + TaskResponses []*v11.CrossClusterTaskResponse `protobuf:"bytes,3,rep,name=task_responses,json=taskResponses,proto3" json:"task_responses,omitempty"` FetchNewTasks bool `protobuf:"varint,4,opt,name=fetchNewTasks,proto3" json:"fetchNewTasks,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -5154,7 +5162,7 @@ func (m *RespondCrossClusterTasksCompletedRequest) GetTargetCluster() string { return "" } -func (m *RespondCrossClusterTasksCompletedRequest) GetTaskResponses() []*v12.CrossClusterTaskResponse { +func (m *RespondCrossClusterTasksCompletedRequest) GetTaskResponses() []*v11.CrossClusterTaskResponse { if m != nil { return m.TaskResponses } @@ -5169,7 +5177,7 @@ func (m *RespondCrossClusterTasksCompletedRequest) GetFetchNewTasks() bool { } type RespondCrossClusterTasksCompletedResponse struct { - Tasks *v12.CrossClusterTaskRequests `protobuf:"bytes,1,opt,name=tasks,proto3" json:"tasks,omitempty"` + Tasks *v11.CrossClusterTaskRequests `protobuf:"bytes,1,opt,name=tasks,proto3" json:"tasks,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -5212,7 +5220,7 @@ func (m *RespondCrossClusterTasksCompletedResponse) XXX_DiscardUnknown() { var xxx_messageInfo_RespondCrossClusterTasksCompletedResponse proto.InternalMessageInfo -func (m *RespondCrossClusterTasksCompletedResponse) GetTasks() *v12.CrossClusterTaskRequests { +func (m *RespondCrossClusterTasksCompletedResponse) GetTasks() *v11.CrossClusterTaskRequests { if m != nil { return m.Tasks } @@ -5330,7 +5338,7 @@ type RatelimitUpdateRequest struct { // this is a single blob rather than a collection to save on // repeated serialization of the type name, and to allow impls // to choose whatever structures are most-convenient for them. - Data *v11.Any `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + Data *v12.Any `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -5369,7 +5377,7 @@ func (m *RatelimitUpdateRequest) XXX_DiscardUnknown() { var xxx_messageInfo_RatelimitUpdateRequest proto.InternalMessageInfo -func (m *RatelimitUpdateRequest) GetData() *v11.Any { +func (m *RatelimitUpdateRequest) GetData() *v12.Any { if m != nil { return m.Data } @@ -5386,7 +5394,7 @@ type RatelimitUpdateResponse struct { // this is a single blob rather than a collection to save on // repeated serialization of the type name, and to allow impls // to choose whatever structures are most-convenient for them. - Data *v11.Any `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + Data *v12.Any `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -5425,7 +5433,7 @@ func (m *RatelimitUpdateResponse) XXX_DiscardUnknown() { var xxx_messageInfo_RatelimitUpdateResponse proto.InternalMessageInfo -func (m *RatelimitUpdateResponse) GetData() *v11.Any { +func (m *RatelimitUpdateResponse) GetData() *v12.Any { if m != nil { return m.Data } @@ -5501,7 +5509,7 @@ func init() { proto.RegisterType((*DescribeQueueResponse)(nil), "uber.cadence.history.v1.DescribeQueueResponse") proto.RegisterType((*GetReplicationMessagesRequest)(nil), "uber.cadence.history.v1.GetReplicationMessagesRequest") proto.RegisterType((*GetReplicationMessagesResponse)(nil), "uber.cadence.history.v1.GetReplicationMessagesResponse") - proto.RegisterMapType((map[int32]*v12.ReplicationMessages)(nil), "uber.cadence.history.v1.GetReplicationMessagesResponse.ShardMessagesEntry") + proto.RegisterMapType((map[int32]*v11.ReplicationMessages)(nil), "uber.cadence.history.v1.GetReplicationMessagesResponse.ShardMessagesEntry") proto.RegisterType((*GetDLQReplicationMessagesRequest)(nil), "uber.cadence.history.v1.GetDLQReplicationMessagesRequest") proto.RegisterType((*GetDLQReplicationMessagesResponse)(nil), "uber.cadence.history.v1.GetDLQReplicationMessagesResponse") proto.RegisterType((*ReapplyEventsRequest)(nil), "uber.cadence.history.v1.ReapplyEventsRequest") @@ -5520,8 +5528,8 @@ func init() { proto.RegisterType((*NotifyFailoverMarkersResponse)(nil), "uber.cadence.history.v1.NotifyFailoverMarkersResponse") proto.RegisterType((*GetCrossClusterTasksRequest)(nil), "uber.cadence.history.v1.GetCrossClusterTasksRequest") proto.RegisterType((*GetCrossClusterTasksResponse)(nil), "uber.cadence.history.v1.GetCrossClusterTasksResponse") - proto.RegisterMapType((map[int32]v12.GetTaskFailedCause)(nil), "uber.cadence.history.v1.GetCrossClusterTasksResponse.FailedCauseByShardEntry") - proto.RegisterMapType((map[int32]*v12.CrossClusterTaskRequests)(nil), "uber.cadence.history.v1.GetCrossClusterTasksResponse.TasksByShardEntry") + proto.RegisterMapType((map[int32]v11.GetTaskFailedCause)(nil), "uber.cadence.history.v1.GetCrossClusterTasksResponse.FailedCauseByShardEntry") + proto.RegisterMapType((map[int32]*v11.CrossClusterTaskRequests)(nil), "uber.cadence.history.v1.GetCrossClusterTasksResponse.TasksByShardEntry") proto.RegisterType((*RespondCrossClusterTasksCompletedRequest)(nil), "uber.cadence.history.v1.RespondCrossClusterTasksCompletedRequest") proto.RegisterType((*RespondCrossClusterTasksCompletedResponse)(nil), "uber.cadence.history.v1.RespondCrossClusterTasksCompletedResponse") proto.RegisterType((*GetFailoverInfoRequest)(nil), "uber.cadence.history.v1.GetFailoverInfoRequest") @@ -5535,318 +5543,319 @@ func init() { } var fileDescriptor_fee8ff76963a38ed = []byte{ - // 4967 bytes of a gzipped FileDescriptorProto + // 4981 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7c, 0x4d, 0x6c, 0x1c, 0x47, - 0x76, 0x30, 0x9a, 0x23, 0xfe, 0x3d, 0x92, 0x43, 0xb2, 0xc4, 0x9f, 0xe1, 0x50, 0xa2, 0xc8, 0xb6, - 0x65, 0xd3, 0xf2, 0x7a, 0x68, 0xd1, 0xb6, 0x2c, 0xdb, 0xf2, 0x6a, 0x25, 0x52, 0x92, 0xc7, 0x9f, - 0x7e, 0x9b, 0xb4, 0xfc, 0x25, 0x48, 0xdc, 0xdb, 0xec, 0xae, 0x21, 0x3b, 0xea, 0xe9, 0x1e, 0x75, - 0xf7, 0x90, 0x1a, 0x1f, 0x02, 0x27, 0x0e, 0x02, 0xec, 0x22, 0xc8, 0x6e, 0x16, 0x49, 0x10, 0x20, - 0x40, 0x80, 0x60, 0x03, 0x2c, 0xd6, 0xc8, 0x2d, 0x01, 0x72, 0x48, 0x72, 0xca, 0x65, 0x8f, 0xb9, - 0xe6, 0x16, 0x18, 0xbb, 0x87, 0x04, 0xc8, 0x29, 0x7b, 0x0e, 0x82, 0xfa, 0xe9, 0x9e, 0xfe, 0xa9, - 0xae, 0x1e, 0x92, 0x41, 0xe4, 0x75, 0x7c, 0xe3, 0x54, 0xd5, 0x7b, 0xf5, 0xea, 0xd5, 0x7b, 0xaf, - 0xdf, 0x5f, 0x11, 0x2e, 0x76, 0xf7, 0xb0, 0xbf, 0x61, 0x1a, 0x16, 0x76, 0x4d, 0xbc, 0x71, 0x60, - 0x07, 0xa1, 0xe7, 0xf7, 0x36, 0x0e, 0x2f, 0x6f, 0x04, 0xd8, 0x3f, 0xb4, 0x4d, 0xdc, 0xe8, 0xf8, - 0x5e, 0xe8, 0xa1, 0x45, 0xb2, 0xac, 0xc1, 0x97, 0x35, 0xf8, 0xb2, 0xc6, 0xe1, 0xe5, 0xfa, 0xca, - 0xbe, 0xe7, 0xed, 0x3b, 0x78, 0x83, 0x2e, 0xdb, 0xeb, 0xb6, 0x36, 0xac, 0xae, 0x6f, 0x84, 0xb6, - 0xe7, 0x32, 0xc0, 0xfa, 0x85, 0xec, 0x7c, 0x68, 0xb7, 0x71, 0x10, 0x1a, 0xed, 0x0e, 0x5f, 0x90, - 0x43, 0x70, 0xe4, 0x1b, 0x9d, 0x0e, 0xf6, 0x03, 0x3e, 0xbf, 0x9a, 0x22, 0xd0, 0xe8, 0xd8, 0x84, - 0x38, 0xd3, 0x6b, 0xb7, 0xe3, 0x2d, 0xd6, 0x44, 0x2b, 0x22, 0x12, 0x39, 0x15, 0xa2, 0x25, 0x4f, - 0xbb, 0x38, 0x5e, 0xa0, 0x8a, 0x16, 0x84, 0x46, 0xf0, 0xc4, 0xb1, 0x83, 0x50, 0xb6, 0xe6, 0xc8, - 0xf3, 0x9f, 0xb4, 0x1c, 0xef, 0x88, 0xaf, 0xb9, 0x24, 0x5a, 0xc3, 0x59, 0xa9, 0x67, 0xd6, 0xae, - 0x97, 0xad, 0xc5, 0x3e, 0x5f, 0xf9, 0x42, 0x7a, 0xa5, 0xd5, 0xb6, 0x5d, 0xca, 0x05, 0xa7, 0x1b, - 0x84, 0x65, 0x8b, 0xd2, 0x8c, 0x58, 0x13, 0x2f, 0x7a, 0xda, 0xc5, 0x5d, 0x7e, 0xd5, 0xf5, 0x97, - 0xc5, 0x4b, 0x7c, 0xdc, 0x71, 0x6c, 0x33, 0x79, 0xb5, 0xe9, 0x9b, 0x09, 0x0e, 0x0c, 0x1f, 0x5b, - 0x64, 0xa5, 0xe1, 0x46, 0xbb, 0xbd, 0x58, 0xb0, 0x22, 0x4d, 0xd3, 0xc5, 0x82, 0x55, 0x69, 0x76, - 0xa9, 0x3f, 0x1f, 0x81, 0xf3, 0x3b, 0xa1, 0xe1, 0x87, 0x1f, 0xf3, 0xf1, 0x5b, 0xcf, 0xb0, 0xd9, - 0x25, 0xf4, 0x68, 0xf8, 0x69, 0x17, 0x07, 0x21, 0xba, 0x0b, 0xa3, 0x3e, 0xfb, 0xb3, 0xa6, 0xac, - 0x2a, 0xeb, 0x13, 0x9b, 0x9b, 0x8d, 0x94, 0xd8, 0x1a, 0x1d, 0xbb, 0x71, 0x78, 0xb9, 0x21, 0x45, - 0xa2, 0x45, 0x28, 0xd0, 0x32, 0x8c, 0x5b, 0x5e, 0xdb, 0xb0, 0x5d, 0xdd, 0xb6, 0x6a, 0x43, 0xab, - 0xca, 0xfa, 0xb8, 0x36, 0xc6, 0x06, 0x9a, 0x16, 0xfa, 0x0d, 0x98, 0xef, 0x18, 0x3e, 0x76, 0x43, - 0x1d, 0x47, 0x08, 0x74, 0xdb, 0x6d, 0x79, 0xb5, 0x0a, 0xdd, 0x78, 0x5d, 0xb8, 0xf1, 0x43, 0x0a, - 0x11, 0xef, 0xd8, 0x74, 0x5b, 0x9e, 0x76, 0xb6, 0x93, 0x1f, 0x44, 0x35, 0x18, 0x35, 0xc2, 0x10, - 0xb7, 0x3b, 0x61, 0xed, 0xcc, 0xaa, 0xb2, 0x3e, 0xac, 0x45, 0x3f, 0xd1, 0x16, 0x4c, 0xe3, 0x67, - 0x1d, 0x9b, 0xa9, 0x98, 0x4e, 0x74, 0xa9, 0x36, 0x4c, 0x77, 0xac, 0x37, 0x98, 0x1e, 0x35, 0x22, - 0x3d, 0x6a, 0xec, 0x46, 0x8a, 0xa6, 0x55, 0xfb, 0x20, 0x64, 0x10, 0xb5, 0x60, 0xc9, 0xf4, 0xdc, - 0xd0, 0x76, 0xbb, 0x58, 0x37, 0x02, 0xdd, 0xc5, 0x47, 0xba, 0xed, 0xda, 0xa1, 0x6d, 0x84, 0x9e, - 0x5f, 0x1b, 0x59, 0x55, 0xd6, 0xab, 0x9b, 0xaf, 0x0a, 0x0f, 0xb0, 0xc5, 0xa1, 0x6e, 0x04, 0xf7, - 0xf1, 0x51, 0x33, 0x02, 0xd1, 0x16, 0x4c, 0xe1, 0x38, 0x6a, 0xc2, 0x6c, 0x34, 0x63, 0xe9, 0x2d, - 0xc3, 0x76, 0xba, 0x3e, 0xae, 0x8d, 0x52, 0x72, 0xcf, 0x09, 0xf1, 0xdf, 0x66, 0x6b, 0xb4, 0x99, - 0x18, 0x8c, 0x8f, 0x20, 0x0d, 0x16, 0x1c, 0x23, 0x08, 0x75, 0xd3, 0x6b, 0x77, 0x1c, 0x4c, 0x0f, - 0xef, 0xe3, 0xa0, 0xeb, 0x84, 0xb5, 0x31, 0x09, 0xbe, 0x87, 0x46, 0xcf, 0xf1, 0x0c, 0x4b, 0x9b, - 0x23, 0xb0, 0x5b, 0x31, 0xa8, 0x46, 0x21, 0xd1, 0xff, 0x87, 0xe5, 0x96, 0xed, 0x07, 0xa1, 0x6e, - 0x61, 0xd3, 0x0e, 0x28, 0x3f, 0x8d, 0xe0, 0x89, 0xbe, 0x67, 0x98, 0x4f, 0xbc, 0x56, 0xab, 0x36, - 0x4e, 0x11, 0x2f, 0xe5, 0xf8, 0xba, 0xcd, 0x0d, 0x9c, 0x56, 0xa3, 0xd0, 0xdb, 0x1c, 0x78, 0xd7, - 0x08, 0x9e, 0xdc, 0x64, 0xa0, 0xe8, 0x10, 0x66, 0x3a, 0x86, 0x1f, 0xda, 0x94, 0x4e, 0xd3, 0x73, - 0x5b, 0xf6, 0x7e, 0x0d, 0x56, 0x2b, 0xeb, 0x13, 0x9b, 0xff, 0xaf, 0x51, 0x60, 0x48, 0xe5, 0x52, - 0x49, 0x44, 0x87, 0xa1, 0xdb, 0xa2, 0xd8, 0x6e, 0xb9, 0xa1, 0xdf, 0xd3, 0xa6, 0x3b, 0xe9, 0xd1, - 0xfa, 0x4d, 0x98, 0x13, 0x2d, 0x44, 0x33, 0x50, 0x79, 0x82, 0x7b, 0x54, 0x29, 0xc6, 0x35, 0xf2, - 0x27, 0x9a, 0x83, 0xe1, 0x43, 0xc3, 0xe9, 0x62, 0x2e, 0xd8, 0xec, 0xc7, 0xbb, 0x43, 0x57, 0x15, - 0xf5, 0x6d, 0x58, 0x29, 0x22, 0x25, 0xe8, 0x78, 0x6e, 0x80, 0xd1, 0x3c, 0x8c, 0xf8, 0x5d, 0xaa, - 0x15, 0x0c, 0xe1, 0xb0, 0xdf, 0x75, 0x9b, 0x96, 0xfa, 0x57, 0x43, 0xb0, 0xb2, 0x63, 0xef, 0xbb, - 0x86, 0x53, 0xa8, 0xa0, 0xf7, 0xb2, 0x0a, 0xfa, 0x86, 0x58, 0x41, 0xa5, 0x58, 0x06, 0xd4, 0xd0, - 0x16, 0x2c, 0xe3, 0x67, 0x21, 0xf6, 0x5d, 0xc3, 0x89, 0x0d, 0x6f, 0x5f, 0x59, 0xb9, 0x9e, 0xbe, - 0x24, 0xdc, 0x3f, 0xbf, 0xf3, 0x52, 0x84, 0x2a, 0x37, 0x85, 0x1a, 0x70, 0xd6, 0x3c, 0xb0, 0x1d, - 0xab, 0xbf, 0x89, 0xe7, 0x3a, 0x3d, 0xaa, 0xb7, 0x63, 0xda, 0x2c, 0x9d, 0x8a, 0x80, 0x1e, 0xb8, - 0x4e, 0x4f, 0x5d, 0x83, 0x0b, 0x85, 0xe7, 0x63, 0x0c, 0x56, 0x7f, 0x31, 0x04, 0x2f, 0xf3, 0x35, - 0x76, 0x78, 0x20, 0xb7, 0x79, 0x8f, 0xb3, 0x2c, 0xbd, 0x26, 0x63, 0x69, 0x19, 0xba, 0x01, 0x79, - 0xfb, 0x99, 0x22, 0x10, 0xf0, 0x0a, 0x15, 0xf0, 0x8f, 0x8a, 0x05, 0x7c, 0x30, 0x12, 0xfe, 0x17, - 0x45, 0xfd, 0x06, 0xac, 0x97, 0x13, 0x25, 0x17, 0xfa, 0xef, 0x2b, 0x70, 0x5e, 0xc3, 0x01, 0x3e, - 0xf5, 0x47, 0x49, 0x8a, 0x64, 0xb0, 0x6b, 0x21, 0xaa, 0x5b, 0x84, 0x46, 0x7e, 0x8a, 0x2f, 0x86, - 0x60, 0x6d, 0x17, 0xfb, 0x6d, 0xdb, 0x35, 0x42, 0x5c, 0x78, 0x92, 0x87, 0xd9, 0x93, 0x5c, 0x11, - 0x9e, 0xa4, 0x14, 0xd1, 0xaf, 0xb8, 0x02, 0xbf, 0x08, 0xaa, 0xec, 0x88, 0x5c, 0x87, 0x7f, 0xa8, - 0xc0, 0xea, 0x36, 0x0e, 0x4c, 0xdf, 0xde, 0x2b, 0xe6, 0xe8, 0x83, 0x2c, 0x47, 0xdf, 0x12, 0x1e, - 0xa7, 0x0c, 0xcf, 0x80, 0xe2, 0xf1, 0x5f, 0x15, 0x58, 0x93, 0xa0, 0xe2, 0x22, 0xe2, 0xc0, 0x62, - 0xdf, 0xa5, 0x61, 0xaa, 0xcd, 0x3f, 0x78, 0x52, 0x9b, 0x9d, 0x43, 0xb8, 0x95, 0x04, 0xd5, 0x16, - 0xb0, 0x70, 0x1c, 0xed, 0xc1, 0x62, 0xfe, 0x6e, 0x99, 0x27, 0x35, 0x44, 0x77, 0xbb, 0x34, 0xd8, - 0x6e, 0xd4, 0x97, 0x9a, 0x3f, 0x12, 0x0d, 0xa3, 0x8f, 0x01, 0x75, 0xb0, 0x6b, 0xd9, 0xee, 0xbe, - 0x6e, 0x98, 0xa1, 0x7d, 0x68, 0x87, 0x36, 0x0e, 0xb8, 0xb9, 0x2a, 0x70, 0xd4, 0xd8, 0xf2, 0x1b, - 0x6c, 0x75, 0x8f, 0x22, 0x9f, 0xed, 0xa4, 0x06, 0x6d, 0x1c, 0xa0, 0x5f, 0x83, 0x99, 0x08, 0x31, - 0x15, 0x13, 0x1f, 0xbb, 0xb5, 0x33, 0x14, 0x6d, 0x43, 0x86, 0x76, 0x8b, 0xac, 0x4d, 0x53, 0x3e, - 0xdd, 0x49, 0x4c, 0xf9, 0xd8, 0x45, 0x3b, 0x7d, 0xd4, 0x91, 0x77, 0xc2, 0x1d, 0x3d, 0x29, 0xc5, - 0x91, 0x33, 0x92, 0x42, 0x1a, 0x0d, 0xaa, 0xcf, 0x60, 0xee, 0x11, 0x89, 0x79, 0x22, 0xee, 0x45, - 0x62, 0xb8, 0x95, 0x15, 0xc3, 0x57, 0x84, 0x7b, 0x88, 0x60, 0x07, 0x14, 0xbd, 0x1f, 0x2b, 0x30, - 0x9f, 0x01, 0xe7, 0xe2, 0x76, 0x1d, 0x26, 0x69, 0x1c, 0x16, 0xb9, 0x73, 0xca, 0x00, 0xee, 0xdc, - 0x04, 0x85, 0xe0, 0x5e, 0x5c, 0x13, 0xaa, 0x11, 0x82, 0xdf, 0xc2, 0x66, 0x88, 0x2d, 0x2e, 0x38, - 0x6a, 0xf1, 0x19, 0x34, 0xbe, 0x52, 0x9b, 0x7a, 0x9a, 0xfc, 0xa9, 0xfe, 0x9e, 0x02, 0x75, 0x6a, - 0x40, 0x77, 0x42, 0xdb, 0x7c, 0xd2, 0x23, 0x1e, 0xdd, 0x5d, 0x3b, 0x08, 0x23, 0x36, 0x35, 0xb3, - 0x6c, 0xda, 0x28, 0xb6, 0xe4, 0x42, 0x0c, 0x03, 0x32, 0xeb, 0x3c, 0x2c, 0x0b, 0x71, 0x70, 0xcb, - 0xf2, 0x9f, 0x0a, 0x2c, 0xdc, 0xc1, 0xe1, 0xbd, 0x6e, 0x68, 0xec, 0x39, 0x78, 0x27, 0x34, 0x42, - 0xac, 0x89, 0xd0, 0x2a, 0x19, 0x7b, 0xfa, 0x11, 0x20, 0x81, 0x19, 0x1d, 0x3a, 0x96, 0x19, 0x9d, - 0xcd, 0x69, 0x18, 0x7a, 0x03, 0x16, 0xf0, 0xb3, 0x0e, 0x65, 0xa0, 0xee, 0xe2, 0x67, 0xa1, 0x8e, - 0x0f, 0x49, 0x58, 0x64, 0x5b, 0xd4, 0x42, 0x57, 0xb4, 0xb3, 0xd1, 0xec, 0x7d, 0xfc, 0x2c, 0xbc, - 0x45, 0xe6, 0x9a, 0x16, 0x7a, 0x1d, 0xe6, 0xcc, 0xae, 0x4f, 0xe3, 0xa7, 0x3d, 0xdf, 0x70, 0xcd, - 0x03, 0x3d, 0xf4, 0x9e, 0x50, 0xed, 0x51, 0xd6, 0x27, 0x35, 0xc4, 0xe7, 0x6e, 0xd2, 0xa9, 0x5d, - 0x32, 0xa3, 0xfe, 0xdd, 0x38, 0x2c, 0xe6, 0x4e, 0xcd, 0x65, 0x48, 0x7c, 0x32, 0xe5, 0xb4, 0x27, - 0xbb, 0x0d, 0x53, 0x31, 0xda, 0xb0, 0xd7, 0xc1, 0x9c, 0x57, 0x6b, 0x52, 0x8c, 0xbb, 0xbd, 0x0e, - 0xd6, 0x26, 0x8f, 0x12, 0xbf, 0x90, 0x0a, 0x53, 0x22, 0xc6, 0x4c, 0xb8, 0x09, 0x86, 0x3c, 0x86, - 0xa5, 0x8e, 0x8f, 0x0f, 0x6d, 0xaf, 0x1b, 0xe8, 0x01, 0xf1, 0x44, 0xb0, 0xd5, 0x5f, 0x7f, 0x86, - 0xee, 0xbb, 0x9c, 0x8b, 0x44, 0x9a, 0x6e, 0x78, 0xe5, 0xcd, 0xc7, 0xc4, 0x9d, 0xd1, 0x16, 0x22, - 0xe8, 0x1d, 0x06, 0x1c, 0xe1, 0x7d, 0x0d, 0xce, 0xd2, 0xb8, 0x89, 0x05, 0x3a, 0x31, 0xc6, 0x61, - 0x4a, 0xc1, 0x0c, 0x99, 0xba, 0x4d, 0x66, 0xa2, 0xe5, 0xef, 0xc2, 0x38, 0x8d, 0x81, 0x1c, 0x3b, - 0x08, 0x69, 0x24, 0x38, 0xb1, 0x79, 0x5e, 0xfc, 0x91, 0x8f, 0xa4, 0x72, 0x2c, 0xe4, 0x7f, 0xa1, - 0x3b, 0x30, 0x13, 0x50, 0x89, 0xd5, 0xfb, 0x28, 0x46, 0x07, 0x41, 0x51, 0x0d, 0x52, 0x82, 0x8e, - 0xde, 0x84, 0x05, 0xd3, 0xb1, 0x09, 0xa5, 0x8e, 0xbd, 0xe7, 0x1b, 0x7e, 0x4f, 0x3f, 0xc4, 0x3e, - 0xb5, 0x80, 0x63, 0x54, 0xa4, 0xe7, 0xd8, 0xec, 0x5d, 0x36, 0xf9, 0x98, 0xcd, 0x25, 0xa0, 0x5a, - 0xd8, 0x08, 0xbb, 0x3e, 0x8e, 0xa1, 0xc6, 0x93, 0x50, 0xb7, 0xd9, 0x64, 0x04, 0x75, 0x01, 0x26, - 0x38, 0x94, 0xdd, 0xee, 0x38, 0x35, 0xa0, 0x4b, 0x81, 0x0d, 0x35, 0xdb, 0x1d, 0x07, 0x05, 0x70, - 0x29, 0x7b, 0x2a, 0x3d, 0x30, 0x0f, 0xb0, 0xd5, 0x75, 0xb0, 0x1e, 0x7a, 0xec, 0xb2, 0x68, 0x20, - 0xee, 0x75, 0xc3, 0xda, 0x44, 0x59, 0xcc, 0xf8, 0x62, 0xfa, 0xac, 0x3b, 0x1c, 0xd3, 0xae, 0x47, - 0xef, 0x6d, 0x97, 0xa1, 0x21, 0x2e, 0x09, 0xbb, 0x2a, 0xe2, 0x3c, 0xf7, 0x0f, 0x32, 0x49, 0x73, - 0x01, 0xb3, 0x74, 0x6a, 0x87, 0xcc, 0x44, 0xa7, 0x28, 0x52, 0xa7, 0xa9, 0x22, 0x75, 0x42, 0x77, - 0xa1, 0x1a, 0xcb, 0x76, 0x40, 0x94, 0xa9, 0x56, 0xa5, 0x71, 0xff, 0xc5, 0xf4, 0x55, 0xb1, 0x64, - 0x4c, 0x52, 0xbe, 0x99, 0xe6, 0xc5, 0x8a, 0x41, 0x7f, 0x22, 0x13, 0xe6, 0x62, 0x6c, 0xa6, 0xe3, - 0x05, 0x98, 0xe3, 0x9c, 0xa6, 0x38, 0x2f, 0x0f, 0xe8, 0x30, 0x10, 0x40, 0x82, 0xaf, 0x1b, 0x68, - 0xb1, 0x3e, 0xc7, 0x83, 0x44, 0xcb, 0x67, 0x39, 0x23, 0x74, 0x16, 0x55, 0x90, 0xaf, 0xf8, 0x8c, - 0xe8, 0x9b, 0xd8, 0xa7, 0x9a, 0x33, 0xe8, 0x83, 0x68, 0xbd, 0x36, 0x73, 0x98, 0x19, 0x41, 0xd7, - 0x60, 0xd9, 0x26, 0x3a, 0x97, 0xb9, 0x63, 0xec, 0x12, 0x3b, 0x63, 0xd5, 0x66, 0xa9, 0x1b, 0xb8, - 0x68, 0x07, 0x69, 0x6b, 0x7c, 0x8b, 0x4d, 0xa3, 0x35, 0x98, 0xe4, 0x21, 0x8e, 0x1e, 0xd8, 0x9f, - 0xe2, 0x1a, 0x62, 0xaa, 0xcd, 0xc7, 0x76, 0xec, 0x4f, 0xb1, 0xfa, 0x4b, 0x05, 0x16, 0x1f, 0x7a, - 0x8e, 0xf3, 0x7f, 0xcc, 0x60, 0xff, 0x64, 0x0c, 0x6a, 0xf9, 0x63, 0x7f, 0x63, 0xb1, 0xbf, 0xb1, - 0xd8, 0x5f, 0x47, 0x8b, 0x5d, 0xa4, 0x1f, 0x93, 0x85, 0x16, 0x58, 0x68, 0xce, 0xa6, 0x4e, 0x6d, - 0xce, 0x7e, 0xf5, 0x0c, 0xbb, 0xfa, 0x4f, 0x43, 0xb0, 0xaa, 0x61, 0xd3, 0xf3, 0xad, 0x64, 0x2e, - 0x95, 0xab, 0xc5, 0xf3, 0xb4, 0x94, 0x17, 0x60, 0x22, 0x16, 0x9c, 0xd8, 0x08, 0x40, 0x34, 0xd4, - 0xb4, 0xd0, 0x22, 0x8c, 0x52, 0x19, 0xe3, 0x1a, 0x5f, 0xd1, 0x46, 0xc8, 0xcf, 0xa6, 0x85, 0xce, - 0x03, 0x70, 0x57, 0x3f, 0xd2, 0xdd, 0x71, 0x6d, 0x9c, 0x8f, 0x34, 0x2d, 0xa4, 0xc1, 0x64, 0xc7, - 0x73, 0x1c, 0x3d, 0x0a, 0x27, 0x46, 0x24, 0xe1, 0x04, 0xb1, 0xa1, 0xb7, 0x3d, 0x3f, 0xc9, 0x9a, - 0x28, 0x9c, 0x98, 0x20, 0x48, 0xf8, 0x0f, 0xf5, 0x77, 0xc7, 0x60, 0x4d, 0xc2, 0x45, 0x6e, 0x78, - 0x73, 0x16, 0x52, 0x39, 0x99, 0x85, 0x94, 0x5a, 0xbf, 0xa1, 0x93, 0x5b, 0xbf, 0x6f, 0x01, 0x8a, - 0xf8, 0x6b, 0x65, 0xcd, 0xef, 0x4c, 0x3c, 0x13, 0xad, 0x5e, 0x27, 0x06, 0x4c, 0x60, 0x7a, 0x2b, - 0xc4, 0x42, 0xa5, 0xf0, 0xe6, 0x2c, 0xfa, 0x70, 0xde, 0xa2, 0x27, 0xaa, 0x2e, 0x23, 0xe9, 0xaa, - 0xcb, 0x55, 0xa8, 0x71, 0x93, 0xd2, 0xcf, 0x51, 0x44, 0x0e, 0xc2, 0x28, 0x75, 0x10, 0x16, 0xd8, - 0x7c, 0x2c, 0x3b, 0x91, 0x7f, 0xa0, 0xc1, 0x54, 0x5c, 0x5d, 0xa0, 0x59, 0x0d, 0x56, 0xae, 0x78, - 0xad, 0x48, 0x1b, 0x77, 0x7d, 0xc3, 0x0d, 0x88, 0x29, 0x4b, 0x45, 0xf2, 0x93, 0x56, 0xe2, 0x17, - 0xfa, 0x04, 0xce, 0x09, 0x72, 0x26, 0x7d, 0x13, 0x3e, 0x3e, 0x88, 0x09, 0x5f, 0xca, 0x89, 0x7b, - 0x6c, 0xcd, 0x0b, 0xbc, 0x4f, 0x28, 0xf2, 0x3e, 0xd7, 0x60, 0x32, 0x65, 0xf3, 0x26, 0xa8, 0xcd, - 0x9b, 0xd8, 0x4b, 0x18, 0xbb, 0x1b, 0x50, 0xed, 0x5f, 0x2b, 0xad, 0x5a, 0x4d, 0x96, 0x56, 0xad, - 0xa6, 0x62, 0x08, 0x5a, 0xb4, 0x7a, 0x1f, 0x26, 0xa3, 0xbb, 0xa6, 0x08, 0xa6, 0x4a, 0x11, 0x4c, - 0xf0, 0xf5, 0x14, 0xdc, 0x80, 0x51, 0x12, 0xec, 0x13, 0x23, 0x5b, 0xa5, 0x29, 0x9a, 0x3b, 0x85, - 0x89, 0xea, 0x52, 0x2d, 0xa2, 0x59, 0x04, 0x1b, 0x07, 0x2c, 0x35, 0x1d, 0xe1, 0xcd, 0xf9, 0x82, - 0xd3, 0x39, 0x5f, 0xb0, 0xfe, 0x09, 0x4c, 0x26, 0x61, 0x05, 0xd9, 0xea, 0xab, 0xc9, 0x6c, 0x75, - 0x51, 0x16, 0x23, 0x52, 0x4c, 0x96, 0xcd, 0x48, 0x64, 0xb4, 0xfb, 0xa6, 0x34, 0xca, 0x5d, 0x7d, - 0x63, 0x4a, 0x73, 0xa6, 0x34, 0xc9, 0x1a, 0xa1, 0x29, 0xfd, 0x79, 0x25, 0x32, 0xa5, 0x42, 0x2e, - 0x72, 0x53, 0xfa, 0x21, 0x4c, 0x67, 0x4c, 0x95, 0xd4, 0x98, 0xb2, 0x4f, 0x74, 0x8f, 0x1a, 0x1b, - 0xad, 0x9a, 0x36, 0x65, 0x39, 0xe1, 0x1e, 0x3a, 0x9e, 0x70, 0x27, 0x2c, 0x57, 0x25, 0x6d, 0xb9, - 0x3e, 0x81, 0x95, 0xb4, 0xe2, 0xe9, 0x5e, 0x4b, 0x0f, 0x0f, 0xec, 0x40, 0x4f, 0x16, 0x98, 0xe5, - 0x5b, 0xd5, 0x53, 0x8a, 0xf8, 0xa0, 0xb5, 0x7b, 0x60, 0x07, 0x37, 0x38, 0xfe, 0x26, 0xcc, 0x1e, - 0x60, 0xc3, 0x0f, 0xf7, 0xb0, 0x11, 0xea, 0x16, 0x0e, 0x0d, 0xdb, 0x09, 0x78, 0xa2, 0x52, 0x9e, - 0xc3, 0x9b, 0x89, 0xc1, 0xb6, 0x19, 0x54, 0xfe, 0xd3, 0x34, 0x72, 0xb2, 0x4f, 0xd3, 0xcb, 0x30, - 0x1d, 0xe3, 0x61, 0x62, 0x4d, 0x6d, 0xf4, 0xb8, 0x16, 0x3b, 0x46, 0xdb, 0x74, 0x54, 0xfd, 0x53, - 0x05, 0x5e, 0x60, 0xb7, 0x99, 0x52, 0x76, 0x5e, 0x27, 0xee, 0xeb, 0x8b, 0x96, 0xcd, 0xfb, 0x5d, - 0x2d, 0xca, 0xfb, 0x95, 0xa1, 0x1a, 0x30, 0x01, 0xf8, 0x37, 0x15, 0x78, 0x51, 0x8e, 0x8d, 0x8b, - 0x20, 0xee, 0x7f, 0xff, 0x7c, 0x3e, 0xc6, 0x49, 0x7c, 0xf7, 0xe4, 0xd6, 0x4d, 0x9b, 0x0e, 0x32, - 0x92, 0xfe, 0x63, 0x05, 0x56, 0xfa, 0x99, 0x73, 0xe2, 0x43, 0x5b, 0x76, 0xd0, 0x31, 0x42, 0xf3, - 0x40, 0x77, 0x3c, 0xd3, 0x70, 0x9c, 0x5e, 0x6d, 0x88, 0xda, 0xd4, 0x4f, 0x24, 0xbb, 0x96, 0x1f, - 0xa7, 0xd1, 0x4f, 0xad, 0xef, 0x7a, 0xdb, 0x7c, 0x87, 0xbb, 0x6c, 0x03, 0x66, 0x6a, 0x97, 0x8d, - 0xe2, 0x15, 0xf5, 0xdf, 0x86, 0xd5, 0x32, 0x04, 0x02, 0x7b, 0xbb, 0x9d, 0xb6, 0xb7, 0xe2, 0xc4, - 0x7d, 0x64, 0x06, 0x28, 0xae, 0x08, 0x31, 0xfd, 0x32, 0x27, 0x6c, 0xef, 0x0f, 0x15, 0x62, 0x7b, - 0x73, 0xc7, 0xbc, 0x6d, 0xd8, 0x4e, 0x5f, 0x96, 0x06, 0xac, 0xf8, 0x94, 0xe1, 0x19, 0x50, 0x90, - 0x5e, 0x20, 0x76, 0xac, 0x10, 0x13, 0xcf, 0x27, 0xff, 0xb1, 0x02, 0x6a, 0xde, 0xda, 0x7d, 0x10, - 0xa9, 0x67, 0x44, 0xf9, 0xa3, 0x2c, 0xe5, 0x6f, 0x17, 0x50, 0x5e, 0x86, 0x69, 0x40, 0xda, 0x1f, - 0x12, 0xe5, 0x94, 0xe0, 0xe2, 0xb2, 0xf9, 0x0a, 0xcc, 0x98, 0x86, 0x6b, 0xe2, 0xf8, 0x0b, 0x80, - 0xd9, 0x37, 0x6d, 0x4c, 0x9b, 0x66, 0xe3, 0x5a, 0x34, 0x9c, 0xd4, 0xf7, 0x24, 0xce, 0x53, 0xea, - 0xbb, 0x0c, 0xd5, 0x80, 0x47, 0x7d, 0x29, 0x56, 0xf7, 0x02, 0x64, 0x89, 0x9a, 0xa2, 0x60, 0xe1, - 0x69, 0x24, 0xac, 0x10, 0xcf, 0xb1, 0x25, 0x4c, 0x84, 0x29, 0x25, 0x61, 0xf9, 0x03, 0xd2, 0xfb, - 0xe9, 0x53, 0x3e, 0xb0, 0x84, 0x95, 0x61, 0x1a, 0x90, 0xf6, 0x8b, 0x62, 0x71, 0x88, 0x71, 0x71, - 0xea, 0xff, 0x56, 0x81, 0x0b, 0x1a, 0x6e, 0x7b, 0x87, 0x98, 0x35, 0x0b, 0x7c, 0x55, 0xf2, 0x78, - 0x69, 0xc7, 0xa8, 0x92, 0x71, 0x8c, 0x54, 0x95, 0xc8, 0x4a, 0x11, 0xd5, 0xfc, 0x68, 0x7f, 0x3f, - 0x04, 0x17, 0xf9, 0x11, 0xd8, 0xb1, 0x0b, 0x2b, 0xd5, 0xd2, 0x03, 0x1a, 0x50, 0x4d, 0xeb, 0x20, - 0x3f, 0xdc, 0xbb, 0x05, 0xf7, 0x37, 0xc0, 0x86, 0xda, 0x54, 0x4a, 0x7b, 0xd1, 0x1e, 0x2c, 0xc6, - 0xcd, 0x00, 0xc2, 0x8e, 0x3b, 0x71, 0x9d, 0xf8, 0x16, 0x87, 0xc9, 0xd4, 0x89, 0xb1, 0x68, 0xf8, - 0xd8, 0x8d, 0x00, 0xeb, 0xf0, 0x52, 0xd9, 0x59, 0x38, 0x9f, 0xff, 0x51, 0x81, 0xe5, 0x28, 0x71, - 0x24, 0x08, 0xe4, 0x9f, 0x8b, 0xf8, 0x5c, 0x82, 0x59, 0x3b, 0xd0, 0xd3, 0x0d, 0x70, 0x94, 0x97, - 0x63, 0xda, 0xb4, 0x1d, 0xdc, 0x4e, 0xb6, 0xb6, 0xa9, 0x2b, 0x70, 0x4e, 0x4c, 0x3e, 0x3f, 0xdf, - 0xe7, 0xd4, 0x61, 0x21, 0xc6, 0x3a, 0x5d, 0xdb, 0xce, 0x99, 0xd6, 0xe7, 0x71, 0xd0, 0x35, 0x98, - 0xe4, 0xdd, 0x8d, 0xd8, 0x4a, 0xe4, 0x72, 0xe3, 0xb1, 0xa6, 0x85, 0x3e, 0x86, 0xb3, 0x66, 0x44, - 0x6a, 0x62, 0xeb, 0x33, 0xc7, 0xda, 0x1a, 0xc5, 0x28, 0xfa, 0x7b, 0xdf, 0x85, 0x99, 0x44, 0xc7, - 0x22, 0x0b, 0x12, 0x86, 0x07, 0x0d, 0x12, 0xa6, 0xfb, 0xa0, 0x2c, 0x4a, 0x38, 0x0f, 0x10, 0xb9, - 0x7b, 0xb6, 0x45, 0xdd, 0xe3, 0x8a, 0x36, 0xce, 0x47, 0x9a, 0x96, 0xfa, 0x32, 0x51, 0x66, 0xe9, - 0x25, 0xf0, 0xeb, 0xfa, 0xb7, 0x21, 0xa8, 0x69, 0xbc, 0x9d, 0x17, 0x53, 0xd4, 0xc1, 0xe3, 0xcd, - 0xe7, 0x79, 0x45, 0xbf, 0x09, 0xf3, 0xe9, 0x5c, 0x68, 0x4f, 0xb7, 0x43, 0xdc, 0x8e, 0x9a, 0x34, - 0xb2, 0xed, 0x08, 0x56, 0xdb, 0x76, 0x73, 0xe9, 0xd0, 0x5e, 0x33, 0xc4, 0x6d, 0xed, 0xec, 0x61, - 0x6e, 0x2c, 0x40, 0x6f, 0xc1, 0x08, 0x65, 0x7d, 0xc0, 0x6f, 0x54, 0x9c, 0x1a, 0xd9, 0x36, 0x42, - 0xe3, 0xa6, 0xe3, 0xed, 0x69, 0x7c, 0x31, 0xda, 0x82, 0xaa, 0x8b, 0x8f, 0x74, 0xbf, 0xcb, 0x6f, - 0x2e, 0x0a, 0x6c, 0x4a, 0xc0, 0x27, 0x5d, 0x7c, 0xa4, 0x75, 0xd9, 0x95, 0x05, 0xea, 0x32, 0x2c, - 0x09, 0x58, 0xcd, 0x2f, 0xe2, 0xfb, 0x0a, 0x2c, 0xec, 0xf4, 0x5c, 0x73, 0xe7, 0xc0, 0xf0, 0x2d, - 0x9e, 0x21, 0xe5, 0xd7, 0x70, 0x11, 0xaa, 0x81, 0xd7, 0xf5, 0x4d, 0xac, 0xf3, 0x2e, 0x6f, 0x7e, - 0x17, 0x53, 0x6c, 0x74, 0x8b, 0x0d, 0xa2, 0x25, 0x18, 0x0b, 0x08, 0x70, 0xf4, 0x7d, 0x1b, 0xd6, - 0x46, 0xe9, 0xef, 0xa6, 0x85, 0x1a, 0x70, 0x86, 0xc6, 0x92, 0x95, 0xd2, 0x00, 0x8f, 0xae, 0x53, - 0x97, 0x60, 0x31, 0x47, 0x0b, 0xa7, 0xf3, 0x67, 0xc3, 0x70, 0x96, 0xcc, 0x45, 0xdf, 0xc9, 0xe7, - 0x29, 0x2b, 0x35, 0x18, 0x8d, 0x32, 0x52, 0x4c, 0x93, 0xa3, 0x9f, 0x44, 0xd1, 0xfb, 0xb1, 0x6e, - 0x9c, 0x47, 0x88, 0xf3, 0x0e, 0x84, 0x27, 0xf9, 0x3c, 0xd4, 0xf0, 0x71, 0xf3, 0x50, 0x72, 0x25, - 0xcc, 0x45, 0xf2, 0xa3, 0xc7, 0x8b, 0xe4, 0x3f, 0xe4, 0xd5, 0x9f, 0x7e, 0x50, 0x4d, 0xb1, 0x8c, - 0x95, 0x62, 0x99, 0x25, 0x60, 0xb1, 0x7b, 0x4c, 0x71, 0x5d, 0x81, 0xd1, 0x28, 0x22, 0x1f, 0x1f, - 0x20, 0x22, 0x8f, 0x16, 0x27, 0xb3, 0x09, 0x90, 0xce, 0x26, 0x5c, 0x87, 0x49, 0x56, 0x9b, 0xe2, - 0xbd, 0xdc, 0x13, 0x03, 0xf4, 0x72, 0x4f, 0xd0, 0x92, 0x15, 0x6f, 0xe3, 0x7e, 0x1d, 0x68, 0x2b, - 0x36, 0x7f, 0xdd, 0xa0, 0xdb, 0x16, 0x76, 0x43, 0x3b, 0xec, 0xd1, 0x6c, 0xe0, 0xb8, 0x86, 0xc8, - 0xdc, 0xc7, 0x74, 0xaa, 0xc9, 0x67, 0xd0, 0x7d, 0x98, 0xce, 0x98, 0x06, 0x9e, 0xf9, 0xbb, 0x38, - 0x90, 0x51, 0xd0, 0xaa, 0x69, 0x83, 0xa0, 0x2e, 0xc0, 0x5c, 0x5a, 0x92, 0xb9, 0x88, 0xff, 0x91, - 0x02, 0xcb, 0x51, 0x73, 0xdc, 0x57, 0xc4, 0xc3, 0x53, 0xff, 0x50, 0x81, 0x73, 0x62, 0x9a, 0x78, - 0xf0, 0xf3, 0x06, 0x2c, 0xb4, 0xd9, 0x38, 0xab, 0xcb, 0xe8, 0xb6, 0xab, 0x9b, 0x86, 0x79, 0x80, - 0x39, 0x85, 0x67, 0xdb, 0x09, 0xa8, 0xa6, 0xbb, 0x45, 0xa6, 0xd0, 0x3b, 0xb0, 0x94, 0x03, 0xb2, - 0x8c, 0xd0, 0xd8, 0x33, 0x82, 0xa8, 0x47, 0x76, 0x21, 0x0d, 0xb7, 0xcd, 0x67, 0xd5, 0x73, 0x50, - 0x8f, 0xe8, 0xe1, 0xfc, 0xfc, 0xc0, 0x8b, 0xbb, 0x9b, 0xd4, 0xdf, 0x19, 0xea, 0xb3, 0x30, 0x35, - 0xcd, 0xa9, 0x5d, 0x87, 0x19, 0xb7, 0xdb, 0xde, 0xc3, 0xbe, 0xee, 0xb5, 0x74, 0x6a, 0xa5, 0x02, - 0x4a, 0xe7, 0xb0, 0x56, 0x65, 0xe3, 0x0f, 0x5a, 0xd4, 0xf8, 0x04, 0x84, 0xd9, 0x91, 0x55, 0x0b, - 0x68, 0x6a, 0x61, 0x58, 0x1b, 0xe3, 0x66, 0x2d, 0x40, 0x4d, 0x98, 0xe4, 0x37, 0xc1, 0x8e, 0x2a, - 0x6e, 0x04, 0x8d, 0xc4, 0x81, 0xe5, 0x7a, 0xe8, 0xc9, 0xa9, 0xef, 0x37, 0x61, 0xf5, 0x07, 0xd0, - 0x15, 0x58, 0x64, 0xfb, 0x98, 0x9e, 0x1b, 0xfa, 0x9e, 0xe3, 0x60, 0x9f, 0xf2, 0xa4, 0xcb, 0xbe, - 0x14, 0xe3, 0xda, 0x3c, 0x9d, 0xde, 0x8a, 0x67, 0x99, 0x5d, 0xa4, 0x1a, 0x62, 0x59, 0x3e, 0x0e, - 0x02, 0x9e, 0x90, 0x8c, 0x7e, 0xaa, 0x0d, 0x98, 0x65, 0x95, 0x2d, 0x02, 0x17, 0xc9, 0x4e, 0xd2, - 0x48, 0x2b, 0x29, 0x23, 0xad, 0xce, 0x01, 0x4a, 0xae, 0xe7, 0xc2, 0xf8, 0x1f, 0x0a, 0xcc, 0x32, - 0xe7, 0x3d, 0xe9, 0x25, 0x16, 0xa3, 0x41, 0xd7, 0x78, 0x15, 0x38, 0x2e, 0x7a, 0x57, 0x37, 0x2f, - 0x14, 0x30, 0x84, 0x60, 0xa4, 0x59, 0x33, 0x5a, 0x07, 0xa6, 0x19, 0xb3, 0x44, 0xee, 0xb5, 0x92, - 0xca, 0xbd, 0x6e, 0xc1, 0xf4, 0xa1, 0x1d, 0xd8, 0x7b, 0xb6, 0x63, 0x87, 0x3d, 0x66, 0x89, 0xca, - 0xd3, 0x85, 0xd5, 0x3e, 0x08, 0x35, 0x43, 0x6b, 0x30, 0xc9, 0x3f, 0x61, 0xba, 0x6b, 0x70, 0x8b, - 0x3b, 0xae, 0x4d, 0xf0, 0xb1, 0xfb, 0x46, 0x1b, 0x13, 0x2e, 0x24, 0x8f, 0xcb, 0xb9, 0xf0, 0x03, - 0xca, 0x85, 0x00, 0x87, 0x8f, 0xba, 0xb8, 0x8b, 0x07, 0xe0, 0x42, 0x76, 0xa7, 0xa1, 0xdc, 0x4e, - 0x69, 0x46, 0x55, 0x8e, 0xc9, 0x28, 0x46, 0x67, 0x9f, 0x20, 0x4e, 0xe7, 0x8f, 0x14, 0x98, 0x8b, - 0xe4, 0xfe, 0x2b, 0x43, 0xea, 0x03, 0x98, 0xcf, 0xd0, 0xc4, 0xb5, 0xf0, 0x0a, 0x2c, 0x76, 0x7c, - 0xcf, 0xc4, 0x41, 0x60, 0xbb, 0xfb, 0x3a, 0x7d, 0xf8, 0xc5, 0xec, 0x00, 0x51, 0xc6, 0x0a, 0x91, - 0xf9, 0xfe, 0x34, 0x85, 0xa4, 0x46, 0x20, 0x50, 0x3f, 0x57, 0xe0, 0xfc, 0x1d, 0x1c, 0x6a, 0xfd, - 0x67, 0x60, 0xf7, 0x70, 0x10, 0x18, 0xfb, 0x38, 0x76, 0x59, 0xae, 0xc3, 0x08, 0x2d, 0x00, 0x31, - 0x44, 0x13, 0x9b, 0x2f, 0x17, 0x50, 0x9b, 0x40, 0x41, 0xab, 0x43, 0x1a, 0x07, 0x1b, 0x80, 0x29, - 0xc4, 0xc6, 0xac, 0x14, 0x51, 0xc1, 0x0f, 0xf8, 0x14, 0xaa, 0x8c, 0xeb, 0x6d, 0x3e, 0xc3, 0xc9, - 0xf9, 0xb0, 0x30, 0x39, 0x29, 0x47, 0xd8, 0xa0, 0xba, 0x19, 0x8d, 0xb2, 0x44, 0xe4, 0x54, 0x90, - 0x1c, 0xab, 0x3b, 0x80, 0xf2, 0x8b, 0x92, 0xc9, 0xc6, 0x61, 0x96, 0x6c, 0xfc, 0x4e, 0x3a, 0xd9, - 0x78, 0xa9, 0x9c, 0x41, 0x31, 0x31, 0x89, 0x44, 0x63, 0x1b, 0x56, 0xef, 0xe0, 0x70, 0xfb, 0xee, - 0x23, 0xc9, 0x5d, 0x34, 0x01, 0x98, 0x4a, 0xbb, 0x2d, 0x2f, 0x62, 0xc0, 0x00, 0xdb, 0x11, 0x41, - 0xa2, 0x66, 0x92, 0x8a, 0x1e, 0xf9, 0x2b, 0x50, 0x9f, 0xc1, 0x9a, 0x64, 0x3b, 0xce, 0xf4, 0x1d, - 0x98, 0x4d, 0x3c, 0x10, 0xa4, 0xc5, 0xc8, 0x68, 0xdb, 0x97, 0x06, 0xdb, 0x56, 0x9b, 0xf1, 0xd3, - 0x03, 0x81, 0xfa, 0x2f, 0x0a, 0xcc, 0x69, 0xd8, 0xe8, 0x74, 0x1c, 0x16, 0x11, 0xc5, 0xa7, 0x5b, - 0x80, 0x11, 0x9e, 0xd9, 0x67, 0xdf, 0x39, 0xfe, 0x4b, 0xfe, 0x9e, 0x40, 0xfc, 0x91, 0xae, 0x9c, - 0xd6, 0x1f, 0x3d, 0x59, 0x70, 0xa1, 0x2e, 0xc2, 0x7c, 0xe6, 0x68, 0xdc, 0x9a, 0xfc, 0x54, 0x81, - 0x65, 0x0d, 0xb7, 0x7c, 0x1c, 0x1c, 0xc4, 0x45, 0x0e, 0xc2, 0x8d, 0xaf, 0xe0, 0xd9, 0xd5, 0x15, - 0x38, 0x27, 0x26, 0x95, 0x9f, 0xe5, 0x1d, 0x58, 0xdc, 0xf2, 0xba, 0x2e, 0x11, 0x9e, 0xac, 0x80, - 0xae, 0x00, 0xb4, 0x3c, 0xdf, 0xc4, 0xb7, 0x71, 0x68, 0x1e, 0xf0, 0x8c, 0x6d, 0x62, 0x44, 0x35, - 0xa0, 0x96, 0x07, 0xe5, 0xc2, 0x76, 0x0b, 0x46, 0xb1, 0x1b, 0xd2, 0x5a, 0x2e, 0x13, 0xb1, 0x57, - 0x0b, 0x44, 0x8c, 0x7b, 0x21, 0xdb, 0x77, 0x1f, 0x51, 0x5c, 0xbc, 0x5e, 0xcb, 0x61, 0xd5, 0x9f, - 0x0e, 0xc1, 0x82, 0x86, 0x0d, 0x4b, 0x40, 0xdd, 0x26, 0x9c, 0x89, 0xbb, 0x23, 0xaa, 0x9b, 0x2b, - 0x45, 0xbe, 0xc5, 0xdd, 0x47, 0xd4, 0xea, 0xd2, 0xb5, 0xb2, 0x50, 0x2c, 0x1f, 0xcc, 0x55, 0x44, - 0xc1, 0xdc, 0x2e, 0xd4, 0x6c, 0x97, 0xac, 0xb0, 0x0f, 0xb1, 0x8e, 0xdd, 0xd8, 0x82, 0x0d, 0xd8, - 0x51, 0x36, 0x1f, 0x03, 0xdf, 0x72, 0x23, 0x53, 0xd4, 0xb4, 0x88, 0x60, 0x74, 0x08, 0x12, 0x5a, - 0x93, 0x1e, 0xa6, 0x84, 0x8d, 0x91, 0x81, 0x1d, 0xfb, 0x53, 0x8c, 0x5e, 0x82, 0x69, 0xda, 0x17, - 0x41, 0x57, 0xb0, 0xf2, 0xfd, 0x08, 0x2d, 0xdf, 0xd3, 0x76, 0x89, 0x87, 0xc6, 0x3e, 0x66, 0xdd, - 0x7c, 0x7f, 0x3d, 0x04, 0x8b, 0x39, 0x5e, 0xf1, 0xeb, 0x38, 0x09, 0xb3, 0x84, 0xf6, 0x62, 0xe8, - 0x74, 0xf6, 0x02, 0x7d, 0x17, 0x16, 0x72, 0x48, 0xa3, 0x1c, 0xe1, 0x71, 0x0d, 0xe0, 0x5c, 0x16, - 0x3b, 0x4d, 0x11, 0x0a, 0xd8, 0x75, 0x46, 0xc4, 0xae, 0x5f, 0x28, 0xb0, 0xf8, 0xb0, 0xeb, 0xef, - 0xe3, 0xaf, 0xb7, 0x6c, 0xa9, 0x75, 0xa8, 0xe5, 0x8f, 0xc9, 0x95, 0xff, 0x8b, 0x21, 0x58, 0xbc, - 0x87, 0xbf, 0xf6, 0x3c, 0xf8, 0x9f, 0xd1, 0xaf, 0x9b, 0x50, 0xcb, 0xf3, 0x8a, 0xeb, 0x97, 0x00, - 0x87, 0x22, 0xc2, 0xf1, 0x99, 0x02, 0xe7, 0xee, 0x7b, 0xa1, 0xdd, 0xea, 0x91, 0x70, 0xdb, 0x3b, - 0xc4, 0xfe, 0x3d, 0x83, 0xc4, 0xd2, 0x31, 0xd7, 0xbf, 0x0b, 0x0b, 0x2d, 0x3e, 0xa3, 0xb7, 0xe9, - 0x94, 0x9e, 0x72, 0xd8, 0x8a, 0xf4, 0x23, 0x8d, 0x8e, 0xf9, 0x6c, 0x73, 0xad, 0xfc, 0x60, 0xa0, - 0x5e, 0x80, 0xf3, 0x05, 0x14, 0x70, 0xa1, 0x30, 0x60, 0xf9, 0x0e, 0x0e, 0xb7, 0x7c, 0x2f, 0x08, - 0xf8, 0xad, 0xa4, 0x3e, 0x6e, 0xa9, 0xc0, 0x4f, 0xc9, 0x04, 0x7e, 0x17, 0xa1, 0x1a, 0x1a, 0xfe, - 0x3e, 0x0e, 0xe3, 0x5b, 0x66, 0x9f, 0xb9, 0x29, 0x36, 0xca, 0xf1, 0xa9, 0xbf, 0xac, 0xc0, 0x39, - 0xf1, 0x1e, 0x9c, 0x9f, 0x6d, 0x82, 0x87, 0x98, 0x86, 0xbd, 0x1e, 0x0b, 0x43, 0xf9, 0xf1, 0xef, - 0xc8, 0x1c, 0xc4, 0x42, 0x74, 0xd4, 0xf9, 0x0e, 0x6e, 0xf6, 0xa8, 0x03, 0xc8, 0xbe, 0x30, 0x93, - 0x61, 0x62, 0x08, 0x7d, 0xa6, 0xc0, 0x7c, 0x8b, 0x16, 0xc4, 0x74, 0xd3, 0xe8, 0x06, 0xb8, 0xbf, - 0x2d, 0xb3, 0x77, 0xf7, 0x4e, 0xb6, 0x2d, 0xab, 0xb1, 0x6d, 0x11, 0x8c, 0xa9, 0xcd, 0x51, 0x2b, - 0x37, 0x51, 0xef, 0xc0, 0x6c, 0x8e, 0x4a, 0x81, 0x7b, 0x7a, 0x2b, 0xed, 0x9e, 0x6e, 0x14, 0x88, - 0x43, 0x96, 0x26, 0x7e, 0x79, 0x49, 0x1f, 0xb5, 0xde, 0x81, 0xc5, 0x02, 0x02, 0x05, 0xfb, 0x5e, - 0x4f, 0xee, 0x5b, 0x2d, 0x4c, 0xf7, 0xde, 0xc1, 0x61, 0xbf, 0xb8, 0x48, 0xf1, 0x26, 0xbd, 0xe2, - 0x7f, 0x57, 0x60, 0x9d, 0x97, 0xf3, 0x72, 0x4c, 0xcb, 0xd5, 0x21, 0x24, 0x91, 0xd9, 0x60, 0x52, - 0x86, 0x1e, 0x33, 0x21, 0x8a, 0xfb, 0x2e, 0xa2, 0x5c, 0xf5, 0xe0, 0x4c, 0xe3, 0xdd, 0x16, 0x53, - 0x61, 0xe2, 0x57, 0x80, 0x5e, 0x84, 0xa9, 0x16, 0x71, 0x80, 0xee, 0x63, 0xe6, 0x4b, 0xf1, 0xf2, - 0x53, 0x7a, 0x50, 0xf5, 0xe1, 0x95, 0x01, 0xce, 0x1a, 0xbb, 0x4b, 0xc3, 0x91, 0x3f, 0x7e, 0xb2, - 0x6b, 0xa5, 0xd0, 0xea, 0x5b, 0xf4, 0xd9, 0x59, 0xa4, 0xd8, 0xf4, 0x23, 0x39, 0x40, 0x6e, 0x4c, - 0x0d, 0xe9, 0xbb, 0xad, 0x34, 0x58, 0xec, 0x38, 0xcc, 0xf7, 0xcb, 0x2e, 0x51, 0x22, 0xa6, 0xcb, - 0xfb, 0xa8, 0x86, 0xb5, 0x7e, 0x4d, 0x66, 0x87, 0x65, 0x61, 0xba, 0x2e, 0xcd, 0x8b, 0x47, 0x0f, - 0x23, 0x79, 0x0a, 0x89, 0xe5, 0x87, 0xa6, 0xf8, 0x28, 0xcb, 0x20, 0xa9, 0x4d, 0x58, 0xd0, 0x8c, - 0x10, 0x3b, 0x76, 0xdb, 0x0e, 0x3f, 0xea, 0x58, 0x89, 0x44, 0xde, 0x06, 0x9c, 0xb1, 0x8c, 0xd0, - 0xe0, 0xcc, 0x58, 0x2e, 0x6a, 0xc4, 0xbc, 0xe1, 0xf6, 0x34, 0xba, 0x50, 0xfd, 0x10, 0x16, 0x73, - 0xa8, 0xf8, 0x01, 0x8e, 0x8b, 0x6b, 0xf3, 0x1f, 0x1a, 0x00, 0xdc, 0x29, 0xbd, 0xf1, 0xb0, 0x89, - 0xbe, 0xa7, 0xc0, 0x82, 0xf8, 0xdd, 0x39, 0xba, 0x72, 0xb2, 0x7f, 0x14, 0x51, 0x7f, 0xfb, 0xd8, - 0x70, 0xfc, 0x2c, 0x7f, 0xa0, 0xc0, 0x62, 0xc1, 0x3f, 0x26, 0x40, 0x6f, 0x97, 0x3d, 0xea, 0x2f, - 0xa2, 0xe6, 0xea, 0xf1, 0x01, 0x39, 0x39, 0x3f, 0x51, 0x60, 0xb5, 0xec, 0x71, 0x3e, 0xfa, 0xce, - 0x69, 0xff, 0xd9, 0x40, 0xfd, 0xc6, 0x29, 0x30, 0x70, 0x4a, 0xc9, 0x25, 0x8a, 0x9f, 0xdd, 0x4b, - 0x2e, 0x51, 0xfa, 0xdc, 0x5f, 0x72, 0x89, 0x25, 0xef, 0xfb, 0xff, 0x44, 0x81, 0x7a, 0xf1, 0xe3, - 0x74, 0x54, 0xdc, 0x15, 0x56, 0xfa, 0x68, 0xbf, 0xfe, 0xde, 0x89, 0x60, 0x39, 0x5d, 0x3f, 0x52, - 0x60, 0xa9, 0xf0, 0xe9, 0x39, 0x7a, 0xa7, 0x10, 0x75, 0xd9, 0xcb, 0xf7, 0xfa, 0xbb, 0x27, 0x01, - 0xe5, 0x44, 0xb9, 0x30, 0x95, 0x7a, 0x93, 0x8c, 0x5e, 0x2b, 0x44, 0x26, 0x7a, 0xfa, 0x5c, 0x6f, - 0x0c, 0xba, 0x9c, 0xef, 0xf7, 0x99, 0x02, 0x67, 0x05, 0x0f, 0x7b, 0xd1, 0x1b, 0xf2, 0xdb, 0x16, - 0x3e, 0x25, 0xae, 0xbf, 0x79, 0x3c, 0x20, 0x4e, 0x42, 0x08, 0xd3, 0x99, 0x47, 0xb4, 0x68, 0x43, - 0xe6, 0x7e, 0x08, 0x2a, 0x21, 0xf5, 0xd7, 0x07, 0x07, 0xe0, 0xbb, 0x1e, 0xc1, 0x4c, 0xf6, 0x25, - 0x18, 0x2a, 0xc6, 0x52, 0xf0, 0x56, 0xae, 0x7e, 0xf9, 0x18, 0x10, 0x09, 0xb1, 0x2b, 0xec, 0x77, - 0x94, 0x88, 0x5d, 0xd9, 0x6b, 0x94, 0xfa, 0x29, 0xda, 0x2b, 0xd1, 0x9f, 0x2b, 0x70, 0x4e, 0xd6, - 0x0e, 0x89, 0xae, 0x9d, 0xb0, 0x8b, 0x92, 0x91, 0xf6, 0xfe, 0xa9, 0x7a, 0x30, 0x39, 0xcb, 0x0a, - 0x7a, 0x06, 0xa5, 0x2c, 0x93, 0x77, 0x2c, 0x4a, 0x59, 0x56, 0xd2, 0xa2, 0x98, 0xb8, 0x47, 0x41, - 0x43, 0x76, 0xe9, 0x3d, 0x16, 0xb7, 0xc2, 0x97, 0xde, 0xa3, 0xac, 0xff, 0x3b, 0x71, 0x8f, 0xc2, - 0xb6, 0xbd, 0xf2, 0x7b, 0x94, 0xb5, 0x0e, 0x96, 0xdf, 0xa3, 0xb4, 0x57, 0x30, 0x79, 0x8f, 0xf9, - 0xce, 0xbc, 0xf2, 0x7b, 0x2c, 0xec, 0x0b, 0x2c, 0xbf, 0xc7, 0xe2, 0x46, 0x40, 0xf4, 0x67, 0x34, - 0xb7, 0x59, 0xd8, 0x72, 0x87, 0xde, 0x3b, 0xd6, 0x99, 0xd3, 0x4d, 0x7f, 0xf5, 0x6b, 0x27, 0x03, - 0x4e, 0x91, 0x56, 0xd8, 0x6f, 0x2a, 0x25, 0xad, 0xac, 0xe3, 0x55, 0x4a, 0x5a, 0x79, 0x8b, 0xeb, - 0x5f, 0x2a, 0xb0, 0x22, 0x6f, 0x34, 0x43, 0xdf, 0x96, 0x6c, 0x30, 0x40, 0xb7, 0x5d, 0xfd, 0xfa, - 0x89, 0xe1, 0x39, 0x8d, 0x3f, 0x50, 0xa0, 0x56, 0xd4, 0x6e, 0x88, 0xae, 0x4a, 0xb0, 0x4b, 0xfb, - 0x2a, 0xeb, 0xef, 0x9c, 0x00, 0x92, 0x53, 0xf4, 0xb9, 0x02, 0x73, 0xa2, 0xa6, 0x35, 0x54, 0xfc, - 0xe5, 0x94, 0xb4, 0xe8, 0xd5, 0xdf, 0x3a, 0x26, 0x14, 0xa7, 0xe2, 0x2f, 0xe8, 0xff, 0x87, 0x92, - 0x34, 0x65, 0xa1, 0xf7, 0x4b, 0x64, 0x43, 0xde, 0x51, 0x57, 0xff, 0xf6, 0x49, 0xc1, 0x39, 0x81, - 0x9f, 0xc2, 0x6c, 0xae, 0x3f, 0x09, 0x5d, 0x96, 0x20, 0x15, 0xb7, 0x8d, 0xd5, 0x37, 0x8f, 0x03, - 0xd2, 0xf7, 0x46, 0x32, 0x1d, 0x47, 0x12, 0x6f, 0x44, 0xdc, 0x27, 0x25, 0xf1, 0x46, 0x0a, 0x9a, - 0x99, 0xd0, 0x13, 0x98, 0x4c, 0x76, 0x80, 0xa0, 0x6f, 0x49, 0x31, 0x64, 0x5a, 0x9e, 0xea, 0xaf, - 0x0d, 0xb8, 0x3a, 0x21, 0x85, 0xa2, 0x16, 0x0e, 0x89, 0x14, 0x4a, 0xba, 0x50, 0x24, 0x52, 0x28, - 0xed, 0x13, 0x21, 0x9e, 0xa7, 0xa0, 0x33, 0x43, 0xe2, 0x79, 0x16, 0xb7, 0x79, 0xd4, 0xdf, 0x3c, - 0x1e, 0x50, 0xfc, 0x54, 0x05, 0xfa, 0x8d, 0x0e, 0xe8, 0x52, 0x21, 0x8e, 0x5c, 0xf7, 0x44, 0xfd, - 0xd5, 0x81, 0xd6, 0xf6, 0xb7, 0xe9, 0x77, 0x12, 0x48, 0xb6, 0xc9, 0x75, 0x57, 0x48, 0xb6, 0xc9, - 0xb7, 0x26, 0xb0, 0x6d, 0xa2, 0x46, 0x00, 0xe9, 0x36, 0x99, 0xf6, 0x05, 0xe9, 0x36, 0xd9, 0xce, - 0x02, 0x12, 0xa1, 0xa4, 0x8a, 0xf8, 0x92, 0x08, 0x45, 0xd4, 0x80, 0x20, 0x89, 0x50, 0xc4, 0xbd, - 0x01, 0xdf, 0x63, 0xff, 0x5a, 0x48, 0x50, 0xe8, 0x95, 0x84, 0xb2, 0xd2, 0xa6, 0x00, 0x49, 0x28, - 0x5b, 0x52, 0xc6, 0x27, 0x0e, 0x4c, 0x61, 0xdd, 0x59, 0xe2, 0xc0, 0x94, 0x95, 0xc6, 0x25, 0x0e, - 0x4c, 0x79, 0x99, 0xdb, 0x85, 0xa9, 0x54, 0xd5, 0x56, 0x72, 0x21, 0xa2, 0xc2, 0xb5, 0xe4, 0x42, - 0x84, 0xc5, 0x60, 0x6a, 0x3e, 0x44, 0x15, 0x56, 0x24, 0x0b, 0xff, 0x0a, 0x6b, 0xc7, 0x12, 0xf3, - 0x21, 0x2b, 0xe3, 0x92, 0xf8, 0x2d, 0x5b, 0x8b, 0x95, 0xc4, 0x6f, 0x05, 0x15, 0x5f, 0x49, 0xfc, - 0x56, 0x58, 0xe8, 0x0d, 0x61, 0x3a, 0x53, 0x74, 0x94, 0x7c, 0x20, 0xc4, 0xa5, 0x5c, 0xc9, 0x07, - 0xa2, 0xa8, 0x9e, 0x49, 0xc2, 0xd5, 0x4c, 0x51, 0x4b, 0x16, 0xae, 0x8a, 0xcb, 0x7c, 0xb2, 0x70, - 0xb5, 0xa0, 0x62, 0x46, 0x36, 0xce, 0x16, 0x81, 0x24, 0x1b, 0x17, 0xd4, 0xd6, 0x24, 0x1b, 0x17, - 0x56, 0x98, 0x7e, 0x5f, 0x81, 0x79, 0x61, 0xdd, 0x06, 0x15, 0x4b, 0x8c, 0xac, 0xd2, 0x54, 0xbf, - 0x72, 0x5c, 0xb0, 0x84, 0xbc, 0x8b, 0xaa, 0x1e, 0x12, 0x79, 0x97, 0x94, 0x93, 0x24, 0xf2, 0x2e, - 0x2d, 0x10, 0x7d, 0xa1, 0xc4, 0xaf, 0x9a, 0x8a, 0xd3, 0xeb, 0xe8, 0x46, 0x59, 0xbc, 0x51, 0x5a, - 0x86, 0xa8, 0xdf, 0x3c, 0x0d, 0x8a, 0x54, 0x4a, 0x27, 0x99, 0x5f, 0x97, 0xa7, 0x74, 0x04, 0x09, - 0x7c, 0x79, 0x4a, 0x47, 0x98, 0xba, 0x27, 0x9a, 0x99, 0x4e, 0x8a, 0xcb, 0x34, 0x53, 0x98, 0x89, - 0x97, 0x69, 0xa6, 0x38, 0xdf, 0x7e, 0xf3, 0xd6, 0xcf, 0xbe, 0x5c, 0x51, 0xfe, 0xf9, 0xcb, 0x15, - 0xe5, 0x5f, 0xbf, 0x5c, 0x51, 0x7e, 0xfd, 0xed, 0x7d, 0x3b, 0x3c, 0xe8, 0xee, 0x35, 0x4c, 0xaf, - 0xbd, 0x91, 0xfa, 0x17, 0xe2, 0x8d, 0x7d, 0xec, 0xb2, 0xff, 0x27, 0x9f, 0xf8, 0x87, 0xf6, 0xef, - 0xf1, 0x3f, 0x0f, 0x2f, 0xef, 0x8d, 0xd0, 0xb9, 0x37, 0xfe, 0x3b, 0x00, 0x00, 0xff, 0xff, 0x62, - 0xe2, 0x64, 0x6e, 0xfc, 0x5e, 0x00, 0x00, + 0x76, 0x30, 0x7a, 0x46, 0xfc, 0x7b, 0x24, 0x87, 0x64, 0x89, 0x3f, 0xc3, 0xa1, 0x44, 0x91, 0x6d, + 0xcb, 0xa2, 0xe5, 0xf5, 0xd0, 0xa2, 0x6c, 0x49, 0x96, 0xe5, 0xd5, 0x4a, 0xa4, 0x24, 0x8f, 0x3f, + 0xfd, 0x36, 0x69, 0xf9, 0xcb, 0x9f, 0x7b, 0x9b, 0xd3, 0x35, 0x64, 0x47, 0x3d, 0xdd, 0xa3, 0xee, + 0x1e, 0x52, 0xf4, 0x21, 0x70, 0xe2, 0x20, 0x40, 0x16, 0x41, 0x76, 0xb3, 0x48, 0x82, 0x00, 0x01, + 0x02, 0x04, 0x1b, 0x60, 0xb1, 0x46, 0x6e, 0x09, 0x90, 0x43, 0x92, 0x53, 0x2e, 0x7b, 0xdc, 0x6b, + 0x6e, 0x81, 0xb1, 0x7b, 0x48, 0x80, 0xdc, 0xf6, 0x1c, 0x04, 0xf5, 0xd3, 0x3d, 0xfd, 0x53, 0x5d, + 0x3d, 0x43, 0x06, 0x91, 0xd7, 0xf1, 0x6d, 0xba, 0xaa, 0xde, 0xab, 0x57, 0xaf, 0xde, 0x7b, 0xfd, + 0xfe, 0x7a, 0xe0, 0x7c, 0x77, 0x17, 0x7b, 0xeb, 0x4d, 0xc3, 0xc4, 0x4e, 0x13, 0xaf, 0xef, 0x5b, + 0x7e, 0xe0, 0x7a, 0x47, 0xeb, 0x07, 0x97, 0xd6, 0x7d, 0xec, 0x1d, 0x58, 0x4d, 0x5c, 0xef, 0x78, + 0x6e, 0xe0, 0xa2, 0x05, 0xb2, 0xac, 0xce, 0x97, 0xd5, 0xf9, 0xb2, 0xfa, 0xc1, 0xa5, 0xda, 0xf2, + 0x9e, 0xeb, 0xee, 0xd9, 0x78, 0x9d, 0x2e, 0xdb, 0xed, 0xb6, 0xd6, 0xcd, 0xae, 0x67, 0x04, 0x96, + 0xeb, 0x30, 0xc0, 0xda, 0xb9, 0xf4, 0x7c, 0x60, 0xb5, 0xb1, 0x1f, 0x18, 0xed, 0x0e, 0x5f, 0x90, + 0x41, 0x70, 0xe8, 0x19, 0x9d, 0x0e, 0xf6, 0x7c, 0x3e, 0xbf, 0x92, 0x20, 0xd0, 0xe8, 0x58, 0x84, + 0xb8, 0xa6, 0xdb, 0x6e, 0x47, 0x5b, 0xac, 0x8a, 0x56, 0x84, 0x24, 0x72, 0x2a, 0x44, 0x4b, 0x9e, + 0x77, 0x71, 0xb4, 0x40, 0x15, 0x2d, 0x08, 0x0c, 0xff, 0x99, 0x6d, 0xf9, 0x81, 0x6c, 0xcd, 0xa1, + 0xeb, 0x3d, 0x6b, 0xd9, 0xee, 0x21, 0x5f, 0x73, 0x51, 0xb4, 0x86, 0xb3, 0x52, 0x4f, 0xad, 0x5d, + 0x2b, 0x5a, 0x8b, 0x3d, 0xbe, 0xf2, 0x95, 0xe4, 0x4a, 0xb3, 0x6d, 0x39, 0x94, 0x0b, 0x76, 0xd7, + 0x0f, 0x8a, 0x16, 0x25, 0x19, 0xb1, 0x2a, 0x5e, 0xf4, 0xbc, 0x8b, 0xbb, 0xfc, 0xaa, 0x6b, 0x17, + 0xc4, 0x4b, 0x3c, 0xdc, 0xb1, 0xad, 0x66, 0xfc, 0x6a, 0x93, 0x37, 0xe3, 0xef, 0x1b, 0x1e, 0x36, + 0xc9, 0x4a, 0xc3, 0x09, 0x77, 0x7b, 0x35, 0x67, 0x45, 0x92, 0xa6, 0xf3, 0x39, 0xab, 0x92, 0xec, + 0x52, 0x7f, 0x3e, 0x0c, 0x67, 0xb7, 0x03, 0xc3, 0x0b, 0x3e, 0xe6, 0xe3, 0x77, 0x5e, 0xe0, 0x66, + 0x97, 0xd0, 0xa3, 0xe1, 0xe7, 0x5d, 0xec, 0x07, 0xe8, 0x3e, 0x8c, 0x78, 0xec, 0x67, 0x55, 0x59, + 0x51, 0xd6, 0xc6, 0x37, 0x36, 0xea, 0x09, 0xb1, 0x35, 0x3a, 0x56, 0xfd, 0xe0, 0x52, 0x5d, 0x8a, + 0x44, 0x0b, 0x51, 0xa0, 0x25, 0x18, 0x33, 0xdd, 0xb6, 0x61, 0x39, 0xba, 0x65, 0x56, 0x4b, 0x2b, + 0xca, 0xda, 0x98, 0x36, 0xca, 0x06, 0x1a, 0x26, 0xfa, 0x4d, 0x98, 0xeb, 0x18, 0x1e, 0x76, 0x02, + 0x1d, 0x87, 0x08, 0x74, 0xcb, 0x69, 0xb9, 0xd5, 0x32, 0xdd, 0x78, 0x4d, 0xb8, 0xf1, 0x63, 0x0a, + 0x11, 0xed, 0xd8, 0x70, 0x5a, 0xae, 0x76, 0xba, 0x93, 0x1d, 0x44, 0x55, 0x18, 0x31, 0x82, 0x00, + 0xb7, 0x3b, 0x41, 0xf5, 0xd4, 0x8a, 0xb2, 0x36, 0xa4, 0x85, 0x8f, 0x68, 0x13, 0xa6, 0xf0, 0x8b, + 0x8e, 0xc5, 0x54, 0x4c, 0x27, 0xba, 0x54, 0x1d, 0xa2, 0x3b, 0xd6, 0xea, 0x4c, 0x8f, 0xea, 0xa1, + 0x1e, 0xd5, 0x77, 0x42, 0x45, 0xd3, 0x2a, 0x3d, 0x10, 0x32, 0x88, 0x5a, 0xb0, 0xd8, 0x74, 0x9d, + 0xc0, 0x72, 0xba, 0x58, 0x37, 0x7c, 0xdd, 0xc1, 0x87, 0xba, 0xe5, 0x58, 0x81, 0x65, 0x04, 0xae, + 0x57, 0x1d, 0x5e, 0x51, 0xd6, 0x2a, 0x1b, 0x6f, 0x08, 0x0f, 0xb0, 0xc9, 0xa1, 0x6e, 0xf9, 0x0f, + 0xf1, 0x61, 0x23, 0x04, 0xd1, 0xe6, 0x9b, 0xc2, 0x71, 0xd4, 0x80, 0x99, 0x70, 0xc6, 0xd4, 0x5b, + 0x86, 0x65, 0x77, 0x3d, 0x5c, 0x1d, 0xa1, 0xe4, 0x9e, 0x11, 0xe2, 0xbf, 0xcb, 0xd6, 0x68, 0xd3, + 0x11, 0x18, 0x1f, 0x41, 0x1a, 0xcc, 0xdb, 0x86, 0x1f, 0xe8, 0x4d, 0xb7, 0xdd, 0xb1, 0x31, 0x3d, + 0xbc, 0x87, 0xfd, 0xae, 0x1d, 0x54, 0x47, 0x25, 0xf8, 0x1e, 0x1b, 0x47, 0xb6, 0x6b, 0x98, 0xda, + 0x2c, 0x81, 0xdd, 0x8c, 0x40, 0x35, 0x0a, 0x89, 0xfe, 0x3f, 0x2c, 0xb5, 0x2c, 0xcf, 0x0f, 0x74, + 0x13, 0x37, 0x2d, 0x9f, 0xf2, 0xd3, 0xf0, 0x9f, 0xe9, 0xbb, 0x46, 0xf3, 0x99, 0xdb, 0x6a, 0x55, + 0xc7, 0x28, 0xe2, 0xc5, 0x0c, 0x5f, 0xb7, 0xb8, 0x81, 0xd3, 0xaa, 0x14, 0x7a, 0x8b, 0x03, 0xef, + 0x18, 0xfe, 0xb3, 0xdb, 0x0c, 0x14, 0x1d, 0xc0, 0x74, 0xc7, 0xf0, 0x02, 0x8b, 0xd2, 0xd9, 0x74, + 0x9d, 0x96, 0xb5, 0x57, 0x85, 0x95, 0xf2, 0xda, 0xf8, 0xc6, 0xff, 0xab, 0xe7, 0x18, 0x52, 0xb9, + 0x54, 0x12, 0xd1, 0x61, 0xe8, 0x36, 0x29, 0xb6, 0x3b, 0x4e, 0xe0, 0x1d, 0x69, 0x53, 0x9d, 0xe4, + 0x68, 0xed, 0x36, 0xcc, 0x8a, 0x16, 0xa2, 0x69, 0x28, 0x3f, 0xc3, 0x47, 0x54, 0x29, 0xc6, 0x34, + 0xf2, 0x13, 0xcd, 0xc2, 0xd0, 0x81, 0x61, 0x77, 0x31, 0x17, 0x6c, 0xf6, 0x70, 0xbd, 0x74, 0x4d, + 0x51, 0xaf, 0xc2, 0x72, 0x1e, 0x29, 0x7e, 0xc7, 0x75, 0x7c, 0x8c, 0xe6, 0x60, 0xd8, 0xeb, 0x52, + 0xad, 0x60, 0x08, 0x87, 0xbc, 0xae, 0xd3, 0x30, 0xd5, 0xbf, 0x29, 0xc1, 0xf2, 0xb6, 0xb5, 0xe7, + 0x18, 0x76, 0xae, 0x82, 0x3e, 0x48, 0x2b, 0xe8, 0x65, 0xb1, 0x82, 0x4a, 0xb1, 0xf4, 0xa9, 0xa1, + 0x2d, 0x58, 0xc2, 0x2f, 0x02, 0xec, 0x39, 0x86, 0x1d, 0x19, 0xde, 0x9e, 0xb2, 0x72, 0x3d, 0x7d, + 0x4d, 0xb8, 0x7f, 0x76, 0xe7, 0xc5, 0x10, 0x55, 0x66, 0x0a, 0xd5, 0xe1, 0x74, 0x73, 0xdf, 0xb2, + 0xcd, 0xde, 0x26, 0xae, 0x63, 0x1f, 0x51, 0xbd, 0x1d, 0xd5, 0x66, 0xe8, 0x54, 0x08, 0xf4, 0xc8, + 0xb1, 0x8f, 0xd4, 0x55, 0x38, 0x97, 0x7b, 0x3e, 0xc6, 0x60, 0xf5, 0x17, 0x25, 0xb8, 0xc0, 0xd7, + 0x58, 0xc1, 0xbe, 0xdc, 0xe6, 0x3d, 0x4d, 0xb3, 0xf4, 0x86, 0x8c, 0xa5, 0x45, 0xe8, 0xfa, 0xe4, + 0xed, 0x67, 0x8a, 0x40, 0xc0, 0xcb, 0x54, 0xc0, 0x3f, 0xca, 0x17, 0xf0, 0xfe, 0x48, 0xf8, 0x5f, + 0x14, 0xf5, 0x5b, 0xb0, 0x56, 0x4c, 0x94, 0x5c, 0xe8, 0xbf, 0xa7, 0xc0, 0x59, 0x0d, 0xfb, 0xf8, + 0xc4, 0x2f, 0x25, 0x29, 0x92, 0xfe, 0xae, 0x85, 0xa8, 0x6e, 0x1e, 0x1a, 0xf9, 0x29, 0xbe, 0x28, + 0xc1, 0xea, 0x0e, 0xf6, 0xda, 0x96, 0x63, 0x04, 0x38, 0xf7, 0x24, 0x8f, 0xd3, 0x27, 0xb9, 0x22, + 0x3c, 0x49, 0x21, 0xa2, 0x5f, 0x71, 0x05, 0x7e, 0x15, 0x54, 0xd9, 0x11, 0xb9, 0x0e, 0xff, 0x40, + 0x81, 0x95, 0x2d, 0xec, 0x37, 0x3d, 0x6b, 0x37, 0x9f, 0xa3, 0x8f, 0xd2, 0x1c, 0x7d, 0x47, 0x78, + 0x9c, 0x22, 0x3c, 0x7d, 0x8a, 0xc7, 0x7f, 0x95, 0x61, 0x55, 0x82, 0x8a, 0x8b, 0x88, 0x0d, 0x0b, + 0x3d, 0x97, 0x86, 0xa9, 0x36, 0x7f, 0xe1, 0x49, 0x6d, 0x76, 0x06, 0xe1, 0x66, 0x1c, 0x54, 0x9b, + 0xc7, 0xc2, 0x71, 0xb4, 0x0b, 0x0b, 0xd9, 0xbb, 0x65, 0x9e, 0x54, 0x89, 0xee, 0x76, 0xb1, 0xbf, + 0xdd, 0xa8, 0x2f, 0x35, 0x77, 0x28, 0x1a, 0x46, 0x1f, 0x03, 0xea, 0x60, 0xc7, 0xb4, 0x9c, 0x3d, + 0xdd, 0x68, 0x06, 0xd6, 0x81, 0x15, 0x58, 0xd8, 0xe7, 0xe6, 0x2a, 0xc7, 0x51, 0x63, 0xcb, 0x6f, + 0xb1, 0xd5, 0x47, 0x14, 0xf9, 0x4c, 0x27, 0x31, 0x68, 0x61, 0x1f, 0xfd, 0x1a, 0x4c, 0x87, 0x88, + 0xa9, 0x98, 0x78, 0xd8, 0xa9, 0x9e, 0xa2, 0x68, 0xeb, 0x32, 0xb4, 0x9b, 0x64, 0x6d, 0x92, 0xf2, + 0xa9, 0x4e, 0x6c, 0xca, 0xc3, 0x0e, 0xda, 0xee, 0xa1, 0x0e, 0xbd, 0x13, 0xee, 0xe8, 0x49, 0x29, + 0x0e, 0x9d, 0x91, 0x04, 0xd2, 0x70, 0x50, 0x7d, 0x01, 0xb3, 0x4f, 0x48, 0xcc, 0x13, 0x72, 0x2f, + 0x14, 0xc3, 0xcd, 0xb4, 0x18, 0xbe, 0x2e, 0xdc, 0x43, 0x04, 0xdb, 0xa7, 0xe8, 0xfd, 0x48, 0x81, + 0xb9, 0x14, 0x38, 0x17, 0xb7, 0x9b, 0x30, 0x41, 0xe3, 0xb0, 0xd0, 0x9d, 0x53, 0xfa, 0x70, 0xe7, + 0xc6, 0x29, 0x04, 0xf7, 0xe2, 0x1a, 0x50, 0x09, 0x11, 0xfc, 0x36, 0x6e, 0x06, 0xd8, 0xe4, 0x82, + 0xa3, 0xe6, 0x9f, 0x41, 0xe3, 0x2b, 0xb5, 0xc9, 0xe7, 0xf1, 0x47, 0xf5, 0xf7, 0x15, 0xa8, 0x51, + 0x03, 0xba, 0x1d, 0x58, 0xcd, 0x67, 0x47, 0xc4, 0xa3, 0xbb, 0x6f, 0xf9, 0x41, 0xc8, 0xa6, 0x46, + 0x9a, 0x4d, 0xeb, 0xf9, 0x96, 0x5c, 0x88, 0xa1, 0x4f, 0x66, 0x9d, 0x85, 0x25, 0x21, 0x0e, 0x6e, + 0x59, 0x7e, 0x56, 0x82, 0xf9, 0x7b, 0x38, 0x78, 0xd0, 0x0d, 0x8c, 0x5d, 0x1b, 0x6f, 0x07, 0x46, + 0x80, 0x35, 0x11, 0x5a, 0x25, 0x65, 0x4f, 0x3f, 0x02, 0x24, 0x30, 0xa3, 0xa5, 0x81, 0xcc, 0xe8, + 0x4c, 0x46, 0xc3, 0xd0, 0x65, 0x98, 0xc7, 0x2f, 0x3a, 0x94, 0x81, 0xba, 0x83, 0x5f, 0x04, 0x3a, + 0x3e, 0x20, 0x61, 0x91, 0x65, 0x52, 0x0b, 0x5d, 0xd6, 0x4e, 0x87, 0xb3, 0x0f, 0xf1, 0x8b, 0xe0, + 0x0e, 0x99, 0x6b, 0x98, 0xe8, 0x2d, 0x98, 0x6d, 0x76, 0x3d, 0x1a, 0x3f, 0xed, 0x7a, 0x86, 0xd3, + 0xdc, 0xd7, 0x03, 0xf7, 0x19, 0xd5, 0x1e, 0x65, 0x6d, 0x42, 0x43, 0x7c, 0xee, 0x36, 0x9d, 0xda, + 0x21, 0x33, 0xe8, 0x37, 0x60, 0xf6, 0x00, 0x7b, 0xd4, 0x4b, 0xe7, 0x3e, 0x85, 0x6e, 0x05, 0xb8, + 0xcd, 0x95, 0x22, 0x2d, 0xb0, 0x24, 0x68, 0x25, 0x27, 0x78, 0xca, 0x40, 0x3e, 0x60, 0x10, 0x8d, + 0x00, 0xb7, 0x35, 0x74, 0x90, 0x19, 0x53, 0xff, 0x61, 0x0c, 0x16, 0x32, 0x2c, 0xe5, 0x02, 0x2a, + 0x66, 0x9b, 0x72, 0x52, 0xb6, 0xdd, 0x85, 0xc9, 0x08, 0x6d, 0x70, 0xd4, 0xc1, 0xfc, 0x22, 0x56, + 0xa5, 0x18, 0x77, 0x8e, 0x3a, 0x58, 0x9b, 0x38, 0x8c, 0x3d, 0x21, 0x15, 0x26, 0x45, 0x5c, 0x1f, + 0x77, 0x62, 0xdc, 0x7e, 0x0a, 0x8b, 0x1d, 0x0f, 0x1f, 0x58, 0x6e, 0xd7, 0xd7, 0x7d, 0xe2, 0xe6, + 0x60, 0xb3, 0xb7, 0xfe, 0x14, 0xdd, 0x77, 0x29, 0x13, 0xe6, 0x34, 0x9c, 0xe0, 0xca, 0xdb, 0x4f, + 0x89, 0xaf, 0xa4, 0xcd, 0x87, 0xd0, 0xdb, 0x0c, 0x38, 0xc4, 0xfb, 0x26, 0x9c, 0xa6, 0x41, 0x19, + 0x8b, 0xa2, 0x22, 0x8c, 0x43, 0x94, 0x82, 0x69, 0x32, 0x75, 0x97, 0xcc, 0x84, 0xcb, 0xaf, 0xc3, + 0x18, 0x0d, 0xb0, 0x6c, 0xcb, 0x0f, 0x68, 0x98, 0x39, 0xbe, 0x71, 0x56, 0xec, 0x41, 0x84, 0x22, + 0x3f, 0x1a, 0xf0, 0x5f, 0xe8, 0x1e, 0x4c, 0xfb, 0x54, 0x1d, 0xf4, 0x1e, 0x8a, 0x91, 0x7e, 0x50, + 0x54, 0xfc, 0x84, 0x16, 0xa1, 0xb7, 0x61, 0xbe, 0x69, 0x5b, 0x84, 0x52, 0xdb, 0xda, 0xf5, 0x0c, + 0xef, 0x48, 0xe7, 0xf2, 0x40, 0x03, 0xc9, 0x31, 0x6d, 0x96, 0xcd, 0xde, 0x67, 0x93, 0x5c, 0x7e, + 0x62, 0x50, 0x2d, 0x6c, 0x04, 0x5d, 0x0f, 0x47, 0x50, 0x63, 0x71, 0xa8, 0xbb, 0x6c, 0x32, 0x84, + 0x3a, 0x07, 0xe3, 0x1c, 0xca, 0x6a, 0x77, 0xec, 0x2a, 0xd0, 0xa5, 0xc0, 0x86, 0x1a, 0xed, 0x8e, + 0x8d, 0x7c, 0xb8, 0x98, 0x3e, 0x95, 0xee, 0x37, 0xf7, 0xb1, 0xd9, 0xb5, 0xb1, 0x1e, 0xb8, 0xec, + 0xb2, 0x68, 0x94, 0xef, 0x76, 0x83, 0xea, 0x78, 0x51, 0x40, 0xfa, 0x6a, 0xf2, 0xac, 0xdb, 0x1c, + 0xd3, 0x8e, 0x4b, 0xef, 0x6d, 0x87, 0xa1, 0x21, 0xfe, 0x0e, 0xbb, 0x2a, 0x22, 0xff, 0xbd, 0x83, + 0x4c, 0xd0, 0x44, 0xc3, 0x0c, 0x9d, 0xda, 0x26, 0x33, 0xe1, 0x29, 0xf2, 0x74, 0x75, 0x32, 0x57, + 0x57, 0xef, 0x43, 0x25, 0x92, 0x6d, 0x9f, 0x28, 0x53, 0xb5, 0x42, 0x93, 0x0a, 0xe7, 0x93, 0x57, + 0xc5, 0x32, 0x3d, 0x71, 0xf9, 0x66, 0x9a, 0x17, 0x29, 0x06, 0x7d, 0x44, 0x4d, 0x98, 0x8d, 0xb0, + 0x35, 0x6d, 0xd7, 0xc7, 0x1c, 0xe7, 0x14, 0xc5, 0x79, 0xa9, 0x4f, 0x6f, 0x84, 0x00, 0x12, 0x7c, + 0x5d, 0x5f, 0x8b, 0xf4, 0x39, 0x1a, 0x24, 0x5a, 0x3e, 0x93, 0x34, 0x2f, 0xc4, 0x45, 0x98, 0x16, + 0xbd, 0x70, 0x7b, 0x54, 0x27, 0x8c, 0x8b, 0x85, 0x7d, 0x6d, 0xfa, 0x20, 0x35, 0x82, 0x6e, 0xc0, + 0x92, 0x45, 0x74, 0x2e, 0x75, 0xc7, 0xd8, 0x21, 0x76, 0xc6, 0xac, 0xce, 0x50, 0x1f, 0x73, 0xc1, + 0xf2, 0x93, 0xa6, 0xfe, 0x0e, 0x9b, 0x46, 0xab, 0x30, 0x11, 0xda, 0x3a, 0xdf, 0xfa, 0x14, 0x57, + 0x11, 0x53, 0x6d, 0x3e, 0xb6, 0x6d, 0x7d, 0x8a, 0xd5, 0x5f, 0x2a, 0xb0, 0xf0, 0xd8, 0xb5, 0xed, + 0xff, 0x5b, 0x6f, 0x03, 0xf5, 0xc7, 0xa3, 0x50, 0xcd, 0x1e, 0xfb, 0x1b, 0x8b, 0xfd, 0x8d, 0xc5, + 0xfe, 0x3a, 0x5a, 0xec, 0x3c, 0xfd, 0x98, 0xc8, 0xb5, 0xc0, 0x42, 0x73, 0x36, 0x79, 0x62, 0x73, + 0xf6, 0xab, 0x67, 0xd8, 0xd5, 0x7f, 0x29, 0xc1, 0x8a, 0x86, 0x9b, 0xae, 0x67, 0xc6, 0x13, 0xb5, + 0x5c, 0x2d, 0x5e, 0xa6, 0xa5, 0x3c, 0x07, 0xe3, 0x91, 0xe0, 0x44, 0x46, 0x00, 0xc2, 0xa1, 0x86, + 0x89, 0x16, 0x60, 0x84, 0xca, 0x18, 0xd7, 0xf8, 0xb2, 0x36, 0x4c, 0x1e, 0x1b, 0x26, 0x3a, 0x0b, + 0xc0, 0xe3, 0x88, 0x50, 0x77, 0xc7, 0xb4, 0x31, 0x3e, 0xd2, 0x30, 0x91, 0x06, 0x13, 0x1d, 0xd7, + 0xb6, 0xf5, 0x30, 0x56, 0x19, 0x96, 0xc4, 0x2a, 0xc4, 0x86, 0xde, 0x75, 0xbd, 0x38, 0x6b, 0xc2, + 0x58, 0x65, 0x9c, 0x20, 0xe1, 0x0f, 0xea, 0xef, 0x8d, 0xc2, 0xaa, 0x84, 0x8b, 0xdc, 0xf0, 0x66, + 0x2c, 0xa4, 0x72, 0x3c, 0x0b, 0x29, 0xb5, 0x7e, 0xa5, 0xe3, 0x5b, 0xbf, 0x6f, 0x01, 0x0a, 0xf9, + 0x6b, 0xa6, 0xcd, 0xef, 0x74, 0x34, 0x13, 0xae, 0x5e, 0x23, 0x06, 0x4c, 0x60, 0x7a, 0xcb, 0xc4, + 0x42, 0x25, 0xf0, 0x66, 0x2c, 0xfa, 0x50, 0xd6, 0xa2, 0xc7, 0x4a, 0x3a, 0xc3, 0xc9, 0x92, 0xce, + 0x35, 0xa8, 0x72, 0x93, 0xd2, 0x4b, 0x80, 0x84, 0x0e, 0xc2, 0x08, 0x75, 0x10, 0xe6, 0xd9, 0x7c, + 0x24, 0x3b, 0xa1, 0x7f, 0xa0, 0xc1, 0x64, 0x54, 0xba, 0xa0, 0x29, 0x13, 0x56, 0x0b, 0x79, 0x33, + 0x4f, 0x1b, 0x77, 0x3c, 0xc3, 0xf1, 0x89, 0x29, 0x4b, 0xa4, 0x09, 0x26, 0xcc, 0xd8, 0x13, 0xfa, + 0x04, 0xce, 0x08, 0x12, 0x32, 0x3d, 0x13, 0x3e, 0xd6, 0x8f, 0x09, 0x5f, 0xcc, 0x88, 0x7b, 0x64, + 0xcd, 0x73, 0xbc, 0x4f, 0xc8, 0xf3, 0x3e, 0x57, 0x61, 0x22, 0x61, 0xf3, 0xc6, 0xa9, 0xcd, 0x1b, + 0xdf, 0x8d, 0x19, 0xbb, 0x5b, 0x50, 0xe9, 0x5d, 0x2b, 0x2d, 0x89, 0x4d, 0x14, 0x96, 0xc4, 0x26, + 0x23, 0x08, 0x5a, 0x11, 0x7b, 0x1f, 0x26, 0xc2, 0xbb, 0xa6, 0x08, 0x26, 0x0b, 0x11, 0x8c, 0xf3, + 0xf5, 0x14, 0xdc, 0x80, 0x91, 0xe7, 0x5d, 0x4c, 0x8d, 0x6c, 0x85, 0xe6, 0x7f, 0xee, 0xe5, 0x66, + 0xc1, 0x0b, 0xb5, 0x88, 0xa6, 0x28, 0x2c, 0xec, 0xb3, 0xbc, 0x77, 0x88, 0x37, 0xe3, 0x0b, 0x4e, + 0x65, 0x7c, 0xc1, 0xda, 0x27, 0x30, 0x11, 0x87, 0x15, 0xa4, 0xc2, 0xaf, 0xc5, 0x53, 0xe1, 0x79, + 0x29, 0x92, 0x50, 0x31, 0x59, 0xaa, 0x24, 0x96, 0x2e, 0xef, 0x99, 0xd2, 0x30, 0x31, 0xf6, 0x8d, + 0x29, 0xcd, 0x98, 0xd2, 0x38, 0x6b, 0x84, 0xa6, 0xf4, 0xe7, 0xe5, 0xd0, 0x94, 0x0a, 0xb9, 0xc8, + 0x4d, 0xe9, 0x87, 0x30, 0x95, 0x32, 0x55, 0x52, 0x63, 0xca, 0x93, 0x19, 0xd4, 0xd8, 0x68, 0x95, + 0xa4, 0x29, 0xcb, 0x08, 0x77, 0x69, 0x30, 0xe1, 0x8e, 0x59, 0xae, 0x72, 0xd2, 0x72, 0x7d, 0x02, + 0xcb, 0x49, 0xc5, 0xd3, 0xdd, 0x96, 0x1e, 0xec, 0x5b, 0xbe, 0x1e, 0xaf, 0x5e, 0xcb, 0xb7, 0xaa, + 0x25, 0x14, 0xf1, 0x51, 0x6b, 0x67, 0xdf, 0xf2, 0x6f, 0x71, 0xfc, 0x0d, 0x98, 0xd9, 0xc7, 0x86, + 0x17, 0xec, 0x62, 0x23, 0xd0, 0x4d, 0x1c, 0x18, 0x96, 0xed, 0xf3, 0x84, 0x8f, 0x3c, 0x41, 0x38, + 0x1d, 0x81, 0x6d, 0x31, 0xa8, 0xec, 0xab, 0x69, 0xf8, 0x78, 0xaf, 0xa6, 0x0b, 0x30, 0x15, 0xe1, + 0x61, 0x62, 0x4d, 0x6d, 0xf4, 0x98, 0x16, 0x39, 0x46, 0x5b, 0x74, 0x54, 0xfd, 0x73, 0x05, 0x5e, + 0x61, 0xb7, 0x99, 0x50, 0x76, 0x5e, 0x84, 0xee, 0xe9, 0x8b, 0x96, 0x4e, 0x2a, 0x5e, 0xcb, 0x4b, + 0x2a, 0x16, 0xa1, 0xea, 0x33, 0xbb, 0xf8, 0x77, 0x65, 0x78, 0x55, 0x8e, 0x8d, 0x8b, 0x20, 0xee, + 0xbd, 0xff, 0x3c, 0x3e, 0xc6, 0x49, 0xbc, 0x7e, 0x7c, 0xeb, 0xa6, 0x4d, 0xf9, 0x29, 0x49, 0xff, + 0x91, 0x02, 0xcb, 0xbd, 0xb4, 0x3c, 0xf1, 0xa1, 0x4d, 0xcb, 0xef, 0x18, 0x41, 0x73, 0x5f, 0xb7, + 0xdd, 0xa6, 0x61, 0xdb, 0x47, 0xd5, 0x12, 0xb5, 0xa9, 0x9f, 0x48, 0x76, 0x2d, 0x3e, 0x4e, 0xbd, + 0x97, 0xb7, 0xdf, 0x71, 0xb7, 0xf8, 0x0e, 0xf7, 0xd9, 0x06, 0xcc, 0xd4, 0x2e, 0x19, 0xf9, 0x2b, + 0x6a, 0xbf, 0x03, 0x2b, 0x45, 0x08, 0x04, 0xf6, 0x76, 0x2b, 0x69, 0x6f, 0xc5, 0x55, 0x81, 0xd0, + 0x0c, 0x50, 0x5c, 0x21, 0x62, 0xfa, 0x66, 0x8e, 0xd9, 0xde, 0x1f, 0x28, 0xc4, 0xf6, 0x66, 0x8e, + 0x79, 0xd7, 0xb0, 0xec, 0x9e, 0x2c, 0xf5, 0x59, 0x4e, 0x2a, 0xc2, 0xd3, 0xa7, 0x20, 0xbd, 0x42, + 0xec, 0x58, 0x2e, 0x26, 0x9e, 0xac, 0xfe, 0x53, 0x05, 0xd4, 0xac, 0xb5, 0xfb, 0x20, 0x54, 0xcf, + 0x90, 0xf2, 0x27, 0x69, 0xca, 0xaf, 0xe6, 0x50, 0x5e, 0x84, 0xa9, 0x4f, 0xda, 0x1f, 0x13, 0xe5, + 0x94, 0xe0, 0xe2, 0xb2, 0xf9, 0x3a, 0x4c, 0x37, 0x0d, 0xa7, 0x89, 0xa3, 0x37, 0x00, 0x66, 0xef, + 0xb4, 0x51, 0x6d, 0x8a, 0x8d, 0x6b, 0xe1, 0x70, 0x5c, 0xdf, 0xe3, 0x38, 0x4f, 0xa8, 0xef, 0x32, + 0x54, 0x7d, 0x1e, 0xf5, 0xb5, 0x48, 0xdd, 0x73, 0x90, 0xc5, 0x0a, 0x96, 0x82, 0x85, 0x27, 0x91, + 0xb0, 0x5c, 0x3c, 0x03, 0x4b, 0x98, 0x08, 0x53, 0x42, 0xc2, 0xb2, 0x07, 0xa4, 0xf7, 0xd3, 0xa3, + 0xbc, 0x6f, 0x09, 0x2b, 0xc2, 0xd4, 0x27, 0xed, 0xe7, 0xc5, 0xe2, 0x10, 0xe1, 0xe2, 0xd4, 0xff, + 0xbd, 0x02, 0xe7, 0x34, 0xdc, 0x76, 0x0f, 0x30, 0xeb, 0x44, 0xf8, 0xaa, 0xe4, 0xf1, 0x92, 0x8e, + 0x51, 0x39, 0xe5, 0x18, 0xa9, 0x2a, 0x91, 0x95, 0x3c, 0xaa, 0xf9, 0xd1, 0xfe, 0xb1, 0x04, 0xe7, + 0xf9, 0x11, 0xd8, 0xb1, 0x73, 0xcb, 0xe0, 0xd2, 0x03, 0x1a, 0x50, 0x49, 0xea, 0x20, 0x3f, 0xdc, + 0xf5, 0x9c, 0xfb, 0xeb, 0x63, 0x43, 0x6d, 0x32, 0xa1, 0xbd, 0x68, 0x17, 0x16, 0xa2, 0x4e, 0x03, + 0x61, 0x3b, 0x9f, 0xb8, 0x08, 0x7d, 0x87, 0xc3, 0xa4, 0x8a, 0xd0, 0x58, 0x34, 0x3c, 0x70, 0x97, + 0xc1, 0x1a, 0xbc, 0x56, 0x74, 0x16, 0xce, 0xe7, 0x7f, 0x56, 0x60, 0x29, 0x4c, 0x1c, 0x09, 0x02, + 0xf9, 0x97, 0x22, 0x3e, 0x17, 0x61, 0xc6, 0xf2, 0xf5, 0x64, 0x77, 0x1d, 0xe5, 0xe5, 0xa8, 0x36, + 0x65, 0xf9, 0x77, 0xe3, 0x7d, 0x73, 0xea, 0x32, 0x9c, 0x11, 0x93, 0xcf, 0xcf, 0xf7, 0x39, 0x75, + 0x58, 0x88, 0xb1, 0x4e, 0x16, 0xce, 0x33, 0xa6, 0xf5, 0x65, 0x1c, 0x74, 0x15, 0x26, 0x78, 0xeb, + 0x24, 0x36, 0x63, 0xb9, 0xdc, 0x68, 0xac, 0x61, 0xa2, 0x8f, 0xe1, 0x74, 0x33, 0x24, 0x35, 0xb6, + 0xf5, 0xa9, 0x81, 0xb6, 0x46, 0x11, 0x8a, 0xde, 0xde, 0xf7, 0x61, 0x3a, 0xd6, 0x0e, 0xc9, 0x82, + 0x84, 0xa1, 0x7e, 0x83, 0x84, 0xa9, 0x1e, 0x28, 0x8b, 0x12, 0xce, 0x02, 0x84, 0xee, 0x9e, 0x65, + 0x52, 0xf7, 0xb8, 0xac, 0x8d, 0xf1, 0x91, 0x86, 0xa9, 0x5e, 0x20, 0xca, 0x2c, 0xbd, 0x04, 0x7e, + 0x5d, 0xff, 0x5e, 0x82, 0xaa, 0xc6, 0x7b, 0x85, 0x31, 0x45, 0xed, 0x3f, 0xdd, 0x78, 0x99, 0x57, + 0xf4, 0x5b, 0x30, 0x27, 0xaa, 0x1c, 0x87, 0x1d, 0x20, 0x03, 0x94, 0x8e, 0x4f, 0x67, 0x4b, 0xc7, + 0x3e, 0x7a, 0x07, 0x86, 0x29, 0xeb, 0x7d, 0x7e, 0xa3, 0xe2, 0xd4, 0xc8, 0x96, 0x11, 0x18, 0xb7, + 0x6d, 0x77, 0x57, 0xe3, 0x8b, 0xd1, 0x26, 0x54, 0x1c, 0x7c, 0xa8, 0x7b, 0x5d, 0x7e, 0x73, 0x61, + 0x60, 0x53, 0x00, 0x3e, 0xe1, 0xe0, 0x43, 0xad, 0xcb, 0xae, 0xcc, 0x57, 0x97, 0x60, 0x51, 0xc0, + 0x6a, 0x7e, 0x11, 0xdf, 0x53, 0x60, 0x7e, 0xfb, 0xc8, 0x69, 0x6e, 0xef, 0x1b, 0x9e, 0xc9, 0x33, + 0xa4, 0xfc, 0x1a, 0xce, 0x43, 0xc5, 0x77, 0xbb, 0x5e, 0x13, 0xeb, 0xbc, 0x85, 0x9c, 0xdf, 0xc5, + 0x24, 0x1b, 0xdd, 0x64, 0x83, 0x68, 0x11, 0x46, 0x7d, 0x02, 0x1c, 0xbe, 0xdf, 0x86, 0xb4, 0x11, + 0xfa, 0xdc, 0x30, 0x51, 0x1d, 0x4e, 0xd1, 0x58, 0xb2, 0x5c, 0x18, 0xe0, 0xd1, 0x75, 0xea, 0x22, + 0x2c, 0x64, 0x68, 0xe1, 0x74, 0xfe, 0x74, 0x08, 0x4e, 0x93, 0xb9, 0xf0, 0x3d, 0xf9, 0x32, 0x65, + 0xa5, 0x0a, 0x23, 0x61, 0x46, 0x8a, 0x69, 0x72, 0xf8, 0x48, 0x14, 0xbd, 0x17, 0xeb, 0x46, 0x79, + 0x84, 0x28, 0xef, 0x40, 0x78, 0x92, 0xcd, 0x43, 0x0d, 0x0d, 0x9a, 0x87, 0x92, 0x2b, 0x61, 0x26, + 0x92, 0x1f, 0x19, 0x2c, 0x92, 0xff, 0x90, 0x57, 0x7f, 0x7a, 0x41, 0x35, 0xc5, 0x32, 0x5a, 0x88, + 0x65, 0x86, 0x80, 0x45, 0xee, 0x31, 0xc5, 0x75, 0x05, 0x46, 0xc2, 0x88, 0x7c, 0xac, 0x8f, 0x88, + 0x3c, 0x5c, 0x1c, 0xcf, 0x26, 0x40, 0x32, 0x9b, 0x70, 0x13, 0x26, 0x58, 0x6d, 0x8a, 0x37, 0x8a, + 0x8f, 0xf7, 0xd1, 0x28, 0x3e, 0x4e, 0x4b, 0x56, 0xbc, 0x47, 0xfc, 0x2d, 0xa0, 0x7d, 0xde, 0xfc, + 0xd3, 0x09, 0xdd, 0x32, 0xb1, 0x13, 0x58, 0xc1, 0x11, 0xcd, 0x06, 0x8e, 0x69, 0x88, 0xcc, 0x7d, + 0x4c, 0xa7, 0x1a, 0x7c, 0x06, 0x3d, 0x84, 0xa9, 0x94, 0x69, 0xe0, 0x99, 0xbf, 0xf3, 0x7d, 0x19, + 0x05, 0xad, 0x92, 0x34, 0x08, 0xea, 0x3c, 0xcc, 0x26, 0x25, 0x99, 0x8b, 0xf8, 0x9f, 0x28, 0xb0, + 0x14, 0x76, 0xde, 0x7d, 0x45, 0x3c, 0x3c, 0xf5, 0x8f, 0x15, 0x38, 0x23, 0xa6, 0x89, 0x07, 0x3f, + 0x97, 0x61, 0xbe, 0xcd, 0xc6, 0x59, 0x5d, 0x46, 0xb7, 0x1c, 0xbd, 0x69, 0x34, 0xf7, 0x31, 0xa7, + 0xf0, 0x74, 0x3b, 0x06, 0xd5, 0x70, 0x36, 0xc9, 0x14, 0x7a, 0x17, 0x16, 0x33, 0x40, 0xa6, 0x11, + 0x18, 0xbb, 0x86, 0x1f, 0x36, 0xe0, 0xce, 0x27, 0xe1, 0xb6, 0xf8, 0xac, 0x7a, 0x06, 0x6a, 0x21, + 0x3d, 0x9c, 0x9f, 0x1f, 0xb8, 0x51, 0xeb, 0x94, 0xfa, 0xbb, 0xa5, 0x1e, 0x0b, 0x13, 0xd3, 0x9c, + 0xda, 0x35, 0x98, 0x76, 0xba, 0xed, 0x5d, 0xec, 0xe9, 0x6e, 0x4b, 0xa7, 0x56, 0xca, 0xa7, 0x74, + 0x0e, 0x69, 0x15, 0x36, 0xfe, 0xa8, 0x45, 0x8d, 0x8f, 0x4f, 0x98, 0x1d, 0x5a, 0x35, 0x9f, 0xa6, + 0x16, 0x86, 0xb4, 0x51, 0x6e, 0xd6, 0x7c, 0xd4, 0x80, 0x09, 0x7e, 0x13, 0xec, 0xa8, 0xe2, 0x2e, + 0xd3, 0x50, 0x1c, 0x58, 0xae, 0x87, 0x9e, 0x9c, 0xfa, 0x7e, 0xe3, 0x66, 0x6f, 0x00, 0x5d, 0x81, + 0x05, 0xb6, 0x4f, 0xd3, 0x75, 0x02, 0xcf, 0xb5, 0x6d, 0xec, 0x51, 0x9e, 0x74, 0xd9, 0x9b, 0x62, + 0x4c, 0x9b, 0xa3, 0xd3, 0x9b, 0xd1, 0x2c, 0xb3, 0x8b, 0x54, 0x43, 0x4c, 0xd3, 0xc3, 0xbe, 0xcf, + 0x13, 0x92, 0xe1, 0xa3, 0x5a, 0x87, 0x19, 0x56, 0xd9, 0x22, 0x70, 0xa1, 0xec, 0xc4, 0x8d, 0xb4, + 0x92, 0x30, 0xd2, 0xea, 0x2c, 0xa0, 0xf8, 0x7a, 0x2e, 0x8c, 0xff, 0xa9, 0xc0, 0x0c, 0x73, 0xde, + 0xe3, 0x5e, 0x62, 0x3e, 0x1a, 0x74, 0x83, 0x57, 0x81, 0xa3, 0xa2, 0x77, 0x65, 0xe3, 0x5c, 0x0e, + 0x43, 0x08, 0x46, 0x9a, 0x35, 0xa3, 0x75, 0x60, 0x9a, 0x31, 0x8b, 0xe5, 0x5e, 0xcb, 0x89, 0xdc, + 0xeb, 0x26, 0x4c, 0x1d, 0x58, 0xbe, 0xb5, 0x6b, 0xd9, 0x56, 0x70, 0xc4, 0x2c, 0x51, 0x71, 0xba, + 0xb0, 0xd2, 0x03, 0xa1, 0x66, 0x68, 0x15, 0x26, 0xf8, 0x2b, 0x4c, 0x77, 0x0c, 0x6e, 0x71, 0xc7, + 0xb4, 0x71, 0x3e, 0xf6, 0xd0, 0x68, 0x63, 0xc2, 0x85, 0xf8, 0x71, 0x39, 0x17, 0xbe, 0x4f, 0xb9, + 0xe0, 0xe3, 0xe0, 0x49, 0x17, 0x77, 0x71, 0x1f, 0x5c, 0x48, 0xef, 0x54, 0xca, 0xec, 0x94, 0x64, + 0x54, 0x79, 0x40, 0x46, 0x31, 0x3a, 0x7b, 0x04, 0x71, 0x3a, 0x7f, 0xa8, 0xc0, 0x6c, 0x28, 0xf7, + 0x5f, 0x19, 0x52, 0x1f, 0xc1, 0x5c, 0x8a, 0x26, 0xae, 0x85, 0x57, 0x60, 0xa1, 0xe3, 0xb9, 0x4d, + 0xec, 0xfb, 0x96, 0xb3, 0xa7, 0xd3, 0xaf, 0xca, 0x98, 0x1d, 0x20, 0xca, 0x58, 0x26, 0x32, 0xdf, + 0x9b, 0xa6, 0x90, 0xd4, 0x08, 0xf8, 0xea, 0xe7, 0x0a, 0x9c, 0xbd, 0x87, 0x03, 0xad, 0xf7, 0x8d, + 0xd9, 0x03, 0xec, 0xfb, 0xc6, 0x1e, 0x8e, 0x5c, 0x96, 0x9b, 0x30, 0x4c, 0x0b, 0x40, 0x0c, 0xd1, + 0xf8, 0xc6, 0x85, 0x1c, 0x6a, 0x63, 0x28, 0x68, 0x75, 0x48, 0xe3, 0x60, 0x7d, 0x30, 0x85, 0xd8, + 0x98, 0xe5, 0x3c, 0x2a, 0xf8, 0x01, 0x9f, 0x43, 0x85, 0x71, 0xbd, 0xcd, 0x67, 0x38, 0x39, 0x1f, + 0xe6, 0x26, 0x27, 0xe5, 0x08, 0xeb, 0x54, 0x37, 0xc3, 0x51, 0x96, 0x88, 0x9c, 0xf4, 0xe3, 0x63, + 0x35, 0x1b, 0x50, 0x76, 0x51, 0x3c, 0xd9, 0x38, 0xc4, 0x92, 0x8d, 0xdf, 0x49, 0x26, 0x1b, 0x2f, + 0x16, 0x33, 0x28, 0x22, 0x26, 0x96, 0x68, 0x6c, 0xc3, 0xca, 0x3d, 0x1c, 0x6c, 0xdd, 0x7f, 0x22, + 0xb9, 0x8b, 0x06, 0x00, 0x53, 0x69, 0xa7, 0xe5, 0x86, 0x0c, 0xe8, 0x63, 0x3b, 0x22, 0x48, 0xd4, + 0x4c, 0x52, 0xd1, 0x23, 0xbf, 0x7c, 0xf5, 0x05, 0xac, 0x4a, 0xb6, 0xe3, 0x4c, 0xdf, 0x86, 0x99, + 0xd8, 0xd7, 0x87, 0xb4, 0x18, 0x19, 0x6e, 0xfb, 0x5a, 0x7f, 0xdb, 0x6a, 0xd3, 0x5e, 0x72, 0xc0, + 0x57, 0xff, 0x55, 0x81, 0x59, 0x0d, 0x1b, 0x9d, 0x8e, 0xcd, 0x22, 0xa2, 0xe8, 0x74, 0xf3, 0x30, + 0xcc, 0x33, 0xfb, 0xec, 0x3d, 0xc7, 0x9f, 0xe4, 0x1f, 0x2b, 0x88, 0x5f, 0xd2, 0xe5, 0x93, 0xfa, + 0xa3, 0xc7, 0x0b, 0x2e, 0xd4, 0x05, 0x98, 0x4b, 0x1d, 0x8d, 0x5b, 0x93, 0x9f, 0x28, 0xb0, 0xa4, + 0xe1, 0x96, 0x87, 0xfd, 0xfd, 0xa8, 0xc8, 0x41, 0xb8, 0xf1, 0x15, 0x3c, 0xbb, 0xba, 0x0c, 0x67, + 0xc4, 0xa4, 0xf2, 0xb3, 0xbc, 0x0b, 0x0b, 0x9b, 0x6e, 0xd7, 0x21, 0xc2, 0x93, 0x16, 0xd0, 0x65, + 0x80, 0x96, 0xeb, 0x35, 0xf1, 0x5d, 0x1c, 0x34, 0xf7, 0x79, 0xc6, 0x36, 0x36, 0xa2, 0x1a, 0x50, + 0xcd, 0x82, 0x72, 0x61, 0xbb, 0x03, 0x23, 0xd8, 0x09, 0x68, 0x2d, 0x97, 0x89, 0xd8, 0x1b, 0x39, + 0x22, 0xc6, 0xbd, 0x90, 0xad, 0xfb, 0x4f, 0x28, 0x2e, 0x5e, 0xaf, 0xe5, 0xb0, 0xea, 0x4f, 0x4a, + 0x30, 0xaf, 0x61, 0xc3, 0x14, 0x50, 0xb7, 0x01, 0xa7, 0xa2, 0xee, 0x88, 0xca, 0xc6, 0x72, 0x9e, + 0x6f, 0x71, 0xff, 0x09, 0xb5, 0xba, 0x74, 0xad, 0x2c, 0x14, 0xcb, 0x06, 0x73, 0x65, 0x51, 0x30, + 0xb7, 0x03, 0x55, 0xcb, 0x21, 0x2b, 0xac, 0x03, 0xac, 0x63, 0x27, 0xb2, 0x60, 0x7d, 0x76, 0x94, + 0xcd, 0x45, 0xc0, 0x77, 0x9c, 0xd0, 0x14, 0x35, 0x4c, 0x22, 0x18, 0x1d, 0x82, 0x84, 0xd6, 0xa4, + 0x87, 0x28, 0x61, 0xa3, 0x64, 0x60, 0xdb, 0xfa, 0x14, 0xa3, 0xd7, 0x60, 0x8a, 0xf6, 0x45, 0xd0, + 0x15, 0xac, 0x7c, 0x3f, 0x4c, 0xcb, 0xf7, 0xb4, 0x5d, 0xe2, 0xb1, 0xb1, 0x87, 0x59, 0x37, 0xdf, + 0xdf, 0x96, 0x60, 0x21, 0xc3, 0x2b, 0x7e, 0x1d, 0xc7, 0x61, 0x96, 0xd0, 0x5e, 0x94, 0x4e, 0x66, + 0x2f, 0xd0, 0x77, 0x61, 0x3e, 0x83, 0x34, 0xcc, 0x11, 0x0e, 0x6a, 0x00, 0x67, 0xd3, 0xd8, 0x69, + 0x8a, 0x50, 0xc0, 0xae, 0x53, 0x22, 0x76, 0xfd, 0x42, 0x81, 0x85, 0xc7, 0x5d, 0x6f, 0x0f, 0x7f, + 0xbd, 0x65, 0x4b, 0xad, 0x41, 0x35, 0x7b, 0x4c, 0xae, 0xfc, 0x5f, 0x94, 0x60, 0xe1, 0x01, 0xfe, + 0xda, 0xf3, 0xe0, 0x7f, 0x46, 0xbf, 0x6e, 0x43, 0x35, 0xcb, 0x2b, 0xae, 0x5f, 0x02, 0x1c, 0x8a, + 0x08, 0xc7, 0x67, 0x0a, 0x9c, 0x79, 0xe8, 0x06, 0x56, 0xeb, 0x88, 0x84, 0xdb, 0xee, 0x01, 0xf6, + 0x1e, 0x18, 0x24, 0x96, 0x8e, 0xb8, 0xfe, 0x5d, 0x98, 0x6f, 0xf1, 0x19, 0xbd, 0x4d, 0xa7, 0xf4, + 0x84, 0xc3, 0x96, 0xa7, 0x1f, 0x49, 0x74, 0xcc, 0x67, 0x9b, 0x6d, 0x65, 0x07, 0x7d, 0xf5, 0x1c, + 0x9c, 0xcd, 0xa1, 0x80, 0x0b, 0x85, 0x01, 0x4b, 0xf7, 0x70, 0xb0, 0xe9, 0xb9, 0xbe, 0xcf, 0x6f, + 0x25, 0xf1, 0x72, 0x4b, 0x04, 0x7e, 0x4a, 0x2a, 0xf0, 0x3b, 0x0f, 0x95, 0xc0, 0xf0, 0xf6, 0x70, + 0x10, 0xdd, 0x32, 0x7b, 0xcd, 0x4d, 0xb2, 0x51, 0x8e, 0x4f, 0xfd, 0x65, 0x19, 0xce, 0x88, 0xf7, + 0xe0, 0xfc, 0x6c, 0x13, 0x3c, 0xc4, 0x34, 0xec, 0x1e, 0xb1, 0x30, 0x94, 0x1f, 0xff, 0x9e, 0xcc, + 0x41, 0xcc, 0x45, 0x47, 0x9d, 0x6f, 0xff, 0xf6, 0x11, 0x75, 0x00, 0xd9, 0x1b, 0x66, 0x22, 0x88, + 0x0d, 0xa1, 0xcf, 0x14, 0x98, 0x6b, 0xd1, 0x82, 0x98, 0xde, 0x34, 0xba, 0x3e, 0xee, 0x6d, 0xcb, + 0xec, 0xdd, 0x83, 0xe3, 0x6d, 0xcb, 0x6a, 0x6c, 0x9b, 0x04, 0x63, 0x62, 0x73, 0xd4, 0xca, 0x4c, + 0xd4, 0x3a, 0x30, 0x93, 0xa1, 0x52, 0xe0, 0x9e, 0xde, 0x49, 0xba, 0xa7, 0xeb, 0x39, 0xe2, 0x90, + 0xa6, 0x89, 0x5f, 0x5e, 0xdc, 0x47, 0xad, 0x75, 0x60, 0x21, 0x87, 0x40, 0xc1, 0xbe, 0x37, 0xe3, + 0xfb, 0x56, 0x72, 0xd3, 0xbd, 0xf7, 0x70, 0xd0, 0x2b, 0x2e, 0x52, 0xbc, 0x71, 0xaf, 0xf8, 0x3f, + 0x14, 0x58, 0xe3, 0xe5, 0xbc, 0x0c, 0xd3, 0x32, 0x75, 0x08, 0x49, 0x64, 0xd6, 0x9f, 0x94, 0xa1, + 0xa7, 0x4c, 0x88, 0xa2, 0xbe, 0x8b, 0x30, 0x57, 0xdd, 0x3f, 0xd3, 0x78, 0xb7, 0xc5, 0x64, 0x10, + 0x7b, 0xf2, 0xd1, 0xab, 0x30, 0xd9, 0x22, 0x0e, 0xd0, 0x43, 0xcc, 0x7c, 0x29, 0x5e, 0x7e, 0x4a, + 0x0e, 0xaa, 0x1e, 0xbc, 0xde, 0xc7, 0x59, 0x23, 0x77, 0x69, 0x28, 0xf4, 0xc7, 0x8f, 0x77, 0xad, + 0x14, 0x5a, 0x7d, 0x87, 0x7e, 0xd3, 0x16, 0x2a, 0x36, 0x7d, 0x49, 0xf6, 0x91, 0x1b, 0x53, 0x03, + 0xfa, 0xdd, 0x56, 0x12, 0x2c, 0x72, 0x1c, 0xe6, 0x7a, 0x65, 0x97, 0x30, 0x11, 0xd3, 0xe5, 0x7d, + 0x54, 0x43, 0x5a, 0xaf, 0x26, 0xb3, 0xcd, 0xb2, 0x30, 0x5d, 0x87, 0xe6, 0xc5, 0xc3, 0xaf, 0x2e, + 0x79, 0x0a, 0x89, 0xe5, 0x87, 0x26, 0xf9, 0x28, 0xcb, 0x20, 0xa9, 0x0d, 0x98, 0xd7, 0x8c, 0x00, + 0xdb, 0x56, 0xdb, 0x0a, 0x3e, 0xea, 0x98, 0xb1, 0x44, 0xde, 0x3a, 0x9c, 0x32, 0x8d, 0xc0, 0xe0, + 0xcc, 0x58, 0xca, 0x6b, 0xc4, 0xbc, 0xe5, 0x1c, 0x69, 0x74, 0xa1, 0xfa, 0x21, 0x2c, 0x64, 0x50, + 0xf1, 0x03, 0x0c, 0x8a, 0x6b, 0xe3, 0x9f, 0xea, 0x00, 0xdc, 0x29, 0xbd, 0xf5, 0xb8, 0x81, 0xfe, + 0x50, 0x81, 0x79, 0xf1, 0x47, 0xed, 0xe8, 0xca, 0xf1, 0xfe, 0x85, 0xa2, 0x76, 0x75, 0x60, 0x38, + 0x7e, 0x96, 0x3f, 0x52, 0x60, 0x21, 0xe7, 0x5f, 0x0f, 0xd0, 0xd5, 0xa2, 0x7f, 0x0c, 0xc8, 0xa3, + 0xe6, 0xda, 0xe0, 0x80, 0x9c, 0x9c, 0x1f, 0x2b, 0xb0, 0x52, 0xf4, 0xe5, 0x3f, 0xfa, 0xce, 0x49, + 0xff, 0xc9, 0xa0, 0x76, 0xeb, 0x04, 0x18, 0x38, 0xa5, 0xe4, 0x12, 0xc5, 0xdf, 0xf4, 0x4b, 0x2e, + 0x51, 0xfa, 0x5f, 0x02, 0x92, 0x4b, 0x2c, 0xf8, 0xf3, 0x80, 0x3f, 0x53, 0xa0, 0x96, 0xff, 0xe5, + 0x3b, 0xca, 0xef, 0x0a, 0x2b, 0xfc, 0x47, 0x80, 0xda, 0x7b, 0xc7, 0x82, 0xe5, 0x74, 0xfd, 0x50, + 0x81, 0xc5, 0xdc, 0xef, 0xda, 0xd1, 0xbb, 0xb9, 0xa8, 0x8b, 0x3e, 0xab, 0xaf, 0x5d, 0x3f, 0x0e, + 0x28, 0x27, 0xca, 0x81, 0xc9, 0xc4, 0x07, 0xcf, 0xe8, 0xcd, 0x5c, 0x64, 0xa2, 0xef, 0xaa, 0x6b, + 0xf5, 0x7e, 0x97, 0xf3, 0xfd, 0x3e, 0x53, 0xe0, 0xb4, 0xe0, 0xab, 0x61, 0x74, 0x59, 0x7e, 0xdb, + 0xc2, 0xef, 0x94, 0x6b, 0x6f, 0x0f, 0x06, 0xc4, 0x49, 0x08, 0x60, 0x2a, 0xf5, 0x11, 0x2d, 0x5a, + 0x97, 0xb9, 0x1f, 0x82, 0x4a, 0x48, 0xed, 0xad, 0xfe, 0x01, 0xf8, 0xae, 0x87, 0x30, 0x9d, 0xfe, + 0x12, 0x0c, 0xe5, 0x63, 0xc9, 0xf9, 0x56, 0xae, 0x76, 0x69, 0x00, 0x88, 0x98, 0xd8, 0xe5, 0xf6, + 0x3b, 0x4a, 0xc4, 0xae, 0xe8, 0x6b, 0x94, 0xda, 0x09, 0xda, 0x2b, 0xd1, 0x5f, 0x2a, 0x70, 0x46, + 0xd6, 0x0e, 0x89, 0x6e, 0x1c, 0xb3, 0x8b, 0x92, 0x91, 0xf6, 0xfe, 0x89, 0x7a, 0x30, 0x39, 0xcb, + 0x72, 0x7a, 0x06, 0xa5, 0x2c, 0x93, 0x77, 0x2c, 0x4a, 0x59, 0x56, 0xd0, 0xa2, 0x18, 0xbb, 0x47, + 0x41, 0x43, 0x76, 0xe1, 0x3d, 0xe6, 0xb7, 0xc2, 0x17, 0xde, 0xa3, 0xac, 0xff, 0x3b, 0x76, 0x8f, + 0xc2, 0xb6, 0xbd, 0xe2, 0x7b, 0x94, 0xb5, 0x0e, 0x16, 0xdf, 0xa3, 0xb4, 0x57, 0x30, 0x7e, 0x8f, + 0xd9, 0xce, 0xbc, 0xe2, 0x7b, 0xcc, 0xed, 0x0b, 0x2c, 0xbe, 0xc7, 0xfc, 0x46, 0x40, 0xf4, 0x17, + 0x34, 0xb7, 0x99, 0xdb, 0x72, 0x87, 0xde, 0x1b, 0xe8, 0xcc, 0xc9, 0xa6, 0xbf, 0xda, 0x8d, 0xe3, + 0x01, 0x27, 0x48, 0xcb, 0xed, 0x37, 0x95, 0x92, 0x56, 0xd4, 0xf1, 0x2a, 0x25, 0xad, 0xb8, 0xc5, + 0xf5, 0xaf, 0x15, 0x58, 0x96, 0x37, 0x9a, 0xa1, 0x6f, 0x4b, 0x36, 0xe8, 0xa3, 0xdb, 0xae, 0x76, + 0xf3, 0xd8, 0xf0, 0x9c, 0xc6, 0xef, 0x2b, 0x50, 0xcd, 0x6b, 0x37, 0x44, 0xd7, 0x24, 0xd8, 0xa5, + 0x7d, 0x95, 0xb5, 0x77, 0x8f, 0x01, 0xc9, 0x29, 0xfa, 0x5c, 0x81, 0x59, 0x51, 0xd3, 0x1a, 0xca, + 0x7f, 0x73, 0x4a, 0x5a, 0xf4, 0x6a, 0xef, 0x0c, 0x08, 0xc5, 0xa9, 0xf8, 0x2b, 0xfa, 0xe7, 0x53, + 0x92, 0xa6, 0x2c, 0xf4, 0x7e, 0x81, 0x6c, 0xc8, 0x3b, 0xea, 0x6a, 0xdf, 0x3e, 0x2e, 0x38, 0x27, + 0xf0, 0x53, 0x98, 0xc9, 0xf4, 0x27, 0xa1, 0x4b, 0x12, 0xa4, 0xe2, 0xb6, 0xb1, 0xda, 0xc6, 0x20, + 0x20, 0x3d, 0x6f, 0x24, 0xd5, 0x71, 0x24, 0xf1, 0x46, 0xc4, 0x7d, 0x52, 0x12, 0x6f, 0x24, 0xa7, + 0x99, 0x09, 0x3d, 0x83, 0x89, 0x78, 0x07, 0x08, 0xfa, 0x96, 0x14, 0x43, 0xaa, 0xe5, 0xa9, 0xf6, + 0x66, 0x9f, 0xab, 0x63, 0x52, 0x28, 0x6a, 0xe1, 0x90, 0x48, 0xa1, 0xa4, 0x0b, 0x45, 0x22, 0x85, + 0xd2, 0x3e, 0x11, 0xe2, 0x79, 0x0a, 0x3a, 0x33, 0x24, 0x9e, 0x67, 0x7e, 0x9b, 0x47, 0xed, 0xed, + 0xc1, 0x80, 0xa2, 0x4f, 0x55, 0xa0, 0xd7, 0xe8, 0x80, 0x2e, 0xe6, 0xe2, 0xc8, 0x74, 0x4f, 0xd4, + 0xde, 0xe8, 0x6b, 0x6d, 0x6f, 0x9b, 0x5e, 0x27, 0x81, 0x64, 0x9b, 0x4c, 0x77, 0x85, 0x64, 0x9b, + 0x6c, 0x6b, 0x02, 0xdb, 0x26, 0x6c, 0x04, 0x90, 0x6e, 0x93, 0x6a, 0x5f, 0x90, 0x6e, 0x93, 0xee, + 0x2c, 0x20, 0x11, 0x4a, 0xa2, 0x88, 0x2f, 0x89, 0x50, 0x44, 0x0d, 0x08, 0x92, 0x08, 0x45, 0xdc, + 0x1b, 0x40, 0x42, 0x59, 0x71, 0x31, 0x5c, 0x12, 0xca, 0x4a, 0x9b, 0x02, 0x24, 0xa1, 0x6c, 0x41, + 0x19, 0x9f, 0x38, 0x30, 0xb9, 0x75, 0x67, 0x89, 0x03, 0x53, 0x54, 0x1a, 0x97, 0x38, 0x30, 0xc5, + 0x65, 0x6e, 0x07, 0x26, 0x13, 0x55, 0x5b, 0xc9, 0x85, 0x88, 0x0a, 0xd7, 0x92, 0x0b, 0x11, 0x16, + 0x83, 0xa9, 0xf9, 0x10, 0x55, 0x58, 0x91, 0x2c, 0xfc, 0xcb, 0xad, 0x1d, 0x4b, 0xcc, 0x87, 0xac, + 0x8c, 0x4b, 0xe2, 0xb7, 0x74, 0x2d, 0x56, 0x12, 0xbf, 0xe5, 0x54, 0x7c, 0x25, 0xf1, 0x5b, 0x6e, + 0xa1, 0x37, 0x80, 0xa9, 0x54, 0xd1, 0x51, 0xf2, 0x82, 0x10, 0x97, 0x72, 0x25, 0x2f, 0x88, 0xbc, + 0x7a, 0x26, 0x09, 0x57, 0x53, 0x45, 0x2d, 0x59, 0xb8, 0x2a, 0x2e, 0xf3, 0xc9, 0xc2, 0xd5, 0x9c, + 0x8a, 0x19, 0xd9, 0x38, 0x5d, 0x04, 0x92, 0x6c, 0x9c, 0x53, 0x5b, 0x93, 0x6c, 0x9c, 0x5b, 0x61, + 0xfa, 0x03, 0x05, 0xe6, 0x84, 0x75, 0x1b, 0x94, 0x2f, 0x31, 0xb2, 0x4a, 0x53, 0xed, 0xca, 0xa0, + 0x60, 0x31, 0x79, 0x17, 0x55, 0x3d, 0x24, 0xf2, 0x2e, 0x29, 0x27, 0x49, 0xe4, 0x5d, 0x5a, 0x20, + 0xfa, 0x42, 0x89, 0xbe, 0x6a, 0xca, 0x4f, 0xaf, 0xa3, 0x5b, 0x45, 0xf1, 0x46, 0x61, 0x19, 0xa2, + 0x76, 0xfb, 0x24, 0x28, 0x12, 0x29, 0x9d, 0x78, 0x7e, 0x5d, 0x9e, 0xd2, 0x11, 0x24, 0xf0, 0xe5, + 0x29, 0x1d, 0x61, 0xea, 0x9e, 0x68, 0x66, 0x32, 0x29, 0x2e, 0xd3, 0x4c, 0x61, 0x26, 0x5e, 0xa6, + 0x99, 0xe2, 0x7c, 0xfb, 0xed, 0x3b, 0x3f, 0xfd, 0x72, 0x59, 0xf9, 0xd9, 0x97, 0xcb, 0xca, 0xbf, + 0x7d, 0xb9, 0xac, 0xfc, 0xfa, 0xd5, 0x3d, 0x2b, 0xd8, 0xef, 0xee, 0xd6, 0x9b, 0x6e, 0x7b, 0x3d, + 0xf1, 0xff, 0xe4, 0xf5, 0x3d, 0xec, 0xb0, 0x3f, 0xab, 0x8f, 0xfd, 0x5b, 0xfe, 0x7b, 0xfc, 0xe7, + 0xc1, 0xa5, 0xdd, 0x61, 0x3a, 0x77, 0xf9, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, 0xc2, 0x7a, 0xca, + 0x50, 0x59, 0x5f, 0x00, 0x00, } func (m *StartWorkflowExecutionRequest) Marshal() (dAtA []byte, err error) { @@ -6718,6 +6727,18 @@ func (m *GetMutableStateRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if m.VersionHistoryItem != nil { + { + size, err := m.VersionHistoryItem.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintService(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } if len(m.CurrentBranchToken) > 0 { i -= len(m.CurrentBranchToken) copy(dAtA[i:], m.CurrentBranchToken) @@ -8952,21 +8973,21 @@ func (m *DescribeHistoryHostResponse) MarshalToSizedBuffer(dAtA []byte) (int, er dAtA[i] = 0x1a } if len(m.ShardIds) > 0 { - dAtA82 := make([]byte, len(m.ShardIds)*10) - var j81 int + dAtA83 := make([]byte, len(m.ShardIds)*10) + var j82 int for _, num1 := range m.ShardIds { num := uint64(num1) for num >= 1<<7 { - dAtA82[j81] = uint8(uint64(num)&0x7f | 0x80) + dAtA83[j82] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j81++ + j82++ } - dAtA82[j81] = uint8(num) - j81++ + dAtA83[j82] = uint8(num) + j82++ } - i -= j81 - copy(dAtA[i:], dAtA82[:j81]) - i = encodeVarintService(dAtA, i, uint64(j81)) + i -= j82 + copy(dAtA[i:], dAtA83[:j82]) + i = encodeVarintService(dAtA, i, uint64(j82)) i-- dAtA[i] = 0x12 } @@ -10127,21 +10148,21 @@ func (m *GetCrossClusterTasksRequest) MarshalToSizedBuffer(dAtA []byte) (int, er dAtA[i] = 0x12 } if len(m.ShardIds) > 0 { - dAtA92 := make([]byte, len(m.ShardIds)*10) - var j91 int + dAtA93 := make([]byte, len(m.ShardIds)*10) + var j92 int for _, num1 := range m.ShardIds { num := uint64(num1) for num >= 1<<7 { - dAtA92[j91] = uint8(uint64(num)&0x7f | 0x80) + dAtA93[j92] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j91++ + j92++ } - dAtA92[j91] = uint8(num) - j91++ + dAtA93[j92] = uint8(num) + j92++ } - i -= j91 - copy(dAtA[i:], dAtA92[:j91]) - i = encodeVarintService(dAtA, i, uint64(j91)) + i -= j92 + copy(dAtA[i:], dAtA93[:j92]) + i = encodeVarintService(dAtA, i, uint64(j92)) i-- dAtA[i] = 0xa } @@ -10375,21 +10396,21 @@ func (m *GetFailoverInfoResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) copy(dAtA[i:], m.XXX_unrecognized) } if len(m.PendingShards) > 0 { - dAtA96 := make([]byte, len(m.PendingShards)*10) - var j95 int + dAtA97 := make([]byte, len(m.PendingShards)*10) + var j96 int for _, num1 := range m.PendingShards { num := uint64(num1) for num >= 1<<7 { - dAtA96[j95] = uint8(uint64(num)&0x7f | 0x80) + dAtA97[j96] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j95++ + j96++ } - dAtA96[j95] = uint8(num) - j95++ + dAtA97[j96] = uint8(num) + j96++ } - i -= j95 - copy(dAtA[i:], dAtA96[:j95]) - i = encodeVarintService(dAtA, i, uint64(j95)) + i -= j96 + copy(dAtA[i:], dAtA97[:j96]) + i = encodeVarintService(dAtA, i, uint64(j96)) i-- dAtA[i] = 0x12 } @@ -10867,6 +10888,10 @@ func (m *GetMutableStateRequest) Size() (n int) { if l > 0 { n += 1 + l + sovService(uint64(l)) } + if m.VersionHistoryItem != nil { + l = m.VersionHistoryItem.Size() + n += 1 + l + sovService(uint64(l)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -14962,6 +14987,42 @@ func (m *GetMutableStateRequest) Unmarshal(dAtA []byte) error { m.CurrentBranchToken = []byte{} } iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field VersionHistoryItem", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowService + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthService + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthService + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.VersionHistoryItem == nil { + m.VersionHistoryItem = &v11.VersionHistoryItem{} + } + if err := m.VersionHistoryItem.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipService(dAtA[iNdEx:]) @@ -15430,7 +15491,7 @@ func (m *GetMutableStateResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.WorkflowState |= v11.WorkflowState(b&0x7F) << shift + m.WorkflowState |= v12.WorkflowState(b&0x7F) << shift if b < 0x80 { break } @@ -15484,7 +15545,7 @@ func (m *GetMutableStateResponse) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.VersionHistories == nil { - m.VersionHistories = &v11.VersionHistories{} + m.VersionHistories = &v12.VersionHistories{} } if err := m.VersionHistories.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -16166,7 +16227,7 @@ func (m *PollMutableStateResponse) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.VersionHistories == nil { - m.VersionHistories = &v11.VersionHistories{} + m.VersionHistories = &v12.VersionHistories{} } if err := m.VersionHistories.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -16186,7 +16247,7 @@ func (m *PollMutableStateResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.WorkflowState |= v11.WorkflowState(b&0x7F) << shift + m.WorkflowState |= v12.WorkflowState(b&0x7F) << shift if b < 0x80 { break } @@ -16684,7 +16745,7 @@ func (m *RecordDecisionTaskStartedResponse) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.DecisionInfo == nil { - m.DecisionInfo = &v11.TransientDecisionInfo{} + m.DecisionInfo = &v12.TransientDecisionInfo{} } if err := m.DecisionInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -19757,7 +19818,7 @@ func (m *ReplicateEventsV2Request) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.VersionHistoryItems = append(m.VersionHistoryItems, &v12.VersionHistoryItem{}) + m.VersionHistoryItems = append(m.VersionHistoryItems, &v11.VersionHistoryItem{}) if err := m.VersionHistoryItems[len(m.VersionHistoryItems)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -20511,7 +20572,7 @@ func (m *SyncActivityRequest) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.VersionHistory == nil { - m.VersionHistory = &v12.VersionHistory{} + m.VersionHistory = &v11.VersionHistory{} } if err := m.VersionHistory.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -21029,7 +21090,7 @@ func (m *DescribeHistoryHostResponse) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.DomainCache == nil { - m.DomainCache = &v12.DomainCacheInfo{} + m.DomainCache = &v11.DomainCacheInfo{} } if err := m.DomainCache.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -21304,7 +21365,7 @@ func (m *RemoveTaskRequest) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.TaskType |= v12.TaskType(b&0x7F) << shift + m.TaskType |= v11.TaskType(b&0x7F) << shift if b < 0x80 { break } @@ -21563,7 +21624,7 @@ func (m *ResetQueueRequest) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.TaskType |= v12.TaskType(b&0x7F) << shift + m.TaskType |= v11.TaskType(b&0x7F) << shift if b < 0x80 { break } @@ -21735,7 +21796,7 @@ func (m *DescribeQueueRequest) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.TaskType |= v12.TaskType(b&0x7F) << shift + m.TaskType |= v11.TaskType(b&0x7F) << shift if b < 0x80 { break } @@ -21903,7 +21964,7 @@ func (m *GetReplicationMessagesRequest) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Tokens = append(m.Tokens, &v12.ReplicationToken{}) + m.Tokens = append(m.Tokens, &v11.ReplicationToken{}) if err := m.Tokens[len(m.Tokens)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -22021,10 +22082,10 @@ func (m *GetReplicationMessagesResponse) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.ShardMessages == nil { - m.ShardMessages = make(map[int32]*v12.ReplicationMessages) + m.ShardMessages = make(map[int32]*v11.ReplicationMessages) } var mapkey int32 - var mapvalue *v12.ReplicationMessages + var mapvalue *v11.ReplicationMessages for iNdEx < postIndex { entryPreIndex := iNdEx var wire uint64 @@ -22084,7 +22145,7 @@ func (m *GetReplicationMessagesResponse) Unmarshal(dAtA []byte) error { if postmsgIndex > l { return io.ErrUnexpectedEOF } - mapvalue = &v12.ReplicationMessages{} + mapvalue = &v11.ReplicationMessages{} if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { return err } @@ -22186,7 +22247,7 @@ func (m *GetDLQReplicationMessagesRequest) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.TaskInfos = append(m.TaskInfos, &v12.ReplicationTaskInfo{}) + m.TaskInfos = append(m.TaskInfos, &v11.ReplicationTaskInfo{}) if err := m.TaskInfos[len(m.TaskInfos)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -22271,7 +22332,7 @@ func (m *GetDLQReplicationMessagesResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.ReplicationTasks = append(m.ReplicationTasks, &v12.ReplicationTask{}) + m.ReplicationTasks = append(m.ReplicationTasks, &v11.ReplicationTask{}) if err := m.ReplicationTasks[len(m.ReplicationTasks)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -22867,7 +22928,7 @@ func (m *CountDLQMessagesResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Entries = append(m.Entries, &v12.HistoryDLQCountEntry{}) + m.Entries = append(m.Entries, &v11.HistoryDLQCountEntry{}) if err := m.Entries[len(m.Entries)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -22937,7 +22998,7 @@ func (m *ReadDLQMessagesRequest) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Type |= v12.DLQType(b&0x7F) << shift + m.Type |= v11.DLQType(b&0x7F) << shift if b < 0x80 { break } @@ -23147,7 +23208,7 @@ func (m *ReadDLQMessagesResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Type |= v12.DLQType(b&0x7F) << shift + m.Type |= v11.DLQType(b&0x7F) << shift if b < 0x80 { break } @@ -23181,7 +23242,7 @@ func (m *ReadDLQMessagesResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.ReplicationTasks = append(m.ReplicationTasks, &v12.ReplicationTask{}) + m.ReplicationTasks = append(m.ReplicationTasks, &v11.ReplicationTask{}) if err := m.ReplicationTasks[len(m.ReplicationTasks)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -23215,7 +23276,7 @@ func (m *ReadDLQMessagesResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.ReplicationTasksInfo = append(m.ReplicationTasksInfo, &v12.ReplicationTaskInfo{}) + m.ReplicationTasksInfo = append(m.ReplicationTasksInfo, &v11.ReplicationTaskInfo{}) if err := m.ReplicationTasksInfo[len(m.ReplicationTasksInfo)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -23319,7 +23380,7 @@ func (m *PurgeDLQMessagesRequest) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Type |= v12.DLQType(b&0x7F) << shift + m.Type |= v11.DLQType(b&0x7F) << shift if b < 0x80 { break } @@ -23527,7 +23588,7 @@ func (m *MergeDLQMessagesRequest) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Type |= v12.DLQType(b&0x7F) << shift + m.Type |= v11.DLQType(b&0x7F) << shift if b < 0x80 { break } @@ -23837,7 +23898,7 @@ func (m *NotifyFailoverMarkersRequest) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.FailoverMarkerTokens = append(m.FailoverMarkerTokens, &v12.FailoverMarkerToken{}) + m.FailoverMarkerTokens = append(m.FailoverMarkerTokens, &v11.FailoverMarkerToken{}) if err := m.FailoverMarkerTokens[len(m.FailoverMarkerTokens)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -24133,10 +24194,10 @@ func (m *GetCrossClusterTasksResponse) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.TasksByShard == nil { - m.TasksByShard = make(map[int32]*v12.CrossClusterTaskRequests) + m.TasksByShard = make(map[int32]*v11.CrossClusterTaskRequests) } var mapkey int32 - var mapvalue *v12.CrossClusterTaskRequests + var mapvalue *v11.CrossClusterTaskRequests for iNdEx < postIndex { entryPreIndex := iNdEx var wire uint64 @@ -24196,7 +24257,7 @@ func (m *GetCrossClusterTasksResponse) Unmarshal(dAtA []byte) error { if postmsgIndex > l { return io.ErrUnexpectedEOF } - mapvalue = &v12.CrossClusterTaskRequests{} + mapvalue = &v11.CrossClusterTaskRequests{} if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { return err } @@ -24248,10 +24309,10 @@ func (m *GetCrossClusterTasksResponse) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.FailedCauseByShard == nil { - m.FailedCauseByShard = make(map[int32]v12.GetTaskFailedCause) + m.FailedCauseByShard = make(map[int32]v11.GetTaskFailedCause) } var mapkey int32 - var mapvalue v12.GetTaskFailedCause + var mapvalue v11.GetTaskFailedCause for iNdEx < postIndex { entryPreIndex := iNdEx var wire uint64 @@ -24295,7 +24356,7 @@ func (m *GetCrossClusterTasksResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - mapvalue |= v12.GetTaskFailedCause(b&0x7F) << shift + mapvalue |= v11.GetTaskFailedCause(b&0x7F) << shift if b < 0x80 { break } @@ -24448,7 +24509,7 @@ func (m *RespondCrossClusterTasksCompletedRequest) Unmarshal(dAtA []byte) error if postIndex > l { return io.ErrUnexpectedEOF } - m.TaskResponses = append(m.TaskResponses, &v12.CrossClusterTaskResponse{}) + m.TaskResponses = append(m.TaskResponses, &v11.CrossClusterTaskResponse{}) if err := m.TaskResponses[len(m.TaskResponses)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -24554,7 +24615,7 @@ func (m *RespondCrossClusterTasksCompletedResponse) Unmarshal(dAtA []byte) error return io.ErrUnexpectedEOF } if m.Tasks == nil { - m.Tasks = &v12.CrossClusterTaskRequests{} + m.Tasks = &v11.CrossClusterTaskRequests{} } if err := m.Tasks.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -24870,7 +24931,7 @@ func (m *RatelimitUpdateRequest) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Data == nil { - m.Data = &v11.Any{} + m.Data = &v12.Any{} } if err := m.Data.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -24957,7 +25018,7 @@ func (m *RatelimitUpdateResponse) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Data == nil { - m.Data = &v11.Any{} + m.Data = &v12.Any{} } if err := m.Data.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err diff --git a/.gen/proto/history/v1/service.pb.yarpc.go b/.gen/proto/history/v1/service.pb.yarpc.go index dcb2cbcfe81..19f5100987e 100644 --- a/.gen/proto/history/v1/service.pb.yarpc.go +++ b/.gen/proto/history/v1/service.pb.yarpc.go @@ -2405,316 +2405,317 @@ var ( var yarpcFileDescriptorClosurefee8ff76963a38ed = [][]byte{ // uber/cadence/history/v1/service.proto []byte{ - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x3c, 0x4d, 0x6f, 0x1c, 0x47, - 0x76, 0x68, 0x8e, 0xf8, 0xf5, 0x48, 0x0e, 0xc9, 0x12, 0x3f, 0x86, 0x43, 0x89, 0x22, 0x7b, 0x2d, - 0x9b, 0x96, 0xd7, 0x43, 0x8b, 0xb6, 0x65, 0x49, 0x96, 0x57, 0x2b, 0x91, 0x92, 0x3c, 0x8e, 0x3e, - 0x9b, 0xb4, 0x9c, 0x04, 0x89, 0x7b, 0x9b, 0xdd, 0x35, 0x64, 0x47, 0x3d, 0xdd, 0xa3, 0xee, 0x1e, - 0x52, 0xe3, 0x43, 0xe0, 0xc4, 0x41, 0x80, 0x5d, 0x04, 0xd9, 0xcd, 0x22, 0x09, 0x02, 0x04, 0x08, - 0x10, 0x6c, 0x80, 0xc5, 0x1a, 0xb9, 0x25, 0x40, 0x0e, 0x49, 0x4e, 0xb9, 0xe4, 0x2f, 0xe4, 0xbe, - 0x7b, 0x48, 0x80, 0x9c, 0xb2, 0xe7, 0x20, 0xa8, 0x8f, 0xee, 0xe9, 0x8f, 0xea, 0xea, 0x21, 0x19, - 0x44, 0x5e, 0xc7, 0x37, 0x4e, 0x55, 0xbd, 0x57, 0xaf, 0x5e, 0xbd, 0xf7, 0xfa, 0x7d, 0x15, 0xe1, - 0x62, 0x77, 0x0f, 0xfb, 0x1b, 0xa6, 0x61, 0x61, 0xd7, 0xc4, 0x1b, 0x07, 0x76, 0x10, 0x7a, 0x7e, - 0x6f, 0xe3, 0xf0, 0xf2, 0x46, 0x80, 0xfd, 0x43, 0xdb, 0xc4, 0x8d, 0x8e, 0xef, 0x85, 0x1e, 0x5a, - 0x24, 0xcb, 0x1a, 0x7c, 0x59, 0x83, 0x2f, 0x6b, 0x1c, 0x5e, 0xae, 0xaf, 0xec, 0x7b, 0xde, 0xbe, - 0x83, 0x37, 0xe8, 0xb2, 0xbd, 0x6e, 0x6b, 0xc3, 0xea, 0xfa, 0x46, 0x68, 0x7b, 0x2e, 0x03, 0xac, - 0x5f, 0xc8, 0xce, 0x87, 0x76, 0x1b, 0x07, 0xa1, 0xd1, 0xee, 0xf0, 0x05, 0x39, 0x04, 0x47, 0xbe, - 0xd1, 0xe9, 0x60, 0x3f, 0xe0, 0xf3, 0xab, 0x29, 0x02, 0x8d, 0x8e, 0x4d, 0x88, 0x33, 0xbd, 0x76, - 0x3b, 0xde, 0x62, 0x4d, 0xb4, 0x22, 0x22, 0x91, 0x53, 0x21, 0x5a, 0xf2, 0xbc, 0x8b, 0xe3, 0x05, - 0xaa, 0x68, 0x41, 0x68, 0x04, 0xcf, 0x1c, 0x3b, 0x08, 0x65, 0x6b, 0x8e, 0x3c, 0xff, 0x59, 0xcb, - 0xf1, 0x8e, 0xf8, 0x9a, 0x4b, 0xa2, 0x35, 0x9c, 0x95, 0x7a, 0x66, 0xed, 0x7a, 0xd9, 0x5a, 0xec, - 0xf3, 0x95, 0xdf, 0x4a, 0xaf, 0xb4, 0xda, 0xb6, 0x4b, 0xb9, 0xe0, 0x74, 0x83, 0xb0, 0x6c, 0x51, - 0x9a, 0x11, 0x6b, 0xe2, 0x45, 0xcf, 0xbb, 0xb8, 0xcb, 0xaf, 0xba, 0xfe, 0x9a, 0x78, 0x89, 0x8f, - 0x3b, 0x8e, 0x6d, 0x26, 0xaf, 0x36, 0x7d, 0x33, 0xc1, 0x81, 0xe1, 0x63, 0x8b, 0xac, 0x34, 0xdc, - 0x68, 0xb7, 0x57, 0x0a, 0x56, 0xa4, 0x69, 0xba, 0x58, 0xb0, 0x2a, 0xcd, 0x2e, 0xf5, 0xe7, 0x23, - 0x70, 0x7e, 0x27, 0x34, 0xfc, 0xf0, 0x13, 0x3e, 0x7e, 0xe7, 0x05, 0x36, 0xbb, 0x84, 0x1e, 0x0d, - 0x3f, 0xef, 0xe2, 0x20, 0x44, 0xf7, 0x61, 0xd4, 0x67, 0x7f, 0xd6, 0x94, 0x55, 0x65, 0x7d, 0x62, - 0x73, 0xb3, 0x91, 0x12, 0x5b, 0xa3, 0x63, 0x37, 0x0e, 0x2f, 0x37, 0xa4, 0x48, 0xb4, 0x08, 0x05, - 0x5a, 0x86, 0x71, 0xcb, 0x6b, 0x1b, 0xb6, 0xab, 0xdb, 0x56, 0x6d, 0x68, 0x55, 0x59, 0x1f, 0xd7, - 0xc6, 0xd8, 0x40, 0xd3, 0x42, 0xbf, 0x05, 0xf3, 0x1d, 0xc3, 0xc7, 0x6e, 0xa8, 0xe3, 0x08, 0x81, - 0x6e, 0xbb, 0x2d, 0xaf, 0x56, 0xa1, 0x1b, 0xaf, 0x0b, 0x37, 0x7e, 0x4c, 0x21, 0xe2, 0x1d, 0x9b, - 0x6e, 0xcb, 0xd3, 0xce, 0x76, 0xf2, 0x83, 0xa8, 0x06, 0xa3, 0x46, 0x18, 0xe2, 0x76, 0x27, 0xac, - 0x9d, 0x59, 0x55, 0xd6, 0x87, 0xb5, 0xe8, 0x27, 0xda, 0x82, 0x69, 0xfc, 0xa2, 0x63, 0x33, 0x15, - 0xd3, 0x89, 0x2e, 0xd5, 0x86, 0xe9, 0x8e, 0xf5, 0x06, 0xd3, 0xa3, 0x46, 0xa4, 0x47, 0x8d, 0xdd, - 0x48, 0xd1, 0xb4, 0x6a, 0x1f, 0x84, 0x0c, 0xa2, 0x16, 0x2c, 0x99, 0x9e, 0x1b, 0xda, 0x6e, 0x17, - 0xeb, 0x46, 0xa0, 0xbb, 0xf8, 0x48, 0xb7, 0x5d, 0x3b, 0xb4, 0x8d, 0xd0, 0xf3, 0x6b, 0x23, 0xab, - 0xca, 0x7a, 0x75, 0xf3, 0x0d, 0xe1, 0x01, 0xb6, 0x38, 0xd4, 0xad, 0xe0, 0x21, 0x3e, 0x6a, 0x46, - 0x20, 0xda, 0x82, 0x29, 0x1c, 0x47, 0x4d, 0x98, 0x8d, 0x66, 0x2c, 0xbd, 0x65, 0xd8, 0x4e, 0xd7, - 0xc7, 0xb5, 0x51, 0x4a, 0xee, 0x39, 0x21, 0xfe, 0xbb, 0x6c, 0x8d, 0x36, 0x13, 0x83, 0xf1, 0x11, - 0xa4, 0xc1, 0x82, 0x63, 0x04, 0xa1, 0x6e, 0x7a, 0xed, 0x8e, 0x83, 0xe9, 0xe1, 0x7d, 0x1c, 0x74, - 0x9d, 0xb0, 0x36, 0x26, 0xc1, 0xf7, 0xd8, 0xe8, 0x39, 0x9e, 0x61, 0x69, 0x73, 0x04, 0x76, 0x2b, - 0x06, 0xd5, 0x28, 0x24, 0xfa, 0x75, 0x58, 0x6e, 0xd9, 0x7e, 0x10, 0xea, 0x16, 0x36, 0xed, 0x80, - 0xf2, 0xd3, 0x08, 0x9e, 0xe9, 0x7b, 0x86, 0xf9, 0xcc, 0x6b, 0xb5, 0x6a, 0xe3, 0x14, 0xf1, 0x52, - 0x8e, 0xaf, 0xdb, 0xdc, 0xc0, 0x69, 0x35, 0x0a, 0xbd, 0xcd, 0x81, 0x77, 0x8d, 0xe0, 0xd9, 0x6d, - 0x06, 0x8a, 0x0e, 0x61, 0xa6, 0x63, 0xf8, 0xa1, 0x4d, 0xe9, 0x34, 0x3d, 0xb7, 0x65, 0xef, 0xd7, - 0x60, 0xb5, 0xb2, 0x3e, 0xb1, 0xf9, 0x6b, 0x8d, 0x02, 0x43, 0x2a, 0x97, 0x4a, 0x22, 0x3a, 0x0c, - 0xdd, 0x16, 0xc5, 0x76, 0xc7, 0x0d, 0xfd, 0x9e, 0x36, 0xdd, 0x49, 0x8f, 0xd6, 0x6f, 0xc3, 0x9c, - 0x68, 0x21, 0x9a, 0x81, 0xca, 0x33, 0xdc, 0xa3, 0x4a, 0x31, 0xae, 0x91, 0x3f, 0xd1, 0x1c, 0x0c, - 0x1f, 0x1a, 0x4e, 0x17, 0x73, 0xc1, 0x66, 0x3f, 0xae, 0x0f, 0x5d, 0x55, 0xd4, 0xf7, 0x60, 0xa5, - 0x88, 0x94, 0xa0, 0xe3, 0xb9, 0x01, 0x46, 0xf3, 0x30, 0xe2, 0x77, 0xa9, 0x56, 0x30, 0x84, 0xc3, - 0x7e, 0xd7, 0x6d, 0x5a, 0xea, 0xdf, 0x0c, 0xc1, 0xca, 0x8e, 0xbd, 0xef, 0x1a, 0x4e, 0xa1, 0x82, - 0x3e, 0xc8, 0x2a, 0xe8, 0xdb, 0x62, 0x05, 0x95, 0x62, 0x19, 0x50, 0x43, 0x5b, 0xb0, 0x8c, 0x5f, - 0x84, 0xd8, 0x77, 0x0d, 0x27, 0x36, 0xbc, 0x7d, 0x65, 0xe5, 0x7a, 0xfa, 0xaa, 0x70, 0xff, 0xfc, - 0xce, 0x4b, 0x11, 0xaa, 0xdc, 0x14, 0x6a, 0xc0, 0x59, 0xf3, 0xc0, 0x76, 0xac, 0xfe, 0x26, 0x9e, - 0xeb, 0xf4, 0xa8, 0xde, 0x8e, 0x69, 0xb3, 0x74, 0x2a, 0x02, 0x7a, 0xe4, 0x3a, 0x3d, 0x75, 0x0d, - 0x2e, 0x14, 0x9e, 0x8f, 0x31, 0x58, 0xfd, 0xc5, 0x10, 0xbc, 0xc6, 0xd7, 0xd8, 0xe1, 0x81, 0xdc, - 0xe6, 0x3d, 0xcd, 0xb2, 0xf4, 0x86, 0x8c, 0xa5, 0x65, 0xe8, 0x06, 0xe4, 0xed, 0xe7, 0x8a, 0x40, - 0xc0, 0x2b, 0x54, 0xc0, 0x3f, 0x2e, 0x16, 0xf0, 0xc1, 0x48, 0xf8, 0x3f, 0x14, 0xf5, 0x5b, 0xb0, - 0x5e, 0x4e, 0x94, 0x5c, 0xe8, 0x7f, 0xa0, 0xc0, 0x79, 0x0d, 0x07, 0xf8, 0xd4, 0x1f, 0x25, 0x29, - 0x92, 0xc1, 0xae, 0x85, 0xa8, 0x6e, 0x11, 0x1a, 0xf9, 0x29, 0xbe, 0x1c, 0x82, 0xb5, 0x5d, 0xec, - 0xb7, 0x6d, 0xd7, 0x08, 0x71, 0xe1, 0x49, 0x1e, 0x67, 0x4f, 0x72, 0x45, 0x78, 0x92, 0x52, 0x44, - 0xbf, 0xe2, 0x0a, 0xfc, 0x0a, 0xa8, 0xb2, 0x23, 0x72, 0x1d, 0xfe, 0x91, 0x02, 0xab, 0xdb, 0x38, - 0x30, 0x7d, 0x7b, 0xaf, 0x98, 0xa3, 0x8f, 0xb2, 0x1c, 0x7d, 0x57, 0x78, 0x9c, 0x32, 0x3c, 0x03, - 0x8a, 0xc7, 0x7f, 0x57, 0x60, 0x4d, 0x82, 0x8a, 0x8b, 0x88, 0x03, 0x8b, 0x7d, 0x97, 0x86, 0xa9, - 0x36, 0xff, 0xe0, 0x49, 0x6d, 0x76, 0x0e, 0xe1, 0x56, 0x12, 0x54, 0x5b, 0xc0, 0xc2, 0x71, 0xb4, - 0x07, 0x8b, 0xf9, 0xbb, 0x65, 0x9e, 0xd4, 0x10, 0xdd, 0xed, 0xd2, 0x60, 0xbb, 0x51, 0x5f, 0x6a, - 0xfe, 0x48, 0x34, 0x8c, 0x3e, 0x01, 0xd4, 0xc1, 0xae, 0x65, 0xbb, 0xfb, 0xba, 0x61, 0x86, 0xf6, - 0xa1, 0x1d, 0xda, 0x38, 0xe0, 0xe6, 0xaa, 0xc0, 0x51, 0x63, 0xcb, 0x6f, 0xb1, 0xd5, 0x3d, 0x8a, - 0x7c, 0xb6, 0x93, 0x1a, 0xb4, 0x71, 0x80, 0x7e, 0x03, 0x66, 0x22, 0xc4, 0x54, 0x4c, 0x7c, 0xec, - 0xd6, 0xce, 0x50, 0xb4, 0x0d, 0x19, 0xda, 0x2d, 0xb2, 0x36, 0x4d, 0xf9, 0x74, 0x27, 0x31, 0xe5, - 0x63, 0x17, 0xed, 0xf4, 0x51, 0x47, 0xde, 0x09, 0x77, 0xf4, 0xa4, 0x14, 0x47, 0xce, 0x48, 0x0a, - 0x69, 0x34, 0xa8, 0xbe, 0x80, 0xb9, 0x27, 0x24, 0xe6, 0x89, 0xb8, 0x17, 0x89, 0xe1, 0x56, 0x56, - 0x0c, 0x5f, 0x17, 0xee, 0x21, 0x82, 0x1d, 0x50, 0xf4, 0x7e, 0xa2, 0xc0, 0x7c, 0x06, 0x9c, 0x8b, - 0xdb, 0x4d, 0x98, 0xa4, 0x71, 0x58, 0xe4, 0xce, 0x29, 0x03, 0xb8, 0x73, 0x13, 0x14, 0x82, 0x7b, - 0x71, 0x4d, 0xa8, 0x46, 0x08, 0x7e, 0x07, 0x9b, 0x21, 0xb6, 0xb8, 0xe0, 0xa8, 0xc5, 0x67, 0xd0, - 0xf8, 0x4a, 0x6d, 0xea, 0x79, 0xf2, 0xa7, 0xfa, 0x07, 0x0a, 0xd4, 0xa9, 0x01, 0xdd, 0x09, 0x6d, - 0xf3, 0x59, 0x8f, 0x78, 0x74, 0xf7, 0xed, 0x20, 0x8c, 0xd8, 0xd4, 0xcc, 0xb2, 0x69, 0xa3, 0xd8, - 0x92, 0x0b, 0x31, 0x0c, 0xc8, 0xac, 0xf3, 0xb0, 0x2c, 0xc4, 0xc1, 0x2d, 0xcb, 0x7f, 0x29, 0xb0, - 0x70, 0x0f, 0x87, 0x0f, 0xba, 0xa1, 0xb1, 0xe7, 0xe0, 0x9d, 0xd0, 0x08, 0xb1, 0x26, 0x42, 0xab, - 0x64, 0xec, 0xe9, 0xc7, 0x80, 0x04, 0x66, 0x74, 0xe8, 0x58, 0x66, 0x74, 0x36, 0xa7, 0x61, 0xe8, - 0x6d, 0x58, 0xc0, 0x2f, 0x3a, 0x94, 0x81, 0xba, 0x8b, 0x5f, 0x84, 0x3a, 0x3e, 0x24, 0x61, 0x91, - 0x6d, 0x51, 0x0b, 0x5d, 0xd1, 0xce, 0x46, 0xb3, 0x0f, 0xf1, 0x8b, 0xf0, 0x0e, 0x99, 0x6b, 0x5a, - 0xe8, 0x2d, 0x98, 0x33, 0xbb, 0x3e, 0x8d, 0x9f, 0xf6, 0x7c, 0xc3, 0x35, 0x0f, 0xf4, 0xd0, 0x7b, - 0x46, 0xb5, 0x47, 0x59, 0x9f, 0xd4, 0x10, 0x9f, 0xbb, 0x4d, 0xa7, 0x76, 0xc9, 0x8c, 0xfa, 0x0f, - 0xe3, 0xb0, 0x98, 0x3b, 0x35, 0x97, 0x21, 0xf1, 0xc9, 0x94, 0xd3, 0x9e, 0xec, 0x2e, 0x4c, 0xc5, - 0x68, 0xc3, 0x5e, 0x07, 0x73, 0x5e, 0xad, 0x49, 0x31, 0xee, 0xf6, 0x3a, 0x58, 0x9b, 0x3c, 0x4a, - 0xfc, 0x42, 0x2a, 0x4c, 0x89, 0x18, 0x33, 0xe1, 0x26, 0x18, 0xf2, 0x14, 0x96, 0x3a, 0x3e, 0x3e, - 0xb4, 0xbd, 0x6e, 0xa0, 0x07, 0xc4, 0x13, 0xc1, 0x56, 0x7f, 0xfd, 0x19, 0xba, 0xef, 0x72, 0x2e, - 0x12, 0x69, 0xba, 0xe1, 0x95, 0x77, 0x9e, 0x12, 0x77, 0x46, 0x5b, 0x88, 0xa0, 0x77, 0x18, 0x70, - 0x84, 0xf7, 0x4d, 0x38, 0x4b, 0xe3, 0x26, 0x16, 0xe8, 0xc4, 0x18, 0x87, 0x29, 0x05, 0x33, 0x64, - 0xea, 0x2e, 0x99, 0x89, 0x96, 0x5f, 0x87, 0x71, 0x1a, 0x03, 0x39, 0x76, 0x10, 0xd2, 0x48, 0x70, - 0x62, 0xf3, 0xbc, 0xf8, 0x23, 0x1f, 0x49, 0xe5, 0x58, 0xc8, 0xff, 0x42, 0xf7, 0x60, 0x26, 0xa0, - 0x12, 0xab, 0xf7, 0x51, 0x8c, 0x0e, 0x82, 0xa2, 0x1a, 0xa4, 0x04, 0x1d, 0xbd, 0x03, 0x0b, 0xa6, - 0x63, 0x13, 0x4a, 0x1d, 0x7b, 0xcf, 0x37, 0xfc, 0x9e, 0x7e, 0x88, 0x7d, 0x6a, 0x01, 0xc7, 0xa8, - 0x48, 0xcf, 0xb1, 0xd9, 0xfb, 0x6c, 0xf2, 0x29, 0x9b, 0x4b, 0x40, 0xb5, 0xb0, 0x11, 0x76, 0x7d, - 0x1c, 0x43, 0x8d, 0x27, 0xa1, 0xee, 0xb2, 0xc9, 0x08, 0xea, 0x02, 0x4c, 0x70, 0x28, 0xbb, 0xdd, - 0x71, 0x6a, 0x40, 0x97, 0x02, 0x1b, 0x6a, 0xb6, 0x3b, 0x0e, 0x0a, 0xe0, 0x52, 0xf6, 0x54, 0x7a, - 0x60, 0x1e, 0x60, 0xab, 0xeb, 0x60, 0x3d, 0xf4, 0xd8, 0x65, 0xd1, 0x40, 0xdc, 0xeb, 0x86, 0xb5, - 0x89, 0xb2, 0x98, 0xf1, 0x95, 0xf4, 0x59, 0x77, 0x38, 0xa6, 0x5d, 0x8f, 0xde, 0xdb, 0x2e, 0x43, - 0x43, 0x5c, 0x12, 0x76, 0x55, 0xc4, 0x79, 0xee, 0x1f, 0x64, 0x92, 0xe6, 0x02, 0x66, 0xe9, 0xd4, - 0x0e, 0x99, 0x89, 0x4e, 0x51, 0xa4, 0x4e, 0x53, 0x45, 0xea, 0x84, 0xee, 0x43, 0x35, 0x96, 0xed, - 0x80, 0x28, 0x53, 0xad, 0x4a, 0xe3, 0xfe, 0x8b, 0xe9, 0xab, 0x62, 0xc9, 0x98, 0xa4, 0x7c, 0x33, - 0xcd, 0x8b, 0x15, 0x83, 0xfe, 0x44, 0x26, 0xcc, 0xc5, 0xd8, 0x4c, 0xc7, 0x0b, 0x30, 0xc7, 0x39, - 0x4d, 0x71, 0x5e, 0x1e, 0xd0, 0x61, 0x20, 0x80, 0x04, 0x5f, 0x37, 0xd0, 0x62, 0x7d, 0x8e, 0x07, - 0x89, 0x96, 0xcf, 0x72, 0x46, 0xe8, 0x2c, 0xaa, 0x20, 0x5f, 0xf1, 0x19, 0xd1, 0x37, 0xb1, 0x4f, - 0x35, 0x67, 0xd0, 0x87, 0xd1, 0x7a, 0x6d, 0xe6, 0x30, 0x33, 0x82, 0x6e, 0xc0, 0xb2, 0x4d, 0x74, - 0x2e, 0x73, 0xc7, 0xd8, 0x25, 0x76, 0xc6, 0xaa, 0xcd, 0x52, 0x37, 0x70, 0xd1, 0x0e, 0xd2, 0xd6, - 0xf8, 0x0e, 0x9b, 0x46, 0x6b, 0x30, 0xc9, 0x43, 0x1c, 0x3d, 0xb0, 0x3f, 0xc3, 0x35, 0xc4, 0x54, - 0x9b, 0x8f, 0xed, 0xd8, 0x9f, 0x61, 0xf5, 0x97, 0x0a, 0x2c, 0x3e, 0xf6, 0x1c, 0xe7, 0xff, 0x99, - 0xc1, 0xfe, 0xe9, 0x18, 0xd4, 0xf2, 0xc7, 0xfe, 0xc6, 0x62, 0x7f, 0x63, 0xb1, 0xbf, 0x8e, 0x16, - 0xbb, 0x48, 0x3f, 0x26, 0x0b, 0x2d, 0xb0, 0xd0, 0x9c, 0x4d, 0x9d, 0xda, 0x9c, 0xfd, 0xea, 0x19, - 0x76, 0xf5, 0x5f, 0x86, 0x60, 0x55, 0xc3, 0xa6, 0xe7, 0x5b, 0xc9, 0x5c, 0x2a, 0x57, 0x8b, 0x97, - 0x69, 0x29, 0x2f, 0xc0, 0x44, 0x2c, 0x38, 0xb1, 0x11, 0x80, 0x68, 0xa8, 0x69, 0xa1, 0x45, 0x18, - 0xa5, 0x32, 0xc6, 0x35, 0xbe, 0xa2, 0x8d, 0x90, 0x9f, 0x4d, 0x0b, 0x9d, 0x07, 0xe0, 0xae, 0x7e, - 0xa4, 0xbb, 0xe3, 0xda, 0x38, 0x1f, 0x69, 0x5a, 0x48, 0x83, 0xc9, 0x8e, 0xe7, 0x38, 0x7a, 0x14, - 0x4e, 0x8c, 0x48, 0xc2, 0x09, 0x62, 0x43, 0xef, 0x7a, 0x7e, 0x92, 0x35, 0x51, 0x38, 0x31, 0x41, - 0x90, 0xf0, 0x1f, 0xea, 0xef, 0x8f, 0xc1, 0x9a, 0x84, 0x8b, 0xdc, 0xf0, 0xe6, 0x2c, 0xa4, 0x72, - 0x32, 0x0b, 0x29, 0xb5, 0x7e, 0x43, 0x27, 0xb7, 0x7e, 0xdf, 0x06, 0x14, 0xf1, 0xd7, 0xca, 0x9a, - 0xdf, 0x99, 0x78, 0x26, 0x5a, 0xbd, 0x4e, 0x0c, 0x98, 0xc0, 0xf4, 0x56, 0x88, 0x85, 0x4a, 0xe1, - 0xcd, 0x59, 0xf4, 0xe1, 0xbc, 0x45, 0x4f, 0x54, 0x5d, 0x46, 0xd2, 0x55, 0x97, 0xab, 0x50, 0xe3, - 0x26, 0xa5, 0x9f, 0xa3, 0x88, 0x1c, 0x84, 0x51, 0xea, 0x20, 0x2c, 0xb0, 0xf9, 0x58, 0x76, 0x22, - 0xff, 0x40, 0x83, 0xa9, 0xb8, 0xba, 0x40, 0xb3, 0x1a, 0xac, 0x5c, 0xf1, 0x66, 0x91, 0x36, 0xee, - 0xfa, 0x86, 0x1b, 0x10, 0x53, 0x96, 0x8a, 0xe4, 0x27, 0xad, 0xc4, 0x2f, 0xf4, 0x29, 0x9c, 0x13, - 0xe4, 0x4c, 0xfa, 0x26, 0x7c, 0x7c, 0x10, 0x13, 0xbe, 0x94, 0x13, 0xf7, 0xd8, 0x9a, 0x17, 0x78, - 0x9f, 0x50, 0xe4, 0x7d, 0xae, 0xc1, 0x64, 0xca, 0xe6, 0x4d, 0x50, 0x9b, 0x37, 0xb1, 0x97, 0x30, - 0x76, 0xb7, 0xa0, 0xda, 0xbf, 0x56, 0x5a, 0xb5, 0x9a, 0x2c, 0xad, 0x5a, 0x4d, 0xc5, 0x10, 0xb4, - 0x68, 0xf5, 0x01, 0x4c, 0x46, 0x77, 0x4d, 0x11, 0x4c, 0x95, 0x22, 0x98, 0xe0, 0xeb, 0x29, 0xb8, - 0x01, 0xa3, 0x24, 0xd8, 0x27, 0x46, 0xb6, 0x4a, 0x53, 0x34, 0xf7, 0x0a, 0x13, 0xd5, 0xa5, 0x5a, - 0x44, 0xb3, 0x08, 0x36, 0x0e, 0x58, 0x6a, 0x3a, 0xc2, 0x9b, 0xf3, 0x05, 0xa7, 0x73, 0xbe, 0x60, - 0xfd, 0x53, 0x98, 0x4c, 0xc2, 0x0a, 0xb2, 0xd5, 0x57, 0x93, 0xd9, 0xea, 0xa2, 0x2c, 0x46, 0xa4, - 0x98, 0x2c, 0x9b, 0x91, 0xc8, 0x68, 0xf7, 0x4d, 0x69, 0x94, 0xbb, 0xfa, 0xc6, 0x94, 0xe6, 0x4c, - 0x69, 0x92, 0x35, 0x42, 0x53, 0xfa, 0xf3, 0x4a, 0x64, 0x4a, 0x85, 0x5c, 0xe4, 0xa6, 0xf4, 0x23, - 0x98, 0xce, 0x98, 0x2a, 0xa9, 0x31, 0x65, 0x9f, 0xe8, 0x1e, 0x35, 0x36, 0x5a, 0x35, 0x6d, 0xca, - 0x72, 0xc2, 0x3d, 0x74, 0x3c, 0xe1, 0x4e, 0x58, 0xae, 0x4a, 0xda, 0x72, 0x7d, 0x0a, 0x2b, 0x69, - 0xc5, 0xd3, 0xbd, 0x96, 0x1e, 0x1e, 0xd8, 0x81, 0x9e, 0x2c, 0x30, 0xcb, 0xb7, 0xaa, 0xa7, 0x14, - 0xf1, 0x51, 0x6b, 0xf7, 0xc0, 0x0e, 0x6e, 0x71, 0xfc, 0x4d, 0x98, 0x3d, 0xc0, 0x86, 0x1f, 0xee, - 0x61, 0x23, 0xd4, 0x2d, 0x1c, 0x1a, 0xb6, 0x13, 0xf0, 0x44, 0xa5, 0x3c, 0x87, 0x37, 0x13, 0x83, - 0x6d, 0x33, 0xa8, 0xfc, 0xa7, 0x69, 0xe4, 0x64, 0x9f, 0xa6, 0xd7, 0x60, 0x3a, 0xc6, 0xc3, 0xc4, - 0x9a, 0xda, 0xe8, 0x71, 0x2d, 0x76, 0x8c, 0xb6, 0xe9, 0xa8, 0xfa, 0xe7, 0x0a, 0x7c, 0x8b, 0xdd, - 0x66, 0x4a, 0xd9, 0x79, 0x9d, 0xb8, 0xaf, 0x2f, 0x5a, 0x36, 0xef, 0x77, 0xb5, 0x28, 0xef, 0x57, - 0x86, 0x6a, 0xc0, 0x04, 0xe0, 0xdf, 0x55, 0xe0, 0x15, 0x39, 0x36, 0x2e, 0x82, 0xb8, 0xff, 0xfd, - 0xf3, 0xf9, 0x18, 0x27, 0xf1, 0xfa, 0xc9, 0xad, 0x9b, 0x36, 0x1d, 0x64, 0x24, 0xfd, 0x27, 0x0a, - 0xac, 0xf4, 0x33, 0xe7, 0xc4, 0x87, 0xb6, 0xec, 0xa0, 0x63, 0x84, 0xe6, 0x81, 0xee, 0x78, 0xa6, - 0xe1, 0x38, 0xbd, 0xda, 0x10, 0xb5, 0xa9, 0x9f, 0x4a, 0x76, 0x2d, 0x3f, 0x4e, 0xa3, 0x9f, 0x5a, - 0xdf, 0xf5, 0xb6, 0xf9, 0x0e, 0xf7, 0xd9, 0x06, 0xcc, 0xd4, 0x2e, 0x1b, 0xc5, 0x2b, 0xea, 0xbf, - 0x0b, 0xab, 0x65, 0x08, 0x04, 0xf6, 0x76, 0x3b, 0x6d, 0x6f, 0xc5, 0x89, 0xfb, 0xc8, 0x0c, 0x50, - 0x5c, 0x11, 0x62, 0xfa, 0x65, 0x4e, 0xd8, 0xde, 0x1f, 0x29, 0xc4, 0xf6, 0xe6, 0x8e, 0x79, 0xd7, - 0xb0, 0x9d, 0xbe, 0x2c, 0x0d, 0x58, 0xf1, 0x29, 0xc3, 0x33, 0xa0, 0x20, 0x7d, 0x8b, 0xd8, 0xb1, - 0x42, 0x4c, 0x3c, 0x9f, 0xfc, 0xa7, 0x0a, 0xa8, 0x79, 0x6b, 0xf7, 0x61, 0xa4, 0x9e, 0x11, 0xe5, - 0x4f, 0xb2, 0x94, 0xbf, 0x57, 0x40, 0x79, 0x19, 0xa6, 0x01, 0x69, 0x7f, 0x4c, 0x94, 0x53, 0x82, - 0x8b, 0xcb, 0xe6, 0xeb, 0x30, 0x63, 0x1a, 0xae, 0x89, 0xe3, 0x2f, 0x00, 0x66, 0xdf, 0xb4, 0x31, - 0x6d, 0x9a, 0x8d, 0x6b, 0xd1, 0x70, 0x52, 0xdf, 0x93, 0x38, 0x4f, 0xa9, 0xef, 0x32, 0x54, 0x03, - 0x1e, 0xf5, 0xd5, 0x58, 0xdd, 0x0b, 0x90, 0x25, 0x6a, 0x8a, 0x82, 0x85, 0xa7, 0x91, 0xb0, 0x42, - 0x3c, 0xc7, 0x96, 0x30, 0x11, 0xa6, 0x94, 0x84, 0xe5, 0x0f, 0x48, 0xef, 0xa7, 0x4f, 0xf9, 0xc0, - 0x12, 0x56, 0x86, 0x69, 0x40, 0xda, 0x2f, 0x8a, 0xc5, 0x21, 0xc6, 0xc5, 0xa9, 0xff, 0x7b, 0x05, - 0x2e, 0x68, 0xb8, 0xed, 0x1d, 0x62, 0xd6, 0x2c, 0xf0, 0x55, 0xc9, 0xe3, 0xa5, 0x1d, 0xa3, 0x4a, - 0xc6, 0x31, 0x52, 0x55, 0x22, 0x2b, 0x45, 0x54, 0xf3, 0xa3, 0xfd, 0xe3, 0x10, 0x5c, 0xe4, 0x47, - 0x60, 0xc7, 0x2e, 0xac, 0x54, 0x4b, 0x0f, 0x68, 0x40, 0x35, 0xad, 0x83, 0xfc, 0x70, 0xd7, 0x0b, - 0xee, 0x6f, 0x80, 0x0d, 0xb5, 0xa9, 0x94, 0xf6, 0xa2, 0x3d, 0x58, 0x8c, 0x9b, 0x01, 0x84, 0x1d, - 0x77, 0xe2, 0x3a, 0xf1, 0x1d, 0x0e, 0x93, 0xa9, 0x13, 0x63, 0xd1, 0xf0, 0xb1, 0x1b, 0x01, 0xd6, - 0xe1, 0xd5, 0xb2, 0xb3, 0x70, 0x3e, 0xff, 0xb3, 0x02, 0xcb, 0x51, 0xe2, 0x48, 0x10, 0xc8, 0xbf, - 0x14, 0xf1, 0xb9, 0x04, 0xb3, 0x76, 0xa0, 0xa7, 0x1b, 0xe0, 0x28, 0x2f, 0xc7, 0xb4, 0x69, 0x3b, - 0xb8, 0x9b, 0x6c, 0x6d, 0x53, 0x57, 0xe0, 0x9c, 0x98, 0x7c, 0x7e, 0xbe, 0x2f, 0xa8, 0xc3, 0x42, - 0x8c, 0x75, 0xba, 0xb6, 0x9d, 0x33, 0xad, 0x2f, 0xe3, 0xa0, 0x6b, 0x30, 0xc9, 0xbb, 0x1b, 0xb1, - 0x95, 0xc8, 0xe5, 0xc6, 0x63, 0x4d, 0x0b, 0x7d, 0x02, 0x67, 0xcd, 0x88, 0xd4, 0xc4, 0xd6, 0x67, - 0x8e, 0xb5, 0x35, 0x8a, 0x51, 0xf4, 0xf7, 0xbe, 0x0f, 0x33, 0x89, 0x8e, 0x45, 0x16, 0x24, 0x0c, - 0x0f, 0x1a, 0x24, 0x4c, 0xf7, 0x41, 0x59, 0x94, 0x70, 0x1e, 0x20, 0x72, 0xf7, 0x6c, 0x8b, 0xba, - 0xc7, 0x15, 0x6d, 0x9c, 0x8f, 0x34, 0x2d, 0xf5, 0x35, 0xa2, 0xcc, 0xd2, 0x4b, 0xe0, 0xd7, 0xf5, - 0xef, 0x43, 0x50, 0xd3, 0x78, 0x3b, 0x2f, 0xa6, 0xa8, 0x83, 0xa7, 0x9b, 0x2f, 0xf3, 0x8a, 0x7e, - 0x1b, 0xe6, 0xd3, 0xb9, 0xd0, 0x9e, 0x6e, 0x87, 0xb8, 0x1d, 0x35, 0x69, 0x64, 0xdb, 0x11, 0xac, - 0xb6, 0xed, 0xe6, 0xd2, 0xa1, 0xbd, 0x66, 0x88, 0xdb, 0xda, 0xd9, 0xc3, 0xdc, 0x58, 0x80, 0xde, - 0x85, 0x11, 0xca, 0xfa, 0x80, 0xdf, 0xa8, 0x38, 0x35, 0xb2, 0x6d, 0x84, 0xc6, 0x6d, 0xc7, 0xdb, - 0xd3, 0xf8, 0x62, 0xb4, 0x05, 0x55, 0x17, 0x1f, 0xe9, 0x7e, 0x97, 0xdf, 0x5c, 0x14, 0xd8, 0x94, - 0x80, 0x4f, 0xba, 0xf8, 0x48, 0xeb, 0xb2, 0x2b, 0x0b, 0xd4, 0x65, 0x58, 0x12, 0xb0, 0x9a, 0x5f, - 0xc4, 0x0f, 0x14, 0x58, 0xd8, 0xe9, 0xb9, 0xe6, 0xce, 0x81, 0xe1, 0x5b, 0x3c, 0x43, 0xca, 0xaf, - 0xe1, 0x22, 0x54, 0x03, 0xaf, 0xeb, 0x9b, 0x58, 0xe7, 0x5d, 0xde, 0xfc, 0x2e, 0xa6, 0xd8, 0xe8, - 0x16, 0x1b, 0x44, 0x4b, 0x30, 0x16, 0x10, 0xe0, 0xe8, 0xfb, 0x36, 0xac, 0x8d, 0xd2, 0xdf, 0x4d, - 0x0b, 0x35, 0xe0, 0x0c, 0x8d, 0x25, 0x2b, 0xa5, 0x01, 0x1e, 0x5d, 0xa7, 0x2e, 0xc1, 0x62, 0x8e, - 0x16, 0x4e, 0xe7, 0xbf, 0x0e, 0xc3, 0x59, 0x32, 0x17, 0x7d, 0x27, 0x5f, 0xa6, 0xac, 0xd4, 0x60, - 0x34, 0xca, 0x48, 0x31, 0x4d, 0x8e, 0x7e, 0x12, 0x45, 0xef, 0xc7, 0xba, 0x71, 0x1e, 0x21, 0xce, - 0x3b, 0x10, 0x9e, 0xe4, 0xf3, 0x50, 0xc3, 0xc7, 0xcd, 0x43, 0xc9, 0x95, 0x30, 0x17, 0xc9, 0x8f, - 0x1e, 0x2f, 0x92, 0xff, 0x88, 0x57, 0x7f, 0xfa, 0x41, 0x35, 0xc5, 0x32, 0x56, 0x8a, 0x65, 0x96, - 0x80, 0xc5, 0xee, 0x31, 0xc5, 0x75, 0x05, 0x46, 0xa3, 0x88, 0x7c, 0x7c, 0x80, 0x88, 0x3c, 0x5a, - 0x9c, 0xcc, 0x26, 0x40, 0x3a, 0x9b, 0x70, 0x13, 0x26, 0x59, 0x6d, 0x8a, 0xf7, 0x72, 0x4f, 0x0c, - 0xd0, 0xcb, 0x3d, 0x41, 0x4b, 0x56, 0xbc, 0x8d, 0xfb, 0x2d, 0xa0, 0xad, 0xd8, 0xfc, 0x75, 0x83, - 0x6e, 0x5b, 0xd8, 0x0d, 0xed, 0xb0, 0x47, 0xb3, 0x81, 0xe3, 0x1a, 0x22, 0x73, 0x9f, 0xd0, 0xa9, - 0x26, 0x9f, 0x41, 0x0f, 0x61, 0x3a, 0x63, 0x1a, 0x78, 0xe6, 0xef, 0xe2, 0x40, 0x46, 0x41, 0xab, - 0xa6, 0x0d, 0x82, 0xba, 0x00, 0x73, 0x69, 0x49, 0xe6, 0x22, 0xfe, 0x27, 0x0a, 0x2c, 0x47, 0xcd, - 0x71, 0x5f, 0x11, 0x0f, 0x4f, 0xfd, 0x63, 0x05, 0xce, 0x89, 0x69, 0xe2, 0xc1, 0xcf, 0xdb, 0xb0, - 0xd0, 0x66, 0xe3, 0xac, 0x2e, 0xa3, 0xdb, 0xae, 0x6e, 0x1a, 0xe6, 0x01, 0xe6, 0x14, 0x9e, 0x6d, - 0x27, 0xa0, 0x9a, 0xee, 0x16, 0x99, 0x42, 0xd7, 0x60, 0x29, 0x07, 0x64, 0x19, 0xa1, 0xb1, 0x67, - 0x04, 0x51, 0x8f, 0xec, 0x42, 0x1a, 0x6e, 0x9b, 0xcf, 0xaa, 0xe7, 0xa0, 0x1e, 0xd1, 0xc3, 0xf9, - 0xf9, 0xa1, 0x17, 0x77, 0x37, 0xa9, 0xbf, 0x37, 0xd4, 0x67, 0x61, 0x6a, 0x9a, 0x53, 0xbb, 0x0e, - 0x33, 0x6e, 0xb7, 0xbd, 0x87, 0x7d, 0xdd, 0x6b, 0xe9, 0xd4, 0x4a, 0x05, 0x94, 0xce, 0x61, 0xad, - 0xca, 0xc6, 0x1f, 0xb5, 0xa8, 0xf1, 0x09, 0x08, 0xb3, 0x23, 0xab, 0x16, 0xd0, 0xd4, 0xc2, 0xb0, - 0x36, 0xc6, 0xcd, 0x5a, 0x80, 0x9a, 0x30, 0xc9, 0x6f, 0x82, 0x1d, 0x55, 0xdc, 0x08, 0x1a, 0x89, - 0x03, 0xcb, 0xf5, 0xd0, 0x93, 0x53, 0xdf, 0x6f, 0xc2, 0xea, 0x0f, 0xa0, 0x2b, 0xb0, 0xc8, 0xf6, - 0x31, 0x3d, 0x37, 0xf4, 0x3d, 0xc7, 0xc1, 0x3e, 0xe5, 0x49, 0x97, 0x7d, 0x29, 0xc6, 0xb5, 0x79, - 0x3a, 0xbd, 0x15, 0xcf, 0x32, 0xbb, 0x48, 0x35, 0xc4, 0xb2, 0x7c, 0x1c, 0x04, 0x3c, 0x21, 0x19, - 0xfd, 0x54, 0x1b, 0x30, 0xcb, 0x2a, 0x5b, 0x04, 0x2e, 0x92, 0x9d, 0xa4, 0x91, 0x56, 0x52, 0x46, - 0x5a, 0x9d, 0x03, 0x94, 0x5c, 0xcf, 0x85, 0xf1, 0x3f, 0x15, 0x98, 0x65, 0xce, 0x7b, 0xd2, 0x4b, - 0x2c, 0x46, 0x83, 0x6e, 0xf0, 0x2a, 0x70, 0x5c, 0xf4, 0xae, 0x6e, 0x5e, 0x28, 0x60, 0x08, 0xc1, - 0x48, 0xb3, 0x66, 0xb4, 0x0e, 0x4c, 0x33, 0x66, 0x89, 0xdc, 0x6b, 0x25, 0x95, 0x7b, 0xdd, 0x82, - 0xe9, 0x43, 0x3b, 0xb0, 0xf7, 0x6c, 0xc7, 0x0e, 0x7b, 0xcc, 0x12, 0x95, 0xa7, 0x0b, 0xab, 0x7d, - 0x10, 0x6a, 0x86, 0xd6, 0x60, 0x92, 0x7f, 0xc2, 0x74, 0xd7, 0xe0, 0x16, 0x77, 0x5c, 0x9b, 0xe0, - 0x63, 0x0f, 0x8d, 0x36, 0x26, 0x5c, 0x48, 0x1e, 0x97, 0x73, 0xe1, 0x87, 0x94, 0x0b, 0x01, 0x0e, - 0x9f, 0x74, 0x71, 0x17, 0x0f, 0xc0, 0x85, 0xec, 0x4e, 0x43, 0xb9, 0x9d, 0xd2, 0x8c, 0xaa, 0x1c, - 0x93, 0x51, 0x8c, 0xce, 0x3e, 0x41, 0x9c, 0xce, 0x1f, 0x2b, 0x30, 0x17, 0xc9, 0xfd, 0x57, 0x86, - 0xd4, 0x47, 0x30, 0x9f, 0xa1, 0x89, 0x6b, 0xe1, 0x15, 0x58, 0xec, 0xf8, 0x9e, 0x89, 0x83, 0xc0, - 0x76, 0xf7, 0x75, 0xfa, 0xf0, 0x8b, 0xd9, 0x01, 0xa2, 0x8c, 0x15, 0x22, 0xf3, 0xfd, 0x69, 0x0a, - 0x49, 0x8d, 0x40, 0xa0, 0x7e, 0xa1, 0xc0, 0xf9, 0x7b, 0x38, 0xd4, 0xfa, 0xcf, 0xc0, 0x1e, 0xe0, - 0x20, 0x30, 0xf6, 0x71, 0xec, 0xb2, 0xdc, 0x84, 0x11, 0x5a, 0x00, 0x62, 0x88, 0x26, 0x36, 0x5f, - 0x2b, 0xa0, 0x36, 0x81, 0x82, 0x56, 0x87, 0x34, 0x0e, 0x36, 0x00, 0x53, 0x88, 0x8d, 0x59, 0x29, - 0xa2, 0x82, 0x1f, 0xf0, 0x39, 0x54, 0x19, 0xd7, 0xdb, 0x7c, 0x86, 0x93, 0xf3, 0x51, 0x61, 0x72, - 0x52, 0x8e, 0xb0, 0x41, 0x75, 0x33, 0x1a, 0x65, 0x89, 0xc8, 0xa9, 0x20, 0x39, 0x56, 0x77, 0x00, - 0xe5, 0x17, 0x25, 0x93, 0x8d, 0xc3, 0x2c, 0xd9, 0xf8, 0xdd, 0x74, 0xb2, 0xf1, 0x52, 0x39, 0x83, - 0x62, 0x62, 0x12, 0x89, 0xc6, 0x36, 0xac, 0xde, 0xc3, 0xe1, 0xf6, 0xfd, 0x27, 0x92, 0xbb, 0x68, - 0x02, 0x30, 0x95, 0x76, 0x5b, 0x5e, 0xc4, 0x80, 0x01, 0xb6, 0x23, 0x82, 0x44, 0xcd, 0x24, 0x15, - 0x3d, 0xf2, 0x57, 0xa0, 0xbe, 0x80, 0x35, 0xc9, 0x76, 0x9c, 0xe9, 0x3b, 0x30, 0x9b, 0x78, 0x20, - 0x48, 0x8b, 0x91, 0xd1, 0xb6, 0xaf, 0x0e, 0xb6, 0xad, 0x36, 0xe3, 0xa7, 0x07, 0x02, 0xf5, 0xdf, - 0x14, 0x98, 0xd3, 0xb0, 0xd1, 0xe9, 0x38, 0x2c, 0x22, 0x8a, 0x4f, 0xb7, 0x00, 0x23, 0x3c, 0xb3, - 0xcf, 0xbe, 0x73, 0xfc, 0x97, 0xfc, 0x3d, 0x81, 0xf8, 0x23, 0x5d, 0x39, 0xad, 0x3f, 0x7a, 0xb2, - 0xe0, 0x42, 0x5d, 0x84, 0xf9, 0xcc, 0xd1, 0xb8, 0x35, 0xf9, 0x99, 0x02, 0xcb, 0x1a, 0x6e, 0xf9, - 0x38, 0x38, 0x88, 0x8b, 0x1c, 0x84, 0x1b, 0x5f, 0xc1, 0xb3, 0xab, 0x2b, 0x70, 0x4e, 0x4c, 0x2a, - 0x3f, 0xcb, 0x35, 0x58, 0xdc, 0xf2, 0xba, 0x2e, 0x11, 0x9e, 0xac, 0x80, 0xae, 0x00, 0xb4, 0x3c, - 0xdf, 0xc4, 0x77, 0x71, 0x68, 0x1e, 0xf0, 0x8c, 0x6d, 0x62, 0x44, 0x35, 0xa0, 0x96, 0x07, 0xe5, - 0xc2, 0x76, 0x07, 0x46, 0xb1, 0x1b, 0xd2, 0x5a, 0x2e, 0x13, 0xb1, 0x37, 0x0a, 0x44, 0x8c, 0x7b, - 0x21, 0xdb, 0xf7, 0x9f, 0x50, 0x5c, 0xbc, 0x5e, 0xcb, 0x61, 0xd5, 0x9f, 0x0d, 0xc1, 0x82, 0x86, - 0x0d, 0x4b, 0x40, 0xdd, 0x26, 0x9c, 0x89, 0xbb, 0x23, 0xaa, 0x9b, 0x2b, 0x45, 0xbe, 0xc5, 0xfd, - 0x27, 0xd4, 0xea, 0xd2, 0xb5, 0xb2, 0x50, 0x2c, 0x1f, 0xcc, 0x55, 0x44, 0xc1, 0xdc, 0x2e, 0xd4, - 0x6c, 0x97, 0xac, 0xb0, 0x0f, 0xb1, 0x8e, 0xdd, 0xd8, 0x82, 0x0d, 0xd8, 0x51, 0x36, 0x1f, 0x03, - 0xdf, 0x71, 0x23, 0x53, 0xd4, 0xb4, 0x88, 0x60, 0x74, 0x08, 0x12, 0x5a, 0x93, 0x1e, 0xa6, 0x84, - 0x8d, 0x91, 0x81, 0x1d, 0xfb, 0x33, 0x8c, 0x5e, 0x85, 0x69, 0xda, 0x17, 0x41, 0x57, 0xb0, 0xf2, - 0xfd, 0x08, 0x2d, 0xdf, 0xd3, 0x76, 0x89, 0xc7, 0xc6, 0x3e, 0x66, 0xdd, 0x7c, 0x7f, 0x3b, 0x04, - 0x8b, 0x39, 0x5e, 0xf1, 0xeb, 0x38, 0x09, 0xb3, 0x84, 0xf6, 0x62, 0xe8, 0x74, 0xf6, 0x02, 0x7d, - 0x0f, 0x16, 0x72, 0x48, 0xa3, 0x1c, 0xe1, 0x71, 0x0d, 0xe0, 0x5c, 0x16, 0x3b, 0x4d, 0x11, 0x0a, - 0xd8, 0x75, 0x46, 0xc4, 0xae, 0x5f, 0x28, 0xb0, 0xf8, 0xb8, 0xeb, 0xef, 0xe3, 0xaf, 0xb7, 0x6c, - 0xa9, 0x75, 0xa8, 0xe5, 0x8f, 0xc9, 0x95, 0xff, 0xcb, 0x21, 0x58, 0x7c, 0x80, 0xbf, 0xf6, 0x3c, - 0xf8, 0xdf, 0xd1, 0xaf, 0xdb, 0x50, 0xcb, 0xf3, 0x8a, 0xeb, 0x97, 0x00, 0x87, 0x22, 0xc2, 0xf1, - 0xb9, 0x02, 0xe7, 0x1e, 0x7a, 0xa1, 0xdd, 0xea, 0x91, 0x70, 0xdb, 0x3b, 0xc4, 0xfe, 0x03, 0x83, - 0xc4, 0xd2, 0x31, 0xd7, 0xbf, 0x07, 0x0b, 0x2d, 0x3e, 0xa3, 0xb7, 0xe9, 0x94, 0x9e, 0x72, 0xd8, - 0x8a, 0xf4, 0x23, 0x8d, 0x8e, 0xf9, 0x6c, 0x73, 0xad, 0xfc, 0x60, 0xa0, 0x5e, 0x80, 0xf3, 0x05, - 0x14, 0x70, 0xa1, 0x30, 0x60, 0xf9, 0x1e, 0x0e, 0xb7, 0x7c, 0x2f, 0x08, 0xf8, 0xad, 0xa4, 0x3e, - 0x6e, 0xa9, 0xc0, 0x4f, 0xc9, 0x04, 0x7e, 0x17, 0xa1, 0x1a, 0x1a, 0xfe, 0x3e, 0x0e, 0xe3, 0x5b, - 0x66, 0x9f, 0xb9, 0x29, 0x36, 0xca, 0xf1, 0xa9, 0xbf, 0xac, 0xc0, 0x39, 0xf1, 0x1e, 0x9c, 0x9f, - 0x6d, 0x82, 0x87, 0x98, 0x86, 0xbd, 0x1e, 0x0b, 0x43, 0xf9, 0xf1, 0xef, 0xc9, 0x1c, 0xc4, 0x42, - 0x74, 0xd4, 0xf9, 0x0e, 0x6e, 0xf7, 0xa8, 0x03, 0xc8, 0xbe, 0x30, 0x93, 0x61, 0x62, 0x08, 0x7d, - 0xae, 0xc0, 0x7c, 0x8b, 0x16, 0xc4, 0x74, 0xd3, 0xe8, 0x06, 0xb8, 0xbf, 0x2d, 0xb3, 0x77, 0x0f, - 0x4e, 0xb6, 0x2d, 0xab, 0xb1, 0x6d, 0x11, 0x8c, 0xa9, 0xcd, 0x51, 0x2b, 0x37, 0x51, 0xef, 0xc0, - 0x6c, 0x8e, 0x4a, 0x81, 0x7b, 0x7a, 0x27, 0xed, 0x9e, 0x6e, 0x14, 0x88, 0x43, 0x96, 0x26, 0x7e, - 0x79, 0x49, 0x1f, 0xb5, 0xde, 0x81, 0xc5, 0x02, 0x02, 0x05, 0xfb, 0xde, 0x4c, 0xee, 0x5b, 0x2d, - 0x4c, 0xf7, 0xde, 0xc3, 0x61, 0xbf, 0xb8, 0x48, 0xf1, 0x26, 0xbd, 0xe2, 0xff, 0x50, 0x60, 0x9d, - 0x97, 0xf3, 0x72, 0x4c, 0xcb, 0xd5, 0x21, 0x24, 0x91, 0xd9, 0x60, 0x52, 0x86, 0x9e, 0x32, 0x21, - 0x8a, 0xfb, 0x2e, 0xa2, 0x5c, 0xf5, 0xe0, 0x4c, 0xe3, 0xdd, 0x16, 0x53, 0x61, 0xe2, 0x57, 0x80, - 0x5e, 0x81, 0xa9, 0x16, 0x71, 0x80, 0x1e, 0x62, 0xe6, 0x4b, 0xf1, 0xf2, 0x53, 0x7a, 0x50, 0xf5, - 0xe1, 0xf5, 0x01, 0xce, 0x1a, 0xbb, 0x4b, 0xc3, 0x91, 0x3f, 0x7e, 0xb2, 0x6b, 0xa5, 0xd0, 0xea, - 0xbb, 0xf4, 0xd9, 0x59, 0xa4, 0xd8, 0xf4, 0x23, 0x39, 0x40, 0x6e, 0x4c, 0x0d, 0xe9, 0xbb, 0xad, - 0x34, 0x58, 0xec, 0x38, 0xcc, 0xf7, 0xcb, 0x2e, 0x51, 0x22, 0xa6, 0xcb, 0xfb, 0xa8, 0x86, 0xb5, - 0x7e, 0x4d, 0x66, 0x87, 0x65, 0x61, 0xba, 0x2e, 0xcd, 0x8b, 0x47, 0x0f, 0x23, 0x79, 0x0a, 0x89, - 0xe5, 0x87, 0xa6, 0xf8, 0x28, 0xcb, 0x20, 0xa9, 0x4d, 0x58, 0xd0, 0x8c, 0x10, 0x3b, 0x76, 0xdb, - 0x0e, 0x3f, 0xee, 0x58, 0x89, 0x44, 0xde, 0x06, 0x9c, 0xb1, 0x8c, 0xd0, 0xe0, 0xcc, 0x58, 0x2e, - 0x6a, 0xc4, 0xbc, 0xe5, 0xf6, 0x34, 0xba, 0x50, 0xfd, 0x08, 0x16, 0x73, 0xa8, 0xf8, 0x01, 0x8e, - 0x8b, 0x6b, 0xf3, 0x9f, 0x1a, 0x00, 0xdc, 0x29, 0xbd, 0xf5, 0xb8, 0x89, 0xbe, 0xaf, 0xc0, 0x82, - 0xf8, 0xdd, 0x39, 0xba, 0x72, 0xb2, 0x7f, 0x14, 0x51, 0x7f, 0xef, 0xd8, 0x70, 0xfc, 0x2c, 0x7f, - 0xa4, 0xc0, 0x62, 0xc1, 0x3f, 0x26, 0x40, 0xef, 0x95, 0x3d, 0xea, 0x2f, 0xa2, 0xe6, 0xea, 0xf1, - 0x01, 0x39, 0x39, 0x3f, 0x55, 0x60, 0xb5, 0xec, 0x71, 0x3e, 0xfa, 0xee, 0x69, 0xff, 0xd9, 0x40, - 0xfd, 0xd6, 0x29, 0x30, 0x70, 0x4a, 0xc9, 0x25, 0x8a, 0x9f, 0xdd, 0x4b, 0x2e, 0x51, 0xfa, 0xdc, - 0x5f, 0x72, 0x89, 0x25, 0xef, 0xfb, 0xff, 0x4c, 0x81, 0x7a, 0xf1, 0xe3, 0x74, 0x54, 0xdc, 0x15, - 0x56, 0xfa, 0x68, 0xbf, 0xfe, 0xfe, 0x89, 0x60, 0x39, 0x5d, 0x3f, 0x56, 0x60, 0xa9, 0xf0, 0xe9, - 0x39, 0xba, 0x56, 0x88, 0xba, 0xec, 0xe5, 0x7b, 0xfd, 0xfa, 0x49, 0x40, 0x39, 0x51, 0x2e, 0x4c, - 0xa5, 0xde, 0x24, 0xa3, 0x37, 0x0b, 0x91, 0x89, 0x9e, 0x3e, 0xd7, 0x1b, 0x83, 0x2e, 0xe7, 0xfb, - 0x7d, 0xae, 0xc0, 0x59, 0xc1, 0xc3, 0x5e, 0xf4, 0xb6, 0xfc, 0xb6, 0x85, 0x4f, 0x89, 0xeb, 0xef, - 0x1c, 0x0f, 0x88, 0x93, 0x10, 0xc2, 0x74, 0xe6, 0x11, 0x2d, 0xda, 0x90, 0xb9, 0x1f, 0x82, 0x4a, - 0x48, 0xfd, 0xad, 0xc1, 0x01, 0xf8, 0xae, 0x47, 0x30, 0x93, 0x7d, 0x09, 0x86, 0x8a, 0xb1, 0x14, - 0xbc, 0x95, 0xab, 0x5f, 0x3e, 0x06, 0x44, 0x42, 0xec, 0x0a, 0xfb, 0x1d, 0x25, 0x62, 0x57, 0xf6, - 0x1a, 0xa5, 0x7e, 0x8a, 0xf6, 0x4a, 0xf4, 0x97, 0x0a, 0x9c, 0x93, 0xb5, 0x43, 0xa2, 0x1b, 0x27, - 0xec, 0xa2, 0x64, 0xa4, 0x7d, 0x70, 0xaa, 0x1e, 0x4c, 0xce, 0xb2, 0x82, 0x9e, 0x41, 0x29, 0xcb, - 0xe4, 0x1d, 0x8b, 0x52, 0x96, 0x95, 0xb4, 0x28, 0x26, 0xee, 0x51, 0xd0, 0x90, 0x5d, 0x7a, 0x8f, - 0xc5, 0xad, 0xf0, 0xa5, 0xf7, 0x28, 0xeb, 0xff, 0x4e, 0xdc, 0xa3, 0xb0, 0x6d, 0xaf, 0xfc, 0x1e, - 0x65, 0xad, 0x83, 0xe5, 0xf7, 0x28, 0xed, 0x15, 0x4c, 0xde, 0x63, 0xbe, 0x33, 0xaf, 0xfc, 0x1e, - 0x0b, 0xfb, 0x02, 0xcb, 0xef, 0xb1, 0xb8, 0x11, 0x10, 0xfd, 0x05, 0xcd, 0x6d, 0x16, 0xb6, 0xdc, - 0xa1, 0xf7, 0x8f, 0x75, 0xe6, 0x74, 0xd3, 0x5f, 0xfd, 0xc6, 0xc9, 0x80, 0x53, 0xa4, 0x15, 0xf6, - 0x9b, 0x4a, 0x49, 0x2b, 0xeb, 0x78, 0x95, 0x92, 0x56, 0xde, 0xe2, 0xfa, 0xd7, 0x0a, 0xac, 0xc8, - 0x1b, 0xcd, 0xd0, 0x77, 0x24, 0x1b, 0x0c, 0xd0, 0x6d, 0x57, 0xbf, 0x79, 0x62, 0x78, 0x4e, 0xe3, - 0x0f, 0x15, 0xa8, 0x15, 0xb5, 0x1b, 0xa2, 0xab, 0x12, 0xec, 0xd2, 0xbe, 0xca, 0xfa, 0xb5, 0x13, - 0x40, 0x72, 0x8a, 0xbe, 0x50, 0x60, 0x4e, 0xd4, 0xb4, 0x86, 0x8a, 0xbf, 0x9c, 0x92, 0x16, 0xbd, - 0xfa, 0xbb, 0xc7, 0x84, 0xe2, 0x54, 0xfc, 0x15, 0xfd, 0xff, 0x50, 0x92, 0xa6, 0x2c, 0xf4, 0x41, - 0x89, 0x6c, 0xc8, 0x3b, 0xea, 0xea, 0xdf, 0x39, 0x29, 0x38, 0x27, 0xf0, 0x33, 0x98, 0xcd, 0xf5, - 0x27, 0xa1, 0xcb, 0x12, 0xa4, 0xe2, 0xb6, 0xb1, 0xfa, 0xe6, 0x71, 0x40, 0xfa, 0xde, 0x48, 0xa6, - 0xe3, 0x48, 0xe2, 0x8d, 0x88, 0xfb, 0xa4, 0x24, 0xde, 0x48, 0x41, 0x33, 0x13, 0x7a, 0x06, 0x93, - 0xc9, 0x0e, 0x10, 0xf4, 0x6d, 0x29, 0x86, 0x4c, 0xcb, 0x53, 0xfd, 0xcd, 0x01, 0x57, 0x27, 0xa4, - 0x50, 0xd4, 0xc2, 0x21, 0x91, 0x42, 0x49, 0x17, 0x8a, 0x44, 0x0a, 0xa5, 0x7d, 0x22, 0xc4, 0xf3, - 0x14, 0x74, 0x66, 0x48, 0x3c, 0xcf, 0xe2, 0x36, 0x8f, 0xfa, 0x3b, 0xc7, 0x03, 0x8a, 0x9f, 0xaa, - 0x40, 0xbf, 0xd1, 0x01, 0x5d, 0x2a, 0xc4, 0x91, 0xeb, 0x9e, 0xa8, 0xbf, 0x31, 0xd0, 0xda, 0xfe, - 0x36, 0xfd, 0x4e, 0x02, 0xc9, 0x36, 0xb9, 0xee, 0x0a, 0xc9, 0x36, 0xf9, 0xd6, 0x04, 0xb6, 0x4d, - 0xd4, 0x08, 0x20, 0xdd, 0x26, 0xd3, 0xbe, 0x20, 0xdd, 0x26, 0xdb, 0x59, 0x40, 0x22, 0x94, 0x54, - 0x11, 0x5f, 0x12, 0xa1, 0x88, 0x1a, 0x10, 0x24, 0x11, 0x8a, 0xb8, 0x37, 0xe0, 0xfb, 0xec, 0x5f, - 0x0b, 0x09, 0x0a, 0xbd, 0x92, 0x50, 0x56, 0xda, 0x14, 0x20, 0x09, 0x65, 0x4b, 0xca, 0xf8, 0xc4, - 0x81, 0x29, 0xac, 0x3b, 0x4b, 0x1c, 0x98, 0xb2, 0xd2, 0xb8, 0xc4, 0x81, 0x29, 0x2f, 0x73, 0xbb, - 0x30, 0x95, 0xaa, 0xda, 0x4a, 0x2e, 0x44, 0x54, 0xb8, 0x96, 0x5c, 0x88, 0xb0, 0x18, 0x4c, 0xcd, - 0x87, 0xa8, 0xc2, 0x8a, 0x64, 0xe1, 0x5f, 0x61, 0xed, 0x58, 0x62, 0x3e, 0x64, 0x65, 0x5c, 0x12, - 0xbf, 0x65, 0x6b, 0xb1, 0x92, 0xf8, 0xad, 0xa0, 0xe2, 0x2b, 0x89, 0xdf, 0x0a, 0x0b, 0xbd, 0x21, - 0x4c, 0x67, 0x8a, 0x8e, 0x92, 0x0f, 0x84, 0xb8, 0x94, 0x2b, 0xf9, 0x40, 0x14, 0xd5, 0x33, 0x49, - 0xb8, 0x9a, 0x29, 0x6a, 0xc9, 0xc2, 0x55, 0x71, 0x99, 0x4f, 0x16, 0xae, 0x16, 0x54, 0xcc, 0xc8, - 0xc6, 0xd9, 0x22, 0x90, 0x64, 0xe3, 0x82, 0xda, 0x9a, 0x64, 0xe3, 0xc2, 0x0a, 0xd3, 0x1f, 0x2a, - 0x30, 0x2f, 0xac, 0xdb, 0xa0, 0x62, 0x89, 0x91, 0x55, 0x9a, 0xea, 0x57, 0x8e, 0x0b, 0x96, 0x90, - 0x77, 0x51, 0xd5, 0x43, 0x22, 0xef, 0x92, 0x72, 0x92, 0x44, 0xde, 0xa5, 0x05, 0xa2, 0x2f, 0x95, - 0xf8, 0x55, 0x53, 0x71, 0x7a, 0x1d, 0xdd, 0x2a, 0x8b, 0x37, 0x4a, 0xcb, 0x10, 0xf5, 0xdb, 0xa7, - 0x41, 0x91, 0x4a, 0xe9, 0x24, 0xf3, 0xeb, 0xf2, 0x94, 0x8e, 0x20, 0x81, 0x2f, 0x4f, 0xe9, 0x08, - 0x53, 0xf7, 0x44, 0x33, 0xd3, 0x49, 0x71, 0x99, 0x66, 0x0a, 0x33, 0xf1, 0x32, 0xcd, 0x14, 0xe7, - 0xdb, 0x6f, 0x5f, 0xfb, 0xcd, 0xf7, 0xf6, 0xed, 0xf0, 0xa0, 0xbb, 0xd7, 0x30, 0xbd, 0xf6, 0x46, - 0xea, 0xdf, 0x86, 0x37, 0xf6, 0xb1, 0xcb, 0xfe, 0x87, 0x7c, 0xe2, 0x9f, 0xd8, 0xbf, 0xcf, 0xff, - 0x3c, 0xbc, 0xbc, 0x37, 0x42, 0xe7, 0xde, 0xfe, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xb3, 0x6b, - 0x68, 0x49, 0xf0, 0x5e, 0x00, 0x00, + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x3c, 0x4b, 0x6c, 0x1c, 0x47, + 0x76, 0xe8, 0x19, 0xf1, 0xf7, 0x48, 0x0e, 0xc9, 0x12, 0x3f, 0xc3, 0xa1, 0x44, 0x91, 0xbd, 0x96, + 0x44, 0xcb, 0xeb, 0xa1, 0x45, 0xd9, 0xfa, 0x59, 0x5e, 0xad, 0x44, 0x4a, 0xf2, 0x38, 0xfa, 0x36, + 0x69, 0x39, 0x5f, 0xf7, 0x36, 0xa7, 0x6b, 0xc8, 0x8e, 0x7a, 0xba, 0x47, 0xdd, 0x3d, 0xa4, 0xe8, + 0x43, 0xe0, 0xc4, 0x41, 0x80, 0x2c, 0x82, 0xec, 0x66, 0x91, 0x04, 0x01, 0x02, 0x04, 0x08, 0x36, + 0xc0, 0x62, 0x8d, 0xdc, 0x12, 0x20, 0x87, 0x24, 0xa7, 0x5c, 0x72, 0xcc, 0x35, 0xf7, 0xdd, 0x43, + 0x02, 0xe4, 0xb6, 0xe7, 0x20, 0xa8, 0x4f, 0xf7, 0xf4, 0xa7, 0xba, 0x7a, 0x86, 0x0c, 0x22, 0xaf, + 0xe3, 0xdb, 0x74, 0x55, 0xbd, 0x57, 0xaf, 0x5e, 0xbd, 0xf7, 0xfa, 0xfd, 0x7a, 0xe0, 0x7c, 0x77, + 0x17, 0x7b, 0xeb, 0x4d, 0xc3, 0xc4, 0x4e, 0x13, 0xaf, 0xef, 0x5b, 0x7e, 0xe0, 0x7a, 0x47, 0xeb, + 0x07, 0x97, 0xd7, 0x7d, 0xec, 0x1d, 0x58, 0x4d, 0x5c, 0xef, 0x78, 0x6e, 0xe0, 0xa2, 0x05, 0xb2, + 0xac, 0xce, 0x97, 0xd5, 0xf9, 0xb2, 0xfa, 0xc1, 0xe5, 0xda, 0xf2, 0x9e, 0xeb, 0xee, 0xd9, 0x78, + 0x9d, 0x2e, 0xdb, 0xed, 0xb6, 0xd6, 0xcd, 0xae, 0x67, 0x04, 0x96, 0xeb, 0x30, 0xc0, 0xda, 0xb9, + 0xf4, 0x7c, 0x60, 0xb5, 0xb1, 0x1f, 0x18, 0xed, 0x0e, 0x5f, 0x90, 0x41, 0x70, 0xe8, 0x19, 0x9d, + 0x0e, 0xf6, 0x7c, 0x3e, 0xbf, 0x92, 0x20, 0xd0, 0xe8, 0x58, 0x84, 0xb8, 0xa6, 0xdb, 0x6e, 0x47, + 0x5b, 0xac, 0x8a, 0x56, 0x84, 0x24, 0x72, 0x2a, 0x44, 0x4b, 0x5e, 0x76, 0x71, 0xb4, 0x40, 0x15, + 0x2d, 0x08, 0x0c, 0xff, 0x85, 0x6d, 0xf9, 0x81, 0x6c, 0xcd, 0xa1, 0xeb, 0xbd, 0x68, 0xd9, 0xee, + 0x21, 0x5f, 0x73, 0x49, 0xb4, 0x86, 0xb3, 0x52, 0x4f, 0xad, 0x5d, 0x2b, 0x5a, 0x8b, 0x3d, 0xbe, + 0xf2, 0x5b, 0xc9, 0x95, 0x66, 0xdb, 0x72, 0x28, 0x17, 0xec, 0xae, 0x1f, 0x14, 0x2d, 0x4a, 0x32, + 0x62, 0x55, 0xbc, 0xe8, 0x65, 0x17, 0x77, 0xf9, 0x55, 0xd7, 0x2e, 0x8a, 0x97, 0x78, 0xb8, 0x63, + 0x5b, 0xcd, 0xf8, 0xd5, 0x26, 0x6f, 0xc6, 0xdf, 0x37, 0x3c, 0x6c, 0x92, 0x95, 0x86, 0x13, 0xee, + 0xf6, 0x46, 0xce, 0x8a, 0x24, 0x4d, 0xe7, 0x73, 0x56, 0x25, 0xd9, 0xa5, 0xfe, 0x6c, 0x18, 0xce, + 0x6e, 0x07, 0x86, 0x17, 0x7c, 0xc2, 0xc7, 0xef, 0xbd, 0xc2, 0xcd, 0x2e, 0xa1, 0x47, 0xc3, 0x2f, + 0xbb, 0xd8, 0x0f, 0xd0, 0x43, 0x18, 0xf1, 0xd8, 0xcf, 0xaa, 0xb2, 0xa2, 0xac, 0x8d, 0x6f, 0x6c, + 0xd4, 0x13, 0x62, 0x6b, 0x74, 0xac, 0xfa, 0xc1, 0xe5, 0xba, 0x14, 0x89, 0x16, 0xa2, 0x40, 0x4b, + 0x30, 0x66, 0xba, 0x6d, 0xc3, 0x72, 0x74, 0xcb, 0xac, 0x96, 0x56, 0x94, 0xb5, 0x31, 0x6d, 0x94, + 0x0d, 0x34, 0x4c, 0xf4, 0x9b, 0x30, 0xd7, 0x31, 0x3c, 0xec, 0x04, 0x3a, 0x0e, 0x11, 0xe8, 0x96, + 0xd3, 0x72, 0xab, 0x65, 0xba, 0xf1, 0x9a, 0x70, 0xe3, 0xa7, 0x14, 0x22, 0xda, 0xb1, 0xe1, 0xb4, + 0x5c, 0xed, 0x74, 0x27, 0x3b, 0x88, 0xaa, 0x30, 0x62, 0x04, 0x01, 0x6e, 0x77, 0x82, 0xea, 0xa9, + 0x15, 0x65, 0x6d, 0x48, 0x0b, 0x1f, 0xd1, 0x26, 0x4c, 0xe1, 0x57, 0x1d, 0x8b, 0xa9, 0x98, 0x4e, + 0x74, 0xa9, 0x3a, 0x44, 0x77, 0xac, 0xd5, 0x99, 0x1e, 0xd5, 0x43, 0x3d, 0xaa, 0xef, 0x84, 0x8a, + 0xa6, 0x55, 0x7a, 0x20, 0x64, 0x10, 0xb5, 0x60, 0xb1, 0xe9, 0x3a, 0x81, 0xe5, 0x74, 0xb1, 0x6e, + 0xf8, 0xba, 0x83, 0x0f, 0x75, 0xcb, 0xb1, 0x02, 0xcb, 0x08, 0x5c, 0xaf, 0x3a, 0xbc, 0xa2, 0xac, + 0x55, 0x36, 0xde, 0x12, 0x1e, 0x60, 0x93, 0x43, 0xdd, 0xf1, 0x1f, 0xe3, 0xc3, 0x46, 0x08, 0xa2, + 0xcd, 0x37, 0x85, 0xe3, 0xa8, 0x01, 0x33, 0xe1, 0x8c, 0xa9, 0xb7, 0x0c, 0xcb, 0xee, 0x7a, 0xb8, + 0x3a, 0x42, 0xc9, 0x3d, 0x23, 0xc4, 0x7f, 0x9f, 0xad, 0xd1, 0xa6, 0x23, 0x30, 0x3e, 0x82, 0x34, + 0x98, 0xb7, 0x0d, 0x3f, 0xd0, 0x9b, 0x6e, 0xbb, 0x63, 0x63, 0x7a, 0x78, 0x0f, 0xfb, 0x5d, 0x3b, + 0xa8, 0x8e, 0x4a, 0xf0, 0x3d, 0x35, 0x8e, 0x6c, 0xd7, 0x30, 0xb5, 0x59, 0x02, 0xbb, 0x19, 0x81, + 0x6a, 0x14, 0x12, 0xfd, 0x2a, 0x2c, 0xb5, 0x2c, 0xcf, 0x0f, 0x74, 0x13, 0x37, 0x2d, 0x9f, 0xf2, + 0xd3, 0xf0, 0x5f, 0xe8, 0xbb, 0x46, 0xf3, 0x85, 0xdb, 0x6a, 0x55, 0xc7, 0x28, 0xe2, 0xc5, 0x0c, + 0x5f, 0xb7, 0xb8, 0x81, 0xd3, 0xaa, 0x14, 0x7a, 0x8b, 0x03, 0xef, 0x18, 0xfe, 0x8b, 0xbb, 0x0c, + 0x14, 0x1d, 0xc0, 0x74, 0xc7, 0xf0, 0x02, 0x8b, 0xd2, 0xd9, 0x74, 0x9d, 0x96, 0xb5, 0x57, 0x85, + 0x95, 0xf2, 0xda, 0xf8, 0xc6, 0xaf, 0xd4, 0x73, 0x0c, 0xa9, 0x5c, 0x2a, 0x89, 0xe8, 0x30, 0x74, + 0x9b, 0x14, 0xdb, 0x3d, 0x27, 0xf0, 0x8e, 0xb4, 0xa9, 0x4e, 0x72, 0xb4, 0x76, 0x17, 0x66, 0x45, + 0x0b, 0xd1, 0x34, 0x94, 0x5f, 0xe0, 0x23, 0xaa, 0x14, 0x63, 0x1a, 0xf9, 0x89, 0x66, 0x61, 0xe8, + 0xc0, 0xb0, 0xbb, 0x98, 0x0b, 0x36, 0x7b, 0xb8, 0x59, 0xba, 0xae, 0xa8, 0xd7, 0x60, 0x39, 0x8f, + 0x14, 0xbf, 0xe3, 0x3a, 0x3e, 0x46, 0x73, 0x30, 0xec, 0x75, 0xa9, 0x56, 0x30, 0x84, 0x43, 0x5e, + 0xd7, 0x69, 0x98, 0xea, 0xdf, 0x94, 0x60, 0x79, 0xdb, 0xda, 0x73, 0x0c, 0x3b, 0x57, 0x41, 0x1f, + 0xa5, 0x15, 0xf4, 0x8a, 0x58, 0x41, 0xa5, 0x58, 0xfa, 0xd4, 0xd0, 0x16, 0x2c, 0xe1, 0x57, 0x01, + 0xf6, 0x1c, 0xc3, 0x8e, 0x0c, 0x6f, 0x4f, 0x59, 0xb9, 0x9e, 0x5e, 0x10, 0xee, 0x9f, 0xdd, 0x79, + 0x31, 0x44, 0x95, 0x99, 0x42, 0x75, 0x38, 0xdd, 0xdc, 0xb7, 0x6c, 0xb3, 0xb7, 0x89, 0xeb, 0xd8, + 0x47, 0x54, 0x6f, 0x47, 0xb5, 0x19, 0x3a, 0x15, 0x02, 0x3d, 0x71, 0xec, 0x23, 0x75, 0x15, 0xce, + 0xe5, 0x9e, 0x8f, 0x31, 0x58, 0xfd, 0x79, 0x09, 0x2e, 0xf2, 0x35, 0x56, 0xb0, 0x2f, 0xb7, 0x79, + 0xcf, 0xd3, 0x2c, 0xbd, 0x25, 0x63, 0x69, 0x11, 0xba, 0x3e, 0x79, 0xfb, 0xb9, 0x22, 0x10, 0xf0, + 0x32, 0x15, 0xf0, 0x8f, 0xf3, 0x05, 0xbc, 0x3f, 0x12, 0xfe, 0x0f, 0x45, 0xfd, 0x0e, 0xac, 0x15, + 0x13, 0x25, 0x17, 0xfa, 0xef, 0x2b, 0x70, 0x56, 0xc3, 0x3e, 0x3e, 0xf1, 0x4b, 0x49, 0x8a, 0xa4, + 0xbf, 0x6b, 0x21, 0xaa, 0x9b, 0x87, 0x46, 0x7e, 0x8a, 0x2f, 0x4b, 0xb0, 0xba, 0x83, 0xbd, 0xb6, + 0xe5, 0x18, 0x01, 0xce, 0x3d, 0xc9, 0xd3, 0xf4, 0x49, 0xae, 0x0a, 0x4f, 0x52, 0x88, 0xe8, 0x97, + 0x5c, 0x81, 0xdf, 0x00, 0x55, 0x76, 0x44, 0xae, 0xc3, 0x3f, 0x54, 0x60, 0x65, 0x0b, 0xfb, 0x4d, + 0xcf, 0xda, 0xcd, 0xe7, 0xe8, 0x93, 0x34, 0x47, 0xdf, 0x13, 0x1e, 0xa7, 0x08, 0x4f, 0x9f, 0xe2, + 0xf1, 0xdf, 0x65, 0x58, 0x95, 0xa0, 0xe2, 0x22, 0x62, 0xc3, 0x42, 0xcf, 0xa5, 0x61, 0xaa, 0xcd, + 0x5f, 0x78, 0x52, 0x9b, 0x9d, 0x41, 0xb8, 0x19, 0x07, 0xd5, 0xe6, 0xb1, 0x70, 0x1c, 0xed, 0xc2, + 0x42, 0xf6, 0x6e, 0x99, 0x27, 0x55, 0xa2, 0xbb, 0x5d, 0xea, 0x6f, 0x37, 0xea, 0x4b, 0xcd, 0x1d, + 0x8a, 0x86, 0xd1, 0x27, 0x80, 0x3a, 0xd8, 0x31, 0x2d, 0x67, 0x4f, 0x37, 0x9a, 0x81, 0x75, 0x60, + 0x05, 0x16, 0xf6, 0xb9, 0xb9, 0xca, 0x71, 0xd4, 0xd8, 0xf2, 0x3b, 0x6c, 0xf5, 0x11, 0x45, 0x3e, + 0xd3, 0x49, 0x0c, 0x5a, 0xd8, 0x47, 0xbf, 0x06, 0xd3, 0x21, 0x62, 0x2a, 0x26, 0x1e, 0x76, 0xaa, + 0xa7, 0x28, 0xda, 0xba, 0x0c, 0xed, 0x26, 0x59, 0x9b, 0xa4, 0x7c, 0xaa, 0x13, 0x9b, 0xf2, 0xb0, + 0x83, 0xb6, 0x7b, 0xa8, 0x43, 0xef, 0x84, 0x3b, 0x7a, 0x52, 0x8a, 0x43, 0x67, 0x24, 0x81, 0x34, + 0x1c, 0x54, 0x5f, 0xc1, 0xec, 0x33, 0x12, 0xf3, 0x84, 0xdc, 0x0b, 0xc5, 0x70, 0x33, 0x2d, 0x86, + 0x6f, 0x0a, 0xf7, 0x10, 0xc1, 0xf6, 0x29, 0x7a, 0x3f, 0x56, 0x60, 0x2e, 0x05, 0xce, 0xc5, 0xed, + 0x36, 0x4c, 0xd0, 0x38, 0x2c, 0x74, 0xe7, 0x94, 0x3e, 0xdc, 0xb9, 0x71, 0x0a, 0xc1, 0xbd, 0xb8, + 0x06, 0x54, 0x42, 0x04, 0xbf, 0x8d, 0x9b, 0x01, 0x36, 0xb9, 0xe0, 0xa8, 0xf9, 0x67, 0xd0, 0xf8, + 0x4a, 0x6d, 0xf2, 0x65, 0xfc, 0x51, 0xfd, 0x7d, 0x05, 0x6a, 0xd4, 0x80, 0x6e, 0x07, 0x56, 0xf3, + 0xc5, 0x11, 0xf1, 0xe8, 0x1e, 0x5a, 0x7e, 0x10, 0xb2, 0xa9, 0x91, 0x66, 0xd3, 0x7a, 0xbe, 0x25, + 0x17, 0x62, 0xe8, 0x93, 0x59, 0x67, 0x61, 0x49, 0x88, 0x83, 0x5b, 0x96, 0x7f, 0x2b, 0xc1, 0xfc, + 0x03, 0x1c, 0x3c, 0xea, 0x06, 0xc6, 0xae, 0x8d, 0xb7, 0x03, 0x23, 0xc0, 0x9a, 0x08, 0xad, 0x92, + 0xb2, 0xa7, 0x1f, 0x03, 0x12, 0x98, 0xd1, 0xd2, 0x40, 0x66, 0x74, 0x26, 0xa3, 0x61, 0xe8, 0x0a, + 0xcc, 0xe3, 0x57, 0x1d, 0xca, 0x40, 0xdd, 0xc1, 0xaf, 0x02, 0x1d, 0x1f, 0x90, 0xb0, 0xc8, 0x32, + 0xa9, 0x85, 0x2e, 0x6b, 0xa7, 0xc3, 0xd9, 0xc7, 0xf8, 0x55, 0x70, 0x8f, 0xcc, 0x35, 0x4c, 0xf4, + 0x0e, 0xcc, 0x36, 0xbb, 0x1e, 0x8d, 0x9f, 0x76, 0x3d, 0xc3, 0x69, 0xee, 0xeb, 0x81, 0xfb, 0x82, + 0x6a, 0x8f, 0xb2, 0x36, 0xa1, 0x21, 0x3e, 0x77, 0x97, 0x4e, 0xed, 0x90, 0x19, 0xf4, 0x1b, 0x30, + 0x7b, 0x80, 0x3d, 0xea, 0xa5, 0x73, 0x9f, 0x42, 0xb7, 0x02, 0xdc, 0xe6, 0x4a, 0x91, 0x16, 0x58, + 0x12, 0xb4, 0x92, 0x13, 0x3c, 0x67, 0x20, 0x1f, 0x32, 0x88, 0x46, 0x80, 0xdb, 0x1a, 0x3a, 0xc8, + 0x8c, 0xa9, 0xff, 0x30, 0x06, 0x0b, 0x19, 0x96, 0x72, 0x01, 0x15, 0xb3, 0x4d, 0x39, 0x29, 0xdb, + 0xee, 0xc3, 0x64, 0x84, 0x36, 0x38, 0xea, 0x60, 0x7e, 0x11, 0xab, 0x52, 0x8c, 0x3b, 0x47, 0x1d, + 0xac, 0x4d, 0x1c, 0xc6, 0x9e, 0x90, 0x0a, 0x93, 0x22, 0xae, 0x8f, 0x3b, 0x31, 0x6e, 0x3f, 0x87, + 0xc5, 0x8e, 0x87, 0x0f, 0x2c, 0xb7, 0xeb, 0xeb, 0x3e, 0x71, 0x73, 0xb0, 0xd9, 0x5b, 0x7f, 0x8a, + 0xee, 0xbb, 0x94, 0x09, 0x73, 0x1a, 0x4e, 0x70, 0xf5, 0xdd, 0xe7, 0xc4, 0x57, 0xd2, 0xe6, 0x43, + 0xe8, 0x6d, 0x06, 0x1c, 0xe2, 0x7d, 0x1b, 0x4e, 0xd3, 0xa0, 0x8c, 0x45, 0x51, 0x11, 0xc6, 0x21, + 0x4a, 0xc1, 0x34, 0x99, 0xba, 0x4f, 0x66, 0xc2, 0xe5, 0x37, 0x61, 0x8c, 0x06, 0x58, 0xb6, 0xe5, + 0x07, 0x34, 0xcc, 0x1c, 0xdf, 0x38, 0x2b, 0xf6, 0x20, 0x42, 0x91, 0x1f, 0x0d, 0xf8, 0x2f, 0xf4, + 0x00, 0xa6, 0x7d, 0xaa, 0x0e, 0x7a, 0x0f, 0xc5, 0x48, 0x3f, 0x28, 0x2a, 0x7e, 0x42, 0x8b, 0xd0, + 0xbb, 0x30, 0xdf, 0xb4, 0x2d, 0x42, 0xa9, 0x6d, 0xed, 0x7a, 0x86, 0x77, 0xa4, 0x73, 0x79, 0xa0, + 0x81, 0xe4, 0x98, 0x36, 0xcb, 0x66, 0x1f, 0xb2, 0x49, 0x2e, 0x3f, 0x31, 0xa8, 0x16, 0x36, 0x82, + 0xae, 0x87, 0x23, 0xa8, 0xb1, 0x38, 0xd4, 0x7d, 0x36, 0x19, 0x42, 0x9d, 0x83, 0x71, 0x0e, 0x65, + 0xb5, 0x3b, 0x76, 0x15, 0xe8, 0x52, 0x60, 0x43, 0x8d, 0x76, 0xc7, 0x46, 0x3e, 0x5c, 0x4a, 0x9f, + 0x4a, 0xf7, 0x9b, 0xfb, 0xd8, 0xec, 0xda, 0x58, 0x0f, 0x5c, 0x76, 0x59, 0x34, 0xca, 0x77, 0xbb, + 0x41, 0x75, 0xbc, 0x28, 0x20, 0x7d, 0x23, 0x79, 0xd6, 0x6d, 0x8e, 0x69, 0xc7, 0xa5, 0xf7, 0xb6, + 0xc3, 0xd0, 0x10, 0x7f, 0x87, 0x5d, 0x15, 0x91, 0xff, 0xde, 0x41, 0x26, 0x68, 0xa2, 0x61, 0x86, + 0x4e, 0x6d, 0x93, 0x99, 0xf0, 0x14, 0x79, 0xba, 0x3a, 0x99, 0xab, 0xab, 0x0f, 0xa1, 0x12, 0xc9, + 0xb6, 0x4f, 0x94, 0xa9, 0x5a, 0xa1, 0x49, 0x85, 0xf3, 0xc9, 0xab, 0x62, 0x99, 0x9e, 0xb8, 0x7c, + 0x33, 0xcd, 0x8b, 0x14, 0x83, 0x3e, 0xa2, 0x26, 0xcc, 0x46, 0xd8, 0x9a, 0xb6, 0xeb, 0x63, 0x8e, + 0x73, 0x8a, 0xe2, 0xbc, 0xdc, 0xa7, 0x37, 0x42, 0x00, 0x09, 0xbe, 0xae, 0xaf, 0x45, 0xfa, 0x1c, + 0x0d, 0x12, 0x2d, 0x9f, 0x49, 0x9a, 0x17, 0xe2, 0x22, 0x4c, 0x8b, 0x5e, 0xb8, 0x3d, 0xaa, 0x13, + 0xc6, 0xc5, 0xc2, 0xbe, 0x36, 0x7d, 0x90, 0x1a, 0x41, 0xb7, 0x60, 0xc9, 0x22, 0x3a, 0x97, 0xba, + 0x63, 0xec, 0x10, 0x3b, 0x63, 0x56, 0x67, 0xa8, 0x8f, 0xb9, 0x60, 0xf9, 0x49, 0x53, 0x7f, 0x8f, + 0x4d, 0xa3, 0x55, 0x98, 0x08, 0x6d, 0x9d, 0x6f, 0x7d, 0x86, 0xab, 0x88, 0xa9, 0x36, 0x1f, 0xdb, + 0xb6, 0x3e, 0xc3, 0xea, 0x2f, 0x14, 0x58, 0x78, 0xea, 0xda, 0xf6, 0xff, 0xaf, 0xb7, 0x81, 0xfa, + 0x93, 0x51, 0xa8, 0x66, 0x8f, 0xfd, 0x8d, 0xc5, 0xfe, 0xc6, 0x62, 0x7f, 0x1d, 0x2d, 0x76, 0x9e, + 0x7e, 0x4c, 0xe4, 0x5a, 0x60, 0xa1, 0x39, 0x9b, 0x3c, 0xb1, 0x39, 0xfb, 0xe5, 0x33, 0xec, 0xea, + 0xbf, 0x94, 0x60, 0x45, 0xc3, 0x4d, 0xd7, 0x33, 0xe3, 0x89, 0x5a, 0xae, 0x16, 0xaf, 0xd3, 0x52, + 0x9e, 0x83, 0xf1, 0x48, 0x70, 0x22, 0x23, 0x00, 0xe1, 0x50, 0xc3, 0x44, 0x0b, 0x30, 0x42, 0x65, + 0x8c, 0x6b, 0x7c, 0x59, 0x1b, 0x26, 0x8f, 0x0d, 0x13, 0x9d, 0x05, 0xe0, 0x71, 0x44, 0xa8, 0xbb, + 0x63, 0xda, 0x18, 0x1f, 0x69, 0x98, 0x48, 0x83, 0x89, 0x8e, 0x6b, 0xdb, 0x7a, 0x18, 0xab, 0x0c, + 0x4b, 0x62, 0x15, 0x62, 0x43, 0xef, 0xbb, 0x5e, 0x9c, 0x35, 0x61, 0xac, 0x32, 0x4e, 0x90, 0xf0, + 0x07, 0xf5, 0xf7, 0x46, 0x61, 0x55, 0xc2, 0x45, 0x6e, 0x78, 0x33, 0x16, 0x52, 0x39, 0x9e, 0x85, + 0x94, 0x5a, 0xbf, 0xd2, 0xf1, 0xad, 0xdf, 0xb7, 0x01, 0x85, 0xfc, 0x35, 0xd3, 0xe6, 0x77, 0x3a, + 0x9a, 0x09, 0x57, 0xaf, 0x11, 0x03, 0x26, 0x30, 0xbd, 0x65, 0x62, 0xa1, 0x12, 0x78, 0x33, 0x16, + 0x7d, 0x28, 0x6b, 0xd1, 0x63, 0x25, 0x9d, 0xe1, 0x64, 0x49, 0xe7, 0x3a, 0x54, 0xb9, 0x49, 0xe9, + 0x25, 0x40, 0x42, 0x07, 0x61, 0x84, 0x3a, 0x08, 0xf3, 0x6c, 0x3e, 0x92, 0x9d, 0xd0, 0x3f, 0xd0, + 0x60, 0x32, 0x2a, 0x5d, 0xd0, 0x94, 0x09, 0xab, 0x85, 0xbc, 0x9d, 0xa7, 0x8d, 0x3b, 0x9e, 0xe1, + 0xf8, 0xc4, 0x94, 0x25, 0xd2, 0x04, 0x13, 0x66, 0xec, 0x09, 0x7d, 0x0a, 0x67, 0x04, 0x09, 0x99, + 0x9e, 0x09, 0x1f, 0xeb, 0xc7, 0x84, 0x2f, 0x66, 0xc4, 0x3d, 0xb2, 0xe6, 0x39, 0xde, 0x27, 0xe4, + 0x79, 0x9f, 0xab, 0x30, 0x91, 0xb0, 0x79, 0xe3, 0xd4, 0xe6, 0x8d, 0xef, 0xc6, 0x8c, 0xdd, 0x1d, + 0xa8, 0xf4, 0xae, 0x95, 0x96, 0xc4, 0x26, 0x0a, 0x4b, 0x62, 0x93, 0x11, 0x04, 0xad, 0x88, 0x7d, + 0x00, 0x13, 0xe1, 0x5d, 0x53, 0x04, 0x93, 0x85, 0x08, 0xc6, 0xf9, 0x7a, 0x0a, 0x6e, 0xc0, 0xc8, + 0xcb, 0x2e, 0xa6, 0x46, 0xb6, 0x42, 0xf3, 0x3f, 0x0f, 0x72, 0xb3, 0xe0, 0x85, 0x5a, 0x44, 0x53, + 0x14, 0x16, 0xf6, 0x59, 0xde, 0x3b, 0xc4, 0x9b, 0xf1, 0x05, 0xa7, 0x32, 0xbe, 0x60, 0xed, 0x53, + 0x98, 0x88, 0xc3, 0x0a, 0x52, 0xe1, 0xd7, 0xe3, 0xa9, 0xf0, 0xbc, 0x14, 0x49, 0xa8, 0x98, 0x2c, + 0x55, 0x12, 0x4b, 0x97, 0xf7, 0x4c, 0x69, 0x98, 0x18, 0xfb, 0xc6, 0x94, 0x66, 0x4c, 0x69, 0x9c, + 0x35, 0x42, 0x53, 0xfa, 0xb3, 0x72, 0x68, 0x4a, 0x85, 0x5c, 0xe4, 0xa6, 0xf4, 0x23, 0x98, 0x4a, + 0x99, 0x2a, 0xa9, 0x31, 0xe5, 0xc9, 0x0c, 0x6a, 0x6c, 0xb4, 0x4a, 0xd2, 0x94, 0x65, 0x84, 0xbb, + 0x34, 0x98, 0x70, 0xc7, 0x2c, 0x57, 0x39, 0x69, 0xb9, 0x3e, 0x85, 0xe5, 0xa4, 0xe2, 0xe9, 0x6e, + 0x4b, 0x0f, 0xf6, 0x2d, 0x5f, 0x8f, 0x57, 0xaf, 0xe5, 0x5b, 0xd5, 0x12, 0x8a, 0xf8, 0xa4, 0xb5, + 0xb3, 0x6f, 0xf9, 0x77, 0x38, 0xfe, 0x06, 0xcc, 0xec, 0x63, 0xc3, 0x0b, 0x76, 0xb1, 0x11, 0xe8, + 0x26, 0x0e, 0x0c, 0xcb, 0xf6, 0x79, 0xc2, 0x47, 0x9e, 0x20, 0x9c, 0x8e, 0xc0, 0xb6, 0x18, 0x54, + 0xf6, 0xd5, 0x34, 0x7c, 0xbc, 0x57, 0xd3, 0x45, 0x98, 0x8a, 0xf0, 0x30, 0xb1, 0xa6, 0x36, 0x7a, + 0x4c, 0x8b, 0x1c, 0xa3, 0x2d, 0x3a, 0xaa, 0xfe, 0xb9, 0x02, 0xdf, 0x62, 0xb7, 0x99, 0x50, 0x76, + 0x5e, 0x84, 0xee, 0xe9, 0x8b, 0x96, 0x4e, 0x2a, 0x5e, 0xcf, 0x4b, 0x2a, 0x16, 0xa1, 0xea, 0x33, + 0xbb, 0xf8, 0x77, 0x65, 0x78, 0x43, 0x8e, 0x8d, 0x8b, 0x20, 0xee, 0xbd, 0xff, 0x3c, 0x3e, 0xc6, + 0x49, 0xbc, 0x79, 0x7c, 0xeb, 0xa6, 0x4d, 0xf9, 0x29, 0x49, 0xff, 0xb1, 0x02, 0xcb, 0xbd, 0xb4, + 0x3c, 0xf1, 0xa1, 0x4d, 0xcb, 0xef, 0x18, 0x41, 0x73, 0x5f, 0xb7, 0xdd, 0xa6, 0x61, 0xdb, 0x47, + 0xd5, 0x12, 0xb5, 0xa9, 0x9f, 0x4a, 0x76, 0x2d, 0x3e, 0x4e, 0xbd, 0x97, 0xb7, 0xdf, 0x71, 0xb7, + 0xf8, 0x0e, 0x0f, 0xd9, 0x06, 0xcc, 0xd4, 0x2e, 0x19, 0xf9, 0x2b, 0x6a, 0xbf, 0x03, 0x2b, 0x45, + 0x08, 0x04, 0xf6, 0x76, 0x2b, 0x69, 0x6f, 0xc5, 0x55, 0x81, 0xd0, 0x0c, 0x50, 0x5c, 0x21, 0x62, + 0xfa, 0x66, 0x8e, 0xd9, 0xde, 0x1f, 0x2a, 0xc4, 0xf6, 0x66, 0x8e, 0x79, 0xdf, 0xb0, 0xec, 0x9e, + 0x2c, 0xf5, 0x59, 0x4e, 0x2a, 0xc2, 0xd3, 0xa7, 0x20, 0x7d, 0x8b, 0xd8, 0xb1, 0x5c, 0x4c, 0x3c, + 0x59, 0xfd, 0xa7, 0x0a, 0xa8, 0x59, 0x6b, 0xf7, 0x61, 0xa8, 0x9e, 0x21, 0xe5, 0xcf, 0xd2, 0x94, + 0x5f, 0xcb, 0xa1, 0xbc, 0x08, 0x53, 0x9f, 0xb4, 0x3f, 0x25, 0xca, 0x29, 0xc1, 0xc5, 0x65, 0xf3, + 0x4d, 0x98, 0x6e, 0x1a, 0x4e, 0x13, 0x47, 0x6f, 0x00, 0xcc, 0xde, 0x69, 0xa3, 0xda, 0x14, 0x1b, + 0xd7, 0xc2, 0xe1, 0xb8, 0xbe, 0xc7, 0x71, 0x9e, 0x50, 0xdf, 0x65, 0xa8, 0xfa, 0x3c, 0xea, 0x85, + 0x48, 0xdd, 0x73, 0x90, 0xc5, 0x0a, 0x96, 0x82, 0x85, 0x27, 0x91, 0xb0, 0x5c, 0x3c, 0x03, 0x4b, + 0x98, 0x08, 0x53, 0x42, 0xc2, 0xb2, 0x07, 0xa4, 0xf7, 0xd3, 0xa3, 0xbc, 0x6f, 0x09, 0x2b, 0xc2, + 0xd4, 0x27, 0xed, 0xe7, 0xc5, 0xe2, 0x10, 0xe1, 0xe2, 0xd4, 0xff, 0xbd, 0x02, 0xe7, 0x34, 0xdc, + 0x76, 0x0f, 0x30, 0xeb, 0x44, 0xf8, 0xaa, 0xe4, 0xf1, 0x92, 0x8e, 0x51, 0x39, 0xe5, 0x18, 0xa9, + 0x2a, 0x91, 0x95, 0x3c, 0xaa, 0xf9, 0xd1, 0xfe, 0xb1, 0x04, 0xe7, 0xf9, 0x11, 0xd8, 0xb1, 0x73, + 0xcb, 0xe0, 0xd2, 0x03, 0x1a, 0x50, 0x49, 0xea, 0x20, 0x3f, 0xdc, 0xcd, 0x9c, 0xfb, 0xeb, 0x63, + 0x43, 0x6d, 0x32, 0xa1, 0xbd, 0x68, 0x17, 0x16, 0xa2, 0x4e, 0x03, 0x61, 0x3b, 0x9f, 0xb8, 0x08, + 0x7d, 0x8f, 0xc3, 0xa4, 0x8a, 0xd0, 0x58, 0x34, 0x3c, 0x70, 0x97, 0xc1, 0x1a, 0x5c, 0x28, 0x3a, + 0x0b, 0xe7, 0xf3, 0x3f, 0x2b, 0xb0, 0x14, 0x26, 0x8e, 0x04, 0x81, 0xfc, 0x6b, 0x11, 0x9f, 0x4b, + 0x30, 0x63, 0xf9, 0x7a, 0xb2, 0xbb, 0x8e, 0xf2, 0x72, 0x54, 0x9b, 0xb2, 0xfc, 0xfb, 0xf1, 0xbe, + 0x39, 0x75, 0x19, 0xce, 0x88, 0xc9, 0xe7, 0xe7, 0xfb, 0x82, 0x3a, 0x2c, 0xc4, 0x58, 0x27, 0x0b, + 0xe7, 0x19, 0xd3, 0xfa, 0x3a, 0x0e, 0xba, 0x0a, 0x13, 0xbc, 0x75, 0x12, 0x9b, 0xb1, 0x5c, 0x6e, + 0x34, 0xd6, 0x30, 0xd1, 0x27, 0x70, 0xba, 0x19, 0x92, 0x1a, 0xdb, 0xfa, 0xd4, 0x40, 0x5b, 0xa3, + 0x08, 0x45, 0x6f, 0xef, 0x87, 0x30, 0x1d, 0x6b, 0x87, 0x64, 0x41, 0xc2, 0x50, 0xbf, 0x41, 0xc2, + 0x54, 0x0f, 0x94, 0x45, 0x09, 0x67, 0x01, 0x42, 0x77, 0xcf, 0x32, 0xa9, 0x7b, 0x5c, 0xd6, 0xc6, + 0xf8, 0x48, 0xc3, 0x54, 0x2f, 0x12, 0x65, 0x96, 0x5e, 0x02, 0xbf, 0xae, 0xff, 0x28, 0x41, 0x55, + 0xe3, 0xbd, 0xc2, 0x98, 0xa2, 0xf6, 0x9f, 0x6f, 0xbc, 0xce, 0x2b, 0xfa, 0x2d, 0x98, 0x13, 0x55, + 0x8e, 0xc3, 0x0e, 0x90, 0x01, 0x4a, 0xc7, 0xa7, 0xb3, 0xa5, 0x63, 0x1f, 0xbd, 0x07, 0xc3, 0x94, + 0xf5, 0x3e, 0xbf, 0x51, 0x71, 0x6a, 0x64, 0xcb, 0x08, 0x8c, 0xbb, 0xb6, 0xbb, 0xab, 0xf1, 0xc5, + 0x68, 0x13, 0x2a, 0x0e, 0x3e, 0xd4, 0xbd, 0x2e, 0xbf, 0xb9, 0x30, 0xb0, 0x29, 0x00, 0x9f, 0x70, + 0xf0, 0xa1, 0xd6, 0x65, 0x57, 0xe6, 0xab, 0x4b, 0xb0, 0x28, 0x60, 0x35, 0xbf, 0x88, 0xef, 0x2b, + 0x30, 0xbf, 0x7d, 0xe4, 0x34, 0xb7, 0xf7, 0x0d, 0xcf, 0xe4, 0x19, 0x52, 0x7e, 0x0d, 0xe7, 0xa1, + 0xe2, 0xbb, 0x5d, 0xaf, 0x89, 0x75, 0xde, 0x42, 0xce, 0xef, 0x62, 0x92, 0x8d, 0x6e, 0xb2, 0x41, + 0xb4, 0x08, 0xa3, 0x3e, 0x01, 0x0e, 0xdf, 0x6f, 0x43, 0xda, 0x08, 0x7d, 0x6e, 0x98, 0xa8, 0x0e, + 0xa7, 0x68, 0x2c, 0x59, 0x2e, 0x0c, 0xf0, 0xe8, 0x3a, 0x75, 0x11, 0x16, 0x32, 0xb4, 0x70, 0x3a, + 0xff, 0x75, 0x08, 0x4e, 0x93, 0xb9, 0xf0, 0x3d, 0xf9, 0x3a, 0x65, 0xa5, 0x0a, 0x23, 0x61, 0x46, + 0x8a, 0x69, 0x72, 0xf8, 0x48, 0x14, 0xbd, 0x17, 0xeb, 0x46, 0x79, 0x84, 0x28, 0xef, 0x40, 0x78, + 0x92, 0xcd, 0x43, 0x0d, 0x0d, 0x9a, 0x87, 0x92, 0x2b, 0x61, 0x26, 0x92, 0x1f, 0x19, 0x2c, 0x92, + 0xff, 0x88, 0x57, 0x7f, 0x7a, 0x41, 0x35, 0xc5, 0x32, 0x5a, 0x88, 0x65, 0x86, 0x80, 0x45, 0xee, + 0x31, 0xc5, 0x75, 0x15, 0x46, 0xc2, 0x88, 0x7c, 0xac, 0x8f, 0x88, 0x3c, 0x5c, 0x1c, 0xcf, 0x26, + 0x40, 0x32, 0x9b, 0x70, 0x1b, 0x26, 0x58, 0x6d, 0x8a, 0x37, 0x8a, 0x8f, 0xf7, 0xd1, 0x28, 0x3e, + 0x4e, 0x4b, 0x56, 0xbc, 0x47, 0xfc, 0x1d, 0xa0, 0x7d, 0xde, 0xfc, 0xd3, 0x09, 0xdd, 0x32, 0xb1, + 0x13, 0x58, 0xc1, 0x11, 0xcd, 0x06, 0x8e, 0x69, 0x88, 0xcc, 0x7d, 0x42, 0xa7, 0x1a, 0x7c, 0x06, + 0x3d, 0x86, 0xa9, 0x94, 0x69, 0xe0, 0x99, 0xbf, 0xf3, 0x7d, 0x19, 0x05, 0xad, 0x92, 0x34, 0x08, + 0xea, 0x3c, 0xcc, 0x26, 0x25, 0x99, 0x8b, 0xf8, 0x9f, 0x28, 0xb0, 0x14, 0x76, 0xde, 0x7d, 0x45, + 0x3c, 0x3c, 0xf5, 0x8f, 0x15, 0x38, 0x23, 0xa6, 0x89, 0x07, 0x3f, 0x57, 0x60, 0xbe, 0xcd, 0xc6, + 0x59, 0x5d, 0x46, 0xb7, 0x1c, 0xbd, 0x69, 0x34, 0xf7, 0x31, 0xa7, 0xf0, 0x74, 0x3b, 0x06, 0xd5, + 0x70, 0x36, 0xc9, 0x14, 0xba, 0x01, 0x8b, 0x19, 0x20, 0xd3, 0x08, 0x8c, 0x5d, 0xc3, 0x0f, 0x1b, + 0x70, 0xe7, 0x93, 0x70, 0x5b, 0x7c, 0x56, 0x3d, 0x03, 0xb5, 0x90, 0x1e, 0xce, 0xcf, 0x0f, 0xdd, + 0xa8, 0x75, 0x4a, 0xfd, 0xdd, 0x52, 0x8f, 0x85, 0x89, 0x69, 0x4e, 0xed, 0x1a, 0x4c, 0x3b, 0xdd, + 0xf6, 0x2e, 0xf6, 0x74, 0xb7, 0xa5, 0x53, 0x2b, 0xe5, 0x53, 0x3a, 0x87, 0xb4, 0x0a, 0x1b, 0x7f, + 0xd2, 0xa2, 0xc6, 0xc7, 0x27, 0xcc, 0x0e, 0xad, 0x9a, 0x4f, 0x53, 0x0b, 0x43, 0xda, 0x28, 0x37, + 0x6b, 0x3e, 0x6a, 0xc0, 0x04, 0xbf, 0x09, 0x76, 0x54, 0x71, 0x97, 0x69, 0x28, 0x0e, 0x2c, 0xd7, + 0x43, 0x4f, 0x4e, 0x7d, 0xbf, 0x71, 0xb3, 0x37, 0x80, 0xae, 0xc2, 0x02, 0xdb, 0xa7, 0xe9, 0x3a, + 0x81, 0xe7, 0xda, 0x36, 0xf6, 0x28, 0x4f, 0xba, 0xec, 0x4d, 0x31, 0xa6, 0xcd, 0xd1, 0xe9, 0xcd, + 0x68, 0x96, 0xd9, 0x45, 0xaa, 0x21, 0xa6, 0xe9, 0x61, 0xdf, 0xe7, 0x09, 0xc9, 0xf0, 0x51, 0xad, + 0xc3, 0x0c, 0xab, 0x6c, 0x11, 0xb8, 0x50, 0x76, 0xe2, 0x46, 0x5a, 0x49, 0x18, 0x69, 0x75, 0x16, + 0x50, 0x7c, 0x3d, 0x17, 0xc6, 0xff, 0x52, 0x60, 0x86, 0x39, 0xef, 0x71, 0x2f, 0x31, 0x1f, 0x0d, + 0xba, 0xc5, 0xab, 0xc0, 0x51, 0xd1, 0xbb, 0xb2, 0x71, 0x2e, 0x87, 0x21, 0x04, 0x23, 0xcd, 0x9a, + 0xd1, 0x3a, 0x30, 0xcd, 0x98, 0xc5, 0x72, 0xaf, 0xe5, 0x44, 0xee, 0x75, 0x13, 0xa6, 0x0e, 0x2c, + 0xdf, 0xda, 0xb5, 0x6c, 0x2b, 0x38, 0x62, 0x96, 0xa8, 0x38, 0x5d, 0x58, 0xe9, 0x81, 0x50, 0x33, + 0xb4, 0x0a, 0x13, 0xfc, 0x15, 0xa6, 0x3b, 0x06, 0xb7, 0xb8, 0x63, 0xda, 0x38, 0x1f, 0x7b, 0x6c, + 0xb4, 0x31, 0xe1, 0x42, 0xfc, 0xb8, 0x9c, 0x0b, 0x3f, 0xa0, 0x5c, 0xf0, 0x71, 0xf0, 0xac, 0x8b, + 0xbb, 0xb8, 0x0f, 0x2e, 0xa4, 0x77, 0x2a, 0x65, 0x76, 0x4a, 0x32, 0xaa, 0x3c, 0x20, 0xa3, 0x18, + 0x9d, 0x3d, 0x82, 0x38, 0x9d, 0x3f, 0x52, 0x60, 0x36, 0x94, 0xfb, 0xaf, 0x0c, 0xa9, 0x4f, 0x60, + 0x2e, 0x45, 0x13, 0xd7, 0xc2, 0xab, 0xb0, 0xd0, 0xf1, 0xdc, 0x26, 0xf6, 0x7d, 0xcb, 0xd9, 0xd3, + 0xe9, 0x57, 0x65, 0xcc, 0x0e, 0x10, 0x65, 0x2c, 0x13, 0x99, 0xef, 0x4d, 0x53, 0x48, 0x6a, 0x04, + 0x7c, 0xf5, 0x0b, 0x05, 0xce, 0x3e, 0xc0, 0x81, 0xd6, 0xfb, 0xc6, 0xec, 0x11, 0xf6, 0x7d, 0x63, + 0x0f, 0x47, 0x2e, 0xcb, 0x6d, 0x18, 0xa6, 0x05, 0x20, 0x86, 0x68, 0x7c, 0xe3, 0x62, 0x0e, 0xb5, + 0x31, 0x14, 0xb4, 0x3a, 0xa4, 0x71, 0xb0, 0x3e, 0x98, 0x42, 0x6c, 0xcc, 0x72, 0x1e, 0x15, 0xfc, + 0x80, 0x2f, 0xa1, 0xc2, 0xb8, 0xde, 0xe6, 0x33, 0x9c, 0x9c, 0x8f, 0x72, 0x93, 0x93, 0x72, 0x84, + 0x75, 0xaa, 0x9b, 0xe1, 0x28, 0x4b, 0x44, 0x4e, 0xfa, 0xf1, 0xb1, 0x9a, 0x0d, 0x28, 0xbb, 0x28, + 0x9e, 0x6c, 0x1c, 0x62, 0xc9, 0xc6, 0xef, 0x26, 0x93, 0x8d, 0x97, 0x8a, 0x19, 0x14, 0x11, 0x13, + 0x4b, 0x34, 0xb6, 0x61, 0xe5, 0x01, 0x0e, 0xb6, 0x1e, 0x3e, 0x93, 0xdc, 0x45, 0x03, 0x80, 0xa9, + 0xb4, 0xd3, 0x72, 0x43, 0x06, 0xf4, 0xb1, 0x1d, 0x11, 0x24, 0x6a, 0x26, 0xa9, 0xe8, 0x91, 0x5f, + 0xbe, 0xfa, 0x0a, 0x56, 0x25, 0xdb, 0x71, 0xa6, 0x6f, 0xc3, 0x4c, 0xec, 0xeb, 0x43, 0x5a, 0x8c, + 0x0c, 0xb7, 0xbd, 0xd0, 0xdf, 0xb6, 0xda, 0xb4, 0x97, 0x1c, 0xf0, 0xd5, 0x7f, 0x57, 0x60, 0x56, + 0xc3, 0x46, 0xa7, 0x63, 0xb3, 0x88, 0x28, 0x3a, 0xdd, 0x3c, 0x0c, 0xf3, 0xcc, 0x3e, 0x7b, 0xcf, + 0xf1, 0x27, 0xf9, 0xc7, 0x0a, 0xe2, 0x97, 0x74, 0xf9, 0xa4, 0xfe, 0xe8, 0xf1, 0x82, 0x0b, 0x75, + 0x01, 0xe6, 0x52, 0x47, 0xe3, 0xd6, 0xe4, 0xa7, 0x0a, 0x2c, 0x69, 0xb8, 0xe5, 0x61, 0x7f, 0x3f, + 0x2a, 0x72, 0x10, 0x6e, 0x7c, 0x05, 0xcf, 0xae, 0x2e, 0xc3, 0x19, 0x31, 0xa9, 0xfc, 0x2c, 0x37, + 0x60, 0x61, 0xd3, 0xed, 0x3a, 0x44, 0x78, 0xd2, 0x02, 0xba, 0x0c, 0xd0, 0x72, 0xbd, 0x26, 0xbe, + 0x8f, 0x83, 0xe6, 0x3e, 0xcf, 0xd8, 0xc6, 0x46, 0x54, 0x03, 0xaa, 0x59, 0x50, 0x2e, 0x6c, 0xf7, + 0x60, 0x04, 0x3b, 0x01, 0xad, 0xe5, 0x32, 0x11, 0x7b, 0x2b, 0x47, 0xc4, 0xb8, 0x17, 0xb2, 0xf5, + 0xf0, 0x19, 0xc5, 0xc5, 0xeb, 0xb5, 0x1c, 0x56, 0xfd, 0x69, 0x09, 0xe6, 0x35, 0x6c, 0x98, 0x02, + 0xea, 0x36, 0xe0, 0x54, 0xd4, 0x1d, 0x51, 0xd9, 0x58, 0xce, 0xf3, 0x2d, 0x1e, 0x3e, 0xa3, 0x56, + 0x97, 0xae, 0x95, 0x85, 0x62, 0xd9, 0x60, 0xae, 0x2c, 0x0a, 0xe6, 0x76, 0xa0, 0x6a, 0x39, 0x64, + 0x85, 0x75, 0x80, 0x75, 0xec, 0x44, 0x16, 0xac, 0xcf, 0x8e, 0xb2, 0xb9, 0x08, 0xf8, 0x9e, 0x13, + 0x9a, 0xa2, 0x86, 0x49, 0x04, 0xa3, 0x43, 0x90, 0xd0, 0x9a, 0xf4, 0x10, 0x25, 0x6c, 0x94, 0x0c, + 0x6c, 0x5b, 0x9f, 0x61, 0x74, 0x01, 0xa6, 0x68, 0x5f, 0x04, 0x5d, 0xc1, 0xca, 0xf7, 0xc3, 0xb4, + 0x7c, 0x4f, 0xdb, 0x25, 0x9e, 0x1a, 0x7b, 0x98, 0x75, 0xf3, 0xfd, 0x6d, 0x09, 0x16, 0x32, 0xbc, + 0xe2, 0xd7, 0x71, 0x1c, 0x66, 0x09, 0xed, 0x45, 0xe9, 0x64, 0xf6, 0x02, 0x7d, 0x0f, 0xe6, 0x33, + 0x48, 0xc3, 0x1c, 0xe1, 0xa0, 0x06, 0x70, 0x36, 0x8d, 0x9d, 0xa6, 0x08, 0x05, 0xec, 0x3a, 0x25, + 0x62, 0xd7, 0xcf, 0x15, 0x58, 0x78, 0xda, 0xf5, 0xf6, 0xf0, 0xd7, 0x5b, 0xb6, 0xd4, 0x1a, 0x54, + 0xb3, 0xc7, 0xe4, 0xca, 0xff, 0x65, 0x09, 0x16, 0x1e, 0xe1, 0xaf, 0x3d, 0x0f, 0xfe, 0x77, 0xf4, + 0xeb, 0x2e, 0x54, 0xb3, 0xbc, 0xe2, 0xfa, 0x25, 0xc0, 0xa1, 0x88, 0x70, 0x7c, 0xae, 0xc0, 0x99, + 0xc7, 0x6e, 0x60, 0xb5, 0x8e, 0x48, 0xb8, 0xed, 0x1e, 0x60, 0xef, 0x91, 0x41, 0x62, 0xe9, 0x88, + 0xeb, 0xdf, 0x83, 0xf9, 0x16, 0x9f, 0xd1, 0xdb, 0x74, 0x4a, 0x4f, 0x38, 0x6c, 0x79, 0xfa, 0x91, + 0x44, 0xc7, 0x7c, 0xb6, 0xd9, 0x56, 0x76, 0xd0, 0x57, 0xcf, 0xc1, 0xd9, 0x1c, 0x0a, 0xb8, 0x50, + 0x18, 0xb0, 0xf4, 0x00, 0x07, 0x9b, 0x9e, 0xeb, 0xfb, 0xfc, 0x56, 0x12, 0x2f, 0xb7, 0x44, 0xe0, + 0xa7, 0xa4, 0x02, 0xbf, 0xf3, 0x50, 0x09, 0x0c, 0x6f, 0x0f, 0x07, 0xd1, 0x2d, 0xb3, 0xd7, 0xdc, + 0x24, 0x1b, 0xe5, 0xf8, 0xd4, 0x5f, 0x94, 0xe1, 0x8c, 0x78, 0x0f, 0xce, 0xcf, 0x36, 0xc1, 0x43, + 0x4c, 0xc3, 0xee, 0x11, 0x0b, 0x43, 0xf9, 0xf1, 0x1f, 0xc8, 0x1c, 0xc4, 0x5c, 0x74, 0xd4, 0xf9, + 0xf6, 0xef, 0x1e, 0x51, 0x07, 0x90, 0xbd, 0x61, 0x26, 0x82, 0xd8, 0x10, 0xfa, 0x5c, 0x81, 0xb9, + 0x16, 0x2d, 0x88, 0xe9, 0x4d, 0xa3, 0xeb, 0xe3, 0xde, 0xb6, 0xcc, 0xde, 0x3d, 0x3a, 0xde, 0xb6, + 0xac, 0xc6, 0xb6, 0x49, 0x30, 0x26, 0x36, 0x47, 0xad, 0xcc, 0x44, 0xad, 0x03, 0x33, 0x19, 0x2a, + 0x05, 0xee, 0xe9, 0xbd, 0xa4, 0x7b, 0xba, 0x9e, 0x23, 0x0e, 0x69, 0x9a, 0xf8, 0xe5, 0xc5, 0x7d, + 0xd4, 0x5a, 0x07, 0x16, 0x72, 0x08, 0x14, 0xec, 0x7b, 0x3b, 0xbe, 0x6f, 0x25, 0x37, 0xdd, 0xfb, + 0x00, 0x07, 0xbd, 0xe2, 0x22, 0xc5, 0x1b, 0xf7, 0x8a, 0xff, 0x53, 0x81, 0x35, 0x5e, 0xce, 0xcb, + 0x30, 0x2d, 0x53, 0x87, 0x90, 0x44, 0x66, 0xfd, 0x49, 0x19, 0x7a, 0xce, 0x84, 0x28, 0xea, 0xbb, + 0x08, 0x73, 0xd5, 0xfd, 0x33, 0x8d, 0x77, 0x5b, 0x4c, 0x06, 0xb1, 0x27, 0x1f, 0xbd, 0x01, 0x93, + 0x2d, 0xe2, 0x00, 0x3d, 0xc6, 0xcc, 0x97, 0xe2, 0xe5, 0xa7, 0xe4, 0xa0, 0xea, 0xc1, 0x9b, 0x7d, + 0x9c, 0x35, 0x72, 0x97, 0x86, 0x42, 0x7f, 0xfc, 0x78, 0xd7, 0x4a, 0xa1, 0xd5, 0xf7, 0xe8, 0x37, + 0x6d, 0xa1, 0x62, 0xd3, 0x97, 0x64, 0x1f, 0xb9, 0x31, 0x35, 0xa0, 0xdf, 0x6d, 0x25, 0xc1, 0x22, + 0xc7, 0x61, 0xae, 0x57, 0x76, 0x09, 0x13, 0x31, 0x5d, 0xde, 0x47, 0x35, 0xa4, 0xf5, 0x6a, 0x32, + 0xdb, 0x2c, 0x0b, 0xd3, 0x75, 0x68, 0x5e, 0x3c, 0xfc, 0xea, 0x92, 0xa7, 0x90, 0x58, 0x7e, 0x68, + 0x92, 0x8f, 0xb2, 0x0c, 0x92, 0xda, 0x80, 0x79, 0xcd, 0x08, 0xb0, 0x6d, 0xb5, 0xad, 0xe0, 0xe3, + 0x8e, 0x19, 0x4b, 0xe4, 0xad, 0xc3, 0x29, 0xd3, 0x08, 0x0c, 0xce, 0x8c, 0xa5, 0xbc, 0x46, 0xcc, + 0x3b, 0xce, 0x91, 0x46, 0x17, 0xaa, 0x1f, 0xc1, 0x42, 0x06, 0x15, 0x3f, 0xc0, 0xa0, 0xb8, 0x36, + 0xfe, 0xa9, 0x0e, 0xc0, 0x9d, 0xd2, 0x3b, 0x4f, 0x1b, 0xe8, 0x0f, 0x15, 0x98, 0x17, 0x7f, 0xd4, + 0x8e, 0xae, 0x1e, 0xef, 0x5f, 0x28, 0x6a, 0xd7, 0x06, 0x86, 0xe3, 0x67, 0xf9, 0x23, 0x05, 0x16, + 0x72, 0xfe, 0xf5, 0x00, 0x5d, 0x2b, 0xfa, 0xc7, 0x80, 0x3c, 0x6a, 0xae, 0x0f, 0x0e, 0xc8, 0xc9, + 0xf9, 0x89, 0x02, 0x2b, 0x45, 0x5f, 0xfe, 0xa3, 0xef, 0x9e, 0xf4, 0x9f, 0x0c, 0x6a, 0x77, 0x4e, + 0x80, 0x81, 0x53, 0x4a, 0x2e, 0x51, 0xfc, 0x4d, 0xbf, 0xe4, 0x12, 0xa5, 0xff, 0x25, 0x20, 0xb9, + 0xc4, 0x82, 0x3f, 0x0f, 0xf8, 0x33, 0x05, 0x6a, 0xf9, 0x5f, 0xbe, 0xa3, 0xfc, 0xae, 0xb0, 0xc2, + 0x7f, 0x04, 0xa8, 0xbd, 0x7f, 0x2c, 0x58, 0x4e, 0xd7, 0x8f, 0x14, 0x58, 0xcc, 0xfd, 0xae, 0x1d, + 0xdd, 0xc8, 0x45, 0x5d, 0xf4, 0x59, 0x7d, 0xed, 0xe6, 0x71, 0x40, 0x39, 0x51, 0x0e, 0x4c, 0x26, + 0x3e, 0x78, 0x46, 0x6f, 0xe7, 0x22, 0x13, 0x7d, 0x57, 0x5d, 0xab, 0xf7, 0xbb, 0x9c, 0xef, 0xf7, + 0xb9, 0x02, 0xa7, 0x05, 0x5f, 0x0d, 0xa3, 0x2b, 0xf2, 0xdb, 0x16, 0x7e, 0xa7, 0x5c, 0x7b, 0x77, + 0x30, 0x20, 0x4e, 0x42, 0x00, 0x53, 0xa9, 0x8f, 0x68, 0xd1, 0xba, 0xcc, 0xfd, 0x10, 0x54, 0x42, + 0x6a, 0xef, 0xf4, 0x0f, 0xc0, 0x77, 0x3d, 0x84, 0xe9, 0xf4, 0x97, 0x60, 0x28, 0x1f, 0x4b, 0xce, + 0xb7, 0x72, 0xb5, 0xcb, 0x03, 0x40, 0xc4, 0xc4, 0x2e, 0xb7, 0xdf, 0x51, 0x22, 0x76, 0x45, 0x5f, + 0xa3, 0xd4, 0x4e, 0xd0, 0x5e, 0x89, 0xfe, 0x52, 0x81, 0x33, 0xb2, 0x76, 0x48, 0x74, 0xeb, 0x98, + 0x5d, 0x94, 0x8c, 0xb4, 0x0f, 0x4e, 0xd4, 0x83, 0xc9, 0x59, 0x96, 0xd3, 0x33, 0x28, 0x65, 0x99, + 0xbc, 0x63, 0x51, 0xca, 0xb2, 0x82, 0x16, 0xc5, 0xd8, 0x3d, 0x0a, 0x1a, 0xb2, 0x0b, 0xef, 0x31, + 0xbf, 0x15, 0xbe, 0xf0, 0x1e, 0x65, 0xfd, 0xdf, 0xb1, 0x7b, 0x14, 0xb6, 0xed, 0x15, 0xdf, 0xa3, + 0xac, 0x75, 0xb0, 0xf8, 0x1e, 0xa5, 0xbd, 0x82, 0xf1, 0x7b, 0xcc, 0x76, 0xe6, 0x15, 0xdf, 0x63, + 0x6e, 0x5f, 0x60, 0xf1, 0x3d, 0xe6, 0x37, 0x02, 0xa2, 0xbf, 0xa0, 0xb9, 0xcd, 0xdc, 0x96, 0x3b, + 0xf4, 0xfe, 0x40, 0x67, 0x4e, 0x36, 0xfd, 0xd5, 0x6e, 0x1d, 0x0f, 0x38, 0x41, 0x5a, 0x6e, 0xbf, + 0xa9, 0x94, 0xb4, 0xa2, 0x8e, 0x57, 0x29, 0x69, 0xc5, 0x2d, 0xae, 0x7f, 0xad, 0xc0, 0xb2, 0xbc, + 0xd1, 0x0c, 0x7d, 0x47, 0xb2, 0x41, 0x1f, 0xdd, 0x76, 0xb5, 0xdb, 0xc7, 0x86, 0xe7, 0x34, 0xfe, + 0x40, 0x81, 0x6a, 0x5e, 0xbb, 0x21, 0xba, 0x2e, 0xc1, 0x2e, 0xed, 0xab, 0xac, 0xdd, 0x38, 0x06, + 0x24, 0xa7, 0xe8, 0x0b, 0x05, 0x66, 0x45, 0x4d, 0x6b, 0x28, 0xff, 0xcd, 0x29, 0x69, 0xd1, 0xab, + 0xbd, 0x37, 0x20, 0x14, 0xa7, 0xe2, 0xaf, 0xe8, 0x9f, 0x4f, 0x49, 0x9a, 0xb2, 0xd0, 0x07, 0x05, + 0xb2, 0x21, 0xef, 0xa8, 0xab, 0x7d, 0xe7, 0xb8, 0xe0, 0x9c, 0xc0, 0xcf, 0x60, 0x26, 0xd3, 0x9f, + 0x84, 0x2e, 0x4b, 0x90, 0x8a, 0xdb, 0xc6, 0x6a, 0x1b, 0x83, 0x80, 0xf4, 0xbc, 0x91, 0x54, 0xc7, + 0x91, 0xc4, 0x1b, 0x11, 0xf7, 0x49, 0x49, 0xbc, 0x91, 0x9c, 0x66, 0x26, 0xf4, 0x02, 0x26, 0xe2, + 0x1d, 0x20, 0xe8, 0xdb, 0x52, 0x0c, 0xa9, 0x96, 0xa7, 0xda, 0xdb, 0x7d, 0xae, 0x8e, 0x49, 0xa1, + 0xa8, 0x85, 0x43, 0x22, 0x85, 0x92, 0x2e, 0x14, 0x89, 0x14, 0x4a, 0xfb, 0x44, 0x88, 0xe7, 0x29, + 0xe8, 0xcc, 0x90, 0x78, 0x9e, 0xf9, 0x6d, 0x1e, 0xb5, 0x77, 0x07, 0x03, 0x8a, 0x3e, 0x55, 0x81, + 0x5e, 0xa3, 0x03, 0xba, 0x94, 0x8b, 0x23, 0xd3, 0x3d, 0x51, 0x7b, 0xab, 0xaf, 0xb5, 0xbd, 0x6d, + 0x7a, 0x9d, 0x04, 0x92, 0x6d, 0x32, 0xdd, 0x15, 0x92, 0x6d, 0xb2, 0xad, 0x09, 0x6c, 0x9b, 0xb0, + 0x11, 0x40, 0xba, 0x4d, 0xaa, 0x7d, 0x41, 0xba, 0x4d, 0xba, 0xb3, 0x80, 0x44, 0x28, 0x89, 0x22, + 0xbe, 0x24, 0x42, 0x11, 0x35, 0x20, 0x48, 0x22, 0x14, 0x71, 0x6f, 0x00, 0x09, 0x65, 0xc5, 0xc5, + 0x70, 0x49, 0x28, 0x2b, 0x6d, 0x0a, 0x90, 0x84, 0xb2, 0x05, 0x65, 0x7c, 0xe2, 0xc0, 0xe4, 0xd6, + 0x9d, 0x25, 0x0e, 0x4c, 0x51, 0x69, 0x5c, 0xe2, 0xc0, 0x14, 0x97, 0xb9, 0x1d, 0x98, 0x4c, 0x54, + 0x6d, 0x25, 0x17, 0x22, 0x2a, 0x5c, 0x4b, 0x2e, 0x44, 0x58, 0x0c, 0xa6, 0xe6, 0x43, 0x54, 0x61, + 0x45, 0xb2, 0xf0, 0x2f, 0xb7, 0x76, 0x2c, 0x31, 0x1f, 0xb2, 0x32, 0x2e, 0x89, 0xdf, 0xd2, 0xb5, + 0x58, 0x49, 0xfc, 0x96, 0x53, 0xf1, 0x95, 0xc4, 0x6f, 0xb9, 0x85, 0xde, 0x00, 0xa6, 0x52, 0x45, + 0x47, 0xc9, 0x0b, 0x42, 0x5c, 0xca, 0x95, 0xbc, 0x20, 0xf2, 0xea, 0x99, 0x24, 0x5c, 0x4d, 0x15, + 0xb5, 0x64, 0xe1, 0xaa, 0xb8, 0xcc, 0x27, 0x0b, 0x57, 0x73, 0x2a, 0x66, 0x64, 0xe3, 0x74, 0x11, + 0x48, 0xb2, 0x71, 0x4e, 0x6d, 0x4d, 0xb2, 0x71, 0x6e, 0x85, 0xe9, 0x0f, 0x14, 0x98, 0x13, 0xd6, + 0x6d, 0x50, 0xbe, 0xc4, 0xc8, 0x2a, 0x4d, 0xb5, 0xab, 0x83, 0x82, 0xc5, 0xe4, 0x5d, 0x54, 0xf5, + 0x90, 0xc8, 0xbb, 0xa4, 0x9c, 0x24, 0x91, 0x77, 0x69, 0x81, 0xe8, 0x4b, 0x25, 0xfa, 0xaa, 0x29, + 0x3f, 0xbd, 0x8e, 0xee, 0x14, 0xc5, 0x1b, 0x85, 0x65, 0x88, 0xda, 0xdd, 0x93, 0xa0, 0x48, 0xa4, + 0x74, 0xe2, 0xf9, 0x75, 0x79, 0x4a, 0x47, 0x90, 0xc0, 0x97, 0xa7, 0x74, 0x84, 0xa9, 0x7b, 0xa2, + 0x99, 0xc9, 0xa4, 0xb8, 0x4c, 0x33, 0x85, 0x99, 0x78, 0x99, 0x66, 0x8a, 0xf3, 0xed, 0x77, 0x6f, + 0xfc, 0xfa, 0xb5, 0x3d, 0x2b, 0xd8, 0xef, 0xee, 0xd6, 0x9b, 0x6e, 0x7b, 0x3d, 0xf1, 0x9f, 0xe4, + 0xf5, 0x3d, 0xec, 0xb0, 0x3f, 0xa8, 0x8f, 0xfd, 0x43, 0xfe, 0xfb, 0xfc, 0xe7, 0xc1, 0xe5, 0xdd, + 0x61, 0x3a, 0x77, 0xe5, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x55, 0xea, 0x8b, 0xf1, 0x4d, 0x5f, + 0x00, 0x00, }, // google/protobuf/duration.proto []byte{ @@ -3480,131 +3481,137 @@ var yarpcFileDescriptorClosurefee8ff76963a38ed = [][]byte{ }, // uber/cadence/api/v1/service_worker.proto []byte{ - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x5a, 0xcd, 0x73, 0xdb, 0xc6, - 0x15, 0x1f, 0x48, 0xa2, 0x3e, 0x9e, 0xbe, 0xa8, 0xd5, 0xd4, 0xa5, 0xe8, 0x2f, 0x99, 0xa9, 0x6d, - 0xa5, 0x4d, 0xc9, 0x5a, 0x49, 0x1d, 0xc7, 0x8e, 0x3b, 0xd5, 0x87, 0x35, 0x56, 0x27, 0x4d, 0x15, - 0x98, 0x71, 0x66, 0xd2, 0x19, 0x63, 0x96, 0xc0, 0x4a, 0xdc, 0x11, 0x88, 0xa5, 0x81, 0x05, 0x29, - 0x5e, 0x7a, 0xe8, 0x31, 0xe9, 0xa1, 0x33, 0x9d, 0xa6, 0x97, 0xce, 0xf8, 0xdc, 0x4b, 0x6f, 0xfd, - 0x6b, 0x7a, 0xea, 0xb9, 0xff, 0x44, 0x07, 0xbb, 0x0b, 0x10, 0x24, 0x17, 0xe0, 0x47, 0x0f, 0xca, - 0x4c, 0x6e, 0xc2, 0xe2, 0xf7, 0x1e, 0xde, 0xbe, 0xdf, 0xdb, 0xb7, 0xbf, 0x5d, 0x11, 0xf6, 0xc2, - 0x06, 0xf1, 0x6b, 0x36, 0x76, 0x88, 0x67, 0x93, 0x1a, 0x6e, 0xd3, 0x5a, 0xe7, 0x51, 0x2d, 0x20, - 0x7e, 0x87, 0xda, 0xc4, 0xea, 0x32, 0xff, 0x92, 0xf8, 0xd5, 0xb6, 0xcf, 0x38, 0x43, 0xdb, 0x11, - 0xb2, 0xaa, 0x90, 0x55, 0xdc, 0xa6, 0xd5, 0xce, 0xa3, 0xf2, 0x9d, 0x0b, 0xc6, 0x2e, 0x5c, 0x52, - 0x13, 0x90, 0x46, 0x78, 0x5e, 0x73, 0x42, 0x1f, 0x73, 0xca, 0x3c, 0x69, 0x54, 0xbe, 0x3b, 0xfc, - 0x9e, 0xd3, 0x16, 0x09, 0x38, 0x6e, 0xb5, 0x15, 0x60, 0xc4, 0x41, 0xd7, 0xc7, 0xed, 0x36, 0xf1, - 0x03, 0xf5, 0x7e, 0x57, 0x17, 0x9f, 0xcd, 0x5a, 0xad, 0xe4, 0x13, 0x15, 0x1d, 0xc2, 0x21, 0x36, - 0x0d, 0xfa, 0x61, 0xdc, 0xd3, 0x61, 0x9a, 0x34, 0xe0, 0xcc, 0xef, 0xc5, 0x91, 0xea, 0x20, 0x6f, - 0x43, 0x92, 0x00, 0xb4, 0xdf, 0xe1, 0x38, 0xb8, 0x74, 0x69, 0xc0, 0xf3, 0x30, 0x51, 0x16, 0xcf, - 0x5d, 0xd6, 0x95, 0x98, 0xca, 0xbf, 0x0c, 0x28, 0x9f, 0x31, 0xd7, 0x3d, 0x61, 0xfe, 0xb1, 0x8a, - 0xb2, 0x8e, 0x83, 0x4b, 0x93, 0xbc, 0x0d, 0x49, 0xc0, 0xd1, 0x0d, 0x58, 0x74, 0x58, 0x0b, 0x53, - 0xaf, 0x64, 0xec, 0x1a, 0x7b, 0x2b, 0xa6, 0x7a, 0x42, 0x4f, 0x61, 0x25, 0xfa, 0x98, 0x15, 0x7d, - 0xad, 0x34, 0xb7, 0x6b, 0xec, 0xad, 0xee, 0xdf, 0xae, 0x6a, 0x28, 0xa9, 0x46, 0xce, 0x3e, 0xa3, - 0x01, 0x37, 0x97, 0xb9, 0xfa, 0x0b, 0x95, 0x61, 0x99, 0x3a, 0xc4, 0xe3, 0x94, 0xf7, 0x4a, 0xf3, - 0xc2, 0x6b, 0xf2, 0x8c, 0x1e, 0xc2, 0x66, 0x83, 0x7a, 0xd8, 0xef, 0x59, 0x76, 0x93, 0xd8, 0x97, - 0x41, 0xd8, 0x2a, 0x2d, 0x08, 0xc8, 0x86, 0x1c, 0x3e, 0x52, 0xa3, 0x95, 0x7f, 0x2e, 0xc3, 0x4d, - 0x6d, 0xdc, 0x41, 0x9b, 0x79, 0x01, 0x41, 0xb7, 0x01, 0x44, 0x80, 0x9c, 0x5d, 0x12, 0x19, 0xfc, - 0x9a, 0x29, 0x42, 0xae, 0x47, 0x03, 0xe8, 0x4b, 0x40, 0x71, 0x22, 0x2c, 0x72, 0x45, 0xec, 0x30, - 0xaa, 0x12, 0x35, 0x91, 0x07, 0xda, 0x89, 0x7c, 0xa5, 0xe0, 0x2f, 0x62, 0xb4, 0xb9, 0xd5, 0x1d, - 0x1e, 0x42, 0x27, 0xb0, 0x9e, 0xb8, 0xe5, 0xbd, 0x36, 0x11, 0xf3, 0x5b, 0xdd, 0xbf, 0x97, 0xeb, - 0xb1, 0xde, 0x6b, 0x13, 0x73, 0xad, 0x9b, 0x7a, 0x42, 0xaf, 0x61, 0xa7, 0xed, 0x93, 0x0e, 0x65, - 0x61, 0x60, 0x05, 0x1c, 0xfb, 0x9c, 0x38, 0x16, 0xe9, 0x10, 0x8f, 0x5b, 0xd4, 0x11, 0x09, 0x59, - 0xdd, 0xbf, 0x59, 0x95, 0xb5, 0x5a, 0x8d, 0x6b, 0xb5, 0x7a, 0xea, 0xf1, 0xc7, 0x1f, 0xbd, 0xc6, - 0x6e, 0x48, 0xcc, 0x1b, 0xb1, 0xf5, 0x2b, 0x69, 0xfc, 0x22, 0xb2, 0x3d, 0x75, 0xd0, 0x1e, 0x14, - 0x47, 0xdc, 0x15, 0x76, 0x8d, 0xbd, 0x79, 0x73, 0x23, 0x18, 0x44, 0x96, 0x60, 0x09, 0x73, 0x4e, - 0x5a, 0x6d, 0x5e, 0x5a, 0x14, 0x80, 0xf8, 0x11, 0x7d, 0x00, 0xa8, 0x81, 0xed, 0x4b, 0x97, 0x5d, - 0x58, 0x36, 0x0b, 0x3d, 0x6e, 0x35, 0xa9, 0xc7, 0x4b, 0x4b, 0x02, 0x54, 0x54, 0x6f, 0x8e, 0xa2, - 0x17, 0x2f, 0xa9, 0xc7, 0xd1, 0x63, 0x58, 0x52, 0x95, 0x5d, 0x5a, 0x16, 0x71, 0xdf, 0xd2, 0xe6, - 0xe2, 0xa5, 0xc4, 0x98, 0x31, 0x18, 0x3d, 0x80, 0x4d, 0x8f, 0x5c, 0x71, 0xab, 0x8d, 0x2f, 0x88, - 0x22, 0x71, 0x45, 0x90, 0xb8, 0x1e, 0x0d, 0x9f, 0xe1, 0x0b, 0x22, 0x89, 0x7c, 0x02, 0x05, 0xb1, - 0x2c, 0x4a, 0x20, 0xbc, 0x57, 0x72, 0x33, 0xfd, 0x45, 0x84, 0x34, 0xa5, 0x01, 0x7a, 0x03, 0xb7, - 0x46, 0x4b, 0xc0, 0xea, 0x57, 0xf5, 0xea, 0x24, 0x55, 0xbd, 0x33, 0x52, 0x03, 0xf1, 0x2b, 0x74, - 0x00, 0x1b, 0x81, 0xdd, 0x24, 0x4e, 0xe8, 0x12, 0xc7, 0x8a, 0x1a, 0x4d, 0x69, 0x4d, 0x78, 0x2c, - 0x8f, 0x10, 0x57, 0x8f, 0xbb, 0x90, 0xb9, 0x9e, 0x58, 0x44, 0x63, 0xe8, 0x39, 0xac, 0xc5, 0x74, - 0x09, 0x07, 0xeb, 0x63, 0x1d, 0xac, 0x2a, 0xbc, 0x30, 0xff, 0x0a, 0x96, 0xa2, 0xa9, 0x52, 0x12, - 0x94, 0x36, 0x76, 0xe7, 0xf7, 0x56, 0xf7, 0x9f, 0x6b, 0x27, 0x93, 0xb3, 0x8c, 0xaa, 0x5f, 0x48, - 0xfb, 0x17, 0x1e, 0x8f, 0xc8, 0x51, 0xde, 0x50, 0x05, 0x04, 0x0b, 0xfd, 0x1a, 0xda, 0x14, 0xec, - 0xaf, 0x46, 0x83, 0x71, 0x01, 0x55, 0x61, 0x9b, 0x33, 0x8e, 0x5d, 0x4b, 0x31, 0x6a, 0x35, 0x7a, - 0x9c, 0x04, 0xa5, 0xa2, 0x40, 0x6e, 0x89, 0x57, 0x8a, 0xf4, 0xc3, 0xe8, 0x45, 0xf9, 0x0d, 0xac, - 0xa5, 0x3f, 0x86, 0x8a, 0x30, 0x7f, 0x49, 0x7a, 0xaa, 0xed, 0x44, 0x7f, 0x46, 0x54, 0x77, 0xa2, - 0xea, 0x56, 0xcb, 0x74, 0x22, 0xaa, 0x85, 0xc1, 0xd3, 0xb9, 0x27, 0x46, 0xe5, 0x1f, 0x05, 0x78, - 0x4f, 0x4e, 0xcb, 0x49, 0xcf, 0xf4, 0x88, 0xb5, 0xda, 0x2e, 0xe1, 0xc4, 0x89, 0x3b, 0xde, 0x98, - 0xc6, 0xf1, 0x0c, 0x56, 0xe2, 0x6e, 0x1e, 0x94, 0xe6, 0x44, 0x56, 0xf5, 0x25, 0x12, 0x7f, 0xc4, - 0xec, 0xe3, 0xd1, 0xcf, 0x60, 0xab, 0x5f, 0x69, 0x36, 0xf3, 0x38, 0xb9, 0xe2, 0xa2, 0x45, 0xac, - 0x99, 0xc5, 0xe4, 0xc5, 0x91, 0x1c, 0x1f, 0x68, 0x93, 0x0b, 0x43, 0x6d, 0xf2, 0xf7, 0xb0, 0x15, - 0x70, 0x6a, 0x5f, 0xf6, 0x2c, 0xcc, 0xb9, 0x4f, 0x1b, 0x61, 0x94, 0xda, 0x82, 0x48, 0x4b, 0x55, - 0x1b, 0xcd, 0x2b, 0x81, 0x4e, 0x8a, 0xf4, 0x20, 0xb1, 0x32, 0x8b, 0xd2, 0x51, 0x7f, 0x04, 0x7d, - 0x0c, 0x25, 0x9f, 0xf0, 0xd0, 0xf7, 0x2c, 0x8f, 0x74, 0xad, 0x38, 0x7a, 0xb1, 0x32, 0x44, 0x2f, - 0x58, 0x36, 0x7f, 0x24, 0xdf, 0x7f, 0x4e, 0xba, 0xe9, 0x54, 0xa2, 0x43, 0xb8, 0x73, 0xce, 0x7c, - 0x9b, 0x58, 0xb6, 0x4f, 0x30, 0x27, 0x1a, 0xf3, 0x25, 0x61, 0x5e, 0x16, 0xa8, 0x23, 0x01, 0x1a, - 0xf6, 0xa1, 0xd9, 0x00, 0x96, 0x75, 0x1b, 0x00, 0x62, 0xb0, 0x2e, 0xd6, 0xb1, 0xe5, 0x93, 0x20, - 0x74, 0x79, 0x50, 0x5a, 0x11, 0x64, 0xfc, 0x46, 0x3b, 0xfd, 0x09, 0x88, 0xaf, 0xca, 0x8a, 0x91, - 0xce, 0x64, 0xbd, 0xaf, 0xbd, 0x4d, 0x0d, 0x95, 0x29, 0x6c, 0x8d, 0x40, 0x34, 0x55, 0xfa, 0xab, - 0xc1, 0x2a, 0xdd, 0x9b, 0xa0, 0x4a, 0x85, 0xc3, 0x74, 0xad, 0xbe, 0x9b, 0x87, 0x9f, 0xe4, 0x87, - 0xac, 0x76, 0xb9, 0x2f, 0x61, 0x7d, 0x30, 0xc1, 0x86, 0xf8, 0xe8, 0x2f, 0xa6, 0x5d, 0xe7, 0xe6, - 0x9a, 0x93, 0x26, 0xe1, 0x9d, 0x01, 0x77, 0xb0, 0xcd, 0x69, 0x87, 0x72, 0x4a, 0x02, 0x8b, 0x33, - 0xcb, 0xa1, 0x41, 0x1b, 0x73, 0xbb, 0x69, 0xb9, 0xcc, 0xc6, 0xae, 0xdb, 0x53, 0xa5, 0xff, 0xf5, - 0x0c, 0xd9, 0x56, 0x9d, 0xe5, 0x20, 0xf1, 0x5f, 0x67, 0xc7, 0xca, 0xfb, 0x67, 0xd2, 0xb9, 0xcc, - 0xfe, 0x4d, 0x9c, 0x8d, 0x28, 0xff, 0x01, 0x76, 0xc7, 0x39, 0xd0, 0x70, 0x73, 0x3c, 0xc8, 0x8d, - 0x7e, 0xa9, 0x28, 0xbf, 0x3d, 0xe1, 0x2b, 0x76, 0x7c, 0xea, 0x9d, 0xb3, 0x34, 0x43, 0x7f, 0x9c, - 0x83, 0x5d, 0xcd, 0x34, 0x4f, 0x30, 0x75, 0x27, 0x6e, 0x25, 0x87, 0x50, 0xb0, 0x71, 0x18, 0xc8, - 0x68, 0x36, 0xf6, 0x3f, 0xc8, 0x6d, 0x23, 0x7d, 0xef, 0x47, 0x91, 0x8d, 0x29, 0x4d, 0xa3, 0xed, - 0xd5, 0x21, 0x1c, 0x53, 0x37, 0x50, 0x52, 0x43, 0xbf, 0xbd, 0x9e, 0xe1, 0x9e, 0xcb, 0xb0, 0x63, - 0xc6, 0xe0, 0xdc, 0xe6, 0xa2, 0x59, 0x82, 0x05, 0xad, 0x06, 0x7b, 0x0f, 0xee, 0xe5, 0xe4, 0x40, - 0xf2, 0x5c, 0xf9, 0x4f, 0x5f, 0x60, 0xc6, 0x99, 0xbd, 0x4e, 0x81, 0xf9, 0x0a, 0x50, 0xe2, 0xd7, - 0x6a, 0x11, 0x8e, 0x1d, 0xcc, 0xb1, 0x92, 0x54, 0xf7, 0x73, 0x3f, 0xf0, 0x5b, 0x05, 0x36, 0x8b, - 0x7c, 0x68, 0xa4, 0xf2, 0x6d, 0x5f, 0x8c, 0x0e, 0xce, 0xf1, 0x5a, 0xc5, 0xe8, 0x5d, 0x58, 0x55, - 0x4b, 0xa8, 0x17, 0xed, 0xd1, 0x32, 0x13, 0x10, 0x0f, 0x9d, 0x3a, 0x91, 0x5a, 0x4d, 0x00, 0x42, - 0xad, 0x2e, 0xe4, 0xa8, 0xd5, 0x64, 0x62, 0x42, 0xad, 0xe2, 0xd4, 0x13, 0xda, 0x87, 0x02, 0xf5, - 0xda, 0x21, 0x57, 0x3b, 0x50, 0x7e, 0x09, 0x4a, 0xa8, 0x46, 0x1d, 0x2d, 0xfe, 0xbf, 0xea, 0x68, - 0x69, 0x3a, 0x75, 0x54, 0x87, 0x9d, 0xd8, 0x5f, 0xd4, 0xe1, 0x6c, 0x97, 0x05, 0x44, 0x38, 0x62, - 0x21, 0x57, 0x5a, 0x75, 0x67, 0xc4, 0xd7, 0xb1, 0x3a, 0x50, 0x9a, 0x37, 0x62, 0xdb, 0x3a, 0x3b, - 0x8a, 0x2c, 0xeb, 0xd2, 0x10, 0x7d, 0x0e, 0x37, 0xc4, 0x47, 0x46, 0x5d, 0xae, 0x8c, 0x73, 0xb9, - 0x2d, 0x0c, 0x87, 0xfc, 0x9d, 0xc0, 0x56, 0x93, 0x60, 0x9f, 0x37, 0x08, 0xe6, 0x89, 0x2b, 0x18, - 0xe7, 0xaa, 0x98, 0xd8, 0xc4, 0x7e, 0x52, 0x7a, 0x3e, 0x12, 0xb6, 0x85, 0xbe, 0x9e, 0x7f, 0x03, - 0x77, 0x06, 0x99, 0xb0, 0xd8, 0xb9, 0xc5, 0x9b, 0x34, 0xb0, 0x62, 0x83, 0xf1, 0xba, 0xb5, 0x3c, - 0xc0, 0xcc, 0xef, 0xce, 0xeb, 0x4d, 0x1a, 0x1c, 0x28, 0xff, 0xa7, 0xe9, 0x19, 0xc4, 0xcd, 0x6a, - 0x7d, 0x82, 0x4a, 0xe9, 0x4f, 0xe2, 0x58, 0x75, 0xad, 0x91, 0xe3, 0xd5, 0xc6, 0x6c, 0xc7, 0xab, - 0x87, 0xb0, 0x99, 0xf8, 0x51, 0xdd, 0x67, 0x53, 0x76, 0xb8, 0x78, 0xf8, 0x58, 0x76, 0xa1, 0x0f, - 0x61, 0xb1, 0x49, 0xb0, 0x43, 0x7c, 0xa1, 0x5b, 0xa3, 0x43, 0x97, 0xf6, 0xf0, 0x22, 0x20, 0xa6, - 0x82, 0x56, 0xbe, 0x33, 0x12, 0xa5, 0x99, 0xee, 0x06, 0xd3, 0x2a, 0xcd, 0x8f, 0x60, 0x51, 0x4a, - 0x1b, 0xd5, 0x09, 0xf2, 0x93, 0xa5, 0xb0, 0x79, 0xbd, 0xaf, 0xf2, 0x20, 0x51, 0x15, 0x19, 0x71, - 0xa9, 0x96, 0xfd, 0xed, 0x1c, 0x3c, 0xcc, 0x03, 0x1e, 0xf6, 0x4e, 0x8f, 0xc7, 0xf5, 0xef, 0xeb, - 0xea, 0x69, 0xfd, 0xac, 0x2d, 0xcc, 0x98, 0xb5, 0xc2, 0x50, 0xd6, 0x7e, 0x0a, 0x7b, 0xe3, 0x93, - 0xa1, 0x32, 0xf7, 0x57, 0x23, 0x91, 0x05, 0x69, 0xf0, 0x54, 0xb2, 0xe0, 0x31, 0x2c, 0x9d, 0x63, - 0xea, 0x86, 0x3e, 0xc9, 0x25, 0xfe, 0x44, 0x62, 0xcc, 0x18, 0x9c, 0xcb, 0x7c, 0x7f, 0xa7, 0xd6, - 0x85, 0xa5, 0x82, 0xff, 0x66, 0x4e, 0x5b, 0x1f, 0x12, 0xf5, 0x7d, 0xe6, 0x3c, 0x95, 0xb1, 0x85, - 0x59, 0x33, 0x36, 0xcc, 0xfa, 0x43, 0xb8, 0x3f, 0x26, 0x17, 0x2a, 0x6b, 0x7f, 0x33, 0xa0, 0xa2, - 0xab, 0x0f, 0xec, 0xd9, 0x64, 0x2a, 0xd2, 0xe3, 0xd6, 0x38, 0x37, 0xab, 0x8e, 0x1b, 0x26, 0xfd, - 0xbe, 0xbe, 0x0d, 0x25, 0x81, 0xa9, 0x09, 0xfc, 0x69, 0x0e, 0x1e, 0xe4, 0xe0, 0xbe, 0xe7, 0xc4, - 0xc7, 0x59, 0x5b, 0x98, 0x35, 0x6b, 0xc3, 0xc4, 0xbf, 0xaf, 0xef, 0x7d, 0x03, 0xd9, 0x18, 0xa0, - 0xde, 0x66, 0xfe, 0x00, 0xf4, 0x65, 0xbc, 0x6b, 0x5d, 0x23, 0xf5, 0x67, 0x11, 0xf5, 0x39, 0x81, - 0x29, 0x5d, 0xfa, 0x3e, 0x14, 0x6d, 0x31, 0x31, 0xcb, 0x97, 0xb1, 0x12, 0x47, 0xc4, 0xb7, 0x6c, - 0x6e, 0xca, 0x71, 0x33, 0x1e, 0x56, 0x55, 0x92, 0xe9, 0xf2, 0x87, 0x56, 0x25, 0xf5, 0xa8, 0x4a, - 0xc6, 0x64, 0x63, 0xfa, 0x24, 0xff, 0xbb, 0xbf, 0x7d, 0x88, 0x9b, 0x81, 0x59, 0x64, 0xc3, 0xaf, - 0x87, 0x64, 0xc3, 0xe4, 0x17, 0x10, 0xf1, 0x66, 0xf8, 0x1a, 0xb6, 0xe5, 0xbf, 0x5a, 0xac, 0x0e, - 0xf1, 0xc5, 0xd5, 0x02, 0xf5, 0xce, 0x99, 0x3a, 0x5f, 0x66, 0x13, 0x45, 0xfc, 0xd7, 0x12, 0x2e, - 0xce, 0xca, 0x5b, 0xdd, 0xe1, 0xa1, 0xd4, 0x26, 0xa4, 0x9b, 0x5c, 0xac, 0x3d, 0x0c, 0x28, 0x9b, - 0x24, 0x20, 0x5c, 0xde, 0x58, 0x25, 0xa7, 0xbb, 0x6b, 0xa9, 0xad, 0xca, 0x6d, 0xb8, 0xa9, 0x0d, - 0x46, 0x06, 0xbb, 0xff, 0xdf, 0x4d, 0x58, 0x91, 0x53, 0x3f, 0x38, 0x3b, 0x45, 0x57, 0xb0, 0xad, - 0xb9, 0x62, 0x41, 0xb5, 0xc9, 0x2f, 0x63, 0xc4, 0x1c, 0xcb, 0x53, 0xdf, 0xde, 0xa0, 0xbf, 0x18, - 0x70, 0x2b, 0xef, 0xd2, 0x05, 0x3d, 0x99, 0xf5, 0x56, 0xac, 0xfc, 0xc9, 0xcc, 0x37, 0x3c, 0xe8, - 0x1b, 0x03, 0x76, 0x32, 0xef, 0x07, 0xd0, 0x2f, 0x27, 0x75, 0x3c, 0x20, 0x9e, 0xca, 0x8f, 0xa7, - 0x35, 0x53, 0xc1, 0xf4, 0xc9, 0x49, 0xaf, 0xd8, 0x7c, 0x72, 0x34, 0xf7, 0x15, 0xf9, 0xe4, 0x68, - 0x0f, 0xff, 0x29, 0x72, 0xb4, 0x02, 0x32, 0x9f, 0x9c, 0xbc, 0x13, 0x44, 0x3e, 0x39, 0xb9, 0x1a, - 0x1f, 0xbd, 0xd3, 0x2b, 0xd5, 0x01, 0x59, 0x8b, 0x3e, 0x9d, 0xda, 0x7f, 0x6a, 0x1f, 0x28, 0x3f, - 0x9f, 0xd1, 0x7a, 0xb4, 0x7c, 0x46, 0x25, 0x58, 0x7e, 0xf9, 0x64, 0x6a, 0xef, 0xfc, 0xf2, 0xc9, - 0xd6, 0xc6, 0xe8, 0x3b, 0x03, 0x6e, 0xe7, 0xea, 0x41, 0xf4, 0xc9, 0x74, 0x9e, 0xd3, 0x89, 0x7a, - 0x3a, 0x8b, 0xa9, 0x0a, 0xec, 0xcf, 0x86, 0x68, 0x51, 0x59, 0x7a, 0x05, 0x7d, 0x3c, 0x31, 0x09, - 0x83, 0x82, 0xb5, 0xfc, 0x64, 0x7a, 0x43, 0x15, 0xd2, 0xdf, 0x0d, 0xb8, 0x3b, 0x46, 0x42, 0xa1, - 0x67, 0xd3, 0x7a, 0x4f, 0xe7, 0xeb, 0xd3, 0xd9, 0x8c, 0x07, 0x32, 0x96, 0xb9, 0x77, 0x67, 0x66, - 0x6c, 0x9c, 0xce, 0xcb, 0xcc, 0xd8, 0x78, 0x1d, 0x26, 0x33, 0x96, 0x2b, 0x27, 0x32, 0x33, 0x36, - 0x89, 0x24, 0xcb, 0xcc, 0xd8, 0x64, 0x0a, 0x26, 0xb5, 0x12, 0x47, 0x77, 0xee, 0xfc, 0x95, 0x98, - 0x29, 0x63, 0xf2, 0x57, 0x62, 0xb6, 0x40, 0x88, 0x1a, 0xb9, 0x66, 0x4b, 0xce, 0x68, 0xe4, 0xd9, - 0x4a, 0x22, 0xa3, 0x91, 0xe7, 0xec, 0xf6, 0x87, 0x0d, 0xf8, 0xb1, 0xcd, 0x5a, 0x3a, 0xb3, 0x43, - 0x24, 0x55, 0xc0, 0x2b, 0xf9, 0x4b, 0x95, 0x33, 0x9f, 0x71, 0x76, 0x66, 0x7c, 0xfd, 0xe8, 0x82, - 0xf2, 0x66, 0xd8, 0xa8, 0xda, 0xac, 0x55, 0x4b, 0xff, 0x14, 0xe3, 0xe7, 0xd4, 0x71, 0x6b, 0x17, - 0x4c, 0xfe, 0xca, 0x44, 0xfd, 0x2e, 0xe3, 0x19, 0x6e, 0xd3, 0xce, 0xa3, 0xc6, 0xa2, 0x18, 0xfb, - 0xf0, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x78, 0xdf, 0x83, 0x7f, 0x09, 0x23, 0x00, 0x00, + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x5a, 0x5b, 0x6f, 0xdb, 0xc8, + 0xf5, 0x07, 0x7d, 0xf7, 0xf1, 0x4d, 0x1e, 0xe3, 0xef, 0xbf, 0xac, 0xdc, 0x1c, 0xa5, 0x49, 0xbc, + 0x6d, 0x2a, 0x37, 0xde, 0x6d, 0x36, 0x9b, 0x6c, 0x8a, 0xfa, 0x12, 0x23, 0x2e, 0x36, 0x5b, 0x2f, + 0xa3, 0x4d, 0x80, 0x2d, 0x10, 0x62, 0x44, 0x8e, 0xac, 0x81, 0x29, 0x8e, 0x42, 0x0e, 0xa5, 0xe8, + 0xa5, 0x0f, 0x7d, 0xdc, 0xf6, 0xa1, 0x40, 0xd1, 0xed, 0x4b, 0x81, 0x3c, 0xf7, 0x03, 0xf4, 0xcb, + 0xb4, 0x4f, 0x7d, 0xee, 0x67, 0x28, 0x50, 0x70, 0x66, 0x48, 0x51, 0xd2, 0x90, 0xba, 0xb4, 0x80, + 0x17, 0xe8, 0x9b, 0x39, 0xfc, 0x9d, 0xc3, 0x33, 0xe7, 0x77, 0xe6, 0xcc, 0x6f, 0xc6, 0x82, 0xbd, + 0xb0, 0x46, 0xfc, 0x7d, 0x1b, 0x3b, 0xc4, 0xb3, 0xc9, 0x3e, 0x6e, 0xd1, 0xfd, 0xf6, 0xc3, 0xfd, + 0x80, 0xf8, 0x6d, 0x6a, 0x13, 0xab, 0xc3, 0xfc, 0x4b, 0xe2, 0x57, 0x5a, 0x3e, 0xe3, 0x0c, 0x6d, + 0x45, 0xc8, 0x8a, 0x42, 0x56, 0x70, 0x8b, 0x56, 0xda, 0x0f, 0x4b, 0x37, 0x2f, 0x18, 0xbb, 0x70, + 0xc9, 0xbe, 0x80, 0xd4, 0xc2, 0xfa, 0xbe, 0x13, 0xfa, 0x98, 0x53, 0xe6, 0x49, 0xa3, 0xd2, 0xad, + 0xc1, 0xf7, 0x9c, 0x36, 0x49, 0xc0, 0x71, 0xb3, 0xa5, 0x00, 0x43, 0x0e, 0x3a, 0x3e, 0x6e, 0xb5, + 0x88, 0x1f, 0xa8, 0xf7, 0xbb, 0xba, 0xf8, 0x6c, 0xd6, 0x6c, 0x26, 0x9f, 0x28, 0xeb, 0x10, 0x0e, + 0xb1, 0x69, 0xd0, 0x0b, 0xe3, 0xb6, 0x0e, 0xd3, 0xa0, 0x01, 0x67, 0x7e, 0x37, 0x8e, 0x54, 0x07, + 0x79, 0x17, 0x92, 0x04, 0xa0, 0xfd, 0x0e, 0xc7, 0xc1, 0xa5, 0x4b, 0x03, 0x9e, 0x87, 0x89, 0xb2, + 0x58, 0x77, 0x59, 0x47, 0x62, 0xca, 0x7f, 0x35, 0xa0, 0x74, 0xce, 0x5c, 0xf7, 0x94, 0xf9, 0x27, + 0x2a, 0xca, 0x2a, 0x0e, 0x2e, 0x4d, 0xf2, 0x2e, 0x24, 0x01, 0x47, 0xdb, 0xb0, 0xe0, 0xb0, 0x26, + 0xa6, 0x5e, 0xd1, 0xd8, 0x35, 0xf6, 0x96, 0x4d, 0xf5, 0x84, 0x9e, 0xc0, 0x72, 0xf4, 0x31, 0x2b, + 0xfa, 0x5a, 0x71, 0x66, 0xd7, 0xd8, 0x5b, 0x39, 0xb8, 0x51, 0xd1, 0x50, 0x52, 0x89, 0x9c, 0x7d, + 0x41, 0x03, 0x6e, 0x2e, 0x71, 0xf5, 0x17, 0x2a, 0xc1, 0x12, 0x75, 0x88, 0xc7, 0x29, 0xef, 0x16, + 0x67, 0x85, 0xd7, 0xe4, 0x19, 0xdd, 0x87, 0x8d, 0x1a, 0xf5, 0xb0, 0xdf, 0xb5, 0xec, 0x06, 0xb1, + 0x2f, 0x83, 0xb0, 0x59, 0x9c, 0x13, 0x90, 0x75, 0x39, 0x7c, 0xac, 0x46, 0xcb, 0xff, 0x5a, 0x82, + 0x6b, 0xda, 0xb8, 0x83, 0x16, 0xf3, 0x02, 0x82, 0x6e, 0x00, 0x88, 0x00, 0x39, 0xbb, 0x24, 0x32, + 0xf8, 0x55, 0x53, 0x84, 0x5c, 0x8d, 0x06, 0xd0, 0xd7, 0x80, 0xe2, 0x44, 0x58, 0xe4, 0x3d, 0xb1, + 0xc3, 0xa8, 0x4a, 0xd4, 0x44, 0xee, 0x69, 0x27, 0xf2, 0x46, 0xc1, 0x9f, 0xc7, 0x68, 0x73, 0xb3, + 0x33, 0x38, 0x84, 0x4e, 0x61, 0x2d, 0x71, 0xcb, 0xbb, 0x2d, 0x22, 0xe6, 0xb7, 0x72, 0x70, 0x3b, + 0xd7, 0x63, 0xb5, 0xdb, 0x22, 0xe6, 0x6a, 0x27, 0xf5, 0x84, 0x5e, 0xc3, 0x4e, 0xcb, 0x27, 0x6d, + 0xca, 0xc2, 0xc0, 0x0a, 0x38, 0xf6, 0x39, 0x71, 0x2c, 0xd2, 0x26, 0x1e, 0xb7, 0xa8, 0x23, 0x12, + 0xb2, 0x72, 0x70, 0xad, 0x22, 0x6b, 0xb5, 0x12, 0xd7, 0x6a, 0xe5, 0xcc, 0xe3, 0x8f, 0x3e, 0x79, + 0x8d, 0xdd, 0x90, 0x98, 0xdb, 0xb1, 0xf5, 0x2b, 0x69, 0xfc, 0x3c, 0xb2, 0x3d, 0x73, 0xd0, 0x1e, + 0x14, 0x86, 0xdc, 0xcd, 0xef, 0x1a, 0x7b, 0xb3, 0xe6, 0x7a, 0xd0, 0x8f, 0x2c, 0xc2, 0x22, 0xe6, + 0x9c, 0x34, 0x5b, 0xbc, 0xb8, 0x20, 0x00, 0xf1, 0x23, 0x7a, 0x00, 0xa8, 0x86, 0xed, 0x4b, 0x97, + 0x5d, 0x58, 0x36, 0x0b, 0x3d, 0x6e, 0x35, 0xa8, 0xc7, 0x8b, 0x8b, 0x02, 0x54, 0x50, 0x6f, 0x8e, + 0xa3, 0x17, 0x2f, 0xa8, 0xc7, 0xd1, 0x23, 0x58, 0x54, 0x95, 0x5d, 0x5c, 0x12, 0x71, 0x5f, 0xd7, + 0xe6, 0xe2, 0x85, 0xc4, 0x98, 0x31, 0x18, 0xdd, 0x83, 0x0d, 0x8f, 0xbc, 0xe7, 0x56, 0x0b, 0x5f, + 0x10, 0x45, 0xe2, 0xb2, 0x20, 0x71, 0x2d, 0x1a, 0x3e, 0xc7, 0x17, 0x44, 0x12, 0xf9, 0x18, 0xe6, + 0xc5, 0xb2, 0x28, 0x82, 0xf0, 0x5e, 0xce, 0xcd, 0xf4, 0x57, 0x11, 0xd2, 0x94, 0x06, 0xe8, 0x2d, + 0x5c, 0x1f, 0x2e, 0x01, 0xab, 0x57, 0xd5, 0x2b, 0xe3, 0x54, 0xf5, 0xce, 0x50, 0x0d, 0xc4, 0xaf, + 0xd0, 0x21, 0xac, 0x07, 0x76, 0x83, 0x38, 0xa1, 0x4b, 0x1c, 0x2b, 0x6a, 0x34, 0xc5, 0x55, 0xe1, + 0xb1, 0x34, 0x44, 0x5c, 0x35, 0xee, 0x42, 0xe6, 0x5a, 0x62, 0x11, 0x8d, 0xa1, 0x67, 0xb0, 0x1a, + 0xd3, 0x25, 0x1c, 0xac, 0x8d, 0x74, 0xb0, 0xa2, 0xf0, 0xc2, 0xfc, 0x0d, 0x2c, 0x46, 0x53, 0xa5, + 0x24, 0x28, 0xae, 0xef, 0xce, 0xee, 0xad, 0x1c, 0x3c, 0xd3, 0x4e, 0x26, 0x67, 0x19, 0x55, 0xbe, + 0x92, 0xf6, 0xcf, 0x3d, 0x1e, 0x91, 0xa3, 0xbc, 0xa1, 0x32, 0x08, 0x16, 0x7a, 0x35, 0xb4, 0x21, + 0xd8, 0x5f, 0x89, 0x06, 0xe3, 0x02, 0xaa, 0xc0, 0x16, 0x67, 0x1c, 0xbb, 0x96, 0x62, 0xd4, 0xaa, + 0x75, 0x39, 0x09, 0x8a, 0x05, 0x81, 0xdc, 0x14, 0xaf, 0x14, 0xe9, 0x47, 0xd1, 0x0b, 0xf4, 0x12, + 0x0a, 0x38, 0xe4, 0xcc, 0xb2, 0x99, 0x57, 0xa7, 0x17, 0xb2, 0xa8, 0x36, 0xc5, 0x7c, 0xef, 0x68, + 0xa3, 0x3e, 0x0c, 0x39, 0x3b, 0x16, 0xd8, 0xa8, 0xce, 0xcc, 0x75, 0xdc, 0xf7, 0x5c, 0x7a, 0x0b, + 0xab, 0xe9, 0xd8, 0x51, 0x01, 0x66, 0x2f, 0x49, 0x57, 0x75, 0xb1, 0xe8, 0xcf, 0xa8, 0x72, 0xda, + 0xd1, 0x62, 0x51, 0xab, 0x7e, 0xac, 0xca, 0x11, 0x06, 0x4f, 0x66, 0x1e, 0x1b, 0xe5, 0xbf, 0xcc, + 0xc3, 0x1d, 0x99, 0x25, 0x27, 0x9d, 0xb8, 0x63, 0xd6, 0x6c, 0xb9, 0x84, 0x13, 0x27, 0x6e, 0xa0, + 0x23, 0xfa, 0xd0, 0x53, 0x58, 0x8e, 0x37, 0x87, 0xa0, 0x38, 0x23, 0x48, 0xd2, 0x57, 0x5c, 0xfc, + 0x11, 0xb3, 0x87, 0x47, 0x3f, 0x82, 0xcd, 0x5e, 0xe1, 0xda, 0xcc, 0xe3, 0xe4, 0x3d, 0x17, 0x1d, + 0x67, 0xd5, 0x2c, 0x24, 0x2f, 0x8e, 0xe5, 0x78, 0x5f, 0xd7, 0x9d, 0x1b, 0xe8, 0xba, 0xbf, 0x82, + 0xcd, 0x80, 0x53, 0xfb, 0xb2, 0x6b, 0x61, 0xce, 0x7d, 0x5a, 0x0b, 0x23, 0xa6, 0xe6, 0x45, 0x5a, + 0x2a, 0xda, 0x68, 0x5e, 0x09, 0x74, 0x52, 0xf3, 0x87, 0x89, 0x95, 0x59, 0x90, 0x8e, 0x7a, 0x23, + 0xe8, 0x53, 0x28, 0xfa, 0x84, 0x87, 0xbe, 0x67, 0x79, 0xa4, 0x63, 0xc5, 0xd1, 0x8b, 0x85, 0x26, + 0x5a, 0xcb, 0x92, 0xf9, 0x7f, 0xf2, 0xfd, 0x97, 0xa4, 0x93, 0x4e, 0x25, 0x3a, 0x82, 0x9b, 0x75, + 0xe6, 0xdb, 0xc4, 0xb2, 0x7d, 0x82, 0x39, 0xd1, 0x98, 0x2f, 0x0a, 0xf3, 0x92, 0x40, 0x1d, 0x0b, + 0xd0, 0xa0, 0x0f, 0xcd, 0x7e, 0xb2, 0xa4, 0xdb, 0x4f, 0x10, 0x83, 0x35, 0xd1, 0x16, 0x2c, 0x9f, + 0x04, 0xa1, 0xcb, 0x83, 0xe2, 0xb2, 0x20, 0xe3, 0x17, 0xda, 0xe9, 0x8f, 0x41, 0x7c, 0x45, 0x56, + 0x8c, 0x74, 0x26, 0x97, 0xcf, 0xea, 0xbb, 0xd4, 0x50, 0x89, 0xc2, 0xe6, 0x10, 0x44, 0x53, 0xa5, + 0x3f, 0xeb, 0xaf, 0xd2, 0xbd, 0x31, 0xaa, 0x54, 0x38, 0x4c, 0xd7, 0xea, 0x87, 0x59, 0xf8, 0x41, + 0x7e, 0xc8, 0x6a, 0xd3, 0xfc, 0x1a, 0xd6, 0xfa, 0x13, 0x6c, 0x88, 0x8f, 0xfe, 0x64, 0xd2, 0xb6, + 0x61, 0xae, 0x3a, 0x69, 0x12, 0x3e, 0x18, 0x70, 0x13, 0xdb, 0x9c, 0xb6, 0x29, 0xa7, 0x24, 0xb0, + 0x38, 0xb3, 0x1c, 0x1a, 0xb4, 0x30, 0xb7, 0x1b, 0x96, 0xcb, 0x6c, 0xec, 0xba, 0x5d, 0x55, 0xfa, + 0xdf, 0x4c, 0x91, 0x6d, 0xd5, 0xa8, 0x0e, 0x13, 0xff, 0x55, 0x76, 0xa2, 0xbc, 0x7f, 0x21, 0x9d, + 0xcb, 0xec, 0x5f, 0xc3, 0xd9, 0x88, 0xd2, 0xaf, 0x61, 0x77, 0x94, 0x03, 0x0d, 0x37, 0x27, 0xfd, + 0xdc, 0xe8, 0x97, 0x8a, 0xf2, 0xdb, 0x15, 0xbe, 0x62, 0xc7, 0x67, 0x5e, 0x9d, 0xa5, 0x19, 0xfa, + 0xcd, 0x0c, 0xec, 0x6a, 0xa6, 0x79, 0x8a, 0xa9, 0x3b, 0x76, 0x2b, 0x39, 0x82, 0x79, 0x1b, 0x87, + 0x81, 0x8c, 0x66, 0xfd, 0xe0, 0x41, 0x6e, 0x1b, 0xe9, 0x79, 0x3f, 0x8e, 0x6c, 0x4c, 0x69, 0x1a, + 0xed, 0xd6, 0x0e, 0xe1, 0x98, 0xba, 0x81, 0x52, 0x2e, 0xfa, 0xdd, 0xfa, 0x1c, 0x77, 0x5d, 0x86, + 0x1d, 0x33, 0x06, 0xe7, 0x36, 0x17, 0xcd, 0x12, 0x9c, 0xd7, 0x4a, 0xba, 0x3b, 0x70, 0x3b, 0x27, + 0x07, 0x92, 0xe7, 0xf2, 0x3f, 0x7a, 0x7a, 0x35, 0xce, 0xec, 0x55, 0xea, 0xd5, 0x57, 0x80, 0x12, + 0xbf, 0x56, 0x93, 0x70, 0xec, 0x60, 0x8e, 0x95, 0x42, 0xbb, 0x9b, 0xfb, 0x81, 0x97, 0x0a, 0x6c, + 0x16, 0xf8, 0xc0, 0x48, 0xf9, 0x6f, 0x3d, 0x6d, 0xdb, 0x3f, 0xc7, 0x2b, 0xd5, 0xb6, 0xb7, 0x60, + 0x45, 0x2d, 0xa1, 0x6e, 0xb4, 0xe5, 0xcb, 0x4c, 0x40, 0x3c, 0x74, 0xe6, 0x44, 0xe2, 0x37, 0x01, + 0x08, 0xf1, 0x3b, 0x97, 0x23, 0x7e, 0x93, 0x89, 0x09, 0xf1, 0x8b, 0x53, 0x4f, 0xe8, 0x00, 0xe6, + 0xa9, 0xd7, 0x0a, 0xb9, 0xda, 0x81, 0xf2, 0x4b, 0x50, 0x42, 0x35, 0x62, 0x6b, 0xe1, 0x3f, 0x15, + 0x5b, 0x8b, 0x93, 0x89, 0xad, 0x2a, 0xec, 0xc4, 0xfe, 0xa2, 0x0e, 0x67, 0xbb, 0x2c, 0x20, 0xc2, + 0x11, 0x0b, 0xb9, 0x92, 0xbe, 0x3b, 0x43, 0xbe, 0x4e, 0xd4, 0xf9, 0xd4, 0xdc, 0x8e, 0x6d, 0xab, + 0xec, 0x38, 0xb2, 0xac, 0x4a, 0x43, 0xf4, 0x25, 0x6c, 0x8b, 0x8f, 0x0c, 0xbb, 0x5c, 0x1e, 0xe5, + 0x72, 0x4b, 0x18, 0x0e, 0xf8, 0x3b, 0x85, 0xcd, 0x06, 0xc1, 0x3e, 0xaf, 0x11, 0xcc, 0x13, 0x57, + 0x30, 0xca, 0x55, 0x21, 0xb1, 0x89, 0xfd, 0xa4, 0x8e, 0x07, 0x91, 0x4e, 0x9e, 0xef, 0x1d, 0x0f, + 0xde, 0xc2, 0xcd, 0x7e, 0x26, 0x2c, 0x56, 0xb7, 0x78, 0x83, 0x06, 0x56, 0x6c, 0x30, 0x5a, 0x06, + 0x97, 0xfa, 0x98, 0xf9, 0x65, 0xbd, 0xda, 0xa0, 0xc1, 0xa1, 0xf2, 0x7f, 0x96, 0x9e, 0x41, 0xdc, + 0xac, 0xd6, 0xc6, 0xa8, 0x94, 0xde, 0x24, 0x4e, 0x54, 0xd7, 0x1a, 0x3a, 0xad, 0xad, 0x4f, 0x77, + 0x5a, 0xbb, 0x0f, 0x1b, 0x89, 0x1f, 0xd5, 0x7d, 0x36, 0x64, 0x87, 0x8b, 0x87, 0x4f, 0x64, 0x17, + 0xfa, 0x18, 0x16, 0x1a, 0x04, 0x3b, 0xc4, 0x17, 0x32, 0x38, 0x3a, 0xc3, 0x69, 0xcf, 0x42, 0x02, + 0x62, 0x2a, 0xe8, 0x7f, 0x59, 0x18, 0x97, 0xbf, 0x33, 0x12, 0xe1, 0x9a, 0x6e, 0x2e, 0x93, 0x0a, + 0xd7, 0x4f, 0x60, 0x41, 0x2a, 0x25, 0xd5, 0x58, 0xf2, 0x73, 0xaf, 0xb0, 0x79, 0xad, 0xb4, 0x7c, + 0x2f, 0x11, 0x29, 0x19, 0x71, 0xa9, 0x1d, 0xe0, 0xb7, 0x33, 0x70, 0x3f, 0x0f, 0x78, 0xd4, 0x3d, + 0x3b, 0x19, 0xb5, 0x1d, 0x5c, 0x55, 0x8b, 0xec, 0x65, 0x6d, 0x6e, 0xca, 0xac, 0xcd, 0x0f, 0x64, + 0xed, 0x87, 0xb0, 0x37, 0x3a, 0x19, 0x2a, 0x73, 0x7f, 0x34, 0x12, 0x95, 0x91, 0x06, 0x4f, 0xa4, + 0x32, 0x1e, 0xc1, 0x62, 0x1d, 0x53, 0x37, 0xf4, 0x49, 0x2e, 0xf1, 0xa7, 0x12, 0x63, 0xc6, 0xe0, + 0x5c, 0xe6, 0x7b, 0x1b, 0xbf, 0x2e, 0x2c, 0x15, 0xfc, 0xb7, 0x33, 0xda, 0xfa, 0x90, 0xa8, 0xef, + 0x33, 0xe7, 0xa9, 0x8c, 0xcd, 0x4d, 0x9b, 0xb1, 0x41, 0xd6, 0xef, 0xc3, 0xdd, 0x11, 0xb9, 0x50, + 0x59, 0xfb, 0x93, 0x01, 0x65, 0x5d, 0x7d, 0x60, 0xcf, 0x26, 0x13, 0x91, 0x1e, 0x77, 0xda, 0x99, + 0x69, 0x65, 0xe1, 0x20, 0xe9, 0x77, 0xf5, 0x6d, 0x28, 0x09, 0x4c, 0x4d, 0xe0, 0x77, 0x33, 0x70, + 0x2f, 0x07, 0xf7, 0x3d, 0x27, 0x3e, 0xce, 0xda, 0xdc, 0xb4, 0x59, 0x1b, 0x24, 0xfe, 0x23, 0x7d, + 0xef, 0xeb, 0xcb, 0x46, 0x1f, 0xf5, 0x36, 0xf3, 0xfb, 0xa0, 0x2f, 0xe2, 0x4d, 0xf0, 0x0a, 0xa9, + 0x3f, 0x8f, 0xa8, 0xcf, 0x09, 0x4c, 0xc9, 0xdc, 0x8f, 0xa0, 0x60, 0x8b, 0x89, 0x59, 0xbe, 0x8c, + 0x95, 0x38, 0x22, 0xbe, 0x25, 0x73, 0x43, 0x8e, 0x9b, 0xf1, 0xb0, 0xaa, 0x92, 0x4c, 0x97, 0xff, + 0x6b, 0x55, 0x52, 0x8d, 0xaa, 0x64, 0x44, 0x36, 0x26, 0x4f, 0xf2, 0xdf, 0x7b, 0xdb, 0x87, 0xb8, + 0x68, 0x98, 0x46, 0x36, 0xfc, 0x7c, 0x40, 0x36, 0x8c, 0x7f, 0x9f, 0x11, 0x6f, 0x86, 0xaf, 0x61, + 0x4b, 0xfe, 0x23, 0xc8, 0x6a, 0x13, 0x5f, 0xdc, 0x54, 0x50, 0xaf, 0xce, 0xd4, 0x71, 0x35, 0x9b, + 0x28, 0xe2, 0xbf, 0x96, 0x70, 0x71, 0xf4, 0xde, 0xec, 0x0c, 0x0e, 0xa5, 0x36, 0x21, 0xdd, 0xe4, + 0x62, 0xed, 0x61, 0x40, 0xc9, 0x24, 0x01, 0xe1, 0xf2, 0x02, 0x2c, 0x39, 0x2c, 0x5e, 0x49, 0x6d, + 0x95, 0x6f, 0xc0, 0x35, 0x6d, 0x30, 0x2a, 0x58, 0x1f, 0xd6, 0xfb, 0xb5, 0x20, 0x7a, 0x00, 0x88, + 0x78, 0xb8, 0xe6, 0x12, 0x2b, 0xa5, 0x28, 0x15, 0xdd, 0x05, 0xf9, 0xa6, 0x67, 0x81, 0x0e, 0x60, + 0xbb, 0xc5, 0x5c, 0x97, 0xf8, 0x56, 0x07, 0x53, 0x79, 0x5a, 0xb0, 0xa8, 0x67, 0x35, 0x65, 0x27, + 0x98, 0x35, 0x91, 0x7c, 0xfb, 0x06, 0x53, 0x71, 0x2c, 0x38, 0xf3, 0x5e, 0x06, 0x07, 0xff, 0xdc, + 0x80, 0x65, 0x99, 0xee, 0xc3, 0xf3, 0x33, 0xf4, 0x1e, 0xb6, 0x34, 0xb7, 0x44, 0x68, 0x7f, 0xfc, + 0xfb, 0x24, 0x91, 0xd7, 0xd2, 0xc4, 0x17, 0x50, 0xe8, 0x0f, 0x06, 0x5c, 0xcf, 0xbb, 0x37, 0x42, + 0x8f, 0xa7, 0xbd, 0xd8, 0x2b, 0x7d, 0x36, 0xf5, 0x25, 0x15, 0xfa, 0xd6, 0x80, 0x9d, 0xcc, 0x2b, + 0x0e, 0xf4, 0xd3, 0x71, 0x1d, 0xf7, 0x09, 0xb6, 0xd2, 0xa3, 0x49, 0xcd, 0x54, 0x30, 0x3d, 0x72, + 0xd2, 0x5d, 0x22, 0x9f, 0x1c, 0xcd, 0x95, 0x4b, 0x3e, 0x39, 0xda, 0xfb, 0x8b, 0x14, 0x39, 0x5a, + 0xd1, 0x9a, 0x4f, 0x4e, 0xde, 0xa9, 0x25, 0x9f, 0x9c, 0xdc, 0x73, 0x05, 0xfa, 0xa0, 0x57, 0xc7, + 0x7d, 0x52, 0x1a, 0x7d, 0x3e, 0xb1, 0xff, 0xd4, 0xde, 0x53, 0x7a, 0x36, 0xa5, 0xf5, 0x70, 0xf9, + 0x0c, 0xcb, 0xbe, 0xfc, 0xf2, 0xc9, 0xd4, 0xfb, 0xf9, 0xe5, 0x93, 0xad, 0xc7, 0xd1, 0x77, 0x06, + 0xdc, 0xc8, 0xd5, 0xa0, 0xe8, 0xb3, 0xc9, 0x3c, 0xa7, 0x13, 0xf5, 0x64, 0x1a, 0x53, 0x15, 0xd8, + 0xef, 0x0d, 0xd1, 0x16, 0xb3, 0x34, 0x12, 0xfa, 0x74, 0x6c, 0x12, 0xfa, 0x45, 0x72, 0xe9, 0xf1, + 0xe4, 0x86, 0x2a, 0xa4, 0x3f, 0x1b, 0x70, 0x6b, 0x84, 0x6c, 0x43, 0x4f, 0x27, 0xf5, 0x9e, 0xce, + 0xd7, 0xe7, 0xd3, 0x19, 0xf7, 0x65, 0x2c, 0x53, 0x2f, 0x64, 0x66, 0x6c, 0x94, 0xb6, 0xcc, 0xcc, + 0xd8, 0x68, 0xed, 0x27, 0x33, 0x96, 0x2b, 0x61, 0x32, 0x33, 0x36, 0x8e, 0x0c, 0xcc, 0xcc, 0xd8, + 0x78, 0xaa, 0x29, 0xb5, 0x12, 0x87, 0xd5, 0x42, 0xfe, 0x4a, 0xcc, 0x94, 0x4e, 0xf9, 0x2b, 0x31, + 0x5b, 0x94, 0x44, 0x8d, 0x5c, 0x23, 0x03, 0x32, 0x1a, 0x79, 0xb6, 0x7a, 0xc9, 0x68, 0xe4, 0x39, + 0x0a, 0xe3, 0xa8, 0x06, 0xff, 0x6f, 0xb3, 0xa6, 0xce, 0xec, 0x08, 0x49, 0x15, 0xf0, 0x4a, 0xfe, + 0x76, 0xe7, 0xdc, 0x67, 0x9c, 0x9d, 0x1b, 0xdf, 0x3c, 0xbc, 0xa0, 0xbc, 0x11, 0xd6, 0x2a, 0x36, + 0x6b, 0xee, 0xa7, 0x7f, 0x9c, 0xf2, 0x63, 0xea, 0xb8, 0xfb, 0x17, 0x4c, 0xfe, 0xee, 0x46, 0xfd, + 0x52, 0xe5, 0x29, 0x6e, 0xd1, 0xf6, 0xc3, 0xda, 0x82, 0x18, 0xfb, 0xf8, 0xdf, 0x01, 0x00, 0x00, + 0xff, 0xff, 0x83, 0x33, 0x80, 0xed, 0x1b, 0x24, 0x00, 0x00, }, // uber/cadence/api/v1/decision.proto []byte{ diff --git a/.gen/proto/matching/v1/service.pb.yarpc.go b/.gen/proto/matching/v1/service.pb.yarpc.go index 1c5b266c484..c93989cbe5f 100644 --- a/.gen/proto/matching/v1/service.pb.yarpc.go +++ b/.gen/proto/matching/v1/service.pb.yarpc.go @@ -1318,131 +1318,137 @@ var yarpcFileDescriptorClosure826e827d3aabf7fc = [][]byte{ }, // uber/cadence/api/v1/service_worker.proto []byte{ - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x5a, 0xcd, 0x73, 0xdb, 0xc6, - 0x15, 0x1f, 0x48, 0xa2, 0x3e, 0x9e, 0xbe, 0xa8, 0xd5, 0xd4, 0xa5, 0xe8, 0x2f, 0x99, 0xa9, 0x6d, - 0xa5, 0x4d, 0xc9, 0x5a, 0x49, 0x1d, 0xc7, 0x8e, 0x3b, 0xd5, 0x87, 0x35, 0x56, 0x27, 0x4d, 0x15, - 0x98, 0x71, 0x66, 0xd2, 0x19, 0x63, 0x96, 0xc0, 0x4a, 0xdc, 0x11, 0x88, 0xa5, 0x81, 0x05, 0x29, - 0x5e, 0x7a, 0xe8, 0x31, 0xe9, 0xa1, 0x33, 0x9d, 0xa6, 0x97, 0xce, 0xf8, 0xdc, 0x4b, 0x6f, 0xfd, - 0x6b, 0x7a, 0xea, 0xb9, 0xff, 0x44, 0x07, 0xbb, 0x0b, 0x10, 0x24, 0x17, 0xe0, 0x47, 0x0f, 0xca, - 0x4c, 0x6e, 0xc2, 0xe2, 0xf7, 0x1e, 0xde, 0xbe, 0xdf, 0xdb, 0xb7, 0xbf, 0x5d, 0x11, 0xf6, 0xc2, - 0x06, 0xf1, 0x6b, 0x36, 0x76, 0x88, 0x67, 0x93, 0x1a, 0x6e, 0xd3, 0x5a, 0xe7, 0x51, 0x2d, 0x20, - 0x7e, 0x87, 0xda, 0xc4, 0xea, 0x32, 0xff, 0x92, 0xf8, 0xd5, 0xb6, 0xcf, 0x38, 0x43, 0xdb, 0x11, - 0xb2, 0xaa, 0x90, 0x55, 0xdc, 0xa6, 0xd5, 0xce, 0xa3, 0xf2, 0x9d, 0x0b, 0xc6, 0x2e, 0x5c, 0x52, - 0x13, 0x90, 0x46, 0x78, 0x5e, 0x73, 0x42, 0x1f, 0x73, 0xca, 0x3c, 0x69, 0x54, 0xbe, 0x3b, 0xfc, - 0x9e, 0xd3, 0x16, 0x09, 0x38, 0x6e, 0xb5, 0x15, 0x60, 0xc4, 0x41, 0xd7, 0xc7, 0xed, 0x36, 0xf1, - 0x03, 0xf5, 0x7e, 0x57, 0x17, 0x9f, 0xcd, 0x5a, 0xad, 0xe4, 0x13, 0x15, 0x1d, 0xc2, 0x21, 0x36, - 0x0d, 0xfa, 0x61, 0xdc, 0xd3, 0x61, 0x9a, 0x34, 0xe0, 0xcc, 0xef, 0xc5, 0x91, 0xea, 0x20, 0x6f, - 0x43, 0x92, 0x00, 0xb4, 0xdf, 0xe1, 0x38, 0xb8, 0x74, 0x69, 0xc0, 0xf3, 0x30, 0x51, 0x16, 0xcf, - 0x5d, 0xd6, 0x95, 0x98, 0xca, 0xbf, 0x0c, 0x28, 0x9f, 0x31, 0xd7, 0x3d, 0x61, 0xfe, 0xb1, 0x8a, - 0xb2, 0x8e, 0x83, 0x4b, 0x93, 0xbc, 0x0d, 0x49, 0xc0, 0xd1, 0x0d, 0x58, 0x74, 0x58, 0x0b, 0x53, - 0xaf, 0x64, 0xec, 0x1a, 0x7b, 0x2b, 0xa6, 0x7a, 0x42, 0x4f, 0x61, 0x25, 0xfa, 0x98, 0x15, 0x7d, - 0xad, 0x34, 0xb7, 0x6b, 0xec, 0xad, 0xee, 0xdf, 0xae, 0x6a, 0x28, 0xa9, 0x46, 0xce, 0x3e, 0xa3, - 0x01, 0x37, 0x97, 0xb9, 0xfa, 0x0b, 0x95, 0x61, 0x99, 0x3a, 0xc4, 0xe3, 0x94, 0xf7, 0x4a, 0xf3, - 0xc2, 0x6b, 0xf2, 0x8c, 0x1e, 0xc2, 0x66, 0x83, 0x7a, 0xd8, 0xef, 0x59, 0x76, 0x93, 0xd8, 0x97, - 0x41, 0xd8, 0x2a, 0x2d, 0x08, 0xc8, 0x86, 0x1c, 0x3e, 0x52, 0xa3, 0x95, 0x7f, 0x2e, 0xc3, 0x4d, - 0x6d, 0xdc, 0x41, 0x9b, 0x79, 0x01, 0x41, 0xb7, 0x01, 0x44, 0x80, 0x9c, 0x5d, 0x12, 0x19, 0xfc, - 0x9a, 0x29, 0x42, 0xae, 0x47, 0x03, 0xe8, 0x4b, 0x40, 0x71, 0x22, 0x2c, 0x72, 0x45, 0xec, 0x30, - 0xaa, 0x12, 0x35, 0x91, 0x07, 0xda, 0x89, 0x7c, 0xa5, 0xe0, 0x2f, 0x62, 0xb4, 0xb9, 0xd5, 0x1d, - 0x1e, 0x42, 0x27, 0xb0, 0x9e, 0xb8, 0xe5, 0xbd, 0x36, 0x11, 0xf3, 0x5b, 0xdd, 0xbf, 0x97, 0xeb, - 0xb1, 0xde, 0x6b, 0x13, 0x73, 0xad, 0x9b, 0x7a, 0x42, 0xaf, 0x61, 0xa7, 0xed, 0x93, 0x0e, 0x65, - 0x61, 0x60, 0x05, 0x1c, 0xfb, 0x9c, 0x38, 0x16, 0xe9, 0x10, 0x8f, 0x5b, 0xd4, 0x11, 0x09, 0x59, - 0xdd, 0xbf, 0x59, 0x95, 0xb5, 0x5a, 0x8d, 0x6b, 0xb5, 0x7a, 0xea, 0xf1, 0xc7, 0x1f, 0xbd, 0xc6, - 0x6e, 0x48, 0xcc, 0x1b, 0xb1, 0xf5, 0x2b, 0x69, 0xfc, 0x22, 0xb2, 0x3d, 0x75, 0xd0, 0x1e, 0x14, - 0x47, 0xdc, 0x15, 0x76, 0x8d, 0xbd, 0x79, 0x73, 0x23, 0x18, 0x44, 0x96, 0x60, 0x09, 0x73, 0x4e, - 0x5a, 0x6d, 0x5e, 0x5a, 0x14, 0x80, 0xf8, 0x11, 0x7d, 0x00, 0xa8, 0x81, 0xed, 0x4b, 0x97, 0x5d, - 0x58, 0x36, 0x0b, 0x3d, 0x6e, 0x35, 0xa9, 0xc7, 0x4b, 0x4b, 0x02, 0x54, 0x54, 0x6f, 0x8e, 0xa2, - 0x17, 0x2f, 0xa9, 0xc7, 0xd1, 0x63, 0x58, 0x52, 0x95, 0x5d, 0x5a, 0x16, 0x71, 0xdf, 0xd2, 0xe6, - 0xe2, 0xa5, 0xc4, 0x98, 0x31, 0x18, 0x3d, 0x80, 0x4d, 0x8f, 0x5c, 0x71, 0xab, 0x8d, 0x2f, 0x88, - 0x22, 0x71, 0x45, 0x90, 0xb8, 0x1e, 0x0d, 0x9f, 0xe1, 0x0b, 0x22, 0x89, 0x7c, 0x02, 0x05, 0xb1, - 0x2c, 0x4a, 0x20, 0xbc, 0x57, 0x72, 0x33, 0xfd, 0x45, 0x84, 0x34, 0xa5, 0x01, 0x7a, 0x03, 0xb7, - 0x46, 0x4b, 0xc0, 0xea, 0x57, 0xf5, 0xea, 0x24, 0x55, 0xbd, 0x33, 0x52, 0x03, 0xf1, 0x2b, 0x74, - 0x00, 0x1b, 0x81, 0xdd, 0x24, 0x4e, 0xe8, 0x12, 0xc7, 0x8a, 0x1a, 0x4d, 0x69, 0x4d, 0x78, 0x2c, - 0x8f, 0x10, 0x57, 0x8f, 0xbb, 0x90, 0xb9, 0x9e, 0x58, 0x44, 0x63, 0xe8, 0x39, 0xac, 0xc5, 0x74, - 0x09, 0x07, 0xeb, 0x63, 0x1d, 0xac, 0x2a, 0xbc, 0x30, 0xff, 0x0a, 0x96, 0xa2, 0xa9, 0x52, 0x12, - 0x94, 0x36, 0x76, 0xe7, 0xf7, 0x56, 0xf7, 0x9f, 0x6b, 0x27, 0x93, 0xb3, 0x8c, 0xaa, 0x5f, 0x48, - 0xfb, 0x17, 0x1e, 0x8f, 0xc8, 0x51, 0xde, 0x50, 0x05, 0x04, 0x0b, 0xfd, 0x1a, 0xda, 0x14, 0xec, - 0xaf, 0x46, 0x83, 0x71, 0x01, 0x55, 0x61, 0x9b, 0x33, 0x8e, 0x5d, 0x4b, 0x31, 0x6a, 0x35, 0x7a, - 0x9c, 0x04, 0xa5, 0xa2, 0x40, 0x6e, 0x89, 0x57, 0x8a, 0xf4, 0xc3, 0xe8, 0x45, 0xf9, 0x0d, 0xac, - 0xa5, 0x3f, 0x86, 0x8a, 0x30, 0x7f, 0x49, 0x7a, 0xaa, 0xed, 0x44, 0x7f, 0x46, 0x54, 0x77, 0xa2, - 0xea, 0x56, 0xcb, 0x74, 0x22, 0xaa, 0x85, 0xc1, 0xd3, 0xb9, 0x27, 0x46, 0xe5, 0x1f, 0x05, 0x78, - 0x4f, 0x4e, 0xcb, 0x49, 0xcf, 0xf4, 0x88, 0xb5, 0xda, 0x2e, 0xe1, 0xc4, 0x89, 0x3b, 0xde, 0x98, - 0xc6, 0xf1, 0x0c, 0x56, 0xe2, 0x6e, 0x1e, 0x94, 0xe6, 0x44, 0x56, 0xf5, 0x25, 0x12, 0x7f, 0xc4, - 0xec, 0xe3, 0xd1, 0xcf, 0x60, 0xab, 0x5f, 0x69, 0x36, 0xf3, 0x38, 0xb9, 0xe2, 0xa2, 0x45, 0xac, - 0x99, 0xc5, 0xe4, 0xc5, 0x91, 0x1c, 0x1f, 0x68, 0x93, 0x0b, 0x43, 0x6d, 0xf2, 0xf7, 0xb0, 0x15, - 0x70, 0x6a, 0x5f, 0xf6, 0x2c, 0xcc, 0xb9, 0x4f, 0x1b, 0x61, 0x94, 0xda, 0x82, 0x48, 0x4b, 0x55, - 0x1b, 0xcd, 0x2b, 0x81, 0x4e, 0x8a, 0xf4, 0x20, 0xb1, 0x32, 0x8b, 0xd2, 0x51, 0x7f, 0x04, 0x7d, - 0x0c, 0x25, 0x9f, 0xf0, 0xd0, 0xf7, 0x2c, 0x8f, 0x74, 0xad, 0x38, 0x7a, 0xb1, 0x32, 0x44, 0x2f, - 0x58, 0x36, 0x7f, 0x24, 0xdf, 0x7f, 0x4e, 0xba, 0xe9, 0x54, 0xa2, 0x43, 0xb8, 0x73, 0xce, 0x7c, - 0x9b, 0x58, 0xb6, 0x4f, 0x30, 0x27, 0x1a, 0xf3, 0x25, 0x61, 0x5e, 0x16, 0xa8, 0x23, 0x01, 0x1a, - 0xf6, 0xa1, 0xd9, 0x00, 0x96, 0x75, 0x1b, 0x00, 0x62, 0xb0, 0x2e, 0xd6, 0xb1, 0xe5, 0x93, 0x20, - 0x74, 0x79, 0x50, 0x5a, 0x11, 0x64, 0xfc, 0x46, 0x3b, 0xfd, 0x09, 0x88, 0xaf, 0xca, 0x8a, 0x91, - 0xce, 0x64, 0xbd, 0xaf, 0xbd, 0x4d, 0x0d, 0x95, 0x29, 0x6c, 0x8d, 0x40, 0x34, 0x55, 0xfa, 0xab, - 0xc1, 0x2a, 0xdd, 0x9b, 0xa0, 0x4a, 0x85, 0xc3, 0x74, 0xad, 0xbe, 0x9b, 0x87, 0x9f, 0xe4, 0x87, - 0xac, 0x76, 0xb9, 0x2f, 0x61, 0x7d, 0x30, 0xc1, 0x86, 0xf8, 0xe8, 0x2f, 0xa6, 0x5d, 0xe7, 0xe6, - 0x9a, 0x93, 0x26, 0xe1, 0x9d, 0x01, 0x77, 0xb0, 0xcd, 0x69, 0x87, 0x72, 0x4a, 0x02, 0x8b, 0x33, - 0xcb, 0xa1, 0x41, 0x1b, 0x73, 0xbb, 0x69, 0xb9, 0xcc, 0xc6, 0xae, 0xdb, 0x53, 0xa5, 0xff, 0xf5, - 0x0c, 0xd9, 0x56, 0x9d, 0xe5, 0x20, 0xf1, 0x5f, 0x67, 0xc7, 0xca, 0xfb, 0x67, 0xd2, 0xb9, 0xcc, - 0xfe, 0x4d, 0x9c, 0x8d, 0x28, 0xff, 0x01, 0x76, 0xc7, 0x39, 0xd0, 0x70, 0x73, 0x3c, 0xc8, 0x8d, - 0x7e, 0xa9, 0x28, 0xbf, 0x3d, 0xe1, 0x2b, 0x76, 0x7c, 0xea, 0x9d, 0xb3, 0x34, 0x43, 0x7f, 0x9c, - 0x83, 0x5d, 0xcd, 0x34, 0x4f, 0x30, 0x75, 0x27, 0x6e, 0x25, 0x87, 0x50, 0xb0, 0x71, 0x18, 0xc8, - 0x68, 0x36, 0xf6, 0x3f, 0xc8, 0x6d, 0x23, 0x7d, 0xef, 0x47, 0x91, 0x8d, 0x29, 0x4d, 0xa3, 0xed, - 0xd5, 0x21, 0x1c, 0x53, 0x37, 0x50, 0x52, 0x43, 0xbf, 0xbd, 0x9e, 0xe1, 0x9e, 0xcb, 0xb0, 0x63, - 0xc6, 0xe0, 0xdc, 0xe6, 0xa2, 0x59, 0x82, 0x05, 0xad, 0x06, 0x7b, 0x0f, 0xee, 0xe5, 0xe4, 0x40, - 0xf2, 0x5c, 0xf9, 0x4f, 0x5f, 0x60, 0xc6, 0x99, 0xbd, 0x4e, 0x81, 0xf9, 0x0a, 0x50, 0xe2, 0xd7, - 0x6a, 0x11, 0x8e, 0x1d, 0xcc, 0xb1, 0x92, 0x54, 0xf7, 0x73, 0x3f, 0xf0, 0x5b, 0x05, 0x36, 0x8b, - 0x7c, 0x68, 0xa4, 0xf2, 0x6d, 0x5f, 0x8c, 0x0e, 0xce, 0xf1, 0x5a, 0xc5, 0xe8, 0x5d, 0x58, 0x55, - 0x4b, 0xa8, 0x17, 0xed, 0xd1, 0x32, 0x13, 0x10, 0x0f, 0x9d, 0x3a, 0x91, 0x5a, 0x4d, 0x00, 0x42, - 0xad, 0x2e, 0xe4, 0xa8, 0xd5, 0x64, 0x62, 0x42, 0xad, 0xe2, 0xd4, 0x13, 0xda, 0x87, 0x02, 0xf5, - 0xda, 0x21, 0x57, 0x3b, 0x50, 0x7e, 0x09, 0x4a, 0xa8, 0x46, 0x1d, 0x2d, 0xfe, 0xbf, 0xea, 0x68, - 0x69, 0x3a, 0x75, 0x54, 0x87, 0x9d, 0xd8, 0x5f, 0xd4, 0xe1, 0x6c, 0x97, 0x05, 0x44, 0x38, 0x62, - 0x21, 0x57, 0x5a, 0x75, 0x67, 0xc4, 0xd7, 0xb1, 0x3a, 0x50, 0x9a, 0x37, 0x62, 0xdb, 0x3a, 0x3b, - 0x8a, 0x2c, 0xeb, 0xd2, 0x10, 0x7d, 0x0e, 0x37, 0xc4, 0x47, 0x46, 0x5d, 0xae, 0x8c, 0x73, 0xb9, - 0x2d, 0x0c, 0x87, 0xfc, 0x9d, 0xc0, 0x56, 0x93, 0x60, 0x9f, 0x37, 0x08, 0xe6, 0x89, 0x2b, 0x18, - 0xe7, 0xaa, 0x98, 0xd8, 0xc4, 0x7e, 0x52, 0x7a, 0x3e, 0x12, 0xb6, 0x85, 0xbe, 0x9e, 0x7f, 0x03, - 0x77, 0x06, 0x99, 0xb0, 0xd8, 0xb9, 0xc5, 0x9b, 0x34, 0xb0, 0x62, 0x83, 0xf1, 0xba, 0xb5, 0x3c, - 0xc0, 0xcc, 0xef, 0xce, 0xeb, 0x4d, 0x1a, 0x1c, 0x28, 0xff, 0xa7, 0xe9, 0x19, 0xc4, 0xcd, 0x6a, - 0x7d, 0x82, 0x4a, 0xe9, 0x4f, 0xe2, 0x58, 0x75, 0xad, 0x91, 0xe3, 0xd5, 0xc6, 0x6c, 0xc7, 0xab, - 0x87, 0xb0, 0x99, 0xf8, 0x51, 0xdd, 0x67, 0x53, 0x76, 0xb8, 0x78, 0xf8, 0x58, 0x76, 0xa1, 0x0f, - 0x61, 0xb1, 0x49, 0xb0, 0x43, 0x7c, 0xa1, 0x5b, 0xa3, 0x43, 0x97, 0xf6, 0xf0, 0x22, 0x20, 0xa6, - 0x82, 0x56, 0xbe, 0x33, 0x12, 0xa5, 0x99, 0xee, 0x06, 0xd3, 0x2a, 0xcd, 0x8f, 0x60, 0x51, 0x4a, - 0x1b, 0xd5, 0x09, 0xf2, 0x93, 0xa5, 0xb0, 0x79, 0xbd, 0xaf, 0xf2, 0x20, 0x51, 0x15, 0x19, 0x71, - 0xa9, 0x96, 0xfd, 0xed, 0x1c, 0x3c, 0xcc, 0x03, 0x1e, 0xf6, 0x4e, 0x8f, 0xc7, 0xf5, 0xef, 0xeb, - 0xea, 0x69, 0xfd, 0xac, 0x2d, 0xcc, 0x98, 0xb5, 0xc2, 0x50, 0xd6, 0x7e, 0x0a, 0x7b, 0xe3, 0x93, - 0xa1, 0x32, 0xf7, 0x57, 0x23, 0x91, 0x05, 0x69, 0xf0, 0x54, 0xb2, 0xe0, 0x31, 0x2c, 0x9d, 0x63, - 0xea, 0x86, 0x3e, 0xc9, 0x25, 0xfe, 0x44, 0x62, 0xcc, 0x18, 0x9c, 0xcb, 0x7c, 0x7f, 0xa7, 0xd6, - 0x85, 0xa5, 0x82, 0xff, 0x66, 0x4e, 0x5b, 0x1f, 0x12, 0xf5, 0x7d, 0xe6, 0x3c, 0x95, 0xb1, 0x85, - 0x59, 0x33, 0x36, 0xcc, 0xfa, 0x43, 0xb8, 0x3f, 0x26, 0x17, 0x2a, 0x6b, 0x7f, 0x33, 0xa0, 0xa2, - 0xab, 0x0f, 0xec, 0xd9, 0x64, 0x2a, 0xd2, 0xe3, 0xd6, 0x38, 0x37, 0xab, 0x8e, 0x1b, 0x26, 0xfd, - 0xbe, 0xbe, 0x0d, 0x25, 0x81, 0xa9, 0x09, 0xfc, 0x69, 0x0e, 0x1e, 0xe4, 0xe0, 0xbe, 0xe7, 0xc4, - 0xc7, 0x59, 0x5b, 0x98, 0x35, 0x6b, 0xc3, 0xc4, 0xbf, 0xaf, 0xef, 0x7d, 0x03, 0xd9, 0x18, 0xa0, - 0xde, 0x66, 0xfe, 0x00, 0xf4, 0x65, 0xbc, 0x6b, 0x5d, 0x23, 0xf5, 0x67, 0x11, 0xf5, 0x39, 0x81, - 0x29, 0x5d, 0xfa, 0x3e, 0x14, 0x6d, 0x31, 0x31, 0xcb, 0x97, 0xb1, 0x12, 0x47, 0xc4, 0xb7, 0x6c, - 0x6e, 0xca, 0x71, 0x33, 0x1e, 0x56, 0x55, 0x92, 0xe9, 0xf2, 0x87, 0x56, 0x25, 0xf5, 0xa8, 0x4a, - 0xc6, 0x64, 0x63, 0xfa, 0x24, 0xff, 0xbb, 0xbf, 0x7d, 0x88, 0x9b, 0x81, 0x59, 0x64, 0xc3, 0xaf, - 0x87, 0x64, 0xc3, 0xe4, 0x17, 0x10, 0xf1, 0x66, 0xf8, 0x1a, 0xb6, 0xe5, 0xbf, 0x5a, 0xac, 0x0e, - 0xf1, 0xc5, 0xd5, 0x02, 0xf5, 0xce, 0x99, 0x3a, 0x5f, 0x66, 0x13, 0x45, 0xfc, 0xd7, 0x12, 0x2e, - 0xce, 0xca, 0x5b, 0xdd, 0xe1, 0xa1, 0xd4, 0x26, 0xa4, 0x9b, 0x5c, 0xac, 0x3d, 0x0c, 0x28, 0x9b, - 0x24, 0x20, 0x5c, 0xde, 0x58, 0x25, 0xa7, 0xbb, 0x6b, 0xa9, 0xad, 0xca, 0x6d, 0xb8, 0xa9, 0x0d, - 0x46, 0x06, 0xbb, 0xff, 0xdf, 0x4d, 0x58, 0x91, 0x53, 0x3f, 0x38, 0x3b, 0x45, 0x57, 0xb0, 0xad, - 0xb9, 0x62, 0x41, 0xb5, 0xc9, 0x2f, 0x63, 0xc4, 0x1c, 0xcb, 0x53, 0xdf, 0xde, 0xa0, 0xbf, 0x18, - 0x70, 0x2b, 0xef, 0xd2, 0x05, 0x3d, 0x99, 0xf5, 0x56, 0xac, 0xfc, 0xc9, 0xcc, 0x37, 0x3c, 0xe8, - 0x1b, 0x03, 0x76, 0x32, 0xef, 0x07, 0xd0, 0x2f, 0x27, 0x75, 0x3c, 0x20, 0x9e, 0xca, 0x8f, 0xa7, - 0x35, 0x53, 0xc1, 0xf4, 0xc9, 0x49, 0xaf, 0xd8, 0x7c, 0x72, 0x34, 0xf7, 0x15, 0xf9, 0xe4, 0x68, - 0x0f, 0xff, 0x29, 0x72, 0xb4, 0x02, 0x32, 0x9f, 0x9c, 0xbc, 0x13, 0x44, 0x3e, 0x39, 0xb9, 0x1a, - 0x1f, 0xbd, 0xd3, 0x2b, 0xd5, 0x01, 0x59, 0x8b, 0x3e, 0x9d, 0xda, 0x7f, 0x6a, 0x1f, 0x28, 0x3f, - 0x9f, 0xd1, 0x7a, 0xb4, 0x7c, 0x46, 0x25, 0x58, 0x7e, 0xf9, 0x64, 0x6a, 0xef, 0xfc, 0xf2, 0xc9, - 0xd6, 0xc6, 0xe8, 0x3b, 0x03, 0x6e, 0xe7, 0xea, 0x41, 0xf4, 0xc9, 0x74, 0x9e, 0xd3, 0x89, 0x7a, - 0x3a, 0x8b, 0xa9, 0x0a, 0xec, 0xcf, 0x86, 0x68, 0x51, 0x59, 0x7a, 0x05, 0x7d, 0x3c, 0x31, 0x09, - 0x83, 0x82, 0xb5, 0xfc, 0x64, 0x7a, 0x43, 0x15, 0xd2, 0xdf, 0x0d, 0xb8, 0x3b, 0x46, 0x42, 0xa1, - 0x67, 0xd3, 0x7a, 0x4f, 0xe7, 0xeb, 0xd3, 0xd9, 0x8c, 0x07, 0x32, 0x96, 0xb9, 0x77, 0x67, 0x66, - 0x6c, 0x9c, 0xce, 0xcb, 0xcc, 0xd8, 0x78, 0x1d, 0x26, 0x33, 0x96, 0x2b, 0x27, 0x32, 0x33, 0x36, - 0x89, 0x24, 0xcb, 0xcc, 0xd8, 0x64, 0x0a, 0x26, 0xb5, 0x12, 0x47, 0x77, 0xee, 0xfc, 0x95, 0x98, - 0x29, 0x63, 0xf2, 0x57, 0x62, 0xb6, 0x40, 0x88, 0x1a, 0xb9, 0x66, 0x4b, 0xce, 0x68, 0xe4, 0xd9, - 0x4a, 0x22, 0xa3, 0x91, 0xe7, 0xec, 0xf6, 0x87, 0x0d, 0xf8, 0xb1, 0xcd, 0x5a, 0x3a, 0xb3, 0x43, - 0x24, 0x55, 0xc0, 0x2b, 0xf9, 0x4b, 0x95, 0x33, 0x9f, 0x71, 0x76, 0x66, 0x7c, 0xfd, 0xe8, 0x82, - 0xf2, 0x66, 0xd8, 0xa8, 0xda, 0xac, 0x55, 0x4b, 0xff, 0x14, 0xe3, 0xe7, 0xd4, 0x71, 0x6b, 0x17, - 0x4c, 0xfe, 0xca, 0x44, 0xfd, 0x2e, 0xe3, 0x19, 0x6e, 0xd3, 0xce, 0xa3, 0xc6, 0xa2, 0x18, 0xfb, - 0xf0, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x78, 0xdf, 0x83, 0x7f, 0x09, 0x23, 0x00, 0x00, + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x5a, 0x5b, 0x6f, 0xdb, 0xc8, + 0xf5, 0x07, 0x7d, 0xf7, 0xf1, 0x4d, 0x1e, 0xe3, 0xef, 0xbf, 0xac, 0xdc, 0x1c, 0xa5, 0x49, 0xbc, + 0x6d, 0x2a, 0x37, 0xde, 0x6d, 0x36, 0x9b, 0x6c, 0x8a, 0xfa, 0x12, 0x23, 0x2e, 0x36, 0x5b, 0x2f, + 0xa3, 0x4d, 0x80, 0x2d, 0x10, 0x62, 0x44, 0x8e, 0xac, 0x81, 0x29, 0x8e, 0x42, 0x0e, 0xa5, 0xe8, + 0xa5, 0x0f, 0x7d, 0xdc, 0xf6, 0xa1, 0x40, 0xd1, 0xed, 0x4b, 0x81, 0x3c, 0xf7, 0x03, 0xf4, 0xcb, + 0xb4, 0x4f, 0x7d, 0xee, 0x67, 0x28, 0x50, 0x70, 0x66, 0x48, 0x51, 0xd2, 0x90, 0xba, 0xb4, 0x80, + 0x17, 0xe8, 0x9b, 0x39, 0xfc, 0x9d, 0xc3, 0x33, 0xe7, 0x77, 0xe6, 0xcc, 0x6f, 0xc6, 0x82, 0xbd, + 0xb0, 0x46, 0xfc, 0x7d, 0x1b, 0x3b, 0xc4, 0xb3, 0xc9, 0x3e, 0x6e, 0xd1, 0xfd, 0xf6, 0xc3, 0xfd, + 0x80, 0xf8, 0x6d, 0x6a, 0x13, 0xab, 0xc3, 0xfc, 0x4b, 0xe2, 0x57, 0x5a, 0x3e, 0xe3, 0x0c, 0x6d, + 0x45, 0xc8, 0x8a, 0x42, 0x56, 0x70, 0x8b, 0x56, 0xda, 0x0f, 0x4b, 0x37, 0x2f, 0x18, 0xbb, 0x70, + 0xc9, 0xbe, 0x80, 0xd4, 0xc2, 0xfa, 0xbe, 0x13, 0xfa, 0x98, 0x53, 0xe6, 0x49, 0xa3, 0xd2, 0xad, + 0xc1, 0xf7, 0x9c, 0x36, 0x49, 0xc0, 0x71, 0xb3, 0xa5, 0x00, 0x43, 0x0e, 0x3a, 0x3e, 0x6e, 0xb5, + 0x88, 0x1f, 0xa8, 0xf7, 0xbb, 0xba, 0xf8, 0x6c, 0xd6, 0x6c, 0x26, 0x9f, 0x28, 0xeb, 0x10, 0x0e, + 0xb1, 0x69, 0xd0, 0x0b, 0xe3, 0xb6, 0x0e, 0xd3, 0xa0, 0x01, 0x67, 0x7e, 0x37, 0x8e, 0x54, 0x07, + 0x79, 0x17, 0x92, 0x04, 0xa0, 0xfd, 0x0e, 0xc7, 0xc1, 0xa5, 0x4b, 0x03, 0x9e, 0x87, 0x89, 0xb2, + 0x58, 0x77, 0x59, 0x47, 0x62, 0xca, 0x7f, 0x35, 0xa0, 0x74, 0xce, 0x5c, 0xf7, 0x94, 0xf9, 0x27, + 0x2a, 0xca, 0x2a, 0x0e, 0x2e, 0x4d, 0xf2, 0x2e, 0x24, 0x01, 0x47, 0xdb, 0xb0, 0xe0, 0xb0, 0x26, + 0xa6, 0x5e, 0xd1, 0xd8, 0x35, 0xf6, 0x96, 0x4d, 0xf5, 0x84, 0x9e, 0xc0, 0x72, 0xf4, 0x31, 0x2b, + 0xfa, 0x5a, 0x71, 0x66, 0xd7, 0xd8, 0x5b, 0x39, 0xb8, 0x51, 0xd1, 0x50, 0x52, 0x89, 0x9c, 0x7d, + 0x41, 0x03, 0x6e, 0x2e, 0x71, 0xf5, 0x17, 0x2a, 0xc1, 0x12, 0x75, 0x88, 0xc7, 0x29, 0xef, 0x16, + 0x67, 0x85, 0xd7, 0xe4, 0x19, 0xdd, 0x87, 0x8d, 0x1a, 0xf5, 0xb0, 0xdf, 0xb5, 0xec, 0x06, 0xb1, + 0x2f, 0x83, 0xb0, 0x59, 0x9c, 0x13, 0x90, 0x75, 0x39, 0x7c, 0xac, 0x46, 0xcb, 0xff, 0x5a, 0x82, + 0x6b, 0xda, 0xb8, 0x83, 0x16, 0xf3, 0x02, 0x82, 0x6e, 0x00, 0x88, 0x00, 0x39, 0xbb, 0x24, 0x32, + 0xf8, 0x55, 0x53, 0x84, 0x5c, 0x8d, 0x06, 0xd0, 0xd7, 0x80, 0xe2, 0x44, 0x58, 0xe4, 0x3d, 0xb1, + 0xc3, 0xa8, 0x4a, 0xd4, 0x44, 0xee, 0x69, 0x27, 0xf2, 0x46, 0xc1, 0x9f, 0xc7, 0x68, 0x73, 0xb3, + 0x33, 0x38, 0x84, 0x4e, 0x61, 0x2d, 0x71, 0xcb, 0xbb, 0x2d, 0x22, 0xe6, 0xb7, 0x72, 0x70, 0x3b, + 0xd7, 0x63, 0xb5, 0xdb, 0x22, 0xe6, 0x6a, 0x27, 0xf5, 0x84, 0x5e, 0xc3, 0x4e, 0xcb, 0x27, 0x6d, + 0xca, 0xc2, 0xc0, 0x0a, 0x38, 0xf6, 0x39, 0x71, 0x2c, 0xd2, 0x26, 0x1e, 0xb7, 0xa8, 0x23, 0x12, + 0xb2, 0x72, 0x70, 0xad, 0x22, 0x6b, 0xb5, 0x12, 0xd7, 0x6a, 0xe5, 0xcc, 0xe3, 0x8f, 0x3e, 0x79, + 0x8d, 0xdd, 0x90, 0x98, 0xdb, 0xb1, 0xf5, 0x2b, 0x69, 0xfc, 0x3c, 0xb2, 0x3d, 0x73, 0xd0, 0x1e, + 0x14, 0x86, 0xdc, 0xcd, 0xef, 0x1a, 0x7b, 0xb3, 0xe6, 0x7a, 0xd0, 0x8f, 0x2c, 0xc2, 0x22, 0xe6, + 0x9c, 0x34, 0x5b, 0xbc, 0xb8, 0x20, 0x00, 0xf1, 0x23, 0x7a, 0x00, 0xa8, 0x86, 0xed, 0x4b, 0x97, + 0x5d, 0x58, 0x36, 0x0b, 0x3d, 0x6e, 0x35, 0xa8, 0xc7, 0x8b, 0x8b, 0x02, 0x54, 0x50, 0x6f, 0x8e, + 0xa3, 0x17, 0x2f, 0xa8, 0xc7, 0xd1, 0x23, 0x58, 0x54, 0x95, 0x5d, 0x5c, 0x12, 0x71, 0x5f, 0xd7, + 0xe6, 0xe2, 0x85, 0xc4, 0x98, 0x31, 0x18, 0xdd, 0x83, 0x0d, 0x8f, 0xbc, 0xe7, 0x56, 0x0b, 0x5f, + 0x10, 0x45, 0xe2, 0xb2, 0x20, 0x71, 0x2d, 0x1a, 0x3e, 0xc7, 0x17, 0x44, 0x12, 0xf9, 0x18, 0xe6, + 0xc5, 0xb2, 0x28, 0x82, 0xf0, 0x5e, 0xce, 0xcd, 0xf4, 0x57, 0x11, 0xd2, 0x94, 0x06, 0xe8, 0x2d, + 0x5c, 0x1f, 0x2e, 0x01, 0xab, 0x57, 0xd5, 0x2b, 0xe3, 0x54, 0xf5, 0xce, 0x50, 0x0d, 0xc4, 0xaf, + 0xd0, 0x21, 0xac, 0x07, 0x76, 0x83, 0x38, 0xa1, 0x4b, 0x1c, 0x2b, 0x6a, 0x34, 0xc5, 0x55, 0xe1, + 0xb1, 0x34, 0x44, 0x5c, 0x35, 0xee, 0x42, 0xe6, 0x5a, 0x62, 0x11, 0x8d, 0xa1, 0x67, 0xb0, 0x1a, + 0xd3, 0x25, 0x1c, 0xac, 0x8d, 0x74, 0xb0, 0xa2, 0xf0, 0xc2, 0xfc, 0x0d, 0x2c, 0x46, 0x53, 0xa5, + 0x24, 0x28, 0xae, 0xef, 0xce, 0xee, 0xad, 0x1c, 0x3c, 0xd3, 0x4e, 0x26, 0x67, 0x19, 0x55, 0xbe, + 0x92, 0xf6, 0xcf, 0x3d, 0x1e, 0x91, 0xa3, 0xbc, 0xa1, 0x32, 0x08, 0x16, 0x7a, 0x35, 0xb4, 0x21, + 0xd8, 0x5f, 0x89, 0x06, 0xe3, 0x02, 0xaa, 0xc0, 0x16, 0x67, 0x1c, 0xbb, 0x96, 0x62, 0xd4, 0xaa, + 0x75, 0x39, 0x09, 0x8a, 0x05, 0x81, 0xdc, 0x14, 0xaf, 0x14, 0xe9, 0x47, 0xd1, 0x0b, 0xf4, 0x12, + 0x0a, 0x38, 0xe4, 0xcc, 0xb2, 0x99, 0x57, 0xa7, 0x17, 0xb2, 0xa8, 0x36, 0xc5, 0x7c, 0xef, 0x68, + 0xa3, 0x3e, 0x0c, 0x39, 0x3b, 0x16, 0xd8, 0xa8, 0xce, 0xcc, 0x75, 0xdc, 0xf7, 0x5c, 0x7a, 0x0b, + 0xab, 0xe9, 0xd8, 0x51, 0x01, 0x66, 0x2f, 0x49, 0x57, 0x75, 0xb1, 0xe8, 0xcf, 0xa8, 0x72, 0xda, + 0xd1, 0x62, 0x51, 0xab, 0x7e, 0xac, 0xca, 0x11, 0x06, 0x4f, 0x66, 0x1e, 0x1b, 0xe5, 0xbf, 0xcc, + 0xc3, 0x1d, 0x99, 0x25, 0x27, 0x9d, 0xb8, 0x63, 0xd6, 0x6c, 0xb9, 0x84, 0x13, 0x27, 0x6e, 0xa0, + 0x23, 0xfa, 0xd0, 0x53, 0x58, 0x8e, 0x37, 0x87, 0xa0, 0x38, 0x23, 0x48, 0xd2, 0x57, 0x5c, 0xfc, + 0x11, 0xb3, 0x87, 0x47, 0x3f, 0x82, 0xcd, 0x5e, 0xe1, 0xda, 0xcc, 0xe3, 0xe4, 0x3d, 0x17, 0x1d, + 0x67, 0xd5, 0x2c, 0x24, 0x2f, 0x8e, 0xe5, 0x78, 0x5f, 0xd7, 0x9d, 0x1b, 0xe8, 0xba, 0xbf, 0x82, + 0xcd, 0x80, 0x53, 0xfb, 0xb2, 0x6b, 0x61, 0xce, 0x7d, 0x5a, 0x0b, 0x23, 0xa6, 0xe6, 0x45, 0x5a, + 0x2a, 0xda, 0x68, 0x5e, 0x09, 0x74, 0x52, 0xf3, 0x87, 0x89, 0x95, 0x59, 0x90, 0x8e, 0x7a, 0x23, + 0xe8, 0x53, 0x28, 0xfa, 0x84, 0x87, 0xbe, 0x67, 0x79, 0xa4, 0x63, 0xc5, 0xd1, 0x8b, 0x85, 0x26, + 0x5a, 0xcb, 0x92, 0xf9, 0x7f, 0xf2, 0xfd, 0x97, 0xa4, 0x93, 0x4e, 0x25, 0x3a, 0x82, 0x9b, 0x75, + 0xe6, 0xdb, 0xc4, 0xb2, 0x7d, 0x82, 0x39, 0xd1, 0x98, 0x2f, 0x0a, 0xf3, 0x92, 0x40, 0x1d, 0x0b, + 0xd0, 0xa0, 0x0f, 0xcd, 0x7e, 0xb2, 0xa4, 0xdb, 0x4f, 0x10, 0x83, 0x35, 0xd1, 0x16, 0x2c, 0x9f, + 0x04, 0xa1, 0xcb, 0x83, 0xe2, 0xb2, 0x20, 0xe3, 0x17, 0xda, 0xe9, 0x8f, 0x41, 0x7c, 0x45, 0x56, + 0x8c, 0x74, 0x26, 0x97, 0xcf, 0xea, 0xbb, 0xd4, 0x50, 0x89, 0xc2, 0xe6, 0x10, 0x44, 0x53, 0xa5, + 0x3f, 0xeb, 0xaf, 0xd2, 0xbd, 0x31, 0xaa, 0x54, 0x38, 0x4c, 0xd7, 0xea, 0x87, 0x59, 0xf8, 0x41, + 0x7e, 0xc8, 0x6a, 0xd3, 0xfc, 0x1a, 0xd6, 0xfa, 0x13, 0x6c, 0x88, 0x8f, 0xfe, 0x64, 0xd2, 0xb6, + 0x61, 0xae, 0x3a, 0x69, 0x12, 0x3e, 0x18, 0x70, 0x13, 0xdb, 0x9c, 0xb6, 0x29, 0xa7, 0x24, 0xb0, + 0x38, 0xb3, 0x1c, 0x1a, 0xb4, 0x30, 0xb7, 0x1b, 0x96, 0xcb, 0x6c, 0xec, 0xba, 0x5d, 0x55, 0xfa, + 0xdf, 0x4c, 0x91, 0x6d, 0xd5, 0xa8, 0x0e, 0x13, 0xff, 0x55, 0x76, 0xa2, 0xbc, 0x7f, 0x21, 0x9d, + 0xcb, 0xec, 0x5f, 0xc3, 0xd9, 0x88, 0xd2, 0xaf, 0x61, 0x77, 0x94, 0x03, 0x0d, 0x37, 0x27, 0xfd, + 0xdc, 0xe8, 0x97, 0x8a, 0xf2, 0xdb, 0x15, 0xbe, 0x62, 0xc7, 0x67, 0x5e, 0x9d, 0xa5, 0x19, 0xfa, + 0xcd, 0x0c, 0xec, 0x6a, 0xa6, 0x79, 0x8a, 0xa9, 0x3b, 0x76, 0x2b, 0x39, 0x82, 0x79, 0x1b, 0x87, + 0x81, 0x8c, 0x66, 0xfd, 0xe0, 0x41, 0x6e, 0x1b, 0xe9, 0x79, 0x3f, 0x8e, 0x6c, 0x4c, 0x69, 0x1a, + 0xed, 0xd6, 0x0e, 0xe1, 0x98, 0xba, 0x81, 0x52, 0x2e, 0xfa, 0xdd, 0xfa, 0x1c, 0x77, 0x5d, 0x86, + 0x1d, 0x33, 0x06, 0xe7, 0x36, 0x17, 0xcd, 0x12, 0x9c, 0xd7, 0x4a, 0xba, 0x3b, 0x70, 0x3b, 0x27, + 0x07, 0x92, 0xe7, 0xf2, 0x3f, 0x7a, 0x7a, 0x35, 0xce, 0xec, 0x55, 0xea, 0xd5, 0x57, 0x80, 0x12, + 0xbf, 0x56, 0x93, 0x70, 0xec, 0x60, 0x8e, 0x95, 0x42, 0xbb, 0x9b, 0xfb, 0x81, 0x97, 0x0a, 0x6c, + 0x16, 0xf8, 0xc0, 0x48, 0xf9, 0x6f, 0x3d, 0x6d, 0xdb, 0x3f, 0xc7, 0x2b, 0xd5, 0xb6, 0xb7, 0x60, + 0x45, 0x2d, 0xa1, 0x6e, 0xb4, 0xe5, 0xcb, 0x4c, 0x40, 0x3c, 0x74, 0xe6, 0x44, 0xe2, 0x37, 0x01, + 0x08, 0xf1, 0x3b, 0x97, 0x23, 0x7e, 0x93, 0x89, 0x09, 0xf1, 0x8b, 0x53, 0x4f, 0xe8, 0x00, 0xe6, + 0xa9, 0xd7, 0x0a, 0xb9, 0xda, 0x81, 0xf2, 0x4b, 0x50, 0x42, 0x35, 0x62, 0x6b, 0xe1, 0x3f, 0x15, + 0x5b, 0x8b, 0x93, 0x89, 0xad, 0x2a, 0xec, 0xc4, 0xfe, 0xa2, 0x0e, 0x67, 0xbb, 0x2c, 0x20, 0xc2, + 0x11, 0x0b, 0xb9, 0x92, 0xbe, 0x3b, 0x43, 0xbe, 0x4e, 0xd4, 0xf9, 0xd4, 0xdc, 0x8e, 0x6d, 0xab, + 0xec, 0x38, 0xb2, 0xac, 0x4a, 0x43, 0xf4, 0x25, 0x6c, 0x8b, 0x8f, 0x0c, 0xbb, 0x5c, 0x1e, 0xe5, + 0x72, 0x4b, 0x18, 0x0e, 0xf8, 0x3b, 0x85, 0xcd, 0x06, 0xc1, 0x3e, 0xaf, 0x11, 0xcc, 0x13, 0x57, + 0x30, 0xca, 0x55, 0x21, 0xb1, 0x89, 0xfd, 0xa4, 0x8e, 0x07, 0x91, 0x4e, 0x9e, 0xef, 0x1d, 0x0f, + 0xde, 0xc2, 0xcd, 0x7e, 0x26, 0x2c, 0x56, 0xb7, 0x78, 0x83, 0x06, 0x56, 0x6c, 0x30, 0x5a, 0x06, + 0x97, 0xfa, 0x98, 0xf9, 0x65, 0xbd, 0xda, 0xa0, 0xc1, 0xa1, 0xf2, 0x7f, 0x96, 0x9e, 0x41, 0xdc, + 0xac, 0xd6, 0xc6, 0xa8, 0x94, 0xde, 0x24, 0x4e, 0x54, 0xd7, 0x1a, 0x3a, 0xad, 0xad, 0x4f, 0x77, + 0x5a, 0xbb, 0x0f, 0x1b, 0x89, 0x1f, 0xd5, 0x7d, 0x36, 0x64, 0x87, 0x8b, 0x87, 0x4f, 0x64, 0x17, + 0xfa, 0x18, 0x16, 0x1a, 0x04, 0x3b, 0xc4, 0x17, 0x32, 0x38, 0x3a, 0xc3, 0x69, 0xcf, 0x42, 0x02, + 0x62, 0x2a, 0xe8, 0x7f, 0x59, 0x18, 0x97, 0xbf, 0x33, 0x12, 0xe1, 0x9a, 0x6e, 0x2e, 0x93, 0x0a, + 0xd7, 0x4f, 0x60, 0x41, 0x2a, 0x25, 0xd5, 0x58, 0xf2, 0x73, 0xaf, 0xb0, 0x79, 0xad, 0xb4, 0x7c, + 0x2f, 0x11, 0x29, 0x19, 0x71, 0xa9, 0x1d, 0xe0, 0xb7, 0x33, 0x70, 0x3f, 0x0f, 0x78, 0xd4, 0x3d, + 0x3b, 0x19, 0xb5, 0x1d, 0x5c, 0x55, 0x8b, 0xec, 0x65, 0x6d, 0x6e, 0xca, 0xac, 0xcd, 0x0f, 0x64, + 0xed, 0x87, 0xb0, 0x37, 0x3a, 0x19, 0x2a, 0x73, 0x7f, 0x34, 0x12, 0x95, 0x91, 0x06, 0x4f, 0xa4, + 0x32, 0x1e, 0xc1, 0x62, 0x1d, 0x53, 0x37, 0xf4, 0x49, 0x2e, 0xf1, 0xa7, 0x12, 0x63, 0xc6, 0xe0, + 0x5c, 0xe6, 0x7b, 0x1b, 0xbf, 0x2e, 0x2c, 0x15, 0xfc, 0xb7, 0x33, 0xda, 0xfa, 0x90, 0xa8, 0xef, + 0x33, 0xe7, 0xa9, 0x8c, 0xcd, 0x4d, 0x9b, 0xb1, 0x41, 0xd6, 0xef, 0xc3, 0xdd, 0x11, 0xb9, 0x50, + 0x59, 0xfb, 0x93, 0x01, 0x65, 0x5d, 0x7d, 0x60, 0xcf, 0x26, 0x13, 0x91, 0x1e, 0x77, 0xda, 0x99, + 0x69, 0x65, 0xe1, 0x20, 0xe9, 0x77, 0xf5, 0x6d, 0x28, 0x09, 0x4c, 0x4d, 0xe0, 0x77, 0x33, 0x70, + 0x2f, 0x07, 0xf7, 0x3d, 0x27, 0x3e, 0xce, 0xda, 0xdc, 0xb4, 0x59, 0x1b, 0x24, 0xfe, 0x23, 0x7d, + 0xef, 0xeb, 0xcb, 0x46, 0x1f, 0xf5, 0x36, 0xf3, 0xfb, 0xa0, 0x2f, 0xe2, 0x4d, 0xf0, 0x0a, 0xa9, + 0x3f, 0x8f, 0xa8, 0xcf, 0x09, 0x4c, 0xc9, 0xdc, 0x8f, 0xa0, 0x60, 0x8b, 0x89, 0x59, 0xbe, 0x8c, + 0x95, 0x38, 0x22, 0xbe, 0x25, 0x73, 0x43, 0x8e, 0x9b, 0xf1, 0xb0, 0xaa, 0x92, 0x4c, 0x97, 0xff, + 0x6b, 0x55, 0x52, 0x8d, 0xaa, 0x64, 0x44, 0x36, 0x26, 0x4f, 0xf2, 0xdf, 0x7b, 0xdb, 0x87, 0xb8, + 0x68, 0x98, 0x46, 0x36, 0xfc, 0x7c, 0x40, 0x36, 0x8c, 0x7f, 0x9f, 0x11, 0x6f, 0x86, 0xaf, 0x61, + 0x4b, 0xfe, 0x23, 0xc8, 0x6a, 0x13, 0x5f, 0xdc, 0x54, 0x50, 0xaf, 0xce, 0xd4, 0x71, 0x35, 0x9b, + 0x28, 0xe2, 0xbf, 0x96, 0x70, 0x71, 0xf4, 0xde, 0xec, 0x0c, 0x0e, 0xa5, 0x36, 0x21, 0xdd, 0xe4, + 0x62, 0xed, 0x61, 0x40, 0xc9, 0x24, 0x01, 0xe1, 0xf2, 0x02, 0x2c, 0x39, 0x2c, 0x5e, 0x49, 0x6d, + 0x95, 0x6f, 0xc0, 0x35, 0x6d, 0x30, 0x2a, 0x58, 0x1f, 0xd6, 0xfb, 0xb5, 0x20, 0x7a, 0x00, 0x88, + 0x78, 0xb8, 0xe6, 0x12, 0x2b, 0xa5, 0x28, 0x15, 0xdd, 0x05, 0xf9, 0xa6, 0x67, 0x81, 0x0e, 0x60, + 0xbb, 0xc5, 0x5c, 0x97, 0xf8, 0x56, 0x07, 0x53, 0x79, 0x5a, 0xb0, 0xa8, 0x67, 0x35, 0x65, 0x27, + 0x98, 0x35, 0x91, 0x7c, 0xfb, 0x06, 0x53, 0x71, 0x2c, 0x38, 0xf3, 0x5e, 0x06, 0x07, 0xff, 0xdc, + 0x80, 0x65, 0x99, 0xee, 0xc3, 0xf3, 0x33, 0xf4, 0x1e, 0xb6, 0x34, 0xb7, 0x44, 0x68, 0x7f, 0xfc, + 0xfb, 0x24, 0x91, 0xd7, 0xd2, 0xc4, 0x17, 0x50, 0xe8, 0x0f, 0x06, 0x5c, 0xcf, 0xbb, 0x37, 0x42, + 0x8f, 0xa7, 0xbd, 0xd8, 0x2b, 0x7d, 0x36, 0xf5, 0x25, 0x15, 0xfa, 0xd6, 0x80, 0x9d, 0xcc, 0x2b, + 0x0e, 0xf4, 0xd3, 0x71, 0x1d, 0xf7, 0x09, 0xb6, 0xd2, 0xa3, 0x49, 0xcd, 0x54, 0x30, 0x3d, 0x72, + 0xd2, 0x5d, 0x22, 0x9f, 0x1c, 0xcd, 0x95, 0x4b, 0x3e, 0x39, 0xda, 0xfb, 0x8b, 0x14, 0x39, 0x5a, + 0xd1, 0x9a, 0x4f, 0x4e, 0xde, 0xa9, 0x25, 0x9f, 0x9c, 0xdc, 0x73, 0x05, 0xfa, 0xa0, 0x57, 0xc7, + 0x7d, 0x52, 0x1a, 0x7d, 0x3e, 0xb1, 0xff, 0xd4, 0xde, 0x53, 0x7a, 0x36, 0xa5, 0xf5, 0x70, 0xf9, + 0x0c, 0xcb, 0xbe, 0xfc, 0xf2, 0xc9, 0xd4, 0xfb, 0xf9, 0xe5, 0x93, 0xad, 0xc7, 0xd1, 0x77, 0x06, + 0xdc, 0xc8, 0xd5, 0xa0, 0xe8, 0xb3, 0xc9, 0x3c, 0xa7, 0x13, 0xf5, 0x64, 0x1a, 0x53, 0x15, 0xd8, + 0xef, 0x0d, 0xd1, 0x16, 0xb3, 0x34, 0x12, 0xfa, 0x74, 0x6c, 0x12, 0xfa, 0x45, 0x72, 0xe9, 0xf1, + 0xe4, 0x86, 0x2a, 0xa4, 0x3f, 0x1b, 0x70, 0x6b, 0x84, 0x6c, 0x43, 0x4f, 0x27, 0xf5, 0x9e, 0xce, + 0xd7, 0xe7, 0xd3, 0x19, 0xf7, 0x65, 0x2c, 0x53, 0x2f, 0x64, 0x66, 0x6c, 0x94, 0xb6, 0xcc, 0xcc, + 0xd8, 0x68, 0xed, 0x27, 0x33, 0x96, 0x2b, 0x61, 0x32, 0x33, 0x36, 0x8e, 0x0c, 0xcc, 0xcc, 0xd8, + 0x78, 0xaa, 0x29, 0xb5, 0x12, 0x87, 0xd5, 0x42, 0xfe, 0x4a, 0xcc, 0x94, 0x4e, 0xf9, 0x2b, 0x31, + 0x5b, 0x94, 0x44, 0x8d, 0x5c, 0x23, 0x03, 0x32, 0x1a, 0x79, 0xb6, 0x7a, 0xc9, 0x68, 0xe4, 0x39, + 0x0a, 0xe3, 0xa8, 0x06, 0xff, 0x6f, 0xb3, 0xa6, 0xce, 0xec, 0x08, 0x49, 0x15, 0xf0, 0x4a, 0xfe, + 0x76, 0xe7, 0xdc, 0x67, 0x9c, 0x9d, 0x1b, 0xdf, 0x3c, 0xbc, 0xa0, 0xbc, 0x11, 0xd6, 0x2a, 0x36, + 0x6b, 0xee, 0xa7, 0x7f, 0x9c, 0xf2, 0x63, 0xea, 0xb8, 0xfb, 0x17, 0x4c, 0xfe, 0xee, 0x46, 0xfd, + 0x52, 0xe5, 0x29, 0x6e, 0xd1, 0xf6, 0xc3, 0xda, 0x82, 0x18, 0xfb, 0xf8, 0xdf, 0x01, 0x00, 0x00, + 0xff, 0xff, 0x83, 0x33, 0x80, 0xed, 0x1b, 0x24, 0x00, 0x00, }, // uber/cadence/api/v1/decision.proto []byte{ diff --git a/proto/internal/uber/cadence/history/v1/service.proto b/proto/internal/uber/cadence/history/v1/service.proto index 54ed7363644..f7ef4de6bbf 100644 --- a/proto/internal/uber/cadence/history/v1/service.proto +++ b/proto/internal/uber/cadence/history/v1/service.proto @@ -339,6 +339,7 @@ message GetMutableStateRequest { api.v1.WorkflowExecution workflow_execution = 2; int64 expected_next_event_id = 3; bytes current_branch_token = 4; + admin.v1.VersionHistoryItem version_history_item = 5; } message GetMutableStateResponse { @@ -360,6 +361,7 @@ message GetMutableStateResponse { shared.v1.VersionHistories version_histories = 16; bool is_sticky_task_list_enabled = 17; int64 history_size = 18; + } message PollMutableStateRequest { From f5ad178f3b06cb84e928475fe6d557046c202ced Mon Sep 17 00:00:00 2001 From: David Porter Date: Mon, 25 Nov 2024 21:09:49 -0800 Subject: [PATCH 09/13] fixing mapper --- common/types/mapper/proto/history.go | 19 +++++++++++++++++++ common/types/mapper/thrift/history.go | 24 ++++++++++++++++++++++++ common/types/testdata/service_history.go | 1 + idls | 2 +- 4 files changed, 45 insertions(+), 1 deletion(-) diff --git a/common/types/mapper/proto/history.go b/common/types/mapper/proto/history.go index aa2caf88b18..43f72cc5c12 100644 --- a/common/types/mapper/proto/history.go +++ b/common/types/mapper/proto/history.go @@ -21,6 +21,7 @@ package proto import ( + adminv1 "github.com/uber/cadence-idl/go/proto/admin/v1" apiv1 "github.com/uber/cadence-idl/go/proto/api/v1" historyv1 "github.com/uber/cadence/.gen/proto/history/v1" @@ -292,11 +293,21 @@ func FromHistoryGetMutableStateRequest(t *types.GetMutableStateRequest) *history if t == nil { return nil } + + var versionHistoryItem *adminv1.VersionHistoryItem + if t.VersionHistoryItem != nil { + versionHistoryItem = &adminv1.VersionHistoryItem{ + EventId: t.VersionHistoryItem.EventID, + Version: t.VersionHistoryItem.Version, + } + } + return &historyv1.GetMutableStateRequest{ DomainId: t.DomainUUID, WorkflowExecution: FromWorkflowExecution(t.Execution), ExpectedNextEventId: t.ExpectedNextEventID, CurrentBranchToken: t.CurrentBranchToken, + VersionHistoryItem: versionHistoryItem, } } @@ -304,11 +315,19 @@ func ToHistoryGetMutableStateRequest(t *historyv1.GetMutableStateRequest) *types if t == nil { return nil } + var versionHistoryItem *types.VersionHistoryItem + if t.VersionHistoryItem != nil { + versionHistoryItem = &types.VersionHistoryItem{ + EventID: t.VersionHistoryItem.EventId, + Version: t.VersionHistoryItem.Version, + } + } return &types.GetMutableStateRequest{ DomainUUID: t.DomainId, Execution: ToWorkflowExecution(t.WorkflowExecution), ExpectedNextEventID: t.ExpectedNextEventId, CurrentBranchToken: t.CurrentBranchToken, + VersionHistoryItem: versionHistoryItem, } } diff --git a/common/types/mapper/thrift/history.go b/common/types/mapper/thrift/history.go index 26baf2644dd..96eb9a30b6a 100644 --- a/common/types/mapper/thrift/history.go +++ b/common/types/mapper/thrift/history.go @@ -22,6 +22,7 @@ package thrift import ( "github.com/uber/cadence/.gen/go/history" + "github.com/uber/cadence/.gen/go/shared" "github.com/uber/cadence/common/types" ) @@ -227,11 +228,21 @@ func FromHistoryGetMutableStateRequest(t *types.GetMutableStateRequest) *history if t == nil { return nil } + + var versionHistoryItem *shared.VersionHistoryItem + if t.VersionHistoryItem != nil { + versionHistoryItem = &shared.VersionHistoryItem{ + EventID: &t.VersionHistoryItem.EventID, + Version: &t.VersionHistoryItem.Version, + } + } + return &history.GetMutableStateRequest{ DomainUUID: &t.DomainUUID, Execution: FromWorkflowExecution(t.Execution), ExpectedNextEventId: &t.ExpectedNextEventID, CurrentBranchToken: t.CurrentBranchToken, + VersionHistoryItem: versionHistoryItem, } } @@ -240,11 +251,24 @@ func ToHistoryGetMutableStateRequest(t *history.GetMutableStateRequest) *types.G if t == nil { return nil } + + var versionHistoryItem *types.VersionHistoryItem + if t.VersionHistoryItem != nil { + versionHistoryItem = &types.VersionHistoryItem{} + if t.VersionHistoryItem.EventID != nil { + versionHistoryItem.EventID = *t.VersionHistoryItem.EventID + } + if t.VersionHistoryItem.Version != nil { + versionHistoryItem.Version = *t.VersionHistoryItem.Version + } + } + return &types.GetMutableStateRequest{ DomainUUID: t.GetDomainUUID(), Execution: ToWorkflowExecution(t.Execution), ExpectedNextEventID: t.GetExpectedNextEventId(), CurrentBranchToken: t.CurrentBranchToken, + VersionHistoryItem: versionHistoryItem, } } diff --git a/common/types/testdata/service_history.go b/common/types/testdata/service_history.go index b67c77f349f..687aa3820e8 100644 --- a/common/types/testdata/service_history.go +++ b/common/types/testdata/service_history.go @@ -51,6 +51,7 @@ var ( Execution: &WorkflowExecution, ExpectedNextEventID: EventID1, CurrentBranchToken: BranchToken, + VersionHistoryItem: &VersionHistoryItem, } HistoryGetMutableStateResponse = types.GetMutableStateResponse{ Execution: &WorkflowExecution, diff --git a/idls b/idls index 0ff09166fc7..889fa453972 160000 --- a/idls +++ b/idls @@ -1 +1 @@ -Subproject commit 0ff09166fc7c91176f23abba8ccbd280817ebc72 +Subproject commit 889fa453972bd07cd6d41057d79e3a2988aa5a8d From 15fd74f7bd3e9af564de2fd03bf662640409c0f8 Mon Sep 17 00:00:00 2001 From: David Porter Date: Mon, 25 Nov 2024 22:54:26 -0800 Subject: [PATCH 10/13] bumping idl --- idls | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/idls b/idls index 889fa453972..57bd6876d48 160000 --- a/idls +++ b/idls @@ -1 +1 @@ -Subproject commit 889fa453972bd07cd6d41057d79e3a2988aa5a8d +Subproject commit 57bd6876d48fe25d17d65a4035068366ba1ec174 From 1a5df044b4936b30257a891d9423f149173c9c44 Mon Sep 17 00:00:00 2001 From: David Porter Date: Mon, 25 Nov 2024 22:59:25 -0800 Subject: [PATCH 11/13] gen --- .gen/go/history/history.go | 106 ++++++++----------------------------- 1 file changed, 23 insertions(+), 83 deletions(-) diff --git a/.gen/go/history/history.go b/.gen/go/history/history.go index d863f56f085..924fcb445a7 100644 --- a/.gen/go/history/history.go +++ b/.gen/go/history/history.go @@ -2873,26 +2873,25 @@ func (v *GetMutableStateRequest) IsSetVersionHistoryItem() bool { } type GetMutableStateResponse struct { - Execution *shared.WorkflowExecution `json:"execution,omitempty"` - WorkflowType *shared.WorkflowType `json:"workflowType,omitempty"` - NextEventId *int64 `json:"NextEventId,omitempty"` - PreviousStartedEventId *int64 `json:"PreviousStartedEventId,omitempty"` - LastFirstEventId *int64 `json:"LastFirstEventId,omitempty"` - TaskList *shared.TaskList `json:"taskList,omitempty"` - StickyTaskList *shared.TaskList `json:"stickyTaskList,omitempty"` - ClientLibraryVersion *string `json:"clientLibraryVersion,omitempty"` - ClientFeatureVersion *string `json:"clientFeatureVersion,omitempty"` - ClientImpl *string `json:"clientImpl,omitempty"` - IsWorkflowRunning *bool `json:"isWorkflowRunning,omitempty"` - StickyTaskListScheduleToStartTimeout *int32 `json:"stickyTaskListScheduleToStartTimeout,omitempty"` - EventStoreVersion *int32 `json:"eventStoreVersion,omitempty"` - CurrentBranchToken []byte `json:"currentBranchToken,omitempty"` - WorkflowState *int32 `json:"workflowState,omitempty"` - WorkflowCloseState *int32 `json:"workflowCloseState,omitempty"` - VersionHistories *shared.VersionHistories `json:"versionHistories,omitempty"` - IsStickyTaskListEnabled *bool `json:"isStickyTaskListEnabled,omitempty"` - HistorySize *int64 `json:"historySize,omitempty"` - VersionHistoryItem *shared.VersionHistoryItem `json:"versionHistoryItem,omitempty"` + Execution *shared.WorkflowExecution `json:"execution,omitempty"` + WorkflowType *shared.WorkflowType `json:"workflowType,omitempty"` + NextEventId *int64 `json:"NextEventId,omitempty"` + PreviousStartedEventId *int64 `json:"PreviousStartedEventId,omitempty"` + LastFirstEventId *int64 `json:"LastFirstEventId,omitempty"` + TaskList *shared.TaskList `json:"taskList,omitempty"` + StickyTaskList *shared.TaskList `json:"stickyTaskList,omitempty"` + ClientLibraryVersion *string `json:"clientLibraryVersion,omitempty"` + ClientFeatureVersion *string `json:"clientFeatureVersion,omitempty"` + ClientImpl *string `json:"clientImpl,omitempty"` + IsWorkflowRunning *bool `json:"isWorkflowRunning,omitempty"` + StickyTaskListScheduleToStartTimeout *int32 `json:"stickyTaskListScheduleToStartTimeout,omitempty"` + EventStoreVersion *int32 `json:"eventStoreVersion,omitempty"` + CurrentBranchToken []byte `json:"currentBranchToken,omitempty"` + WorkflowState *int32 `json:"workflowState,omitempty"` + WorkflowCloseState *int32 `json:"workflowCloseState,omitempty"` + VersionHistories *shared.VersionHistories `json:"versionHistories,omitempty"` + IsStickyTaskListEnabled *bool `json:"isStickyTaskListEnabled,omitempty"` + HistorySize *int64 `json:"historySize,omitempty"` } // ToWire translates a GetMutableStateResponse struct into a Thrift-level intermediate @@ -2912,7 +2911,7 @@ type GetMutableStateResponse struct { // } func (v *GetMutableStateResponse) ToWire() (wire.Value, error) { var ( - fields [20]wire.Field + fields [19]wire.Field i int = 0 w wire.Value err error @@ -3070,14 +3069,6 @@ func (v *GetMutableStateResponse) ToWire() (wire.Value, error) { fields[i] = wire.Field{ID: 190, Value: w} i++ } - if v.VersionHistoryItem != nil { - w, err = v.VersionHistoryItem.ToWire() - if err != nil { - return w, err - } - fields[i] = wire.Field{ID: 200, Value: w} - i++ - } return wire.NewValueStruct(wire.Struct{Fields: fields[:i]}), nil } @@ -3299,14 +3290,6 @@ func (v *GetMutableStateResponse) FromWire(w wire.Value) error { return err } - } - case 200: - if field.Value.Type() == wire.TStruct { - v.VersionHistoryItem, err = _VersionHistoryItem_Read(field.Value) - if err != nil { - return err - } - } } } @@ -3551,18 +3534,6 @@ func (v *GetMutableStateResponse) Encode(sw stream.Writer) error { } } - if v.VersionHistoryItem != nil { - if err := sw.WriteFieldBegin(stream.FieldHeader{ID: 200, Type: wire.TStruct}); err != nil { - return err - } - if err := v.VersionHistoryItem.Encode(sw); err != nil { - return err - } - if err := sw.WriteFieldEnd(); err != nil { - return err - } - } - return sw.WriteStructEnd() } @@ -3742,12 +3713,6 @@ func (v *GetMutableStateResponse) Decode(sr stream.Reader) error { return err } - case fh.ID == 200 && fh.Type == wire.TStruct: - v.VersionHistoryItem, err = _VersionHistoryItem_Decode(sr) - if err != nil { - return err - } - default: if err := sr.Skip(fh.Type); err != nil { return err @@ -3777,7 +3742,7 @@ func (v *GetMutableStateResponse) String() string { return "" } - var fields [20]string + var fields [19]string i := 0 if v.Execution != nil { fields[i] = fmt.Sprintf("Execution: %v", v.Execution) @@ -3855,10 +3820,6 @@ func (v *GetMutableStateResponse) String() string { fields[i] = fmt.Sprintf("HistorySize: %v", *(v.HistorySize)) i++ } - if v.VersionHistoryItem != nil { - fields[i] = fmt.Sprintf("VersionHistoryItem: %v", v.VersionHistoryItem) - i++ - } return fmt.Sprintf("GetMutableStateResponse{%v}", strings.Join(fields[:i], ", ")) } @@ -3930,9 +3891,6 @@ func (v *GetMutableStateResponse) Equals(rhs *GetMutableStateResponse) bool { if !_I64_EqualsPtr(v.HistorySize, rhs.HistorySize) { return false } - if !((v.VersionHistoryItem == nil && rhs.VersionHistoryItem == nil) || (v.VersionHistoryItem != nil && rhs.VersionHistoryItem != nil && v.VersionHistoryItem.Equals(rhs.VersionHistoryItem))) { - return false - } return true } @@ -4000,9 +3958,6 @@ func (v *GetMutableStateResponse) MarshalLogObject(enc zapcore.ObjectEncoder) (e if v.HistorySize != nil { enc.AddInt64("historySize", *v.HistorySize) } - if v.VersionHistoryItem != nil { - err = multierr.Append(err, enc.AddObject("versionHistoryItem", v.VersionHistoryItem)) - } return err } @@ -4291,21 +4246,6 @@ func (v *GetMutableStateResponse) IsSetHistorySize() bool { return v != nil && v.HistorySize != nil } -// GetVersionHistoryItem returns the value of VersionHistoryItem if it is set or its -// zero value if it is unset. -func (v *GetMutableStateResponse) GetVersionHistoryItem() (o *shared.VersionHistoryItem) { - if v != nil && v.VersionHistoryItem != nil { - return v.VersionHistoryItem - } - - return -} - -// IsSetVersionHistoryItem returns true if VersionHistoryItem is not nil. -func (v *GetMutableStateResponse) IsSetVersionHistoryItem() bool { - return v != nil && v.VersionHistoryItem != nil -} - type NotifyFailoverMarkersRequest struct { FailoverMarkerTokens []*FailoverMarkerToken `json:"failoverMarkerTokens,omitempty"` } @@ -22672,7 +22612,7 @@ var ThriftModule = &thriftreflect.ThriftModule{ Name: "history", Package: "github.com/uber/cadence/.gen/go/history", FilePath: "history.thrift", - SHA1: "442ce449568e891e66a38176ac8dddc07bdd68dc", + SHA1: "4f9bc03480287dbdd2c4c579e95be64a2750f07a", Includes: []*thriftreflect.ThriftModule{ replicator.ThriftModule, shared.ThriftModule, @@ -22680,7 +22620,7 @@ var ThriftModule = &thriftreflect.ThriftModule{ Raw: rawIDL, } -const rawIDL = "// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\ninclude \"shared.thrift\"\ninclude \"replicator.thrift\"\n\nnamespace java com.uber.cadence.history\n\nexception EventAlreadyStartedError {\n 1: required string message\n}\n\nexception ShardOwnershipLostError {\n 10: optional string message\n 20: optional string owner\n}\n\nstruct ParentExecutionInfo {\n 10: optional string domainUUID\n 15: optional string domain\n 20: optional shared.WorkflowExecution execution\n 30: optional i64 (js.type = \"Long\") initiatedId\n}\n\nstruct StartWorkflowExecutionRequest {\n 10: optional string domainUUID\n 20: optional shared.StartWorkflowExecutionRequest startRequest\n 30: optional ParentExecutionInfo parentExecutionInfo\n 40: optional i32 attempt\n 50: optional i64 (js.type = \"Long\") expirationTimestamp\n 55: optional shared.ContinueAsNewInitiator continueAsNewInitiator\n 56: optional string continuedFailureReason\n 57: optional binary continuedFailureDetails\n 58: optional binary lastCompletionResult\n 60: optional i32 firstDecisionTaskBackoffSeconds\n 62: optional map partitionConfig\n}\n\nstruct DescribeMutableStateRequest{\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution execution\n}\n\nstruct DescribeMutableStateResponse{\n 30: optional string mutableStateInCache\n 40: optional string mutableStateInDatabase\n}\n\nstruct GetMutableStateRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution execution\n 30: optional i64 (js.type = \"Long\") expectedNextEventId\n 40: optional binary currentBranchToken\n 50: optional shared.VersionHistoryItem versionHistoryItem\n}\n\nstruct GetMutableStateResponse {\n 10: optional shared.WorkflowExecution execution\n 20: optional shared.WorkflowType workflowType\n 30: optional i64 (js.type = \"Long\") NextEventId\n 35: optional i64 (js.type = \"Long\") PreviousStartedEventId\n 40: optional i64 (js.type = \"Long\") LastFirstEventId\n 50: optional shared.TaskList taskList\n 60: optional shared.TaskList stickyTaskList\n 70: optional string clientLibraryVersion\n 80: optional string clientFeatureVersion\n 90: optional string clientImpl\n //TODO: isWorkflowRunning is deprecating. workflowState is going replace this field\n 100: optional bool isWorkflowRunning\n 110: optional i32 stickyTaskListScheduleToStartTimeout\n 120: optional i32 eventStoreVersion\n 130: optional binary currentBranchToken\n // TODO: when migrating to gRPC, make this a enum\n // TODO: when migrating to gRPC, unify internal & external representation\n // NOTE: workflowState & workflowCloseState are the same as persistence representation\n 150: optional i32 workflowState\n 160: optional i32 workflowCloseState\n 170: optional shared.VersionHistories versionHistories\n 180: optional bool isStickyTaskListEnabled\n 190: optional i64 (js.type = \"Long\") historySize\n 200: optional shared.VersionHistoryItem versionHistoryItem\n}\n\nstruct PollMutableStateRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution execution\n 30: optional i64 (js.type = \"Long\") expectedNextEventId\n 40: optional binary currentBranchToken\n}\n\nstruct PollMutableStateResponse {\n 10: optional shared.WorkflowExecution execution\n 20: optional shared.WorkflowType workflowType\n 30: optional i64 (js.type = \"Long\") NextEventId\n 35: optional i64 (js.type = \"Long\") PreviousStartedEventId\n 40: optional i64 (js.type = \"Long\") LastFirstEventId\n 50: optional shared.TaskList taskList\n 60: optional shared.TaskList stickyTaskList\n 70: optional string clientLibraryVersion\n 80: optional string clientFeatureVersion\n 90: optional string clientImpl\n 100: optional i32 stickyTaskListScheduleToStartTimeout\n 110: optional binary currentBranchToken\n 130: optional shared.VersionHistories versionHistories\n // TODO: when migrating to gRPC, make this a enum\n // TODO: when migrating to gRPC, unify internal & external representation\n // NOTE: workflowState & workflowCloseState are the same as persistence representation\n 140: optional i32 workflowState\n 150: optional i32 workflowCloseState\n}\n\nstruct ResetStickyTaskListRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution execution\n}\n\nstruct ResetStickyTaskListResponse {\n // The reason to keep this response is to allow returning\n // information in the future.\n}\n\nstruct RespondDecisionTaskCompletedRequest {\n 10: optional string domainUUID\n 20: optional shared.RespondDecisionTaskCompletedRequest completeRequest\n}\n\nstruct RespondDecisionTaskCompletedResponse {\n 10: optional RecordDecisionTaskStartedResponse startedResponse\n 20: optional map activitiesToDispatchLocally\n}\n\nstruct RespondDecisionTaskFailedRequest {\n 10: optional string domainUUID\n 20: optional shared.RespondDecisionTaskFailedRequest failedRequest\n}\n\nstruct RecordActivityTaskHeartbeatRequest {\n 10: optional string domainUUID\n 20: optional shared.RecordActivityTaskHeartbeatRequest heartbeatRequest\n}\n\nstruct RespondActivityTaskCompletedRequest {\n 10: optional string domainUUID\n 20: optional shared.RespondActivityTaskCompletedRequest completeRequest\n}\n\nstruct RespondActivityTaskFailedRequest {\n 10: optional string domainUUID\n 20: optional shared.RespondActivityTaskFailedRequest failedRequest\n}\n\nstruct RespondActivityTaskCanceledRequest {\n 10: optional string domainUUID\n 20: optional shared.RespondActivityTaskCanceledRequest cancelRequest\n}\n\nstruct RefreshWorkflowTasksRequest {\n 10: optional string domainUIID\n 20: optional shared.RefreshWorkflowTasksRequest request\n}\n\nstruct RecordActivityTaskStartedRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution workflowExecution\n 30: optional i64 (js.type = \"Long\") scheduleId\n 40: optional i64 (js.type = \"Long\") taskId\n 45: optional string requestId // Unique id of each poll request. Used to ensure at most once delivery of tasks.\n 50: optional shared.PollForActivityTaskRequest pollRequest\n}\n\nstruct RecordActivityTaskStartedResponse {\n 20: optional shared.HistoryEvent scheduledEvent\n 30: optional i64 (js.type = \"Long\") startedTimestamp\n 40: optional i64 (js.type = \"Long\") attempt\n 50: optional i64 (js.type = \"Long\") scheduledTimestampOfThisAttempt\n 60: optional binary heartbeatDetails\n 70: optional shared.WorkflowType workflowType\n 80: optional string workflowDomain\n}\n\nstruct RecordDecisionTaskStartedRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution workflowExecution\n 30: optional i64 (js.type = \"Long\") scheduleId\n 40: optional i64 (js.type = \"Long\") taskId\n 45: optional string requestId // Unique id of each poll request. Used to ensure at most once delivery of tasks.\n 50: optional shared.PollForDecisionTaskRequest pollRequest\n}\n\nstruct RecordDecisionTaskStartedResponse {\n 10: optional shared.WorkflowType workflowType\n 20: optional i64 (js.type = \"Long\") previousStartedEventId\n 30: optional i64 (js.type = \"Long\") scheduledEventId\n 40: optional i64 (js.type = \"Long\") startedEventId\n 50: optional i64 (js.type = \"Long\") nextEventId\n 60: optional i64 (js.type = \"Long\") attempt\n 70: optional bool stickyExecutionEnabled\n 80: optional shared.TransientDecisionInfo decisionInfo\n 90: optional shared.TaskList WorkflowExecutionTaskList\n 100: optional i32 eventStoreVersion\n 110: optional binary branchToken\n 120: optional i64 (js.type = \"Long\") scheduledTimestamp\n 130: optional i64 (js.type = \"Long\") startedTimestamp\n 140: optional map queries\n 150: optional i64 (js.type = \"Long\") historySize\n}\n\nstruct SignalWorkflowExecutionRequest {\n 10: optional string domainUUID\n 20: optional shared.SignalWorkflowExecutionRequest signalRequest\n // workflow execution that requests this signal, for making sure\n // the workflow being signaled is actually a child of the workflow\n // making the request\n 30: optional shared.WorkflowExecution externalWorkflowExecution\n 40: optional bool childWorkflowOnly\n}\n\nstruct SignalWithStartWorkflowExecutionRequest {\n 10: optional string domainUUID\n 20: optional shared.SignalWithStartWorkflowExecutionRequest signalWithStartRequest\n 30: optional map partitionConfig\n}\n\nstruct RemoveSignalMutableStateRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution workflowExecution\n 30: optional string requestId\n}\n\nstruct TerminateWorkflowExecutionRequest {\n 10: optional string domainUUID\n 20: optional shared.TerminateWorkflowExecutionRequest terminateRequest\n // workflow execution that requests this termination, for making sure\n // the workflow being terminated is actually a child of the workflow\n // making the request\n 30: optional shared.WorkflowExecution externalWorkflowExecution\n 40: optional bool childWorkflowOnly\n}\n\nstruct ResetWorkflowExecutionRequest {\n 10: optional string domainUUID\n 20: optional shared.ResetWorkflowExecutionRequest resetRequest\n}\n\nstruct RequestCancelWorkflowExecutionRequest {\n 10: optional string domainUUID\n 20: optional shared.RequestCancelWorkflowExecutionRequest cancelRequest\n // workflow execution that requests this cancellation, for making sure\n // the workflow being cancelled is actually a child of the workflow\n // making the request\n 30: optional i64 (js.type = \"Long\") externalInitiatedEventId\n 40: optional shared.WorkflowExecution externalWorkflowExecution\n 50: optional bool childWorkflowOnly\n}\n\nstruct ScheduleDecisionTaskRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution workflowExecution\n 30: optional bool isFirstDecision\n}\n\nstruct DescribeWorkflowExecutionRequest {\n 10: optional string domainUUID\n 20: optional shared.DescribeWorkflowExecutionRequest request\n}\n\n/**\n* RecordChildExecutionCompletedRequest is used for reporting the completion of child execution to parent workflow\n* execution which started it. When a child execution is completed it creates this request and calls the\n* RecordChildExecutionCompleted API with the workflowExecution of parent. It also sets the completedExecution of the\n* child as it could potentially be different than the ChildExecutionStartedEvent of parent in the situation when\n* child creates multiple runs through ContinueAsNew before finally completing.\n**/\nstruct RecordChildExecutionCompletedRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution workflowExecution\n 30: optional i64 (js.type = \"Long\") initiatedId\n 40: optional shared.WorkflowExecution completedExecution\n 50: optional shared.HistoryEvent completionEvent\n 60: optional i64 (js.type = \"Long\") startedId\n}\n\nstruct ReplicateEventsV2Request {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution workflowExecution\n 30: optional list versionHistoryItems\n 40: optional shared.DataBlob events\n // new run events does not need version history since there is no prior events\n 60: optional shared.DataBlob newRunEvents\n}\n\nstruct SyncShardStatusRequest {\n 10: optional string sourceCluster\n 20: optional i64 (js.type = \"Long\") shardId\n 30: optional i64 (js.type = \"Long\") timestamp\n}\n\nstruct SyncActivityRequest {\n 10: optional string domainId\n 20: optional string workflowId\n 30: optional string runId\n 40: optional i64 (js.type = \"Long\") version\n 50: optional i64 (js.type = \"Long\") scheduledId\n 60: optional i64 (js.type = \"Long\") scheduledTime\n 70: optional i64 (js.type = \"Long\") startedId\n 80: optional i64 (js.type = \"Long\") startedTime\n 90: optional i64 (js.type = \"Long\") lastHeartbeatTime\n 100: optional binary details\n 110: optional i32 attempt\n 120: optional string lastFailureReason\n 130: optional string lastWorkerIdentity\n 140: optional binary lastFailureDetails\n 150: optional shared.VersionHistory versionHistory\n}\n\nstruct QueryWorkflowRequest {\n 10: optional string domainUUID\n 20: optional shared.QueryWorkflowRequest request\n}\n\nstruct QueryWorkflowResponse {\n 10: optional shared.QueryWorkflowResponse response\n}\n\nstruct ReapplyEventsRequest {\n 10: optional string domainUUID\n 20: optional shared.ReapplyEventsRequest request\n}\n\nstruct FailoverMarkerToken {\n 10: optional list shardIDs\n 20: optional replicator.FailoverMarkerAttributes failoverMarker\n}\n\nstruct NotifyFailoverMarkersRequest {\n 10: optional list failoverMarkerTokens\n}\n\nstruct ProcessingQueueStates {\n 10: optional map> statesByCluster\n}\n\nstruct ProcessingQueueState {\n 10: optional i32 level\n 20: optional i64 ackLevel\n 30: optional i64 maxLevel\n 40: optional DomainFilter domainFilter\n}\n\nstruct DomainFilter {\n 10: optional list domainIDs\n 20: optional bool reverseMatch\n}\n\nstruct GetFailoverInfoRequest {\n 10: optional string domainID\n}\n\nstruct GetFailoverInfoResponse {\n 10: optional i32 completedShardCount\n 20: optional list pendingShards\n}\n\nstruct RatelimitUpdateRequest {\n /**\n * impl-specific data.\n *\n * likely some simple top-level keys and then either:\n * - map\n * - list\n *\n * this is a single blob rather than a collection to save on\n * repeated serialization of the type name, and to allow impls\n * to choose whatever structures are most-convenient for them.\n */\n 10: optional shared.Any data\n}\n\nstruct RatelimitUpdateResponse {\n /**\n * impl-specific data.\n *\n * likely some simple top-level keys and then either:\n * - map\n * - list\n *\n * this is a single blob rather than a collection to save on\n * repeated serialization of the type name, and to allow impls\n * to choose whatever structures are most-convenient for them.\n */\n 10: optional shared.Any data\n}\n\n/**\n* first impl of ratelimiting data, collected by limiters and sent to aggregators.\n*\n* used in an Any with ValueType: WeightedRatelimitUsageAnyType\n*/\nstruct WeightedRatelimitUsage {\n /** unique, stable identifier of the calling host, to identify future data from the same host */\n 10: required string caller\n /** milliseconds since last update call. expected to be on the order of a few seconds or less. */\n 20: required i32 elapsedMS\n /** per key, number of allowed vs rejected calls since last update. */\n 30: required map calls\n}\n\n/** Any{ValueType} identifier for WeightedRatelimitUsage data */\nconst string WeightedRatelimitUsageAnyType = \"cadence:loadbalanced:update_request\"\n\n/** fields are required to encourage compact serialization, zeros are expected */\nstruct WeightedRatelimitCalls {\n /**\n * number of allowed requests since last call.\n * assumed to be <1m or so, saturates at MAX_INT32.\n */\n 10: required i32 allowed\n /**\n * number of rejected requests since last call.\n * assumed to be <1m or so, saturates at MAX_INT32.\n */\n 20: required i32 rejected\n}\n\n/**\n* first impl of ratelimiting data, result from aggregator to limiter.\n*\n* used in an Any with ValueType: WeightedRatelimitQuotasAnyType\n*/\nstruct WeightedRatelimitQuotas {\n /** RPS-weights to allow per key */\n 10: required map quotas\n}\n\n/** Any{ValueType} identifier for WeightedRatelimitQuotas data */\nconst string WeightedRatelimitQuotasAnyType = \"cadence:loadbalanced:update_response\"\n\n/**\n* second impl, includes unused-RPS data so limiters can decide if they\n* want to allow exceeding limits when there is free space.\n*\n* used in an Any with ValueType: WeightedRatelimitUsageQuotasAnyType\n*/\nstruct WeightedRatelimitUsageQuotas {\n /** RPS weights and total usage per key */\n 10: required map quotas\n}\n\nstruct WeightedRatelimitUsageQuotaEntry {\n /** Amount of the quota that the receiving host can use, between 0 and 1 */\n 10: required double weight\n /** RPS estimated across the whole cluster */\n 20: required double used\n}\n\nconst string WeightedRatelimitUsageQuotasAnyType = \"cadence:loadbalanced:update_response_used\"\n\n/**\n* HistoryService provides API to start a new long running workflow instance, as well as query and update the history\n* of workflow instances already created.\n**/\nservice HistoryService {\n /**\n * StartWorkflowExecution starts a new long running workflow instance. It will create the instance with\n * 'WorkflowExecutionStarted' event in history and also schedule the first DecisionTask for the worker to make the\n * first decision for this instance. It will return 'WorkflowExecutionAlreadyStartedError', if an instance already\n * exists with same workflowId.\n **/\n shared.StartWorkflowExecutionResponse StartWorkflowExecution(1: StartWorkflowExecutionRequest startRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.WorkflowExecutionAlreadyStartedError sessionAlreadyExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * Returns the information from mutable state of workflow execution.\n * It fails with 'EntityNotExistError' if specified workflow execution in unknown to the service.\n * It returns CurrentBranchChangedError if the workflow version branch has changed.\n **/\n GetMutableStateResponse GetMutableState(1: GetMutableStateRequest getRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.CurrentBranchChangedError currentBranchChangedError,\n )\n\n /**\n * Returns the information from mutable state of workflow execution.\n * It fails with 'EntityNotExistError' if specified workflow execution in unknown to the service.\n * It returns CurrentBranchChangedError if the workflow version branch has changed.\n **/\n PollMutableStateResponse PollMutableState(1: PollMutableStateRequest pollRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.CurrentBranchChangedError currentBranchChangedError,\n )\n\n /**\n * Reset the sticky tasklist related information in mutable state of a given workflow.\n * Things cleared are:\n * 1. StickyTaskList\n * 2. StickyScheduleToStartTimeout\n * 3. ClientLibraryVersion\n * 4. ClientFeatureVersion\n * 5. ClientImpl\n **/\n ResetStickyTaskListResponse ResetStickyTaskList(1: ResetStickyTaskListRequest resetRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RecordDecisionTaskStarted is called by the Matchingservice before it hands a decision task to the application worker in response to\n * a PollForDecisionTask call. It records in the history the event that the decision task has started. It will return 'EventAlreadyStartedError',\n * if the workflow's execution history already includes a record of the event starting.\n **/\n RecordDecisionTaskStartedResponse RecordDecisionTaskStarted(1: RecordDecisionTaskStartedRequest addRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: EventAlreadyStartedError eventAlreadyStartedError,\n 4: shared.EntityNotExistsError entityNotExistError,\n 5: ShardOwnershipLostError shardOwnershipLostError,\n 6: shared.DomainNotActiveError domainNotActiveError,\n 7: shared.LimitExceededError limitExceededError,\n 8: shared.ServiceBusyError serviceBusyError,\n 9: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RecordActivityTaskStarted is called by the Matchingservice before it hands a decision task to the application worker in response to\n * a PollForActivityTask call. It records in the history the event that the decision task has started. It will return 'EventAlreadyStartedError',\n * if the workflow's execution history already includes a record of the event starting.\n **/\n RecordActivityTaskStartedResponse RecordActivityTaskStarted(1: RecordActivityTaskStartedRequest addRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: EventAlreadyStartedError eventAlreadyStartedError,\n 4: shared.EntityNotExistsError entityNotExistError,\n 5: ShardOwnershipLostError shardOwnershipLostError,\n 6: shared.DomainNotActiveError domainNotActiveError,\n 7: shared.LimitExceededError limitExceededError,\n 8: shared.ServiceBusyError serviceBusyError,\n 9: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RespondDecisionTaskCompleted is called by application worker to complete a DecisionTask handed as a result of\n * 'PollForDecisionTask' API call. Completing a DecisionTask will result in new events for the workflow execution and\n * potentially new ActivityTask being created for corresponding decisions. It will also create a DecisionTaskCompleted\n * event in the history for that session. Use the 'taskToken' provided as response of PollForDecisionTask API call\n * for completing the DecisionTask.\n **/\n RespondDecisionTaskCompletedResponse RespondDecisionTaskCompleted(1: RespondDecisionTaskCompletedRequest completeRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RespondDecisionTaskFailed is called by application worker to indicate failure. This results in\n * DecisionTaskFailedEvent written to the history and a new DecisionTask created. This API can be used by client to\n * either clear sticky tasklist or report ny panics during DecisionTask processing.\n **/\n void RespondDecisionTaskFailed(1: RespondDecisionTaskFailedRequest failedRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RecordActivityTaskHeartbeat is called by application worker while it is processing an ActivityTask. If worker fails\n * to heartbeat within 'heartbeatTimeoutSeconds' interval for the ActivityTask, then it will be marked as timedout and\n * 'ActivityTaskTimedOut' event will be written to the workflow history. Calling 'RecordActivityTaskHeartbeat' will\n * fail with 'EntityNotExistsError' in such situations. Use the 'taskToken' provided as response of\n * PollForActivityTask API call for heartbeating.\n **/\n shared.RecordActivityTaskHeartbeatResponse RecordActivityTaskHeartbeat(1: RecordActivityTaskHeartbeatRequest heartbeatRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RespondActivityTaskCompleted is called by application worker when it is done processing an ActivityTask. It will\n * result in a new 'ActivityTaskCompleted' event being written to the workflow history and a new DecisionTask\n * created for the workflow so new decisions could be made. Use the 'taskToken' provided as response of\n * PollForActivityTask API call for completion. It fails with 'EntityNotExistsError' if the taskToken is not valid\n * anymore due to activity timeout.\n **/\n void RespondActivityTaskCompleted(1: RespondActivityTaskCompletedRequest completeRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RespondActivityTaskFailed is called by application worker when it is done processing an ActivityTask. It will\n * result in a new 'ActivityTaskFailed' event being written to the workflow history and a new DecisionTask\n * created for the workflow instance so new decisions could be made. Use the 'taskToken' provided as response of\n * PollForActivityTask API call for completion. It fails with 'EntityNotExistsError' if the taskToken is not valid\n * anymore due to activity timeout.\n **/\n void RespondActivityTaskFailed(1: RespondActivityTaskFailedRequest failRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RespondActivityTaskCanceled is called by application worker when it is successfully canceled an ActivityTask. It will\n * result in a new 'ActivityTaskCanceled' event being written to the workflow history and a new DecisionTask\n * created for the workflow instance so new decisions could be made. Use the 'taskToken' provided as response of\n * PollForActivityTask API call for completion. It fails with 'EntityNotExistsError' if the taskToken is not valid\n * anymore due to activity timeout.\n **/\n void RespondActivityTaskCanceled(1: RespondActivityTaskCanceledRequest canceledRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * SignalWorkflowExecution is used to send a signal event to running workflow execution. This results in\n * WorkflowExecutionSignaled event recorded in the history and a decision task being created for the execution.\n **/\n void SignalWorkflowExecution(1: SignalWorkflowExecutionRequest signalRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.LimitExceededError limitExceededError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * SignalWithStartWorkflowExecution is used to ensure sending a signal event to a workflow execution.\n * If workflow is running, this results in WorkflowExecutionSignaled event recorded in the history\n * and a decision task being created for the execution.\n * If workflow is not running or not found, it will first try start workflow with given WorkflowIDResuePolicy,\n * and record WorkflowExecutionStarted and WorkflowExecutionSignaled event in case of success.\n * It will return `WorkflowExecutionAlreadyStartedError` if start workflow failed with given policy.\n **/\n shared.StartWorkflowExecutionResponse SignalWithStartWorkflowExecution(1: SignalWithStartWorkflowExecutionRequest signalWithStartRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: ShardOwnershipLostError shardOwnershipLostError,\n 4: shared.DomainNotActiveError domainNotActiveError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.WorkflowExecutionAlreadyStartedError workflowAlreadyStartedError,\n )\n\n /**\n * RemoveSignalMutableState is used to remove a signal request ID that was previously recorded. This is currently\n * used to clean execution info when signal decision finished.\n **/\n void RemoveSignalMutableState(1: RemoveSignalMutableStateRequest removeRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * TerminateWorkflowExecution terminates an existing workflow execution by recording WorkflowExecutionTerminated event\n * in the history and immediately terminating the execution instance.\n **/\n void TerminateWorkflowExecution(1: TerminateWorkflowExecutionRequest terminateRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * ResetWorkflowExecution reset an existing workflow execution by a firstEventID of a existing event batch\n * in the history and immediately terminating the current execution instance.\n * After reset, the history will grow from nextFirstEventID.\n **/\n shared.ResetWorkflowExecutionResponse ResetWorkflowExecution(1: ResetWorkflowExecutionRequest resetRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * RequestCancelWorkflowExecution is called by application worker when it wants to request cancellation of a workflow instance.\n * It will result in a new 'WorkflowExecutionCancelRequested' event being written to the workflow history and a new DecisionTask\n * created for the workflow instance so new decisions could be made. It fails with\n * 'WorkflowExecutionAlreadyCompletedError' if the workflow is not valid\n * anymore due to completion or with 'EntityNotExistsError' if worfklow doesn't exist.\n **/\n void RequestCancelWorkflowExecution(1: RequestCancelWorkflowExecutionRequest cancelRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.CancellationAlreadyRequestedError cancellationAlreadyRequestedError,\n 6: shared.DomainNotActiveError domainNotActiveError,\n 7: shared.LimitExceededError limitExceededError,\n 8: shared.ServiceBusyError serviceBusyError,\n 10: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * ScheduleDecisionTask is used for creating a decision task for already started workflow execution. This is mainly\n * used by transfer queue processor during the processing of StartChildWorkflowExecution task, where it first starts\n * child execution without creating the decision task and then calls this API after updating the mutable state of\n * parent execution.\n **/\n void ScheduleDecisionTask(1: ScheduleDecisionTaskRequest scheduleRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RecordChildExecutionCompleted is used for reporting the completion of child workflow execution to parent.\n * This is mainly called by transfer queue processor during the processing of DeleteExecution task.\n **/\n void RecordChildExecutionCompleted(1: RecordChildExecutionCompletedRequest completionRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * DescribeWorkflowExecution returns information about the specified workflow execution.\n **/\n shared.DescribeWorkflowExecutionResponse DescribeWorkflowExecution(1: DescribeWorkflowExecutionRequest describeRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n )\n\n void ReplicateEventsV2(1: ReplicateEventsV2Request replicateV2Request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.RetryTaskV2Error retryTaskError,\n 7: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * SyncShardStatus sync the status between shards\n **/\n void SyncShardStatus(1: SyncShardStatusRequest syncShardStatusRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * SyncActivity sync the activity status\n **/\n void SyncActivity(1: SyncActivityRequest syncActivityRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.ServiceBusyError serviceBusyError,\n 7: shared.RetryTaskV2Error retryTaskV2Error,\n )\n\n /**\n * DescribeMutableState returns information about the internal states of workflow mutable state.\n **/\n DescribeMutableStateResponse DescribeMutableState(1: DescribeMutableStateRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.AccessDeniedError accessDeniedError,\n 5: ShardOwnershipLostError shardOwnershipLostError,\n 6: shared.LimitExceededError limitExceededError,\n )\n\n /**\n * DescribeHistoryHost returns information about the internal states of a history host\n **/\n shared.DescribeHistoryHostResponse DescribeHistoryHost(1: shared.DescribeHistoryHostRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.AccessDeniedError accessDeniedError,\n )\n\n /**\n * CloseShard close the shard\n **/\n void CloseShard(1: shared.CloseShardRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.AccessDeniedError accessDeniedError,\n )\n\n /**\n * RemoveTask remove task based on type, taskid, shardid\n **/\n void RemoveTask(1: shared.RemoveTaskRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.AccessDeniedError accessDeniedError,\n )\n\n /**\n * ResetQueue reset processing queue state based on cluster name and type\n **/\n void ResetQueue(1: shared.ResetQueueRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.AccessDeniedError accessDeniedError,\n )\n\n /**\n * DescribeQueue return queue states based on cluster name and type\n **/\n shared.DescribeQueueResponse DescribeQueue(1: shared.DescribeQueueRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.AccessDeniedError accessDeniedError,\n )\n\n /**\n * GetReplicationMessages return replication messages based on the read level\n **/\n replicator.GetReplicationMessagesResponse GetReplicationMessages(1: replicator.GetReplicationMessagesRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.LimitExceededError limitExceededError,\n 4: shared.ServiceBusyError serviceBusyError,\n 5: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * GetDLQReplicationMessages return replication messages based on dlq info\n **/\n replicator.GetDLQReplicationMessagesResponse GetDLQReplicationMessages(1: replicator.GetDLQReplicationMessagesRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: shared.EntityNotExistsError entityNotExistError,\n )\n\n /**\n * QueryWorkflow returns query result for a specified workflow execution\n **/\n QueryWorkflowResponse QueryWorkflow(1: QueryWorkflowRequest queryRequest)\n\tthrows (\n\t 1: shared.BadRequestError badRequestError,\n\t 2: shared.InternalServiceError internalServiceError,\n\t 3: shared.EntityNotExistsError entityNotExistError,\n\t 4: shared.QueryFailedError queryFailedError,\n\t 5: shared.LimitExceededError limitExceededError,\n\t 6: shared.ServiceBusyError serviceBusyError,\n\t 7: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n\t)\n\n /**\n * ReapplyEvents applies stale events to the current workflow and current run\n **/\n void ReapplyEvents(1: ReapplyEventsRequest reapplyEventsRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.DomainNotActiveError domainNotActiveError,\n 4: shared.LimitExceededError limitExceededError,\n 5: shared.ServiceBusyError serviceBusyError,\n 6: ShardOwnershipLostError shardOwnershipLostError,\n 7: shared.EntityNotExistsError entityNotExistError,\n )\n\n /**\n * RefreshWorkflowTasks refreshes all tasks of a workflow\n **/\n void RefreshWorkflowTasks(1: RefreshWorkflowTasksRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.DomainNotActiveError domainNotActiveError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.ServiceBusyError serviceBusyError,\n 6: shared.EntityNotExistsError entityNotExistError,\n )\n\n /**\n * ReadDLQMessages returns messages from DLQ\n **/\n replicator.ReadDLQMessagesResponse ReadDLQMessages(1: replicator.ReadDLQMessagesRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: shared.EntityNotExistsError entityNotExistError,\n 5: ShardOwnershipLostError shardOwnershipLostError,\n )\n\n /**\n * PurgeDLQMessages purges messages from DLQ\n **/\n void PurgeDLQMessages(1: replicator.PurgeDLQMessagesRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: shared.EntityNotExistsError entityNotExistError,\n 5: ShardOwnershipLostError shardOwnershipLostError,\n )\n\n /**\n * MergeDLQMessages merges messages from DLQ\n **/\n replicator.MergeDLQMessagesResponse MergeDLQMessages(1: replicator.MergeDLQMessagesRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: shared.EntityNotExistsError entityNotExistError,\n 5: ShardOwnershipLostError shardOwnershipLostError,\n )\n\n /**\n * NotifyFailoverMarkers sends failover marker to the failover coordinator\n **/\n void NotifyFailoverMarkers(1: NotifyFailoverMarkersRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * GetCrossClusterTasks fetches cross cluster tasks\n **/\n shared.GetCrossClusterTasksResponse GetCrossClusterTasks(1: shared.GetCrossClusterTasksRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * RespondCrossClusterTasksCompleted responds the result of processing cross cluster tasks\n **/\n shared.RespondCrossClusterTasksCompletedResponse RespondCrossClusterTasksCompleted(1: shared.RespondCrossClusterTasksCompletedRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n )\n\n /**\n * GetFailoverInfo responds the failover info about an on-going graceful failover\n **/\n GetFailoverInfoResponse GetFailoverInfo(1: GetFailoverInfoRequest request)\n throws (\n 1: shared.InternalServiceError internalServiceError,\n 2: shared.ServiceBusyError serviceBusyError,\n 3: ShardOwnershipLostError shardOwnershipLostError,\n 4: shared.EntityNotExistsError entityNotExistError,\n )\n\n /**\n * RatelimitUpdate pushes global-ratelimiting data to aggregating hosts,\n * and returns data describing how to update the caller's ratelimits.\n *\n * For more details, see github.com/uber/cadence/common/quotas/global documentation.\n *\n * Request and response structures are intentionally loosely defined, to allow plugging\n * in externally-defined algorithms without changing protocol-level details.\n **/\n RatelimitUpdateResponse RatelimitUpdate(1: RatelimitUpdateRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n )\n}\n" +const rawIDL = "// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\ninclude \"shared.thrift\"\ninclude \"replicator.thrift\"\n\nnamespace java com.uber.cadence.history\n\nexception EventAlreadyStartedError {\n 1: required string message\n}\n\nexception ShardOwnershipLostError {\n 10: optional string message\n 20: optional string owner\n}\n\nstruct ParentExecutionInfo {\n 10: optional string domainUUID\n 15: optional string domain\n 20: optional shared.WorkflowExecution execution\n 30: optional i64 (js.type = \"Long\") initiatedId\n}\n\nstruct StartWorkflowExecutionRequest {\n 10: optional string domainUUID\n 20: optional shared.StartWorkflowExecutionRequest startRequest\n 30: optional ParentExecutionInfo parentExecutionInfo\n 40: optional i32 attempt\n 50: optional i64 (js.type = \"Long\") expirationTimestamp\n 55: optional shared.ContinueAsNewInitiator continueAsNewInitiator\n 56: optional string continuedFailureReason\n 57: optional binary continuedFailureDetails\n 58: optional binary lastCompletionResult\n 60: optional i32 firstDecisionTaskBackoffSeconds\n 62: optional map partitionConfig\n}\n\nstruct DescribeMutableStateRequest{\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution execution\n}\n\nstruct DescribeMutableStateResponse{\n 30: optional string mutableStateInCache\n 40: optional string mutableStateInDatabase\n}\n\nstruct GetMutableStateRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution execution\n 30: optional i64 (js.type = \"Long\") expectedNextEventId\n 40: optional binary currentBranchToken\n 50: optional shared.VersionHistoryItem versionHistoryItem\n}\n\nstruct GetMutableStateResponse {\n 10: optional shared.WorkflowExecution execution\n 20: optional shared.WorkflowType workflowType\n 30: optional i64 (js.type = \"Long\") NextEventId\n 35: optional i64 (js.type = \"Long\") PreviousStartedEventId\n 40: optional i64 (js.type = \"Long\") LastFirstEventId\n 50: optional shared.TaskList taskList\n 60: optional shared.TaskList stickyTaskList\n 70: optional string clientLibraryVersion\n 80: optional string clientFeatureVersion\n 90: optional string clientImpl\n //TODO: isWorkflowRunning is deprecating. workflowState is going replace this field\n 100: optional bool isWorkflowRunning\n 110: optional i32 stickyTaskListScheduleToStartTimeout\n 120: optional i32 eventStoreVersion\n 130: optional binary currentBranchToken\n // TODO: when migrating to gRPC, make this a enum\n // TODO: when migrating to gRPC, unify internal & external representation\n // NOTE: workflowState & workflowCloseState are the same as persistence representation\n 150: optional i32 workflowState\n 160: optional i32 workflowCloseState\n 170: optional shared.VersionHistories versionHistories\n 180: optional bool isStickyTaskListEnabled\n 190: optional i64 (js.type = \"Long\") historySize\n}\n\nstruct PollMutableStateRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution execution\n 30: optional i64 (js.type = \"Long\") expectedNextEventId\n 40: optional binary currentBranchToken\n}\n\nstruct PollMutableStateResponse {\n 10: optional shared.WorkflowExecution execution\n 20: optional shared.WorkflowType workflowType\n 30: optional i64 (js.type = \"Long\") NextEventId\n 35: optional i64 (js.type = \"Long\") PreviousStartedEventId\n 40: optional i64 (js.type = \"Long\") LastFirstEventId\n 50: optional shared.TaskList taskList\n 60: optional shared.TaskList stickyTaskList\n 70: optional string clientLibraryVersion\n 80: optional string clientFeatureVersion\n 90: optional string clientImpl\n 100: optional i32 stickyTaskListScheduleToStartTimeout\n 110: optional binary currentBranchToken\n 130: optional shared.VersionHistories versionHistories\n // TODO: when migrating to gRPC, make this a enum\n // TODO: when migrating to gRPC, unify internal & external representation\n // NOTE: workflowState & workflowCloseState are the same as persistence representation\n 140: optional i32 workflowState\n 150: optional i32 workflowCloseState\n}\n\nstruct ResetStickyTaskListRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution execution\n}\n\nstruct ResetStickyTaskListResponse {\n // The reason to keep this response is to allow returning\n // information in the future.\n}\n\nstruct RespondDecisionTaskCompletedRequest {\n 10: optional string domainUUID\n 20: optional shared.RespondDecisionTaskCompletedRequest completeRequest\n}\n\nstruct RespondDecisionTaskCompletedResponse {\n 10: optional RecordDecisionTaskStartedResponse startedResponse\n 20: optional map activitiesToDispatchLocally\n}\n\nstruct RespondDecisionTaskFailedRequest {\n 10: optional string domainUUID\n 20: optional shared.RespondDecisionTaskFailedRequest failedRequest\n}\n\nstruct RecordActivityTaskHeartbeatRequest {\n 10: optional string domainUUID\n 20: optional shared.RecordActivityTaskHeartbeatRequest heartbeatRequest\n}\n\nstruct RespondActivityTaskCompletedRequest {\n 10: optional string domainUUID\n 20: optional shared.RespondActivityTaskCompletedRequest completeRequest\n}\n\nstruct RespondActivityTaskFailedRequest {\n 10: optional string domainUUID\n 20: optional shared.RespondActivityTaskFailedRequest failedRequest\n}\n\nstruct RespondActivityTaskCanceledRequest {\n 10: optional string domainUUID\n 20: optional shared.RespondActivityTaskCanceledRequest cancelRequest\n}\n\nstruct RefreshWorkflowTasksRequest {\n 10: optional string domainUIID\n 20: optional shared.RefreshWorkflowTasksRequest request\n}\n\nstruct RecordActivityTaskStartedRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution workflowExecution\n 30: optional i64 (js.type = \"Long\") scheduleId\n 40: optional i64 (js.type = \"Long\") taskId\n 45: optional string requestId // Unique id of each poll request. Used to ensure at most once delivery of tasks.\n 50: optional shared.PollForActivityTaskRequest pollRequest\n}\n\nstruct RecordActivityTaskStartedResponse {\n 20: optional shared.HistoryEvent scheduledEvent\n 30: optional i64 (js.type = \"Long\") startedTimestamp\n 40: optional i64 (js.type = \"Long\") attempt\n 50: optional i64 (js.type = \"Long\") scheduledTimestampOfThisAttempt\n 60: optional binary heartbeatDetails\n 70: optional shared.WorkflowType workflowType\n 80: optional string workflowDomain\n}\n\nstruct RecordDecisionTaskStartedRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution workflowExecution\n 30: optional i64 (js.type = \"Long\") scheduleId\n 40: optional i64 (js.type = \"Long\") taskId\n 45: optional string requestId // Unique id of each poll request. Used to ensure at most once delivery of tasks.\n 50: optional shared.PollForDecisionTaskRequest pollRequest\n}\n\nstruct RecordDecisionTaskStartedResponse {\n 10: optional shared.WorkflowType workflowType\n 20: optional i64 (js.type = \"Long\") previousStartedEventId\n 30: optional i64 (js.type = \"Long\") scheduledEventId\n 40: optional i64 (js.type = \"Long\") startedEventId\n 50: optional i64 (js.type = \"Long\") nextEventId\n 60: optional i64 (js.type = \"Long\") attempt\n 70: optional bool stickyExecutionEnabled\n 80: optional shared.TransientDecisionInfo decisionInfo\n 90: optional shared.TaskList WorkflowExecutionTaskList\n 100: optional i32 eventStoreVersion\n 110: optional binary branchToken\n 120: optional i64 (js.type = \"Long\") scheduledTimestamp\n 130: optional i64 (js.type = \"Long\") startedTimestamp\n 140: optional map queries\n 150: optional i64 (js.type = \"Long\") historySize\n}\n\nstruct SignalWorkflowExecutionRequest {\n 10: optional string domainUUID\n 20: optional shared.SignalWorkflowExecutionRequest signalRequest\n // workflow execution that requests this signal, for making sure\n // the workflow being signaled is actually a child of the workflow\n // making the request\n 30: optional shared.WorkflowExecution externalWorkflowExecution\n 40: optional bool childWorkflowOnly\n}\n\nstruct SignalWithStartWorkflowExecutionRequest {\n 10: optional string domainUUID\n 20: optional shared.SignalWithStartWorkflowExecutionRequest signalWithStartRequest\n 30: optional map partitionConfig\n}\n\nstruct RemoveSignalMutableStateRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution workflowExecution\n 30: optional string requestId\n}\n\nstruct TerminateWorkflowExecutionRequest {\n 10: optional string domainUUID\n 20: optional shared.TerminateWorkflowExecutionRequest terminateRequest\n // workflow execution that requests this termination, for making sure\n // the workflow being terminated is actually a child of the workflow\n // making the request\n 30: optional shared.WorkflowExecution externalWorkflowExecution\n 40: optional bool childWorkflowOnly\n}\n\nstruct ResetWorkflowExecutionRequest {\n 10: optional string domainUUID\n 20: optional shared.ResetWorkflowExecutionRequest resetRequest\n}\n\nstruct RequestCancelWorkflowExecutionRequest {\n 10: optional string domainUUID\n 20: optional shared.RequestCancelWorkflowExecutionRequest cancelRequest\n // workflow execution that requests this cancellation, for making sure\n // the workflow being cancelled is actually a child of the workflow\n // making the request\n 30: optional i64 (js.type = \"Long\") externalInitiatedEventId\n 40: optional shared.WorkflowExecution externalWorkflowExecution\n 50: optional bool childWorkflowOnly\n}\n\nstruct ScheduleDecisionTaskRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution workflowExecution\n 30: optional bool isFirstDecision\n}\n\nstruct DescribeWorkflowExecutionRequest {\n 10: optional string domainUUID\n 20: optional shared.DescribeWorkflowExecutionRequest request\n}\n\n/**\n* RecordChildExecutionCompletedRequest is used for reporting the completion of child execution to parent workflow\n* execution which started it. When a child execution is completed it creates this request and calls the\n* RecordChildExecutionCompleted API with the workflowExecution of parent. It also sets the completedExecution of the\n* child as it could potentially be different than the ChildExecutionStartedEvent of parent in the situation when\n* child creates multiple runs through ContinueAsNew before finally completing.\n**/\nstruct RecordChildExecutionCompletedRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution workflowExecution\n 30: optional i64 (js.type = \"Long\") initiatedId\n 40: optional shared.WorkflowExecution completedExecution\n 50: optional shared.HistoryEvent completionEvent\n 60: optional i64 (js.type = \"Long\") startedId\n}\n\nstruct ReplicateEventsV2Request {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution workflowExecution\n 30: optional list versionHistoryItems\n 40: optional shared.DataBlob events\n // new run events does not need version history since there is no prior events\n 60: optional shared.DataBlob newRunEvents\n}\n\nstruct SyncShardStatusRequest {\n 10: optional string sourceCluster\n 20: optional i64 (js.type = \"Long\") shardId\n 30: optional i64 (js.type = \"Long\") timestamp\n}\n\nstruct SyncActivityRequest {\n 10: optional string domainId\n 20: optional string workflowId\n 30: optional string runId\n 40: optional i64 (js.type = \"Long\") version\n 50: optional i64 (js.type = \"Long\") scheduledId\n 60: optional i64 (js.type = \"Long\") scheduledTime\n 70: optional i64 (js.type = \"Long\") startedId\n 80: optional i64 (js.type = \"Long\") startedTime\n 90: optional i64 (js.type = \"Long\") lastHeartbeatTime\n 100: optional binary details\n 110: optional i32 attempt\n 120: optional string lastFailureReason\n 130: optional string lastWorkerIdentity\n 140: optional binary lastFailureDetails\n 150: optional shared.VersionHistory versionHistory\n}\n\nstruct QueryWorkflowRequest {\n 10: optional string domainUUID\n 20: optional shared.QueryWorkflowRequest request\n}\n\nstruct QueryWorkflowResponse {\n 10: optional shared.QueryWorkflowResponse response\n}\n\nstruct ReapplyEventsRequest {\n 10: optional string domainUUID\n 20: optional shared.ReapplyEventsRequest request\n}\n\nstruct FailoverMarkerToken {\n 10: optional list shardIDs\n 20: optional replicator.FailoverMarkerAttributes failoverMarker\n}\n\nstruct NotifyFailoverMarkersRequest {\n 10: optional list failoverMarkerTokens\n}\n\nstruct ProcessingQueueStates {\n 10: optional map> statesByCluster\n}\n\nstruct ProcessingQueueState {\n 10: optional i32 level\n 20: optional i64 ackLevel\n 30: optional i64 maxLevel\n 40: optional DomainFilter domainFilter\n}\n\nstruct DomainFilter {\n 10: optional list domainIDs\n 20: optional bool reverseMatch\n}\n\nstruct GetFailoverInfoRequest {\n 10: optional string domainID\n}\n\nstruct GetFailoverInfoResponse {\n 10: optional i32 completedShardCount\n 20: optional list pendingShards\n}\n\nstruct RatelimitUpdateRequest {\n /**\n * impl-specific data.\n *\n * likely some simple top-level keys and then either:\n * - map\n * - list\n *\n * this is a single blob rather than a collection to save on\n * repeated serialization of the type name, and to allow impls\n * to choose whatever structures are most-convenient for them.\n */\n 10: optional shared.Any data\n}\n\nstruct RatelimitUpdateResponse {\n /**\n * impl-specific data.\n *\n * likely some simple top-level keys and then either:\n * - map\n * - list\n *\n * this is a single blob rather than a collection to save on\n * repeated serialization of the type name, and to allow impls\n * to choose whatever structures are most-convenient for them.\n */\n 10: optional shared.Any data\n}\n\n/**\n* first impl of ratelimiting data, collected by limiters and sent to aggregators.\n*\n* used in an Any with ValueType: WeightedRatelimitUsageAnyType\n*/\nstruct WeightedRatelimitUsage {\n /** unique, stable identifier of the calling host, to identify future data from the same host */\n 10: required string caller\n /** milliseconds since last update call. expected to be on the order of a few seconds or less. */\n 20: required i32 elapsedMS\n /** per key, number of allowed vs rejected calls since last update. */\n 30: required map calls\n}\n\n/** Any{ValueType} identifier for WeightedRatelimitUsage data */\nconst string WeightedRatelimitUsageAnyType = \"cadence:loadbalanced:update_request\"\n\n/** fields are required to encourage compact serialization, zeros are expected */\nstruct WeightedRatelimitCalls {\n /**\n * number of allowed requests since last call.\n * assumed to be <1m or so, saturates at MAX_INT32.\n */\n 10: required i32 allowed\n /**\n * number of rejected requests since last call.\n * assumed to be <1m or so, saturates at MAX_INT32.\n */\n 20: required i32 rejected\n}\n\n/**\n* first impl of ratelimiting data, result from aggregator to limiter.\n*\n* used in an Any with ValueType: WeightedRatelimitQuotasAnyType\n*/\nstruct WeightedRatelimitQuotas {\n /** RPS-weights to allow per key */\n 10: required map quotas\n}\n\n/** Any{ValueType} identifier for WeightedRatelimitQuotas data */\nconst string WeightedRatelimitQuotasAnyType = \"cadence:loadbalanced:update_response\"\n\n/**\n* second impl, includes unused-RPS data so limiters can decide if they\n* want to allow exceeding limits when there is free space.\n*\n* used in an Any with ValueType: WeightedRatelimitUsageQuotasAnyType\n*/\nstruct WeightedRatelimitUsageQuotas {\n /** RPS weights and total usage per key */\n 10: required map quotas\n}\n\nstruct WeightedRatelimitUsageQuotaEntry {\n /** Amount of the quota that the receiving host can use, between 0 and 1 */\n 10: required double weight\n /** RPS estimated across the whole cluster */\n 20: required double used\n}\n\nconst string WeightedRatelimitUsageQuotasAnyType = \"cadence:loadbalanced:update_response_used\"\n\n/**\n* HistoryService provides API to start a new long running workflow instance, as well as query and update the history\n* of workflow instances already created.\n**/\nservice HistoryService {\n /**\n * StartWorkflowExecution starts a new long running workflow instance. It will create the instance with\n * 'WorkflowExecutionStarted' event in history and also schedule the first DecisionTask for the worker to make the\n * first decision for this instance. It will return 'WorkflowExecutionAlreadyStartedError', if an instance already\n * exists with same workflowId.\n **/\n shared.StartWorkflowExecutionResponse StartWorkflowExecution(1: StartWorkflowExecutionRequest startRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.WorkflowExecutionAlreadyStartedError sessionAlreadyExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * Returns the information from mutable state of workflow execution.\n * It fails with 'EntityNotExistError' if specified workflow execution in unknown to the service.\n * It returns CurrentBranchChangedError if the workflow version branch has changed.\n **/\n GetMutableStateResponse GetMutableState(1: GetMutableStateRequest getRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.CurrentBranchChangedError currentBranchChangedError,\n )\n\n /**\n * Returns the information from mutable state of workflow execution.\n * It fails with 'EntityNotExistError' if specified workflow execution in unknown to the service.\n * It returns CurrentBranchChangedError if the workflow version branch has changed.\n **/\n PollMutableStateResponse PollMutableState(1: PollMutableStateRequest pollRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.CurrentBranchChangedError currentBranchChangedError,\n )\n\n /**\n * Reset the sticky tasklist related information in mutable state of a given workflow.\n * Things cleared are:\n * 1. StickyTaskList\n * 2. StickyScheduleToStartTimeout\n * 3. ClientLibraryVersion\n * 4. ClientFeatureVersion\n * 5. ClientImpl\n **/\n ResetStickyTaskListResponse ResetStickyTaskList(1: ResetStickyTaskListRequest resetRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RecordDecisionTaskStarted is called by the Matchingservice before it hands a decision task to the application worker in response to\n * a PollForDecisionTask call. It records in the history the event that the decision task has started. It will return 'EventAlreadyStartedError',\n * if the workflow's execution history already includes a record of the event starting.\n **/\n RecordDecisionTaskStartedResponse RecordDecisionTaskStarted(1: RecordDecisionTaskStartedRequest addRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: EventAlreadyStartedError eventAlreadyStartedError,\n 4: shared.EntityNotExistsError entityNotExistError,\n 5: ShardOwnershipLostError shardOwnershipLostError,\n 6: shared.DomainNotActiveError domainNotActiveError,\n 7: shared.LimitExceededError limitExceededError,\n 8: shared.ServiceBusyError serviceBusyError,\n 9: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RecordActivityTaskStarted is called by the Matchingservice before it hands a decision task to the application worker in response to\n * a PollForActivityTask call. It records in the history the event that the decision task has started. It will return 'EventAlreadyStartedError',\n * if the workflow's execution history already includes a record of the event starting.\n **/\n RecordActivityTaskStartedResponse RecordActivityTaskStarted(1: RecordActivityTaskStartedRequest addRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: EventAlreadyStartedError eventAlreadyStartedError,\n 4: shared.EntityNotExistsError entityNotExistError,\n 5: ShardOwnershipLostError shardOwnershipLostError,\n 6: shared.DomainNotActiveError domainNotActiveError,\n 7: shared.LimitExceededError limitExceededError,\n 8: shared.ServiceBusyError serviceBusyError,\n 9: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RespondDecisionTaskCompleted is called by application worker to complete a DecisionTask handed as a result of\n * 'PollForDecisionTask' API call. Completing a DecisionTask will result in new events for the workflow execution and\n * potentially new ActivityTask being created for corresponding decisions. It will also create a DecisionTaskCompleted\n * event in the history for that session. Use the 'taskToken' provided as response of PollForDecisionTask API call\n * for completing the DecisionTask.\n **/\n RespondDecisionTaskCompletedResponse RespondDecisionTaskCompleted(1: RespondDecisionTaskCompletedRequest completeRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RespondDecisionTaskFailed is called by application worker to indicate failure. This results in\n * DecisionTaskFailedEvent written to the history and a new DecisionTask created. This API can be used by client to\n * either clear sticky tasklist or report ny panics during DecisionTask processing.\n **/\n void RespondDecisionTaskFailed(1: RespondDecisionTaskFailedRequest failedRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RecordActivityTaskHeartbeat is called by application worker while it is processing an ActivityTask. If worker fails\n * to heartbeat within 'heartbeatTimeoutSeconds' interval for the ActivityTask, then it will be marked as timedout and\n * 'ActivityTaskTimedOut' event will be written to the workflow history. Calling 'RecordActivityTaskHeartbeat' will\n * fail with 'EntityNotExistsError' in such situations. Use the 'taskToken' provided as response of\n * PollForActivityTask API call for heartbeating.\n **/\n shared.RecordActivityTaskHeartbeatResponse RecordActivityTaskHeartbeat(1: RecordActivityTaskHeartbeatRequest heartbeatRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RespondActivityTaskCompleted is called by application worker when it is done processing an ActivityTask. It will\n * result in a new 'ActivityTaskCompleted' event being written to the workflow history and a new DecisionTask\n * created for the workflow so new decisions could be made. Use the 'taskToken' provided as response of\n * PollForActivityTask API call for completion. It fails with 'EntityNotExistsError' if the taskToken is not valid\n * anymore due to activity timeout.\n **/\n void RespondActivityTaskCompleted(1: RespondActivityTaskCompletedRequest completeRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RespondActivityTaskFailed is called by application worker when it is done processing an ActivityTask. It will\n * result in a new 'ActivityTaskFailed' event being written to the workflow history and a new DecisionTask\n * created for the workflow instance so new decisions could be made. Use the 'taskToken' provided as response of\n * PollForActivityTask API call for completion. It fails with 'EntityNotExistsError' if the taskToken is not valid\n * anymore due to activity timeout.\n **/\n void RespondActivityTaskFailed(1: RespondActivityTaskFailedRequest failRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RespondActivityTaskCanceled is called by application worker when it is successfully canceled an ActivityTask. It will\n * result in a new 'ActivityTaskCanceled' event being written to the workflow history and a new DecisionTask\n * created for the workflow instance so new decisions could be made. Use the 'taskToken' provided as response of\n * PollForActivityTask API call for completion. It fails with 'EntityNotExistsError' if the taskToken is not valid\n * anymore due to activity timeout.\n **/\n void RespondActivityTaskCanceled(1: RespondActivityTaskCanceledRequest canceledRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * SignalWorkflowExecution is used to send a signal event to running workflow execution. This results in\n * WorkflowExecutionSignaled event recorded in the history and a decision task being created for the execution.\n **/\n void SignalWorkflowExecution(1: SignalWorkflowExecutionRequest signalRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.LimitExceededError limitExceededError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * SignalWithStartWorkflowExecution is used to ensure sending a signal event to a workflow execution.\n * If workflow is running, this results in WorkflowExecutionSignaled event recorded in the history\n * and a decision task being created for the execution.\n * If workflow is not running or not found, it will first try start workflow with given WorkflowIDResuePolicy,\n * and record WorkflowExecutionStarted and WorkflowExecutionSignaled event in case of success.\n * It will return `WorkflowExecutionAlreadyStartedError` if start workflow failed with given policy.\n **/\n shared.StartWorkflowExecutionResponse SignalWithStartWorkflowExecution(1: SignalWithStartWorkflowExecutionRequest signalWithStartRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: ShardOwnershipLostError shardOwnershipLostError,\n 4: shared.DomainNotActiveError domainNotActiveError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.WorkflowExecutionAlreadyStartedError workflowAlreadyStartedError,\n )\n\n /**\n * RemoveSignalMutableState is used to remove a signal request ID that was previously recorded. This is currently\n * used to clean execution info when signal decision finished.\n **/\n void RemoveSignalMutableState(1: RemoveSignalMutableStateRequest removeRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * TerminateWorkflowExecution terminates an existing workflow execution by recording WorkflowExecutionTerminated event\n * in the history and immediately terminating the execution instance.\n **/\n void TerminateWorkflowExecution(1: TerminateWorkflowExecutionRequest terminateRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * ResetWorkflowExecution reset an existing workflow execution by a firstEventID of a existing event batch\n * in the history and immediately terminating the current execution instance.\n * After reset, the history will grow from nextFirstEventID.\n **/\n shared.ResetWorkflowExecutionResponse ResetWorkflowExecution(1: ResetWorkflowExecutionRequest resetRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * RequestCancelWorkflowExecution is called by application worker when it wants to request cancellation of a workflow instance.\n * It will result in a new 'WorkflowExecutionCancelRequested' event being written to the workflow history and a new DecisionTask\n * created for the workflow instance so new decisions could be made. It fails with\n * 'WorkflowExecutionAlreadyCompletedError' if the workflow is not valid\n * anymore due to completion or with 'EntityNotExistsError' if worfklow doesn't exist.\n **/\n void RequestCancelWorkflowExecution(1: RequestCancelWorkflowExecutionRequest cancelRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.CancellationAlreadyRequestedError cancellationAlreadyRequestedError,\n 6: shared.DomainNotActiveError domainNotActiveError,\n 7: shared.LimitExceededError limitExceededError,\n 8: shared.ServiceBusyError serviceBusyError,\n 10: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * ScheduleDecisionTask is used for creating a decision task for already started workflow execution. This is mainly\n * used by transfer queue processor during the processing of StartChildWorkflowExecution task, where it first starts\n * child execution without creating the decision task and then calls this API after updating the mutable state of\n * parent execution.\n **/\n void ScheduleDecisionTask(1: ScheduleDecisionTaskRequest scheduleRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RecordChildExecutionCompleted is used for reporting the completion of child workflow execution to parent.\n * This is mainly called by transfer queue processor during the processing of DeleteExecution task.\n **/\n void RecordChildExecutionCompleted(1: RecordChildExecutionCompletedRequest completionRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * DescribeWorkflowExecution returns information about the specified workflow execution.\n **/\n shared.DescribeWorkflowExecutionResponse DescribeWorkflowExecution(1: DescribeWorkflowExecutionRequest describeRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n )\n\n void ReplicateEventsV2(1: ReplicateEventsV2Request replicateV2Request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.RetryTaskV2Error retryTaskError,\n 7: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * SyncShardStatus sync the status between shards\n **/\n void SyncShardStatus(1: SyncShardStatusRequest syncShardStatusRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * SyncActivity sync the activity status\n **/\n void SyncActivity(1: SyncActivityRequest syncActivityRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.ServiceBusyError serviceBusyError,\n 7: shared.RetryTaskV2Error retryTaskV2Error,\n )\n\n /**\n * DescribeMutableState returns information about the internal states of workflow mutable state.\n **/\n DescribeMutableStateResponse DescribeMutableState(1: DescribeMutableStateRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.AccessDeniedError accessDeniedError,\n 5: ShardOwnershipLostError shardOwnershipLostError,\n 6: shared.LimitExceededError limitExceededError,\n )\n\n /**\n * DescribeHistoryHost returns information about the internal states of a history host\n **/\n shared.DescribeHistoryHostResponse DescribeHistoryHost(1: shared.DescribeHistoryHostRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.AccessDeniedError accessDeniedError,\n )\n\n /**\n * CloseShard close the shard\n **/\n void CloseShard(1: shared.CloseShardRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.AccessDeniedError accessDeniedError,\n )\n\n /**\n * RemoveTask remove task based on type, taskid, shardid\n **/\n void RemoveTask(1: shared.RemoveTaskRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.AccessDeniedError accessDeniedError,\n )\n\n /**\n * ResetQueue reset processing queue state based on cluster name and type\n **/\n void ResetQueue(1: shared.ResetQueueRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.AccessDeniedError accessDeniedError,\n )\n\n /**\n * DescribeQueue return queue states based on cluster name and type\n **/\n shared.DescribeQueueResponse DescribeQueue(1: shared.DescribeQueueRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.AccessDeniedError accessDeniedError,\n )\n\n /**\n * GetReplicationMessages return replication messages based on the read level\n **/\n replicator.GetReplicationMessagesResponse GetReplicationMessages(1: replicator.GetReplicationMessagesRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.LimitExceededError limitExceededError,\n 4: shared.ServiceBusyError serviceBusyError,\n 5: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * GetDLQReplicationMessages return replication messages based on dlq info\n **/\n replicator.GetDLQReplicationMessagesResponse GetDLQReplicationMessages(1: replicator.GetDLQReplicationMessagesRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: shared.EntityNotExistsError entityNotExistError,\n )\n\n /**\n * QueryWorkflow returns query result for a specified workflow execution\n **/\n QueryWorkflowResponse QueryWorkflow(1: QueryWorkflowRequest queryRequest)\n\tthrows (\n\t 1: shared.BadRequestError badRequestError,\n\t 2: shared.InternalServiceError internalServiceError,\n\t 3: shared.EntityNotExistsError entityNotExistError,\n\t 4: shared.QueryFailedError queryFailedError,\n\t 5: shared.LimitExceededError limitExceededError,\n\t 6: shared.ServiceBusyError serviceBusyError,\n\t 7: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n\t)\n\n /**\n * ReapplyEvents applies stale events to the current workflow and current run\n **/\n void ReapplyEvents(1: ReapplyEventsRequest reapplyEventsRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.DomainNotActiveError domainNotActiveError,\n 4: shared.LimitExceededError limitExceededError,\n 5: shared.ServiceBusyError serviceBusyError,\n 6: ShardOwnershipLostError shardOwnershipLostError,\n 7: shared.EntityNotExistsError entityNotExistError,\n )\n\n /**\n * RefreshWorkflowTasks refreshes all tasks of a workflow\n **/\n void RefreshWorkflowTasks(1: RefreshWorkflowTasksRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.DomainNotActiveError domainNotActiveError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.ServiceBusyError serviceBusyError,\n 6: shared.EntityNotExistsError entityNotExistError,\n )\n\n /**\n * ReadDLQMessages returns messages from DLQ\n **/\n replicator.ReadDLQMessagesResponse ReadDLQMessages(1: replicator.ReadDLQMessagesRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: shared.EntityNotExistsError entityNotExistError,\n 5: ShardOwnershipLostError shardOwnershipLostError,\n )\n\n /**\n * PurgeDLQMessages purges messages from DLQ\n **/\n void PurgeDLQMessages(1: replicator.PurgeDLQMessagesRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: shared.EntityNotExistsError entityNotExistError,\n 5: ShardOwnershipLostError shardOwnershipLostError,\n )\n\n /**\n * MergeDLQMessages merges messages from DLQ\n **/\n replicator.MergeDLQMessagesResponse MergeDLQMessages(1: replicator.MergeDLQMessagesRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: shared.EntityNotExistsError entityNotExistError,\n 5: ShardOwnershipLostError shardOwnershipLostError,\n )\n\n /**\n * NotifyFailoverMarkers sends failover marker to the failover coordinator\n **/\n void NotifyFailoverMarkers(1: NotifyFailoverMarkersRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * GetCrossClusterTasks fetches cross cluster tasks\n **/\n shared.GetCrossClusterTasksResponse GetCrossClusterTasks(1: shared.GetCrossClusterTasksRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * RespondCrossClusterTasksCompleted responds the result of processing cross cluster tasks\n **/\n shared.RespondCrossClusterTasksCompletedResponse RespondCrossClusterTasksCompleted(1: shared.RespondCrossClusterTasksCompletedRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n )\n\n /**\n * GetFailoverInfo responds the failover info about an on-going graceful failover\n **/\n GetFailoverInfoResponse GetFailoverInfo(1: GetFailoverInfoRequest request)\n throws (\n 1: shared.InternalServiceError internalServiceError,\n 2: shared.ServiceBusyError serviceBusyError,\n 3: ShardOwnershipLostError shardOwnershipLostError,\n 4: shared.EntityNotExistsError entityNotExistError,\n )\n\n /**\n * RatelimitUpdate pushes global-ratelimiting data to aggregating hosts,\n * and returns data describing how to update the caller's ratelimits.\n *\n * For more details, see github.com/uber/cadence/common/quotas/global documentation.\n *\n * Request and response structures are intentionally loosely defined, to allow plugging\n * in externally-defined algorithms without changing protocol-level details.\n **/\n RatelimitUpdateResponse RatelimitUpdate(1: RatelimitUpdateRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n )\n}\n" // HistoryService_CloseShard_Args represents the arguments for the HistoryService.CloseShard function. // From c2fccf2ec898ac436a881b0a0dd955e799654d01 Mon Sep 17 00:00:00 2001 From: David Porter Date: Mon, 25 Nov 2024 23:32:24 -0800 Subject: [PATCH 12/13] fix idl --- cmd/server/go.mod | 2 +- cmd/server/go.sum | 4 ++-- go.mod | 2 +- go.sum | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/cmd/server/go.mod b/cmd/server/go.mod index b1b39e81313..cbfe79b314a 100644 --- a/cmd/server/go.mod +++ b/cmd/server/go.mod @@ -40,7 +40,7 @@ require ( github.com/startreedata/pinot-client-go v0.2.0 // latest release supports pinot v0.12.0 which is also internal version github.com/stretchr/testify v1.8.3 github.com/uber-go/tally v3.3.15+incompatible // indirect - github.com/uber/cadence-idl v0.0.0-20241118185545-0ff09166fc7c + github.com/uber/cadence-idl v0.0.0-20241126065313-57bd6876d48f github.com/uber/ringpop-go v0.8.5 // indirect github.com/uber/tchannel-go v1.22.2 // indirect github.com/valyala/fastjson v1.4.1 // indirect diff --git a/cmd/server/go.sum b/cmd/server/go.sum index 69ea9238a86..4068b9a149e 100644 --- a/cmd/server/go.sum +++ b/cmd/server/go.sum @@ -407,8 +407,8 @@ github.com/uber-go/tally v3.3.12+incompatible/go.mod h1:YDTIBxdXyOU/sCWilKB4bgyu github.com/uber-go/tally v3.3.15+incompatible h1:9hLSgNBP28CjIaDmAuRTq9qV+UZY+9PcvAkXO4nNMwg= github.com/uber-go/tally v3.3.15+incompatible/go.mod h1:YDTIBxdXyOU/sCWilKB4bgyufu1cEi0jdVnRdxvjnmU= github.com/uber/cadence-idl v0.0.0-20211111101836-d6b70b60eb8c/go.mod h1:oyUK7GCNCRHCCyWyzifSzXpVrRYVBbAMHAzF5dXiKws= -github.com/uber/cadence-idl v0.0.0-20241118185545-0ff09166fc7c h1:sagx8l5XOlJWlwwflrxsxlYXgsgyr1Jpe2eXl7q5Vic= -github.com/uber/cadence-idl v0.0.0-20241118185545-0ff09166fc7c/go.mod h1:oyUK7GCNCRHCCyWyzifSzXpVrRYVBbAMHAzF5dXiKws= +github.com/uber/cadence-idl v0.0.0-20241126065313-57bd6876d48f h1:U2nI6IKh80rrueDb2G3wuhCkCHYCsLp9EFBazeTs7Dk= +github.com/uber/cadence-idl v0.0.0-20241126065313-57bd6876d48f/go.mod h1:oyUK7GCNCRHCCyWyzifSzXpVrRYVBbAMHAzF5dXiKws= github.com/uber/jaeger-client-go v2.22.1+incompatible h1:NHcubEkVbahf9t3p75TOCR83gdUHXjRJvjoBh1yACsM= github.com/uber/jaeger-client-go v2.22.1+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= github.com/uber/jaeger-lib v2.2.0+incompatible h1:MxZXOiR2JuoANZ3J6DE/U0kSFv/eJ/GfSYVCjK7dyaw= diff --git a/go.mod b/go.mod index 870bd8f8564..14104016ab3 100644 --- a/go.mod +++ b/go.mod @@ -40,7 +40,7 @@ require ( github.com/startreedata/pinot-client-go v0.2.0 // latest release supports pinot v0.12.0 which is also internal version github.com/stretchr/testify v1.8.3 github.com/uber-go/tally v3.3.15+incompatible - github.com/uber/cadence-idl v0.0.0-20241118185545-0ff09166fc7c + github.com/uber/cadence-idl v0.0.0-20241126065313-57bd6876d48f github.com/uber/ringpop-go v0.8.5 github.com/uber/tchannel-go v1.22.2 github.com/urfave/cli/v2 v2.27.4 diff --git a/go.sum b/go.sum index 7d6358df6f0..a43394331d9 100644 --- a/go.sum +++ b/go.sum @@ -445,8 +445,8 @@ github.com/uber-go/tally v3.3.12+incompatible/go.mod h1:YDTIBxdXyOU/sCWilKB4bgyu github.com/uber-go/tally v3.3.15+incompatible h1:9hLSgNBP28CjIaDmAuRTq9qV+UZY+9PcvAkXO4nNMwg= github.com/uber-go/tally v3.3.15+incompatible/go.mod h1:YDTIBxdXyOU/sCWilKB4bgyufu1cEi0jdVnRdxvjnmU= github.com/uber/cadence-idl v0.0.0-20211111101836-d6b70b60eb8c/go.mod h1:oyUK7GCNCRHCCyWyzifSzXpVrRYVBbAMHAzF5dXiKws= -github.com/uber/cadence-idl v0.0.0-20241118185545-0ff09166fc7c h1:sagx8l5XOlJWlwwflrxsxlYXgsgyr1Jpe2eXl7q5Vic= -github.com/uber/cadence-idl v0.0.0-20241118185545-0ff09166fc7c/go.mod h1:oyUK7GCNCRHCCyWyzifSzXpVrRYVBbAMHAzF5dXiKws= +github.com/uber/cadence-idl v0.0.0-20241126065313-57bd6876d48f h1:U2nI6IKh80rrueDb2G3wuhCkCHYCsLp9EFBazeTs7Dk= +github.com/uber/cadence-idl v0.0.0-20241126065313-57bd6876d48f/go.mod h1:oyUK7GCNCRHCCyWyzifSzXpVrRYVBbAMHAzF5dXiKws= github.com/uber/jaeger-client-go v2.22.1+incompatible h1:NHcubEkVbahf9t3p75TOCR83gdUHXjRJvjoBh1yACsM= github.com/uber/jaeger-client-go v2.22.1+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= github.com/uber/jaeger-lib v2.2.0+incompatible h1:MxZXOiR2JuoANZ3J6DE/U0kSFv/eJ/GfSYVCjK7dyaw= From f755937a7fc84894e2f09027e2a0e47fc11947de Mon Sep 17 00:00:00 2001 From: David Porter Date: Tue, 26 Nov 2024 11:51:39 -0800 Subject: [PATCH 13/13] Fix mapper --- common/types/mapper/proto/history.go | 21 ++------------------- common/types/mapper/thrift/history.go | 26 ++------------------------ 2 files changed, 4 insertions(+), 43 deletions(-) diff --git a/common/types/mapper/proto/history.go b/common/types/mapper/proto/history.go index 43f72cc5c12..52fd606d834 100644 --- a/common/types/mapper/proto/history.go +++ b/common/types/mapper/proto/history.go @@ -21,7 +21,6 @@ package proto import ( - adminv1 "github.com/uber/cadence-idl/go/proto/admin/v1" apiv1 "github.com/uber/cadence-idl/go/proto/api/v1" historyv1 "github.com/uber/cadence/.gen/proto/history/v1" @@ -293,21 +292,12 @@ func FromHistoryGetMutableStateRequest(t *types.GetMutableStateRequest) *history if t == nil { return nil } - - var versionHistoryItem *adminv1.VersionHistoryItem - if t.VersionHistoryItem != nil { - versionHistoryItem = &adminv1.VersionHistoryItem{ - EventId: t.VersionHistoryItem.EventID, - Version: t.VersionHistoryItem.Version, - } - } - return &historyv1.GetMutableStateRequest{ DomainId: t.DomainUUID, WorkflowExecution: FromWorkflowExecution(t.Execution), ExpectedNextEventId: t.ExpectedNextEventID, CurrentBranchToken: t.CurrentBranchToken, - VersionHistoryItem: versionHistoryItem, + VersionHistoryItem: FromVersionHistoryItem(t.VersionHistoryItem), } } @@ -315,19 +305,12 @@ func ToHistoryGetMutableStateRequest(t *historyv1.GetMutableStateRequest) *types if t == nil { return nil } - var versionHistoryItem *types.VersionHistoryItem - if t.VersionHistoryItem != nil { - versionHistoryItem = &types.VersionHistoryItem{ - EventID: t.VersionHistoryItem.EventId, - Version: t.VersionHistoryItem.Version, - } - } return &types.GetMutableStateRequest{ DomainUUID: t.DomainId, Execution: ToWorkflowExecution(t.WorkflowExecution), ExpectedNextEventID: t.ExpectedNextEventId, CurrentBranchToken: t.CurrentBranchToken, - VersionHistoryItem: versionHistoryItem, + VersionHistoryItem: ToVersionHistoryItem(t.VersionHistoryItem), } } diff --git a/common/types/mapper/thrift/history.go b/common/types/mapper/thrift/history.go index 96eb9a30b6a..cdffc579efe 100644 --- a/common/types/mapper/thrift/history.go +++ b/common/types/mapper/thrift/history.go @@ -22,7 +22,6 @@ package thrift import ( "github.com/uber/cadence/.gen/go/history" - "github.com/uber/cadence/.gen/go/shared" "github.com/uber/cadence/common/types" ) @@ -228,21 +227,12 @@ func FromHistoryGetMutableStateRequest(t *types.GetMutableStateRequest) *history if t == nil { return nil } - - var versionHistoryItem *shared.VersionHistoryItem - if t.VersionHistoryItem != nil { - versionHistoryItem = &shared.VersionHistoryItem{ - EventID: &t.VersionHistoryItem.EventID, - Version: &t.VersionHistoryItem.Version, - } - } - return &history.GetMutableStateRequest{ DomainUUID: &t.DomainUUID, Execution: FromWorkflowExecution(t.Execution), ExpectedNextEventId: &t.ExpectedNextEventID, CurrentBranchToken: t.CurrentBranchToken, - VersionHistoryItem: versionHistoryItem, + VersionHistoryItem: FromVersionHistoryItem(t.VersionHistoryItem), } } @@ -251,24 +241,12 @@ func ToHistoryGetMutableStateRequest(t *history.GetMutableStateRequest) *types.G if t == nil { return nil } - - var versionHistoryItem *types.VersionHistoryItem - if t.VersionHistoryItem != nil { - versionHistoryItem = &types.VersionHistoryItem{} - if t.VersionHistoryItem.EventID != nil { - versionHistoryItem.EventID = *t.VersionHistoryItem.EventID - } - if t.VersionHistoryItem.Version != nil { - versionHistoryItem.Version = *t.VersionHistoryItem.Version - } - } - return &types.GetMutableStateRequest{ DomainUUID: t.GetDomainUUID(), Execution: ToWorkflowExecution(t.Execution), ExpectedNextEventID: t.GetExpectedNextEventId(), CurrentBranchToken: t.CurrentBranchToken, - VersionHistoryItem: versionHistoryItem, + VersionHistoryItem: ToVersionHistoryItem(t.VersionHistoryItem), } }