PageSourceSearch

https://doctorassist.ai/src/dashboard/patientprofile.jsx

js doctorassist.ai collected 2026-10-05 11:57:56 UTC 51,652 bytes, 636 lines download raw bytes

1import { createHotContext as __vite__createHotContext } from "/@vite/client";import.meta.hot = __vite__createHotContext("/src/dashboard/patientprofile.jsx");import __vite__cjsImport0_react_jsxDevRuntime from "/node_modules/.vite/deps/react_jsx-dev-runtime.js?v=dfc5466a"; const jsxDEV = __vite__cjsImport0_react_jsxDevRuntime["jsxDEV"];
2var _s = $RefreshSig$();
3import __vite__cjsImport1_react from "/node_modules/.vite/deps/react.js?v=dfc5466a"; const React = __vite__cjsImport1_react.__esModule ? __vite__cjsImport1_react.default : __vite__cjsImport1_react; const useState = __vite__cjsImport1_react["useState"];
4import {
5  User,
6  FileText,
7  Activity,
8  PieChart,
9  AlertTriangle,
10  Pill,
11  ChevronRight,
12  Stethoscope
13} from "/node_modules/.vite/deps/lucide-react.js?v=dfc5466a";
14import PatientDemographics from "/src/dashboard/PatientDemographics.jsx";
15import ActiveMed from "/src/dashboard/Activemedication.jsx";
16import Cds from "/src/dashboard/cds.jsx";
17import PatternAnalysis from "/src/dashboard/PatternAnalysis.jsx";
18export default function Canvas() {
19  _s();
20  const [items, setItems] = useState([]);
21  const [activeMenu, setActiveMenu] = useState("Patient Data");
22  const onDrop = (e) => {
23    e.preventDefault();
24    const type = e.dataTransfer.getData("nodeType");
25    if (!type) return;
26    setItems(
27      (prev) => [
28        ...prev,
29        {
30          id: Date.now(),
31          type,
32          x: e.clientX,
33          y: e.clientY
34        }
35      ]
36    );
37  };
38  const onDragOver = (e) => e.preventDefault();
39  const removeItem = (id) => {
40    setItems((prev) => prev.filter((item) => item.id !== id));
41  };
42  const menuItems = [
43    { id: "patient", label: "Patient Data", icon: /* @__PURE__ */ jsxDEV(User, { size: 20 }, void 0, false, {
44      fileName: "/app/src/dashboard/patientprofile.jsx",
45      lineNumber: 43,
46      columnNumber: 49
47    }, this) },
48    { id: "retrieval", label: "Data Retrieval", icon: /* @__PURE__ */ jsxDEV(FileText, { size: 20 }, void 0, false, {
49      fileName: "/app/src/dashboard/patientprofile.jsx",
50      lineNumber: 44,
51      columnNumber: 53
52    }, this) },
53    { id: "cds", label: "Clinical Decision Support", icon: /* @__PURE__ */ jsxDEV(Activity, { size: 20 }, void 0, false, {
54      fileName: "/app/src/dashboard/patientprofile.jsx",
55      lineNumber: 45,
56      columnNumber: 58
57    }, this) },
58    { id: "analysis", label: "Pattern Analysis", icon: /* @__PURE__ */ jsxDEV(PieChart, { size: 20 }, void 0, false, {
59      fileName: "/app/src/dashboard/patientprofile.jsx",
60      lineNumber: 46,
61      columnNumber: 54
62    }, this) },
63    { id: "risk", label: "Risk Score", icon: /* @__PURE__ */ jsxDEV(AlertTriangle, { size: 20 }, void 0, false, {
64      fileName: "/app/src/dashboard/patientprofile.jsx",
65      lineNumber: 47,
66      columnNumber: 44
67    }, this) },
68    { id: "meds", label: "Active Medications", icon: /* @__PURE__ */ jsxDEV(Pill, { size: 20 }, void 0, false, {
69      fileName: "/app/src/dashboard/patientprofile.jsx",
70      lineNumber: 48,
71      columnNumber: 52
72    }, this) }
73  ];
74  return /* @__PURE__ */ jsxDEV("div", { style: styles.container, children: [
75    /* @__PURE__ */ jsxDEV("div", { style: styles.sidebar, children: [
76      /* @__PURE__ */ jsxDEV("div", { style: styles.profileSection, children: [
77        /* @__PURE__ */ jsxDEV("div", { style: styles.profileImage, children: /* @__PURE__ */ jsxDEV(User, { size: 48, color: "#ffffff" }, void 0, false, {
78          fileName: "/app/src/dashboard/patientprofile.jsx",
79          lineNumber: 58,
80          columnNumber: 13
81        }, this) }, void 0, false, {
82          fileName: "/app/src/dashboard/patientprofile.jsx",
83          lineNumber: 57,
84          columnNumber: 11
85        }, this),
86        /* @__PURE__ */ jsxDEV("div", { style: styles.profileInfo, children: [
87          /* @__PURE__ */ jsxDEV("h3", { style: styles.profileName, children: "Dr. Alex Morgan" }, void 0, false, {
88            fileName: "/app/src/dashboard/patientprofile.jsx",
89            lineNumber: 61,
90            columnNumber: 13
91          }, this),
92          /* @__PURE__ */ jsxDEV("p", { style: styles.profileRole, children: "Senior Physician" }, void 0, false, {
93            fileName: "/app/src/dashboard/patientprofile.jsx",
94            lineNumber: 62,
95            columnNumber: 13
96          }, this)
97        ] }, void 0, true, {
98          fileName: "/app/src/dashboard/patientprofile.jsx",
99          lineNumber: 60,
100          columnNumber: 11
101        }, this)
102      ] }, void 0, true, {
103        fileName: "/app/src/dashboard/patientprofile.jsx",
104        lineNumber: 56,
105        columnNumber: 9
106      }, this),
107      /* @__PURE__ */ jsxDEV("div", { style: styles.dashboardHeader, children: [
108        /* @__PURE__ */ jsxDEV("div", { style: styles.headerIcon, children: /* @__PURE__ */ jsxDEV(Stethoscope, { size: 22, color: "#3a8ffe" }, void 0, false, {
109          fileName: "/app/src/dashboard/patientprofile.jsx",
110          lineNumber: 69,
111          columnNumber: 13
112        }, this) }, void 0, false, {
113          fileName: "/app/src/dashboard/patientprofile.jsx",
114          lineNumber: 68,
115          columnNumber: 11
116        }, this),
117        /* @__PURE__ */ jsxDEV("div", { style: styles.headerText, children: [
118          /* @__PURE__ */ jsxDEV("p", { style: styles.headerSubtitle, children: "Clinical Intelligence" }, void 0, false, {
119            fileName: "/app/src/dashboard/patientprofile.jsx",
120            lineNumber: 72,
121            columnNumber: 13
122          }, this),
123          /* @__PURE__ */ jsxDEV("h2", { style: styles.headerTitle, children: "Dashboard" }, void 0, false, {
124            fileName: "/app/src/dashboard/patientprofile.jsx",
125            lineNumber: 73,
126            columnNumber: 13
127          }, this)
128        ] }, void 0, true, {
129          fileName: "/app/src/dashboard/patientprofile.jsx",
130          lineNumber: 71,
131          columnNumber: 11
132        }, this)
133      ] }, void 0, true, {
134        fileName: "/app/src/dashboard/patientprofile.jsx",
135        lineNumber: 67,
136        columnNumber: 9
137      }, this),
138      /* @__PURE__ */ jsxDEV("div", { style: styles.menuList, children: menuItems.map(
139        (item) => /* @__PURE__ */ jsxDEV(
140          "div",
141          {
142            style: {
143              ...styles.menuItem,
144              ...activeMenu === item.label ? styles.activeMenuItem : {}
145            },
146            onClick: () => setActiveMenu(item.label),
147            children: [
148              /* @__PURE__ */ jsxDEV("div", { style: styles.menuIcon, children: item.icon }, void 0, false, {
149                fileName: "/app/src/dashboard/patientprofile.jsx",
150                lineNumber: 88,
151                columnNumber: 15
152              }, this),
153              /* @__PURE__ */ jsxDEV("span", { style: styles.menuLabel, children: item.label }, void 0, false, {
154                fileName: "/app/src/dashboard/patientprofile.jsx",
155                lineNumber: 89,
156                columnNumber: 15
157              }, this),
158              /* @__PURE__ */ jsxDEV(
159                ChevronRight,
160                {
161                  size: 18,
162                  style: styles.chevron,
163                  color: activeMenu === item.label ? "#3a8ffe" : "#888"
164                },
165                void 0,
166                false,
167                {
168                  fileName: "/app/src/dashboard/patientprofile.jsx",
169                  lineNumber: 90,
170                  columnNumber: 15
171                },
172                this
173              )
174            ]
175          },
176          item.id,
177          true,
178          {
179            fileName: "/app/src/dashboard/patientprofile.jsx",
180            lineNumber: 80,
181            columnNumber: 11
182          },
183          this
184        )
185      ) }, void 0, false, {
186        fileName: "/app/src/dashboard/patientprofile.jsx",
187        lineNumber: 78,
188        columnNumber: 9
189      }, this),
190      /* @__PURE__ */ jsxDEV("div", { style: styles.statusBar, children: [
191        /* @__PURE__ */ jsxDEV("div", { style: styles.statusDot }, void 0, false, {
192          fileName: "/app/src/dashboard/patientprofile.jsx",
193          lineNumber: 101,
194          columnNumber: 11
195        }, this),
196        /* @__PURE__ */ jsxDEV("span", { style: styles.statusText, children: "System Active" }, void 0, false, {
197          fileName: "/app/src/dashboard/patientprofile.jsx",
198          lineNumber: 102,
199          columnNumber: 11
200        }, this)
201      ] }, void 0, true, {
202        fileName: "/app/src/dashboard/patientprofile.jsx",
203        lineNumber: 100,
204        columnNumber: 9
205      }, this)
206    ] }, void 0, true, {
207      fileName: "/app/src/dashboard/patientprofile.jsx",
208      lineNumber: 54,
209      columnNumber: 7
210    }, this),
211    /* @__PURE__ */ jsxDEV("div", { style: styles.canvas, onDrop, onDragOver, children: [
212      /* @__PURE__ */ jsxDEV("div", { style: styles.blueShape1 }, void 0, false, {
213        fileName: "/app/src/dashboard/patientprofile.jsx",
214        lineNumber: 109,
215        columnNumber: 9
216      }, this),
217      /* @__PURE__ */ jsxDEV("div", { style: styles.blueShape2 }, void 0, false, {
218        fileName: "/app/src/dashboard/patientprofile.jsx",
219        lineNumber: 110,
220        columnNumber: 9
221      }, this),
222      /* @__PURE__ */ jsxDEV("div", { style: styles.gridContainer, children: /* @__PURE__ */ jsxDEV("div", { style: styles.glassCard, children: activeMenu === "Patient Data" ? /* @__PURE__ */ jsxDEV("div", { style: {
223        display: "grid",
224        gridTemplateColumns: "repeat(auto-fit, minmax(500px, 1fr))",
225        gap: "24px",
226        justifyItems: "center",
227        // centers items horizontally in their grid cell
228        alignItems: "start"
229        // align top edges
230      }, children: [
231        /* @__PURE__ */ jsxDEV(PatientDemographics, {}, void 0, false, {
232          fileName: "/app/src/dashboard/patientprofile.jsx",
233          lineNumber: 124,
234          columnNumber: 5
235        }, this),
236        /* @__PURE__ */ jsxDEV(ActiveMed, {}, void 0, false, {
237          fileName: "/app/src/dashboard/patientprofile.jsx",
238          lineNumber: 125,
239          columnNumber: 5
240        }, this),
241        /* @__PURE__ */ jsxDEV(Cds, {}, void 0, false, {
242          fileName: "/app/src/dashboard/patientprofile.jsx",
243          lineNumber: 126,
244          columnNumber: 5
245        }, this),
246        /* @__PURE__ */ jsxDEV(PatternAnalysis, {}, void 0, false, {
247          fileName: "/app/src/dashboard/patientprofile.jsx",
248          lineNumber: 127,
249          columnNumber: 5
250        }, this)
251      ] }, void 0, true, {
252        fileName: "/app/src/dashboard/patientprofile.jsx",
253        lineNumber: 117,
254        columnNumber: 13
255      }, this) : /* @__PURE__ */ jsxDEV("div", { style: styles.canvasHeader, children: [
256        /* @__PURE__ */ jsxDEV("h1", { style: styles.canvasTitle, children: "Clinical Workflow Canvas" }, void 0, false, {
257          fileName: "/app/src/dashboard/patientprofile.jsx",
258          lineNumber: 131,
259          columnNumber: 5
260        }, this),
261        /* @__PURE__ */ jsxDEV("p", { style: styles.canvasSubtitle, children: "Drag and drop clinical modules to build patient care pathways" }, void 0, false, {
262          fileName: "/app/src/dashboard/patientprofile.jsx",
263          lineNumber: 132,
264          columnNumber: 5
265        }, this)
266      ] }, void 0, true, {
267        fileName: "/app/src/dashboard/patientprofile.jsx",
268        lineNumber: 130,
269        columnNumber: 13
270      }, this) }, void 0, false, {
271        fileName: "/app/src/dashboard/patientprofile.jsx",
272        lineNumber: 115,
273        columnNumber: 3
274      }, this) }, void 0, false, {
275        fileName: "/app/src/dashboard/patientprofile.jsx",
276        lineNumber: 114,
277        columnNumber: 9
278      }, this),
279      items.map(
280        (item) => /* @__PURE__ */ jsxDEV(
281          "div",
282          {
283            style: {
284              ...styles.node,
285              left: item.x - 80,
286              top: item.y - 40
287            },
288            children: [
289              /* @__PURE__ */ jsxDEV("span", { children: item.type }, void 0, false, {
290                fileName: "/app/src/dashboard/patientprofile.jsx",
291                lineNumber: 152,
292                columnNumber: 13
293              }, this),
294              /* @__PURE__ */ jsxDEV(
295                "button",
296                {
297                  style: styles.removeBtn,
298                  onClick: () => removeItem(item.id),
299                  children: "✕"
300                },
301                void 0,
302                false,
303                {
304                  fileName: "/app/src/dashboard/patientprofile.jsx",
305                  lineNumber: 153,
306                  columnNumber: 13
307                },
308                this
309              )
310            ]
311          },
312          item.id,
313          true,
314          {
315            fileName: "/app/src/dashboard/patientprofile.jsx",
316            lineNumber: 144,
317            columnNumber: 9
318          },
319          this
320        )
321      )
322    ] }, void 0, true, {
323      fileName: "/app/src/dashboard/patientprofile.jsx",
324      lineNumber: 107,
325      columnNumber: 7
326    }, this)
327  ] }, void 0, true, {
328    fileName: "/app/src/dashboard/patientprofile.jsx",
329    lineNumber: 52,
330    columnNumber: 5
331  }, this);
332}
333_s(Canvas, "jJW8frCfrNq+dxTQvkpZbm/fdnM=");
334_c = Canvas;
335const styles = {
336  container: {
337    display: "flex",
338    minHeight: "100vh",
339    width: "100%",
340    fontFamily: "'SF Pro Display', 'Segoe UI', 'Roboto', 'Inter', -apple-system, BlinkMacSystemFont, sans-serif",
341    color: "#222"
342    // soft text color
343  },
344  /* ===== SIDEBAR STYLES ===== */
345  sidebar: {
346    width: "280px",
347    minHeight: "100vh",
348    padding: "24px 16px",
349    background: "rgba(255, 255, 255, 0.12)",
350    // softer glass
351    backdropFilter: "blur(22px) saturate(180%)",
352    WebkitBackdropFilter: "blur(22px) saturate(180%)",
353    borderRight: "1px solid rgba(255, 255, 255, 0.15)",
354    boxShadow: "0 4px 16px rgba(0,0,0,0.05)",
355    display: "flex",
356    flexDirection: "column",
357    zIndex: 30
358  },
359  /* Profile Section */
360  profileSection: {
361    display: "flex",
362    alignItems: "center",
363    gap: "12px",
364    marginBottom: "32px",
365    paddingBottom: "24px",
366    borderBottom: "1px solid rgba(255, 255, 255, 0.1)"
367  },
368  profileImage: {
369    width: "64px",
370    height: "64px",
371    borderRadius: "50%",
372    background: "rgba(74, 111, 255, 0.3)",
373    display: "flex",
374    alignItems: "center",
375    justifyContent: "center"
376  },
377  profileName: {
378    margin: 0,
379    fontSize: "15px",
380    fontWeight: 400,
381    color: "#111"
382  },
383  profileRole: {
384    margin: "4px 0 0 0",
385    fontSize: "12px",
386    color: "#555",
387    fontWeight: 400
388  },
389  dashboardHeader: {
390    display: "flex",
391    alignItems: "center",
392    gap: "12px",
393    marginBottom: "32px",
394    padding: "16px",
395    background: "rgba(255, 255, 255, 0.15)",
396    borderRadius: "16px",
397    boxShadow: "0 4px 12px rgba(0,0,0,0.05)"
398  },
399  headerText: {
400    flex: 1
401  },
402  headerSubtitle: {
403    margin: 0,
404    fontSize: "11px",
405    fontWeight: 400,
406    color: "#3a8ffe",
407    textTransform: "uppercase",
408    letterSpacing: "0.5px"
409  },
410  headerTitle: {
411    margin: "4px 0 0 0",
412    fontSize: "18px",
413    fontWeight: 400,
414    color: "#222",
415    letterSpacing: "-0.3px"
416  },
417  menuList: {
418    flex: 1,
419    display: "flex",
420    flexDirection: "column",
421    gap: "6px"
422  },
423  menuItem: {
424    display: "flex",
425    alignItems: "center",
426    gap: "12px",
427    padding: "12px 14px",
428    borderRadius: "14px",
429    background: "rgba(255, 255, 255, 0.1)",
430    border: "1px solid rgba(255, 255, 255, 0.08)",
431    cursor: "pointer",
432    transition: "all 0.2s ease",
433    fontWeight: 400,
434    color: "#222",
435    fontSize: "14px"
436  },
437  activeMenuItem: {
438    background: "rgba(58, 143, 254, 0.08)",
439    border: "1px solid rgba(58, 143, 254, 0.2)",
440    boxShadow: "0 2px 8px rgba(58, 143, 254, 0.1)"
441  },
442  menuIcon: {
443    display: "flex",
444    alignItems: "center",
445    justifyContent: "center",
446    opacity: 0.8
447  },
448  chevron: {
449    opacity: 0.5
450  },
451  statusBar: {
452    display: "flex",
453    alignItems: "center",
454    gap: "8px",
455    padding: "10px 14px",
456    marginTop: "20px",
457    background: "rgba(255,255,255,0.12)",
458    border: "1px solid rgba(255,255,255,0.1)",
459    borderRadius: "12px",
460    fontSize: "12px",
461    color: "#555",
462    fontWeight: 400
463  },
464  statusDot: {
465    width: "8px",
466    height: "8px",
467    borderRadius: "50%",
468    background: "#4ade80"
469  },
470  /* Canvas styles */
471  canvas: {
472    position: "relative",
473    flex: 1,
474    minHeight: "100vh",
475    overflowY: "auto",
476    overflowX: "hidden",
477    padding: "40px 20px",
478    fontWeight: 400,
479    color: "#222"
480  },
481  /* ===== CANVAS STYLES ===== */
482  canvas: {
483    position: "relative",
484    flex: 1,
485    minHeight: "100vh",
486    overflowY: "auto",
487    // ✅ allow vertical scroll
488    overflowX: "hidden",
489    padding: "40px 20px"
490  },
491  /* Background Blobs */
492  blueShape1: {
493    position: "fixed",
494    top: "30%",
495    left: "5%",
496    width: "700px",
497    height: "700px",
498    background: "linear-gradient(135deg, #9fccf3ff, #7fb7e8ff )",
499    borderRadius: "50%",
500    opacity: 0.2,
501    filter: "blur(60px)",
502    zIndex: 0
503  },
504  blueShape2: {
505    position: "fixed",
506    bottom: "50%",
507    right: "5%",
508    width: "500px",
509    height: "500px",
510    background: "linear-gradient(135deg, #667eea, #75ec98ff)",
511    borderRadius: "50%",
512    opacity: 0.2,
513    filter: "blur(100px)",
514    zIndex: 0
515  },
516  /* Full Background Grid */
517  gridContainer: {
518    position: "relative",
519    // ✅ change from absolute
520    width: "100%",
521    minHeight: "100%",
522    display: "flex",
523    justifyContent: "center",
524    alignItems: "flex-start",
525    paddingBottom: "40px"
526  },
527  /* Glass Card */
528  glassCard: {
529    width: "95%",
530    minHeight: "95vh",
531    padding: "28px",
532    borderRadius: "26px",
533    background: "rgba(255, 255, 255, 0.20)",
534    backdropFilter: "blur(34px) saturate(220%)",
535    WebkitBackdropFilter: "blur(34px) saturate(220%)",
536    border: "1px solid rgba(255, 255, 255, 0.9)",
537    boxShadow: "0 40px 80px rgba(0, 80, 200, 0.18), inset 0 1px 0 rgba(255, 255, 255, 0.95), inset 0 -1px 0 rgba(255, 255, 255, 0.45)",
538    color: "#111",
539    display: "flex",
540    flexDirection: "column",
541    alignItems: "flex-start",
542    justifyContent: "flex-start",
543    alignItems: "stretch"
544  },
545  /* Canvas Header */
546  canvasHeader: {
547    textAlign: "center",
548    padding: "40px 20px",
549    maxWidth: "800px"
550  },
551  canvasTitle: {
552    fontSize: "48px",
553    fontWeight: 800,
554    color: "#111",
555    margin: 0,
556    letterSpacing: "-1.5px",
557    lineHeight: "1.1",
558    background: "linear-gradient(135deg, #3a8ffe, #667eea)",
559    WebkitBackgroundClip: "text",
560    WebkitTextFillColor: "transparent",
561    backgroundClip: "text"
562  },
563  canvasSubtitle: {
564    fontSize: "18px",
565    fontWeight: 400,
566    color: "#666",
567    margin: "16px 0 0 0",
568    lineHeight: "1.5",
569    maxWidth: "600px"
570  },
571  /* Dropped Nodes (Glass) */
572  node: {
573    position: "absolute",
574    minWidth: "160px",
575    padding: "14px 18px",
576    borderRadius: "20px",
577    background: "rgba(255, 255, 255, 0.35)",
578    backdropFilter: "blur(30px) saturate(200%)",
579    WebkitBackdropFilter: "blur(30px) saturate(200%)",
580    border: "1px solid rgba(255, 255, 255, 0.85)",
581    boxShadow: "0 20px 40px rgba(0, 80, 200, 0.14), inset 0 1px 0 rgba(255, 255, 255, 0.9)",
582    display: "flex",
583    justifyContent: "space-between",
584    alignItems: "center",
585    fontSize: "14px",
586    fontWeight: 600,
587    cursor: "move",
588    zIndex: 20
589  },
590  removeBtn: {
591    width: "26px",
592    height: "26px",
593    borderRadius: "50%",
594    border: "1px solid rgba(255, 255, 255, 0.8)",
595    background: "rgba(255, 255, 255, 0.6)",
596    cursor: "pointer",
597    fontWeight: "bold"
598  },
599  contentStack: {
600    width: "100%",
601    display: "flex",
602    flexDirection: "row",
603    // ← horizontal now
604    gap: "24px",
605    // space between the two components
606    alignItems: "flex-start"
607    // optional: align top edges
608  }
609};
610var _c;
611$RefreshReg$(_c, "Canvas");
612import * as RefreshRuntime from "/@react-refresh";
613const inWebWorker = typeof WorkerGlobalScope !== "undefined" && self instanceof WorkerGlobalScope;
614if (import.meta.hot && !inWebWorker) {
615  if (!window.$RefreshReg$) {
616    throw new Error(
617      "@vitejs/plugin-react can't detect preamble. Something is wrong."
618    );
619  }
620  RefreshRuntime.__hmr_import(import.meta.url).then((currentExports) => {
621    RefreshRuntime.registerExportsForReactRefresh("/app/src/dashboard/patientprofile.jsx", currentExports);
622    import.meta.hot.accept((nextExports) => {
623      if (!nextExports) return;
624      const invalidateMessage = RefreshRuntime.validateRefreshBoundaryAndEnqueueUpdate("/app/src/dashboard/patientprofile.jsx", currentExports, nextExports);
625      if (invalidateMessage) import.meta.hot.invalidate(invalidateMessage);
626    });
627  });
628}
629function $RefreshReg$(type, id) {
630  return RefreshRuntime.register(type, "/app/src/dashboard/patientprofile.jsx " + id);
631}
632function $RefreshSig$() {
633  return RefreshRuntime.createSignatureFunctionForTransform();
634}
635
636//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJtYXBwaW5ncyI6IkFBMENrRDs7QUExQ2xELE9BQU9BLFNBQVNDLGdCQUFnQjtBQUNoQztBQUFBLEVBQ0VDO0FBQUFBLEVBQ0FDO0FBQUFBLEVBQ0FDO0FBQUFBLEVBQ0FDO0FBQUFBLEVBQ0FDO0FBQUFBLEVBQ0FDO0FBQUFBLEVBQ0FDO0FBQUFBLEVBQ0FDO0FBQUFBLE9BQ0s7QUFDUCxPQUFPQyx5QkFBeUI7QUFDaEMsT0FBT0MsZUFBZTtBQUN0QixPQUFPQyxTQUFTO0FBQ2hCLE9BQU9DLHFCQUFxQjtBQUM1Qix3QkFBd0JDLFNBQVM7QU
636FBQUMsS0FBQTtBQUMvQixRQUFNLENBQUNDLE9BQU9DLFFBQVEsSUFBSWhCLFNBQVMsRUFBRTtBQUNyQyxRQUFNLENBQUNpQixZQUFZQyxhQUFhLElBQUlsQixTQUFTLGNBQWM7QUFFM0QsUUFBTW1CLFNBQVNBLENBQUNDLE1BQU07QUFDcEJBLE1BQUVDLGVBQWU7QUFDakIsVUFBTUMsT0FBT0YsRUFBRUcsYUFBYUMsUUFBUSxVQUFVO0FBQzlDLFFBQUksQ0FBQ0YsS0FBTTtBQUVYTjtBQUFBQSxNQUFTLENBQUNTLFNBQVM7QUFBQSxRQUNqQixHQUFHQTtBQUFBQSxRQUNIO0FBQUEsVUFDRUMsSUFBSUMsS0FBS0MsSUFBSTtBQUFBLFVBQ2JOO0FBQUFBLFVBQ0FPLEdBQUdULEVBQUVVO0FBQUFBLFVBQ0xDLEdBQUdYLEVBQUVZO0FBQUFBLFFBQ1A7QUFBQSxNQUFDO0FBQUEsSUFDRjtBQUFBLEVBQ0g7QUFFQSxRQUFNQyxhQUFhQSxDQUFDYixNQUFNQSxFQUFFQyxlQUFlO0FBRTNDLFFBQU1hLGFBQWFBLENBQUNSLE9BQU87QUFDekJWLGFBQVMsQ0FBQ1MsU0FBU0EsS0FBS1UsT0FBTyxDQUFDQyxTQUFTQSxLQUFLVixPQUFPQSxFQUFFLENBQUM7QUFBQSxFQUMxRDtBQUVBLFFBQU1XLFlBQVk7QUFBQSxJQUNoQixFQUFFWCxJQUFJLFdBQVdZLE9BQU8sZ0JBQWdCQyxNQUFNLHVCQUFDLFFBQUssTUFBTSxNQUFaO0FBQUE7QUFBQTtBQUFBO0FBQUEsV0FBZSxFQUFJO0FBQUEsSUFDakUsRUFBRWIsSUFBSSxhQUFhWSxPQUFPLGtCQUFrQkMsTUFBTSx1QkFBQyxZQUFTLE1BQU0sTUFBaEI7QUFBQTtBQUFBO0FBQUE7QUFBQSxXQUFtQixFQUFJO0FBQUEsSUFDekUsRUFBRWIsSUFBSSxPQUFPWSxPQUFPLDZCQUE2QkMsTUFBTSx1QkFBQyxZQUFTLE1BQU0sTUFBaEI7QUFBQTtBQUFBO0FBQUE7QUFBQSxXQUFtQixFQUFJO0FBQUEsSUFDOUUsRUFBRWIsSUFBSSxZQUFZWSxPQUFPLG9CQUFvQkMsTUF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pYW5nbGUiLCJQaWxsIiwiQ2hldnJvblJpZ2h0IiwiU3RldGhvc2NvcGUiLCJQYXRpZW50RGVtb2dyYXBoaWNzIiwiQWN0aXZlTWVkIiwiQ2RzIiwiUGF0dGVybkFuYWx5c2lzIiwiQ2FudmFzIiwiX3MiLCJpdGVtcyIsInNldEl0ZW1zIiwiYWN0aXZlTWVudSIsInNldEFjdGl2ZU1lbnUiLCJvbkRyb3AiLCJlIiwicHJldmVudERlZmF1bHQiLCJ0eXBlIiwiZGF0YVRyYW5zZmVyIiwiZ2V0RGF0YSIsInByZXYiLCJpZCIsIkRhdGUiLCJub3ciLCJ4IiwiY2xpZW50WCIsInkiLCJjbGllbnRZIiwib25EcmFnT3ZlciIsInJlbW92ZUl0ZW0iLCJmaWx0ZXIiLCJpdGVtIiwibWVudUl0ZW1zIiwibGFiZWwiLCJpY29uIiwic3R5bGVzIiwiY29udGFpbmVyIiwic2lkZWJhciIsInByb2ZpbGVTZWN0aW9uIiwicHJvZmlsZUltYWdlIiwicHJvZmlsZUluZm8iLCJwcm9maWxlTmFtZSIsInByb2ZpbGVSb2xlIiwiZGFzaGJvYXJkSGVhZGVyIiwiaGVhZGVySWNvb
636iIsImhlYWRlclRleHQiLCJoZWFkZXJTdWJ0aXRsZSIsImhlYWRlclRpdGxlIiwibWVudUxpc3QiLCJtYXAiLCJtZW51SXRlbSIsImFjdGl2ZU1lbnVJdGVtIiwibWVudUljb24iLCJtZW51TGFiZWwiLCJjaGV2cm9uIiwic3RhdHVzQmFyIiwic3RhdHVzRG90Iiwic3RhdHVzVGV4dCIsImNhbnZhcyIsImJsdWVTaGFwZTEiLCJibHVlU2hhcGUyIiwiZ3JpZENvbnRhaW5lciIsImdsYXNzQ2FyZCIsImRpc3BsYXkiLCJncmlkVGVtcGxhdGVDb2x1bW5zIiwiZ2FwIiwianVzdGlmeUl0ZW1zIiwiYWxpZ25JdGVtcyIsImNhbnZhc0hlYWRlciIsImNhbnZhc1RpdGxlIiwiY2FudmFzU3VidGl0bGUiLCJub2RlIiwibGVmdCIsInRvcCIsInJlbW92ZUJ0biIsIl9jIiwibWluSGVpZ2h0Iiwid2lkdGgiLCJmb250RmFtaWx5IiwiY29sb3IiLCJwYWRkaW5nIiwiYmFja2dyb3VuZCIsImJhY2tkcm9wRmlsdGVyIiwiV2Via2l0QmFja2Ryb3BGaWx0ZXIiLCJib3JkZXJSaWdodCIsImJveFNoYWRvdyIsImZsZXhEaXJlY3Rpb24iLCJ6SW5kZXgiLCJtYXJnaW5Cb3R0b20iLCJwYWRkaW5nQm90dG9tIiwiYm9yZGVyQm90dG9tIiwiaGVpZ2h0IiwiYm9yZGVyUmFkaXVzIiwianVzdGlmeUNvbnRlbnQiLCJtYXJnaW4iLCJmb250U2l6ZSIsImZvbnRXZWlnaHQiLCJmbGV4IiwidGV4dFRyYW5zZm9ybSIsImxldHRlclNwYWNpbmciLCJib3JkZXIiLCJjdXJzb3IiLCJ0cmFuc2l0aW9uIiwib3BhY2l0eSIsIm1hcmdpblRvcCIsInBvc2l0aW9uIiwib3ZlcmZsb3dZIiwib3ZlcmZsb3dYIiwiYm90dG9tIiwicmlnaHQiLCJ0ZXh0QWxpZ24iLCJtYXhXaWR0aCIsImxpbmVIZWlnaHQiLCJXZWJraXRCYWNrZ3JvdW5kQ2xpcCIsIldlYmtpdFRleHRGaWxsQ29sb3IiLCJiYWNrZ3JvdW5kQ2xpcCIsIm1pbldpZHRoIiwiY29udGVudFN0YWNrIiwiJFJlZnJlc2hSZWckIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VzIjpbInBhdGllbnRwcm9maWxlLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IFxuICBVc2VyLCBcbiAgRmlsZVRleHQsIFxuICBBY3Rpdml0eSwgXG4gIFBpZUNoYXJ0LCBcbiAgQWxlcnRUcmlhbmdsZSwgXG4gIFBpbGwsXG4gIENoZXZyb25SaWdodCxcbiAgU3RldGhvc2NvcGVcbn0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiO1xuaW1wb3J0IFBhdGllbnREZW1vZ3JhcGh
636pY3MgZnJvbSAnLi9QYXRpZW50RGVtb2dyYXBoaWNzJztcbmltcG9ydCBBY3RpdmVNZWQgZnJvbSAnLi9BY3RpdmVtZWRpY2F0aW9uJztcbmltcG9ydCBDZHMgZnJvbSAnLi9jZHMuanN4JztcbmltcG9ydCBQYXR0ZXJuQW5hbHlzaXMgZnJvbSAnLi9QYXR0ZXJuQW5hbHlzaXMuanN4JzsgLy8gQWRqdXN0IHBhdGggYXMgbmVlZGVkXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBDYW52YXMoKSB7XG4gIGNvbnN0IFtpdGVtcywgc2V0SXRlbXNdID0gdXNlU3RhdGUoW10pO1xuICBjb25zdCBbYWN0aXZlTWVudSwgc2V0QWN0aXZlTWVudV0gPSB1c2VTdGF0ZShcIlBhdGllbnQgRGF0YVwiKTtcblxuICBjb25zdCBvbkRyb3AgPSAoZSkgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICBjb25zdCB0eXBlID0gZS5kYXRhVHJhbnNmZXIuZ2V0RGF0YShcIm5vZGVUeXBlXCIpO1xuICAgIGlmICghdHlwZSkgcmV0dXJuO1xuXG4gICAgc2V0SXRlbXMoKHByZXYpID0+IFtcbiAgICAgIC4uLnByZXYsXG4gICAgICB7XG4gICAgICAgIGlkOiBEYXRlLm5vdygpLFxuICAgICAgICB0eXBlLFxuICAgICAgICB4OiBlLmNsaWVudFgsXG4gICAgICAgIHk6IGUuY2xpZW50WSxcbiAgICAgIH0sXG4gICAgXSk7XG4gIH07XG5cbiAgY29uc3Qgb25EcmFnT3ZlciA9IChlKSA9PiBlLnByZXZlbnREZWZhdWx0KCk7XG5cbiAgY29uc3QgcmVtb3ZlSXRlbSA9IChpZCkgPT4ge1xuICAgIHNldEl0ZW1zKChwcmV2KSA9PiBwcmV2LmZpbHRlcigoaXRlbSkgPT4gaXRlbS5pZCAhPT0gaWQpKTtcbiAgfTtcblxuICBjb25zdCBtZW51SXRlbXMgPSBbXG4gICAgeyBpZDogXCJwYXRpZW50XCIsIGxhYmVsOiBcIlBhdGllbnQgRGF0YVwiLCBpY29uOiA8VXNlciBzaXplPXsyMH0gLz4gfSxcbiAgICB7IGlkOiBcInJldHJpZXZhbFwiLCBsYWJlbDogXCJEYXRhIFJldHJpZXZhbFwiLCBpY29uOiA8RmlsZVRleHQgc2l6ZT17MjB9IC8+IH0sXG4gICAgeyBpZDogXCJjZHNcIiwgbGFiZWw6IFwiQ2xpbmljYWwgRGVjaXNpb24gU3VwcG9ydFwiLCBpY29uOiA8QWN0aXZpdHkgc2l6ZT17MjB9IC8+IH0sXG4gICAgeyBpZDogXCJhbmFseXNpc1wiLCBsYWJlbDogXCJQYXR0ZXJuIEFuYWx5c2lzXCIsIGljb246IDxQaWVDaGFydCBzaXplPXsyMH0gLz4gfSxcbiAgICB7IGlkOiBcInJpc2tcIiwgbGFiZWw6IFwiUmlzayBTY29yZVwiLCBpY29uOiA8QWxlcnRUcmlhbmdsZSBzaXplPXsyMH0gLz4gfSxcbiAgICB7IGlkOiBcIm1lZHNcIiwgbGFiZWw6IFwiQWN0aXZlIE1lZGljYXRpb25zXCIsIGljb246IDxQaWxsIHNpemU9ezIwfSAvPiB9LFxuICBdO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBzdHlsZT17c3R5bGVzLmNvbnRhaW5lcn0+XG4gICAgICB7LyogTGVmdCBTaWRlIEdsYXNzIE1lbnUgKi99XG4gICAgICA8ZGl2IHN0eWxlPXtzdHlsZXMuc2lkZWJhcn0+XG4gICAgICAgIHsvKiBQcm9maWxlIFNlY3Rpb24gKi99XG4gICAgICAgIDxkaXYgc3R5bGU9e3N0eWxlcy5wcm9maWxlU2VjdGlvbn0+XG4gICAgICAgICAgPGRpdiBzdHlsZT17c3R5bGVzLnByb2ZpbGVJbWFnZX0+XG4gICAgICAgICAgICA8VXNlciBzaXplPXs0OH0gY29sb3I9XCIjZmZmZmZmXCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IHN0eWxlPXtzdHlsZXMucHJvZmlsZUluZm99PlxuICAgICAgICAgICAgPGgzIHN0eWxlPXtzdHlsZXMucHJvZmlsZU5hbWV9PkRyLiBBbGV4IE1vcmdhbjwvaDM+XG4gICAgICAgICAgICA8cCBzdHlsZT17c3R5bGVzLnByb2ZpbGVSb2xlfT5TZW5pb3IgUGh5c2ljaWFuPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICB7LyogRGFzaGJvYXJkIFRpdGxlICovfVxuICAgICAgICA8ZGl2IHN0eWxlPXtzdHlsZXMuZGFzaGJvYXJkSGVhZGVyfT5cbiAgICAgICAgICA8ZGl2IHN0eWxlPXtzdHlsZXMuaGVhZGVySWNvbn0+XG4gICAgICAgICAgICA8U3RldGhvc2NvcGUgc2l6ZT17MjJ9IGNvbG9yPVwiIzNhOGZmZVwiIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBzdHlsZT17c3R5bGVzLmhlYWRlclRleHR9PlxuICAgICAgICAgICAgPHAgc3R5bGU9e3N0eWxlcy5oZWFkZXJTdWJ0aXRsZX0+Q2xpbmljYWwgSW50ZWxsaWdlbmNlPC9wPlxuICAgICAgICAgICAgPGgyIHN0eWxlPXtzdHlsZXMuaGVhZGVyVGl0bGV9PkRhc2hib2FyZDwvaDI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIHsvKiBNZW51IEl0ZW1zICovfVxuICAgICAgICA8ZGl2IHN0eWxlPXtzdHlsZXMubWVudUxpc3R9PlxuICAgICAgICAgIHttZW51SXRlbXMubWFwKChpdGVtKSA9PiAoXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGtleT17aXRlbS5pZH1cbiAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAuLi5zdHlsZXMubWVudUl0ZW0sXG4gICAgICAgICAgICAgICAgLi4uKGFjdGl2ZU1lbnUgPT09IGl0ZW0ubGFiZWwgPyBzdHlsZXMuYWN0aXZlTWVudUl0ZW0gOiB7fSksXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldEFjdGl2ZU1lbnUoaXRlbS5sYWJlbCl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3N0eWxlcy5tZW51SWNvbn0+e2l0ZW0uaWNvbn08L2Rpdj5cbiAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9e3N0eWxlcy5tZW51TGFiZWx9PntpdGVtLmxhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgICAgPENoZXZyb25SaWdodCBcbiAgICAgICAgICAgICAgICBzaXplPXsxOH0gXG4gICAgICAgICAgICAgICAgc3R5bGU9e3N0eWxlcy5jaGV2cm9ufVxuICAgICAgICAgICAgICAgIGNvbG9yPXthY3RpdmVNZW51ID09PSBpdGVtLmxhYmVsID8gXCIjM2E4ZmZlXCIgOiBcIiM4ODhcIn1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICkpfVxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICB7LyogU3RhdHVzIEluZGljYXRvciAqL31cbiAgICAgICAgPGRpdiBzdHlsZT17c3R5bGVzLnN0YXR1c0Jhcn0+XG4gICAgICAgICAgPGRpdiBzdHlsZT17c3R5bGVzLnN0YXR1c0RvdH0gLz5cbiAgICAgICAgICA8c3BhbiBzdHlsZT17c3R5bGVzLnN0YXR1c1RleHR9PlN5c3RlbSBBY3RpdmU8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIHsvKiBNYWluIENhbnZhcyBBcmVhICovfVxuICAgICAgPGRpdiBzdHlsZT17c3R5bGVzLmNhbnZhc30gb25Ecm9wPXtvbkRyb3B9IG9uRHJhZ092ZXI9e29uRHJhZ092ZXJ9PlxuICAgICAgICB7LyogQmFja2dyb3VuZCBCbG9icyAqL31cbiAgICAgICAgPGRpdiBzdHlsZT17c3R5bGVzLmJsdWVTaGFwZTF9IC8+XG4gICAgICAgIDxkaXYgc3R5bGU9e3N0eWxlcy5ibHVlU2hhcGUyfSAvPlxuXG4gICAgICAgI
636HsvKiBGdWxsLWNvdmVyIEdyaWQgKi99XG4gICAgICAgIHsvKiBGdWxsLWNvdmVyIEdyaWQgKi99XG48ZGl2IHN0eWxlPXtzdHlsZXMuZ3JpZENvbnRhaW5lcn0+XG4gIDxkaXYgc3R5bGU9e3N0eWxlcy5nbGFzc0NhcmR9PlxuIHthY3RpdmVNZW51ID09PSBcIlBhdGllbnQgRGF0YVwiID8gKFxuICA8ZGl2IHN0eWxlPXt7XG4gICAgZGlzcGxheTogXCJncmlkXCIsXG4gICAgZ3JpZFRlbXBsYXRlQ29sdW1uczogXCJyZXBlYXQoYXV0by1maXQsIG1pbm1heCg1MDBweCwgMWZyKSlcIixcbiAgICBnYXA6IFwiMjRweFwiLFxuICAgIGp1c3RpZnlJdGVtczogXCJjZW50ZXJcIiwgIC8vIGNlbnRlcnMgaXRlbXMgaG9yaXpvbnRhbGx5IGluIHRoZWlyIGdyaWQgY2VsbFxuICAgIGFsaWduSXRlbXM6IFwic3RhcnRcIiwgICAgIC8vIGFsaWduIHRvcCBlZGdlc1xuICB9fT5cbiAgICA8UGF0aWVudERlbW9ncmFwaGljcyAvPlxuICAgIDxBY3RpdmVNZWQgLz5cbiAgICA8Q2RzIC8+XG4gICAgPFBhdHRlcm5BbmFseXNpcy8+XG4gIDwvZGl2PlxuKSA6IChcbiAgPGRpdiBzdHlsZT17c3R5bGVzLmNhbnZhc0hlYWRlcn0+XG4gICAgPGgxIHN0eWxlPXtzdHlsZXMuY2FudmFzVGl0bGV9PkNsaW5pY2FsIFdvcmtmbG93IENhbnZhczwvaDE+XG4gICAgPHAgc3R5bGU9e3N0eWxlcy5jYW52YXNTdWJ0aXRsZX0+XG4gICAgICBEcmFnIGFuZCBkcm9wIGNsaW5pY2FsIG1vZHVsZXMgdG8gYnVpbGQgcGF0aWVudCBjYXJlIHBhdGh3YXlzXG4gICAgPC9wPlxuICA8L2Rpdj5cbil9XG5cbiAgPC9kaXY+XG48L2Rpdj5cblxuXG4gICAgICAgIHsvKiBEcm9wcGVkIE5vZGVzICovfVxuICAgICAgICB7aXRlbXMubWFwKChpdGVtKSA9PiAoXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAga2V5PXtpdGVtLmlkfVxuICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgLi4uc3R5bGVzLm5vZGUsXG4gICAgICAgICAgICAgIGxlZnQ6IGl0ZW0ueCAtIDgwLFxuICAgICAgICAgICAgICB0b3A6IGl0ZW0ueSAtIDQwLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3Bhbj57aXRlbS50eXBlfTwvc3Bhbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgc3R5bGU9e3N0eWxlcy5yZW1vdmVCdG59XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHJlbW92ZUl0ZW0oaXRlbS5pZCl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIOKclVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICkpfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09IFNUWUxFUyA9PT09PT09PT09PT09PT09PT09PSAqL1xuXG5jb25zdCBzdHlsZXMgPSB7XG4gICBjb250YWluZXI6IHtcbiAgICBkaXNwbGF5OiBcImZsZXhcIixcbiAgICBtaW5IZWlnaHQ6IFwiMTAwdmhcIixcbiAgICB3aWR0aDogXCIxMDAlXCIsXG4gICAgZm9udEZhbWlseTogXCInU0YgUHJvIERpc3BsYXknLCAnU2Vnb2UgVUknLCAnUm9ib3RvJywgJ0ludGVyJywgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBzYW5zLXNlcmlmXCIsXG4gICAgY29sb3I6IFwiIzIyMlwiLCAvLyBzb2Z0IHRleHQgY29sb3JcbiAgfSxcblxuICAvKiA9PT09PSBTSURFQkFSIFNUWUxFUyA9PT09PSAqL1xuICAgc2lkZWJhcjoge1xuICAgIHdpZHRoOiBcIjI4MHB4XCIsXG4gICAgbWluSGVpZ2h0OiBcIjEwMHZoXCIsXG4gICAgcGFkZGluZzogXCIyNHB4IDE2cHhcIixcbiAgICBiYWNrZ3JvdW5kOiBcInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMilcIiwgLy8gc29mdGVyIGdsYXNzXG4gICAgYmFja2Ryb3BGaWx0ZXI6IFwiYmx1cigyMnB4KSBzYXR1cmF0ZSgxODAlKVwiLFxuICAgIFdlYmtpdEJhY2tkcm9wRmlsdGVyOiBcImJsdXIoMjJweCkgc2F0dXJhdGUoMTgwJSlcIixcbiAgICBib3JkZXJSaWdodDogXCIxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KVwiLFxuICAgIGJveFNoYWRvdzogXCIwIDRweCAxNnB4IHJnYmEoMCwwLDAsMC4wNSlcIixcbiAgICBkaXNwbGF5OiBcImZsZXhcIixcbiAgICBmbGV4RGlyZWN0aW9uOiBcImNvbHVtblwiLFxuICAgIHpJbmRleDogMzAsXG4gIH0sXG5cbiAgLyogUHJvZmlsZSBTZWN0aW9uICovXG4gIHByb2ZpbGVTZWN0aW9uOiB7XG4gICAgZGlzcGxheTogXCJmbGV4XCIsXG4gICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgICBnYXA6IFwiMTJweFwiLFxuICAgIG1hcmdpbkJvdHRvbTogXCIzMnB4XCIsXG4gICAgcGFkZGluZ0JvdHRvbTogXCIyNHB4XCIsXG4gICAgYm9yZGVyQm90dG9tOiBcIjFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSlcIixcbiAgfSxcblxuICBwcm9maWxlSW1hZ2U6IHtcbiAgICB3aWR0aDogXCI2NHB4XCIsXG4gICAgaGVpZ2h0OiBcIjY0cHhcIixcbiAgICBib3JkZXJSYWRpdXM6IFwiNTAlXCIsXG4gICAgYmFja2dyb3VuZDogXCJyZ2JhKDc0LCAxMTEsIDI1NSwgMC4zKVwiLFxuICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG4gICAganVzdGlmeUNvbnRlbnQ6IFwiY2VudGVyXCIsXG4gIH0sXG5cbiAgcHJvZmlsZU5hbWU6IHtcbiAgICBtYXJnaW46IDAsXG4gICAgZm9udFNpemU6IFwiMTVweFwiLFxuICAgIGZvbnRXZWlnaHQ6IDQwMCxcbiAgICBjb2xvcjogXCIjMTExXCIsXG4gIH0sXG5cbiAgcHJvZmlsZVJvbGU6IHtcbiAgICBtYXJnaW46IFwiNHB4IDAgMCAwXCIsXG4gICAgZm9udFNpemU6IFwiMTJweFwiLFxuICAgIGNvbG9yOiBcIiM1NTVcIixcbiAgICBmb250V2VpZ2h0OiA0MDAsXG4gIH0sXG5cbiAgZGFzaGJvYXJkSGVhZGVyOiB7XG4gICAgZGlzcGxheTogXCJmbGV4XCIsXG4gICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgICBnYXA6IFwiMTJweFwiLFxuICAgIG1hcmdpbkJvdHRvbTogXCIzMnB4XCIsXG4gICAgcGFkZGluZzogXCIxNnB4XCIsXG4gICAgYmFja2dyb3VuZDogXCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpXCIsXG4gICAgYm9yZGVyUmFkaXVzOiBcIjE2cHhcIixcbiAgICBib3hTaGFkb3c6IFwiMCA0cHggMTJweCByZ2JhKDAsMCwwLDAuMDUpXCIsXG4gIH0sXG5cbiAgaGVhZGVyVGV4dDoge1xuICAgIGZsZXg6IDEsXG4gIH0sXG4gICAgaGVhZGVyU3VidGl0bGU6IHtcbiAgICBtYXJnaW46IDAsXG4gICAgZm9udFNpemU6IFwiMTFweFwiLFxuICAgIGZvbnRXZWlnaHQ6IDQwMCxcbiAgICBjb2xvcjogXCIjM2E4ZmZlXCIsXG4gICAgdGV4dFRyYW5zZm9ybTogXCJ1cHBlcmNhc2VcIixcbiAgICBsZXR0ZXJTcGFjaW5nOiBcIjAuNXB4XCIsXG4gIH0sXG5cbiAgaGVhZGVyVGl0bGU6IHtcbiAgICBtYXJnaW46IFwiNHB4IDAgMCAwXCIsXG4gICAgZm9udFNpemU6IFwiMThweFwiLFxuICAgIGZvbnRXZWlnaHQ6IDQwMCxcbiAgICBjb2xvcjogXCIjMjIyXCIsXG4gICAgbGV0dGVyU3BhY2luZzogXCItMC4zcHhcIixcbiAgfSxcblxuICBtZW51TGlzdDoge1xuICAgIGZsZXg6IDEsXG4gICAgZGlzcGxheTogXCJmbGV4XCIsXG4gICAgZmxleERpcmVjdGlvbj
636ogXCJjb2x1bW5cIixcbiAgICBnYXA6IFwiNnB4XCIsXG4gIH0sXG5cbiAgbWVudUl0ZW06IHtcbiAgICBkaXNwbGF5OiBcImZsZXhcIixcbiAgICBhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuICAgIGdhcDogXCIxMnB4XCIsXG4gICAgcGFkZGluZzogXCIxMnB4IDE0cHhcIixcbiAgICBib3JkZXJSYWRpdXM6IFwiMTRweFwiLFxuICAgIGJhY2tncm91bmQ6IFwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpXCIsXG4gICAgYm9yZGVyOiBcIjFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpXCIsXG4gICAgY3Vyc29yOiBcInBvaW50ZXJcIixcbiAgICB0cmFuc2l0aW9uOiBcImFsbCAwLjJzIGVhc2VcIixcbiAgICBmb250V2VpZ2h0OiA0MDAsXG4gICAgY29sb3I6IFwiIzIyMlwiLFxuICAgIGZvbnRTaXplOiBcIjE0cHhcIixcbiAgfSxcblxuICBhY3RpdmVNZW51SXRlbToge1xuICAgIGJhY2tncm91bmQ6IFwicmdiYSg1OCwgMTQzLCAyNTQsIDAuMDgpXCIsXG4gICAgYm9yZGVyOiBcIjFweCBzb2xpZCByZ2JhKDU4LCAxNDMsIDI1NCwgMC4yKVwiLFxuICAgIGJveFNoYWRvdzogXCIwIDJweCA4cHggcmdiYSg1OCwgMTQzLCAyNTQsIDAuMSlcIixcbiAgfSxcblxuICBtZW51SWNvbjoge1xuICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG4gICAganVzdGlmeUNvbnRlbnQ6IFwiY2VudGVyXCIsXG4gICAgb3BhY2l0eTogMC44LFxuICB9LFxuXG4gIGNoZXZyb246IHtcbiAgICBvcGFjaXR5OiAwLjUsXG4gIH0sXG5cbiAgc3RhdHVzQmFyOiB7XG4gICAgZGlzcGxheTogXCJmbGV4XCIsXG4gICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgICBnYXA6IFwiOHB4XCIsXG4gICAgcGFkZGluZzogXCIxMHB4IDE0cHhcIixcbiAgICBtYXJnaW5Ub3A6IFwiMjBweFwiLFxuICAgIGJhY2tncm91bmQ6IFwicmdiYSgyNTUsMjU1LDI1NSwwLjEyKVwiLFxuICAgIGJvcmRlcjogXCIxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjEpXCIsXG4gICAgYm9yZGVyUmFkaXVzOiBcIjEycHhcIixcbiAgICBmb250U2l6ZTogXCIxMnB4XCIsXG4gICAgY29sb3I6IFwiIzU1NVwiLFxuICAgIGZvbnRXZWlnaHQ6IDQwMCxcbiAgfSxcblxuICBzdGF0dXNEb3Q6IHtcbiAgICB3aWR0aDogXCI4cHhcIixcbiAgICBoZWlnaHQ6IFwiOHB4XCIsXG4gICAgYm9yZGVyUmFkaXVzOiBcIjUwJVwiLFxuICAgIGJhY2tncm91bmQ6IFwiIzRhZGU4MFwiLFxuICB9LFxuXG4gIC8qIENhbnZhcyBzdHlsZXMgKi9cbiAgY2FudmFzOiB7XG4gICAgcG9zaXRpb246IFwicmVsYXRpdmVcIixcbiAgICBmbGV4OiAxLFxuICAgIG1pbkhlaWdodDogXCIxMDB2aFwiLFxuICAgIG92ZXJmbG93WTogXCJhdXRvXCIsXG4gICAgb3ZlcmZsb3dYOiBcImhpZGRlblwiLFxuICAgIHBhZGRpbmc6IFwiNDBweCAyMHB4XCIsXG4gICAgZm9udFdlaWdodDogNDAwLFxuICAgIGNvbG9yOiBcIiMyMjJcIixcbiAgfSxcblxuICAvKiA9PT09PSBDQU5WQVMgU1RZTEVTID09PT09ICovXG5jYW52YXM6IHtcbiAgcG9zaXRpb246IFwicmVsYXRpdmVcIixcbiAgZmxleDogMSxcbiAgbWluSGVpZ2h0OiBcIjEwMHZoXCIsXG4gIG92ZXJmbG93WTogXCJhdXRvXCIsIC8vIOKchSBhbGxvdyB2ZXJ0aWNhbCBzY3JvbGxcbiAgb3ZlcmZsb3dYOiBcImhpZGRlblwiLFxuICBwYWRkaW5nOiBcIjQwcHggMjBweFwiLFxufVxuLFxuXG4gIC8qIEJhY2tncm91bmQgQmxvYnMgKi9cbiAgYmx1ZVNoYXBlMToge1xuICAgIHBvc2l0aW9uOiBcImZpeGVkXCIsXG4gICAgdG9wOiBcIjMwJVwiLFxuICAgIGxlZnQ6IFwiNSVcIixcbiAgICB3aWR0aDogXCI3MDBweFwiLFxuICAgIGhlaWdodDogXCI3MDBweFwiLFxuICAgIGJhY2tncm91bmQ6IFwibGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzlmY2NmM2ZmLCAjN2ZiN2U4ZmYgKVwiLFxuICAgIGJvcmRlclJhZGl1czogXCI1MCVcIixcbiAgICBvcGFjaXR5OiAwLjIsXG4gICAgZmlsdGVyOiBcImJsdXIoNjBweClcIixcbiAgICB6SW5kZXg6IDAsXG4gIH0sXG5cbiAgYmx1ZVNoYXBlMjoge1xuICAgIHBvc2l0aW9uOiBcImZpeGVkXCIsXG4gICAgYm90dG9tOiBcIjUwJVwiLFxuICAgIHJpZ2h0OiBcIjUlXCIsXG4gICAgd2lkdGg6IFwiNTAwcHhcIixcbiAgICBoZWlnaHQ6IFwiNTAwcHhcIixcbiAgICBiYWNrZ3JvdW5kOiBcImxpbmVhci1ncmFkaWVudCgxMzVkZWcsICM2NjdlZWEsICM3NWVjOThmZilcIixcbiAgICBib3JkZXJSYWRpdXM6IFwiNTAlXCIsXG4gICAgb3BhY2l0eTogMC4yLFxuICAgIGZpbHRlcjogXCJibHVyKDEwMHB4KVwiLFxuICAgIHpJbmRleDogMCxcbiAgfSxcblxuICAvKiBGdWxsIEJhY2tncm91bmQgR3JpZCAqL1xuIGdyaWRDb250YWluZXI6IHtcbiAgcG9zaXRpb246IFwicmVsYXRpdmVcIiwgLy8g4pyFIGNoYW5nZSBmcm9tIGFic29sdXRlXG4gIHdpZHRoOiBcIjEwMCVcIixcbiAgbWluSGVpZ2h0OiBcIjEwMCVcIixcbiAgZGlzcGxheTogXCJmbGV4XCIsXG4gIGp1c3RpZnlDb250ZW50OiBcImNlbnRlclwiLFxuICBhbGlnbkl0ZW1zOiBcImZsZXgtc3RhcnRcIixcbiAgcGFkZGluZ0JvdHRvbTogXCI0MHB4XCIsXG59XG4sXG5cbiAgLyogR2xhc3MgQ2FyZCAqL1xuICBnbGFzc0NhcmQ6IHtcbiAgICB3aWR0aDogXCI5NSVcIixcbiAgIG1pbkhlaWdodDogXCI5NXZoXCIsXG4gICAgcGFkZGluZzogXCIyOHB4XCIsXG4gICAgYm9yZGVyUmFkaXVzOiBcIjI2cHhcIixcbiAgICBiYWNrZ3JvdW5kOiBcInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4y
636MClcIixcbiAgICBiYWNrZHJvcEZpbHRlcjogXCJibHVyKDM0cHgpIHNhdHVyYXRlKDIyMCUpXCIsXG4gICAgV2Via2l0QmFja2Ryb3BGaWx0ZXI6IFwiYmx1cigzNHB4KSBzYXR1cmF0ZSgyMjAlKVwiLFxuICAgIGJvcmRlcjogXCIxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpXCIsXG4gICAgYm94U2hhZG93OlxuICAgICAgXCIwIDQwcHggODBweCByZ2JhKDAsIDgwLCAyMDAsIDAuMTgpLCBcIiArXG4gICAgICBcImluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KSwgXCIgK1xuICAgICAgXCJpbnNldCAwIC0xcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNDUpXCIsXG4gICAgY29sb3I6IFwiIzExMVwiLFxuICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgIGZsZXhEaXJlY3Rpb246IFwiY29sdW1uXCIsXG4gICAgYWxpZ25JdGVtczogXCJmbGV4LXN0YXJ0XCIsXG4gICAganVzdGlmeUNvbnRlbnQ6IFwiZmxleC1zdGFydFwiLFxuICAgICAgYWxpZ25JdGVtczogXCJzdHJldGNoXCIsIFxuICB9LFxuXG4gIC8qIENhbnZhcyBIZWFkZXIgKi9cbiAgY2FudmFzSGVhZGVyOiB7XG4gICAgdGV4dEFsaWduOiBcImNlbnRlclwiLFxuICAgIHBhZGRpbmc6IFwiNDBweCAyMHB4XCIsXG4gICAgbWF4V2lkdGg6IFwiODAwcHhcIixcbiAgfSxcblxuICBjYW52YXNUaXRsZToge1xuICAgIGZvbnRTaXplOiBcIjQ4cHhcIixcbiAgICBmb250V2VpZ2h0OiA4MDAsXG4gICAgY29sb3I6IFwiIzExMVwiLFxuICAgIG1hcmdpbjogMCxcbiAgICBsZXR0ZXJTcGFjaW5nOiBcIi0xLjVweFwiLFxuICAgIGxpbmVIZWlnaHQ6IFwiMS4xXCIsXG4gICAgYmFja2dyb3VuZDogXCJsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjM2E4ZmZlLCAjNjY3ZWVhKVwiLFxuICAgIFdlYmtpdEJhY2tncm91bmRDbGlwOiBcInRleHRcIixcbiAgICBXZWJraXRUZXh0RmlsbENvbG9yOiBcInRyYW5zcGFyZW50XCIsXG4gICAgYmFja2dyb3VuZENsaXA6IFwidGV4dFwiLFxuICB9LFxuXG4gIGNhbnZhc1N1YnRpdGxlOiB7XG4gICAgZm9udFNpemU6IFwiMThweFwiLFxuICAgIGZvbnRXZWlnaHQ6IDQwMCxcbiAgICBjb2xvcjogXCIjNjY2XCIsXG4gICAgbWFyZ2luOiBcIjE2cHggMCAwIDBcIixcbiAgICBsaW5lSGVpZ2h0OiBcIjEuNVwiLFxuICAgIG1heFdpZHRoOiBcIjYwMHB4XCIsXG4gIH0sXG5cbiAgLyogRHJvcHBlZCBOb2RlcyAoR2xhc3MpICovXG4gIG5vZGU6IHtcbiAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgIG1pbldpZHRoOiBcIjE2MHB4XCIsXG4gICAgcGFkZGluZzogXCIxNHB4IDE4cHhcIixcbiAgICBib3JkZXJSYWRpdXM6IFwiMjBweFwiLFxuICAgIGJhY2tncm91bmQ6IFwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM1KVwiLFxuICAgIGJhY2tkcm9wRmlsdGVyOiBcImJsdXIoMzBweCkgc2F0dXJhdGUoMjAwJSlcIixcbiAgICBXZWJraXRCYWNrZHJvcEZpbHRlcjogXCJibHVyKDMwcHgpIHNhdHVyYXRlKDIwMCUpXCIsXG4gICAgYm9yZGVyOiBcIjFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODUpXCIsXG4gICAgYm94U2hhZG93OlxuICAgICAgXCIwIDIwcHggNDBweCByZ2JhKDAsIDgwLCAyMDAsIDAuMTQpLCBcIiArXG4gICAgICBcImluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpXCIsXG4gICAgZGlzcGxheTogXCJmbGV4XCIsXG4gICAganVzdGlmeUNvbnRlbnQ6IFwic3BhY2UtYmV0d2VlblwiLFxuICAgIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG4gICAgZm9udFNpemU6IFwiMTRweFwiLFxuICAgIGZvbnRXZWlnaHQ6IDYwMCxcbiAgICBjdXJzb3I6IFwibW92ZVwiLFxuICAgIHpJbmRleDogMjAsXG4gIH0sXG5cbiAgcmVtb3ZlQnRuOiB7XG4gICAgd2lkdGg6IFwiMjZweFwiLFxuICAgIGhlaWdodDogXCIyNnB4XCIsXG4gICAgYm9yZGVyUmFkaXVzOiBcIjUwJVwiLFxuICAgIGJvcmRlcjogXCIxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpXCIsXG4gICAgYmFja2dyb3VuZDogXCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNilcIixcbiAgICBjdXJzb3I6IFwicG9pbnRlclwiLFxuICAgIGZvbnRXZWlnaHQ6IFwiYm9sZFwiLFxuICB9LFxuY29udGVudFN0YWNrOiB7XG4gIHdpZHRoOiBcIjEwMCVcIixcbiAgZGlzcGxheTogXCJmbGV4XCIsXG4gIGZsZXhEaXJlY3Rpb246IFwicm93XCIsIC8vIOKGkCBob3Jpem9udGFsIG5vd1xuICBnYXA6IFwiMjRweFwiLCAgICAgICAgICAgLy8gc3BhY2UgYmV0d2VlbiB0aGUgdHdvIGNvbXBvbmVudHNcbiAgYWxpZ25JdGVtczogXCJmbGV4LXN0YXJ0XCIsIC8vIG9wdGlvbmFsOiBhbGlnbiB0b3AgZWRnZXNcbn0sXG5cbn07Il0sImZpbGUiOiIvYXBwL3NyYy9kYXNoYm9hcmQvcGF0aWVudHByb2ZpbGUuanN4In0=

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.