Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@apache-arrow/esnext-esm

Package Overview
Dependencies
Maintainers
1
Versions
45
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@apache-arrow/esnext-esm - 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.
import { Vector as Vector_ } from './vectors/vector';

@@ -58,2 +74,2 @@ import { StructVector as StructVector_ } from './vectors/struct';

//# sourceMappingURL=data:application/json;charset=utf8;base64,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QUFDO1FBQy9DLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxhQUFhLENBQUMsR0FBRyxZQUFZLENBQUM7UUFDL0MsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxHQUFHLGFBQWEsQ0FBQztRQUNqRCxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsY0FBYyxDQUFDLEdBQUcsYUFBYSxDQUFDO1FBQ2pELEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxjQUFjLENBQUMsR0FBRyxhQUFhLENBQUM7UUFDakQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxHQUFHLGNBQWMsQ0FBQztRQUNuRCxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsZUFBZSxDQUFDLEdBQUcsY0FBYyxDQUFDO1FBQ25ELEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxjQUFjLENBQUMsR0FBRyxhQUFhLENBQUM7UUFDakQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsZUFBZSxDQUFDO1FBQ3JELEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLGlCQUFpQixDQUFDO1FBQ3pELEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLG9CQUFvQixDQUFDO0lBQ25FLENBQUM7QUFDTCxDQUFDO0FBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUEwQixDQUFDO0FBQ3hDLDBCQUEwQiIsImZpbGUiOiJBcnJvdy5pbnRlcm5hbC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZlY3RvciBhcyBWZWN0b3JfIH0gZnJvbSAnLi92ZWN0b3JzL3ZlY3Rvcic7XG5pbXBvcnQgeyBTdHJ1Y3RWZWN0b3IgYXMgU3RydWN0VmVjdG9yXyB9IGZyb20gJy4vdmVjdG9ycy9zdHJ1Y3QnO1xuaW1wb3J0IHsgRGljdGlvbmFyeVZlY3RvciBhcyBEaWN0aW9uYXJ5VmVjdG9yXyB9IGZyb20gJy4vdmVjdG9ycy9kaWN0aW9uYXJ5JztcbmltcG9ydCB7IExpc3RWZWN0b3IgYXMgTGlzdFZlY3Rvcl8sIFV0ZjhWZWN0b3IgYXMgVXRmOFZlY3Rvcl8sIEZpeGVkU2l6ZUxpc3RWZWN0b3IgYXMgRml4ZWRTaXplTGlzdFZlY3Rvcl8gfSBmcm9tICcuL3ZlY3RvcnMvbGlzdCc7XG5pbXBvcnQge1xuICAgIFR5cGVkVmVjdG9yIGFzIFR5cGVkVmVjdG9yXywgVmFsaWRpdHlWZWN0b3IgYXMgVmFsaWRpdHlWZWN0b3JfLFxuICAgIERhdGVWZWN0b3IgYXMgRGF0ZVZlY3Rvcl8sIEluZGV4VmVjdG9yIGFzIEluZGV4VmVjdG9yXyxcbiAgICBJbnQ4VmVjdG9yIGFzIEludDhWZWN0b3JfLCBJbnQxNlZlY3RvciBhcyBJbnQxNlZlY3Rvcl8sXG4gICAgSW50MzJWZWN0b3IgYXMgSW50MzJWZWN0b3JfLCBJbnQ2NFZlY3RvciBhcyBJbnQ2NFZlY3Rvcl8sXG4gICAgVWludDhWZWN0b3IgYXMgVWludDhWZWN0b3JfLCBVaW50MTZWZWN0b3IgYXMgVWludDE2VmVjdG9yXyxcbiAgICBVaW50MzJWZWN0b3IgYXMgVWludDMyVmVjdG9yXywgVWludDY0VmVjdG9yIGFzIFVpbnQ2NFZlY3Rvcl8sXG4gICAgRmxvYXQzMlZlY3RvciBhcyBGbG9hdDMyVmVjdG9yXywgRmxvYXQ2NFZlY3RvciBhcyBGbG9hdDY0VmVjdG9yXyxcbn0gZnJvbSAnLi92ZWN0b3JzL3R5cGVkJztcblxuZXhwb3J0IGNvbnN0IHZlY3RvcnMgPSB7XG4gICAgVmVjdG9yOiBWZWN0b3JfLFxuICAgIExpc3RWZWN0b3I6IExpc3RWZWN0b3JfLFxuICAgIFV0ZjhWZWN0b3I6IFV0ZjhWZWN0b3JfLFxuICAgIERhdGVWZWN0b3I6IERhdGVWZWN0b3JfLFxuICAgIEluZGV4VmVjdG9yOiBJbmRleFZlY3Rvcl8sXG4gICAgVHlwZWRWZWN0b3I6IFR5cGVkVmVjdG9yXyxcbiAgICBJbnQ4VmVjdG9yOiBJbnQ4VmVjdG9yXyxcbiAgICBJbnQxNlZlY3RvcjogSW50MTZWZWN0b3JfLFxuICAgIEludDMyVmVjdG9yOiBJbnQzMlZlY3Rvcl8sXG4gICAgSW50NjRWZWN0b3I6IEludDY0VmVjdG9yXyxcbiAgICBVaW50OFZlY3RvcjogVWludDhWZWN0b3JfLFxuICAgIFVpbnQxNlZlY3RvcjogVWludDE2VmVjdG9yXyxcbiAgICBVaW50MzJWZWN0b3I6IFVpbnQzMlZlY3Rvcl8sXG4gICAgVWludDY0VmVjdG9yOiBVaW50NjRWZWN0b3JfLFxuICAgIEZsb2F0MzJWZWN0b3I6IEZsb2F0MzJWZWN0b3JfLFxuICAgIEZsb2F0NjRWZWN0b3I6IEZsb2F0NjRWZWN0b3JfLFxuICAgIFN0cnVjdFZlY3RvcjogU3RydWN0VmVjdG9yXyxcbiAgICBWYWxpZGl0eVZlY3RvcjogVmFsaWRpdHlWZWN0b3JfLFxuICAgIERpY3Rpb25hcnlWZWN0b3I6IERpY3Rpb25hcnlWZWN0b3JfLFxuICAgIEZpeGVkU2l6ZUxpc3RWZWN0b3I6IEZpeGVkU2l6ZUxpc3RWZWN0b3JfLFxufTtcblxuZXhwb3J0IG5hbWVzcGFjZSB2ZWN0b3JzIHtcbiAgICBleHBvcnQgdHlwZSBWZWN0b3I8VD4gPSAgVmVjdG9yXzxUPjtcbiAgICBleHBvcnQgdHlwZSBMaXN0VmVjdG9yPFQ+ID0gIExpc3RWZWN0b3JfPFQ+O1xuICAgIGV4cG9ydCB0eXBlIFV0ZjhWZWN0b3IgPSAgVXRmOFZlY3Rvcl87XG4gICAgZXhwb3J0IHR5cGUgRGF0ZVZlY3RvciA9ICBEYXRlVmVjdG9yXztcbiAgICBleHBvcnQgdHlwZSBJbmRleFZlY3RvciA9ICBJbmRleFZlY3Rvcl87XG4gICAgZXhwb3J0IHR5cGUgSW50OFZlY3RvciA9ICBJbnQ4VmVjdG9yXztcbiAgICBleHBvcnQgdHlwZSBJbnQxNlZlY3RvciA9ICBJbnQxNlZlY3Rvcl87XG4gICAgZXhwb3J0IHR5cGUgSW50MzJWZWN0b3IgPSAgSW50MzJWZWN0b3JfO1xuICAgIGV4cG9ydCB0eXBlIEludDY0VmVjdG9yID0gIEludDY0VmVjdG9yXztcbiAgICBleHBvcnQgdHlwZSBVaW50OFZlY3RvciA9ICBVaW50OFZlY3Rvcl87XG4gICAgZXhwb3J0IHR5cGUgVWludDE2VmVjdG9yID0gIFVpbnQxNlZlY3Rvcl87XG4gICAgZXhwb3J0IHR5cGUgVWludDMyVmVjdG9yID0gIFVpbnQzMlZlY3Rvcl87XG4gICAgZXhwb3J0IHR5cGUgVWludDY0VmVjdG9yID0gIFVpbnQ2NFZlY3Rvcl87XG4gICAgZXhwb3J0IHR5cGUgRmxvYXQzMlZlY3RvciA9ICBGbG9hdDMyVmVjdG9yXztcbiAgICBleHBvcnQgdHlwZSBGbG9hdDY0VmVjdG9yID0gIEZsb2F0NjRWZWN0b3JfO1xuICAgIGV4cG9ydCB0eXBlIFN0cnVjdFZlY3RvciA9ICBTdHJ1Y3RWZWN0b3JfO1xuICAgIGV4cG9ydCB0eXBlIFZhbGlkaXR5VmVjdG9yID0gIFZhbGlkaXR5VmVjdG9yXztcbiAgICBleHBvcnQgdHlwZSBEaWN0aW9uYXJ5VmVjdG9yPFQ+ID0gIERpY3Rpb25hcnlWZWN0b3JfPFQ+O1xuICAgIGV4cG9ydCB0eXBlIEZpeGVkU2l6ZUxpc3RWZWN0b3I8VD4gPSAgRml4ZWRTaXplTGlzdFZlY3Rvcl88VD47XG4gICAgZXhwb3J0IHR5cGUgVHlwZWRWZWN0b3I8VCwgVEFycmF5PiA9ICBUeXBlZFZlY3Rvcl88VCwgVEFycmF5Pjtcbn1cblxuLyogVGhlc2UgZXhwb3J0cyBhcmUgbmVlZGVkIGZvciB0aGUgY2xvc3VyZSB1bWQgdGFyZ2V0cyAqL1xudHJ5IHtcbiAgICBjb25zdCBBcnJvdyA9IGV2YWwoJ2V4cG9ydHMnKTtcbiAgICBpZiAodHlwZW9mIEFycm93ID09PSAnb2JqZWN0Jykge1xuICAgICAgICAvLyBzdHJpbmcgaW5kZXhlcnMgdGVsbCBjbG9zdXJlIGNvbXBpbGVyIG5vdCB0byByZW5hbWUgdGhlc2UgcHJvcGVydGllc1xuICAgICAgICBBcnJvd1sndmVjdG9ycyddID0ge307XG4gICAgICAgIEFycm93Wyd2ZWN0b3JzJ11bJ1ZlY3RvciddID0gVmVjdG9yXztcbiAgICAgICAgQXJyb3dbJ3ZlY3RvcnMnXVsnTGlzdFZlY3RvciddID0gTGlzdFZlY3Rvcl87XG4gICAgICAgIEFycm93Wyd2ZWN0b3JzJ11bJ1V0ZjhWZWN0b3InXSA9IFV0ZjhWZWN0b3JfO1xuICAgICAgICBBcnJvd1sndmVjdG9ycyddWydEYXRlVmVjdG9yJ10gPSBEYXRlVmVjdG9yXztcbiAgICAgICAgQXJyb3dbJ3ZlY3RvcnMnXVsnSW5kZXhWZWN0b3InXSA9IEluZGV4VmVjdG9yXztcbiAgICAgICAgQXJyb3dbJ3ZlY3RvcnMnXVsnSW50OFZlY3RvciddID0gSW50OFZlY3Rvcl87XG4gICAgICAgIEFycm93Wyd2ZWN0b3JzJ11bJ0ludDE2VmVjdG9yJ10gPSBJbnQxNlZlY3Rvcl87XG4gICAgICAgIEFycm93Wyd2ZWN0b3JzJ11bJ0ludDMyVmVjdG9yJ10gPSBJbnQzMlZlY3Rvcl87XG4gICAgICAgIEFycm93Wyd2ZWN0b3JzJ11bJ0ludDY0VmVjdG9yJ10gPSBJbnQ2NFZlY3Rvcl87XG4gICAgICAgIEFycm93Wyd2ZWN0b3JzJ11bJ1VpbnQ4VmVjdG9yJ10gPSBVaW50OFZlY3Rvcl87XG4gICAgICAgIEFycm93Wyd2ZWN0b3JzJ11bJ1VpbnQxNlZlY3RvciddID0gVWludDE2VmVjdG9yXztcbiAgICAgICAgQXJyb3dbJ3ZlY3RvcnMnXVsnVWludDMyVmVjdG9yJ10gPSBVaW50MzJWZWN0b3JfO1xuICAgICAgICBBcnJvd1sndmVjdG9ycyddWydVaW50NjRWZWN0b3InXSA9IFVpbnQ2NFZlY3Rvcl87XG4gICAgICAgIEFycm93Wyd2ZWN0b3JzJ11bJ0Zsb2F0MzJWZWN0b3InXSA9IEZsb2F0MzJWZWN0b3JfO1xuICAgICAgICBBcnJvd1sndmVjdG9ycyddWydGbG9hdDY0VmVjdG9yJ10gPSBGbG9hdDY0VmVjdG9yXztcbiAgICAgICAgQXJyb3dbJ3ZlY3RvcnMnXVsnU3RydWN0VmVjdG9yJ10gPSBTdHJ1Y3RWZWN0b3JfO1xuICAgICAgICBBcnJvd1sndmVjdG9ycyddWydWYWxpZGl0eVZlY3RvciddID0gVmFsaWRpdHlWZWN0b3JfO1xuICAgICAgICBBcnJvd1sndmVjdG9ycyddWydEaWN0aW9uYXJ5VmVjdG9yJ10gPSBEaWN0aW9uYXJ5VmVjdG9yXztcbiAgICAgICAgQXJyb3dbJ3ZlY3RvcnMnXVsnRml4ZWRTaXplTGlzdFZlY3RvciddID0gRml4ZWRTaXplTGlzdFZlY3Rvcl87XG4gICAgfVxufSBjYXRjaCAoZSkgeyAvKiBub3QgdGhlIFVNRCBidW5kbGUgKi8gfVxuLyoqIGVuZCBjbG9zdXJlIGV4cG9ydHMgKi9cbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf8;base64,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dGVudCI6WyIvLyBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lXG4vLyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGVcbi8vIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uXG4vLyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlXG4vLyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlXG4vLyBcIkxpY2Vuc2VcIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Vcbi8vIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbi8vXG4vLyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuLy9cbi8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZyxcbi8vIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuXG4vLyBcIkFTIElTXCIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWVxuLy8gS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlXG4vLyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zXG4vLyB1bmRlciB0aGUgTGljZW5zZS5cblxuaW1wb3J0IHsgVmVjdG9yIGFzIFZlY3Rvcl8gfSBmcm9tICcuL3ZlY3RvcnMvdmVjdG9yJztcbmltcG9ydCB7IFN0cnVjdFZlY3RvciBhcyBTdHJ1Y3RWZWN0b3JfIH0gZnJvbSAnLi92ZWN0b3JzL3N0cnVjdCc7XG5pbXBvcnQgeyBEaWN0aW9uYXJ5VmVjdG9yIGFzIERpY3Rpb25hcnlWZWN0b3JfIH0gZnJvbSAnLi92ZWN0b3JzL2RpY3Rpb25hcnknO1xuaW1wb3J0IHsgTGlzdFZlY3RvciBhcyBMaXN0VmVjdG9yXywgVXRmOFZlY3RvciBhcyBVdGY4VmVjdG9yXywgRml4ZWRTaXplTGlzdFZlY3RvciBhcyBGaXhlZFNpemVMaXN0VmVjdG9yXyB9IGZyb20gJy4vdmVjdG9ycy9saXN0JztcbmltcG9ydCB7XG4gICAgVHlwZWRWZWN0b3IgYXMgVHlwZWRWZWN0b3JfLCBWYWxpZGl0eVZlY3RvciBhcyBWYWxpZGl0eVZlY3Rvcl8sXG4gICAgRGF0ZVZlY3RvciBhcyBEYXRlVmVjdG9yXywgSW5kZXhWZWN0b3IgYXMgSW5kZXhWZWN0b3JfLFxuICAgIEludDhWZWN0b3IgYXMgSW50OFZlY3Rvcl8sIEludDE2VmVjdG9yIGFzIEludDE2VmVjdG9yXyxcbiAgICBJbnQzMlZlY3RvciBhcyBJbnQzMlZlY3Rvcl8sIEludDY0VmVjdG9yIGFzIEludDY0VmVjdG9yXyxcbiAgICBVaW50OFZlY3RvciBhcyBVaW50OFZlY3Rvcl8sIFVpbnQxNlZlY3RvciBhcyBVaW50MTZWZWN0b3JfLFxuICAgIFVpbnQzMlZlY3RvciBhcyBVaW50MzJWZWN0b3JfLCBVaW50NjRWZWN0b3IgYXMgVWludDY0VmVjdG9yXyxcbiAgICBGbG9hdDMyVmVjdG9yIGFzIEZsb2F0MzJWZWN0b3JfLCBGbG9hdDY0VmVjdG9yIGFzIEZsb2F0NjRWZWN0b3JfLFxufSBmcm9tICcuL3ZlY3RvcnMvdHlwZWQnO1xuXG5leHBvcnQgY29uc3QgdmVjdG9ycyA9IHtcbiAgICBWZWN0b3I6IFZlY3Rvcl8sXG4gICAgTGlzdFZlY3RvcjogTGlzdFZlY3Rvcl8sXG4gICAgVXRmOFZlY3RvcjogVXRmOFZlY3Rvcl8sXG4gICAgRGF0ZVZlY3RvcjogRGF0ZVZlY3Rvcl8sXG4gICAgSW5kZXhWZWN0b3I6IEluZGV4VmVjdG9yXyxcbiAgICBUeXBlZFZlY3RvcjogVHlwZWRWZWN0b3JfLFxuICAgIEludDhWZWN0b3I6IEludDhWZWN0b3JfLFxuICAgIEludDE2VmVjdG9yOiBJbnQxNlZlY3Rvcl8sXG4gICAgSW50MzJWZWN0b3I6IEludDMyVmVjdG9yXyxcbiAgICBJbnQ2NFZlY3RvcjogSW50NjRWZWN0b3JfLFxuICAgIFVpbnQ4VmVjdG9yOiBVaW50OFZlY3Rvcl8sXG4gICAgVWludDE2VmVjdG9yOiBVaW50MTZWZWN0b3JfLFxuICAgIFVpbnQzMlZlY3RvcjogVWludDMyVmVjdG9yXyxcbiAgICBVaW50NjRWZWN0b3I6IFVpbnQ2NFZlY3Rvcl8sXG4gICAgRmxvYXQzMlZlY3RvcjogRmxvYXQzMlZlY3Rvcl8sXG4gICAgRmxvYXQ2NFZlY3RvcjogRmxvYXQ2NFZlY3Rvcl8sXG4gICAgU3RydWN0VmVjdG9yOiBTdHJ1Y3RWZWN0b3JfLFxuICAgIFZhbGlkaXR5VmVjdG9yOiBWYWxpZGl0eVZlY3Rvcl8sXG4gICAgRGljdGlvbmFyeVZlY3RvcjogRGljdGlvbmFyeVZlY3Rvcl8sXG4gICAgRml4ZWRTaXplTGlzdFZlY3RvcjogRml4ZWRTaXplTGlzdFZlY3Rvcl8sXG59O1xuXG5leHBvcnQgbmFtZXNwYWNlIHZlY3RvcnMge1xuICAgIGV4cG9ydCB0eXBlIFZlY3RvcjxUPiA9ICBWZWN0b3JfPFQ+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.
import { Table } from './table';

@@ -16,2 +32,2 @@ import { readBuffers } from './reader/arrow';

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFycm93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDaEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLENBQUM7QUFFOUIsMERBQTBEO0FBQzFELElBQUksQ0FBQztJQUNELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5QixFQUFFLENBQUMsQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQzVCLHVFQUF1RTtRQUN2RSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxhQUFhLENBQUMsR0FBRyxXQUFXLENBQUM7SUFDdkMsQ0FBQztBQUNMLENBQUM7QUFBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQTBCLENBQUM7QUFDeEMsMEJBQTBCIiwiZmlsZSI6IkFycm93LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGFibGUgfSBmcm9tICcuL3RhYmxlJztcbmltcG9ydCB7IHJlYWRCdWZmZXJzIH0gZnJvbSAnLi9yZWFkZXIvYXJyb3cnO1xuZXhwb3J0IHsgVGFibGUsIHJlYWRCdWZmZXJzIH07XG5cbi8qIFRoZXNlIGV4cG9ydHMgYXJlIG5lZWRlZCBmb3IgdGhlIGNsb3N1cmUgdW1kIHRhcmdldHMgKi9cbnRyeSB7XG4gICAgY29uc3QgQXJyb3cgPSBldmFsKCdleHBvcnRzJyk7XG4gICAgaWYgKHR5cGVvZiBBcnJvdyA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgLy8gc3RyaW5nIGluZGV4ZXJzIHRlbGwgY2xvc3VyZSBjb21waWxlciBub3QgdG8gcmVuYW1lIHRoZXNlIHByb3BlcnRpZXNcbiAgICAgICAgQXJyb3dbJ1RhYmxlJ10gPSBUYWJsZTtcbiAgICAgICAgQXJyb3dbJ3JlYWRCdWZmZXJzJ10gPSByZWFkQnVmZmVycztcbiAgICB9XG59IGNhdGNoIChlKSB7IC8qIG5vdCB0aGUgVU1EIGJ1bmRsZSAqLyB9XG4vKiogZW5kIGNsb3N1cmUgZXhwb3J0cyAqL1xuIl19
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFycm93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDZEQUE2RDtBQUM3RCwrREFBK0Q7QUFDL0Qsd0RBQXdEO0FBQ3hELDZEQUE2RDtBQUM3RCxvREFBb0Q7QUFDcEQsNkRBQTZEO0FBQzdELDZEQUE2RDtBQUM3RCxFQUFFO0FBQ0YsK0NBQStDO0FBQy9DLEVBQUU7QUFDRiw2REFBNkQ7QUFDN0QsOERBQThEO0FBQzlELHlEQUF5RDtBQUN6RCw0REFBNEQ7QUFDNUQsMERBQTBEO0FBQzFELHFCQUFxQjtBQUVyQixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxDQUFDO0FBRTlCLDBEQUEwRDtBQUMxRCxJQUFJLENBQUM7SUFDRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUIsRUFBRSxDQUFDLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQztRQUM1Qix1RUFBdUU7UUFDdkUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUN2QixLQUFLLENBQUMsYUFBYSxDQUFDLEdBQUcsV0FBVyxDQUFDO0lBQ3ZDLENBQUM7QUFDTCxDQUFDO0FBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUEwQixDQUFDO0FBQ3hDLDBCQUEwQiIsImZpbGUiOiJBcnJvdy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmVcbi8vIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZVxuLy8gZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb25cbi8vIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGVcbi8vIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGVcbi8vIFwiTGljZW5zZVwiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuLy8gd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuLy9cbi8vICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4vL1xuLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLFxuLy8gc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW5cbi8vIFwiQVMgSVNcIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZXG4vLyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGVcbi8vIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnNcbi8vIHVuZGVyIHRoZSBMaWNlbnNlLlxuXG5pbXBvcnQgeyBUYWJsZSB9IGZyb20gJy4vdGFibGUnO1xuaW1wb3J0IHsgcmVhZEJ1ZmZlcnMgfSBmcm9tICcuL3JlYWRlci9hcnJvdyc7XG5leHBvcnQgeyBUYWJsZSwgcmVhZEJ1ZmZlcnMgfTtcblxuLyogVGhlc2UgZXhwb3J0cyBhcmUgbmVlZGVkIGZvciB0aGUgY2xvc3VyZSB1bWQgdGFyZ2V0cyAqL1xudHJ5IHtcbiAgICBjb25zdCBBcnJvdyA9IGV2YWwoJ2V4cG9ydHMnKTtcbiAgICBpZiAodHlwZW9mIEFycm93ID09PSAnb2JqZWN0Jykge1xuICAgICAgICAvLyBzdHJpbmcgaW5kZXhlcnMgdGVsbCBjbG9zdXJlIGNvbXBpbGVyIG5vdCB0byByZW5hbWUgdGhlc2UgcHJvcGVydGllc1xuICAgICAgICBBcnJvd1snVGFibGUnXSA9IFRhYmxlO1xuICAgICAgICBBcnJvd1sncmVhZEJ1ZmZlcnMnXSA9IHJlYWRCdWZmZXJzO1xuICAgIH1cbn0gY2F0Y2ggKGUpIHsgLyogbm90IHRoZSBVTUQgYnVuZGxlICovIH1cbi8qKiBlbmQgY2xvc3VyZSBleHBvcnRzICovXG4iXX0=

@@ -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/esnext-esm",
"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.
import { flatbuffers } from 'flatbuffers';

@@ -58,2 +74,2 @@ import * as Schema_ from '../format/Schema';

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

@@ -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.
import { readVector } from './vector';

@@ -13,2 +29,2 @@ export function* readDictionaries(field, batch, iterator, dictionaries) {

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJlYWRlci9kaWN0aW9uYXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFRdEMsTUFBTSw0QkFBNEIsS0FBWSxFQUNaLEtBQW1CLEVBQ25CLFFBQXVCLEVBQ3ZCLFlBQTBCO0lBQ3hELElBQUksRUFBVSxFQUFFLFFBQTRCLENBQUM7SUFDN0MsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQy9CLENBQUMsRUFBRSxHQUFHLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5QyxNQUFNLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFDRCxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLGNBQWMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO1FBQ3BELE9BQU8sZ0JBQWdCLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzlFLENBQUM7QUFDTCxDQUFDIiwiZmlsZSI6InJlYWRlci9kaWN0aW9uYXJ5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVhZFZlY3RvciB9IGZyb20gJy4vdmVjdG9yJztcbmltcG9ydCB7IE1lc3NhZ2VCYXRjaCB9IGZyb20gJy4vbWVzc2FnZSc7XG5pbXBvcnQgKiBhcyBTY2hlbWFfIGZyb20gJy4uL2Zvcm1hdC9TY2hlbWEnO1xuaW1wb3J0IHsgSXRlcmF0b3JTdGF0ZSwgRGljdGlvbmFyaWVzIH0gZnJvbSAnLi9hcnJvdyc7XG5cbmltcG9ydCBGaWVsZCA9IFNjaGVtYV8ub3JnLmFwYWNoZS5hcnJvdy5mbGF0YnVmLkZpZWxkO1xuaW1wb3J0IERpY3Rpb25hcnlFbmNvZGluZyA9IFNjaGVtYV8ub3JnLmFwYWNoZS5hcnJvdy5mbGF0YnVmLkRpY3Rpb25hcnlFbmNvZGluZztcblxuZXhwb3J0IGZ1bmN0aW9uKiByZWFkRGljdGlvbmFyaWVzKGZpZWxkOiBGaWVsZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXRjaDogTWVzc2FnZUJhdGNoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZXJhdG9yOiBJdGVyYXRvclN0YXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpY3Rpb25hcmllczogRGljdGlvbmFyaWVzKSB7XG4gICAgbGV0IGlkOiBzdHJpbmcsIGVuY29kaW5nOiBEaWN0aW9uYXJ5RW5jb2Rpbmc7XG4gICAgaWYgKChlbmNvZGluZyA9IGZpZWxkLmRpY3Rpb25hcnkoKSkgJiZcbiAgICAgICAgKGlkID0gZW5jb2RpbmcuaWQoKS50b0Zsb2F0NjQoKS50b1N0cmluZygpKSkge1xuICAgICAgICB5aWVsZCBbaWQsIHJlYWRWZWN0b3IoZmllbGQsIGJhdGNoLCBpdGVyYXRvciwgbnVsbCldO1xuICAgIH1cbiAgICBmb3IgKGxldCBpID0gLTEsIG4gPSBmaWVsZC5jaGlsZHJlbkxlbmd0aCgpOyArK2kgPCBuOykge1xuICAgICAgICB5aWVsZCogcmVhZERpY3Rpb25hcmllcyhmaWVsZC5jaGlsZHJlbihpKSwgYmF0Y2gsIGl0ZXJhdG9yLCBkaWN0aW9uYXJpZXMpO1xuICAgIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJlYWRlci9kaWN0aW9uYXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDZEQUE2RDtBQUM3RCwrREFBK0Q7QUFDL0Qsd0RBQXdEO0FBQ3hELDZEQUE2RDtBQUM3RCxvREFBb0Q7QUFDcEQsNkRBQTZEO0FBQzdELDZEQUE2RDtBQUM3RCxFQUFFO0FBQ0YsK0NBQStDO0FBQy9DLEVBQUU7QUFDRiw2REFBNkQ7QUFDN0QsOERBQThEO0FBQzlELHlEQUF5RDtBQUN6RCw0REFBNEQ7QUFDNUQsMERBQTBEO0FBQzFELHFCQUFxQjtBQUVyQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBUXRDLE1BQU0sNEJBQTRCLEtBQVksRUFDWixLQUFtQixFQUNuQixRQUF1QixFQUN2QixZQUEwQjtJQUN4RCxJQUFJLEVBQVUsRUFBRSxRQUE0QixDQUFDO0lBQzdDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMvQixDQUFDLEVBQUUsR0FBRyxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBQ0QsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxjQUFjLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQztRQUNwRCxPQUFPLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUM5RSxDQUFDO0FBQ0wsQ0FBQyIsImZpbGUiOiJyZWFkZXIvZGljdGlvbmFyeS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmVcbi8vIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZVxuLy8gZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb25cbi8vIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGVcbi8vIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGVcbi8vIFwiTGljZW5zZVwiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuLy8gd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuLy9cbi8vICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4vL1xuLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLFxuLy8gc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW5cbi8vIFwiQVMgSVNcIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZXG4vLyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGVcbi8vIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnNcbi8vIHVuZGVyIHRoZSBMaWNlbnNlLlxuXG5pbXBvcnQgeyByZWFkVmVjdG9yIH0gZnJvbSAnLi92ZWN0b3InO1xuaW1wb3J0IHsgTWVzc2FnZUJhdGNoIH0gZnJvbSAnLi9tZXNzYWdlJztcbmltcG9ydCAqIGFzIFNjaGVtYV8gZnJvbSAnLi4vZm9ybWF0L1NjaGVtYSc7XG5pbXBvcnQgeyBJdGVyYXRvclN0YXRlLCBEaWN0aW9uYXJpZXMgfSBmcm9tICcuL2Fycm93JztcblxuaW1wb3J0IEZpZWxkID0gU2NoZW1hXy5vcmcuYXBhY2hlLmFycm93LmZsYXRidWYuRmllbGQ7XG5pbXBvcnQgRGljdGlvbmFyeUVuY29kaW5nID0gU2NoZW1hXy5vcmcuYXBhY2hlLmFycm93LmZsYXRidWYuRGljdGlvbmFyeUVuY29kaW5nO1xuXG5leHBvcnQgZnVuY3Rpb24qIHJlYWREaWN0aW9uYXJpZXMoZmllbGQ6IEZpZWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhdGNoOiBNZXNzYWdlQmF0Y2gsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlcmF0b3I6IEl0ZXJhdG9yU3RhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGljdGlvbmFyaWVzOiBEaWN0aW9uYXJpZXMpIHtcbiAgICBsZXQgaWQ6IHN0cmluZywgZW5jb2Rpbmc6IERpY3Rpb25hcnlFbmNvZGluZztcbiAgICBpZiAoKGVuY29kaW5nID0gZmllbGQuZGljdGlvbmFyeSgpKSAmJlxuICAgICAgICAoaWQgPSBlbmNvZGluZy5pZCgpLnRvRmxvYXQ2NCgpLnRvU3RyaW5nKCkpKSB7XG4gICAgICAgIHlpZWxkIFtpZCwgcmVhZFZlY3RvcihmaWVsZCwgYmF0Y2gsIGl0ZXJhdG9yLCBudWxsKV07XG4gICAgfVxuICAgIGZvciAobGV0IGkgPSAtMSwgbiA9IGZpZWxkLmNoaWxkcmVuTGVuZ3RoKCk7ICsraSA8IG47KSB7XG4gICAgICAgIHlpZWxkKiByZWFkRGljdGlvbmFyaWVzKGZpZWxkLmNoaWxkcmVuKGkpLCBiYXRjaCwgaXRlcmF0b3IsIGRpY3Rpb25hcmllcyk7XG4gICAgfVxufVxuIl19

@@ -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.
import * as File_ from '../format/File';

@@ -56,2 +72,2 @@ import * as Schema_ from '../format/Schema';

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJlYWRlci9maWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxLQUFLLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxLQUFLLE9BQU8sTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEtBQUssUUFBUSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFHeEQsSUFBTyxNQUFNLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7QUFDdEQsTUFBTSxLQUFRLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztBQUMvRCxNQUFNLEtBQVEsV0FBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO0FBRTFFLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQztBQUMzQixNQUFNLEtBQUssR0FBRyxJQUFJLFVBQVUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDL0MsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7SUFDL0MsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdkMsQ0FBQztBQUVELE1BQU0sc0JBQXNCLE1BQWtCLEVBQUUsS0FBSyxHQUFHLENBQUM7SUFDckQsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7UUFDMUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDakIsQ0FBQztJQUNMLENBQUM7SUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO0FBQ2pDLE1BQU0sZUFBZSxHQUFHLFdBQVcsR0FBRyxPQUFPLENBQUM7QUFDOUMsTUFBTSxpQkFBaUIsR0FBRyxXQUFXLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQztBQUVwRCxNQUFNLG9CQUFvQixHQUFHLEdBQWlCO0lBQzFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDakIsSUFBSSxVQUFVLEdBQUcsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQy9CLElBQUksWUFBb0IsRUFBRSxZQUFvQixDQUFDO1FBQy9DLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLGlCQUFpQixDQUFDLGdEQUFnRCxDQUFDO1lBQ2pGLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLG1EQUFtRCxDQUFDO1lBQ2pGLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLFVBQVUsR0FBRyxXQUFXLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQztZQUNqRixDQUNBLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsWUFBWSxHQUFHLFVBQVUsR0FBRyxlQUFlLENBQUMsQ0FBQyxHQUFHLENBQUM7Z0JBQzlFLENBQUMsWUFBWSxHQUFHLGlCQUFpQixHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25ELE1BQU0sSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUNELEVBQUUsQ0FBQyxXQUFXLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQyxDQUFDO1FBQzVDLElBQUksTUFBTSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNsRSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7WUFDekQsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuQyxFQUFFLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNuQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZDLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUM7Z0JBQ3hCLEtBQUssQ0FBQztZQUNWLENBQUM7UUFDTCxDQUFDO1FBQ0QsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO1lBQzFELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbkMsR0FBRyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QyxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDO2dCQUN4QixLQUFLLENBQUM7WUFDVixDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7QUFDTCxDQUFDIiwiZmlsZSI6InJlYWRlci9maWxlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmxhdGJ1ZmZlcnMgfSBmcm9tICdmbGF0YnVmZmVycyc7XG5pbXBvcnQgKiBhcyBGaWxlXyBmcm9tICcuLi9mb3JtYXQvRmlsZSc7XG5pbXBvcnQgKiBhcyBTY2hlbWFfIGZyb20gJy4uL2Zvcm1hdC9TY2hlbWEnO1xuaW1wb3J0ICogYXMgTWVzc2FnZV8gZnJvbSAnLi4vZm9ybWF0L01lc3NhZ2UnO1xuaW1wb3J0IHsgUEFERElORywgcmVhZE1lc3NhZ2VCYXRjaGVzIH0gZnJvbSAnLi9tZXNzYWdlJztcblxuaW1wb3J0IEJ5dGVCdWZmZXIgPSBmbGF0YnVmZmVycy5CeXRlQnVmZmVyO1xuaW1wb3J0IEZvb3RlciA9IEZpbGVfLm9yZy5hcGFjaGUuYXJyb3cuZmxhdGJ1Zi5Gb290ZXI7XG5leHBvcnQgaW1wb3J0IFNjaGVtYSA9IFNjaGVtYV8ub3JnLmFwYWNoZS5hcnJvdy5mbGF0YnVmLlNjaGVtYTtcbmV4cG9ydCBpbXBvcnQgUmVjb3JkQmF0Y2ggPSBNZXNzYWdlXy5vcmcuYXBhY2hlLmFycm93LmZsYXRidWYuUmVjb3JkQmF0Y2g7XG5cbmNvbnN0IE1BR0lDX1NUUiA9ICdBUlJPVzEnO1xuY29uc3QgTUFHSUMgPSBuZXcgVWludDhBcnJheShNQUdJQ19TVFIubGVuZ3RoKTtcbmZvciAobGV0IGkgPSAwOyBpIDwgTUFHSUNfU1RSLmxlbmd0aDsgaSArPSAxIHwgMCkge1xuICAgIE1BR0lDW2ldID0gTUFHSUNfU1RSLmNoYXJDb2RlQXQoaSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfY2hlY2tNYWdpYyhidWZmZXI6IFVpbnQ4QXJyYXksIGluZGV4ID0gMCkge1xuICAgIGZvciAobGV0IGkgPSAtMSwgbiA9IE1BR0lDLmxlbmd0aDsgKytpIDwgbjspIHtcbiAgICAgICAgaWYgKE1BR0lDW2ldICE9PSBidWZmZXJbaW5kZXggKyBpXSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufVxuXG5jb25zdCBtYWdpY0xlbmd0aCA9IE1BR0lDLmxlbmd0aDtcbmNvbnN0IG1hZ2ljQW5kUGFkZGluZyA9IG1hZ2ljTGVuZ3RoICsgUEFERElORztcbmNvbnN0IG1hZ2ljWDJBbmRQYWRkaW5nID0gbWFnaWNMZW5ndGggKiAyICsgUEFERElORztcblxuZXhwb3J0IGZ1bmN0aW9uKiByZWFkRmlsZSguLi5iYnM6IEJ5dGVCdWZmZXJbXSkge1xuICAgIGZvciAobGV0IGJiIG9mIGJicykge1xuICAgICAgICBsZXQgZmlsZUxlbmd0aCA9IGJiLmNhcGFjaXR5KCk7XG4gICAgICAgIGxldCBmb290ZXJMZW5ndGg6IG51bWJlciwgZm9vdGVyT2Zmc2V0OiBudW1iZXI7XG4gICAgICAgIGlmICgoZmlsZUxlbmd0aCA8IG1hZ2ljWDJBbmRQYWRkaW5nIC8qICAgICAgICAgICAgICAgICAgICAgQXJyb3cgYnVmZmVyIHRvbyBzbWFsbCAqLykgfHxcbiAgICAgICAgICAgICghX2NoZWNrTWFnaWMoYmIuYnl0ZXMoKSwgMCkgLyogICAgICAgICAgICAgICAgICAgICAgICBNaXNzaW5nIG1hZ2ljIHN0YXJ0ICAgICovKSB8fFxuICAgICAgICAgICAgKCFfY2hlY2tNYWdpYyhiYi5ieXRlcygpLCBmaWxlTGVuZ3RoIC0gbWFnaWNMZW5ndGgpIC8qIE1pc3NpbmcgbWFnaWMgZW5kICAgICAgKi8pIHx8XG4gICAgICAgICAgICAoLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW52YWxpZCBmb290ZXIgbGVuZ3RoICAqL1xuICAgICAgICAgICAgKGZvb3Rlckxlbmd0aCA9IGJiLnJlYWRJbnQzMihmb290ZXJPZmZzZXQgPSBmaWxlTGVuZ3RoIC0gbWFnaWNBbmRQYWRkaW5nKSkgPCAxICYmXG4gICAgICAgICAgICAoZm9vdGVyTGVuZ3RoICsgbWFnaWNYMkFuZFBhZGRpbmcgPiBmaWxlTGVuZ3RoKSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBmaWxlJyk7XG4gICAgICAgIH1cbiAgICAgICAgYmIuc2V0UG9zaXRpb24oZm9vdGVyT2Zmc2V0IC0gZm9vdGVyTGVuZ3RoKTtcbiAgICAgICAgbGV0IGZvb3RlciA9IEZvb3Rlci5nZXRSb290QXNGb290ZXIoYmIpLCBzY2hlbWEgPSBmb290ZXIuc2NoZW1hKCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAtMSwgbiA9IGZvb3Rlci5kaWN0aW9uYXJpZXNMZW5ndGgoKTsgKytpIDwgbjspIHtcbiAgICAgICAgICAgIGxldCBibG9jayA9IGZvb3Rlci5kaWN0aW9uYXJpZXMoaSk7XG4gICAgICAgICAgICBiYi5zZXRQb3NpdGlvbihibG9jay5vZmZzZXQoKS5sb3cpO1xuICAgICAgICAgICAgZm9yIChsZXQgYmF0Y2ggb2YgcmVhZE1lc3NhZ2VCYXRjaGVzKGJiKSkge1xuICAgICAgICAgICAgICAgIHlpZWxkIHsgc2NoZW1hLCBiYXRjaCB9O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZvciAobGV0IGkgPSAtMSwgbiA9IGZvb3Rlci5yZWNvcmRCYXRjaGVzTGVuZ3RoKCk7ICsraSA8IG47KSB7XG4gICAgICAgICAgICBjb25zdCBibG9jayA9IGZvb3Rlci5yZWNvcmRCYXRjaGVzKGkpO1xuICAgICAgICAgICAgYmIuc2V0UG9zaXRpb24oYmxvY2sub2Zmc2V0KCkubG93KTtcbiAgICAgICAgICAgIGZvciAobGV0IGJhdGNoIG9mIHJlYWRNZXNzYWdlQmF0Y2hlcyhiYikpIHtcbiAgICAgICAgICAgICAgICB5aWVsZCB7IHNjaGVtYSwgYmF0Y2ggfTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf8;base64,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LENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RDLEVBQUUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ25DLEdBQUcsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDdkMsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQztnQkFDeEIsS0FBSyxDQUFDO1lBQ1YsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0FBQ0wsQ0FBQyIsImZpbGUiOiJyZWFkZXIvZmlsZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmVcbi8vIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZVxuLy8gZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb25cbi8vIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGVcbi8vIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGVcbi8vIFwiTGljZW5zZVwiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuLy8gd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuLy9cbi8vICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4vL1xuLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLFxuLy8gc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW5cbi8vIFwiQVMgSVNcIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZXG4vLyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGVcbi8vIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnNcbi8vIHVuZGVyIHRoZSBMaWNlbnNlLlxuXG5pbXBvcnQgeyBmbGF0YnVmZmVycyB9IGZyb20gJ2ZsYXRidWZmZXJzJztcbmltcG9ydCAqIGFzIEZpbGVfIGZyb20gJy4uL2Zvcm1hdC9GaWxlJztcbmltcG9ydCAqIGFzIFNjaGVtYV8gZnJvbSAnLi4vZm9ybWF0L1NjaGVtYSc7XG5pbXBvcnQgKiBhcyBNZXNzYWdlXyBmcm9tICcuLi9mb3JtYXQvTWVzc2FnZSc7XG5pbXBvcnQgeyBQQURESU5HLCByZWFkTWVzc2FnZUJhdGNoZXMgfSBmcm9tICcuL21lc3NhZ2UnO1xuXG5pbXBvcnQgQnl0ZUJ1ZmZlciA9IGZsYXRidWZmZXJzLkJ5dGVCdWZmZXI7XG5pbXBvcnQgRm9vdGVyID0gRmlsZV8ub3JnLmFwYWNoZS5hcnJvdy5mbGF0YnVmLkZvb3RlcjtcbmV4cG9ydCBpbXBvcnQgU2NoZW1hID0gU2NoZW1hXy5vcmcuYXBhY2hlLmFycm93LmZsYXRidWYuU2NoZW1hO1xuZXhwb3J0IGltcG9ydCBSZWNvcmRCYXRjaCA9IE1lc3NhZ2VfLm9yZy5hcGFjaGUuYXJyb3cuZmxhdGJ1Zi5SZWNvcmRCYXRjaDtcblxuY29uc3QgTUFHSUNfU1RSID0gJ0FSUk9XMSc7XG5jb25zdCBNQUdJQyA9IG5ldyBVaW50OEFycmF5KE1BR0lDX1NUUi5sZW5ndGgpO1xuZm9yIChsZXQgaSA9IDA7IGkgPCBNQUdJQ19TVFIubGVuZ3RoOyBpICs9IDEgfCAwKSB7XG4gICAgTUFHSUNbaV0gPSBNQUdJQ19TVFIuY2hhckNvZGVBdChpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9jaGVja01hZ2ljKGJ1ZmZlcjogVWludDhBcnJheSwgaW5kZXggPSAwKSB7XG4gICAgZm9yIChsZXQgaSA9IC0xLCBuID0gTUFHSUMubGVuZ3RoOyArK2kgPCBuOykge1xuICAgICAgICBpZiAoTUFHSUNbaV0gIT09IGJ1ZmZlcltpbmRleCArIGldKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG59XG5cbmNvbnN0IG1hZ2ljTGVuZ3RoID0gTUFHSUMubGVuZ3RoO1xuY29uc3QgbWFnaWNBbmRQYWRkaW5nID0gbWFnaWNMZW5ndGggKyBQQURESU5HO1xuY29uc3QgbWFnaWNYMkFuZFBhZGRpbmcgPSBtYWdpY0xlbmd0aCAqIDIgKyBQQURESU5HO1xuXG5leHBvcnQgZnVuY3Rpb24qIHJlYWRGaWxlKC4uLmJiczogQnl0ZUJ1ZmZlcltdKSB7XG4gICAgZm9yIChsZXQgYmIgb2YgYmJzKSB7XG4gICAgICAgIGxldCBmaWxlTGVuZ3RoID0gYmIuY2FwYWNpdHkoKTtcbiAgICAgICAgbGV0IGZvb3Rlckxlbmd0aDogbnVtYmVyLCBmb290ZXJPZmZzZXQ6IG51bWJlcjtcbiAgICAgICAgaWYgKChmaWxlTGVuZ3RoIDwgbWFnaWNYMkFuZFBhZGRpbmcgLyogICAgICAgICAgICAgICAgICAgICBBcnJvdyBidWZmZXIgdG9vIHNtYWxsICovKSB8fFxuICAgICAgICAgICAgKCFfY2hlY2tNYWdpYyhiYi5ieXRlcygpLCAwKSAvKiAgICAgICAgICAgICAgICAgICAgICAgIE1pc3NpbmcgbWFnaWMgc3RhcnQgICAgKi8pIHx8XG4gICAgICAgICAgICAoIV9jaGVja01hZ2ljKGJiLmJ5dGVzKCksIGZpbGVMZW5ndGggLSBtYWdpY0xlbmd0aCkgLyogTWlzc2luZyBtYWdpYyBlbmQgICAgICAqLykgfHxcbiAgICAgICAgICAgICgvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnZhbGlkIGZvb3RlciBsZW5ndGggICovXG4gICAgICAgICAgICAoZm9vdGVyTGVuZ3RoID0gYmIucmVhZEludDMyKGZvb3Rlck9mZnNldCA9IGZpbGVMZW5ndGggLSBtYWdpY0FuZFBhZGRpbmcpKSA8IDEgJiZcbiAgICAgICAgICAgIChmb290ZXJMZW5ndGggKyBtYWdpY1gyQW5kUGFkZGluZyA+IGZpbGVMZW5ndGgpKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGZpbGUnKTtcbiAgICAgICAgfVxuICAgICAgICBiYi5zZXRQb3NpdGlvbihmb290ZXJPZmZzZXQgLSBmb290ZXJMZW5ndGgpO1xuICAgICAgICBsZXQgZm9vdGVyID0gRm9vdGVyLmdldFJvb3RBc0Zvb3RlcihiYiksIHNjaGVtYSA9IGZvb3Rlci5zY2hlbWEoKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IC0xLCBuID0gZm9vdGVyLmRpY3Rpb25hcmllc0xlbmd0aCgpOyArK2kgPCBuOykge1xuICAgICAgICAgICAgbGV0IGJsb2NrID0gZm9vdGVyLmRpY3Rpb25hcmllcyhpKTtcbiAgICAgICAgICAgIGJiLnNldFBvc2l0aW9uKGJsb2NrLm9mZnNldCgpLmxvdyk7XG4gICAgICAgICAgICBmb3IgKGxldCBiYXRjaCBvZiByZWFkTWVzc2FnZUJhdGNoZXMoYmIpKSB7XG4gICAgICAgICAgICAgICAgeWllbGQgeyBzY2hlbWEsIGJhdGNoIH07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChsZXQgaSA9IC0xLCBuID0gZm9vdGVyLnJlY29yZEJhdGNoZXNMZW5ndGgoKTsgKytpIDwgbjspIHtcbiAgICAgICAgICAgIGNvbnN0IGJsb2NrID0gZm9vdGVyLnJlY29yZEJhdGNoZXMoaSk7XG4gICAgICAgICAgICBiYi5zZXRQb3NpdGlvbihibG9jay5vZmZzZXQoKS5sb3cpO1xuICAgICAgICAgICAgZm9yIChsZXQgYmF0Y2ggb2YgcmVhZE1lc3NhZ2VCYXRjaGVzKGJiKSkge1xuICAgICAgICAgICAgICAgIHlpZWxkIHsgc2NoZW1hLCBiYXRjaCB9O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIl19

@@ -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.
import * as Message_ from '../format/Message';

@@ -39,2 +55,2 @@ var Message = Message_.org.apache.arrow.flatbuf.Message;

//# sourceMappingURL=data:application/json;charset=utf8;base64,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ZXNzYWdlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmxhdGJ1ZmZlcnMgfSBmcm9tICdmbGF0YnVmZmVycyc7XG5pbXBvcnQgKiBhcyBNZXNzYWdlXyBmcm9tICcuLi9mb3JtYXQvTWVzc2FnZSc7XG5pbXBvcnQgQnl0ZUJ1ZmZlciA9IGZsYXRidWZmZXJzLkJ5dGVCdWZmZXI7XG5pbXBvcnQgTWVzc2FnZSA9IE1lc3NhZ2VfLm9yZy5hcGFjaGUuYXJyb3cuZmxhdGJ1Zi5NZXNzYWdlO1xuaW1wb3J0IE1lc3NhZ2VIZWFkZXIgPSBNZXNzYWdlXy5vcmcuYXBhY2hlLmFycm93LmZsYXRidWYuTWVzc2FnZUhlYWRlcjtcbmltcG9ydCBSZWNvcmRCYXRjaCA9IE1lc3NhZ2VfLm9yZy5hcGFjaGUuYXJyb3cuZmxhdGJ1Zi5SZWNvcmRCYXRjaDtcbmltcG9ydCBEaWN0aW9uYXJ5QmF0Y2ggPSBNZXNzYWdlXy5vcmcuYXBhY2hlLmFycm93LmZsYXRidWYuRGljdGlvbmFyeUJhdGNoO1xuXG5leHBvcnQgY29uc3QgUEFERElORyA9IDQ7XG5leHBvcnQgdHlwZSBNZXNzYWdlQmF0Y2ggPSB7XG4gICAgaWQ/OiBzdHJpbmc7XG4gICAgb2Zmc2V0OiBudW1iZXI7XG4gICAgYnl0ZXM6IFVpbnQ4QXJyYXk7XG4gICAgZGF0YTogUmVjb3JkQmF0Y2g7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24qIHJlYWRNZXNzYWdlcyhiYjogQnl0ZUJ1ZmZlcikge1xuICAgIGxldCBtZXNzYWdlLCBsZW5ndGg7XG4gICAgd2hpbGUgKGJiLnBvc2l0aW9uKCkgPCBiYi5jYXBhY2l0eSgpICYmXG4gICAgICAgICAgKGxlbmd0aCA9IGJiLnJlYWRJbnQzMihiYi5wb3NpdGlvbigpKSkgPiAwKSB7XG4gICAgICAgIGJiLnNldFBvc2l0aW9uKGJiLnBvc2l0aW9uKCkgKyBQQURESU5HKTtcbiAgICAgICAgbWVzc2FnZSA9IE1lc3NhZ2UuZ2V0Um9vdEFzTWVzc2FnZShiYik7XG4gICAgICAgIGJiLnNldFBvc2l0aW9uKGJiLnBvc2l0aW9uKCkgKyBsZW5ndGgpO1xuICAgICAgICB5aWVsZCBtZXNzYWdlO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiByZWFkTWVzc2FnZUJhdGNoZXMoYmI6IEJ5dGVCdWZmZXIpIHtcbiAgICBsZXQgYnl0ZXMgPSBiYi5ieXRlcygpO1xuICAgIGZvciAobGV0IG1lc3NhZ2Ugb2YgcmVhZE1lc3NhZ2VzKGJiKSkge1xuICAgICAgICBsZXQgdHlwZSA9IG1lc3NhZ2UuaGVhZGVyVHlwZSgpO1xuICAgICAgICBsZXQgaWQ6IHN0cmluZywgZGF0YTogUmVjb3JkQmF0Y2g7XG4gICAgICAgIGlmICh0eXBlID09PSBNZXNzYWdlSGVhZGVyLlJlY29yZEJhdGNoKSB7XG4gICAgICAgICAgICBkYXRhID0gbWVzc2FnZS5oZWFkZXIobmV3IFJlY29yZEJhdGNoKCkpO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IE1lc3NhZ2VIZWFkZXIuRGljdGlvbmFyeUJhdGNoKSB7XG4gICAgICAgICAgICBsZXQgaGVhZGVyID0gbWVzc2FnZS5oZWFkZXIobmV3IERpY3Rpb25hcnlCYXRjaCgpKTtcbiAgICAgICAgICAgIGlkID0gaGVhZGVyLmlkKCkudG9GbG9hdDY0KCkudG9TdHJpbmcoKTtcbiAgICAgICAgICAgIGRhdGEgPSBoZWFkZXIuZGF0YSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgeWllbGQgPE1lc3NhZ2VCYXRjaD4geyBpZCwgZGF0YSwgYnl0ZXMsIG9mZnNldDogYnl0ZXMuYnl0ZU9mZnNldCArIGJiLnBvc2l0aW9uKCkgfTtcbiAgICAgICAgLy8gcG9zaXRpb24gdGhlIGJ1ZmZlciBhZnRlciB0aGUgYm9keSB0byByZWFkIHRoZSBuZXh0IG1lc3NhZ2VcbiAgICAgICAgYmIuc2V0UG9zaXRpb24oYmIucG9zaXRpb24oKSArIG1lc3NhZ2UuYm9keUxlbmd0aCgpLmxvdyk7XG4gICAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJlYWRlci9tZXNzYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDZEQUE2RDtBQUM3RCwrREFBK0Q7QUFDL0Qsd0RBQXdEO0FBQ3hELDZEQUE2RDtBQUM3RCxvREFBb0Q7QUFDcEQsNkRBQTZEO0FBQzdELDZEQUE2RDtBQUM3RCxFQUFFO0FBQ0YsK0NBQStDO0FBQy9DLEVBQUU7QUFDRiw2REFBNkQ7QUFDN0QsOERBQThEO0FBQzlELHlEQUF5RDtBQUN6RCw0REFBNEQ7QUFDNUQsMERBQTBEO0FBQzFELHFCQUFxQjtBQUdyQixPQUFPLEtBQUssUUFBUSxNQUFNLG1CQUFtQixDQUFDO0FBRTlDLElBQU8sT0FBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO0FBQzNELElBQU8sYUFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO0FBQ3ZFLElBQU8sV0FBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO0FBQ25FLElBQU8sZUFBZSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDO0FBRTNFLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUM7QUFRekIsTUFBTSx3QkFBd0IsRUFBYztJQUN4QyxJQUFJLE9BQU8sRUFBRSxNQUFNLENBQUM7SUFDcEIsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLFFBQVEsRUFBRTtRQUM5QixDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDL0MsRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUM7UUFDeEMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN2QyxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQztRQUN2QyxNQUFNLE9BQU8sQ0FBQztJQUNsQixDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sOEJBQThCLEVBQWM7SUFDOUMsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3ZCLEdBQUcsQ0FBQyxDQUFDLElBQUksT0FBTyxJQUFJLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkMsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2hDLElBQUksRUFBVSxFQUFFLElBQWlCLENBQUM7UUFDbEMsRUFBRSxDQUFDLENBQUMsSUFBSSxLQUFLLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ3JDLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksV0FBVyxFQUFFLENBQUMsQ0FBQztRQUM3QyxDQUFDO1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksS0FBSyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztZQUNoRCxJQUFJLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksZUFBZSxFQUFFLENBQUMsQ0FBQztZQUNuRCxFQUFFLEdBQUcsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3hDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ0osUUFBUSxDQUFDO1FBQ2IsQ0FBQztRQUNELE1BQXFCLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7UUFDbkYsOERBQThEO1FBQzlELEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxHQUFHLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3RCxDQUFDO0FBQ0wsQ0FBQyIsImZpbGUiOiJyZWFkZXIvbWVzc2FnZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmVcbi8vIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZVxuLy8gZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb25cbi8vIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGVcbi8vIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGVcbi8vIFwiTGljZW5zZVwiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuLy8gd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuLy9cbi8vICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4vL1xuLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLFxuLy8gc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW5cbi8vIFwiQVMgSVNcIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZXG4vLyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGVcbi8vIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnNcbi8vIHVuZGVyIHRoZSBMaWNlbnNlLlxuXG5pbXBvcnQgeyBmbGF0YnVmZmVycyB9IGZyb20gJ2ZsYXRidWZmZXJzJztcbmltcG9ydCAqIGFzIE1lc3NhZ2VfIGZyb20gJy4uL2Zvcm1hdC9NZXNzYWdlJztcbmltcG9ydCBCeXRlQnVmZmVyID0gZmxhdGJ1ZmZlcnMuQnl0ZUJ1ZmZlcjtcbmltcG9ydCBNZXNzYWdlID0gTWVzc2FnZV8ub3JnLmFwYWNoZS5hcnJvdy5mbGF0YnVmLk1lc3NhZ2U7XG5pbXBvcnQgTWVzc2FnZUhlYWRlciA9IE1lc3NhZ2VfLm9yZy5hcGFjaGUuYXJyb3cuZmxhdGJ1Zi5NZXNzYWdlSGVhZGVyO1xuaW1wb3J0IFJlY29yZEJhdGNoID0gTWVzc2FnZV8ub3JnLmFwYWNoZS5hcnJvdy5mbGF0YnVmLlJlY29yZEJhdGNoO1xuaW1wb3J0IERpY3Rpb25hcnlCYXRjaCA9IE1lc3NhZ2VfLm9yZy5hcGFjaGUuYXJyb3cuZmxhdGJ1Zi5EaWN0aW9uYXJ5QmF0Y2g7XG5cbmV4cG9ydCBjb25zdCBQQURESU5HID0gNDtcbmV4cG9ydCB0eXBlIE1lc3NhZ2VCYXRjaCA9IHtcbiAgICBpZD86IHN0cmluZztcbiAgICBvZmZzZXQ6IG51bWJlcjtcbiAgICBieXRlczogVWludDhBcnJheTtcbiAgICBkYXRhOiBSZWNvcmRCYXRjaDtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiogcmVhZE1lc3NhZ2VzKGJiOiBCeXRlQnVmZmVyKSB7XG4gICAgbGV0IG1lc3NhZ2UsIGxlbmd0aDtcbiAgICB3aGlsZSAoYmIucG9zaXRpb24oKSA8IGJiLmNhcGFjaXR5KCkgJiZcbiAgICAgICAgICAobGVuZ3RoID0gYmIucmVhZEludDMyKGJiLnBvc2l0aW9uKCkpKSA+IDApIHtcbiAgICAgICAgYmIuc2V0UG9zaXRpb24oYmIucG9zaXRpb24oKSArIFBBRERJTkcpO1xuICAgICAgICBtZXNzYWdlID0gTWVzc2FnZS5nZXRSb290QXNNZXNzYWdlKGJiKTtcbiAgICAgICAgYmIuc2V0UG9zaXRpb24oYmIucG9zaXRpb24oKSArIGxlbmd0aCk7XG4gICAgICAgIHlpZWxkIG1lc3NhZ2U7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIHJlYWRNZXNzYWdlQmF0Y2hlcyhiYjogQnl0ZUJ1ZmZlcikge1xuICAgIGxldCBieXRlcyA9IGJiLmJ5dGVzKCk7XG4gICAgZm9yIChsZXQgbWVzc2FnZSBvZiByZWFkTWVzc2FnZXMoYmIpKSB7XG4gICAgICAgIGxldCB0eXBlID0gbWVzc2FnZS5oZWFkZXJUeXBlKCk7XG4gICAgICAgIGxldCBpZDogc3RyaW5nLCBkYXRhOiBSZWNvcmRCYXRjaDtcbiAgICAgICAgaWYgKHR5cGUgPT09IE1lc3NhZ2VIZWFkZXIuUmVjb3JkQmF0Y2gpIHtcbiAgICAgICAgICAgIGRhdGEgPSBtZXNzYWdlLmhlYWRlcihuZXcgUmVjb3JkQmF0Y2goKSk7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gTWVzc2FnZUhlYWRlci5EaWN0aW9uYXJ5QmF0Y2gpIHtcbiAgICAgICAgICAgIGxldCBoZWFkZXIgPSBtZXNzYWdlLmhlYWRlcihuZXcgRGljdGlvbmFyeUJhdGNoKCkpO1xuICAgICAgICAgICAgaWQgPSBoZWFkZXIuaWQoKS50b0Zsb2F0NjQoKS50b1N0cmluZygpO1xuICAgICAgICAgICAgZGF0YSA9IGhlYWRlci5kYXRhKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICB5aWVsZCA8TWVzc2FnZUJhdGNoPiB7IGlkLCBkYXRhLCBieXRlcywgb2Zmc2V0OiBieXRlcy5ieXRlT2Zmc2V0ICsgYmIucG9zaXRpb24oKSB9O1xuICAgICAgICAvLyBwb3NpdGlvbiB0aGUgYnVmZmVyIGFmdGVyIHRoZSBib2R5IHRvIHJlYWQgdGhlIG5leHQgbWVzc2FnZVxuICAgICAgICBiYi5zZXRQb3NpdGlvbihiYi5wb3NpdGlvbigpICsgbWVzc2FnZS5ib2R5TGVuZ3RoKCkubG93KTtcbiAgICB9XG59XG4iXX0=

@@ -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.
import { _checkMagic } from './file';

@@ -24,2 +40,2 @@ import * as Schema_ from '../format/Schema';

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJlYWRlci9zdHJlYW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUVyQyxPQUFPLEtBQUssT0FBTyxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sS0FBSyxRQUFRLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUc3RCxJQUFPLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztBQUN4RCxJQUFPLGFBQWEsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztBQUV2RSxNQUFNLHNCQUFzQixHQUFHLEdBQWlCO0lBQzVDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoRCxNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUNELEdBQUcsQ0FBQyxDQUFDLE1BQU0sT0FBTyxJQUFJLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxLQUFLLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ2hELE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBQzVDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQ25CLEdBQUcsQ0FBQyxDQUFDLE1BQU0sS0FBSyxJQUFJLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDekMsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQztnQkFDNUIsQ0FBQztZQUNMLENBQUM7WUFDRCxLQUFLLENBQUM7UUFDVixDQUFDO0lBQ0wsQ0FBQztBQUNMLENBQUMiLCJmaWxlIjoicmVhZGVyL3N0cmVhbS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IF9jaGVja01hZ2ljIH0gZnJvbSAnLi9maWxlJztcbmltcG9ydCB7IGZsYXRidWZmZXJzIH0gZnJvbSAnZmxhdGJ1ZmZlcnMnO1xuaW1wb3J0ICogYXMgU2NoZW1hXyBmcm9tICcuLi9mb3JtYXQvU2NoZW1hJztcbmltcG9ydCAqIGFzIE1lc3NhZ2VfIGZyb20gJy4uL2Zvcm1hdC9NZXNzYWdlJztcbmltcG9ydCB7IHJlYWRNZXNzYWdlcywgcmVhZE1lc3NhZ2VCYXRjaGVzIH0gZnJvbSAnLi9tZXNzYWdlJztcblxuaW1wb3J0IEJ5dGVCdWZmZXIgPSBmbGF0YnVmZmVycy5CeXRlQnVmZmVyO1xuaW1wb3J0IFNjaGVtYSA9IFNjaGVtYV8ub3JnLmFwYWNoZS5hcnJvdy5mbGF0YnVmLlNjaGVtYTtcbmltcG9ydCBNZXNzYWdlSGVhZGVyID0gTWVzc2FnZV8ub3JnLmFwYWNoZS5hcnJvdy5mbGF0YnVmLk1lc3NhZ2VIZWFkZXI7XG5cbmV4cG9ydCBmdW5jdGlvbiogcmVhZFN0cmVhbSguLi5iYnM6IEJ5dGVCdWZmZXJbXSkge1xuICAgIGlmICghYmJzLmxlbmd0aCB8fCBfY2hlY2tNYWdpYyhiYnNbMF0uYnl0ZXMoKSwgMCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIEFycm93IFN0cmVhbScpO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IG1lc3NhZ2Ugb2YgcmVhZE1lc3NhZ2VzKGJic1swXSkpIHtcbiAgICAgICAgaWYgKG1lc3NhZ2UuaGVhZGVyVHlwZSgpID09PSBNZXNzYWdlSGVhZGVyLlNjaGVtYSkge1xuICAgICAgICAgICAgY29uc3Qgc2NoZW1hID0gbWVzc2FnZS5oZWFkZXIobmV3IFNjaGVtYSgpKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgYmIgb2YgYmJzKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBiYXRjaCBvZiByZWFkTWVzc2FnZUJhdGNoZXMoYmIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHlpZWxkIHsgc2NoZW1hLCBiYXRjaCB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJlYWRlci9zdHJlYW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNkRBQTZEO0FBQzdELCtEQUErRDtBQUMvRCx3REFBd0Q7QUFDeEQsNkRBQTZEO0FBQzdELG9EQUFvRDtBQUNwRCw2REFBNkQ7QUFDN0QsNkRBQTZEO0FBQzdELEVBQUU7QUFDRiwrQ0FBK0M7QUFDL0MsRUFBRTtBQUNGLDZEQUE2RDtBQUM3RCw4REFBOEQ7QUFDOUQseURBQXlEO0FBQ3pELDREQUE0RDtBQUM1RCwwREFBMEQ7QUFDMUQscUJBQXFCO0FBRXJCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFckMsT0FBTyxLQUFLLE9BQU8sTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEtBQUssUUFBUSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFHN0QsSUFBTyxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7QUFDeEQsSUFBTyxhQUFhLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7QUFFdkUsTUFBTSxzQkFBc0IsR0FBRyxHQUFpQjtJQUM1QyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFDRCxHQUFHLENBQUMsQ0FBQyxNQUFNLE9BQU8sSUFBSSxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsS0FBSyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNoRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTSxFQUFFLENBQUMsQ0FBQztZQUM1QyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUNuQixHQUFHLENBQUMsQ0FBQyxNQUFNLEtBQUssSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3pDLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUM7Z0JBQzVCLENBQUM7WUFDTCxDQUFDO1lBQ0QsS0FBSyxDQUFDO1FBQ1YsQ0FBQztJQUNMLENBQUM7QUFDTCxDQUFDIiwiZmlsZSI6InJlYWRlci9zdHJlYW0uanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lXG4vLyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGVcbi8vIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uXG4vLyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlXG4vLyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlXG4vLyBcIkxpY2Vuc2VcIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Vcbi8vIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbi8vXG4vLyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuLy9cbi8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZyxcbi8vIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuXG4vLyBcIkFTIElTXCIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWVxuLy8gS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlXG4vLyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zXG4vLyB1bmRlciB0aGUgTGljZW5zZS5cblxuaW1wb3J0IHsgX2NoZWNrTWFnaWMgfSBmcm9tICcuL2ZpbGUnO1xuaW1wb3J0IHsgZmxhdGJ1ZmZlcnMgfSBmcm9tICdmbGF0YnVmZmVycyc7XG5pbXBvcnQgKiBhcyBTY2hlbWFfIGZyb20gJy4uL2Zvcm1hdC9TY2hlbWEnO1xuaW1wb3J0ICogYXMgTWVzc2FnZV8gZnJvbSAnLi4vZm9ybWF0L01lc3NhZ2UnO1xuaW1wb3J0IHsgcmVhZE1lc3NhZ2VzLCByZWFkTWVzc2FnZUJhdGNoZXMgfSBmcm9tICcuL21lc3NhZ2UnO1xuXG5pbXBvcnQgQnl0ZUJ1ZmZlciA9IGZsYXRidWZmZXJzLkJ5dGVCdWZmZXI7XG5pbXBvcnQgU2NoZW1hID0gU2NoZW1hXy5vcmcuYXBhY2hlLmFycm93LmZsYXRidWYuU2NoZW1hO1xuaW1wb3J0IE1lc3NhZ2VIZWFkZXIgPSBNZXNzYWdlXy5vcmcuYXBhY2hlLmFycm93LmZsYXRidWYuTWVzc2FnZUhlYWRlcjtcblxuZXhwb3J0IGZ1bmN0aW9uKiByZWFkU3RyZWFtKC4uLmJiczogQnl0ZUJ1ZmZlcltdKSB7XG4gICAgaWYgKCFiYnMubGVuZ3RoIHx8IF9jaGVja01hZ2ljKGJic1swXS5ieXRlcygpLCAwKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgQXJyb3cgU3RyZWFtJyk7XG4gICAgfVxuICAgIGZvciAoY29uc3QgbWVzc2FnZSBvZiByZWFkTWVzc2FnZXMoYmJzWzBdKSkge1xuICAgICAgICBpZiAobWVzc2FnZS5oZWFkZXJUeXBlKCkgPT09IE1lc3NhZ2VIZWFkZXIuU2NoZW1hKSB7XG4gICAgICAgICAgICBjb25zdCBzY2hlbWEgPSBtZXNzYWdlLmhlYWRlcihuZXcgU2NoZW1hKCkpO1xuICAgICAgICAgICAgZm9yIChjb25zdCBiYiBvZiBiYnMpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGJhdGNoIG9mIHJlYWRNZXNzYWdlQmF0Y2hlcyhiYikpIHtcbiAgICAgICAgICAgICAgICAgICAgeWllbGQgeyBzY2hlbWEsIGJhdGNoIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=

@@ -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.
import * as Schema_ from '../format/Schema';

@@ -154,2 +170,2 @@ import { StructVector } from '../vectors/struct';

//# sourceMappingURL=data:application/json;charset=utf8;base64,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USxFQUFFLElBQUksS0FBSyxVQUFVLENBQUMsTUFBTSxJQUFJLFdBQVcsSUFBSSxTQUFTLENBQUMsQ0FBQztJQUN4RyxNQUFNLGNBQWMsR0FBRyxDQUFDLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLFVBQVU7VUFDckQsTUFBTTtVQUNOLFVBQVUsR0FBRyxVQUFVLENBQzVCLEdBQUcsWUFBWSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDdEMsTUFBTSxDQUFDLElBQUksWUFBWSxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxDQUFDLENBQUM7QUFDaEUsQ0FBQztBQUVELDBCQUEwQixRQUFnQixFQUFFLE1BQWE7SUFDckQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzlDLENBQUMiLCJmaWxlIjoicmVhZGVyL3ZlY3Rvci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1lc3NhZ2VCYXRjaCB9IGZyb20gJy4vbWVzc2FnZSc7XG5pbXBvcnQgeyBWZWN0b3IgfSBmcm9tICcuLi92ZWN0b3JzL3ZlY3Rvcic7XG5pbXBvcnQgKiBhcyBTY2hlbWFfIGZyb20gJy4uL2Zvcm1hdC9TY2hlbWEnO1xuaW1wb3J0IHsgU3RydWN0VmVjdG9yIH0gZnJvbSAnLi4vdmVjdG9ycy9zdHJ1Y3QnO1xuaW1wb3J0IHsgSXRlcmF0b3JTdGF0ZSwgRGljdGlvbmFyaWVzIH0gZnJvbSAnLi9hcnJvdyc7XG5pbXBvcnQgeyBEaWN0aW9uYXJ5VmVjdG9yIH0gZnJvbSAnLi4vdmVjdG9ycy9kaWN0aW9uYXJ5JztcbmltcG9ydCB7IFV0ZjhWZWN0b3IsIExpc3RWZWN0b3IsIEZpeGVkU2l6ZUxpc3RWZWN0b3IgfSBmcm9tICcuLi92ZWN0b3JzL2xpc3QnO1xuaW1wb3J0IHtcbiAgICBUeXBlZEFycmF5LCBUeXBlZEFycmF5Q3RvciwgSW50QXJyYXksIEZsb2F0QXJyYXksXG4gICAgSW50OFZlY3RvciwgSW50MTZWZWN0b3IsIEludDMyVmVjdG9yLCBJbnQ2NFZlY3RvcixcbiAgICBVaW50OFZlY3RvciwgVWludDE2VmVjdG9yLCBVaW50MzJWZWN0b3IsIFVpbnQ2NFZlY3RvcixcbiAgICBGbG9hdDMyVmVjdG9yLCBGbG9hdDY0VmVjdG9yLCBJbmRleFZlY3RvciwgRGF0ZVZlY3Rvcixcbn0gZnJvbSAnLi4vdmVjdG9ycy90eXBlZCc7XG5cbmltcG9ydCBJbnQgPSBTY2hlbWFfLm9yZy5hcGFjaGUuYXJyb3cuZmxhdGJ1Zi5JbnQ7XG5pbXBvcnQgVHlwZSA9IFNjaGVtYV8ub3JnLmFwYWNoZS5hcnJvdy5mbGF0YnVmLlR5cGU7XG5pbXBvcnQgRmllbGQgPSBTY2hlbWFfLm9yZy5hcGFjaGUuYXJyb3cuZmxhdGJ1Zi5GaWVsZDtcbmltcG9ydCBQcmVjaXNpb24gPSBTY2hlbWFfLm9yZy5hcGFjaGUuYXJyb3cuZmxhdGJ1Zi5QcmVjaXNpb247XG5pbXBvcnQgVmVjdG9yVHlwZSA9IFNjaGVtYV8ub3JnLmFwYWNoZS5hcnJvdy5mbGF0YnVmLlZlY3RvclR5cGU7XG5pbXBvcnQgRml4ZWRTaXplTGlzdCA9IFNjaGVtYV8ub3JnLmFwYWNoZS5hcnJvdy5mbGF0YnVmLkZpeGVkU2l6ZUxpc3Q7XG5pbXBvcnQgRmxvYXRpbmdQb2ludCA9IFNjaGVtYV8ub3JnLmFwYWNoZS5hcnJvdy5mbGF0YnVmLkZsb2F0aW5nUG9pbnQ7XG5pbXBvcnQgRGljdGlvbmFyeUVuY29kaW5nID0gU2NoZW1hXy5vcmcuYXBhY2hlLmFycm93LmZsYXRidWYuRGljdGlvbmFyeUVuY29kaW5nO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVhZFZlY3RvcihmaWVsZDogRmllbGQsIGJhdGNoOiBNZXNzYWdlQmF0Y2gsIHN0YXRlOiBJdGVyYXRvclN0YXRlLCBkaWN0aW9uYXJpZXM6IERpY3Rpb25hcmllcykge1xuICAgIHJldHVybiByZWFkRGljdGlvbmFyeVZlY3RvcihmaWVsZCwgYmF0Y2gsIHN0YXRlLCBkaWN0aW9uYXJpZXMpIHx8XG4gICAgICAgICAgICAgICAgcmVhZFR5cGVkVmVjdG9yKGZpZWxkLCBiYXRjaCwgc3RhdGUsIGRpY3Rpb25hcmllcyk7XG59XG5cbmZ1bmN0aW9uIHJlYWRUeXBlZFZlY3RvcihmaWVsZDogRmllbGQsIGJhdGNoOiBNZXNzYWdlQmF0Y2gsIGl0ZXJhdG9yOiBJdGVyYXRvclN0YXRlLCBkaWN0aW9uYXJpZXM6IERpY3Rpb25hcmllcykge1xuICAgIGxldCB0eXBlVHlwZSA9IGZpZWxkLnR5cGVUeXBlKCksIHJlYWRUeXBlZCA9IHR5cGVkVmVjdG9yUmVhZGVyc1t0eXBlVHlwZV07XG4gICAgaWYgKCFyZWFkVHlwZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbnJlY29nbml6ZWQgdmVjdG9yIG5hbWUgXCInICsgVHlwZVt0eXBlVHlwZV0gKyAnXCIgdHlwZSBcIicgKyB0eXBlVHlwZSArICdcIicpO1xuICAgIH1cbiAgICByZXR1cm4gcmVhZFR5cGVkKGZpZWxkLCBiYXRjaCwgaXRlcmF0b3IsIGRpY3Rpb25hcmllcyk7XG59XG5cbmZ1bmN0aW9uIHJlYWREaWN0aW9uYXJ5VmVjdG9yKGZpZWxkOiBGaWVsZCwgYmF0Y2g6IE1lc3NhZ2VCYXRjaCwgaXRlcmF0b3I6IEl0ZXJhdG9yU3RhdGUsIGRpY3Rpb25hcmllczogRGljdGlvbmFyaWVzKSB7XG4gICAgbGV0IGVuY29kaW5nOiBEaWN0aW9uYXJ5RW5jb2Rpbmc7XG4gICAgaWYgKGRpY3Rpb25hcmllcyAmJiAoZW5jb2RpbmcgPSBmaWVsZC5kaWN0aW9uYXJ5KCkpKSB7XG4gICAgICAgIGxldCBpZCA9IGVuY29kaW5nLmlkKCkudG9GbG9hdDY0KCkudG9TdHJpbmcoKTtcbiAgICAgICAgbGV0IGluZGV4ID0gcmVhZEludFZlY3RvcihmaWVsZCwgYmF0Y2gsIGl0ZXJhdG9yLCBudWxsLFxuICAgICAgICAgICAgLyogYSBkaWN0aW9uYXJ5IGluZGV4IGRlZmF1bHRzIHRvIHNpZ25lZCAzMiBiaXQgaW50IGlmIHVuc3BlY2lmaWVkICovXG4gICAgICAgICAgICBlbmNvZGluZy5pbmRleFR5cGUoKSB8fCB7IGJpdFdpZHRoOiAoKSA9PiAzMiwgaXNTaWduZWQ6ICgpID0+IHRydWUgfSk7XG4gICAgICAgIHJldHVybiBEaWN0aW9uYXJ5VmVjdG9yLmNyZWF0ZShmaWVsZCwgaW5kZXgubGVuZ3RoLCBpbmRleCwgZGljdGlvbmFyaWVzW2lkXSk7XG4gICAgfVxufVxuXG5jb25zdCBJbnRWaWV3cyAgICA9IFtJbnQ4QXJyYXksICAgIEludDE2QXJyYXksICAgSW50MzJBcnJheSwgICBJbnQzMkFycmF5ICBdO1xuY29uc3QgSW50MzJWaWV3cyAgPSBbSW50MzJBcnJheSwgICBJbnQzMkFycmF5LCAgIEludDMyQXJyYXksICAgSW50MzJBcnJheSAgXTtcbmNvbnN0IFVpbnRWaWV3cyAgID0gW1VpbnQ4QXJyYXksICAgVWludDE2QXJyYXksICBVaW50MzJBcnJheSwgIFVpbnQzMkFycmF5IF07XG5jb25zdCBVaW50OFZpZXdzICA9IFtVaW50OEFycmF5LCAgIFVpbnQ4QXJyYXksICAgVWludDhBcnJheSwgICBVaW50OEFycmF5ICBdO1xuY29uc3QgVWludDMyVmlld3MgPSBbVWludDMyQXJyYXksICBVaW50MzJBcnJheSwgIFVpbnQzMkFycmF5LCAgVWludDMyQXJyYXkgXTtcbmNvbnN0IEZsb2F0Vmlld3MgID0gW0ludDhBcnJheSwgICAgSW50MTZBcnJheSwgICBGbG9hdDMyQXJyYXksIEZsb2F0NjRBcnJheV07XG5cbmNvbnN0IGNyZWF0ZUludERhdGFWaWV3cyA9IGNyZWF0ZURhdGFWaWV3LmJpbmQobnVsbCwgSW50Vmlld3MsIG51bGwpO1xuY29uc3QgY3JlYXRlVWludERhdGFWaWV3cyA9IGNyZWF0ZURhdGFWaWV3LmJpbmQobnVsbCwgVWludFZpZXdzLCBudWxsKTtcbmNvbnN0IGNyZWF0ZURhdGVEYXRhVmlld3MgPSBjcmVhdGVEYXRhVmlldy5iaW5kKG51bGwsIFVpbnQzMlZpZXdzLCBudWxsKTtcbmNvbnN0IGNyZWF0ZUZsb2F0RGF0YVZpZXdzID0gY3JlYXRlRGF0YVZpZXcuYmluZChudWxsLCBGbG9hdFZpZXdzLCBudWxsKTtcbmNvbnN0IGNyZWF0ZU5lc3RlZERhdGFWaWV3cyA9IGNyZWF0ZURhdGFWaWV3LmJpbmQobnVsbCwgVWludDMyVmlld3MsIG51bGwpO1xuY29uc3QgY3JlYXRlVmFsaWRpdHlEYXRhVmlld3MgPSBjcmVhdGVEYXRhVmlldy5iaW5kKG51bGwsIFVpbnQ4Vmlld3MsIG51bGwpO1xuY29uc3QgY3JlYXRlVXRmOERhdGFWaWV3cyA9IGNyZWF0ZURhdGFWaWV3LmJpbmQobnVsbCwgVWludDhWaWV3cywgSW50MzJWaWV3cyk7XG5cbmNvbnN0IGZsb2F0VmVjdG9ycyA9IHtcbiAgICBbUHJlY2lzaW9uLlNJTkdMRV06IEZsb2F0MzJWZWN0b3IsXG4gICAgW1ByZWNpc2lvbi5ET1VCTEVdOiBGbG9hdDY0VmVjdG9yXG59O1xuY29uc3QgaW50VmVjdG9ycyA9IFtcbiAgICBbLyogdW5zaWduZWQgKi8gVWludDhWZWN0b3IsICAgLyogc2lnbmVkICovIEludDhWZWN0b3IgXSxcbiAgICBbLyogdW5zaWduZWQgKi8gVWludDE2VmVjdG9yLCAgLyogc2lnbmVkICovIEludDE2VmVjdG9yXSxcbiAgICBbLyogdW5zaWduZWQgKi8gVWludDMyVmVjdG9yLCAgLyogc2lnbmVkICovIEludDMyVmVjdG9yXSxcbiAgICBbLyogdW5zaWduZWQgKi8gVWludDY0VmVjdG9yLCAgLyogc2lnbmVkICovIEludDY0VmVjdG9yXVxuXTtcblxuZnVuY3Rpb24gcmVhZEludFZlY3RvcihmaWVsZDogRmllbGQsIGJhdGNoOiBNZXNzYWdlQmF0Y2gsIGl0ZXJhdG9yOiBJdGVyYXRvclN0YXRlLCBkaWN0aW9uYXJpZXM6IERpY3Rpb25hcmllcywgZmllbGRUeXBlPzogRmllbGRUeXBlKSB7XG4gICAgbGV0IHR5cGUgPSAoZmllbGRUeXBlIHx8IGZpZWxkLnR5cGUobmV3IEludCgpKSk7XG4gICAgcmV0dXJuIHR5cGUuaXNTaWduZWQoKSA/XG4gICAgICAgIHJlYWRfSW50VmVjdG9yKGZpZWxkLCBiYXRjaCwgaXRlcmF0b3IsIGRpY3Rpb25hcmllcywgdHlwZSkgOlxuICAgICAgICByZWFkVWludFZlY3RvcihmaWVsZCwgYmF0Y2gsIGl0ZXJhdG9yLCBkaWN0aW9uYXJpZXMsIHR5cGUpO1xufVxuXG5jb25zdCByZWFkX0ludFZlY3RvciA9IHJlYWRWZWN0b3JMYXlvdXQ8bnVtYmVyLCBJbnRBcnJheT4oY3JlYXRlSW50RGF0YVZpZXdzLCBjcmVhdGVJbnRWZWN0b3IpO1xuY29uc3QgcmVhZFVpbnRWZWN0b3IgPSByZWFkVmVjdG9yTGF5b3V0PG51bWJlciwgSW50QXJyYXk+KGNyZWF0ZVVpbnREYXRhVmlld3MsIGNyZWF0ZUludFZlY3Rvcik7XG5mdW5jdGlvbiBjcmVhdGVJbnRWZWN0b3IoZmllbGQsIGxlbmd0aCwgZGF0YSwgdmFsaWRpdHksIG9mZnNldHMsIGZpZWxkVHlwZSwgYmF0Y2gsIGl0ZXJhdG9yLCBkaWN0aW9uYXJpZXMpIHtcbiAgICBsZXQgdHlwZSA9IGZpZWxkVHlwZSB8fCBmaWVsZC50eXBlKG5ldyBJbnQoKSksIGJpdFdpZHRoID0gdHlwZS5iaXRXaWR0aCgpO1xuICAgIGxldCBWZWN0b3IgPSB2YWx1ZUZvckJpdFdpZHRoKGJpdFdpZHRoLCBpbnRWZWN0b3JzKVsrdHlwZS5pc1NpZ25lZCgpXTtcbiAgICByZXR1cm4gVmVjdG9yLmNyZWF0ZShmaWVsZCwgbGVuZ3RoLCB2YWxpZGl0eSwgZGF0YSB8fCBvZmZzZXRzKTtcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHNvIHRoaXMgaXMga2luZGEgc3RyYW5nZSDwn5GGOlxuICAgIC8vIFRoZSBkaWN0aW9uYXJ5IGVuY29kZWQgdmVjdG9ycyBJIGdlbmVyYXRlZCBmcm9tIHNhbXBsZSBtYXBkLWNvcmUgcXVlcmllcyBoYXZlIHRoZSBpbmRpY2llcycgZGF0YSBidWZmZXJzXG4gICAgLy8gdGFnZ2VkIGFzIFZlY3RvclR5cGUuT0ZGU0VUICgwKSBpbiB0aGUgZmllbGQgbWV0YWRhdGEuIFRoZSBjdXJyZW50IFRTIGltcGwgaWdub3JlcyBidWZmZXJzJyBsYXlvdXQgdHlwZSxcbiAgICAvLyBhbmQgYXNzdW1lcyB0aGUgc2Vjb25kIGJ1ZmZlciBpcyB0aGUgZGF0YSBmb3IgYSBOdWxsYWJsZUludFZlY3Rvci4gU2luY2Ugd2UndmUgYmVlbiBzdHJpY3RlciBhYm91dCBlbmZvcmNpbmdcbiAgICAvLyB0aGUgQXJyb3cgc3BlYyB3aGlsZSBwYXJzaW5nLCB0aGUgSW50VmVjdG9yJ3MgZGF0YSBidWZmZXIgcmVhZHMgZW1wdHkgaW4gdGhpcyBjYXNlLiBJZiBzbywgZmFsbGJhY2sgdG8gdXNpbmdcbiAgICAvLyB0aGUgb2Zmc2V0cyBidWZmZXIgYXMgdGhlIGRhdGEsIHNpbmNlIEludFZlY3RvcnMgZG9uJ3QgaGF2ZSBvZmZzZXRzLlxufVxuXG5jb25zdCByZWFkRmxvYXRWZWN0b3IgPSByZWFkVmVjdG9yTGF5b3V0PG51bWJlciwgRmxvYXRBcnJheT4oXG4gICAgY3JlYXRlRmxvYXREYXRhVmlld3MsXG4gICAgKGZpZWxkLCBsZW5ndGgsIGRhdGEsIHZhbGlkaXR5LCBvZmZzZXRzLCBmaWVsZFR5cGUsIGJhdGNoLCBpdGVyYXRvciwgZGljdGlvbmFyaWVzKSA9PiB7XG4gICAgICAgIGxldCB0eXBlID0gZmllbGQudHlwZShuZXcgRmxvYXRpbmdQb2ludCgpKTtcbiAgICAgICAgbGV0IFZlY3RvciA9IGZsb2F0VmVjdG9yc1t0eXBlLnByZWNpc2lvbigpXTtcbiAgICAgICAgcmV0dXJuIFZlY3Rvci5jcmVhdGUoZmllbGQsIGxlbmd0aCwgdmFsaWRpdHksIGRhdGEpO1xuICAgIH1cbik7XG5cbmNvbnN0IHJlYWREYXRlVmVjdG9yID0gcmVhZFZlY3RvckxheW91dDxEYXRlLCBVaW50MzJBcnJheT4oXG4gICAgY3JlYXRlRGF0ZURhdGFWaWV3cyxcbiAgICAoZmllbGQsIGxlbmd0aCwgZGF0YSwgdmFsaWRpdHksIG9mZnNldHMsIGZpZWxkVHlwZSwgYmF0Y2gsIGl0ZXJhdG9yLCBkaWN0aW9uYXJpZXMpID0+IHtcbiAgICAgICAgcmV0dXJuIERhdGVWZWN0b3IuY3JlYXRlKGZpZWxkLCBsZW5ndGgsIHZhbGlkaXR5LCBkYXRhKTtcbiAgICB9XG4pO1xuXG5jb25zdCByZWFkVXRmOFZlY3RvciA9IHJlYWRWZWN0b3JMYXlvdXQ8c3RyaW5nLCBVaW50OEFycmF5PihcbiAgICBjcmVhdGVVdGY4RGF0YVZpZXdzLFxuICAgIChmaWVsZCwgbGVuZ3RoLCBkYXRhLCB2YWxpZGl0eSwgb2Zmc2V0cywgZmllbGRUeXBlLCBiYXRjaCwgaXRlcmF0b3IsIGRpY3Rpb25hcmllcykgPT4ge1xuICAgICAgICBsZXQgb2Zmc2V0c0FkanVzdGVkID0gbmV3IEludDMyQXJyYXkob2Zmc2V0cy5idWZmZXIsIG9mZnNldHMuYnl0ZU9mZnNldCwgbGVuZ3RoICsgMSk7XG4gICAgICAgIHJldHVybiBVdGY4VmVjdG9yLmNyZWF0ZShcbiAgICAgICAgICAgIGZpZWxkLCBsZW5ndGgsIHZhbGlkaXR5LFxuICAgICAgICAgICAgVWludDhWZWN0b3IuY3JlYXRlKGZpZWxkLCBkYXRhLmxlbmd0aCwgbnVsbCwgZGF0YSksXG4gICAgICAgICAgICBJbmRleFZlY3Rvci5jcmVhdGUoZmllbGQsIGxlbmd0aCArIDEsIG51bGwsIG9mZnNldHNBZGp1c3RlZClcbiAgICAgICAgKTtcbiAgICB9XG4pO1xuXG5jb25zdCByZWFkTGlzdFZlY3RvciA9IHJlYWRWZWN0b3JMYXlvdXQ8YW55W10sIFVpbnQzMkFycmF5PihcbiAgICBjcmVhdGVOZXN0ZWREYXRhVmlld3MsXG4gICAgKGZpZWxkLCBsZW5ndGgsIGRhdGEsIHZhbGlkaXR5LCBvZmZzZXRzLCBmaWVsZFR5cGUsIGJhdGNoLCBpdGVyYXRvciwgZGljdGlvbmFyaWVzKSA9PiB7XG4gICAgICAgIGxldCBvZmZzZXRzQWRqdXN0ZWQgPSBuZXcgSW50MzJBcnJheShvZmZzZXRzLmJ1ZmZlciwgb2Zmc2V0cy5ieXRlT2Zmc2V0LCBsZW5ndGggKyAxKTtcbiAgICAgICAgcmV0dXJuIExpc3RWZWN0b3IuY3JlYXRlKFxuICAgICAgICAgICAgZmllbGQsIGxlbmd0aCwgdmFsaWRpdHksXG4gICAgICAgICAgICByZWFkVmVjdG9yKGZpZWxkLmNoaWxkcmVuKDApLCBiYXRjaCwgaXRlcmF0b3IsIGRpY3Rpb25hcmllcyksXG4gICAgICAgICAgICBJbmRleFZlY3Rvci5jcmVhdGUoZmllbGQsIGxlbmd0aCArIDEsIG51bGwsIG9mZnNldHNBZGp1c3RlZClcbiAgICAgICAgKTtcbiAgICB9XG4pO1xuXG5jb25zdCByZWFkRml4ZWRTaXplTGlzdFZlY3RvciA9IHJlYWRWZWN0b3JMYXlvdXQ8YW55W10sIFVpbnQzMkFycmF5PihcbiAgICBjcmVhdGVOZXN0ZWREYXRhVmlld3MsXG4gICAgKGZpZWxkLCBsZW5ndGgsIGRhdGEsIHZhbGlkaXR5LCBvZmZzZXRzLCBmaWVsZFR5cGUsIGJhdGNoLCBpdGVyYXRvciwgZGljdGlvbmFyaWVzKSA9PiB7XG4gICAgICAgIGxldCBzaXplID0gZmllbGQudHlwZShuZXcgRml4ZWRTaXplTGlzdCgpKS5saXN0U2l6ZSgpO1xuICAgICAgICByZXR1cm4gRml4ZWRTaXplTGlzdFZlY3Rvci5jcmVhdGUoXG4gICAgICAgICAgICBmaWVsZCwgbGVuZ3RoLCBzaXplLCB2YWxpZGl0eSxcbiAgICAgICAgICAgIHJlYWRWZWN0b3IoZmllbGQuY2hpbGRyZW4oMCksIGJhdGNoLCBpdGVyYXRvciwgZGljdGlvbmFyaWVzKVxuICAgICAgICApO1xuICAgIH1cbik7XG5cbmNvbnN0IHJlYWRTdHJ1Y3RWZWN0b3IgPSByZWFkVmVjdG9yTGF5b3V0PGFueVtdLCBBcnJheUxpa2U8YW55Pj4oXG4gICAgY3JlYXRlTmVzdGVkRGF0YVZpZXdzLFxuICAgIChmaWVsZCwgbGVuZ3RoLCBkYXRhLCB2YWxpZGl0eSwgb2Zmc2V0cywgZmllbGRUeXBlLCBiYXRjaCwgaXRlcmF0b3IsIGRpY3Rpb25hcmllcykgPT4ge1xuICAgICAgICBsZXQgdmVjdG9yczogVmVjdG9yPGFueT5bXSA9IFtdO1xuICAgICAgICBpdGVyYXRvci5idWZmZXJJbmRleCAtPSBmaWVsZC5udWxsYWJsZSgpID8gMCA6IGZpZWxkLmxheW91dExlbmd0aCgpO1xuICAgICAgICBmb3IgKGxldCBpID0gLTEsIG4gPSBmaWVsZC5jaGlsZHJlbkxlbmd0aCgpOyArK2kgPCBuOykge1xuICAgICAgICAgICAgdmVjdG9yc1tpXSA9IHJlYWRWZWN0b3IoZmllbGQuY2hpbGRyZW4oaSksIGJhdGNoLCBpdGVyYXRvciwgZGljdGlvbmFyaWVzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gU3RydWN0VmVjdG9yLmNyZWF0ZShmaWVsZCwgbGVuZ3RoLCB2YWxpZGl0eSwgLi4udmVjdG9ycyk7XG4gICAgfVxuKTtcblxuY29uc3QgdHlwZWRWZWN0b3JSZWFkZXJzID0ge1xuICAgIFtUeXBlLkludF06IHJlYWRJbnRWZWN0b3IsXG4gICAgW1R5cGUuRGF0ZV06IHJlYWREYXRlVmVjdG9yLFxuICAgIFtUeXBlLkxpc3RdOiByZWFkTGlzdFZlY3RvcixcbiAgICBbVHlwZS5VdGY4XTogcmVhZFV0ZjhWZWN0b3IsXG4gICAgW1R5cGUuU3RydWN0X106IHJlYWRTdHJ1Y3RWZWN0b3IsXG4gICAgW1R5cGUuRmxvYXRpbmdQb2ludF06IHJlYWRGbG9hdFZlY3RvcixcbiAgICBbVHlwZS5GaXhlZFNpemVMaXN0XTogcmVhZEZpeGVkU2l6ZUxpc3RWZWN0b3IsXG59O1xuXG50eXBlIEZpZWxkVHlwZSA9IHsgYml0V2lkdGgoKTogbnVtYmVyOyBpc1NpZ25lZCgpOiBib29sZWFuIH07XG50eXBlIGRhdGFWaWV3RmFjdG9yeTxWID0gVHlwZWRBcnJheT4gPSAoYmF0Y2g6IE1lc3NhZ2VCYXRjaCwgdHlwZTogVmVjdG9yVHlwZSwgYml0V2lkdGg6IG51bWJlciwgb2Zmc2V0OiBudW1iZXIsIGxlbmd0aDogbnVtYmVyKSA9PiBWO1xudHlwZSB2ZWN0b3JGYWN0b3J5PFRMaXN0LCBWID0gVmVjdG9yPGFueT4+ID0gKGZpZWxkOiBGaWVsZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGg6IG51bWJlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBUTGlzdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsczogVWludDhBcnJheSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRzOiBUeXBlZEFycmF5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkVHlwZTogRmllbGRUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNodW5rOiBNZXNzYWdlQmF0Y2gsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlcmFibGU6IEl0ZXJhdG9yU3RhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGljdGlvbmFyaWVzOiBEaWN0aW9uYXJpZXMpID0+IFY7XG5cbmZ1bmN0aW9uIHJlYWRWZWN0b3JMYXlvdXQ8VCwgVExpc3Q+KGNyZWF0ZURhdGFWaWV3OiBkYXRhVmlld0ZhY3Rvcnk8VExpc3Q+LCBjcmVhdGVWZWN0b3I6IHZlY3RvckZhY3Rvcnk8VExpc3QsIFZlY3RvcjxUPj4pIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gcmVhZExheW91dChcbiAgICAgICAgICAgIGZpZWxkOiBGaWVsZCxcbiAgICAgICAgICAgIGNodW5rOiBNZXNzYWdlQmF0Y2gsXG4gICAgICAgICAgICBpdGVyYXRvcjogSXRlcmF0b3JTdGF0ZSxcbiAgICAgICAgICAgIGRpY3Rpb25hcmllczogRGljdGlvbmFyaWVzLFxuICAgICAgICAgICAgaW50ZWdlckZpZWxkVHlwZT86IEZpZWxkVHlwZVxuICAgICkge1xuICAgICAgICBsZXQgYmF0Y2ggPSBjaHVuay5kYXRhO1xuICAgICAgICBsZXQgbGF5b3V0TGVuZ3RoID0gZmllbGQubGF5b3V0TGVuZ3RoKCk7XG4gICAgICAgIGxldCBub2RlID0gYmF0Y2gubm9kZXMoaXRlcmF0b3Iubm9kZUluZGV4KyspO1xuICAgICAgICBsZXQgZGF0YTogVExpc3QsIG9mZnNldHM6IGFueSwgdmFsaWRpdHk6IFVpbnQ4QXJyYXk7XG4gICAgICAgIGxldCB0eXBlLCBiaXRXaWR0aCwgYnVmZmVyTGVuZ3RoLCBub2RlTGVuZ3RoID0gbm9kZS5sZW5ndGgoKS5sb3c7XG4gICAgICAgIGZvciAobGV0IGkgPSAtMTsgKytpIDwgbGF5b3V0TGVuZ3RoOykge1xuICAgICAgICAgICAgbGV0IGxheW91dCA9IGZpZWxkLmxheW91dChpKTtcbiAgICAgICAgICAgIGxldCBidWZmZXIgPSBiYXRjaC5idWZmZXJzKGl0ZXJhdG9yLmJ1ZmZlckluZGV4KyspO1xuICAgICAgICAgICAgaWYgKCh0eXBlID0gbGF5b3V0LnR5cGUoKSkgPT09IFZlY3RvclR5cGUuVFlQRSB8fFxuICAgICAgICAgICAgICAgIChidWZmZXJMZW5ndGggPSBidWZmZXIubGVuZ3RoKCkubG93KSA8PSAwICB8fFxuICAgICAgICAgICAgICAgIChiaXRXaWR0aCA9IGxheW91dC5iaXRXaWR0aCgpKSA8PSAwKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IFZlY3RvclR5cGUuREFUQSkge1xuICAgICAgICAgICAgICAgIGRhdGEgPSBjcmVhdGVEYXRhVmlldyhjaHVuaywgdHlwZSwgYml0V2lkdGgsIGJ1ZmZlci5vZmZzZXQoKS5sb3csIGJ1ZmZlckxlbmd0aCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IFZlY3RvclR5cGUuT0ZGU0VUKSB7XG4gICAgICAgICAgICAgICAgb2Zmc2V0cyA9IGNyZWF0ZURhdGFWaWV3KGNodW5rLCB0eXBlLCBiaXRXaWR0aCwgYnVmZmVyLm9mZnNldCgpLmxvdywgYnVmZmVyTGVuZ3RoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobm9kZS5udWxsQ291bnQoKS5sb3cgPiAwKSB7XG4gICAgICAgICAgICAgICAgdmFsaWRpdHkgPSBjcmVhdGVWYWxpZGl0eURhdGFWaWV3cyhjaHVuaywgdHlwZSwgYml0V2lkdGgsIGJ1ZmZlci5vZmZzZXQoKS5sb3csIG5vZGVMZW5ndGgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjcmVhdGVWZWN0b3IoZmllbGQsIG5vZGVMZW5ndGgsIGRhdGEsIHZhbGlkaXR5LCBvZmZzZXRzLCBpbnRlZ2VyRmllbGRUeXBlLCBjaHVuaywgaXRlcmF0b3IsIGRpY3Rpb25hcmllcyk7XG4gICAgfTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlRGF0YVZpZXcoXG4gICAgZGF0YVZpZXdzOiBUeXBlZEFycmF5Q3Rvcjxhbnk+W10sIG9mZnNldFZpZXdzOiBUeXBlZEFycmF5Q3Rvcjxhbnk+W10gfCBudWxsLFxuICAgIGJhdGNoOiBNZXNzYWdlQmF0Y2gsIHR5cGU6IFZlY3RvclR5cGUsIGJpdFdpZHRoOiBudW1iZXIsIG9mZnNldDogbnVtYmVyLCBsZW5ndGg6IG51bWJlclxuKSB7XG4gICAgY29uc3QgYnVmZmVyID0gYmF0Y2guYnl0ZXMuYnVmZmVyO1xuICAgIGNvbnN0IGJ5dGVMZW5ndGggPSBidWZmZXIuYnl0ZUxlbmd0aDtcbiAgICBjb25zdCBieXRlT2Zmc2V0ID0gYmF0Y2gub2Zmc2V0ICsgb2Zmc2V0O1xuICAgIGNvbnN0IERhdGFWaWV3VHlwZSA9IHZhbHVlRm9yQml0V2lkdGgoYml0V2lkdGgsIHR5cGUgPT09IFZlY3RvclR5cGUuT0ZGU0VUICYmIG9mZnNldFZpZXdzIHx8IGRhdGFWaWV3cyk7XG4gICAgY29uc3QgZGF0YVZpZXdMZW5ndGggPSAoKGJ5dGVPZmZzZXQgKyBsZW5ndGgpIDw9IGJ5dGVMZW5ndGhcbiAgICAgICAgPyBsZW5ndGhcbiAgICAgICAgOiBieXRlTGVuZ3RoIC0gYnl0ZU9mZnNldFxuICAgICkgLyBEYXRhVmlld1R5cGVbJ0JZVEVTX1BFUl9FTEVNRU5UJ107XG4gICAgcmV0dXJuIG5ldyBEYXRhVmlld1R5cGUoYnVmZmVyLCBieXRlT2Zmc2V0LCBkYXRhVmlld0xlbmd0aCk7XG59XG5cbmZ1bmN0aW9uIHZhbHVlRm9yQml0V2lkdGgoYml0V2lkdGg6IG51bWJlciwgdmFsdWVzOiBhbnlbXSkge1xuICAgIHJldHVybiB2YWx1ZXNbYml0V2lkdGggPj4gNF0gfHwgdmFsdWVzWzNdO1xufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf8;base64,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Z0IsRUFBRSxNQUFjLEVBQUUsTUFBYztJQUV2RixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUNsQyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO0lBQ3JDLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3pDLE1BQU0sWUFBWSxHQUFHLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxJQUFJLEtBQUssVUFBVSxDQUFDLE1BQU0sSUFBSSxXQUFXLElBQUksU0FBUyxDQUFDLENBQUM7SUFDeEcsTUFBTSxjQUFjLEdBQUcsQ0FBQyxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxVQUFVO1VBQ3JELE1BQU07VUFDTixVQUFVLEdBQUcsVUFBVSxDQUM1QixHQUFHLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3RDLE1BQU0sQ0FBQyxJQUFJLFlBQVksQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0FBQ2hFLENBQUM7QUFFRCwwQkFBMEIsUUFBZ0IsRUFBRSxNQUFhO0lBQ3JELE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM5QyxDQUFDIiwiZmlsZSI6InJlYWRlci92ZWN0b3IuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lXG4vLyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGVcbi8vIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uXG4vLyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlXG4vLyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlXG4vLyBcIkxpY2Vuc2VcIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Vcbi8vIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbi8vXG4vLyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuLy9cbi8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZyxcbi8vIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuXG4vLyBcIkFTIElTXCIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWVxuLy8gS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlXG4vLyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zXG4vLyB1bmRlciB0aGUgTGljZW5zZS5cblxuaW1wb3J0IHsgTWVzc2FnZUJhdGNoIH0gZnJvbSAnLi9tZXNzYWdlJztcbmltcG9ydCB7IFZlY3RvciB9IGZyb20gJy4uL3ZlY3RvcnMvdmVjdG9yJztcbmltcG9ydCAqIGFzIFNjaGVtYV8gZnJvbSAnLi4vZm9ybWF0L1NjaGVtYSc7XG5pbXBvcnQgeyBTdHJ1Y3RWZWN0b3IgfSBmcm9tICcuLi92ZWN0b3JzL3N0cnVjdCc7XG5pbXBvcnQgeyBJdGVyYXRvclN0YXRlLCBEaWN0aW9uYXJpZXMgfSBmcm9tICcuL2Fycm93JztcbmltcG9ydCB7IERpY3Rpb25hcnlWZWN0b3IgfSBmcm9tICcuLi92ZWN0b3JzL2RpY3Rpb25hcnknO1xuaW1wb3J0IHsgVXRmOFZlY3RvciwgTGlzdFZlY3RvciwgRml4ZWRTaXplTGlzdFZlY3RvciB9IGZyb20gJy4uL3ZlY3RvcnMvbGlzdCc7XG5pbXBvcnQge1xuICAgIFR5cGVkQXJyYXksIFR5cGVkQXJyYXlDdG9yLCBJbnRBcnJheSwgRmxvYXRBcnJheSxcbiAgICBJbnQ4VmVjdG9yLCBJbnQxNlZlY3RvciwgSW50MzJWZWN0b3IsIEludDY0VmVjdG9yLFxuICAgIFVpbnQ4VmVjdG9yLCBVaW50MTZWZWN0b3IsIFVpbnQzMlZlY3RvciwgVWludDY0VmVjdG9yLFxuICAgIEZsb2F0MzJWZWN0b3IsIEZsb2F0NjRWZWN0b3IsIEluZGV4VmVjdG9yLCBEYXRlVmVjdG9yLFxufSBmcm9tICcuLi92ZWN0b3JzL3R5cGVkJztcblxuaW1wb3J0IEludCA9IFNjaGVtYV8ub3JnLmFwYWNoZS5hcnJvdy5mbGF0YnVmLkludDtcbmltcG9ydCBUeXBlID0gU2NoZW1hXy5vcmcuYXBhY2hlLmFycm93LmZsYXRidWYuVHlwZTtcbmltcG9ydCBGaWVsZCA9IFNjaGVtYV8ub3JnLmFwYWNoZS5hcnJvdy5mbGF0YnVmLkZpZWxkO1xuaW1wb3J0IFByZWNpc2lvbiA9IFNjaGVtYV8ub3JnLmFwYWNoZS5hcnJvdy5mbGF0YnVmLlByZWNpc2lvbjtcbmltcG9ydCBWZWN0b3JUeXBlID0gU2NoZW1hXy5vcmcuYXBhY2hlLmFycm93LmZsYXRidWYuVmVjdG9yVHlwZTtcbmltcG9ydCBGaXhlZFNpemVMaXN0ID0gU2NoZW1hXy5vcmcuYXBhY2hlLmFycm93LmZsYXRidWYuRml4ZWRTaXplTGlzdDtcbmltcG9ydCBGbG9hdGluZ1BvaW50ID0gU2NoZW1hXy5vcmcuYXBhY2hlLmFycm93LmZsYXRidWYuRmxvYXRpbmdQb2ludDtcbmltcG9ydCBEaWN0aW9uYXJ5RW5jb2RpbmcgPSBTY2hlbWFfLm9yZy5hcGFjaGUuYXJyb3cuZmxhdGJ1Zi5EaWN0aW9uYXJ5RW5jb2Rpbmc7XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkVmVjdG9yKGZpZWxkOiBGaWVsZCwgYmF0Y2g6IE1lc3NhZ2VCYXRjaCwgc3RhdGU6IEl0ZXJhdG9yU3RhdGUsIGRpY3Rpb25hcmllczogRGljdGlvbmFyaWVzKSB7XG4gICAgcmV0dXJuIHJlYWREaWN0aW9uYXJ5VmVjdG9yKGZpZWxkLCBiYXRjaCwgc3RhdGUsIGRpY3Rpb25hcmllcykgfHxcbiAgICAgICAgICAgICAgICByZWFkVHlwZWRWZWN0b3IoZmllbGQsIGJhdGNoLCBzdGF0ZSwgZGljdGlvbmFyaWVzKTtcbn1cblxuZnVuY3Rpb24gcmVhZFR5cGVkVmVjdG9yKGZpZWxkOiBGaWVsZCwgYmF0Y2g6IE1lc3NhZ2VCYXRjaCwgaXRlcmF0b3I6IEl0ZXJhdG9yU3RhdGUsIGRpY3Rpb25hcmllczogRGljdGlvbmFyaWVzKSB7XG4gICAgbGV0IHR5cGVUeXBlID0gZmllbGQudHlwZVR5cGUoKSwgcmVhZFR5cGVkID0gdHlwZWRWZWN0b3JSZWFkZXJzW3R5cGVUeXBlXTtcbiAgICBpZiAoIXJlYWRUeXBlZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VucmVjb2duaXplZCB2ZWN0b3IgbmFtZSBcIicgKyBUeXBlW3R5cGVUeXBlXSArICdcIiB0eXBlIFwiJyArIHR5cGVUeXBlICsgJ1wiJyk7XG4gICAgfVxuICAgIHJldHVybiByZWFkVHlwZWQoZmllbGQsIGJhdGNoLCBpdGVyYXRvciwgZGljdGlvbmFyaWVzKTtcbn1cblxuZnVuY3Rpb24gcmVhZERpY3Rpb25hcnlWZWN0b3IoZmllbGQ6IEZpZWxkLCBiYXRjaDogTWVzc2FnZUJhdGNoLCBpdGVyYXRvcjogSXRlcmF0b3JTdGF0ZSwgZGljdGlvbmFyaWVzOiBEaWN0aW9uYXJpZXMpIHtcbiAgICBsZXQgZW5jb2Rpbmc6IERpY3Rpb25hcnlFbmNvZGluZztcbiAgICBpZiAoZGljdGlvbmFyaWVzICYmIChlbmNvZGluZyA9IGZpZWxkLmRpY3Rpb25hcnkoKSkpIHtcbiAgICAgICAgbGV0IGlkID0gZW5jb2RpbmcuaWQoKS50b0Zsb2F0NjQoKS50b1N0cmluZygpO1xuICAgICAgICBsZXQgaW5kZXggPSByZWFkSW50VmVjdG9yKGZpZWxkLCBiYXRjaCwgaXRlcmF0b3IsIG51bGwsXG4gICAgICAgICAgICAvKiBhIGRpY3Rpb25hcnkgaW5kZXggZGVmYXVsdHMgdG8gc2lnbmVkIDMyIGJpdCBpbnQgaWYgdW5zcGVjaWZpZWQgKi9cbiAgICAgICAgICAgIGVuY29kaW5nLmluZGV4VHlwZSgpIHx8IHsgYml0V2lkdGg6ICgpID0+IDMyLCBpc1NpZ25lZDogKCkgPT4gdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIERpY3Rpb25hcnlWZWN0b3IuY3JlYXRlKGZpZWxkLCBpbmRleC5sZW5ndGgsIGluZGV4LCBkaWN0aW9uYXJpZXNbaWRdKTtcbiAgICB9XG59XG5cbmNvbnN0IEludFZpZXdzICAgID0gW0ludDhBcnJheSwgICAgSW50MTZBcnJheSwgICBJbnQzMkFycmF5LCAgIEludDMyQXJyYXkgIF07XG5jb25zdCBJbnQzMlZpZXdzICA9IFtJbnQzMkFycmF5LCAgIEludDMyQXJyYXksICAgSW50MzJBcnJheSwgICBJbnQzMkFycmF5ICBdO1xuY29uc3QgVWludFZpZXdzICAgPSBbVWludDhBcnJheSwgICBVaW50MTZBcnJheSwgIFVpbnQzMkFycmF5LCAgVWludDMyQXJyYXkgXTtcbmNvbnN0IFVpbnQ4Vmlld3MgID0gW1VpbnQ4QXJyYXksICAgVWludDhBcnJheSwgICBVaW50OEFycmF5LCAgIFVpbnQ4QXJyYXkgIF07XG5jb25zdCBVaW50MzJWaWV3cyA9IFtVaW50MzJBcnJheSwgIFVpbnQzMkFycmF5LCAgVWludDMyQXJyYXksICBVaW50MzJBcnJheSBdO1xuY29uc3QgRmxvYXRWaWV3cyAgPSBbSW50OEFycmF5LCAgICBJbnQxNkFycmF5LCAgIEZsb2F0MzJBcnJheSwgRmxvYXQ2NEFycmF5XTtcblxuY29uc3QgY3JlYXRlSW50RGF0YVZpZXdzID0gY3JlYXRlRGF0YVZpZXcuYmluZChudWxsLCBJbnRWaWV3cywgbnVsbCk7XG5jb25zdCBjcmVhdGVVaW50RGF0YVZpZXdzID0gY3JlYXRlRGF0YVZpZXcuYmluZChudWxsLCBVaW50Vmlld3MsIG51bGwpO1xuY29uc3QgY3JlYXRlRGF0ZURhdGFWaWV3cyA9IGNyZWF0ZURhdGFWaWV3LmJpbmQobnVsbCwgVWludDMyVmlld3MsIG51bGwpO1xuY29uc3QgY3JlYXRlRmxvYXREYXRhVmlld3MgPSBjcmVhdGVEYXRhVmlldy5iaW5kKG51bGwsIEZsb2F0Vmlld3MsIG51bGwpO1xuY29uc3QgY3JlYXRlTmVzdGVkRGF0YVZpZXdzID0gY3JlYXRlRGF0YVZpZXcuYmluZChudWxsLCBVaW50MzJWaWV3cywgbnVsbCk7XG5jb25zdCBjcmVhdGVWYWxpZGl0eURhdGFWaWV3cyA9IGNyZWF0ZURhdGFWaWV3LmJpbmQobnVsbCwgVWludDhWaWV3cywgbnVsbCk7XG5jb25zdCBjcmVhdGVVdGY4RGF0YVZpZXdzID0gY3JlYXRlRGF0YVZpZXcuYmluZChudWxsLCBVaW50OFZpZXdzLCBJbnQzMlZpZXdzKTtcblxuY29uc3QgZmxvYXRWZWN0b3JzID0ge1xuICAgIFtQcmVjaXNpb24uU0lOR0xFXTogRmxvYXQzMlZlY3RvcixcbiAgICBbUHJlY2lzaW9uLkRPVUJMRV06IEZsb2F0NjRWZWN0b3Jcbn07XG5jb25zdCBpbnRWZWN0b3JzID0gW1xuICAgIFsvKiB1bnNpZ25lZCAqLyBVaW50OFZlY3RvciwgICAvKiBzaWduZWQgKi8gSW50OFZlY3RvciBdLFxuICAgIFsvKiB1bnNpZ25lZCAqLyBVaW50MTZWZWN0b3IsICAvKiBzaWduZWQgKi8gSW50MTZWZWN0b3JdLFxuICAgIFsvKiB1bnNpZ25lZCAqLyBVaW50MzJWZWN0b3IsICAvKiBzaWduZWQgKi8gSW50MzJWZWN0b3JdLFxuICAgIFsvKiB1bnNpZ25lZCAqLyBVaW50NjRWZWN0b3IsICAvKiBzaWduZWQgKi8gSW50NjRWZWN0b3JdXG5dO1xuXG5mdW5jdGlvbiByZWFkSW50VmVjdG9yKGZpZWxkOiBGaWVsZCwgYmF0Y2g6IE1lc3NhZ2VCYXRjaCwgaXRlcmF0b3I6IEl0ZXJhdG9yU3RhdGUsIGRpY3Rpb25hcmllczogRGljdGlvbmFyaWVzLCBmaWVsZFR5cGU/OiBGaWVsZFR5cGUpIHtcbiAgICBsZXQgdHlwZSA9IChmaWVsZFR5cGUgfHwgZmllbGQudHlwZShuZXcgSW50KCkpKTtcbiAgICByZXR1cm4gdHlwZS5pc1NpZ25lZCgpID9cbiAgICAgICAgcmVhZF9JbnRWZWN0b3IoZmllbGQsIGJhdGNoLCBpdGVyYXRvciwgZGljdGlvbmFyaWVzLCB0eXBlKSA6XG4gICAgICAgIHJlYWRVaW50VmVjdG9yKGZpZWxkLCBiYXRjaCwgaXRlcmF0b3IsIGRpY3Rpb25hcmllcywgdHlwZSk7XG59XG5cbmNvbnN0IHJlYWRfSW50VmVjdG9yID0gcmVhZFZlY3RvckxheW91dDxudW1iZXIsIEludEFycmF5PihjcmVhdGVJbnREYXRhVmlld3MsIGNyZWF0ZUludFZlY3Rvcik7XG5jb25zdCByZWFkVWludFZlY3RvciA9IHJlYWRWZWN0b3JMYXlvdXQ8bnVtYmVyLCBJbnRBcnJheT4oY3JlYXRlVWludERhdGFWaWV3cywgY3JlYXRlSW50VmVjdG9yKTtcbmZ1bmN0aW9uIGNyZWF0ZUludFZlY3RvcihmaWVsZCwgbGVuZ3RoLCBkYXRhLCB2YWxpZGl0eSwgb2Zmc2V0cywgZmllbGRUeXBlLCBiYXRjaCwgaXRlcmF0b3IsIGRpY3Rpb25hcmllcykge1xuICAgIGxldCB0eXBlID0gZmllbGRUeXBlIHx8IGZpZWxkLnR5cGUobmV3IEludCgpKSwgYml0V2lkdGggPSB0eXBlLmJpdFdpZHRoKCk7XG4gICAgbGV0IFZlY3RvciA9IHZhbHVlRm9yQml0V2lkdGgoYml0V2lkdGgsIGludFZlY3RvcnMpWyt0eXBlLmlzU2lnbmVkKCldO1xuICAgIHJldHVybiBWZWN0b3IuY3JlYXRlKGZpZWxkLCBsZW5ndGgsIHZhbGlkaXR5LCBkYXRhIHx8IG9mZnNldHMpO1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gc28gdGhpcyBpcyBraW5kYSBzdHJhbmdlIPCfkYY6XG4gICAgLy8gVGhlIGRpY3Rpb25hcnkgZW5jb2RlZCB2ZWN0b3JzIEkgZ2VuZXJhdGVkIGZyb20gc2FtcGxlIG1hcGQtY29yZSBxdWVyaWVzIGhhdmUgdGhlIGluZGljaWVzJyBkYXRhIGJ1ZmZlcnNcbiAgICAvLyB0YWdnZWQgYXMgVmVjdG9yVHlwZS5PRkZTRVQgKDApIGluIHRoZSBmaWVsZCBtZXRhZGF0YS4gVGhlIGN1cnJlbnQgVFMgaW1wbCBpZ25vcmVzIGJ1ZmZlcnMnIGxheW91dCB0eXBlLFxuICAgIC8vIGFuZCBhc3N1bWVzIHRoZSBzZWNvbmQgYnVmZmVyIGlzIHRoZSBkYXRhIGZvciBhIE51bGxhYmxlSW50VmVjdG9yLiBTaW5jZSB3ZSd2ZSBiZWVuIHN0cmljdGVyIGFib3V0IGVuZm9yY2luZ1xuICAgIC8vIHRoZSBBcnJvdyBzcGVjIHdoaWxlIHBhcnNpbmcsIHRoZSBJbnRWZWN0b3IncyBkYXRhIGJ1ZmZlciByZWFkcyBlbXB0eSBpbiB0aGlzIGNhc2UuIElmIHNvLCBmYWxsYmFjayB0byB1c2luZ1xuICAgIC8vIHRoZSBvZmZzZXRzIGJ1ZmZlciBhcyB0aGUgZGF0YSwgc2luY2UgSW50VmVjdG9ycyBkb24ndCBoYXZlIG9mZnNldHMuXG59XG5cbmNvbnN0IHJlYWRGbG9hdFZlY3RvciA9IHJlYWRWZWN0b3JMYXlvdXQ8bnVtYmVyLCBGbG9hdEFycmF5PihcbiAgICBjcmVhdGVGbG9hdERhdGFWaWV3cyxcbiAgICAoZmllbGQsIGxlbmd0aCwgZGF0YSwgdmFsaWRpdHksIG9mZnNldHMsIGZpZWxkVHlwZSwgYmF0Y2gsIGl0ZXJhdG9yLCBkaWN0aW9uYXJpZXMpID0+IHtcbiAgICAgICAgbGV0IHR5cGUgPSBmaWVsZC50eXBlKG5ldyBGbG9hdGluZ1BvaW50KCkpO1xuICAgICAgICBsZXQgVmVjdG9yID0gZmxvYXRWZWN0b3JzW3R5cGUucHJlY2lzaW9uKCldO1xuICAgICAgICByZXR1cm4gVmVjdG9yLmNyZWF0ZShmaWVsZCwgbGVuZ3RoLCB2YWxpZGl0eSwgZGF0YSk7XG4gICAgfVxuKTtcblxuY29uc3QgcmVhZERhdGVWZWN0b3IgPSByZWFkVmVjdG9yTGF5b3V0PERhdGUsIFVpbnQzMkFycmF5PihcbiAgICBjcmVhdGVEYXRlRGF0YVZpZXdzLFxuICAgIChmaWVsZCwgbGVuZ3RoLCBkYXRhLCB2YWxpZGl0eSwgb2Zmc2V0cywgZmllbGRUeXBlLCBiYXRjaCwgaXRlcmF0b3IsIGRpY3Rpb25hcmllcykgPT4ge1xuICAgICAgICByZXR1cm4gRGF0ZVZlY3Rvci5jcmVhdGUoZmllbGQsIGxlbmd0aCwgdmFsaWRpdHksIGRhdGEpO1xuICAgIH1cbik7XG5cbmNvbnN0IHJlYWRVdGY4VmVjdG9yID0gcmVhZFZlY3RvckxheW91dDxzdHJpbmcsIFVpbnQ4QXJyYXk+KFxuICAgIGNyZWF0ZVV0ZjhEYXRhVmlld3MsXG4gICAgKGZpZWxkLCBsZW5ndGgsIGRhdGEsIHZhbGlkaXR5LCBvZmZzZXRzLCBmaWVsZFR5cGUsIGJhdGNoLCBpdGVyYXRvciwgZGljdGlvbmFyaWVzKSA9PiB7XG4gICAgICAgIGxldCBvZmZzZXRzQWRqdXN0ZWQgPSBuZXcgSW50MzJBcnJheShvZmZzZXRzLmJ1ZmZlciwgb2Zmc2V0cy5ieXRlT2Zmc2V0LCBsZW5ndGggKyAxKTtcbiAgICAgICAgcmV0dXJuIFV0ZjhWZWN0b3IuY3JlYXRlKFxuICAgICAgICAgICAgZmllbGQsIGxlbmd0aCwgdmFsaWRpdHksXG4gICAgICAgICAgICBVaW50OFZlY3Rvci5jcmVhdGUoZmllbGQsIGRhdGEubGVuZ3RoLCBudWxsLCBkYXRhKSxcbiAgICAgICAgICAgIEluZGV4VmVjdG9yLmNyZWF0ZShmaWVsZCwgbGVuZ3RoICsgMSwgbnVsbCwgb2Zmc2V0c0FkanVzdGVkKVxuICAgICAgICApO1xuICAgIH1cbik7XG5cbmNvbnN0IHJlYWRMaXN0VmVjdG9yID0gcmVhZFZlY3RvckxheW91dDxhbnlbXSwgVWludDMyQXJyYXk+KFxuICAgIGNyZWF0ZU5lc3RlZERhdGFWaWV3cyxcbiAgICAoZmllbGQsIGxlbmd0aCwgZGF0YSwgdmFsaWRpdHksIG9mZnNldHMsIGZpZWxkVHlwZSwgYmF0Y2gsIGl0ZXJhdG9yLCBkaWN0aW9uYXJpZXMpID0+IHtcbiAgICAgICAgbGV0IG9mZnNldHNBZGp1c3RlZCA9IG5ldyBJbnQzMkFycmF5KG9mZnNldHMuYnVmZmVyLCBvZmZzZXRzLmJ5dGVPZmZzZXQsIGxlbmd0aCArIDEpO1xuICAgICAgICByZXR1cm4gTGlzdFZlY3Rvci5jcmVhdGUoXG4gICAgICAgICAgICBmaWVsZCwgbGVuZ3RoLCB2YWxpZGl0eSxcbiAgICAgICAgICAgIHJlYWRWZWN0b3IoZmllbGQuY2hpbGRyZW4oMCksIGJhdGNoLCBpdGVyYXRvciwgZGljdGlvbmFyaWVzKSxcbiAgICAgICAgICAgIEluZGV4VmVjdG9yLmNyZWF0ZShmaWVsZCwgbGVuZ3RoICsgMSwgbnVsbCwgb2Zmc2V0c0FkanVzdGVkKVxuICAgICAgICApO1xuICAgIH1cbik7XG5cbmNvbnN0IHJlYWRGaXhlZFNpemVMaXN0VmVjdG9yID0gcmVhZFZlY3RvckxheW91dDxhbnlbXSwgVWludDMyQXJyYXk+KFxuICAgIGNyZWF0ZU5lc3RlZERhdGFWaWV3cyxcbiAgICAoZmllbGQsIGxlbmd0aCwgZGF0YSwgdmFsaWRpdHksIG9mZnNldHMsIGZpZWxkVHlwZSwgYmF0Y2gsIGl0ZXJhdG9yLCBkaWN0aW9uYXJpZXMpID0+IHtcbiAgICAgICAgbGV0IHNpemUgPSBmaWVsZC50eXBlKG5ldyBGaXhlZFNpemVMaXN0KCkpLmxpc3RTaXplKCk7XG4gICAgICAgIHJldHVybiBGaXhlZFNpemVMaXN0VmVjdG9yLmNyZWF0ZShcbiAgICAgICAgICAgIGZpZWxkLCBsZW5ndGgsIHNpemUsIHZhbGlkaXR5LFxuICAgICAgICAgICAgcmVhZFZlY3RvcihmaWVsZC5jaGlsZHJlbigwKSwgYmF0Y2gsIGl0ZXJhdG9yLCBkaWN0aW9uYXJpZXMpXG4gICAgICAgICk7XG4gICAgfVxuKTtcblxuY29uc3QgcmVhZFN0cnVjdFZlY3RvciA9IHJlYWRWZWN0b3JMYXlvdXQ8YW55W10sIEFycmF5TGlrZTxhbnk+PihcbiAgICBjcmVhdGVOZXN0ZWREYXRhVmlld3MsXG4gICAgKGZpZWxkLCBsZW5ndGgsIGRhdGEsIHZhbGlkaXR5LCBvZmZzZXRzLCBmaWVsZFR5cGUsIGJhdGNoLCBpdGVyYXRvciwgZGljdGlvbmFyaWVzKSA9PiB7XG4gICAgICAgIGxldCB2ZWN0b3JzOiBWZWN0b3I8YW55PltdID0gW107XG4gICAgICAgIGl0ZXJhdG9yLmJ1ZmZlckluZGV4IC09IGZpZWxkLm51bGxhYmxlKCkgPyAwIDogZmllbGQubGF5b3V0TGVuZ3RoKCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAtMSwgbiA9IGZpZWxkLmNoaWxkcmVuTGVuZ3RoKCk7ICsraSA8IG47KSB7XG4gICAgICAgICAgICB2ZWN0b3JzW2ldID0gcmVhZFZlY3RvcihmaWVsZC5jaGlsZHJlbihpKSwgYmF0Y2gsIGl0ZXJhdG9yLCBkaWN0aW9uYXJpZXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBTdHJ1Y3RWZWN0b3IuY3JlYXRlKGZpZWxkLCBsZW5ndGgsIHZhbGlkaXR5LCAuLi52ZWN0b3JzKTtcbiAgICB9XG4pO1xuXG5jb25zdCB0eXBlZFZlY3RvclJlYWRlcnMgPSB7XG4gICAgW1R5cGUuSW50XTogcmVhZEludFZlY3RvcixcbiAgICBbVHlwZS5EYXRlXTogcmVhZERhdGVWZWN0b3IsXG4gICAgW1R5cGUuTGlzdF06IHJlYWRMaXN0VmVjdG9yLFxuICAgIFtUeXBlLlV0ZjhdOiByZWFkVXRmOFZlY3RvcixcbiAgICBbVHlwZS5TdHJ1Y3RfXTogcmVhZFN0cnVjdFZlY3RvcixcbiAgICBbVHlwZS5GbG9hdGluZ1BvaW50XTogcmVhZEZsb2F0VmVjdG9yLFxuICAgIFtUeXBlLkZpeGVkU2l6ZUxpc3RdOiByZWFkRml4ZWRTaXplTGlzdFZlY3Rvcixcbn07XG5cbnR5cGUgRmllbGRUeXBlID0geyBiaXRXaWR0aCgpOiBudW1iZXI7IGlzU2lnbmVkKCk6IGJvb2xlYW4gfTtcbnR5cGUgZGF0YVZpZXdGYWN0b3J5PFYgPSBUeXBlZEFycmF5PiA9IChiYXRjaDogTWVzc2FnZUJhdGNoLCB0eXBlOiBWZWN0b3JUeXBlLCBiaXRXaWR0aDogbnVtYmVyLCBvZmZzZXQ6IG51bWJlciwgbGVuZ3RoOiBudW1iZXIpID0+IFY7XG50eXBlIHZlY3RvckZhY3Rvcnk8VExpc3QsIFYgPSBWZWN0b3I8YW55Pj4gPSAoZmllbGQ6IEZpZWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aDogbnVtYmVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IFRMaXN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGxzOiBVaW50OEFycmF5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldHM6IFR5cGVkQXJyYXksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRUeXBlOiBGaWVsZFR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2h1bms6IE1lc3NhZ2VCYXRjaCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVyYWJsZTogSXRlcmF0b3JTdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWN0aW9uYXJpZXM6IERpY3Rpb25hcmllcykgPT4gVjtcblxuZnVuY3Rpb24gcmVhZFZlY3RvckxheW91dDxULCBUTGlzdD4oY3JlYXRlRGF0YVZpZXc6IGRhdGFWaWV3RmFjdG9yeTxUTGlzdD4sIGNyZWF0ZVZlY3RvcjogdmVjdG9yRmFjdG9yeTxUTGlzdCwgVmVjdG9yPFQ+Pikge1xuICAgIHJldHVybiBmdW5jdGlvbiByZWFkTGF5b3V0KFxuICAgICAgICAgICAgZmllbGQ6IEZpZWxkLFxuICAgICAgICAgICAgY2h1bms6IE1lc3NhZ2VCYXRjaCxcbiAgICAgICAgICAgIGl0ZXJhdG9yOiBJdGVyYXRvclN0YXRlLFxuICAgICAgICAgICAgZGljdGlvbmFyaWVzOiBEaWN0aW9uYXJpZXMsXG4gICAgICAgICAgICBpbnRlZ2VyRmllbGRUeXBlPzogRmllbGRUeXBlXG4gICAgKSB7XG4gICAgICAgIGxldCBiYXRjaCA9IGNodW5rLmRhdGE7XG4gICAgICAgIGxldCBsYXlvdXRMZW5ndGggPSBmaWVsZC5sYXlvdXRMZW5ndGgoKTtcbiAgICAgICAgbGV0IG5vZGUgPSBiYXRjaC5ub2RlcyhpdGVyYXRvci5ub2RlSW5kZXgrKyk7XG4gICAgICAgIGxldCBkYXRhOiBUTGlzdCwgb2Zmc2V0czogYW55LCB2YWxpZGl0eTogVWludDhBcnJheTtcbiAgICAgICAgbGV0IHR5cGUsIGJpdFdpZHRoLCBidWZmZXJMZW5ndGgsIG5vZGVMZW5ndGggPSBub2RlLmxlbmd0aCgpLmxvdztcbiAgICAgICAgZm9yIChsZXQgaSA9IC0xOyArK2kgPCBsYXlvdXRMZW5ndGg7KSB7XG4gICAgICAgICAgICBsZXQgbGF5b3V0ID0gZmllbGQubGF5b3V0KGkpO1xuICAgICAgICAgICAgbGV0IGJ1ZmZlciA9IGJhdGNoLmJ1ZmZlcnMoaXRlcmF0b3IuYnVmZmVySW5kZXgrKyk7XG4gICAgICAgICAgICBpZiAoKHR5cGUgPSBsYXlvdXQudHlwZSgpKSA9PT0gVmVjdG9yVHlwZS5UWVBFIHx8XG4gICAgICAgICAgICAgICAgKGJ1ZmZlckxlbmd0aCA9IGJ1ZmZlci5sZW5ndGgoKS5sb3cpIDw9IDAgIHx8XG4gICAgICAgICAgICAgICAgKGJpdFdpZHRoID0gbGF5b3V0LmJpdFdpZHRoKCkpIDw9IDApIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gVmVjdG9yVHlwZS5EQVRBKSB7XG4gICAgICAgICAgICAgICAgZGF0YSA9IGNyZWF0ZURhdGFWaWV3KGNodW5rLCB0eXBlLCBiaXRXaWR0aCwgYnVmZmVyLm9mZnNldCgpLmxvdywgYnVmZmVyTGVuZ3RoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gVmVjdG9yVHlwZS5PRkZTRVQpIHtcbiAgICAgICAgICAgICAgICBvZmZzZXRzID0gY3JlYXRlRGF0YVZpZXcoY2h1bmssIHR5cGUsIGJpdFdpZHRoLCBidWZmZXIub2Zmc2V0KCkubG93LCBidWZmZXJMZW5ndGgpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChub2RlLm51bGxDb3VudCgpLmxvdyA+IDApIHtcbiAgICAgICAgICAgICAgICB2YWxpZGl0eSA9IGNyZWF0ZVZhbGlkaXR5RGF0YVZpZXdzKGNodW5rLCB0eXBlLCBiaXRXaWR0aCwgYnVmZmVyLm9mZnNldCgpLmxvdywgbm9kZUxlbmd0aCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNyZWF0ZVZlY3RvcihmaWVsZCwgbm9kZUxlbmd0aCwgZGF0YSwgdmFsaWRpdHksIG9mZnNldHMsIGludGVnZXJGaWVsZFR5cGUsIGNodW5rLCBpdGVyYXRvciwgZGljdGlvbmFyaWVzKTtcbiAgICB9O1xufVxuXG5mdW5jdGlvbiBjcmVhdGVEYXRhVmlldyhcbiAgICBkYXRhVmlld3M6IFR5cGVkQXJyYXlDdG9yPGFueT5bXSwgb2Zmc2V0Vmlld3M6IFR5cGVkQXJyYXlDdG9yPGFueT5bXSB8IG51bGwsXG4gICAgYmF0Y2g6IE1lc3NhZ2VCYXRjaCwgdHlwZTogVmVjdG9yVHlwZSwgYml0V2lkdGg6IG51bWJlciwgb2Zmc2V0OiBudW1iZXIsIGxlbmd0aDogbnVtYmVyXG4pIHtcbiAgICBjb25zdCBidWZmZXIgPSBiYXRjaC5ieXRlcy5idWZmZXI7XG4gICAgY29uc3QgYnl0ZUxlbmd0aCA9IGJ1ZmZlci5ieXRlTGVuZ3RoO1xuICAgIGNvbnN0IGJ5dGVPZmZzZXQgPSBiYXRjaC5vZmZzZXQgKyBvZmZzZXQ7XG4gICAgY29uc3QgRGF0YVZpZXdUeXBlID0gdmFsdWVGb3JCaXRXaWR0aChiaXRXaWR0aCwgdHlwZSA9PT0gVmVjdG9yVHlwZS5PRkZTRVQgJiYgb2Zmc2V0Vmlld3MgfHwgZGF0YVZpZXdzKTtcbiAgICBjb25zdCBkYXRhVmlld0xlbmd0aCA9ICgoYnl0ZU9mZnNldCArIGxlbmd0aCkgPD0gYnl0ZUxlbmd0aFxuICAgICAgICA/IGxlbmd0aFxuICAgICAgICA6IGJ5dGVMZW5ndGggLSBieXRlT2Zmc2V0XG4gICAgKSAvIERhdGFWaWV3VHlwZVsnQllURVNfUEVSX0VMRU1FTlQnXTtcbiAgICByZXR1cm4gbmV3IERhdGFWaWV3VHlwZShidWZmZXIsIGJ5dGVPZmZzZXQsIGRhdGFWaWV3TGVuZ3RoKTtcbn1cblxuZnVuY3Rpb24gdmFsdWVGb3JCaXRXaWR0aChiaXRXaWR0aDogbnVtYmVyLCB2YWx1ZXM6IGFueVtdKSB7XG4gICAgcmV0dXJuIHZhbHVlc1tiaXRXaWR0aCA+PiA0XSB8fCB2YWx1ZXNbM107XG59XG4iXX0=

@@ -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.
import { readBuffers } from './reader/arrow';

@@ -108,2 +124,2 @@ import { sliceToRangeArgs } from './vectors/vector';

//# sourceMappingURL=data:application/json;charset=utf8;base64,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LEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzdELENBQUM7QUFFRCxrQkFBa0IsR0FBVyxFQUFFLE9BQXNCO0lBQ2pELE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLE1BQU0sS0FBSyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztBQUM3RixDQUFDO0FBRUQscUJBQXFCLFFBQWdCLEVBQUUsT0FBc0I7SUFDekQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDekgsQ0FBQztBQUVELG9CQUFvQixRQUFnQixFQUFFLE9BQXNCO0lBQ3hELE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxXQUFXLEtBQUssQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDNUksQ0FBQyIsImZpbGUiOiJ0YWJsZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlYWRCdWZmZXJzIH0gZnJvbSAnLi9yZWFkZXIvYXJyb3cnO1xuaW1wb3J0IHsgVmVjdG9yLCBzbGljZVRvUmFuZ2VBcmdzIH0gZnJvbSAnLi92ZWN0b3JzL3ZlY3Rvcic7XG5cbmV4cG9ydCBjbGFzcyBUYWJsZSBpbXBsZW1lbnRzIEl0ZXJhYmxlPE1hcDxzdHJpbmcsIGFueT4+IHtcbiAgICBwdWJsaWMgbGVuZ3RoOiBudW1iZXI7XG4gICAgcHJvdGVjdGVkIF9jb2x1bW5zOiBWZWN0b3I8YW55PltdO1xuICAgIHByb3RlY3RlZCBfY29sdW1uc01hcDogeyBbazogc3RyaW5nXTogVmVjdG9yPGFueT4gfTtcbiAgICBzdGF0aWMgZnJvbSguLi5ieXRlczogQXJyYXk8VWludDhBcnJheSB8IEJ1ZmZlciB8IHN0cmluZz4pIHtcbiAgICAgICAgbGV0IGNvbHVtbnM6IFZlY3Rvcjxhbnk+W107XG4gICAgICAgIGZvciAobGV0IHZlY3RvcnMgb2YgcmVhZEJ1ZmZlcnMoLi4uYnl0ZXMpKSB7XG4gICAgICAgICAgICBjb2x1bW5zID0gIWNvbHVtbnMgPyB2ZWN0b3JzIDogY29sdW1ucy5tYXAoKHYsIGkpID0+IHYuY29uY2F0KHZlY3RvcnNbaV0pKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IFRhYmxlKGNvbHVtbnMpO1xuICAgIH1cbiAgICBjb25zdHJ1Y3Rvcihjb2x1bW5zOiBWZWN0b3I8YW55PltdKSB7XG4gICAgICAgIHRoaXMuX2NvbHVtbnMgPSBjb2x1bW5zIHx8IFtdO1xuICAgICAgICB0aGlzLmxlbmd0aCA9IE1hdGgubWF4KC4uLnRoaXMuX2NvbHVtbnMubWFwKCh2KSA9PiB2Lmxlbmd0aCkpO1xuICAgICAgICB0aGlzLl9jb2x1bW5zTWFwID0gdGhpcy5fY29sdW1ucy5yZWR1Y2UoKG1hcCwgdmVjKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gKG1hcFt2ZWMubmFtZV0gPSB2ZWMpICYmIG1hcCB8fCBtYXA7XG4gICAgICAgIH0sIDxhbnk+IHt9KTtcbiAgICB9XG4gICAgKltTeW1ib2wuaXRlcmF0b3JdKCkge1xuICAgICAgICBmb3IgKGxldCBjb2xzID0gdGhpcy5fY29sdW1ucywgaSA9IC0xLCBuID0gdGhpcy5sZW5ndGg7ICsraSA8IG47KSB7XG4gICAgICAgICAgICB5aWVsZCByb3dBc01hcChpLCBjb2xzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAqcm93cyhzdGFydFJvdz86IG51bWJlciB8IGJvb2xlYW4sIGVuZFJvdz86IG51bWJlciB8IGJvb2xlYW4sIGNvbXBhY3Q/OiBib29sZWFuKSB7XG4gICAgICAgIGxldCBzdGFydCA9IHN0YXJ0Um93IGFzIG51bWJlciwgZW5kID0gZW5kUm93IGFzIG51bWJlcjtcbiAgICAgICAgaWYgKHR5cGVvZiBzdGFydFJvdyA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgICBjb21wYWN0ID0gc3RhcnRSb3c7XG4gICAgICAgICAgICBzdGFydCA9IGVuZDtcbiAgICAgICAgICAgIGVuZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZW5kUm93ID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgIGNvbXBhY3QgPSBlbmRSb3c7XG4gICAgICAgICAgICBlbmQgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHJvd0luZGV4ID0gLTEsIHsgbGVuZ3RoIH0gPSB0aGlzO1xuICAgICAgICBjb25zdCBbcm93T2Zmc2V0LCByb3dzVG90YWxdID0gc2xpY2VUb1JhbmdlQXJncyhsZW5ndGgsIHN0YXJ0LCBlbmQpO1xuICAgICAgICB3aGlsZSAoKytyb3dJbmRleCA8IHJvd3NUb3RhbCkge1xuICAgICAgICAgICAgeWllbGQgdGhpcy5nZXRSb3coKHJvd0luZGV4ICsgcm93T2Zmc2V0KSAlIGxlbmd0aCwgY29tcGFjdCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgKmNvbHMoc3RhcnRDb2w/OiBudW1iZXIsIGVuZENvbD86IG51bWJlcikge1xuICAgICAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiB0aGlzLl9jb2x1bW5zLnNsaWNlKHN0YXJ0Q29sLCBlbmRDb2wpKSB7XG4gICAgICAgICAgICB5aWVsZCBjb2x1bW47XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0Um93KHJvd0luZGV4OiBudW1iZXIsIGNvbXBhY3Q/OiBib29sZWFuKSB7XG4gICAgICAgIHJldHVybiAoY29tcGFjdCAmJiByb3dBc0FycmF5IHx8IHJvd0FzT2JqZWN0KShyb3dJbmRleCwgdGhpcy5fY29sdW1ucyk7XG4gICAgfVxuICAgIGdldENlbGwoY29sdW1uTmFtZTogc3RyaW5nLCByb3dJbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldENvbHVtbihjb2x1bW5OYW1lKS5nZXQocm93SW5kZXgpO1xuICAgIH1cbiAgICBnZXRDZWxsQXQoY29sdW1uSW5kZXg6IG51bWJlciwgcm93SW5kZXg6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRDb2x1bW5BdChjb2x1bW5JbmRleCkuZ2V0KHJvd0luZGV4KTtcbiAgICB9XG4gICAgZ2V0Q29sdW1uPFQgPSBhbnk+KGNvbHVtbk5hbWU6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29sdW1uc01hcFtjb2x1bW5OYW1lXSBhcyBWZWN0b3I8VD47XG4gICAgfVxuICAgIGdldENvbHVtbkF0PFQgPSBhbnk+KGNvbHVtbkluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbHVtbnNbY29sdW1uSW5kZXhdIGFzIFZlY3RvcjxUPjtcbiAgICB9XG4gICAgdG9TdHJpbmcoeyBpbmRleCA9IGZhbHNlIH0gPSB7fSkge1xuICAgICAgICBjb25zdCB7IGxlbmd0aCB9ID0gdGhpcztcbiAgICAgICAgaWYgKGxlbmd0aCA8PSAwKSB7IHJldHVybiAnJzsgfVxuICAgICAgICBjb25zdCBtYXhDb2x1bW5XaWR0aHMgPSBbXTtcbiAgICAgICAgY29uc3Qgcm93cyA9IG5ldyBBcnJheShsZW5ndGggKyAxKTtcbiAgICAgICAgcm93c1swXSA9IHRoaXMuX2NvbHVtbnMubWFwKChjKSA9PiBjLm5hbWUpO1xuICAgICAgICBpbmRleCAmJiByb3dzWzBdLnVuc2hpZnQoJ0luZGV4Jyk7XG4gICAgICAgIGZvciAobGV0IGkgPSAtMSwgbiA9IHJvd3MubGVuZ3RoIC0gMTsgKytpIDwgbjspIHtcbiAgICAgICAgICAgIHJvd3NbaSArIDFdID0gdGhpcy5nZXRSb3coaSwgdHJ1ZSk7XG4gICAgICAgICAgICBpbmRleCAmJiByb3dzW2kgKyAxXS51bnNoaWZ0KGkpO1xuICAgICAgICB9XG4gICAgICAgIC8vIFBhc3Mgb25lIHRvIGNvbnZlcnQgdG8gc3RyaW5ncyBhbmQgY291bnQgbWF4IGNvbHVtbiB3aWR0aHNcbiAgICAgICAgZm9yIChsZXQgaSA9IC0xLCBuID0gcm93cy5sZW5ndGg7ICsraSA8IG47KSB7XG4gICAgICAgICAgICBjb25zdCByb3cgPSByb3dzW2ldO1xuICAgICAgICAgICAgZm9yIChsZXQgaiA9IC0xLCBrID0gcm93Lmxlbmd0aDsgKytqIDwgazspIHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWwgPSByb3dbal0gPSBgJHtyb3dbal19YDtcbiAgICAgICAgICAgICAgICBtYXhDb2x1bW5XaWR0aHNbal0gPSAhbWF4Q29sdW1uV2lkdGhzW2pdXG4gICAgICAgICAgICAgICAgICAgID8gdmFsLmxlbmd0aFxuICAgICAgICAgICAgICAgICAgICA6IE1hdGgubWF4KG1heENvbHVtbldpZHRoc1tqXSwgdmFsLmxlbmd0aCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gUGFzcyB0d28gdG8gcGFkIGVhY2ggb25lIHRvIG1heCBjb2x1bW4gd2lkdGhcbiAgICAgICAgZm9yIChsZXQgaSA9IC0xLCBuID0gcm93cy5sZW5ndGg7ICsraSA8IG47KSB7XG4gICAgICAgICAgICBjb25zdCByb3cgPSByb3dzW2ldO1xuICAgICAgICAgICAgZm9yIChsZXQgaiA9IC0xLCBrID0gcm93Lmxlbmd0aDsgKytqIDwgazspIHtcbiAgICAgICAgICAgICAgICByb3dbal0gPSBsZWZ0UGFkKHJvd1tqXSwgJyAnLCBtYXhDb2x1bW5XaWR0aHNbal0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcm93c1tpXSA9IHJvdy5qb2luKCcsICcpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByb3dzLmpvaW4oJ1xcbicpO1xuICAgIH1cbn1cblxuVGFibGUucHJvdG90eXBlLmxlbmd0aCA9IDA7XG5cbmZ1bmN0aW9uIGxlZnRQYWQoc3RyLCBmaWxsLCBuKSB7XG4gICAgcmV0dXJuIChuZXcgQXJyYXkobiArIDEpLmpvaW4oZmlsbCkgKyBzdHIpLnNsaWNlKC0xICogbik7XG59XG5cbmZ1bmN0aW9uIHJvd0FzTWFwKHJvdzogbnVtYmVyLCBjb2x1bW5zOiBWZWN0b3I8YW55PltdKSB7XG4gICAgcmV0dXJuIGNvbHVtbnMucmVkdWNlKChtYXAsIHZlY3RvcikgPT4gbWFwLnNldCh2ZWN0b3IubmFtZSwgdmVjdG9yLmdldChyb3cpKSwgbmV3IE1hcCgpKTtcbn1cblxuZnVuY3Rpb24gcm93QXNPYmplY3Qocm93SW5kZXg6IG51bWJlciwgY29sdW1uczogVmVjdG9yPGFueT5bXSkge1xuICAgIHJldHVybiBjb2x1bW5zLnJlZHVjZSgocm93LCB2ZWN0b3IpID0+IChyb3dbdmVjdG9yLm5hbWVdID0gdmVjdG9yLmdldChyb3dJbmRleCkpICYmIHJvdyB8fCByb3csIE9iamVjdC5jcmVhdGUobnVsbCkpO1xufVxuXG5mdW5jdGlvbiByb3dBc0FycmF5KHJvd0luZGV4OiBudW1iZXIsIGNvbHVtbnM6IFZlY3Rvcjxhbnk+W10pIHtcbiAgICByZXR1cm4gY29sdW1ucy5yZWR1Y2UoKHJvdywgdmVjdG9yLCBjb2x1bW5JbmRleCkgPT4gKHJvd1tjb2x1bW5JbmRleF0gPSB2ZWN0b3IuZ2V0KHJvd0luZGV4KSkgJiYgcm93IHx8IHJvdywgbmV3IEFycmF5KGNvbHVtbnMubGVuZ3RoKSk7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf8;base64,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R0FBRyxFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQzVJLENBQUMiLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lXG4vLyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGVcbi8vIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uXG4vLyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlXG4vLyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlXG4vLyBcIkxpY2Vuc2VcIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Vcbi8vIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbi8vXG4vLyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuLy9cbi8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZyxcbi8vIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuXG4vLyBcIkFTIElTXCIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWVxuLy8gS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlXG4vLyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zXG4vLyB1bmRlciB0aGUgTGljZW5zZS5cblxuaW1wb3J0IHsgcmVhZEJ1ZmZlcnMgfSBmcm9tICcuL3JlYWRlci9hcnJvdyc7XG5pbXBvcnQgeyBWZWN0b3IsIHNsaWNlVG9SYW5nZUFyZ3MgfSBmcm9tICcuL3ZlY3RvcnMvdmVjdG9yJztcblxuZXhwb3J0IGNsYXNzIFRhYmxlIGltcGxlbWVudHMgSXRlcmFibGU8TWFwPHN0cmluZywgYW55Pj4ge1xuICAgIHB1YmxpYyBsZW5ndGg6IG51bWJlcjtcbiAgICBwcm90ZWN0ZWQgX2NvbHVtbnM6IFZlY3Rvcjxhbnk+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.
import { Vector } from './vector';

@@ -23,2 +39,2 @@ export class DictionaryVector extends Vector {

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZlY3RvcnMvZGljdGlvbmFyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRWxDLE1BQU0sdUJBQTJCLFNBQVEsTUFBUztJQUc5QyxZQUFZLEtBQXFCLEVBQUUsVUFBcUI7UUFDcEQsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBQ0QsR0FBRyxDQUFDLEtBQWE7UUFDYixNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBQ0QsTUFBTSxDQUFDLE1BQTJCO1FBQzlCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUM3QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQzNCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFDL0IsSUFBSSxDQUFDLFVBQVUsQ0FDbEIsQ0FBQztJQUNOLENBQUM7SUFDRCxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUNkLElBQUksRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ2pDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDdEIsTUFBTSxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlCLENBQUM7SUFDTCxDQUFDO0NBQ0oiLCJmaWxlIjoidmVjdG9ycy9kaWN0aW9uYXJ5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmVjdG9yIH0gZnJvbSAnLi92ZWN0b3InO1xuXG5leHBvcnQgY2xhc3MgRGljdGlvbmFyeVZlY3RvcjxUPiBleHRlbmRzIFZlY3RvcjxUPiB7XG4gICAgcHJvdGVjdGVkIGluZGV4OiBWZWN0b3I8bnVtYmVyPjtcbiAgICBwcm90ZWN0ZWQgZGljdGlvbmFyeTogVmVjdG9yPFQ+O1xuICAgIGNvbnN0cnVjdG9yKGluZGV4OiBWZWN0b3I8bnVtYmVyPiwgZGljdGlvbmFyeTogVmVjdG9yPFQ+KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuaW5kZXggPSBpbmRleDtcbiAgICAgICAgdGhpcy5kaWN0aW9uYXJ5ID0gZGljdGlvbmFyeTtcbiAgICAgICAgdGhpcy5sZW5ndGggPSBpbmRleCAmJiBpbmRleC5sZW5ndGggfHwgMDtcbiAgICB9XG4gICAgZ2V0KGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGljdGlvbmFyeS5nZXQodGhpcy5pbmRleC5nZXQoaW5kZXgpKTtcbiAgICB9XG4gICAgY29uY2F0KHZlY3RvcjogRGljdGlvbmFyeVZlY3RvcjxUPikge1xuICAgICAgICByZXR1cm4gRGljdGlvbmFyeVZlY3Rvci5mcm9tKHRoaXMsXG4gICAgICAgICAgICB0aGlzLmxlbmd0aCArIHZlY3Rvci5sZW5ndGgsXG4gICAgICAgICAgICB0aGlzLmluZGV4LmNvbmNhdCh2ZWN0b3IuaW5kZXgpLFxuICAgICAgICAgICAgdGhpcy5kaWN0aW9uYXJ5XG4gICAgICAgICk7XG4gICAgfVxuICAgICpbU3ltYm9sLml0ZXJhdG9yXSgpIHtcbiAgICAgICAgbGV0IHsgaW5kZXgsIGRpY3Rpb25hcnkgfSA9IHRoaXM7XG4gICAgICAgIGZvciAoY29uc3QgbG9jIG9mIGluZGV4KSB7XG4gICAgICAgICAgICB5aWVsZCBkaWN0aW9uYXJ5LmdldChsb2MpO1xuICAgICAgICB9XG4gICAgfVxufSJdfQ==
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZlY3RvcnMvZGljdGlvbmFyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw2REFBNkQ7QUFDN0QsK0RBQStEO0FBQy9ELHdEQUF3RDtBQUN4RCw2REFBNkQ7QUFDN0Qsb0RBQW9EO0FBQ3BELDZEQUE2RDtBQUM3RCw2REFBNkQ7QUFDN0QsRUFBRTtBQUNGLCtDQUErQztBQUMvQyxFQUFFO0FBQ0YsNkRBQTZEO0FBQzdELDhEQUE4RDtBQUM5RCx5REFBeUQ7QUFDekQsNERBQTREO0FBQzVELDBEQUEwRDtBQUMxRCxxQkFBcUI7QUFFckIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVsQyxNQUFNLHVCQUEyQixTQUFRLE1BQVM7SUFHOUMsWUFBWSxLQUFxQixFQUFFLFVBQXFCO1FBQ3BELEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUNELEdBQUcsQ0FBQyxLQUFhO1FBQ2IsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUNELE1BQU0sQ0FBQyxNQUEyQjtRQUM5QixNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksRUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxFQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQy9CLElBQUksQ0FBQyxVQUFVLENBQ2xCLENBQUM7SUFDTixDQUFDO0lBQ0QsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDZCxJQUFJLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQztRQUNqQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ3RCLE1BQU0sVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5QixDQUFDO0lBQ0wsQ0FBQztDQUNKIiwiZmlsZSI6InZlY3RvcnMvZGljdGlvbmFyeS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmVcbi8vIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZVxuLy8gZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb25cbi8vIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGVcbi8vIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGVcbi8vIFwiTGljZW5zZVwiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuLy8gd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuLy9cbi8vICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4vL1xuLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLFxuLy8gc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW5cbi8vIFwiQVMgSVNcIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZXG4vLyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGVcbi8vIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnNcbi8vIHVuZGVyIHRoZSBMaWNlbnNlLlxuXG5pbXBvcnQgeyBWZWN0b3IgfSBmcm9tICcuL3ZlY3Rvcic7XG5cbmV4cG9ydCBjbGFzcyBEaWN0aW9uYXJ5VmVjdG9yPFQ+IGV4dGVuZHMgVmVjdG9yPFQ+IHtcbiAgICBwcm90ZWN0ZWQgaW5kZXg6IFZlY3RvcjxudW1iZXI+O1xuICAgIHByb3RlY3RlZCBkaWN0aW9uYXJ5OiBWZWN0b3I8VD47XG4gICAgY29uc3RydWN0b3IoaW5kZXg6IFZlY3RvcjxudW1iZXI+LCBkaWN0aW9uYXJ5OiBWZWN0b3I8VD4pIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5pbmRleCA9IGluZGV4O1xuICAgICAgICB0aGlzLmRpY3Rpb25hcnkgPSBkaWN0aW9uYXJ5O1xuICAgICAgICB0aGlzLmxlbmd0aCA9IGluZGV4ICYmIGluZGV4Lmxlbmd0aCB8fCAwO1xuICAgIH1cbiAgICBnZXQoaW5kZXg6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy5kaWN0aW9uYXJ5LmdldCh0aGlzLmluZGV4LmdldChpbmRleCkpO1xuICAgIH1cbiAgICBjb25jYXQodmVjdG9yOiBEaWN0aW9uYXJ5VmVjdG9yPFQ+KSB7XG4gICAgICAgIHJldHVybiBEaWN0aW9uYXJ5VmVjdG9yLmZyb20odGhpcyxcbiAgICAgICAgICAgIHRoaXMubGVuZ3RoICsgdmVjdG9yLmxlbmd0aCxcbiAgICAgICAgICAgIHRoaXMuaW5kZXguY29uY2F0KHZlY3Rvci5pbmRleCksXG4gICAgICAgICAgICB0aGlzLmRpY3Rpb25hcnlcbiAgICAgICAgKTtcbiAgICB9XG4gICAgKltTeW1ib2wuaXRlcmF0b3JdKCkge1xuICAgICAgICBsZXQgeyBpbmRleCwgZGljdGlvbmFyeSB9ID0gdGhpcztcbiAgICAgICAgZm9yIChjb25zdCBsb2Mgb2YgaW5kZXgpIHtcbiAgICAgICAgICAgIHlpZWxkIGRpY3Rpb25hcnkuZ2V0KGxvYyk7XG4gICAgICAgIH1cbiAgICB9XG59Il19

@@ -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.
import { Vector } from './vector';

@@ -69,2 +85,2 @@ import { TextDecoder } from 'text-encoding';

//# sourceMappingURL=data:application/json;charset=utf8;base64,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SUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FDdEMsQ0FBQztJQUNiLENBQUM7SUFDRCxNQUFNLENBQUMsTUFBOEI7UUFDakMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQ2hDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFDM0IsSUFBSSxDQUFDLElBQUksRUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FDcEMsQ0FBQztJQUNOLENBQUM7SUFDRCxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUNkLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNkLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQztRQUNwQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQzFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUM7WUFDM0MsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQVEsQ0FBQztRQUMxRSxDQUFDO0lBQ0wsQ0FBQztDQUNKIiwiZmlsZSI6InZlY3RvcnMvbGlzdC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZlY3RvciB9IGZyb20gJy4vdmVjdG9yJztcbmltcG9ydCB7IFRleHREZWNvZGVyIH0gZnJvbSAndGV4dC1lbmNvZGluZyc7XG5pbXBvcnQgeyBJbmRleFZlY3RvciwgVmFsaWRpdHlWZWN0b3IsIFZhbGlkaXR5QXJncyB9IGZyb20gJy4vdHlwZWQnO1xuXG5leHBvcnQgY2xhc3MgTGlzdFZlY3RvckJhc2U8VD4gZXh0ZW5kcyBWZWN0b3I8VD4ge1xuICAgIHByb3RlY3RlZCB2YWx1ZXM6IFZlY3RvcjxUPjtcbiAgICBwcm90ZWN0ZWQgb2Zmc2V0czogSW5kZXhWZWN0b3I7XG4gICAgY29uc3RydWN0b3IodmFsaWRpdHk6IFZhbGlkaXR5QXJncywgdmFsdWVzOiBWZWN0b3I8YW55Piwgb2Zmc2V0czogSW5kZXhWZWN0b3IpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy52YWx1ZXMgPSB2YWx1ZXM7XG4gICAgICAgIHRoaXMub2Zmc2V0cyA9IG9mZnNldHM7XG4gICAgICAgIHZhbGlkaXR5ICYmICh0aGlzLnZhbGlkaXR5ID0gVmFsaWRpdHlWZWN0b3IuZnJvbSh2YWxpZGl0eSkpO1xuICAgIH1cbiAgICBnZXQoaW5kZXg6IG51bWJlcik6IFQge1xuICAgICAgICBpZiAoIXRoaXMudmFsaWRpdHkuZ2V0KGluZGV4KSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IFtzdGFydF0gPSB0aGlzLm9mZnNldHMuZ2V0KGluZGV4KyspO1xuICAgICAgICBsZXQgW3N0b3AsIGJdID0gdGhpcy5vZmZzZXRzLmdldChpbmRleCk7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlcy5zbGljZShzdGFydCwgc3RvcCwgYikgYXMgYW55O1xuICAgIH1cbiAgICBjb25jYXQodmVjdG9yOiBMaXN0VmVjdG9yQmFzZTxUPikge1xuICAgICAgICByZXR1cm4gKHRoaXMuY29uc3RydWN0b3IgYXMgdHlwZW9mIExpc3RWZWN0b3JCYXNlKS5mcm9tKHRoaXMsXG4gICAgICAgICAgICB0aGlzLmxlbmd0aCArIHZlY3Rvci5sZW5ndGgsXG4gICAgICAgICAgICB0aGlzLnZhbGlkaXR5LmNvbmNhdCh2ZWN0b3IudmFsaWRpdHkpLFxuICAgICAgICAgICAgdGhpcy52YWx1ZXMuY29uY2F0KHZlY3Rvci52YWx1ZXMpLFxuICAgICAgICAgICAgdGhpcy5vZmZzZXRzLmNvbmNhdCh2ZWN0b3Iub2Zmc2V0cylcbiAgICAgICAgKTtcbiAgICB9XG4gICAgKltTeW1ib2wuaXRlcmF0b3JdKCkge1xuICAgICAgICBsZXQgdiwgcjEsIHIyLCB7IHZhbHVlcyB9ID0gdGhpcztcbiAgICAgICAgbGV0IGl0ID0gdGhpcy5vZmZzZXRzW1N5bWJvbC5pdGVyYXRvcl0oKTtcbiAgICAgICAgbGV0IGl2ID0gdGhpcy52YWxpZGl0eVtTeW1ib2wuaXRlcmF0b3JdKCk7XG4gICAgICAgIHdoaWxlICghKHYgPSBpdi5uZXh0KCkpLmRvbmUgJiYgIShyMSA9IGl0Lm5leHQoKSkuZG9uZSAmJiAhKHIyID0gaXQubmV4dCgpKS5kb25lKSB7XG4gICAgICAgICAgICB5aWVsZCB2YWx1ZXMuc2xpY2UocjEudmFsdWVbMF0sIHIyLnZhbHVlWzBdLCByMi52YWx1ZVsxXSkgYXMgYW55O1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgTGlzdFZlY3RvcjxUPiBleHRlbmRzIExpc3RWZWN0b3JCYXNlPFRbXT4ge31cbmV4cG9ydCBjbGFzcyBVdGY4VmVjdG9yIGV4dGVuZHMgTGlzdFZlY3RvckJhc2U8c3RyaW5nPiB7XG4gICAgcHJvdGVjdGVkIHN0YXRpYyBkZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKGB1dGYtOGApO1xuICAgIGdldChpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGxldCBjaGFycyA9IHN1cGVyLmdldChpbmRleCkgYXMgYW55O1xuICAgICAgICByZXR1cm4gY2hhcnMgPyBVdGY4VmVjdG9yLmRlY29kZXIuZGVjb2RlKGNoYXJzKSA6IG51bGw7XG4gICAgfVxuICAgICpbU3ltYm9sLml0ZXJhdG9yXSgpIHtcbiAgICAgICAgbGV0IGRlY29kZXIgPSBVdGY4VmVjdG9yLmRlY29kZXI7XG4gICAgICAgIGZvciAoY29uc3QgY2hhcnMgb2Ygc3VwZXJbU3ltYm9sLml0ZXJhdG9yXSgpKSB7XG4gICAgICAgICAgICB5aWVsZCAhY2hhcnMgPyBudWxsIDogZGVjb2Rlci5kZWNvZGUoY2hhcnMpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRml4ZWRTaXplTGlzdFZlY3RvcjxUPiBleHRlbmRzIFZlY3RvcjxUW10+IHtcbiAgICBwcm90ZWN0ZWQgc2l6ZTogbnVtYmVyO1xuICAgIHByb3RlY3RlZCB2YWx1ZXM6IFZlY3RvcjxUPjtcbiAgICBjb25zdHJ1Y3RvcihzaXplOiBudW1iZXIsIHZhbGlkaXR5OiBWYWxpZGl0eUFyZ3MsIHZhbHVlczogVmVjdG9yPFQ+KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMudmFsdWVzID0gdmFsdWVzO1xuICAgICAgICB0aGlzLnNpemUgPSBNYXRoLmFicyhzaXplIHwgMCkgfHwgMTtcbiAgICAgICAgdmFsaWRpdHkgJiYgKHRoaXMudmFsaWRpdHkgPSBWYWxpZGl0eVZlY3Rvci5mcm9tKHZhbGlkaXR5KSk7XG4gICAgfVxuICAgIGdldChpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiAhdGhpcy52YWxpZGl0eS5nZXQoaW5kZXgpID8gbnVsbCA6IHRoaXMudmFsdWVzLnNsaWNlKFxuICAgICAgICAgICAgdGhpcy5zaXplICogaW5kZXgsIHRoaXMuc2l6ZSAqIChpbmRleCArIDEpXG4gICAgICAgICkgYXMgVFtdO1xuICAgIH1cbiAgICBjb25jYXQodmVjdG9yOiBGaXhlZFNpemVMaXN0VmVjdG9yPFQ+KSB7XG4gICAgICAgIHJldHVybiBGaXhlZFNpemVMaXN0VmVjdG9yLmZyb20odGhpcyxcbiAgICAgICAgICAgIHRoaXMubGVuZ3RoICsgdmVjdG9yLmxlbmd0aCxcbiAgICAgICAgICAgIHRoaXMuc2l6ZSxcbiAgICAgICAgICAgIHRoaXMudmFsaWRpdHkuY29uY2F0KHZlY3Rvci52YWxpZGl0eSksXG4gICAgICAgICAgICB0aGlzLnZhbHVlcy5jb25jYXQodmVjdG9yLnZhbHVlcylcbiAgICAgICAgKTtcbiAgICB9XG4gICAgKltTeW1ib2wuaXRlcmF0b3JdKCkge1xuICAgICAgICBsZXQgdiwgaSA9IC0xO1xuICAgICAgICBsZXQgeyBzaXplLCBsZW5ndGgsIHZhbHVlcyB9ID0gdGhpcztcbiAgICAgICAgbGV0IGl2ID0gdGhpcy52YWxpZGl0eVtTeW1ib2wuaXRlcmF0b3JdKCk7XG4gICAgICAgIHdoaWxlICghKHYgPSBpdi5uZXh0KCkpLmRvbmUgJiYgKytpIDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICB5aWVsZCAhdi52YWx1ZSA/IG51bGwgOiB2YWx1ZXMuc2xpY2Uoc2l6ZSAqIGksIHNpemUgKiAoaSArIDEpKSBhcyBUW107XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf8;base64,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QUFHLElBQUksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFRLENBQUM7UUFDMUUsQ0FBQztJQUNMLENBQUM7Q0FDSiIsImZpbGUiOiJ2ZWN0b3JzL2xpc3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lXG4vLyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGVcbi8vIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uXG4vLyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlXG4vLyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlXG4vLyBcIkxpY2Vuc2VcIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Vcbi8vIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbi8vXG4vLyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuLy9cbi8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZyxcbi8vIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuXG4vLyBcIkFTIElTXCIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWVxuLy8gS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlXG4vLyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zXG4vLyB1bmRlciB0aGUgTGljZW5zZS5cblxuaW1wb3J0IHsgVmVjdG9yIH0gZnJvbSAnLi92ZWN0b3InO1xuaW1wb3J0IHsgVGV4dERlY29kZXIgfSBmcm9tICd0ZXh0LWVuY29kaW5nJztcbmltcG9ydCB7IEluZGV4VmVjdG9yLCBWYWxpZGl0eVZlY3RvciwgVmFsaWRpdHlBcmdzIH0gZnJvbSAnLi90eXBlZCc7XG5cbmV4cG9ydCBjbGFzcyBMaXN0VmVjdG9yQmFzZTxUPiBleHRlbmRzIFZlY3RvcjxUPiB7XG4gICAgcHJvdGVjdGVkIHZhbHVlczogVmVjdG9yPFQ+O1xuICAgIHByb3RlY3RlZCBvZmZzZXRzOiBJbmRleFZlY3RvcjtcbiAgICBjb25zdHJ1Y3Rvcih2YWxpZGl0eTogVmFsaWRpdHlBcmdzLCB2YWx1ZXM6IFZlY3Rvcjxhbnk+LCBvZmZzZXRzOiBJbmRleFZlY3Rvcikge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnZhbHVlcyA9IHZhbHVlcztcbiAgICAgICAgdGhpcy5vZmZzZXRzID0gb2Zmc2V0cztcbiAgICAgICAgdmFsaWRpdHkgJiYgKHRoaXMudmFsaWRpdHkgPSBWYWxpZGl0eVZlY3Rvci5mcm9tKHZhbGlkaXR5KSk7XG4gICAgfVxuICAgIGdldChpbmRleDogbnVtYmVyKTogVCB7XG4gICAgICAgIGlmICghdGhpcy52YWxpZGl0eS5nZXQoaW5kZXgpKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBsZXQgW3N0YXJ0XSA9IHRoaXMub2Zmc2V0cy5nZXQoaW5kZXgrKyk7XG4gICAgICAgIGxldCBbc3RvcCwgYl0gPSB0aGlzLm9mZnNldHMuZ2V0KGluZGV4KTtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVzLnNsaWNlKHN0YXJ0LCBzdG9wLCBiKSBhcyBhbnk7XG4gICAgfVxuICAgIGNvbmNhdCh2ZWN0b3I6IExpc3RWZWN0b3JCYXNlPFQ+KSB7XG4gICAgICAgIHJldHVybiAodGhpcy5jb25zdHJ1Y3RvciBhcyB0eXBlb2YgTGlzdFZlY3RvckJhc2UpLmZyb20odGhpcyxcbiAgICAgICAgICAgIHRoaXMubGVuZ3RoICsgdmVjdG9yLmxlbmd0aCxcbiAgICAgICAgICAgIHRoaXMudmFsaWRpdHkuY29uY2F0KHZlY3Rvci52YWxpZGl0eSksXG4gICAgICAgICAgICB0aGlzLnZhbHVlcy5jb25jYXQodmVjdG9yLnZhbHVlcyksXG4gICAgICAgICAgICB0aGlzLm9mZnNldHMuY29uY2F0KHZlY3Rvci5vZmZzZXRzKVxuICAgICAgICApO1xuICAgIH1cbiAgICAqW1N5bWJvbC5pdGVyYXRvcl0oKSB7XG4gICAgICAgIGxldCB2LCByMSwgcjIsIHsgdmFsdWVzIH0gPSB0aGlzO1xuICAgICAgICBsZXQgaXQgPSB0aGlzLm9mZnNldHNbU3ltYm9sLml0ZXJhdG9yXSgpO1xuICAgICAgICBsZXQgaXYgPSB0aGlzLnZhbGlkaXR5W1N5bWJvbC5pdGVyYXRvcl0oKTtcbiAgICAgICAgd2hpbGUgKCEodiA9IGl2Lm5leHQoKSkuZG9uZSAmJiAhKHIxID0gaXQubmV4dCgpKS5kb25lICYmICEocjIgPSBpdC5uZXh0KCkpLmRvbmUpIHtcbiAgICAgICAgICAgIHlpZWxkIHZhbHVlcy5zbGljZShyMS52YWx1ZVswXSwgcjIudmFsdWVbMF0sIHIyLnZhbHVlWzFdKSBhcyBhbnk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMaXN0VmVjdG9yPFQ+IGV4dGVuZHMgTGlzdFZlY3RvckJhc2U8VFtdPiB7fVxuZXhwb3J0IGNsYXNzIFV0ZjhWZWN0b3IgZXh0ZW5kcyBMaXN0VmVjdG9yQmFzZTxzdHJpbmc+IHtcbiAgICBwcm90ZWN0ZWQgc3RhdGljIGRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoYHV0Zi04YCk7XG4gICAgZ2V0KGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgbGV0IGNoYXJzID0gc3VwZXIuZ2V0KGluZGV4KSBhcyBhbnk7XG4gICAgICAgIHJldHVybiBjaGFycyA/IFV0ZjhWZWN0b3IuZGVjb2Rlci5kZWNvZGUoY2hhcnMpIDogbnVsbDtcbiAgICB9XG4gICAgKltTeW1ib2wuaXRlcmF0b3JdKCkge1xuICAgICAgICBsZXQgZGVjb2RlciA9IFV0ZjhWZWN0b3IuZGVjb2RlcjtcbiAgICAgICAgZm9yIChjb25zdCBjaGFycyBvZiBzdXBlcltTeW1ib2wuaXRlcmF0b3JdKCkpIHtcbiAgICAgICAgICAgIHlpZWxkICFjaGFycyA/IG51bGwgOiBkZWNvZGVyLmRlY29kZShjaGFycyk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBGaXhlZFNpemVMaXN0VmVjdG9yPFQ+IGV4dGVuZHMgVmVjdG9yPFRbXT4ge1xuICAgIHByb3RlY3RlZCBzaXplOiBudW1iZXI7XG4gICAgcHJvdGVjdGVkIHZhbHVlczogVmVjdG9yPFQ+O1xuICAgIGNvbnN0cnVjdG9yKHNpemU6IG51bWJlciwgdmFsaWRpdHk6IFZhbGlkaXR5QXJncywgdmFsdWVzOiBWZWN0b3I8VD4pIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy52YWx1ZXMgPSB2YWx1ZXM7XG4gICAgICAgIHRoaXMuc2l6ZSA9IE1hdGguYWJzKHNpemUgfCAwKSB8fCAxO1xuICAgICAgICB2YWxpZGl0eSAmJiAodGhpcy52YWxpZGl0eSA9IFZhbGlkaXR5VmVjdG9yLmZyb20odmFsaWRpdHkpKTtcbiAgICB9XG4gICAgZ2V0KGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLnZhbGlkaXR5LmdldChpbmRleCkgPyBudWxsIDogdGhpcy52YWx1ZXMuc2xpY2UoXG4gICAgICAgICAgICB0aGlzLnNpemUgKiBpbmRleCwgdGhpcy5zaXplICogKGluZGV4ICsgMSlcbiAgICAgICAgKSBhcyBUW107XG4gICAgfVxuICAgIGNvbmNhdCh2ZWN0b3I6IEZpeGVkU2l6ZUxpc3RWZWN0b3I8VD4pIHtcbiAgICAgICAgcmV0dXJuIEZpeGVkU2l6ZUxpc3RWZWN0b3IuZnJvbSh0aGlzLFxuICAgICAgICAgICAgdGhpcy5sZW5ndGggKyB2ZWN0b3IubGVuZ3RoLFxuICAgICAgICAgICAgdGhpcy5zaXplLFxuICAgICAgICAgICAgdGhpcy52YWxpZGl0eS5jb25jYXQodmVjdG9yLnZhbGlkaXR5KSxcbiAgICAgICAgICAgIHRoaXMudmFsdWVzLmNvbmNhdCh2ZWN0b3IudmFsdWVzKVxuICAgICAgICApO1xuICAgIH1cbiAgICAqW1N5bWJvbC5pdGVyYXRvcl0oKSB7XG4gICAgICAgIGxldCB2LCBpID0gLTE7XG4gICAgICAgIGxldCB7IHNpemUsIGxlbmd0aCwgdmFsdWVzIH0gPSB0aGlzO1xuICAgICAgICBsZXQgaXYgPSB0aGlzLnZhbGlkaXR5W1N5bWJvbC5pdGVyYXRvcl0oKTtcbiAgICAgICAgd2hpbGUgKCEodiA9IGl2Lm5leHQoKSkuZG9uZSAmJiArK2kgPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIHlpZWxkICF2LnZhbHVlID8gbnVsbCA6IHZhbHVlcy5zbGljZShzaXplICogaSwgc2l6ZSAqIChpICsgMSkpIGFzIFRbXTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==

@@ -0,4 +1,19 @@

// 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.
import { Vector } from './vector';
import { ValidityVector } from './typed';
// export class Struct<T = any> extends Vector<{ [K in keyof T]: T[K] }> {
export class StructVector extends Vector {

@@ -19,2 +34,2 @@ constructor(validity, ...vectors) {

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZlY3RvcnMvc3RydWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQUFFLGNBQWMsRUFBZ0IsTUFBTSxTQUFTLENBQUM7QUFFdkQsMEVBQTBFO0FBQzFFLE1BQU0sbUJBQW9CLFNBQVEsTUFBYTtJQUUzQyxZQUFZLFFBQXNCLEVBQUUsR0FBRyxPQUFzQjtRQUN6RCxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzNELFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFDRCxHQUFHLENBQUMsS0FBYTtRQUNiLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBQ25GLENBQUM7SUFDRCxNQUFNLENBQUMsTUFBb0I7UUFDdkIsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFDckMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDN0QsQ0FBQztJQUNOLENBQUM7Q0FDSiIsImZpbGUiOiJ2ZWN0b3JzL3N0cnVjdC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZlY3RvciB9IGZyb20gJy4vdmVjdG9yJztcbmltcG9ydCB7IFZhbGlkaXR5VmVjdG9yLCBWYWxpZGl0eUFyZ3MgfSBmcm9tICcuL3R5cGVkJztcblxuLy8gZXhwb3J0IGNsYXNzIFN0cnVjdDxUID0gYW55PiBleHRlbmRzIFZlY3Rvcjx7IFtLIGluIGtleW9mIFRdOiBUW0tdIH0+IHtcbmV4cG9ydCBjbGFzcyBTdHJ1Y3RWZWN0b3IgZXh0ZW5kcyBWZWN0b3I8YW55W10+IHtcbiAgICBwcm90ZWN0ZWQgdmVjdG9yczogVmVjdG9yPGFueT5bXTtcbiAgICBjb25zdHJ1Y3Rvcih2YWxpZGl0eTogVmFsaWRpdHlBcmdzLCAuLi52ZWN0b3JzOiBWZWN0b3I8YW55PltdKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMudmVjdG9ycyA9IHZlY3RvcnM7XG4gICAgICAgIHRoaXMubGVuZ3RoID0gTWF0aC5tYXgoMCwgLi4udmVjdG9ycy5tYXAoKHYpID0+IHYubGVuZ3RoKSk7XG4gICAgICAgIHZhbGlkaXR5ICYmICh0aGlzLnZhbGlkaXR5ID0gVmFsaWRpdHlWZWN0b3IuZnJvbSh2YWxpZGl0eSkpO1xuICAgIH1cbiAgICBnZXQoaW5kZXg6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy52YWxpZGl0eS5nZXQoaW5kZXgpID8gdGhpcy52ZWN0b3JzLm1hcCgodikgPT4gdi5nZXQoaW5kZXgpKSA6IG51bGw7XG4gICAgfVxuICAgIGNvbmNhdCh2ZWN0b3I6IFN0cnVjdFZlY3Rvcikge1xuICAgICAgICByZXR1cm4gU3RydWN0VmVjdG9yLmZyb20odGhpcyxcbiAgICAgICAgICAgIHRoaXMubGVuZ3RoICsgdmVjdG9yLmxlbmd0aCxcbiAgICAgICAgICAgIHRoaXMudmFsaWRpdHkuY29uY2F0KHZlY3Rvci52YWxpZGl0eSksXG4gICAgICAgICAgICAuLi50aGlzLnZlY3RvcnMubWFwKCh2LCBpKSA9PiB2LmNvbmNhdCh2ZWN0b3IudmVjdG9yc1tpXSkpXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZlY3RvcnMvc3RydWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDZEQUE2RDtBQUM3RCwrREFBK0Q7QUFDL0Qsd0RBQXdEO0FBQ3hELDZEQUE2RDtBQUM3RCxvREFBb0Q7QUFDcEQsNkRBQTZEO0FBQzdELDZEQUE2RDtBQUM3RCxFQUFFO0FBQ0YsK0NBQStDO0FBQy9DLEVBQUU7QUFDRiw2REFBNkQ7QUFDN0QsOERBQThEO0FBQzlELHlEQUF5RDtBQUN6RCw0REFBNEQ7QUFDNUQsMERBQTBEO0FBQzFELHFCQUFxQjtBQUVyQixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxjQUFjLEVBQWdCLE1BQU0sU0FBUyxDQUFDO0FBRXZELE1BQU0sbUJBQW9CLFNBQVEsTUFBYTtJQUUzQyxZQUFZLFFBQXNCLEVBQUUsR0FBRyxPQUFzQjtRQUN6RCxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzNELFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFDRCxHQUFHLENBQUMsS0FBYTtRQUNiLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBQ25GLENBQUM7SUFDRCxNQUFNLENBQUMsTUFBb0I7UUFDdkIsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFDckMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDN0QsQ0FBQztJQUNOLENBQUM7Q0FDSiIsImZpbGUiOiJ2ZWN0b3JzL3N0cnVjdC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmVcbi8vIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZVxuLy8gZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb25cbi8vIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGVcbi8vIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGVcbi8vIFwiTGljZW5zZVwiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuLy8gd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuLy9cbi8vICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4vL1xuLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLFxuLy8gc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW5cbi8vIFwiQVMgSVNcIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZXG4vLyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGVcbi8vIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnNcbi8vIHVuZGVyIHRoZSBMaWNlbnNlLlxuXG5pbXBvcnQgeyBWZWN0b3IgfSBmcm9tICcuL3ZlY3Rvcic7XG5pbXBvcnQgeyBWYWxpZGl0eVZlY3RvciwgVmFsaWRpdHlBcmdzIH0gZnJvbSAnLi90eXBlZCc7XG5cbmV4cG9ydCBjbGFzcyBTdHJ1Y3RWZWN0b3IgZXh0ZW5kcyBWZWN0b3I8YW55W10+IHtcbiAgICBwcm90ZWN0ZWQgdmVjdG9yczogVmVjdG9yPGFueT5bXTtcbiAgICBjb25zdHJ1Y3Rvcih2YWxpZGl0eTogVmFsaWRpdHlBcmdzLCAuLi52ZWN0b3JzOiBWZWN0b3I8YW55PltdKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMudmVjdG9ycyA9IHZlY3RvcnM7XG4gICAgICAgIHRoaXMubGVuZ3RoID0gTWF0aC5tYXgoMCwgLi4udmVjdG9ycy5tYXAoKHYpID0+IHYubGVuZ3RoKSk7XG4gICAgICAgIHZhbGlkaXR5ICYmICh0aGlzLnZhbGlkaXR5ID0gVmFsaWRpdHlWZWN0b3IuZnJvbSh2YWxpZGl0eSkpO1xuICAgIH1cbiAgICBnZXQoaW5kZXg6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy52YWxpZGl0eS5nZXQoaW5kZXgpID8gdGhpcy52ZWN0b3JzLm1hcCgodikgPT4gdi5nZXQoaW5kZXgpKSA6IG51bGw7XG4gICAgfVxuICAgIGNvbmNhdCh2ZWN0b3I6IFN0cnVjdFZlY3Rvcikge1xuICAgICAgICByZXR1cm4gU3RydWN0VmVjdG9yLmZyb20odGhpcyxcbiAgICAgICAgICAgIHRoaXMubGVuZ3RoICsgdmVjdG9yLmxlbmd0aCxcbiAgICAgICAgICAgIHRoaXMudmFsaWRpdHkuY29uY2F0KHZlY3Rvci52YWxpZGl0eSksXG4gICAgICAgICAgICAuLi50aGlzLnZlY3RvcnMubWFwKCh2LCBpKSA9PiB2LmNvbmNhdCh2ZWN0b3IudmVjdG9yc1tpXSkpXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19

@@ -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.
import { Vector } from './vector';

@@ -215,2 +231,2 @@ import { flatbuffers } from 'flatbuffers';

//# sourceMappingURL=data:application/json;charset=utf8;base64,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Q0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNsRixNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUQsQ0FBQztJQUNMLENBQUM7Q0FDSjtBQUVELE1BQU0saUJBQWtCLFNBQVEsV0FBOEI7SUFDMUQsR0FBRyxDQUFDLEtBQWE7UUFDYixNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQzlDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FDcEUsQ0FBQztJQUNOLENBQUM7SUFDRCxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUNkLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUM7UUFDakIsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ2xDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDMUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFD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OiJ2ZWN0b3JzL3R5cGVkLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmVjdG9yIH0gZnJvbSAnLi92ZWN0b3InO1xuaW1wb3J0IHsgZmxhdGJ1ZmZlcnMgfSBmcm9tICdmbGF0YnVmZmVycyc7XG5cbmltcG9ydCBMb25nID0gZmxhdGJ1ZmZlcnMuTG9uZztcblxuZXhwb3J0IHR5cGUgVkFycmF5PFQgPSBhbnk+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=
//# sourceMappingURL=data:application/json;charset=utf8;base64,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QyxDQUFDO0lBQ2xDLENBQUM7SUFDRCxNQUFNLENBQUMsS0FBSyxDQUFDO0FBQ2pCLENBQUM7QUFFRCx1QkFBdUIsTUFBa0IsRUFBRSxNQUFrQixFQUFFLEtBQWE7SUFDeEUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0FBQzlELENBQUMiLCJmaWxlIjoidmVjdG9ycy90eXBlZC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmVcbi8vIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZVxuLy8gZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb25cbi8vIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGVcbi8vIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGVcbi8vIFwiTGljZW5zZVwiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuLy8gd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuLy9cbi8vICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4vL1xuLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLFxuLy8gc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW5cbi8vIFwiQVMgSVNcIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZXG4vLyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGVcbi8vIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnNcbi8vIHVuZGVyIHRoZSBMaWNlbnNlLlxuXG5pbXBvcnQgeyBWZWN0b3IgfSBmcm9tICcuL3ZlY3Rvcic7XG5pbXBvcnQgeyBmbGF0YnVmZmVycyB9IGZyb20gJ2ZsYXRidWZmZXJzJztcblxuaW1wb3J0IExvbmcgPSBmbGF0YnVmZmVycy5Mb25nO1xuXG5leHBvcnQgdHlwZSBWQXJyYXk8VCA9IGFueT4gPSB7XG4gICAgW2s6IG51bWJlcl06IFQ7IGxlbmd0aDogbnVtYmVyO1xuICAgIGNvbnN0cnVjdG9yOiBWQXJyYXlDdG9yPFZBcnJheTxUPj47XG59O1xuXG5leHBvcnQgdHlwZSBWQXJyYXlDdG9yPFZBcnJheT4gPSB7XG4gICAgcmVhZG9ubHkgcHJvdG90eXBlOiBWQXJyYXk7XG4gICAgQllURVNfUEVSX0VMRU1FTlQ/OiBudW1iZXI7XG4gICAgbmV3KC4uLmFyZ3M6IGFueVtdKTogVkFycmF5O1xufTtcblxuZXhwb3J0IGNsYXNzIFZpcnR1YWxWZWN0b3I8VCwgVEFycmF5VHlwZSA9IFZBcnJheTxUPj4gZXh0ZW5kcyBWZWN0b3I8VD4ge1xuICAgIHByb3RlY3RlZCBsaXN0czogVEFycmF5VHlwZVtdO1xuICAgIHByb3RlY3RlZCBfYXJyYXlUeXBlOiBWQXJyYXlDdG9yPFRBcnJheVR5cGU+O1xuICAgIHB1YmxpYyBnZXQgYXJyYXlUeXBlKCkgeyByZXR1cm4gdGhpcy5fYXJyYXlUeXBlOyB9XG4gICAgY29uc3RydWN0b3IoLi4ubGlzdHM6IFRBcnJheVR5cGVbXSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmxpc3RzID0gbGlzdHMuZmlsdGVyKEJvb2xlYW4pO1xuICAgIH1cbiAgICBnZXQoaW5kZXg6IG51bWJlciwgYmF0Y2g/OiBudW1iZXIpIHtcbiAgICAgICAgLyogaW5saW5lZCBgZmluZFZpcnR1YWxgIGltcGwgKi9cbiAgICAgICAgbGV0IHJvd3MsIGxlbmd0aCwgbGlzdHMgPSB0aGlzLmxpc3RzO1xuICAgICAgICBmb3IgKGJhdGNoID0gKGJhdGNoIHx8IDApIC0gMTtcbiAgICAgICAgICAgIChyb3dzID0gbGlzdHNbKytiYXRjaF0pICYmXG4gICAgICAgICAgICAobGVuZ3RoID0gcm93cy5sZW5ndGgpIDw9IGluZGV4ICYmXG4gICAgICAgICAgICAwIDw9IChpbmRleCAtPSBsZW5ndGgpOykge31cbiAgICAgICAgcmV0dXJuIHJvd3MgJiYgLTEgPCBpbmRleCA/IHJvd3NbaW5kZXhdIDogbnVsbDtcbiAgICB9XG4gICAgcmFuZ2UoZnJvbTogbnVtYmVyLCB0b3RhbDogbnVtYmVyLCBiYXRjaD86IG51bWJlcikge1xuICAgICAgICAvKiBpbmxpbmVkIGBmaW5kVmlydHVhbGAgaW1wbCAqL1xuICAgICAgICBsZXQgcm93cywgbG9jYWwgPSBmcm9tLCBsZW5ndGg7XG4gICAgICAgIGxldCB7IGxpc3RzLCBfYXJyYXlUeXBlIH0gPSB0aGlzO1xuICAgICAgICBmb3IgKGJhdGNoID0gKGJhdGNoIHx8IDApIC0gMTtcbiAgICAgICAgICAgIChyb3dzID0gbGlzdHNbKytiYXRjaF0pICYmXG4gICAgICAgICAgICAobGVuZ3RoID0gcm93cy5sZW5ndGgpIDw9IGxvY2FsICYmXG4gICAgICAgICAgICAwIDw9IChsb2NhbCAtPSBsZW5ndGgpOykge31cbiAgICAgICAgaWYgKHJvd3MgJiYgbG9jYWwgPiAtMSkge1xuICAgICAgICAgICAgbGV0IGluZGV4ID0gMCwgbGlzdHNMZW5ndGggPSBsaXN0cy5sZW5ndGg7XG4gICAgICAgICAgICBsZXQgc2V0OiBhbnkgPSBBcnJheS5pc0FycmF5KHJvd3MpID8gYXJyYXlTZXQgOiB0eXBlZEFycmF5U2V0O1xuICAgICAgICAgICAgbGV0IHNsaWNlID0gX2FycmF5VHlwZVsncHJvdG90eXBlJ11bJ3N1YmFycmF5J10gfHwgX2FycmF5VHlwZVsncHJvdG90eXBlJ11bJ3NsaWNlJ107XG4gICAgICAgICAgICBsZXQgdGFyZ2V0ID0gbmV3IF9hcnJheVR5cGUodG90YWwpLCBzb3VyY2UgPSBzbGljZS5jYWxsKHJvd3MsIGxvY2FsLCBsb2NhbCArIHRvdGFsKTtcbiAgICAgICAgICAgIHdoaWxlICgoaW5kZXggPSBzZXQoc291cmNlLCB0YXJnZXQsIGluZGV4KSkgPCB0b3RhbCkge1xuICAgICAgICAgICAgICAgIHJvd3MgPSBsaXN0c1tiYXRjaCA9ICgoYmF0Y2ggKyAxKSAlIGxpc3RzTGVuZ3RoKV07XG4gICAgICAgICAgICAgICAgc291cmNlID0gc2xpY2UuY2FsbChyb3dzLCAwLCBNYXRoLm1pbihyb3dzLmxlbmd0aCwgdG90YWwgLSBpbmRleCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRhcmdldCBhcyBhbnk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBfYXJyYXlUeXBlKDApO1xuICAgIH1cbiAgICAqW1N5bWJvbC5pdGVyYXRvcl0oKSB7XG4gICAgICAgIGxldCBpbmRleCA9IC0xLCB7IGxpc3RzLCBsZW5ndGggfSA9IHRoaXM7XG4gICAgICAgIGZvciAobGV0IG91dGVyID0gLTEsIG4gPSBsaXN0cy5sZW5ndGg7ICsrb3V0ZXIgPCBuOykge1xuICAgICAgICAgICAgbGV0IGxpc3QgPSBsaXN0c1tvdXRlcl0gYXMgYW55O1xuICAgICAgICAgICAgZm9yIChsZXQgaW5uZXIgPSAtMSwgayA9IGxpc3QubGVuZ3RoOyArK2luZGV4IDwgbGVuZ3RoICYmICsraW5uZXIgPCBrOykge1xuICAgICAgICAgICAgICAgIHlpZWxkIGxpc3RbaW5uZXJdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgdHlwZSBWYWxpZGl0eUFyZ3MgPSBWZWN0b3I8Ym9vbGVhbj4gfCBVaW50OEFycmF5O1xuZXhwb3J0IGNsYXNzIFZhbGlkaXR5VmVjdG9yIGV4dGVuZHMgVmlydHVhbFZlY3Rvcjxib29sZWFuLCBVaW50OEFycmF5PiB7XG4gICAgc3RhdGljIGNvbnN0YW50OiBWZWN0b3I8Ym9vbGVhbj4gPSBuZXcgKGNsYXNzIFZhbGlkVmVjdG9yIGV4dGVuZHMgVmVjdG9yPGJvb2xlYW4+IHtcbiAgICAgICAgZ2V0KCkgeyByZXR1cm4gdHJ1ZTsgfVxuICAgICAgICAqW1N5bWJvbC5pdGVyYXRvcl0oKSB7XG4gICAgICAgICAgICBkbyB7IHlpZWxkIHRydWU7IH0gd2hpbGUgKHRydWUpO1xuICAgICAgICB9XG4gICAgfSkoKTtcbiAgICBzdGF0aWMgZnJvbShzcmM6IGFueSkge1xuICAgICAgICByZXR1cm4gc3JjIGluc3RhbmNlb2YgVmFsaWRpdHlWZWN0b3IgICA/IHNyY1xuICAgICAgICAgICAgIDogc3JjID09PSBWYWxpZGl0eVZlY3Rvci5jb25zdGFudCA/IHNyY1xuICAgICAgICAgICAgIDogc3JjIGluc3RhbmNlb2YgVWludDhBcnJheSAgICAgICA/IG5ldyBWYWxpZGl0eVZlY3RvcihzcmMpXG4gICAgICAgICAgICAgOiBzcmMgaW5zdGFuY2VvZiBBcnJheSAgICAgICAgICAgID8gbmV3IFZhbGlkaXR5VmVjdG9yKFZhbGlkaXR5VmVjdG9yLnBhY2soc3JjKSlcbiAgICAgICAgICAgICA6IHNyYyBpbnN0YW5jZW9mIFZlY3RvciAgICAgICAgICAgPyBuZXcgVmFsaWRpdHlWZWN0b3IoVmFsaWRpdHlWZWN0b3IucGFjayhzcmMpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFZhbGlkaXR5VmVjdG9yLmNvbnN0YW50IGFzIFZlY3Rvcjxhbnk+O1xuICAgIH1cbiAgICBzdGF0aWMgcGFjayh2YWx1ZXM6IEl0ZXJhYmxlPGFueT4pIHtcbiAgICAgICAgbGV0IHhzID0gW10sIG4sIGkgPSAwO1xuICAgICAgICBsZXQgYml0ID0gMCwgYnl0ZSA9IDA7XG4gICAgICAgIGZvciAoY29uc3QgdmFsdWUgb2YgdmFsdWVzKSB7XG4gICAgICAgICAgICB2YWx1ZSAmJiAoYnl0ZSB8PSAxIDw8IGJpdCk7XG4gICAgICAgICAgICBpZiAoKytiaXQgPT09IDgpIHtcbiAgICAgICAgICAgICAgICB4c1tpKytdID0gYnl0ZTtcbiAgICAgICAgICAgICAgICBieXRlID0gYml0ID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoaSA9PT0gMCB8fCBiaXQgPiAwKSB7IHhzW2krK10gPSBieXRlOyB9XG4gICAgICAgIGlmIChpICUgOCAmJiAobiA9IG4gPSBpICsgOCAtIGkgJSA4KSkge1xuICAgICAgICAgICAgZG8geyB4c1tpXSA9IDA7IH0gd2hpbGUgKCsraSA8IG4pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgVWludDhBcnJheSh4cyk7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKC4uLmxpc3RzOiBVaW50OEFycmF5W10pIHtcbiAgICAgICAgc3VwZXIoLi4ubGlzdHMpO1xuICAgICAgICB0aGlzLmxlbmd0aCA9IHRoaXMubGlzdHMucmVkdWNlKChsLCB4cykgPT4gbCArIHhzWydsZW5ndGgnXSwgMCk7XG4gICAgfVxuICAgIGdldChpbmRleDogbnVtYmVyLCBiYXRjaD86IG51bWJlcikge1xuICAgICAgICAvKiBpbmxpbmVkIGBmaW5kVmlydHVhbGAgaW1wbCAqL1xuICAgICAgICBsZXQgcm93cywgbGVuZ3RoLCBsaXN0cyA9IHRoaXMubGlzdHM7XG4gICAgICAgIGZvciAoYmF0Y2ggPSAoYmF0Y2ggfHwgMCkgLSAxO1xuICAgICAgICAgICAgKHJvd3MgPSBsaXN0c1srK2JhdGNoXSkgJiZcbiAgICAgICAgICAgIChsZW5ndGggPSByb3dzLmxlbmd0aCkgPD0gaW5kZXggJiZcbiAgICAgICAgICAgIDAgPD0gKGluZGV4IC09IGxlbmd0aCk7KSB7fVxuICAgICAgICByZXR1cm4gISghcm93cyB8fCBpbmRleCA8IDAgfHwgKHJvd3NbaW5kZXggPj4gMyB8IDBdICYgMSA8PCBpbmRleCAlIDgpID09PSAwKTtcbiAgICB9XG4gICAgY29uY2F0KHZlY3RvcjogVmFsaWRpdHlWZWN0b3IpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBWYWxpZGl0eVZlY3RvciguLi50aGlzLmxpc3RzLCAuLi52ZWN0b3IubGlzdHMpO1xuICAgIH1cbiAgICAqW1N5bWJvbC5pdGVyYXRvcl0oKSB7XG4gICAgICAgIGZvciAoY29uc3QgYnl0ZSBvZiBzdXBlcltTeW1ib2wuaXRlcmF0b3JdKCkpIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAtMTsgKytpIDwgODspIHtcbiAgICAgICAgICAgICAgICB5aWVsZCAoYnl0ZSAmIDEgPDwgaSkgIT09IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUeXBlZFZlY3RvcjxULCBUQXJyYXlUeXBlPiBleHRlbmRzIFZpcnR1YWxWZWN0b3I8VCwgVEFycmF5VHlwZT4ge1xuICAgIGNvbnN0cnVjdG9yKHZhbGlkaXR5OiBWYWxpZGl0eUFyZ3MsIC4uLmxpc3RzOiBUQXJyYXlUeXBlW10pIHtcbiAgICAgICAgc3VwZXIoLi4ubGlzdHMpO1xuICAgICAgICB2YWxpZGl0eSAmJiAodGhpcy52YWxpZGl0eSA9IFZhbGlkaXR5VmVjdG9yLmZyb20odmFsaWRpdHkpKTtcbiAgICB9XG4gICAgY29uY2F0KHZlY3RvcjogVHlwZWRWZWN0b3I8VCwgVEFycmF5VHlwZT4pIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLmNvbnN0cnVjdG9yIGFzIHR5cGVvZiBUeXBlZFZlY3RvcikuZnJvbSh0aGlzLFxuICAgICAgICAgICAgdGhpcy5sZW5ndGggKyB2ZWN0b3IubGVuZ3RoLFxuICAgICAgICAgICAgdGhpcy52YWxpZGl0eS5jb25jYXQodmVjdG9yLnZhbGlkaXR5KSxcbiAgICAgICAgICAgIC4uLnRoaXMubGlzdHMsIC4uLnZlY3Rvci5saXN0c1xuICAgICAgICApO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEJ5dGVWZWN0b3I8VExpc3Q+IGV4dGVuZHMgVHlwZWRWZWN0b3I8bnVtYmVyLCBUTGlzdD4ge1xuICAgIGdldChpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbGlkaXR5LmdldChpbmRleCkgPyBzdXBlci5nZXQoaW5kZXgpIDogbnVsbDtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBJbmRleFZlY3RvciBleHRlbmRzIFR5cGVkVmVjdG9yPG51bWJlciwgSW50MzJBcnJheT4ge1xuICAgIGdldChpbmRleDogbnVtYmVyLCBiYXRjaD86IG51bWJlcikge1xuICAgICAgICAvKiBpbmxpbmVkIGBmaW5kVmlydHVhbGAgaW1wbCAqL1xuICAgICAgICBsZXQgcm93cywgbG9jYWwgPSBpbmRleDtcbiAgICAgICAgbGV0IGxpc3RzID0gdGhpcy5saXN0cywgbGVuZ3RoO1xuICAgICAgICBsZXQgcm93c0luZGV4ID0gKGJhdGNoIHx8IDApIC0gMTtcbiAgICAgICAgd2hpbGUgKChyb3dzID0gbGlzdHNbKytyb3dzSW5kZXhdKSAmJlxuICAgICAgICAgICAgICAgKChsZW5ndGggPSByb3dzLmxlbmd0aCkgPD0gbG9jYWwpICYmXG4gICAgICAgICAgICAgICAoKGxvY2FsIC09IGxlbmd0aCkgPj0gMCkpIHsvKndoZWUqL31cbiAgICAgICAgcmV0dXJuIChyb3dzICYmIGxvY2FsID4gLTEpID8gW3Jvd3NbbG9jYWwgKyByb3dzSW5kZXhdLCByb3dzSW5kZXhdIDogWy0xLCAwLCAtMV07XG4gICAgfVxuICAgICpbU3ltYm9sLml0ZXJhdG9yXSgpIHtcbiAgICAgICAgbGV0IHsgbGlzdHMgfSA9IHRoaXM7XG4gICAgICAgIGZvciAobGV0IGkgPSAtMSwgbiA9IGxpc3RzLmxlbmd0aDsgKytpIDwgbjspIHtcbiAgICAgICAgICAgIGxldCBsaXN0ID0gbGlzdHNbaV0gYXMgYW55O1xuICAgICAgICAgICAgZm9yIChsZXQgaiA9IC0xLCBrID0gbGlzdC5sZW5ndGg7ICsraiA8IGs7KSB7XG4gICAgICAgICAgICAgICAgeWllbGQgW2xpc3Rbal0sIGldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgTG9uZ1ZlY3RvcjxUTGlzdD4gZXh0ZW5kcyBUeXBlZFZlY3RvcjxMb25nLCBUTGlzdD4ge1xuICAgIGdldChpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiAhdGhpcy52YWxpZGl0eS5nZXQoaW5kZXgpID8gbnVsbCA6IG5ldyBMb25nKFxuICAgICAgICAgICAgPGFueT4gc3VwZXIuZ2V0KGluZGV4ICogMiksICAgICAvKiBsb3cgKi9cbiAgICAgICAgICAgIDxhbnk+IHN1cGVyLmdldChpbmRleCAqIDIgKyAxKSAvKiBoaWdoICovXG4gICAgICAgICk7XG4gICAgfVxuICAgICpbU3ltYm9sLml0ZXJhdG9yXSgpIHtcbiAgICAgICAgbGV0IHYsIGxvdywgaGlnaDtcbiAgICAgICAgbGV0IGl0ID0gc3VwZXJbU3ltYm9sLml0ZXJhdG9yXSgpO1xuICAgICAgICBsZXQgaXYgPSB0aGlzLnZhbGlkaXR5W1N5bWJvbC5pdGVyYXRvcl0oKTtcbiAgICAgICAgd2hpbGUgKCEodiA9IGl2Lm5leHQoKSkuZG9uZSAmJiAhKGxvdyA9IGl0Lm5leHQoKSkuZG9uZSAmJiAhKGhpZ2ggPSBpdC5uZXh0KCkpLmRvbmUpIHtcbiAgICAgICAgICAgIHlpZWxkICF2LnZhbHVlID8gbnVsbCA6IG5ldyBMb25nKGxvdy52YWx1ZSwgaGlnaC52YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEYXRlVmVjdG9yIGV4dGVuZHMgVHlwZWRWZWN0b3I8RGF0ZSwgVWludDMyQXJyYXk+IHtcbiAgICBnZXQoaW5kZXg6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gIXRoaXMudmFsaWRpdHkuZ2V0KGluZGV4KSA/IG51bGwgOiBuZXcgRGF0ZShcbiAgICAgICAgICAgIE1hdGgucG93KDIsIDMyKSAqIHN1cGVyLmdldCgyICogKytpbmRleCkgKyBzdXBlci5nZXQoMiAqIC0taW5kZXgpXG4gICAgICAgICk7XG4gICAgfVxuICAgICpbU3ltYm9sLml0ZXJhdG9yXSgpIHtcbiAgICAgICAgbGV0IHYsIGxvdywgaGlnaDtcbiAgICAgICAgbGV0IGl0ID0gc3VwZXJbU3ltYm9sLml0ZXJhdG9yXSgpO1xuICAgICAgICBsZXQgaXYgPSB0aGlzLnZhbGlkaXR5W1N5bWJvbC5pdGVyYXRvcl0oKTtcbiAgICAgICAgd2hpbGUgKCEodiA9IGl2Lm5leHQoKSkuZG9uZSAmJiAhKGxvdyA9IGl0Lm5leHQoKSkuZG9uZSAmJiAhKGhpZ2ggPSBpdC5uZXh0KCkpLmRvbmUpIHtcbiAgICAgICAgICAgIHlpZWxkICF2LnZhbHVlID8gbnVsbCA6IG5ldyBEYXRlKE1hdGgucG93KDIsIDMyKSAqIGhpZ2gudmFsdWUgKyBsb3cudmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgSW50OFZlY3RvciAgICBleHRlbmRzIEJ5dGVWZWN0b3I8SW50OEFycmF5PiAgICB7fVxuZXhwb3J0IGNsYXNzIEludDE2VmVjdG9yICAgZXh0ZW5kcyBCeXRlVmVjdG9yPEludDE2QXJyYXk+ICAge31cbmV4cG9ydCBjbGFzcyBJbnQzMlZlY3RvciAgIGV4dGVuZHMgQnl0ZVZlY3RvcjxJbnQzMkFycmF5PiAgIHt9XG5leHBvcnQgY2xhc3MgSW50NjRWZWN0b3IgICBleHRlbmRzIExvbmdWZWN0b3I8SW50MzJBcnJheT4gICB7fVxuZXhwb3J0IGNsYXNzIFVpbnQ4VmVjdG9yICAgZXh0ZW5kcyBCeXRlVmVjdG9yPFVpbnQ4QXJyYXk+ICAge31cbmV4cG9ydCBjbGFzcyBVaW50MTZWZWN0b3IgIGV4dGVuZHMgQnl0ZVZlY3RvcjxVaW50MTZBcnJheT4gIHt9XG5leHBvcnQgY2xhc3MgVWludDMyVmVjdG9yICBleHRlbmRzIEJ5dGVWZWN0b3I8VWludDMyQXJyYXk+ICB7fVxuZXhwb3J0IGNsYXNzIFVpbnQ2NFZlY3RvciAgZXh0ZW5kcyBMb25nVmVjdG9yPFVpbnQzMkFycmF5PiAge31cbmV4cG9ydCBjbGFzcyBGbG9hdDMyVmVjdG9yIGV4dGVuZHMgQnl0ZVZlY3RvcjxGbG9hdDMyQXJyYXk+IHt9XG5leHBvcnQgY2xhc3MgRmxvYXQ2NFZlY3RvciBleHRlbmRzIEJ5dGVWZWN0b3I8RmxvYXQ2NEFycmF5PiB7fVxuXG5Mb25nVmVjdG9yLnByb3RvdHlwZS5zdHJpZGUgPSAyO1xuKFZlY3Rvci5wcm90b3R5cGUgYXMgYW55KS5saXN0cyA9IFtdO1xuKFZlY3Rvci5wcm90b3R5cGUgYXMgYW55KS52YWxpZGl0eSA9IFZhbGlkaXR5VmVjdG9yLmNvbnN0YW50O1xuKFZpcnR1YWxWZWN0b3IucHJvdG90eXBlIGFzIGFueSkuX2FycmF5VHlwZSA9IEFycmF5O1xuKEludDhWZWN0b3IucHJvdG90eXBlIGFzIGFueSkuX2FycmF5VHlwZSA9IEludDhBcnJheTtcbihJbnQxNlZlY3Rvci5wcm90b3R5cGUgYXMgYW55KS5fYXJyYXlUeXBlID0gSW50MTZBcnJheTtcbihJbnQzMlZlY3Rvci5wcm90b3R5cGUgYXMgYW55KS5fYXJyYXlUeXBlID0gSW50MzJBcnJheTtcbihJbnQ2NFZlY3Rvci5wcm90b3R5cGUgYXMgYW55KS5fYXJyYXlUeXBlID0gSW50MzJBcnJheTtcbihVaW50OFZlY3Rvci5wcm90b3R5cGUgYXMgYW55KS5fYXJyYXlUeXBlID0gVWludDhBcnJheTtcbihVaW50MTZWZWN0b3IucHJvdG90eXBlIGFzIGFueSkuX2FycmF5VHlwZSA9IFVpbnQxNkFycmF5O1xuKFVpbnQzMlZlY3Rvci5wcm90b3R5cGUgYXMgYW55KS5fYXJyYXlUeXBlID0gVWludDMyQXJyYXk7XG4oVWludDY0VmVjdG9yLnByb3RvdHlwZSBhcyBhbnkpLl9hcnJheVR5cGUgPSBVaW50MzJBcnJheTtcbihEYXRlVmVjdG9yLnByb3RvdHlwZSBhcyBhbnkpLl9hcnJheVR5cGUgPSBVaW50MzJBcnJheTtcbihJbmRleFZlY3Rvci5wcm90b3R5cGUgYXMgYW55KS5fYXJyYXlUeXBlID0gSW50MzJBcnJheTtcbihGbG9hdDMyVmVjdG9yLnByb3RvdHlwZSBhcyBhbnkpLl9hcnJheVR5cGUgPSBGbG9hdDMyQXJyYXk7XG4oRmxvYXQ2NFZlY3Rvci5wcm90b3R5cGUgYXMgYW55KS5fYXJyYXlUeXBlID0gRmxvYXQ2NEFycmF5O1xuXG5mdW5jdGlvbiBhcnJheVNldDxUPihzb3VyY2U6IEFycmF5PFQ+LCB0YXJnZXQ6IEFycmF5PFQ+LCBpbmRleDogbnVtYmVyKSB7XG4gICAgZm9yIChsZXQgaSA9IDAsIG4gPSBzb3VyY2UubGVuZ3RoOyBpIDwgbjspIHtcbiAgICAgICAgdGFyZ2V0W2luZGV4KytdID0gc291cmNlW2krK107XG4gICAgfVxuICAgIHJldHVybiBpbmRleDtcbn1cblxuZnVuY3Rpb24gdHlwZWRBcnJheVNldChzb3VyY2U6IFR5cGVkQXJyYXksIHRhcmdldDogVHlwZWRBcnJheSwgaW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiB0YXJnZXQuc2V0KHNvdXJjZSwgaW5kZXgpIHx8IGluZGV4ICsgc291cmNlLmxlbmd0aDtcbn1cblxuLy8gUmF0aGVyIHRoYW4gZWF0IHRoZSBpdGVyYXRvciBjb3N0LCB3ZSd2ZSBpbmxpbmVkIHRoaXMgZnVuY3Rpb24gaW50byB0aGUgcmVsZXZhbnQgYGdldGAgZnVuY3Rpb25zXG4vLyBmdW5jdGlvbiogZmluZFZpcnR1YWw8VExpc3Q+KGluZGV4OiBudW1iZXIsIGxpc3RzOiBUTGlzdFtdLCBiYXRjaD86IG51bWJlcikge1xuLy8gICAgIGxldCByb3dzLCBsZW5ndGg7XG4vLyAgICAgZm9yIChiYXRjaCA9IChiYXRjaCB8fCAwKSAtIDE7XG4vLyAgICAgICAgIChyb3dzID0gbGlzdHNbKytiYXRjaF0pICYmXG4vLyAgICAgICAgIChsZW5ndGggPSByb3dzLmxlbmd0aCkgPD0gaW5kZXggJiZcbi8vICAgICAgICAgMCA8PSAoaW5kZXggLT0gbGVuZ3RoKTspIHt9XG4vLyAgICAgcmV0dXJuIHJvd3MgJiYgLTEgPCBpbmRleCA/IHlpZWxkIFtyb3dzLCBpbmRleCwgYmF0Y2hdIDogbnVsbDtcbi8vIH1cblxuZXhwb3J0IHR5cGUgVHlwZWRBcnJheUN0b3I8VCBleHRlbmRzIFR5cGVkQXJyYXk+ID0ge1xuICAgIHJlYWRvbmx5IHByb3RvdHlwZTogVDtcbiAgICByZWFkb25seSBCWVRFU19QRVJfRUxFTUVOVDogbnVtYmVyO1xuICAgIG5ldyhsZW5ndGg6IG51bWJlcik6IFQ7XG4gICAgbmV3KGFycmF5OiBBcnJheUxpa2U8bnVtYmVyPik6IFQ7XG4gICAgbmV3KGJ1ZmZlcjogQXJyYXlCdWZmZXJMaWtlLCBieXRlT2Zmc2V0PzogbnVtYmVyLCBsZW5ndGg/OiBudW1iZXIpOiBUO1xufTtcblxuZXhwb3J0IHR5cGUgRmxvYXRBcnJheSA9IEZsb2F0MzJBcnJheSB8IEZsb2F0NjRBcnJheTtcbmV4cG9ydCB0eXBlIEludEFycmF5ID0gSW50OEFycmF5IHwgSW50MTZBcnJheSB8IEludDMyQXJyYXkgfCBVaW50OENsYW1wZWRBcnJheSB8IFVpbnQ4QXJyYXkgfCBVaW50MTZBcnJheSB8IFVpbnQzMkFycmF5O1xuXG5leHBvcnQgdHlwZSBUeXBlZEFycmF5ID0gKFxuICAgICAgICAgICAgSW50OEFycmF5ICAgICAgICB8XG4gICAgICAgICAgICBVaW50OEFycmF5ICAgICAgIHxcbiAgICAgICAgICAgIEludDE2QXJyYXkgICAgICAgfFxuICAgICAgICAgICAgSW50MzJBcnJheSAgICAgICB8XG4gICAgICAgICAgICBVaW50MTZBcnJheSAgICAgIHxcbiAgICAgICAgICAgIFVpbnQzMkFycmF5ICAgICAgfFxuICAgICAgICAgICAgRmxvYXQzMkFycmF5ICAgICB8XG4gICAgICAgICAgICBGbG9hdDY0QXJyYXkgICAgIHxcbiAgICAgICAgICAgIFVpbnQ4Q2xhbXBlZEFycmF5KTtcbiJdfQ==

@@ -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.
import * as Schema_ from '../format/Schema';

@@ -72,2 +88,2 @@ export var Type = Schema_.org.apache.arrow.flatbuf.Type;

//# sourceMappingURL=data:application/json;charset=utf8;base64,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QUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsR0FBRyxNQUFNLEdBQUcsQ0FBQztZQUM5QyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQVEsQ0FBQztRQUNqRCxDQUFDO1FBQ0QsTUFBTSxDQUFDLE1BQXFCLENBQUM7SUFDakMsQ0FBQztJQUNELENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO1FBQ2QsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7WUFDekMsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RCLENBQUM7SUFDTCxDQUFDOztBQW5ETSxrQkFBVyxHQUFHLEVBQUUsQ0FBQztBQUNqQixtQkFBWSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7QUFDekIsa0JBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBb0R6QyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFDNUIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQzVCLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUM7QUFDM0MsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztBQUMzQyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDIiwiZmlsZSI6InZlY3RvcnMvdmVjdG9yLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgU2NoZW1hXyBmcm9tICcuLi9mb3JtYXQvU2NoZW1hJztcbmV4cG9ydCBpbXBvcnQgVHlwZSA9IFNjaGVtYV8ub3JnLmFwYWNoZS5hcnJvdy5mbGF0YnVmLlR5cGU7XG5leHBvcnQgaW1wb3J0IEZpZWxkID0gU2NoZW1hXy5vcmcuYXBhY2hlLmFycm93LmZsYXRidWYuRmllbGQ7XG5cbmV4cG9ydCBmdW5jdGlvbiBzbGljZVRvUmFuZ2VBcmdzKGxlbmd0aDogbnVtYmVyLCBzdGFydDogbnVtYmVyLCBlbmQ/OiBudW1iZXIpIHtcbiAgICBsZXQgdG90YWwgPSBsZW5ndGgsIGZyb20gPSBzdGFydCB8fCAwO1xuICAgIGxldCB0byA9IGVuZCA9PT0gZW5kICYmIHR5cGVvZiBlbmQgPT0gJ251bWJlcicgPyBlbmQgOiB0b3RhbDtcbiAgICBpZiAodG8gPCAwKSB7IHRvID0gdG90YWwgKyB0bzsgfVxuICAgIGlmIChmcm9tIDwgMCkgeyBmcm9tID0gdG90YWwgLSAoZnJvbSAqIC0xKSAlIHRvdGFsOyB9XG4gICAgaWYgKHRvIDwgZnJvbSkgeyBmcm9tID0gdG87IHRvID0gc3RhcnQ7IH1cbiAgICB0b3RhbCA9ICFpc0Zpbml0ZSh0b3RhbCA9ICh0byAtIGZyb20pKSB8fCB0b3RhbCA8IDAgPyAwIDogdG90YWw7XG4gICAgcmV0dXJuIFtmcm9tLCB0b3RhbF07XG59XG5cbmV4cG9ydCBjbGFzcyBWZWN0b3I8VD4gaW1wbGVtZW50cyBJdGVyYWJsZTxUPiB7XG4gICAgc3RhdGljIGRlZmF1bHROYW1lID0gJyc7XG4gICAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IG5ldyBNYXAoKTtcbiAgICBzdGF0aWMgZGVmYXVsdFR5cGUgPSBUeXBlW1R5cGUuTk9ORV07XG4gICAgc3RhdGljIGNyZWF0ZTxUID0gYW55PihmaWVsZDogRmllbGQsIGxlbmd0aDogbnVtYmVyLCAuLi5hcmdzOiBhbnlbXSkge1xuICAgICAgICBsZXQgdmVjdG9yID0gbmV3IHRoaXM8VD4oLi4uYXJncyksIG07XG4gICAgICAgIHZlY3Rvci5sZW5ndGggPSBsZW5ndGg7XG4gICAgICAgIHZlY3Rvci5uYW1lID0gZmllbGQubmFtZSgpO1xuICAgICAgICB2ZWN0b3IudHlwZSA9IFR5cGVbZmllbGQudHlwZVR5cGUoKV07XG4gICAgICAgIGlmICgobSA9IGZpZWxkLmN1c3RvbU1ldGFkYXRhTGVuZ3RoKCkpID4gMCkge1xuICAgICAgICAgICAgbGV0IGVudHJ5LCBpID0gMCwgZGF0YSA9IHZlY3Rvci5wcm9wcyA9IG5ldyBNYXAoKTtcbiAgICAgICAgICAgIGRvIHtcbiAgICAgICAgICAgICAgICBlbnRyeSA9IGZpZWxkLmN1c3RvbU1ldGFkYXRhKGkpO1xuICAgICAgICAgICAgICAgIGRhdGFbZW50cnkua2V5KCldID0gZW50cnkudmFsdWUoKTtcbiAgICAgICAgICAgIH0gd2hpbGUgKCsraSA8IG0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2ZWN0b3I7XG4gICAgfVxuICAgIHN0YXRpYyBmcm9tPFQgPSBhbnk+KHNvdXJjZTogVmVjdG9yPFQ+LCBsZW5ndGg6IG51bWJlciwgLi4uYXJnczogYW55W10pIHtcbiAgICAgICAgbGV0IHZlY3RvciA9IG5ldyB0aGlzPFQ+KC4uLmFyZ3MpO1xuICAgICAgICB2ZWN0b3IubGVuZ3RoID0gbGVuZ3RoO1xuICAgICAgICBzb3VyY2UubmFtZSAhPT0gVmVjdG9yLmRlZmF1bHROYW1lICYmICh2ZWN0b3IubmFtZSA9IHNvdXJjZS5uYW1lKTtcbiAgICAgICAgc291cmNlLnR5cGUgIT09IFZlY3Rvci5kZWZhdWx0VHlwZSAmJiAodmVjdG9yLnR5cGUgPSBzb3VyY2UudHlwZSk7XG4gICAgICAgIHNvdXJjZS5wcm9wcyAhPT0gVmVjdG9yLmRlZmF1bHRQcm9wcyAmJiAodmVjdG9yLnByb3BzID0gc291cmNlLnByb3BzKTtcbiAgICAgICAgcmV0dXJuIHZlY3RvcjtcbiAgICB9XG4gICAgcHVibGljIG5hbWU6IHN0cmluZztcbiAgICBwdWJsaWMgdHlwZTogc3RyaW5nO1xuICAgIHB1YmxpYyBsZW5ndGg6IG51bWJlcjtcbiAgICBwdWJsaWMgc3RyaWRlOiBudW1iZXI7XG4gICAgcHVibGljIHByb3BzOiBNYXA8UHJvcGVydHlLZXksIGFueT47XG4gICAgcHJvdGVjdGVkIHZhbGlkaXR5OiBWZWN0b3I8Ym9vbGVhbj47XG4gICAgZ2V0KGluZGV4OiBudW1iZXIpOiBUIHsgcmV0dXJuIG51bGw7IH1cbiAgICBjb25jYXQodmVjdG9yOiBWZWN0b3I8VD4pIHsgcmV0dXJuIHZlY3RvcjsgfVxuICAgIHNsaWNlPFIgPSBUPihzdGFydD86IG51bWJlciwgZW5kPzogbnVtYmVyLCBiYXRjaD86IG51bWJlcikge1xuICAgICAgICBjb25zdCB7IHN0cmlkZSB9ID0gdGhpcztcbiAgICAgICAgY29uc3QgW29mZnNldCwgbGVuZ3RoXSA9IHNsaWNlVG9SYW5nZUFyZ3MoXG4gICAgICAgICAgICBzdHJpZGUgKiB0aGlzLmxlbmd0aCwgc3RyaWRlICogKHN0YXJ0IHx8IDApLCBzdHJpZGUgKiBlbmRcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucmFuZ2U8Uj4ob2Zmc2V0LCBsZW5ndGgsIGJhdGNoKTtcbiAgICB9XG4gICAgcmFuZ2U8UiA9IFQ+KGluZGV4OiBudW1iZXIsIGxlbmd0aDogbnVtYmVyLCBiYXRjaD86IG51bWJlcikge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBuZXcgQXJyYXk8Uj4obGVuZ3RoKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IC0xLCBuID0gdGhpcy5sZW5ndGg7ICsraSA8IGxlbmd0aDspIHtcbiAgICAgICAgICAgIHJlc3VsdFtpXSA9IHRoaXMuZ2V0KChpICsgaW5kZXgpICUgbikgYXMgYW55O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQgYXMgSXRlcmFibGU8Uj47XG4gICAgfVxuICAgICpbU3ltYm9sLml0ZXJhdG9yXSgpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IC0xLCBuID0gdGhpcy5sZW5ndGg7ICsraSA8IG47KSB7XG4gICAgICAgICAgICB5aWVsZCB0aGlzLmdldChpKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuVmVjdG9yLnByb3RvdHlwZS5sZW5ndGggPSAwO1xuVmVjdG9yLnByb3RvdHlwZS5zdHJpZGUgPSAxO1xuVmVjdG9yLnByb3RvdHlwZS5uYW1lID0gVmVjdG9yLmRlZmF1bHROYW1lO1xuVmVjdG9yLnByb3RvdHlwZS50eXBlID0gVmVjdG9yLmRlZmF1bHRUeXBlO1xuVmVjdG9yLnByb3RvdHlwZS5wcm9wcyA9IFZlY3Rvci5kZWZhdWx0UHJvcHM7XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf8;base64,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QU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUM7QUFDM0MsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyIsImZpbGUiOiJ2ZWN0b3JzL3ZlY3Rvci5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmVcbi8vIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZVxuLy8gZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb25cbi8vIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGVcbi8vIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGVcbi8vIFwiTGljZW5zZVwiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuLy8gd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuLy9cbi8vICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4vL1xuLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLFxuLy8gc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW5cbi8vIFwiQVMgSVNcIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZXG4vLyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGVcbi8vIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnNcbi8vIHVuZGVyIHRoZSBMaWNlbnNlLlxuXG5pbXBvcnQgKiBhcyBTY2hlbWFfIGZyb20gJy4uL2Zvcm1hdC9TY2hlbWEnO1xuZXhwb3J0IGltcG9ydCBUeXBlID0gU2NoZW1hXy5vcmcuYXBhY2hlLmFycm93LmZsYXRidWYuVHlwZTtcbmV4cG9ydCBpbXBvcnQgRmllbGQgPSBTY2hlbWFfLm9yZy5hcGFjaGUuYXJyb3cuZmxhdGJ1Zi5GaWVsZDtcblxuZXhwb3J0IGZ1bmN0aW9uIHNsaWNlVG9SYW5nZUFyZ3MobGVuZ3RoOiBudW1iZXIsIHN0YXJ0OiBudW1iZXIsIGVuZD86IG51bWJlcikge1xuICAgIGxldCB0b3RhbCA9IGxlbmd0aCwgZnJvbSA9IHN0YXJ0IHx8IDA7XG4gICAgbGV0IHRvID0gZW5kID09PSBlbmQgJiYgdHlwZW9mIGVuZCA9PSAnbnVtYmVyJyA/IGVuZCA6IHRvdGFsO1xuICAgIGlmICh0byA8IDApIHsgdG8gPSB0b3RhbCArIHRvOyB9XG4gICAgaWYgKGZyb20gPCAwKSB7IGZyb20gPSB0b3RhbCAtIChmcm9tICogLTEpICUgdG90YWw7IH1cbiAgICBpZiAodG8gPCBmcm9tKSB7IGZyb20gPSB0bzsgdG8gPSBzdGFydDsgfVxuICAgIHRvdGFsID0gIWlzRmluaXRlKHRvdGFsID0gKHRvIC0gZnJvbSkpIHx8IHRvdGFsIDwgMCA/IDAgOiB0b3RhbDtcbiAgICByZXR1cm4gW2Zyb20sIHRvdGFsXTtcbn1cblxuZXhwb3J0IGNsYXNzIFZlY3RvcjxUPiBpbXBsZW1lbnRzIEl0ZXJhYmxlPFQ+IHtcbiAgICBzdGF0aWMgZGVmYXVsdE5hbWUgPSAnJztcbiAgICBzdGF0aWMgZGVmYXVsdFByb3BzID0gbmV3IE1hcCgpO1xuICAgIHN0YXRpYyBkZWZhdWx0VHlwZSA9IFR5cGVbVHlwZS5OT05FXTtcbiAgICBzdGF0aWMgY3JlYXRlPFQgPSBhbnk+KGZpZWxkOiBGaWVsZCwgbGVuZ3RoOiBudW1iZXIsIC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgICAgIGxldCB2ZWN0b3IgPSBuZXcgdGhpczxUPiguLi5hcmdzKSwgbTtcbiAgICAgICAgdmVjdG9yLmxlbmd0aCA9IGxlbmd0aDtcbiAgICAgICAgdmVjdG9yLm5hbWUgPSBmaWVsZC5uYW1lKCk7XG4gICAgICAgIHZlY3Rvci50eXBlID0gVHlwZVtmaWVsZC50eXBlVHlwZSgpXTtcbiAgICAgICAgaWYgKChtID0gZmllbGQuY3VzdG9tTWV0YWRhdGFMZW5ndGgoKSkgPiAwKSB7XG4gICAgICAgICAgICBsZXQgZW50cnksIGkgPSAwLCBkYXRhID0gdmVjdG9yLnByb3BzID0gbmV3IE1hcCgpO1xuICAgICAgICAgICAgZG8ge1xuICAgICAgICAgICAgICAgIGVudHJ5ID0gZmllbGQuY3VzdG9tTWV0YWRhdGEoaSk7XG4gICAgICAgICAgICAgICAgZGF0YVtlbnRyeS5rZXkoKV0gPSBlbnRyeS52YWx1ZSgpO1xuICAgICAgICAgICAgfSB3aGlsZSAoKytpIDwgbSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZlY3RvcjtcbiAgICB9XG4gICAgc3RhdGljIGZyb208VCA9IGFueT4oc291cmNlOiBWZWN0b3I8VD4sIGxlbmd0aDogbnVtYmVyLCAuLi5hcmdzOiBhbnlbXSkge1xuICAgICAgICBsZXQgdmVjdG9yID0gbmV3IHRoaXM8VD4oLi4uYXJncyk7XG4gICAgICAgIHZlY3Rvci5sZW5ndGggPSBsZW5ndGg7XG4gICAgICAgIHNvdXJjZS5uYW1lICE9PSBWZWN0b3IuZGVmYXVsdE5hbWUgJiYgKHZlY3Rvci5uYW1lID0gc291cmNlLm5hbWUpO1xuICAgICAgICBzb3VyY2UudHlwZSAhPT0gVmVjdG9yLmRlZmF1bHRUeXBlICYmICh2ZWN0b3IudHlwZSA9IHNvdXJjZS50eXBlKTtcbiAgICAgICAgc291cmNlLnByb3BzICE9PSBWZWN0b3IuZGVmYXVsdFByb3BzICYmICh2ZWN0b3IucHJvcHMgPSBzb3VyY2UucHJvcHMpO1xuICAgICAgICByZXR1cm4gdmVjdG9yO1xuICAgIH1cbiAgICBwdWJsaWMgbmFtZTogc3RyaW5nO1xuICAgIHB1YmxpYyB0eXBlOiBzdHJpbmc7XG4gICAgcHVibGljIGxlbmd0aDogbnVtYmVyO1xuICAgIHB1YmxpYyBzdHJpZGU6IG51bWJlcjtcbiAgICBwdWJsaWMgcHJvcHM6IE1hcDxQcm9wZXJ0eUtleSwgYW55PjtcbiAgICBwcm90ZWN0ZWQgdmFsaWRpdHk6IFZlY3Rvcjxib29sZWFuPjtcbiAgICBnZXQoaW5kZXg6IG51bWJlcik6IFQgeyByZXR1cm4gbnVsbDsgfVxuICAgIGNvbmNhdCh2ZWN0b3I6IFZlY3RvcjxUPikgeyByZXR1cm4gdmVjdG9yOyB9XG4gICAgc2xpY2U8UiA9IFQ+KHN0YXJ0PzogbnVtYmVyLCBlbmQ/OiBudW1iZXIsIGJhdGNoPzogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IHsgc3RyaWRlIH0gPSB0aGlzO1xuICAgICAgICBjb25zdCBbb2Zmc2V0LCBsZW5ndGhdID0gc2xpY2VUb1JhbmdlQXJncyhcbiAgICAgICAgICAgIHN0cmlkZSAqIHRoaXMubGVuZ3RoLCBzdHJpZGUgKiAoc3RhcnQgfHwgMCksIHN0cmlkZSAqIGVuZFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gdGhpcy5yYW5nZTxSPihvZmZzZXQsIGxlbmd0aCwgYmF0Y2gpO1xuICAgIH1cbiAgICByYW5nZTxSID0gVD4oaW5kZXg6IG51bWJlciwgbGVuZ3RoOiBudW1iZXIsIGJhdGNoPzogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBBcnJheTxSPihsZW5ndGgpO1xuICAgICAgICBmb3IgKGxldCBpID0gLTEsIG4gPSB0aGlzLmxlbmd0aDsgKytpIDwgbGVuZ3RoOykge1xuICAgICAgICAgICAgcmVzdWx0W2ldID0gdGhpcy5nZXQoKGkgKyBpbmRleCkgJSBuKSBhcyBhbnk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdCBhcyBJdGVyYWJsZTxSPjtcbiAgICB9XG4gICAgKltTeW1ib2wuaXRlcmF0b3JdKCkge1xuICAgICAgICBmb3IgKGxldCBpID0gLTEsIG4gPSB0aGlzLmxlbmd0aDsgKytpIDwgbjspIHtcbiAgICAgICAgICAgIHlpZWxkIHRoaXMuZ2V0KGkpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5WZWN0b3IucHJvdG90eXBlLmxlbmd0aCA9IDA7XG5WZWN0b3IucHJvdG90eXBlLnN0cmlkZSA9IDE7XG5WZWN0b3IucHJvdG90eXBlLm5hbWUgPSBWZWN0b3IuZGVmYXVsdE5hbWU7XG5WZWN0b3IucHJvdG90eXBlLnR5cGUgPSBWZWN0b3IuZGVmYXVsdFR5cGU7XG5WZWN0b3IucHJvdG90eXBlLnByb3BzID0gVmVjdG9yLmRlZmF1bHRQcm9wcztcbiJdfQ==
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