New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@apache-arrow/es5-cjs

Package Overview
Dependencies
Maintainers
1
Versions
46
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@apache-arrow/es5-cjs - npm Package Compare versions

Comparing version 0.0.2 to 0.0.3

develop.md

18

Arrow.externs.js

@@ -0,1 +1,17 @@

// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
/**

@@ -49,2 +65,2 @@ * @fileoverview Closure Compiler externs for Arrow

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFycm93LmV4dGVybnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUNILHFCQUFxQjtBQUNyQixNQUFNLENBQUMsUUFBUSxDQUFDO0FBQ2hCLHFCQUFxQjtBQUNyQixNQUFNLENBQUMsYUFBYSxDQUFDO0FBQ3JCLElBQUksS0FBSyxHQUFHLGNBQVksQ0FBQyxDQUFDO0FBQzFCLGdCQUFnQjtBQUNoQixLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztBQUNyQixnQkFBZ0I7QUFDaEIsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7QUFDckIsZ0JBQWdCO0FBQ2hCLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO0FBQ3ZCLGdCQUFnQjtBQUNoQixLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztBQUN4QixnQkFBZ0I7QUFDaEIsS0FBSyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUM7QUFDMUIsZ0JBQWdCO0FBQ2hCLEtBQUssQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDO0FBQzFCLGdCQUFnQjtBQUNoQixLQUFLLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQztBQUM1QixnQkFBZ0I7QUFDaEIsS0FBSyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUM7QUFFekIsSUFBSSxNQUFNLEdBQUcsY0FBWSxDQUFDLENBQUM7QUFDM0IsZ0JBQWdCO0FBQ2hCLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO0FBQ3hCLGdCQUFnQjtBQUNoQixNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztBQUN0QixnQkFBZ0I7QUFDaEIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7QUFDdEIsZ0JBQWdCO0FBQ2hCLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQjtBQUNoQixNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQztBQUNyQixnQkFBZ0I7QUFDaEIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7QUFDeEIsZ0JBQWdCO0FBQ2hCLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO0FBRXZCLElBQUksV0FBVyxHQUFHLGNBQVksQ0FBQyxDQUFDO0FBQ2hDLGdCQUFnQjtBQUNoQixXQUFXLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQztBQUVoQyxJQUFJLGNBQWMsR0FBRyxjQUFZLENBQUMsQ0FBQztBQUNuQyxnQkFBZ0I7QUFDVCxjQUFlLENBQUMsSUFBSSxDQUFDIiwiZmlsZSI6IkFycm93LmV4dGVybnMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlb3ZlcnZpZXcgQ2xvc3VyZSBDb21waWxlciBleHRlcm5zIGZvciBBcnJvd1xuICogQGV4dGVybnNcbiAqIEBzdXBwcmVzcyB7ZHVwbGljYXRlLGNoZWNrVHlwZXN9XG4gKi9cbi8qKiBAdHlwZSB7c3ltYm9sfSAqL1xuU3ltYm9sLml0ZXJhdG9yO1xuLyoqIEB0eXBlIHtzeW1ib2x9ICovXG5TeW1ib2wuYXN5bmNJdGVyYXRvcjtcbmxldCBUYWJsZSA9IGZ1bmN0aW9uKCkge307XG4vKiogQHR5cGUgez99ICovXG5UYWJsZS5wcm90b3R5cGUucm93cztcbi8qKiBAdHlwZSB7P30gKi9cblRhYmxlLnByb3RvdHlwZS5jb2xzO1xuLyoqIEB0eXBlIHs/fSAqL1xuVGFibGUucHJvdG90eXBlLmdldFJvdztcbi8qKiBAdHlwZSB7P30gKi9cblRhYmxlLnByb3RvdHlwZS5nZXRDZWxsO1xuLyoqIEB0eXBlIHs/fSAqL1xuVGFibGUucHJvdG90eXBlLmdldENlbGxBdDtcbi8qKiBAdHlwZSB7P30gKi9cblRhYmxlLnByb3RvdHlwZS5nZXRDb2x1bW47XG4vKiogQHR5cGUgez99ICovXG5UYWJsZS5wcm90b3R5cGUuZ2V0Q29sdW1uQXQ7XG4vKiogQHR5cGUgez99ICovXG5UYWJsZS5wcm90b3R5cGUudG9TdHJpbmc7XG5cbmxldCBWZWN0b3IgPSBmdW5jdGlvbigpIHt9O1xuLyoqIEB0eXBlIHs/fSAqL1xuVmVjdG9yLnByb3RvdHlwZS5sZW5ndGg7XG4vKiogQHR5cGUgez99ICovXG5WZWN0b3IucHJvdG90eXBlLm5hbWU7XG4vKiogQHR5cGUgez99ICovXG5WZWN0b3IucHJvdG90eXBlLnR5cGU7XG4vKiogQHR5cGUgez99ICovXG5WZWN0b3IucHJvdG90eXBlLnByb3BzO1xuLyoqIEB0eXBlIHs/fSAqL1xuVmVjdG9yLnByb3RvdHlwZS5nZXQ7XG4vKiogQHR5cGUgez99ICovXG5WZWN0b3IucHJvdG90eXBlLmNvbmNhdDtcbi8qKiBAdHlwZSB7P30gKi9cblZlY3Rvci5wcm90b3R5cGUuc2xpY2U7XG5cbmxldCBUeXBlZFZlY3RvciA9IGZ1bmN0aW9uKCkge307XG4vKiogQHR5cGUgez99ICovXG5UeXBlZFZlY3Rvci5wcm90b3R5cGUuYXJyYXlUeXBlO1xuXG5sZXQgVmFsaWRpdHlWZWN0b3IgPSBmdW5jdGlvbigpIHt9O1xuLyoqIEB0eXBlIHs/fSAqL1xuKDxhbnk+IFZhbGlkaXR5VmVjdG9yKS5wYWNrO1xuIl19
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFycm93LmV4dGVybnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNkRBQTZEO0FBQzdELCtEQUErRDtBQUMvRCx3REFBd0Q7QUFDeEQsNkRBQTZEO0FBQzdELG9EQUFvRDtBQUNwRCw2REFBNkQ7QUFDN0QsNkRBQTZEO0FBQzdELEVBQUU7QUFDRiwrQ0FBK0M7QUFDL0MsRUFBRTtBQUNGLDZEQUE2RDtBQUM3RCw4REFBOEQ7QUFDOUQseURBQXlEO0FBQ3pELDREQUE0RDtBQUM1RCwwREFBMEQ7QUFDMUQscUJBQXFCO0FBRXJCOzs7O0dBSUc7QUFDSCxxQkFBcUI7QUFDckIsTUFBTSxDQUFDLFFBQVEsQ0FBQztBQUNoQixxQkFBcUI7QUFDckIsTUFBTSxDQUFDLGFBQWEsQ0FBQztBQUNyQixJQUFJLEtBQUssR0FBRyxjQUFZLENBQUMsQ0FBQztBQUMxQixnQkFBZ0I7QUFDaEIsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7QUFDckIsZ0JBQWdCO0FBQ2hCLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO0FBQ3JCLGdCQUFnQjtBQUNoQixLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztBQUN2QixnQkFBZ0I7QUFDaEIsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7QUFDeEIsZ0JBQWdCO0FBQ2hCLEtBQUssQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDO0FBQzFCLGdCQUFnQjtBQUNoQixLQUFLLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQztBQUMxQixnQkFBZ0I7QUFDaEIsS0FBSyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUM7QUFDNUIsZ0JBQWdCO0FBQ2hCLEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDO0FBRXpCLElBQUksTUFBTSxHQUFHLGNBQVksQ0FBQyxDQUFDO0FBQzNCLGdCQUFnQjtBQUNoQixNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztBQUN4QixnQkFBZ0I7QUFDaEIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7QUFDdEIsZ0JBQWdCO0FBQ2hCLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO0FBQ3RCLGdCQUFnQjtBQUNoQixNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0I7QUFDaEIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUM7QUFDckIsZ0JBQWdCO0FBQ2hCLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO0FBQ3hCLGdCQUFnQjtBQUNoQixNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztBQUV2QixJQUFJLFdBQVcsR0FBRyxjQUFZLENBQUMsQ0FBQztBQUNoQyxnQkFBZ0I7QUFDaEIsV0FBVyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUM7QUFFaEMsSUFBSSxjQUFjLEdBQUcsY0FBWSxDQUFDLENBQUM7QUFDbkMsZ0JBQWdCO0FBQ1QsY0FBZSxDQUFDLElBQUksQ0FBQyIsImZpbGUiOiJBcnJvdy5leHRlcm5zLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZVxuLy8gb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlXG4vLyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvblxuLy8gcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZVxuLy8gdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZVxuLy8gXCJMaWNlbnNlXCIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4vLyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4vL1xuLy8gICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbi8vXG4vLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsXG4vLyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhblxuLy8gXCJBUyBJU1wiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTllcbi8vIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZVxuLy8gc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9uc1xuLy8gdW5kZXIgdGhlIExpY2Vuc2UuXG5cbi8qKlxuICogQGZpbGVvdmVydmlldyBDbG9zdXJlIENvbXBpbGVyIGV4dGVybnMgZm9yIEFycm93XG4gKiBAZXh0ZXJuc1xuICogQHN1cHByZXNzIHtkdXBsaWNhdGUsY2hlY2tUeXBlc31cbiAqL1xuLyoqIEB0eXBlIHtzeW1ib2x9ICovXG5TeW1ib2wuaXRlcmF0b3I7XG4vKiogQHR5cGUge3N5bWJvbH0gKi9cblN5bWJvbC5hc3luY0l0ZXJhdG9yO1xubGV0IFRhYmxlID0gZnVuY3Rpb24oKSB7fTtcbi8qKiBAdHlwZSB7P30gKi9cblRhYmxlLnByb3RvdHlwZS5yb3dzO1xuLyoqIEB0eXBlIHs/fSAqL1xuVGFibGUucHJvdG90eXBlLmNvbHM7XG4vKiogQHR5cGUgez99ICovXG5UYWJsZS5wcm90b3R5cGUuZ2V0Um93O1xuLyoqIEB0eXBlIHs/fSAqL1xuVGFibGUucHJvdG90eXBlLmdldENlbGw7XG4vKiogQHR5cGUgez99ICovXG5UYWJsZS5wcm90b3R5cGUuZ2V0Q2VsbEF0O1xuLyoqIEB0eXBlIHs/fSAqL1xuVGFibGUucHJvdG90eXBlLmdldENvbHVtbjtcbi8qKiBAdHlwZSB7P30gKi9cblRhYmxlLnByb3RvdHlwZS5nZXRDb2x1bW5BdDtcbi8qKiBAdHlwZSB7P30gKi9cblRhYmxlLnByb3RvdHlwZS50b1N0cmluZztcblxubGV0IFZlY3RvciA9IGZ1bmN0aW9uKCkge307XG4vKiogQHR5cGUgez99ICovXG5WZWN0b3IucHJvdG90eXBlLmxlbmd0aDtcbi8qKiBAdHlwZSB7P30gKi9cblZlY3Rvci5wcm90b3R5cGUubmFtZTtcbi8qKiBAdHlwZSB7P30gKi9cblZlY3Rvci5wcm90b3R5cGUudHlwZTtcbi8qKiBAdHlwZSB7P30gKi9cblZlY3Rvci5wcm90b3R5cGUucHJvcHM7XG4vKiogQHR5cGUgez99ICovXG5WZWN0b3IucHJvdG90eXBlLmdldDtcbi8qKiBAdHlwZSB7P30gKi9cblZlY3Rvci5wcm90b3R5cGUuY29uY2F0O1xuLyoqIEB0eXBlIHs/fSAqL1xuVmVjdG9yLnByb3RvdHlwZS5zbGljZTtcblxubGV0IFR5cGVkVmVjdG9yID0gZnVuY3Rpb24oKSB7fTtcbi8qKiBAdHlwZSB7P30gKi9cblR5cGVkVmVjdG9yLnByb3RvdHlwZS5hcnJheVR5cGU7XG5cbmxldCBWYWxpZGl0eVZlY3RvciA9IGZ1bmN0aW9uKCkge307XG4vKiogQHR5cGUgez99ICovXG4oPGFueT4gVmFsaWRpdHlWZWN0b3IpLnBhY2s7XG4iXX0=

@@ -0,1 +1,17 @@

// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
Object.defineProperty(exports, "__esModule", { value: true });

@@ -59,2 +75,2 @@ var vector_1 = require("./vectors/vector");

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFycm93LmludGVybmFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwyQ0FBcUQ7QUFDckQsMkNBQWlFO0FBQ2pFLG1EQUE2RTtBQUM3RSx1Q0FBbUk7QUFDbkkseUNBUXlCO0FBRVosUUFBQSxPQUFPLEdBQUc7SUFDbkIsTUFBTSxFQUFFLGVBQU87SUFDZixVQUFVLEVBQUUsaUJBQVc7SUFDdkIsVUFBVSxFQUFFLGlCQUFXO0lBQ3ZCLFVBQVUsRUFBRSxrQkFBVztJQUN2QixXQUFXLEVBQUUsbUJBQVk7SUFDekIsV0FBVyxFQUFFLG1CQUFZO0lBQ3pCLFVBQVUsRUFBRSxrQkFBVztJQUN2QixXQUFXLEVBQUUsbUJBQVk7SUFDekIsV0FBVyxFQUFFLG1CQUFZO0lBQ3pCLFdBQVcsRUFBRSxtQkFBWTtJQUN6QixXQUFXLEVBQUUsbUJBQVk7SUFDekIsWUFBWSxFQUFFLG9CQUFhO0lBQzNCLFlBQVksRUFBRSxvQkFBYTtJQUMzQixZQUFZLEVBQUUsb0JBQWE7SUFDM0IsYUFBYSxFQUFFLHFCQUFjO0lBQzdCLGFBQWEsRUFBRSxxQkFBYztJQUM3QixZQUFZLEVBQUUscUJBQWE7SUFDM0IsY0FBYyxFQUFFLHNCQUFlO0lBQy9CLGdCQUFnQixFQUFFLDZCQUFpQjtJQUNuQyxtQkFBbUIsRUFBRSwwQkFBb0I7Q0FDNUMsQ0FBQztBQXlCRiwwREFBMEQ7QUFDMUQsSUFBSSxDQUFDO0lBQ0QsSUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzlCLEVBQUUsQ0FBQyxDQUFDLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDNUIsdUVBQXVFO1FBQ3ZFLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDdEIsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLGVBQU8sQ0FBQztRQUNyQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBWSxDQUFDLEdBQUcsaUJBQVcsQ0FBQztRQUM3QyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBWSxDQUFDLEdBQUcsaUJBQVcsQ0FBQztRQUM3QyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBWSxDQUFDLEdBQUcsa0JBQVcsQ0FBQztRQUM3QyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsbUJBQVksQ0FBQztRQUMvQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBWSxDQUFDLEdBQUcsa0JBQVcsQ0FBQztRQUM3QyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsbUJBQVksQ0FBQztRQUMvQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsbUJBQVksQ0FBQztRQUMvQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsbUJBQVksQ0FBQztRQUMvQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsbUJBQVksQ0FBQztRQUMvQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsY0FBYyxDQUFDLEdBQUcsb0JBQWEsQ0FBQztRQUNqRCxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsY0FBYyxDQUFDLEdBQUcsb0JBQWEsQ0FBQztRQUNqRCxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsY0FBYyxDQUFDLEdBQUcsb0JBQWEsQ0FBQztRQUNqRCxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsZUFBZSxDQUFDLEdBQUcscUJBQWMsQ0FBQztRQUNuRCxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsZUFBZSxDQUFDLEdBQUcscUJBQWMsQ0FBQztRQUNuRCxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsY0FBYyxDQUFDLEdBQUcscUJBQWEsQ0FBQztRQUNqRCxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxzQkFBZSxDQUFDO1FBQ3JELEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLDZCQUFpQixDQUFDO1FBQ3pELEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLDBCQUFvQixDQUFDO0lBQ25FLENBQUM7QUFDTCxDQUFDO0FBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUEwQixDQUFDO0FBQ3hDLDBCQUEwQiIsImZpbGUiOiJBcnJvdy5pbnRlcm5hbC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZlY3RvciBhcyBWZWN0b3JfIH0gZnJvbSAnLi92ZWN0b3JzL3ZlY3Rvcic7XG5pbXBvcnQgeyBTdHJ1Y3RWZWN0b3IgYXMgU3RydWN0VmVjdG9yXyB9IGZyb20gJy4vdmVjdG9ycy9zdHJ1Y3QnO1xuaW1wb3J0IHsgRGljdGlvbmFyeVZlY3RvciBhcyBEaWN0aW9uYXJ5VmVjdG9yXyB9IGZyb20gJy4vdmVjdG9ycy9kaWN0aW9uYXJ5JztcbmltcG9ydCB7IExpc3RWZWN0b3IgYXMgTGlzdFZlY3Rvcl8sIFV0ZjhWZWN0b3IgYXMgVXRmOFZlY3Rvcl8sIEZpeGVkU2l6ZUxpc3RWZWN0b3IgYXMgRml4ZWRTaXplTGlzdFZlY3Rvcl8gfSBmcm9tICcuL3ZlY3RvcnMvbGlzdCc7XG5pbXBvcnQge1xuICAgIFR5cGVkVmVjdG9yIGFzIFR5cGVkVmVjdG9yXywgVmFsaWRpdHlWZWN0b3IgYXMgVmFsaWRpdHlWZWN0b3JfLFxuICAgIERhdGVWZWN0b3IgYXMgRGF0ZVZlY3Rvcl8sIEluZGV4VmVjdG9yIGFzIEluZGV4VmVjdG9yXyxcbiAgICBJbnQ4VmVjdG9yIGFzIEludDhWZWN0b3JfLCBJbnQxNlZlY3RvciBhcyBJbnQxNlZlY3Rvcl8sXG4gICAgSW50MzJWZWN0b3IgYXMgSW50MzJWZWN0b3JfLCBJbnQ2NFZlY3RvciBhcyBJbnQ2NFZlY3Rvcl8sXG4gICAgVWludDhWZWN0b3IgYXMgVWludDhWZWN0b3JfLCBVaW50MTZWZWN0b3IgYXMgVWludDE2VmVjdG9yXyxcbiAgICBVaW50MzJWZWN0b3IgYXMgVWludDMyVmVjdG9yXywgVWludDY0VmVjdG9yIGFzIFVpbnQ2NFZlY3Rvcl8sXG4gICAgRmxvYXQzMlZlY3RvciBhcyBGbG9hdDMyVmVjdG9yXywgRmxvYXQ2NFZlY3RvciBhcyBGbG9hdDY0VmVjdG9yXyxcbn0gZnJvbSAnLi92ZWN0b3JzL3R5cGVkJztcblxuZXhwb3J0IGNvbnN0IHZlY3RvcnMgPSB7XG4gICAgVmVjdG9yOiBWZWN0b3JfLFxuICAgIExpc3RWZWN0b3I6IExpc3RWZWN0b3JfLFxuICAgIFV0ZjhWZWN0b3I6IFV0ZjhWZWN0b3JfLFxuICAgIERhdGVWZWN0b3I6IERhdGVWZWN0b3JfLFxuICAgIEluZGV4VmVjdG9yOiBJbmRleFZlY3Rvcl8sXG4gICAgVHlwZWRWZWN0b3I6IFR5cGVkVmVjdG9yXyxcbiAgICBJbnQ4VmVjdG9yOiBJbnQ4VmVjdG9yXyxcbiAgICBJbnQxNlZlY3RvcjogSW50MTZWZWN0b3JfLFxuICAgIEludDMyVmVjdG9yOiBJbnQzMlZlY3Rvcl8sXG4gICAgSW50NjRWZWN0b3I6IEludDY0VmVjdG9yXyxcbiAgICBVaW50OFZlY3RvcjogVWludDhWZWN0b3JfLFxuICAgIFVpbnQxNlZlY3RvcjogVWludDE2VmVjdG9yXyxcbiAgICBVaW50MzJWZWN0b3I6IFVpbnQzMlZlY3Rvcl8sXG4gICAgVWludDY0VmVjdG9yOiBVaW50NjRWZWN0b3JfLFxuICAgIEZsb2F0MzJWZWN0b3I6IEZsb2F0MzJWZWN0b3JfLFxuICAgIEZsb2F0NjRWZWN0b3I6IEZsb2F0NjRWZWN0b3JfLFxuICAgIFN0cnVjdFZlY3RvcjogU3RydWN0VmVjdG9yXyxcbiAgICBWYWxpZGl0eVZlY3RvcjogVmFsaWRpdHlWZWN0b3JfLFxuICAgIERpY3Rpb25hcnlWZWN0b3I6IERpY3Rpb25hcnlWZWN0b3JfLFxuICAgIEZpeGVkU2l6ZUxpc3RWZWN0b3I6IEZpeGVkU2l6ZUxpc3RWZWN0b3JfLFxufTtcblxuZXhwb3J0IG5hbWVzcGFjZSB2ZWN0b3JzIHtcbiAgICBleHBvcnQgdHlwZSBWZWN0b3I8VD4gPSAgVmVjdG9yXzxUPjtcbiAgICBleHBvcnQgdHlwZSBMaXN0VmVjdG9yPFQ+ID0gIExpc3RWZWN0b3JfPFQ+O1xuICAgIGV4cG9ydCB0eXBlIFV0ZjhWZWN0b3IgPSAgVXRmOFZlY3Rvcl87XG4gICAgZXhwb3J0IHR5cGUgRGF0ZVZlY3RvciA9ICBEYXRlVmVjdG9yXztcbiAgICBleHBvcnQgdHlwZSBJbmRleFZlY3RvciA9ICBJbmRleFZlY3Rvcl87XG4gICAgZXhwb3J0IHR5cGUgSW50OFZlY3RvciA9ICBJbnQ4VmVjdG9yXztcbiAgICBleHBvcnQgdHlwZSBJbnQxNlZlY3RvciA9ICBJbnQxNlZlY3Rvcl87XG4gICAgZXhwb3J0IHR5cGUgSW50MzJWZWN0b3IgPSAgSW50MzJWZWN0b3JfO1xuICAgIGV4cG9ydCB0eXBlIEludDY0VmVjdG9yID0gIEludDY0VmVjdG9yXztcbiAgICBleHBvcnQgdHlwZSBVaW50OFZlY3RvciA9ICBVaW50OFZlY3Rvcl87XG4gICAgZXhwb3J0IHR5cGUgVWludDE2VmVjdG9yID0gIFVpbnQxNlZlY3Rvcl87XG4gICAgZXhwb3J0IHR5cGUgVWludDMyVmVjdG9yID0gIFVpbnQzMlZlY3Rvcl87XG4gICAgZXhwb3J0IHR5cGUgVWludDY0VmVjdG9yID0gIFVpbnQ2NFZlY3Rvcl87XG4gICAgZXhwb3J0IHR5cGUgRmxvYXQzMlZlY3RvciA9ICBGbG9hdDMyVmVjdG9yXztcbiAgICBleHBvcnQgdHlwZSBGbG9hdDY0VmVjdG9yID0gIEZsb2F0NjRWZWN0b3JfO1xuICAgIGV4cG9ydCB0eXBlIFN0cnVjdFZlY3RvciA9ICBTdHJ1Y3RWZWN0b3JfO1xuICAgIGV4cG9ydCB0eXBlIFZhbGlkaXR5VmVjdG9yID0gIFZhbGlkaXR5VmVjdG9yXztcbiAgICBleHBvcnQgdHlwZSBEaWN0aW9uYXJ5VmVjdG9yPFQ+ID0gIERpY3Rpb25hcnlWZWN0b3JfPFQ+O1xuICAgIGV4cG9ydCB0eXBlIEZpeGVkU2l6ZUxpc3RWZWN0b3I8VD4gPSAgRml4ZWRTaXplTGlzdFZlY3Rvcl88VD47XG4gICAgZXhwb3J0IHR5cGUgVHlwZWRWZWN0b3I8VCwgVEFycmF5PiA9ICBUeXBlZFZlY3Rvcl88VCwgVEFycmF5Pjtcbn1cblxuLyogVGhlc2UgZXhwb3J0cyBhcmUgbmVlZGVkIGZvciB0aGUgY2xvc3VyZSB1bWQgdGFyZ2V0cyAqL1xudHJ5IHtcbiAgICBjb25zdCBBcnJvdyA9IGV2YWwoJ2V4cG9ydHMnKTtcbiAgICBpZiAodHlwZW9mIEFycm93ID09PSAnb2JqZWN0Jykge1xuICAgICAgICAvLyBzdHJpbmcgaW5kZXhlcnMgdGVsbCBjbG9zdXJlIGNvbXBpbGVyIG5vdCB0byByZW5hbWUgdGhlc2UgcHJvcGVydGllc1xuICAgICAgICBBcnJvd1sndmVjdG9ycyddID0ge307XG4gICAgICAgIEFycm93Wyd2ZWN0b3JzJ11bJ1ZlY3RvciddID0gVmVjdG9yXztcbiAgICAgICAgQXJyb3dbJ3ZlY3RvcnMnXVsnTGlzdFZlY3RvciddID0gTGlzdFZlY3Rvcl87XG4gICAgICAgIEFycm93Wyd2ZWN0b3JzJ11bJ1V0ZjhWZWN0b3InXSA9IFV0ZjhWZWN0b3JfO1xuICAgICAgICBBcnJvd1sndmVjdG9ycyddWydEYXRlVmVjdG9yJ10gPSBEYXRlVmVjdG9yXztcbiAgICAgICAgQXJyb3dbJ3ZlY3RvcnMnXVsnSW5kZXhWZWN0b3InXSA9IEluZGV4VmVjdG9yXztcbiAgICAgICAgQXJyb3dbJ3ZlY3RvcnMnXVsnSW50OFZlY3RvciddID0gSW50OFZlY3Rvcl87XG4gICAgICAgIEFycm93Wyd2ZWN0b3JzJ11bJ0ludDE2VmVjdG9yJ10gPSBJbnQxNlZlY3Rvcl87XG4gICAgICAgIEFycm93Wyd2ZWN0b3JzJ11bJ0ludDMyVmVjdG9yJ10gPSBJbnQzMlZlY3Rvcl87XG4gICAgICAgIEFycm93Wyd2ZWN0b3JzJ11bJ0ludDY0VmVjdG9yJ10gPSBJbnQ2NFZlY3Rvcl87XG4gICAgICAgIEFycm93Wyd2ZWN0b3JzJ11bJ1VpbnQ4VmVjdG9yJ10gPSBVaW50OFZlY3Rvcl87XG4gICAgICAgIEFycm93Wyd2ZWN0b3JzJ11bJ1VpbnQxNlZlY3RvciddID0gVWludDE2VmVjdG9yXztcbiAgICAgICAgQXJyb3dbJ3ZlY3RvcnMnXVsnVWludDMyVmVjdG9yJ10gPSBVaW50MzJWZWN0b3JfO1xuICAgICAgICBBcnJvd1sndmVjdG9ycyddWydVaW50NjRWZWN0b3InXSA9IFVpbnQ2NFZlY3Rvcl87XG4gICAgICAgIEFycm93Wyd2ZWN0b3JzJ11bJ0Zsb2F0MzJWZWN0b3InXSA9IEZsb2F0MzJWZWN0b3JfO1xuICAgICAgICBBcnJvd1sndmVjdG9ycyddWydGbG9hdDY0VmVjdG9yJ10gPSBGbG9hdDY0VmVjdG9yXztcbiAgICAgICAgQXJyb3dbJ3ZlY3RvcnMnXVsnU3RydWN0VmVjdG9yJ10gPSBTdHJ1Y3RWZWN0b3JfO1xuICAgICAgICBBcnJvd1sndmVjdG9ycyddWydWYWxpZGl0eVZlY3RvciddID0gVmFsaWRpdHlWZWN0b3JfO1xuICAgICAgICBBcnJvd1sndmVjdG9ycyddWydEaWN0aW9uYXJ5VmVjdG9yJ10gPSBEaWN0aW9uYXJ5VmVjdG9yXztcbiAgICAgICAgQXJyb3dbJ3ZlY3RvcnMnXVsnRml4ZWRTaXplTGlzdFZlY3RvciddID0gRml4ZWRTaXplTGlzdFZlY3Rvcl87XG4gICAgfVxufSBjYXRjaCAoZSkgeyAvKiBub3QgdGhlIFVNRCBidW5kbGUgKi8gfVxuLyoqIGVuZCBjbG9zdXJlIGV4cG9ydHMgKi9cbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf8;base64,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SyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxHQUFHLHFCQUFjLENBQUM7UUFDbkQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxHQUFHLHFCQUFhLENBQUM7UUFDakQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsc0JBQWUsQ0FBQztRQUNyRCxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsa0JBQWtCLENBQUMsR0FBRyw2QkFBaUIsQ0FBQztRQUN6RCxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMscUJBQXFCLENBQUMsR0FBRywwQkFBb0IsQ0FBQztJQUNuRSxDQUFDO0FBQ0wsQ0FBQztBQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBMEIsQ0FBQztBQUN4QywwQkFBMEIiLCJmaWxlIjoiQXJyb3cuaW50ZXJuYWwuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lXG4vLyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGVcbi8vIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uXG4vLyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlXG4vLyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlXG4vLyBcIkxpY2Vuc2VcIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Vcbi8vIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbi8vXG4vLyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuLy9cbi8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZyxcbi8vIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuXG4vLyBcIkFTIElTXCIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWVxuLy8gS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlXG4vLyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zXG4vLyB1bmRlciB0aGUgTGljZW5zZS5cblxuaW1wb3J0IHsgVmVjdG9yIGFzIFZlY3Rvcl8gfSBmcm9tICcuL3ZlY3RvcnMvdmVjdG9yJztcbmltcG9ydCB7IFN0cnVjdFZlY3RvciBhcyBTdHJ1Y3RWZWN0b3JfIH0gZnJvbSAnLi92ZWN0b3JzL3N0cnVjdCc7XG5pbXBvcnQgeyBEaWN0aW9uYXJ5VmVjdG9yIGFzIERpY3Rpb25hcnlWZWN0b3JfIH0gZnJvbSAnLi92ZWN0b3JzL2RpY3Rpb25hcnknO1xuaW1wb3J0IHsgTGlzdFZlY3RvciBhcyBMaXN0VmVjdG9yXywgVXRmOFZlY3RvciBhcyBVdGY4VmVjdG9yXywgRml4ZWRTaXplTGlzdFZlY3RvciBhcyBGaXhlZFNpemVMaXN0VmVjdG9yXyB9IGZyb20gJy4vdmVjdG9ycy9saXN0JztcbmltcG9ydCB7XG4gICAgVHlwZWRWZWN0b3IgYXMgVHlwZWRWZWN0b3JfLCBWYWxpZGl0eVZlY3RvciBhcyBWYWxpZGl0eVZlY3Rvcl8sXG4gICAgRGF0ZVZlY3RvciBhcyBEYXRlVmVjdG9yXywgSW5kZXhWZWN0b3IgYXMgSW5kZXhWZWN0b3JfLFxuICAgIEludDhWZWN0b3IgYXMgSW50OFZlY3Rvcl8sIEludDE2VmVjdG9yIGFzIEludDE2VmVjdG9yXyxcbiAgICBJbnQzMlZlY3RvciBhcyBJbnQzMlZlY3Rvcl8sIEludDY0VmVjdG9yIGFzIEludDY0VmVjdG9yXyxcbiAgICBVaW50OFZlY3RvciBhcyBVaW50OFZlY3Rvcl8sIFVpbnQxNlZlY3RvciBhcyBVaW50MTZWZWN0b3JfLFxuICAgIFVpbnQzMlZlY3RvciBhcyBVaW50MzJWZWN0b3JfLCBVaW50NjRWZWN0b3IgYXMgVWludDY0VmVjdG9yXyxcbiAgICBGbG9hdDMyVmVjdG9yIGFzIEZsb2F0MzJWZWN0b3JfLCBGbG9hdDY0VmVjdG9yIGFzIEZsb2F0NjRWZWN0b3JfLFxufSBmcm9tICcuL3ZlY3RvcnMvdHlwZWQnO1xuXG5leHBvcnQgY29uc3QgdmVjdG9ycyA9IHtcbiAgICBWZWN0b3I6IFZlY3Rvcl8sXG4gICAgTGlzdFZlY3RvcjogTGlzdFZlY3Rvcl8sXG4gICAgVXRmOFZlY3RvcjogVXRmOFZlY3Rvcl8sXG4gICAgRGF0ZVZlY3RvcjogRGF0ZVZlY3Rvcl8sXG4gICAgSW5kZXhWZWN0b3I6IEluZGV4VmVjdG9yXyxcbiAgICBUeXBlZFZlY3RvcjogVHlwZWRWZWN0b3JfLFxuICAgIEludDhWZWN0b3I6IEludDhWZWN0b3JfLFxuICAgIEludDE2VmVjdG9yOiBJbnQxNlZlY3Rvcl8sXG4gICAgSW50MzJWZWN0b3I6IEludDMyVmVjdG9yXyxcbiAgICBJbnQ2NFZlY3RvcjogSW50NjRWZWN0b3JfLFxuICAgIFVpbnQ4VmVjdG9yOiBVaW50OFZlY3Rvcl8sXG4gICAgVWludDE2VmVjdG9yOiBVaW50MTZWZWN0b3JfLFxuICAgIFVpbnQzMlZlY3RvcjogVWludDMyVmVjdG9yXyxcbiAgICBVaW50NjRWZWN0b3I6IFVpbnQ2NFZlY3Rvcl8sXG4gICAgRmxvYXQzMlZlY3RvcjogRmxvYXQzMlZlY3Rvcl8sXG4gICAgRmxvYXQ2NFZlY3RvcjogRmxvYXQ2NFZlY3Rvcl8sXG4gICAgU3RydWN0VmVjdG9yOiBTdHJ1Y3RWZWN0b3JfLFxuICAgIFZhbGlkaXR5VmVjdG9yOiBWYWxpZGl0eVZlY3Rvcl8sXG4gICAgRGljdGlvbmFyeVZlY3RvcjogRGljdGlvbmFyeVZlY3Rvcl8sXG4gICAgRml4ZWRTaXplTGlzdFZlY3RvcjogRml4ZWRTaXplTGlzdFZlY3Rvcl8sXG59O1xuXG5leHBvcnQgbmFtZXNwYWNlIHZlY3RvcnMge1xuICAgIGV4cG9ydCB0eXBlIFZlY3RvcjxUPiA9ICBWZWN0b3JfPFQ+O1xuICAgIGV4cG9ydCB0eXBlIExpc3RWZWN0b3I8VD4gPSAgTGlzdFZlY3Rvcl88VD47XG4gICAgZXhwb3J0IHR5cGUgVXRmOFZlY3RvciA9ICBVdGY4VmVjdG9yXztcbiAgICBleHBvcnQgdHlwZSBEYXRlVmVjdG9yID0gIERhdGVWZWN0b3JfO1xuICAgIGV4cG9ydCB0eXBlIEluZGV4VmVjdG9yID0gIEluZGV4VmVjdG9yXztcbiAgICBleHBvcnQgdHlwZSBJbnQ4VmVjdG9yID0gIEludDhWZWN0b3JfO1xuICAgIGV4cG9ydCB0eXBlIEludDE2VmVjdG9yID0gIEludDE2VmVjdG9yXztcbiAgICBleHBvcnQgdHlwZSBJbnQzMlZlY3RvciA9ICBJbnQzMlZlY3Rvcl87XG4gICAgZXhwb3J0IHR5cGUgSW50NjRWZWN0b3IgPSAgSW50NjRWZWN0b3JfO1xuICAgIGV4cG9ydCB0eXBlIFVpbnQ4VmVjdG9yID0gIFVpbnQ4VmVjdG9yXztcbiAgICBleHBvcnQgdHlwZSBVaW50MTZWZWN0b3IgPSAgVWludDE2VmVjdG9yXztcbiAgICBleHBvcnQgdHlwZSBVaW50MzJWZWN0b3IgPSAgVWludDMyVmVjdG9yXztcbiAgICBleHBvcnQgdHlwZSBVaW50NjRWZWN0b3IgPSAgVWludDY0VmVjdG9yXztcbiAgICBleHBvcnQgdHlwZSBGbG9hdDMyVmVjdG9yID0gIEZsb2F0MzJWZWN0b3JfO1xuICAgIGV4cG9ydCB0eXBlIEZsb2F0NjRWZWN0b3IgPSAgRmxvYXQ2NFZlY3Rvcl87XG4gICAgZXhwb3J0IHR5cGUgU3RydWN0VmVjdG9yID0gIFN0cnVjdFZlY3Rvcl87XG4gICAgZXhwb3J0IHR5cGUgVmFsaWRpdHlWZWN0b3IgPSAgVmFsaWRpdHlWZWN0b3JfO1xuICAgIGV4cG9ydCB0eXBlIERpY3Rpb25hcnlWZWN0b3I8VD4gPSAgRGljdGlvbmFyeVZlY3Rvcl88VD47XG4gICAgZXhwb3J0IHR5cGUgRml4ZWRTaXplTGlzdFZlY3RvcjxUPiA9ICBGaXhlZFNpemVMaXN0VmVjdG9yXzxUPjtcbiAgICBleHBvcnQgdHlwZSBUeXBlZFZlY3RvcjxULCBUQXJyYXk+ID0gIFR5cGVkVmVjdG9yXzxULCBUQXJyYXk+O1xufVxuXG4vKiBUaGVzZSBleHBvcnRzIGFyZSBuZWVkZWQgZm9yIHRoZSBjbG9zdXJlIHVtZCB0YXJnZXRzICovXG50cnkge1xuICAgIGNvbnN0IEFycm93ID0gZXZhbCgnZXhwb3J0cycpO1xuICAgIGlmICh0eXBlb2YgQXJyb3cgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIC8vIHN0cmluZyBpbmRleGVycyB0ZWxsIGNsb3N1cmUgY29tcGlsZXIgbm90IHRvIHJlbmFtZSB0aGVzZSBwcm9wZXJ0aWVzXG4gICAgICAgIEFycm93Wyd2ZWN0b3JzJ10gPSB7fTtcbiAgICAgICAgQXJyb3dbJ3ZlY3RvcnMnXVsnVmVjdG9yJ10gPSBWZWN0b3JfO1xuICAgICAgICBBcnJvd1sndmVjdG9ycyddWydMaXN0VmVjdG9yJ10gPSBMaXN0VmVjdG9yXztcbiAgICAgICAgQXJyb3dbJ3ZlY3RvcnMnXVsnVXRmOFZlY3RvciddID0gVXRmOFZlY3Rvcl87XG4gICAgICAgIEFycm93Wyd2ZWN0b3JzJ11bJ0RhdGVWZWN0b3InXSA9IERhdGVWZWN0b3JfO1xuICAgICAgICBBcnJvd1sndmVjdG9ycyddWydJbmRleFZlY3RvciddID0gSW5kZXhWZWN0b3JfO1xuICAgICAgICBBcnJvd1sndmVjdG9ycyddWydJbnQ4VmVjdG9yJ10gPSBJbnQ4VmVjdG9yXztcbiAgICAgICAgQXJyb3dbJ3ZlY3RvcnMnXVsnSW50MTZWZWN0b3InXSA9IEludDE2VmVjdG9yXztcbiAgICAgICAgQXJyb3dbJ3ZlY3RvcnMnXVsnSW50MzJWZWN0b3InXSA9IEludDMyVmVjdG9yXztcbiAgICAgICAgQXJyb3dbJ3ZlY3RvcnMnXVsnSW50NjRWZWN0b3InXSA9IEludDY0VmVjdG9yXztcbiAgICAgICAgQXJyb3dbJ3ZlY3RvcnMnXVsnVWludDhWZWN0b3InXSA9IFVpbnQ4VmVjdG9yXztcbiAgICAgICAgQXJyb3dbJ3ZlY3RvcnMnXVsnVWludDE2VmVjdG9yJ10gPSBVaW50MTZWZWN0b3JfO1xuICAgICAgICBBcnJvd1sndmVjdG9ycyddWydVaW50MzJWZWN0b3InXSA9IFVpbnQzMlZlY3Rvcl87XG4gICAgICAgIEFycm93Wyd2ZWN0b3JzJ11bJ1VpbnQ2NFZlY3RvciddID0gVWludDY0VmVjdG9yXztcbiAgICAgICAgQXJyb3dbJ3ZlY3RvcnMnXVsnRmxvYXQzMlZlY3RvciddID0gRmxvYXQzMlZlY3Rvcl87XG4gICAgICAgIEFycm93Wyd2ZWN0b3JzJ11bJ0Zsb2F0NjRWZWN0b3InXSA9IEZsb2F0NjRWZWN0b3JfO1xuICAgICAgICBBcnJvd1sndmVjdG9ycyddWydTdHJ1Y3RWZWN0b3InXSA9IFN0cnVjdFZlY3Rvcl87XG4gICAgICAgIEFycm93Wyd2ZWN0b3JzJ11bJ1ZhbGlkaXR5VmVjdG9yJ10gPSBWYWxpZGl0eVZlY3Rvcl87XG4gICAgICAgIEFycm93Wyd2ZWN0b3JzJ11bJ0RpY3Rpb25hcnlWZWN0b3InXSA9IERpY3Rpb25hcnlWZWN0b3JfO1xuICAgICAgICBBcnJvd1sndmVjdG9ycyddWydGaXhlZFNpemVMaXN0VmVjdG9yJ10gPSBGaXhlZFNpemVMaXN0VmVjdG9yXztcbiAgICB9XG59IGNhdGNoIChlKSB7IC8qIG5vdCB0aGUgVU1EIGJ1bmRsZSAqLyB9XG4vKiogZW5kIGNsb3N1cmUgZXhwb3J0cyAqL1xuIl19

@@ -0,1 +1,17 @@

// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
Object.defineProperty(exports, "__esModule", { value: true });

@@ -18,2 +34,2 @@ var table_1 = require("./table");

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFycm93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxpQ0FBZ0M7QUFFdkIsZ0JBRkEsYUFBSyxDQUVBO0FBRGQsd0NBQTZDO0FBQzdCLHNCQURQLG1CQUFXLENBQ087QUFFM0IsMERBQTBEO0FBQzFELElBQUksQ0FBQztJQUNELElBQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5QixFQUFFLENBQUMsQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQzVCLHVFQUF1RTtRQUN2RSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsYUFBSyxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxhQUFhLENBQUMsR0FBRyxtQkFBVyxDQUFDO0lBQ3ZDLENBQUM7QUFDTCxDQUFDO0FBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUEwQixDQUFDO0FBQ3hDLDBCQUEwQiIsImZpbGUiOiJBcnJvdy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRhYmxlIH0gZnJvbSAnLi90YWJsZSc7XG5pbXBvcnQgeyByZWFkQnVmZmVycyB9IGZyb20gJy4vcmVhZGVyL2Fycm93JztcbmV4cG9ydCB7IFRhYmxlLCByZWFkQnVmZmVycyB9O1xuXG4vKiBUaGVzZSBleHBvcnRzIGFyZSBuZWVkZWQgZm9yIHRoZSBjbG9zdXJlIHVtZCB0YXJnZXRzICovXG50cnkge1xuICAgIGNvbnN0IEFycm93ID0gZXZhbCgnZXhwb3J0cycpO1xuICAgIGlmICh0eXBlb2YgQXJyb3cgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIC8vIHN0cmluZyBpbmRleGVycyB0ZWxsIGNsb3N1cmUgY29tcGlsZXIgbm90IHRvIHJlbmFtZSB0aGVzZSBwcm9wZXJ0aWVzXG4gICAgICAgIEFycm93WydUYWJsZSddID0gVGFibGU7XG4gICAgICAgIEFycm93WydyZWFkQnVmZmVycyddID0gcmVhZEJ1ZmZlcnM7XG4gICAgfVxufSBjYXRjaCAoZSkgeyAvKiBub3QgdGhlIFVNRCBidW5kbGUgKi8gfVxuLyoqIGVuZCBjbG9zdXJlIGV4cG9ydHMgKi9cbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFycm93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDZEQUE2RDtBQUM3RCwrREFBK0Q7QUFDL0Qsd0RBQXdEO0FBQ3hELDZEQUE2RDtBQUM3RCxvREFBb0Q7QUFDcEQsNkRBQTZEO0FBQzdELDZEQUE2RDtBQUM3RCxFQUFFO0FBQ0YsK0NBQStDO0FBQy9DLEVBQUU7QUFDRiw2REFBNkQ7QUFDN0QsOERBQThEO0FBQzlELHlEQUF5RDtBQUN6RCw0REFBNEQ7QUFDNUQsMERBQTBEO0FBQzFELHFCQUFxQjs7QUFFckIsaUNBQWdDO0FBRXZCLGdCQUZBLGFBQUssQ0FFQTtBQURkLHdDQUE2QztBQUM3QixzQkFEUCxtQkFBVyxDQUNPO0FBRTNCLDBEQUEwRDtBQUMxRCxJQUFJLENBQUM7SUFDRCxJQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUIsRUFBRSxDQUFDLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQztRQUM1Qix1RUFBdUU7UUFDdkUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLGFBQUssQ0FBQztRQUN2QixLQUFLLENBQUMsYUFBYSxDQUFDLEdBQUcsbUJBQVcsQ0FBQztJQUN2QyxDQUFDO0FBQ0wsQ0FBQztBQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBMEIsQ0FBQztBQUN4QywwQkFBMEIiLCJmaWxlIjoiQXJyb3cuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lXG4vLyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGVcbi8vIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uXG4vLyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlXG4vLyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlXG4vLyBcIkxpY2Vuc2VcIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Vcbi8vIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbi8vXG4vLyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuLy9cbi8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZyxcbi8vIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuXG4vLyBcIkFTIElTXCIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWVxuLy8gS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlXG4vLyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zXG4vLyB1bmRlciB0aGUgTGljZW5zZS5cblxuaW1wb3J0IHsgVGFibGUgfSBmcm9tICcuL3RhYmxlJztcbmltcG9ydCB7IHJlYWRCdWZmZXJzIH0gZnJvbSAnLi9yZWFkZXIvYXJyb3cnO1xuZXhwb3J0IHsgVGFibGUsIHJlYWRCdWZmZXJzIH07XG5cbi8qIFRoZXNlIGV4cG9ydHMgYXJlIG5lZWRlZCBmb3IgdGhlIGNsb3N1cmUgdW1kIHRhcmdldHMgKi9cbnRyeSB7XG4gICAgY29uc3QgQXJyb3cgPSBldmFsKCdleHBvcnRzJyk7XG4gICAgaWYgKHR5cGVvZiBBcnJvdyA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgLy8gc3RyaW5nIGluZGV4ZXJzIHRlbGwgY2xvc3VyZSBjb21waWxlciBub3QgdG8gcmVuYW1lIHRoZXNlIHByb3BlcnRpZXNcbiAgICAgICAgQXJyb3dbJ1RhYmxlJ10gPSBUYWJsZTtcbiAgICAgICAgQXJyb3dbJ3JlYWRCdWZmZXJzJ10gPSByZWFkQnVmZmVycztcbiAgICB9XG59IGNhdGNoIChlKSB7IC8qIG5vdCB0aGUgVU1EIGJ1bmRsZSAqLyB9XG4vKiogZW5kIGNsb3N1cmUgZXhwb3J0cyAqL1xuIl19

@@ -6,3 +6,25 @@ # Change Log

<a name="0.0.3"></a>
## 0.0.3 (2017-08-16)
<a name="0.0.2"></a>
## 0.0.2 (2017-08-15)
### Bug Fixes
* **vectors:** Add vector tests, fix slice behavior on LongVectors, and update externs. ([6a67b3b](https://github.com/graphistry/arrow/commit/6a67b3b))
### Features
* **Arrow:** Initial commit of arrow reader, vectors, table ([544bca0](https://github.com/graphistry/arrow/commit/544bca0))
### Performance Improvements
* **tests:** Add perf tests and fill out Table API ([bfcc17c](https://github.com/graphistry/arrow/commit/bfcc17c))
* **VirtualVector:** Inline the `findVirtual` calls so we don't eat the cost of iterating. ([d46f812](https://github.com/graphistry/arrow/commit/d46f812))
{
"main": "Arrow.js",
"name": "@apache-arrow/es5-cjs",
"version": "0.0.2",
"version": "0.0.3",
"description": "Apache's columnar in-memory data format for big data analytics",

@@ -17,2 +17,6 @@ "author": "Graphistry, Inc.",

"typings": "./types/Arrow.d.ts",
"repository": {
"type": "git",
"url": "git+https://github.com/graphistry/arrow.git"
},
"peerDependencies": {

@@ -19,0 +23,0 @@ "tslib": "^1.7.1"

@@ -0,1 +1,17 @@

// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
Object.defineProperty(exports, "__esModule", { value: true });

@@ -123,2 +139,2 @@ var tslib_1 = require("tslib");

//# sourceMappingURL=data:application/json;charset=utf8;base64,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VUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQztZQUMxQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqQyxDQUFDO1FBQ0QsTUFBTSxDQUFDLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFDRCxNQUFNLENBQUMsSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDL0IsQ0FBQyIsImZpbGUiOiJyZWFkZXIvYXJyb3cuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmbGF0YnVmZmVycyB9IGZyb20gJ2ZsYXRidWZmZXJzJztcbmltcG9ydCAqIGFzIFNjaGVtYV8gZnJvbSAnLi4vZm9ybWF0L1NjaGVtYSc7XG5pbXBvcnQgKiBhcyBNZXNzYWdlXyBmcm9tICcuLi9mb3JtYXQvTWVzc2FnZSc7XG5cbmltcG9ydCB7IHJlYWRGaWxlIH0gZnJvbSAnLi9maWxlJztcbmltcG9ydCB7IHJlYWRTdHJlYW0gfSBmcm9tICcuL3N0cmVhbSc7XG5pbXBvcnQgeyByZWFkVmVjdG9yIH0gZnJvbSAnLi92ZWN0b3InO1xuaW1wb3J0IHsgVmVjdG9yIH0gZnJvbSAnLi4vdmVjdG9ycy92ZWN0b3InO1xuaW1wb3J0IHsgcmVhZERpY3Rpb25hcmllcyB9IGZyb20gJy4vZGljdGlvbmFyeSc7XG5cbmltcG9ydCBCeXRlQnVmZmVyID0gZmxhdGJ1ZmZlcnMuQnl0ZUJ1ZmZlcjtcbmV4cG9ydCBpbXBvcnQgU2NoZW1hID0gU2NoZW1hXy5vcmcuYXBhY2hlLmFycm93LmZsYXRidWYuU2NoZW1hO1xuZXhwb3J0IGltcG9ydCBSZWNvcmRCYXRjaCA9IE1lc3NhZ2VfLm9yZy5hcGFjaGUuYXJyb3cuZmxhdGJ1Zi5SZWNvcmRCYXRjaDtcbmV4cG9ydCB0eXBlIERpY3Rpb25hcmllcyA9IHsgW2s6IHN0cmluZ106IFZlY3Rvcjxhbnk+IH07XG5leHBvcnQgdHlwZSBJdGVyYXRvclN0YXRlID0geyBub2RlSW5kZXg6IG51bWJlcjsgYnVmZmVySW5kZXg6IG51bWJlciB9O1xuXG5leHBvcnQgZnVuY3Rpb24qIHJlYWRSZWNvcmRzKC4uLmJ5dGVzOiBCeXRlQnVmZmVyW10pIHtcbiAgICB0cnkge1xuICAgICAgICB5aWVsZCogcmVhZEZpbGUoLi4uYnl0ZXMpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHlpZWxkKiByZWFkU3RyZWFtKC4uLmJ5dGVzKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIEFycm93IGJ1ZmZlcicpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIHJlYWRCdWZmZXJzKC4uLmJ5dGVzOiBBcnJheTxVaW50OEFycmF5IHwgQnVmZmVyIHwgc3RyaW5nPikge1xuICAgIGNvbnN0IGRpY3Rpb25hcmllczogRGljdGlvbmFyaWVzID0ge307XG4gICAgY29uc3QgYnl0ZUJ1ZmZlcnMgPSBieXRlcy5tYXAodG9CeXRlQnVmZmVyKTtcbiAgICBmb3IgKGxldCB7IHNjaGVtYSwgYmF0Y2ggfSBvZiByZWFkUmVjb3JkcyguLi5ieXRlQnVmZmVycykpIHtcbiAgICAgICAgbGV0IHZlY3RvcnM6IFZlY3Rvcjxhbnk+W10gPSBbXTtcbiAgICAgICAgbGV0IHN0YXRlID0geyBub2RlSW5kZXg6IDAsIGJ1ZmZlckluZGV4OiAwIH07XG4gICAgICAgIGxldCBpbmRleCA9IC0xLCBmaWVsZHNMZW5ndGggPSBzY2hlbWEuZmllbGRzTGVuZ3RoKCk7XG4gICAgICAgIGlmIChiYXRjaC5pZCkge1xuICAgICAgICAgICAgd2hpbGUgKCsraW5kZXggPCBmaWVsZHNMZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBbaWQsIHZlY3Rvcl0gb2YgcmVhZERpY3Rpb25hcmllcyhzY2hlbWEuZmllbGRzKGluZGV4KSwgYmF0Y2gsIHN0YXRlLCBkaWN0aW9uYXJpZXMpKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpY3Rpb25hcmllc1tpZF0gPSBkaWN0aW9uYXJpZXNbaWRdICYmIGRpY3Rpb25hcmllc1tpZF0uY29uY2F0KHZlY3RvcikgfHwgdmVjdG9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHdoaWxlICgrK2luZGV4IDwgZmllbGRzTGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdmVjdG9yc1tpbmRleF0gPSByZWFkVmVjdG9yKHNjaGVtYS5maWVsZHMoaW5kZXgpLCBiYXRjaCwgc3RhdGUsIGRpY3Rpb25hcmllcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB5aWVsZCB2ZWN0b3JzO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5mdW5jdGlvbiB0b0J5dGVCdWZmZXIoYnl0ZXM/OiBVaW50OEFycmF5IHwgQnVmZmVyIHwgc3RyaW5nKSB7XG4gICAgbGV0IGFycjogVWludDhBcnJheSA9IGJ5dGVzIGFzIGFueSB8fCBuZXcgVWludDhBcnJheSgwKTtcbiAgICBpZiAodHlwZW9mIGJ5dGVzID09PSAnc3RyaW5nJykge1xuICAgICAgICBhcnIgPSBuZXcgVWludDhBcnJheShieXRlcy5sZW5ndGgpO1xuICAgICAgICBmb3IgKGxldCBpID0gLTEsIG4gPSBieXRlcy5sZW5ndGg7ICsraSA8IG47KSB7XG4gICAgICAgICAgICBhcnJbaV0gPSBieXRlcy5jaGFyQ29kZUF0KGkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgQnl0ZUJ1ZmZlcihhcnIpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IEJ5dGVCdWZmZXIoYXJyKTtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf8;base64,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QUFhLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FHekI7QUFwQkQsa0NBb0JDO0FBRUQsc0JBQXNCLEtBQW9DO0lBQ3RELElBQUksR0FBRyxHQUFlLEtBQVksSUFBSSxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4RCxFQUFFLENBQUMsQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQzVCLEdBQUcsR0FBRyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7WUFDMUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakMsQ0FBQztRQUNELE1BQU0sQ0FBQyxJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBQ0QsTUFBTSxDQUFDLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQy9CLENBQUMiLCJmaWxlIjoicmVhZGVyL2Fycm93LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZVxuLy8gb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlXG4vLyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvblxuLy8gcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZVxuLy8gdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZVxuLy8gXCJMaWNlbnNlXCIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4vLyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4vL1xuLy8gICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbi8vXG4vLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsXG4vLyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhblxuLy8gXCJBUyBJU1wiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTllcbi8vIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZVxuLy8gc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9uc1xuLy8gdW5kZXIgdGhlIExpY2Vuc2UuXG5cbmltcG9ydCB7IGZsYXRidWZmZXJzIH0gZnJvbSAnZmxhdGJ1ZmZlcnMnO1xuaW1wb3J0ICogYXMgU2NoZW1hXyBmcm9tICcuLi9mb3JtYXQvU2NoZW1hJztcbmltcG9ydCAqIGFzIE1lc3NhZ2VfIGZyb20gJy4uL2Zvcm1hdC9NZXNzYWdlJztcblxuaW1wb3J0IHsgcmVhZEZpbGUgfSBmcm9tICcuL2ZpbGUnO1xuaW1wb3J0IHsgcmVhZFN0cmVhbSB9IGZyb20gJy4vc3RyZWFtJztcbmltcG9ydCB7IHJlYWRWZWN0b3IgfSBmcm9tICcuL3ZlY3Rvcic7XG5pbXBvcnQgeyBWZWN0b3IgfSBmcm9tICcuLi92ZWN0b3JzL3ZlY3Rvcic7XG5pbXBvcnQgeyByZWFkRGljdGlvbmFyaWVzIH0gZnJvbSAnLi9kaWN0aW9uYXJ5JztcblxuaW1wb3J0IEJ5dGVCdWZmZXIgPSBmbGF0YnVmZmVycy5CeXRlQnVmZmVyO1xuZXhwb3J0IGltcG9ydCBTY2hlbWEgPSBTY2hlbWFfLm9yZy5hcGFjaGUuYXJyb3cuZmxhdGJ1Zi5TY2hlbWE7XG5leHBvcnQgaW1wb3J0IFJlY29yZEJhdGNoID0gTWVzc2FnZV8ub3JnLmFwYWNoZS5hcnJvdy5mbGF0YnVmLlJlY29yZEJhdGNoO1xuZXhwb3J0IHR5cGUgRGljdGlvbmFyaWVzID0geyBbazogc3RyaW5nXTogVmVjdG9yPGFueT4gfTtcbmV4cG9ydCB0eXBlIEl0ZXJhdG9yU3RhdGUgPSB7IG5vZGVJbmRleDogbnVtYmVyOyBidWZmZXJJbmRleDogbnVtYmVyIH07XG5cbmV4cG9ydCBmdW5jdGlvbiogcmVhZFJlY29yZHMoLi4uYnl0ZXM6IEJ5dGVCdWZmZXJbXSkge1xuICAgIHRyeSB7XG4gICAgICAgIHlpZWxkKiByZWFkRmlsZSguLi5ieXRlcyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgeWllbGQqIHJlYWRTdHJlYW0oLi4uYnl0ZXMpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgQXJyb3cgYnVmZmVyJyk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiogcmVhZEJ1ZmZlcnMoLi4uYnl0ZXM6IEFycmF5PFVpbnQ4QXJyYXkgfCBCdWZmZXIgfCBzdHJpbmc+KSB7XG4gICAgY29uc3QgZGljdGlvbmFyaWVzOiBEaWN0aW9uYXJpZXMgPSB7fTtcbiAgICBjb25zdCBieXRlQnVmZmVycyA9IGJ5dGVzLm1hcCh0b0J5dGVCdWZmZXIpO1xuICAgIGZvciAobGV0IHsgc2NoZW1hLCBiYXRjaCB9IG9mIHJlYWRSZWNvcmRzKC4uLmJ5dGVCdWZmZXJzKSkge1xuICAgICAgICBsZXQgdmVjdG9yczogVmVjdG9yPGFueT5bXSA9IFtdO1xuICAgICAgICBsZXQgc3RhdGUgPSB7IG5vZGVJbmRleDogMCwgYnVmZmVySW5kZXg6IDAgfTtcbiAgICAgICAgbGV0IGluZGV4ID0gLTEsIGZpZWxkc0xlbmd0aCA9IHNjaGVtYS5maWVsZHNMZW5ndGgoKTtcbiAgICAgICAgaWYgKGJhdGNoLmlkKSB7XG4gICAgICAgICAgICB3aGlsZSAoKytpbmRleCA8IGZpZWxkc0xlbmd0aCkge1xuICAgICAgICAgICAgICAgIGZvciAobGV0IFtpZCwgdmVjdG9yXSBvZiByZWFkRGljdGlvbmFyaWVzKHNjaGVtYS5maWVsZHMoaW5kZXgpLCBiYXRjaCwgc3RhdGUsIGRpY3Rpb25hcmllcykpIHtcbiAgICAgICAgICAgICAgICAgICAgZGljdGlvbmFyaWVzW2lkXSA9IGRpY3Rpb25hcmllc1tpZF0gJiYgZGljdGlvbmFyaWVzW2lkXS5jb25jYXQodmVjdG9yKSB8fCB2ZWN0b3I7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgd2hpbGUgKCsraW5kZXggPCBmaWVsZHNMZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB2ZWN0b3JzW2luZGV4XSA9IHJlYWRWZWN0b3Ioc2NoZW1hLmZpZWxkcyhpbmRleCksIGJhdGNoLCBzdGF0ZSwgZGljdGlvbmFyaWVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHlpZWxkIHZlY3RvcnM7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmZ1bmN0aW9uIHRvQnl0ZUJ1ZmZlcihieXRlcz86IFVpbnQ4QXJyYXkgfCBCdWZmZXIgfCBzdHJpbmcpIHtcbiAgICBsZXQgYXJyOiBVaW50OEFycmF5ID0gYnl0ZXMgYXMgYW55IHx8IG5ldyBVaW50OEFycmF5KDApO1xuICAgIGlmICh0eXBlb2YgYnl0ZXMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGFyciA9IG5ldyBVaW50OEFycmF5KGJ5dGVzLmxlbmd0aCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAtMSwgbiA9IGJ5dGVzLmxlbmd0aDsgKytpIDwgbjspIHtcbiAgICAgICAgICAgIGFycltpXSA9IGJ5dGVzLmNoYXJDb2RlQXQoaSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBCeXRlQnVmZmVyKGFycik7XG4gICAgfVxuICAgIHJldHVybiBuZXcgQnl0ZUJ1ZmZlcihhcnIpO1xufVxuIl19

@@ -0,1 +1,17 @@

// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
Object.defineProperty(exports, "__esModule", { value: true });

@@ -31,2 +47,2 @@ var tslib_1 = require("tslib");

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJlYWRlci9kaWN0aW9uYXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsbUNBQXNDO0FBUXRDLDBCQUFrQyxLQUFZLEVBQ1osS0FBbUIsRUFDbkIsUUFBdUIsRUFDdkIsWUFBMEI7Ozs7O3FCQUVwRCxDQUFBLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFDL0IsQ0FBQyxFQUFFLEdBQUcsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUEsRUFEM0Msd0JBQzJDO2dCQUMzQyxxQkFBTSxDQUFDLEVBQUUsRUFBRSxtQkFBVSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUE7O2dCQUFwRCxTQUFvRCxDQUFDOzs7Z0JBRWhELENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLGNBQWMsRUFBRTs7O3FCQUFFLENBQUEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2dCQUNoRCxzQkFBQSxpQkFBTyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsWUFBWSxDQUFDLENBQUEsRUFBQTs7Z0JBQXpFLFNBQXlFLENBQUM7Ozs7OztDQUVqRjtBQVpELDRDQVlDIiwiZmlsZSI6InJlYWRlci9kaWN0aW9uYXJ5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVhZFZlY3RvciB9IGZyb20gJy4vdmVjdG9yJztcbmltcG9ydCB7IE1lc3NhZ2VCYXRjaCB9IGZyb20gJy4vbWVzc2FnZSc7XG5pbXBvcnQgKiBhcyBTY2hlbWFfIGZyb20gJy4uL2Zvcm1hdC9TY2hlbWEnO1xuaW1wb3J0IHsgSXRlcmF0b3JTdGF0ZSwgRGljdGlvbmFyaWVzIH0gZnJvbSAnLi9hcnJvdyc7XG5cbmltcG9ydCBGaWVsZCA9IFNjaGVtYV8ub3JnLmFwYWNoZS5hcnJvdy5mbGF0YnVmLkZpZWxkO1xuaW1wb3J0IERpY3Rpb25hcnlFbmNvZGluZyA9IFNjaGVtYV8ub3JnLmFwYWNoZS5hcnJvdy5mbGF0YnVmLkRpY3Rpb25hcnlFbmNvZGluZztcblxuZXhwb3J0IGZ1bmN0aW9uKiByZWFkRGljdGlvbmFyaWVzKGZpZWxkOiBGaWVsZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXRjaDogTWVzc2FnZUJhdGNoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZXJhdG9yOiBJdGVyYXRvclN0YXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpY3Rpb25hcmllczogRGljdGlvbmFyaWVzKSB7XG4gICAgbGV0IGlkOiBzdHJpbmcsIGVuY29kaW5nOiBEaWN0aW9uYXJ5RW5jb2Rpbmc7XG4gICAgaWYgKChlbmNvZGluZyA9IGZpZWxkLmRpY3Rpb25hcnkoKSkgJiZcbiAgICAgICAgKGlkID0gZW5jb2RpbmcuaWQoKS50b0Zsb2F0NjQoKS50b1N0cmluZygpKSkge1xuICAgICAgICB5aWVsZCBbaWQsIHJlYWRWZWN0b3IoZmllbGQsIGJhdGNoLCBpdGVyYXRvciwgbnVsbCldO1xuICAgIH1cbiAgICBmb3IgKGxldCBpID0gLTEsIG4gPSBmaWVsZC5jaGlsZHJlbkxlbmd0aCgpOyArK2kgPCBuOykge1xuICAgICAgICB5aWVsZCogcmVhZERpY3Rpb25hcmllcyhmaWVsZC5jaGlsZHJlbihpKSwgYmF0Y2gsIGl0ZXJhdG9yLCBkaWN0aW9uYXJpZXMpO1xuICAgIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJlYWRlci9kaWN0aW9uYXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDZEQUE2RDtBQUM3RCwrREFBK0Q7QUFDL0Qsd0RBQXdEO0FBQ3hELDZEQUE2RDtBQUM3RCxvREFBb0Q7QUFDcEQsNkRBQTZEO0FBQzdELDZEQUE2RDtBQUM3RCxFQUFFO0FBQ0YsK0NBQStDO0FBQy9DLEVBQUU7QUFDRiw2REFBNkQ7QUFDN0QsOERBQThEO0FBQzlELHlEQUF5RDtBQUN6RCw0REFBNEQ7QUFDNUQsMERBQTBEO0FBQzFELHFCQUFxQjs7O0FBRXJCLG1DQUFzQztBQVF0QywwQkFBa0MsS0FBWSxFQUNaLEtBQW1CLEVBQ25CLFFBQXVCLEVBQ3ZCLFlBQTBCOzs7OztxQkFFcEQsQ0FBQSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7b0JBQy9CLENBQUMsRUFBRSxHQUFHLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBLEVBRDNDLHdCQUMyQztnQkFDM0MscUJBQU0sQ0FBQyxFQUFFLEVBQUUsbUJBQVUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFBOztnQkFBcEQsU0FBb0QsQ0FBQzs7O2dCQUVoRCxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxjQUFjLEVBQUU7OztxQkFBRSxDQUFBLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQTtnQkFDaEQsc0JBQUEsaUJBQU8sZ0JBQWdCLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFBLEVBQUE7O2dCQUF6RSxTQUF5RSxDQUFDOzs7Ozs7Q0FFakY7QUFaRCw0Q0FZQyIsImZpbGUiOiJyZWFkZXIvZGljdGlvbmFyeS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmVcbi8vIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZVxuLy8gZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb25cbi8vIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGVcbi8vIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGVcbi8vIFwiTGljZW5zZVwiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuLy8gd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuLy9cbi8vICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4vL1xuLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLFxuLy8gc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW5cbi8vIFwiQVMgSVNcIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZXG4vLyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGVcbi8vIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnNcbi8vIHVuZGVyIHRoZSBMaWNlbnNlLlxuXG5pbXBvcnQgeyByZWFkVmVjdG9yIH0gZnJvbSAnLi92ZWN0b3InO1xuaW1wb3J0IHsgTWVzc2FnZUJhdGNoIH0gZnJvbSAnLi9tZXNzYWdlJztcbmltcG9ydCAqIGFzIFNjaGVtYV8gZnJvbSAnLi4vZm9ybWF0L1NjaGVtYSc7XG5pbXBvcnQgeyBJdGVyYXRvclN0YXRlLCBEaWN0aW9uYXJpZXMgfSBmcm9tICcuL2Fycm93JztcblxuaW1wb3J0IEZpZWxkID0gU2NoZW1hXy5vcmcuYXBhY2hlLmFycm93LmZsYXRidWYuRmllbGQ7XG5pbXBvcnQgRGljdGlvbmFyeUVuY29kaW5nID0gU2NoZW1hXy5vcmcuYXBhY2hlLmFycm93LmZsYXRidWYuRGljdGlvbmFyeUVuY29kaW5nO1xuXG5leHBvcnQgZnVuY3Rpb24qIHJlYWREaWN0aW9uYXJpZXMoZmllbGQ6IEZpZWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhdGNoOiBNZXNzYWdlQmF0Y2gsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlcmF0b3I6IEl0ZXJhdG9yU3RhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGljdGlvbmFyaWVzOiBEaWN0aW9uYXJpZXMpIHtcbiAgICBsZXQgaWQ6IHN0cmluZywgZW5jb2Rpbmc6IERpY3Rpb25hcnlFbmNvZGluZztcbiAgICBpZiAoKGVuY29kaW5nID0gZmllbGQuZGljdGlvbmFyeSgpKSAmJlxuICAgICAgICAoaWQgPSBlbmNvZGluZy5pZCgpLnRvRmxvYXQ2NCgpLnRvU3RyaW5nKCkpKSB7XG4gICAgICAgIHlpZWxkIFtpZCwgcmVhZFZlY3RvcihmaWVsZCwgYmF0Y2gsIGl0ZXJhdG9yLCBudWxsKV07XG4gICAgfVxuICAgIGZvciAobGV0IGkgPSAtMSwgbiA9IGZpZWxkLmNoaWxkcmVuTGVuZ3RoKCk7ICsraSA8IG47KSB7XG4gICAgICAgIHlpZWxkKiByZWFkRGljdGlvbmFyaWVzKGZpZWxkLmNoaWxkcmVuKGkpLCBiYXRjaCwgaXRlcmF0b3IsIGRpY3Rpb25hcmllcyk7XG4gICAgfVxufVxuIl19

@@ -0,1 +1,17 @@

// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
Object.defineProperty(exports, "__esModule", { value: true });

@@ -141,2 +157,2 @@ var tslib_1 = require("tslib");

//# sourceMappingURL=data:application/json;charset=utf8;base64,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ZmlsZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZsYXRidWZmZXJzIH0gZnJvbSAnZmxhdGJ1ZmZlcnMnO1xuaW1wb3J0ICogYXMgRmlsZV8gZnJvbSAnLi4vZm9ybWF0L0ZpbGUnO1xuaW1wb3J0ICogYXMgU2NoZW1hXyBmcm9tICcuLi9mb3JtYXQvU2NoZW1hJztcbmltcG9ydCAqIGFzIE1lc3NhZ2VfIGZyb20gJy4uL2Zvcm1hdC9NZXNzYWdlJztcbmltcG9ydCB7IFBBRERJTkcsIHJlYWRNZXNzYWdlQmF0Y2hlcyB9IGZyb20gJy4vbWVzc2FnZSc7XG5cbmltcG9ydCBCeXRlQnVmZmVyID0gZmxhdGJ1ZmZlcnMuQnl0ZUJ1ZmZlcjtcbmltcG9ydCBGb290ZXIgPSBGaWxlXy5vcmcuYXBhY2hlLmFycm93LmZsYXRidWYuRm9vdGVyO1xuZXhwb3J0IGltcG9ydCBTY2hlbWEgPSBTY2hlbWFfLm9yZy5hcGFjaGUuYXJyb3cuZmxhdGJ1Zi5TY2hlbWE7XG5leHBvcnQgaW1wb3J0IFJlY29yZEJhdGNoID0gTWVzc2FnZV8ub3JnLmFwYWNoZS5hcnJvdy5mbGF0YnVmLlJlY29yZEJhdGNoO1xuXG5jb25zdCBNQUdJQ19TVFIgPSAnQVJST1cxJztcbmNvbnN0IE1BR0lDID0gbmV3IFVpbnQ4QXJyYXkoTUFHSUNfU1RSLmxlbmd0aCk7XG5mb3IgKGxldCBpID0gMDsgaSA8IE1BR0lDX1NUUi5sZW5ndGg7IGkgKz0gMSB8IDApIHtcbiAgICBNQUdJQ1tpXSA9IE1BR0lDX1NUUi5jaGFyQ29kZUF0KGkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX2NoZWNrTWFnaWMoYnVmZmVyOiBVaW50OEFycmF5LCBpbmRleCA9IDApIHtcbiAgICBmb3IgKGxldCBpID0gLTEsIG4gPSBNQUdJQy5sZW5ndGg7ICsraSA8IG47KSB7XG4gICAgICAgIGlmIChNQUdJQ1tpXSAhPT0gYnVmZmVyW2luZGV4ICsgaV0pIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn1cblxuY29uc3QgbWFnaWNMZW5ndGggPSBNQUdJQy5sZW5ndGg7XG5jb25zdCBtYWdpY0FuZFBhZGRpbmcgPSBtYWdpY0xlbmd0aCArIFBBRERJTkc7XG5jb25zdCBtYWdpY1gyQW5kUGFkZGluZyA9IG1hZ2ljTGVuZ3RoICogMiArIFBBRERJTkc7XG5cbmV4cG9ydCBmdW5jdGlvbiogcmVhZEZpbGUoLi4uYmJzOiBCeXRlQnVmZmVyW10pIHtcbiAgICBmb3IgKGxldCBiYiBvZiBiYnMpIHtcbiAgICAgICAgbGV0IGZpbGVMZW5ndGggPSBiYi5jYXBhY2l0eSgpO1xuICAgICAgICBsZXQgZm9vdGVyTGVuZ3RoOiBudW1iZXIsIGZvb3Rlck9mZnNldDogbnVtYmVyO1xuICAgICAgICBpZiAoKGZpbGVMZW5ndGggPCBtYWdpY1gyQW5kUGFkZGluZyAvKiAgICAgICAgICAgICAgICAgICAgIEFycm93IGJ1ZmZlciB0b28gc21hbGwgKi8pIHx8XG4gICAgICAgICAgICAoIV9jaGVja01hZ2ljKGJiLmJ5dGVzKCksIDApIC8qICAgICAgICAgICAgICAgICAgICAgICAgTWlzc2luZyBtYWdpYyBzdGFydCAgICAqLykgfHxcbiAgICAgICAgICAgICghX2NoZWNrTWFnaWMoYmIuYnl0ZXMoKSwgZmlsZUxlbmd0aCAtIG1hZ2ljTGVuZ3RoKSAvKiBNaXNzaW5nIG1hZ2ljIGVuZCAgICAgICovKSB8fFxuICAgICAgICAgICAgKC8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludmFsaWQgZm9vdGVyIGxlbmd0aCAgKi9cbiAgICAgICAgICAgIChmb290ZXJMZW5ndGggPSBiYi5yZWFkSW50MzIoZm9vdGVyT2Zmc2V0ID0gZmlsZUxlbmd0aCAtIG1hZ2ljQW5kUGFkZGluZykpIDwgMSAmJlxuICAgICAgICAgICAgKGZvb3Rlckxlbmd0aCArIG1hZ2ljWDJBbmRQYWRkaW5nID4gZmlsZUxlbmd0aCkpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgZmlsZScpO1xuICAgICAgICB9XG4gICAgICAgIGJiLnNldFBvc2l0aW9uKGZvb3Rlck9mZnNldCAtIGZvb3Rlckxlbmd0aCk7XG4gICAgICAgIGxldCBmb290ZXIgPSBGb290ZXIuZ2V0Um9vdEFzRm9vdGVyKGJiKSwgc2NoZW1hID0gZm9vdGVyLnNjaGVtYSgpO1xuICAgICAgICBmb3IgKGxldCBpID0gLTEsIG4gPSBmb290ZXIuZGljdGlvbmFyaWVzTGVuZ3RoKCk7ICsraSA8IG47KSB7XG4gICAgICAgICAgICBsZXQgYmxvY2sgPSBmb290ZXIuZGljdGlvbmFyaWVzKGkpO1xuICAgICAgICAgICAgYmIuc2V0UG9zaXRpb24oYmxvY2sub2Zmc2V0KCkubG93KTtcbiAgICAgICAgICAgIGZvciAobGV0IGJhdGNoIG9mIHJlYWRNZXNzYWdlQmF0Y2hlcyhiYikpIHtcbiAgICAgICAgICAgICAgICB5aWVsZCB7IHNjaGVtYSwgYmF0Y2ggfTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBpID0gLTEsIG4gPSBmb290ZXIucmVjb3JkQmF0Y2hlc0xlbmd0aCgpOyArK2kgPCBuOykge1xuICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBmb290ZXIucmVjb3JkQmF0Y2hlcyhpKTtcbiAgICAgICAgICAgIGJiLnNldFBvc2l0aW9uKGJsb2NrLm9mZnNldCgpLmxvdyk7XG4gICAgICAgICAgICBmb3IgKGxldCBiYXRjaCBvZiByZWFkTWVzc2FnZUJhdGNoZXMoYmIpKSB7XG4gICAgICAgICAgICAgICAgeWllbGQgeyBzY2hlbWEsIGJhdGNoIH07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf8;base64,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QUEsaUJBQUEsNEJBQWtCLENBQUMsRUFBRSxDQUFDLENBQUE7Ozs7Z0JBQS9CLEtBQUs7Z0JBQ1YscUJBQU0sRUFBRSxNQUFNLFFBQUEsRUFBRSxLQUFLLE9BQUEsRUFBRSxFQUFBOztnQkFBdkIsU0FBdUIsQ0FBQztnQkFDeEIseUJBQU07Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQUlyQjtBQS9CRCw0QkErQkMiLCJmaWxlIjoicmVhZGVyL2ZpbGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lXG4vLyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGVcbi8vIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uXG4vLyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlXG4vLyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlXG4vLyBcIkxpY2Vuc2VcIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Vcbi8vIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbi8vXG4vLyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuLy9cbi8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZyxcbi8vIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuXG4vLyBcIkFTIElTXCIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWVxuLy8gS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlXG4vLyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zXG4vLyB1bmRlciB0aGUgTGljZW5zZS5cblxuaW1wb3J0IHsgZmxhdGJ1ZmZlcnMgfSBmcm9tICdmbGF0YnVmZmVycyc7XG5pbXBvcnQgKiBhcyBGaWxlXyBmcm9tICcuLi9mb3JtYXQvRmlsZSc7XG5pbXBvcnQgKiBhcyBTY2hlbWFfIGZyb20gJy4uL2Zvcm1hdC9TY2hlbWEnO1xuaW1wb3J0ICogYXMgTWVzc2FnZV8gZnJvbSAnLi4vZm9ybWF0L01lc3NhZ2UnO1xuaW1wb3J0IHsgUEFERElORywgcmVhZE1lc3NhZ2VCYXRjaGVzIH0gZnJvbSAnLi9tZXNzYWdlJztcblxuaW1wb3J0IEJ5dGVCdWZmZXIgPSBmbGF0YnVmZmVycy5CeXRlQnVmZmVyO1xuaW1wb3J0IEZvb3RlciA9IEZpbGVfLm9yZy5hcGFjaGUuYXJyb3cuZmxhdGJ1Zi5Gb290ZXI7XG5leHBvcnQgaW1wb3J0IFNjaGVtYSA9IFNjaGVtYV8ub3JnLmFwYWNoZS5hcnJvdy5mbGF0YnVmLlNjaGVtYTtcbmV4cG9ydCBpbXBvcnQgUmVjb3JkQmF0Y2ggPSBNZXNzYWdlXy5vcmcuYXBhY2hlLmFycm93LmZsYXRidWYuUmVjb3JkQmF0Y2g7XG5cbmNvbnN0IE1BR0lDX1NUUiA9ICdBUlJPVzEnO1xuY29uc3QgTUFHSUMgPSBuZXcgVWludDhBcnJheShNQUdJQ19TVFIubGVuZ3RoKTtcbmZvciAobGV0IGkgPSAwOyBpIDwgTUFHSUNfU1RSLmxlbmd0aDsgaSArPSAxIHwgMCkge1xuICAgIE1BR0lDW2ldID0gTUFHSUNfU1RSLmNoYXJDb2RlQXQoaSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfY2hlY2tNYWdpYyhidWZmZXI6IFVpbnQ4QXJyYXksIGluZGV4ID0gMCkge1xuICAgIGZvciAobGV0IGkgPSAtMSwgbiA9IE1BR0lDLmxlbmd0aDsgKytpIDwgbjspIHtcbiAgICAgICAgaWYgKE1BR0lDW2ldICE9PSBidWZmZXJbaW5kZXggKyBpXSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufVxuXG5jb25zdCBtYWdpY0xlbmd0aCA9IE1BR0lDLmxlbmd0aDtcbmNvbnN0IG1hZ2ljQW5kUGFkZGluZyA9IG1hZ2ljTGVuZ3RoICsgUEFERElORztcbmNvbnN0IG1hZ2ljWDJBbmRQYWRkaW5nID0gbWFnaWNMZW5ndGggKiAyICsgUEFERElORztcblxuZXhwb3J0IGZ1bmN0aW9uKiByZWFkRmlsZSguLi5iYnM6IEJ5dGVCdWZmZXJbXSkge1xuICAgIGZvciAobGV0IGJiIG9mIGJicykge1xuICAgICAgICBsZXQgZmlsZUxlbmd0aCA9IGJiLmNhcGFjaXR5KCk7XG4gICAgICAgIGxldCBmb290ZXJMZW5ndGg6IG51bWJlciwgZm9vdGVyT2Zmc2V0OiBudW1iZXI7XG4gICAgICAgIGlmICgoZmlsZUxlbmd0aCA8IG1hZ2ljWDJBbmRQYWRkaW5nIC8qICAgICAgICAgICAgICAgICAgICAgQXJyb3cgYnVmZmVyIHRvbyBzbWFsbCAqLykgfHxcbiAgICAgICAgICAgICghX2NoZWNrTWFnaWMoYmIuYnl0ZXMoKSwgMCkgLyogICAgICAgICAgICAgICAgICAgICAgICBNaXNzaW5nIG1hZ2ljIHN0YXJ0ICAgICovKSB8fFxuICAgICAgICAgICAgKCFfY2hlY2tNYWdpYyhiYi5ieXRlcygpLCBmaWxlTGVuZ3RoIC0gbWFnaWNMZW5ndGgpIC8qIE1pc3NpbmcgbWFnaWMgZW5kICAgICAgKi8pIHx8XG4gICAgICAgICAgICAoLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW52YWxpZCBmb290ZXIgbGVuZ3RoICAqL1xuICAgICAgICAgICAgKGZvb3Rlckxlbmd0aCA9IGJiLnJlYWRJbnQzMihmb290ZXJPZmZzZXQgPSBmaWxlTGVuZ3RoIC0gbWFnaWNBbmRQYWRkaW5nKSkgPCAxICYmXG4gICAgICAgICAgICAoZm9vdGVyTGVuZ3RoICsgbWFnaWNYMkFuZFBhZGRpbmcgPiBmaWxlTGVuZ3RoKSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBmaWxlJyk7XG4gICAgICAgIH1cbiAgICAgICAgYmIuc2V0UG9zaXRpb24oZm9vdGVyT2Zmc2V0IC0gZm9vdGVyTGVuZ3RoKTtcbiAgICAgICAgbGV0IGZvb3RlciA9IEZvb3Rlci5nZXRSb290QXNGb290ZXIoYmIpLCBzY2hlbWEgPSBmb290ZXIuc2NoZW1hKCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAtMSwgbiA9IGZvb3Rlci5kaWN0aW9uYXJpZXNMZW5ndGgoKTsgKytpIDwgbjspIHtcbiAgICAgICAgICAgIGxldCBibG9jayA9IGZvb3Rlci5kaWN0aW9uYXJpZXMoaSk7XG4gICAgICAgICAgICBiYi5zZXRQb3NpdGlvbihibG9jay5vZmZzZXQoKS5sb3cpO1xuICAgICAgICAgICAgZm9yIChsZXQgYmF0Y2ggb2YgcmVhZE1lc3NhZ2VCYXRjaGVzKGJiKSkge1xuICAgICAgICAgICAgICAgIHlpZWxkIHsgc2NoZW1hLCBiYXRjaCB9O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZvciAobGV0IGkgPSAtMSwgbiA9IGZvb3Rlci5yZWNvcmRCYXRjaGVzTGVuZ3RoKCk7ICsraSA8IG47KSB7XG4gICAgICAgICAgICBjb25zdCBibG9jayA9IGZvb3Rlci5yZWNvcmRCYXRjaGVzKGkpO1xuICAgICAgICAgICAgYmIuc2V0UG9zaXRpb24oYmxvY2sub2Zmc2V0KCkubG93KTtcbiAgICAgICAgICAgIGZvciAobGV0IGJhdGNoIG9mIHJlYWRNZXNzYWdlQmF0Y2hlcyhiYikpIHtcbiAgICAgICAgICAgICAgICB5aWVsZCB7IHNjaGVtYSwgYmF0Y2ggfTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==

@@ -0,1 +1,17 @@

// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
Object.defineProperty(exports, "__esModule", { value: true });

@@ -81,2 +97,2 @@ var tslib_1 = require("tslib");

//# sourceMappingURL=data:application/json;charset=utf8;base64,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c3NhZ2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmbGF0YnVmZmVycyB9IGZyb20gJ2ZsYXRidWZmZXJzJztcbmltcG9ydCAqIGFzIE1lc3NhZ2VfIGZyb20gJy4uL2Zvcm1hdC9NZXNzYWdlJztcbmltcG9ydCBCeXRlQnVmZmVyID0gZmxhdGJ1ZmZlcnMuQnl0ZUJ1ZmZlcjtcbmltcG9ydCBNZXNzYWdlID0gTWVzc2FnZV8ub3JnLmFwYWNoZS5hcnJvdy5mbGF0YnVmLk1lc3NhZ2U7XG5pbXBvcnQgTWVzc2FnZUhlYWRlciA9IE1lc3NhZ2VfLm9yZy5hcGFjaGUuYXJyb3cuZmxhdGJ1Zi5NZXNzYWdlSGVhZGVyO1xuaW1wb3J0IFJlY29yZEJhdGNoID0gTWVzc2FnZV8ub3JnLmFwYWNoZS5hcnJvdy5mbGF0YnVmLlJlY29yZEJhdGNoO1xuaW1wb3J0IERpY3Rpb25hcnlCYXRjaCA9IE1lc3NhZ2VfLm9yZy5hcGFjaGUuYXJyb3cuZmxhdGJ1Zi5EaWN0aW9uYXJ5QmF0Y2g7XG5cbmV4cG9ydCBjb25zdCBQQURESU5HID0gNDtcbmV4cG9ydCB0eXBlIE1lc3NhZ2VCYXRjaCA9IHtcbiAgICBpZD86IHN0cmluZztcbiAgICBvZmZzZXQ6IG51bWJlcjtcbiAgICBieXRlczogVWludDhBcnJheTtcbiAgICBkYXRhOiBSZWNvcmRCYXRjaDtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiogcmVhZE1lc3NhZ2VzKGJiOiBCeXRlQnVmZmVyKSB7XG4gICAgbGV0IG1lc3NhZ2UsIGxlbmd0aDtcbiAgICB3aGlsZSAoYmIucG9zaXRpb24oKSA8IGJiLmNhcGFjaXR5KCkgJiZcbiAgICAgICAgICAobGVuZ3RoID0gYmIucmVhZEludDMyKGJiLnBvc2l0aW9uKCkpKSA+IDApIHtcbiAgICAgICAgYmIuc2V0UG9zaXRpb24oYmIucG9zaXRpb24oKSArIFBBRERJTkcpO1xuICAgICAgICBtZXNzYWdlID0gTWVzc2FnZS5nZXRSb290QXNNZXNzYWdlKGJiKTtcbiAgICAgICAgYmIuc2V0UG9zaXRpb24oYmIucG9zaXRpb24oKSArIGxlbmd0aCk7XG4gICAgICAgIHlpZWxkIG1lc3NhZ2U7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIHJlYWRNZXNzYWdlQmF0Y2hlcyhiYjogQnl0ZUJ1ZmZlcikge1xuICAgIGxldCBieXRlcyA9IGJiLmJ5dGVzKCk7XG4gICAgZm9yIChsZXQgbWVzc2FnZSBvZiByZWFkTWVzc2FnZXMoYmIpKSB7XG4gICAgICAgIGxldCB0eXBlID0gbWVzc2FnZS5oZWFkZXJUeXBlKCk7XG4gICAgICAgIGxldCBpZDogc3RyaW5nLCBkYXRhOiBSZWNvcmRCYXRjaDtcbiAgICAgICAgaWYgKHR5cGUgPT09IE1lc3NhZ2VIZWFkZXIuUmVjb3JkQmF0Y2gpIHtcbiAgICAgICAgICAgIGRhdGEgPSBtZXNzYWdlLmhlYWRlcihuZXcgUmVjb3JkQmF0Y2goKSk7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gTWVzc2FnZUhlYWRlci5EaWN0aW9uYXJ5QmF0Y2gpIHtcbiAgICAgICAgICAgIGxldCBoZWFkZXIgPSBtZXNzYWdlLmhlYWRlcihuZXcgRGljdGlvbmFyeUJhdGNoKCkpO1xuICAgICAgICAgICAgaWQgPSBoZWFkZXIuaWQoKS50b0Zsb2F0NjQoKS50b1N0cmluZygpO1xuICAgICAgICAgICAgZGF0YSA9IGhlYWRlci5kYXRhKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICB5aWVsZCA8TWVzc2FnZUJhdGNoPiB7IGlkLCBkYXRhLCBieXRlcywgb2Zmc2V0OiBieXRlcy5ieXRlT2Zmc2V0ICsgYmIucG9zaXRpb24oKSB9O1xuICAgICAgICAvLyBwb3NpdGlvbiB0aGUgYnVmZmVyIGFmdGVyIHRoZSBib2R5IHRvIHJlYWQgdGhlIG5leHQgbWVzc2FnZVxuICAgICAgICBiYi5zZXRQb3NpdGlvbihiYi5wb3NpdGlvbigpICsgbWVzc2FnZS5ib2R5TGVuZ3RoKCkubG93KTtcbiAgICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf8;base64,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QyxRQUFRLEVBQUUsRUFBRSxFQUFBOztnQkFBbEYsU0FBa0YsQ0FBQztnQkFDbkYsOERBQThEO2dCQUM5RCxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsR0FBRyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FFaEU7QUFsQkQsZ0RBa0JDIiwiZmlsZSI6InJlYWRlci9tZXNzYWdlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZVxuLy8gb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlXG4vLyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvblxuLy8gcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZVxuLy8gdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZVxuLy8gXCJMaWNlbnNlXCIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4vLyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4vL1xuLy8gICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbi8vXG4vLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsXG4vLyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhblxuLy8gXCJBUyBJU1wiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTllcbi8vIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZVxuLy8gc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9uc1xuLy8gdW5kZXIgdGhlIExpY2Vuc2UuXG5cbmltcG9ydCB7IGZsYXRidWZmZXJzIH0gZnJvbSAnZmxhdGJ1ZmZlcnMnO1xuaW1wb3J0ICogYXMgTWVzc2FnZV8gZnJvbSAnLi4vZm9ybWF0L01lc3NhZ2UnO1xuaW1wb3J0IEJ5dGVCdWZmZXIgPSBmbGF0YnVmZmVycy5CeXRlQnVmZmVyO1xuaW1wb3J0IE1lc3NhZ2UgPSBNZXNzYWdlXy5vcmcuYXBhY2hlLmFycm93LmZsYXRidWYuTWVzc2FnZTtcbmltcG9ydCBNZXNzYWdlSGVhZGVyID0gTWVzc2FnZV8ub3JnLmFwYWNoZS5hcnJvdy5mbGF0YnVmLk1lc3NhZ2VIZWFkZXI7XG5pbXBvcnQgUmVjb3JkQmF0Y2ggPSBNZXNzYWdlXy5vcmcuYXBhY2hlLmFycm93LmZsYXRidWYuUmVjb3JkQmF0Y2g7XG5pbXBvcnQgRGljdGlvbmFyeUJhdGNoID0gTWVzc2FnZV8ub3JnLmFwYWNoZS5hcnJvdy5mbGF0YnVmLkRpY3Rpb25hcnlCYXRjaDtcblxuZXhwb3J0IGNvbnN0IFBBRERJTkcgPSA0O1xuZXhwb3J0IHR5cGUgTWVzc2FnZUJhdGNoID0ge1xuICAgIGlkPzogc3RyaW5nO1xuICAgIG9mZnNldDogbnVtYmVyO1xuICAgIGJ5dGVzOiBVaW50OEFycmF5O1xuICAgIGRhdGE6IFJlY29yZEJhdGNoO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uKiByZWFkTWVzc2FnZXMoYmI6IEJ5dGVCdWZmZXIpIHtcbiAgICBsZXQgbWVzc2FnZSwgbGVuZ3RoO1xuICAgIHdoaWxlIChiYi5wb3NpdGlvbigpIDwgYmIuY2FwYWNpdHkoKSAmJlxuICAgICAgICAgIChsZW5ndGggPSBiYi5yZWFkSW50MzIoYmIucG9zaXRpb24oKSkpID4gMCkge1xuICAgICAgICBiYi5zZXRQb3NpdGlvbihiYi5wb3NpdGlvbigpICsgUEFERElORyk7XG4gICAgICAgIG1lc3NhZ2UgPSBNZXNzYWdlLmdldFJvb3RBc01lc3NhZ2UoYmIpO1xuICAgICAgICBiYi5zZXRQb3NpdGlvbihiYi5wb3NpdGlvbigpICsgbGVuZ3RoKTtcbiAgICAgICAgeWllbGQgbWVzc2FnZTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiogcmVhZE1lc3NhZ2VCYXRjaGVzKGJiOiBCeXRlQnVmZmVyKSB7XG4gICAgbGV0IGJ5dGVzID0gYmIuYnl0ZXMoKTtcbiAgICBmb3IgKGxldCBtZXNzYWdlIG9mIHJlYWRNZXNzYWdlcyhiYikpIHtcbiAgICAgICAgbGV0IHR5cGUgPSBtZXNzYWdlLmhlYWRlclR5cGUoKTtcbiAgICAgICAgbGV0IGlkOiBzdHJpbmcsIGRhdGE6IFJlY29yZEJhdGNoO1xuICAgICAgICBpZiAodHlwZSA9PT0gTWVzc2FnZUhlYWRlci5SZWNvcmRCYXRjaCkge1xuICAgICAgICAgICAgZGF0YSA9IG1lc3NhZ2UuaGVhZGVyKG5ldyBSZWNvcmRCYXRjaCgpKTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSBNZXNzYWdlSGVhZGVyLkRpY3Rpb25hcnlCYXRjaCkge1xuICAgICAgICAgICAgbGV0IGhlYWRlciA9IG1lc3NhZ2UuaGVhZGVyKG5ldyBEaWN0aW9uYXJ5QmF0Y2goKSk7XG4gICAgICAgICAgICBpZCA9IGhlYWRlci5pZCgpLnRvRmxvYXQ2NCgpLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICBkYXRhID0gaGVhZGVyLmRhdGEoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIHlpZWxkIDxNZXNzYWdlQmF0Y2g+IHsgaWQsIGRhdGEsIGJ5dGVzLCBvZmZzZXQ6IGJ5dGVzLmJ5dGVPZmZzZXQgKyBiYi5wb3NpdGlvbigpIH07XG4gICAgICAgIC8vIHBvc2l0aW9uIHRoZSBidWZmZXIgYWZ0ZXIgdGhlIGJvZHkgdG8gcmVhZCB0aGUgbmV4dCBtZXNzYWdlXG4gICAgICAgIGJiLnNldFBvc2l0aW9uKGJiLnBvc2l0aW9uKCkgKyBtZXNzYWdlLmJvZHlMZW5ndGgoKS5sb3cpO1xuICAgIH1cbn1cbiJdfQ==

@@ -0,1 +1,17 @@

// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
Object.defineProperty(exports, "__esModule", { value: true });

@@ -100,2 +116,2 @@ var tslib_1 = require("tslib");

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJlYWRlci9zdHJlYW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwrQkFBcUM7QUFFckMsMENBQTRDO0FBQzVDLDRDQUE4QztBQUM5QyxxQ0FBNkQ7QUFHN0QsSUFBTyxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7QUFDeEQsSUFBTyxhQUFhLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7QUFFdkU7SUFBNEIsYUFBb0I7aUJBQXBCLHFCQUFvQixFQUFwQixJQUFvQjtRQUFwQix3QkFBb0I7Ozs7OztnQkFDNUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLGtCQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDaEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO2dCQUM1QyxDQUFDOzs7O2dCQUNxQixLQUFBLGlCQUFBLHNCQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7Ozs7Z0JBQS9CLE9BQU87cUJBQ1YsQ0FBQSxPQUFPLENBQUMsVUFBVSxFQUFFLEtBQUssYUFBYSxDQUFDLE1BQU0sQ0FBQSxFQUE3Qyx5QkFBNkM7Z0JBQ3ZDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTSxFQUFFLENBQUMsQ0FBQzs7OztnQkFDM0IsUUFBQSxpQkFBQSxHQUFHLENBQUE7Ozs7Z0JBQVQsRUFBRTs7OztnQkFDVyxLQUFBLGlCQUFBLDRCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFBOzs7O2dCQUEvQixLQUFLO2dCQUNaLHFCQUFNLEVBQUUsTUFBTSxRQUFBLEVBQUUsS0FBSyxPQUFBLEVBQUUsRUFBQTs7Z0JBQXZCLFNBQXVCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztxQkFHaEMseUJBQU07Ozs7Ozs7Ozs7Ozs7Ozs7OztDQUdqQjtBQWZELGdDQWVDIiwiZmlsZSI6InJlYWRlci9zdHJlYW0uanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBfY2hlY2tNYWdpYyB9IGZyb20gJy4vZmlsZSc7XG5pbXBvcnQgeyBmbGF0YnVmZmVycyB9IGZyb20gJ2ZsYXRidWZmZXJzJztcbmltcG9ydCAqIGFzIFNjaGVtYV8gZnJvbSAnLi4vZm9ybWF0L1NjaGVtYSc7XG5pbXBvcnQgKiBhcyBNZXNzYWdlXyBmcm9tICcuLi9mb3JtYXQvTWVzc2FnZSc7XG5pbXBvcnQgeyByZWFkTWVzc2FnZXMsIHJlYWRNZXNzYWdlQmF0Y2hlcyB9IGZyb20gJy4vbWVzc2FnZSc7XG5cbmltcG9ydCBCeXRlQnVmZmVyID0gZmxhdGJ1ZmZlcnMuQnl0ZUJ1ZmZlcjtcbmltcG9ydCBTY2hlbWEgPSBTY2hlbWFfLm9yZy5hcGFjaGUuYXJyb3cuZmxhdGJ1Zi5TY2hlbWE7XG5pbXBvcnQgTWVzc2FnZUhlYWRlciA9IE1lc3NhZ2VfLm9yZy5hcGFjaGUuYXJyb3cuZmxhdGJ1Zi5NZXNzYWdlSGVhZGVyO1xuXG5leHBvcnQgZnVuY3Rpb24qIHJlYWRTdHJlYW0oLi4uYmJzOiBCeXRlQnVmZmVyW10pIHtcbiAgICBpZiAoIWJicy5sZW5ndGggfHwgX2NoZWNrTWFnaWMoYmJzWzBdLmJ5dGVzKCksIDApKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBBcnJvdyBTdHJlYW0nKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCBtZXNzYWdlIG9mIHJlYWRNZXNzYWdlcyhiYnNbMF0pKSB7XG4gICAgICAgIGlmIChtZXNzYWdlLmhlYWRlclR5cGUoKSA9PT0gTWVzc2FnZUhlYWRlci5TY2hlbWEpIHtcbiAgICAgICAgICAgIGNvbnN0IHNjaGVtYSA9IG1lc3NhZ2UuaGVhZGVyKG5ldyBTY2hlbWEoKSk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGJiIG9mIGJicykge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgYmF0Y2ggb2YgcmVhZE1lc3NhZ2VCYXRjaGVzKGJiKSkge1xuICAgICAgICAgICAgICAgICAgICB5aWVsZCB7IHNjaGVtYSwgYmF0Y2ggfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJlYWRlci9zdHJlYW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNkRBQTZEO0FBQzdELCtEQUErRDtBQUMvRCx3REFBd0Q7QUFDeEQsNkRBQTZEO0FBQzdELG9EQUFvRDtBQUNwRCw2REFBNkQ7QUFDN0QsNkRBQTZEO0FBQzdELEVBQUU7QUFDRiwrQ0FBK0M7QUFDL0MsRUFBRTtBQUNGLDZEQUE2RDtBQUM3RCw4REFBOEQ7QUFDOUQseURBQXlEO0FBQ3pELDREQUE0RDtBQUM1RCwwREFBMEQ7QUFDMUQscUJBQXFCOzs7QUFFckIsK0JBQXFDO0FBRXJDLDBDQUE0QztBQUM1Qyw0Q0FBOEM7QUFDOUMscUNBQTZEO0FBRzdELElBQU8sTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO0FBQ3hELElBQU8sYUFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO0FBRXZFO0lBQTRCLGFBQW9CO2lCQUFwQixxQkFBb0IsRUFBcEIsSUFBb0I7UUFBcEIsd0JBQW9COzs7Ozs7Z0JBQzVDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxrQkFBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ2hELE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQztnQkFDNUMsQ0FBQzs7OztnQkFDcUIsS0FBQSxpQkFBQSxzQkFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBOzs7O2dCQUEvQixPQUFPO3FCQUNWLENBQUEsT0FBTyxDQUFDLFVBQVUsRUFBRSxLQUFLLGFBQWEsQ0FBQyxNQUFNLENBQUEsRUFBN0MseUJBQTZDO2dCQUN2QyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sRUFBRSxDQUFDLENBQUM7Ozs7Z0JBQzNCLFFBQUEsaUJBQUEsR0FBRyxDQUFBOzs7O2dCQUFULEVBQUU7Ozs7Z0JBQ1csS0FBQSxpQkFBQSw0QkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQTs7OztnQkFBL0IsS0FBSztnQkFDWixxQkFBTSxFQUFFLE1BQU0sUUFBQSxFQUFFLEtBQUssT0FBQSxFQUFFLEVBQUE7O2dCQUF2QixTQUF1QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7cUJBR2hDLHlCQUFNOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FHakI7QUFmRCxnQ0FlQyIsImZpbGUiOiJyZWFkZXIvc3RyZWFtLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZVxuLy8gb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlXG4vLyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvblxuLy8gcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZVxuLy8gdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZVxuLy8gXCJMaWNlbnNlXCIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4vLyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4vL1xuLy8gICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbi8vXG4vLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsXG4vLyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhblxuLy8gXCJBUyBJU1wiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTllcbi8vIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZVxuLy8gc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9uc1xuLy8gdW5kZXIgdGhlIExpY2Vuc2UuXG5cbmltcG9ydCB7IF9jaGVja01hZ2ljIH0gZnJvbSAnLi9maWxlJztcbmltcG9ydCB7IGZsYXRidWZmZXJzIH0gZnJvbSAnZmxhdGJ1ZmZlcnMnO1xuaW1wb3J0ICogYXMgU2NoZW1hXyBmcm9tICcuLi9mb3JtYXQvU2NoZW1hJztcbmltcG9ydCAqIGFzIE1lc3NhZ2VfIGZyb20gJy4uL2Zvcm1hdC9NZXNzYWdlJztcbmltcG9ydCB7IHJlYWRNZXNzYWdlcywgcmVhZE1lc3NhZ2VCYXRjaGVzIH0gZnJvbSAnLi9tZXNzYWdlJztcblxuaW1wb3J0IEJ5dGVCdWZmZXIgPSBmbGF0YnVmZmVycy5CeXRlQnVmZmVyO1xuaW1wb3J0IFNjaGVtYSA9IFNjaGVtYV8ub3JnLmFwYWNoZS5hcnJvdy5mbGF0YnVmLlNjaGVtYTtcbmltcG9ydCBNZXNzYWdlSGVhZGVyID0gTWVzc2FnZV8ub3JnLmFwYWNoZS5hcnJvdy5mbGF0YnVmLk1lc3NhZ2VIZWFkZXI7XG5cbmV4cG9ydCBmdW5jdGlvbiogcmVhZFN0cmVhbSguLi5iYnM6IEJ5dGVCdWZmZXJbXSkge1xuICAgIGlmICghYmJzLmxlbmd0aCB8fCBfY2hlY2tNYWdpYyhiYnNbMF0uYnl0ZXMoKSwgMCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIEFycm93IFN0cmVhbScpO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IG1lc3NhZ2Ugb2YgcmVhZE1lc3NhZ2VzKGJic1swXSkpIHtcbiAgICAgICAgaWYgKG1lc3NhZ2UuaGVhZGVyVHlwZSgpID09PSBNZXNzYWdlSGVhZGVyLlNjaGVtYSkge1xuICAgICAgICAgICAgY29uc3Qgc2NoZW1hID0gbWVzc2FnZS5oZWFkZXIobmV3IFNjaGVtYSgpKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgYmIgb2YgYmJzKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBiYXRjaCBvZiByZWFkTWVzc2FnZUJhdGNoZXMoYmIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHlpZWxkIHsgc2NoZW1hLCBiYXRjaCB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19

@@ -0,1 +1,17 @@

// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
Object.defineProperty(exports, "__esModule", { value: true });

@@ -158,2 +174,2 @@ var tslib_1 = require("tslib");

//# sourceMappingURL=data:application/json;charset=utf8;base64,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SSxVQUFVLEVBQUksVUFBVSxDQUFHLENBQUM7QUFDN0UsSUFBTSxVQUFVLEdBQUksQ0FBQyxVQUFVLEVBQUksVUFBVSxFQUFJLFVBQVUsRUFBSSxVQUFVLENBQUcsQ0FBQztBQUM3RSxJQUFNLFNBQVMsR0FBSyxDQUFDLFVBQVUsRUFBSSxXQUFXLEVBQUcsV0FBVyxFQUFHLFdBQVcsQ0FBRSxDQUFDO0FBQzdFLElBQU0sVUFBVSxHQUFJLENBQUMsVUFBVSxFQUFJLFVBQVUsRUFBSSxVQUFVLEVBQUksVUFBVSxDQUFHLENBQUM7QUFDN0UsSUFBTSxXQUFXLEdBQUcsQ0FBQyxXQUFXLEVBQUcsV0FBVyxFQUFHLFdBQVcsRUFBRyxXQUFXLENBQUUsQ0FBQztBQUM3RSxJQUFNLFVBQVUsR0FBSSxDQUFDLFNBQVMsRUFBSyxVQUFVLEVBQUksWUFBWSxFQUFFLFlBQVksQ0FBQyxDQUFDO0FBRTdFLElBQU0sa0JBQWtCLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3JFLElBQU0sbUJBQW1CLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3ZFLElBQU0sbUJBQW1CLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3pFLElBQU0sb0JBQW9CLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3pFLElBQU0scUJBQXFCLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzNFLElBQU0sdUJBQXVCLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzVFLElBQU0sbUJBQW1CLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLEVB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LFFBQWdCLEVBQUUsTUFBYTtJQUNyRCxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDOUMsQ0FBQyIsImZpbGUiOiJyZWFkZXIvdmVjdG9yLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWVzc2FnZUJhdGNoIH0gZnJvbSAnLi9tZXNzYWdlJztcbmltcG9ydCB7IFZlY3RvciB9IGZyb20gJy4uL3ZlY3RvcnMvdmVjdG9yJztcbmltcG9ydCAqIGFzIFNjaGVtYV8gZnJvbSAnLi4vZm9ybWF0L1NjaGVtYSc7XG5pbXBvcnQgeyBTdHJ1Y3RWZWN0b3IgfSBmcm9tICcuLi92ZWN0b3JzL3N0cnVjdCc7XG5pbXBvcnQgeyBJdGVyYXRvclN0YXRlLCBEaWN0aW9uYXJpZXMgfSBmcm9tICcuL2Fycm93JztcbmltcG9ydCB7IERpY3Rpb25hcnlWZWN0b3IgfSBmcm9tICcuLi92ZWN0b3JzL2RpY3Rpb25hcnknO1xuaW1wb3J0IHsgVXRmOFZlY3RvciwgTGlzdFZlY3RvciwgRml4ZWRTaXplTGlzdFZlY3RvciB9IGZyb20gJy4uL3ZlY3RvcnMvbGlzdCc7XG5pbXBvcnQge1xuICAgIFR5cGVkQXJyYXksIFR5cGVkQXJyYXlDdG9yLCBJbnRBcnJheSwgRmxvYXRBcnJheSxcbiAgICBJbnQ4VmVjdG9yLCBJbnQxNlZlY3RvciwgSW50MzJWZWN0b3IsIEludDY0VmVjdG9yLFxuICAgIFVpbnQ4VmVjdG9yLCBVaW50MTZWZWN0b3IsIFVpbnQzMlZlY3RvciwgVWludDY0VmVjdG9yLFxuICAgIEZsb2F0MzJWZWN0b3IsIEZsb2F0NjRWZWN0b3IsIEluZGV4VmVjdG9yLCBEYXRlVmVjdG9yLFxufSBmcm9tICcuLi92ZWN0b3JzL3R5cGVkJztcblxuaW1wb3J0IEludCA9IFNjaGVtYV8ub3JnLmFwYWNoZS5hcnJvdy5mbGF0YnVmLkludDtcbmltcG9ydCBUeXBlID0gU2NoZW1hXy5vcmcuYXBhY2hlLmFycm93LmZsYXRidWYuVHlwZTtcbmltcG9ydCBGaWVsZCA9IFNjaGVtYV8ub3JnLmFwYWNoZS5hcnJvdy5mbGF0YnVmLkZpZWxkO1xuaW1wb3J0IFByZWNpc2lvbiA9IFNjaGVtYV8ub3JnLmFwYWNoZS5hcnJvdy5mbGF0YnVmLlByZWNpc2lvbjtcbmltcG9ydCBWZWN0b3JUeXBlID0gU2NoZW1hXy5vcmcuYXBhY2hlLmFycm93LmZsYXRidWYuVmVjdG9yVHlwZTtcbmltcG9ydCBGaXhlZFNpemVMaXN0ID0gU2NoZW1hXy5vcmcuYXBhY2hlLmFycm93LmZsYXRidWYuRml4ZWRTaXplTGlzdDtcbmltcG9ydCBGbG9hdGluZ1BvaW50ID0gU2NoZW1hXy5vcmcuYXBhY2hlLmFycm93LmZsYXRidWYuRmxvYXRpbmdQb2ludDtcbmltcG9ydCBEaWN0aW9uYXJ5RW5jb2RpbmcgPSBTY2hlbWFfLm9yZy5hcGFjaGUuYXJyb3cuZmxhdGJ1Zi5EaWN0aW9uYXJ5RW5jb2Rpbmc7XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkVmVjdG9yKGZpZWxkOiBGaWVsZCwgYmF0Y2g6IE1lc3NhZ2VCYXRjaCwgc3RhdGU6IEl0ZXJhdG9yU3RhdGUsIGRpY3Rpb25hcmllczogRGljdGlvbmFyaWVzKSB7XG4gICAgcmV0dXJuIHJlYWREaWN0aW9uYXJ5VmVjdG9yKGZpZWxkLCBiYXRjaCwgc3RhdGUsIGRpY3Rpb25hcmllcykgfHxcbiAgICAgICAgICAgICAgICByZWFkVHlwZWRWZWN0b3IoZmllbGQsIGJhdGNoLCBzdGF0ZSwgZGljdGlvbmFyaWVzKTtcbn1cblxuZnVuY3Rpb24gcmVhZFR5cGVkVmVjdG9yKGZpZWxkOiBGaWVsZCwgYmF0Y2g6IE1lc3NhZ2VCYXRjaCwgaXRlcmF0b3I6IEl0ZXJhdG9yU3RhdGUsIGRpY3Rpb25hcmllczogRGljdGlvbmFyaWVzKSB7XG4gICAgbGV0IHR5cGVUeXBlID0gZmllbGQudHlwZVR5cGUoKSwgcmVhZFR5cGVkID0gdHlwZWRWZWN0b3JSZWFkZXJzW3R5cGVUeXBlXTtcbiAgICBpZiAoIXJlYWRUeXBlZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VucmVjb2duaXplZCB2ZWN0b3IgbmFtZSBcIicgKyBUeXBlW3R5cGVUeXBlXSArICdcIiB0eXBlIFwiJyArIHR5cGVUeXBlICsgJ1wiJyk7XG4gICAgfVxuICAgIHJldHVybiByZWFkVHlwZWQoZmllbGQsIGJhdGNoLCBpdGVyYXRvciwgZGljdGlvbmFyaWVzKTtcbn1cblxuZnVuY3Rpb24gcmVhZERpY3Rpb25hcnlWZWN0b3IoZmllbGQ6IEZpZWxkLCBiYXRjaDogTWVzc2FnZUJhdGNoLCBpdGVyYXRvcjogSXRlcmF0b3JTdGF0ZSwgZGljdGlvbmFyaWVzOiBEaWN0aW9uYXJpZXMpIHtcbiAgICBsZXQgZW5jb2Rpbmc6IERpY3Rpb25hcnlFbmNvZGluZztcbiAgICBpZiAoZGljdGlvbmFyaWVzICYmIChlbmNvZGluZyA9IGZpZWxkLmRpY3Rpb25hcnkoKSkpIHtcbiAgICAgICAgbGV0IGlkID0gZW5jb2RpbmcuaWQoKS50b0Zsb2F0NjQoKS50b1N0cmluZygpO1xuICAgICAgICBsZXQgaW5kZXggPSByZWFkSW50VmVjdG9yKGZpZWxkLCBiYXRjaCwgaXRlcmF0b3IsIG51bGwsXG4gICAgICAgICAgICAvKiBhIGRpY3Rpb25hcnkgaW5kZXggZGVmYXVsdHMgdG8gc2lnbmVkIDMyIGJpdCBpbnQgaWYgdW5zcGVjaWZpZWQgKi9cbiAgICAgICAgICAgIGVuY29kaW5nLmluZGV4VHlwZSgpIHx8IHsgYml0V2lkdGg6ICgpID0+IDMyLCBpc1NpZ25lZDogKCkgPT4gdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIERpY3Rpb25hcnlWZWN0b3IuY3JlYXRlKGZpZWxkLCBpbmRleC5sZW5ndGgsIGluZGV4LCBkaWN0aW9uYXJpZXNbaWRdKTtcbiAgICB9XG59XG5cbmNvbnN0IEludFZpZXdzICAgID0gW0ludDhBcnJheSwgICAgSW50MTZBcnJheSwgICBJbnQzMkFycmF5LCAgIEludDMyQXJyYXkgIF07XG5jb25zdCBJbnQzMlZpZXdzICA9IFtJbnQzMkFycmF5LCAgIEludDMyQXJyYXksICAgSW50MzJBcnJheSwgICBJbnQzMkFycmF5ICBdO1xuY29uc3QgVWludFZpZXdzICAgPSBbVWludDhBcnJheSwgICBVaW50MTZBcnJheSwgIFVpbnQzMkFycmF5LCAgVWludDMyQXJyYXkgXTtcbmNvbnN0IFVpbnQ4Vmlld3MgID0gW1VpbnQ4QXJyYXksICAgVWludDhBcnJheSwgICBVaW50OEFycmF5LCAgIFVpbnQ4QXJyYXkgIF07XG5jb25zdCBVaW50MzJWaWV3cyA9IFtVaW50MzJBcnJheSwgIFVpbnQzMkFycmF5LCAgVWludDMyQXJyYXksICBVaW50MzJBcnJheSBdO1xuY29uc3QgRmxvYXRWaWV3cyAgPSBbSW50OEFycmF5LCAgICBJbnQxNkFycmF5LCAgIEZsb2F0MzJBcnJheSwgRmxvYXQ2NEFycmF5XTtcblxuY29uc3QgY3JlYXRlSW50RGF0YVZpZXdzID0gY3JlYXRlRGF0YVZpZXcuYmluZChudWxsLCBJbnRWaWV3cywgbnVsbCk7XG5jb25zdCBjcmVhdGVVaW50RGF0YVZpZXdzID0gY3JlYXRlRGF0YVZpZXcuYmluZChudWxsLCBVaW50Vmlld3MsIG51bGwpO1xuY29uc3QgY3JlYXRlRGF0ZURhdGFWaWV3cyA9IGNyZWF0ZURhdGFWaWV3LmJpbmQobnVsbCwgVWludDMyVmlld3MsIG51bGwpO1xuY29uc3QgY3JlYXRlRmxvYXREYXRhVmlld3MgPSBjcmVhdGVEYXRhVmlldy5iaW5kKG51bGwsIEZsb2F0Vmlld3MsIG51bGwpO1xuY29uc3QgY3JlYXRlTmVzdGVkRGF0YVZpZXdzID0gY3JlYXRlRGF0YVZpZXcuYmluZChudWxsLCBVaW50MzJWaWV3cywgbnVsbCk7XG5jb25zdCBjcmVhdGVWYWxpZGl0eURhdGFWaWV3cyA9IGNyZWF0ZURhdGFWaWV3LmJpbmQobnVsbCwgVWludDhWaWV3cywgbnVsbCk7XG5jb25zdCBjcmVhdGVVdGY4RGF0YVZpZXdzID0gY3JlYXRlRGF0YVZpZXcuYmluZChudWxsLCBVaW50OFZpZXdzLCBJbnQzMlZpZXdzKTtcblxuY29uc3QgZmxvYXRWZWN0b3JzID0ge1xuICAgIFtQcmVjaXNpb24uU0lOR0xFXTogRmxvYXQzMlZlY3RvcixcbiAgICBbUHJlY2lzaW9uLkRPVUJMRV06IEZsb2F0NjRWZWN0b3Jcbn07XG5jb25zdCBpbnRWZWN0b3JzID0gW1xuICAgIFsvKiB1bnNpZ25lZCAqLyBVaW50OFZlY3RvciwgICAvKiBzaWduZWQgKi8gSW50OFZlY3RvciBdLFxuICAgIFsvKiB1bnNpZ25lZCAqLyBVaW50MTZWZWN0b3IsICAvKiBzaWduZWQgKi8gSW50MTZWZWN0b3JdLFxuICAgIFsvKiB1bnNpZ25lZCAqLyBVaW50MzJWZWN0b3IsICAvKiBzaWduZWQgKi8gSW50MzJWZWN0b3JdLFxuICAgIFsvKiB1bnNpZ25lZCAqLyBVaW50NjRWZWN0b3IsICAvKiBzaWduZWQgKi8gSW50NjRWZWN0b3JdXG5dO1xuXG5mdW5jdGlvbiByZWFkSW50VmVjdG9yKGZpZWxkOiBGaWVsZCwgYmF0Y2g6IE1lc3NhZ2VCYXRjaCwgaXRlcmF0b3I6IEl0ZXJhdG9yU3RhdGUsIGRpY3Rpb25hcmllczogRGljdGlvbmFyaWVzLCBmaWVsZFR5cGU/OiBGaWVsZFR5cGUpIHtcbiAgICBsZXQgdHlwZSA9IChmaWVsZFR5cGUgfHwgZmllbGQudHlwZShuZXcgSW50KCkpKTtcbiAgICByZXR1cm4gdHlwZS5pc1NpZ25lZCgpID9cbiAgICAgICAgcmVhZF9JbnRWZWN0b3IoZmllbGQsIGJhdGNoLCBpdGVyYXRvciwgZGljdGlvbmFyaWVzLCB0eXBlKSA6XG4gICAgICAgIHJlYWRVaW50VmVjdG9yKGZpZWxkLCBiYXRjaCwgaXRlcmF0b3IsIGRpY3Rpb25hcmllcywgdHlwZSk7XG59XG5cbmNvbnN0IHJlYWRfSW50VmVjdG9yID0gcmVhZFZlY3RvckxheW91dDxudW1iZXIsIEludEFycmF5PihjcmVhdGVJbnREYXRhVmlld3MsIGNyZWF0ZUludFZlY3Rvcik7XG5jb25zdCByZWFkVWludFZlY3RvciA9IHJlYWRWZWN0b3JMYXlvdXQ8bnVtYmVyLCBJbnRBcnJheT4oY3JlYXRlVWludERhdGFWaWV3cywgY3JlYXRlSW50VmVjdG9yKTtcbmZ1bmN0aW9uIGNyZWF0ZUludFZlY3RvcihmaWVsZCwgbGVuZ3RoLCBkYXRhLCB2YWxpZGl0eSwgb2Zmc2V0cywgZmllbGRUeXBlLCBiYXRjaCwgaXRlcmF0b3IsIGRpY3Rpb25hcmllcykge1xuICAgIGxldCB0eXBlID0gZmllbGRUeXBlIHx8IGZpZWxkLnR5cGUobmV3IEludCgpKSwgYml0V2lkdGggPSB0eXBlLmJpdFdpZHRoKCk7XG4gICAgbGV0IFZlY3RvciA9IHZhbHVlRm9yQml0V2lkdGgoYml0V2lkdGgsIGludFZlY3RvcnMpWyt0eXBlLmlzU2lnbmVkKCldO1xuICAgIHJldHVybiBWZWN0b3IuY3JlYXRlKGZpZWxkLCBsZW5ndGgsIHZhbGlkaXR5LCBkYXRhIHx8IG9mZnNldHMpO1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gc28gdGhpcyBpcyBraW5kYSBzdHJhbmdlIPCfkYY6XG4gICAgLy8gVGhlIGRpY3Rpb25hcnkgZW5jb2RlZCB2ZWN0b3JzIEkgZ2VuZXJhdGVkIGZyb20gc2FtcGxlIG1hcGQtY29yZSBxdWVyaWVzIGhhdmUgdGhlIGluZGljaWVzJyBkYXRhIGJ1ZmZlcnNcbiAgICAvLyB0YWdnZWQgYXMgVmVjdG9yVHlwZS5PRkZTRVQgKDApIGluIHRoZSBmaWVsZCBtZXRhZGF0YS4gVGhlIGN1cnJlbnQgVFMgaW1wbCBpZ25vcmVzIGJ1ZmZlcnMnIGxheW91dCB0eXBlLFxuICAgIC8vIGFuZCBhc3N1bWVzIHRoZSBzZWNvbmQgYnVmZmVyIGlzIHRoZSBkYXRhIGZvciBhIE51bGxhYmxlSW50VmVjdG9yLiBTaW5jZSB3ZSd2ZSBiZWVuIHN0cmljdGVyIGFib3V0IGVuZm9yY2luZ1xuICAgIC8vIHRoZSBBcnJvdyBzcGVjIHdoaWxlIHBhcnNpbmcsIHRoZSBJbnRWZWN0b3IncyBkYXRhIGJ1ZmZlciByZWFkcyBlbXB0eSBpbiB0aGlzIGNhc2UuIElmIHNvLCBmYWxsYmFjayB0byB1c2luZ1xuICAgIC8vIHRoZSBvZmZzZXRzIGJ1ZmZlciBhcyB0aGUgZGF0YSwgc2luY2UgSW50VmVjdG9ycyBkb24ndCBoYXZlIG9mZnNldHMuXG59XG5cbmNvbnN0IHJlYWRGbG9hdFZlY3RvciA9IHJlYWRWZWN0b3JMYXlvdXQ8bnVtYmVyLCBGbG9hdEFycmF5PihcbiAgICBjcmVhdGVGbG9hdERhdGFWaWV3cyxcbiAgICAoZmllbGQsIGxlbmd0aCwgZGF0YSwgdmFsaWRpdHksIG9mZnNldHMsIGZpZWxkVHlwZSwgYmF0Y2gsIGl0ZXJhdG9yLCBkaWN0aW9uYXJpZXMpID0+IHtcbiAgICAgICAgbGV0IHR5cGUgPSBmaWVsZC50eXBlKG5ldyBGbG9hdGluZ1BvaW50KCkpO1xuICAgICAgICBsZXQgVmVjdG9yID0gZmxvYXRWZWN0b3JzW3R5cGUucHJlY2lzaW9uKCldO1xuICAgICAgICByZXR1cm4gVmVjdG9yLmNyZWF0ZShmaWVsZCwgbGVuZ3RoLCB2YWxpZGl0eSwgZGF0YSk7XG4gICAgfVxuKTtcblxuY29uc3QgcmVhZERhdGVWZWN0b3IgPSByZWFkVmVjdG9yTGF5b3V0PERhdGUsIFVpbnQzMkFycmF5PihcbiAgICBjcmVhdGVEYXRlRGF0YVZpZXdzLFxuICAgIChmaWVsZCwgbGVuZ3RoLCBkYXRhLCB2YWxpZGl0eSwgb2Zmc2V0cywgZmllbGRUeXBlLCBiYXRjaCwgaXRlcmF0b3IsIGRpY3Rpb25hcmllcykgPT4ge1xuICAgICAgICByZXR1cm4gRGF0ZVZlY3Rvci5jcmVhdGUoZmllbGQsIGxlbmd0aCwgdmFsaWRpdHksIGRhdGEpO1xuICAgIH1cbik7XG5cbmNvbnN0IHJlYWRVdGY4VmVjdG9yID0gcmVhZFZlY3RvckxheW91dDxzdHJpbmcsIFVpbnQ4QXJyYXk+KFxuICAgIGNyZWF0ZVV0ZjhEYXRhVmlld3MsXG4gICAgKGZpZWxkLCBsZW5ndGgsIGRhdGEsIHZhbGlkaXR5LCBvZmZzZXRzLCBmaWVsZFR5cGUsIGJhdGNoLCBpdGVyYXRvciwgZGljdGlvbmFyaWVzKSA9PiB7XG4gICAgICAgIGxldCBvZmZzZXRzQWRqdXN0ZWQgPSBuZXcgSW50MzJBcnJheShvZmZzZXRzLmJ1ZmZlciwgb2Zmc2V0cy5ieXRlT2Zmc2V0LCBsZW5ndGggKyAxKTtcbiAgICAgICAgcmV0dXJuIFV0ZjhWZWN0b3IuY3JlYXRlKFxuICAgICAgICAgICAgZmllbGQsIGxlbmd0aCwgdmFsaWRpdHksXG4gICAgICAgICAgICBVaW50OFZlY3Rvci5jcmVhdGUoZmllbGQsIGRhdGEubGVuZ3RoLCBudWxsLCBkYXRhKSxcbiAgICAgICAgICAgIEluZGV4VmVjdG9yLmNyZWF0ZShmaWVsZCwgbGVuZ3RoICsgMSwgbnVsbCwgb2Zmc2V0c0FkanVzdGVkKVxuICAgICAgICApO1xuICAgIH1cbik7XG5cbmNvbnN0IHJlYWRMaXN0VmVjdG9yID0gcmVhZFZlY3RvckxheW91dDxhbnlbXSwgVWludDMyQXJyYXk+KFxuICAgIGNyZWF0ZU5lc3RlZERhdGFWaWV3cyxcbiAgICAoZmllbGQsIGxlbmd0aCwgZGF0YSwgdmFsaWRpdHksIG9mZnNldHMsIGZpZWxkVHlwZSwgYmF0Y2gsIGl0ZXJhdG9yLCBkaWN0aW9uYXJpZXMpID0+IHtcbiAgICAgICAgbGV0IG9mZnNldHNBZGp1c3RlZCA9IG5ldyBJbnQzMkFycmF5KG9mZnNldHMuYnVmZmVyLCBvZmZzZXRzLmJ5dGVPZmZzZXQsIGxlbmd0aCArIDEpO1xuICAgICAgICByZXR1cm4gTGlzdFZlY3Rvci5jcmVhdGUoXG4gICAgICAgICAgICBmaWVsZCwgbGVuZ3RoLCB2YWxpZGl0eSxcbiAgICAgICAgICAgIHJlYWRWZWN0b3IoZmllbGQuY2hpbGRyZW4oMCksIGJhdGNoLCBpdGVyYXRvciwgZGljdGlvbmFyaWVzKSxcbiAgICAgICAgICAgIEluZGV4VmVjdG9yLmNyZWF0ZShmaWVsZCwgbGVuZ3RoICsgMSwgbnVsbCwgb2Zmc2V0c0FkanVzdGVkKVxuICAgICAgICApO1xuICAgIH1cbik7XG5cbmNvbnN0IHJlYWRGaXhlZFNpemVMaXN0VmVjdG9yID0gcmVhZFZlY3RvckxheW91dDxhbnlbXSwgVWludDMyQXJyYXk+KFxuICAgIGNyZWF0ZU5lc3RlZERhdGFWaWV3cyxcbiAgICAoZmllbGQsIGxlbmd0aCwgZGF0YSwgdmFsaWRpdHksIG9mZnNldHMsIGZpZWxkVHlwZSwgYmF0Y2gsIGl0ZXJhdG9yLCBkaWN0aW9uYXJpZXMpID0+IHtcbiAgICAgICAgbGV0IHNpemUgPSBmaWVsZC50eXBlKG5ldyBGaXhlZFNpemVMaXN0KCkpLmxpc3RTaXplKCk7XG4gICAgICAgIHJldHVybiBGaXhlZFNpemVMaXN0VmVjdG9yLmNyZWF0ZShcbiAgICAgICAgICAgIGZpZWxkLCBsZW5ndGgsIHNpemUsIHZhbGlkaXR5LFxuICAgICAgICAgICAgcmVhZFZlY3RvcihmaWVsZC5jaGlsZHJlbigwKSwgYmF0Y2gsIGl0ZXJhdG9yLCBkaWN0aW9uYXJpZXMpXG4gICAgICAgICk7XG4gICAgfVxuKTtcblxuY29uc3QgcmVhZFN0cnVjdFZlY3RvciA9IHJlYWRWZWN0b3JMYXlvdXQ8YW55W10sIEFycmF5TGlrZTxhbnk+PihcbiAgICBjcmVhdGVOZXN0ZWREYXRhVmlld3MsXG4gICAgKGZpZWxkLCBsZW5ndGgsIGRhdGEsIHZhbGlkaXR5LCBvZmZzZXRzLCBmaWVsZFR5cGUsIGJhdGNoLCBpdGVyYXRvciwgZGljdGlvbmFyaWVzKSA9PiB7XG4gICAgICAgIGxldCB2ZWN0b3JzOiBWZWN0b3I8YW55PltdID0gW107XG4gICAgICAgIGl0ZXJhdG9yLmJ1ZmZlckluZGV4IC09IGZpZWxkLm51bGxhYmxlKCkgPyAwIDogZmllbGQubGF5b3V0TGVuZ3RoKCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAtMSwgbiA9IGZpZWxkLmNoaWxkcmVuTGVuZ3RoKCk7ICsraSA8IG47KSB7XG4gICAgICAgICAgICB2ZWN0b3JzW2ldID0gcmVhZFZlY3RvcihmaWVsZC5jaGlsZHJlbihpKSwgYmF0Y2gsIGl0ZXJhdG9yLCBkaWN0aW9uYXJpZXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBTdHJ1Y3RWZWN0b3IuY3JlYXRlKGZpZWxkLCBsZW5ndGgsIHZhbGlkaXR5LCAuLi52ZWN0b3JzKTtcbiAgICB9XG4pO1xuXG5jb25zdCB0eXBlZFZlY3RvclJlYWRlcnMgPSB7XG4gICAgW1R5cGUuSW50XTogcmVhZEludFZlY3RvcixcbiAgICBbVHlwZS5EYXRlXTogcmVhZERhdGVWZWN0b3IsXG4gICAgW1R5cGUuTGlzdF06IHJlYWRMaXN0VmVjdG9yLFxuICAgIFtUeXBlLlV0ZjhdOiByZWFkVXRmOFZlY3RvcixcbiAgICBbVHlwZS5TdHJ1Y3RfXTogcmVhZFN0cnVjdFZlY3RvcixcbiAgICBbVHlwZS5GbG9hdGluZ1BvaW50XTogcmVhZEZsb2F0VmVjdG9yLFxuICAgIFtUeXBlLkZpeGVkU2l6ZUxpc3RdOiByZWFkRml4ZWRTaXplTGlzdFZlY3Rvcixcbn07XG5cbnR5cGUgRmllbGRUeXBlID0geyBiaXRXaWR0aCgpOiBudW1iZXI7IGlzU2lnbmVkKCk6IGJvb2xlYW4gfTtcbnR5cGUgZGF0YVZpZXdGYWN0b3J5PFYgPSBUeXBlZEFycmF5PiA9IChiYXRjaDogTWVzc2FnZUJhdGNoLCB0eXBlOiBWZWN0b3JUeXBlLCBiaXRXaWR0aDogbnVtYmVyLCBvZmZzZXQ6IG51bWJlciwgbGVuZ3RoOiBudW1iZXIpID0+IFY7XG50eXBlIHZlY3RvckZhY3Rvcnk8VExpc3QsIFYgPSBWZWN0b3I8YW55Pj4gPSAoZmllbGQ6IEZpZWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aDogbnVtYmVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IFRMaXN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGxzOiBVaW50OEFycmF5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldHM6IFR5cGVkQXJyYXksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRUeXBlOiBGaWVsZFR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2h1bms6IE1lc3NhZ2VCYXRjaCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVyYWJsZTogSXRlcmF0b3JTdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWN0aW9uYXJpZXM6IERpY3Rpb25hcmllcykgPT4gVjtcblxuZnVuY3Rpb24gcmVhZFZlY3RvckxheW91dDxULCBUTGlzdD4oY3JlYXRlRGF0YVZpZXc6IGRhdGFWaWV3RmFjdG9yeTxUTGlzdD4sIGNyZWF0ZVZlY3RvcjogdmVjdG9yRmFjdG9yeTxUTGlzdCwgVmVjdG9yPFQ+Pikge1xuICAgIHJldHVybiBmdW5jdGlvbiByZWFkTGF5b3V0KFxuICAgICAgICAgICAgZmllbGQ6IEZpZWxkLFxuICAgICAgICAgICAgY2h1bms6IE1lc3NhZ2VCYXRjaCxcbiAgICAgICAgICAgIGl0ZXJhdG9yOiBJdGVyYXRvclN0YXRlLFxuICAgICAgICAgICAgZGljdGlvbmFyaWVzOiBEaWN0aW9uYXJpZXMsXG4gICAgICAgICAgICBpbnRlZ2VyRmllbGRUeXBlPzogRmllbGRUeXBlXG4gICAgKSB7XG4gICAgICAgIGxldCBiYXRjaCA9IGNodW5rLmRhdGE7XG4gICAgICAgIGxldCBsYXlvdXRMZW5ndGggPSBmaWVsZC5sYXlvdXRMZW5ndGgoKTtcbiAgICAgICAgbGV0IG5vZGUgPSBiYXRjaC5ub2RlcyhpdGVyYXRvci5ub2RlSW5kZXgrKyk7XG4gICAgICAgIGxldCBkYXRhOiBUTGlzdCwgb2Zmc2V0czogYW55LCB2YWxpZGl0eTogVWludDhBcnJheTtcbiAgICAgICAgbGV0IHR5cGUsIGJpdFdpZHRoLCBidWZmZXJMZW5ndGgsIG5vZGVMZW5ndGggPSBub2RlLmxlbmd0aCgpLmxvdztcbiAgICAgICAgZm9yIChsZXQgaSA9IC0xOyArK2kgPCBsYXlvdXRMZW5ndGg7KSB7XG4gICAgICAgICAgICBsZXQgbGF5b3V0ID0gZmllbGQubGF5b3V0KGkpO1xuICAgICAgICAgICAgbGV0IGJ1ZmZlciA9IGJhdGNoLmJ1ZmZlcnMoaXRlcmF0b3IuYnVmZmVySW5kZXgrKyk7XG4gICAgICAgICAgICBpZiAoKHR5cGUgPSBsYXlvdXQudHlwZSgpKSA9PT0gVmVjdG9yVHlwZS5UWVBFIHx8XG4gICAgICAgICAgICAgICAgKGJ1ZmZlckxlbmd0aCA9IGJ1ZmZlci5sZW5ndGgoKS5sb3cpIDw9IDAgIHx8XG4gICAgICAgICAgICAgICAgKGJpdFdpZHRoID0gbGF5b3V0LmJpdFdpZHRoKCkpIDw9IDApIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gVmVjdG9yVHlwZS5EQVRBKSB7XG4gICAgICAgICAgICAgICAgZGF0YSA9IGNyZWF0ZURhdGFWaWV3KGNodW5rLCB0eXBlLCBiaXRXaWR0aCwgYnVmZmVyLm9mZnNldCgpLmxvdywgYnVmZmVyTGVuZ3RoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gVmVjdG9yVHlwZS5PRkZTRVQpIHtcbiAgICAgICAgICAgICAgICBvZmZzZXRzID0gY3JlYXRlRGF0YVZpZXcoY2h1bmssIHR5cGUsIGJpdFdpZHRoLCBidWZmZXIub2Zmc2V0KCkubG93LCBidWZmZXJMZW5ndGgpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChub2RlLm51bGxDb3VudCgpLmxvdyA+IDApIHtcbiAgICAgICAgICAgICAgICB2YWxpZGl0eSA9IGNyZWF0ZVZhbGlkaXR5RGF0YVZpZXdzKGNodW5rLCB0eXBlLCBiaXRXaWR0aCwgYnVmZmVyLm9mZnNldCgpLmxvdywgbm9kZUxlbmd0aCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNyZWF0ZVZlY3RvcihmaWVsZCwgbm9kZUxlbmd0aCwgZGF0YSwgdmFsaWRpdHksIG9mZnNldHMsIGludGVnZXJGaWVsZFR5cGUsIGNodW5rLCBpdGVyYXRvciwgZGljdGlvbmFyaWVzKTtcbiAgICB9O1xufVxuXG5mdW5jdGlvbiBjcmVhdGVEYXRhVmlldyhcbiAgICBkYXRhVmlld3M6IFR5cGVkQXJyYXlDdG9yPGFueT5bXSwgb2Zmc2V0Vmlld3M6IFR5cGVkQXJyYXlDdG9yPGFueT5bXSB8IG51bGwsXG4gICAgYmF0Y2g6IE1lc3NhZ2VCYXRjaCwgdHlwZTogVmVjdG9yVHlwZSwgYml0V2lkdGg6IG51bWJlciwgb2Zmc2V0OiBudW1iZXIsIGxlbmd0aDogbnVtYmVyXG4pIHtcbiAgICBjb25zdCBidWZmZXIgPSBiYXRjaC5ieXRlcy5idWZmZXI7XG4gICAgY29uc3QgYnl0ZUxlbmd0aCA9IGJ1ZmZlci5ieXRlTGVuZ3RoO1xuICAgIGNvbnN0IGJ5dGVPZmZzZXQgPSBiYXRjaC5vZmZzZXQgKyBvZmZzZXQ7XG4gICAgY29uc3QgRGF0YVZpZXdUeXBlID0gdmFsdWVGb3JCaXRXaWR0aChiaXRXaWR0aCwgdHlwZSA9PT0gVmVjdG9yVHlwZS5PRkZTRVQgJiYgb2Zmc2V0Vmlld3MgfHwgZGF0YVZpZXdzKTtcbiAgICBjb25zdCBkYXRhVmlld0xlbmd0aCA9ICgoYnl0ZU9mZnNldCArIGxlbmd0aCkgPD0gYnl0ZUxlbmd0aFxuICAgICAgICA/IGxlbmd0aFxuICAgICAgICA6IGJ5dGVMZW5ndGggLSBieXRlT2Zmc2V0XG4gICAgKSAvIERhdGFWaWV3VHlwZVsnQllURVNfUEVSX0VMRU1FTlQnXTtcbiAgICByZXR1cm4gbmV3IERhdGFWaWV3VHlwZShidWZmZXIsIGJ5dGVPZmZzZXQsIGRhdGFWaWV3TGVuZ3RoKTtcbn1cblxuZnVuY3Rpb24gdmFsdWVGb3JCaXRXaWR0aChiaXRXaWR0aDogbnVtYmVyLCB2YWx1ZXM6IGFueVtdKSB7XG4gICAgcmV0dXJuIHZhbHVlc1tiaXRXaWR0aCA+PiA0XSB8fCB2YWx1ZXNbM107XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf8;base64,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R0FBRyxDQUFDLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLFVBQVU7VUFDckQsTUFBTTtVQUNOLFVBQVUsR0FBRyxVQUFVLENBQzVCLEdBQUcsWUFBWSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDdEMsTUFBTSxDQUFDLElBQUksWUFBWSxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxDQUFDLENBQUM7QUFDaEUsQ0FBQztBQUVELDBCQUEwQixRQUFnQixFQUFFLE1BQWE7SUFDckQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzlDLENBQUMiLCJmaWxlIjoicmVhZGVyL3ZlY3Rvci5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmVcbi8vIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZVxuLy8gZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb25cbi8vIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGVcbi8vIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGVcbi8vIFwiTGljZW5zZVwiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuLy8gd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuLy9cbi8vICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4vL1xuLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLFxuLy8gc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW5cbi8vIFwiQVMgSVNcIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZXG4vLyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGVcbi8vIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnNcbi8vIHVuZGVyIHRoZSBMaWNlbnNlLlxuXG5pbXBvcnQgeyBNZXNzYWdlQmF0Y2ggfSBmcm9tICcuL21lc3NhZ2UnO1xuaW1wb3J0IHsgVmVjdG9yIH0gZnJvbSAnLi4vdmVjdG9ycy92ZWN0b3InO1xuaW1wb3J0ICogYXMgU2NoZW1hXyBmcm9tICcuLi9mb3JtYXQvU2NoZW1hJztcbmltcG9ydCB7IFN0cnVjdFZlY3RvciB9IGZyb20gJy4uL3ZlY3RvcnMvc3RydWN0JztcbmltcG9ydCB7IEl0ZXJhdG9yU3RhdGUsIERpY3Rpb25hcmllcyB9IGZyb20gJy4vYXJyb3cnO1xuaW1wb3J0IHsgRGljdGlvbmFyeVZlY3RvciB9IGZyb20gJy4uL3ZlY3RvcnMvZGljdGlvbmFyeSc7XG5pbXBvcnQgeyBVdGY4VmVjdG9yLCBMaXN0VmVjdG9yLCBGaXhlZFNpemVMaXN0VmVjdG9yIH0gZnJvbSAnLi4vdmVjdG9ycy9saXN0JztcbmltcG9ydCB7XG4gICAgVHlwZWRBcnJheSwgVHlwZWRBcnJheUN0b3IsIEludEFycmF5LCBGbG9hdEFycmF5LFxuICAgIEludDhWZWN0b3IsIEludDE2VmVjdG9yLCBJbnQzMlZlY3RvciwgSW50NjRWZWN0b3IsXG4gICAgVWludDhWZWN0b3IsIFVpbnQxNlZlY3RvciwgVWludDMyVmVjdG9yLCBVaW50NjRWZWN0b3IsXG4gICAgRmxvYXQzMlZlY3RvciwgRmxvYXQ2NFZlY3RvciwgSW5kZXhWZWN0b3IsIERhdGVWZWN0b3IsXG59IGZyb20gJy4uL3ZlY3RvcnMvdHlwZWQnO1xuXG5pbXBvcnQgSW50ID0gU2NoZW1hXy5vcmcuYXBhY2hlLmFycm93LmZsYXRidWYuSW50O1xuaW1wb3J0IFR5cGUgPSBTY2hlbWFfLm9yZy5hcGFjaGUuYXJyb3cuZmxhdGJ1Zi5UeXBlO1xuaW1wb3J0IEZpZWxkID0gU2NoZW1hXy5vcmcuYXBhY2hlLmFycm93LmZsYXRidWYuRmllbGQ7XG5pbXBvcnQgUHJlY2lzaW9uID0gU2NoZW1hXy5vcmcuYXBhY2hlLmFycm93LmZsYXRidWYuUHJlY2lzaW9uO1xuaW1wb3J0IFZlY3RvclR5cGUgPSBTY2hlbWFfLm9yZy5hcGFjaGUuYXJyb3cuZmxhdGJ1Zi5WZWN0b3JUeXBlO1xuaW1wb3J0IEZpeGVkU2l6ZUxpc3QgPSBTY2hlbWFfLm9yZy5hcGFjaGUuYXJyb3cuZmxhdGJ1Zi5GaXhlZFNpemVMaXN0O1xuaW1wb3J0IEZsb2F0aW5nUG9pbnQgPSBTY2hlbWFfLm9yZy5hcGFjaGUuYXJyb3cuZmxhdGJ1Zi5GbG9hdGluZ1BvaW50O1xuaW1wb3J0IERpY3Rpb25hcnlFbmNvZGluZyA9IFNjaGVtYV8ub3JnLmFwYWNoZS5hcnJvdy5mbGF0YnVmLkRpY3Rpb25hcnlFbmNvZGluZztcblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRWZWN0b3IoZmllbGQ6IEZpZWxkLCBiYXRjaDogTWVzc2FnZUJhdGNoLCBzdGF0ZTogSXRlcmF0b3JTdGF0ZSwgZGljdGlvbmFyaWVzOiBEaWN0aW9uYXJpZXMpIHtcbiAgICByZXR1cm4gcmVhZERpY3Rpb25hcnlWZWN0b3IoZmllbGQsIGJhdGNoLCBzdGF0ZSwgZGljdGlvbmFyaWVzKSB8fFxuICAgICAgICAgICAgICAgIHJlYWRUeXBlZFZlY3RvcihmaWVsZCwgYmF0Y2gsIHN0YXRlLCBkaWN0aW9uYXJpZXMpO1xufVxuXG5mdW5jdGlvbiByZWFkVHlwZWRWZWN0b3IoZmllbGQ6IEZpZWxkLCBiYXRjaDogTWVzc2FnZUJhdGNoLCBpdGVyYXRvcjogSXRlcmF0b3JTdGF0ZSwgZGljdGlvbmFyaWVzOiBEaWN0aW9uYXJpZXMpIHtcbiAgICBsZXQgdHlwZVR5cGUgPSBmaWVsZC50eXBlVHlwZSgpLCByZWFkVHlwZWQgPSB0eXBlZFZlY3RvclJlYWRlcnNbdHlwZVR5cGVdO1xuICAgIGlmICghcmVhZFR5cGVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVW5yZWNvZ25pemVkIHZlY3RvciBuYW1lIFwiJyArIFR5cGVbdHlwZVR5cGVdICsgJ1wiIHR5cGUgXCInICsgdHlwZVR5cGUgKyAnXCInKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlYWRUeXBlZChmaWVsZCwgYmF0Y2gsIGl0ZXJhdG9yLCBkaWN0aW9uYXJpZXMpO1xufVxuXG5mdW5jdGlvbiByZWFkRGljdGlvbmFyeVZlY3RvcihmaWVsZDogRmllbGQsIGJhdGNoOiBNZXNzYWdlQmF0Y2gsIGl0ZXJhdG9yOiBJdGVyYXRvclN0YXRlLCBkaWN0aW9uYXJpZXM6IERpY3Rpb25hcmllcykge1xuICAgIGxldCBlbmNvZGluZzogRGljdGlvbmFyeUVuY29kaW5nO1xuICAgIGlmIChkaWN0aW9uYXJpZXMgJiYgKGVuY29kaW5nID0gZmllbGQuZGljdGlvbmFyeSgpKSkge1xuICAgICAgICBsZXQgaWQgPSBlbmNvZGluZy5pZCgpLnRvRmxvYXQ2NCgpLnRvU3RyaW5nKCk7XG4gICAgICAgIGxldCBpbmRleCA9IHJlYWRJbnRWZWN0b3IoZmllbGQsIGJhdGNoLCBpdGVyYXRvciwgbnVsbCxcbiAgICAgICAgICAgIC8qIGEgZGljdGlvbmFyeSBpbmRleCBkZWZhdWx0cyB0byBzaWduZWQgMzIgYml0IGludCBpZiB1bnNwZWNpZmllZCAqL1xuICAgICAgICAgICAgZW5jb2RpbmcuaW5kZXhUeXBlKCkgfHwgeyBiaXRXaWR0aDogKCkgPT4gMzIsIGlzU2lnbmVkOiAoKSA9PiB0cnVlIH0pO1xuICAgICAgICByZXR1cm4gRGljdGlvbmFyeVZlY3Rvci5jcmVhdGUoZmllbGQsIGluZGV4Lmxlbmd0aCwgaW5kZXgsIGRpY3Rpb25hcmllc1tpZF0pO1xuICAgIH1cbn1cblxuY29uc3QgSW50Vmlld3MgICAgPSBbSW50OEFycmF5LCAgICBJbnQxNkFycmF5LCAgIEludDMyQXJyYXksICAgSW50MzJBcnJheSAgXTtcbmNvbnN0IEludDMyVmlld3MgID0gW0ludDMyQXJyYXksICAgSW50MzJBcnJheSwgICBJbnQzMkFycmF5LCAgIEludDMyQXJyYXkgIF07XG5jb25zdCBVaW50Vmlld3MgICA9IFtVaW50OEFycmF5LCAgIFVpbnQxNkFycmF5LCAgVWludDMyQXJyYXksICBVaW50MzJBcnJheSBdO1xuY29uc3QgVWludDhWaWV3cyAgPSBbVWludDhBcnJheSwgICBVaW50OEFycmF5LCAgIFVpbnQ4QXJyYXksICAgVWludDhBcnJheSAgXTtcbmNvbnN0IFVpbnQzMlZpZXdzID0gW1VpbnQzMkFycmF5LCAgVWludDMyQXJyYXksICBVaW50MzJBcnJheSwgIFVpbnQzMkFycmF5IF07XG5jb25zdCBGbG9hdFZpZXdzICA9IFtJbnQ4QXJyYXksICAgIEludDE2QXJyYXksICAgRmxvYXQzMkFycmF5LCBGbG9hdDY0QXJyYXldO1xuXG5jb25zdCBjcmVhdGVJbnREYXRhVmlld3MgPSBjcmVhdGVEYXRhVmlldy5iaW5kKG51bGwsIEludFZpZXdzLCBudWxsKTtcbmNvbnN0IGNyZWF0ZVVpbnREYXRhVmlld3MgPSBjcmVhdGVEYXRhVmlldy5iaW5kKG51bGwsIFVpbnRWaWV3cywgbnVsbCk7XG5jb25zdCBjcmVhdGVEYXRlRGF0YVZpZXdzID0gY3JlYXRlRGF0YVZpZXcuYmluZChudWxsLCBVaW50MzJWaWV3cywgbnVsbCk7XG5jb25zdCBjcmVhdGVGbG9hdERhdGFWaWV3cyA9IGNyZWF0ZURhdGFWaWV3LmJpbmQobnVsbCwgRmxvYXRWaWV3cywgbnVsbCk7XG5jb25zdCBjcmVhdGVOZXN0ZWREYXRhVmlld3MgPSBjcmVhdGVEYXRhVmlldy5iaW5kKG51bGwsIFVpbnQzMlZpZXdzLCBudWxsKTtcbmNvbnN0IGNyZWF0ZVZhbGlkaXR5RGF0YVZpZXdzID0gY3JlYXRlRGF0YVZpZXcuYmluZChudWxsLCBVaW50OFZpZXdzLCBudWxsKTtcbmNvbnN0IGNyZWF0ZVV0ZjhEYXRhVmlld3MgPSBjcmVhdGVEYXRhVmlldy5iaW5kKG51bGwsIFVpbnQ4Vmlld3MsIEludDMyVmlld3MpO1xuXG5jb25zdCBmbG9hdFZlY3RvcnMgPSB7XG4gICAgW1ByZWNpc2lvbi5TSU5HTEVdOiBGbG9hdDMyVmVjdG9yLFxuICAgIFtQcmVjaXNpb24uRE9VQkxFXTogRmxvYXQ2NFZlY3RvclxufTtcbmNvbnN0IGludFZlY3RvcnMgPSBbXG4gICAgWy8qIHVuc2lnbmVkICovIFVpbnQ4VmVjdG9yLCAgIC8qIHNpZ25lZCAqLyBJbnQ4VmVjdG9yIF0sXG4gICAgWy8qIHVuc2lnbmVkICovIFVpbnQxNlZlY3RvciwgIC8qIHNpZ25lZCAqLyBJbnQxNlZlY3Rvcl0sXG4gICAgWy8qIHVuc2lnbmVkICovIFVpbnQzMlZlY3RvciwgIC8qIHNpZ25lZCAqLyBJbnQzMlZlY3Rvcl0sXG4gICAgWy8qIHVuc2lnbmVkICovIFVpbnQ2NFZlY3RvciwgIC8qIHNpZ25lZCAqLyBJbnQ2NFZlY3Rvcl1cbl07XG5cbmZ1bmN0aW9uIHJlYWRJbnRWZWN0b3IoZmllbGQ6IEZpZWxkLCBiYXRjaDogTWVzc2FnZUJhdGNoLCBpdGVyYXRvcjogSXRlcmF0b3JTdGF0ZSwgZGljdGlvbmFyaWVzOiBEaWN0aW9uYXJpZXMsIGZpZWxkVHlwZT86IEZpZWxkVHlwZSkge1xuICAgIGxldCB0eXBlID0gKGZpZWxkVHlwZSB8fCBmaWVsZC50eXBlKG5ldyBJbnQoKSkpO1xuICAgIHJldHVybiB0eXBlLmlzU2lnbmVkKCkgP1xuICAgICAgICByZWFkX0ludFZlY3RvcihmaWVsZCwgYmF0Y2gsIGl0ZXJhdG9yLCBkaWN0aW9uYXJpZXMsIHR5cGUpIDpcbiAgICAgICAgcmVhZFVpbnRWZWN0b3IoZmllbGQsIGJhdGNoLCBpdGVyYXRvciwgZGljdGlvbmFyaWVzLCB0eXBlKTtcbn1cblxuY29uc3QgcmVhZF9JbnRWZWN0b3IgPSByZWFkVmVjdG9yTGF5b3V0PG51bWJlciwgSW50QXJyYXk+KGNyZWF0ZUludERhdGFWaWV3cywgY3JlYXRlSW50VmVjdG9yKTtcbmNvbnN0IHJlYWRVaW50VmVjdG9yID0gcmVhZFZlY3RvckxheW91dDxudW1iZXIsIEludEFycmF5PihjcmVhdGVVaW50RGF0YVZpZXdzLCBjcmVhdGVJbnRWZWN0b3IpO1xuZnVuY3Rpb24gY3JlYXRlSW50VmVjdG9yKGZpZWxkLCBsZW5ndGgsIGRhdGEsIHZhbGlkaXR5LCBvZmZzZXRzLCBmaWVsZFR5cGUsIGJhdGNoLCBpdGVyYXRvciwgZGljdGlvbmFyaWVzKSB7XG4gICAgbGV0IHR5cGUgPSBmaWVsZFR5cGUgfHwgZmllbGQudHlwZShuZXcgSW50KCkpLCBiaXRXaWR0aCA9IHR5cGUuYml0V2lkdGgoKTtcbiAgICBsZXQgVmVjdG9yID0gdmFsdWVGb3JCaXRXaWR0aChiaXRXaWR0aCwgaW50VmVjdG9ycylbK3R5cGUuaXNTaWduZWQoKV07XG4gICAgcmV0dXJuIFZlY3Rvci5jcmVhdGUoZmllbGQsIGxlbmd0aCwgdmFsaWRpdHksIGRhdGEgfHwgb2Zmc2V0cyk7XG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBzbyB0aGlzIGlzIGtpbmRhIHN0cmFuZ2Ug8J+RhjpcbiAgICAvLyBUaGUgZGljdGlvbmFyeSBlbmNvZGVkIHZlY3RvcnMgSSBnZW5lcmF0ZWQgZnJvbSBzYW1wbGUgbWFwZC1jb3JlIHF1ZXJpZXMgaGF2ZSB0aGUgaW5kaWNpZXMnIGRhdGEgYnVmZmVyc1xuICAgIC8vIHRhZ2dlZCBhcyBWZWN0b3JUeXBlLk9GRlNFVCAoMCkgaW4gdGhlIGZpZWxkIG1ldGFkYXRhLiBUaGUgY3VycmVudCBUUyBpbXBsIGlnbm9yZXMgYnVmZmVycycgbGF5b3V0IHR5cGUsXG4gICAgLy8gYW5kIGFzc3VtZXMgdGhlIHNlY29uZCBidWZmZXIgaXMgdGhlIGRhdGEgZm9yIGEgTnVsbGFibGVJbnRWZWN0b3IuIFNpbmNlIHdlJ3ZlIGJlZW4gc3RyaWN0ZXIgYWJvdXQgZW5mb3JjaW5nXG4gICAgLy8gdGhlIEFycm93IHNwZWMgd2hpbGUgcGFyc2luZywgdGhlIEludFZlY3RvcidzIGRhdGEgYnVmZmVyIHJlYWRzIGVtcHR5IGluIHRoaXMgY2FzZS4gSWYgc28sIGZhbGxiYWNrIHRvIHVzaW5nXG4gICAgLy8gdGhlIG9mZnNldHMgYnVmZmVyIGFzIHRoZSBkYXRhLCBzaW5jZSBJbnRWZWN0b3JzIGRvbid0IGhhdmUgb2Zmc2V0cy5cbn1cblxuY29uc3QgcmVhZEZsb2F0VmVjdG9yID0gcmVhZFZlY3RvckxheW91dDxudW1iZXIsIEZsb2F0QXJyYXk+KFxuICAgIGNyZWF0ZUZsb2F0RGF0YVZpZXdzLFxuICAgIChmaWVsZCwgbGVuZ3RoLCBkYXRhLCB2YWxpZGl0eSwgb2Zmc2V0cywgZmllbGRUeXBlLCBiYXRjaCwgaXRlcmF0b3IsIGRpY3Rpb25hcmllcykgPT4ge1xuICAgICAgICBsZXQgdHlwZSA9IGZpZWxkLnR5cGUobmV3IEZsb2F0aW5nUG9pbnQoKSk7XG4gICAgICAgIGxldCBWZWN0b3IgPSBmbG9hdFZlY3RvcnNbdHlwZS5wcmVjaXNpb24oKV07XG4gICAgICAgIHJldHVybiBWZWN0b3IuY3JlYXRlKGZpZWxkLCBsZW5ndGgsIHZhbGlkaXR5LCBkYXRhKTtcbiAgICB9XG4pO1xuXG5jb25zdCByZWFkRGF0ZVZlY3RvciA9IHJlYWRWZWN0b3JMYXlvdXQ8RGF0ZSwgVWludDMyQXJyYXk+KFxuICAgIGNyZWF0ZURhdGVEYXRhVmlld3MsXG4gICAgKGZpZWxkLCBsZW5ndGgsIGRhdGEsIHZhbGlkaXR5LCBvZmZzZXRzLCBmaWVsZFR5cGUsIGJhdGNoLCBpdGVyYXRvciwgZGljdGlvbmFyaWVzKSA9PiB7XG4gICAgICAgIHJldHVybiBEYXRlVmVjdG9yLmNyZWF0ZShmaWVsZCwgbGVuZ3RoLCB2YWxpZGl0eSwgZGF0YSk7XG4gICAgfVxuKTtcblxuY29uc3QgcmVhZFV0ZjhWZWN0b3IgPSByZWFkVmVjdG9yTGF5b3V0PHN0cmluZywgVWludDhBcnJheT4oXG4gICAgY3JlYXRlVXRmOERhdGFWaWV3cyxcbiAgICAoZmllbGQsIGxlbmd0aCwgZGF0YSwgdmFsaWRpdHksIG9mZnNldHMsIGZpZWxkVHlwZSwgYmF0Y2gsIGl0ZXJhdG9yLCBkaWN0aW9uYXJpZXMpID0+IHtcbiAgICAgICAgbGV0IG9mZnNldHNBZGp1c3RlZCA9IG5ldyBJbnQzMkFycmF5KG9mZnNldHMuYnVmZmVyLCBvZmZzZXRzLmJ5dGVPZmZzZXQsIGxlbmd0aCArIDEpO1xuICAgICAgICByZXR1cm4gVXRmOFZlY3Rvci5jcmVhdGUoXG4gICAgICAgICAgICBmaWVsZCwgbGVuZ3RoLCB2YWxpZGl0eSxcbiAgICAgICAgICAgIFVpbnQ4VmVjdG9yLmNyZWF0ZShmaWVsZCwgZGF0YS5sZW5ndGgsIG51bGwsIGRhdGEpLFxuICAgICAgICAgICAgSW5kZXhWZWN0b3IuY3JlYXRlKGZpZWxkLCBsZW5ndGggKyAxLCBudWxsLCBvZmZzZXRzQWRqdXN0ZWQpXG4gICAgICAgICk7XG4gICAgfVxuKTtcblxuY29uc3QgcmVhZExpc3RWZWN0b3IgPSByZWFkVmVjdG9yTGF5b3V0PGFueVtdLCBVaW50MzJBcnJheT4oXG4gICAgY3JlYXRlTmVzdGVkRGF0YVZpZXdzLFxuICAgIChmaWVsZCwgbGVuZ3RoLCBkYXRhLCB2YWxpZGl0eSwgb2Zmc2V0cywgZmllbGRUeXBlLCBiYXRjaCwgaXRlcmF0b3IsIGRpY3Rpb25hcmllcykgPT4ge1xuICAgICAgICBsZXQgb2Zmc2V0c0FkanVzdGVkID0gbmV3IEludDMyQXJyYXkob2Zmc2V0cy5idWZmZXIsIG9mZnNldHMuYnl0ZU9mZnNldCwgbGVuZ3RoICsgMSk7XG4gICAgICAgIHJldHVybiBMaXN0VmVjdG9yLmNyZWF0ZShcbiAgICAgICAgICAgIGZpZWxkLCBsZW5ndGgsIHZhbGlkaXR5LFxuICAgICAgICAgICAgcmVhZFZlY3RvcihmaWVsZC5jaGlsZHJlbigwKSwgYmF0Y2gsIGl0ZXJhdG9yLCBkaWN0aW9uYXJpZXMpLFxuICAgICAgICAgICAgSW5kZXhWZWN0b3IuY3JlYXRlKGZpZWxkLCBsZW5ndGggKyAxLCBudWxsLCBvZmZzZXRzQWRqdXN0ZWQpXG4gICAgICAgICk7XG4gICAgfVxuKTtcblxuY29uc3QgcmVhZEZpeGVkU2l6ZUxpc3RWZWN0b3IgPSByZWFkVmVjdG9yTGF5b3V0PGFueVtdLCBVaW50MzJBcnJheT4oXG4gICAgY3JlYXRlTmVzdGVkRGF0YVZpZXdzLFxuICAgIChmaWVsZCwgbGVuZ3RoLCBkYXRhLCB2YWxpZGl0eSwgb2Zmc2V0cywgZmllbGRUeXBlLCBiYXRjaCwgaXRlcmF0b3IsIGRpY3Rpb25hcmllcykgPT4ge1xuICAgICAgICBsZXQgc2l6ZSA9IGZpZWxkLnR5cGUobmV3IEZpeGVkU2l6ZUxpc3QoKSkubGlzdFNpemUoKTtcbiAgICAgICAgcmV0dXJuIEZpeGVkU2l6ZUxpc3RWZWN0b3IuY3JlYXRlKFxuICAgICAgICAgICAgZmllbGQsIGxlbmd0aCwgc2l6ZSwgdmFsaWRpdHksXG4gICAgICAgICAgICByZWFkVmVjdG9yKGZpZWxkLmNoaWxkcmVuKDApLCBiYXRjaCwgaXRlcmF0b3IsIGRpY3Rpb25hcmllcylcbiAgICAgICAgKTtcbiAgICB9XG4pO1xuXG5jb25zdCByZWFkU3RydWN0VmVjdG9yID0gcmVhZFZlY3RvckxheW91dDxhbnlbXSwgQXJyYXlMaWtlPGFueT4+KFxuICAgIGNyZWF0ZU5lc3RlZERhdGFWaWV3cyxcbiAgICAoZmllbGQsIGxlbmd0aCwgZGF0YSwgdmFsaWRpdHksIG9mZnNldHMsIGZpZWxkVHlwZSwgYmF0Y2gsIGl0ZXJhdG9yLCBkaWN0aW9uYXJpZXMpID0+IHtcbiAgICAgICAgbGV0IHZlY3RvcnM6IFZlY3Rvcjxhbnk+W10gPSBbXTtcbiAgICAgICAgaXRlcmF0b3IuYnVmZmVySW5kZXggLT0gZmllbGQubnVsbGFibGUoKSA/IDAgOiBmaWVsZC5sYXlvdXRMZW5ndGgoKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IC0xLCBuID0gZmllbGQuY2hpbGRyZW5MZW5ndGgoKTsgKytpIDwgbjspIHtcbiAgICAgICAgICAgIHZlY3RvcnNbaV0gPSByZWFkVmVjdG9yKGZpZWxkLmNoaWxkcmVuKGkpLCBiYXRjaCwgaXRlcmF0b3IsIGRpY3Rpb25hcmllcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFN0cnVjdFZlY3Rvci5jcmVhdGUoZmllbGQsIGxlbmd0aCwgdmFsaWRpdHksIC4uLnZlY3RvcnMpO1xuICAgIH1cbik7XG5cbmNvbnN0IHR5cGVkVmVjdG9yUmVhZGVycyA9IHtcbiAgICBbVHlwZS5JbnRdOiByZWFkSW50VmVjdG9yLFxuICAgIFtUeXBlLkRhdGVdOiByZWFkRGF0ZVZlY3RvcixcbiAgICBbVHlwZS5MaXN0XTogcmVhZExpc3RWZWN0b3IsXG4gICAgW1R5cGUuVXRmOF06IHJlYWRVdGY4VmVjdG9yLFxuICAgIFtUeXBlLlN0cnVjdF9dOiByZWFkU3RydWN0VmVjdG9yLFxuICAgIFtUeXBlLkZsb2F0aW5nUG9pbnRdOiByZWFkRmxvYXRWZWN0b3IsXG4gICAgW1R5cGUuRml4ZWRTaXplTGlzdF06IHJlYWRGaXhlZFNpemVMaXN0VmVjdG9yLFxufTtcblxudHlwZSBGaWVsZFR5cGUgPSB7IGJpdFdpZHRoKCk6IG51bWJlcjsgaXNTaWduZWQoKTogYm9vbGVhbiB9O1xudHlwZSBkYXRhVmlld0ZhY3Rvcnk8ViA9IFR5cGVkQXJyYXk+ID0gKGJhdGNoOiBNZXNzYWdlQmF0Y2gsIHR5cGU6IFZlY3RvclR5cGUsIGJpdFdpZHRoOiBudW1iZXIsIG9mZnNldDogbnVtYmVyLCBsZW5ndGg6IG51bWJlcikgPT4gVjtcbnR5cGUgdmVjdG9yRmFjdG9yeTxUTGlzdCwgViA9IFZlY3Rvcjxhbnk+PiA9IChmaWVsZDogRmllbGQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoOiBudW1iZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogVExpc3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbHM6IFVpbnQ4QXJyYXksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0czogVHlwZWRBcnJheSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZFR5cGU6IEZpZWxkVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaHVuazogTWVzc2FnZUJhdGNoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZXJhYmxlOiBJdGVyYXRvclN0YXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpY3Rpb25hcmllczogRGljdGlvbmFyaWVzKSA9PiBWO1xuXG5mdW5jdGlvbiByZWFkVmVjdG9yTGF5b3V0PFQsIFRMaXN0PihjcmVhdGVEYXRhVmlldzogZGF0YVZpZXdGYWN0b3J5PFRMaXN0PiwgY3JlYXRlVmVjdG9yOiB2ZWN0b3JGYWN0b3J5PFRMaXN0LCBWZWN0b3I8VD4+KSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIHJlYWRMYXlvdXQoXG4gICAgICAgICAgICBmaWVsZDogRmllbGQsXG4gICAgICAgICAgICBjaHVuazogTWVzc2FnZUJhdGNoLFxuICAgICAgICAgICAgaXRlcmF0b3I6IEl0ZXJhdG9yU3RhdGUsXG4gICAgICAgICAgICBkaWN0aW9uYXJpZXM6IERpY3Rpb25hcmllcyxcbiAgICAgICAgICAgIGludGVnZXJGaWVsZFR5cGU/OiBGaWVsZFR5cGVcbiAgICApIHtcbiAgICAgICAgbGV0IGJhdGNoID0gY2h1bmsuZGF0YTtcbiAgICAgICAgbGV0IGxheW91dExlbmd0aCA9IGZpZWxkLmxheW91dExlbmd0aCgpO1xuICAgICAgICBsZXQgbm9kZSA9IGJhdGNoLm5vZGVzKGl0ZXJhdG9yLm5vZGVJbmRleCsrKTtcbiAgICAgICAgbGV0IGRhdGE6IFRMaXN0LCBvZmZzZXRzOiBhbnksIHZhbGlkaXR5OiBVaW50OEFycmF5O1xuICAgICAgICBsZXQgdHlwZSwgYml0V2lkdGgsIGJ1ZmZlckxlbmd0aCwgbm9kZUxlbmd0aCA9IG5vZGUubGVuZ3RoKCkubG93O1xuICAgICAgICBmb3IgKGxldCBpID0gLTE7ICsraSA8IGxheW91dExlbmd0aDspIHtcbiAgICAgICAgICAgIGxldCBsYXlvdXQgPSBmaWVsZC5sYXlvdXQoaSk7XG4gICAgICAgICAgICBsZXQgYnVmZmVyID0gYmF0Y2guYnVmZmVycyhpdGVyYXRvci5idWZmZXJJbmRleCsrKTtcbiAgICAgICAgICAgIGlmICgodHlwZSA9IGxheW91dC50eXBlKCkpID09PSBWZWN0b3JUeXBlLlRZUEUgfHxcbiAgICAgICAgICAgICAgICAoYnVmZmVyTGVuZ3RoID0gYnVmZmVyLmxlbmd0aCgpLmxvdykgPD0gMCAgfHxcbiAgICAgICAgICAgICAgICAoYml0V2lkdGggPSBsYXlvdXQuYml0V2lkdGgoKSkgPD0gMCkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSBWZWN0b3JUeXBlLkRBVEEpIHtcbiAgICAgICAgICAgICAgICBkYXRhID0gY3JlYXRlRGF0YVZpZXcoY2h1bmssIHR5cGUsIGJpdFdpZHRoLCBidWZmZXIub2Zmc2V0KCkubG93LCBidWZmZXJMZW5ndGgpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSBWZWN0b3JUeXBlLk9GRlNFVCkge1xuICAgICAgICAgICAgICAgIG9mZnNldHMgPSBjcmVhdGVEYXRhVmlldyhjaHVuaywgdHlwZSwgYml0V2lkdGgsIGJ1ZmZlci5vZmZzZXQoKS5sb3csIGJ1ZmZlckxlbmd0aCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG5vZGUubnVsbENvdW50KCkubG93ID4gMCkge1xuICAgICAgICAgICAgICAgIHZhbGlkaXR5ID0gY3JlYXRlVmFsaWRpdHlEYXRhVmlld3MoY2h1bmssIHR5cGUsIGJpdFdpZHRoLCBidWZmZXIub2Zmc2V0KCkubG93LCBub2RlTGVuZ3RoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY3JlYXRlVmVjdG9yKGZpZWxkLCBub2RlTGVuZ3RoLCBkYXRhLCB2YWxpZGl0eSwgb2Zmc2V0cywgaW50ZWdlckZpZWxkVHlwZSwgY2h1bmssIGl0ZXJhdG9yLCBkaWN0aW9uYXJpZXMpO1xuICAgIH07XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZURhdGFWaWV3KFxuICAgIGRhdGFWaWV3czogVHlwZWRBcnJheUN0b3I8YW55PltdLCBvZmZzZXRWaWV3czogVHlwZWRBcnJheUN0b3I8YW55PltdIHwgbnVsbCxcbiAgICBiYXRjaDogTWVzc2FnZUJhdGNoLCB0eXBlOiBWZWN0b3JUeXBlLCBiaXRXaWR0aDogbnVtYmVyLCBvZmZzZXQ6IG51bWJlciwgbGVuZ3RoOiBudW1iZXJcbikge1xuICAgIGNvbnN0IGJ1ZmZlciA9IGJhdGNoLmJ5dGVzLmJ1ZmZlcjtcbiAgICBjb25zdCBieXRlTGVuZ3RoID0gYnVmZmVyLmJ5dGVMZW5ndGg7XG4gICAgY29uc3QgYnl0ZU9mZnNldCA9IGJhdGNoLm9mZnNldCArIG9mZnNldDtcbiAgICBjb25zdCBEYXRhVmlld1R5cGUgPSB2YWx1ZUZvckJpdFdpZHRoKGJpdFdpZHRoLCB0eXBlID09PSBWZWN0b3JUeXBlLk9GRlNFVCAmJiBvZmZzZXRWaWV3cyB8fCBkYXRhVmlld3MpO1xuICAgIGNvbnN0IGRhdGFWaWV3TGVuZ3RoID0gKChieXRlT2Zmc2V0ICsgbGVuZ3RoKSA8PSBieXRlTGVuZ3RoXG4gICAgICAgID8gbGVuZ3RoXG4gICAgICAgIDogYnl0ZUxlbmd0aCAtIGJ5dGVPZmZzZXRcbiAgICApIC8gRGF0YVZpZXdUeXBlWydCWVRFU19QRVJfRUxFTUVOVCddO1xuICAgIHJldHVybiBuZXcgRGF0YVZpZXdUeXBlKGJ1ZmZlciwgYnl0ZU9mZnNldCwgZGF0YVZpZXdMZW5ndGgpO1xufVxuXG5mdW5jdGlvbiB2YWx1ZUZvckJpdFdpZHRoKGJpdFdpZHRoOiBudW1iZXIsIHZhbHVlczogYW55W10pIHtcbiAgICByZXR1cm4gdmFsdWVzW2JpdFdpZHRoID4+IDRdIHx8IHZhbHVlc1szXTtcbn1cbiJdfQ==

@@ -0,1 +1,17 @@

// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
Object.defineProperty(exports, "__esModule", { value: true });

@@ -183,2 +199,2 @@ var tslib_1 = require("tslib");

//# sourceMappingURL=data:application/json;charset=utf8;base64,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QUFHLEVBQXZELENBQXVELEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDNUksQ0FBQyIsImZpbGUiOiJ0YWJsZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlYWRCdWZmZXJzIH0gZnJvbSAnLi9yZWFkZXIvYXJyb3cnO1xuaW1wb3J0IHsgVmVjdG9yLCBzbGljZVRvUmFuZ2VBcmdzIH0gZnJvbSAnLi92ZWN0b3JzL3ZlY3Rvcic7XG5cbmV4cG9ydCBjbGFzcyBUYWJsZSBpbXBsZW1lbnRzIEl0ZXJhYmxlPE1hcDxzdHJpbmcsIGFueT4+IHtcbiAgICBwdWJsaWMgbGVuZ3RoOiBudW1iZXI7XG4gICAgcHJvdGVjdGVkIF9jb2x1bW5zOiBWZWN0b3I8YW55PltdO1xuICAgIHByb3RlY3RlZCBfY29sdW1uc01hcDogeyBbazogc3RyaW5nXTogVmVjdG9yPGFueT4gfTtcbiAgICBzdGF0aWMgZnJvbSguLi5ieXRlczogQXJyYXk8VWludDhBcnJheSB8IEJ1ZmZlciB8IHN0cmluZz4pIHtcbiAgICAgICAgbGV0IGNvbHVtbnM6IFZlY3Rvcjxhbnk+W107XG4gICAgICAgIGZvciAobGV0IHZlY3RvcnMgb2YgcmVhZEJ1ZmZlcnMoLi4uYnl0ZXMpKSB7XG4gICAgICAgICAgICBjb2x1bW5zID0gIWNvbHVtbnMgPyB2ZWN0b3JzIDogY29sdW1ucy5tYXAoKHYsIGkpID0+IHYuY29uY2F0KHZlY3RvcnNbaV0pKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IFRhYmxlKGNvbHVtbnMpO1xuICAgIH1cbiAgICBjb25zdHJ1Y3Rvcihjb2x1bW5zOiBWZWN0b3I8YW55PltdKSB7XG4gICAgICAgIHRoaXMuX2NvbHVtbnMgPSBjb2x1bW5zIHx8IFtdO1xuICAgICAgICB0aGlzLmxlbmd0aCA9IE1hdGgubWF4KC4uLnRoaXMuX2NvbHVtbnMubWFwKCh2KSA9PiB2Lmxlbmd0aCkpO1xuICAgICAgICB0aGlzLl9jb2x1bW5zTWFwID0gdGhpcy5fY29sdW1ucy5yZWR1Y2UoKG1hcCwgdmVjKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gKG1hcFt2ZWMubmFtZV0gPSB2ZWMpICYmIG1hcCB8fCBtYXA7XG4gICAgICAgIH0sIDxhbnk+IHt9KTtcbiAgICB9XG4gICAgKltTeW1ib2wuaXRlcmF0b3JdKCkge1xuICAgICAgICBmb3IgKGxldCBjb2xzID0gdGhpcy5fY29sdW1ucywgaSA9IC0xLCBuID0gdGhpcy5sZW5ndGg7ICsraSA8IG47KSB7XG4gICAgICAgICAgICB5aWVsZCByb3dBc01hcChpLCBjb2xzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAqcm93cyhzdGFydFJvdz86IG51bWJlciB8IGJvb2xlYW4sIGVuZFJvdz86IG51bWJlciB8IGJvb2xlYW4sIGNvbXBhY3Q/OiBib29sZWFuKSB7XG4gICAgICAgIGxldCBzdGFydCA9IHN0YXJ0Um93IGFzIG51bWJlciwgZW5kID0gZW5kUm93IGFzIG51bWJlcjtcbiAgICAgICAgaWYgKHR5cGVvZiBzdGFydFJvdyA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgICBjb21wYWN0ID0gc3RhcnRSb3c7XG4gICAgICAgICAgICBzdGFydCA9IGVuZDtcbiAgICAgICAgICAgIGVuZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZW5kUm93ID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgIGNvbXBhY3QgPSBlbmRSb3c7XG4gICAgICAgICAgICBlbmQgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHJvd0luZGV4ID0gLTEsIHsgbGVuZ3RoIH0gPSB0aGlzO1xuICAgICAgICBjb25zdCBbcm93T2Zmc2V0LCByb3dzVG90YWxdID0gc2xpY2VUb1JhbmdlQXJncyhsZW5ndGgsIHN0YXJ0LCBlbmQpO1xuICAgICAgICB3aGlsZSAoKytyb3dJbmRleCA8IHJvd3NUb3RhbCkge1xuICAgICAgICAgICAgeWllbGQgdGhpcy5nZXRSb3coKHJvd0luZGV4ICsgcm93T2Zmc2V0KSAlIGxlbmd0aCwgY29tcGFjdCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgKmNvbHMoc3RhcnRDb2w/OiBudW1iZXIsIGVuZENvbD86IG51bWJlcikge1xuICAgICAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiB0aGlzLl9jb2x1bW5zLnNsaWNlKHN0YXJ0Q29sLCBlbmRDb2wpKSB7XG4gICAgICAgICAgICB5aWVsZCBjb2x1bW47XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0Um93KHJvd0luZGV4OiBudW1iZXIsIGNvbXBhY3Q/OiBib29sZWFuKSB7XG4gICAgICAgIHJldHVybiAoY29tcGFjdCAmJiByb3dBc0FycmF5IHx8IHJvd0FzT2JqZWN0KShyb3dJbmRleCwgdGhpcy5fY29sdW1ucyk7XG4gICAgfVxuICAgIGdldENlbGwoY29sdW1uTmFtZTogc3RyaW5nLCByb3dJbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldENvbHVtbihjb2x1bW5OYW1lKS5nZXQocm93SW5kZXgpO1xuICAgIH1cbiAgICBnZXRDZWxsQXQoY29sdW1uSW5kZXg6IG51bWJlciwgcm93SW5kZXg6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRDb2x1bW5BdChjb2x1bW5JbmRleCkuZ2V0KHJvd0luZGV4KTtcbiAgICB9XG4gICAgZ2V0Q29sdW1uPFQgPSBhbnk+KGNvbHVtbk5hbWU6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29sdW1uc01hcFtjb2x1bW5OYW1lXSBhcyBWZWN0b3I8VD47XG4gICAgfVxuICAgIGdldENvbHVtbkF0PFQgPSBhbnk+KGNvbHVtbkluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbHVtbnNbY29sdW1uSW5kZXhdIGFzIFZlY3RvcjxUPjtcbiAgICB9XG4gICAgdG9TdHJpbmcoeyBpbmRleCA9IGZhbHNlIH0gPSB7fSkge1xuICAgICAgICBjb25zdCB7IGxlbmd0aCB9ID0gdGhpcztcbiAgICAgICAgaWYgKGxlbmd0aCA8PSAwKSB7IHJldHVybiAnJzsgfVxuICAgICAgICBjb25zdCBtYXhDb2x1bW5XaWR0aHMgPSBbXTtcbiAgICAgICAgY29uc3Qgcm93cyA9IG5ldyBBcnJheShsZW5ndGggKyAxKTtcbiAgICAgICAgcm93c1swXSA9IHRoaXMuX2NvbHVtbnMubWFwKChjKSA9PiBjLm5hbWUpO1xuICAgICAgICBpbmRleCAmJiByb3dzWzBdLnVuc2hpZnQoJ0luZGV4Jyk7XG4gICAgICAgIGZvciAobGV0IGkgPSAtMSwgbiA9IHJvd3MubGVuZ3RoIC0gMTsgKytpIDwgbjspIHtcbiAgICAgICAgICAgIHJvd3NbaSArIDFdID0gdGhpcy5nZXRSb3coaSwgdHJ1ZSk7XG4gICAgICAgICAgICBpbmRleCAmJiByb3dzW2kgKyAxXS51bnNoaWZ0KGkpO1xuICAgICAgICB9XG4gICAgICAgIC8vIFBhc3Mgb25lIHRvIGNvbnZlcnQgdG8gc3RyaW5ncyBhbmQgY291bnQgbWF4IGNvbHVtbiB3aWR0aHNcbiAgICAgICAgZm9yIChsZXQgaSA9IC0xLCBuID0gcm93cy5sZW5ndGg7ICsraSA8IG47KSB7XG4gICAgICAgICAgICBjb25zdCByb3cgPSByb3dzW2ldO1xuICAgICAgICAgICAgZm9yIChsZXQgaiA9IC0xLCBrID0gcm93Lmxlbmd0aDsgKytqIDwgazspIHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWwgPSByb3dbal0gPSBgJHtyb3dbal19YDtcbiAgICAgICAgICAgICAgICBtYXhDb2x1bW5XaWR0aHNbal0gPSAhbWF4Q29sdW1uV2lkdGhzW2pdXG4gICAgICAgICAgICAgICAgICAgID8gdmFsLmxlbmd0aFxuICAgICAgICAgICAgICAgICAgICA6IE1hdGgubWF4KG1heENvbHVtbldpZHRoc1tqXSwgdmFsLmxlbmd0aCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gUGFzcyB0d28gdG8gcGFkIGVhY2ggb25lIHRvIG1heCBjb2x1bW4gd2lkdGhcbiAgICAgICAgZm9yIChsZXQgaSA9IC0xLCBuID0gcm93cy5sZW5ndGg7ICsraSA8IG47KSB7XG4gICAgICAgICAgICBjb25zdCByb3cgPSByb3dzW2ldO1xuICAgICAgICAgICAgZm9yIChsZXQgaiA9IC0xLCBrID0gcm93Lmxlbmd0aDsgKytqIDwgazspIHtcbiAgICAgICAgICAgICAgICByb3dbal0gPSBsZWZ0UGFkKHJvd1tqXSwgJyAnLCBtYXhDb2x1bW5XaWR0aHNbal0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcm93c1tpXSA9IHJvdy5qb2luKCcsICcpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByb3dzLmpvaW4oJ1xcbicpO1xuICAgIH1cbn1cblxuVGFibGUucHJvdG90eXBlLmxlbmd0aCA9IDA7XG5cbmZ1bmN0aW9uIGxlZnRQYWQoc3RyLCBmaWxsLCBuKSB7XG4gICAgcmV0dXJuIChuZXcgQXJyYXkobiArIDEpLmpvaW4oZmlsbCkgKyBzdHIpLnNsaWNlKC0xICogbik7XG59XG5cbmZ1bmN0aW9uIHJvd0FzTWFwKHJvdzogbnVtYmVyLCBjb2x1bW5zOiBWZWN0b3I8YW55PltdKSB7XG4gICAgcmV0dXJuIGNvbHVtbnMucmVkdWNlKChtYXAsIHZlY3RvcikgPT4gbWFwLnNldCh2ZWN0b3IubmFtZSwgdmVjdG9yLmdldChyb3cpKSwgbmV3IE1hcCgpKTtcbn1cblxuZnVuY3Rpb24gcm93QXNPYmplY3Qocm93SW5kZXg6IG51bWJlciwgY29sdW1uczogVmVjdG9yPGFueT5bXSkge1xuICAgIHJldHVybiBjb2x1bW5zLnJlZHVjZSgocm93LCB2ZWN0b3IpID0+IChyb3dbdmVjdG9yLm5hbWVdID0gdmVjdG9yLmdldChyb3dJbmRleCkpICYmIHJvdyB8fCByb3csIE9iamVjdC5jcmVhdGUobnVsbCkpO1xufVxuXG5mdW5jdGlvbiByb3dBc0FycmF5KHJvd0luZGV4OiBudW1iZXIsIGNvbHVtbnM6IFZlY3Rvcjxhbnk+W10pIHtcbiAgICByZXR1cm4gY29sdW1ucy5yZWR1Y2UoKHJvdywgdmVjdG9yLCBjb2x1bW5JbmRleCkgPT4gKHJvd1tjb2x1bW5JbmRleF0gPSB2ZWN0b3IuZ2V0KHJvd0luZGV4KSkgJiYgcm93IHx8IHJvdywgbmV3IEFycmF5KGNvbHVtbnMubGVuZ3RoKSk7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf8;base64,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Q0FBQztBQUN6SCxDQUFDO0FBRUQsb0JBQW9CLFFBQWdCLEVBQUUsT0FBc0I7SUFDeEQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLFdBQVcsSUFBSyxPQUFBLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksR0FBRyxFQUF2RCxDQUF1RCxFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQzVJLENBQUMiLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lXG4vLyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGVcbi8vIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uXG4vLyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlXG4vLyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlXG4vLyBcIkxpY2Vuc2VcIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Vcbi8vIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbi8vXG4vLyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuLy9cbi8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZyxcbi8vIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuXG4vLyBcIkFTIElTXCIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWVxuLy8gS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlXG4vLyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zXG4vLyB1bmRlciB0aGUgTGljZW5zZS5cblxuaW1wb3J0IHsgcmVhZEJ1ZmZlcnMgfSBmcm9tICcuL3JlYWRlci9hcnJvdyc7XG5pbXBvcnQgeyBWZWN0b3IsIHNsaWNlVG9SYW5nZUFyZ3MgfSBmcm9tICcuL3ZlY3RvcnMvdmVjdG9yJztcblxuZXhwb3J0IGNsYXNzIFRhYmxlIGltcGxlbWVudHMgSXRlcmFibGU8TWFwPHN0cmluZywgYW55Pj4ge1xuICAgIHB1YmxpYyBsZW5ndGg6IG51bWJlcjtcbiAgICBwcm90ZWN0ZWQgX2NvbHVtbnM6IFZlY3Rvcjxhbnk+W107XG4gICAgcHJvdGVjdGVkIF9jb2x1bW5zTWFwOiB7IFtrOiBzdHJpbmddOiBWZWN0b3I8YW55PiB9O1xuICAgIHN0YXRpYyBmcm9tKC4uLmJ5dGVzOiBBcnJheTxVaW50OEFycmF5IHwgQnVmZmVyIHwgc3RyaW5nPikge1xuICAgICAgICBsZXQgY29sdW1uczogVmVjdG9yPGFueT5bXTtcbiAgICAgICAgZm9yIChsZXQgdmVjdG9ycyBvZiByZWFkQnVmZmVycyguLi5ieXRlcykpIHtcbiAgICAgICAgICAgIGNvbHVtbnMgPSAhY29sdW1ucyA/IHZlY3RvcnMgOiBjb2x1bW5zLm1hcCgodiwgaSkgPT4gdi5jb25jYXQodmVjdG9yc1tpXSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgVGFibGUoY29sdW1ucyk7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKGNvbHVtbnM6IFZlY3Rvcjxhbnk+W10pIHtcbiAgICAgICAgdGhpcy5fY29sdW1ucyA9IGNvbHVtbnMgfHwgW107XG4gICAgICAgIHRoaXMubGVuZ3RoID0gTWF0aC5tYXgoLi4udGhpcy5fY29sdW1ucy5tYXAoKHYpID0+IHYubGVuZ3RoKSk7XG4gICAgICAgIHRoaXMuX2NvbHVtbnNNYXAgPSB0aGlzLl9jb2x1bW5zLnJlZHVjZSgobWFwLCB2ZWMpID0+IHtcbiAgICAgICAgICAgIHJldHVybiAobWFwW3ZlYy5uYW1lXSA9IHZlYykgJiYgbWFwIHx8IG1hcDtcbiAgICAgICAgfSwgPGFueT4ge30pO1xuICAgIH1cbiAgICAqW1N5bWJvbC5pdGVyYXRvcl0oKSB7XG4gICAgICAgIGZvciAobGV0IGNvbHMgPSB0aGlzLl9jb2x1bW5zLCBpID0gLTEsIG4gPSB0aGlzLmxlbmd0aDsgKytpIDwgbjspIHtcbiAgICAgICAgICAgIHlpZWxkIHJvd0FzTWFwKGksIGNvbHMpO1xuICAgICAgICB9XG4gICAgfVxuICAgICpyb3dzKHN0YXJ0Um93PzogbnVtYmVyIHwgYm9vbGVhbiwgZW5kUm93PzogbnVtYmVyIHwgYm9vbGVhbiwgY29tcGFjdD86IGJvb2xlYW4pIHtcbiAgICAgICAgbGV0IHN0YXJ0ID0gc3RhcnRSb3cgYXMgbnVtYmVyLCBlbmQgPSBlbmRSb3cgYXMgbnVtYmVyO1xuICAgICAgICBpZiAodHlwZW9mIHN0YXJ0Um93ID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgIGNvbXBhY3QgPSBzdGFydFJvdztcbiAgICAgICAgICAgIHN0YXJ0ID0gZW5kO1xuICAgICAgICAgICAgZW5kID0gdW5kZWZpbmVkO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBlbmRSb3cgPT09ICdib29sZWFuJykge1xuICAgICAgICAgICAgY29tcGFjdCA9IGVuZFJvdztcbiAgICAgICAgICAgIGVuZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBsZXQgcm93SW5kZXggPSAtMSwgeyBsZW5ndGggfSA9IHRoaXM7XG4gICAgICAgIGNvbnN0IFtyb3dPZmZzZXQsIHJvd3NUb3RhbF0gPSBzbGljZVRvUmFuZ2VBcmdzKGxlbmd0aCwgc3RhcnQsIGVuZCk7XG4gICAgICAgIHdoaWxlICgrK3Jvd0luZGV4IDwgcm93c1RvdGFsKSB7XG4gICAgICAgICAgICB5aWVsZCB0aGlzLmdldFJvdygocm93SW5kZXggKyByb3dPZmZzZXQpICUgbGVuZ3RoLCBjb21wYWN0KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAqY29scyhzdGFydENvbD86IG51bWJlciwgZW5kQ29sPzogbnVtYmVyKSB7XG4gICAgICAgIGZvciAoY29uc3QgY29sdW1uIG9mIHRoaXMuX2NvbHVtbnMuc2xpY2Uoc3RhcnRDb2wsIGVuZENvbCkpIHtcbiAgICAgICAgICAgIHlpZWxkIGNvbHVtbjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXRSb3cocm93SW5kZXg6IG51bWJlciwgY29tcGFjdD86IGJvb2xlYW4pIHtcbiAgICAgICAgcmV0dXJuIChjb21wYWN0ICYmIHJvd0FzQXJyYXkgfHwgcm93QXNPYmplY3QpKHJvd0luZGV4LCB0aGlzLl9jb2x1bW5zKTtcbiAgICB9XG4gICAgZ2V0Q2VsbChjb2x1bW5OYW1lOiBzdHJpbmcsIHJvd0luZGV4OiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q29sdW1uKGNvbHVtbk5hbWUpLmdldChyb3dJbmRleCk7XG4gICAgfVxuICAgIGdldENlbGxBdChjb2x1bW5JbmRleDogbnVtYmVyLCByb3dJbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldENvbHVtbkF0KGNvbHVtbkluZGV4KS5nZXQocm93SW5kZXgpO1xuICAgIH1cbiAgICBnZXRDb2x1bW48VCA9IGFueT4oY29sdW1uTmFtZTogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb2x1bW5zTWFwW2NvbHVtbk5hbWVdIGFzIFZlY3RvcjxUPjtcbiAgICB9XG4gICAgZ2V0Q29sdW1uQXQ8VCA9IGFueT4oY29sdW1uSW5kZXg6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29sdW1uc1tjb2x1bW5JbmRleF0gYXMgVmVjdG9yPFQ+O1xuICAgIH1cbiAgICB0b1N0cmluZyh7IGluZGV4ID0gZmFsc2UgfSA9IHt9KSB7XG4gICAgICAgIGNvbnN0IHsgbGVuZ3RoIH0gPSB0aGlzO1xuICAgICAgICBpZiAobGVuZ3RoIDw9IDApIHsgcmV0dXJuICcnOyB9XG4gICAgICAgIGNvbnN0IG1heENvbHVtbldpZHRocyA9IFtdO1xuICAgICAgICBjb25zdCByb3dzID0gbmV3IEFycmF5KGxlbmd0aCArIDEpO1xuICAgICAgICByb3dzWzBdID0gdGhpcy5fY29sdW1ucy5tYXAoKGMpID0+IGMubmFtZSk7XG4gICAgICAgIGluZGV4ICYmIHJvd3NbMF0udW5zaGlmdCgnSW5kZXgnKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IC0xLCBuID0gcm93cy5sZW5ndGggLSAxOyArK2kgPCBuOykge1xuICAgICAgICAgICAgcm93c1tpICsgMV0gPSB0aGlzLmdldFJvdyhpLCB0cnVlKTtcbiAgICAgICAgICAgIGluZGV4ICYmIHJvd3NbaSArIDFdLnVuc2hpZnQoaSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gUGFzcyBvbmUgdG8gY29udmVydCB0byBzdHJpbmdzIGFuZCBjb3VudCBtYXggY29sdW1uIHdpZHRoc1xuICAgICAgICBmb3IgKGxldCBpID0gLTEsIG4gPSByb3dzLmxlbmd0aDsgKytpIDwgbjspIHtcbiAgICAgICAgICAgIGNvbnN0IHJvdyA9IHJvd3NbaV07XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gLTEsIGsgPSByb3cubGVuZ3RoOyArK2ogPCBrOykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbCA9IHJvd1tqXSA9IGAke3Jvd1tqXX1gO1xuICAgICAgICAgICAgICAgIG1heENvbHVtbldpZHRoc1tqXSA9ICFtYXhDb2x1bW5XaWR0aHNbal1cbiAgICAgICAgICAgICAgICAgICAgPyB2YWwubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgIDogTWF0aC5tYXgobWF4Q29sdW1uV2lkdGhzW2pdLCB2YWwubGVuZ3RoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBQYXNzIHR3byB0byBwYWQgZWFjaCBvbmUgdG8gbWF4IGNvbHVtbiB3aWR0aFxuICAgICAgICBmb3IgKGxldCBpID0gLTEsIG4gPSByb3dzLmxlbmd0aDsgKytpIDwgbjspIHtcbiAgICAgICAgICAgIGNvbnN0IHJvdyA9IHJvd3NbaV07XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gLTEsIGsgPSByb3cubGVuZ3RoOyArK2ogPCBrOykge1xuICAgICAgICAgICAgICAgIHJvd1tqXSA9IGxlZnRQYWQocm93W2pdLCAnICcsIG1heENvbHVtbldpZHRoc1tqXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByb3dzW2ldID0gcm93LmpvaW4oJywgJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJvd3Muam9pbignXFxuJyk7XG4gICAgfVxufVxuXG5UYWJsZS5wcm90b3R5cGUubGVuZ3RoID0gMDtcblxuZnVuY3Rpb24gbGVmdFBhZChzdHIsIGZpbGwsIG4pIHtcbiAgICByZXR1cm4gKG5ldyBBcnJheShuICsgMSkuam9pbihmaWxsKSArIHN0cikuc2xpY2UoLTEgKiBuKTtcbn1cblxuZnVuY3Rpb24gcm93QXNNYXAocm93OiBudW1iZXIsIGNvbHVtbnM6IFZlY3Rvcjxhbnk+W10pIHtcbiAgICByZXR1cm4gY29sdW1ucy5yZWR1Y2UoKG1hcCwgdmVjdG9yKSA9PiBtYXAuc2V0KHZlY3Rvci5uYW1lLCB2ZWN0b3IuZ2V0KHJvdykpLCBuZXcgTWFwKCkpO1xufVxuXG5mdW5jdGlvbiByb3dBc09iamVjdChyb3dJbmRleDogbnVtYmVyLCBjb2x1bW5zOiBWZWN0b3I8YW55PltdKSB7XG4gICAgcmV0dXJuIGNvbHVtbnMucmVkdWNlKChyb3csIHZlY3RvcikgPT4gKHJvd1t2ZWN0b3IubmFtZV0gPSB2ZWN0b3IuZ2V0KHJvd0luZGV4KSkgJiYgcm93IHx8IHJvdywgT2JqZWN0LmNyZWF0ZShudWxsKSk7XG59XG5cbmZ1bmN0aW9uIHJvd0FzQXJyYXkocm93SW5kZXg6IG51bWJlciwgY29sdW1uczogVmVjdG9yPGFueT5bXSkge1xuICAgIHJldHVybiBjb2x1bW5zLnJlZHVjZSgocm93LCB2ZWN0b3IsIGNvbHVtbkluZGV4KSA9PiAocm93W2NvbHVtbkluZGV4XSA9IHZlY3Rvci5nZXQocm93SW5kZXgpKSAmJiByb3cgfHwgcm93LCBuZXcgQXJyYXkoY29sdW1ucy5sZW5ndGgpKTtcbn1cbiJdfQ==

@@ -0,1 +1,17 @@

// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
Object.defineProperty(exports, "__esModule", { value: true });

@@ -59,2 +75,2 @@ var tslib_1 = require("tslib");

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZlY3RvcnMvZGljdGlvbmFyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLG1DQUFrQztBQUVsQztJQUF5Qyw0Q0FBUztJQUc5QywwQkFBWSxLQUFxQixFQUFFLFVBQXFCO1FBQXhELFlBQ0ksaUJBQU8sU0FJVjtRQUhHLEtBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLEtBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLEtBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDOztJQUM3QyxDQUFDO0lBQ0QsOEJBQUcsR0FBSCxVQUFJLEtBQWE7UUFDYixNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBQ0QsaUNBQU0sR0FBTixVQUFPLE1BQTJCO1FBQzlCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUM3QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQzNCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFDL0IsSUFBSSxDQUFDLFVBQVUsQ0FDbEIsQ0FBQztJQUNOLENBQUM7SUFDQSwyQkFBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQWxCOzs7OztvQkFDUSxLQUF3QixJQUFJLEVBQTFCLEtBQUssV0FBQSxFQUFFLFVBQVUsZ0JBQUEsQ0FBVTs7OztvQkFDZixVQUFBLGlCQUFBLEtBQUssQ0FBQTs7OztvQkFBWixHQUFHO29CQUNWLHFCQUFNLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUE7O29CQUF6QixTQUF5QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBRWpDO0lBQ0wsdUJBQUM7QUFBRCxDQXpCQSxBQXlCQyxDQXpCd0MsZUFBTSxHQXlCOUM7QUF6QlksNENBQWdCIiwiZmlsZSI6InZlY3RvcnMvZGljdGlvbmFyeS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZlY3RvciB9IGZyb20gJy4vdmVjdG9yJztcblxuZXhwb3J0IGNsYXNzIERpY3Rpb25hcnlWZWN0b3I8VD4gZXh0ZW5kcyBWZWN0b3I8VD4ge1xuICAgIHByb3RlY3RlZCBpbmRleDogVmVjdG9yPG51bWJlcj47XG4gICAgcHJvdGVjdGVkIGRpY3Rpb25hcnk6IFZlY3RvcjxUPjtcbiAgICBjb25zdHJ1Y3RvcihpbmRleDogVmVjdG9yPG51bWJlcj4sIGRpY3Rpb25hcnk6IFZlY3RvcjxUPikge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmluZGV4ID0gaW5kZXg7XG4gICAgICAgIHRoaXMuZGljdGlvbmFyeSA9IGRpY3Rpb25hcnk7XG4gICAgICAgIHRoaXMubGVuZ3RoID0gaW5kZXggJiYgaW5kZXgubGVuZ3RoIHx8IDA7XG4gICAgfVxuICAgIGdldChpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpY3Rpb25hcnkuZ2V0KHRoaXMuaW5kZXguZ2V0KGluZGV4KSk7XG4gICAgfVxuICAgIGNvbmNhdCh2ZWN0b3I6IERpY3Rpb25hcnlWZWN0b3I8VD4pIHtcbiAgICAgICAgcmV0dXJuIERpY3Rpb25hcnlWZWN0b3IuZnJvbSh0aGlzLFxuICAgICAgICAgICAgdGhpcy5sZW5ndGggKyB2ZWN0b3IubGVuZ3RoLFxuICAgICAgICAgICAgdGhpcy5pbmRleC5jb25jYXQodmVjdG9yLmluZGV4KSxcbiAgICAgICAgICAgIHRoaXMuZGljdGlvbmFyeVxuICAgICAgICApO1xuICAgIH1cbiAgICAqW1N5bWJvbC5pdGVyYXRvcl0oKSB7XG4gICAgICAgIGxldCB7IGluZGV4LCBkaWN0aW9uYXJ5IH0gPSB0aGlzO1xuICAgICAgICBmb3IgKGNvbnN0IGxvYyBvZiBpbmRleCkge1xuICAgICAgICAgICAgeWllbGQgZGljdGlvbmFyeS5nZXQobG9jKTtcbiAgICAgICAgfVxuICAgIH1cbn0iXX0=
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZlY3RvcnMvZGljdGlvbmFyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw2REFBNkQ7QUFDN0QsK0RBQStEO0FBQy9ELHdEQUF3RDtBQUN4RCw2REFBNkQ7QUFDN0Qsb0RBQW9EO0FBQ3BELDZEQUE2RDtBQUM3RCw2REFBNkQ7QUFDN0QsRUFBRTtBQUNGLCtDQUErQztBQUMvQyxFQUFFO0FBQ0YsNkRBQTZEO0FBQzdELDhEQUE4RDtBQUM5RCx5REFBeUQ7QUFDekQsNERBQTREO0FBQzVELDBEQUEwRDtBQUMxRCxxQkFBcUI7OztBQUVyQixtQ0FBa0M7QUFFbEM7SUFBeUMsNENBQVM7SUFHOUMsMEJBQVksS0FBcUIsRUFBRSxVQUFxQjtRQUF4RCxZQUNJLGlCQUFPLFNBSVY7UUFIRyxLQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixLQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixLQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQzs7SUFDN0MsQ0FBQztJQUNELDhCQUFHLEdBQUgsVUFBSSxLQUFhO1FBQ2IsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUNELGlDQUFNLEdBQU4sVUFBTyxNQUEyQjtRQUM5QixNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksRUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxFQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQy9CLElBQUksQ0FBQyxVQUFVLENBQ2xCLENBQUM7SUFDTixDQUFDO0lBQ0EsMkJBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFsQjs7Ozs7b0JBQ1EsS0FBd0IsSUFBSSxFQUExQixLQUFLLFdBQUEsRUFBRSxVQUFVLGdCQUFBLENBQVU7Ozs7b0JBQ2YsVUFBQSxpQkFBQSxLQUFLLENBQUE7Ozs7b0JBQVosR0FBRztvQkFDVixxQkFBTSxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFBOztvQkFBekIsU0FBeUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQUVqQztJQUNMLHVCQUFDO0FBQUQsQ0F6QkEsQUF5QkMsQ0F6QndDLGVBQU0sR0F5QjlDO0FBekJZLDRDQUFnQiIsImZpbGUiOiJ2ZWN0b3JzL2RpY3Rpb25hcnkuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lXG4vLyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGVcbi8vIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uXG4vLyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlXG4vLyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlXG4vLyBcIkxpY2Vuc2VcIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Vcbi8vIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbi8vXG4vLyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuLy9cbi8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZyxcbi8vIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuXG4vLyBcIkFTIElTXCIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWVxuLy8gS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlXG4vLyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zXG4vLyB1bmRlciB0aGUgTGljZW5zZS5cblxuaW1wb3J0IHsgVmVjdG9yIH0gZnJvbSAnLi92ZWN0b3InO1xuXG5leHBvcnQgY2xhc3MgRGljdGlvbmFyeVZlY3RvcjxUPiBleHRlbmRzIFZlY3RvcjxUPiB7XG4gICAgcHJvdGVjdGVkIGluZGV4OiBWZWN0b3I8bnVtYmVyPjtcbiAgICBwcm90ZWN0ZWQgZGljdGlvbmFyeTogVmVjdG9yPFQ+O1xuICAgIGNvbnN0cnVjdG9yKGluZGV4OiBWZWN0b3I8bnVtYmVyPiwgZGljdGlvbmFyeTogVmVjdG9yPFQ+KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuaW5kZXggPSBpbmRleDtcbiAgICAgICAgdGhpcy5kaWN0aW9uYXJ5ID0gZGljdGlvbmFyeTtcbiAgICAgICAgdGhpcy5sZW5ndGggPSBpbmRleCAmJiBpbmRleC5sZW5ndGggfHwgMDtcbiAgICB9XG4gICAgZ2V0KGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGljdGlvbmFyeS5nZXQodGhpcy5pbmRleC5nZXQoaW5kZXgpKTtcbiAgICB9XG4gICAgY29uY2F0KHZlY3RvcjogRGljdGlvbmFyeVZlY3RvcjxUPikge1xuICAgICAgICByZXR1cm4gRGljdGlvbmFyeVZlY3Rvci5mcm9tKHRoaXMsXG4gICAgICAgICAgICB0aGlzLmxlbmd0aCArIHZlY3Rvci5sZW5ndGgsXG4gICAgICAgICAgICB0aGlzLmluZGV4LmNvbmNhdCh2ZWN0b3IuaW5kZXgpLFxuICAgICAgICAgICAgdGhpcy5kaWN0aW9uYXJ5XG4gICAgICAgICk7XG4gICAgfVxuICAgICpbU3ltYm9sLml0ZXJhdG9yXSgpIHtcbiAgICAgICAgbGV0IHsgaW5kZXgsIGRpY3Rpb25hcnkgfSA9IHRoaXM7XG4gICAgICAgIGZvciAoY29uc3QgbG9jIG9mIGluZGV4KSB7XG4gICAgICAgICAgICB5aWVsZCBkaWN0aW9uYXJ5LmdldChsb2MpO1xuICAgICAgICB9XG4gICAgfVxufSJdfQ==

@@ -0,1 +1,17 @@

// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
Object.defineProperty(exports, "__esModule", { value: true });

@@ -143,2 +159,2 @@ var tslib_1 = require("tslib");

//# sourceMappingURL=data:application/json;charset=utf8;base64,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LCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWZWN0b3IgfSBmcm9tICcuL3ZlY3Rvcic7XG5pbXBvcnQgeyBUZXh0RGVjb2RlciB9IGZyb20gJ3RleHQtZW5jb2RpbmcnO1xuaW1wb3J0IHsgSW5kZXhWZWN0b3IsIFZhbGlkaXR5VmVjdG9yLCBWYWxpZGl0eUFyZ3MgfSBmcm9tICcuL3R5cGVkJztcblxuZXhwb3J0IGNsYXNzIExpc3RWZWN0b3JCYXNlPFQ+IGV4dGVuZHMgVmVjdG9yPFQ+IHtcbiAgICBwcm90ZWN0ZWQgdmFsdWVzOiBWZWN0b3I8VD47XG4gICAgcHJvdGVjdGVkIG9mZnNldHM6IEluZGV4VmVjdG9yO1xuICAgIGNvbnN0cnVjdG9yKHZhbGlkaXR5OiBWYWxpZGl0eUFyZ3MsIHZhbHVlczogVmVjdG9yPGFueT4sIG9mZnNldHM6IEluZGV4VmVjdG9yKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMudmFsdWVzID0gdmFsdWVzO1xuICAgICAgICB0aGlzLm9mZnNldHMgPSBvZmZzZXRzO1xuICAgICAgICB2YWxpZGl0eSAmJiAodGhpcy52YWxpZGl0eSA9IFZhbGlkaXR5VmVjdG9yLmZyb20odmFsaWRpdHkpKTtcbiAgICB9XG4gICAgZ2V0KGluZGV4OiBudW1iZXIpOiBUIHtcbiAgICAgICAgaWYgKCF0aGlzLnZhbGlkaXR5LmdldChpbmRleCkpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGxldCBbc3RhcnRdID0gdGhpcy5vZmZzZXRzLmdldChpbmRleCsrKTtcbiAgICAgICAgbGV0IFtzdG9wLCBiXSA9IHRoaXMub2Zmc2V0cy5nZXQoaW5kZXgpO1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZXMuc2xpY2Uoc3RhcnQsIHN0b3AsIGIpIGFzIGFueTtcbiAgICB9XG4gICAgY29uY2F0KHZlY3RvcjogTGlzdFZlY3RvckJhc2U8VD4pIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLmNvbnN0cnVjdG9yIGFzIHR5cGVvZiBMaXN0VmVjdG9yQmFzZSkuZnJvbSh0aGlzLFxuICAgICAgICAgICAgdGhpcy5sZW5ndGggKyB2ZWN0b3IubGVuZ3RoLFxuICAgICAgICAgICAgdGhpcy52YWxpZGl0eS5jb25jYXQodmVjdG9yLnZhbGlkaXR5KSxcbiAgICAgICAgICAgIHRoaXMudmFsdWVzLmNvbmNhdCh2ZWN0b3IudmFsdWVzKSxcbiAgICAgICAgICAgIHRoaXMub2Zmc2V0cy5jb25jYXQodmVjdG9yLm9mZnNldHMpXG4gICAgICAgICk7XG4gICAgfVxuICAgICpbU3ltYm9sLml0ZXJhdG9yXSgpIHtcbiAgICAgICAgbGV0IHYsIHIxLCByMiwgeyB2YWx1ZXMgfSA9IHRoaXM7XG4gICAgICAgIGxldCBpdCA9IHRoaXMub2Zmc2V0c1tTeW1ib2wuaXRlcmF0b3JdKCk7XG4gICAgICAgIGxldCBpdiA9IHRoaXMudmFsaWRpdHlbU3ltYm9sLml0ZXJhdG9yXSgpO1xuICAgICAgICB3aGlsZSAoISh2ID0gaXYubmV4dCgpKS5kb25lICYmICEocjEgPSBpdC5uZXh0KCkpLmRvbmUgJiYgIShyMiA9IGl0Lm5leHQoKSkuZG9uZSkge1xuICAgICAgICAgICAgeWllbGQgdmFsdWVzLnNsaWNlKHIxLnZhbHVlWzBdLCByMi52YWx1ZVswXSwgcjIudmFsdWVbMV0pIGFzIGFueTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIExpc3RWZWN0b3I8VD4gZXh0ZW5kcyBMaXN0VmVjdG9yQmFzZTxUW10+IHt9XG5leHBvcnQgY2xhc3MgVXRmOFZlY3RvciBleHRlbmRzIExpc3RWZWN0b3JCYXNlPHN0cmluZz4ge1xuICAgIHByb3RlY3RlZCBzdGF0aWMgZGVjb2RlciA9IG5ldyBUZXh0RGVjb2RlcihgdXRmLThgKTtcbiAgICBnZXQoaW5kZXg6IG51bWJlcikge1xuICAgICAgICBsZXQgY2hhcnMgPSBzdXBlci5nZXQoaW5kZXgpIGFzIGFueTtcbiAgICAgICAgcmV0dXJuIGNoYXJzID8gVXRmOFZlY3Rvci5kZWNvZGVyLmRlY29kZShjaGFycykgOiBudWxsO1xuICAgIH1cbiAgICAqW1N5bWJvbC5pdGVyYXRvcl0oKSB7XG4gICAgICAgIGxldCBkZWNvZGVyID0gVXRmOFZlY3Rvci5kZWNvZGVyO1xuICAgICAgICBmb3IgKGNvbnN0IGNoYXJzIG9mIHN1cGVyW1N5bWJvbC5pdGVyYXRvcl0oKSkge1xuICAgICAgICAgICAgeWllbGQgIWNoYXJzID8gbnVsbCA6IGRlY29kZXIuZGVjb2RlKGNoYXJzKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEZpeGVkU2l6ZUxpc3RWZWN0b3I8VD4gZXh0ZW5kcyBWZWN0b3I8VFtdPiB7XG4gICAgcHJvdGVjdGVkIHNpemU6IG51bWJlcjtcbiAgICBwcm90ZWN0ZWQgdmFsdWVzOiBWZWN0b3I8VD47XG4gICAgY29uc3RydWN0b3Ioc2l6ZTogbnVtYmVyLCB2YWxpZGl0eTogVmFsaWRpdHlBcmdzLCB2YWx1ZXM6IFZlY3RvcjxUPikge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnZhbHVlcyA9IHZhbHVlcztcbiAgICAgICAgdGhpcy5zaXplID0gTWF0aC5hYnMoc2l6ZSB8IDApIHx8IDE7XG4gICAgICAgIHZhbGlkaXR5ICYmICh0aGlzLnZhbGlkaXR5ID0gVmFsaWRpdHlWZWN0b3IuZnJvbSh2YWxpZGl0eSkpO1xuICAgIH1cbiAgICBnZXQoaW5kZXg6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gIXRoaXMudmFsaWRpdHkuZ2V0KGluZGV4KSA/IG51bGwgOiB0aGlzLnZhbHVlcy5zbGljZShcbiAgICAgICAgICAgIHRoaXMuc2l6ZSAqIGluZGV4LCB0aGlzLnNpemUgKiAoaW5kZXggKyAxKVxuICAgICAgICApIGFzIFRbXTtcbiAgICB9XG4gICAgY29uY2F0KHZlY3RvcjogRml4ZWRTaXplTGlzdFZlY3RvcjxUPikge1xuICAgICAgICByZXR1cm4gRml4ZWRTaXplTGlzdFZlY3Rvci5mcm9tKHRoaXMsXG4gICAgICAgICAgICB0aGlzLmxlbmd0aCArIHZlY3Rvci5sZW5ndGgsXG4gICAgICAgICAgICB0aGlzLnNpemUsXG4gICAgICAgICAgICB0aGlzLnZhbGlkaXR5LmNvbmNhdCh2ZWN0b3IudmFsaWRpdHkpLFxuICAgICAgICAgICAgdGhpcy52YWx1ZXMuY29uY2F0KHZlY3Rvci52YWx1ZXMpXG4gICAgICAgICk7XG4gICAgfVxuICAgICpbU3ltYm9sLml0ZXJhdG9yXSgpIHtcbiAgICAgICAgbGV0IHYsIGkgPSAtMTtcbiAgICAgICAgbGV0IHsgc2l6ZSwgbGVuZ3RoLCB2YWx1ZXMgfSA9IHRoaXM7XG4gICAgICAgIGxldCBpdiA9IHRoaXMudmFsaWRpdHlbU3ltYm9sLml0ZXJhdG9yXSgpO1xuICAgICAgICB3aGlsZSAoISh2ID0gaXYubmV4dCgpKS5kb25lICYmICsraSA8IGxlbmd0aCkge1xuICAgICAgICAgICAgeWllbGQgIXYudmFsdWUgPyBudWxsIDogdmFsdWVzLnNsaWNlKHNpemUgKiBpLCBzaXplICogKGkgKyAxKSkgYXMgVFtdO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf8;base64,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QUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBUSxFQUFBOztvQkFBckUsU0FBcUUsQ0FBQzs7Ozs7S0FFN0U7SUFDTCwwQkFBQztBQUFELENBOUJBLEFBOEJDLENBOUIyQyxlQUFNLEdBOEJqRDtBQTlCWSxrREFBbUIiLCJmaWxlIjoidmVjdG9ycy9saXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZVxuLy8gb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlXG4vLyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvblxuLy8gcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZVxuLy8gdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZVxuLy8gXCJMaWNlbnNlXCIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4vLyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4vL1xuLy8gICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbi8vXG4vLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsXG4vLyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhblxuLy8gXCJBUyBJU1wiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTllcbi8vIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZVxuLy8gc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9uc1xuLy8gdW5kZXIgdGhlIExpY2Vuc2UuXG5cbmltcG9ydCB7IFZlY3RvciB9IGZyb20gJy4vdmVjdG9yJztcbmltcG9ydCB7IFRleHREZWNvZGVyIH0gZnJvbSAndGV4dC1lbmNvZGluZyc7XG5pbXBvcnQgeyBJbmRleFZlY3RvciwgVmFsaWRpdHlWZWN0b3IsIFZhbGlkaXR5QXJncyB9IGZyb20gJy4vdHlwZWQnO1xuXG5leHBvcnQgY2xhc3MgTGlzdFZlY3RvckJhc2U8VD4gZXh0ZW5kcyBWZWN0b3I8VD4ge1xuICAgIHByb3RlY3RlZCB2YWx1ZXM6IFZlY3RvcjxUPjtcbiAgICBwcm90ZWN0ZWQgb2Zmc2V0czogSW5kZXhWZWN0b3I7XG4gICAgY29uc3RydWN0b3IodmFsaWRpdHk6IFZhbGlkaXR5QXJncywgdmFsdWVzOiBWZWN0b3I8YW55Piwgb2Zmc2V0czogSW5kZXhWZWN0b3IpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy52YWx1ZXMgPSB2YWx1ZXM7XG4gICAgICAgIHRoaXMub2Zmc2V0cyA9IG9mZnNldHM7XG4gICAgICAgIHZhbGlkaXR5ICYmICh0aGlzLnZhbGlkaXR5ID0gVmFsaWRpdHlWZWN0b3IuZnJvbSh2YWxpZGl0eSkpO1xuICAgIH1cbiAgICBnZXQoaW5kZXg6IG51bWJlcik6IFQge1xuICAgICAgICBpZiAoIXRoaXMudmFsaWRpdHkuZ2V0KGluZGV4KSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IFtzdGFydF0gPSB0aGlzLm9mZnNldHMuZ2V0KGluZGV4KyspO1xuICAgICAgICBsZXQgW3N0b3AsIGJdID0gdGhpcy5vZmZzZXRzLmdldChpbmRleCk7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlcy5zbGljZShzdGFydCwgc3RvcCwgYikgYXMgYW55O1xuICAgIH1cbiAgICBjb25jYXQodmVjdG9yOiBMaXN0VmVjdG9yQmFzZTxUPikge1xuICAgICAgICByZXR1cm4gKHRoaXMuY29uc3RydWN0b3IgYXMgdHlwZW9mIExpc3RWZWN0b3JCYXNlKS5mcm9tKHRoaXMsXG4gICAgICAgICAgICB0aGlzLmxlbmd0aCArIHZlY3Rvci5sZW5ndGgsXG4gICAgICAgICAgICB0aGlzLnZhbGlkaXR5LmNvbmNhdCh2ZWN0b3IudmFsaWRpdHkpLFxuICAgICAgICAgICAgdGhpcy52YWx1ZXMuY29uY2F0KHZlY3Rvci52YWx1ZXMpLFxuICAgICAgICAgICAgdGhpcy5vZmZzZXRzLmNvbmNhdCh2ZWN0b3Iub2Zmc2V0cylcbiAgICAgICAgKTtcbiAgICB9XG4gICAgKltTeW1ib2wuaXRlcmF0b3JdKCkge1xuICAgICAgICBsZXQgdiwgcjEsIHIyLCB7IHZhbHVlcyB9ID0gdGhpcztcbiAgICAgICAgbGV0IGl0ID0gdGhpcy5vZmZzZXRzW1N5bWJvbC5pdGVyYXRvcl0oKTtcbiAgICAgICAgbGV0IGl2ID0gdGhpcy52YWxpZGl0eVtTeW1ib2wuaXRlcmF0b3JdKCk7XG4gICAgICAgIHdoaWxlICghKHYgPSBpdi5uZXh0KCkpLmRvbmUgJiYgIShyMSA9IGl0Lm5leHQoKSkuZG9uZSAmJiAhKHIyID0gaXQubmV4dCgpKS5kb25lKSB7XG4gICAgICAgICAgICB5aWVsZCB2YWx1ZXMuc2xpY2UocjEudmFsdWVbMF0sIHIyLnZhbHVlWzBdLCByMi52YWx1ZVsxXSkgYXMgYW55O1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgTGlzdFZlY3RvcjxUPiBleHRlbmRzIExpc3RWZWN0b3JCYXNlPFRbXT4ge31cbmV4cG9ydCBjbGFzcyBVdGY4VmVjdG9yIGV4dGVuZHMgTGlzdFZlY3RvckJhc2U8c3RyaW5nPiB7XG4gICAgcHJvdGVjdGVkIHN0YXRpYyBkZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKGB1dGYtOGApO1xuICAgIGdldChpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGxldCBjaGFycyA9IHN1cGVyLmdldChpbmRleCkgYXMgYW55O1xuICAgICAgICByZXR1cm4gY2hhcnMgPyBVdGY4VmVjdG9yLmRlY29kZXIuZGVjb2RlKGNoYXJzKSA6IG51bGw7XG4gICAgfVxuICAgICpbU3ltYm9sLml0ZXJhdG9yXSgpIHtcbiAgICAgICAgbGV0IGRlY29kZXIgPSBVdGY4VmVjdG9yLmRlY29kZXI7XG4gICAgICAgIGZvciAoY29uc3QgY2hhcnMgb2Ygc3VwZXJbU3ltYm9sLml0ZXJhdG9yXSgpKSB7XG4gICAgICAgICAgICB5aWVsZCAhY2hhcnMgPyBudWxsIDogZGVjb2Rlci5kZWNvZGUoY2hhcnMpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRml4ZWRTaXplTGlzdFZlY3RvcjxUPiBleHRlbmRzIFZlY3RvcjxUW10+IHtcbiAgICBwcm90ZWN0ZWQgc2l6ZTogbnVtYmVyO1xuICAgIHByb3RlY3RlZCB2YWx1ZXM6IFZlY3RvcjxUPjtcbiAgICBjb25zdHJ1Y3RvcihzaXplOiBudW1iZXIsIHZhbGlkaXR5OiBWYWxpZGl0eUFyZ3MsIHZhbHVlczogVmVjdG9yPFQ+KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMudmFsdWVzID0gdmFsdWVzO1xuICAgICAgICB0aGlzLnNpemUgPSBNYXRoLmFicyhzaXplIHwgMCkgfHwgMTtcbiAgICAgICAgdmFsaWRpdHkgJiYgKHRoaXMudmFsaWRpdHkgPSBWYWxpZGl0eVZlY3Rvci5mcm9tKHZhbGlkaXR5KSk7XG4gICAgfVxuICAgIGdldChpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiAhdGhpcy52YWxpZGl0eS5nZXQoaW5kZXgpID8gbnVsbCA6IHRoaXMudmFsdWVzLnNsaWNlKFxuICAgICAgICAgICAgdGhpcy5zaXplICogaW5kZXgsIHRoaXMuc2l6ZSAqIChpbmRleCArIDEpXG4gICAgICAgICkgYXMgVFtdO1xuICAgIH1cbiAgICBjb25jYXQodmVjdG9yOiBGaXhlZFNpemVMaXN0VmVjdG9yPFQ+KSB7XG4gICAgICAgIHJldHVybiBGaXhlZFNpemVMaXN0VmVjdG9yLmZyb20odGhpcyxcbiAgICAgICAgICAgIHRoaXMubGVuZ3RoICsgdmVjdG9yLmxlbmd0aCxcbiAgICAgICAgICAgIHRoaXMuc2l6ZSxcbiAgICAgICAgICAgIHRoaXMudmFsaWRpdHkuY29uY2F0KHZlY3Rvci52YWxpZGl0eSksXG4gICAgICAgICAgICB0aGlzLnZhbHVlcy5jb25jYXQodmVjdG9yLnZhbHVlcylcbiAgICAgICAgKTtcbiAgICB9XG4gICAgKltTeW1ib2wuaXRlcmF0b3JdKCkge1xuICAgICAgICBsZXQgdiwgaSA9IC0xO1xuICAgICAgICBsZXQgeyBzaXplLCBsZW5ndGgsIHZhbHVlcyB9ID0gdGhpcztcbiAgICAgICAgbGV0IGl2ID0gdGhpcy52YWxpZGl0eVtTeW1ib2wuaXRlcmF0b3JdKCk7XG4gICAgICAgIHdoaWxlICghKHYgPSBpdi5uZXh0KCkpLmRvbmUgJiYgKytpIDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICB5aWVsZCAhdi52YWx1ZSA/IG51bGwgOiB2YWx1ZXMuc2xpY2Uoc2l6ZSAqIGksIHNpemUgKiAoaSArIDEpKSBhcyBUW107XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=

@@ -0,1 +1,17 @@

// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
Object.defineProperty(exports, "__esModule", { value: true });

@@ -5,3 +21,2 @@ var tslib_1 = require("tslib");

var typed_1 = require("./typed");
// export class Struct<T = any> extends Vector<{ [K in keyof T]: T[K] }> {
var StructVector = (function (_super) {

@@ -32,2 +47,2 @@ tslib_1.__extends(StructVector, _super);

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZlY3RvcnMvc3RydWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsbUNBQWtDO0FBQ2xDLGlDQUF1RDtBQUV2RCwwRUFBMEU7QUFDMUU7SUFBa0Msd0NBQWE7SUFFM0Msc0JBQVksUUFBc0I7UUFBRSxpQkFBeUI7YUFBekIsVUFBeUIsRUFBekIscUJBQXlCLEVBQXpCLElBQXlCO1lBQXpCLGdDQUF5Qjs7UUFBN0QsWUFDSSxpQkFBTyxTQUlWO1FBSEcsS0FBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsS0FBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxPQUFSLElBQUksb0JBQUssQ0FBQyxHQUFLLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBQyxDQUFDLElBQUssT0FBQSxDQUFDLENBQUMsTUFBTSxFQUFSLENBQVEsQ0FBQyxFQUFDLENBQUM7UUFDM0QsUUFBUSxJQUFJLENBQUMsS0FBSSxDQUFDLFFBQVEsR0FBRyxzQkFBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDOztJQUNoRSxDQUFDO0lBQ0QsMEJBQUcsR0FBSCxVQUFJLEtBQWE7UUFDYixNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBQyxDQUFDLElBQUssT0FBQSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFaLENBQVksQ0FBQyxHQUFHLElBQUksQ0FBQztJQUNuRixDQUFDO0lBQ0QsNkJBQU0sR0FBTixVQUFPLE1BQW9CO1FBQ3ZCLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxPQUFqQixZQUFZLG9CQUFNLElBQUk7WUFDekIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTTtZQUMzQixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQ2xDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSyxPQUFBLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUEzQixDQUEyQixDQUFDLEdBQzVEO0lBQ04sQ0FBQztJQUNMLG1CQUFDO0FBQUQsQ0FsQkEsQUFrQkMsQ0FsQmlDLGVBQU0sR0FrQnZDO0FBbEJZLG9DQUFZIiwiZmlsZSI6InZlY3RvcnMvc3RydWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmVjdG9yIH0gZnJvbSAnLi92ZWN0b3InO1xuaW1wb3J0IHsgVmFsaWRpdHlWZWN0b3IsIFZhbGlkaXR5QXJncyB9IGZyb20gJy4vdHlwZWQnO1xuXG4vLyBleHBvcnQgY2xhc3MgU3RydWN0PFQgPSBhbnk+IGV4dGVuZHMgVmVjdG9yPHsgW0sgaW4ga2V5b2YgVF06IFRbS10gfT4ge1xuZXhwb3J0IGNsYXNzIFN0cnVjdFZlY3RvciBleHRlbmRzIFZlY3RvcjxhbnlbXT4ge1xuICAgIHByb3RlY3RlZCB2ZWN0b3JzOiBWZWN0b3I8YW55PltdO1xuICAgIGNvbnN0cnVjdG9yKHZhbGlkaXR5OiBWYWxpZGl0eUFyZ3MsIC4uLnZlY3RvcnM6IFZlY3Rvcjxhbnk+W10pIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy52ZWN0b3JzID0gdmVjdG9ycztcbiAgICAgICAgdGhpcy5sZW5ndGggPSBNYXRoLm1heCgwLCAuLi52ZWN0b3JzLm1hcCgodikgPT4gdi5sZW5ndGgpKTtcbiAgICAgICAgdmFsaWRpdHkgJiYgKHRoaXMudmFsaWRpdHkgPSBWYWxpZGl0eVZlY3Rvci5mcm9tKHZhbGlkaXR5KSk7XG4gICAgfVxuICAgIGdldChpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbGlkaXR5LmdldChpbmRleCkgPyB0aGlzLnZlY3RvcnMubWFwKCh2KSA9PiB2LmdldChpbmRleCkpIDogbnVsbDtcbiAgICB9XG4gICAgY29uY2F0KHZlY3RvcjogU3RydWN0VmVjdG9yKSB7XG4gICAgICAgIHJldHVybiBTdHJ1Y3RWZWN0b3IuZnJvbSh0aGlzLFxuICAgICAgICAgICAgdGhpcy5sZW5ndGggKyB2ZWN0b3IubGVuZ3RoLFxuICAgICAgICAgICAgdGhpcy52YWxpZGl0eS5jb25jYXQodmVjdG9yLnZhbGlkaXR5KSxcbiAgICAgICAgICAgIC4uLnRoaXMudmVjdG9ycy5tYXAoKHYsIGkpID0+IHYuY29uY2F0KHZlY3Rvci52ZWN0b3JzW2ldKSlcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZlY3RvcnMvc3RydWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDZEQUE2RDtBQUM3RCwrREFBK0Q7QUFDL0Qsd0RBQXdEO0FBQ3hELDZEQUE2RDtBQUM3RCxvREFBb0Q7QUFDcEQsNkRBQTZEO0FBQzdELDZEQUE2RDtBQUM3RCxFQUFFO0FBQ0YsK0NBQStDO0FBQy9DLEVBQUU7QUFDRiw2REFBNkQ7QUFDN0QsOERBQThEO0FBQzlELHlEQUF5RDtBQUN6RCw0REFBNEQ7QUFDNUQsMERBQTBEO0FBQzFELHFCQUFxQjs7O0FBRXJCLG1DQUFrQztBQUNsQyxpQ0FBdUQ7QUFFdkQ7SUFBa0Msd0NBQWE7SUFFM0Msc0JBQVksUUFBc0I7UUFBRSxpQkFBeUI7YUFBekIsVUFBeUIsRUFBekIscUJBQXlCLEVBQXpCLElBQXlCO1lBQXpCLGdDQUF5Qjs7UUFBN0QsWUFDSSxpQkFBTyxTQUlWO1FBSEcsS0FBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsS0FBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxPQUFSLElBQUksb0JBQUssQ0FBQyxHQUFLLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBQyxDQUFDLElBQUssT0FBQSxDQUFDLENBQUMsTUFBTSxFQUFSLENBQVEsQ0FBQyxFQUFDLENBQUM7UUFDM0QsUUFBUSxJQUFJLENBQUMsS0FBSSxDQUFDLFFBQVEsR0FBRyxzQkFBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDOztJQUNoRSxDQUFDO0lBQ0QsMEJBQUcsR0FBSCxVQUFJLEtBQWE7UUFDYixNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBQyxDQUFDLElBQUssT0FBQSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFaLENBQVksQ0FBQyxHQUFHLElBQUksQ0FBQztJQUNuRixDQUFDO0lBQ0QsNkJBQU0sR0FBTixVQUFPLE1BQW9CO1FBQ3ZCLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxPQUFqQixZQUFZLG9CQUFNLElBQUk7WUFDekIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTTtZQUMzQixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQ2xDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSyxPQUFBLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUEzQixDQUEyQixDQUFDLEdBQzVEO0lBQ04sQ0FBQztJQUNMLG1CQUFDO0FBQUQsQ0FsQkEsQUFrQkMsQ0FsQmlDLGVBQU0sR0FrQnZDO0FBbEJZLG9DQUFZIiwiZmlsZSI6InZlY3RvcnMvc3RydWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZVxuLy8gb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlXG4vLyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvblxuLy8gcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZVxuLy8gdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZVxuLy8gXCJMaWNlbnNlXCIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4vLyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4vL1xuLy8gICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbi8vXG4vLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsXG4vLyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhblxuLy8gXCJBUyBJU1wiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTllcbi8vIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZVxuLy8gc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9uc1xuLy8gdW5kZXIgdGhlIExpY2Vuc2UuXG5cbmltcG9ydCB7IFZlY3RvciB9IGZyb20gJy4vdmVjdG9yJztcbmltcG9ydCB7IFZhbGlkaXR5VmVjdG9yLCBWYWxpZGl0eUFyZ3MgfSBmcm9tICcuL3R5cGVkJztcblxuZXhwb3J0IGNsYXNzIFN0cnVjdFZlY3RvciBleHRlbmRzIFZlY3RvcjxhbnlbXT4ge1xuICAgIHByb3RlY3RlZCB2ZWN0b3JzOiBWZWN0b3I8YW55PltdO1xuICAgIGNvbnN0cnVjdG9yKHZhbGlkaXR5OiBWYWxpZGl0eUFyZ3MsIC4uLnZlY3RvcnM6IFZlY3Rvcjxhbnk+W10pIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy52ZWN0b3JzID0gdmVjdG9ycztcbiAgICAgICAgdGhpcy5sZW5ndGggPSBNYXRoLm1heCgwLCAuLi52ZWN0b3JzLm1hcCgodikgPT4gdi5sZW5ndGgpKTtcbiAgICAgICAgdmFsaWRpdHkgJiYgKHRoaXMudmFsaWRpdHkgPSBWYWxpZGl0eVZlY3Rvci5mcm9tKHZhbGlkaXR5KSk7XG4gICAgfVxuICAgIGdldChpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbGlkaXR5LmdldChpbmRleCkgPyB0aGlzLnZlY3RvcnMubWFwKCh2KSA9PiB2LmdldChpbmRleCkpIDogbnVsbDtcbiAgICB9XG4gICAgY29uY2F0KHZlY3RvcjogU3RydWN0VmVjdG9yKSB7XG4gICAgICAgIHJldHVybiBTdHJ1Y3RWZWN0b3IuZnJvbSh0aGlzLFxuICAgICAgICAgICAgdGhpcy5sZW5ndGggKyB2ZWN0b3IubGVuZ3RoLFxuICAgICAgICAgICAgdGhpcy52YWxpZGl0eS5jb25jYXQodmVjdG9yLnZhbGlkaXR5KSxcbiAgICAgICAgICAgIC4uLnRoaXMudmVjdG9ycy5tYXAoKHYsIGkpID0+IHYuY29uY2F0KHZlY3Rvci52ZWN0b3JzW2ldKSlcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=

@@ -0,1 +1,17 @@

// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
Object.defineProperty(exports, "__esModule", { value: true });

@@ -440,2 +456,2 @@ var tslib_1 = require("tslib");

//# sourceMappingURL=data:application/json;charset=utf8;base64,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LE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0FBQzlELENBQUMiLCJmaWxlIjoidmVjdG9ycy90eXBlZC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZlY3RvciB9IGZyb20gJy4vdmVjdG9yJztcbmltcG9ydCB7IGZsYXRidWZmZXJzIH0gZnJvbSAnZmxhdGJ1ZmZlcnMnO1xuXG5pbXBvcnQgTG9uZyA9IGZsYXRidWZmZXJzLkxvbmc7XG5cbmV4cG9ydCB0eXBlIFZBcnJheTxUID0gYW55PiA9IHtcbiAgICBbazogbnVtYmVyXTogVDsgbGVuZ3RoOiBudW1iZXI7XG4gICAgY29uc3RydWN0b3I6IFZBcnJheUN0b3I8VkFycmF5PFQ+Pjtcbn07XG5cbmV4cG9ydCB0eXBlIFZBcnJheUN0b3I8VkFycmF5PiA9IHtcbiAgICByZWFkb25seSBwcm90b3R5cGU6IFZBcnJheTtcbiAgICBCWVRFU19QRVJfRUxFTUVOVD86IG51bWJlcjtcbiAgICBuZXcoLi4uYXJnczogYW55W10pOiBWQXJyYXk7XG59O1xuXG5leHBvcnQgY2xhc3MgVmlydHVhbFZlY3RvcjxULCBUQXJyYXlUeXBlID0gVkFycmF5PFQ+PiBleHRlbmRzIFZlY3RvcjxUPiB7XG4gICAgcHJvdGVjdGVkIGxpc3RzOiBUQXJyYXlUeXBlW107XG4gICAgcHJvdGVjdGVkIF9hcnJheVR5cGU6IFZBcnJheUN0b3I8VEFycmF5VHlwZT47XG4gICAgcHVibGljIGdldCBhcnJheVR5cGUoKSB7IHJldHVybiB0aGlzLl9hcnJheVR5cGU7IH1cbiAgICBjb25zdHJ1Y3RvciguLi5saXN0czogVEFycmF5VHlwZVtdKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMubGlzdHMgPSBsaXN0cy5maWx0ZXIoQm9vbGVhbik7XG4gICAgfVxuICAgIGdldChpbmRleDogbnVtYmVyLCBiYXRjaD86IG51bWJlcikge1xuICAgICAgICAvKiBpbmxpbmVkIGBmaW5kVmlydHVhbGAgaW1wbCAqL1xuICAgICAgICBsZXQgcm93cywgbGVuZ3RoLCBsaXN0cyA9IHRoaXMubGlzdHM7XG4gICAgICAgIGZvciAoYmF0Y2ggPSAoYmF0Y2ggfHwgMCkgLSAxO1xuICAgICAgICAgICAgKHJvd3MgPSBsaXN0c1srK2JhdGNoXSkgJiZcbiAgICAgICAgICAgIChsZW5ndGggPSByb3dzLmxlbmd0aCkgPD0gaW5kZXggJiZcbiAgICAgICAgICAgIDAgPD0gKGluZGV4IC09IGxlbmd0aCk7KSB7fVxuICAgICAgICByZXR1cm4gcm93cyAmJiAtMSA8IGluZGV4ID8gcm93c1tpbmRleF0gOiBudWxsO1xuICAgIH1cbiAgICByYW5nZShmcm9tOiBudW1iZXIsIHRvdGFsOiBudW1iZXIsIGJhdGNoPzogbnVtYmVyKSB7XG4gICAgICAgIC8qIGlubGluZWQgYGZpbmRWaXJ0dWFsYCBpbXBsICovXG4gICAgICAgIGxldCByb3dzLCBsb2NhbCA9IGZyb20sIGxlbmd0aDtcbiAgICAgICAgbGV0IHsgbGlzdHMsIF9hcnJheVR5cGUgfSA9IHRoaXM7XG4gICAgICAgIGZvciAoYmF0Y2ggPSAoYmF0Y2ggfHwgMCkgLSAxO1xuICAgICAgICAgICAgKHJvd3MgPSBsaXN0c1srK2JhdGNoXSkgJiZcbiAgICAgICAgICAgIChsZW5ndGggPSByb3dzLmxlbmd0aCkgPD0gbG9jYWwgJiZcbiAgICAgICAgICAgIDAgPD0gKGxvY2FsIC09IGxlbmd0aCk7KSB7fVxuICAgICAgICBpZiAocm93cyAmJiBsb2NhbCA+IC0xKSB7XG4gICAgICAgICAgICBsZXQgaW5kZXggPSAwLCBsaXN0c0xlbmd0aCA9IGxpc3RzLmxlbmd0aDtcbiAgICAgICAgICAgIGxldCBzZXQ6IGFueSA9IEFycmF5LmlzQXJyYXkocm93cykgPyBhcnJheVNldCA6IHR5cGVkQXJyYXlTZXQ7XG4gICAgICAgICAgICBsZXQgc2xpY2UgPSBfYXJyYXlUeXBlWydwcm90b3R5cGUnXVsnc3ViYXJyYXknXSB8fCBfYXJyYXlUeXBlWydwcm90b3R5cGUnXVsnc2xpY2UnXTtcbiAgICAgICAgICAgIGxldCB0YXJnZXQgPSBuZXcgX2FycmF5VHlwZSh0b3RhbCksIHNvdXJjZSA9IHNsaWNlLmNhbGwocm93cywgbG9jYWwsIGxvY2FsICsgdG90YWwpO1xuICAgICAgICAgICAgd2hpbGUgKChpbmRleCA9IHNldChzb3VyY2UsIHRhcmdldCwgaW5kZXgpKSA8IHRvdGFsKSB7XG4gICAgICAgICAgICAgICAgcm93cyA9IGxpc3RzW2JhdGNoID0gKChiYXRjaCArIDEpICUgbGlzdHNMZW5ndGgpXTtcbiAgICAgICAgICAgICAgICBzb3VyY2UgPSBzbGljZS5jYWxsKHJvd3MsIDAsIE1hdGgubWluKHJvd3MubGVuZ3RoLCB0b3RhbCAtIGluZGV4KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGFyZ2V0IGFzIGFueTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IF9hcnJheVR5cGUoMCk7XG4gICAgfVxuICAgICpbU3ltYm9sLml0ZXJhdG9yXSgpIHtcbiAgICAgICAgbGV0IGluZGV4ID0gLTEsIHsgbGlzdHMsIGxlbmd0aCB9ID0gdGhpcztcbiAgICAgICAgZm9yIChsZXQgb3V0ZXIgPSAtMSwgbiA9IGxpc3RzLmxlbmd0aDsgKytvdXRlciA8IG47KSB7XG4gICAgICAgICAgICBsZXQgbGlzdCA9IGxpc3RzW291dGVyXSBhcyBhbnk7XG4gICAgICAgICAgICBmb3IgKGxldCBpbm5lciA9IC0xLCBrID0gbGlzdC5sZW5ndGg7ICsraW5kZXggPCBsZW5ndGggJiYgKytpbm5lciA8IGs7KSB7XG4gICAgICAgICAgICAgICAgeWllbGQgbGlzdFtpbm5lcl07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCB0eXBlIFZhbGlkaXR5QXJncyA9IFZlY3Rvcjxib29sZWFuPiB8IFVpbnQ4QXJyYXk7XG5leHBvcnQgY2xhc3MgVmFsaWRpdHlWZWN0b3IgZXh0ZW5kcyBWaXJ0dWFsVmVjdG9yPGJvb2xlYW4sIFVpbnQ4QXJyYXk+IHtcbiAgICBzdGF0aWMgY29uc3RhbnQ6IFZlY3Rvcjxib29sZWFuPiA9IG5ldyAoY2xhc3MgVmFsaWRWZWN0b3IgZXh0ZW5kcyBWZWN0b3I8Ym9vbGVhbj4ge1xuICAgICAgICBnZXQoKSB7IHJldHVybiB0cnVlOyB9XG4gICAgICAgICpbU3ltYm9sLml0ZXJhdG9yXSgpIHtcbiAgICAgICAgICAgIGRvIHsgeWllbGQgdHJ1ZTsgfSB3aGlsZSAodHJ1ZSk7XG4gICAgICAgIH1cbiAgICB9KSgpO1xuICAgIHN0YXRpYyBmcm9tKHNyYzogYW55KSB7XG4gICAgICAgIHJldHVybiBzcmMgaW5zdGFuY2VvZiBWYWxpZGl0eVZlY3RvciAgID8gc3JjXG4gICAgICAgICAgICAgOiBzcmMgPT09IFZhbGlkaXR5VmVjdG9yLmNvbnN0YW50ID8gc3JjXG4gICAgICAgICAgICAgOiBzcmMgaW5zdGFuY2VvZiBVaW50OEFycmF5ICAgICAgID8gbmV3IFZhbGlkaXR5VmVjdG9yKHNyYylcbiAgICAgICAgICAgICA6IHNyYyBpbnN0YW5jZW9mIEFycmF5ICAgICAgICAgICAgPyBuZXcgVmFsaWRpdHlWZWN0b3IoVmFsaWRpdHlWZWN0b3IucGFjayhzcmMpKVxuICAgICAgICAgICAgIDogc3JjIGluc3RhbmNlb2YgVmVjdG9yICAgICAgICAgICA/IG5ldyBWYWxpZGl0eVZlY3RvcihWYWxpZGl0eVZlY3Rvci5wYWNrKHNyYykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogVmFsaWRpdHlWZWN0b3IuY29uc3RhbnQgYXMgVmVjdG9yPGFueT47XG4gICAgfVxuICAgIHN0YXRpYyBwYWNrKHZhbHVlczogSXRlcmFibGU8YW55Pikge1xuICAgICAgICBsZXQgeHMgPSBbXSwgbiwgaSA9IDA7XG4gICAgICAgIGxldCBiaXQgPSAwLCBieXRlID0gMDtcbiAgICAgICAgZm9yIChjb25zdCB2YWx1ZSBvZiB2YWx1ZXMpIHtcbiAgICAgICAgICAgIHZhbHVlICYmIChieXRlIHw9IDEgPDwgYml0KTtcbiAgICAgICAgICAgIGlmICgrK2JpdCA9PT0gOCkge1xuICAgICAgICAgICAgICAgIHhzW2krK10gPSBieXRlO1xuICAgICAgICAgICAgICAgIGJ5dGUgPSBiaXQgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChpID09PSAwIHx8IGJpdCA+IDApIHsgeHNbaSsrXSA9IGJ5dGU7IH1cbiAgICAgICAgaWYgKGkgJSA4ICYmIChuID0gbiA9IGkgKyA4IC0gaSAlIDgpKSB7XG4gICAgICAgICAgICBkbyB7IHhzW2ldID0gMDsgfSB3aGlsZSAoKytpIDwgbik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBVaW50OEFycmF5KHhzKTtcbiAgICB9XG4gICAgY29uc3RydWN0b3IoLi4ubGlzdHM6IFVpbnQ4QXJyYXlbXSkge1xuICAgICAgICBzdXBlciguLi5saXN0cyk7XG4gICAgICAgIHRoaXMubGVuZ3RoID0gdGhpcy5saXN0cy5yZWR1Y2UoKGwsIHhzKSA9PiBsICsgeHNbJ2xlbmd0aCddLCAwKTtcbiAgICB9XG4gICAgZ2V0KGluZGV4OiBudW1iZXIsIGJhdGNoPzogbnVtYmVyKSB7XG4gICAgICAgIC8qIGlubGluZWQgYGZpbmRWaXJ0dWFsYCBpbXBsICovXG4gICAgICAgIGxldCByb3dzLCBsZW5ndGgsIGxpc3RzID0gdGhpcy5saXN0cztcbiAgICAgICAgZm9yIChiYXRjaCA9IChiYXRjaCB8fCAwKSAtIDE7XG4gICAgICAgICAgICAocm93cyA9IGxpc3RzWysrYmF0Y2hdKSAmJlxuICAgICAgICAgICAgKGxlbmd0aCA9IHJvd3MubGVuZ3RoKSA8PSBpbmRleCAmJlxuICAgICAgICAgICAgMCA8PSAoaW5kZXggLT0gbGVuZ3RoKTspIHt9XG4gICAgICAgIHJldHVybiAhKCFyb3dzIHx8IGluZGV4IDwgMCB8fCAocm93c1tpbmRleCA+PiAzIHwgMF0gJiAxIDw8IGluZGV4ICUgOCkgPT09IDApO1xuICAgIH1cbiAgICBjb25jYXQodmVjdG9yOiBWYWxpZGl0eVZlY3Rvcikge1xuICAgICAgICByZXR1cm4gbmV3IFZhbGlkaXR5VmVjdG9yKC4uLnRoaXMubGlzdHMsIC4uLnZlY3Rvci5saXN0cyk7XG4gICAgfVxuICAgICpbU3ltYm9sLml0ZXJhdG9yXSgpIHtcbiAgICAgICAgZm9yIChjb25zdCBieXRlIG9mIHN1cGVyW1N5bWJvbC5pdGVyYXRvcl0oKSkge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IC0xOyArK2kgPCA4Oykge1xuICAgICAgICAgICAgICAgIHlpZWxkIChieXRlICYgMSA8PCBpKSAhPT0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFR5cGVkVmVjdG9yPFQsIFRBcnJheVR5cGU+IGV4dGVuZHMgVmlydHVhbFZlY3RvcjxULCBUQXJyYXlUeXBlPiB7XG4gICAgY29uc3RydWN0b3IodmFsaWRpdHk6IFZhbGlkaXR5QXJncywgLi4ubGlzdHM6IFRBcnJheVR5cGVbXSkge1xuICAgICAgICBzdXBlciguLi5saXN0cyk7XG4gICAgICAgIHZhbGlkaXR5ICYmICh0aGlzLnZhbGlkaXR5ID0gVmFsaWRpdHlWZWN0b3IuZnJvbSh2YWxpZGl0eSkpO1xuICAgIH1cbiAgICBjb25jYXQodmVjdG9yOiBUeXBlZFZlY3RvcjxULCBUQXJyYXlUeXBlPikge1xuICAgICAgICByZXR1cm4gKHRoaXMuY29uc3RydWN0b3IgYXMgdHlwZW9mIFR5cGVkVmVjdG9yKS5mcm9tKHRoaXMsXG4gICAgICAgICAgICB0aGlzLmxlbmd0aCArIHZlY3Rvci5sZW5ndGgsXG4gICAgICAgICAgICB0aGlzLnZhbGlkaXR5LmNvbmNhdCh2ZWN0b3IudmFsaWRpdHkpLFxuICAgICAgICAgICAgLi4udGhpcy5saXN0cywgLi4udmVjdG9yLmxpc3RzXG4gICAgICAgICk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQnl0ZVZlY3RvcjxUTGlzdD4gZXh0ZW5kcyBUeXBlZFZlY3RvcjxudW1iZXIsIFRMaXN0PiB7XG4gICAgZ2V0KGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsaWRpdHkuZ2V0KGluZGV4KSA/IHN1cGVyLmdldChpbmRleCkgOiBudWxsO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEluZGV4VmVjdG9yIGV4dGVuZHMgVHlwZWRWZWN0b3I8bnVtYmVyLCBJbnQzMkFycmF5PiB7XG4gICAgZ2V0KGluZGV4OiBudW1iZXIsIGJhdGNoPzogbnVtYmVyKSB7XG4gICAgICAgIC8qIGlubGluZWQgYGZpbmRWaXJ0dWFsYCBpbXBsICovXG4gICAgICAgIGxldCByb3dzLCBsb2NhbCA9IGluZGV4O1xuICAgICAgICBsZXQgbGlzdHMgPSB0aGlzLmxpc3RzLCBsZW5ndGg7XG4gICAgICAgIGxldCByb3dzSW5kZXggPSAoYmF0Y2ggfHwgMCkgLSAxO1xuICAgICAgICB3aGlsZSAoKHJvd3MgPSBsaXN0c1srK3Jvd3NJbmRleF0pICYmXG4gICAgICAgICAgICAgICAoKGxlbmd0aCA9IHJvd3MubGVuZ3RoKSA8PSBsb2NhbCkgJiZcbiAgICAgICAgICAgICAgICgobG9jYWwgLT0gbGVuZ3RoKSA+PSAwKSkgey8qd2hlZSovfVxuICAgICAgICByZXR1cm4gKHJvd3MgJiYgbG9jYWwgPiAtMSkgPyBbcm93c1tsb2NhbCArIHJvd3NJbmRleF0sIHJvd3NJbmRleF0gOiBbLTEsIDAsIC0xXTtcbiAgICB9XG4gICAgKltTeW1ib2wuaXRlcmF0b3JdKCkge1xuICAgICAgICBsZXQgeyBsaXN0cyB9ID0gdGhpcztcbiAgICAgICAgZm9yIChsZXQgaSA9IC0xLCBuID0gbGlzdHMubGVuZ3RoOyArK2kgPCBuOykge1xuICAgICAgICAgICAgbGV0IGxpc3QgPSBsaXN0c1tpXSBhcyBhbnk7XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gLTEsIGsgPSBsaXN0Lmxlbmd0aDsgKytqIDwgazspIHtcbiAgICAgICAgICAgICAgICB5aWVsZCBbbGlzdFtqXSwgaV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMb25nVmVjdG9yPFRMaXN0PiBleHRlbmRzIFR5cGVkVmVjdG9yPExvbmcsIFRMaXN0PiB7XG4gICAgZ2V0KGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLnZhbGlkaXR5LmdldChpbmRleCkgPyBudWxsIDogbmV3IExvbmcoXG4gICAgICAgICAgICA8YW55PiBzdXBlci5nZXQoaW5kZXggKiAyKSwgICAgIC8qIGxvdyAqL1xuICAgICAgICAgICAgPGFueT4gc3VwZXIuZ2V0KGluZGV4ICogMiArIDEpIC8qIGhpZ2ggKi9cbiAgICAgICAgKTtcbiAgICB9XG4gICAgKltTeW1ib2wuaXRlcmF0b3JdKCkge1xuICAgICAgICBsZXQgdiwgbG93LCBoaWdoO1xuICAgICAgICBsZXQgaXQgPSBzdXBlcltTeW1ib2wuaXRlcmF0b3JdKCk7XG4gICAgICAgIGxldCBpdiA9IHRoaXMudmFsaWRpdHlbU3ltYm9sLml0ZXJhdG9yXSgpO1xuICAgICAgICB3aGlsZSAoISh2ID0gaXYubmV4dCgpKS5kb25lICYmICEobG93ID0gaXQubmV4dCgpKS5kb25lICYmICEoaGlnaCA9IGl0Lm5leHQoKSkuZG9uZSkge1xuICAgICAgICAgICAgeWllbGQgIXYudmFsdWUgPyBudWxsIDogbmV3IExvbmcobG93LnZhbHVlLCBoaWdoLnZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIERhdGVWZWN0b3IgZXh0ZW5kcyBUeXBlZFZlY3RvcjxEYXRlLCBVaW50MzJBcnJheT4ge1xuICAgIGdldChpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiAhdGhpcy52YWxpZGl0eS5nZXQoaW5kZXgpID8gbnVsbCA6IG5ldyBEYXRlKFxuICAgICAgICAgICAgTWF0aC5wb3coMiwgMzIpICogc3VwZXIuZ2V0KDIgKiArK2luZGV4KSArIHN1cGVyLmdldCgyICogLS1pbmRleClcbiAgICAgICAgKTtcbiAgICB9XG4gICAgKltTeW1ib2wuaXRlcmF0b3JdKCkge1xuICAgICAgICBsZXQgdiwgbG93LCBoaWdoO1xuICAgICAgICBsZXQgaXQgPSBzdXBlcltTeW1ib2wuaXRlcmF0b3JdKCk7XG4gICAgICAgIGxldCBpdiA9IHRoaXMudmFsaWRpdHlbU3ltYm9sLml0ZXJhdG9yXSgpO1xuICAgICAgICB3aGlsZSAoISh2ID0gaXYubmV4dCgpKS5kb25lICYmICEobG93ID0gaXQubmV4dCgpKS5kb25lICYmICEoaGlnaCA9IGl0Lm5leHQoKSkuZG9uZSkge1xuICAgICAgICAgICAgeWllbGQgIXYudmFsdWUgPyBudWxsIDogbmV3IERhdGUoTWF0aC5wb3coMiwgMzIpICogaGlnaC52YWx1ZSArIGxvdy52YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBJbnQ4VmVjdG9yICAgIGV4dGVuZHMgQnl0ZVZlY3RvcjxJbnQ4QXJyYXk+ICAgIHt9XG5leHBvcnQgY2xhc3MgSW50MTZWZWN0b3IgICBleHRlbmRzIEJ5dGVWZWN0b3I8SW50MTZBcnJheT4gICB7fVxuZXhwb3J0IGNsYXNzIEludDMyVmVjdG9yICAgZXh0ZW5kcyBCeXRlVmVjdG9yPEludDMyQXJyYXk+ICAge31cbmV4cG9ydCBjbGFzcyBJbnQ2NFZlY3RvciAgIGV4dGVuZHMgTG9uZ1ZlY3RvcjxJbnQzMkFycmF5PiAgIHt9XG5leHBvcnQgY2xhc3MgVWludDhWZWN0b3IgICBleHRlbmRzIEJ5dGVWZWN0b3I8VWludDhBcnJheT4gICB7fVxuZXhwb3J0IGNsYXNzIFVpbnQxNlZlY3RvciAgZXh0ZW5kcyBCeXRlVmVjdG9yPFVpbnQxNkFycmF5PiAge31cbmV4cG9ydCBjbGFzcyBVaW50MzJWZWN0b3IgIGV4dGVuZHMgQnl0ZVZlY3RvcjxVaW50MzJBcnJheT4gIHt9XG5leHBvcnQgY2xhc3MgVWludDY0VmVjdG9yICBleHRlbmRzIExvbmdWZWN0b3I8VWludDMyQXJyYXk+ICB7fVxuZXhwb3J0IGNsYXNzIEZsb2F0MzJWZWN0b3IgZXh0ZW5kcyBCeXRlVmVjdG9yPEZsb2F0MzJBcnJheT4ge31cbmV4cG9ydCBjbGFzcyBGbG9hdDY0VmVjdG9yIGV4dGVuZHMgQnl0ZVZlY3RvcjxGbG9hdDY0QXJyYXk+IHt9XG5cbkxvbmdWZWN0b3IucHJvdG90eXBlLnN0cmlkZSA9IDI7XG4oVmVjdG9yLnByb3RvdHlwZSBhcyBhbnkpLmxpc3RzID0gW107XG4oVmVjdG9yLnByb3RvdHlwZSBhcyBhbnkpLnZhbGlkaXR5ID0gVmFsaWRpdHlWZWN0b3IuY29uc3RhbnQ7XG4oVmlydHVhbFZlY3Rvci5wcm90b3R5cGUgYXMgYW55KS5fYXJyYXlUeXBlID0gQXJyYXk7XG4oSW50OFZlY3Rvci5wcm90b3R5cGUgYXMgYW55KS5fYXJyYXlUeXBlID0gSW50OEFycmF5O1xuKEludDE2VmVjdG9yLnByb3RvdHlwZSBhcyBhbnkpLl9hcnJheVR5cGUgPSBJbnQxNkFycmF5O1xuKEludDMyVmVjdG9yLnByb3RvdHlwZSBhcyBhbnkpLl9hcnJheVR5cGUgPSBJbnQzMkFycmF5O1xuKEludDY0VmVjdG9yLnByb3RvdHlwZSBhcyBhbnkpLl9hcnJheVR5cGUgPSBJbnQzMkFycmF5O1xuKFVpbnQ4VmVjdG9yLnByb3RvdHlwZSBhcyBhbnkpLl9hcnJheVR5cGUgPSBVaW50OEFycmF5O1xuKFVpbnQxNlZlY3Rvci5wcm90b3R5cGUgYXMgYW55KS5fYXJyYXlUeXBlID0gVWludDE2QXJyYXk7XG4oVWludDMyVmVjdG9yLnByb3RvdHlwZSBhcyBhbnkpLl9hcnJheVR5cGUgPSBVaW50MzJBcnJheTtcbihVaW50NjRWZWN0b3IucHJvdG90eXBlIGFzIGFueSkuX2FycmF5VHlwZSA9IFVpbnQzMkFycmF5O1xuKERhdGVWZWN0b3IucHJvdG90eXBlIGFzIGFueSkuX2FycmF5VHlwZSA9IFVpbnQzMkFycmF5O1xuKEluZGV4VmVjdG9yLnByb3RvdHlwZSBhcyBhbnkpLl9hcnJheVR5cGUgPSBJbnQzMkFycmF5O1xuKEZsb2F0MzJWZWN0b3IucHJvdG90eXBlIGFzIGFueSkuX2FycmF5VHlwZSA9IEZsb2F0MzJBcnJheTtcbihGbG9hdDY0VmVjdG9yLnByb3RvdHlwZSBhcyBhbnkpLl9hcnJheVR5cGUgPSBGbG9hdDY0QXJyYXk7XG5cbmZ1bmN0aW9uIGFycmF5U2V0PFQ+KHNvdXJjZTogQXJyYXk8VD4sIHRhcmdldDogQXJyYXk8VD4sIGluZGV4OiBudW1iZXIpIHtcbiAgICBmb3IgKGxldCBpID0gMCwgbiA9IHNvdXJjZS5sZW5ndGg7IGkgPCBuOykge1xuICAgICAgICB0YXJnZXRbaW5kZXgrK10gPSBzb3VyY2VbaSsrXTtcbiAgICB9XG4gICAgcmV0dXJuIGluZGV4O1xufVxuXG5mdW5jdGlvbiB0eXBlZEFycmF5U2V0KHNvdXJjZTogVHlwZWRBcnJheSwgdGFyZ2V0OiBUeXBlZEFycmF5LCBpbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHRhcmdldC5zZXQoc291cmNlLCBpbmRleCkgfHwgaW5kZXggKyBzb3VyY2UubGVuZ3RoO1xufVxuXG4vLyBSYXRoZXIgdGhhbiBlYXQgdGhlIGl0ZXJhdG9yIGNvc3QsIHdlJ3ZlIGlubGluZWQgdGhpcyBmdW5jdGlvbiBpbnRvIHRoZSByZWxldmFudCBgZ2V0YCBmdW5jdGlvbnNcbi8vIGZ1bmN0aW9uKiBmaW5kVmlydHVhbDxUTGlzdD4oaW5kZXg6IG51bWJlciwgbGlzdHM6IFRMaXN0W10sIGJhdGNoPzogbnVtYmVyKSB7XG4vLyAgICAgbGV0IHJvd3MsIGxlbmd0aDtcbi8vICAgICBmb3IgKGJhdGNoID0gKGJhdGNoIHx8IDApIC0gMTtcbi8vICAgICAgICAgKHJvd3MgPSBsaXN0c1srK2JhdGNoXSkgJiZcbi8vICAgICAgICAgKGxlbmd0aCA9IHJvd3MubGVuZ3RoKSA8PSBpbmRleCAmJlxuLy8gICAgICAgICAwIDw9IChpbmRleCAtPSBsZW5ndGgpOykge31cbi8vICAgICByZXR1cm4gcm93cyAmJiAtMSA8IGluZGV4ID8geWllbGQgW3Jvd3MsIGluZGV4LCBiYXRjaF0gOiBudWxsO1xuLy8gfVxuXG5leHBvcnQgdHlwZSBUeXBlZEFycmF5Q3RvcjxUIGV4dGVuZHMgVHlwZWRBcnJheT4gPSB7XG4gICAgcmVhZG9ubHkgcHJvdG90eXBlOiBUO1xuICAgIHJlYWRvbmx5IEJZVEVTX1BFUl9FTEVNRU5UOiBudW1iZXI7XG4gICAgbmV3KGxlbmd0aDogbnVtYmVyKTogVDtcbiAgICBuZXcoYXJyYXk6IEFycmF5TGlrZTxudW1iZXI+KTogVDtcbiAgICBuZXcoYnVmZmVyOiBBcnJheUJ1ZmZlckxpa2UsIGJ5dGVPZmZzZXQ/OiBudW1iZXIsIGxlbmd0aD86IG51bWJlcik6IFQ7XG59O1xuXG5leHBvcnQgdHlwZSBGbG9hdEFycmF5ID0gRmxvYXQzMkFycmF5IHwgRmxvYXQ2NEFycmF5O1xuZXhwb3J0IHR5cGUgSW50QXJyYXkgPSBJbnQ4QXJyYXkgfCBJbnQxNkFycmF5IHwgSW50MzJBcnJheSB8IFVpbnQ4Q2xhbXBlZEFycmF5IHwgVWludDhBcnJheSB8IFVpbnQxNkFycmF5IHwgVWludDMyQXJyYXk7XG5cbmV4cG9ydCB0eXBlIFR5cGVkQXJyYXkgPSAoXG4gICAgICAgICAgICBJbnQ4QXJyYXkgICAgICAgIHxcbiAgICAgICAgICAgIFVpbnQ4QXJyYXkgICAgICAgfFxuICAgICAgICAgICAgSW50MTZBcnJheSAgICAgICB8XG4gICAgICAgICAgICBJbnQzMkFycmF5ICAgICAgIHxcbiAgICAgICAgICAgIFVpbnQxNkFycmF5ICAgICAgfFxuICAgICAgICAgICAgVWludDMyQXJyYXkgICAgICB8XG4gICAgICAgICAgICBGbG9hdDMyQXJyYXkgICAgIHxcbiAgICAgICAgICAgIEZsb2F0NjRBcnJheSAgICAgfFxuICAgICAgICAgICAgVWludDhDbGFtcGVkQXJyYXkpO1xuIl19
//# sourceMappingURL=data:application/json;charset=utf8;base64,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TUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQztRQUN4QyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsTUFBTSxDQUFDLEtBQUssQ0FBQztBQUNqQixDQUFDO0FBRUQsdUJBQXVCLE1BQWtCLEVBQUUsTUFBa0IsRUFBRSxLQUFhO0lBQ3hFLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztBQUM5RCxDQUFDIiwiZmlsZSI6InZlY3RvcnMvdHlwZWQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lXG4vLyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGVcbi8vIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uXG4vLyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlXG4vLyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlXG4vLyBcIkxpY2Vuc2VcIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Vcbi8vIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbi8vXG4vLyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuLy9cbi8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZyxcbi8vIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuXG4vLyBcIkFTIElTXCIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWVxuLy8gS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlXG4vLyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zXG4vLyB1bmRlciB0aGUgTGljZW5zZS5cblxuaW1wb3J0IHsgVmVjdG9yIH0gZnJvbSAnLi92ZWN0b3InO1xuaW1wb3J0IHsgZmxhdGJ1ZmZlcnMgfSBmcm9tICdmbGF0YnVmZmVycyc7XG5cbmltcG9ydCBMb25nID0gZmxhdGJ1ZmZlcnMuTG9uZztcblxuZXhwb3J0IHR5cGUgVkFycmF5PFQgPSBhbnk+ID0ge1xuICAgIFtrOiBudW1iZXJdOiBUOyBsZW5ndGg6IG51bWJlcjtcbiAgICBjb25zdHJ1Y3RvcjogVkFycmF5Q3RvcjxWQXJyYXk8VD4+O1xufTtcblxuZXhwb3J0IHR5cGUgVkFycmF5Q3RvcjxWQXJyYXk+ID0ge1xuICAgIHJlYWRvbmx5IHByb3RvdHlwZTogVkFycmF5O1xuICAgIEJZVEVTX1BFUl9FTEVNRU5UPzogbnVtYmVyO1xuICAgIG5ldyguLi5hcmdzOiBhbnlbXSk6IFZBcnJheTtcbn07XG5cbmV4cG9ydCBjbGFzcyBWaXJ0dWFsVmVjdG9yPFQsIFRBcnJheVR5cGUgPSBWQXJyYXk8VD4+IGV4dGVuZHMgVmVjdG9yPFQ+IHtcbiAgICBwcm90ZWN0ZWQgbGlzdHM6IFRBcnJheVR5cGVbXTtcbiAgICBwcm90ZWN0ZWQgX2FycmF5VHlwZTogVkFycmF5Q3RvcjxUQXJyYXlUeXBlPjtcbiAgICBwdWJsaWMgZ2V0IGFycmF5VHlwZSgpIHsgcmV0dXJuIHRoaXMuX2FycmF5VHlwZTsgfVxuICAgIGNvbnN0cnVjdG9yKC4uLmxpc3RzOiBUQXJyYXlUeXBlW10pIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5saXN0cyA9IGxpc3RzLmZpbHRlcihCb29sZWFuKTtcbiAgICB9XG4gICAgZ2V0KGluZGV4OiBudW1iZXIsIGJhdGNoPzogbnVtYmVyKSB7XG4gICAgICAgIC8qIGlubGluZWQgYGZpbmRWaXJ0dWFsYCBpbXBsICovXG4gICAgICAgIGxldCByb3dzLCBsZW5ndGgsIGxpc3RzID0gdGhpcy5saXN0cztcbiAgICAgICAgZm9yIChiYXRjaCA9IChiYXRjaCB8fCAwKSAtIDE7XG4gICAgICAgICAgICAocm93cyA9IGxpc3RzWysrYmF0Y2hdKSAmJlxuICAgICAgICAgICAgKGxlbmd0aCA9IHJvd3MubGVuZ3RoKSA8PSBpbmRleCAmJlxuICAgICAgICAgICAgMCA8PSAoaW5kZXggLT0gbGVuZ3RoKTspIHt9XG4gICAgICAgIHJldHVybiByb3dzICYmIC0xIDwgaW5kZXggPyByb3dzW2luZGV4XSA6IG51bGw7XG4gICAgfVxuICAgIHJhbmdlKGZyb206IG51bWJlciwgdG90YWw6IG51bWJlciwgYmF0Y2g/OiBudW1iZXIpIHtcbiAgICAgICAgLyogaW5saW5lZCBgZmluZFZpcnR1YWxgIGltcGwgKi9cbiAgICAgICAgbGV0IHJvd3MsIGxvY2FsID0gZnJvbSwgbGVuZ3RoO1xuICAgICAgICBsZXQgeyBsaXN0cywgX2FycmF5VHlwZSB9ID0gdGhpcztcbiAgICAgICAgZm9yIChiYXRjaCA9IChiYXRjaCB8fCAwKSAtIDE7XG4gICAgICAgICAgICAocm93cyA9IGxpc3RzWysrYmF0Y2hdKSAmJlxuICAgICAgICAgICAgKGxlbmd0aCA9IHJvd3MubGVuZ3RoKSA8PSBsb2NhbCAmJlxuICAgICAgICAgICAgMCA8PSAobG9jYWwgLT0gbGVuZ3RoKTspIHt9XG4gICAgICAgIGlmIChyb3dzICYmIGxvY2FsID4gLTEpIHtcbiAgICAgICAgICAgIGxldCBpbmRleCA9IDAsIGxpc3RzTGVuZ3RoID0gbGlzdHMubGVuZ3RoO1xuICAgICAgICAgICAgbGV0IHNldDogYW55ID0gQXJyYXkuaXNBcnJheShyb3dzKSA/IGFycmF5U2V0IDogdHlwZWRBcnJheVNldDtcbiAgICAgICAgICAgIGxldCBzbGljZSA9IF9hcnJheVR5cGVbJ3Byb3RvdHlwZSddWydzdWJhcnJheSddIHx8IF9hcnJheVR5cGVbJ3Byb3RvdHlwZSddWydzbGljZSddO1xuICAgICAgICAgICAgbGV0IHRhcmdldCA9IG5ldyBfYXJyYXlUeXBlKHRvdGFsKSwgc291cmNlID0gc2xpY2UuY2FsbChyb3dzLCBsb2NhbCwgbG9jYWwgKyB0b3RhbCk7XG4gICAgICAgICAgICB3aGlsZSAoKGluZGV4ID0gc2V0KHNvdXJjZSwgdGFyZ2V0LCBpbmRleCkpIDwgdG90YWwpIHtcbiAgICAgICAgICAgICAgICByb3dzID0gbGlzdHNbYmF0Y2ggPSAoKGJhdGNoICsgMSkgJSBsaXN0c0xlbmd0aCldO1xuICAgICAgICAgICAgICAgIHNvdXJjZSA9IHNsaWNlLmNhbGwocm93cywgMCwgTWF0aC5taW4ocm93cy5sZW5ndGgsIHRvdGFsIC0gaW5kZXgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0YXJnZXQgYXMgYW55O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgX2FycmF5VHlwZSgwKTtcbiAgICB9XG4gICAgKltTeW1ib2wuaXRlcmF0b3JdKCkge1xuICAgICAgICBsZXQgaW5kZXggPSAtMSwgeyBsaXN0cywgbGVuZ3RoIH0gPSB0aGlzO1xuICAgICAgICBmb3IgKGxldCBvdXRlciA9IC0xLCBuID0gbGlzdHMubGVuZ3RoOyArK291dGVyIDwgbjspIHtcbiAgICAgICAgICAgIGxldCBsaXN0ID0gbGlzdHNbb3V0ZXJdIGFzIGFueTtcbiAgICAgICAgICAgIGZvciAobGV0IGlubmVyID0gLTEsIGsgPSBsaXN0Lmxlbmd0aDsgKytpbmRleCA8IGxlbmd0aCAmJiArK2lubmVyIDwgazspIHtcbiAgICAgICAgICAgICAgICB5aWVsZCBsaXN0W2lubmVyXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IHR5cGUgVmFsaWRpdHlBcmdzID0gVmVjdG9yPGJvb2xlYW4+IHwgVWludDhBcnJheTtcbmV4cG9ydCBjbGFzcyBWYWxpZGl0eVZlY3RvciBleHRlbmRzIFZpcnR1YWxWZWN0b3I8Ym9vbGVhbiwgVWludDhBcnJheT4ge1xuICAgIHN0YXRpYyBjb25zdGFudDogVmVjdG9yPGJvb2xlYW4+ID0gbmV3IChjbGFzcyBWYWxpZFZlY3RvciBleHRlbmRzIFZlY3Rvcjxib29sZWFuPiB7XG4gICAgICAgIGdldCgpIHsgcmV0dXJuIHRydWU7IH1cbiAgICAgICAgKltTeW1ib2wuaXRlcmF0b3JdKCkge1xuICAgICAgICAgICAgZG8geyB5aWVsZCB0cnVlOyB9IHdoaWxlICh0cnVlKTtcbiAgICAgICAgfVxuICAgIH0pKCk7XG4gICAgc3RhdGljIGZyb20oc3JjOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIHNyYyBpbnN0YW5jZW9mIFZhbGlkaXR5VmVjdG9yICAgPyBzcmNcbiAgICAgICAgICAgICA6IHNyYyA9PT0gVmFsaWRpdHlWZWN0b3IuY29uc3RhbnQgPyBzcmNcbiAgICAgICAgICAgICA6IHNyYyBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkgICAgICAgPyBuZXcgVmFsaWRpdHlWZWN0b3Ioc3JjKVxuICAgICAgICAgICAgIDogc3JjIGluc3RhbmNlb2YgQXJyYXkgICAgICAgICAgICA/IG5ldyBWYWxpZGl0eVZlY3RvcihWYWxpZGl0eVZlY3Rvci5wYWNrKHNyYykpXG4gICAgICAgICAgICAgOiBzcmMgaW5zdGFuY2VvZiBWZWN0b3IgICAgICAgICAgID8gbmV3IFZhbGlkaXR5VmVjdG9yKFZhbGlkaXR5VmVjdG9yLnBhY2soc3JjKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBWYWxpZGl0eVZlY3Rvci5jb25zdGFudCBhcyBWZWN0b3I8YW55PjtcbiAgICB9XG4gICAgc3RhdGljIHBhY2sodmFsdWVzOiBJdGVyYWJsZTxhbnk+KSB7XG4gICAgICAgIGxldCB4cyA9IFtdLCBuLCBpID0gMDtcbiAgICAgICAgbGV0IGJpdCA9IDAsIGJ5dGUgPSAwO1xuICAgICAgICBmb3IgKGNvbnN0IHZhbHVlIG9mIHZhbHVlcykge1xuICAgICAgICAgICAgdmFsdWUgJiYgKGJ5dGUgfD0gMSA8PCBiaXQpO1xuICAgICAgICAgICAgaWYgKCsrYml0ID09PSA4KSB7XG4gICAgICAgICAgICAgICAgeHNbaSsrXSA9IGJ5dGU7XG4gICAgICAgICAgICAgICAgYnl0ZSA9IGJpdCA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGkgPT09IDAgfHwgYml0ID4gMCkgeyB4c1tpKytdID0gYnl0ZTsgfVxuICAgICAgICBpZiAoaSAlIDggJiYgKG4gPSBuID0gaSArIDggLSBpICUgOCkpIHtcbiAgICAgICAgICAgIGRvIHsgeHNbaV0gPSAwOyB9IHdoaWxlICgrK2kgPCBuKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IFVpbnQ4QXJyYXkoeHMpO1xuICAgIH1cbiAgICBjb25zdHJ1Y3RvciguLi5saXN0czogVWludDhBcnJheVtdKSB7XG4gICAgICAgIHN1cGVyKC4uLmxpc3RzKTtcbiAgICAgICAgdGhpcy5sZW5ndGggPSB0aGlzLmxpc3RzLnJlZHVjZSgobCwgeHMpID0+IGwgKyB4c1snbGVuZ3RoJ10sIDApO1xuICAgIH1cbiAgICBnZXQoaW5kZXg6IG51bWJlciwgYmF0Y2g/OiBudW1iZXIpIHtcbiAgICAgICAgLyogaW5saW5lZCBgZmluZFZpcnR1YWxgIGltcGwgKi9cbiAgICAgICAgbGV0IHJvd3MsIGxlbmd0aCwgbGlzdHMgPSB0aGlzLmxpc3RzO1xuICAgICAgICBmb3IgKGJhdGNoID0gKGJhdGNoIHx8IDApIC0gMTtcbiAgICAgICAgICAgIChyb3dzID0gbGlzdHNbKytiYXRjaF0pICYmXG4gICAgICAgICAgICAobGVuZ3RoID0gcm93cy5sZW5ndGgpIDw9IGluZGV4ICYmXG4gICAgICAgICAgICAwIDw9IChpbmRleCAtPSBsZW5ndGgpOykge31cbiAgICAgICAgcmV0dXJuICEoIXJvd3MgfHwgaW5kZXggPCAwIHx8IChyb3dzW2luZGV4ID4+IDMgfCAwXSAmIDEgPDwgaW5kZXggJSA4KSA9PT0gMCk7XG4gICAgfVxuICAgIGNvbmNhdCh2ZWN0b3I6IFZhbGlkaXR5VmVjdG9yKSB7XG4gICAgICAgIHJldHVybiBuZXcgVmFsaWRpdHlWZWN0b3IoLi4udGhpcy5saXN0cywgLi4udmVjdG9yLmxpc3RzKTtcbiAgICB9XG4gICAgKltTeW1ib2wuaXRlcmF0b3JdKCkge1xuICAgICAgICBmb3IgKGNvbnN0IGJ5dGUgb2Ygc3VwZXJbU3ltYm9sLml0ZXJhdG9yXSgpKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gLTE7ICsraSA8IDg7KSB7XG4gICAgICAgICAgICAgICAgeWllbGQgKGJ5dGUgJiAxIDw8IGkpICE9PSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVHlwZWRWZWN0b3I8VCwgVEFycmF5VHlwZT4gZXh0ZW5kcyBWaXJ0dWFsVmVjdG9yPFQsIFRBcnJheVR5cGU+IHtcbiAgICBjb25zdHJ1Y3Rvcih2YWxpZGl0eTogVmFsaWRpdHlBcmdzLCAuLi5saXN0czogVEFycmF5VHlwZVtdKSB7XG4gICAgICAgIHN1cGVyKC4uLmxpc3RzKTtcbiAgICAgICAgdmFsaWRpdHkgJiYgKHRoaXMudmFsaWRpdHkgPSBWYWxpZGl0eVZlY3Rvci5mcm9tKHZhbGlkaXR5KSk7XG4gICAgfVxuICAgIGNvbmNhdCh2ZWN0b3I6IFR5cGVkVmVjdG9yPFQsIFRBcnJheVR5cGU+KSB7XG4gICAgICAgIHJldHVybiAodGhpcy5jb25zdHJ1Y3RvciBhcyB0eXBlb2YgVHlwZWRWZWN0b3IpLmZyb20odGhpcyxcbiAgICAgICAgICAgIHRoaXMubGVuZ3RoICsgdmVjdG9yLmxlbmd0aCxcbiAgICAgICAgICAgIHRoaXMudmFsaWRpdHkuY29uY2F0KHZlY3Rvci52YWxpZGl0eSksXG4gICAgICAgICAgICAuLi50aGlzLmxpc3RzLCAuLi52ZWN0b3IubGlzdHNcbiAgICAgICAgKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBCeXRlVmVjdG9yPFRMaXN0PiBleHRlbmRzIFR5cGVkVmVjdG9yPG51bWJlciwgVExpc3Q+IHtcbiAgICBnZXQoaW5kZXg6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy52YWxpZGl0eS5nZXQoaW5kZXgpID8gc3VwZXIuZ2V0KGluZGV4KSA6IG51bGw7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgSW5kZXhWZWN0b3IgZXh0ZW5kcyBUeXBlZFZlY3RvcjxudW1iZXIsIEludDMyQXJyYXk+IHtcbiAgICBnZXQoaW5kZXg6IG51bWJlciwgYmF0Y2g/OiBudW1iZXIpIHtcbiAgICAgICAgLyogaW5saW5lZCBgZmluZFZpcnR1YWxgIGltcGwgKi9cbiAgICAgICAgbGV0IHJvd3MsIGxvY2FsID0gaW5kZXg7XG4gICAgICAgIGxldCBsaXN0cyA9IHRoaXMubGlzdHMsIGxlbmd0aDtcbiAgICAgICAgbGV0IHJvd3NJbmRleCA9IChiYXRjaCB8fCAwKSAtIDE7XG4gICAgICAgIHdoaWxlICgocm93cyA9IGxpc3RzWysrcm93c0luZGV4XSkgJiZcbiAgICAgICAgICAgICAgICgobGVuZ3RoID0gcm93cy5sZW5ndGgpIDw9IGxvY2FsKSAmJlxuICAgICAgICAgICAgICAgKChsb2NhbCAtPSBsZW5ndGgpID49IDApKSB7Lyp3aGVlKi99XG4gICAgICAgIHJldHVybiAocm93cyAmJiBsb2NhbCA+IC0xKSA/IFtyb3dzW2xvY2FsICsgcm93c0luZGV4XSwgcm93c0luZGV4XSA6IFstMSwgMCwgLTFdO1xuICAgIH1cbiAgICAqW1N5bWJvbC5pdGVyYXRvcl0oKSB7XG4gICAgICAgIGxldCB7IGxpc3RzIH0gPSB0aGlzO1xuICAgICAgICBmb3IgKGxldCBpID0gLTEsIG4gPSBsaXN0cy5sZW5ndGg7ICsraSA8IG47KSB7XG4gICAgICAgICAgICBsZXQgbGlzdCA9IGxpc3RzW2ldIGFzIGFueTtcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAtMSwgayA9IGxpc3QubGVuZ3RoOyArK2ogPCBrOykge1xuICAgICAgICAgICAgICAgIHlpZWxkIFtsaXN0W2pdLCBpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIExvbmdWZWN0b3I8VExpc3Q+IGV4dGVuZHMgVHlwZWRWZWN0b3I8TG9uZywgVExpc3Q+IHtcbiAgICBnZXQoaW5kZXg6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gIXRoaXMudmFsaWRpdHkuZ2V0KGluZGV4KSA/IG51bGwgOiBuZXcgTG9uZyhcbiAgICAgICAgICAgIDxhbnk+IHN1cGVyLmdldChpbmRleCAqIDIpLCAgICAgLyogbG93ICovXG4gICAgICAgICAgICA8YW55PiBzdXBlci5nZXQoaW5kZXggKiAyICsgMSkgLyogaGlnaCAqL1xuICAgICAgICApO1xuICAgIH1cbiAgICAqW1N5bWJvbC5pdGVyYXRvcl0oKSB7XG4gICAgICAgIGxldCB2LCBsb3csIGhpZ2g7XG4gICAgICAgIGxldCBpdCA9IHN1cGVyW1N5bWJvbC5pdGVyYXRvcl0oKTtcbiAgICAgICAgbGV0IGl2ID0gdGhpcy52YWxpZGl0eVtTeW1ib2wuaXRlcmF0b3JdKCk7XG4gICAgICAgIHdoaWxlICghKHYgPSBpdi5uZXh0KCkpLmRvbmUgJiYgIShsb3cgPSBpdC5uZXh0KCkpLmRvbmUgJiYgIShoaWdoID0gaXQubmV4dCgpKS5kb25lKSB7XG4gICAgICAgICAgICB5aWVsZCAhdi52YWx1ZSA/IG51bGwgOiBuZXcgTG9uZyhsb3cudmFsdWUsIGhpZ2gudmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRGF0ZVZlY3RvciBleHRlbmRzIFR5cGVkVmVjdG9yPERhdGUsIFVpbnQzMkFycmF5PiB7XG4gICAgZ2V0KGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLnZhbGlkaXR5LmdldChpbmRleCkgPyBudWxsIDogbmV3IERhdGUoXG4gICAgICAgICAgICBNYXRoLnBvdygyLCAzMikgKiBzdXBlci5nZXQoMiAqICsraW5kZXgpICsgc3VwZXIuZ2V0KDIgKiAtLWluZGV4KVxuICAgICAgICApO1xuICAgIH1cbiAgICAqW1N5bWJvbC5pdGVyYXRvcl0oKSB7XG4gICAgICAgIGxldCB2LCBsb3csIGhpZ2g7XG4gICAgICAgIGxldCBpdCA9IHN1cGVyW1N5bWJvbC5pdGVyYXRvcl0oKTtcbiAgICAgICAgbGV0IGl2ID0gdGhpcy52YWxpZGl0eVtTeW1ib2wuaXRlcmF0b3JdKCk7XG4gICAgICAgIHdoaWxlICghKHYgPSBpdi5uZXh0KCkpLmRvbmUgJiYgIShsb3cgPSBpdC5uZXh0KCkpLmRvbmUgJiYgIShoaWdoID0gaXQubmV4dCgpKS5kb25lKSB7XG4gICAgICAgICAgICB5aWVsZCAhdi52YWx1ZSA/IG51bGwgOiBuZXcgRGF0ZShNYXRoLnBvdygyLCAzMikgKiBoaWdoLnZhbHVlICsgbG93LnZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEludDhWZWN0b3IgICAgZXh0ZW5kcyBCeXRlVmVjdG9yPEludDhBcnJheT4gICAge31cbmV4cG9ydCBjbGFzcyBJbnQxNlZlY3RvciAgIGV4dGVuZHMgQnl0ZVZlY3RvcjxJbnQxNkFycmF5PiAgIHt9XG5leHBvcnQgY2xhc3MgSW50MzJWZWN0b3IgICBleHRlbmRzIEJ5dGVWZWN0b3I8SW50MzJBcnJheT4gICB7fVxuZXhwb3J0IGNsYXNzIEludDY0VmVjdG9yICAgZXh0ZW5kcyBMb25nVmVjdG9yPEludDMyQXJyYXk+ICAge31cbmV4cG9ydCBjbGFzcyBVaW50OFZlY3RvciAgIGV4dGVuZHMgQnl0ZVZlY3RvcjxVaW50OEFycmF5PiAgIHt9XG5leHBvcnQgY2xhc3MgVWludDE2VmVjdG9yICBleHRlbmRzIEJ5dGVWZWN0b3I8VWludDE2QXJyYXk+ICB7fVxuZXhwb3J0IGNsYXNzIFVpbnQzMlZlY3RvciAgZXh0ZW5kcyBCeXRlVmVjdG9yPFVpbnQzMkFycmF5PiAge31cbmV4cG9ydCBjbGFzcyBVaW50NjRWZWN0b3IgIGV4dGVuZHMgTG9uZ1ZlY3RvcjxVaW50MzJBcnJheT4gIHt9XG5leHBvcnQgY2xhc3MgRmxvYXQzMlZlY3RvciBleHRlbmRzIEJ5dGVWZWN0b3I8RmxvYXQzMkFycmF5PiB7fVxuZXhwb3J0IGNsYXNzIEZsb2F0NjRWZWN0b3IgZXh0ZW5kcyBCeXRlVmVjdG9yPEZsb2F0NjRBcnJheT4ge31cblxuTG9uZ1ZlY3Rvci5wcm90b3R5cGUuc3RyaWRlID0gMjtcbihWZWN0b3IucHJvdG90eXBlIGFzIGFueSkubGlzdHMgPSBbXTtcbihWZWN0b3IucHJvdG90eXBlIGFzIGFueSkudmFsaWRpdHkgPSBWYWxpZGl0eVZlY3Rvci5jb25zdGFudDtcbihWaXJ0dWFsVmVjdG9yLnByb3RvdHlwZSBhcyBhbnkpLl9hcnJheVR5cGUgPSBBcnJheTtcbihJbnQ4VmVjdG9yLnByb3RvdHlwZSBhcyBhbnkpLl9hcnJheVR5cGUgPSBJbnQ4QXJyYXk7XG4oSW50MTZWZWN0b3IucHJvdG90eXBlIGFzIGFueSkuX2FycmF5VHlwZSA9IEludDE2QXJyYXk7XG4oSW50MzJWZWN0b3IucHJvdG90eXBlIGFzIGFueSkuX2FycmF5VHlwZSA9IEludDMyQXJyYXk7XG4oSW50NjRWZWN0b3IucHJvdG90eXBlIGFzIGFueSkuX2FycmF5VHlwZSA9IEludDMyQXJyYXk7XG4oVWludDhWZWN0b3IucHJvdG90eXBlIGFzIGFueSkuX2FycmF5VHlwZSA9IFVpbnQ4QXJyYXk7XG4oVWludDE2VmVjdG9yLnByb3RvdHlwZSBhcyBhbnkpLl9hcnJheVR5cGUgPSBVaW50MTZBcnJheTtcbihVaW50MzJWZWN0b3IucHJvdG90eXBlIGFzIGFueSkuX2FycmF5VHlwZSA9IFVpbnQzMkFycmF5O1xuKFVpbnQ2NFZlY3Rvci5wcm90b3R5cGUgYXMgYW55KS5fYXJyYXlUeXBlID0gVWludDMyQXJyYXk7XG4oRGF0ZVZlY3Rvci5wcm90b3R5cGUgYXMgYW55KS5fYXJyYXlUeXBlID0gVWludDMyQXJyYXk7XG4oSW5kZXhWZWN0b3IucHJvdG90eXBlIGFzIGFueSkuX2FycmF5VHlwZSA9IEludDMyQXJyYXk7XG4oRmxvYXQzMlZlY3Rvci5wcm90b3R5cGUgYXMgYW55KS5fYXJyYXlUeXBlID0gRmxvYXQzMkFycmF5O1xuKEZsb2F0NjRWZWN0b3IucHJvdG90eXBlIGFzIGFueSkuX2FycmF5VHlwZSA9IEZsb2F0NjRBcnJheTtcblxuZnVuY3Rpb24gYXJyYXlTZXQ8VD4oc291cmNlOiBBcnJheTxUPiwgdGFyZ2V0OiBBcnJheTxUPiwgaW5kZXg6IG51bWJlcikge1xuICAgIGZvciAobGV0IGkgPSAwLCBuID0gc291cmNlLmxlbmd0aDsgaSA8IG47KSB7XG4gICAgICAgIHRhcmdldFtpbmRleCsrXSA9IHNvdXJjZVtpKytdO1xuICAgIH1cbiAgICByZXR1cm4gaW5kZXg7XG59XG5cbmZ1bmN0aW9uIHR5cGVkQXJyYXlTZXQoc291cmNlOiBUeXBlZEFycmF5LCB0YXJnZXQ6IFR5cGVkQXJyYXksIGluZGV4OiBudW1iZXIpIHtcbiAgICByZXR1cm4gdGFyZ2V0LnNldChzb3VyY2UsIGluZGV4KSB8fCBpbmRleCArIHNvdXJjZS5sZW5ndGg7XG59XG5cbi8vIFJhdGhlciB0aGFuIGVhdCB0aGUgaXRlcmF0b3IgY29zdCwgd2UndmUgaW5saW5lZCB0aGlzIGZ1bmN0aW9uIGludG8gdGhlIHJlbGV2YW50IGBnZXRgIGZ1bmN0aW9uc1xuLy8gZnVuY3Rpb24qIGZpbmRWaXJ0dWFsPFRMaXN0PihpbmRleDogbnVtYmVyLCBsaXN0czogVExpc3RbXSwgYmF0Y2g/OiBudW1iZXIpIHtcbi8vICAgICBsZXQgcm93cywgbGVuZ3RoO1xuLy8gICAgIGZvciAoYmF0Y2ggPSAoYmF0Y2ggfHwgMCkgLSAxO1xuLy8gICAgICAgICAocm93cyA9IGxpc3RzWysrYmF0Y2hdKSAmJlxuLy8gICAgICAgICAobGVuZ3RoID0gcm93cy5sZW5ndGgpIDw9IGluZGV4ICYmXG4vLyAgICAgICAgIDAgPD0gKGluZGV4IC09IGxlbmd0aCk7KSB7fVxuLy8gICAgIHJldHVybiByb3dzICYmIC0xIDwgaW5kZXggPyB5aWVsZCBbcm93cywgaW5kZXgsIGJhdGNoXSA6IG51bGw7XG4vLyB9XG5cbmV4cG9ydCB0eXBlIFR5cGVkQXJyYXlDdG9yPFQgZXh0ZW5kcyBUeXBlZEFycmF5PiA9IHtcbiAgICByZWFkb25seSBwcm90b3R5cGU6IFQ7XG4gICAgcmVhZG9ubHkgQllURVNfUEVSX0VMRU1FTlQ6IG51bWJlcjtcbiAgICBuZXcobGVuZ3RoOiBudW1iZXIpOiBUO1xuICAgIG5ldyhhcnJheTogQXJyYXlMaWtlPG51bWJlcj4pOiBUO1xuICAgIG5ldyhidWZmZXI6IEFycmF5QnVmZmVyTGlrZSwgYnl0ZU9mZnNldD86IG51bWJlciwgbGVuZ3RoPzogbnVtYmVyKTogVDtcbn07XG5cbmV4cG9ydCB0eXBlIEZsb2F0QXJyYXkgPSBGbG9hdDMyQXJyYXkgfCBGbG9hdDY0QXJyYXk7XG5leHBvcnQgdHlwZSBJbnRBcnJheSA9IEludDhBcnJheSB8IEludDE2QXJyYXkgfCBJbnQzMkFycmF5IHwgVWludDhDbGFtcGVkQXJyYXkgfCBVaW50OEFycmF5IHwgVWludDE2QXJyYXkgfCBVaW50MzJBcnJheTtcblxuZXhwb3J0IHR5cGUgVHlwZWRBcnJheSA9IChcbiAgICAgICAgICAgIEludDhBcnJheSAgICAgICAgfFxuICAgICAgICAgICAgVWludDhBcnJheSAgICAgICB8XG4gICAgICAgICAgICBJbnQxNkFycmF5ICAgICAgIHxcbiAgICAgICAgICAgIEludDMyQXJyYXkgICAgICAgfFxuICAgICAgICAgICAgVWludDE2QXJyYXkgICAgICB8XG4gICAgICAgICAgICBVaW50MzJBcnJheSAgICAgIHxcbiAgICAgICAgICAgIEZsb2F0MzJBcnJheSAgICAgfFxuICAgICAgICAgICAgRmxvYXQ2NEFycmF5ICAgICB8XG4gICAgICAgICAgICBVaW50OENsYW1wZWRBcnJheSk7XG4iXX0=

@@ -0,1 +1,17 @@

// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
Object.defineProperty(exports, "__esModule", { value: true });

@@ -100,2 +116,2 @@ var tslib_1 = require("tslib");

//# sourceMappingURL=data:application/json;charset=utf8;base64,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LENBQUMsR0FBRyxNQUFNLEdBQUcsQ0FBQztZQUM5QyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQVEsQ0FBQztRQUNqRCxDQUFDO1FBQ0QsTUFBTSxDQUFDLE1BQXFCLENBQUM7SUFDakMsQ0FBQztJQUNBLGlCQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBbEI7Ozs7O29CQUNhLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU07Ozt5QkFBRSxDQUFBLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQTtvQkFDckMscUJBQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBQTs7b0JBQWpCLFNBQWlCLENBQUM7Ozs7OztLQUV6QjtJQW5ETSxrQkFBVyxHQUFHLEVBQUUsQ0FBQztJQUNqQixtQkFBWSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7SUFDekIsa0JBQVcsR0FBRyxZQUFJLENBQUMsWUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBa0R6QyxhQUFDO0NBckRELEFBcURDLElBQUE7QUFyRFksd0JBQU07QUF1RG5CLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztBQUM1QixNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFDNUIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztBQUMzQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDO0FBQzNDLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMiLCJmaWxlIjoidmVjdG9ycy92ZWN0b3IuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBTY2hlbWFfIGZyb20gJy4uL2Zvcm1hdC9TY2hlbWEnO1xuZXhwb3J0IGltcG9ydCBUeXBlID0gU2NoZW1hXy5vcmcuYXBhY2hlLmFycm93LmZsYXRidWYuVHlwZTtcbmV4cG9ydCBpbXBvcnQgRmllbGQgPSBTY2hlbWFfLm9yZy5hcGFjaGUuYXJyb3cuZmxhdGJ1Zi5GaWVsZDtcblxuZXhwb3J0IGZ1bmN0aW9uIHNsaWNlVG9SYW5nZUFyZ3MobGVuZ3RoOiBudW1iZXIsIHN0YXJ0OiBudW1iZXIsIGVuZD86IG51bWJlcikge1xuICAgIGxldCB0b3RhbCA9IGxlbmd0aCwgZnJvbSA9IHN0YXJ0IHx8IDA7XG4gICAgbGV0IHRvID0gZW5kID09PSBlbmQgJiYgdHlwZW9mIGVuZCA9PSAnbnVtYmVyJyA/IGVuZCA6IHRvdGFsO1xuICAgIGlmICh0byA8IDApIHsgdG8gPSB0b3RhbCArIHRvOyB9XG4gICAgaWYgKGZyb20gPCAwKSB7IGZyb20gPSB0b3RhbCAtIChmcm9tICogLTEpICUgdG90YWw7IH1cbiAgICBpZiAodG8gPCBmcm9tKSB7IGZyb20gPSB0bzsgdG8gPSBzdGFydDsgfVxuICAgIHRvdGFsID0gIWlzRmluaXRlKHRvdGFsID0gKHRvIC0gZnJvbSkpIHx8IHRvdGFsIDwgMCA/IDAgOiB0b3RhbDtcbiAgICByZXR1cm4gW2Zyb20sIHRvdGFsXTtcbn1cblxuZXhwb3J0IGNsYXNzIFZlY3RvcjxUPiBpbXBsZW1lbnRzIEl0ZXJhYmxlPFQ+IHtcbiAgICBzdGF0aWMgZGVmYXVsdE5hbWUgPSAnJztcbiAgICBzdGF0aWMgZGVmYXVsdFByb3BzID0gbmV3IE1hcCgpO1xuICAgIHN0YXRpYyBkZWZhdWx0VHlwZSA9IFR5cGVbVHlwZS5OT05FXTtcbiAgICBzdGF0aWMgY3JlYXRlPFQgPSBhbnk+KGZpZWxkOiBGaWVsZCwgbGVuZ3RoOiBudW1iZXIsIC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgICAgIGxldCB2ZWN0b3IgPSBuZXcgdGhpczxUPiguLi5hcmdzKSwgbTtcbiAgICAgICAgdmVjdG9yLmxlbmd0aCA9IGxlbmd0aDtcbiAgICAgICAgdmVjdG9yLm5hbWUgPSBmaWVsZC5uYW1lKCk7XG4gICAgICAgIHZlY3Rvci50eXBlID0gVHlwZVtmaWVsZC50eXBlVHlwZSgpXTtcbiAgICAgICAgaWYgKChtID0gZmllbGQuY3VzdG9tTWV0YWRhdGFMZW5ndGgoKSkgPiAwKSB7XG4gICAgICAgICAgICBsZXQgZW50cnksIGkgPSAwLCBkYXRhID0gdmVjdG9yLnByb3BzID0gbmV3IE1hcCgpO1xuICAgICAgICAgICAgZG8ge1xuICAgICAgICAgICAgICAgIGVudHJ5ID0gZmllbGQuY3VzdG9tTWV0YWRhdGEoaSk7XG4gICAgICAgICAgICAgICAgZGF0YVtlbnRyeS5rZXkoKV0gPSBlbnRyeS52YWx1ZSgpO1xuICAgICAgICAgICAgfSB3aGlsZSAoKytpIDwgbSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZlY3RvcjtcbiAgICB9XG4gICAgc3RhdGljIGZyb208VCA9IGFueT4oc291cmNlOiBWZWN0b3I8VD4sIGxlbmd0aDogbnVtYmVyLCAuLi5hcmdzOiBhbnlbXSkge1xuICAgICAgICBsZXQgdmVjdG9yID0gbmV3IHRoaXM8VD4oLi4uYXJncyk7XG4gICAgICAgIHZlY3Rvci5sZW5ndGggPSBsZW5ndGg7XG4gICAgICAgIHNvdXJjZS5uYW1lICE9PSBWZWN0b3IuZGVmYXVsdE5hbWUgJiYgKHZlY3Rvci5uYW1lID0gc291cmNlLm5hbWUpO1xuICAgICAgICBzb3VyY2UudHlwZSAhPT0gVmVjdG9yLmRlZmF1bHRUeXBlICYmICh2ZWN0b3IudHlwZSA9IHNvdXJjZS50eXBlKTtcbiAgICAgICAgc291cmNlLnByb3BzICE9PSBWZWN0b3IuZGVmYXVsdFByb3BzICYmICh2ZWN0b3IucHJvcHMgPSBzb3VyY2UucHJvcHMpO1xuICAgICAgICByZXR1cm4gdmVjdG9yO1xuICAgIH1cbiAgICBwdWJsaWMgbmFtZTogc3RyaW5nO1xuICAgIHB1YmxpYyB0eXBlOiBzdHJpbmc7XG4gICAgcHVibGljIGxlbmd0aDogbnVtYmVyO1xuICAgIHB1YmxpYyBzdHJpZGU6IG51bWJlcjtcbiAgICBwdWJsaWMgcHJvcHM6IE1hcDxQcm9wZXJ0eUtleSwgYW55PjtcbiAgICBwcm90ZWN0ZWQgdmFsaWRpdHk6IFZlY3Rvcjxib29sZWFuPjtcbiAgICBnZXQoaW5kZXg6IG51bWJlcik6IFQgeyByZXR1cm4gbnVsbDsgfVxuICAgIGNvbmNhdCh2ZWN0b3I6IFZlY3RvcjxUPikgeyByZXR1cm4gdmVjdG9yOyB9XG4gICAgc2xpY2U8UiA9IFQ+KHN0YXJ0PzogbnVtYmVyLCBlbmQ/OiBudW1iZXIsIGJhdGNoPzogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IHsgc3RyaWRlIH0gPSB0aGlzO1xuICAgICAgICBjb25zdCBbb2Zmc2V0LCBsZW5ndGhdID0gc2xpY2VUb1JhbmdlQXJncyhcbiAgICAgICAgICAgIHN0cmlkZSAqIHRoaXMubGVuZ3RoLCBzdHJpZGUgKiAoc3RhcnQgfHwgMCksIHN0cmlkZSAqIGVuZFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gdGhpcy5yYW5nZTxSPihvZmZzZXQsIGxlbmd0aCwgYmF0Y2gpO1xuICAgIH1cbiAgICByYW5nZTxSID0gVD4oaW5kZXg6IG51bWJlciwgbGVuZ3RoOiBudW1iZXIsIGJhdGNoPzogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBBcnJheTxSPihsZW5ndGgpO1xuICAgICAgICBmb3IgKGxldCBpID0gLTEsIG4gPSB0aGlzLmxlbmd0aDsgKytpIDwgbGVuZ3RoOykge1xuICAgICAgICAgICAgcmVzdWx0W2ldID0gdGhpcy5nZXQoKGkgKyBpbmRleCkgJSBuKSBhcyBhbnk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdCBhcyBJdGVyYWJsZTxSPjtcbiAgICB9XG4gICAgKltTeW1ib2wuaXRlcmF0b3JdKCkge1xuICAgICAgICBmb3IgKGxldCBpID0gLTEsIG4gPSB0aGlzLmxlbmd0aDsgKytpIDwgbjspIHtcbiAgICAgICAgICAgIHlpZWxkIHRoaXMuZ2V0KGkpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5WZWN0b3IucHJvdG90eXBlLmxlbmd0aCA9IDA7XG5WZWN0b3IucHJvdG90eXBlLnN0cmlkZSA9IDE7XG5WZWN0b3IucHJvdG90eXBlLm5hbWUgPSBWZWN0b3IuZGVmYXVsdE5hbWU7XG5WZWN0b3IucHJvdG90eXBlLnR5cGUgPSBWZWN0b3IuZGVmYXVsdFR5cGU7XG5WZWN0b3IucHJvdG90eXBlLnByb3BzID0gVmVjdG9yLmRlZmF1bHRQcm9wcztcbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf8;base64,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TSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztBQUMzQyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDIiwiZmlsZSI6InZlY3RvcnMvdmVjdG9yLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZVxuLy8gb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlXG4vLyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvblxuLy8gcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZVxuLy8gdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZVxuLy8gXCJMaWNlbnNlXCIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4vLyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4vL1xuLy8gICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbi8vXG4vLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsXG4vLyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhblxuLy8gXCJBUyBJU1wiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTllcbi8vIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZVxuLy8gc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9uc1xuLy8gdW5kZXIgdGhlIExpY2Vuc2UuXG5cbmltcG9ydCAqIGFzIFNjaGVtYV8gZnJvbSAnLi4vZm9ybWF0L1NjaGVtYSc7XG5leHBvcnQgaW1wb3J0IFR5cGUgPSBTY2hlbWFfLm9yZy5hcGFjaGUuYXJyb3cuZmxhdGJ1Zi5UeXBlO1xuZXhwb3J0IGltcG9ydCBGaWVsZCA9IFNjaGVtYV8ub3JnLmFwYWNoZS5hcnJvdy5mbGF0YnVmLkZpZWxkO1xuXG5leHBvcnQgZnVuY3Rpb24gc2xpY2VUb1JhbmdlQXJncyhsZW5ndGg6IG51bWJlciwgc3RhcnQ6IG51bWJlciwgZW5kPzogbnVtYmVyKSB7XG4gICAgbGV0IHRvdGFsID0gbGVuZ3RoLCBmcm9tID0gc3RhcnQgfHwgMDtcbiAgICBsZXQgdG8gPSBlbmQgPT09IGVuZCAmJiB0eXBlb2YgZW5kID09ICdudW1iZXInID8gZW5kIDogdG90YWw7XG4gICAgaWYgKHRvIDwgMCkgeyB0byA9IHRvdGFsICsgdG87IH1cbiAgICBpZiAoZnJvbSA8IDApIHsgZnJvbSA9IHRvdGFsIC0gKGZyb20gKiAtMSkgJSB0b3RhbDsgfVxuICAgIGlmICh0byA8IGZyb20pIHsgZnJvbSA9IHRvOyB0byA9IHN0YXJ0OyB9XG4gICAgdG90YWwgPSAhaXNGaW5pdGUodG90YWwgPSAodG8gLSBmcm9tKSkgfHwgdG90YWwgPCAwID8gMCA6IHRvdGFsO1xuICAgIHJldHVybiBbZnJvbSwgdG90YWxdO1xufVxuXG5leHBvcnQgY2xhc3MgVmVjdG9yPFQ+IGltcGxlbWVudHMgSXRlcmFibGU8VD4ge1xuICAgIHN0YXRpYyBkZWZhdWx0TmFtZSA9ICcnO1xuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSBuZXcgTWFwKCk7XG4gICAgc3RhdGljIGRlZmF1bHRUeXBlID0gVHlwZVtUeXBlLk5PTkVdO1xuICAgIHN0YXRpYyBjcmVhdGU8VCA9IGFueT4oZmllbGQ6IEZpZWxkLCBsZW5ndGg6IG51bWJlciwgLi4uYXJnczogYW55W10pIHtcbiAgICAgICAgbGV0IHZlY3RvciA9IG5ldyB0aGlzPFQ+KC4uLmFyZ3MpLCBtO1xuICAgICAgICB2ZWN0b3IubGVuZ3RoID0gbGVuZ3RoO1xuICAgICAgICB2ZWN0b3IubmFtZSA9IGZpZWxkLm5hbWUoKTtcbiAgICAgICAgdmVjdG9yLnR5cGUgPSBUeXBlW2ZpZWxkLnR5cGVUeXBlKCldO1xuICAgICAgICBpZiAoKG0gPSBmaWVsZC5jdXN0b21NZXRhZGF0YUxlbmd0aCgpKSA+IDApIHtcbiAgICAgICAgICAgIGxldCBlbnRyeSwgaSA9IDAsIGRhdGEgPSB2ZWN0b3IucHJvcHMgPSBuZXcgTWFwKCk7XG4gICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgICAgZW50cnkgPSBmaWVsZC5jdXN0b21NZXRhZGF0YShpKTtcbiAgICAgICAgICAgICAgICBkYXRhW2VudHJ5LmtleSgpXSA9IGVudHJ5LnZhbHVlKCk7XG4gICAgICAgICAgICB9IHdoaWxlICgrK2kgPCBtKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmVjdG9yO1xuICAgIH1cbiAgICBzdGF0aWMgZnJvbTxUID0gYW55Pihzb3VyY2U6IFZlY3RvcjxUPiwgbGVuZ3RoOiBudW1iZXIsIC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgICAgIGxldCB2ZWN0b3IgPSBuZXcgdGhpczxUPiguLi5hcmdzKTtcbiAgICAgICAgdmVjdG9yLmxlbmd0aCA9IGxlbmd0aDtcbiAgICAgICAgc291cmNlLm5hbWUgIT09IFZlY3Rvci5kZWZhdWx0TmFtZSAmJiAodmVjdG9yLm5hbWUgPSBzb3VyY2UubmFtZSk7XG4gICAgICAgIHNvdXJjZS50eXBlICE9PSBWZWN0b3IuZGVmYXVsdFR5cGUgJiYgKHZlY3Rvci50eXBlID0gc291cmNlLnR5cGUpO1xuICAgICAgICBzb3VyY2UucHJvcHMgIT09IFZlY3Rvci5kZWZhdWx0UHJvcHMgJiYgKHZlY3Rvci5wcm9wcyA9IHNvdXJjZS5wcm9wcyk7XG4gICAgICAgIHJldHVybiB2ZWN0b3I7XG4gICAgfVxuICAgIHB1YmxpYyBuYW1lOiBzdHJpbmc7XG4gICAgcHVibGljIHR5cGU6IHN0cmluZztcbiAgICBwdWJsaWMgbGVuZ3RoOiBudW1iZXI7XG4gICAgcHVibGljIHN0cmlkZTogbnVtYmVyO1xuICAgIHB1YmxpYyBwcm9wczogTWFwPFByb3BlcnR5S2V5LCBhbnk+O1xuICAgIHByb3RlY3RlZCB2YWxpZGl0eTogVmVjdG9yPGJvb2xlYW4+O1xuICAgIGdldChpbmRleDogbnVtYmVyKTogVCB7IHJldHVybiBudWxsOyB9XG4gICAgY29uY2F0KHZlY3RvcjogVmVjdG9yPFQ+KSB7IHJldHVybiB2ZWN0b3I7IH1cbiAgICBzbGljZTxSID0gVD4oc3RhcnQ/OiBudW1iZXIsIGVuZD86IG51bWJlciwgYmF0Y2g/OiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgeyBzdHJpZGUgfSA9IHRoaXM7XG4gICAgICAgIGNvbnN0IFtvZmZzZXQsIGxlbmd0aF0gPSBzbGljZVRvUmFuZ2VBcmdzKFxuICAgICAgICAgICAgc3RyaWRlICogdGhpcy5sZW5ndGgsIHN0cmlkZSAqIChzdGFydCB8fCAwKSwgc3RyaWRlICogZW5kXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiB0aGlzLnJhbmdlPFI+KG9mZnNldCwgbGVuZ3RoLCBiYXRjaCk7XG4gICAgfVxuICAgIHJhbmdlPFIgPSBUPihpbmRleDogbnVtYmVyLCBsZW5ndGg6IG51bWJlciwgYmF0Y2g/OiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gbmV3IEFycmF5PFI+KGxlbmd0aCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAtMSwgbiA9IHRoaXMubGVuZ3RoOyArK2kgPCBsZW5ndGg7KSB7XG4gICAgICAgICAgICByZXN1bHRbaV0gPSB0aGlzLmdldCgoaSArIGluZGV4KSAlIG4pIGFzIGFueTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0IGFzIEl0ZXJhYmxlPFI+O1xuICAgIH1cbiAgICAqW1N5bWJvbC5pdGVyYXRvcl0oKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAtMSwgbiA9IHRoaXMubGVuZ3RoOyArK2kgPCBuOykge1xuICAgICAgICAgICAgeWllbGQgdGhpcy5nZXQoaSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cblZlY3Rvci5wcm90b3R5cGUubGVuZ3RoID0gMDtcblZlY3Rvci5wcm90b3R5cGUuc3RyaWRlID0gMTtcblZlY3Rvci5wcm90b3R5cGUubmFtZSA9IFZlY3Rvci5kZWZhdWx0TmFtZTtcblZlY3Rvci5wcm90b3R5cGUudHlwZSA9IFZlY3Rvci5kZWZhdWx0VHlwZTtcblZlY3Rvci5wcm90b3R5cGUucHJvcHMgPSBWZWN0b3IuZGVmYXVsdFByb3BzO1xuIl19
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc