From 82c0e30a2aedcb722dd9e0f2eeb011a87d561cf2 Mon Sep 17 00:00:00 2001 From: lencx Date: Fri, 1 Nov 2024 20:26:02 +0000 Subject: [PATCH] deploy: 5b2a06ded11d5af6e29a2d6b3e41d72e6ee653e2 --- .nojekyll | 0 404.html | 26 ++ 404/index.html | 26 ++ ...86d15c568b22c0a577-bf309f321ebfd62d601e.js | 2 + ...5c568b22c0a577-bf309f321ebfd62d601e.js.map | 1 + CNAME | 1 + app-6336718509f5c1eb020f.js | 2 + app-6336718509f5c1eb020f.js.map | 1 + category/announcements/index.html | 26 ++ category/docs/index.html | 26 ++ category/general/index.html | 26 ++ category/index.html | 26 ++ category/qanda/index.html | 26 ++ category/try/index.html | 26 ++ chunk-map.json | 1 + ...fline-app-shell-js-0f888952ad1919db08d3.js | 2 + ...e-app-shell-js-0f888952ad1919db08d3.js.map | 1 + ...-src-pages-404-tsx-0015a0b6f8befe4274b4.js | 2 + ...-pages-404-tsx-0015a0b6f8befe4274b4.js.map | 1 + ...lates-archives-tsx-06da249373edaa76f45c.js | 2 + ...s-archives-tsx-06da249373edaa76f45c.js.map | 1 + ...lates-category-tsx-51cbca430cb5370d0159.js | 2 + ...s-category-tsx-51cbca430cb5370d0159.js.map | 1 + ...mplates-issues-tsx-34a29d5ef81eeab81032.js | 2 + ...tes-issues-tsx-34a29d5ef81eeab81032.js.map | 1 + ...mplates-labels-tsx-34687c66d0846e79559c.js | 2 + ...tes-labels-tsx-34687c66d0846e79559c.js.map | 1 + ...s-nav-category-tsx-4639ce425db5561928b2.js | 2 + ...v-category-tsx-4639ce425db5561928b2.js.map | 1 + ...tes-nav-labels-tsx-00270bd03148f8d8787c.js | 2 + ...nav-labels-tsx-00270bd03148f8d8787c.js.map | 1 + favicon-32x32.png | Bin 0 -> 1757 bytes feed.xml | 336 ++++++++++++++++++ framework-9bb3fbb3e26b41d9be3e.js | 3 + framework-9bb3fbb3e26b41d9be3e.js.LICENSE.txt | 26 ++ framework-9bb3fbb3e26b41d9be3e.js.map | 1 + icons/icon-144x144.png | Bin 0 -> 9679 bytes icons/icon-192x192.png | Bin 0 -> 13350 bytes icons/icon-256x256.png | Bin 0 -> 18393 bytes icons/icon-384x384.png | Bin 0 -> 30325 bytes icons/icon-48x48.png | Bin 0 -> 2888 bytes icons/icon-512x512.png | Bin 0 -> 45898 bytes icons/icon-72x72.png | Bin 0 -> 4449 bytes icons/icon-96x96.png | Bin 0 -> 6379 bytes idb-keyval-3.2.0-iife.min.js | 1 + index.html | 26 ++ issues/1/index.html | 37 ++ issues/2/index.html | 70 ++++ issues/3/index.html | 26 ++ issues/4/index.html | 46 +++ issues/5/index.html | 221 ++++++++++++ issues/6/index.html | 33 ++ issues/7/index.html | 27 ++ labels/config/index.html | 26 ++ labels/documentation/index.html | 26 ++ labels/help/index.html | 26 ++ labels/index.html | 26 ++ manifest.webmanifest | 1 + offline-plugin-app-shell-fallback/index.html | 26 ++ page-data/404.html/page-data.json | 5 + page-data/404/page-data.json | 5 + page-data/app-data.json | 1 + .../category/announcements/page-data.json | 5 + page-data/category/docs/page-data.json | 5 + page-data/category/general/page-data.json | 5 + page-data/category/page-data.json | 5 + page-data/category/qanda/page-data.json | 5 + page-data/category/try/page-data.json | 5 + page-data/index/page-data.json | 5 + page-data/issues/1/page-data.json | 5 + page-data/issues/2/page-data.json | 5 + page-data/issues/3/page-data.json | 5 + page-data/issues/4/page-data.json | 5 + page-data/issues/5/page-data.json | 5 + page-data/issues/6/page-data.json | 5 + page-data/issues/7/page-data.json | 5 + page-data/labels/config/page-data.json | 5 + page-data/labels/documentation/page-data.json | 5 + page-data/labels/help/page-data.json | 5 + page-data/labels/page-data.json | 5 + .../page-data.json | 5 + page-data/sq/d/151096407.json | 1 + page-data/sq/d/2531858616.json | 1 + page-data/sq/d/2861350382.json | 1 + polyfill-f014881a234472c5fc89.js | 2 + polyfill-f014881a234472c5fc89.js.map | 1 + ...lab-b3a92fdc7ccdc8ebf471556b2e7b1018.woff2 | Bin 0 -> 12984 bytes ...cense-83d755bd405fbe51c87dc088baf26299.svg | 61 ++++ .../logo-15726d569e7ed560c3f7a4402facd2f2.png | Bin 0 -> 27697 bytes styles.11ffa9da1f302bfe4610.css | 1 + sw.js | 183 ++++++++++ webpack-runtime-454375babb3c4a12b1e9.js | 2 + webpack-runtime-454375babb3c4a12b1e9.js.map | 1 + webpack.stats.json | 1 + 94 files changed, 1585 insertions(+) create mode 100644 .nojekyll create mode 100644 404.html create mode 100644 404/index.html create mode 100644 60099239d0fc9495539eb186d15c568b22c0a577-bf309f321ebfd62d601e.js create mode 100644 60099239d0fc9495539eb186d15c568b22c0a577-bf309f321ebfd62d601e.js.map create mode 100644 CNAME create mode 100644 app-6336718509f5c1eb020f.js create mode 100644 app-6336718509f5c1eb020f.js.map create mode 100644 category/announcements/index.html create mode 100644 category/docs/index.html create mode 100644 category/general/index.html create mode 100644 category/index.html create mode 100644 category/qanda/index.html create mode 100644 category/try/index.html create mode 100644 chunk-map.json create mode 100644 component---cache-caches-gatsby-plugin-offline-app-shell-js-0f888952ad1919db08d3.js create mode 100644 component---cache-caches-gatsby-plugin-offline-app-shell-js-0f888952ad1919db08d3.js.map create mode 100644 component---src-pages-404-tsx-0015a0b6f8befe4274b4.js create mode 100644 component---src-pages-404-tsx-0015a0b6f8befe4274b4.js.map create mode 100644 component---src-templates-archives-tsx-06da249373edaa76f45c.js create mode 100644 component---src-templates-archives-tsx-06da249373edaa76f45c.js.map create mode 100644 component---src-templates-category-tsx-51cbca430cb5370d0159.js create mode 100644 component---src-templates-category-tsx-51cbca430cb5370d0159.js.map create mode 100644 component---src-templates-issues-tsx-34a29d5ef81eeab81032.js create mode 100644 component---src-templates-issues-tsx-34a29d5ef81eeab81032.js.map create mode 100644 component---src-templates-labels-tsx-34687c66d0846e79559c.js create mode 100644 component---src-templates-labels-tsx-34687c66d0846e79559c.js.map create mode 100644 component---src-templates-nav-category-tsx-4639ce425db5561928b2.js create mode 100644 component---src-templates-nav-category-tsx-4639ce425db5561928b2.js.map create mode 100644 component---src-templates-nav-labels-tsx-00270bd03148f8d8787c.js create mode 100644 component---src-templates-nav-labels-tsx-00270bd03148f8d8787c.js.map create mode 100644 favicon-32x32.png create mode 100644 feed.xml create mode 100644 framework-9bb3fbb3e26b41d9be3e.js create mode 100644 framework-9bb3fbb3e26b41d9be3e.js.LICENSE.txt create mode 100644 framework-9bb3fbb3e26b41d9be3e.js.map create mode 100644 icons/icon-144x144.png create mode 100644 icons/icon-192x192.png create mode 100644 icons/icon-256x256.png create mode 100644 icons/icon-384x384.png create mode 100644 icons/icon-48x48.png create mode 100644 icons/icon-512x512.png create mode 100644 icons/icon-72x72.png create mode 100644 icons/icon-96x96.png create mode 100644 idb-keyval-3.2.0-iife.min.js create mode 100644 index.html create mode 100644 issues/1/index.html create mode 100644 issues/2/index.html create mode 100644 issues/3/index.html create mode 100644 issues/4/index.html create mode 100644 issues/5/index.html create mode 100644 issues/6/index.html create mode 100644 issues/7/index.html create mode 100644 labels/config/index.html create mode 100644 labels/documentation/index.html create mode 100644 labels/help/index.html create mode 100644 labels/index.html create mode 100644 manifest.webmanifest create mode 100644 offline-plugin-app-shell-fallback/index.html create mode 100644 page-data/404.html/page-data.json create mode 100644 page-data/404/page-data.json create mode 100644 page-data/app-data.json create mode 100644 page-data/category/announcements/page-data.json create mode 100644 page-data/category/docs/page-data.json create mode 100644 page-data/category/general/page-data.json create mode 100644 page-data/category/page-data.json create mode 100644 page-data/category/qanda/page-data.json create mode 100644 page-data/category/try/page-data.json create mode 100644 page-data/index/page-data.json create mode 100644 page-data/issues/1/page-data.json create mode 100644 page-data/issues/2/page-data.json create mode 100644 page-data/issues/3/page-data.json create mode 100644 page-data/issues/4/page-data.json create mode 100644 page-data/issues/5/page-data.json create mode 100644 page-data/issues/6/page-data.json create mode 100644 page-data/issues/7/page-data.json create mode 100644 page-data/labels/config/page-data.json create mode 100644 page-data/labels/documentation/page-data.json create mode 100644 page-data/labels/help/page-data.json create mode 100644 page-data/labels/page-data.json create mode 100644 page-data/offline-plugin-app-shell-fallback/page-data.json create mode 100644 page-data/sq/d/151096407.json create mode 100644 page-data/sq/d/2531858616.json create mode 100644 page-data/sq/d/2861350382.json create mode 100644 polyfill-f014881a234472c5fc89.js create mode 100644 polyfill-f014881a234472c5fc89.js.map create mode 100644 static/lab-b3a92fdc7ccdc8ebf471556b2e7b1018.woff2 create mode 100644 static/license-83d755bd405fbe51c87dc088baf26299.svg create mode 100644 static/logo-15726d569e7ed560c3f7a4402facd2f2.png create mode 100644 styles.11ffa9da1f302bfe4610.css create mode 100644 sw.js create mode 100644 webpack-runtime-454375babb3c4a12b1e9.js create mode 100644 webpack-runtime-454375babb3c4a12b1e9.js.map create mode 100644 webpack.stats.json diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 00000000..e69de29b diff --git a/404.html b/404.html new file mode 100644 index 00000000..29917798 --- /dev/null +++ b/404.html @@ -0,0 +1,26 @@ +
Not found

Page not found

Sorry 😔 we couldn’t find what you were looking for.

Go home.

\ No newline at end of file diff --git a/404/index.html b/404/index.html new file mode 100644 index 00000000..4f6247dd --- /dev/null +++ b/404/index.html @@ -0,0 +1,26 @@ +
Not found

Page not found

Sorry 😔 we couldn’t find what you were looking for.

Go home.

\ No newline at end of file diff --git a/60099239d0fc9495539eb186d15c568b22c0a577-bf309f321ebfd62d601e.js b/60099239d0fc9495539eb186d15c568b22c0a577-bf309f321ebfd62d601e.js new file mode 100644 index 00000000..c58091d6 --- /dev/null +++ b/60099239d0fc9495539eb186d15c568b22c0a577-bf309f321ebfd62d601e.js @@ -0,0 +1,2 @@ +(self.webpackChunkgg=self.webpackChunkgg||[]).push([[248],{4309:function(t,e){"use strict";e.Z={body:'',width:24,height:24}},3547:function(t,e){"use strict";e.Z={body:'',width:24,height:24}},1471:function(t,e,n){"use strict";function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}n.d(e,{JO:function(){return C}});var o=n(7294);function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function a(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:0,n=t.replace(/^-?[0-9.]*/,"");function r(t){for(;t<0;)t+=4;return t%4}if(""===n){var o=parseInt(t);return isNaN(o)?0:r(o)}if(n!==t){var i=0;switch(n){case"%":i=25;break;case"deg":i=90}if(i){var a=parseFloat(t.slice(0,t.length-n.length));return isNaN(a)?0:(a/=i)%1==0?r(a):0}}return e}var g=/(-?[0-9.]*[0-9]+[0-9.]*)/g,y=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function m(t,e,n){if(1===e)return t;if(n=void 0===n?100:n,"number"==typeof t)return Math.ceil(t*e*n)/n;if("string"!=typeof t)return t;var r=t.split(g);if(null===r||!r.length)return t;for(var o=[],i=r.shift(),a=y.test(i);;){if(a){var c=parseFloat(i);isNaN(c)?o.push(i):o.push(Math.ceil(c*e*n)/n)}else o.push(i);if(void 0===(i=r.shift()))return o.join("");a=!a}}function b(t){var e="";switch(t.hAlign){case"left":e+="xMin";break;case"right":e+="xMax";break;default:e+="xMid"}switch(t.vAlign){case"top":e+="YMin";break;case"bottom":e+="YMax";break;default:e+="YMid"}return e+=t.slice?" slice":" meet"}var w=/\sid="(\S+)"/g,x="IconifyId"+Date.now().toString(16)+(16777216*Math.random()|0).toString(16),O=0;function S(t){for(var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:x,r=[];e=w.exec(t);)r.push(e[1]);return r.length?(r.forEach((function(e){var r="function"==typeof n?n(e):n+(O++).toString(),o=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");t=t.replace(new RegExp('([#;"])('+o+')([")]|\\.[a-z])',"g"),"$1"+r+"$3")})),t):t}var T={xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink","aria-hidden":!0,role:"img",style:{}},A=a(a({},f),{},{inline:!0}),E=function(t,e,n,r){var i=n?A:f,c=function(t,e){var n={};for(var r in t){var o=r;if(n[o]=t[o],void 0!==e[o]){var i=e[o];switch(o){case"inline":case"slice":"boolean"==typeof i&&(n[o]=i);break;case"hFlip":case"vFlip":!0===i&&(n[o]=!n[o]);break;case"hAlign":case"vAlign":"string"==typeof i&&""!==i&&(n[o]=i);break;case"width":case"height":("string"==typeof i&&""!==i||"number"==typeof i&&i||null===i)&&(n[o]=i);break;case"rotate":"number"==typeof i&&(n[o]+=i)}}}return n}(i,e),u="object"==typeof e.style&&null!==e.style?e.style:{},s=a(a({},T),{},{ref:r,style:u});for(var l in e){var p=e[l];if(void 0!==p)switch(l){case"icon":case"style":case"children":case"onLoad":case"_ref":case"_inline":break;case"inline":case"hFlip":case"vFlip":c[l]=!0===p||"true"===p||1===p;break;case"flip":"string"==typeof p&&h(c,p);break;case"align":"string"==typeof p&&d(c,p);break;case"color":u.color=p;break;case"rotate":"string"==typeof p?c[l]=v(p):"number"==typeof p&&(c[l]=p);break;case"ariaHidden":case"aria-hidden":!0!==p&&"true"!==p&&delete s["aria-hidden"];break;default:void 0===i[l]&&(s[l]=p)}}var g=function(t,e){var n,r,o={left:t.left,top:t.top,width:t.width,height:t.height},i=t.body;[t,e].forEach((function(t){var e,n=[],r=t.hFlip,a=t.vFlip,c=t.rotate;switch(r?a?c+=2:(n.push("translate("+(o.width+o.left).toString()+" "+(0-o.top).toString()+")"),n.push("scale(-1 1)"),o.top=o.left=0):a&&(n.push("translate("+(0-o.left).toString()+" "+(o.height+o.top).toString()+")"),n.push("scale(1 -1)"),o.top=o.left=0),c<0&&(c-=4*Math.floor(c/4)),c%=4){case 1:e=o.height/2+o.top,n.unshift("rotate(90 "+e.toString()+" "+e.toString()+")");break;case 2:n.unshift("rotate(180 "+(o.width/2+o.left).toString()+" "+(o.height/2+o.top).toString()+")");break;case 3:e=o.width/2+o.left,n.unshift("rotate(-90 "+e.toString()+" "+e.toString()+")")}c%2==1&&(0===o.left&&0===o.top||(e=o.left,o.left=o.top,o.top=e),o.width!==o.height&&(e=o.width,o.width=o.height,o.height=e)),n.length&&(i=''+i+"")})),null===e.width&&null===e.height?n=m(r="1em",o.width/o.height):null!==e.width&&null!==e.height?(n=e.width,r=e.height):null!==e.height?n=m(r=e.height,o.width/o.height):r=m(n=e.width,o.height/o.width),"auto"===n&&(n=o.width),"auto"===r&&(r=o.height);var a={attributes:{width:n="string"==typeof n?n:n.toString()+"",height:r="string"==typeof r?r:r.toString()+"",preserveAspectRatio:b(e),viewBox:o.left.toString()+" "+o.top.toString()+" "+o.width.toString()+" "+o.height.toString()},body:i};return e.inline&&(a.inline=!0),a}(t,c),y=0,w=e.id;for(var x in"string"==typeof w&&(w=w.replace(/-/g,"_")),s.dangerouslySetInnerHTML={__html:S(g.body,w?function(){return w+"ID"+y++}:"iconifyReact")},g.attributes)s[x]=g.attributes[x];return g.inline&&void 0===u.verticalAlign&&(u.verticalAlign="-0.125em"),o.createElement("svg",s)},j=Object.create(null);function _(t,e,n){var r="string"==typeof t.icon?j[t.icon]:"object"==typeof t.icon?u(t.icon):null;return null===r||"object"!=typeof r||"string"!=typeof r.body?t.children?t.children:o.createElement("span",{}):E(r,t,e,n)}var C=o.forwardRef((function(t,e){return _(t,!1,e)}));o.forwardRef((function(t,e){return _(t,!0,e)}))},5505:function(t,e,n){"use strict";function r(t){var e,n,o="";if("string"==typeof t||"number"==typeof t)o+=t;else if("object"==typeof t)if(Array.isArray(t))for(e=0;e=e?t:""+Array(e+1-r.length).join(n)+t},m={s:y,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),o=n%60;return(e<=0?"+":"-")+y(r,2,"0")+":"+y(o,2,"0")},m:function t(e,n){if(e.date()1)return t(a[0])}else{var c=e.name;w[c]=e,o=c}return!r&&o&&(b=o),o||!r&&b},S=function(t,e){if(x(t))return t.clone();var n="object"==typeof e?e:{};return n.date=t,n.args=arguments,new A(n)},T=m;T.l=O,T.i=x,T.w=function(t,e){return S(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var A=function(){function g(t){this.$L=O(t.locale,null,!0),this.parse(t)}var y=g.prototype;return y.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(T.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var r=e.match(d);if(r){var o=r[2]-1||0,i=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],o,r[3]||1,r[4]||0,r[5]||0,r[6]||0,i)):new Date(r[1],o,r[3]||1,r[4]||0,r[5]||0,r[6]||0,i)}}return new Date(e)}(t),this.$x=t.x||{},this.init()},y.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},y.$utils=function(){return T},y.isValid=function(){return!(this.$d.toString()===h)},y.isSame=function(t,e){var n=S(t);return this.startOf(e)<=n&&n<=this.endOf(e)},y.isAfter=function(t,e){return S(t)":"greater","|":"or","¢":"cent","£":"pound","¤":"currency","¥":"yen","©":"(c)","ª":"a","®":"(r)","º":"o","À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","Æ":"AE","Ç":"C","È":"E","É":"E","Ê":"E","Ë":"E","Ì":"I","Í":"I","Î":"I","Ï":"I","Ð":"D","Ñ":"N","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","Ù":"U","Ú":"U","Û":"U","Ü":"U","Ý":"Y","Þ":"TH","ß":"ss","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","æ":"ae","ç":"c","è":"e","é":"e","ê":"e","ë":"e","ì":"i","í":"i","î":"i","ï":"i","ð":"d","ñ":"n","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","ù":"u","ú":"u","û":"u","ü":"u","ý":"y","þ":"th","ÿ":"y","Ā":"A","ā":"a","Ă":"A","ă":"a","Ą":"A","ą":"a","Ć":"C","ć":"c","Č":"C","č":"c","Ď":"D","ď":"d","Đ":"DJ","đ":"dj","Ē":"E","ē":"e","Ė":"E","ė":"e","Ę":"e","ę":"e","Ě":"E","ě":"e","Ğ":"G","ğ":"g","Ģ":"G","ģ":"g","Ĩ":"I","ĩ":"i","Ī":"i","ī":"i","Į":"I","į":"i","İ":"I","ı":"i","Ķ":"k","ķ":"k","Ļ":"L","ļ":"l","Ľ":"L","ľ":"l","Ł":"L","ł":"l","Ń":"N","ń":"n","Ņ":"N","ņ":"n","Ň":"N","ň":"n","Ō":"O","ō":"o","Ő":"O","ő":"o","Œ":"OE","œ":"oe","Ŕ":"R","ŕ":"r","Ř":"R","ř":"r","Ś":"S","ś":"s","Ş":"S","ş":"s","Š":"S","š":"s","Ţ":"T","ţ":"t","Ť":"T","ť":"t","Ũ":"U","ũ":"u","Ū":"u","ū":"u","Ů":"U","ů":"u","Ű":"U","ű":"u","Ų":"U","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","ź":"z","Ż":"Z","ż":"z","Ž":"Z","ž":"z","Ə":"E","ƒ":"f","Ơ":"O","ơ":"o","Ư":"U","ư":"u","Lj":"LJ","lj":"lj","Nj":"NJ","nj":"nj","Ș":"S","ș":"s","Ț":"T","ț":"t","ə":"e","˚":"o","Ά":"A","Έ":"E","Ή":"H","Ί":"I","Ό":"O","Ύ":"Y","Ώ":"W","ΐ":"i","Α":"A","Β":"B","Γ":"G","Δ":"D","Ε":"E","Ζ":"Z","Η":"H","Θ":"8","Ι":"I","Κ":"K","Λ":"L","Μ":"M","Ν":"N","Ξ":"3","Ο":"O","Π":"P","Ρ":"R","Σ":"S","Τ":"T","Υ":"Y","Φ":"F","Χ":"X","Ψ":"PS","Ω":"W","Ϊ":"I","Ϋ":"Y","ά":"a","έ":"e","ή":"h","ί":"i","ΰ":"y","α":"a","β":"b","γ":"g","δ":"d","ε":"e","ζ":"z","η":"h","θ":"8","ι":"i","κ":"k","λ":"l","μ":"m","ν":"n","ξ":"3","ο":"o","π":"p","ρ":"r","ς":"s","σ":"s","τ":"t","υ":"y","φ":"f","χ":"x","ψ":"ps","ω":"w","ϊ":"i","ϋ":"y","ό":"o","ύ":"y","ώ":"w","Ё":"Yo","Ђ":"DJ","Є":"Ye","І":"I","Ї":"Yi","Ј":"J","Љ":"LJ","Њ":"NJ","Ћ":"C","Џ":"DZ","А":"A","Б":"B","В":"V","Г":"G","Д":"D","Е":"E","Ж":"Zh","З":"Z","И":"I","Й":"J","К":"K","Л":"L","М":"M","Н":"N","О":"O","П":"P","Р":"R","С":"S","Т":"T","У":"U","Ф":"F","Х":"H","Ц":"C","Ч":"Ch","Ш":"Sh","Щ":"Sh","Ъ":"U","Ы":"Y","Ь":"","Э":"E","Ю":"Yu","Я":"Ya","а":"a","б":"b","в":"v","г":"g","д":"d","е":"e","ж":"zh","з":"z","и":"i","й":"j","к":"k","л":"l","м":"m","н":"n","о":"o","п":"p","р":"r","с":"s","т":"t","у":"u","ф":"f","х":"h","ц":"c","ч":"ch","ш":"sh","щ":"sh","ъ":"u","ы":"y","ь":"","э":"e","ю":"yu","я":"ya","ё":"yo","ђ":"dj","є":"ye","і":"i","ї":"yi","ј":"j","љ":"lj","њ":"nj","ћ":"c","ѝ":"u","џ":"dz","Ґ":"G","ґ":"g","Ғ":"GH","ғ":"gh","Қ":"KH","қ":"kh","Ң":"NG","ң":"ng","Ү":"UE","ү":"ue","Ұ":"U","ұ":"u","Һ":"H","һ":"h","Ә":"AE","ә":"ae","Ө":"OE","ө":"oe","Ա":"A","Բ":"B","Գ":"G","Դ":"D","Ե":"E","Զ":"Z","Է":"E\'","Ը":"Y\'","Թ":"T\'","Ժ":"JH","Ի":"I","Լ":"L","Խ":"X","Ծ":"C\'","Կ":"K","Հ":"H","Ձ":"D\'","Ղ":"GH","Ճ":"TW","Մ":"M","Յ":"Y","Ն":"N","Շ":"SH","Չ":"CH","Պ":"P","Ջ":"J","Ռ":"R\'","Ս":"S","Վ":"V","Տ":"T","Ր":"R","Ց":"C","Փ":"P\'","Ք":"Q\'","Օ":"O\'\'","Ֆ":"F","և":"EV","ء":"a","آ":"aa","أ":"a","ؤ":"u","إ":"i","ئ":"e","ا":"a","ب":"b","ة":"h","ت":"t","ث":"th","ج":"j","ح":"h","خ":"kh","د":"d","ذ":"th","ر":"r","ز":"z","س":"s","ش":"sh","ص":"s","ض":"dh","ط":"t","ظ":"z","ع":"a","غ":"gh","ف":"f","ق":"q","ك":"k","ل":"l","م":"m","ن":"n","ه":"h","و":"w","ى":"a","ي":"y","ً":"an","ٌ":"on","ٍ":"en","َ":"a","ُ":"u","ِ":"e","ْ":"","٠":"0","١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","پ":"p","چ":"ch","ژ":"zh","ک":"k","گ":"g","ی":"y","۰":"0","۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","฿":"baht","ა":"a","ბ":"b","გ":"g","დ":"d","ე":"e","ვ":"v","ზ":"z","თ":"t","ი":"i","კ":"k","ლ":"l","მ":"m","ნ":"n","ო":"o","პ":"p","ჟ":"zh","რ":"r","ს":"s","ტ":"t","უ":"u","ფ":"f","ქ":"k","ღ":"gh","ყ":"q","შ":"sh","ჩ":"ch","ც":"ts","ძ":"dz","წ":"ts","ჭ":"ch","ხ":"kh","ჯ":"j","ჰ":"h","Ṣ":"S","ṣ":"s","Ẁ":"W","ẁ":"w","Ẃ":"W","ẃ":"w","Ẅ":"W","ẅ":"w","ẞ":"SS","Ạ":"A","ạ":"a","Ả":"A","ả":"a","Ấ":"A","ấ":"a","Ầ":"A","ầ":"a","Ẩ":"A","ẩ":"a","Ẫ":"A","ẫ":"a","Ậ":"A","ậ":"a","Ắ":"A","ắ":"a","Ằ":"A","ằ":"a","Ẳ":"A","ẳ":"a","Ẵ":"A","ẵ":"a","Ặ":"A","ặ":"a","Ẹ":"E","ẹ":"e","Ẻ":"E","ẻ":"e","Ẽ":"E","ẽ":"e","Ế":"E","ế":"e","Ề":"E","ề":"e","Ể":"E","ể":"e","Ễ":"E","ễ":"e","Ệ":"E","ệ":"e","Ỉ":"I","ỉ":"i","Ị":"I","ị":"i","Ọ":"O","ọ":"o","Ỏ":"O","ỏ":"o","Ố":"O","ố":"o","Ồ":"O","ồ":"o","Ổ":"O","ổ":"o","Ỗ":"O","ỗ":"o","Ộ":"O","ộ":"o","Ớ":"O","ớ":"o","Ờ":"O","ờ":"o","Ở":"O","ở":"o","Ỡ":"O","ỡ":"o","Ợ":"O","ợ":"o","Ụ":"U","ụ":"u","Ủ":"U","ủ":"u","Ứ":"U","ứ":"u","Ừ":"U","ừ":"u","Ử":"U","ử":"u","Ữ":"U","ữ":"u","Ự":"U","ự":"u","Ỳ":"Y","ỳ":"y","Ỵ":"Y","ỵ":"y","Ỷ":"Y","ỷ":"y","Ỹ":"Y","ỹ":"y","–":"-","‘":"\'","’":"\'","“":"\\"","”":"\\"","„":"\\"","†":"+","•":"*","…":"...","₠":"ecu","₢":"cruzeiro","₣":"french franc","₤":"lira","₥":"mill","₦":"naira","₧":"peseta","₨":"rupee","₩":"won","₪":"new shequel","₫":"dong","€":"euro","₭":"kip","₮":"tugrik","₯":"drachma","₰":"penny","₱":"peso","₲":"guarani","₳":"austral","₴":"hryvnia","₵":"cedi","₸":"kazakhstani tenge","₹":"indian rupee","₺":"turkish lira","₽":"russian ruble","₿":"bitcoin","℠":"sm","™":"tm","∂":"d","∆":"delta","∑":"sum","∞":"infinity","♥":"love","元":"yuan","円":"yen","﷼":"rial","ﻵ":"laa","ﻷ":"laa","ﻹ":"lai","ﻻ":"la"}'),e=JSON.parse('{"bg":{"Й":"Y","Ц":"Ts","Щ":"Sht","Ъ":"A","Ь":"Y","й":"y","ц":"ts","щ":"sht","ъ":"a","ь":"y"},"de":{"Ä":"AE","ä":"ae","Ö":"OE","ö":"oe","Ü":"UE","ü":"ue","ß":"ss","%":"prozent","&":"und","|":"oder","∑":"summe","∞":"unendlich","♥":"liebe"},"es":{"%":"por ciento","&":"y","<":"menor que",">":"mayor que","|":"o","¢":"centavos","£":"libras","¤":"moneda","₣":"francos","∑":"suma","∞":"infinito","♥":"amor"},"fr":{"%":"pourcent","&":"et","<":"plus petit",">":"plus grand","|":"ou","¢":"centime","£":"livre","¤":"devise","₣":"franc","∑":"somme","∞":"infini","♥":"amour"},"pt":{"%":"porcento","&":"e","<":"menor",">":"maior","|":"ou","¢":"centavo","∑":"soma","£":"libra","∞":"infinito","♥":"amor"},"uk":{"И":"Y","и":"y","Й":"Y","й":"y","Ц":"Ts","ц":"ts","Х":"Kh","х":"kh","Щ":"Shch","щ":"shch","Г":"H","г":"h"},"vi":{"Đ":"D","đ":"d"},"da":{"Ø":"OE","ø":"oe","Å":"AA","å":"aa","%":"procent","&":"og","|":"eller","$":"dollar","<":"mindre end",">":"større end"},"nb":{"&":"og","Å":"AA","Æ":"AE","Ø":"OE","å":"aa","æ":"ae","ø":"oe"},"it":{"&":"e"},"nl":{"&":"en"},"sv":{"&":"och","Å":"AA","Ä":"AE","Ö":"OE","å":"aa","ä":"ae","ö":"oe"}}');function n(n,r){if("string"!=typeof n)throw new Error("slugify: string argument expected");var o=e[(r="string"==typeof r?{replacement:r}:r||{}).locale]||{},i=void 0===r.replacement?"-":r.replacement,a=void 0===r.trim||r.trim,c=n.normalize().split("").reduce((function(e,n){var a=o[n]||t[n]||n;return a===i&&(a=" "),e+a.replace(r.remove||/[^\w\s$*_+~.()'"!\-:@]+/g,"")}),"");return r.strict&&(c=c.replace(/[^A-Za-z0-9\s]/g,"")),a&&(c=c.trim()),c=c.replace(/\s+/g,i),r.lower&&(c=c.toLowerCase()),c}return n.extend=function(e){Object.assign(t,e)},n},t.exports=e(),t.exports.default=e()},9662:function(t,e,n){var r=n(7854),o=n(614),i=n(6330),a=r.TypeError;t.exports=function(t){if(o(t))return t;throw a(i(t)+" is not a function")}},9670:function(t,e,n){var r=n(7854),o=n(111),i=r.String,a=r.TypeError;t.exports=function(t){if(o(t))return t;throw a(i(t)+" is not an object")}},1318:function(t,e,n){var r=n(5656),o=n(1400),i=n(6244),a=function(t){return function(e,n,a){var c,u=r(e),s=i(u),l=o(a,s);if(t&&n!=n){for(;s>l;)if((c=u[l++])!=c)return!0}else for(;s>l;l++)if((t||l in u)&&u[l]===n)return t||l||0;return!t&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},4326:function(t,e,n){var r=n(1702),o=r({}.toString),i=r("".slice);t.exports=function(t){return i(o(t),8,-1)}},9920:function(t,e,n){var r=n(2597),o=n(3887),i=n(1236),a=n(3070);t.exports=function(t,e,n){for(var c=o(e),u=a.f,s=i.f,l=0;l0&&r[0]<4?1:+(r[0]+r[1])),!o&&a&&(!(r=a.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=a.match(/Chrome\/(\d+)/))&&(o=+r[1]),t.exports=o},748:function(t){t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},2109:function(t,e,n){var r=n(7854),o=n(1236).f,i=n(8880),a=n(1320),c=n(3505),u=n(9920),s=n(4705);t.exports=function(t,e){var n,l,f,p,h,d=t.target,v=t.global,g=t.stat;if(n=v?r:g?r[d]||c(d,{}):(r[d]||{}).prototype)for(l in e){if(p=e[l],f=t.noTargetGet?(h=o(n,l))&&h.value:n[l],!s(v?l:d+(g?".":"#")+l,t.forced)&&void 0!==f){if(typeof p==typeof f)continue;u(p,f)}(t.sham||f&&f.sham)&&i(p,"sham",!0),a(n,l,p,t)}}},7293:function(t){t.exports=function(t){try{return!!t()}catch(e){return!0}}},4374:function(t,e,n){var r=n(7293);t.exports=!r((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")}))},6916:function(t,e,n){var r=n(4374),o=Function.prototype.call;t.exports=r?o.bind(o):function(){return o.apply(o,arguments)}},6530:function(t,e,n){var r=n(9781),o=n(2597),i=Function.prototype,a=r&&Object.getOwnPropertyDescriptor,c=o(i,"name"),u=c&&"something"===function(){}.name,s=c&&(!r||r&&a(i,"name").configurable);t.exports={EXISTS:c,PROPER:u,CONFIGURABLE:s}},1702:function(t,e,n){var r=n(4374),o=Function.prototype,i=o.bind,a=o.call,c=r&&i.bind(a,a);t.exports=r?function(t){return t&&c(t)}:function(t){return t&&function(){return a.apply(t,arguments)}}},5005:function(t,e,n){var r=n(7854),o=n(614),i=function(t){return o(t)?t:void 0};t.exports=function(t,e){return arguments.length<2?i(r[t]):r[t]&&r[t][e]}},8173:function(t,e,n){var r=n(9662);t.exports=function(t,e){var n=t[e];return null==n?void 0:r(n)}},7854:function(t,e,n){var r=function(t){return t&&t.Math==Math&&t};t.exports=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof n.g&&n.g)||function(){return this}()||Function("return this")()},2597:function(t,e,n){var r=n(1702),o=n(7908),i=r({}.hasOwnProperty);t.exports=Object.hasOwn||function(t,e){return i(o(t),e)}},3501:function(t){t.exports={}},4664:function(t,e,n){var r=n(9781),o=n(7293),i=n(317);t.exports=!r&&!o((function(){return 7!=Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},8361:function(t,e,n){var r=n(7854),o=n(1702),i=n(7293),a=n(4326),c=r.Object,u=o("".split);t.exports=i((function(){return!c("z").propertyIsEnumerable(0)}))?function(t){return"String"==a(t)?u(t,""):c(t)}:c},2788:function(t,e,n){var r=n(1702),o=n(614),i=n(5465),a=r(Function.toString);o(i.inspectSource)||(i.inspectSource=function(t){return a(t)}),t.exports=i.inspectSource},9909:function(t,e,n){var r,o,i,a=n(8536),c=n(7854),u=n(1702),s=n(111),l=n(8880),f=n(2597),p=n(5465),h=n(6200),d=n(3501),v="Object already initialized",g=c.TypeError,y=c.WeakMap;if(a||p.state){var m=p.state||(p.state=new y),b=u(m.get),w=u(m.has),x=u(m.set);r=function(t,e){if(w(m,t))throw new g(v);return e.facade=t,x(m,t,e),e},o=function(t){return b(m,t)||{}},i=function(t){return w(m,t)}}else{var O=h("state");d[O]=!0,r=function(t,e){if(f(t,O))throw new g(v);return e.facade=t,l(t,O,e),e},o=function(t){return f(t,O)?t[O]:{}},i=function(t){return f(t,O)}}t.exports={set:r,get:o,has:i,enforce:function(t){return i(t)?o(t):r(t,{})},getterFor:function(t){return function(e){var n;if(!s(e)||(n=o(e)).type!==t)throw g("Incompatible receiver, "+t+" required");return n}}}},614:function(t){t.exports=function(t){return"function"==typeof t}},4705:function(t,e,n){var r=n(7293),o=n(614),i=/#|\.prototype\./,a=function(t,e){var n=u[c(t)];return n==l||n!=s&&(o(e)?r(e):!!e)},c=a.normalize=function(t){return String(t).replace(i,".").toLowerCase()},u=a.data={},s=a.NATIVE="N",l=a.POLYFILL="P";t.exports=a},111:function(t,e,n){var r=n(614);t.exports=function(t){return"object"==typeof t?null!==t:r(t)}},1913:function(t){t.exports=!1},2190:function(t,e,n){var r=n(7854),o=n(5005),i=n(614),a=n(7976),c=n(3307),u=r.Object;t.exports=c?function(t){return"symbol"==typeof t}:function(t){var e=o("Symbol");return i(e)&&a(e.prototype,u(t))}},6244:function(t,e,n){var r=n(7466);t.exports=function(t){return r(t.length)}},133:function(t,e,n){var r=n(7392),o=n(7293);t.exports=!!Object.getOwnPropertySymbols&&!o((function(){var t=Symbol();return!String(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&r&&r<41}))},8536:function(t,e,n){var r=n(7854),o=n(614),i=n(2788),a=r.WeakMap;t.exports=o(a)&&/native code/.test(i(a))},3070:function(t,e,n){var r=n(7854),o=n(9781),i=n(4664),a=n(3353),c=n(9670),u=n(4948),s=r.TypeError,l=Object.defineProperty,f=Object.getOwnPropertyDescriptor,p="enumerable",h="configurable",d="writable";e.f=o?a?function(t,e,n){if(c(t),e=u(e),c(n),"function"==typeof t&&"prototype"===e&&"value"in n&&d in n&&!n.writable){var r=f(t,e);r&&r.writable&&(t[e]=n.value,n={configurable:h in n?n.configurable:r.configurable,enumerable:p in n?n.enumerable:r.enumerable,writable:!1})}return l(t,e,n)}:l:function(t,e,n){if(c(t),e=u(e),c(n),i)try{return l(t,e,n)}catch(r){}if("get"in n||"set"in n)throw s("Accessors not supported");return"value"in n&&(t[e]=n.value),t}},1236:function(t,e,n){var r=n(9781),o=n(6916),i=n(5296),a=n(9114),c=n(5656),u=n(4948),s=n(2597),l=n(4664),f=Object.getOwnPropertyDescriptor;e.f=r?f:function(t,e){if(t=c(t),e=u(e),l)try{return f(t,e)}catch(n){}if(s(t,e))return a(!o(i.f,t,e),t[e])}},8006:function(t,e,n){var r=n(6324),o=n(748).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},5181:function(t,e){e.f=Object.getOwnPropertySymbols},7976:function(t,e,n){var r=n(1702);t.exports=r({}.isPrototypeOf)},6324:function(t,e,n){var r=n(1702),o=n(2597),i=n(5656),a=n(1318).indexOf,c=n(3501),u=r([].push);t.exports=function(t,e){var n,r=i(t),s=0,l=[];for(n in r)!o(c,n)&&o(r,n)&&u(l,n);for(;e.length>s;)o(r,n=e[s++])&&(~a(l,n)||u(l,n));return l}},5296:function(t,e){"use strict";var n={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,o=r&&!n.call({1:2},1);e.f=o?function(t){var e=r(this,t);return!!e&&e.enumerable}:n},2140:function(t,e,n){var r=n(7854),o=n(6916),i=n(614),a=n(111),c=r.TypeError;t.exports=function(t,e){var n,r;if("string"===e&&i(n=t.toString)&&!a(r=o(n,t)))return r;if(i(n=t.valueOf)&&!a(r=o(n,t)))return r;if("string"!==e&&i(n=t.toString)&&!a(r=o(n,t)))return r;throw c("Can't convert object to primitive value")}},3887:function(t,e,n){var r=n(5005),o=n(1702),i=n(8006),a=n(5181),c=n(9670),u=o([].concat);t.exports=r("Reflect","ownKeys")||function(t){var e=i.f(c(t)),n=a.f;return n?u(e,n(t)):e}},1320:function(t,e,n){var r=n(7854),o=n(614),i=n(2597),a=n(8880),c=n(3505),u=n(2788),s=n(9909),l=n(6530).CONFIGURABLE,f=s.get,p=s.enforce,h=String(String).split("String");(t.exports=function(t,e,n,u){var s,f=!!u&&!!u.unsafe,d=!!u&&!!u.enumerable,v=!!u&&!!u.noTargetGet,g=u&&void 0!==u.name?u.name:e;o(n)&&("Symbol("===String(g).slice(0,7)&&(g="["+String(g).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),(!i(n,"name")||l&&n.name!==g)&&a(n,"name",g),(s=p(n)).source||(s.source=h.join("string"==typeof g?g:""))),t!==r?(f?!v&&t[e]&&(d=!0):delete t[e],d?t[e]=n:a(t,e,n)):d?t[e]=n:c(e,n)})(Function.prototype,"toString",(function(){return o(this)&&f(this).source||u(this)}))},4488:function(t,e,n){var r=n(7854).TypeError;t.exports=function(t){if(null==t)throw r("Can't call method on "+t);return t}},3505:function(t,e,n){var r=n(7854),o=Object.defineProperty;t.exports=function(t,e){try{o(r,t,{value:e,configurable:!0,writable:!0})}catch(n){r[t]=e}return e}},6200:function(t,e,n){var r=n(2309),o=n(9711),i=r("keys");t.exports=function(t){return i[t]||(i[t]=o(t))}},5465:function(t,e,n){var r=n(7854),o=n(3505),i="__core-js_shared__",a=r[i]||o(i,{});t.exports=a},2309:function(t,e,n){var r=n(1913),o=n(5465);(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.21.1",mode:r?"pure":"global",copyright:"© 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.21.1/LICENSE",source:"https://github.com/zloirock/core-js"})},1400:function(t,e,n){var r=n(9303),o=Math.max,i=Math.min;t.exports=function(t,e){var n=r(t);return n<0?o(n+e,0):i(n,e)}},5656:function(t,e,n){var r=n(8361),o=n(4488);t.exports=function(t){return r(o(t))}},9303:function(t){var e=Math.ceil,n=Math.floor;t.exports=function(t){var r=+t;return r!=r||0===r?0:(r>0?n:e)(r)}},7466:function(t,e,n){var r=n(9303),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},7908:function(t,e,n){var r=n(7854),o=n(4488),i=r.Object;t.exports=function(t){return i(o(t))}},7593:function(t,e,n){var r=n(7854),o=n(6916),i=n(111),a=n(2190),c=n(8173),u=n(2140),s=n(5112),l=r.TypeError,f=s("toPrimitive");t.exports=function(t,e){if(!i(t)||a(t))return t;var n,r=c(t,f);if(r){if(void 0===e&&(e="default"),n=o(r,t,e),!i(n)||a(n))return n;throw l("Can't convert object to primitive value")}return void 0===e&&(e="number"),u(t,e)}},4948:function(t,e,n){var r=n(7593),o=n(2190);t.exports=function(t){var e=r(t,"string");return o(e)?e:e+""}},6330:function(t,e,n){var r=n(7854).String;t.exports=function(t){try{return r(t)}catch(e){return"Object"}}},9711:function(t,e,n){var r=n(1702),o=0,i=Math.random(),a=r(1..toString);t.exports=function(t){return"Symbol("+(void 0===t?"":t)+")_"+a(++o+i,36)}},3307:function(t,e,n){var r=n(133);t.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},3353:function(t,e,n){var r=n(9781),o=n(7293);t.exports=r&&o((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},5112:function(t,e,n){var r=n(7854),o=n(2309),i=n(2597),a=n(9711),c=n(133),u=n(3307),s=o("wks"),l=r.Symbol,f=l&&l.for,p=u?l:l&&l.withoutSetter||a;t.exports=function(t){if(!i(s,t)||!c&&"string"!=typeof s[t]){var e="Symbol."+t;c&&i(l,t)?s[t]=l[t]:s[t]=u&&f?f(e):p(e)}return s[t]}},5837:function(t,e,n){n(2109)({global:!0},{globalThis:n(7854)})},5743:function(t,e,n){n(5837)},947:function(t,e,n){"use strict";n.d(e,{Z:function(){return o}});var r=n(1014);function o(){var t,e,n,o,i=(0,r.Z)(),a=i.type,c=i.owner,u=i.repo,s=i.issues_owner,l=i.issues_repo,f=i.dis_owner,p=i.dis_repo,h=i.cname,d="https://github.com/"+c+"/"+u,v="/feed.xml";switch(a){case"issues":t=(n="https://github.com/"+s+"/"+l)+"/issues",e="issues",o=s+"/"+l;break;case"discussions2":t=(n="https://github.com/"+f+"/"+p)+"/discussions",e="discussions",o=f+"/"+p;break;default:t=(n=d)+"/discussions",e="discussions",o=c+"/"+u}return/\.github\.io$/.test(u)||h||(v="/"+u+"/feed.xml"),{repoLink:t,repoType:e,dataRepo:n,siteRepo:d,rssLink:v,repoTxt:o}}},1014:function(t,e,n){"use strict";n.d(e,{Z:function(){return o}});var r=n(1597);function o(){var t,e,n=(0,r.useStaticQuery)("151096407"),o=(null==n||null===(t=n.file)||void 0===t||null===(e=t.childrenDiscussionsJson)||void 0===e?void 0:e[0])||{};return o.owner||(o.owner="lencx"),o.repo||(o.owner="gg"),o}},2146:function(t,e,n){"use strict";n.d(e,{Z:function(){return Lt}});var r=n(7294),o=n(5505),i=n(1597),a=n(5697),c=n.n(a),u=n(2993),s=n.n(u),l=n(1143),f=n.n(l),p=n(6872),h=n.n(p);function d(){return d=Object.assign||function(t){for(var e=1;e=0||(o[n]=t[n]);return o}var m={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},b={rel:["amphtml","canonical","alternate"]},w={type:["application/ld+json"]},x={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},O=Object.keys(m).map((function(t){return m[t]})),S={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},T=Object.keys(S).reduce((function(t,e){return t[S[e]]=e,t}),{}),A=function(t,e){for(var n=t.length-1;n>=0;n-=1){var r=t[n];if(Object.prototype.hasOwnProperty.call(r,e))return r[e]}return null},E=function(t){var e=A(t,m.TITLE),n=A(t,"titleTemplate");if(Array.isArray(e)&&(e=e.join("")),n&&e)return n.replace(/%s/g,(function(){return e}));var r=A(t,"defaultTitle");return e||r||void 0},j=function(t){return A(t,"onChangeClientState")||function(){}},_=function(t,e){return e.filter((function(e){return void 0!==e[t]})).map((function(e){return e[t]})).reduce((function(t,e){return d({},t,e)}),{})},C=function(t,e){return e.filter((function(t){return void 0!==t[m.BASE]})).map((function(t){return t[m.BASE]})).reverse().reduce((function(e,n){if(!e.length)for(var r=Object.keys(n),o=0;o/g,">").replace(/"/g,""").replace(/'/g,"'")},N=function(t){return Object.keys(t).reduce((function(e,n){var r=void 0!==t[n]?n+'="'+t[n]+'"':""+n;return e?e+" "+r:r}),"")},H=function(t,e){return void 0===e&&(e={}),Object.keys(t).reduce((function(e,n){return e[S[n]||n]=t[n],e}),e)},z=function(t,e){return e.map((function(e,n){var o,i=((o={key:n})["data-rh"]=!0,o);return Object.keys(e).forEach((function(t){var n=S[t]||t;"innerHTML"===n||"cssText"===n?i.dangerouslySetInnerHTML={__html:e.innerHTML||e.cssText}:i[n]=e[t]})),r.createElement(t,i)}))},Y=function(t,e,n){switch(t){case m.TITLE:return{toComponent:function(){return n=e.titleAttributes,(o={key:t=e.title})["data-rh"]=!0,i=H(n,o),[r.createElement(m.TITLE,i,t)];var t,n,o,i},toString:function(){return function(t,e,n,r){var o=N(n),i=P(e);return o?"<"+t+' data-rh="true" '+o+">"+L(i,r)+"":"<"+t+' data-rh="true">'+L(i,r)+""}(t,e.title,e.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return H(e)},toString:function(){return N(e)}};default:return{toComponent:function(){return z(t,e)},toString:function(){return function(t,e,n){return e.reduce((function(e,r){var o=Object.keys(r).filter((function(t){return!("innerHTML"===t||"cssText"===t)})).reduce((function(t,e){var o=void 0===r[e]?e:e+'="'+L(r[e],n)+'"';return t?t+" "+o:o}),""),i=r.innerHTML||r.cssText||"",a=-1===D.indexOf(t);return e+"<"+t+' data-rh="true" '+o+(a?"/>":">"+i+"")}),"")}(t,e,n)}}}},R=function(t){var e=t.baseTag,n=t.bodyAttributes,r=t.encode,o=t.htmlAttributes,i=t.noscriptTags,a=t.styleTags,c=t.title,u=void 0===c?"":c,s=t.titleAttributes,l=t.linkTags,f=t.metaTags,p=t.scriptTags,h={toComponent:function(){},toString:function(){return""}};if(t.prioritizeSeoTags){var d=function(t){var e=t.linkTags,n=t.scriptTags,r=t.encode,o=$(t.metaTags,x),i=$(e,b),a=$(n,w);return{priorityMethods:{toComponent:function(){return[].concat(z(m.META,o.priority),z(m.LINK,i.priority),z(m.SCRIPT,a.priority))},toString:function(){return Y(m.META,o.priority,r)+" "+Y(m.LINK,i.priority,r)+" "+Y(m.SCRIPT,a.priority,r)}},metaTags:o.default,linkTags:i.default,scriptTags:a.default}}(t);h=d.priorityMethods,l=d.linkTags,f=d.metaTags,p=d.scriptTags}return{priority:h,base:Y(m.BASE,e,r),bodyAttributes:Y("bodyAttributes",n,r),htmlAttributes:Y("htmlAttributes",o,r),link:Y(m.LINK,l,r),meta:Y(m.META,f,r),noscript:Y(m.NOSCRIPT,i,r),script:Y(m.SCRIPT,p,r),style:Y(m.STYLE,a,r),title:Y(m.TITLE,{title:u,titleAttributes:s},r)}},F=[],U=function(t,e){var n=this;void 0===e&&(e="undefined"!=typeof document),this.instances=[],this.value={setHelmet:function(t){n.context.helmet=t},helmetInstances:{get:function(){return n.canUseDOM?F:n.instances},add:function(t){(n.canUseDOM?F:n.instances).push(t)},remove:function(t){var e=(n.canUseDOM?F:n.instances).indexOf(t);(n.canUseDOM?F:n.instances).splice(e,1)}}},this.context=t,this.canUseDOM=e,e||(t.helmet=R({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},Z=r.createContext({}),B=c().shape({setHelmet:c().func,helmetInstances:c().shape({get:c().func,add:c().func,remove:c().func})}),J="undefined"!=typeof document,q=function(t){function e(n){var r;return(r=t.call(this,n)||this).helmetData=new U(r.props.context,e.canUseDOM),r}return v(e,t),e.prototype.render=function(){return r.createElement(Z.Provider,{value:this.helmetData.value},this.props.children)},e}(r.Component);q.canUseDOM=J,q.propTypes={context:c().shape({helmet:c().shape()}),children:c().node.isRequired},q.defaultProps={context:{}},q.displayName="HelmetProvider";var V=function(t,e){var n,r=document.head||document.querySelector(m.HEAD),o=r.querySelectorAll(t+"[data-rh]"),i=[].slice.call(o),a=[];return e&&e.length&&e.forEach((function(e){var r=document.createElement(t);for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&("innerHTML"===o?r.innerHTML=e.innerHTML:"cssText"===o?r.styleSheet?r.styleSheet.cssText=e.cssText:r.appendChild(document.createTextNode(e.cssText)):r.setAttribute(o,void 0===e[o]?"":e[o]));r.setAttribute("data-rh","true"),i.some((function(t,e){return n=e,r.isEqualNode(t)}))?i.splice(n,1):a.push(r)})),i.forEach((function(t){return t.parentNode.removeChild(t)})),a.forEach((function(t){return r.appendChild(t)})),{oldTags:i,newTags:a}},W=function(t,e){var n=document.getElementsByTagName(t)[0];if(n){for(var r=n.getAttribute("data-rh"),o=r?r.split(","):[],i=[].concat(o),a=Object.keys(e),c=0;c=0;f-=1)n.removeAttribute(i[f]);o.length===i.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==a.join(",")&&n.setAttribute("data-rh",a.join(","))}},G=function(t,e){var n=t.baseTag,r=t.htmlAttributes,o=t.linkTags,i=t.metaTags,a=t.noscriptTags,c=t.onChangeClientState,u=t.scriptTags,s=t.styleTags,l=t.title,f=t.titleAttributes;W(m.BODY,t.bodyAttributes),W(m.HTML,r),function(t,e){void 0!==t&&document.title!==t&&(document.title=P(t)),W(m.TITLE,e)}(l,f);var p={baseTag:V(m.BASE,n),linkTags:V(m.LINK,o),metaTags:V(m.META,i),noscriptTags:V(m.NOSCRIPT,a),scriptTags:V(m.SCRIPT,u),styleTags:V(m.STYLE,s)},h={},d={};Object.keys(p).forEach((function(t){var e=p[t],n=e.newTags,r=e.oldTags;n.length&&(h[t]=n),r.length&&(d[t]=p[t].oldTags)})),e&&e(),c(t,h,d)},K=null,X=function(t){function e(){for(var e,n=arguments.length,r=new Array(n),o=0;o elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(t){var e,n=t.child,r=t.arrayTypeChildren;return d({},r,((e={})[n.type]=[].concat(r[n.type]||[],[d({},t.newChildProps,this.mapNestedChildrenToProps(n,t.nestedChildren))]),e))},n.mapObjectTypeChildren=function(t){var e,n,r=t.child,o=t.newProps,i=t.newChildProps,a=t.nestedChildren;switch(r.type){case m.TITLE:return d({},o,((e={})[r.type]=a,e.titleAttributes=d({},i),e));case m.BODY:return d({},o,{bodyAttributes:d({},i)});case m.HTML:return d({},o,{htmlAttributes:d({},i)});default:return d({},o,((n={})[r.type]=d({},i),n))}},n.mapArrayTypeChildrenToProps=function(t,e){var n=d({},e);return Object.keys(t).forEach((function(e){var r;n=d({},n,((r={})[e]=t[e],r))})),n},n.warnOnInvalidChildren=function(t,e){return f()(O.some((function(e){return t.type===e})),"function"==typeof t.type?"You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+O.join(", ")+" are allowed. Helmet does not support rendering <"+t.type+"> elements. Refer to our API for more information."),f()(!e||"string"==typeof e||Array.isArray(e)&&!e.some((function(t){return"string"!=typeof t})),"Helmet expects a string as a child of <"+t.type+">. Did you forget to wrap your children in braces? ( <"+t.type+">{``} ) Refer to our API for more information."),!0},n.mapChildrenToProps=function(t,e){var n=this,o={};return r.Children.forEach(t,(function(t){if(t&&t.props){var r=t.props,i=r.children,a=y(r,Q),c=Object.keys(a).reduce((function(t,e){return t[T[e]||e]=a[e],t}),{}),u=t.type;switch("symbol"==typeof u?u=u.toString():n.warnOnInvalidChildren(t,i),u){case m.FRAGMENT:e=n.mapChildrenToProps(i,e);break;case m.LINK:case m.META:case m.NOSCRIPT:case m.SCRIPT:case m.STYLE:o=n.flattenArrayTypeChildren({child:t,arrayTypeChildren:o,newChildProps:c,nestedChildren:i});break;default:e=n.mapObjectTypeChildren({child:t,newProps:e,newChildProps:c,nestedChildren:i})}}})),this.mapArrayTypeChildrenToProps(o,e)},n.render=function(){var t=this.props,e=t.children,n=y(t,tt),o=d({},n),i=n.helmetData;return e&&(o=this.mapChildrenToProps(e,o)),!i||i instanceof U||(i=new U(i.context,i.instances)),i?r.createElement(X,d({},o,{context:i.value,helmetData:void 0})):r.createElement(Z.Consumer,null,(function(t){return r.createElement(X,d({},o,{context:t}))}))},e}(r.Component);et.propTypes={base:c().object,bodyAttributes:c().object,children:c().oneOfType([c().arrayOf(c().node),c().node]),defaultTitle:c().string,defer:c().bool,encodeSpecialCharacters:c().bool,htmlAttributes:c().object,link:c().arrayOf(c().object),meta:c().arrayOf(c().object),noscript:c().arrayOf(c().object),onChangeClientState:c().func,script:c().arrayOf(c().object),style:c().arrayOf(c().object),title:c().string,titleAttributes:c().object,titleTemplate:c().string,prioritizeSeoTags:c().bool,helmetData:c().object},et.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},et.displayName="Helmet";var nt=n(1014);var rt=n(947),ot=function(t){var e=t.color,n=t.onClick;return r.createElement("span",{onClick:n,className:"gg-logo",role:"img","aria-label":"dev",tabIndex:-1},r.createElement("svg",{height:"2rem",width:"2rem",viewBox:"0 0 300 293",xmlns:"http://www.w3.org/2000/svg"},r.createElement("g",{fill:e},r.createElement("path",{d:"m150 0c-82.825 0-150 67.1625-150 150 0 66.275 42.975 122.5 102.5875 142.3375 7.4875 1.3875 9.9125-3.2625 9.9125-7.2125v-27.925c-41.725 9.075-50.4125-17.7-50.4125-17.7-6.825-17.3375-16.6625-21.95-16.6625-21.95-13.6125-9.3125 1.0375-9.1125 1.0375-9.1125 15.0625 1.05 22.9875 15.4625 22.9875 15.4625 13.375 22.925 35.0875 16.3 43.65 12.4625 1.3375-9.6875 5.225-16.3125 9.525-20.05-33.3125-3.8125-68.3375-16.675-68.3375-74.1375 0-16.3875 5.8625-29.7625 15.45-40.2625-1.55-3.7875-6.6875-19.05 1.4625-39.7 0 0 12.6-4.025 41.2625 15.375 11.9625-3.325 24.7875-4.9875 37.5375-5.05 12.75.0625 25.5875 1.725 37.575 5.05 28.6375-19.4 41.2125-15.375 41.2125-15.375 8.1625 20.6625 3.025 35.925 1.475 39.7 9.625 10.5 15.4375 23.8875 15.4375 40.2625 0 57.6125-35.0875 70.3-68.4875 74.0125 5.375 4.65 10.2875 13.775 10.2875 27.775v41.1625c0 3.9875 2.4 8.675 10.0125 7.2 59.5625-19.8625 102.4875-76.075 102.4875-142.325 0-82.8375-67.1625-150-150-150z"}),r.createElement("path",{d:"m105.561263 190.779925c-11.8755891-11.875589-18.0961358-27.709708-18.0961358-42.978323l61.6399628 61.074458c-15.834119-.565504-31.668238-6.220546-43.543827-18.096135zm57.681433 16.399623-74.081056-74.081056c6.2205466-27.709708 31.102733-48.6333648 60.508954-48.6333648 20.923657 0 39.019792 10.1790764 50.329877 25.4476908l-8.482563 7.351555c-9.613572-13.006597-24.882187-21.4891609-41.847314-21.4891609-22.054666 0-40.716306 14.1376059-48.067861 33.9302549l65.032988 65.032987c16.399623-5.655042 28.840716-19.792648 32.799246-36.757775h-27.144204v-11.310085h39.585297c0 29.40622-20.923657 54.288407-48.633364 60.508954z"}))))};ot.defaultProps={color:"#24292f",onClick:function(){}};var it=ot;var at=!1;if("undefined"!=typeof window){var ct={get passive(){at=!0}};window.addEventListener("testPassive",null,ct),window.removeEventListener("testPassive",null,ct)}var ut="undefined"!=typeof window&&window.navigator&&window.navigator.platform&&(/iP(ad|hone|od)/.test(window.navigator.platform)||"MacIntel"===window.navigator.platform&&window.navigator.maxTouchPoints>1),st=[],lt=!1,ft=-1,pt=void 0,ht=void 0,dt=void 0,vt=function(t){return st.some((function(e){return!(!e.options.allowTouchMove||!e.options.allowTouchMove(t))}))},gt=function(t){var e=t||window.event;return!!vt(e.target)||(e.touches.length>1||(e.preventDefault&&e.preventDefault(),!1))},yt=function(){void 0!==dt&&(document.body.style.paddingRight=dt,dt=void 0),void 0!==pt&&(document.body.style.overflow=pt,pt=void 0)},mt=function(){if(void 0!==ht){var t=-parseInt(document.body.style.top,10),e=-parseInt(document.body.style.left,10);document.body.style.position=ht.position,document.body.style.top=ht.top,document.body.style.left=ht.left,window.scrollTo(e,t),ht=void 0}},bt=function(t,e){if(t){if(!st.some((function(e){return e.targetElement===t}))){var n={targetElement:t,options:e||{}};st=[].concat(function(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e=r&&(document.body.style.top=-(e+t))}))}),300)}})):function(t){if(void 0===dt){var e=!!t&&!0===t.reserveScrollBarGap,n=window.innerWidth-document.documentElement.clientWidth;if(e&&n>0){var r=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right"),10);dt=document.body.style.paddingRight,document.body.style.paddingRight=r+n+"px"}}void 0===pt&&(pt=document.body.style.overflow,document.body.style.overflow="hidden")}(e),ut&&(t.ontouchstart=function(t){1===t.targetTouches.length&&(ft=t.targetTouches[0].clientY)},t.ontouchmove=function(e){1===e.targetTouches.length&&function(t,e){var n=t.targetTouches[0].clientY-ft;!vt(t.target)&&(e&&0===e.scrollTop&&n>0||function(t){return!!t&&t.scrollHeight-t.scrollTop<=t.clientHeight}(e)&&n<0?gt(t):t.stopPropagation())}(e,t)},lt||(document.addEventListener("touchmove",gt,at?{passive:!1}:void 0),lt=!0))}}else console.error("disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.")},wt=function(t){t?(st=st.filter((function(e){return e.targetElement!==t})),ut&&(t.ontouchstart=null,t.ontouchmove=null,lt&&0===st.length&&(document.removeEventListener("touchmove",gt,at?{passive:!1}:void 0),lt=!1)),ut?mt():yt()):console.error("enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.")},xt=function(t){var e=t.isActive,n=t.onClick;return r.createElement("span",{className:(0,o.Z)("nav-icon",{active:e}),onClick:n},r.createElement("span",{className:"top"}),r.createElement("span",{className:"middle"}),r.createElement("span",{className:"bottom"}))},Ot=n(1471),St={body:'',width:24,height:24},Tt={body:'',width:24,height:24},At=n(4309),Et=n(3547),jt={body:'',width:24,height:24},_t={body:'',width:24,height:24},Ct={body:'',width:24,height:24},kt=function(){var t=(0,r.useState)(""),e=t[0],n=t[1],o=(0,r.useState)(!1),i=o[0],a=o[1],c="undefined"!=typeof window?window:{},u="dark"===(e||c.__theme);return(0,r.useEffect)((function(){n(c.__theme),a(u)}),[c.__theme]),r.createElement(Ot.JO,{className:"gg-theme-toggle icon-action",onClick:function(){var t=i?"light":"dark";a(u),n(t),c.__setPreferredTheme(t)},icon:i?Ct:_t,fontSize:"20",color:"var(--gg-icon)"})},Mt=n(5104),Pt=function(t){var e=t.isHide,n=(0,rt.Z)(),a=n.repoType,c=n.dataRepo,u=n.rssLink;return r.createElement("div",{className:(0,o.Z)("nav-screen",{open:e})},r.createElement("div",null,r.createElement("nav",null,"issues"!==a&&r.createElement("li",{onClick:function(){return(0,i.navigate)("/category")}},r.createElement(Ot.JO,{className:"icon-action",icon:At.Z,fontSize:"20",color:"var(--gg-icon)"}),"Category"),r.createElement("li",{onClick:function(){return(0,i.navigate)("/labels")}},r.createElement(Ot.JO,{className:"icon-action",icon:Et.Z,fontSize:"20",color:"var(--gg-icon)"}),"Labels"),"issues"===a&&r.createElement("li",{onClick:function(){return(0,i.navigate)("/archives")}},r.createElement(Ot.JO,{className:"icon-action",icon:jt,fontSize:"20",color:"var(--gg-icon)"}),"Archives")),r.createElement("div",{className:"icons"},r.createElement(kt,null),r.createElement(Ot.JO,{className:"icon-action",icon:Tt,fontSize:"20",color:"var(--gg-icon)",onClick:function(){return(0,Mt.go)(u)}}),r.createElement(Ot.JO,{className:"icon-action",icon:St,fontSize:"20",color:"var(--gg-icon)",onClick:function(){return(0,Mt.go)(c)}}))))},$t=function(){var t=(0,r.useState)(!1),e=t[0],n=t[1];return(0,r.useEffect)((function(){e||wt(document.querySelector("body"))}),[]),r.createElement("div",{className:"gg-nav"},r.createElement(xt,{isActive:e,onClick:function(){n(!e);var t=document.querySelector("body");e?wt(t):bt(t)}}),r.createElement(Pt,{isHide:e}))},It=function(t){var e=t.minHeight,n=(0,r.useState)(!1),o=n[0],i=n[1],a=function(){(0,Mt.wA)().y>e?o||i(!0):i(!1)};return(0,r.useEffect)((function(){return window.addEventListener("scroll",a),function(){window.removeEventListener("scroll",a)}})),r.createElement("div",{id:"gg-backtop",className:o?"show":"hide",onClick:function(){(document.documentElement.scrollTop||document.body.scrollTop)>0?window.scrollTo({top:0,behavior:"smooth"}):o||i(!1)}},r.createElement("svg",{viewBox:"0 0 98 125",xmlns:"http://www.w3.org/2000/svg"},r.createElement("path",{d:"m.41627505 120.505813c.36557376-2.799314 38.38567845-112.09375627 40.40633855-116.52273479 2.0206601-4.42897853 7.0443939-6.06190829 10.0049342.20172081 1.9736935 4.17575274 17.3630227 42.22464148 46.1679874 114.14666598.3068629 1.030234.4237748 1.755017.3507358 2.174348-.4483666 2.574161-2.3292736 3.429521-4.6125739 2.516093-15.0683018-6.028033-36.2681037-23.1692513-43.8663627-23.1692513-7.5982589 0-27.0568176 12.9171643-43.18383202 23.1692513-.96511235.613531-1.91473089 1.069619-2.88840599 1.149501s-2.74439509-.86628-2.37882134-3.665594z",fill:"var(--gg-icon)",fillRule:"evenodd"})))};It.defaultProps={minHeight:300};var Dt=It;function Lt(t){var e,a,c,u=(0,nt.Z)(),s=function(){var t,e=(0,i.useStaticQuery)("2861350382");return(null==e||null===(t=e.site)||void 0===t?void 0:t.siteMetadata)||{}}(),l=(0,rt.Z)(),f=l.dataRepo,p=l.repoTxt;return r.createElement(q,null,r.createElement(et,null,r.createElement("title",null,t.title||(null==u?void 0:u.title)||(null==u||null===(e=u.website)||void 0===e?void 0:e.title)),r.createElement("meta",{name:"description",content:(null==u?void 0:u.description)||(null==u||null===(a=u.website)||void 0===a?void 0:a.description)})),r.createElement("div",{className:(0,o.Z)("gg-container",t.className)},r.createElement("header",null,null!=s&&s.userLogo?r.createElement("img",{className:"imglogo",src:n(3805).Z,onClick:function(){return(0,i.navigate)("/")},alt:"logo"}):r.createElement(it,{onClick:function(){return(0,i.navigate)("/")},color:"var(--gg-logo)"}),r.createElement($t,null)),r.createElement("main",null,r.createElement("div",{className:"content"},t.children)),r.createElement("footer",null,r.createElement("div",{className:"license"},r.createElement("a",{rel:"license",href:"http://creativecommons.org/licenses/by-nc-nd/4.0/",target:"_blank"},r.createElement("img",{style:{width:60,height:21},src:n(6418).Z,alt:"License"}))),r.createElement("div",{className:"copyright"},r.createElement("span",null,"Copyright ©"," ",(null==u||null===(c=u.website)||void 0===c?void 0:c.built_date)||(new Date).getFullYear(),"-present"),r.createElement("a",{className:"owner",href:f,target:"_blank"},p),"."),r.createElement("span",{className:"powered"},"Powered by",r.createElement("a",{className:"owner",title:"GG (Gatsby + GitHub) - A gatsby website builder based on github discussions",href:"https://github.com/lencx/gg",target:"_blank"},"gg")))),r.createElement(Dt,null))}},5104:function(t,e,n){"use strict";n.d(e,{FL:function(){return l},G$:function(){return s},K0:function(){return u},Wv:function(){return f},go:function(){return c},wA:function(){return p}});var r=n(8538),o=n.n(r),i=n(8650),a=n.n(i),c=(n(5325),n(4721),function(t){return window.open(t,"_blank")}),u=function(t,e){return"#"+(""+t).padStart(e,"0")},s=function(t){return o()(t).format("YYYY/MM/DD")},l=function(t,e){return void 0===e&&(e=!1),e?a()(t,{lower:!0,remove:/[*+~.()'"!:@]/g}):t.toLocaleLowerCase().replace(/ /g,"+")},f=function(t,e){var n,r=new RegExp("^("+(null==e?void 0:e.map((function(t){return"("+t+")"})).join("|"))+")","ig");return((null===(n=t.match(r))||void 0===n?void 0:n[0])||"").trim().toLocaleUpperCase()},p=function(t){return void 0===t&&(t=window),{x:void 0!==t.pageXOffset?t.pageXOffset:t.scrollLeft,y:void 0!==t.pageYOffset?t.pageYOffset:t.scrollTop}}},1989:function(t,e,n){var r=n(1789),o=n(401),i=n(7667),a=n(1327),c=n(1866);function u(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e-1}},1196:function(t){t.exports=function(t,e,n){for(var r=-1,o=null==t?0:t.length;++r=120&&y.length>=120)?new r(h&&y):void 0}y=t[0];var m=-1,b=d[0];t:for(;++m-1&&t%1==0&&t-1}},3399:function(t,e,n){var r=n(8470);t.exports=function(t,e){var n=this.__data__,o=r(n,t);return o<0?(++this.size,n.push([t,e])):n[o][1]=e,this}},4785:function(t,e,n){var r=n(1989),o=n(8407),i=n(7071);t.exports=function(){this.size=0,this.__data__={hash:new r,map:new(i||o),string:new r}}},1285:function(t,e,n){var r=n(5050);t.exports=function(t){var e=r(this,t).delete(t);return this.size-=e?1:0,e}},6e3:function(t,e,n){var r=n(5050);t.exports=function(t){return r(this,t).get(t)}},9916:function(t,e,n){var r=n(5050);t.exports=function(t){return r(this,t).has(t)}},5265:function(t,e,n){var r=n(5050);t.exports=function(t,e){var n=r(this,t),o=n.size;return n.set(t,e),this.size+=n.size==o?0:1,this}},4536:function(t,e,n){var r=n(852)(Object,"create");t.exports=r},9850:function(t,e,n){var r=n(5569)(Object.keys,Object);t.exports=r},1167:function(t,e,n){t=n.nmd(t);var r=n(1957),o=e&&!e.nodeType&&e,i=o&&t&&!t.nodeType&&t,a=i&&i.exports===o&&r.process,c=function(){try{var t=i&&i.require&&i.require("util").types;return t||a&&a.binding&&a.binding("util")}catch(e){}}();t.exports=c},2333:function(t){var e=Object.prototype.toString;t.exports=function(t){return e.call(t)}},5569:function(t){t.exports=function(t,e){return function(n){return t(e(n))}}},5357:function(t,e,n){var r=n(6874),o=Math.max;t.exports=function(t,e,n){return e=o(void 0===e?t.length-1:e,0),function(){for(var i=arguments,a=-1,c=o(i.length-e,0),u=Array(c);++a0){if(++n>=800)return arguments[0]}else n=0;return t.apply(void 0,arguments)}}},2351:function(t){t.exports=function(t,e,n){for(var r=n-1,o=t.length;++r-1:!!l&&r(t,e,n)>-1}},5325:function(t,e,n){var r=n(9932),o=n(7556),i=n(5976),a=n(4387),c=i((function(t){var e=r(t,a);return e.length&&e[0]===t[0]?o(e):[]}));t.exports=c},5694:function(t,e,n){var r=n(9454),o=n(7005),i=Object.prototype,a=i.hasOwnProperty,c=i.propertyIsEnumerable,u=r(function(){return arguments}())?r:function(t){return o(t)&&a.call(t,"callee")&&!c.call(t,"callee")};t.exports=u},1469:function(t){var e=Array.isArray;t.exports=e},8612:function(t,e,n){var r=n(3560),o=n(1780);t.exports=function(t){return null!=t&&o(t.length)&&!r(t)}},9246:function(t,e,n){var r=n(8612),o=n(7005);t.exports=function(t){return o(t)&&r(t)}},4144:function(t,e,n){t=n.nmd(t);var r=n(5639),o=n(5062),i=e&&!e.nodeType&&e,a=i&&t&&!t.nodeType&&t,c=a&&a.exports===i?r.Buffer:void 0,u=(c?c.isBuffer:void 0)||o;t.exports=u},3560:function(t,e,n){var r=n(4239),o=n(3218);t.exports=function(t){if(!o(t))return!1;var e=r(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e}},1780:function(t){t.exports=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991}},3218:function(t){t.exports=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}},7005:function(t){t.exports=function(t){return null!=t&&"object"==typeof t}},7037:function(t,e,n){var r=n(4239),o=n(1469),i=n(7005);t.exports=function(t){return"string"==typeof t||!o(t)&&i(t)&&"[object String]"==r(t)}},3448:function(t,e,n){var r=n(4239),o=n(7005);t.exports=function(t){return"symbol"==typeof t||o(t)&&"[object Symbol]"==r(t)}},6719:function(t,e,n){var r=n(8749),o=n(1717),i=n(1167),a=i&&i.isTypedArray,c=a?o(a):r;t.exports=c},3674:function(t,e,n){var r=n(4636),o=n(280),i=n(8612);t.exports=function(t){return i(t)?r(t):o(t)}},5062:function(t){t.exports=function(){return!1}},8601:function(t,e,n){var r=n(4841),o=1/0;t.exports=function(t){return t?(t=r(t))===o||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0}},554:function(t,e,n){var r=n(8601);t.exports=function(t){var e=r(t),n=e%1;return e==e?n?e-n:e:0}},4841:function(t,e,n){var r=n(7561),o=n(3218),i=n(3448),a=/^[-+]0x[0-9a-f]+$/i,c=/^0b[01]+$/i,u=/^0o[0-7]+$/i,s=parseInt;t.exports=function(t){if("number"==typeof t)return t;if(i(t))return NaN;if(o(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=o(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=r(t);var n=c.test(t);return n||u.test(t)?s(t.slice(2),n?2:8):a.test(t)?NaN:+t}},2628:function(t,e,n){var r=n(7415),o=n(3674);t.exports=function(t){return null==t?[]:r(t,o(t))}},6418:function(t,e,n){"use strict";e.Z=n.p+"static/license-83d755bd405fbe51c87dc088baf26299.svg"},3805:function(t,e,n){"use strict";e.Z=n.p+"static/logo-15726d569e7ed560c3f7a4402facd2f2.png"}}]); +//# sourceMappingURL=60099239d0fc9495539eb186d15c568b22c0a577-bf309f321ebfd62d601e.js.map \ No newline at end of file diff --git a/60099239d0fc9495539eb186d15c568b22c0a577-bf309f321ebfd62d601e.js.map b/60099239d0fc9495539eb186d15c568b22c0a577-bf309f321ebfd62d601e.js.map new file mode 100644 index 00000000..a7cd33c5 --- /dev/null +++ b/60099239d0fc9495539eb186d15c568b22c0a577-bf309f321ebfd62d601e.js.map @@ -0,0 +1 @@ +{"version":3,"file":"60099239d0fc9495539eb186d15c568b22c0a577-bf309f321ebfd62d601e.js","mappings":"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","sources":["webpack://gg/./node_modules/@iconify-icons/bxs/category.js","webpack://gg/./node_modules/@iconify-icons/mdi/tag-multiple.js","webpack://gg/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://gg/./node_modules/@iconify/react/dist/offline.mjs","webpack://gg/./node_modules/clsx/dist/clsx.m.js","webpack://gg/./node_modules/dayjs/dayjs.min.js","webpack://gg/./node_modules/react-fast-compare/index.js","webpack://gg/./node_modules/shallowequal/index.js","webpack://gg/./node_modules/slugify/slugify.js","webpack://gg/./node_modules/core-js/internals/a-callable.js","webpack://gg/./node_modules/core-js/internals/an-object.js","webpack://gg/./node_modules/core-js/internals/array-includes.js","webpack://gg/./node_modules/core-js/internals/classof-raw.js","webpack://gg/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://gg/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://gg/./node_modules/core-js/internals/create-property-descriptor.js","webpack://gg/./node_modules/core-js/internals/descriptors.js","webpack://gg/./node_modules/core-js/internals/document-create-element.js","webpack://gg/./node_modules/core-js/internals/engine-user-agent.js","webpack://gg/./node_modules/core-js/internals/engine-v8-version.js","webpack://gg/./node_modules/core-js/internals/enum-bug-keys.js","webpack://gg/./node_modules/core-js/internals/export.js","webpack://gg/./node_modules/core-js/internals/fails.js","webpack://gg/./node_modules/core-js/internals/function-bind-native.js","webpack://gg/./node_modules/core-js/internals/function-call.js","webpack://gg/./node_modules/core-js/internals/function-name.js","webpack://gg/./node_modules/core-js/internals/function-uncurry-this.js","webpack://gg/./node_modules/core-js/internals/get-built-in.js","webpack://gg/./node_modules/core-js/internals/get-method.js","webpack://gg/./node_modules/core-js/internals/global.js","webpack://gg/./node_modules/core-js/internals/has-own-property.js","webpack://gg/./node_modules/core-js/internals/hidden-keys.js","webpack://gg/./node_modules/core-js/internals/ie8-dom-define.js","webpack://gg/./node_modules/core-js/internals/indexed-object.js","webpack://gg/./node_modules/core-js/internals/inspect-source.js","webpack://gg/./node_modules/core-js/internals/internal-state.js","webpack://gg/./node_modules/core-js/internals/is-callable.js","webpack://gg/./node_modules/core-js/internals/is-forced.js","webpack://gg/./node_modules/core-js/internals/is-object.js","webpack://gg/./node_modules/core-js/internals/is-pure.js","webpack://gg/./node_modules/core-js/internals/is-symbol.js","webpack://gg/./node_modules/core-js/internals/length-of-array-like.js","webpack://gg/./node_modules/core-js/internals/native-symbol.js","webpack://gg/./node_modules/core-js/internals/native-weak-map.js","webpack://gg/./node_modules/core-js/internals/object-define-property.js","webpack://gg/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://gg/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://gg/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://gg/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://gg/./node_modules/core-js/internals/object-keys-internal.js","webpack://gg/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://gg/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://gg/./node_modules/core-js/internals/own-keys.js","webpack://gg/./node_modules/core-js/internals/redefine.js","webpack://gg/./node_modules/core-js/internals/require-object-coercible.js","webpack://gg/./node_modules/core-js/internals/set-global.js","webpack://gg/./node_modules/core-js/internals/shared-key.js","webpack://gg/./node_modules/core-js/internals/shared-store.js","webpack://gg/./node_modules/core-js/internals/shared.js","webpack://gg/./node_modules/core-js/internals/to-absolute-index.js","webpack://gg/./node_modules/core-js/internals/to-indexed-object.js","webpack://gg/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://gg/./node_modules/core-js/internals/to-length.js","webpack://gg/./node_modules/core-js/internals/to-object.js","webpack://gg/./node_modules/core-js/internals/to-primitive.js","webpack://gg/./node_modules/core-js/internals/to-property-key.js","webpack://gg/./node_modules/core-js/internals/try-to-string.js","webpack://gg/./node_modules/core-js/internals/uid.js","webpack://gg/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://gg/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://gg/./node_modules/core-js/internals/well-known-symbol.js","webpack://gg/./node_modules/core-js/modules/es.global-this.js","webpack://gg/./node_modules/core-js/modules/esnext.global-this.js","webpack://gg/./src/hooks/useRepoLink.ts","webpack://gg/./src/hooks/useRgd.ts","webpack://gg/./node_modules/react-helmet-async/lib/index.module.js","webpack://gg/./src/components/logo/index.tsx","webpack://gg/./node_modules/body-scroll-lock/lib/bodyScrollLock.esm.js","webpack://gg/./src/components/nav/NavIcon.tsx","webpack://gg/./node_modules/@iconify-icons/mdi/github.js","webpack://gg/./node_modules/@iconify-icons/mdi/rss.js","webpack://gg/./node_modules/@iconify-icons/mdi/archive.js","webpack://gg/./node_modules/@iconify-icons/mdi/wb-sunny.js","webpack://gg/./node_modules/@iconify-icons/mdi/moon-and-stars.js","webpack://gg/./src/components/theme_switch/index.tsx","webpack://gg/./src/components/nav/NavScreen.tsx","webpack://gg/./src/components/nav/index.tsx","webpack://gg/./src/components/backtop/index.tsx","webpack://gg/./src/layouts/base.tsx","webpack://gg/./src/hooks/useSite.ts","webpack://gg/./src/utils/tools.ts","webpack://gg/./node_modules/lodash/_Hash.js","webpack://gg/./node_modules/lodash/_ListCache.js","webpack://gg/./node_modules/lodash/_Map.js","webpack://gg/./node_modules/lodash/_MapCache.js","webpack://gg/./node_modules/lodash/_SetCache.js","webpack://gg/./node_modules/lodash/_Symbol.js","webpack://gg/./node_modules/lodash/_apply.js","webpack://gg/./node_modules/lodash/_arrayIncludes.js","webpack://gg/./node_modules/lodash/_arrayIncludesWith.js","webpack://gg/./node_modules/lodash/_arrayLikeKeys.js","webpack://gg/./node_modules/lodash/_arrayMap.js","webpack://gg/./node_modules/lodash/_assocIndexOf.js","webpack://gg/./node_modules/lodash/_baseFindIndex.js","webpack://gg/./node_modules/lodash/_baseGetTag.js","webpack://gg/./node_modules/lodash/_baseIndexOf.js","webpack://gg/./node_modules/lodash/_baseIntersection.js","webpack://gg/./node_modules/lodash/_baseIsArguments.js","webpack://gg/./node_modules/lodash/_baseIsNaN.js","webpack://gg/./node_modules/lodash/_baseIsNative.js","webpack://gg/./node_modules/lodash/_baseIsTypedArray.js","webpack://gg/./node_modules/lodash/_baseKeys.js","webpack://gg/./node_modules/lodash/_baseRest.js","webpack://gg/./node_modules/lodash/_baseSetToString.js","webpack://gg/./node_modules/lodash/_baseTimes.js","webpack://gg/./node_modules/lodash/_baseTrim.js","webpack://gg/./node_modules/lodash/_baseUnary.js","webpack://gg/./node_modules/lodash/_baseValues.js","webpack://gg/./node_modules/lodash/_cacheHas.js","webpack://gg/./node_modules/lodash/_castArrayLikeObject.js","webpack://gg/./node_modules/lodash/_coreJsData.js","webpack://gg/./node_modules/lodash/_defineProperty.js","webpack://gg/./node_modules/lodash/_freeGlobal.js","webpack://gg/./node_modules/lodash/_getMapData.js","webpack://gg/./node_modules/lodash/_getNative.js","webpack://gg/./node_modules/lodash/_getRawTag.js","webpack://gg/./node_modules/lodash/_getValue.js","webpack://gg/./node_modules/lodash/_hashClear.js","webpack://gg/./node_modules/lodash/_hashDelete.js","webpack://gg/./node_modules/lodash/_hashGet.js","webpack://gg/./node_modules/lodash/_hashHas.js","webpack://gg/./node_modules/lodash/_hashSet.js","webpack://gg/./node_modules/lodash/_isIndex.js","webpack://gg/./node_modules/lodash/_isKeyable.js","webpack://gg/./node_modules/lodash/_isMasked.js","webpack://gg/./node_modules/lodash/_isPrototype.js","webpack://gg/./node_modules/lodash/_listCacheClear.js","webpack://gg/./node_modules/lodash/_listCacheDelete.js","webpack://gg/./node_modules/lodash/_listCacheGet.js","webpack://gg/./node_modules/lodash/_listCacheHas.js","webpack://gg/./node_modules/lodash/_listCacheSet.js","webpack://gg/./node_modules/lodash/_mapCacheClear.js","webpack://gg/./node_modules/lodash/_mapCacheDelete.js","webpack://gg/./node_modules/lodash/_mapCacheGet.js","webpack://gg/./node_modules/lodash/_mapCacheHas.js","webpack://gg/./node_modules/lodash/_mapCacheSet.js","webpack://gg/./node_modules/lodash/_nativeCreate.js","webpack://gg/./node_modules/lodash/_nativeKeys.js","webpack://gg/./node_modules/lodash/_nodeUtil.js","webpack://gg/./node_modules/lodash/_objectToString.js","webpack://gg/./node_modules/lodash/_overArg.js","webpack://gg/./node_modules/lodash/_overRest.js","webpack://gg/./node_modules/lodash/_root.js","webpack://gg/./node_modules/lodash/_setCacheAdd.js","webpack://gg/./node_modules/lodash/_setCacheHas.js","webpack://gg/./node_modules/lodash/_setToString.js","webpack://gg/./node_modules/lodash/_shortOut.js","webpack://gg/./node_modules/lodash/_strictIndexOf.js","webpack://gg/./node_modules/lodash/_toSource.js","webpack://gg/./node_modules/lodash/_trimmedEndIndex.js","webpack://gg/./node_modules/lodash/constant.js","webpack://gg/./node_modules/lodash/eq.js","webpack://gg/./node_modules/lodash/identity.js","webpack://gg/./node_modules/lodash/includes.js","webpack://gg/./node_modules/lodash/intersection.js","webpack://gg/./node_modules/lodash/isArguments.js","webpack://gg/./node_modules/lodash/isArray.js","webpack://gg/./node_modules/lodash/isArrayLike.js","webpack://gg/./node_modules/lodash/isArrayLikeObject.js","webpack://gg/./node_modules/lodash/isBuffer.js","webpack://gg/./node_modules/lodash/isFunction.js","webpack://gg/./node_modules/lodash/isLength.js","webpack://gg/./node_modules/lodash/isObject.js","webpack://gg/./node_modules/lodash/isObjectLike.js","webpack://gg/./node_modules/lodash/isString.js","webpack://gg/./node_modules/lodash/isSymbol.js","webpack://gg/./node_modules/lodash/isTypedArray.js","webpack://gg/./node_modules/lodash/keys.js","webpack://gg/./node_modules/lodash/stubFalse.js","webpack://gg/./node_modules/lodash/toFinite.js","webpack://gg/./node_modules/lodash/toInteger.js","webpack://gg/./node_modules/lodash/toNumber.js","webpack://gg/./node_modules/lodash/values.js","webpack://gg/./src/icons/license.svg","webpack://gg/./src/static/logo.png"],"sourcesContent":["var data = {\n \"body\": \"\",\n \"width\": 24,\n \"height\": 24\n};\nexport default data;","var data = {\n \"body\": \"\",\n \"width\": 24,\n \"height\": 24\n};\nexport default data;","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import _defineProperty from \"/home/runner/work/gg/gg/node_modules/@babel/runtime/helpers/esm/defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nimport React from 'react';\nvar matchName = /^[a-z0-9]+(-[a-z0-9]+)*$/;\nvar iconDefaults = Object.freeze({\n left: 0,\n top: 0,\n width: 16,\n height: 16,\n rotate: 0,\n vFlip: false,\n hFlip: false\n});\n\nfunction fullIcon(data) {\n return _objectSpread(_objectSpread({}, iconDefaults), data);\n}\n\nfunction mergeIconData(icon, alias) {\n var result = _objectSpread({}, icon);\n\n for (var key in iconDefaults) {\n var prop = key;\n\n if (alias[prop] !== void 0) {\n var value = alias[prop];\n\n if (result[prop] === void 0) {\n result[prop] = value;\n continue;\n }\n\n switch (prop) {\n case \"rotate\":\n result[prop] = (result[prop] + value) % 4;\n break;\n\n case \"hFlip\":\n case \"vFlip\":\n result[prop] = value !== result[prop];\n break;\n\n default:\n result[prop] = value;\n }\n }\n }\n\n return result;\n}\n\nfunction getIconData(data, name) {\n var full = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n function getIcon(name2, iteration) {\n if (data.icons[name2] !== void 0) {\n return Object.assign({}, data.icons[name2]);\n }\n\n if (iteration > 5) {\n return null;\n }\n\n var aliases = data.aliases;\n\n if (aliases && aliases[name2] !== void 0) {\n var item = aliases[name2];\n var result2 = getIcon(item.parent, iteration + 1);\n\n if (result2) {\n return mergeIconData(result2, item);\n }\n\n return result2;\n }\n\n var chars = data.chars;\n\n if (!iteration && chars && chars[name2] !== void 0) {\n return getIcon(chars[name2], iteration + 1);\n }\n\n return null;\n }\n\n var result = getIcon(name, 0);\n\n if (result) {\n for (var key in iconDefaults) {\n if (result[key] === void 0 && data[key] !== void 0) {\n result[key] = data[key];\n }\n }\n }\n\n return result && full ? fullIcon(result) : result;\n}\n\nfunction isVariation(item) {\n for (var key in iconDefaults) {\n if (item[key] !== void 0) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction parseIconSet(data, callback, options) {\n options = options || {};\n var names = [];\n\n if (typeof data !== \"object\" || typeof data.icons !== \"object\") {\n return names;\n }\n\n if (data.not_found instanceof Array) {\n data.not_found.forEach(function (name) {\n callback(name, null);\n names.push(name);\n });\n }\n\n var icons = data.icons;\n Object.keys(icons).forEach(function (name) {\n var iconData = getIconData(data, name, true);\n\n if (iconData) {\n callback(name, iconData);\n names.push(name);\n }\n });\n var parseAliases = options.aliases || \"all\";\n\n if (parseAliases !== \"none\" && typeof data.aliases === \"object\") {\n var aliases = data.aliases;\n Object.keys(aliases).forEach(function (name) {\n if (parseAliases === \"variations\" && isVariation(aliases[name])) {\n return;\n }\n\n var iconData = getIconData(data, name, true);\n\n if (iconData) {\n callback(name, iconData);\n names.push(name);\n }\n });\n }\n\n return names;\n}\n\nvar optionalProperties = {\n provider: \"string\",\n aliases: \"object\",\n not_found: \"object\"\n};\n\nfor (var prop in iconDefaults) {\n optionalProperties[prop] = typeof iconDefaults[prop];\n}\n\nfunction quicklyValidateIconSet(obj) {\n if (typeof obj !== \"object\" || obj === null) {\n return null;\n }\n\n var data = obj;\n\n if (typeof data.prefix !== \"string\" || !obj.icons || typeof obj.icons !== \"object\") {\n return null;\n }\n\n for (var _prop in optionalProperties) {\n if (obj[_prop] !== void 0 && typeof obj[_prop] !== optionalProperties[_prop]) {\n return null;\n }\n }\n\n var icons = data.icons;\n\n for (var name in icons) {\n var icon = icons[name];\n\n if (!name.match(matchName) || typeof icon.body !== \"string\") {\n return null;\n }\n\n for (var _prop2 in iconDefaults) {\n if (icon[_prop2] !== void 0 && typeof icon[_prop2] !== typeof iconDefaults[_prop2]) {\n return null;\n }\n }\n }\n\n var aliases = data.aliases;\n\n if (aliases) {\n for (var _name in aliases) {\n var _icon = aliases[_name];\n var parent = _icon.parent;\n\n if (!_name.match(matchName) || typeof parent !== \"string\" || !icons[parent] && !aliases[parent]) {\n return null;\n }\n\n for (var _prop3 in iconDefaults) {\n if (_icon[_prop3] !== void 0 && typeof _icon[_prop3] !== typeof iconDefaults[_prop3]) {\n return null;\n }\n }\n }\n }\n\n return data;\n}\n\nvar defaults = Object.freeze({\n inline: false,\n width: null,\n height: null,\n hAlign: \"center\",\n vAlign: \"middle\",\n slice: false,\n hFlip: false,\n vFlip: false,\n rotate: 0\n});\n\nfunction mergeCustomisations(defaults2, item) {\n var result = {};\n\n for (var key in defaults2) {\n var attr = key;\n result[attr] = defaults2[attr];\n\n if (item[attr] === void 0) {\n continue;\n }\n\n var value = item[attr];\n\n switch (attr) {\n case \"inline\":\n case \"slice\":\n if (typeof value === \"boolean\") {\n result[attr] = value;\n }\n\n break;\n\n case \"hFlip\":\n case \"vFlip\":\n if (value === true) {\n result[attr] = !result[attr];\n }\n\n break;\n\n case \"hAlign\":\n case \"vAlign\":\n if (typeof value === \"string\" && value !== \"\") {\n result[attr] = value;\n }\n\n break;\n\n case \"width\":\n case \"height\":\n if (typeof value === \"string\" && value !== \"\" || typeof value === \"number\" && value || value === null) {\n result[attr] = value;\n }\n\n break;\n\n case \"rotate\":\n if (typeof value === \"number\") {\n result[attr] += value;\n }\n\n break;\n }\n }\n\n return result;\n}\n\nvar separator = /[\\s,]+/;\n\nfunction flipFromString(custom, flip) {\n flip.split(separator).forEach(function (str) {\n var value = str.trim();\n\n switch (value) {\n case \"horizontal\":\n custom.hFlip = true;\n break;\n\n case \"vertical\":\n custom.vFlip = true;\n break;\n }\n });\n}\n\nfunction alignmentFromString(custom, align) {\n align.split(separator).forEach(function (str) {\n var value = str.trim();\n\n switch (value) {\n case \"left\":\n case \"center\":\n case \"right\":\n custom.hAlign = value;\n break;\n\n case \"top\":\n case \"middle\":\n case \"bottom\":\n custom.vAlign = value;\n break;\n\n case \"slice\":\n case \"crop\":\n custom.slice = true;\n break;\n\n case \"meet\":\n custom.slice = false;\n }\n });\n}\n\nfunction rotateFromString(value) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var units = value.replace(/^-?[0-9.]*/, \"\");\n\n function cleanup(value2) {\n while (value2 < 0) {\n value2 += 4;\n }\n\n return value2 % 4;\n }\n\n if (units === \"\") {\n var num = parseInt(value);\n return isNaN(num) ? 0 : cleanup(num);\n } else if (units !== value) {\n var split = 0;\n\n switch (units) {\n case \"%\":\n split = 25;\n break;\n\n case \"deg\":\n split = 90;\n }\n\n if (split) {\n var _num = parseFloat(value.slice(0, value.length - units.length));\n\n if (isNaN(_num)) {\n return 0;\n }\n\n _num = _num / split;\n return _num % 1 === 0 ? cleanup(_num) : 0;\n }\n }\n\n return defaultValue;\n}\n\nvar unitsSplit = /(-?[0-9.]*[0-9]+[0-9.]*)/g;\nvar unitsTest = /^-?[0-9.]*[0-9]+[0-9.]*$/g;\n\nfunction calculateSize(size, ratio, precision) {\n if (ratio === 1) {\n return size;\n }\n\n precision = precision === void 0 ? 100 : precision;\n\n if (typeof size === \"number\") {\n return Math.ceil(size * ratio * precision) / precision;\n }\n\n if (typeof size !== \"string\") {\n return size;\n }\n\n var oldParts = size.split(unitsSplit);\n\n if (oldParts === null || !oldParts.length) {\n return size;\n }\n\n var newParts = [];\n var code = oldParts.shift();\n var isNumber = unitsTest.test(code);\n\n while (true) {\n if (isNumber) {\n var num = parseFloat(code);\n\n if (isNaN(num)) {\n newParts.push(code);\n } else {\n newParts.push(Math.ceil(num * ratio * precision) / precision);\n }\n } else {\n newParts.push(code);\n }\n\n code = oldParts.shift();\n\n if (code === void 0) {\n return newParts.join(\"\");\n }\n\n isNumber = !isNumber;\n }\n}\n\nfunction preserveAspectRatio(props) {\n var result = \"\";\n\n switch (props.hAlign) {\n case \"left\":\n result += \"xMin\";\n break;\n\n case \"right\":\n result += \"xMax\";\n break;\n\n default:\n result += \"xMid\";\n }\n\n switch (props.vAlign) {\n case \"top\":\n result += \"YMin\";\n break;\n\n case \"bottom\":\n result += \"YMax\";\n break;\n\n default:\n result += \"YMid\";\n }\n\n result += props.slice ? \" slice\" : \" meet\";\n return result;\n}\n\nfunction iconToSVG(icon, customisations) {\n var box = {\n left: icon.left,\n top: icon.top,\n width: icon.width,\n height: icon.height\n };\n var body = icon.body;\n [icon, customisations].forEach(function (props) {\n var transformations = [];\n var hFlip = props.hFlip;\n var vFlip = props.vFlip;\n var rotation = props.rotate;\n\n if (hFlip) {\n if (vFlip) {\n rotation += 2;\n } else {\n transformations.push(\"translate(\" + (box.width + box.left).toString() + \" \" + (0 - box.top).toString() + \")\");\n transformations.push(\"scale(-1 1)\");\n box.top = box.left = 0;\n }\n } else if (vFlip) {\n transformations.push(\"translate(\" + (0 - box.left).toString() + \" \" + (box.height + box.top).toString() + \")\");\n transformations.push(\"scale(1 -1)\");\n box.top = box.left = 0;\n }\n\n var tempValue;\n\n if (rotation < 0) {\n rotation -= Math.floor(rotation / 4) * 4;\n }\n\n rotation = rotation % 4;\n\n switch (rotation) {\n case 1:\n tempValue = box.height / 2 + box.top;\n transformations.unshift(\"rotate(90 \" + tempValue.toString() + \" \" + tempValue.toString() + \")\");\n break;\n\n case 2:\n transformations.unshift(\"rotate(180 \" + (box.width / 2 + box.left).toString() + \" \" + (box.height / 2 + box.top).toString() + \")\");\n break;\n\n case 3:\n tempValue = box.width / 2 + box.left;\n transformations.unshift(\"rotate(-90 \" + tempValue.toString() + \" \" + tempValue.toString() + \")\");\n break;\n }\n\n if (rotation % 2 === 1) {\n if (box.left !== 0 || box.top !== 0) {\n tempValue = box.left;\n box.left = box.top;\n box.top = tempValue;\n }\n\n if (box.width !== box.height) {\n tempValue = box.width;\n box.width = box.height;\n box.height = tempValue;\n }\n }\n\n if (transformations.length) {\n body = '' + body + \"\";\n }\n });\n var width, height;\n\n if (customisations.width === null && customisations.height === null) {\n height = \"1em\";\n width = calculateSize(height, box.width / box.height);\n } else if (customisations.width !== null && customisations.height !== null) {\n width = customisations.width;\n height = customisations.height;\n } else if (customisations.height !== null) {\n height = customisations.height;\n width = calculateSize(height, box.width / box.height);\n } else {\n width = customisations.width;\n height = calculateSize(width, box.height / box.width);\n }\n\n if (width === \"auto\") {\n width = box.width;\n }\n\n if (height === \"auto\") {\n height = box.height;\n }\n\n width = typeof width === \"string\" ? width : width.toString() + \"\";\n height = typeof height === \"string\" ? height : height.toString() + \"\";\n var result = {\n attributes: {\n width: width,\n height: height,\n preserveAspectRatio: preserveAspectRatio(customisations),\n viewBox: box.left.toString() + \" \" + box.top.toString() + \" \" + box.width.toString() + \" \" + box.height.toString()\n },\n body: body\n };\n\n if (customisations.inline) {\n result.inline = true;\n }\n\n return result;\n}\n\nvar regex = /\\sid=\"(\\S+)\"/g;\nvar randomPrefix = \"IconifyId\" + Date.now().toString(16) + (Math.random() * 16777216 | 0).toString(16);\nvar counter = 0;\n\nfunction replaceIDs(body) {\n var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : randomPrefix;\n var ids = [];\n var match;\n\n while (match = regex.exec(body)) {\n ids.push(match[1]);\n }\n\n if (!ids.length) {\n return body;\n }\n\n ids.forEach(function (id) {\n var newID = typeof prefix === \"function\" ? prefix(id) : prefix + (counter++).toString();\n var escapedID = id.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n body = body.replace(new RegExp('([#;\"])(' + escapedID + ')([\")]|\\\\.[a-z])', \"g\"), \"$1\" + newID + \"$3\");\n });\n return body;\n}\n/**\n * Default SVG attributes\n */\n\n\nvar svgDefaults = {\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'xmlnsXlink': 'http://www.w3.org/1999/xlink',\n 'aria-hidden': true,\n 'role': 'img',\n 'style': {} // Include style if it isn't set to add verticalAlign later\n\n};\n/**\n * Default values for customisations for inline icon\n */\n\nvar inlineDefaults = _objectSpread(_objectSpread({}, defaults), {}, {\n inline: true\n});\n/**\n * Render icon\n */\n\n\nvar render = function render( // Icon must be validated before calling this function\nicon, // Partial properties\nprops, // True if icon should have vertical-align added\ninline, // Optional reference for SVG, extracted by React.forwardRef()\nref) {\n // Get default properties\n var defaultProps = inline ? inlineDefaults : defaults; // Get all customisations\n\n var customisations = mergeCustomisations(defaultProps, props); // Create style\n\n var style = typeof props.style === 'object' && props.style !== null ? props.style : {}; // Create SVG component properties\n\n var componentProps = _objectSpread(_objectSpread({}, svgDefaults), {}, {\n ref: ref,\n style: style\n }); // Get element properties\n\n\n for (var key in props) {\n var value = props[key];\n\n if (value === void 0) {\n continue;\n }\n\n switch (key) {\n // Properties to ignore\n case 'icon':\n case 'style':\n case 'children':\n case 'onLoad':\n case '_ref':\n case '_inline':\n break;\n // Boolean attributes\n\n case 'inline':\n case 'hFlip':\n case 'vFlip':\n customisations[key] = value === true || value === 'true' || value === 1;\n break;\n // Flip as string: 'horizontal,vertical'\n\n case 'flip':\n if (typeof value === 'string') {\n flipFromString(customisations, value);\n }\n\n break;\n // Alignment as string\n\n case 'align':\n if (typeof value === 'string') {\n alignmentFromString(customisations, value);\n }\n\n break;\n // Color: copy to style\n\n case 'color':\n style.color = value;\n break;\n // Rotation as string\n\n case 'rotate':\n if (typeof value === 'string') {\n customisations[key] = rotateFromString(value);\n } else if (typeof value === 'number') {\n customisations[key] = value;\n }\n\n break;\n // Remove aria-hidden\n\n case 'ariaHidden':\n case 'aria-hidden':\n if (value !== true && value !== 'true') {\n delete componentProps['aria-hidden'];\n }\n\n break;\n // Copy missing property if it does not exist in customisations\n\n default:\n if (defaultProps[key] === void 0) {\n componentProps[key] = value;\n }\n\n }\n } // Generate icon\n\n\n var item = iconToSVG(icon, customisations); // Counter for ids based on \"id\" property to render icons consistently on server and client\n\n var localCounter = 0;\n var id = props.id;\n\n if (typeof id === 'string') {\n // Convert '-' to '_' to avoid errors in animations\n id = id.replace(/-/g, '_');\n } // Add icon stuff\n\n\n componentProps.dangerouslySetInnerHTML = {\n __html: replaceIDs(item.body, id ? function () {\n return id + 'ID' + localCounter++;\n } : 'iconifyReact')\n };\n\n for (var _key in item.attributes) {\n componentProps[_key] = item.attributes[_key];\n }\n\n if (item.inline && style.verticalAlign === void 0) {\n style.verticalAlign = '-0.125em';\n }\n\n return React.createElement('svg', componentProps);\n};\n/**\n * Storage for icons referred by name\n */\n\n\nvar storage = Object.create(null);\n/**\n * Generate icon\n */\n\nfunction component(props, inline, ref) {\n // Split properties\n var icon = typeof props.icon === 'string' ? storage[props.icon] : typeof props.icon === 'object' ? fullIcon(props.icon) : null; // Validate icon object\n\n if (icon === null || typeof icon !== 'object' || typeof icon.body !== 'string') {\n return props.children ? props.children : React.createElement('span', {});\n } // Valid icon: render it\n\n\n return render(icon, props, inline, ref);\n}\n/**\n * Block icon\n *\n * @param props - Component properties\n */\n\n\nvar Icon = React.forwardRef(function Icon(props, ref) {\n return component(props, false, ref);\n});\n/**\n * Inline icon (has negative verticalAlign that makes it behave like icon font)\n *\n * @param props - Component properties\n */\n\nvar InlineIcon = React.forwardRef(function InlineIcon(props, ref) {\n return component(props, true, ref);\n});\n/**\n * Add icon to storage, allowing to call it by name\n *\n * @param name\n * @param data\n */\n\nfunction addIcon(name, data) {\n storage[name] = fullIcon(data);\n}\n/**\n * Add collection to storage, allowing to call icons by name\n *\n * @param data Icon set\n * @param prefix Optional prefix to add to icon names, true (default) if prefix from icon set should be used.\n */\n\n\nfunction addCollection(data, prefix) {\n var iconPrefix = typeof prefix === 'string' ? prefix : prefix !== false && typeof data.prefix === 'string' ? data.prefix + ':' : '';\n quicklyValidateIconSet(data) && parseIconSet(data, function (name, icon) {\n if (icon) {\n storage[iconPrefix + name] = icon;\n }\n });\n}\n\nexport { Icon, InlineIcon, addCollection, addIcon };","function toVal(mix) {\n var k,\n y,\n str = '';\n\n if (typeof mix === 'string' || typeof mix === 'number') {\n str += mix;\n } else if (typeof mix === 'object') {\n if (Array.isArray(mix)) {\n for (k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (y = toVal(mix[k])) {\n str && (str += ' ');\n str += y;\n }\n }\n }\n } else {\n for (k in mix) {\n if (mix[k]) {\n str && (str += ' ');\n str += k;\n }\n }\n }\n }\n\n return str;\n}\n\nexport default function () {\n var i = 0,\n tmp,\n x,\n str = '';\n\n while (i < arguments.length) {\n if (tmp = arguments[i++]) {\n if (x = toVal(tmp)) {\n str && (str += ' ');\n str += x;\n }\n }\n }\n\n return str;\n}","require(\"core-js/modules/esnext.global-this.js\");\n\n!function (t, e) {\n \"object\" == typeof exports && \"undefined\" != typeof module ? module.exports = e() : \"function\" == typeof define && define.amd ? define(e) : (t = \"undefined\" != typeof globalThis ? globalThis : t || self).dayjs = e();\n}(this, function () {\n \"use strict\";\n\n var t = 1e3,\n e = 6e4,\n n = 36e5,\n r = \"millisecond\",\n i = \"second\",\n s = \"minute\",\n u = \"hour\",\n a = \"day\",\n o = \"week\",\n f = \"month\",\n h = \"quarter\",\n c = \"year\",\n d = \"date\",\n $ = \"Invalid Date\",\n l = /^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,\n y = /\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,\n M = {\n name: \"en\",\n weekdays: \"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),\n months: \"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\")\n },\n m = function m(t, e, n) {\n var r = String(t);\n return !r || r.length >= e ? t : \"\" + Array(e + 1 - r.length).join(n) + t;\n },\n g = {\n s: m,\n z: function z(t) {\n var e = -t.utcOffset(),\n n = Math.abs(e),\n r = Math.floor(n / 60),\n i = n % 60;\n return (e <= 0 ? \"+\" : \"-\") + m(r, 2, \"0\") + \":\" + m(i, 2, \"0\");\n },\n m: function t(e, n) {\n if (e.date() < n.date()) return -t(n, e);\n var r = 12 * (n.year() - e.year()) + (n.month() - e.month()),\n i = e.clone().add(r, f),\n s = n - i < 0,\n u = e.clone().add(r + (s ? -1 : 1), f);\n return +(-(r + (n - i) / (s ? i - u : u - i)) || 0);\n },\n a: function a(t) {\n return t < 0 ? Math.ceil(t) || 0 : Math.floor(t);\n },\n p: function p(t) {\n return {\n M: f,\n y: c,\n w: o,\n d: a,\n D: d,\n h: u,\n m: s,\n s: i,\n ms: r,\n Q: h\n }[t] || String(t || \"\").toLowerCase().replace(/s$/, \"\");\n },\n u: function u(t) {\n return void 0 === t;\n }\n },\n v = \"en\",\n D = {};\n\n D[v] = M;\n\n var p = function p(t) {\n return t instanceof _;\n },\n S = function t(e, n, r) {\n var i;\n if (!e) return v;\n\n if (\"string\" == typeof e) {\n var s = e.toLowerCase();\n D[s] && (i = s), n && (D[s] = n, i = s);\n var u = e.split(\"-\");\n if (!i && u.length > 1) return t(u[0]);\n } else {\n var a = e.name;\n D[a] = e, i = a;\n }\n\n return !r && i && (v = i), i || !r && v;\n },\n w = function w(t, e) {\n if (p(t)) return t.clone();\n var n = \"object\" == typeof e ? e : {};\n return n.date = t, n.args = arguments, new _(n);\n },\n O = g;\n\n O.l = S, O.i = p, O.w = function (t, e) {\n return w(t, {\n locale: e.$L,\n utc: e.$u,\n x: e.$x,\n $offset: e.$offset\n });\n };\n\n var _ = function () {\n function M(t) {\n this.$L = S(t.locale, null, !0), this.parse(t);\n }\n\n var m = M.prototype;\n return m.parse = function (t) {\n this.$d = function (t) {\n var e = t.date,\n n = t.utc;\n if (null === e) return new Date(NaN);\n if (O.u(e)) return new Date();\n if (e instanceof Date) return new Date(e);\n\n if (\"string\" == typeof e && !/Z$/i.test(e)) {\n var r = e.match(l);\n\n if (r) {\n var i = r[2] - 1 || 0,\n s = (r[7] || \"0\").substring(0, 3);\n return n ? new Date(Date.UTC(r[1], i, r[3] || 1, r[4] || 0, r[5] || 0, r[6] || 0, s)) : new Date(r[1], i, r[3] || 1, r[4] || 0, r[5] || 0, r[6] || 0, s);\n }\n }\n\n return new Date(e);\n }(t), this.$x = t.x || {}, this.init();\n }, m.init = function () {\n var t = this.$d;\n this.$y = t.getFullYear(), this.$M = t.getMonth(), this.$D = t.getDate(), this.$W = t.getDay(), this.$H = t.getHours(), this.$m = t.getMinutes(), this.$s = t.getSeconds(), this.$ms = t.getMilliseconds();\n }, m.$utils = function () {\n return O;\n }, m.isValid = function () {\n return !(this.$d.toString() === $);\n }, m.isSame = function (t, e) {\n var n = w(t);\n return this.startOf(e) <= n && n <= this.endOf(e);\n }, m.isAfter = function (t, e) {\n return w(t) < this.startOf(e);\n }, m.isBefore = function (t, e) {\n return this.endOf(e) < w(t);\n }, m.$g = function (t, e, n) {\n return O.u(t) ? this[e] : this.set(n, t);\n }, m.unix = function () {\n return Math.floor(this.valueOf() / 1e3);\n }, m.valueOf = function () {\n return this.$d.getTime();\n }, m.startOf = function (t, e) {\n var n = this,\n r = !!O.u(e) || e,\n h = O.p(t),\n $ = function $(t, e) {\n var i = O.w(n.$u ? Date.UTC(n.$y, e, t) : new Date(n.$y, e, t), n);\n return r ? i : i.endOf(a);\n },\n l = function l(t, e) {\n return O.w(n.toDate()[t].apply(n.toDate(\"s\"), (r ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(e)), n);\n },\n y = this.$W,\n M = this.$M,\n m = this.$D,\n g = \"set\" + (this.$u ? \"UTC\" : \"\");\n\n switch (h) {\n case c:\n return r ? $(1, 0) : $(31, 11);\n\n case f:\n return r ? $(1, M) : $(0, M + 1);\n\n case o:\n var v = this.$locale().weekStart || 0,\n D = (y < v ? y + 7 : y) - v;\n return $(r ? m - D : m + (6 - D), M);\n\n case a:\n case d:\n return l(g + \"Hours\", 0);\n\n case u:\n return l(g + \"Minutes\", 1);\n\n case s:\n return l(g + \"Seconds\", 2);\n\n case i:\n return l(g + \"Milliseconds\", 3);\n\n default:\n return this.clone();\n }\n }, m.endOf = function (t) {\n return this.startOf(t, !1);\n }, m.$set = function (t, e) {\n var n,\n o = O.p(t),\n h = \"set\" + (this.$u ? \"UTC\" : \"\"),\n $ = (n = {}, n[a] = h + \"Date\", n[d] = h + \"Date\", n[f] = h + \"Month\", n[c] = h + \"FullYear\", n[u] = h + \"Hours\", n[s] = h + \"Minutes\", n[i] = h + \"Seconds\", n[r] = h + \"Milliseconds\", n)[o],\n l = o === a ? this.$D + (e - this.$W) : e;\n\n if (o === f || o === c) {\n var y = this.clone().set(d, 1);\n y.$d[$](l), y.init(), this.$d = y.set(d, Math.min(this.$D, y.daysInMonth())).$d;\n } else $ && this.$d[$](l);\n\n return this.init(), this;\n }, m.set = function (t, e) {\n return this.clone().$set(t, e);\n }, m.get = function (t) {\n return this[O.p(t)]();\n }, m.add = function (r, h) {\n var d,\n $ = this;\n r = Number(r);\n\n var l = O.p(h),\n y = function y(t) {\n var e = w($);\n return O.w(e.date(e.date() + Math.round(t * r)), $);\n };\n\n if (l === f) return this.set(f, this.$M + r);\n if (l === c) return this.set(c, this.$y + r);\n if (l === a) return y(1);\n if (l === o) return y(7);\n var M = (d = {}, d[s] = e, d[u] = n, d[i] = t, d)[l] || 1,\n m = this.$d.getTime() + r * M;\n return O.w(m, this);\n }, m.subtract = function (t, e) {\n return this.add(-1 * t, e);\n }, m.format = function (t) {\n var e = this,\n n = this.$locale();\n if (!this.isValid()) return n.invalidDate || $;\n\n var r = t || \"YYYY-MM-DDTHH:mm:ssZ\",\n i = O.z(this),\n s = this.$H,\n u = this.$m,\n a = this.$M,\n o = n.weekdays,\n f = n.months,\n h = function h(t, n, i, s) {\n return t && (t[n] || t(e, r)) || i[n].substr(0, s);\n },\n c = function c(t) {\n return O.s(s % 12 || 12, t, \"0\");\n },\n d = n.meridiem || function (t, e, n) {\n var r = t < 12 ? \"AM\" : \"PM\";\n return n ? r.toLowerCase() : r;\n },\n l = {\n YY: String(this.$y).slice(-2),\n YYYY: this.$y,\n M: a + 1,\n MM: O.s(a + 1, 2, \"0\"),\n MMM: h(n.monthsShort, a, f, 3),\n MMMM: h(f, a),\n D: this.$D,\n DD: O.s(this.$D, 2, \"0\"),\n d: String(this.$W),\n dd: h(n.weekdaysMin, this.$W, o, 2),\n ddd: h(n.weekdaysShort, this.$W, o, 3),\n dddd: o[this.$W],\n H: String(s),\n HH: O.s(s, 2, \"0\"),\n h: c(1),\n hh: c(2),\n a: d(s, u, !0),\n A: d(s, u, !1),\n m: String(u),\n mm: O.s(u, 2, \"0\"),\n s: String(this.$s),\n ss: O.s(this.$s, 2, \"0\"),\n SSS: O.s(this.$ms, 3, \"0\"),\n Z: i\n };\n\n return r.replace(y, function (t, e) {\n return e || l[t] || i.replace(\":\", \"\");\n });\n }, m.utcOffset = function () {\n return 15 * -Math.round(this.$d.getTimezoneOffset() / 15);\n }, m.diff = function (r, d, $) {\n var l,\n y = O.p(d),\n M = w(r),\n m = (M.utcOffset() - this.utcOffset()) * e,\n g = this - M,\n v = O.m(this, M);\n return v = (l = {}, l[c] = v / 12, l[f] = v, l[h] = v / 3, l[o] = (g - m) / 6048e5, l[a] = (g - m) / 864e5, l[u] = g / n, l[s] = g / e, l[i] = g / t, l)[y] || g, $ ? v : O.a(v);\n }, m.daysInMonth = function () {\n return this.endOf(f).$D;\n }, m.$locale = function () {\n return D[this.$L];\n }, m.locale = function (t, e) {\n if (!t) return this.$L;\n var n = this.clone(),\n r = S(t, e, !0);\n return r && (n.$L = r), n;\n }, m.clone = function () {\n return O.w(this.$d, this);\n }, m.toDate = function () {\n return new Date(this.valueOf());\n }, m.toJSON = function () {\n return this.isValid() ? this.toISOString() : null;\n }, m.toISOString = function () {\n return this.$d.toISOString();\n }, m.toString = function () {\n return this.$d.toUTCString();\n }, M;\n }(),\n b = _.prototype;\n\n return w.prototype = b, [[\"$ms\", r], [\"$s\", i], [\"$m\", s], [\"$H\", u], [\"$W\", a], [\"$M\", f], [\"$y\", c], [\"$D\", d]].forEach(function (t) {\n b[t[1]] = function (e) {\n return this.$g(e, t[0], t[1]);\n };\n }), w.extend = function (t, e) {\n return t.$i || (t(e, _, w), t.$i = !0), w;\n }, w.locale = S, w.isDayjs = p, w.unix = function (t) {\n return w(1e3 * t);\n }, w.en = D[v], w.Ls = D, w.p = {}, w;\n});","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView; // Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n var length, i, keys;\n\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!equal(a[i], b[i])) return false;\n }\n\n return true;\n } // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n\n\n var it;\n\n if (hasMap && a instanceof Map && b instanceof Map) {\n if (a.size !== b.size) return false;\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!b.has(i.value[0])) return false;\n }\n\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n }\n\n return true;\n }\n\n if (hasSet && a instanceof Set && b instanceof Set) {\n if (a.size !== b.size) return false;\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!b.has(i.value[0])) return false;\n }\n\n return true;\n } // END: Modifications\n\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n\n for (i = length; i-- !== 0;) {\n if (a[i] !== b[i]) return false;\n }\n\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n } // END: fast-deep-equal\n // START: react-fast-compare\n // custom handling for DOM elements\n\n\n if (hasElementType && a instanceof Element) return false; // custom handling for React/Preact\n\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n continue;\n } // all other properties should be traversed as usual\n\n\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n } // END: react-fast-compare\n // START: fast-deep-equal\n\n\n return true;\n }\n\n return a !== a && b !== b;\n} // end fast-deep-equal\n\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if ((error.message || '').match(/stack|recursion/i)) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n } // some other error. we should definitely know about these\n\n\n throw error;\n }\n};","//\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB); // Test for A's keys different from B.\n\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || ret === void 0 && valueA !== valueB) {\n return false;\n }\n }\n\n return true;\n};",";\n\n(function (name, root, factory) {\n if (typeof exports === 'object') {\n module.exports = factory();\n module.exports['default'] = factory();\n }\n /* istanbul ignore next */\n else if (typeof define === 'function' && define.amd) {\n define(factory);\n } else {\n root[name] = factory();\n }\n})('slugify', this, function () {\n var charMap = JSON.parse('{\"$\":\"dollar\",\"%\":\"percent\",\"&\":\"and\",\"<\":\"less\",\">\":\"greater\",\"|\":\"or\",\"¢\":\"cent\",\"£\":\"pound\",\"¤\":\"currency\",\"¥\":\"yen\",\"©\":\"(c)\",\"ª\":\"a\",\"®\":\"(r)\",\"º\":\"o\",\"À\":\"A\",\"Á\":\"A\",\"Â\":\"A\",\"Ã\":\"A\",\"Ä\":\"A\",\"Å\":\"A\",\"Æ\":\"AE\",\"Ç\":\"C\",\"È\":\"E\",\"É\":\"E\",\"Ê\":\"E\",\"Ë\":\"E\",\"Ì\":\"I\",\"Í\":\"I\",\"Î\":\"I\",\"Ï\":\"I\",\"Ð\":\"D\",\"Ñ\":\"N\",\"Ò\":\"O\",\"Ó\":\"O\",\"Ô\":\"O\",\"Õ\":\"O\",\"Ö\":\"O\",\"Ø\":\"O\",\"Ù\":\"U\",\"Ú\":\"U\",\"Û\":\"U\",\"Ü\":\"U\",\"Ý\":\"Y\",\"Þ\":\"TH\",\"ß\":\"ss\",\"à\":\"a\",\"á\":\"a\",\"â\":\"a\",\"ã\":\"a\",\"ä\":\"a\",\"å\":\"a\",\"æ\":\"ae\",\"ç\":\"c\",\"è\":\"e\",\"é\":\"e\",\"ê\":\"e\",\"ë\":\"e\",\"ì\":\"i\",\"í\":\"i\",\"î\":\"i\",\"ï\":\"i\",\"ð\":\"d\",\"ñ\":\"n\",\"ò\":\"o\",\"ó\":\"o\",\"ô\":\"o\",\"õ\":\"o\",\"ö\":\"o\",\"ø\":\"o\",\"ù\":\"u\",\"ú\":\"u\",\"û\":\"u\",\"ü\":\"u\",\"ý\":\"y\",\"þ\":\"th\",\"ÿ\":\"y\",\"Ā\":\"A\",\"ā\":\"a\",\"Ă\":\"A\",\"ă\":\"a\",\"Ą\":\"A\",\"ą\":\"a\",\"Ć\":\"C\",\"ć\":\"c\",\"Č\":\"C\",\"č\":\"c\",\"Ď\":\"D\",\"ď\":\"d\",\"Đ\":\"DJ\",\"đ\":\"dj\",\"Ē\":\"E\",\"ē\":\"e\",\"Ė\":\"E\",\"ė\":\"e\",\"Ę\":\"e\",\"ę\":\"e\",\"Ě\":\"E\",\"ě\":\"e\",\"Ğ\":\"G\",\"ğ\":\"g\",\"Ģ\":\"G\",\"ģ\":\"g\",\"Ĩ\":\"I\",\"ĩ\":\"i\",\"Ī\":\"i\",\"ī\":\"i\",\"Į\":\"I\",\"į\":\"i\",\"İ\":\"I\",\"ı\":\"i\",\"Ķ\":\"k\",\"ķ\":\"k\",\"Ļ\":\"L\",\"ļ\":\"l\",\"Ľ\":\"L\",\"ľ\":\"l\",\"Ł\":\"L\",\"ł\":\"l\",\"Ń\":\"N\",\"ń\":\"n\",\"Ņ\":\"N\",\"ņ\":\"n\",\"Ň\":\"N\",\"ň\":\"n\",\"Ō\":\"O\",\"ō\":\"o\",\"Ő\":\"O\",\"ő\":\"o\",\"Œ\":\"OE\",\"œ\":\"oe\",\"Ŕ\":\"R\",\"ŕ\":\"r\",\"Ř\":\"R\",\"ř\":\"r\",\"Ś\":\"S\",\"ś\":\"s\",\"Ş\":\"S\",\"ş\":\"s\",\"Š\":\"S\",\"š\":\"s\",\"Ţ\":\"T\",\"ţ\":\"t\",\"Ť\":\"T\",\"ť\":\"t\",\"Ũ\":\"U\",\"ũ\":\"u\",\"Ū\":\"u\",\"ū\":\"u\",\"Ů\":\"U\",\"ů\":\"u\",\"Ű\":\"U\",\"ű\":\"u\",\"Ų\":\"U\",\"ų\":\"u\",\"Ŵ\":\"W\",\"ŵ\":\"w\",\"Ŷ\":\"Y\",\"ŷ\":\"y\",\"Ÿ\":\"Y\",\"Ź\":\"Z\",\"ź\":\"z\",\"Ż\":\"Z\",\"ż\":\"z\",\"Ž\":\"Z\",\"ž\":\"z\",\"Ə\":\"E\",\"ƒ\":\"f\",\"Ơ\":\"O\",\"ơ\":\"o\",\"Ư\":\"U\",\"ư\":\"u\",\"Lj\":\"LJ\",\"lj\":\"lj\",\"Nj\":\"NJ\",\"nj\":\"nj\",\"Ș\":\"S\",\"ș\":\"s\",\"Ț\":\"T\",\"ț\":\"t\",\"ə\":\"e\",\"˚\":\"o\",\"Ά\":\"A\",\"Έ\":\"E\",\"Ή\":\"H\",\"Ί\":\"I\",\"Ό\":\"O\",\"Ύ\":\"Y\",\"Ώ\":\"W\",\"ΐ\":\"i\",\"Α\":\"A\",\"Β\":\"B\",\"Γ\":\"G\",\"Δ\":\"D\",\"Ε\":\"E\",\"Ζ\":\"Z\",\"Η\":\"H\",\"Θ\":\"8\",\"Ι\":\"I\",\"Κ\":\"K\",\"Λ\":\"L\",\"Μ\":\"M\",\"Ν\":\"N\",\"Ξ\":\"3\",\"Ο\":\"O\",\"Π\":\"P\",\"Ρ\":\"R\",\"Σ\":\"S\",\"Τ\":\"T\",\"Υ\":\"Y\",\"Φ\":\"F\",\"Χ\":\"X\",\"Ψ\":\"PS\",\"Ω\":\"W\",\"Ϊ\":\"I\",\"Ϋ\":\"Y\",\"ά\":\"a\",\"έ\":\"e\",\"ή\":\"h\",\"ί\":\"i\",\"ΰ\":\"y\",\"α\":\"a\",\"β\":\"b\",\"γ\":\"g\",\"δ\":\"d\",\"ε\":\"e\",\"ζ\":\"z\",\"η\":\"h\",\"θ\":\"8\",\"ι\":\"i\",\"κ\":\"k\",\"λ\":\"l\",\"μ\":\"m\",\"ν\":\"n\",\"ξ\":\"3\",\"ο\":\"o\",\"π\":\"p\",\"ρ\":\"r\",\"ς\":\"s\",\"σ\":\"s\",\"τ\":\"t\",\"υ\":\"y\",\"φ\":\"f\",\"χ\":\"x\",\"ψ\":\"ps\",\"ω\":\"w\",\"ϊ\":\"i\",\"ϋ\":\"y\",\"ό\":\"o\",\"ύ\":\"y\",\"ώ\":\"w\",\"Ё\":\"Yo\",\"Ђ\":\"DJ\",\"Є\":\"Ye\",\"І\":\"I\",\"Ї\":\"Yi\",\"Ј\":\"J\",\"Љ\":\"LJ\",\"Њ\":\"NJ\",\"Ћ\":\"C\",\"Џ\":\"DZ\",\"А\":\"A\",\"Б\":\"B\",\"В\":\"V\",\"Г\":\"G\",\"Д\":\"D\",\"Е\":\"E\",\"Ж\":\"Zh\",\"З\":\"Z\",\"И\":\"I\",\"Й\":\"J\",\"К\":\"K\",\"Л\":\"L\",\"М\":\"M\",\"Н\":\"N\",\"О\":\"O\",\"П\":\"P\",\"Р\":\"R\",\"С\":\"S\",\"Т\":\"T\",\"У\":\"U\",\"Ф\":\"F\",\"Х\":\"H\",\"Ц\":\"C\",\"Ч\":\"Ch\",\"Ш\":\"Sh\",\"Щ\":\"Sh\",\"Ъ\":\"U\",\"Ы\":\"Y\",\"Ь\":\"\",\"Э\":\"E\",\"Ю\":\"Yu\",\"Я\":\"Ya\",\"а\":\"a\",\"б\":\"b\",\"в\":\"v\",\"г\":\"g\",\"д\":\"d\",\"е\":\"e\",\"ж\":\"zh\",\"з\":\"z\",\"и\":\"i\",\"й\":\"j\",\"к\":\"k\",\"л\":\"l\",\"м\":\"m\",\"н\":\"n\",\"о\":\"o\",\"п\":\"p\",\"р\":\"r\",\"с\":\"s\",\"т\":\"t\",\"у\":\"u\",\"ф\":\"f\",\"х\":\"h\",\"ц\":\"c\",\"ч\":\"ch\",\"ш\":\"sh\",\"щ\":\"sh\",\"ъ\":\"u\",\"ы\":\"y\",\"ь\":\"\",\"э\":\"e\",\"ю\":\"yu\",\"я\":\"ya\",\"ё\":\"yo\",\"ђ\":\"dj\",\"є\":\"ye\",\"і\":\"i\",\"ї\":\"yi\",\"ј\":\"j\",\"љ\":\"lj\",\"њ\":\"nj\",\"ћ\":\"c\",\"ѝ\":\"u\",\"џ\":\"dz\",\"Ґ\":\"G\",\"ґ\":\"g\",\"Ғ\":\"GH\",\"ғ\":\"gh\",\"Қ\":\"KH\",\"қ\":\"kh\",\"Ң\":\"NG\",\"ң\":\"ng\",\"Ү\":\"UE\",\"ү\":\"ue\",\"Ұ\":\"U\",\"ұ\":\"u\",\"Һ\":\"H\",\"һ\":\"h\",\"Ә\":\"AE\",\"ә\":\"ae\",\"Ө\":\"OE\",\"ө\":\"oe\",\"Ա\":\"A\",\"Բ\":\"B\",\"Գ\":\"G\",\"Դ\":\"D\",\"Ե\":\"E\",\"Զ\":\"Z\",\"Է\":\"E\\'\",\"Ը\":\"Y\\'\",\"Թ\":\"T\\'\",\"Ժ\":\"JH\",\"Ի\":\"I\",\"Լ\":\"L\",\"Խ\":\"X\",\"Ծ\":\"C\\'\",\"Կ\":\"K\",\"Հ\":\"H\",\"Ձ\":\"D\\'\",\"Ղ\":\"GH\",\"Ճ\":\"TW\",\"Մ\":\"M\",\"Յ\":\"Y\",\"Ն\":\"N\",\"Շ\":\"SH\",\"Չ\":\"CH\",\"Պ\":\"P\",\"Ջ\":\"J\",\"Ռ\":\"R\\'\",\"Ս\":\"S\",\"Վ\":\"V\",\"Տ\":\"T\",\"Ր\":\"R\",\"Ց\":\"C\",\"Փ\":\"P\\'\",\"Ք\":\"Q\\'\",\"Օ\":\"O\\'\\'\",\"Ֆ\":\"F\",\"և\":\"EV\",\"ء\":\"a\",\"آ\":\"aa\",\"أ\":\"a\",\"ؤ\":\"u\",\"إ\":\"i\",\"ئ\":\"e\",\"ا\":\"a\",\"ب\":\"b\",\"ة\":\"h\",\"ت\":\"t\",\"ث\":\"th\",\"ج\":\"j\",\"ح\":\"h\",\"خ\":\"kh\",\"د\":\"d\",\"ذ\":\"th\",\"ر\":\"r\",\"ز\":\"z\",\"س\":\"s\",\"ش\":\"sh\",\"ص\":\"s\",\"ض\":\"dh\",\"ط\":\"t\",\"ظ\":\"z\",\"ع\":\"a\",\"غ\":\"gh\",\"ف\":\"f\",\"ق\":\"q\",\"ك\":\"k\",\"ل\":\"l\",\"م\":\"m\",\"ن\":\"n\",\"ه\":\"h\",\"و\":\"w\",\"ى\":\"a\",\"ي\":\"y\",\"ً\":\"an\",\"ٌ\":\"on\",\"ٍ\":\"en\",\"َ\":\"a\",\"ُ\":\"u\",\"ِ\":\"e\",\"ْ\":\"\",\"٠\":\"0\",\"١\":\"1\",\"٢\":\"2\",\"٣\":\"3\",\"٤\":\"4\",\"٥\":\"5\",\"٦\":\"6\",\"٧\":\"7\",\"٨\":\"8\",\"٩\":\"9\",\"پ\":\"p\",\"چ\":\"ch\",\"ژ\":\"zh\",\"ک\":\"k\",\"گ\":\"g\",\"ی\":\"y\",\"۰\":\"0\",\"۱\":\"1\",\"۲\":\"2\",\"۳\":\"3\",\"۴\":\"4\",\"۵\":\"5\",\"۶\":\"6\",\"۷\":\"7\",\"۸\":\"8\",\"۹\":\"9\",\"฿\":\"baht\",\"ა\":\"a\",\"ბ\":\"b\",\"გ\":\"g\",\"დ\":\"d\",\"ე\":\"e\",\"ვ\":\"v\",\"ზ\":\"z\",\"თ\":\"t\",\"ი\":\"i\",\"კ\":\"k\",\"ლ\":\"l\",\"მ\":\"m\",\"ნ\":\"n\",\"ო\":\"o\",\"პ\":\"p\",\"ჟ\":\"zh\",\"რ\":\"r\",\"ს\":\"s\",\"ტ\":\"t\",\"უ\":\"u\",\"ფ\":\"f\",\"ქ\":\"k\",\"ღ\":\"gh\",\"ყ\":\"q\",\"შ\":\"sh\",\"ჩ\":\"ch\",\"ც\":\"ts\",\"ძ\":\"dz\",\"წ\":\"ts\",\"ჭ\":\"ch\",\"ხ\":\"kh\",\"ჯ\":\"j\",\"ჰ\":\"h\",\"Ṣ\":\"S\",\"ṣ\":\"s\",\"Ẁ\":\"W\",\"ẁ\":\"w\",\"Ẃ\":\"W\",\"ẃ\":\"w\",\"Ẅ\":\"W\",\"ẅ\":\"w\",\"ẞ\":\"SS\",\"Ạ\":\"A\",\"ạ\":\"a\",\"Ả\":\"A\",\"ả\":\"a\",\"Ấ\":\"A\",\"ấ\":\"a\",\"Ầ\":\"A\",\"ầ\":\"a\",\"Ẩ\":\"A\",\"ẩ\":\"a\",\"Ẫ\":\"A\",\"ẫ\":\"a\",\"Ậ\":\"A\",\"ậ\":\"a\",\"Ắ\":\"A\",\"ắ\":\"a\",\"Ằ\":\"A\",\"ằ\":\"a\",\"Ẳ\":\"A\",\"ẳ\":\"a\",\"Ẵ\":\"A\",\"ẵ\":\"a\",\"Ặ\":\"A\",\"ặ\":\"a\",\"Ẹ\":\"E\",\"ẹ\":\"e\",\"Ẻ\":\"E\",\"ẻ\":\"e\",\"Ẽ\":\"E\",\"ẽ\":\"e\",\"Ế\":\"E\",\"ế\":\"e\",\"Ề\":\"E\",\"ề\":\"e\",\"Ể\":\"E\",\"ể\":\"e\",\"Ễ\":\"E\",\"ễ\":\"e\",\"Ệ\":\"E\",\"ệ\":\"e\",\"Ỉ\":\"I\",\"ỉ\":\"i\",\"Ị\":\"I\",\"ị\":\"i\",\"Ọ\":\"O\",\"ọ\":\"o\",\"Ỏ\":\"O\",\"ỏ\":\"o\",\"Ố\":\"O\",\"ố\":\"o\",\"Ồ\":\"O\",\"ồ\":\"o\",\"Ổ\":\"O\",\"ổ\":\"o\",\"Ỗ\":\"O\",\"ỗ\":\"o\",\"Ộ\":\"O\",\"ộ\":\"o\",\"Ớ\":\"O\",\"ớ\":\"o\",\"Ờ\":\"O\",\"ờ\":\"o\",\"Ở\":\"O\",\"ở\":\"o\",\"Ỡ\":\"O\",\"ỡ\":\"o\",\"Ợ\":\"O\",\"ợ\":\"o\",\"Ụ\":\"U\",\"ụ\":\"u\",\"Ủ\":\"U\",\"ủ\":\"u\",\"Ứ\":\"U\",\"ứ\":\"u\",\"Ừ\":\"U\",\"ừ\":\"u\",\"Ử\":\"U\",\"ử\":\"u\",\"Ữ\":\"U\",\"ữ\":\"u\",\"Ự\":\"U\",\"ự\":\"u\",\"Ỳ\":\"Y\",\"ỳ\":\"y\",\"Ỵ\":\"Y\",\"ỵ\":\"y\",\"Ỷ\":\"Y\",\"ỷ\":\"y\",\"Ỹ\":\"Y\",\"ỹ\":\"y\",\"–\":\"-\",\"‘\":\"\\'\",\"’\":\"\\'\",\"“\":\"\\\\\\\"\",\"”\":\"\\\\\\\"\",\"„\":\"\\\\\\\"\",\"†\":\"+\",\"•\":\"*\",\"…\":\"...\",\"₠\":\"ecu\",\"₢\":\"cruzeiro\",\"₣\":\"french franc\",\"₤\":\"lira\",\"₥\":\"mill\",\"₦\":\"naira\",\"₧\":\"peseta\",\"₨\":\"rupee\",\"₩\":\"won\",\"₪\":\"new shequel\",\"₫\":\"dong\",\"€\":\"euro\",\"₭\":\"kip\",\"₮\":\"tugrik\",\"₯\":\"drachma\",\"₰\":\"penny\",\"₱\":\"peso\",\"₲\":\"guarani\",\"₳\":\"austral\",\"₴\":\"hryvnia\",\"₵\":\"cedi\",\"₸\":\"kazakhstani tenge\",\"₹\":\"indian rupee\",\"₺\":\"turkish lira\",\"₽\":\"russian ruble\",\"₿\":\"bitcoin\",\"℠\":\"sm\",\"™\":\"tm\",\"∂\":\"d\",\"∆\":\"delta\",\"∑\":\"sum\",\"∞\":\"infinity\",\"♥\":\"love\",\"元\":\"yuan\",\"円\":\"yen\",\"﷼\":\"rial\",\"ﻵ\":\"laa\",\"ﻷ\":\"laa\",\"ﻹ\":\"lai\",\"ﻻ\":\"la\"}');\n var locales = JSON.parse('{\"bg\":{\"Й\":\"Y\",\"Ц\":\"Ts\",\"Щ\":\"Sht\",\"Ъ\":\"A\",\"Ь\":\"Y\",\"й\":\"y\",\"ц\":\"ts\",\"щ\":\"sht\",\"ъ\":\"a\",\"ь\":\"y\"},\"de\":{\"Ä\":\"AE\",\"ä\":\"ae\",\"Ö\":\"OE\",\"ö\":\"oe\",\"Ü\":\"UE\",\"ü\":\"ue\",\"ß\":\"ss\",\"%\":\"prozent\",\"&\":\"und\",\"|\":\"oder\",\"∑\":\"summe\",\"∞\":\"unendlich\",\"♥\":\"liebe\"},\"es\":{\"%\":\"por ciento\",\"&\":\"y\",\"<\":\"menor que\",\">\":\"mayor que\",\"|\":\"o\",\"¢\":\"centavos\",\"£\":\"libras\",\"¤\":\"moneda\",\"₣\":\"francos\",\"∑\":\"suma\",\"∞\":\"infinito\",\"♥\":\"amor\"},\"fr\":{\"%\":\"pourcent\",\"&\":\"et\",\"<\":\"plus petit\",\">\":\"plus grand\",\"|\":\"ou\",\"¢\":\"centime\",\"£\":\"livre\",\"¤\":\"devise\",\"₣\":\"franc\",\"∑\":\"somme\",\"∞\":\"infini\",\"♥\":\"amour\"},\"pt\":{\"%\":\"porcento\",\"&\":\"e\",\"<\":\"menor\",\">\":\"maior\",\"|\":\"ou\",\"¢\":\"centavo\",\"∑\":\"soma\",\"£\":\"libra\",\"∞\":\"infinito\",\"♥\":\"amor\"},\"uk\":{\"И\":\"Y\",\"и\":\"y\",\"Й\":\"Y\",\"й\":\"y\",\"Ц\":\"Ts\",\"ц\":\"ts\",\"Х\":\"Kh\",\"х\":\"kh\",\"Щ\":\"Shch\",\"щ\":\"shch\",\"Г\":\"H\",\"г\":\"h\"},\"vi\":{\"Đ\":\"D\",\"đ\":\"d\"},\"da\":{\"Ø\":\"OE\",\"ø\":\"oe\",\"Å\":\"AA\",\"å\":\"aa\",\"%\":\"procent\",\"&\":\"og\",\"|\":\"eller\",\"$\":\"dollar\",\"<\":\"mindre end\",\">\":\"større end\"},\"nb\":{\"&\":\"og\",\"Å\":\"AA\",\"Æ\":\"AE\",\"Ø\":\"OE\",\"å\":\"aa\",\"æ\":\"ae\",\"ø\":\"oe\"},\"it\":{\"&\":\"e\"},\"nl\":{\"&\":\"en\"},\"sv\":{\"&\":\"och\",\"Å\":\"AA\",\"Ä\":\"AE\",\"Ö\":\"OE\",\"å\":\"aa\",\"ä\":\"ae\",\"ö\":\"oe\"}}');\n\n function replace(string, options) {\n if (typeof string !== 'string') {\n throw new Error('slugify: string argument expected');\n }\n\n options = typeof options === 'string' ? {\n replacement: options\n } : options || {};\n var locale = locales[options.locale] || {};\n var replacement = options.replacement === undefined ? '-' : options.replacement;\n var trim = options.trim === undefined ? true : options.trim;\n var slug = string.normalize().split('') // replace characters based on charMap\n .reduce(function (result, ch) {\n var appendChar = locale[ch] || charMap[ch] || ch;\n\n if (appendChar === replacement) {\n appendChar = ' ';\n }\n\n return result + appendChar // remove not allowed characters\n .replace(options.remove || /[^\\w\\s$*_+~.()'\"!\\-:@]+/g, '');\n }, '');\n\n if (options.strict) {\n slug = slug.replace(/[^A-Za-z0-9\\s]/g, '');\n }\n\n if (trim) {\n slug = slug.trim();\n } // Replace spaces with replacement character, treating multiple consecutive\n // spaces as a single space.\n\n\n slug = slug.replace(/\\s+/g, replacement);\n\n if (options.lower) {\n slug = slug.toLowerCase();\n }\n\n return slug;\n }\n\n replace.extend = function (customMap) {\n Object.assign(charMap, customMap);\n };\n\n return replace;\n});","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a function');\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw TypeError(String(argument) + ' is not an object');\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar uncurryThis = NATIVE_BIND && bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? function (fn) {\n return fn && uncurryThis(fn);\n} : function (fn) {\n return fn && function () {\n return call.apply(fn, arguments);\n };\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var aCallable = require('../internals/a-callable');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return func == null ? undefined : aCallable(func);\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","module.exports = {};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar Object = global.Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : Object(it);\n} : Object;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n set = function (it, metadata) {\n if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget(store, it) || {};\n };\n has = function (it) {\n return wmhas(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","module.exports = false;\n","var global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Object = global.Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, Object(it));\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\n","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar TypeError = global.TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar TypeError = global.TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var name = options && options.name !== undefined ? options.name : key;\n var state;\n if (isCallable(value)) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n createNonEnumerableProperty(value, 'name', name);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n});\n","var global = require('../internals/global');\n\nvar TypeError = global.TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.21.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.21.1/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- safe\n return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var global = require('../internals/global');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar Object = global.Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TypeError = global.TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var global = require('../internals/global');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n try {\n return String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\n\n// `globalThis` object\n// https://tc39.es/ecma262/#sec-globalthis\n$({ global: true }, {\n globalThis: global\n});\n","// TODO: Remove from `core-js@4`\nrequire('../modules/es.global-this');\n","import useRgd from './useRgd';\n\nexport default function useRepoLink() {\n const { type, owner, repo, issues_owner, issues_repo, dis_owner, dis_repo, cname } = useRgd();\n\n let repoLink, repoType, dataRepo, repoTxt;\n const siteRepo = `https://github.com/${owner}/${repo}`;\n let rssLink = '/feed.xml';\n\n switch (type) {\n case 'issues': {\n dataRepo = `https://github.com/${issues_owner}/${issues_repo}`;\n repoLink = `${dataRepo}/issues`;\n repoType = 'issues';\n repoTxt = `${issues_owner}/${issues_repo}`;\n break;\n }\n case 'discussions2': {\n dataRepo = `https://github.com/${dis_owner}/${dis_repo}`;\n repoLink = `${dataRepo}/discussions`;\n repoType = 'discussions';\n repoTxt = `${dis_owner}/${dis_repo}`;\n break;\n }\n default: {\n dataRepo = siteRepo;\n repoLink = `${dataRepo}/discussions`;\n repoType = 'discussions';\n repoTxt = `${owner}/${repo}`;\n }\n }\n\n if (!/\\.github\\.io$/.test(repo) && !cname) {\n rssLink = `/${repo}/feed.xml`;\n }\n\n return { repoLink, repoType, dataRepo, siteRepo, rssLink, repoTxt }\n}\n","import { useStaticQuery, graphql } from 'gatsby';\n\nexport default function useRgd() {\n const data = useStaticQuery(graphql`\n {\n file(base: { eq: \"rgd.json\" }) {\n childrenDiscussionsJson {\n type\n owner\n repo\n cname\n issues_owner\n issues_repo\n dis_owner\n dis_repo\n website {\n title\n description\n home\n home_layout\n label_category\n label_level\n built_date\n }\n }\n }\n }\n `);\n let _data = data?.file?.childrenDiscussionsJson?.[0] || {};\n\n if (!_data.owner) _data.owner = 'lencx';\n if (!_data.repo) _data.owner = 'gg';\n return _data;\n}\n","import t, { Component as e } from \"react\";\nimport r from \"prop-types\";\nimport n from \"react-fast-compare\";\nimport i from \"invariant\";\nimport o from \"shallowequal\";\n\nfunction a() {\n return a = Object.assign || function (t) {\n for (var e = 1; e < arguments.length; e++) {\n var r = arguments[e];\n\n for (var n in r) {\n Object.prototype.hasOwnProperty.call(r, n) && (t[n] = r[n]);\n }\n }\n\n return t;\n }, a.apply(this, arguments);\n}\n\nfunction s(t, e) {\n t.prototype = Object.create(e.prototype), t.prototype.constructor = t, c(t, e);\n}\n\nfunction c(t, e) {\n return c = Object.setPrototypeOf || function (t, e) {\n return t.__proto__ = e, t;\n }, c(t, e);\n}\n\nfunction u(t, e) {\n if (null == t) return {};\n var r,\n n,\n i = {},\n o = Object.keys(t);\n\n for (n = 0; n < o.length; n++) {\n e.indexOf(r = o[n]) >= 0 || (i[r] = t[r]);\n }\n\n return i;\n}\n\nvar l = {\n BASE: \"base\",\n BODY: \"body\",\n HEAD: \"head\",\n HTML: \"html\",\n LINK: \"link\",\n META: \"meta\",\n NOSCRIPT: \"noscript\",\n SCRIPT: \"script\",\n STYLE: \"style\",\n TITLE: \"title\",\n FRAGMENT: \"Symbol(react.fragment)\"\n},\n p = {\n rel: [\"amphtml\", \"canonical\", \"alternate\"]\n},\n f = {\n type: [\"application/ld+json\"]\n},\n d = {\n charset: \"\",\n name: [\"robots\", \"description\"],\n property: [\"og:type\", \"og:title\", \"og:url\", \"og:image\", \"og:image:alt\", \"og:description\", \"twitter:url\", \"twitter:title\", \"twitter:description\", \"twitter:image\", \"twitter:image:alt\", \"twitter:card\", \"twitter:site\"]\n},\n h = Object.keys(l).map(function (t) {\n return l[t];\n}),\n m = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n},\n y = Object.keys(m).reduce(function (t, e) {\n return t[m[e]] = e, t;\n}, {}),\n T = function T(t, e) {\n for (var r = t.length - 1; r >= 0; r -= 1) {\n var n = t[r];\n if (Object.prototype.hasOwnProperty.call(n, e)) return n[e];\n }\n\n return null;\n},\n g = function g(t) {\n var e = T(t, l.TITLE),\n r = T(t, \"titleTemplate\");\n if (Array.isArray(e) && (e = e.join(\"\")), r && e) return r.replace(/%s/g, function () {\n return e;\n });\n var n = T(t, \"defaultTitle\");\n return e || n || void 0;\n},\n b = function b(t) {\n return T(t, \"onChangeClientState\") || function () {};\n},\n v = function v(t, e) {\n return e.filter(function (e) {\n return void 0 !== e[t];\n }).map(function (e) {\n return e[t];\n }).reduce(function (t, e) {\n return a({}, t, e);\n }, {});\n},\n A = function A(t, e) {\n return e.filter(function (t) {\n return void 0 !== t[l.BASE];\n }).map(function (t) {\n return t[l.BASE];\n }).reverse().reduce(function (e, r) {\n if (!e.length) for (var n = Object.keys(r), i = 0; i < n.length; i += 1) {\n var o = n[i].toLowerCase();\n if (-1 !== t.indexOf(o) && r[o]) return e.concat(r);\n }\n return e;\n }, []);\n},\n C = function C(t, e, r) {\n var n = {};\n return r.filter(function (e) {\n return !!Array.isArray(e[t]) || (void 0 !== e[t] && console && \"function\" == typeof console.warn && console.warn(\"Helmet: \" + t + ' should be of type \"Array\". Instead found type \"' + typeof e[t] + '\"'), !1);\n }).map(function (e) {\n return e[t];\n }).reverse().reduce(function (t, r) {\n var i = {};\n r.filter(function (t) {\n for (var r, o = Object.keys(t), a = 0; a < o.length; a += 1) {\n var s = o[a],\n c = s.toLowerCase();\n -1 === e.indexOf(c) || \"rel\" === r && \"canonical\" === t[r].toLowerCase() || \"rel\" === c && \"stylesheet\" === t[c].toLowerCase() || (r = c), -1 === e.indexOf(s) || \"innerHTML\" !== s && \"cssText\" !== s && \"itemprop\" !== s || (r = s);\n }\n\n if (!r || !t[r]) return !1;\n var u = t[r].toLowerCase();\n return n[r] || (n[r] = {}), i[r] || (i[r] = {}), !n[r][u] && (i[r][u] = !0, !0);\n }).reverse().forEach(function (e) {\n return t.push(e);\n });\n\n for (var o = Object.keys(i), s = 0; s < o.length; s += 1) {\n var c = o[s],\n u = a({}, n[c], i[c]);\n n[c] = u;\n }\n\n return t;\n }, []).reverse();\n},\n O = function O(t, e) {\n if (Array.isArray(t) && t.length) for (var r = 0; r < t.length; r += 1) {\n if (t[r][e]) return !0;\n }\n return !1;\n},\n S = function S(t) {\n return Array.isArray(t) ? t.join(\"\") : t;\n},\n E = function E(t, e) {\n return Array.isArray(t) ? t.reduce(function (t, r) {\n return function (t, e) {\n for (var r = Object.keys(t), n = 0; n < r.length; n += 1) {\n if (e[r[n]] && e[r[n]].includes(t[r[n]])) return !0;\n }\n\n return !1;\n }(r, e) ? t.priority.push(r) : t.default.push(r), t;\n }, {\n priority: [],\n default: []\n }) : {\n default: t\n };\n},\n I = function I(t, e) {\n var r;\n return a({}, t, ((r = {})[e] = void 0, r));\n},\n P = [l.NOSCRIPT, l.SCRIPT, l.STYLE],\n w = function w(t, e) {\n return void 0 === e && (e = !0), !1 === e ? String(t) : String(t).replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n},\n x = function x(t) {\n return Object.keys(t).reduce(function (e, r) {\n var n = void 0 !== t[r] ? r + '=\"' + t[r] + '\"' : \"\" + r;\n return e ? e + \" \" + n : n;\n }, \"\");\n},\n L = function L(t, e) {\n return void 0 === e && (e = {}), Object.keys(t).reduce(function (e, r) {\n return e[m[r] || r] = t[r], e;\n }, e);\n},\n j = function j(e, r) {\n return r.map(function (r, n) {\n var i,\n o = ((i = {\n key: n\n })[\"data-rh\"] = !0, i);\n return Object.keys(r).forEach(function (t) {\n var e = m[t] || t;\n \"innerHTML\" === e || \"cssText\" === e ? o.dangerouslySetInnerHTML = {\n __html: r.innerHTML || r.cssText\n } : o[e] = r[t];\n }), t.createElement(e, o);\n });\n},\n M = function M(e, r, n) {\n switch (e) {\n case l.TITLE:\n return {\n toComponent: function toComponent() {\n return n = r.titleAttributes, (i = {\n key: e = r.title\n })[\"data-rh\"] = !0, o = L(n, i), [t.createElement(l.TITLE, o, e)];\n var e, n, i, o;\n },\n toString: function toString() {\n return function (t, e, r, n) {\n var i = x(r),\n o = S(e);\n return i ? \"<\" + t + ' data-rh=\"true\" ' + i + \">\" + w(o, n) + \"\" : \"<\" + t + ' data-rh=\"true\">' + w(o, n) + \"\";\n }(e, r.title, r.titleAttributes, n);\n }\n };\n\n case \"bodyAttributes\":\n case \"htmlAttributes\":\n return {\n toComponent: function toComponent() {\n return L(r);\n },\n toString: function toString() {\n return x(r);\n }\n };\n\n default:\n return {\n toComponent: function toComponent() {\n return j(e, r);\n },\n toString: function toString() {\n return function (t, e, r) {\n return e.reduce(function (e, n) {\n var i = Object.keys(n).filter(function (t) {\n return !(\"innerHTML\" === t || \"cssText\" === t);\n }).reduce(function (t, e) {\n var i = void 0 === n[e] ? e : e + '=\"' + w(n[e], r) + '\"';\n return t ? t + \" \" + i : i;\n }, \"\"),\n o = n.innerHTML || n.cssText || \"\",\n a = -1 === P.indexOf(t);\n return e + \"<\" + t + ' data-rh=\"true\" ' + i + (a ? \"/>\" : \">\" + o + \"\");\n }, \"\");\n }(e, r, n);\n }\n };\n }\n},\n k = function k(t) {\n var e = t.baseTag,\n r = t.bodyAttributes,\n n = t.encode,\n i = t.htmlAttributes,\n o = t.noscriptTags,\n a = t.styleTags,\n s = t.title,\n c = void 0 === s ? \"\" : s,\n u = t.titleAttributes,\n h = t.linkTags,\n m = t.metaTags,\n y = t.scriptTags,\n T = {\n toComponent: function toComponent() {},\n toString: function toString() {\n return \"\";\n }\n };\n\n if (t.prioritizeSeoTags) {\n var g = function (t) {\n var e = t.linkTags,\n r = t.scriptTags,\n n = t.encode,\n i = E(t.metaTags, d),\n o = E(e, p),\n a = E(r, f);\n return {\n priorityMethods: {\n toComponent: function toComponent() {\n return [].concat(j(l.META, i.priority), j(l.LINK, o.priority), j(l.SCRIPT, a.priority));\n },\n toString: function toString() {\n return M(l.META, i.priority, n) + \" \" + M(l.LINK, o.priority, n) + \" \" + M(l.SCRIPT, a.priority, n);\n }\n },\n metaTags: i.default,\n linkTags: o.default,\n scriptTags: a.default\n };\n }(t);\n\n T = g.priorityMethods, h = g.linkTags, m = g.metaTags, y = g.scriptTags;\n }\n\n return {\n priority: T,\n base: M(l.BASE, e, n),\n bodyAttributes: M(\"bodyAttributes\", r, n),\n htmlAttributes: M(\"htmlAttributes\", i, n),\n link: M(l.LINK, h, n),\n meta: M(l.META, m, n),\n noscript: M(l.NOSCRIPT, o, n),\n script: M(l.SCRIPT, y, n),\n style: M(l.STYLE, a, n),\n title: M(l.TITLE, {\n title: c,\n titleAttributes: u\n }, n)\n };\n},\n H = [],\n N = function N(t, e) {\n var r = this;\n void 0 === e && (e = \"undefined\" != typeof document), this.instances = [], this.value = {\n setHelmet: function setHelmet(t) {\n r.context.helmet = t;\n },\n helmetInstances: {\n get: function get() {\n return r.canUseDOM ? H : r.instances;\n },\n add: function add(t) {\n (r.canUseDOM ? H : r.instances).push(t);\n },\n remove: function remove(t) {\n var e = (r.canUseDOM ? H : r.instances).indexOf(t);\n (r.canUseDOM ? H : r.instances).splice(e, 1);\n }\n }\n }, this.context = t, this.canUseDOM = e, e || (t.helmet = k({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: !0,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n }));\n},\n R = t.createContext({}),\n D = r.shape({\n setHelmet: r.func,\n helmetInstances: r.shape({\n get: r.func,\n add: r.func,\n remove: r.func\n })\n}),\n U = \"undefined\" != typeof document,\n q = /*#__PURE__*/function (e) {\n function r(t) {\n var n;\n return (n = e.call(this, t) || this).helmetData = new N(n.props.context, r.canUseDOM), n;\n }\n\n return s(r, e), r.prototype.render = function () {\n /*#__PURE__*/\n return t.createElement(R.Provider, {\n value: this.helmetData.value\n }, this.props.children);\n }, r;\n}(e);\n\nq.canUseDOM = U, q.propTypes = {\n context: r.shape({\n helmet: r.shape()\n }),\n children: r.node.isRequired\n}, q.defaultProps = {\n context: {}\n}, q.displayName = \"HelmetProvider\";\n\nvar Y = function Y(t, e) {\n var r,\n n = document.head || document.querySelector(l.HEAD),\n i = n.querySelectorAll(t + \"[data-rh]\"),\n o = [].slice.call(i),\n a = [];\n return e && e.length && e.forEach(function (e) {\n var n = document.createElement(t);\n\n for (var i in e) {\n Object.prototype.hasOwnProperty.call(e, i) && (\"innerHTML\" === i ? n.innerHTML = e.innerHTML : \"cssText\" === i ? n.styleSheet ? n.styleSheet.cssText = e.cssText : n.appendChild(document.createTextNode(e.cssText)) : n.setAttribute(i, void 0 === e[i] ? \"\" : e[i]));\n }\n\n n.setAttribute(\"data-rh\", \"true\"), o.some(function (t, e) {\n return r = e, n.isEqualNode(t);\n }) ? o.splice(r, 1) : a.push(n);\n }), o.forEach(function (t) {\n return t.parentNode.removeChild(t);\n }), a.forEach(function (t) {\n return n.appendChild(t);\n }), {\n oldTags: o,\n newTags: a\n };\n},\n B = function B(t, e) {\n var r = document.getElementsByTagName(t)[0];\n\n if (r) {\n for (var n = r.getAttribute(\"data-rh\"), i = n ? n.split(\",\") : [], o = [].concat(i), a = Object.keys(e), s = 0; s < a.length; s += 1) {\n var c = a[s],\n u = e[c] || \"\";\n r.getAttribute(c) !== u && r.setAttribute(c, u), -1 === i.indexOf(c) && i.push(c);\n var l = o.indexOf(c);\n -1 !== l && o.splice(l, 1);\n }\n\n for (var p = o.length - 1; p >= 0; p -= 1) {\n r.removeAttribute(o[p]);\n }\n\n i.length === o.length ? r.removeAttribute(\"data-rh\") : r.getAttribute(\"data-rh\") !== a.join(\",\") && r.setAttribute(\"data-rh\", a.join(\",\"));\n }\n},\n K = function K(t, e) {\n var r = t.baseTag,\n n = t.htmlAttributes,\n i = t.linkTags,\n o = t.metaTags,\n a = t.noscriptTags,\n s = t.onChangeClientState,\n c = t.scriptTags,\n u = t.styleTags,\n p = t.title,\n f = t.titleAttributes;\n B(l.BODY, t.bodyAttributes), B(l.HTML, n), function (t, e) {\n void 0 !== t && document.title !== t && (document.title = S(t)), B(l.TITLE, e);\n }(p, f);\n var d = {\n baseTag: Y(l.BASE, r),\n linkTags: Y(l.LINK, i),\n metaTags: Y(l.META, o),\n noscriptTags: Y(l.NOSCRIPT, a),\n scriptTags: Y(l.SCRIPT, c),\n styleTags: Y(l.STYLE, u)\n },\n h = {},\n m = {};\n Object.keys(d).forEach(function (t) {\n var e = d[t],\n r = e.newTags,\n n = e.oldTags;\n r.length && (h[t] = r), n.length && (m[t] = d[t].oldTags);\n }), e && e(), s(t, h, m);\n},\n _ = null,\n z = /*#__PURE__*/function (t) {\n function e() {\n for (var e, r = arguments.length, n = new Array(r), i = 0; i < r; i++) {\n n[i] = arguments[i];\n }\n\n return (e = t.call.apply(t, [this].concat(n)) || this).rendered = !1, e;\n }\n\n s(e, t);\n var r = e.prototype;\n return r.shouldComponentUpdate = function (t) {\n return !o(t, this.props);\n }, r.componentDidUpdate = function () {\n this.emitChange();\n }, r.componentWillUnmount = function () {\n this.props.context.helmetInstances.remove(this), this.emitChange();\n }, r.emitChange = function () {\n var t,\n e,\n r = this.props.context,\n n = r.setHelmet,\n i = null,\n o = (t = r.helmetInstances.get().map(function (t) {\n var e = a({}, t.props);\n return delete e.context, e;\n }), {\n baseTag: A([\"href\"], t),\n bodyAttributes: v(\"bodyAttributes\", t),\n defer: T(t, \"defer\"),\n encode: T(t, \"encodeSpecialCharacters\"),\n htmlAttributes: v(\"htmlAttributes\", t),\n linkTags: C(l.LINK, [\"rel\", \"href\"], t),\n metaTags: C(l.META, [\"name\", \"charset\", \"http-equiv\", \"property\", \"itemprop\"], t),\n noscriptTags: C(l.NOSCRIPT, [\"innerHTML\"], t),\n onChangeClientState: b(t),\n scriptTags: C(l.SCRIPT, [\"src\", \"innerHTML\"], t),\n styleTags: C(l.STYLE, [\"cssText\"], t),\n title: g(t),\n titleAttributes: v(\"titleAttributes\", t),\n prioritizeSeoTags: O(t, \"prioritizeSeoTags\")\n });\n q.canUseDOM ? (e = o, _ && cancelAnimationFrame(_), e.defer ? _ = requestAnimationFrame(function () {\n K(e, function () {\n _ = null;\n });\n }) : (K(e), _ = null)) : k && (i = k(o)), n(i);\n }, r.init = function () {\n this.rendered || (this.rendered = !0, this.props.context.helmetInstances.add(this), this.emitChange());\n }, r.render = function () {\n return this.init(), null;\n }, e;\n}(e);\n\nz.propTypes = {\n context: D.isRequired\n}, z.displayName = \"HelmetDispatcher\";\n\nvar F = [\"children\"],\n G = [\"children\"],\n W = /*#__PURE__*/function (e) {\n function r() {\n return e.apply(this, arguments) || this;\n }\n\n s(r, e);\n var o = r.prototype;\n return o.shouldComponentUpdate = function (t) {\n return !n(I(this.props, \"helmetData\"), I(t, \"helmetData\"));\n }, o.mapNestedChildrenToProps = function (t, e) {\n if (!e) return null;\n\n switch (t.type) {\n case l.SCRIPT:\n case l.NOSCRIPT:\n return {\n innerHTML: e\n };\n\n case l.STYLE:\n return {\n cssText: e\n };\n\n default:\n throw new Error(\"<\" + t.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n }\n }, o.flattenArrayTypeChildren = function (t) {\n var e,\n r = t.child,\n n = t.arrayTypeChildren;\n return a({}, n, ((e = {})[r.type] = [].concat(n[r.type] || [], [a({}, t.newChildProps, this.mapNestedChildrenToProps(r, t.nestedChildren))]), e));\n }, o.mapObjectTypeChildren = function (t) {\n var e,\n r,\n n = t.child,\n i = t.newProps,\n o = t.newChildProps,\n s = t.nestedChildren;\n\n switch (n.type) {\n case l.TITLE:\n return a({}, i, ((e = {})[n.type] = s, e.titleAttributes = a({}, o), e));\n\n case l.BODY:\n return a({}, i, {\n bodyAttributes: a({}, o)\n });\n\n case l.HTML:\n return a({}, i, {\n htmlAttributes: a({}, o)\n });\n\n default:\n return a({}, i, ((r = {})[n.type] = a({}, o), r));\n }\n }, o.mapArrayTypeChildrenToProps = function (t, e) {\n var r = a({}, e);\n return Object.keys(t).forEach(function (e) {\n var n;\n r = a({}, r, ((n = {})[e] = t[e], n));\n }), r;\n }, o.warnOnInvalidChildren = function (t, e) {\n return i(h.some(function (e) {\n return t.type === e;\n }), \"function\" == typeof t.type ? \"You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.\" : \"Only elements types \" + h.join(\", \") + \" are allowed. Helmet does not support rendering <\" + t.type + \"> elements. Refer to our API for more information.\"), i(!e || \"string\" == typeof e || Array.isArray(e) && !e.some(function (t) {\n return \"string\" != typeof t;\n }), \"Helmet expects a string as a child of <\" + t.type + \">. Did you forget to wrap your children in braces? ( <\" + t.type + \">{``} ) Refer to our API for more information.\"), !0;\n }, o.mapChildrenToProps = function (e, r) {\n var n = this,\n i = {};\n return t.Children.forEach(e, function (t) {\n if (t && t.props) {\n var e = t.props,\n o = e.children,\n a = u(e, F),\n s = Object.keys(a).reduce(function (t, e) {\n return t[y[e] || e] = a[e], t;\n }, {}),\n c = t.type;\n\n switch (\"symbol\" == typeof c ? c = c.toString() : n.warnOnInvalidChildren(t, o), c) {\n case l.FRAGMENT:\n r = n.mapChildrenToProps(o, r);\n break;\n\n case l.LINK:\n case l.META:\n case l.NOSCRIPT:\n case l.SCRIPT:\n case l.STYLE:\n i = n.flattenArrayTypeChildren({\n child: t,\n arrayTypeChildren: i,\n newChildProps: s,\n nestedChildren: o\n });\n break;\n\n default:\n r = n.mapObjectTypeChildren({\n child: t,\n newProps: r,\n newChildProps: s,\n nestedChildren: o\n });\n }\n }\n }), this.mapArrayTypeChildrenToProps(i, r);\n }, o.render = function () {\n var e = this.props,\n r = e.children,\n n = u(e, G),\n i = a({}, n),\n o = n.helmetData;\n return r && (i = this.mapChildrenToProps(r, i)), !o || o instanceof N || (o = new N(o.context, o.instances)), o ? /*#__PURE__*/t.createElement(z, a({}, i, {\n context: o.value,\n helmetData: void 0\n })) : /*#__PURE__*/t.createElement(R.Consumer, null, function (e) {\n /*#__PURE__*/\n return t.createElement(z, a({}, i, {\n context: e\n }));\n });\n }, r;\n}(e);\n\nW.propTypes = {\n base: r.object,\n bodyAttributes: r.object,\n children: r.oneOfType([r.arrayOf(r.node), r.node]),\n defaultTitle: r.string,\n defer: r.bool,\n encodeSpecialCharacters: r.bool,\n htmlAttributes: r.object,\n link: r.arrayOf(r.object),\n meta: r.arrayOf(r.object),\n noscript: r.arrayOf(r.object),\n onChangeClientState: r.func,\n script: r.arrayOf(r.object),\n style: r.arrayOf(r.object),\n title: r.string,\n titleAttributes: r.object,\n titleTemplate: r.string,\n prioritizeSeoTags: r.bool,\n helmetData: r.object\n}, W.defaultProps = {\n defer: !0,\n encodeSpecialCharacters: !0,\n prioritizeSeoTags: !1\n}, W.displayName = \"Helmet\";\nexport { W as Helmet, N as HelmetData, q as HelmetProvider };","import React, { FC } from 'react';\n\nimport './index.scss';\n\ninterface LogoProps {\n color?: string;\n onClick?: () => void;\n}\n\nconst Logo: FC = ({ color, onClick }) => {\n return (\n \n \n \n \n \n \n \n \n );\n};\n\nLogo.defaultProps = {\n color: '#24292f',\n onClick: () => {},\n};\n\nexport default Logo;\n","function _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n} // Older browsers don't support event options, feature detect it.\n// Adopted and modified solution from Bohdan Didukh (2017)\n// https://stackoverflow.com/questions/41594997/ios-10-safari-prevent-scrolling-behind-a-fixed-overlay-and-maintain-scroll-posi\n\n\nvar hasPassiveEvents = false;\n\nif (typeof window !== 'undefined') {\n var passiveTestOptions = {\n get passive() {\n hasPassiveEvents = true;\n return undefined;\n }\n\n };\n window.addEventListener('testPassive', null, passiveTestOptions);\n window.removeEventListener('testPassive', null, passiveTestOptions);\n}\n\nvar isIosDevice = typeof window !== 'undefined' && window.navigator && window.navigator.platform && (/iP(ad|hone|od)/.test(window.navigator.platform) || window.navigator.platform === 'MacIntel' && window.navigator.maxTouchPoints > 1);\nvar locks = [];\nvar documentListenerAdded = false;\nvar initialClientY = -1;\nvar previousBodyOverflowSetting = void 0;\nvar previousBodyPosition = void 0;\nvar previousBodyPaddingRight = void 0; // returns true if `el` should be allowed to receive touchmove events.\n\nvar allowTouchMove = function allowTouchMove(el) {\n return locks.some(function (lock) {\n if (lock.options.allowTouchMove && lock.options.allowTouchMove(el)) {\n return true;\n }\n\n return false;\n });\n};\n\nvar preventDefault = function preventDefault(rawEvent) {\n var e = rawEvent || window.event; // For the case whereby consumers adds a touchmove event listener to document.\n // Recall that we do document.addEventListener('touchmove', preventDefault, { passive: false })\n // in disableBodyScroll - so if we provide this opportunity to allowTouchMove, then\n // the touchmove event on document will break.\n\n if (allowTouchMove(e.target)) {\n return true;\n } // Do not prevent if the event has more than one touch (usually meaning this is a multi touch gesture like pinch to zoom).\n\n\n if (e.touches.length > 1) return true;\n if (e.preventDefault) e.preventDefault();\n return false;\n};\n\nvar setOverflowHidden = function setOverflowHidden(options) {\n // If previousBodyPaddingRight is already set, don't set it again.\n if (previousBodyPaddingRight === undefined) {\n var _reserveScrollBarGap = !!options && options.reserveScrollBarGap === true;\n\n var scrollBarGap = window.innerWidth - document.documentElement.clientWidth;\n\n if (_reserveScrollBarGap && scrollBarGap > 0) {\n var computedBodyPaddingRight = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right'), 10);\n previousBodyPaddingRight = document.body.style.paddingRight;\n document.body.style.paddingRight = computedBodyPaddingRight + scrollBarGap + 'px';\n }\n } // If previousBodyOverflowSetting is already set, don't set it again.\n\n\n if (previousBodyOverflowSetting === undefined) {\n previousBodyOverflowSetting = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n }\n};\n\nvar restoreOverflowSetting = function restoreOverflowSetting() {\n if (previousBodyPaddingRight !== undefined) {\n document.body.style.paddingRight = previousBodyPaddingRight; // Restore previousBodyPaddingRight to undefined so setOverflowHidden knows it\n // can be set again.\n\n previousBodyPaddingRight = undefined;\n }\n\n if (previousBodyOverflowSetting !== undefined) {\n document.body.style.overflow = previousBodyOverflowSetting; // Restore previousBodyOverflowSetting to undefined\n // so setOverflowHidden knows it can be set again.\n\n previousBodyOverflowSetting = undefined;\n }\n};\n\nvar setPositionFixed = function setPositionFixed() {\n return window.requestAnimationFrame(function () {\n // If previousBodyPosition is already set, don't set it again.\n if (previousBodyPosition === undefined) {\n previousBodyPosition = {\n position: document.body.style.position,\n top: document.body.style.top,\n left: document.body.style.left\n }; // Update the dom inside an animation frame \n\n var _window = window,\n scrollY = _window.scrollY,\n scrollX = _window.scrollX,\n innerHeight = _window.innerHeight;\n document.body.style.position = 'fixed';\n document.body.style.top = -scrollY;\n document.body.style.left = -scrollX;\n setTimeout(function () {\n return window.requestAnimationFrame(function () {\n // Attempt to check if the bottom bar appeared due to the position change\n var bottomBarHeight = innerHeight - window.innerHeight;\n\n if (bottomBarHeight && scrollY >= innerHeight) {\n // Move the content further up so that the bottom bar doesn't hide it\n document.body.style.top = -(scrollY + bottomBarHeight);\n }\n });\n }, 300);\n }\n });\n};\n\nvar restorePositionSetting = function restorePositionSetting() {\n if (previousBodyPosition !== undefined) {\n // Convert the position from \"px\" to Int\n var y = -parseInt(document.body.style.top, 10);\n var x = -parseInt(document.body.style.left, 10); // Restore styles\n\n document.body.style.position = previousBodyPosition.position;\n document.body.style.top = previousBodyPosition.top;\n document.body.style.left = previousBodyPosition.left; // Restore scroll\n\n window.scrollTo(x, y);\n previousBodyPosition = undefined;\n }\n}; // https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight#Problems_and_solutions\n\n\nvar isTargetElementTotallyScrolled = function isTargetElementTotallyScrolled(targetElement) {\n return targetElement ? targetElement.scrollHeight - targetElement.scrollTop <= targetElement.clientHeight : false;\n};\n\nvar handleScroll = function handleScroll(event, targetElement) {\n var clientY = event.targetTouches[0].clientY - initialClientY;\n\n if (allowTouchMove(event.target)) {\n return false;\n }\n\n if (targetElement && targetElement.scrollTop === 0 && clientY > 0) {\n // element is at the top of its scroll.\n return preventDefault(event);\n }\n\n if (isTargetElementTotallyScrolled(targetElement) && clientY < 0) {\n // element is at the bottom of its scroll.\n return preventDefault(event);\n }\n\n event.stopPropagation();\n return true;\n};\n\nexport var disableBodyScroll = function disableBodyScroll(targetElement, options) {\n // targetElement must be provided\n if (!targetElement) {\n // eslint-disable-next-line no-console\n console.error('disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.');\n return;\n } // disableBodyScroll must not have been called on this targetElement before\n\n\n if (locks.some(function (lock) {\n return lock.targetElement === targetElement;\n })) {\n return;\n }\n\n var lock = {\n targetElement: targetElement,\n options: options || {}\n };\n locks = [].concat(_toConsumableArray(locks), [lock]);\n\n if (isIosDevice) {\n setPositionFixed();\n } else {\n setOverflowHidden(options);\n }\n\n if (isIosDevice) {\n targetElement.ontouchstart = function (event) {\n if (event.targetTouches.length === 1) {\n // detect single touch.\n initialClientY = event.targetTouches[0].clientY;\n }\n };\n\n targetElement.ontouchmove = function (event) {\n if (event.targetTouches.length === 1) {\n // detect single touch.\n handleScroll(event, targetElement);\n }\n };\n\n if (!documentListenerAdded) {\n document.addEventListener('touchmove', preventDefault, hasPassiveEvents ? {\n passive: false\n } : undefined);\n documentListenerAdded = true;\n }\n }\n};\nexport var clearAllBodyScrollLocks = function clearAllBodyScrollLocks() {\n if (isIosDevice) {\n // Clear all locks ontouchstart/ontouchmove handlers, and the references.\n locks.forEach(function (lock) {\n lock.targetElement.ontouchstart = null;\n lock.targetElement.ontouchmove = null;\n });\n\n if (documentListenerAdded) {\n document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? {\n passive: false\n } : undefined);\n documentListenerAdded = false;\n } // Reset initial clientY.\n\n\n initialClientY = -1;\n }\n\n if (isIosDevice) {\n restorePositionSetting();\n } else {\n restoreOverflowSetting();\n }\n\n locks = [];\n};\nexport var enableBodyScroll = function enableBodyScroll(targetElement) {\n if (!targetElement) {\n // eslint-disable-next-line no-console\n console.error('enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.');\n return;\n }\n\n locks = locks.filter(function (lock) {\n return lock.targetElement !== targetElement;\n });\n\n if (isIosDevice) {\n targetElement.ontouchstart = null;\n targetElement.ontouchmove = null;\n\n if (documentListenerAdded && locks.length === 0) {\n document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? {\n passive: false\n } : undefined);\n documentListenerAdded = false;\n }\n }\n\n if (isIosDevice) {\n restorePositionSetting();\n } else {\n restoreOverflowSetting();\n }\n};","import React, { FC } from 'react';\nimport clsx from 'clsx';\n\ninterface NavIconProps {\n isActive: boolean;\n onClick?: () => void;\n}\n\nconst NavIcon: FC = ({ isActive, onClick }) => {\n return (\n \n \n \n \n \n );\n};\n\nexport default NavIcon;\n","var data = {\n \"body\": \"\",\n \"width\": 24,\n \"height\": 24\n};\nexport default data;","var data = {\n \"body\": \"\",\n \"width\": 24,\n \"height\": 24\n};\nexport default data;","var data = {\n \"body\": \"\",\n \"width\": 24,\n \"height\": 24\n};\nexport default data;","var data = {\n \"body\": \"\",\n \"width\": 24,\n \"height\": 24\n};\nexport default data;","var data = {\n \"body\": \"\",\n \"width\": 24,\n \"height\": 24\n};\nexport default data;","import React, { useEffect, useState } from 'react';\nimport { Icon } from '@iconify/react/dist/offline';\nimport iconSun from '@iconify-icons/mdi/wb-sunny';\nimport iconMoon from '@iconify-icons/mdi/moon-and-stars';\n\nimport './index.scss';\n\nconst ThemeSwitch = () => {\n const [theme, setTheme] = useState('');\n const [isDark, setDark] = useState(false);\n const win: any = typeof window !== 'undefined' ? window : {};\n const _isDark = (theme || win.__theme) === 'dark';\n\n const handleChange = () => {\n const _theme = isDark ? 'light' : 'dark';\n setDark(_isDark);\n setTheme(_theme);\n win.__setPreferredTheme(_theme);\n };\n\n useEffect(() => {\n setTheme(win.__theme);\n setDark(_isDark);\n }, [win.__theme]);\n\n return (\n \n );\n};\n\nexport default ThemeSwitch;\n","import React, { FC } from 'react';\nimport clsx from 'clsx';\nimport { navigate } from 'gatsby';\nimport { Icon } from '@iconify/react/dist/offline';\nimport iconGh from '@iconify-icons/mdi/github';\nimport iconRss from '@iconify-icons/mdi/rss';\nimport iconCategory from '@iconify-icons/bxs/category';\nimport iconTags from '@iconify-icons/mdi/tag-multiple';\nimport iconArchive from '@iconify-icons/mdi/archive';\n\nimport useRepoLink from '@hooks/useRepoLink';\nimport ThemeSwitch from '@comps/theme_switch';\nimport { go } from '@utils/tools';\n\ninterface NavScreenProps {\n isHide: boolean;\n}\n\nconst NavScreen: FC = ({ isHide }) => {\n const { repoType, dataRepo, rssLink } = useRepoLink();\n\n return (\n
\n
\n \n
\n \n go(rssLink)}\n />\n go(dataRepo)}\n />\n
\n
\n
\n );\n};\n\nexport default NavScreen;\n","import React, { FC, useEffect, useState } from 'react';\nimport { disableBodyScroll, enableBodyScroll } from 'body-scroll-lock';\n\nimport NavIcon from './NavIcon';\nimport NavScreen from './NavScreen';\nimport './index.scss';\n\ninterface NavProps {}\n\nconst Nav: FC = () => {\n const [isToggle, setToggle] = useState(false);\n\n const handleToggle = () => {\n setToggle(!isToggle);\n\n const body: any = document.querySelector('body');\n\n if (!isToggle) {\n disableBodyScroll(body);\n } else {\n enableBodyScroll(body);\n }\n };\n\n useEffect(() => {\n if (!isToggle) {\n enableBodyScroll(document.querySelector('body') as any);\n }\n }, []);\n\n return (\n
\n \n \n
\n );\n};\n\nexport default Nav;\n","import React, { FC, useEffect, useState } from 'react';\n\nimport { getScrollPosition } from '@utils/tools';\n\nimport './index.scss';\n\nexport interface BackTopProps {\n // visible height\n minHeight?: number;\n}\n\nconst BackTop: FC = ({ minHeight }) => {\n const [isVisible, setVisible] = useState(false);\n\n const handleBackToTop = () => {\n const s = document.documentElement.scrollTop || document.body.scrollTop;\n if (s > 0) {\n window.scrollTo({\n top: 0,\n behavior: 'smooth',\n });\n } else {\n if (!isVisible) {\n setVisible(false);\n }\n }\n };\n\n const visibleBtn = () => {\n if (getScrollPosition().y > (minHeight as number)) {\n if (!isVisible) {\n setVisible(true);\n }\n } else {\n setVisible(false);\n }\n };\n\n useEffect(() => {\n window.addEventListener('scroll', visibleBtn);\n return () => {\n window.removeEventListener('scroll', visibleBtn);\n };\n });\n return (\n \n \n \n \n \n );\n};\n\nBackTop.defaultProps = {\n minHeight: 300,\n};\n\nexport default BackTop;\n","import React from 'react';\nimport clsx from 'clsx';\nimport { navigate } from 'gatsby';\nimport { HelmetProvider, Helmet } from 'react-helmet-async';\n\nimport useRgd from '@hooks/useRgd';\nimport useSite from '@hooks/useSite';\nimport useRepoLink from '@hooks/useRepoLink';\nimport Logo from '@comps/logo';\nimport Nav from '@comps/nav';\nimport BackTop from '@comps/backtop';\nimport { go } from '@utils/tools';\nimport '@styles/layout.scss';\n\ninterface LayoutProps {\n className?: string;\n children: React.ReactNode;\n title?: string;\n}\n\nexport default function Layout(props: LayoutProps) {\n const data = useRgd();\n const siteData = useSite();\n const { dataRepo, repoTxt } = useRepoLink();\n\n return (\n \n \n {props.title || data?.title || data?.website?.title}\n \n \n
\n
\n {!siteData?.userLogo ? (\n navigate(`/`)} color=\"var(--gg-logo)\" />\n ) : (\n navigate(`/`)}\n alt=\"logo\"\n />\n )}\n
\n
\n
{props.children}
\n
\n
\n
\n \n \n \n
\n
\n \n Copyright ©{' '}\n {data?.website?.built_date || new Date().getFullYear()}\n -present\n \n \n {repoTxt}\n \n {'.'}\n
\n \n Powered by\n \n gg\n \n \n
\n
\n \n
\n );\n}\n","import { useStaticQuery, graphql } from 'gatsby';\n\nexport default function useSite() {\n const data = useStaticQuery(graphql`\n {\n site {\n siteMetadata {\n userLogo\n }\n }\n }\n `);\n return data?.site?.siteMetadata || {};\n}\n","import dayjs from 'dayjs';\nimport slugify from 'slugify';\nimport intersection from 'lodash/intersection';\nimport includes from 'lodash/includes';\n\nexport const go = (url: string) => window.open(url, '_blank');\n\nexport const fmtIssues = (num: number, nlen: number) => `#` + `${num}`.padStart(nlen, '0');\n\nexport const fmtDate = (date: Date) => dayjs(date).format('YYYY/MM/DD');\n\nexport const fmtURI = (uri: string, isSlugify: boolean = false) =>\n isSlugify ? slugify(uri, { lower: true, remove: /[*+~.()'\"!:@]/g }) : uri.toLocaleLowerCase().replace(/ /g, '+');\n\nexport const fmtLabelsCategory = (list: any[], category: string[], level: string[]): Record => {\n let re = reLevel(level);\n let obj: any = {};\n list.forEach((i: any) => {\n const key: any = intersection(category, i.labels.map((j: any) => j.name))?.[0];\n\n if (key) {\n if (!obj[key]) obj[key] = { level: [], list: [] };\n\n i.labels.map((j: any) => {\n let _key3 = getLevel(j?.description, level);\n if (re.test(j.description)) {\n if (!includes(obj[key].level, _key3)) {\n obj[key].level.push(_key3);\n }\n }\n j.level = _key3;\n return j;\n });\n const _level: any = [];\n i.labels.forEach((j: any) => {\n if (j.level && !includes(_level, j.level)) _level.push(j.level);\n });\n i.level = _level;\n obj[key].list.push(i);\n }\n });\n\n return obj;\n};\n\nexport const reLevel = (level: string[]): RegExp => new RegExp(`^${level?.map((i: any) => `(${i})`).join('|')}`, 'ig');\n\nexport const getLevel = (txt: string, level: string[]): string => {\n let re = new RegExp(`^(${level?.map(i => `(${i})`).join('|')})`, 'ig');\n return (txt.match(re)?.[0] || '').trim().toLocaleUpperCase();\n}\n\nexport const getScrollPosition = (el: any = window) => ({\n x: el.pageXOffset !== undefined ? el.pageXOffset : el.scrollLeft,\n y: el.pageYOffset !== undefined ? el.pageYOffset : el.scrollTop,\n});\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n arrayMap = require('./_arrayMap'),\n baseUnary = require('./_baseUnary'),\n cacheHas = require('./_cacheHas');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of shared values.\n */\nfunction baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n ? new SetCache(othIndex && array)\n : undefined;\n }\n array = arrays[0];\n\n var index = -1,\n seen = caches[0];\n\n outer:\n while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (!(seen\n ? cacheHas(seen, computed)\n : includes(result, computed, comparator)\n )) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache\n ? cacheHas(cache, computed)\n : includes(arrays[othIndex], computed, comparator))\n ) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseIntersection;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var arrayMap = require('./_arrayMap');\n\n/**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\nfunction baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n}\n\nmodule.exports = baseValues;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var isArrayLikeObject = require('./isArrayLikeObject');\n\n/**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\nfunction castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n}\n\nmodule.exports = castArrayLikeObject;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = strictIndexOf;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseIndexOf = require('./_baseIndexOf'),\n isArrayLike = require('./isArrayLike'),\n isString = require('./isString'),\n toInteger = require('./toInteger'),\n values = require('./values');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\nfunction includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection)\n ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n}\n\nmodule.exports = includes;\n","var arrayMap = require('./_arrayMap'),\n baseIntersection = require('./_baseIntersection'),\n baseRest = require('./_baseRest'),\n castArrayLikeObject = require('./_castArrayLikeObject');\n\n/**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\nvar intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped)\n : [];\n});\n\nmodule.exports = intersection;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var baseValues = require('./_baseValues'),\n keys = require('./keys');\n\n/**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\nfunction values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n}\n\nmodule.exports = values;\n","export default __webpack_public_path__ + \"static/license-83d755bd405fbe51c87dc088baf26299.svg\";","export default __webpack_public_path__ + \"static/logo-15726d569e7ed560c3f7a4402facd2f2.png\";"],"names":["_defineProperty","obj","key","value","Object","defineProperty","enumerable","configurable","writable","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","push","apply","_objectSpread","target","i","arguments","length","source","forEach","getOwnPropertyDescriptors","defineProperties","iconDefaults","freeze","left","top","width","height","rotate","vFlip","hFlip","fullIcon","data","optionalProperties","provider","aliases","not_found","prop","defaults","inline","hAlign","vAlign","slice","separator","flipFromString","custom","flip","split","str","trim","alignmentFromString","align","rotateFromString","defaultValue","undefined","units","replace","cleanup","value2","num","parseInt","isNaN","_num","parseFloat","unitsSplit","unitsTest","calculateSize","size","ratio","precision","Math","ceil","oldParts","newParts","code","shift","isNumber","test","join","preserveAspectRatio","props","result","regex","randomPrefix","Date","now","toString","random","counter","replaceIDs","body","match","prefix","ids","exec","id","newID","escapedID","RegExp","svgDefaults","inlineDefaults","render","icon","ref","defaultProps","customisations","defaults2","item","attr","mergeCustomisations","style","componentProps","color","box","tempValue","transformations","rotation","floor","unshift","attributes","viewBox","iconToSVG","localCounter","_key","dangerouslySetInnerHTML","__html","verticalAlign","storage","create","component","children","Icon","toVal","mix","k","y","Array","isArray","tmp","x","module","exports","t","e","n","r","s","u","a","o","f","h","c","d","$","l","M","name","weekdays","months","m","String","g","z","utcOffset","abs","date","year","month","clone","add","p","w","D","ms","Q","toLowerCase","v","_","S","args","O","locale","$L","utc","$u","$x","$offset","this","parse","prototype","$d","NaN","substring","UTC","init","$y","getFullYear","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","isSame","startOf","endOf","isAfter","isBefore","$g","set","unix","valueOf","getTime","toDate","$locale","weekStart","$set","min","daysInMonth","get","Number","round","subtract","format","invalidDate","substr","meridiem","YY","YYYY","MM","MMM","monthsShort","MMMM","DD","dd","weekdaysMin","ddd","weekdaysShort","dddd","H","HH","hh","A","mm","ss","SSS","Z","getTimezoneOffset","diff","toJSON","toISOString","toUTCString","b","extend","$i","isDayjs","en","Ls","hasElementType","Element","hasMap","Map","hasSet","Set","hasArrayBuffer","ArrayBuffer","isView","equal","constructor","it","entries","next","done","has","flags","hasOwnProperty","call","$$typeof","error","message","console","warn","objA","objB","compare","compareContext","ret","keysA","keysB","bHasOwnProperty","bind","idx","valueA","valueB","factory","charMap","JSON","locales","string","options","Error","replacement","slug","normalize","reduce","ch","appendChar","remove","strict","lower","customMap","assign","global","isCallable","tryToString","TypeError","argument","isObject","toIndexedObject","toAbsoluteIndex","lengthOfArrayLike","createMethod","IS_INCLUDES","$this","el","fromIndex","index","includes","indexOf","uncurryThis","stringSlice","hasOwn","getOwnPropertyDescriptorModule","definePropertyModule","exceptions","DESCRIPTORS","createPropertyDescriptor","bitmap","fails","document","EXISTS","createElement","getBuiltIn","version","userAgent","process","Deno","versions","v8","createNonEnumerableProperty","redefine","setGlobal","copyConstructorProperties","isForced","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","noTargetGet","forced","sham","NATIVE_BIND","Function","FunctionPrototype","getDescriptor","PROPER","CONFIGURABLE","fn","aFunction","namespace","method","aCallable","V","P","func","check","globalThis","window","self","toObject","classof","propertyIsEnumerable","store","functionToString","inspectSource","NATIVE_WEAK_MAP","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","WeakMap","state","wmget","wmhas","wmset","metadata","facade","STATE","enforce","getterFor","TYPE","type","feature","detection","POLYFILL","NATIVE","isPrototypeOf","USE_SYMBOL_AS_UID","$Symbol","toLength","V8_VERSION","symbol","Symbol","IE8_DOM_DEFINE","V8_PROTOTYPE_DEFINE_BUG","anObject","toPropertyKey","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","Attributes","current","propertyIsEnumerableModule","internalObjectKeys","concat","getOwnPropertyNames","names","$propertyIsEnumerable","NASHORN_BUG","input","pref","val","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","InternalStateModule","CONFIGURABLE_FUNCTION_NAME","getInternalState","enforceInternalState","TEMPLATE","unsafe","simple","uid","SHARED","IS_PURE","mode","copyright","license","toIntegerOrInfinity","max","integer","IndexedObject","requireObjectCoercible","number","isSymbol","getMethod","ordinaryToPrimitive","wellKnownSymbol","TO_PRIMITIVE","exoticToPrim","toPrimitive","postfix","NATIVE_SYMBOL","iterator","WellKnownSymbolsStore","symbolFor","createWellKnownSymbol","withoutSetter","description","useRepoLink","repoLink","repoType","dataRepo","repoTxt","useRgd","owner","repo","issues_owner","issues_repo","dis_owner","dis_repo","cname","siteRepo","rssLink","useStaticQuery","_data","file","childrenDiscussionsJson","setPrototypeOf","__proto__","BASE","BODY","HEAD","HTML","LINK","META","NOSCRIPT","SCRIPT","STYLE","TITLE","FRAGMENT","rel","charset","property","map","accesskey","class","contenteditable","contextmenu","itemprop","tabindex","T","reverse","C","E","priority","default","I","L","j","innerHTML","cssText","toComponent","titleAttributes","title","baseTag","bodyAttributes","encode","htmlAttributes","noscriptTags","styleTags","linkTags","metaTags","scriptTags","prioritizeSeoTags","priorityMethods","base","link","meta","noscript","script","N","instances","setHelmet","context","helmet","helmetInstances","canUseDOM","splice","encodeSpecialCharacters","R","U","q","helmetData","Provider","propTypes","displayName","Y","head","querySelector","querySelectorAll","styleSheet","appendChild","createTextNode","setAttribute","some","isEqualNode","parentNode","removeChild","oldTags","newTags","B","getElementsByTagName","getAttribute","removeAttribute","K","onChangeClientState","rendered","shouldComponentUpdate","componentDidUpdate","emitChange","componentWillUnmount","defer","cancelAnimationFrame","requestAnimationFrame","isRequired","F","G","W","mapNestedChildrenToProps","flattenArrayTypeChildren","child","arrayTypeChildren","newChildProps","nestedChildren","mapObjectTypeChildren","newProps","mapArrayTypeChildrenToProps","warnOnInvalidChildren","mapChildrenToProps","Consumer","defaultTitle","titleTemplate","Logo","onClick","React","className","role","tabIndex","xmlns","fill","hasPassiveEvents","passiveTestOptions","passive","addEventListener","removeEventListener","isIosDevice","navigator","platform","maxTouchPoints","locks","documentListenerAdded","initialClientY","previousBodyOverflowSetting","previousBodyPosition","previousBodyPaddingRight","allowTouchMove","lock","preventDefault","rawEvent","event","touches","restoreOverflowSetting","paddingRight","overflow","restorePositionSetting","position","scrollTo","disableBodyScroll","targetElement","arr","arr2","from","_toConsumableArray","_window","scrollY","scrollX","innerHeight","setTimeout","bottomBarHeight","_reserveScrollBarGap","reserveScrollBarGap","scrollBarGap","innerWidth","documentElement","clientWidth","computedBodyPaddingRight","getComputedStyle","getPropertyValue","setOverflowHidden","ontouchstart","targetTouches","clientY","ontouchmove","scrollTop","scrollHeight","clientHeight","isTargetElementTotallyScrolled","stopPropagation","handleScroll","enableBodyScroll","isActive","clsx","active","useState","theme","setTheme","isDark","setDark","win","_isDark","__theme","useEffect","_theme","__setPreferredTheme","iconMoon","iconSun","fontSize","isHide","open","navigate","iconCategory","iconTags","iconArchive","ThemeSwitch","iconRss","go","iconGh","isToggle","setToggle","NavIcon","NavScreen","BackTop","minHeight","isVisible","setVisible","visibleBtn","getScrollPosition","behavior","fillRule","Layout","siteData","site","siteMetadata","useSite","HelmetProvider","Helmet","website","_data$website","content","_data$website2","userLogo","src","require","alt","Nav","href","built_date","url","fmtIssues","nlen","padStart","fmtDate","dayjs","fmtURI","uri","isSlugify","slugify","toLocaleLowerCase","getLevel","txt","level","re","toLocaleUpperCase","pageXOffset","scrollLeft","pageYOffset","hashClear","hashDelete","hashGet","hashHas","hashSet","Hash","clear","entry","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","getNative","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","setCacheAdd","setCacheHas","SetCache","values","__data__","thisArg","baseIndexOf","array","comparator","baseTimes","isArguments","isBuffer","isIndex","isTypedArray","inherited","isArr","isArg","isBuff","isType","skipIndexes","iteratee","eq","predicate","fromRight","getRawTag","objectToString","symToStringTag","toStringTag","baseFindIndex","baseIsNaN","strictIndexOf","arrayIncludes","arrayIncludesWith","arrayMap","baseUnary","cacheHas","nativeMin","arrays","othLength","othIndex","caches","maxLength","Infinity","seen","outer","computed","cache","baseGetTag","isObjectLike","isFunction","isMasked","toSource","reIsHostCtor","funcProto","objectProto","funcToString","reIsNative","isLength","typedArrayTags","isPrototype","nativeKeys","identity","overRest","setToString","start","constant","baseSetToString","trimmedEndIndex","reTrimStart","isArrayLikeObject","coreJsData","freeGlobal","isKeyable","baseIsNative","getValue","nativeObjectToString","isOwn","tag","unmasked","nativeCreate","reIsUint","maskSrcKey","IE_PROTO","Ctor","assocIndexOf","pop","getMapData","overArg","freeExports","nodeType","freeModule","freeProcess","nodeUtil","types","binding","transform","arg","nativeMax","otherArgs","freeSelf","root","shortOut","nativeNow","count","lastCalled","stamp","remaining","reWhitespace","charAt","other","isArrayLike","isString","toInteger","collection","guard","baseIntersection","baseRest","castArrayLikeObject","intersection","mapped","baseIsArguments","stubFalse","Buffer","baseIsTypedArray","nodeIsTypedArray","arrayLikeKeys","baseKeys","toNumber","INFINITY","toFinite","remainder","baseTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","isBinary","baseValues"],"sourceRoot":""} \ No newline at end of file diff --git a/CNAME b/CNAME new file mode 100644 index 00000000..0ba4e5f1 --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +gg.nofwl.com \ No newline at end of file diff --git a/app-6336718509f5c1eb020f.js b/app-6336718509f5c1eb020f.js new file mode 100644 index 00000000..ba448ef8 --- /dev/null +++ b/app-6336718509f5c1eb020f.js @@ -0,0 +1,2 @@ +(self.webpackChunkgg=self.webpackChunkgg||[]).push([[143],{1506:function(e){e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e},e.exports.__esModule=!0,e.exports.default=e.exports},7154:function(e){function t(){return e.exports=t=Object.assign||function(e){for(var t=1;t=0||(o[n]=e[n]);return o},e.exports.__esModule=!0,e.exports.default=e.exports},9489:function(e){function t(n,r){return e.exports=t=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n,r)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},2393:function(e,t){"use strict";var n=Object.assign||function(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{},c=s.state,l=s.replace,p=void 0!==l&&l;if("number"==typeof t)e.history.go(t);else{c=n({},c,{key:Date.now()+""});try{i||p?e.history.replaceState(c,null,t):e.history.pushState(c,null,t)}catch(h){e.location[p?"replace":"assign"](t)}}a=r(e),i=!0;var f=new Promise((function(e){return u=e}));return o.forEach((function(e){return e({location:a,action:"PUSH"})})),f}}},a=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/",t=e.indexOf("?"),n={pathname:t>-1?e.substr(0,t):e,search:t>-1?e.substr(t):""},r=0,o=[n],a=[null];return{get location(){return o[r]},addEventListener:function(e,t){},removeEventListener:function(e,t){},history:{get entries(){return o},get index(){return r},get state(){return a[r]},pushState:function(e,t,n){var i=n.split("?"),u=i[0],s=i[1],c=void 0===s?"":s;r++,o.push({pathname:u,search:c.length?"?"+c:c}),a.push(e)},replaceState:function(e,t,n){var i=n.split("?"),u=i[0],s=i[1],c=void 0===s?"":s;o[r]={pathname:u,search:c},a[r]=e},go:function(e){var t=r+e;t<0||t>a.length-1||(r=t)}}}},i=!("undefined"==typeof window||!window.document||!window.document.createElement),u=o(i?window:a()),s=u.navigate;t.V5=u},2098:function(e,t,n){"use strict";t.__esModule=!0,t.shallowCompare=t.validateRedirect=t.insertParams=t.resolve=t.match=t.pick=t.startsWith=void 0;var r,o=n(1143),a=(r=o)&&r.__esModule?r:{default:r};var i=function(e,t){return e.substr(0,t.length)===t},u=function(e,t){for(var n=void 0,r=void 0,o=t.split("?")[0],i=h(o),u=""===i[0],c=f(e),p=0,d=c.length;pt.score?-1:e.index-t.index}))},h=function(e){return e.replace(/(^\/+|\/+$)/g,"").split("/")},d=function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r0})))&&n.length>0?"?"+n.join("&"):"")},v=["uri","path"];t.startsWith=i,t.pick=u,t.match=function(e,t){return u([{path:e}],t)},t.resolve=function(e,t){if(i(e,"/"))return e;var n=e.split("?"),r=n[0],o=n[1],a=t.split("?")[0],u=h(r),s=h(a);if(""===u[0])return d(a,o);if(!i(u[0],".")){var c=s.concat(u).join("/");return d(("/"===a?"":"/")+c,o)}for(var l=s.concat(u),p=[],f=0,v=l.length;f0)}))}))).observe(t),{instance:r,el:t}))},n.render=function(){var e=this,t=this.props,n=t.to,r=t.getProps,a=void 0===r?this.defaultGetProps:r,i=t.onClick,s=t.onMouseEnter,v=(t.activeClassName,t.activeStyle,t.innerRef,t.partiallyActive,t.state),m=t.replace,g=t._location,y=(0,o.default)(t,d);var w=(0,h.rewriteLinkPath)(n,g.pathname);return(0,f.isLocalLink)(w)?c.default.createElement(l.Link,(0,u.default)({to:w,state:v,getProps:a,innerRef:this.handleRef,onMouseEnter:function(e){s&&s(e);var t=(0,p.parsePath)(w);___loader.hovering(t.pathname+t.search)},onClick:function(t){if(i&&i(t),!(0!==t.button||e.props.target||t.defaultPrevented||t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)){t.preventDefault();var n=m,r=encodeURI(w)===g.pathname;"boolean"!=typeof m&&r&&(n=!0),window.___navigate(w,{state:v,replace:n})}return!0}},y)):c.default.createElement("a",(0,u.default)({href:w},y))},t}(c.default.Component);b.propTypes=(0,u.default)({},y,{onClick:s.default.func,to:s.default.string.isRequired,replace:s.default.bool,state:s.default.object});var P=c.default.forwardRef((function(e,t){return c.default.createElement(w,(0,u.default)({innerRef:t},e))}));t.default=P;t.navigate=function(e,t){window.___navigate((0,h.rewriteLinkPath)(e,window.location.pathname),t)}},4587:function(e,t){"use strict";t.__esModule=!0,t.isLocalLink=void 0;var n=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/;t.isLocalLink=function(e){if("string"==typeof e)return!function(e){return n.test(e)}(e)}},1752:function(e,t){"use strict";t.__esModule=!0,t.parsePath=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.slice(o),t=t.slice(0,o));var a=t.indexOf("?");-1!==a&&(n=t.slice(a),t=t.slice(0,a));return{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}},349:function(e,t,n){"use strict";t.__esModule=!0,t.rewriteLinkPath=void 0;var r=n(2098),o=(n(8440),n(1752)),a=n(4587),i=n(8037),u=function(e){return null==e?void 0:e.startsWith("/")};t.rewriteLinkPath=function(e,t){if("number"==typeof e)return e;if(!(0,a.isLocalLink)(e))return e;var n=(0,o.parsePath)(e),s=(n.pathname,n.search,n.hash,e);return u(s)?(0,i.withPrefix)(s):function(e,t){return u(e)?e:(0,r.resolve)(e,t)}(s,t)}},9679:function(e,t,n){"use strict";t.p2=t.$C=void 0;var r=n(1432);t.$C=r.ScrollHandler;var o=n(4855);t.p2=o.useScrollRestoration},1432:function(e,t,n){"use strict";var r=n(5318);t.__esModule=!0,t.ScrollHandler=t.ScrollContext=void 0;var o=r(n(1506)),a=r(n(5354)),i=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=c(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var i=o?Object.getOwnPropertyDescriptor(e,a):null;i&&(i.get||i.set)?Object.defineProperty(r,a,i):r[a]=e[a]}r.default=e,n&&n.set(e,r);return r}(n(7294)),u=r(n(5697)),s=n(1142);function c(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(c=function(e){return e?n:t})(e)}var l=i.createContext(new s.SessionStorage);t.ScrollContext=l,l.displayName="GatsbyScrollContext";var p=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a0?s:n?[n]:[]},t.I=function(e,t,n){return r.reduce((function(n,r){return r.plugin[e]?n.then((function(){return r.plugin[e](t,r.options)})):n}),Promise.resolve())}},8299:function(e,t,n){"use strict";n.d(t,{Z:function(){return r}});var r=function(e){return e=e||Object.create(null),{on:function(t,n){(e[t]||(e[t]=[])).push(n)},off:function(t,n){e[t]&&e[t].splice(e[t].indexOf(n)>>>0,1)},emit:function(t,n){(e[t]||[]).slice().map((function(e){e(n)})),(e["*"]||[]).slice().map((function(e){e(t,n)}))}}}()},7802:function(e,t,n){"use strict";n.d(t,{UD:function(){return f},Cj:function(){return d},GA:function(){return h},DS:function(){return p}});var r=n(2098),o=n(1505),a=function(e){if(void 0===e)return e;var t=e.split("?"),n=t[0],r=t[1],o=void 0===r?"":r;return o&&(o="?"+o),"/"===n?"/"+o:"/"===n.charAt(n.length-1)?n.slice(0,-1)+o:n+o},i=n(6073),u=new Map,s=[],c=function(e){var t=e;if(-1!==e.indexOf("?")){var n=e.split("?"),r=n[0],a=n[1];t=r+"?"+encodeURIComponent(a)}var i=decodeURIComponent(t);return(0,o.Z)(i,decodeURIComponent("")).split("#")[0]};function l(e){return e.startsWith("/")||e.startsWith("https://")||e.startsWith("http://")?e:new URL(e,window.location.href+(window.location.href.endsWith("/")?"":"/")).pathname}var p=function(e){s=e},f=function(e){var t=v(e),n=s.map((function(e){var t=e.path;return{path:e.matchPath,originalPath:t}})),o=(0,r.pick)(n,t);return o?a(o.route.originalPath):null},h=function(e){var t=v(e),n=s.map((function(e){var t=e.path;return{path:e.matchPath,originalPath:t}})),o=(0,r.pick)(n,t);return o?o.params:{}},d=function e(t){var n=c(l(t));if(u.has(n))return u.get(n);var r=(0,i.J)(t);if(r)return e(r.toPath);var o=f(n);return o||(o=v(t)),u.set(n,o),o},v=function(e){var t=c(l(e));return"/index.html"===t&&(t="/"),t=a(t)}},1597:function(e,t,n){"use strict";n.r(t),n.d(t,{Link:function(){return o.default},PageRenderer:function(){return u.a},StaticQuery:function(){return p},StaticQueryContext:function(){return c},graphql:function(){return h},navigate:function(){return o.navigate},parsePath:function(){return o.parsePath},prefetchPathname:function(){return s},useScrollRestoration:function(){return a.p2},useStaticQuery:function(){return f},withAssetPrefix:function(){return o.withAssetPrefix},withPrefix:function(){return o.withPrefix}});var r=n(7294),o=n(8037),a=n(9679),i=n(2743),u=n.n(i),s=n(8575).ZP.enqueue,c=r.createContext({});function l(e){var t=e.staticQueryData,n=e.data,o=e.query,a=e.render,i=n?n.data:t[o]&&t[o].data;return r.createElement(r.Fragment,null,i&&a(i),!i&&r.createElement("div",null,"Loading (StaticQuery)"))}var p=function(e){var t=e.data,n=e.query,o=e.render,a=e.children;return r.createElement(c.Consumer,null,(function(e){return r.createElement(l,{data:t,query:n,render:o||a,staticQueryData:e})}))},f=function(e){var t;r.useContext;var n=r.useContext(c);if(isNaN(Number(e)))throw new Error("useStaticQuery was called with a string but expects to be called using `graphql`. Try this:\n\nimport { useStaticQuery, graphql } from 'gatsby';\n\nuseStaticQuery(graphql`"+e+"`);\n");if(null!==(t=n[e])&&void 0!==t&&t.data)return n[e].data;throw new Error("The result of this StaticQuery could not be fetched.\n\nThis is likely a bug in Gatsby and if refreshing the page does not fix it, please open an issue in https://github.com/gatsbyjs/gatsby/issues")};function h(){throw new Error("It appears like Gatsby is misconfigured. Gatsby related `graphql` calls are supposed to only be evaluated at compile time, and then compiled away. Unfortunately, something went wrong and the query was left in the compiled code.\n\nUnless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.")}},8575:function(e,t,n){"use strict";n.d(t,{uQ:function(){return p},kL:function(){return w},ZP:function(){return _},hs:function(){return k},jN:function(){return P},N1:function(){return b}});var r=n(1721);function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0)return u[u.length-1];if(e&&e.location.pathname===a)return i?decodeURI(i.slice(1)):[0,0];return!0}var P=function(e){function t(t){var n;return(n=e.call(this,t)||this).announcementRef=a.createRef(),n}(0,r.Z)(t,e);var n=t.prototype;return n.componentDidUpdate=function(e,t){var n=this;requestAnimationFrame((function(){var e="new page at "+n.props.location.pathname;document.title&&(e=document.title);var t=document.querySelectorAll("#gatsby-focus-wrapper h1");t&&t.length&&(e=t[0].textContent);var r="Navigated to "+e;n.announcementRef.current&&(n.announcementRef.current.innerText!==r&&(n.announcementRef.current.innerText=r))}))},n.render=function(){return a.createElement("div",Object.assign({},f,{ref:this.announcementRef}))},t}(a.Component),_=function(e,t){var n,r;return e.href!==t.href||(null==e||null===(n=e.state)||void 0===n?void 0:n.key)!==(null==t||null===(r=t.state)||void 0===r?void 0:r.key)},k=function(e){function t(t){var n;return n=e.call(this,t)||this,g(t.location,null),n}(0,r.Z)(t,e);var n=t.prototype;return n.componentDidMount=function(){y(this.props.location,null)},n.shouldComponentUpdate=function(e){return!!_(e.location,this.props.location)&&(g(this.props.location,e.location),!0)},n.componentDidUpdate=function(e){_(e.location,this.props.location)&&y(this.props.location,e.location)},n.render=function(){return a.createElement(a.Fragment,null,this.props.children,a.createElement(P,{location:location}))},t}(a.Component),R=n(8522),E=n(5418);function S(e,t){for(var n in e)if(!(n in t))return!0;for(var r in t)if(e[r]!==t[r])return!0;return!1}var C,x,j=function(e){function t(t){var n;n=e.call(this)||this;var r=t.location,o=t.pageResources;return n.state={location:Object.assign({},r),pageResources:o||c.ZP.loadPageSync(r.pathname+r.search,{withErrorDetails:!0})},n}(0,r.Z)(t,e),t.getDerivedStateFromProps=function(e,t){var n=e.location;return t.location.href!==n.href?{pageResources:c.ZP.loadPageSync(n.pathname+n.search,{withErrorDetails:!0}),location:Object.assign({},n)}:{location:Object.assign({},n)}};var n=t.prototype;return n.loadResources=function(e){var t=this;c.ZP.loadPage(e).then((function(n){n&&n.status!==c.uQ.Error?t.setState({location:Object.assign({},window.location),pageResources:n}):(window.history.replaceState({},"",location.href),window.location=e)}))},n.shouldComponentUpdate=function(e,t){return t.pageResources?this.state.pageResources!==t.pageResources||(this.state.pageResources.component!==t.pageResources.component||(this.state.pageResources.json!==t.pageResources.json||(!(this.state.location.key===t.location.key||!t.pageResources.page||!t.pageResources.page.matchPath&&!t.pageResources.page.path)||function(e,t,n){return S(e.props,t)||S(e.state,n)}(this,e,t)))):(this.loadResources(e.location.pathname+e.location.search),!1)},n.render=function(){return this.props.children(this.state)},t}(a.Component),O=n(1505),D=new c.kL(E,[],window.pageData);(0,c.N1)(D),D.setApiRunner(o.h);var L=n(3935);x=L.render,C=L.hydrate,window.asyncRequires=E,window.___emitter=p.Z,window.___loader=c.jN,h.V5.listen((function(e){e.location.action=e.action})),window.___push=function(e){return w(e,{replace:!1})},window.___replace=function(e){return w(e,{replace:!0})},window.___navigate=function(e,t){return w(e,t)};var U="gatsby-reload-compilation-hash-match";(0,o.I)("onClientEntry").then((function(){(0,o.h)("registerServiceWorker").filter(Boolean).length>0&&n(9939);var e=function(e){return a.createElement(i.BaseContext.Provider,{value:{baseuri:"/",basepath:"/"}},a.createElement(R.Z,e))},t=a.createContext({}),l=function(e){function n(){return e.apply(this,arguments)||this}return(0,r.Z)(n,e),n.prototype.render=function(){var e=this.props.children;return a.createElement(i.Location,null,(function(n){var r=n.location;return a.createElement(j,{location:r},(function(n){var r=n.pageResources,o=n.location,i=(0,c.hs)();return a.createElement(s.StaticQueryContext.Provider,{value:i},a.createElement(t.Provider,{value:{pageResources:r,location:o}},e))}))}))},n}(a.Component),p=function(n){function o(){return n.apply(this,arguments)||this}return(0,r.Z)(o,n),o.prototype.render=function(){var n=this;return a.createElement(t.Consumer,null,(function(t){var r=t.pageResources,o=t.location;return a.createElement(k,{location:o},a.createElement(u.$C,{location:o,shouldUpdateScroll:b},a.createElement(i.Router,{basepath:"",location:o,id:"gatsby-focus-wrapper"},a.createElement(e,Object.assign({path:"/404.html"===r.page.path||"/500.html"===r.page.path?(0,O.Z)(o.pathname,""):encodeURI((r.page.matchPath||r.page.path).split("?")[0])},n.props,{location:o,pageResources:r},r.json)))))}))},o}(a.Component),f=window,h=f.pagePath,d=f.location;h&&""+h!==d.pathname+(h.includes("?")?d.search:"")&&!(D.findMatchPath((0,O.Z)(d.pathname,""))||h.match(/^\/(404|500)(\/?|.html)$/)||h.match(/^\/offline-plugin-app-shell-fallback\/?$/))&&(0,i.navigate)(""+h+(h.includes("?")?"":d.search)+d.hash,{replace:!0});var v=function(){try{return sessionStorage}catch(e){return null}};c.jN.loadPage(d.pathname+d.search).then((function(e){var t,n=v();if(null!=e&&null!==(t=e.page)&&void 0!==t&&t.webpackCompilationHash&&e.page.webpackCompilationHash!==window.___webpackCompilationHash&&("serviceWorker"in navigator&&null!==navigator.serviceWorker.controller&&"activated"===navigator.serviceWorker.controller.state&&navigator.serviceWorker.controller.postMessage({gatsbyApi:"clearPathResources"}),n&&!("1"===n.getItem(U))))return n.setItem(U,"1"),void window.location.reload(!0);if(n&&n.removeItem(U),!e||e.status===c.uQ.Error){var r="page resources for "+d.pathname+" not found. Not rendering React";if(e&&e.error)throw console.error(r),e.error;throw new Error(r)}var i=(0,o.h)("wrapRootElement",{element:a.createElement(p,null)},a.createElement(p,null),(function(e){return{element:e.result}})).pop(),u=function(){var e=a.useRef(!1);return a.useEffect((function(){e.current||(e.current=!0,performance.mark&&performance.mark("onInitialClientRender"),(0,o.h)("onInitialClientRender"))}),[]),a.createElement(l,null,i)},s=document.getElementById("gatsby-focus-wrapper"),f=x;s&&s.children.length&&(f=C);var h=(0,o.h)("replaceHydrateFunction",void 0,f)[0];function m(){var e="undefined"!=typeof window?document.getElementById("___gatsby"):null;h(a.createElement(u,null),e)}var g=document;if("complete"===g.readyState||"loading"!==g.readyState&&!g.documentElement.doScroll)setTimeout((function(){m()}),0);else{var y=function e(){g.removeEventListener("DOMContentLoaded",e,!1),window.removeEventListener("load",e,!1),m()};g.addEventListener("DOMContentLoaded",y,!1),window.addEventListener("load",y,!1)}}))}))},224:function(e,t,n){"use strict";n.r(t);var r=n(7294),o=n(8575),a=n(8522);t.default=function(e){var t=e.location,n=o.ZP.loadPageSync(t.pathname);return n?r.createElement(a.Z,Object.assign({location:t,pageResources:n},n.json)):null}},2743:function(e,t,n){var r;e.exports=(r=n(224))&&r.default||r},9712:function(e,t){t.O=function(e){return e}},6073:function(e,t,n){"use strict";n.d(t,{J:function(){return a}});var r=new Map,o=new Map;function a(e){var t=r.get(e);return t||(t=o.get(e.toLowerCase())),t}[].forEach((function(e){e.ignoreCase?o.set(e.fromPath,e):r.set(e.fromPath,e)}))},9939:function(e,t,n){"use strict";n.r(t);var r=n(3092);"https:"!==window.location.protocol&&"localhost"!==window.location.hostname?console.error("Service workers can only be used over HTTPS, or on localhost for development"):"serviceWorker"in navigator&&navigator.serviceWorker.register("/sw.js").then((function(e){e.addEventListener("updatefound",(function(){(0,r.h)("onServiceWorkerUpdateFound",{serviceWorker:e});var t=e.installing;console.log("installingWorker",t),t.addEventListener("statechange",(function(){switch(t.state){case"installed":navigator.serviceWorker.controller?(window.___swUpdated=!0,(0,r.h)("onServiceWorkerUpdateReady",{serviceWorker:e}),window.___failedResources&&(console.log("resources failed, SW updated - reloading"),window.location.reload())):(console.log("Content is now available offline!"),(0,r.h)("onServiceWorkerInstalled",{serviceWorker:e}));break;case"redundant":console.error("The installing service worker became redundant."),(0,r.h)("onServiceWorkerRedundant",{serviceWorker:e});break;case"activated":(0,r.h)("onServiceWorkerActive",{serviceWorker:e})}}))}))})).catch((function(e){console.error("Error during service worker registration:",e)}))},1505:function(e,t,n){"use strict";function r(e,t){return void 0===t&&(t=""),t?e===t?"/":e.startsWith(t+"/")?e.slice(t.length):e:e}n.d(t,{Z:function(){return r}})},7420:function(e,t,n){"use strict";n.r(t),n.d(t,{onServiceWorkerUpdateReady:function(){return r}});var r=function(){!0===window.confirm("This application has been updated. Reload to display the latest version?")&&window.location.reload()}},9608:function(e,t,n){"use strict";n.r(t),n.d(t,{onRouteUpdate:function(){return r}});n(1597),n(292);var r=function(e,t){e.location}},292:function(e,t,n){"use strict";var r=n(1597)},9684:function(e,t){"use strict";t.registerServiceWorker=function(){return"true"!=={}.GATSBY_IS_PREVIEW};var n=/^(stylesheet|preload)$/,r=[];function o(e,t){if(!window.___swUpdated&&"serviceWorker"in navigator){var n=navigator.serviceWorker;if(null===n.controller)r.push(e);else{var o=t(e);n.controller.postMessage({gatsbyApi:"setPathResources",path:e,resources:o})}}}t.onServiceWorkerActive=function(e){var t=e.getResourceURLsForPathname,o=e.serviceWorker;if("true"!=={}.GATSBY_IS_PREVIEW)if(window.___swUpdated)o.active.postMessage({gatsbyApi:"clearPathResources"});else{var a=document.querySelectorAll("\n head > script[src],\n head > link[href],\n head > style[data-href]\n "),i=[].slice.call(a).filter((function(e){return"LINK"!==e.tagName||n.test(e.getAttribute("rel"))})).map((function(e){return e.src||e.href||e.getAttribute("data-href")})),u=[];r.forEach((function(e){var n=t(e);u.push.apply(u,n),o.active.postMessage({gatsbyApi:"setPathResources",path:e,resources:n})})),[].concat(i,u).forEach((function(e){var t=document.createElement("link");t.rel="prefetch",t.href=e,t.onload=t.remove,t.onerror=t.remove,document.head.appendChild(t)}))}},t.onRouteUpdate=function(e){var t=e.location,n=e.getResourceURLsForPathname;o(t.pathname.replace("",""),n),"serviceWorker"in navigator&&null!==navigator.serviceWorker.controller&&navigator.serviceWorker.controller.postMessage({gatsbyApi:"enableOfflineShell"})},t.onPostPrefetchPathname=function(e){o(e.pathname,e.getResourceURLsForPathname)}},9499:function(e,t,n){"use strict";n.r(t),n.d(t,{BaseContext:function(){return A},Link:function(){return B},Location:function(){return M},LocationProvider:function(){return W},Match:function(){return X},Redirect:function(){return z},Router:function(){return F},ServerLocation:function(){return T},createHistory:function(){return _},createMemorySource:function(){return k},globalHistory:function(){return E},isRedirect:function(){return $},matchPath:function(){return c},navigate:function(){return S},redirectTo:function(){return Y},useLocation:function(){return ee},useMatch:function(){return re},useNavigate:function(){return te},useParams:function(){return ne}});var r=n(7294),o=n(1143),a=n.n(o),i=n(9712),u=function(e,t){return e.substr(0,t.length)===t},s=function(e,t){for(var n=void 0,r=void 0,o=t.split("?")[0],i=g(o),u=""===i[0],s=m(e),c=0,l=s.length;ct.score?-1:e.index-t.index}))},g=function(e){return e.replace(/(^\/+|\/+$)/g,"").split("/")},y=function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r0})))&&n.length>0?"?"+n.join("&"):"")},w=["uri","path"],b=Object.assign||function(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{},u=i.state,s=i.replace,c=void 0!==s&&s;if("number"==typeof t)e.history.go(t);else{u=b({},u,{key:Date.now()+""});try{o||c?e.history.replaceState(u,null,t):e.history.pushState(u,null,t)}catch(p){e.location[c?"replace":"assign"](t)}}r=P(e),o=!0;var l=new Promise((function(e){return a=e}));return n.forEach((function(e){return e({location:r,action:"PUSH"})})),l}}},k=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/",t=e.indexOf("?"),n={pathname:t>-1?e.substr(0,t):e,search:t>-1?e.substr(t):""},r=0,o=[n],a=[null];return{get location(){return o[r]},addEventListener:function(e,t){},removeEventListener:function(e,t){},history:{get entries(){return o},get index(){return r},get state(){return a[r]},pushState:function(e,t,n){var i=n.split("?"),u=i[0],s=i[1],c=void 0===s?"":s;r++,o.push({pathname:u,search:c.length?"?"+c:c}),a.push(e)},replaceState:function(e,t,n){var i=n.split("?"),u=i[0],s=i[1],c=void 0===s?"":s;o[r]={pathname:u,search:c},a[r]=e},go:function(e){var t=r+e;t<0||t>a.length-1||(r=t)}}}},R=!("undefined"==typeof window||!window.document||!window.document.createElement),E=_(R?window:k()),S=E.navigate,C=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function j(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function O(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function D(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var L=function(e,t){var n=(0,r.createContext)(t);return n.displayName=e,n},U=L("Location"),M=function(e){var t=e.children;return r.createElement(U.Consumer,null,(function(e){return e?t(e):r.createElement(W,null,t)}))},W=function(e){function t(){var n,r;j(this,t);for(var o=arguments.length,a=Array(o),i=0;i-1?(a=t.substring(0,o),i=t.substring(o)):a=t,r.createElement(U.Provider,{value:{location:{pathname:a,search:i,hash:""},navigate:function(){throw new Error("You can't call navigate on the server.")}}},n)},A=L("Base",{baseuri:"/",basepath:"/",navigate:E.navigate}),F=function(e){return r.createElement(A.Consumer,null,(function(t){return r.createElement(M,null,(function(n){return r.createElement(I,C({},t,n,e))}))}))},I=function(e){function t(){return j(this,t),O(this,e.apply(this,arguments))}return D(t,e),t.prototype.render=function(){var e=this.props,t=e.location,n=e.navigate,o=e.basepath,a=e.primary,i=e.children,u=(e.baseuri,e.component),c=void 0===u?"div":u,p=x(e,["location","navigate","basepath","primary","children","baseuri","component"]),f=r.Children.toArray(i).reduce((function(e,t){var n=ae(o)(t);return e.concat(n)}),[]),h=t.pathname,d=s(f,h);if(d){var v=d.params,m=d.uri,g=d.route,y=d.route.value;o=g.default?o:g.path.replace(/\*$/,"");var w=C({},v,{uri:m,location:t,navigate:function(e,t){return n(l(e,m),t)}}),b=r.cloneElement(y,w,y.props.children?r.createElement(F,{location:t,primary:a},y.props.children):void 0),P=a?q:c,_=a?C({uri:m,location:t,component:c},p):p;return r.createElement(A.Provider,{value:{baseuri:m,basepath:o,navigate:w.navigate}},r.createElement(P,_,b))}return null},t}(r.PureComponent);I.defaultProps={primary:!0};var N=L("Focus"),q=function(e){var t=e.uri,n=e.location,o=e.component,a=x(e,["uri","location","component"]);return r.createElement(N.Consumer,null,(function(e){return r.createElement(Z,C({},a,{component:o,requestFocus:e,uri:t,location:n}))}))},Q=!0,H=0,Z=function(e){function t(){var n,r;j(this,t);for(var o=arguments.length,a=Array(o),i=0;i= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\"use strict\";\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar getLocation = function getLocation(source) {\n var _source$location = source.location,\n search = _source$location.search,\n hash = _source$location.hash,\n href = _source$location.href,\n origin = _source$location.origin,\n protocol = _source$location.protocol,\n host = _source$location.host,\n hostname = _source$location.hostname,\n port = _source$location.port;\n var pathname = source.location.pathname;\n\n if (!pathname && href && canUseDOM) {\n var url = new URL(href);\n pathname = url.pathname;\n }\n\n return {\n pathname: encodeURI(decodeURI(pathname)),\n search: search,\n hash: hash,\n href: href,\n origin: origin,\n protocol: protocol,\n host: host,\n hostname: hostname,\n port: port,\n state: source.history.state,\n key: source.history.state && source.history.state.key || \"initial\"\n };\n};\n\nvar createHistory = function createHistory(source, options) {\n var listeners = [];\n var location = getLocation(source);\n var transitioning = false;\n\n var resolveTransition = function resolveTransition() {};\n\n return {\n get location() {\n return location;\n },\n\n get transitioning() {\n return transitioning;\n },\n\n _onTransitionComplete: function _onTransitionComplete() {\n transitioning = false;\n resolveTransition();\n },\n listen: function listen(listener) {\n listeners.push(listener);\n\n var popstateListener = function popstateListener() {\n location = getLocation(source);\n listener({\n location: location,\n action: \"POP\"\n });\n };\n\n source.addEventListener(\"popstate\", popstateListener);\n return function () {\n source.removeEventListener(\"popstate\", popstateListener);\n listeners = listeners.filter(function (fn) {\n return fn !== listener;\n });\n };\n },\n navigate: function navigate(to) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n state = _ref.state,\n _ref$replace = _ref.replace,\n replace = _ref$replace === undefined ? false : _ref$replace;\n\n if (typeof to === \"number\") {\n source.history.go(to);\n } else {\n state = _extends({}, state, {\n key: Date.now() + \"\"\n }); // try...catch iOS Safari limits to 100 pushState calls\n\n try {\n if (transitioning || replace) {\n source.history.replaceState(state, null, to);\n } else {\n source.history.pushState(state, null, to);\n }\n } catch (e) {\n source.location[replace ? \"replace\" : \"assign\"](to);\n }\n }\n\n location = getLocation(source);\n transitioning = true;\n var transition = new Promise(function (res) {\n return resolveTransition = res;\n });\n listeners.forEach(function (listener) {\n return listener({\n location: location,\n action: \"PUSH\"\n });\n });\n return transition;\n }\n };\n}; ////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\n\n\nvar createMemorySource = function createMemorySource() {\n var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n var searchIndex = initialPath.indexOf(\"?\");\n var initialLocation = {\n pathname: searchIndex > -1 ? initialPath.substr(0, searchIndex) : initialPath,\n search: searchIndex > -1 ? initialPath.substr(searchIndex) : \"\"\n };\n var index = 0;\n var stack = [initialLocation];\n var states = [null];\n return {\n get location() {\n return stack[index];\n },\n\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n history: {\n get entries() {\n return stack;\n },\n\n get index() {\n return index;\n },\n\n get state() {\n return states[index];\n },\n\n pushState: function pushState(state, _, uri) {\n var _uri$split = uri.split(\"?\"),\n pathname = _uri$split[0],\n _uri$split$ = _uri$split[1],\n search = _uri$split$ === undefined ? \"\" : _uri$split$;\n\n index++;\n stack.push({\n pathname: pathname,\n search: search.length ? \"?\" + search : search\n });\n states.push(state);\n },\n replaceState: function replaceState(state, _, uri) {\n var _uri$split2 = uri.split(\"?\"),\n pathname = _uri$split2[0],\n _uri$split2$ = _uri$split2[1],\n search = _uri$split2$ === undefined ? \"\" : _uri$split2$;\n\n stack[index] = {\n pathname: pathname,\n search: search\n };\n states[index] = state;\n },\n go: function go(to) {\n var newIndex = index + to;\n\n if (newIndex < 0 || newIndex > states.length - 1) {\n return;\n }\n\n index = newIndex;\n }\n }\n };\n}; ////////////////////////////////////////////////////////////////////////////////\n// global history - uses window.history as the source if available, otherwise a\n// memory history\n\n\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\n\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate; ////////////////////////////////////////////////////////////////////////////////\n\nexports.globalHistory = globalHistory;\nexports.navigate = navigate;\nexports.createHistory = createHistory;\nexports.createMemorySource = createMemorySource;","\"use strict\";\n\nexports.__esModule = true;\nexports.shallowCompare = exports.validateRedirect = exports.insertParams = exports.resolve = exports.match = exports.pick = exports.startsWith = undefined;\n\nvar _invariant = require(\"invariant\");\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n} ////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\n\n\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\n}; ////////////////////////////////////////////////////////////////////////////////\n// pick(routes, uri)\n//\n// Ranks and picks the best route to match. Each segment gets the highest\n// amount of points, then the type of segment gets an additional amount of\n// points where\n//\n// static > dynamic > splat > root\n//\n// This way we don't have to worry about the order of our routes, let the\n// computers do it.\n//\n// A route looks like this\n//\n// { path, default, value }\n//\n// And a returned match looks like:\n//\n// { route, params, uri }\n//\n// I know, I should use TypeScript not comments for these types.\n\n\nvar pick = function pick(routes, uri) {\n var match = void 0;\n var default_ = void 0;\n\n var _uri$split = uri.split(\"?\"),\n uriPathname = _uri$split[0];\n\n var uriSegments = segmentize(uriPathname);\n var isRootUri = uriSegments[0] === \"\";\n var ranked = rankRoutes(routes);\n\n for (var i = 0, l = ranked.length; i < l; i++) {\n var missed = false;\n var route = ranked[i].route;\n\n if (route.default) {\n default_ = {\n route: route,\n params: {},\n uri: uri\n };\n continue;\n }\n\n var routeSegments = segmentize(route.path);\n var params = {};\n var max = Math.max(uriSegments.length, routeSegments.length);\n var index = 0;\n\n for (; index < max; index++) {\n var routeSegment = routeSegments[index];\n var uriSegment = uriSegments[index];\n\n if (isSplat(routeSegment)) {\n // Hit a splat, just grab the rest, and return a match\n // uri: /files/documents/work\n // route: /files/*\n var param = routeSegment.slice(1) || \"*\";\n params[param] = uriSegments.slice(index).map(decodeURIComponent).join(\"/\");\n break;\n }\n\n if (uriSegment === undefined) {\n // URI is shorter than the route, no match\n // uri: /users\n // route: /users/:userId\n missed = true;\n break;\n }\n\n var dynamicMatch = paramRe.exec(routeSegment);\n\n if (dynamicMatch && !isRootUri) {\n var matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1;\n !matchIsNotReserved ? process.env.NODE_ENV !== \"production\" ? (0, _invariant2.default)(false, \" dynamic segment \\\"\" + dynamicMatch[1] + \"\\\" is a reserved name. Please use a different name in path \\\"\" + route.path + \"\\\".\") : (0, _invariant2.default)(false) : void 0;\n var value = decodeURIComponent(uriSegment);\n params[dynamicMatch[1]] = value;\n } else if (routeSegment !== uriSegment) {\n // Current segments don't match, not dynamic, not splat, so no match\n // uri: /users/123/settings\n // route: /users/:id/profile\n missed = true;\n break;\n }\n }\n\n if (!missed) {\n match = {\n route: route,\n params: params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\")\n };\n break;\n }\n }\n\n return match || default_ || null;\n}; ////////////////////////////////////////////////////////////////////////////////\n// match(path, uri) - Matches just one path to a uri, also lol\n\n\nvar match = function match(path, uri) {\n return pick([{\n path: path\n }], uri);\n}; ////////////////////////////////////////////////////////////////////////////////\n// resolve(to, basepath)\n//\n// Resolves URIs as though every path is a directory, no files. Relative URIs\n// in the browser can feel awkward because not only can you be \"in a directory\"\n// you can be \"at a file\", too. For example\n//\n// browserSpecResolve('foo', '/bar/') => /bar/foo\n// browserSpecResolve('foo', '/bar') => /foo\n//\n// But on the command line of a file system, it's not as complicated, you can't\n// `cd` from a file, only directories. This way, links have to know less about\n// their current path. To go deeper you can do this:\n//\n// \n// // instead of\n// \n//\n// Just like `cd`, if you want to go deeper from the command line, you do this:\n//\n// cd deeper\n// # not\n// cd $(pwd)/deeper\n//\n// By treating every path as a directory, linking to relative paths should\n// require less contextual information and (fingers crossed) be more intuitive.\n\n\nvar resolve = function resolve(to, base) {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to;\n }\n\n var _to$split = to.split(\"?\"),\n toPathname = _to$split[0],\n toQuery = _to$split[1];\n\n var _base$split = base.split(\"?\"),\n basePathname = _base$split[0];\n\n var toSegments = segmentize(toPathname);\n var baseSegments = segmentize(basePathname); // ?a=b, /users?b=c => /users?a=b\n\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n } // profile, /users/789 => /users/789/profile\n\n\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\n } // ./ /users/123 => /users/123\n // ../ /users/123 => /users\n // ../.. /users/123 => /\n // ../../one /a/b/c/d => /a/b/one\n // .././one /a/b/c/d => /a/b/c/one\n\n\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n\n for (var i = 0, l = allSegments.length; i < l; i++) {\n var segment = allSegments[i];\n if (segment === \"..\") segments.pop();else if (segment !== \".\") segments.push(segment);\n }\n\n return addQuery(\"/\" + segments.join(\"/\"), toQuery);\n}; ////////////////////////////////////////////////////////////////////////////////\n// insertParams(path, params)\n\n\nvar insertParams = function insertParams(path, params) {\n var _path$split = path.split(\"?\"),\n pathBase = _path$split[0],\n _path$split$ = _path$split[1],\n query = _path$split$ === undefined ? \"\" : _path$split$;\n\n var segments = segmentize(pathBase);\n var constructedPath = \"/\" + segments.map(function (segment) {\n var match = paramRe.exec(segment);\n return match ? params[match[1]] : segment;\n }).join(\"/\");\n var _params$location = params.location;\n _params$location = _params$location === undefined ? {} : _params$location;\n var _params$location$sear = _params$location.search,\n search = _params$location$sear === undefined ? \"\" : _params$location$sear;\n var searchSplit = search.split(\"?\")[1] || \"\";\n constructedPath = addQuery(constructedPath, query, searchSplit);\n return constructedPath;\n};\n\nvar validateRedirect = function validateRedirect(from, to) {\n var filter = function filter(segment) {\n return isDynamic(segment);\n };\n\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n}; ////////////////////////////////////////////////////////////////////////////////\n// Junk\n\n\nvar paramRe = /^:(.+)/;\nvar SEGMENT_POINTS = 4;\nvar STATIC_POINTS = 3;\nvar DYNAMIC_POINTS = 2;\nvar SPLAT_PENALTY = 1;\nvar ROOT_POINTS = 1;\n\nvar isRootSegment = function isRootSegment(segment) {\n return segment === \"\";\n};\n\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\n\nvar isSplat = function isSplat(segment) {\n return segment && segment[0] === \"*\";\n};\n\nvar rankRoute = function rankRoute(route, index) {\n var score = route.default ? 0 : segmentize(route.path).reduce(function (score, segment) {\n score += SEGMENT_POINTS;\n if (isRootSegment(segment)) score += ROOT_POINTS;else if (isDynamic(segment)) score += DYNAMIC_POINTS;else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY;else score += STATIC_POINTS;\n return score;\n }, 0);\n return {\n route: route,\n score: score,\n index: index\n };\n};\n\nvar rankRoutes = function rankRoutes(routes) {\n return routes.map(rankRoute).sort(function (a, b) {\n return a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index;\n });\n};\n\nvar segmentize = function segmentize(uri) {\n return uri // strip starting/ending slashes\n .replace(/(^\\/+|\\/+$)/g, \"\").split(\"/\");\n};\n\nvar addQuery = function addQuery(pathname) {\n for (var _len = arguments.length, query = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n query[_key - 1] = arguments[_key];\n }\n\n query = query.filter(function (q) {\n return q && q.length > 0;\n });\n return pathname + (query && query.length > 0 ? \"?\" + query.join(\"&\") : \"\");\n};\n\nvar reservedNames = [\"uri\", \"path\"];\n/**\n * Shallow compares two objects.\n * @param {Object} obj1 The first object to compare.\n * @param {Object} obj2 The second object to compare.\n */\n\nvar shallowCompare = function shallowCompare(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n return obj1Keys.length === Object.keys(obj2).length && obj1Keys.every(function (key) {\n return obj2.hasOwnProperty(key) && obj1[key] === obj2[key];\n });\n}; ////////////////////////////////////////////////////////////////////////////////\n\n\nexports.startsWith = startsWith;\nexports.pick = pick;\nexports.match = match;\nexports.resolve = resolve;\nexports.insertParams = insertParams;\nexports.validateRedirect = validateRedirect;\nexports.shallowCompare = shallowCompare;","\"use strict\";\n\nexports.__esModule = true;\nexports.applyTrailingSlashOption = void 0; // TODO(v5): Remove legacy setting and default to \"always\"\n\nvar applyTrailingSlashOption = function applyTrailingSlashOption(input, option) {\n if (option === void 0) {\n option = \"legacy\";\n }\n\n var hasHtmlSuffix = input.endsWith(\".html\");\n if (input === \"/\") return input;\n\n if (hasHtmlSuffix) {\n option = \"never\";\n }\n\n if (option === \"always\") {\n return input.endsWith(\"/\") ? input : input + \"/\";\n }\n\n if (option === \"never\") {\n return input.endsWith(\"/\") ? input.slice(0, -1) : input;\n }\n\n return input;\n};\n\nexports.applyTrailingSlashOption = applyTrailingSlashOption;","\"use strict\";\n\nmodule.exports = Object.assign;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.withPrefix = withPrefix;\nexports.withAssetPrefix = withAssetPrefix;\nexports.navigate = exports.default = void 0;\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\n\nvar _parsePath = require(\"./parse-path\");\n\nexports.parsePath = _parsePath.parsePath;\n\nvar _isLocalLink = require(\"./is-local-link\");\n\nvar _rewriteLinkPath = require(\"./rewrite-link-path\");\n\nvar _excluded = [\"to\", \"getProps\", \"onClick\", \"onMouseEnter\", \"activeClassName\", \"activeStyle\", \"innerRef\", \"partiallyActive\", \"state\", \"replace\", \"_location\"];\n\nfunction withPrefix(path, prefix) {\n var _ref, _prefix;\n\n if (prefix === void 0) {\n prefix = getGlobalBasePrefix();\n }\n\n if (!(0, _isLocalLink.isLocalLink)(path)) {\n return path;\n }\n\n if (path.startsWith(\"./\") || path.startsWith(\"../\")) {\n return path;\n }\n\n var base = (_ref = (_prefix = prefix) !== null && _prefix !== void 0 ? _prefix : getGlobalPathPrefix()) !== null && _ref !== void 0 ? _ref : \"/\";\n return \"\" + (base !== null && base !== void 0 && base.endsWith(\"/\") ? base.slice(0, -1) : base) + (path.startsWith(\"/\") ? path : \"/\" + path);\n} // These global values are wrapped in typeof clauses to ensure the values exist.\n// This is especially problematic in unit testing of this component.\n\n\nvar getGlobalPathPrefix = function getGlobalPathPrefix() {\n return process.env.NODE_ENV !== \"production\" ? typeof __PATH_PREFIX__ !== \"undefined\" ? __PATH_PREFIX__ : undefined : __PATH_PREFIX__;\n};\n\nvar getGlobalBasePrefix = function getGlobalBasePrefix() {\n return process.env.NODE_ENV !== \"production\" ? typeof __BASE_PATH__ !== \"undefined\" ? __BASE_PATH__ : undefined : __BASE_PATH__;\n};\n\nfunction withAssetPrefix(path) {\n return withPrefix(path, getGlobalPathPrefix());\n}\n\nvar NavLinkPropTypes = {\n activeClassName: _propTypes.default.string,\n activeStyle: _propTypes.default.object,\n partiallyActive: _propTypes.default.bool\n}; // Set up IntersectionObserver\n\nvar createIntersectionObserver = function createIntersectionObserver(el, cb) {\n var io = new window.IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n if (el === entry.target) {\n // Check if element is within viewport, remove listener, destroy observer, and run link callback.\n // MSEdge doesn't currently support isIntersecting, so also test for an intersectionRatio > 0\n cb(entry.isIntersecting || entry.intersectionRatio > 0);\n }\n });\n }); // Add element to the observer\n\n io.observe(el);\n return {\n instance: io,\n el: el\n };\n};\n\nfunction GatsbyLinkLocationWrapper(props) {\n return /*#__PURE__*/_react.default.createElement(_reachRouter.Location, null, function (_ref2) {\n var location = _ref2.location;\n return /*#__PURE__*/_react.default.createElement(GatsbyLink, (0, _extends2.default)({}, props, {\n _location: location\n }));\n });\n}\n\nvar GatsbyLink = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(GatsbyLink, _React$Component);\n\n function GatsbyLink(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this; // Default to no support for IntersectionObserver\n\n _this.defaultGetProps = function (_ref3) {\n var isPartiallyCurrent = _ref3.isPartiallyCurrent,\n isCurrent = _ref3.isCurrent;\n\n if (_this.props.partiallyActive ? isPartiallyCurrent : isCurrent) {\n return {\n className: [_this.props.className, _this.props.activeClassName].filter(Boolean).join(\" \"),\n style: (0, _extends2.default)({}, _this.props.style, _this.props.activeStyle)\n };\n }\n\n return null;\n };\n\n var IOSupported = false;\n\n if (typeof window !== \"undefined\" && window.IntersectionObserver) {\n IOSupported = true;\n }\n\n _this.state = {\n IOSupported: IOSupported\n };\n _this.abortPrefetch = null;\n _this.handleRef = _this.handleRef.bind((0, _assertThisInitialized2.default)(_this));\n return _this;\n }\n\n var _proto = GatsbyLink.prototype;\n\n _proto._prefetch = function _prefetch() {\n var currentPath = window.location.pathname + window.location.search; // reach router should have the correct state\n\n if (this.props._location && this.props._location.pathname) {\n currentPath = this.props._location.pathname + this.props._location.search;\n }\n\n var rewrittenPath = (0, _rewriteLinkPath.rewriteLinkPath)(this.props.to, currentPath);\n var parsed = (0, _parsePath.parsePath)(rewrittenPath);\n var newPathName = parsed.pathname + parsed.search; // Prefetch is used to speed up next navigations. When you use it on the current navigation,\n // there could be a race-condition where Chrome uses the stale data instead of waiting for the network to complete\n\n if (currentPath !== newPathName) {\n return ___loader.enqueue(newPathName);\n }\n\n return undefined;\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (!this.io) {\n return;\n }\n\n var _this$io = this.io,\n instance = _this$io.instance,\n el = _this$io.el;\n\n if (this.abortPrefetch) {\n this.abortPrefetch.abort();\n }\n\n instance.unobserve(el);\n instance.disconnect();\n };\n\n _proto.handleRef = function handleRef(ref) {\n var _this2 = this;\n\n if (this.props.innerRef && Object.prototype.hasOwnProperty.call(this.props.innerRef, \"current\")) {\n this.props.innerRef.current = ref;\n } else if (this.props.innerRef) {\n this.props.innerRef(ref);\n }\n\n if (this.state.IOSupported && ref) {\n // If IO supported and element reference found, setup Observer functionality\n this.io = createIntersectionObserver(ref, function (inViewPort) {\n if (inViewPort) {\n _this2.abortPrefetch = _this2._prefetch();\n } else {\n if (_this2.abortPrefetch) {\n _this2.abortPrefetch.abort();\n }\n }\n });\n }\n };\n\n _proto.render = function render() {\n var _this3 = this;\n\n var _this$props = this.props,\n to = _this$props.to,\n _this$props$getProps = _this$props.getProps,\n getProps = _this$props$getProps === void 0 ? this.defaultGetProps : _this$props$getProps,\n _onClick = _this$props.onClick,\n _onMouseEnter = _this$props.onMouseEnter,\n $activeClassName = _this$props.activeClassName,\n $activeStyle = _this$props.activeStyle,\n $innerRef = _this$props.innerRef,\n partiallyActive = _this$props.partiallyActive,\n state = _this$props.state,\n replace = _this$props.replace,\n _location = _this$props._location,\n rest = (0, _objectWithoutPropertiesLoose2.default)(_this$props, _excluded);\n\n if (process.env.NODE_ENV !== \"production\" && !(0, _isLocalLink.isLocalLink)(to)) {\n console.warn(\"External link \" + to + \" was detected in a Link component. Use the Link component only for internal links. See: https://gatsby.dev/internal-links\");\n }\n\n var prefixedTo = (0, _rewriteLinkPath.rewriteLinkPath)(to, _location.pathname);\n\n if (!(0, _isLocalLink.isLocalLink)(prefixedTo)) {\n return /*#__PURE__*/_react.default.createElement(\"a\", (0, _extends2.default)({\n href: prefixedTo\n }, rest));\n }\n\n return /*#__PURE__*/_react.default.createElement(_reachRouter.Link, (0, _extends2.default)({\n to: prefixedTo,\n state: state,\n getProps: getProps,\n innerRef: this.handleRef,\n onMouseEnter: function onMouseEnter(e) {\n if (_onMouseEnter) {\n _onMouseEnter(e);\n }\n\n var parsed = (0, _parsePath.parsePath)(prefixedTo);\n\n ___loader.hovering(parsed.pathname + parsed.search);\n },\n onClick: function onClick(e) {\n if (_onClick) {\n _onClick(e);\n }\n\n if (e.button === 0 && // ignore right clicks\n !_this3.props.target && // let browser handle \"target=_blank\"\n !e.defaultPrevented && // onClick prevented default\n !e.metaKey && // ignore clicks with modifier keys...\n !e.altKey && !e.ctrlKey && !e.shiftKey) {\n e.preventDefault();\n var shouldReplace = replace;\n\n var isCurrent = encodeURI(prefixedTo) === _location.pathname;\n\n if (typeof replace !== \"boolean\" && isCurrent) {\n shouldReplace = true;\n } // Make sure the necessary scripts and data are\n // loaded before continuing.\n\n\n window.___navigate(prefixedTo, {\n state: state,\n replace: shouldReplace\n });\n }\n\n return true;\n }\n }, rest));\n };\n\n return GatsbyLink;\n}(_react.default.Component);\n\nGatsbyLink.propTypes = (0, _extends2.default)({}, NavLinkPropTypes, {\n onClick: _propTypes.default.func,\n to: _propTypes.default.string.isRequired,\n replace: _propTypes.default.bool,\n state: _propTypes.default.object\n});\n\nvar _default = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n return /*#__PURE__*/_react.default.createElement(GatsbyLinkLocationWrapper, (0, _extends2.default)({\n innerRef: ref\n }, props));\n});\n\nexports.default = _default;\n\nvar navigate = function navigate(to, options) {\n window.___navigate((0, _rewriteLinkPath.rewriteLinkPath)(to, window.location.pathname), options);\n};\n\nexports.navigate = navigate;","\"use strict\";\n\nexports.__esModule = true;\nexports.isLocalLink = void 0;\n// Copied from https://github.com/sindresorhus/is-absolute-url/blob/3ab19cc2e599a03ea691bcb8a4c09fa3ebb5da4f/index.js\nvar ABSOLUTE_URL_REGEX = /^[a-zA-Z][a-zA-Z\\d+\\-.]*?:/;\n\nvar isAbsolute = function isAbsolute(path) {\n return ABSOLUTE_URL_REGEX.test(path);\n};\n\nvar isLocalLink = function isLocalLink(path) {\n if (typeof path !== \"string\") {\n return undefined; // TODO(v5): Re-Add TypeError\n // throw new TypeError(`Expected a \\`string\\`, got \\`${typeof path}\\``)\n }\n\n return !isAbsolute(path);\n};\n\nexports.isLocalLink = isLocalLink;","\"use strict\";\n\nexports.__esModule = true;\nexports.parsePath = parsePath;\n\nfunction parsePath(path) {\n var pathname = path || \"/\";\n var search = \"\";\n var hash = \"\";\n var hashIndex = pathname.indexOf(\"#\");\n\n if (hashIndex !== -1) {\n hash = pathname.slice(hashIndex);\n pathname = pathname.slice(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf(\"?\");\n\n if (searchIndex !== -1) {\n search = pathname.slice(searchIndex);\n pathname = pathname.slice(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === \"?\" ? \"\" : search,\n hash: hash === \"#\" ? \"\" : hash\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.rewriteLinkPath = void 0;\n\nvar _utils = require(\"@gatsbyjs/reach-router/lib/utils\");\n\nvar _applyTrailingSlashOption = require(\"gatsby-page-utils/apply-trailing-slash-option\");\n\nvar _parsePath2 = require(\"./parse-path\");\n\nvar _isLocalLink = require(\"./is-local-link\");\n\nvar _ = require(\".\");\n\n// Specific import to treeshake Node.js stuff\nvar isAbsolutePath = function isAbsolutePath(path) {\n return path === null || path === void 0 ? void 0 : path.startsWith(\"/\");\n};\n\nvar getGlobalTrailingSlash = function getGlobalTrailingSlash() {\n return typeof __TRAILING_SLASH__ !== \"undefined\" ? __TRAILING_SLASH__ : undefined;\n};\n\nfunction absolutify(path, current) {\n // If it's already absolute, return as-is\n if (isAbsolutePath(path)) {\n return path;\n }\n\n return (0, _utils.resolve)(path, current);\n}\n\nvar rewriteLinkPath = function rewriteLinkPath(path, relativeTo) {\n if (typeof path === \"number\") {\n return path;\n }\n\n if (!(0, _isLocalLink.isLocalLink)(path)) {\n return path;\n }\n\n var _parsePath = (0, _parsePath2.parsePath)(path),\n pathname = _parsePath.pathname,\n search = _parsePath.search,\n hash = _parsePath.hash;\n\n var option = getGlobalTrailingSlash();\n var adjustedPath = path;\n\n if (option === \"always\" || option === \"never\") {\n var output = (0, _applyTrailingSlashOption.applyTrailingSlashOption)(pathname, option);\n adjustedPath = \"\" + output + search + hash;\n }\n\n return isAbsolutePath(adjustedPath) ? (0, _.withPrefix)(adjustedPath) : absolutify(adjustedPath, relativeTo);\n};\n\nexports.rewriteLinkPath = rewriteLinkPath;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = exports.ScrollContext = void 0;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nexports.ScrollContext = _scrollHandler.ScrollHandler;\n\nvar _useScrollRestoration = require(\"./use-scroll-restoration\");\n\nexports.useScrollRestoration = _useScrollRestoration.useScrollRestoration;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.ScrollHandler = exports.ScrollContext = void 0;\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _sessionStorage = require(\"./session-storage\");\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar ScrollContext = /*#__PURE__*/React.createContext(new _sessionStorage.SessionStorage());\nexports.ScrollContext = ScrollContext;\nScrollContext.displayName = \"GatsbyScrollContext\";\n\nvar ScrollHandler = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollHandler, _React$Component);\n\n function ScrollHandler() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this._stateStorage = new _sessionStorage.SessionStorage();\n _this._isTicking = false;\n _this._latestKnownScrollY = 0;\n\n _this.scrollListener = function () {\n _this._latestKnownScrollY = window.scrollY;\n\n if (!_this._isTicking) {\n _this._isTicking = true;\n requestAnimationFrame(_this._saveScroll.bind((0, _assertThisInitialized2.default)(_this)));\n }\n };\n\n _this.windowScroll = function (position, prevProps) {\n if (_this.shouldUpdateScroll(prevProps, _this.props)) {\n window.scrollTo(0, position);\n }\n };\n\n _this.scrollToHash = function (hash, prevProps) {\n var node = document.getElementById(hash.substring(1));\n\n if (node && _this.shouldUpdateScroll(prevProps, _this.props)) {\n node.scrollIntoView();\n }\n };\n\n _this.shouldUpdateScroll = function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n\n if (!shouldUpdateScroll) {\n return true;\n } // Hack to allow accessing this._stateStorage.\n\n\n return shouldUpdateScroll.call((0, _assertThisInitialized2.default)(_this), prevRouterProps, routerProps);\n };\n\n return _this;\n }\n\n var _proto = ScrollHandler.prototype;\n\n _proto._saveScroll = function _saveScroll() {\n var key = this.props.location.key || null;\n\n if (key) {\n this._stateStorage.save(this.props.location, key, this._latestKnownScrollY);\n }\n\n this._isTicking = false;\n };\n\n _proto.componentDidMount = function componentDidMount() {\n window.addEventListener(\"scroll\", this.scrollListener);\n var scrollPosition;\n var _this$props$location = this.props.location,\n key = _this$props$location.key,\n hash = _this$props$location.hash;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n if (scrollPosition) {\n this.windowScroll(scrollPosition, undefined);\n } else if (hash) {\n this.scrollToHash(decodeURI(hash), undefined);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener(\"scroll\", this.scrollListener);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props$location2 = this.props.location,\n hash = _this$props$location2.hash,\n key = _this$props$location2.key;\n var scrollPosition;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n /** There are two pieces of state: the browser url and\n * history state which keeps track of scroll position\n * Native behaviour prescribes that we ought to restore scroll position\n * when a user navigates back in their browser (this is the `POP` action)\n * Currently, reach router has a bug that prevents this at https://github.com/reach/router/issues/228\n * So we _always_ stick to the url as a source of truth — if the url\n * contains a hash, we scroll to it\n */\n\n\n if (hash) {\n this.scrollToHash(decodeURI(hash), prevProps);\n } else {\n this.windowScroll(scrollPosition, prevProps);\n }\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(ScrollContext.Provider, {\n value: this._stateStorage\n }, this.props.children);\n };\n\n return ScrollHandler;\n}(React.Component);\n\nexports.ScrollHandler = ScrollHandler;\nScrollHandler.propTypes = {\n shouldUpdateScroll: _propTypes.default.func,\n children: _propTypes.default.element.isRequired,\n location: _propTypes.default.object.isRequired\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.SessionStorage = void 0;\nvar STATE_KEY_PREFIX = \"@@scroll|\";\nvar GATSBY_ROUTER_SCROLL_STATE = \"___GATSBY_REACT_ROUTER_SCROLL\";\n\nvar SessionStorage = /*#__PURE__*/function () {\n function SessionStorage() {}\n\n var _proto = SessionStorage.prototype;\n\n _proto.read = function read(location, key) {\n var stateKey = this.getStateKey(location, key);\n\n try {\n var value = window.sessionStorage.getItem(stateKey);\n return value ? JSON.parse(value) : 0;\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to access sessionStorage; sessionStorage is not available.\");\n }\n\n if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) {\n return window[GATSBY_ROUTER_SCROLL_STATE][stateKey];\n }\n\n return 0;\n }\n };\n\n _proto.save = function save(location, key, value) {\n var stateKey = this.getStateKey(location, key);\n var storedValue = JSON.stringify(value);\n\n try {\n window.sessionStorage.setItem(stateKey, storedValue);\n } catch (e) {\n if (window && window[GATSBY_ROUTER_SCROLL_STATE]) {\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n } else {\n window[GATSBY_ROUTER_SCROLL_STATE] = {};\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to save state in sessionStorage; sessionStorage is not available.\");\n }\n }\n };\n\n _proto.getStateKey = function getStateKey(location, key) {\n var stateKeyBase = \"\" + STATE_KEY_PREFIX + location.pathname;\n return key === null || typeof key === \"undefined\" ? stateKeyBase : stateKeyBase + \"|\" + key;\n };\n\n return SessionStorage;\n}();\n\nexports.SessionStorage = SessionStorage;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = useScrollRestoration;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nvar _react = require(\"react\");\n\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\n\nfunction useScrollRestoration(identifier) {\n var location = (0, _reachRouter.useLocation)();\n var state = (0, _react.useContext)(_scrollHandler.ScrollContext);\n var ref = (0, _react.useRef)(null);\n (0, _react.useLayoutEffect)(function () {\n if (ref.current) {\n var position = state.read(location, identifier);\n ref.current.scrollTo(0, position || 0);\n }\n }, [location.key]);\n return {\n ref: ref,\n onScroll: function onScroll() {\n if (ref.current) {\n state.save(location, identifier, ref.current.scrollTop);\n }\n }\n };\n}","exports.components = {\n \"component---cache-caches-gatsby-plugin-offline-app-shell-js\": () => import(\"./../../caches/gatsby-plugin-offline/app-shell.js\" /* webpackChunkName: \"component---cache-caches-gatsby-plugin-offline-app-shell-js\" */),\n \"component---src-pages-404-tsx\": () => import(\"./../../../src/pages/404.tsx\" /* webpackChunkName: \"component---src-pages-404-tsx\" */),\n \"component---src-templates-archives-tsx\": () => import(\"./../../../src/templates/archives.tsx\" /* webpackChunkName: \"component---src-templates-archives-tsx\" */),\n \"component---src-templates-category-tsx\": () => import(\"./../../../src/templates/category.tsx\" /* webpackChunkName: \"component---src-templates-category-tsx\" */),\n \"component---src-templates-issues-tsx\": () => import(\"./../../../src/templates/issues.tsx\" /* webpackChunkName: \"component---src-templates-issues-tsx\" */),\n \"component---src-templates-labels-tsx\": () => import(\"./../../../src/templates/labels.tsx\" /* webpackChunkName: \"component---src-templates-labels-tsx\" */),\n \"component---src-templates-nav-category-tsx\": () => import(\"./../../../src/templates/nav-category.tsx\" /* webpackChunkName: \"component---src-templates-nav-category-tsx\" */),\n \"component---src-templates-nav-labels-tsx\": () => import(\"./../../../src/templates/nav-labels.tsx\" /* webpackChunkName: \"component---src-templates-nav-labels-tsx\" */)\n}\n\n","module.exports = [{\n plugin: require('../node_modules/gatsby-plugin-manifest/gatsby-browser.js'),\n options: {\"plugins\":[],\"name\":\"GG\",\"short_name\":\"GG\",\"start_url\":\"/\",\"background_color\":\"#fafafa\",\"theme_color\":\"#232629\",\"display\":\"standalone\",\"icon\":\"./src/static/pwa-logo.png\",\"legacy\":true,\"theme_color_in_head\":true,\"cache_busting_mode\":\"query\",\"crossOrigin\":\"anonymous\",\"include_favicon\":true,\"cacheDigest\":\"f3baeba2c95d2a69f8ff62c15c6fdcde\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-offline/gatsby-browser.js'),\n options: {\"plugins\":[],\"workboxConfig\":{\"importWorkboxFrom\":\"cdn\"}},\n },{\n plugin: require('../gatsby-browser.js'),\n options: {\"plugins\":[]},\n }]\n","const plugins = require(`./api-runner-browser-plugins`)\nconst { getResourceURLsForPathname, loadPage, loadPageSync } =\n require(`./loader`).publicLoader\n\nexports.apiRunner = (api, args = {}, defaultReturn, argTransform) => {\n // Hooks for gatsby-cypress's API handler\n if (process.env.CYPRESS_SUPPORT) {\n if (window.___apiHandler) {\n window.___apiHandler(api)\n } else if (window.___resolvedAPIs) {\n window.___resolvedAPIs.push(api)\n } else {\n window.___resolvedAPIs = [api]\n }\n }\n\n let results = plugins.map(plugin => {\n if (!plugin.plugin[api]) {\n return undefined\n }\n\n args.getResourceURLsForPathname = getResourceURLsForPathname\n args.loadPage = loadPage\n args.loadPageSync = loadPageSync\n\n const result = plugin.plugin[api](args, plugin.options)\n if (result && argTransform) {\n args = argTransform({ args, result, plugin })\n }\n return result\n })\n\n // Filter out undefined results.\n results = results.filter(result => typeof result !== `undefined`)\n\n if (results.length > 0) {\n return results\n } else if (defaultReturn) {\n return [defaultReturn]\n } else {\n return []\n }\n}\n\nexports.apiRunnerAsync = (api, args, defaultReturn) =>\n plugins.reduce(\n (previous, next) =>\n next.plugin[api]\n ? previous.then(() => next.plugin[api](args, next.options))\n : previous,\n Promise.resolve()\n )\n","// \n// An event handler can take an optional event argument\n// and should not return a value\n \n \n\n// An array of all currently registered event handlers for a type\n \n \n// A map of event types and their corresponding event handlers.\n \n \n \n \n\n/** Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nfunction mitt(all ) {\n\tall = all || Object.create(null);\n\n\treturn {\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to listen for, or `\"*\"` for all events\n\t\t * @param {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton: function on(type , handler ) {\n\t\t\t(all[type] || (all[type] = [])).push(handler);\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to unregister `handler` from, or `\"*\"`\n\t\t * @param {Function} handler Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff: function off(type , handler ) {\n\t\t\tif (all[type]) {\n\t\t\t\tall[type].splice(all[type].indexOf(handler) >>> 0, 1);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `\"*\"` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * @param {String} type The event type to invoke\n\t\t * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberOf mitt\n\t\t */\n\t\temit: function emit(type , evt ) {\n\t\t\t(all[type] || []).slice().map(function (handler) { handler(evt); });\n\t\t\t(all['*'] || []).slice().map(function (handler) { handler(type, evt); });\n\t\t}\n\t};\n}\n\nexport default mitt;\n//# sourceMappingURL=mitt.es.js.map\n","import mitt from \"mitt\"\n\nconst emitter = mitt()\nexport default emitter\n","export default pathAndSearch => {\n if (pathAndSearch === undefined) {\n return pathAndSearch\n }\n let [path, search = ``] = pathAndSearch.split(`?`)\n if (search) {\n search = `?` + search\n }\n\n if (path === `/`) {\n return `/` + search\n }\n if (path.charAt(path.length - 1) === `/`) {\n return path.slice(0, -1) + search\n }\n return path + search\n}\n","import { pick } from \"@gatsbyjs/reach-router/lib/utils\"\nimport stripPrefix from \"./strip-prefix\"\nimport normalizePagePath from \"./normalize-page-path\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\n\nconst pathCache = new Map()\nlet matchPaths = []\n\nconst trimPathname = rawPathname => {\n let newRawPathname = rawPathname\n const queryIndex = rawPathname.indexOf(`?`)\n\n if (queryIndex !== -1) {\n const [path, qs] = rawPathname.split(`?`)\n newRawPathname = `${path}?${encodeURIComponent(qs)}`\n }\n\n const pathname = decodeURIComponent(newRawPathname)\n\n // Remove the pathPrefix from the pathname.\n const trimmedPathname = stripPrefix(\n pathname,\n decodeURIComponent(__BASE_PATH__)\n )\n // Remove any hashfragment\n .split(`#`)[0]\n\n return trimmedPathname\n}\n\nfunction absolutify(path) {\n // If it's already absolute, return as-is\n if (\n path.startsWith(`/`) ||\n path.startsWith(`https://`) ||\n path.startsWith(`http://`)\n ) {\n return path\n }\n // Calculate path relative to current location, adding a trailing slash to\n // match behavior of @reach/router\n return new URL(\n path,\n window.location.href + (window.location.href.endsWith(`/`) ? `` : `/`)\n ).pathname\n}\n\n/**\n * Set list of matchPaths\n *\n * @param {Array<{path: string, matchPath: string}>} value collection of matchPaths\n */\nexport const setMatchPaths = value => {\n matchPaths = value\n}\n\n/**\n * Return a matchpath url\n * if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n * `/foo?bar=far` => `/page1`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string|null}\n */\nexport const findMatchPath = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return normalizePagePath(path.route.originalPath)\n }\n\n return null\n}\n\n/**\n * Return a matchpath params from reach/router rules\n * if `match-paths.json` contains `{ \":bar/*foo\" }`, and the path is /baz/zaz/zoo\n * then it returns\n * { bar: baz, foo: zaz/zoo }\n *\n * @param {string} rawPathname A raw pathname\n * @return {object}\n */\nexport const grabMatchParams = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return path.params\n }\n\n return {}\n}\n\n// Given a raw URL path, returns the cleaned version of it (trim off\n// `#` and query params), or if it matches an entry in\n// `match-paths.json`, its matched path is returned\n//\n// E.g. `/foo?bar=far` => `/foo`\n//\n// Or if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n// `/foo?bar=far` => `/page1`\nexport const findPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n if (pathCache.has(trimmedPathname)) {\n return pathCache.get(trimmedPathname)\n }\n\n const redirect = maybeGetBrowserRedirect(rawPathname)\n if (redirect) {\n return findPath(redirect.toPath)\n }\n\n let foundPath = findMatchPath(trimmedPathname)\n\n if (!foundPath) {\n foundPath = cleanPath(rawPathname)\n }\n\n pathCache.set(trimmedPathname, foundPath)\n\n return foundPath\n}\n\n/**\n * Clean a url and converts /index.html => /\n * E.g. `/foo?bar=far` => `/foo`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string}\n */\nexport const cleanPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n\n let foundPath = trimmedPathname\n if (foundPath === `/index.html`) {\n foundPath = `/`\n }\n\n foundPath = normalizePagePath(foundPath)\n\n return foundPath\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport Link, {\n withPrefix,\n withAssetPrefix,\n navigate,\n push,\n replace,\n navigateTo,\n parsePath,\n} from \"gatsby-link\"\nimport { useScrollRestoration } from \"gatsby-react-router-scroll\"\nimport PageRenderer from \"./public-page-renderer\"\nimport loader from \"./loader\"\n\nconst prefetchPathname = loader.enqueue\n\nconst StaticQueryContext = React.createContext({})\n\nfunction StaticQueryDataRenderer({ staticQueryData, data, query, render }) {\n const finalData = data\n ? data.data\n : staticQueryData[query] && staticQueryData[query].data\n\n return (\n \n {finalData && render(finalData)}\n {!finalData &&
Loading (StaticQuery)
}\n
\n )\n}\n\nconst StaticQuery = props => {\n const { data, query, render, children } = props\n\n return (\n \n {staticQueryData => (\n \n )}\n \n )\n}\n\nconst useStaticQuery = query => {\n if (\n typeof React.useContext !== `function` &&\n process.env.NODE_ENV === `development`\n ) {\n throw new Error(\n `You're likely using a version of React that doesn't support Hooks\\n` +\n `Please update React and ReactDOM to 16.8.0 or later to use the useStaticQuery hook.`\n )\n }\n const context = React.useContext(StaticQueryContext)\n\n // query is a stringified number like `3303882` when wrapped with graphql, If a user forgets\n // to wrap the query in a grqphql, then casting it to a Number results in `NaN` allowing us to\n // catch the misuse of the API and give proper direction\n if (isNaN(Number(query))) {\n throw new Error(`useStaticQuery was called with a string but expects to be called using \\`graphql\\`. Try this:\n\nimport { useStaticQuery, graphql } from 'gatsby';\n\nuseStaticQuery(graphql\\`${query}\\`);\n`)\n }\n\n if (context[query]?.data) {\n return context[query].data\n } else {\n throw new Error(\n `The result of this StaticQuery could not be fetched.\\n\\n` +\n `This is likely a bug in Gatsby and if refreshing the page does not fix it, ` +\n `please open an issue in https://github.com/gatsbyjs/gatsby/issues`\n )\n }\n}\n\nStaticQuery.propTypes = {\n data: PropTypes.object,\n query: PropTypes.string.isRequired,\n render: PropTypes.func,\n children: PropTypes.func,\n}\n\nfunction graphql() {\n throw new Error(\n `It appears like Gatsby is misconfigured. Gatsby related \\`graphql\\` calls ` +\n `are supposed to only be evaluated at compile time, and then compiled away. ` +\n `Unfortunately, something went wrong and the query was left in the compiled code.\\n\\n` +\n `Unless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.`\n )\n}\n\nexport {\n Link,\n withAssetPrefix,\n withPrefix,\n graphql,\n parsePath,\n navigate,\n useScrollRestoration,\n StaticQueryContext,\n StaticQuery,\n PageRenderer,\n useStaticQuery,\n prefetchPathname,\n}\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","const support = function (feature) {\n if (typeof document === `undefined`) {\n return false\n }\n const fakeLink = document.createElement(`link`)\n try {\n if (fakeLink.relList && typeof fakeLink.relList.supports === `function`) {\n return fakeLink.relList.supports(feature)\n }\n } catch (err) {\n return false\n }\n return false\n}\n\nconst linkPrefetchStrategy = function (url, options) {\n return new Promise((resolve, reject) => {\n if (typeof document === `undefined`) {\n reject()\n return\n }\n\n const link = document.createElement(`link`)\n link.setAttribute(`rel`, `prefetch`)\n link.setAttribute(`href`, url)\n\n Object.keys(options).forEach(key => {\n link.setAttribute(key, options[key])\n })\n\n link.onload = resolve\n link.onerror = reject\n\n const parentElement =\n document.getElementsByTagName(`head`)[0] ||\n document.getElementsByName(`script`)[0].parentNode\n parentElement.appendChild(link)\n })\n}\n\nconst xhrPrefetchStrategy = function (url) {\n return new Promise((resolve, reject) => {\n const req = new XMLHttpRequest()\n req.open(`GET`, url, true)\n\n req.onload = () => {\n if (req.status === 200) {\n resolve()\n } else {\n reject()\n }\n }\n\n req.send(null)\n })\n}\n\nconst supportedPrefetchStrategy = support(`prefetch`)\n ? linkPrefetchStrategy\n : xhrPrefetchStrategy\n\nconst preFetched = {}\n\nconst prefetch = function (url, options) {\n return new Promise(resolve => {\n if (preFetched[url]) {\n resolve()\n return\n }\n\n supportedPrefetchStrategy(url, options)\n .then(() => {\n resolve()\n preFetched[url] = true\n })\n .catch(() => {}) // 404s are logged to the console anyway\n })\n}\n\nexport default prefetch\n","import prefetchHelper from \"./prefetch\"\nimport emitter from \"./emitter\"\nimport { setMatchPaths, findPath, findMatchPath } from \"./find-path\"\n\n/**\n * Available resource loading statuses\n */\nexport const PageResourceStatus = {\n /**\n * At least one of critical resources failed to load\n */\n Error: `error`,\n /**\n * Resources loaded successfully\n */\n Success: `success`,\n}\n\nconst preferDefault = m => (m && m.default) || m\n\nconst stripSurroundingSlashes = s => {\n s = s[0] === `/` ? s.slice(1) : s\n s = s.endsWith(`/`) ? s.slice(0, -1) : s\n return s\n}\n\nconst createPageDataUrl = rawPath => {\n const [path, maybeSearch] = rawPath.split(`?`)\n const fixedPath = path === `/` ? `index` : stripSurroundingSlashes(path)\n return `${__PATH_PREFIX__}/page-data/${fixedPath}/page-data.json${\n maybeSearch ? `?${maybeSearch}` : ``\n }`\n}\n\nfunction doFetch(url, method = `GET`) {\n return new Promise(resolve => {\n const req = new XMLHttpRequest()\n req.open(method, url, true)\n req.onreadystatechange = () => {\n if (req.readyState == 4) {\n resolve(req)\n }\n }\n req.send(null)\n })\n}\n\nconst doesConnectionSupportPrefetch = () => {\n if (\n `connection` in navigator &&\n typeof navigator.connection !== `undefined`\n ) {\n if ((navigator.connection.effectiveType || ``).includes(`2g`)) {\n return false\n }\n if (navigator.connection.saveData) {\n return false\n }\n }\n return true\n}\n\nconst toPageResources = (pageData, component = null) => {\n const page = {\n componentChunkName: pageData.componentChunkName,\n path: pageData.path,\n webpackCompilationHash: pageData.webpackCompilationHash,\n matchPath: pageData.matchPath,\n staticQueryHashes: pageData.staticQueryHashes,\n getServerDataError: pageData.getServerDataError,\n }\n\n return {\n component,\n json: pageData.result,\n page,\n }\n}\n\nexport class BaseLoader {\n constructor(loadComponent, matchPaths) {\n // Map of pagePath -> Page. Where Page is an object with: {\n // status: PageResourceStatus.Success || PageResourceStatus.Error,\n // payload: PageResources, // undefined if PageResourceStatus.Error\n // }\n // PageResources is {\n // component,\n // json: pageData.result,\n // page: {\n // componentChunkName,\n // path,\n // webpackCompilationHash,\n // staticQueryHashes\n // },\n // staticQueryResults\n // }\n this.pageDb = new Map()\n this.inFlightDb = new Map()\n this.staticQueryDb = {}\n this.pageDataDb = new Map()\n this.isPrefetchQueueRunning = false\n this.prefetchQueued = []\n this.prefetchTriggered = new Set()\n this.prefetchCompleted = new Set()\n this.loadComponent = loadComponent\n setMatchPaths(matchPaths)\n }\n\n inFlightNetworkRequests = new Map()\n\n memoizedGet(url) {\n let inFlightPromise = this.inFlightNetworkRequests.get(url)\n\n if (!inFlightPromise) {\n inFlightPromise = doFetch(url, `GET`)\n this.inFlightNetworkRequests.set(url, inFlightPromise)\n }\n\n // Prefer duplication with then + catch over .finally to prevent problems in ie11 + firefox\n return inFlightPromise\n .then(response => {\n this.inFlightNetworkRequests.delete(url)\n return response\n })\n .catch(err => {\n this.inFlightNetworkRequests.delete(url)\n throw err\n })\n }\n\n setApiRunner(apiRunner) {\n this.apiRunner = apiRunner\n this.prefetchDisabled = apiRunner(`disableCorePrefetching`).some(a => a)\n }\n\n fetchPageDataJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.path === undefined) {\n throw new Error(`not a valid pageData response`)\n }\n\n const maybeSearch = pagePath.split(`?`)[1]\n if (maybeSearch && !jsonPayload.path.includes(maybeSearch)) {\n jsonPayload.path += `?${maybeSearch}`\n }\n\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: jsonPayload,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404/500 page and it doesn't exist, we're done\n if (pagePath === `/404.html` || pagePath === `/500.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPageDataJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, {\n pagePath: `/500.html`,\n internalServerError: true,\n })\n )\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n loadPageDataJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDataDb.has(pagePath)) {\n const pageData = this.pageDataDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPageDataJson({ pagePath }).then(pageData => {\n this.pageDataDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n findMatchPath(rawPath) {\n return findMatchPath(rawPath)\n }\n\n // TODO check all uses of this and whether they use undefined for page resources not exist\n loadPage(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const page = this.pageDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !page.payload.stale) {\n if (page.error) {\n return {\n error: page.error,\n status: page.status,\n }\n }\n\n return Promise.resolve(page.payload)\n }\n }\n\n if (this.inFlightDb.has(pagePath)) {\n return this.inFlightDb.get(pagePath)\n }\n\n const inFlightPromise = Promise.all([\n this.loadAppData(),\n this.loadPageDataJson(pagePath),\n ]).then(allData => {\n const result = allData[1]\n if (result.status === PageResourceStatus.Error) {\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n let pageData = result.payload\n const { componentChunkName, staticQueryHashes = [] } = pageData\n\n const finalResult = {}\n\n const componentChunkPromise = this.loadComponent(componentChunkName).then(\n component => {\n finalResult.createdAt = new Date()\n let pageResources\n if (!component || component instanceof Error) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = component\n } else {\n finalResult.status = PageResourceStatus.Success\n if (result.notFound === true) {\n finalResult.notFound = true\n }\n pageData = Object.assign(pageData, {\n webpackCompilationHash: allData[0]\n ? allData[0].webpackCompilationHash\n : ``,\n })\n pageResources = toPageResources(pageData, component)\n }\n // undefined if final result is an error\n return pageResources\n }\n )\n\n const staticQueryBatchPromise = Promise.all(\n staticQueryHashes.map(staticQueryHash => {\n // Check for cache in case this static query result has already been loaded\n if (this.staticQueryDb[staticQueryHash]) {\n const jsonPayload = this.staticQueryDb[staticQueryHash]\n return { staticQueryHash, jsonPayload }\n }\n\n return this.memoizedGet(\n `${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json`\n )\n .then(req => {\n const jsonPayload = JSON.parse(req.responseText)\n return { staticQueryHash, jsonPayload }\n })\n .catch(() => {\n throw new Error(\n `We couldn't load \"${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json\"`\n )\n })\n })\n ).then(staticQueryResults => {\n const staticQueryResultsMap = {}\n\n staticQueryResults.forEach(({ staticQueryHash, jsonPayload }) => {\n staticQueryResultsMap[staticQueryHash] = jsonPayload\n this.staticQueryDb[staticQueryHash] = jsonPayload\n })\n\n return staticQueryResultsMap\n })\n\n return (\n Promise.all([componentChunkPromise, staticQueryBatchPromise])\n .then(([pageResources, staticQueryResults]) => {\n let payload\n if (pageResources) {\n payload = { ...pageResources, staticQueryResults }\n finalResult.payload = payload\n emitter.emit(`onPostLoadPageResources`, {\n page: payload,\n pageResources: payload,\n })\n }\n\n this.pageDb.set(pagePath, finalResult)\n\n if (finalResult.error) {\n return {\n error: finalResult.error,\n status: finalResult.status,\n }\n }\n\n return payload\n })\n // when static-query fail to load we throw a better error\n .catch(err => {\n return {\n error: err,\n status: PageResourceStatus.Error,\n }\n })\n )\n })\n\n inFlightPromise\n .then(() => {\n this.inFlightDb.delete(pagePath)\n })\n .catch(error => {\n this.inFlightDb.delete(pagePath)\n throw error\n })\n\n this.inFlightDb.set(pagePath, inFlightPromise)\n\n return inFlightPromise\n }\n\n // returns undefined if the page does not exists in cache\n loadPageSync(rawPath, options = {}) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const pageData = this.pageDb.get(pagePath)\n\n if (pageData.payload) {\n return pageData.payload\n }\n\n if (options?.withErrorDetails) {\n return {\n error: pageData.error,\n status: pageData.status,\n }\n }\n }\n return undefined\n }\n\n shouldPrefetch(pagePath) {\n // Skip prefetching if we know user is on slow or constrained connection\n if (!doesConnectionSupportPrefetch()) {\n return false\n }\n\n // Check if the page exists.\n if (this.pageDb.has(pagePath)) {\n return false\n }\n\n return true\n }\n\n prefetch(pagePath) {\n if (!this.shouldPrefetch(pagePath)) {\n return {\n then: resolve => resolve(false),\n abort: () => {},\n }\n }\n if (this.prefetchTriggered.has(pagePath)) {\n return {\n then: resolve => resolve(true),\n abort: () => {},\n }\n }\n\n const defer = {\n resolve: null,\n reject: null,\n promise: null,\n }\n defer.promise = new Promise((resolve, reject) => {\n defer.resolve = resolve\n defer.reject = reject\n })\n this.prefetchQueued.push([pagePath, defer])\n const abortC = new AbortController()\n abortC.signal.addEventListener(`abort`, () => {\n const index = this.prefetchQueued.findIndex(([p]) => p === pagePath)\n // remove from the queue\n if (index !== -1) {\n this.prefetchQueued.splice(index, 1)\n }\n })\n\n if (!this.isPrefetchQueueRunning) {\n this.isPrefetchQueueRunning = true\n setTimeout(() => {\n this._processNextPrefetchBatch()\n }, 3000)\n }\n\n return {\n then: (resolve, reject) => defer.promise.then(resolve, reject),\n abort: abortC.abort.bind(abortC),\n }\n }\n\n _processNextPrefetchBatch() {\n const idleCallback = window.requestIdleCallback || (cb => setTimeout(cb, 0))\n\n idleCallback(() => {\n const toPrefetch = this.prefetchQueued.splice(0, 4)\n const prefetches = Promise.all(\n toPrefetch.map(([pagePath, dPromise]) => {\n // Tell plugins with custom prefetching logic that they should start\n // prefetching this path.\n if (!this.prefetchTriggered.has(pagePath)) {\n this.apiRunner(`onPrefetchPathname`, { pathname: pagePath })\n this.prefetchTriggered.add(pagePath)\n }\n\n // If a plugin has disabled core prefetching, stop now.\n if (this.prefetchDisabled) {\n return dPromise.resolve(false)\n }\n\n return this.doPrefetch(findPath(pagePath)).then(() => {\n if (!this.prefetchCompleted.has(pagePath)) {\n this.apiRunner(`onPostPrefetchPathname`, { pathname: pagePath })\n this.prefetchCompleted.add(pagePath)\n }\n\n dPromise.resolve(true)\n })\n })\n )\n\n if (this.prefetchQueued.length) {\n prefetches.then(() => {\n setTimeout(() => {\n this._processNextPrefetchBatch()\n }, 3000)\n })\n } else {\n this.isPrefetchQueueRunning = false\n }\n })\n }\n\n doPrefetch(pagePath) {\n const pageDataUrl = createPageDataUrl(pagePath)\n return prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n )\n }\n\n hovering(rawPath) {\n this.loadPage(rawPath)\n }\n\n getResourceURLsForPathname(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDataDb.get(pagePath)\n if (page) {\n const pageResources = toPageResources(page.payload)\n\n return [\n ...createComponentUrls(pageResources.page.componentChunkName),\n createPageDataUrl(pagePath),\n ]\n } else {\n return null\n }\n }\n\n isPageNotFound(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDb.get(pagePath)\n return !page || page.notFound\n }\n\n loadAppData(retries = 0) {\n return this.memoizedGet(`${__PATH_PREFIX__}/page-data/app-data.json`).then(\n req => {\n const { status, responseText } = req\n\n let appData\n\n if (status !== 200 && retries < 3) {\n // Retry 3 times incase of non-200 responses\n return this.loadAppData(retries + 1)\n }\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.webpackCompilationHash === undefined) {\n throw new Error(`not a valid app-data response`)\n }\n\n appData = jsonPayload\n } catch (err) {\n // continue regardless of error\n }\n }\n\n return appData\n }\n )\n }\n}\n\nconst createComponentUrls = componentChunkName =>\n (window.___chunkMapping[componentChunkName] || []).map(\n chunk => __PATH_PREFIX__ + chunk\n )\n\nexport class ProdLoader extends BaseLoader {\n constructor(asyncRequires, matchPaths, pageData) {\n const loadComponent = chunkName => {\n if (!asyncRequires.components[chunkName]) {\n throw new Error(\n `We couldn't find the correct component chunk with the name ${chunkName}`\n )\n }\n\n return (\n asyncRequires.components[chunkName]()\n .then(preferDefault)\n // loader will handle the case when component is error\n .catch(err => err)\n )\n }\n\n super(loadComponent, matchPaths)\n\n if (pageData) {\n this.pageDataDb.set(findPath(pageData.path), {\n pagePath: pageData.path,\n payload: pageData,\n status: `success`,\n })\n }\n }\n\n doPrefetch(pagePath) {\n return super.doPrefetch(pagePath).then(result => {\n if (result.status !== PageResourceStatus.Success) {\n return Promise.resolve()\n }\n const pageData = result.payload\n const chunkName = pageData.componentChunkName\n const componentUrls = createComponentUrls(chunkName)\n return Promise.all(componentUrls.map(prefetchHelper)).then(() => pageData)\n })\n }\n\n loadPageDataJson(rawPath) {\n return super.loadPageDataJson(rawPath).then(data => {\n if (data.notFound) {\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n}\n\nlet instance\n\nexport const setLoader = _loader => {\n instance = _loader\n}\n\nexport const publicLoader = {\n enqueue: rawPath => instance.prefetch(rawPath),\n\n // Real methods\n getResourceURLsForPathname: rawPath =>\n instance.getResourceURLsForPathname(rawPath),\n loadPage: rawPath => instance.loadPage(rawPath),\n // TODO add deprecation to v4 so people use withErrorDetails and then we can remove in v5 and change default behaviour\n loadPageSync: (rawPath, options = {}) =>\n instance.loadPageSync(rawPath, options),\n prefetch: rawPath => instance.prefetch(rawPath),\n isPageNotFound: rawPath => instance.isPageNotFound(rawPath),\n hovering: rawPath => instance.hovering(rawPath),\n loadAppData: () => instance.loadAppData(),\n}\n\nexport default publicLoader\n\nexport function getStaticQueryResults() {\n if (instance) {\n return instance.staticQueryDb\n } else {\n return {}\n }\n}\n","import React, { createElement } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport { grabMatchParams } from \"./find-path\"\n\n// Renders page\nclass PageRenderer extends React.Component {\n render() {\n const props = {\n ...this.props,\n params: {\n ...grabMatchParams(this.props.location.pathname),\n ...this.props.pageResources.json.pageContext.__params,\n },\n }\n\n const pageElement = createElement(this.props.pageResources.component, {\n ...props,\n key: this.props.path || this.props.pageResources.page.path,\n })\n\n const wrappedPage = apiRunner(\n `wrapPageElement`,\n { element: pageElement, props },\n pageElement,\n ({ result }) => {\n return { element: result, props }\n }\n ).pop()\n\n return wrappedPage\n }\n}\n\nPageRenderer.propTypes = {\n location: PropTypes.object.isRequired,\n pageResources: PropTypes.object.isRequired,\n data: PropTypes.object,\n pageContext: PropTypes.object.isRequired,\n}\n\nexport default PageRenderer\n","// This is extracted to separate module because it's shared\n// between browser and SSR code\nexport const RouteAnnouncerProps = {\n id: `gatsby-announcer`,\n style: {\n position: `absolute`,\n top: 0,\n width: 1,\n height: 1,\n padding: 0,\n overflow: `hidden`,\n clip: `rect(0, 0, 0, 0)`,\n whiteSpace: `nowrap`,\n border: 0,\n },\n \"aria-live\": `assertive`,\n \"aria-atomic\": `true`,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport emitter from \"./emitter\"\nimport { RouteAnnouncerProps } from \"./route-announcer-props\"\nimport { navigate as reachNavigate } from \"@gatsbyjs/reach-router\"\nimport { globalHistory } from \"@gatsbyjs/reach-router/lib/history\"\nimport { parsePath } from \"gatsby-link\"\n\nfunction maybeRedirect(pathname) {\n const redirect = maybeGetBrowserRedirect(pathname)\n const { hash, search } = window.location\n\n if (redirect != null) {\n window.___replace(redirect.toPath + search + hash)\n return true\n } else {\n return false\n }\n}\n\n// Catch unhandled chunk loading errors and force a restart of the app.\nlet nextRoute = ``\n\nwindow.addEventListener(`unhandledrejection`, event => {\n if (/loading chunk \\d* failed./i.test(event.reason)) {\n if (nextRoute) {\n window.location.pathname = nextRoute\n }\n }\n})\n\nconst onPreRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n nextRoute = location.pathname\n apiRunner(`onPreRouteUpdate`, { location, prevLocation })\n }\n}\n\nconst onRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onRouteUpdate`, { location, prevLocation })\n if (\n process.env.GATSBY_EXPERIMENTAL_QUERY_ON_DEMAND &&\n process.env.GATSBY_QUERY_ON_DEMAND_LOADING_INDICATOR === `true`\n ) {\n emitter.emit(`onRouteUpdate`, { location, prevLocation })\n }\n }\n}\n\nconst navigate = (to, options = {}) => {\n // Support forward/backward navigation with numbers\n // navigate(-2) (jumps back 2 history steps)\n // navigate(2) (jumps forward 2 history steps)\n if (typeof to === `number`) {\n globalHistory.navigate(to)\n return\n }\n\n const { pathname, search, hash } = parsePath(to)\n const redirect = maybeGetBrowserRedirect(pathname)\n\n // If we're redirecting, just replace the passed in pathname\n // to the one we want to redirect to.\n if (redirect) {\n to = redirect.toPath + search + hash\n }\n\n // If we had a service worker update, no matter the path, reload window and\n // reset the pathname whitelist\n if (window.___swUpdated) {\n window.location = pathname + search + hash\n return\n }\n\n // Start a timer to wait for a second before transitioning and showing a\n // loader in case resources aren't around yet.\n const timeoutId = setTimeout(() => {\n emitter.emit(`onDelayedLoadPageResources`, { pathname })\n apiRunner(`onRouteUpdateDelayed`, {\n location: window.location,\n })\n }, 1000)\n\n loader.loadPage(pathname + search).then(pageResources => {\n // If no page resources, then refresh the page\n // Do this, rather than simply `window.location.reload()`, so that\n // pressing the back/forward buttons work - otherwise when pressing\n // back, the browser will just change the URL and expect JS to handle\n // the change, which won't always work since it might not be a Gatsby\n // page.\n if (!pageResources || pageResources.status === PageResourceStatus.Error) {\n window.history.replaceState({}, ``, location.href)\n window.location = pathname\n clearTimeout(timeoutId)\n return\n }\n\n // If the loaded page has a different compilation hash to the\n // window, then a rebuild has occurred on the server. Reload.\n if (process.env.NODE_ENV === `production` && pageResources) {\n if (\n pageResources.page.webpackCompilationHash !==\n window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n window.location = pathname + search + hash\n }\n }\n reachNavigate(to, options)\n clearTimeout(timeoutId)\n })\n}\n\nfunction shouldUpdateScroll(prevRouterProps, { location }) {\n const { pathname, hash } = location\n const results = apiRunner(`shouldUpdateScroll`, {\n prevRouterProps,\n // `pathname` for backwards compatibility\n pathname,\n routerProps: { location },\n getSavedScrollPosition: args => [\n 0,\n // FIXME this is actually a big code smell, we should fix this\n // eslint-disable-next-line @babel/no-invalid-this\n this._stateStorage.read(args, args.key),\n ],\n })\n if (results.length > 0) {\n // Use the latest registered shouldUpdateScroll result, this allows users to override plugin's configuration\n // @see https://github.com/gatsbyjs/gatsby/issues/12038\n return results[results.length - 1]\n }\n\n if (prevRouterProps) {\n const {\n location: { pathname: oldPathname },\n } = prevRouterProps\n if (oldPathname === pathname) {\n // Scroll to element if it exists, if it doesn't, or no hash is provided,\n // scroll to top.\n return hash ? decodeURI(hash.slice(1)) : [0, 0]\n }\n }\n return true\n}\n\nfunction init() {\n // The \"scroll-behavior\" package expects the \"action\" to be on the location\n // object so let's copy it over.\n globalHistory.listen(args => {\n args.location.action = args.action\n })\n\n window.___push = to => navigate(to, { replace: false })\n window.___replace = to => navigate(to, { replace: true })\n window.___navigate = (to, options) => navigate(to, options)\n}\n\nclass RouteAnnouncer extends React.Component {\n constructor(props) {\n super(props)\n this.announcementRef = React.createRef()\n }\n\n componentDidUpdate(prevProps, nextProps) {\n requestAnimationFrame(() => {\n let pageName = `new page at ${this.props.location.pathname}`\n if (document.title) {\n pageName = document.title\n }\n const pageHeadings = document.querySelectorAll(`#gatsby-focus-wrapper h1`)\n if (pageHeadings && pageHeadings.length) {\n pageName = pageHeadings[0].textContent\n }\n const newAnnouncement = `Navigated to ${pageName}`\n if (this.announcementRef.current) {\n const oldAnnouncement = this.announcementRef.current.innerText\n if (oldAnnouncement !== newAnnouncement) {\n this.announcementRef.current.innerText = newAnnouncement\n }\n }\n })\n }\n\n render() {\n return
\n }\n}\n\nconst compareLocationProps = (prevLocation, nextLocation) => {\n if (prevLocation.href !== nextLocation.href) {\n return true\n }\n\n if (prevLocation?.state?.key !== nextLocation?.state?.key) {\n return true\n }\n\n return false\n}\n\n// Fire on(Pre)RouteUpdate APIs\nclass RouteUpdates extends React.Component {\n constructor(props) {\n super(props)\n onPreRouteUpdate(props.location, null)\n }\n\n componentDidMount() {\n onRouteUpdate(this.props.location, null)\n }\n\n shouldComponentUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onPreRouteUpdate(this.props.location, prevProps.location)\n return true\n }\n return false\n }\n\n componentDidUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onRouteUpdate(this.props.location, prevProps.location)\n }\n }\n\n render() {\n return (\n \n {this.props.children}\n \n \n )\n }\n}\n\nRouteUpdates.propTypes = {\n location: PropTypes.object.isRequired,\n}\n\nexport { init, shouldUpdateScroll, RouteUpdates, maybeGetBrowserRedirect }\n","// Pulled from react-compat\n// https://github.com/developit/preact-compat/blob/7c5de00e7c85e2ffd011bf3af02899b63f699d3a/src/index.js#L349\nfunction shallowDiffers(a, b) {\n for (var i in a) {\n if (!(i in b)) return true;\n }for (var _i in b) {\n if (a[_i] !== b[_i]) return true;\n }return false;\n}\n\nexport default (function (instance, nextProps, nextState) {\n return shallowDiffers(instance.props, nextProps) || shallowDiffers(instance.state, nextState);\n});","/* global HAS_REACT_18 */\nimport { apiRunner, apiRunnerAsync } from \"./api-runner-browser\"\nimport React from \"react\"\nimport { Router, navigate, Location, BaseContext } from \"@gatsbyjs/reach-router\"\nimport { ScrollContext } from \"gatsby-react-router-scroll\"\nimport { StaticQueryContext } from \"gatsby\"\nimport {\n shouldUpdateScroll,\n init as navigationInit,\n RouteUpdates,\n} from \"./navigation\"\nimport emitter from \"./emitter\"\nimport PageRenderer from \"./page-renderer\"\nimport asyncRequires from \"$virtual/async-requires\"\nimport {\n setLoader,\n ProdLoader,\n publicLoader,\n PageResourceStatus,\n getStaticQueryResults,\n} from \"./loader\"\nimport EnsureResources from \"./ensure-resources\"\nimport stripPrefix from \"./strip-prefix\"\n\n// Generated during bootstrap\nimport matchPaths from \"$virtual/match-paths.json\"\n\nconst loader = new ProdLoader(asyncRequires, matchPaths, window.pageData)\nsetLoader(loader)\nloader.setApiRunner(apiRunner)\n\nlet reactHydrate\nlet reactRender\nif (HAS_REACT_18) {\n const reactDomClient = require(`react-dom/client`)\n reactRender = (Component, el) =>\n reactDomClient.createRoot(el).render(Component)\n reactHydrate = (Component, el) => reactDomClient.hydrateRoot(el, Component)\n} else {\n const reactDomClient = require(`react-dom`)\n reactRender = reactDomClient.render\n reactHydrate = reactDomClient.hydrate\n}\n\nwindow.asyncRequires = asyncRequires\nwindow.___emitter = emitter\nwindow.___loader = publicLoader\n\nnavigationInit()\n\nconst reloadStorageKey = `gatsby-reload-compilation-hash-match`\n\napiRunnerAsync(`onClientEntry`).then(() => {\n // Let plugins register a service worker. The plugin just needs\n // to return true.\n if (apiRunner(`registerServiceWorker`).filter(Boolean).length > 0) {\n require(`./register-service-worker`)\n }\n\n // In gatsby v2 if Router is used in page using matchPaths\n // paths need to contain full path.\n // For example:\n // - page have `/app/*` matchPath\n // - inside template user needs to use `/app/xyz` as path\n // Resetting `basepath`/`baseuri` keeps current behaviour\n // to not introduce breaking change.\n // Remove this in v3\n const RouteHandler = props => (\n \n \n \n )\n\n const DataContext = React.createContext({})\n\n class GatsbyRoot extends React.Component {\n render() {\n const { children } = this.props\n return (\n \n {({ location }) => (\n \n {({ pageResources, location }) => {\n const staticQueryResults = getStaticQueryResults()\n return (\n \n \n {children}\n \n \n )\n }}\n \n )}\n \n )\n }\n }\n\n class LocationHandler extends React.Component {\n render() {\n return (\n \n {({ pageResources, location }) => (\n \n \n \n \n
\n \n \n )}\n \n )\n }\n }\n\n const { pagePath, location: browserLoc } = window\n\n // Explicitly call navigate if the canonical path (window.pagePath)\n // is different to the browser path (window.location.pathname). SSR\n // page paths might include search params, while SSG and DSG won't.\n // If page path include search params we also compare query params.\n // But only if NONE of the following conditions hold:\n //\n // - The url matches a client side route (page.matchPath)\n // - it's a 404 page\n // - it's the offline plugin shell (/offline-plugin-app-shell-fallback/)\n if (\n pagePath &&\n __BASE_PATH__ + pagePath !==\n browserLoc.pathname + (pagePath.includes(`?`) ? browserLoc.search : ``) &&\n !(\n loader.findMatchPath(stripPrefix(browserLoc.pathname, __BASE_PATH__)) ||\n pagePath.match(/^\\/(404|500)(\\/?|.html)$/) ||\n pagePath.match(/^\\/offline-plugin-app-shell-fallback\\/?$/)\n )\n ) {\n navigate(\n __BASE_PATH__ +\n pagePath +\n (!pagePath.includes(`?`) ? browserLoc.search : ``) +\n browserLoc.hash,\n {\n replace: true,\n }\n )\n }\n\n // It's possible that sessionStorage can throw an exception if access is not granted, see https://github.com/gatsbyjs/gatsby/issues/34512\n const getSessionStorage = () => {\n try {\n return sessionStorage\n } catch {\n return null\n }\n }\n\n publicLoader.loadPage(browserLoc.pathname + browserLoc.search).then(page => {\n const sessionStorage = getSessionStorage()\n\n if (\n page?.page?.webpackCompilationHash &&\n page.page.webpackCompilationHash !== window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n // We have not matching html + js (inlined `window.___webpackCompilationHash`)\n // with our data (coming from `app-data.json` file). This can cause issues such as\n // errors trying to load static queries (as list of static queries is inside `page-data`\n // which might not match to currently loaded `.js` scripts).\n // We are making attempt to reload if hashes don't match, but we also have to handle case\n // when reload doesn't fix it (possibly broken deploy) so we don't end up in infinite reload loop\n if (sessionStorage) {\n const isReloaded = sessionStorage.getItem(reloadStorageKey) === `1`\n\n if (!isReloaded) {\n sessionStorage.setItem(reloadStorageKey, `1`)\n window.location.reload(true)\n return\n }\n }\n }\n\n if (sessionStorage) {\n sessionStorage.removeItem(reloadStorageKey)\n }\n\n if (!page || page.status === PageResourceStatus.Error) {\n const message = `page resources for ${browserLoc.pathname} not found. Not rendering React`\n\n // if the chunk throws an error we want to capture the real error\n // This should help with https://github.com/gatsbyjs/gatsby/issues/19618\n if (page && page.error) {\n console.error(message)\n throw page.error\n }\n\n throw new Error(message)\n }\n\n const SiteRoot = apiRunner(\n `wrapRootElement`,\n { element: },\n ,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n const App = function App() {\n const onClientEntryRanRef = React.useRef(false)\n\n React.useEffect(() => {\n if (!onClientEntryRanRef.current) {\n onClientEntryRanRef.current = true\n if (performance.mark) {\n performance.mark(`onInitialClientRender`)\n }\n\n apiRunner(`onInitialClientRender`)\n }\n }, [])\n\n return {SiteRoot}\n }\n\n const focusEl = document.getElementById(`gatsby-focus-wrapper`)\n\n // Client only pages have any empty body so we just do a normal\n // render to avoid React complaining about hydration mis-matches.\n let defaultRenderer = reactRender\n if (focusEl && focusEl.children.length) {\n defaultRenderer = reactHydrate\n }\n\n const renderer = apiRunner(\n `replaceHydrateFunction`,\n undefined,\n defaultRenderer\n )[0]\n\n function runRender() {\n const rootElement =\n typeof window !== `undefined`\n ? document.getElementById(`___gatsby`)\n : null\n\n renderer(, rootElement)\n }\n\n // https://github.com/madrobby/zepto/blob/b5ed8d607f67724788ec9ff492be297f64d47dfc/src/zepto.js#L439-L450\n // TODO remove IE 10 support\n const doc = document\n if (\n doc.readyState === `complete` ||\n (doc.readyState !== `loading` && !doc.documentElement.doScroll)\n ) {\n setTimeout(function () {\n runRender()\n }, 0)\n } else {\n const handler = function () {\n doc.removeEventListener(`DOMContentLoaded`, handler, false)\n window.removeEventListener(`load`, handler, false)\n\n runRender()\n }\n\n doc.addEventListener(`DOMContentLoaded`, handler, false)\n window.addEventListener(`load`, handler, false)\n }\n })\n})\n","import React from \"react\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport shallowCompare from \"shallow-compare\"\n\nclass EnsureResources extends React.Component {\n constructor(props) {\n super()\n const { location, pageResources } = props\n this.state = {\n location: { ...location },\n pageResources:\n pageResources ||\n loader.loadPageSync(location.pathname + location.search, {\n withErrorDetails: true,\n }),\n }\n }\n\n static getDerivedStateFromProps({ location }, prevState) {\n if (prevState.location.href !== location.href) {\n const pageResources = loader.loadPageSync(\n location.pathname + location.search,\n {\n withErrorDetails: true,\n }\n )\n\n return {\n pageResources,\n location: { ...location },\n }\n }\n\n return {\n location: { ...location },\n }\n }\n\n loadResources(rawPath) {\n loader.loadPage(rawPath).then(pageResources => {\n if (pageResources && pageResources.status !== PageResourceStatus.Error) {\n this.setState({\n location: { ...window.location },\n pageResources,\n })\n } else {\n window.history.replaceState({}, ``, location.href)\n window.location = rawPath\n }\n })\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n // Always return false if we're missing resources.\n if (!nextState.pageResources) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n if (\n process.env.BUILD_STAGE === `develop` &&\n nextState.pageResources.stale\n ) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n // Check if the component or json have changed.\n if (this.state.pageResources !== nextState.pageResources) {\n return true\n }\n if (\n this.state.pageResources.component !== nextState.pageResources.component\n ) {\n return true\n }\n\n if (this.state.pageResources.json !== nextState.pageResources.json) {\n return true\n }\n // Check if location has changed on a page using internal routing\n // via matchPath configuration.\n if (\n this.state.location.key !== nextState.location.key &&\n nextState.pageResources.page &&\n (nextState.pageResources.page.matchPath ||\n nextState.pageResources.page.path)\n ) {\n return true\n }\n return shallowCompare(this, nextProps, nextState)\n }\n\n render() {\n if (\n process.env.NODE_ENV !== `production` &&\n (!this.state.pageResources ||\n this.state.pageResources.status === PageResourceStatus.Error)\n ) {\n const message = `EnsureResources was not able to find resources for path: \"${this.props.location.pathname}\"\nThis typically means that an issue occurred building components for that path.\nRun \\`gatsby clean\\` to remove any cached elements.`\n if (this.state.pageResources?.error) {\n console.error(message)\n throw this.state.pageResources.error\n }\n\n throw new Error(message)\n }\n\n return this.props.children(this.state)\n }\n}\n\nexport default EnsureResources\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport loader from \"./loader\"\nimport InternalPageRenderer from \"./page-renderer\"\n\nconst ProdPageRenderer = ({ location }) => {\n const pageResources = loader.loadPageSync(location.pathname)\n if (!pageResources) {\n return null\n }\n return React.createElement(InternalPageRenderer, {\n location,\n pageResources,\n ...pageResources.json,\n })\n}\n\nProdPageRenderer.propTypes = {\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired,\n }).isRequired,\n}\n\nexport default ProdPageRenderer\n","const preferDefault = m => (m && m.default) || m\n\nif (process.env.BUILD_STAGE === `develop`) {\n module.exports = preferDefault(require(`./public-page-renderer-dev`))\n} else if (process.env.BUILD_STAGE === `build-javascript`) {\n module.exports = preferDefault(require(`./public-page-renderer-prod`))\n} else {\n module.exports = () => null\n}\n","exports.polyfill = Component => Component\n","import redirects from \"./redirects.json\"\n\n// Convert to a map for faster lookup in maybeRedirect()\n\nconst redirectMap = new Map()\nconst redirectIgnoreCaseMap = new Map()\n\nredirects.forEach(redirect => {\n if (redirect.ignoreCase) {\n redirectIgnoreCaseMap.set(redirect.fromPath, redirect)\n } else {\n redirectMap.set(redirect.fromPath, redirect)\n }\n})\n\nexport function maybeGetBrowserRedirect(pathname) {\n let redirect = redirectMap.get(pathname)\n if (!redirect) {\n redirect = redirectIgnoreCaseMap.get(pathname.toLowerCase())\n }\n return redirect\n}\n","import { apiRunner } from \"./api-runner-browser\"\n\nif (\n window.location.protocol !== `https:` &&\n window.location.hostname !== `localhost`\n) {\n console.error(\n `Service workers can only be used over HTTPS, or on localhost for development`\n )\n} else if (`serviceWorker` in navigator) {\n navigator.serviceWorker\n .register(`${__BASE_PATH__}/sw.js`)\n .then(function (reg) {\n reg.addEventListener(`updatefound`, () => {\n apiRunner(`onServiceWorkerUpdateFound`, { serviceWorker: reg })\n // The updatefound event implies that reg.installing is set; see\n // https://w3c.github.io/ServiceWorker/#service-worker-registration-updatefound-event\n const installingWorker = reg.installing\n console.log(`installingWorker`, installingWorker)\n installingWorker.addEventListener(`statechange`, () => {\n switch (installingWorker.state) {\n case `installed`:\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and the fresh content will\n // have been added to the cache.\n\n // We set a flag so Gatsby Link knows to refresh the page on next navigation attempt\n window.___swUpdated = true\n // We call the onServiceWorkerUpdateReady API so users can show update prompts.\n apiRunner(`onServiceWorkerUpdateReady`, { serviceWorker: reg })\n\n // If resources failed for the current page, reload.\n if (window.___failedResources) {\n console.log(`resources failed, SW updated - reloading`)\n window.location.reload()\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a \"Content is cached for offline use.\" message.\n console.log(`Content is now available offline!`)\n\n // Post to service worker that install is complete.\n // Delay to allow time for the event listener to be added --\n // otherwise fetch is called too soon and resources aren't cached.\n apiRunner(`onServiceWorkerInstalled`, { serviceWorker: reg })\n }\n break\n\n case `redundant`:\n console.error(`The installing service worker became redundant.`)\n apiRunner(`onServiceWorkerRedundant`, { serviceWorker: reg })\n break\n\n case `activated`:\n apiRunner(`onServiceWorkerActive`, { serviceWorker: reg })\n break\n }\n })\n })\n })\n .catch(function (e) {\n console.error(`Error during service worker registration:`, e)\n })\n}\n","/**\n * Remove a prefix from a string. Return the input string if the given prefix\n * isn't found.\n */\n\nexport default function stripPrefix(str, prefix = ``) {\n if (!prefix) {\n return str\n }\n\n if (str === prefix) {\n return `/`\n }\n\n if (str.startsWith(`${prefix}/`)) {\n return str.slice(prefix.length)\n }\n\n return str\n}\n","import 'github-markdown-css';\nimport '@styles/index.scss';\n\nexport const onServiceWorkerUpdateReady = () => {\n const answer = window.confirm(\n `This application has been updated. ` +\n `Reload to display the latest version?`\n );\n if (answer === true) {\n window.location.reload();\n }\n};\n","/* global __MANIFEST_PLUGIN_HAS_LOCALISATION__ */\nimport { withPrefix } from \"gatsby\";\nimport getManifestForPathname from \"./get-manifest-pathname\"; // when we don't have localisation in our manifest, we tree shake everything away\n\nexport const onRouteUpdate = function onRouteUpdate({\n location\n}, pluginOptions) {\n if (__MANIFEST_PLUGIN_HAS_LOCALISATION__) {\n const {\n localize\n } = pluginOptions;\n const manifestFilename = getManifestForPathname(location.pathname, localize, true);\n const manifestEl = document.head.querySelector(`link[rel=\"manifest\"]`);\n\n if (manifestEl) {\n manifestEl.setAttribute(`href`, withPrefix(manifestFilename));\n }\n }\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _gatsby = require(\"gatsby\");\n\n/**\n * Get a manifest filename depending on localized pathname\n *\n * @param {string} pathname\n * @param {Array<{start_url: string, lang: string}>} localizedManifests\n * @param {boolean} shouldPrependPathPrefix\n * @return string\n */\nvar _default = (pathname, localizedManifests, shouldPrependPathPrefix = false) => {\n const defaultFilename = `manifest.webmanifest`;\n\n if (!Array.isArray(localizedManifests)) {\n return defaultFilename;\n }\n\n const localizedManifest = localizedManifests.find(app => {\n let startUrl = app.start_url;\n\n if (shouldPrependPathPrefix) {\n startUrl = (0, _gatsby.withPrefix)(startUrl);\n }\n\n return pathname.startsWith(startUrl);\n });\n\n if (!localizedManifest) {\n return defaultFilename;\n }\n\n return `manifest_${localizedManifest.lang}.webmanifest`;\n};\n\nexports.default = _default;","\"use strict\";\n\nexports.registerServiceWorker = function () {\n return process.env.GATSBY_IS_PREVIEW !== \"true\";\n}; // only cache relevant resources for this page\n\n\nvar whiteListLinkRels = /^(stylesheet|preload)$/;\nvar prefetchedPathnames = [];\n\nexports.onServiceWorkerActive = function (_ref) {\n var getResourceURLsForPathname = _ref.getResourceURLsForPathname,\n serviceWorker = _ref.serviceWorker;\n\n if (process.env.GATSBY_IS_PREVIEW === \"true\") {\n return;\n } // if the SW has just updated then clear the path dependencies and don't cache\n // stuff, since we're on the old revision until we navigate to another page\n\n\n if (window.___swUpdated) {\n serviceWorker.active.postMessage({\n gatsbyApi: \"clearPathResources\"\n });\n return;\n } // grab nodes from head of document\n\n\n var nodes = document.querySelectorAll(\"\\n head > script[src],\\n head > link[href],\\n head > style[data-href]\\n \"); // get all resource URLs\n\n var headerResources = [].slice.call(nodes) // don't include preconnect/prefetch/prerender resources\n .filter(function (node) {\n return node.tagName !== \"LINK\" || whiteListLinkRels.test(node.getAttribute(\"rel\"));\n }).map(function (node) {\n return node.src || node.href || node.getAttribute(\"data-href\");\n }); // Loop over prefetched pages and add their resources to an array,\n // plus specify which resources are required for those paths.\n\n var prefetchedResources = [];\n prefetchedPathnames.forEach(function (path) {\n var resources = getResourceURLsForPathname(path);\n prefetchedResources.push.apply(prefetchedResources, resources);\n serviceWorker.active.postMessage({\n gatsbyApi: \"setPathResources\",\n path: path,\n resources: resources\n });\n }); // Loop over all resources and fetch the page component + JSON data\n // to add it to the SW cache.\n\n var resources = [].concat(headerResources, prefetchedResources);\n resources.forEach(function (resource) {\n // Create a prefetch link for each resource, so Workbox runtime-caches them\n var link = document.createElement(\"link\");\n link.rel = \"prefetch\";\n link.href = resource;\n link.onload = link.remove;\n link.onerror = link.remove;\n document.head.appendChild(link);\n });\n};\n\nfunction setPathResources(path, getResourceURLsForPathname) {\n // do nothing if the SW has just updated, since we still have old pages in\n // memory which we don't want to be whitelisted\n if (window.___swUpdated) return;\n\n if (\"serviceWorker\" in navigator) {\n var _navigator = navigator,\n serviceWorker = _navigator.serviceWorker;\n\n if (serviceWorker.controller === null) {\n // if SW is not installed, we need to record any prefetches\n // that happen so we can then add them to SW cache once installed\n prefetchedPathnames.push(path);\n } else {\n var resources = getResourceURLsForPathname(path);\n serviceWorker.controller.postMessage({\n gatsbyApi: \"setPathResources\",\n path: path,\n resources: resources\n });\n }\n }\n}\n\nexports.onRouteUpdate = function (_ref2) {\n var location = _ref2.location,\n getResourceURLsForPathname = _ref2.getResourceURLsForPathname;\n var pathname = location.pathname.replace(__BASE_PATH__, \"\");\n setPathResources(pathname, getResourceURLsForPathname);\n\n if (\"serviceWorker\" in navigator && navigator.serviceWorker.controller !== null) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: \"enableOfflineShell\"\n });\n }\n};\n\nexports.onPostPrefetchPathname = function (_ref3) {\n var pathname = _ref3.pathname,\n getResourceURLsForPathname = _ref3.getResourceURLsForPathname;\n setPathResources(pathname, getResourceURLsForPathname);\n};","import invariant from \"invariant\"; ////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\n\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\n}; ////////////////////////////////////////////////////////////////////////////////\n// pick(routes, uri)\n//\n// Ranks and picks the best route to match. Each segment gets the highest\n// amount of points, then the type of segment gets an additional amount of\n// points where\n//\n// static > dynamic > splat > root\n//\n// This way we don't have to worry about the order of our routes, let the\n// computers do it.\n//\n// A route looks like this\n//\n// { path, default, value }\n//\n// And a returned match looks like:\n//\n// { route, params, uri }\n//\n// I know, I should use TypeScript not comments for these types.\n\n\nvar pick = function pick(routes, uri) {\n var match = void 0;\n var default_ = void 0;\n\n var _uri$split = uri.split(\"?\"),\n uriPathname = _uri$split[0];\n\n var uriSegments = segmentize(uriPathname);\n var isRootUri = uriSegments[0] === \"\";\n var ranked = rankRoutes(routes);\n\n for (var i = 0, l = ranked.length; i < l; i++) {\n var missed = false;\n var route = ranked[i].route;\n\n if (route.default) {\n default_ = {\n route: route,\n params: {},\n uri: uri\n };\n continue;\n }\n\n var routeSegments = segmentize(route.path);\n var params = {};\n var max = Math.max(uriSegments.length, routeSegments.length);\n var index = 0;\n\n for (; index < max; index++) {\n var routeSegment = routeSegments[index];\n var uriSegment = uriSegments[index];\n\n if (isSplat(routeSegment)) {\n // Hit a splat, just grab the rest, and return a match\n // uri: /files/documents/work\n // route: /files/*\n var param = routeSegment.slice(1) || \"*\";\n params[param] = uriSegments.slice(index).map(decodeURIComponent).join(\"/\");\n break;\n }\n\n if (uriSegment === undefined) {\n // URI is shorter than the route, no match\n // uri: /users\n // route: /users/:userId\n missed = true;\n break;\n }\n\n var dynamicMatch = paramRe.exec(routeSegment);\n\n if (dynamicMatch && !isRootUri) {\n var matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1;\n !matchIsNotReserved ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" dynamic segment \\\"\" + dynamicMatch[1] + \"\\\" is a reserved name. Please use a different name in path \\\"\" + route.path + \"\\\".\") : invariant(false) : void 0;\n var value = decodeURIComponent(uriSegment);\n params[dynamicMatch[1]] = value;\n } else if (routeSegment !== uriSegment) {\n // Current segments don't match, not dynamic, not splat, so no match\n // uri: /users/123/settings\n // route: /users/:id/profile\n missed = true;\n break;\n }\n }\n\n if (!missed) {\n match = {\n route: route,\n params: params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\")\n };\n break;\n }\n }\n\n return match || default_ || null;\n}; ////////////////////////////////////////////////////////////////////////////////\n// match(path, uri) - Matches just one path to a uri, also lol\n\n\nvar match = function match(path, uri) {\n return pick([{\n path: path\n }], uri);\n}; ////////////////////////////////////////////////////////////////////////////////\n// resolve(to, basepath)\n//\n// Resolves URIs as though every path is a directory, no files. Relative URIs\n// in the browser can feel awkward because not only can you be \"in a directory\"\n// you can be \"at a file\", too. For example\n//\n// browserSpecResolve('foo', '/bar/') => /bar/foo\n// browserSpecResolve('foo', '/bar') => /foo\n//\n// But on the command line of a file system, it's not as complicated, you can't\n// `cd` from a file, only directories. This way, links have to know less about\n// their current path. To go deeper you can do this:\n//\n// \n// // instead of\n// \n//\n// Just like `cd`, if you want to go deeper from the command line, you do this:\n//\n// cd deeper\n// # not\n// cd $(pwd)/deeper\n//\n// By treating every path as a directory, linking to relative paths should\n// require less contextual information and (fingers crossed) be more intuitive.\n\n\nvar resolve = function resolve(to, base) {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to;\n }\n\n var _to$split = to.split(\"?\"),\n toPathname = _to$split[0],\n toQuery = _to$split[1];\n\n var _base$split = base.split(\"?\"),\n basePathname = _base$split[0];\n\n var toSegments = segmentize(toPathname);\n var baseSegments = segmentize(basePathname); // ?a=b, /users?b=c => /users?a=b\n\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n } // profile, /users/789 => /users/789/profile\n\n\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\n } // ./ /users/123 => /users/123\n // ../ /users/123 => /users\n // ../.. /users/123 => /\n // ../../one /a/b/c/d => /a/b/one\n // .././one /a/b/c/d => /a/b/c/one\n\n\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n\n for (var i = 0, l = allSegments.length; i < l; i++) {\n var segment = allSegments[i];\n if (segment === \"..\") segments.pop();else if (segment !== \".\") segments.push(segment);\n }\n\n return addQuery(\"/\" + segments.join(\"/\"), toQuery);\n}; ////////////////////////////////////////////////////////////////////////////////\n// insertParams(path, params)\n\n\nvar insertParams = function insertParams(path, params) {\n var _path$split = path.split(\"?\"),\n pathBase = _path$split[0],\n _path$split$ = _path$split[1],\n query = _path$split$ === undefined ? \"\" : _path$split$;\n\n var segments = segmentize(pathBase);\n var constructedPath = \"/\" + segments.map(function (segment) {\n var match = paramRe.exec(segment);\n return match ? params[match[1]] : segment;\n }).join(\"/\");\n var _params$location = params.location;\n _params$location = _params$location === undefined ? {} : _params$location;\n var _params$location$sear = _params$location.search,\n search = _params$location$sear === undefined ? \"\" : _params$location$sear;\n var searchSplit = search.split(\"?\")[1] || \"\";\n constructedPath = addQuery(constructedPath, query, searchSplit);\n return constructedPath;\n};\n\nvar validateRedirect = function validateRedirect(from, to) {\n var filter = function filter(segment) {\n return isDynamic(segment);\n };\n\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n}; ////////////////////////////////////////////////////////////////////////////////\n// Junk\n\n\nvar paramRe = /^:(.+)/;\nvar SEGMENT_POINTS = 4;\nvar STATIC_POINTS = 3;\nvar DYNAMIC_POINTS = 2;\nvar SPLAT_PENALTY = 1;\nvar ROOT_POINTS = 1;\n\nvar isRootSegment = function isRootSegment(segment) {\n return segment === \"\";\n};\n\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\n\nvar isSplat = function isSplat(segment) {\n return segment && segment[0] === \"*\";\n};\n\nvar rankRoute = function rankRoute(route, index) {\n var score = route.default ? 0 : segmentize(route.path).reduce(function (score, segment) {\n score += SEGMENT_POINTS;\n if (isRootSegment(segment)) score += ROOT_POINTS;else if (isDynamic(segment)) score += DYNAMIC_POINTS;else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY;else score += STATIC_POINTS;\n return score;\n }, 0);\n return {\n route: route,\n score: score,\n index: index\n };\n};\n\nvar rankRoutes = function rankRoutes(routes) {\n return routes.map(rankRoute).sort(function (a, b) {\n return a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index;\n });\n};\n\nvar segmentize = function segmentize(uri) {\n return uri // strip starting/ending slashes\n .replace(/(^\\/+|\\/+$)/g, \"\").split(\"/\");\n};\n\nvar addQuery = function addQuery(pathname) {\n for (var _len = arguments.length, query = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n query[_key - 1] = arguments[_key];\n }\n\n query = query.filter(function (q) {\n return q && q.length > 0;\n });\n return pathname + (query && query.length > 0 ? \"?\" + query.join(\"&\") : \"\");\n};\n\nvar reservedNames = [\"uri\", \"path\"];\n/**\n * Shallow compares two objects.\n * @param {Object} obj1 The first object to compare.\n * @param {Object} obj2 The second object to compare.\n */\n\nvar shallowCompare = function shallowCompare(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n return obj1Keys.length === Object.keys(obj2).length && obj1Keys.every(function (key) {\n return obj2.hasOwnProperty(key) && obj1[key] === obj2[key];\n });\n}; ////////////////////////////////////////////////////////////////////////////////\n\n\nexport { startsWith, pick, match, resolve, insertParams, validateRedirect, shallowCompare };","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar getLocation = function getLocation(source) {\n var _source$location = source.location,\n search = _source$location.search,\n hash = _source$location.hash,\n href = _source$location.href,\n origin = _source$location.origin,\n protocol = _source$location.protocol,\n host = _source$location.host,\n hostname = _source$location.hostname,\n port = _source$location.port;\n var pathname = source.location.pathname;\n\n if (!pathname && href && canUseDOM) {\n var url = new URL(href);\n pathname = url.pathname;\n }\n\n return {\n pathname: encodeURI(decodeURI(pathname)),\n search: search,\n hash: hash,\n href: href,\n origin: origin,\n protocol: protocol,\n host: host,\n hostname: hostname,\n port: port,\n state: source.history.state,\n key: source.history.state && source.history.state.key || \"initial\"\n };\n};\n\nvar createHistory = function createHistory(source, options) {\n var listeners = [];\n var location = getLocation(source);\n var transitioning = false;\n\n var resolveTransition = function resolveTransition() {};\n\n return {\n get location() {\n return location;\n },\n\n get transitioning() {\n return transitioning;\n },\n\n _onTransitionComplete: function _onTransitionComplete() {\n transitioning = false;\n resolveTransition();\n },\n listen: function listen(listener) {\n listeners.push(listener);\n\n var popstateListener = function popstateListener() {\n location = getLocation(source);\n listener({\n location: location,\n action: \"POP\"\n });\n };\n\n source.addEventListener(\"popstate\", popstateListener);\n return function () {\n source.removeEventListener(\"popstate\", popstateListener);\n listeners = listeners.filter(function (fn) {\n return fn !== listener;\n });\n };\n },\n navigate: function navigate(to) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n state = _ref.state,\n _ref$replace = _ref.replace,\n replace = _ref$replace === undefined ? false : _ref$replace;\n\n if (typeof to === \"number\") {\n source.history.go(to);\n } else {\n state = _extends({}, state, {\n key: Date.now() + \"\"\n }); // try...catch iOS Safari limits to 100 pushState calls\n\n try {\n if (transitioning || replace) {\n source.history.replaceState(state, null, to);\n } else {\n source.history.pushState(state, null, to);\n }\n } catch (e) {\n source.location[replace ? \"replace\" : \"assign\"](to);\n }\n }\n\n location = getLocation(source);\n transitioning = true;\n var transition = new Promise(function (res) {\n return resolveTransition = res;\n });\n listeners.forEach(function (listener) {\n return listener({\n location: location,\n action: \"PUSH\"\n });\n });\n return transition;\n }\n };\n}; ////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\n\n\nvar createMemorySource = function createMemorySource() {\n var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n var searchIndex = initialPath.indexOf(\"?\");\n var initialLocation = {\n pathname: searchIndex > -1 ? initialPath.substr(0, searchIndex) : initialPath,\n search: searchIndex > -1 ? initialPath.substr(searchIndex) : \"\"\n };\n var index = 0;\n var stack = [initialLocation];\n var states = [null];\n return {\n get location() {\n return stack[index];\n },\n\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n history: {\n get entries() {\n return stack;\n },\n\n get index() {\n return index;\n },\n\n get state() {\n return states[index];\n },\n\n pushState: function pushState(state, _, uri) {\n var _uri$split = uri.split(\"?\"),\n pathname = _uri$split[0],\n _uri$split$ = _uri$split[1],\n search = _uri$split$ === undefined ? \"\" : _uri$split$;\n\n index++;\n stack.push({\n pathname: pathname,\n search: search.length ? \"?\" + search : search\n });\n states.push(state);\n },\n replaceState: function replaceState(state, _, uri) {\n var _uri$split2 = uri.split(\"?\"),\n pathname = _uri$split2[0],\n _uri$split2$ = _uri$split2[1],\n search = _uri$split2$ === undefined ? \"\" : _uri$split2$;\n\n stack[index] = {\n pathname: pathname,\n search: search\n };\n states[index] = state;\n },\n go: function go(to) {\n var newIndex = index + to;\n\n if (newIndex < 0 || newIndex > states.length - 1) {\n return;\n }\n\n index = newIndex;\n }\n }\n };\n}; ////////////////////////////////////////////////////////////////////////////////\n// global history - uses window.history as the source if available, otherwise a\n// memory history\n\n\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\n\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate; ////////////////////////////////////////////////////////////////////////////////\n\nexport { globalHistory, navigate, createHistory, createMemorySource };","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nfunction _objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n/* eslint-disable jsx-a11y/anchor-has-content */\n\n\nimport React, { useContext, createContext } from \"react\";\nimport invariant from \"invariant\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { startsWith, pick, resolve, match, insertParams, validateRedirect, shallowCompare } from \"./lib/utils\";\nimport { globalHistory, navigate, createHistory, createMemorySource } from \"./lib/history\"; ////////////////////////////////////////////////////////////////////////////////\n\nvar createNamedContext = function createNamedContext(name, defaultValue) {\n var Ctx = createContext(defaultValue);\n Ctx.displayName = name;\n return Ctx;\n}; ////////////////////////////////////////////////////////////////////////////////\n// Location Context/Provider\n\n\nvar LocationContext = createNamedContext(\"Location\"); // sets up a listener if there isn't one already so apps don't need to be\n// wrapped in some top level provider\n\nvar Location = function Location(_ref) {\n var children = _ref.children;\n return React.createElement(LocationContext.Consumer, null, function (context) {\n return context ? children(context) : React.createElement(LocationProvider, null, children);\n });\n};\n\nvar LocationProvider = function (_React$Component) {\n _inherits(LocationProvider, _React$Component);\n\n function LocationProvider() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, LocationProvider);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {\n context: _this.getContext(),\n refs: {\n unlisten: null\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n LocationProvider.prototype.getContext = function getContext() {\n var _props$history = this.props.history,\n navigate = _props$history.navigate,\n location = _props$history.location;\n return {\n navigate: navigate,\n location: location\n };\n };\n\n LocationProvider.prototype.componentDidCatch = function componentDidCatch(error, info) {\n if (isRedirect(error)) {\n var _navigate = this.props.history.navigate;\n\n _navigate(error.uri, {\n replace: true\n });\n } else {\n throw error;\n }\n };\n\n LocationProvider.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevState.context.location !== this.state.context.location) {\n this.props.history._onTransitionComplete();\n }\n };\n\n LocationProvider.prototype.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n var refs = this.state.refs,\n history = this.props.history;\n\n history._onTransitionComplete();\n\n refs.unlisten = history.listen(function () {\n Promise.resolve().then(function () {\n // TODO: replace rAF with react deferred update API when it's ready https://github.com/facebook/react/issues/13306\n requestAnimationFrame(function () {\n if (!_this2.unmounted) {\n _this2.setState(function () {\n return {\n context: _this2.getContext()\n };\n });\n }\n });\n });\n });\n };\n\n LocationProvider.prototype.componentWillUnmount = function componentWillUnmount() {\n var refs = this.state.refs;\n this.unmounted = true;\n refs.unlisten();\n };\n\n LocationProvider.prototype.render = function render() {\n var context = this.state.context,\n children = this.props.children;\n return React.createElement(LocationContext.Provider, {\n value: context\n }, typeof children === \"function\" ? children(context) : children || null);\n };\n\n return LocationProvider;\n}(React.Component); ////////////////////////////////////////////////////////////////////////////////\n\n\nLocationProvider.defaultProps = {\n history: globalHistory\n};\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\n\nvar ServerLocation = function ServerLocation(_ref2) {\n var url = _ref2.url,\n children = _ref2.children;\n var searchIndex = url.indexOf(\"?\");\n var searchExists = searchIndex > -1;\n var pathname = void 0;\n var search = \"\";\n var hash = \"\";\n\n if (searchExists) {\n pathname = url.substring(0, searchIndex);\n search = url.substring(searchIndex);\n } else {\n pathname = url;\n }\n\n return React.createElement(LocationContext.Provider, {\n value: {\n location: {\n pathname: pathname,\n search: search,\n hash: hash\n },\n navigate: function navigate() {\n throw new Error(\"You can't call navigate on the server.\");\n }\n }\n }, children);\n}; ////////////////////////////////////////////////////////////////////////////////\n// Sets baseuri and basepath for nested routers and links\n\n\nvar BaseContext = createNamedContext(\"Base\", {\n baseuri: \"/\",\n basepath: \"/\",\n navigate: globalHistory.navigate\n}); ////////////////////////////////////////////////////////////////////////////////\n// The main event, welcome to the show everybody.\n\nvar Router = function Router(props) {\n return React.createElement(BaseContext.Consumer, null, function (baseContext) {\n return React.createElement(Location, null, function (locationContext) {\n return React.createElement(RouterImpl, _extends({}, baseContext, locationContext, props));\n });\n });\n};\n\nvar RouterImpl = function (_React$PureComponent) {\n _inherits(RouterImpl, _React$PureComponent);\n\n function RouterImpl() {\n _classCallCheck(this, RouterImpl);\n\n return _possibleConstructorReturn(this, _React$PureComponent.apply(this, arguments));\n }\n\n RouterImpl.prototype.render = function render() {\n var _props = this.props,\n location = _props.location,\n _navigate2 = _props.navigate,\n basepath = _props.basepath,\n primary = _props.primary,\n children = _props.children,\n baseuri = _props.baseuri,\n _props$component = _props.component,\n component = _props$component === undefined ? \"div\" : _props$component,\n domProps = _objectWithoutProperties(_props, [\"location\", \"navigate\", \"basepath\", \"primary\", \"children\", \"baseuri\", \"component\"]);\n\n var routes = React.Children.toArray(children).reduce(function (array, child) {\n var routes = createRoute(basepath)(child);\n return array.concat(routes);\n }, []);\n var pathname = location.pathname;\n var match = pick(routes, pathname);\n\n if (match) {\n var params = match.params,\n uri = match.uri,\n route = match.route,\n element = match.route.value; // remove the /* from the end for child routes relative paths\n\n basepath = route.default ? basepath : route.path.replace(/\\*$/, \"\");\n\n var props = _extends({}, params, {\n uri: uri,\n location: location,\n navigate: function navigate(to, options) {\n return _navigate2(resolve(to, uri), options);\n }\n });\n\n var clone = React.cloneElement(element, props, element.props.children ? React.createElement(Router, {\n location: location,\n primary: primary\n }, element.props.children) : undefined); // using 'div' for < 16.3 support\n\n var FocusWrapper = primary ? FocusHandler : component; // don't pass any props to 'div'\n\n var wrapperProps = primary ? _extends({\n uri: uri,\n location: location,\n component: component\n }, domProps) : domProps;\n return React.createElement(BaseContext.Provider, {\n value: {\n baseuri: uri,\n basepath: basepath,\n navigate: props.navigate\n }\n }, React.createElement(FocusWrapper, wrapperProps, clone));\n } else {\n // Not sure if we want this, would require index routes at every level\n // warning(\n // false,\n // `\\n\\nNothing matched:\\n\\t${\n // location.pathname\n // }\\n\\nPaths checked: \\n\\t${routes\n // .map(route => route.path)\n // .join(\n // \"\\n\\t\"\n // )}\\n\\nTo get rid of this warning, add a default NotFound component as child of Router:\n // \\n\\tlet NotFound = () =>
Not Found!
\n // \\n\\t\\n\\t \\n\\t {/* ... */}\\n\\t`\n // );\n return null;\n }\n };\n\n return RouterImpl;\n}(React.PureComponent);\n\nRouterImpl.defaultProps = {\n primary: true\n};\nvar FocusContext = createNamedContext(\"Focus\");\n\nvar FocusHandler = function FocusHandler(_ref3) {\n var uri = _ref3.uri,\n location = _ref3.location,\n component = _ref3.component,\n domProps = _objectWithoutProperties(_ref3, [\"uri\", \"location\", \"component\"]);\n\n return React.createElement(FocusContext.Consumer, null, function (requestFocus) {\n return React.createElement(FocusHandlerImpl, _extends({}, domProps, {\n component: component,\n requestFocus: requestFocus,\n uri: uri,\n location: location\n }));\n });\n}; // don't focus on initial render\n\n\nvar initialRender = true;\nvar focusHandlerCount = 0;\n\nvar FocusHandlerImpl = function (_React$Component2) {\n _inherits(FocusHandlerImpl, _React$Component2);\n\n function FocusHandlerImpl() {\n var _temp2, _this4, _ret2;\n\n _classCallCheck(this, FocusHandlerImpl);\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _ret2 = (_temp2 = (_this4 = _possibleConstructorReturn(this, _React$Component2.call.apply(_React$Component2, [this].concat(args))), _this4), _this4.state = {}, _this4.requestFocus = function (node) {\n if (!_this4.state.shouldFocus && node) {\n node.focus();\n }\n }, _temp2), _possibleConstructorReturn(_this4, _ret2);\n }\n\n FocusHandlerImpl.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n var initial = prevState.uri == null;\n\n if (initial) {\n return _extends({\n shouldFocus: true\n }, nextProps);\n } else {\n var myURIChanged = nextProps.uri !== prevState.uri;\n var navigatedUpToMe = prevState.location.pathname !== nextProps.location.pathname && nextProps.location.pathname === nextProps.uri;\n return _extends({\n shouldFocus: myURIChanged || navigatedUpToMe\n }, nextProps);\n }\n };\n\n FocusHandlerImpl.prototype.componentDidMount = function componentDidMount() {\n focusHandlerCount++;\n this.focus();\n };\n\n FocusHandlerImpl.prototype.componentWillUnmount = function componentWillUnmount() {\n focusHandlerCount--;\n\n if (focusHandlerCount === 0) {\n initialRender = true;\n }\n };\n\n FocusHandlerImpl.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevProps.location !== this.props.location && this.state.shouldFocus) {\n this.focus();\n }\n };\n\n FocusHandlerImpl.prototype.focus = function focus() {\n if (process.env.NODE_ENV === \"test\") {\n // getting cannot read property focus of null in the tests\n // and that bit of global `initialRender` state causes problems\n // should probably figure it out!\n return;\n }\n\n var requestFocus = this.props.requestFocus;\n\n if (requestFocus) {\n requestFocus(this.node);\n } else {\n if (initialRender) {\n initialRender = false;\n } else if (this.node) {\n // React polyfills [autofocus] and it fires earlier than cDM,\n // so we were stealing focus away, this line prevents that.\n if (!this.node.contains(document.activeElement)) {\n this.node.focus();\n }\n }\n }\n };\n\n FocusHandlerImpl.prototype.render = function render() {\n var _this5 = this;\n\n var _props2 = this.props,\n children = _props2.children,\n style = _props2.style,\n requestFocus = _props2.requestFocus,\n _props2$component = _props2.component,\n Comp = _props2$component === undefined ? \"div\" : _props2$component,\n uri = _props2.uri,\n location = _props2.location,\n domProps = _objectWithoutProperties(_props2, [\"children\", \"style\", \"requestFocus\", \"component\", \"uri\", \"location\"]);\n\n return React.createElement(Comp, _extends({\n style: _extends({\n outline: \"none\"\n }, style),\n tabIndex: \"-1\",\n ref: function ref(n) {\n return _this5.node = n;\n }\n }, domProps), React.createElement(FocusContext.Provider, {\n value: this.requestFocus\n }, this.props.children));\n };\n\n return FocusHandlerImpl;\n}(React.Component);\n\npolyfill(FocusHandlerImpl);\n\nvar k = function k() {}; ////////////////////////////////////////////////////////////////////////////////\n\n\nvar forwardRef = React.forwardRef;\n\nif (typeof forwardRef === \"undefined\") {\n forwardRef = function forwardRef(C) {\n return C;\n };\n}\n\nvar Link = forwardRef(function (_ref4, ref) {\n var innerRef = _ref4.innerRef,\n props = _objectWithoutProperties(_ref4, [\"innerRef\"]);\n\n return React.createElement(BaseContext.Consumer, null, function (_ref5) {\n var basepath = _ref5.basepath,\n baseuri = _ref5.baseuri;\n return React.createElement(Location, null, function (_ref6) {\n var location = _ref6.location,\n navigate = _ref6.navigate;\n\n var to = props.to,\n state = props.state,\n replace = props.replace,\n _props$getProps = props.getProps,\n getProps = _props$getProps === undefined ? k : _props$getProps,\n anchorProps = _objectWithoutProperties(props, [\"to\", \"state\", \"replace\", \"getProps\"]);\n\n var href = resolve(to, baseuri);\n var encodedHref = encodeURI(href);\n var isCurrent = location.pathname === encodedHref;\n var isPartiallyCurrent = startsWith(location.pathname, encodedHref);\n return React.createElement(\"a\", _extends({\n ref: ref || innerRef,\n \"aria-current\": isCurrent ? \"page\" : undefined\n }, anchorProps, getProps({\n isCurrent: isCurrent,\n isPartiallyCurrent: isPartiallyCurrent,\n href: href,\n location: location\n }), {\n href: href,\n onClick: function onClick(event) {\n if (anchorProps.onClick) anchorProps.onClick(event);\n\n if (shouldNavigate(event)) {\n event.preventDefault();\n var shouldReplace = replace;\n\n if (typeof replace !== \"boolean\" && isCurrent) {\n var _location$state = _extends({}, location.state),\n key = _location$state.key,\n restState = _objectWithoutProperties(_location$state, [\"key\"]);\n\n shouldReplace = shallowCompare(_extends({}, state), restState);\n }\n\n navigate(href, {\n state: state,\n replace: shouldReplace\n });\n }\n }\n }));\n });\n });\n});\nLink.displayName = \"Link\";\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0; ////////////////////////////////////////////////////////////////////////////////\n\nfunction RedirectRequest(uri) {\n this.uri = uri;\n}\n\nvar isRedirect = function isRedirect(o) {\n return o instanceof RedirectRequest;\n};\n\nvar redirectTo = function redirectTo(to) {\n throw new RedirectRequest(to);\n};\n\nvar RedirectImpl = function (_React$Component3) {\n _inherits(RedirectImpl, _React$Component3);\n\n function RedirectImpl() {\n _classCallCheck(this, RedirectImpl);\n\n return _possibleConstructorReturn(this, _React$Component3.apply(this, arguments));\n } // Support React < 16 with this hook\n\n\n RedirectImpl.prototype.componentDidMount = function componentDidMount() {\n var _props3 = this.props,\n navigate = _props3.navigate,\n to = _props3.to,\n from = _props3.from,\n _props3$replace = _props3.replace,\n replace = _props3$replace === undefined ? true : _props3$replace,\n state = _props3.state,\n noThrow = _props3.noThrow,\n baseuri = _props3.baseuri,\n props = _objectWithoutProperties(_props3, [\"navigate\", \"to\", \"from\", \"replace\", \"state\", \"noThrow\", \"baseuri\"]);\n\n Promise.resolve().then(function () {\n var resolvedTo = resolve(to, baseuri);\n navigate(insertParams(resolvedTo, props), {\n replace: replace,\n state: state\n });\n });\n };\n\n RedirectImpl.prototype.render = function render() {\n var _props4 = this.props,\n navigate = _props4.navigate,\n to = _props4.to,\n from = _props4.from,\n replace = _props4.replace,\n state = _props4.state,\n noThrow = _props4.noThrow,\n baseuri = _props4.baseuri,\n props = _objectWithoutProperties(_props4, [\"navigate\", \"to\", \"from\", \"replace\", \"state\", \"noThrow\", \"baseuri\"]);\n\n var resolvedTo = resolve(to, baseuri);\n if (!noThrow) redirectTo(insertParams(resolvedTo, props));\n return null;\n };\n\n return RedirectImpl;\n}(React.Component);\n\nvar Redirect = function Redirect(props) {\n return React.createElement(BaseContext.Consumer, null, function (_ref7) {\n var baseuri = _ref7.baseuri;\n return React.createElement(Location, null, function (locationContext) {\n return React.createElement(RedirectImpl, _extends({}, locationContext, {\n baseuri: baseuri\n }, props));\n });\n });\n};\n\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0; ////////////////////////////////////////////////////////////////////////////////\n\nvar Match = function Match(_ref8) {\n var path = _ref8.path,\n children = _ref8.children;\n return React.createElement(BaseContext.Consumer, null, function (_ref9) {\n var baseuri = _ref9.baseuri;\n return React.createElement(Location, null, function (_ref10) {\n var navigate = _ref10.navigate,\n location = _ref10.location;\n var resolvedPath = resolve(path, baseuri);\n var result = match(resolvedPath, location.pathname);\n return children({\n navigate: navigate,\n location: location,\n match: result ? _extends({}, result.params, {\n uri: result.uri,\n path: path\n }) : null\n });\n });\n });\n}; ////////////////////////////////////////////////////////////////////////////////\n// Hooks\n\n\nvar useLocation = function useLocation() {\n var context = useContext(LocationContext);\n\n if (!context) {\n throw new Error(\"useLocation hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n return context.location;\n};\n\nvar useNavigate = function useNavigate() {\n var context = useContext(BaseContext);\n\n if (!context) {\n throw new Error(\"useNavigate hook was used but a BaseContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n return context.navigate;\n};\n\nvar useParams = function useParams() {\n var context = useContext(BaseContext);\n\n if (!context) {\n throw new Error(\"useParams hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n var location = useLocation();\n var results = match(context.basepath, location.pathname);\n return results ? results.params : null;\n};\n\nvar useMatch = function useMatch(path) {\n if (!path) {\n throw new Error(\"useMatch(path: string) requires an argument of a string to match against\");\n }\n\n var context = useContext(BaseContext);\n\n if (!context) {\n throw new Error(\"useMatch hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n var location = useLocation();\n var resolvedPath = resolve(path, context.baseuri);\n var result = match(resolvedPath, location.pathname);\n return result ? _extends({}, result.params, {\n uri: result.uri,\n path: path\n }) : null;\n}; ////////////////////////////////////////////////////////////////////////////////\n// Junk\n\n\nvar stripSlashes = function stripSlashes(str) {\n return str.replace(/(^\\/+|\\/+$)/g, \"\");\n};\n\nvar createRoute = function createRoute(basepath) {\n return function (element) {\n if (!element) {\n return null;\n }\n\n if (element.type === React.Fragment && element.props.children) {\n return React.Children.map(element.props.children, createRoute(basepath));\n }\n\n !(element.props.path || element.props.default || element.type === Redirect) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \": Children of must have a `path` or `default` prop, or be a ``. None found on element type `\" + element.type + \"`\") : invariant(false) : void 0;\n !!(element.type === Redirect && (!element.props.from || !element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" requires both \\\"from\\\" and \\\"to\\\" props when inside a .\") : invariant(false) : void 0;\n !!(element.type === Redirect && !validateRedirect(element.props.from, element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" has mismatched dynamic segments, ensure both paths have the exact same dynamic segments.\") : invariant(false) : void 0;\n\n if (element.props.default) {\n return {\n value: element,\n default: true\n };\n }\n\n var elementPath = element.type === Redirect ? element.props.from : element.props.path;\n var path = elementPath === \"/\" ? basepath : stripSlashes(basepath) + \"/\" + stripSlashes(elementPath);\n return {\n value: element,\n default: element.props.default,\n path: element.props.children ? stripSlashes(path) + \"/*\" : path\n };\n };\n};\n\nvar shouldNavigate = function shouldNavigate(event) {\n return !event.defaultPrevented && event.button === 0 && !(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}; ////////////////////////////////////////////////////////////////////////\n\n\nexport { Link, Location, LocationProvider, Match, Redirect, Router, ServerLocation, createHistory, createMemorySource, isRedirect, navigate, redirectTo, globalHistory, match as matchPath, useLocation, useNavigate, useParams, useMatch , BaseContext };","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}"],"names":["module","exports","self","ReferenceError","__esModule","_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","setPrototypeOf","subClass","superClass","create","constructor","obj","excluded","sourceKeys","keys","indexOf","_setPrototypeOf","o","p","__proto__","getLocation","_source$location","location","search","hash","href","origin","protocol","host","hostname","port","pathname","canUseDOM","URL","encodeURI","decodeURI","state","history","createHistory","options","listeners","transitioning","resolveTransition","_onTransitionComplete","listen","listener","push","popstateListener","action","addEventListener","removeEventListener","filter","fn","navigate","to","_ref","undefined","_ref$replace","replace","go","Date","now","replaceState","pushState","e","transition","Promise","res","forEach","createMemorySource","initialPath","searchIndex","initialLocation","substr","index","stack","states","name","entries","_","uri","_uri$split","split","_uri$split$","_uri$split2","_uri$split2$","newIndex","window","document","createElement","globalHistory","shallowCompare","validateRedirect","insertParams","resolve","match","pick","startsWith","_invariant","_invariant2","default","string","routes","default_","uriPathname","uriSegments","segmentize","isRootUri","ranked","rankRoutes","l","missed","route","params","routeSegments","path","max","Math","routeSegment","uriSegment","isSplat","slice","map","decodeURIComponent","join","dynamicMatch","paramRe","exec","reservedNames","value","isDynamic","segment","test","rankRoute","score","reduce","isRootSegment","SEGMENT_POINTS","sort","a","b","addQuery","_len","query","Array","_key","q","base","_to$split","toPathname","toQuery","basePathname","toSegments","baseSegments","concat","allSegments","segments","pop","_path$split","pathBase","_path$split$","constructedPath","_params$location","_params$location$sear","searchSplit","from","obj1","obj2","obj1Keys","every","applyTrailingSlashOption","input","option","hasHtmlSuffix","endsWith","_interopRequireDefault","withPrefix","withAssetPrefix","getGlobalPathPrefix","_objectWithoutPropertiesLoose2","_assertThisInitialized2","_inheritsLoose2","_extends2","_propTypes","_react","_reachRouter","_parsePath","parsePath","_isLocalLink","_rewriteLinkPath","_excluded","prefix","_prefix","getGlobalBasePrefix","isLocalLink","NavLinkPropTypes","activeClassName","activeStyle","object","partiallyActive","bool","GatsbyLinkLocationWrapper","props","Location","_ref2","GatsbyLink","_location","_React$Component","_this","defaultGetProps","_ref3","isPartiallyCurrent","isCurrent","className","Boolean","style","IOSupported","IntersectionObserver","abortPrefetch","handleRef","bind","_proto","_prefetch","currentPath","rewrittenPath","rewriteLinkPath","parsed","newPathName","___loader","enqueue","componentWillUnmount","io","_this$io","instance","el","abort","unobserve","disconnect","ref","cb","_this2","innerRef","current","inViewPort","entry","isIntersecting","intersectionRatio","observe","render","_this3","_this$props","_this$props$getProps","getProps","_onClick","onClick","_onMouseEnter","onMouseEnter","rest","prefixedTo","Link","hovering","button","defaultPrevented","metaKey","altKey","ctrlKey","shiftKey","preventDefault","shouldReplace","___navigate","Component","propTypes","func","isRequired","_default","forwardRef","ABSOLUTE_URL_REGEX","isAbsolute","hashIndex","_utils","_parsePath2","isAbsolutePath","relativeTo","adjustedPath","absolutify","_scrollHandler","ScrollHandler","_useScrollRestoration","useScrollRestoration","ScrollContext","React","nodeInterop","cache","_getRequireWildcardCache","has","get","newObj","hasPropertyDescriptor","defineProperty","getOwnPropertyDescriptor","desc","set","_interopRequireWildcard","_sessionStorage","WeakMap","cacheBabelInterop","cacheNodeInterop","createContext","SessionStorage","displayName","args","_stateStorage","_isTicking","_latestKnownScrollY","scrollListener","scrollY","requestAnimationFrame","_saveScroll","windowScroll","position","prevProps","shouldUpdateScroll","scrollTo","scrollToHash","node","getElementById","substring","scrollIntoView","prevRouterProps","routerProps","save","componentDidMount","scrollPosition","_this$props$location","read","componentDidUpdate","_this$props$location2","Provider","children","element","GATSBY_ROUTER_SCROLL_STATE","stateKey","getStateKey","sessionStorage","getItem","JSON","parse","storedValue","stringify","setItem","stateKeyBase","identifier","useLocation","useContext","useRef","useLayoutEffect","onScroll","scrollTop","components","plugin","require","plugins","getResourceURLsForPathname","loadPage","loadPageSync","api","defaultReturn","argTransform","results","result","previous","next","then","all","on","type","handler","off","splice","emit","evt","mitt","pathAndSearch","charAt","pathCache","Map","matchPaths","trimPathname","rawPathname","newRawPathname","qs","encodeURIComponent","stripPrefix","__BASE_PATH__","setMatchPaths","findMatchPath","trimmedPathname","cleanPath","pickPaths","matchPath","originalPath","normalizePagePath","grabMatchParams","findPath","redirect","maybeGetBrowserRedirect","toPath","foundPath","prefetchPathname","loader","StaticQueryContext","StaticQueryDataRenderer","staticQueryData","data","finalData","StaticQuery","Consumer","useStaticQuery","context","isNaN","Number","Error","graphql","_arrayLikeToArray","arr","len","arr2","_toConsumableArray","isArray","iter","Symbol","iterator","minLen","n","toString","TypeError","supportedPrefetchStrategy","feature","fakeLink","relList","supports","err","support","url","reject","link","setAttribute","onload","onerror","getElementsByTagName","getElementsByName","parentNode","appendChild","req","XMLHttpRequest","open","status","send","preFetched","catch","PageResourceStatus","Success","preferDefault","m","createPageDataUrl","rawPath","s","maybeSearch","doFetch","method","onreadystatechange","readyState","toPageResources","pageData","component","page","componentChunkName","webpackCompilationHash","staticQueryHashes","getServerDataError","json","BaseLoader","loadComponent","inFlightNetworkRequests","pageDb","inFlightDb","staticQueryDb","pageDataDb","isPrefetchQueueRunning","prefetchQueued","prefetchTriggered","Set","prefetchCompleted","memoizedGet","inFlightPromise","response","delete","setApiRunner","apiRunner","prefetchDisabled","some","fetchPageDataJson","loadObj","pagePath","retries","responseText","jsonPayload","includes","payload","notFound","internalServerError","loadPageDataJson","error","loadAppData","allData","finalResult","componentChunkPromise","pageResources","createdAt","staticQueryBatchPromise","staticQueryHash","staticQueryResults","staticQueryResultsMap","emitter","withErrorDetails","shouldPrefetch","navigator","connection","effectiveType","saveData","doesConnectionSupportPrefetch","prefetch","defer","promise","abortC","AbortController","signal","findIndex","setTimeout","_processNextPrefetchBatch","requestIdleCallback","toPrefetch","prefetches","dPromise","add","doPrefetch","pageDataUrl","prefetchHelper","crossOrigin","as","createComponentUrls","isPageNotFound","appData","___chunkMapping","chunk","__PATH_PREFIX__","ProdLoader","asyncRequires","chunkName","componentUrls","setLoader","_loader","publicLoader","getStaticQueryResults","PageRenderer","pageContext","__params","pageElement","RouteAnnouncerProps","id","top","width","height","padding","overflow","clip","whiteSpace","border","maybeRedirect","___replace","nextRoute","event","reason","onPreRouteUpdate","prevLocation","onRouteUpdate","___swUpdated","timeoutId","clearTimeout","___webpackCompilationHash","serviceWorker","controller","postMessage","gatsbyApi","reachNavigate","getSavedScrollPosition","RouteAnnouncer","announcementRef","nextProps","pageName","title","pageHeadings","querySelectorAll","textContent","newAnnouncement","innerText","compareLocationProps","nextLocation","RouteUpdates","shouldComponentUpdate","shallowDiffers","_i","reactHydrate","reactRender","EnsureResources","getDerivedStateFromProps","prevState","loadResources","setState","nextState","reactDomClient","hydrate","___emitter","___push","reloadStorageKey","apiRunnerAsync","RouteHandler","BaseContext","baseuri","basepath","DataContext","GatsbyRoot","LocationHandler","Router","browserLoc","getSessionStorage","reload","removeItem","message","console","SiteRoot","App","onClientEntryRanRef","performance","mark","focusEl","defaultRenderer","renderer","runRender","rootElement","doc","documentElement","doScroll","InternalPageRenderer","redirectMap","redirectIgnoreCaseMap","toLowerCase","redirects","ignoreCase","fromPath","register","reg","installingWorker","installing","log","___failedResources","str","onServiceWorkerUpdateReady","confirm","pluginOptions","_gatsby","registerServiceWorker","process","GATSBY_IS_PREVIEW","whiteListLinkRels","prefetchedPathnames","setPathResources","resources","onServiceWorkerActive","active","nodes","headerResources","tagName","getAttribute","src","prefetchedResources","resource","rel","remove","head","onPostPrefetchPathname","_objectWithoutProperties","_classCallCheck","Constructor","_possibleConstructorReturn","_inherits","enumerable","writable","configurable","createNamedContext","defaultValue","Ctx","LocationContext","LocationProvider","_temp","getContext","refs","unlisten","_props$history","componentDidCatch","info","isRedirect","_navigate","unmounted","defaultProps","ServerLocation","baseContext","locationContext","RouterImpl","_React$PureComponent","_props","_navigate2","primary","_props$component","domProps","array","child","createRoute","clone","FocusWrapper","FocusHandler","wrapperProps","FocusContext","requestFocus","FocusHandlerImpl","initialRender","focusHandlerCount","_React$Component2","_temp2","_this4","_len2","_key2","shouldFocus","focus","myURIChanged","navigatedUpToMe","contains","activeElement","_this5","_props2","_props2$component","Comp","outline","tabIndex","k","C","_ref4","_ref5","_ref6","_props$getProps","anchorProps","encodedHref","shouldNavigate","_location$state","restState","RedirectRequest","redirectTo","RedirectImpl","_React$Component3","_props3","_props3$replace","noThrow","resolvedTo","_props4","Redirect","_ref7","Match","_ref8","_ref9","_ref10","resolvedPath","useNavigate","useParams","useMatch","stripSlashes","elementPath","condition","format","c","d","f","argIndex","framesToPop","_inheritsLoose"],"sourceRoot":""} \ No newline at end of file diff --git a/category/announcements/index.html b/category/announcements/index.html new file mode 100644 index 00000000..dac6aac3 --- /dev/null +++ b/category/announcements/index.html @@ -0,0 +1,26 @@ +
\ No newline at end of file diff --git a/category/docs/index.html b/category/docs/index.html new file mode 100644 index 00000000..44a3ecdc --- /dev/null +++ b/category/docs/index.html @@ -0,0 +1,26 @@ +
\ No newline at end of file diff --git a/category/general/index.html b/category/general/index.html new file mode 100644 index 00000000..8ce459d3 --- /dev/null +++ b/category/general/index.html @@ -0,0 +1,26 @@ +
💬 GeneralChat about anything and everything here
\ No newline at end of file diff --git a/category/index.html b/category/index.html new file mode 100644 index 00000000..c1c82a22 --- /dev/null +++ b/category/index.html @@ -0,0 +1,26 @@ +
\ No newline at end of file diff --git a/category/qanda/index.html b/category/qanda/index.html new file mode 100644 index 00000000..7bbe29a5 --- /dev/null +++ b/category/qanda/index.html @@ -0,0 +1,26 @@ +
\ No newline at end of file diff --git a/category/try/index.html b/category/try/index.html new file mode 100644 index 00000000..80805d5a --- /dev/null +++ b/category/try/index.html @@ -0,0 +1,26 @@ +
🎲 TryTry it out
\ No newline at end of file diff --git a/chunk-map.json b/chunk-map.json new file mode 100644 index 00000000..1c7626dc --- /dev/null +++ b/chunk-map.json @@ -0,0 +1 @@ +{"polyfill":["/polyfill-f014881a234472c5fc89.js"],"app":["/app-6336718509f5c1eb020f.js"],"component---cache-caches-gatsby-plugin-offline-app-shell-js":["/component---cache-caches-gatsby-plugin-offline-app-shell-js-0f888952ad1919db08d3.js"],"component---src-pages-404-tsx":["/component---src-pages-404-tsx-0015a0b6f8befe4274b4.js"],"component---src-templates-archives-tsx":["/component---src-templates-archives-tsx-06da249373edaa76f45c.js"],"component---src-templates-category-tsx":["/component---src-templates-category-tsx-51cbca430cb5370d0159.js"],"component---src-templates-issues-tsx":["/component---src-templates-issues-tsx-34a29d5ef81eeab81032.js"],"component---src-templates-labels-tsx":["/component---src-templates-labels-tsx-34687c66d0846e79559c.js"],"component---src-templates-nav-category-tsx":["/component---src-templates-nav-category-tsx-4639ce425db5561928b2.js"],"component---src-templates-nav-labels-tsx":["/component---src-templates-nav-labels-tsx-00270bd03148f8d8787c.js"]} \ No newline at end of file diff --git a/component---cache-caches-gatsby-plugin-offline-app-shell-js-0f888952ad1919db08d3.js b/component---cache-caches-gatsby-plugin-offline-app-shell-js-0f888952ad1919db08d3.js new file mode 100644 index 00000000..bb2b7f3e --- /dev/null +++ b/component---cache-caches-gatsby-plugin-offline-app-shell-js-0f888952ad1919db08d3.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkgg=self.webpackChunkgg||[]).push([[306],{1367:function(e,t,n){var u=n(5318);t.__esModule=!0,t.default=void 0;var r=u(n(5354)),a=u(n(7294)),l=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.default)(t,e),t.prototype.render=function(){return a.default.createElement(a.default.Fragment,null)},t}(a.default.Component),f=l;t.default=f}}]); +//# sourceMappingURL=component---cache-caches-gatsby-plugin-offline-app-shell-js-0f888952ad1919db08d3.js.map \ No newline at end of file diff --git a/component---cache-caches-gatsby-plugin-offline-app-shell-js-0f888952ad1919db08d3.js.map b/component---cache-caches-gatsby-plugin-offline-app-shell-js-0f888952ad1919db08d3.js.map new file mode 100644 index 00000000..8109e253 --- /dev/null +++ b/component---cache-caches-gatsby-plugin-offline-app-shell-js-0f888952ad1919db08d3.js.map @@ -0,0 +1 @@ +{"version":3,"file":"component---cache-caches-gatsby-plugin-offline-app-shell-js-0f888952ad1919db08d3.js","mappings":"6FAEA,IAAIA,EAAyBC,EAAQ,MAErCC,EAAQC,YAAa,EACrBD,EAAAA,aAAkB,EAElB,IAAIE,EAAkBJ,EAAuBC,EAAQ,OAEjDI,EAASL,EAAuBC,EAAQ,OAExCK,EAAwB,SAAUC,GAGpC,SAASD,IACP,OAAOC,EAAiBC,MAAMC,KAAMC,YAAcD,KASpD,OAZA,EAAIL,EAAgBO,SAASL,EAAUC,GAM1BD,EAASM,UAEfC,OAAS,WACd,OAAoBR,EAAOM,QAAQG,cAAcT,EAAOM,QAAQI,SAAU,OAGrET,EAbmB,CAc1BD,EAAOM,QAAQK,WAEbC,EAAWX,EACfJ,EAAAA,QAAkBe","sources":["webpack://gg/./.cache/caches/gatsby-plugin-offline/app-shell.js"],"sourcesContent":["\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar AppShell = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(AppShell, _React$Component);\n\n function AppShell() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = AppShell.prototype;\n\n _proto.render = function render() {\n return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);\n };\n\n return AppShell;\n}(_react.default.Component);\n\nvar _default = AppShell;\nexports.default = _default;"],"names":["_interopRequireDefault","require","exports","__esModule","_inheritsLoose2","_react","AppShell","_React$Component","apply","this","arguments","default","prototype","render","createElement","Fragment","Component","_default"],"sourceRoot":""} \ No newline at end of file diff --git a/component---src-pages-404-tsx-0015a0b6f8befe4274b4.js b/component---src-pages-404-tsx-0015a0b6f8befe4274b4.js new file mode 100644 index 00000000..67732413 --- /dev/null +++ b/component---src-pages-404-tsx-0015a0b6f8befe4274b4.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkgg=self.webpackChunkgg||[]).push([[218],{7735:function(e,t,n){n.r(t);var l=n(7294),o=n(1597),a={color:"#232129",padding:"96px",fontFamily:"-apple-system, Roboto, sans-serif, serif"},r={marginTop:0,marginBottom:64,maxWidth:320},i={marginBottom:48};t.default=function(){return l.createElement("main",{style:a},l.createElement("title",null,"Not found"),l.createElement("h1",{style:r},"Page not found"),l.createElement("p",{style:i},"Sorry"," ",l.createElement("span",{role:"img","aria-label":"Pensive emoji"},"😔")," ","we couldn’t find what you were looking for.",l.createElement("br",null),null,l.createElement("br",null),l.createElement(o.Link,{to:"/"},"Go home"),"."))}}}]); +//# sourceMappingURL=component---src-pages-404-tsx-0015a0b6f8befe4274b4.js.map \ No newline at end of file diff --git a/component---src-pages-404-tsx-0015a0b6f8befe4274b4.js.map b/component---src-pages-404-tsx-0015a0b6f8befe4274b4.js.map new file mode 100644 index 00000000..24980b31 --- /dev/null +++ b/component---src-pages-404-tsx-0015a0b6f8befe4274b4.js.map @@ -0,0 +1 @@ +{"version":3,"file":"component---src-pages-404-tsx-0015a0b6f8befe4274b4.js","mappings":"4HAIMA,EAAa,CACjBC,MAAO,UACPC,QAAS,OACTC,WAAY,4CAERC,EAAgB,CACpBC,UAAW,EACXC,aAAc,GACdC,SAAU,KAGNC,EAAkB,CACtBF,aAAc,IAqChB,UA1BqB,WACnB,OACEG,EAAAA,cAAAA,OAAAA,CAAMC,MAAOV,GACXS,EAAAA,cAAAA,QAAAA,KAAAA,aACAA,EAAAA,cAAAA,KAAAA,CAAIC,MAAON,GAAX,kBACAK,EAAAA,cAAAA,IAAAA,CAAGC,MAAOF,GAAV,QACQ,IACNC,EAAAA,cAAAA,OAAAA,CAAME,KAAK,MAAM,aAAW,iBAA5B,MAEQ,IAJV,8CAMEF,EAAAA,cAAAA,KAAAA,MAOI,KACJA,EAAAA,cAAAA,KAAAA,MACAA,EAAAA,cAACG,EAAAA,KAAD,CAAMC,GAAG,KAAT,WAfF","sources":["webpack://gg/./src/pages/404.tsx"],"sourcesContent":["import React from 'react';\nimport { Link } from 'gatsby';\n\n// styles\nconst pageStyles = {\n color: '#232129',\n padding: '96px',\n fontFamily: '-apple-system, Roboto, sans-serif, serif',\n};\nconst headingStyles = {\n marginTop: 0,\n marginBottom: 64,\n maxWidth: 320,\n};\n\nconst paragraphStyles = {\n marginBottom: 48,\n};\nconst codeStyles = {\n color: '#8A6534',\n padding: 4,\n backgroundColor: '#FFF4DB',\n fontSize: '1.25rem',\n borderRadius: 4,\n};\n\n// markup\nconst NotFoundPage = () => {\n return (\n
\n Not found\n

Page not found

\n

\n Sorry{' '}\n \n 😔\n {' '}\n we couldn’t find what you were looking for.\n
\n {process.env.NODE_ENV === 'development' ? (\n <>\n
\n Try creating a page in src/pages/.\n
\n \n ) : null}\n
\n Go home.\n

\n
\n );\n};\n\nexport default NotFoundPage;\n"],"names":["pageStyles","color","padding","fontFamily","headingStyles","marginTop","marginBottom","maxWidth","paragraphStyles","React","style","role","Link","to"],"sourceRoot":""} \ No newline at end of file diff --git a/component---src-templates-archives-tsx-06da249373edaa76f45c.js b/component---src-templates-archives-tsx-06da249373edaa76f45c.js new file mode 100644 index 00000000..37438ec6 --- /dev/null +++ b/component---src-templates-archives-tsx-06da249373edaa76f45c.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkgg=self.webpackChunkgg||[]).push([[551],{3679:function(e,n,a){var t=a(7294),r=a(5104);n.Z=function(e){var n=e.author;return t.createElement("div",{className:"author-info"},t.createElement("span",{className:"author",title:n.url,onClick:function(){return(0,r.go)(n.url)}},t.createElement("img",{src:n.avatarUrl,alt:n.login}),t.createElement("span",null,n.login)),e.date&&t.createElement("i",{className:"date"},(0,r.G$)(e.date)),e.extra)}},722:function(e,n,a){a.d(n,{Z:function(){return i}});var t=a(7294),r=a(1597),s={zap:"⚡",gear:"⚙️",beer:"🍺",star:"⭐",fire:"🔥",tada:"🎉",ninja:"🥷",mega:"📣",crab:"🦀",rocket:"🚀",warning:"⚠️",unicorn:"🦄",lobster:"🦞",cyclone:"🌀",rainbow:"🌈",computer:"💻",nail_care:"💅",sunglasses:"😎",see_no_evil:"🙈",crystal_ball:"🔮",monocle_face:"🧐",speech_balloon:"💬",exploding_head:"🤯",hammer_and_wrench:"🛠️",globe_with_meridians:"🌐",page_facing_up:"📄",thinking:"🤔",sparkling_heart:"💖",boom:"💥",collision:"💥",anger:"💢",book:"📖",open_book:"📖",books:"📚",game_die:"🎲"},l=a(5104),i=function(e){var n=e.data,a=e.go;return n&&null!=n&&n.name?t.createElement(r.Link,{className:"gg-category",to:a||"/category/"+(0,l.FL)(n.name,!0),target:a?"_blank":"_self"},function(e){return s[e.slice(1,-1)]||""}(n.emoji)," ",n.name):null}},2721:function(e,n,a){var t=a(7294),r=a(5505),s=a(5104),l=a(1014);n.Z=function(e){var n,a=(0,l.Z)();switch(a.type){case"issues":n="https://github.com/"+a.issues_owner+"/"+a.issues_repo+"/issues/"+e.number;break;case"discussions2":n="https://github.com/"+a.dis_owner+"/"+a.dis_repo+"/discussions/"+e.number;break;default:n="https://github.com/"+a.owner+"/"+a.repo+"/discussions/"+e.number}return t.createElement("a",{className:(0,r.Z)("number issues-num",e.className),href:n,target:"_blank"},e.len?(0,s.K0)(e.number,e.len):"#"+e.number)}},1572:function(e,n,a){a.r(n),a.d(n,{default:function(){return c}});var t=a(7294),r=a(1597),s=a(2146),l=a(3679),i=a(722),o=a(2721);function c(e){return t.createElement(s.Z,{className:"home-page"},t.createElement("div",{className:"markdown-body issues-list"},t.createElement("div",null,e.data.allDiscussionsJson.nodes.map((function(e){var n=e.node;if(!n)return null;var a=null==n?void 0:n.category;return t.createElement("div",{className:"item",key:n.number},t.createElement(l.Z,{author:n.author,date:n.updatedAt,extra:t.createElement(o.Z,{number:n.number})}),t.createElement("div",{className:"post-info"},t.createElement(i.Z,{data:a}),t.createElement(r.Link,{className:"title",to:"/issues/"+n.number},n.title)))})))))}}}]); +//# sourceMappingURL=component---src-templates-archives-tsx-06da249373edaa76f45c.js.map \ No newline at end of file diff --git a/component---src-templates-archives-tsx-06da249373edaa76f45c.js.map b/component---src-templates-archives-tsx-06da249373edaa76f45c.js.map new file mode 100644 index 00000000..239a7cde --- /dev/null +++ b/component---src-templates-archives-tsx-06da249373edaa76f45c.js.map @@ -0,0 +1 @@ +{"version":3,"file":"component---src-templates-archives-tsx-06da249373edaa76f45c.js","mappings":"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","sources":["webpack://gg/./src/components/author/index.tsx","webpack://gg/./src/utils/emoji.ts","webpack://gg/./src/components/category/index.tsx","webpack://gg/./src/components/issues_num/index.tsx","webpack://gg/./src/templates/archives.tsx"],"sourcesContent":["import React, { FC } from 'react';\n\nimport { go, fmtDate } from '@utils/tools';\n\nimport './index.scss';\n\ninterface AuthorProps {\n author: any;\n date?: Date;\n extra?: React.ReactNode;\n}\n\nconst Author: FC = (props) => {\n const author = props.author;\n return (\n
\n go(author.url)}\n >\n {author.login}\n {author.login}\n \n {props.date && {fmtDate(props.date)}}\n {props.extra}\n
\n );\n};\n\nexport default Author;\n","// https://github.com/ikatyang/emoji-cheat-sheet/blob/master/README.md\n\nconst emojiMap: Record = {\n zap: '⚡',\n gear: '⚙️',\n beer: '🍺',\n star: '⭐',\n fire: '🔥',\n tada: '🎉',\n ninja: '🥷',\n mega: '📣',\n crab: '🦀',\n rocket: '🚀',\n warning: '⚠️',\n unicorn: '🦄',\n lobster: '🦞',\n cyclone: '🌀',\n rainbow: '🌈',\n computer: '💻',\n nail_care: '💅',\n sunglasses: '😎',\n see_no_evil: '🙈',\n crystal_ball: '🔮',\n monocle_face: '🧐',\n speech_balloon: '💬',\n exploding_head: '🤯',\n hammer_and_wrench: '🛠️',\n globe_with_meridians: '🌐',\n page_facing_up: '📄',\n thinking: '🤔',\n sparkling_heart: '💖',\n boom: '💥',\n collision: '💥',\n anger: '💢',\n book: '📖',\n open_book: '📖',\n books: '📚',\n game_die: '🎲'\n}\n\nexport default (emoji: string): string => emojiMap[emoji.slice(1, -1)] || '';\n\n\n// -----------------------------------------\n// THUMBS_UP\n// Represents the :+1: emoji.\n\n// THUMBS_DOWN\n// Represents the :-1: emoji.\n\n// LAUGH\n// Represents the :laugh: emoji.\n\n// HOORAY\n// Represents the :hooray: emoji.\n\n// CONFUSED\n// Represents the :confused: emoji.\n\n// HEART\n// Represents the :heart: emoji.\n\n// ROCKET\n// Represents the :rocket: emoji.\n\n// EYES\n// Represents the :eyes: emoji.","import React, { FC } from 'react';\nimport { Link, navigate } from 'gatsby';\n\nimport getEmoji from '@utils/emoji';\nimport { fmtURI } from '@utils/tools';\n\nimport './index.scss';\n\ninterface CategoryProps {\n data: any;\n go?: string;\n}\n\nconst Category: FC = ({ data, go }) => {\n if (!(data && data?.name)) return null;\n return (\n \n {getEmoji(data.emoji)} {data.name}\n \n );\n};\n\nexport default Category;\n","import React, { FC } from 'react';\nimport clsx from 'clsx';\n\nimport { fmtIssues } from '@utils/tools';\nimport useRgd from '@hooks/useRgd';\n\nimport './index.scss';\n\ninterface IssuesNumProps {\n number: number;\n len?: number;\n className?: string;\n}\n\nconst IssuesNum: FC = (props) => {\n const rgdData = useRgd();\n\n let _link;\n switch (rgdData.type) {\n case 'issues':\n _link = `https://github.com/${rgdData.issues_owner}/${rgdData.issues_repo}/issues/${props.number}`;\n break;\n case 'discussions2':\n _link = `https://github.com/${rgdData.dis_owner}/${rgdData.dis_repo}/discussions/${props.number}`;\n break;\n default:\n _link = `https://github.com/${rgdData.owner}/${rgdData.repo}/discussions/${props.number}`;\n }\n\n return (\n \n {props.len ? fmtIssues(props.number, props.len) : `#${props.number}`}\n \n );\n};\n\nexport default IssuesNum;\n","import React from 'react';\nimport { graphql, Link } from 'gatsby';\n\nimport Layout from '@layouts/base';\nimport Author from '@comps/author';\nimport Category from '@comps/category';\nimport IssuesNum from '@comps/issues_num';\nimport '@styles/home.scss';\n\nexport default function IndexPage(props: any) {\n return (\n \n
\n
\n {props.data.allDiscussionsJson.nodes.map(({ node }: any) => {\n if (!node) return null;\n\n const category = node?.category;\n\n return (\n
\n }\n />\n
\n \n \n {node.title}\n \n
\n
\n );\n })}\n
\n
\n
\n );\n}\n\nexport const query = graphql`\n {\n allDiscussionsJson {\n nodes {\n node {\n number\n title\n updatedAt\n author {\n avatarUrl\n login\n url\n }\n category {\n name\n isAnswerable\n emoji\n }\n }\n }\n }\n }\n`;\n"],"names":["props","author","React","className","title","url","onClick","go","src","avatarUrl","alt","login","date","fmtDate","extra","emojiMap","zap","gear","beer","star","fire","tada","ninja","mega","crab","rocket","warning","unicorn","lobster","cyclone","rainbow","computer","nail_care","sunglasses","see_no_evil","crystal_ball","monocle_face","speech_balloon","exploding_head","hammer_and_wrench","globe_with_meridians","page_facing_up","thinking","sparkling_heart","boom","collision","anger","book","open_book","books","game_die","data","name","Link","to","fmtURI","target","emoji","slice","getEmoji","_link","rgdData","useRgd","type","issues_owner","issues_repo","number","dis_owner","dis_repo","owner","repo","clsx","href","len","fmtIssues","IndexPage","Layout","allDiscussionsJson","nodes","map","node","category","key","Author","updatedAt","IssuesNum","Category"],"sourceRoot":""} \ No newline at end of file diff --git a/component---src-templates-category-tsx-51cbca430cb5370d0159.js b/component---src-templates-category-tsx-51cbca430cb5370d0159.js new file mode 100644 index 00000000..234d6e17 --- /dev/null +++ b/component---src-templates-category-tsx-51cbca430cb5370d0159.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkgg=self.webpackChunkgg||[]).push([[75],{722:function(e,n,a){a.d(n,{Z:function(){return i}});var t=a(7294),s=a(1597),r={zap:"⚡",gear:"⚙️",beer:"🍺",star:"⭐",fire:"🔥",tada:"🎉",ninja:"🥷",mega:"📣",crab:"🦀",rocket:"🚀",warning:"⚠️",unicorn:"🦄",lobster:"🦞",cyclone:"🌀",rainbow:"🌈",computer:"💻",nail_care:"💅",sunglasses:"😎",see_no_evil:"🙈",crystal_ball:"🔮",monocle_face:"🧐",speech_balloon:"💬",exploding_head:"🤯",hammer_and_wrench:"🛠️",globe_with_meridians:"🌐",page_facing_up:"📄",thinking:"🤔",sparkling_heart:"💖",boom:"💥",collision:"💥",anger:"💢",book:"📖",open_book:"📖",books:"📚",game_die:"🎲"},o=a(5104),i=function(e){var n=e.data,a=e.go;return n&&null!=n&&n.name?t.createElement(s.Link,{className:"gg-category",to:a||"/category/"+(0,o.FL)(n.name,!0),target:a?"_blank":"_self"},function(e){return r[e.slice(1,-1)]||""}(n.emoji)," ",n.name):null}},8331:function(e,n,a){var t=a(7294),s=a(1597),r=a(2721);n.Z=function(e){var n=e.data.allDiscussionsJson.nodes,a=e.pageContext.nlen;return t.createElement("div",{className:"issues-list"},n.map((function(e){var n=e.node;return t.createElement("div",{key:n.number,className:"issues-item"},t.createElement(r.Z,{number:n.number,len:a}),t.createElement(s.Link,{className:"title",to:"/issues/"+n.number},n.title))})))}},2721:function(e,n,a){var t=a(7294),s=a(5505),r=a(5104),o=a(1014);n.Z=function(e){var n,a=(0,o.Z)();switch(a.type){case"issues":n="https://github.com/"+a.issues_owner+"/"+a.issues_repo+"/issues/"+e.number;break;case"discussions2":n="https://github.com/"+a.dis_owner+"/"+a.dis_repo+"/discussions/"+e.number;break;default:n="https://github.com/"+a.owner+"/"+a.repo+"/discussions/"+e.number}return t.createElement("a",{className:(0,s.Z)("number issues-num",e.className),href:n,target:"_blank"},e.len?(0,r.K0)(e.number,e.len):"#"+e.number)}},1104:function(e,n,a){a.r(n),a.d(n,{default:function(){return l}});var t=a(7294),s=a(2146),r=a(1014),o=a(8331),i=a(722),c=a(5104);function l(e){var n=(0,r.Z)().repo,a=e.pageContext.category,l=n+"/discussions/categories/"+(0,c.FL)(a.name,!0);return t.createElement(s.Z,{className:"category-page",title:a.name+" | Category"},t.createElement("div",{className:"markdown-body"},t.createElement("div",{className:"category-head",title:l},t.createElement(i.Z,{data:a,go:l}),t.createElement("span",{className:"desc"},a.description)),t.createElement(o.Z,{data:e.data,pageContext:e.pageContext})))}}}]); +//# sourceMappingURL=component---src-templates-category-tsx-51cbca430cb5370d0159.js.map \ No newline at end of file diff --git a/component---src-templates-category-tsx-51cbca430cb5370d0159.js.map b/component---src-templates-category-tsx-51cbca430cb5370d0159.js.map new file mode 100644 index 00000000..b9950e71 --- /dev/null +++ b/component---src-templates-category-tsx-51cbca430cb5370d0159.js.map @@ -0,0 +1 @@ +{"version":3,"file":"component---src-templates-category-tsx-51cbca430cb5370d0159.js","mappings":"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","sources":["webpack://gg/./src/utils/emoji.ts","webpack://gg/./src/components/category/index.tsx","webpack://gg/./src/components/issues_list/index.tsx","webpack://gg/./src/components/issues_num/index.tsx","webpack://gg/./src/templates/category.tsx"],"sourcesContent":["// https://github.com/ikatyang/emoji-cheat-sheet/blob/master/README.md\n\nconst emojiMap: Record = {\n zap: '⚡',\n gear: '⚙️',\n beer: '🍺',\n star: '⭐',\n fire: '🔥',\n tada: '🎉',\n ninja: '🥷',\n mega: '📣',\n crab: '🦀',\n rocket: '🚀',\n warning: '⚠️',\n unicorn: '🦄',\n lobster: '🦞',\n cyclone: '🌀',\n rainbow: '🌈',\n computer: '💻',\n nail_care: '💅',\n sunglasses: '😎',\n see_no_evil: '🙈',\n crystal_ball: '🔮',\n monocle_face: '🧐',\n speech_balloon: '💬',\n exploding_head: '🤯',\n hammer_and_wrench: '🛠️',\n globe_with_meridians: '🌐',\n page_facing_up: '📄',\n thinking: '🤔',\n sparkling_heart: '💖',\n boom: '💥',\n collision: '💥',\n anger: '💢',\n book: '📖',\n open_book: '📖',\n books: '📚',\n game_die: '🎲'\n}\n\nexport default (emoji: string): string => emojiMap[emoji.slice(1, -1)] || '';\n\n\n// -----------------------------------------\n// THUMBS_UP\n// Represents the :+1: emoji.\n\n// THUMBS_DOWN\n// Represents the :-1: emoji.\n\n// LAUGH\n// Represents the :laugh: emoji.\n\n// HOORAY\n// Represents the :hooray: emoji.\n\n// CONFUSED\n// Represents the :confused: emoji.\n\n// HEART\n// Represents the :heart: emoji.\n\n// ROCKET\n// Represents the :rocket: emoji.\n\n// EYES\n// Represents the :eyes: emoji.","import React, { FC } from 'react';\nimport { Link, navigate } from 'gatsby';\n\nimport getEmoji from '@utils/emoji';\nimport { fmtURI } from '@utils/tools';\n\nimport './index.scss';\n\ninterface CategoryProps {\n data: any;\n go?: string;\n}\n\nconst Category: FC = ({ data, go }) => {\n if (!(data && data?.name)) return null;\n return (\n \n {getEmoji(data.emoji)} {data.name}\n \n );\n};\n\nexport default Category;\n","import React, { FC } from 'react';\nimport { Link } from 'gatsby';\n\nimport IssuesNum from '@comps/issues_num';\n\nimport './index.scss';\n\ninterface IssuesListProps {\n data: any;\n pageContext: any;\n}\n\nconst IssuesList: FC = (props) => {\n const data = props.data.allDiscussionsJson.nodes;\n const nlen = props.pageContext.nlen;\n\n return (\n
\n {data.map(({ node }: any) => {\n return (\n
\n \n \n {node.title}\n \n
\n );\n })}\n
\n );\n};\n\nexport default IssuesList;\n","import React, { FC } from 'react';\nimport clsx from 'clsx';\n\nimport { fmtIssues } from '@utils/tools';\nimport useRgd from '@hooks/useRgd';\n\nimport './index.scss';\n\ninterface IssuesNumProps {\n number: number;\n len?: number;\n className?: string;\n}\n\nconst IssuesNum: FC = (props) => {\n const rgdData = useRgd();\n\n let _link;\n switch (rgdData.type) {\n case 'issues':\n _link = `https://github.com/${rgdData.issues_owner}/${rgdData.issues_repo}/issues/${props.number}`;\n break;\n case 'discussions2':\n _link = `https://github.com/${rgdData.dis_owner}/${rgdData.dis_repo}/discussions/${props.number}`;\n break;\n default:\n _link = `https://github.com/${rgdData.owner}/${rgdData.repo}/discussions/${props.number}`;\n }\n\n return (\n \n {props.len ? fmtIssues(props.number, props.len) : `#${props.number}`}\n \n );\n};\n\nexport default IssuesNum;\n","import React from 'react';\nimport { graphql } from 'gatsby';\n\nimport Layout from '@layouts/base';\nimport useRgd from '@hooks/useRgd';\nimport IssuesList from '@comps/issues_list';\nimport Category from '@comps/category';\nimport { fmtURI } from '@utils/tools';\nimport '@styles/category.scss';\n\nexport default function BlogCategory(props: any) {\n const { repo } = useRgd();\n const categoryInfo = props.pageContext.category;\n const categoriesLink = `${repo}/discussions/categories/${fmtURI(\n categoryInfo.name,\n true\n )}`;\n\n return (\n \n
\n
\n \n {categoryInfo.description}\n
\n\n \n
\n
\n );\n}\n\nexport const query = graphql`\n query GGCategoryQuery($name: String!) {\n allDiscussionsJson(\n filter: { node: { category: { name: { eq: $name } } } }\n ) {\n nodes {\n node {\n title\n number\n }\n }\n }\n }\n`;\n"],"names":["emojiMap","zap","gear","beer","star","fire","tada","ninja","mega","crab","rocket","warning","unicorn","lobster","cyclone","rainbow","computer","nail_care","sunglasses","see_no_evil","crystal_ball","monocle_face","speech_balloon","exploding_head","hammer_and_wrench","globe_with_meridians","page_facing_up","thinking","sparkling_heart","boom","collision","anger","book","open_book","books","game_die","data","go","name","React","Link","className","to","fmtURI","target","emoji","slice","getEmoji","props","allDiscussionsJson","nodes","nlen","pageContext","map","node","key","number","IssuesNum","len","title","_link","rgdData","useRgd","type","issues_owner","issues_repo","dis_owner","dis_repo","owner","repo","clsx","href","fmtIssues","BlogCategory","categoryInfo","category","categoriesLink","Layout","Category","description","IssuesList"],"sourceRoot":""} \ No newline at end of file diff --git a/component---src-templates-issues-tsx-34a29d5ef81eeab81032.js b/component---src-templates-issues-tsx-34a29d5ef81eeab81032.js new file mode 100644 index 00000000..9bfd4a98 --- /dev/null +++ b/component---src-templates-issues-tsx-34a29d5ef81eeab81032.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkgg=self.webpackChunkgg||[]).push([[135],{3679:function(e,t,n){var a=n(7294),l=n(5104);t.Z=function(e){var t=e.author;return a.createElement("div",{className:"author-info"},a.createElement("span",{className:"author",title:t.url,onClick:function(){return(0,l.go)(t.url)}},a.createElement("img",{src:t.avatarUrl,alt:t.login}),a.createElement("span",null,t.login)),e.date&&a.createElement("i",{className:"date"},(0,l.G$)(e.date)),e.extra)}},722:function(e,t,n){n.d(t,{Z:function(){return o}});var a=n(7294),l=n(1597),r={zap:"⚡",gear:"⚙️",beer:"🍺",star:"⭐",fire:"🔥",tada:"🎉",ninja:"🥷",mega:"📣",crab:"🦀",rocket:"🚀",warning:"⚠️",unicorn:"🦄",lobster:"🦞",cyclone:"🌀",rainbow:"🌈",computer:"💻",nail_care:"💅",sunglasses:"😎",see_no_evil:"🙈",crystal_ball:"🔮",monocle_face:"🧐",speech_balloon:"💬",exploding_head:"🤯",hammer_and_wrench:"🛠️",globe_with_meridians:"🌐",page_facing_up:"📄",thinking:"🤔",sparkling_heart:"💖",boom:"💥",collision:"💥",anger:"💢",book:"📖",open_book:"📖",books:"📚",game_die:"🎲"},c=n(5104),o=function(e){var t=e.data,n=e.go;return t&&null!=t&&t.name?a.createElement(l.Link,{className:"gg-category",to:n||"/category/"+(0,c.FL)(t.name,!0),target:n?"_blank":"_self"},function(e){return r[e.slice(1,-1)]||""}(t.emoji)," ",t.name):null}},2721:function(e,t,n){var a=n(7294),l=n(5505),r=n(5104),c=n(1014);t.Z=function(e){var t,n=(0,c.Z)();switch(n.type){case"issues":t="https://github.com/"+n.issues_owner+"/"+n.issues_repo+"/issues/"+e.number;break;case"discussions2":t="https://github.com/"+n.dis_owner+"/"+n.dis_repo+"/discussions/"+e.number;break;default:t="https://github.com/"+n.owner+"/"+n.repo+"/discussions/"+e.number}return a.createElement("a",{className:(0,l.Z)("number issues-num",e.className),href:t,target:"_blank"},e.len?(0,r.K0)(e.number,e.len):"#"+e.number)}},8302:function(e,t,n){var a=n(7294),l=n(1597),r=n(5104),c=n(1014),o=function(e){var t,n=e.data,o=e.hasLevel,s=(0,c.Z)();return a.createElement(l.Link,{key:n.name,className:"gg-label",style:{borderColor:"#"+n.color},to:"/labels/"+(0,r.FL)(n.name)},a.createElement("b",{style:{background:"#"+n.color}},"#",o&&a.createElement("span",null," ",(0,r.Wv)(n.description,null==s||null===(t=s.website)||void 0===t?void 0:t.label_level))),a.createElement("em",null,n.name))};o.defaultProps={hasLevel:!1},t.Z=o},2984:function(e,t,n){n.r(t),n.d(t,{default:function(){return E}});var a=n(7294),l=n(1471),r={body:'',width:24,height:24},c={body:'',width:24,height:24},o={body:'',width:24,height:24},s=n(2146),i=n(3679),u=n(2721),m=n(722),d=n(8302),v=n(1597),h={body:'',width:24,height:24},g={body:'',width:24,height:24},b=function(e){var t=e.previous,n=e.next;return a.createElement("div",{className:"gg-issues-prev-next"},t&&a.createElement(v.Link,{className:"prev",to:"/issues/"+t.number},a.createElement("span",null,a.createElement(l.JO,{className:"icon-action",icon:h,fontSize:"20"}),t.title)),n&&a.createElement(v.Link,{className:"next",to:"/issues/"+n.number},a.createElement("span",null,n.title,a.createElement(l.JO,{className:"icon-action",icon:g,fontSize:"20"}))))};function E(e){var t,n,v,h,g,E,p,f=(0,a.useState)(!0),_=f[0],k=f[1],y=(null==e||null===(t=e.data)||void 0===t?void 0:t.issuesJson)||{},N=null===(n=y.labels)||void 0===n?void 0:n.edges,w=null===(v=y.comments)||void 0===v?void 0:v.edges,H=(null==w?void 0:w.length)>0,Z=null==y||null===(h=y.category)||void 0===h?void 0:h.isAnswerable,L=(null==y?void 0:y.author)||{},M=e.pageContext;return(0,a.useEffect)((function(){var e;k(null===(e=y.category)||void 0===e?void 0:e.isAnswerable)}),[]),a.createElement(s.Z,{className:"issues-page",title:y.title+" | Issues"},a.createElement("div",{className:"markdown-body"},a.createElement("h1",null,a.createElement("span",null,a.createElement(u.Z,{number:y.number}),a.createElement("span",null,y.title))),a.createElement("div",{className:"widget"},a.createElement(m.Z,{data:null==y?void 0:y.category}),N&&N.map((function(e){var t=e.node;return a.createElement(d.Z,{key:t.name,data:t})}))),a.createElement("div",null,a.createElement(i.Z,{author:L,date:null==y?void 0:y.updatedAt}),a.createElement("div",{className:"ques-content"},Z&&a.createElement("div",null,a.createElement("span",{className:"icon-action quesicon",title:"Question"},a.createElement(l.JO,{icon:c,fontSize:30})),a.createElement("span",{className:"vote"},a.createElement(l.JO,{icon:o}),a.createElement("b",null,y.upvoteCount))),a.createElement("div",{className:"quescontent",dangerouslySetInnerHTML:{__html:y.bodyHTML}}))),a.createElement(b,{previous:M.previous,next:M.next}),a.createElement("div",{className:"answer-content"},H&&Z&&a.createElement("div",{className:"icon-action answericon",title:"Answer",onClick:function(){return k(!_)}},a.createElement(l.JO,{icon:r,fontSize:30})),a.createElement("div",{className:"comments"},H&&!_&&(null==w||null===(g=w[0])||void 0===g||null===(E=g.node)||void 0===E||null===(p=E.author)||void 0===p?void 0:p.login)&&w.map((function(e){var t,n=e.node,l=null==n||null===(t=n.replies)||void 0===t?void 0:t.edges;return a.createElement("div",{className:"comments-item",key:n.id},a.createElement(i.Z,{author:n.author}),a.createElement("div",{className:"comments-item-content",dangerouslySetInnerHTML:{__html:n.bodyHTML}}),null==l?void 0:l.map((function(e){var t=e.node;return a.createElement("div",{className:"comments-item",key:t.id},a.createElement(i.Z,{author:t.author}),a.createElement("div",{className:"comments-item-content",dangerouslySetInnerHTML:{__html:t.bodyHTML}}))})))}))))))}}}]); +//# sourceMappingURL=component---src-templates-issues-tsx-34a29d5ef81eeab81032.js.map \ No newline at end of file diff --git a/component---src-templates-issues-tsx-34a29d5ef81eeab81032.js.map b/component---src-templates-issues-tsx-34a29d5ef81eeab81032.js.map new file mode 100644 index 00000000..cee489d7 --- /dev/null +++ b/component---src-templates-issues-tsx-34a29d5ef81eeab81032.js.map @@ -0,0 +1 @@ +{"version":3,"file":"component---src-templates-issues-tsx-34a29d5ef81eeab81032.js","mappings":"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","sources":["webpack://gg/./src/components/author/index.tsx","webpack://gg/./src/utils/emoji.ts","webpack://gg/./src/components/category/index.tsx","webpack://gg/./src/components/issues_num/index.tsx","webpack://gg/./src/components/label/index.tsx","webpack://gg/./node_modules/@iconify-icons/mdi/question-answer.js","webpack://gg/./node_modules/@iconify-icons/mdi/comment-question.js","webpack://gg/./node_modules/@iconify-icons/bxs/upvote.js","webpack://gg/./node_modules/@iconify-icons/mdi/page-previous-outline.js","webpack://gg/./node_modules/@iconify-icons/mdi/page-next-outline.js","webpack://gg/./src/components/prev_next/index.tsx","webpack://gg/./src/templates/issues.tsx"],"sourcesContent":["import React, { FC } from 'react';\n\nimport { go, fmtDate } from '@utils/tools';\n\nimport './index.scss';\n\ninterface AuthorProps {\n author: any;\n date?: Date;\n extra?: React.ReactNode;\n}\n\nconst Author: FC = (props) => {\n const author = props.author;\n return (\n
\n go(author.url)}\n >\n {author.login}\n {author.login}\n \n {props.date && {fmtDate(props.date)}}\n {props.extra}\n
\n );\n};\n\nexport default Author;\n","// https://github.com/ikatyang/emoji-cheat-sheet/blob/master/README.md\n\nconst emojiMap: Record = {\n zap: '⚡',\n gear: '⚙️',\n beer: '🍺',\n star: '⭐',\n fire: '🔥',\n tada: '🎉',\n ninja: '🥷',\n mega: '📣',\n crab: '🦀',\n rocket: '🚀',\n warning: '⚠️',\n unicorn: '🦄',\n lobster: '🦞',\n cyclone: '🌀',\n rainbow: '🌈',\n computer: '💻',\n nail_care: '💅',\n sunglasses: '😎',\n see_no_evil: '🙈',\n crystal_ball: '🔮',\n monocle_face: '🧐',\n speech_balloon: '💬',\n exploding_head: '🤯',\n hammer_and_wrench: '🛠️',\n globe_with_meridians: '🌐',\n page_facing_up: '📄',\n thinking: '🤔',\n sparkling_heart: '💖',\n boom: '💥',\n collision: '💥',\n anger: '💢',\n book: '📖',\n open_book: '📖',\n books: '📚',\n game_die: '🎲'\n}\n\nexport default (emoji: string): string => emojiMap[emoji.slice(1, -1)] || '';\n\n\n// -----------------------------------------\n// THUMBS_UP\n// Represents the :+1: emoji.\n\n// THUMBS_DOWN\n// Represents the :-1: emoji.\n\n// LAUGH\n// Represents the :laugh: emoji.\n\n// HOORAY\n// Represents the :hooray: emoji.\n\n// CONFUSED\n// Represents the :confused: emoji.\n\n// HEART\n// Represents the :heart: emoji.\n\n// ROCKET\n// Represents the :rocket: emoji.\n\n// EYES\n// Represents the :eyes: emoji.","import React, { FC } from 'react';\nimport { Link, navigate } from 'gatsby';\n\nimport getEmoji from '@utils/emoji';\nimport { fmtURI } from '@utils/tools';\n\nimport './index.scss';\n\ninterface CategoryProps {\n data: any;\n go?: string;\n}\n\nconst Category: FC = ({ data, go }) => {\n if (!(data && data?.name)) return null;\n return (\n \n {getEmoji(data.emoji)} {data.name}\n \n );\n};\n\nexport default Category;\n","import React, { FC } from 'react';\nimport clsx from 'clsx';\n\nimport { fmtIssues } from '@utils/tools';\nimport useRgd from '@hooks/useRgd';\n\nimport './index.scss';\n\ninterface IssuesNumProps {\n number: number;\n len?: number;\n className?: string;\n}\n\nconst IssuesNum: FC = (props) => {\n const rgdData = useRgd();\n\n let _link;\n switch (rgdData.type) {\n case 'issues':\n _link = `https://github.com/${rgdData.issues_owner}/${rgdData.issues_repo}/issues/${props.number}`;\n break;\n case 'discussions2':\n _link = `https://github.com/${rgdData.dis_owner}/${rgdData.dis_repo}/discussions/${props.number}`;\n break;\n default:\n _link = `https://github.com/${rgdData.owner}/${rgdData.repo}/discussions/${props.number}`;\n }\n\n return (\n \n {props.len ? fmtIssues(props.number, props.len) : `#${props.number}`}\n \n );\n};\n\nexport default IssuesNum;\n","import React, { FC } from 'react';\nimport { Link } from 'gatsby';\n\nimport { fmtURI, getLevel } from '@utils/tools';\nimport useRgd from '@hooks/useRgd';\n\nimport './index.scss';\n\ninterface LabelProps {\n data: any;\n hasLevel?: boolean;\n}\n\nconst Label: FC = ({ data, hasLevel }) => {\n const rgdData = useRgd();\n\n return (\n \n \n #\n {hasLevel && (\n \n {' '}\n {getLevel(data.description, rgdData?.website?.label_level)}\n \n )}\n \n {data.name}\n \n );\n};\n\nLabel.defaultProps = {\n hasLevel: false,\n};\n\nexport default Label;\n","var data = {\n \"body\": \"\",\n \"width\": 24,\n \"height\": 24\n};\nexport default data;","var data = {\n \"body\": \"\",\n \"width\": 24,\n \"height\": 24\n};\nexport default data;","var data = {\n \"body\": \"\",\n \"width\": 24,\n \"height\": 24\n};\nexport default data;","var data = {\n \"body\": \"\",\n \"width\": 24,\n \"height\": 24\n};\nexport default data;","var data = {\n \"body\": \"\",\n \"width\": 24,\n \"height\": 24\n};\nexport default data;","import React, { FC } from 'react';\nimport { Link } from 'gatsby';\nimport { Icon } from '@iconify/react/dist/offline';\nimport iconPrev from '@iconify-icons/mdi/page-previous-outline';\nimport iconNext from '@iconify-icons/mdi/page-next-outline';\n\nimport './index.scss';\n\ninterface PrevNextProps {\n next: any;\n previous: any;\n}\n\nconst PrevNext: FC = (props) => {\n const prev = props.previous;\n const next = props.next;\n\n return (\n
\n {prev && (\n \n \n \n {prev.title}\n \n \n )}\n {next && (\n \n \n {next.title}\n \n \n \n )}\n
\n );\n};\n\nexport default PrevNext;\n","import React, { useEffect, useState } from 'react';\nimport { graphql } from 'gatsby';\nimport { Icon } from '@iconify/react/dist/offline';\nimport iconAnswer from '@iconify-icons/mdi/question-answer';\nimport iconQues from '@iconify-icons/mdi/comment-question';\nimport iconUpvote from '@iconify-icons/bxs/upvote';\n\nimport Layout from '@layouts/base';\nimport Author from '@comps/author';\nimport IssuesNum from '@comps/issues_num';\nimport Category from '@comps/category';\nimport Label from '@comps/label';\nimport PrevNext from '@comps/prev_next';\nimport '@styles/issues.scss';\n\nexport default function BlogIssues(props: any) {\n const [isHide, setHide] = useState(true);\n const data = props?.data?.issuesJson || {};\n const labels = data.labels?.edges;\n const comments = data.comments?.edges;\n const hasComments = comments?.length > 0;\n const isa = data?.category?.isAnswerable;\n const author = data?.author || {};\n const pageCxt = props.pageContext;\n\n useEffect(() => {\n setHide(data.category?.isAnswerable);\n }, []);\n\n return (\n \n
\n

\n \n \n {data.title}\n \n

\n
\n \n {labels &&\n labels.map(({ node }: any) => {\n return
\n
\n \n
\n {isa && (\n
\n \n \n \n \n \n {data.upvoteCount}\n \n
\n )}\n \n
\n
\n \n
\n {hasComments && isa && (\n setHide(!isHide)}\n >\n \n
\n )}\n
\n {hasComments &&\n !isHide &&\n comments?.[0]?.node?.author?.login &&\n comments.map(({ node }: any) => {\n const _replies = node?.replies?.edges;\n return (\n
\n \n \n {_replies?.map(({ node: node2 }: any) => {\n return (\n
\n \n \n
\n );\n })}\n
\n );\n })}\n
\n
\n \n
\n );\n}\n\nexport const query = graphql`\n query GGIssuesQuery($number: Int!) {\n issuesJson(number: { eq: $number }) {\n id\n title\n number\n bodyHTML\n updatedAt\n upvoteCount\n author {\n login\n avatarUrl\n url\n }\n category {\n isAnswerable\n name\n emoji\n }\n labels {\n edges {\n node {\n name\n color\n }\n }\n }\n comments {\n edges {\n node {\n id\n bodyHTML\n author {\n login\n avatarUrl\n url\n }\n replies {\n edges {\n node {\n id\n bodyHTML\n author {\n login\n avatarUrl\n url\n }\n }\n }\n }\n }\n }\n }\n }\n }\n`;\n"],"names":["props","author","React","className","title","url","onClick","go","src","avatarUrl","alt","login","date","fmtDate","extra","emojiMap","zap","gear","beer","star","fire","tada","ninja","mega","crab","rocket","warning","unicorn","lobster","cyclone","rainbow","computer","nail_care","sunglasses","see_no_evil","crystal_ball","monocle_face","speech_balloon","exploding_head","hammer_and_wrench","globe_with_meridians","page_facing_up","thinking","sparkling_heart","boom","collision","anger","book","open_book","books","game_die","data","name","Link","to","fmtURI","target","emoji","slice","getEmoji","_link","rgdData","useRgd","type","issues_owner","issues_repo","number","dis_owner","dis_repo","owner","repo","clsx","href","len","fmtIssues","Label","hasLevel","key","style","borderColor","color","background","getLevel","description","website","_rgdData$website","label_level","defaultProps","prev","previous","next","Icon","icon","iconPrev","fontSize","iconNext","BlogIssues","useState","isHide","setHide","issuesJson","labels","_data$labels","edges","comments","_data$comments","hasComments","length","isa","category","_data$category","isAnswerable","pageCxt","pageContext","useEffect","_data$category2","Layout","IssuesNum","Category","map","node","Author","updatedAt","iconQues","iconUpvote","upvoteCount","dangerouslySetInnerHTML","__html","bodyHTML","PrevNext","iconAnswer","_comments$","_comments$$node","_comments$$node$autho","_replies","replies","_node$replies","id","node2"],"sourceRoot":""} \ No newline at end of file diff --git a/component---src-templates-labels-tsx-34687c66d0846e79559c.js b/component---src-templates-labels-tsx-34687c66d0846e79559c.js new file mode 100644 index 00000000..0b018033 --- /dev/null +++ b/component---src-templates-labels-tsx-34687c66d0846e79559c.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkgg=self.webpackChunkgg||[]).push([[148],{8331:function(e,s,a){var n=a(7294),t=a(1597),r=a(2721);s.Z=function(e){var s=e.data.allDiscussionsJson.nodes,a=e.pageContext.nlen;return n.createElement("div",{className:"issues-list"},s.map((function(e){var s=e.node;return n.createElement("div",{key:s.number,className:"issues-item"},n.createElement(r.Z,{number:s.number,len:a}),n.createElement(t.Link,{className:"title",to:"/issues/"+s.number},s.title))})))}},2721:function(e,s,a){var n=a(7294),t=a(5505),r=a(5104),l=a(1014);s.Z=function(e){var s,a=(0,l.Z)();switch(a.type){case"issues":s="https://github.com/"+a.issues_owner+"/"+a.issues_repo+"/issues/"+e.number;break;case"discussions2":s="https://github.com/"+a.dis_owner+"/"+a.dis_repo+"/discussions/"+e.number;break;default:s="https://github.com/"+a.owner+"/"+a.repo+"/discussions/"+e.number}return n.createElement("a",{className:(0,t.Z)("number issues-num",e.className),href:s,target:"_blank"},e.len?(0,r.K0)(e.number,e.len):"#"+e.number)}},6344:function(e,s,a){a.r(s),a.d(s,{default:function(){return u}});var n=a(7294),t=a(2146),r=a(947),l=a(8331),i=a(5104);function u(e){var s,a=e.pageContext.labels,u=(0,r.Z)(),c=u.repoLink;return s="issues"===u.repoType?c+"?q=label:"+(0,i.FL)(a.name):c+'?discussions_q=label:"'+(0,i.FL)(a.name)+'"',n.createElement(t.Z,{className:"labels-page",title:a.name+" | Labels"},n.createElement("div",{className:"markdown-body"},n.createElement("a",{href:s,className:"labels-head",style:{background:"#"+a.color},target:"_blank"},a.name),a.description&&n.createElement("div",{className:"label-desc"},a.description),n.createElement(l.Z,{data:e.data,pageContext:e.pageContext})))}}}]); +//# sourceMappingURL=component---src-templates-labels-tsx-34687c66d0846e79559c.js.map \ No newline at end of file diff --git a/component---src-templates-labels-tsx-34687c66d0846e79559c.js.map b/component---src-templates-labels-tsx-34687c66d0846e79559c.js.map new file mode 100644 index 00000000..da843f6f --- /dev/null +++ b/component---src-templates-labels-tsx-34687c66d0846e79559c.js.map @@ -0,0 +1 @@ +{"version":3,"file":"component---src-templates-labels-tsx-34687c66d0846e79559c.js","mappings":"+HAgCA,IApBwC,SAACA,GACvC,IAAMC,EAAOD,EAAMC,KAAKC,mBAAmBC,MACrCC,EAAOJ,EAAMK,YAAYD,KAE/B,OACEE,EAAAA,cAAAA,MAAAA,CAAKC,UAAU,eACZN,EAAKO,KAAI,YAAoB,IAAjBC,EAAgB,EAAhBA,KACX,OACEH,EAAAA,cAAAA,MAAAA,CAAKI,IAAKD,EAAKE,OAAQJ,UAAU,eAC/BD,EAAAA,cAACM,EAAAA,EAAD,CAAWD,OAAQF,EAAKE,OAAQE,IAAKT,IACrCE,EAAAA,cAACQ,EAAAA,KAAD,CAAMP,UAAU,QAAQQ,GAAE,WAAaN,EAAKE,QACzCF,EAAKO,c,iECiBpB,IA1BsC,SAAChB,GACrC,IAEIiB,EAFEC,GAAUC,EAAAA,EAAAA,KAGhB,OAAQD,EAAQE,MACd,IAAK,SACHH,EAAK,sBAAyBC,EAAQG,aAAjC,IAAiDH,EAAQI,YAAzD,WAA+EtB,EAAMW,OAC1F,MACF,IAAK,eACHM,EAAK,sBAAyBC,EAAQK,UAAjC,IAA8CL,EAAQM,SAAtD,gBAA8ExB,EAAMW,OACzF,MACF,QACEM,EAAK,sBAAyBC,EAAQO,MAAjC,IAA0CP,EAAQQ,KAAlD,gBAAsE1B,EAAMW,OAGrF,OACEL,EAAAA,cAAAA,IAAAA,CACEC,WAAWoB,EAAAA,EAAAA,GAAK,oBAAqB3B,EAAMO,WAC3CqB,KAAMX,EACNY,OAAO,UAEN7B,EAAMa,KAAMiB,EAAAA,EAAAA,IAAU9B,EAAMW,OAAQX,EAAMa,KAA1Cb,IAAqDA,EAAMW,U,uHC1BnD,SAASoB,EAAa/B,GACnC,IAIIgC,EAJEC,EAAajC,EAAMK,YAAY6B,OACrC,GAA+BC,EAAAA,EAAAA,KAAvBC,EAAR,EAAQA,SAUR,OALEJ,EADe,WAJjB,EAAkBK,SAKAD,EAAN,aAA0BE,EAAAA,EAAAA,IAAOL,EAAWM,MAEtCH,EAAN,0BAAuCE,EAAAA,EAAAA,IAAOL,EAAWM,MAAzD,IAIVjC,EAAAA,cAACkC,EAAAA,EAAD,CAAQjC,UAAU,cAAcS,MAAUiB,EAAWM,KAAhB,aACnCjC,EAAAA,cAAAA,MAAAA,CAAKC,UAAU,iBACbD,EAAAA,cAAAA,IAAAA,CACEsB,KAAMI,EACNzB,UAAU,cACVkC,MAAO,CAAEC,WAAW,IAAKT,EAAWU,OACpCd,OAAO,UAENI,EAAWM,MAGbN,EAAWW,aACVtC,EAAAA,cAAAA,MAAAA,CAAKC,UAAU,cAAc0B,EAAWW,aAG1CtC,EAAAA,cAACuC,EAAAA,EAAD,CAAY5C,KAAMD,EAAMC,KAAMI,YAAaL,EAAMK","sources":["webpack://gg/./src/components/issues_list/index.tsx","webpack://gg/./src/components/issues_num/index.tsx","webpack://gg/./src/templates/labels.tsx"],"sourcesContent":["import React, { FC } from 'react';\nimport { Link } from 'gatsby';\n\nimport IssuesNum from '@comps/issues_num';\n\nimport './index.scss';\n\ninterface IssuesListProps {\n data: any;\n pageContext: any;\n}\n\nconst IssuesList: FC = (props) => {\n const data = props.data.allDiscussionsJson.nodes;\n const nlen = props.pageContext.nlen;\n\n return (\n
\n {data.map(({ node }: any) => {\n return (\n
\n \n \n {node.title}\n \n
\n );\n })}\n
\n );\n};\n\nexport default IssuesList;\n","import React, { FC } from 'react';\nimport clsx from 'clsx';\n\nimport { fmtIssues } from '@utils/tools';\nimport useRgd from '@hooks/useRgd';\n\nimport './index.scss';\n\ninterface IssuesNumProps {\n number: number;\n len?: number;\n className?: string;\n}\n\nconst IssuesNum: FC = (props) => {\n const rgdData = useRgd();\n\n let _link;\n switch (rgdData.type) {\n case 'issues':\n _link = `https://github.com/${rgdData.issues_owner}/${rgdData.issues_repo}/issues/${props.number}`;\n break;\n case 'discussions2':\n _link = `https://github.com/${rgdData.dis_owner}/${rgdData.dis_repo}/discussions/${props.number}`;\n break;\n default:\n _link = `https://github.com/${rgdData.owner}/${rgdData.repo}/discussions/${props.number}`;\n }\n\n return (\n \n {props.len ? fmtIssues(props.number, props.len) : `#${props.number}`}\n \n );\n};\n\nexport default IssuesNum;\n","import React from 'react';\nimport { graphql } from 'gatsby';\n\nimport Layout from '@layouts/base';\nimport useRepoLink from '@hooks/useRepoLink';\nimport IssuesList from '@comps/issues_list';\nimport { fmtURI } from '@utils/tools';\nimport '@styles/labels.scss';\n\nexport default function BlogCategory(props: any) {\n const labelsInfo = props.pageContext.labels;\n const { repoLink, repoType } = useRepoLink();\n // issues label: https://github.com/lencx/gg/issues?q=label:\n // discussions label: https://github.com/lencx/gg/discussions?discussions_q=label:\n let labelsLink;\n if (repoType === 'issues') {\n labelsLink = `${repoLink}?q=label:${fmtURI(labelsInfo.name)}`;\n } else {\n labelsLink = `${repoLink}?discussions_q=label:\"${fmtURI(labelsInfo.name)}\"`;\n }\n\n return (\n \n
\n \n {labelsInfo.name}\n \n\n {labelsInfo.description && (\n
{labelsInfo.description}
\n )}\n\n \n
\n
\n );\n}\n\nexport const query = graphql`\n query GGLabelsQuery($name: String!) {\n allDiscussionsJson(\n filter: {\n node: {\n labels: { edges: { elemMatch: { node: { name: { eq: $name } } } } }\n }\n }\n ) {\n nodes {\n node {\n title\n number\n }\n }\n }\n }\n`;\n"],"names":["props","data","allDiscussionsJson","nodes","nlen","pageContext","React","className","map","node","key","number","IssuesNum","len","Link","to","title","_link","rgdData","useRgd","type","issues_owner","issues_repo","dis_owner","dis_repo","owner","repo","clsx","href","target","fmtIssues","BlogCategory","labelsLink","labelsInfo","labels","useRepoLink","repoLink","repoType","fmtURI","name","Layout","style","background","color","description","IssuesList"],"sourceRoot":""} \ No newline at end of file diff --git a/component---src-templates-nav-category-tsx-4639ce425db5561928b2.js b/component---src-templates-nav-category-tsx-4639ce425db5561928b2.js new file mode 100644 index 00000000..0eeb8362 --- /dev/null +++ b/component---src-templates-nav-category-tsx-4639ce425db5561928b2.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkgg=self.webpackChunkgg||[]).push([[870],{722:function(e,a,n){n.d(a,{Z:function(){return l}});var t=n(7294),r=n(1597),o={zap:"⚡",gear:"⚙️",beer:"🍺",star:"⭐",fire:"🔥",tada:"🎉",ninja:"🥷",mega:"📣",crab:"🦀",rocket:"🚀",warning:"⚠️",unicorn:"🦄",lobster:"🦞",cyclone:"🌀",rainbow:"🌈",computer:"💻",nail_care:"💅",sunglasses:"😎",see_no_evil:"🙈",crystal_ball:"🔮",monocle_face:"🧐",speech_balloon:"💬",exploding_head:"🤯",hammer_and_wrench:"🛠️",globe_with_meridians:"🌐",page_facing_up:"📄",thinking:"🤔",sparkling_heart:"💖",boom:"💥",collision:"💥",anger:"💢",book:"📖",open_book:"📖",books:"📚",game_die:"🎲"},c=n(5104),l=function(e){var a=e.data,n=e.go;return a&&null!=a&&a.name?t.createElement(r.Link,{className:"gg-category",to:n||"/category/"+(0,c.FL)(a.name,!0),target:n?"_blank":"_self"},function(e){return o[e.slice(1,-1)]||""}(a.emoji)," ",a.name):null}},699:function(e,a,n){n.r(a),n.d(a,{default:function(){return i}});var t=n(7294),r=n(1471),o=n(4309),c=n(2146),l=n(722);function i(e){var a=e.pageContext.categoryList;return t.createElement(c.Z,{className:"nav-category-page",title:"Category"},t.createElement("div",{className:"markdown-body"},t.createElement("div",{className:"page-title"},t.createElement(r.JO,{className:"icon",icon:o.Z,fontSize:"24"}),"Category"),t.createElement("div",{className:"list text-center"},a.map((function(e,a){return t.createElement(l.Z,{key:+a,data:e})})))))}}}]); +//# sourceMappingURL=component---src-templates-nav-category-tsx-4639ce425db5561928b2.js.map \ No newline at end of file diff --git a/component---src-templates-nav-category-tsx-4639ce425db5561928b2.js.map b/component---src-templates-nav-category-tsx-4639ce425db5561928b2.js.map new file mode 100644 index 00000000..74d8f665 --- /dev/null +++ b/component---src-templates-nav-category-tsx-4639ce425db5561928b2.js.map @@ -0,0 +1 @@ +{"version":3,"file":"component---src-templates-nav-category-tsx-4639ce425db5561928b2.js","mappings":"oJAEMA,EAAmC,CACvCC,IAAK,IACLC,KAAM,KACNC,KAAM,KACNC,KAAM,IACNC,KAAM,KACNC,KAAM,KACNC,MAAO,KACPC,KAAM,KACNC,KAAM,KACNC,OAAQ,KACRC,QAAS,KACTC,QAAS,KACTC,QAAS,KACTC,QAAS,KACTC,QAAS,KACTC,SAAU,KACVC,UAAW,KACXC,WAAY,KACZC,YAAa,KACbC,aAAc,KACdC,aAAc,KACdC,eAAgB,KAChBC,eAAgB,KAChBC,kBAAmB,MACnBC,qBAAsB,KACtBC,eAAgB,KAChBC,SAAU,KACVC,gBAAiB,KACjBC,KAAM,KACNC,UAAW,KACXC,MAAO,KACPC,KAAM,KACNC,UAAW,KACXC,MAAO,KACPC,SAAU,M,UCXZ,EAboC,SAAC,GAAkB,IAAhBC,EAAe,EAAfA,KAAMC,EAAS,EAATA,GAC3C,OAAMD,GAAAA,MAAQA,GAAAA,EAAME,KAElBC,EAAAA,cAACC,EAAAA,KAAD,CACEC,UAAU,cACVC,GAAIL,GAAE,cAAqBM,EAAAA,EAAAA,IAAOP,EAAKE,MAAM,GAC7CM,OAAQP,EAAK,SAAW,SDqB9B,SAAgBQ,GAAD,OAA2B7C,EAAS6C,EAAMC,MAAM,GAAI,KAAO,GCnBnEC,CAASX,EAAKS,OALjB,IAK0BT,EAAKE,MAPC,O,sHCNrB,SAASU,EAAgBC,GACtC,IAAMC,EAAOD,EAAME,YAAYC,aAE/B,OACEb,EAAAA,cAACc,EAAAA,EAAD,CAAQZ,UAAU,oBAAoBa,MAAM,YAC1Cf,EAAAA,cAAAA,MAAAA,CAAKE,UAAU,iBACbF,EAAAA,cAAAA,MAAAA,CAAKE,UAAU,cACbF,EAAAA,cAACgB,EAAAA,GAAD,CAAMd,UAAU,OAAOe,KAAMC,EAAAA,EAAcC,SAAS,OADtD,YAIAnB,EAAAA,cAAAA,MAAAA,CAAKE,UAAU,oBACZS,EAAKS,KAAI,SAACC,EAAWC,GACpB,OAAOtB,EAAAA,cAACuB,EAAAA,EAAD,CAAUC,KAAMF,EAAKzB,KAAMwB","sources":["webpack://gg/./src/utils/emoji.ts","webpack://gg/./src/components/category/index.tsx","webpack://gg/./src/templates/nav-category.tsx"],"sourcesContent":["// https://github.com/ikatyang/emoji-cheat-sheet/blob/master/README.md\n\nconst emojiMap: Record = {\n zap: '⚡',\n gear: '⚙️',\n beer: '🍺',\n star: '⭐',\n fire: '🔥',\n tada: '🎉',\n ninja: '🥷',\n mega: '📣',\n crab: '🦀',\n rocket: '🚀',\n warning: '⚠️',\n unicorn: '🦄',\n lobster: '🦞',\n cyclone: '🌀',\n rainbow: '🌈',\n computer: '💻',\n nail_care: '💅',\n sunglasses: '😎',\n see_no_evil: '🙈',\n crystal_ball: '🔮',\n monocle_face: '🧐',\n speech_balloon: '💬',\n exploding_head: '🤯',\n hammer_and_wrench: '🛠️',\n globe_with_meridians: '🌐',\n page_facing_up: '📄',\n thinking: '🤔',\n sparkling_heart: '💖',\n boom: '💥',\n collision: '💥',\n anger: '💢',\n book: '📖',\n open_book: '📖',\n books: '📚',\n game_die: '🎲'\n}\n\nexport default (emoji: string): string => emojiMap[emoji.slice(1, -1)] || '';\n\n\n// -----------------------------------------\n// THUMBS_UP\n// Represents the :+1: emoji.\n\n// THUMBS_DOWN\n// Represents the :-1: emoji.\n\n// LAUGH\n// Represents the :laugh: emoji.\n\n// HOORAY\n// Represents the :hooray: emoji.\n\n// CONFUSED\n// Represents the :confused: emoji.\n\n// HEART\n// Represents the :heart: emoji.\n\n// ROCKET\n// Represents the :rocket: emoji.\n\n// EYES\n// Represents the :eyes: emoji.","import React, { FC } from 'react';\nimport { Link, navigate } from 'gatsby';\n\nimport getEmoji from '@utils/emoji';\nimport { fmtURI } from '@utils/tools';\n\nimport './index.scss';\n\ninterface CategoryProps {\n data: any;\n go?: string;\n}\n\nconst Category: FC = ({ data, go }) => {\n if (!(data && data?.name)) return null;\n return (\n \n {getEmoji(data.emoji)} {data.name}\n \n );\n};\n\nexport default Category;\n","import React from 'react';\nimport { Icon } from '@iconify/react/dist/offline';\nimport iconCategory from '@iconify-icons/bxs/category';\n\nimport Layout from '@layouts/base';\nimport Category from '@comps/category';\nimport '@styles/nav-category.scss';\n\nexport default function BlogNavCategory(props: any) {\n const list = props.pageContext.categoryList;\n\n return (\n \n
\n
\n \n Category\n
\n
\n {list.map((item: any, idx: number) => {\n return ;\n })}\n
\n
\n
\n );\n}\n"],"names":["emojiMap","zap","gear","beer","star","fire","tada","ninja","mega","crab","rocket","warning","unicorn","lobster","cyclone","rainbow","computer","nail_care","sunglasses","see_no_evil","crystal_ball","monocle_face","speech_balloon","exploding_head","hammer_and_wrench","globe_with_meridians","page_facing_up","thinking","sparkling_heart","boom","collision","anger","book","open_book","books","game_die","data","go","name","React","Link","className","to","fmtURI","target","emoji","slice","getEmoji","BlogNavCategory","props","list","pageContext","categoryList","Layout","title","Icon","icon","iconCategory","fontSize","map","item","idx","Category","key"],"sourceRoot":""} \ No newline at end of file diff --git a/component---src-templates-nav-labels-tsx-00270bd03148f8d8787c.js b/component---src-templates-nav-labels-tsx-00270bd03148f8d8787c.js new file mode 100644 index 00000000..d2be3589 --- /dev/null +++ b/component---src-templates-nav-labels-tsx-00270bd03148f8d8787c.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkgg=self.webpackChunkgg||[]).push([[251],{8302:function(e,a,t){var l=t(7294),n=t(1597),r=t(5104),s=t(1014),c=function(e){var a,t=e.data,c=e.hasLevel,o=(0,s.Z)();return l.createElement(n.Link,{key:t.name,className:"gg-label",style:{borderColor:"#"+t.color},to:"/labels/"+(0,r.FL)(t.name)},l.createElement("b",{style:{background:"#"+t.color}},"#",c&&l.createElement("span",null," ",(0,r.Wv)(t.description,null==o||null===(a=o.website)||void 0===a?void 0:a.label_level))),l.createElement("em",null,t.name))};c.defaultProps={hasLevel:!1},a.Z=c},20:function(e,a,t){t.r(a),t.d(a,{default:function(){return o}});var l=t(7294),n=t(1471),r=t(3547),s=t(2146),c=t(8302);function o(e){var a=e.pageContext.labelsList;return l.createElement(s.Z,{className:"nav-labels-page",title:"Labels"},l.createElement("div",{className:"markdown-body"},l.createElement("div",{className:"page-title"},l.createElement(n.JO,{className:"icon",icon:r.Z,fontSize:"24"}),"Labels"),l.createElement("div",{className:"list text-center"},a.map((function(e,a){return l.createElement(c.Z,{key:+a,data:e})})),0===a.length&&l.createElement("span",{className:"gg-empty"},"No Data"))))}}}]); +//# sourceMappingURL=component---src-templates-nav-labels-tsx-00270bd03148f8d8787c.js.map \ No newline at end of file diff --git a/component---src-templates-nav-labels-tsx-00270bd03148f8d8787c.js.map b/component---src-templates-nav-labels-tsx-00270bd03148f8d8787c.js.map new file mode 100644 index 00000000..fbfa0da2 --- /dev/null +++ b/component---src-templates-nav-labels-tsx-00270bd03148f8d8787c.js.map @@ -0,0 +1 @@ +{"version":3,"file":"component---src-templates-nav-labels-tsx-00270bd03148f8d8787c.js","mappings":"yIAaMA,EAAwB,SAAC,GAAwB,IAAD,EAArBC,EAAqB,EAArBA,KAAMC,EAAe,EAAfA,SAC/BC,GAAUC,EAAAA,EAAAA,KAEhB,OACEC,EAAAA,cAACC,EAAAA,KAAD,CACEC,IAAKN,EAAKO,KACVC,UAAU,WACVC,MAAO,CAAEC,YAAY,IAAKV,EAAKW,OAC/BC,GAAE,YAAaC,EAAAA,EAAAA,IAAOb,EAAKO,OAE3BH,EAAAA,cAAAA,IAAAA,CAAGK,MAAO,CAAEK,WAAW,IAAKd,EAAKW,QAAjC,IAEGV,GACCG,EAAAA,cAAAA,OAAAA,KACG,KACAW,EAAAA,EAAAA,IAASf,EAAKgB,YAAad,MAAAA,GAAnB,QAAC,EAAkBA,EAASe,eAA5B,aAAmBC,EAAkBC,eAIpDf,EAAAA,cAAAA,KAAAA,KAAKJ,EAAKO,QAKhBR,EAAMqB,aAAe,CACnBnB,UAAU,GAGZ,O,sHCjCe,SAASoB,EAAgBC,GACtC,IAAMC,EAAOD,EAAME,YAAYC,WAE/B,OACErB,EAAAA,cAACsB,EAAAA,EAAD,CAAQlB,UAAU,kBAAkBmB,MAAM,UACxCvB,EAAAA,cAAAA,MAAAA,CAAKI,UAAU,iBACbJ,EAAAA,cAAAA,MAAAA,CAAKI,UAAU,cACbJ,EAAAA,cAACwB,EAAAA,GAAD,CAAMpB,UAAU,OAAOqB,KAAMC,EAAAA,EAAUC,SAAS,OADlD,UAIA3B,EAAAA,cAAAA,MAAAA,CAAKI,UAAU,oBACZe,EAAKS,KAAI,SAACC,EAAWC,GACpB,OAAO9B,EAAAA,cAACL,EAAAA,EAAD,CAAOO,KAAM4B,EAAKlC,KAAMiC,OAEhB,IAAhBV,EAAKY,QAAgB/B,EAAAA,cAAAA,OAAAA,CAAMI,UAAU,YAAhB","sources":["webpack://gg/./src/components/label/index.tsx","webpack://gg/./src/templates/nav-labels.tsx"],"sourcesContent":["import React, { FC } from 'react';\nimport { Link } from 'gatsby';\n\nimport { fmtURI, getLevel } from '@utils/tools';\nimport useRgd from '@hooks/useRgd';\n\nimport './index.scss';\n\ninterface LabelProps {\n data: any;\n hasLevel?: boolean;\n}\n\nconst Label: FC = ({ data, hasLevel }) => {\n const rgdData = useRgd();\n\n return (\n \n \n #\n {hasLevel && (\n \n {' '}\n {getLevel(data.description, rgdData?.website?.label_level)}\n \n )}\n \n {data.name}\n \n );\n};\n\nLabel.defaultProps = {\n hasLevel: false,\n};\n\nexport default Label;\n","import React from 'react';\nimport { Icon } from '@iconify/react/dist/offline';\nimport iconTags from '@iconify-icons/mdi/tag-multiple';\n\nimport Layout from '@layouts/base';\nimport Label from '@comps/label';\nimport '@styles/nav-labels.scss';\n\nexport default function BlogNavCategory(props: any) {\n const list = props.pageContext.labelsList;\n\n return (\n \n
\n
\n \n Labels\n
\n
\n {list.map((item: any, idx: number) => {\n return
\n
\n
\n );\n}\n"],"names":["Label","data","hasLevel","rgdData","useRgd","React","Link","key","name","className","style","borderColor","color","to","fmtURI","background","getLevel","description","website","_rgdData$website","label_level","defaultProps","BlogNavCategory","props","list","pageContext","labelsList","Layout","title","Icon","icon","iconTags","fontSize","map","item","idx","length"],"sourceRoot":""} \ No newline at end of file diff --git a/favicon-32x32.png b/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..82addceee25eff66a5ae6a93c835eada22e5fa58 GIT binary patch literal 1757 zcmV<31|s>1P)wlp-QGQb0vS!)0qi4ehRplx>5lftI7kGr!lJ;rqVb zl}RT1?aX_>-F{Mm^ z&bU5~P9JBu4j)jm+MQiKfqLyRgqsjwc(4B?`dh+B6X&c5c2N}ph2fDz}ctdGKw=Nht+!$>z)9A6| z=<*7$!TPX zw^6U&FH&my0QzJ@AswnZOa~8D(b{$EDJiu-_39l;=Dt>zg${Iu2gLS(16*P&bV?80 zymiY@VRvbnEIf{J z*aB0Wl?vuA2#5(TaDtl+Ky9 zct6n@Bi2kqvqsX8;UlQ8)$SWJF@_cwT%thfgfdE~*8NMDeZ-bxg~cU1sJ{MB3XRaq z(@#XQ?=X|)S7a4%fuY?7aA8hifQe3@IV%N`+h{Xp=2MI@j!9DcXL1x*9j>OR7^5s& z!ibdg3`!sH5~XEiau5O+rz8$4G*Kndzy(f~0W}vc_86dWRer%-o^z$7Gf>9B!PL;$ z$k7iYU;qLN#8-Z~N^ZBCnp;|^tb8xWO^hjyF{EdGxZv_L;P{D?ep|3|^;+LCY-ZA< z-yUN^kLNFGgg7;G$4{i8S=n^;*WYN@?ox`>8(9|^+ARQ=+5m%@O81oe1R|lcqV5TKYmq|f!xS*`Q zIwqHc3r1jNJwfy(?|nlJV1y_xCr+NC%t1rwc6~k7*8M?uo0_O($4&-@d($!o(v6$X3Y(|{ z-~bmm!OfKrAF%j*O$`gRwYAf!(`TrqrG@|Bxzj+4mn>z_u*ewR??YA9GBcog-|9K^D2w?~pIf6v!kU@mbq>qO2X-Dc(&$dp0NMs(NK)=6*tefKV1ymX1O zvPV%!XauJl^j`=GqmenI>8Hz=$?I*F@`6<9{#p42%w^Y}1qq2sTtv>CJtqO)|KLL! zJajmN8W&% zn(pzTf+KiCVUa3`R0iy;kXsCl@W;So40;fr6p>B-e{3m?LZz7 zt+uX?awkkukt?~_0PVv>X@poQE*f}rpzW>LFN=uM0E~$kaC + + RSS + + / + GitHub Discussions + + <![CDATA[快速开始]]> + https://github.com/lencx/gg/discussions/5 + https://github.com/lencx/gg/discussions/5 + 2023-11-08 + 步骤 +

Step1:fork 项目

+

点击项目 右上角的 Fork 按钮,fork 后,可以对仓库进行重命名,修改成自己喜欢的名称。

+

重命名(可选操作):

+
    +
  1. 访问 https://github.com/<owner>/<repo>/settings
  2. +
  3. General -> Repository name -> Rename
  4. +
+

⚠️ 注意:强烈推荐使用 fork 方式,不要对仓库 main 分支代码进行改动,这样可以和上游仓库代码始终保持一致,在升级时,可以快速同步,降低个人的维护成本。

+

Step2:开启 Discussions

+

Repo -> Settings -> General -> Features -> Discussions

+

Step3:创建配置

+

在 Discussions 中新增一个标题为 rgd.yml 的 issues,并在评论框中输入以下代码:

+
```yml
+### 必须配置
+# github 用户名,支持个人或组织
+owner: lencx
+# github 仓库名称
+repo: gg
+
+### 可选配置,如果 type 为 `issues` 类型,才需要以下配置
+# type: `issues` | `discussions` | `discussions2`, default is `discussions`
+# discussions:表示需要写 discussions 的仓库与 fork 此项目的仓库为同一个
+# discussions2:表示需要写 discussions 的仓库与 fork 此项目的仓库彼此独立
+type: issues
+issues-owner: <github_owner>
+issues-repo: <github_repo>
+# state: `open` or `closed`, default is `all`
+issues-state: closed
+
+### 可选配置,如果 type 为 `discussions2` 类型,才需要以下配置
+# type: `issues` | `discussions` | `discussions2`, default is `discussions`
+type: discussions2
+# 写 discussions 的用户名及仓库名
+dis-owner: <github_owner>
+dis-repo: <github_repo>
+
+### 域名配置
+# 个人域名,如果没有则不需要设置
+# 默认使用 github 二级域名,即 https://<owner>.github.io/<repo>
+cname: gg.nofwl.com
+
+### website 配置
+website:
+  # 1. 格式为 png 的 240x240 正方形图片
+  # 2. 在线图片 URL 地址,不设置则使用默认 logo
+  logo: https://user-images.githubusercontent.com/16164244/162659556-64dd7da8-321f-4525-bbbf-975f02b4800f.png
+  # 网站标题
+  title: GG
+  # 网站描述
+  description: A gatsby website builder based on github discussions
+
+### PWA Manifest 配置
+# https://www.gatsbyjs.com/plugins/gatsby-plugin-manifest
+manifest:
+  name: GG
+  short_name: GG
+  start_url: /
+  background_color: '#fafafa'
+  theme_color: '#232629'
+  display: standalone
+  # 1. 格式为 png 的 240x240 正方形图片
+  # 2. 在线图片 URL 地址,不设置则使用默认 logo
+  icon: https://user-images.githubusercontent.com/16164244/162659556-64dd7da8-321f-4525-bbbf-975f02b4800f.png
+```
+

配置参考:

+ +

Step4:生成 Token

+

生成 Token

+

New personal access token

+
    +
  1. Note - 备注随便输入,主要做标识
  2. +
  3. Expiration:No expiration - 过期时间看需要,这里选择不过期
  4. +
  5. Select scopes: workflow - 只需要勾选 workflow
  6. +
  7. 点击 Generate token 按钮,然后复制生成好的 Token
  8. +
+

Step5:设置 Secrets

+

Repo -> Settings -> Secrets -> Actions -> New repository secret

+ +

GG_TYPEissues 时,才需要下面的变量配置:

+
    +
  1. GG_TYPE +
      +
    • Name: GG_TYPE
    • +
    • Value: issues
    • +
    +
  2. +
  3. GG_ISSUES_OWNER:GG_TYPEissues 时,此字段必须 +
      +
    • Name: GG_ISSUES_OWNER
    • +
    • Value: <github_owner>
    • +
    +
  4. +
  5. GG_ISSUES_USER:GG_TYPEissues 时,此字段必须 +
      +
    • Name: GG_ISSUES_REPO
    • +
    • Value: <github_repo>
    • +
    +
  6. +
  7. GG_ISSUES_STATE:可选,如果未设置则包含 OPENCLOSED 的 issues +
      +
    • Name: GG_ISSUES_STATE
    • +
    • Value: CLOSED
    • +
    +
  8. +
+

GG_TYPEdiscussions2 (部署网站的仓库与 discussions 数据不在一个仓库)时,才需要下面的变量配置:

+
    +
  1. GG_TYPE +
      +
    • Name: GG_TYPE
    • +
    • Value: discussions2
    • +
    +
  2. +
  3. GG_DIS_OWNER:GG_TYPEdiscussions2 时,此字段必须 +
      +
    • Name: GG_DIS_OWNER
    • +
    • Value: <github_owner>
    • +
    +
  4. +
  5. GG_DIS_REPO:GG_TYPEdiscussions2 时,此字段必须 +
      +
    • Name: GG_DIS_REPO
    • +
    • Value: <github_repo>
    • +
    +
  6. +
+

自定义域名

+

如果没有域名则不需要设置,默认使用 github 二级域名,即 https://<owner>.github.io/<repo>

+

自定义域名以阿里云为例:
+CNAME

+

构建

+
    +
  • 提交代码会触发构建(🙅🏻‍♂️不推荐,会和上游仓库产生冲突,无法拉取最新代码)
  • +
  • 每隔一小时会自动构建一次(💁🏻‍♂️ 默认,首次创建仓库需要先启用 workflow)
  • +
  • 手动触发构建(🙋🏻‍♂️ 想要部署到网站预览,可以点击 Re-run all jobs 按钮来部署)
  • +
+

在 Fork 项目后,点击 Actions Tab 项,在 All workflows 中选择 github pages点击 Enable workflow,每隔一小时会自动触发一次构建。当自动构建过一次之后,会在 github pages 下产生记录,点击最新一条记录,会看到 Re-run all jobs 按钮,点击它就可以手动执行构建。

+

enable workflow

+

workflow

+

workflow

]]>
+
+ + <![CDATA[How to deploy the discuss in a web site?]]> + https://github.com/lencx/gg/discussions/7 + https://github.com/lencx/gg/discussions/7 + 2023-02-18 + How to deploy the discuss in a web site?
+Thank you!

]]>
+
+ + <![CDATA[Awesome GG]]> + https://github.com/lencx/gg/discussions/6 + https://github.com/lencx/gg/discussions/6 + 2022-06-14 + +

Who is using

+ +
    +
  • rwasm - rsw = rs(rust) → w(wasm)
  • +
  • fe-hunter - 🥷 前端赏金猎人(收集前端高质量问题 + 前端高质量答案)
  • +
  • os2edu - os2edu github discussions
  • +
]]>
+
+ + <![CDATA[rgd.yml]]> + https://github.com/lencx/gg/discussions/2 + https://github.com/lencx/gg/discussions/2 + 2022-09-22 +
### repo ###
+owner: lencx
+repo: gg
+
+# domain name
+cname: gg.nofwl.com
+
+### website ###
+website:
+  # size: 240x240
+  # logo: https://avatars.githubusercontent.com/u/16164244?v=4
+  title: Gatsby GitHub Template
+  description: A gatsby website builder based on github discussions
+
+### PWA Manifest ###
+manifest:
+  name: GG
+  short_name: GG
+  start_url: /
+  background_color: "#fafafa"
+  theme_color: "#232629"
+  display: standalone
+  # icon: https://avatars.githubusercontent.com/u/16164244?v=4
]]>
+
+ + <![CDATA[关于 GG]]> + https://github.com/lencx/gg/discussions/4 + https://github.com/lencx/gg/discussions/4 + 2022-06-14 + +

GG: Gatsby + GitHub

+ +

背景

+

我想要一个可以实时编辑文章的在线 IDE,支持分类,标签,多编程语言,评论互动及问答模式。发文也不需要受到平台的审核及约束,综合考虑下来决定基于 GitHub 来打造一个社区。同样的事情,我希望可以只用做一次,然后可以无限复用这种能力。所以我选择将它开源,并且完全基于 GitHub 所提供的能力来实现。

+

技术栈

+
    +
  • Gatsby.js - 一个基于 React 的免费、开源框架,用于帮助开发者构建运行速度极快的网站和应用程序
  • +
  • lencx/rgd - 一个命令行工具,可以将 GitHub Discussions API 生成 RSS 和 JSON 文件
  • +
  • GitHub Discussions API - 通过接口查询数据
  • +
  • GitHub Pages - 网站部署
  • +
  • GitHub Actions workflow - 定时任务,自动构建,及部署等
  • +
  • PWA - 渐进式 Web 应用程序
  • +
  • 响应式 - 同时支持桌面端,及移动端
  • +
+

工作原理

+

lencx/rgdDiscussions API 中获取数据生成的 JSON 文件,会通过 Gatsby.jsgatsby-transformer-json 插件解析生成 GraphQL 数据作为网站数据源,用来渲染页面。GitHub Actions 每天会定时跑任务,从 GitHub Discussions 获取最新数据变更,重新对网站进行构建,并将其推送到 GitHub Pages

+

部署

+

这个项目推荐的方式是配合 GitHub Actions 每天定时同步 Discussions 中的数据,将其构建后推送到 GitHub Pages。但是您也可以选择部署到其他平台。需要进行如下步骤:

+
yarn deploy
+

将生成的 public 目录部署到其平台。

]]>
+
+ + <![CDATA[test]]> + https://github.com/lencx/gg/discussions/3 + https://github.com/lencx/gg/discussions/3 + 2022-09-01 + test

]]>
+
+ + <![CDATA[Welcome to GG Discussions!]]> + https://github.com/lencx/gg/discussions/1 + https://github.com/lencx/gg/discussions/1 + 2022-09-22 + 👋 Welcome! +

We’re using Discussions as a place to connect with other members of our community. We hope that you:

+
    +
  • Ask questions you’re wondering about.
  • +
  • Share ideas.
  • +
  • Engage with other community members.
  • +
  • Welcome others and are open-minded. Remember that this is a community we
    +build together 💪.
  • +
+

To get started, comment below with an introduction of yourself and tell us about what you do with this community.

+]]>
+
+ +
+
\ No newline at end of file diff --git a/framework-9bb3fbb3e26b41d9be3e.js b/framework-9bb3fbb3e26b41d9be3e.js new file mode 100644 index 00000000..49ff28b8 --- /dev/null +++ b/framework-9bb3fbb3e26b41d9be3e.js @@ -0,0 +1,3 @@ +/*! For license information please see framework-9bb3fbb3e26b41d9be3e.js.LICENSE.txt */ +(self.webpackChunkgg=self.webpackChunkgg||[]).push([[774],{2703:function(e,t,n){"use strict";var r=n(414);function l(){}function a(){}a.resetWarningCache=l,e.exports=function(){function e(e,t,n,l,a,o){if(o!==r){var u=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw u.name="Invariant Violation",u}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:l};return n.PropTypes=n,n}},5697:function(e,t,n){e.exports=n(2703)()},414:function(e){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:function(e,t,n){"use strict";var r=n(7294),l=n(6494),a=n(3840);function o(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n