relay-runtime 0.0.0-main-91feecfd → 0.0.0-main-8e13c8f5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Relay v0.0.0-main-91feecfd
2
+ * Relay v0.0.0-main-8e13c8f5
3
3
  *
4
4
  * Copyright (c) Meta Platforms, Inc. and affiliates.
5
5
  *
@@ -16,34 +16,39 @@ var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime
16
16
 
17
17
  var recycleNodesInto = require('../../util/recycleNodesInto');
18
18
 
19
- var _require = require('../ClientID'),
20
- generateClientID = _require.generateClientID;
19
+ var _require = require('../../util/RelayConcreteNode'),
20
+ RELAY_LIVE_RESOLVER = _require.RELAY_LIVE_RESOLVER;
21
+
22
+ var _require2 = require('../ClientID'),
23
+ generateClientID = _require2.generateClientID;
21
24
 
22
25
  var RelayModernRecord = require('../RelayModernRecord');
23
26
 
24
27
  var RelayRecordSource = require('../RelayRecordSource');
25
28
 
26
- var _require2 = require('../RelayStoreUtils'),
27
- RELAY_RESOLVER_ERROR_KEY = _require2.RELAY_RESOLVER_ERROR_KEY,
28
- RELAY_RESOLVER_INPUTS_KEY = _require2.RELAY_RESOLVER_INPUTS_KEY,
29
- RELAY_RESOLVER_INVALIDATION_KEY = _require2.RELAY_RESOLVER_INVALIDATION_KEY,
30
- RELAY_RESOLVER_MISSING_REQUIRED_FIELDS_KEY = _require2.RELAY_RESOLVER_MISSING_REQUIRED_FIELDS_KEY,
31
- RELAY_RESOLVER_READER_SELECTOR_KEY = _require2.RELAY_RESOLVER_READER_SELECTOR_KEY,
32
- RELAY_RESOLVER_VALUE_KEY = _require2.RELAY_RESOLVER_VALUE_KEY,
33
- getStorageKey = _require2.getStorageKey;
29
+ var _require3 = require('../RelayStoreUtils'),
30
+ RELAY_RESOLVER_ERROR_KEY = _require3.RELAY_RESOLVER_ERROR_KEY,
31
+ RELAY_RESOLVER_INPUTS_KEY = _require3.RELAY_RESOLVER_INPUTS_KEY,
32
+ RELAY_RESOLVER_INVALIDATION_KEY = _require3.RELAY_RESOLVER_INVALIDATION_KEY,
33
+ RELAY_RESOLVER_MISSING_REQUIRED_FIELDS_KEY = _require3.RELAY_RESOLVER_MISSING_REQUIRED_FIELDS_KEY,
34
+ RELAY_RESOLVER_READER_SELECTOR_KEY = _require3.RELAY_RESOLVER_READER_SELECTOR_KEY,
35
+ RELAY_RESOLVER_VALUE_KEY = _require3.RELAY_RESOLVER_VALUE_KEY,
36
+ getStorageKey = _require3.getStorageKey;
37
+
38
+ var LiveResolverStore = require('./LiveResolverStore');
34
39
 
35
- var ExternalStateResolverStore = require('./ExternalStateResolverStore');
40
+ var invariant = require('invariant');
36
41
 
37
42
  var warning = require("fbjs/lib/warning"); // When this experiment gets promoted to stable, these keys will move into
38
43
  // `RelayStoreUtils`.
39
44
 
40
45
 
41
- var RELAY_RESOLVER_EXTERNAL_STATE_SUBSCRIPTION_KEY = '__resolverExternalStateSubscription';
42
- var RELAY_EXTERNAL_STATE_VALUE = '__resolverExternalStateValue';
43
- var RELAY_EXTERNAL_STATE_DIRTY = '__resolverExternalStateDirty';
46
+ var RELAY_RESOLVER_LIVE_STATE_SUBSCRIPTION_KEY = '__resolverLieStateSubscription';
47
+ var RELAY_RESOLVER_LIVE_STATE_VALUE = '__resolverLiveStateValue';
48
+ var RELAY_RESOLVER_LIVE_STATE_DIRTY = '__resolverLiveStateDirty';
44
49
  /**
45
50
  * An experimental fork of store/ResolverCache.js intended to let us experiment
46
- * with External State Resolvers.
51
+ * with Live Resolvers.
47
52
  */
48
53
 
49
54
  // $FlowFixMe[unclear-type] - will always be empty
@@ -60,15 +65,15 @@ function addDependencyEdge(edges, from, to) {
60
65
  set.add(to);
61
66
  }
62
67
 
63
- var ExternalStateResolverCache = /*#__PURE__*/function () {
64
- function ExternalStateResolverCache(getRecordSource, store) {
68
+ var LiveResolverCache = /*#__PURE__*/function () {
69
+ function LiveResolverCache(getRecordSource, store) {
65
70
  this._resolverIDToRecordIDs = new Map();
66
71
  this._recordIDToResolverIDs = new Map();
67
72
  this._getRecordSource = getRecordSource;
68
73
  this._store = store;
69
74
  }
70
75
 
71
- var _proto = ExternalStateResolverCache.prototype;
76
+ var _proto = LiveResolverCache.prototype;
72
77
 
73
78
  _proto.readFromCacheOrEvaluate = function readFromCacheOrEvaluate(record, field, variables, evaluate, getDataForResolverFragment) {
74
79
  var recordSource = this._getRecordSource();
@@ -84,14 +89,17 @@ var ExternalStateResolverCache = /*#__PURE__*/function () {
84
89
  // Cache miss; evaluate the selector and store the result in a new record:
85
90
  linkedID = (_linkedID = linkedID) !== null && _linkedID !== void 0 ? _linkedID : generateClientID(recordID, storageKey);
86
91
  linkedRecord = RelayModernRecord.create(linkedID, '__RELAY_RESOLVER__');
87
- var evaluationResult = evaluate(); // In the future we we know from the Reader AST node if we are trying to
88
- // read a Relay Resolver field or not. For the purpose of this hack, we
89
- // will just check if it quacks like a duck.
92
+ var evaluationResult = evaluate();
93
+
94
+ if (field.kind === RELAY_LIVE_RESOLVER) {
95
+ if (process.env.NODE_ENV !== "production") {
96
+ !isLiveStateValue(evaluationResult.resolverResult) ? process.env.NODE_ENV !== "production" ? invariant(false, 'Expected a @live Relay Resolver to return a value that implements LiveState.') : invariant(false) : void 0;
97
+ }
90
98
 
91
- var externalState = isExternalStateValue(evaluationResult.resolverResult);
99
+ var liveState = // $FlowFixMe[incompatible-type] - casting mixed
100
+ evaluationResult.resolverResult;
92
101
 
93
- if (externalState != null) {
94
- this._setExternalStateValue(linkedRecord, linkedID, externalState);
102
+ this._setLiveStateValue(linkedRecord, linkedID, liveState);
95
103
  } else {
96
104
  RelayModernRecord.setValue(linkedRecord, RELAY_RESOLVER_VALUE_KEY, evaluationResult.resolverResult);
97
105
  }
@@ -123,30 +131,23 @@ var ExternalStateResolverCache = /*#__PURE__*/function () {
123
131
  } finally {
124
132
  _iterator.f();
125
133
  }
126
- } else {
127
- // If this is an External State Resolver, we might have a cache hit (the
134
+ } else if (field.kind === RELAY_LIVE_RESOLVER && RelayModernRecord.getValue(linkedRecord, RELAY_RESOLVER_LIVE_STATE_DIRTY)) {
135
+ var _linkedID2;
136
+
137
+ // If this is an Live Resolver, we might have a cache hit (the
128
138
  // fragment data hasn't changed since we last evaluated the resolver),
129
- // but it might still be "dirty" (the external state changed and we need
139
+ // but it might still be "dirty" (the live state changed and we need
130
140
  // to call `.read()` again).
131
- //
132
- // This is currently a bit implicit for now since we rely on the fact that
133
- // only External State Resolvers can have `RELAY_EXTERNAL_STATE_DIRTY`
134
- // set. However, in the future, we will have a distinct Reader AST node
135
- // for External State Resolvers, so we won't have to be so implicit.
136
- if (RelayModernRecord.getValue(linkedRecord, RELAY_EXTERNAL_STATE_DIRTY)) {
137
- var _linkedID2;
138
-
139
- linkedID = (_linkedID2 = linkedID) !== null && _linkedID2 !== void 0 ? _linkedID2 : generateClientID(recordID, storageKey);
140
- linkedRecord = RelayModernRecord.clone(linkedRecord); // $FlowFixMe[incompatible-type] - casting mixed
141
+ linkedID = (_linkedID2 = linkedID) !== null && _linkedID2 !== void 0 ? _linkedID2 : generateClientID(recordID, storageKey);
142
+ linkedRecord = RelayModernRecord.clone(linkedRecord); // $FlowFixMe[incompatible-type] - casting mixed
141
143
 
142
- var _externalState = RelayModernRecord.getValue(linkedRecord, RELAY_EXTERNAL_STATE_VALUE); // Set the new value for this and future reads.
144
+ var _liveState = RelayModernRecord.getValue(linkedRecord, RELAY_RESOLVER_LIVE_STATE_VALUE); // Set the new value for this and future reads.
143
145
 
144
146
 
145
- RelayModernRecord.setValue(linkedRecord, RELAY_RESOLVER_VALUE_KEY, _externalState.read()); // Mark the resolver as clean again.
147
+ RelayModernRecord.setValue(linkedRecord, RELAY_RESOLVER_VALUE_KEY, _liveState.read()); // Mark the resolver as clean again.
146
148
 
147
- RelayModernRecord.setValue(linkedRecord, RELAY_EXTERNAL_STATE_DIRTY, false);
148
- recordSource.set(linkedID, linkedRecord);
149
- }
149
+ RelayModernRecord.setValue(linkedRecord, RELAY_RESOLVER_LIVE_STATE_DIRTY, false);
150
+ recordSource.set(linkedID, linkedRecord);
150
151
  } // $FlowFixMe[incompatible-type] - will always be empty
151
152
 
152
153
 
@@ -156,36 +157,36 @@ var ExternalStateResolverCache = /*#__PURE__*/function () {
156
157
 
157
158
  var errors = linkedRecord[RELAY_RESOLVER_ERROR_KEY];
158
159
  return [answer, linkedID, errors, missingRequiredFields];
159
- } // Register a new External State object in the store, subscribing to future
160
+ } // Register a new Live State object in the store, subscribing to future
160
161
  // updates.
161
162
  ;
162
163
 
163
- _proto._setExternalStateValue = function _setExternalStateValue(linkedRecord, linkedID, externalState) {
164
+ _proto._setLiveStateValue = function _setLiveStateValue(linkedRecord, linkedID, liveState) {
164
165
  // If there's an existing subscription, unsubscribe.
165
166
  // $FlowFixMe[incompatible-type] - casting mixed
166
- var previousUnsubscribe = RelayModernRecord.getValue(linkedRecord, RELAY_RESOLVER_EXTERNAL_STATE_SUBSCRIPTION_KEY);
167
+ var previousUnsubscribe = RelayModernRecord.getValue(linkedRecord, RELAY_RESOLVER_LIVE_STATE_SUBSCRIPTION_KEY);
167
168
 
168
169
  if (previousUnsubscribe != null) {
169
170
  previousUnsubscribe();
170
171
  } // Subscribe to future values
171
172
 
172
173
 
173
- var handler = this._makeExternalStateHandler(linkedID, externalState);
174
+ var handler = this._makeLiveStateHandler(linkedID);
174
175
 
175
- var unsubscribe = externalState.subscribe(handler); // Store the external state value for future re-reads.
176
+ var unsubscribe = liveState.subscribe(handler); // Store the live state value for future re-reads.
176
177
 
177
- RelayModernRecord.setValue(linkedRecord, RELAY_EXTERNAL_STATE_VALUE, externalState); // Store the current value, for this read, and future cached reads.
178
+ RelayModernRecord.setValue(linkedRecord, RELAY_RESOLVER_LIVE_STATE_VALUE, liveState); // Store the current value, for this read, and future cached reads.
178
179
 
179
- RelayModernRecord.setValue(linkedRecord, RELAY_RESOLVER_VALUE_KEY, externalState.read()); // Mark the field as clean.
180
+ RelayModernRecord.setValue(linkedRecord, RELAY_RESOLVER_VALUE_KEY, liveState.read()); // Mark the field as clean.
180
181
 
181
- RelayModernRecord.setValue(linkedRecord, RELAY_EXTERNAL_STATE_DIRTY, false); // Store our our unsubscribe function for future cleanup.
182
+ RelayModernRecord.setValue(linkedRecord, RELAY_RESOLVER_LIVE_STATE_DIRTY, false); // Store our our unsubscribe function for future cleanup.
182
183
 
183
- RelayModernRecord.setValue(linkedRecord, RELAY_RESOLVER_EXTERNAL_STATE_SUBSCRIPTION_KEY, unsubscribe);
184
- } // Create a callback to handle notifications from the external source that the
184
+ RelayModernRecord.setValue(linkedRecord, RELAY_RESOLVER_LIVE_STATE_SUBSCRIPTION_KEY, unsubscribe);
185
+ } // Create a callback to handle notifications from the live source that the
185
186
  // value may have changed.
186
187
  ;
187
188
 
188
- _proto._makeExternalStateHandler = function _makeExternalStateHandler(linkedID, externalState) {
189
+ _proto._makeLiveStateHandler = function _makeLiveStateHandler(linkedID) {
189
190
  var _this = this;
190
191
 
191
192
  return function () {
@@ -200,9 +201,9 @@ var ExternalStateResolverCache = /*#__PURE__*/function () {
200
201
 
201
202
  var nextSource = RelayRecordSource.create();
202
203
  var nextRecord = RelayModernRecord.clone(currentRecord); // Mark the field as dirty. The next time it's read, we will call
203
- // `ExternalState.read()`.
204
+ // `LiveState.read()`.
204
205
 
205
- RelayModernRecord.setValue(nextRecord, RELAY_EXTERNAL_STATE_DIRTY, true);
206
+ RelayModernRecord.setValue(nextRecord, RELAY_RESOLVER_LIVE_STATE_DIRTY, true);
206
207
  nextSource.set(linkedID, nextRecord);
207
208
 
208
209
  _this._store.publish(nextSource); // In the future, this notify might be defferred if we are within a
@@ -301,20 +302,15 @@ var ExternalStateResolverCache = /*#__PURE__*/function () {
301
302
  return false;
302
303
  };
303
304
 
304
- return ExternalStateResolverCache;
305
- }(); // In the real implementaiton, we will probably have a special Reader AST node to tell us when
306
- // a value is external state
305
+ return LiveResolverCache;
306
+ }(); // Validate that a value is live state
307
307
  // $FlowFixMe
308
308
 
309
309
 
310
- function isExternalStateValue(v) {
311
- if (v != null && typeof v.read === 'function' && typeof v.subscribe === 'function') {
312
- return v;
313
- } else {
314
- return null;
315
- }
310
+ function isLiveStateValue(v) {
311
+ return v != null && typeof v.read === 'function' && typeof v.subscribe === 'function';
316
312
  }
317
313
 
318
314
  module.exports = {
319
- ExternalStateResolverCache: ExternalStateResolverCache
315
+ LiveResolverCache: LiveResolverCache
320
316
  };
@@ -48,8 +48,8 @@ var _require2 = require('../RelayStoreUtils'),
48
48
  ROOT_ID = _require2.ROOT_ID,
49
49
  ROOT_TYPE = _require2.ROOT_TYPE;
50
50
 
51
- var _require3 = require('./ExternalStateResolverCache'),
52
- ExternalStateResolverCache = _require3.ExternalStateResolverCache;
51
+ var _require3 = require('./LiveResolverCache'),
52
+ LiveResolverCache = _require3.LiveResolverCache;
53
53
 
54
54
  var invariant = require('invariant');
55
55
 
@@ -60,8 +60,8 @@ var DEFAULT_RELEASE_BUFFER_SIZE = 10;
60
60
  * Experimental fork of RelayModernStore
61
61
  */
62
62
 
63
- var ExternalStateResolverStore = /*#__PURE__*/function () {
64
- function ExternalStateResolverStore(source, options) {
63
+ var LiveResolverStore = /*#__PURE__*/function () {
64
+ function LiveResolverStore(source, options) {
65
65
  var _this = this;
66
66
 
67
67
  var _options$gcReleaseBuf, _options$gcScheduler, _options$getDataID, _options$log, _options$operationLoa;
@@ -106,7 +106,7 @@ var ExternalStateResolverStore = /*#__PURE__*/function () {
106
106
  this._releaseBuffer = [];
107
107
  this._roots = new Map();
108
108
  this._shouldScheduleGC = false;
109
- this._resolverCache = new ExternalStateResolverCache(function () {
109
+ this._resolverCache = new LiveResolverCache(function () {
110
110
  return _this._getMutableRecordSource();
111
111
  }, this);
112
112
  this._storeSubscriptions = new RelayStoreSubscriptions(options === null || options === void 0 ? void 0 : options.log, this._resolverCache);
@@ -115,7 +115,7 @@ var ExternalStateResolverStore = /*#__PURE__*/function () {
115
115
  initializeRecordSource(this._recordSource);
116
116
  }
117
117
 
118
- var _proto = ExternalStateResolverStore.prototype;
118
+ var _proto = LiveResolverStore.prototype;
119
119
 
120
120
  _proto.getSource = function getSource() {
121
121
  var _this$_optimisticSour;
@@ -397,7 +397,7 @@ var ExternalStateResolverStore = /*#__PURE__*/function () {
397
397
  };
398
398
 
399
399
  _proto.toJSON = function toJSON() {
400
- return 'ExternalStateResolverStore()';
400
+ return 'LiveResolverStore()';
401
401
  };
402
402
 
403
403
  _proto.getEpoch = function getEpoch() {
@@ -507,7 +507,7 @@ var ExternalStateResolverStore = /*#__PURE__*/function () {
507
507
  };
508
508
 
509
509
  _proto.snapshot = function snapshot() {
510
- !(this._optimisticSource == null) ? process.env.NODE_ENV !== "production" ? invariant(false, 'ExternalStateResolverStore: Unexpected call to snapshot() while a previous ' + 'snapshot exists.') : invariant(false) : void 0;
510
+ !(this._optimisticSource == null) ? process.env.NODE_ENV !== "production" ? invariant(false, 'LiveResolverStore: Unexpected call to snapshot() while a previous ' + 'snapshot exists.') : invariant(false) : void 0;
511
511
  var log = this.__log;
512
512
 
513
513
  if (log != null) {
@@ -527,7 +527,7 @@ var ExternalStateResolverStore = /*#__PURE__*/function () {
527
527
  };
528
528
 
529
529
  _proto.restore = function restore() {
530
- !(this._optimisticSource != null) ? process.env.NODE_ENV !== "production" ? invariant(false, 'ExternalStateResolverStore: Unexpected call to restore(), expected a snapshot ' + 'to exist (make sure to call snapshot()).') : invariant(false) : void 0;
530
+ !(this._optimisticSource != null) ? process.env.NODE_ENV !== "production" ? invariant(false, 'LiveResolverStore: Unexpected call to restore(), expected a snapshot ' + 'to exist (make sure to call snapshot()).') : invariant(false) : void 0;
531
531
  var log = this.__log;
532
532
 
533
533
  if (log != null) {
@@ -632,7 +632,7 @@ var ExternalStateResolverStore = /*#__PURE__*/function () {
632
632
  }
633
633
  };
634
634
 
635
- return ExternalStateResolverStore;
635
+ return LiveResolverStore;
636
636
  }();
637
637
 
638
638
  function initializeRecordSource(target) {
@@ -784,4 +784,4 @@ function getAvailabilityStatus(operationAvailability, operationLastWrittenAt, op
784
784
  };
785
785
  }
786
786
 
787
- module.exports = ExternalStateResolverStore;
787
+ module.exports = LiveResolverStore;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "relay-runtime",
3
3
  "description": "A core runtime for building GraphQL-driven applications.",
4
- "version": "0.0.0-main-91feecfd",
4
+ "version": "0.0.0-main-8e13c8f5",
5
5
  "keywords": [
6
6
  "graphql",
7
7
  "relay"
package/relay-runtime.js CHANGED
@@ -1,4 +1,4 @@
1
1
  /**
2
- * Relay v0.0.0-main-91feecfd
2
+ * Relay v0.0.0-main-8e13c8f5
3
3
  */
4
4
  !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("invariant"),require("@babel/runtime/helpers/interopRequireDefault"),require("fbjs/lib/warning"),require("@babel/runtime/helpers/createForOfIteratorHelper"),require("@babel/runtime/helpers/objectSpread2"),require("fbjs/lib/areEqual"),require("@babel/runtime/helpers/toConsumableArray"),require("@babel/runtime/helpers/defineProperty")):"function"==typeof define&&define.amd?define(["invariant","@babel/runtime/helpers/interopRequireDefault","fbjs/lib/warning","@babel/runtime/helpers/createForOfIteratorHelper","@babel/runtime/helpers/objectSpread2","fbjs/lib/areEqual","@babel/runtime/helpers/toConsumableArray","@babel/runtime/helpers/defineProperty"],t):"object"==typeof exports?exports.RelayRuntime=t(require("invariant"),require("@babel/runtime/helpers/interopRequireDefault"),require("fbjs/lib/warning"),require("@babel/runtime/helpers/createForOfIteratorHelper"),require("@babel/runtime/helpers/objectSpread2"),require("fbjs/lib/areEqual"),require("@babel/runtime/helpers/toConsumableArray"),require("@babel/runtime/helpers/defineProperty")):e.RelayRuntime=t(e.invariant,e["@babel/runtime/helpers/interopRequireDefault"],e["fbjs/lib/warning"],e["@babel/runtime/helpers/createForOfIteratorHelper"],e["@babel/runtime/helpers/objectSpread2"],e["fbjs/lib/areEqual"],e["@babel/runtime/helpers/toConsumableArray"],e["@babel/runtime/helpers/defineProperty"])}(window,(function(e,t,r,n,i,a,o,s){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=58)}([function(t,r){t.exports=e},function(e,r){e.exports=t},function(e,t,r){"use strict";var n=r(1)(r(16)),i=r(27),a=r(6),o=r(17),s=r(0),l=a.VARIABLE,u=a.LITERAL,c=a.OBJECT_VALUE,d=a.LIST_VALUE;function f(e,t){if(e.kind===l)return function(e,t){return t.hasOwnProperty(e)||s(!1,"getVariableValue(): Undefined variable `%s`.",e),o(t[e])}(e.variableName,t);if(e.kind===u)return e.value;if(e.kind===c){var r={};return e.fields.forEach((function(e){r[e.name]=f(e,t)})),r}if(e.kind===d){var n=[];return e.items.forEach((function(e){null!=e&&n.push(f(e,t))})),n}}function h(e,t){var r={};return e.forEach((function(e){r[e.name]=f(e,t)})),r}function p(e,t){if(!t)return e;var r=[];for(var n in t)if(t.hasOwnProperty(n)){var i,a=t[n];if(null!=a)r.push(n+":"+(null!==(i=JSON.stringify(a))&&void 0!==i?i:"undefined"))}return 0===r.length?e:e+"(".concat(r.join(","),")")}var _={ACTOR_IDENTIFIER_KEY:"__actorIdentifier",CLIENT_EDGE_TRAVERSAL_PATH:"__clientEdgeTraversalPath",FRAGMENTS_KEY:"__fragments",FRAGMENT_OWNER_KEY:"__fragmentOwner",FRAGMENT_PROP_NAME_KEY:"__fragmentPropName",MODULE_COMPONENT_KEY:"__module_component",ID_KEY:"__id",REF_KEY:"__ref",REFS_KEY:"__refs",ROOT_ID:"client:root",ROOT_TYPE:"__Root",TYPENAME_KEY:"__typename",INVALIDATED_AT_KEY:"__invalidated_at",IS_WITHIN_UNMATCHED_TYPE_REFINEMENT:"__isWithinUnmatchedTypeRefinement",RELAY_RESOLVER_VALUE_KEY:"__resolverValue",RELAY_RESOLVER_INVALIDATION_KEY:"__resolverValueMayBeInvalid",RELAY_RESOLVER_INPUTS_KEY:"__resolverInputValues",RELAY_RESOLVER_READER_SELECTOR_KEY:"__resolverReaderSelector",RELAY_RESOLVER_MISSING_REQUIRED_FIELDS_KEY:"__resolverMissingRequiredFields",RELAY_RESOLVER_ERROR_KEY:"__resolverError",formatStorageKey:p,getArgumentValue:f,getArgumentValues:h,getHandleStorageKey:function(e,t){var r=e.dynamicKey,a=e.handle,o=e.key,s=e.name,l=e.args,u=e.filters,c=i(a,o,s),d=null;return l&&u&&0!==l.length&&0!==u.length&&(d=l.filter((function(e){return u.indexOf(e.name)>-1}))),r&&(d=null!=d?[r].concat((0,n.default)(d)):[r]),null===d?c:p(c,h(d,t))},getStorageKey:function(e,t){if(e.storageKey)return e.storageKey;var r=void 0===e.args?void 0:e.args,n=e.name;return r&&0!==r.length?p(n,h(r,t)):n},getStableStorageKey:function(e,t){return p(e,o(t))},getModuleComponentKey:function(e){return"".concat("__module_component_").concat(e)},getModuleOperationKey:function(e){return"".concat("__module_operation_").concat(e)}};e.exports=_},function(e,t){e.exports=r},function(e,t){e.exports=n},function(e,t,r){"use strict";e.exports={ENABLE_CLIENT_EDGES:!1,ENABLE_VARIABLE_CONNECTION_KEY:!1,ENABLE_PARTIAL_RENDERING_DEFAULT:!0,ENABLE_REACT_FLIGHT_COMPONENT_FIELD:!1,ENABLE_RELAY_RESOLVERS:!1,ENABLE_GETFRAGMENTIDENTIFIER_OPTIMIZATION:!1,ENABLE_FRIENDLY_QUERY_NAME_GQL_URL:!1,ENABLE_LOAD_QUERY_REQUEST_DEDUPING:!0,ENABLE_DO_NOT_WRAP_LIVE_QUERY:!1,ENABLE_NOTIFY_SUBSCRIPTION:!1,BATCH_ASYNC_MODULE_UPDATES_FN:null,ENABLE_CONTAINERS_SUBSCRIBE_ON_COMMIT:!1,MAX_DATA_ID_LENGTH:null,STRING_INTERN_LEVEL:0,USE_REACT_CACHE:!1}},function(e,t,r){"use strict";e.exports={ACTOR_CHANGE:"ActorChange",CONDITION:"Condition",CLIENT_COMPONENT:"ClientComponent",CLIENT_EDGE:"ClientEdge",CLIENT_EXTENSION:"ClientExtension",DEFER:"Defer",CONNECTION:"Connection",FLIGHT_FIELD:"FlightField",FRAGMENT:"Fragment",FRAGMENT_SPREAD:"FragmentSpread",INLINE_DATA_FRAGMENT_SPREAD:"InlineDataFragmentSpread",INLINE_DATA_FRAGMENT:"InlineDataFragment",INLINE_FRAGMENT:"InlineFragment",LINKED_FIELD:"LinkedField",LINKED_HANDLE:"LinkedHandle",LITERAL:"Literal",LIST_VALUE:"ListValue",LOCAL_ARGUMENT:"LocalArgument",MODULE_IMPORT:"ModuleImport",RELAY_RESOLVER:"RelayResolver",RELAY_LIVE_RESOLVER:"RelayLiveResolver",REQUIRED_FIELD:"RequiredField",OBJECT_VALUE:"ObjectValue",OPERATION:"Operation",REQUEST:"Request",ROOT_ARGUMENT:"RootArgument",SCALAR_FIELD:"ScalarField",SCALAR_HANDLE:"ScalarHandle",SPLIT_OPERATION:"SplitOperation",STREAM:"Stream",TYPE_DISCRIMINATOR:"TypeDiscriminator",UPDATABLE_QUERY:"UpdatableQuery",VARIABLE:"Variable"}},function(e,t){e.exports=i},function(e,t,r){"use strict";var n=r(5),i=r(35).intern;var a=0;e.exports={generateClientID:function(e,t,r){var a=(n.STRING_INTERN_LEVEL<=0?e:i(e,n.MAX_DATA_ID_LENGTH))+":"+t;return null!=r&&(a+=":"+r),0!==a.indexOf("client:")&&(a="client:"+a),a},generateUniqueClientID:function(){return"".concat("client:","local:").concat(a++)},isClientID:function(e){return 0===e.indexOf("client:")}}},function(e,t,r){"use strict";var n=r(1)(r(7)),i=r(18),a=r(8).isClientID,o=r(2),s=o.ACTOR_IDENTIFIER_KEY,l=o.ID_KEY,u=o.INVALIDATED_AT_KEY,c=o.REF_KEY,d=o.REFS_KEY,f=o.ROOT_ID,h=o.TYPENAME_KEY,p=r(14),_=r(0),g=r(3);function v(e){return e[l]}function m(e){return e[h]}e.exports={clone:function(e){return(0,n.default)({},e)},copyFields:function(e,t){for(var r in e)e.hasOwnProperty(r)&&r!==l&&r!==h&&(t[r]=e[r])},create:function(e,t){var r={};return r[l]=e,r[h]=t,r},freeze:function(e){i(e)},getDataID:v,getInvalidationEpoch:function(e){if(null==e)return null;var t=e[u];return"number"!=typeof t?null:t},getLinkedRecordID:function(e,t){var r=e[t];return null==r?r:("object"==typeof r&&r&&"string"==typeof r[c]||_(!1,"RelayModernRecord.getLinkedRecordID(): Expected `%s.%s` to be a linked ID, was `%s`.%s",e[l],t,JSON.stringify(r),"object"==typeof r&&void 0!==r[d]?" It appears to be a plural linked record: did you mean to call getLinkedRecords() instead of getLinkedRecord()?":""),r[c])},getLinkedRecordIDs:function(e,t){var r=e[t];return null==r?r:("object"==typeof r&&Array.isArray(r[d])||_(!1,"RelayModernRecord.getLinkedRecordIDs(): Expected `%s.%s` to contain an array of linked IDs, got `%s`.%s",e[l],t,JSON.stringify(r),"object"==typeof r&&void 0!==r[c]?" It appears to be a singular linked record: did you mean to call getLinkedRecord() instead of getLinkedRecords()?":""),r[d])},getType:m,getValue:function(e,t){var r=e[t];return r&&"object"==typeof r&&(r.hasOwnProperty(c)||r.hasOwnProperty(d))&&_(!1,"RelayModernRecord.getValue(): Expected a scalar (non-link) value for `%s.%s` but found %s.",e[l],t,r.hasOwnProperty(c)?"a linked record":"plural linked records"),r},merge:function(e,t){var r,n,i=v(e),o=v(t);g(i===o,"RelayModernRecord: Invalid record merge, expected both versions of the record to have the same id, got `%s` and `%s`.",i,o);var s=null!==(r=m(e))&&void 0!==r?r:null,l=null!==(n=m(t))&&void 0!==n?n:null;return g(a(o)&&o!==f||s===l,"RelayModernRecord: Invalid record merge, expected both versions of record `%s` to have the same `%s` but got conflicting types `%s` and `%s`. The GraphQL server likely violated the globally unique id requirement by returning the same id for different objects.",i,h,s,l),Object.assign({},e,t)},setValue:function(e,t,r){var n=v(e);if(t===l)g(n===r,"RelayModernRecord: Invalid field update, expected both versions of the record to have the same id, got `%s` and `%s`.",n,r);else if(t===h){var i,o=null!==(i=m(e))&&void 0!==i?i:null,s=null!=r?r:null;g(a(v(e))&&v(e)!==f||o===s,"RelayModernRecord: Invalid field update, expected both versions of record `%s` to have the same `%s` but got conflicting types `%s` and `%s`. The GraphQL server likely violated the globally unique id requirement by returning the same id for different objects.",n,h,o,s)}e[t]=r},setLinkedRecordID:function(e,t,r){var n={};n[c]=r,e[t]=n},setLinkedRecordIDs:function(e,t,r){var n={};n[d]=r,e[t]=n},update:function(e,t){var r,i,o=v(e),s=v(t);g(o===s,"RelayModernRecord: Invalid record update, expected both versions of the record to have the same id, got `%s` and `%s`.",o,s);var l=null!==(r=m(e))&&void 0!==r?r:null,u=null!==(i=m(t))&&void 0!==i?i:null;g(a(s)&&s!==f||l===u,"RelayModernRecord: Invalid record update, expected both versions of record `%s` to have the same `%s` but got conflicting types `%s` and `%s`. The GraphQL server likely violated the globally unique id requirement by returning the same id for different objects.",o,h,l,u);for(var c=null,d=Object.keys(t),_=0;_<d.length;_++){var y=d[_];!c&&p(e[y],t[y])||((c=null!==c?c:(0,n.default)({},e))[y]=t[y])}return null!==c?c:e},getActorLinkedRecordID:function(e,t){var r=e[t];return null==r?r:(("object"!=typeof r||"string"!=typeof r[c]||null==r[s])&&_(!1,"RelayModernRecord.getActorLinkedRecordID(): Expected `%s.%s` to be an actor specific linked ID, was `%s`.",e[l],t,JSON.stringify(r)),[r[s],r[c]])},setActorLinkedRecordID:function(e,t,r,n){var i={};i[c]=n,i[s]=r,e[t]=i}}},function(e,t,r){"use strict";var n=r(6),i=r(0),a=r(3);function o(e){var t=e;return"function"==typeof t?(t=t(),a(!1,"RelayGraphQLTag: node `%s` unexpectedly wrapped in a function.","Fragment"===t.kind?t.name:t.operation.name)):t.default&&(t=t.default),t}function s(e){var t=o(e);return"object"==typeof t&&null!==t&&t.kind===n.FRAGMENT}function l(e){var t=o(e);return"object"==typeof t&&null!==t&&t.kind===n.REQUEST}function u(e){var t=o(e);return"object"==typeof t&&null!==t&&t.kind===n.UPDATABLE_QUERY}function c(e){var t=o(e);return"object"==typeof t&&null!==t&&t.kind===n.INLINE_DATA_FRAGMENT}function d(e){var t=o(e);return s(t)||i(!1,"GraphQLTag: Expected a fragment, got `%s`.",JSON.stringify(t)),t}e.exports={getFragment:d,getNode:o,getPaginationFragment:function(e){var t,r=d(e),n=null===(t=r.metadata)||void 0===t?void 0:t.refetch,i=null==n?void 0:n.connection;return null===n||"object"!=typeof n||null===i||"object"!=typeof i?null:r},getRefetchableFragment:function(e){var t,r=d(e),n=null===(t=r.metadata)||void 0===t?void 0:t.refetch;return null===n||"object"!=typeof n?null:r},getRequest:function(e){var t=o(e);return l(t)||i(!1,"GraphQLTag: Expected a request, got `%s`.",JSON.stringify(t)),t},getUpdatableQuery:function(e){var t=o(e);return u(t)||i(!1,"GraphQLTag: Expected a request, got `%s`.",JSON.stringify(t)),t},getInlineDataFragment:function(e){var t=o(e);return c(t)||i(!1,"GraphQLTag: Expected an inline data fragment, got `%s`.",JSON.stringify(t)),t},graphql:function(e){i(!1,"graphql: Unexpected invocation at runtime. Either the Babel transform was not set up, or it failed to identify this call site. Make sure it is being used verbatim as `graphql`. Note also that there cannot be a space between graphql and the backtick that follows.")},isFragment:s,isRequest:l,isUpdatableQuery:u,isInlineDataFragment:c}},function(e,t,r){"use strict";var n=r(13).getFragmentVariables,i=r(2),a=i.CLIENT_EDGE_TRAVERSAL_PATH,o=i.FRAGMENT_OWNER_KEY,s=i.FRAGMENTS_KEY,l=i.ID_KEY,u=i.IS_WITHIN_UNMATCHED_TYPE_REFINEMENT,c=r(14),d=r(0),f=r(3);function h(e,t){("object"!=typeof t||null===t||Array.isArray(t))&&d(!1,"RelayModernSelector: Expected value for fragment `%s` to be an object, got `%s`.",e.name,JSON.stringify(t));var r=t[l],i=t[s],c=t[o],h=!0===t[u],p=t[a];if("string"==typeof r&&"object"==typeof i&&null!==i&&"object"==typeof i[e.name]&&null!==i[e.name]&&"object"==typeof c&&null!==c&&(null==p||Array.isArray(p))){var _=c,g=p,v=i[e.name];return R(e,r,n(e,_.variables,v),_,h,g)}var m=JSON.stringify(t);return m.length>499&&(m=m.substr(0,498)+"…"),f(!1,"RelayModernSelector: Expected object to contain data for fragment `%s`, got `%s`. Make sure that the parent operation/fragment included fragment `...%s` without `@relay(mask: false)`.",e.name,m,e.name),null}function p(e,t){var r=null;return t.forEach((function(t,n){var i=null!=t?h(e,t):null;null!=i&&(r=r||[]).push(i)})),null==r?null:{kind:"PluralReaderSelector",selectors:r}}function _(e,t){return null==t?t:e.metadata&&!0===e.metadata.plural?(Array.isArray(t)||d(!1,"RelayModernSelector: Expected value for fragment `%s` to be an array, got `%s`. Remove `@relay(plural: true)` from fragment `%s` to allow the prop to be an object.",e.name,JSON.stringify(t),e.name),p(e,t)):(Array.isArray(t)&&d(!1,"RelayModernSelector: Expected value for fragment `%s` to be an object, got `%s`. Add `@relay(plural: true)` to fragment `%s` to allow the prop to be an array of items.",e.name,JSON.stringify(t),e.name),h(e,t))}function g(e,t){return null==t?t:e.metadata&&!0===e.metadata.plural?(Array.isArray(t)||d(!1,"RelayModernSelector: Expected value for fragment `%s` to be an array, got `%s`. Remove `@relay(plural: true)` from fragment `%s` to allow the prop to be an object.",e.name,JSON.stringify(t),e.name),function(e,t){var r=null;return t.forEach((function(t){var n=null!=t?v(e,t):null;null!=n&&(r=r||[]).push(n)})),r}(e,t)):(Array.isArray(t)&&d(!1,"RelayModernFragmentSpecResolver: Expected value for fragment `%s` to be an object, got `%s`. Add `@relay(plural: true)` to fragment `%s` to allow the prop to be an array of items.",e.name,JSON.stringify(t),e.name),v(e,t))}function v(e,t){("object"!=typeof t||null===t||Array.isArray(t))&&d(!1,"RelayModernSelector: Expected value for fragment `%s` to be an object, got `%s`.",e.name,JSON.stringify(t));var r=t[l];return"string"==typeof r?r:(f(!1,"RelayModernSelector: Expected object to contain data for fragment `%s`, got `%s`. Make sure that the parent operation/fragment included fragment `...%s` without `@relay(mask: false)`, or `null` is passed as the fragment reference for `%s` if it's conditonally included and the condition isn't met.",e.name,JSON.stringify(t),e.name,e.name),null)}function m(e,t){var r;return null==t?{}:!0===(null===(r=e.metadata)||void 0===r?void 0:r.plural)?(Array.isArray(t)||d(!1,"RelayModernSelector: Expected value for fragment `%s` to be an array, got `%s`. Remove `@relay(plural: true)` from fragment `%s` to allow the prop to be an object.",e.name,JSON.stringify(t),e.name),E(e,t)):(Array.isArray(t)&&d(!1,"RelayModernFragmentSpecResolver: Expected value for fragment `%s` to be an object, got `%s`. Add `@relay(plural: true)` to fragment `%s` to allow the prop to be an array of items.",e.name,JSON.stringify(t),e.name),y(e,t)||{})}function y(e,t){var r=h(e,t);return r?r.variables:null}function E(e,t){var r={};return t.forEach((function(t,n){if(null!=t){var i=y(e,t);null!=i&&Object.assign(r,i)}})),r}function b(e,t){return e.owner===t.owner&&e.dataID===t.dataID&&e.node===t.node&&c(e.variables,t.variables)}function R(e,t,r,n){var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4],a=arguments.length>5?arguments[5]:void 0;return{kind:"SingularReaderSelector",dataID:t,isWithinUnmatchedTypeRefinement:i,clientEdgeTraversalPath:null!=a?a:null,node:e,variables:r,owner:n}}e.exports={areEqualSelectors:function(e,t){return"SingularReaderSelector"===(null==e?void 0:e.kind)&&"SingularReaderSelector"===(null==t?void 0:t.kind)?b(e,t):"PluralReaderSelector"===(null==e?void 0:e.kind)&&"PluralReaderSelector"===(null==t?void 0:t.kind)?e.selectors.length===t.selectors.length&&e.selectors.every((function(e,r){return b(e,t.selectors[r])})):null==e&&null==t},createReaderSelector:R,createNormalizationSelector:function(e,t,r){return{dataID:t,node:e,variables:r}},getDataIDsFromFragment:g,getDataIDsFromObject:function(e,t){var r={};for(var n in e)if(e.hasOwnProperty(n)){var i=e[n],a=t[n];r[n]=g(i,a)}return r},getSingularSelector:h,getPluralSelector:p,getSelector:_,getSelectorsFromObject:function(e,t){var r={};for(var n in e)if(e.hasOwnProperty(n)){var i=e[n],a=t[n];r[n]=_(i,a)}return r},getVariablesFromSingularFragment:y,getVariablesFromPluralFragment:E,getVariablesFromFragment:m,getVariablesFromObject:function(e,t){var r={};for(var n in e)if(e.hasOwnProperty(n)){var i=m(e[n],t[n]);Object.assign(r,i)}return r}}},function(e,t,r){"use strict";var n=r(18),i=r(39),a=r(13).getOperationVariables,o=r(11),s=o.createNormalizationSelector,l=o.createReaderSelector,u=r(2).ROOT_ID;function c(e,t,r){var a={identifier:i(e.params,t),node:e,variables:t,cacheConfig:r};return n(t),Object.freeze(e),Object.freeze(a),a}e.exports={createOperationDescriptor:function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:u,i=e.operation,o=a(i,e.params.providedVariables,t),d=c(e,o,r),f={fragment:l(e.fragment,n,o,d),request:d,root:s(i,n,o)};return Object.freeze(f.fragment),Object.freeze(f.root),Object.freeze(f),f},createRequestDescriptor:c}},function(e,t,r){"use strict";var n=r(1)(r(7)),i=r(2).getArgumentValues,a=r(0);e.exports={getLocalVariables:function(e,t,r){if(null==t)return e;var a=(0,n.default)({},e),o=r?i(r,e):{};return t.forEach((function(e){var t,r=null!==(t=o[e.name])&&void 0!==t?t:e.defaultValue;a[e.name]=r})),a},getFragmentVariables:function(e,t,r){var i;return e.argumentDefinitions.forEach((function(o){if(!r.hasOwnProperty(o.name))switch(i=i||(0,n.default)({},r),o.kind){case"LocalArgument":i[o.name]=o.defaultValue;break;case"RootArgument":if(!t.hasOwnProperty(o.name)){i[o.name]=void 0;break}i[o.name]=t[o.name];break;default:a(!1,"RelayConcreteVariables: Unexpected node kind `%s` in fragment `%s`.",o.kind,e.name)}})),i||r},getOperationVariables:function(e,t,r){var n={};return e.argumentDefinitions.forEach((function(e){var t=e.defaultValue;null!=r[e.name]&&(t=r[e.name]),n[e.name]=t})),null!=t&&Object.keys(t).forEach((function(e){n[e]=t[e].get()})),n}}},function(e,t){e.exports=a},function(e,t,r){"use strict";var n=r(41),i=function(e,t){},a=function(){function e(e){if(!e||"function"!=typeof e)throw new Error("Source must be a Function: "+String(e));this._source=e}e.create=function(t){return new e(t)},e.onUnhandledError=function(e){i=e},e.from=function(e){return function(e){return"object"==typeof e&&null!==e&&"function"==typeof e.subscribe}(e)?o(e):n(e)?s(e):l(e)};var t=e.prototype;return t.catch=function(t){var r=this;return e.create((function(e){var n;return r.subscribe({start:function(e){n=e},next:e.next,complete:e.complete,error:function(r){try{t(r).subscribe({start:function(e){n=e},next:e.next,complete:e.complete,error:e.error})}catch(t){e.error(t,!0)}}}),function(){return n.unsubscribe()}}))},t.concat=function(t){var r=this;return e.create((function(e){var n;return r.subscribe({start:function(e){n=e},next:e.next,error:e.error,complete:function(){n=t.subscribe(e)}}),function(){n&&n.unsubscribe()}}))},t.do=function(t){var r=this;return e.create((function(e){var n=function(r){return function(){try{t[r]&&t[r].apply(t,arguments)}catch(e){i(e,!0)}e[r]&&e[r].apply(e,arguments)}};return r.subscribe({start:n("start"),next:n("next"),error:n("error"),complete:n("complete"),unsubscribe:n("unsubscribe")})}))},t.finally=function(t){var r=this;return e.create((function(e){var n=r.subscribe(e);return function(){n.unsubscribe(),t()}}))},t.ifEmpty=function(t){var r=this;return e.create((function(e){var n=!1,i=r.subscribe({next:function(t){n=!0,e.next(t)},error:e.error,complete:function(){n?e.complete():i=t.subscribe(e)}});return function(){i.unsubscribe()}}))},t.subscribe=function(e){if(!e||"object"!=typeof e)throw new Error("Observer must be an Object with callbacks: "+String(e));return function(e,t){var r,n=!1,a=function(e){return Object.defineProperty(e,"closed",{get:function(){return n}})};function o(){if(r){if(r.unsubscribe)r.unsubscribe();else try{r()}catch(e){i(e,!0)}r=void 0}}var s=a({unsubscribe:function(){if(!n){n=!0;try{t.unsubscribe&&t.unsubscribe(s)}catch(e){i(e,!0)}finally{o()}}}});try{t.start&&t.start(s)}catch(e){i(e,!0)}if(n)return s;var l=a({next:function(e){if(!n&&t.next)try{t.next(e)}catch(e){i(e,!0)}},error:function(e,r){if(n||!t.error)n=!0,i(e,r||!1),o();else{n=!0;try{t.error(e)}catch(e){i(e,!0)}finally{o()}}},complete:function(){if(!n){n=!0;try{t.complete&&t.complete()}catch(e){i(e,!0)}finally{o()}}}});try{r=e(l)}catch(e){l.error(e,!0)}if(void 0!==r&&"function"!=typeof r&&(!r||"function"!=typeof r.unsubscribe))throw new Error("Returned cleanup function which cannot be called: "+String(r));n&&o();return s}(this._source,e)},t.map=function(t){var r=this;return e.create((function(e){var n=r.subscribe({complete:e.complete,error:e.error,next:function(r){try{var n=t(r);e.next(n)}catch(t){e.error(t,!0)}}});return function(){n.unsubscribe()}}))},t.mergeMap=function(t){var r=this;return e.create((function(n){var i=[];function a(e){this._sub=e,i.push(e)}function o(){i.splice(i.indexOf(this._sub),1),0===i.length&&n.complete()}return r.subscribe({start:a,next:function(r){try{n.closed||e.from(t(r)).subscribe({start:a,next:n.next,error:n.error,complete:o})}catch(e){n.error(e,!0)}},error:n.error,complete:o}),function(){i.forEach((function(e){return e.unsubscribe()})),i.length=0}}))},t.poll=function(t){var r=this;if("number"!=typeof t||t<=0)throw new Error("RelayObservable: Expected pollInterval to be positive, got: "+t);return e.create((function(e){var n,i;return function a(){n=r.subscribe({next:e.next,error:e.error,complete:function(){i=setTimeout(a,t)}})}(),function(){clearTimeout(i),n.unsubscribe()}}))},t.toPromise=function(){var e=this;return new Promise((function(t,r){var n=!1;e.subscribe({next:function(e){n||(n=!0,t(e))},error:r,complete:t})}))},e}();function o(e){return e instanceof a?e:a.create((function(t){return e.subscribe(t)}))}function s(e){return a.create((function(t){e.then((function(e){t.next(e),t.complete()}),t.error)}))}function l(e){return a.create((function(t){t.next(e),t.complete()}))}a.onUnhandledError((function(e,t){"function"==typeof fail?fail(String(e)):t?setTimeout((function(){throw e})):"undefined"!=typeof console&&console.error("RelayObservable: Unhandled Error",e)})),e.exports=a},function(e,t){e.exports=o},function(e,t,r){"use strict";e.exports=function e(t){if(!t||"object"!=typeof t)return t;if(Array.isArray(t))return t.map(e);for(var r=Object.keys(t).sort(),n={},i=0;i<r.length;i++)n[r[i]]=e(t[r[i]]);return n}},function(e,t,r){"use strict";e.exports=function e(t){return Object.freeze(t),Object.getOwnPropertyNames(t).forEach((function(r){var n=t[r];n&&"object"==typeof n&&!Object.isFrozen(n)&&e(n)})),t}},function(e,t){e.exports=s},function(e,t,r){"use strict";var n=r(1)(r(4)),i=r(25),a=i.EXISTENT,o=i.NONEXISTENT,s=i.UNKNOWN,l=function(){function e(e){var t=this;this._records=new Map,null!=e&&Object.keys(e).forEach((function(r){t._records.set(r,e[r])}))}e.create=function(t){return new e(t)};var t=e.prototype;return t.clear=function(){this._records=new Map},t.delete=function(e){this._records.set(e,null)},t.get=function(e){return this._records.get(e)},t.getRecordIDs=function(){return Array.from(this._records.keys())},t.getStatus=function(e){return this._records.has(e)?null==this._records.get(e)?o:a:s},t.has=function(e){return this._records.has(e)},t.remove=function(e){this._records.delete(e)},t.set=function(e,t){this._records.set(e,t)},t.size=function(){return this._records.size},t.toJSON=function(){var e,t={},r=(0,n.default)(this._records);try{for(r.s();!(e=r.n()).done;){var i=e.value,a=i[0],o=i[1];t[a]=o}}catch(e){r.e(e)}finally{r.f()}return t},e}();e.exports=l},function(e,t,r){"use strict";var n=r(9).getType,i=r(0);e.exports={REACT_FLIGHT_EXECUTABLE_DEFINITIONS_STORAGE_KEY:"executableDefinitions",REACT_FLIGHT_TREE_STORAGE_KEY:"tree",REACT_FLIGHT_TYPE_NAME:"ReactFlightComponent",getReactFlightClientResponse:function(e){return"ReactFlightComponent"!==n(e)&&i(!1,"getReactFlightClientResponse(): Expected a ReactFlightComponentRecord, got %s.",e),e.tree},refineToReactFlightPayloadData:function(e){return null!=e&&"object"==typeof e&&"string"==typeof e.status&&(Array.isArray(e.tree)||null===e.tree)&&Array.isArray(e.queries)&&Array.isArray(e.fragments)&&Array.isArray(e.errors)?e:null}}},function(e,t,r){"use strict";var n=r(8).generateClientID,i=r(2).getStableStorageKey,a=r(27),o=r(28),s=r(0),l=r(3),u="__connection_next_edge_index";function c(e,t,r){if(null==r)return r;var i=o.get().EDGES,a=t.getValue(u);"number"!=typeof a&&s(!1,"ConnectionHandler: Expected %s to be a number, got `%s`.",u,a);var l=n(t.getDataID(),i,a),c=e.create(l,r.getType());return c.copyFieldsFrom(r),null==c.getValue("cursor")&&c.setValue(null,"cursor"),t.setValue(a+1,u),c}function d(e,t,r){for(var n=o.get().NODE,i=0;i<e.length;i++){var a=e[i];if(a){var s=a.getLinkedRecord(n),l=s&&s.getDataID();if(l){if(r.has(l))continue;r.add(l)}t.push(a)}}}e.exports={buildConnectionEdge:c,createEdge:function(e,t,r,i){var a=o.get().NODE,s=n(t.getDataID(),r.getDataID()),l=e.get(s);return l||(l=e.create(s,i)),l.setLinkedRecord(r,a),null==l.getValue("cursor")&&l.setValue(null,"cursor"),l},deleteNode:function(e,t){var r=o.get(),n=r.EDGES,i=r.NODE,a=e.getLinkedRecords(n);if(a){for(var s,l=0;l<a.length;l++){var u=a[l],c=u&&u.getLinkedRecord(i);null!=c&&c.getDataID()===t?void 0===s&&(s=a.slice(0,l)):void 0!==s&&s.push(u)}void 0!==s&&e.setLinkedRecords(s,n)}},getConnection:function(e,t,r){var n=a("connection",t,null);return e.getLinkedRecord(n,r)},getConnectionID:function(e,t,r){var o=a("connection",t,null),s=i(o,r);return n(e,s)},insertEdgeAfter:function(e,t,r){var n=o.get(),i=n.CURSOR,a=n.EDGES,s=e.getLinkedRecords(a);if(s){var l;if(null==r)l=s.concat(t);else{l=[];for(var u=!1,c=0;c<s.length;c++){var d=s[c];if(l.push(d),null!=d)r===d.getValue(i)&&(l.push(t),u=!0)}u||l.push(t)}e.setLinkedRecords(l,a)}else e.setLinkedRecords([t],a)},insertEdgeBefore:function(e,t,r){var n=o.get(),i=n.CURSOR,a=n.EDGES,s=e.getLinkedRecords(a);if(s){var l;if(null==r)l=[t].concat(s);else{l=[];for(var u=!1,c=0;c<s.length;c++){var d=s[c];if(null!=d)r===d.getValue(i)&&(l.push(t),u=!0);l.push(d)}u||l.unshift(t)}e.setLinkedRecords(l,a)}else e.setLinkedRecords([t],a)},update:function(e,t){var r=e.get(t.dataID);if(r){var i=o.get(),a=i.EDGES,s=i.END_CURSOR,f=i.HAS_NEXT_PAGE,h=i.HAS_PREV_PAGE,p=i.PAGE_INFO,_=i.PAGE_INFO_TYPE,g=i.START_CURSOR,v=r.getLinkedRecord(t.fieldKey),m=v&&v.getLinkedRecord(p);if(v){var y=n(r.getDataID(),t.handleKey),E=r.getLinkedRecord(t.handleKey),b=null!=E?E:e.get(y),R=b&&b.getLinkedRecord(p);if(b){null==E&&r.setLinkedRecord(b,t.handleKey);var I=b,D=v.getLinkedRecords(a);D&&(D=D.map((function(t){return c(e,I,t)})));var S=I.getLinkedRecords(a),k=I.getLinkedRecord(p);I.copyFieldsFrom(v),S&&I.setLinkedRecords(S,a),k&&I.setLinkedRecord(k,p);var A=[],T=t.args;if(S&&D)if(null!=T.after){if(!R||T.after!==R.getValue(s))return void l(!1,"Relay: Unexpected after cursor `%s`, edges must be fetched from the end of the list (`%s`).",T.after,R&&R.getValue(s));var O=new Set;d(S,A,O),d(D,A,O)}else if(null!=T.before){if(!R||T.before!==R.getValue(g))return void l(!1,"Relay: Unexpected before cursor `%s`, edges must be fetched from the beginning of the list (`%s`).",T.before,R&&R.getValue(g));var N=new Set;d(D,A,N),d(S,A,N)}else A=D;else A=D||S;if(null!=A&&A!==S&&I.setLinkedRecords(A,a),R&&m)if(null==T.after&&null==T.before)R.copyFieldsFrom(m);else if(null!=T.before||null==T.after&&T.last){R.setValue(!!m.getValue(h),h);var F=m.getValue(g);"string"==typeof F&&R.setValue(F,g)}else if(null!=T.after||null==T.before&&T.first){R.setValue(!!m.getValue(f),f);var P=m.getValue(s);"string"==typeof P&&R.setValue(P,s)}}else{var L=e.create(y,v.getType());L.setValue(0,u),L.copyFieldsFrom(v);var x=v.getLinkedRecords(a);x&&(x=x.map((function(t){return c(e,L,t)})),L.setLinkedRecords(x,a)),r.setLinkedRecord(L,t.handleKey),(R=e.create(n(L.getDataID(),p),_)).setValue(!1,f),R.setValue(!1,h),R.setValue(null,s),R.setValue(null,g),m&&R.copyFieldsFrom(m),L.setLinkedRecord(R,p)}}else r.setValue(null,t.handleKey)}}}},function(e,t,r){"use strict";var n=r(1)(r(4)),i=r(22),a=r(3),o=Object.freeze({RANGE_ADD:"RANGE_ADD",RANGE_DELETE:"RANGE_DELETE",NODE_DELETE:"NODE_DELETE"}),s=Object.freeze({APPEND:"append",PREPEND:"prepend"});function l(e){return e.fragment.selections&&e.fragment.selections.length>0&&"LinkedField"===e.fragment.selections[0].kind?e.fragment.selections[0].name:null}e.exports={MutationTypes:o,RangeOperations:s,convert:function(e,t,r,o){var s=r?[r]:[],u=o?[o]:[];return e.forEach((function(e){switch(e.type){case"NODE_DELETE":var r=function(e,t){var r=e.deletedIDFieldName,n=l(t);if(!n)return null;return function(e,t){var i=e.getRootField(n);if(i){var a=i.getValue(r);(Array.isArray(a)?a:[a]).forEach((function(t){t&&"string"==typeof t&&e.delete(t)}))}}}(e,t);r&&(s.push(r),u.push(r));break;case"RANGE_ADD":var o=function(e,t){var r=e.parentID,o=e.connectionInfo,s=e.edgeName;if(!r)return a(!1,"RelayDeclarativeMutationConfig: For mutation config RANGE_ADD to work you must include a parentID"),null;var u=l(t);if(!o||!u)return null;return function(e,t){var l=e.get(r);if(l){var c=e.getRootField(u);if(c){var d,f=c.getLinkedRecord(s),h=(0,n.default)(o);try{for(h.s();!(d=h.n()).done;){var p=d.value;if(f){var _=i.getConnection(l,p.key,p.filters);if(_){var g=i.buildConnectionEdge(e,_,f);if(g)switch(p.rangeBehavior){case"append":i.insertEdgeAfter(_,g);break;case"prepend":i.insertEdgeBefore(_,g);break;default:a(!1,"RelayDeclarativeMutationConfig: RANGE_ADD range behavior `%s` will not work as expected in RelayModern, supported range behaviors are 'append', 'prepend'.",p.rangeBehavior)}}}}}catch(e){h.e(e)}finally{h.f()}}}}}(e,t);o&&(s.push(o),u.push(o));break;case"RANGE_DELETE":var c=function(e,t){var r=e.parentID,o=e.connectionKeys,s=e.pathToConnection,u=e.deletedIDFieldName;if(!r)return a(!1,"RelayDeclarativeMutationConfig: For mutation config RANGE_DELETE to work you must include a parentID"),null;var c=l(t);if(!c)return null;return function(e,t){if(t){var l=[],d=t[c];if(d&&Array.isArray(u)){var f,h=(0,n.default)(u);try{for(h.s();!(f=h.n()).done;){var p=f.value;d&&"object"==typeof d&&(d=d[p])}}catch(e){h.e(e)}finally{h.f()}Array.isArray(d)?d.forEach((function(e){e&&e.id&&"object"==typeof e&&"string"==typeof e.id&&l.push(e.id)})):d&&d.id&&"string"==typeof d.id&&l.push(d.id)}else d&&"string"==typeof u&&"object"==typeof d&&("string"==typeof(d=d[u])?l.push(d):Array.isArray(d)&&d.forEach((function(e){"string"==typeof e&&l.push(e)})));!function(e,t,r,o,s){a(null!=t,"RelayDeclarativeMutationConfig: RANGE_DELETE must provide a connectionKeys");var l=o.get(e);if(!l)return;if(r.length<2)return void a(!1,"RelayDeclarativeMutationConfig: RANGE_DELETE pathToConnection must include at least parent and connection");for(var u=l,c=1;c<r.length-1;c++)u&&(u=u.getLinkedRecord(r[c]));if(!t||!u)return void a(!1,"RelayDeclarativeMutationConfig: RANGE_DELETE pathToConnection is incorrect. Unable to find connection with parentID: %s and path: %s",e,r.toString());var d,f=(0,n.default)(t);try{var h=function(){var e=d.value,t=i.getConnection(u,e.key,e.filters);t&&s.forEach((function(e){i.deleteNode(t,e)}))};for(f.s();!(d=f.n()).done;)h()}catch(e){f.e(e)}finally{f.f()}}(r,o,s,e,l)}}}(e,t);c&&(s.push(c),u.push(c))}})),{optimisticUpdater:function(e,t){s.forEach((function(r){r(e,t)}))},updater:function(e,t){u.forEach((function(r){r(e,t)}))}}}}},function(e,t,r){"use strict";var n="undefined"!=typeof WeakSet,i="undefined"!=typeof WeakMap;e.exports=function e(t,r){if(t===r||"object"!=typeof t||t instanceof Set||t instanceof Map||n&&t instanceof WeakSet||i&&t instanceof WeakMap||!t||"object"!=typeof r||r instanceof Set||r instanceof Map||n&&r instanceof WeakSet||i&&r instanceof WeakMap||!r)return r;var a=!1,o=Array.isArray(t)?t:null,s=Array.isArray(r)?r:null;if(o&&s)a=s.reduce((function(t,r,n){var i=e(o[n],r);return i!==s[n]&&(Object.isFrozen(s)||(s[n]=i)),t&&i===o[n]}),!0)&&o.length===s.length;else if(!o&&!s){var l=t,u=r,c=Object.keys(l),d=Object.keys(u);a=d.reduce((function(t,r){var n=e(l[r],u[r]);return n!==u[r]&&(Object.isFrozen(u)||(u[r]=n)),t&&n===l[r]}),!0)&&c.length===d.length}return a?t:r}},function(e,t,r){"use strict";e.exports={EXISTENT:"EXISTENT",NONEXISTENT:"NONEXISTENT",UNKNOWN:"UNKNOWN"}},function(e,t,r){"use strict";e.exports={generateTypeID:function(e){return"client:__type:"+e},isTypeID:function(e){return 0===e.indexOf("client:__type:")},TYPE_SCHEMA_TYPE:"__TypeSchema"}},function(e,t,r){"use strict";var n=r(36).DEFAULT_HANDLE_KEY,i=r(0);e.exports=function(e,t,r){return t&&t!==n?"__".concat(t,"_").concat(e):(null==r&&i(!1,"getRelayHandleKey: Expected either `fieldName` or `key` in `handle` to be provided"),"__".concat(r,"_").concat(e))}},function(e,t,r){"use strict";var n={after:!0,before:!0,find:!0,first:!0,last:!0,surrounds:!0},i={CLIENT_MUTATION_ID:"clientMutationId",CURSOR:"cursor",EDGES:"edges",END_CURSOR:"endCursor",HAS_NEXT_PAGE:"hasNextPage",HAS_PREV_PAGE:"hasPreviousPage",NODE:"node",PAGE_INFO_TYPE:"PageInfo",PAGE_INFO:"pageInfo",START_CURSOR:"startCursor"},a={inject:function(e){i=e},get:function(){return i},isConnectionCall:function(e){return n.hasOwnProperty(e.name)}};e.exports=a},function(e,t,r){"use strict";e.exports=function(e){return Boolean(e&&e["@@RelayModernEnvironment"])}},function(e,t,r){"use strict";var n=r(1)(r(4));e.exports=function(e,t,r){var i,a=(0,n.default)(r);try{for(a.s();!(i=a.n()).done;){var o=i.value;e.requiredFieldLogger({kind:"relay_resolver.error",owner:o.field.owner,fieldPath:o.field.path,error:o.error})}}catch(e){a.e(e)}finally{a.f()}if(null!=t)switch(t.action){case"THROW":var s=t.field,l=s.path,u=s.owner;throw e.requiredFieldLogger({kind:"missing_field.throw",owner:u,fieldPath:l}),new Error("Relay: Missing @required value at path '".concat(l,"' in '").concat(u,"'."));case"LOG":t.fields.forEach((function(t){var r=t.path,n=t.owner;e.requiredFieldLogger({kind:"missing_field.log",owner:n,fieldPath:r})}));break;default:t.action}}},function(e,t,r){"use strict";var n=r(15),i=r(42),a=r(0),o="function"==typeof WeakMap?new WeakMap:new Map;function s(e,t,r){return n.create((function(o){var s=u(e),l=s.get(t);return l||r().finally((function(){return s.delete(t)})).subscribe({start:function(e){l={identifier:t,subject:new i,subjectForInFlightStatus:new i,subscription:e},s.set(t,l)},next:function(e){var r=c(s,t);r.subject.next(e),r.subjectForInFlightStatus.next(e)},error:function(e){var r=c(s,t);r.subject.error(e),r.subjectForInFlightStatus.error(e)},complete:function(){var e=c(s,t);e.subject.complete(),e.subjectForInFlightStatus.complete()},unsubscribe:function(e){var r=c(s,t);r.subject.unsubscribe(),r.subjectForInFlightStatus.unsubscribe()}}),null==l&&a(!1,"[fetchQueryInternal] fetchQueryDeduped: Expected `start` to be called synchronously"),function(e,t){return n.create((function(r){var n=t.subject.subscribe(r);return function(){n.unsubscribe();var r=e.get(t.identifier);if(r){var i=r.subscription;null!=i&&0===r.subject.getObserverCount()&&(i.unsubscribe(),e.delete(t.identifier))}}}))}(s,l).subscribe(o)}))}function l(e,t,r){return n.create((function(t){var n=r.subjectForInFlightStatus.subscribe({error:t.error,next:function(n){e.isRequestActive(r.identifier)?t.next():t.complete()},complete:t.complete,unsubscribe:t.complete});return function(){n.unsubscribe()}}))}function u(e){var t=o.get(e);if(null!=t)return t;var r=new Map;return o.set(e,r),r}function c(e,t){var r=e.get(t);return null==r&&a(!1,"[fetchQueryInternal] getCachedRequest: Expected request to be cached"),r}e.exports={fetchQuery:function(e,t){return s(e,t.request.identifier,(function(){return e.execute({operation:t})}))},fetchQueryDeduped:s,getPromiseForActiveRequest:function(e,t){var r=u(e),n=r.get(t.identifier);return n&&e.isRequestActive(n.identifier)?new Promise((function(t,r){var i=!1;l(e,0,n).subscribe({complete:t,error:r,next:function(e){i&&t(e)}}),i=!0})):null},getObservableForActiveRequest:function(e,t){var r=u(e),n=r.get(t.identifier);return n&&e.isRequestActive(n.identifier)?l(e,0,n):null}}},function(e,t,r){"use strict";var n=r(0);e.exports={assertInternalActorIndentifier:function(e){"INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE"!==e&&n(!1,'Expected to use only internal version of the `actorIdentifier`. "%s" was provided.',e)},getActorIdentifier:function(e){return e},getDefaultActorIdentifier:function(){throw new Error("Not Implemented")},INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE:"INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE"}},function(e,t,r){"use strict";var n=r(6),i=n.REQUEST,a=n.SPLIT_OPERATION;e.exports=function(e){switch(e.kind){case i:return e.operation;case a:default:return e}}},function(e,t,r){"use strict";var n=r(1),i=n(r(4)),a=n(r(19)),o=n(r(16)),s=r(6),l=s.ACTOR_CHANGE,u=s.CLIENT_EDGE,c=s.CLIENT_EXTENSION,d=s.CONDITION,f=s.DEFER,h=s.FLIGHT_FIELD,p=s.FRAGMENT_SPREAD,_=s.INLINE_DATA_FRAGMENT_SPREAD,g=s.INLINE_FRAGMENT,v=s.LINKED_FIELD,m=s.MODULE_IMPORT,y=s.RELAY_LIVE_RESOLVER,E=s.RELAY_RESOLVER,b=s.REQUIRED_FIELD,R=s.SCALAR_FIELD,I=s.STREAM,D=r(5),S=r(8),k=r(9),A=r(21).getReactFlightClientResponse,T=r(2),O=T.CLIENT_EDGE_TRAVERSAL_PATH,N=T.FRAGMENT_OWNER_KEY,F=T.FRAGMENT_PROP_NAME_KEY,P=T.FRAGMENTS_KEY,L=T.ID_KEY,x=T.IS_WITHIN_UNMATCHED_TYPE_REFINEMENT,w=T.MODULE_COMPONENT_KEY,C=T.ROOT_ID,M=T.getArgumentValues,U=T.getModuleComponentKey,V=T.getStorageKey,q=r(54).NoopResolverCache,j=r(55).withResolverContext,K=r(26).generateTypeID,G=r(0);var H=function(){function e(e,t,r){var n;this._clientEdgeTraversalPath=D.ENABLE_CLIENT_EDGES&&(null===(n=t.clientEdgeTraversalPath)||void 0===n?void 0:n.length)?(0,o.default)(t.clientEdgeTraversalPath):[],this._missingClientEdges=[],this._isMissingData=!1,this._isWithinUnmatchedTypeRefinement=!1,this._missingRequiredFields=null,this._owner=t.owner,this._recordSource=e,this._seenRecords=new Set,this._selector=t,this._variables=t.variables,this._resolverCache=r,this._resolverErrors=[],this._fragmentName=t.node.name}var t=e.prototype;return t.read=function(){var e=this._selector,t=e.node,r=e.dataID,n=e.isWithinUnmatchedTypeRefinement,i=t.abstractKey,a=this._recordSource.get(r),o=!n;o&&null==i&&null!=a&&(k.getType(a)!==t.type&&r!==C&&(o=!1));if(o&&null!=i&&null!=a){var s=k.getType(a),l=K(s),u=this._recordSource.get(l),c=null!=u?k.getValue(u,i):null;!1===c?o=!1:null==c&&(this._isMissingData=!0)}return this._isWithinUnmatchedTypeRefinement=!o,{data:this._traverse(t,r,null),isMissingData:this._isMissingData&&o,missingClientEdges:D.ENABLE_CLIENT_EDGES&&this._missingClientEdges.length?this._missingClientEdges:null,seenRecords:this._seenRecords,selector:this._selector,missingRequiredFields:this._missingRequiredFields,relayResolverErrors:this._resolverErrors}},t._markDataAsMissing=function(){if(this._isMissingData=!0,D.ENABLE_CLIENT_EDGES&&this._clientEdgeTraversalPath.length){var e=this._clientEdgeTraversalPath[this._clientEdgeTraversalPath.length-1];null!==e&&this._missingClientEdges.push({request:e.readerClientEdge.operation,clientEdgeDestinationID:e.clientEdgeDestinationID})}},t._traverse=function(e,t,r){var n=this._recordSource.get(t);if(this._seenRecords.add(t),null==n)return void 0===n&&this._markDataAsMissing(),n;var i=r||{};return this._traverseSelections(e.selections,n,i)?i:null},t._getVariableValue=function(e){return this._variables.hasOwnProperty(e)||G(!1,"RelayReader(): Undefined variable `%s`.",e),this._variables[e]},t._maybeReportUnexpectedNull=function(e,t,r){var n;if("THROW"!==(null===(n=this._missingRequiredFields)||void 0===n?void 0:n.action)){var i=this._fragmentName;switch(t){case"THROW":return void(this._missingRequiredFields={action:t,field:{path:e,owner:i}});case"LOG":return void(null==this._missingRequiredFields?this._missingRequiredFields={action:t,fields:[{path:e,owner:i}]}:this._missingRequiredFields={action:t,fields:[].concat((0,o.default)(this._missingRequiredFields.fields),[{path:e,owner:i}])})}}},t._traverseSelections=function(e,t,r){for(var n=0;n<e.length;n++){var i=e[n];switch(i.kind){case b:if(null==this._readRequiredField(i,t,r)){var a=i.action;return"NONE"!==a&&this._maybeReportUnexpectedNull(i.path,a,t),!1}break;case R:this._readScalar(i,t,r);break;case v:i.plural?this._readPluralLink(i,t,r):this._readLink(i,t,r);break;case d:if(Boolean(this._getVariableValue(i.condition))===i.passingValue)if(!this._traverseSelections(i.selections,t,r))return!1;break;case g:var o=i.abstractKey;if(null==o){var s=k.getType(t);if(null!=s&&s===i.type)if(!this._traverseSelections(i.selections,t,r))return!1}else{var S=this._isMissingData,A=this._isWithinUnmatchedTypeRefinement,T=k.getType(t),O=K(T),N=this._recordSource.get(O),F=null!=N?k.getValue(N,o):null;this._isWithinUnmatchedTypeRefinement=A||!1===F,this._traverseSelections(i.selections,t,r),this._isWithinUnmatchedTypeRefinement=A,!1===F?this._isMissingData=S:null==F&&this._markDataAsMissing()}break;case y:case E:if(!D.ENABLE_RELAY_RESOLVERS)throw new Error("Relay Resolver fields are not yet supported.");this._readResolverField(i,t,r);break;case p:this._createFragmentPointer(i,t,r);break;case m:this._readModuleImport(i,t,r);break;case _:this._createInlineDataOrResolverFragmentPointer(i,t,r);break;case f:case c:var P=this._isMissingData,L=this._missingClientEdges.length;D.ENABLE_CLIENT_EDGES&&this._clientEdgeTraversalPath.push(null);var x=this._traverseSelections(i.selections,t,r);if(this._isMissingData=P||this._missingClientEdges.length>L,D.ENABLE_CLIENT_EDGES&&this._clientEdgeTraversalPath.pop(),!x)return!1;break;case I:if(!this._traverseSelections(i.selections,t,r))return!1;break;case h:if(!D.ENABLE_REACT_FLIGHT_COMPONENT_FIELD)throw new Error("Flight fields are not yet supported.");this._readFlightField(i,t,r);break;case l:this._readActorChange(i,t,r);break;case u:if(!D.ENABLE_CLIENT_EDGES)throw new Error("Client edges are not yet supported.");this._readClientEdge(i,t,r);break;default:G(!1,"RelayReader(): Unexpected ast kind `%s`.",i.kind)}}return!0},t._readRequiredField=function(e,t,r){switch(e.field.kind){case R:return this._readScalar(e.field,t,r);case v:return e.field.plural?this._readPluralLink(e.field,t,r):this._readLink(e.field,t,r);case E:case y:if(!D.ENABLE_RELAY_RESOLVERS)throw new Error("Relay Resolver fields are not yet supported.");return this._readResolverField(e.field,t,r);default:e.field.kind,G(!1,"RelayReader(): Unexpected ast kind `%s`.",e.kind)}},t._readResolverField=function(e,t,r){var n,o,s,l,u,c,d,f,h=this,p=e.resolverModule,_=e.fragment,g=V(e,this._variables),v=S.generateClientID(k.getDataID(t),g),m=new Set,y=function(e){if(null!=o)return o;s=e;var r=h._seenRecords;try{var n;h._seenRecords=m;var i={};return u=h._missingRequiredFields,h._missingRequiredFields=null,d=h._resolverErrors,h._resolverErrors=[],h._createInlineDataOrResolverFragmentPointer(e.node,t,i),l=h._missingRequiredFields,c=h._resolverErrors,("object"!=typeof(o=null===(n=i[P])||void 0===n?void 0:n[_.name])||null===o)&&G(!1,"Expected reader data to contain a __fragments property with a property for the fragment named ".concat(_.name,", but it is missing.")),o}finally{h._seenRecords=r,h._missingRequiredFields=u,h._resolverErrors=d}},E={getDataForResolverFragment:y},b=this._resolverCache.readFromCacheOrEvaluate(t,e,this._variables,(function(){var r={__id:k.getDataID(t),__fragmentOwner:h._owner,__fragments:(0,a.default)({},_.name,{})};return j(E,(function(){var t=null;try{t=p(r)}catch(t){var n,i=null!==(n=e.path)&&void 0!==n?n:"[UNKNOWN]";c.push({field:{path:i,owner:h._fragmentName},error:t})}return{resolverResult:t,errors:c,fragmentValue:o,resolverID:v,seenRecordIDs:m,readerSelector:s,missingRequiredFields:l}}))}),y),R=b[0],I=b[1],D=b[2],A=b[3],T=(0,i.default)(D);try{for(T.s();!(f=T.n()).done;){var O=f.value;this._resolverErrors.push(O)}}catch(e){T.e(e)}finally{T.f()}return null!=A&&this._addMissingRequiredFields(A),null!=I&&this._seenRecords.add(I),r[null!==(n=e.alias)&&void 0!==n?n:e.name]=R,R},t._readClientEdge=function(e,t,r){var n,i=e.backingField;"ClientExtension"===i.kind&&G(!1,"Client extension client edges are not yet implemented.");var a=null!==(n=i.alias)&&void 0!==n?n:i.name,o={};this._traverseSelections([i],t,o);var s=o[a];if(null!=s){"string"!=typeof s&&G(!1,"Plural client edges not are yet implemented"),this._clientEdgeTraversalPath.push({readerClientEdge:e,clientEdgeDestinationID:s});var l=r[a];null!=l&&"object"!=typeof l&&G(!1,"RelayReader(): Expected data for field `%s` on record `%s` to be an object, got `%s`.",a,k.getDataID(t),l);var u=this._traverse(e.linkedField,s,l);r[a]=u,this._clientEdgeTraversalPath.pop()}else r[a]=s},t._readFlightField=function(e,t,r){var n,i=null!==(n=e.alias)&&void 0!==n?n:e.name,a=V(e,this._variables),o=k.getLinkedRecordID(t,a);if(null==o)return r[i]=o,void 0===o&&this._markDataAsMissing(),o;var s=this._recordSource.get(o);if(this._seenRecords.add(o),null==s)return r[i]=s,void 0===s&&this._markDataAsMissing(),s;var l=A(s);return r[i]=l,l},t._readScalar=function(e,t,r){var n,i=null!==(n=e.alias)&&void 0!==n?n:e.name,a=V(e,this._variables),o=k.getValue(t,a);return void 0===o&&this._markDataAsMissing(),r[i]=o,o},t._readLink=function(e,t,r){var n,i=null!==(n=e.alias)&&void 0!==n?n:e.name,a=V(e,this._variables),o=k.getLinkedRecordID(t,a);if(null==o)return r[i]=o,void 0===o&&this._markDataAsMissing(),o;var s=r[i];null!=s&&"object"!=typeof s&&G(!1,"RelayReader(): Expected data for field `%s` on record `%s` to be an object, got `%s`.",i,k.getDataID(t),s);var l=this._traverse(e,o,s);return r[i]=l,l},t._readActorChange=function(e,t,r){var n,i=null!==(n=e.alias)&&void 0!==n?n:e.name,a=V(e,this._variables),o=k.getActorLinkedRecordID(t,a);if(null==o)return r[i]=o,void 0===o&&this._markDataAsMissing(),r[i];var s=o[0],l=o[1],u={};return this._createFragmentPointer(e.fragmentSpread,{__id:l},u),r[i]={__fragmentRef:u,__viewer:s},r[i]},t._readPluralLink=function(e,t,r){var n,i=this,a=null!==(n=e.alias)&&void 0!==n?n:e.name,o=V(e,this._variables),s=k.getLinkedRecordIDs(t,o);if(null==s)return r[a]=s,void 0===s&&this._markDataAsMissing(),s;var l=r[a];null==l||Array.isArray(l)||G(!1,"RelayReader(): Expected data for field `%s` on record `%s` to be an array, got `%s`.",a,k.getDataID(t),l);var u=l||[];return s.forEach((function(r,n){if(null==r)return void 0===r&&i._markDataAsMissing(),void(u[n]=r);var o=u[n];null!=o&&"object"!=typeof o&&G(!1,"RelayReader(): Expected data for field `%s` on record `%s` to be an object, got `%s`.",a,k.getDataID(t),o),u[n]=i._traverse(e,r,o)})),r[a]=u,u},t._readModuleImport=function(e,t,r){var n=U(e.documentName),i=k.getValue(t,n);null!=i?(this._createFragmentPointer({kind:"FragmentSpread",name:e.fragmentName,args:e.args},t,r),r[F]=e.fragmentPropName,r[w]=i):void 0===i&&this._markDataAsMissing()},t._createFragmentPointer=function(e,t,r){var n=r[P];null==n&&(n=r[P]={}),("object"!=typeof n||null==n)&&G(!1,"RelayReader: Expected fragment spread data to be an object, got `%s`.",n),null==r[L]&&(r[L]=k.getDataID(t)),n[e.name]=e.args?M(e.args,this._variables):{},r[N]=this._owner,r[x]=this._isWithinUnmatchedTypeRefinement,D.ENABLE_CLIENT_EDGES&&this._clientEdgeTraversalPath.length>0&&null!==this._clientEdgeTraversalPath[this._clientEdgeTraversalPath.length-1]&&(r[O]=(0,o.default)(this._clientEdgeTraversalPath))},t._createInlineDataOrResolverFragmentPointer=function(e,t,r){var n=r[P];null==n&&(n=r[P]={}),("object"!=typeof n||null==n)&&G(!1,"RelayReader: Expected fragment spread data to be an object, got `%s`.",n),null==r[L]&&(r[L]=k.getDataID(t));var i={},a=this._fragmentName;this._fragmentName=e.name,this._traverseSelections(e.selections,t,i),this._fragmentName=a,n[e.name]=i},t._addMissingRequiredFields=function(e){null!=this._missingRequiredFields?"THROW"!==this._missingRequiredFields.action&&("THROW"!==e.action?this._missingRequiredFields={action:"LOG",fields:[].concat((0,o.default)(this._missingRequiredFields.fields),(0,o.default)(e.fields))}:this._missingRequiredFields=e):this._missingRequiredFields=e},e}();e.exports={read:function(e,t,r){return new H(e,t,null!=r?r:new q).read()}}},function(e,t,r){"use strict";var n=new Map,i=1,a=function(){for(var e=new Set,t=0;t<10;++t)e.add(t.toString());return e}();e.exports={intern:function(e,t){if(null==t||e.length<t)return function(e){return"\t"===e[0]&&a.has(e[1])||"\v"===e[0]?"\v"+e:e}(e);var r=n.get(e);return null!=r||(r="\t"+i++,n.set(e,r)),r}}},function(e,t,r){"use strict";e.exports={DEFAULT_HANDLE_KEY:""}},function(e,t,r){"use strict";var n=r(1)(r(4)),i=r(22),a=r(28),o=r(0),s=r(3),l={update:function(e,t){var r=e.get(t.dataID);if(null!=r){var n=r.getValue(t.fieldKey);"string"==typeof n?e.delete(n):Array.isArray(n)&&n.forEach((function(t){"string"==typeof t&&e.delete(t)}))}}},u={update:function(e,t){var r=e.get(t.dataID);if(null!=r){var a=t.handleArgs.connections;null==a&&o(!1,"MutationHandlers: Expected connection IDs to be specified.");var l=r.getValue(t.fieldKey);(Array.isArray(l)?l:[l]).forEach((function(t){if("string"==typeof t){var r,o=(0,n.default)(a);try{for(o.s();!(r=o.n()).done;){var l=r.value,u=e.get(l);null!=u?i.deleteNode(u,t):s(!1,"[Relay][Mutation] The connection with id '".concat(l,"' doesn't exist."))}}catch(e){o.e(e)}finally{o.f()}}}))}}},c={update:p(i.insertEdgeAfter)},d={update:p(i.insertEdgeBefore)},f={update:_(i.insertEdgeAfter)},h={update:_(i.insertEdgeBefore)};function p(e){return function(t,r){var l,u=t.get(r.dataID);if(null!=u){var c,d,f=r.handleArgs.connections;null==f&&o(!1,"MutationHandlers: Expected connection IDs to be specified.");try{c=u.getLinkedRecord(r.fieldKey,r.args)}catch(e){}if(!c)try{d=u.getLinkedRecords(r.fieldKey,r.args)}catch(e){}if(null!=c||null!=d){var h,p=a.get(),_=p.NODE,g=p.EDGES,v=null!==(l=d)&&void 0!==l?l:[c],m=(0,n.default)(v);try{var y=function(){var r=h.value;if(null==r)return"continue";var a=r.getLinkedRecord("node");if(!a)return"continue";var l,u=a.getDataID(),c=(0,n.default)(f);try{for(c.s();!(l=c.n()).done;){var d=l.value,p=t.get(d);if(null!=p){if(!(null===(E=p.getLinkedRecords(g))||void 0===E?void 0:E.some((function(e){var t;return(null==e||null===(t=e.getLinkedRecord(_))||void 0===t?void 0:t.getDataID())===u})))){var v=i.buildConnectionEdge(t,p,r);null==v&&o(!1,"MutationHandlers: Failed to build the edge."),e(p,v)}}else s(!1,"[Relay][Mutation] The connection with id '".concat(d,"' doesn't exist."))}}catch(e){c.e(e)}finally{c.f()}};for(m.s();!(h=m.n()).done;){var E;y()}}catch(e){m.e(e)}finally{m.f()}}else s(!1,"MutationHandlers: Expected the server edge to be non-null.")}}}function _(e){return function(t,r){var l,u=t.get(r.dataID);if(null!=u){var c,d,f=r.handleArgs,h=f.connections,p=f.edgeTypeName;null==h&&o(!1,"MutationHandlers: Expected connection IDs to be specified."),null==p&&o(!1,"MutationHandlers: Expected edge typename to be specified.");try{c=u.getLinkedRecord(r.fieldKey,r.args)}catch(e){}if(!c)try{d=u.getLinkedRecords(r.fieldKey,r.args)}catch(e){}if(null!=c||null!=d){var _,g=a.get(),v=g.NODE,m=g.EDGES,y=null!==(l=d)&&void 0!==l?l:[c],E=(0,n.default)(y);try{var b=function(){var r=_.value;if(null==r)return"continue";var a,l=r.getDataID(),u=(0,n.default)(h);try{for(u.s();!(a=u.n()).done;){var c=a.value,d=t.get(c);if(null!=d){if(!(null===(R=d.getLinkedRecords(m))||void 0===R?void 0:R.some((function(e){var t;return(null==e||null===(t=e.getLinkedRecord(v))||void 0===t?void 0:t.getDataID())===l})))){var f=i.createEdge(t,d,r,p);null==f&&o(!1,"MutationHandlers: Failed to build the edge."),e(d,f)}}else s(!1,"[Relay][Mutation] The connection with id '".concat(c,"' doesn't exist."))}}catch(e){u.e(e)}finally{u.f()}};for(E.s();!(_=E.n()).done;){var R;b()}}catch(e){E.e(e)}finally{E.f()}}else s(!1,"MutationHandlers: Expected target node to exist.")}}}e.exports={AppendEdgeHandler:c,DeleteRecordHandler:l,PrependEdgeHandler:d,AppendNodeHandler:f,PrependNodeHandler:h,DeleteEdgeHandler:u}},function(e,t,r){"use strict";var n=r(22),i=r(37),a=r(0);e.exports=function(e){switch(e){case"connection":return n;case"deleteRecord":return i.DeleteRecordHandler;case"deleteEdge":return i.DeleteEdgeHandler;case"appendEdge":return i.AppendEdgeHandler;case"prependEdge":return i.PrependEdgeHandler;case"appendNode":return i.AppendNodeHandler;case"prependNode":return i.PrependNodeHandler}a(!1,"RelayDefaultHandlerProvider: No handler provided for `%s`.",e)}},function(e,t,r){"use strict";var n=r(17),i=r(0);e.exports=function(e,t){var r=null!=e.cacheID?e.cacheID:e.id;return null==r&&i(!1,"getRequestIdentifier: Expected request `%s` to have either a valid `id` or `cacheID` property",e.name),r+JSON.stringify(n(t))}},function(e,t,r){"use strict";var n=r(14),i=r(3),a="function"==typeof WeakMap?new WeakMap:new Map;e.exports=function(e,t){if(null!=t){var r={};return Object.assign(r,e),Object.keys(t).forEach((function(e){var o=t[e].get,s=o();if(a.has(o)){var l=a.get(o);i(n(s,l),"Relay: Expected function `%s` for provider `%s` to be a pure function, but got conflicting return values `%s` and `%s`",o.name,e,s,l),r[e]=l}else a.set(o,s),r[e]=s})),r}return e}},function(e,t,r){"use strict";e.exports=function(e){return!!e&&"function"==typeof e.then}},function(e,t,r){"use strict";var n=r(1),i=n(r(4)),a=n(r(19)),o=r(15),s=r(0),l=function(){function e(){var e=this;(0,a.default)(this,"_complete",!1),(0,a.default)(this,"_events",[]),(0,a.default)(this,"_sinks",new Set),(0,a.default)(this,"_subscription",[]),this._observable=o.create((function(t){e._sinks.add(t);for(var r=e._events,n=0;n<r.length&&!t.closed;n++){var i=r[n];switch(i.kind){case"complete":t.complete();break;case"error":t.error(i.error);break;case"next":t.next(i.data);break;default:i.kind,s(!1,"RelayReplaySubject: Unknown event kind `%s`.",i.kind)}}return function(){e._sinks.delete(t)}}))}var t=e.prototype;return t.complete=function(){!0!==this._complete&&(this._complete=!0,this._events.push({kind:"complete"}),this._sinks.forEach((function(e){return e.complete()})))},t.error=function(e){!0!==this._complete&&(this._complete=!0,this._events.push({kind:"error",error:e}),this._sinks.forEach((function(t){return t.error(e)})))},t.next=function(e){!0!==this._complete&&(this._events.push({kind:"next",data:e}),this._sinks.forEach((function(t){return t.next(e)})))},t.subscribe=function(e){var t=this._observable.subscribe(e);return this._subscription.push(t),t},t.unsubscribe=function(){var e,t=(0,i.default)(this._subscription);try{for(t.s();!(e=t.n()).done;){e.value.unsubscribe()}}catch(e){t.e(e)}finally{t.f()}this._subscription=[]},t.getObserverCount=function(){return this._sinks.size},e}();e.exports=l},function(e,t,r){"use strict";var n=r(31).getPromiseForActiveRequest;e.exports=function(e,t,r){var i,a,o=[],s=n(e,r);if(null!=s)o=[r];else{var l,u,c=e.getOperationTracker().getPendingOperationsAffectingOwner(r);o=null!==(l=null==c?void 0:c.pendingOperations)&&void 0!==l?l:[],s=null!==(u=null==c?void 0:c.promise)&&void 0!==u?u:null}if(!s)return null;var d=null!==(i=null===(a=o)||void 0===a?void 0:a.map((function(e){return e.node.params.name})).join(","))&&void 0!==i?i:null;null!=d&&0!==d.length||(d="Unknown pending operation");var f=t.name,h=d===f?"Relay(".concat(d,")"):"Relay(".concat(d,":").concat(f,")");return s.displayName=h,{promise:s,pendingOperations:o}}},function(e,t,r){"use strict";e.exports=function(e,t){return e===t&&(null===e||"object"!=typeof e)}},function(e,t,r){"use strict";var n=1e5;e.exports=function(){return n++}},function(e,t,r){"use strict";var n=r(1)(r(4)),i=r(0),a=function(){function e(){this._ownersToPendingOperations=new Map,this._pendingOperationsToOwners=new Map,this._ownersToPendingPromise=new Map}var t=e.prototype;return t.update=function(e,t){if(0!==t.size){var r,i=e.identifier,a=new Set,o=(0,n.default)(t);try{for(o.s();!(r=o.n()).done;){var s=r.value.identifier,l=this._ownersToPendingOperations.get(s);null!=l?l.has(i)||(l.set(i,e),a.add(s)):(this._ownersToPendingOperations.set(s,new Map([[i,e]])),a.add(s))}}catch(e){o.e(e)}finally{o.f()}if(0!==a.size){var u,c=this._pendingOperationsToOwners.get(i)||new Set,d=(0,n.default)(a);try{for(d.s();!(u=d.n()).done;){var f=u.value;this._resolveOwnerResolvers(f),c.add(f)}}catch(e){d.e(e)}finally{d.f()}this._pendingOperationsToOwners.set(i,c)}}},t.complete=function(e){var t=e.identifier,r=this._pendingOperationsToOwners.get(t);if(null!=r){var i,a=new Set,o=new Set,s=(0,n.default)(r);try{for(s.s();!(i=s.n()).done;){var l=i.value,u=this._ownersToPendingOperations.get(l);u&&(u.delete(t),u.size>0?o.add(l):a.add(l))}}catch(e){s.e(e)}finally{s.f()}var c,d=(0,n.default)(a);try{for(d.s();!(c=d.n()).done;){var f=c.value;this._resolveOwnerResolvers(f),this._ownersToPendingOperations.delete(f)}}catch(e){d.e(e)}finally{d.f()}var h,p=(0,n.default)(o);try{for(p.s();!(h=p.n()).done;){var _=h.value;this._resolveOwnerResolvers(_)}}catch(e){p.e(e)}finally{p.f()}this._pendingOperationsToOwners.delete(t)}},t._resolveOwnerResolvers=function(e){var t=this._ownersToPendingPromise.get(e);null!=t&&t.resolve(),this._ownersToPendingPromise.delete(e)},t.getPendingOperationsAffectingOwner=function(e){var t=e.identifier,r=this._ownersToPendingOperations.get(t);if(null==r||0===r.size)return null;var n,a=this._ownersToPendingPromise.get(t);if(null!=a)return{promise:a.promise,pendingOperations:a.pendingOperations};var o=new Promise((function(e){n=e}));null==n&&i(!1,"RelayOperationTracker: Expected resolver to be defined. If youare seeing this, it is likely a bug in Relay.");var s=Array.from(r.values());return this._ownersToPendingPromise.set(t,{promise:o,resolve:n,pendingOperations:s}),{promise:o,pendingOperations:s}},e}();e.exports=a},function(e,t){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(e){"object"==typeof window&&(r=window)}e.exports=r},function(e,t,r){"use strict";var n=r(49),i=n.VIEWER_ID,a=n.VIEWER_TYPE;e.exports=function(e,t){return t===a&&null==e.id?i:e.id}},function(e,t,r){"use strict";var n=(0,r(8).generateClientID)(r(2).ROOT_ID,"viewer");e.exports={VIEWER_ID:n,VIEWER_TYPE:"Viewer"}},function(e,t,r){"use strict";function n(e,t,r){for(var n=arguments.length,i=new Array(n>3?n-3:0),a=3;a<n;a++)i[a-3]=arguments[a];var o=0,s=r.replace(/%s/g,(function(){return String(i[o++])})),l=new Error(s),u=Object.assign(l,{name:t,messageFormat:r,messageParams:i,type:e,taalOpcodes:[2,2]});if(void 0===u.stack)try{throw u}catch(e){}return u}e.exports={create:function(e,t){for(var r=arguments.length,i=new Array(r>2?r-2:0),a=2;a<r;a++)i[a-2]=arguments[a];return n.apply(void 0,["error",e,t].concat(i))},createWarning:function(e,t){for(var r=arguments.length,i=new Array(r>2?r-2:0),a=2;a<r;a++)i[a-2]=arguments[a];return n.apply(void 0,["warn",e,t].concat(i))}}},function(e,t,r){"use strict";var n=r(9),i=r(25).EXISTENT,a=r(0),o=function(){function e(e,t){this.__sources=[t,e],this._base=e,this._sink=t}var t=e.prototype;return t.unstable_getRawRecordWithChanges=function(e){var t=this._base.get(e),r=this._sink.get(e);if(void 0===r){if(null==t)return t;var i=n.clone(t);return n.freeze(i),i}if(null===r)return null;if(null!=t){var a=n.update(t,r);return a!==t&&n.freeze(a),a}var o=n.clone(r);return n.freeze(o),o},t._getSinkRecord=function(e){var t=this._sink.get(e);if(!t){var r=this._base.get(e);r||a(!1,"RelayRecordSourceMutator: Cannot modify non-existent record `%s`.",e),t=n.create(e,n.getType(r)),this._sink.set(e,t)}return t},t.copyFields=function(e,t){var r=this._sink.get(e),i=this._base.get(e);r||i||a(!1,"RelayRecordSourceMutator#copyFields(): Cannot copy fields from non-existent record `%s`.",e);var o=this._getSinkRecord(t);i&&n.copyFields(i,o),r&&n.copyFields(r,o)},t.copyFieldsFromRecord=function(e,t){var r=this._getSinkRecord(t);n.copyFields(e,r)},t.create=function(e,t){(this._base.getStatus(e)===i||this._sink.getStatus(e)===i)&&a(!1,"RelayRecordSourceMutator#create(): Cannot create a record with id `%s`, this record already exists.",e);var r=n.create(e,t);this._sink.set(e,r)},t.delete=function(e){this._sink.delete(e)},t.getStatus=function(e){return this._sink.has(e)?this._sink.getStatus(e):this._base.getStatus(e)},t.getType=function(e){for(var t=0;t<this.__sources.length;t++){var r=this.__sources[t].get(e);if(r)return n.getType(r);if(null===r)return null}},t.getValue=function(e,t){for(var r=0;r<this.__sources.length;r++){var i=this.__sources[r].get(e);if(i){var a=n.getValue(i,t);if(void 0!==a)return a}else if(null===i)return null}},t.setValue=function(e,t,r){var i=this._getSinkRecord(e);n.setValue(i,t,r)},t.getLinkedRecordID=function(e,t){for(var r=0;r<this.__sources.length;r++){var i=this.__sources[r].get(e);if(i){var a=n.getLinkedRecordID(i,t);if(void 0!==a)return a}else if(null===i)return null}},t.setLinkedRecordID=function(e,t,r){var i=this._getSinkRecord(e);n.setLinkedRecordID(i,t,r)},t.getLinkedRecordIDs=function(e,t){for(var r=0;r<this.__sources.length;r++){var i=this.__sources[r].get(e);if(i){var a=n.getLinkedRecordIDs(i,t);if(void 0!==a)return a}else if(null===i)return null}},t.setLinkedRecordIDs=function(e,t,r){var i=this._getSinkRecord(e);n.setLinkedRecordIDs(i,t,r)},e}();e.exports=o},function(e,t,r){"use strict";var n=r(9),i=r(25),a=i.EXISTENT,o=i.NONEXISTENT,s=r(2),l=s.ROOT_ID,u=s.ROOT_TYPE,c=r(53).readUpdatableQuery_EXPERIMENTAL,d=r(82),f=r(0),h=function(){function e(e,t,r){this.__mutator=e,this._handlerProvider=r||null,this._proxies={},this._getDataID=t,this._invalidatedStore=!1,this._idsMarkedForInvalidation=new Set}var t=e.prototype;return t.publishSource=function(e,t){var r=this;e.getRecordIDs().forEach((function(t){var i=e.getStatus(t);if(i===a){var s=e.get(t);s&&(r.__mutator.getStatus(t)!==a&&r.create(t,n.getType(s)),r.__mutator.copyFieldsFromRecord(s,t))}else i===o&&r.delete(t)})),t&&t.length&&t.forEach((function(e){var t=r._handlerProvider&&r._handlerProvider(e.handle);t||f(!1,"RelayModernEnvironment: Expected a handler to be provided for handle `%s`.",e.handle),t.update(r,e)}))},t.create=function(e,t){this.__mutator.create(e,t),delete this._proxies[e];var r=this.get(e);return r||f(!1,"RelayRecordSourceProxy#create(): Expected the created record to exist."),r},t.delete=function(e){e===l&&f(!1,"RelayRecordSourceProxy#delete(): Cannot delete the root record."),delete this._proxies[e],this.__mutator.delete(e)},t.get=function(e){if(!this._proxies.hasOwnProperty(e)){var t=this.__mutator.getStatus(e);this._proxies[e]=t===a?new d(this,this.__mutator,e):t===o?null:void 0}return this._proxies[e]},t.getRoot=function(){var e=this.get(l);return e||(e=this.create(l,u)),e&&e.getType()===u||f(!1,"RelayRecordSourceProxy#getRoot(): Expected the source to contain a root record, %s.",null==e?"no root record found":"found a root record of type `".concat(e.getType(),"`")),e},t.invalidateStore=function(){this._invalidatedStore=!0},t.isStoreMarkedForInvalidation=function(){return this._invalidatedStore},t.markIDForInvalidation=function(e){this._idsMarkedForInvalidation.add(e)},t.getIDsMarkedForInvalidation=function(){return this._idsMarkedForInvalidation},t.readUpdatableQuery_EXPERIMENTAL=function(e,t){return c(e,t,this)},e}();e.exports=h},function(e,t,r){"use strict";var n=r(1)(r(4)),i=r(10).getUpdatableQuery,a=r(2).getArgumentValues,o=["id","__id","__typename","js"];function s(e,t,r,i,f){var h,p,_=(0,n.default)(i);try{var g=function(){var n=p.value;switch(n.kind){case"LinkedField":n.plural?Object.defineProperty(e,null!==(v=n.alias)&&void 0!==v?v:n.name,{get:c(n,r,t,f),set:l(n,r,t,f)}):Object.defineProperty(e,null!==(m=n.alias)&&void 0!==m?m:n.name,{get:d(n,r,t,f),set:u(n,r,t,f)});break;case"ScalarField":var i=null!==(h=n.alias)&&void 0!==h?h:n.name;Object.defineProperty(e,i,{get:function(){var e,i=a(null!==(e=n.args)&&void 0!==e?e:[],r);return t.getValue(n.name,i)},set:o.includes(n.name)?void 0:function(e){var i,o=a(null!==(i=n.args)&&void 0!==i?i:[],r);t.setValue(e,n.name,o)}});break;case"InlineFragment":t.getType()===n.type&&s(e,t,r,n.selections,f);break;case"ClientExtension":s(e,t,r,n.selections,f);break;case"FragmentSpread":break;default:throw new Error("Encountered an unexpected ReaderSelection variant in RelayRecordSourceProxy. This indicates a bug in Relay.")}};for(_.s();!(p=_.n()).done;){var v,m;g()}}catch(e){_.e(e)}finally{_.f()}}function l(e,t,r,n){return function(i){var o,s=a(null!==(o=e.args)&&void 0!==o?o:[],t);if(null==i)throw new Error("Do not assign null to plural linked fields; assign an empty array instead.");var l=i.map((function(e){if(null==e)throw new Error("When assigning an array of items, none of the items should be null or undefined.");var t=e.__id;if(null==t)throw new Error("The __id field must be present on each item passed to the setter. This indicates a bug in Relay.");var r=n.get(t);if(null==r)throw new Error("Did not find item with data id ".concat(t," in the store."));return r}));r.setLinkedRecords(l,e.name,s)}}function u(e,t,r,n){return function(i){var o,s=a(null!==(o=e.args)&&void 0!==o?o:[],t);if(null==i)r.setValue(i,e.name,s);else{var l=i.__id;if(null==l)throw new Error("The __id field must be present on the argument. This indicates a bug in Relay.");var u=n.get(l);if(null==u)throw new Error("Did not find item with data id ".concat(l," in the store."));r.setLinkedRecord(u,e.name,s)}}}function c(e,t,r,n){return function(){var i,o=a(null!==(i=e.args)&&void 0!==i?i:[],t),l=r.getLinkedRecords(e.name,o);return null!=l?l.map((function(r){if(null!=r){var i={};return s(i,r,t,e.selections,n),Object.freeze(i),i}return r})):l}}function d(e,t,r,n){return function(){var i,o=a(null!==(i=e.args)&&void 0!==i?i:[],t),l=r.getLinkedRecord(e.name,o);if(null!=l){var u={};return s(u,l,t,e.selections,n),Object.freeze(u),u}return l}}e.exports={readUpdatableQuery_EXPERIMENTAL:function(e,t,r){var n=i(e),a={};return s(a,r.getRoot(),t,n.fragment.selections,r),Object.freeze(a),a}}},function(e,t,r){"use strict";var n=r(1)(r(4)),i=r(24),a=r(6).RELAY_LIVE_RESOLVER,o=r(8).generateClientID,s=r(9),l=r(2),u=l.RELAY_RESOLVER_ERROR_KEY,c=l.RELAY_RESOLVER_INPUTS_KEY,d=l.RELAY_RESOLVER_INVALIDATION_KEY,f=l.RELAY_RESOLVER_MISSING_REQUIRED_FIELDS_KEY,h=l.RELAY_RESOLVER_READER_SELECTOR_KEY,p=l.RELAY_RESOLVER_VALUE_KEY,_=l.getStorageKey,g=r(0),v=r(3),m=new Set,y=function(){function e(){}var t=e.prototype;return t.readFromCacheOrEvaluate=function(e,t,r,n,i){t.kind===a&&g(!1,"This store does not support Live Resolvers");var o=n(),s=o.resolverResult,l=o.missingRequiredFields;return[s,void 0,o.errors,l]},t.invalidateDataIDs=function(e){},e}();function E(e,t,r){var n=e.get(t);n||(n=new Set,e.set(t,n)),n.add(r)}var b=function(){function e(e){this._resolverIDToRecordIDs=new Map,this._recordIDToResolverIDs=new Map,this._getRecordSource=e}var t=e.prototype;return t.readFromCacheOrEvaluate=function(e,t,r,i,a){var l=this._getRecordSource(),d=s.getDataID(e),g=_(t,r),v=s.getLinkedRecordID(e,g),m=null==v?null:l.get(v);if(null==m||this._isInvalid(m,a)){var y;v=null!==(y=v)&&void 0!==y?y:o(d,g),m=s.create(v,"__RELAY_RESOLVER__");var b=i();s.setValue(m,p,b.resolverResult),s.setValue(m,c,b.fragmentValue),s.setValue(m,h,b.readerSelector),s.setValue(m,f,b.missingRequiredFields),s.setValue(m,u,b.errors),l.set(v,m);var R=s.clone(e);s.setLinkedRecordID(R,g,v),l.set(s.getDataID(R),R);var I=b.resolverID;E(this._resolverIDToRecordIDs,I,v),E(this._recordIDToResolverIDs,d,I);var D,S=(0,n.default)(b.seenRecordIDs);try{for(S.s();!(D=S.n()).done;){var k=D.value;E(this._recordIDToResolverIDs,k,I)}}catch(e){S.e(e)}finally{S.f()}}var A=m[p],T=m[f];return[A,v,m[u],T]},t.invalidateDataIDs=function(e){for(var t=this._getRecordSource(),r=new Set,i=Array.from(e);i.length;){var a=i.pop();e.add(a);var o,s=(0,n.default)(null!==(l=this._recordIDToResolverIDs.get(a))&&void 0!==l?l:m);try{for(s.s();!(o=s.n()).done;){var l,u=o.value;if(!r.has(u)){var c,d=(0,n.default)(null!==(f=this._resolverIDToRecordIDs.get(u))&&void 0!==f?f:m);try{for(d.s();!(c=d.n()).done;){var f,h=c.value;this._markInvalidatedResolverRecord(h,t,e),r.has(h)||i.push(h)}}catch(e){d.e(e)}finally{d.f()}}}}catch(e){s.e(e)}finally{s.f()}}},t._markInvalidatedResolverRecord=function(e,t,r){var n=t.get(e);if(n){var i=s.clone(n);s.setValue(i,d,!0),t.set(e,i)}else v(!1,"Expected a resolver record with ID %s, but it was missing.",e)},t._isInvalid=function(e,t){if(!s.getValue(e,d))return!1;var r=s.getValue(e,c),n=s.getValue(e,h);if(null==r||null==n)return v(!1,"Expected previous inputs and reader selector on resolver record with ID %s, but they were missing.",s.getDataID(e)),!0;var a=t(n);return i(r,a)!==r},e}();e.exports={NoopResolverCache:y,RecordResolverCache:b}},function(e,t,r){"use strict";var n=r(10).getFragment,i=r(11).getSelector,a=r(0),o=[];e.exports={readFragment:function(e,t){if(!o.length)throw new Error("readFragment should be called only from within a Relay Resolver function.");var r=o[o.length-1],s=n(e),l=i(s,t);return null==l&&a(!1,"Expected a selector for the fragment of the resolver ".concat(s.name,", but got null.")),"SingularReaderSelector"!==l.kind&&a(!1,"Expected a singular reader selector for the fragment of the resolver ".concat(s.name,", but it was plural.")),r.getDataForResolverFragment(l,t)},withResolverContext:function(e,t){o.push(e);try{return t()}finally{o.pop()}}}},function(e,t,r){"use strict";var n=r(6).LINKED_FIELD,i=r(2).getHandleStorageKey,a=r(14),o=r(0);e.exports=function(e,t,r){var s=t.find((function(t){return t.kind===n&&t.name===e.name&&t.alias===e.alias&&a(t.args,e.args)}));s&&s.kind===n||o(!1,"cloneRelayHandleSourceField: Expected a corresponding source field for handle `%s`.",e.handle);var l=i(e,r);return{kind:"LinkedField",alias:s.alias,name:l,storageKey:l,args:null,concreteType:s.concreteType,plural:s.plural,selections:s.selections}}},function(e,t,r){"use strict";var n=r(0);e.exports=function(e,t){var r,i;!0===(null===(r=e.metadata)||void 0===r?void 0:r.plural)&&n(!1,"Relay: getRefetchMetadata(): Expected fragment `%s` not to be plural when using `%s`. Remove `@relay(plural: true)` from fragment `%s` in order to use it with `%s`.",e.name,t,e.name,t);var a=null===(i=e.metadata)||void 0===i?void 0:i.refetch;null==a&&n(!1,"Relay: getRefetchMetadata(): Expected fragment `%s` to be refetchable when using `%s`. Did you forget to add a @refetchable directive to the fragment?",t,e.name);var o=a.operation.default?a.operation.default:a.operation,s=a.fragmentPathInResult;"string"==typeof o&&n(!1,"Relay: getRefetchMetadata(): Expected refetch query to be an operation and not a string when using `%s`. If you're seeing this, this is likely a bug in Relay.",t);var l=a.identifierField;return null!=l&&"string"!=typeof l&&n(!1,"Relay: getRefetchMetadata(): Expected `identifierField` to be a string."),{fragmentRefPathInResponse:s,identifierField:l,refetchableRequest:o,refetchMetadata:a}}},function(e,t,r){"use strict";var n=r(22),i=r(28),a=r(37),o=r(38),s=r(59),l=r(60),u=r(61),c=r(23),d=r(63),f=r(15),h=r(65),p=r(66),_=r(67),g=r(31),v=r(10),m=r(68),y=r(8),E=y.generateClientID,b=y.generateUniqueClientID,R=y.isClientID,I=r(69),D=r(71),S=r(29),k=r(72),A=r(13),T=r(73),O=r(12),N=r(9),F=r(11),P=r(85),L=r(46),x=r(20),w=r(2),C=r(55),M=r(49),U=r(93),V=r(94),q=r(18),j=r(95),K=r(97),G=r(98),H=r(43),z=r(57),Y=r(27),Q=r(39),B=r(99),W=r(30),J=r(41),X=r(44),Z=r(24),$=r(6),ee=r(36),te=r(50),re=r(5),ne=r(100),ie=r(42),ae=r(17),oe=r(40),se="function"!=typeof Map?"Map":null,le="function"!=typeof Set?"Set":null,ue="function"!=typeof Promise?"Promise":null,ce="function"!=typeof Object.assign?"Object.assign":null;if(se||le||ue||ce)throw new Error("relay-runtime requires ".concat([se,le,ue,ce].filter(Boolean).join(", and ")," to exist. ")+"Use a polyfill to provide these for older browsers.");e.exports={Environment:T,Network:d,Observable:f,QueryResponseCache:h,RecordSource:x,Record:N,ReplaySubject:ie,Store:P,areEqualSelectors:F.areEqualSelectors,createFragmentSpecResolver:I,createNormalizationSelector:F.createNormalizationSelector,createOperationDescriptor:O.createOperationDescriptor,createReaderSelector:F.createReaderSelector,createRequestDescriptor:O.createRequestDescriptor,getDataIDsFromFragment:F.getDataIDsFromFragment,getDataIDsFromObject:F.getDataIDsFromObject,getNode:v.getNode,getFragment:v.getFragment,getInlineDataFragment:v.getInlineDataFragment,getModuleComponentKey:w.getModuleComponentKey,getModuleOperationKey:w.getModuleOperationKey,getPaginationFragment:v.getPaginationFragment,getPluralSelector:F.getPluralSelector,getRefetchableFragment:v.getRefetchableFragment,getRequest:v.getRequest,getRequestIdentifier:Q,getSelector:F.getSelector,getSelectorsFromObject:F.getSelectorsFromObject,getSingularSelector:F.getSingularSelector,getStorageKey:w.getStorageKey,getVariablesFromFragment:F.getVariablesFromFragment,getVariablesFromObject:F.getVariablesFromObject,getVariablesFromPluralFragment:F.getVariablesFromPluralFragment,getVariablesFromSingularFragment:F.getVariablesFromSingularFragment,handlePotentialSnapshotErrors:W,graphql:v.graphql,isFragment:v.isFragment,isInlineDataFragment:v.isInlineDataFragment,isRequest:v.isRequest,readInlineData:k,MutationTypes:c.MutationTypes,RangeOperations:c.RangeOperations,DefaultHandlerProvider:o,ConnectionHandler:n,MutationHandlers:a,VIEWER_ID:M.VIEWER_ID,VIEWER_TYPE:M.VIEWER_TYPE,applyOptimisticMutation:s,commitLocalUpdate:l,commitMutation:u,fetchQuery:p,fetchQuery_DEPRECATED:_,isRelayModernEnvironment:S,requestSubscription:U,ConnectionInterface:i,PreloadableQueryRegistry:m,RelayProfiler:ne,createPayloadFor3DField:V,RelayConcreteNode:$,RelayError:te,RelayFeatureFlags:re,DEFAULT_HANDLE_KEY:ee.DEFAULT_HANDLE_KEY,FRAGMENTS_KEY:w.FRAGMENTS_KEY,FRAGMENT_OWNER_KEY:w.FRAGMENT_OWNER_KEY,ID_KEY:w.ID_KEY,REF_KEY:w.REF_KEY,REFS_KEY:w.REFS_KEY,ROOT_ID:w.ROOT_ID,ROOT_TYPE:w.ROOT_TYPE,TYPENAME_KEY:w.TYPENAME_KEY,deepFreeze:q,generateClientID:E,generateUniqueClientID:b,getRelayHandleKey:Y,isClientID:R,isPromise:J,isScalarAndEqual:X,recycleNodesInto:Z,stableCopy:ae,getFragmentIdentifier:j,getRefetchMetadata:z,getPaginationMetadata:K,getPaginationVariables:G,getPendingOperationsForFragment:H,getValueAtPath:B,__internal:{ResolverFragments:C,OperationTracker:L,createRelayContext:D,getOperationVariables:A.getOperationVariables,fetchQuery:g.fetchQuery,fetchQueryDeduped:g.fetchQueryDeduped,getPromiseForActiveRequest:g.getPromiseForActiveRequest,getObservableForActiveRequest:g.getObservableForActiveRequest,withProvidedVariables:oe}}},function(e,t,r){"use strict";var n=r(10).getRequest,i=r(29),a=r(12).createOperationDescriptor,o=r(23),s=r(0);e.exports=function(e,t){i(e)||s(!1,"commitMutation: expected `environment` to be an instance of `RelayModernEnvironment`.");var r=n(t.mutation);if("mutation"!==r.params.operationKind)throw new Error("commitMutation: Expected mutation operation");var l=t.optimisticUpdater,u=t.configs,c=t.optimisticResponse,d=t.variables,f=a(r,d);return u&&(l=o.convert(u,r,l).optimisticUpdater),e.applyMutation({operation:f,response:c,updater:l})}},function(e,t,r){"use strict";e.exports=function(e,t){e.commitUpdate(t)}},function(e,t,r){"use strict";var n=r(1)(r(16)),i=r(10).getRequest,a=r(8).generateUniqueClientID,o=r(29),s=r(12).createOperationDescriptor,l=r(23),u=r(62),c=r(0),d=r(3);e.exports=function(e,t){o(e)||c(!1,"commitMutation: expected `environment` to be an instance of `RelayModernEnvironment`.");var r=i(t.mutation);if("mutation"!==r.params.operationKind)throw new Error("commitMutation: Expected mutation operation");if("Request"!==r.kind)throw new Error("commitMutation: Expected mutation to be of type request");var f=t.optimisticResponse,h=t.optimisticUpdater,p=t.updater,_=t.configs,g=t.cacheConfig,v=t.onError,m=t.onUnsubscribe,y=t.variables,E=t.uploadables,b=s(r,y,g,a());if("function"==typeof f&&(f=f(),d(!1,"commitMutation: Expected `optimisticResponse` to be an object, received a function.")),f instanceof Object&&u(f,r,y),_){var R=l.convert(_,r,h,p);h=R.optimisticUpdater,p=R.updater}var I=[];return{dispose:e.executeMutation({operation:b,optimisticResponse:f,optimisticUpdater:h,updater:p,uploadables:E}).subscribe({next:function(e){var r;Array.isArray(e)?e.forEach((function(e){e.errors&&I.push.apply(I,(0,n.default)(e.errors))})):e.errors&&I.push.apply(I,(0,n.default)(e.errors)),null===(r=t.onNext)||void 0===r||r.call(t)},complete:function(){var r=t.onCompleted;r&&r(e.lookup(b.fragment).data,0!==I.length?I:null)},error:v,unsubscribe:m}).unsubscribe}}},function(e,t,r){"use strict";var n=r(1)(r(7)),i=r(6),a=i.ACTOR_CHANGE,o=i.CLIENT_COMPONENT,s=i.CLIENT_EXTENSION,l=i.CONDITION,u=i.DEFER,c=i.FLIGHT_FIELD,d=i.FRAGMENT_SPREAD,f=i.INLINE_FRAGMENT,h=i.LINKED_FIELD,p=i.LINKED_HANDLE,_=i.MODULE_IMPORT,g=i.SCALAR_FIELD,v=i.SCALAR_HANDLE,m=i.STREAM,y=i.TYPE_DISCRIMINATOR,E=r(3),b=Object.prototype.hasOwnProperty,R=function(){},I=function(e,t,r){var n=t;e.split(".").forEach((function(e,t,i){null==n[e]&&(n[e]={}),r&&t===i.length-1&&(n[e]="<scalar>"),n=n[e]}))};R=function(e,t,r){var n=t.operation.name,i={path:"ROOT",visitedPaths:new Set,variables:r||{},missingDiff:{},extraDiff:{},moduleImportPaths:new Set};D(e,t.operation.selections,i),O(e,i),E(null==i.missingDiff.ROOT,"Expected `optimisticResponse` to match structure of server response for mutation `%s`, please define fields for all of\n%s",n,JSON.stringify(i.missingDiff.ROOT,null,2)),E(null==i.extraDiff.ROOT,"Expected `optimisticResponse` to match structure of server response for mutation `%s`, please remove all fields of\n%s",n,JSON.stringify(i.extraDiff.ROOT,null,2))};var D=function(e,t,r){t.forEach((function(t){return S(e,t,r)}))},S=function e(t,r,n){switch(r.kind){case l:return void D(t,r.selections,n);case o:case d:return void D(t,r.fragment.selections,n);case g:case h:case c:return T(t,r,n);case a:return T(t,r.linkedField,n);case f:var i=r.type,E=null==r.abstractKey;return A(n,r.abstractKey),void r.selections.forEach((function(r){E&&t.__typename!==i||e(t,r,n)}));case s:return void r.selections.forEach((function(r){e(t,r,n)}));case _:return k(n);case y:return A(n,r.abstractKey);case p:case v:case u:case m:default:return}},k=function(e){e.moduleImportPaths.add(e.path)},A=function(e,t){if(null!=t){var r="".concat(e.path,".").concat(t);e.visitedPaths.add(r)}},T=function(e,t,r){var i=t.alias||t.name,a="".concat(r.path,".").concat(i);switch(r.visitedPaths.add(a),t.kind){case g:return void(!1===b.call(e,i)&&I(a,r.missingDiff,!0));case h:var o=t.selections;if(null===e[i]||b.call(e,i)&&void 0===e[i])return;return t.plural?Array.isArray(e[i])?void e[i].forEach((function(e){null!==e&&D(e,o,(0,n.default)((0,n.default)({},r),{},{path:a}))})):void I(a,r.missingDiff):e[i]instanceof Object?void D(e[i],o,(0,n.default)((0,n.default)({},r),{},{path:a})):void I(a,r.missingDiff);case c:if(null===e[i]||b.call(e,i)&&void 0===e[i])return;throw new Error("validateMutation: Flight fields are not compatible with optimistic updates, as React does not have the component code necessary to process new data on the client. Instead, you should update your code to require a full refetch of the Flight field so your UI can be updated.")}},O=function e(t,r){Array.isArray(t)?t.forEach((function(t){t instanceof Object&&e(t,r)})):Object.keys(t).forEach((function(i){var a=t[i],o="".concat(r.path,".").concat(i);r.moduleImportPaths.has(o)||(r.visitedPaths.has(o)?a instanceof Object&&e(a,(0,n.default)((0,n.default)({},r),{},{path:o})):I(o,r.extraDiff))}))};e.exports=R},function(e,t,r){"use strict";var n=r(40),i=r(64).convertFetch,a=r(0);e.exports={create:function(e,t){var r=i(e);return{execute:function(e,i,o,s,l){var u=n(i,e.providedVariables);if("subscription"===e.operationKind)return t||a(!1,"RelayNetwork: This network layer does not support Subscriptions. To use Subscriptions, provide a custom network layer."),s&&a(!1,"RelayNetwork: Cannot provide uploadables while subscribing."),t(e,u,o);var c=o.poll;return null!=c?(s&&a(!1,"RelayNetwork: Cannot provide uploadables while polling."),r(e,u,{force:!0}).poll(c)):r(e,u,o,s,l)}}}}},function(e,t,r){"use strict";var n=r(15);e.exports={convertFetch:function(e){return function(t,r,i,a,o){var s=e(t,r,i,a,o);return s instanceof Error?n.create((function(e){return e.error(s)})):n.from(s)}}}},function(e,t,r){"use strict";var n=r(1)(r(7)),i=r(17),a=r(0),o=function(){function e(e){var t=e.size,r=e.ttl;t>0||a(!1,"RelayQueryResponseCache: Expected the max cache size to be > 0, got `%s`.",t),r>0||a(!1,"RelayQueryResponseCache: Expected the max ttl to be > 0, got `%s`.",r),this._responses=new Map,this._size=t,this._ttl=r}var t=e.prototype;return t.clear=function(){this._responses.clear()},t.get=function(e,t){var r=this,i=s(e,t);this._responses.forEach((function(e,t){var n,i;n=e.fetchTime,i=r._ttl,n+i>=Date.now()||r._responses.delete(t)}));var a=this._responses.get(i);return null==a?null:Array.isArray(a.payload)?a.payload.map((function(e){return(0,n.default)((0,n.default)({},e),{},{extensions:(0,n.default)((0,n.default)({},e.extensions),{},{cacheTimestamp:a.fetchTime})})})):(0,n.default)((0,n.default)({},a.payload),{},{extensions:(0,n.default)((0,n.default)({},a.payload.extensions),{},{cacheTimestamp:a.fetchTime})})},t.set=function(e,t,r){var n=Date.now(),i=s(e,t);if(this._responses.delete(i),this._responses.set(i,{fetchTime:n,payload:r}),this._responses.size>this._size){var a=this._responses.keys().next();a.done||this._responses.delete(a.value)}},e}();function s(e,t){return JSON.stringify(i({queryID:e,variables:t}))}e.exports=o},function(e,t,r){"use strict";var n=r(1)(r(7)),i=r(15),a=r(12).createOperationDescriptor,o=r(30),s=r(31),l=r(10).getRequest,u=r(0);function c(e,t){return s.fetchQuery(e,t).map((function(){return e.lookup(t.fragment)}))}e.exports=function(e,t,r,s){var d,f=l(t);"query"!==f.params.operationKind&&u(!1,"fetchQuery: Expected query operation");var h=(0,n.default)({force:!0},null==s?void 0:s.networkCacheConfig),p=a(f,r,h),_=null!==(d=null==s?void 0:s.fetchPolicy)&&void 0!==d?d:"network-only";function g(t){return o(e,t.missingRequiredFields,t.relayResolverErrors),t.data}switch(_){case"network-only":return c(e,p).map(g);case"store-or-network":return"available"===e.check(p).status?i.from(e.lookup(p.fragment)).map(g):c(e,p).map(g);default:throw new Error("fetchQuery: Invalid fetchPolicy "+_)}}},function(e,t,r){"use strict";var n=r(12).createOperationDescriptor,i=r(10).getRequest;e.exports=function(e,t,r,a){var o=i(t);if("query"!==o.params.operationKind)throw new Error("fetchQuery: Expected query operation");var s=n(o,r,a);return e.execute({operation:s}).map((function(){return e.lookup(s.fragment).data})).toPromise()}},function(e,t,r){"use strict";var n=new(function(){function e(){this._preloadableQueries=new Map,this._callbacks=new Map}var t=e.prototype;return t.set=function(e,t){this._preloadableQueries.set(e,t);var r=this._callbacks.get(e);null!=r&&r.forEach((function(e){try{e(t)}catch(e){setTimeout((function(){throw e}),0)}}))},t.get=function(e){return this._preloadableQueries.get(e)},t.onLoad=function(e,t){var r,n=null!==(r=this._callbacks.get(e))&&void 0!==r?r:new Set;n.add(t);return this._callbacks.set(e,n),{dispose:function(){n.delete(t)}}},t.clear=function(){this._preloadableQueries.clear()},e}());e.exports=n},function(e,t,r){"use strict";var n=r(70),i=r(3);e.exports=function(e,t,r,a,o,s){return Object.keys(r).forEach((function(e){var r=a[e];i(void 0!==r,"createFragmentSpecResolver: Expected prop `%s` to be supplied to `%s`, but got `undefined`. Pass an explicit `null` if this is intentional.",e,t)})),new n(e,r,a,s,o)}},function(e,t,r){"use strict";var n=r(1),i=n(r(7)),a=n(r(19)),o=r(43),s=r(30),l=r(44),u=r(24),c=r(5),d=r(12).createRequestDescriptor,f=r(11),h=f.areEqualSelectors,p=f.createReaderSelector,_=f.getSelectorsFromObject,g=r(14),v=r(0),m=r(3),y=function(){function e(e,t,r,n,i){var o=this;(0,a.default)(this,"_onChange",(function(){o._stale=!0,"function"==typeof o._callback&&o._callback()})),this._callback=n,this._context=e,this._data={},this._fragments=t,this._props={},this._resolvers={},this._stale=!1,this._rootIsQueryRenderer=i,this.setProps(r)}var t=e.prototype;return t.dispose=function(){for(var e in this._resolvers)this._resolvers.hasOwnProperty(e)&&R(this._resolvers[e])},t.resolve=function(){if(this._stale){var e,t=this._data;for(var r in this._resolvers)if(this._resolvers.hasOwnProperty(r)){var n=this._resolvers[r],a=t[r];if(n){var o=n.resolve();(e||o!==a)&&((e=e||(0,i.default)({},t))[r]=o)}else{var s=this._props[r],u=void 0!==s?s:null;!e&&l(u,a)||((e=e||(0,i.default)({},t))[r]=u)}}this._data=e||t,this._stale=!1}return this._data},t.setCallback=function(e,t){this._callback=t,!0===c.ENABLE_CONTAINERS_SUBSCRIBE_ON_COMMIT&&this.setProps(e)},t.setProps=function(e){this._props={};var t=_(this._fragments,e);for(var r in t)if(t.hasOwnProperty(r)){var n=t[r],i=this._resolvers[r];null==n?(null!=i&&i.dispose(),i=null):"PluralReaderSelector"===n.kind?null==i?i=new b(this._context.environment,this._rootIsQueryRenderer,n,null!=this._callback,this._onChange):(i instanceof b||v(!1,"RelayModernFragmentSpecResolver: Expected prop `%s` to always be an array.",r),i.setSelector(n)):null==i?i=new E(this._context.environment,this._rootIsQueryRenderer,n,null!=this._callback,this._onChange):(i instanceof E||v(!1,"RelayModernFragmentSpecResolver: Expected prop `%s` to always be an object.",r),i.setSelector(n)),this._props[r]=e[r],this._resolvers[r]=i}this._stale=!0},t.setVariables=function(e,t){for(var r in this._resolvers)if(this._resolvers.hasOwnProperty(r)){var n=this._resolvers[r];n&&n.setVariables(e,t)}this._stale=!0},e}(),E=function(){function e(e,t,r,n,i){var o=this;(0,a.default)(this,"_onChange",(function(e){o._data=e.data,o._isMissingData=e.isMissingData,o._missingRequiredFields=e.missingRequiredFields,o._relayResolverErrors=e.relayResolverErrors,o._callback()}));var s=e.lookup(r);this._callback=i,this._data=s.data,this._isMissingData=s.isMissingData,this._missingRequiredFields=s.missingRequiredFields,this._relayResolverErrors=s.relayResolverErrors,this._environment=e,this._rootIsQueryRenderer=t,this._selector=r,!0===c.ENABLE_CONTAINERS_SUBSCRIBE_ON_COMMIT?n&&(this._subscription=e.subscribe(s,this._onChange)):this._subscription=e.subscribe(s,this._onChange)}var t=e.prototype;return t.dispose=function(){this._subscription&&(this._subscription.dispose(),this._subscription=null)},t.resolve=function(){if(!0===this._isMissingData){var e=o(this._environment,this._selector.node,this._selector.owner),t=null==e?void 0:e.promise;if(null!=t){if(!this._rootIsQueryRenderer){var r,n=null!==(r=null==e?void 0:e.pendingOperations)&&void 0!==r?r:[];throw m(!1,"Relay: Relay Container for fragment `%s` suspended. When using features such as @defer or @module, use `useFragment` instead of a Relay Container.",this._selector.node.name),this._environment.__log({name:"suspense.fragment",data:this._data,fragment:this._selector.node,isRelayHooks:!1,isMissingData:this._isMissingData,isPromiseCached:!1,pendingOperations:n}),t}m(!1,"Relay: Relay Container for fragment `%s` has missing data and would suspend. When using features such as @defer or @module, use `useFragment` instead of a Relay Container.",this._selector.node.name)}}return s(this._environment,this._missingRequiredFields,this._relayResolverErrors),this._data},t.setSelector=function(e){if(null==this._subscription||!h(e,this._selector)){this.dispose();var t=this._environment.lookup(e);this._data=u(this._data,t.data),this._isMissingData=t.isMissingData,this._missingRequiredFields=t.missingRequiredFields,this._relayResolverErrors=t.relayResolverErrors,this._selector=e,this._subscription=this._environment.subscribe(t,this._onChange)}},t.setVariables=function(e,t){if(!g(e,this._selector.variables)){var r=d(t,e),n=p(this._selector.node,this._selector.dataID,e,r);this.setSelector(n)}},e}(),b=function(){function e(e,t,r,n,i){var o=this;(0,a.default)(this,"_onChange",(function(e){o._stale=!0,o._callback()})),this._callback=i,this._data=[],this._environment=e,this._resolvers=[],this._stale=!0,this._rootIsQueryRenderer=t,this._subscribeOnConstruction=n,this.setSelector(r)}var t=e.prototype;return t.dispose=function(){this._resolvers.forEach(R)},t.resolve=function(){if(this._stale){for(var e,t=this._data,r=0;r<this._resolvers.length;r++){var n=t[r],i=this._resolvers[r].resolve();(e||i!==n)&&(e=e||t.slice(0,r)).push(i)}e||this._resolvers.length===t.length||(e=t.slice(0,this._resolvers.length)),this._data=e||t,this._stale=!1}return this._data},t.setSelector=function(e){for(var t=e.selectors;this._resolvers.length>t.length;){this._resolvers.pop().dispose()}for(var r=0;r<t.length;r++)r<this._resolvers.length?this._resolvers[r].setSelector(t[r]):this._resolvers[r]=new E(this._environment,this._rootIsQueryRenderer,t[r],this._subscribeOnConstruction,this._onChange);this._stale=!0},t.setVariables=function(e,t){this._resolvers.forEach((function(r){return r.setVariables(e,t)})),this._stale=!0},e}();function R(e){e&&e.dispose()}e.exports=y},function(e,t,r){"use strict";var n,i,a=r(0);e.exports=function(e){return n||((n=e.createContext(null)).displayName="RelayContext",i=e),e!==i&&a(!1,"[createRelayContext]: You are passing a different instance of React",e.version),n}},function(e,t,r){"use strict";var n=r(10).getInlineDataFragment,i=r(2).FRAGMENTS_KEY,a=r(0);e.exports=function(e,t){var r,o=n(e);if(null==t)return t;"object"!=typeof t&&a(!1,"readInlineData(): Expected an object, got `%s`.",typeof t);var s=null===(r=t[i])||void 0===r?void 0:r[o.name];return null==s&&a(!1,"readInlineData(): Expected fragment `%s` to be spread in the parent fragment.",o.name),s}},function(e,t,r){"use strict";var n=r(1)(r(7)),i=r(38),a=r(32),o=a.INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE,s=a.assertInternalActorIndentifier,l=r(15),u=r(74),c=r(46),d=r(75),f=r(5),h=r(48),p=r(76),_=r(77),g=r(81),v=r(20),m=r(0),y=function(){function e(e){var t,n,a,o,s,l,_,v,y=this;this.configName=e.configName,this._treatMissingFieldsAsNull=!0===e.treatMissingFieldsAsNull;var b=e.operationLoader,R=e.reactFlightPayloadDeserializer,I=e.reactFlightServerErrorHandler;null!=b&&("object"!=typeof b||"function"!=typeof b.get||"function"!=typeof b.load)&&m(!1,"RelayModernEnvironment: Expected `operationLoader` to be an object with get() and load() functions, got `%s`.",b),null!=R&&"function"!=typeof R&&m(!1,"RelayModernEnvironment: Expected `reactFlightPayloadDeserializer` to be a function, got `%s`.",R),this.__log=null!==(t=e.log)&&void 0!==t?t:E,this.requiredFieldLogger=null!==(n=e.requiredFieldLogger)&&void 0!==n?n:p,this._defaultRenderPolicy=(null!==(a=e.UNSTABLE_defaultRenderPolicy)&&void 0!==a?a:!0===f.ENABLE_PARTIAL_RENDERING_DEFAULT)?"partial":"full",this._operationLoader=b,this._operationExecutions=new Map,this._network=u(this,e.network),this._getDataID=null!==(o=e.getDataID)&&void 0!==o?o:h,this._publishQueue=new g(e.store,null!==(s=e.handlerProvider)&&void 0!==s?s:i,this._getDataID),this._scheduler=null!==(l=e.scheduler)&&void 0!==l?l:null,this._store=e.store,this.options=e.options,this._isServer=null!==(_=e.isServer)&&void 0!==_&&_,this.__setNet=function(e){return y._network=u(y,e)};var D=r(84).inspect;this.DEBUG_inspect=function(e){return D(y,e)},this._missingFieldHandlers=e.missingFieldHandlers,this._operationTracker=null!==(v=e.operationTracker)&&void 0!==v?v:new c,this._reactFlightPayloadDeserializer=R,this._reactFlightServerErrorHandler=I,this._shouldProcessClientComponents=e.shouldProcessClientComponents,d(this)}var t=e.prototype;return t.getStore=function(){return this._store},t.getNetwork=function(){return this._network},t.getOperationTracker=function(){return this._operationTracker},t.isRequestActive=function(e){return"active"===this._operationExecutions.get(e)},t.UNSTABLE_getDefaultRenderPolicy=function(){return this._defaultRenderPolicy},t.applyUpdate=function(e){var t=this;return this._scheduleUpdates((function(){t._publishQueue.applyUpdate(e),t._publishQueue.run()})),{dispose:function(){t._scheduleUpdates((function(){t._publishQueue.revertUpdate(e),t._publishQueue.run()}))}}},t.revertUpdate=function(e){var t=this;this._scheduleUpdates((function(){t._publishQueue.revertUpdate(e),t._publishQueue.run()}))},t.replaceUpdate=function(e,t){var r=this;this._scheduleUpdates((function(){r._publishQueue.revertUpdate(e),r._publishQueue.applyUpdate(t),r._publishQueue.run()}))},t.applyMutation=function(e){var t=this._execute({createSource:function(){return l.create((function(e){}))},isClientPayload:!1,operation:e.operation,optimisticConfig:e,updater:null}).subscribe({});return{dispose:function(){return t.unsubscribe()}}},t.check=function(e){return null==this._missingFieldHandlers||0===this._missingFieldHandlers.length?this._store.check(e):this._checkSelectorAndHandleMissingFields(e,this._missingFieldHandlers)},t.commitPayload=function(e,t){this._execute({createSource:function(){return l.from({data:t})},isClientPayload:!0,operation:e,optimisticConfig:null,updater:null}).subscribe({})},t.commitUpdate=function(e){var t=this;this._scheduleUpdates((function(){t._publishQueue.commitUpdate(e),t._publishQueue.run()}))},t.lookup=function(e){return this._store.lookup(e)},t.subscribe=function(e,t){return this._store.subscribe(e,t)},t.retain=function(e){return this._store.retain(e)},t.isServer=function(){return this._isServer},t._checkSelectorAndHandleMissingFields=function(e,t){var r=this,n=v.create(),i=this._store.getSource(),a=this._store.check(e,{handlers:t,defaultActorIdentifier:o,getSourceForActor:function(e){return s(e),i},getTargetForActor:function(e){return s(e),n}});return n.size()>0&&this._scheduleUpdates((function(){r._publishQueue.commitSource(n),r._publishQueue.run()})),a},t._scheduleUpdates=function(e){var t=this._scheduler;null!=t?t.schedule(e):e()},t.execute=function(e){var t=this,r=e.operation;return this._execute({createSource:function(){return t.getNetwork().execute(r.request.node.params,r.request.variables,r.request.cacheConfig||{},null)},isClientPayload:!1,operation:r,optimisticConfig:null,updater:null})},t.executeSubscription=function(e){var t=this,r=e.operation,n=e.updater;return this._execute({createSource:function(){return t.getNetwork().execute(r.request.node.params,r.request.variables,r.request.cacheConfig||{},null)},isClientPayload:!1,operation:r,optimisticConfig:null,updater:n})},t.executeMutation=function(e){var t,r=this,i=e.operation,a=e.optimisticResponse,o=e.optimisticUpdater,s=e.updater,l=e.uploadables;return(a||o)&&(t={operation:i,response:a,updater:o}),this._execute({createSource:function(){return r.getNetwork().execute(i.request.node.params,i.request.variables,(0,n.default)((0,n.default)({},i.request.cacheConfig),{},{force:!0}),l)},isClientPayload:!1,operation:i,optimisticConfig:t,updater:s})},t.executeWithSource=function(e){var t=e.operation,r=e.source;return this._execute({createSource:function(){return r},isClientPayload:!1,operation:t,optimisticConfig:null,updater:null})},t.toJSON=function(){var e;return"RelayModernEnvironment(".concat(null!==(e=this.configName)&&void 0!==e?e:"",")")},t._execute=function(e){var t=this,r=e.createSource,n=e.isClientPayload,i=e.operation,a=e.optimisticConfig,u=e.updater,c=this._publishQueue,d=this._store;return l.create((function(e){var l=_.execute({actorIdentifier:o,getDataID:t._getDataID,isClientPayload:n,log:t.__log,operation:i,operationExecutions:t._operationExecutions,operationLoader:t._operationLoader,operationTracker:t._operationTracker,optimisticConfig:a,getPublishQueue:function(e){return s(e),c},reactFlightPayloadDeserializer:t._reactFlightPayloadDeserializer,reactFlightServerErrorHandler:t._reactFlightServerErrorHandler,scheduler:t._scheduler,shouldProcessClientComponents:t._shouldProcessClientComponents,sink:e,source:r(),getStore:function(e){return s(e),d},treatMissingFieldsAsNull:t._treatMissingFieldsAsNull,updater:u});return function(){return l.cancel()}}))},e}();function E(){}y.prototype["@@RelayModernEnvironment"]=!0,e.exports=y},function(e,t,r){"use strict";var n=r(45);e.exports=function(e,t){return{execute:function(r,i,a,o){var s=n(),l={start:function(t){e.__log({name:"network.start",networkRequestId:s,params:r,variables:i,cacheConfig:a})},next:function(t){e.__log({name:"network.next",networkRequestId:s,response:t})},error:function(t){e.__log({name:"network.error",networkRequestId:s,error:t})},complete:function(){e.__log({name:"network.complete",networkRequestId:s})},unsubscribe:function(){e.__log({name:"network.unsubscribe",networkRequestId:s})}};return t.execute(r,i,a,o,(function(t){e.__log({name:"network.info",networkRequestId:s,info:t})})).do(l)}}}},function(e,t,r){"use strict";(function(t){e.exports=function(e){var r=void 0!==t?t:"undefined"!=typeof window?window:void 0,n=r&&r.__RELAY_DEVTOOLS_HOOK__;n&&n.registerEnvironment(e)}}).call(this,r(47))},function(e,t,r){"use strict";e.exports=function(e){if("missing_field.log"===e.kind)throw new Error("Relay Environment Configuration Error (dev only): `@required(action: LOG)` requires that the Relay Environment be configured with a `requiredFieldLogger`.")}},function(e,t,r){"use strict";var n=r(1),i=n(r(7)),a=n(r(4)),o=n(r(19)),s=n(r(16)),l=r(15),u=r(45),c=r(33),d=r(50),f=r(5),h=r(17),p=r(78),_=r(8),g=_.generateClientID,v=_.generateUniqueClientID,m=r(13).getLocalVariables,y=r(9),E=r(11),b=E.createNormalizationSelector,R=E.createReaderSelector,I=r(20),D=r(79),S=r(2),k=S.ROOT_TYPE,A=S.TYPENAME_KEY,T=S.getStorageKey,O=r(0),N=r(3);var F=function(){function e(e){var t=this,r=e.actorIdentifier,n=e.getDataID,i=e.getPublishQueue,a=e.getStore,s=e.isClientPayload,l=e.operation,c=e.operationExecutions,d=e.operationLoader,f=e.operationTracker,h=e.optimisticConfig,_=e.reactFlightPayloadDeserializer,g=e.reactFlightServerErrorHandler,v=e.scheduler,m=e.shouldProcessClientComponents,y=e.sink,E=e.source,b=e.treatMissingFieldsAsNull,R=e.updater,I=e.log;(0,o.default)(this,"_deserializeReactFlightPayloadWithLogging",(function(e){var r=t._reactFlightPayloadDeserializer;"function"!=typeof r&&O(!1,"OperationExecutor: Expected reactFlightPayloadDeserializer to be available when calling _deserializeReactFlightPayloadWithLogging.");var n=p((function(){return r(e)})),i=n[0],a=n[1];return t._log({name:"execute.flight.payload_deserialize",executeId:t._executeId,operationName:t._operation.request.node.params.name,duration:i}),a})),this._actorIdentifier=r,this._getDataID=n,this._treatMissingFieldsAsNull=b,this._incrementalPayloadsPending=!1,this._incrementalResults=new Map,this._log=I,this._executeId=u(),this._nextSubscriptionId=0,this._operation=l,this._operationExecutions=c,this._operationLoader=d,this._operationTracker=f,this._operationUpdateEpochs=new Map,this._optimisticUpdates=null,this._pendingModulePayloadsCount=0,this._getPublishQueue=i,this._scheduler=v,this._sink=y,this._source=new Map,this._state="started",this._getStore=a,this._subscriptions=new Map,this._updater=R,this._isClientPayload=!0===s,this._reactFlightPayloadDeserializer=_,this._reactFlightServerErrorHandler=g,this._isSubscriptionOperation="subscription"===this._operation.request.node.params.operationKind,this._shouldProcessClientComponents=m,this._retainDisposables=new Map,this._seenActors=new Set,this._completeFns=[];var D=this._nextSubscriptionId++;E.subscribe({complete:function(){return t._complete(D)},error:function(e){return t._error(e)},next:function(e){try{t._next(D,e)}catch(e){y.error(e)}},start:function(e){var r;t._start(D,e),t._log({name:"execute.start",executeId:t._executeId,params:t._operation.request.node.params,variables:t._operation.request.variables,cacheConfig:null!==(r=t._operation.request.cacheConfig)&&void 0!==r?r:{}})}}),null!=h&&this._processOptimisticResponse(null!=h.response?{data:h.response}:null,h.updater,!1)}var t=e.prototype;return t.cancel=function(){var e=this;if("completed"!==this._state){this._state="completed",this._operationExecutions.delete(this._operation.request.identifier),0!==this._subscriptions.size&&(this._subscriptions.forEach((function(e){return e.unsubscribe()})),this._subscriptions.clear());var t=this._optimisticUpdates;null!==t&&(this._optimisticUpdates=null,t.forEach((function(t){return e._getPublishQueueAndSaveActor().revertUpdate(t)})),this._runPublishQueue()),this._incrementalResults.clear(),null!=this._asyncStoreUpdateDisposable&&(this._asyncStoreUpdateDisposable.dispose(),this._asyncStoreUpdateDisposable=null),this._completeFns=[],this._completeOperationTracker(),this._disposeRetainedData()}},t._updateActiveState=function(){var e;switch(this._state){case"started":case"loading_incremental":e="active";break;case"completed":e="inactive";break;case"loading_final":e=this._pendingModulePayloadsCount>0?"active":"inactive";break;default:this._state,O(!1,"OperationExecutor: invalid executor state.")}this._operationExecutions.set(this._operation.request.identifier,e)},t._schedule=function(e){var t=this,r=this._scheduler;if(null!=r){var n=this._nextSubscriptionId++;l.create((function(t){var n=r.schedule((function(){try{e(),t.complete()}catch(e){t.error(e)}}));return function(){return r.cancel(n)}})).subscribe({complete:function(){return t._complete(n)},error:function(e){return t._error(e)},start:function(e){return t._start(n,e)}})}else e()},t._complete=function(e){this._subscriptions.delete(e),0===this._subscriptions.size&&(this.cancel(),this._sink.complete(),this._log({name:"execute.complete",executeId:this._executeId}))},t._error=function(e){this.cancel(),this._sink.error(e),this._log({name:"execute.error",executeId:this._executeId,error:e})},t._start=function(e,t){this._subscriptions.set(e,t),this._updateActiveState()},t._next=function(e,t){var r=this;this._schedule((function(){var e=p((function(){r._handleNext(t),r._maybeCompleteSubscriptionOperationTracking()}))[0];r._log({name:"execute.next",executeId:r._executeId,response:t,duration:e})}))},t._handleErrorResponse=function(e){var t=this,r=[];return e.forEach((function(e){if(null!==e.data||null==e.extensions||e.hasOwnProperty("errors")){if(null==e.data){var n=e.hasOwnProperty("errors")&&null!=e.errors?e.errors:null,i=n?n.map((function(e){return e.message})).join("\n"):"(No errors)",a=d.create("RelayNetwork","No data returned for operation `"+t._operation.request.node.params.name+"`, got error(s):\n"+i+"\n\nSee the error `source` property for more information.");throw a.source={errors:n,operation:t._operation.request.node,variables:t._operation.request.variables},a.stack,a}var o=e;r.push(o)}})),r},t._handleOptimisticResponses=function(e){var t;if(e.length>1)return e.some((function(e){var t;return!0===(null===(t=e.extensions)||void 0===t?void 0:t.isOptimistic)}))&&O(!1,"OperationExecutor: Optimistic responses cannot be batched."),!1;var r=e[0],n=!0===(null===(t=r.extensions)||void 0===t?void 0:t.isOptimistic);return n&&"started"!==this._state&&O(!1,"OperationExecutor: optimistic payload received after server payload."),!!n&&(this._processOptimisticResponse(r,null,this._treatMissingFieldsAsNull),this._sink.next(r),!0)},t._handleNext=function(e){if("completed"!==this._state){this._seenActors.clear();var t=Array.isArray(e)?e:[e],r=this._handleErrorResponse(t);if(0===r.length)return t.some((function(e){var t;return!0===(null===(t=e.extensions)||void 0===t?void 0:t.is_final)}))&&(this._state="loading_final",this._updateActiveState(),this._incrementalPayloadsPending=!1),void this._sink.next(e);if(!this._handleOptimisticResponses(r)){var n=function(e){var t=[],r=[];return e.forEach((function(e){if(null!=e.path||null!=e.label){var n=e.label,i=e.path;null!=n&&null!=i||O(!1,"OperationExecutor: invalid incremental payload, expected `path` and `label` to either both be null/undefined, or `path` to be an `Array<string | number>` and `label` to be a `string`."),r.push({label:n,path:i,response:e})}else t.push(e)})),[t,r]}(r),i=n[0],a=n[1],o=i.length>0;if(o){if(this._isSubscriptionOperation){var s=v();this._operation={request:this._operation.request,fragment:R(this._operation.fragment.node,s,this._operation.fragment.variables,this._operation.fragment.owner),root:b(this._operation.root.node,s,this._operation.root.variables)}}var l=this._processResponses(i);this._processPayloadFollowups(l)}if(a.length>0){var u=this._processIncrementalResponses(a);this._processPayloadFollowups(u)}this._isSubscriptionOperation&&(null==r[0].extensions?r[0].extensions={__relay_subscription_root_id:this._operation.fragment.dataID}:r[0].extensions.__relay_subscription_root_id=this._operation.fragment.dataID);var c=this._runPublishQueue(o?this._operation:void 0);o&&this._incrementalPayloadsPending&&this._retainData(),this._updateOperationTracker(c),this._sink.next(e)}}},t._processOptimisticResponse=function(e,t,r){var n=this;if(null!==this._optimisticUpdates&&O(!1,"OperationExecutor: environment.execute: only support one optimistic response per execute."),null!=e||null!=t){var i=[];if(e){var a=P(e,this._operation.root,k,{actorIdentifier:this._actorIdentifier,getDataID:this._getDataID,path:[],reactFlightPayloadDeserializer:null!=this._reactFlightPayloadDeserializer?this._deserializeReactFlightPayloadWithLogging:null,reactFlightServerErrorHandler:this._reactFlightServerErrorHandler,shouldProcessClientComponents:this._shouldProcessClientComponents,treatMissingFieldsAsNull:r});L(a),i.push({operation:this._operation,payload:a,updater:t}),this._processOptimisticFollowups(a,i)}else t&&i.push({operation:this._operation,payload:{errors:null,fieldPayloads:null,incrementalPlaceholders:null,followupPayloads:null,source:I.create(),isFinal:!1},updater:t});this._optimisticUpdates=i,i.forEach((function(e){return n._getPublishQueueAndSaveActor().applyUpdate(e)})),this._runPublishQueue()}},t._processOptimisticFollowups=function(e,t){if(e.followupPayloads&&e.followupPayloads.length){var r,n=e.followupPayloads,i=(0,a.default)(n);try{for(i.s();!(r=i.n()).done;){var o=r.value;switch(o.kind){case"ModuleImportPayload":var l=this._expectOperationLoader().get(o.operationReference);if(null==l)this._processAsyncOptimisticModuleImport(o);else{var u=this._processOptimisticModuleImport(l,o);t.push.apply(t,(0,s.default)(u))}break;case"ActorPayload":N(!1,"OperationExecutor: Unexpected optimistic ActorPayload. These updates are not supported.");break;default:O(!1,"OperationExecutor: Unexpected followup kind `%s`. when processing optimistic updates.",o.kind)}}}catch(e){i.e(e)}finally{i.f()}}},t._normalizeFollowupPayload=function(e,t){var r;r="SplitOperation"===t.kind&&"ModuleImportPayload"===e.kind?m(e.variables,t.argumentDefinitions,e.args):e.variables;var n=b(t,e.dataID,r);return P({data:e.data},n,e.typeName,{actorIdentifier:this._actorIdentifier,getDataID:this._getDataID,path:e.path,reactFlightPayloadDeserializer:null!=this._reactFlightPayloadDeserializer?this._deserializeReactFlightPayloadWithLogging:null,reactFlightServerErrorHandler:this._reactFlightServerErrorHandler,treatMissingFieldsAsNull:this._treatMissingFieldsAsNull,shouldProcessClientComponents:this._shouldProcessClientComponents})},t._processOptimisticModuleImport=function(e,t){var r=c(e),n=[],i=this._normalizeFollowupPayload(t,r);return L(i),n.push({operation:this._operation,payload:i,updater:null}),this._processOptimisticFollowups(i,n),n},t._processAsyncOptimisticModuleImport=function(e){var t=this;this._expectOperationLoader().load(e.operationReference).then((function(r){if(null!=r&&"started"===t._state){var n,i=t._processOptimisticModuleImport(r,e);if(i.forEach((function(e){return t._getPublishQueueAndSaveActor().applyUpdate(e)})),null==t._optimisticUpdates)N(!1,"OperationExecutor: Unexpected ModuleImport optimistic update in operation %s."+t._operation.request.node.params.name);else(n=t._optimisticUpdates).push.apply(n,(0,s.default)(i)),t._runPublishQueue()}}))},t._processResponses=function(e){var t=this;return null!==this._optimisticUpdates&&(this._optimisticUpdates.forEach((function(e){t._getPublishQueueAndSaveActor().revertUpdate(e)})),this._optimisticUpdates=null),this._incrementalPayloadsPending=!1,this._incrementalResults.clear(),this._source.clear(),e.map((function(e){var r=P(e,t._operation.root,k,{actorIdentifier:t._actorIdentifier,getDataID:t._getDataID,path:[],reactFlightPayloadDeserializer:null!=t._reactFlightPayloadDeserializer?t._deserializeReactFlightPayloadWithLogging:null,reactFlightServerErrorHandler:t._reactFlightServerErrorHandler,treatMissingFieldsAsNull:t._treatMissingFieldsAsNull,shouldProcessClientComponents:t._shouldProcessClientComponents});return t._getPublishQueueAndSaveActor().commitPayload(t._operation,r,t._updater),r}))},t._processPayloadFollowups=function(e){var t=this;"completed"!==this._state&&e.forEach((function(e){var r=e.incrementalPlaceholders,n=e.followupPayloads,i=e.isFinal;if(t._state=i?"loading_final":"loading_incremental",t._updateActiveState(),i&&(t._incrementalPayloadsPending=!1),n&&0!==n.length&&n.forEach((function(e){var r,n=t._actorIdentifier;t._actorIdentifier=null!==(r=e.actorIdentifier)&&void 0!==r?r:t._actorIdentifier,t._processFollowupPayload(e),t._actorIdentifier=n})),r&&0!==r.length&&(t._incrementalPayloadsPending="loading_final"!==t._state,r.forEach((function(r){var n,i=t._actorIdentifier;t._actorIdentifier=null!==(n=r.actorIdentifier)&&void 0!==n?n:t._actorIdentifier,t._processIncrementalPlaceholder(e,r),t._actorIdentifier=i})),t._isClientPayload||"loading_final"===t._state)){N(t._isClientPayload,"RelayModernEnvironment: Operation `%s` contains @defer/@stream directives but was executed in non-streaming mode. See https://fburl.com/relay-incremental-delivery-non-streaming-warning.",t._operation.request.node.params.name);var a=[];r.forEach((function(e){"defer"===e.kind&&a.push(t._processDeferResponse(e.label,e.path,e,{data:e.data}))})),a.length>0&&t._processPayloadFollowups(a)}}))},t._maybeCompleteSubscriptionOperationTracking=function(){this._isSubscriptionOperation&&0===this._pendingModulePayloadsCount&&!1===this._incrementalPayloadsPending&&this._completeOperationTracker()},t._processFollowupPayload=function(e){var t=this;switch(e.kind){case"ModuleImportPayload":var r=this._expectOperationLoader(),n=r.get(e.operationReference);if(null!=n)this._processFollowupPayloadWithNormalizationNode(e,c(n));else{var i=this._nextSubscriptionId++;this._pendingModulePayloadsCount++;var a=function(){t._pendingModulePayloadsCount--,t._maybeCompleteSubscriptionOperationTracking()},o=l.from(new Promise((function(t,n){r.load(e.operationReference).then(t,n)})));l.create((function(r){var n,i=o.subscribe({next:function(i){if(null!=i){var a=function(){try{var n=c(i),a=f.BATCH_ASYNC_MODULE_UPDATES_FN,o=null!=a&&t._pendingModulePayloadsCount>1,s=p((function(){if(t._handleFollowupPayload(e,n),o)t._scheduleAsyncStoreUpdate(a,r.complete);else{var i=t._runPublishQueue();t._updateOperationTracker(i)}}))[0];t._log({name:"execute.async.module",executeId:t._executeId,operationName:n.name,duration:s}),o||r.complete()}catch(e){r.error(e)}},o=t._scheduler;null==o?a():n=o.schedule(a)}else r.complete()},error:r.error});return function(){i.unsubscribe(),null!=t._scheduler&&null!=n&&t._scheduler.cancel(n)}})).subscribe({complete:function(){t._complete(i),a()},error:function(e){t._error(e),a()},start:function(e){return t._start(i,e)}})}break;case"ActorPayload":this._processFollowupPayloadWithNormalizationNode(e,e.node);break;default:O(!1,"OperationExecutor: Unexpected followup kind `%s`.",e.kind)}},t._processFollowupPayloadWithNormalizationNode=function(e,t){this._handleFollowupPayload(e,t),this._maybeCompleteSubscriptionOperationTracking()},t._handleFollowupPayload=function(e,t){var r=this._normalizeFollowupPayload(e,t);this._getPublishQueueAndSaveActor().commitPayload(this._operation,r),this._processPayloadFollowups([r])},t._processIncrementalPlaceholder=function(e,t){var r,n=t.label,i=t.path.map(String).join("."),a=this._incrementalResults.get(n);null==a&&(a=new Map,this._incrementalResults.set(n,a));var o,s=a.get(i),l=null!=s&&"response"===s.kind?s.responses:null;a.set(i,{kind:"placeholder",placeholder:t}),"stream"===t.kind?o=t.parentID:"defer"===t.kind?o=t.selector.dataID:O(!1,"OperationExecutor: Unsupported incremental placeholder kind `%s`.",t.kind);var u,c,d=e.source.get(o),f=(null!==(r=e.fieldPayloads)&&void 0!==r?r:[]).filter((function(e){var t=g(e.dataID,e.fieldKey);return e.dataID===o||t===o}));null==d&&O(!1,"OperationExecutor: Expected record `%s` to exist.",o);var p=this._source.get(o);if(null!=p){u=y.update(p.record,d);var _=new Map,v=function(e){var t,r,n=(t=e,null!==(r=JSON.stringify(h(t)))&&void 0!==r?r:"");_.set(n,e)};p.fieldPayloads.forEach(v),f.forEach(v),c=Array.from(_.values())}else u=d,c=f;if(this._source.set(o,{record:u,fieldPayloads:c}),null!=l){var m=this._processIncrementalResponses(l);this._processPayloadFollowups(m)}},t._processIncrementalResponses=function(e){var t=this,r=[];return e.forEach((function(e){var n=e.label,i=e.path,a=e.response,o=t._incrementalResults.get(n);if(null==o&&(o=new Map,t._incrementalResults.set(n,o)),-1!==n.indexOf("$defer$")){var s=i.map(String).join("."),l=o.get(s);if(null==l)return l={kind:"response",responses:[e]},void o.set(s,l);if("response"===l.kind)return void l.responses.push(e);var u=l.placeholder;"defer"!==u.kind&&O(!1,"OperationExecutor: Expected data for path `%s` for label `%s` to be data for @defer, was `@%s`.",s,n,u.kind),r.push(t._processDeferResponse(n,i,u,a))}else{var c=i.slice(0,-2).map(String).join("."),d=o.get(c);if(null==d)return d={kind:"response",responses:[e]},void o.set(c,d);if("response"===d.kind)return void d.responses.push(e);var f=d.placeholder;"stream"!==f.kind&&O(!1,"OperationExecutor: Expected data for path `%s` for label `%s` to be data for @stream, was `@%s`.",c,n,f.kind),r.push(t._processStreamResponse(n,i,f,a))}})),r},t._processDeferResponse=function(e,t,r,n){var i,a=r.selector.dataID,o=this._actorIdentifier;this._actorIdentifier=null!==(i=r.actorIdentifier)&&void 0!==i?i:this._actorIdentifier;var s=P(n,r.selector,r.typeName,{actorIdentifier:this._actorIdentifier,getDataID:this._getDataID,path:r.path,reactFlightPayloadDeserializer:null!=this._reactFlightPayloadDeserializer?this._deserializeReactFlightPayloadWithLogging:null,reactFlightServerErrorHandler:this._reactFlightServerErrorHandler,treatMissingFieldsAsNull:this._treatMissingFieldsAsNull,shouldProcessClientComponents:this._shouldProcessClientComponents});this._getPublishQueueAndSaveActor().commitPayload(this._operation,s);var l=this._source.get(a);null==l&&O(!1,"OperationExecutor: Expected the parent record `%s` for @defer data to exist.",a);var u=l.fieldPayloads;if(0!==u.length){var c,d={errors:null,fieldPayloads:u,incrementalPlaceholders:null,followupPayloads:null,source:I.create(),isFinal:!0===(null===(c=n.extensions)||void 0===c?void 0:c.is_final)};this._getPublishQueueAndSaveActor().commitPayload(this._operation,d)}return this._actorIdentifier=o,s},t._processStreamResponse=function(e,t,r,n){var i=r.parentID,a=r.node,o=r.variables,l=r.actorIdentifier,u=this._actorIdentifier;this._actorIdentifier=null!=l?l:this._actorIdentifier;var c=a.selections[0];(null==c||"LinkedField"!==c.kind||!0!==c.plural)&&O(!1,"OperationExecutor: Expected @stream to be used on a plural field.");var d=this._normalizeStreamItem(n,i,c,o,t,r.path),f=d.fieldPayloads,h=d.itemID,p=d.itemIndex,_=d.prevIDs,g=d.relayPayload,v=d.storageKey;if(this._getPublishQueueAndSaveActor().commitPayload(this._operation,g,(function(e){var t=e.get(i);if(null!=t){var r=t.getLinkedRecords(v);if(null!=r&&r.length===_.length&&!r.some((function(e,t){return _[t]!==(e&&e.getDataID())}))){var n=(0,s.default)(r);n[p]=e.get(h),t.setLinkedRecords(n,v)}}})),0!==f.length){var m={errors:null,fieldPayloads:f,incrementalPlaceholders:null,followupPayloads:null,source:I.create(),isFinal:!1};this._getPublishQueueAndSaveActor().commitPayload(this._operation,m)}return this._actorIdentifier=u,g},t._normalizeStreamItem=function(e,t,r,n,i,a){var o,l,u,c=e.data;"object"!=typeof c&&O(!1,"OperationExecutor: Expected the GraphQL @stream payload `data` value to be an object.");var d=null!==(o=r.alias)&&void 0!==o?o:r.name,f=T(r,n),h=this._source.get(t);null==h&&O(!1,"OperationExecutor: Expected the parent record `%s` for @stream data to exist.",t);var p=h.record,_=h.fieldPayloads,v=y.getLinkedRecordIDs(p,f);null==v&&O(!1,"OperationExecutor: Expected record `%s` to have fetched field `%s` with @stream.",t,r.name);var m=i[i.length-1],E=parseInt(m,10);E===m&&E>=0||O(!1,"OperationExecutor: Expected path for @stream to end in a positive integer index, got `%s`",m);var R=null!==(l=r.concreteType)&&void 0!==l?l:c[A];"string"!=typeof R&&O(!1,"OperationExecutor: Expected @stream field `%s` to have a __typename.",r.name);var I=(null!==(u=this._getDataID(c,R))&&void 0!==u?u:v&&v[E])||g(t,f,E);"string"!=typeof I&&O(!1,"OperationExecutor: Expected id of elements of field `%s` to be strings.",f);var D=b(r,I,n),S=y.clone(p),k=(0,s.default)(v);return k[E]=I,y.setLinkedRecordIDs(S,f,k),this._source.set(t,{record:S,fieldPayloads:_}),{fieldPayloads:_,itemID:I,itemIndex:E,prevIDs:v,relayPayload:P(e,D,R,{actorIdentifier:this._actorIdentifier,getDataID:this._getDataID,path:[].concat((0,s.default)(a),[d,String(E)]),reactFlightPayloadDeserializer:null!=this._reactFlightPayloadDeserializer?this._deserializeReactFlightPayloadWithLogging:null,reactFlightServerErrorHandler:this._reactFlightServerErrorHandler,treatMissingFieldsAsNull:this._treatMissingFieldsAsNull,shouldProcessClientComponents:this._shouldProcessClientComponents}),storageKey:f}},t._scheduleAsyncStoreUpdate=function(e,t){var r=this;this._completeFns.push(t),null==this._asyncStoreUpdateDisposable&&(this._asyncStoreUpdateDisposable=e((function(){r._asyncStoreUpdateDisposable=null;var e=r._runPublishQueue();r._updateOperationTracker(e);var t,n=(0,a.default)(r._completeFns);try{for(n.s();!(t=n.n()).done;){(0,t.value)()}}catch(e){n.e(e)}finally{n.f()}r._completeFns=[]})))},t._updateOperationTracker=function(e){null!=e&&e.length>0&&this._operationTracker.update(this._operation.request,new Set(e))},t._completeOperationTracker=function(){this._operationTracker.complete(this._operation.request)},t._getPublishQueueAndSaveActor=function(){return this._seenActors.add(this._actorIdentifier),this._getPublishQueue(this._actorIdentifier)},t._getActorsToVisit=function(){return 0===this._seenActors.size?new Set([this._actorIdentifier]):this._seenActors},t._runPublishQueue=function(e){var t,r=new Set,n=(0,a.default)(this._getActorsToVisit());try{for(n.s();!(t=n.n()).done;){var i=t.value;this._getPublishQueue(i).run(e).forEach((function(e){return r.add(e)}))}}catch(e){n.e(e)}finally{n.f()}return Array.from(r)},t._retainData=function(){var e,t=(0,a.default)(this._getActorsToVisit());try{for(t.s();!(e=t.n()).done;){var r=e.value;this._retainDisposables.has(r)||this._retainDisposables.set(r,this._getStore(r).retain(this._operation))}}catch(e){t.e(e)}finally{t.f()}},t._disposeRetainedData=function(){var e,t=(0,a.default)(this._retainDisposables.values());try{for(t.s();!(e=t.n()).done;){e.value.dispose()}}catch(e){t.e(e)}finally{t.f()}this._retainDisposables.clear()},t._expectOperationLoader=function(){var e=this._operationLoader;return e||O(!1,"OperationExecutor: Expected an operationLoader to be configured when using `@match`."),e},e}();function P(e,t,r,n){var a,o=e.data,s=e.errors,l=I.create(),u=y.create(t.dataID,r);l.set(t.dataID,u);var c=D.normalize(l,t,o,n);return(0,i.default)((0,i.default)({},c),{},{errors:s,isFinal:!0===(null===(a=e.extensions)||void 0===a?void 0:a.is_final)})}function L(e){var t=e.incrementalPlaceholders;null!=t&&0!==t.length&&O(!1,"OperationExecutor: optimistic responses cannot be returned for operations that use incremental data delivery (@defer, @stream, and @stream_connection).")}e.exports={execute:function(e){return new F(e)}}},function(e,t,r){"use strict";var n,i,a="undefined"!=typeof window&&"function"==typeof(null===(n=window)||void 0===n||null===(i=n.performance)||void 0===i?void 0:i.now);function o(){return a?window.performance.now():Date.now()}e.exports=function(e){var t=o(),r=e();return[o()-t,r]}},function(e,t,r){"use strict";var n=r(1),i=n(r(4)),a=n(r(16)),o=r(80),s=o.ACTOR_IDENTIFIER_FIELD_NAME,l=o.getActorIdentifierFromPayload,u=r(6),c=u.ACTOR_CHANGE,d=u.CLIENT_COMPONENT,f=u.CLIENT_EXTENSION,h=u.CONDITION,p=u.DEFER,_=u.FLIGHT_FIELD,g=u.FRAGMENT_SPREAD,v=u.INLINE_FRAGMENT,m=u.LINKED_FIELD,y=u.LINKED_HANDLE,E=u.MODULE_IMPORT,b=u.SCALAR_FIELD,R=u.SCALAR_HANDLE,I=u.STREAM,D=u.TYPE_DISCRIMINATOR,S=r(5),k=r(8),A=k.generateClientID,T=k.isClientID,O=r(13).getLocalVariables,N=r(9),F=r(11).createNormalizationSelector,P=r(21),L=P.REACT_FLIGHT_EXECUTABLE_DEFINITIONS_STORAGE_KEY,x=P.REACT_FLIGHT_TREE_STORAGE_KEY,w=P.REACT_FLIGHT_TYPE_NAME,C=P.refineToReactFlightPayloadData,M=r(2),U=M.ROOT_ID,V=M.ROOT_TYPE,q=M.TYPENAME_KEY,j=M.getArgumentValues,K=M.getHandleStorageKey,G=M.getModuleComponentKey,H=M.getModuleOperationKey,z=M.getStorageKey,Y=r(26),Q=Y.TYPE_SCHEMA_TYPE,B=Y.generateTypeID,W=r(14),J=r(0),X=r(3);var Z=function(){function e(e,t,r){this._actorIdentifier=r.actorIdentifier,this._getDataId=r.getDataID,this._handleFieldPayloads=[],this._treatMissingFieldsAsNull=r.treatMissingFieldsAsNull,this._incrementalPlaceholders=[],this._isClientExtension=!1,this._isUnmatchedAbstractType=!1,this._followupPayloads=[],this._path=r.path?(0,a.default)(r.path):[],this._recordSource=e,this._variables=t,this._reactFlightPayloadDeserializer=r.reactFlightPayloadDeserializer,this._reactFlightServerErrorHandler=r.reactFlightServerErrorHandler,this._shouldProcessClientComponents=r.shouldProcessClientComponents}var t=e.prototype;return t.normalizeResponse=function(e,t,r){var n=this._recordSource.get(t);return n||J(!1,"RelayResponseNormalizer(): Expected root record `%s` to exist.",t),this._traverseSelections(e,n,r),{errors:null,fieldPayloads:this._handleFieldPayloads,incrementalPlaceholders:this._incrementalPlaceholders,followupPayloads:this._followupPayloads,source:this._recordSource,isFinal:!1}},t._getVariableValue=function(e){return this._variables.hasOwnProperty(e)||J(!1,"RelayResponseNormalizer(): Undefined variable `%s`.",e),this._variables[e]},t._getRecordType=function(e){var t=e[q];return null==t&&J(!1,"RelayResponseNormalizer(): Expected a typename for record `%s`.",JSON.stringify(e,null,2)),t},t._traverseSelections=function(e,t,r){for(var n=0;n<e.selections.length;n++){var i=e.selections[n];switch(i.kind){case b:case m:this._normalizeField(e,i,t,r);break;case h:Boolean(this._getVariableValue(i.condition))===i.passingValue&&this._traverseSelections(i,t,r);break;case g:var a=this._variables;this._variables=O(this._variables,i.fragment.argumentDefinitions,i.args),this._traverseSelections(i.fragment,t,r),this._variables=a;break;case v:var o=i.abstractKey;if(null==o){N.getType(t)===i.type&&this._traverseSelections(i,t,r)}else{var s=r.hasOwnProperty(o),l=N.getType(t),u=B(l),k=this._recordSource.get(u);null==k&&(k=N.create(u,Q),this._recordSource.set(u,k)),N.setValue(k,o,s),s&&this._traverseSelections(i,t,r)}break;case D:var A=i.abstractKey,T=r.hasOwnProperty(A),F=N.getType(t),P=B(F),L=this._recordSource.get(P);null==L&&(L=N.create(P,Q),this._recordSource.set(P,L)),N.setValue(L,A,T);break;case y:case R:var x=i.args?j(i.args,this._variables):{},w=z(i,this._variables),C=K(i,this._variables);this._handleFieldPayloads.push({args:x,dataID:N.getDataID(t),fieldKey:w,handle:i.handle,handleKey:C,handleArgs:i.handleArgs?j(i.handleArgs,this._variables):{}});break;case E:this._normalizeModuleImport(e,i,t,r);break;case p:this._normalizeDefer(i,t,r);break;case I:this._normalizeStream(i,t,r);break;case f:var M=this._isClientExtension;this._isClientExtension=!0,this._traverseSelections(i,t,r),this._isClientExtension=M;break;case d:if(!1===this._shouldProcessClientComponents)break;this._traverseSelections(i.fragment,t,r);break;case _:if(!S.ENABLE_REACT_FLIGHT_COMPONENT_FIELD)throw new Error("Flight fields are not yet supported.");this._normalizeFlightField(e,i,t,r);break;case c:this._normalizeActorChange(e,i,t,r);break;default:J(!1,"RelayResponseNormalizer(): Unexpected ast kind `%s`.",i.kind)}}},t._normalizeDefer=function(e,t,r){var n=null===e.if||this._getVariableValue(e.if);X("boolean"==typeof n,"RelayResponseNormalizer: Expected value for @defer `if` argument to be a boolean, got `%s`.",n),!1===n?this._traverseSelections(e,t,r):this._incrementalPlaceholders.push({kind:"defer",data:r,label:e.label,path:(0,a.default)(this._path),selector:F(e,N.getDataID(t),this._variables),typeName:N.getType(t),actorIdentifier:this._actorIdentifier})},t._normalizeStream=function(e,t,r){this._traverseSelections(e,t,r);var n=null===e.if||this._getVariableValue(e.if);X("boolean"==typeof n,"RelayResponseNormalizer: Expected value for @stream `if` argument to be a boolean, got `%s`.",n),!0===n&&this._incrementalPlaceholders.push({kind:"stream",label:e.label,path:(0,a.default)(this._path),parentID:N.getDataID(t),node:e,variables:this._variables,actorIdentifier:this._actorIdentifier})},t._normalizeModuleImport=function(e,t,r,n){"object"==typeof n&&n||J(!1,"RelayResponseNormalizer: Expected data for @module to be an object.");var i=N.getType(r),o=G(t.documentName),s=n[o];N.setValue(r,o,null!=s?s:null);var l=H(t.documentName),u=n[l];N.setValue(r,l,null!=u?u:null),null!=u&&this._followupPayloads.push({kind:"ModuleImportPayload",args:t.args,data:n,dataID:N.getDataID(r),operationReference:u,path:(0,a.default)(this._path),typeName:i,variables:this._variables,actorIdentifier:this._actorIdentifier})},t._normalizeField=function(e,t,r,n){"object"==typeof n&&n||J(!1,"writeField(): Expected data for field `%s` to be an object.",t.name);var i=t.alias||t.name,a=z(t,this._variables),o=n[i];if(null==o){if(void 0===o){if(this._isClientExtension||this._isUnmatchedAbstractType)return;if(!this._treatMissingFieldsAsNull)return void X(!1,"RelayResponseNormalizer: Payload did not contain a value for field `%s: %s`. Check that you are parsing with the same query that was used to fetch the payload.",i,a)}return t.kind===b&&this._validateConflictingFieldsWithIdenticalId(r,a,null),void N.setValue(r,a,null)}t.kind===b?(this._validateConflictingFieldsWithIdenticalId(r,a,o),N.setValue(r,a,o)):t.kind===m?(this._path.push(i),t.plural?this._normalizePluralLink(t,r,a,o):this._normalizeLink(t,r,a,o),this._path.pop()):J(!1,"RelayResponseNormalizer(): Unexpected ast kind `%s` during normalization.",t.kind)},t._normalizeActorChange=function(e,t,r,n){var i,o=t.linkedField;"object"==typeof n&&n||J(!1,"_normalizeActorChange(): Expected data for field `%s` to be an object.",o.name);var u=o.alias||o.name,c=z(o,this._variables),d=n[u];if(null!=d){var f=l(d);if(null==f)return X(!1,"RelayResponseNormalizer: Payload did not contain a value for field `%s`. Check that you are parsing with the same query that was used to fetch the payload. Payload is `%s`.",s,JSON.stringify(d,null,2)),void N.setValue(r,c,null);var h=null!==(i=o.concreteType)&&void 0!==i?i:this._getRecordType(d),p=this._getDataId(d,h)||N.getLinkedRecordID(r,c)||A(N.getDataID(r),c);"string"!=typeof p&&J(!1,"RelayResponseNormalizer: Expected id on field `%s` to be a string.",c),N.setActorLinkedRecordID(r,c,f,p),this._followupPayloads.push({kind:"ActorPayload",data:d,dataID:p,path:[].concat((0,a.default)(this._path),[u]),typeName:h,variables:this._variables,node:o,actorIdentifier:f})}else{if(void 0===d){if(this._isClientExtension||this._isUnmatchedAbstractType)return;if(!this._treatMissingFieldsAsNull)return void X(!1,"RelayResponseNormalizer: Payload did not contain a value for field `%s: %s`. Check that you are parsing with the same query that was used to fetch the payload.",u,c)}N.setValue(r,c,null)}},t._normalizeFlightField=function(e,t,r,n){var a=t.alias||t.name,o=z(t,this._variables),s=n[a];if(null!=s){var l=C(s),u=this._reactFlightPayloadDeserializer;null==l&&J(!1,"RelayResponseNormalizer: Expected React Flight payload data to be an object with `status`, tree`, `queries` and `errors` properties, got `%s`.",s),"function"!=typeof u&&J(!1,"RelayResponseNormalizer: Expected reactFlightPayloadDeserializer to be a function, got `%s`.",u),l.errors.length>0&&("function"==typeof this._reactFlightServerErrorHandler?this._reactFlightServerErrorHandler(l.status,l.errors):X(!1,"RelayResponseNormalizer: Received server errors for field `%s`.\n\n%s\n%s",a,l.errors[0].message,l.errors[0].stack));var c=A(N.getDataID(r),z(t,this._variables)),d=this._recordSource.get(c);if(null==d&&(d=N.create(c,w),this._recordSource.set(c,d)),null==l.tree)return X(!1,"RelayResponseNormalizer: Expected `tree` not to be null. This typically indicates that a fatal server error prevented any Server Component rows from being written."),N.setValue(d,x,null),N.setValue(d,L,[]),void N.setLinkedRecordID(r,o,c);var f=u(l.tree);N.setValue(d,x,f);var h,p=[],_=(0,i.default)(l.queries);try{for(_.s();!(h=_.n()).done;){var g=h.value;null!=g.response.data&&this._followupPayloads.push({kind:"ModuleImportPayload",args:null,data:g.response.data,dataID:U,operationReference:g.module,path:[],typeName:V,variables:g.variables,actorIdentifier:this._actorIdentifier}),p.push({module:g.module,variables:g.variables})}}catch(e){_.e(e)}finally{_.f()}var v,m=(0,i.default)(l.fragments);try{for(m.s();!(v=m.n()).done;){var y=v.value;null!=y.response.data&&this._followupPayloads.push({kind:"ModuleImportPayload",args:null,data:y.response.data,dataID:y.__id,operationReference:y.module,path:[],typeName:y.__typename,variables:y.variables,actorIdentifier:this._actorIdentifier}),p.push({module:y.module,variables:y.variables})}}catch(e){m.e(e)}finally{m.f()}N.setValue(d,L,p),N.setLinkedRecordID(r,o,c)}else{if(void 0===s){if(this._isUnmatchedAbstractType)return;this._treatMissingFieldsAsNull||J(!1,"RelayResponseNormalizer: Payload did not contain a value for field `%s: %s`. Check that you are parsing with the same query that was used to fetch the payload.",a,o)}N.setValue(r,o,null)}},t._normalizeLink=function(e,t,r,n){var i;"object"==typeof n&&n||J(!1,"RelayResponseNormalizer: Expected data for field `%s` to be an object.",r);var a=this._getDataId(n,null!==(i=e.concreteType)&&void 0!==i?i:this._getRecordType(n))||N.getLinkedRecordID(t,r)||A(N.getDataID(t),r);"string"!=typeof a&&J(!1,"RelayResponseNormalizer: Expected id on field `%s` to be a string.",r),this._validateConflictingLinkedFieldsWithIdenticalId(t,N.getLinkedRecordID(t,r),a,r),N.setLinkedRecordID(t,r,a);var o=this._recordSource.get(a);if(o)this._validateRecordType(o,e,n);else{var s=e.concreteType||this._getRecordType(n);o=N.create(a,s),this._recordSource.set(a,o)}this._traverseSelections(e,o,n)},t._normalizePluralLink=function(e,t,r,n){var i=this;Array.isArray(n)||J(!1,"RelayResponseNormalizer: Expected data for field `%s` to be an array of objects.",r);var a=N.getLinkedRecordIDs(t,r),o=[];n.forEach((function(n,s){var l;if(null!=n){i._path.push(String(s)),"object"!=typeof n&&J(!1,"RelayResponseNormalizer: Expected elements for field `%s` to be objects.",r);var u=i._getDataId(n,null!==(l=e.concreteType)&&void 0!==l?l:i._getRecordType(n))||a&&a[s]||A(N.getDataID(t),r,s);"string"!=typeof u&&J(!1,"RelayResponseNormalizer: Expected id of elements of field `%s` to be strings.",r),o.push(u);var c=i._recordSource.get(u);if(c)i._validateRecordType(c,e,n);else{var d=e.concreteType||i._getRecordType(n);c=N.create(u,d),i._recordSource.set(u,c)}a&&i._validateConflictingLinkedFieldsWithIdenticalId(t,a[s],u,r),i._traverseSelections(e,c,n),i._path.pop()}else o.push(n)})),N.setLinkedRecordIDs(t,r,o)},t._validateRecordType=function(e,t,r){var n,i=null!==(n=t.concreteType)&&void 0!==n?n:this._getRecordType(r),a=N.getDataID(e);X(T(a)&&a!==U||N.getType(e)===i,"RelayResponseNormalizer: Invalid record `%s`. Expected %s to be consistent, but the record was assigned conflicting types `%s` and `%s`. The GraphQL server likely violated the globally unique id requirement by returning the same id for different objects.",a,q,N.getType(e),i)},t._validateConflictingFieldsWithIdenticalId=function(e,t,r){var n=N.getDataID(e),i=N.getValue(e,t);X(t===q||void 0===i||W(i,r),"RelayResponseNormalizer: Invalid record. The record contains two instances of the same id: `%s` with conflicting field, %s and its values: %s and %s. If two fields are different but share the same id, one field will overwrite the other.",n,t,i,r)},t._validateConflictingLinkedFieldsWithIdenticalId=function(e,t,r,n){X(void 0===t||t===r,"RelayResponseNormalizer: Invalid record. The record contains references to the conflicting field, %s and its id values: %s and %s. We need to make sure that the record the field points to remains consistent or one field will overwrite the other.",n,t,r)},e}();e.exports={normalize:function(e,t,r,n){var i=t.dataID,a=t.node,o=t.variables;return new Z(e,o,n).normalizeResponse(a,i,r)}}},function(e,t,r){"use strict";var n=r(32).getActorIdentifier;e.exports={ACTOR_IDENTIFIER_FIELD_NAME:"actor_key",getActorIdentifierFromPayload:function(e){if(null!=e&&"object"==typeof e&&"string"==typeof e.actor_key)return n(e.actor_key)}}},function(e,t,r){"use strict";(function(t){var n,i,a=r(51),o=r(52),s=r(83),l=r(34),u=r(20),c=r(0),d=r(3),f=void 0!==t?t:"undefined"!=typeof window?window:void 0,h=null!==(n=null==f||null===(i=f.ErrorUtils)||void 0===i?void 0:i.applyWithGuard)&&void 0!==n?n:function(e,t,r,n,i){return e.apply(t,r)},p=function(){function e(e,t,r){this._hasStoreSnapshot=!1,this._handlerProvider=t||null,this._pendingBackupRebase=!1,this._pendingData=new Set,this._pendingOptimisticUpdates=new Set,this._store=e,this._appliedOptimisticUpdates=new Set,this._gcHold=null,this._getDataID=r}var t=e.prototype;return t.applyUpdate=function(e){(this._appliedOptimisticUpdates.has(e)||this._pendingOptimisticUpdates.has(e))&&c(!1,"RelayPublishQueue: Cannot apply the same update function more than once concurrently."),this._pendingOptimisticUpdates.add(e)},t.revertUpdate=function(e){this._pendingOptimisticUpdates.has(e)?this._pendingOptimisticUpdates.delete(e):this._appliedOptimisticUpdates.has(e)&&(this._pendingBackupRebase=!0,this._appliedOptimisticUpdates.delete(e))},t.revertAll=function(){this._pendingBackupRebase=!0,this._pendingOptimisticUpdates.clear(),this._appliedOptimisticUpdates.clear()},t.commitPayload=function(e,t,r){this._pendingBackupRebase=!0,this._pendingData.add({kind:"payload",operation:e,payload:t,updater:r})},t.commitUpdate=function(e){this._pendingBackupRebase=!0,this._pendingData.add({kind:"updater",updater:e})},t.commitSource=function(e){this._pendingBackupRebase=!0,this._pendingData.add({kind:"source",source:e})},t.run=function(e){var t=0===this._appliedOptimisticUpdates&&!!this._gcHold,r=!this._pendingBackupRebase&&0===this._pendingOptimisticUpdates.size&&!t;if(d(!r,"RelayPublishQueue.run was called, but the call would have been a noop."),d(!0!==this._isRunning,"A store update was detected within another store update. Please make sure new store updates aren't being executed within an updater function for a different update."),this._isRunning=!0,r)return this._isRunning=!1,[];this._pendingBackupRebase&&this._hasStoreSnapshot&&(this._store.restore(),this._hasStoreSnapshot=!1);var n=this._commitData();return(this._pendingOptimisticUpdates.size||this._pendingBackupRebase&&this._appliedOptimisticUpdates.size)&&(this._hasStoreSnapshot||(this._store.snapshot(),this._hasStoreSnapshot=!0),this._applyUpdates()),this._pendingBackupRebase=!1,this._appliedOptimisticUpdates.size>0?this._gcHold||(this._gcHold=this._store.holdGC()):this._gcHold&&(this._gcHold.dispose(),this._gcHold=null),this._isRunning=!1,this._store.notify(e,n)},t._publishSourceFromPayload=function(e){var t=this,r=e.payload,n=e.operation,i=e.updater,l=r.source,u=r.fieldPayloads,d=new a(this._store.getSource(),l),f=new o(d,this._getDataID);if(u&&u.length&&u.forEach((function(e){var r=t._handlerProvider&&t._handlerProvider(e.handle);r||c(!1,"RelayModernEnvironment: Expected a handler to be provided for handle `%s`.",e.handle),r.update(f,e)})),i){var h=n.fragment;null==h&&c(!1,"RelayModernEnvironment: Expected a selector to be provided with updater function."),i(new s(d,f,h),_(l,h))}var p=f.getIDsMarkedForInvalidation();return this._store.publish(l,p),f.isStoreMarkedForInvalidation()},t._commitData=function(){var e=this;if(!this._pendingData.size)return!1;var t=!1;return this._pendingData.forEach((function(r){if("payload"===r.kind){var n=e._publishSourceFromPayload(r);t=t||n}else if("source"===r.kind){var i=r.source;e._store.publish(i)}else{var s=r.updater,l=u.create(),c=new a(e._store.getSource(),l),d=new o(c,e._getDataID);h(s,null,[d],null,"RelayPublishQueue:commitData"),t=t||d.isStoreMarkedForInvalidation();var f=d.getIDsMarkedForInvalidation();e._store.publish(l,f)}})),this._pendingData.clear(),t},t._applyUpdates=function(){var e=this,t=u.create(),r=new a(this._store.getSource(),t),n=new o(r,this._getDataID,this._handlerProvider),i=function(e){if(e.storeUpdater){var t=e.storeUpdater;h(t,null,[n],null,"RelayPublishQueue:applyUpdates")}else{var i=e.operation,a=e.payload,o=e.updater,l=a.source,u=a.fieldPayloads;if(l&&n.publishSource(l,u),o){var c;l&&(c=_(l,i.fragment));var d=new s(r,n,i.fragment);h(o,null,[d,c],null,"RelayPublishQueue:applyUpdates")}}};this._pendingBackupRebase&&this._appliedOptimisticUpdates.size&&this._appliedOptimisticUpdates.forEach(i),this._pendingOptimisticUpdates.size&&(this._pendingOptimisticUpdates.forEach((function(t){i(t),e._appliedOptimisticUpdates.add(t)})),this._pendingOptimisticUpdates.clear()),this._store.publish(t)},e}();function _(e,t){var n=l.read(e,t).data,i=r(18);return n&&i(n),n}e.exports=p}).call(this,r(47))},function(e,t,r){"use strict";var n=r(8).generateClientID,i=r(2).getStableStorageKey,a=r(0),o=function(){function e(e,t,r){this._dataID=r,this._mutator=t,this._source=e}var t=e.prototype;return t.copyFieldsFrom=function(e){this._mutator.copyFields(e.getDataID(),this._dataID)},t.getDataID=function(){return this._dataID},t.getType=function(){var e=this._mutator.getType(this._dataID);return null==e&&a(!1,"RelayRecordProxy: Cannot get the type of deleted record `%s`.",this._dataID),e},t.getValue=function(e,t){var r=i(e,t);return this._mutator.getValue(this._dataID,r)},t.setValue=function(e,t,r){s(e)||a(!1,"RelayRecordProxy#setValue(): Expected a scalar or array of scalars, got `%s`.",JSON.stringify(e));var n=i(t,r);return this._mutator.setValue(this._dataID,n,e),this},t.getLinkedRecord=function(e,t){var r=i(e,t),n=this._mutator.getLinkedRecordID(this._dataID,r);return null!=n?this._source.get(n):n},t.setLinkedRecord=function(t,r,n){t instanceof e||a(!1,"RelayRecordProxy#setLinkedRecord(): Expected a record, got `%s`.",t);var o=i(r,n),s=t.getDataID();return this._mutator.setLinkedRecordID(this._dataID,o,s),this},t.getOrCreateLinkedRecord=function(e,t,r){var a=this.getLinkedRecord(e,r);if(!a){var o,s=i(e,r),l=n(this.getDataID(),s);a=null!==(o=this._source.get(l))&&void 0!==o?o:this._source.create(l,t),this.setLinkedRecord(a,e,r)}return a},t.getLinkedRecords=function(e,t){var r=this,n=i(e,t),a=this._mutator.getLinkedRecordIDs(this._dataID,n);return null==a?a:a.map((function(e){return null!=e?r._source.get(e):e}))},t.setLinkedRecords=function(e,t,r){Array.isArray(e)||a(!1,"RelayRecordProxy#setLinkedRecords(): Expected records to be an array, got `%s`.",e);var n=i(t,r),o=e.map((function(e){return e&&e.getDataID()}));return this._mutator.setLinkedRecordIDs(this._dataID,n,o),this},t.invalidateRecord=function(){this._source.markIDForInvalidation(this._dataID)},e}();function s(e){return null==e||"object"!=typeof e||Array.isArray(e)&&e.every(s)}e.exports=o},function(e,t,r){"use strict";var n=r(2),i=n.ROOT_TYPE,a=n.getStorageKey,o=r(53).readUpdatableQuery_EXPERIMENTAL,s=r(0),l=function(){function e(e,t,r){this.__mutator=e,this.__recordSource=t,this._readSelector=r}var t=e.prototype;return t.create=function(e,t){return this.__recordSource.create(e,t)},t.delete=function(e){this.__recordSource.delete(e)},t.get=function(e){return this.__recordSource.get(e)},t.getRoot=function(){return this.__recordSource.getRoot()},t.getOperationRoot=function(){var e=this.__recordSource.get(this._readSelector.dataID);return e||(e=this.__recordSource.create(this._readSelector.dataID,i)),e},t._getRootField=function(e,t,r){var n=e.node.selections.find((function(e){return"LinkedField"===e.kind&&e.name===t||"RequiredField"===e.kind&&e.field.name===t}));return n&&"RequiredField"===n.kind&&(n=n.field),n&&"LinkedField"===n.kind||s(!1,"RelayRecordSourceSelectorProxy#getRootField(): Cannot find root field `%s`, no such field is defined on GraphQL document `%s`.",t,e.node.name),n.plural!==r&&s(!1,"RelayRecordSourceSelectorProxy#getRootField(): Expected root field `%s` to be %s.",t,r?"plural":"singular"),n},t.getRootField=function(e){var t=this._getRootField(this._readSelector,e,!1),r=a(t,this._readSelector.variables);return this.getOperationRoot().getLinkedRecord(r)},t.getPluralRootField=function(e){var t=this._getRootField(this._readSelector,e,!0),r=a(t,this._readSelector.variables);return this.getOperationRoot().getLinkedRecords(r)},t.invalidateStore=function(){this.__recordSource.invalidateStore()},t.readUpdatableQuery_EXPERIMENTAL=function(e,t){return o(e,t,this)},e}();e.exports=l},function(e,t,r){"use strict";var n=r(1),i=n(r(7)),a=n(r(16)),o=function(){},s=!1,l=function(){var e={style:"list-style-type: none; padding: 0; margin: 0 0 0 12px; font-style: normal"},t={style:"rgb(136, 19, 145)"},r={style:"color: #777"},n=function(e){return["span",{style:"font-style: italic"},e.__typename,["span",r,' {id: "',e.__id,'", …}']]},i=function(e){return null!=e&&"string"==typeof e.__id},o=function(e,t){this.key=e,this.value=t},s=function(t){var r=Object.keys(t).map((function(e){return["li",{},["object",{object:new o(e,t[e])}]]}));return["ol",e].concat((0,a.default)(r))};return[{header:function(e){return i(e)?n(e):null},hasBody:function(e){return!0},body:function(e){return s(e)}},{header:function(e){if(e instanceof o){var a=i(e.value)?n(e.value):null==(s=e.value)?["span",r,"undefined"]:["object",{object:s,config:l}];return["span",t,e.key,": ",a]}var s,l;return null},hasBody:function(e){return i(e.value)},body:function(e){return s(e.value)}}]};o=function(e,t){var r;return s||(s=!0,null==window.devtoolsFormatters&&(window.devtoolsFormatters=[]),Array.isArray(window.devtoolsFormatters)&&(console.info('Make sure to select "Enable custom formatters" in the Chrome Developer Tools settings, tab "Preferences" under the "Console" section.'),(r=window.devtoolsFormatters).push.apply(r,(0,a.default)(l())))),function e(t,r){var n=t.get(r);return null==n?n:new Proxy((0,i.default)({},n),{get:function(r,n){var i=r[n];if(null==i)return i;if("object"==typeof i){if("string"==typeof i.__ref)return e(t,i.__ref);if(Array.isArray(i.__refs))return i.__refs.map((function(r){return e(t,r)}))}return i}})}(e.getStore().getSource(),null!=t?t:"client:root")},e.exports={inspect:o}},function(e,t,r){"use strict";var n=r(1),i=n(r(4)),a=n(r(19)),o=r(32),s=o.INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE,l=o.assertInternalActorIndentifier,u=r(18),c=r(5),d=r(86),f=r(87),h=r(48),p=r(9),_=r(89),g=r(34),v=r(90),m=r(21),y=r(91),E=r(2),b=r(2),R=b.ROOT_ID,I=b.ROOT_TYPE,D=r(54).RecordResolverCache,S=r(0),k=function(){function e(e,t){var r,n,i,o,s,l=this;(0,a.default)(this,"_gcStep",(function(){l._gcRun&&(l._gcRun.next().done?l._gcRun=null:l._gcScheduler(l._gcStep))}));for(var u=e.getRecordIDs(),c=0;c<u.length;c++){var f=e.get(u[c]);f&&p.freeze(f)}this._currentWriteEpoch=0,this._gcHoldCounter=0,this._gcReleaseBufferSize=null!==(r=null==t?void 0:t.gcReleaseBufferSize)&&void 0!==r?r:10,this._gcRun=null,this._gcScheduler=null!==(n=null==t?void 0:t.gcScheduler)&&void 0!==n?n:d,this._getDataID=null!==(i=null==t?void 0:t.getDataID)&&void 0!==i?i:h,this._globalInvalidationEpoch=null,this._invalidationSubscriptions=new Set,this._invalidatedRecordIDs=new Set,this.__log=null!==(o=null==t?void 0:t.log)&&void 0!==o?o:null,this._queryCacheExpirationTime=null==t?void 0:t.queryCacheExpirationTime,this._operationLoader=null!==(s=null==t?void 0:t.operationLoader)&&void 0!==s?s:null,this._optimisticSource=null,this._recordSource=e,this._releaseBuffer=[],this._roots=new Map,this._shouldScheduleGC=!1,this._resolverCache=new D((function(){return l._getMutableRecordSource()})),this._storeSubscriptions=new y(null==t?void 0:t.log,this._resolverCache),this._updatedRecordIDs=new Set,this._shouldProcessClientComponents=null==t?void 0:t.shouldProcessClientComponents,function(e){if(!e.has(R)){var t=p.create(R,I);e.set(R,t)}}(this._recordSource)}var t=e.prototype;return t.getSource=function(){var e;return null!==(e=this._optimisticSource)&&void 0!==e?e:this._recordSource},t._getMutableRecordSource=function(){var e;return null!==(e=this._optimisticSource)&&void 0!==e?e:this._recordSource},t.check=function(e,t){var r,n,i,a,o=e.root,u=this._getMutableRecordSource(),c=this._globalInvalidationEpoch,d=this._roots.get(e.request.identifier),h=null!=d?d.epoch:null;if(null!=c&&(null==h||h<=c))return{status:"stale"};var p=null!==(r=null==t?void 0:t.handlers)&&void 0!==r?r:[],_=null!==(n=null==t?void 0:t.getSourceForActor)&&void 0!==n?n:function(e){return l(e),u},g=null!==(i=null==t?void 0:t.getTargetForActor)&&void 0!==i?i:function(e){return l(e),u};return function(e,t,r,n){var i=e.mostRecentlyInvalidatedAt,a=e.status;if("number"==typeof i&&(null==t||i>t))return{status:"stale"};if("missing"===a)return{status:"missing"};if(null!=r&&null!=n){if(r<=Date.now()-n)return{status:"stale"}}return{status:"available",fetchTime:null!=r?r:null}}(f.check(_,g,null!==(a=null==t?void 0:t.defaultActorIdentifier)&&void 0!==a?a:s,o,p,this._operationLoader,this._getDataID,this._shouldProcessClientComponents),h,null==d?void 0:d.fetchTime,this._queryCacheExpirationTime)},t.retain=function(e){var t=this,r=e.request.identifier,n=!1,i=this._roots.get(r);return null!=i?(0===i.refCount&&(this._releaseBuffer=this._releaseBuffer.filter((function(e){return e!==r}))),i.refCount+=1):this._roots.set(r,{operation:e,refCount:1,epoch:null,fetchTime:null}),{dispose:function(){if(!n){n=!0;var e=t._roots.get(r);if(null!=e&&(e.refCount--,0===e.refCount)){var i=t._queryCacheExpirationTime;if(null!=e.fetchTime&&null!=i&&e.fetchTime<=Date.now()-i)t._roots.delete(r),t.scheduleGC();else if(t._releaseBuffer.push(r),t._releaseBuffer.length>t._gcReleaseBufferSize){var a=t._releaseBuffer.shift();t._roots.delete(a),t.scheduleGC()}}}}}},t.lookup=function(e){var t=this.getSource(),r=g.read(t,e,this._resolverCache);return u(r),r},t.notify=function(e,t){var r=this,n=this.__log;null!=n&&n({name:"store.notify.start",sourceOperation:e}),this._currentWriteEpoch++,!0===t&&(this._globalInvalidationEpoch=this._currentWriteEpoch),c.ENABLE_RELAY_RESOLVERS&&this._resolverCache.invalidateDataIDs(this._updatedRecordIDs);var i=this.getSource(),a=[];if(this._storeSubscriptions.updateSubscriptions(i,this._updatedRecordIDs,a,e),this._invalidationSubscriptions.forEach((function(e){r._updateInvalidationSubscription(e,!0===t)})),null!=n&&n({name:"store.notify.complete",sourceOperation:e,updatedRecordIDs:this._updatedRecordIDs,invalidatedRecordIDs:this._invalidatedRecordIDs}),this._updatedRecordIDs.clear(),this._invalidatedRecordIDs.clear(),null!=e){var o=e.request.identifier,s=this._roots.get(o);if(null!=s)s.epoch=this._currentWriteEpoch,s.fetchTime=Date.now();else if("query"===e.request.node.params.operationKind&&this._gcReleaseBufferSize>0&&this._releaseBuffer.length<this._gcReleaseBufferSize){var l={operation:e,refCount:0,epoch:this._currentWriteEpoch,fetchTime:Date.now()};this._releaseBuffer.push(o),this._roots.set(o,l)}}return a},t.publish=function(e,t){var r=this._getMutableRecordSource();!function(e,t,r,n,i,a){n&&n.forEach((function(n){var i,o=e.get(n),s=t.get(n);null!==s&&((i=null!=o?p.clone(o):null!=s?p.clone(s):null)&&(p.setValue(i,E.INVALIDATED_AT_KEY,r),a.add(n),e.set(n,i)))}));for(var o=t.getRecordIDs(),s=0;s<o.length;s++){var l=o[s],u=t.get(l),c=e.get(l);if(u&&p.freeze(u),u&&c){var d=p.getType(c)===m.REACT_FLIGHT_TYPE_NAME?u:p.update(c,u);d!==c&&(p.freeze(d),i.add(l),e.set(l,d))}else null===u?(e.delete(l),null!==c&&i.add(l)):u&&(e.set(l,u),i.add(l))}}(r,e,this._currentWriteEpoch+1,t,this._updatedRecordIDs,this._invalidatedRecordIDs);var n=this.__log;null!=n&&n({name:"store.publish",source:e,optimistic:r===this._optimisticSource})},t.subscribe=function(e,t){return this._storeSubscriptions.subscribe(e,t)},t.holdGC=function(){var e=this;this._gcRun&&(this._gcRun=null,this._shouldScheduleGC=!0),this._gcHoldCounter++;return{dispose:function(){e._gcHoldCounter>0&&(e._gcHoldCounter--,0===e._gcHoldCounter&&e._shouldScheduleGC&&(e.scheduleGC(),e._shouldScheduleGC=!1))}}},t.toJSON=function(){return"RelayModernStore()"},t.getEpoch=function(){return this._currentWriteEpoch},t.__getUpdatedRecordIDs=function(){return this._updatedRecordIDs},t.lookupInvalidationState=function(e){var t=this,r=new Map;return e.forEach((function(e){var n,i=t.getSource().get(e);r.set(e,null!==(n=p.getInvalidationEpoch(i))&&void 0!==n?n:null)})),r.set("global",this._globalInvalidationEpoch),{dataIDs:e,invalidations:r}},t.checkInvalidationState=function(e){var t=this.lookupInvalidationState(e.dataIDs).invalidations,r=e.invalidations;if(t.get("global")!==r.get("global"))return!0;var n,a=(0,i.default)(e.dataIDs);try{for(a.s();!(n=a.n()).done;){var o=n.value;if(t.get(o)!==r.get(o))return!0}}catch(e){a.e(e)}finally{a.f()}return!1},t.subscribeToInvalidationState=function(e,t){var r=this,n={callback:t,invalidationState:e};return this._invalidationSubscriptions.add(n),{dispose:function(){r._invalidationSubscriptions.delete(n)}}},t._updateInvalidationSubscription=function(e,t){var r=this,n=e.callback,i=e.invalidationState.dataIDs;(t||i.some((function(e){return r._invalidatedRecordIDs.has(e)})))&&n()},t.snapshot=function(){null!=this._optimisticSource&&S(!1,"RelayModernStore: Unexpected call to snapshot() while a previous snapshot exists.");var e=this.__log;null!=e&&e({name:"store.snapshot"}),this._storeSubscriptions.snapshotSubscriptions(this.getSource()),this._gcRun&&(this._gcRun=null,this._shouldScheduleGC=!0),this._optimisticSource=_.create(this.getSource())},t.restore=function(){null==this._optimisticSource&&S(!1,"RelayModernStore: Unexpected call to restore(), expected a snapshot to exist (make sure to call snapshot()).");var e=this.__log;null!=e&&e({name:"store.restore"}),this._optimisticSource=null,this._shouldScheduleGC&&this.scheduleGC(),this._storeSubscriptions.restoreSubscriptions()},t.scheduleGC=function(){this._gcHoldCounter>0?this._shouldScheduleGC=!0:this._gcRun||(this._gcRun=this._collect(),this._gcScheduler(this._gcStep))},t.__gc=function(){if(null==this._optimisticSource)for(var e=this._collect();!e.next().done;);},t._collect=function*(){e:for(;;){var e,t=this._currentWriteEpoch,r=new Set,n=(0,i.default)(this._roots.values());try{for(n.s();!(e=n.n()).done;){var a=e.value.operation.root;if(v.mark(this._recordSource,a,r,this._operationLoader,this._shouldProcessClientComponents),yield,t!==this._currentWriteEpoch)continue e}}catch(e){n.e(e)}finally{n.f()}var o=this.__log;if(null!=o&&o({name:"store.gc",references:r}),0===r.size)this._recordSource.clear();else for(var s=this._recordSource.getRecordIDs(),l=0;l<s.length;l++){var u=s[l];r.has(u)||this._recordSource.remove(u)}return}},e}();e.exports=k},function(e,t,r){"use strict";var n=Promise.resolve();function i(e){setTimeout((function(){throw e}),0)}e.exports=function(e){n.then(e).catch(i)}},function(e,t,r){"use strict";var n=r(1)(r(4)),i=r(51),a=r(52),o=r(33),s=r(6),l=r(5),u=r(8).isClientID,c=r(56),d=r(88),f=r(13).getLocalVariables,h=r(9),p=r(25),_=p.EXISTENT,g=p.UNKNOWN,v=r(21),m=r(2),y=r(26).generateTypeID,E=r(0),b=s.ACTOR_CHANGE,R=s.CONDITION,I=s.CLIENT_COMPONENT,D=s.CLIENT_EXTENSION,S=s.DEFER,k=s.FLIGHT_FIELD,A=s.FRAGMENT_SPREAD,T=s.INLINE_FRAGMENT,O=s.LINKED_FIELD,N=s.LINKED_HANDLE,F=s.MODULE_IMPORT,P=s.SCALAR_FIELD,L=s.SCALAR_HANDLE,x=s.STREAM,w=s.TYPE_DISCRIMINATOR,C=m.ROOT_ID,M=m.getModuleOperationKey,U=m.getStorageKey,V=m.getArgumentValues;var q=function(){function e(e,t,r,n,i,a,o,s){this._getSourceForActor=e,this._getTargetForActor=t,this._getDataID=o,this._source=e(r),this._mutatorRecordSourceProxyCache=new Map;var l=this._getMutatorAndRecordProxyForActor(r),u=l[0],c=l[1];this._mostRecentlyInvalidatedAt=null,this._handlers=i,this._mutator=u,this._operationLoader=null!=a?a:null,this._recordSourceProxy=c,this._recordWasMissing=!1,this._variables=n,this._shouldProcessClientComponents=s}var t=e.prototype;return t._getMutatorAndRecordProxyForActor=function(e){var t=this._mutatorRecordSourceProxyCache.get(e);if(null==t){var r=this._getTargetForActor(e),n=new i(this._getSourceForActor(e),r);t=[n,new a(n,this._getDataID)],this._mutatorRecordSourceProxyCache.set(e,t)}return t},t.check=function(e,t){return this._traverse(e,t),!0===this._recordWasMissing?{status:"missing",mostRecentlyInvalidatedAt:this._mostRecentlyInvalidatedAt}:{status:"available",mostRecentlyInvalidatedAt:this._mostRecentlyInvalidatedAt}},t._getVariableValue=function(e){return this._variables.hasOwnProperty(e)||E(!1,"RelayAsyncLoader(): Undefined variable `%s`.",e),this._variables[e]},t._handleMissing=function(){this._recordWasMissing=!0},t._getDataForHandlers=function(e,t){return{args:e.args?V(e.args,this._variables):{},record:this._source.get(t)}},t._handleMissingScalarField=function(e,t){if("id"!==e.name||null!=e.alias||!u(t)){var r,i=this._getDataForHandlers(e,t),a=i.args,o=i.record,s=(0,n.default)(this._handlers);try{for(s.s();!(r=s.n()).done;){var l=r.value;if("scalar"===l.kind){var c=l.handle(e,o,a,this._recordSourceProxy);if(void 0!==c)return c}}}catch(e){s.e(e)}finally{s.f()}this._handleMissing()}},t._handleMissingLinkField=function(e,t){var r,i=this._getDataForHandlers(e,t),a=i.args,o=i.record,s=(0,n.default)(this._handlers);try{for(s.s();!(r=s.n()).done;){var l=r.value;if("linked"===l.kind){var u=l.handle(e,o,a,this._recordSourceProxy);if(void 0!==u&&(null===u||this._mutator.getStatus(u)===_))return u}}}catch(e){s.e(e)}finally{s.f()}this._handleMissing()},t._handleMissingPluralLinkField=function(e,t){var r,i=this,a=this._getDataForHandlers(e,t),o=a.args,s=a.record,l=(0,n.default)(this._handlers);try{for(l.s();!(r=l.n()).done;){var u=r.value;if("pluralLinked"===u.kind){var c=u.handle(e,s,o,this._recordSourceProxy);if(null!=c){if(c.every((function(e){return null!=e&&i._mutator.getStatus(e)===_})))return c}else if(null===c)return null}}}catch(e){l.e(e)}finally{l.f()}this._handleMissing()},t._traverse=function(e,t){var r=this._mutator.getStatus(t);if(r===g&&this._handleMissing(),r===_){var n=this._source.get(t),i=h.getInvalidationEpoch(n);null!=i&&(this._mostRecentlyInvalidatedAt=null!=this._mostRecentlyInvalidatedAt?Math.max(this._mostRecentlyInvalidatedAt,i):i),this._traverseSelections(e.selections,t)}},t._traverseSelections=function(e,t){var r=this;e.forEach((function(n){switch(n.kind){case P:r._checkScalar(n,t);break;case O:n.plural?r._checkPluralLink(n,t):r._checkLink(n,t);break;case b:r._checkActorChange(n.linkedField,t);break;case R:Boolean(r._getVariableValue(n.condition))===n.passingValue&&r._traverseSelections(n.selections,t);break;case T:var i=n.abstractKey;if(null==i){r._mutator.getType(t)===n.type&&r._traverseSelections(n.selections,t)}else{var a=r._mutator.getType(t);null==a&&E(!1,"DataChecker: Expected record `%s` to have a known type",t);var o=y(a),s=r._mutator.getValue(o,i);!0===s?r._traverseSelections(n.selections,t):null==s&&r._handleMissing()}break;case N:var u=c(n,e,r._variables);u.plural?r._checkPluralLink(u,t):r._checkLink(u,t);break;case L:var h=d(n,e,r._variables);r._checkScalar(h,t);break;case F:r._checkModuleImport(n,t);break;case S:case x:r._traverseSelections(n.selections,t);break;case A:var p=r._variables;r._variables=f(r._variables,n.fragment.argumentDefinitions,n.args),r._traverseSelections(n.fragment.selections,t),r._variables=p;break;case D:var _=r._recordWasMissing;r._traverseSelections(n.selections,t),r._recordWasMissing=_;break;case w:var g=n.abstractKey,v=r._mutator.getType(t);null==v&&E(!1,"DataChecker: Expected record `%s` to have a known type",t);var m=y(v);null==r._mutator.getValue(m,g)&&r._handleMissing();break;case k:if(!l.ENABLE_REACT_FLIGHT_COMPONENT_FIELD)throw new Error("Flight fields are not yet supported.");r._checkFlightField(n,t);break;case I:if(!1===r._shouldProcessClientComponents)break;r._traverseSelections(n.fragment.selections,t);break;default:E(!1,"RelayAsyncLoader(): Unexpected ast kind `%s`.",n.kind)}}))},t._checkModuleImport=function(e,t){var r=this._operationLoader;null===r&&E(!1,"DataChecker: Expected an operationLoader to be configured when using `@module`.");var n=M(e.documentName),i=this._mutator.getValue(t,n);if(null!=i){var a=r.get(i);if(null!=a){var s=o(a),l=this._variables;this._variables=f(this._variables,s.argumentDefinitions,e.args),this._traverse(s,t),this._variables=l}else this._handleMissing()}else void 0===i&&this._handleMissing()},t._checkScalar=function(e,t){var r=U(e,this._variables),n=this._mutator.getValue(t,r);void 0===n&&void 0!==(n=this._handleMissingScalarField(e,t))&&this._mutator.setValue(t,r,n)},t._checkLink=function(e,t){var r=U(e,this._variables),n=this._mutator.getLinkedRecordID(t,r);void 0===n&&(null!=(n=this._handleMissingLinkField(e,t))?this._mutator.setLinkedRecordID(t,r,n):null===n&&this._mutator.setValue(t,r,null)),null!=n&&this._traverse(e,n)},t._checkPluralLink=function(e,t){var r=this,n=U(e,this._variables),i=this._mutator.getLinkedRecordIDs(t,n);void 0===i&&(null!=(i=this._handleMissingPluralLinkField(e,t))?this._mutator.setLinkedRecordIDs(t,n,i):null===i&&this._mutator.setValue(t,n,null)),i&&i.forEach((function(t){null!=t&&r._traverse(e,t)}))},t._checkActorChange=function(e,t){var r=U(e,this._variables),n=this._source.get(t),i=null!=n?h.getActorLinkedRecordID(n,r):n;if(null==i)void 0===i&&this._handleMissing();else{var a=i[0],o=i[1],s=this._source,l=this._mutator,u=this._recordSourceProxy,c=this._getMutatorAndRecordProxyForActor(a),d=c[0],f=c[1];this._source=this._getSourceForActor(a),this._mutator=d,this._recordSourceProxy=f,this._traverse(e,o),this._source=s,this._mutator=l,this._recordSourceProxy=u}},t._checkFlightField=function(e,t){var r=U(e,this._variables),i=this._mutator.getLinkedRecordID(t,r);if(null==i)return void 0===i?void this._handleMissing():void 0;var a=this._mutator.getValue(i,v.REACT_FLIGHT_TREE_STORAGE_KEY),s=this._mutator.getValue(i,v.REACT_FLIGHT_EXECUTABLE_DEFINITIONS_STORAGE_KEY);if(null!=a&&Array.isArray(s)){var l=this._operationLoader;null===l&&E(!1,"DataChecker: Expected an operationLoader to be configured when using React Flight.");var u,c=this._variables,d=(0,n.default)(s);try{for(d.s();!(u=d.n()).done;){var f=u.value;this._variables=f.variables;var h=l.get(f.module);if(null!=h){var p=o(h);this._traverseSelections(p.selections,C)}else this._handleMissing()}}catch(e){d.e(e)}finally{d.f()}this._variables=c}else this._handleMissing()},e}();e.exports={check:function(e,t,r,n,i,a,o,s){var l=n.dataID,u=n.node,c=n.variables;return new q(e,t,r,c,i,a,o,s).check(u,l)}}},function(e,t,r){"use strict";var n=r(6).SCALAR_FIELD,i=r(2).getHandleStorageKey,a=r(14),o=r(0);e.exports=function(e,t,r){var s=t.find((function(t){return t.kind===n&&t.name===e.name&&t.alias===e.alias&&a(t.args,e.args)}));s&&s.kind===n||o(!1,"cloneRelayScalarHandleSourceField: Expected a corresponding source field for handle `%s`.",e.handle);var l=i(e,r);return{kind:"ScalarField",alias:s.alias,name:l,storageKey:l,args:null}}},function(e,t,r){"use strict";var n=r(1)(r(7)),i=r(20),a=Object.freeze({__UNPUBLISH_RECORD_SENTINEL:!0}),o=function(){function e(e){this._base=e,this._sink=i.create()}var t=e.prototype;return t.has=function(e){return this._sink.has(e)?this._sink.get(e)!==a:this._base.has(e)},t.get=function(e){if(this._sink.has(e)){var t=this._sink.get(e);return t===a?void 0:t}return this._base.get(e)},t.getStatus=function(e){var t=this.get(e);return void 0===t?"UNKNOWN":null===t?"NONEXISTENT":"EXISTENT"},t.clear=function(){this._base=i.create(),this._sink.clear()},t.delete=function(e){this._sink.delete(e)},t.remove=function(e){this._sink.set(e,a)},t.set=function(e,t){this._sink.set(e,t)},t.getRecordIDs=function(){return Object.keys(this.toJSON())},t.size=function(){return Object.keys(this.toJSON()).length},t.toJSON=function(){var e=this,t=(0,n.default)({},this._base.toJSON());return this._sink.getRecordIDs().forEach((function(r){var n=e.get(r);void 0===n?delete t[r]:t[r]=n})),t},e}();e.exports={create:function(e){return new o(e)}}},function(e,t,r){"use strict";var n=r(1)(r(4)),i=r(33),a=r(6),o=r(5),s=r(56),l=r(13).getLocalVariables,u=r(9),c=r(21),d=r(2),f=r(26).generateTypeID,h=r(0),p=a.ACTOR_CHANGE,_=a.CONDITION,g=a.CLIENT_COMPONENT,v=a.CLIENT_EXTENSION,m=a.DEFER,y=a.FLIGHT_FIELD,E=a.FRAGMENT_SPREAD,b=a.INLINE_FRAGMENT,R=a.LINKED_FIELD,I=a.MODULE_IMPORT,D=a.LINKED_HANDLE,S=a.SCALAR_FIELD,k=a.SCALAR_HANDLE,A=a.STREAM,T=a.TYPE_DISCRIMINATOR,O=d.ROOT_ID,N=d.getStorageKey,F=d.getModuleOperationKey;var P=function(){function e(e,t,r,n,i){this._operationLoader=null!=n?n:null,this._operationName=null,this._recordSource=e,this._references=r,this._variables=t,this._shouldProcessClientComponents=i}var t=e.prototype;return t.mark=function(e,t){"Operation"!==e.kind&&"SplitOperation"!==e.kind||(this._operationName=e.name),this._traverse(e,t)},t._traverse=function(e,t){this._references.add(t);var r=this._recordSource.get(t);null!=r&&this._traverseSelections(e.selections,r)},t._getVariableValue=function(e){return this._variables.hasOwnProperty(e)||h(!1,"RelayReferenceMarker(): Undefined variable `%s`.",e),this._variables[e]},t._traverseSelections=function(e,t){var r=this;e.forEach((function(n){switch(n.kind){case p:r._traverseLink(n.linkedField,t);break;case R:n.plural?r._traversePluralLink(n,t):r._traverseLink(n,t);break;case _:Boolean(r._getVariableValue(n.condition))===n.passingValue&&r._traverseSelections(n.selections,t);break;case b:if(null==n.abstractKey){var i=u.getType(t);null!=i&&i===n.type&&r._traverseSelections(n.selections,t)}else{var a=u.getType(t),c=f(a);r._references.add(c),r._traverseSelections(n.selections,t)}break;case E:var d=r._variables;r._variables=l(r._variables,n.fragment.argumentDefinitions,n.args),r._traverseSelections(n.fragment.selections,t),r._variables=d;break;case D:var O=s(n,e,r._variables);O.plural?r._traversePluralLink(O,t):r._traverseLink(O,t);break;case m:case A:r._traverseSelections(n.selections,t);break;case S:case k:break;case T:var N=u.getType(t),F=f(N);r._references.add(F);break;case I:r._traverseModuleImport(n,t);break;case v:r._traverseSelections(n.selections,t);break;case y:if(!o.ENABLE_REACT_FLIGHT_COMPONENT_FIELD)throw new Error("Flight fields are not yet supported.");r._traverseFlightField(n,t);break;case g:if(!1===r._shouldProcessClientComponents)break;r._traverseSelections(n.fragment.selections,t);break;default:h(!1,"RelayReferenceMarker: Unknown AST node `%s`.",n)}}))},t._traverseModuleImport=function(e,t){var r,n=this._operationLoader;null===n&&h(!1,"RelayReferenceMarker: Expected an operationLoader to be configured when using `@module`. Could not load fragment `%s` in operation `%s`.",e.fragmentName,null!==(r=this._operationName)&&void 0!==r?r:"(unknown)");var a=F(e.documentName),o=u.getValue(t,a);if(null!=o){var s=n.get(o);if(null!=s){var c=i(s),d=this._variables;this._variables=l(this._variables,c.argumentDefinitions,e.args),this._traverseSelections(c.selections,t),this._variables=d}}},t._traverseLink=function(e,t){var r=N(e,this._variables),n=u.getLinkedRecordID(t,r);null!=n&&this._traverse(e,n)},t._traversePluralLink=function(e,t){var r=this,n=N(e,this._variables),i=u.getLinkedRecordIDs(t,n);null!=i&&i.forEach((function(t){null!=t&&r._traverse(e,t)}))},t._traverseFlightField=function(e,t){var r=N(e,this._variables),a=u.getLinkedRecordID(t,r);if(null!=a){this._references.add(a);var o=this._recordSource.get(a);if(null!=o){var s=u.getValue(o,c.REACT_FLIGHT_EXECUTABLE_DEFINITIONS_STORAGE_KEY);if(Array.isArray(s)){var l=this._operationLoader;null===l&&h(!1,"DataChecker: Expected an operationLoader to be configured when using React Flight");var d,f=this._variables,p=(0,n.default)(s);try{for(p.s();!(d=p.n()).done;){var _=d.value;this._variables=_.variables;var g=_.module,v=l.get(g);if(null!=v){var m=i(v);this._traverse(m,O)}}}catch(e){p.e(e)}finally{p.f()}this._variables=f}}}},e}();e.exports={mark:function(e,t,r,n,i){var a=t.dataID,o=t.node,s=t.variables;new P(e,s,r,n,i).mark(o,a)}}},function(e,t,r){"use strict";var n=r(18),i=r(24),a=r(5),o=r(92),s=r(34),l=function(){function e(e,t){this._subscriptions=new Set,this.__log=e,this._resolverCache=t}var t=e.prototype;return t.subscribe=function(e,t){var r=this,n={backup:null,callback:t,snapshot:e,stale:!1};return this._subscriptions.add(n),{dispose:function(){r._subscriptions.delete(n)}}},t.snapshotSubscriptions=function(e){var t=this;this._subscriptions.forEach((function(r){if(r.stale){var n=r.snapshot,a=s.read(e,n.selector,t._resolverCache),o=i(n.data,a.data);a.data=o,r.backup=a}else r.backup=r.snapshot}))},t.restoreSubscriptions=function(){this._subscriptions.forEach((function(e){var t=e.backup;e.backup=null,t?(t.data!==e.snapshot.data&&(e.stale=!0),e.snapshot={data:e.snapshot.data,isMissingData:t.isMissingData,missingClientEdges:t.missingClientEdges,seenRecords:t.seenRecords,selector:t.selector,missingRequiredFields:t.missingRequiredFields,relayResolverErrors:t.relayResolverErrors}):e.stale=!0}))},t.updateSubscriptions=function(e,t,r,n){var i=this,a=0!==t.size;this._subscriptions.forEach((function(o){var s=i._updateSubscription(e,o,t,a,n);null!=s&&r.push(s)}))},t._updateSubscription=function(e,t,r,l,u){var c=t.backup,d=t.callback,f=t.snapshot,h=t.stale,p=l&&o(f.seenRecords,r);if(h||p){var _=p||!c?s.read(e,f.selector,this._resolverCache):c;return _={data:i(f.data,_.data),isMissingData:_.isMissingData,missingClientEdges:_.missingClientEdges,seenRecords:_.seenRecords,selector:_.selector,missingRequiredFields:_.missingRequiredFields,relayResolverErrors:_.relayResolverErrors},n(_),t.snapshot=_,t.stale=!1,_.data!==f.data?(this.__log&&a.ENABLE_NOTIFY_SUBSCRIPTION&&this.__log({name:"store.notify.subscription",sourceOperation:u,snapshot:f,nextSnapshot:_}),d(_),f.selector.owner):void 0}},e}();e.exports=l},function(e,t,r){"use strict";var n=Symbol.iterator;e.exports=function(e,t){for(var r=e[n](),i=r.next();!i.done;){var a=i.value;if(t.has(a))return!0;i=r.next()}return!1}},function(e,t,r){"use strict";var n=r(23),i=r(10).getRequest,a=r(12).createOperationDescriptor,o=r(11).createReaderSelector,s=r(3);e.exports=function(e,t){var r=i(t.subscription);if("subscription"!==r.params.operationKind)throw new Error("requestSubscription: Must use Subscription operation");var l=t.configs,u=t.onCompleted,c=t.onError,d=t.onNext,f=t.variables,h=t.cacheConfig,p=a(r,f,h);s(!(t.updater&&l),"requestSubscription: Expected only one of `updater` and `configs` to be provided");var _=(l?n.convert(l,r,null,t.updater):t).updater;return{dispose:e.executeSubscription({operation:p,updater:_}).subscribe({next:function(t){if(null!=d){var r,n,i,a,s=p.fragment;if(Array.isArray(t))r=null===(n=t[0])||void 0===n||null===(i=n.extensions)||void 0===i?void 0:i.__relay_subscription_root_id;else r=null===(a=t.extensions)||void 0===a?void 0:a.__relay_subscription_root_id;"string"==typeof r&&(s=o(s.node,r,s.variables,s.owner));var l=e.lookup(s).data;d(l)}},error:c,complete:u}).unsubscribe}}},function(e,t,r){"use strict";var n=r(1)(r(7)),i=r(2),a=i.getModuleComponentKey,o=i.getModuleOperationKey;e.exports=function(e,t,r,i){var s=(0,n.default)({},i);return s[a(e)]=r,s[o(e)]=t,s}},function(e,t,r){"use strict";var n=r(11),i=n.getDataIDsFromFragment,a=n.getSelector,o=n.getVariablesFromFragment,s=r(96),l=r(5),u=r(17),c=r(35).intern;e.exports=function(e,t){var r=a(e,t),n=null==r?"null":"SingularReaderSelector"===r.kind?r.owner.identifier:"["+r.selectors.map((function(e){return e.owner.identifier})).join(",")+"]",d=o(e,t),f=i(e,t);if(l.ENABLE_GETFRAGMENTIDENTIFIER_OPTIMIZATION){var h=void 0===f?"missing":null==f?"null":Array.isArray(f)?"["+f.join(",")+"]":f;return h=l.STRING_INTERN_LEVEL<=1?h:c(h,l.MAX_DATA_ID_LENGTH),n+"/"+e.name+"/"+(null==d||s(d)?"{}":JSON.stringify(u(d)))+"/"+h}var p,_=null!==(p=JSON.stringify(f))&&void 0!==p?p:"missing";return _=l.STRING_INTERN_LEVEL<=1?_:c(_,l.MAX_DATA_ID_LENGTH),n+"/"+e.name+"/"+JSON.stringify(u(d))+"/"+_}},function(e,t,r){"use strict";var n=Object.prototype.hasOwnProperty;e.exports=function(e){for(var t in e)if(n.call(e,t))return!1;return!0}},function(e,t,r){"use strict";var n=r(57),i=r(0);e.exports=function(e,t){var r,a,o=n(e,t),s=o.refetchableRequest,l=o.refetchMetadata,u=l.connection;null==u&&i(!1,"Relay: getPaginationMetadata(): Expected fragment `%s` to include a connection when using `%s`. Did you forget to add a @connection directive to the connection field in the fragment?",t,e.name);var c=u.path,d=(null!==(r=null===(a=e.metadata)||void 0===a?void 0:a.connection)&&void 0!==r?r:[])[0];null==d&&i(!1,"Relay: getPaginationMetadata(): Expected fragment `%s` to include a connection when using `%s`. Did you forget to add a @connection directive to the connection field in the fragment?",t,e.name);var f=l.identifierField;return null!=f&&"string"!=typeof f&&i(!1,"Relay: getRefetchMetadata(): Expected `identifierField` to be a string."),{connectionPathInFragmentData:c,identifierField:f,paginationRequest:s,paginationMetadata:u,stream:!0===d.stream}}},function(e,t,r){"use strict";var n=r(1),i=n(r(19)),a=n(r(7)),o=r(0),s=r(3);e.exports=function(e,t,r,n,l,u){var c,d=u.backward,f=u.forward;if("backward"===e){var h;(null==d||null==d.count||null==d.cursor)&&o(!1,"Relay: Expected backward pagination metadata to be available. If you're seeing this, this is likely a bug in Relay."),s(!l.hasOwnProperty(d.cursor),"Relay: `UNSTABLE_extraVariables` provided by caller should not contain cursor variable `%s`. This variable is automatically determined by Relay.",d.cursor),s(!l.hasOwnProperty(d.count),"Relay: `UNSTABLE_extraVariables` provided by caller should not contain count variable `%s`. This variable is automatically determined by Relay.",d.count);var p=(0,a.default)((0,a.default)((0,a.default)({},n),l),{},(h={},(0,i.default)(h,d.cursor,r),(0,i.default)(h,d.count,t),h));return f&&f.cursor&&(p[f.cursor]=null),f&&f.count&&(p[f.count]=null),p}(null==f||null==f.count||null==f.cursor)&&o(!1,"Relay: Expected forward pagination metadata to be available. If you're seeing this, this is likely a bug in Relay."),s(!l.hasOwnProperty(f.cursor),"Relay: `UNSTABLE_extraVariables` provided by caller should not contain cursor variable `%s`. This variable is automatically determined by Relay.",f.cursor),s(!l.hasOwnProperty(f.count),"Relay: `UNSTABLE_extraVariables` provided by caller should not contain count variable `%s`. This variable is automatically determined by Relay.",f.count);var _=(0,a.default)((0,a.default)((0,a.default)({},n),l),{},(c={},(0,i.default)(c,f.cursor,r),(0,i.default)(c,f.count,t),c));return d&&d.cursor&&(_[d.cursor]=null),d&&d.count&&(_[d.count]=null),_}},function(e,t,r){"use strict";var n=r(1)(r(4)),i=r(0);e.exports=function(e,t){var r,a=e,o=(0,n.default)(t);try{for(o.s();!(r=o.n()).done;){var s=r.value;if(null==a)return null;"number"==typeof s?(Array.isArray(a)||i(!1,"Relay: Expected an array when extracting value at path. If you're seeing this, this is likely a bug in Relay."),a=a[s]):(("object"!=typeof a||Array.isArray(a))&&i(!1,"Relay: Expected an object when extracting value at path. If you're seeing this, this is likely a bug in Relay."),a=a[s])}}catch(e){o.e(e)}finally{o.f()}return a}},function(e,t,r){"use strict";var n={},i={stop:function(){}},a={profile:function(e,t){var r=n[e];if(r&&r.length>0){for(var a=[],o=r.length-1;o>=0;o--){var s=r[o](e,t);a.unshift(s)}return{stop:function(e){a.forEach((function(t){return t(e)}))}}}return i},attachProfileHandler:function(e,t){n.hasOwnProperty(e)||(n[e]=[]),n[e].push(t)},detachProfileHandler:function(e,t){var r,i,a;n.hasOwnProperty(e)&&(r=n[e],i=t,-1!==(a=r.indexOf(i))&&r.splice(a,1))}};e.exports=a}])}));
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Relay v0.0.0-main-91feecfd
2
+ * Relay v0.0.0-main-8e13c8f5
3
3
  *
4
4
  * Copyright (c) Meta Platforms, Inc. and affiliates.
5
5
  *
@@ -25,9 +25,10 @@ import type {
25
25
  SingularReaderSelector,
26
26
  } from '../RelayStoreTypes';
27
27
  import type {ResolverCache} from '../ResolverCache';
28
- import type {ExternalState} from './ExternalStateResolverStore';
28
+ import type {LiveState} from './LiveResolverStore';
29
29
 
30
30
  const recycleNodesInto = require('../../util/recycleNodesInto');
31
+ const {RELAY_LIVE_RESOLVER} = require('../../util/RelayConcreteNode');
31
32
  const {generateClientID} = require('../ClientID');
32
33
  const RelayModernRecord = require('../RelayModernRecord');
33
34
  const RelayRecordSource = require('../RelayRecordSource');
@@ -40,19 +41,20 @@ const {
40
41
  RELAY_RESOLVER_VALUE_KEY,
41
42
  getStorageKey,
42
43
  } = require('../RelayStoreUtils');
43
- const ExternalStateResolverStore = require('./ExternalStateResolverStore');
44
+ const LiveResolverStore = require('./LiveResolverStore');
45
+ const invariant = require('invariant');
44
46
  const warning = require('warning');
45
47
 
46
48
  // When this experiment gets promoted to stable, these keys will move into
47
49
  // `RelayStoreUtils`.
48
- const RELAY_RESOLVER_EXTERNAL_STATE_SUBSCRIPTION_KEY =
49
- '__resolverExternalStateSubscription';
50
- const RELAY_EXTERNAL_STATE_VALUE = '__resolverExternalStateValue';
51
- const RELAY_EXTERNAL_STATE_DIRTY = '__resolverExternalStateDirty';
50
+ const RELAY_RESOLVER_LIVE_STATE_SUBSCRIPTION_KEY =
51
+ '__resolverLieStateSubscription';
52
+ const RELAY_RESOLVER_LIVE_STATE_VALUE = '__resolverLiveStateValue';
53
+ const RELAY_RESOLVER_LIVE_STATE_DIRTY = '__resolverLiveStateDirty';
52
54
 
53
55
  /**
54
56
  * An experimental fork of store/ResolverCache.js intended to let us experiment
55
- * with External State Resolvers.
57
+ * with Live Resolvers.
56
58
  */
57
59
 
58
60
  type ResolverID = string;
@@ -83,16 +85,16 @@ function addDependencyEdge(
83
85
  set.add(to);
84
86
  }
85
87
 
86
- class ExternalStateResolverCache implements ResolverCache {
88
+ class LiveResolverCache implements ResolverCache {
87
89
  _resolverIDToRecordIDs: Map<ResolverID, Set<DataID>>;
88
90
  _recordIDToResolverIDs: Map<DataID, Set<ResolverID>>;
89
91
 
90
92
  _getRecordSource: () => MutableRecordSource;
91
- _store: ExternalStateResolverStore;
93
+ _store: LiveResolverStore;
92
94
 
93
95
  constructor(
94
96
  getRecordSource: () => MutableRecordSource,
95
- store: ExternalStateResolverStore,
97
+ store: LiveResolverStore,
96
98
  ) {
97
99
  this._resolverIDToRecordIDs = new Map();
98
100
  this._recordIDToResolverIDs = new Map();
@@ -129,15 +131,17 @@ class ExternalStateResolverCache implements ResolverCache {
129
131
 
130
132
  const evaluationResult = evaluate();
131
133
 
132
- // In the future we we know from the Reader AST node if we are trying to
133
- // read a Relay Resolver field or not. For the purpose of this hack, we
134
- // will just check if it quacks like a duck.
135
- const externalState = isExternalStateValue(
136
- evaluationResult.resolverResult,
137
- );
138
-
139
- if (externalState != null) {
140
- this._setExternalStateValue(linkedRecord, linkedID, externalState);
134
+ if (field.kind === RELAY_LIVE_RESOLVER) {
135
+ if (__DEV__) {
136
+ invariant(
137
+ isLiveStateValue(evaluationResult.resolverResult),
138
+ 'Expected a @live Relay Resolver to return a value that implements LiveState.',
139
+ );
140
+ }
141
+ const liveState: LiveState<mixed> =
142
+ // $FlowFixMe[incompatible-type] - casting mixed
143
+ evaluationResult.resolverResult;
144
+ this._setLiveStateValue(linkedRecord, linkedID, liveState);
141
145
  } else {
142
146
  RelayModernRecord.setValue(
143
147
  linkedRecord,
@@ -183,40 +187,34 @@ class ExternalStateResolverCache implements ResolverCache {
183
187
  resolverID,
184
188
  );
185
189
  }
186
- } else {
187
- // If this is an External State Resolver, we might have a cache hit (the
190
+ } else if (
191
+ field.kind === RELAY_LIVE_RESOLVER &&
192
+ RelayModernRecord.getValue(linkedRecord, RELAY_RESOLVER_LIVE_STATE_DIRTY)
193
+ ) {
194
+ // If this is an Live Resolver, we might have a cache hit (the
188
195
  // fragment data hasn't changed since we last evaluated the resolver),
189
- // but it might still be "dirty" (the external state changed and we need
196
+ // but it might still be "dirty" (the live state changed and we need
190
197
  // to call `.read()` again).
191
- //
192
- // This is currently a bit implicit for now since we rely on the fact that
193
- // only External State Resolvers can have `RELAY_EXTERNAL_STATE_DIRTY`
194
- // set. However, in the future, we will have a distinct Reader AST node
195
- // for External State Resolvers, so we won't have to be so implicit.
196
- if (
197
- RelayModernRecord.getValue(linkedRecord, RELAY_EXTERNAL_STATE_DIRTY)
198
- ) {
199
- linkedID = linkedID ?? generateClientID(recordID, storageKey);
200
- linkedRecord = RelayModernRecord.clone(linkedRecord);
201
- // $FlowFixMe[incompatible-type] - casting mixed
202
- const externalState: ExternalState<mixed> = RelayModernRecord.getValue(
203
- linkedRecord,
204
- RELAY_EXTERNAL_STATE_VALUE,
205
- );
206
- // Set the new value for this and future reads.
207
- RelayModernRecord.setValue(
208
- linkedRecord,
209
- RELAY_RESOLVER_VALUE_KEY,
210
- externalState.read(),
211
- );
212
- // Mark the resolver as clean again.
213
- RelayModernRecord.setValue(
214
- linkedRecord,
215
- RELAY_EXTERNAL_STATE_DIRTY,
216
- false,
217
- );
218
- recordSource.set(linkedID, linkedRecord);
219
- }
198
+ linkedID = linkedID ?? generateClientID(recordID, storageKey);
199
+ linkedRecord = RelayModernRecord.clone(linkedRecord);
200
+ // $FlowFixMe[incompatible-type] - casting mixed
201
+ const liveState: LiveState<mixed> = RelayModernRecord.getValue(
202
+ linkedRecord,
203
+ RELAY_RESOLVER_LIVE_STATE_VALUE,
204
+ );
205
+ // Set the new value for this and future reads.
206
+ RelayModernRecord.setValue(
207
+ linkedRecord,
208
+ RELAY_RESOLVER_VALUE_KEY,
209
+ liveState.read(),
210
+ );
211
+ // Mark the resolver as clean again.
212
+ RelayModernRecord.setValue(
213
+ linkedRecord,
214
+ RELAY_RESOLVER_LIVE_STATE_DIRTY,
215
+ false,
216
+ );
217
+ recordSource.set(linkedID, linkedRecord);
220
218
  }
221
219
 
222
220
  // $FlowFixMe[incompatible-type] - will always be empty
@@ -231,18 +229,18 @@ class ExternalStateResolverCache implements ResolverCache {
231
229
  return [answer, linkedID, errors, missingRequiredFields];
232
230
  }
233
231
 
234
- // Register a new External State object in the store, subscribing to future
232
+ // Register a new Live State object in the store, subscribing to future
235
233
  // updates.
236
- _setExternalStateValue(
234
+ _setLiveStateValue(
237
235
  linkedRecord: Record,
238
236
  linkedID: DataID,
239
- externalState: ExternalState<mixed>,
237
+ liveState: LiveState<mixed>,
240
238
  ) {
241
239
  // If there's an existing subscription, unsubscribe.
242
240
  // $FlowFixMe[incompatible-type] - casting mixed
243
241
  const previousUnsubscribe: () => void = RelayModernRecord.getValue(
244
242
  linkedRecord,
245
- RELAY_RESOLVER_EXTERNAL_STATE_SUBSCRIPTION_KEY,
243
+ RELAY_RESOLVER_LIVE_STATE_SUBSCRIPTION_KEY,
246
244
  );
247
245
 
248
246
  if (previousUnsubscribe != null) {
@@ -250,40 +248,41 @@ class ExternalStateResolverCache implements ResolverCache {
250
248
  }
251
249
 
252
250
  // Subscribe to future values
253
- const handler = this._makeExternalStateHandler(linkedID, externalState);
254
- const unsubscribe = externalState.subscribe(handler);
251
+ const handler = this._makeLiveStateHandler(linkedID);
252
+ const unsubscribe = liveState.subscribe(handler);
255
253
 
256
- // Store the external state value for future re-reads.
254
+ // Store the live state value for future re-reads.
257
255
  RelayModernRecord.setValue(
258
256
  linkedRecord,
259
- RELAY_EXTERNAL_STATE_VALUE,
260
- externalState,
257
+ RELAY_RESOLVER_LIVE_STATE_VALUE,
258
+ liveState,
261
259
  );
262
260
 
263
261
  // Store the current value, for this read, and future cached reads.
264
262
  RelayModernRecord.setValue(
265
263
  linkedRecord,
266
264
  RELAY_RESOLVER_VALUE_KEY,
267
- externalState.read(),
265
+ liveState.read(),
268
266
  );
269
267
 
270
268
  // Mark the field as clean.
271
- RelayModernRecord.setValue(linkedRecord, RELAY_EXTERNAL_STATE_DIRTY, false);
269
+ RelayModernRecord.setValue(
270
+ linkedRecord,
271
+ RELAY_RESOLVER_LIVE_STATE_DIRTY,
272
+ false,
273
+ );
272
274
 
273
275
  // Store our our unsubscribe function for future cleanup.
274
276
  RelayModernRecord.setValue(
275
277
  linkedRecord,
276
- RELAY_RESOLVER_EXTERNAL_STATE_SUBSCRIPTION_KEY,
278
+ RELAY_RESOLVER_LIVE_STATE_SUBSCRIPTION_KEY,
277
279
  unsubscribe,
278
280
  );
279
281
  }
280
282
 
281
- // Create a callback to handle notifications from the external source that the
283
+ // Create a callback to handle notifications from the live source that the
282
284
  // value may have changed.
283
- _makeExternalStateHandler(
284
- linkedID: DataID,
285
- externalState: ExternalState<mixed>,
286
- ): () => void {
285
+ _makeLiveStateHandler(linkedID: DataID): () => void {
287
286
  return () => {
288
287
  const currentSource = this._getRecordSource();
289
288
  const currentRecord = currentSource.get(linkedID);
@@ -300,8 +299,12 @@ class ExternalStateResolverCache implements ResolverCache {
300
299
  const nextRecord = RelayModernRecord.clone(currentRecord);
301
300
 
302
301
  // Mark the field as dirty. The next time it's read, we will call
303
- // `ExternalState.read()`.
304
- RelayModernRecord.setValue(nextRecord, RELAY_EXTERNAL_STATE_DIRTY, true);
302
+ // `LiveState.read()`.
303
+ RelayModernRecord.setValue(
304
+ nextRecord,
305
+ RELAY_RESOLVER_LIVE_STATE_DIRTY,
306
+ true,
307
+ );
305
308
 
306
309
  nextSource.set(linkedID, nextRecord);
307
310
  this._store.publish(nextSource);
@@ -392,21 +395,16 @@ class ExternalStateResolverCache implements ResolverCache {
392
395
  }
393
396
  }
394
397
 
395
- // In the real implementaiton, we will probably have a special Reader AST node to tell us when
396
- // a value is external state
398
+ // Validate that a value is live state
397
399
  // $FlowFixMe
398
- function isExternalStateValue(v: Object): ?ExternalState {
399
- if (
400
+ function isLiveStateValue(v: Object): boolean {
401
+ return (
400
402
  v != null &&
401
403
  typeof v.read === 'function' &&
402
404
  typeof v.subscribe === 'function'
403
- ) {
404
- return v;
405
- } else {
406
- return null;
407
- }
405
+ );
408
406
  }
409
407
 
410
408
  module.exports = {
411
- ExternalStateResolverCache,
409
+ LiveResolverCache,
412
410
  };
@@ -50,10 +50,10 @@ const RelayStoreReactFlightUtils = require('../RelayStoreReactFlightUtils');
50
50
  const RelayStoreSubscriptions = require('../RelayStoreSubscriptions');
51
51
  const RelayStoreUtils = require('../RelayStoreUtils');
52
52
  const {ROOT_ID, ROOT_TYPE} = require('../RelayStoreUtils');
53
- const {ExternalStateResolverCache} = require('./ExternalStateResolverCache');
53
+ const {LiveResolverCache} = require('./LiveResolverCache');
54
54
  const invariant = require('invariant');
55
55
 
56
- export type ExternalState<T> = {|
56
+ export type LiveState<T> = {|
57
57
  read(): T,
58
58
  subscribe(cb: () => void): () => void,
59
59
  |};
@@ -79,7 +79,7 @@ const DEFAULT_RELEASE_BUFFER_SIZE = 10;
79
79
  *
80
80
  * Experimental fork of RelayModernStore
81
81
  */
82
- class ExternalStateResolverStore implements Store {
82
+ class LiveResolverStore implements Store {
83
83
  _currentWriteEpoch: number;
84
84
  _gcHoldCounter: number;
85
85
  _gcReleaseBufferSize: number;
@@ -150,7 +150,7 @@ class ExternalStateResolverStore implements Store {
150
150
  this._releaseBuffer = [];
151
151
  this._roots = new Map();
152
152
  this._shouldScheduleGC = false;
153
- this._resolverCache = new ExternalStateResolverCache(
153
+ this._resolverCache = new LiveResolverCache(
154
154
  () => this._getMutableRecordSource(),
155
155
  this,
156
156
  );
@@ -448,7 +448,7 @@ class ExternalStateResolverStore implements Store {
448
448
  }
449
449
 
450
450
  toJSON(): mixed {
451
- return 'ExternalStateResolverStore()';
451
+ return 'LiveResolverStore()';
452
452
  }
453
453
 
454
454
  getEpoch(): number {
@@ -543,7 +543,7 @@ class ExternalStateResolverStore implements Store {
543
543
  snapshot(): void {
544
544
  invariant(
545
545
  this._optimisticSource == null,
546
- 'ExternalStateResolverStore: Unexpected call to snapshot() while a previous ' +
546
+ 'LiveResolverStore: Unexpected call to snapshot() while a previous ' +
547
547
  'snapshot exists.',
548
548
  );
549
549
  const log = this.__log;
@@ -565,7 +565,7 @@ class ExternalStateResolverStore implements Store {
565
565
  restore(): void {
566
566
  invariant(
567
567
  this._optimisticSource != null,
568
- 'ExternalStateResolverStore: Unexpected call to restore(), expected a snapshot ' +
568
+ 'LiveResolverStore: Unexpected call to restore(), expected a snapshot ' +
569
569
  'to exist (make sure to call snapshot()).',
570
570
  );
571
571
  const log = this.__log;
@@ -819,4 +819,4 @@ function getAvailabilityStatus(
819
819
  return {status: 'available', fetchTime: operationFetchTime ?? null};
820
820
  }
821
821
 
822
- module.exports = ExternalStateResolverStore;
822
+ module.exports = LiveResolverStore;