@kepler.gl/deckgl-layers 3.3.0-alpha.6 → 3.3.0-alpha.7
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/dist/cjs/globe/atmosphere-layer.js +130 -9
- package/dist/cjs/globe/globe-layers.js +7 -2
- package/dist/cjs/globe/globe-stars-layer.js +45 -15
- package/dist/cjs/globe/globe-stars-layer.spec.js +42 -0
- package/dist/cjs/globe/globe-view.js +1 -4
- package/dist/cjs/globe/index.js +19 -1
- package/dist/cjs/layer-utils/globe-cell-utils.js +3 -3
- package/dist/esm/globe/atmosphere-layer.js +128 -7
- package/dist/esm/globe/globe-layers.js +8 -3
- package/dist/esm/globe/globe-stars-layer.js +44 -15
- package/dist/esm/globe/globe-stars-layer.spec.js +40 -0
- package/dist/esm/globe/globe-view.js +1 -4
- package/dist/esm/globe/index.js +3 -3
- package/dist/esm/layer-utils/globe-cell-utils.js +3 -3
- package/dist/globe/atmosphere-layer.d.ts +22 -1
- package/dist/globe/globe-stars-layer.d.ts +5 -0
- package/dist/globe/globe-stars-layer.spec.d.ts +1 -0
- package/dist/globe/index.d.ts +2 -2
- package/package.json +6 -6
- package/dist/cjs/raster/raster-mesh-layer/matrix.js +0 -18
- package/dist/esm/raster/raster-mesh-layer/matrix.js +0 -12
- package/dist/raster/raster-mesh-layer/matrix.d.ts +0 -4
|
@@ -120,9 +120,6 @@ var ZoomToCursorGlobeController = /*#__PURE__*/function (_GlobeController) {
|
|
|
120
120
|
// view can't be centered on the poles. deck.gl's applyConstraints clamps
|
|
121
121
|
// latitude to ~85°, which still lets the camera look straight at a pole.
|
|
122
122
|
function applyConstraints(props) {
|
|
123
|
-
// Avoid `(super.fn as any)(args)` — Babel compiles that to a property GET
|
|
124
|
-
// (`_superPropGet(..., 1)`) that drops `this`. A direct call uses method-CALL
|
|
125
|
-
// form (`_superPropGet(..., 3)`), which preserves the binding.
|
|
126
123
|
var result = _superPropGet(PatchedGlobeState, "applyConstraints", this, 3)([props]);
|
|
127
124
|
var clampedLatitude = clamp(result.latitude, -GLOBE_MAX_LATITUDE, GLOBE_MAX_LATITUDE);
|
|
128
125
|
if (clampedLatitude !== result.latitude) {
|
|
@@ -398,4 +395,4 @@ export var KeplerGlobeView = /*#__PURE__*/function (_DeckGlobeView) {
|
|
|
398
395
|
}]);
|
|
399
396
|
}(DeckGlobeView);
|
|
400
397
|
KeplerGlobeView.displayName = 'KeplerGlobeView';
|
|
401
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEZWNrQ29yZSIsImNsYW1wIiwidmVjNCIsIkdMT0JFX01BWF9MQVRJVFVERSIsIkdMT0JFX0NPTU1PTl9SQURJVVMiLCJEZWNrR2xvYmVWaWV3IiwiX0dsb2JlVmlldyIsIkdsb2JlQ29udHJvbGxlciIsIl9HbG9iZUNvbnRyb2xsZXIiLCJEZWNrR2xvYmVWaWV3cG9ydCIsIl9HbG9iZVZpZXdwb3J0Iiwiem9vbUFkanVzdCIsImxhdGl0dWRlIiwiTWF0aCIsImxvZzIiLCJQSSIsImNvcyIsImlzUGl4ZWxPbkdsb2JlIiwidmlld3BvcnQiLCJwb3MiLCJtIiwicGl4ZWxVbnByb2plY3Rpb25NYXRyaXgiLCJwMCIsInRyYW5zZm9ybU1hdDQiLCJwMSIsImF4IiwiYXkiLCJheiIsImJ4IiwiYnkiLCJieiIsImR4IiwiZHkiLCJkeiIsImN4IiwiY3kiLCJjeiIsImRTcXIiLCJab29tVG9DdXJzb3JHbG9iZUNvbnRyb2xsZXIiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjayIsIl9sZW4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiX2NhbGxTdXBlciIsImNvbmNhdCIsIk9yaWdpbmFsR2xvYmVTdGF0ZSIsIkNvbnRyb2xsZXJTdGF0ZSIsIm9mZkdsb2JlWm9vbUF0IiwiX09yaWdpbmFsR2xvYmVTdGF0ZSIsIlBhdGNoZWRHbG9iZVN0YXRlIiwiX2luaGVyaXRzIiwiX2NyZWF0ZUNsYXNzIiwia2V5IiwidmFsdWUiLCJhcHBseUNvbnN0cmFpbnRzIiwicHJvcHMiLCJyZXN1bHQiLCJfc3VwZXJQcm9wR2V0IiwiY2xhbXBlZExhdGl0dWRlIiwiem9vbSIsIl9jb25zdHJhaW5ab29tIiwiZ2V0Vmlld3BvcnRQcm9wcyIsIl9wcm9wcyIsIm1heFpvb20iLCJfcHJvcHMyIiwibWluWm9vbSIsInVuZGVmaW5lZCIsIlpPT00wIiwiem9vbUFkanVzdG1lbnQiLCJfcmVmIiwic3RhcnRQb3MiLCJzY2FsZSIsIl9nZXRTdGF0ZSIsImdldFN0YXRlIiwic3RhcnRab29tIiwic3RhcnRab29tTG5nTGF0IiwiY3VycmVudFByb3BzIiwiQlVSU1RfVElNRU9VVF9NUyIsIm5vdyIsIkRhdGUiLCJhbmNob3JWaWV3cG9ydCIsIm1ha2VWaWV3cG9ydCIsIm9uR2xvYmUiLCJfZ2V0VXBkYXRlZFN0YXRlIiwiX3VucHJvamVjdCIsImlzQXJyYXkiLCJOdW1iZXIiLCJpc0Zpbml0ZSIsInQiLCJtaW4iLCJkTG5nIiwibG9uZ2l0dWRlIiwiem9vbWVkVmlld3BvcnQiLCJfb2JqZWN0U3ByZWFkIiwiZnJvbVBvc2l0aW9uIiwidW5wcm9qZWN0Iiwiem9vbUVuZCIsInBhblN0YXJ0IiwiX3JlZjIiLCJzdGFydFBhbkxuZ0xhdCIsInBhbiIsIl9yZWYzIiwic3RvcmVkU3RhcnQiLCJ2aXN1YWxab29tIiwicGFuRW5kIiwiS2VwbGVyR2xvYmVWaWV3IiwiX0RlY2tHbG9iZVZpZXciLCJnZXQiLCJnZXRWaWV3cG9ydFR5cGUiLCJkaXNwbGF5TmFtZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nbG9iZS9nbG9iZS12aWV3LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCAqIGFzIERlY2tDb3JlIGZyb20gJ0BkZWNrLmdsL2NvcmUnO1xuaW1wb3J0IHtjbGFtcCwgdmVjNH0gZnJvbSAnQG1hdGguZ2wvY29yZSc7XG5pbXBvcnQge0dMT0JFX01BWF9MQVRJVFVERX0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtHTE9CRV9DT01NT05fUkFESVVTfSBmcm9tICcuL2dsb2JlLWRlcHRoLWRpc2stbGF5ZXInO1xuXG4vLyBkZWNrLmdsIGV4cG9zZXMgR2xvYmVWaWV3IC8gR2xvYmVDb250cm9sbGVyIGFzIGV4cGVyaW1lbnRhbCwgdW5kZXJzY29yZS1wcmVmaXhlZFxuLy8gbWVtYmVycy4gVGhlaXIgbmFtZWQgdHlwZSBiaW5kaW5ncyBhcmVuJ3QgcmVsaWFibHkgcmVzb2x2YWJsZSB0aHJvdWdoIHRoZVxuLy8gcGFja2FnZSBiYXJyZWwgdW5kZXIgdGhpcyBwcm9qZWN0J3MgbW9kdWxlIHJlc29sdXRpb24sIHNvIHdlIHB1bGwgdGhlbSBvZmYgdGhlXG4vLyBuYW1lc3BhY2Ugd2l0aCBhIGxvb3NlIHR5cGUuIFJ1bnRpbWUgYmVoYXZpb3IgaXMgdW5jaGFuZ2VkLlxuY29uc3QgRGVja0dsb2JlVmlldyA9IChEZWNrQ29yZSBhcyBhbnkpLl9HbG9iZVZpZXcgYXMgYW55O1xuY29uc3QgR2xvYmVDb250cm9sbGVyID0gKERlY2tDb3JlIGFzIGFueSkuX0dsb2JlQ29udHJvbGxlciBhcyBhbnk7XG5jb25zdCBEZWNrR2xvYmVWaWV3cG9ydCA9IChEZWNrQ29yZSBhcyBhbnkpLl9HbG9iZVZpZXdwb3J0IGFzIGFueTtcblxuLyoqXG4gKiBMYXRpdHVkZS1iYXNlZCB6b29tIGFkanVzdG1lbnQgdXNlZCBieSBkZWNrLmdsJ3MgR2xvYmVWaWV3cG9ydCwgcmVwbGljYXRlZFxuICogaGVyZSBzbyBvdXIgY3VzdG9tIGBfY29uc3RyYWluWm9vbWAgbWF0Y2hlcyBkZWNrLmdsJ3MgY29vcmRpbmF0ZSBtYXRoLlxuICogU2VlIEBkZWNrLmdsL2NvcmUgZ2xvYmUtdmlld3BvcnQuanMgYHpvb21BZGp1c3RgLlxuICovXG5mdW5jdGlvbiB6b29tQWRqdXN0KGxhdGl0dWRlOiBudW1iZXIpOiBudW1iZXIge1xuICByZXR1cm4gTWF0aC5sb2cyKE1hdGguUEkgKiBNYXRoLmNvcygobGF0aXR1ZGUgKiBNYXRoLlBJKSAvIDE4MCkpO1xufVxuXG4vKipcbiAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgc2NyZWVuIHBpeGVsIGBwb3NgIGxpZXMgd2l0aGluIHRoZSB2aXNpYmxlIGdsb2JlXG4gKiBzaWxob3VldHRlLlxuICpcbiAqIEdsb2JlVmlld3BvcnQudW5wcm9qZWN0KCkgY2xhbXBzIHRoZSByYXnigJNzcGhlcmUgZGlzY3JpbWluYW50IHdpdGhcbiAqIE1hdGgubWF4KDAsIHLCsuKIkmTCsiksIHNvIGl0IGFsd2F5cyByZXR1cm5zIGEgdmFsaWQgbG5nL2xhdCBldmVuIGZvclxuICogb2ZmLWdsb2JlIHBpeGVscyAoc25hcHBpbmcgdG8gdGhlIGxpbWIpLiAgV2UgcmVwbGljYXRlIHRoZSBzYW1lIHJheSBjYXN0XG4gKiBidXQgY2hlY2sgdGhlIGRpc2NyaW1pbmFudCBiZWZvcmUgdGhlIGNsYW1wIHVzaW5nIHRoZSBzdGFuZGFyZFxuICogc3F1YXJlZC1kaXN0YW5jZS1mcm9tLW9yaWdpbi10by1yYXkgZm9ybXVsYTogfFDigoAgw5cgZGlyfMKyIC8gfGRpcnzCsi5cbiAqL1xuZnVuY3Rpb24gaXNQaXhlbE9uR2xvYmUodmlld3BvcnQ6IGFueSwgcG9zOiBbbnVtYmVyLCBudW1iZXJdKTogYm9vbGVhbiB7XG4gIGNvbnN0IG06IG51bWJlcltdID0gdmlld3BvcnQucGl4ZWxVbnByb2plY3Rpb25NYXRyaXg7XG4gIGlmICghbSkgcmV0dXJuIHRydWU7IC8vIGNvbnNlcnZhdGl2ZSBmYWxsYmFjayBpZiBtYXRyaXggdW5hdmFpbGFibGVcblxuICAvLyBDYXN0IGEgcmF5IHRocm91Z2ggdGhlIHBpeGVsIGF0IHRoZSBuZWFyIGFuZCBmYXIgcGxhbmVzLlxuICBjb25zdCBwMCA9IHZlYzQudHJhbnNmb3JtTWF0NChbXSwgW3Bvc1swXSwgcG9zWzFdLCAtMSwgMV0sIG0pO1xuICBjb25zdCBwMSA9IHZlYzQudHJhbnNmb3JtTWF0NChbXSwgW3Bvc1swXSwgcG9zWzFdLCAxLCAxXSwgbSk7XG4gIGlmIChwMFszXSA9PT0gMCB8fCBwMVszXSA9PT0gMCkgcmV0dXJuIHRydWU7IC8vIGRlZ2VuZXJhdGUgcHJvamVjdGlvblxuXG4gIC8vIFBlcnNwZWN0aXZlLWRpdmlkZSB0byB3b3JsZCBzcGFjZS5cbiAgY29uc3QgYXggPSBwMFswXSAvIHAwWzNdLCBheSA9IHAwWzFdIC8gcDBbM10sIGF6ID0gcDBbMl0gLyBwMFszXTtcbiAgY29uc3QgYnggPSBwMVswXSAvIHAxWzNdLCBieSA9IHAxWzFdIC8gcDFbM10sIGJ6ID0gcDFbMl0gLyBwMVszXTtcblxuICAvLyBSYXkgZGlyZWN0aW9uLlxuICBjb25zdCBkeCA9IGJ4IC0gYXgsIGR5ID0gYnkgLSBheSwgZHogPSBieiAtIGF6O1xuXG4gIC8vIFNxdWFyZWQgZGlzdGFuY2UgZnJvbSB0aGUgb3JpZ2luIChnbG9iZSBjZW50ZXIpIHRvIHRoZSByYXk6XG4gIC8vICAgZMKyID0gfFDigoAgw5cgZGlyfMKyIC8gfGRpcnzCslxuICBjb25zdCBjeCA9IGF5ICogZHogLSBheiAqIGR5O1xuICBjb25zdCBjeSA9IGF6ICogZHggLSBheCAqIGR6O1xuICBjb25zdCBjeiA9IGF4ICogZHkgLSBheSAqIGR4O1xuICBjb25zdCBkU3FyID0gKGN4ICogY3ggKyBjeSAqIGN5ICsgY3ogKiBjeikgLyAoZHggKiBkeCArIGR5ICogZHkgKyBkeiAqIGR6KTtcblxuICByZXR1cm4gZFNxciA8PSBHTE9CRV9DT01NT05fUkFESVVTICogR0xPQkVfQ09NTU9OX1JBRElVUztcbn1cblxuLyoqXG4gKiBDdXN0b20gR2xvYmVDb250cm9sbGVyIHRoYXQgcmVzdG9yZXMgem9vbS10by1jdXJzb3IgYmVoYXZpb3IuXG4gKlxuICogSW4gZGVjay5nbCA5LngsIHRoZSBkZWZhdWx0IEdsb2JlQ29udHJvbGxlcidzIEdsb2JlU3RhdGUuem9vbSgpIGlnbm9yZXMgdGhlXG4gKiBjdXJzb3IgcG9zaXRpb24gYW5kIGFsd2F5cyB6b29tcyB0b3dhcmQgdGhlIGNlbnRlci4gVGhpcyBjb250cm9sbGVyIHBhdGNoZXNcbiAqIHRoYXQgYmVoYXZpb3IgYnkgb3ZlcnJpZGluZyB0aGUgQ29udHJvbGxlclN0YXRlJ3Mgem9vbSBtZXRob2QgdG8gcGFuIHRoZVxuICogZ2xvYmUgdW5kZXIgdGhlIGN1cnNvciB3aGlsZSB6b29taW5nLCBzbyB6b29tLXRvLWN1cnNvciB3b3JrcyB0aGUgc2FtZSB3YXkgaXRcbiAqIGRvZXMgZm9yIHRoZSAyRCBNYXBDb250cm9sbGVyLlxuICovXG5jbGFzcyBab29tVG9DdXJzb3JHbG9iZUNvbnRyb2xsZXIgZXh0ZW5kcyBHbG9iZUNvbnRyb2xsZXIge1xuICBjb25zdHJ1Y3RvciguLi5hcmdzOiBhbnlbXSkge1xuICAgIHN1cGVyKC4uLmFyZ3MpO1xuICAgIGNvbnN0IE9yaWdpbmFsR2xvYmVTdGF0ZSA9IHRoaXMuQ29udHJvbGxlclN0YXRlO1xuXG4gICAgLy8gVHJhY2tzIHdoZW4gdGhlIG1vc3QgcmVjZW50IG9mZi1nbG9iZSB3aGVlbC16b29tIHRpY2sgZmlyZWQuXG4gICAgLy8gU3RvcmVkIGFzIGEgY29udHJvbGxlci1sZXZlbCBjbG9zdXJlIHZhcmlhYmxlIHJhdGhlciB0aGFuIGluIFZpZXdTdGF0ZVxuICAgIC8vIGJlY2F1c2UgZGVjay5nbCdzIENvbnRyb2xsZXIgbmV2ZXIgY2FsbHMgem9vbUVuZCgpIGZvciB3aGVlbCBldmVudHMg4oCUXG4gICAgLy8gb25seSBmb3IgcGluY2gvdG91Y2gg4oCUIHNvIHRoZXJlIGlzIG5vIHJlbGlhYmxlIGhvb2sgdG8gY2xlYXIgYVxuICAgIC8vIFZpZXdTdGF0ZS1iYXNlZCBzZW50aW5lbCBhZnRlciBhIHdoZWVsIHNjcm9sbCBzZXNzaW9uIGVuZHMuXG4gICAgLy8gQSBzaW1wbGUgdGltZXN0YW1wIGxldHMgdXMgZGV0ZWN0IHdoZW4gYSBuZXcgc2Nyb2xsIGJ1cnN0IGhhcyBzdGFydGVkXG4gICAgLy8gKD4gQlVSU1RfVElNRU9VVF9NUyBzaW5jZSB0aGUgbGFzdCBvZmYtZ2xvYmUgdGljaykgc28gY3Vyc29yLWFuY2hvcmVkXG4gICAgLy8gem9vbSBjYW4gcmVzdW1lIG5hdHVyYWxseSBvbiB0aGUgbmV4dCBpbmRlcGVuZGVudCBzY3JvbGwuXG4gICAgbGV0IG9mZkdsb2JlWm9vbUF0OiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIC8vIENyZWF0ZSBwYXRjaGVkIEdsb2JlU3RhdGUgdGhhdCBzdXBwb3J0cyB6b29tLXRvLWN1cnNvclxuICAgIHRoaXMuQ29udHJvbGxlclN0YXRlID0gY2xhc3MgUGF0Y2hlZEdsb2JlU3RhdGUgZXh0ZW5kcyBPcmlnaW5hbEdsb2JlU3RhdGUge1xuICAgICAgLy8gQ29uc3RyYWluIHRoZSBjYW1lcmEgdGFyZ2V0IHRvIGEgbGF0aXR1ZGUgYmFuZCBhcm91bmQgdGhlIGVxdWF0b3Igc28gdGhlXG4gICAgICAvLyB2aWV3IGNhbid0IGJlIGNlbnRlcmVkIG9uIHRoZSBwb2xlcy4gZGVjay5nbCdzIGFwcGx5Q29uc3RyYWludHMgY2xhbXBzXG4gICAgICAvLyBsYXRpdHVkZSB0byB+ODXCsCwgd2hpY2ggc3RpbGwgbGV0cyB0aGUgY2FtZXJhIGxvb2sgc3RyYWlnaHQgYXQgYSBwb2xlLlxuICAgICAgYXBwbHlDb25zdHJhaW50cyhwcm9wczogYW55KSB7XG4gICAgICAgIC8vIEF2b2lkIGAoc3VwZXIuZm4gYXMgYW55KShhcmdzKWAg4oCUIEJhYmVsIGNvbXBpbGVzIHRoYXQgdG8gYSBwcm9wZXJ0eSBHRVRcbiAgICAgICAgLy8gKGBfc3VwZXJQcm9wR2V0KC4uLiwgMSlgKSB0aGF0IGRyb3BzIGB0aGlzYC4gQSBkaXJlY3QgY2FsbCB1c2VzIG1ldGhvZC1DQUxMXG4gICAgICAgIC8vIGZvcm0gKGBfc3VwZXJQcm9wR2V0KC4uLiwgMylgKSwgd2hpY2ggcHJlc2VydmVzIHRoZSBiaW5kaW5nLlxuICAgICAgICBjb25zdCByZXN1bHQgPSBzdXBlci5hcHBseUNvbnN0cmFpbnRzKHByb3BzKTtcbiAgICAgICAgY29uc3QgY2xhbXBlZExhdGl0dWRlID0gY2xhbXAocmVzdWx0LmxhdGl0dWRlLCAtR0xPQkVfTUFYX0xBVElUVURFLCBHTE9CRV9NQVhfTEFUSVRVREUpO1xuICAgICAgICBpZiAoY2xhbXBlZExhdGl0dWRlICE9PSByZXN1bHQubGF0aXR1ZGUpIHtcbiAgICAgICAgICAvLyBkZWNrLmdsIGNvdXBsZXMgem9vbSB0byBsYXRpdHVkZSB2aWEgem9vbUFkanVzdDsgd2hlbiB3ZSBmdXJ0aGVyXG4gICAgICAgICAgLy8gY2xhbXAgbGF0aXR1ZGUsIHJlLWFwcGx5IHRoZSBzYW1lIGRlbHRhIHNvIHpvb20gc3RheXMgY29uc2lzdGVudC5cbiAgICAgICAgICByZXN1bHQuem9vbSArPSB6b29tQWRqdXN0KGNsYW1wZWRMYXRpdHVkZSkgLSB6b29tQWRqdXN0KHJlc3VsdC5sYXRpdHVkZSk7XG4gICAgICAgICAgcmVzdWx0LmxhdGl0dWRlID0gY2xhbXBlZExhdGl0dWRlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG5cbiAgICAgIC8vIGRlY2suZ2wncyBHbG9iZVN0YXRlLl9jb25zdHJhaW5ab29tIGRlcml2ZXMgYSBtaW5pbXVtIHpvb20gZnJvbSBgbWF4Qm91bmRzYFxuICAgICAgLy8gdGhhdCBmb3JjZXMgdGhlIGdsb2JlIHRvIGZpbGwgdGhlIHZpZXdwb3J0LiBUaGF0IGJvdW5kcy1iYXNlZCBtaW5pbXVtXG4gICAgICAvLyAofjMgZm9yIGEgdHlwaWNhbCB3aW5kb3cpIG92ZXJyaWRlcyBhbnkgY29uZmlndXJlZCBgbWluWm9vbWAsIHNvIHRoZSB1c2VyXG4gICAgICAvLyBjYW4gbmV2ZXIgem9vbSBvdXQgZmFyIGVub3VnaCB0byBzZWUgdGhlIHdob2xlIGdsb2JlIHNtYWxsIG9uIHNjcmVlbi5cbiAgICAgIC8vIE92ZXJyaWRlIGl0IHRvIGhvbm9yIG9ubHkgdGhlIGNvbmZpZ3VyZWQgbWluWm9vbS9tYXhab29tIChwbHVzIHRoZSBzYW1lXG4gICAgICAvLyBsYXRpdHVkZSBhZGp1c3RtZW50IGRlY2suZ2wgdXNlcyksIGlnbm9yaW5nIHRoZSBib3VuZHMtYmFzZWQgZmxvb3IuXG4gICAgICBfY29uc3RyYWluWm9vbSh6b29tOiBudW1iZXIsIHByb3BzPzogYW55KSB7XG4gICAgICAgIHByb3BzID0gcHJvcHMgfHwgKHRoaXMgYXMgYW55KS5nZXRWaWV3cG9ydFByb3BzKCk7XG4gICAgICAgIGNvbnN0IHtsYXRpdHVkZSwgbWF4Wm9vbX0gPSBwcm9wcztcbiAgICAgICAgbGV0IHttaW5ab29tfSA9IHByb3BzO1xuICAgICAgICBpZiAobWluWm9vbSA9PT0gdW5kZWZpbmVkIHx8IG1pblpvb20gPT09IG51bGwpIHtcbiAgICAgICAgICBtaW5ab29tID0gMDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBaT09NMCA9IHpvb21BZGp1c3QoMCk7XG4gICAgICAgIGNvbnN0IHpvb21BZGp1c3RtZW50ID0gem9vbUFkanVzdChsYXRpdHVkZSkgLSBaT09NMDtcbiAgICAgICAgcmV0dXJuIGNsYW1wKHpvb20sIG1pblpvb20gKyB6b29tQWRqdXN0bWVudCwgbWF4Wm9vbSArIHpvb21BZGp1c3RtZW50KTtcbiAgICAgIH1cblxuICAgICAgLy8gRXhhY3Qgem9vbS10by1jdXJzb3IuIGRlY2suZ2wgOS54J3MgR2xvYmVDb250cm9sbGVyIGRvZXMgbm90IGtlZXAgdGhlIHBvaW50XG4gICAgICAvLyB1bmRlciB0aGUgY3Vyc29yIGZpeGVkIHdoaWxlIHpvb21pbmcsIGluIHR3byB3YXlzIHdlIHdvcmsgYXJvdW5kIGhlcmU6XG4gICAgICAvLyAgIDEuIEl0cyBHbG9iZVN0YXRlLnpvb20oKSBpZ25vcmVzIHRoZSBjdXJzb3IgYW5kIHpvb21zIHRvd2FyZCB0aGUgY2VudGVyLlxuICAgICAgLy8gICAyLiBJdHMgR2xvYmVWaWV3cG9ydC5wYW5CeVBvc2l0aW9uIGlzIGEgbG9zc3ksICpsaW5lYXJpemVkKiAzLWFyZ1xuICAgICAgLy8gICAgICByb3RhdGlvbiAobG9uZ2l0dWRlICs9ICgwLjI1L3NjYWxlKSooc3RhcnRQaXhlbC1waXhlbCksIHJlLWRlcml2ZXNcbiAgICAgIC8vICAgICAgem9vbSkuIFVzaW5nIGl0IHBlciB3aGVlbCB0aWNrIGFjY3VtdWxhdGVzIGVycm9yLCBzbyBhZnRlciBhIGxvbmdcbiAgICAgIC8vICAgICAgY29udGludW91cyB6b29tIHRoZSBwb2ludCBlbmRzIHVwIG5vdGljZWFibHkgc2hpZnRlZCBmcm9tIHdoYXQgd2FzXG4gICAgICAvLyAgICAgIG9yaWdpbmFsbHkgdW5kZXIgdGhlIGN1cnNvci5cbiAgICAgIC8vIFRoZSByZWNlbnRlciBiZWxvdyBpcyBhbiAqZXhhY3QgYWJzb2x1dGUqIHRyYW5zbGF0aW9uOiB1bnByb2plY3QgdGhlXG4gICAgICAvLyBjdXJzb3IgcGl4ZWwgaW4gdGhlIHpvb21lZCB2aWV3cG9ydCB0byBnZXQgdGhlIGdlbyBwb2ludCBjdXJyZW50bHkgdW5kZXIgaXQsXG4gICAgICAvLyB0aGVuIHNoaWZ0IHRoZSBjZW50ZXIgYnkgKGFuY2hvciAtIHRoYXRQb2ludCkuIE5vIHpvb20gY291cGxpbmcsIG5vXG4gICAgICAvLyByb3RhdGlvblNwZWVkLCBhbmQgaXQgYXBwbGllcyB0byB6b29tLWluIGFuZCB6b29tLW91dCBzeW1tZXRyaWNhbGx5LCBzb1xuICAgICAgLy8gdGhlcmUgaXMgbm8gcGVyLXRpY2sgYWNjdW11bGF0ZWQgZHJpZnQuXG4gICAgICB6b29tKHtcbiAgICAgICAgcG9zLFxuICAgICAgICBzdGFydFBvcyxcbiAgICAgICAgc2NhbGVcbiAgICAgIH06IHtcbiAgICAgICAgcG9zOiBbbnVtYmVyLCBudW1iZXJdO1xuICAgICAgICBzdGFydFBvcz86IFtudW1iZXIsIG51bWJlcl07XG4gICAgICAgIHNjYWxlOiBudW1iZXI7XG4gICAgICB9KSB7XG4gICAgICAgIGxldCB7c3RhcnRab29tLCBzdGFydFpvb21MbmdMYXR9ID0gKHRoaXMgYXMgYW55KS5nZXRTdGF0ZSgpO1xuICAgICAgICBjb25zdCBjdXJyZW50UHJvcHMgPSAodGhpcyBhcyBhbnkpLmdldFZpZXdwb3J0UHJvcHMoKTtcblxuICAgICAgICBpZiAoIXN0YXJ0Wm9vbUxuZ0xhdCkge1xuICAgICAgICAgIC8vIFdoZWVsIHpvb206IHJlLWRlcml2ZSBhbmNob3IgZWFjaCB0aWNrIChwaW5jaCBzZXRzIGl0IG9uY2UgaW4gem9vbVN0YXJ0KS5cbiAgICAgICAgICBzdGFydFpvb20gPSBjdXJyZW50UHJvcHMuem9vbTtcblxuICAgICAgICAgIC8vIFN1cHByZXNzIGN1cnNvci1hbmNob3Jpbmcgd2hlbiB0aGUgY3Vyc29yIGlzIG9mZi1nbG9iZSBvciB3aGVuIGFcbiAgICAgICAgICAvLyByZWNlbnQgdGljayB3YXMgb2ZmLWdsb2JlICh3aXRoaW4gQlVSU1RfVElNRU9VVF9NUykuICBkZWNrLmdsIG5ldmVyXG4gICAgICAgICAgLy8gY2FsbHMgem9vbUVuZCgpIGZvciB3aGVlbCBldmVudHMgc28gd2UgdHJhY2sgdGhlIHNlc3Npb24gd2l0aCB0aGVcbiAgICAgICAgICAvLyBjbG9zdXJlIHZhcmlhYmxlIGBvZmZHbG9iZVpvb21BdGAgcmF0aGVyIHRoYW4gVmlld1N0YXRlLlxuICAgICAgICAgIGNvbnN0IEJVUlNUX1RJTUVPVVRfTVMgPSAyMDA7XG4gICAgICAgICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgICBjb25zdCBhbmNob3JWaWV3cG9ydCA9ICh0aGlzIGFzIGFueSkubWFrZVZpZXdwb3J0KGN1cnJlbnRQcm9wcyk7XG4gICAgICAgICAgY29uc3Qgb25HbG9iZSA9IGlzUGl4ZWxPbkdsb2JlKGFuY2hvclZpZXdwb3J0LCBzdGFydFBvcyB8fCBwb3MpO1xuXG4gICAgICAgICAgaWYgKCFvbkdsb2JlKSBvZmZHbG9iZVpvb21BdCA9IG5vdztcblxuICAgICAgICAgIGlmICghb25HbG9iZSB8fCAob2ZmR2xvYmVab29tQXQgIT09IG51bGwgJiYgbm93IC0gb2ZmR2xvYmVab29tQXQgPCBCVVJTVF9USU1FT1VUX01TKSkge1xuICAgICAgICAgICAgY29uc3Qgem9vbSA9ICh0aGlzIGFzIGFueSkuX2NvbnN0cmFpblpvb20oc3RhcnRab29tICsgTWF0aC5sb2cyKHNjYWxlKSk7XG4gICAgICAgICAgICByZXR1cm4gKHRoaXMgYXMgYW55KS5fZ2V0VXBkYXRlZFN0YXRlKHt6b29tfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgb2ZmR2xvYmVab29tQXQgPSBudWxsO1xuICAgICAgICAgIHN0YXJ0Wm9vbUxuZ0xhdCA9ICh0aGlzIGFzIGFueSkuX3VucHJvamVjdChzdGFydFBvcykgfHwgKHRoaXMgYXMgYW55KS5fdW5wcm9qZWN0KHBvcyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB6b29tID0gKHRoaXMgYXMgYW55KS5fY29uc3RyYWluWm9vbShzdGFydFpvb20gKyBNYXRoLmxvZzIoc2NhbGUpKTtcblxuICAgICAgICBpZiAoIXN0YXJ0Wm9vbUxuZ0xhdCkge1xuICAgICAgICAgIHJldHVybiAodGhpcyBhcyBhbnkpLl9nZXRVcGRhdGVkU3RhdGUoe3pvb219KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFpvb20tb3V0IChzY2FsZSA8IDEpOiBleGFjdCBjdXJzb3IgYW5jaG9yaW5nIGlzIHVuc3RhYmxlIG5lYXIgdGhlIGxpbWJcbiAgICAgICAgLy8gKG5vbi1saW5lYXIgZ2VvLXRvLXBpeGVsIG1hcHBpbmcgcHVsbHMgdGhlIHZpZXcgdG93YXJkIHRoZSBwb2xlcykuXG4gICAgICAgIC8vIEluc3RlYWQsIGdlbnRseSBzdGVlciB0aGUgY2VudGVyIHRvd2FyZCB0aGUgY3Vyc29yIGxvY2F0aW9uIHBlciB0aWNrLlxuICAgICAgICBpZiAoc2NhbGUgPCAxKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIUFycmF5LmlzQXJyYXkoc3RhcnRab29tTG5nTGF0KSB8fFxuICAgICAgICAgICAgIU51bWJlci5pc0Zpbml0ZShzdGFydFpvb21MbmdMYXRbMF0pIHx8XG4gICAgICAgICAgICAhTnVtYmVyLmlzRmluaXRlKHN0YXJ0Wm9vbUxuZ0xhdFsxXSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiAodGhpcyBhcyBhbnkpLl9nZXRVcGRhdGVkU3RhdGUoe3pvb219KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBQZXItdGljayBsZXJwIHN0cmVuZ3RoIHNjYWxlcyB3aXRoIHpvb20tb3V0IGFtb3VudDsgY2xhbXBlZCB0byBhdm9pZCBvdmVyc2hvb3QuXG4gICAgICAgICAgY29uc3QgdCA9IE1hdGgubWluKDEsICgxIC0gc2NhbGUpICogMC4xMSk7XG5cbiAgICAgICAgICAvLyBTaG9ydGVzdC1wYXRoIGxvbmdpdHVkZSBpbnRlcnBvbGF0aW9uIChoYW5kbGVzIGFudGltZXJpZGlhbiB3cmFwKS5cbiAgICAgICAgICBsZXQgZExuZyA9IHN0YXJ0Wm9vbUxuZ0xhdFswXSAtIGN1cnJlbnRQcm9wcy5sb25naXR1ZGU7XG4gICAgICAgICAgaWYgKGRMbmcgPiAxODApIGRMbmcgLT0gMzYwO1xuICAgICAgICAgIGlmIChkTG5nIDwgLTE4MCkgZExuZyArPSAzNjA7XG5cbiAgICAgICAgICByZXR1cm4gKHRoaXMgYXMgYW55KS5fZ2V0VXBkYXRlZFN0YXRlKHtcbiAgICAgICAgICAgIHpvb20sXG4gICAgICAgICAgICBsb25naXR1ZGU6IGN1cnJlbnRQcm9wcy5sb25naXR1ZGUgKyBkTG5nICogdCxcbiAgICAgICAgICAgIGxhdGl0dWRlOiBjdXJyZW50UHJvcHMubGF0aXR1ZGUgKyAoc3RhcnRab29tTG5nTGF0WzFdIC0gY3VycmVudFByb3BzLmxhdGl0dWRlKSAqIHRcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHpvb21lZFZpZXdwb3J0ID0gKHRoaXMgYXMgYW55KS5tYWtlVmlld3BvcnQoe1xuICAgICAgICAgIC4uLmN1cnJlbnRQcm9wcyxcbiAgICAgICAgICB6b29tXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFpvb20taW46IGV4YWN0IGFuY2hvciDigJQgdW5wcm9qZWN0IHRoZSBjdXJzb3IgaW4gdGhlIHBvc3Qtem9vbSB2aWV3cG9ydCBhbmRcbiAgICAgICAgLy8gc2hpZnQgdGhlIGNlbnRlciBzbyB0aGUgZ3JhYmJlZCBnZW8gcG9pbnQgbGFuZHMgYmFjayB1bmRlciB0aGUgY3Vyc29yLlxuICAgICAgICAvLyBHdWFyZCB3aXRoIGlzUGl4ZWxPbkdsb2JlOiBpZiBwb3MgbW92ZWQgb2ZmLWdsb2JlIGR1cmluZyBhIGZhc3QgcGluY2gsXG4gICAgICAgIC8vIGZhbGwgYmFjayB0byBjZW50ZXIgem9vbS5cbiAgICAgICAgaWYgKCFpc1BpeGVsT25HbG9iZSh6b29tZWRWaWV3cG9ydCwgcG9zKSkge1xuICAgICAgICAgIHJldHVybiAodGhpcyBhcyBhbnkpLl9nZXRVcGRhdGVkU3RhdGUoe3pvb219KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZyb21Qb3NpdGlvbiA9IHpvb21lZFZpZXdwb3J0LnVucHJvamVjdChwb3MpO1xuXG4gICAgICAgIHJldHVybiAodGhpcyBhcyBhbnkpLl9nZXRVcGRhdGVkU3RhdGUoe1xuICAgICAgICAgIHpvb20sXG4gICAgICAgICAgbG9uZ2l0dWRlOiBzdGFydFpvb21MbmdMYXRbMF0gLSBmcm9tUG9zaXRpb25bMF0gKyB6b29tZWRWaWV3cG9ydC5sb25naXR1ZGUsXG4gICAgICAgICAgbGF0aXR1ZGU6IHN0YXJ0Wm9vbUxuZ0xhdFsxXSAtIGZyb21Qb3NpdGlvblsxXSArIHpvb21lZFZpZXdwb3J0LmxhdGl0dWRlXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICAvLyBDbGVhciB0aGUgcGVyc2lzdGVkIHBpbmNoIGFuY2hvciBhdCBnZXN0dXJlIGVuZC5cbiAgICAgIHpvb21FbmQoKSB7XG4gICAgICAgIHJldHVybiAodGhpcyBhcyBhbnkpLl9nZXRVcGRhdGVkU3RhdGUoe1xuICAgICAgICAgIHN0YXJ0Wm9vbTogbnVsbCxcbiAgICAgICAgICBzdGFydFpvb21MbmdMYXQ6IG51bGxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIC8vIEV4YWN0LCBjdXJzb3ItYW5jaG9yZWQgcGFuOiB0aGUgZ2VvIHBvaW50IGdyYWJiZWQgb24gbW91c2Vkb3duIHN0YXlzXG4gICAgICAvLyBsb2NrZWQgdW5kZXIgdGhlIGN1cnNvciBmb3IgdGhlIHdob2xlIGRyYWcuXG4gICAgICAvL1xuICAgICAgLy8gZGVjay5nbCA5LngncyBHbG9iZUNvbnRyb2xsZXIgcGFucyB3aXRoIGEgKmxpbmVhcml6ZWQsIGNlbnRlci1hbmNob3JlZCpcbiAgICAgIC8vIHJvdGF0aW9uIChHbG9iZVZpZXdwb3J0LnBhbkJ5UG9zaXRpb24oW2xuZyxsYXQsem9vbV0sIHBpeGVsLCBzdGFydFBpeGVsKTpcbiAgICAgIC8vIGxvbmdpdHVkZSArPSAoMC4yNS9zY2FsZSkqKHN0YXJ0UGl4ZWwtcGl4ZWwpKS4gQmVjYXVzZSB0aGUgYW5jaG9yIGlzIHRoZVxuICAgICAgLy8gdmlldyBDRU5URVIgcmF0aGVyIHRoYW4gdGhlIGdyYWJiZWQgcG9pbnQsIHRoZSBmaXJzdCBkcmFnIGZyYW1lIHNuYXBzIHRoZVxuICAgICAgLy8gY2VudGVyIHRvIHNhdGlzZnkgdGhlIGxpbmVhciBhcHByb3hpbWF0aW9uLCBwcm9kdWNpbmcgdGhlIHZpc2libGUgXCJqdW1wIHRvXG4gICAgICAvLyB0aGUgc2lkZS91cFwiIGF0IHRoZSBzdGFydCBvZiBhIHBhbiAobW9zdCBub3RpY2VhYmxlIGF0IGhpZ2ggem9vbSksIGFmdGVyXG4gICAgICAvLyB3aGljaCBpbmNyZW1lbnRhbCBkZWx0YXMgdHJhY2sgZmluZS4gVGhlIGV4YWN0IGFuY2hvciBiZWxvdyByZW1vdmVzIHRoYXRcbiAgICAgIC8vIGZpcnN0LWZyYW1lIHNuYXAuXG4gICAgICBwYW5TdGFydCh7cG9zfToge3BvczogW251bWJlciwgbnVtYmVyXX0pIHtcbiAgICAgICAgY29uc3Qgdmlld3BvcnQgPSAodGhpcyBhcyBhbnkpLm1ha2VWaWV3cG9ydCgodGhpcyBhcyBhbnkpLmdldFZpZXdwb3J0UHJvcHMoKSk7XG4gICAgICAgIC8vIElmIHRoZSBtb3VzZWRvd24gcGl4ZWwgaXMgb3V0c2lkZSB0aGUgZ2xvYmUgc2lsaG91ZXR0ZSwgc3RvcmUgYGZhbHNlYFxuICAgICAgICAvLyBhcyBhbiBleHBsaWNpdCBzZW50aW5lbCBzbyB0aGF0IGV2ZXJ5IHN1YnNlcXVlbnQgYHBhbmAgY2FsbCBmb3IgdGhpc1xuICAgICAgICAvLyBnZXN0dXJlIGlzIGEgbm8tb3AuICBXZSBjYW4ndCByZWx5IG9uIGBfdW5wcm9qZWN0KHBvcylgIHJldHVybmluZ1xuICAgICAgICAvLyB1bmRlZmluZWQgaGVyZSBiZWNhdXNlIEdsb2JlVmlld3BvcnQudW5wcm9qZWN0IGNsYW1wcyB0aGVcbiAgICAgICAgLy8gcmF54oCTc3BoZXJlIGRpc2NyaW1pbmFudCB0byAwIHZpYSBNYXRoLm1heCgwLCDigKYpLCB3aGljaCBtZWFucyBpdFxuICAgICAgICAvLyBhbHdheXMgcmV0dXJucyBhIHZhbGlkLWxvb2tpbmcgbG5nL2xhdCBldmVuIGZvciBvZmYtZ2xvYmUgcGl4ZWxzLlxuICAgICAgICBpZiAoIWlzUGl4ZWxPbkdsb2JlKHZpZXdwb3J0LCBwb3MpKSB7XG4gICAgICAgICAgcmV0dXJuICh0aGlzIGFzIGFueSkuX2dldFVwZGF0ZWRTdGF0ZSh7c3RhcnRQYW5MbmdMYXQ6IGZhbHNlfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICh0aGlzIGFzIGFueSkuX2dldFVwZGF0ZWRTdGF0ZSh7XG4gICAgICAgICAgc3RhcnRQYW5MbmdMYXQ6ICh0aGlzIGFzIGFueSkuX3VucHJvamVjdChwb3MpXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBwYW4oe3Bvcywgc3RhcnRQb3N9OiB7cG9zOiBbbnVtYmVyLCBudW1iZXJdOyBzdGFydFBvcz86IFtudW1iZXIsIG51bWJlcl19KSB7XG4gICAgICAgIGNvbnN0IHN0b3JlZFN0YXJ0ID0gKHRoaXMgYXMgYW55KS5nZXRTdGF0ZSgpLnN0YXJ0UGFuTG5nTGF0O1xuXG4gICAgICAgIGNvbnN0IHByb3BzID0gKHRoaXMgYXMgYW55KS5nZXRWaWV3cG9ydFByb3BzKCk7XG4gICAgICAgIGNvbnN0IHZpZXdwb3J0ID0gKHRoaXMgYXMgYW55KS5tYWtlVmlld3BvcnQocHJvcHMpO1xuXG4gICAgICAgIC8vIGBmYWxzZWAgbWVhbnMgdGhlIGRyYWcgc3RhcnRlZCBvdXRzaWRlIHRoZSBnbG9iZS4gSWYgdGhlIGN1cnNvciBoYXNcbiAgICAgICAgLy8gbm93IG1vdmVkIG9udG8gdGhlIGdsb2JlLCBsYXRjaCB0aGUgY3VycmVudCBwb3NpdGlvbiBhcyB0aGUgYW5jaG9yXG4gICAgICAgIC8vIHNvIHJvdGF0aW9uIGJlZ2lucyBmcm9tIHRoZSBlbnRyeSBwb2ludC4gT3RoZXJ3aXNlIHN0YXkgZnJvemVuLlxuICAgICAgICBpZiAoc3RvcmVkU3RhcnQgPT09IGZhbHNlKSB7XG4gICAgICAgICAgaWYgKCFpc1BpeGVsT25HbG9iZSh2aWV3cG9ydCwgcG9zKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIEN1cnNvciBqdXN0IGVudGVyZWQgdGhlIGdsb2JlIOKAlCBlc3RhYmxpc2ggdGhlIGFuY2hvciBhbmQgcmV0dXJuXG4gICAgICAgICAgLy8gd2l0aG91dCBtb3Zpbmc7IHRoZSBuZXh0IHBhbiBldmVudCB3aWxsIGFwcGx5IHRoZSBmaXJzdCBkZWx0YS5cbiAgICAgICAgICByZXR1cm4gKHRoaXMgYXMgYW55KS5fZ2V0VXBkYXRlZFN0YXRlKHtcbiAgICAgICAgICAgIHN0YXJ0UGFuTG5nTGF0OiAodGhpcyBhcyBhbnkpLl91bnByb2plY3QocG9zKVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc3RhcnRQYW5MbmdMYXQgPSBzdG9yZWRTdGFydCB8fCAodGhpcyBhcyBhbnkpLl91bnByb2plY3Qoc3RhcnRQb3MpO1xuICAgICAgICBpZiAoIXN0YXJ0UGFuTG5nTGF0KSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBPbmNlIHRoZSBjdXJzb3IgbGVhdmVzIHRoZSBnbG9iZSBzaWxob3VldHRlIG1pZC1kcmFnLCBmcmVlemUgdGhlIHZpZXcuXG4gICAgICAgIC8vIHZpZXdwb3J0LnVucHJvamVjdCgpIHNuYXBzIG9mZi1nbG9iZSBwaXhlbHMgdG8gdGhlIG5lYXJlc3QgbGltYiBwb2ludFxuICAgICAgICAvLyAodmlhIE1hdGgubWF4KDAsIOKApikgaW4gaXRzIHJheeKAk3NwaGVyZSBkaXNjcmltaW5hbnQpLCBzbyB3aXRob3V0IHRoaXNcbiAgICAgICAgLy8gZ3VhcmQgdGhlIGdsb2JlIHdvdWxkIGtlZXAgcm90YXRpbmcgdG93YXJkIHRoZSBlZGdlIGFzIHRoZSBjdXJzb3IgbW92ZXNcbiAgICAgICAgLy8gZnVydGhlciBvdXRzaWRlLlxuICAgICAgICBpZiAoIWlzUGl4ZWxPbkdsb2JlKHZpZXdwb3J0LCBwb3MpKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmcm9tUG9zaXRpb24gPSB2aWV3cG9ydC51bnByb2plY3QocG9zKTtcblxuICAgICAgICBjb25zdCBsb25naXR1ZGUgPSBzdGFydFBhbkxuZ0xhdFswXSAtIGZyb21Qb3NpdGlvblswXSArIHByb3BzLmxvbmdpdHVkZTtcbiAgICAgICAgbGV0IGxhdGl0dWRlID0gc3RhcnRQYW5MbmdMYXRbMV0gLSBmcm9tUG9zaXRpb25bMV0gKyBwcm9wcy5sYXRpdHVkZTtcbiAgICAgICAgbGF0aXR1ZGUgPSBjbGFtcChsYXRpdHVkZSwgLUdMT0JFX01BWF9MQVRJVFVERSwgR0xPQkVfTUFYX0xBVElUVURFKTtcblxuICAgICAgICAvLyBkZWNrLmdsIDkncyBHbG9iZVZpZXdwb3J0IHNjYWxlID0gMl4oem9vbSAtIHpvb21BZGp1c3QobGF0aXR1ZGUpKSwgc28gYVxuICAgICAgICAvLyBjb25zdGFudCB6b29tIHdvdWxkIG1ha2UgdGhlIGdsb2JlIGdyb3cgb24gc2NyZWVuIGFzIHRoZSBjZW50ZXIgbW92ZXNcbiAgICAgICAgLy8gdG93YXJkIHRoZSBwb2xlcy4gUmUtY291cGxlIHpvb20gdG8gdGhlIG5ldyBsYXRpdHVkZSAoYXMgZGVjay5nbCA5J3Mgb3duXG4gICAgICAgIC8vIHBhbiBkb2VzKSB0byBrZWVwIHRoZSBvbi1zY3JlZW4gc2NhbGUg4oCUIGFuZCB0aHVzIHRpbGUgTE9EIOKAlCBjb25zdGFudC5cbiAgICAgICAgY29uc3QgdmlzdWFsWm9vbSA9IHByb3BzLnpvb20gLSB6b29tQWRqdXN0KHByb3BzLmxhdGl0dWRlKTtcbiAgICAgICAgY29uc3Qgem9vbSA9IHZpc3VhbFpvb20gKyB6b29tQWRqdXN0KGxhdGl0dWRlKTtcblxuICAgICAgICByZXR1cm4gKHRoaXMgYXMgYW55KS5fZ2V0VXBkYXRlZFN0YXRlKHtsb25naXR1ZGUsIGxhdGl0dWRlLCB6b29tfSk7XG4gICAgICB9XG5cbiAgICAgIHBhbkVuZCgpIHtcbiAgICAgICAgcmV0dXJuICh0aGlzIGFzIGFueSkuX2dldFVwZGF0ZWRTdGF0ZSh7c3RhcnRQYW5MbmdMYXQ6IG51bGx9KTtcbiAgICAgIH1cbiAgICB9IGFzIGFueTtcbiAgfVxufVxuXG4vKipcbiAqIEN1c3RvbSBHbG9iZVZpZXcgdGhhdCB1c2VzIHpvb20tdG8tY3Vyc29yIGNvbnRyb2xsZXIgYmVoYXZpb3IuXG4gKi9cbmV4cG9ydCBjbGFzcyBLZXBsZXJHbG9iZVZpZXcgZXh0ZW5kcyBEZWNrR2xvYmVWaWV3IHtcbiAgLy8gRm9yd2FyZCBjb25zdHJ1Y3RvciBwcm9wcyB0byBkZWNrLmdsJ3MgR2xvYmVWaWV3LiBEZWNsYXJlZCBleHBsaWNpdGx5IGJlY2F1c2VcbiAgLy8gdGhlIGJhc2UgY2xhc3MgaXMgbG9vc2VseSB0eXBlZCAoc2VlIERlY2tHbG9iZVZpZXcgYWJvdmUpLCB3aGljaCB3b3VsZFxuICAvLyBvdGhlcndpc2Ugc3VyZmFjZSBhIHBhcmFtZXRlcmxlc3MgY29uc3RydWN0b3IgdG8gY2FsbGVycy5cbiAgY29uc3RydWN0b3IocHJvcHM/OiBhbnkpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gIH1cblxuICBnZXQgQ29udHJvbGxlclR5cGUoKSB7XG4gICAgcmV0dXJuIFpvb21Ub0N1cnNvckdsb2JlQ29udHJvbGxlcjtcbiAgfVxuXG4gIC8vIGRlY2suZ2wgOSdzIEdsb2JlVmlldy5nZXRWaWV3cG9ydFR5cGUoKSBzd2FwcyB0aGUgdmlld3BvcnQgY2xhc3MgYmFzZWQgb24gem9vbTpcbiAgLy8gICBgcmV0dXJuIHZpZXdTdGF0ZS56b29tID4gMTIgPyBXZWJNZXJjYXRvclZpZXdwb3J0IDogR2xvYmVWaWV3cG9ydDtgXG4gIC8vIENyb3NzaW5nIHpvb20gMTIgdGhlcmVmb3JlIHJlY29tcHV0ZXMgdGlsZSBib3VuZHMgd2l0aCBjb21wbGV0ZWx5IGRpZmZlcmVudFxuICAvLyBwcm9qZWN0aW9uIG1hdGggKGdsb2JlIHZzIGZsYXQgbWVyY2F0b3IpLiBUaGF0IG1ha2VzIGRlY2sncyBUaWxlTGF5ZXIvTVZUTGF5ZXJcbiAgLy8gcmVzZWxlY3QgdGlsZXMgaW5jb25zaXN0ZW50bHkgYWNyb3NzIHRoZSBib3VuZGFyeSDigJQgbWl4ZWQgTE9EcyAoZS5nLiBhIHo0IHRpbGVcbiAgLy8gbmV4dCB0byB6MTEpLCBhIHZpc2libGUgXCJmbGlja2VyXCIgYXQgMTIsIGFuZCB0aWxlcyB0aGF0IGdldCBkcm9wcGVkIGFuZCBzdGlja1xuICAvLyBhcyBibGFjay9lbXB0eSBxdWFkcyAobW9zdCBvZnRlbiBjcm9zc2luZyAxMiBvbiB0aGUgd2F5ICpvdXQqKS5cbiAgLy9cbiAgLy8gRm9yY2UgR2xvYmVWaWV3cG9ydCBhdCBldmVyeSB6b29tIHRvIGVsaW1pbmF0ZSB0aGUgej0xMiB2aWV3cG9ydCBzd2FwIHNvIHRpbGVcbiAgLy8gc2VsZWN0aW9uIHN0YXlzIGNvbnNpc3RlbnQuIFRoZSB0cmFkZS1vZmYgaXMgdGhhdCB6b29tID4gMTIgbm93IHVzZXMgZmxvYXQzMlxuICAvLyBnbG9iZSBwcmVjaXNpb24gKGRlY2sncyBkb2N1bWVudGVkIFwibm8gaGlnaC1wcmVjaXNpb24gcmVuZGVyaW5nID4gMTJcIiBsaW1pdClcbiAgLy8gaW5zdGVhZCBvZiBzd2l0Y2hpbmcgdG8gbWVyY2F0b3Ig4oCUIGZhciBwcmVmZXJhYmxlIHRvIHRoZSBibGFjayBxdWFkcy5cbiAgZ2V0Vmlld3BvcnRUeXBlKCkge1xuICAgIHJldHVybiBEZWNrR2xvYmVWaWV3cG9ydDtcbiAgfVxufVxuXG5LZXBsZXJHbG9iZVZpZXcuZGlzcGxheU5hbWUgPSAnS2VwbGVyR2xvYmVWaWV3JztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7O0FBRUEsT0FBTyxLQUFLQSxRQUFRLE1BQU0sZUFBZTtBQUN6QyxTQUFRQyxLQUFLLEVBQUVDLElBQUksUUFBTyxlQUFlO0FBQ3pDLFNBQVFDLGtCQUFrQixRQUFPLHNCQUFzQjtBQUN2RCxTQUFRQyxtQkFBbUIsUUFBTywwQkFBMEI7O0FBRTVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBTUMsYUFBYSxHQUFJTCxRQUFRLENBQVNNLFVBQWlCO0FBQ3pELElBQU1DLGVBQWUsR0FBSVAsUUFBUSxDQUFTUSxnQkFBdUI7QUFDakUsSUFBTUMsaUJBQWlCLEdBQUlULFFBQVEsQ0FBU1UsY0FBcUI7O0FBRWpFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQyxVQUFVQSxDQUFDQyxRQUFnQixFQUFVO0VBQzVDLE9BQU9DLElBQUksQ0FBQ0MsSUFBSSxDQUFDRCxJQUFJLENBQUNFLEVBQUUsR0FBR0YsSUFBSSxDQUFDRyxHQUFHLENBQUVKLFFBQVEsR0FBR0MsSUFBSSxDQUFDRSxFQUFFLEdBQUksR0FBRyxDQUFDLENBQUM7QUFDbEU7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTRSxjQUFjQSxDQUFDQyxRQUFhLEVBQUVDLEdBQXFCLEVBQVc7RUFDckUsSUFBTUMsQ0FBVyxHQUFHRixRQUFRLENBQUNHLHVCQUF1QjtFQUNwRCxJQUFJLENBQUNELENBQUMsRUFBRSxPQUFPLElBQUksQ0FBQyxDQUFDOztFQUVyQjtFQUNBLElBQU1FLEVBQUUsR0FBR3BCLElBQUksQ0FBQ3FCLGFBQWEsQ0FBQyxFQUFFLEVBQUUsQ0FBQ0osR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFQSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUVDLENBQUMsQ0FBQztFQUM3RCxJQUFNSSxFQUFFLEdBQUd0QixJQUFJLENBQUNxQixhQUFhLENBQUMsRUFBRSxFQUFFLENBQUNKLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRUEsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRUMsQ0FBQyxDQUFDO0VBQzVELElBQUlFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUlFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsT0FBTyxJQUFJLENBQUMsQ0FBQzs7RUFFN0M7RUFDQSxJQUFNQyxFQUFFLEdBQUdILEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBR0EsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUFFSSxFQUFFLEdBQUdKLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBR0EsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUFFSyxFQUFFLEdBQUdMLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBR0EsRUFBRSxDQUFDLENBQUMsQ0FBQztFQUNoRSxJQUFNTSxFQUFFLEdBQUdKLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBR0EsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUFFSyxFQUFFLEdBQUdMLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBR0EsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUFFTSxFQUFFLEdBQUdOLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBR0EsRUFBRSxDQUFDLENBQUMsQ0FBQzs7RUFFaEU7RUFDQSxJQUFNTyxFQUFFLEdBQUdILEVBQUUsR0FBR0gsRUFBRTtJQUFFTyxFQUFFLEdBQUdILEVBQUUsR0FBR0gsRUFBRTtJQUFFTyxFQUFFLEdBQUdILEVBQUUsR0FBR0gsRUFBRTs7RUFFOUM7RUFDQTtFQUNBLElBQU1PLEVBQUUsR0FBR1IsRUFBRSxHQUFHTyxFQUFFLEdBQUdOLEVBQUUsR0FBR0ssRUFBRTtFQUM1QixJQUFNRyxFQUFFLEdBQUdSLEVBQUUsR0FBR0ksRUFBRSxHQUFHTixFQUFFLEdBQUdR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UTtVQUNuRUEsUUFBUSxHQUFHWCxLQUFLLENBQUNXLFFBQVEsRUFBRSxDQUFDVCxrQkFBa0IsRUFBRUEsa0JBQWtCLENBQUM7O1VBRW5FO1VBQ0E7VUFDQTtVQUNBO1VBQ0EsSUFBTXdHLFVBQVUsR0FBR2hELEtBQUssQ0FBQ0ksSUFBSSxHQUFHcEQsVUFBVSxDQUFDZ0QsS0FBSyxDQUFDL0MsUUFBUSxDQUFDO1VBQzFELElBQU1tRCxJQUFJLEdBQUc0QyxVQUFVLEdBQUdoRyxVQUFVLENBQUNDLFFBQVEsQ0FBQztVQUU5QyxPQUFRLElBQUksQ0FBUzJFLGdCQUFnQixDQUFDO1lBQUNRLFNBQVMsRUFBVEEsU0FBUztZQUFFbkYsUUFBUSxFQUFSQSxRQUFRO1lBQUVtRCxJQUFJLEVBQUpBO1VBQUksQ0FBQyxDQUFDO1FBQ3BFO01BQUM7UUFBQVAsR0FBQTtRQUFBQyxLQUFBLEVBRUQsU0FBQW1ELE1BQU1BLENBQUEsRUFBRztVQUNQLE9BQVEsSUFBSSxDQUFTckIsZ0JBQWdCLENBQUM7WUFBQ2dCLGNBQWMsRUFBRTtVQUFJLENBQUMsQ0FBQztRQUMvRDtNQUFDO0lBQUEsRUFwT29EdEQsa0JBQWtCLENBcU9qRTtJQUFDLE9BQUFWLEtBQUE7RUFDWDtFQUFDZSxTQUFBLENBQUFoQiwyQkFBQSxFQUFBOUIsZ0JBQUE7RUFBQSxPQUFBK0MsWUFBQSxDQUFBakIsMkJBQUE7QUFBQSxFQXRQdUMvQixlQUFlO0FBeVB6RDtBQUNBO0FBQ0E7QUFDQSxXQUFhc0csZUFBZSwwQkFBQUMsY0FBQTtFQUMxQjtFQUNBO0VBQ0E7RUFDQSxTQUFBRCxnQkFBWWxELEtBQVcsRUFBRTtJQUFBbkIsZUFBQSxPQUFBcUUsZUFBQTtJQUFBLE9BQUE5RCxVQUFBLE9BQUE4RCxlQUFBLEdBQ2pCbEQsS0FBSztFQUNiO0VBQUNMLFNBQUEsQ0FBQXVELGVBQUEsRUFBQUMsY0FBQTtFQUFBLE9BQUF2RCxZQUFBLENBQUFzRCxlQUFBO0lBQUFyRCxHQUFBO0lBQUF1RCxHQUFBLEVBRUQsU0FBQUEsSUFBQSxFQUFxQjtNQUNuQixPQUFPekUsMkJBQTJCO0lBQ3BDOztJQUVBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtFQUFBO0lBQUFrQixHQUFBO0lBQUFDLEtBQUEsRUFDQSxTQUFBdUQsZUFBZUEsQ0FBQSxFQUFHO01BQ2hCLE9BQU92RyxpQkFBaUI7SUFDMUI7RUFBQztBQUFBLEVBMUJrQ0osYUFBYTtBQTZCbER3RyxlQUFlLENBQUNJLFdBQVcsR0FBRyxpQkFBaUIiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
398
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEZWNrQ29yZSIsImNsYW1wIiwidmVjNCIsIkdMT0JFX01BWF9MQVRJVFVERSIsIkdMT0JFX0NPTU1PTl9SQURJVVMiLCJEZWNrR2xvYmVWaWV3IiwiX0dsb2JlVmlldyIsIkdsb2JlQ29udHJvbGxlciIsIl9HbG9iZUNvbnRyb2xsZXIiLCJEZWNrR2xvYmVWaWV3cG9ydCIsIl9HbG9iZVZpZXdwb3J0Iiwiem9vbUFkanVzdCIsImxhdGl0dWRlIiwiTWF0aCIsImxvZzIiLCJQSSIsImNvcyIsImlzUGl4ZWxPbkdsb2JlIiwidmlld3BvcnQiLCJwb3MiLCJtIiwicGl4ZWxVbnByb2plY3Rpb25NYXRyaXgiLCJwMCIsInRyYW5zZm9ybU1hdDQiLCJwMSIsImF4IiwiYXkiLCJheiIsImJ4IiwiYnkiLCJieiIsImR4IiwiZHkiLCJkeiIsImN4IiwiY3kiLCJjeiIsImRTcXIiLCJab29tVG9DdXJzb3JHbG9iZUNvbnRyb2xsZXIiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjayIsIl9sZW4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiX2NhbGxTdXBlciIsImNvbmNhdCIsIk9yaWdpbmFsR2xvYmVTdGF0ZSIsIkNvbnRyb2xsZXJTdGF0ZSIsIm9mZkdsb2JlWm9vbUF0IiwiX09yaWdpbmFsR2xvYmVTdGF0ZSIsIlBhdGNoZWRHbG9iZVN0YXRlIiwiX2luaGVyaXRzIiwiX2NyZWF0ZUNsYXNzIiwia2V5IiwidmFsdWUiLCJhcHBseUNvbnN0cmFpbnRzIiwicHJvcHMiLCJyZXN1bHQiLCJfc3VwZXJQcm9wR2V0IiwiY2xhbXBlZExhdGl0dWRlIiwiem9vbSIsIl9jb25zdHJhaW5ab29tIiwiZ2V0Vmlld3BvcnRQcm9wcyIsIl9wcm9wcyIsIm1heFpvb20iLCJfcHJvcHMyIiwibWluWm9vbSIsInVuZGVmaW5lZCIsIlpPT00wIiwiem9vbUFkanVzdG1lbnQiLCJfcmVmIiwic3RhcnRQb3MiLCJzY2FsZSIsIl9nZXRTdGF0ZSIsImdldFN0YXRlIiwic3RhcnRab29tIiwic3RhcnRab29tTG5nTGF0IiwiY3VycmVudFByb3BzIiwiQlVSU1RfVElNRU9VVF9NUyIsIm5vdyIsIkRhdGUiLCJhbmNob3JWaWV3cG9ydCIsIm1ha2VWaWV3cG9ydCIsIm9uR2xvYmUiLCJfZ2V0VXBkYXRlZFN0YXRlIiwiX3VucHJvamVjdCIsImlzQXJyYXkiLCJOdW1iZXIiLCJpc0Zpbml0ZSIsInQiLCJtaW4iLCJkTG5nIiwibG9uZ2l0dWRlIiwiem9vbWVkVmlld3BvcnQiLCJfb2JqZWN0U3ByZWFkIiwiZnJvbVBvc2l0aW9uIiwidW5wcm9qZWN0Iiwiem9vbUVuZCIsInBhblN0YXJ0IiwiX3JlZjIiLCJzdGFydFBhbkxuZ0xhdCIsInBhbiIsIl9yZWYzIiwic3RvcmVkU3RhcnQiLCJ2aXN1YWxab29tIiwicGFuRW5kIiwiS2VwbGVyR2xvYmVWaWV3IiwiX0RlY2tHbG9iZVZpZXciLCJnZXQiLCJnZXRWaWV3cG9ydFR5cGUiLCJkaXNwbGF5TmFtZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nbG9iZS9nbG9iZS12aWV3LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCAqIGFzIERlY2tDb3JlIGZyb20gJ0BkZWNrLmdsL2NvcmUnO1xuaW1wb3J0IHtjbGFtcCwgdmVjNH0gZnJvbSAnQG1hdGguZ2wvY29yZSc7XG5pbXBvcnQge0dMT0JFX01BWF9MQVRJVFVERX0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtHTE9CRV9DT01NT05fUkFESVVTfSBmcm9tICcuL2dsb2JlLWRlcHRoLWRpc2stbGF5ZXInO1xuXG4vLyBkZWNrLmdsIGV4cG9zZXMgR2xvYmVWaWV3IC8gR2xvYmVDb250cm9sbGVyIGFzIGV4cGVyaW1lbnRhbCwgdW5kZXJzY29yZS1wcmVmaXhlZFxuLy8gbWVtYmVycy4gVGhlaXIgbmFtZWQgdHlwZSBiaW5kaW5ncyBhcmVuJ3QgcmVsaWFibHkgcmVzb2x2YWJsZSB0aHJvdWdoIHRoZVxuLy8gcGFja2FnZSBiYXJyZWwgdW5kZXIgdGhpcyBwcm9qZWN0J3MgbW9kdWxlIHJlc29sdXRpb24sIHNvIHdlIHB1bGwgdGhlbSBvZmYgdGhlXG4vLyBuYW1lc3BhY2Ugd2l0aCBhIGxvb3NlIHR5cGUuIFJ1bnRpbWUgYmVoYXZpb3IgaXMgdW5jaGFuZ2VkLlxuY29uc3QgRGVja0dsb2JlVmlldyA9IChEZWNrQ29yZSBhcyBhbnkpLl9HbG9iZVZpZXcgYXMgYW55O1xuY29uc3QgR2xvYmVDb250cm9sbGVyID0gKERlY2tDb3JlIGFzIGFueSkuX0dsb2JlQ29udHJvbGxlciBhcyBhbnk7XG5jb25zdCBEZWNrR2xvYmVWaWV3cG9ydCA9IChEZWNrQ29yZSBhcyBhbnkpLl9HbG9iZVZpZXdwb3J0IGFzIGFueTtcblxuLyoqXG4gKiBMYXRpdHVkZS1iYXNlZCB6b29tIGFkanVzdG1lbnQgdXNlZCBieSBkZWNrLmdsJ3MgR2xvYmVWaWV3cG9ydCwgcmVwbGljYXRlZFxuICogaGVyZSBzbyBvdXIgY3VzdG9tIGBfY29uc3RyYWluWm9vbWAgbWF0Y2hlcyBkZWNrLmdsJ3MgY29vcmRpbmF0ZSBtYXRoLlxuICogU2VlIEBkZWNrLmdsL2NvcmUgZ2xvYmUtdmlld3BvcnQuanMgYHpvb21BZGp1c3RgLlxuICovXG5mdW5jdGlvbiB6b29tQWRqdXN0KGxhdGl0dWRlOiBudW1iZXIpOiBudW1iZXIge1xuICByZXR1cm4gTWF0aC5sb2cyKE1hdGguUEkgKiBNYXRoLmNvcygobGF0aXR1ZGUgKiBNYXRoLlBJKSAvIDE4MCkpO1xufVxuXG4vKipcbiAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgc2NyZWVuIHBpeGVsIGBwb3NgIGxpZXMgd2l0aGluIHRoZSB2aXNpYmxlIGdsb2JlXG4gKiBzaWxob3VldHRlLlxuICpcbiAqIEdsb2JlVmlld3BvcnQudW5wcm9qZWN0KCkgY2xhbXBzIHRoZSByYXnigJNzcGhlcmUgZGlzY3JpbWluYW50IHdpdGhcbiAqIE1hdGgubWF4KDAsIHLCsuKIkmTCsiksIHNvIGl0IGFsd2F5cyByZXR1cm5zIGEgdmFsaWQgbG5nL2xhdCBldmVuIGZvclxuICogb2ZmLWdsb2JlIHBpeGVscyAoc25hcHBpbmcgdG8gdGhlIGxpbWIpLiAgV2UgcmVwbGljYXRlIHRoZSBzYW1lIHJheSBjYXN0XG4gKiBidXQgY2hlY2sgdGhlIGRpc2NyaW1pbmFudCBiZWZvcmUgdGhlIGNsYW1wIHVzaW5nIHRoZSBzdGFuZGFyZFxuICogc3F1YXJlZC1kaXN0YW5jZS1mcm9tLW9yaWdpbi10by1yYXkgZm9ybXVsYTogfFDigoAgw5cgZGlyfMKyIC8gfGRpcnzCsi5cbiAqL1xuZnVuY3Rpb24gaXNQaXhlbE9uR2xvYmUodmlld3BvcnQ6IGFueSwgcG9zOiBbbnVtYmVyLCBudW1iZXJdKTogYm9vbGVhbiB7XG4gIGNvbnN0IG06IG51bWJlcltdID0gdmlld3BvcnQucGl4ZWxVbnByb2plY3Rpb25NYXRyaXg7XG4gIGlmICghbSkgcmV0dXJuIHRydWU7IC8vIGNvbnNlcnZhdGl2ZSBmYWxsYmFjayBpZiBtYXRyaXggdW5hdmFpbGFibGVcblxuICAvLyBDYXN0IGEgcmF5IHRocm91Z2ggdGhlIHBpeGVsIGF0IHRoZSBuZWFyIGFuZCBmYXIgcGxhbmVzLlxuICBjb25zdCBwMCA9IHZlYzQudHJhbnNmb3JtTWF0NChbXSwgW3Bvc1swXSwgcG9zWzFdLCAtMSwgMV0sIG0pO1xuICBjb25zdCBwMSA9IHZlYzQudHJhbnNmb3JtTWF0NChbXSwgW3Bvc1swXSwgcG9zWzFdLCAxLCAxXSwgbSk7XG4gIGlmIChwMFszXSA9PT0gMCB8fCBwMVszXSA9PT0gMCkgcmV0dXJuIHRydWU7IC8vIGRlZ2VuZXJhdGUgcHJvamVjdGlvblxuXG4gIC8vIFBlcnNwZWN0aXZlLWRpdmlkZSB0byB3b3JsZCBzcGFjZS5cbiAgY29uc3QgYXggPSBwMFswXSAvIHAwWzNdLCBheSA9IHAwWzFdIC8gcDBbM10sIGF6ID0gcDBbMl0gLyBwMFszXTtcbiAgY29uc3QgYnggPSBwMVswXSAvIHAxWzNdLCBieSA9IHAxWzFdIC8gcDFbM10sIGJ6ID0gcDFbMl0gLyBwMVszXTtcblxuICAvLyBSYXkgZGlyZWN0aW9uLlxuICBjb25zdCBkeCA9IGJ4IC0gYXgsIGR5ID0gYnkgLSBheSwgZHogPSBieiAtIGF6O1xuXG4gIC8vIFNxdWFyZWQgZGlzdGFuY2UgZnJvbSB0aGUgb3JpZ2luIChnbG9iZSBjZW50ZXIpIHRvIHRoZSByYXk6XG4gIC8vICAgZMKyID0gfFDigoAgw5cgZGlyfMKyIC8gfGRpcnzCslxuICBjb25zdCBjeCA9IGF5ICogZHogLSBheiAqIGR5O1xuICBjb25zdCBjeSA9IGF6ICogZHggLSBheCAqIGR6O1xuICBjb25zdCBjeiA9IGF4ICogZHkgLSBheSAqIGR4O1xuICBjb25zdCBkU3FyID0gKGN4ICogY3ggKyBjeSAqIGN5ICsgY3ogKiBjeikgLyAoZHggKiBkeCArIGR5ICogZHkgKyBkeiAqIGR6KTtcblxuICByZXR1cm4gZFNxciA8PSBHTE9CRV9DT01NT05fUkFESVVTICogR0xPQkVfQ09NTU9OX1JBRElVUztcbn1cblxuLyoqXG4gKiBDdXN0b20gR2xvYmVDb250cm9sbGVyIHRoYXQgcmVzdG9yZXMgem9vbS10by1jdXJzb3IgYmVoYXZpb3IuXG4gKlxuICogSW4gZGVjay5nbCA5LngsIHRoZSBkZWZhdWx0IEdsb2JlQ29udHJvbGxlcidzIEdsb2JlU3RhdGUuem9vbSgpIGlnbm9yZXMgdGhlXG4gKiBjdXJzb3IgcG9zaXRpb24gYW5kIGFsd2F5cyB6b29tcyB0b3dhcmQgdGhlIGNlbnRlci4gVGhpcyBjb250cm9sbGVyIHBhdGNoZXNcbiAqIHRoYXQgYmVoYXZpb3IgYnkgb3ZlcnJpZGluZyB0aGUgQ29udHJvbGxlclN0YXRlJ3Mgem9vbSBtZXRob2QgdG8gcGFuIHRoZVxuICogZ2xvYmUgdW5kZXIgdGhlIGN1cnNvciB3aGlsZSB6b29taW5nLCBzbyB6b29tLXRvLWN1cnNvciB3b3JrcyB0aGUgc2FtZSB3YXkgaXRcbiAqIGRvZXMgZm9yIHRoZSAyRCBNYXBDb250cm9sbGVyLlxuICovXG5jbGFzcyBab29tVG9DdXJzb3JHbG9iZUNvbnRyb2xsZXIgZXh0ZW5kcyBHbG9iZUNvbnRyb2xsZXIge1xuICBjb25zdHJ1Y3RvciguLi5hcmdzOiBhbnlbXSkge1xuICAgIHN1cGVyKC4uLmFyZ3MpO1xuICAgIGNvbnN0IE9yaWdpbmFsR2xvYmVTdGF0ZSA9IHRoaXMuQ29udHJvbGxlclN0YXRlO1xuXG4gICAgLy8gVHJhY2tzIHdoZW4gdGhlIG1vc3QgcmVjZW50IG9mZi1nbG9iZSB3aGVlbC16b29tIHRpY2sgZmlyZWQuXG4gICAgLy8gU3RvcmVkIGFzIGEgY29udHJvbGxlci1sZXZlbCBjbG9zdXJlIHZhcmlhYmxlIHJhdGhlciB0aGFuIGluIFZpZXdTdGF0ZVxuICAgIC8vIGJlY2F1c2UgZGVjay5nbCdzIENvbnRyb2xsZXIgbmV2ZXIgY2FsbHMgem9vbUVuZCgpIGZvciB3aGVlbCBldmVudHMg4oCUXG4gICAgLy8gb25seSBmb3IgcGluY2gvdG91Y2gg4oCUIHNvIHRoZXJlIGlzIG5vIHJlbGlhYmxlIGhvb2sgdG8gY2xlYXIgYVxuICAgIC8vIFZpZXdTdGF0ZS1iYXNlZCBzZW50aW5lbCBhZnRlciBhIHdoZWVsIHNjcm9sbCBzZXNzaW9uIGVuZHMuXG4gICAgLy8gQSBzaW1wbGUgdGltZXN0YW1wIGxldHMgdXMgZGV0ZWN0IHdoZW4gYSBuZXcgc2Nyb2xsIGJ1cnN0IGhhcyBzdGFydGVkXG4gICAgLy8gKD4gQlVSU1RfVElNRU9VVF9NUyBzaW5jZSB0aGUgbGFzdCBvZmYtZ2xvYmUgdGljaykgc28gY3Vyc29yLWFuY2hvcmVkXG4gICAgLy8gem9vbSBjYW4gcmVzdW1lIG5hdHVyYWxseSBvbiB0aGUgbmV4dCBpbmRlcGVuZGVudCBzY3JvbGwuXG4gICAgbGV0IG9mZkdsb2JlWm9vbUF0OiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIC8vIENyZWF0ZSBwYXRjaGVkIEdsb2JlU3RhdGUgdGhhdCBzdXBwb3J0cyB6b29tLXRvLWN1cnNvclxuICAgIHRoaXMuQ29udHJvbGxlclN0YXRlID0gY2xhc3MgUGF0Y2hlZEdsb2JlU3RhdGUgZXh0ZW5kcyBPcmlnaW5hbEdsb2JlU3RhdGUge1xuICAgICAgLy8gQ29uc3RyYWluIHRoZSBjYW1lcmEgdGFyZ2V0IHRvIGEgbGF0aXR1ZGUgYmFuZCBhcm91bmQgdGhlIGVxdWF0b3Igc28gdGhlXG4gICAgICAvLyB2aWV3IGNhbid0IGJlIGNlbnRlcmVkIG9uIHRoZSBwb2xlcy4gZGVjay5nbCdzIGFwcGx5Q29uc3RyYWludHMgY2xhbXBzXG4gICAgICAvLyBsYXRpdHVkZSB0byB+ODXCsCwgd2hpY2ggc3RpbGwgbGV0cyB0aGUgY2FtZXJhIGxvb2sgc3RyYWlnaHQgYXQgYSBwb2xlLlxuICAgICAgYXBwbHlDb25zdHJhaW50cyhwcm9wczogYW55KSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHN1cGVyLmFwcGx5Q29uc3RyYWludHMocHJvcHMpO1xuICAgICAgICBjb25zdCBjbGFtcGVkTGF0aXR1ZGUgPSBjbGFtcChyZXN1bHQubGF0aXR1ZGUsIC1HTE9CRV9NQVhfTEFUSVRVREUsIEdMT0JFX01BWF9MQVRJVFVERSk7XG4gICAgICAgIGlmIChjbGFtcGVkTGF0aXR1ZGUgIT09IHJlc3VsdC5sYXRpdHVkZSkge1xuICAgICAgICAgIC8vIGRlY2suZ2wgY291cGxlcyB6b29tIHRvIGxhdGl0dWRlIHZpYSB6b29tQWRqdXN0OyB3aGVuIHdlIGZ1cnRoZXJcbiAgICAgICAgICAvLyBjbGFtcCBsYXRpdHVkZSwgcmUtYXBwbHkgdGhlIHNhbWUgZGVsdGEgc28gem9vbSBzdGF5cyBjb25zaXN0ZW50LlxuICAgICAgICAgIHJlc3VsdC56b29tICs9IHpvb21BZGp1c3QoY2xhbXBlZExhdGl0dWRlKSAtIHpvb21BZGp1c3QocmVzdWx0LmxhdGl0dWRlKTtcbiAgICAgICAgICByZXN1bHQubGF0aXR1ZGUgPSBjbGFtcGVkTGF0aXR1ZGU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cblxuICAgICAgLy8gZGVjay5nbCdzIEdsb2JlU3RhdGUuX2NvbnN0cmFpblpvb20gZGVyaXZlcyBhIG1pbmltdW0gem9vbSBmcm9tIGBtYXhCb3VuZHNgXG4gICAgICAvLyB0aGF0IGZvcmNlcyB0aGUgZ2xvYmUgdG8gZmlsbCB0aGUgdmlld3BvcnQuIFRoYXQgYm91bmRzLWJhc2VkIG1pbmltdW1cbiAgICAgIC8vICh+MyBmb3IgYSB0eXBpY2FsIHdpbmRvdykgb3ZlcnJpZGVzIGFueSBjb25maWd1cmVkIGBtaW5ab29tYCwgc28gdGhlIHVzZXJcbiAgICAgIC8vIGNhbiBuZXZlciB6b29tIG91dCBmYXIgZW5vdWdoIHRvIHNlZSB0aGUgd2hvbGUgZ2xvYmUgc21hbGwgb24gc2NyZWVuLlxuICAgICAgLy8gT3ZlcnJpZGUgaXQgdG8gaG9ub3Igb25seSB0aGUgY29uZmlndXJlZCBtaW5ab29tL21heFpvb20gKHBsdXMgdGhlIHNhbWVcbiAgICAgIC8vIGxhdGl0dWRlIGFkanVzdG1lbnQgZGVjay5nbCB1c2VzKSwgaWdub3JpbmcgdGhlIGJvdW5kcy1iYXNlZCBmbG9vci5cbiAgICAgIF9jb25zdHJhaW5ab29tKHpvb206IG51bWJlciwgcHJvcHM/OiBhbnkpIHtcbiAgICAgICAgcHJvcHMgPSBwcm9wcyB8fCAodGhpcyBhcyBhbnkpLmdldFZpZXdwb3J0UHJvcHMoKTtcbiAgICAgICAgY29uc3Qge2xhdGl0dWRlLCBtYXhab29tfSA9IHByb3BzO1xuICAgICAgICBsZXQge21pblpvb219ID0gcHJvcHM7XG4gICAgICAgIGlmIChtaW5ab29tID09PSB1bmRlZmluZWQgfHwgbWluWm9vbSA9PT0gbnVsbCkge1xuICAgICAgICAgIG1pblpvb20gPSAwO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IFpPT00wID0gem9vbUFkanVzdCgwKTtcbiAgICAgICAgY29uc3Qgem9vbUFkanVzdG1lbnQgPSB6b29tQWRqdXN0KGxhdGl0dWRlKSAtIFpPT00wO1xuICAgICAgICByZXR1cm4gY2xhbXAoem9vbSwgbWluWm9vbSArIHpvb21BZGp1c3RtZW50LCBtYXhab29tICsgem9vbUFkanVzdG1lbnQpO1xuICAgICAgfVxuXG4gICAgICAvLyBFeGFjdCB6b29tLXRvLWN1cnNvci4gZGVjay5nbCA5LngncyBHbG9iZUNvbnRyb2xsZXIgZG9lcyBub3Qga2VlcCB0aGUgcG9pbnRcbiAgICAgIC8vIHVuZGVyIHRoZSBjdXJzb3IgZml4ZWQgd2hpbGUgem9vbWluZywgaW4gdHdvIHdheXMgd2Ugd29yayBhcm91bmQgaGVyZTpcbiAgICAgIC8vICAgMS4gSXRzIEdsb2JlU3RhdGUuem9vbSgpIGlnbm9yZXMgdGhlIGN1cnNvciBhbmQgem9vbXMgdG93YXJkIHRoZSBjZW50ZXIuXG4gICAgICAvLyAgIDIuIEl0cyBHbG9iZVZpZXdwb3J0LnBhbkJ5UG9zaXRpb24gaXMgYSBsb3NzeSwgKmxpbmVhcml6ZWQqIDMtYXJnXG4gICAgICAvLyAgICAgIHJvdGF0aW9uIChsb25naXR1ZGUgKz0gKDAuMjUvc2NhbGUpKihzdGFydFBpeGVsLXBpeGVsKSwgcmUtZGVyaXZlc1xuICAgICAgLy8gICAgICB6b29tKS4gVXNpbmcgaXQgcGVyIHdoZWVsIHRpY2sgYWNjdW11bGF0ZXMgZXJyb3IsIHNvIGFmdGVyIGEgbG9uZ1xuICAgICAgLy8gICAgICBjb250aW51b3VzIHpvb20gdGhlIHBvaW50IGVuZHMgdXAgbm90aWNlYWJseSBzaGlmdGVkIGZyb20gd2hhdCB3YXNcbiAgICAgIC8vICAgICAgb3JpZ2luYWxseSB1bmRlciB0aGUgY3Vyc29yLlxuICAgICAgLy8gVGhlIHJlY2VudGVyIGJlbG93IGlzIGFuICpleGFjdCBhYnNvbHV0ZSogdHJhbnNsYXRpb246IHVucHJvamVjdCB0aGVcbiAgICAgIC8vIGN1cnNvciBwaXhlbCBpbiB0aGUgem9vbWVkIHZpZXdwb3J0IHRvIGdldCB0aGUgZ2VvIHBvaW50IGN1cnJlbnRseSB1bmRlciBpdCxcbiAgICAgIC8vIHRoZW4gc2hpZnQgdGhlIGNlbnRlciBieSAoYW5jaG9yIC0gdGhhdFBvaW50KS4gTm8gem9vbSBjb3VwbGluZywgbm9cbiAgICAgIC8vIHJvdGF0aW9uU3BlZWQsIGFuZCBpdCBhcHBsaWVzIHRvIHpvb20taW4gYW5kIHpvb20tb3V0IHN5bW1ldHJpY2FsbHksIHNvXG4gICAgICAvLyB0aGVyZSBpcyBubyBwZXItdGljayBhY2N1bXVsYXRlZCBkcmlmdC5cbiAgICAgIHpvb20oe1xuICAgICAgICBwb3MsXG4gICAgICAgIHN0YXJ0UG9zLFxuICAgICAgICBzY2FsZVxuICAgICAgfToge1xuICAgICAgICBwb3M6IFtudW1iZXIsIG51bWJlcl07XG4gICAgICAgIHN0YXJ0UG9zPzogW251bWJlciwgbnVtYmVyXTtcbiAgICAgICAgc2NhbGU6IG51bWJlcjtcbiAgICAgIH0pIHtcbiAgICAgICAgbGV0IHtzdGFydFpvb20sIHN0YXJ0Wm9vbUxuZ0xhdH0gPSAodGhpcyBhcyBhbnkpLmdldFN0YXRlKCk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRQcm9wcyA9ICh0aGlzIGFzIGFueSkuZ2V0Vmlld3BvcnRQcm9wcygpO1xuXG4gICAgICAgIGlmICghc3RhcnRab29tTG5nTGF0KSB7XG4gICAgICAgICAgLy8gV2hlZWwgem9vbTogcmUtZGVyaXZlIGFuY2hvciBlYWNoIHRpY2sgKHBpbmNoIHNldHMgaXQgb25jZSBpbiB6b29tU3RhcnQpLlxuICAgICAgICAgIHN0YXJ0Wm9vbSA9IGN1cnJlbnRQcm9wcy56b29tO1xuXG4gICAgICAgICAgLy8gU3VwcHJlc3MgY3Vyc29yLWFuY2hvcmluZyB3aGVuIHRoZSBjdXJzb3IgaXMgb2ZmLWdsb2JlIG9yIHdoZW4gYVxuICAgICAgICAgIC8vIHJlY2VudCB0aWNrIHdhcyBvZmYtZ2xvYmUgKHdpdGhpbiBCVVJTVF9USU1FT1VUX01TKS4gIGRlY2suZ2wgbmV2ZXJcbiAgICAgICAgICAvLyBjYWxscyB6b29tRW5kKCkgZm9yIHdoZWVsIGV2ZW50cyBzbyB3ZSB0cmFjayB0aGUgc2Vzc2lvbiB3aXRoIHRoZVxuICAgICAgICAgIC8vIGNsb3N1cmUgdmFyaWFibGUgYG9mZkdsb2JlWm9vbUF0YCByYXRoZXIgdGhhbiBWaWV3U3RhdGUuXG4gICAgICAgICAgY29uc3QgQlVSU1RfVElNRU9VVF9NUyA9IDIwMDtcbiAgICAgICAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuICAgICAgICAgIGNvbnN0IGFuY2hvclZpZXdwb3J0ID0gKHRoaXMgYXMgYW55KS5tYWtlVmlld3BvcnQoY3VycmVudFByb3BzKTtcbiAgICAgICAgICBjb25zdCBvbkdsb2JlID0gaXNQaXhlbE9uR2xvYmUoYW5jaG9yVmlld3BvcnQsIHN0YXJ0UG9zIHx8IHBvcyk7XG5cbiAgICAgICAgICBpZiAoIW9uR2xvYmUpIG9mZkdsb2JlWm9vbUF0ID0gbm93O1xuXG4gICAgICAgICAgaWYgKCFvbkdsb2JlIHx8IChvZmZHbG9iZVpvb21BdCAhPT0gbnVsbCAmJiBub3cgLSBvZmZHbG9iZVpvb21BdCA8IEJVUlNUX1RJTUVPVVRfTVMpKSB7XG4gICAgICAgICAgICBjb25zdCB6b29tID0gKHRoaXMgYXMgYW55KS5fY29uc3RyYWluWm9vbShzdGFydFpvb20gKyBNYXRoLmxvZzIoc2NhbGUpKTtcbiAgICAgICAgICAgIHJldHVybiAodGhpcyBhcyBhbnkpLl9nZXRVcGRhdGVkU3RhdGUoe3pvb219KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBvZmZHbG9iZVpvb21BdCA9IG51bGw7XG4gICAgICAgICAgc3RhcnRab29tTG5nTGF0ID0gKHRoaXMgYXMgYW55KS5fdW5wcm9qZWN0KHN0YXJ0UG9zKSB8fCAodGhpcyBhcyBhbnkpLl91bnByb2plY3QocG9zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHpvb20gPSAodGhpcyBhcyBhbnkpLl9jb25zdHJhaW5ab29tKHN0YXJ0Wm9vbSArIE1hdGgubG9nMihzY2FsZSkpO1xuXG4gICAgICAgIGlmICghc3RhcnRab29tTG5nTGF0KSB7XG4gICAgICAgICAgcmV0dXJuICh0aGlzIGFzIGFueSkuX2dldFVwZGF0ZWRTdGF0ZSh7em9vbX0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gWm9vbS1vdXQgKHNjYWxlIDwgMSk6IGV4YWN0IGN1cnNvciBhbmNob3JpbmcgaXMgdW5zdGFibGUgbmVhciB0aGUgbGltYlxuICAgICAgICAvLyAobm9uLWxpbmVhciBnZW8tdG8tcGl4ZWwgbWFwcGluZyBwdWxscyB0aGUgdmlldyB0b3dhcmQgdGhlIHBvbGVzKS5cbiAgICAgICAgLy8gSW5zdGVhZCwgZ2VudGx5IHN0ZWVyIHRoZSBjZW50ZXIgdG93YXJkIHRoZSBjdXJzb3IgbG9jYXRpb24gcGVyIHRpY2suXG4gICAgICAgIGlmIChzY2FsZSA8IDEpIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAhQXJyYXkuaXNBcnJheShzdGFydFpvb21MbmdMYXQpIHx8XG4gICAgICAgICAgICAhTnVtYmVyLmlzRmluaXRlKHN0YXJ0Wm9vbUxuZ0xhdFswXSkgfHxcbiAgICAgICAgICAgICFOdW1iZXIuaXNGaW5pdGUoc3RhcnRab29tTG5nTGF0WzFdKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuICh0aGlzIGFzIGFueSkuX2dldFVwZGF0ZWRTdGF0ZSh7em9vbX0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIFBlci10aWNrIGxlcnAgc3RyZW5ndGggc2NhbGVzIHdpdGggem9vbS1vdXQgYW1vdW50OyBjbGFtcGVkIHRvIGF2b2lkIG92ZXJzaG9vdC5cbiAgICAgICAgICBjb25zdCB0ID0gTWF0aC5taW4oMSwgKDEgLSBzY2FsZSkgKiAwLjExKTtcblxuICAgICAgICAgIC8vIFNob3J0ZXN0LXBhdGggbG9uZ2l0dWRlIGludGVycG9sYXRpb24gKGhhbmRsZXMgYW50aW1lcmlkaWFuIHdyYXApLlxuICAgICAgICAgIGxldCBkTG5nID0gc3RhcnRab29tTG5nTGF0WzBdIC0gY3VycmVudFByb3BzLmxvbmdpdHVkZTtcbiAgICAgICAgICBpZiAoZExuZyA+IDE4MCkgZExuZyAtPSAzNjA7XG4gICAgICAgICAgaWYgKGRMbmcgPCAtMTgwKSBkTG5nICs9IDM2MDtcblxuICAgICAgICAgIHJldHVybiAodGhpcyBhcyBhbnkpLl9nZXRVcGRhdGVkU3RhdGUoe1xuICAgICAgICAgICAgem9vbSxcbiAgICAgICAgICAgIGxvbmdpdHVkZTogY3VycmVudFByb3BzLmxvbmdpdHVkZSArIGRMbmcgKiB0LFxuICAgICAgICAgICAgbGF0aXR1ZGU6IGN1cnJlbnRQcm9wcy5sYXRpdHVkZSArIChzdGFydFpvb21MbmdMYXRbMV0gLSBjdXJyZW50UHJvcHMubGF0aXR1ZGUpICogdFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgem9vbWVkVmlld3BvcnQgPSAodGhpcyBhcyBhbnkpLm1ha2VWaWV3cG9ydCh7XG4gICAgICAgICAgLi4uY3VycmVudFByb3BzLFxuICAgICAgICAgIHpvb21cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gWm9vbS1pbjogZXhhY3QgYW5jaG9yIOKAlCB1bnByb2plY3QgdGhlIGN1cnNvciBpbiB0aGUgcG9zdC16b29tIHZpZXdwb3J0IGFuZFxuICAgICAgICAvLyBzaGlmdCB0aGUgY2VudGVyIHNvIHRoZSBncmFiYmVkIGdlbyBwb2ludCBsYW5kcyBiYWNrIHVuZGVyIHRoZSBjdXJzb3IuXG4gICAgICAgIC8vIEd1YXJkIHdpdGggaXNQaXhlbE9uR2xvYmU6IGlmIHBvcyBtb3ZlZCBvZmYtZ2xvYmUgZHVyaW5nIGEgZmFzdCBwaW5jaCxcbiAgICAgICAgLy8gZmFsbCBiYWNrIHRvIGNlbnRlciB6b29tLlxuICAgICAgICBpZiAoIWlzUGl4ZWxPbkdsb2JlKHpvb21lZFZpZXdwb3J0LCBwb3MpKSB7XG4gICAgICAgICAgcmV0dXJuICh0aGlzIGFzIGFueSkuX2dldFVwZGF0ZWRTdGF0ZSh7em9vbX0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZnJvbVBvc2l0aW9uID0gem9vbWVkVmlld3BvcnQudW5wcm9qZWN0KHBvcyk7XG5cbiAgICAgICAgcmV0dXJuICh0aGlzIGFzIGFueSkuX2dldFVwZGF0ZWRTdGF0ZSh7XG4gICAgICAgICAgem9vbSxcbiAgICAgICAgICBsb25naXR1ZGU6IHN0YXJ0Wm9vbUxuZ0xhdFswXSAtIGZyb21Qb3NpdGlvblswXSArIHpvb21lZFZpZXdwb3J0LmxvbmdpdHVkZSxcbiAgICAgICAgICBsYXRpdHVkZTogc3RhcnRab29tTG5nTGF0WzFdIC0gZnJvbVBvc2l0aW9uWzFdICsgem9vbWVkVmlld3BvcnQubGF0aXR1ZGVcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIC8vIENsZWFyIHRoZSBwZXJzaXN0ZWQgcGluY2ggYW5jaG9yIGF0IGdlc3R1cmUgZW5kLlxuICAgICAgem9vbUVuZCgpIHtcbiAgICAgICAgcmV0dXJuICh0aGlzIGFzIGFueSkuX2dldFVwZGF0ZWRTdGF0ZSh7XG4gICAgICAgICAgc3RhcnRab29tOiBudWxsLFxuICAgICAgICAgIHN0YXJ0Wm9vbUxuZ0xhdDogbnVsbFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgLy8gRXhhY3QsIGN1cnNvci1hbmNob3JlZCBwYW46IHRoZSBnZW8gcG9pbnQgZ3JhYmJlZCBvbiBtb3VzZWRvd24gc3RheXNcbiAgICAgIC8vIGxvY2tlZCB1bmRlciB0aGUgY3Vyc29yIGZvciB0aGUgd2hvbGUgZHJhZy5cbiAgICAgIC8vXG4gICAgICAvLyBkZWNrLmdsIDkueCdzIEdsb2JlQ29udHJvbGxlciBwYW5zIHdpdGggYSAqbGluZWFyaXplZCwgY2VudGVyLWFuY2hvcmVkKlxuICAgICAgLy8gcm90YXRpb24gKEdsb2JlVmlld3BvcnQucGFuQnlQb3NpdGlvbihbbG5nLGxhdCx6b29tXSwgcGl4ZWwsIHN0YXJ0UGl4ZWwpOlxuICAgICAgLy8gbG9uZ2l0dWRlICs9ICgwLjI1L3NjYWxlKSooc3RhcnRQaXhlbC1waXhlbCkpLiBCZWNhdXNlIHRoZSBhbmNob3IgaXMgdGhlXG4gICAgICAvLyB2aWV3IENFTlRFUiByYXRoZXIgdGhhbiB0aGUgZ3JhYmJlZCBwb2ludCwgdGhlIGZpcnN0IGRyYWcgZnJhbWUgc25hcHMgdGhlXG4gICAgICAvLyBjZW50ZXIgdG8gc2F0aXNmeSB0aGUgbGluZWFyIGFwcHJveGltYXRpb24sIHByb2R1Y2luZyB0aGUgdmlzaWJsZSBcImp1bXAgdG9cbiAgICAgIC8vIHRoZSBzaWRlL3VwXCIgYXQgdGhlIHN0YXJ0IG9mIGEgcGFuIChtb3N0IG5vdGljZWFibGUgYXQgaGlnaCB6b29tKSwgYWZ0ZXJcbiAgICAgIC8vIHdoaWNoIGluY3JlbWVudGFsIGRlbHRhcyB0cmFjayBmaW5lLiBUaGUgZXhhY3QgYW5jaG9yIGJlbG93IHJlbW92ZXMgdGhhdFxuICAgICAgLy8gZmlyc3QtZnJhbWUgc25hcC5cbiAgICAgIHBhblN0YXJ0KHtwb3N9OiB7cG9zOiBbbnVtYmVyLCBudW1iZXJdfSkge1xuICAgICAgICBjb25zdCB2aWV3cG9ydCA9ICh0aGlzIGFzIGFueSkubWFrZVZpZXdwb3J0KCh0aGlzIGFzIGFueSkuZ2V0Vmlld3BvcnRQcm9wcygpKTtcbiAgICAgICAgLy8gSWYgdGhlIG1vdXNlZG93biBwaXhlbCBpcyBvdXRzaWRlIHRoZSBnbG9iZSBzaWxob3VldHRlLCBzdG9yZSBgZmFsc2VgXG4gICAgICAgIC8vIGFzIGFuIGV4cGxpY2l0IHNlbnRpbmVsIHNvIHRoYXQgZXZlcnkgc3Vic2VxdWVudCBgcGFuYCBjYWxsIGZvciB0aGlzXG4gICAgICAgIC8vIGdlc3R1cmUgaXMgYSBuby1vcC4gIFdlIGNhbid0IHJlbHkgb24gYF91bnByb2plY3QocG9zKWAgcmV0dXJuaW5nXG4gICAgICAgIC8vIHVuZGVmaW5lZCBoZXJlIGJlY2F1c2UgR2xvYmVWaWV3cG9ydC51bnByb2plY3QgY2xhbXBzIHRoZVxuICAgICAgICAvLyByYXnigJNzcGhlcmUgZGlzY3JpbWluYW50IHRvIDAgdmlhIE1hdGgubWF4KDAsIOKApiksIHdoaWNoIG1lYW5zIGl0XG4gICAgICAgIC8vIGFsd2F5cyByZXR1cm5zIGEgdmFsaWQtbG9va2luZyBsbmcvbGF0IGV2ZW4gZm9yIG9mZi1nbG9iZSBwaXhlbHMuXG4gICAgICAgIGlmICghaXNQaXhlbE9uR2xvYmUodmlld3BvcnQsIHBvcykpIHtcbiAgICAgICAgICByZXR1cm4gKHRoaXMgYXMgYW55KS5fZ2V0VXBkYXRlZFN0YXRlKHtzdGFydFBhbkxuZ0xhdDogZmFsc2V9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKHRoaXMgYXMgYW55KS5fZ2V0VXBkYXRlZFN0YXRlKHtcbiAgICAgICAgICBzdGFydFBhbkxuZ0xhdDogKHRoaXMgYXMgYW55KS5fdW5wcm9qZWN0KHBvcylcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHBhbih7cG9zLCBzdGFydFBvc306IHtwb3M6IFtudW1iZXIsIG51bWJlcl07IHN0YXJ0UG9zPzogW251bWJlciwgbnVtYmVyXX0pIHtcbiAgICAgICAgY29uc3Qgc3RvcmVkU3RhcnQgPSAodGhpcyBhcyBhbnkpLmdldFN0YXRlKCkuc3RhcnRQYW5MbmdMYXQ7XG5cbiAgICAgICAgY29uc3QgcHJvcHMgPSAodGhpcyBhcyBhbnkpLmdldFZpZXdwb3J0UHJvcHMoKTtcbiAgICAgICAgY29uc3Qgdmlld3BvcnQgPSAodGhpcyBhcyBhbnkpLm1ha2VWaWV3cG9ydChwcm9wcyk7XG5cbiAgICAgICAgLy8gYGZhbHNlYCBtZWFucyB0aGUgZHJhZyBzdGFydGVkIG91dHNpZGUgdGhlIGdsb2JlLiBJZiB0aGUgY3Vyc29yIGhhc1xuICAgICAgICAvLyBub3cgbW92ZWQgb250byB0aGUgZ2xvYmUsIGxhdGNoIHRoZSBjdXJyZW50IHBvc2l0aW9uIGFzIHRoZSBhbmNob3JcbiAgICAgICAgLy8gc28gcm90YXRpb24gYmVnaW5zIGZyb20gdGhlIGVudHJ5IHBvaW50LiBPdGhlcndpc2Ugc3RheSBmcm96ZW4uXG4gICAgICAgIGlmIChzdG9yZWRTdGFydCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICBpZiAoIWlzUGl4ZWxPbkdsb2JlKHZpZXdwb3J0LCBwb3MpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gQ3Vyc29yIGp1c3QgZW50ZXJlZCB0aGUgZ2xvYmUg4oCUIGVzdGFibGlzaCB0aGUgYW5jaG9yIGFuZCByZXR1cm5cbiAgICAgICAgICAvLyB3aXRob3V0IG1vdmluZzsgdGhlIG5leHQgcGFuIGV2ZW50IHdpbGwgYXBwbHkgdGhlIGZpcnN0IGRlbHRhLlxuICAgICAgICAgIHJldHVybiAodGhpcyBhcyBhbnkpLl9nZXRVcGRhdGVkU3RhdGUoe1xuICAgICAgICAgICAgc3RhcnRQYW5MbmdMYXQ6ICh0aGlzIGFzIGFueSkuX3VucHJvamVjdChwb3MpXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzdGFydFBhbkxuZ0xhdCA9IHN0b3JlZFN0YXJ0IHx8ICh0aGlzIGFzIGFueSkuX3VucHJvamVjdChzdGFydFBvcyk7XG4gICAgICAgIGlmICghc3RhcnRQYW5MbmdMYXQpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE9uY2UgdGhlIGN1cnNvciBsZWF2ZXMgdGhlIGdsb2JlIHNpbGhvdWV0dGUgbWlkLWRyYWcsIGZyZWV6ZSB0aGUgdmlldy5cbiAgICAgICAgLy8gdmlld3BvcnQudW5wcm9qZWN0KCkgc25hcHMgb2ZmLWdsb2JlIHBpeGVscyB0byB0aGUgbmVhcmVzdCBsaW1iIHBvaW50XG4gICAgICAgIC8vICh2aWEgTWF0aC5tYXgoMCwg4oCmKSBpbiBpdHMgcmF54oCTc3BoZXJlIGRpc2NyaW1pbmFudCksIHNvIHdpdGhvdXQgdGhpc1xuICAgICAgICAvLyBndWFyZCB0aGUgZ2xvYmUgd291bGQga2VlcCByb3RhdGluZyB0b3dhcmQgdGhlIGVkZ2UgYXMgdGhlIGN1cnNvciBtb3Zlc1xuICAgICAgICAvLyBmdXJ0aGVyIG91dHNpZGUuXG4gICAgICAgIGlmICghaXNQaXhlbE9uR2xvYmUodmlld3BvcnQsIHBvcykpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZyb21Qb3NpdGlvbiA9IHZpZXdwb3J0LnVucHJvamVjdChwb3MpO1xuXG4gICAgICAgIGNvbnN0IGxvbmdpdHVkZSA9IHN0YXJ0UGFuTG5nTGF0WzBdIC0gZnJvbVBvc2l0aW9uWzBdICsgcHJvcHMubG9uZ2l0dWRlO1xuICAgICAgICBsZXQgbGF0aXR1ZGUgPSBzdGFydFBhbkxuZ0xhdFsxXSAtIGZyb21Qb3NpdGlvblsxXSArIHByb3BzLmxhdGl0dWRlO1xuICAgICAgICBsYXRpdHVkZSA9IGNsYW1wKGxhdGl0dWRlLCAtR0xPQkVfTUFYX0xBVElUVURFLCBHTE9CRV9NQVhfTEFUSVRVREUpO1xuXG4gICAgICAgIC8vIGRlY2suZ2wgOSdzIEdsb2JlVmlld3BvcnQgc2NhbGUgPSAyXih6b29tIC0gem9vbUFkanVzdChsYXRpdHVkZSkpLCBzbyBhXG4gICAgICAgIC8vIGNvbnN0YW50IHpvb20gd291bGQgbWFrZSB0aGUgZ2xvYmUgZ3JvdyBvbiBzY3JlZW4gYXMgdGhlIGNlbnRlciBtb3Zlc1xuICAgICAgICAvLyB0b3dhcmQgdGhlIHBvbGVzLiBSZS1jb3VwbGUgem9vbSB0byB0aGUgbmV3IGxhdGl0dWRlIChhcyBkZWNrLmdsIDkncyBvd25cbiAgICAgICAgLy8gcGFuIGRvZXMpIHRvIGtlZXAgdGhlIG9uLXNjcmVlbiBzY2FsZSDigJQgYW5kIHRodXMgdGlsZSBMT0Qg4oCUIGNvbnN0YW50LlxuICAgICAgICBjb25zdCB2aXN1YWxab29tID0gcHJvcHMuem9vbSAtIHpvb21BZGp1c3QocHJvcHMubGF0aXR1ZGUpO1xuICAgICAgICBjb25zdCB6b29tID0gdmlzdWFsWm9vbSArIHpvb21BZGp1c3QobGF0aXR1ZGUpO1xuXG4gICAgICAgIHJldHVybiAodGhpcyBhcyBhbnkpLl9nZXRVcGRhdGVkU3RhdGUoe2xvbmdpdHVkZSwgbGF0aXR1ZGUsIHpvb219KTtcbiAgICAgIH1cblxuICAgICAgcGFuRW5kKCkge1xuICAgICAgICByZXR1cm4gKHRoaXMgYXMgYW55KS5fZ2V0VXBkYXRlZFN0YXRlKHtzdGFydFBhbkxuZ0xhdDogbnVsbH0pO1xuICAgICAgfVxuICAgIH0gYXMgYW55O1xuICB9XG59XG5cbi8qKlxuICogQ3VzdG9tIEdsb2JlVmlldyB0aGF0IHVzZXMgem9vbS10by1jdXJzb3IgY29udHJvbGxlciBiZWhhdmlvci5cbiAqL1xuZXhwb3J0IGNsYXNzIEtlcGxlckdsb2JlVmlldyBleHRlbmRzIERlY2tHbG9iZVZpZXcge1xuICAvLyBGb3J3YXJkIGNvbnN0cnVjdG9yIHByb3BzIHRvIGRlY2suZ2wncyBHbG9iZVZpZXcuIERlY2xhcmVkIGV4cGxpY2l0bHkgYmVjYXVzZVxuICAvLyB0aGUgYmFzZSBjbGFzcyBpcyBsb29zZWx5IHR5cGVkIChzZWUgRGVja0dsb2JlVmlldyBhYm92ZSksIHdoaWNoIHdvdWxkXG4gIC8vIG90aGVyd2lzZSBzdXJmYWNlIGEgcGFyYW1ldGVybGVzcyBjb25zdHJ1Y3RvciB0byBjYWxsZXJzLlxuICBjb25zdHJ1Y3Rvcihwcm9wcz86IGFueSkge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgfVxuXG4gIGdldCBDb250cm9sbGVyVHlwZSgpIHtcbiAgICByZXR1cm4gWm9vbVRvQ3Vyc29yR2xvYmVDb250cm9sbGVyO1xuICB9XG5cbiAgLy8gZGVjay5nbCA5J3MgR2xvYmVWaWV3LmdldFZpZXdwb3J0VHlwZSgpIHN3YXBzIHRoZSB2aWV3cG9ydCBjbGFzcyBiYXNlZCBvbiB6b29tOlxuICAvLyAgIGByZXR1cm4gdmlld1N0YXRlLnpvb20gPiAxMiA/IFdlYk1lcmNhdG9yVmlld3BvcnQgOiBHbG9iZVZpZXdwb3J0O2BcbiAgLy8gQ3Jvc3Npbmcgem9vbSAxMiB0aGVyZWZvcmUgcmVjb21wdXRlcyB0aWxlIGJvdW5kcyB3aXRoIGNvbXBsZXRlbHkgZGlmZmVyZW50XG4gIC8vIHByb2plY3Rpb24gbWF0aCAoZ2xvYmUgdnMgZmxhdCBtZXJjYXRvcikuIFRoYXQgbWFrZXMgZGVjaydzIFRpbGVMYXllci9NVlRMYXllclxuICAvLyByZXNlbGVjdCB0aWxlcyBpbmNvbnNpc3RlbnRseSBhY3Jvc3MgdGhlIGJvdW5kYXJ5IOKAlCBtaXhlZCBMT0RzIChlLmcuIGEgejQgdGlsZVxuICAvLyBuZXh0IHRvIHoxMSksIGEgdmlzaWJsZSBcImZsaWNrZXJcIiBhdCAxMiwgYW5kIHRpbGVzIHRoYXQgZ2V0IGRyb3BwZWQgYW5kIHN0aWNrXG4gIC8vIGFzIGJsYWNrL2VtcHR5IHF1YWRzIChtb3N0IG9mdGVuIGNyb3NzaW5nIDEyIG9uIHRoZSB3YXkgKm91dCopLlxuICAvL1xuICAvLyBGb3JjZSBHbG9iZVZpZXdwb3J0IGF0IGV2ZXJ5IHpvb20gdG8gZWxpbWluYXRlIHRoZSB6PTEyIHZpZXdwb3J0IHN3YXAgc28gdGlsZVxuICAvLyBzZWxlY3Rpb24gc3RheXMgY29uc2lzdGVudC4gVGhlIHRyYWRlLW9mZiBpcyB0aGF0IHpvb20gPiAxMiBub3cgdXNlcyBmbG9hdDMyXG4gIC8vIGdsb2JlIHByZWNpc2lvbiAoZGVjaydzIGRvY3VtZW50ZWQgXCJubyBoaWdoLXByZWNpc2lvbiByZW5kZXJpbmcgPiAxMlwiIGxpbWl0KVxuICAvLyBpbnN0ZWFkIG9mIHN3aXRjaGluZyB0byBtZXJjYXRvciDigJQgZmFyIHByZWZlcmFibGUgdG8gdGhlIGJsYWNrIHF1YWRzLlxuICBnZXRWaWV3cG9ydFR5cGUoKSB7XG4gICAgcmV0dXJuIERlY2tHbG9iZVZpZXdwb3J0O1xuICB9XG59XG5cbktlcGxlckdsb2JlVmlldy5kaXNwbGF5TmFtZSA9ICdLZXBsZXJHbG9iZVZpZXcnO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTs7QUFFQSxPQUFPLEtBQUtBLFFBQVEsTUFBTSxlQUFlO0FBQ3pDLFNBQVFDLEtBQUssRUFBRUMsSUFBSSxRQUFPLGVBQWU7QUFDekMsU0FBUUMsa0JBQWtCLFFBQU8sc0JBQXNCO0FBQ3ZELFNBQVFDLG1CQUFtQixRQUFPLDBCQUEwQjs7QUFFNUQ7QUFDQTtB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
|
package/dist/esm/globe/index.js
CHANGED
|
@@ -16,11 +16,11 @@
|
|
|
16
16
|
// vertices on the far side of the globe (dot(surfaceNormal, toCamera) < 0.1) so labels
|
|
17
17
|
// don't show through the planet. Implemented as a GLSL inject.
|
|
18
18
|
|
|
19
|
-
export { AtmosphereLayerRealistic, AtmosphereSkyLayerRealistic, getGlobeAtmosphereLayer, getGlobeAtmosphereSkyLayer } from './atmosphere-layer';
|
|
19
|
+
export { AtmosphereLayerRealistic, AtmosphereSkyLayerRealistic, AtmosphereHugeHaloLayer, getGlobeAtmosphereLayer, getGlobeAtmosphereSkyLayer, getGlobeHugeHaloLayer } from './atmosphere-layer';
|
|
20
20
|
export { GlobeDepthDiskLayer, getGlobeDepthDiskLayer } from './globe-depth-disk-layer';
|
|
21
21
|
export { getGlobeBaseLayers, getGlobeTopLayers, getGlobeClearColor, getGlobeBasemapAttributions, resolveGlobeBasemapProvider, DEFAULT_BASEMAP_COLOR, getBasemapColors, getBasemapColorsForStyle } from './globe-layers';
|
|
22
22
|
export { MVTLabelLayer } from './mvt-label-layer';
|
|
23
23
|
export { default as EnhancedMultiIconLayer } from './enhanced-multi-icon-layer';
|
|
24
24
|
export { KeplerGlobeView } from './globe-view';
|
|
25
|
-
export { getStarsBackgroundImage } from './globe-stars-layer';
|
|
26
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
25
|
+
export { getStarsBackgroundImage, drawStarsBackground } from './globe-stars-layer';
|
|
26
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBdG1vc3BoZXJlTGF5ZXJSZWFsaXN0aWMiLCJBdG1vc3BoZXJlU2t5TGF5ZXJSZWFsaXN0aWMiLCJBdG1vc3BoZXJlSHVnZUhhbG9MYXllciIsImdldEdsb2JlQXRtb3NwaGVyZUxheWVyIiwiZ2V0R2xvYmVBdG1vc3BoZXJlU2t5TGF5ZXIiLCJnZXRHbG9iZUh1Z2VIYWxvTGF5ZXIiLCJHbG9iZURlcHRoRGlza0xheWVyIiwiZ2V0R2xvYmVEZXB0aERpc2tMYXllciIsImdldEdsb2JlQmFzZUxheWVycyIsImdldEdsb2JlVG9wTGF5ZXJzIiwiZ2V0R2xvYmVDbGVhckNvbG9yIiwiZ2V0R2xvYmVCYXNlbWFwQXR0cmlidXRpb25zIiwicmVzb2x2ZUdsb2JlQmFzZW1hcFByb3ZpZGVyIiwiREVGQVVMVF9CQVNFTUFQX0NPTE9SIiwiZ2V0QmFzZW1hcENvbG9ycyIsImdldEJhc2VtYXBDb2xvcnNGb3JTdHlsZSIsIk1WVExhYmVsTGF5ZXIiLCJkZWZhdWx0IiwiRW5oYW5jZWRNdWx0aUljb25MYXllciIsIktlcGxlckdsb2JlVmlldyIsImdldFN0YXJzQmFja2dyb3VuZEltYWdlIiwiZHJhd1N0YXJzQmFja2dyb3VuZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nbG9iZS9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG4vLyBHbG9iZSBtb2RlIGxheWVyIGFkanVzdG1lbnRzLlxuLy9cbi8vIEdsb2JlLXNwZWNpZmljIGFkanVzdG1lbnRzIGhhbmRsZWQgaGVyZTpcbi8vIC0gR3JpZCAvIEhleGFnb24gYWdncmVnYXRpb24gY2VsbHMgb24gdGhlIGdsb2JlOiBkZWNrLmdsIDkueCdzIEdyaWRDZWxsTGF5ZXIgL1xuLy8gICBIZXhhZ29uQ2VsbExheWVyIHBvc2l0aW9uIGNlbGxzIGluIGZsYXQgbWVyY2F0b3IgY29tbW9uIHNwYWNlIGFuZCBkcmF3IHRoZW0gd2l0aFxuLy8gICBwcm9qZWN0X2NvbW1vbl9wb3NpdGlvbl90b19jbGlwc3BhY2UsIHdoaWNoIGxlYXZlcyB0aGVtIG9uIHRoZSBYWSBwbGFuZSB0aHJvdWdoIHRoZVxuLy8gICBnbG9iZSBjZW50ZXIgcmF0aGVyIHRoYW4gb24gaXRzIHN1cmZhY2UuIFNjYWxlRW5oYW5jZWRHcmlkTGF5ZXIgL1xuLy8gICBTY2FsZUVuaGFuY2VkSGV4YWdvbkxheWVyIHN3YXAgaW4gYSBnbG9iZS1hd2FyZSBjZWxsIHN1YmNsYXNzIChzZWVcbi8vICAgbGF5ZXItdXRpbHMvZ2xvYmUtY2VsbC11dGlscykgdGhhdCByZW1hcHMgZWFjaCBjZWxsIHZlcnRleCBmcm9tIGNvbW1vbiBzcGFjZSBiYWNrIHRvXG4vLyAgIGxuZy9sYXQgYW5kIG9udG8gdGhlIHNwaGVyZS5cbi8vIC0gVGV4dC9MYWJlbCByZW5kZXJpbmcgd2l0aCBiYWNrLWZhY2UgY3VsbGluZzogTVZUTGFiZWxMYXllciByZW5kZXJzIHBsYWNlIGxhYmVscyB2aWEgYVxuLy8gICBUZXh0TGF5ZXIgd2hvc2UgZ2x5cGggc3VibGF5ZXIgaXMgRW5oYW5jZWRNdWx0aUljb25MYXllciwgd2hpY2ggZGVnZW5lcmF0ZXMgZ2x5cGhcbi8vICAgdmVydGljZXMgb24gdGhlIGZhciBzaWRlIG9mIHRoZSBnbG9iZSAoZG90KHN1cmZhY2VOb3JtYWwsIHRvQ2FtZXJhKSA8IDAuMSkgc28gbGFiZWxzXG4vLyAgIGRvbid0IHNob3cgdGhyb3VnaCB0aGUgcGxhbmV0LiBJbXBsZW1lbnRlZCBhcyBhIEdMU0wgaW5qZWN0LlxuXG5leHBvcnQge1xuICBBdG1vc3BoZXJlTGF5ZXJSZWFsaXN0aWMsXG4gIEF0bW9zcGhlcmVTa3lMYXllclJlYWxpc3RpYyxcbiAgQXRtb3NwaGVyZUh1Z2VIYWxvTGF5ZXIsXG4gIGdldEdsb2JlQXRtb3NwaGVyZUxheWVyLFxuICBnZXRHbG9iZUF0bW9zcGhlcmVTa3lMYXllcixcbiAgZ2V0R2xvYmVIdWdlSGFsb0xheWVyXG59IGZyb20gJy4vYXRtb3NwaGVyZS1sYXllcic7XG5leHBvcnQge0dsb2JlRGVwdGhEaXNrTGF5ZXIsIGdldEdsb2JlRGVwdGhEaXNrTGF5ZXJ9IGZyb20gJy4vZ2xvYmUtZGVwdGgtZGlzay1sYXllcic7XG5leHBvcnQge1xuICBnZXRHbG9iZUJhc2VMYXllcnMsXG4gIGdldEdsb2JlVG9wTGF5ZXJzLFxuICBnZXRHbG9iZUNsZWFyQ29sb3IsXG4gIGdldEdsb2JlQmFzZW1hcEF0dHJpYnV0aW9ucyxcbiAgcmVzb2x2ZUdsb2JlQmFzZW1hcFByb3ZpZGVyLFxuICBERUZBVUxUX0JBU0VNQVBfQ09MT1IsXG4gIGdldEJhc2VtYXBDb2xvcnMsXG4gIGdldEJhc2VtYXBDb2xvcnNGb3JTdHlsZVxufSBmcm9tICcuL2dsb2JlLWxheWVycyc7XG5leHBvcnQgdHlwZSB7R2xvYmVCYXNlbWFwUHJvdmlkZXIsIEdsb2JlQXR0cmlidXRpb259IGZyb20gJy4vZ2xvYmUtbGF5ZXJzJztcbmV4cG9ydCB7TVZUTGFiZWxMYXllcn0gZnJvbSAnLi9tdnQtbGFiZWwtbGF5ZXInO1xuZXhwb3J0IHtkZWZhdWx0IGFzIEVuaGFuY2VkTXVsdGlJY29uTGF5ZXJ9IGZyb20gJy4vZW5oYW5jZWQtbXVsdGktaWNvbi1sYXllcic7XG5leHBvcnQge0tlcGxlckdsb2JlVmlld30gZnJvbSAnLi9nbG9iZS12aWV3JztcbmV4cG9ydCB7Z2V0U3RhcnNCYWNrZ3JvdW5kSW1hZ2UsIGRyYXdTdGFyc0JhY2tncm91bmR9IGZyb20gJy4vZ2xvYmUtc3RhcnMtbGF5ZXInO1xuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsU0FDRUEsd0JBQXdCLEVBQ3hCQywyQkFBMkIsRUFDM0JDLHVCQUF1QixFQUN2QkMsdUJBQXVCLEVBQ3ZCQywwQkFBMEIsRUFDMUJDLHFCQUFxQixRQUNoQixvQkFBb0I7QUFDM0IsU0FBUUMsbUJBQW1CLEVBQUVDLHNCQUFzQixRQUFPLDBCQUEwQjtBQUNwRixTQUNFQyxrQkFBa0IsRUFDbEJDLGlCQUFpQixFQUNqQkMsa0JBQWtCLEVBQ2xCQywyQkFBMkIsRUFDM0JDLDJCQUEyQixFQUMzQkMscUJBQXFCLEVBQ3JCQyxnQkFBZ0IsRUFDaEJDLHdCQUF3QixRQUNuQixnQkFBZ0I7QUFFdkIsU0FBUUMsYUFBYSxRQUFPLG1CQUFtQjtBQUMvQyxTQUFRQyxPQUFPLElBQUlDLHNCQUFzQixRQUFPLDZCQUE2QjtBQUM3RSxTQUFRQyxlQUFlLFFBQU8sY0FBYztBQUM1QyxTQUFRQyx1QkFBdUIsRUFBRUMsbUJBQW1CLFFBQU8scUJBQXFCIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -134,7 +134,7 @@ export function makeGlobeCellLayerClass(BaseCellLayer, type) {
|
|
|
134
134
|
return _createClass(GlobeCellLayer, [{
|
|
135
135
|
key: "getShaders",
|
|
136
136
|
value: function getShaders() {
|
|
137
|
-
var shaders = _superPropGet(GlobeCellLayer, "getShaders", this,
|
|
137
|
+
var shaders = _superPropGet(GlobeCellLayer, "getShaders", this, 3)([]);
|
|
138
138
|
return _objectSpread(_objectSpread({}, shaders), {}, {
|
|
139
139
|
vs: addGlobeCellProjection(shaders.vs, type),
|
|
140
140
|
modules: [].concat(_toConsumableArray(shaders.modules || []), [globeCellUniforms])
|
|
@@ -156,7 +156,7 @@ export function makeGlobeCellLayerClass(BaseCellLayer, type) {
|
|
|
156
156
|
}
|
|
157
157
|
});
|
|
158
158
|
}
|
|
159
|
-
_superPropGet(GlobeCellLayer, "draw", this,
|
|
159
|
+
_superPropGet(GlobeCellLayer, "draw", this, 3)([opts]);
|
|
160
160
|
}
|
|
161
161
|
}]);
|
|
162
162
|
}(BaseCellLayer);
|
|
@@ -164,4 +164,4 @@ export function makeGlobeCellLayerClass(BaseCellLayer, type) {
|
|
|
164
164
|
globeCellClassCache.set(BaseCellLayer, GlobeCellLayer);
|
|
165
165
|
return GlobeCellLayer;
|
|
166
166
|
}
|
|
167
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJXZWJNZXJjYXRvclZpZXdwb3J0IiwiZ2xvYmVDZWxsVW5pZm9ybXMiLCJuYW1lIiwidnMiLCJ1bmlmb3JtVHlwZXMiLCJnbG9iZU1vZGUiLCJHTE9CRV9DRUxMX0RFQ0wiLCJhZGRHbG9iZUNlbGxQcm9qZWN0aW9uIiwidHlwZSIsImRlY2wiLCJjb25jYXQiLCJ3aXRoRGVjbCIsImluY2x1ZGVzIiwicmVwbGFjZSIsInRhcmdldCIsImNvbnNvbGUiLCJlcnJvciIsInJ1bkJpbk9wdGlvbnNXaXRoTWVyY2F0b3JWaWV3cG9ydCIsImxheWVyIiwiY2FsbFN1cGVyIiwiX2xheWVyJGNvbnRleHQiLCJ2aWV3cG9ydCIsImNvbnRleHQiLCJpc0dsb2JlIiwiQm9vbGVhbiIsInJlc29sdXRpb24iLCJtZXJjYXRvclZpZXdwb3J0Iiwid2lkdGgiLCJoZWlnaHQiLCJsb25naXR1ZGUiLCJsYXRpdHVkZSIsInpvb20iLCJvcmlnaW5hbFZpZXdwb3J0IiwiZ2xvYmVDZWxsQ2xhc3NDYWNoZSIsIldlYWtNYXAiLCJtYWtlR2xvYmVDZWxsTGF5ZXJDbGFzcyIsIkJhc2VDZWxsTGF5ZXIiLCJjYWNoZWQiLCJnZXQiLCJHbG9iZUNlbGxMYXllciIsIl9yZWYiLCJfY2xhc3NDYWxsQ2hlY2siLCJfY2FsbFN1cGVyIiwiYXJndW1lbnRzIiwiX2luaGVyaXRzIiwiX2NyZWF0ZUNsYXNzIiwia2V5IiwidmFsdWUiLCJnZXRTaGFkZXJzIiwic2hhZGVycyIsIl9zdXBlclByb3BHZXQiLCJfb2JqZWN0U3ByZWFkIiwibW9kdWxlcyIsIl90b0NvbnN1bWFibGVBcnJheSIsImRyYXciLCJvcHRzIiwibW9kZWwiLCJzdGF0ZSIsImZpbGxNb2RlbCIsInNoYWRlcklucHV0cyIsInNldFByb3BzIiwiZ2xvYmVDZWxsIiwibGF5ZXJOYW1lIiwic2V0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xheWVyLXV0aWxzL2dsb2JlLWNlbGwtdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtXZWJNZXJjYXRvclZpZXdwb3J0fSBmcm9tICdAZGVjay5nbC9jb3JlJztcblxuLyoqXG4gKiBkZWNrLmdsJ3MgYWdncmVnYXRpb24gY2VsbCBsYXllcnMgKEdyaWRDZWxsTGF5ZXIgLyBIZXhhZ29uQ2VsbExheWVyKSBwb3NpdGlvblxuICogZWFjaCBjZWxsIGluIGZsYXQgbWVyY2F0b3IgXCJjb21tb24gc3BhY2VcIiAoYSAyRCBYWSBwbGFuZSkgYW5kIHRoZW4gZHJhdyBpdCB3aXRoXG4gKiBgcHJvamVjdF9jb21tb25fcG9zaXRpb25fdG9fY2xpcHNwYWNlYCwgd2hpY2ggb25seSBtdWx0aXBsaWVzIGJ5IHRoZVxuICogdmlldy1wcm9qZWN0aW9uIG1hdHJpeC4gVW5kZXIgYF9HbG9iZVZpZXdgIHRoaXMgbGVhdmVzIHRoZSBjZWxscyBvbiB0aGUgZmxhdCBYWVxuICogcGxhbmUgdGhhdCBwYXNzZXMgdGhyb3VnaCB0aGUgY2VudGVyIG9mIHRoZSBnbG9iZSBpbnN0ZWFkIG9mIG9uIGl0cyBzdXJmYWNlXG4gKiAodGhlIGJhc2UgQ29sdW1uTGF5ZXIgd29ya3Mgb24gdGhlIGdsb2JlIGJlY2F1c2UgaXQgZmVlZHMgcmVhbCBsbmcvbGF0IHRocm91Z2hcbiAqIGBwcm9qZWN0X3Bvc2l0aW9uYCAtPiBgcHJvamVjdF9nbG9iZV9gOyB0aGUgYWdncmVnYXRpb24gY2VsbCBzaGFkZXJzIHNraXAgdGhhdCkuXG4gKlxuICogVG8gZml4IHRoaXMgd2UgcmVtYXAgdGhlIGFscmVhZHktY29tcHV0ZWQgZmxhdCBjb21tb24tc3BhY2UgdmVydGV4IHBvc2l0aW9uIGJhY2tcbiAqIHRvIGxuZy9sYXQgKGludmVyc2UgV2ViIE1lcmNhdG9yKSBhbmQgdGhlbiBvbnRvIHRoZSBzcGhlcmUgd2l0aCB0aGUgc2FtZSBtYXRoXG4gKiBgcHJvamVjdF9nbG9iZV9gIHVzZXMgZm9yIGdlb2dyYXBoaWMgbGF5ZXJzLiBCZWNhdXNlIHdlIHJlbWFwIGV2ZXJ5IHZlcnRleCBvZiB0aGVcbiAqIGNlbGwgZm9vdHByaW50IChub3QganVzdCB0aGUgY2VudHJvaWQpLCB0aGUgZmxhdCBxdWFkL2hleGFnb24gbmF0dXJhbGx5IGN1cnZlc1xuICogb250byB0aGUgc3VyZmFjZS4gRWxldmF0aW9uIChleHRydWRlZCBjZWxscywgc3RvcmVkIGluIGBnZW9tZXRyeS5wb3NpdGlvbi56YCBpblxuICogY29tbW9uIHVuaXRzKSBpcyBhZGRlZCBhbG9uZyB0aGUgcmFkaXVzIHNvIGNvbHVtbnMgcmlzZSByYWRpYWxseSBvZmYgdGhlIGdsb2JlLlxuICpcbiAqIFRoZSByZW1hcCBpcyBnYXRlZCBieSBhIGBnbG9iZU1vZGVgIHVuaWZvcm0gc28gMkQvM0QgbWVyY2F0b3IgcmVuZGVyaW5nIGlzXG4gKiBieXRlLWZvci1ieXRlIHVuY2hhbmdlZC5cbiAqXG4gKiBgV09STERfU0NBTEVgLCBgUElgLCBgR0xPQkVfUkFESVVTYCBhbmQgYHByb2plY3QuY29tbW9uT3JpZ2luYCBhcmUgYWxsIHByb3ZpZGVkXG4gKiBieSBkZWNrLmdsJ3MgcHJvamVjdCBzaGFkZXIgbW9kdWxlIHdoaWNoIHRoZXNlIGxheWVycyBpbmNsdWRlLlxuICovXG5cbi8vIGRlY2suZ2wgOSAvIGx1bWEgOSBzZXRzIGN1c3RvbSB1bmlmb3JtcyB2aWEgVUJPLWJhY2tlZCBzaGFkZXIgbW9kdWxlcyAodGhlcmUgaXNcbi8vIG5vIE1vZGVsLnNldFVuaWZvcm1zKS4gVGhpcyBtaW5pbWFsIG1vZHVsZSBleHBvc2VzIHRoZSBnbG9iZS1tb2RlIGZsYWcuXG5jb25zdCBnbG9iZUNlbGxVbmlmb3JtcyA9IHtcbiAgbmFtZTogJ2dsb2JlQ2VsbCcsXG4gIHZzOiBgbGF5b3V0KHN0ZDE0MCkgdW5pZm9ybSBnbG9iZUNlbGxVbmlmb3JtcyB7XG4gIGZsb2F0IGdsb2JlTW9kZTtcbn0gZ2xvYmVDZWxsUHJvcHM7XG5gLFxuICB1bmlmb3JtVHlwZXM6IHtcbiAgICBnbG9iZU1vZGU6ICdmMzInXG4gIH1cbn0gYXMgY29uc3Q7XG5cbmNvbnN0IEdMT0JFX0NFTExfREVDTCA9IC8qIGdsc2wgKi8gYFxuLy8gSW52ZXJzZSBvZiBkZWNrLmdsIHByb2plY3RfbWVyY2F0b3JfOiBmbGF0IGNvbW1vbiBYWSAtPiBsbmcvbGF0IChkZWdyZWVzKS5cbnZlYzIga2VwbGVyX2NvbW1vblRvTG5nTGF0KHZlYzIgY29tbW9uWFkpIHtcbiAgZmxvYXQgbG5nID0gZGVncmVlcyhjb21tb25YWS54IC8gV09STERfU0NBTEUgLSBQSSk7XG4gIGZsb2F0IGxhdCA9IGRlZ3JlZXMoMi4wICogYXRhbihleHAoY29tbW9uWFkueSAvIFdPUkxEX1NDQUxFIC0gUEkpKSAtIFBJICogMC41KTtcbiAgcmV0dXJuIHZlYzIobG5nLCBsYXQpO1xufVxuXG4vLyBTYW1lIG1hdGggYXMgZGVjay5nbCBwcm9qZWN0X2dsb2JlXy4gZWxldmF0aW9uQ29tbW9uIGlzIGluIGNvbW1vbiB1bml0cyBhbHJlYWR5XG4vLyAoR0xPQkVfUkFESVVTIHNwYWNlKSwgbWF0Y2hpbmcgaG93IHByb2plY3RfZ2xvYmVfIHNjYWxlcyB6IG9mZiBFQVJUSF9SQURJVVMuXG52ZWMzIGtlcGxlcl9sbmdMYXRUb0dsb2JlKHZlYzIgbG5nTGF0LCBmbG9hdCBlbGV2YXRpb25Db21tb24pIHtcbiAgZmxvYXQgbGFtYmRhID0gcmFkaWFucyhsbmdMYXQueCk7XG4gIGZsb2F0IHBoaSA9IHJhZGlhbnMobG5nTGF0LnkpO1xuICBmbG9hdCBjb3NQaGkgPSBjb3MocGhpKTtcbiAgZmxvYXQgRCA9IEdMT0JFX1JBRElVUyArIGVsZXZhdGlvbkNvbW1vbjtcbiAgcmV0dXJuIHZlYzMoXG4gICAgc2luKGxhbWJkYSkgKiBjb3NQaGksXG4gICAgLWNvcyhsYW1iZGEpICogY29zUGhpLFxuICAgIHNpbihwaGkpXG4gICkgKiBEO1xufVxuYDtcblxuLyoqXG4gKiBSZXdyaXRlcyBhIGdyaWQvaGV4YWdvbiBjZWxsIHZlcnRleCBzaGFkZXIgc28gdGhhdCwgaW4gZ2xvYmUgbW9kZSwgdGhlIGZpbmFsXG4gKiBjbGlwLXNwYWNlIHBvc2l0aW9uIGlzIGRlcml2ZWQgZnJvbSB0aGUgc3BoZXJlIHN1cmZhY2UgaW5zdGVhZCBvZiB0aGUgZmxhdCBYWVxuICogcGxhbmUuIEluIDJELzNEIG1vZGUgdGhlIG9yaWdpbmFsIHBhdGggaXMga2VwdCB1bmNoYW5nZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRHbG9iZUNlbGxQcm9qZWN0aW9uKHZzOiBzdHJpbmcsIHR5cGU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGRlY2wgPSBgJHtHTE9CRV9DRUxMX0RFQ0x9XFxudm9pZCBtYWluKHZvaWQpIHtgO1xuICBjb25zdCB3aXRoRGVjbCA9IHZzLmluY2x1ZGVzKCd2b2lkIG1haW4odm9pZCkgeycpID8gdnMucmVwbGFjZSgndm9pZCBtYWluKHZvaWQpIHsnLCBkZWNsKSA6IHZzO1xuXG4gIGNvbnN0IHRhcmdldCA9ICdnbF9Qb3NpdGlvbiA9IHByb2plY3RfY29tbW9uX3Bvc2l0aW9uX3RvX2NsaXBzcGFjZShnZW9tZXRyeS5wb3NpdGlvbik7JztcbiAgaWYgKCF3aXRoRGVjbC5pbmNsdWRlcyh0YXJnZXQpKSB7XG4gICAgLy8gU2hhZGVyIHNoYXBlIGNoYW5nZWQgaW4gYSBkZWNrLmdsIHVwZGF0ZTsgbGVhdmUgdGhlIG9yaWdpbmFsIHNvIHdlIGRvbid0IGNyYXNoLlxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgY29uc29sZS5lcnJvcihgQ2Fubm90IGVkaXQgJHt0eXBlfSBnbG9iZSBjZWxsIHNoYWRlcmApO1xuICAgIHJldHVybiB3aXRoRGVjbDtcbiAgfVxuXG4gIHJldHVybiB3aXRoRGVjbC5yZXBsYWNlKFxuICAgIHRhcmdldCxcbiAgICBgaWYgKGdsb2JlQ2VsbFByb3BzLmdsb2JlTW9kZSA+IDAuNSkge1xuICAgICAgdmVjMiBsbmdMYXQgPSBrZXBsZXJfY29tbW9uVG9MbmdMYXQoZ2VvbWV0cnkucG9zaXRpb24ueHkgKyBwcm9qZWN0LmNvbW1vbk9yaWdpbi54eSk7XG4gICAgICB2ZWMzIGdsb2JlUG9zID0ga2VwbGVyX2xuZ0xhdFRvR2xvYmUobG5nTGF0LCBnZW9tZXRyeS5wb3NpdGlvbi56KTtcbiAgICAgIGdlb21ldHJ5LnBvc2l0aW9uID0gdmVjNChnbG9iZVBvcywgMS4wKTtcbiAgICB9XG4gICAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0X2NvbW1vbl9wb3NpdGlvbl90b19jbGlwc3BhY2UoZ2VvbWV0cnkucG9zaXRpb24pO2BcbiAgKTtcbn1cblxuLyoqXG4gKiBkZWNrLmdsIDkncyBHcmlkL0hleGFnb24gYWdncmVnYXRpb24gY29tcHV0ZSBiaW4gcG9zaXRpb25zIGFuZCB0aGUgY2VsbCBsYXllcidzXG4gKiBcImNvbW1vbiBzcGFjZVwiIGZyb20gYHRoaXMuY29udGV4dC52aWV3cG9ydGAuIFVuZGVyIGBfR2xvYmVWaWV3YCB0aGF0IGNvbW1vbiBzcGFjZVxuICogaXMgdGhlIGdsb2JlJ3MgM0QtcHJvamVjdGVkIHNwYWNlIChwcm9qZWN0RmxhdCBpcyBpZGVudGl0eSBvbiBsbmcvbGF0LCBwb3NpdGlvbnNcbiAqIGJpbiBvZmYgdGhlIHNwaGVyZS1wcm9qZWN0ZWQgWFkpLCB3aGljaCBib3RoIG1pcy1iaW5zIGRhdGEgYW5kIOKAlCBjb21iaW5lZCB3aXRoIHRoZVxuICogZmxhdCBjZWxsIHNoYWRlciDigJQgZHJvcHMgY2VsbHMgb250byB0aGUgcGxhbmUgdGhyb3VnaCB0aGUgZ2xvYmUgY2VudGVyLlxuICpcbiAqIFdlIHNpZGVzdGVwIHRoaXMgYnkgcnVubmluZyBgX3VwZGF0ZUJpbk9wdGlvbnNgIHdpdGggYSBXZWJNZXJjYXRvclZpZXdwb3J0IHRoYXRcbiAqIG1hdGNoZXMgdGhlIGN1cnJlbnQgZ2xvYmUgY2FtZXJhLiBUaGF0IG1ha2VzIGJpbm5pbmcsIGBjZWxsT3JpZ2luQ29tbW9uYCAvXG4gKiBgY2VsbFNpemVDb21tb25gIChvciBgcmFkaXVzQ29tbW9uYCAvIGBoZXhPcmlnaW5Db21tb25gKSBhbmQgdGhlIGNlbGwgc2hhZGVyJ3NcbiAqIGZsYXQgcG9zaXRpb24gYWxsIGxpdmUgaW4gZ2VudWluZSBXZWIgTWVyY2F0b3IgY29tbW9uIHNwYWNlLCB3aGljaCB0aGUgY2VsbCBzaGFkZXJcbiAqIHJlbWFwIChgYWRkR2xvYmVDZWxsUHJvamVjdGlvbmApIHRoZW4gY3VydmVzIGJhY2sgb250byB0aGUgc3BoZXJlLiBJbiAyRC8zRCBtb2RlXG4gKiB0aGlzIGlzIGEgbm8tb3AuXG4gKlxuICogYGNhbGxTdXBlcmAgcnVucyBkZWNrLmdsJ3Mgb3JpZ2luYWwgYF91cGRhdGVCaW5PcHRpb25zYCB3aGlsZSB0aGUgdmlld3BvcnQgaXNcbiAqIHRlbXBvcmFyaWx5IHN3YXBwZWQuIFRoZSBzd2FwIGlzIHN5bmNocm9ub3VzIGFuZCByZXN0b3JlZCBpbiBgZmluYWxseWAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBydW5CaW5PcHRpb25zV2l0aE1lcmNhdG9yVmlld3BvcnQobGF5ZXI6IGFueSwgY2FsbFN1cGVyOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gIGNvbnN0IHZpZXdwb3J0ID0gbGF5ZXIuY29udGV4dD8udmlld3BvcnQ7XG4gIGNvbnN0IGlzR2xvYmUgPSBCb29sZWFuKHZpZXdwb3J0Py5yZXNvbHV0aW9uKTtcbiAgaWYgKCFpc0dsb2JlKSB7XG4gICAgY2FsbFN1cGVyKCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgbWVyY2F0b3JWaWV3cG9ydCA9IG5ldyBXZWJNZXJjYXRvclZpZXdwb3J0KHtcbiAgICB3aWR0aDogdmlld3BvcnQud2lkdGgsXG4gICAgaGVpZ2h0OiB2aWV3cG9ydC5oZWlnaHQsXG4gICAgbG9uZ2l0dWRlOiB2aWV3cG9ydC5sb25naXR1ZGUsXG4gICAgbGF0aXR1ZGU6IHZpZXdwb3J0LmxhdGl0dWRlLFxuICAgIHpvb206IHZpZXdwb3J0Lnpvb21cbiAgfSk7XG5cbiAgY29uc3Qgb3JpZ2luYWxWaWV3cG9ydCA9IGxheWVyLmNvbnRleHQudmlld3BvcnQ7XG4gIGxheWVyLmNvbnRleHQudmlld3BvcnQgPSBtZXJjYXRvclZpZXdwb3J0O1xuICB0cnkge1xuICAgIGNhbGxTdXBlcigpO1xuICB9IGZpbmFsbHkge1xuICAgIGxheWVyLmNvbnRleHQudmlld3BvcnQgPSBvcmlnaW5hbFZpZXdwb3J0O1xuICB9XG59XG5cbi8qKlxuICogV3JhcHMgYSBkZWNrLmdsIGFnZ3JlZ2F0aW9uIGNlbGwgbGF5ZXIgY2xhc3MgKEdyaWRDZWxsTGF5ZXIgLyBIZXhhZ29uQ2VsbExheWVyKVxuICogd2l0aCBhIHN1YmNsYXNzIHRoYXQgaW5qZWN0cyB0aGUgZ2xvYmUgc3VyZmFjZSByZW1hcCBpbnRvIGl0cyB2ZXJ0ZXggc2hhZGVyLlxuICpcbiAqIFdlIGNyZWF0ZSB0aGUgc3ViY2xhc3MgZHluYW1pY2FsbHkgZnJvbSB3aGF0ZXZlciBkZWZhdWx0IGNsYXNzIGRlY2suZ2wgcHJvdmlkZXNcbiAqIHRvIGBnZXRTdWJMYXllckNsYXNzYCBzbyB3ZSBkb24ndCBoYXZlIHRvIGltcG9ydCB0aGUgKG5vbi1wdWJsaWMpIGNlbGwgbGF5ZXJcbiAqIGNsYXNzZXMgZGlyZWN0bHkuIFJlc3VsdHMgYXJlIGNhY2hlZCBwZXIgYmFzZSBjbGFzcyBzbyBkZWNrLmdsIHNlZXMgYSBzdGFibGVcbiAqIGxheWVyIGNsYXNzIGFjcm9zcyByZW5kZXJzIChsYXllcnMgYXJlIHJlY3JlYXRlZCBldmVyeSBmcmFtZSkgYW5kIHNoYWRlclxuICogY29tcGlsYXRpb24gLyBzdWJsYXllciBkaWZmaW5nIHN0YXlzIHN0YWJsZS5cbiAqL1xuY29uc3QgZ2xvYmVDZWxsQ2xhc3NDYWNoZSA9IG5ldyBXZWFrTWFwPG9iamVjdCwgb2JqZWN0PigpO1xuXG50eXBlIExheWVyQ29uc3RydWN0b3IgPSB7bmV3ICguLi5hcmdzOiBhbnlbXSk6IGFueTsgbGF5ZXJOYW1lPzogc3RyaW5nfTtcblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VHbG9iZUNlbGxMYXllckNsYXNzPFQgZXh0ZW5kcyBMYXllckNvbnN0cnVjdG9yPihcbiAgQmFzZUNlbGxMYXllcjogVCxcbiAgdHlwZTogc3RyaW5nXG4pOiBUIHtcbiAgY29uc3QgY2FjaGVkID0gZ2xvYmVDZWxsQ2xhc3NDYWNoZS5nZXQoQmFzZUNlbGxMYXllcik7XG4gIGlmIChjYWNoZWQpIHtcbiAgICByZXR1cm4gY2FjaGVkIGFzIFQ7XG4gIH1cblxuICBjbGFzcyBHbG9iZUNlbGxMYXllciBleHRlbmRzIChCYXNlQ2VsbExheWVyIGFzIHtuZXcgKC4uLmFyZ3M6IGFueVtdKTogYW55fSkge1xuICAgIGdldFNoYWRlcnMoKSB7XG4gICAgICBjb25zdCBzaGFkZXJzID0gKHN1cGVyLmdldFNoYWRlcnMgYXMgKCkgPT4gYW55KSgpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc2hhZGVycyxcbiAgICAgICAgdnM6IGFkZEdsb2JlQ2VsbFByb2plY3Rpb24oc2hhZGVycy52cywgdHlwZSksXG4gICAgICAgIG1vZHVsZXM6IFsuLi4oc2hhZGVycy5tb2R1bGVzIHx8IFtdKSwgZ2xvYmVDZWxsVW5pZm9ybXNdXG4gICAgICB9O1xuICAgIH1cblxuICAgIGRyYXcob3B0czogYW55KSB7XG4gICAgICBjb25zdCBnbG9iZU1vZGUgPSAodGhpcy5jb250ZXh0LnZpZXdwb3J0IGFzIGFueSkucmVzb2x1dGlvbiA/IDEuMCA6IDAuMDtcbiAgICAgIC8vIEdyaWRDZWxsTGF5ZXIgLyBIZXhhZ29uQ2VsbExheWVyIHJlbmRlciB0aHJvdWdoIGEgc2luZ2xlIGZpbGxNb2RlbCBhbmQgc2V0XG4gICAgICAvLyB0aGVpciBvd24gbW9kdWxlIHByb3BzIGluIGRyYXcoKTsgc2V0IG91cnMgZmlyc3Qgc28gaXQgbWVyZ2VzIChzZXRQcm9wcyBpc1xuICAgICAgLy8gcGVyLW1vZHVsZSkuIGRlY2suZ2wgOSBoYXMgbm8gTW9kZWwuc2V0VW5pZm9ybXMg4oCUIHVuaWZvcm1zIGdvIHRocm91Z2hcbiAgICAgIC8vIHNoYWRlcklucHV0cyBVQk8gbW9kdWxlcy5cbiAgICAgIGNvbnN0IG1vZGVsID0gKHRoaXMuc3RhdGUgYXMgYW55KS5maWxsTW9kZWw7XG4gICAgICBpZiAobW9kZWw/LnNoYWRlcklucHV0cykge1xuICAgICAgICBtb2RlbC5zaGFkZXJJbnB1dHMuc2V0UHJvcHMoe2dsb2JlQ2VsbDoge2dsb2JlTW9kZX19KTtcbiAgICAgIH1cbiAgICAgIChzdXBlci5kcmF3IGFzIChvOiBhbnkpID0+IHZvaWQpKG9wdHMpO1xuICAgIH1cbiAgfVxuICAoR2xvYmVDZWxsTGF5ZXIgYXMgdW5rbm93biBhcyB7bGF5ZXJOYW1lOiBzdHJpbmd9KS5sYXllck5hbWUgPSBgR2xvYmUke3R5cGV9Q2VsbExheWVyYDtcbiAgZ2xvYmVDZWxsQ2xhc3NDYWNoZS5zZXQoQmFzZUNlbGxMYXllciwgR2xvYmVDZWxsTGF5ZXIpO1xuICByZXR1cm4gR2xvYmVDZWxsTGF5ZXIgYXMgdW5rbm93biBhcyBUO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTs7QUFFQSxTQUFRQSxtQkFBbUIsUUFBTyxlQUFlOztBQUVqRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBTUMsaUJBQWlCLEdBQUc7RUFDeEJDLElBQUksRUFBRSxXQUFXO0VBQ2pCQyxFQUFFLHVGQUdIO0VBQ0NDLFlBQVksRUFBRTtJQUNaQyxTQUFTLEVBQUU7RUFDYjtBQUNGLENBQVU7QUFFVixJQUFNQyxlQUFlLEdBQUcsMndCQXFCdkI7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sU0FBU0Msc0JBQXNCQSxDQUFDSixFQUFVLEVBQUVLLElBQVksRUFBVTtFQUN2RSxJQUFNQyxJQUFJLE1BQUFDLE1BQUEsQ0FBTUosZUFBZSx3QkFBcUI7RUFDcEQs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
|
|
167
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJXZWJNZXJjYXRvclZpZXdwb3J0IiwiZ2xvYmVDZWxsVW5pZm9ybXMiLCJuYW1lIiwidnMiLCJ1bmlmb3JtVHlwZXMiLCJnbG9iZU1vZGUiLCJHTE9CRV9DRUxMX0RFQ0wiLCJhZGRHbG9iZUNlbGxQcm9qZWN0aW9uIiwidHlwZSIsImRlY2wiLCJjb25jYXQiLCJ3aXRoRGVjbCIsImluY2x1ZGVzIiwicmVwbGFjZSIsInRhcmdldCIsImNvbnNvbGUiLCJlcnJvciIsInJ1bkJpbk9wdGlvbnNXaXRoTWVyY2F0b3JWaWV3cG9ydCIsImxheWVyIiwiY2FsbFN1cGVyIiwiX2xheWVyJGNvbnRleHQiLCJ2aWV3cG9ydCIsImNvbnRleHQiLCJpc0dsb2JlIiwiQm9vbGVhbiIsInJlc29sdXRpb24iLCJtZXJjYXRvclZpZXdwb3J0Iiwid2lkdGgiLCJoZWlnaHQiLCJsb25naXR1ZGUiLCJsYXRpdHVkZSIsInpvb20iLCJvcmlnaW5hbFZpZXdwb3J0IiwiZ2xvYmVDZWxsQ2xhc3NDYWNoZSIsIldlYWtNYXAiLCJtYWtlR2xvYmVDZWxsTGF5ZXJDbGFzcyIsIkJhc2VDZWxsTGF5ZXIiLCJjYWNoZWQiLCJnZXQiLCJHbG9iZUNlbGxMYXllciIsIl9yZWYiLCJfY2xhc3NDYWxsQ2hlY2siLCJfY2FsbFN1cGVyIiwiYXJndW1lbnRzIiwiX2luaGVyaXRzIiwiX2NyZWF0ZUNsYXNzIiwia2V5IiwidmFsdWUiLCJnZXRTaGFkZXJzIiwic2hhZGVycyIsIl9zdXBlclByb3BHZXQiLCJfb2JqZWN0U3ByZWFkIiwibW9kdWxlcyIsIl90b0NvbnN1bWFibGVBcnJheSIsImRyYXciLCJvcHRzIiwibW9kZWwiLCJzdGF0ZSIsImZpbGxNb2RlbCIsInNoYWRlcklucHV0cyIsInNldFByb3BzIiwiZ2xvYmVDZWxsIiwibGF5ZXJOYW1lIiwic2V0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xheWVyLXV0aWxzL2dsb2JlLWNlbGwtdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtXZWJNZXJjYXRvclZpZXdwb3J0fSBmcm9tICdAZGVjay5nbC9jb3JlJztcblxuLyoqXG4gKiBkZWNrLmdsJ3MgYWdncmVnYXRpb24gY2VsbCBsYXllcnMgKEdyaWRDZWxsTGF5ZXIgLyBIZXhhZ29uQ2VsbExheWVyKSBwb3NpdGlvblxuICogZWFjaCBjZWxsIGluIGZsYXQgbWVyY2F0b3IgXCJjb21tb24gc3BhY2VcIiAoYSAyRCBYWSBwbGFuZSkgYW5kIHRoZW4gZHJhdyBpdCB3aXRoXG4gKiBgcHJvamVjdF9jb21tb25fcG9zaXRpb25fdG9fY2xpcHNwYWNlYCwgd2hpY2ggb25seSBtdWx0aXBsaWVzIGJ5IHRoZVxuICogdmlldy1wcm9qZWN0aW9uIG1hdHJpeC4gVW5kZXIgYF9HbG9iZVZpZXdgIHRoaXMgbGVhdmVzIHRoZSBjZWxscyBvbiB0aGUgZmxhdCBYWVxuICogcGxhbmUgdGhhdCBwYXNzZXMgdGhyb3VnaCB0aGUgY2VudGVyIG9mIHRoZSBnbG9iZSBpbnN0ZWFkIG9mIG9uIGl0cyBzdXJmYWNlXG4gKiAodGhlIGJhc2UgQ29sdW1uTGF5ZXIgd29ya3Mgb24gdGhlIGdsb2JlIGJlY2F1c2UgaXQgZmVlZHMgcmVhbCBsbmcvbGF0IHRocm91Z2hcbiAqIGBwcm9qZWN0X3Bvc2l0aW9uYCAtPiBgcHJvamVjdF9nbG9iZV9gOyB0aGUgYWdncmVnYXRpb24gY2VsbCBzaGFkZXJzIHNraXAgdGhhdCkuXG4gKlxuICogVG8gZml4IHRoaXMgd2UgcmVtYXAgdGhlIGFscmVhZHktY29tcHV0ZWQgZmxhdCBjb21tb24tc3BhY2UgdmVydGV4IHBvc2l0aW9uIGJhY2tcbiAqIHRvIGxuZy9sYXQgKGludmVyc2UgV2ViIE1lcmNhdG9yKSBhbmQgdGhlbiBvbnRvIHRoZSBzcGhlcmUgd2l0aCB0aGUgc2FtZSBtYXRoXG4gKiBgcHJvamVjdF9nbG9iZV9gIHVzZXMgZm9yIGdlb2dyYXBoaWMgbGF5ZXJzLiBCZWNhdXNlIHdlIHJlbWFwIGV2ZXJ5IHZlcnRleCBvZiB0aGVcbiAqIGNlbGwgZm9vdHByaW50IChub3QganVzdCB0aGUgY2VudHJvaWQpLCB0aGUgZmxhdCBxdWFkL2hleGFnb24gbmF0dXJhbGx5IGN1cnZlc1xuICogb250byB0aGUgc3VyZmFjZS4gRWxldmF0aW9uIChleHRydWRlZCBjZWxscywgc3RvcmVkIGluIGBnZW9tZXRyeS5wb3NpdGlvbi56YCBpblxuICogY29tbW9uIHVuaXRzKSBpcyBhZGRlZCBhbG9uZyB0aGUgcmFkaXVzIHNvIGNvbHVtbnMgcmlzZSByYWRpYWxseSBvZmYgdGhlIGdsb2JlLlxuICpcbiAqIFRoZSByZW1hcCBpcyBnYXRlZCBieSBhIGBnbG9iZU1vZGVgIHVuaWZvcm0gc28gMkQvM0QgbWVyY2F0b3IgcmVuZGVyaW5nIGlzXG4gKiBieXRlLWZvci1ieXRlIHVuY2hhbmdlZC5cbiAqXG4gKiBgV09STERfU0NBTEVgLCBgUElgLCBgR0xPQkVfUkFESVVTYCBhbmQgYHByb2plY3QuY29tbW9uT3JpZ2luYCBhcmUgYWxsIHByb3ZpZGVkXG4gKiBieSBkZWNrLmdsJ3MgcHJvamVjdCBzaGFkZXIgbW9kdWxlIHdoaWNoIHRoZXNlIGxheWVycyBpbmNsdWRlLlxuICovXG5cbi8vIGRlY2suZ2wgOSAvIGx1bWEgOSBzZXRzIGN1c3RvbSB1bmlmb3JtcyB2aWEgVUJPLWJhY2tlZCBzaGFkZXIgbW9kdWxlcyAodGhlcmUgaXNcbi8vIG5vIE1vZGVsLnNldFVuaWZvcm1zKS4gVGhpcyBtaW5pbWFsIG1vZHVsZSBleHBvc2VzIHRoZSBnbG9iZS1tb2RlIGZsYWcuXG5jb25zdCBnbG9iZUNlbGxVbmlmb3JtcyA9IHtcbiAgbmFtZTogJ2dsb2JlQ2VsbCcsXG4gIHZzOiBgbGF5b3V0KHN0ZDE0MCkgdW5pZm9ybSBnbG9iZUNlbGxVbmlmb3JtcyB7XG4gIGZsb2F0IGdsb2JlTW9kZTtcbn0gZ2xvYmVDZWxsUHJvcHM7XG5gLFxuICB1bmlmb3JtVHlwZXM6IHtcbiAgICBnbG9iZU1vZGU6ICdmMzInXG4gIH1cbn0gYXMgY29uc3Q7XG5cbmNvbnN0IEdMT0JFX0NFTExfREVDTCA9IC8qIGdsc2wgKi8gYFxuLy8gSW52ZXJzZSBvZiBkZWNrLmdsIHByb2plY3RfbWVyY2F0b3JfOiBmbGF0IGNvbW1vbiBYWSAtPiBsbmcvbGF0IChkZWdyZWVzKS5cbnZlYzIga2VwbGVyX2NvbW1vblRvTG5nTGF0KHZlYzIgY29tbW9uWFkpIHtcbiAgZmxvYXQgbG5nID0gZGVncmVlcyhjb21tb25YWS54IC8gV09STERfU0NBTEUgLSBQSSk7XG4gIGZsb2F0IGxhdCA9IGRlZ3JlZXMoMi4wICogYXRhbihleHAoY29tbW9uWFkueSAvIFdPUkxEX1NDQUxFIC0gUEkpKSAtIFBJICogMC41KTtcbiAgcmV0dXJuIHZlYzIobG5nLCBsYXQpO1xufVxuXG4vLyBTYW1lIG1hdGggYXMgZGVjay5nbCBwcm9qZWN0X2dsb2JlXy4gZWxldmF0aW9uQ29tbW9uIGlzIGluIGNvbW1vbiB1bml0cyBhbHJlYWR5XG4vLyAoR0xPQkVfUkFESVVTIHNwYWNlKSwgbWF0Y2hpbmcgaG93IHByb2plY3RfZ2xvYmVfIHNjYWxlcyB6IG9mZiBFQVJUSF9SQURJVVMuXG52ZWMzIGtlcGxlcl9sbmdMYXRUb0dsb2JlKHZlYzIgbG5nTGF0LCBmbG9hdCBlbGV2YXRpb25Db21tb24pIHtcbiAgZmxvYXQgbGFtYmRhID0gcmFkaWFucyhsbmdMYXQueCk7XG4gIGZsb2F0IHBoaSA9IHJhZGlhbnMobG5nTGF0LnkpO1xuICBmbG9hdCBjb3NQaGkgPSBjb3MocGhpKTtcbiAgZmxvYXQgRCA9IEdMT0JFX1JBRElVUyArIGVsZXZhdGlvbkNvbW1vbjtcbiAgcmV0dXJuIHZlYzMoXG4gICAgc2luKGxhbWJkYSkgKiBjb3NQaGksXG4gICAgLWNvcyhsYW1iZGEpICogY29zUGhpLFxuICAgIHNpbihwaGkpXG4gICkgKiBEO1xufVxuYDtcblxuLyoqXG4gKiBSZXdyaXRlcyBhIGdyaWQvaGV4YWdvbiBjZWxsIHZlcnRleCBzaGFkZXIgc28gdGhhdCwgaW4gZ2xvYmUgbW9kZSwgdGhlIGZpbmFsXG4gKiBjbGlwLXNwYWNlIHBvc2l0aW9uIGlzIGRlcml2ZWQgZnJvbSB0aGUgc3BoZXJlIHN1cmZhY2UgaW5zdGVhZCBvZiB0aGUgZmxhdCBYWVxuICogcGxhbmUuIEluIDJELzNEIG1vZGUgdGhlIG9yaWdpbmFsIHBhdGggaXMga2VwdCB1bmNoYW5nZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRHbG9iZUNlbGxQcm9qZWN0aW9uKHZzOiBzdHJpbmcsIHR5cGU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGRlY2wgPSBgJHtHTE9CRV9DRUxMX0RFQ0x9XFxudm9pZCBtYWluKHZvaWQpIHtgO1xuICBjb25zdCB3aXRoRGVjbCA9IHZzLmluY2x1ZGVzKCd2b2lkIG1haW4odm9pZCkgeycpID8gdnMucmVwbGFjZSgndm9pZCBtYWluKHZvaWQpIHsnLCBkZWNsKSA6IHZzO1xuXG4gIGNvbnN0IHRhcmdldCA9ICdnbF9Qb3NpdGlvbiA9IHByb2plY3RfY29tbW9uX3Bvc2l0aW9uX3RvX2NsaXBzcGFjZShnZW9tZXRyeS5wb3NpdGlvbik7JztcbiAgaWYgKCF3aXRoRGVjbC5pbmNsdWRlcyh0YXJnZXQpKSB7XG4gICAgLy8gU2hhZGVyIHNoYXBlIGNoYW5nZWQgaW4gYSBkZWNrLmdsIHVwZGF0ZTsgbGVhdmUgdGhlIG9yaWdpbmFsIHNvIHdlIGRvbid0IGNyYXNoLlxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgY29uc29sZS5lcnJvcihgQ2Fubm90IGVkaXQgJHt0eXBlfSBnbG9iZSBjZWxsIHNoYWRlcmApO1xuICAgIHJldHVybiB3aXRoRGVjbDtcbiAgfVxuXG4gIHJldHVybiB3aXRoRGVjbC5yZXBsYWNlKFxuICAgIHRhcmdldCxcbiAgICBgaWYgKGdsb2JlQ2VsbFByb3BzLmdsb2JlTW9kZSA+IDAuNSkge1xuICAgICAgdmVjMiBsbmdMYXQgPSBrZXBsZXJfY29tbW9uVG9MbmdMYXQoZ2VvbWV0cnkucG9zaXRpb24ueHkgKyBwcm9qZWN0LmNvbW1vbk9yaWdpbi54eSk7XG4gICAgICB2ZWMzIGdsb2JlUG9zID0ga2VwbGVyX2xuZ0xhdFRvR2xvYmUobG5nTGF0LCBnZW9tZXRyeS5wb3NpdGlvbi56KTtcbiAgICAgIGdlb21ldHJ5LnBvc2l0aW9uID0gdmVjNChnbG9iZVBvcywgMS4wKTtcbiAgICB9XG4gICAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0X2NvbW1vbl9wb3NpdGlvbl90b19jbGlwc3BhY2UoZ2VvbWV0cnkucG9zaXRpb24pO2BcbiAgKTtcbn1cblxuLyoqXG4gKiBkZWNrLmdsIDkncyBHcmlkL0hleGFnb24gYWdncmVnYXRpb24gY29tcHV0ZSBiaW4gcG9zaXRpb25zIGFuZCB0aGUgY2VsbCBsYXllcidzXG4gKiBcImNvbW1vbiBzcGFjZVwiIGZyb20gYHRoaXMuY29udGV4dC52aWV3cG9ydGAuIFVuZGVyIGBfR2xvYmVWaWV3YCB0aGF0IGNvbW1vbiBzcGFjZVxuICogaXMgdGhlIGdsb2JlJ3MgM0QtcHJvamVjdGVkIHNwYWNlIChwcm9qZWN0RmxhdCBpcyBpZGVudGl0eSBvbiBsbmcvbGF0LCBwb3NpdGlvbnNcbiAqIGJpbiBvZmYgdGhlIHNwaGVyZS1wcm9qZWN0ZWQgWFkpLCB3aGljaCBib3RoIG1pcy1iaW5zIGRhdGEgYW5kIOKAlCBjb21iaW5lZCB3aXRoIHRoZVxuICogZmxhdCBjZWxsIHNoYWRlciDigJQgZHJvcHMgY2VsbHMgb250byB0aGUgcGxhbmUgdGhyb3VnaCB0aGUgZ2xvYmUgY2VudGVyLlxuICpcbiAqIFdlIHNpZGVzdGVwIHRoaXMgYnkgcnVubmluZyBgX3VwZGF0ZUJpbk9wdGlvbnNgIHdpdGggYSBXZWJNZXJjYXRvclZpZXdwb3J0IHRoYXRcbiAqIG1hdGNoZXMgdGhlIGN1cnJlbnQgZ2xvYmUgY2FtZXJhLiBUaGF0IG1ha2VzIGJpbm5pbmcsIGBjZWxsT3JpZ2luQ29tbW9uYCAvXG4gKiBgY2VsbFNpemVDb21tb25gIChvciBgcmFkaXVzQ29tbW9uYCAvIGBoZXhPcmlnaW5Db21tb25gKSBhbmQgdGhlIGNlbGwgc2hhZGVyJ3NcbiAqIGZsYXQgcG9zaXRpb24gYWxsIGxpdmUgaW4gZ2VudWluZSBXZWIgTWVyY2F0b3IgY29tbW9uIHNwYWNlLCB3aGljaCB0aGUgY2VsbCBzaGFkZXJcbiAqIHJlbWFwIChgYWRkR2xvYmVDZWxsUHJvamVjdGlvbmApIHRoZW4gY3VydmVzIGJhY2sgb250byB0aGUgc3BoZXJlLiBJbiAyRC8zRCBtb2RlXG4gKiB0aGlzIGlzIGEgbm8tb3AuXG4gKlxuICogYGNhbGxTdXBlcmAgcnVucyBkZWNrLmdsJ3Mgb3JpZ2luYWwgYF91cGRhdGVCaW5PcHRpb25zYCB3aGlsZSB0aGUgdmlld3BvcnQgaXNcbiAqIHRlbXBvcmFyaWx5IHN3YXBwZWQuIFRoZSBzd2FwIGlzIHN5bmNocm9ub3VzIGFuZCByZXN0b3JlZCBpbiBgZmluYWxseWAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBydW5CaW5PcHRpb25zV2l0aE1lcmNhdG9yVmlld3BvcnQobGF5ZXI6IGFueSwgY2FsbFN1cGVyOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gIGNvbnN0IHZpZXdwb3J0ID0gbGF5ZXIuY29udGV4dD8udmlld3BvcnQ7XG4gIGNvbnN0IGlzR2xvYmUgPSBCb29sZWFuKHZpZXdwb3J0Py5yZXNvbHV0aW9uKTtcbiAgaWYgKCFpc0dsb2JlKSB7XG4gICAgY2FsbFN1cGVyKCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgbWVyY2F0b3JWaWV3cG9ydCA9IG5ldyBXZWJNZXJjYXRvclZpZXdwb3J0KHtcbiAgICB3aWR0aDogdmlld3BvcnQud2lkdGgsXG4gICAgaGVpZ2h0OiB2aWV3cG9ydC5oZWlnaHQsXG4gICAgbG9uZ2l0dWRlOiB2aWV3cG9ydC5sb25naXR1ZGUsXG4gICAgbGF0aXR1ZGU6IHZpZXdwb3J0LmxhdGl0dWRlLFxuICAgIHpvb206IHZpZXdwb3J0Lnpvb21cbiAgfSk7XG5cbiAgY29uc3Qgb3JpZ2luYWxWaWV3cG9ydCA9IGxheWVyLmNvbnRleHQudmlld3BvcnQ7XG4gIGxheWVyLmNvbnRleHQudmlld3BvcnQgPSBtZXJjYXRvclZpZXdwb3J0O1xuICB0cnkge1xuICAgIGNhbGxTdXBlcigpO1xuICB9IGZpbmFsbHkge1xuICAgIGxheWVyLmNvbnRleHQudmlld3BvcnQgPSBvcmlnaW5hbFZpZXdwb3J0O1xuICB9XG59XG5cbi8qKlxuICogV3JhcHMgYSBkZWNrLmdsIGFnZ3JlZ2F0aW9uIGNlbGwgbGF5ZXIgY2xhc3MgKEdyaWRDZWxsTGF5ZXIgLyBIZXhhZ29uQ2VsbExheWVyKVxuICogd2l0aCBhIHN1YmNsYXNzIHRoYXQgaW5qZWN0cyB0aGUgZ2xvYmUgc3VyZmFjZSByZW1hcCBpbnRvIGl0cyB2ZXJ0ZXggc2hhZGVyLlxuICpcbiAqIFdlIGNyZWF0ZSB0aGUgc3ViY2xhc3MgZHluYW1pY2FsbHkgZnJvbSB3aGF0ZXZlciBkZWZhdWx0IGNsYXNzIGRlY2suZ2wgcHJvdmlkZXNcbiAqIHRvIGBnZXRTdWJMYXllckNsYXNzYCBzbyB3ZSBkb24ndCBoYXZlIHRvIGltcG9ydCB0aGUgKG5vbi1wdWJsaWMpIGNlbGwgbGF5ZXJcbiAqIGNsYXNzZXMgZGlyZWN0bHkuIFJlc3VsdHMgYXJlIGNhY2hlZCBwZXIgYmFzZSBjbGFzcyBzbyBkZWNrLmdsIHNlZXMgYSBzdGFibGVcbiAqIGxheWVyIGNsYXNzIGFjcm9zcyByZW5kZXJzIChsYXllcnMgYXJlIHJlY3JlYXRlZCBldmVyeSBmcmFtZSkgYW5kIHNoYWRlclxuICogY29tcGlsYXRpb24gLyBzdWJsYXllciBkaWZmaW5nIHN0YXlzIHN0YWJsZS5cbiAqL1xuY29uc3QgZ2xvYmVDZWxsQ2xhc3NDYWNoZSA9IG5ldyBXZWFrTWFwPG9iamVjdCwgb2JqZWN0PigpO1xuXG50eXBlIExheWVyQ29uc3RydWN0b3IgPSB7bmV3ICguLi5hcmdzOiBhbnlbXSk6IGFueTsgbGF5ZXJOYW1lPzogc3RyaW5nfTtcblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VHbG9iZUNlbGxMYXllckNsYXNzPFQgZXh0ZW5kcyBMYXllckNvbnN0cnVjdG9yPihcbiAgQmFzZUNlbGxMYXllcjogVCxcbiAgdHlwZTogc3RyaW5nXG4pOiBUIHtcbiAgY29uc3QgY2FjaGVkID0gZ2xvYmVDZWxsQ2xhc3NDYWNoZS5nZXQoQmFzZUNlbGxMYXllcik7XG4gIGlmIChjYWNoZWQpIHtcbiAgICByZXR1cm4gY2FjaGVkIGFzIFQ7XG4gIH1cblxuICBjbGFzcyBHbG9iZUNlbGxMYXllciBleHRlbmRzIChCYXNlQ2VsbExheWVyIGFzIHtuZXcgKC4uLmFyZ3M6IGFueVtdKTogYW55fSkge1xuICAgIGdldFNoYWRlcnMoKSB7XG4gICAgICBjb25zdCBzaGFkZXJzID0gc3VwZXIuZ2V0U2hhZGVycygpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc2hhZGVycyxcbiAgICAgICAgdnM6IGFkZEdsb2JlQ2VsbFByb2plY3Rpb24oc2hhZGVycy52cywgdHlwZSksXG4gICAgICAgIG1vZHVsZXM6IFsuLi4oc2hhZGVycy5tb2R1bGVzIHx8IFtdKSwgZ2xvYmVDZWxsVW5pZm9ybXNdXG4gICAgICB9O1xuICAgIH1cblxuICAgIGRyYXcob3B0czogYW55KSB7XG4gICAgICBjb25zdCBnbG9iZU1vZGUgPSAodGhpcy5jb250ZXh0LnZpZXdwb3J0IGFzIGFueSkucmVzb2x1dGlvbiA/IDEuMCA6IDAuMDtcbiAgICAgIC8vIEdyaWRDZWxsTGF5ZXIgLyBIZXhhZ29uQ2VsbExheWVyIHJlbmRlciB0aHJvdWdoIGEgc2luZ2xlIGZpbGxNb2RlbCBhbmQgc2V0XG4gICAgICAvLyB0aGVpciBvd24gbW9kdWxlIHByb3BzIGluIGRyYXcoKTsgc2V0IG91cnMgZmlyc3Qgc28gaXQgbWVyZ2VzIChzZXRQcm9wcyBpc1xuICAgICAgLy8gcGVyLW1vZHVsZSkuIGRlY2suZ2wgOSBoYXMgbm8gTW9kZWwuc2V0VW5pZm9ybXMg4oCUIHVuaWZvcm1zIGdvIHRocm91Z2hcbiAgICAgIC8vIHNoYWRlcklucHV0cyBVQk8gbW9kdWxlcy5cbiAgICAgIGNvbnN0IG1vZGVsID0gKHRoaXMuc3RhdGUgYXMgYW55KS5maWxsTW9kZWw7XG4gICAgICBpZiAobW9kZWw/LnNoYWRlcklucHV0cykge1xuICAgICAgICBtb2RlbC5zaGFkZXJJbnB1dHMuc2V0UHJvcHMoe2dsb2JlQ2VsbDoge2dsb2JlTW9kZX19KTtcbiAgICAgIH1cbiAgICAgIHN1cGVyLmRyYXcob3B0cyk7XG4gICAgfVxuICB9XG4gIChHbG9iZUNlbGxMYXllciBhcyB1bmtub3duIGFzIHtsYXllck5hbWU6IHN0cmluZ30pLmxheWVyTmFtZSA9IGBHbG9iZSR7dHlwZX1DZWxsTGF5ZXJgO1xuICBnbG9iZUNlbGxDbGFzc0NhY2hlLnNldChCYXNlQ2VsbExheWVyLCBHbG9iZUNlbGxMYXllcik7XG4gIHJldHVybiBHbG9iZUNlbGxMYXllciBhcyB1bmtub3duIGFzIFQ7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBOztBQUVBLFNBQVFBLG1CQUFtQixRQUFPLGVBQWU7O0FBRWpEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFNQyxpQkFBaUIsR0FBRztFQUN4QkMsSUFBSSxFQUFFLFdBQVc7RUFDakJDLEVBQUUsdUZBR0g7RUFDQ0MsWUFBWSxFQUFFO0lBQ1pDLFNBQVMsRUFBRTtFQUNiO0FBQ0YsQ0FBVTtBQUVWLElBQU1DLGVBQWUsR0FBRywyd0JBcUJ2Qjs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyxTQUFTQyxzQkFBc0JBLENBQUNKLEVBQVUsRUFBRUssSUFBWSxFQUFVO0VBQ3ZFLElBQU1DLElBQUksTUFBQUMsTUFBQSxDQUFNSixlQUFlLHdCQUFxQjtFQUNwRCxJQUFNSyxRQUFRLEdBQUdSLEVBQUUsQ0FBQ1MsUUFBUSxDQUFDLG1CQUFtQixDQUFDLEdBQUdULEVBQUUsQ0FBQ1UsT0FBTyxDQUFDLG1CQUFtQixFQUFFSixJQUFJLENBQUMsR0FBR04sRUFBRTtFQUU5RixJQUFNVyxNQUFNLEdBQUcsd0VBQXdFO0VBQ3ZGLElBQUksQ0FBQ0gsUUFBUSxDQUFDQyxRQUFRLENBQUNFLE1BQU0sQ0FBQyxFQUFFO0lBQzlCO0lBQ0E7SUFDQUMsT0FBTyxDQUFDQyxLQUFLLGdCQUFBTixNQUFBLENBQWdCRixJQUFJLHVCQUFvQixDQUFDO0lBQ3RELE9BQU9HLFFBQVE7RUFDakI7RUFFQSxPQUFPQSxRQUFRLENBQUNFLE9BQU8sQ0FDckJDLE1BQU0sa1ZBT1IsQ0FBQztBQUNIOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLFNBQVNHLGlDQUFpQ0EsQ0FBQ0MsS0FBVSxFQUFFQyxTQUFxQixFQUFRO0VBQUEsSUFBQUMsY0FBQTtFQUN6RixJQUFNQyxRQUFRLElBQUFELGNBQUEsR0FBR0YsS0FBSyxDQUFDSSxPQUFPLGNBQUFGLGNBQUEsdUJBQWJBLGNBQUEsQ0FBZUMsUUFBUTtFQUN4QyxJQUFNRSxPQUFPLEdBQUdDLE9BQU8sQ0FBQ0gsUUFBUSxhQUFSQSxRQUFRLHVCQUFSQSxRQUFRLENBQUVJLFVBQVUsQ0FBQztFQUM3QyxJQUFJLENBQUNGLE9BQU8sRUFBRTtJQUNaSixTQUFTLENBQUMsQ0FBQztJQUNYO0VBQ0Y7RUFFQSxJQUFNTyxnQkFBZ0IsR0FBRyxJQUFJMUIsbUJBQW1CLENBQUM7SUFDL0MyQixLQUFLLEVBQUVOLFFBQVEsQ0FBQ00sS0FBSztJQUNyQkMsTUFBTSxFQUFFUCxRQUFRLENBQUNPLE1BQU07SUFDdkJDLFNBQVMsRUFBRVIsUUFBUSxDQUFDUSxTQUFTO0lBQzdCQyxRQUFRLEVBQUVULFFBQVEsQ0FBQ1MsUUFBUTtJQUMzQkMsSUFBSSxFQUFFVixRQUFRLENBQUNVO0VBQ2pCLENBQUMsQ0FBQztFQUVGLElBQU1DLGdCQUFnQixHQUFHZCxLQUFLLENBQUNJLE9BQU8sQ0FBQ0QsUUFBUTtFQUMvQ0gsS0FBSyxDQUFDSSxPQUFPLENBQUNELFFBQVEsR0FBR0ssZ0JBQWdCO0VBQ3pDLElBQUk7SUFDRlAsU0FBUyxDQUFDLENBQUM7RUFDYixDQUFDLFNBQVM7SUFDUkQsS0FBSyxDQUFDSSxPQUFPLENBQUNELFFBQVEsR0FBR1csZ0JBQWdCO0VBQzNDO0FBQ0Y7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFNQyxtQkFBbUIsR0FBRyxJQUFJQyxPQUFPLENBQWlCLENBQUM7QUFJekQsT0FBTyxTQUFTQyx1QkFBdUJBLENBQ3JDQyxhQUFnQixFQUNoQjVCLElBQVksRUFDVDtFQUNILElBQU02QixNQUFNLEdBQUdKLG1CQUFtQixDQUFDSyxHQUFHLENBQUNGLGFBQWEsQ0FBQztFQUNyRCxJQUFJQyxNQUFNLEVBQUU7SUFDVixPQUFPQSxNQUFNO0VBQ2Y7RUFBQyxJQUVLRSxjQUFjLDBCQUFBQyxJQUFBO0lBQUEsU0FBQUQsZUFBQTtNQUFBRSxlQUFBLE9BQUFGLGNBQUE7TUFBQSxPQUFBRyxVQUFBLE9BQUFILGNBQUEsRUFBQUksU0FBQTtJQUFBO0lBQUFDLFNBQUEsQ0FBQUwsY0FBQSxFQUFBQyxJQUFBO0lBQUEsT0FBQUssWUFBQSxDQUFBTixjQUFBO01BQUFPLEdBQUE7TUFBQUMsS0FBQSxFQUNsQixTQUFBQyxVQUFVQSxDQUFBLEVBQUc7UUFDWCxJQUFNQyxPQUFPLEdBQUFDLGFBQUEsQ0FBQVgsY0FBQSw0QkFBcUI7UUFDbEMsT0FBQVksYUFBQSxDQUFBQSxhQUFBLEtBQ0tGLE9BQU87VUFDVjlDLEVBQUUsRUFBRUksc0JBQXNCLENBQUMwQyxPQUFPLENBQUM5QyxFQUFFLEVBQUVLLElBQUksQ0FBQztVQUM1QzRDLE9BQU8sS0FBQTFDLE1BQUEsQ0FBQTJDLGtCQUFBLENBQU9KLE9BQU8sQ0FBQ0csT0FBTyxJQUFJLEVBQUUsSUFBR25ELGlCQUFpQjtRQUFDO01BRTVEO0lBQUM7TUFBQTZDLEdBQUE7TUFBQUMsS0FBQSxFQUVELFNBQUFPLElBQUlBLENBQUNDLElBQVMsRUFBRTtRQUNkLElBQU1sRCxTQUFTLEdBQUksSUFBSSxDQUFDaUIsT0FBTyxDQUFDRCxRQUFRLENBQVNJLFVBQVUsR0FBRyxHQUFHLEdBQUcsR0FBRztRQUN2RTtRQUNBO1FBQ0E7UUFDQTtRQUNBLElBQU0rQixLQUFLLEdBQUksSUFBSSxDQUFDQyxLQUFLLENBQVNDLFNBQVM7UUFDM0MsSUFBSUYsS0FBSyxhQUFMQSxLQUFLLGVBQUxBLEtBQUssQ0FBRUcsWUFBWSxFQUFFO1VBQ3ZCSCxLQUFLLENBQUNHLFlBQVksQ0FBQ0MsUUFBUSxDQUFDO1lBQUNDLFNBQVMsRUFBRTtjQUFDeEQsU0FBUyxFQUFUQTtZQUFTO1VBQUMsQ0FBQyxDQUFDO1FBQ3ZEO1FBQ0E2QyxhQUFBLENBQUFYLGNBQUEsb0JBQVdnQixJQUFJO01BQ2pCO0lBQUM7RUFBQSxFQXJCMkJuQixhQUFhO0VBdUIxQ0csY0FBYyxDQUFvQ3VCLFNBQVMsV0FBQXBELE1BQUEsQ0FBV0YsSUFBSSxjQUFXO0VBQ3RGeUIsbUJBQW1CLENBQUM4QixHQUFHLENBQUMzQixhQUFhLEVBQUVHLGNBQWMsQ0FBQztFQUN0RCxPQUFPQSxjQUFjO0FBQ3ZCIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SimpleMeshLayer } from '@deck.gl/mesh-layers';
|
|
2
|
-
import type
|
|
2
|
+
import { type GlobeConfig } from '@kepler.gl/constants';
|
|
3
3
|
/**
|
|
4
4
|
* Convert a mapState zoom level to a [0, 1] atmosphere opacity multiplier.
|
|
5
5
|
* Returns 1 (fully visible) below ATMOSPHERE_FADE_ZOOM_START, smoothly
|
|
@@ -26,12 +26,33 @@ export declare class AtmosphereSkyLayerRealistic extends SimpleMeshLayer<any, At
|
|
|
26
26
|
}): void;
|
|
27
27
|
getShaders(): any;
|
|
28
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* View-independent atmosphere: a large uniform emissive aura around the globe.
|
|
31
|
+
* Unlike AtmosphereSkyLayerRealistic, this ignores sun direction and uses a
|
|
32
|
+
* linear radial falloff through a thick shell (max at the surface → 0 at outer radius).
|
|
33
|
+
*/
|
|
34
|
+
export declare class AtmosphereHugeHaloLayer extends SimpleMeshLayer<any, AtmosphereLayerProps> {
|
|
35
|
+
static layerName: string;
|
|
36
|
+
draw({ uniforms }: {
|
|
37
|
+
uniforms: object;
|
|
38
|
+
}): void;
|
|
39
|
+
getShaders(): any;
|
|
40
|
+
}
|
|
29
41
|
export declare const getGlobeAtmosphereLayer: ({ config, zoom }: {
|
|
30
42
|
config: GlobeConfig;
|
|
31
43
|
zoom?: number;
|
|
32
44
|
}) => AtmosphereLayerRealistic;
|
|
45
|
+
/** Realistic sun-lit scattering sky halo (thin limb glow). */
|
|
33
46
|
export declare const getGlobeAtmosphereSkyLayer: ({ config, zoom }: {
|
|
34
47
|
config: GlobeConfig;
|
|
35
48
|
zoom?: number;
|
|
36
49
|
}) => AtmosphereSkyLayerRealistic;
|
|
50
|
+
/**
|
|
51
|
+
* Large uniform glow drawn in addition to the realistic sky halo when
|
|
52
|
+
* `config.hugeHalo` is enabled. Returns null when disabled.
|
|
53
|
+
*/
|
|
54
|
+
export declare const getGlobeHugeHaloLayer: ({ config, zoom }: {
|
|
55
|
+
config: GlobeConfig;
|
|
56
|
+
zoom?: number;
|
|
57
|
+
}) => AtmosphereHugeHaloLayer | null;
|
|
37
58
|
export {};
|
|
@@ -3,3 +3,8 @@
|
|
|
3
3
|
* Generates the image once and caches it for subsequent calls.
|
|
4
4
|
*/
|
|
5
5
|
export declare function getStarsBackgroundImage(): string;
|
|
6
|
+
/**
|
|
7
|
+
* Tile the star-field onto a 2D canvas (e.g. video-export frame capture).
|
|
8
|
+
* Stars are drawn with alpha so the caller should fill the background color first.
|
|
9
|
+
*/
|
|
10
|
+
export declare function drawStarsBackground(ctx: CanvasRenderingContext2D, width: number, height: number): void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/globe/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export { AtmosphereLayerRealistic, AtmosphereSkyLayerRealistic, getGlobeAtmosphereLayer, getGlobeAtmosphereSkyLayer } from './atmosphere-layer';
|
|
1
|
+
export { AtmosphereLayerRealistic, AtmosphereSkyLayerRealistic, AtmosphereHugeHaloLayer, getGlobeAtmosphereLayer, getGlobeAtmosphereSkyLayer, getGlobeHugeHaloLayer } from './atmosphere-layer';
|
|
2
2
|
export { GlobeDepthDiskLayer, getGlobeDepthDiskLayer } from './globe-depth-disk-layer';
|
|
3
3
|
export { getGlobeBaseLayers, getGlobeTopLayers, getGlobeClearColor, getGlobeBasemapAttributions, resolveGlobeBasemapProvider, DEFAULT_BASEMAP_COLOR, getBasemapColors, getBasemapColorsForStyle } from './globe-layers';
|
|
4
4
|
export type { GlobeBasemapProvider, GlobeAttribution } from './globe-layers';
|
|
5
5
|
export { MVTLabelLayer } from './mvt-label-layer';
|
|
6
6
|
export { default as EnhancedMultiIconLayer } from './enhanced-multi-icon-layer';
|
|
7
7
|
export { KeplerGlobeView } from './globe-view';
|
|
8
|
-
export { getStarsBackgroundImage } from './globe-stars-layer';
|
|
8
|
+
export { getStarsBackgroundImage, drawStarsBackground } from './globe-stars-layer';
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kepler.gl/deckgl-layers",
|
|
3
3
|
"author": "Shan He <shan@uber.com>",
|
|
4
|
-
"version": "3.3.0-alpha.
|
|
4
|
+
"version": "3.3.0-alpha.7",
|
|
5
5
|
"description": "kepler.gl constants used by kepler.gl components, actions and reducers",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"main": "dist/cjs/index.js",
|
|
@@ -33,9 +33,9 @@
|
|
|
33
33
|
"@deck.gl/geo-layers": "^9.3.1",
|
|
34
34
|
"@deck.gl/layers": "^9.3.1",
|
|
35
35
|
"@deck.gl/mesh-layers": "^9.3.1",
|
|
36
|
-
"@kepler.gl/constants": "3.3.0-alpha.
|
|
37
|
-
"@kepler.gl/types": "3.3.0-alpha.
|
|
38
|
-
"@kepler.gl/utils": "3.3.0-alpha.
|
|
36
|
+
"@kepler.gl/constants": "3.3.0-alpha.7",
|
|
37
|
+
"@kepler.gl/types": "3.3.0-alpha.7",
|
|
38
|
+
"@kepler.gl/utils": "3.3.0-alpha.7",
|
|
39
39
|
"@loaders.gl/wms": "4.4.1",
|
|
40
40
|
"@luma.gl/constants": "^9.3.2",
|
|
41
41
|
"@luma.gl/core": "^9.3.2",
|
|
@@ -49,11 +49,11 @@
|
|
|
49
49
|
"@math.gl/web-mercator": "^4.1.0",
|
|
50
50
|
"@types/d3-array": "^2.8.0",
|
|
51
51
|
"@types/geojson": "^7946.0.8",
|
|
52
|
-
"@types/lodash": "4.17.
|
|
52
|
+
"@types/lodash": "4.17.24",
|
|
53
53
|
"@types/supercluster": "^7.1.0",
|
|
54
54
|
"d3-array": "^2.8.0",
|
|
55
55
|
"global": "^4.3.0",
|
|
56
|
-
"lodash": "4.
|
|
56
|
+
"lodash": "4.18.1",
|
|
57
57
|
"pbf": "^3.1.0",
|
|
58
58
|
"supercluster": "^7.1.0",
|
|
59
59
|
"viewport-mercator-project": "^6.0.0"
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.shouldComposeModelMatrix = shouldComposeModelMatrix;
|
|
7
|
-
var _core = require("@deck.gl/core");
|
|
8
|
-
// SPDX-License-Identifier: MIT
|
|
9
|
-
// Copyright contributors to the kepler.gl project
|
|
10
|
-
|
|
11
|
-
// only apply composeModelMatrix when in cartesian or meter_offsets coordinate system
|
|
12
|
-
// with `composeModelMatrix` enabled, the rotation part of the layer's modelMatrix will be composed to instance's transformations
|
|
13
|
-
// since rotating latitude and longitude can not provide meaningful results, hence `composeModelMatrix` is disabled
|
|
14
|
-
// when in LNGLAT and LNGLAT_OFFSET coordinates.
|
|
15
|
-
function shouldComposeModelMatrix(viewport, coordinateSystem) {
|
|
16
|
-
return coordinateSystem === _core.COORDINATE_SYSTEM.CARTESIAN || coordinateSystem === _core.COORDINATE_SYSTEM.METER_OFFSETS || coordinateSystem === _core.COORDINATE_SYSTEM.DEFAULT && !viewport.isGeospatial;
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29yZSIsInJlcXVpcmUiLCJzaG91bGRDb21wb3NlTW9kZWxNYXRyaXgiLCJ2aWV3cG9ydCIsImNvb3JkaW5hdGVTeXN0ZW0iLCJDT09SRElOQVRFX1NZU1RFTSIsIkNBUlRFU0lBTiIsIk1FVEVSX09GRlNFVFMiLCJERUZBVUxUIiwiaXNHZW9zcGF0aWFsIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Jhc3Rlci9yYXN0ZXItbWVzaC1sYXllci9tYXRyaXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtDT09SRElOQVRFX1NZU1RFTSwgVmlld3BvcnR9IGZyb20gJ0BkZWNrLmdsL2NvcmUnO1xudHlwZSBDb29yZGluYXRlU3lzdGVtID0gbnVtYmVyIHwgc3RyaW5nO1xuXG4vLyBvbmx5IGFwcGx5IGNvbXBvc2VNb2RlbE1hdHJpeCB3aGVuIGluIGNhcnRlc2lhbiBvciBtZXRlcl9vZmZzZXRzIGNvb3JkaW5hdGUgc3lzdGVtXG4vLyB3aXRoIGBjb21wb3NlTW9kZWxNYXRyaXhgIGVuYWJsZWQsIHRoZSByb3RhdGlvbiBwYXJ0IG9mIHRoZSBsYXllcidzIG1vZGVsTWF0cml4IHdpbGwgYmUgY29tcG9zZWQgdG8gaW5zdGFuY2UncyB0cmFuc2Zvcm1hdGlvbnNcbi8vIHNpbmNlIHJvdGF0aW5nIGxhdGl0dWRlIGFuZCBsb25naXR1ZGUgY2FuIG5vdCBwcm92aWRlIG1lYW5pbmdmdWwgcmVzdWx0cywgaGVuY2UgYGNvbXBvc2VNb2RlbE1hdHJpeGAgaXMgZGlzYWJsZWRcbi8vIHdoZW4gaW4gTE5HTEFUIGFuZCBMTkdMQVRfT0ZGU0VUIGNvb3JkaW5hdGVzLlxuZXhwb3J0IGZ1bmN0aW9uIHNob3VsZENvbXBvc2VNb2RlbE1hdHJpeChcbiAgdmlld3BvcnQ6IFZpZXdwb3J0LFxuICBjb29yZGluYXRlU3lzdGVtOiBDb29yZGluYXRlU3lzdGVtXG4pOiBib29sZWFuIHtcbiAgcmV0dXJuIChcbiAgICBjb29yZGluYXRlU3lzdGVtID09PSBDT09SRElOQVRFX1NZU1RFTS5DQVJURVNJQU4gfHxcbiAgICBjb29yZGluYXRlU3lzdGVtID09PSBDT09SRElOQVRFX1NZU1RFTS5NRVRFUl9PRkZTRVRTIHx8XG4gICAgKGNvb3JkaW5hdGVTeXN0ZW0gPT09IENPT1JESU5BVEVfU1lTVEVNLkRFRkFVTFQgJiYgIXZpZXdwb3J0LmlzR2Vvc3BhdGlhbClcbiAgKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBR0EsSUFBQUEsS0FBQSxHQUFBQyxPQUFBO0FBSEE7QUFDQTs7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLFNBQVNDLHdCQUF3QkEsQ0FDdENDLFFBQWtCLEVBQ2xCQyxnQkFBa0MsRUFDekI7RUFDVCxPQUNFQSxnQkFBZ0IsS0FBS0MsdUJBQWlCLENBQUNDLFNBQVMsSUFDaERGLGdCQUFnQixLQUFLQyx1QkFBaUIsQ0FBQ0UsYUFBYSxJQUNuREgsZ0JBQWdCLEtBQUtDLHVCQUFpQixDQUFDRyxPQUFPLElBQUksQ0FBQ0wsUUFBUSxDQUFDTSxZQUFhO0FBRTlFIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: MIT
|
|
2
|
-
// Copyright contributors to the kepler.gl project
|
|
3
|
-
|
|
4
|
-
import { COORDINATE_SYSTEM } from '@deck.gl/core';
|
|
5
|
-
// only apply composeModelMatrix when in cartesian or meter_offsets coordinate system
|
|
6
|
-
// with `composeModelMatrix` enabled, the rotation part of the layer's modelMatrix will be composed to instance's transformations
|
|
7
|
-
// since rotating latitude and longitude can not provide meaningful results, hence `composeModelMatrix` is disabled
|
|
8
|
-
// when in LNGLAT and LNGLAT_OFFSET coordinates.
|
|
9
|
-
export function shouldComposeModelMatrix(viewport, coordinateSystem) {
|
|
10
|
-
return coordinateSystem === COORDINATE_SYSTEM.CARTESIAN || coordinateSystem === COORDINATE_SYSTEM.METER_OFFSETS || coordinateSystem === COORDINATE_SYSTEM.DEFAULT && !viewport.isGeospatial;
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDT09SRElOQVRFX1NZU1RFTSIsInNob3VsZENvbXBvc2VNb2RlbE1hdHJpeCIsInZpZXdwb3J0IiwiY29vcmRpbmF0ZVN5c3RlbSIsIkNBUlRFU0lBTiIsIk1FVEVSX09GRlNFVFMiLCJERUZBVUxUIiwiaXNHZW9zcGF0aWFsIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Jhc3Rlci9yYXN0ZXItbWVzaC1sYXllci9tYXRyaXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtDT09SRElOQVRFX1NZU1RFTSwgVmlld3BvcnR9IGZyb20gJ0BkZWNrLmdsL2NvcmUnO1xudHlwZSBDb29yZGluYXRlU3lzdGVtID0gbnVtYmVyIHwgc3RyaW5nO1xuXG4vLyBvbmx5IGFwcGx5IGNvbXBvc2VNb2RlbE1hdHJpeCB3aGVuIGluIGNhcnRlc2lhbiBvciBtZXRlcl9vZmZzZXRzIGNvb3JkaW5hdGUgc3lzdGVtXG4vLyB3aXRoIGBjb21wb3NlTW9kZWxNYXRyaXhgIGVuYWJsZWQsIHRoZSByb3RhdGlvbiBwYXJ0IG9mIHRoZSBsYXllcidzIG1vZGVsTWF0cml4IHdpbGwgYmUgY29tcG9zZWQgdG8gaW5zdGFuY2UncyB0cmFuc2Zvcm1hdGlvbnNcbi8vIHNpbmNlIHJvdGF0aW5nIGxhdGl0dWRlIGFuZCBsb25naXR1ZGUgY2FuIG5vdCBwcm92aWRlIG1lYW5pbmdmdWwgcmVzdWx0cywgaGVuY2UgYGNvbXBvc2VNb2RlbE1hdHJpeGAgaXMgZGlzYWJsZWRcbi8vIHdoZW4gaW4gTE5HTEFUIGFuZCBMTkdMQVRfT0ZGU0VUIGNvb3JkaW5hdGVzLlxuZXhwb3J0IGZ1bmN0aW9uIHNob3VsZENvbXBvc2VNb2RlbE1hdHJpeChcbiAgdmlld3BvcnQ6IFZpZXdwb3J0LFxuICBjb29yZGluYXRlU3lzdGVtOiBDb29yZGluYXRlU3lzdGVtXG4pOiBib29sZWFuIHtcbiAgcmV0dXJuIChcbiAgICBjb29yZGluYXRlU3lzdGVtID09PSBDT09SRElOQVRFX1NZU1RFTS5DQVJURVNJQU4gfHxcbiAgICBjb29yZGluYXRlU3lzdGVtID09PSBDT09SRElOQVRFX1NZU1RFTS5NRVRFUl9PRkZTRVRTIHx8XG4gICAgKGNvb3JkaW5hdGVTeXN0ZW0gPT09IENPT1JESU5BVEVfU1lTVEVNLkRFRkFVTFQgJiYgIXZpZXdwb3J0LmlzR2Vvc3BhdGlhbClcbiAgKTtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTs7QUFFQSxTQUFRQSxpQkFBaUIsUUFBaUIsZUFBZTtBQUd6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sU0FBU0Msd0JBQXdCQSxDQUN0Q0MsUUFBa0IsRUFDbEJDLGdCQUFrQyxFQUN6QjtFQUNULE9BQ0VBLGdCQUFnQixLQUFLSCxpQkFBaUIsQ0FBQ0ksU0FBUyxJQUNoREQsZ0JBQWdCLEtBQUtILGlCQUFpQixDQUFDSyxhQUFhLElBQ25ERixnQkFBZ0IsS0FBS0gsaUJBQWlCLENBQUNNLE9BQU8sSUFBSSxDQUFDSixRQUFRLENBQUNLLFlBQWE7QUFFOUUiLCJpZ25vcmVMaXN0IjpbXX0=
|