diff --git a/docs/assets/example/libass.js b/docs/assets/example/libass.js
index 8e0fcca41..351d9876b 100644
--- a/docs/assets/example/libass.js
+++ b/docs/assets/example/libass.js
@@ -1,79 +1,9 @@
var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
- poster: '/assets/sample/poster.jpg',
- volume: 0.5,
- isLive: false,
- muted: false,
- autoplay: false,
- pip: true,
- autoSize: true,
- autoMini: true,
- screenshot: true,
- setting: true,
- loop: true,
- flip: true,
- playbackRate: true,
- aspectRatio: true,
- fullscreen: true,
fullscreenWeb: true,
- subtitleOffset: true,
- miniProgressBar: true,
- mutex: true,
- backdrop: true,
- playsInline: true,
- autoPlayback: true,
- airplay: true,
- theme: '#23ade5',
- lang: navigator.language.toLowerCase(),
- moreVideoAttr: {
- crossOrigin: 'anonymous',
- },
- settings: [
- {
- width: 200,
- html: 'Subtitle',
- tooltip: 'Bilingual',
- icon: '
',
- selector: [
- {
- html: 'Display',
- tooltip: 'Show',
- switch: true,
- onSwitch: function (item) {
- item.tooltip = item.switch ? 'Hide' : 'Show';
- art.subtitle.show = !item.switch;
- return !item.switch;
- },
- },
- {
- html: 'Style Test',
- url: '/assets/sample/style-test.ass',
- },
- {
- default: true,
- html: 'Bilingual',
- url: '/assets/sample/subtitle.ass',
- },
- {
- html: 'subtitle.srt',
- url: '/assets/sample/subtitle.srt',
- },
- ],
- onSelect: function (item) {
- art.subtitle.switch(item.url, {
- name: item.html,
- });
- return item.html;
- },
- },
- ],
subtitle: {
- url: '/assets/sample/subtitle.ass',
- style: {
- color: '#48aff0',
- fontSize: '16px',
- },
+ url: '/assets/sample/style-test.ass',
},
plugins: [
artplayerPluginLibass({
diff --git a/docs/uncompiled/artplayer-plugin-libass/index.js b/docs/uncompiled/artplayer-plugin-libass/index.js
index 09c61cfb9..b9c887f19 100644
--- a/docs/uncompiled/artplayer-plugin-libass/index.js
+++ b/docs/uncompiled/artplayer-plugin-libass/index.js
@@ -147,17 +147,9 @@ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
var _adapter = require("./adapter");
var _adapterDefault = parcelHelpers.interopDefault(_adapter);
-function checkVersion(art) {
- const { version , utils: { errorHandle } } = art.constructor;
- const arr = version.split(".").map(Number);
- const major = arr[0];
- const minor = arr[1] / 100;
- errorHandle(major + minor >= 5, `Artplayer.js@${version} is not compatible the artplayerPluginLibass@${artplayerPluginLibass.version}. Please update it to version Artplayer.js@5.x.x`);
-}
function artplayerPluginLibass(option) {
return (art)=>{
- checkVersion(art);
- let adapter = new (0, _adapterDefault.default)(art, option);
+ const adapter = new (0, _adapterDefault.default)(art, option);
return {
name: "artplayerPluginLibass",
libass: adapter.libass,
@@ -171,12 +163,9 @@ function artplayerPluginLibass(option) {
};
}
exports.default = artplayerPluginLibass;
-artplayerPluginLibass.env = "development";
-artplayerPluginLibass.version = "1.0.0";
-artplayerPluginLibass.build = "2023-11-14 11:34:31";
if (typeof window !== "undefined") window["artplayerPluginLibass"] = artplayerPluginLibass;
-},{"./adapter":"k93pI","@parcel/transformer-js/src/esmodule-helpers.js":"gONhf"}],"k93pI":[function(require,module,exports) {
+},{"./adapter":"k93pI","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"k93pI":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
var _libassWasm = require("libass-wasm");
@@ -339,7 +328,7 @@ class LibassAdapter {
}
exports.default = LibassAdapter;
-},{"libass-wasm":"2htC1","@parcel/transformer-js/src/esmodule-helpers.js":"gONhf"}],"2htC1":[function(require,module,exports) {
+},{"libass-wasm":"5YbrE","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"5YbrE":[function(require,module,exports) {
// # The following lists all copyright notices and licenses for the
// # work contained in JavascriptSubtitlesOctopus per project.
//
@@ -1878,7 +1867,7 @@ var SubtitlesOctopus = function(options) {
if (typeof SubtitlesOctopusOnLoad == "function") SubtitlesOctopusOnLoad();
if (0, module.exports) exports = module.exports = SubtitlesOctopus;
-},{}],"gONhf":[function(require,module,exports) {
+},{}],"6SDkN":[function(require,module,exports) {
exports.interopDefault = function(a) {
return a && a.__esModule ? a : {
default: a
diff --git a/docs/uncompiled/artplayer-plugin-libass/index.js.map b/docs/uncompiled/artplayer-plugin-libass/index.js.map
index 839169e79..b90404f23 100644
--- a/docs/uncompiled/artplayer-plugin-libass/index.js.map
+++ b/docs/uncompiled/artplayer-plugin-libass/index.js.map
@@ -1 +1 @@
-{"mappings":"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","sources":["src/index.js","src/adapter.js","../../node_modules/libass-wasm/dist/js/subtitles-octopus.js","../../node_modules/@parcel/transformer-js/src/esmodule-helpers.js"],"sourcesContent":["import LibassAdapter from './adapter';\n\nfunction checkVersion(art) {\n const {\n version,\n utils: { errorHandle },\n } = art.constructor;\n const arr = version.split('.').map(Number);\n const major = arr[0];\n const minor = arr[1] / 100;\n errorHandle(\n major + minor >= 5,\n `Artplayer.js@${version} is not compatible the artplayerPluginLibass@${artplayerPluginLibass.version}. Please update it to version Artplayer.js@5.x.x`,\n );\n}\n\nexport default function artplayerPluginLibass(option) {\n return (art) => {\n checkVersion(art);\n\n let adapter = new LibassAdapter(art, option)\n\n return {\n name: 'artplayerPluginLibass',\n libass: adapter.libass,\n visible: adapter.visible,\n init: adapter.init.bind(adapter),\n switch: adapter.switch.bind(adapter),\n show: adapter.show.bind(adapter),\n hide: adapter.hide.bind(adapter),\n destroy: adapter.destroy.bind(adapter),\n }\n }\n}\n\nartplayerPluginLibass.env = process.env.NODE_ENV;\nartplayerPluginLibass.version = process.env.APP_VER;\nartplayerPluginLibass.build = process.env.BUILD_DATE;\n\nif (typeof window !== 'undefined') {\n window['artplayerPluginLibass'] = artplayerPluginLibass;\n}\n","import SubtitlesOctopus from \"libass-wasm\"\n\nconst defaultAssSubtitle = `[Script Info]\\nScriptType: v4.00+`\n\nexport default class LibassAdapter {\n constructor(art, option) {\n const { constructor, template } = art\n\n this.art = art\n this.$video = template.$video\n this.$webvtt = template.$subtitle\n this.utils = constructor.utils\n\n this.libass = null\n\n art.once(\"ready\", this.init.bind(this, option))\n }\n\n async init(option) {\n this.#checkWebAssemblySupport()\n\n await this.#createLibass(option)\n\n this.#addEventListeners()\n\n this.art.emit(\"artplayerPluginLibass:init\", this)\n\n // set initial subtitle\n const initialSubtitle = this.art?.option?.subtitle?.url\n if (initialSubtitle && this.utils.getExt(initialSubtitle) === \"ass\") {\n this.switch(initialSubtitle)\n }\n }\n\n switch(url) {\n this.art.emit(\"artplayerPluginLibass:switch\", url)\n\n if (url && this.utils.getExt(url) === \"ass\") {\n this.currentType = \"ass\"\n this.libass.freeTrack()\n this.libass.setTrackByUrl(this.#toAbsoluteUrl(url))\n\n this.visible = this.art.subtitle.show\n } else {\n this.currentType = \"webvtt\"\n this.hide()\n this.libass.freeTrack()\n }\n }\n\n setVisibility(visible) {\n this.visible = visible\n }\n\n setOffset(offset) {\n this.timeOffset = offset\n }\n\n get active() {\n return this.currentType === 'ass'\n }\n\n get visible() {\n if (!this.libass)\n return false\n\n return this.libass.canvasParent.style.display !== \"none\"\n }\n\n set visible(visible) {\n this.art.emit(\"artplayerPluginLibass:visible\", visible)\n\n this.#setVttVisible(!this.active)\n\n if (this.libass.canvasParent) {\n this.libass.canvasParent.style.display = visible ? \"block\" : \"none\"\n\n if (visible) this.libass.resize()\n }\n }\n\n get timeOffset() {\n return this.libass.timeOffset\n }\n\n set timeOffset(offset) {\n this.art.emit(\"artplayerPluginLibass:timeOffset\", offset)\n this.libass.timeOffset = offset\n }\n\n show() {\n this.visible = true\n }\n\n hide() {\n this.visible = false\n }\n\n destroy() {\n this.art.emit(\"artplayerPluginLibass:destroy\")\n\n this.#removeEventListeners()\n\n this.libass.dispose()\n URL.revokeObjectURL(this.workerScriptUrl)\n this.libass = null\n }\n\n async #createLibass(option = {}) {\n if (!option.fallbackFont) {\n return this.utils.errorHandle(option.fallbackFont, 'artplayerPluginLibass: fallbackFont is required')\n }\n\n if (!option.workerUrl) {\n option.workerUrl = 'https://cdnjs.cloudflare.com/ajax/libs/libass-wasm/4.1.0/js/subtitles-octopus-worker.js'\n }\n\n if (option.availableFonts) {\n option.availableFonts = Object\n .entries(option.availableFonts)\n .reduce((acc, [key, value]) => {\n acc[key] = this.#toAbsoluteUrl(value)\n return acc\n }, {})\n }\n\n this.libass = new SubtitlesOctopus({\n subContent: defaultAssSubtitle,\n video: this.$video,\n ...option,\n workerUrl: await this.#loadWorker(option),\n fallbackFont: this.#toAbsoluteUrl(option.fallbackFont),\n fonts: option.fonts?.map((font) => this.#toAbsoluteUrl(font)),\n })\n\n this.libass.canvasParent.className = \"artplayer-plugin-libass\"\n this.libass.canvasParent.style.cssText = `\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n user-select: none;\n pointer-events: none;\n z-index: 20;`\n }\n\n #addEventListeners() {\n this.switchHandler = this.switch.bind(this)\n this.visibleHandler = this.setVisibility.bind(this)\n this.offsetHandler = this.setOffset.bind(this)\n\n this.art.on(\"subtitle\", this.visibleHandler)\n this.art.on('subtitleLoad', this.switchHandler)\n this.art.on(\"subtitleOffset\", this.offsetHandler)\n\n this.art.once(\"destroy\", this.destroy.bind(this))\n }\n\n #removeEventListeners() {\n this.art.off(\"subtitle\", this.visibleHandler)\n this.art.off('subtitleLoad', this.switchHandler)\n this.art.off(\"subtitleOffset\", this.offsetHandler)\n }\n\n #setVttVisible(visible) {\n this.$webvtt.style.visibility = visible ? 'visible' : 'hidden'\n }\n\n #toAbsoluteUrl(url) {\n if (this.#isAbsoluteUrl(url))\n return url\n\n // handle absolute URL when the `Worker` of `BLOB` type loading network resources\n return new URL(url, document.baseURI).toString()\n }\n\n #isAbsoluteUrl(url) {\n return /^https?:\\/\\//.test(url)\n }\n\n #loadWorker({ workerUrl, wasmUrl }) {\n return new Promise((resolve) => {\n fetch(workerUrl)\n .then(res => res.text())\n .then(text => {\n let workerScriptContent = text\n\n workerScriptContent = workerScriptContent.replace(\n /wasmBinaryFile\\s*=\\s*\"(subtitles-octopus-worker\\.wasm)\"/g,\n (_match, wasm) => {\n if (!wasmUrl) {\n wasmUrl = new URL(wasm, workerUrl).toString()\n } else {\n wasmUrl = this.#toAbsoluteUrl(wasmUrl)\n }\n\n return `wasmBinaryFile = \"${wasmUrl}\"`\n }\n )\n\n const workerBlob = new Blob([workerScriptContent], { type: \"text/javascript\" })\n resolve(URL.createObjectURL(workerBlob))\n })\n })\n }\n\n #checkWebAssemblySupport() {\n let supportsWebAssembly = false\n try {\n if (typeof WebAssembly === \"object\" && typeof WebAssembly.instantiate === \"function\") {\n const module = new WebAssembly.Module(Uint8Array.of(0x0, 0x61, 0x73, 0x6d, 0x01, 0x00, 0x00, 0x00))\n if (module instanceof WebAssembly.Module)\n supportsWebAssembly = (new WebAssembly.Instance(module) instanceof WebAssembly.Instance)\n }\n } catch (e) {\n //\n }\n\n this.utils.errorHandle(supportsWebAssembly, \"Browser does not support WebAssembly\")\n }\n}\n","// # The following lists all copyright notices and licenses for the\n// # work contained in JavascriptSubtitlesOctopus per project.\n// \n// # Project: subtitlesoctopus\n// License: Expat\n// Copyright: 2017-2021 JavascriptSubtitlesOctopus contributors\n// \n// # Project: brotli\n// License: Expat\n// Copyright: 2014 Google Inc.\n// 2015 The Chromium Authors.\n// 2016 Google Inc.\n// 2017 Google Inc.\n// 2018 Google Inc.\n// 2015 Google Inc.\n// 2013 Google Inc.\n// 2009, 2010, 2013-2016 by the Brotli Authors\n// 2010 Google Inc.\n// \n// # Project: expat\n// License: Expat\n// Copyright: 2019 Zhongyuan Zhou \n// 2017-2022 Rhodri James \n// 2020 Joe Orton \n// 2016-2019 Sebastian Pipping \n// 2021 Dong-hee Na \n// 2017 Joe Orton \n// 2002 Fred L. Drake, Jr. \n// 2004-2006 Fred L. Drake, Jr. \n// 2017 Sebastian Pipping \n// 2004-2006 Karl Waclawek \n// 2006 Karl Waclawek \n// 2003-2006 Karl Waclawek \n// 2001-2003 Fred L. Drake, Jr. \n// 2000-2004 Fred L. Drake, Jr. \n// 2017 Franek Korta \n// 2001-2004 Fred L. Drake, Jr. \n// 2006-2012 Karl Waclawek \n// 2017 Benbuck Nason \n// 2019 David Loffredo \n// 2021 Tim Bray \n// 2018 Benjamin Peterson \n// 2017 Rhodri James \n// 2002-2005 Karl Waclawek \n// 2016-2020 Sebastian Pipping \n// 2016-2018 Sebastian Pipping \n// 2016 Gilles Espinasse \n// 2007 Karl Waclawek \n// 2002-2016 Karl Waclawek \n// 2001-2006 Fred L. Drake, Jr. \n// 2016 Don Lewis \n// 2000-2017 Expat development team\n// 2002-2004 Fred L. Drake, Jr. \n// 2000 Clark Cooper \n// 2002 Greg Stein \n// 2018 Marco Maggi \n// 2005-2012 Karl Waclawek \n// 2020 Boris Kolpackov \n// 2022 Thijs Schreijer \n// 2017-2019 Sebastian Pipping \n// 2016 Cristian Rodr\\x{00c3}\\x{00ad}guez \n// 2005 Karl Waclawek \n// 1999-2000 Thai Open Source Software Center Ltd\n// 2000-2017 Expat development team / 1997-2000 Thai Open Source Software Center Ltd\n// 2005-2007 Steven Solie \n// 2016-2021 Sebastian Pipping \n// 2005 Fred L. Drake, Jr. \n// 2018 Anton Maklakov \n// 2017 Alexander Bluhm \n// 2016-2022 Sebastian Pipping \n// 1997-2000 Thai Open Source Software Center Ltd\n// 2017-2021 Sebastian Pipping \n// 2002-2009 Karl Waclawek \n// 2002 Karl Waclawek \n// 2004-2009 Karl Waclawek \n// 2020 Tim Gates \n// 2016 Pascal Cuoq \n// 2017 Jos\\x{00c3}\\x{00a9} Guti\\x{00c3}\\x{00a9}rrez de la Concha \n// 2001-2002 Fred L. Drake, Jr. \n// 2002-2006 Karl Waclawek \n// 2000-2005 Fred L. Drake, Jr. \n// 2005-2009 Steven Solie \n// 2018 Yury Gribov \n// 2022 Martin Ettl \n// 2003 Greg Stein \n// 2016-2017 Sebastian Pipping \n// 2020 Kleber Tarc\\x{00c3}\\x{00ad}sio \n// 2001-2002 Greg Stein \n// 2002-2003 Fred L. Drake, Jr. \n// 2005-2006 Karl Waclawek \n// 2016 Thomas Beutlich \n// \n// # Project: freetype\n// License: FTL\n// Copyright: \\x{00c5}\\x{009d}\\x{00c5}\\x{00a5} \\x{00c5}\\x{009d}\\x{00c5}\\x{00a5}\\x{00d1}\\x{008f}\\x{00c3}\\x{00af}\\x{00ef}\\x{00ac}\\x{00af}\\x{00c4}\\x{009f}\")\n// 2009-2013 Adobe Systems Incorporated.\n// 2016-2022 David Turner, Robert Wilhelm, and Werner Lemberg.\n// 2013 Adobe Systems Incorporated.\n// 2004-2022 David Turner, Robert Wilhelm, Werner Lemberg, and George Williams.\n// 2013-2022 Google, Inc.\n// 2018-2022 Armin Hasitzka, David Turner, Robert Wilhelm, and Werner Lemberg.\n// 2007-2014 Adobe Systems Incorporated.\n// 2008-2022 David Turner, Robert Wilhelm, and Werner Lemberg.\n// 2005-2022 Werner Lemberg and Detlef W\\x{00fc}rkner.\n// 2006-2022 David Turner, Robert Wilhelm, and Werner Lemberg.\n// 2007-2022 David Turner, Robert Wilhelm, and Werner Lemberg.\n// 1996-2022 David Turner, Robert Wilhelm, Werner Lemberg and Detlef W\\x{00fc}rkner.\n// 2004-2022 Masatake YAMATO, Redhat K.K,\n// 1996-2022 David Turner, Robert Wilhelm, Werner Lemberg, and Detlef Wuerkner.\n// 1996-2022 David Turner, Robert Wilhelm, and Werner Lemberg\n// 1995-2016 Jean-loup Gailly, Mark Adler\n// 2021-2022 David Turner, Robert Wilhelm, and Werner Lemberg.\n// \\x{00c5}\\x{009d}\\x{00c5}\\x{00a5} \\x{00c5}\\x{009d}\\x{00c5}\\x{00a5}\\x{00d1}\\x{008f}\\x{00c3}\\x{00af}\\x{00ef}\\x{00ac}\\x{00af}\\x{00c4}\\x{009f}\"));\n// 2004-2022 David Turner, Robert Wilhelm, Werner Lemberg and George Williams.\n// 2009-2022 Oran Agra and Mickey Gabel.\n// 2010-2022 David Turner, Robert Wilhelm, and Werner Lemberg.\n// 1995-2017 Jean-loup Gailly\n// 2003 Huw D M Davies for Codeweavers\n// 2013-2014 Adobe Systems Incorporated.\n// 2005-2022 David Turner.\n// 1995-2011, 2016 Mark Adler\n// 2010-2022 Joel Klinghed.\n// 2002-2022 Roberto Alameda.\n// 1996-2022 David Turner, Robert Wilhelm, and Werner Lemberg.\n// 2011-2013 Adobe Systems Incorporated.\n// 2007 Dmitry Timoshkov for Codeweavers\n// 2002-2022 David Turner, Robert Wilhelm, and Werner Lemberg\n// 2013-2022 David Turner, Robert Wilhelm, and Werner Lemberg.\n// 1996-2022 Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg.\n// 1995-2017 Mark Adler\n// 2000-2022 David Turner, Robert Wilhelm, and Werner Lemberg.\n// 2022 David Turner, Robert Wilhelm, Werner Lemberg, and Moazin Khatti.\n// 2006-2013 Adobe Systems Incorporated.\n// 1995-2003, 2010 Mark Adler\n// 2012-2022 David Turner, Robert Wilhelm, and Werner Lemberg.\n// 2007-2022 Rahul Bhalerao , .\n// 2007-2022 David Turner.\n// 2017-2022 David Turner, Robert Wilhelm, and Werner Lemberg.\n// 2008-2022 David Turner, Robert Wilhelm, Werner Lemberg, and suzuki toshiya.\n// 2018-2022 David Turner, Robert Wilhelm, and Werner Lemberg.\n// 1995-2005, 2010 Mark Adler\n// 2005-2022 suzuki toshiya, Masatake YAMATO, Red Hat K.K.,\n// 2020-2022 David Turner, Robert Wilhelm, and Werner Lemberg.\n// 2007-2022 Derek Clegg and Michael Toftdal.\n// \\x{00e1}\\x{00bb}\\x{008b}...): %dn\", \"\\x{00e1}\\x{00ba}\\x{0083}\\x{00ce}\\x{00ad}\\x{00c5}\\x{0082}\\x{00c4}\\x{00ba}\", \"all\", 42);\n// 2019-2022 Nikhil Ramakrishnan, David Turner, Robert Wilhelm, and Werner Lemberg.\n// 2013 Google, Inc.\n// 2004-2022 David Turner, Robert Wilhelm, and Werner Lemberg.\n// 2009-2014 Adobe Systems Incorporated.\n// 2004-2022 Albert Chin-A-Young.\n// 2003-2022 Masatake YAMATO, Redhat K.K.,\n// 2002-2022 David Turner, Robert Wilhelm, and Werner Lemberg.\n// 2007-2013 Adobe Systems Incorporated.\n// 2007-2022 Dereg Clegg and Michael Toftdal.\n// 2003-2022 David Turner, Robert Wilhelm, and Werner Lemberg.\n// 2004-2022 Masatake YAMATO and Redhat K.K.\n// 2004-2022 Masatake YAMATO, Red Hat K.K.,\n// 2001-2022 David Turner, Robert Wilhelm, and Werner Lemberg.\n// 2001, 2012 David Turner, Robert Wilhelm, and Werner Lemberg.\n// 1995-2022 Jean-loup Gailly, Mark Adler\n// 1995-2022 Mark Adler\n// 2004-2019 Mark Adler\n// 1990, 1994, 1998 The Open Group\n// 2005-2022 David Turner, Robert Wilhelm, and Werner Lemberg.\n// 1995-2019 Mark Adler\n// 2018-2022 David Turner, Robert Wilhelm, Dominik R\\x{00c3}\\x{00b6}ttsches, and Werner Lemberg.\n// 2004-2022 suzuki toshiya, Masatake YAMATO, Red Hat K.K.,\n// \n// License: public-domain\n// Copyright: 2001 Alexander Peslyak and it is hereby released to the\n// \n// License: Zlib\n// Copyright: 1995-2022 Jean-loup Gailly and Mark Adler\n// \n// License: Expat\n// Copyright: 2000-2001, 2004 Francesco Zappa Nardelli\n// 2001-2004 Francesco Zappa Nardelli\n// 2003 Francesco Zappa Nardelli\n// 2001-2015 Francesco Zappa Nardelli\n// 2001-2004, 2011 Francesco Zappa Nardelli\n// 2000-2002 Francesco Zappa Nardelli\n// 2000 Computing Research Labs, New Mexico State University\n// 2001-2014 Francesco Zappa Nardelli\n// 2001-2002, 2012 Francesco Zappa Nardelli\n// 2001-2002 Francesco Zappa Nardelli\n// 2001-2008, 2011, 2013-2014 Francesco Zappa Nardelli\n// 2000-2003, 2006, 2010 Francesco Zappa Nardelli\n// 2000-2001, 2003 Francesco Zappa Nardelli\n// 2000-2004, 2006-2011, 2013-2014 Francesco Zappa Nardelli\n// 2000-2010, 2012-2014 Francesco Zappa Nardelli\n// \n// License: BSL-1.0\n// Copyright: 2019 nyorain\n// \n// # Project: fribidi\n// License: LGPL-2.1+\n// Copyright: 1999-2000, 2017 Dov Grobgeld\n// 1999-2000 Dov Grobgeld\n// 2004 Behdad Esfahbod\n// 2001-2002, 2004 Behdad Esfahbod\n// 2009 Behdad Esfahbod\n// 2017 Dov Grobgeld\n// 2004-2005 Behdad Esfahbod\n// 2004 Sharif FarsiWeb, Inc.\n// 2015, 2017 Dov Grobgeld\n// 2005 Behdad Esfahbod\n// 2001 Behdad Esfahbod.\n// 2001-2002 Behdad Esfahbod\n// 2004 Sharif FarsiWeb, Inc\n// \n// # Project: fontconfig\n// License: NTP~disclaimer\n// Copyright: 2002 Keith Packard\n// 2009 Roozbeh Pournader\n// 2000 Tuomas J. Lukka\n// 2006 Keith Packard\n// 2008 Red Hat, Inc.\n// 2000-2007 Keith Packard / 2005 Patrick Lam / 2009 Roozbeh Pournader / 2008,2009 Red Hat, Inc. / 2008 Danilo Šegan / 2012 Google, Inc.\n// 2001 Keith Packard\n// 2012 Google, Inc.\n// 2012 Red Hat, Inc.\n// 2013 Raimund Steger\n// 2008,2009 Red Hat, Inc.\n// 2000-2007 Keith Packard\n// 2005 Patrick Lam\n// 2003 Keith Packard\n// 2020 Zoltan Vandrus\n// \\x{00e6}\\x{0081}\\x{00af} 2010 Behdad Esfahbod\n// 2014 Red Hat, Inc.\n// 2018 Akira TAGOH\n// 2007 Keith Packard\n// \\x{00e6}\\x{0081}\\x{00af} 2006 Keith Packard\n// 2008 Danilo Šegan\n// 2015 Akira TAGOH\n// 2016 Akira TAGOH\n// 2008-2009 Red Hat, Inc.\n// 2000 Keith Packard\n// 2013 Akira TAGOH\n// 2013 Google, Inc.\n// 2010 Behdad Esfahbod\n// \n// License: MIT~old\n// Copyright: 2009-2010 Red Hat, Inc.\n// 2011-2013 Google, Inc.\n// 2007 Chris Wilson\n// \n// License: public-domain\n// Copyright: 2008,2009 Red Hat, Inc.\n// 2009 Roozbeh Pournader\n// 2012 Google, Inc.\n// 2008 Danilo Šegan\n// 2005 Patrick Lam\n// 2000-2007 Keith Packard\n// \n// License: Expat\n// Copyright: 2002-2003 Juliusz Chroboczek\n// \n// # Project: harfbuzz\n// License: NTP~disclaimer\n// Copyright: 2002 Keith Packard\n// 2014 Google, Inc.\n// \n// License: MIT~old\n// Copyright: 2012 Mozilla Foundation.\n// 2004, 2007, 2009 Red Hat, Inc.\n// 2009 Red Hat, Inc.\n// 2015 Google, Inc.\n// 2014 Google, Inc.\n// 2018 Ebrahim Byagowi\n// 2016 Igalia S.L.\n// 2018 Ebrahim Byagowi.\n// 2011 Martin Hosken\n// 2019 Ebrahim Byagowi\n// 1998-2004 David Turner and Werner Lemberg\n// 2020 Ebrahim Byagowi\n// 2013 Red Hat, Inc.\n// 2011-2012 Google, Inc.\n// 2011 SIL International\n// 2018 Khaled Hosny\n// 2018 Google, Inc.\n// 2019-2020 Ebrahim Byagowi\n// 2022 Google, Inc.\n// 2012 Google, Inc.\n// 2017 Google, Inc.\n// 2007-2009 Red Hat, Inc.\n// 2011 Codethink Limited\n// 2013 Google, Inc.\n// 2015-2019 Ebrahim Byagowi\n// 2016 Google, Inc.\n// 2011 Google, Inc.\n// \n// # Project: libass\n// License: public-domain\n// Copyright: 2006-2016 libass contributors\n// \n// License: NTP\n// Copyright: 1994 Sun Microsystems, Inc.\n// 2016 Oleg Oshmyan \n// 1988-1993 The Regents of the University of California.\n// \n// License: ISC\n// Copyright: 2015 Oleg Oshmyan \n// 2011-2014 Yu Zhuohuang \n// 2013 rcombs \n// 2016 Vabishchevich Nikolay \n// 2022 libass contributors\n// 2015 Stephan Vedder \n// 2015 Vabishchevich Nikolay \n// interest in the\n// 2006-2016 libass contributors\n// 2021 libass contributors\n// 2017 Vabishchevich Nikolay \n// 2011 Grigori Goronzy \n// 2010 Grigori Goronzy \n// 2014 Vabishchevich Nikolay \n// 2015 Grigori Goronzy \n// 2013 Stefano Pigozzi \n// 2006 Evgeniy Stepanov \n// 2009 Grigori Goronzy \n// \n// # The following section contains the full license text or\n// # where permitted a shorter notice for all works contained\n// # in JavascriptSubtitlesOctopus listed above\n// #\n// # Note that the shortnames used here are identical to those used by Debian\n// # and will in some cases differ from SPDX identifiers. See below.\n// #\n// # Debian-name | SPDX-name\n// # ---------------+-------------------\n// # MIT~old | MIT-Modern-Variant\n// # Expat | MIT\n// # NTP~disclaimer | (None; it is NTP with a more verbose warranty disclaimer)\n// \n// License: Expat\n// Permission is hereby granted, free of charge, to any person obtaining\n// a copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n// .\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n// .\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// \n// License: FTL\n// Portions of this software are copyright © 2021 The FreeType\n// Project (www.freetype.org). All rights reserved.\n// A copy of the FreeType License can be obtained at\n// https://gitlab.freedesktop.org/freetype/freetype/-/blob/master/docs/FTL.TXT\n// \n// License: ISC\n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n// .\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n// \n// License: MIT~old\n// Permission is hereby granted, without written agreement and without\n// license or royalty fees, to use, copy, modify, and distribute this\n// software and its documentation for any purpose, provided that the\n// above copyright notice and the following two paragraphs appear in\n// all copies of this software.\n// .\n// IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR\n// DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES\n// ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN\n// IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH\n// DAMAGE.\n// .\n// THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,\n// BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n// FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS\n// ON AN \"AS IS\" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO\n// PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS\n// \n// License: NTP\n// Permission to use, copy, modify, and distribute this\n// software and its documentation for any purpose and without\n// fee is hereby granted, provided that the above copyright\n// notice appear in all copies. The University of California\n// makes no representations about the suitability of this\n// software for any purpose. It is provided \"as is\" without\n// express or implied warranty.\n// \n// License: NTP~disclaimer\n// Permission to use, copy, modify, distribute, and sell this software and its\n// documentation for any purpose is hereby granted without fee, provided that\n// the above copyright notice appear in all copies and that both that\n// copyright notice and this permission notice appear in supporting\n// documentation, and that the name of the author(s) not be used in\n// advertising or publicity pertaining to distribution of the software without\n// specific, written prior permission. The authors make no\n// representations about the suitability of this software for any purpose. It\n// is provided \"as is\" without express or implied warranty.\n// .\n// THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,\n// INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO\n// EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR\n// CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,\n// DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER\n// TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n// PERFORMANCE OF THIS SOFTWARE.\n// \n// License: Zlib\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n// .\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n// .\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n// \n// License: BSL-1\n// Boost Software License - Version 1.0 - August 17th, 2003\n// .\n// Permission is hereby granted, free of charge, to any person or organization\n// obtaining a copy of the software and accompanying documentation covered by\n// this license (the \"Software\") to use, reproduce, display, distribute,\n// execute, and transmit the Software, and to prepare derivative works of the\n// Software, and to permit third-parties to whom the Software is furnished to\n// do so, all subject to the following:\n// .\n// The copyright notices in the Software and this entire statement, including\n// the above license grant, this restriction and the following disclaimer,\n// must be included in all copies of the Software, in whole or in part, and\n// all derivative works of the Software, unless such copies or derivative\n// works are solely in the form of machine-executable object code generated by\n// a source language processor.\n// .\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT\n// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE\n// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,\n// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n// DEALINGS IN THE SOFTWARE.\n// \n// License: LGPL-2.1\n// GNU LESSER GENERAL PUBLIC LICENSE\n// Version 2.1, February 1999\n// .\n// Copyright (C) 1991, 1999 Free Software Foundation, Inc.\n// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n// Everyone is permitted to copy and distribute verbatim copies\n// of this license document, but changing it is not allowed.\n// .\n// [This is the first released version of the Lesser GPL. It also counts\n// as the successor of the GNU Library Public License, version 2, hence\n// the version number 2.1.]\n// .\n// Preamble\n// .\n// The licenses for most software are designed to take away your\n// freedom to share and change it. By contrast, the GNU General Public\n// Licenses are intended to guarantee your freedom to share and change\n// free software--to make sure the software is free for all its users.\n// .\n// This license, the Lesser General Public License, applies to some\n// specially designated software packages--typically libraries--of the\n// Free Software Foundation and other authors who decide to use it. You\n// can use it too, but we suggest you first think carefully about whether\n// this license or the ordinary General Public License is the better\n// strategy to use in any particular case, based on the explanations below.\n// .\n// When we speak of free software, we are referring to freedom of use,\n// not price. Our General Public Licenses are designed to make sure that\n// you have the freedom to distribute copies of free software (and charge\n// for this service if you wish); that you receive source code or can get\n// it if you want it; that you can change the software and use pieces of\n// it in new free programs; and that you are informed that you can do\n// these things.\n// .\n// To protect your rights, we need to make restrictions that forbid\n// distributors to deny you these rights or to ask you to surrender these\n// rights. These restrictions translate to certain responsibilities for\n// you if you distribute copies of the library or if you modify it.\n// .\n// For example, if you distribute copies of the library, whether gratis\n// or for a fee, you must give the recipients all the rights that we gave\n// you. You must make sure that they, too, receive or can get the source\n// code. If you link other code with the library, you must provide\n// complete object files to the recipients, so that they can relink them\n// with the library after making changes to the library and recompiling\n// it. And you must show them these terms so they know their rights.\n// .\n// We protect your rights with a two-step method: (1) we copyright the\n// library, and (2) we offer you this license, which gives you legal\n// permission to copy, distribute and/or modify the library.\n// .\n// To protect each distributor, we want to make it very clear that\n// there is no warranty for the free library. Also, if the library is\n// modified by someone else and passed on, the recipients should know\n// that what they have is not the original version, so that the original\n// author's reputation will not be affected by problems that might be\n// introduced by others.\n// .\n// Finally, software patents pose a constant threat to the existence of\n// any free program. We wish to make sure that a company cannot\n// effectively restrict the users of a free program by obtaining a\n// restrictive license from a patent holder. Therefore, we insist that\n// any patent license obtained for a version of the library must be\n// consistent with the full freedom of use specified in this license.\n// .\n// Most GNU software, including some libraries, is covered by the\n// ordinary GNU General Public License. This license, the GNU Lesser\n// General Public License, applies to certain designated libraries, and\n// is quite different from the ordinary General Public License. We use\n// this license for certain libraries in order to permit linking those\n// libraries into non-free programs.\n// .\n// When a program is linked with a library, whether statically or using\n// a shared library, the combination of the two is legally speaking a\n// combined work, a derivative of the original library. The ordinary\n// General Public License therefore permits such linking only if the\n// entire combination fits its criteria of freedom. The Lesser General\n// Public License permits more lax criteria for linking other code with\n// the library.\n// .\n// We call this license the \"Lesser\" General Public License because it\n// does Less to protect the user's freedom than the ordinary General\n// Public License. It also provides other free software developers Less\n// of an advantage over competing non-free programs. These disadvantages\n// are the reason we use the ordinary General Public License for many\n// libraries. However, the Lesser license provides advantages in certain\n// special circumstances.\n// .\n// For example, on rare occasions, there may be a special need to\n// encourage the widest possible use of a certain library, so that it becomes\n// a de-facto standard. To achieve this, non-free programs must be\n// allowed to use the library. A more frequent case is that a free\n// library does the same job as widely used non-free libraries. In this\n// case, there is little to gain by limiting the free library to free\n// software only, so we use the Lesser General Public License.\n// .\n// In other cases, permission to use a particular library in non-free\n// programs enables a greater number of people to use a large body of\n// free software. For example, permission to use the GNU C Library in\n// non-free programs enables many more people to use the whole GNU\n// operating system, as well as its variant, the GNU/Linux operating\n// system.\n// .\n// Although the Lesser General Public License is Less protective of the\n// users' freedom, it does ensure that the user of a program that is\n// linked with the Library has the freedom and the wherewithal to run\n// that program using a modified version of the Library.\n// .\n// The precise terms and conditions for copying, distribution and\n// modification follow. Pay close attention to the difference between a\n// \"work based on the library\" and a \"work that uses the library\". The\n// former contains code derived from the library, whereas the latter must\n// be combined with the library in order to run.\n// .\n// GNU LESSER GENERAL PUBLIC LICENSE\n// TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\n// .\n// 0. This License Agreement applies to any software library or other\n// program which contains a notice placed by the copyright holder or\n// other authorized party saying it may be distributed under the terms of\n// this Lesser General Public License (also called \"this License\").\n// Each licensee is addressed as \"you\".\n// .\n// A \"library\" means a collection of software functions and/or data\n// prepared so as to be conveniently linked with application programs\n// (which use some of those functions and data) to form executables.\n// .\n// The \"Library\", below, refers to any such software library or work\n// which has been distributed under these terms. A \"work based on the\n// Library\" means either the Library or any derivative work under\n// copyright law: that is to say, a work containing the Library or a\n// portion of it, either verbatim or with modifications and/or translated\n// straightforwardly into another language. (Hereinafter, translation is\n// included without limitation in the term \"modification\".)\n// .\n// \"Source code\" for a work means the preferred form of the work for\n// making modifications to it. For a library, complete source code means\n// all the source code for all modules it contains, plus any associated\n// interface definition files, plus the scripts used to control compilation\n// and installation of the library.\n// .\n// Activities other than copying, distribution and modification are not\n// covered by this License; they are outside its scope. The act of\n// running a program using the Library is not restricted, and output from\n// such a program is covered only if its contents constitute a work based\n// on the Library (independent of the use of the Library in a tool for\n// writing it). Whether that is true depends on what the Library does\n// and what the program that uses the Library does.\n// \n// 1. You may copy and distribute verbatim copies of the Library's\n// complete source code as you receive it, in any medium, provided that\n// you conspicuously and appropriately publish on each copy an\n// appropriate copyright notice and disclaimer of warranty; keep intact\n// all the notices that refer to this License and to the absence of any\n// warranty; and distribute a copy of this License along with the\n// Library.\n// .\n// You may charge a fee for the physical act of transferring a copy,\n// and you may at your option offer warranty protection in exchange for a\n// fee.\n// .\n// 2. You may modify your copy or copies of the Library or any portion\n// of it, thus forming a work based on the Library, and copy and\n// distribute such modifications or work under the terms of Section 1\n// above, provided that you also meet all of these conditions:\n// .\n// a) The modified work must itself be a software library.\n// .\n// b) You must cause the files modified to carry prominent notices\n// stating that you changed the files and the date of any change.\n// .\n// c) You must cause the whole of the work to be licensed at no\n// charge to all third parties under the terms of this License.\n// .\n// d) If a facility in the modified Library refers to a function or a\n// table of data to be supplied by an application program that uses\n// the facility, other than as an argument passed when the facility\n// is invoked, then you must make a good faith effort to ensure that,\n// in the event an application does not supply such function or\n// table, the facility still operates, and performs whatever part of\n// its purpose remains meaningful.\n// .\n// (For example, a function in a library to compute square roots has\n// a purpose that is entirely well-defined independent of the\n// application. Therefore, Subsection 2d requires that any\n// application-supplied function or table used by this function must\n// be optional: if the application does not supply it, the square\n// root function must still compute square roots.)\n// .\n// These requirements apply to the modified work as a whole. If\n// identifiable sections of that work are not derived from the Library,\n// and can be reasonably considered independent and separate works in\n// themselves, then this License, and its terms, do not apply to those\n// sections when you distribute them as separate works. But when you\n// distribute the same sections as part of a whole which is a work based\n// on the Library, the distribution of the whole must be on the terms of\n// this License, whose permissions for other licensees extend to the\n// entire whole, and thus to each and every part regardless of who wrote\n// it.\n// .\n// Thus, it is not the intent of this section to claim rights or contest\n// your rights to work written entirely by you; rather, the intent is to\n// exercise the right to control the distribution of derivative or\n// collective works based on the Library.\n// .\n// In addition, mere aggregation of another work not based on the Library\n// with the Library (or with a work based on the Library) on a volume of\n// a storage or distribution medium does not bring the other work under\n// the scope of this License.\n// .\n// 3. You may opt to apply the terms of the ordinary GNU General Public\n// License instead of this License to a given copy of the Library. To do\n// this, you must alter all the notices that refer to this License, so\n// that they refer to the ordinary GNU General Public License, version 2,\n// instead of to this License. (If a newer version than version 2 of the\n// ordinary GNU General Public License has appeared, then you can specify\n// that version instead if you wish.) Do not make any other change in\n// these notices.\n// .\n// Once this change is made in a given copy, it is irreversible for\n// that copy, so the ordinary GNU General Public License applies to all\n// subsequent copies and derivative works made from that copy.\n// .\n// This option is useful when you wish to copy part of the code of\n// the Library into a program that is not a library.\n// .\n// 4. You may copy and distribute the Library (or a portion or\n// derivative of it, under Section 2) in object code or executable form\n// under the terms of Sections 1 and 2 above provided that you accompany\n// it with the complete corresponding machine-readable source code, which\n// must be distributed under the terms of Sections 1 and 2 above on a\n// medium customarily used for software interchange.\n// .\n// If distribution of object code is made by offering access to copy\n// from a designated place, then offering equivalent access to copy the\n// source code from the same place satisfies the requirement to\n// distribute the source code, even though third parties are not\n// compelled to copy the source along with the object code.\n// .\n// 5. A program that contains no derivative of any portion of the\n// Library, but is designed to work with the Library by being compiled or\n// linked with it, is called a \"work that uses the Library\". Such a\n// work, in isolation, is not a derivative work of the Library, and\n// therefore falls outside the scope of this License.\n// .\n// However, linking a \"work that uses the Library\" with the Library\n// creates an executable that is a derivative of the Library (because it\n// contains portions of the Library), rather than a \"work that uses the\n// library\". The executable is therefore covered by this License.\n// Section 6 states terms for distribution of such executables.\n// .\n// When a \"work that uses the Library\" uses material from a header file\n// that is part of the Library, the object code for the work may be a\n// derivative work of the Library even though the source code is not.\n// Whether this is true is especially significant if the work can be\n// linked without the Library, or if the work is itself a library. The\n// threshold for this to be true is not precisely defined by law.\n// .\n// If such an object file uses only numerical parameters, data\n// structure layouts and accessors, and small macros and small inline\n// functions (ten lines or less in length), then the use of the object\n// file is unrestricted, regardless of whether it is legally a derivative\n// work. (Executables containing this object code plus portions of the\n// Library will still fall under Section 6.)\n// .\n// Otherwise, if the work is a derivative of the Library, you may\n// distribute the object code for the work under the terms of Section 6.\n// Any executables containing that work also fall under Section 6,\n// whether or not they are linked directly with the Library itself.\n// .\n// 6. As an exception to the Sections above, you may also combine or\n// link a \"work that uses the Library\" with the Library to produce a\n// work containing portions of the Library, and distribute that work\n// under terms of your choice, provided that the terms permit\n// modification of the work for the customer's own use and reverse\n// engineering for debugging such modifications.\n// .\n// You must give prominent notice with each copy of the work that the\n// Library is used in it and that the Library and its use are covered by\n// this License. You must supply a copy of this License. If the work\n// during execution displays copyright notices, you must include the\n// copyright notice for the Library among them, as well as a reference\n// directing the user to the copy of this License. Also, you must do one\n// of these things:\n// .\n// a) Accompany the work with the complete corresponding\n// machine-readable source code for the Library including whatever\n// changes were used in the work (which must be distributed under\n// Sections 1 and 2 above); and, if the work is an executable linked\n// with the Library, with the complete machine-readable \"work that\n// uses the Library\", as object code and/or source code, so that the\n// user can modify the Library and then relink to produce a modified\n// executable containing the modified Library. (It is understood\n// that the user who changes the contents of definitions files in the\n// Library will not necessarily be able to recompile the application\n// to use the modified definitions.)\n// .\n// b) Use a suitable shared library mechanism for linking with the\n// Library. A suitable mechanism is one that (1) uses at run time a\n// copy of the library already present on the user's computer system,\n// rather than copying library functions into the executable, and (2)\n// will operate properly with a modified version of the library, if\n// the user installs one, as long as the modified version is\n// interface-compatible with the version that the work was made with.\n// .\n// c) Accompany the work with a written offer, valid for at\n// least three years, to give the same user the materials\n// specified in Subsection 6a, above, for a charge no more\n// than the cost of performing this distribution.\n// .\n// d) If distribution of the work is made by offering access to copy\n// from a designated place, offer equivalent access to copy the above\n// specified materials from the same place.\n// .\n// e) Verify that the user has already received a copy of these\n// materials or that you have already sent this user a copy.\n// .\n// For an executable, the required form of the \"work that uses the\n// Library\" must include any data and utility programs needed for\n// reproducing the executable from it. However, as a special exception,\n// the materials to be distributed need not include anything that is\n// normally distributed (in either source or binary form) with the major\n// components (compiler, kernel, and so on) of the operating system on\n// which the executable runs, unless that component itself accompanies\n// the executable.\n// .\n// It may happen that this requirement contradicts the license\n// restrictions of other proprietary libraries that do not normally\n// accompany the operating system. Such a contradiction means you cannot\n// use both them and the Library together in an executable that you\n// distribute.\n// .\n// 7. You may place library facilities that are a work based on the\n// Library side-by-side in a single library together with other library\n// facilities not covered by this License, and distribute such a combined\n// library, provided that the separate distribution of the work based on\n// the Library and of the other library facilities is otherwise\n// permitted, and provided that you do these two things:\n// .\n// a) Accompany the combined library with a copy of the same work\n// based on the Library, uncombined with any other library\n// facilities. This must be distributed under the terms of the\n// Sections above.\n// .\n// b) Give prominent notice with the combined library of the fact\n// that part of it is a work based on the Library, and explaining\n// where to find the accompanying uncombined form of the same work.\n// .\n// 8. You may not copy, modify, sublicense, link with, or distribute\n// the Library except as expressly provided under this License. Any\n// attempt otherwise to copy, modify, sublicense, link with, or\n// distribute the Library is void, and will automatically terminate your\n// rights under this License. However, parties who have received copies,\n// or rights, from you under this License will not have their licenses\n// terminated so long as such parties remain in full compliance.\n// .\n// 9. You are not required to accept this License, since you have not\n// signed it. However, nothing else grants you permission to modify or\n// distribute the Library or its derivative works. These actions are\n// prohibited by law if you do not accept this License. Therefore, by\n// modifying or distributing the Library (or any work based on the\n// Library), you indicate your acceptance of this License to do so, and\n// all its terms and conditions for copying, distributing or modifying\n// the Library or works based on it.\n// .\n// 10. Each time you redistribute the Library (or any work based on the\n// Library), the recipient automatically receives a license from the\n// original licensor to copy, distribute, link with or modify the Library\n// subject to these terms and conditions. You may not impose any further\n// restrictions on the recipients' exercise of the rights granted herein.\n// You are not responsible for enforcing compliance by third parties with\n// this License.\n// .\n// 11. If, as a consequence of a court judgment or allegation of patent\n// infringement or for any other reason (not limited to patent issues),\n// conditions are imposed on you (whether by court order, agreement or\n// otherwise) that contradict the conditions of this License, they do not\n// excuse you from the conditions of this License. If you cannot\n// distribute so as to satisfy simultaneously your obligations under this\n// License and any other pertinent obligations, then as a consequence you\n// may not distribute the Library at all. For example, if a patent\n// license would not permit royalty-free redistribution of the Library by\n// all those who receive copies directly or indirectly through you, then\n// the only way you could satisfy both it and this License would be to\n// refrain entirely from distribution of the Library.\n// .\n// If any portion of this section is held invalid or unenforceable under any\n// particular circumstance, the balance of the section is intended to apply,\n// and the section as a whole is intended to apply in other circumstances.\n// .\n// It is not the purpose of this section to induce you to infringe any\n// patents or other property right claims or to contest validity of any\n// such claims; this section has the sole purpose of protecting the\n// integrity of the free software distribution system which is\n// implemented by public license practices. Many people have made\n// generous contributions to the wide range of software distributed\n// through that system in reliance on consistent application of that\n// system; it is up to the author/donor to decide if he or she is willing\n// to distribute software through any other system and a licensee cannot\n// impose that choice.\n// .\n// This section is intended to make thoroughly clear what is believed to\n// be a consequence of the rest of this License.\n// .\n// 12. If the distribution and/or use of the Library is restricted in\n// certain countries either by patents or by copyrighted interfaces, the\n// original copyright holder who places the Library under this License may add\n// an explicit geographical distribution limitation excluding those countries,\n// so that distribution is permitted only in or among countries not thus\n// excluded. In such case, this License incorporates the limitation as if\n// written in the body of this License.\n// .\n// 13. The Free Software Foundation may publish revised and/or new\n// versions of the Lesser General Public License from time to time.\n// Such new versions will be similar in spirit to the present version,\n// but may differ in detail to address new problems or concerns.\n// .\n// Each version is given a distinguishing version number. If the Library\n// specifies a version number of this License which applies to it and\n// \"any later version\", you have the option of following the terms and\n// conditions either of that version or of any later version published by\n// the Free Software Foundation. If the Library does not specify a\n// license version number, you may choose any version ever published by\n// the Free Software Foundation.\n// .\n// 14. If you wish to incorporate parts of the Library into other free\n// programs whose distribution conditions are incompatible with these,\n// write to the author to ask for permission. For software which is\n// copyrighted by the Free Software Foundation, write to the Free\n// Software Foundation; we sometimes make exceptions for this. Our\n// decision will be guided by the two goals of preserving the free status\n// of all derivatives of our free software and of promoting the sharing\n// and reuse of software generally.\n// .\n// NO WARRANTY\n// .\n// 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO\n// WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.\n// EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR\n// OTHER PARTIES PROVIDE THE LIBRARY \"AS IS\" WITHOUT WARRANTY OF ANY\n// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE\n// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n// PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE\n// LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME\n// THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n// .\n// 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN\n// WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY\n// AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU\n// FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR\n// CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE\n// LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING\n// RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A\n// FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF\n// SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH\n// DAMAGES.\n// .\n// END OF TERMS AND CONDITIONS\n// .\n// How to Apply These Terms to Your New Libraries\n// .\n// If you develop a new library, and you want it to be of the greatest\n// possible use to the public, we recommend making it free software that\n// everyone can redistribute and change. You can do so by permitting\n// redistribution under these terms (or, alternatively, under the terms of the\n// ordinary General Public License).\n// .\n// To apply these terms, attach the following notices to the library. It is\n// safest to attach them to the start of each source file to most effectively\n// convey the exclusion of warranty; and each file should have at least the\n// \"copyright\" line and a pointer to where the full notice is found.\n// .\n// \n// Copyright (C) \n// .\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 2.1 of the License, or (at your option) any later version.\n// .\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n// .\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n// .\n// Also add information on how to contact you by electronic and paper mail.\n// .\n// You should also get your employer (if you work as a programmer) or your\n// school, if any, to sign a \"copyright disclaimer\" for the library, if\n// necessary. Here is a sample; alter the names:\n// .\n// Yoyodyne, Inc., hereby disclaims all copyright interest in the\n// library `Frob' (a library for tweaking knobs) written by James Random Hacker.\n// .\n// , 1 April 1990\n// Ty Coon, President of Vice\n// .\n// That's all there is to it!\n\"use strict\";\nvar SubtitlesOctopus = function (options) {\n var supportsWebAssembly = false;\n try {\n if (typeof WebAssembly === \"object\"\n && typeof WebAssembly.instantiate === \"function\") {\n const module = new WebAssembly.Module(Uint8Array.of(0x0, 0x61, 0x73, 0x6d, 0x01, 0x00, 0x00, 0x00));\n if (module instanceof WebAssembly.Module)\n supportsWebAssembly = (new WebAssembly.Instance(module) instanceof WebAssembly.Instance);\n }\n } catch (e) {\n }\n console.log(\"WebAssembly support detected: \" + (supportsWebAssembly ? \"yes\" : \"no\"));\n\n var self = this;\n self.canvas = options.canvas; // HTML canvas element (optional if video specified)\n self.renderMode = options.renderMode || (options.lossyRender ? 'lossy' : 'wasm-blend');\n self.libassMemoryLimit = options.libassMemoryLimit || 0;\n self.libassGlyphLimit = options.libassGlyphLimit || 0;\n self.targetFps = options.targetFps || 24;\n self.prescaleFactor = options.prescaleFactor || 1.0;\n self.prescaleHeightLimit = options.prescaleHeightLimit || 1080;\n self.maxRenderHeight = options.maxRenderHeight || 0; // 0 - no limit\n self.dropAllAnimations = options.dropAllAnimations || false; // attempt to remove all animations as a last ditch effort for displaying on weak hardware; may severly mangle subtitles if enabled\n self.isOurCanvas = false; // (internal) we created canvas and manage it\n self.video = options.video; // HTML video element (optional if canvas specified)\n self.canvasParent = null; // (internal) HTML canvas parent element\n self.fonts = options.fonts || []; // Array with links to fonts used in sub (optional)\n self.availableFonts = options.availableFonts || []; // Object with all available fonts (optional). Key is font name in lower case, value is link: {\"arial\": \"/font1.ttf\"}\n self.fallbackFont = options.fallbackFont || 'default.woff2'; // URL to override fallback font, for example, with a CJK one. Default fallback font is Liberation Sans (Optional)\n self.lazyFileLoading = options.lazyFileLoading || false; // Load fonts in a lazy way. Requires Access-Control-Expose-Headers for Accept-Ranges, Content-Length, and Content-Encoding. If Content-Encoding is compressed, file will be fully fetched instead of just a HEAD request.\n self.onReadyEvent = options.onReady; // Function called when SubtitlesOctopus is ready (optional)\n if (supportsWebAssembly) {\n self.workerUrl = options.workerUrl || 'subtitles-octopus-worker.js'; // Link to WebAssembly worker\n } else {\n self.workerUrl = options.legacyWorkerUrl || 'subtitles-octopus-worker-legacy.js'; // Link to legacy worker\n }\n self.subUrl = options.subUrl; // Link to sub file (optional if subContent specified)\n self.subContent = options.subContent || null; // Sub content (optional if subUrl specified)\n self.onErrorEvent = options.onError; // Function called in case of critical error meaning sub wouldn't be shown and you should use alternative method (for instance it occurs if browser doesn't support web workers).\n self.debug = options.debug || false; // When debug enabled, some performance info printed in console.\n self.lastRenderTime = 0; // (internal) Last time we got some frame from worker\n self.pixelRatio = window.devicePixelRatio || 1; // (internal) Device pixel ratio (for high dpi devices)\n\n self.timeOffset = options.timeOffset || 0; // Time offset would be applied to currentTime from video (option)\n\n self.hasAlphaBug = false;\n\n (function() {\n if (typeof ImageData.prototype.constructor === 'function') {\n try {\n // try actually calling ImageData, as on some browsers it's reported\n // as existing but calling it errors out as \"TypeError: Illegal constructor\"\n new window.ImageData(new Uint8ClampedArray([0, 0, 0, 0]), 1, 1);\n return;\n } catch (e) {\n console.log(\"detected that ImageData is not constructable despite browser saying so\");\n }\n }\n\n var canvas = document.createElement('canvas');\n var ctx = canvas.getContext('2d');\n\n window.ImageData = function () {\n var i = 0;\n if (arguments[0] instanceof Uint8ClampedArray) {\n var data = arguments[i++];\n }\n var width = arguments[i++];\n var height = arguments[i];\n\n var imageData = ctx.createImageData(width, height);\n if (data) imageData.data.set(data);\n return imageData;\n }\n })();\n\n self.workerError = function (error) {\n console.error('Worker error: ', error);\n if (self.onErrorEvent) {\n self.onErrorEvent(error);\n }\n if (!self.debug) {\n self.dispose();\n throw new Error('Worker error: ' + error);\n }\n };\n\n // Not tested for repeated usage yet\n self.init = function () {\n if (!window.Worker) {\n self.workerError('worker not supported');\n return;\n }\n // Worker\n if (!self.worker) {\n self.worker = new Worker(self.workerUrl);\n self.worker.addEventListener('message', self.onWorkerMessage);\n self.worker.addEventListener('error', self.workerError);\n }\n self.workerActive = false;\n self.createCanvas();\n self.setVideo(options.video);\n self.setSubUrl(options.subUrl);\n self.worker.postMessage({\n target: 'worker-init',\n width: self.canvas.width,\n height: self.canvas.height,\n URL: document.URL,\n currentScript: self.workerUrl,\n preMain: true,\n renderMode: self.renderMode,\n subUrl: self.subUrl,\n subContent: self.subContent,\n fonts: self.fonts,\n availableFonts: self.availableFonts,\n fallbackFont: self.fallbackFont,\n lazyFileLoading: self.lazyFileLoading,\n debug: self.debug,\n targetFps: self.targetFps,\n libassMemoryLimit: self.libassMemoryLimit,\n libassGlyphLimit: self.libassGlyphLimit,\n dropAllAnimations: self.dropAllAnimations\n });\n };\n\n self.createCanvas = function () {\n if (!self.canvas) {\n if (self.video) {\n self.isOurCanvas = true;\n self.canvas = document.createElement('canvas');\n self.canvas.className = 'libassjs-canvas';\n self.canvas.style.display = 'none';\n\n self.canvasParent = document.createElement('div');\n self.canvasParent.className = 'libassjs-canvas-parent';\n self.canvasParent.appendChild(self.canvas);\n\n if (self.video.nextSibling) {\n self.video.parentNode.insertBefore(self.canvasParent, self.video.nextSibling);\n }\n else {\n self.video.parentNode.appendChild(self.canvasParent);\n }\n }\n else {\n if (!self.canvas) {\n self.workerError('Don\\'t know where to render: you should give video or canvas in options.');\n }\n }\n }\n self.ctx = self.canvas.getContext('2d');\n self.bufferCanvas = document.createElement('canvas');\n self.bufferCanvasCtx = self.bufferCanvas.getContext('2d');\n\n // test for alpha bug, where e.g. WebKit can render a transparent pixel\n // (with alpha == 0) as non-black which then leads to visual artifacts\n self.bufferCanvas.width = 1;\n self.bufferCanvas.height = 1;\n var testBuf = new Uint8ClampedArray([0, 255, 0, 0]);\n var testImage = new ImageData(testBuf, 1, 1);\n self.bufferCanvasCtx.clearRect(0, 0, 1, 1);\n self.ctx.clearRect(0, 0, 1, 1);\n var prePut = self.ctx.getImageData(0, 0, 1, 1).data;\n self.bufferCanvasCtx.putImageData(testImage, 0, 0);\n self.ctx.drawImage(self.bufferCanvas, 0, 0);\n var postPut = self.ctx.getImageData(0, 0, 1, 1).data;\n self.hasAlphaBug = prePut[1] != postPut[1];\n if (self.hasAlphaBug) {\n console.log(\"Detected a browser having issue with transparent pixels, applying workaround\");\n }\n };\n\n function onTimeUpdate() {\n self.setCurrentTime(self.video.currentTime + self.timeOffset);\n };\n\n function onPlaying() {\n self.setIsPaused(false, self.video.currentTime + self.timeOffset);\n }\n\n function onPause() {\n self.setIsPaused(true, self.video.currentTime + self.timeOffset);\n }\n\n function onSeeking() {\n self.video.removeEventListener('timeupdate', onTimeUpdate, false);\n }\n\n function onSeeked() {\n self.video.addEventListener('timeupdate', onTimeUpdate, false);\n\n var currentTime = self.video.currentTime + self.timeOffset;\n\n self.setCurrentTime(currentTime);\n }\n\n function onRateChange() {\n self.setRate(self.video.playbackRate);\n }\n\n function onWaiting() {\n self.setIsPaused(true, self.video.currentTime + self.timeOffset);\n }\n\n function onLoadedMetadata(e) {\n e.target.removeEventListener(e.type, onLoadedMetadata, false);\n self.resize();\n }\n\n self.setVideo = function (video) {\n self.video = video;\n if (self.video) {\n self.video.addEventListener('timeupdate', onTimeUpdate, false);\n self.video.addEventListener('playing', onPlaying, false);\n self.video.addEventListener('pause', onPause, false);\n self.video.addEventListener('seeking', onSeeking, false);\n self.video.addEventListener('seeked', onSeeked, false);\n self.video.addEventListener('ratechange', onRateChange, false);\n self.video.addEventListener('waiting', onWaiting, false);\n\n document.addEventListener(\"fullscreenchange\", self.resizeWithTimeout, false);\n document.addEventListener(\"mozfullscreenchange\", self.resizeWithTimeout, false);\n document.addEventListener(\"webkitfullscreenchange\", self.resizeWithTimeout, false);\n document.addEventListener(\"msfullscreenchange\", self.resizeWithTimeout, false);\n window.addEventListener(\"resize\", self.resizeWithTimeout, false);\n\n // Support Element Resize Observer\n if (typeof ResizeObserver !== \"undefined\") {\n self.ro = new ResizeObserver(self.resizeWithTimeout);\n self.ro.observe(self.video);\n }\n\n if (self.video.videoWidth > 0) {\n self.resize();\n }\n else {\n self.video.addEventListener('loadedmetadata', onLoadedMetadata, false);\n }\n }\n };\n\n self.getVideoPosition = function () {\n var videoRatio = self.video.videoWidth / self.video.videoHeight;\n var width = self.video.offsetWidth, height = self.video.offsetHeight;\n var elementRatio = width / height;\n var realWidth = width, realHeight = height;\n if (elementRatio > videoRatio) realWidth = Math.floor(height * videoRatio);\n else realHeight = Math.floor(width / videoRatio);\n\n var x = (width - realWidth) / 2;\n var y = (height - realHeight) / 2;\n\n return {\n width: realWidth,\n height: realHeight,\n x: x,\n y: y\n };\n };\n\n self.setSubUrl = function (subUrl) {\n self.subUrl = subUrl;\n };\n\n self.renderFrameData = null;\n function renderFrames() {\n var data = self.renderFramesData;\n var beforeDrawTime = performance.now();\n self.ctx.clearRect(0, 0, self.canvas.width, self.canvas.height);\n for (var i = 0; i < data.canvases.length; i++) {\n var image = data.canvases[i];\n self.bufferCanvas.width = image.w;\n self.bufferCanvas.height = image.h;\n var imageBuffer = new Uint8ClampedArray(image.buffer);\n if (self.hasAlphaBug) {\n for (var j = 3; j < imageBuffer.length; j = j + 4) {\n imageBuffer[j] = (imageBuffer[j] >= 1) ? imageBuffer[j] : 1;\n }\n }\n var imageData = new ImageData(imageBuffer, image.w, image.h);\n self.bufferCanvasCtx.putImageData(imageData, 0, 0);\n self.ctx.drawImage(self.bufferCanvas, image.x, image.y);\n }\n if (self.debug) {\n var drawTime = Math.round(performance.now() - beforeDrawTime);\n var blendTime = data.blendTime;\n if (typeof blendTime !== 'undefined') {\n console.log('render: ' + Math.round(data.spentTime - blendTime) + ' ms, blend: ' + Math.round(blendTime) + ' ms, draw: ' + drawTime + ' ms; TOTAL=' + Math.round(data.spentTime + drawTime) + ' ms');\n } else {\n console.log(Math.round(data.spentTime) + ' ms (+ ' + drawTime + ' ms draw)');\n }\n self.renderStart = performance.now();\n }\n }\n\n /**\n * Lossy Render Mode\n *\n */\n function renderFastFrames() {\n var data = self.renderFramesData;\n var beforeDrawTime = performance.now();\n self.ctx.clearRect(0, 0, self.canvas.width, self.canvas.height);\n for (var i = 0; i < data.bitmaps.length; i++) {\n var image = data.bitmaps[i];\n self.ctx.drawImage(image.bitmap, image.x, image.y);\n }\n if (self.debug) {\n var drawTime = Math.round(performance.now() - beforeDrawTime);\n console.log(data.bitmaps.length + ' bitmaps, libass: ' + Math.round(data.libassTime) + 'ms, decode: ' + Math.round(data.decodeTime) + 'ms, draw: ' + drawTime + 'ms');\n self.renderStart = performance.now();\n }\n }\n\n self.workerActive = false;\n self.frameId = 0;\n self.onWorkerMessage = function (event) {\n //dump('\\nclient got ' + JSON.stringify(event.data).substr(0, 150) + '\\n');\n if (!self.workerActive) {\n self.workerActive = true;\n if (self.onReadyEvent) {\n self.onReadyEvent();\n }\n }\n var data = event.data;\n switch (data.target) {\n case 'stdout': {\n console.log(data.content);\n break;\n }\n case 'console-log': {\n console.log.apply(console, JSON.parse(data.content));\n break;\n }\n case 'console-debug': {\n console.debug.apply(console, JSON.parse(data.content));\n break;\n }\n case 'console-info': {\n console.info.apply(console, JSON.parse(data.content));\n break;\n }\n case 'console-warn': {\n console.warn.apply(console, JSON.parse(data.content));\n break;\n }\n case 'console-error': {\n console.error.apply(console, JSON.parse(data.content));\n break;\n }\n case 'stderr': {\n console.error(data.content);\n break;\n }\n case 'window': {\n window[data.method]();\n break;\n }\n case 'canvas': {\n switch (data.op) {\n case 'getContext': {\n self.ctx = self.canvas.getContext(data.type, data.attributes);\n break;\n }\n case 'resize': {\n self.resize(data.width, data.height);\n break;\n }\n case 'renderCanvas': {\n if (self.lastRenderTime < data.time) {\n self.lastRenderTime = data.time;\n self.renderFramesData = data;\n window.requestAnimationFrame(renderFrames);\n }\n break;\n }\n case 'renderFastCanvas': {\n if (self.lastRenderTime < data.time) {\n self.lastRenderTime = data.time;\n self.renderFramesData = data;\n window.requestAnimationFrame(renderFastFrames);\n }\n break;\n }\n case 'setObjectProperty': {\n self.canvas[data.object][data.property] = data.value;\n break;\n }\n default:\n throw 'eh?';\n }\n break;\n }\n case 'tick': {\n self.frameId = data.id;\n self.worker.postMessage({\n target: 'tock',\n id: self.frameId\n });\n break;\n }\n case 'custom': {\n if (self['onCustomMessage']) {\n self['onCustomMessage'](event);\n } else {\n throw 'Custom message received but client onCustomMessage not implemented.';\n }\n break;\n }\n case 'setimmediate': {\n self.worker.postMessage({\n target: 'setimmediate'\n });\n break;\n }\n case 'get-events': {\n break;\n }\n case 'get-styles': {\n break;\n }\n case 'ready': {\n break;\n }\n default:\n throw 'what? ' + data.target;\n }\n };\n\n function _computeCanvasSize(width, height) {\n var scalefactor = self.prescaleFactor <= 0 ? 1.0 : self.prescaleFactor;\n\n if (height <= 0 || width <= 0) {\n width = 0;\n height = 0;\n } else {\n var sgn = scalefactor < 1 ? -1 : 1;\n var newH = height;\n if (sgn * newH * scalefactor <= sgn * self.prescaleHeightLimit)\n newH *= scalefactor;\n else if (sgn * newH < sgn * self.prescaleHeightLimit)\n newH = self.prescaleHeightLimit;\n\n if (self.maxRenderHeight > 0 && newH > self.maxRenderHeight)\n newH = self.maxRenderHeight;\n\n width *= newH / height;\n height = newH;\n }\n\n return {'width': width, 'height': height};\n }\n\n self.resize = function (width, height, top, left) {\n var videoSize = null;\n top = top || 0;\n left = left || 0;\n if ((!width || !height) && self.video) {\n videoSize = self.getVideoPosition();\n var newSize = _computeCanvasSize(videoSize.width * self.pixelRatio, videoSize.height * self.pixelRatio);\n width = newSize.width;\n height = newSize.height;\n var offset = self.canvasParent.getBoundingClientRect().top - self.video.getBoundingClientRect().top;\n top = videoSize.y - offset;\n left = videoSize.x;\n }\n if (!width || !height) {\n if (!self.video) {\n console.error('width or height is 0. You should specify width & height for resize.');\n }\n return;\n }\n\n\n if (\n self.canvas.width != width ||\n self.canvas.height != height ||\n self.canvas.style.top != top ||\n self.canvas.style.left != left\n ) {\n self.canvas.width = width;\n self.canvas.height = height;\n\n if (videoSize != null) {\n self.canvasParent.style.position = 'relative';\n self.canvas.style.display = 'block';\n self.canvas.style.position = 'absolute';\n self.canvas.style.width = videoSize.width + 'px';\n self.canvas.style.height = videoSize.height + 'px';\n self.canvas.style.top = top + 'px';\n self.canvas.style.left = left + 'px';\n self.canvas.style.pointerEvents = 'none';\n }\n\n self.worker.postMessage({\n target: 'canvas',\n width: self.canvas.width,\n height: self.canvas.height\n });\n }\n };\n\n self.resizeWithTimeout = function () {\n self.resize();\n setTimeout(self.resize, 100);\n };\n\n self.runBenchmark = function () {\n self.worker.postMessage({\n target: 'runBenchmark'\n });\n };\n\n self.customMessage = function (data, options) {\n options = options || {};\n self.worker.postMessage({\n target: 'custom',\n userData: data,\n preMain: options.preMain\n });\n };\n\n self.setCurrentTime = function (currentTime) {\n self.worker.postMessage({\n target: 'video',\n currentTime: currentTime\n });\n };\n\n self.setTrackByUrl = function (url) {\n self.worker.postMessage({\n target: 'set-track-by-url',\n url: url\n });\n };\n\n self.setTrack = function (content) {\n self.worker.postMessage({\n target: 'set-track',\n content: content\n });\n };\n\n self.freeTrack = function (content) {\n self.worker.postMessage({\n target: 'free-track'\n });\n };\n\n\n self.render = self.setCurrentTime;\n\n self.setIsPaused = function (isPaused, currentTime) {\n self.worker.postMessage({\n target: 'video',\n isPaused: isPaused,\n currentTime: currentTime\n });\n };\n\n self.setRate = function (rate) {\n self.worker.postMessage({\n target: 'video',\n rate: rate\n });\n };\n\n self.dispose = function () {\n self.worker.postMessage({\n target: 'destroy'\n });\n\n self.worker.terminate();\n self.worker.removeEventListener('message', self.onWorkerMessage);\n self.worker.removeEventListener('error', self.workerError);\n self.workerActive = false;\n self.worker = null;\n\n // Remove the canvas element to remove residual subtitles rendered on player\n if (self.video) {\n self.video.removeEventListener('timeupdate', onTimeUpdate, false);\n self.video.removeEventListener('playing', onPlaying, false);\n self.video.removeEventListener('pause', onPause, false);\n self.video.removeEventListener('seeking', onSeeking, false);\n self.video.removeEventListener('seeked', onSeeked, false);\n self.video.removeEventListener('ratechange', onRateChange, false);\n self.video.removeEventListener('waiting', onWaiting, false);\n self.video.removeEventListener('loadedmetadata', onLoadedMetadata, false);\n\n document.removeEventListener('fullscreenchange', self.resizeWithTimeout, false);\n document.removeEventListener('mozfullscreenchange', self.resizeWithTimeout, false);\n document.removeEventListener('webkitfullscreenchange', self.resizeWithTimeout, false);\n document.removeEventListener('msfullscreenchange', self.resizeWithTimeout, false);\n window.removeEventListener('resize', self.resizeWithTimeout, false);\n\n self.video.parentNode.removeChild(self.canvasParent);\n\n self.video = null;\n }\n\n if (self.ro) {\n self.ro.disconnect();\n self.ro = null;\n }\n\n self.onCustomMessage = null;\n self.onErrorEvent = null;\n self.onReadyEvent = null;\n };\n\n self.fetchFromWorker = function (workerOptions, onSuccess, onError) {\n try {\n var target = workerOptions['target']\n\n var timeout = setTimeout(function() {\n reject(Error('Error: Timeout while try to fetch ' + target))\n }, 5000)\n\n var resolve = function (event) {\n if (event.data.target == target) {\n onSuccess(event.data)\n self.worker.removeEventListener('message', resolve)\n self.worker.removeEventListener('error', reject)\n clearTimeout(timeout)\n }\n }\n\n var reject = function (event) {\n onError(event)\n self.worker.removeEventListener('message', resolve)\n self.worker.removeEventListener('error', reject)\n clearTimeout(timeout)\n }\n\n self.worker.addEventListener('message', resolve)\n self.worker.addEventListener('error', reject)\n\n self.worker.postMessage(workerOptions)\n } catch (error) {\n onError(error)\n }\n }\n\n self.createEvent = function (event) {\n self.worker.postMessage({\n target: 'create-event',\n event: event\n });\n };\n\n self.getEvents = function (onSuccess, onError) {\n self.fetchFromWorker({\n target: 'get-events'\n }, function(data) {\n onSuccess(data.events)\n }, onError);\n };\n\n self.setEvent = function (event, index) {\n self.worker.postMessage({\n target: 'set-event',\n event: event,\n index: index\n });\n };\n\n self.removeEvent = function (index) {\n self.worker.postMessage({\n target: 'remove-event',\n index: index\n });\n };\n\n self.createStyle = function (style) {\n self.worker.postMessage({\n target: 'create-style',\n style: style\n });\n };\n \n self.getStyles = function (onSuccess, onError) {\n self.fetchFromWorker({\n target: 'get-styles'\n }, function(data) {\n onSuccess(data.styles)\n }, onError);\n };\n\n self.setStyle = function (style, index) {\n self.worker.postMessage({\n target: 'set-style',\n style: style,\n index: index\n });\n };\n\n self.removeStyle = function (index) {\n self.worker.postMessage({\n target: 'remove-style',\n index: index\n });\n };\n\n self.init();\n};\n\nif (typeof SubtitlesOctopusOnLoad == 'function') {\n SubtitlesOctopusOnLoad();\n}\n\nif (typeof exports !== 'undefined') {\n if (typeof module !== 'undefined' && module.exports) {\n exports = module.exports = SubtitlesOctopus\n }\n}\n","exports.interopDefault = function (a) {\n return a && a.__esModule ? a : {default: a};\n};\n\nexports.defineInteropFlag = function (a) {\n Object.defineProperty(a, '__esModule', {value: true});\n};\n\nexports.exportAll = function (source, dest) {\n Object.keys(source).forEach(function (key) {\n if (key === 'default' || key === '__esModule' || dest.hasOwnProperty(key)) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function () {\n return source[key];\n },\n });\n });\n\n return dest;\n};\n\nexports.export = function (dest, destName, get) {\n Object.defineProperty(dest, destName, {\n enumerable: true,\n get: get,\n });\n};\n"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../../../packages/artplayer-plugin-libass/"}
\ No newline at end of file
+{"mappings":"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","sources":["src/index.js","src/adapter.js","node_modules/libass-wasm/dist/js/subtitles-octopus.js","../../node_modules/@parcel/transformer-js/src/esmodule-helpers.js"],"sourcesContent":["import LibassAdapter from './adapter';\n\nexport default function artplayerPluginLibass(option) {\n return (art) => {\n const adapter = new LibassAdapter(art, option);\n return {\n name: 'artplayerPluginLibass',\n libass: adapter.libass,\n visible: adapter.visible,\n init: adapter.init.bind(adapter),\n switch: adapter.switch.bind(adapter),\n show: adapter.show.bind(adapter),\n hide: adapter.hide.bind(adapter),\n destroy: adapter.destroy.bind(adapter),\n };\n };\n}\n\nif (typeof window !== 'undefined') {\n window['artplayerPluginLibass'] = artplayerPluginLibass;\n}\n","import SubtitlesOctopus from \"libass-wasm\"\n\nconst defaultAssSubtitle = `[Script Info]\\nScriptType: v4.00+`\n\nexport default class LibassAdapter {\n constructor(art, option) {\n const { constructor, template } = art\n\n this.art = art\n this.$video = template.$video\n this.$webvtt = template.$subtitle\n this.utils = constructor.utils\n\n this.libass = null\n\n art.once(\"ready\", this.init.bind(this, option))\n }\n\n async init(option) {\n this.#checkWebAssemblySupport()\n\n await this.#createLibass(option)\n\n this.#addEventListeners()\n\n this.art.emit(\"artplayerPluginLibass:init\", this)\n\n // set initial subtitle\n const initialSubtitle = this.art?.option?.subtitle?.url\n if (initialSubtitle && this.utils.getExt(initialSubtitle) === \"ass\") {\n this.switch(initialSubtitle)\n }\n }\n\n switch(url) {\n this.art.emit(\"artplayerPluginLibass:switch\", url)\n\n if (url && this.utils.getExt(url) === \"ass\") {\n this.currentType = \"ass\"\n this.libass.freeTrack()\n this.libass.setTrackByUrl(this.#toAbsoluteUrl(url))\n\n this.visible = this.art.subtitle.show\n } else {\n this.currentType = \"webvtt\"\n this.hide()\n this.libass.freeTrack()\n }\n }\n\n setVisibility(visible) {\n this.visible = visible\n }\n\n setOffset(offset) {\n this.timeOffset = offset\n }\n\n get active() {\n return this.currentType === 'ass'\n }\n\n get visible() {\n if (!this.libass)\n return false\n\n return this.libass.canvasParent.style.display !== \"none\"\n }\n\n set visible(visible) {\n this.art.emit(\"artplayerPluginLibass:visible\", visible)\n\n this.#setVttVisible(!this.active)\n\n if (this.libass.canvasParent) {\n this.libass.canvasParent.style.display = visible ? \"block\" : \"none\"\n\n if (visible) this.libass.resize()\n }\n }\n\n get timeOffset() {\n return this.libass.timeOffset\n }\n\n set timeOffset(offset) {\n this.art.emit(\"artplayerPluginLibass:timeOffset\", offset)\n this.libass.timeOffset = offset\n }\n\n show() {\n this.visible = true\n }\n\n hide() {\n this.visible = false\n }\n\n destroy() {\n this.art.emit(\"artplayerPluginLibass:destroy\")\n\n this.#removeEventListeners()\n\n this.libass.dispose()\n URL.revokeObjectURL(this.workerScriptUrl)\n this.libass = null\n }\n\n async #createLibass(option = {}) {\n if (!option.fallbackFont) {\n return this.utils.errorHandle(option.fallbackFont, 'artplayerPluginLibass: fallbackFont is required')\n }\n\n if (!option.workerUrl) {\n option.workerUrl = 'https://cdnjs.cloudflare.com/ajax/libs/libass-wasm/4.1.0/js/subtitles-octopus-worker.js'\n }\n\n if (option.availableFonts) {\n option.availableFonts = Object\n .entries(option.availableFonts)\n .reduce((acc, [key, value]) => {\n acc[key] = this.#toAbsoluteUrl(value)\n return acc\n }, {})\n }\n\n this.libass = new SubtitlesOctopus({\n subContent: defaultAssSubtitle,\n video: this.$video,\n ...option,\n workerUrl: await this.#loadWorker(option),\n fallbackFont: this.#toAbsoluteUrl(option.fallbackFont),\n fonts: option.fonts?.map((font) => this.#toAbsoluteUrl(font)),\n })\n\n this.libass.canvasParent.className = \"artplayer-plugin-libass\"\n this.libass.canvasParent.style.cssText = `\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n user-select: none;\n pointer-events: none;\n z-index: 20;`\n }\n\n #addEventListeners() {\n this.switchHandler = this.switch.bind(this)\n this.visibleHandler = this.setVisibility.bind(this)\n this.offsetHandler = this.setOffset.bind(this)\n\n this.art.on(\"subtitle\", this.visibleHandler)\n this.art.on('subtitleLoad', this.switchHandler)\n this.art.on(\"subtitleOffset\", this.offsetHandler)\n\n this.art.once(\"destroy\", this.destroy.bind(this))\n }\n\n #removeEventListeners() {\n this.art.off(\"subtitle\", this.visibleHandler)\n this.art.off('subtitleLoad', this.switchHandler)\n this.art.off(\"subtitleOffset\", this.offsetHandler)\n }\n\n #setVttVisible(visible) {\n this.$webvtt.style.visibility = visible ? 'visible' : 'hidden'\n }\n\n #toAbsoluteUrl(url) {\n if (this.#isAbsoluteUrl(url))\n return url\n\n // handle absolute URL when the `Worker` of `BLOB` type loading network resources\n return new URL(url, document.baseURI).toString()\n }\n\n #isAbsoluteUrl(url) {\n return /^https?:\\/\\//.test(url)\n }\n\n #loadWorker({ workerUrl, wasmUrl }) {\n return new Promise((resolve) => {\n fetch(workerUrl)\n .then(res => res.text())\n .then(text => {\n let workerScriptContent = text\n\n workerScriptContent = workerScriptContent.replace(\n /wasmBinaryFile\\s*=\\s*\"(subtitles-octopus-worker\\.wasm)\"/g,\n (_match, wasm) => {\n if (!wasmUrl) {\n wasmUrl = new URL(wasm, workerUrl).toString()\n } else {\n wasmUrl = this.#toAbsoluteUrl(wasmUrl)\n }\n\n return `wasmBinaryFile = \"${wasmUrl}\"`\n }\n )\n\n const workerBlob = new Blob([workerScriptContent], { type: \"text/javascript\" })\n resolve(URL.createObjectURL(workerBlob))\n })\n })\n }\n\n #checkWebAssemblySupport() {\n let supportsWebAssembly = false\n try {\n if (typeof WebAssembly === \"object\" && typeof WebAssembly.instantiate === \"function\") {\n const module = new WebAssembly.Module(Uint8Array.of(0x0, 0x61, 0x73, 0x6d, 0x01, 0x00, 0x00, 0x00))\n if (module instanceof WebAssembly.Module)\n supportsWebAssembly = (new WebAssembly.Instance(module) instanceof WebAssembly.Instance)\n }\n } catch (e) {\n //\n }\n\n this.utils.errorHandle(supportsWebAssembly, \"Browser does not support WebAssembly\")\n }\n}\n","// # The following lists all copyright notices and licenses for the\n// # work contained in JavascriptSubtitlesOctopus per project.\n// \n// # Project: subtitlesoctopus\n// License: Expat\n// Copyright: 2017-2021 JavascriptSubtitlesOctopus contributors\n// \n// # Project: brotli\n// License: Expat\n// Copyright: 2014 Google Inc.\n// 2015 The Chromium Authors.\n// 2016 Google Inc.\n// 2017 Google Inc.\n// 2018 Google Inc.\n// 2015 Google Inc.\n// 2013 Google Inc.\n// 2009, 2010, 2013-2016 by the Brotli Authors\n// 2010 Google Inc.\n// \n// # Project: expat\n// License: Expat\n// Copyright: 2019 Zhongyuan Zhou \n// 2017-2022 Rhodri James \n// 2020 Joe Orton \n// 2016-2019 Sebastian Pipping \n// 2021 Dong-hee Na \n// 2017 Joe Orton \n// 2002 Fred L. Drake, Jr. \n// 2004-2006 Fred L. Drake, Jr. \n// 2017 Sebastian Pipping \n// 2004-2006 Karl Waclawek \n// 2006 Karl Waclawek \n// 2003-2006 Karl Waclawek \n// 2001-2003 Fred L. Drake, Jr. \n// 2000-2004 Fred L. Drake, Jr. \n// 2017 Franek Korta \n// 2001-2004 Fred L. Drake, Jr. \n// 2006-2012 Karl Waclawek \n// 2017 Benbuck Nason \n// 2019 David Loffredo \n// 2021 Tim Bray \n// 2018 Benjamin Peterson \n// 2017 Rhodri James \n// 2002-2005 Karl Waclawek \n// 2016-2020 Sebastian Pipping \n// 2016-2018 Sebastian Pipping \n// 2016 Gilles Espinasse \n// 2007 Karl Waclawek \n// 2002-2016 Karl Waclawek \n// 2001-2006 Fred L. Drake, Jr. \n// 2016 Don Lewis \n// 2000-2017 Expat development team\n// 2002-2004 Fred L. Drake, Jr. \n// 2000 Clark Cooper \n// 2002 Greg Stein \n// 2018 Marco Maggi \n// 2005-2012 Karl Waclawek \n// 2020 Boris Kolpackov \n// 2022 Thijs Schreijer \n// 2017-2019 Sebastian Pipping \n// 2016 Cristian Rodr\\x{00c3}\\x{00ad}guez \n// 2005 Karl Waclawek \n// 1999-2000 Thai Open Source Software Center Ltd\n// 2000-2017 Expat development team / 1997-2000 Thai Open Source Software Center Ltd\n// 2005-2007 Steven Solie \n// 2016-2021 Sebastian Pipping \n// 2005 Fred L. Drake, Jr. \n// 2018 Anton Maklakov \n// 2017 Alexander Bluhm \n// 2016-2022 Sebastian Pipping \n// 1997-2000 Thai Open Source Software Center Ltd\n// 2017-2021 Sebastian Pipping \n// 2002-2009 Karl Waclawek \n// 2002 Karl Waclawek \n// 2004-2009 Karl Waclawek \n// 2020 Tim Gates \n// 2016 Pascal Cuoq \n// 2017 Jos\\x{00c3}\\x{00a9} Guti\\x{00c3}\\x{00a9}rrez de la Concha \n// 2001-2002 Fred L. Drake, Jr. \n// 2002-2006 Karl Waclawek \n// 2000-2005 Fred L. Drake, Jr. \n// 2005-2009 Steven Solie \n// 2018 Yury Gribov \n// 2022 Martin Ettl \n// 2003 Greg Stein \n// 2016-2017 Sebastian Pipping \n// 2020 Kleber Tarc\\x{00c3}\\x{00ad}sio \n// 2001-2002 Greg Stein \n// 2002-2003 Fred L. Drake, Jr. \n// 2005-2006 Karl Waclawek \n// 2016 Thomas Beutlich \n// \n// # Project: freetype\n// License: FTL\n// Copyright: \\x{00c5}\\x{009d}\\x{00c5}\\x{00a5} \\x{00c5}\\x{009d}\\x{00c5}\\x{00a5}\\x{00d1}\\x{008f}\\x{00c3}\\x{00af}\\x{00ef}\\x{00ac}\\x{00af}\\x{00c4}\\x{009f}\")\n// 2009-2013 Adobe Systems Incorporated.\n// 2016-2022 David Turner, Robert Wilhelm, and Werner Lemberg.\n// 2013 Adobe Systems Incorporated.\n// 2004-2022 David Turner, Robert Wilhelm, Werner Lemberg, and George Williams.\n// 2013-2022 Google, Inc.\n// 2018-2022 Armin Hasitzka, David Turner, Robert Wilhelm, and Werner Lemberg.\n// 2007-2014 Adobe Systems Incorporated.\n// 2008-2022 David Turner, Robert Wilhelm, and Werner Lemberg.\n// 2005-2022 Werner Lemberg and Detlef W\\x{00fc}rkner.\n// 2006-2022 David Turner, Robert Wilhelm, and Werner Lemberg.\n// 2007-2022 David Turner, Robert Wilhelm, and Werner Lemberg.\n// 1996-2022 David Turner, Robert Wilhelm, Werner Lemberg and Detlef W\\x{00fc}rkner.\n// 2004-2022 Masatake YAMATO, Redhat K.K,\n// 1996-2022 David Turner, Robert Wilhelm, Werner Lemberg, and Detlef Wuerkner.\n// 1996-2022 David Turner, Robert Wilhelm, and Werner Lemberg\n// 1995-2016 Jean-loup Gailly, Mark Adler\n// 2021-2022 David Turner, Robert Wilhelm, and Werner Lemberg.\n// \\x{00c5}\\x{009d}\\x{00c5}\\x{00a5} \\x{00c5}\\x{009d}\\x{00c5}\\x{00a5}\\x{00d1}\\x{008f}\\x{00c3}\\x{00af}\\x{00ef}\\x{00ac}\\x{00af}\\x{00c4}\\x{009f}\"));\n// 2004-2022 David Turner, Robert Wilhelm, Werner Lemberg and George Williams.\n// 2009-2022 Oran Agra and Mickey Gabel.\n// 2010-2022 David Turner, Robert Wilhelm, and Werner Lemberg.\n// 1995-2017 Jean-loup Gailly\n// 2003 Huw D M Davies for Codeweavers\n// 2013-2014 Adobe Systems Incorporated.\n// 2005-2022 David Turner.\n// 1995-2011, 2016 Mark Adler\n// 2010-2022 Joel Klinghed.\n// 2002-2022 Roberto Alameda.\n// 1996-2022 David Turner, Robert Wilhelm, and Werner Lemberg.\n// 2011-2013 Adobe Systems Incorporated.\n// 2007 Dmitry Timoshkov for Codeweavers\n// 2002-2022 David Turner, Robert Wilhelm, and Werner Lemberg\n// 2013-2022 David Turner, Robert Wilhelm, and Werner Lemberg.\n// 1996-2022 Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg.\n// 1995-2017 Mark Adler\n// 2000-2022 David Turner, Robert Wilhelm, and Werner Lemberg.\n// 2022 David Turner, Robert Wilhelm, Werner Lemberg, and Moazin Khatti.\n// 2006-2013 Adobe Systems Incorporated.\n// 1995-2003, 2010 Mark Adler\n// 2012-2022 David Turner, Robert Wilhelm, and Werner Lemberg.\n// 2007-2022 Rahul Bhalerao , .\n// 2007-2022 David Turner.\n// 2017-2022 David Turner, Robert Wilhelm, and Werner Lemberg.\n// 2008-2022 David Turner, Robert Wilhelm, Werner Lemberg, and suzuki toshiya.\n// 2018-2022 David Turner, Robert Wilhelm, and Werner Lemberg.\n// 1995-2005, 2010 Mark Adler\n// 2005-2022 suzuki toshiya, Masatake YAMATO, Red Hat K.K.,\n// 2020-2022 David Turner, Robert Wilhelm, and Werner Lemberg.\n// 2007-2022 Derek Clegg and Michael Toftdal.\n// \\x{00e1}\\x{00bb}\\x{008b}...): %dn\", \"\\x{00e1}\\x{00ba}\\x{0083}\\x{00ce}\\x{00ad}\\x{00c5}\\x{0082}\\x{00c4}\\x{00ba}\", \"all\", 42);\n// 2019-2022 Nikhil Ramakrishnan, David Turner, Robert Wilhelm, and Werner Lemberg.\n// 2013 Google, Inc.\n// 2004-2022 David Turner, Robert Wilhelm, and Werner Lemberg.\n// 2009-2014 Adobe Systems Incorporated.\n// 2004-2022 Albert Chin-A-Young.\n// 2003-2022 Masatake YAMATO, Redhat K.K.,\n// 2002-2022 David Turner, Robert Wilhelm, and Werner Lemberg.\n// 2007-2013 Adobe Systems Incorporated.\n// 2007-2022 Dereg Clegg and Michael Toftdal.\n// 2003-2022 David Turner, Robert Wilhelm, and Werner Lemberg.\n// 2004-2022 Masatake YAMATO and Redhat K.K.\n// 2004-2022 Masatake YAMATO, Red Hat K.K.,\n// 2001-2022 David Turner, Robert Wilhelm, and Werner Lemberg.\n// 2001, 2012 David Turner, Robert Wilhelm, and Werner Lemberg.\n// 1995-2022 Jean-loup Gailly, Mark Adler\n// 1995-2022 Mark Adler\n// 2004-2019 Mark Adler\n// 1990, 1994, 1998 The Open Group\n// 2005-2022 David Turner, Robert Wilhelm, and Werner Lemberg.\n// 1995-2019 Mark Adler\n// 2018-2022 David Turner, Robert Wilhelm, Dominik R\\x{00c3}\\x{00b6}ttsches, and Werner Lemberg.\n// 2004-2022 suzuki toshiya, Masatake YAMATO, Red Hat K.K.,\n// \n// License: public-domain\n// Copyright: 2001 Alexander Peslyak and it is hereby released to the\n// \n// License: Zlib\n// Copyright: 1995-2022 Jean-loup Gailly and Mark Adler\n// \n// License: Expat\n// Copyright: 2000-2001, 2004 Francesco Zappa Nardelli\n// 2001-2004 Francesco Zappa Nardelli\n// 2003 Francesco Zappa Nardelli\n// 2001-2015 Francesco Zappa Nardelli\n// 2001-2004, 2011 Francesco Zappa Nardelli\n// 2000-2002 Francesco Zappa Nardelli\n// 2000 Computing Research Labs, New Mexico State University\n// 2001-2014 Francesco Zappa Nardelli\n// 2001-2002, 2012 Francesco Zappa Nardelli\n// 2001-2002 Francesco Zappa Nardelli\n// 2001-2008, 2011, 2013-2014 Francesco Zappa Nardelli\n// 2000-2003, 2006, 2010 Francesco Zappa Nardelli\n// 2000-2001, 2003 Francesco Zappa Nardelli\n// 2000-2004, 2006-2011, 2013-2014 Francesco Zappa Nardelli\n// 2000-2010, 2012-2014 Francesco Zappa Nardelli\n// \n// License: BSL-1.0\n// Copyright: 2019 nyorain\n// \n// # Project: fribidi\n// License: LGPL-2.1+\n// Copyright: 1999-2000, 2017 Dov Grobgeld\n// 1999-2000 Dov Grobgeld\n// 2004 Behdad Esfahbod\n// 2001-2002, 2004 Behdad Esfahbod\n// 2009 Behdad Esfahbod\n// 2017 Dov Grobgeld\n// 2004-2005 Behdad Esfahbod\n// 2004 Sharif FarsiWeb, Inc.\n// 2015, 2017 Dov Grobgeld\n// 2005 Behdad Esfahbod\n// 2001 Behdad Esfahbod.\n// 2001-2002 Behdad Esfahbod\n// 2004 Sharif FarsiWeb, Inc\n// \n// # Project: fontconfig\n// License: NTP~disclaimer\n// Copyright: 2002 Keith Packard\n// 2009 Roozbeh Pournader\n// 2000 Tuomas J. Lukka\n// 2006 Keith Packard\n// 2008 Red Hat, Inc.\n// 2000-2007 Keith Packard / 2005 Patrick Lam / 2009 Roozbeh Pournader / 2008,2009 Red Hat, Inc. / 2008 Danilo Šegan / 2012 Google, Inc.\n// 2001 Keith Packard\n// 2012 Google, Inc.\n// 2012 Red Hat, Inc.\n// 2013 Raimund Steger\n// 2008,2009 Red Hat, Inc.\n// 2000-2007 Keith Packard\n// 2005 Patrick Lam\n// 2003 Keith Packard\n// 2020 Zoltan Vandrus\n// \\x{00e6}\\x{0081}\\x{00af} 2010 Behdad Esfahbod\n// 2014 Red Hat, Inc.\n// 2018 Akira TAGOH\n// 2007 Keith Packard\n// \\x{00e6}\\x{0081}\\x{00af} 2006 Keith Packard\n// 2008 Danilo Šegan\n// 2015 Akira TAGOH\n// 2016 Akira TAGOH\n// 2008-2009 Red Hat, Inc.\n// 2000 Keith Packard\n// 2013 Akira TAGOH\n// 2013 Google, Inc.\n// 2010 Behdad Esfahbod\n// \n// License: MIT~old\n// Copyright: 2009-2010 Red Hat, Inc.\n// 2011-2013 Google, Inc.\n// 2007 Chris Wilson\n// \n// License: public-domain\n// Copyright: 2008,2009 Red Hat, Inc.\n// 2009 Roozbeh Pournader\n// 2012 Google, Inc.\n// 2008 Danilo Šegan\n// 2005 Patrick Lam\n// 2000-2007 Keith Packard\n// \n// License: Expat\n// Copyright: 2002-2003 Juliusz Chroboczek\n// \n// # Project: harfbuzz\n// License: NTP~disclaimer\n// Copyright: 2002 Keith Packard\n// 2014 Google, Inc.\n// \n// License: MIT~old\n// Copyright: 2012 Mozilla Foundation.\n// 2004, 2007, 2009 Red Hat, Inc.\n// 2009 Red Hat, Inc.\n// 2015 Google, Inc.\n// 2014 Google, Inc.\n// 2018 Ebrahim Byagowi\n// 2016 Igalia S.L.\n// 2018 Ebrahim Byagowi.\n// 2011 Martin Hosken\n// 2019 Ebrahim Byagowi\n// 1998-2004 David Turner and Werner Lemberg\n// 2020 Ebrahim Byagowi\n// 2013 Red Hat, Inc.\n// 2011-2012 Google, Inc.\n// 2011 SIL International\n// 2018 Khaled Hosny\n// 2018 Google, Inc.\n// 2019-2020 Ebrahim Byagowi\n// 2022 Google, Inc.\n// 2012 Google, Inc.\n// 2017 Google, Inc.\n// 2007-2009 Red Hat, Inc.\n// 2011 Codethink Limited\n// 2013 Google, Inc.\n// 2015-2019 Ebrahim Byagowi\n// 2016 Google, Inc.\n// 2011 Google, Inc.\n// \n// # Project: libass\n// License: public-domain\n// Copyright: 2006-2016 libass contributors\n// \n// License: NTP\n// Copyright: 1994 Sun Microsystems, Inc.\n// 2016 Oleg Oshmyan \n// 1988-1993 The Regents of the University of California.\n// \n// License: ISC\n// Copyright: 2015 Oleg Oshmyan \n// 2011-2014 Yu Zhuohuang \n// 2013 rcombs \n// 2016 Vabishchevich Nikolay \n// 2022 libass contributors\n// 2015 Stephan Vedder \n// 2015 Vabishchevich Nikolay \n// interest in the\n// 2006-2016 libass contributors\n// 2021 libass contributors\n// 2017 Vabishchevich Nikolay \n// 2011 Grigori Goronzy \n// 2010 Grigori Goronzy \n// 2014 Vabishchevich Nikolay \n// 2015 Grigori Goronzy \n// 2013 Stefano Pigozzi \n// 2006 Evgeniy Stepanov \n// 2009 Grigori Goronzy \n// \n// # The following section contains the full license text or\n// # where permitted a shorter notice for all works contained\n// # in JavascriptSubtitlesOctopus listed above\n// #\n// # Note that the shortnames used here are identical to those used by Debian\n// # and will in some cases differ from SPDX identifiers. See below.\n// #\n// # Debian-name | SPDX-name\n// # ---------------+-------------------\n// # MIT~old | MIT-Modern-Variant\n// # Expat | MIT\n// # NTP~disclaimer | (None; it is NTP with a more verbose warranty disclaimer)\n// \n// License: Expat\n// Permission is hereby granted, free of charge, to any person obtaining\n// a copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n// .\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n// .\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// \n// License: FTL\n// Portions of this software are copyright © 2021 The FreeType\n// Project (www.freetype.org). All rights reserved.\n// A copy of the FreeType License can be obtained at\n// https://gitlab.freedesktop.org/freetype/freetype/-/blob/master/docs/FTL.TXT\n// \n// License: ISC\n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n// .\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n// \n// License: MIT~old\n// Permission is hereby granted, without written agreement and without\n// license or royalty fees, to use, copy, modify, and distribute this\n// software and its documentation for any purpose, provided that the\n// above copyright notice and the following two paragraphs appear in\n// all copies of this software.\n// .\n// IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR\n// DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES\n// ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN\n// IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH\n// DAMAGE.\n// .\n// THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,\n// BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n// FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS\n// ON AN \"AS IS\" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO\n// PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS\n// \n// License: NTP\n// Permission to use, copy, modify, and distribute this\n// software and its documentation for any purpose and without\n// fee is hereby granted, provided that the above copyright\n// notice appear in all copies. The University of California\n// makes no representations about the suitability of this\n// software for any purpose. It is provided \"as is\" without\n// express or implied warranty.\n// \n// License: NTP~disclaimer\n// Permission to use, copy, modify, distribute, and sell this software and its\n// documentation for any purpose is hereby granted without fee, provided that\n// the above copyright notice appear in all copies and that both that\n// copyright notice and this permission notice appear in supporting\n// documentation, and that the name of the author(s) not be used in\n// advertising or publicity pertaining to distribution of the software without\n// specific, written prior permission. The authors make no\n// representations about the suitability of this software for any purpose. It\n// is provided \"as is\" without express or implied warranty.\n// .\n// THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,\n// INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO\n// EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR\n// CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,\n// DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER\n// TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n// PERFORMANCE OF THIS SOFTWARE.\n// \n// License: Zlib\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n// .\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n// .\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n// \n// License: BSL-1\n// Boost Software License - Version 1.0 - August 17th, 2003\n// .\n// Permission is hereby granted, free of charge, to any person or organization\n// obtaining a copy of the software and accompanying documentation covered by\n// this license (the \"Software\") to use, reproduce, display, distribute,\n// execute, and transmit the Software, and to prepare derivative works of the\n// Software, and to permit third-parties to whom the Software is furnished to\n// do so, all subject to the following:\n// .\n// The copyright notices in the Software and this entire statement, including\n// the above license grant, this restriction and the following disclaimer,\n// must be included in all copies of the Software, in whole or in part, and\n// all derivative works of the Software, unless such copies or derivative\n// works are solely in the form of machine-executable object code generated by\n// a source language processor.\n// .\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT\n// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE\n// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,\n// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n// DEALINGS IN THE SOFTWARE.\n// \n// License: LGPL-2.1\n// GNU LESSER GENERAL PUBLIC LICENSE\n// Version 2.1, February 1999\n// .\n// Copyright (C) 1991, 1999 Free Software Foundation, Inc.\n// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n// Everyone is permitted to copy and distribute verbatim copies\n// of this license document, but changing it is not allowed.\n// .\n// [This is the first released version of the Lesser GPL. It also counts\n// as the successor of the GNU Library Public License, version 2, hence\n// the version number 2.1.]\n// .\n// Preamble\n// .\n// The licenses for most software are designed to take away your\n// freedom to share and change it. By contrast, the GNU General Public\n// Licenses are intended to guarantee your freedom to share and change\n// free software--to make sure the software is free for all its users.\n// .\n// This license, the Lesser General Public License, applies to some\n// specially designated software packages--typically libraries--of the\n// Free Software Foundation and other authors who decide to use it. You\n// can use it too, but we suggest you first think carefully about whether\n// this license or the ordinary General Public License is the better\n// strategy to use in any particular case, based on the explanations below.\n// .\n// When we speak of free software, we are referring to freedom of use,\n// not price. Our General Public Licenses are designed to make sure that\n// you have the freedom to distribute copies of free software (and charge\n// for this service if you wish); that you receive source code or can get\n// it if you want it; that you can change the software and use pieces of\n// it in new free programs; and that you are informed that you can do\n// these things.\n// .\n// To protect your rights, we need to make restrictions that forbid\n// distributors to deny you these rights or to ask you to surrender these\n// rights. These restrictions translate to certain responsibilities for\n// you if you distribute copies of the library or if you modify it.\n// .\n// For example, if you distribute copies of the library, whether gratis\n// or for a fee, you must give the recipients all the rights that we gave\n// you. You must make sure that they, too, receive or can get the source\n// code. If you link other code with the library, you must provide\n// complete object files to the recipients, so that they can relink them\n// with the library after making changes to the library and recompiling\n// it. And you must show them these terms so they know their rights.\n// .\n// We protect your rights with a two-step method: (1) we copyright the\n// library, and (2) we offer you this license, which gives you legal\n// permission to copy, distribute and/or modify the library.\n// .\n// To protect each distributor, we want to make it very clear that\n// there is no warranty for the free library. Also, if the library is\n// modified by someone else and passed on, the recipients should know\n// that what they have is not the original version, so that the original\n// author's reputation will not be affected by problems that might be\n// introduced by others.\n// .\n// Finally, software patents pose a constant threat to the existence of\n// any free program. We wish to make sure that a company cannot\n// effectively restrict the users of a free program by obtaining a\n// restrictive license from a patent holder. Therefore, we insist that\n// any patent license obtained for a version of the library must be\n// consistent with the full freedom of use specified in this license.\n// .\n// Most GNU software, including some libraries, is covered by the\n// ordinary GNU General Public License. This license, the GNU Lesser\n// General Public License, applies to certain designated libraries, and\n// is quite different from the ordinary General Public License. We use\n// this license for certain libraries in order to permit linking those\n// libraries into non-free programs.\n// .\n// When a program is linked with a library, whether statically or using\n// a shared library, the combination of the two is legally speaking a\n// combined work, a derivative of the original library. The ordinary\n// General Public License therefore permits such linking only if the\n// entire combination fits its criteria of freedom. The Lesser General\n// Public License permits more lax criteria for linking other code with\n// the library.\n// .\n// We call this license the \"Lesser\" General Public License because it\n// does Less to protect the user's freedom than the ordinary General\n// Public License. It also provides other free software developers Less\n// of an advantage over competing non-free programs. These disadvantages\n// are the reason we use the ordinary General Public License for many\n// libraries. However, the Lesser license provides advantages in certain\n// special circumstances.\n// .\n// For example, on rare occasions, there may be a special need to\n// encourage the widest possible use of a certain library, so that it becomes\n// a de-facto standard. To achieve this, non-free programs must be\n// allowed to use the library. A more frequent case is that a free\n// library does the same job as widely used non-free libraries. In this\n// case, there is little to gain by limiting the free library to free\n// software only, so we use the Lesser General Public License.\n// .\n// In other cases, permission to use a particular library in non-free\n// programs enables a greater number of people to use a large body of\n// free software. For example, permission to use the GNU C Library in\n// non-free programs enables many more people to use the whole GNU\n// operating system, as well as its variant, the GNU/Linux operating\n// system.\n// .\n// Although the Lesser General Public License is Less protective of the\n// users' freedom, it does ensure that the user of a program that is\n// linked with the Library has the freedom and the wherewithal to run\n// that program using a modified version of the Library.\n// .\n// The precise terms and conditions for copying, distribution and\n// modification follow. Pay close attention to the difference between a\n// \"work based on the library\" and a \"work that uses the library\". The\n// former contains code derived from the library, whereas the latter must\n// be combined with the library in order to run.\n// .\n// GNU LESSER GENERAL PUBLIC LICENSE\n// TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\n// .\n// 0. This License Agreement applies to any software library or other\n// program which contains a notice placed by the copyright holder or\n// other authorized party saying it may be distributed under the terms of\n// this Lesser General Public License (also called \"this License\").\n// Each licensee is addressed as \"you\".\n// .\n// A \"library\" means a collection of software functions and/or data\n// prepared so as to be conveniently linked with application programs\n// (which use some of those functions and data) to form executables.\n// .\n// The \"Library\", below, refers to any such software library or work\n// which has been distributed under these terms. A \"work based on the\n// Library\" means either the Library or any derivative work under\n// copyright law: that is to say, a work containing the Library or a\n// portion of it, either verbatim or with modifications and/or translated\n// straightforwardly into another language. (Hereinafter, translation is\n// included without limitation in the term \"modification\".)\n// .\n// \"Source code\" for a work means the preferred form of the work for\n// making modifications to it. For a library, complete source code means\n// all the source code for all modules it contains, plus any associated\n// interface definition files, plus the scripts used to control compilation\n// and installation of the library.\n// .\n// Activities other than copying, distribution and modification are not\n// covered by this License; they are outside its scope. The act of\n// running a program using the Library is not restricted, and output from\n// such a program is covered only if its contents constitute a work based\n// on the Library (independent of the use of the Library in a tool for\n// writing it). Whether that is true depends on what the Library does\n// and what the program that uses the Library does.\n// \n// 1. You may copy and distribute verbatim copies of the Library's\n// complete source code as you receive it, in any medium, provided that\n// you conspicuously and appropriately publish on each copy an\n// appropriate copyright notice and disclaimer of warranty; keep intact\n// all the notices that refer to this License and to the absence of any\n// warranty; and distribute a copy of this License along with the\n// Library.\n// .\n// You may charge a fee for the physical act of transferring a copy,\n// and you may at your option offer warranty protection in exchange for a\n// fee.\n// .\n// 2. You may modify your copy or copies of the Library or any portion\n// of it, thus forming a work based on the Library, and copy and\n// distribute such modifications or work under the terms of Section 1\n// above, provided that you also meet all of these conditions:\n// .\n// a) The modified work must itself be a software library.\n// .\n// b) You must cause the files modified to carry prominent notices\n// stating that you changed the files and the date of any change.\n// .\n// c) You must cause the whole of the work to be licensed at no\n// charge to all third parties under the terms of this License.\n// .\n// d) If a facility in the modified Library refers to a function or a\n// table of data to be supplied by an application program that uses\n// the facility, other than as an argument passed when the facility\n// is invoked, then you must make a good faith effort to ensure that,\n// in the event an application does not supply such function or\n// table, the facility still operates, and performs whatever part of\n// its purpose remains meaningful.\n// .\n// (For example, a function in a library to compute square roots has\n// a purpose that is entirely well-defined independent of the\n// application. Therefore, Subsection 2d requires that any\n// application-supplied function or table used by this function must\n// be optional: if the application does not supply it, the square\n// root function must still compute square roots.)\n// .\n// These requirements apply to the modified work as a whole. If\n// identifiable sections of that work are not derived from the Library,\n// and can be reasonably considered independent and separate works in\n// themselves, then this License, and its terms, do not apply to those\n// sections when you distribute them as separate works. But when you\n// distribute the same sections as part of a whole which is a work based\n// on the Library, the distribution of the whole must be on the terms of\n// this License, whose permissions for other licensees extend to the\n// entire whole, and thus to each and every part regardless of who wrote\n// it.\n// .\n// Thus, it is not the intent of this section to claim rights or contest\n// your rights to work written entirely by you; rather, the intent is to\n// exercise the right to control the distribution of derivative or\n// collective works based on the Library.\n// .\n// In addition, mere aggregation of another work not based on the Library\n// with the Library (or with a work based on the Library) on a volume of\n// a storage or distribution medium does not bring the other work under\n// the scope of this License.\n// .\n// 3. You may opt to apply the terms of the ordinary GNU General Public\n// License instead of this License to a given copy of the Library. To do\n// this, you must alter all the notices that refer to this License, so\n// that they refer to the ordinary GNU General Public License, version 2,\n// instead of to this License. (If a newer version than version 2 of the\n// ordinary GNU General Public License has appeared, then you can specify\n// that version instead if you wish.) Do not make any other change in\n// these notices.\n// .\n// Once this change is made in a given copy, it is irreversible for\n// that copy, so the ordinary GNU General Public License applies to all\n// subsequent copies and derivative works made from that copy.\n// .\n// This option is useful when you wish to copy part of the code of\n// the Library into a program that is not a library.\n// .\n// 4. You may copy and distribute the Library (or a portion or\n// derivative of it, under Section 2) in object code or executable form\n// under the terms of Sections 1 and 2 above provided that you accompany\n// it with the complete corresponding machine-readable source code, which\n// must be distributed under the terms of Sections 1 and 2 above on a\n// medium customarily used for software interchange.\n// .\n// If distribution of object code is made by offering access to copy\n// from a designated place, then offering equivalent access to copy the\n// source code from the same place satisfies the requirement to\n// distribute the source code, even though third parties are not\n// compelled to copy the source along with the object code.\n// .\n// 5. A program that contains no derivative of any portion of the\n// Library, but is designed to work with the Library by being compiled or\n// linked with it, is called a \"work that uses the Library\". Such a\n// work, in isolation, is not a derivative work of the Library, and\n// therefore falls outside the scope of this License.\n// .\n// However, linking a \"work that uses the Library\" with the Library\n// creates an executable that is a derivative of the Library (because it\n// contains portions of the Library), rather than a \"work that uses the\n// library\". The executable is therefore covered by this License.\n// Section 6 states terms for distribution of such executables.\n// .\n// When a \"work that uses the Library\" uses material from a header file\n// that is part of the Library, the object code for the work may be a\n// derivative work of the Library even though the source code is not.\n// Whether this is true is especially significant if the work can be\n// linked without the Library, or if the work is itself a library. The\n// threshold for this to be true is not precisely defined by law.\n// .\n// If such an object file uses only numerical parameters, data\n// structure layouts and accessors, and small macros and small inline\n// functions (ten lines or less in length), then the use of the object\n// file is unrestricted, regardless of whether it is legally a derivative\n// work. (Executables containing this object code plus portions of the\n// Library will still fall under Section 6.)\n// .\n// Otherwise, if the work is a derivative of the Library, you may\n// distribute the object code for the work under the terms of Section 6.\n// Any executables containing that work also fall under Section 6,\n// whether or not they are linked directly with the Library itself.\n// .\n// 6. As an exception to the Sections above, you may also combine or\n// link a \"work that uses the Library\" with the Library to produce a\n// work containing portions of the Library, and distribute that work\n// under terms of your choice, provided that the terms permit\n// modification of the work for the customer's own use and reverse\n// engineering for debugging such modifications.\n// .\n// You must give prominent notice with each copy of the work that the\n// Library is used in it and that the Library and its use are covered by\n// this License. You must supply a copy of this License. If the work\n// during execution displays copyright notices, you must include the\n// copyright notice for the Library among them, as well as a reference\n// directing the user to the copy of this License. Also, you must do one\n// of these things:\n// .\n// a) Accompany the work with the complete corresponding\n// machine-readable source code for the Library including whatever\n// changes were used in the work (which must be distributed under\n// Sections 1 and 2 above); and, if the work is an executable linked\n// with the Library, with the complete machine-readable \"work that\n// uses the Library\", as object code and/or source code, so that the\n// user can modify the Library and then relink to produce a modified\n// executable containing the modified Library. (It is understood\n// that the user who changes the contents of definitions files in the\n// Library will not necessarily be able to recompile the application\n// to use the modified definitions.)\n// .\n// b) Use a suitable shared library mechanism for linking with the\n// Library. A suitable mechanism is one that (1) uses at run time a\n// copy of the library already present on the user's computer system,\n// rather than copying library functions into the executable, and (2)\n// will operate properly with a modified version of the library, if\n// the user installs one, as long as the modified version is\n// interface-compatible with the version that the work was made with.\n// .\n// c) Accompany the work with a written offer, valid for at\n// least three years, to give the same user the materials\n// specified in Subsection 6a, above, for a charge no more\n// than the cost of performing this distribution.\n// .\n// d) If distribution of the work is made by offering access to copy\n// from a designated place, offer equivalent access to copy the above\n// specified materials from the same place.\n// .\n// e) Verify that the user has already received a copy of these\n// materials or that you have already sent this user a copy.\n// .\n// For an executable, the required form of the \"work that uses the\n// Library\" must include any data and utility programs needed for\n// reproducing the executable from it. However, as a special exception,\n// the materials to be distributed need not include anything that is\n// normally distributed (in either source or binary form) with the major\n// components (compiler, kernel, and so on) of the operating system on\n// which the executable runs, unless that component itself accompanies\n// the executable.\n// .\n// It may happen that this requirement contradicts the license\n// restrictions of other proprietary libraries that do not normally\n// accompany the operating system. Such a contradiction means you cannot\n// use both them and the Library together in an executable that you\n// distribute.\n// .\n// 7. You may place library facilities that are a work based on the\n// Library side-by-side in a single library together with other library\n// facilities not covered by this License, and distribute such a combined\n// library, provided that the separate distribution of the work based on\n// the Library and of the other library facilities is otherwise\n// permitted, and provided that you do these two things:\n// .\n// a) Accompany the combined library with a copy of the same work\n// based on the Library, uncombined with any other library\n// facilities. This must be distributed under the terms of the\n// Sections above.\n// .\n// b) Give prominent notice with the combined library of the fact\n// that part of it is a work based on the Library, and explaining\n// where to find the accompanying uncombined form of the same work.\n// .\n// 8. You may not copy, modify, sublicense, link with, or distribute\n// the Library except as expressly provided under this License. Any\n// attempt otherwise to copy, modify, sublicense, link with, or\n// distribute the Library is void, and will automatically terminate your\n// rights under this License. However, parties who have received copies,\n// or rights, from you under this License will not have their licenses\n// terminated so long as such parties remain in full compliance.\n// .\n// 9. You are not required to accept this License, since you have not\n// signed it. However, nothing else grants you permission to modify or\n// distribute the Library or its derivative works. These actions are\n// prohibited by law if you do not accept this License. Therefore, by\n// modifying or distributing the Library (or any work based on the\n// Library), you indicate your acceptance of this License to do so, and\n// all its terms and conditions for copying, distributing or modifying\n// the Library or works based on it.\n// .\n// 10. Each time you redistribute the Library (or any work based on the\n// Library), the recipient automatically receives a license from the\n// original licensor to copy, distribute, link with or modify the Library\n// subject to these terms and conditions. You may not impose any further\n// restrictions on the recipients' exercise of the rights granted herein.\n// You are not responsible for enforcing compliance by third parties with\n// this License.\n// .\n// 11. If, as a consequence of a court judgment or allegation of patent\n// infringement or for any other reason (not limited to patent issues),\n// conditions are imposed on you (whether by court order, agreement or\n// otherwise) that contradict the conditions of this License, they do not\n// excuse you from the conditions of this License. If you cannot\n// distribute so as to satisfy simultaneously your obligations under this\n// License and any other pertinent obligations, then as a consequence you\n// may not distribute the Library at all. For example, if a patent\n// license would not permit royalty-free redistribution of the Library by\n// all those who receive copies directly or indirectly through you, then\n// the only way you could satisfy both it and this License would be to\n// refrain entirely from distribution of the Library.\n// .\n// If any portion of this section is held invalid or unenforceable under any\n// particular circumstance, the balance of the section is intended to apply,\n// and the section as a whole is intended to apply in other circumstances.\n// .\n// It is not the purpose of this section to induce you to infringe any\n// patents or other property right claims or to contest validity of any\n// such claims; this section has the sole purpose of protecting the\n// integrity of the free software distribution system which is\n// implemented by public license practices. Many people have made\n// generous contributions to the wide range of software distributed\n// through that system in reliance on consistent application of that\n// system; it is up to the author/donor to decide if he or she is willing\n// to distribute software through any other system and a licensee cannot\n// impose that choice.\n// .\n// This section is intended to make thoroughly clear what is believed to\n// be a consequence of the rest of this License.\n// .\n// 12. If the distribution and/or use of the Library is restricted in\n// certain countries either by patents or by copyrighted interfaces, the\n// original copyright holder who places the Library under this License may add\n// an explicit geographical distribution limitation excluding those countries,\n// so that distribution is permitted only in or among countries not thus\n// excluded. In such case, this License incorporates the limitation as if\n// written in the body of this License.\n// .\n// 13. The Free Software Foundation may publish revised and/or new\n// versions of the Lesser General Public License from time to time.\n// Such new versions will be similar in spirit to the present version,\n// but may differ in detail to address new problems or concerns.\n// .\n// Each version is given a distinguishing version number. If the Library\n// specifies a version number of this License which applies to it and\n// \"any later version\", you have the option of following the terms and\n// conditions either of that version or of any later version published by\n// the Free Software Foundation. If the Library does not specify a\n// license version number, you may choose any version ever published by\n// the Free Software Foundation.\n// .\n// 14. If you wish to incorporate parts of the Library into other free\n// programs whose distribution conditions are incompatible with these,\n// write to the author to ask for permission. For software which is\n// copyrighted by the Free Software Foundation, write to the Free\n// Software Foundation; we sometimes make exceptions for this. Our\n// decision will be guided by the two goals of preserving the free status\n// of all derivatives of our free software and of promoting the sharing\n// and reuse of software generally.\n// .\n// NO WARRANTY\n// .\n// 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO\n// WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.\n// EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR\n// OTHER PARTIES PROVIDE THE LIBRARY \"AS IS\" WITHOUT WARRANTY OF ANY\n// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE\n// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n// PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE\n// LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME\n// THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n// .\n// 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN\n// WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY\n// AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU\n// FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR\n// CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE\n// LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING\n// RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A\n// FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF\n// SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH\n// DAMAGES.\n// .\n// END OF TERMS AND CONDITIONS\n// .\n// How to Apply These Terms to Your New Libraries\n// .\n// If you develop a new library, and you want it to be of the greatest\n// possible use to the public, we recommend making it free software that\n// everyone can redistribute and change. You can do so by permitting\n// redistribution under these terms (or, alternatively, under the terms of the\n// ordinary General Public License).\n// .\n// To apply these terms, attach the following notices to the library. It is\n// safest to attach them to the start of each source file to most effectively\n// convey the exclusion of warranty; and each file should have at least the\n// \"copyright\" line and a pointer to where the full notice is found.\n// .\n// \n// Copyright (C) \n// .\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 2.1 of the License, or (at your option) any later version.\n// .\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n// .\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n// .\n// Also add information on how to contact you by electronic and paper mail.\n// .\n// You should also get your employer (if you work as a programmer) or your\n// school, if any, to sign a \"copyright disclaimer\" for the library, if\n// necessary. Here is a sample; alter the names:\n// .\n// Yoyodyne, Inc., hereby disclaims all copyright interest in the\n// library `Frob' (a library for tweaking knobs) written by James Random Hacker.\n// .\n// , 1 April 1990\n// Ty Coon, President of Vice\n// .\n// That's all there is to it!\n\"use strict\";\nvar SubtitlesOctopus = function (options) {\n var supportsWebAssembly = false;\n try {\n if (typeof WebAssembly === \"object\"\n && typeof WebAssembly.instantiate === \"function\") {\n const module = new WebAssembly.Module(Uint8Array.of(0x0, 0x61, 0x73, 0x6d, 0x01, 0x00, 0x00, 0x00));\n if (module instanceof WebAssembly.Module)\n supportsWebAssembly = (new WebAssembly.Instance(module) instanceof WebAssembly.Instance);\n }\n } catch (e) {\n }\n console.log(\"WebAssembly support detected: \" + (supportsWebAssembly ? \"yes\" : \"no\"));\n\n var self = this;\n self.canvas = options.canvas; // HTML canvas element (optional if video specified)\n self.renderMode = options.renderMode || (options.lossyRender ? 'lossy' : 'wasm-blend');\n self.libassMemoryLimit = options.libassMemoryLimit || 0;\n self.libassGlyphLimit = options.libassGlyphLimit || 0;\n self.targetFps = options.targetFps || 24;\n self.prescaleFactor = options.prescaleFactor || 1.0;\n self.prescaleHeightLimit = options.prescaleHeightLimit || 1080;\n self.maxRenderHeight = options.maxRenderHeight || 0; // 0 - no limit\n self.dropAllAnimations = options.dropAllAnimations || false; // attempt to remove all animations as a last ditch effort for displaying on weak hardware; may severly mangle subtitles if enabled\n self.isOurCanvas = false; // (internal) we created canvas and manage it\n self.video = options.video; // HTML video element (optional if canvas specified)\n self.canvasParent = null; // (internal) HTML canvas parent element\n self.fonts = options.fonts || []; // Array with links to fonts used in sub (optional)\n self.availableFonts = options.availableFonts || []; // Object with all available fonts (optional). Key is font name in lower case, value is link: {\"arial\": \"/font1.ttf\"}\n self.fallbackFont = options.fallbackFont || 'default.woff2'; // URL to override fallback font, for example, with a CJK one. Default fallback font is Liberation Sans (Optional)\n self.lazyFileLoading = options.lazyFileLoading || false; // Load fonts in a lazy way. Requires Access-Control-Expose-Headers for Accept-Ranges, Content-Length, and Content-Encoding. If Content-Encoding is compressed, file will be fully fetched instead of just a HEAD request.\n self.onReadyEvent = options.onReady; // Function called when SubtitlesOctopus is ready (optional)\n if (supportsWebAssembly) {\n self.workerUrl = options.workerUrl || 'subtitles-octopus-worker.js'; // Link to WebAssembly worker\n } else {\n self.workerUrl = options.legacyWorkerUrl || 'subtitles-octopus-worker-legacy.js'; // Link to legacy worker\n }\n self.subUrl = options.subUrl; // Link to sub file (optional if subContent specified)\n self.subContent = options.subContent || null; // Sub content (optional if subUrl specified)\n self.onErrorEvent = options.onError; // Function called in case of critical error meaning sub wouldn't be shown and you should use alternative method (for instance it occurs if browser doesn't support web workers).\n self.debug = options.debug || false; // When debug enabled, some performance info printed in console.\n self.lastRenderTime = 0; // (internal) Last time we got some frame from worker\n self.pixelRatio = window.devicePixelRatio || 1; // (internal) Device pixel ratio (for high dpi devices)\n\n self.timeOffset = options.timeOffset || 0; // Time offset would be applied to currentTime from video (option)\n\n self.hasAlphaBug = false;\n\n (function() {\n if (typeof ImageData.prototype.constructor === 'function') {\n try {\n // try actually calling ImageData, as on some browsers it's reported\n // as existing but calling it errors out as \"TypeError: Illegal constructor\"\n new window.ImageData(new Uint8ClampedArray([0, 0, 0, 0]), 1, 1);\n return;\n } catch (e) {\n console.log(\"detected that ImageData is not constructable despite browser saying so\");\n }\n }\n\n var canvas = document.createElement('canvas');\n var ctx = canvas.getContext('2d');\n\n window.ImageData = function () {\n var i = 0;\n if (arguments[0] instanceof Uint8ClampedArray) {\n var data = arguments[i++];\n }\n var width = arguments[i++];\n var height = arguments[i];\n\n var imageData = ctx.createImageData(width, height);\n if (data) imageData.data.set(data);\n return imageData;\n }\n })();\n\n self.workerError = function (error) {\n console.error('Worker error: ', error);\n if (self.onErrorEvent) {\n self.onErrorEvent(error);\n }\n if (!self.debug) {\n self.dispose();\n throw new Error('Worker error: ' + error);\n }\n };\n\n // Not tested for repeated usage yet\n self.init = function () {\n if (!window.Worker) {\n self.workerError('worker not supported');\n return;\n }\n // Worker\n if (!self.worker) {\n self.worker = new Worker(self.workerUrl);\n self.worker.addEventListener('message', self.onWorkerMessage);\n self.worker.addEventListener('error', self.workerError);\n }\n self.workerActive = false;\n self.createCanvas();\n self.setVideo(options.video);\n self.setSubUrl(options.subUrl);\n self.worker.postMessage({\n target: 'worker-init',\n width: self.canvas.width,\n height: self.canvas.height,\n URL: document.URL,\n currentScript: self.workerUrl,\n preMain: true,\n renderMode: self.renderMode,\n subUrl: self.subUrl,\n subContent: self.subContent,\n fonts: self.fonts,\n availableFonts: self.availableFonts,\n fallbackFont: self.fallbackFont,\n lazyFileLoading: self.lazyFileLoading,\n debug: self.debug,\n targetFps: self.targetFps,\n libassMemoryLimit: self.libassMemoryLimit,\n libassGlyphLimit: self.libassGlyphLimit,\n dropAllAnimations: self.dropAllAnimations\n });\n };\n\n self.createCanvas = function () {\n if (!self.canvas) {\n if (self.video) {\n self.isOurCanvas = true;\n self.canvas = document.createElement('canvas');\n self.canvas.className = 'libassjs-canvas';\n self.canvas.style.display = 'none';\n\n self.canvasParent = document.createElement('div');\n self.canvasParent.className = 'libassjs-canvas-parent';\n self.canvasParent.appendChild(self.canvas);\n\n if (self.video.nextSibling) {\n self.video.parentNode.insertBefore(self.canvasParent, self.video.nextSibling);\n }\n else {\n self.video.parentNode.appendChild(self.canvasParent);\n }\n }\n else {\n if (!self.canvas) {\n self.workerError('Don\\'t know where to render: you should give video or canvas in options.');\n }\n }\n }\n self.ctx = self.canvas.getContext('2d');\n self.bufferCanvas = document.createElement('canvas');\n self.bufferCanvasCtx = self.bufferCanvas.getContext('2d');\n\n // test for alpha bug, where e.g. WebKit can render a transparent pixel\n // (with alpha == 0) as non-black which then leads to visual artifacts\n self.bufferCanvas.width = 1;\n self.bufferCanvas.height = 1;\n var testBuf = new Uint8ClampedArray([0, 255, 0, 0]);\n var testImage = new ImageData(testBuf, 1, 1);\n self.bufferCanvasCtx.clearRect(0, 0, 1, 1);\n self.ctx.clearRect(0, 0, 1, 1);\n var prePut = self.ctx.getImageData(0, 0, 1, 1).data;\n self.bufferCanvasCtx.putImageData(testImage, 0, 0);\n self.ctx.drawImage(self.bufferCanvas, 0, 0);\n var postPut = self.ctx.getImageData(0, 0, 1, 1).data;\n self.hasAlphaBug = prePut[1] != postPut[1];\n if (self.hasAlphaBug) {\n console.log(\"Detected a browser having issue with transparent pixels, applying workaround\");\n }\n };\n\n function onTimeUpdate() {\n self.setCurrentTime(self.video.currentTime + self.timeOffset);\n };\n\n function onPlaying() {\n self.setIsPaused(false, self.video.currentTime + self.timeOffset);\n }\n\n function onPause() {\n self.setIsPaused(true, self.video.currentTime + self.timeOffset);\n }\n\n function onSeeking() {\n self.video.removeEventListener('timeupdate', onTimeUpdate, false);\n }\n\n function onSeeked() {\n self.video.addEventListener('timeupdate', onTimeUpdate, false);\n\n var currentTime = self.video.currentTime + self.timeOffset;\n\n self.setCurrentTime(currentTime);\n }\n\n function onRateChange() {\n self.setRate(self.video.playbackRate);\n }\n\n function onWaiting() {\n self.setIsPaused(true, self.video.currentTime + self.timeOffset);\n }\n\n function onLoadedMetadata(e) {\n e.target.removeEventListener(e.type, onLoadedMetadata, false);\n self.resize();\n }\n\n self.setVideo = function (video) {\n self.video = video;\n if (self.video) {\n self.video.addEventListener('timeupdate', onTimeUpdate, false);\n self.video.addEventListener('playing', onPlaying, false);\n self.video.addEventListener('pause', onPause, false);\n self.video.addEventListener('seeking', onSeeking, false);\n self.video.addEventListener('seeked', onSeeked, false);\n self.video.addEventListener('ratechange', onRateChange, false);\n self.video.addEventListener('waiting', onWaiting, false);\n\n document.addEventListener(\"fullscreenchange\", self.resizeWithTimeout, false);\n document.addEventListener(\"mozfullscreenchange\", self.resizeWithTimeout, false);\n document.addEventListener(\"webkitfullscreenchange\", self.resizeWithTimeout, false);\n document.addEventListener(\"msfullscreenchange\", self.resizeWithTimeout, false);\n window.addEventListener(\"resize\", self.resizeWithTimeout, false);\n\n // Support Element Resize Observer\n if (typeof ResizeObserver !== \"undefined\") {\n self.ro = new ResizeObserver(self.resizeWithTimeout);\n self.ro.observe(self.video);\n }\n\n if (self.video.videoWidth > 0) {\n self.resize();\n }\n else {\n self.video.addEventListener('loadedmetadata', onLoadedMetadata, false);\n }\n }\n };\n\n self.getVideoPosition = function () {\n var videoRatio = self.video.videoWidth / self.video.videoHeight;\n var width = self.video.offsetWidth, height = self.video.offsetHeight;\n var elementRatio = width / height;\n var realWidth = width, realHeight = height;\n if (elementRatio > videoRatio) realWidth = Math.floor(height * videoRatio);\n else realHeight = Math.floor(width / videoRatio);\n\n var x = (width - realWidth) / 2;\n var y = (height - realHeight) / 2;\n\n return {\n width: realWidth,\n height: realHeight,\n x: x,\n y: y\n };\n };\n\n self.setSubUrl = function (subUrl) {\n self.subUrl = subUrl;\n };\n\n self.renderFrameData = null;\n function renderFrames() {\n var data = self.renderFramesData;\n var beforeDrawTime = performance.now();\n self.ctx.clearRect(0, 0, self.canvas.width, self.canvas.height);\n for (var i = 0; i < data.canvases.length; i++) {\n var image = data.canvases[i];\n self.bufferCanvas.width = image.w;\n self.bufferCanvas.height = image.h;\n var imageBuffer = new Uint8ClampedArray(image.buffer);\n if (self.hasAlphaBug) {\n for (var j = 3; j < imageBuffer.length; j = j + 4) {\n imageBuffer[j] = (imageBuffer[j] >= 1) ? imageBuffer[j] : 1;\n }\n }\n var imageData = new ImageData(imageBuffer, image.w, image.h);\n self.bufferCanvasCtx.putImageData(imageData, 0, 0);\n self.ctx.drawImage(self.bufferCanvas, image.x, image.y);\n }\n if (self.debug) {\n var drawTime = Math.round(performance.now() - beforeDrawTime);\n var blendTime = data.blendTime;\n if (typeof blendTime !== 'undefined') {\n console.log('render: ' + Math.round(data.spentTime - blendTime) + ' ms, blend: ' + Math.round(blendTime) + ' ms, draw: ' + drawTime + ' ms; TOTAL=' + Math.round(data.spentTime + drawTime) + ' ms');\n } else {\n console.log(Math.round(data.spentTime) + ' ms (+ ' + drawTime + ' ms draw)');\n }\n self.renderStart = performance.now();\n }\n }\n\n /**\n * Lossy Render Mode\n *\n */\n function renderFastFrames() {\n var data = self.renderFramesData;\n var beforeDrawTime = performance.now();\n self.ctx.clearRect(0, 0, self.canvas.width, self.canvas.height);\n for (var i = 0; i < data.bitmaps.length; i++) {\n var image = data.bitmaps[i];\n self.ctx.drawImage(image.bitmap, image.x, image.y);\n }\n if (self.debug) {\n var drawTime = Math.round(performance.now() - beforeDrawTime);\n console.log(data.bitmaps.length + ' bitmaps, libass: ' + Math.round(data.libassTime) + 'ms, decode: ' + Math.round(data.decodeTime) + 'ms, draw: ' + drawTime + 'ms');\n self.renderStart = performance.now();\n }\n }\n\n self.workerActive = false;\n self.frameId = 0;\n self.onWorkerMessage = function (event) {\n //dump('\\nclient got ' + JSON.stringify(event.data).substr(0, 150) + '\\n');\n if (!self.workerActive) {\n self.workerActive = true;\n if (self.onReadyEvent) {\n self.onReadyEvent();\n }\n }\n var data = event.data;\n switch (data.target) {\n case 'stdout': {\n console.log(data.content);\n break;\n }\n case 'console-log': {\n console.log.apply(console, JSON.parse(data.content));\n break;\n }\n case 'console-debug': {\n console.debug.apply(console, JSON.parse(data.content));\n break;\n }\n case 'console-info': {\n console.info.apply(console, JSON.parse(data.content));\n break;\n }\n case 'console-warn': {\n console.warn.apply(console, JSON.parse(data.content));\n break;\n }\n case 'console-error': {\n console.error.apply(console, JSON.parse(data.content));\n break;\n }\n case 'stderr': {\n console.error(data.content);\n break;\n }\n case 'window': {\n window[data.method]();\n break;\n }\n case 'canvas': {\n switch (data.op) {\n case 'getContext': {\n self.ctx = self.canvas.getContext(data.type, data.attributes);\n break;\n }\n case 'resize': {\n self.resize(data.width, data.height);\n break;\n }\n case 'renderCanvas': {\n if (self.lastRenderTime < data.time) {\n self.lastRenderTime = data.time;\n self.renderFramesData = data;\n window.requestAnimationFrame(renderFrames);\n }\n break;\n }\n case 'renderFastCanvas': {\n if (self.lastRenderTime < data.time) {\n self.lastRenderTime = data.time;\n self.renderFramesData = data;\n window.requestAnimationFrame(renderFastFrames);\n }\n break;\n }\n case 'setObjectProperty': {\n self.canvas[data.object][data.property] = data.value;\n break;\n }\n default:\n throw 'eh?';\n }\n break;\n }\n case 'tick': {\n self.frameId = data.id;\n self.worker.postMessage({\n target: 'tock',\n id: self.frameId\n });\n break;\n }\n case 'custom': {\n if (self['onCustomMessage']) {\n self['onCustomMessage'](event);\n } else {\n throw 'Custom message received but client onCustomMessage not implemented.';\n }\n break;\n }\n case 'setimmediate': {\n self.worker.postMessage({\n target: 'setimmediate'\n });\n break;\n }\n case 'get-events': {\n break;\n }\n case 'get-styles': {\n break;\n }\n case 'ready': {\n break;\n }\n default:\n throw 'what? ' + data.target;\n }\n };\n\n function _computeCanvasSize(width, height) {\n var scalefactor = self.prescaleFactor <= 0 ? 1.0 : self.prescaleFactor;\n\n if (height <= 0 || width <= 0) {\n width = 0;\n height = 0;\n } else {\n var sgn = scalefactor < 1 ? -1 : 1;\n var newH = height;\n if (sgn * newH * scalefactor <= sgn * self.prescaleHeightLimit)\n newH *= scalefactor;\n else if (sgn * newH < sgn * self.prescaleHeightLimit)\n newH = self.prescaleHeightLimit;\n\n if (self.maxRenderHeight > 0 && newH > self.maxRenderHeight)\n newH = self.maxRenderHeight;\n\n width *= newH / height;\n height = newH;\n }\n\n return {'width': width, 'height': height};\n }\n\n self.resize = function (width, height, top, left) {\n var videoSize = null;\n top = top || 0;\n left = left || 0;\n if ((!width || !height) && self.video) {\n videoSize = self.getVideoPosition();\n var newSize = _computeCanvasSize(videoSize.width * self.pixelRatio, videoSize.height * self.pixelRatio);\n width = newSize.width;\n height = newSize.height;\n var offset = self.canvasParent.getBoundingClientRect().top - self.video.getBoundingClientRect().top;\n top = videoSize.y - offset;\n left = videoSize.x;\n }\n if (!width || !height) {\n if (!self.video) {\n console.error('width or height is 0. You should specify width & height for resize.');\n }\n return;\n }\n\n\n if (\n self.canvas.width != width ||\n self.canvas.height != height ||\n self.canvas.style.top != top ||\n self.canvas.style.left != left\n ) {\n self.canvas.width = width;\n self.canvas.height = height;\n\n if (videoSize != null) {\n self.canvasParent.style.position = 'relative';\n self.canvas.style.display = 'block';\n self.canvas.style.position = 'absolute';\n self.canvas.style.width = videoSize.width + 'px';\n self.canvas.style.height = videoSize.height + 'px';\n self.canvas.style.top = top + 'px';\n self.canvas.style.left = left + 'px';\n self.canvas.style.pointerEvents = 'none';\n }\n\n self.worker.postMessage({\n target: 'canvas',\n width: self.canvas.width,\n height: self.canvas.height\n });\n }\n };\n\n self.resizeWithTimeout = function () {\n self.resize();\n setTimeout(self.resize, 100);\n };\n\n self.runBenchmark = function () {\n self.worker.postMessage({\n target: 'runBenchmark'\n });\n };\n\n self.customMessage = function (data, options) {\n options = options || {};\n self.worker.postMessage({\n target: 'custom',\n userData: data,\n preMain: options.preMain\n });\n };\n\n self.setCurrentTime = function (currentTime) {\n self.worker.postMessage({\n target: 'video',\n currentTime: currentTime\n });\n };\n\n self.setTrackByUrl = function (url) {\n self.worker.postMessage({\n target: 'set-track-by-url',\n url: url\n });\n };\n\n self.setTrack = function (content) {\n self.worker.postMessage({\n target: 'set-track',\n content: content\n });\n };\n\n self.freeTrack = function (content) {\n self.worker.postMessage({\n target: 'free-track'\n });\n };\n\n\n self.render = self.setCurrentTime;\n\n self.setIsPaused = function (isPaused, currentTime) {\n self.worker.postMessage({\n target: 'video',\n isPaused: isPaused,\n currentTime: currentTime\n });\n };\n\n self.setRate = function (rate) {\n self.worker.postMessage({\n target: 'video',\n rate: rate\n });\n };\n\n self.dispose = function () {\n self.worker.postMessage({\n target: 'destroy'\n });\n\n self.worker.terminate();\n self.worker.removeEventListener('message', self.onWorkerMessage);\n self.worker.removeEventListener('error', self.workerError);\n self.workerActive = false;\n self.worker = null;\n\n // Remove the canvas element to remove residual subtitles rendered on player\n if (self.video) {\n self.video.removeEventListener('timeupdate', onTimeUpdate, false);\n self.video.removeEventListener('playing', onPlaying, false);\n self.video.removeEventListener('pause', onPause, false);\n self.video.removeEventListener('seeking', onSeeking, false);\n self.video.removeEventListener('seeked', onSeeked, false);\n self.video.removeEventListener('ratechange', onRateChange, false);\n self.video.removeEventListener('waiting', onWaiting, false);\n self.video.removeEventListener('loadedmetadata', onLoadedMetadata, false);\n\n document.removeEventListener('fullscreenchange', self.resizeWithTimeout, false);\n document.removeEventListener('mozfullscreenchange', self.resizeWithTimeout, false);\n document.removeEventListener('webkitfullscreenchange', self.resizeWithTimeout, false);\n document.removeEventListener('msfullscreenchange', self.resizeWithTimeout, false);\n window.removeEventListener('resize', self.resizeWithTimeout, false);\n\n self.video.parentNode.removeChild(self.canvasParent);\n\n self.video = null;\n }\n\n if (self.ro) {\n self.ro.disconnect();\n self.ro = null;\n }\n\n self.onCustomMessage = null;\n self.onErrorEvent = null;\n self.onReadyEvent = null;\n };\n\n self.fetchFromWorker = function (workerOptions, onSuccess, onError) {\n try {\n var target = workerOptions['target']\n\n var timeout = setTimeout(function() {\n reject(Error('Error: Timeout while try to fetch ' + target))\n }, 5000)\n\n var resolve = function (event) {\n if (event.data.target == target) {\n onSuccess(event.data)\n self.worker.removeEventListener('message', resolve)\n self.worker.removeEventListener('error', reject)\n clearTimeout(timeout)\n }\n }\n\n var reject = function (event) {\n onError(event)\n self.worker.removeEventListener('message', resolve)\n self.worker.removeEventListener('error', reject)\n clearTimeout(timeout)\n }\n\n self.worker.addEventListener('message', resolve)\n self.worker.addEventListener('error', reject)\n\n self.worker.postMessage(workerOptions)\n } catch (error) {\n onError(error)\n }\n }\n\n self.createEvent = function (event) {\n self.worker.postMessage({\n target: 'create-event',\n event: event\n });\n };\n\n self.getEvents = function (onSuccess, onError) {\n self.fetchFromWorker({\n target: 'get-events'\n }, function(data) {\n onSuccess(data.events)\n }, onError);\n };\n\n self.setEvent = function (event, index) {\n self.worker.postMessage({\n target: 'set-event',\n event: event,\n index: index\n });\n };\n\n self.removeEvent = function (index) {\n self.worker.postMessage({\n target: 'remove-event',\n index: index\n });\n };\n\n self.createStyle = function (style) {\n self.worker.postMessage({\n target: 'create-style',\n style: style\n });\n };\n \n self.getStyles = function (onSuccess, onError) {\n self.fetchFromWorker({\n target: 'get-styles'\n }, function(data) {\n onSuccess(data.styles)\n }, onError);\n };\n\n self.setStyle = function (style, index) {\n self.worker.postMessage({\n target: 'set-style',\n style: style,\n index: index\n });\n };\n\n self.removeStyle = function (index) {\n self.worker.postMessage({\n target: 'remove-style',\n index: index\n });\n };\n\n self.init();\n};\n\nif (typeof SubtitlesOctopusOnLoad == 'function') {\n SubtitlesOctopusOnLoad();\n}\n\nif (typeof exports !== 'undefined') {\n if (typeof module !== 'undefined' && module.exports) {\n exports = module.exports = SubtitlesOctopus\n }\n}\n","exports.interopDefault = function (a) {\n return a && a.__esModule ? a : {default: a};\n};\n\nexports.defineInteropFlag = function (a) {\n Object.defineProperty(a, '__esModule', {value: true});\n};\n\nexports.exportAll = function (source, dest) {\n Object.keys(source).forEach(function (key) {\n if (key === 'default' || key === '__esModule' || dest.hasOwnProperty(key)) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function () {\n return source[key];\n },\n });\n });\n\n return dest;\n};\n\nexports.export = function (dest, destName, get) {\n Object.defineProperty(dest, destName, {\n enumerable: true,\n get: get,\n });\n};\n"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../../../packages/artplayer-plugin-libass/"}
\ No newline at end of file
diff --git a/packages/artplayer-plugin-libass/src/index.js b/packages/artplayer-plugin-libass/src/index.js
index 048bf4f21..b8b3b99a2 100644
--- a/packages/artplayer-plugin-libass/src/index.js
+++ b/packages/artplayer-plugin-libass/src/index.js
@@ -1,25 +1,8 @@
-import LibassAdapter from './adapter'
-
-function checkVersion(art) {
- const {
- version,
- utils: { errorHandle },
- } = art.constructor
- const arr = version.split('.').map(Number)
- const major = arr[0]
- const minor = arr[1] / 100
- errorHandle(
- major + minor >= 5,
- `Artplayer.js@${version} is not compatible the artplayerPluginLibass@${artplayerPluginLibass.version}. Please update it to version Artplayer.js@5.x.x`,
- )
-}
+import LibassAdapter from './adapter';
export default function artplayerPluginLibass(option) {
return (art) => {
- checkVersion(art)
-
- let adapter = new LibassAdapter(art, option)
-
+ const adapter = new LibassAdapter(art, option);
return {
name: 'artplayerPluginLibass',
libass: adapter.libass,
@@ -29,14 +12,10 @@ export default function artplayerPluginLibass(option) {
show: adapter.show.bind(adapter),
hide: adapter.hide.bind(adapter),
destroy: adapter.destroy.bind(adapter),
- }
- }
+ };
+ };
}
-artplayerPluginLibass.env = process.env.NODE_ENV
-artplayerPluginLibass.version = process.env.APP_VER
-artplayerPluginLibass.build = process.env.BUILD_DATE
-
if (typeof window !== 'undefined') {
- window['artplayerPluginLibass'] = artplayerPluginLibass
+ window['artplayerPluginLibass'] = artplayerPluginLibass;
}