crossnote 0.9.8 → 0.9.10
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/README.md +1 -1
- package/out/cjs/index.cjs +5 -5
- package/out/dependencies/README.md +2 -2
- package/out/dependencies/katex/katex.min.css +1 -1
- package/out/dependencies/mermaid/mermaid.min.js +950 -793
- package/out/esm/index.mjs +5 -5
- package/out/styles/preview.css +1 -1
- package/out/styles/preview_theme/gothic.css +1 -1
- package/out/types/tsconfig.tsbuildinfo +1 -1
- package/out/webview/preview.js +1 -1
- package/package.json +5 -4
package/README.md
CHANGED
|
@@ -80,7 +80,7 @@ main();
|
|
|
80
80
|
```js
|
|
81
81
|
const config = {
|
|
82
82
|
// File of extensions to be included in the notebook
|
|
83
|
-
markdownFileExtensions: [".md", ".markdown", ".mdown", ".mkdn", ".mkd", ".rmd", ".qmd"],
|
|
83
|
+
markdownFileExtensions: [".md", ".markdown", ".mdown", ".mkdn", ".mkd", ".rmd", ".qmd", ".mdx"],
|
|
84
84
|
|
|
85
85
|
// The content to be included in HTML `<head>` tag.
|
|
86
86
|
// This is useful for adding custom styles or scripts.
|
package/out/cjs/index.cjs
CHANGED
|
@@ -284,8 +284,8 @@ ${se.plainResult}\`\`\`
|
|
|
284
284
|
|
|
285
285
|
`+Pe+`
|
|
286
286
|
|
|
287
|
-
`)}p=xz(p,b,x),V.find(Ie=>Ie.includes("pandoc-citeproc")||Ie.includes("--defaults"))===void 0&&(W.bibliography||W.references)&&V.push("--citeproc");let pe=j.config.imageFolderPath;pe[0]==="/"?pe=Rr.resolve(x,"."+pe):pe=Rr.resolve(b,pe),await _A.sync(pe);let{outputString:Te}=await Kw(p,{fileDirectoryPath:b,projectDirectoryPath:x,imageDirectoryPath:pe,imageFilePrefix:Pa(Q),useRelativeFilePath:!0,codeChunksData:$,graphsCache:F,addOptionsStr:!0,notebook:j});return await _A.sync(Rr.dirname(Q)),await new Promise((Ie,Pe)=>{var Ee;(Ee=(0,$M.execFile)(j.config.pandocPath,V,{cwd:b},ye=>ye?Pe(ye.toString()):Ie(Q)).stdin)==null||Ee.end(Te)})}var GM=require("child_process");function jM(p,b){return new Promise((x,T)=>{(0,GM.execFile)("prince",[p,"--javascript","-o",b],O=>{if(O){let B=O.toString();return O.message.indexOf("spawn prince ENOENT")>=0&&(B='"princexml" is required to be installed.'),T(B)}return x()})})}var Sz=p=>typeof p=="string"?p.trim().toLowerCase():"",Xw=p=>{let b=GD(p.attributes),x=Sz(p.language);return b!==p.attributes||x!==p.language?{language:x,attributes:b}:p};var Zw=(p="")=>{let b,x,T,O=p.trim(),B=O.indexOf("{")!==-1?O.match(/^([^\s{]*)\s*\{(.*?)\}/):O.match(/^([^\s]+)\s+(.+?)$/);if(B?(B[1].length&&(b=B[1]),x=B[2]):(b=O,x=""),x)try{T=Yr(x)}catch{T={}}else T={};let $=T.class?T.class.split(/\s+/):[];return b||(b=$[0]||"
|
|
288
|
-
`:"";return`<pre data-role="codeBlock" data-info="${(0,u0.escape)(O)}" data-parsed-info="${(0,u0.escape)(JSON.stringify(B))}" data-normalized-info="${(0,u0.escape)(JSON.stringify($))}" ${"data-source-line"in B.attributes?`data-source-line="${B.attributes["data-source-line"]}"`:""}>${F}</pre>${j}`}};var WM=(p,b)=>{p.inline.ruler.before("strikethrough","critic-markup",(x,T)=>{if(!b.config.enableCriticMarkupSyntax)return!1;let{src:B,pos:$}=x;if(B[$]==="{"&&(B[$+1]==="-"&&B[$+2]==="-"||B[$+1]==="+"&&B[$+2]==="+"||B[$+1]==="~"&&B[$+2]==="~"||B[$+1]==="="&&B[$+2]==="="||B[$+1]===">"&&B[$+2]===">")){let F=B.slice($+1,$+3),j=F[0]===">"?"<<}":`${F}}`,W=$+3,V=-1,te=null;for(;W<B.length;){if(B.startsWith(j,W)){V=W;break}W+=1}if(V>=0)te=B.slice($+3,V);else return!1;if(te&&!T){let ae=x.push("critic-markup","",0);return ae.content=te,ae.tag=F,x.pos=V+j.length,!0}else return!1}else return!1}),p.renderer.rules["critic-markup"]=(x,T)=>{let O=x[T],B=O.tag,$=O.content;if(B==="--")return`<del>${$}</del>`;if(B==="++")return`<ins>${$}</ins>`;if(B==="==")return`<mark>${$}</mark>`;if(B===">>")return`<span style="display:none">${$}</span>`;{let F=$.split("~>");return F.length===2?`<del>${F[0]}</del><ins>${F[1]}</ins>`:"<code>Error: ~> not found.</code>"}}};var VM=p=>{p.core.ruler.push("curly_bracket_attributes",x=>{let T=x.tokens;for(let O=0;O<T.length;O++)if(T[O].type==="heading_open"){let B=T[O+1];if(B.type==="inline"){if(b(B),!B.children||B.children.length===0)continue;let $=B.children[B.children.length-1];if($.type==="text"){let F=$.content.match(/{([^}]+)}\s*$/);if(F){let j=Yr(F[1]);$.content=$.content.replace(F[0],"");for(let W in j)T[O].attrJoin(W,j[W])}}}}else T[O].type==="inline"&&b(T[O])});function b(x){var O;let T=x.children;if(!(!T||T.length===0))for(let B=0;B<T.length;B++){let $=T[B];if($.type==="image"&&((O=T[B+1])==null?void 0:O.type)==="text"){let F=T[B+1].content.match(/^{([^}]+)}/);if(F){let j=Yr(F[1]);T[B+1].content=T[B+1].content.replace(F[0],"");for(let W in j)$.attrJoin(W,j[W])}}else if($.type==="link_open"){let F=B+1;for(;F<T.length&&T[F].type!=="link_close";)F++;if(B=F,F<T.length-1&&T[F+1].type==="text"){let j=T[F+1].content.match(/^{([^}]+)}/);if(j){let W=Yr(j[1]);T[F+1].content=T[F+1].content.replace(j[0],"");for(let V in W)$.attrJoin(V,W[V])}}}}}};var XM=We(require("markdown-it-emoji")),ZM=We(require("markdown-it-emoji/lib/data/full.json"));var Az=["fa-accessible-icon","fa-american-sign-language-interpreting","fa-assistive-listening-systems","fa-audio-description","fa-blind","fa-braille","fa-closed-captioning","fa-deaf","fa-low-vision","fa-phone-volume","fa-question-circle","fa-sign-language","fa-tty","fa-universal-access","fa-wheelchair","fa-bell","fa-bell-slash","fa-exclamation","fa-exclamation-circle","fa-exclamation-triangle","fa-radiation","fa-radiation-alt","fa-skull-crossbones","fa-cat","fa-crow","fa-dog","fa-dove","fa-dragon","fa-feather","fa-feather-alt","fa-fish","fa-frog","fa-hippo","fa-horse","fa-horse-head","fa-kiwi-bird","fa-otter","fa-paw","fa-spider","fa-angle-double-down","fa-angle-double-left","fa-angle-double-right","fa-angle-double-up","fa-angle-down","fa-angle-left","fa-angle-right","fa-angle-up","fa-arrow-alt-circle-down","fa-arrow-alt-circle-left","fa-arrow-alt-circle-right","fa-arrow-alt-circle-up","fa-arrow-circle-down","fa-arrow-circle-left","fa-arrow-circle-right","fa-arrow-circle-up","fa-arrow-down","fa-arrow-left","fa-arrow-right","fa-arrow-up","fa-arrows-alt","fa-arrows-alt-h","fa-arrows-alt-v","fa-caret-down","fa-caret-left","fa-caret-right","fa-caret-square-down","fa-caret-square-left","fa-caret-square-right","fa-caret-square-up","fa-caret-up","fa-cart-arrow-down","fa-chart-line","fa-chevron-circle-down","fa-chevron-circle-left","fa-chevron-circle-right","fa-chevron-circle-up","fa-chevron-down","fa-chevron-left","fa-chevron-right","fa-chevron-up","fa-cloud-download-alt","fa-cloud-upload-alt","fa-compress-alt","fa-compress-arrows-alt","fa-download","fa-exchange-alt","fa-expand-alt","fa-expand-arrows-alt","fa-external-link-alt","fa-external-link-square-alt","fa-hand-point-down","fa-hand-point-left","fa-hand-point-right","fa-hand-point-up","fa-hand-pointer","fa-history","fa-level-down-alt","fa-level-up-alt","fa-location-arrow","fa-long-arrow-alt-down","fa-long-arrow-alt-left","fa-long-arrow-alt-right","fa-long-arrow-alt-up","fa-mouse-pointer","fa-play","fa-random","fa-recycle","fa-redo","fa-redo-alt","fa-reply","fa-reply-all","fa-retweet","fa-share","fa-share-square","fa-sign-in-alt","fa-sign-out-alt","fa-sort","fa-sort-alpha-down","fa-sort-alpha-down-alt","fa-sort-alpha-up","fa-sort-alpha-up-alt","fa-sort-amount-down","fa-sort-amount-down-alt","fa-sort-amount-up","fa-sort-amount-up-alt","fa-sort-down","fa-sort-numeric-down","fa-sort-numeric-down-alt","fa-sort-numeric-up","fa-sort-numeric-up-alt","fa-sort-up","fa-sync","fa-sync-alt","fa-text-height","fa-text-width","fa-undo","fa-undo-alt","fa-upload","fa-audio-description","fa-backward","fa-broadcast-tower","fa-circle","fa-closed-captioning","fa-compress","fa-compress-alt","fa-compress-arrows-alt","fa-eject","fa-expand","fa-expand-alt","fa-expand-arrows-alt","fa-fast-backward","fa-fast-forward","fa-file-audio","fa-file-video","fa-film","fa-forward","fa-headphones","fa-microphone","fa-microphone-alt","fa-microphone-alt-slash","fa-microphone-slash","fa-music","fa-pause","fa-pause-circle","fa-phone-volume","fa-photo-video","fa-play","fa-play-circle","fa-podcast","fa-random","fa-redo","fa-redo-alt","fa-rss","fa-rss-square","fa-step-backward","fa-step-forward","fa-stop","fa-stop-circle","fa-sync","fa-sync-alt","fa-tv","fa-undo","fa-undo-alt","fa-video","fa-volume-down","fa-volume-mute","fa-volume-off","fa-volume-up","fa-youtube","fa-air-freshener","fa-ambulance","fa-bus","fa-bus-alt","fa-car","fa-car-alt","fa-car-battery","fa-car-crash","fa-car-side","fa-caravan","fa-charging-station","fa-gas-pump","fa-motorcycle","fa-oil-can","fa-shuttle-van","fa-tachometer-alt","fa-taxi","fa-trailer","fa-truck","fa-truck-monster","fa-truck-pickup","fa-apple-alt","fa-campground","fa-cloud-sun","fa-drumstick-bite","fa-football-ball","fa-hiking","fa-mountain","fa-tractor","fa-tree","fa-wind","fa-wine-bottle","fa-beer","fa-blender","fa-cocktail","fa-coffee","fa-flask","fa-glass-cheers","fa-glass-martini","fa-glass-martini-alt","fa-glass-whiskey","fa-mug-hot","fa-wine-bottle","fa-wine-glass","fa-wine-glass-alt","fa-archway","fa-building","fa-campground","fa-church","fa-city","fa-clinic-medical","fa-dungeon","fa-gopuram","fa-home","fa-hospital","fa-hospital-alt","fa-hospital-user","fa-hotel","fa-house-damage","fa-igloo","fa-industry","fa-kaaba","fa-landmark","fa-monument","fa-mosque","fa-place-of-worship","fa-school","fa-store","fa-store-alt","fa-synagogue","fa-torii-gate","fa-university","fa-vihara","fa-warehouse","fa-address-book","fa-address-card","fa-archive","fa-balance-scale","fa-balance-scale-left","fa-balance-scale-right","fa-birthday-cake","fa-book","fa-briefcase","fa-building","fa-bullhorn","fa-bullseye","fa-business-time","fa-calculator","fa-calendar","fa-calendar-alt","fa-certificate","fa-chart-area","fa-chart-bar","fa-chart-line","fa-chart-pie","fa-city","fa-clipboard","fa-coffee","fa-columns","fa-compass","fa-copy","fa-copyright","fa-cut","fa-edit","fa-envelope","fa-envelope-open","fa-envelope-square","fa-eraser","fa-fax","fa-file","fa-file-alt","fa-folder","fa-folder-minus","fa-folder-open","fa-folder-plus","fa-glasses","fa-globe","fa-highlighter","fa-industry","fa-landmark","fa-laptop-house","fa-marker","fa-paperclip","fa-paste","fa-pen","fa-pen-alt","fa-pen-fancy","fa-pen-nib","fa-pen-square","fa-pencil-alt","fa-percent","fa-phone","fa-phone-alt","fa-phone-slash","fa-phone-square","fa-phone-square-alt","fa-phone-volume","fa-print","fa-project-diagram","fa-registered","fa-save","fa-sitemap","fa-socks","fa-sticky-note","fa-stream","fa-table","fa-tag","fa-tags","fa-tasks","fa-thumbtack","fa-trademark","fa-wallet","fa-binoculars","fa-campground","fa-caravan","fa-compass","fa-faucet","fa-fire","fa-fire-alt","fa-first-aid","fa-frog","fa-hiking","fa-map","fa-map-marked","fa-map-marked-alt","fa-map-signs","fa-mountain","fa-route","fa-toilet-paper","fa-trailer","fa-tree","fa-dollar-sign","fa-donate","fa-dove","fa-gift","fa-globe","fa-hand-holding-heart","fa-hand-holding-usd","fa-hand-holding-water","fa-hands-helping","fa-handshake","fa-heart","fa-leaf","fa-parachute-box","fa-piggy-bank","fa-ribbon","fa-seedling","fa-comment","fa-comment-alt","fa-comment-dots","fa-comment-medical","fa-comment-slash","fa-comments","fa-frown","fa-icons","fa-meh","fa-phone","fa-phone-alt","fa-phone-slash","fa-poo","fa-quote-left","fa-quote-right","fa-smile","fa-sms","fa-video","fa-video-slash","fa-chess","fa-chess-bishop","fa-chess-board","fa-chess-king","fa-chess-knight","fa-chess-pawn","fa-chess-queen","fa-chess-rook","fa-square-full","fa-apple-alt","fa-baby","fa-baby-carriage","fa-bath","fa-biking","fa-birthday-cake","fa-cookie","fa-cookie-bite","fa-gamepad","fa-ice-cream","fa-mitten","fa-robot","fa-school","fa-shapes","fa-snowman","fa-graduation-cap","fa-hat-cowboy","fa-hat-cowboy-side","fa-hat-wizard","fa-mitten","fa-shoe-prints","fa-socks","fa-tshirt","fa-user-tie","fa-archive","fa-barcode","fa-bath","fa-bug","fa-code","fa-code-branch","fa-coffee","fa-file","fa-file-alt","fa-file-code","fa-filter","fa-fire-extinguisher","fa-folder","fa-folder-open","fa-keyboard","fa-laptop-code","fa-microchip","fa-project-diagram","fa-qrcode","fa-shield-alt","fa-sitemap","fa-stream","fa-terminal","fa-user-secret","fa-window-close","fa-window-maximize","fa-window-minimize","fa-window-restore","fa-address-book","fa-address-card","fa-american-sign-language-interpreting","fa-assistive-listening-systems","fa-at","fa-bell","fa-bell-slash","fa-bluetooth","fa-bluetooth-b","fa-broadcast-tower","fa-bullhorn","fa-chalkboard","fa-comment","fa-comment-alt","fa-comments","fa-envelope","fa-envelope-open","fa-envelope-square","fa-fax","fa-inbox","fa-language","fa-microphone","fa-microphone-alt","fa-microphone-alt-slash","fa-microphone-slash","fa-mobile","fa-mobile-alt","fa-paper-plane","fa-phone","fa-phone-alt","fa-phone-slash","fa-phone-square","fa-phone-square-alt","fa-phone-volume","fa-rss","fa-rss-square","fa-tty","fa-voicemail","fa-wifi","fa-compact-disc","fa-database","fa-desktop","fa-download","fa-ethernet","fa-hdd","fa-headphones","fa-keyboard","fa-laptop","fa-laptop-house","fa-memory","fa-microchip","fa-mobile","fa-mobile-alt","fa-mouse","fa-plug","fa-power-off","fa-print","fa-satellite","fa-satellite-dish","fa-save","fa-sd-card","fa-server","fa-sim-card","fa-stream","fa-tablet","fa-tablet-alt","fa-tv","fa-upload","fa-brush","fa-drafting-compass","fa-dumpster","fa-hammer","fa-hard-hat","fa-paint-roller","fa-pencil-alt","fa-pencil-ruler","fa-ruler","fa-ruler-combined","fa-ruler-horizontal","fa-ruler-vertical","fa-screwdriver","fa-toolbox","fa-tools","fa-truck-pickup","fa-wrench","fa-bitcoin","fa-btc","fa-dollar-sign","fa-ethereum","fa-euro-sign","fa-gg","fa-gg-circle","fa-hryvnia","fa-lira-sign","fa-money-bill","fa-money-bill-alt","fa-money-bill-wave","fa-money-bill-wave-alt","fa-money-check","fa-money-check-alt","fa-pound-sign","fa-ruble-sign","fa-rupee-sign","fa-shekel-sign","fa-tenge","fa-won-sign","fa-yen-sign","fa-bell","fa-bell-slash","fa-calendar","fa-calendar-alt","fa-calendar-check","fa-calendar-minus","fa-calendar-plus","fa-calendar-times","fa-clock","fa-hourglass","fa-hourglass-end","fa-hourglass-half","fa-hourglass-start","fa-stopwatch","fa-adjust","fa-bezier-curve","fa-brush","fa-clone","fa-copy","fa-crop","fa-crop-alt","fa-crosshairs","fa-cut","fa-drafting-compass","fa-draw-polygon","fa-edit","fa-eraser","fa-eye","fa-eye-dropper","fa-eye-slash","fa-fill","fa-fill-drip","fa-highlighter","fa-icons","fa-layer-group","fa-magic","fa-marker","fa-object-group","fa-object-ungroup","fa-paint-brush","fa-paint-roller","fa-palette","fa-paste","fa-pen","fa-pen-alt","fa-pen-fancy","fa-pen-nib","fa-pencil-alt","fa-pencil-ruler","fa-ruler-combined","fa-ruler-horizontal","fa-ruler-vertical","fa-save","fa-splotch","fa-spray-can","fa-stamp","fa-swatchbook","fa-tint","fa-tint-slash","fa-vector-square","fa-align-center","fa-align-justify","fa-align-left","fa-align-right","fa-bold","fa-border-all","fa-border-none","fa-border-style","fa-clipboard","fa-clone","fa-columns","fa-copy","fa-cut","fa-edit","fa-eraser","fa-file","fa-file-alt","fa-font","fa-glasses","fa-heading","fa-highlighter","fa-i-cursor","fa-icons","fa-indent","fa-italic","fa-link","fa-list","fa-list-alt","fa-list-ol","fa-list-ul","fa-marker","fa-outdent","fa-paper-plane","fa-paperclip","fa-paragraph","fa-paste","fa-pen","fa-pen-alt","fa-pen-fancy","fa-pen-nib","fa-pencil-alt","fa-print","fa-quote-left","fa-quote-right","fa-redo","fa-redo-alt","fa-remove-format","fa-reply","fa-reply-all","fa-screwdriver","fa-share","fa-spell-check","fa-strikethrough","fa-subscript","fa-superscript","fa-sync","fa-sync-alt","fa-table","fa-tasks","fa-text-height","fa-text-width","fa-th","fa-th-large","fa-th-list","fa-tools","fa-trash","fa-trash-alt","fa-trash-restore","fa-trash-restore-alt","fa-underline","fa-undo","fa-undo-alt","fa-unlink","fa-wrench","fa-apple-alt","fa-atom","fa-award","fa-bell","fa-bell-slash","fa-book-open","fa-book-reader","fa-chalkboard","fa-chalkboard-teacher","fa-graduation-cap","fa-laptop-code","fa-microscope","fa-music","fa-school","fa-shapes","fa-theater-masks","fa-user-graduate","fa-angry","fa-dizzy","fa-flushed","fa-frown","fa-frown-open","fa-grimace","fa-grin","fa-grin-alt","fa-grin-beam","fa-grin-beam-sweat","fa-grin-hearts","fa-grin-squint","fa-grin-squint-tears","fa-grin-stars","fa-grin-tears","fa-grin-tongue","fa-grin-tongue-squint","fa-grin-tongue-wink","fa-grin-wink","fa-kiss","fa-kiss-beam","fa-kiss-wink-heart","fa-laugh","fa-laugh-beam","fa-laugh-squint","fa-laugh-wink","fa-meh","fa-meh-blank","fa-meh-rolling-eyes","fa-sad-cry","fa-sad-tear","fa-smile","fa-smile-beam","fa-smile-wink","fa-surprise","fa-tired","fa-atom","fa-battery-empty","fa-battery-full","fa-battery-half","fa-battery-quarter","fa-battery-three-quarters","fa-broadcast-tower","fa-burn","fa-charging-station","fa-fan","fa-fire","fa-fire-alt","fa-gas-pump","fa-industry","fa-leaf","fa-lightbulb","fa-plug","fa-poop","fa-power-off","fa-radiation","fa-radiation-alt","fa-seedling","fa-solar-panel","fa-sun","fa-water","fa-wind","fa-archive","fa-clone","fa-copy","fa-cut","fa-file","fa-file-alt","fa-file-archive","fa-file-audio","fa-file-code","fa-file-excel","fa-file-image","fa-file-pdf","fa-file-powerpoint","fa-file-video","fa-file-word","fa-folder","fa-folder-open","fa-paste","fa-photo-video","fa-save","fa-sticky-note","fa-balance-scale","fa-balance-scale-left","fa-balance-scale-right","fa-book","fa-cash-register","fa-chart-line","fa-chart-pie","fa-coins","fa-comment-dollar","fa-comments-dollar","fa-credit-card","fa-donate","fa-file-invoice","fa-file-invoice-dollar","fa-hand-holding-usd","fa-landmark","fa-money-bill","fa-money-bill-alt","fa-money-bill-wave","fa-money-bill-wave-alt","fa-money-check","fa-money-check-alt","fa-percentage","fa-piggy-bank","fa-receipt","fa-stamp","fa-wallet","fa-bicycle","fa-biking","fa-burn","fa-fire-alt","fa-heart","fa-heartbeat","fa-hiking","fa-running","fa-shoe-prints","fa-skating","fa-skiing","fa-skiing-nordic","fa-snowboarding","fa-spa","fa-swimmer","fa-walking","fa-apple-alt","fa-bacon","fa-bone","fa-bread-slice","fa-candy-cane","fa-carrot","fa-cheese","fa-cloud-meatball","fa-cookie","fa-drumstick-bite","fa-egg","fa-fish","fa-hamburger","fa-hotdog","fa-ice-cream","fa-lemon","fa-pepper-hot","fa-pizza-slice","fa-seedling","fa-stroopwafel","fa-apple-alt","fa-carrot","fa-leaf","fa-lemon","fa-pepper-hot","fa-seedling","fa-chess","fa-chess-bishop","fa-chess-board","fa-chess-king","fa-chess-knight","fa-chess-pawn","fa-chess-queen","fa-chess-rook","fa-dice","fa-dice-d20","fa-dice-d6","fa-dice-five","fa-dice-four","fa-dice-one","fa-dice-six","fa-dice-three","fa-dice-two","fa-gamepad","fa-ghost","fa-headset","fa-heart","fa-playstation","fa-puzzle-piece","fa-steam","fa-steam-square","fa-steam-symbol","fa-twitch","fa-xbox","fa-acquisitions-incorporated","fa-book-dead","fa-critical-role","fa-d-and-d","fa-d-and-d-beyond","fa-dice-d20","fa-dice-d6","fa-dragon","fa-dungeon","fa-fantasy-flight-games","fa-fist-raised","fa-hat-wizard","fa-penny-arcade","fa-ring","fa-scroll","fa-skull-crossbones","fa-wizards-of-the-coast","fa-genderless","fa-mars","fa-mars-double","fa-mars-stroke","fa-mars-stroke-h","fa-mars-stroke-v","fa-mercury","fa-neuter","fa-transgender","fa-transgender-alt","fa-venus","fa-venus-double","fa-venus-mars","fa-book-dead","fa-broom","fa-cat","fa-cloud-moon","fa-crow","fa-ghost","fa-hat-wizard","fa-mask","fa-skull-crossbones","fa-spider","fa-toilet-paper","fa-allergies","fa-fist-raised","fa-hand-holding","fa-hand-holding-heart","fa-hand-holding-medical","fa-hand-holding-usd","fa-hand-holding-water","fa-hand-lizard","fa-hand-middle-finger","fa-hand-paper","fa-hand-peace","fa-hand-point-down","fa-hand-point-left","fa-hand-point-right","fa-hand-point-up","fa-hand-pointer","fa-hand-rock","fa-hand-scissors","fa-hand-sparkles","fa-hand-spock","fa-hands","fa-hands-helping","fa-hands-wash","fa-handshake","fa-handshake-alt-slash","fa-handshake-slash","fa-praying-hands","fa-thumbs-down","fa-thumbs-up","fa-accessible-icon","fa-ambulance","fa-h-square","fa-heart","fa-heartbeat","fa-hospital","fa-medkit","fa-plus-square","fa-prescription","fa-stethoscope","fa-user-md","fa-wheelchair","fa-candy-cane","fa-carrot","fa-cookie-bite","fa-gift","fa-gifts","fa-glass-cheers","fa-holly-berry","fa-mug-hot","fa-sleigh","fa-snowman","fa-baby-carriage","fa-bath","fa-bed","fa-briefcase","fa-car","fa-cocktail","fa-coffee","fa-concierge-bell","fa-dice","fa-dice-five","fa-door-closed","fa-door-open","fa-dumbbell","fa-glass-martini","fa-glass-martini-alt","fa-hot-tub","fa-hotel","fa-infinity","fa-key","fa-luggage-cart","fa-shower","fa-shuttle-van","fa-smoking","fa-smoking-ban","fa-snowflake","fa-spa","fa-suitcase","fa-suitcase-rolling","fa-swimmer","fa-swimming-pool","fa-tv","fa-umbrella-beach","fa-utensils","fa-wheelchair","fa-wifi","fa-bath","fa-bed","fa-bell","fa-blender","fa-box-tissue","fa-chair","fa-coffee","fa-couch","fa-door-closed","fa-door-open","fa-dungeon","fa-fan","fa-faucet","fa-house-user","fa-laptop-house","fa-lightbulb","fa-plug","fa-pump-soap","fa-shower","fa-sink","fa-snowflake","fa-soap","fa-toilet-paper","fa-toilet-paper-slash","fa-tv","fa-adjust","fa-bolt","fa-camera","fa-camera-retro","fa-chalkboard","fa-clone","fa-compress","fa-compress-arrows-alt","fa-expand","fa-eye","fa-eye-dropper","fa-eye-slash","fa-file-image","fa-film","fa-id-badge","fa-id-card","fa-image","fa-images","fa-photo-video","fa-portrait","fa-sliders-h","fa-tint","fa-unsplash","fa-award","fa-ban","fa-barcode","fa-bars","fa-beer","fa-bell","fa-bell-slash","fa-blog","fa-bug","fa-bullhorn","fa-bullseye","fa-calculator","fa-calendar","fa-calendar-alt","fa-calendar-check","fa-calendar-minus","fa-calendar-plus","fa-calendar-times","fa-certificate","fa-check","fa-check-circle","fa-check-double","fa-check-square","fa-circle","fa-clipboard","fa-clone","fa-cloud","fa-cloud-download-alt","fa-cloud-upload-alt","fa-coffee","fa-cog","fa-cogs","fa-copy","fa-cut","fa-database","fa-dot-circle","fa-download","fa-edit","fa-ellipsis-h","fa-ellipsis-v","fa-envelope","fa-envelope-open","fa-eraser","fa-exclamation","fa-exclamation-circle","fa-exclamation-triangle","fa-external-link-alt","fa-external-link-square-alt","fa-eye","fa-eye-slash","fa-file","fa-file-alt","fa-file-download","fa-file-export","fa-file-import","fa-file-upload","fa-filter","fa-fingerprint","fa-flag","fa-flag-checkered","fa-folder","fa-folder-open","fa-frown","fa-glasses","fa-grip-horizontal","fa-grip-lines","fa-grip-lines-vertical","fa-grip-vertical","fa-hashtag","fa-heart","fa-history","fa-home","fa-i-cursor","fa-info","fa-info-circle","fa-language","fa-magic","fa-marker","fa-medal","fa-meh","fa-microphone","fa-microphone-alt","fa-microphone-slash","fa-minus","fa-minus-circle","fa-minus-square","fa-paste","fa-pen","fa-pen-alt","fa-pen-fancy","fa-pencil-alt","fa-plus","fa-plus-circle","fa-plus-square","fa-poo","fa-qrcode","fa-question","fa-question-circle","fa-quote-left","fa-quote-right","fa-redo","fa-redo-alt","fa-reply","fa-reply-all","fa-rss","fa-rss-square","fa-save","fa-screwdriver","fa-search","fa-search-minus","fa-search-plus","fa-share","fa-share-alt","fa-share-alt-square","fa-share-square","fa-shield-alt","fa-sign-in-alt","fa-sign-out-alt","fa-signal","fa-sitemap","fa-sliders-h","fa-smile","fa-sort","fa-sort-alpha-down","fa-sort-alpha-down-alt","fa-sort-alpha-up","fa-sort-alpha-up-alt","fa-sort-amount-down","fa-sort-amount-down-alt","fa-sort-amount-up","fa-sort-amount-up-alt","fa-sort-down","fa-sort-numeric-down","fa-sort-numeric-down-alt","fa-sort-numeric-up","fa-sort-numeric-up-alt","fa-sort-up","fa-star","fa-star-half","fa-sync","fa-sync-alt","fa-thumbs-down","fa-thumbs-up","fa-times","fa-times-circle","fa-toggle-off","fa-toggle-on","fa-tools","fa-trash","fa-trash-alt","fa-trash-restore","fa-trash-restore-alt","fa-trophy","fa-undo","fa-undo-alt","fa-upload","fa-user","fa-user-alt","fa-user-circle","fa-volume-down","fa-volume-mute","fa-volume-off","fa-volume-up","fa-wifi","fa-wrench","fa-box","fa-boxes","fa-clipboard-check","fa-clipboard-list","fa-dolly","fa-dolly-flatbed","fa-hard-hat","fa-pallet","fa-shipping-fast","fa-truck","fa-warehouse","fa-ambulance","fa-anchor","fa-balance-scale","fa-balance-scale-left","fa-balance-scale-right","fa-bath","fa-bed","fa-beer","fa-bell","fa-bell-slash","fa-bicycle","fa-binoculars","fa-birthday-cake","fa-blind","fa-bomb","fa-book","fa-bookmark","fa-briefcase","fa-building","fa-car","fa-coffee","fa-crosshairs","fa-directions","fa-dollar-sign","fa-draw-polygon","fa-eye","fa-eye-slash","fa-fighter-jet","fa-fire","fa-fire-alt","fa-fire-extinguisher","fa-flag","fa-flag-checkered","fa-flask","fa-gamepad","fa-gavel","fa-gift","fa-glass-martini","fa-globe","fa-graduation-cap","fa-h-square","fa-heart","fa-heartbeat","fa-helicopter","fa-home","fa-hospital","fa-image","fa-images","fa-industry","fa-info","fa-info-circle","fa-key","fa-landmark","fa-layer-group","fa-leaf","fa-lemon","fa-life-ring","fa-lightbulb","fa-location-arrow","fa-low-vision","fa-magnet","fa-male","fa-map","fa-map-marker","fa-map-marker-alt","fa-map-pin","fa-map-signs","fa-medkit","fa-money-bill","fa-money-bill-alt","fa-motorcycle","fa-music","fa-newspaper","fa-parking","fa-paw","fa-phone","fa-phone-alt","fa-phone-square","fa-phone-square-alt","fa-phone-volume","fa-plane","fa-plug","fa-plus","fa-plus-square","fa-print","fa-recycle","fa-restroom","fa-road","fa-rocket","fa-route","fa-search","fa-search-minus","fa-search-plus","fa-ship","fa-shoe-prints","fa-shopping-bag","fa-shopping-basket","fa-shopping-cart","fa-shower","fa-snowplow","fa-street-view","fa-subway","fa-suitcase","fa-tag","fa-tags","fa-taxi","fa-thumbtack","fa-ticket-alt","fa-tint","fa-traffic-light","fa-train","fa-tram","fa-tree","fa-trophy","fa-truck","fa-tty","fa-umbrella","fa-university","fa-utensil-spoon","fa-utensils","fa-vest","fa-vest-patches","fa-wheelchair","fa-wifi","fa-wine-glass","fa-wrench","fa-anchor","fa-binoculars","fa-compass","fa-dharmachakra","fa-frog","fa-ship","fa-skull-crossbones","fa-swimmer","fa-water","fa-wind","fa-ad","fa-bullhorn","fa-bullseye","fa-comment-dollar","fa-comments-dollar","fa-envelope-open-text","fa-funnel-dollar","fa-lightbulb","fa-mail-bulk","fa-poll","fa-poll-h","fa-search-dollar","fa-search-location","fa-calculator","fa-divide","fa-equals","fa-greater-than","fa-greater-than-equal","fa-infinity","fa-less-than","fa-less-than-equal","fa-minus","fa-not-equal","fa-percentage","fa-plus","fa-square-root-alt","fa-subscript","fa-superscript","fa-times","fa-wave-square","fa-allergies","fa-ambulance","fa-bacteria","fa-bacterium","fa-band-aid","fa-biohazard","fa-bone","fa-bong","fa-book-medical","fa-brain","fa-briefcase-medical","fa-burn","fa-cannabis","fa-capsules","fa-clinic-medical","fa-comment-medical","fa-crutch","fa-diagnoses","fa-disease","fa-dna","fa-file-medical","fa-file-medical-alt","fa-file-prescription","fa-first-aid","fa-hand-holding-medical","fa-head-side-cough","fa-head-side-cough-slash","fa-head-side-mask","fa-head-side-virus","fa-heart","fa-heartbeat","fa-hospital","fa-hospital-alt","fa-hospital-symbol","fa-hospital-user","fa-id-card-alt","fa-joint","fa-laptop-medical","fa-lungs","fa-lungs-virus","fa-microscope","fa-mortar-pestle","fa-notes-medical","fa-pager","fa-pills","fa-plus","fa-poop","fa-prescription","fa-prescription-bottle","fa-prescription-bottle-alt","fa-procedures","fa-pump-medical","fa-radiation","fa-radiation-alt","fa-shield-virus","fa-smoking","fa-smoking-ban","fa-star-of-life","fa-stethoscope","fa-syringe","fa-tablets","fa-teeth","fa-teeth-open","fa-thermometer","fa-tooth","fa-user-md","fa-user-nurse","fa-vial","fa-vials","fa-virus","fa-virus-slash","fa-viruses","fa-weight","fa-x-ray","fa-archive","fa-box-open","fa-caravan","fa-couch","fa-dolly","fa-people-carry","fa-route","fa-sign","fa-suitcase","fa-tape","fa-trailer","fa-truck-loading","fa-truck-moving","fa-wine-glass","fa-compact-disc","fa-drum","fa-drum-steelpan","fa-file-audio","fa-guitar","fa-headphones","fa-headphones-alt","fa-microphone","fa-microphone-alt","fa-microphone-alt-slash","fa-microphone-slash","fa-music","fa-napster","fa-play","fa-record-vinyl","fa-sliders-h","fa-soundcloud","fa-spotify","fa-volume-down","fa-volume-mute","fa-volume-off","fa-volume-up","fa-ambulance","fa-anchor","fa-archive","fa-award","fa-baby-carriage","fa-balance-scale","fa-balance-scale-left","fa-balance-scale-right","fa-bath","fa-bed","fa-beer","fa-bell","fa-bicycle","fa-binoculars","fa-birthday-cake","fa-blender","fa-bomb","fa-book","fa-book-dead","fa-bookmark","fa-briefcase","fa-broadcast-tower","fa-bug","fa-building","fa-bullhorn","fa-bullseye","fa-bus","fa-calculator","fa-calendar","fa-calendar-alt","fa-camera","fa-camera-retro","fa-candy-cane","fa-car","fa-carrot","fa-church","fa-clipboard","fa-cloud","fa-coffee","fa-cog","fa-cogs","fa-compass","fa-cookie","fa-cookie-bite","fa-copy","fa-cube","fa-cubes","fa-cut","fa-dice","fa-dice-d20","fa-dice-d6","fa-dice-five","fa-dice-four","fa-dice-one","fa-dice-six","fa-dice-three","fa-dice-two","fa-digital-tachograph","fa-door-closed","fa-door-open","fa-drum","fa-drum-steelpan","fa-envelope","fa-envelope-open","fa-eraser","fa-eye","fa-eye-dropper","fa-fax","fa-feather","fa-feather-alt","fa-fighter-jet","fa-file","fa-file-alt","fa-file-prescription","fa-film","fa-fire","fa-fire-alt","fa-fire-extinguisher","fa-flag","fa-flag-checkered","fa-flask","fa-futbol","fa-gamepad","fa-gavel","fa-gem","fa-gift","fa-gifts","fa-glass-cheers","fa-glass-martini","fa-glass-whiskey","fa-glasses","fa-globe","fa-graduation-cap","fa-guitar","fa-hat-wizard","fa-hdd","fa-headphones","fa-headphones-alt","fa-headset","fa-heart","fa-heart-broken","fa-helicopter","fa-highlighter","fa-holly-berry","fa-home","fa-hospital","fa-hourglass","fa-igloo","fa-image","fa-images","fa-industry","fa-key","fa-keyboard","fa-laptop","fa-leaf","fa-lemon","fa-life-ring","fa-lightbulb","fa-lock","fa-lock-open","fa-magic","fa-magnet","fa-map","fa-map-marker","fa-map-marker-alt","fa-map-pin","fa-map-signs","fa-marker","fa-medal","fa-medkit","fa-memory","fa-microchip","fa-microphone","fa-microphone-alt","fa-mitten","fa-mobile","fa-mobile-alt","fa-money-bill","fa-money-bill-alt","fa-money-check","fa-money-check-alt","fa-moon","fa-motorcycle","fa-mug-hot","fa-newspaper","fa-paint-brush","fa-paper-plane","fa-paperclip","fa-paste","fa-paw","fa-pen","fa-pen-alt","fa-pen-fancy","fa-pen-nib","fa-pencil-alt","fa-phone","fa-phone-alt","fa-plane","fa-plug","fa-print","fa-puzzle-piece","fa-ring","fa-road","fa-rocket","fa-ruler-combined","fa-ruler-horizontal","fa-ruler-vertical","fa-satellite","fa-satellite-dish","fa-save","fa-school","fa-screwdriver","fa-scroll","fa-sd-card","fa-search","fa-shield-alt","fa-shopping-bag","fa-shopping-basket","fa-shopping-cart","fa-shower","fa-sim-card","fa-skull-crossbones","fa-sleigh","fa-snowflake","fa-snowplow","fa-space-shuttle","fa-star","fa-sticky-note","fa-stopwatch","fa-stroopwafel","fa-subway","fa-suitcase","fa-sun","fa-tablet","fa-tablet-alt","fa-tachometer-alt","fa-tag","fa-tags","fa-taxi","fa-thumbtack","fa-ticket-alt","fa-toilet","fa-toolbox","fa-tools","fa-train","fa-tram","fa-trash","fa-trash-alt","fa-tree","fa-trophy","fa-truck","fa-tv","fa-umbrella","fa-university","fa-unlock","fa-unlock-alt","fa-utensil-spoon","fa-utensils","fa-wallet","fa-weight","fa-wheelchair","fa-wine-glass","fa-wrench","fa-alipay","fa-amazon-pay","fa-apple-pay","fa-bell","fa-bitcoin","fa-bookmark","fa-btc","fa-bullhorn","fa-camera","fa-camera-retro","fa-cart-arrow-down","fa-cart-plus","fa-cc-amazon-pay","fa-cc-amex","fa-cc-apple-pay","fa-cc-diners-club","fa-cc-discover","fa-cc-jcb","fa-cc-mastercard","fa-cc-paypal","fa-cc-stripe","fa-cc-visa","fa-certificate","fa-credit-card","fa-ethereum","fa-gem","fa-gift","fa-google-pay","fa-google-wallet","fa-handshake","fa-heart","fa-key","fa-money-check","fa-money-check-alt","fa-paypal","fa-receipt","fa-shopping-bag","fa-shopping-basket","fa-shopping-cart","fa-star","fa-stripe","fa-stripe-s","fa-tag","fa-tags","fa-thumbs-down","fa-thumbs-up","fa-trophy","fa-band-aid","fa-book-medical","fa-cannabis","fa-capsules","fa-clinic-medical","fa-disease","fa-eye-dropper","fa-file-medical","fa-file-prescription","fa-first-aid","fa-flask","fa-history","fa-joint","fa-laptop-medical","fa-mortar-pestle","fa-notes-medical","fa-pills","fa-prescription","fa-prescription-bottle","fa-prescription-bottle-alt","fa-receipt","fa-skull-crossbones","fa-syringe","fa-tablets","fa-thermometer","fa-vial","fa-vials","fa-award","fa-balance-scale","fa-balance-scale-left","fa-balance-scale-right","fa-bullhorn","fa-check-double","fa-democrat","fa-donate","fa-dove","fa-fist-raised","fa-flag-usa","fa-handshake","fa-person-booth","fa-piggy-bank","fa-republican","fa-vote-yea","fa-ankh","fa-atom","fa-bahai","fa-bible","fa-church","fa-cross","fa-dharmachakra","fa-dove","fa-gopuram","fa-hamsa","fa-hanukiah","fa-jedi","fa-journal-whills","fa-kaaba","fa-khanda","fa-menorah","fa-mosque","fa-om","fa-pastafarianism","fa-peace","fa-place-of-worship","fa-pray","fa-praying-hands","fa-quran","fa-star-and-crescent","fa-star-of-david","fa-synagogue","fa-torah","fa-torii-gate","fa-vihara","fa-yin-yang","fa-atom","fa-biohazard","fa-brain","fa-burn","fa-capsules","fa-clipboard-check","fa-disease","fa-dna","fa-eye-dropper","fa-filter","fa-fire","fa-fire-alt","fa-flask","fa-frog","fa-magnet","fa-microscope","fa-mortar-pestle","fa-pills","fa-prescription-bottle","fa-radiation","fa-radiation-alt","fa-seedling","fa-skull-crossbones","fa-syringe","fa-tablets","fa-temperature-high","fa-temperature-low","fa-vial","fa-vials","fa-atom","fa-galactic-republic","fa-galactic-senate","fa-globe","fa-hand-spock","fa-jedi","fa-jedi-order","fa-journal-whills","fa-meteor","fa-moon","fa-old-republic","fa-robot","fa-rocket","fa-satellite","fa-satellite-dish","fa-space-shuttle","fa-user-astronaut","fa-ban","fa-bug","fa-door-closed","fa-door-open","fa-dungeon","fa-eye","fa-eye-slash","fa-file-contract","fa-file-signature","fa-fingerprint","fa-id-badge","fa-id-card","fa-id-card-alt","fa-key","fa-lock","fa-lock-open","fa-mask","fa-passport","fa-shield-alt","fa-unlock","fa-unlock-alt","fa-user-lock","fa-user-secret","fa-user-shield","fa-bookmark","fa-calendar","fa-certificate","fa-circle","fa-cloud","fa-comment","fa-file","fa-folder","fa-heart","fa-heart-broken","fa-map-marker","fa-play","fa-shapes","fa-square","fa-star","fa-barcode","fa-cart-arrow-down","fa-cart-plus","fa-cash-register","fa-gift","fa-gifts","fa-person-booth","fa-receipt","fa-shipping-fast","fa-shopping-bag","fa-shopping-basket","fa-shopping-cart","fa-store","fa-store-alt","fa-store-alt-slash","fa-store-slash","fa-truck","fa-tshirt","fa-bell","fa-birthday-cake","fa-camera","fa-comment","fa-comment-alt","fa-envelope","fa-hashtag","fa-heart","fa-icons","fa-image","fa-images","fa-map-marker","fa-map-marker-alt","fa-photo-video","fa-poll","fa-poll-h","fa-retweet","fa-share","fa-share-alt","fa-share-square","fa-star","fa-thumbs-down","fa-thumbs-up","fa-thumbtack","fa-user","fa-user-circle","fa-user-friends","fa-user-plus","fa-users","fa-video","fa-asterisk","fa-atom","fa-bahai","fa-certificate","fa-circle-notch","fa-cog","fa-compact-disc","fa-compass","fa-crosshairs","fa-dharmachakra","fa-fan","fa-life-ring","fa-palette","fa-ring","fa-slash","fa-snowflake","fa-spinner","fa-stroopwafel","fa-sun","fa-sync","fa-sync-alt","fa-yin-yang","fa-baseball-ball","fa-basketball-ball","fa-biking","fa-bowling-ball","fa-dumbbell","fa-football-ball","fa-futbol","fa-golf-ball","fa-hockey-puck","fa-quidditch","fa-running","fa-skating","fa-skiing","fa-skiing-nordic","fa-snowboarding","fa-swimmer","fa-table-tennis","fa-volleyball-ball","fa-allergies","fa-broom","fa-cloud-sun","fa-cloud-sun-rain","fa-frog","fa-rainbow","fa-seedling","fa-umbrella","fa-ban","fa-battery-empty","fa-battery-full","fa-battery-half","fa-battery-quarter","fa-battery-three-quarters","fa-bell","fa-bell-slash","fa-calendar","fa-calendar-alt","fa-calendar-check","fa-calendar-day","fa-calendar-minus","fa-calendar-plus","fa-calendar-times","fa-calendar-week","fa-cart-arrow-down","fa-cart-plus","fa-comment","fa-comment-alt","fa-comment-slash","fa-compass","fa-door-closed","fa-door-open","fa-exclamation","fa-exclamation-circle","fa-exclamation-triangle","fa-eye","fa-eye-slash","fa-file","fa-file-alt","fa-folder","fa-folder-open","fa-gas-pump","fa-info","fa-info-circle","fa-lightbulb","fa-lock","fa-lock-open","fa-map-marker","fa-map-marker-alt","fa-microphone","fa-microphone-alt","fa-microphone-alt-slash","fa-microphone-slash","fa-minus","fa-minus-circle","fa-minus-square","fa-parking","fa-phone","fa-phone-alt","fa-phone-slash","fa-plus","fa-plus-circle","fa-plus-square","fa-print","fa-question","fa-question-circle","fa-shield-alt","fa-shopping-cart","fa-sign-in-alt","fa-sign-out-alt","fa-signal","fa-smoking-ban","fa-star","fa-star-half","fa-star-half-alt","fa-stream","fa-thermometer-empty","fa-thermometer-full","fa-thermometer-half","fa-thermometer-quarter","fa-thermometer-three-quarters","fa-thumbs-down","fa-thumbs-up","fa-tint","fa-tint-slash","fa-toggle-off","fa-toggle-on","fa-unlock","fa-unlock-alt","fa-user","fa-user-alt","fa-user-alt-slash","fa-user-slash","fa-video","fa-video-slash","fa-volume-down","fa-volume-mute","fa-volume-off","fa-volume-up","fa-wifi","fa-anchor","fa-biking","fa-fish","fa-hotdog","fa-ice-cream","fa-lemon","fa-sun","fa-swimmer","fa-swimming-pool","fa-umbrella-beach","fa-volleyball-ball","fa-water","fa-bullseye","fa-check-circle","fa-circle","fa-dot-circle","fa-microphone","fa-microphone-slash","fa-star","fa-star-half","fa-star-half-alt","fa-toggle-off","fa-toggle-on","fa-wifi","fa-archway","fa-atlas","fa-bed","fa-bus","fa-bus-alt","fa-caravan","fa-cocktail","fa-concierge-bell","fa-dumbbell","fa-glass-martini","fa-glass-martini-alt","fa-globe-africa","fa-globe-americas","fa-globe-asia","fa-globe-europe","fa-hot-tub","fa-hotel","fa-luggage-cart","fa-map","fa-map-marked","fa-map-marked-alt","fa-monument","fa-passport","fa-plane","fa-plane-arrival","fa-plane-departure","fa-shuttle-van","fa-spa","fa-suitcase","fa-suitcase-rolling","fa-swimmer","fa-swimming-pool","fa-taxi","fa-tram","fa-tv","fa-umbrella-beach","fa-wine-glass","fa-wine-glass-alt","fa-accessible-icon","fa-address-book","fa-address-card","fa-baby","fa-bed","fa-biking","fa-blind","fa-chalkboard-teacher","fa-child","fa-female","fa-frown","fa-hiking","fa-id-badge","fa-id-card","fa-id-card-alt","fa-male","fa-meh","fa-people-arrows","fa-people-carry","fa-person-booth","fa-poo","fa-portrait","fa-power-off","fa-pray","fa-restroom","fa-running","fa-skating","fa-skiing","fa-skiing-nordic","fa-smile","fa-snowboarding","fa-street-view","fa-swimmer","fa-user","fa-user-alt","fa-user-alt-slash","fa-user-astronaut","fa-user-check","fa-user-circle","fa-user-clock","fa-user-cog","fa-user-edit","fa-user-friends","fa-user-graduate","fa-user-injured","fa-user-lock","fa-user-md","fa-user-minus","fa-user-ninja","fa-user-nurse","fa-user-plus","fa-user-secret","fa-user-shield","fa-user-slash","fa-user-tag","fa-user-tie","fa-user-times","fa-users","fa-users-cog","fa-users-slash","fa-walking","fa-wheelchair","fa-accessible-icon","fa-ambulance","fa-baby-carriage","fa-bicycle","fa-bus","fa-bus-alt","fa-car","fa-car-alt","fa-car-crash","fa-car-side","fa-fighter-jet","fa-helicopter","fa-horse","fa-motorcycle","fa-paper-plane","fa-plane","fa-rocket","fa-ship","fa-shopping-cart","fa-shuttle-van","fa-sleigh","fa-snowplow","fa-space-shuttle","fa-subway","fa-taxi","fa-tractor","fa-train","fa-tram","fa-truck","fa-truck-monster","fa-truck-pickup","fa-wheelchair","fa-bolt","fa-cloud","fa-cloud-meatball","fa-cloud-moon","fa-cloud-moon-rain","fa-cloud-rain","fa-cloud-showers-heavy","fa-cloud-sun","fa-cloud-sun-rain","fa-meteor","fa-moon","fa-poo-storm","fa-rainbow","fa-smog","fa-snowflake","fa-sun","fa-temperature-high","fa-temperature-low","fa-umbrella","fa-water","fa-wind","fa-glass-whiskey","fa-icicles","fa-igloo","fa-mitten","fa-skating","fa-skiing","fa-skiing-nordic","fa-snowboarding","fa-snowplow","fa-tram","fa-archive","fa-blog","fa-book","fa-bookmark","fa-edit","fa-envelope","fa-envelope-open","fa-eraser","fa-file","fa-file-alt","fa-folder","fa-folder-open","fa-keyboard","fa-newspaper","fa-paper-plane","fa-paperclip","fa-paragraph","fa-pen","fa-pen-alt","fa-pen-square","fa-pencil-alt","fa-quote-left","fa-quote-right","fa-sticky-note","fa-thumbtack"],Tz=["fa-500px","fa-accusoft","fa-adn","fa-adversal","fa-affiliatetheme","fa-airbnb","fa-algolia","fa-amazon","fa-amilia","fa-android","fa-angellist","fa-angrycreative","fa-angular","fa-app-store","fa-app-store-ios","fa-apper","fa-apple","fa-artstation","fa-asymmetrik","fa-atlassian","fa-audible","fa-autoprefixer","fa-avianex","fa-aviato","fa-aws","fa-backspace","fa-bandcamp","fa-battle-net","fa-behance","fa-behance-square","fa-bimobject","fa-bitbucket","fa-bity","fa-black-tie","fa-blackberry","fa-blender-phone","fa-blogger","fa-blogger-b","fa-bootstrap","fa-buffer","fa-buromobelexperte","fa-buy-n-large","fa-buysellads","fa-canadian-maple-leaf","fa-centercode","fa-centos","fa-chrome","fa-chromecast","fa-cloudflare","fa-cloudscale","fa-cloudsmith","fa-cloudversify","fa-codepen","fa-codiepie","fa-confluence","fa-connectdevelop","fa-contao","fa-cotton-bureau","fa-cpanel","fa-creative-commons","fa-creative-commons-by","fa-creative-commons-nc","fa-creative-commons-nc-eu","fa-creative-commons-nc-jp","fa-creative-commons-nd","fa-creative-commons-pd","fa-creative-commons-pd-alt","fa-creative-commons-remix","fa-creative-commons-sa","fa-creative-commons-sampling","fa-creative-commons-sampling-plus","fa-creative-commons-share","fa-creative-commons-zero","fa-crown","fa-css3","fa-css3-alt","fa-cuttlefish","fa-dailymotion","fa-dashcube","fa-deezer","fa-delicious","fa-deploydog","fa-deskpro","fa-dev","fa-deviantart","fa-dhl","fa-diaspora","fa-digg","fa-digital-ocean","fa-discord","fa-discourse","fa-dochub","fa-docker","fa-draft2digital","fa-dribbble","fa-dribbble-square","fa-dropbox","fa-drupal","fa-dumpster-fire","fa-dyalog","fa-earlybirds","fa-ebay","fa-edge","fa-edge-legacy","fa-elementor","fa-ello","fa-ember","fa-empire","fa-envira","fa-erlang","fa-etsy","fa-evernote","fa-expeditedssl","fa-facebook","fa-facebook-f","fa-facebook-messenger","fa-facebook-square","fa-fedex","fa-fedora","fa-figma","fa-file-csv","fa-firefox","fa-firefox-browser","fa-first-order","fa-first-order-alt","fa-firstdraft","fa-flickr","fa-flipboard","fa-fly","fa-font-awesome","fa-font-awesome-alt","fa-font-awesome-flag","fa-font-awesome-logo-full","fa-fonticons","fa-fonticons-fi","fa-fort-awesome","fa-fort-awesome-alt","fa-forumbee","fa-foursquare","fa-free-code-camp","fa-freebsd","fa-fulcrum","fa-get-pocket","fa-git","fa-git-alt","fa-git-square","fa-github","fa-github-alt","fa-github-square","fa-gitkraken","fa-gitlab","fa-gitter","fa-glide","fa-glide-g","fa-gofore","fa-goodreads","fa-goodreads-g","fa-google","fa-google-drive","fa-google-play","fa-google-plus","fa-google-plus-g","fa-google-plus-square","fa-gratipay","fa-grav","fa-gripfire","fa-grunt","fa-guilded","fa-gulp","fa-hacker-news","fa-hacker-news-square","fa-hackerrank","fa-hips","fa-hire-a-helper","fa-hive","fa-hooli","fa-hornbill","fa-hotjar","fa-houzz","fa-html5","fa-hubspot","fa-ideal","fa-imdb","fa-innosoft","fa-instagram","fa-instagram-square","fa-instalod","fa-intercom","fa-internet-explorer","fa-invision","fa-ioxhost","fa-itch-io","fa-itunes","fa-itunes-note","fa-java","fa-jenkins","fa-jira","fa-joget","fa-joomla","fa-js","fa-js-square","fa-jsfiddle","fa-kaggle","fa-keybase","fa-keycdn","fa-kickstarter","fa-kickstarter-k","fa-korvue","fa-laravel","fa-lastfm","fa-lastfm-square","fa-leanpub","fa-less","fa-line","fa-linkedin","fa-linkedin-in","fa-linode","fa-linux","fa-lyft","fa-magento","fa-mailchimp","fa-mandalorian","fa-markdown","fa-mastodon","fa-maxcdn","fa-mdb","fa-medapps","fa-medium","fa-medium-m","fa-medrt","fa-meetup","fa-megaport","fa-mendeley","fa-microblog","fa-microsoft","fa-mix","fa-mixcloud","fa-mixer","fa-mizuni","fa-modx","fa-monero","fa-neos","fa-network-wired","fa-nimblr","fa-node","fa-node-js","fa-npm","fa-ns8","fa-nutritionix","fa-octopus-deploy","fa-odnoklassniki","fa-odnoklassniki-square","fa-opencart","fa-openid","fa-opera","fa-optin-monster","fa-orcid","fa-osi","fa-page4","fa-pagelines","fa-palfed","fa-patreon","fa-perbyte","fa-periscope","fa-phabricator","fa-phoenix-framework","fa-phoenix-squadron","fa-php","fa-pied-piper","fa-pied-piper-alt","fa-pied-piper-hat","fa-pied-piper-pp","fa-pied-piper-square","fa-pinterest","fa-pinterest-p","fa-pinterest-square","fa-plane-slash","fa-product-hunt","fa-pushed","fa-python","fa-qq","fa-quinscape","fa-quora","fa-r-project","fa-raspberry-pi","fa-ravelry","fa-react","fa-reacteurope","fa-readme","fa-rebel","fa-red-river","fa-reddit","fa-reddit-alien","fa-reddit-square","fa-redhat","fa-renren","fa-replyd","fa-researchgate","fa-resolving","fa-rev","fa-rocketchat","fa-rockrms","fa-rust","fa-safari","fa-salesforce","fa-sass","fa-schlix","fa-scribd","fa-searchengin","fa-sellcast","fa-sellsy","fa-servicestack","fa-shirtsinbulk","fa-shopify","fa-shopware","fa-signature","fa-simplybuilt","fa-sistrix","fa-sith","fa-sketch","fa-skull","fa-skyatlas","fa-skype","fa-slack","fa-slack-hash","fa-slideshare","fa-snapchat","fa-snapchat-ghost","fa-snapchat-square","fa-sourcetree","fa-speakap","fa-speaker-deck","fa-squarespace","fa-stack-exchange","fa-stack-overflow","fa-stackpath","fa-staylinked","fa-sticker-mule","fa-stopwatch-20","fa-strava","fa-studiovinari","fa-stumbleupon","fa-stumbleupon-circle","fa-superpowers","fa-supple","fa-suse","fa-swift","fa-symfony","fa-teamspeak","fa-telegram","fa-telegram-plane","fa-tencent-weibo","fa-the-red-yeti","fa-themeco","fa-themeisle","fa-think-peaks","fa-tiktok","fa-trade-federation","fa-trello","fa-tumblr","fa-tumblr-square","fa-twitter","fa-twitter-square","fa-typo3","fa-uber","fa-ubuntu","fa-uikit","fa-umbraco","fa-uncharted","fa-uniregistry","fa-unity","fa-untappd","fa-ups","fa-usb","fa-usps","fa-ussunnah","fa-vaadin","fa-viacoin","fa-viadeo","fa-viadeo-square","fa-viber","fa-vimeo","fa-vimeo-square","fa-vimeo-v","fa-vine","fa-vk","fa-vnv","fa-vr-cardboard","fa-vuejs","fa-watchman-monitoring","fa-waze","fa-weebly","fa-weibo","fa-weight-hanging","fa-weixin","fa-whatsapp","fa-whatsapp-square","fa-whmcs","fa-wikipedia-w","fa-windows","fa-wix","fa-wodu","fa-wolf-pack-battalion","fa-wordpress","fa-wordpress-simple","fa-wpbeginner","fa-wpexplorer","fa-wpforms","fa-wpressr","fa-xing","fa-xing-square","fa-y-combinator","fa-yahoo","fa-yammer","fa-yandex","fa-yandex-international","fa-yarn","fa-yelp","fa-yoast","fa-youtube-square","fa-zhihu"],Jw={},YM={};Tz.forEach(p=>{YM[p]="",Jw[p]=""});Az.forEach(p=>{Jw[p]=p});var KM=p=>p in YM;var JM=(p,b)=>{p.use(XM.default,{defs:{...ZM.default,...Jw}}),p.renderer.rules.emoji=(x,T)=>{let O=x[T];if(b.config.enableEmojiSyntax){let B=O.markup;return B.match("fa-")?`<i class="${KM(B)?"fa-brands":"fa-solid"} ${B}" aria-hidden="true"></i>`:O.content}else return`:${O.markup}:`}};var QM=We(require("markdown-it-html5-embed")),Cz=p=>({html5embed:{useImageSyntax:p.config.HTML5EmbedUseImageSyntax,useLinkSyntax:p.config.HTML5EmbedUseLinkSyntax,isAllowedHttp:p.config.HTML5EmbedIsAllowedHttp,attributes:{audio:p.config.HTML5EmbedAudioAttributes,video:p.config.HTML5EmbedVideoAttributes}}}),e2=(p,b)=>{b.config.enableHTML5Embed&&p.use(QM.default,Cz(b))};var t2=require("html-escaper"),n2=We(require("katex")),m5=require("katex/contrib/mhchem"),Qw=({content:p,openTag:b,closeTag:x,displayMode:T=!1,renderingOption:O,katexConfig:B})=>{if(!p)return"";if(O==="KaTeX")try{return n2.default.renderToString(p,Object.assign({},structuredClone(B),{displayMode:T}))}catch($){return`<span style="color: #ee7f49; font-weight: 500;">${$.toString()}</span>`}else if(O==="MathJax"){let $=(b+p+x).replace(/\n/g," "),F=T?"div":"span";return`<${F} class="mathjax-exps">${(0,t2.escape)($)}</${F}>`}else return""};var a2=(p,b)=>{p.inline.ruler.before("escape","math",(x,T)=>{if(b.config.mathRenderingOption==="None")return!1;let O=null,B=null,$=!0,{mathBlockDelimiters:F,mathInlineDelimiters:j}=b.config;for(let ae of F)if(x.src.startsWith(ae[0],x.pos)){[O,B]=ae;break}if(!O){for(let ae of j)if(x.src.startsWith(ae[0],x.pos)){[O,B]=ae,$=!1;break}}if(!O||!B)return!1;let W=null,V=-1,te=x.pos+O.length;for(;te<x.src.length;){if(B&&x.src.startsWith(B,te)){V=te;break}else x.src[te]==="\\"&&(te+=1);te+=1}if(V>=0)W=x.src.slice(x.pos+O.length,V);else return!1;if(W&&!T){let ae=x.push("math","",0);return ae.content=W.trim(),ae.meta=ae.meta||{},ae.meta.openTag=O,ae.meta.closeTag=B,ae.meta.displayMode=$,x.pos+=W.length+O.length+B.length,!0}else return!1}),p.renderer.rules.math=(x,T)=>{let O=x[T].content??"";return Qw({content:O,openTag:x[T].meta.openTag,closeTag:x[T].meta.closeTag,renderingOption:b.config.mathRenderingOption,displayMode:x[T].meta.displayMode,katexConfig:b.config.katexConfig})}};var r2=p=>{let b=p.renderer.renderToken.bind(p.renderer);p.renderer.renderToken=function(x,T,O){if(!O.sourceMap)return b(x,T,O);let B=x[T];return B.type.endsWith("_open")&&B.map!==null&&B.map[0]!==void 0&&B.attrSet("data-source-line",`${B.map[0]+1}`),b(x,T,O)}};var i2=(p,b)=>{let x=p.renderer.rules.image.bind(p.renderer);p.renderer.rules.image=(T,O,B,$,F)=>{var W;let j=T[O];if(j.children&&((W=j.children[0])==null?void 0:W.content)==="@embedding"){let V=j.attrGet("error")??"";if(V)return decodeURIComponent(atob(V));{let te=j.attrGet("embedding")??"",ae=decodeURIComponent(atob(te));return b.initMarkdownIt({...p.options,sourceMap:!1}).render(ae)}}return x(T,O,B,$,F)}};var o2=(p,b)=>{p.inline.ruler.before("autolink","wikilink",(x,T)=>{if(!b.config.enableWikiLinkSyntax||!x.src.startsWith("[[",x.pos))return!1;let O=null,B="]]",$=-1,F=x.pos+B.length;for(;F<x.src.length;){if(x.src[F]==="\\")F+=1;else if(x.src.startsWith(B,F)){$=F;break}F+=1}if($>=0)O=x.src.slice(x.pos+B.length,$);else return!1;if(O&&!T){let j=x.push("wikilink","a",0);return j.content=O,x.pos+=O.length+2*B.length,!0}else return!1}),p.renderer.rules.wikilink=(x,T)=>{let{content:O}=x[T];if(!O)return"";let{text:B,link:$}=b.processWikilink(O);return`<a href="${$}">${B}</a>`}};var r_=We(require("fs")),l2=We(require("less")),Od=We(require("path"));var kA=typeof window>"u";function e_(){return{startOnLoad:!1}}function t_(){return{tex:{},options:{},loader:{}}}function n_(){return{macros:{}}}function a_(){return{onWillParseMarkdown:async function(p){return p},onDidParseMarkdown:async function(p){return p}}}function Id(){return{markdownFileExtensions:[".md",".markdown",".mdown",".mkdn",".mkd",".rmd",".qmd"],globalCss:"",includeInHeader:"",mermaidConfig:e_(),mathjaxConfig:t_(),katexConfig:n_(),parserConfig:a_(),enablePreviewZenMode:!1,usePandocParser:!1,breakOnSingleNewLine:!0,enableTypographer:!1,enableWikiLinkSyntax:!0,wikiLinkTargetFileExtension:".md",wikiLinkTargetFileNameChangeCase:"none",enableLinkify:!0,enableEmojiSyntax:!0,enableExtendedTableSyntax:!1,enableCriticMarkupSyntax:!1,useGitHubStylePipedLink:!1,protocolsWhiteList:"http://, https://, atom://, file://, mailto:, tel:",mathRenderingOption:"KaTeX",mathInlineDelimiters:[["$","$"]],mathBlockDelimiters:[["$$","$$"]],mathRenderingOnlineService:"https://latex.codecogs.com/gif.latex",mathjaxV3ScriptSrc:"https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js",codeBlockTheme:"auto.css",previewTheme:"github-light.css",revealjsTheme:"white.css",mermaidTheme:"default",frontMatterRenderingOption:"none",imageFolderPath:"/assets",printBackground:!1,chromePath:"",imageMagickPath:"",pandocPath:"pandoc",pandocMarkdownFlavor:"markdown-raw_tex+tex_math_single_backslash",pandocArguments:[],latexEngine:"pdflatex",enableScriptExecution:!1,enableHTML5Embed:!1,HTML5EmbedUseImageSyntax:!0,HTML5EmbedUseLinkSyntax:!1,HTML5EmbedIsAllowedHttp:!1,HTML5EmbedAudioAttributes:'controls preload="metadata"',HTML5EmbedVideoAttributes:'controls preload="metadata"',puppeteerWaitForTimeout:0,puppeteerArgs:[],plantumlServer:"",plantumlJarPath:"",jsdelivrCdnHost:"cdn.jsdelivr.net",krokiServer:"https://kroki.io",isVSCode:!1,alwaysShowBacklinksInPreview:!1}}var s2=(T=>(T.SinglePreview="Single Preview",T.MultiplePreviews="Multiple Previews",T.PreviewsOnly="Previews Only",T))(s2||{});async function i_(p,b,x=!1){let T=Id(),O={globalCss:T.globalCss,includeInHeader:T.includeInHeader,mermaidConfig:T.mermaidConfig,mathjaxConfig:T.mathjaxConfig,katexConfig:T.katexConfig,parserConfig:T.parserConfig};return x&&await b.mkdir(p),await b.exists(p)&&(O.globalCss=await Rz(p,b),O.parserConfig=await Oz(p,b),O.includeInHeader=await Nz(p,b),O={...O,...await Iz(p,b)}),O}async function Rz(p,b){let x=Od.join(p,"./style.less"),T;try{T=await b.readFile(x)}catch{T=`
|
|
287
|
+
`)}p=xz(p,b,x),V.find(Ie=>Ie.includes("pandoc-citeproc")||Ie.includes("--defaults"))===void 0&&(W.bibliography||W.references)&&V.push("--citeproc");let pe=j.config.imageFolderPath;pe[0]==="/"?pe=Rr.resolve(x,"."+pe):pe=Rr.resolve(b,pe),await _A.sync(pe);let{outputString:Te}=await Kw(p,{fileDirectoryPath:b,projectDirectoryPath:x,imageDirectoryPath:pe,imageFilePrefix:Pa(Q),useRelativeFilePath:!0,codeChunksData:$,graphsCache:F,addOptionsStr:!0,notebook:j});return await _A.sync(Rr.dirname(Q)),await new Promise((Ie,Pe)=>{var Ee;(Ee=(0,$M.execFile)(j.config.pandocPath,V,{cwd:b},ye=>ye?Pe(ye.toString()):Ie(Q)).stdin)==null||Ee.end(Te)})}var GM=require("child_process");function jM(p,b){return new Promise((x,T)=>{(0,GM.execFile)("prince",[p,"--javascript","-o",b],O=>{if(O){let B=O.toString();return O.message.indexOf("spawn prince ENOENT")>=0&&(B='"princexml" is required to be installed.'),T(B)}return x()})})}var Sz=p=>typeof p=="string"?p.trim().toLowerCase():"",Xw=p=>{let b=GD(p.attributes),x=Sz(p.language);return b!==p.attributes||x!==p.language?{language:x,attributes:b}:p};var Zw=(p="")=>{let b,x,T,O=p.trim(),B=O.indexOf("{")!==-1?O.match(/^([^\s{]*)\s*\{(.*?)\}/):O.match(/^([^\s]+)\s+(.+?)$/);if(B?(B[1].length&&(b=B[1]),x=B[2]):(b=O,x=""),x)try{T=Yr(x)}catch{T={}}else T={};let $=T.class?T.class.split(/\s+/):[];return b||(b=$[0]||""),$.includes(b)||(T.class=[b,...$].join(" ")),{language:b,attributes:T}};var p2=require("async-mutex"),f2=We(require("case-anything")),h2=We(require("markdown-it")),m2=We(require("markdown-it-abbr")),g2=We(require("markdown-it-deflist")),b2=We(require("markdown-it-footnote")),y2=We(require("markdown-it-mark")),v2=We(require("markdown-it-sub")),E2=We(require("markdown-it-sup")),tn=We(require("path")),l_=require("vscode-uri");var HM=p=>{let T=["note","summary","abstract","tldr","info","todo","tip","hint","success","check","done","question","help","faq","warning","attention","caution","failure","fail","missing","danger","error","bug","example","snippet","quote","cite"];function O(){p.block.ruler.after("fence","admonition",$,{alt:[]}),p.renderer.rules.admonition_open=B,p.renderer.rules.admonition_title_open=B,p.renderer.rules.admonition_title_close=B,p.renderer.rules.admonition_close=B}function B(F,j,W,V,te){let ae=F[j];return ae.type==="admonition_open"?F[j].attrPush(["class","admonition "+ae.info]):ae.type==="admonition_title_open"&&F[j].attrPush(["class","admonition-title"]),te.renderToken(F,j,W)}function $(F,j,W,V){if(F.tShift[j]-F.blkIndent>=4)return!1;let te=F.bMarks[j]+F.tShift[j],ae=F.eMarks[j],he=F.src.charCodeAt(te);if(he!==33)return!1;let Q=te;if(te=F.skipChars(te,he),te-Q<3)return!1;let se=F.src.slice(Q,te),fe="",pe="",Te=F.src.slice(te,ae).trim().split(" ");if(fe=(Te.shift()??"").toLowerCase(),pe=Te.join(" "),T.indexOf(fe)<0&&(fe="note"),pe||(pe=fe.substr(0,1).toUpperCase()+fe.substr(1,fe.length-1)),V)return!0;let Ie=F.parentType,Pe=F.lineMax,Ge=F.blkIndent;F.blkIndent+=4;let Ee=j;for(;Ee++,!(Ee>=W||(te=Q=F.bMarks[Ee]+F.tShift[Ee],ae=F.eMarks[Ee],te<ae&&F.sCount[Ee]<F.blkIndent)););F.parentType="admonition",F.lineMax=Ee;let ye=F.push("admonition_open","div",1);return ye.markup=se,ye.block=!0,ye.info=fe,ye.map=[j,j+1],pe!=='""'&&(ye=F.push("admonition_title_open","p",1),ye.markup=se+" "+fe,ye.map=[j,j+1],ye=F.push("inline","",0),ye.content=pe,ye.map=[j,j+1],ye.children=[],ye=F.push("admonition_title_close","p",-1),ye.markup=se+" "+fe),F.md.block.tokenize(F,j+1,Ee),ye=F.push("admonition_close","div",-1),ye.markup=se,ye.map=[j,Ee],ye.block=!0,F.parentType=Ie,F.lineMax=Pe,F.line=Ee,F.blkIndent=Ge,!0}O()};var u0=require("html-escaper");var qM=p=>{p.renderer.rules.fence=(b,x)=>{let T=b[x],O=T.info.trim(),B=Zw(O),$=Xw(B),F=(0,u0.escape)(T.content),j=x<b.length&&b[x].type==="list_item_close"?`
|
|
288
|
+
`:"";return`<pre data-role="codeBlock" data-info="${(0,u0.escape)(O)}" data-parsed-info="${(0,u0.escape)(JSON.stringify(B))}" data-normalized-info="${(0,u0.escape)(JSON.stringify($))}" ${"data-source-line"in B.attributes?`data-source-line="${B.attributes["data-source-line"]}"`:""}>${F}</pre>${j}`}};var WM=(p,b)=>{p.inline.ruler.before("strikethrough","critic-markup",(x,T)=>{if(!b.config.enableCriticMarkupSyntax)return!1;let{src:B,pos:$}=x;if(B[$]==="{"&&(B[$+1]==="-"&&B[$+2]==="-"||B[$+1]==="+"&&B[$+2]==="+"||B[$+1]==="~"&&B[$+2]==="~"||B[$+1]==="="&&B[$+2]==="="||B[$+1]===">"&&B[$+2]===">")){let F=B.slice($+1,$+3),j=F[0]===">"?"<<}":`${F}}`,W=$+3,V=-1,te=null;for(;W<B.length;){if(B.startsWith(j,W)){V=W;break}W+=1}if(V>=0)te=B.slice($+3,V);else return!1;if(te&&!T){let ae=x.push("critic-markup","",0);return ae.content=te,ae.tag=F,x.pos=V+j.length,!0}else return!1}else return!1}),p.renderer.rules["critic-markup"]=(x,T)=>{let O=x[T],B=O.tag,$=O.content;if(B==="--")return`<del>${$}</del>`;if(B==="++")return`<ins>${$}</ins>`;if(B==="==")return`<mark>${$}</mark>`;if(B===">>")return`<span style="display:none">${$}</span>`;{let F=$.split("~>");return F.length===2?`<del>${F[0]}</del><ins>${F[1]}</ins>`:"<code>Error: ~> not found.</code>"}}};var VM=p=>{p.core.ruler.push("curly_bracket_attributes",x=>{let T=x.tokens;for(let O=0;O<T.length;O++)if(T[O].type==="heading_open"){let B=T[O+1];if(B.type==="inline"){if(b(B),!B.children||B.children.length===0)continue;let $=B.children[B.children.length-1];if($.type==="text"){let F=$.content.match(/{([^}]+)}\s*$/);if(F){let j=Yr(F[1]);$.content=$.content.replace(F[0],"");for(let W in j)T[O].attrJoin(W,j[W])}}}}else T[O].type==="inline"&&b(T[O])});function b(x){var O;let T=x.children;if(!(!T||T.length===0))for(let B=0;B<T.length;B++){let $=T[B];if($.type==="image"&&((O=T[B+1])==null?void 0:O.type)==="text"){let F=T[B+1].content.match(/^{([^}]+)}/);if(F){let j=Yr(F[1]);T[B+1].content=T[B+1].content.replace(F[0],"");for(let W in j)$.attrJoin(W,j[W])}}else if($.type==="link_open"){let F=B+1;for(;F<T.length&&T[F].type!=="link_close";)F++;if(B=F,F<T.length-1&&T[F+1].type==="text"){let j=T[F+1].content.match(/^{([^}]+)}/);if(j){let W=Yr(j[1]);T[F+1].content=T[F+1].content.replace(j[0],"");for(let V in W)$.attrJoin(V,W[V])}}}}}};var XM=We(require("markdown-it-emoji")),ZM=We(require("markdown-it-emoji/lib/data/full.json"));var Az=["fa-accessible-icon","fa-american-sign-language-interpreting","fa-assistive-listening-systems","fa-audio-description","fa-blind","fa-braille","fa-closed-captioning","fa-deaf","fa-low-vision","fa-phone-volume","fa-question-circle","fa-sign-language","fa-tty","fa-universal-access","fa-wheelchair","fa-bell","fa-bell-slash","fa-exclamation","fa-exclamation-circle","fa-exclamation-triangle","fa-radiation","fa-radiation-alt","fa-skull-crossbones","fa-cat","fa-crow","fa-dog","fa-dove","fa-dragon","fa-feather","fa-feather-alt","fa-fish","fa-frog","fa-hippo","fa-horse","fa-horse-head","fa-kiwi-bird","fa-otter","fa-paw","fa-spider","fa-angle-double-down","fa-angle-double-left","fa-angle-double-right","fa-angle-double-up","fa-angle-down","fa-angle-left","fa-angle-right","fa-angle-up","fa-arrow-alt-circle-down","fa-arrow-alt-circle-left","fa-arrow-alt-circle-right","fa-arrow-alt-circle-up","fa-arrow-circle-down","fa-arrow-circle-left","fa-arrow-circle-right","fa-arrow-circle-up","fa-arrow-down","fa-arrow-left","fa-arrow-right","fa-arrow-up","fa-arrows-alt","fa-arrows-alt-h","fa-arrows-alt-v","fa-caret-down","fa-caret-left","fa-caret-right","fa-caret-square-down","fa-caret-square-left","fa-caret-square-right","fa-caret-square-up","fa-caret-up","fa-cart-arrow-down","fa-chart-line","fa-chevron-circle-down","fa-chevron-circle-left","fa-chevron-circle-right","fa-chevron-circle-up","fa-chevron-down","fa-chevron-left","fa-chevron-right","fa-chevron-up","fa-cloud-download-alt","fa-cloud-upload-alt","fa-compress-alt","fa-compress-arrows-alt","fa-download","fa-exchange-alt","fa-expand-alt","fa-expand-arrows-alt","fa-external-link-alt","fa-external-link-square-alt","fa-hand-point-down","fa-hand-point-left","fa-hand-point-right","fa-hand-point-up","fa-hand-pointer","fa-history","fa-level-down-alt","fa-level-up-alt","fa-location-arrow","fa-long-arrow-alt-down","fa-long-arrow-alt-left","fa-long-arrow-alt-right","fa-long-arrow-alt-up","fa-mouse-pointer","fa-play","fa-random","fa-recycle","fa-redo","fa-redo-alt","fa-reply","fa-reply-all","fa-retweet","fa-share","fa-share-square","fa-sign-in-alt","fa-sign-out-alt","fa-sort","fa-sort-alpha-down","fa-sort-alpha-down-alt","fa-sort-alpha-up","fa-sort-alpha-up-alt","fa-sort-amount-down","fa-sort-amount-down-alt","fa-sort-amount-up","fa-sort-amount-up-alt","fa-sort-down","fa-sort-numeric-down","fa-sort-numeric-down-alt","fa-sort-numeric-up","fa-sort-numeric-up-alt","fa-sort-up","fa-sync","fa-sync-alt","fa-text-height","fa-text-width","fa-undo","fa-undo-alt","fa-upload","fa-audio-description","fa-backward","fa-broadcast-tower","fa-circle","fa-closed-captioning","fa-compress","fa-compress-alt","fa-compress-arrows-alt","fa-eject","fa-expand","fa-expand-alt","fa-expand-arrows-alt","fa-fast-backward","fa-fast-forward","fa-file-audio","fa-file-video","fa-film","fa-forward","fa-headphones","fa-microphone","fa-microphone-alt","fa-microphone-alt-slash","fa-microphone-slash","fa-music","fa-pause","fa-pause-circle","fa-phone-volume","fa-photo-video","fa-play","fa-play-circle","fa-podcast","fa-random","fa-redo","fa-redo-alt","fa-rss","fa-rss-square","fa-step-backward","fa-step-forward","fa-stop","fa-stop-circle","fa-sync","fa-sync-alt","fa-tv","fa-undo","fa-undo-alt","fa-video","fa-volume-down","fa-volume-mute","fa-volume-off","fa-volume-up","fa-youtube","fa-air-freshener","fa-ambulance","fa-bus","fa-bus-alt","fa-car","fa-car-alt","fa-car-battery","fa-car-crash","fa-car-side","fa-caravan","fa-charging-station","fa-gas-pump","fa-motorcycle","fa-oil-can","fa-shuttle-van","fa-tachometer-alt","fa-taxi","fa-trailer","fa-truck","fa-truck-monster","fa-truck-pickup","fa-apple-alt","fa-campground","fa-cloud-sun","fa-drumstick-bite","fa-football-ball","fa-hiking","fa-mountain","fa-tractor","fa-tree","fa-wind","fa-wine-bottle","fa-beer","fa-blender","fa-cocktail","fa-coffee","fa-flask","fa-glass-cheers","fa-glass-martini","fa-glass-martini-alt","fa-glass-whiskey","fa-mug-hot","fa-wine-bottle","fa-wine-glass","fa-wine-glass-alt","fa-archway","fa-building","fa-campground","fa-church","fa-city","fa-clinic-medical","fa-dungeon","fa-gopuram","fa-home","fa-hospital","fa-hospital-alt","fa-hospital-user","fa-hotel","fa-house-damage","fa-igloo","fa-industry","fa-kaaba","fa-landmark","fa-monument","fa-mosque","fa-place-of-worship","fa-school","fa-store","fa-store-alt","fa-synagogue","fa-torii-gate","fa-university","fa-vihara","fa-warehouse","fa-address-book","fa-address-card","fa-archive","fa-balance-scale","fa-balance-scale-left","fa-balance-scale-right","fa-birthday-cake","fa-book","fa-briefcase","fa-building","fa-bullhorn","fa-bullseye","fa-business-time","fa-calculator","fa-calendar","fa-calendar-alt","fa-certificate","fa-chart-area","fa-chart-bar","fa-chart-line","fa-chart-pie","fa-city","fa-clipboard","fa-coffee","fa-columns","fa-compass","fa-copy","fa-copyright","fa-cut","fa-edit","fa-envelope","fa-envelope-open","fa-envelope-square","fa-eraser","fa-fax","fa-file","fa-file-alt","fa-folder","fa-folder-minus","fa-folder-open","fa-folder-plus","fa-glasses","fa-globe","fa-highlighter","fa-industry","fa-landmark","fa-laptop-house","fa-marker","fa-paperclip","fa-paste","fa-pen","fa-pen-alt","fa-pen-fancy","fa-pen-nib","fa-pen-square","fa-pencil-alt","fa-percent","fa-phone","fa-phone-alt","fa-phone-slash","fa-phone-square","fa-phone-square-alt","fa-phone-volume","fa-print","fa-project-diagram","fa-registered","fa-save","fa-sitemap","fa-socks","fa-sticky-note","fa-stream","fa-table","fa-tag","fa-tags","fa-tasks","fa-thumbtack","fa-trademark","fa-wallet","fa-binoculars","fa-campground","fa-caravan","fa-compass","fa-faucet","fa-fire","fa-fire-alt","fa-first-aid","fa-frog","fa-hiking","fa-map","fa-map-marked","fa-map-marked-alt","fa-map-signs","fa-mountain","fa-route","fa-toilet-paper","fa-trailer","fa-tree","fa-dollar-sign","fa-donate","fa-dove","fa-gift","fa-globe","fa-hand-holding-heart","fa-hand-holding-usd","fa-hand-holding-water","fa-hands-helping","fa-handshake","fa-heart","fa-leaf","fa-parachute-box","fa-piggy-bank","fa-ribbon","fa-seedling","fa-comment","fa-comment-alt","fa-comment-dots","fa-comment-medical","fa-comment-slash","fa-comments","fa-frown","fa-icons","fa-meh","fa-phone","fa-phone-alt","fa-phone-slash","fa-poo","fa-quote-left","fa-quote-right","fa-smile","fa-sms","fa-video","fa-video-slash","fa-chess","fa-chess-bishop","fa-chess-board","fa-chess-king","fa-chess-knight","fa-chess-pawn","fa-chess-queen","fa-chess-rook","fa-square-full","fa-apple-alt","fa-baby","fa-baby-carriage","fa-bath","fa-biking","fa-birthday-cake","fa-cookie","fa-cookie-bite","fa-gamepad","fa-ice-cream","fa-mitten","fa-robot","fa-school","fa-shapes","fa-snowman","fa-graduation-cap","fa-hat-cowboy","fa-hat-cowboy-side","fa-hat-wizard","fa-mitten","fa-shoe-prints","fa-socks","fa-tshirt","fa-user-tie","fa-archive","fa-barcode","fa-bath","fa-bug","fa-code","fa-code-branch","fa-coffee","fa-file","fa-file-alt","fa-file-code","fa-filter","fa-fire-extinguisher","fa-folder","fa-folder-open","fa-keyboard","fa-laptop-code","fa-microchip","fa-project-diagram","fa-qrcode","fa-shield-alt","fa-sitemap","fa-stream","fa-terminal","fa-user-secret","fa-window-close","fa-window-maximize","fa-window-minimize","fa-window-restore","fa-address-book","fa-address-card","fa-american-sign-language-interpreting","fa-assistive-listening-systems","fa-at","fa-bell","fa-bell-slash","fa-bluetooth","fa-bluetooth-b","fa-broadcast-tower","fa-bullhorn","fa-chalkboard","fa-comment","fa-comment-alt","fa-comments","fa-envelope","fa-envelope-open","fa-envelope-square","fa-fax","fa-inbox","fa-language","fa-microphone","fa-microphone-alt","fa-microphone-alt-slash","fa-microphone-slash","fa-mobile","fa-mobile-alt","fa-paper-plane","fa-phone","fa-phone-alt","fa-phone-slash","fa-phone-square","fa-phone-square-alt","fa-phone-volume","fa-rss","fa-rss-square","fa-tty","fa-voicemail","fa-wifi","fa-compact-disc","fa-database","fa-desktop","fa-download","fa-ethernet","fa-hdd","fa-headphones","fa-keyboard","fa-laptop","fa-laptop-house","fa-memory","fa-microchip","fa-mobile","fa-mobile-alt","fa-mouse","fa-plug","fa-power-off","fa-print","fa-satellite","fa-satellite-dish","fa-save","fa-sd-card","fa-server","fa-sim-card","fa-stream","fa-tablet","fa-tablet-alt","fa-tv","fa-upload","fa-brush","fa-drafting-compass","fa-dumpster","fa-hammer","fa-hard-hat","fa-paint-roller","fa-pencil-alt","fa-pencil-ruler","fa-ruler","fa-ruler-combined","fa-ruler-horizontal","fa-ruler-vertical","fa-screwdriver","fa-toolbox","fa-tools","fa-truck-pickup","fa-wrench","fa-bitcoin","fa-btc","fa-dollar-sign","fa-ethereum","fa-euro-sign","fa-gg","fa-gg-circle","fa-hryvnia","fa-lira-sign","fa-money-bill","fa-money-bill-alt","fa-money-bill-wave","fa-money-bill-wave-alt","fa-money-check","fa-money-check-alt","fa-pound-sign","fa-ruble-sign","fa-rupee-sign","fa-shekel-sign","fa-tenge","fa-won-sign","fa-yen-sign","fa-bell","fa-bell-slash","fa-calendar","fa-calendar-alt","fa-calendar-check","fa-calendar-minus","fa-calendar-plus","fa-calendar-times","fa-clock","fa-hourglass","fa-hourglass-end","fa-hourglass-half","fa-hourglass-start","fa-stopwatch","fa-adjust","fa-bezier-curve","fa-brush","fa-clone","fa-copy","fa-crop","fa-crop-alt","fa-crosshairs","fa-cut","fa-drafting-compass","fa-draw-polygon","fa-edit","fa-eraser","fa-eye","fa-eye-dropper","fa-eye-slash","fa-fill","fa-fill-drip","fa-highlighter","fa-icons","fa-layer-group","fa-magic","fa-marker","fa-object-group","fa-object-ungroup","fa-paint-brush","fa-paint-roller","fa-palette","fa-paste","fa-pen","fa-pen-alt","fa-pen-fancy","fa-pen-nib","fa-pencil-alt","fa-pencil-ruler","fa-ruler-combined","fa-ruler-horizontal","fa-ruler-vertical","fa-save","fa-splotch","fa-spray-can","fa-stamp","fa-swatchbook","fa-tint","fa-tint-slash","fa-vector-square","fa-align-center","fa-align-justify","fa-align-left","fa-align-right","fa-bold","fa-border-all","fa-border-none","fa-border-style","fa-clipboard","fa-clone","fa-columns","fa-copy","fa-cut","fa-edit","fa-eraser","fa-file","fa-file-alt","fa-font","fa-glasses","fa-heading","fa-highlighter","fa-i-cursor","fa-icons","fa-indent","fa-italic","fa-link","fa-list","fa-list-alt","fa-list-ol","fa-list-ul","fa-marker","fa-outdent","fa-paper-plane","fa-paperclip","fa-paragraph","fa-paste","fa-pen","fa-pen-alt","fa-pen-fancy","fa-pen-nib","fa-pencil-alt","fa-print","fa-quote-left","fa-quote-right","fa-redo","fa-redo-alt","fa-remove-format","fa-reply","fa-reply-all","fa-screwdriver","fa-share","fa-spell-check","fa-strikethrough","fa-subscript","fa-superscript","fa-sync","fa-sync-alt","fa-table","fa-tasks","fa-text-height","fa-text-width","fa-th","fa-th-large","fa-th-list","fa-tools","fa-trash","fa-trash-alt","fa-trash-restore","fa-trash-restore-alt","fa-underline","fa-undo","fa-undo-alt","fa-unlink","fa-wrench","fa-apple-alt","fa-atom","fa-award","fa-bell","fa-bell-slash","fa-book-open","fa-book-reader","fa-chalkboard","fa-chalkboard-teacher","fa-graduation-cap","fa-laptop-code","fa-microscope","fa-music","fa-school","fa-shapes","fa-theater-masks","fa-user-graduate","fa-angry","fa-dizzy","fa-flushed","fa-frown","fa-frown-open","fa-grimace","fa-grin","fa-grin-alt","fa-grin-beam","fa-grin-beam-sweat","fa-grin-hearts","fa-grin-squint","fa-grin-squint-tears","fa-grin-stars","fa-grin-tears","fa-grin-tongue","fa-grin-tongue-squint","fa-grin-tongue-wink","fa-grin-wink","fa-kiss","fa-kiss-beam","fa-kiss-wink-heart","fa-laugh","fa-laugh-beam","fa-laugh-squint","fa-laugh-wink","fa-meh","fa-meh-blank","fa-meh-rolling-eyes","fa-sad-cry","fa-sad-tear","fa-smile","fa-smile-beam","fa-smile-wink","fa-surprise","fa-tired","fa-atom","fa-battery-empty","fa-battery-full","fa-battery-half","fa-battery-quarter","fa-battery-three-quarters","fa-broadcast-tower","fa-burn","fa-charging-station","fa-fan","fa-fire","fa-fire-alt","fa-gas-pump","fa-industry","fa-leaf","fa-lightbulb","fa-plug","fa-poop","fa-power-off","fa-radiation","fa-radiation-alt","fa-seedling","fa-solar-panel","fa-sun","fa-water","fa-wind","fa-archive","fa-clone","fa-copy","fa-cut","fa-file","fa-file-alt","fa-file-archive","fa-file-audio","fa-file-code","fa-file-excel","fa-file-image","fa-file-pdf","fa-file-powerpoint","fa-file-video","fa-file-word","fa-folder","fa-folder-open","fa-paste","fa-photo-video","fa-save","fa-sticky-note","fa-balance-scale","fa-balance-scale-left","fa-balance-scale-right","fa-book","fa-cash-register","fa-chart-line","fa-chart-pie","fa-coins","fa-comment-dollar","fa-comments-dollar","fa-credit-card","fa-donate","fa-file-invoice","fa-file-invoice-dollar","fa-hand-holding-usd","fa-landmark","fa-money-bill","fa-money-bill-alt","fa-money-bill-wave","fa-money-bill-wave-alt","fa-money-check","fa-money-check-alt","fa-percentage","fa-piggy-bank","fa-receipt","fa-stamp","fa-wallet","fa-bicycle","fa-biking","fa-burn","fa-fire-alt","fa-heart","fa-heartbeat","fa-hiking","fa-running","fa-shoe-prints","fa-skating","fa-skiing","fa-skiing-nordic","fa-snowboarding","fa-spa","fa-swimmer","fa-walking","fa-apple-alt","fa-bacon","fa-bone","fa-bread-slice","fa-candy-cane","fa-carrot","fa-cheese","fa-cloud-meatball","fa-cookie","fa-drumstick-bite","fa-egg","fa-fish","fa-hamburger","fa-hotdog","fa-ice-cream","fa-lemon","fa-pepper-hot","fa-pizza-slice","fa-seedling","fa-stroopwafel","fa-apple-alt","fa-carrot","fa-leaf","fa-lemon","fa-pepper-hot","fa-seedling","fa-chess","fa-chess-bishop","fa-chess-board","fa-chess-king","fa-chess-knight","fa-chess-pawn","fa-chess-queen","fa-chess-rook","fa-dice","fa-dice-d20","fa-dice-d6","fa-dice-five","fa-dice-four","fa-dice-one","fa-dice-six","fa-dice-three","fa-dice-two","fa-gamepad","fa-ghost","fa-headset","fa-heart","fa-playstation","fa-puzzle-piece","fa-steam","fa-steam-square","fa-steam-symbol","fa-twitch","fa-xbox","fa-acquisitions-incorporated","fa-book-dead","fa-critical-role","fa-d-and-d","fa-d-and-d-beyond","fa-dice-d20","fa-dice-d6","fa-dragon","fa-dungeon","fa-fantasy-flight-games","fa-fist-raised","fa-hat-wizard","fa-penny-arcade","fa-ring","fa-scroll","fa-skull-crossbones","fa-wizards-of-the-coast","fa-genderless","fa-mars","fa-mars-double","fa-mars-stroke","fa-mars-stroke-h","fa-mars-stroke-v","fa-mercury","fa-neuter","fa-transgender","fa-transgender-alt","fa-venus","fa-venus-double","fa-venus-mars","fa-book-dead","fa-broom","fa-cat","fa-cloud-moon","fa-crow","fa-ghost","fa-hat-wizard","fa-mask","fa-skull-crossbones","fa-spider","fa-toilet-paper","fa-allergies","fa-fist-raised","fa-hand-holding","fa-hand-holding-heart","fa-hand-holding-medical","fa-hand-holding-usd","fa-hand-holding-water","fa-hand-lizard","fa-hand-middle-finger","fa-hand-paper","fa-hand-peace","fa-hand-point-down","fa-hand-point-left","fa-hand-point-right","fa-hand-point-up","fa-hand-pointer","fa-hand-rock","fa-hand-scissors","fa-hand-sparkles","fa-hand-spock","fa-hands","fa-hands-helping","fa-hands-wash","fa-handshake","fa-handshake-alt-slash","fa-handshake-slash","fa-praying-hands","fa-thumbs-down","fa-thumbs-up","fa-accessible-icon","fa-ambulance","fa-h-square","fa-heart","fa-heartbeat","fa-hospital","fa-medkit","fa-plus-square","fa-prescription","fa-stethoscope","fa-user-md","fa-wheelchair","fa-candy-cane","fa-carrot","fa-cookie-bite","fa-gift","fa-gifts","fa-glass-cheers","fa-holly-berry","fa-mug-hot","fa-sleigh","fa-snowman","fa-baby-carriage","fa-bath","fa-bed","fa-briefcase","fa-car","fa-cocktail","fa-coffee","fa-concierge-bell","fa-dice","fa-dice-five","fa-door-closed","fa-door-open","fa-dumbbell","fa-glass-martini","fa-glass-martini-alt","fa-hot-tub","fa-hotel","fa-infinity","fa-key","fa-luggage-cart","fa-shower","fa-shuttle-van","fa-smoking","fa-smoking-ban","fa-snowflake","fa-spa","fa-suitcase","fa-suitcase-rolling","fa-swimmer","fa-swimming-pool","fa-tv","fa-umbrella-beach","fa-utensils","fa-wheelchair","fa-wifi","fa-bath","fa-bed","fa-bell","fa-blender","fa-box-tissue","fa-chair","fa-coffee","fa-couch","fa-door-closed","fa-door-open","fa-dungeon","fa-fan","fa-faucet","fa-house-user","fa-laptop-house","fa-lightbulb","fa-plug","fa-pump-soap","fa-shower","fa-sink","fa-snowflake","fa-soap","fa-toilet-paper","fa-toilet-paper-slash","fa-tv","fa-adjust","fa-bolt","fa-camera","fa-camera-retro","fa-chalkboard","fa-clone","fa-compress","fa-compress-arrows-alt","fa-expand","fa-eye","fa-eye-dropper","fa-eye-slash","fa-file-image","fa-film","fa-id-badge","fa-id-card","fa-image","fa-images","fa-photo-video","fa-portrait","fa-sliders-h","fa-tint","fa-unsplash","fa-award","fa-ban","fa-barcode","fa-bars","fa-beer","fa-bell","fa-bell-slash","fa-blog","fa-bug","fa-bullhorn","fa-bullseye","fa-calculator","fa-calendar","fa-calendar-alt","fa-calendar-check","fa-calendar-minus","fa-calendar-plus","fa-calendar-times","fa-certificate","fa-check","fa-check-circle","fa-check-double","fa-check-square","fa-circle","fa-clipboard","fa-clone","fa-cloud","fa-cloud-download-alt","fa-cloud-upload-alt","fa-coffee","fa-cog","fa-cogs","fa-copy","fa-cut","fa-database","fa-dot-circle","fa-download","fa-edit","fa-ellipsis-h","fa-ellipsis-v","fa-envelope","fa-envelope-open","fa-eraser","fa-exclamation","fa-exclamation-circle","fa-exclamation-triangle","fa-external-link-alt","fa-external-link-square-alt","fa-eye","fa-eye-slash","fa-file","fa-file-alt","fa-file-download","fa-file-export","fa-file-import","fa-file-upload","fa-filter","fa-fingerprint","fa-flag","fa-flag-checkered","fa-folder","fa-folder-open","fa-frown","fa-glasses","fa-grip-horizontal","fa-grip-lines","fa-grip-lines-vertical","fa-grip-vertical","fa-hashtag","fa-heart","fa-history","fa-home","fa-i-cursor","fa-info","fa-info-circle","fa-language","fa-magic","fa-marker","fa-medal","fa-meh","fa-microphone","fa-microphone-alt","fa-microphone-slash","fa-minus","fa-minus-circle","fa-minus-square","fa-paste","fa-pen","fa-pen-alt","fa-pen-fancy","fa-pencil-alt","fa-plus","fa-plus-circle","fa-plus-square","fa-poo","fa-qrcode","fa-question","fa-question-circle","fa-quote-left","fa-quote-right","fa-redo","fa-redo-alt","fa-reply","fa-reply-all","fa-rss","fa-rss-square","fa-save","fa-screwdriver","fa-search","fa-search-minus","fa-search-plus","fa-share","fa-share-alt","fa-share-alt-square","fa-share-square","fa-shield-alt","fa-sign-in-alt","fa-sign-out-alt","fa-signal","fa-sitemap","fa-sliders-h","fa-smile","fa-sort","fa-sort-alpha-down","fa-sort-alpha-down-alt","fa-sort-alpha-up","fa-sort-alpha-up-alt","fa-sort-amount-down","fa-sort-amount-down-alt","fa-sort-amount-up","fa-sort-amount-up-alt","fa-sort-down","fa-sort-numeric-down","fa-sort-numeric-down-alt","fa-sort-numeric-up","fa-sort-numeric-up-alt","fa-sort-up","fa-star","fa-star-half","fa-sync","fa-sync-alt","fa-thumbs-down","fa-thumbs-up","fa-times","fa-times-circle","fa-toggle-off","fa-toggle-on","fa-tools","fa-trash","fa-trash-alt","fa-trash-restore","fa-trash-restore-alt","fa-trophy","fa-undo","fa-undo-alt","fa-upload","fa-user","fa-user-alt","fa-user-circle","fa-volume-down","fa-volume-mute","fa-volume-off","fa-volume-up","fa-wifi","fa-wrench","fa-box","fa-boxes","fa-clipboard-check","fa-clipboard-list","fa-dolly","fa-dolly-flatbed","fa-hard-hat","fa-pallet","fa-shipping-fast","fa-truck","fa-warehouse","fa-ambulance","fa-anchor","fa-balance-scale","fa-balance-scale-left","fa-balance-scale-right","fa-bath","fa-bed","fa-beer","fa-bell","fa-bell-slash","fa-bicycle","fa-binoculars","fa-birthday-cake","fa-blind","fa-bomb","fa-book","fa-bookmark","fa-briefcase","fa-building","fa-car","fa-coffee","fa-crosshairs","fa-directions","fa-dollar-sign","fa-draw-polygon","fa-eye","fa-eye-slash","fa-fighter-jet","fa-fire","fa-fire-alt","fa-fire-extinguisher","fa-flag","fa-flag-checkered","fa-flask","fa-gamepad","fa-gavel","fa-gift","fa-glass-martini","fa-globe","fa-graduation-cap","fa-h-square","fa-heart","fa-heartbeat","fa-helicopter","fa-home","fa-hospital","fa-image","fa-images","fa-industry","fa-info","fa-info-circle","fa-key","fa-landmark","fa-layer-group","fa-leaf","fa-lemon","fa-life-ring","fa-lightbulb","fa-location-arrow","fa-low-vision","fa-magnet","fa-male","fa-map","fa-map-marker","fa-map-marker-alt","fa-map-pin","fa-map-signs","fa-medkit","fa-money-bill","fa-money-bill-alt","fa-motorcycle","fa-music","fa-newspaper","fa-parking","fa-paw","fa-phone","fa-phone-alt","fa-phone-square","fa-phone-square-alt","fa-phone-volume","fa-plane","fa-plug","fa-plus","fa-plus-square","fa-print","fa-recycle","fa-restroom","fa-road","fa-rocket","fa-route","fa-search","fa-search-minus","fa-search-plus","fa-ship","fa-shoe-prints","fa-shopping-bag","fa-shopping-basket","fa-shopping-cart","fa-shower","fa-snowplow","fa-street-view","fa-subway","fa-suitcase","fa-tag","fa-tags","fa-taxi","fa-thumbtack","fa-ticket-alt","fa-tint","fa-traffic-light","fa-train","fa-tram","fa-tree","fa-trophy","fa-truck","fa-tty","fa-umbrella","fa-university","fa-utensil-spoon","fa-utensils","fa-vest","fa-vest-patches","fa-wheelchair","fa-wifi","fa-wine-glass","fa-wrench","fa-anchor","fa-binoculars","fa-compass","fa-dharmachakra","fa-frog","fa-ship","fa-skull-crossbones","fa-swimmer","fa-water","fa-wind","fa-ad","fa-bullhorn","fa-bullseye","fa-comment-dollar","fa-comments-dollar","fa-envelope-open-text","fa-funnel-dollar","fa-lightbulb","fa-mail-bulk","fa-poll","fa-poll-h","fa-search-dollar","fa-search-location","fa-calculator","fa-divide","fa-equals","fa-greater-than","fa-greater-than-equal","fa-infinity","fa-less-than","fa-less-than-equal","fa-minus","fa-not-equal","fa-percentage","fa-plus","fa-square-root-alt","fa-subscript","fa-superscript","fa-times","fa-wave-square","fa-allergies","fa-ambulance","fa-bacteria","fa-bacterium","fa-band-aid","fa-biohazard","fa-bone","fa-bong","fa-book-medical","fa-brain","fa-briefcase-medical","fa-burn","fa-cannabis","fa-capsules","fa-clinic-medical","fa-comment-medical","fa-crutch","fa-diagnoses","fa-disease","fa-dna","fa-file-medical","fa-file-medical-alt","fa-file-prescription","fa-first-aid","fa-hand-holding-medical","fa-head-side-cough","fa-head-side-cough-slash","fa-head-side-mask","fa-head-side-virus","fa-heart","fa-heartbeat","fa-hospital","fa-hospital-alt","fa-hospital-symbol","fa-hospital-user","fa-id-card-alt","fa-joint","fa-laptop-medical","fa-lungs","fa-lungs-virus","fa-microscope","fa-mortar-pestle","fa-notes-medical","fa-pager","fa-pills","fa-plus","fa-poop","fa-prescription","fa-prescription-bottle","fa-prescription-bottle-alt","fa-procedures","fa-pump-medical","fa-radiation","fa-radiation-alt","fa-shield-virus","fa-smoking","fa-smoking-ban","fa-star-of-life","fa-stethoscope","fa-syringe","fa-tablets","fa-teeth","fa-teeth-open","fa-thermometer","fa-tooth","fa-user-md","fa-user-nurse","fa-vial","fa-vials","fa-virus","fa-virus-slash","fa-viruses","fa-weight","fa-x-ray","fa-archive","fa-box-open","fa-caravan","fa-couch","fa-dolly","fa-people-carry","fa-route","fa-sign","fa-suitcase","fa-tape","fa-trailer","fa-truck-loading","fa-truck-moving","fa-wine-glass","fa-compact-disc","fa-drum","fa-drum-steelpan","fa-file-audio","fa-guitar","fa-headphones","fa-headphones-alt","fa-microphone","fa-microphone-alt","fa-microphone-alt-slash","fa-microphone-slash","fa-music","fa-napster","fa-play","fa-record-vinyl","fa-sliders-h","fa-soundcloud","fa-spotify","fa-volume-down","fa-volume-mute","fa-volume-off","fa-volume-up","fa-ambulance","fa-anchor","fa-archive","fa-award","fa-baby-carriage","fa-balance-scale","fa-balance-scale-left","fa-balance-scale-right","fa-bath","fa-bed","fa-beer","fa-bell","fa-bicycle","fa-binoculars","fa-birthday-cake","fa-blender","fa-bomb","fa-book","fa-book-dead","fa-bookmark","fa-briefcase","fa-broadcast-tower","fa-bug","fa-building","fa-bullhorn","fa-bullseye","fa-bus","fa-calculator","fa-calendar","fa-calendar-alt","fa-camera","fa-camera-retro","fa-candy-cane","fa-car","fa-carrot","fa-church","fa-clipboard","fa-cloud","fa-coffee","fa-cog","fa-cogs","fa-compass","fa-cookie","fa-cookie-bite","fa-copy","fa-cube","fa-cubes","fa-cut","fa-dice","fa-dice-d20","fa-dice-d6","fa-dice-five","fa-dice-four","fa-dice-one","fa-dice-six","fa-dice-three","fa-dice-two","fa-digital-tachograph","fa-door-closed","fa-door-open","fa-drum","fa-drum-steelpan","fa-envelope","fa-envelope-open","fa-eraser","fa-eye","fa-eye-dropper","fa-fax","fa-feather","fa-feather-alt","fa-fighter-jet","fa-file","fa-file-alt","fa-file-prescription","fa-film","fa-fire","fa-fire-alt","fa-fire-extinguisher","fa-flag","fa-flag-checkered","fa-flask","fa-futbol","fa-gamepad","fa-gavel","fa-gem","fa-gift","fa-gifts","fa-glass-cheers","fa-glass-martini","fa-glass-whiskey","fa-glasses","fa-globe","fa-graduation-cap","fa-guitar","fa-hat-wizard","fa-hdd","fa-headphones","fa-headphones-alt","fa-headset","fa-heart","fa-heart-broken","fa-helicopter","fa-highlighter","fa-holly-berry","fa-home","fa-hospital","fa-hourglass","fa-igloo","fa-image","fa-images","fa-industry","fa-key","fa-keyboard","fa-laptop","fa-leaf","fa-lemon","fa-life-ring","fa-lightbulb","fa-lock","fa-lock-open","fa-magic","fa-magnet","fa-map","fa-map-marker","fa-map-marker-alt","fa-map-pin","fa-map-signs","fa-marker","fa-medal","fa-medkit","fa-memory","fa-microchip","fa-microphone","fa-microphone-alt","fa-mitten","fa-mobile","fa-mobile-alt","fa-money-bill","fa-money-bill-alt","fa-money-check","fa-money-check-alt","fa-moon","fa-motorcycle","fa-mug-hot","fa-newspaper","fa-paint-brush","fa-paper-plane","fa-paperclip","fa-paste","fa-paw","fa-pen","fa-pen-alt","fa-pen-fancy","fa-pen-nib","fa-pencil-alt","fa-phone","fa-phone-alt","fa-plane","fa-plug","fa-print","fa-puzzle-piece","fa-ring","fa-road","fa-rocket","fa-ruler-combined","fa-ruler-horizontal","fa-ruler-vertical","fa-satellite","fa-satellite-dish","fa-save","fa-school","fa-screwdriver","fa-scroll","fa-sd-card","fa-search","fa-shield-alt","fa-shopping-bag","fa-shopping-basket","fa-shopping-cart","fa-shower","fa-sim-card","fa-skull-crossbones","fa-sleigh","fa-snowflake","fa-snowplow","fa-space-shuttle","fa-star","fa-sticky-note","fa-stopwatch","fa-stroopwafel","fa-subway","fa-suitcase","fa-sun","fa-tablet","fa-tablet-alt","fa-tachometer-alt","fa-tag","fa-tags","fa-taxi","fa-thumbtack","fa-ticket-alt","fa-toilet","fa-toolbox","fa-tools","fa-train","fa-tram","fa-trash","fa-trash-alt","fa-tree","fa-trophy","fa-truck","fa-tv","fa-umbrella","fa-university","fa-unlock","fa-unlock-alt","fa-utensil-spoon","fa-utensils","fa-wallet","fa-weight","fa-wheelchair","fa-wine-glass","fa-wrench","fa-alipay","fa-amazon-pay","fa-apple-pay","fa-bell","fa-bitcoin","fa-bookmark","fa-btc","fa-bullhorn","fa-camera","fa-camera-retro","fa-cart-arrow-down","fa-cart-plus","fa-cc-amazon-pay","fa-cc-amex","fa-cc-apple-pay","fa-cc-diners-club","fa-cc-discover","fa-cc-jcb","fa-cc-mastercard","fa-cc-paypal","fa-cc-stripe","fa-cc-visa","fa-certificate","fa-credit-card","fa-ethereum","fa-gem","fa-gift","fa-google-pay","fa-google-wallet","fa-handshake","fa-heart","fa-key","fa-money-check","fa-money-check-alt","fa-paypal","fa-receipt","fa-shopping-bag","fa-shopping-basket","fa-shopping-cart","fa-star","fa-stripe","fa-stripe-s","fa-tag","fa-tags","fa-thumbs-down","fa-thumbs-up","fa-trophy","fa-band-aid","fa-book-medical","fa-cannabis","fa-capsules","fa-clinic-medical","fa-disease","fa-eye-dropper","fa-file-medical","fa-file-prescription","fa-first-aid","fa-flask","fa-history","fa-joint","fa-laptop-medical","fa-mortar-pestle","fa-notes-medical","fa-pills","fa-prescription","fa-prescription-bottle","fa-prescription-bottle-alt","fa-receipt","fa-skull-crossbones","fa-syringe","fa-tablets","fa-thermometer","fa-vial","fa-vials","fa-award","fa-balance-scale","fa-balance-scale-left","fa-balance-scale-right","fa-bullhorn","fa-check-double","fa-democrat","fa-donate","fa-dove","fa-fist-raised","fa-flag-usa","fa-handshake","fa-person-booth","fa-piggy-bank","fa-republican","fa-vote-yea","fa-ankh","fa-atom","fa-bahai","fa-bible","fa-church","fa-cross","fa-dharmachakra","fa-dove","fa-gopuram","fa-hamsa","fa-hanukiah","fa-jedi","fa-journal-whills","fa-kaaba","fa-khanda","fa-menorah","fa-mosque","fa-om","fa-pastafarianism","fa-peace","fa-place-of-worship","fa-pray","fa-praying-hands","fa-quran","fa-star-and-crescent","fa-star-of-david","fa-synagogue","fa-torah","fa-torii-gate","fa-vihara","fa-yin-yang","fa-atom","fa-biohazard","fa-brain","fa-burn","fa-capsules","fa-clipboard-check","fa-disease","fa-dna","fa-eye-dropper","fa-filter","fa-fire","fa-fire-alt","fa-flask","fa-frog","fa-magnet","fa-microscope","fa-mortar-pestle","fa-pills","fa-prescription-bottle","fa-radiation","fa-radiation-alt","fa-seedling","fa-skull-crossbones","fa-syringe","fa-tablets","fa-temperature-high","fa-temperature-low","fa-vial","fa-vials","fa-atom","fa-galactic-republic","fa-galactic-senate","fa-globe","fa-hand-spock","fa-jedi","fa-jedi-order","fa-journal-whills","fa-meteor","fa-moon","fa-old-republic","fa-robot","fa-rocket","fa-satellite","fa-satellite-dish","fa-space-shuttle","fa-user-astronaut","fa-ban","fa-bug","fa-door-closed","fa-door-open","fa-dungeon","fa-eye","fa-eye-slash","fa-file-contract","fa-file-signature","fa-fingerprint","fa-id-badge","fa-id-card","fa-id-card-alt","fa-key","fa-lock","fa-lock-open","fa-mask","fa-passport","fa-shield-alt","fa-unlock","fa-unlock-alt","fa-user-lock","fa-user-secret","fa-user-shield","fa-bookmark","fa-calendar","fa-certificate","fa-circle","fa-cloud","fa-comment","fa-file","fa-folder","fa-heart","fa-heart-broken","fa-map-marker","fa-play","fa-shapes","fa-square","fa-star","fa-barcode","fa-cart-arrow-down","fa-cart-plus","fa-cash-register","fa-gift","fa-gifts","fa-person-booth","fa-receipt","fa-shipping-fast","fa-shopping-bag","fa-shopping-basket","fa-shopping-cart","fa-store","fa-store-alt","fa-store-alt-slash","fa-store-slash","fa-truck","fa-tshirt","fa-bell","fa-birthday-cake","fa-camera","fa-comment","fa-comment-alt","fa-envelope","fa-hashtag","fa-heart","fa-icons","fa-image","fa-images","fa-map-marker","fa-map-marker-alt","fa-photo-video","fa-poll","fa-poll-h","fa-retweet","fa-share","fa-share-alt","fa-share-square","fa-star","fa-thumbs-down","fa-thumbs-up","fa-thumbtack","fa-user","fa-user-circle","fa-user-friends","fa-user-plus","fa-users","fa-video","fa-asterisk","fa-atom","fa-bahai","fa-certificate","fa-circle-notch","fa-cog","fa-compact-disc","fa-compass","fa-crosshairs","fa-dharmachakra","fa-fan","fa-life-ring","fa-palette","fa-ring","fa-slash","fa-snowflake","fa-spinner","fa-stroopwafel","fa-sun","fa-sync","fa-sync-alt","fa-yin-yang","fa-baseball-ball","fa-basketball-ball","fa-biking","fa-bowling-ball","fa-dumbbell","fa-football-ball","fa-futbol","fa-golf-ball","fa-hockey-puck","fa-quidditch","fa-running","fa-skating","fa-skiing","fa-skiing-nordic","fa-snowboarding","fa-swimmer","fa-table-tennis","fa-volleyball-ball","fa-allergies","fa-broom","fa-cloud-sun","fa-cloud-sun-rain","fa-frog","fa-rainbow","fa-seedling","fa-umbrella","fa-ban","fa-battery-empty","fa-battery-full","fa-battery-half","fa-battery-quarter","fa-battery-three-quarters","fa-bell","fa-bell-slash","fa-calendar","fa-calendar-alt","fa-calendar-check","fa-calendar-day","fa-calendar-minus","fa-calendar-plus","fa-calendar-times","fa-calendar-week","fa-cart-arrow-down","fa-cart-plus","fa-comment","fa-comment-alt","fa-comment-slash","fa-compass","fa-door-closed","fa-door-open","fa-exclamation","fa-exclamation-circle","fa-exclamation-triangle","fa-eye","fa-eye-slash","fa-file","fa-file-alt","fa-folder","fa-folder-open","fa-gas-pump","fa-info","fa-info-circle","fa-lightbulb","fa-lock","fa-lock-open","fa-map-marker","fa-map-marker-alt","fa-microphone","fa-microphone-alt","fa-microphone-alt-slash","fa-microphone-slash","fa-minus","fa-minus-circle","fa-minus-square","fa-parking","fa-phone","fa-phone-alt","fa-phone-slash","fa-plus","fa-plus-circle","fa-plus-square","fa-print","fa-question","fa-question-circle","fa-shield-alt","fa-shopping-cart","fa-sign-in-alt","fa-sign-out-alt","fa-signal","fa-smoking-ban","fa-star","fa-star-half","fa-star-half-alt","fa-stream","fa-thermometer-empty","fa-thermometer-full","fa-thermometer-half","fa-thermometer-quarter","fa-thermometer-three-quarters","fa-thumbs-down","fa-thumbs-up","fa-tint","fa-tint-slash","fa-toggle-off","fa-toggle-on","fa-unlock","fa-unlock-alt","fa-user","fa-user-alt","fa-user-alt-slash","fa-user-slash","fa-video","fa-video-slash","fa-volume-down","fa-volume-mute","fa-volume-off","fa-volume-up","fa-wifi","fa-anchor","fa-biking","fa-fish","fa-hotdog","fa-ice-cream","fa-lemon","fa-sun","fa-swimmer","fa-swimming-pool","fa-umbrella-beach","fa-volleyball-ball","fa-water","fa-bullseye","fa-check-circle","fa-circle","fa-dot-circle","fa-microphone","fa-microphone-slash","fa-star","fa-star-half","fa-star-half-alt","fa-toggle-off","fa-toggle-on","fa-wifi","fa-archway","fa-atlas","fa-bed","fa-bus","fa-bus-alt","fa-caravan","fa-cocktail","fa-concierge-bell","fa-dumbbell","fa-glass-martini","fa-glass-martini-alt","fa-globe-africa","fa-globe-americas","fa-globe-asia","fa-globe-europe","fa-hot-tub","fa-hotel","fa-luggage-cart","fa-map","fa-map-marked","fa-map-marked-alt","fa-monument","fa-passport","fa-plane","fa-plane-arrival","fa-plane-departure","fa-shuttle-van","fa-spa","fa-suitcase","fa-suitcase-rolling","fa-swimmer","fa-swimming-pool","fa-taxi","fa-tram","fa-tv","fa-umbrella-beach","fa-wine-glass","fa-wine-glass-alt","fa-accessible-icon","fa-address-book","fa-address-card","fa-baby","fa-bed","fa-biking","fa-blind","fa-chalkboard-teacher","fa-child","fa-female","fa-frown","fa-hiking","fa-id-badge","fa-id-card","fa-id-card-alt","fa-male","fa-meh","fa-people-arrows","fa-people-carry","fa-person-booth","fa-poo","fa-portrait","fa-power-off","fa-pray","fa-restroom","fa-running","fa-skating","fa-skiing","fa-skiing-nordic","fa-smile","fa-snowboarding","fa-street-view","fa-swimmer","fa-user","fa-user-alt","fa-user-alt-slash","fa-user-astronaut","fa-user-check","fa-user-circle","fa-user-clock","fa-user-cog","fa-user-edit","fa-user-friends","fa-user-graduate","fa-user-injured","fa-user-lock","fa-user-md","fa-user-minus","fa-user-ninja","fa-user-nurse","fa-user-plus","fa-user-secret","fa-user-shield","fa-user-slash","fa-user-tag","fa-user-tie","fa-user-times","fa-users","fa-users-cog","fa-users-slash","fa-walking","fa-wheelchair","fa-accessible-icon","fa-ambulance","fa-baby-carriage","fa-bicycle","fa-bus","fa-bus-alt","fa-car","fa-car-alt","fa-car-crash","fa-car-side","fa-fighter-jet","fa-helicopter","fa-horse","fa-motorcycle","fa-paper-plane","fa-plane","fa-rocket","fa-ship","fa-shopping-cart","fa-shuttle-van","fa-sleigh","fa-snowplow","fa-space-shuttle","fa-subway","fa-taxi","fa-tractor","fa-train","fa-tram","fa-truck","fa-truck-monster","fa-truck-pickup","fa-wheelchair","fa-bolt","fa-cloud","fa-cloud-meatball","fa-cloud-moon","fa-cloud-moon-rain","fa-cloud-rain","fa-cloud-showers-heavy","fa-cloud-sun","fa-cloud-sun-rain","fa-meteor","fa-moon","fa-poo-storm","fa-rainbow","fa-smog","fa-snowflake","fa-sun","fa-temperature-high","fa-temperature-low","fa-umbrella","fa-water","fa-wind","fa-glass-whiskey","fa-icicles","fa-igloo","fa-mitten","fa-skating","fa-skiing","fa-skiing-nordic","fa-snowboarding","fa-snowplow","fa-tram","fa-archive","fa-blog","fa-book","fa-bookmark","fa-edit","fa-envelope","fa-envelope-open","fa-eraser","fa-file","fa-file-alt","fa-folder","fa-folder-open","fa-keyboard","fa-newspaper","fa-paper-plane","fa-paperclip","fa-paragraph","fa-pen","fa-pen-alt","fa-pen-square","fa-pencil-alt","fa-quote-left","fa-quote-right","fa-sticky-note","fa-thumbtack"],Tz=["fa-500px","fa-accusoft","fa-adn","fa-adversal","fa-affiliatetheme","fa-airbnb","fa-algolia","fa-amazon","fa-amilia","fa-android","fa-angellist","fa-angrycreative","fa-angular","fa-app-store","fa-app-store-ios","fa-apper","fa-apple","fa-artstation","fa-asymmetrik","fa-atlassian","fa-audible","fa-autoprefixer","fa-avianex","fa-aviato","fa-aws","fa-backspace","fa-bandcamp","fa-battle-net","fa-behance","fa-behance-square","fa-bimobject","fa-bitbucket","fa-bity","fa-black-tie","fa-blackberry","fa-blender-phone","fa-blogger","fa-blogger-b","fa-bootstrap","fa-buffer","fa-buromobelexperte","fa-buy-n-large","fa-buysellads","fa-canadian-maple-leaf","fa-centercode","fa-centos","fa-chrome","fa-chromecast","fa-cloudflare","fa-cloudscale","fa-cloudsmith","fa-cloudversify","fa-codepen","fa-codiepie","fa-confluence","fa-connectdevelop","fa-contao","fa-cotton-bureau","fa-cpanel","fa-creative-commons","fa-creative-commons-by","fa-creative-commons-nc","fa-creative-commons-nc-eu","fa-creative-commons-nc-jp","fa-creative-commons-nd","fa-creative-commons-pd","fa-creative-commons-pd-alt","fa-creative-commons-remix","fa-creative-commons-sa","fa-creative-commons-sampling","fa-creative-commons-sampling-plus","fa-creative-commons-share","fa-creative-commons-zero","fa-crown","fa-css3","fa-css3-alt","fa-cuttlefish","fa-dailymotion","fa-dashcube","fa-deezer","fa-delicious","fa-deploydog","fa-deskpro","fa-dev","fa-deviantart","fa-dhl","fa-diaspora","fa-digg","fa-digital-ocean","fa-discord","fa-discourse","fa-dochub","fa-docker","fa-draft2digital","fa-dribbble","fa-dribbble-square","fa-dropbox","fa-drupal","fa-dumpster-fire","fa-dyalog","fa-earlybirds","fa-ebay","fa-edge","fa-edge-legacy","fa-elementor","fa-ello","fa-ember","fa-empire","fa-envira","fa-erlang","fa-etsy","fa-evernote","fa-expeditedssl","fa-facebook","fa-facebook-f","fa-facebook-messenger","fa-facebook-square","fa-fedex","fa-fedora","fa-figma","fa-file-csv","fa-firefox","fa-firefox-browser","fa-first-order","fa-first-order-alt","fa-firstdraft","fa-flickr","fa-flipboard","fa-fly","fa-font-awesome","fa-font-awesome-alt","fa-font-awesome-flag","fa-font-awesome-logo-full","fa-fonticons","fa-fonticons-fi","fa-fort-awesome","fa-fort-awesome-alt","fa-forumbee","fa-foursquare","fa-free-code-camp","fa-freebsd","fa-fulcrum","fa-get-pocket","fa-git","fa-git-alt","fa-git-square","fa-github","fa-github-alt","fa-github-square","fa-gitkraken","fa-gitlab","fa-gitter","fa-glide","fa-glide-g","fa-gofore","fa-goodreads","fa-goodreads-g","fa-google","fa-google-drive","fa-google-play","fa-google-plus","fa-google-plus-g","fa-google-plus-square","fa-gratipay","fa-grav","fa-gripfire","fa-grunt","fa-guilded","fa-gulp","fa-hacker-news","fa-hacker-news-square","fa-hackerrank","fa-hips","fa-hire-a-helper","fa-hive","fa-hooli","fa-hornbill","fa-hotjar","fa-houzz","fa-html5","fa-hubspot","fa-ideal","fa-imdb","fa-innosoft","fa-instagram","fa-instagram-square","fa-instalod","fa-intercom","fa-internet-explorer","fa-invision","fa-ioxhost","fa-itch-io","fa-itunes","fa-itunes-note","fa-java","fa-jenkins","fa-jira","fa-joget","fa-joomla","fa-js","fa-js-square","fa-jsfiddle","fa-kaggle","fa-keybase","fa-keycdn","fa-kickstarter","fa-kickstarter-k","fa-korvue","fa-laravel","fa-lastfm","fa-lastfm-square","fa-leanpub","fa-less","fa-line","fa-linkedin","fa-linkedin-in","fa-linode","fa-linux","fa-lyft","fa-magento","fa-mailchimp","fa-mandalorian","fa-markdown","fa-mastodon","fa-maxcdn","fa-mdb","fa-medapps","fa-medium","fa-medium-m","fa-medrt","fa-meetup","fa-megaport","fa-mendeley","fa-microblog","fa-microsoft","fa-mix","fa-mixcloud","fa-mixer","fa-mizuni","fa-modx","fa-monero","fa-neos","fa-network-wired","fa-nimblr","fa-node","fa-node-js","fa-npm","fa-ns8","fa-nutritionix","fa-octopus-deploy","fa-odnoklassniki","fa-odnoklassniki-square","fa-opencart","fa-openid","fa-opera","fa-optin-monster","fa-orcid","fa-osi","fa-page4","fa-pagelines","fa-palfed","fa-patreon","fa-perbyte","fa-periscope","fa-phabricator","fa-phoenix-framework","fa-phoenix-squadron","fa-php","fa-pied-piper","fa-pied-piper-alt","fa-pied-piper-hat","fa-pied-piper-pp","fa-pied-piper-square","fa-pinterest","fa-pinterest-p","fa-pinterest-square","fa-plane-slash","fa-product-hunt","fa-pushed","fa-python","fa-qq","fa-quinscape","fa-quora","fa-r-project","fa-raspberry-pi","fa-ravelry","fa-react","fa-reacteurope","fa-readme","fa-rebel","fa-red-river","fa-reddit","fa-reddit-alien","fa-reddit-square","fa-redhat","fa-renren","fa-replyd","fa-researchgate","fa-resolving","fa-rev","fa-rocketchat","fa-rockrms","fa-rust","fa-safari","fa-salesforce","fa-sass","fa-schlix","fa-scribd","fa-searchengin","fa-sellcast","fa-sellsy","fa-servicestack","fa-shirtsinbulk","fa-shopify","fa-shopware","fa-signature","fa-simplybuilt","fa-sistrix","fa-sith","fa-sketch","fa-skull","fa-skyatlas","fa-skype","fa-slack","fa-slack-hash","fa-slideshare","fa-snapchat","fa-snapchat-ghost","fa-snapchat-square","fa-sourcetree","fa-speakap","fa-speaker-deck","fa-squarespace","fa-stack-exchange","fa-stack-overflow","fa-stackpath","fa-staylinked","fa-sticker-mule","fa-stopwatch-20","fa-strava","fa-studiovinari","fa-stumbleupon","fa-stumbleupon-circle","fa-superpowers","fa-supple","fa-suse","fa-swift","fa-symfony","fa-teamspeak","fa-telegram","fa-telegram-plane","fa-tencent-weibo","fa-the-red-yeti","fa-themeco","fa-themeisle","fa-think-peaks","fa-tiktok","fa-trade-federation","fa-trello","fa-tumblr","fa-tumblr-square","fa-twitter","fa-twitter-square","fa-typo3","fa-uber","fa-ubuntu","fa-uikit","fa-umbraco","fa-uncharted","fa-uniregistry","fa-unity","fa-untappd","fa-ups","fa-usb","fa-usps","fa-ussunnah","fa-vaadin","fa-viacoin","fa-viadeo","fa-viadeo-square","fa-viber","fa-vimeo","fa-vimeo-square","fa-vimeo-v","fa-vine","fa-vk","fa-vnv","fa-vr-cardboard","fa-vuejs","fa-watchman-monitoring","fa-waze","fa-weebly","fa-weibo","fa-weight-hanging","fa-weixin","fa-whatsapp","fa-whatsapp-square","fa-whmcs","fa-wikipedia-w","fa-windows","fa-wix","fa-wodu","fa-wolf-pack-battalion","fa-wordpress","fa-wordpress-simple","fa-wpbeginner","fa-wpexplorer","fa-wpforms","fa-wpressr","fa-xing","fa-xing-square","fa-y-combinator","fa-yahoo","fa-yammer","fa-yandex","fa-yandex-international","fa-yarn","fa-yelp","fa-yoast","fa-youtube-square","fa-zhihu"],Jw={},YM={};Tz.forEach(p=>{YM[p]="",Jw[p]=""});Az.forEach(p=>{Jw[p]=p});var KM=p=>p in YM;var JM=(p,b)=>{p.use(XM.default,{defs:{...ZM.default,...Jw}}),p.renderer.rules.emoji=(x,T)=>{let O=x[T];if(b.config.enableEmojiSyntax){let B=O.markup;return B.match("fa-")?`<i class="${KM(B)?"fa-brands":"fa-solid"} ${B}" aria-hidden="true"></i>`:O.content}else return`:${O.markup}:`}};var QM=We(require("markdown-it-html5-embed")),Cz=p=>({html5embed:{useImageSyntax:p.config.HTML5EmbedUseImageSyntax,useLinkSyntax:p.config.HTML5EmbedUseLinkSyntax,isAllowedHttp:p.config.HTML5EmbedIsAllowedHttp,attributes:{audio:p.config.HTML5EmbedAudioAttributes,video:p.config.HTML5EmbedVideoAttributes}}}),e2=(p,b)=>{b.config.enableHTML5Embed&&p.use(QM.default,Cz(b))};var t2=require("html-escaper"),n2=We(require("katex")),m5=require("katex/contrib/mhchem"),Qw=({content:p,openTag:b,closeTag:x,displayMode:T=!1,renderingOption:O,katexConfig:B})=>{if(!p)return"";if(O==="KaTeX")try{return n2.default.renderToString(p,Object.assign({},structuredClone(B),{displayMode:T}))}catch($){return`<span style="color: #ee7f49; font-weight: 500;">${$.toString()}</span>`}else if(O==="MathJax"){let $=(b+p+x).replace(/\n/g," "),F=T?"div":"span";return`<${F} class="mathjax-exps">${(0,t2.escape)($)}</${F}>`}else return""};var a2=(p,b)=>{p.inline.ruler.before("escape","math",(x,T)=>{if(b.config.mathRenderingOption==="None")return!1;let O=null,B=null,$=!0,{mathBlockDelimiters:F,mathInlineDelimiters:j}=b.config;for(let ae of F)if(x.src.startsWith(ae[0],x.pos)){[O,B]=ae;break}if(!O){for(let ae of j)if(x.src.startsWith(ae[0],x.pos)){[O,B]=ae,$=!1;break}}if(!O||!B)return!1;let W=null,V=-1,te=x.pos+O.length;for(;te<x.src.length;){if(B&&x.src.startsWith(B,te)){V=te;break}else x.src[te]==="\\"&&(te+=1);te+=1}if(V>=0)W=x.src.slice(x.pos+O.length,V);else return!1;if(W&&!T){let ae=x.push("math","",0);return ae.content=W.trim(),ae.meta=ae.meta||{},ae.meta.openTag=O,ae.meta.closeTag=B,ae.meta.displayMode=$,x.pos+=W.length+O.length+B.length,!0}else return!1}),p.renderer.rules.math=(x,T)=>{let O=x[T].content??"";return Qw({content:O,openTag:x[T].meta.openTag,closeTag:x[T].meta.closeTag,renderingOption:b.config.mathRenderingOption,displayMode:x[T].meta.displayMode,katexConfig:b.config.katexConfig})}};var r2=p=>{let b=p.renderer.renderToken.bind(p.renderer);p.renderer.renderToken=function(x,T,O){if(!O.sourceMap)return b(x,T,O);let B=x[T];return B.type.endsWith("_open")&&B.map!==null&&B.map[0]!==void 0&&B.attrSet("data-source-line",`${B.map[0]+1}`),b(x,T,O)}};var i2=(p,b)=>{let x=p.renderer.rules.image.bind(p.renderer);p.renderer.rules.image=(T,O,B,$,F)=>{var W;let j=T[O];if(j.children&&((W=j.children[0])==null?void 0:W.content)==="@embedding"){let V=j.attrGet("error")??"";if(V)return decodeURIComponent(atob(V));{let te=j.attrGet("embedding")??"",ae=decodeURIComponent(atob(te));return b.initMarkdownIt({...p.options,sourceMap:!1}).render(ae)}}return x(T,O,B,$,F)}};var o2=(p,b)=>{p.inline.ruler.before("autolink","wikilink",(x,T)=>{if(!b.config.enableWikiLinkSyntax||!x.src.startsWith("[[",x.pos))return!1;let O=null,B="]]",$=-1,F=x.pos+B.length;for(;F<x.src.length;){if(x.src[F]==="\\")F+=1;else if(x.src.startsWith(B,F)){$=F;break}F+=1}if($>=0)O=x.src.slice(x.pos+B.length,$);else return!1;if(O&&!T){let j=x.push("wikilink","a",0);return j.content=O,x.pos+=O.length+2*B.length,!0}else return!1}),p.renderer.rules.wikilink=(x,T)=>{let{content:O}=x[T];if(!O)return"";let{text:B,link:$}=b.processWikilink(O);return`<a href="${$}">${B}</a>`}};var r_=We(require("fs")),l2=We(require("less")),Od=We(require("path"));var kA=typeof window>"u";function e_(){return{startOnLoad:!1}}function t_(){return{tex:{},options:{},loader:{}}}function n_(){return{macros:{}}}function a_(){return{onWillParseMarkdown:async function(p){return p},onDidParseMarkdown:async function(p){return p}}}function Id(){return{markdownFileExtensions:[".md",".markdown",".mdown",".mkdn",".mkd",".rmd",".qmd",".mdx"],globalCss:"",includeInHeader:"",mermaidConfig:e_(),mathjaxConfig:t_(),katexConfig:n_(),parserConfig:a_(),enablePreviewZenMode:!1,usePandocParser:!1,breakOnSingleNewLine:!0,enableTypographer:!1,enableWikiLinkSyntax:!0,wikiLinkTargetFileExtension:".md",wikiLinkTargetFileNameChangeCase:"none",enableLinkify:!0,enableEmojiSyntax:!0,enableExtendedTableSyntax:!1,enableCriticMarkupSyntax:!1,useGitHubStylePipedLink:!1,protocolsWhiteList:"http://, https://, atom://, file://, mailto:, tel:",mathRenderingOption:"KaTeX",mathInlineDelimiters:[["$","$"]],mathBlockDelimiters:[["$$","$$"]],mathRenderingOnlineService:"https://latex.codecogs.com/gif.latex",mathjaxV3ScriptSrc:"https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js",codeBlockTheme:"auto.css",previewTheme:"github-light.css",revealjsTheme:"white.css",mermaidTheme:"default",frontMatterRenderingOption:"none",imageFolderPath:"/assets",printBackground:!1,chromePath:"",imageMagickPath:"",pandocPath:"pandoc",pandocMarkdownFlavor:"markdown-raw_tex+tex_math_single_backslash",pandocArguments:[],latexEngine:"pdflatex",enableScriptExecution:!1,enableHTML5Embed:!1,HTML5EmbedUseImageSyntax:!0,HTML5EmbedUseLinkSyntax:!1,HTML5EmbedIsAllowedHttp:!1,HTML5EmbedAudioAttributes:'controls preload="metadata"',HTML5EmbedVideoAttributes:'controls preload="metadata"',puppeteerWaitForTimeout:0,puppeteerArgs:[],plantumlServer:"",plantumlJarPath:"",jsdelivrCdnHost:"cdn.jsdelivr.net",krokiServer:"https://kroki.io",isVSCode:!1,alwaysShowBacklinksInPreview:!1}}var s2=(T=>(T.SinglePreview="Single Preview",T.MultiplePreviews="Multiple Previews",T.PreviewsOnly="Previews Only",T))(s2||{});async function i_(p,b,x=!1){let T=Id(),O={globalCss:T.globalCss,includeInHeader:T.includeInHeader,mermaidConfig:T.mermaidConfig,mathjaxConfig:T.mathjaxConfig,katexConfig:T.katexConfig,parserConfig:T.parserConfig};return x&&await b.mkdir(p),await b.exists(p)&&(O.globalCss=await Rz(p,b),O.parserConfig=await Oz(p,b),O.includeInHeader=await Nz(p,b),O={...O,...await Iz(p,b)}),O}async function Rz(p,b){let x=Od.join(p,"./style.less"),T;try{T=await b.readFile(x)}catch{T=`
|
|
289
289
|
/* Please visit the URL below for more information: */
|
|
290
290
|
/* https://shd101wyy.github.io/markdown-preview-enhanced/#/customize-css */
|
|
291
291
|
|
|
@@ -325,7 +325,7 @@ ${x}
|
|
|
325
325
|
---
|
|
326
326
|
${p}`}var c0=class{constructor(){this.map={}}addReference(b,x,T){if(b===x&&!T){b in this.map||(this.map[b]={[x]:[]});return}if(T)if(b in this.map){let O=this.map[b];x in O?O[x].push(T):O[x]=[T]}else this.map[b]={[x]:[T]}}deleteReferences(b,x){if(b===x){delete this.map[b];return}b in this.map&&x in this.map[b]&&(delete this.map[b][x],Object.keys(this.map[b]).length===0&&delete this.map[b])}hasRelation(b,x){return b in this.map&&x in this.map[b]||x in this.map&&b in this.map[x]||b===x}getReferences(b,x){return b in this.map&&x in this.map[b]?this.map[b][x]:[]}noteHasReferences(b){return b in this.map}getReferredByNotesCount(b){if(b in this.map){let x=Object.keys(this.map[b]).length;return b in this.map[b]&&(x-=1),x}else return 0}};var d2=We(require("minisearch"));function Dz(p,b="-"){return p.replace(/[.\s!@#$%^&*()\-=_+~`[\]{}\\<>?/|()【】::,。]+/g,b)}var ph=class{constructor(){this.miniSearch=new d2.default({fields:["title","aliases","filePath"],storeFields:["title","aliases","filePath"],extractField:(b,x)=>x==="aliases"?b.aliases.join("|"):b[x],tokenize:b=>Dz(b," ").match(/([^\x00-\x7F]|\w+)/g)??[]}),this._cache={}}add(b,x,T=[]){if(!(b in this._cache)){let O={id:b+"#"+x,filePath:b,title:x,aliases:T};this.miniSearch.add(O),this._cache[b]=O}}remove(b){if(b in this._cache){let x=this._cache[b];x&&this.miniSearch.remove(x),delete this._cache[b]}}search(b,x){return this.miniSearch.search(b,x)}addAlias(b,x){let T=this._cache[b];T&&(this.remove(b),this.add(b,T.title,T.aliases.concat(x)))}deleteAlias(b,x){let T=this._cache[b];T&&(this.remove(b),this.add(b,T.title,T.aliases.filter(O=>O!==x)))}};var Mz={html:!0,xhtmlOut:!1,breaks:!0,langPrefix:"language-",linkify:!0,typographer:!0,sourceMap:!0},xA=class p{constructor(){this.notes={};this.hasLoadedNotes=!1;this.referenceMap=new c0;this.refreshNotesIfNotLoadedMutex=new p2.Mutex;this.search=new ph;this.markdownEngines={}}async init({notebookPath:b,config:x={},fs:T}){let O=l_.URI.parse(b);if(!tn.isAbsolute(O.fsPath)||O.path.startsWith("/./"))throw new Error(`\`notebookPath\`: "${b}" must be an absolute path`);this.notebookPath=O,this.initFs(T),await this.initConfig(x),this.md=this.initMarkdownIt(),this.updateConfig({})}static async init(b){let x=new p;return await x.init(b),x}async initConfig(b){let x=await i_(tn.join(this.notebookPath.fsPath,"./.crossnote"),this.fs);this.config={...Id(),...x,...b}}initMarkdownIt(b){let x=new h2.default(b??Mz);return x.use(b2.default),x.use(v2.default),x.use(E2.default),x.use(g2.default),x.use(m2.default),x.use(y2.default),qM(x),VM(x),WM(x,this),JM(x,this),e2(x,this),a2(x,this),o2(x,this),HM(x),r2(x),i2(x,this),x}initFs(b){if(b)this.fs=b;else if(kA)this.fs=o_();else throw new Error("`fs` is required")}updateConfig(b){this.config={...this.config,...b},this.interpolateConfig(),this.md.set({typographer:!!this.config.enableTypographer,breaks:!!this.config.breakOnSingleNewLine,linkify:!!this.config.enableLinkify})}interpolateConfig(){let b={projectDir:this.notebookPath.fsPath,workspaceFolder:this.notebookPath.fsPath};this.config.imageFolderPath=ch(this.config.imageFolderPath,b),this.config.imageMagickPath=ch(this.config.imageMagickPath,b),this.config.chromePath=ch(this.config.chromePath,b),this.config.pandocPath=ch(this.config.pandocPath,b),this.config.plantumlJarPath=ch(this.config.plantumlJarPath,b)}async getBacklinkedNotes(b){if(b=this.resolveNoteRelativePath(b),b in this.referenceMap.map){let x=this.referenceMap.map[b],T={};for(let O in x){if(O===b)continue;let B=await this.getNote(O);B&&(T[O]=B)}return T}else return{}}async getNoteBacklinks(b){let x=await this.getBacklinkedNotes(b),T=[],O=Object.keys(x);for(let B of O){let $=x[B],F=await this.getReferences(b,B);T.push({note:{notebookPath:$.notebookPath,filePath:$.filePath,title:$.title,config:$.config},references:F,referenceHtmls:F.map(j=>{let W=[j.parentToken??j.token];return this.md.renderer.render(W,this.md.options,{})})})}return T}async getReferences(b,x){return this.referenceMap.getReferences(this.resolveNoteRelativePath(b),this.resolveNoteRelativePath(x))}async processNoteMentionsAndMentionedBy(b){let x=await this.getNote(b);if(!x)return;let T=this.md.parse(x.markdown,{}),O=V=>(V.endsWith(".md")||(V=V+".md"),V.startsWith("/")?tn.relative(this.notebookPath.fsPath,tn.join(this.notebookPath.fsPath,"."+V)):tn.relative(this.notebookPath.fsPath,tn.join(tn.dirname(tn.join(this.notebookPath.fsPath,x.filePath)),V))),B=V=>l_.Utils.joinPath(this.notebookPath,V).toString(),$=(V,te,ae,he)=>{var Q;for(let ie=0;ie<V.length;ie++){let se=V[ie];if(se.type==="wikilink"){let fe=this.processWikilink(se.content),{text:pe}=fe,{link:Te}=fe;if(Te.match(/https?:\/\//))continue;Te=O(Te),this.config.useGitHubStylePipedLink?se.content=`${pe} | ${B(Te)}`:se.content=`${B(Te)} | ${pe}`,ae.push({elementId:se.attrGet("id")||"",text:pe,link:Te,parentToken:te,token:se})}else if(se.type==="tag"){let fe=se.content.trim(),pe=se.content.trim();ae.push({elementId:se.attrGet("id")||"",text:fe,link:O(pe),parentToken:te,token:se})}else if(se.type==="link_open"&&V[ie+1]&&V[ie+1].type==="text"){if((Q=se.attrs)!=null&&Q.length&&se.attrs[0][0]==="href"){let fe=decodeURI(se.attrs[0][1]),pe=V[ie+1].content.trim();if(fe.match(/https?:\/\//)||!pe.length||!fe.endsWith(".md"))continue;fe=O(fe),se.attrs[0][1]=B(fe),ae.push({elementId:se.attrGet("id")||"",text:pe,link:fe,parentToken:te,token:se})}}else se.children&&se.children.length&&$(se.children,se,ae,he+1)}return ae},F=$(T,null,[],0),j=new Set,W=x.mentions;for(let V in W)this.referenceMap.deleteReferences(V,x.filePath);for(let V=0;V<F.length;V++){let{link:te}=F[V];j[te]=!0,this.referenceMap.addReference(te,x.filePath,F[V])}this.referenceMap.addReference(x.filePath,x.filePath,void 0),x.mentions=j}async getNote(b,x=!1){if(b=this.resolveNoteRelativePath(b),!x&&b in this.notes)return this.notes[b];let T=this.resolveNoteAbsolutePath(b),O;try{O=await this.fs.stat(T)}catch{return null}if(O.isFile()&&this.config.markdownFileExtensions.includes(tn.extname(b))){let B=await this.fs.readFile(T),$={createdAt:new Date(O.ctimeMs),modifiedAt:new Date(O.mtimeMs),aliases:[]};try{let V=u2(B),te=Object.assign({},V.data);if(V.data.created&&($.createdAt=new Date(V.data.created),delete te.created),V.data.modified&&($.modifiedAt=new Date(V.data.modified),delete te.modified),V.data.pinned&&($.pinned=V.data.pinned,delete te.pinned),V.data.favorited&&($.favorited=V.data.favorited,delete te.favorited),V.data.icon&&($.icon=V.data.icon,delete te.icon),V.data.aliases){let ae=V.data.aliases||[];typeof ae=="string"?$.aliases=ae.split(",").map(he=>he.trim()):$.aliases=ae,delete te.aliases}B=c2(V.content,te)}catch{B=`Please fix front-matter. (\u{1F448} Don't forget to delete this line)
|
|
327
327
|
|
|
328
|
-
`+B}let F=new Set,j=this.notes[b];j&&(F=j.mentions);let W={notebookPath:this.notebookPath,filePath:tn.relative(this.notebookPath.fsPath,T),title:tn.basename(T).replace(/\.md$/,""),markdown:B,config:$,mentions:F};return x&&(this.notes[W.filePath]=W,this.search.add(W.filePath,W.title,W.config.aliases),await this.processNoteMentionsAndMentionedBy(W.filePath)),W}else return null}async refreshNotesIfNotLoaded({dir:b="./",includeSubdirectories:x=!1}){return await this.refreshNotesIfNotLoadedMutex.runExclusive(async()=>{this.hasLoadedNotes||(await this.refreshNotes({dir:b,includeSubdirectories:x,refreshRelations:!0}),this.hasLoadedNotes=!0)}),this.notes}async refreshNotes({dir:b="./",includeSubdirectories:x=!1,refreshRelations:T=!0}){T&&(this.notes={},this.referenceMap=new c0,this.search=new ph);let O=[];try{O=await this.fs.readdir(tn.resolve(this.notebookPath.fsPath,b))}catch($){console.error($),O=[]}let B=[];for(let $=0;$<O.length;$++){let F=O[$];if(F.match(/^(node_modules|\.git)$/))continue;let j=tn.resolve(this.notebookPath.fsPath,b,F),W=await this.getNote(tn.relative(this.notebookPath.fsPath,j));W&&(this.notes[W.filePath]=W,this.search.add(W.filePath,W.title,W.config.aliases));let V;try{V=await this.fs.stat(j)}catch(te){console.error(te)}V&&V.isDirectory()&&x&&B.push(this.refreshNotes({dir:tn.relative(this.notebookPath.fsPath,j),includeSubdirectories:x,refreshRelations:!1}))}if(await Promise.all(B),T)for(let $ in this.notes)await this.processNoteMentionsAndMentionedBy($);return this.notes}async removeNoteRelations(b){let x=await this.getNote(b);if(!x)return;let T=x.mentions;for(let O in T)this.referenceMap.deleteReferences(O,x.filePath);delete this.notes[x.filePath]}async deleteNote(b,x=!1){let T=this.resolveNoteAbsolutePath(b);(x||await this.fs.exists(T))&&(await this.fs.unlink(T),await this.removeNoteRelations(b),this.search.remove(b))}resolveNoteAbsolutePath(b){return tn.isAbsolute(b)?b:tn.resolve(this.notebookPath.fsPath,b)}resolveNoteRelativePath(b){return tn.isAbsolute(b)?tn.relative(this.notebookPath.fsPath,b):b}getNoteMarkdownEngine(b){return b=this.resolveNoteRelativePath(b),b in this.markdownEngines||(this.markdownEngines[b]=new d0({notebook:this,filePath:this.resolveNoteAbsolutePath(b)})),this.markdownEngines[b]}getNoteMarkdownEngines(){return this.markdownEngines}clearAllNoteMarkdownEngineCaches(){for(let b in this.markdownEngines)this.markdownEngines[b].clearCaches()}processWikilink(b){let x=b.split("|"),T,O;x.length===1?(O=x[0].trim(),T=O):this.config.useGitHubStylePipedLink?(O=x[0].trim(),T=x[1].trim()):(O=x[1].trim(),T=x[0].trim());let B=T.lastIndexOf("#"),$="";B>=0&&($=T.slice(B),T=T.slice(0,B));let F=tn.parse(T),j=F.name,W=F.ext;return W.match(/^\.\d+$/)&&(j+=W,W=""),this.config.wikiLinkTargetFileNameChangeCase!=="none"&&this.config.wikiLinkTargetFileNameChangeCase in f2&&(j=f2[this.config.wikiLinkTargetFileNameChangeCase](j)),W||(W=this.config.wikiLinkTargetFileExtension),T=tn.join(F.dir,j+W),$&&(T+=$),{link:T,text:O}}};var S2=require("html-escaper");var Lz={sh:"bash",bash:"bash",c:"c","c++":"cpp",cpp:"cpp",coffee:"coffeescript",coffeescript:"coffeescript","coffee-script":"coffeescript",cs:"csharp",csharp:"csharp",css:"css",scss:"scss",sass:"sass",elm:"elm",elmlang:"elm","elm-lang":"elm",erlang:"erlang",go:"go",html:"html",java:"java",js:"javascript",javascript:"javascript",json:"json",less:"less",objc:"objectivec",objectivec:"objectivec","objective-c":"objectivec",php:"php",py:"python",python:"python",rb:"ruby",ruby:"ruby",text:"text",tex:"latex",xml:"xml",yaml:"yaml",yml:"yaml",yaml_table:"yaml",mermaid:"mermaid",plantuml:"plantuml",puml:"plantuml",wavedrom:"wavedrom",graphviz:"dot",viz:"dot",dot:"dot",erd:"erd",node:"javascript",md:"gfm",diff:"diff"};function w2(p){return p=p.toLowerCase(),Lz[p]||p}function _2(p){p.languages.iele={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],variable:{pattern:/(@|%)([A-Za-z0-9\\_\\.\\-\\$])[a-zA-Z\\.\\_\\$][0-9a-zA-Z\\.\\_\\-\\$]*/,greedy:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:/\b(?:load|store|sload|sstore|iszero|not|add|mul|sub|div|exp|mod|addmod|mulmod|expmod|byte|sext|twos|and|or|xor|shift|lt|le|gt|ge|eq|ne|cmp|sha3|br|call|staticcall|at|send|gaslimit|ret|void|revert|log|create|copycreate|selfdestruct|contract|external|define|public|log2|bswap|calladdress)\b/,label:/(?!\d)(?:[-$.\w]|\\[a-f\d]{2})+:/i,boolean:/\b(?:true|false)\b/,number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/}}function k2(p){p.languages.k={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":/\b(?:strict|avoid|prefer|bracket|non-assoc|seqstrict|left|right|macro-rec|macro|token|notInRules|autoReject|structural|latex|binder|klabel|symbol|format)\b/,keyword:{pattern:/\b(?:syntax\s+(?:priority|priorities|left|right|non-assoc|lexical)|syntax|rule|Id|Int|Bool|String|Token|Lexer|Float|configuration|import|imports|require|requires|Kresult|context\s+alias|context|module|endmodule|claim)\b/,greedy:!0},boolean:/\b(?:true|false)\b/,number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,operator:{pattern:/[<>]=|=>|~>|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/},punctuation:/[{}[\];(),.:]/,tag:{pattern:/<\/?(?!\d)[^\s>/=$<%]+(?:\s(?:\s*[^\s>/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>/:]+:/}},"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>/]+/,inside:{namespace:/^[^\s>/:]+:/}}}}}}var hh=We(x2());hh.default.hooks.add("wrap",p=>{p.type==="keyword"&&p.classes.push(`keyword-${p.content}`)});k2(hh.default);_2(hh.default);async function SA(p){p("pre>code").each((b,x)=>{let T=p(x),O=T.text(),B=T.parent();T.replaceWith((0,S2.escape)(O)),B.addClass("language-text")}),p('[data-role="codeBlock"]').each((b,x)=>{let T=p(x);if(T.data("hiddenByEnhancer")||T.data("normalizedInfo").attributes.hide===!0){T.remove();return}let B=T.text(),$=T.data("normalizedInfo"),F=Pz(w2($.language),B);try{let j=hh.default.highlight(B,hh.default.languages[F],F);T.empty().append(p("<code></code>").html(j))}catch{T.empty().append(p("<code></code>").text(B))}T.addClass(`language-${F}`),$.attributes.class&&(T.addClass($.attributes.class),$z(T,B)),$.attributes.highlight&&Bz(T,B,$.attributes.highlight),T.removeAttr("data-parsed-info"),T.removeAttr("data-normalized-info")})}function Pz(p,b){return p==="vega"||p==="vega-lite"?(b.match(/^\s*(.)/)??[])[1]==="{"?"json":"yaml":p}function $z(p,b){if(p.hasClass("numberLines")&&(p.addClass("line-numbers"),p.removeClass("numberLines")),p.hasClass("line-numbers")){if(!b.trim().length)return;let x=b.match(/\n(?!$)/g),T=x?x.length+1:1,O="";for(let B=0;B<T;B++)O+="<span></span>";p.append(`<span aria-hidden="true" class="line-numbers-rows">${O}</span>`)}}function Bz(p,b,x){if(!b.trim().length)return;typeof x=="number"?x=[x.toString()]:typeof x=="string"&&(x=x.split(","));let T=b.match(/\n(?!$)/g),O=T?T.length+1:1,B=[];x.forEach($=>{if($=$.toString(),$.indexOf("-")>0){let[F,j]=$.split("-").map(te=>parseInt(te,10));if(isNaN(F)||isNaN(j)||F<0||j<0||(F>j&&([F,j]=[j,F]),j>O))return;let W="";for(let te=F;te<=j;te++)W+=`
|
|
328
|
+
`+B}let F=new Set,j=this.notes[b];j&&(F=j.mentions);let W={notebookPath:this.notebookPath,filePath:tn.relative(this.notebookPath.fsPath,T),title:tn.basename(T).replace(/\.md$/,""),markdown:B,config:$,mentions:F};return x&&(this.notes[W.filePath]=W,this.search.add(W.filePath,W.title,W.config.aliases),await this.processNoteMentionsAndMentionedBy(W.filePath)),W}else return null}async refreshNotesIfNotLoaded({dir:b="./",includeSubdirectories:x=!1}){return await this.refreshNotesIfNotLoadedMutex.runExclusive(async()=>{this.hasLoadedNotes||(await this.refreshNotes({dir:b,includeSubdirectories:x,refreshRelations:!0}),this.hasLoadedNotes=!0)}),this.notes}async refreshNotes({dir:b="./",includeSubdirectories:x=!1,refreshRelations:T=!0}){T&&(this.notes={},this.referenceMap=new c0,this.search=new ph);let O=[];try{O=await this.fs.readdir(tn.resolve(this.notebookPath.fsPath,b))}catch($){console.error($),O=[]}let B=[];for(let $=0;$<O.length;$++){let F=O[$];if(F.match(/^(node_modules|\.git)$/))continue;let j=tn.resolve(this.notebookPath.fsPath,b,F),W=await this.getNote(tn.relative(this.notebookPath.fsPath,j));W&&(this.notes[W.filePath]=W,this.search.add(W.filePath,W.title,W.config.aliases));let V;try{V=await this.fs.stat(j)}catch(te){console.error(te)}V&&V.isDirectory()&&x&&B.push(this.refreshNotes({dir:tn.relative(this.notebookPath.fsPath,j),includeSubdirectories:x,refreshRelations:!1}))}if(await Promise.all(B),T)for(let $ in this.notes)await this.processNoteMentionsAndMentionedBy($);return this.notes}async removeNoteRelations(b){let x=await this.getNote(b);if(!x)return;let T=x.mentions;for(let O in T)this.referenceMap.deleteReferences(O,x.filePath);delete this.notes[x.filePath]}async deleteNote(b,x=!1){let T=this.resolveNoteAbsolutePath(b);(x||await this.fs.exists(T))&&(await this.fs.unlink(T),await this.removeNoteRelations(b),this.search.remove(b))}resolveNoteAbsolutePath(b){return tn.isAbsolute(b)?b:tn.resolve(this.notebookPath.fsPath,b)}resolveNoteRelativePath(b){return tn.isAbsolute(b)?tn.relative(this.notebookPath.fsPath,b):b}getNoteMarkdownEngine(b){return b=this.resolveNoteRelativePath(b),b in this.markdownEngines||(this.markdownEngines[b]=new d0({notebook:this,filePath:this.resolveNoteAbsolutePath(b)})),this.markdownEngines[b]}getNoteMarkdownEngines(){return this.markdownEngines}clearAllNoteMarkdownEngineCaches(){for(let b in this.markdownEngines)this.markdownEngines[b].clearCaches()}processWikilink(b){let x=b.split("|"),T,O;x.length===1?(O=x[0].trim(),T=O):this.config.useGitHubStylePipedLink?(O=x[0].trim(),T=x[1].trim()):(O=x[1].trim(),T=x[0].trim());let B=T.lastIndexOf("#"),$="";B>=0&&($=T.slice(B),T=T.slice(0,B));let F=tn.parse(T),j=F.name,W=F.ext;return W.match(/^\.\d+$/)&&(j+=W,W=""),this.config.wikiLinkTargetFileNameChangeCase!=="none"&&this.config.wikiLinkTargetFileNameChangeCase in f2&&(j=f2[this.config.wikiLinkTargetFileNameChangeCase](j)),W||(W=this.config.wikiLinkTargetFileExtension),T=tn.join(F.dir,j+W),$&&(T+=$),{link:T,text:O}}};var S2=require("html-escaper");var Lz={sh:"bash",bash:"bash",c:"c","c++":"cpp",cpp:"cpp",coffee:"coffeescript",coffeescript:"coffeescript","coffee-script":"coffeescript",cs:"csharp",csharp:"csharp",css:"css",scss:"scss",sass:"sass",elm:"elm",elmlang:"elm","elm-lang":"elm",erlang:"erlang",go:"go",html:"html",java:"java",js:"javascript",javascript:"javascript",json:"json",less:"less",objc:"objectivec",objectivec:"objectivec","objective-c":"objectivec",php:"php",py:"python",python:"python",rb:"ruby",ruby:"ruby",text:"text",tex:"latex",xml:"xml",yaml:"yaml",yml:"yaml",yaml_table:"yaml",mermaid:"mermaid",plantuml:"plantuml",puml:"plantuml",wavedrom:"wavedrom",graphviz:"dot",viz:"dot",dot:"dot",erd:"erd",node:"javascript",md:"gfm",diff:"diff"};function w2(p){return p=p.toLowerCase(),Lz[p]||p}function _2(p){p.languages.iele={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],variable:{pattern:/(@|%)([A-Za-z0-9\\_\\.\\-\\$])[a-zA-Z\\.\\_\\$][0-9a-zA-Z\\.\\_\\-\\$]*/,greedy:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:/\b(?:load|store|sload|sstore|iszero|not|add|mul|sub|div|exp|mod|addmod|mulmod|expmod|byte|sext|twos|and|or|xor|shift|lt|le|gt|ge|eq|ne|cmp|sha3|br|call|staticcall|at|send|gaslimit|ret|void|revert|log|create|copycreate|selfdestruct|contract|external|define|public|log2|bswap|calladdress)\b/,label:/(?!\d)(?:[-$.\w]|\\[a-f\d]{2})+:/i,boolean:/\b(?:true|false)\b/,number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/}}function k2(p){p.languages.k={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":/\b(?:strict|avoid|prefer|bracket|non-assoc|seqstrict|left|right|macro-rec|macro|token|notInRules|autoReject|structural|latex|binder|klabel|symbol|format)\b/,keyword:{pattern:/\b(?:syntax\s+(?:priority|priorities|left|right|non-assoc|lexical)|syntax|rule|Id|Int|Bool|String|Token|Lexer|Float|configuration|import|imports|require|requires|Kresult|context\s+alias|context|module|endmodule|claim)\b/,greedy:!0},boolean:/\b(?:true|false)\b/,number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,operator:{pattern:/[<>]=|=>|~>|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/},punctuation:/[{}[\];(),.:]/,tag:{pattern:/<\/?(?!\d)[^\s>/=$<%]+(?:\s(?:\s*[^\s>/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>/:]+:/}},"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>/]+/,inside:{namespace:/^[^\s>/:]+:/}}}}}}var hh=We(x2());hh.default.hooks.add("wrap",p=>{p.type==="keyword"&&p.classes.push(`keyword-${p.content}`)});k2(hh.default);_2(hh.default);async function SA(p){p("pre>code").each((b,x)=>{let T=p(x),O=T.text(),B=T.parent();T.replaceWith((0,S2.escape)(O)),B.addClass("language-text")}),p('[data-role="codeBlock"]').each((b,x)=>{let T=p(x);if(T.data("hiddenByEnhancer")||T.data("normalizedInfo").attributes.hide===!0){T.remove();return}let B=T.text(),$=T.data("normalizedInfo"),F=Pz(w2($.language),B);try{let j=hh.default.highlight(B,hh.default.languages[F],F);T.empty().append(p("<code></code>").html(j))}catch{T.empty().append(p("<code></code>").text(B))}T.addClass(`language-${F||"text"}`),$.attributes.class&&(T.addClass($.attributes.class),$z(T,B)),$.attributes.highlight&&Bz(T,B,$.attributes.highlight),T.removeAttr("data-parsed-info"),T.removeAttr("data-normalized-info")})}function Pz(p,b){return p==="vega"||p==="vega-lite"?(b.match(/^\s*(.)/)??[])[1]==="{"?"json":"yaml":p}function $z(p,b){if(p.hasClass("numberLines")&&(p.addClass("line-numbers"),p.removeClass("numberLines")),p.hasClass("line-numbers")){if(!b.trim().length)return;let x=b.match(/\n(?!$)/g),T=x?x.length+1:1,O="";for(let B=0;B<T;B++)O+="<span></span>";p.append(`<span aria-hidden="true" class="line-numbers-rows">${O}</span>`)}}function Bz(p,b,x){if(!b.trim().length)return;typeof x=="number"?x=[x.toString()]:typeof x=="string"&&(x=x.split(","));let T=b.match(/\n(?!$)/g),O=T?T.length+1:1,B=[];x.forEach($=>{if($=$.toString(),$.indexOf("-")>0){let[F,j]=$.split("-").map(te=>parseInt(te,10));if(isNaN(F)||isNaN(j)||F<0||j<0||(F>j&&([F,j]=[j,F]),j>O))return;let W="";for(let te=F;te<=j;te++)W+=`
|
|
329
329
|
`;let V="";for(let te=0;te<F-1;te++)V+=`
|
|
330
330
|
`;B.push(`<div class="line-highlight-wrapper">${V}<div aria-hidden="true" class="line-highlight" data-range="${F}-${j}" data-start="${F}" data-end="${j}">${W}</div></div>`)}else{let F="",j=parseInt($,10);if(isNaN(j)||j<0||j>O)return;for(let W=0;W<j-1;W++)F+=`
|
|
331
331
|
`;B.push(`<div class="line-highlight-wrapper">${F}<div aria-hidden="true" class="line-highlight" data-range="${$}" data-start="${$}">
|
|
@@ -436,7 +436,7 @@ window["initRevealPresentation"] = async function() {
|
|
|
436
436
|
window.MathJax = (${JSON.stringify(Ae)});
|
|
437
437
|
</script>
|
|
438
438
|
<script type="text/javascript" async src="${this.notebook.config.mathjaxV3ScriptSrc}"></script>
|
|
439
|
-
`}else this.notebook.config.mathRenderingOption==="KaTeX"?T.offline?$=`<link rel="stylesheet" href="file:///${qe.resolve(_t(),"./dependencies/katex/katex.min.css")}">`:$=`<link rel="stylesheet" href="https://${this.notebook.config.jsdelivrCdnHost}/npm/katex@0.16.
|
|
439
|
+
`}else this.notebook.config.mathRenderingOption==="KaTeX"?T.offline?$=`<link rel="stylesheet" href="file:///${qe.resolve(_t(),"./dependencies/katex/katex.min.css")}">`:$=`<link rel="stylesheet" href="https://${this.notebook.config.jsdelivrCdnHost}/npm/katex@0.16.11/dist/katex.min.css">`:$="";let F="";b.indexOf('<i class="fa')>=0&&(T.offline?F=`<link rel="stylesheet" href="file:///${qe.resolve(_t(),"./dependencies/font-awesome/css/all.min.css")}">`:F=`<link rel="stylesheet" href="https://${this.notebook.config.jsdelivrCdnHost}/npm/@fortawesome/fontawesome-free@6.4.2/css/all.min.css">`);let j="",W="";b.indexOf(' class="mermaid')>=0&&(T.offline?j=`<script type="text/javascript" src="file:///${qe.resolve(_t(),"./dependencies/mermaid/mermaid.min.js")}" charset="UTF-8"></script>`:j=`<script src="https://${this.notebook.config.jsdelivrCdnHost}/npm/mermaid@11.1.1/dist/mermaid.min.js"></script>`,W+=`<script type="module">
|
|
440
440
|
// TODO: If ZenUML gets integrated into mermaid in the future,
|
|
441
441
|
// we can remove the following lines.
|
|
442
442
|
${b.match(/zenuml/i)?`import zenuml from 'https://${this.notebook.config.jsdelivrCdnHost}/npm/@mermaid-js/mermaid-zenuml@0.1.0/dist/mermaid-zenuml.esm.min.mjs';
|
|
@@ -551,7 +551,7 @@ sidebarTOCBtn.addEventListener('click', function(event) {
|
|
|
551
551
|
${he}
|
|
552
552
|
${Ge}
|
|
553
553
|
</html>
|
|
554
|
-
`,T.embedLocalImages||T.embedSVG){let Ae=Ll.load(b);T.embedLocalImages&&await c_(Ae,this.notebook,this.resolveFilePath.bind(this)),T.embedSVG&&await AA(Ae,this.notebook,this.resolveFilePath.bind(this)),b=Ae.html()}return b.trim()}async openInBrowser({runAllCodeChunks:b=!1}){let x=await this.fs.readFile(this.filePath),T,O;({html:T,yamlConfig:O}=await this.parseMD(x,{useRelativeFilePath:!1,hideFrontMatter:!0,isForPreview:!1,runAllCodeChunks:b})),T=await this.generateHTMLTemplateForExport(T,O,{isForPrint:!1,isForPrince:!1,offline:!0,embedLocalImages:!1});let B=await Xo({prefix:"crossnote",suffix:".html"});Jn.writeFileSync(B.fd,T),Nd(B.path)}async htmlExport({offline:b=!1,runAllCodeChunks:x=!1}){let T=await this.fs.readFile(this.filePath),O,B;({html:O,yamlConfig:B}=await this.parseMD(T,{useRelativeFilePath:!0,hideFrontMatter:!0,isForPreview:!1,runAllCodeChunks:x}));let $=B.html||{};"offline"in $&&(b=$.offline);let F=$.embed_local_images,j=!0;"embed_svg"in $&&(j=$.embed_svg);let W=this.filePath,V=qe.extname(W);if(W=W.replace(new RegExp(V+"$"),".html"),O=await this.generateHTMLTemplateForExport(O,B,{isForPrint:!1,isForPrince:!1,embedLocalImages:F,offline:b,embedSVG:j}),!b&&O.indexOf('[{"src":"revealjs_deps/notes.js","async":true}]')>=0){let te=qe.resolve(qe.dirname(W),"revealjs_deps");Jn.existsSync(te)||Jn.mkdirSync(te),Jn.createReadStream(qe.resolve(_t(),"./dependencies/reveal/plugin/notes/notes.js")).pipe(Jn.createWriteStream(qe.resolve(te,"notes.js"))),Jn.createReadStream(qe.resolve(_t(),"./dependencies/reveal/plugin/notes/notes.html")).pipe(Jn.createWriteStream(qe.resolve(te,"notes.html")))}return await this.fs.writeFile(W,O),W}async chromeExport({fileType:b="pdf",runAllCodeChunks:x=!1,openFileAfterGeneration:T=!1}){let O=await this.fs.readFile(this.filePath),B,$;({html:B,yamlConfig:$}=await this.parseMD(O,{useRelativeFilePath:!1,hideFrontMatter:!0,isForPreview:!1,runAllCodeChunks:x}));let F=this.filePath,j=qe.extname(F);F=F.replace(new RegExp(j+"$"),"."+b),B=await this.generateHTMLTemplateForExport(B,$,{isForPrint:!0,isForPrince:!1,embedLocalImages:!1,offline:!0});let W="";try{if(W=this.notebook.config.chromePath,!W){let fe=(await import("chrome-paths")).default;W=fe.chrome||fe.chromeCanary||fe.chromium}}catch{W=""}if(!W)throw new Error("Chrome executable path is not set.");let te=await(await import("puppeteer-core/lib/cjs/puppeteer/puppeteer-core.js")).launch({args:this.notebook.config.puppeteerArgs||[],executablePath:W,headless:!0}),ae=await Xo({prefix:"crossnote",suffix:".html"});Jn.writeFileSync(ae.fd,B);let he=await te.newPage(),Q="file:///"+ae.path+($.isPresentationMode?"?print-pdf":"");await he.goto(Q);let ie={path:F,...$.isPresentationMode?{}:{margin:{top:"1cm",bottom:"1cm",left:"1cm",right:"1cm"}},printBackground:this.notebook.config.printBackground,...$.chrome||$.puppeteer||{}},se=0;return $.chrome&&$.chrome.timeout?se=$.chrome.timeout:$.puppeteer&&$.puppeteer.timeout&&(se=$.puppeteer.timeout),se&&typeof se=="number"?await he.waitForTimeout(se):this.notebook.config.puppeteerWaitForTimeout&&this.notebook.config.puppeteerWaitForTimeout>0&&await he.waitForTimeout(this.notebook.config.puppeteerWaitForTimeout),b==="pdf"?await he.pdf(ie):(ie.fullPage=!0,await he.screenshot(ie)),te.close(),T&&Nd(F),F}async princeExport({runAllCodeChunks:b=!1,openFileAfterGeneration:x=!1}){let T=await this.fs.readFile(this.filePath),O,B;({html:O,yamlConfig:B}=await this.parseMD(T,{useRelativeFilePath:!1,hideFrontMatter:!0,isForPreview:!1,runAllCodeChunks:b}));let $=this.filePath,F=qe.extname($);$=$.replace(new RegExp(F+"$"),".pdf"),O=await this.generateHTMLTemplateForExport(O,B,{isForPrint:!0,isForPrince:!0,embedLocalImages:!1,offline:!0});let j=await Xo({prefix:"crossnote",suffix:".html"});return Jn.writeFileSync(j.fd,O),B.isPresentationMode?"file:///"+j.path+"?print-pdf":(await jM(j.path,$),x&&Nd($),$)}async eBookDownloadImages(b,x){let T=[];(qe.extname(x)===".epub"||qe.extname("dest")===".mobi")&&b("img").each((B,$)=>{let F=b($);(F.attr("src")||"").match(/^https?:\/\//)&&T.push(F)});let O=T.map(B=>new Promise($=>{let F=B.attr("src"),j=Math.random().toString(36).substr(2,9)+"_"+qe.basename(F);j=qe.resolve(this.fileDirectoryPath,j),(0,P2.default)(F).pipe(Jn.createWriteStream(j)).on("finish",()=>(B.attr("src","file:///"+j),$(j)))}));return Promise.all(O)}async eBookExport({fileType:b="epub",runAllCodeChunks:x=!1}){let T=await this.fs.readFile(this.filePath),O=b==="pdf",B,$;({html:B,yamlConfig:$}=await this.parseMD(T,{useRelativeFilePath:!1,hideFrontMatter:!0,isForPreview:!1,runAllCodeChunks:x,emojiToSvg:O}));let F=this.filePath,j=qe.extname(F);F=F.replace(new RegExp(j+"$"),"."+b.toLowerCase());let W=$.ebook||{};if(!W)throw new Error("eBook config not found. Please insert ebook front-matter to your markdown file.");if(W.cover){let ye=W.cover;W.cover=Fs(this.resolveFilePath(ye,!1))}let V=Ll.load(`<div>${B}</div>`),te=[],ae=new uo,he=V("div > ul").last();if(he.length){if(W.include_toc===!1){let ye=he.prev();ye.length&&ye[0].name.match(/^h\d$/i)&&ye.remove()}V("h1, h2, h3, h4, h5, h6").each((ye,be)=>{let Ae=V(be),_e=parseInt(Ae[0].name.slice(1),10)-1;Ae.attr("ebook-toc-level-"+(_e+1),""),Ae.attr("heading",Ae.html())}),Q(he,0),W.include_toc===!1&&he.remove()}function Q(ye,be){ye.children("li").each((Ae,_e)=>{let Ye=V(_e),$e=Ye.children("a").first();if(!$e.length){Ye.children().length>=1&&Q(Ye.children().last(),be+1);return}let Me=decodeURIComponent($e.attr("href")),dt=$e.html()??"",yt=ae.generateId("ebook-heading-"+dt);te.push({level:be,filePath:Me,heading:dt,id:yt}),$e.attr("href","#"+yt),Ye.children().length>1&&Q(Ye.children().last(),be+1)})}let ie=te.map(({heading:ye,id:be,level:Ae,filePath:_e},Ye)=>new Promise(($e,Me)=>{if(_e=Fs(_e),_e.match(/^https?:\/\//))return $e({heading:ye,id:be,level:Ae,filePath:_e,html:"",offset:Ye});Jn.readFile(_e,{encoding:"utf-8"},(dt,yt)=>{if(dt)return Me(dt.toString());let St=qe.dirname(this.filePath);yt=yt.replace(/(!\[[^\]]*\]\()(\.[^)\s]*)/g,(rn,pn,jt)=>{let xt=qe.resolve(qe.dirname(_e),jt),Tt=qe.relative(St,xt);return pn+Tt}),this.parseMD(yt,{useRelativeFilePath:!1,isForPreview:!1,hideFrontMatter:!0,emojiToSvg:O,fileDirectoryPath:qe.dirname(_e)}).then(({html:rn})=>$e({heading:ye,id:be,level:Ae,filePath:_e,html:rn,offset:Ye}))})})),se=V.html().replace(/^<div>(.+)<\/div>$/,"$1"),fe=await Promise.all(ie);fe=fe.sort((ye,be)=>ye.offset-be.offset),fe.forEach(({heading:ye,id:be,level:Ae,html:_e})=>{let Ye=Ll.load(`<div>${_e}</div>`);Ye("a").each(($e,Me)=>{let dt=Ye(Me),yt=dt.attr("href");yt.startsWith("file://")&&fe.forEach(St=>{St.filePath===Fs(yt)&&dt.attr("href","#"+St.id)})}),se+=`<div id="${be}" ebook-toc-level-${Ae+1} heading="${ye}">${Ye.html()}</div>`}),V=Ll.load(se);let pe=await this.eBookDownloadImages(V,F);if(qe.extname(F)===".html"){if(W.cover){let ye=W.cover[0]==="/"?"file:///"+W.cover:W.cover;V(":root").children().first().prepend(`<img style="display:block; margin-bottom: 24px;" src="${ye}">`)}await c_(V,this.notebook,this.resolveFilePath.bind(this))}se=V.html();let Te=W.title||"no title",Ie="";se.indexOf('class="katex"')>0&&(qe.extname(F)===".html"&&W.html&&W.html.cdn?Ie=`<link rel="stylesheet" href="https://${this.notebook.config.jsdelivrCdnHost}/npm/katex@0.16.
|
|
554
|
+
`,T.embedLocalImages||T.embedSVG){let Ae=Ll.load(b);T.embedLocalImages&&await c_(Ae,this.notebook,this.resolveFilePath.bind(this)),T.embedSVG&&await AA(Ae,this.notebook,this.resolveFilePath.bind(this)),b=Ae.html()}return b.trim()}async openInBrowser({runAllCodeChunks:b=!1}){let x=await this.fs.readFile(this.filePath),T,O;({html:T,yamlConfig:O}=await this.parseMD(x,{useRelativeFilePath:!1,hideFrontMatter:!0,isForPreview:!1,runAllCodeChunks:b})),T=await this.generateHTMLTemplateForExport(T,O,{isForPrint:!1,isForPrince:!1,offline:!0,embedLocalImages:!1});let B=await Xo({prefix:"crossnote",suffix:".html"});Jn.writeFileSync(B.fd,T),Nd(B.path)}async htmlExport({offline:b=!1,runAllCodeChunks:x=!1}){let T=await this.fs.readFile(this.filePath),O,B;({html:O,yamlConfig:B}=await this.parseMD(T,{useRelativeFilePath:!0,hideFrontMatter:!0,isForPreview:!1,runAllCodeChunks:x}));let $=B.html||{};"offline"in $&&(b=$.offline);let F=$.embed_local_images,j=!0;"embed_svg"in $&&(j=$.embed_svg);let W=this.filePath,V=qe.extname(W);if(W=W.replace(new RegExp(V+"$"),".html"),O=await this.generateHTMLTemplateForExport(O,B,{isForPrint:!1,isForPrince:!1,embedLocalImages:F,offline:b,embedSVG:j}),!b&&O.indexOf('[{"src":"revealjs_deps/notes.js","async":true}]')>=0){let te=qe.resolve(qe.dirname(W),"revealjs_deps");Jn.existsSync(te)||Jn.mkdirSync(te),Jn.createReadStream(qe.resolve(_t(),"./dependencies/reveal/plugin/notes/notes.js")).pipe(Jn.createWriteStream(qe.resolve(te,"notes.js"))),Jn.createReadStream(qe.resolve(_t(),"./dependencies/reveal/plugin/notes/notes.html")).pipe(Jn.createWriteStream(qe.resolve(te,"notes.html")))}return await this.fs.writeFile(W,O),W}async chromeExport({fileType:b="pdf",runAllCodeChunks:x=!1,openFileAfterGeneration:T=!1}){let O=await this.fs.readFile(this.filePath),B,$;({html:B,yamlConfig:$}=await this.parseMD(O,{useRelativeFilePath:!1,hideFrontMatter:!0,isForPreview:!1,runAllCodeChunks:x}));let F=this.filePath,j=qe.extname(F);F=F.replace(new RegExp(j+"$"),"."+b),B=await this.generateHTMLTemplateForExport(B,$,{isForPrint:!0,isForPrince:!1,embedLocalImages:!1,offline:!0});let W="";try{if(W=this.notebook.config.chromePath,!W){let fe=(await import("chrome-paths")).default;W=fe.chrome||fe.chromeCanary||fe.chromium}}catch{W=""}if(!W)throw new Error("Chrome executable path is not set.");let te=await(await import("puppeteer-core/lib/cjs/puppeteer/puppeteer-core.js")).launch({args:this.notebook.config.puppeteerArgs||[],executablePath:W,headless:!0}),ae=await Xo({prefix:"crossnote",suffix:".html"});Jn.writeFileSync(ae.fd,B);let he=await te.newPage(),Q="file:///"+ae.path+($.isPresentationMode?"?print-pdf":"");await he.goto(Q);let ie={path:F,...$.isPresentationMode?{}:{margin:{top:"1cm",bottom:"1cm",left:"1cm",right:"1cm"}},printBackground:this.notebook.config.printBackground,...$.chrome||$.puppeteer||{}},se=0;return $.chrome&&$.chrome.timeout?se=$.chrome.timeout:$.puppeteer&&$.puppeteer.timeout&&(se=$.puppeteer.timeout),se&&typeof se=="number"?await he.waitForTimeout(se):this.notebook.config.puppeteerWaitForTimeout&&this.notebook.config.puppeteerWaitForTimeout>0&&await he.waitForTimeout(this.notebook.config.puppeteerWaitForTimeout),b==="pdf"?await he.pdf(ie):(ie.fullPage=!0,await he.screenshot(ie)),te.close(),T&&Nd(F),F}async princeExport({runAllCodeChunks:b=!1,openFileAfterGeneration:x=!1}){let T=await this.fs.readFile(this.filePath),O,B;({html:O,yamlConfig:B}=await this.parseMD(T,{useRelativeFilePath:!1,hideFrontMatter:!0,isForPreview:!1,runAllCodeChunks:b}));let $=this.filePath,F=qe.extname($);$=$.replace(new RegExp(F+"$"),".pdf"),O=await this.generateHTMLTemplateForExport(O,B,{isForPrint:!0,isForPrince:!0,embedLocalImages:!1,offline:!0});let j=await Xo({prefix:"crossnote",suffix:".html"});return Jn.writeFileSync(j.fd,O),B.isPresentationMode?"file:///"+j.path+"?print-pdf":(await jM(j.path,$),x&&Nd($),$)}async eBookDownloadImages(b,x){let T=[];(qe.extname(x)===".epub"||qe.extname("dest")===".mobi")&&b("img").each((B,$)=>{let F=b($);(F.attr("src")||"").match(/^https?:\/\//)&&T.push(F)});let O=T.map(B=>new Promise($=>{let F=B.attr("src"),j=Math.random().toString(36).substr(2,9)+"_"+qe.basename(F);j=qe.resolve(this.fileDirectoryPath,j),(0,P2.default)(F).pipe(Jn.createWriteStream(j)).on("finish",()=>(B.attr("src","file:///"+j),$(j)))}));return Promise.all(O)}async eBookExport({fileType:b="epub",runAllCodeChunks:x=!1}){let T=await this.fs.readFile(this.filePath),O=b==="pdf",B,$;({html:B,yamlConfig:$}=await this.parseMD(T,{useRelativeFilePath:!1,hideFrontMatter:!0,isForPreview:!1,runAllCodeChunks:x,emojiToSvg:O}));let F=this.filePath,j=qe.extname(F);F=F.replace(new RegExp(j+"$"),"."+b.toLowerCase());let W=$.ebook||{};if(!W)throw new Error("eBook config not found. Please insert ebook front-matter to your markdown file.");if(W.cover){let ye=W.cover;W.cover=Fs(this.resolveFilePath(ye,!1))}let V=Ll.load(`<div>${B}</div>`),te=[],ae=new uo,he=V("div > ul").last();if(he.length){if(W.include_toc===!1){let ye=he.prev();ye.length&&ye[0].name.match(/^h\d$/i)&&ye.remove()}V("h1, h2, h3, h4, h5, h6").each((ye,be)=>{let Ae=V(be),_e=parseInt(Ae[0].name.slice(1),10)-1;Ae.attr("ebook-toc-level-"+(_e+1),""),Ae.attr("heading",Ae.html())}),Q(he,0),W.include_toc===!1&&he.remove()}function Q(ye,be){ye.children("li").each((Ae,_e)=>{let Ye=V(_e),$e=Ye.children("a").first();if(!$e.length){Ye.children().length>=1&&Q(Ye.children().last(),be+1);return}let Me=decodeURIComponent($e.attr("href")),dt=$e.html()??"",yt=ae.generateId("ebook-heading-"+dt);te.push({level:be,filePath:Me,heading:dt,id:yt}),$e.attr("href","#"+yt),Ye.children().length>1&&Q(Ye.children().last(),be+1)})}let ie=te.map(({heading:ye,id:be,level:Ae,filePath:_e},Ye)=>new Promise(($e,Me)=>{if(_e=Fs(_e),_e.match(/^https?:\/\//))return $e({heading:ye,id:be,level:Ae,filePath:_e,html:"",offset:Ye});Jn.readFile(_e,{encoding:"utf-8"},(dt,yt)=>{if(dt)return Me(dt.toString());let St=qe.dirname(this.filePath);yt=yt.replace(/(!\[[^\]]*\]\()(\.[^)\s]*)/g,(rn,pn,jt)=>{let xt=qe.resolve(qe.dirname(_e),jt),Tt=qe.relative(St,xt);return pn+Tt}),this.parseMD(yt,{useRelativeFilePath:!1,isForPreview:!1,hideFrontMatter:!0,emojiToSvg:O,fileDirectoryPath:qe.dirname(_e)}).then(({html:rn})=>$e({heading:ye,id:be,level:Ae,filePath:_e,html:rn,offset:Ye}))})})),se=V.html().replace(/^<div>(.+)<\/div>$/,"$1"),fe=await Promise.all(ie);fe=fe.sort((ye,be)=>ye.offset-be.offset),fe.forEach(({heading:ye,id:be,level:Ae,html:_e})=>{let Ye=Ll.load(`<div>${_e}</div>`);Ye("a").each(($e,Me)=>{let dt=Ye(Me),yt=dt.attr("href");yt.startsWith("file://")&&fe.forEach(St=>{St.filePath===Fs(yt)&&dt.attr("href","#"+St.id)})}),se+=`<div id="${be}" ebook-toc-level-${Ae+1} heading="${ye}">${Ye.html()}</div>`}),V=Ll.load(se);let pe=await this.eBookDownloadImages(V,F);if(qe.extname(F)===".html"){if(W.cover){let ye=W.cover[0]==="/"?"file:///"+W.cover:W.cover;V(":root").children().first().prepend(`<img style="display:block; margin-bottom: 24px;" src="${ye}">`)}await c_(V,this.notebook,this.resolveFilePath.bind(this))}se=V.html();let Te=W.title||"no title",Ie="";se.indexOf('class="katex"')>0&&(qe.extname(F)===".html"&&W.html&&W.html.cdn?Ie=`<link rel="stylesheet" href="https://${this.notebook.config.jsdelivrCdnHost}/npm/katex@0.16.11/dist/katex.min.css">`:Ie=`<link rel="stylesheet" href="file:///${qe.resolve(_t(),"./dependencies/katex/katex.min.css")}">`);let Pe="";try{Pe=(await Promise.all([await this.fs.readFile(qe.resolve(_t(),"./styles/style-template.css")),await this.fs.readFile(qe.resolve(_t(),`./styles/prism_theme/${Dd.AutoPrismThemeMap[W.theme||this.notebook.config.previewTheme]}`)),await this.fs.readFile(qe.resolve(_t(),"./styles/twemoji.css")),await this.fs.readFile(qe.resolve(_t(),`./styles/preview_theme/${W.theme||this.notebook.config.previewTheme}`)),se.indexOf("admonition")>0?await this.fs.readFile(qe.resolve(_t(),"./styles/markdown-it-admonition.css")):""])).join("")}catch{Pe=""}let Ge="";try{Ge=this.notebook.config.globalCss}catch{}if(B=`
|
|
555
555
|
<!DOCTYPE html>
|
|
556
556
|
<html>
|
|
557
557
|
<head>
|
|
@@ -6,8 +6,8 @@ I managed some of the libraries by myself instead of through npm to reduce the o
|
|
|
6
6
|
{
|
|
7
7
|
"font-awesome": "6.4.2", // Download from here: https://fontawesome.com/download
|
|
8
8
|
// Fontawesome cheatsheet is available here: https://kapeli.com/cheat_sheets/Font_Awesome.docset/Contents/Resources/Documents/index
|
|
9
|
-
"katex": "v0.16.
|
|
10
|
-
"mermaid": "
|
|
9
|
+
"katex": "v0.16.11", // Only keep the css and fonts files.
|
|
10
|
+
"mermaid": "11.1.1", // https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js
|
|
11
11
|
"reveal": "4.6.0",
|
|
12
12
|
|
|
13
13
|
// NOTE: Don't forget to update `dependentLibraryMaterials` in `markdown-engine/index.ts`
|