crx-monkey-next 0.2.2 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/main.d.ts +7 -0
- package/dist/client/tsconfig.client.tsbuildinfo +1 -1
- package/dist/node/exports.d.ts +14 -5
- package/dist/node/exports.js +102 -2
- package/dist/node/main.js +570 -504
- package/package.json +1 -1
package/dist/node/main.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import cac from 'cac';
|
|
2
2
|
import sourceMapSupport from 'source-map-support';
|
|
3
3
|
import { injectable, inject, Container } from 'inversify';
|
|
4
|
-
import path, { dirname, resolve,
|
|
4
|
+
import path, { dirname, resolve, isAbsolute, basename } from 'path';
|
|
5
5
|
import fse, { exists } from 'fs-extra';
|
|
6
6
|
import crypto$1 from 'crypto';
|
|
7
7
|
import { fileURLToPath } from 'url';
|
|
@@ -10,15 +10,15 @@ import esbuild from 'esbuild';
|
|
|
10
10
|
import fs, { promises, watch, readFile } from 'fs';
|
|
11
11
|
import chalk from 'chalk';
|
|
12
12
|
import moment from 'moment';
|
|
13
|
-
import
|
|
13
|
+
import { WebSocketServer } from 'ws';
|
|
14
|
+
import express from 'express';
|
|
14
15
|
import consola from 'consola';
|
|
16
|
+
import fsExtra from 'fs-extra/esm';
|
|
15
17
|
import MurmurHash3 from 'murmurhash3js';
|
|
16
18
|
import prettier from 'prettier';
|
|
17
19
|
import { parse, Node } from 'node-html-parser';
|
|
18
|
-
import { WebSocketServer } from 'ws';
|
|
19
|
-
import express from 'express';
|
|
20
20
|
|
|
21
|
-
var version = "0.
|
|
21
|
+
var version = "0.3.0";
|
|
22
22
|
var packageJson = {
|
|
23
23
|
version: version};
|
|
24
24
|
|
|
@@ -298,6 +298,7 @@ const TYPES = {
|
|
|
298
298
|
BuildID: Symbol.for('BuildID'),
|
|
299
299
|
CacheDir: Symbol.for('CacheDir'),
|
|
300
300
|
IsWatch: Symbol.for('IsWatch'),
|
|
301
|
+
Hmr: Symbol.for('Hmr'),
|
|
301
302
|
};
|
|
302
303
|
|
|
303
304
|
/**
|
|
@@ -540,30 +541,474 @@ let Logger = class Logger {
|
|
|
540
541
|
console.log(...[`[${this.getDateNowFormated()}] ${chalk.bgYellow(' CONSOLE ')}`, ...detail]);
|
|
541
542
|
}
|
|
542
543
|
}
|
|
543
|
-
getDateNowFormated() {
|
|
544
|
-
const formattedDate = moment().format('YYYY/MM/DD HH:mm:ss');
|
|
545
|
-
return formattedDate;
|
|
544
|
+
getDateNowFormated() {
|
|
545
|
+
const formattedDate = moment().format('YYYY/MM/DD HH:mm:ss');
|
|
546
|
+
return formattedDate;
|
|
547
|
+
}
|
|
548
|
+
getStack() {
|
|
549
|
+
const error = new Error();
|
|
550
|
+
const stack = error.stack?.split('\n');
|
|
551
|
+
if (stack !== undefined) {
|
|
552
|
+
const str = stack
|
|
553
|
+
.slice(3)
|
|
554
|
+
.map((x) => chalk.gray(x))
|
|
555
|
+
.join('\n');
|
|
556
|
+
return str;
|
|
557
|
+
}
|
|
558
|
+
else {
|
|
559
|
+
return 'Could not get stack trace.';
|
|
560
|
+
}
|
|
561
|
+
}
|
|
562
|
+
};
|
|
563
|
+
Logger = __decorate([
|
|
564
|
+
injectable(),
|
|
565
|
+
__param(0, inject(TYPES.ConfigLoader)),
|
|
566
|
+
__metadata("design:paramtypes", [ConfigLoader])
|
|
567
|
+
], Logger);
|
|
568
|
+
|
|
569
|
+
/**
|
|
570
|
+
* The websocket server of manage auto reload.
|
|
571
|
+
*/
|
|
572
|
+
let SockServer = class SockServer {
|
|
573
|
+
configLoader;
|
|
574
|
+
logger;
|
|
575
|
+
wserver = null;
|
|
576
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
577
|
+
listeners = [];
|
|
578
|
+
_host;
|
|
579
|
+
_port;
|
|
580
|
+
get host() {
|
|
581
|
+
return this._host;
|
|
582
|
+
}
|
|
583
|
+
get port() {
|
|
584
|
+
return this._port;
|
|
585
|
+
}
|
|
586
|
+
/**
|
|
587
|
+
* Start and setup server.
|
|
588
|
+
* @param host
|
|
589
|
+
* @param port
|
|
590
|
+
*/
|
|
591
|
+
constructor(configLoader, logger) {
|
|
592
|
+
this.configLoader = configLoader;
|
|
593
|
+
this.logger = logger;
|
|
594
|
+
const { server: { host, websocket }, } = this.configLoader.useConfig();
|
|
595
|
+
if (host === undefined || websocket === undefined) {
|
|
596
|
+
throw new Error('host or port was undefined');
|
|
597
|
+
}
|
|
598
|
+
this._host = host;
|
|
599
|
+
this._port = websocket;
|
|
600
|
+
//this.setup();
|
|
601
|
+
}
|
|
602
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unnecessary-type-constraint
|
|
603
|
+
addMsgListener(listener) {
|
|
604
|
+
this.listeners.push(listener);
|
|
605
|
+
}
|
|
606
|
+
dispatch(msg) {
|
|
607
|
+
this.listeners.forEach((l) => {
|
|
608
|
+
l(msg);
|
|
609
|
+
});
|
|
610
|
+
}
|
|
611
|
+
setup() {
|
|
612
|
+
this.wserver = new WebSocketServer({
|
|
613
|
+
port: this._port,
|
|
614
|
+
host: this._host,
|
|
615
|
+
});
|
|
616
|
+
this.wserver.addListener('connection', (socket) => {
|
|
617
|
+
this.sendMsg(socket, {
|
|
618
|
+
type: 'connected',
|
|
619
|
+
content: null,
|
|
620
|
+
});
|
|
621
|
+
socket.addEventListener('message', (e) => {
|
|
622
|
+
if (typeof e.data === 'string') {
|
|
623
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
624
|
+
const data = JSON.parse(e.data);
|
|
625
|
+
this.dispatch(data);
|
|
626
|
+
}
|
|
627
|
+
this.sendMsg(socket, {
|
|
628
|
+
type: 'send_ok',
|
|
629
|
+
content: null,
|
|
630
|
+
});
|
|
631
|
+
});
|
|
632
|
+
});
|
|
633
|
+
}
|
|
634
|
+
/**
|
|
635
|
+
* Send reload signal to websocket client.
|
|
636
|
+
* @param token
|
|
637
|
+
*/
|
|
638
|
+
reload(token, data) {
|
|
639
|
+
if (this.wserver === null) {
|
|
640
|
+
throw new Error('Websocket server has never been setuped');
|
|
641
|
+
}
|
|
642
|
+
this.wserver.clients.forEach((client) => {
|
|
643
|
+
this.sendMsg(client, {
|
|
644
|
+
type: 'reload',
|
|
645
|
+
content: { reloadType: token, data },
|
|
646
|
+
});
|
|
647
|
+
});
|
|
648
|
+
this.logger.dispatchDebug(`🔃 Dispatch reload ${chalk.gray('"' + token + '"')}`);
|
|
649
|
+
}
|
|
650
|
+
sendMsg(socket, data) {
|
|
651
|
+
socket.send(JSON.stringify(data));
|
|
652
|
+
}
|
|
653
|
+
dispose() {
|
|
654
|
+
if (this.wserver === null) {
|
|
655
|
+
throw new Error('Websocket server has never been setuped');
|
|
656
|
+
}
|
|
657
|
+
this.wserver.close();
|
|
658
|
+
}
|
|
659
|
+
};
|
|
660
|
+
SockServer = __decorate([
|
|
661
|
+
injectable(),
|
|
662
|
+
__param(0, inject(TYPES.ConfigLoader)),
|
|
663
|
+
__param(1, inject(TYPES.Logger)),
|
|
664
|
+
__metadata("design:paramtypes", [ConfigLoader,
|
|
665
|
+
Logger])
|
|
666
|
+
], SockServer);
|
|
667
|
+
|
|
668
|
+
/*
|
|
669
|
+
/**
|
|
670
|
+
* The server of send to script code.
|
|
671
|
+
*/
|
|
672
|
+
let FileServer = class FileServer {
|
|
673
|
+
configLoader;
|
|
674
|
+
app;
|
|
675
|
+
server = null;
|
|
676
|
+
constructor(configLoader) {
|
|
677
|
+
this.configLoader = configLoader;
|
|
678
|
+
const { server: { host, port }, } = this.configLoader.useConfig();
|
|
679
|
+
if (host === undefined || port === undefined) {
|
|
680
|
+
throw new Error("Server host, port or websocket's port were not specificated");
|
|
681
|
+
}
|
|
682
|
+
this.app = express();
|
|
683
|
+
}
|
|
684
|
+
/**
|
|
685
|
+
* Start server.
|
|
686
|
+
* @returns
|
|
687
|
+
*/
|
|
688
|
+
async start() {
|
|
689
|
+
this.setup();
|
|
690
|
+
const { server: { host, port }, } = this.configLoader.useConfig();
|
|
691
|
+
if (host === undefined || port === undefined) {
|
|
692
|
+
throw new Error("Server host, port or websocket's port were not specificated");
|
|
693
|
+
}
|
|
694
|
+
return new Promise((resolve) => {
|
|
695
|
+
this.server = this.app.listen(port, host, () => {
|
|
696
|
+
resolve(1);
|
|
697
|
+
});
|
|
698
|
+
});
|
|
699
|
+
}
|
|
700
|
+
async dispose() {
|
|
701
|
+
if (this.server === null) {
|
|
702
|
+
throw consola.error(new Error('Dispose can be used after Watch is started'));
|
|
703
|
+
}
|
|
704
|
+
this.server.close();
|
|
705
|
+
this.server = null;
|
|
706
|
+
}
|
|
707
|
+
setup() {
|
|
708
|
+
const { output: { chrome, userjs }, manifest, } = this.configLoader.useConfig();
|
|
709
|
+
if (chrome === undefined || userjs === undefined) {
|
|
710
|
+
throw new Error('');
|
|
711
|
+
}
|
|
712
|
+
this.app.get('/userscript', (req, res) => {
|
|
713
|
+
let filepath = userjs;
|
|
714
|
+
if (!isAbsolute(userjs)) {
|
|
715
|
+
filepath = resolve(dirname(manifest), userjs);
|
|
716
|
+
}
|
|
717
|
+
if (fse.existsSync(filepath)) {
|
|
718
|
+
res.sendFile(filepath);
|
|
719
|
+
}
|
|
720
|
+
else {
|
|
721
|
+
res.send(400);
|
|
722
|
+
}
|
|
723
|
+
});
|
|
724
|
+
this.app.get('/dev.user.js', (req, res) => {
|
|
725
|
+
let filepath = userjs;
|
|
726
|
+
if (!isAbsolute(userjs)) {
|
|
727
|
+
filepath = resolve(dirname(manifest), dirname(userjs), 'dev.user.js');
|
|
728
|
+
}
|
|
729
|
+
if (fse.existsSync(filepath)) {
|
|
730
|
+
res.sendFile(filepath);
|
|
731
|
+
}
|
|
732
|
+
else {
|
|
733
|
+
res.send(400);
|
|
734
|
+
}
|
|
735
|
+
});
|
|
736
|
+
}
|
|
737
|
+
};
|
|
738
|
+
FileServer = __decorate([
|
|
739
|
+
injectable(),
|
|
740
|
+
__param(0, inject(TYPES.ConfigLoader)),
|
|
741
|
+
__metadata("design:paramtypes", [ConfigLoader])
|
|
742
|
+
], FileServer);
|
|
743
|
+
|
|
744
|
+
/**
|
|
745
|
+
* Get all messages each language in a locale dir in the project.
|
|
746
|
+
* @param key
|
|
747
|
+
* @returns All messages each language.
|
|
748
|
+
*/
|
|
749
|
+
async function geti18nMessages(key) {
|
|
750
|
+
const result = { en: key };
|
|
751
|
+
const match = key.match(/__MSG_(.*)__/);
|
|
752
|
+
if (match !== null) {
|
|
753
|
+
const i18nKey = match[1];
|
|
754
|
+
const localesPath = getlocalesPath();
|
|
755
|
+
if (fsExtra.pathExistsSync(localesPath)) {
|
|
756
|
+
const langKeys = getEnableLangs(localesPath);
|
|
757
|
+
await Promise.all(langKeys.map(async (langKey) => {
|
|
758
|
+
const msg = await getMessage(langKey, i18nKey);
|
|
759
|
+
if (msg !== null) {
|
|
760
|
+
result[langKey] = msg;
|
|
761
|
+
}
|
|
762
|
+
}));
|
|
763
|
+
}
|
|
764
|
+
}
|
|
765
|
+
return result;
|
|
766
|
+
}
|
|
767
|
+
/**
|
|
768
|
+
* Get a message in a locale dir in the project.
|
|
769
|
+
* @param key
|
|
770
|
+
* @returns A message
|
|
771
|
+
*/
|
|
772
|
+
async function getMessage(langKey, key) {
|
|
773
|
+
const localesPath = getlocalesPath();
|
|
774
|
+
const messagesJsonPath = path.resolve(localesPath, langKey, 'messages.json');
|
|
775
|
+
const messagesJson = await fsExtra.readJSON(messagesJsonPath);
|
|
776
|
+
const message = messagesJson[key].message;
|
|
777
|
+
if (message !== undefined) {
|
|
778
|
+
return message;
|
|
779
|
+
}
|
|
780
|
+
else {
|
|
781
|
+
return null;
|
|
782
|
+
}
|
|
783
|
+
}
|
|
784
|
+
/**
|
|
785
|
+
* Get exist languages in a locale dir in the project.
|
|
786
|
+
* @param localesPath
|
|
787
|
+
* @returns Exist languages in a locale dir in the project.
|
|
788
|
+
*/
|
|
789
|
+
function getEnableLangs(localesPath) {
|
|
790
|
+
const langs = fs.readdirSync(localesPath);
|
|
791
|
+
if (!langs.includes('en')) {
|
|
792
|
+
throw consola.error(new Error('There is no en directory in the _locales directory.'));
|
|
793
|
+
}
|
|
794
|
+
return langs;
|
|
795
|
+
}
|
|
796
|
+
function getlocalesPath() {
|
|
797
|
+
const config = container.get(TYPES.ConfigLoader).useConfig();
|
|
798
|
+
const dir = path.dirname(config.manifest);
|
|
799
|
+
return path.resolve(dir, '_locales');
|
|
800
|
+
}
|
|
801
|
+
/**
|
|
802
|
+
* Copy a locales dir in the src to dist in the project.
|
|
803
|
+
*/
|
|
804
|
+
async function copyLocales() {
|
|
805
|
+
const localesPath = getlocalesPath();
|
|
806
|
+
const config = container.get(TYPES.ConfigLoader).useConfig();
|
|
807
|
+
if ((await fsExtra.pathExists(localesPath)) && config.output.chrome !== undefined) {
|
|
808
|
+
await fsExtra.copy(localesPath, path.join(config.output.chrome, '_locales'));
|
|
809
|
+
}
|
|
810
|
+
}
|
|
811
|
+
|
|
812
|
+
/**
|
|
813
|
+
* Create post-build manifest from original manifest
|
|
814
|
+
*/
|
|
815
|
+
let ManifestFactory = class ManifestFactory {
|
|
816
|
+
manifestLoader;
|
|
817
|
+
rawManifest;
|
|
818
|
+
workspace;
|
|
819
|
+
definedCustomKeysByCrxMonkeyInContentScrpt = [
|
|
820
|
+
'use_isolated_connection',
|
|
821
|
+
'userscript_direct_inject',
|
|
822
|
+
'trusted_inject',
|
|
823
|
+
];
|
|
824
|
+
constructor(manifestLoader) {
|
|
825
|
+
this.manifestLoader = manifestLoader;
|
|
826
|
+
this.rawManifest = this.manifestLoader.useManifest();
|
|
827
|
+
this.workspace = structuredClone(this.rawManifest);
|
|
828
|
+
}
|
|
829
|
+
/**
|
|
830
|
+
* Reload manifest from loader.
|
|
831
|
+
*/
|
|
832
|
+
initialize() {
|
|
833
|
+
this.rawManifest = this.manifestLoader.useManifest();
|
|
834
|
+
this.workspace = structuredClone(this.rawManifest);
|
|
835
|
+
}
|
|
836
|
+
/**
|
|
837
|
+
* Extension Name -> [Dev] Extension Name
|
|
838
|
+
*/
|
|
839
|
+
enableDevMode() {
|
|
840
|
+
const i18nNameMatch = this.workspace.name.match(/__MSG_(.*)__/);
|
|
841
|
+
if (i18nNameMatch !== null) {
|
|
842
|
+
getMessage('en', i18nNameMatch[1]).then((msg) => {
|
|
843
|
+
if (msg !== null) {
|
|
844
|
+
this.workspace.name = '[Dev] ' + msg;
|
|
845
|
+
}
|
|
846
|
+
});
|
|
847
|
+
}
|
|
848
|
+
else {
|
|
849
|
+
this.workspace.name = '[Dev] ' + this.workspace.name;
|
|
850
|
+
}
|
|
851
|
+
}
|
|
852
|
+
/**
|
|
853
|
+
* Output the current manifest data.
|
|
854
|
+
* @returns
|
|
855
|
+
*/
|
|
856
|
+
getWorkspace() {
|
|
857
|
+
return this.absorbCustomKeys(this.workspace);
|
|
858
|
+
}
|
|
859
|
+
/**
|
|
860
|
+
* Get manifest data absorbed defined custom keys by crx-monkey.
|
|
861
|
+
* @returns
|
|
862
|
+
*/
|
|
863
|
+
getResult() {
|
|
864
|
+
return this.absorbCustomKeys(this.workspace);
|
|
865
|
+
}
|
|
866
|
+
resolve(sourcePath, targetPath) {
|
|
867
|
+
// sw
|
|
868
|
+
if (this.workspace.background !== undefined &&
|
|
869
|
+
this.workspace.background.service_worker === sourcePath) {
|
|
870
|
+
this.workspace.background = {
|
|
871
|
+
...this.workspace.background,
|
|
872
|
+
service_worker: targetPath,
|
|
873
|
+
};
|
|
874
|
+
}
|
|
875
|
+
// popup
|
|
876
|
+
if (this.workspace.action !== undefined && this.workspace.action.default_popup === sourcePath) {
|
|
877
|
+
this.workspace.action = {
|
|
878
|
+
...this.workspace.action,
|
|
879
|
+
default_popup: targetPath,
|
|
880
|
+
};
|
|
881
|
+
}
|
|
882
|
+
if (this.workspace.content_scripts !== undefined) {
|
|
883
|
+
// content js
|
|
884
|
+
this.workspace.content_scripts.forEach((script) => {
|
|
885
|
+
if (script.js !== undefined) {
|
|
886
|
+
script.js = script.js.map((js) => {
|
|
887
|
+
if (js === sourcePath) {
|
|
888
|
+
return targetPath;
|
|
889
|
+
}
|
|
890
|
+
else {
|
|
891
|
+
return js;
|
|
892
|
+
}
|
|
893
|
+
});
|
|
894
|
+
}
|
|
895
|
+
// content css
|
|
896
|
+
if (script.css !== undefined) {
|
|
897
|
+
script.css = script.css.map((css) => {
|
|
898
|
+
if (css === sourcePath) {
|
|
899
|
+
return targetPath;
|
|
900
|
+
}
|
|
901
|
+
else {
|
|
902
|
+
return css;
|
|
903
|
+
}
|
|
904
|
+
});
|
|
905
|
+
}
|
|
906
|
+
});
|
|
907
|
+
}
|
|
908
|
+
// Icons
|
|
909
|
+
const icons = structuredClone(this.workspace.icons);
|
|
910
|
+
if (icons !== undefined) {
|
|
911
|
+
const newIcons = {
|
|
912
|
+
...icons,
|
|
913
|
+
};
|
|
914
|
+
Object.keys(icons).forEach((size) => {
|
|
915
|
+
const sizeN = size;
|
|
916
|
+
const icon = icons[sizeN];
|
|
917
|
+
if (icon === sourcePath) {
|
|
918
|
+
newIcons[sizeN] = targetPath;
|
|
919
|
+
}
|
|
920
|
+
});
|
|
921
|
+
this.workspace.icons = newIcons;
|
|
922
|
+
}
|
|
923
|
+
}
|
|
924
|
+
addContentScript(js, css, matches, world = 'ISOLATED', run_at = undefined) {
|
|
925
|
+
if (this.workspace.content_scripts !== undefined) {
|
|
926
|
+
this.workspace.content_scripts.push({
|
|
927
|
+
matches,
|
|
928
|
+
js,
|
|
929
|
+
css,
|
|
930
|
+
world,
|
|
931
|
+
run_at,
|
|
932
|
+
});
|
|
933
|
+
}
|
|
934
|
+
}
|
|
935
|
+
absorbCustomKeys(original) {
|
|
936
|
+
const result = structuredClone(original);
|
|
937
|
+
if (original.content_scripts !== undefined && result.content_scripts !== undefined) {
|
|
938
|
+
original.content_scripts.forEach((content_script, index) => {
|
|
939
|
+
Object.keys(content_script).forEach((key) => {
|
|
940
|
+
if (this.definedCustomKeysByCrxMonkeyInContentScrpt.includes(key)) {
|
|
941
|
+
if (result.content_scripts !== undefined) {
|
|
942
|
+
delete result.content_scripts[index][key];
|
|
943
|
+
}
|
|
944
|
+
}
|
|
945
|
+
});
|
|
946
|
+
});
|
|
947
|
+
}
|
|
948
|
+
return result;
|
|
949
|
+
}
|
|
950
|
+
setCsp(value) {
|
|
951
|
+
if (this.workspace.content_security_policy === undefined) {
|
|
952
|
+
this.workspace.content_security_policy = {
|
|
953
|
+
extension_pages: value,
|
|
954
|
+
};
|
|
955
|
+
}
|
|
956
|
+
else {
|
|
957
|
+
this.workspace.content_security_policy.extension_pages = value;
|
|
958
|
+
}
|
|
959
|
+
}
|
|
960
|
+
};
|
|
961
|
+
ManifestFactory = __decorate([
|
|
962
|
+
injectable(),
|
|
963
|
+
__param(0, inject(TYPES.ManifestLoader)),
|
|
964
|
+
__metadata("design:paramtypes", [ManifestLoader])
|
|
965
|
+
], ManifestFactory);
|
|
966
|
+
|
|
967
|
+
let HMR = class HMR {
|
|
968
|
+
sockServer;
|
|
969
|
+
fileServer;
|
|
970
|
+
manifestFactory;
|
|
971
|
+
configLoader;
|
|
972
|
+
constructor(sockServer, fileServer, manifestFactory, configLoader) {
|
|
973
|
+
this.sockServer = sockServer;
|
|
974
|
+
this.fileServer = fileServer;
|
|
975
|
+
this.manifestFactory = manifestFactory;
|
|
976
|
+
this.configLoader = configLoader;
|
|
977
|
+
}
|
|
978
|
+
enable() {
|
|
979
|
+
this.manifestFactory.setCsp("script-src 'self'; script-src-elem 'self'");
|
|
546
980
|
}
|
|
547
|
-
|
|
548
|
-
const
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
const str = stack
|
|
552
|
-
.slice(3)
|
|
553
|
-
.map((x) => chalk.gray(x))
|
|
554
|
-
.join('\n');
|
|
555
|
-
return str;
|
|
556
|
-
}
|
|
557
|
-
else {
|
|
558
|
-
return 'Could not get stack trace.';
|
|
981
|
+
async dispatchResult(entry, buildResult) {
|
|
982
|
+
const { output: { chrome }, } = this.configLoader.useConfig();
|
|
983
|
+
if (chrome === undefined) {
|
|
984
|
+
throw new Error('chrome');
|
|
559
985
|
}
|
|
986
|
+
const cacheFileName = this.getCacheFileName(entry);
|
|
987
|
+
await fse.outputFile(resolve(chrome, cacheFileName), buildResult);
|
|
988
|
+
this.sockServer.reload('HMR_' + entry, {
|
|
989
|
+
js: cacheFileName,
|
|
990
|
+
});
|
|
991
|
+
}
|
|
992
|
+
getCacheFileName(entry) {
|
|
993
|
+
const endemicHash = MurmurHash3.x86.hash32(entry).toString();
|
|
994
|
+
const cacheFileName = `hmr_cache_${endemicHash}.js`;
|
|
995
|
+
return cacheFileName;
|
|
996
|
+
}
|
|
997
|
+
get websocketAddress() {
|
|
998
|
+
return `ws://${this.sockServer.host}:${this.sockServer.port}`;
|
|
560
999
|
}
|
|
561
1000
|
};
|
|
562
|
-
|
|
1001
|
+
HMR = __decorate([
|
|
563
1002
|
injectable(),
|
|
564
|
-
__param(0, inject(TYPES.
|
|
565
|
-
|
|
566
|
-
|
|
1003
|
+
__param(0, inject(TYPES.SockServer)),
|
|
1004
|
+
__param(1, inject(TYPES.FileServer)),
|
|
1005
|
+
__param(2, inject(TYPES.ManifestFactory)),
|
|
1006
|
+
__param(3, inject(TYPES.ConfigLoader)),
|
|
1007
|
+
__metadata("design:paramtypes", [SockServer,
|
|
1008
|
+
FileServer,
|
|
1009
|
+
ManifestFactory,
|
|
1010
|
+
ConfigLoader])
|
|
1011
|
+
], HMR);
|
|
567
1012
|
|
|
568
1013
|
/**
|
|
569
1014
|
* Manage all bundler
|
|
@@ -571,13 +1016,18 @@ Logger = __decorate([
|
|
|
571
1016
|
let CrxmBundler = class CrxmBundler {
|
|
572
1017
|
configLoader;
|
|
573
1018
|
logger;
|
|
1019
|
+
_hmr;
|
|
574
1020
|
_targets = {};
|
|
575
1021
|
_compileResults = {};
|
|
576
1022
|
watchers = [];
|
|
577
1023
|
updateHandlers = [];
|
|
578
|
-
constructor(configLoader, logger) {
|
|
1024
|
+
constructor(configLoader, logger, _hmr) {
|
|
579
1025
|
this.configLoader = configLoader;
|
|
580
1026
|
this.logger = logger;
|
|
1027
|
+
this._hmr = _hmr;
|
|
1028
|
+
}
|
|
1029
|
+
get hmr() {
|
|
1030
|
+
return this._hmr;
|
|
581
1031
|
}
|
|
582
1032
|
get compileResults() {
|
|
583
1033
|
return this._compileResults;
|
|
@@ -754,8 +1204,10 @@ CrxmBundler = __decorate([
|
|
|
754
1204
|
injectable(),
|
|
755
1205
|
__param(0, inject(TYPES.ConfigLoader)),
|
|
756
1206
|
__param(1, inject(TYPES.Logger)),
|
|
1207
|
+
__param(2, inject(TYPES.Hmr)),
|
|
757
1208
|
__metadata("design:paramtypes", [ConfigLoader,
|
|
758
|
-
Logger
|
|
1209
|
+
Logger,
|
|
1210
|
+
HMR])
|
|
759
1211
|
], CrxmBundler);
|
|
760
1212
|
|
|
761
1213
|
/**
|
|
@@ -892,219 +1344,6 @@ Watcher = __decorate([
|
|
|
892
1344
|
Logger])
|
|
893
1345
|
], Watcher);
|
|
894
1346
|
|
|
895
|
-
/**
|
|
896
|
-
* Get all messages each language in a locale dir in the project.
|
|
897
|
-
* @param key
|
|
898
|
-
* @returns All messages each language.
|
|
899
|
-
*/
|
|
900
|
-
async function geti18nMessages(key) {
|
|
901
|
-
const result = { en: key };
|
|
902
|
-
const match = key.match(/__MSG_(.*)__/);
|
|
903
|
-
if (match !== null) {
|
|
904
|
-
const i18nKey = match[1];
|
|
905
|
-
const localesPath = getlocalesPath();
|
|
906
|
-
if (fsExtra.pathExistsSync(localesPath)) {
|
|
907
|
-
const langKeys = getEnableLangs(localesPath);
|
|
908
|
-
await Promise.all(langKeys.map(async (langKey) => {
|
|
909
|
-
const msg = await getMessage(langKey, i18nKey);
|
|
910
|
-
if (msg !== null) {
|
|
911
|
-
result[langKey] = msg;
|
|
912
|
-
}
|
|
913
|
-
}));
|
|
914
|
-
}
|
|
915
|
-
}
|
|
916
|
-
return result;
|
|
917
|
-
}
|
|
918
|
-
/**
|
|
919
|
-
* Get a message in a locale dir in the project.
|
|
920
|
-
* @param key
|
|
921
|
-
* @returns A message
|
|
922
|
-
*/
|
|
923
|
-
async function getMessage(langKey, key) {
|
|
924
|
-
const localesPath = getlocalesPath();
|
|
925
|
-
const messagesJsonPath = path.resolve(localesPath, langKey, 'messages.json');
|
|
926
|
-
const messagesJson = await fsExtra.readJSON(messagesJsonPath);
|
|
927
|
-
const message = messagesJson[key].message;
|
|
928
|
-
if (message !== undefined) {
|
|
929
|
-
return message;
|
|
930
|
-
}
|
|
931
|
-
else {
|
|
932
|
-
return null;
|
|
933
|
-
}
|
|
934
|
-
}
|
|
935
|
-
/**
|
|
936
|
-
* Get exist languages in a locale dir in the project.
|
|
937
|
-
* @param localesPath
|
|
938
|
-
* @returns Exist languages in a locale dir in the project.
|
|
939
|
-
*/
|
|
940
|
-
function getEnableLangs(localesPath) {
|
|
941
|
-
const langs = fs.readdirSync(localesPath);
|
|
942
|
-
if (!langs.includes('en')) {
|
|
943
|
-
throw consola.error(new Error('There is no en directory in the _locales directory.'));
|
|
944
|
-
}
|
|
945
|
-
return langs;
|
|
946
|
-
}
|
|
947
|
-
function getlocalesPath() {
|
|
948
|
-
const config = container.get(TYPES.ConfigLoader).useConfig();
|
|
949
|
-
const dir = path.dirname(config.manifest);
|
|
950
|
-
return path.resolve(dir, '_locales');
|
|
951
|
-
}
|
|
952
|
-
/**
|
|
953
|
-
* Copy a locales dir in the src to dist in the project.
|
|
954
|
-
*/
|
|
955
|
-
async function copyLocales() {
|
|
956
|
-
const localesPath = getlocalesPath();
|
|
957
|
-
const config = container.get(TYPES.ConfigLoader).useConfig();
|
|
958
|
-
if ((await fsExtra.pathExists(localesPath)) && config.output.chrome !== undefined) {
|
|
959
|
-
await fsExtra.copy(localesPath, path.join(config.output.chrome, '_locales'));
|
|
960
|
-
}
|
|
961
|
-
}
|
|
962
|
-
|
|
963
|
-
/**
|
|
964
|
-
* Create post-build manifest from original manifest
|
|
965
|
-
*/
|
|
966
|
-
let ManifestFactory = class ManifestFactory {
|
|
967
|
-
manifestLoader;
|
|
968
|
-
rawManifest;
|
|
969
|
-
workspace;
|
|
970
|
-
definedCustomKeysByCrxMonkeyInContentScrpt = [
|
|
971
|
-
'use_isolated_connection',
|
|
972
|
-
'userscript_direct_inject',
|
|
973
|
-
'trusted_inject',
|
|
974
|
-
];
|
|
975
|
-
constructor(manifestLoader) {
|
|
976
|
-
this.manifestLoader = manifestLoader;
|
|
977
|
-
this.rawManifest = this.manifestLoader.useManifest();
|
|
978
|
-
this.workspace = structuredClone(this.rawManifest);
|
|
979
|
-
}
|
|
980
|
-
/**
|
|
981
|
-
* Reload manifest from loader.
|
|
982
|
-
*/
|
|
983
|
-
initialize() {
|
|
984
|
-
this.rawManifest = this.manifestLoader.useManifest();
|
|
985
|
-
this.workspace = structuredClone(this.rawManifest);
|
|
986
|
-
}
|
|
987
|
-
/**
|
|
988
|
-
* Extension Name -> [Dev] Extension Name
|
|
989
|
-
*/
|
|
990
|
-
enableDevMode() {
|
|
991
|
-
const i18nNameMatch = this.workspace.name.match(/__MSG_(.*)__/);
|
|
992
|
-
if (i18nNameMatch !== null) {
|
|
993
|
-
getMessage('en', i18nNameMatch[1]).then((msg) => {
|
|
994
|
-
if (msg !== null) {
|
|
995
|
-
this.workspace.name = '[Dev] ' + msg;
|
|
996
|
-
}
|
|
997
|
-
});
|
|
998
|
-
}
|
|
999
|
-
else {
|
|
1000
|
-
this.workspace.name = '[Dev] ' + this.workspace.name;
|
|
1001
|
-
}
|
|
1002
|
-
}
|
|
1003
|
-
/**
|
|
1004
|
-
* Output the current manifest data.
|
|
1005
|
-
* @returns
|
|
1006
|
-
*/
|
|
1007
|
-
getWorkspace() {
|
|
1008
|
-
return this.absorbCustomKeys(this.workspace);
|
|
1009
|
-
}
|
|
1010
|
-
/**
|
|
1011
|
-
* Get manifest data absorbed defined custom keys by crx-monkey.
|
|
1012
|
-
* @returns
|
|
1013
|
-
*/
|
|
1014
|
-
getResult() {
|
|
1015
|
-
return this.absorbCustomKeys(this.workspace);
|
|
1016
|
-
}
|
|
1017
|
-
resolve(sourcePath, targetPath) {
|
|
1018
|
-
// sw
|
|
1019
|
-
if (this.workspace.background !== undefined &&
|
|
1020
|
-
this.workspace.background.service_worker === sourcePath) {
|
|
1021
|
-
this.workspace.background = {
|
|
1022
|
-
...this.workspace.background,
|
|
1023
|
-
service_worker: targetPath,
|
|
1024
|
-
};
|
|
1025
|
-
}
|
|
1026
|
-
// popup
|
|
1027
|
-
if (this.workspace.action !== undefined && this.workspace.action.default_popup === sourcePath) {
|
|
1028
|
-
this.workspace.action = {
|
|
1029
|
-
...this.workspace.action,
|
|
1030
|
-
default_popup: targetPath,
|
|
1031
|
-
};
|
|
1032
|
-
}
|
|
1033
|
-
if (this.workspace.content_scripts !== undefined) {
|
|
1034
|
-
// content js
|
|
1035
|
-
this.workspace.content_scripts.forEach((script) => {
|
|
1036
|
-
if (script.js !== undefined) {
|
|
1037
|
-
script.js = script.js.map((js) => {
|
|
1038
|
-
if (js === sourcePath) {
|
|
1039
|
-
return targetPath;
|
|
1040
|
-
}
|
|
1041
|
-
else {
|
|
1042
|
-
return js;
|
|
1043
|
-
}
|
|
1044
|
-
});
|
|
1045
|
-
}
|
|
1046
|
-
// content css
|
|
1047
|
-
if (script.css !== undefined) {
|
|
1048
|
-
script.css = script.css.map((css) => {
|
|
1049
|
-
if (css === sourcePath) {
|
|
1050
|
-
return targetPath;
|
|
1051
|
-
}
|
|
1052
|
-
else {
|
|
1053
|
-
return css;
|
|
1054
|
-
}
|
|
1055
|
-
});
|
|
1056
|
-
}
|
|
1057
|
-
});
|
|
1058
|
-
}
|
|
1059
|
-
// Icons
|
|
1060
|
-
const icons = structuredClone(this.workspace.icons);
|
|
1061
|
-
if (icons !== undefined) {
|
|
1062
|
-
const newIcons = {
|
|
1063
|
-
...icons,
|
|
1064
|
-
};
|
|
1065
|
-
Object.keys(icons).forEach((size) => {
|
|
1066
|
-
const sizeN = size;
|
|
1067
|
-
const icon = icons[sizeN];
|
|
1068
|
-
if (icon === sourcePath) {
|
|
1069
|
-
newIcons[sizeN] = targetPath;
|
|
1070
|
-
}
|
|
1071
|
-
});
|
|
1072
|
-
this.workspace.icons = newIcons;
|
|
1073
|
-
}
|
|
1074
|
-
}
|
|
1075
|
-
addContentScript(js, css, matches, world = 'ISOLATED', run_at = undefined) {
|
|
1076
|
-
if (this.workspace.content_scripts !== undefined) {
|
|
1077
|
-
this.workspace.content_scripts.push({
|
|
1078
|
-
matches,
|
|
1079
|
-
js,
|
|
1080
|
-
css,
|
|
1081
|
-
world,
|
|
1082
|
-
run_at,
|
|
1083
|
-
});
|
|
1084
|
-
}
|
|
1085
|
-
}
|
|
1086
|
-
absorbCustomKeys(original) {
|
|
1087
|
-
const result = structuredClone(original);
|
|
1088
|
-
if (original.content_scripts !== undefined && result.content_scripts !== undefined) {
|
|
1089
|
-
original.content_scripts.forEach((content_script, index) => {
|
|
1090
|
-
Object.keys(content_script).forEach((key) => {
|
|
1091
|
-
if (this.definedCustomKeysByCrxMonkeyInContentScrpt.includes(key)) {
|
|
1092
|
-
if (result.content_scripts !== undefined) {
|
|
1093
|
-
delete result.content_scripts[index][key];
|
|
1094
|
-
}
|
|
1095
|
-
}
|
|
1096
|
-
});
|
|
1097
|
-
});
|
|
1098
|
-
}
|
|
1099
|
-
return result;
|
|
1100
|
-
}
|
|
1101
|
-
};
|
|
1102
|
-
ManifestFactory = __decorate([
|
|
1103
|
-
injectable(),
|
|
1104
|
-
__param(0, inject(TYPES.ManifestLoader)),
|
|
1105
|
-
__metadata("design:paramtypes", [ManifestLoader])
|
|
1106
|
-
], ManifestFactory);
|
|
1107
|
-
|
|
1108
1347
|
class Codeblock {
|
|
1109
1348
|
_filePath;
|
|
1110
1349
|
_content;
|
|
@@ -1535,7 +1774,7 @@ function developSw(host, sockPort) {
|
|
|
1535
1774
|
websocket.addEventListener('message', ({ data }) => {
|
|
1536
1775
|
const response = JSON.parse(data);
|
|
1537
1776
|
if (response.type === 'reload') {
|
|
1538
|
-
switch (response.content) {
|
|
1777
|
+
switch (response.content.reloadType) {
|
|
1539
1778
|
case 'RELOAD_CONTENT_SCRIPT':
|
|
1540
1779
|
case 'RELOAD_SW':
|
|
1541
1780
|
case 'RELOAD_CSS':
|
|
@@ -1564,7 +1803,7 @@ function userjs(host, port, websocketPort, bindGM, disableSock, buildId, popup,
|
|
|
1564
1803
|
websocket.addEventListener('message', ({ data }) => {
|
|
1565
1804
|
const { type, content } = JSON.parse(data);
|
|
1566
1805
|
if (type === 'reload') {
|
|
1567
|
-
switch (content) {
|
|
1806
|
+
switch (content.reloadType) {
|
|
1568
1807
|
case 'RELOAD_CSS':
|
|
1569
1808
|
case 'RELOAD_CONTENT_SCRIPT':
|
|
1570
1809
|
console.log('[crxm] reloading...');
|
|
@@ -1710,7 +1949,7 @@ function developmentContentScript(crxContentBuildId, host, websocketPort) {
|
|
|
1710
1949
|
websocket.addEventListener('message', ({ data }) => {
|
|
1711
1950
|
const response = JSON.parse(data);
|
|
1712
1951
|
if (response.type === 'reload') {
|
|
1713
|
-
switch (response.content) {
|
|
1952
|
+
switch (response.content.reloadType) {
|
|
1714
1953
|
case 'RELOAD_CSS':
|
|
1715
1954
|
case 'RELOAD_CONTENT_SCRIPT':
|
|
1716
1955
|
setTimeout(() => {
|
|
@@ -1771,6 +2010,44 @@ function developmentContentScript(crxContentBuildId, host, websocketPort) {
|
|
|
1771
2010
|
});
|
|
1772
2011
|
}
|
|
1773
2012
|
|
|
2013
|
+
/**
|
|
2014
|
+
* Nice visibility stack trace.
|
|
2015
|
+
* @param e
|
|
2016
|
+
*/
|
|
2017
|
+
function errorHandler(e) {
|
|
2018
|
+
const logger = container.get(TYPES.Logger); /*
|
|
2019
|
+
dispatchErr(`${chalk.bgRed(` CRXM ${e.name} `)} ${chalk.bold(e.message)}`);
|
|
2020
|
+
|
|
2021
|
+
const stack = e.stack?.split('\n');
|
|
2022
|
+
stack?.shift();
|
|
2023
|
+
console.error(stack?.map((l) => chalk.gray(l)).join('\n'));*/
|
|
2024
|
+
const msg = `❌ ${chalk.bold(e.name + ':')} ${chalk.bold(e.message)}`;
|
|
2025
|
+
const stack = e.stack?.split('\n');
|
|
2026
|
+
stack?.shift();
|
|
2027
|
+
const stackStr = stack?.map((l) => chalk.gray(l)).join('\n');
|
|
2028
|
+
logger.dispatchErr(msg, stackStr);
|
|
2029
|
+
}
|
|
2030
|
+
/**
|
|
2031
|
+
* Stringify a function that binded args.
|
|
2032
|
+
* @param target function
|
|
2033
|
+
* @param args args
|
|
2034
|
+
* @returns A function stringified.
|
|
2035
|
+
*/
|
|
2036
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
2037
|
+
function stringifyFunction(target, args) {
|
|
2038
|
+
const raw = target.toString();
|
|
2039
|
+
const newArgs = args.map((arg) => {
|
|
2040
|
+
if (typeof arg === 'string') {
|
|
2041
|
+
return `'${arg}'`;
|
|
2042
|
+
}
|
|
2043
|
+
else {
|
|
2044
|
+
return String(arg);
|
|
2045
|
+
}
|
|
2046
|
+
});
|
|
2047
|
+
const code = `(${raw})(${newArgs.join(', ')});`;
|
|
2048
|
+
return code;
|
|
2049
|
+
}
|
|
2050
|
+
|
|
1774
2051
|
let CreateDevClient = class CreateDevClient {
|
|
1775
2052
|
configLoader;
|
|
1776
2053
|
bundler;
|
|
@@ -1856,26 +2133,6 @@ CreateDevClient = __decorate([
|
|
|
1856
2133
|
UserscriptHeaderFactory,
|
|
1857
2134
|
ManifestFactory, String, Object])
|
|
1858
2135
|
], CreateDevClient);
|
|
1859
|
-
/**
|
|
1860
|
-
* Stringify a function that binded args.
|
|
1861
|
-
* @param target function
|
|
1862
|
-
* @param args args
|
|
1863
|
-
* @returns A function stringified.
|
|
1864
|
-
*/
|
|
1865
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1866
|
-
function stringifyFunction(target, args) {
|
|
1867
|
-
const raw = target.toString();
|
|
1868
|
-
const newArgs = args.map((arg) => {
|
|
1869
|
-
if (typeof arg === 'string') {
|
|
1870
|
-
return `'${arg}'`;
|
|
1871
|
-
}
|
|
1872
|
-
else {
|
|
1873
|
-
return String(arg);
|
|
1874
|
-
}
|
|
1875
|
-
});
|
|
1876
|
-
const code = `(${raw})(${newArgs.join(', ')});`;
|
|
1877
|
-
return code;
|
|
1878
|
-
}
|
|
1879
2136
|
|
|
1880
2137
|
function isolatedConnector(crxContentBuildId, config) {
|
|
1881
2138
|
const messageListeners = {};
|
|
@@ -2024,6 +2281,7 @@ let Popup = class Popup {
|
|
|
2024
2281
|
};
|
|
2025
2282
|
entry = null;
|
|
2026
2283
|
diff = null;
|
|
2284
|
+
scriptReplaces = [];
|
|
2027
2285
|
constructor(bundler, manifestFactory, configLoader, logger) {
|
|
2028
2286
|
this.bundler = bundler;
|
|
2029
2287
|
this.manifestFactory = manifestFactory;
|
|
@@ -2111,7 +2369,8 @@ let Popup = class Popup {
|
|
|
2111
2369
|
this.applyCssForUserjsPopup();
|
|
2112
2370
|
await this.injectEncodedAssetesToInline();
|
|
2113
2371
|
const data = this.parser.userjs.toString();
|
|
2114
|
-
|
|
2372
|
+
const replaced = this.replaceRealScript(data);
|
|
2373
|
+
return replaced;
|
|
2115
2374
|
}
|
|
2116
2375
|
/**
|
|
2117
2376
|
* Register the style to be specified for the userjs popup
|
|
@@ -2163,39 +2422,6 @@ let Popup = class Popup {
|
|
|
2163
2422
|
};
|
|
2164
2423
|
});
|
|
2165
2424
|
}
|
|
2166
|
-
/**
|
|
2167
|
-
* Output resources used in the extension popup
|
|
2168
|
-
*/
|
|
2169
|
-
async outputExtensionResources() {
|
|
2170
|
-
await Promise.all(this.syncResults.map(async ({ hash, entry }) => {
|
|
2171
|
-
const target = this.bundler.targets[hash];
|
|
2172
|
-
let result = this.bundler.compileResults[hash];
|
|
2173
|
-
if (result === undefined) {
|
|
2174
|
-
await this.bundler.compileForce(hash);
|
|
2175
|
-
result = this.bundler.compileResults[hash];
|
|
2176
|
-
if (result === undefined) {
|
|
2177
|
-
throw new Error(`The result of "${hash}" is undefined.\nEntryPoint: "${target.entryPoint}"`);
|
|
2178
|
-
}
|
|
2179
|
-
}
|
|
2180
|
-
if (target.flag === 'html_script' || target.flag === 'html_href') {
|
|
2181
|
-
const extChanged = target.flag === 'html_script'
|
|
2182
|
-
? this.changeExt(target.entryPoint, 'js')
|
|
2183
|
-
: this.changeExt(target.entryPoint, 'css');
|
|
2184
|
-
const endemicHash = MurmurHash3.x86.hash32(target.entryPoint).toString();
|
|
2185
|
-
const fileName = endemicHash + '_' + extChanged;
|
|
2186
|
-
const outputPath = resolve(this.outputDir, fileName);
|
|
2187
|
-
await fse.outputFile(outputPath, result);
|
|
2188
|
-
this.logger.dispatchDebug(`👋 An asset loaded by popup has been outputed. ${chalk.gray(`"${target.entryPoint}" -> "${outputPath}"`)}`);
|
|
2189
|
-
if (target.flag === 'html_script') {
|
|
2190
|
-
this.resolveAttr(entry, fileName, 'script', 'src', this.parser.extension);
|
|
2191
|
-
}
|
|
2192
|
-
else {
|
|
2193
|
-
this.resolveAttr(entry, fileName, 'link', 'href', this.parser.extension);
|
|
2194
|
-
this.resolveAttr(entry, fileName, 'a', 'href', this.parser.extension);
|
|
2195
|
-
}
|
|
2196
|
-
}
|
|
2197
|
-
}));
|
|
2198
|
-
}
|
|
2199
2425
|
/**
|
|
2200
2426
|
* Copy media resources used in extension pop-ups
|
|
2201
2427
|
*/
|
|
@@ -2224,7 +2450,7 @@ let Popup = class Popup {
|
|
|
2224
2450
|
}),
|
|
2225
2451
|
...this.diff.srcFiles.delete.map(async (filePath) => {
|
|
2226
2452
|
const baseFileName = basename(filePath);
|
|
2227
|
-
const absolutedNewFilePath = resolve(this.outputDir, '
|
|
2453
|
+
const absolutedNewFilePath = resolve(this.outputDir, 'public', baseFileName);
|
|
2228
2454
|
await fse.remove(absolutedNewFilePath);
|
|
2229
2455
|
}),
|
|
2230
2456
|
]);
|
|
@@ -2250,6 +2476,31 @@ let Popup = class Popup {
|
|
|
2250
2476
|
this.resolveAttr(filePath, content, 'iframe', 'src', this.parser.userjs);
|
|
2251
2477
|
}));
|
|
2252
2478
|
}
|
|
2479
|
+
/**
|
|
2480
|
+
* After inlining the HTML using this.resolveInline(),
|
|
2481
|
+
* replaces the inline script placeholders
|
|
2482
|
+
* `__CRXM_REPLACED_SCRIPT_${index}` with their corresponding
|
|
2483
|
+
* stored bundle outputs.
|
|
2484
|
+
*
|
|
2485
|
+
* Since node-html-parser cannot correctly handle inline
|
|
2486
|
+
* script contents, this method performs the replacement
|
|
2487
|
+
* via external string manipulation after the parser has
|
|
2488
|
+
* completed all DOM operations.
|
|
2489
|
+
*/
|
|
2490
|
+
replaceRealScript(rawScript) {
|
|
2491
|
+
this.scriptReplaces.forEach((scriptStr, i) => {
|
|
2492
|
+
rawScript = rawScript.replace(`__CRXM_REPLACED_SCRIPT_${i}`, scriptStr);
|
|
2493
|
+
});
|
|
2494
|
+
return rawScript;
|
|
2495
|
+
}
|
|
2496
|
+
/**
|
|
2497
|
+
* Inlines the CSS files referenced in the HTML.
|
|
2498
|
+
*
|
|
2499
|
+
* For each script element that loads an external script,
|
|
2500
|
+
* replaces its inner content with the placeholder string
|
|
2501
|
+
* `__CRXM_REPLACED_SCRIPT_${index}`, and stores the bundled
|
|
2502
|
+
* result of that script using the corresponding index.
|
|
2503
|
+
*/
|
|
2253
2504
|
resolveInline() {
|
|
2254
2505
|
const parser = this.parser?.userjs;
|
|
2255
2506
|
if (parser === undefined) {
|
|
@@ -2260,11 +2511,17 @@ let Popup = class Popup {
|
|
|
2260
2511
|
const result = this.bundler.compileResults[hash];
|
|
2261
2512
|
const decoder = new TextDecoder();
|
|
2262
2513
|
const resultStr = decoder.decode(result);
|
|
2514
|
+
const escaped = resultStr
|
|
2515
|
+
.replaceAll('\\', '\\\\')
|
|
2516
|
+
.replaceAll('`', '\\`')
|
|
2517
|
+
.replaceAll('$', '\\$');
|
|
2263
2518
|
if (target.flag === 'html_script') {
|
|
2264
2519
|
const nodes = parser.querySelectorAll(`script[src="${entry}"]`);
|
|
2520
|
+
const i = this.scriptReplaces.length;
|
|
2521
|
+
this.scriptReplaces[i] = escaped;
|
|
2265
2522
|
nodes.forEach((node) => {
|
|
2266
2523
|
node.removeAttribute('src');
|
|
2267
|
-
node.
|
|
2524
|
+
node.set_content(`__CRXM_REPLACED_SCRIPT_${i}`);
|
|
2268
2525
|
});
|
|
2269
2526
|
}
|
|
2270
2527
|
if (target.flag === 'html_href') {
|
|
@@ -2397,13 +2654,14 @@ let Popup = class Popup {
|
|
|
2397
2654
|
* @returns
|
|
2398
2655
|
*/
|
|
2399
2656
|
getAppropriatePlugin(filePath, type) {
|
|
2657
|
+
let _plugin = null;
|
|
2400
2658
|
for (const [pattern, plugin] of Object.entries(this.plugins[type])) {
|
|
2401
2659
|
const regex = new RegExp(pattern);
|
|
2402
2660
|
if (regex.test(filePath)) {
|
|
2403
|
-
|
|
2661
|
+
_plugin = plugin;
|
|
2404
2662
|
}
|
|
2405
2663
|
}
|
|
2406
|
-
return
|
|
2664
|
+
return _plugin;
|
|
2407
2665
|
}
|
|
2408
2666
|
changeExt(filePath, newExt) {
|
|
2409
2667
|
const rawFileNameSplited = basename(filePath).split('.');
|
|
@@ -2776,9 +3034,9 @@ let Distributior = class Distributior {
|
|
|
2776
3034
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2777
3035
|
Object.entries(icons).map(async ([_key, { raw, path }]) => {
|
|
2778
3036
|
const fileName = basename(path);
|
|
2779
|
-
const output = resolve(distPath, `${this.publicDirInDist}/icons
|
|
3037
|
+
const output = resolve(distPath, `${this.publicDirInDist}/icons/`, fileName);
|
|
2780
3038
|
await fse.copy(path, output);
|
|
2781
|
-
this.manifestFactory.resolve(raw, `${this.publicDirInDist}/icons
|
|
3039
|
+
this.manifestFactory.resolve(raw, `${this.publicDirInDist}/icons/` + fileName);
|
|
2782
3040
|
}));
|
|
2783
3041
|
}
|
|
2784
3042
|
}
|
|
@@ -2850,8 +3108,8 @@ let BundlerRegisterer = class BundlerRegisterer {
|
|
|
2850
3108
|
// Register sources to bundler without html.
|
|
2851
3109
|
for (const [flag, paths] of addTargetGroups) {
|
|
2852
3110
|
for (const path of paths) {
|
|
2853
|
-
const buildPlugin = this.
|
|
2854
|
-
const watchPlugin = this.
|
|
3111
|
+
const buildPlugin = this.getAppropriatePlugin(path, 'build');
|
|
3112
|
+
const watchPlugin = this.getAppropriatePlugin(path, 'watch');
|
|
2855
3113
|
if (!buildPlugin) {
|
|
2856
3114
|
console.error(`Could not find the appropriate plugin for building "${path}"`);
|
|
2857
3115
|
continue;
|
|
@@ -2909,35 +3167,16 @@ let BundlerRegisterer = class BundlerRegisterer {
|
|
|
2909
3167
|
});
|
|
2910
3168
|
}
|
|
2911
3169
|
}
|
|
2912
|
-
|
|
2913
|
-
|
|
2914
|
-
|
|
2915
|
-
|
|
2916
|
-
*/
|
|
2917
|
-
getAppropriateBuildPlugin(filePath) {
|
|
2918
|
-
const { build } = this.configLoader.useConfig();
|
|
2919
|
-
for (const [pattern, plugin] of Object.entries(build)) {
|
|
2920
|
-
const regex = new RegExp(pattern);
|
|
2921
|
-
if (regex.test(filePath)) {
|
|
2922
|
-
return plugin;
|
|
2923
|
-
}
|
|
2924
|
-
}
|
|
2925
|
-
return null;
|
|
2926
|
-
}
|
|
2927
|
-
/**
|
|
2928
|
-
* Get watch plugin
|
|
2929
|
-
* @param filePath
|
|
2930
|
-
* @returns
|
|
2931
|
-
*/
|
|
2932
|
-
getAppropriateWatchPlugin(filePath) {
|
|
2933
|
-
const { watch } = this.configLoader.useConfig();
|
|
2934
|
-
for (const [pattern, plugin] of Object.entries(watch)) {
|
|
3170
|
+
getAppropriatePlugin(filePath, type) {
|
|
3171
|
+
const { build, watch } = this.configLoader.useConfig();
|
|
3172
|
+
let _plugin = null;
|
|
3173
|
+
for (const [pattern, plugin] of Object.entries({ build, watch }[type])) {
|
|
2935
3174
|
const regex = new RegExp(pattern);
|
|
2936
3175
|
if (regex.test(filePath)) {
|
|
2937
|
-
|
|
3176
|
+
_plugin = plugin;
|
|
2938
3177
|
}
|
|
2939
3178
|
}
|
|
2940
|
-
return
|
|
3179
|
+
return _plugin;
|
|
2941
3180
|
}
|
|
2942
3181
|
/**
|
|
2943
3182
|
* Compare file change.
|
|
@@ -3288,162 +3527,6 @@ UserscriptRegisterer = __decorate([
|
|
|
3288
3527
|
ConfigLoader])
|
|
3289
3528
|
], UserscriptRegisterer);
|
|
3290
3529
|
|
|
3291
|
-
/**
|
|
3292
|
-
* The websocket server of manage auto reload.
|
|
3293
|
-
*/
|
|
3294
|
-
let SockServer = class SockServer {
|
|
3295
|
-
configLoader;
|
|
3296
|
-
logger;
|
|
3297
|
-
wserver;
|
|
3298
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
3299
|
-
listeners = [];
|
|
3300
|
-
/**
|
|
3301
|
-
* Start and setup server.
|
|
3302
|
-
* @param host
|
|
3303
|
-
* @param port
|
|
3304
|
-
*/
|
|
3305
|
-
constructor(configLoader, logger) {
|
|
3306
|
-
this.configLoader = configLoader;
|
|
3307
|
-
this.logger = logger;
|
|
3308
|
-
const { server: { host, websocket }, } = this.configLoader.useConfig();
|
|
3309
|
-
this.wserver = new WebSocketServer({
|
|
3310
|
-
port: websocket,
|
|
3311
|
-
host: host,
|
|
3312
|
-
});
|
|
3313
|
-
//this.setup();
|
|
3314
|
-
}
|
|
3315
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unnecessary-type-constraint
|
|
3316
|
-
addMsgListener(listener) {
|
|
3317
|
-
this.listeners.push(listener);
|
|
3318
|
-
}
|
|
3319
|
-
dispatch(msg) {
|
|
3320
|
-
this.listeners.forEach((l) => {
|
|
3321
|
-
l(msg);
|
|
3322
|
-
});
|
|
3323
|
-
}
|
|
3324
|
-
setup() {
|
|
3325
|
-
this.wserver.addListener('connection', (socket) => {
|
|
3326
|
-
this.sendMsg(socket, {
|
|
3327
|
-
type: 'connected',
|
|
3328
|
-
content: null,
|
|
3329
|
-
});
|
|
3330
|
-
socket.addEventListener('message', (e) => {
|
|
3331
|
-
if (typeof e.data === 'string') {
|
|
3332
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
3333
|
-
const data = JSON.parse(e.data);
|
|
3334
|
-
this.dispatch(data);
|
|
3335
|
-
}
|
|
3336
|
-
this.sendMsg(socket, {
|
|
3337
|
-
type: 'send_ok',
|
|
3338
|
-
content: null,
|
|
3339
|
-
});
|
|
3340
|
-
});
|
|
3341
|
-
});
|
|
3342
|
-
}
|
|
3343
|
-
/**
|
|
3344
|
-
* Send reload signal to websocket client.
|
|
3345
|
-
* @param token
|
|
3346
|
-
*/
|
|
3347
|
-
reload(token) {
|
|
3348
|
-
this.wserver.clients.forEach((client) => {
|
|
3349
|
-
this.sendMsg(client, {
|
|
3350
|
-
type: 'reload',
|
|
3351
|
-
content: token,
|
|
3352
|
-
});
|
|
3353
|
-
});
|
|
3354
|
-
this.logger.dispatchDebug(`🔃 Dispatch reload ${chalk.gray('"' + token + '"')}`);
|
|
3355
|
-
}
|
|
3356
|
-
sendMsg(socket, data) {
|
|
3357
|
-
socket.send(JSON.stringify(data));
|
|
3358
|
-
}
|
|
3359
|
-
dispose() {
|
|
3360
|
-
this.wserver.close();
|
|
3361
|
-
}
|
|
3362
|
-
};
|
|
3363
|
-
SockServer = __decorate([
|
|
3364
|
-
injectable(),
|
|
3365
|
-
__param(0, inject(TYPES.ConfigLoader)),
|
|
3366
|
-
__param(1, inject(TYPES.Logger)),
|
|
3367
|
-
__metadata("design:paramtypes", [ConfigLoader,
|
|
3368
|
-
Logger])
|
|
3369
|
-
], SockServer);
|
|
3370
|
-
|
|
3371
|
-
/*
|
|
3372
|
-
/**
|
|
3373
|
-
* The server of send to script code.
|
|
3374
|
-
*/
|
|
3375
|
-
let FileServer = class FileServer {
|
|
3376
|
-
configLoader;
|
|
3377
|
-
app;
|
|
3378
|
-
server = null;
|
|
3379
|
-
constructor(configLoader) {
|
|
3380
|
-
this.configLoader = configLoader;
|
|
3381
|
-
const { server: { host, port }, } = this.configLoader.useConfig();
|
|
3382
|
-
if (host === undefined || port === undefined) {
|
|
3383
|
-
throw new Error("Server host, port or websocket's port were not specificated");
|
|
3384
|
-
}
|
|
3385
|
-
this.app = express();
|
|
3386
|
-
}
|
|
3387
|
-
/**
|
|
3388
|
-
* Start server.
|
|
3389
|
-
* @returns
|
|
3390
|
-
*/
|
|
3391
|
-
async start() {
|
|
3392
|
-
this.setup();
|
|
3393
|
-
const { server: { host, port }, } = this.configLoader.useConfig();
|
|
3394
|
-
if (host === undefined || port === undefined) {
|
|
3395
|
-
throw new Error("Server host, port or websocket's port were not specificated");
|
|
3396
|
-
}
|
|
3397
|
-
return new Promise((resolve) => {
|
|
3398
|
-
this.server = this.app.listen(port, host, () => {
|
|
3399
|
-
resolve(1);
|
|
3400
|
-
});
|
|
3401
|
-
});
|
|
3402
|
-
}
|
|
3403
|
-
async dispose() {
|
|
3404
|
-
if (this.server === null) {
|
|
3405
|
-
throw consola.error(new Error('Dispose can be used after Watch is started'));
|
|
3406
|
-
}
|
|
3407
|
-
this.server.close();
|
|
3408
|
-
this.server = null;
|
|
3409
|
-
}
|
|
3410
|
-
setup() {
|
|
3411
|
-
const { output: { chrome, userjs }, manifest, } = this.configLoader.useConfig();
|
|
3412
|
-
if (chrome === undefined || userjs === undefined) {
|
|
3413
|
-
throw new Error('');
|
|
3414
|
-
}
|
|
3415
|
-
this.app.get('/userscript', (req, res) => {
|
|
3416
|
-
let filepath = userjs;
|
|
3417
|
-
if (!isAbsolute(userjs)) {
|
|
3418
|
-
filepath = resolve(dirname(manifest), userjs);
|
|
3419
|
-
}
|
|
3420
|
-
if (fse.existsSync(filepath)) {
|
|
3421
|
-
res.sendFile(filepath);
|
|
3422
|
-
}
|
|
3423
|
-
else {
|
|
3424
|
-
res.send(400);
|
|
3425
|
-
}
|
|
3426
|
-
});
|
|
3427
|
-
this.app.get('/dev.user.js', (req, res) => {
|
|
3428
|
-
let filepath = userjs;
|
|
3429
|
-
if (!isAbsolute(userjs)) {
|
|
3430
|
-
filepath = resolve(dirname(manifest), dirname(userjs), 'dev.user.js');
|
|
3431
|
-
}
|
|
3432
|
-
if (fse.existsSync(filepath)) {
|
|
3433
|
-
res.sendFile(filepath);
|
|
3434
|
-
}
|
|
3435
|
-
else {
|
|
3436
|
-
res.send(400);
|
|
3437
|
-
}
|
|
3438
|
-
});
|
|
3439
|
-
}
|
|
3440
|
-
};
|
|
3441
|
-
FileServer = __decorate([
|
|
3442
|
-
injectable(),
|
|
3443
|
-
__param(0, inject(TYPES.ConfigLoader)),
|
|
3444
|
-
__metadata("design:paramtypes", [ConfigLoader])
|
|
3445
|
-
], FileServer);
|
|
3446
|
-
|
|
3447
3530
|
/**
|
|
3448
3531
|
* DI container
|
|
3449
3532
|
*/
|
|
@@ -3473,6 +3556,7 @@ container
|
|
|
3473
3556
|
container.bind(TYPES.SockServer).to(SockServer).inSingletonScope();
|
|
3474
3557
|
container.bind(TYPES.CreateDevClient).to(CreateDevClient).inSingletonScope();
|
|
3475
3558
|
container.bind(TYPES.FileServer).to(FileServer).inSingletonScope();
|
|
3559
|
+
container.bind(TYPES.Hmr).to(HMR).inSingletonScope();
|
|
3476
3560
|
/**
|
|
3477
3561
|
* Values
|
|
3478
3562
|
*/
|
|
@@ -3587,24 +3671,6 @@ async function dev() {
|
|
|
3587
3671
|
watcher.start();
|
|
3588
3672
|
}
|
|
3589
3673
|
|
|
3590
|
-
/**
|
|
3591
|
-
* Nice visibility stack trace.
|
|
3592
|
-
* @param e
|
|
3593
|
-
*/
|
|
3594
|
-
function errorHandler(e) {
|
|
3595
|
-
const logger = container.get(TYPES.Logger); /*
|
|
3596
|
-
dispatchErr(`${chalk.bgRed(` CRXM ${e.name} `)} ${chalk.bold(e.message)}`);
|
|
3597
|
-
|
|
3598
|
-
const stack = e.stack?.split('\n');
|
|
3599
|
-
stack?.shift();
|
|
3600
|
-
console.error(stack?.map((l) => chalk.gray(l)).join('\n'));*/
|
|
3601
|
-
const msg = `❌ ${chalk.bold(e.name + ':')} ${chalk.bold(e.message)}`;
|
|
3602
|
-
const stack = e.stack?.split('\n');
|
|
3603
|
-
stack?.shift();
|
|
3604
|
-
const stackStr = stack?.map((l) => chalk.gray(l)).join('\n');
|
|
3605
|
-
logger.dispatchErr(msg, stackStr);
|
|
3606
|
-
}
|
|
3607
|
-
|
|
3608
3674
|
/**
|
|
3609
3675
|
* Build extension.
|
|
3610
3676
|
*/
|
|
@@ -3669,4 +3735,4 @@ if (cli.matchedCommand === undefined) {
|
|
|
3669
3735
|
else {
|
|
3670
3736
|
await cli.runMatchedCommand();
|
|
3671
3737
|
}
|
|
3672
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZXMiOlsiLi4vLi4vbm9kZV9tb2R1bGVzL3RzbGliL3RzbGliLmVzNi5qcyIsIi4uLy4uL3NyYy9ub2RlL2ZpbGUudHMiLCIuLi8uLi9zcmMvbm9kZS9Db25maWdMb2FkZXIudHMiLCIuLi8uLi9zcmMvbm9kZS90eXBlcy50cyIsIi4uLy4uL3NyYy9ub2RlL21hbmlmZXN0L01hbmlmZXN0TG9hZGVyLnRzIiwiLi4vLi4vc3JjL25vZGUvbWFuaWZlc3QvTWFuaWZlc3RQYXJzZXIudHMiLCIuLi8uLi9zcmMvbm9kZS9Mb2dnZXIudHMiLCIuLi8uLi9zcmMvbm9kZS9DcnhtQnVuZGxlci50cyIsIi4uLy4uL3NyYy9ub2RlL1dhdGNoZXIudHMiLCIuLi8uLi9zcmMvbm9kZS9tYW5pZmVzdC9pMThuLnRzIiwiLi4vLi4vc3JjL25vZGUvbWFuaWZlc3QvTWFuaWZlc3RGYWN0b3J5LnRzIiwiLi4vLi4vc3JjL25vZGUvdXNlcnNjcmlwdC9Db2RlQmxvY2sudHMiLCIuLi8uLi9zcmMvbm9kZS91c2Vyc2NyaXB0L0NvZGVJbmplY3Rvci50cyIsIi4uLy4uL3NyYy9ub2RlL3VzZXJzY3JpcHQvVXNlcnNjcmlwdEhlYWRlci50cyIsIi4uLy4uL3NyYy9ub2RlL3VzZXJzY3JpcHQvVXNlcnNjcmlwdEJ1bmRsZXIudHMiLCIuLi8uLi9zcmMvbm9kZS9kZXZlbG9wbWVudC9jb2Rlcy9zdy50cyIsIi4uLy4uL3NyYy9ub2RlL2RldmVsb3BtZW50L2NvZGVzL3VzZXJqcy50cyIsIi4uLy4uL3NyYy9ub2RlL2RldmVsb3BtZW50L2NvZGVzL2V4dGVuc2lvbi50cyIsIi4uLy4uL3NyYy9ub2RlL2RldmVsb3BtZW50L0NyZWF0ZURldkNsaWVudC50cyIsIi4uLy4uL3NyYy9ub2RlL2lzb2xhdGVkQ29ubmVjdG9yLnRzIiwiLi4vLi4vc3JjL25vZGUvcGx1Z2lucy9odG1sQnVuZGxlci50cyIsIi4uLy4uL3NyYy9ub2RlL3BvcHVwL1BvcHVwLnRzIiwiLi4vLi4vc3JjL25vZGUvRGlzdHJpYnV0aW9yLnRzIiwiLi4vLi4vc3JjL25vZGUvQnVuZGxlclJlZ2lzdGVyZXIudHMiLCIuLi8uLi9zcmMvbm9kZS91c2Vyc2NyaXB0L1VzZXJzY3JpcHRSZWdpc3RlcmVyLnRzIiwiLi4vLi4vc3JjL25vZGUvc2VydmVyL1NvY2tTZXJ2ZXIudHMiLCIuLi8uLi9zcmMvbm9kZS9zZXJ2ZXIvRmlsZVNlcnZlci50cyIsIi4uLy4uL3NyYy9ub2RlL2ludmVyc2lmeS5jb25maWcudHMiLCIuLi8uLi9zcmMvbm9kZS9kZXYudHMiLCIuLi8uLi9zcmMvbm9kZS91dGlscy50cyIsIi4uLy4uL3NyYy9ub2RlL2J1aWxkLnRzIiwiLi4vLi4vc3JjL25vZGUvbWFpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbkNvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxyXG5cclxuUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbnB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcblRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEhcclxuUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbkFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NXHJcbkxPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbk9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sLCBJdGVyYXRvciAqL1xyXG5cclxudmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbihkLCBiKSB7XHJcbiAgICBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8XHJcbiAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fFxyXG4gICAgICAgIGZ1bmN0aW9uIChkLCBiKSB7IGZvciAodmFyIHAgaW4gYikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiLCBwKSkgZFtwXSA9IGJbcF07IH07XHJcbiAgICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2V4dGVuZHMoZCwgYikge1xyXG4gICAgaWYgKHR5cGVvZiBiICE9PSBcImZ1bmN0aW9uXCIgJiYgYiAhPT0gbnVsbClcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSBcIiArIFN0cmluZyhiKSArIFwiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGxcIik7XHJcbiAgICBleHRlbmRTdGF0aWNzKGQsIGIpO1xyXG4gICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9XHJcbiAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XHJcbn1cclxuXHJcbmV4cG9ydCB2YXIgX19hc3NpZ24gPSBmdW5jdGlvbigpIHtcclxuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiBfX2Fzc2lnbih0KSB7XHJcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XHJcbiAgICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XHJcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSkgdFtwXSA9IHNbcF07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3Jlc3QocywgZSkge1xyXG4gICAgdmFyIHQgPSB7fTtcclxuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxyXG4gICAgICAgIHRbcF0gPSBzW3BdO1xyXG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxyXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XHJcbiAgICAgICAgfVxyXG4gICAgcmV0dXJuIHQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2RlY29yYXRlKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKSB7XHJcbiAgICB2YXIgYyA9IGFyZ3VtZW50cy5sZW5ndGgsIHIgPSBjIDwgMyA/IHRhcmdldCA6IGRlc2MgPT09IG51bGwgPyBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIGtleSkgOiBkZXNjLCBkO1xyXG4gICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBSZWZsZWN0LmRlY29yYXRlID09PSBcImZ1bmN0aW9uXCIpIHIgPSBSZWZsZWN0LmRlY29yYXRlKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKTtcclxuICAgIGVsc2UgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIGlmIChkID0gZGVjb3JhdG9yc1tpXSkgciA9IChjIDwgMyA/IGQocikgOiBjID4gMyA/IGQodGFyZ2V0LCBrZXksIHIpIDogZCh0YXJnZXQsIGtleSkpIHx8IHI7XHJcbiAgICByZXR1cm4gYyA+IDMgJiYgciAmJiBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHIpLCByO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19wYXJhbShwYXJhbUluZGV4LCBkZWNvcmF0b3IpIHtcclxuICAgIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0LCBrZXkpIHsgZGVjb3JhdG9yKHRhcmdldCwga2V5LCBwYXJhbUluZGV4KTsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19lc0RlY29yYXRlKGN0b3IsIGRlc2NyaXB0b3JJbiwgZGVjb3JhdG9ycywgY29udGV4dEluLCBpbml0aWFsaXplcnMsIGV4dHJhSW5pdGlhbGl6ZXJzKSB7XHJcbiAgICBmdW5jdGlvbiBhY2NlcHQoZikgeyBpZiAoZiAhPT0gdm9pZCAwICYmIHR5cGVvZiBmICE9PSBcImZ1bmN0aW9uXCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJGdW5jdGlvbiBleHBlY3RlZFwiKTsgcmV0dXJuIGY7IH1cclxuICAgIHZhciBraW5kID0gY29udGV4dEluLmtpbmQsIGtleSA9IGtpbmQgPT09IFwiZ2V0dGVyXCIgPyBcImdldFwiIDoga2luZCA9PT0gXCJzZXR0ZXJcIiA/IFwic2V0XCIgOiBcInZhbHVlXCI7XHJcbiAgICB2YXIgdGFyZ2V0ID0gIWRlc2NyaXB0b3JJbiAmJiBjdG9yID8gY29udGV4dEluW1wic3RhdGljXCJdID8gY3RvciA6IGN0b3IucHJvdG90eXBlIDogbnVsbDtcclxuICAgIHZhciBkZXNjcmlwdG9yID0gZGVzY3JpcHRvckluIHx8ICh0YXJnZXQgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwgY29udGV4dEluLm5hbWUpIDoge30pO1xyXG4gICAgdmFyIF8sIGRvbmUgPSBmYWxzZTtcclxuICAgIGZvciAodmFyIGkgPSBkZWNvcmF0b3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XHJcbiAgICAgICAgdmFyIGNvbnRleHQgPSB7fTtcclxuICAgICAgICBmb3IgKHZhciBwIGluIGNvbnRleHRJbikgY29udGV4dFtwXSA9IHAgPT09IFwiYWNjZXNzXCIgPyB7fSA6IGNvbnRleHRJbltwXTtcclxuICAgICAgICBmb3IgKHZhciBwIGluIGNvbnRleHRJbi5hY2Nlc3MpIGNvbnRleHQuYWNjZXNzW3BdID0gY29udGV4dEluLmFjY2Vzc1twXTtcclxuICAgICAgICBjb250ZXh0LmFkZEluaXRpYWxpemVyID0gZnVuY3Rpb24gKGYpIHsgaWYgKGRvbmUpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWRcIik7IGV4dHJhSW5pdGlhbGl6ZXJzLnB1c2goYWNjZXB0KGYgfHwgbnVsbCkpOyB9O1xyXG4gICAgICAgIHZhciByZXN1bHQgPSAoMCwgZGVjb3JhdG9yc1tpXSkoa2luZCA9PT0gXCJhY2Nlc3NvclwiID8geyBnZXQ6IGRlc2NyaXB0b3IuZ2V0LCBzZXQ6IGRlc2NyaXB0b3Iuc2V0IH0gOiBkZXNjcmlwdG9yW2tleV0sIGNvbnRleHQpO1xyXG4gICAgICAgIGlmIChraW5kID09PSBcImFjY2Vzc29yXCIpIHtcclxuICAgICAgICAgICAgaWYgKHJlc3VsdCA9PT0gdm9pZCAwKSBjb250aW51ZTtcclxuICAgICAgICAgICAgaWYgKHJlc3VsdCA9PT0gbnVsbCB8fCB0eXBlb2YgcmVzdWx0ICE9PSBcIm9iamVjdFwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiT2JqZWN0IGV4cGVjdGVkXCIpO1xyXG4gICAgICAgICAgICBpZiAoXyA9IGFjY2VwdChyZXN1bHQuZ2V0KSkgZGVzY3JpcHRvci5nZXQgPSBfO1xyXG4gICAgICAgICAgICBpZiAoXyA9IGFjY2VwdChyZXN1bHQuc2V0KSkgZGVzY3JpcHRvci5zZXQgPSBfO1xyXG4gICAgICAgICAgICBpZiAoXyA9IGFjY2VwdChyZXN1bHQuaW5pdCkpIGluaXRpYWxpemVycy51bnNoaWZ0KF8pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChfID0gYWNjZXB0KHJlc3VsdCkpIHtcclxuICAgICAgICAgICAgaWYgKGtpbmQgPT09IFwiZmllbGRcIikgaW5pdGlhbGl6ZXJzLnVuc2hpZnQoXyk7XHJcbiAgICAgICAgICAgIGVsc2UgZGVzY3JpcHRvcltrZXldID0gXztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGFyZ2V0KSBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBjb250ZXh0SW4ubmFtZSwgZGVzY3JpcHRvcik7XHJcbiAgICBkb25lID0gdHJ1ZTtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3J1bkluaXRpYWxpemVycyh0aGlzQXJnLCBpbml0aWFsaXplcnMsIHZhbHVlKSB7XHJcbiAgICB2YXIgdXNlVmFsdWUgPSBhcmd1bWVudHMubGVuZ3RoID4gMjtcclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW5pdGlhbGl6ZXJzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgdmFsdWUgPSB1c2VWYWx1ZSA/IGluaXRpYWxpemVyc1tpXS5jYWxsKHRoaXNBcmcsIHZhbHVlKSA6IGluaXRpYWxpemVyc1tpXS5jYWxsKHRoaXNBcmcpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHVzZVZhbHVlID8gdmFsdWUgOiB2b2lkIDA7XHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19wcm9wS2V5KHgpIHtcclxuICAgIHJldHVybiB0eXBlb2YgeCA9PT0gXCJzeW1ib2xcIiA/IHggOiBcIlwiLmNvbmNhdCh4KTtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3NldEZ1bmN0aW9uTmFtZShmLCBuYW1lLCBwcmVmaXgpIHtcclxuICAgIGlmICh0eXBlb2YgbmFtZSA9PT0gXCJzeW1ib2xcIikgbmFtZSA9IG5hbWUuZGVzY3JpcHRpb24gPyBcIltcIi5jb25jYXQobmFtZS5kZXNjcmlwdGlvbiwgXCJdXCIpIDogXCJcIjtcclxuICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZiwgXCJuYW1lXCIsIHsgY29uZmlndXJhYmxlOiB0cnVlLCB2YWx1ZTogcHJlZml4ID8gXCJcIi5jb25jYXQocHJlZml4LCBcIiBcIiwgbmFtZSkgOiBuYW1lIH0pO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fbWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUpIHtcclxuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5tZXRhZGF0YSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gUmVmbGVjdC5tZXRhZGF0YShtZXRhZGF0YUtleSwgbWV0YWRhdGFWYWx1ZSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cclxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xyXG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxyXG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcclxuICAgIH0pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19nZW5lcmF0b3IodGhpc0FyZywgYm9keSkge1xyXG4gICAgdmFyIF8gPSB7IGxhYmVsOiAwLCBzZW50OiBmdW5jdGlvbigpIHsgaWYgKHRbMF0gJiAxKSB0aHJvdyB0WzFdOyByZXR1cm4gdFsxXTsgfSwgdHJ5czogW10sIG9wczogW10gfSwgZiwgeSwgdCwgZyA9IE9iamVjdC5jcmVhdGUoKHR5cGVvZiBJdGVyYXRvciA9PT0gXCJmdW5jdGlvblwiID8gSXRlcmF0b3IgOiBPYmplY3QpLnByb3RvdHlwZSk7XHJcbiAgICByZXR1cm4gZy5uZXh0ID0gdmVyYigwKSwgZ1tcInRocm93XCJdID0gdmVyYigxKSwgZ1tcInJldHVyblwiXSA9IHZlcmIoMiksIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiAoZ1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzOyB9KSwgZztcclxuICAgIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gc3RlcChvcCkge1xyXG4gICAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcclxuICAgICAgICB3aGlsZSAoZyAmJiAoZyA9IDAsIG9wWzBdICYmIChfID0gMCkpLCBfKSB0cnkge1xyXG4gICAgICAgICAgICBpZiAoZiA9IDEsIHkgJiYgKHQgPSBvcFswXSAmIDIgPyB5W1wicmV0dXJuXCJdIDogb3BbMF0gPyB5W1widGhyb3dcIl0gfHwgKCh0ID0geVtcInJldHVyblwiXSkgJiYgdC5jYWxsKHkpLCAwKSA6IHkubmV4dCkgJiYgISh0ID0gdC5jYWxsKHksIG9wWzFdKSkuZG9uZSkgcmV0dXJuIHQ7XHJcbiAgICAgICAgICAgIGlmICh5ID0gMCwgdCkgb3AgPSBbb3BbMF0gJiAyLCB0LnZhbHVlXTtcclxuICAgICAgICAgICAgc3dpdGNoIChvcFswXSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAwOiBjYXNlIDE6IHQgPSBvcDsgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIDQ6IF8ubGFiZWwrKzsgcmV0dXJuIHsgdmFsdWU6IG9wWzFdLCBkb25lOiBmYWxzZSB9O1xyXG4gICAgICAgICAgICAgICAgY2FzZSA1OiBfLmxhYmVsKys7IHkgPSBvcFsxXTsgb3AgPSBbMF07IGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgY2FzZSA3OiBvcCA9IF8ub3BzLnBvcCgpOyBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICBpZiAoISh0ID0gXy50cnlzLCB0ID0gdC5sZW5ndGggPiAwICYmIHRbdC5sZW5ndGggLSAxXSkgJiYgKG9wWzBdID09PSA2IHx8IG9wWzBdID09PSAyKSkgeyBfID0gMDsgY29udGludWU7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDMgJiYgKCF0IHx8IChvcFsxXSA+IHRbMF0gJiYgb3BbMV0gPCB0WzNdKSkpIHsgXy5sYWJlbCA9IG9wWzFdOyBicmVhazsgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gNiAmJiBfLmxhYmVsIDwgdFsxXSkgeyBfLmxhYmVsID0gdFsxXTsgdCA9IG9wOyBicmVhazsgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0ICYmIF8ubGFiZWwgPCB0WzJdKSB7IF8ubGFiZWwgPSB0WzJdOyBfLm9wcy5wdXNoKG9wKTsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAodFsyXSkgXy5vcHMucG9wKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBvcCA9IGJvZHkuY2FsbCh0aGlzQXJnLCBfKTtcclxuICAgICAgICB9IGNhdGNoIChlKSB7IG9wID0gWzYsIGVdOyB5ID0gMDsgfSBmaW5hbGx5IHsgZiA9IHQgPSAwOyB9XHJcbiAgICAgICAgaWYgKG9wWzBdICYgNSkgdGhyb3cgb3BbMV07IHJldHVybiB7IHZhbHVlOiBvcFswXSA/IG9wWzFdIDogdm9pZCAwLCBkb25lOiB0cnVlIH07XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCB2YXIgX19jcmVhdGVCaW5kaW5nID0gT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xyXG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcclxuICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCBrKTtcclxuICAgIGlmICghZGVzYyB8fCAoXCJnZXRcIiBpbiBkZXNjID8gIW0uX19lc01vZHVsZSA6IGRlc2Mud3JpdGFibGUgfHwgZGVzYy5jb25maWd1cmFibGUpKSB7XHJcbiAgICAgICAgZGVzYyA9IHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfTtcclxuICAgIH1cclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgZGVzYyk7XHJcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XHJcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xyXG4gICAgb1trMl0gPSBtW2tdO1xyXG59KTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2V4cG9ydFN0YXIobSwgbykge1xyXG4gICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gXCJkZWZhdWx0XCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvLCBwKSkgX19jcmVhdGVCaW5kaW5nKG8sIG0sIHApO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX192YWx1ZXMobykge1xyXG4gICAgdmFyIHMgPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgU3ltYm9sLml0ZXJhdG9yLCBtID0gcyAmJiBvW3NdLCBpID0gMDtcclxuICAgIGlmIChtKSByZXR1cm4gbS5jYWxsKG8pO1xyXG4gICAgaWYgKG8gJiYgdHlwZW9mIG8ubGVuZ3RoID09PSBcIm51bWJlclwiKSByZXR1cm4ge1xyXG4gICAgICAgIG5leHQ6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgaWYgKG8gJiYgaSA+PSBvLmxlbmd0aCkgbyA9IHZvaWQgMDtcclxuICAgICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG8gJiYgb1tpKytdLCBkb25lOiAhbyB9O1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKHMgPyBcIk9iamVjdCBpcyBub3QgaXRlcmFibGUuXCIgOiBcIlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3JlYWQobywgbikge1xyXG4gICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdO1xyXG4gICAgaWYgKCFtKSByZXR1cm4gbztcclxuICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlO1xyXG4gICAgdHJ5IHtcclxuICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTtcclxuICAgIH1cclxuICAgIGNhdGNoIChlcnJvcikgeyBlID0geyBlcnJvcjogZXJyb3IgfTsgfVxyXG4gICAgZmluYWxseSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbXCJyZXR1cm5cIl0pKSBtLmNhbGwoaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZpbmFsbHkgeyBpZiAoZSkgdGhyb3cgZS5lcnJvcjsgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGFyO1xyXG59XHJcblxyXG4vKiogQGRlcHJlY2F0ZWQgKi9cclxuZXhwb3J0IGZ1bmN0aW9uIF9fc3ByZWFkKCkge1xyXG4gICAgZm9yICh2YXIgYXIgPSBbXSwgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgYXIgPSBhci5jb25jYXQoX19yZWFkKGFyZ3VtZW50c1tpXSkpO1xyXG4gICAgcmV0dXJuIGFyO1xyXG59XHJcblxyXG4vKiogQGRlcHJlY2F0ZWQgKi9cclxuZXhwb3J0IGZ1bmN0aW9uIF9fc3ByZWFkQXJyYXlzKCkge1xyXG4gICAgZm9yICh2YXIgcyA9IDAsIGkgPSAwLCBpbCA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBpbDsgaSsrKSBzICs9IGFyZ3VtZW50c1tpXS5sZW5ndGg7XHJcbiAgICBmb3IgKHZhciByID0gQXJyYXkocyksIGsgPSAwLCBpID0gMDsgaSA8IGlsOyBpKyspXHJcbiAgICAgICAgZm9yICh2YXIgYSA9IGFyZ3VtZW50c1tpXSwgaiA9IDAsIGpsID0gYS5sZW5ndGg7IGogPCBqbDsgaisrLCBrKyspXHJcbiAgICAgICAgICAgIHJba10gPSBhW2pdO1xyXG4gICAgcmV0dXJuIHI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3NwcmVhZEFycmF5KHRvLCBmcm9tLCBwYWNrKSB7XHJcbiAgICBpZiAocGFjayB8fCBhcmd1bWVudHMubGVuZ3RoID09PSAyKSBmb3IgKHZhciBpID0gMCwgbCA9IGZyb20ubGVuZ3RoLCBhcjsgaSA8IGw7IGkrKykge1xyXG4gICAgICAgIGlmIChhciB8fCAhKGkgaW4gZnJvbSkpIHtcclxuICAgICAgICAgICAgaWYgKCFhcikgYXIgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChmcm9tLCAwLCBpKTtcclxuICAgICAgICAgICAgYXJbaV0gPSBmcm9tW2ldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0by5jb25jYXQoYXIgfHwgQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZnJvbSkpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hd2FpdCh2KSB7XHJcbiAgICByZXR1cm4gdGhpcyBpbnN0YW5jZW9mIF9fYXdhaXQgPyAodGhpcy52ID0gdiwgdGhpcykgOiBuZXcgX19hd2FpdCh2KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNHZW5lcmF0b3IodGhpc0FyZywgX2FyZ3VtZW50cywgZ2VuZXJhdG9yKSB7XHJcbiAgICBpZiAoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xyXG4gICAgdmFyIGcgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSksIGksIHEgPSBbXTtcclxuICAgIHJldHVybiBpID0gT2JqZWN0LmNyZWF0ZSgodHlwZW9mIEFzeW5jSXRlcmF0b3IgPT09IFwiZnVuY3Rpb25cIiA/IEFzeW5jSXRlcmF0b3IgOiBPYmplY3QpLnByb3RvdHlwZSksIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiksIHZlcmIoXCJyZXR1cm5cIiwgYXdhaXRSZXR1cm4pLCBpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XHJcbiAgICBmdW5jdGlvbiBhd2FpdFJldHVybihmKSB7IHJldHVybiBmdW5jdGlvbiAodikgeyByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHYpLnRoZW4oZiwgcmVqZWN0KTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gdmVyYihuLCBmKSB7IGlmIChnW25dKSB7IGlbbl0gPSBmdW5jdGlvbiAodikgeyByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKGEsIGIpIHsgcS5wdXNoKFtuLCB2LCBhLCBiXSkgPiAxIHx8IHJlc3VtZShuLCB2KTsgfSk7IH07IGlmIChmKSBpW25dID0gZihpW25dKTsgfSB9XHJcbiAgICBmdW5jdGlvbiByZXN1bWUobiwgdikgeyB0cnkgeyBzdGVwKGdbbl0odikpOyB9IGNhdGNoIChlKSB7IHNldHRsZShxWzBdWzNdLCBlKTsgfSB9XHJcbiAgICBmdW5jdGlvbiBzdGVwKHIpIHsgci52YWx1ZSBpbnN0YW5jZW9mIF9fYXdhaXQgPyBQcm9taXNlLnJlc29sdmUoci52YWx1ZS52KS50aGVuKGZ1bGZpbGwsIHJlamVjdCkgOiBzZXR0bGUocVswXVsyXSwgcik7IH1cclxuICAgIGZ1bmN0aW9uIGZ1bGZpbGwodmFsdWUpIHsgcmVzdW1lKFwibmV4dFwiLCB2YWx1ZSk7IH1cclxuICAgIGZ1bmN0aW9uIHJlamVjdCh2YWx1ZSkgeyByZXN1bWUoXCJ0aHJvd1wiLCB2YWx1ZSk7IH1cclxuICAgIGZ1bmN0aW9uIHNldHRsZShmLCB2KSB7IGlmIChmKHYpLCBxLnNoaWZ0KCksIHEubGVuZ3RoKSByZXN1bWUocVswXVswXSwgcVswXVsxXSk7IH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNEZWxlZ2F0b3Iobykge1xyXG4gICAgdmFyIGksIHA7XHJcbiAgICByZXR1cm4gaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIsIGZ1bmN0aW9uIChlKSB7IHRocm93IGU7IH0pLCB2ZXJiKFwicmV0dXJuXCIpLCBpW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9LCBpO1xyXG4gICAgZnVuY3Rpb24gdmVyYihuLCBmKSB7IGlbbl0gPSBvW25dID8gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIChwID0gIXApID8geyB2YWx1ZTogX19hd2FpdChvW25dKHYpKSwgZG9uZTogZmFsc2UgfSA6IGYgPyBmKHYpIDogdjsgfSA6IGY7IH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNWYWx1ZXMobykge1xyXG4gICAgaWYgKCFTeW1ib2wuYXN5bmNJdGVyYXRvcikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcclxuICAgIHZhciBtID0gb1tTeW1ib2wuYXN5bmNJdGVyYXRvcl0sIGk7XHJcbiAgICByZXR1cm4gbSA/IG0uY2FsbChvKSA6IChvID0gdHlwZW9mIF9fdmFsdWVzID09PSBcImZ1bmN0aW9uXCIgPyBfX3ZhbHVlcyhvKSA6IG9bU3ltYm9sLml0ZXJhdG9yXSgpLCBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLmFzeW5jSXRlcmF0b3JdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSwgaSk7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgaVtuXSA9IG9bbl0gJiYgZnVuY3Rpb24gKHYpIHsgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHsgdiA9IG9bbl0odiksIHNldHRsZShyZXNvbHZlLCByZWplY3QsIHYuZG9uZSwgdi52YWx1ZSk7IH0pOyB9OyB9XHJcbiAgICBmdW5jdGlvbiBzZXR0bGUocmVzb2x2ZSwgcmVqZWN0LCBkLCB2KSB7IFByb21pc2UucmVzb2x2ZSh2KS50aGVuKGZ1bmN0aW9uKHYpIHsgcmVzb2x2ZSh7IHZhbHVlOiB2LCBkb25lOiBkIH0pOyB9LCByZWplY3QpOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX21ha2VUZW1wbGF0ZU9iamVjdChjb29rZWQsIHJhdykge1xyXG4gICAgaWYgKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29va2VkLCBcInJhd1wiLCB7IHZhbHVlOiByYXcgfSk7IH0gZWxzZSB7IGNvb2tlZC5yYXcgPSByYXc7IH1cclxuICAgIHJldHVybiBjb29rZWQ7XHJcbn07XHJcblxyXG52YXIgX19zZXRNb2R1bGVEZWZhdWx0ID0gT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCB2KSB7XHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgXCJkZWZhdWx0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7XHJcbn0pIDogZnVuY3Rpb24obywgdikge1xyXG4gICAgb1tcImRlZmF1bHRcIl0gPSB2O1xyXG59O1xyXG5cclxudmFyIG93bktleXMgPSBmdW5jdGlvbihvKSB7XHJcbiAgICBvd25LZXlzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMgfHwgZnVuY3Rpb24gKG8pIHtcclxuICAgICAgICB2YXIgYXIgPSBbXTtcclxuICAgICAgICBmb3IgKHZhciBrIGluIG8pIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobywgaykpIGFyW2FyLmxlbmd0aF0gPSBrO1xyXG4gICAgICAgIHJldHVybiBhcjtcclxuICAgIH07XHJcbiAgICByZXR1cm4gb3duS2V5cyhvKTtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2ltcG9ydFN0YXIobW9kKSB7XHJcbiAgICBpZiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSByZXR1cm4gbW9kO1xyXG4gICAgdmFyIHJlc3VsdCA9IHt9O1xyXG4gICAgaWYgKG1vZCAhPSBudWxsKSBmb3IgKHZhciBrID0gb3duS2V5cyhtb2QpLCBpID0gMDsgaSA8IGsubGVuZ3RoOyBpKyspIGlmIChrW2ldICE9PSBcImRlZmF1bHRcIikgX19jcmVhdGVCaW5kaW5nKHJlc3VsdCwgbW9kLCBrW2ldKTtcclxuICAgIF9fc2V0TW9kdWxlRGVmYXVsdChyZXN1bHQsIG1vZCk7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19pbXBvcnREZWZhdWx0KG1vZCkge1xyXG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBkZWZhdWx0OiBtb2QgfTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fY2xhc3NQcml2YXRlRmllbGRHZXQocmVjZWl2ZXIsIHN0YXRlLCBraW5kLCBmKSB7XHJcbiAgICBpZiAoa2luZCA9PT0gXCJhXCIgJiYgIWYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBnZXR0ZXJcIik7XHJcbiAgICBpZiAodHlwZW9mIHN0YXRlID09PSBcImZ1bmN0aW9uXCIgPyByZWNlaXZlciAhPT0gc3RhdGUgfHwgIWYgOiAhc3RhdGUuaGFzKHJlY2VpdmVyKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCByZWFkIHByaXZhdGUgbWVtYmVyIGZyb20gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdFwiKTtcclxuICAgIHJldHVybiBraW5kID09PSBcIm1cIiA/IGYgOiBraW5kID09PSBcImFcIiA/IGYuY2FsbChyZWNlaXZlcikgOiBmID8gZi52YWx1ZSA6IHN0YXRlLmdldChyZWNlaXZlcik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KHJlY2VpdmVyLCBzdGF0ZSwgdmFsdWUsIGtpbmQsIGYpIHtcclxuICAgIGlmIChraW5kID09PSBcIm1cIikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgbWV0aG9kIGlzIG5vdCB3cml0YWJsZVwiKTtcclxuICAgIGlmIChraW5kID09PSBcImFcIiAmJiAhZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIHNldHRlclwiKTtcclxuICAgIGlmICh0eXBlb2Ygc3RhdGUgPT09IFwiZnVuY3Rpb25cIiA/IHJlY2VpdmVyICE9PSBzdGF0ZSB8fCAhZiA6ICFzdGF0ZS5oYXMocmVjZWl2ZXIpKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IHdyaXRlIHByaXZhdGUgbWVtYmVyIHRvIGFuIG9iamVjdCB3aG9zZSBjbGFzcyBkaWQgbm90IGRlY2xhcmUgaXRcIik7XHJcbiAgICByZXR1cm4gKGtpbmQgPT09IFwiYVwiID8gZi5jYWxsKHJlY2VpdmVyLCB2YWx1ZSkgOiBmID8gZi52YWx1ZSA9IHZhbHVlIDogc3RhdGUuc2V0KHJlY2VpdmVyLCB2YWx1ZSkpLCB2YWx1ZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fY2xhc3NQcml2YXRlRmllbGRJbihzdGF0ZSwgcmVjZWl2ZXIpIHtcclxuICAgIGlmIChyZWNlaXZlciA9PT0gbnVsbCB8fCAodHlwZW9mIHJlY2VpdmVyICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiByZWNlaXZlciAhPT0gXCJmdW5jdGlvblwiKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCB1c2UgJ2luJyBvcGVyYXRvciBvbiBub24tb2JqZWN0XCIpO1xyXG4gICAgcmV0dXJuIHR5cGVvZiBzdGF0ZSA9PT0gXCJmdW5jdGlvblwiID8gcmVjZWl2ZXIgPT09IHN0YXRlIDogc3RhdGUuaGFzKHJlY2VpdmVyKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYWRkRGlzcG9zYWJsZVJlc291cmNlKGVudiwgdmFsdWUsIGFzeW5jKSB7XHJcbiAgICBpZiAodmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHZvaWQgMCkge1xyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIHZhbHVlICE9PSBcImZ1bmN0aW9uXCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJPYmplY3QgZXhwZWN0ZWQuXCIpO1xyXG4gICAgICAgIHZhciBkaXNwb3NlLCBpbm5lcjtcclxuICAgICAgICBpZiAoYXN5bmMpIHtcclxuICAgICAgICAgICAgaWYgKCFTeW1ib2wuYXN5bmNEaXNwb3NlKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sLmFzeW5jRGlzcG9zZSBpcyBub3QgZGVmaW5lZC5cIik7XHJcbiAgICAgICAgICAgIGRpc3Bvc2UgPSB2YWx1ZVtTeW1ib2wuYXN5bmNEaXNwb3NlXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGRpc3Bvc2UgPT09IHZvaWQgMCkge1xyXG4gICAgICAgICAgICBpZiAoIVN5bWJvbC5kaXNwb3NlKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sLmRpc3Bvc2UgaXMgbm90IGRlZmluZWQuXCIpO1xyXG4gICAgICAgICAgICBkaXNwb3NlID0gdmFsdWVbU3ltYm9sLmRpc3Bvc2VdO1xyXG4gICAgICAgICAgICBpZiAoYXN5bmMpIGlubmVyID0gZGlzcG9zZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHR5cGVvZiBkaXNwb3NlICE9PSBcImZ1bmN0aW9uXCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJPYmplY3Qgbm90IGRpc3Bvc2FibGUuXCIpO1xyXG4gICAgICAgIGlmIChpbm5lcikgZGlzcG9zZSA9IGZ1bmN0aW9uKCkgeyB0cnkgeyBpbm5lci5jYWxsKHRoaXMpOyB9IGNhdGNoIChlKSB7IHJldHVybiBQcm9taXNlLnJlamVjdChlKTsgfSB9O1xyXG4gICAgICAgIGVudi5zdGFjay5wdXNoKHsgdmFsdWU6IHZhbHVlLCBkaXNwb3NlOiBkaXNwb3NlLCBhc3luYzogYXN5bmMgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChhc3luYykge1xyXG4gICAgICAgIGVudi5zdGFjay5wdXNoKHsgYXN5bmM6IHRydWUgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsdWU7XHJcblxyXG59XHJcblxyXG52YXIgX1N1cHByZXNzZWRFcnJvciA9IHR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xyXG4gICAgdmFyIGUgPSBuZXcgRXJyb3IobWVzc2FnZSk7XHJcbiAgICByZXR1cm4gZS5uYW1lID0gXCJTdXBwcmVzc2VkRXJyb3JcIiwgZS5lcnJvciA9IGVycm9yLCBlLnN1cHByZXNzZWQgPSBzdXBwcmVzc2VkLCBlO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZGlzcG9zZVJlc291cmNlcyhlbnYpIHtcclxuICAgIGZ1bmN0aW9uIGZhaWwoZSkge1xyXG4gICAgICAgIGVudi5lcnJvciA9IGVudi5oYXNFcnJvciA/IG5ldyBfU3VwcHJlc3NlZEVycm9yKGUsIGVudi5lcnJvciwgXCJBbiBlcnJvciB3YXMgc3VwcHJlc3NlZCBkdXJpbmcgZGlzcG9zYWwuXCIpIDogZTtcclxuICAgICAgICBlbnYuaGFzRXJyb3IgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgdmFyIHIsIHMgPSAwO1xyXG4gICAgZnVuY3Rpb24gbmV4dCgpIHtcclxuICAgICAgICB3aGlsZSAociA9IGVudi5zdGFjay5wb3AoKSkge1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFyLmFzeW5jICYmIHMgPT09IDEpIHJldHVybiBzID0gMCwgZW52LnN0YWNrLnB1c2gociksIFByb21pc2UucmVzb2x2ZSgpLnRoZW4obmV4dCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoci5kaXNwb3NlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHIuZGlzcG9zZS5jYWxsKHIudmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyLmFzeW5jKSByZXR1cm4gcyB8PSAyLCBQcm9taXNlLnJlc29sdmUocmVzdWx0KS50aGVuKG5leHQsIGZ1bmN0aW9uKGUpIHsgZmFpbChlKTsgcmV0dXJuIG5leHQoKTsgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHMgfD0gMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgZmFpbChlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocyA9PT0gMSkgcmV0dXJuIGVudi5oYXNFcnJvciA/IFByb21pc2UucmVqZWN0KGVudi5lcnJvcikgOiBQcm9taXNlLnJlc29sdmUoKTtcclxuICAgICAgICBpZiAoZW52Lmhhc0Vycm9yKSB0aHJvdyBlbnYuZXJyb3I7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV4dCgpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19yZXdyaXRlUmVsYXRpdmVJbXBvcnRFeHRlbnNpb24ocGF0aCwgcHJlc2VydmVKc3gpIHtcclxuICAgIGlmICh0eXBlb2YgcGF0aCA9PT0gXCJzdHJpbmdcIiAmJiAvXlxcLlxcLj9cXC8vLnRlc3QocGF0aCkpIHtcclxuICAgICAgICByZXR1cm4gcGF0aC5yZXBsYWNlKC9cXC4odHN4KSR8KCg/OlxcLmQpPykoKD86XFwuW14uL10rPyk/KVxcLihbY21dPyl0cyQvaSwgZnVuY3Rpb24gKG0sIHRzeCwgZCwgZXh0LCBjbSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHN4ID8gcHJlc2VydmVKc3ggPyBcIi5qc3hcIiA6IFwiLmpzXCIgOiBkICYmICghZXh0IHx8ICFjbSkgPyBtIDogKGQgKyBleHQgKyBcIi5cIiArIGNtLnRvTG93ZXJDYXNlKCkgKyBcImpzXCIpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHBhdGg7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICAgIF9fZXh0ZW5kczogX19leHRlbmRzLFxyXG4gICAgX19hc3NpZ246IF9fYXNzaWduLFxyXG4gICAgX19yZXN0OiBfX3Jlc3QsXHJcbiAgICBfX2RlY29yYXRlOiBfX2RlY29yYXRlLFxyXG4gICAgX19wYXJhbTogX19wYXJhbSxcclxuICAgIF9fZXNEZWNvcmF0ZTogX19lc0RlY29yYXRlLFxyXG4gICAgX19ydW5Jbml0aWFsaXplcnM6IF9fcnVuSW5pdGlhbGl6ZXJzLFxyXG4gICAgX19wcm9wS2V5OiBfX3Byb3BLZXksXHJcbiAgICBfX3NldEZ1bmN0aW9uTmFtZTogX19zZXRGdW5jdGlvbk5hbWUsXHJcbiAgICBfX21ldGFkYXRhOiBfX21ldGFkYXRhLFxyXG4gICAgX19hd2FpdGVyOiBfX2F3YWl0ZXIsXHJcbiAgICBfX2dlbmVyYXRvcjogX19nZW5lcmF0b3IsXHJcbiAgICBfX2NyZWF0ZUJpbmRpbmc6IF9fY3JlYXRlQmluZGluZyxcclxuICAgIF9fZXhwb3J0U3RhcjogX19leHBvcnRTdGFyLFxyXG4gICAgX192YWx1ZXM6IF9fdmFsdWVzLFxyXG4gICAgX19yZWFkOiBfX3JlYWQsXHJcbiAgICBfX3NwcmVhZDogX19zcHJlYWQsXHJcbiAgICBfX3NwcmVhZEFycmF5czogX19zcHJlYWRBcnJheXMsXHJcbiAgICBfX3NwcmVhZEFycmF5OiBfX3NwcmVhZEFycmF5LFxyXG4gICAgX19hd2FpdDogX19hd2FpdCxcclxuICAgIF9fYXN5bmNHZW5lcmF0b3I6IF9fYXN5bmNHZW5lcmF0b3IsXHJcbiAgICBfX2FzeW5jRGVsZWdhdG9yOiBfX2FzeW5jRGVsZWdhdG9yLFxyXG4gICAgX19hc3luY1ZhbHVlczogX19hc3luY1ZhbHVlcyxcclxuICAgIF9fbWFrZVRlbXBsYXRlT2JqZWN0OiBfX21ha2VUZW1wbGF0ZU9iamVjdCxcclxuICAgIF9faW1wb3J0U3RhcjogX19pbXBvcnRTdGFyLFxyXG4gICAgX19pbXBvcnREZWZhdWx0OiBfX2ltcG9ydERlZmF1bHQsXHJcbiAgICBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0OiBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0LFxyXG4gICAgX19jbGFzc1ByaXZhdGVGaWVsZFNldDogX19jbGFzc1ByaXZhdGVGaWVsZFNldCxcclxuICAgIF9fY2xhc3NQcml2YXRlRmllbGRJbjogX19jbGFzc1ByaXZhdGVGaWVsZEluLFxyXG4gICAgX19hZGREaXNwb3NhYmxlUmVzb3VyY2U6IF9fYWRkRGlzcG9zYWJsZVJlc291cmNlLFxyXG4gICAgX19kaXNwb3NlUmVzb3VyY2VzOiBfX2Rpc3Bvc2VSZXNvdXJjZXMsXHJcbiAgICBfX3Jld3JpdGVSZWxhdGl2ZUltcG9ydEV4dGVuc2lvbjogX19yZXdyaXRlUmVsYXRpdmVJbXBvcnRFeHRlbnNpb24sXHJcbn07XHJcbiIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbF0sIm5hbWVzIjpbImNyeXB0byIsInBhY2thZ2VKIiwiZnNFeHRyYSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFzQ0E7QUFDTyxTQUFTLFVBQVUsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUU7QUFDMUQsSUFBSSxJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sR0FBRyxJQUFJLEtBQUssSUFBSSxHQUFHLElBQUksR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLENBQUM7QUFDakksSUFBSSxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsSUFBSSxPQUFPLE9BQU8sQ0FBQyxRQUFRLEtBQUssVUFBVSxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ25JLFNBQVMsS0FBSyxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FB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
|
|
3738
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZXMiOlsiLi4vLi4vbm9kZV9tb2R1bGVzL3RzbGliL3RzbGliLmVzNi5qcyIsIi4uLy4uL3NyYy9ub2RlL2ZpbGUudHMiLCIuLi8uLi9zcmMvbm9kZS9Db25maWdMb2FkZXIudHMiLCIuLi8uLi9zcmMvbm9kZS90eXBlcy50cyIsIi4uLy4uL3NyYy9ub2RlL21hbmlmZXN0L01hbmlmZXN0TG9hZGVyLnRzIiwiLi4vLi4vc3JjL25vZGUvbWFuaWZlc3QvTWFuaWZlc3RQYXJzZXIudHMiLCIuLi8uLi9zcmMvbm9kZS9Mb2dnZXIudHMiLCIuLi8uLi9zcmMvbm9kZS9zZXJ2ZXIvU29ja1NlcnZlci50cyIsIi4uLy4uL3NyYy9ub2RlL3NlcnZlci9GaWxlU2VydmVyLnRzIiwiLi4vLi4vc3JjL25vZGUvbWFuaWZlc3QvaTE4bi50cyIsIi4uLy4uL3NyYy9ub2RlL21hbmlmZXN0L01hbmlmZXN0RmFjdG9yeS50cyIsIi4uLy4uL3NyYy9ub2RlL0htci50cyIsIi4uLy4uL3NyYy9ub2RlL0NyeG1CdW5kbGVyLnRzIiwiLi4vLi4vc3JjL25vZGUvV2F0Y2hlci50cyIsIi4uLy4uL3NyYy9ub2RlL3VzZXJzY3JpcHQvQ29kZUJsb2NrLnRzIiwiLi4vLi4vc3JjL25vZGUvdXNlcnNjcmlwdC9Db2RlSW5qZWN0b3IudHMiLCIuLi8uLi9zcmMvbm9kZS91c2Vyc2NyaXB0L1VzZXJzY3JpcHRIZWFkZXIudHMiLCIuLi8uLi9zcmMvbm9kZS91c2Vyc2NyaXB0L1VzZXJzY3JpcHRCdW5kbGVyLnRzIiwiLi4vLi4vc3JjL25vZGUvZGV2ZWxvcG1lbnQvY29kZXMvc3cudHMiLCIuLi8uLi9zcmMvbm9kZS9kZXZlbG9wbWVudC9jb2Rlcy91c2VyanMudHMiLCIuLi8uLi9zcmMvbm9kZS9kZXZlbG9wbWVudC9jb2Rlcy9leHRlbnNpb24udHMiLCIuLi8uLi9zcmMvbm9kZS91dGlscy50cyIsIi4uLy4uL3NyYy9ub2RlL2RldmVsb3BtZW50L0NyZWF0ZURldkNsaWVudC50cyIsIi4uLy4uL3NyYy9ub2RlL2lzb2xhdGVkQ29ubmVjdG9yLnRzIiwiLi4vLi4vc3JjL25vZGUvcGx1Z2lucy9odG1sQnVuZGxlci50cyIsIi4uLy4uL3NyYy9ub2RlL3BvcHVwL1BvcHVwLnRzIiwiLi4vLi4vc3JjL25vZGUvRGlzdHJpYnV0aW9yLnRzIiwiLi4vLi4vc3JjL25vZGUvQnVuZGxlclJlZ2lzdGVyZXIudHMiLCIuLi8uLi9zcmMvbm9kZS91c2Vyc2NyaXB0L1VzZXJzY3JpcHRSZWdpc3RlcmVyLnRzIiwiLi4vLi4vc3JjL25vZGUvaW52ZXJzaWZ5LmNvbmZpZy50cyIsIi4uLy4uL3NyYy9ub2RlL2Rldi50cyIsIi4uLy4uL3NyYy9ub2RlL2J1aWxkLnRzIiwiLi4vLi4vc3JjL25vZGUvbWFpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbkNvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxyXG5cclxuUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbnB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcblRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEhcclxuUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbkFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NXHJcbkxPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbk9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sLCBJdGVyYXRvciAqL1xyXG5cclxudmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbihkLCBiKSB7XHJcbiAgICBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8XHJcbiAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fFxyXG4gICAgICAgIGZ1bmN0aW9uIChkLCBiKSB7IGZvciAodmFyIHAgaW4gYikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiLCBwKSkgZFtwXSA9IGJbcF07IH07XHJcbiAgICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2V4dGVuZHMoZCwgYikge1xyXG4gICAgaWYgKHR5cGVvZiBiICE9PSBcImZ1bmN0aW9uXCIgJiYgYiAhPT0gbnVsbClcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSBcIiArIFN0cmluZyhiKSArIFwiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGxcIik7XHJcbiAgICBleHRlbmRTdGF0aWNzKGQsIGIpO1xyXG4gICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9XHJcbiAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XHJcbn1cclxuXHJcbmV4cG9ydCB2YXIgX19hc3NpZ24gPSBmdW5jdGlvbigpIHtcclxuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiBfX2Fzc2lnbih0KSB7XHJcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XHJcbiAgICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XHJcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSkgdFtwXSA9IHNbcF07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3Jlc3QocywgZSkge1xyXG4gICAgdmFyIHQgPSB7fTtcclxuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxyXG4gICAgICAgIHRbcF0gPSBzW3BdO1xyXG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxyXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XHJcbiAgICAgICAgfVxyXG4gICAgcmV0dXJuIHQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2RlY29yYXRlKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKSB7XHJcbiAgICB2YXIgYyA9IGFyZ3VtZW50cy5sZW5ndGgsIHIgPSBjIDwgMyA/IHRhcmdldCA6IGRlc2MgPT09IG51bGwgPyBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIGtleSkgOiBkZXNjLCBkO1xyXG4gICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBSZWZsZWN0LmRlY29yYXRlID09PSBcImZ1bmN0aW9uXCIpIHIgPSBSZWZsZWN0LmRlY29yYXRlKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKTtcclxuICAgIGVsc2UgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIGlmIChkID0gZGVjb3JhdG9yc1tpXSkgciA9IChjIDwgMyA/IGQocikgOiBjID4gMyA/IGQodGFyZ2V0LCBrZXksIHIpIDogZCh0YXJnZXQsIGtleSkpIHx8IHI7XHJcbiAgICByZXR1cm4gYyA+IDMgJiYgciAmJiBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHIpLCByO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19wYXJhbShwYXJhbUluZGV4LCBkZWNvcmF0b3IpIHtcclxuICAgIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0LCBrZXkpIHsgZGVjb3JhdG9yKHRhcmdldCwga2V5LCBwYXJhbUluZGV4KTsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19lc0RlY29yYXRlKGN0b3IsIGRlc2NyaXB0b3JJbiwgZGVjb3JhdG9ycywgY29udGV4dEluLCBpbml0aWFsaXplcnMsIGV4dHJhSW5pdGlhbGl6ZXJzKSB7XHJcbiAgICBmdW5jdGlvbiBhY2NlcHQoZikgeyBpZiAoZiAhPT0gdm9pZCAwICYmIHR5cGVvZiBmICE9PSBcImZ1bmN0aW9uXCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJGdW5jdGlvbiBleHBlY3RlZFwiKTsgcmV0dXJuIGY7IH1cclxuICAgIHZhciBraW5kID0gY29udGV4dEluLmtpbmQsIGtleSA9IGtpbmQgPT09IFwiZ2V0dGVyXCIgPyBcImdldFwiIDoga2luZCA9PT0gXCJzZXR0ZXJcIiA/IFwic2V0XCIgOiBcInZhbHVlXCI7XHJcbiAgICB2YXIgdGFyZ2V0ID0gIWRlc2NyaXB0b3JJbiAmJiBjdG9yID8gY29udGV4dEluW1wic3RhdGljXCJdID8gY3RvciA6IGN0b3IucHJvdG90eXBlIDogbnVsbDtcclxuICAgIHZhciBkZXNjcmlwdG9yID0gZGVzY3JpcHRvckluIHx8ICh0YXJnZXQgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwgY29udGV4dEluLm5hbWUpIDoge30pO1xyXG4gICAgdmFyIF8sIGRvbmUgPSBmYWxzZTtcclxuICAgIGZvciAodmFyIGkgPSBkZWNvcmF0b3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XHJcbiAgICAgICAgdmFyIGNvbnRleHQgPSB7fTtcclxuICAgICAgICBmb3IgKHZhciBwIGluIGNvbnRleHRJbikgY29udGV4dFtwXSA9IHAgPT09IFwiYWNjZXNzXCIgPyB7fSA6IGNvbnRleHRJbltwXTtcclxuICAgICAgICBmb3IgKHZhciBwIGluIGNvbnRleHRJbi5hY2Nlc3MpIGNvbnRleHQuYWNjZXNzW3BdID0gY29udGV4dEluLmFjY2Vzc1twXTtcclxuICAgICAgICBjb250ZXh0LmFkZEluaXRpYWxpemVyID0gZnVuY3Rpb24gKGYpIHsgaWYgKGRvbmUpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWRcIik7IGV4dHJhSW5pdGlhbGl6ZXJzLnB1c2goYWNjZXB0KGYgfHwgbnVsbCkpOyB9O1xyXG4gICAgICAgIHZhciByZXN1bHQgPSAoMCwgZGVjb3JhdG9yc1tpXSkoa2luZCA9PT0gXCJhY2Nlc3NvclwiID8geyBnZXQ6IGRlc2NyaXB0b3IuZ2V0LCBzZXQ6IGRlc2NyaXB0b3Iuc2V0IH0gOiBkZXNjcmlwdG9yW2tleV0sIGNvbnRleHQpO1xyXG4gICAgICAgIGlmIChraW5kID09PSBcImFjY2Vzc29yXCIpIHtcclxuICAgICAgICAgICAgaWYgKHJlc3VsdCA9PT0gdm9pZCAwKSBjb250aW51ZTtcclxuICAgICAgICAgICAgaWYgKHJlc3VsdCA9PT0gbnVsbCB8fCB0eXBlb2YgcmVzdWx0ICE9PSBcIm9iamVjdFwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiT2JqZWN0IGV4cGVjdGVkXCIpO1xyXG4gICAgICAgICAgICBpZiAoXyA9IGFjY2VwdChyZXN1bHQuZ2V0KSkgZGVzY3JpcHRvci5nZXQgPSBfO1xyXG4gICAgICAgICAgICBpZiAoXyA9IGFjY2VwdChyZXN1bHQuc2V0KSkgZGVzY3JpcHRvci5zZXQgPSBfO1xyXG4gICAgICAgICAgICBpZiAoXyA9IGFjY2VwdChyZXN1bHQuaW5pdCkpIGluaXRpYWxpemVycy51bnNoaWZ0KF8pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChfID0gYWNjZXB0KHJlc3VsdCkpIHtcclxuICAgICAgICAgICAgaWYgKGtpbmQgPT09IFwiZmllbGRcIikgaW5pdGlhbGl6ZXJzLnVuc2hpZnQoXyk7XHJcbiAgICAgICAgICAgIGVsc2UgZGVzY3JpcHRvcltrZXldID0gXztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGFyZ2V0KSBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBjb250ZXh0SW4ubmFtZSwgZGVzY3JpcHRvcik7XHJcbiAgICBkb25lID0gdHJ1ZTtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3J1bkluaXRpYWxpemVycyh0aGlzQXJnLCBpbml0aWFsaXplcnMsIHZhbHVlKSB7XHJcbiAgICB2YXIgdXNlVmFsdWUgPSBhcmd1bWVudHMubGVuZ3RoID4gMjtcclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW5pdGlhbGl6ZXJzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgdmFsdWUgPSB1c2VWYWx1ZSA/IGluaXRpYWxpemVyc1tpXS5jYWxsKHRoaXNBcmcsIHZhbHVlKSA6IGluaXRpYWxpemVyc1tpXS5jYWxsKHRoaXNBcmcpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHVzZVZhbHVlID8gdmFsdWUgOiB2b2lkIDA7XHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19wcm9wS2V5KHgpIHtcclxuICAgIHJldHVybiB0eXBlb2YgeCA9PT0gXCJzeW1ib2xcIiA/IHggOiBcIlwiLmNvbmNhdCh4KTtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3NldEZ1bmN0aW9uTmFtZShmLCBuYW1lLCBwcmVmaXgpIHtcclxuICAgIGlmICh0eXBlb2YgbmFtZSA9PT0gXCJzeW1ib2xcIikgbmFtZSA9IG5hbWUuZGVzY3JpcHRpb24gPyBcIltcIi5jb25jYXQobmFtZS5kZXNjcmlwdGlvbiwgXCJdXCIpIDogXCJcIjtcclxuICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZiwgXCJuYW1lXCIsIHsgY29uZmlndXJhYmxlOiB0cnVlLCB2YWx1ZTogcHJlZml4ID8gXCJcIi5jb25jYXQocHJlZml4LCBcIiBcIiwgbmFtZSkgOiBuYW1lIH0pO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fbWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUpIHtcclxuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5tZXRhZGF0YSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gUmVmbGVjdC5tZXRhZGF0YShtZXRhZGF0YUtleSwgbWV0YWRhdGFWYWx1ZSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cclxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xyXG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxyXG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcclxuICAgIH0pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19nZW5lcmF0b3IodGhpc0FyZywgYm9keSkge1xyXG4gICAgdmFyIF8gPSB7IGxhYmVsOiAwLCBzZW50OiBmdW5jdGlvbigpIHsgaWYgKHRbMF0gJiAxKSB0aHJvdyB0WzFdOyByZXR1cm4gdFsxXTsgfSwgdHJ5czogW10sIG9wczogW10gfSwgZiwgeSwgdCwgZyA9IE9iamVjdC5jcmVhdGUoKHR5cGVvZiBJdGVyYXRvciA9PT0gXCJmdW5jdGlvblwiID8gSXRlcmF0b3IgOiBPYmplY3QpLnByb3RvdHlwZSk7XHJcbiAgICByZXR1cm4gZy5uZXh0ID0gdmVyYigwKSwgZ1tcInRocm93XCJdID0gdmVyYigxKSwgZ1tcInJldHVyblwiXSA9IHZlcmIoMiksIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiAoZ1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzOyB9KSwgZztcclxuICAgIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gc3RlcChvcCkge1xyXG4gICAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcclxuICAgICAgICB3aGlsZSAoZyAmJiAoZyA9IDAsIG9wWzBdICYmIChfID0gMCkpLCBfKSB0cnkge1xyXG4gICAgICAgICAgICBpZiAoZiA9IDEsIHkgJiYgKHQgPSBvcFswXSAmIDIgPyB5W1wicmV0dXJuXCJdIDogb3BbMF0gPyB5W1widGhyb3dcIl0gfHwgKCh0ID0geVtcInJldHVyblwiXSkgJiYgdC5jYWxsKHkpLCAwKSA6IHkubmV4dCkgJiYgISh0ID0gdC5jYWxsKHksIG9wWzFdKSkuZG9uZSkgcmV0dXJuIHQ7XHJcbiAgICAgICAgICAgIGlmICh5ID0gMCwgdCkgb3AgPSBbb3BbMF0gJiAyLCB0LnZhbHVlXTtcclxuICAgICAgICAgICAgc3dpdGNoIChvcFswXSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAwOiBjYXNlIDE6IHQgPSBvcDsgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIDQ6IF8ubGFiZWwrKzsgcmV0dXJuIHsgdmFsdWU6IG9wWzFdLCBkb25lOiBmYWxzZSB9O1xyXG4gICAgICAgICAgICAgICAgY2FzZSA1OiBfLmxhYmVsKys7IHkgPSBvcFsxXTsgb3AgPSBbMF07IGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgY2FzZSA3OiBvcCA9IF8ub3BzLnBvcCgpOyBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICBpZiAoISh0ID0gXy50cnlzLCB0ID0gdC5sZW5ndGggPiAwICYmIHRbdC5sZW5ndGggLSAxXSkgJiYgKG9wWzBdID09PSA2IHx8IG9wWzBdID09PSAyKSkgeyBfID0gMDsgY29udGludWU7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDMgJiYgKCF0IHx8IChvcFsxXSA+IHRbMF0gJiYgb3BbMV0gPCB0WzNdKSkpIHsgXy5sYWJlbCA9IG9wWzFdOyBicmVhazsgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gNiAmJiBfLmxhYmVsIDwgdFsxXSkgeyBfLmxhYmVsID0gdFsxXTsgdCA9IG9wOyBicmVhazsgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0ICYmIF8ubGFiZWwgPCB0WzJdKSB7IF8ubGFiZWwgPSB0WzJdOyBfLm9wcy5wdXNoKG9wKTsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAodFsyXSkgXy5vcHMucG9wKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBvcCA9IGJvZHkuY2FsbCh0aGlzQXJnLCBfKTtcclxuICAgICAgICB9IGNhdGNoIChlKSB7IG9wID0gWzYsIGVdOyB5ID0gMDsgfSBmaW5hbGx5IHsgZiA9IHQgPSAwOyB9XHJcbiAgICAgICAgaWYgKG9wWzBdICYgNSkgdGhyb3cgb3BbMV07IHJldHVybiB7IHZhbHVlOiBvcFswXSA/IG9wWzFdIDogdm9pZCAwLCBkb25lOiB0cnVlIH07XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCB2YXIgX19jcmVhdGVCaW5kaW5nID0gT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xyXG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcclxuICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCBrKTtcclxuICAgIGlmICghZGVzYyB8fCAoXCJnZXRcIiBpbiBkZXNjID8gIW0uX19lc01vZHVsZSA6IGRlc2Mud3JpdGFibGUgfHwgZGVzYy5jb25maWd1cmFibGUpKSB7XHJcbiAgICAgICAgZGVzYyA9IHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfTtcclxuICAgIH1cclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgZGVzYyk7XHJcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XHJcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xyXG4gICAgb1trMl0gPSBtW2tdO1xyXG59KTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2V4cG9ydFN0YXIobSwgbykge1xyXG4gICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gXCJkZWZhdWx0XCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvLCBwKSkgX19jcmVhdGVCaW5kaW5nKG8sIG0sIHApO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX192YWx1ZXMobykge1xyXG4gICAgdmFyIHMgPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgU3ltYm9sLml0ZXJhdG9yLCBtID0gcyAmJiBvW3NdLCBpID0gMDtcclxuICAgIGlmIChtKSByZXR1cm4gbS5jYWxsKG8pO1xyXG4gICAgaWYgKG8gJiYgdHlwZW9mIG8ubGVuZ3RoID09PSBcIm51bWJlclwiKSByZXR1cm4ge1xyXG4gICAgICAgIG5leHQ6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgaWYgKG8gJiYgaSA+PSBvLmxlbmd0aCkgbyA9IHZvaWQgMDtcclxuICAgICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG8gJiYgb1tpKytdLCBkb25lOiAhbyB9O1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKHMgPyBcIk9iamVjdCBpcyBub3QgaXRlcmFibGUuXCIgOiBcIlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3JlYWQobywgbikge1xyXG4gICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdO1xyXG4gICAgaWYgKCFtKSByZXR1cm4gbztcclxuICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlO1xyXG4gICAgdHJ5IHtcclxuICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTtcclxuICAgIH1cclxuICAgIGNhdGNoIChlcnJvcikgeyBlID0geyBlcnJvcjogZXJyb3IgfTsgfVxyXG4gICAgZmluYWxseSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbXCJyZXR1cm5cIl0pKSBtLmNhbGwoaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZpbmFsbHkgeyBpZiAoZSkgdGhyb3cgZS5lcnJvcjsgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGFyO1xyXG59XHJcblxyXG4vKiogQGRlcHJlY2F0ZWQgKi9cclxuZXhwb3J0IGZ1bmN0aW9uIF9fc3ByZWFkKCkge1xyXG4gICAgZm9yICh2YXIgYXIgPSBbXSwgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgYXIgPSBhci5jb25jYXQoX19yZWFkKGFyZ3VtZW50c1tpXSkpO1xyXG4gICAgcmV0dXJuIGFyO1xyXG59XHJcblxyXG4vKiogQGRlcHJlY2F0ZWQgKi9cclxuZXhwb3J0IGZ1bmN0aW9uIF9fc3ByZWFkQXJyYXlzKCkge1xyXG4gICAgZm9yICh2YXIgcyA9IDAsIGkgPSAwLCBpbCA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBpbDsgaSsrKSBzICs9IGFyZ3VtZW50c1tpXS5sZW5ndGg7XHJcbiAgICBmb3IgKHZhciByID0gQXJyYXkocyksIGsgPSAwLCBpID0gMDsgaSA8IGlsOyBpKyspXHJcbiAgICAgICAgZm9yICh2YXIgYSA9IGFyZ3VtZW50c1tpXSwgaiA9IDAsIGpsID0gYS5sZW5ndGg7IGogPCBqbDsgaisrLCBrKyspXHJcbiAgICAgICAgICAgIHJba10gPSBhW2pdO1xyXG4gICAgcmV0dXJuIHI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3NwcmVhZEFycmF5KHRvLCBmcm9tLCBwYWNrKSB7XHJcbiAgICBpZiAocGFjayB8fCBhcmd1bWVudHMubGVuZ3RoID09PSAyKSBmb3IgKHZhciBpID0gMCwgbCA9IGZyb20ubGVuZ3RoLCBhcjsgaSA8IGw7IGkrKykge1xyXG4gICAgICAgIGlmIChhciB8fCAhKGkgaW4gZnJvbSkpIHtcclxuICAgICAgICAgICAgaWYgKCFhcikgYXIgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChmcm9tLCAwLCBpKTtcclxuICAgICAgICAgICAgYXJbaV0gPSBmcm9tW2ldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0by5jb25jYXQoYXIgfHwgQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZnJvbSkpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hd2FpdCh2KSB7XHJcbiAgICByZXR1cm4gdGhpcyBpbnN0YW5jZW9mIF9fYXdhaXQgPyAodGhpcy52ID0gdiwgdGhpcykgOiBuZXcgX19hd2FpdCh2KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNHZW5lcmF0b3IodGhpc0FyZywgX2FyZ3VtZW50cywgZ2VuZXJhdG9yKSB7XHJcbiAgICBpZiAoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xyXG4gICAgdmFyIGcgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSksIGksIHEgPSBbXTtcclxuICAgIHJldHVybiBpID0gT2JqZWN0LmNyZWF0ZSgodHlwZW9mIEFzeW5jSXRlcmF0b3IgPT09IFwiZnVuY3Rpb25cIiA/IEFzeW5jSXRlcmF0b3IgOiBPYmplY3QpLnByb3RvdHlwZSksIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiksIHZlcmIoXCJyZXR1cm5cIiwgYXdhaXRSZXR1cm4pLCBpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XHJcbiAgICBmdW5jdGlvbiBhd2FpdFJldHVybihmKSB7IHJldHVybiBmdW5jdGlvbiAodikgeyByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHYpLnRoZW4oZiwgcmVqZWN0KTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gdmVyYihuLCBmKSB7IGlmIChnW25dKSB7IGlbbl0gPSBmdW5jdGlvbiAodikgeyByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKGEsIGIpIHsgcS5wdXNoKFtuLCB2LCBhLCBiXSkgPiAxIHx8IHJlc3VtZShuLCB2KTsgfSk7IH07IGlmIChmKSBpW25dID0gZihpW25dKTsgfSB9XHJcbiAgICBmdW5jdGlvbiByZXN1bWUobiwgdikgeyB0cnkgeyBzdGVwKGdbbl0odikpOyB9IGNhdGNoIChlKSB7IHNldHRsZShxWzBdWzNdLCBlKTsgfSB9XHJcbiAgICBmdW5jdGlvbiBzdGVwKHIpIHsgci52YWx1ZSBpbnN0YW5jZW9mIF9fYXdhaXQgPyBQcm9taXNlLnJlc29sdmUoci52YWx1ZS52KS50aGVuKGZ1bGZpbGwsIHJlamVjdCkgOiBzZXR0bGUocVswXVsyXSwgcik7IH1cclxuICAgIGZ1bmN0aW9uIGZ1bGZpbGwodmFsdWUpIHsgcmVzdW1lKFwibmV4dFwiLCB2YWx1ZSk7IH1cclxuICAgIGZ1bmN0aW9uIHJlamVjdCh2YWx1ZSkgeyByZXN1bWUoXCJ0aHJvd1wiLCB2YWx1ZSk7IH1cclxuICAgIGZ1bmN0aW9uIHNldHRsZShmLCB2KSB7IGlmIChmKHYpLCBxLnNoaWZ0KCksIHEubGVuZ3RoKSByZXN1bWUocVswXVswXSwgcVswXVsxXSk7IH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNEZWxlZ2F0b3Iobykge1xyXG4gICAgdmFyIGksIHA7XHJcbiAgICByZXR1cm4gaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIsIGZ1bmN0aW9uIChlKSB7IHRocm93IGU7IH0pLCB2ZXJiKFwicmV0dXJuXCIpLCBpW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9LCBpO1xyXG4gICAgZnVuY3Rpb24gdmVyYihuLCBmKSB7IGlbbl0gPSBvW25dID8gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIChwID0gIXApID8geyB2YWx1ZTogX19hd2FpdChvW25dKHYpKSwgZG9uZTogZmFsc2UgfSA6IGYgPyBmKHYpIDogdjsgfSA6IGY7IH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNWYWx1ZXMobykge1xyXG4gICAgaWYgKCFTeW1ib2wuYXN5bmNJdGVyYXRvcikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcclxuICAgIHZhciBtID0gb1tTeW1ib2wuYXN5bmNJdGVyYXRvcl0sIGk7XHJcbiAgICByZXR1cm4gbSA/IG0uY2FsbChvKSA6IChvID0gdHlwZW9mIF9fdmFsdWVzID09PSBcImZ1bmN0aW9uXCIgPyBfX3ZhbHVlcyhvKSA6IG9bU3ltYm9sLml0ZXJhdG9yXSgpLCBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLmFzeW5jSXRlcmF0b3JdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSwgaSk7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgaVtuXSA9IG9bbl0gJiYgZnVuY3Rpb24gKHYpIHsgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHsgdiA9IG9bbl0odiksIHNldHRsZShyZXNvbHZlLCByZWplY3QsIHYuZG9uZSwgdi52YWx1ZSk7IH0pOyB9OyB9XHJcbiAgICBmdW5jdGlvbiBzZXR0bGUocmVzb2x2ZSwgcmVqZWN0LCBkLCB2KSB7IFByb21pc2UucmVzb2x2ZSh2KS50aGVuKGZ1bmN0aW9uKHYpIHsgcmVzb2x2ZSh7IHZhbHVlOiB2LCBkb25lOiBkIH0pOyB9LCByZWplY3QpOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX21ha2VUZW1wbGF0ZU9iamVjdChjb29rZWQsIHJhdykge1xyXG4gICAgaWYgKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29va2VkLCBcInJhd1wiLCB7IHZhbHVlOiByYXcgfSk7IH0gZWxzZSB7IGNvb2tlZC5yYXcgPSByYXc7IH1cclxuICAgIHJldHVybiBjb29rZWQ7XHJcbn07XHJcblxyXG52YXIgX19zZXRNb2R1bGVEZWZhdWx0ID0gT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCB2KSB7XHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgXCJkZWZhdWx0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7XHJcbn0pIDogZnVuY3Rpb24obywgdikge1xyXG4gICAgb1tcImRlZmF1bHRcIl0gPSB2O1xyXG59O1xyXG5cclxudmFyIG93bktleXMgPSBmdW5jdGlvbihvKSB7XHJcbiAgICBvd25LZXlzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMgfHwgZnVuY3Rpb24gKG8pIHtcclxuICAgICAgICB2YXIgYXIgPSBbXTtcclxuICAgICAgICBmb3IgKHZhciBrIGluIG8pIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobywgaykpIGFyW2FyLmxlbmd0aF0gPSBrO1xyXG4gICAgICAgIHJldHVybiBhcjtcclxuICAgIH07XHJcbiAgICByZXR1cm4gb3duS2V5cyhvKTtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2ltcG9ydFN0YXIobW9kKSB7XHJcbiAgICBpZiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSByZXR1cm4gbW9kO1xyXG4gICAgdmFyIHJlc3VsdCA9IHt9O1xyXG4gICAgaWYgKG1vZCAhPSBudWxsKSBmb3IgKHZhciBrID0gb3duS2V5cyhtb2QpLCBpID0gMDsgaSA8IGsubGVuZ3RoOyBpKyspIGlmIChrW2ldICE9PSBcImRlZmF1bHRcIikgX19jcmVhdGVCaW5kaW5nKHJlc3VsdCwgbW9kLCBrW2ldKTtcclxuICAgIF9fc2V0TW9kdWxlRGVmYXVsdChyZXN1bHQsIG1vZCk7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19pbXBvcnREZWZhdWx0KG1vZCkge1xyXG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBkZWZhdWx0OiBtb2QgfTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fY2xhc3NQcml2YXRlRmllbGRHZXQocmVjZWl2ZXIsIHN0YXRlLCBraW5kLCBmKSB7XHJcbiAgICBpZiAoa2luZCA9PT0gXCJhXCIgJiYgIWYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBnZXR0ZXJcIik7XHJcbiAgICBpZiAodHlwZW9mIHN0YXRlID09PSBcImZ1bmN0aW9uXCIgPyByZWNlaXZlciAhPT0gc3RhdGUgfHwgIWYgOiAhc3RhdGUuaGFzKHJlY2VpdmVyKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCByZWFkIHByaXZhdGUgbWVtYmVyIGZyb20gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdFwiKTtcclxuICAgIHJldHVybiBraW5kID09PSBcIm1cIiA/IGYgOiBraW5kID09PSBcImFcIiA/IGYuY2FsbChyZWNlaXZlcikgOiBmID8gZi52YWx1ZSA6IHN0YXRlLmdldChyZWNlaXZlcik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KHJlY2VpdmVyLCBzdGF0ZSwgdmFsdWUsIGtpbmQsIGYpIHtcclxuICAgIGlmIChraW5kID09PSBcIm1cIikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgbWV0aG9kIGlzIG5vdCB3cml0YWJsZVwiKTtcclxuICAgIGlmIChraW5kID09PSBcImFcIiAmJiAhZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIHNldHRlclwiKTtcclxuICAgIGlmICh0eXBlb2Ygc3RhdGUgPT09IFwiZnVuY3Rpb25cIiA/IHJlY2VpdmVyICE9PSBzdGF0ZSB8fCAhZiA6ICFzdGF0ZS5oYXMocmVjZWl2ZXIpKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IHdyaXRlIHByaXZhdGUgbWVtYmVyIHRvIGFuIG9iamVjdCB3aG9zZSBjbGFzcyBkaWQgbm90IGRlY2xhcmUgaXRcIik7XHJcbiAgICByZXR1cm4gKGtpbmQgPT09IFwiYVwiID8gZi5jYWxsKHJlY2VpdmVyLCB2YWx1ZSkgOiBmID8gZi52YWx1ZSA9IHZhbHVlIDogc3RhdGUuc2V0KHJlY2VpdmVyLCB2YWx1ZSkpLCB2YWx1ZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fY2xhc3NQcml2YXRlRmllbGRJbihzdGF0ZSwgcmVjZWl2ZXIpIHtcclxuICAgIGlmIChyZWNlaXZlciA9PT0gbnVsbCB8fCAodHlwZW9mIHJlY2VpdmVyICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiByZWNlaXZlciAhPT0gXCJmdW5jdGlvblwiKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCB1c2UgJ2luJyBvcGVyYXRvciBvbiBub24tb2JqZWN0XCIpO1xyXG4gICAgcmV0dXJuIHR5cGVvZiBzdGF0ZSA9PT0gXCJmdW5jdGlvblwiID8gcmVjZWl2ZXIgPT09IHN0YXRlIDogc3RhdGUuaGFzKHJlY2VpdmVyKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYWRkRGlzcG9zYWJsZVJlc291cmNlKGVudiwgdmFsdWUsIGFzeW5jKSB7XHJcbiAgICBpZiAodmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHZvaWQgMCkge1xyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIHZhbHVlICE9PSBcImZ1bmN0aW9uXCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJPYmplY3QgZXhwZWN0ZWQuXCIpO1xyXG4gICAgICAgIHZhciBkaXNwb3NlLCBpbm5lcjtcclxuICAgICAgICBpZiAoYXN5bmMpIHtcclxuICAgICAgICAgICAgaWYgKCFTeW1ib2wuYXN5bmNEaXNwb3NlKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sLmFzeW5jRGlzcG9zZSBpcyBub3QgZGVmaW5lZC5cIik7XHJcbiAgICAgICAgICAgIGRpc3Bvc2UgPSB2YWx1ZVtTeW1ib2wuYXN5bmNEaXNwb3NlXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGRpc3Bvc2UgPT09IHZvaWQgMCkge1xyXG4gICAgICAgICAgICBpZiAoIVN5bWJvbC5kaXNwb3NlKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sLmRpc3Bvc2UgaXMgbm90IGRlZmluZWQuXCIpO1xyXG4gICAgICAgICAgICBkaXNwb3NlID0gdmFsdWVbU3ltYm9sLmRpc3Bvc2VdO1xyXG4gICAgICAgICAgICBpZiAoYXN5bmMpIGlubmVyID0gZGlzcG9zZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHR5cGVvZiBkaXNwb3NlICE9PSBcImZ1bmN0aW9uXCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJPYmplY3Qgbm90IGRpc3Bvc2FibGUuXCIpO1xyXG4gICAgICAgIGlmIChpbm5lcikgZGlzcG9zZSA9IGZ1bmN0aW9uKCkgeyB0cnkgeyBpbm5lci5jYWxsKHRoaXMpOyB9IGNhdGNoIChlKSB7IHJldHVybiBQcm9taXNlLnJlamVjdChlKTsgfSB9O1xyXG4gICAgICAgIGVudi5zdGFjay5wdXNoKHsgdmFsdWU6IHZhbHVlLCBkaXNwb3NlOiBkaXNwb3NlLCBhc3luYzogYXN5bmMgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChhc3luYykge1xyXG4gICAgICAgIGVudi5zdGFjay5wdXNoKHsgYXN5bmM6IHRydWUgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsdWU7XHJcblxyXG59XHJcblxyXG52YXIgX1N1cHByZXNzZWRFcnJvciA9IHR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xyXG4gICAgdmFyIGUgPSBuZXcgRXJyb3IobWVzc2FnZSk7XHJcbiAgICByZXR1cm4gZS5uYW1lID0gXCJTdXBwcmVzc2VkRXJyb3JcIiwgZS5lcnJvciA9IGVycm9yLCBlLnN1cHByZXNzZWQgPSBzdXBwcmVzc2VkLCBlO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZGlzcG9zZVJlc291cmNlcyhlbnYpIHtcclxuICAgIGZ1bmN0aW9uIGZhaWwoZSkge1xyXG4gICAgICAgIGVudi5lcnJvciA9IGVudi5oYXNFcnJvciA/IG5ldyBfU3VwcHJlc3NlZEVycm9yKGUsIGVudi5lcnJvciwgXCJBbiBlcnJvciB3YXMgc3VwcHJlc3NlZCBkdXJpbmcgZGlzcG9zYWwuXCIpIDogZTtcclxuICAgICAgICBlbnYuaGFzRXJyb3IgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgdmFyIHIsIHMgPSAwO1xyXG4gICAgZnVuY3Rpb24gbmV4dCgpIHtcclxuICAgICAgICB3aGlsZSAociA9IGVudi5zdGFjay5wb3AoKSkge1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFyLmFzeW5jICYmIHMgPT09IDEpIHJldHVybiBzID0gMCwgZW52LnN0YWNrLnB1c2gociksIFByb21pc2UucmVzb2x2ZSgpLnRoZW4obmV4dCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoci5kaXNwb3NlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHIuZGlzcG9zZS5jYWxsKHIudmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyLmFzeW5jKSByZXR1cm4gcyB8PSAyLCBQcm9taXNlLnJlc29sdmUocmVzdWx0KS50aGVuKG5leHQsIGZ1bmN0aW9uKGUpIHsgZmFpbChlKTsgcmV0dXJuIG5leHQoKTsgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHMgfD0gMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgZmFpbChlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocyA9PT0gMSkgcmV0dXJuIGVudi5oYXNFcnJvciA/IFByb21pc2UucmVqZWN0KGVudi5lcnJvcikgOiBQcm9taXNlLnJlc29sdmUoKTtcclxuICAgICAgICBpZiAoZW52Lmhhc0Vycm9yKSB0aHJvdyBlbnYuZXJyb3I7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV4dCgpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19yZXdyaXRlUmVsYXRpdmVJbXBvcnRFeHRlbnNpb24ocGF0aCwgcHJlc2VydmVKc3gpIHtcclxuICAgIGlmICh0eXBlb2YgcGF0aCA9PT0gXCJzdHJpbmdcIiAmJiAvXlxcLlxcLj9cXC8vLnRlc3QocGF0aCkpIHtcclxuICAgICAgICByZXR1cm4gcGF0aC5yZXBsYWNlKC9cXC4odHN4KSR8KCg/OlxcLmQpPykoKD86XFwuW14uL10rPyk/KVxcLihbY21dPyl0cyQvaSwgZnVuY3Rpb24gKG0sIHRzeCwgZCwgZXh0LCBjbSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHN4ID8gcHJlc2VydmVKc3ggPyBcIi5qc3hcIiA6IFwiLmpzXCIgOiBkICYmICghZXh0IHx8ICFjbSkgPyBtIDogKGQgKyBleHQgKyBcIi5cIiArIGNtLnRvTG93ZXJDYXNlKCkgKyBcImpzXCIpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHBhdGg7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICAgIF9fZXh0ZW5kczogX19leHRlbmRzLFxyXG4gICAgX19hc3NpZ246IF9fYXNzaWduLFxyXG4gICAgX19yZXN0OiBfX3Jlc3QsXHJcbiAgICBfX2RlY29yYXRlOiBfX2RlY29yYXRlLFxyXG4gICAgX19wYXJhbTogX19wYXJhbSxcclxuICAgIF9fZXNEZWNvcmF0ZTogX19lc0RlY29yYXRlLFxyXG4gICAgX19ydW5Jbml0aWFsaXplcnM6IF9fcnVuSW5pdGlhbGl6ZXJzLFxyXG4gICAgX19wcm9wS2V5OiBfX3Byb3BLZXksXHJcbiAgICBfX3NldEZ1bmN0aW9uTmFtZTogX19zZXRGdW5jdGlvbk5hbWUsXHJcbiAgICBfX21ldGFkYXRhOiBfX21ldGFkYXRhLFxyXG4gICAgX19hd2FpdGVyOiBfX2F3YWl0ZXIsXHJcbiAgICBfX2dlbmVyYXRvcjogX19nZW5lcmF0b3IsXHJcbiAgICBfX2NyZWF0ZUJpbmRpbmc6IF9fY3JlYXRlQmluZGluZyxcclxuICAgIF9fZXhwb3J0U3RhcjogX19leHBvcnRTdGFyLFxyXG4gICAgX192YWx1ZXM6IF9fdmFsdWVzLFxyXG4gICAgX19yZWFkOiBfX3JlYWQsXHJcbiAgICBfX3NwcmVhZDogX19zcHJlYWQsXHJcbiAgICBfX3NwcmVhZEFycmF5czogX19zcHJlYWRBcnJheXMsXHJcbiAgICBfX3NwcmVhZEFycmF5OiBfX3NwcmVhZEFycmF5LFxyXG4gICAgX19hd2FpdDogX19hd2FpdCxcclxuICAgIF9fYXN5bmNHZW5lcmF0b3I6IF9fYXN5bmNHZW5lcmF0b3IsXHJcbiAgICBfX2FzeW5jRGVsZWdhdG9yOiBfX2FzeW5jRGVsZWdhdG9yLFxyXG4gICAgX19hc3luY1ZhbHVlczogX19hc3luY1ZhbHVlcyxcclxuICAgIF9fbWFrZVRlbXBsYXRlT2JqZWN0OiBfX21ha2VUZW1wbGF0ZU9iamVjdCxcclxuICAgIF9faW1wb3J0U3RhcjogX19pbXBvcnRTdGFyLFxyXG4gICAgX19pbXBvcnREZWZhdWx0OiBfX2ltcG9ydERlZmF1bHQsXHJcbiAgICBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0OiBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0LFxyXG4gICAgX19jbGFzc1ByaXZhdGVGaWVsZFNldDogX19jbGFzc1ByaXZhdGVGaWVsZFNldCxcclxuICAgIF9fY2xhc3NQcml2YXRlRmllbGRJbjogX19jbGFzc1ByaXZhdGVGaWVsZEluLFxyXG4gICAgX19hZGREaXNwb3NhYmxlUmVzb3VyY2U6IF9fYWRkRGlzcG9zYWJsZVJlc291cmNlLFxyXG4gICAgX19kaXNwb3NlUmVzb3VyY2VzOiBfX2Rpc3Bvc2VSZXNvdXJjZXMsXHJcbiAgICBfX3Jld3JpdGVSZWxhdGl2ZUltcG9ydEV4dGVuc2lvbjogX19yZXdyaXRlUmVsYXRpdmVJbXBvcnRFeHRlbnNpb24sXHJcbn07XHJcbiIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsXSwibmFtZXMiOlsiY3J5cHRvIiwicGFja2FnZUoiLCJmc0V4dHJhIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXNDQTtBQUNPLFNBQVMsVUFBVSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRTtBQUMxRCxJQUFJLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxHQUFHLElBQUksS0FBSyxJQUFJLEdBQUcsSUFBSSxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUNqSSxJQUFJLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLE9BQU8sT0FBTyxDQUFDLFFBQVEsS0FBSyxVQUFVLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDbkksU0FBUyxLQUFLLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFB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
|