UNPKG

@brightcove/player-loader

Version:

An asynchronous script loader for the Brightcove Player.

2,456 lines (2,386 loc) 208 kB
/*! @name @brightcove/player-loader @version 1.8.1 @license Apache-2.0 */ (function (QUnit) { 'use strict'; QUnit = QUnit && QUnit.hasOwnProperty('default') ? QUnit['default'] : QUnit; var cov_1v3hlkz33s = function () { var path = '/Users/ld/projects/brightcove/player-loader/src/utils/environment.js', hash = '4f20929ee48ee1eb00209c747dc46c54d37ea7c0', Function = function () {}.constructor, global = new Function('return this')(), gcv = '__coverage__', coverageData = { path: '/Users/ld/projects/brightcove/player-loader/src/utils/environment.js', statementMap: { '0': { start: { line: 3, column: 18 }, end: { line: 21, column: 1 } }, '1': { start: { line: 4, column: 2 }, end: { line: 6, column: 3 } }, '2': { start: { line: 5, column: 4 }, end: { line: 5, column: 22 } }, '3': { start: { line: 8, column: 2 }, end: { line: 10, column: 3 } }, '4': { start: { line: 9, column: 4 }, end: { line: 9, column: 18 } }, '5': { start: { line: 12, column: 2 }, end: { line: 14, column: 3 } }, '6': { start: { line: 13, column: 4 }, end: { line: 13, column: 16 } }, '7': { start: { line: 16, column: 2 }, end: { line: 18, column: 3 } }, '8': { start: { line: 17, column: 4 }, end: { line: 17, column: 18 } }, '9': { start: { line: 20, column: 2 }, end: { line: 20, column: 12 } }, '10': { start: { line: 23, column: 18 }, end: { line: 35, column: 1 } }, '11': { start: { line: 24, column: 2 }, end: { line: 26, column: 3 } }, '12': { start: { line: 25, column: 4 }, end: { line: 25, column: 18 } }, '13': { start: { line: 28, column: 23 }, end: { line: 28, column: 34 } }, '14': { start: { line: 30, column: 2 }, end: { line: 32, column: 3 } }, '15': { start: { line: 31, column: 4 }, end: { line: 31, column: 31 } }, '16': { start: { line: 34, column: 2 }, end: { line: 34, column: 22 } }, '17': { start: { line: 37, column: 20 }, end: { line: 49, column: 1 } }, '18': { start: { line: 38, column: 2 }, end: { line: 40, column: 3 } }, '19': { start: { line: 39, column: 4 }, end: { line: 39, column: 20 } }, '20': { start: { line: 42, column: 14 }, end: { line: 42, column: 25 } }, '21': { start: { line: 44, column: 2 }, end: { line: 46, column: 3 } }, '22': { start: { line: 45, column: 4 }, end: { line: 45, column: 24 } }, '23': { start: { line: 48, column: 2 }, end: { line: 48, column: 67 } } }, fnMap: { '0': { name: '(anonymous_0)', decl: { start: { line: 3, column: 18 }, end: { line: 3, column: 19 } }, loc: { start: { line: 3, column: 24 }, end: { line: 21, column: 1 } }, line: 3 }, '1': { name: '(anonymous_1)', decl: { start: { line: 23, column: 18 }, end: { line: 23, column: 19 } }, loc: { start: { line: 23, column: 24 }, end: { line: 35, column: 1 } }, line: 23 }, '2': { name: '(anonymous_2)', decl: { start: { line: 37, column: 20 }, end: { line: 37, column: 21 } }, loc: { start: { line: 37, column: 26 }, end: { line: 49, column: 1 } }, line: 37 } }, branchMap: { '0': { loc: { start: { line: 4, column: 2 }, end: { line: 6, column: 3 } }, type: 'if', locations: [{ start: { line: 4, column: 2 }, end: { line: 6, column: 3 } }, { start: { line: 4, column: 2 }, end: { line: 6, column: 3 } }], line: 4 }, '1': { loc: { start: { line: 8, column: 2 }, end: { line: 10, column: 3 } }, type: 'if', locations: [{ start: { line: 8, column: 2 }, end: { line: 10, column: 3 } }, { start: { line: 8, column: 2 }, end: { line: 10, column: 3 } }], line: 8 }, '2': { loc: { start: { line: 12, column: 2 }, end: { line: 14, column: 3 } }, type: 'if', locations: [{ start: { line: 12, column: 2 }, end: { line: 14, column: 3 } }, { start: { line: 12, column: 2 }, end: { line: 14, column: 3 } }], line: 12 }, '3': { loc: { start: { line: 16, column: 2 }, end: { line: 18, column: 3 } }, type: 'if', locations: [{ start: { line: 16, column: 2 }, end: { line: 18, column: 3 } }, { start: { line: 16, column: 2 }, end: { line: 18, column: 3 } }], line: 16 }, '4': { loc: { start: { line: 24, column: 2 }, end: { line: 26, column: 3 } }, type: 'if', locations: [{ start: { line: 24, column: 2 }, end: { line: 26, column: 3 } }, { start: { line: 24, column: 2 }, end: { line: 26, column: 3 } }], line: 24 }, '5': { loc: { start: { line: 30, column: 2 }, end: { line: 32, column: 3 } }, type: 'if', locations: [{ start: { line: 30, column: 2 }, end: { line: 32, column: 3 } }, { start: { line: 30, column: 2 }, end: { line: 32, column: 3 } }], line: 30 }, '6': { loc: { start: { line: 30, column: 6 }, end: { line: 30, column: 79 } }, type: 'binary-expr', locations: [{ start: { line: 30, column: 6 }, end: { line: 30, column: 25 } }, { start: { line: 30, column: 29 }, end: { line: 30, column: 79 } }], line: 30 }, '7': { loc: { start: { line: 38, column: 2 }, end: { line: 40, column: 3 } }, type: 'if', locations: [{ start: { line: 38, column: 2 }, end: { line: 40, column: 3 } }, { start: { line: 38, column: 2 }, end: { line: 40, column: 3 } }], line: 38 }, '8': { loc: { start: { line: 44, column: 2 }, end: { line: 46, column: 3 } }, type: 'if', locations: [{ start: { line: 44, column: 2 }, end: { line: 46, column: 3 } }, { start: { line: 44, column: 2 }, end: { line: 46, column: 3 } }], line: 44 }, '9': { loc: { start: { line: 44, column: 6 }, end: { line: 44, column: 25 } }, type: 'binary-expr', locations: [{ start: { line: 44, column: 6 }, end: { line: 44, column: 9 } }, { start: { line: 44, column: 13 }, end: { line: 44, column: 25 } }], line: 44 } }, s: { '0': 0, '1': 0, '2': 0, '3': 0, '4': 0, '5': 0, '6': 0, '7': 0, '8': 0, '9': 0, '10': 0, '11': 0, '12': 0, '13': 0, '14': 0, '15': 0, '16': 0, '17': 0, '18': 0, '19': 0, '20': 0, '21': 0, '22': 0, '23': 0 }, f: { '0': 0, '1': 0, '2': 0 }, b: { '0': [0, 0], '1': [0, 0], '2': [0, 0], '3': [0, 0], '4': [0, 0], '5': [0, 0], '6': [0, 0], '7': [0, 0], '8': [0, 0], '9': [0, 0] }, _coverageSchema: '332fd63041d2c1bcb487cc26dd0d5f7d97098a6c' }, coverage = global[gcv] || (global[gcv] = {}); if (coverage[path] && coverage[path].hash === hash) { return coverage[path]; } coverageData.hash = hash; return coverage[path] = coverageData; }(); cov_1v3hlkz33s.s[0]++; var getGlobal = function getGlobal() { cov_1v3hlkz33s.f[0]++; cov_1v3hlkz33s.s[1]++; if (typeof globalThis !== 'undefined') { cov_1v3hlkz33s.b[0][0]++; cov_1v3hlkz33s.s[2]++; return globalThis; } else { cov_1v3hlkz33s.b[0][1]++; } cov_1v3hlkz33s.s[3]++; if (typeof window !== 'undefined') { cov_1v3hlkz33s.b[1][0]++; cov_1v3hlkz33s.s[4]++; return window; } else { cov_1v3hlkz33s.b[1][1]++; } cov_1v3hlkz33s.s[5]++; if (typeof self !== 'undefined') { cov_1v3hlkz33s.b[2][0]++; cov_1v3hlkz33s.s[6]++; return self; } else { cov_1v3hlkz33s.b[2][1]++; } cov_1v3hlkz33s.s[7]++; if (typeof global !== 'undefined') { cov_1v3hlkz33s.b[3][0]++; cov_1v3hlkz33s.s[8]++; return global; } else { cov_1v3hlkz33s.b[3][1]++; } cov_1v3hlkz33s.s[9]++; return {}; }; cov_1v3hlkz33s.s[10]++; var getWindow = function getWindow() { cov_1v3hlkz33s.f[1]++; cov_1v3hlkz33s.s[11]++; if (typeof window !== 'undefined') { cov_1v3hlkz33s.b[4][0]++; cov_1v3hlkz33s.s[12]++; return window; } else { cov_1v3hlkz33s.b[4][1]++; } var globalObject = (cov_1v3hlkz33s.s[13]++, getGlobal()); cov_1v3hlkz33s.s[14]++; if ((cov_1v3hlkz33s.b[6][0]++, globalObject.window) && (cov_1v3hlkz33s.b[6][1]++, globalObject.window.window === globalObject.window)) { cov_1v3hlkz33s.b[5][0]++; cov_1v3hlkz33s.s[15]++; return globalObject.window; } else { cov_1v3hlkz33s.b[5][1]++; } cov_1v3hlkz33s.s[16]++; return globalObject; }; cov_1v3hlkz33s.s[17]++; var getDocument = function getDocument() { cov_1v3hlkz33s.f[2]++; cov_1v3hlkz33s.s[18]++; if (typeof document !== 'undefined') { cov_1v3hlkz33s.b[7][0]++; cov_1v3hlkz33s.s[19]++; return document; } else { cov_1v3hlkz33s.b[7][1]++; } var win = (cov_1v3hlkz33s.s[20]++, getWindow()); cov_1v3hlkz33s.s[21]++; if ((cov_1v3hlkz33s.b[9][0]++, win) && (cov_1v3hlkz33s.b[9][1]++, win.document)) { cov_1v3hlkz33s.b[8][0]++; cov_1v3hlkz33s.s[22]++; return win.document; } else { cov_1v3hlkz33s.b[8][1]++; } cov_1v3hlkz33s.s[23]++; throw new Error('document is not available in this environment'); }; QUnit.begin(function () { // Prevent page reloads during tests var window = getWindow(); window.onbeforeunload = function () { return 'Preventing reload during tests'; }; }); QUnit.done(function () { // Clean up the onbeforeunload handler var window = getWindow(); window.onbeforeunload = null; }); function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } /*! @name @brightcove/player-url @version 1.2.0 @license Apache-2.0 */ var version = "1.2.0"; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; // The parameters that may include JSON. var JSON_ALLOWED_PARAMS = ['catalogSearch', 'catalogSequence']; // The parameters that may be set as query string parameters for iframes. var IFRAME_ALLOWED_QUERY_PARAMS = ['adConfigId', 'applicationId', 'catalogSearch', 'catalogSequence', 'playlistId', 'playlistVideoId', 'videoId']; /** * Gets the value of a parameter and encodes it as a string. * * For certain keys, JSON is allowed and will be encoded. * * @private * @param {Object} params * A parameters object. See README for details. * * @param {string} key * The key in the params object. * * @return {string|undefined} * The encoded value - or `undefined` if none. */ var getQueryParamValue = function getQueryParamValue(params, key) { if (!params || params[key] === undefined) { return; } // If it's not a string, such as with a catalog search or sequence, we // try to encode it as JSON. if (typeof params[key] !== 'string' && JSON_ALLOWED_PARAMS.indexOf(key) !== -1) { try { return encodeURIComponent(JSON.stringify(params[key])); } catch (x) { // If it's not a string and we can't encode as JSON, it's ignored entirely. return; } } return encodeURIComponent(String(params[key]).trim()) || undefined; }; /** * In some cases, we need to add query string parameters to an iframe URL. * * @private * @param {Object} params * An object of query parameters. * * @return {string} * A query string starting with `?`. If no valid parameters are given, * returns an empty string. */ var getQueryString = function getQueryString(params) { return Object.keys(params).filter(function (k) { return IFRAME_ALLOWED_QUERY_PARAMS.indexOf(k) !== -1; }).reduce(function (qs, k) { var value = getQueryParamValue(params, k); if (value !== undefined) { qs += qs ? '&' : '?'; qs += encodeURIComponent(k) + '=' + value; } return qs; }, ''); }; /** * Generate a URL to a Brightcove Player. * * @param {Object} params * A set of parameters describing the player URL to create. * * @param {string} params.accountId * A Brightcove account ID. * * @param {string} [params.playerId="default"] * A Brightcove player ID. * * @param {string} [params.embedId="default"] * A Brightcove player embed ID. * * @param {boolean} [params.iframe=false] * Whether to return a URL for an HTML document to be embedded in * an iframe. * * @param {boolean} [params.minified=true] * When the `iframe` argument is `false`, this can be used to control * whether the minified or unminified JavaScript URL is returned. * * @param {string} [params.base="https://players.brightcove.net"] * A base CDN protocol and hostname. Mainly used for testing. * * @return {string} * A URL to a Brightcove Player. */ var brightcovePlayerUrl = function brightcovePlayerUrl(_ref) { var accountId = _ref.accountId, _ref$base = _ref.base, base = _ref$base === undefined ? 'https://players.brightcove.net' : _ref$base, _ref$playerId = _ref.playerId, playerId = _ref$playerId === undefined ? 'default' : _ref$playerId, _ref$embedId = _ref.embedId, embedId = _ref$embedId === undefined ? 'default' : _ref$embedId, _ref$iframe = _ref.iframe, iframe = _ref$iframe === undefined ? false : _ref$iframe, _ref$minified = _ref.minified, minified = _ref$minified === undefined ? true : _ref$minified, _ref$queryParams = _ref.queryParams, queryParams = _ref$queryParams === undefined ? null : _ref$queryParams; var ext = ''; if (iframe) { ext += 'html'; } else { if (minified) { ext += 'min.'; } ext += 'js'; } if (base.charAt(base.length - 1) === '/') { base = base.substring(0, base.length - 1); } var qs = ''; if (iframe && queryParams && (typeof queryParams === 'undefined' ? 'undefined' : _typeof(queryParams)) === 'object') { qs = getQueryString(queryParams); } accountId = encodeURIComponent(accountId); playerId = encodeURIComponent(playerId); embedId = encodeURIComponent(embedId); return base + '/' + accountId + '/' + playerId + '_' + embedId + '/index.' + ext + qs; }; /** * The version of this module. * * @type {string} */ brightcovePlayerUrl.VERSION = version; var cov_20brclw7uy = function () { var path = '/Users/ld/projects/brightcove/player-loader/src/constants.js', hash = '9d47ff70098dc5203dd74c22c38e830fbbaa1260', Function = function () {}.constructor, global = new Function('return this')(), gcv = '__coverage__', coverageData = { path: '/Users/ld/projects/brightcove/player-loader/src/constants.js', statementMap: { '0': { start: { line: 3, column: 15 }, end: { line: 3, column: 26 } }, '1': { start: { line: 5, column: 17 }, end: { line: 11, column: 1 } }, '2': { start: { line: 13, column: 29 }, end: { line: 13, column: 35 } }, '3': { start: { line: 14, column: 43 }, end: { line: 14, column: 48 } }, '4': { start: { line: 15, column: 26 }, end: { line: 15, column: 32 } }, '5': { start: { line: 17, column: 29 }, end: { line: 17, column: 36 } }, '6': { start: { line: 18, column: 31 }, end: { line: 18, column: 41 } }, '7': { start: { line: 20, column: 27 }, end: { line: 20, column: 36 } }, '8': { start: { line: 21, column: 26 }, end: { line: 21, column: 34 } }, '9': { start: { line: 23, column: 31 }, end: { line: 23, column: 39 } }, '10': { start: { line: 24, column: 32 }, end: { line: 24, column: 41 } }, '11': { start: { line: 25, column: 31 }, end: { line: 25, column: 39 } }, '12': { start: { line: 26, column: 30 }, end: { line: 26, column: 37 } }, '13': { start: { line: 27, column: 32 }, end: { line: 27, column: 41 } }, '14': { start: { line: 29, column: 27 }, end: { line: 29, column: 63 } } }, fnMap: {}, branchMap: {}, s: { '0': 0, '1': 0, '2': 0, '3': 0, '4': 0, '5': 0, '6': 0, '7': 0, '8': 0, '9': 0, '10': 0, '11': 0, '12': 0, '13': 0, '14': 0 }, f: {}, b: {}, _coverageSchema: '332fd63041d2c1bcb487cc26dd0d5f7d97098a6c' }, coverage = global[gcv] || (global[gcv] = {}); if (coverage[path] && coverage[path].hash === hash) { return coverage[path]; } coverageData.hash = hash; return coverage[path] = coverageData; }(); var window$1 = (cov_20brclw7uy.s[0]++, getWindow()); var DEFAULTS = (cov_20brclw7uy.s[1]++, { embedId: 'default', embedType: 'in-page', playerId: 'default', Promise: window$1.Promise, refNodeInsert: 'append' }); var DEFAULT_ASPECT_RATIO = (cov_20brclw7uy.s[2]++, '16:9'); var DEFAULT_IFRAME_HORIZONTAL_PLAYLIST = (cov_20brclw7uy.s[3]++, false); var DEFAULT_MAX_WIDTH = (cov_20brclw7uy.s[4]++, '100%'); var EMBED_TAG_NAME_VIDEO = (cov_20brclw7uy.s[5]++, 'video'); var EMBED_TAG_NAME_VIDEOJS = (cov_20brclw7uy.s[6]++, 'video-js'); var EMBED_TYPE_IN_PAGE = (cov_20brclw7uy.s[7]++, 'in-page'); var EMBED_TYPE_IFRAME = (cov_20brclw7uy.s[8]++, 'iframe'); var REF_NODE_INSERT_APPEND = (cov_20brclw7uy.s[9]++, 'append'); var REF_NODE_INSERT_PREPEND = (cov_20brclw7uy.s[10]++, 'prepend'); var REF_NODE_INSERT_BEFORE = (cov_20brclw7uy.s[11]++, 'before'); var REF_NODE_INSERT_AFTER = (cov_20brclw7uy.s[12]++, 'after'); var REF_NODE_INSERT_REPLACE = (cov_20brclw7uy.s[13]++, 'replace'); var JSON_ALLOWED_ATTRS = (cov_20brclw7uy.s[14]++, ['catalogSearch', 'catalogSequence']); var cov_ak3pxam38 = function () { var path = '/Users/ld/projects/brightcove/player-loader/src/urls.js', hash = '0814625b7b122680057fa99433855d1d4d638fec', Function = function () {}.constructor, global = new Function('return this')(), gcv = '__coverage__', coverageData = { path: '/Users/ld/projects/brightcove/player-loader/src/urls.js', statementMap: { '0': { start: { line: 4, column: 15 }, end: { line: 4, column: 48 } }, '1': { start: { line: 16, column: 15 }, end: { line: 41, column: 1 } }, '2': { start: { line: 18, column: 2 }, end: { line: 20, column: 3 } }, '3': { start: { line: 19, column: 4 }, end: { line: 19, column: 28 } }, '4': { start: { line: 22, column: 55 }, end: { line: 22, column: 61 } }, '5': { start: { line: 23, column: 17 }, end: { line: 23, column: 55 } }, '6': { start: { line: 25, column: 2 }, end: { line: 40, column: 5 } }, '7': { start: { line: 50, column: 19 }, end: { line: 50, column: 33 } }, '8': { start: { line: 50, column: 25 }, end: { line: 50, column: 33 } }, '9': { start: { line: 59, column: 19 }, end: { line: 61, column: 1 } }, '10': { start: { line: 60, column: 2 }, end: { line: 60, column: 21 } } }, fnMap: { '0': { name: '(anonymous_0)', decl: { start: { line: 16, column: 15 }, end: { line: 16, column: 16 } }, loc: { start: { line: 16, column: 27 }, end: { line: 41, column: 1 } }, line: 16 }, '1': { name: '(anonymous_1)', decl: { start: { line: 50, column: 19 }, end: { line: 50, column: 20 } }, loc: { start: { line: 50, column: 25 }, end: { line: 50, column: 33 } }, line: 50 }, '2': { name: '(anonymous_2)', decl: { start: { line: 59, column: 19 }, end: { line: 59, column: 20 } }, loc: { start: { line: 59, column: 32 }, end: { line: 61, column: 1 } }, line: 59 } }, branchMap: { '0': { loc: { start: { line: 18, column: 2 }, end: { line: 20, column: 3 } }, type: 'if', locations: [{ start: { line: 18, column: 2 }, end: { line: 20, column: 3 } }, { start: { line: 18, column: 2 }, end: { line: 20, column: 3 } }], line: 18 }, '1': { loc: { start: { line: 34, column: 14 }, end: { line: 34, column: 60 } }, type: 'cond-expr', locations: [{ start: { line: 34, column: 29 }, end: { line: 34, column: 53 } }, { start: { line: 34, column: 56 }, end: { line: 34, column: 60 } }], line: 34 } }, s: { '0': 0, '1': 0, '2': 0, '3': 0, '4': 0, '5': 0, '6': 0, '7': 0, '8': 0, '9': 0, '10': 0 }, f: { '0': 0, '1': 0, '2': 0 }, b: { '0': [0, 0], '1': [0, 0] }, _coverageSchema: '332fd63041d2c1bcb487cc26dd0d5f7d97098a6c' }, coverage = global[gcv] || (global[gcv] = {}); if (coverage[path] && coverage[path].hash === hash) { return coverage[path]; } coverageData.hash = hash; return coverage[path] = coverageData; }(); var BASE_URL = (cov_ak3pxam38.s[0]++, 'https://players.brightcove.net/'); cov_ak3pxam38.s[1]++; var getUrl = function getUrl(params) { cov_ak3pxam38.f[0]++; cov_ak3pxam38.s[2]++; if (params.playerUrl) { cov_ak3pxam38.b[0][0]++; cov_ak3pxam38.s[3]++; return params.playerUrl; } else { cov_ak3pxam38.b[0][1]++; } var _ref = (cov_ak3pxam38.s[4]++, params), accountId = _ref.accountId, playerId = _ref.playerId, embedId = _ref.embedId, embedOptions = _ref.embedOptions; var iframe = (cov_ak3pxam38.s[5]++, params.embedType === EMBED_TYPE_IFRAME); cov_ak3pxam38.s[6]++; return brightcovePlayerUrl({ accountId: accountId, playerId: playerId, embedId: embedId, iframe: iframe, base: BASE_URL, minified: embedOptions ? (cov_ak3pxam38.b[1][0]++, !embedOptions.unminified) : (cov_ak3pxam38.b[1][1]++, true), queryParams: params }); }; cov_ak3pxam38.s[7]++; var getBaseUrl = function getBaseUrl() { cov_ak3pxam38.f[1]++; cov_ak3pxam38.s[8]++; return BASE_URL; }; cov_ak3pxam38.s[9]++; var setBaseUrl = function setBaseUrl(baseUrl) { cov_ak3pxam38.f[2]++; cov_ak3pxam38.s[10]++; BASE_URL = baseUrl; }; var urls = { getUrl: getUrl, getBaseUrl: getBaseUrl, setBaseUrl: setBaseUrl }; var cov_26ynveqb1s = function () { var path = '/Users/ld/projects/brightcove/player-loader/src/create-embed.js', hash = '835b6c61ea1026d836900926982b2f0ea592416e', Function = function () {}.constructor, global = new Function('return this')(), gcv = '__coverage__', coverageData = { path: '/Users/ld/projects/brightcove/player-loader/src/create-embed.js', statementMap: { '0': { start: { line: 26, column: 13 }, end: { line: 26, column: 53 } }, '1': { start: { line: 26, column: 21 }, end: { line: 26, column: 53 } }, '2': { start: { line: 37, column: 18 }, end: { line: 37, column: 60 } }, '3': { start: { line: 37, column: 26 }, end: { line: 37, column: 60 } }, '4': { start: { line: 49, column: 26 }, end: { line: 58, column: 1 } }, '5': { start: { line: 50, column: 14 }, end: { line: 50, column: 27 } }, '6': { start: { line: 51, column: 13 }, end: { line: 51, column: 40 } }, '7': { start: { line: 53, column: 2 }, end: { line: 53, column: 66 } }, '8': { start: { line: 54, column: 2 }, end: { line: 54, column: 56 } }, '9': { start: { line: 55, column: 2 }, end: { line: 55, column: 31 } }, '10': { start: { line: 57, column: 2 }, end: { line: 57, column: 12 } }, '11': { start: { line: 70, column: 26 }, end: { line: 117, column: 1 } }, '12': { start: { line: 71, column: 25 }, end: { line: 71, column: 31 } }, '13': { start: { line: 72, column: 14 }, end: { line: 72, column: 27 } }, '14': { start: { line: 76, column: 24 }, end: { line: 86, column: 3 } }, '15': { start: { line: 88, column: 18 }, end: { line: 88, column: 80 } }, '16': { start: { line: 89, column: 13 }, end: { line: 89, column: 39 } }, '17': { start: { line: 91, column: 2 }, end: { line: 111, column: 7 } }, '18': { start: { line: 92, column: 19 }, end: { line: 92, column: 30 } }, '19': { start: { line: 98, column: 6 }, end: { line: 108, column: 7 } }, '20': { start: { line: 99, column: 8 }, end: { line: 105, column: 9 } }, '21': { start: { line: 100, column: 10 }, end: { line: 100, column: 46 } }, '22': { start: { line: 104, column: 10 }, end: { line: 104, column: 17 } }, '23': { start: { line: 107, column: 8 }, end: { line: 107, column: 43 } }, '24': { start: { line: 110, column: 6 }, end: { line: 110, column: 49 } }, '25': { start: { line: 113, column: 2 }, end: { line: 113, column: 42 } }, '26': { start: { line: 114, column: 2 }, end: { line: 114, column: 31 } }, '27': { start: { line: 116, column: 2 }, end: { line: 116, column: 12 } }, '28': { start: { line: 135, column: 23 }, end: { line: 180, column: 1 } }, '29': { start: { line: 136, column: 2 }, end: { line: 138, column: 3 } }, '30': { start: { line: 137, column: 4 }, end: { line: 137, column: 14 } }, '31': { start: { line: 140, column: 14 }, end: { line: 140, column: 27 } }, '32': { start: { line: 142, column: 2 }, end: { line: 142, column: 33 } }, '33': { start: { line: 143, column: 2 }, end: { line: 143, column: 23 } }, '34': { start: { line: 144, column: 2 }, end: { line: 144, column: 25 } }, '35': { start: { line: 145, column: 2 }, end: { line: 145, column: 26 } }, '36': { start: { line: 146, column: 2 }, end: { line: 146, column: 24 } }, '37': { start: { line: 147, column: 2 }, end: { line: 147, column: 26 } }, '38': { start: { line: 148, column: 2 }, end: { line: 148, column: 27 } }, '39': { start: { line: 150, column: 21 }, end: { line: 154, column: 29 } }, '40': { start: { line: 158, column: 22 }, end: { line: 158, column: 67 } }, '41': { start: { line: 159, column: 16 }, end: { line: 159, column: 40 } }, '42': { start: { line: 160, column: 20 }, end: { line: 160, column: 57 } }, '43': { start: { line: 165, column: 2 }, end: { line: 167, column: 3 } }, '44': { start: { line: 166, column: 4 }, end: { line: 166, column: 23 } }, '45': { start: { line: 169, column: 2 }, end: { line: 169, column: 44 } }, '46': { start: { line: 170, column: 2 }, end: { line: 170, column: 24 } }, '47': { start: { line: 172, column: 16 }, end: { line: 172, column: 40 } }, '48': { start: { line: 174, column: 2 }, end: { line: 174, column: 36 } }, '49': { start: { line: 175, column: 2 }, end: { line: 175, column: 32 } }, '50': { start: { line: 176, column: 2 }, end: { line: 176, column: 45 } }, '51': { start: { line: 177, column: 2 }, end: { line: 177, column: 27 } }, '52': { start: { line: 179, column: 2 }, end: { line: 179, column: 15 } }, '53': { start: { line: 195, column: 16 }, end: { line: 207, column: 1 } }, '54': { start: { line: 196, column: 2 }, end: { line: 198, column: 3 } }, '55': { start: { line: 197, column: 4 }, end: { line: 197, column: 14 } }, '56': { start: { line: 200, column: 14 }, end: { line: 200, column: 27 } }, '57': { start: { line: 201, column: 14 }, end: { line: 201, column: 38 } }, '58': { start: { line: 203, column: 2 }, end: { line: 203, column: 41 } }, '59': { start: { line: 204, column: 2 }, end: { line: 204, column: 22 } }, '60': { start: { line: 206, column: 2 }, end: { line: 206, column: 13 } }, '61': { start: { line: 226, column: 18 }, end: { line: 232, column: 1 } }, '62': { start: { line: 227, column: 2 }, end: { line: 229, column: 3 } }, '63': { start: { line: 228, column: 4 }, end: { line: 228, column: 17 } }, '64': { start: { line: 231, column: 2 }, end: { line: 231, column: 79 } }, '65': { start: { line: 247, column: 20 }, end: { line: 289, column: 1 } }, '66': { start: { line: 248, column: 35 }, end: { line: 248, column: 41 } }, '67': { start: { line: 249, column: 24 }, end: { line: 249, column: 42 } }, '68': { start: { line: 253, column: 18 }, end: { line: 253, column: 73 } }, '69': { start: { line: 256, column: 2 }, end: { line: 268, column: 3 } }, '70': { start: { line: 257, column: 4 }, end: { line: 257, column: 49 } }, '71': { start: { line: 258, column: 9 }, end: { line: 268, column: 3 } }, '72': { start: { line: 259, column: 4 }, end: { line: 259, column: 76 } }, '73': { start: { line: 260, column: 9 }, end: { line: 268, column: 3 } }, '74': { start: { line: 261, column: 4 }, end: { line: 261, column: 49 } }, '75': { start: { line: 262, column: 9 }, end: { line: 268, column: 3 } }, '76': { start: { line: 263, column: 4 }, end: { line: 263, column: 62 } }, '77': { start: { line: 267, column: 4 }, end: { line: 267, column: 33 } }, '78': { start: { line: 273, column: 2 }, end: { line: 280, column: 3 } }, '79': { start: { line: 274, column: 16 }, end: { line: 274, column: 29 } }, '80': { start: { line: 275, column: 28 }, end: { line: 275, column: 78 } }, '81': { start: { line: 276, column: 21 }, end: { line: 276, column: 55 } }, '82': { start: { line: 278, column: 4 }, end: { line: 278, column: 43 } }, '83': { start: { line: 279, column: 4 }, end: { line: 279, column: 78 } }, '84': { start: { line: 285, column: 2 }, end: { line: 285, column: 24 } }, '85': { start: { line: 288, column: 2 }, end: { line: 288, column: 15 } }, '86': { start: { line: 304, column: 23 }, end: { line: 316, column: 1 } },