diff --git a/sites/afcc/.gitattributes b/sites/afcc/.gitattributes new file mode 100644 index 0000000000000000000000000000000000000000..dd09659e57e3fe90b57253058e5e5f4297a7cf79 --- /dev/null +++ b/sites/afcc/.gitattributes @@ -0,0 +1,2 @@ +static/gen-holt.mp3 filter=lfs diff=lfs merge=lfs -text +static/portalVid.mp4 filter=lfs diff=lfs merge=lfs -text diff --git a/sites/afcc/404.html b/sites/afcc/404.html index 4aeea19089c6af29c8c08ff72f149cc1460f9f0b..60fd239bb798cc6e3d9928a622a292cdf2df125c 100644 --- a/sites/afcc/404.html +++ b/sites/afcc/404.html @@ -1 +1 @@ -404: This page could not be found

404

This page could not be found.

\ No newline at end of file +404: This page could not be found

404

This page could not be found.

\ No newline at end of file diff --git a/sites/afcc/_next/data/FqPdw1pPgTyz-N2FYqhX1/biography/cameron-g-holt.json b/sites/afcc/_next/data/FqPdw1pPgTyz-N2FYqhX1/biography/cameron-g-holt.json new file mode 100644 index 0000000000000000000000000000000000000000..8be3cb3eaf62b9c7c16a4c44dbbc98507280719d --- /dev/null +++ b/sites/afcc/_next/data/FqPdw1pPgTyz-N2FYqhX1/biography/cameron-g-holt.json @@ -0,0 +1 @@ +{"pageProps":{"bio":{"Name":"Cameron G. Holt","Position":"Major General","slug":"cameron-g-holt","imageUrl":"/static/gen-holt.jpeg"},"markdownBody":"\n**MAJOR GENERAL CAMERON G. HOLT**\n\nMaj. Gen. Cameron G. Holt is the Deputy Assistant Secretary for Contracting, Office of the Assistant Secretary of the Air Force for Acquisition, Technology and Logistics, Washington, D.C. He is responsible for all aspects of contracting relating to the acquisition of weapon systems, logistics, and operational support for the Air Force and provides contingency contracting support to the geographic combatant commanders. He leads a highly skilled staff of mission-focused business leaders supporting warfighters through $825 billion of Space, Global Power/Reach and Information Dominance programs. He also oversees the training, organizing and equipping of a workforce of some 8,000 contracting professionals who execute programs worth more than $65 billion annually.\n\nPrior to this assignment, General Holt served as the Commander, Air Force Installation Contracting Agency, Office of the Assistant Secretary of the Air Force for Acquisition, Wright-Patterson Air Force Base, Ohio. He led an over 700 personnel agency with a total contract portfolio of $55 billion. In this capacity, he directed enterprise-wide installation strategic sourcing efforts for the Air Force and oversaw $9.1 billion in annual obligations for mission and installation requirements.\n\nGeneral Holt received his commission through the ROTC at the University of Georgia in 1990. He has experience in the full spectrum of acquisition and contract management across four major commands, Headquarters U.S. Air Force, U.S. Air Forces Central Command and the Joint Staff. General Holt is a joint qualified officer with multiple deployments in support of Operation Enduring Freedom.\n\n**EDUCATION**\n\n1990 Bachelor of Business Administration, International Business, University of Georgia, Athens\n\n1996 Distinguished graduate, Squadron Officer School, Maxwell AFB, Ala.\n\n1999 Master of Arts, Organizational Management, George Washington University, Washington, D.C.\n\n2005 Distinguished graduate, Master of Military Operational Art and Science, Air Command and Staff College, Maxwell AFB, Ala.\n\n2008 National Security Fellowship, Kennedy School of Government, Harvard University, Cambridge, Mass.\n\n2014 Enterprise Leadership Seminar, Kenan-Flagler Business School, University of North Carolina at Chapel Hill\n\n2018 Enterprise Perspective Seminar, Washington D.C.\n\n**ASSIGNMENTS**\n\n1. July 1991 – August 1994, Contracts Manager, 1st Contracting and ACC Contracting Squadron, Langley AFB, Va.\n2. August 1994 – June 1997, Commander, Services Contracting Flight, 45th Contracting Squadron, Patrick AFB, Fla.\n3. July 1997 – July 1999, Air Force Intern, the Pentagon, Arlington, Va.\n4. July 1999 – July 2002, F-22 Procuring Contracting Officer, F-22 System Program Office, Aeronautical Systems Center, Wright-Patterson AFB, Ohio\n5. July 2002 – July 2004, Commander, 14th Contracting Squadron, Columbus AFB, Miss.\n6. July 2004 – June 2005, Student, Air Command and Staff College, Maxwell AFB, Ala.\n7. July 2005 – June 2007, F-22 Branch Chief, Secretary of the Air Force (Acquisition), the Pentagon, Arlington, Va.\n8. July 2007 – June 2008, National Security Fellow, Harvard University, Cambridge, Mass.\n9. July 2008 – July 2010, ISR/UAS Programs Evaluator, Joint Staff, the Pentagon, Arlington, Va.\n10. August 2010 – August 2011, Commander, Defense Contract Management- Afghanistan, Kabul, Afghanistan\n11. August 2011 – July 2014, Director of Contracting, Air Armament Center, Eglin AFB, Fla.\n12. July 2012 – July 2014, Director of Contracting, Air Force Life Cycle Management Center, Operating Location-Eglin, Eglin AFB, Fla.\n13. July 2014 – August 2015, Director of Staff, Air Force Installation Contracting Agency, Air Force Installation and Mission Support Center, Air Force Materiel Command, Wright-Patterson AFB, Ohio\n14. August 2015 – May 2018, Commander, Air Force Installation Contracting Agency, Air Force Installation and Mission Support Center, Air Force Materiel Command, Wright-Patterson AFB, Ohio\n15. June 2018 – present, Deputy Assistant Secretary (Contracting), Office of the Assistant Secretary of the Air Force for Acquisition, Technology, & Logistics, the Pentagon, Arlington, Va.\n\n**SUMMARY OF JOINT ASSIGNMENTS**\n\nJuly 2008 – July 2010, ISR/UAS Programs Evaluator, Joint Staff, the Pentagon, Arlington, Va., as a lieutenant colonel.\nAugust 2010 – August 2011, Commander, Defense Contract Management Agency-Afghanistan, Kabul, Afghanistan as a colonel.\n\n**MAJOR AWARDS AND DECORATION**\n\nLegion of Merit\n\nBronze Star Medal\n\nDefense Meritorious Service Medal\n\nAir Force Meritorious Service Medal with two oak leaf clusters\n\nAir Force Commendation Medal with two oak leaf clusters\n\nAir Force Achievement Medal with oak leaf cluster\n\n**OTHER ACHIEVEMENTS**\n\n2000 Secretary of the Air Force Professionalism in Contracting Award\n\n2002 Aeronautical Systems Center Outstanding Contingency Contracting Officer\n\n2003 Air Education and Training Command Professionalism in Contracting Award\n\n2005 ACSC Dean’s Award for Outstanding Research, International Security Studies\n\n2005 Secretary of the Air Force (Acquisition) Team of the Year\n\n2006 Secretary of the Air Force (Acquisition) Team of the Year\n\n2008 Walker Paper Award, Strategic Studies Quarterly, Air University\n\n**EFFECTIVE DATES OF PROMOTION**\n\nSecond Lieutenant Aug.18, 1990\n\nFirst Lieutenant Feb. 1, 1993\n\nCaptain Feb. 1, 1995\n\nMajor Feb. 1, 2002\n\nLieutenant Colonel March 1, 2006\n\nColonel Sept.1, 2010\n\nBrigadier General Sept. 2, 2015\n\nMajor General Oct. 12, 2018\n"},"__N_SSG":true} \ No newline at end of file diff --git a/sites/afcc/_next/data/FqPdw1pPgTyz-N2FYqhX1/biography/dennis-w-carr.json b/sites/afcc/_next/data/FqPdw1pPgTyz-N2FYqhX1/biography/dennis-w-carr.json new file mode 100644 index 0000000000000000000000000000000000000000..ef7d73025111d89da68b214e026959d5588196af --- /dev/null +++ b/sites/afcc/_next/data/FqPdw1pPgTyz-N2FYqhX1/biography/dennis-w-carr.json @@ -0,0 +1 @@ +{"pageProps":{"bio":{"Name":"Dennis W. Carr","Position":"Chief Master Sergeant","slug":"dennis-w-carr","imageUrl":"/static/Dennis_W_Carr.png"},"markdownBody":"\n**CHIEF MASTER SERGEANT DENNIS W. CARR**\n\nChief Master Sergeant Dennis Carr is the Air Force Contracting Career Field Manager and Chief of Enlisted Policy, Pentagon, Washington DC. He is the principal advisor on enlisted matters to the Deputy Assistant Secretary for Contracting, Office of the Assistant Secretary for Acquisition, Technology, and Logistics, and senior staff. Chief Carr is also the functional advisor to the field on contingency contracting support to geographic combatant commanders, Chairs Contracting Enlisted Development Teams, and is a voting member on the Contracting Strategic Council responsible for guiding and developing some 8,000 mission focused business leaders and executing more than \\$65 billion annually.\n\nChief Carr is from Wayland, Iowa, and entered the Air Force in 1996 as an Aerospace Ground Equipment (AGE) Apprentice. He was assigned to the alert mission of the National Airborne Operations Center (NAOC), and completed over 250 missions in support of the National Command Authorities. In 2006, he cross-trained into Contracting and has held various positions including Contract Administrator, Contracting Officer, Flight Chief, Superintendent, Chief of Contracting Office, and MAJCOM Functional Manager. CMSgt Carr has deployed to Saudi Arabia, Iraq, Afghanistan, and the United Arab Emirates in support of Operations SOUTHERN WATCH, IRAQI FREEDOM, ENDURING FREEDOM, and the Combined Joint Task Force-Horn of Africa.\n\n**EDUCATION**\n\n1997 AGE Apprentice Course, Sheppard AFB, TX\n\n2001 Airman Leadership School, Offutt AFB, NE\n\n2003 Associate of Applied Science, Aerospace Ground Equipment, CCAF\n\n2004 AGE Craftsman Course, Sheppard AFB, TX\n\n2005 Sword Bearer NCO Leadership Seminar, Langley AFB, VA\n\n2006 Contracting Apprentice Course, Lackland AFB, TX\n\n2007 Associates of Applied Science, Contracts Management, CCAF\n\n2010 Noncommissioned Officer Academy, Keesler AFB, MS\n\n2013 Professional Management Certification, CCAF\n\n2013 Bachelor’s degree in Business, Bellevue University\n\n2014 Acquisition Professional Development Certification - Level III, Defense Acquisition University\n\n2014 Senior Enlisted Joint Professional Military Education, Phase I, Joint Forces Staff College\n\n2014 US Navy Senior Enlisted Academy, US Navy War College, Newport, RI\n\n2016 Steady State Campaign Support Planning, Air University\n\n2017 Senior Enlisted Joint Professional Military Education, Phase II, Joint Forces Staff College\n\n2017 Chief Master Sergeant Leadership Seminar, Joint Base Pearl Harbor-Hickam, HI\n\n2018 Joint OCS Planning and Execution Course, Joint Base Pearl Harbor-Hickam, HI\n\n2018 Contingency Wartime Planning Course, Joint Base Pearl Harbor-Hickam, HI\n\n**ASSIGNMENTS**\n\n1. Jun 1996 – Aug 1996, Student, Basic Military Training, Lackland AFB, TX\n\n2. Aug 1996 – Feb 1997, Student, 331 TRS, Sheppard AFB, TX\n\n3. Feb 1997 – Oct 2003, AGE Craftsman/NAOC Alert Crew, 55 MXS, Offutt AFB, NE\n (Jul 1998 – Sep 1998, AGE Dispatch Supervisor, Prince Sultan AB, Kingdom of Saudi Arabia)\n\n4. Oct 2003 – Aug 2006, AGE Special Programs Manager, 55 MXS, Offutt AFB, NE\n\n5. Aug 2006 – Oct 2006, Student, 344 TRS, Lackland AFB, TX\n\n6. Oct 2006 – Oct 2009, Contracting Administrator, 15 CONS, Hickam AFB, HI\n (Feb 2009 – Sep 2009, NCOIC of Service Contracts, Camp Victory, Iraq)\n\n7. Oct 2009 – Aug 2013, Deputy Flight Chief/Additional Duty 1st Sergeant, 55 CONS, Offutt AFB, NE\n (Mar 2011 – Sep 2011, Chief of Contracting Office, HQ ISAF, Kabul, Afghanistan)\n (Dec 2012 – Jun 2013, NCOIC of Service Contracts/Additional Duty 1st Sergeant, 380 ECONS, Al Dhafra AB, U.A.E.)\n\n8. Aug 2013 – Jul 2016, Superintendent/Additional Duty 1st Sergeant, 82CONS, Sheppard AFB, TX\n\n9. Jul 2016 – Jul 2017, Superintendent, 18 CONS, Kadena AB, Japan\n\n10. Jul 2017 – Jun 2019, PACAF 6C Functional Manager, AFICA/KH (OL-Pacific), JBPHH, HI\n\n11. Jun 2019 – (Present), Air Force 6C Career Field Manager, SAF/AQC, Pentagon, Washington D.C.\n\n**MAJOR AWARDS AND DECORATIONS**\n\nBronze Star Medal\n\nMeritorious Service Medal with two oak leaf clusters\n\nJoint Service Commendation Medal\n\nAir Force Commendation Medal with four oak leaf clusters\n\nJoint Service Achievement Medal\n\nAir Force Achievement Medal with oak leaf cluster\n\nCombat Readiness Medal with oak leaf cluster\n\nAir Force Recognition Ribbon with oak leaf cluster\n\nNATO – Non-Article 5 Medal\n\n**OTHER ACHIEVEMENTS**\n\n1998 Senior Airman Below The Zone\n\n2001 Airman Leadership School Leadership Award & Distinguished Graduate\n\n2005 Air Combat Command Outstanding Safety Program Achievement Award\n\n2010 Noncommissioned Officer Academy Distinguished Graduate\n\n2010 Omaha Suburban Rotary Club NCO of the Year\n\n2010 55th Wing & 12th Air Force NCO of the Year\n\n2011 55th Wing SNCO of the Year\n\n2012 55th Wing Civic Association Annual Award for Excellence\n\n2012 55th Wing Lance P. Sijan Award Nominee, SNCO Category\n\n2012 U.S. Air Force Outstanding Contracting SNCO of the Year\n\n2014 82d Training Wing Lance P. Sijan Award Nominee, SNCO Category\n\n2014 US Navy Senior Enlisted Academy Communication Award, Distinguished Graduate & Honorary Chief Petty Officer\n\n2014 82d Training Wing & 2d Air Force SNCO of the Year\n\n2014 U.S. Air Force Outstanding Contracting Superintendent of the Year\n\n2015 Department of Defense Elmer B. Staats Contracting Professionalism Award\n\n**EFFECTIVE DATE OF PROMOTION**\n\nChief Master Sergeant - 1 December 2016\n"},"__N_SSG":true} \ No newline at end of file diff --git a/sites/afcc/_next/data/FqPdw1pPgTyz-N2FYqhX1/index.json b/sites/afcc/_next/data/FqPdw1pPgTyz-N2FYqhX1/index.json new file mode 100644 index 0000000000000000000000000000000000000000..28dfc08f1c37f5ef80d4f8825761b06eab3855a7 --- /dev/null +++ b/sites/afcc/_next/data/FqPdw1pPgTyz-N2FYqhX1/index.json @@ -0,0 +1 @@ +{"pageProps":{"leadership":[{"frontmatter":{"Name":"Cameron G. Holt","Position":"Major General","slug":"cameron-g-holt","imageUrl":"/static/gen-holt.jpeg"},"markdownBody":"\n**MAJOR GENERAL CAMERON G. HOLT**\n\nMaj. Gen. Cameron G. Holt is the Deputy Assistant Secretary for Contracting, Office of the Assistant Secretary of the Air Force for Acquisition, Technology and Logistics, Washington, D.C. He is responsible for all aspects of contracting relating to the acquisition of weapon systems, logistics, and operational support for the Air Force and provides contingency contracting support to the geographic combatant commanders. He leads a highly skilled staff of mission-focused business leaders supporting warfighters through $825 billion of Space, Global Power/Reach and Information Dominance programs. He also oversees the training, organizing and equipping of a workforce of some 8,000 contracting professionals who execute programs worth more than $65 billion annually.\n\nPrior to this assignment, General Holt served as the Commander, Air Force Installation Contracting Agency, Office of the Assistant Secretary of the Air Force for Acquisition, Wright-Patterson Air Force Base, Ohio. He led an over 700 personnel agency with a total contract portfolio of $55 billion. In this capacity, he directed enterprise-wide installation strategic sourcing efforts for the Air Force and oversaw $9.1 billion in annual obligations for mission and installation requirements.\n\nGeneral Holt received his commission through the ROTC at the University of Georgia in 1990. He has experience in the full spectrum of acquisition and contract management across four major commands, Headquarters U.S. Air Force, U.S. Air Forces Central Command and the Joint Staff. General Holt is a joint qualified officer with multiple deployments in support of Operation Enduring Freedom.\n\n**EDUCATION**\n\n1990 Bachelor of Business Administration, International Business, University of Georgia, Athens\n\n1996 Distinguished graduate, Squadron Officer School, Maxwell AFB, Ala.\n\n1999 Master of Arts, Organizational Management, George Washington University, Washington, D.C.\n\n2005 Distinguished graduate, Master of Military Operational Art and Science, Air Command and Staff College, Maxwell AFB, Ala.\n\n2008 National Security Fellowship, Kennedy School of Government, Harvard University, Cambridge, Mass.\n\n2014 Enterprise Leadership Seminar, Kenan-Flagler Business School, University of North Carolina at Chapel Hill\n\n2018 Enterprise Perspective Seminar, Washington D.C.\n\n**ASSIGNMENTS**\n\n1. July 1991 – August 1994, Contracts Manager, 1st Contracting and ACC Contracting Squadron, Langley AFB, Va.\n2. August 1994 – June 1997, Commander, Services Contracting Flight, 45th Contracting Squadron, Patrick AFB, Fla.\n3. July 1997 – July 1999, Air Force Intern, the Pentagon, Arlington, Va.\n4. July 1999 – July 2002, F-22 Procuring Contracting Officer, F-22 System Program Office, Aeronautical Systems Center, Wright-Patterson AFB, Ohio\n5. July 2002 – July 2004, Commander, 14th Contracting Squadron, Columbus AFB, Miss.\n6. July 2004 – June 2005, Student, Air Command and Staff College, Maxwell AFB, Ala.\n7. July 2005 – June 2007, F-22 Branch Chief, Secretary of the Air Force (Acquisition), the Pentagon, Arlington, Va.\n8. July 2007 – June 2008, National Security Fellow, Harvard University, Cambridge, Mass.\n9. July 2008 – July 2010, ISR/UAS Programs Evaluator, Joint Staff, the Pentagon, Arlington, Va.\n10. August 2010 – August 2011, Commander, Defense Contract Management- Afghanistan, Kabul, Afghanistan\n11. August 2011 – July 2014, Director of Contracting, Air Armament Center, Eglin AFB, Fla.\n12. July 2012 – July 2014, Director of Contracting, Air Force Life Cycle Management Center, Operating Location-Eglin, Eglin AFB, Fla.\n13. July 2014 – August 2015, Director of Staff, Air Force Installation Contracting Agency, Air Force Installation and Mission Support Center, Air Force Materiel Command, Wright-Patterson AFB, Ohio\n14. August 2015 – May 2018, Commander, Air Force Installation Contracting Agency, Air Force Installation and Mission Support Center, Air Force Materiel Command, Wright-Patterson AFB, Ohio\n15. June 2018 – present, Deputy Assistant Secretary (Contracting), Office of the Assistant Secretary of the Air Force for Acquisition, Technology, & Logistics, the Pentagon, Arlington, Va.\n\n**SUMMARY OF JOINT ASSIGNMENTS**\n\nJuly 2008 – July 2010, ISR/UAS Programs Evaluator, Joint Staff, the Pentagon, Arlington, Va., as a lieutenant colonel.\nAugust 2010 – August 2011, Commander, Defense Contract Management Agency-Afghanistan, Kabul, Afghanistan as a colonel.\n\n**MAJOR AWARDS AND DECORATION**\n\nLegion of Merit\n\nBronze Star Medal\n\nDefense Meritorious Service Medal\n\nAir Force Meritorious Service Medal with two oak leaf clusters\n\nAir Force Commendation Medal with two oak leaf clusters\n\nAir Force Achievement Medal with oak leaf cluster\n\n**OTHER ACHIEVEMENTS**\n\n2000 Secretary of the Air Force Professionalism in Contracting Award\n\n2002 Aeronautical Systems Center Outstanding Contingency Contracting Officer\n\n2003 Air Education and Training Command Professionalism in Contracting Award\n\n2005 ACSC Dean’s Award for Outstanding Research, International Security Studies\n\n2005 Secretary of the Air Force (Acquisition) Team of the Year\n\n2006 Secretary of the Air Force (Acquisition) Team of the Year\n\n2008 Walker Paper Award, Strategic Studies Quarterly, Air University\n\n**EFFECTIVE DATES OF PROMOTION**\n\nSecond Lieutenant Aug.18, 1990\n\nFirst Lieutenant Feb. 1, 1993\n\nCaptain Feb. 1, 1995\n\nMajor Feb. 1, 2002\n\nLieutenant Colonel March 1, 2006\n\nColonel Sept.1, 2010\n\nBrigadier General Sept. 2, 2015\n\nMajor General Oct. 12, 2018\n","slug":"cameron-g-holt"},{"frontmatter":{"Name":"Dennis W. Carr","Position":"Chief Master Sergeant","slug":"dennis-w-carr","imageUrl":"/static/Dennis_W_Carr.png"},"markdownBody":"\n**CHIEF MASTER SERGEANT DENNIS W. CARR**\n\nChief Master Sergeant Dennis Carr is the Air Force Contracting Career Field Manager and Chief of Enlisted Policy, Pentagon, Washington DC. He is the principal advisor on enlisted matters to the Deputy Assistant Secretary for Contracting, Office of the Assistant Secretary for Acquisition, Technology, and Logistics, and senior staff. Chief Carr is also the functional advisor to the field on contingency contracting support to geographic combatant commanders, Chairs Contracting Enlisted Development Teams, and is a voting member on the Contracting Strategic Council responsible for guiding and developing some 8,000 mission focused business leaders and executing more than \\$65 billion annually.\n\nChief Carr is from Wayland, Iowa, and entered the Air Force in 1996 as an Aerospace Ground Equipment (AGE) Apprentice. He was assigned to the alert mission of the National Airborne Operations Center (NAOC), and completed over 250 missions in support of the National Command Authorities. In 2006, he cross-trained into Contracting and has held various positions including Contract Administrator, Contracting Officer, Flight Chief, Superintendent, Chief of Contracting Office, and MAJCOM Functional Manager. CMSgt Carr has deployed to Saudi Arabia, Iraq, Afghanistan, and the United Arab Emirates in support of Operations SOUTHERN WATCH, IRAQI FREEDOM, ENDURING FREEDOM, and the Combined Joint Task Force-Horn of Africa.\n\n**EDUCATION**\n\n1997 AGE Apprentice Course, Sheppard AFB, TX\n\n2001 Airman Leadership School, Offutt AFB, NE\n\n2003 Associate of Applied Science, Aerospace Ground Equipment, CCAF\n\n2004 AGE Craftsman Course, Sheppard AFB, TX\n\n2005 Sword Bearer NCO Leadership Seminar, Langley AFB, VA\n\n2006 Contracting Apprentice Course, Lackland AFB, TX\n\n2007 Associates of Applied Science, Contracts Management, CCAF\n\n2010 Noncommissioned Officer Academy, Keesler AFB, MS\n\n2013 Professional Management Certification, CCAF\n\n2013 Bachelor’s degree in Business, Bellevue University\n\n2014 Acquisition Professional Development Certification - Level III, Defense Acquisition University\n\n2014 Senior Enlisted Joint Professional Military Education, Phase I, Joint Forces Staff College\n\n2014 US Navy Senior Enlisted Academy, US Navy War College, Newport, RI\n\n2016 Steady State Campaign Support Planning, Air University\n\n2017 Senior Enlisted Joint Professional Military Education, Phase II, Joint Forces Staff College\n\n2017 Chief Master Sergeant Leadership Seminar, Joint Base Pearl Harbor-Hickam, HI\n\n2018 Joint OCS Planning and Execution Course, Joint Base Pearl Harbor-Hickam, HI\n\n2018 Contingency Wartime Planning Course, Joint Base Pearl Harbor-Hickam, HI\n\n**ASSIGNMENTS**\n\n1. Jun 1996 – Aug 1996, Student, Basic Military Training, Lackland AFB, TX\n\n2. Aug 1996 – Feb 1997, Student, 331 TRS, Sheppard AFB, TX\n\n3. Feb 1997 – Oct 2003, AGE Craftsman/NAOC Alert Crew, 55 MXS, Offutt AFB, NE\n (Jul 1998 – Sep 1998, AGE Dispatch Supervisor, Prince Sultan AB, Kingdom of Saudi Arabia)\n\n4. Oct 2003 – Aug 2006, AGE Special Programs Manager, 55 MXS, Offutt AFB, NE\n\n5. Aug 2006 – Oct 2006, Student, 344 TRS, Lackland AFB, TX\n\n6. Oct 2006 – Oct 2009, Contracting Administrator, 15 CONS, Hickam AFB, HI\n (Feb 2009 – Sep 2009, NCOIC of Service Contracts, Camp Victory, Iraq)\n\n7. Oct 2009 – Aug 2013, Deputy Flight Chief/Additional Duty 1st Sergeant, 55 CONS, Offutt AFB, NE\n (Mar 2011 – Sep 2011, Chief of Contracting Office, HQ ISAF, Kabul, Afghanistan)\n (Dec 2012 – Jun 2013, NCOIC of Service Contracts/Additional Duty 1st Sergeant, 380 ECONS, Al Dhafra AB, U.A.E.)\n\n8. Aug 2013 – Jul 2016, Superintendent/Additional Duty 1st Sergeant, 82CONS, Sheppard AFB, TX\n\n9. Jul 2016 – Jul 2017, Superintendent, 18 CONS, Kadena AB, Japan\n\n10. Jul 2017 – Jun 2019, PACAF 6C Functional Manager, AFICA/KH (OL-Pacific), JBPHH, HI\n\n11. Jun 2019 – (Present), Air Force 6C Career Field Manager, SAF/AQC, Pentagon, Washington D.C.\n\n**MAJOR AWARDS AND DECORATIONS**\n\nBronze Star Medal\n\nMeritorious Service Medal with two oak leaf clusters\n\nJoint Service Commendation Medal\n\nAir Force Commendation Medal with four oak leaf clusters\n\nJoint Service Achievement Medal\n\nAir Force Achievement Medal with oak leaf cluster\n\nCombat Readiness Medal with oak leaf cluster\n\nAir Force Recognition Ribbon with oak leaf cluster\n\nNATO – Non-Article 5 Medal\n\n**OTHER ACHIEVEMENTS**\n\n1998 Senior Airman Below The Zone\n\n2001 Airman Leadership School Leadership Award & Distinguished Graduate\n\n2005 Air Combat Command Outstanding Safety Program Achievement Award\n\n2010 Noncommissioned Officer Academy Distinguished Graduate\n\n2010 Omaha Suburban Rotary Club NCO of the Year\n\n2010 55th Wing & 12th Air Force NCO of the Year\n\n2011 55th Wing SNCO of the Year\n\n2012 55th Wing Civic Association Annual Award for Excellence\n\n2012 55th Wing Lance P. Sijan Award Nominee, SNCO Category\n\n2012 U.S. Air Force Outstanding Contracting SNCO of the Year\n\n2014 82d Training Wing Lance P. Sijan Award Nominee, SNCO Category\n\n2014 US Navy Senior Enlisted Academy Communication Award, Distinguished Graduate & Honorary Chief Petty Officer\n\n2014 82d Training Wing & 2d Air Force SNCO of the Year\n\n2014 U.S. Air Force Outstanding Contracting Superintendent of the Year\n\n2015 Department of Defense Elmer B. Staats Contracting Professionalism Award\n\n**EFFECTIVE DATE OF PROMOTION**\n\nChief Master Sergeant - 1 December 2016\n","slug":"dennis-w-carr"}]},"__N_SSG":true} \ No newline at end of file diff --git a/sites/afcc/_next/data/FqPdw1pPgTyz-N2FYqhX1/leadership.json b/sites/afcc/_next/data/FqPdw1pPgTyz-N2FYqhX1/leadership.json new file mode 100644 index 0000000000000000000000000000000000000000..28dfc08f1c37f5ef80d4f8825761b06eab3855a7 --- /dev/null +++ b/sites/afcc/_next/data/FqPdw1pPgTyz-N2FYqhX1/leadership.json @@ -0,0 +1 @@ +{"pageProps":{"leadership":[{"frontmatter":{"Name":"Cameron G. Holt","Position":"Major General","slug":"cameron-g-holt","imageUrl":"/static/gen-holt.jpeg"},"markdownBody":"\n**MAJOR GENERAL CAMERON G. HOLT**\n\nMaj. Gen. Cameron G. Holt is the Deputy Assistant Secretary for Contracting, Office of the Assistant Secretary of the Air Force for Acquisition, Technology and Logistics, Washington, D.C. He is responsible for all aspects of contracting relating to the acquisition of weapon systems, logistics, and operational support for the Air Force and provides contingency contracting support to the geographic combatant commanders. He leads a highly skilled staff of mission-focused business leaders supporting warfighters through $825 billion of Space, Global Power/Reach and Information Dominance programs. He also oversees the training, organizing and equipping of a workforce of some 8,000 contracting professionals who execute programs worth more than $65 billion annually.\n\nPrior to this assignment, General Holt served as the Commander, Air Force Installation Contracting Agency, Office of the Assistant Secretary of the Air Force for Acquisition, Wright-Patterson Air Force Base, Ohio. He led an over 700 personnel agency with a total contract portfolio of $55 billion. In this capacity, he directed enterprise-wide installation strategic sourcing efforts for the Air Force and oversaw $9.1 billion in annual obligations for mission and installation requirements.\n\nGeneral Holt received his commission through the ROTC at the University of Georgia in 1990. He has experience in the full spectrum of acquisition and contract management across four major commands, Headquarters U.S. Air Force, U.S. Air Forces Central Command and the Joint Staff. General Holt is a joint qualified officer with multiple deployments in support of Operation Enduring Freedom.\n\n**EDUCATION**\n\n1990 Bachelor of Business Administration, International Business, University of Georgia, Athens\n\n1996 Distinguished graduate, Squadron Officer School, Maxwell AFB, Ala.\n\n1999 Master of Arts, Organizational Management, George Washington University, Washington, D.C.\n\n2005 Distinguished graduate, Master of Military Operational Art and Science, Air Command and Staff College, Maxwell AFB, Ala.\n\n2008 National Security Fellowship, Kennedy School of Government, Harvard University, Cambridge, Mass.\n\n2014 Enterprise Leadership Seminar, Kenan-Flagler Business School, University of North Carolina at Chapel Hill\n\n2018 Enterprise Perspective Seminar, Washington D.C.\n\n**ASSIGNMENTS**\n\n1. July 1991 – August 1994, Contracts Manager, 1st Contracting and ACC Contracting Squadron, Langley AFB, Va.\n2. August 1994 – June 1997, Commander, Services Contracting Flight, 45th Contracting Squadron, Patrick AFB, Fla.\n3. July 1997 – July 1999, Air Force Intern, the Pentagon, Arlington, Va.\n4. July 1999 – July 2002, F-22 Procuring Contracting Officer, F-22 System Program Office, Aeronautical Systems Center, Wright-Patterson AFB, Ohio\n5. July 2002 – July 2004, Commander, 14th Contracting Squadron, Columbus AFB, Miss.\n6. July 2004 – June 2005, Student, Air Command and Staff College, Maxwell AFB, Ala.\n7. July 2005 – June 2007, F-22 Branch Chief, Secretary of the Air Force (Acquisition), the Pentagon, Arlington, Va.\n8. July 2007 – June 2008, National Security Fellow, Harvard University, Cambridge, Mass.\n9. July 2008 – July 2010, ISR/UAS Programs Evaluator, Joint Staff, the Pentagon, Arlington, Va.\n10. August 2010 – August 2011, Commander, Defense Contract Management- Afghanistan, Kabul, Afghanistan\n11. August 2011 – July 2014, Director of Contracting, Air Armament Center, Eglin AFB, Fla.\n12. July 2012 – July 2014, Director of Contracting, Air Force Life Cycle Management Center, Operating Location-Eglin, Eglin AFB, Fla.\n13. July 2014 – August 2015, Director of Staff, Air Force Installation Contracting Agency, Air Force Installation and Mission Support Center, Air Force Materiel Command, Wright-Patterson AFB, Ohio\n14. August 2015 – May 2018, Commander, Air Force Installation Contracting Agency, Air Force Installation and Mission Support Center, Air Force Materiel Command, Wright-Patterson AFB, Ohio\n15. June 2018 – present, Deputy Assistant Secretary (Contracting), Office of the Assistant Secretary of the Air Force for Acquisition, Technology, & Logistics, the Pentagon, Arlington, Va.\n\n**SUMMARY OF JOINT ASSIGNMENTS**\n\nJuly 2008 – July 2010, ISR/UAS Programs Evaluator, Joint Staff, the Pentagon, Arlington, Va., as a lieutenant colonel.\nAugust 2010 – August 2011, Commander, Defense Contract Management Agency-Afghanistan, Kabul, Afghanistan as a colonel.\n\n**MAJOR AWARDS AND DECORATION**\n\nLegion of Merit\n\nBronze Star Medal\n\nDefense Meritorious Service Medal\n\nAir Force Meritorious Service Medal with two oak leaf clusters\n\nAir Force Commendation Medal with two oak leaf clusters\n\nAir Force Achievement Medal with oak leaf cluster\n\n**OTHER ACHIEVEMENTS**\n\n2000 Secretary of the Air Force Professionalism in Contracting Award\n\n2002 Aeronautical Systems Center Outstanding Contingency Contracting Officer\n\n2003 Air Education and Training Command Professionalism in Contracting Award\n\n2005 ACSC Dean’s Award for Outstanding Research, International Security Studies\n\n2005 Secretary of the Air Force (Acquisition) Team of the Year\n\n2006 Secretary of the Air Force (Acquisition) Team of the Year\n\n2008 Walker Paper Award, Strategic Studies Quarterly, Air University\n\n**EFFECTIVE DATES OF PROMOTION**\n\nSecond Lieutenant Aug.18, 1990\n\nFirst Lieutenant Feb. 1, 1993\n\nCaptain Feb. 1, 1995\n\nMajor Feb. 1, 2002\n\nLieutenant Colonel March 1, 2006\n\nColonel Sept.1, 2010\n\nBrigadier General Sept. 2, 2015\n\nMajor General Oct. 12, 2018\n","slug":"cameron-g-holt"},{"frontmatter":{"Name":"Dennis W. Carr","Position":"Chief Master Sergeant","slug":"dennis-w-carr","imageUrl":"/static/Dennis_W_Carr.png"},"markdownBody":"\n**CHIEF MASTER SERGEANT DENNIS W. CARR**\n\nChief Master Sergeant Dennis Carr is the Air Force Contracting Career Field Manager and Chief of Enlisted Policy, Pentagon, Washington DC. He is the principal advisor on enlisted matters to the Deputy Assistant Secretary for Contracting, Office of the Assistant Secretary for Acquisition, Technology, and Logistics, and senior staff. Chief Carr is also the functional advisor to the field on contingency contracting support to geographic combatant commanders, Chairs Contracting Enlisted Development Teams, and is a voting member on the Contracting Strategic Council responsible for guiding and developing some 8,000 mission focused business leaders and executing more than \\$65 billion annually.\n\nChief Carr is from Wayland, Iowa, and entered the Air Force in 1996 as an Aerospace Ground Equipment (AGE) Apprentice. He was assigned to the alert mission of the National Airborne Operations Center (NAOC), and completed over 250 missions in support of the National Command Authorities. In 2006, he cross-trained into Contracting and has held various positions including Contract Administrator, Contracting Officer, Flight Chief, Superintendent, Chief of Contracting Office, and MAJCOM Functional Manager. CMSgt Carr has deployed to Saudi Arabia, Iraq, Afghanistan, and the United Arab Emirates in support of Operations SOUTHERN WATCH, IRAQI FREEDOM, ENDURING FREEDOM, and the Combined Joint Task Force-Horn of Africa.\n\n**EDUCATION**\n\n1997 AGE Apprentice Course, Sheppard AFB, TX\n\n2001 Airman Leadership School, Offutt AFB, NE\n\n2003 Associate of Applied Science, Aerospace Ground Equipment, CCAF\n\n2004 AGE Craftsman Course, Sheppard AFB, TX\n\n2005 Sword Bearer NCO Leadership Seminar, Langley AFB, VA\n\n2006 Contracting Apprentice Course, Lackland AFB, TX\n\n2007 Associates of Applied Science, Contracts Management, CCAF\n\n2010 Noncommissioned Officer Academy, Keesler AFB, MS\n\n2013 Professional Management Certification, CCAF\n\n2013 Bachelor’s degree in Business, Bellevue University\n\n2014 Acquisition Professional Development Certification - Level III, Defense Acquisition University\n\n2014 Senior Enlisted Joint Professional Military Education, Phase I, Joint Forces Staff College\n\n2014 US Navy Senior Enlisted Academy, US Navy War College, Newport, RI\n\n2016 Steady State Campaign Support Planning, Air University\n\n2017 Senior Enlisted Joint Professional Military Education, Phase II, Joint Forces Staff College\n\n2017 Chief Master Sergeant Leadership Seminar, Joint Base Pearl Harbor-Hickam, HI\n\n2018 Joint OCS Planning and Execution Course, Joint Base Pearl Harbor-Hickam, HI\n\n2018 Contingency Wartime Planning Course, Joint Base Pearl Harbor-Hickam, HI\n\n**ASSIGNMENTS**\n\n1. Jun 1996 – Aug 1996, Student, Basic Military Training, Lackland AFB, TX\n\n2. Aug 1996 – Feb 1997, Student, 331 TRS, Sheppard AFB, TX\n\n3. Feb 1997 – Oct 2003, AGE Craftsman/NAOC Alert Crew, 55 MXS, Offutt AFB, NE\n (Jul 1998 – Sep 1998, AGE Dispatch Supervisor, Prince Sultan AB, Kingdom of Saudi Arabia)\n\n4. Oct 2003 – Aug 2006, AGE Special Programs Manager, 55 MXS, Offutt AFB, NE\n\n5. Aug 2006 – Oct 2006, Student, 344 TRS, Lackland AFB, TX\n\n6. Oct 2006 – Oct 2009, Contracting Administrator, 15 CONS, Hickam AFB, HI\n (Feb 2009 – Sep 2009, NCOIC of Service Contracts, Camp Victory, Iraq)\n\n7. Oct 2009 – Aug 2013, Deputy Flight Chief/Additional Duty 1st Sergeant, 55 CONS, Offutt AFB, NE\n (Mar 2011 – Sep 2011, Chief of Contracting Office, HQ ISAF, Kabul, Afghanistan)\n (Dec 2012 – Jun 2013, NCOIC of Service Contracts/Additional Duty 1st Sergeant, 380 ECONS, Al Dhafra AB, U.A.E.)\n\n8. Aug 2013 – Jul 2016, Superintendent/Additional Duty 1st Sergeant, 82CONS, Sheppard AFB, TX\n\n9. Jul 2016 – Jul 2017, Superintendent, 18 CONS, Kadena AB, Japan\n\n10. Jul 2017 – Jun 2019, PACAF 6C Functional Manager, AFICA/KH (OL-Pacific), JBPHH, HI\n\n11. Jun 2019 – (Present), Air Force 6C Career Field Manager, SAF/AQC, Pentagon, Washington D.C.\n\n**MAJOR AWARDS AND DECORATIONS**\n\nBronze Star Medal\n\nMeritorious Service Medal with two oak leaf clusters\n\nJoint Service Commendation Medal\n\nAir Force Commendation Medal with four oak leaf clusters\n\nJoint Service Achievement Medal\n\nAir Force Achievement Medal with oak leaf cluster\n\nCombat Readiness Medal with oak leaf cluster\n\nAir Force Recognition Ribbon with oak leaf cluster\n\nNATO – Non-Article 5 Medal\n\n**OTHER ACHIEVEMENTS**\n\n1998 Senior Airman Below The Zone\n\n2001 Airman Leadership School Leadership Award & Distinguished Graduate\n\n2005 Air Combat Command Outstanding Safety Program Achievement Award\n\n2010 Noncommissioned Officer Academy Distinguished Graduate\n\n2010 Omaha Suburban Rotary Club NCO of the Year\n\n2010 55th Wing & 12th Air Force NCO of the Year\n\n2011 55th Wing SNCO of the Year\n\n2012 55th Wing Civic Association Annual Award for Excellence\n\n2012 55th Wing Lance P. Sijan Award Nominee, SNCO Category\n\n2012 U.S. Air Force Outstanding Contracting SNCO of the Year\n\n2014 82d Training Wing Lance P. Sijan Award Nominee, SNCO Category\n\n2014 US Navy Senior Enlisted Academy Communication Award, Distinguished Graduate & Honorary Chief Petty Officer\n\n2014 82d Training Wing & 2d Air Force SNCO of the Year\n\n2014 U.S. Air Force Outstanding Contracting Superintendent of the Year\n\n2015 Department of Defense Elmer B. Staats Contracting Professionalism Award\n\n**EFFECTIVE DATE OF PROMOTION**\n\nChief Master Sergeant - 1 December 2016\n","slug":"dennis-w-carr"}]},"__N_SSG":true} \ No newline at end of file diff --git a/sites/afcc/_next/static/FqPdw1pPgTyz-N2FYqhX1/_buildManifest.js b/sites/afcc/_next/static/FqPdw1pPgTyz-N2FYqhX1/_buildManifest.js new file mode 100644 index 0000000000000000000000000000000000000000..83c151cb93b0d96a45785f9ac3254c554b0f6414 --- /dev/null +++ b/sites/afcc/_next/static/FqPdw1pPgTyz-N2FYqhX1/_buildManifest.js @@ -0,0 +1 @@ +self.__BUILD_MANIFEST = (function(a,b,c,d){return {__rewrites:[],"/":[a,b,"static\u002Fchunks\u002Fpages\u002Findex-f605b541f4ef3e914039.js"],"/_error":["static\u002Fchunks\u002Fpages\u002F_error-e1831133b7c5948759fe.js"],"/admin":["static\u002Fchunks\u002Fpages\u002Fadmin-4f64037417316c4bec25.js"],"/biography/[slug]":[a,b,"static\u002Fchunks\u002Fpages\u002Fbiography\u002F[slug]-aac5cef8f856443b8aed.js"],"/contact":["static\u002Fchunks\u002Fpages\u002Fcontact-40c24bef6a225876ecee.js"],"/doing-business":["static\u002Fcss\u002F0811c9aaa11c322857e4.css","static\u002Fchunks\u002Fpages\u002Fdoing-business-bf6e12a1aad76bf6dc5d.js"],"/leadership":["static\u002Fchunks\u002Fpages\u002Fleadership-70ce0cb0605763dc1ca4.js"],"/loe":[a,"static\u002Fcss\u002F69f9cec435d824161cbd.css","static\u002Fchunks\u002Fpages\u002Floe-bd2ccb07a8d55bf924ac.js"],"/posts":[c,a,d,"static\u002Fcss\u002Fa0b594f98b8b9091c35a.css","static\u002Fchunks\u002Fpages\u002Fposts-fad6f16fb016628006cf.js"],"/posts/[slug]":[c,a,d,b,"static\u002Fchunks\u002Fpages\u002Fposts\u002F[slug]-7e5697bbe66e0b4f57ab.js"],sortedPages:["\u002F","\u002F_app","\u002F_error","\u002Fadmin","\u002Fbiography\u002F[slug]","\u002Fcontact","\u002Fdoing-business","\u002Fleadership","\u002Floe","\u002Fposts","\u002Fposts\u002F[slug]"]}}("static\u002Fchunks\u002F4a84f440acdc25b9f3f1014dcd3f883a29244037.7132574235b2cd016a56.js","static\u002Fcss\u002F7934dfd28b43ed63c074.css","static\u002Fchunks\u002F9f96d65d.c48160dec0be48419688.js","static\u002Fchunks\u002F580326ea4e2e9b109e0fa60990f8a92394f5f544.c61485b527ac393ded92.js"));self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB() \ No newline at end of file diff --git a/sites/afcc/_next/static/FqPdw1pPgTyz-N2FYqhX1/_ssgManifest.js b/sites/afcc/_next/static/FqPdw1pPgTyz-N2FYqhX1/_ssgManifest.js new file mode 100644 index 0000000000000000000000000000000000000000..bbf7723ace8776bb1f446e262fe40aac5343a5ca --- /dev/null +++ b/sites/afcc/_next/static/FqPdw1pPgTyz-N2FYqhX1/_ssgManifest.js @@ -0,0 +1 @@ +self.__SSG_MANIFEST=new Set(["\u002Fleadership","\u002F","\u002Fbiography\u002F[slug]"]);self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB() \ No newline at end of file diff --git a/sites/afcc/_next/static/K-YmFx4UJxZMiF5aNnANW/_buildManifest.js b/sites/afcc/_next/static/K-YmFx4UJxZMiF5aNnANW/_buildManifest.js deleted file mode 100644 index fb5581a9ed9d4af5df3270dae36e6c056669d1c4..0000000000000000000000000000000000000000 --- a/sites/afcc/_next/static/K-YmFx4UJxZMiF5aNnANW/_buildManifest.js +++ /dev/null @@ -1 +0,0 @@ -self.__BUILD_MANIFEST = {"/":["static\u002Fchunks\u002Fpages\u002Findex-8a73e888ca2bd63d91f0.js"],"/_error":["static\u002Fchunks\u002Fpages\u002F_error-a98d98d178927e175cb7.js"]};self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB() \ No newline at end of file diff --git a/sites/afcc/_next/static/K-YmFx4UJxZMiF5aNnANW/_ssgManifest.js b/sites/afcc/_next/static/K-YmFx4UJxZMiF5aNnANW/_ssgManifest.js deleted file mode 100644 index 2260768dc5ed2038ca4a4ee405a15f82886a290f..0000000000000000000000000000000000000000 --- a/sites/afcc/_next/static/K-YmFx4UJxZMiF5aNnANW/_ssgManifest.js +++ /dev/null @@ -1 +0,0 @@ -self.__SSG_MANIFEST=new Set;self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB() \ No newline at end of file diff --git a/sites/afcc/_next/static/L8ztrmIRuMf5a5tSQjGR0/_buildManifest.js b/sites/afcc/_next/static/L8ztrmIRuMf5a5tSQjGR0/_buildManifest.js deleted file mode 100644 index 04532f3a6ba56dffa0a2aeca28ed83e5be54d89d..0000000000000000000000000000000000000000 --- a/sites/afcc/_next/static/L8ztrmIRuMf5a5tSQjGR0/_buildManifest.js +++ /dev/null @@ -1 +0,0 @@ -self.__BUILD_MANIFEST = {"/":["static\u002Fchunks\u002Fpages\u002Findex-e3ebb8a823a12dc050bc.js"],"/_error":["static\u002Fchunks\u002Fpages\u002F_error-a98d98d178927e175cb7.js"]};self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB() \ No newline at end of file diff --git a/sites/afcc/_next/static/L8ztrmIRuMf5a5tSQjGR0/_ssgManifest.js b/sites/afcc/_next/static/L8ztrmIRuMf5a5tSQjGR0/_ssgManifest.js deleted file mode 100644 index 2260768dc5ed2038ca4a4ee405a15f82886a290f..0000000000000000000000000000000000000000 --- a/sites/afcc/_next/static/L8ztrmIRuMf5a5tSQjGR0/_ssgManifest.js +++ /dev/null @@ -1 +0,0 @@ -self.__SSG_MANIFEST=new Set;self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB() \ No newline at end of file diff --git a/sites/afcc/_next/static/chunks/1.js b/sites/afcc/_next/static/chunks/1.js new file mode 100644 index 0000000000000000000000000000000000000000..6b8ba184980ae291f5deed5f3b3796e2656f9989 --- /dev/null +++ b/sites/afcc/_next/static/chunks/1.js @@ -0,0 +1,59 @@ +(window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([[1],{ + +/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/next/dist/compiled/postcss-loader/index.js?!./src/components/WavePlayer/wave.module.css": +/*!******************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js??ref--5-oneOf-2-1!./node_modules/next/dist/compiled/postcss-loader??__nextjs_postcss!./src/components/WavePlayer/wave.module.css ***! + \******************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.i, \".wave_playBtn__1uHN3 {\\n border: none;\\n outline: none !important;\\n cursor: pointer;\\n width: 30px;\\n height: 30px;\\n display: flex;\\n z-index: 10;\\n}\\n\\n.wave_play__33jmi {\\n width: 30px;\\n height: 30px;\\n border-width: 15px 0px 15px 31px;\\n border-color: transparent transparent transparent #2f2f2f;\\n transition: all 200ms ease-in-out;\\n cursor: pointer;\\n}\\n\\n.wave_play__33jmi.wave_pause__2zVgW {\\n border-style: double;\\n border-width: 0px 0 0px 20px;\\n}\\n\\n.wave_waveWrapper__26H1o {\\n margin-left: auto;\\n margin-right: auto;\\n padding-top: 12rem;\\n width: 550px;\\n}\\n\\n@media only screen and (max-width: 600px) {\\n .wave_waveWrapper__26H1o {\\n padding-top: 3rem;\\n width: 100vw;\\n }\\n\\n .wave_play__33jmi {\\n width: 24px;\\n height: 24px;\\n border-width: 12px 0px 12px 24px;\\n }\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://src/components/WavePlayer/wave.module.css\",\"webpack://\"],\"names\":[],\"mappings\":\"AAAA;EACE,YAAY;EACZ,wBAAwB;EACxB,eAAe;EACf,WAAW;EACX,YAAY;EACZ,aAAa;EACb,WAAW;AACb;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,gCAAgC;EAChC,yDAAyD;EACzD,iCAAiC;EACjC,eAAe;AACjB;;AAEA;EACE,oBAAoB;EACpB,4BAA4B;AAC9B;;AAEA;ECxBA,iBAAA;EAAA,kBAAA;EAAA,kBAAA;ED0BE,YAAY;AACd;;AAEA;EACE;IC9BF,iBAAA;IDgCI,YAAY;EACd;;EAEA;IACE,WAAW;IACX,YAAY;IACZ,gCAAgC;EAClC;AACF\",\"sourcesContent\":[\".playBtn {\\n border: none;\\n outline: none !important;\\n cursor: pointer;\\n width: 30px;\\n height: 30px;\\n display: flex;\\n z-index: 10;\\n}\\n\\n.play {\\n width: 30px;\\n height: 30px;\\n border-width: 15px 0px 15px 31px;\\n border-color: transparent transparent transparent #2f2f2f;\\n transition: all 200ms ease-in-out;\\n cursor: pointer;\\n}\\n\\n.play.pause {\\n border-style: double;\\n border-width: 0px 0 0px 20px;\\n}\\n\\n.waveWrapper {\\n @apply mx-auto pt-48;\\n width: 550px;\\n}\\n\\n@media only screen and (max-width: 600px) {\\n .waveWrapper {\\n @apply pt-12;\\n width: 100vw;\\n }\\n\\n .play {\\n width: 24px;\\n height: 24px;\\n border-width: 12px 0px 12px 24px;\\n }\\n}\\n\",null],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"playBtn\": \"wave_playBtn__1uHN3\",\n\t\"play\": \"wave_play__33jmi\",\n\t\"pause\": \"wave_pause__2zVgW\",\n\t\"waveWrapper\": \"wave_waveWrapper__26H1o\"\n};\nmodule.exports = ___CSS_LOADER_EXPORT___;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2NvbXBvbmVudHMvV2F2ZVBsYXllci93YXZlLm1vZHVsZS5jc3M/MWM2YiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBLGtDQUFrQyxtQkFBTyxDQUFDLDJHQUFzRDtBQUNoRztBQUNBO0FBQ0EsOEJBQThCLFFBQVMseUJBQXlCLGlCQUFpQiw2QkFBNkIsb0JBQW9CLGdCQUFnQixpQkFBaUIsa0JBQWtCLGdCQUFnQixHQUFHLHVCQUF1QixnQkFBZ0IsaUJBQWlCLHFDQUFxQyw4REFBOEQsc0NBQXNDLG9CQUFvQixHQUFHLHlDQUF5Qyx5QkFBeUIsaUNBQWlDLEdBQUcsOEJBQThCLHNCQUFzQix1QkFBdUIsdUJBQXVCLGlCQUFpQixHQUFHLCtDQUErQyw4QkFBOEIsd0JBQXdCLG1CQUFtQixLQUFLLHlCQUF5QixrQkFBa0IsbUJBQW1CLHVDQUF1QyxLQUFLLEdBQUcsU0FBUyxrSUFBa0ksVUFBVSxZQUFZLFdBQVcsVUFBVSxVQUFVLFVBQVUsVUFBVSxNQUFNLEtBQUssVUFBVSxVQUFVLFlBQVksYUFBYSxhQUFhLFdBQVcsT0FBTyxLQUFLLFlBQVksYUFBYSxPQUFPLEtBQUssWUFBWSxXQUFXLFdBQVcsV0FBVyxNQUFNLEtBQUssS0FBSyxZQUFZLFdBQVcsTUFBTSxLQUFLLFVBQVUsVUFBVSxZQUFZLE1BQU0sbUNBQW1DLGlCQUFpQiw2QkFBNkIsb0JBQW9CLGdCQUFnQixpQkFBaUIsa0JBQWtCLGdCQUFnQixHQUFHLFdBQVcsZ0JBQWdCLGlCQUFpQixxQ0FBcUMsOERBQThELHNDQUFzQyxvQkFBb0IsR0FBRyxpQkFBaUIseUJBQXlCLGlDQUFpQyxHQUFHLGtCQUFrQix5QkFBeUIsaUJBQWlCLEdBQUcsK0NBQStDLGtCQUFrQixtQkFBbUIsbUJBQW1CLEtBQUssYUFBYSxrQkFBa0IsbUJBQW1CLHVDQUF1QyxLQUFLLEdBQUcsMEJBQTBCO0FBQzNpRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9wb3N0Y3NzLWxvYWRlci9pbmRleC5qcz8hLi9zcmMvY29tcG9uZW50cy9XYXZlUGxheWVyL3dhdmUubW9kdWxlLmNzcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEltcG9ydHNcbnZhciBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gPSByZXF1aXJlKFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiKTtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyh0cnVlKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIi53YXZlX3BsYXlCdG5fXzF1SE4zIHtcXG4gIGJvcmRlcjogbm9uZTtcXG4gIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIHdpZHRoOiAzMHB4O1xcbiAgaGVpZ2h0OiAzMHB4O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIHotaW5kZXg6IDEwO1xcbn1cXG5cXG4ud2F2ZV9wbGF5X18zM2ptaSB7XFxuICB3aWR0aDogMzBweDtcXG4gIGhlaWdodDogMzBweDtcXG4gIGJvcmRlci13aWR0aDogMTVweCAwcHggMTVweCAzMXB4O1xcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjMmYyZjJmO1xcbiAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2UtaW4tb3V0O1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG5cXG4ud2F2ZV9wbGF5X18zM2ptaS53YXZlX3BhdXNlX18yelZnVyB7XFxuICBib3JkZXItc3R5bGU6IGRvdWJsZTtcXG4gIGJvcmRlci13aWR0aDogMHB4IDAgMHB4IDIwcHg7XFxufVxcblxcbi53YXZlX3dhdmVXcmFwcGVyX18yNkgxbyB7XFxuICBtYXJnaW4tbGVmdDogYXV0bztcXG4gIG1hcmdpbi1yaWdodDogYXV0bztcXG4gIHBhZGRpbmctdG9wOiAxMnJlbTtcXG4gIHdpZHRoOiA1NTBweDtcXG59XFxuXFxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xcbiAgLndhdmVfd2F2ZVdyYXBwZXJfXzI2SDFvIHtcXG4gICAgcGFkZGluZy10b3A6IDNyZW07XFxuICAgIHdpZHRoOiAxMDB2dztcXG4gIH1cXG5cXG4gIC53YXZlX3BsYXlfXzMzam1pIHtcXG4gICAgd2lkdGg6IDI0cHg7XFxuICAgIGhlaWdodDogMjRweDtcXG4gICAgYm9yZGVyLXdpZHRoOiAxMnB4IDBweCAxMnB4IDI0cHg7XFxuICB9XFxufVxcblwiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly9zcmMvY29tcG9uZW50cy9XYXZlUGxheWVyL3dhdmUubW9kdWxlLmNzc1wiLFwid2VicGFjazovLzxubyBzb3VyY2U+XCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBO0VBQ0UsWUFBWTtFQUNaLHdCQUF3QjtFQUN4QixlQUFlO0VBQ2YsV0FBVztFQUNYLFlBQVk7RUFDWixhQUFhO0VBQ2IsV0FBVztBQUNiOztBQUVBO0VBQ0UsV0FBVztFQUNYLFlBQVk7RUFDWixnQ0FBZ0M7RUFDaEMseURBQXlEO0VBQ3pELGlDQUFpQztFQUNqQyxlQUFlO0FBQ2pCOztBQUVBO0VBQ0Usb0JBQW9CO0VBQ3BCLDRCQUE0QjtBQUM5Qjs7QUFFQTtFQ3hCQSxpQkFBQTtFQUFBLGtCQUFBO0VBQUEsa0JBQUE7RUQwQkUsWUFBWTtBQUNkOztBQUVBO0VBQ0U7SUM5QkYsaUJBQUE7SURnQ0ksWUFBWTtFQUNkOztFQUVBO0lBQ0UsV0FBVztJQUNYLFlBQVk7SUFDWixnQ0FBZ0M7RUFDbEM7QUFDRlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCIucGxheUJ0biB7XFxuICBib3JkZXI6IG5vbmU7XFxuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxuICB3aWR0aDogMzBweDtcXG4gIGhlaWdodDogMzBweDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICB6LWluZGV4OiAxMDtcXG59XFxuXFxuLnBsYXkge1xcbiAgd2lkdGg6IDMwcHg7XFxuICBoZWlnaHQ6IDMwcHg7XFxuICBib3JkZXItd2lkdGg6IDE1cHggMHB4IDE1cHggMzFweDtcXG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzJmMmYyZjtcXG4gIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlLWluLW91dDtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuXFxuLnBsYXkucGF1c2Uge1xcbiAgYm9yZGVyLXN0eWxlOiBkb3VibGU7XFxuICBib3JkZXItd2lkdGg6IDBweCAwIDBweCAyMHB4O1xcbn1cXG5cXG4ud2F2ZVdyYXBwZXIge1xcbiAgQGFwcGx5IG14LWF1dG8gcHQtNDg7XFxuICB3aWR0aDogNTUwcHg7XFxufVxcblxcbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcXG4gIC53YXZlV3JhcHBlciB7XFxuICAgIEBhcHBseSBwdC0xMjtcXG4gICAgd2lkdGg6IDEwMHZ3O1xcbiAgfVxcblxcbiAgLnBsYXkge1xcbiAgICB3aWR0aDogMjRweDtcXG4gICAgaGVpZ2h0OiAyNHB4O1xcbiAgICBib3JkZXItd2lkdGg6IDEycHggMHB4IDEycHggMjRweDtcXG4gIH1cXG59XFxuXCIsbnVsbF0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLmxvY2FscyA9IHtcblx0XCJwbGF5QnRuXCI6IFwid2F2ZV9wbGF5QnRuX18xdUhOM1wiLFxuXHRcInBsYXlcIjogXCJ3YXZlX3BsYXlfXzMzam1pXCIsXG5cdFwicGF1c2VcIjogXCJ3YXZlX3BhdXNlX18yelZnV1wiLFxuXHRcIndhdmVXcmFwcGVyXCI6IFwid2F2ZV93YXZlV3JhcHBlcl9fMjZIMW9cIlxufTtcbm1vZHVsZS5leHBvcnRzID0gX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/css-loader/dist/cjs.js?!./node_modules/next/dist/compiled/postcss-loader/index.js?!./src/components/WavePlayer/wave.module.css\n"); + +/***/ }), + +/***/ "./node_modules/react-wavesurfer/lib/react-wavesurfer.min.js": +/*!*******************************************************************!*\ + !*** ./node_modules/react-wavesurfer/lib/react-wavesurfer.min.js ***! + \*******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("!function(e,o){ true?module.exports=o(__webpack_require__(/*! wavesurfer.js */ \"./node_modules/wavesurfer.js/dist/wavesurfer.min.js\"),__webpack_require__(/*! react */ \"./node_modules/react/index.js\"),__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\")):undefined}(this,function(e,o,t){return function(e){function o(r){if(t[r])return t[r].exports;var n=t[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,o),n.l=!0,n.exports}var t={};return o.m=e,o.c=t,o.d=function(e,t,r){o.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,\"a\",t),t},o.o=function(e,o){return Object.prototype.hasOwnProperty.call(e,o)},o.p=\"\",o(o.s=0)}([function(e,o,t){\"use strict\";(function(e){function r(e){return e&&e.__esModule?e:{default:e}}function n(e,o){if(!(e instanceof o))throw new TypeError(\"Cannot call a class as a function\")}function i(e,o){if(!e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!o||\"object\"!=typeof o&&\"function\"!=typeof o?e:o}function s(e,o){if(\"function\"!=typeof o&&null!==o)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof o);e.prototype=Object.create(o&&o.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),o&&(Object.setPrototypeOf?Object.setPrototypeOf(e,o):e.__proto__=o)}function a(e){return e.split(\"-\").map(function(e){return e.charAt(0).toUpperCase()+e.slice(1)}).join(\"\")}function u(e,o,t){var r=e[o];return void 0!==r&&(\"number\"!=typeof r||r!==parseInt(r,10)||r<0)?new Error(\"Invalid \"+o+\" supplied to \"+t+\",\\n expected a positive integer\"):null}Object.defineProperty(o,\"__esModule\",{value:!0});var l=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},p=function(){function e(e,o){for(var t=0;tb&&(b=a[c]);return b},getId:function(){return\"wavesurfer_\"+Math.random().toString(32).substring(2)},ajax:function(b){var c=Object.create(a.Observer),d=new XMLHttpRequest,e=!1;return d.open(b.method||\"GET\",b.url,!0),d.responseType=b.responseType||\"json\",d.addEventListener(\"progress\",function(a){c.fireEvent(\"progress\",a),a.lengthComputable&&a.loaded==a.total&&(e=!0)}),d.addEventListener(\"load\",function(a){e||c.fireEvent(\"progress\",a),c.fireEvent(\"load\",a),200==d.status||206==d.status?c.fireEvent(\"success\",d.response,a):c.fireEvent(\"error\",a)}),d.addEventListener(\"error\",function(a){c.fireEvent(\"error\",a)}),d.send(),c.xhr=d,c}},a.Observer={on:function(a,b){this.handlers||(this.handlers={});var c=this.handlers[a];return c||(c=this.handlers[a]=[]),c.push(b),{name:a,callback:b,un:this.un.bind(this,a,b)}},un:function(a,b){if(this.handlers){var c=this.handlers[a];if(c)if(b)for(var d=c.length-1;d>=0;d--)c[d]==b&&c.splice(d,1);else c.length=0}},unAll:function(){this.handlers=null},once:function(a,b){var c=this,d=function(){b.apply(this,arguments),setTimeout(function(){c.un(a,d)},0)};return this.on(a,d)},fireEvent:function(a){if(this.handlers){var b=this.handlers[a],c=Array.prototype.slice.call(arguments,1);b&&b.forEach(function(a){a.apply(null,c)})}}},a.util.extend(a,a.Observer),a.WebAudio={scriptBufferSize:256,PLAYING_STATE:0,PAUSED_STATE:1,FINISHED_STATE:2,supportsWebAudio:function(){return!(!window.AudioContext&&!window.webkitAudioContext)},getAudioContext:function(){return a.WebAudio.audioContext||(a.WebAudio.audioContext=new(window.AudioContext||window.webkitAudioContext)),a.WebAudio.audioContext},getOfflineAudioContext:function(b){return a.WebAudio.offlineAudioContext||(a.WebAudio.offlineAudioContext=new(window.OfflineAudioContext||window.webkitOfflineAudioContext)(1,2,b)),a.WebAudio.offlineAudioContext},init:function(b){this.params=b,this.ac=b.audioContext||this.getAudioContext(),this.lastPlay=this.ac.currentTime,this.startPosition=0,this.scheduledPause=null,this.states=[Object.create(a.WebAudio.state.playing),Object.create(a.WebAudio.state.paused),Object.create(a.WebAudio.state.finished)],this.createVolumeNode(),this.createScriptNode(),this.createAnalyserNode(),this.setState(this.PAUSED_STATE),this.setPlaybackRate(this.params.audioRate),this.setLength(0)},disconnectFilters:function(){this.filters&&(this.filters.forEach(function(a){a&&a.disconnect()}),this.filters=null,this.analyser.connect(this.gainNode))},setState:function(a){this.state!==this.states[a]&&(this.state=this.states[a],this.state.init.call(this))},setFilter:function(){this.setFilters([].slice.call(arguments))},setFilters:function(a){this.disconnectFilters(),a&&a.length&&(this.filters=a,this.analyser.disconnect(),a.reduce(function(a,b){return a.connect(b),b},this.analyser).connect(this.gainNode))},createScriptNode:function(){this.ac.createScriptProcessor?this.scriptNode=this.ac.createScriptProcessor(this.scriptBufferSize):this.scriptNode=this.ac.createJavaScriptNode(this.scriptBufferSize),this.scriptNode.connect(this.ac.destination)},addOnAudioProcess:function(){var a=this;this.scriptNode.onaudioprocess=function(){var b=a.getCurrentTime();b>=a.getDuration()?(a.setState(a.FINISHED_STATE),a.fireEvent(\"pause\")):b>=a.scheduledPause?a.pause():a.state===a.states[a.PLAYING_STATE]&&a.fireEvent(\"audioprocess\",b)}},removeOnAudioProcess:function(){this.scriptNode.onaudioprocess=null},createAnalyserNode:function(){this.analyser=this.ac.createAnalyser(),this.analyser.connect(this.gainNode)},createVolumeNode:function(){this.ac.createGain?this.gainNode=this.ac.createGain():this.gainNode=this.ac.createGainNode(),this.gainNode.connect(this.ac.destination)},setVolume:function(a){this.gainNode.gain.value=a},getVolume:function(){return this.gainNode.gain.value},decodeArrayBuffer:function(a,b,c){this.offlineAc||(this.offlineAc=this.getOfflineAudioContext(this.ac?this.ac.sampleRate:44100)),this.offlineAc.decodeAudioData(a,function(a){b(a)}.bind(this),c)},setPeaks:function(a){this.peaks=a},setLength:function(a){if(!this.mergedPeaks||a!=2*this.mergedPeaks.length-1+2){this.splitPeaks=[],this.mergedPeaks=[];for(var b=this.buffer?this.buffer.numberOfChannels:1,c=0;cn&&(n=p),pthis.mergedPeaks[2*j])&&(this.mergedPeaks[2*j]=n),(0==g||m=this.getDuration()&&(a=0)),null==b&&(b=this.getDuration()),this.startPosition=a,this.lastPlay=this.ac.currentTime,this.state===this.states[this.FINISHED_STATE]&&this.setState(this.PAUSED_STATE),{start:a,end:b}},getPlayedTime:function(){return(this.ac.currentTime-this.lastPlay)*this.playbackRate},play:function(a,b){if(this.buffer){this.createSource();var c=this.seekTo(a,b);a=c.start,b=c.end,this.scheduledPause=b,this.source.start(0,a,b-a),\"suspended\"==this.ac.state&&this.ac.resume&&this.ac.resume(),this.setState(this.PLAYING_STATE),this.fireEvent(\"play\")}},pause:function(){this.scheduledPause=null,this.startPosition+=this.getPlayedTime(),this.source&&this.source.stop(0),this.setState(this.PAUSED_STATE),this.fireEvent(\"pause\")},getCurrentTime:function(){return this.state.getCurrentTime.call(this)},getPlaybackRate:function(){return this.playbackRate},setPlaybackRate:function(a){a=a||1,this.isPaused()?this.playbackRate=a:(this.pause(),this.playbackRate=a,this.play())}},a.WebAudio.state={},a.WebAudio.state.playing={init:function(){this.addOnAudioProcess()},getPlayedPercents:function(){var a=this.getDuration();return this.getCurrentTime()/a||0},getCurrentTime:function(){return this.startPosition+this.getPlayedTime()}},a.WebAudio.state.paused={init:function(){this.removeOnAudioProcess()},getPlayedPercents:function(){var a=this.getDuration();return this.getCurrentTime()/a||0},getCurrentTime:function(){return this.startPosition}},a.WebAudio.state.finished={init:function(){this.removeOnAudioProcess(),this.fireEvent(\"finish\")},getPlayedPercents:function(){return 1},getCurrentTime:function(){return this.getDuration()}},a.util.extend(a.WebAudio,a.Observer),a.MediaElement=Object.create(a.WebAudio),a.util.extend(a.MediaElement,{init:function(a){this.params=a,this.media={currentTime:0,duration:0,paused:!0,playbackRate:1,play:function(){},pause:function(){}},this.mediaType=a.mediaType.toLowerCase(),this.elementPosition=a.elementPosition,this.setPlaybackRate(this.params.audioRate),this.createTimer()},createTimer:function(){var a=this,b=function(){if(!a.isPaused()){a.fireEvent(\"audioprocess\",a.getCurrentTime());var c=window.requestAnimationFrame||window.webkitRequestAnimationFrame;c(b)}};this.on(\"play\",b)},load:function(a,b,c,d){var e=document.createElement(this.mediaType);e.controls=this.params.mediaControls,e.autoplay=this.params.autoplay||!1,e.preload=null==d?\"auto\":d,e.src=a,e.style.width=\"100%\";var f=b.querySelector(this.mediaType);f&&b.removeChild(f),b.appendChild(e),this._load(e,c)},loadElt:function(a,b){var c=a;c.controls=this.params.mediaControls,c.autoplay=this.params.autoplay||!1,this._load(c,b)},_load:function(a,b){var c=this;\"function\"==typeof a.load&&a.load(),a.addEventListener(\"error\",function(){c.fireEvent(\"error\",\"Error loading media element\")}),a.addEventListener(\"canplay\",function(){c.fireEvent(\"canplay\")}),a.addEventListener(\"ended\",function(){c.fireEvent(\"finish\")}),this.media=a,this.peaks=b,this.onPlayEnd=null,this.buffer=null,this.setPlaybackRate(this.playbackRate)},isPaused:function(){return!this.media||this.media.paused},getDuration:function(){var a=(this.buffer||this.media).duration;return a>=1/0&&(a=this.media.seekable.end(0)),a},getCurrentTime:function(){return this.media&&this.media.currentTime},getPlayedPercents:function(){return this.getCurrentTime()/this.getDuration()||0},getPlaybackRate:function(){return this.playbackRate||this.media.playbackRate},setPlaybackRate:function(a){this.playbackRate=a||1,this.media.playbackRate=this.playbackRate},seekTo:function(a){null!=a&&(this.media.currentTime=a),this.clearPlayEnd()},play:function(a,b){this.seekTo(a),this.media.play(),b&&this.setPlayEnd(b),this.fireEvent(\"play\")},pause:function(){this.media&&this.media.pause(),this.clearPlayEnd(),this.fireEvent(\"pause\")},setPlayEnd:function(a){var b=this;this.onPlayEnd=function(c){c>=a&&(b.pause(),b.seekTo(a))},this.on(\"audioprocess\",this.onPlayEnd)},clearPlayEnd:function(){this.onPlayEnd&&(this.un(\"audioprocess\",this.onPlayEnd),this.onPlayEnd=null)},getPeaks:function(b,c,d){return this.buffer?a.WebAudio.getPeaks.call(this,b,c,d):this.peaks||[]},getVolume:function(){return this.media.volume},setVolume:function(a){this.media.volume=a},destroy:function(){this.pause(),this.unAll(),this.media&&this.media.parentNode&&this.media.parentNode.removeChild(this.media),this.media=null}}),a.AudioElement=a.MediaElement,a.Drawer={init:function(a,b){this.container=a,this.params=b,this.width=0,this.height=b.height*this.params.pixelRatio,this.lastPos=0,this.initDrawer(b),this.createWrapper(),this.createElements()},createWrapper:function(){this.wrapper=this.container.appendChild(document.createElement(\"wave\")),this.style(this.wrapper,{display:\"block\",position:\"relative\",userSelect:\"none\",webkitUserSelect:\"none\",height:this.params.height+\"px\"}),(this.params.fillParent||this.params.scrollParent)&&this.style(this.wrapper,{width:\"100%\",overflowX:this.params.hideScrollbar?\"hidden\":\"auto\",overflowY:\"hidden\"}),this.setupWrapperEvents()},handleEvent:function(a,b){!b&&a.preventDefault();var c,d=a.targetTouches?a.targetTouches[0].clientX:a.clientX,e=this.wrapper.getBoundingClientRect(),f=this.width,g=this.getWidth();return!this.params.fillParent&&f1&&(c=1)):c=(d-e.left+this.wrapper.scrollLeft)/this.wrapper.scrollWidth||0,c},setupWrapperEvents:function(){var a=this;this.wrapper.addEventListener(\"click\",function(b){var c=a.wrapper.offsetHeight-a.wrapper.clientHeight;if(0!=c){var d=a.wrapper.getBoundingClientRect();if(b.clientY>=d.bottom-c)return}a.params.interact&&a.fireEvent(\"click\",b,a.handleEvent(b))}),this.wrapper.addEventListener(\"scroll\",function(b){a.fireEvent(\"scroll\",b)})},drawPeaks:function(a,b,c,d){this.setWidth(b),this.params.barWidth?this.drawBars(a,0,c,d):this.drawWave(a,0,c,d)},style:function(a,b){return Object.keys(b).forEach(function(c){a.style[c]!==b[c]&&(a.style[c]=b[c])}),a},resetScroll:function(){null!==this.wrapper&&(this.wrapper.scrollLeft=0)},recenter:function(a){var b=this.wrapper.scrollWidth*a;this.recenterOnPosition(b,!0)},recenterOnPosition:function(a,b){var c=this.wrapper.scrollLeft,d=~~(this.wrapper.clientWidth/2),e=a-d,f=e-c,g=this.wrapper.scrollWidth-this.wrapper.clientWidth;if(0!=g){if(!b&&-d<=f&&f=b){if(this.lastPos=c,this.params.scrollParent&&this.params.autoCenter){var d=~~(this.wrapper.scrollWidth*a);this.recenterOnPosition(d)}this.updateProgress(c)}},destroy:function(){this.unAll(),this.wrapper&&(this.container.removeChild(this.wrapper),this.wrapper=null)},initDrawer:function(){},createElements:function(){},updateSize:function(){},drawWave:function(a,b){},clearWave:function(){},updateProgress:function(a){}},a.util.extend(a.Drawer,a.Observer),a.Drawer.Canvas=Object.create(a.Drawer),a.util.extend(a.Drawer.Canvas,{createElements:function(){var a=this.wrapper.appendChild(this.style(document.createElement(\"canvas\"),{position:\"absolute\",zIndex:1,left:0,top:0,bottom:0}));if(this.waveCc=a.getContext(\"2d\"),this.progressWave=this.wrapper.appendChild(this.style(document.createElement(\"wave\"),{position:\"absolute\",zIndex:2,left:0,top:0,bottom:0,overflow:\"hidden\",width:\"0\",display:\"none\",boxSizing:\"border-box\",borderRightStyle:\"solid\",borderRightWidth:this.params.cursorWidth+\"px\",borderRightColor:this.params.cursorColor})),this.params.waveColor!=this.params.progressColor){var b=this.progressWave.appendChild(document.createElement(\"canvas\"));this.progressCc=b.getContext(\"2d\")}},updateSize:function(){var a=Math.round(this.width/this.params.pixelRatio);this.waveCc.canvas.width=this.width,this.waveCc.canvas.height=this.height,this.style(this.waveCc.canvas,{width:a+\"px\"}),this.style(this.progressWave,{display:\"block\"}),this.progressCc&&(this.progressCc.canvas.width=this.width,this.progressCc.canvas.height=this.height,this.style(this.progressCc.canvas,{width:a+\"px\"})),this.clearWave()},clearWave:function(){this.waveCc.clearRect(0,0,this.width,this.height),this.progressCc&&this.progressCc.clearRect(0,0,this.width,this.height)},drawBars:function(b,c,d,e){var f=this;if(b[0]instanceof Array){var g=b;if(this.params.splitChannels)return this.setHeight(g.length*this.params.height*this.params.pixelRatio),void g.forEach(function(a,b){f.drawBars(a,b,d,e)});b=g[0]}var h=[].some.call(b,function(a){return a<0}),i=1;h&&(i=2);var j=.5/this.params.pixelRatio,k=this.width,l=this.params.height*this.params.pixelRatio,m=l*c||0,n=l/2,o=b.length/i,p=this.params.barWidth*this.params.pixelRatio,q=Math.max(this.params.pixelRatio,~~(p/2)),r=p+q,s=1/this.params.barHeight;if(this.params.normalize){var t=a.util.max(b),u=a.util.min(b);s=-u>t?-u:t}var v=o/k;this.waveCc.fillStyle=this.params.waveColor,this.progressCc&&(this.progressCc.fillStyle=this.params.progressColor),[this.waveCc,this.progressCc].forEach(function(a){if(a)for(var c=d/v;cs?-t:s}this.waveCc.fillStyle=this.params.waveColor,this.progressCc&&(this.progressCc.fillStyle=this.params.progressColor),[this.waveCc,this.progressCc].forEach(function(a){if(a){a.beginPath(),a.moveTo(d*q+l,o+n);for(var c=d;c=d;c--){var f=Math.round(b[2*c+1]/r*o);a.lineTo(c*q+l,o-f+n)}a.closePath(),a.fill(),a.fillRect(0,o+n-l,this.width,l)}},this)},updateProgress:function(a){this.style(this.progressWave,{width:a+\"px\"})},getImage:function(a,b){return this.waveCc.canvas.toDataURL(a,b)}}),a.Drawer.MultiCanvas=Object.create(a.Drawer),a.util.extend(a.Drawer.MultiCanvas,{initDrawer:function(a){if(this.maxCanvasWidth=null!=a.maxCanvasWidth?a.maxCanvasWidth:4e3,this.maxCanvasElementWidth=Math.round(this.maxCanvasWidth/this.params.pixelRatio),this.maxCanvasWidth<=1)throw\"maxCanvasWidth must be greater than 1.\";if(this.maxCanvasWidth%2==1)throw\"maxCanvasWidth must be an even number.\";this.hasProgressCanvas=this.params.waveColor!=this.params.progressColor,this.halfPixel=.5/this.params.pixelRatio,this.canvases=[]},createElements:function(){this.progressWave=this.wrapper.appendChild(this.style(document.createElement(\"wave\"),{position:\"absolute\",zIndex:2,left:0,top:0,bottom:0,overflow:\"hidden\",width:\"0\",display:\"none\",boxSizing:\"border-box\",borderRightStyle:\"solid\",borderRightWidth:this.params.cursorWidth+\"px\",borderRightColor:this.params.cursorColor})),this.addCanvas()},updateSize:function(){for(var a=Math.round(this.width/this.params.pixelRatio),b=Math.ceil(a/this.maxCanvasElementWidth);this.canvases.lengthb;)this.removeCanvas();for(var c in this.canvases){var d=this.maxCanvasWidth+2*Math.ceil(this.params.pixelRatio/2);c==this.canvases.length-1&&(d=this.width-this.maxCanvasWidth*(this.canvases.length-1)),this.updateDimensions(this.canvases[c],d,this.height),this.clearWaveForEntry(this.canvases[c])}},addCanvas:function(){var a={},b=this.maxCanvasElementWidth*this.canvases.length;a.wave=this.wrapper.appendChild(this.style(document.createElement(\"canvas\"),{position:\"absolute\",zIndex:1,left:b+\"px\",top:0,bottom:0,height:\"100%\"})),a.waveCtx=a.wave.getContext(\"2d\"),this.hasProgressCanvas&&(a.progress=this.progressWave.appendChild(this.style(document.createElement(\"canvas\"),{position:\"absolute\",left:b+\"px\",top:0,bottom:0,height:\"100%\"})),a.progressCtx=a.progress.getContext(\"2d\")),this.canvases.push(a)},removeCanvas:function(){var a=this.canvases.pop();a.wave.parentElement.removeChild(a.wave),this.hasProgressCanvas&&a.progress.parentElement.removeChild(a.progress)},updateDimensions:function(a,b,c){var d=Math.round(b/this.params.pixelRatio),e=Math.round(this.width/this.params.pixelRatio);a.start=a.waveCtx.canvas.offsetLeft/e||0,a.end=a.start+d/e,a.waveCtx.canvas.width=b,a.waveCtx.canvas.height=c,this.style(a.waveCtx.canvas,{width:d+\"px\"}),this.style(this.progressWave,{display:\"block\"}),this.hasProgressCanvas&&(a.progressCtx.canvas.width=b,a.progressCtx.canvas.height=c,this.style(a.progressCtx.canvas,{width:d+\"px\"}))},clearWave:function(){for(var a in this.canvases)this.clearWaveForEntry(this.canvases[a])},clearWaveForEntry:function(a){a.waveCtx.clearRect(0,0,a.waveCtx.canvas.width,a.waveCtx.canvas.height),this.hasProgressCanvas&&a.progressCtx.clearRect(0,0,a.progressCtx.canvas.width,a.progressCtx.canvas.height)},drawBars:function(b,c,d,e){var f=this;if(b[0]instanceof Array){var g=b;if(this.params.splitChannels)return this.setHeight(g.length*this.params.height*this.params.pixelRatio),void g.forEach(function(a,b){f.drawBars(a,b,d,e)});b=g[0]}var h=[].some.call(b,function(a){return a<0}),i=1;h&&(i=2);var j=this.width,k=this.params.height*this.params.pixelRatio,l=k*c||0,m=k/2,n=b.length/i,o=this.params.barWidth*this.params.pixelRatio,p=Math.max(this.params.pixelRatio,~~(o/2)),q=o+p,r=1/this.params.barHeight;if(this.params.normalize){var s=a.util.max(b),t=a.util.min(b);r=-t>s?-t:s}for(var u=n/j,v=d/u;vp?-q:p}this.drawLine(b,o,n,m,d,e),this.fillRect(0,n+m-this.halfPixel,this.width,this.halfPixel)},drawLine:function(a,b,c,d,e,f){for(var g in this.canvases){var h=this.canvases[g];this.setFillStyles(h),this.drawLineToContext(h,h.waveCtx,a,b,c,d,e,f),this.drawLineToContext(h,h.progressCtx,a,b,c,d,e,f)}},drawLineToContext:function(a,b,c,d,e,f,g,h){if(b){var i=c.length/2,j=1;this.params.fillParent&&this.width!=i&&(j=this.width/i);var k=Math.round(i*a.start),l=Math.round(i*a.end);if(!(k>h||l=m;o--){var p=c[2*o+1]||0,q=Math.round(p/d*e);b.lineTo((o-k)*j+this.halfPixel,e-q+f)}b.closePath(),b.fill()}}},fillRect:function(a,b,c,d){for(var e=Math.floor(a/this.maxCanvasWidth),f=Math.min(Math.ceil((a+c)/this.maxCanvasWidth)+1,this.canvases.length),g=e;g1?c:c[0]}}),a.Drawer.SplitWavePointPlot=Object.create(a.Drawer.Canvas),a.util.extend(a.Drawer.SplitWavePointPlot,{defaultPlotParams:{plotNormalizeTo:\"whole\",plotTimeStart:0,plotMin:0,\nplotMax:1,plotColor:\"#f63\",plotProgressColor:\"#F00\",plotPointHeight:2,plotPointWidth:2,plotSeparator:!0,plotSeparatorColor:\"black\",plotRangeDisplay:!1,plotRangeUnits:\"\",plotRangePrecision:4,plotRangeIgnoreOutliers:!1,plotRangeFontSize:12,plotRangeFontType:\"Ariel\",waveDrawMedianLine:!0,plotFileDelimiter:\"\\t\"},plotTimeStart:0,plotTimeEnd:-1,plotArrayLoaded:!1,plotArray:[],plotPoints:[],plotMin:0,plotMax:1,initDrawer:function(a){var b=this;for(var c in this.defaultPlotParams)void 0===this.params[c]&&(this.params[c]=this.defaultPlotParams[c]);if(this.plotTimeStart=this.params.plotTimeStart,void 0!==this.params.plotTimeEnd&&(this.plotTimeEnd=this.params.plotTimeEnd),Array.isArray(a.plotArray))this.plotArray=a.plotArray,this.plotArrayLoaded=!0;else{var d=function(a){b.plotArray=a,b.plotArrayLoaded=!0,b.fireEvent(\"plot_array_loaded\")};this.loadPlotArrayFromFile(a.plotFileUrl,d,this.params.plotFileDelimiter)}},drawPeaks:function(a,b,c,d){if(1==this.plotArrayLoaded)this.setWidth(b),this.splitChannels=!0,this.params.height=this.params.height/2,a[0]instanceof Array&&(a=a[0]),this.params.barWidth?this.drawBars(a,1,c,d):this.drawWave(a,1,c,d),this.params.height=2*this.params.height,this.calculatePlots(),this.drawPlots();else{var e=this;e.on(\"plot-array-loaded\",function(){e.drawPeaks(a,b,c,d)})}},drawPlots:function(){var a=this.params.height*this.params.pixelRatio/2,b=.5/this.params.pixelRatio;this.waveCc.fillStyle=this.params.plotColor,this.progressCc&&(this.progressCc.fillStyle=this.params.plotProgressColor);for(var c in this.plotPoints){var d=parseInt(c),e=a-this.params.plotPointHeight-this.plotPoints[c]*(a-this.params.plotPointHeight),f=this.params.plotPointHeight;this.waveCc.fillRect(d,e,this.params.plotPointWidth,f),this.progressCc&&this.progressCc.fillRect(d,e,this.params.plotPointWidth,f)}this.params.plotSeparator&&(this.waveCc.fillStyle=this.params.plotSeparatorColor,this.waveCc.fillRect(0,a,this.width,b)),this.params.plotRangeDisplay&&this.displayPlotRange()},displayPlotRange:function(){var a=this.params.plotRangeFontSize*this.params.pixelRatio,b=this.plotMax.toPrecision(this.params.plotRangePrecision)+\" \"+this.params.plotRangeUnits,c=this.plotMin.toPrecision(this.params.plotRangePrecision)+\" \"+this.params.plotRangeUnits;this.waveCc.font=a.toString()+\"px \"+this.params.plotRangeFontType,this.waveCc.fillText(b,3,a),this.waveCc.fillText(c,3,this.height/2)},calculatePlots:function(){this.plotPoints={},this.calculatePlotTimeEnd();for(var a=[],b=-1,c=0,d=99999999999999,e=0,f=99999999999999,g=this.plotTimeEnd-this.plotTimeStart,h=0;hc&&(c=i.value),i.value=this.plotTimeStart&&i.time<=this.plotTimeEnd){var j=Math.round(this.width*(i.time-this.plotTimeStart)/g);if(a.push(i.value),j!==b&&a.length>0){var k=this.avg(a);k>e&&(e=k),k1?this.params.plotRangeIgnoreOutliers||(a[b]=1):c<0?this.params.plotRangeIgnoreOutliers||(a[b]=0):a[b]=c}this.plotPoints=a}},loadPlotArrayFromFile:function(b,c,d){void 0===d&&(d=\"\\t\");var e=[],f={url:b,responseType:\"text\"},g=a.util.ajax(f);g.on(\"load\",function(a){if(200==a.currentTarget.status){for(var b=a.currentTarget.responseText.split(\"\\n\"),f=0;f\n// Each style tag should be placed right before our\n// anchor. By inserting before and not after, we do not\n// need to track the last inserted element.\nparentNode.insertBefore(element,anchorElement);};\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\nif (true) {\n if (!content.locals || module.hot.invalidate) {\n var isEqualLocals = function isEqualLocals(a, b) {\n if (!a && b || a && !b) {\n return false;\n }\n\n var p;\n\n for (p in a) {\n if (a[p] !== b[p]) {\n return false;\n }\n }\n\n for (p in b) {\n if (!a[p]) {\n return false;\n }\n }\n\n return true;\n};\n var oldLocals = content.locals;\n\n module.hot.accept(\n /*! !../../../node_modules/css-loader/dist/cjs.js??ref--5-oneOf-2-1!../../../node_modules/next/dist/compiled/postcss-loader??__nextjs_postcss!./wave.module.css */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/next/dist/compiled/postcss-loader/index.js?!./src/components/WavePlayer/wave.module.css\",\n function () {\n content = __webpack_require__(/*! !../../../node_modules/css-loader/dist/cjs.js??ref--5-oneOf-2-1!../../../node_modules/next/dist/compiled/postcss-loader??__nextjs_postcss!./wave.module.css */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/next/dist/compiled/postcss-loader/index.js?!./src/components/WavePlayer/wave.module.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.i, content, '']];\n }\n\n if (!isEqualLocals(oldLocals, content.locals)) {\n module.hot.invalidate();\n\n return;\n }\n\n oldLocals = content.locals;\n\n update(content);\n }\n )\n }\n\n module.hot.dispose(function() {\n update();\n });\n}\n\nmodule.exports = content.locals || {};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2NvbXBvbmVudHMvV2F2ZVBsYXllci93YXZlLm1vZHVsZS5jc3M/MTc4MCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVLG1CQUFPLENBQUMseUpBQThFO0FBQ2hHLDBCQUEwQixtQkFBTyxDQUFDLGtUQUF1Szs7QUFFek07O0FBRUE7QUFDQSwwQkFBMEIsUUFBUztBQUNuQzs7QUFFQTs7QUFFQSxtQ0FBbUM7QUFDbkM7QUFDQSxzRUFBc0Usd0NBQXdDO0FBQzlHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7OztBQUdBLElBQUksSUFBVTtBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLE1BQU0sa1RBQXVLO0FBQzdLO0FBQ0Esa0JBQWtCLG1CQUFPLENBQUMsa1RBQXVLOztBQUVqTTs7QUFFQTtBQUNBLDRCQUE0QixRQUFTO0FBQ3JDOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBIiwiZmlsZSI6Ii4vc3JjL2NvbXBvbmVudHMvV2F2ZVBsYXllci93YXZlLm1vZHVsZS5jc3MuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgYXBpID0gcmVxdWlyZShcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIik7XG4gICAgICAgICAgICB2YXIgY29udGVudCA9IHJlcXVpcmUoXCIhIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTUtb25lT2YtMi0xIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcG9zdGNzcy1sb2FkZXIvaW5kZXguanM/P19fbmV4dGpzX3Bvc3Rjc3MhLi93YXZlLm1vZHVsZS5jc3NcIik7XG5cbiAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50Ll9fZXNNb2R1bGUgPyBjb250ZW50LmRlZmF1bHQgOiBjb250ZW50O1xuXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcbiAgICAgICAgICAgIH1cblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5pbnNlcnQgPSBmdW5jdGlvbihlbGVtZW50KXsvLyBUaGVzZSBlbGVtZW50cyBzaG91bGQgYWx3YXlzIGV4aXN0LiBJZiB0aGV5IGRvIG5vdCxcbi8vIHRoaXMgY29kZSBzaG91bGQgZmFpbC5cbnZhciBhbmNob3JFbGVtZW50PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNfX25leHRfY3NzX19ET19OT1RfVVNFX18nKTt2YXIgcGFyZW50Tm9kZT1hbmNob3JFbGVtZW50LnBhcmVudE5vZGU7Ly8gTm9ybWFsbHkgPGhlYWQ+XG4vLyBFYWNoIHN0eWxlIHRhZyBzaG91bGQgYmUgcGxhY2VkIHJpZ2h0IGJlZm9yZSBvdXJcbi8vIGFuY2hvci4gQnkgaW5zZXJ0aW5nIGJlZm9yZSBhbmQgbm90IGFmdGVyLCB3ZSBkbyBub3Rcbi8vIG5lZWQgdG8gdHJhY2sgdGhlIGxhc3QgaW5zZXJ0ZWQgZWxlbWVudC5cbnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGVsZW1lbnQsYW5jaG9yRWxlbWVudCk7fTtcbm9wdGlvbnMuc2luZ2xldG9uID0gZmFsc2U7XG5cbnZhciB1cGRhdGUgPSBhcGkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuaWYgKG1vZHVsZS5ob3QpIHtcbiAgaWYgKCFjb250ZW50LmxvY2FscyB8fCBtb2R1bGUuaG90LmludmFsaWRhdGUpIHtcbiAgICB2YXIgaXNFcXVhbExvY2FscyA9IGZ1bmN0aW9uIGlzRXF1YWxMb2NhbHMoYSwgYikge1xuICBpZiAoIWEgJiYgYiB8fCBhICYmICFiKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgdmFyIHA7XG5cbiAgZm9yIChwIGluIGEpIHtcbiAgICBpZiAoYVtwXSAhPT0gYltwXSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGZvciAocCBpbiBiKSB7XG4gICAgaWYgKCFhW3BdKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuICAgIHZhciBvbGRMb2NhbHMgPSBjb250ZW50LmxvY2FscztcblxuICAgIG1vZHVsZS5ob3QuYWNjZXB0KFxuICAgICAgXCIhIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTUtb25lT2YtMi0xIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcG9zdGNzcy1sb2FkZXIvaW5kZXguanM/P19fbmV4dGpzX3Bvc3Rjc3MhLi93YXZlLm1vZHVsZS5jc3NcIixcbiAgICAgIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY29udGVudCA9IHJlcXVpcmUoXCIhIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTUtb25lT2YtMi0xIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcG9zdGNzcy1sb2FkZXIvaW5kZXguanM/P19fbmV4dGpzX3Bvc3Rjc3MhLi93YXZlLm1vZHVsZS5jc3NcIik7XG5cbiAgICAgICAgICAgICAgY29udGVudCA9IGNvbnRlbnQuX19lc01vZHVsZSA/IGNvbnRlbnQuZGVmYXVsdCA6IGNvbnRlbnQ7XG5cbiAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmICghaXNFcXVhbExvY2FscyhvbGRMb2NhbHMsIGNvbnRlbnQubG9jYWxzKSkge1xuICAgICAgICAgICAgICAgIG1vZHVsZS5ob3QuaW52YWxpZGF0ZSgpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgb2xkTG9jYWxzID0gY29udGVudC5sb2NhbHM7XG5cbiAgICAgICAgICAgICAgdXBkYXRlKGNvbnRlbnQpO1xuICAgICAgfVxuICAgIClcbiAgfVxuXG4gIG1vZHVsZS5ob3QuZGlzcG9zZShmdW5jdGlvbigpIHtcbiAgICB1cGRhdGUoKTtcbiAgfSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY29udGVudC5sb2NhbHMgfHwge307Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/WavePlayer/wave.module.css\n"); + +/***/ }) + +}]); \ No newline at end of file diff --git a/sites/afcc/_next/static/chunks/18139ade8658244b54d4bce7605102109239abb0.223f05eaea1d42acd844.js b/sites/afcc/_next/static/chunks/18139ade8658244b54d4bce7605102109239abb0.223f05eaea1d42acd844.js new file mode 100644 index 0000000000000000000000000000000000000000..13e7323ec499423ed7017234054a1e35da86171f --- /dev/null +++ b/sites/afcc/_next/static/chunks/18139ade8658244b54d4bce7605102109239abb0.223f05eaea1d42acd844.js @@ -0,0 +1 @@ +(window.webpackJsonp_N_E=window.webpackJsonp_N_E||[]).push([[2],{"/GRZ":function(t,e){t.exports=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}},"/jkW":function(t,e,r){"use strict";e.__esModule=!0,e.isDynamicRoute=function(t){return n.test(t)};var n=/\/\[[^/]+?\](?=\/|$)/},"0Bsm":function(t,e,r){"use strict";var n=r("AroE");e.__esModule=!0,e.default=function(t){function e(e){return o.default.createElement(t,Object.assign({router:(0,a.useRouter)()},e))}e.getInitialProps=t.getInitialProps,e.origGetInitialProps=t.origGetInitialProps,!1;return e};var o=n(r("q1tI")),a=r("nOHt")},"3WeD":function(t,e,r){"use strict";var n=r("zoAU");function o(t){return"string"===typeof t||"number"===typeof t&&!isNaN(t)||"boolean"===typeof t?String(t):""}e.__esModule=!0,e.searchParamsToUrlQuery=function(t){var e={};return t.forEach((function(t,r){"undefined"===typeof e[r]?e[r]=t:Array.isArray(e[r])?e[r].push(t):e[r]=[e[r],t]})),e},e.urlQueryToSearchParams=function(t){var e=new URLSearchParams;return Object.entries(t).forEach((function(t){var r=n(t,2),a=r[0],i=r[1];Array.isArray(i)?i.forEach((function(t){return e.append(a,o(t))})):e.set(a,o(i))})),e},e.assign=function(t){for(var e=arguments.length,r=new Array(e>1?e-1:0),n=1;nt.length)&&(e=t.length);for(var r=0,n=new Array(e);r>>0,1)},emit:function(e){for(var r=arguments.length,n=new Array(r>1?r-1:0),o=1;o1&&n.status>=500)return t(e,r-1);throw new Error("Failed to load static props")}return n.json()}))}(t,e?3:1).catch((function(t){throw e||C(t),t}))}var I=function(){function t(e,r,n,o){var a=this,u=o.initialProps,s=o.pageLoader,l=o.App,d=o.wrapApp,v=o.Component,y=o.initialStyleSheets,g=o.err,m=o.subscription,b=o.isFallback;o.locale,o.locales,o.defaultLocale;i(this,t),this.route=void 0,this.pathname=void 0,this.query=void 0,this.asPath=void 0,this.basePath=void 0,this.components=void 0,this.sdc={},this.sub=void 0,this.clc=void 0,this.pageLoader=void 0,this._bps=void 0,this.events=void 0,this._wrapApp=void 0,this.isSsr=void 0,this.isFallback=void 0,this._inFlightRoute=void 0,this._shallow=void 0,this.locale=void 0,this.locales=void 0,this.defaultLocale=void 0,this.onPopState=function(t){var e=t.state;if(e){if(e.__N){var r=e.url,n=e.as,o=e.options,i=(0,p.parseRelativeUrl)(r).pathname;a.isSsr&&n===a.asPath&&i===a.pathname||a._bps&&!a._bps(e)||a.change("replaceState",r,n,Object.assign({},o,{shallow:o.shallow&&a._shallow}))}}else{var u=a.pathname,c=a.query;a.changeState("replaceState",(0,h.formatWithValidation)({pathname:S(u),query:c}),(0,h.getURL)())}},this.route=(0,c.removePathTrailingSlash)(e),this.components={},"/_error"!==e&&(this.components[this.route]={Component:v,styleSheets:y,props:u,err:g,__N_SSG:u&&u.__N_SSG,__N_SSP:u&&u.__N_SSP}),this.components["/_app"]={Component:l,styleSheets:[]},this.events=t.events,this.pageLoader=s,this.pathname=e,this.query=r,this.asPath=(0,f.isDynamicRoute)(e)&&__NEXT_DATA__.autoExport?e:n,this.basePath="",this.sub=m,this.clc=null,this._wrapApp=d,this.isSsr=!0,this.isFallback=b,"//"!==n.substr(0,2)&&this.changeState("replaceState",(0,h.formatWithValidation)({pathname:S(e),query:r}),(0,h.getURL)()),window.addEventListener("popstate",this.onPopState)}return u(t,[{key:"reload",value:function(){window.location.reload()}},{key:"back",value:function(){window.history.back()}},{key:"push",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=j(this,t,e);return t=n.url,e=n.as,this.change("pushState",t,e,r)}},{key:"replace",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=j(this,t,e);return t=n.url,e=n.as,this.change("replaceState",t,e,r)}},{key:"change",value:function(){var e=a(o.mark((function e(r,n,a,i){var u,s,l,d,g,m,b,S,L,O,C,j,A,I,T,U,N,q,D,M,W,G,F,H,V;return o.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(k(n)){e.next=3;break}return window.location.href=n,e.abrupt("return",!1);case 3:if(i._h||(this.isSsr=!1),h.ST&&performance.mark("routeChange"),this._inFlightRoute&&this.abortComponentLoad(this._inFlightRoute),a=w(a,this.locale,this.defaultLocale),u=_(x(a)?P(a):a,this.locale),this._inFlightRoute=a,i._h||!this.onlyAHashChange(u)){e.next=17;break}return this.asPath=u,t.events.emit("hashChangeStart",a),this.changeState(r,n,a,i),this.scrollToHash(u),this.notify(this.components[this.route]),t.events.emit("hashChangeComplete",a),e.abrupt("return",!0);case 17:return e.next=19,this.pageLoader.getPageList();case 19:return s=e.sent,e.next=22,this.pageLoader.promisedBuildManifest;case 22:if(l=e.sent,l.__rewrites,d=(0,p.parseRelativeUrl)(n),m=(g=d).pathname,b=g.query,(d=this._resolveHref(d,s)).pathname!==m&&(m=d.pathname,n=(0,h.formatWithValidation)(d)),m=m?(0,c.removePathTrailingSlash)(P(m)):m,this.urlIsNew(u)||(r="replaceState"),S=(0,c.removePathTrailingSlash)(m),L=i.shallow,O=void 0!==L&&L,C=_(P(C=a),this.locale),!(0,f.isDynamicRoute)(S)){e.next=50;break}if(j=(0,p.parseRelativeUrl)(C),A=j.pathname,I=(0,y.getRouteRegex)(S),T=(0,v.getRouteMatcher)(I)(A),N=(U=S===A)?R(S,A,b):{},T&&(!U||N.result)){e.next=49;break}if(!((q=Object.keys(I.groups).filter((function(t){return!b[t]}))).length>0)){e.next=47;break}throw new Error((U?"The provided `href` (".concat(n,") value is missing query values (").concat(q.join(", "),") to be interpolated properly. "):"The provided `as` value (".concat(A,") is incompatible with the `href` value (").concat(S,"). "))+"Read more: https://err.sh/vercel/next.js/".concat(U?"href-interpolation-failed":"incompatible-href-as"));case 47:e.next=50;break;case 49:U?a=(0,h.formatWithValidation)(Object.assign({},j,{pathname:N.result,query:E(b,N.params)})):Object.assign(b,T);case 50:return t.events.emit("routeChangeStart",a),e.prev=51,e.next=54,this.getRouteInfo(S,m,b,a,O);case 54:if(D=e.sent,M=D.error,W=D.props,G=D.__N_SSG,F=D.__N_SSP,!((G||F)&&W&&W.pageProps&&W.pageProps.__N_REDIRECT)){e.next=65;break}if(!(H=W.pageProps.__N_REDIRECT).startsWith("/")){e.next=63;break}if(V=(0,p.parseRelativeUrl)(H),this._resolveHref(V,s),!s.includes(V.pathname)){e.next=63;break}return e.abrupt("return",this.change("replaceState",H,H,i));case 63:return window.location.href=H,e.abrupt("return",new Promise((function(){})));case 65:return t.events.emit("beforeHistoryChange",a),this.changeState(r,n,w(a,this.locale,this.defaultLocale),i),e.next=70,this.set(S,m,b,u,D).catch((function(t){if(!t.cancelled)throw t;M=M||t}));case 70:if(!M){e.next=73;break}throw t.events.emit("routeChangeError",M,u),M;case 73:return t.events.emit("routeChangeComplete",a),e.abrupt("return",!0);case 78:if(e.prev=78,e.t0=e.catch(51),!e.t0.cancelled){e.next=82;break}return e.abrupt("return",!1);case 82:throw e.t0;case 83:case"end":return e.stop()}}),e,this,[[51,78]])})));return function(t,r,n,o){return e.apply(this,arguments)}}()},{key:"changeState",value:function(t,e,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};"pushState"===t&&(0,h.getURL)()===r||(this._shallow=n.shallow,window.history[t]({url:e,as:r,options:n,__N:!0},"",r))}},{key:"handleRouteInfoError",value:function(){var e=a(o.mark((function e(r,n,a,i,u){var c,s,l,h;return o.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!r.cancelled){e.next=2;break}throw r;case 2:if(!(O in r)&&!u){e.next=6;break}throw t.events.emit("routeChangeError",r,i),window.location.href=i,b();case 6:return e.prev=6,e.next=9,this.fetchComponent("/_error");case 9:return c=e.sent,s=c.page,l=c.styleSheets,h={Component:s,styleSheets:l,err:r,error:r},e.prev=13,e.next=16,this.getInitialProps(s,{err:r,pathname:n,query:a});case 16:h.props=e.sent,e.next=23;break;case 19:e.prev=19,e.t0=e.catch(13),console.error("Error in error page `getInitialProps`: ",e.t0),h.props={};case 23:return e.abrupt("return",h);case 26:return e.prev=26,e.t1=e.catch(6),e.abrupt("return",this.handleRouteInfoError(e.t1,n,a,i,!0));case 29:case"end":return e.stop()}}),e,this,[[6,26],[13,19]])})));return function(t,r,n,o,a){return e.apply(this,arguments)}}()},{key:"getRouteInfo",value:function(){var t=a(o.mark((function t(e,r,n,a){var i,u,c,s,l,f,p,d,v=this,y=arguments;return o.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(i=y.length>4&&void 0!==y[4]&&y[4],t.prev=1,u=this.components[e],!i||!u||this.route!==e){t.next=5;break}return t.abrupt("return",u);case 5:if(!u){t.next=9;break}t.t0=u,t.next=12;break;case 9:return t.next=11,this.fetchComponent(e).then((function(t){return{Component:t.page,styleSheets:t.styleSheets,__N_SSG:t.mod.__N_SSG,__N_SSP:t.mod.__N_SSP}}));case 11:t.t0=t.sent;case 12:c=t.t0,s=c.Component,l=c.__N_SSG,f=c.__N_SSP,t.next=18;break;case 18:return(l||f)&&(p=this.pageLoader.getDataHref((0,h.formatWithValidation)({pathname:r,query:n}),P(a),l,this.locale,this.defaultLocale)),t.next=21,this._getData((function(){return l?v._getStaticData(p):f?v._getServerData(p):v.getInitialProps(s,{pathname:r,query:n,asPath:a})}));case 21:return d=t.sent,c.props=d,this.components[e]=c,t.abrupt("return",c);case 27:return t.prev=27,t.t1=t.catch(1),t.abrupt("return",this.handleRouteInfoError(t.t1,r,n,a));case 30:case"end":return t.stop()}}),t,this,[[1,27]])})));return function(e,r,n,o){return t.apply(this,arguments)}}()},{key:"set",value:function(t,e,r,n,o){return this.isFallback=!1,this.route=t,this.pathname=e,this.query=r,this.asPath=n,this.notify(o)}},{key:"beforePopState",value:function(t){this._bps=t}},{key:"onlyAHashChange",value:function(t){if(!this.asPath)return!1;var e=this.asPath.split("#"),r=n(e,2),o=r[0],a=r[1],i=t.split("#"),u=n(i,2),c=u[0],s=u[1];return!(!s||o!==c||a!==s)||o===c&&a!==s}},{key:"scrollToHash",value:function(t){var e=t.split("#"),r=n(e,2)[1];if(""!==r){var o=document.getElementById(r);if(o)o.scrollIntoView();else{var a=document.getElementsByName(r)[0];a&&a.scrollIntoView()}}else window.scrollTo(0,0)}},{key:"urlIsNew",value:function(t){return this.asPath!==t}},{key:"_resolveHref",value:function(t,e){var r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=t.pathname,o=(0,c.removePathTrailingSlash)((0,s.denormalizePagePath)(r?P(n):n));return"/404"===o||"/_error"===o||e.includes(o)||e.some((function(e){if((0,f.isDynamicRoute)(e)&&(0,y.getRouteRegex)(e).re.test(o))return t.pathname=r?S(e):e,!0})),t}},{key:"prefetch",value:function(){var t=a(o.mark((function t(e){var r,n,a,i,u,s,l=arguments;return o.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=l.length>1&&void 0!==l[1]?l[1]:e,n=l.length>2&&void 0!==l[2]?l[2]:{},a=(0,p.parseRelativeUrl)(e),i=a.pathname,t.next=6,this.pageLoader.getPageList();case 6:u=t.sent,(a=this._resolveHref(a,u)).pathname!==i&&(i=a.pathname,e=(0,h.formatWithValidation)(a)),t.next=11;break;case 11:return s=(0,c.removePathTrailingSlash)(i),t.next=14,Promise.all([this.pageLoader.prefetchData(e,r,this.locale,this.defaultLocale),this.pageLoader[n.priority?"loadPage":"prefetch"](s)]);case 14:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}()},{key:"fetchComponent",value:function(){var t=a(o.mark((function t(e){var r,n,a,i;return o.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=!1,n=this.clc=function(){r=!0},t.next=4,this.pageLoader.loadPage(e);case 4:if(a=t.sent,!r){t.next=9;break}throw(i=new Error('Abort fetching component for route: "'.concat(e,'"'))).cancelled=!0,i;case 9:return n===this.clc&&(this.clc=null),t.abrupt("return",a);case 11:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}()},{key:"_getData",value:function(t){var e=this,r=!1,n=function(){r=!0};return this.clc=n,t().then((function(t){if(n===e.clc&&(e.clc=null),r){var o=new Error("Loading initial props cancelled");throw o.cancelled=!0,o}return t}))}},{key:"_getStaticData",value:function(t){var e=this,r=new URL(t,window.location.href).href;return this.sdc[r]?Promise.resolve(this.sdc[r]):A(t,this.isSsr).then((function(t){return e.sdc[r]=t,t}))}},{key:"_getServerData",value:function(t){return A(t,this.isSsr)}},{key:"getInitialProps",value:function(t,e){var r=this.components["/_app"].Component,n=this._wrapApp(r);return e.AppTree=n,(0,h.loadGetInitialProps)(r,{AppTree:n,Component:t,router:this,ctx:e})}},{key:"abortComponentLoad",value:function(e){this.clc&&(t.events.emit("routeChangeError",b(),e),this.clc(),this.clc=null)}},{key:"notify",value:function(t){return this.sub(t,this.components["/_app"].Component)}}]),t}();e.default=I,I.events=(0,l.default)()},fcRV:function(t,e,r){"use strict";e.__esModule=!0,e.default=function(t){return t.replace(/[/#?]/g,(function(t){return encodeURIComponent(t)}))}},"g/15":function(t,e,r){"use strict";var n=r("vJKn"),o=r("qVT1");e.__esModule=!0,e.execOnce=function(t){var e,r=!1;return function(){return r||(r=!0,e=t.apply(void 0,arguments)),e}},e.getLocationOrigin=i,e.getURL=function(){var t=window.location.href,e=i();return t.substring(e.length)},e.getDisplayName=u,e.isResSent=c,e.loadGetInitialProps=s,e.formatWithValidation=function(t){0;return(0,a.formatUrl)(t)},e.ST=e.SP=e.urlObjectKeys=void 0;var a=r("6D7l");function i(){var t=window.location,e=t.protocol,r=t.hostname,n=t.port;return"".concat(e,"//").concat(r).concat(n?":"+n:"")}function u(t){return"string"===typeof t?t:t.displayName||t.name||"Unknown"}function c(t){return t.finished||t.headersSent}function s(t,e){return l.apply(this,arguments)}function l(){return(l=o(n.mark((function t(e,r){var o,a,i;return n.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:t.next=4;break;case 4:if(o=r.res||r.ctx&&r.ctx.res,e.getInitialProps){t.next=12;break}if(!r.ctx||!r.Component){t.next=11;break}return t.next=9,s(r.Component,r.ctx);case 9:return t.t0=t.sent,t.abrupt("return",{pageProps:t.t0});case 11:return t.abrupt("return",{});case 12:return t.next=14,e.getInitialProps(r);case 14:if(a=t.sent,!o||!c(o)){t.next=17;break}return t.abrupt("return",a);case 17:if(a){t.next=20;break}throw i='"'.concat(u(e),'.getInitialProps()" should resolve to an object. But found "').concat(a,'" instead.'),new Error(i);case 20:return t.abrupt("return",a);case 22:case"end":return t.stop()}}),t)})))).apply(this,arguments)}e.urlObjectKeys=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];var h="undefined"!==typeof performance;e.SP=h;var f=h&&"function"===typeof performance.mark&&"function"===typeof performance.measure;e.ST=f},gguc:function(t,e,r){"use strict";e.__esModule=!0,e.getRouteMatcher=function(t){var e=t.re,r=t.groups;return function(t){var n=e.exec(t);if(!n)return!1;var o=function(t){try{return decodeURIComponent(t)}catch(r){var e=new Error("failed to decode param");throw e.code="DECODE_FAILED",e}},a={};return Object.keys(r).forEach((function(t){var e=r[t],i=n[e.pos];void 0!==i&&(a[t]=~i.indexOf("/")?i.split("/").map((function(t){return o(t)})):e.repeat?[o(i)]:o(i))})),a}}},hS4m:function(t,e,r){"use strict";e.__esModule=!0,e.parseRelativeUrl=function(t,e){var r=e?new URL(e,a):a,n=new URL(t,r),i=n.pathname,u=n.searchParams,c=n.search,s=n.hash,l=n.href,h=n.origin,f=n.protocol;if(h!==a.origin||"http:"!==f&&"https:"!==f)throw new Error("invariant: invalid relative URL");return{pathname:i,query:(0,o.searchParamsToUrlQuery)(u),search:c,hash:s,href:l.slice(a.origin.length)}};var n=r("g/15"),o=r("3WeD"),a=new URL((0,n.getLocationOrigin)())},i2R6:function(t,e){function r(t,e){for(var r=0;r=0;--o){var a=this.tryEntries[o],i=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var u=r.call(a,"catchLoc"),c=r.call(a,"finallyLoc");if(u&&c){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),x(r),l}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;x(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:P(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=undefined),l}},t}(t.exports);try{regeneratorRuntime=n}catch(o){Function("r","regeneratorRuntime = r")(n)}},mxvI:function(t,e){t.exports=function(t,e){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(t)){var r=[],n=!0,o=!1,a=void 0;try{for(var i,u=t[Symbol.iterator]();!(n=(i=u.next()).done)&&(r.push(i.value),!e||r.length!==e);n=!0);}catch(c){o=!0,a=c}finally{try{n||null==u.return||u.return()}finally{if(o)throw a}}return r}}},nOHt:function(t,e,r){"use strict";var n=r("q722");function o(t,e){var r;if("undefined"===typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(r=function(t,e){if(!t)return;if("string"===typeof t)return a(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);"Object"===r&&t.constructor&&(r=t.constructor.name);if("Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return a(t,e)}(t))||e&&t&&"number"===typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,u=!0,c=!1;return{s:function(){r=t[Symbol.iterator]()},n:function(){var t=r.next();return u=t.done,t},e:function(t){c=!0,i=t},f:function(){try{u||null==r.return||r.return()}finally{if(c)throw i}}}}function a(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);re&&(e=t[i]);return e},getId:function(){return"wavesurfer_"+Math.random().toString(32).substring(2)},ajax:function(e){var i=Object.create(t.Observer),a=new XMLHttpRequest,s=!1;return a.open(e.method||"GET",e.url,!0),a.responseType=e.responseType||"json",a.addEventListener("progress",(function(t){i.fireEvent("progress",t),t.lengthComputable&&t.loaded==t.total&&(s=!0)})),a.addEventListener("load",(function(t){s||i.fireEvent("progress",t),i.fireEvent("load",t),200==a.status||206==a.status?i.fireEvent("success",a.response,t):i.fireEvent("error",t)})),a.addEventListener("error",(function(t){i.fireEvent("error",t)})),a.send(),i.xhr=a,i}},t.Observer={on:function(t,e){this.handlers||(this.handlers={});var i=this.handlers[t];return i||(i=this.handlers[t]=[]),i.push(e),{name:t,callback:e,un:this.un.bind(this,t,e)}},un:function(t,e){if(this.handlers){var i=this.handlers[t];if(i)if(e)for(var a=i.length-1;a>=0;a--)i[a]==e&&i.splice(a,1);else i.length=0}},unAll:function(){this.handlers=null},once:function(t,e){var i=this,a=function(){e.apply(this,arguments),setTimeout((function(){i.un(t,a)}),0)};return this.on(t,a)},fireEvent:function(t){if(this.handlers){var e=this.handlers[t],i=Array.prototype.slice.call(arguments,1);e&&e.forEach((function(t){t.apply(null,i)}))}}},t.util.extend(t,t.Observer),t.WebAudio={scriptBufferSize:256,PLAYING_STATE:0,PAUSED_STATE:1,FINISHED_STATE:2,supportsWebAudio:function(){return!(!window.AudioContext&&!window.webkitAudioContext)},getAudioContext:function(){return t.WebAudio.audioContext||(t.WebAudio.audioContext=new(window.AudioContext||window.webkitAudioContext)),t.WebAudio.audioContext},getOfflineAudioContext:function(e){return t.WebAudio.offlineAudioContext||(t.WebAudio.offlineAudioContext=new(window.OfflineAudioContext||window.webkitOfflineAudioContext)(1,2,e)),t.WebAudio.offlineAudioContext},init:function(e){this.params=e,this.ac=e.audioContext||this.getAudioContext(),this.lastPlay=this.ac.currentTime,this.startPosition=0,this.scheduledPause=null,this.states=[Object.create(t.WebAudio.state.playing),Object.create(t.WebAudio.state.paused),Object.create(t.WebAudio.state.finished)],this.createVolumeNode(),this.createScriptNode(),this.createAnalyserNode(),this.setState(this.PAUSED_STATE),this.setPlaybackRate(this.params.audioRate),this.setLength(0)},disconnectFilters:function(){this.filters&&(this.filters.forEach((function(t){t&&t.disconnect()})),this.filters=null,this.analyser.connect(this.gainNode))},setState:function(t){this.state!==this.states[t]&&(this.state=this.states[t],this.state.init.call(this))},setFilter:function(){this.setFilters([].slice.call(arguments))},setFilters:function(t){this.disconnectFilters(),t&&t.length&&(this.filters=t,this.analyser.disconnect(),t.reduce((function(t,e){return t.connect(e),e}),this.analyser).connect(this.gainNode))},createScriptNode:function(){this.ac.createScriptProcessor?this.scriptNode=this.ac.createScriptProcessor(this.scriptBufferSize):this.scriptNode=this.ac.createJavaScriptNode(this.scriptBufferSize),this.scriptNode.connect(this.ac.destination)},addOnAudioProcess:function(){var t=this;this.scriptNode.onaudioprocess=function(){var e=t.getCurrentTime();e>=t.getDuration()?(t.setState(t.FINISHED_STATE),t.fireEvent("pause")):e>=t.scheduledPause?t.pause():t.state===t.states[t.PLAYING_STATE]&&t.fireEvent("audioprocess",e)}},removeOnAudioProcess:function(){this.scriptNode.onaudioprocess=null},createAnalyserNode:function(){this.analyser=this.ac.createAnalyser(),this.analyser.connect(this.gainNode)},createVolumeNode:function(){this.ac.createGain?this.gainNode=this.ac.createGain():this.gainNode=this.ac.createGainNode(),this.gainNode.connect(this.ac.destination)},setVolume:function(t){this.gainNode.gain.value=t},getVolume:function(){return this.gainNode.gain.value},decodeArrayBuffer:function(t,e,i){this.offlineAc||(this.offlineAc=this.getOfflineAudioContext(this.ac?this.ac.sampleRate:44100)),this.offlineAc.decodeAudioData(t,function(t){e(t)}.bind(this),i)},setPeaks:function(t){this.peaks=t},setLength:function(t){if(!this.mergedPeaks||t!=2*this.mergedPeaks.length-1+2){this.splitPeaks=[],this.mergedPeaks=[];for(var e=this.buffer?this.buffer.numberOfChannels:1,i=0;ip&&(p=m),mthis.mergedPeaks[2*l])&&(this.mergedPeaks[2*l]=p),(0==n||d=this.getDuration()&&(t=0),null==e&&(e=this.getDuration()),this.startPosition=t,this.lastPlay=this.ac.currentTime,this.state===this.states[this.FINISHED_STATE]&&this.setState(this.PAUSED_STATE),{start:t,end:e}},getPlayedTime:function(){return(this.ac.currentTime-this.lastPlay)*this.playbackRate},play:function(t,e){if(this.buffer){this.createSource();var i=this.seekTo(t,e);t=i.start,e=i.end,this.scheduledPause=e,this.source.start(0,t,e-t),"suspended"==this.ac.state&&this.ac.resume&&this.ac.resume(),this.setState(this.PLAYING_STATE),this.fireEvent("play")}},pause:function(){this.scheduledPause=null,this.startPosition+=this.getPlayedTime(),this.source&&this.source.stop(0),this.setState(this.PAUSED_STATE),this.fireEvent("pause")},getCurrentTime:function(){return this.state.getCurrentTime.call(this)},getPlaybackRate:function(){return this.playbackRate},setPlaybackRate:function(t){t=t||1,this.isPaused()?this.playbackRate=t:(this.pause(),this.playbackRate=t,this.play())}},t.WebAudio.state={},t.WebAudio.state.playing={init:function(){this.addOnAudioProcess()},getPlayedPercents:function(){var t=this.getDuration();return this.getCurrentTime()/t||0},getCurrentTime:function(){return this.startPosition+this.getPlayedTime()}},t.WebAudio.state.paused={init:function(){this.removeOnAudioProcess()},getPlayedPercents:function(){var t=this.getDuration();return this.getCurrentTime()/t||0},getCurrentTime:function(){return this.startPosition}},t.WebAudio.state.finished={init:function(){this.removeOnAudioProcess(),this.fireEvent("finish")},getPlayedPercents:function(){return 1},getCurrentTime:function(){return this.getDuration()}},t.util.extend(t.WebAudio,t.Observer),t.MediaElement=Object.create(t.WebAudio),t.util.extend(t.MediaElement,{init:function(t){this.params=t,this.media={currentTime:0,duration:0,paused:!0,playbackRate:1,play:function(){},pause:function(){}},this.mediaType=t.mediaType.toLowerCase(),this.elementPosition=t.elementPosition,this.setPlaybackRate(this.params.audioRate),this.createTimer()},createTimer:function(){var t=this,e=function(){t.isPaused()||(t.fireEvent("audioprocess",t.getCurrentTime()),(window.requestAnimationFrame||window.webkitRequestAnimationFrame)(e))};this.on("play",e)},load:function(t,e,i,a){var s=document.createElement(this.mediaType);s.controls=this.params.mediaControls,s.autoplay=this.params.autoplay||!1,s.preload=null==a?"auto":a,s.src=t,s.style.width="100%";var r=e.querySelector(this.mediaType);r&&e.removeChild(r),e.appendChild(s),this._load(s,i)},loadElt:function(t,e){var i=t;i.controls=this.params.mediaControls,i.autoplay=this.params.autoplay||!1,this._load(i,e)},_load:function(t,e){var i=this;"function"==typeof t.load&&t.load(),t.addEventListener("error",(function(){i.fireEvent("error","Error loading media element")})),t.addEventListener("canplay",(function(){i.fireEvent("canplay")})),t.addEventListener("ended",(function(){i.fireEvent("finish")})),this.media=t,this.peaks=e,this.onPlayEnd=null,this.buffer=null,this.setPlaybackRate(this.playbackRate)},isPaused:function(){return!this.media||this.media.paused},getDuration:function(){var t=(this.buffer||this.media).duration;return t>=1/0&&(t=this.media.seekable.end(0)),t},getCurrentTime:function(){return this.media&&this.media.currentTime},getPlayedPercents:function(){return this.getCurrentTime()/this.getDuration()||0},getPlaybackRate:function(){return this.playbackRate||this.media.playbackRate},setPlaybackRate:function(t){this.playbackRate=t||1,this.media.playbackRate=this.playbackRate},seekTo:function(t){null!=t&&(this.media.currentTime=t),this.clearPlayEnd()},play:function(t,e){this.seekTo(t),this.media.play(),e&&this.setPlayEnd(e),this.fireEvent("play")},pause:function(){this.media&&this.media.pause(),this.clearPlayEnd(),this.fireEvent("pause")},setPlayEnd:function(t){var e=this;this.onPlayEnd=function(i){i>=t&&(e.pause(),e.seekTo(t))},this.on("audioprocess",this.onPlayEnd)},clearPlayEnd:function(){this.onPlayEnd&&(this.un("audioprocess",this.onPlayEnd),this.onPlayEnd=null)},getPeaks:function(e,i,a){return this.buffer?t.WebAudio.getPeaks.call(this,e,i,a):this.peaks||[]},getVolume:function(){return this.media.volume},setVolume:function(t){this.media.volume=t},destroy:function(){this.pause(),this.unAll(),this.media&&this.media.parentNode&&this.media.parentNode.removeChild(this.media),this.media=null}}),t.AudioElement=t.MediaElement,t.Drawer={init:function(t,e){this.container=t,this.params=e,this.width=0,this.height=e.height*this.params.pixelRatio,this.lastPos=0,this.initDrawer(e),this.createWrapper(),this.createElements()},createWrapper:function(){this.wrapper=this.container.appendChild(document.createElement("wave")),this.style(this.wrapper,{display:"block",position:"relative",userSelect:"none",webkitUserSelect:"none",height:this.params.height+"px"}),(this.params.fillParent||this.params.scrollParent)&&this.style(this.wrapper,{width:"100%",overflowX:this.params.hideScrollbar?"hidden":"auto",overflowY:"hidden"}),this.setupWrapperEvents()},handleEvent:function(t,e){!e&&t.preventDefault();var i,a=t.targetTouches?t.targetTouches[0].clientX:t.clientX,s=this.wrapper.getBoundingClientRect(),r=this.width,n=this.getWidth();return!this.params.fillParent&&r1&&(i=1):i=(a-s.left+this.wrapper.scrollLeft)/this.wrapper.scrollWidth||0,i},setupWrapperEvents:function(){var t=this;this.wrapper.addEventListener("click",(function(e){var i=t.wrapper.offsetHeight-t.wrapper.clientHeight;if(0!=i){var a=t.wrapper.getBoundingClientRect();if(e.clientY>=a.bottom-i)return}t.params.interact&&t.fireEvent("click",e,t.handleEvent(e))})),this.wrapper.addEventListener("scroll",(function(e){t.fireEvent("scroll",e)}))},drawPeaks:function(t,e,i,a){this.setWidth(e),this.params.barWidth?this.drawBars(t,0,i,a):this.drawWave(t,0,i,a)},style:function(t,e){return Object.keys(e).forEach((function(i){t.style[i]!==e[i]&&(t.style[i]=e[i])})),t},resetScroll:function(){null!==this.wrapper&&(this.wrapper.scrollLeft=0)},recenter:function(t){var e=this.wrapper.scrollWidth*t;this.recenterOnPosition(e,!0)},recenterOnPosition:function(t,e){var i=this.wrapper.scrollLeft,a=~~(this.wrapper.clientWidth/2),s=t-a,r=s-i,n=this.wrapper.scrollWidth-this.wrapper.clientWidth;if(0!=n){if(!e&&-a<=r&&r=e){if(this.lastPos=i,this.params.scrollParent&&this.params.autoCenter){var a=~~(this.wrapper.scrollWidth*t);this.recenterOnPosition(a)}this.updateProgress(i)}},destroy:function(){this.unAll(),this.wrapper&&(this.container.removeChild(this.wrapper),this.wrapper=null)},initDrawer:function(){},createElements:function(){},updateSize:function(){},drawWave:function(t,e){},clearWave:function(){},updateProgress:function(t){}},t.util.extend(t.Drawer,t.Observer),t.Drawer.Canvas=Object.create(t.Drawer),t.util.extend(t.Drawer.Canvas,{createElements:function(){var t=this.wrapper.appendChild(this.style(document.createElement("canvas"),{position:"absolute",zIndex:1,left:0,top:0,bottom:0}));if(this.waveCc=t.getContext("2d"),this.progressWave=this.wrapper.appendChild(this.style(document.createElement("wave"),{position:"absolute",zIndex:2,left:0,top:0,bottom:0,overflow:"hidden",width:"0",display:"none",boxSizing:"border-box",borderRightStyle:"solid",borderRightWidth:this.params.cursorWidth+"px",borderRightColor:this.params.cursorColor})),this.params.waveColor!=this.params.progressColor){var e=this.progressWave.appendChild(document.createElement("canvas"));this.progressCc=e.getContext("2d")}},updateSize:function(){var t=Math.round(this.width/this.params.pixelRatio);this.waveCc.canvas.width=this.width,this.waveCc.canvas.height=this.height,this.style(this.waveCc.canvas,{width:t+"px"}),this.style(this.progressWave,{display:"block"}),this.progressCc&&(this.progressCc.canvas.width=this.width,this.progressCc.canvas.height=this.height,this.style(this.progressCc.canvas,{width:t+"px"})),this.clearWave()},clearWave:function(){this.waveCc.clearRect(0,0,this.width,this.height),this.progressCc&&this.progressCc.clearRect(0,0,this.width,this.height)},drawBars:function(e,i,a,s){var r=this;if(e[0]instanceof Array){var n=e;if(this.params.splitChannels)return this.setHeight(n.length*this.params.height*this.params.pixelRatio),void n.forEach((function(t,e){r.drawBars(t,e,a,s)}));e=n[0]}var o=[].some.call(e,(function(t){return t<0})),h=1;o&&(h=2);var l=.5/this.params.pixelRatio,u=this.width,c=this.params.height*this.params.pixelRatio,d=c*i||0,p=c/2,f=e.length/h,m=this.params.barWidth*this.params.pixelRatio,v=Math.max(this.params.pixelRatio,~~(m/2)),g=m+v,w=1/this.params.barHeight;if(this.params.normalize){var y=t.util.max(e),b=t.util.min(e);w=-b>y?-b:y}var P=f/u;this.waveCc.fillStyle=this.params.waveColor,this.progressCc&&(this.progressCc.fillStyle=this.params.progressColor),[this.waveCc,this.progressCc].forEach((function(t){if(t)for(var i=a/P;ig?-w:g}this.waveCc.fillStyle=this.params.waveColor,this.progressCc&&(this.progressCc.fillStyle=this.params.progressColor),[this.waveCc,this.progressCc].forEach((function(t){if(t){t.beginPath(),t.moveTo(a*m+u,p+d);for(var i=a;i=a;i--)r=Math.round(e[2*i+1]/v*p),t.lineTo(i*m+u,p-r+d);t.closePath(),t.fill(),t.fillRect(0,p+d-u,this.width,u)}}),this)},updateProgress:function(t){this.style(this.progressWave,{width:t+"px"})},getImage:function(t,e){return this.waveCc.canvas.toDataURL(t,e)}}),t.Drawer.MultiCanvas=Object.create(t.Drawer),t.util.extend(t.Drawer.MultiCanvas,{initDrawer:function(t){if(this.maxCanvasWidth=null!=t.maxCanvasWidth?t.maxCanvasWidth:4e3,this.maxCanvasElementWidth=Math.round(this.maxCanvasWidth/this.params.pixelRatio),this.maxCanvasWidth<=1)throw"maxCanvasWidth must be greater than 1.";if(this.maxCanvasWidth%2==1)throw"maxCanvasWidth must be an even number.";this.hasProgressCanvas=this.params.waveColor!=this.params.progressColor,this.halfPixel=.5/this.params.pixelRatio,this.canvases=[]},createElements:function(){this.progressWave=this.wrapper.appendChild(this.style(document.createElement("wave"),{position:"absolute",zIndex:2,left:0,top:0,bottom:0,overflow:"hidden",width:"0",display:"none",boxSizing:"border-box",borderRightStyle:"solid",borderRightWidth:this.params.cursorWidth+"px",borderRightColor:this.params.cursorColor})),this.addCanvas()},updateSize:function(){for(var t=Math.round(this.width/this.params.pixelRatio),e=Math.ceil(t/this.maxCanvasElementWidth);this.canvases.lengthe;)this.removeCanvas();for(var i in this.canvases){var a=this.maxCanvasWidth+2*Math.ceil(this.params.pixelRatio/2);i==this.canvases.length-1&&(a=this.width-this.maxCanvasWidth*(this.canvases.length-1)),this.updateDimensions(this.canvases[i],a,this.height),this.clearWaveForEntry(this.canvases[i])}},addCanvas:function(){var t={},e=this.maxCanvasElementWidth*this.canvases.length;t.wave=this.wrapper.appendChild(this.style(document.createElement("canvas"),{position:"absolute",zIndex:1,left:e+"px",top:0,bottom:0,height:"100%"})),t.waveCtx=t.wave.getContext("2d"),this.hasProgressCanvas&&(t.progress=this.progressWave.appendChild(this.style(document.createElement("canvas"),{position:"absolute",left:e+"px",top:0,bottom:0,height:"100%"})),t.progressCtx=t.progress.getContext("2d")),this.canvases.push(t)},removeCanvas:function(){var t=this.canvases.pop();t.wave.parentElement.removeChild(t.wave),this.hasProgressCanvas&&t.progress.parentElement.removeChild(t.progress)},updateDimensions:function(t,e,i){var a=Math.round(e/this.params.pixelRatio),s=Math.round(this.width/this.params.pixelRatio);t.start=t.waveCtx.canvas.offsetLeft/s||0,t.end=t.start+a/s,t.waveCtx.canvas.width=e,t.waveCtx.canvas.height=i,this.style(t.waveCtx.canvas,{width:a+"px"}),this.style(this.progressWave,{display:"block"}),this.hasProgressCanvas&&(t.progressCtx.canvas.width=e,t.progressCtx.canvas.height=i,this.style(t.progressCtx.canvas,{width:a+"px"}))},clearWave:function(){for(var t in this.canvases)this.clearWaveForEntry(this.canvases[t])},clearWaveForEntry:function(t){t.waveCtx.clearRect(0,0,t.waveCtx.canvas.width,t.waveCtx.canvas.height),this.hasProgressCanvas&&t.progressCtx.clearRect(0,0,t.progressCtx.canvas.width,t.progressCtx.canvas.height)},drawBars:function(e,i,a,s){var r=this;if(e[0]instanceof Array){var n=e;if(this.params.splitChannels)return this.setHeight(n.length*this.params.height*this.params.pixelRatio),void n.forEach((function(t,e){r.drawBars(t,e,a,s)}));e=n[0]}var o=1;[].some.call(e,(function(t){return t<0}))&&(o=2);var h=this.width,l=this.params.height*this.params.pixelRatio,u=l*i||0,c=l/2,d=e.length/o,p=this.params.barWidth*this.params.pixelRatio,f=p+Math.max(this.params.pixelRatio,~~(p/2)),m=1/this.params.barHeight;if(this.params.normalize){var v=t.util.max(e),g=t.util.min(e);m=-g>v?-g:v}for(var w=d/h,y=a/w;yf?-m:f}this.drawLine(e,p,d,c,a,s),this.fillRect(0,d+c-this.halfPixel,this.width,this.halfPixel)},drawLine:function(t,e,i,a,s,r){for(var n in this.canvases){var o=this.canvases[n];this.setFillStyles(o),this.drawLineToContext(o,o.waveCtx,t,e,i,a,s,r),this.drawLineToContext(o,o.progressCtx,t,e,i,a,s,r)}},drawLineToContext:function(t,e,i,a,s,r,n,o){if(e){var h=i.length/2,l=1;this.params.fillParent&&this.width!=h&&(l=this.width/h);var u=Math.round(h*t.start),c=Math.round(h*t.end);if(!(u>o||c=d;f--)m=i[2*f+1]||0,v=Math.round(m/a*s),e.lineTo((f-u)*l+this.halfPixel,s-v+r);e.closePath(),e.fill()}}},fillRect:function(t,e,i,a){for(var s=Math.floor(t/this.maxCanvasWidth),r=Math.min(Math.ceil((t+i)/this.maxCanvasWidth)+1,this.canvases.length),n=s;n1?i:i[0]}}),t.Drawer.SplitWavePointPlot=Object.create(t.Drawer.Canvas),t.util.extend(t.Drawer.SplitWavePointPlot,{defaultPlotParams:{plotNormalizeTo:"whole",plotTimeStart:0,plotMin:0,plotMax:1,plotColor:"#f63",plotProgressColor:"#F00",plotPointHeight:2,plotPointWidth:2,plotSeparator:!0,plotSeparatorColor:"black",plotRangeDisplay:!1,plotRangeUnits:"",plotRangePrecision:4,plotRangeIgnoreOutliers:!1,plotRangeFontSize:12,plotRangeFontType:"Ariel",waveDrawMedianLine:!0,plotFileDelimiter:"\t"},plotTimeStart:0,plotTimeEnd:-1,plotArrayLoaded:!1,plotArray:[],plotPoints:[],plotMin:0,plotMax:1,initDrawer:function(t){var e=this;for(var i in this.defaultPlotParams)void 0===this.params[i]&&(this.params[i]=this.defaultPlotParams[i]);if(this.plotTimeStart=this.params.plotTimeStart,void 0!==this.params.plotTimeEnd&&(this.plotTimeEnd=this.params.plotTimeEnd),Array.isArray(t.plotArray))this.plotArray=t.plotArray,this.plotArrayLoaded=!0;else{var a=function(t){e.plotArray=t,e.plotArrayLoaded=!0,e.fireEvent("plot_array_loaded")};this.loadPlotArrayFromFile(t.plotFileUrl,a,this.params.plotFileDelimiter)}},drawPeaks:function(t,e,i,a){if(1==this.plotArrayLoaded)this.setWidth(e),this.splitChannels=!0,this.params.height=this.params.height/2,t[0]instanceof Array&&(t=t[0]),this.params.barWidth?this.drawBars(t,1,i,a):this.drawWave(t,1,i,a),this.params.height=2*this.params.height,this.calculatePlots(),this.drawPlots();else{var s=this;s.on("plot-array-loaded",(function(){s.drawPeaks(t,e,i,a)}))}},drawPlots:function(){var t=this.params.height*this.params.pixelRatio/2,e=.5/this.params.pixelRatio;for(var i in this.waveCc.fillStyle=this.params.plotColor,this.progressCc&&(this.progressCc.fillStyle=this.params.plotProgressColor),this.plotPoints){var a=parseInt(i),s=t-this.params.plotPointHeight-this.plotPoints[i]*(t-this.params.plotPointHeight),r=this.params.plotPointHeight;this.waveCc.fillRect(a,s,this.params.plotPointWidth,r),this.progressCc&&this.progressCc.fillRect(a,s,this.params.plotPointWidth,r)}this.params.plotSeparator&&(this.waveCc.fillStyle=this.params.plotSeparatorColor,this.waveCc.fillRect(0,t,this.width,e)),this.params.plotRangeDisplay&&this.displayPlotRange()},displayPlotRange:function(){var t=this.params.plotRangeFontSize*this.params.pixelRatio,e=this.plotMax.toPrecision(this.params.plotRangePrecision)+" "+this.params.plotRangeUnits,i=this.plotMin.toPrecision(this.params.plotRangePrecision)+" "+this.params.plotRangeUnits;this.waveCc.font=t.toString()+"px "+this.params.plotRangeFontType,this.waveCc.fillText(e,3,t),this.waveCc.fillText(i,3,this.height/2)},calculatePlots:function(){this.plotPoints={},this.calculatePlotTimeEnd();for(var t=[],e=-1,i=0,a=99999999999999,s=0,r=99999999999999,n=this.plotTimeEnd-this.plotTimeStart,o=0;oi&&(i=h.value),h.value=this.plotTimeStart&&h.time<=this.plotTimeEnd){var l=Math.round(this.width*(h.time-this.plotTimeStart)/n);if(t.push(h.value),l!==e&&t.length>0){var u=this.avg(t);u>s&&(s=u),u1?this.params.plotRangeIgnoreOutliers||(t[e]=1):i<0?this.params.plotRangeIgnoreOutliers||(t[e]=0):t[e]=i}this.plotPoints=t}},loadPlotArrayFromFile:function(e,i,a){void 0===a&&(a="\t");var s=[],r={url:e,responseType:"text"};t.util.ajax(r).on("load",(function(t){if(200==t.currentTarget.status){for(var e=t.currentTarget.responseText.split("\n"),r=0;r=97&&e<=122||e>=65&&e<=90}},"2yk8":function(t,e,n){"use strict";var r=n("IPAr"),i=n("ZWk2"),o=n("afWh");t.exports=a,a.locator=o,a.notInLink=!0;var c="mailto:".length;function a(t,e,n){var o,a,s,u,f,l,h,p,d,m,g;if("<"===e.charAt(0)){for(this,o="",a=e.length,s=0,u="",l=!1,h="",s++,o="<";s"===f||"@"===f||":"===f&&"/"===e.charAt(s+1)));)u+=f,s++;if(u){if(h+=u,u="",h+=f=e.charAt(s),s++,"@"===f)l=!0;else{if(":"!==f||"/"!==e.charAt(s+1))return;h+="/",s++}for(;s"!==f);)u+=f,s++;if(f=e.charAt(s),u&&">"===f)return!!n||(d=h+=u,o+=h+f,(p=t.now()).column++,p.offset++,l&&("mailto:"===h.slice(0,c).toLowerCase()?(d=d.substr(c),p.column+=c,p.offset+=c):h="mailto:"+h),m=this.inlineTokenizers,this.inlineTokenizers={text:m.text},g=this.enterLink(),d=this.tokenizeInline(d,p),this.inlineTokenizers=m,g(),t(o)({type:"link",title:null,url:i(h,{nonTerminated:!1}),children:d}))}}}},"3GlI":function(t,e,n){"use strict";t.exports=function(t){var e=String(t),n=e.length;for(;"\n"===e.charAt(--n););return e.slice(0,n+1)}},"3m36":function(t,e,n){"use strict";var r=n("U6jy"),i=n("q1tI"),o=parseInt((i.version||"16").slice(0,2),10)>=16,c=i.createElement;function a(t,e){return c(t,s(e),e.children)}function s(t){return t["data-sourcepos"]?{"data-sourcepos":t["data-sourcepos"]}:{}}t.exports={break:"br",paragraph:"p",emphasis:"em",strong:"strong",thematicBreak:"hr",blockquote:"blockquote",delete:"del",link:"a",image:"img",linkReference:"a",imageReference:"img",table:a.bind(null,"table"),tableHead:a.bind(null,"thead"),tableBody:a.bind(null,"tbody"),tableRow:a.bind(null,"tr"),tableCell:function(t){var e=t.align?{textAlign:t.align}:void 0,n=s(t);return c(t.isHeader?"th":"td",e?r({style:e},n):n,t.children)},root:function(t){var e=!t.className,n=e&&i.Fragment||"div";return c(n,e?null:t,t.children)},text:function(t){return o?t.children:c("span",null,t.children)},list:function(t){var e=s(t);null!==t.start&&1!==t.start&&void 0!==t.start&&(e.start=t.start.toString());return c(t.ordered?"ol":"ul",e,t.children)},listItem:function(t){var e=null;if(null!==t.checked&&void 0!==t.checked){var n=t.checked;e=c("input",{type:"checkbox",checked:n,readOnly:!0})}return c("li",s(t),e,t.children)},definition:function(){return null},heading:function(t){return c("h".concat(t.level),s(t),t.children)},inlineCode:function(t){return c("code",s(t),t.children)},code:function(t){var e=t.language&&"language-".concat(t.language),n=c("code",e?{className:e}:null,t.value);return c("pre",s(t),n)},html:function(t){if(t.skipHtml)return null;var e=t.isBlock?"div":"span";if(t.escapeHtml){var n=i.Fragment||e;return c(n,null,t.value)}var r={dangerouslySetInnerHTML:{__html:t.value}};return c(e,r)},virtualHtml:function(t){return c(t.tag,s(t),t.children)},parsedHtml:function(t){return t["data-sourcepos"]?i.cloneElement(t.element,{"data-sourcepos":t["data-sourcepos"]}):t.element}}},"48q5":function(t,e,n){"use strict";var r=n("tpqs");t.exports=function(t,e){if("string"!==typeof t)return t;if(0===t.length)return t;var n=r.basename(t,r.extname(t))+e;return r.join(r.dirname(t),n)}},"497W":function(t,e,n){"use strict";var r=n("aTp6");t.exports=i,i.locator=r;function i(t,e,n){for(var r,i=e.length,o=-1,c="";++oe)return{line:n+1,column:e-(t[n-1]||0)+1,offset:e};return{}}}function i(t){return function(e){var n=e&&e.line,r=e&&e.column;if(!isNaN(n)&&!isNaN(r)&&n-1 in t)return(t[n-2]||0)+r-1||0;return-1}}t.exports=function(t){var e=function(t){var e=[],n=t.indexOf("\n");for(;-1!==n;)e.push(n+1),n=t.indexOf("\n",n+1);return e.push(t.length+1),e}(String(t));return{toPosition:r(e),toOffset:i(e)}}},"8oxB":function(t,e){var n,r,i=t.exports={};function o(){throw new Error("setTimeout has not been defined")}function c(){throw new Error("clearTimeout has not been defined")}function a(t){if(n===setTimeout)return setTimeout(t,0);if((n===o||!n)&&setTimeout)return n=setTimeout,setTimeout(t,0);try{return n(t,0)}catch(e){try{return n.call(null,t,0)}catch(e){return n.call(this,t,0)}}}!function(){try{n="function"===typeof setTimeout?setTimeout:o}catch(t){n=o}try{r="function"===typeof clearTimeout?clearTimeout:c}catch(t){r=c}}();var s,u=[],f=!1,l=-1;function h(){f&&s&&(f=!1,s.length?u=s.concat(u):l=-1,u.length&&p())}function p(){if(!f){var t=a(h);f=!0;for(var e=u.length;e;){for(s=u,u=[];++l1)for(var n=1;n1&&t.children.push({type:"tableBody",align:t.align,children:e.slice(1),position:{start:e[1].position.start,end:e[e.length-1].position.end}})}t.exports=function(t){return r(t,"table",i),t}},A6mZ:function(t,e,n){"use strict";t.exports=function(t){return function(e,n){var o,c,a,s,u,f=this,l=f.offset,h=[],p=f[t+"Methods"],d=f[t+"Tokenizers"],m=n.line,g=n.column;if(!e)return h;O.now=b,O.file=f.file,v("");for(;e;){for(o=-1,c=p.length,s=!1;++oc.length;a&&c.push(i);try{e=t.apply(null,c)}catch(s){if(a&&n)throw s;return i(s)}a||(e&&"function"===typeof e.then?e.then(o,i):e instanceof Error?i(e):o(e))};function i(){n||(n=!0,e.apply(null,arguments))}function o(t){i(null,t)}}},EQPF:function(t,e,n){"use strict";t.exports=function(t,e){return function(n){var r,i=0,o=n.indexOf("\\"),c=t[e],a=[];for(;-1!==o;)a.push(n.slice(i,o)),i=o+1,(r=n.charAt(i))&&-1!==c.indexOf(r)||a.push("\\"),o=n.indexOf("\\",i);return a.push(n.slice(i)),a.join("")}}},Eidx:function(t,e,n){"use strict";var r=n("IPAr");t.exports=function(t,e,n){var i,o,c,a,s=e.charAt(0);if("\n"!==s)return;if(n)return!0;a=1,i=e.length,o=s,c="";for(;a=4)){for(s="";v"!==t&&"["!==t&&"]"!==t}function a(t){return"["!==t&&"]"!==t&&!r(t)}c.delimiter=">"},IPAr:function(t,e,n){"use strict";t.exports=function(t){return i.test("number"===typeof t?r(t):t.charAt(0))};var r=String.fromCharCode,i=/\s/},IRYA:function(t,e){var n=Object.prototype.toString;t.exports=function(t){return"[object String]"===n.call(t)}},IoeE:function(t,e,n){"use strict";t.exports=function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(e.children||[]).reduce((function(e,n){return"definition"===n.type&&(e[n.identifier]={href:n.url,title:n.title}),t(n,e)}),n)}},IujW:function(t,e,n){"use strict";function r(t){return function(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e0&&e.push(f.ofType(n,r));t.allowNode&&e.push(f.ifNotMatch(t.allowNode,r));var i=!t.escapeHtml&&!t.skipHtml,o=(t.astPlugins||[]).some((function(t){return(Array.isArray(t)?t[0]:t).identity===g.HtmlParser}));i&&!o&&e.push(u);return t.astPlugins?e.concat(t.astPlugins):e}(t),A=a.runSync(d),x=k.reduce((function(t,e){return e(t,y)}),A);return l(x,y)};function b(t,e){return Array.isArray(e)?t.use.apply(t,r(e)):t.use(e)}y.defaultProps={renderers:{},escapeHtml:!0,skipHtml:!1,sourcePos:!1,rawSourcePos:!1,transformLinkUri:d,astPlugins:[],plugins:[],parserOptions:{}},y.propTypes={className:a.string,source:a.string,children:a.string,sourcePos:a.bool,rawSourcePos:a.bool,escapeHtml:a.bool,skipHtml:a.bool,allowNode:a.func,allowedTypes:a.arrayOf(a.oneOf(v)),disallowedTypes:a.arrayOf(a.oneOf(v)),transformLinkUri:a.oneOfType([a.func,a.bool]),linkTarget:a.oneOfType([a.func,a.string]),transformImageUri:a.func,astPlugins:a.arrayOf(a.func),unwrapDisallowed:a.bool,renderers:a.object,plugins:a.array,parserOptions:a.object},y.types=v,y.renderers=m,y.uriTransformer=d,t.exports=y},J5yW:function(t,e,n){"use strict";var r=n("1iAE"),i=n("ZONP");t.exports=function(t){return r(t)||i(t)}},JlFY:function(t,e,n){"use strict";var r=n("IPAr"),i=n("Brp5");t.exports=o,o.locator=i;function o(t,e,n){for(var i,o,c,a,s,u,f,l,h=e.length,p=0,d="",m="";p6)return;if(!o||!c.pedantic&&"#"===e.charAt(s+1))return;a=e.length+1,i="";for(;++s"],i=r.concat(["~","|"]),o=i.concat(["\n",'"',"$","%","&","'",",","/",":",";","<","=","?","@","^"]);function c(t){var e=t||{};return e.commonmark?o:e.gfm?i:r}c.default=r,c.gfm=i,c.commonmark=o},MaiH:function(t,e,n){"use strict";t.exports=function(t,e){return t.indexOf("~~",e)}},NFD0:function(t,e,n){"use strict";t.exports=function(t,e){return t.indexOf("\\",e)}},NS2H:function(t,e,n){"use strict";t.exports=function(t,e,n){var i,o,c,a,s,u=t.now(),f=e.length,l=-1,h="";for(;++l=3){l--;break}h+=c}i="",o="";for(;++lc||-1!==(c=e.indexOf("#"))&&i>c?e:"javascript:void(0)"}},Olrm:function(t,e,n){"use strict";var r=n("U6jy"),i=n("ZWk2");t.exports=function(t){return o.raw=function(t,o,c){return i(t,r(c,{position:e(o),warning:n}))},o;function e(e){for(var n=t.offset,r=e.line,i=[];++r&&r in n;)i.push((n[r]||0)+1);return{start:e,indent:i}}function n(e,n,r){3!==r&&t.file.message(e,n)}function o(r,o,c){i(r,{position:e(o),warning:n,text:c,reference:c,textContext:t,referenceContext:t})}}},P7XM:function(t,e){"function"===typeof Object.create?t.exports=function(t,e){e&&(t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:t.exports=function(t,e){if(e){t.super_=e;var n=function(){};n.prototype=e.prototype,t.prototype=new n,t.prototype.constructor=t}}},PIlL:function(t,e,n){"use strict";var r=n("RsFJ"),i=n("KJAg");t.exports=function(t,e,n){var o,c,a,s,u,f,l,h,p,d=this.offset,m=this.blockTokenizers,g=this.interruptBlockquote,v=t.now(),y=v.line,b=e.length,k=[],A=[],x=[],w=0;for(;w"!==e.charAt(w))return;if(n)return!0;w=0;for(;w"===e.charAt(w)?(w++,h=!0," "===e.charAt(w)&&w++):w=l,u=e.slice(w,s),!h&&!r(u)){w=l;break}if(!h&&(a=e.slice(w),i(g,m,this,[t,a,!0])))break;f=l===w?u:e.slice(l,s),x.push(w-l),k.push(f),A.push(u),w=s+1}w=-1,b=x.length,o=t(k.join("\n"));for(;++w=4){v=e.indexOf("\n",v+1);continue}}if(s=e.slice(v+1),c(g,m,this,[t,s,!0]))break;if(m.list.call(this,t,s,!0)&&(this.inList||p||d&&!i(r.left(s).charAt(0))))break;if(a=v,-1!==(v=e.indexOf("\n",v+1))&&""===r(e.slice(a,v))){v=a;break}}if(s=e.slice(0,v),""===r(s))return t(s),null;if(n)return!0;return l=t.now(),s=o(s),t(s)({type:"paragraph",children:this.tokenizeInline(s,l)})}},RjOF:function(t,e,n){"use strict";var r,i="";t.exports=function(t,e){if("string"!==typeof t)throw new TypeError("expected a string");if(1===e)return t;if(2===e)return t+t;var n=t.length*e;if(r!==t||"undefined"===typeof r)r=t,i="";else if(i.length>=n)return i.substr(0,n);for(;n>i.length&&e>1;)1&e&&(i+=t),e>>=1,t+=t;return i=(i+=t).substr(0,n)}},RsFJ:function(t,e){(e=t.exports=function(t){return t.replace(/^\s*|\s*$/g,"")}).left=function(t){return t.replace(/^\s*/,"")},e.right=function(t){return t.replace(/\s*$/,"")}},SbiQ:function(t,e,n){"use strict";t.exports=function(t,e,n){var r,i,o,c,a,s,u,f,l,h;if(n)return!0;r=this.inlineMethods,c=r.length,i=this.inlineTokenizers,o=-1,l=e.length;for(;++o`\\u0000-\\u0020]+|'[^']*'|\"[^\"]*\"))?)*\\s*\\/?>",i="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>";e.openCloseTag=new RegExp("^(?:"+r+"|"+i+")"),e.tag=new RegExp("^(?:"+r+"|"+i+"|\x3c!----\x3e|\x3c!--(?:-?[^>-])(?:-?[^-])*--\x3e|<[?].*?[?]>|]*>|)")},U6jy:function(t,e){t.exports=function(){for(var t={},e=0;e2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,u=e.renderers[t.type];void 0===t.position&&(t.position=n.node&&n.node.position||c);var f=t.position.start,l=[t.type,f.line,f.column,i].join("-");if(!o.isValidElementType(u))throw new Error("Renderer for type `".concat(t.type,"` not defined or is not renderable"));var h=s(t,l,e,u,n,i);return r.createElement(u,h,h.children||p()||void 0);function p(){return t.children&&t.children.map((function(n,r){return a(n,e,{node:t,props:h},r)}))}}function s(t,e,n,o,c,s){var f,l={key:e},h="string"===typeof o;n.sourcePos&&t.position&&(l["data-sourcepos"]=[(f=t.position).start.line,":",f.start.column,"-",f.end.line,":",f.end.column].map(String).join("")),n.rawSourcePos&&!h&&(l.sourcePosition=t.position),n.includeNodeIndex&&c.node&&c.node.children&&!h&&(l.index=c.node.children.indexOf(t),l.parentChildCount=c.node.children.length);var p=null!==t.identifier&&void 0!==t.identifier?n.definitions[t.identifier]||{}:null;switch(t.type){case"root":u(l,{className:n.className});break;case"text":l.nodeKey=e,l.children=t.value;break;case"heading":l.level=t.depth;break;case"list":l.start=t.start,l.ordered=t.ordered,l.tight=!t.loose,l.depth=t.depth;break;case"listItem":l.checked=t.checked,l.tight=!t.loose,l.ordered=t.ordered,l.index=t.index,l.children=function(t,e){if(t.loose)return t.children;if(e.node&&t.index>0&&e.node.children[t.index-1].loose)return t.children;return function(t){return t.children.reduce((function(t,e){return t.concat("paragraph"===e.type?e.children||[]:[e])}),[])}(t)}(t,c).map((function(e,r){return a(e,n,{node:t,props:l},r)}));break;case"definition":u(l,{identifier:t.identifier,title:t.title,url:t.url});break;case"code":u(l,{language:t.lang&&t.lang.split(/\s/,1)[0]});break;case"inlineCode":l.children=t.value,l.inline=!0;break;case"link":u(l,{title:t.title||void 0,target:"function"===typeof n.linkTarget?n.linkTarget(t.url,t.children,t.title):n.linkTarget,href:n.transformLinkUri?n.transformLinkUri(t.url,t.children,t.title):t.url});break;case"image":u(l,{alt:t.alt||void 0,title:t.title||void 0,src:n.transformImageUri?n.transformImageUri(t.url,t.children,t.title,t.alt):t.url});break;case"linkReference":u(l,i(p,{href:n.transformLinkUri?n.transformLinkUri(p.href):p.href}));break;case"imageReference":u(l,{src:n.transformImageUri&&p.href?n.transformImageUri(p.href,t.children,p.title,t.alt):p.href,title:p.title||void 0,alt:t.alt||void 0});break;case"table":case"tableHead":case"tableBody":l.columnAlignment=t.align;break;case"tableRow":l.isHeader="tableHead"===c.node.type,l.columnAlignment=c.props.columnAlignment;break;case"tableCell":u(l,{isHeader:c.props.isHeader,align:c.props.columnAlignment[s]});break;case"virtualHtml":l.tag=t.tag;break;case"html":l.isBlock=t.position.start.line!==t.position.end.line,l.escapeHtml=n.escapeHtml,l.skipHtml=n.skipHtml;break;case"parsedHtml":var d;t.children&&(d=t.children.map((function(e,r){return a(e,n,{node:t,props:l},r)}))),l.escapeHtml=n.escapeHtml,l.skipHtml=n.skipHtml,l.element=function(t,e){var n=t.element;if(Array.isArray(n)){var i=r.Fragment||"div";return r.createElement(i,null,n)}if(n.props.children||e){var o=r.Children.toArray(n.props.children).concat(e);return r.cloneElement(n,null,o)}return r.cloneElement(n,null)}(t,d);break;default:u(l,i(t,{type:void 0,position:void 0,children:void 0}))}return!h&&t.value&&(l.value=t.value),l}function u(t,e){for(var n in e)"undefined"!==typeof e[n]&&(t[n]=e[n])}t.exports=a},VRSw:function(t,e,n){"use strict";var r=n("1iAE"),i=n("afWh"),o=n("TjP8").tag;t.exports=s,s.locator=i;var c=/^/i;function s(t,e,n){var i,s,u=e.length;if(!("<"!==e.charAt(0)||u<3)&&(i=e.charAt(1),(r(i)||"?"===i||"!"===i||"/"===i)&&(s=e.match(o))))return!!n||(s=s[0],!this.inLink&&c.test(s)?this.inLink=!0:this.inLink&&a.test(s)&&(this.inLink=!1),t(s)({type:"html",value:s}))}},"VSQ+":function(t,e,n){"use strict";t.exports=function(t,e){var n,i=r.length,o=-1,c=-1;if(!this.options.gfm)return-1;for(;++o|$))/i,/<\/(script|pre|style)>/i,!0],[/^/,!0],[/^<\?/,/\?>/,!0],[/^/,!0],[/^/,!0],[new RegExp("^|$))","i"),/^$/,!0],[new RegExp(r.source+"\\s*$"),/^$/,!1]];for(;p=48&&e<=57}},ZWk2:function(t,e,n){"use strict";var r=n("m2n9"),i=n("Z87L"),o=n("ZONP"),c=n("fjrl"),a=n("J5yW"),s=n("WtKE");t.exports=function(t,e){var n,o,c={};e||(e={});for(o in h)n=e[o],c[o]=null===n||void 0===n?h[o]:n;(c.position.indent||c.position.start)&&(c.indent=c.position.indent||[],c.position=c.position.start);return function(t,e){var n,o,c,h,A,x,w,O,j,E,T,S,P,C,I,L,H,z,B,N=e.additional,R=e.nonTerminated,_=e.text,U=e.reference,M=e.warning,q=e.textContext,Z=e.referenceContext,$=e.warningContext,F=e.position,W=e.indent||[],J=t.length,K=0,V=-1,X=F.column||1,D=F.line||1,G="",Q=[];"string"===typeof N&&(N=N.charCodeAt(0));L=Y(),O=M?tt:l,K--,J++;for(;++K65535&&(E+=f((x-=65536)>>>10|55296),x=56320|1023&x),x=E+f(x))):C!==p&&O(4,z)),x?(et(),L=Y(),K=B-1,X+=B-P+1,Q.push(x),(H=Y()).offset++,U&&U.call(Z,x,{start:L,end:H},t.slice(P-1,B)),L=H):(h=t.slice(P-1,B),G+=h,X+=h.length,K=B-1)}else 10===A&&(D++,V++,X=0),A===A?(G+=f(A),X++):et();return Q.join("");function Y(){return{line:D,column:X,offset:K+(F.offset||0)}}function tt(t,e){var n=Y();n.column+=e,n.offset+=e,M.call($,y[t],n,t)}function et(){G&&(Q.push(G),_&&_.call(q,G,{start:L,end:Y()}),G="")}}(t,c)};var u={}.hasOwnProperty,f=String.fromCharCode,l=Function.prototype,h={warning:null,reference:null,text:null,warningContext:null,referenceContext:null,textContext:null,position:{},additional:null,attribute:!1,nonTerminated:!0},p="named",d="hexadecimal",m="decimal",g={hexadecimal:16,decimal:10},v={};v[p]=a,v[m]=o,v[d]=c;var y={};function b(t){return t>=55296&&t<=57343||t>1114111}function k(t){return t>=1&&t<=8||11===t||t>=13&&t<=31||t>=127&&t<=159||t>=64976&&t<=65007||65535===(65535&t)||65534===(65535&t)}y[1]="Named character references must be terminated by a semicolon",y[2]="Numeric character references must be terminated by a semicolon",y[3]="Named character references cannot be empty",y[4]="Numeric character references cannot be empty",y[5]="Named character references must be known",y[6]="Numeric character references cannot be disallowed",y[7]="Numeric character references cannot be outside the permissible Unicode range"},Zasy:function(t,e,n){"use strict";function r(t){if("string"===typeof t)return function(t){return e;function e(e){return Boolean(e&&e.type===t)}}(t);if(null===t||void 0===t)return c;if("object"===typeof t)return("length"in t?o:i)(t);if("function"===typeof t)return t;throw new Error("Expected function, string, or object as test")}function i(t){return function(e){var n;for(n in t)if(e[n]!==t[n])return!1;return!0}}function o(t){var e=function(t){for(var e=[],n=t.length,i=-1;++i0&&c.indente&&" "===t.charAt(n-1);)n--;return n}},afWh:function(t,e,n){"use strict";t.exports=function(t,e){return t.indexOf("<",e)}},bY2E:function(t,e,n){"use strict";var r=n("RsFJ"),i=n("obXZ"),o=n("IPAr"),c=n("CRs9");t.exports=a,a.locator=c;function a(t,e,n){var c,a,s,u,f,l,h,p=0,d=e.charAt(p);if(("*"===d||"_"===d)&&(a=this.options.pedantic,f=d,s=d,l=e.length,p++,u="",d="",!a||!o(e.charAt(p))))for(;p$/i,c=/^<(\/?)([a-z]+)\s*>$/;t.exports=function(t){var e,n;return r(t,"html",(function(t,r,a){n!==a&&(e=[],n=a);var s=function(t){var e=t.value.match(o);return!!e&&e[1]}(t);if(s)return a.children.splice(r,1,{type:"virtualHtml",tag:s,position:t.position}),!0;var u=function(t,e){var n=t.value.match(c);return!!n&&{tag:n[2],opening:!n[1],node:t}}(t);if(!u)return!0;var f=function(t,e){var n=t.length;for(;n--;)if(t[n].tag===e)return t.splice(n,1)[0];return!1}(e,u.tag);return f?a.children.splice(r,0,function(t,e,n){var r=n.children.indexOf(t.node),o=n.children.indexOf(e.node),c=n.children.splice(r,o-r+1).slice(1,-1);return{type:i,children:c,tag:t.tag,position:{start:t.node.position.start,end:e.node.position.end,indent:[]}}}(u,f,a)):u.opening||e.push(u),!0}),!0),t}},"ec/5":function(t,e,n){"use strict";var r=n("IPAr"),i=n("kaWx");t.exports=c,c.notInList=!0,c.notInBlock=!0;var o=/^( {4}|\t)?/gm;function c(t,e,n){var c,a,s,u,f,l,h,p,d,m,g,v,y=this.offset;if(this.options.footnotes){for(c=0,a=e.length,s="",u=t.now(),f=u.line;c=97&&e<=102||e>=65&&e<=70||e>=48&&e<=57}},h9ck:function(t,e,n){"use strict";e.HtmlParser="undefined"===typeof Symbol?"__RMD_HTML_PARSER__":Symbol("__RMD_HTML_PARSER__")},jWrk:function(t,e,n){"use strict";var r=n("IPAr"),i=n("EmYC");t.exports=s,s.locator=i;var o={}.hasOwnProperty,c={'"':'"',"'":"'"},a={};function s(t,e,n){var i,s,u,f,l,h,p,d,m,g,v,y,b,k,A,x,w,O,j,E="",T=0,S=e.charAt(0),P=this.options.pedantic,C=this.options.commonmark,I=this.options.gfm;if("!"===S&&(m=!0,E=S,S=e.charAt(++T)),"["===S&&(m||!this.inLink)){for(E+=S,A="",T++,y=e.length,k=0,(w=t.now()).column+=T,w.offset+=T;T=u&&(u=0):u=s}else if("\\"===S)T++,h+=e.charAt(T);else if(u&&!I||"["!==S){if((!u||I)&&"]"===S){if(!k){if(!P)for(;T"!==(S=e.charAt(T));){if(C&&"\n"===S)return;A+=S,T++}if(">"!==e.charAt(T))return;E+="<"+A+">",x=A,T++}else{for(S=null,h="";T","Iacute":"\xcd","Icirc":"\xce","Igrave":"\xcc","Iuml":"\xcf","LT":"<","Ntilde":"\xd1","Oacute":"\xd3","Ocirc":"\xd4","Ograve":"\xd2","Oslash":"\xd8","Otilde":"\xd5","Ouml":"\xd6","QUOT":"\\"","REG":"\xae","THORN":"\xde","Uacute":"\xda","Ucirc":"\xdb","Ugrave":"\xd9","Uuml":"\xdc","Yacute":"\xdd","aacute":"\xe1","acirc":"\xe2","acute":"\xb4","aelig":"\xe6","agrave":"\xe0","amp":"&","aring":"\xe5","atilde":"\xe3","auml":"\xe4","brvbar":"\xa6","ccedil":"\xe7","cedil":"\xb8","cent":"\xa2","copy":"\xa9","curren":"\xa4","deg":"\xb0","divide":"\xf7","eacute":"\xe9","ecirc":"\xea","egrave":"\xe8","eth":"\xf0","euml":"\xeb","frac12":"\xbd","frac14":"\xbc","frac34":"\xbe","gt":">","iacute":"\xed","icirc":"\xee","iexcl":"\xa1","igrave":"\xec","iquest":"\xbf","iuml":"\xef","laquo":"\xab","lt":"<","macr":"\xaf","micro":"\xb5","middot":"\xb7","nbsp":"\xa0","not":"\xac","ntilde":"\xf1","oacute":"\xf3","ocirc":"\xf4","ograve":"\xf2","ordf":"\xaa","ordm":"\xba","oslash":"\xf8","otilde":"\xf5","ouml":"\xf6","para":"\xb6","plusmn":"\xb1","pound":"\xa3","quot":"\\"","raquo":"\xbb","reg":"\xae","sect":"\xa7","shy":"\xad","sup1":"\xb9","sup2":"\xb2","sup3":"\xb3","szlig":"\xdf","thorn":"\xfe","times":"\xd7","uacute":"\xfa","ucirc":"\xfb","ugrave":"\xf9","uml":"\xa8","uuml":"\xfc","yacute":"\xfd","yen":"\xa5","yuml":"\xff"}')},my8H:function(t,e,n){"use strict";t.exports=function(t){var e,n=0,i=0,o=t.charAt(n),c={};for(;o in r;)i+=e=r[o],e>1&&(i=Math.floor(i/e)*e),c[i]=n,o=t.charAt(++n);return{indent:i,stops:c}};var r={" ":1,"\t":4}},nLKB:function(t,e,n){"use strict";var r=n("U6jy"),i=n("MQ5/"),o=n("0lR2");t.exports=function(t){var e,n,c=this.options;if(null==t)t={};else{if("object"!==typeof t)throw new Error("Invalid value `"+t+"` for setting `options`");t=r(t)}for(e in o){if(null==(n=t[e])&&(n=c[e]),"blocks"!==e&&"boolean"!==typeof n||"blocks"===e&&"object"!==typeof n)throw new Error("Invalid value `"+n+"` for setting `options."+e+"`");t[e]=n}return this.options=t,this.escape=i(t),this}},nc5S:function(t,e,n){"use strict";t.exports=i;var r=n("Zasy");function i(t,e,n,i){var c;function a(t,r,s){var u,f=[];return(e&&!c(t,r,s[s.length-1]||null)||false!==(f=o(n(t,s)))[0])&&t.children&&"skip"!==f[0]&&false===(u=o(function(t,e){var n,r=-1,o=i?-1:1,c=(i?t.length:r)+o;for(;c>r&&c=3&&(!r||"\n"===r)?(u+=c,!!n||t(u)({type:"thematicBreak"})):void 0;c+=r}}},qT12:function(t,e,n){"use strict";var r="function"===typeof Symbol&&Symbol.for,i=r?Symbol.for("react.element"):60103,o=r?Symbol.for("react.portal"):60106,c=r?Symbol.for("react.fragment"):60107,a=r?Symbol.for("react.strict_mode"):60108,s=r?Symbol.for("react.profiler"):60114,u=r?Symbol.for("react.provider"):60109,f=r?Symbol.for("react.context"):60110,l=r?Symbol.for("react.async_mode"):60111,h=r?Symbol.for("react.concurrent_mode"):60111,p=r?Symbol.for("react.forward_ref"):60112,d=r?Symbol.for("react.suspense"):60113,m=r?Symbol.for("react.suspense_list"):60120,g=r?Symbol.for("react.memo"):60115,v=r?Symbol.for("react.lazy"):60116,y=r?Symbol.for("react.block"):60121,b=r?Symbol.for("react.fundamental"):60117,k=r?Symbol.for("react.responder"):60118,A=r?Symbol.for("react.scope"):60119;function x(t){if("object"===typeof t&&null!==t){var e=t.$$typeof;switch(e){case i:switch(t=t.type){case l:case h:case c:case s:case a:case d:return t;default:switch(t=t&&t.$$typeof){case f:case p:case v:case g:case u:return t;default:return e}}case o:return e}}}function w(t){return x(t)===h}e.AsyncMode=l,e.ConcurrentMode=h,e.ContextConsumer=f,e.ContextProvider=u,e.Element=i,e.ForwardRef=p,e.Fragment=c,e.Lazy=v,e.Memo=g,e.Portal=o,e.Profiler=s,e.StrictMode=a,e.Suspense=d,e.isAsyncMode=function(t){return w(t)||x(t)===l},e.isConcurrentMode=w,e.isContextConsumer=function(t){return x(t)===f},e.isContextProvider=function(t){return x(t)===u},e.isElement=function(t){return"object"===typeof t&&null!==t&&t.$$typeof===i},e.isForwardRef=function(t){return x(t)===p},e.isFragment=function(t){return x(t)===c},e.isLazy=function(t){return x(t)===v},e.isMemo=function(t){return x(t)===g},e.isPortal=function(t){return x(t)===o},e.isProfiler=function(t){return x(t)===s},e.isStrictMode=function(t){return x(t)===a},e.isSuspense=function(t){return x(t)===d},e.isValidElementType=function(t){return"string"===typeof t||"function"===typeof t||t===c||t===h||t===s||t===a||t===d||t===m||"object"===typeof t&&null!==t&&(t.$$typeof===v||t.$$typeof===g||t.$$typeof===u||t.$$typeof===f||t.$$typeof===p||t.$$typeof===b||t.$$typeof===k||t.$$typeof===A||t.$$typeof===y)},e.typeOf=x},tGWH:function(t,e,n){"use strict";var r=n("RsFJ"),i=n("RjOF"),o=n("ZONP"),c=n("my8H"),a=n("Zpkj"),s=n("KJAg");t.exports=function(t,e,n){var i,c,a,u,f,l,h,p,y,b,k,A,x,w,O,j,E,T,S,P,C,I,L,H,z=this.options.commonmark,B=this.options.pedantic,N=this.blockTokenizers,R=this.interruptList,_=0,U=e.length,M=null,q=0;for(;_=4)return;if(u=e.charAt(_),i=z?g:m,!0===d[u])f=u,a=!1;else{for(a=!0,c="";_=4&&(H=!0),E&&q>=E.indent&&(H=!0),u=e.charAt(_),y=null,!H){if(!0===d[u])y=u,_++,q++;else{for(c="";_=E.indent||q>4):H=!0,p=!1,_=h;if(k=e.slice(h,l),b=h===_?k:e.slice(_,l),("*"===y||"_"===y||"-"===y)&&N.thematicBreak.call(this,t,k,!0))break;if(A=x,x=!r(b).length,H&&E)E.value=E.value.concat(j,k),O=O.concat(j,k),j=[];else if(p)0!==j.length&&(E.value.push(""),E.trail=j.concat()),E={value:[k],indent:q,trail:[]},w.push(E),O=O.concat(j,k),j=[];else if(x){if(A)break;j.push(k)}else{if(A)break;if(s(R,N,this,[t,k,!0]))break;E.value=E.value.concat(j,k),O=O.concat(j,k),j=[]}_=l+1}C=t(O.join("\n")).reset({type:"list",ordered:a,start:M,loose:null,children:[]}),T=this.enterList(),S=this.enterBlock(),P=!1,_=-1,U=w.length;for(;++_=0;r--){var i=t[r];"."===i?t.splice(r,1):".."===i?(t.splice(r,1),n++):n&&(t.splice(r,1),n--)}if(e)for(;n--;n)t.unshift("..");return t}function r(t,e){if(t.filter)return t.filter(e);for(var n=[],r=0;r=-1&&!i;o--){var c=o>=0?arguments[o]:t.cwd();if("string"!==typeof c)throw new TypeError("Arguments to path.resolve must be strings");c&&(e=c+"/"+e,i="/"===c.charAt(0))}return(i?"/":"")+(e=n(r(e.split("/"),(function(t){return!!t})),!i).join("/"))||"."},e.normalize=function(t){var o=e.isAbsolute(t),c="/"===i(t,-1);return(t=n(r(t.split("/"),(function(t){return!!t})),!o).join("/"))||o||(t="."),t&&c&&(t+="/"),(o?"/":"")+t},e.isAbsolute=function(t){return"/"===t.charAt(0)},e.join=function(){var t=Array.prototype.slice.call(arguments,0);return e.normalize(r(t,(function(t,e){if("string"!==typeof t)throw new TypeError("Arguments to path.join must be strings");return t})).join("/"))},e.relative=function(t,n){function r(t){for(var e=0;e=0&&""===t[n];n--);return e>n?[]:t.slice(e,n-e+1)}t=e.resolve(t).substr(1),n=e.resolve(n).substr(1);for(var i=r(t.split("/")),o=r(n.split("/")),c=Math.min(i.length,o.length),a=c,s=0;s=1;--o)if(47===(e=t.charCodeAt(o))){if(!i){r=o;break}}else i=!1;return-1===r?n?"/":".":n&&1===r?"/":t.slice(0,r)},e.basename=function(t,e){var n=function(t){"string"!==typeof t&&(t+="");var e,n=0,r=-1,i=!0;for(e=t.length-1;e>=0;--e)if(47===t.charCodeAt(e)){if(!i){n=e+1;break}}else-1===r&&(i=!1,r=e+1);return-1===r?"":t.slice(n,r)}(t);return e&&n.substr(-1*e.length)===e&&(n=n.substr(0,n.length-e.length)),n},e.extname=function(t){"string"!==typeof t&&(t+="");for(var e=-1,n=0,r=-1,i=!0,o=0,c=t.length-1;c>=0;--c){var a=t.charCodeAt(c);if(47!==a)-1===r&&(i=!1,r=c+1),46===a?-1===e?e=c:1!==o&&(o=1):-1!==e&&(o=-1);else if(!i){n=c+1;break}}return-1===e||-1===r||0===o||1===o&&e===r-1&&e===n+1?"":t.slice(e,r)};var i="b"==="ab".substr(-1)?function(t,e,n){return t.substr(e,n)}:function(t,e,n){return e<0&&(e=t.length+e),t.substr(e,n)}}).call(this,n("8oxB"))},"u3i/":function(t,e,n){"use strict";var r=n("ZkSf");function i(t,e,n,r){if("remove"===r)n.children.splice(e,1);else if("unwrap"===r){var i=[e,1];t.children&&(i=i.concat(t.children)),Array.prototype.splice.apply(n.children,i)}}e.ofType=function(t,e){return function(e){return t.forEach((function(t){return r(e,t,n,!0)})),e};function n(t,n,r){r&&i(t,n,r,e)}},e.ifNotMatch=function(t,e){return function(t){return r(t,n,!0),t};function n(n,r,o){o&&!t(n,r,o)&&i(n,r,o,e)}}},ujgL:function(t,e,n){"use strict";var r=n("IPAr");t.exports=function(t,e,n){var i,o,c,a,s,u,f,l,h,p,d,m,g,v,y,b,k,A,x,w,O,j,E,T;if(!this.options.gfm)return;i=0,A=0,u=e.length+1,f=[];for(;ij){if(A<2)return;break}f.push(e.slice(i,j)),A++,i=j+1}a=f.join("\n"),o=f.splice(1,1)[0]||[],i=0,u=o.length,A--,c=!1,d=[];for(;i1&&(h?(a+=l.slice(0,l.length-1),l=l.charAt(l.length-1)):(a+=l,l="")),b=t.now(),t(a)({type:"tableCell",children:this.tokenizeInline(m,b)},s)),t(l+h),l="",m=""}else if(l&&(m+=l,l=""),m+=h,"\\"===h&&i!==u-2&&(m+=x.charAt(i+1),i++),"`"===h){for(v=1;x.charAt(i+1)===h;)m+=h,i++,v++;y?v>=y&&(y=0):y=v}g=!1,i++}else m?l+=h:t(h),i++;k||t("\n"+o)}return O}},uzq8:function(t,e,n){"use strict";t.exports=function(t,e,n){var r=[];"function"===typeof e&&(n=e,e=null);function i(t){var o;return e&&t.type!==e||(o=n(t,r.concat())),t.children&&!1!==o?function(t,e){var n,o=t.length,c=-1;r.push(e);for(;++c3)return!1;if("/"!==e[e.length-r.length-1])return!1}return!0},construct:function(t){var e=t,n=/\/([gim]*)$/.exec(t),r="";return"/"===e[0]&&(n&&(r=n[1]),e=e.slice(1,e.length-r.length-1)),new RegExp(e,r)},predicate:function(t){return"[object RegExp]"===Object.prototype.toString.call(t)},represent:function(t){var e="/"+t.source+"/";return t.global&&(e+="g"),t.multiline&&(e+="m"),t.ignoreCase&&(e+="i"),e}})},EOT6:function(t,e,n){"use strict";var r=n("3rKx");t.exports=new r({include:[n("rMOK")],implicit:[n("H+oK"),n("iFIo")],explicit:[n("mv/Q"),n("55eu"),n("jOok"),n("Xq5V")]})},Ej7k:function(t,e,n){"use strict";var r=n("NdRM");t.exports=new r("tag:yaml.org,2002:null",{kind:"scalar",resolve:function(t){if(null===t)return!0;var e=t.length;return 1===e&&"~"===t||4===e&&("null"===t||"Null"===t||"NULL"===t)},construct:function(){return null},predicate:function(t){return null===t},represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})},Ga6R:function(t,e,n){"use strict";function r(t){return"undefined"===typeof t||null===t}t.exports.isNothing=r,t.exports.isObject=function(t){return"object"===typeof t&&null!==t},t.exports.toArray=function(t){return Array.isArray(t)?t:r(t)?[]:[t]},t.exports.repeat=function(t,e){var n,r="";for(n=0;n0?a-4:a;for(n=0;n>16&255,u[f++]=e>>8&255,u[f++]=255&e;2===s&&(e=i[t.charCodeAt(n)]<<2|i[t.charCodeAt(n+1)]>>4,u[f++]=255&e);1===s&&(e=i[t.charCodeAt(n)]<<10|i[t.charCodeAt(n+1)]<<4|i[t.charCodeAt(n+2)]>>2,u[f++]=e>>8&255,u[f++]=255&e);return u},e.fromByteArray=function(t){for(var e,n=t.length,i=n%3,o=[],a=0,s=n-i;as?s:a+16383));1===i?(e=t[n-1],o.push(r[e>>2]+r[e<<4&63]+"==")):2===i&&(e=(t[n-2]<<8)+t[n-1],o.push(r[e>>10]+r[e>>4&63]+r[e<<2&63]+"="));return o.join("")};for(var r=[],i=[],o="undefined"!==typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,u=a.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var n=t.indexOf("=");return-1===n&&(n=e),[n,n===e?0:4-n%4]}function f(t,e,n){for(var i,o,a=[],s=e;s>18&63]+r[o>>12&63]+r[o>>6&63]+r[63&o]);return a.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},HDXh:function(t,e,n){"use strict";(function(t){var r=n("H7XF"),i=n("kVK+"),o=n("49sm");function a(){return u.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(t,e){if(a()=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|t}function d(t,e){if(u.isBuffer(t))return t.length;if("undefined"!==typeof ArrayBuffer&&"function"===typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!==typeof t&&(t=""+t);var n=t.length;if(0===n)return 0;for(var r=!1;;)switch(e){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return Y(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return D(t).length;default:if(r)return Y(t).length;e=(""+e).toLowerCase(),r=!0}}function g(t,e,n){var r=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return I(this,e,n);case"utf8":case"utf-8":return S(this,e,n);case"ascii":return k(this,e,n);case"latin1":case"binary":return _(this,e,n);case"base64":return O(this,e,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,e,n);default:if(r)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),r=!0}}function y(t,e,n){var r=t[e];t[e]=t[n],t[n]=r}function m(t,e,n,r,i){if(0===t.length)return-1;if("string"===typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=i?0:t.length-1),n<0&&(n=t.length+n),n>=t.length){if(i)return-1;n=t.length-1}else if(n<0){if(!i)return-1;n=0}if("string"===typeof e&&(e=u.from(e,r)),u.isBuffer(e))return 0===e.length?-1:w(t,e,n,r,i);if("number"===typeof e)return e&=255,u.TYPED_ARRAY_SUPPORT&&"function"===typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,n):Uint8Array.prototype.lastIndexOf.call(t,e,n):w(t,[e],n,r,i);throw new TypeError("val must be string, number or Buffer")}function w(t,e,n,r,i){var o,a=1,s=t.length,u=e.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(t.length<2||e.length<2)return-1;a=2,s/=2,u/=2,n/=2}function c(t,e){return 1===a?t[e]:t.readUInt16BE(e*a)}if(i){var f=-1;for(o=n;os&&(n=s-u),o=n;o>=0;o--){for(var l=!0,p=0;pi&&(r=i):r=i;var o=e.length;if(o%2!==0)throw new TypeError("Invalid hex string");r>o/2&&(r=o/2);for(var a=0;a>8,i=n%256,o.push(i),o.push(r);return o}(e,t.length-n),t,n,r)}function O(t,e,n){return 0===e&&n===t.length?r.fromByteArray(t):r.fromByteArray(t.slice(e,n))}function S(t,e,n){n=Math.min(t.length,n);for(var r=[],i=e;i239?4:c>223?3:c>191?2:1;if(i+l<=n)switch(l){case 1:c<128&&(f=c);break;case 2:128===(192&(o=t[i+1]))&&(u=(31&c)<<6|63&o)>127&&(f=u);break;case 3:o=t[i+1],a=t[i+2],128===(192&o)&&128===(192&a)&&(u=(15&c)<<12|(63&o)<<6|63&a)>2047&&(u<55296||u>57343)&&(f=u);break;case 4:o=t[i+1],a=t[i+2],s=t[i+3],128===(192&o)&&128===(192&a)&&128===(192&s)&&(u=(15&c)<<18|(63&o)<<12|(63&a)<<6|63&s)>65535&&u<1114112&&(f=u)}null===f?(f=65533,l=1):f>65535&&(f-=65536,r.push(f>>>10&1023|55296),f=56320|1023&f),r.push(f),i+=l}return function(t){var e=t.length;if(e<=4096)return String.fromCharCode.apply(String,t);var n="",r=0;for(;r0&&(t=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(t+=" ... ")),""},u.prototype.compare=function(t,e,n,r,i){if(!u.isBuffer(t))throw new TypeError("Argument must be a Buffer");if(void 0===e&&(e=0),void 0===n&&(n=t?t.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),e<0||n>t.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&e>=n)return 0;if(r>=i)return-1;if(e>=n)return 1;if(this===t)return 0;for(var o=(i>>>=0)-(r>>>=0),a=(n>>>=0)-(e>>>=0),s=Math.min(o,a),c=this.slice(r,i),f=t.slice(e,n),l=0;li)&&(n=i),t.length>0&&(n<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var o=!1;;)switch(r){case"hex":return v(this,t,e,n);case"utf8":case"utf-8":return b(this,t,e,n);case"ascii":return A(this,t,e,n);case"latin1":case"binary":return x(this,t,e,n);case"base64":return E(this,t,e,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return C(this,t,e,n);default:if(o)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),o=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function k(t,e,n){var r="";n=Math.min(t.length,n);for(var i=e;ir)&&(n=r);for(var i="",o=e;on)throw new RangeError("Trying to access beyond buffer length")}function T(t,e,n,r,i,o){if(!u.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||et.length)throw new RangeError("Index out of range")}function M(t,e,n,r){e<0&&(e=65535+e+1);for(var i=0,o=Math.min(t.length-n,2);i>>8*(r?i:1-i)}function P(t,e,n,r){e<0&&(e=4294967295+e+1);for(var i=0,o=Math.min(t.length-n,4);i>>8*(r?i:3-i)&255}function N(t,e,n,r,i,o){if(n+r>t.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function L(t,e,n,r,o){return o||N(t,0,n,4),i.write(t,e,n,r,23,4),n+4}function F(t,e,n,r,o){return o||N(t,0,n,8),i.write(t,e,n,r,52,8),n+8}u.prototype.slice=function(t,e){var n,r=this.length;if((t=~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),(e=void 0===e?r:~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),e0&&(i*=256);)r+=this[t+--e]*i;return r},u.prototype.readUInt8=function(t,e){return e||j(t,1,this.length),this[t]},u.prototype.readUInt16LE=function(t,e){return e||j(t,2,this.length),this[t]|this[t+1]<<8},u.prototype.readUInt16BE=function(t,e){return e||j(t,2,this.length),this[t]<<8|this[t+1]},u.prototype.readUInt32LE=function(t,e){return e||j(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},u.prototype.readUInt32BE=function(t,e){return e||j(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},u.prototype.readIntLE=function(t,e,n){t|=0,e|=0,n||j(t,e,this.length);for(var r=this[t],i=1,o=0;++o=(i*=128)&&(r-=Math.pow(2,8*e)),r},u.prototype.readIntBE=function(t,e,n){t|=0,e|=0,n||j(t,e,this.length);for(var r=e,i=1,o=this[t+--r];r>0&&(i*=256);)o+=this[t+--r]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*e)),o},u.prototype.readInt8=function(t,e){return e||j(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},u.prototype.readInt16LE=function(t,e){e||j(t,2,this.length);var n=this[t]|this[t+1]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt16BE=function(t,e){e||j(t,2,this.length);var n=this[t+1]|this[t]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt32LE=function(t,e){return e||j(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},u.prototype.readInt32BE=function(t,e){return e||j(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},u.prototype.readFloatLE=function(t,e){return e||j(t,4,this.length),i.read(this,t,!0,23,4)},u.prototype.readFloatBE=function(t,e){return e||j(t,4,this.length),i.read(this,t,!1,23,4)},u.prototype.readDoubleLE=function(t,e){return e||j(t,8,this.length),i.read(this,t,!0,52,8)},u.prototype.readDoubleBE=function(t,e){return e||j(t,8,this.length),i.read(this,t,!1,52,8)},u.prototype.writeUIntLE=function(t,e,n,r){(t=+t,e|=0,n|=0,r)||T(this,t,e,n,Math.pow(2,8*n)-1,0);var i=1,o=0;for(this[e]=255&t;++o=0&&(o*=256);)this[e+i]=t/o&255;return e+n},u.prototype.writeUInt8=function(t,e,n){return t=+t,e|=0,n||T(this,t,e,1,255,0),u.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},u.prototype.writeUInt16LE=function(t,e,n){return t=+t,e|=0,n||T(this,t,e,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):M(this,t,e,!0),e+2},u.prototype.writeUInt16BE=function(t,e,n){return t=+t,e|=0,n||T(this,t,e,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):M(this,t,e,!1),e+2},u.prototype.writeUInt32LE=function(t,e,n){return t=+t,e|=0,n||T(this,t,e,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):P(this,t,e,!0),e+4},u.prototype.writeUInt32BE=function(t,e,n){return t=+t,e|=0,n||T(this,t,e,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):P(this,t,e,!1),e+4},u.prototype.writeIntLE=function(t,e,n,r){if(t=+t,e|=0,!r){var i=Math.pow(2,8*n-1);T(this,t,e,n,i-1,-i)}var o=0,a=1,s=0;for(this[e]=255&t;++o>0)-s&255;return e+n},u.prototype.writeIntBE=function(t,e,n,r){if(t=+t,e|=0,!r){var i=Math.pow(2,8*n-1);T(this,t,e,n,i-1,-i)}var o=n-1,a=1,s=0;for(this[e+o]=255&t;--o>=0&&(a*=256);)t<0&&0===s&&0!==this[e+o+1]&&(s=1),this[e+o]=(t/a>>0)-s&255;return e+n},u.prototype.writeInt8=function(t,e,n){return t=+t,e|=0,n||T(this,t,e,1,127,-128),u.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},u.prototype.writeInt16LE=function(t,e,n){return t=+t,e|=0,n||T(this,t,e,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):M(this,t,e,!0),e+2},u.prototype.writeInt16BE=function(t,e,n){return t=+t,e|=0,n||T(this,t,e,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):M(this,t,e,!1),e+2},u.prototype.writeInt32LE=function(t,e,n){return t=+t,e|=0,n||T(this,t,e,4,2147483647,-2147483648),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):P(this,t,e,!0),e+4},u.prototype.writeInt32BE=function(t,e,n){return t=+t,e|=0,n||T(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):P(this,t,e,!1),e+4},u.prototype.writeFloatLE=function(t,e,n){return L(this,t,e,!0,n)},u.prototype.writeFloatBE=function(t,e,n){return L(this,t,e,!1,n)},u.prototype.writeDoubleLE=function(t,e,n){return F(this,t,e,!0,n)},u.prototype.writeDoubleBE=function(t,e,n){return F(this,t,e,!1,n)},u.prototype.copy=function(t,e,n,r){if(n||(n=0),r||0===r||(r=this.length),e>=t.length&&(e=t.length),e||(e=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),t.length-e=0;--i)t[i+e]=this[i+n];else if(o<1e3||!u.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,n=void 0===n?this.length:n>>>0,t||(t=0),"number"===typeof t)for(o=e;o55295&&n<57344){if(!i){if(n>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(a+1===r){(e-=3)>-1&&o.push(239,191,189);continue}i=n;continue}if(n<56320){(e-=3)>-1&&o.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,n<128){if((e-=1)<0)break;o.push(n)}else if(n<2048){if((e-=2)<0)break;o.push(n>>6|192,63&n|128)}else if(n<65536){if((e-=3)<0)break;o.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;o.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return o}function D(t){return r.toByteArray(function(t){if((t=function(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}(t).replace(U,"")).length<2)return"";for(;t.length%4!==0;)t+="=";return t}(t))}function K(t,e,n,r){for(var i=0;i=e.length||i>=t.length);++i)e[i+n]=t[i];return i}}).call(this,n("yLpj"))},"HaE+":function(t,e,n){"use strict";function r(t,e,n,r,i,o,a){try{var s=t[o](a),u=s.value}catch(c){return void n(c)}s.done?e(u):Promise.resolve(u).then(r,i)}function i(t){return function(){var e=this,n=arguments;return new Promise((function(i,o){var a=t.apply(e,n);function s(t){r(a,i,o,s,u,"next",t)}function u(t){r(a,i,o,s,u,"throw",t)}s(void 0)}))}}n.d(e,"a",(function(){return i}))},KFpJ:function(t,e,n){"use strict";var r=n("NdRM");t.exports=new r("tag:yaml.org,2002:map",{kind:"mapping",construct:function(t){return null!==t?t:{}}})},Lgts:function(t,e,n){"use strict";var r=n("NdRM");t.exports=new r("tag:yaml.org,2002:bool",{kind:"scalar",resolve:function(t){if(null===t)return!1;var e=t.length;return 4===e&&("true"===t||"True"===t||"TRUE"===t)||5===e&&("false"===t||"False"===t||"FALSE"===t)},construct:function(t){return"true"===t||"True"===t||"TRUE"===t},predicate:function(t){return"[object Boolean]"===Object.prototype.toString.call(t)},represent:{lowercase:function(t){return t?"true":"false"},uppercase:function(t){return t?"TRUE":"FALSE"},camelcase:function(t){return t?"True":"False"}},defaultStyle:"lowercase"})},NGCR:function(t,e,n){"use strict";var r=n("3rKx");t.exports=new r({include:[n("gWvi")],implicit:[n("Ej7k"),n("Lgts"),n("gCGJ"),n("eW+f")]})},NdRM:function(t,e,n){"use strict";var r=n("XCGq"),i=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],o=["scalar","sequence","mapping"];t.exports=function(t,e){if(e=e||{},Object.keys(e).forEach((function(e){if(-1===i.indexOf(e))throw new r('Unknown option "'+e+'" is met in definition of "'+t+'" YAML type.')})),this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(t){return t},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=function(t){var e={};return null!==t&&Object.keys(t).forEach((function(n){t[n].forEach((function(t){e[String(t)]=n}))})),e}(e.styleAliases||null),-1===o.indexOf(this.kind))throw new r('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}},PMAo:function(t,e,n){"use strict";var r=n("Ga6R"),i=n("XCGq"),o=n("uOdg"),a=n("EOT6"),s=n("YJCK"),u=Object.prototype.hasOwnProperty,c=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,f=/[\x85\u2028\u2029]/,l=/[,\[\]\{\}]/,p=/^(?:!|!!|![a-z\-]+!)$/i,h=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function d(t){return Object.prototype.toString.call(t)}function g(t){return 10===t||13===t}function y(t){return 9===t||32===t}function m(t){return 9===t||32===t||10===t||13===t}function w(t){return 44===t||91===t||93===t||123===t||125===t}function v(t){var e;return 48<=t&&t<=57?t-48:97<=(e=32|t)&&e<=102?e-97+10:-1}function b(t){return 48===t?"\0":97===t?"\x07":98===t?"\b":116===t||9===t?"\t":110===t?"\n":118===t?"\v":102===t?"\f":114===t?"\r":101===t?"\x1b":32===t?" ":34===t?'"':47===t?"/":92===t?"\\":78===t?"\x85":95===t?"\xa0":76===t?"\u2028":80===t?"\u2029":""}function A(t){return t<=65535?String.fromCharCode(t):String.fromCharCode(55296+(t-65536>>10),56320+(t-65536&1023))}for(var x=new Array(256),E=new Array(256),C=0;C<256;C++)x[C]=b(C)?1:0,E[C]=b(C);function O(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||s,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function S(t,e){return new i(e,new o(t.filename,t.input,t.position,t.line,t.position-t.lineStart))}function k(t,e){throw S(t,e)}function _(t,e){t.onWarning&&t.onWarning.call(null,S(t,e))}var I={YAML:function(t,e,n){var r,i,o;null!==t.version&&k(t,"duplication of %YAML directive"),1!==n.length&&k(t,"YAML directive accepts exactly one argument"),null===(r=/^([0-9]+)\.([0-9]+)$/.exec(n[0]))&&k(t,"ill-formed argument of the YAML directive"),i=parseInt(r[1],10),o=parseInt(r[2],10),1!==i&&k(t,"unacceptable YAML version of the document"),t.version=n[0],t.checkLineBreaks=o<2,1!==o&&2!==o&&_(t,"unsupported YAML version of the document")},TAG:function(t,e,n){var r,i;2!==n.length&&k(t,"TAG directive accepts exactly two arguments"),r=n[0],i=n[1],p.test(r)||k(t,"ill-formed tag handle (first argument) of the TAG directive"),u.call(t.tagMap,r)&&k(t,'there is a previously declared suffix for "'+r+'" tag handle'),h.test(i)||k(t,"ill-formed tag prefix (second argument) of the TAG directive"),t.tagMap[r]=i}};function R(t,e,n,r){var i,o,a,s;if(e1&&(t.result+=r.repeat("\n",e-1))}function F(t,e){var n,r,i=t.tag,o=t.anchor,a=[],s=!1;for(null!==t.anchor&&(t.anchorMap[t.anchor]=a),r=t.input.charCodeAt(t.position);0!==r&&45===r&&m(t.input.charCodeAt(t.position+1));)if(s=!0,t.position++,P(t,!0,-1)&&t.lineIndent<=e)a.push(null),r=t.input.charCodeAt(t.position);else if(n=t.line,Y(t,e,3,!1,!0),a.push(t.result),P(t,!0,-1),r=t.input.charCodeAt(t.position),(t.line===n||t.lineIndent>e)&&0!==r)k(t,"bad indentation of a sequence entry");else if(t.lineIndente?b=1:t.lineIndent===e?b=0:t.lineIndente?b=1:t.lineIndent===e?b=0:t.lineIndente)&&(Y(t,e,4,!0,i)&&(g?h=t.result:d=t.result),g||(T(t,f,l,p,h,d,o,a),p=h=d=null),P(t,!0,-1),s=t.input.charCodeAt(t.position)),t.lineIndent>e&&0!==s)k(t,"bad indentation of a mapping entry");else if(t.lineIndent=0))break;0===o?k(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):f?k(t,"repeat of an indentation width identifier"):(l=e+o-1,f=!0)}if(y(a)){do{a=t.input.charCodeAt(++t.position)}while(y(a));if(35===a)do{a=t.input.charCodeAt(++t.position)}while(!g(a)&&0!==a)}for(;0!==a;){for(M(t),t.lineIndent=0,a=t.input.charCodeAt(t.position);(!f||t.lineIndentl&&(l=t.lineIndent),g(a))p++;else{if(t.lineIndent0){for(i=a,o=0;i>0;i--)(a=v(s=t.input.charCodeAt(++t.position)))>=0?o=(o<<4)+a:k(t,"expected hexadecimal character");t.result+=A(o),t.position++}else k(t,"unknown escape sequence");n=r=t.position}else g(s)?(R(t,n,r,!0),L(t,P(t,!1,e)),n=r=t.position):t.position===t.lineStart&&N(t)?k(t,"unexpected end of the document within a double quoted scalar"):(t.position++,r=t.position)}k(t,"unexpected end of the stream within a double quoted scalar")}(t,h)?O=!0:!function(t){var e,n,r;if(42!==(r=t.input.charCodeAt(t.position)))return!1;for(r=t.input.charCodeAt(++t.position),e=t.position;0!==r&&!m(r)&&!w(r);)r=t.input.charCodeAt(++t.position);return t.position===e&&k(t,"name of an alias node must contain at least one character"),n=t.input.slice(e,t.position),t.anchorMap.hasOwnProperty(n)||k(t,'unidentified alias "'+n+'"'),t.result=t.anchorMap[n],P(t,!0,-1),!0}(t)?function(t,e,n){var r,i,o,a,s,u,c,f,l=t.kind,p=t.result;if(m(f=t.input.charCodeAt(t.position))||w(f)||35===f||38===f||42===f||33===f||124===f||62===f||39===f||34===f||37===f||64===f||96===f)return!1;if((63===f||45===f)&&(m(r=t.input.charCodeAt(t.position+1))||n&&w(r)))return!1;for(t.kind="scalar",t.result="",i=o=t.position,a=!1;0!==f;){if(58===f){if(m(r=t.input.charCodeAt(t.position+1))||n&&w(r))break}else if(35===f){if(m(t.input.charCodeAt(t.position-1)))break}else{if(t.position===t.lineStart&&N(t)||n&&w(f))break;if(g(f)){if(s=t.line,u=t.lineStart,c=t.lineIndent,P(t,!1,-1),t.lineIndent>=e){a=!0,f=t.input.charCodeAt(t.position);continue}t.position=o,t.line=s,t.lineStart=u,t.lineIndent=c;break}}a&&(R(t,i,o,!1),L(t,t.line-s),i=o=t.position,a=!1),y(f)||(o=t.position+1),f=t.input.charCodeAt(++t.position)}return R(t,i,o,!1),!!t.result||(t.kind=l,t.result=p,!1)}(t,h,1===n)&&(O=!0,null===t.tag&&(t.tag="?")):(O=!0,null===t.tag&&null===t.anchor||k(t,"alias node should not have any properties")),null!==t.anchor&&(t.anchorMap[t.anchor]=t.result)):0===b&&(O=c&&F(t,d))),null!==t.tag&&"!"!==t.tag)if("?"===t.tag){for(f=0,l=t.implicitTypes.length;f tag; it should be "'+p.kind+'", not "'+t.kind+'"'),p.resolve(t.result)?(t.result=p.construct(t.result),null!==t.anchor&&(t.anchorMap[t.anchor]=t.result)):k(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")):k(t,"unknown tag !<"+t.tag+">");return null!==t.listener&&t.listener("close",t),null!==t.tag||null!==t.anchor||O}function D(t){var e,n,r,i,o=t.position,a=!1;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap={},t.anchorMap={};0!==(i=t.input.charCodeAt(t.position))&&(P(t,!0,-1),i=t.input.charCodeAt(t.position),!(t.lineIndent>0||37!==i));){for(a=!0,i=t.input.charCodeAt(++t.position),e=t.position;0!==i&&!m(i);)i=t.input.charCodeAt(++t.position);for(r=[],(n=t.input.slice(e,t.position)).length<1&&k(t,"directive name must not be less than one character in length");0!==i;){for(;y(i);)i=t.input.charCodeAt(++t.position);if(35===i){do{i=t.input.charCodeAt(++t.position)}while(0!==i&&!g(i));break}if(g(i))break;for(e=t.position;0!==i&&!m(i);)i=t.input.charCodeAt(++t.position);r.push(t.input.slice(e,t.position))}0!==i&&M(t),u.call(I,n)?I[n](t,n,r):_(t,'unknown document directive "'+n+'"')}P(t,!0,-1),0===t.lineIndent&&45===t.input.charCodeAt(t.position)&&45===t.input.charCodeAt(t.position+1)&&45===t.input.charCodeAt(t.position+2)?(t.position+=3,P(t,!0,-1)):a&&k(t,"directives end mark is expected"),Y(t,t.lineIndent-1,4,!1,!0),P(t,!0,-1),t.checkLineBreaks&&f.test(t.input.slice(o,t.position))&&_(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&N(t)?46===t.input.charCodeAt(t.position)&&(t.position+=3,P(t,!0,-1)):t.positionr&&" "!==t[l+1],l=o);else if(!y(a))return 5;p=p&&m(a)}c=c||f&&o-l-1>r&&" "!==t[l+1]}return u||c?n>9&&w(t)?5:c?4:3:p&&!i(t)?1:2}function b(t,e,n,r){t.dump=function(){if(0===e.length)return"''";if(!t.noCompatMode&&-1!==f.indexOf(e))return"'"+e+"'";var o=t.indent*Math.max(1,n),a=-1===t.lineWidth?-1:Math.max(Math.min(t.lineWidth,40),t.lineWidth-o),s=r||t.flowLevel>-1&&n>=t.flowLevel;switch(v(e,s,t.indent,a,(function(e){return function(t,e){var n,r;for(n=0,r=t.implicitTypes.length;n"+A(e,t.indent)+x(h(function(t,e){var n,r,i=/(\n+)([^\n]*)/g,o=function(){var n=t.indexOf("\n");return n=-1!==n?n:t.length,i.lastIndex=n,E(t.slice(0,n),e)}(),a="\n"===t[0]||" "===t[0];for(;r=i.exec(t);){var s=r[1],u=r[2];n=" "===u[0],o+=s+(a||n||""===u?"":"\n")+E(u,e),a=n}return o}(e,a),o));case 5:return'"'+function(t){for(var e,n,r,i="",o=0;o=55296&&e<=56319&&(n=t.charCodeAt(o+1))>=56320&&n<=57343?(i+=l(1024*(e-55296)+n-56320+65536),o++):i+=!(r=c[e])&&y(e)?t[o]:r||l(e);return i}(e)+'"';default:throw new i("impossible error: invalid scalar style")}}()}function A(t,e){var n=w(t)?String(e):"",r="\n"===t[t.length-1];return n+(r&&("\n"===t[t.length-2]||"\n"===t)?"+":r?"":"-")+"\n"}function x(t){return"\n"===t[t.length-1]?t.slice(0,-1):t}function E(t,e){if(""===t||" "===t[0])return t;for(var n,r,i=/ [^ ]/g,o=0,a=0,s=0,u="";n=i.exec(t);)(s=n.index)-o>e&&(r=a>o?a:s,u+="\n"+t.slice(o,r),o=r+1),a=s;return u+="\n",t.length-o>e&&a>o?u+=t.slice(o,a)+"\n"+t.slice(a+1):u+=t.slice(o),u.slice(1)}function C(t,e,n){var r,o,a,c,f,l;for(a=0,c=(o=n?t.explicitTypes:t.implicitTypes).length;a tag resolver accepts not "'+l+'" style');r=f.represent[l](e,l)}t.dump=r}return!0}return!1}function O(t,e,n,r,o,a){t.tag=null,t.dump=n,C(t,n,!1)||C(t,n,!0);var u=s.call(t.dump);r&&(r=t.flowLevel<0||t.flowLevel>e);var c,f,l="[object Object]"===u||"[object Array]"===u;if(l&&(f=-1!==(c=t.duplicates.indexOf(n))),(null!==t.tag&&"?"!==t.tag||f||2!==t.indent&&e>0)&&(o=!1),f&&t.usedDuplicates[c])t.dump="*ref_"+c;else{if(l&&f&&!t.usedDuplicates[c]&&(t.usedDuplicates[c]=!0),"[object Object]"===u)r&&0!==Object.keys(t.dump).length?(!function(t,e,n,r){var o,a,s,u,c,f,l="",p=t.tag,h=Object.keys(n);if(!0===t.sortKeys)h.sort();else if("function"===typeof t.sortKeys)h.sort(t.sortKeys);else if(t.sortKeys)throw new i("sortKeys must be a boolean or a function");for(o=0,a=h.length;o1024)&&(t.dump&&10===t.dump.charCodeAt(0)?f+="?":f+="? "),f+=t.dump,c&&(f+=d(t,e)),O(t,e+1,u,!0,c)&&(t.dump&&10===t.dump.charCodeAt(0)?f+=":":f+=": ",l+=f+=t.dump));t.tag=p,t.dump=l||"{}"}(t,e,t.dump,o),f&&(t.dump="&ref_"+c+t.dump)):(!function(t,e,n){var r,i,o,a,s,u="",c=t.tag,f=Object.keys(n);for(r=0,i=f.length;r1024&&(s+="? "),s+=t.dump+(t.condenseFlow?'"':"")+":"+(t.condenseFlow?"":" "),O(t,e,a,!1,!1)&&(u+=s+=t.dump));t.tag=c,t.dump="{"+u+"}"}(t,e,t.dump),f&&(t.dump="&ref_"+c+" "+t.dump));else if("[object Array]"===u){var p=t.noArrayIndent&&e>0?e-1:e;r&&0!==t.dump.length?(!function(t,e,n,r){var i,o,a="",s=t.tag;for(i=0,o=n.length;i "+t.dump)}return!0}function S(t,e){var n,r,i=[],o=[];for(function t(e,n,r){var i,o,a;if(null!==e&&"object"===typeof e)if(-1!==(o=n.indexOf(e)))-1===r.indexOf(o)&&r.push(o);else if(n.push(e),Array.isArray(e))for(o=0,a=e.length;o"buffer"===i(t),e.isObject=t=>"object"===i(t),e.toBuffer=function(e){return"string"===typeof e?t.from(e):e},e.toString=function(t){if(e.isBuffer(t))return r(String(t));if("string"!==typeof t)throw new TypeError("expected input to be a string or buffer");return r(t)},e.arrayify=function(t){return t?Array.isArray(t)?t:[t]:[]},e.startsWith=function(t,e,n){return"number"!==typeof n&&(n=e.length),t.slice(0,n)===e}}).call(this,n("HDXh").Buffer)},XCGq:function(t,e,n){"use strict";function r(t,e){Error.call(this),this.name="YAMLException",this.reason=t,this.mark=e,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack||""}r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r.prototype.toString=function(t){var e=this.name+": ";return e+=this.reason||"(unknown reason)",!t&&this.mark&&(e+=" "+this.mark.toString()),e},t.exports=r},Xq5V:function(t,e,n){"use strict";var r=n("NdRM"),i=Object.prototype.hasOwnProperty;t.exports=new r("tag:yaml.org,2002:set",{kind:"mapping",resolve:function(t){if(null===t)return!0;var e,n=t;for(e in n)if(i.call(n,e)&&null!==n[e])return!1;return!0},construct:function(t){return null!==t?t:{}}})},YFqc:function(t,e,n){t.exports=n("cTJO")},YJCK:function(t,e,n){"use strict";var r=n("3rKx");t.exports=r.DEFAULT=new r({include:[n("EOT6")],explicit:[n("zAwM"),n("EGKs"),n("YQPJ")]})},YQPJ:function(t,e,n){"use strict";var r;try{r=n("+U4B")}catch(o){"undefined"!==typeof window&&(r=window.esprima)}var i=n("NdRM");t.exports=new i("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:function(t){if(null===t)return!1;try{var e="("+t+")",n=r.parse(e,{range:!0});return"Program"===n.type&&1===n.body.length&&"ExpressionStatement"===n.body[0].type&&("ArrowFunctionExpression"===n.body[0].expression.type||"FunctionExpression"===n.body[0].expression.type)}catch(i){return!1}},construct:function(t){var e,n="("+t+")",i=r.parse(n,{range:!0}),o=[];if("Program"!==i.type||1!==i.body.length||"ExpressionStatement"!==i.body[0].type||"ArrowFunctionExpression"!==i.body[0].expression.type&&"FunctionExpression"!==i.body[0].expression.type)throw new Error("Failed to resolve function");return i.body[0].expression.params.forEach((function(t){o.push(t.name)})),e=i.body[0].expression.body.range,"BlockStatement"===i.body[0].expression.body.type?new Function(o,n.slice(e[0]+1,e[1]-1)):new Function(o,"return "+n.slice(e[0],e[1]))},predicate:function(t){return"[object Function]"===Object.prototype.toString.call(t)},represent:function(t){return t.toString()}})},cKX6:function(t,e,n){"use strict";t.exports=function(t){return"string"===typeof t&&"\ufeff"===t.charAt(0)?t.slice(1):t}},cTJO:function(t,e,n){"use strict";var r=n("zoAU"),i=n("7KCV");e.__esModule=!0,e.default=void 0;var o,a=i(n("q1tI")),s=n("elyg"),u=n("nOHt"),c=new Map,f=window.IntersectionObserver,l={};var p=function(t,e){var n=o||(f?o=new f((function(t){t.forEach((function(t){if(c.has(t.target)){var e=c.get(t.target);(t.isIntersecting||t.intersectionRatio>0)&&(o.unobserve(t.target),c.delete(t.target),e())}}))}),{rootMargin:"200px"}):void 0);return n?(n.observe(t),c.set(t,e),function(){try{n.unobserve(t)}catch(e){console.error(e)}c.delete(t)}):function(){}};function h(t,e,n,r){(0,s.isLocalURL)(e)&&(t.prefetch(e,n,r).catch((function(t){0})),l[e+"%"+n]=!0)}var d=function(t){var e=!1!==t.prefetch,n=a.default.useState(),i=r(n,2),o=i[0],c=i[1],d=(0,u.useRouter)(),g=d&&d.pathname||"/",y=a.default.useMemo((function(){var e=(0,s.resolveHref)(g,t.href,!0),n=r(e,2),i=n[0],o=n[1];return{href:i,as:t.as?(0,s.resolveHref)(g,t.as):o||i}}),[g,t.href,t.as]),m=y.href,w=y.as;a.default.useEffect((function(){if(e&&f&&o&&o.tagName&&(0,s.isLocalURL)(m)&&!l[m+"%"+w])return p(o,(function(){h(d,m,w)}))}),[e,o,m,w,d]);var v=t.children,b=t.replace,A=t.shallow,x=t.scroll;"string"===typeof v&&(v=a.default.createElement("a",null,v));var E=a.Children.only(v),C={ref:function(t){t&&c(t),E&&"object"===typeof E&&E.ref&&("function"===typeof E.ref?E.ref(t):"object"===typeof E.ref&&(E.ref.current=t))},onClick:function(t){E.props&&"function"===typeof E.props.onClick&&E.props.onClick(t),t.defaultPrevented||function(t,e,n,r,i,o,a){("A"!==t.currentTarget.nodeName||!function(t){var e=t.currentTarget.target;return e&&"_self"!==e||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which}(t)&&(0,s.isLocalURL)(n))&&(t.preventDefault(),null==a&&(a=r.indexOf("#")<0),e[i?"replace":"push"](n,r,{shallow:o}).then((function(t){t&&a&&(window.scrollTo(0,0),document.body.focus())})))}(t,d,m,w,b,A,x)}};return e&&(C.onMouseEnter=function(t){(0,s.isLocalURL)(m)&&(E.props&&"function"===typeof E.props.onMouseEnter&&E.props.onMouseEnter(t),h(d,m,w,{priority:!0}))}),(t.passHref||"a"===E.type&&!("href"in E.props))&&(C.href=(0,s.addBasePath)((0,s.addLocale)(w,d&&d.locale,d&&d.defaultLocale))),a.default.cloneElement(E,C)};e.default=d},"eW+f":function(t,e,n){"use strict";var r=n("Ga6R"),i=n("NdRM"),o=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");var a=/^[-+]?[0-9]+e/;t.exports=new i("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(t){return null!==t&&!(!o.test(t)||"_"===t[t.length-1])},construct:function(t){var e,n,r,i;return n="-"===(e=t.replace(/_/g,"").toLowerCase())[0]?-1:1,i=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),".inf"===e?1===n?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===e?NaN:e.indexOf(":")>=0?(e.split(":").forEach((function(t){i.unshift(parseFloat(t,10))})),e=0,r=1,i.forEach((function(t){e+=t*r,r*=60})),n*e):n*parseFloat(e,10)},predicate:function(t){return"[object Number]"===Object.prototype.toString.call(t)&&(t%1!==0||r.isNegativeZero(t))},represent:function(t,e){var n;if(isNaN(t))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===t)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===t)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(r.isNegativeZero(t))return"-0.0";return n=t.toString(10),a.test(n)?n.replace("e",".e"):n},defaultStyle:"lowercase"})},fkQn:function(t,e,n){"use strict";var r=n("NdRM");t.exports=new r("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(t){return null!==t?t:[]}})},gCGJ:function(t,e,n){"use strict";var r=n("Ga6R"),i=n("NdRM");function o(t){return 48<=t&&t<=55}function a(t){return 48<=t&&t<=57}t.exports=new i("tag:yaml.org,2002:int",{kind:"scalar",resolve:function(t){if(null===t)return!1;var e,n,r=t.length,i=0,s=!1;if(!r)return!1;if("-"!==(e=t[i])&&"+"!==e||(e=t[++i]),"0"===e){if(i+1===r)return!0;if("b"===(e=t[++i])){for(i++;i=0?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)},octal:function(t){return t>=0?"0"+t.toString(8):"-0"+t.toString(8).slice(1)},decimal:function(t){return t.toString(10)},hexadecimal:function(t){return t>=0?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})},gWvi:function(t,e,n){"use strict";var r=n("3rKx");t.exports=new r({explicit:[n("BbHa"),n("fkQn"),n("KFpJ")]})},hb5E:function(t,e,n){"use strict";const r=n(1),i=n("Pcej"),o=n("tfEw"),a=n("8Qj+"),s=n("mpv1"),u=n("n0UO"),c=n("Q9oK"),f=n("mx6s"),l=n("X+87");function p(t,e){if(""===t)return{data:{},content:t,excerpt:"",orig:t};let n=c(t);const r=p.cache[n.content];if(!e){if(r)return n=Object.assign({},r),n.orig=r.orig,n;p.cache[n.content]=n}return function(t,e){const n=o(e),r=n.delimiters[0],a="\n"+n.delimiters[1];let u=t.content;n.language&&(t.language=n.language);const c=r.length;if(!l.startsWith(u,r,c))return s(t,n),t;if(u.charAt(c)===r.slice(-1))return t;u=u.slice(c);const h=u.length,d=p.language(u,n);d.name&&(t.language=d.name,u=u.slice(d.raw.length));let g=u.indexOf(a);-1===g&&(g=h);t.matter=u.slice(0,g);""===t.matter.replace(/^\s*#[^\n]+/gm,"").trim()?(t.isEmpty=!0,t.empty=t.content,t.data={}):t.data=f(t.language,t.matter,n);g===h?t.content="":(t.content=u.slice(g+a.length),"\r"===t.content[0]&&(t.content=t.content.slice(1)),"\n"===t.content[0]&&(t.content=t.content.slice(1)));s(t,n),(!0===n.sections||"function"===typeof n.section)&&i(t,n.section);return t}(n,e)}p.engines=u,p.stringify=function(t,e,n){return"string"===typeof t&&(t=p(t,n)),a(t,e,n)},p.read=function(t,e){const n=p(r.readFileSync(t,"utf8"),e);return n.path=t,n},p.test=function(t,e){return l.startsWith(t,o(e).delimiters[0])},p.language=function(t,e){const n=o(e).delimiters[0];p.test(t)&&(t=t.slice(n.length));const r=t.slice(0,t.search(/\r?\n/));return{raw:r,name:r?r.trim():""}},p.cache={},p.clearCache=()=>p.cache={},t.exports=p},iFIo:function(t,e,n){"use strict";var r=n("NdRM");t.exports=new r("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(t){return"<<"===t||null===t}})},jOok:function(t,e,n){"use strict";var r=n("NdRM"),i=Object.prototype.toString;t.exports=new r("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:function(t){if(null===t)return!0;var e,n,r,o,a,s=t;for(a=new Array(s.length),e=0,n=s.length;e>1,f=-7,l=n?i-1:0,p=n?-1:1,h=t[e+l];for(l+=p,o=h&(1<<-f)-1,h>>=-f,f+=s;f>0;o=256*o+t[e+l],l+=p,f-=8);for(a=o&(1<<-f)-1,o>>=-f,f+=r;f>0;a=256*a+t[e+l],l+=p,f-=8);if(0===o)o=1-c;else{if(o===u)return a?NaN:1/0*(h?-1:1);a+=Math.pow(2,r),o-=c}return(h?-1:1)*a*Math.pow(2,o-r)},e.write=function(t,e,n,r,i,o){var a,s,u,c=8*o-i-1,f=(1<>1,p=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,h=r?0:o-1,d=r?1:-1,g=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,a=f):(a=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-a))<1&&(a--,u*=2),(e+=a+l>=1?p/u:p*Math.pow(2,1-l))*u>=2&&(a++,u/=2),a+l>=f?(s=0,a=f):a+l>=1?(s=(e*u-1)*Math.pow(2,i),a+=l):(s=e*Math.pow(2,l-1)*Math.pow(2,i),a=0));i>=8;t[n+h]=255&s,h+=d,s/=256,i-=8);for(a=a<0;t[n+h]=255&a,h+=d,a/=256,c-=8);t[n+h-d]|=128*g}},mpv1:function(t,e,n){"use strict";const r=n("tfEw");t.exports=function(t,e){const n=r(e);if(null==t.data&&(t.data={}),"function"===typeof n.excerpt)return n.excerpt(t,n);const i=t.data.excerpt_separator||n.excerpt_separator;if(null==i&&(!1===n.excerpt||null==n.excerpt))return t;const o="string"===typeof n.excerpt?n.excerpt:i||n.delimiters[0],a=t.content.indexOf(o);return-1!==a&&(t.excerpt=t.content.slice(0,a)),t}},"mv/Q":function(t,e,n){"use strict";var r;try{r=n("HDXh").Buffer}catch(a){}var i=n("NdRM"),o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";t.exports=new i("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(t){if(null===t)return!1;var e,n,r=0,i=t.length,a=o;for(n=0;n64)){if(e<0)return!1;r+=6}return r%8===0},construct:function(t){var e,n,i=t.replace(/[\r\n=]/g,""),a=i.length,s=o,u=0,c=[];for(e=0;e>16&255),c.push(u>>8&255),c.push(255&u)),u=u<<6|s.indexOf(i.charAt(e));return 0===(n=a%4*6)?(c.push(u>>16&255),c.push(u>>8&255),c.push(255&u)):18===n?(c.push(u>>10&255),c.push(u>>2&255)):12===n&&c.push(u>>4&255),r?r.from?r.from(c):new r(c):c},predicate:function(t){return r&&r.isBuffer(t)},represent:function(t){var e,n,r="",i=0,a=t.length,s=o;for(e=0;e>18&63],r+=s[i>>12&63],r+=s[i>>6&63],r+=s[63&i]),i=(i<<8)+t[e];return 0===(n=a%3)?(r+=s[i>>18&63],r+=s[i>>12&63],r+=s[i>>6&63],r+=s[63&i]):2===n?(r+=s[i>>10&63],r+=s[i>>4&63],r+=s[i<<2&63],r+=s[64]):1===n&&(r+=s[i>>2&63],r+=s[i<<4&63],r+=s[64],r+=s[64]),r}})},mx6s:function(t,e,n){"use strict";const r=n("VQEG"),i=n("tfEw");t.exports=function(t,e,n){const o=i(n),a=r(t,o);if("function"!==typeof a.parse)throw new TypeError('expected "'+t+'.parse" to be a function');return a.parse(e,o)}},n0UO:function(module,exports,__webpack_require__){"use strict";const yaml=__webpack_require__("0JaZ"),engines=exports=module.exports;engines.yaml={parse:yaml.safeLoad.bind(yaml),stringify:yaml.safeDump.bind(yaml)},engines.json={parse:JSON.parse.bind(JSON),stringify:function(t,e){const n=Object.assign({replacer:null,space:2},e);return JSON.stringify(t,n.replacer,n.space)}},engines.javascript={parse:function parse(str,options,wrap){try{return!1!==wrap&&(str="(function() {\nreturn "+str.trim()+";\n}());"),eval(str)||{}}catch(err){if(!1!==wrap&&/(unexpected|identifier)/i.test(err.message))return parse(str,options,!1);throw new SyntaxError(err)}},stringify:function(){throw new Error("stringifying JavaScript is not supported")}}},"nK+E":function(t,e,n){"use strict";var r=n("rePB"),i=n("q1tI"),o=n.n(i).a.createElement;function a(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 s(t){for(var e=1;e0&&-1==="\0\r\n\x85\u2028\u2029".indexOf(this.buffer.charAt(i-1));)if(i-=1,this.position-i>e/2-1){n=" ... ",i+=5;break}for(o="",a=this.position;ae/2-1){o=" ... ",a-=5;break}return s=this.buffer.slice(i,a),r.repeat(" ",t)+n+s+o+"\n"+r.repeat(" ",t+this.position-i+n.length)+"^"},i.prototype.toString=function(t){var e,n="";return this.name&&(n+='in "'+this.name+'" '),n+="at line "+(this.line+1)+", column "+(this.column+1),t||(e=this.getSnippet())&&(n+=":\n"+e),n},t.exports=i},yLpj:function(t,e){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(r){"object"===typeof window&&(n=window)}t.exports=n},z08I:function(t,e,n){"use strict";var r=n("2RPy");function i(t,e){for(var n in e)o(e,n)&&(t[n]=e[n])}function o(t,e){return Object.prototype.hasOwnProperty.call(t,e)}t.exports=function(t){r(t)||(t={});for(var e=arguments.length,n=1;n0&&void 0!==arguments[0]?arguments[0]:{},t=e.ampFirst,n=void 0!==t&&t,r=e.hybrid,a=void 0!==r&&r,o=e.hasQuery;return n||a&&(void 0!==o&&o)}},"8Kt/":function(e,t,n){"use strict";n("lSNA");t.__esModule=!0,t.defaultHead=f,t.default=void 0;var r,a=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var t=s();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var o=r?Object.getOwnPropertyDescriptor(e,a):null;o&&(o.get||o.set)?Object.defineProperty(n,a,o):n[a]=e[a]}n.default=e,t&&t.set(e,n);return n}(n("q1tI")),o=(r=n("Xuae"))&&r.__esModule?r:{default:r},u=n("lwAK"),i=n("FYa8"),c=n("/0+H");function s(){if("function"!==typeof WeakMap)return null;var e=new WeakMap;return s=function(){return e},e}function f(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=[a.default.createElement("meta",{charSet:"utf-8"})];return e||t.push(a.default.createElement("meta",{name:"viewport",content:"width=device-width"})),t}function d(e,t){return"string"===typeof t||"number"===typeof t?e:t.type===a.default.Fragment?e.concat(a.default.Children.toArray(t.props.children).reduce((function(e,t){return"string"===typeof t||"number"===typeof t?e:e.concat(t)}),[])):e.concat(t)}var l=["name","httpEquiv","charSet","itemProp"];function p(e,t){return e.reduce((function(e,t){var n=a.default.Children.toArray(t.props.children);return e.concat(n)}),[]).reduce(d,[]).reverse().concat(f(t.inAmpMode)).filter(function(){var e=new Set,t=new Set,n=new Set,r={};return function(a){var o=!0;if(a.key&&"number"!==typeof a.key&&a.key.indexOf("$")>0){var u=a.key.slice(a.key.indexOf("$")+1);e.has(u)?o=!1:e.add(u)}switch(a.type){case"title":case"base":t.has(a.type)?o=!1:t.add(a.type);break;case"meta":for(var i=0,c=l.length;i0)&&(o.unobserve(e.target),f.delete(e.target),t())}}))}),{rootMargin:"200px"}):void 0);return n?(n.observe(e),f.set(e,t),function(){try{n.unobserve(e)}catch(t){console.error(t)}f.delete(e)}):function(){}};function h(e,t,n,r){e.prefetch(t,n,r).catch((function(e){0})),l[t+"%"+n]=!0}function v(e,t,n,r,a,o,u){var c=e.currentTarget,s=c.nodeName,f=c.target;"A"===s&&(f&&"_self"!==f||e.metaKey||e.ctrlKey||e.shiftKey||e.nativeEvent&&2===e.nativeEvent.which)||function(e){var t=(0,i.getLocationOrigin)();return new URL(e,t).origin===t}(n)&&(e.preventDefault(),null==u&&(u=r.indexOf("#")<0),t[a?"replace":"push"](n,r,{shallow:o}).then((function(e){e&&u&&(window.scrollTo(0,0),document.body.focus())})))}var m=function(e){var t=!1!==e.prefetch,n=u.default.useState(),a=r(n,2),o=a[0],i=a[1],f=(0,c.useRouter)(),m=f&&f.pathname||"/",g=u.default.useMemo((function(){var t=(0,s.resolveHref)(m,e.href);return{href:t,as:e.as?(0,s.resolveHref)(m,e.as):t}}),[m,e.href,e.as]),y=g.href,b=g.as;u.default.useEffect((function(){if(t&&d&&o&&o.tagName&&!l[y+"%"+b])return p(o,(function(){h(f,y,b)}))}),[t,o,y,b,f]);var w=e.children,M=e.replace,_=e.shallow,x=e.scroll;"string"===typeof w&&(w=u.default.createElement("a",null,w));var S=u.Children.only(w),C={ref:function(e){e&&i(e),S&&"object"===typeof S&&S.ref&&("function"===typeof S.ref?S.ref(e):"object"===typeof S.ref&&(S.ref.current=e))},onClick:function(e){S.props&&"function"===typeof S.props.onClick&&S.props.onClick(e),e.defaultPrevented||v(e,f,y,b,M,_,x)}};return t&&(C.onMouseEnter=function(e){S.props&&"function"===typeof S.props.onMouseEnter&&S.props.onMouseEnter(e),h(f,y,b,{priority:!0})}),!e.passHref&&("a"!==S.type||"href"in S.props)||(C.href=(0,s.addBasePath)(b)),u.default.cloneElement(S,C)};t.default=m},lSNA:function(e,t){e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},lwAK:function(e,t,n){"use strict";var r;t.__esModule=!0,t.AmpStateContext=void 0;var a=((r=n("q1tI"))&&r.__esModule?r:{default:r}).default.createContext({});t.AmpStateContext=a}}]); \ No newline at end of file diff --git a/sites/afcc/_next/static/chunks/8ebd541a.9353e5095a443e1640f8.js b/sites/afcc/_next/static/chunks/8ebd541a.9353e5095a443e1640f8.js new file mode 100644 index 0000000000000000000000000000000000000000..711b63d391206d0c08fbd5326fa3e0be9586d14d --- /dev/null +++ b/sites/afcc/_next/static/chunks/8ebd541a.9353e5095a443e1640f8.js @@ -0,0 +1 @@ +(window.webpackJsonp_N_E=window.webpackJsonp_N_E||[]).push([[6],{NSxh:function(A,D,g){"use strict";g.d(D,"a",(function(){return s}));var B=g("q1tI"),c=g.n(B),Q=c.a.createElement,O=function(A){return Q("svg",A,Q("title",null,"Facebook"),Q("g",{fill:"none",fillRule:"evenodd"},Q("circle",{fill:"#11385B",cx:"16",cy:"16",r:"16"}),Q("path",{d:"M18.513 9.813h2.628V6h-3.109c-3.75.156-4.52 2.219-4.583 4.375v1.906h-2.564V16h2.564v10h3.846V16h3.173l.609-3.719h-3.782v-1.156a1.22 1.22 0 0 1 .326-.906c.229-.247.55-.393.892-.406z",fill:"#FFF",fillRule:"nonzero"})))};O.defaultProps={width:"32",height:"32",viewBox:"0 0 32 32",xmlns:"http://www.w3.org/2000/svg"};var H=function(A){return Q("svg",A,Q("title",null,"LinkedIn"),Q("g",{fill:"none",fillRule:"evenodd"},Q("circle",{fill:"#11385B",cx:"16",cy:"16",r:"16"}),Q("path",{d:"M7.812 13.342h3.525V24H7.812V13.342zm12.624-.352c-1.546 0-2.468.57-3.444 1.817v-1.465h-3.526V24h3.553v-5.776c0-1.22.623-2.414 2.034-2.414 1.41 0 2.25 1.193 2.25 2.387V24h3.553v-6.047c0-4.204-2.848-4.963-4.42-4.963zM9.588 8.163c-1.166 0-2.088.84-2.088 1.87 0 1.031.922 1.872 2.088 1.872s2.088-.84 2.088-1.871c0-1.03-.922-1.871-2.088-1.871z",fill:"#FFF",fillRule:"nonzero"})))};H.defaultProps={width:"32",height:"32",viewBox:"0 0 32 32",xmlns:"http://www.w3.org/2000/svg"};var e=function(A){return Q("svg",A,Q("title",null,"Twitter"),Q("g",{fill:"none",fillRule:"evenodd"},Q("circle",{fill:"#11385B",cx:"16",cy:"16",r:"16"}),Q("path",{d:"M25.113 10.536c-.651.31-1.35.512-2.066.594a3.996 3.996 0 0 0 1.557-2.037c-.538.34-1.727.82-2.321.82a3.9 3.9 0 0 0-2.717-1.132 3.732 3.732 0 0 0-3.736 3.736c-.001.276.027.551.085.82-2.802-.084-6.085-1.47-7.924-3.876a3.738 3.738 0 0 0 1.132 4.924c-.425.057-1.246-.028-1.614-.396-.028 1.302.595 3.028 2.887 3.65-.453.227-1.217.17-1.556.114.113 1.104 1.67 2.547 3.34 2.547-.595.68-2.633 1.953-5.18 1.557a11.271 11.271 0 0 0 5.858 1.641A10.415 10.415 0 0 0 23.33 12.574v-.142a6.47 6.47 0 0 0 1.783-1.896z",fill:"#FFF",fillRule:"nonzero"})))};e.defaultProps={width:"32",height:"32",viewBox:"0 0 32 32",xmlns:"http://www.w3.org/2000/svg"};var n=function(A){return Q("svg",A,Q("title",null,"yoda"),Q("g",{fill:"none",fillRule:"evenodd"},Q("path",{d:"M62.151 40.461v-7.768h.845c2.65 0 4.65-1.638 4.65-7.062 0-5.14-1.578-6.864-4.79-6.864h-4.453v21.694h3.748zm.423-10.762h-.423V21.76h.395c.93 0 1.437.82 1.437 3.842 0 3.248-.564 4.096-1.41 4.096zm16.062 10.819v-3.08h-3.86v-18.67h-3.748v21.75h7.608zm6.03-.057l.282-3.022h2.226l.282 3.022h3.776l-2.874-21.694h-4.03l-2.79 21.694h3.128zm2.142-6.045h-1.55l.874-8.643.676 8.643zm11.948 6.102V21.76h2.959v-2.994h-9.637v2.994h2.93v18.757h3.748zm10.117 0v-9.294h3.184v-2.966h-3.184v-6.497h3.832v-2.994h-7.58v21.75h3.748zm11.778.282c2.508 0 4.622-1.243 4.622-4.802V23.202c0-3.56-2.085-4.802-4.622-4.802-2.536 0-4.734 1.271-4.734 4.802v12.796c0 3.474 2.17 4.802 4.734 4.802zm0-2.91c-.62 0-.986-.367-.986-1.186V22.468c0-.848.395-1.187.958-1.187.451 0 .93.34.93 1.187v14.264c0 .82-.338 1.159-.902 1.159zm12.061 2.628v-8.87h.536c.45 0 .901.339.958 3.587.028 1.384.028 2.09.084 3.983.028.452.113.904.282 1.3h3.72c-.244-1.004-.357-1.773-.366-3.632v-1.877c0-1.384-.17-3.926-1.804-4.971 1.888-.932 2.142-2.542 2.142-5.565 0-3.983-1.607-5.706-4.622-5.706h-4.678v21.75h3.748zm.48-11.893h-.48v-6.864h.508c.817 0 1.38.452 1.38 3.277 0 2.91-.563 3.587-1.409 3.587zm11.666 11.893v-10.17l1.69 10.17h2.311l1.606-10.17v10.17h3.607v-21.75h-4.227l-2.029 12.795-1.719-12.796h-4.34v21.75h3.1zm22.684.282c2.508 0 4.621-1.243 4.621-4.802V23.202c0-3.56-2.085-4.802-4.621-4.802-2.536 0-4.734 1.271-4.734 4.802v12.796c0 3.474 2.17 4.802 4.734 4.802zm0-2.91c-.62 0-.986-.367-.986-1.186V22.468c0-.848.394-1.187.958-1.187.45 0 .93.34.93 1.187v14.264c0 .82-.338 1.159-.902 1.159zm11.413 2.628V29.36l2.79 11.158h2.761v-21.75h-3.1v9.631l-2.395-9.632h-3.156v21.75h3.1zm17.048-.057v-2.994h-3.86v-6.638h3.184v-3.05h-3.184V21.76h3.832v-2.994h-7.58v21.694h7.608z",fillOpacity:".931",fill:"#FFF",fillRule:"nonzero"}),Q("image",{width:"49.6",height:"59.2",xlinkHref:"data:image/png;base64,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"})))};n.defaultProps={width:"196",height:"60",viewBox:"0 0 196 60",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink"};var w={AirForceLogo:{url:"https://afcc-demo.s3.us-east-2.amazonaws.com/thumbnail_af_logo_ec90b4a2bb.png"},FooterMenu:{Link:[{Text:"Join the Air Force",url:"https://www.airforce.com/"},{Text:"Small Business Support",url:"http://www.airforcesmallbiz.af.mil/?source=GovD"},{Text:"Accessibility",url:"https://dodcio.defense.gov/DoDSection508/Std_Stmt/"},{Text:"Contact Us",url:"/contact"},{Text:"Strategic APR",url:"https://cmo.defense.gov/Publications/Annual-Performance-Plan-and-Performance-Report/"},{Text:"EEO",url:"http://www.af.mil/Equal-Opportunity/"},{Text:"Questions",url:"http://www.af.mil/Questions.aspx"},{Text:"Suicide Prevention",url:"http://www.airforcemedicine.af.mil/SuicidePrevention/"},{Text:"Link Disclaimer",url:"http://www.af.mil/Disclaimer/"},{Text:"Inspector General Complaints",url:"http://www.af.mil/Inspector-General-Complaints/"},{Text:"SAPR",url:"http://www.af.mil/SAPR/"},{Text:"No Fear Act",url:"http://prhome.defense.gov/nofear"},{Text:"AF Sites",url:"http://www.af.mil/AF-Sites/"},{Text:"USA.gov",url:"http://www.usa.gov/"},{Text:"FOIA",url:"http://www.foia.af.mil/"}]}};function s(){var A,D="".concat(w.AirForceLogo.url.startsWith("/")?"https://afcc-cms2.nodecentric.com":"").concat(w.AirForceLogo.url);return Q(c.a.Fragment,null,Q("footer",{className:"w-screen flex flex-col lg:flex-row",style:{background:"transparent"}},Q("div",{className:"w-full lg:w-4/6 flex bg-dark-blue"},Q("div",{className:"w-full flex flex-col"},Q("div",{className:"flex flex-col lg:flex-row"},Q("div",{className:"bg-new-blue",style:{width:"143px",height:"133px",paddingTop:"25px",paddingBottom:"25px",paddingLeft:"20px",paddingRight:"20px",marginLeft:"65px"}},Q("img",{src:D,className:"object-scale-down",alt:"Air Force Logo"})),Q("div",{className:"w-full pl-0 lg:pl-40 grid grid-cols-1 md:grid-cols-3 gap-4 lg:gap-1 mb-12 mt-0 md:mt-20 lg:mt-40"},null===(A=w.FooterMenu)||void 0===A?void 0:A.Link.map((function(A){return Q("a",{key:A.url,href:A.url,target:"_blank",rel:"noopener noreferrer",className:"text-xs text-white mb-4 block text-center lg:text-left",style:{breakInside:"avoid",fontSize:14}},A.Text)})))),Q("div",{className:"flex justify-center pb-6"},Q("a",{href:"https://p1.dsop.io/#/",rel:"noopener noreferrer",target:"_blank"},Q(n,null))))),Q("div",{className:"w-2/6 flex flex-col pt-20 pl-24 lg:mt-0 mb-16 lg:mb-0"},Q("div",null,Q("h4",{className:"font-bold mb-8"},"Follow Us")),Q("div",{className:"flex"},Q("a",{href:"https://www.linkedin.com/company/united-states-air-force",target:"_blank",rel:"noopener noreferrer",className:"mr-4"},Q(O,null)),Q("a",{href:"https://m.facebook.com/groups/43599711183/",target:"_blank",rel:"noopener noreferrer",className:"mx-4"},Q(H,null)),Q("a",{href:"https://www.twitter.com/USairforce",target:"_blank",rel:"noreferrer",className:"mx-4"},Q(e,null))))))}}}]); \ No newline at end of file diff --git a/sites/afcc/_next/static/chunks/9f96d65d.c48160dec0be48419688.js b/sites/afcc/_next/static/chunks/9f96d65d.c48160dec0be48419688.js new file mode 100644 index 0000000000000000000000000000000000000000..cc5d301b7951fd83662b4ce549e32259f9c7477e --- /dev/null +++ b/sites/afcc/_next/static/chunks/9f96d65d.c48160dec0be48419688.js @@ -0,0 +1 @@ +(window.webpackJsonp_N_E=window.webpackJsonp_N_E||[]).push([[5],{"+U4B":function(e,t,i){var s;s=function(){return function(e){var t={};function i(s){if(t[s])return t[s].exports;var r=t[s]={exports:{},id:s,loaded:!1};return e[s].call(r.exports,r,r.exports,i),r.loaded=!0,r.exports}return i.m=e,i.c=t,i.p="",i(0)}([function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s=i(1),r=i(3),n=i(8),a=i(15);function o(e,t,i){var a=null,o=function(e,t){i&&i(e,t),a&&a.visit(e,t)},u="function"===typeof i?o:null,h=!1;if(t){h="boolean"===typeof t.comment&&t.comment;var c="boolean"===typeof t.attachComment&&t.attachComment;(h||c)&&((a=new s.CommentHandler).attach=c,t.comment=!0,u=o)}var l,p=!1;t&&"string"===typeof t.sourceType&&(p="module"===t.sourceType),l=t&&"boolean"===typeof t.jsx&&t.jsx?new r.JSXParser(e,t,u):new n.Parser(e,t,u);var d=p?l.parseModule():l.parseScript();return h&&a&&(d.comments=a.comments),l.config.tokens&&(d.tokens=l.tokens),l.config.tolerant&&(d.errors=l.errorHandler.errors),d}t.parse=o,t.parseModule=function(e,t,i){var s=t||{};return s.sourceType="module",o(e,s,i)},t.parseScript=function(e,t,i){var s=t||{};return s.sourceType="script",o(e,s,i)},t.tokenize=function(e,t,i){var s,r=new a.Tokenizer(e,t);s=[];try{for(;;){var n=r.getNextToken();if(!n)break;i&&(n=i(n)),s.push(n)}}catch(o){r.errorHandler.tolerate(o)}return r.errorHandler.tolerant&&(s.errors=r.errors()),s};var u=i(2);t.Syntax=u.Syntax,t.version="4.0.1"},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s=i(2),r=function(){function e(){this.attach=!1,this.comments=[],this.stack=[],this.leading=[],this.trailing=[]}return e.prototype.insertInnerComments=function(e,t){if(e.type===s.Syntax.BlockStatement&&0===e.body.length){for(var i=[],r=this.leading.length-1;r>=0;--r){var n=this.leading[r];t.end.offset>=n.start&&(i.unshift(n.comment),this.leading.splice(r,1),this.trailing.splice(r,1))}i.length&&(e.innerComments=i)}},e.prototype.findTrailingComments=function(e){var t=[];if(this.trailing.length>0){for(var i=this.trailing.length-1;i>=0;--i){var s=this.trailing[i];s.start>=e.end.offset&&t.unshift(s.comment)}return this.trailing.length=0,t}var r=this.stack[this.stack.length-1];if(r&&r.node.trailingComments){var n=r.node.trailingComments[0];n&&n.range[0]>=e.end.offset&&(t=r.node.trailingComments,delete r.node.trailingComments)}return t},e.prototype.findLeadingComments=function(e){for(var t,i=[];this.stack.length>0&&((n=this.stack[this.stack.length-1])&&n.start>=e.start.offset);)t=n.node,this.stack.pop();if(t){for(var s=(t.leadingComments?t.leadingComments.length:0)-1;s>=0;--s){var r=t.leadingComments[s];r.range[1]<=e.start.offset&&(i.unshift(r),t.leadingComments.splice(s,1))}return t.leadingComments&&0===t.leadingComments.length&&delete t.leadingComments,i}for(s=this.leading.length-1;s>=0;--s){var n;(n=this.leading[s]).start<=e.start.offset&&(i.unshift(n.comment),this.leading.splice(s,1))}return i},e.prototype.visitNode=function(e,t){if(!(e.type===s.Syntax.Program&&e.body.length>0)){this.insertInnerComments(e,t);var i=this.findTrailingComments(t),r=this.findLeadingComments(t);r.length>0&&(e.leadingComments=r),i.length>0&&(e.trailingComments=i),this.stack.push({node:e,start:t.start.offset})}},e.prototype.visitComment=function(e,t){var i="L"===e.type[0]?"Line":"Block",s={type:i,value:e.value};if(e.range&&(s.range=e.range),e.loc&&(s.loc=e.loc),this.comments.push(s),this.attach){var r={comment:{type:i,value:e.value,range:[t.start.offset,t.end.offset]},start:t.start.offset};e.loc&&(r.comment.loc=e.loc),e.type=i,this.leading.push(r),this.trailing.push(r)}},e.prototype.visit=function(e,t){"LineComment"===e.type||"BlockComment"===e.type?this.visitComment(e,t):this.attach&&this.visitNode(e,t)},e}();t.CommentHandler=r},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Syntax={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",AwaitExpression:"AwaitExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForOfStatement:"ForOfStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchCase:"SwitchCase",SwitchStatement:"SwitchStatement",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"}},function(e,t,i){"use strict";var s=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])};return function(t,i){function s(){this.constructor=t}e(t,i),t.prototype=null===i?Object.create(i):(s.prototype=i.prototype,new s)}}();Object.defineProperty(t,"__esModule",{value:!0});var r=i(4),n=i(5),a=i(6),o=i(7),u=i(8),h=i(13),c=i(14);function l(e){var t;switch(e.type){case a.JSXSyntax.JSXIdentifier:t=e.name;break;case a.JSXSyntax.JSXNamespacedName:var i=e;t=l(i.namespace)+":"+l(i.name);break;case a.JSXSyntax.JSXMemberExpression:var s=e;t=l(s.object)+"."+l(s.property)}return t}h.TokenName[100]="JSXIdentifier",h.TokenName[101]="JSXText";var p=function(e){function t(t,i,s){return e.call(this,t,i,s)||this}return s(t,e),t.prototype.parsePrimaryExpression=function(){return this.match("<")?this.parseJSXRoot():e.prototype.parsePrimaryExpression.call(this)},t.prototype.startJSX=function(){this.scanner.index=this.startMarker.index,this.scanner.lineNumber=this.startMarker.line,this.scanner.lineStart=this.startMarker.index-this.startMarker.column},t.prototype.finishJSX=function(){this.nextToken()},t.prototype.reenterJSX=function(){this.startJSX(),this.expectJSX("}"),this.config.tokens&&this.tokens.pop()},t.prototype.createJSXNode=function(){return this.collectComments(),{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},t.prototype.createJSXChildNode=function(){return{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},t.prototype.scanXHTMLEntity=function(e){for(var t="&",i=!0,s=!1,n=!1,a=!1;!this.scanner.eof()&&i&&!s;){var o=this.scanner.source[this.scanner.index];if(o===e)break;if(s=";"===o,t+=o,++this.scanner.index,!s)switch(t.length){case 2:n="#"===o;break;case 3:n&&(i=(a="x"===o)||r.Character.isDecimalDigit(o.charCodeAt(0)),n=n&&!a);break;default:i=(i=i&&!(n&&!r.Character.isDecimalDigit(o.charCodeAt(0))))&&!(a&&!r.Character.isHexDigit(o.charCodeAt(0)))}}if(i&&s&&t.length>2){var u=t.substr(1,t.length-2);n&&u.length>1?t=String.fromCharCode(parseInt(u.substr(1),10)):a&&u.length>2?t=String.fromCharCode(parseInt("0"+u.substr(1),16)):n||a||!c.XHTMLEntities[u]||(t=c.XHTMLEntities[u])}return t},t.prototype.lexJSX=function(){var e=this.scanner.source.charCodeAt(this.scanner.index);if(60===e||62===e||47===e||58===e||61===e||123===e||125===e)return{type:7,value:o=this.scanner.source[this.scanner.index++],lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index-1,end:this.scanner.index};if(34===e||39===e){for(var t=this.scanner.index,i=this.scanner.source[this.scanner.index++],s="";!this.scanner.eof()&&(u=this.scanner.source[this.scanner.index++])!==i;)s+="&"===u?this.scanXHTMLEntity(i):u;return{type:8,value:s,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}if(46===e){var n=this.scanner.source.charCodeAt(this.scanner.index+1),a=this.scanner.source.charCodeAt(this.scanner.index+2),o=46===n&&46===a?"...":".";return t=this.scanner.index,this.scanner.index+=o.length,{type:7,value:o,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}if(96===e)return{type:10,value:"",lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index,end:this.scanner.index};if(r.Character.isIdentifierStart(e)&&92!==e){for(t=this.scanner.index,++this.scanner.index;!this.scanner.eof();){var u=this.scanner.source.charCodeAt(this.scanner.index);if(r.Character.isIdentifierPart(u)&&92!==u)++this.scanner.index;else{if(45!==u)break;++this.scanner.index}}return{type:100,value:this.scanner.source.slice(t,this.scanner.index),lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}return this.scanner.lex()},t.prototype.nextJSXToken=function(){this.collectComments(),this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart;var e=this.lexJSX();return this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.config.tokens&&this.tokens.push(this.convertToken(e)),e},t.prototype.nextJSXText=function(){this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart;for(var e=this.scanner.index,t="";!this.scanner.eof();){var i=this.scanner.source[this.scanner.index];if("{"===i||"<"===i)break;++this.scanner.index,t+=i,r.Character.isLineTerminator(i.charCodeAt(0))&&(++this.scanner.lineNumber,"\r"===i&&"\n"===this.scanner.source[this.scanner.index]&&++this.scanner.index,this.scanner.lineStart=this.scanner.index)}this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart;var s={type:101,value:t,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:e,end:this.scanner.index};return t.length>0&&this.config.tokens&&this.tokens.push(this.convertToken(s)),s},t.prototype.peekJSXToken=function(){var e=this.scanner.saveState();this.scanner.scanComments();var t=this.lexJSX();return this.scanner.restoreState(e),t},t.prototype.expectJSX=function(e){var t=this.nextJSXToken();7===t.type&&t.value===e||this.throwUnexpectedToken(t)},t.prototype.matchJSX=function(e){var t=this.peekJSXToken();return 7===t.type&&t.value===e},t.prototype.parseJSXIdentifier=function(){var e=this.createJSXNode(),t=this.nextJSXToken();return 100!==t.type&&this.throwUnexpectedToken(t),this.finalize(e,new n.JSXIdentifier(t.value))},t.prototype.parseJSXElementName=function(){var e=this.createJSXNode(),t=this.parseJSXIdentifier();if(this.matchJSX(":")){var i=t;this.expectJSX(":");var s=this.parseJSXIdentifier();t=this.finalize(e,new n.JSXNamespacedName(i,s))}else if(this.matchJSX("."))for(;this.matchJSX(".");){var r=t;this.expectJSX(".");var a=this.parseJSXIdentifier();t=this.finalize(e,new n.JSXMemberExpression(r,a))}return t},t.prototype.parseJSXAttributeName=function(){var e,t=this.createJSXNode(),i=this.parseJSXIdentifier();if(this.matchJSX(":")){var s=i;this.expectJSX(":");var r=this.parseJSXIdentifier();e=this.finalize(t,new n.JSXNamespacedName(s,r))}else e=i;return e},t.prototype.parseJSXStringLiteralAttribute=function(){var e=this.createJSXNode(),t=this.nextJSXToken();8!==t.type&&this.throwUnexpectedToken(t);var i=this.getTokenRaw(t);return this.finalize(e,new o.Literal(t.value,i))},t.prototype.parseJSXExpressionAttribute=function(){var e=this.createJSXNode();this.expectJSX("{"),this.finishJSX(),this.match("}")&&this.tolerateError("JSX attributes must only be assigned a non-empty expression");var t=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(e,new n.JSXExpressionContainer(t))},t.prototype.parseJSXAttributeValue=function(){return this.matchJSX("{")?this.parseJSXExpressionAttribute():this.matchJSX("<")?this.parseJSXElement():this.parseJSXStringLiteralAttribute()},t.prototype.parseJSXNameValueAttribute=function(){var e=this.createJSXNode(),t=this.parseJSXAttributeName(),i=null;return this.matchJSX("=")&&(this.expectJSX("="),i=this.parseJSXAttributeValue()),this.finalize(e,new n.JSXAttribute(t,i))},t.prototype.parseJSXSpreadAttribute=function(){var e=this.createJSXNode();this.expectJSX("{"),this.expectJSX("..."),this.finishJSX();var t=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(e,new n.JSXSpreadAttribute(t))},t.prototype.parseJSXAttributes=function(){for(var e=[];!this.matchJSX("/")&&!this.matchJSX(">");){var t=this.matchJSX("{")?this.parseJSXSpreadAttribute():this.parseJSXNameValueAttribute();e.push(t)}return e},t.prototype.parseJSXOpeningElement=function(){var e=this.createJSXNode();this.expectJSX("<");var t=this.parseJSXElementName(),i=this.parseJSXAttributes(),s=this.matchJSX("/");return s&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(e,new n.JSXOpeningElement(t,s,i))},t.prototype.parseJSXBoundaryElement=function(){var e=this.createJSXNode();if(this.expectJSX("<"),this.matchJSX("/")){this.expectJSX("/");var t=this.parseJSXElementName();return this.expectJSX(">"),this.finalize(e,new n.JSXClosingElement(t))}var i=this.parseJSXElementName(),s=this.parseJSXAttributes(),r=this.matchJSX("/");return r&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(e,new n.JSXOpeningElement(i,r,s))},t.prototype.parseJSXEmptyExpression=function(){var e=this.createJSXChildNode();return this.collectComments(),this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.finalize(e,new n.JSXEmptyExpression)},t.prototype.parseJSXExpressionContainer=function(){var e,t=this.createJSXNode();return this.expectJSX("{"),this.matchJSX("}")?(e=this.parseJSXEmptyExpression(),this.expectJSX("}")):(this.finishJSX(),e=this.parseAssignmentExpression(),this.reenterJSX()),this.finalize(t,new n.JSXExpressionContainer(e))},t.prototype.parseJSXChildren=function(){for(var e=[];!this.scanner.eof();){var t=this.createJSXChildNode(),i=this.nextJSXText();if(i.start0))break;o=this.finalize(e.node,new n.JSXElement(e.opening,e.children,e.closing)),(e=t[t.length-1]).children.push(o),t.pop()}}return e},t.prototype.parseJSXElement=function(){var e=this.createJSXNode(),t=this.parseJSXOpeningElement(),i=[],s=null;if(!t.selfClosing){var r=this.parseComplexJSXElement({node:e,opening:t,closing:s,children:i});i=r.children,s=r.closing}return this.finalize(e,new n.JSXElement(t,i,s))},t.prototype.parseJSXRoot=function(){this.config.tokens&&this.tokens.pop(),this.startJSX();var e=this.parseJSXElement();return this.finishJSX(),e},t.prototype.isStartOfExpression=function(){return e.prototype.isStartOfExpression.call(this)||this.match("<")},t}(u.Parser);t.JSXParser=p},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/};t.Character={fromCodePoint:function(e){return e<65536?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10))+String.fromCharCode(56320+(e-65536&1023))},isWhiteSpace:function(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0},isLineTerminator:function(e){return 10===e||13===e||8232===e||8233===e},isIdentifierStart:function(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||92===e||e>=128&&i.NonAsciiIdentifierStart.test(t.Character.fromCodePoint(e))},isIdentifierPart:function(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||92===e||e>=128&&i.NonAsciiIdentifierPart.test(t.Character.fromCodePoint(e))},isDecimalDigit:function(e){return e>=48&&e<=57},isHexDigit:function(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102},isOctalDigit:function(e){return e>=48&&e<=55}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s=i(6),r=function(e){this.type=s.JSXSyntax.JSXClosingElement,this.name=e};t.JSXClosingElement=r;var n=function(e,t,i){this.type=s.JSXSyntax.JSXElement,this.openingElement=e,this.children=t,this.closingElement=i};t.JSXElement=n;var a=function(){this.type=s.JSXSyntax.JSXEmptyExpression};t.JSXEmptyExpression=a;var o=function(e){this.type=s.JSXSyntax.JSXExpressionContainer,this.expression=e};t.JSXExpressionContainer=o;var u=function(e){this.type=s.JSXSyntax.JSXIdentifier,this.name=e};t.JSXIdentifier=u;var h=function(e,t){this.type=s.JSXSyntax.JSXMemberExpression,this.object=e,this.property=t};t.JSXMemberExpression=h;var c=function(e,t){this.type=s.JSXSyntax.JSXAttribute,this.name=e,this.value=t};t.JSXAttribute=c;var l=function(e,t){this.type=s.JSXSyntax.JSXNamespacedName,this.namespace=e,this.name=t};t.JSXNamespacedName=l;var p=function(e,t,i){this.type=s.JSXSyntax.JSXOpeningElement,this.name=e,this.selfClosing=t,this.attributes=i};t.JSXOpeningElement=p;var d=function(e){this.type=s.JSXSyntax.JSXSpreadAttribute,this.argument=e};t.JSXSpreadAttribute=d;var m=function(e,t){this.type=s.JSXSyntax.JSXText,this.value=e,this.raw=t};t.JSXText=m},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.JSXSyntax={JSXAttribute:"JSXAttribute",JSXClosingElement:"JSXClosingElement",JSXElement:"JSXElement",JSXEmptyExpression:"JSXEmptyExpression",JSXExpressionContainer:"JSXExpressionContainer",JSXIdentifier:"JSXIdentifier",JSXMemberExpression:"JSXMemberExpression",JSXNamespacedName:"JSXNamespacedName",JSXOpeningElement:"JSXOpeningElement",JSXSpreadAttribute:"JSXSpreadAttribute",JSXText:"JSXText"}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s=i(2),r=function(e){this.type=s.Syntax.ArrayExpression,this.elements=e};t.ArrayExpression=r;var n=function(e){this.type=s.Syntax.ArrayPattern,this.elements=e};t.ArrayPattern=n;var a=function(e,t,i){this.type=s.Syntax.ArrowFunctionExpression,this.id=null,this.params=e,this.body=t,this.generator=!1,this.expression=i,this.async=!1};t.ArrowFunctionExpression=a;var o=function(e,t,i){this.type=s.Syntax.AssignmentExpression,this.operator=e,this.left=t,this.right=i};t.AssignmentExpression=o;var u=function(e,t){this.type=s.Syntax.AssignmentPattern,this.left=e,this.right=t};t.AssignmentPattern=u;var h=function(e,t,i){this.type=s.Syntax.ArrowFunctionExpression,this.id=null,this.params=e,this.body=t,this.generator=!1,this.expression=i,this.async=!0};t.AsyncArrowFunctionExpression=h;var c=function(e,t,i){this.type=s.Syntax.FunctionDeclaration,this.id=e,this.params=t,this.body=i,this.generator=!1,this.expression=!1,this.async=!0};t.AsyncFunctionDeclaration=c;var l=function(e,t,i){this.type=s.Syntax.FunctionExpression,this.id=e,this.params=t,this.body=i,this.generator=!1,this.expression=!1,this.async=!0};t.AsyncFunctionExpression=l;var p=function(e){this.type=s.Syntax.AwaitExpression,this.argument=e};t.AwaitExpression=p;var d=function(e,t,i){var r="||"===e||"&&"===e;this.type=r?s.Syntax.LogicalExpression:s.Syntax.BinaryExpression,this.operator=e,this.left=t,this.right=i};t.BinaryExpression=d;var m=function(e){this.type=s.Syntax.BlockStatement,this.body=e};t.BlockStatement=m;var x=function(e){this.type=s.Syntax.BreakStatement,this.label=e};t.BreakStatement=x;var D=function(e,t){this.type=s.Syntax.CallExpression,this.callee=e,this.arguments=t};t.CallExpression=D;var f=function(e,t){this.type=s.Syntax.CatchClause,this.param=e,this.body=t};t.CatchClause=f;var E=function(e){this.type=s.Syntax.ClassBody,this.body=e};t.ClassBody=E;var y=function(e,t,i){this.type=s.Syntax.ClassDeclaration,this.id=e,this.superClass=t,this.body=i};t.ClassDeclaration=y;var C=function(e,t,i){this.type=s.Syntax.ClassExpression,this.id=e,this.superClass=t,this.body=i};t.ClassExpression=C;var A=function(e,t){this.type=s.Syntax.MemberExpression,this.computed=!0,this.object=e,this.property=t};t.ComputedMemberExpression=A;var v=function(e,t,i){this.type=s.Syntax.ConditionalExpression,this.test=e,this.consequent=t,this.alternate=i};t.ConditionalExpression=v;var S=function(e){this.type=s.Syntax.ContinueStatement,this.label=e};t.ContinueStatement=S;var F=function(){this.type=s.Syntax.DebuggerStatement};t.DebuggerStatement=F;var g=function(e,t){this.type=s.Syntax.ExpressionStatement,this.expression=e,this.directive=t};t.Directive=g;var k=function(e,t){this.type=s.Syntax.DoWhileStatement,this.body=e,this.test=t};t.DoWhileStatement=k;var w=function(){this.type=s.Syntax.EmptyStatement};t.EmptyStatement=w;var B=function(e){this.type=s.Syntax.ExportAllDeclaration,this.source=e};t.ExportAllDeclaration=B;var b=function(e){this.type=s.Syntax.ExportDefaultDeclaration,this.declaration=e};t.ExportDefaultDeclaration=b;var T=function(e,t,i){this.type=s.Syntax.ExportNamedDeclaration,this.declaration=e,this.specifiers=t,this.source=i};t.ExportNamedDeclaration=T;var N=function(e,t){this.type=s.Syntax.ExportSpecifier,this.exported=t,this.local=e};t.ExportSpecifier=N;var I=function(e){this.type=s.Syntax.ExpressionStatement,this.expression=e};t.ExpressionStatement=I;var M=function(e,t,i){this.type=s.Syntax.ForInStatement,this.left=e,this.right=t,this.body=i,this.each=!1};t.ForInStatement=M;var P=function(e,t,i){this.type=s.Syntax.ForOfStatement,this.left=e,this.right=t,this.body=i};t.ForOfStatement=P;var X=function(e,t,i,r){this.type=s.Syntax.ForStatement,this.init=e,this.test=t,this.update=i,this.body=r};t.ForStatement=X;var J=function(e,t,i,r){this.type=s.Syntax.FunctionDeclaration,this.id=e,this.params=t,this.body=i,this.generator=r,this.expression=!1,this.async=!1};t.FunctionDeclaration=J;var U=function(e,t,i,r){this.type=s.Syntax.FunctionExpression,this.id=e,this.params=t,this.body=i,this.generator=r,this.expression=!1,this.async=!1};t.FunctionExpression=U;var L=function(e){this.type=s.Syntax.Identifier,this.name=e};t.Identifier=L;var z=function(e,t,i){this.type=s.Syntax.IfStatement,this.test=e,this.consequent=t,this.alternate=i};t.IfStatement=z;var O=function(e,t){this.type=s.Syntax.ImportDeclaration,this.specifiers=e,this.source=t};t.ImportDeclaration=O;var R=function(e){this.type=s.Syntax.ImportDefaultSpecifier,this.local=e};t.ImportDefaultSpecifier=R;var K=function(e){this.type=s.Syntax.ImportNamespaceSpecifier,this.local=e};t.ImportNamespaceSpecifier=K;var H=function(e,t){this.type=s.Syntax.ImportSpecifier,this.local=e,this.imported=t};t.ImportSpecifier=H;var j=function(e,t){this.type=s.Syntax.LabeledStatement,this.label=e,this.body=t};t.LabeledStatement=j;var W=function(e,t){this.type=s.Syntax.Literal,this.value=e,this.raw=t};t.Literal=W;var G=function(e,t){this.type=s.Syntax.MetaProperty,this.meta=e,this.property=t};t.MetaProperty=G;var _=function(e,t,i,r,n){this.type=s.Syntax.MethodDefinition,this.key=e,this.computed=t,this.value=i,this.kind=r,this.static=n};t.MethodDefinition=_;var Y=function(e){this.type=s.Syntax.Program,this.body=e,this.sourceType="module"};t.Module=Y;var V=function(e,t){this.type=s.Syntax.NewExpression,this.callee=e,this.arguments=t};t.NewExpression=V;var q=function(e){this.type=s.Syntax.ObjectExpression,this.properties=e};t.ObjectExpression=q;var $=function(e){this.type=s.Syntax.ObjectPattern,this.properties=e};t.ObjectPattern=$;var Z=function(e,t,i,r,n,a){this.type=s.Syntax.Property,this.key=t,this.computed=i,this.value=r,this.kind=e,this.method=n,this.shorthand=a};t.Property=Z;var Q=function(e,t,i,r){this.type=s.Syntax.Literal,this.value=e,this.raw=t,this.regex={pattern:i,flags:r}};t.RegexLiteral=Q;var ee=function(e){this.type=s.Syntax.RestElement,this.argument=e};t.RestElement=ee;var te=function(e){this.type=s.Syntax.ReturnStatement,this.argument=e};t.ReturnStatement=te;var ie=function(e){this.type=s.Syntax.Program,this.body=e,this.sourceType="script"};t.Script=ie;var se=function(e){this.type=s.Syntax.SequenceExpression,this.expressions=e};t.SequenceExpression=se;var re=function(e){this.type=s.Syntax.SpreadElement,this.argument=e};t.SpreadElement=re;var ne=function(e,t){this.type=s.Syntax.MemberExpression,this.computed=!1,this.object=e,this.property=t};t.StaticMemberExpression=ne;var ae=function(){this.type=s.Syntax.Super};t.Super=ae;var oe=function(e,t){this.type=s.Syntax.SwitchCase,this.test=e,this.consequent=t};t.SwitchCase=oe;var ue=function(e,t){this.type=s.Syntax.SwitchStatement,this.discriminant=e,this.cases=t};t.SwitchStatement=ue;var he=function(e,t){this.type=s.Syntax.TaggedTemplateExpression,this.tag=e,this.quasi=t};t.TaggedTemplateExpression=he;var ce=function(e,t){this.type=s.Syntax.TemplateElement,this.value=e,this.tail=t};t.TemplateElement=ce;var le=function(e,t){this.type=s.Syntax.TemplateLiteral,this.quasis=e,this.expressions=t};t.TemplateLiteral=le;var pe=function(){this.type=s.Syntax.ThisExpression};t.ThisExpression=pe;var de=function(e){this.type=s.Syntax.ThrowStatement,this.argument=e};t.ThrowStatement=de;var me=function(e,t,i){this.type=s.Syntax.TryStatement,this.block=e,this.handler=t,this.finalizer=i};t.TryStatement=me;var xe=function(e,t){this.type=s.Syntax.UnaryExpression,this.operator=e,this.argument=t,this.prefix=!0};t.UnaryExpression=xe;var De=function(e,t,i){this.type=s.Syntax.UpdateExpression,this.operator=e,this.argument=t,this.prefix=i};t.UpdateExpression=De;var fe=function(e,t){this.type=s.Syntax.VariableDeclaration,this.declarations=e,this.kind=t};t.VariableDeclaration=fe;var Ee=function(e,t){this.type=s.Syntax.VariableDeclarator,this.id=e,this.init=t};t.VariableDeclarator=Ee;var ye=function(e,t){this.type=s.Syntax.WhileStatement,this.test=e,this.body=t};t.WhileStatement=ye;var Ce=function(e,t){this.type=s.Syntax.WithStatement,this.object=e,this.body=t};t.WithStatement=Ce;var Ae=function(e,t){this.type=s.Syntax.YieldExpression,this.argument=e,this.delegate=t};t.YieldExpression=Ae},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s=i(9),r=i(10),n=i(11),a=i(7),o=i(12),u=i(2),h=i(13),c=function(){function e(e,t,i){void 0===t&&(t={}),this.config={range:"boolean"===typeof t.range&&t.range,loc:"boolean"===typeof t.loc&&t.loc,source:null,tokens:"boolean"===typeof t.tokens&&t.tokens,comment:"boolean"===typeof t.comment&&t.comment,tolerant:"boolean"===typeof t.tolerant&&t.tolerant},this.config.loc&&t.source&&null!==t.source&&(this.config.source=String(t.source)),this.delegate=i,this.errorHandler=new r.ErrorHandler,this.errorHandler.tolerant=this.config.tolerant,this.scanner=new o.Scanner(e,this.errorHandler),this.scanner.trackComment=this.config.comment,this.operatorPrecedence={")":0,";":0,",":0,"=":0,"]":0,"||":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":11,"/":11,"%":11},this.lookahead={type:2,value:"",lineNumber:this.scanner.lineNumber,lineStart:0,start:0,end:0},this.hasLineTerminator=!1,this.context={isModule:!1,await:!1,allowIn:!0,allowStrictDirective:!0,allowYield:!0,firstCoverInitializedNameError:null,isAssignmentTarget:!1,isBindingElement:!1,inFunctionBody:!1,inIteration:!1,inSwitch:!1,labelSet:{},strict:!1},this.tokens=[],this.startMarker={index:0,line:this.scanner.lineNumber,column:0},this.lastMarker={index:0,line:this.scanner.lineNumber,column:0},this.nextToken(),this.lastMarker={index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}return e.prototype.throwError=function(e){for(var t=[],i=1;i0&&this.delegate)for(var t=0;t>="===e||">>>="===e||"&="===e||"^="===e||"|="===e},e.prototype.isolateCoverGrammar=function(e){var t=this.context.isBindingElement,i=this.context.isAssignmentTarget,s=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var r=e.call(this);return null!==this.context.firstCoverInitializedNameError&&this.throwUnexpectedToken(this.context.firstCoverInitializedNameError),this.context.isBindingElement=t,this.context.isAssignmentTarget=i,this.context.firstCoverInitializedNameError=s,r},e.prototype.inheritCoverGrammar=function(e){var t=this.context.isBindingElement,i=this.context.isAssignmentTarget,s=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var r=e.call(this);return this.context.isBindingElement=this.context.isBindingElement&&t,this.context.isAssignmentTarget=this.context.isAssignmentTarget&&i,this.context.firstCoverInitializedNameError=s||this.context.firstCoverInitializedNameError,r},e.prototype.consumeSemicolon=function(){this.match(";")?this.nextToken():this.hasLineTerminator||(2===this.lookahead.type||this.match("}")||this.throwUnexpectedToken(this.lookahead),this.lastMarker.index=this.startMarker.index,this.lastMarker.line=this.startMarker.line,this.lastMarker.column=this.startMarker.column)},e.prototype.parsePrimaryExpression=function(){var e,t,i,s=this.createNode();switch(this.lookahead.type){case 3:(this.context.isModule||this.context.await)&&"await"===this.lookahead.value&&this.tolerateUnexpectedToken(this.lookahead),e=this.matchAsyncFunction()?this.parseFunctionExpression():this.finalize(s,new a.Identifier(this.nextToken().value));break;case 6:case 8:this.context.strict&&this.lookahead.octal&&this.tolerateUnexpectedToken(this.lookahead,n.Messages.StrictOctalLiteral),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,t=this.nextToken(),i=this.getTokenRaw(t),e=this.finalize(s,new a.Literal(t.value,i));break;case 1:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,t=this.nextToken(),i=this.getTokenRaw(t),e=this.finalize(s,new a.Literal("true"===t.value,i));break;case 5:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,t=this.nextToken(),i=this.getTokenRaw(t),e=this.finalize(s,new a.Literal(null,i));break;case 10:e=this.parseTemplateLiteral();break;case 7:switch(this.lookahead.value){case"(":this.context.isBindingElement=!1,e=this.inheritCoverGrammar(this.parseGroupExpression);break;case"[":e=this.inheritCoverGrammar(this.parseArrayInitializer);break;case"{":e=this.inheritCoverGrammar(this.parseObjectInitializer);break;case"/":case"/=":this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.scanner.index=this.startMarker.index,t=this.nextRegexToken(),i=this.getTokenRaw(t),e=this.finalize(s,new a.RegexLiteral(t.regex,i,t.pattern,t.flags));break;default:e=this.throwUnexpectedToken(this.nextToken())}break;case 4:!this.context.strict&&this.context.allowYield&&this.matchKeyword("yield")?e=this.parseIdentifierName():!this.context.strict&&this.matchKeyword("let")?e=this.finalize(s,new a.Identifier(this.nextToken().value)):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.matchKeyword("function")?e=this.parseFunctionExpression():this.matchKeyword("this")?(this.nextToken(),e=this.finalize(s,new a.ThisExpression)):e=this.matchKeyword("class")?this.parseClassExpression():this.throwUnexpectedToken(this.nextToken()));break;default:e=this.throwUnexpectedToken(this.nextToken())}return e},e.prototype.parseSpreadElement=function(){var e=this.createNode();this.expect("...");var t=this.inheritCoverGrammar(this.parseAssignmentExpression);return this.finalize(e,new a.SpreadElement(t))},e.prototype.parseArrayInitializer=function(){var e=this.createNode(),t=[];for(this.expect("[");!this.match("]");)if(this.match(","))this.nextToken(),t.push(null);else if(this.match("...")){var i=this.parseSpreadElement();this.match("]")||(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.expect(",")),t.push(i)}else t.push(this.inheritCoverGrammar(this.parseAssignmentExpression)),this.match("]")||this.expect(",");return this.expect("]"),this.finalize(e,new a.ArrayExpression(t))},e.prototype.parsePropertyMethod=function(e){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var t=this.context.strict,i=this.context.allowStrictDirective;this.context.allowStrictDirective=e.simple;var s=this.isolateCoverGrammar(this.parseFunctionSourceElements);return this.context.strict&&e.firstRestricted&&this.tolerateUnexpectedToken(e.firstRestricted,e.message),this.context.strict&&e.stricted&&this.tolerateUnexpectedToken(e.stricted,e.message),this.context.strict=t,this.context.allowStrictDirective=i,s},e.prototype.parsePropertyMethodFunction=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!0;var i=this.parseFormalParameters(),s=this.parsePropertyMethod(i);return this.context.allowYield=t,this.finalize(e,new a.FunctionExpression(null,i.params,s,!1))},e.prototype.parsePropertyMethodAsyncFunction=function(){var e=this.createNode(),t=this.context.allowYield,i=this.context.await;this.context.allowYield=!1,this.context.await=!0;var s=this.parseFormalParameters(),r=this.parsePropertyMethod(s);return this.context.allowYield=t,this.context.await=i,this.finalize(e,new a.AsyncFunctionExpression(null,s.params,r))},e.prototype.parseObjectPropertyKey=function(){var e,t=this.createNode(),i=this.nextToken();switch(i.type){case 8:case 6:this.context.strict&&i.octal&&this.tolerateUnexpectedToken(i,n.Messages.StrictOctalLiteral);var s=this.getTokenRaw(i);e=this.finalize(t,new a.Literal(i.value,s));break;case 3:case 1:case 5:case 4:e=this.finalize(t,new a.Identifier(i.value));break;case 7:"["===i.value?(e=this.isolateCoverGrammar(this.parseAssignmentExpression),this.expect("]")):e=this.throwUnexpectedToken(i);break;default:e=this.throwUnexpectedToken(i)}return e},e.prototype.isPropertyKey=function(e,t){return e.type===u.Syntax.Identifier&&e.name===t||e.type===u.Syntax.Literal&&e.value===t},e.prototype.parseObjectProperty=function(e){var t,i=this.createNode(),s=this.lookahead,r=null,o=null,u=!1,h=!1,c=!1,l=!1;if(3===s.type){var p=s.value;this.nextToken(),u=this.match("["),r=(l=!this.hasLineTerminator&&"async"===p&&!this.match(":")&&!this.match("(")&&!this.match("*")&&!this.match(","))?this.parseObjectPropertyKey():this.finalize(i,new a.Identifier(p))}else this.match("*")?this.nextToken():(u=this.match("["),r=this.parseObjectPropertyKey());var d=this.qualifiedPropertyName(this.lookahead);if(3===s.type&&!l&&"get"===s.value&&d)t="get",u=this.match("["),r=this.parseObjectPropertyKey(),this.context.allowYield=!1,o=this.parseGetterMethod();else if(3===s.type&&!l&&"set"===s.value&&d)t="set",u=this.match("["),r=this.parseObjectPropertyKey(),o=this.parseSetterMethod();else if(7===s.type&&"*"===s.value&&d)t="init",u=this.match("["),r=this.parseObjectPropertyKey(),o=this.parseGeneratorMethod(),h=!0;else if(r||this.throwUnexpectedToken(this.lookahead),t="init",this.match(":")&&!l)!u&&this.isPropertyKey(r,"__proto__")&&(e.value&&this.tolerateError(n.Messages.DuplicateProtoProperty),e.value=!0),this.nextToken(),o=this.inheritCoverGrammar(this.parseAssignmentExpression);else if(this.match("("))o=l?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction(),h=!0;else if(3===s.type)if(p=this.finalize(i,new a.Identifier(s.value)),this.match("=")){this.context.firstCoverInitializedNameError=this.lookahead,this.nextToken(),c=!0;var m=this.isolateCoverGrammar(this.parseAssignmentExpression);o=this.finalize(i,new a.AssignmentPattern(p,m))}else c=!0,o=p;else this.throwUnexpectedToken(this.nextToken());return this.finalize(i,new a.Property(t,r,u,o,h,c))},e.prototype.parseObjectInitializer=function(){var e=this.createNode();this.expect("{");for(var t=[],i={value:!1};!this.match("}");)t.push(this.parseObjectProperty(i)),this.match("}")||this.expectCommaSeparator();return this.expect("}"),this.finalize(e,new a.ObjectExpression(t))},e.prototype.parseTemplateHead=function(){s.assert(this.lookahead.head,"Template literal must start with a template head");var e=this.createNode(),t=this.nextToken(),i=t.value,r=t.cooked;return this.finalize(e,new a.TemplateElement({raw:i,cooked:r},t.tail))},e.prototype.parseTemplateElement=function(){10!==this.lookahead.type&&this.throwUnexpectedToken();var e=this.createNode(),t=this.nextToken(),i=t.value,s=t.cooked;return this.finalize(e,new a.TemplateElement({raw:i,cooked:s},t.tail))},e.prototype.parseTemplateLiteral=function(){var e=this.createNode(),t=[],i=[],s=this.parseTemplateHead();for(i.push(s);!s.tail;)t.push(this.parseExpression()),s=this.parseTemplateElement(),i.push(s);return this.finalize(e,new a.TemplateLiteral(i,t))},e.prototype.reinterpretExpressionAsPattern=function(e){switch(e.type){case u.Syntax.Identifier:case u.Syntax.MemberExpression:case u.Syntax.RestElement:case u.Syntax.AssignmentPattern:break;case u.Syntax.SpreadElement:e.type=u.Syntax.RestElement,this.reinterpretExpressionAsPattern(e.argument);break;case u.Syntax.ArrayExpression:e.type=u.Syntax.ArrayPattern;for(var t=0;t")||this.expect("=>"),e={type:"ArrowParameterPlaceHolder",params:[],async:!1};else{var t=this.lookahead,i=[];if(this.match("..."))e=this.parseRestElement(i),this.expect(")"),this.match("=>")||this.expect("=>"),e={type:"ArrowParameterPlaceHolder",params:[e],async:!1};else{var s=!1;if(this.context.isBindingElement=!0,e=this.inheritCoverGrammar(this.parseAssignmentExpression),this.match(",")){var r=[];for(this.context.isAssignmentTarget=!1,r.push(e);2!==this.lookahead.type&&this.match(",");){if(this.nextToken(),this.match(")")){this.nextToken();for(var n=0;n")||this.expect("=>"),this.context.isBindingElement=!1,n=0;n")&&(e.type===u.Syntax.Identifier&&"yield"===e.name&&(s=!0,e={type:"ArrowParameterPlaceHolder",params:[e],async:!1}),!s)){if(this.context.isBindingElement||this.throwUnexpectedToken(this.lookahead),e.type===u.Syntax.SequenceExpression)for(n=0;n")){for(var u=0;u0){this.nextToken(),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;for(var r=[e,this.lookahead],n=t,o=this.isolateCoverGrammar(this.parseExponentiationExpression),u=[n,i.value,o],h=[s];!((s=this.binaryPrecedence(this.lookahead))<=0);){for(;u.length>2&&s<=h[h.length-1];){o=u.pop();var c=u.pop();h.pop(),n=u.pop(),r.pop();var l=this.startNode(r[r.length-1]);u.push(this.finalize(l,new a.BinaryExpression(c,n,o)))}u.push(this.nextToken().value),h.push(s),r.push(this.lookahead),u.push(this.isolateCoverGrammar(this.parseExponentiationExpression))}var p=u.length-1;t=u[p];for(var d=r.pop();p>1;){var m=r.pop(),x=d&&d.lineStart;l=this.startNode(m,x),c=u[p-1],t=this.finalize(l,new a.BinaryExpression(c,u[p-2],t)),p-=2,d=m}}return t},e.prototype.parseConditionalExpression=function(){var e=this.lookahead,t=this.inheritCoverGrammar(this.parseBinaryExpression);if(this.match("?")){this.nextToken();var i=this.context.allowIn;this.context.allowIn=!0;var s=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowIn=i,this.expect(":");var r=this.isolateCoverGrammar(this.parseAssignmentExpression);t=this.finalize(this.startNode(e),new a.ConditionalExpression(t,s,r)),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}return t},e.prototype.checkPatternParam=function(e,t){switch(t.type){case u.Syntax.Identifier:this.validateParam(e,t,t.name);break;case u.Syntax.RestElement:this.checkPatternParam(e,t.argument);break;case u.Syntax.AssignmentPattern:this.checkPatternParam(e,t.left);break;case u.Syntax.ArrayPattern:for(var i=0;i")){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var r=e.async,o=this.reinterpretAsCoverFormalsList(e);if(o){this.hasLineTerminator&&this.tolerateUnexpectedToken(this.lookahead),this.context.firstCoverInitializedNameError=null;var h=this.context.strict,c=this.context.allowStrictDirective;this.context.allowStrictDirective=o.simple;var l=this.context.allowYield,p=this.context.await;this.context.allowYield=!0,this.context.await=r;var d=this.startNode(t);this.expect("=>");var m=void 0;if(this.match("{")){var x=this.context.allowIn;this.context.allowIn=!0,m=this.parseFunctionSourceElements(),this.context.allowIn=x}else m=this.isolateCoverGrammar(this.parseAssignmentExpression);var D=m.type!==u.Syntax.BlockStatement;this.context.strict&&o.firstRestricted&&this.throwUnexpectedToken(o.firstRestricted,o.message),this.context.strict&&o.stricted&&this.tolerateUnexpectedToken(o.stricted,o.message),e=r?this.finalize(d,new a.AsyncArrowFunctionExpression(o.params,m,D)):this.finalize(d,new a.ArrowFunctionExpression(o.params,m,D)),this.context.strict=h,this.context.allowStrictDirective=c,this.context.allowYield=l,this.context.await=p}}else if(this.matchAssign()){if(this.context.isAssignmentTarget||this.tolerateError(n.Messages.InvalidLHSInAssignment),this.context.strict&&e.type===u.Syntax.Identifier){var f=e;this.scanner.isRestrictedWord(f.name)&&this.tolerateUnexpectedToken(i,n.Messages.StrictLHSAssignment),this.scanner.isStrictModeReservedWord(f.name)&&this.tolerateUnexpectedToken(i,n.Messages.StrictReservedWord)}this.match("=")?this.reinterpretExpressionAsPattern(e):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1);var E=(i=this.nextToken()).value,y=this.isolateCoverGrammar(this.parseAssignmentExpression);e=this.finalize(this.startNode(t),new a.AssignmentExpression(E,e,y)),this.context.firstCoverInitializedNameError=null}}return e},e.prototype.parseExpression=function(){var e=this.lookahead,t=this.isolateCoverGrammar(this.parseAssignmentExpression);if(this.match(",")){var i=[];for(i.push(t);2!==this.lookahead.type&&this.match(",");)this.nextToken(),i.push(this.isolateCoverGrammar(this.parseAssignmentExpression));t=this.finalize(this.startNode(e),new a.SequenceExpression(i))}return t},e.prototype.parseStatementListItem=function(){var e;if(this.context.isAssignmentTarget=!0,this.context.isBindingElement=!0,4===this.lookahead.type)switch(this.lookahead.value){case"export":this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,n.Messages.IllegalExportDeclaration),e=this.parseExportDeclaration();break;case"import":this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,n.Messages.IllegalImportDeclaration),e=this.parseImportDeclaration();break;case"const":e=this.parseLexicalDeclaration({inFor:!1});break;case"function":e=this.parseFunctionDeclaration();break;case"class":e=this.parseClassDeclaration();break;case"let":e=this.isLexicalDeclaration()?this.parseLexicalDeclaration({inFor:!1}):this.parseStatement();break;default:e=this.parseStatement()}else e=this.parseStatement();return e},e.prototype.parseBlock=function(){var e=this.createNode();this.expect("{");for(var t=[];!this.match("}");)t.push(this.parseStatementListItem());return this.expect("}"),this.finalize(e,new a.BlockStatement(t))},e.prototype.parseLexicalBinding=function(e,t){var i=this.createNode(),s=this.parsePattern([],e);this.context.strict&&s.type===u.Syntax.Identifier&&this.scanner.isRestrictedWord(s.name)&&this.tolerateError(n.Messages.StrictVarName);var r=null;return"const"===e?this.matchKeyword("in")||this.matchContextualKeyword("of")||(this.match("=")?(this.nextToken(),r=this.isolateCoverGrammar(this.parseAssignmentExpression)):this.throwError(n.Messages.DeclarationMissingInitializer,"const")):(!t.inFor&&s.type!==u.Syntax.Identifier||this.match("="))&&(this.expect("="),r=this.isolateCoverGrammar(this.parseAssignmentExpression)),this.finalize(i,new a.VariableDeclarator(s,r))},e.prototype.parseBindingList=function(e,t){for(var i=[this.parseLexicalBinding(e,t)];this.match(",");)this.nextToken(),i.push(this.parseLexicalBinding(e,t));return i},e.prototype.isLexicalDeclaration=function(){var e=this.scanner.saveState();this.scanner.scanComments();var t=this.scanner.lex();return this.scanner.restoreState(e),3===t.type||7===t.type&&"["===t.value||7===t.type&&"{"===t.value||4===t.type&&"let"===t.value||4===t.type&&"yield"===t.value},e.prototype.parseLexicalDeclaration=function(e){var t=this.createNode(),i=this.nextToken().value;s.assert("let"===i||"const"===i,"Lexical declaration must be either let or const");var r=this.parseBindingList(i,e);return this.consumeSemicolon(),this.finalize(t,new a.VariableDeclaration(r,i))},e.prototype.parseBindingRestElement=function(e,t){var i=this.createNode();this.expect("...");var s=this.parsePattern(e,t);return this.finalize(i,new a.RestElement(s))},e.prototype.parseArrayPattern=function(e,t){var i=this.createNode();this.expect("[");for(var s=[];!this.match("]");)if(this.match(","))this.nextToken(),s.push(null);else{if(this.match("...")){s.push(this.parseBindingRestElement(e,t));break}s.push(this.parsePatternWithDefault(e,t)),this.match("]")||this.expect(",")}return this.expect("]"),this.finalize(i,new a.ArrayPattern(s))},e.prototype.parsePropertyPattern=function(e,t){var i,s,r=this.createNode(),n=!1,o=!1;if(3===this.lookahead.type){var u=this.lookahead;i=this.parseVariableIdentifier();var h=this.finalize(r,new a.Identifier(u.value));if(this.match("=")){e.push(u),o=!0,this.nextToken();var c=this.parseAssignmentExpression();s=this.finalize(this.startNode(u),new a.AssignmentPattern(h,c))}else this.match(":")?(this.expect(":"),s=this.parsePatternWithDefault(e,t)):(e.push(u),o=!0,s=h)}else n=this.match("["),i=this.parseObjectPropertyKey(),this.expect(":"),s=this.parsePatternWithDefault(e,t);return this.finalize(r,new a.Property("init",i,n,s,!1,o))},e.prototype.parseObjectPattern=function(e,t){var i=this.createNode(),s=[];for(this.expect("{");!this.match("}");)s.push(this.parsePropertyPattern(e,t)),this.match("}")||this.expect(",");return this.expect("}"),this.finalize(i,new a.ObjectPattern(s))},e.prototype.parsePattern=function(e,t){var i;return this.match("[")?i=this.parseArrayPattern(e,t):this.match("{")?i=this.parseObjectPattern(e,t):(!this.matchKeyword("let")||"const"!==t&&"let"!==t||this.tolerateUnexpectedToken(this.lookahead,n.Messages.LetInLexicalBinding),e.push(this.lookahead),i=this.parseVariableIdentifier(t)),i},e.prototype.parsePatternWithDefault=function(e,t){var i=this.lookahead,s=this.parsePattern(e,t);if(this.match("=")){this.nextToken();var r=this.context.allowYield;this.context.allowYield=!0;var n=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowYield=r,s=this.finalize(this.startNode(i),new a.AssignmentPattern(s,n))}return s},e.prototype.parseVariableIdentifier=function(e){var t=this.createNode(),i=this.nextToken();return 4===i.type&&"yield"===i.value?this.context.strict?this.tolerateUnexpectedToken(i,n.Messages.StrictReservedWord):this.context.allowYield||this.throwUnexpectedToken(i):3!==i.type?this.context.strict&&4===i.type&&this.scanner.isStrictModeReservedWord(i.value)?this.tolerateUnexpectedToken(i,n.Messages.StrictReservedWord):(this.context.strict||"let"!==i.value||"var"!==e)&&this.throwUnexpectedToken(i):(this.context.isModule||this.context.await)&&3===i.type&&"await"===i.value&&this.tolerateUnexpectedToken(i),this.finalize(t,new a.Identifier(i.value))},e.prototype.parseVariableDeclaration=function(e){var t=this.createNode(),i=this.parsePattern([],"var");this.context.strict&&i.type===u.Syntax.Identifier&&this.scanner.isRestrictedWord(i.name)&&this.tolerateError(n.Messages.StrictVarName);var s=null;return this.match("=")?(this.nextToken(),s=this.isolateCoverGrammar(this.parseAssignmentExpression)):i.type===u.Syntax.Identifier||e.inFor||this.expect("="),this.finalize(t,new a.VariableDeclarator(i,s))},e.prototype.parseVariableDeclarationList=function(e){var t={inFor:e.inFor},i=[];for(i.push(this.parseVariableDeclaration(t));this.match(",");)this.nextToken(),i.push(this.parseVariableDeclaration(t));return i},e.prototype.parseVariableStatement=function(){var e=this.createNode();this.expectKeyword("var");var t=this.parseVariableDeclarationList({inFor:!1});return this.consumeSemicolon(),this.finalize(e,new a.VariableDeclaration(t,"var"))},e.prototype.parseEmptyStatement=function(){var e=this.createNode();return this.expect(";"),this.finalize(e,new a.EmptyStatement)},e.prototype.parseExpressionStatement=function(){var e=this.createNode(),t=this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new a.ExpressionStatement(t))},e.prototype.parseIfClause=function(){return this.context.strict&&this.matchKeyword("function")&&this.tolerateError(n.Messages.StrictFunction),this.parseStatement()},e.prototype.parseIfStatement=function(){var e,t=this.createNode(),i=null;this.expectKeyword("if"),this.expect("(");var s=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new a.EmptyStatement)):(this.expect(")"),e=this.parseIfClause(),this.matchKeyword("else")&&(this.nextToken(),i=this.parseIfClause())),this.finalize(t,new a.IfStatement(s,e,i))},e.prototype.parseDoWhileStatement=function(){var e=this.createNode();this.expectKeyword("do");var t=this.context.inIteration;this.context.inIteration=!0;var i=this.parseStatement();this.context.inIteration=t,this.expectKeyword("while"),this.expect("(");var s=this.parseExpression();return!this.match(")")&&this.config.tolerant?this.tolerateUnexpectedToken(this.nextToken()):(this.expect(")"),this.match(";")&&this.nextToken()),this.finalize(e,new a.DoWhileStatement(i,s))},e.prototype.parseWhileStatement=function(){var e,t=this.createNode();this.expectKeyword("while"),this.expect("(");var i=this.parseExpression();if(!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new a.EmptyStatement);else{this.expect(")");var s=this.context.inIteration;this.context.inIteration=!0,e=this.parseStatement(),this.context.inIteration=s}return this.finalize(t,new a.WhileStatement(i,e))},e.prototype.parseForStatement=function(){var e,t,i,s=null,r=null,o=null,h=!0,c=this.createNode();if(this.expectKeyword("for"),this.expect("("),this.match(";"))this.nextToken();else if(this.matchKeyword("var")){s=this.createNode(),this.nextToken();var l=this.context.allowIn;this.context.allowIn=!1;var p=this.parseVariableDeclarationList({inFor:!0});if(this.context.allowIn=l,1===p.length&&this.matchKeyword("in")){var d=p[0];d.init&&(d.id.type===u.Syntax.ArrayPattern||d.id.type===u.Syntax.ObjectPattern||this.context.strict)&&this.tolerateError(n.Messages.ForInOfLoopInitializer,"for-in"),s=this.finalize(s,new a.VariableDeclaration(p,"var")),this.nextToken(),e=s,t=this.parseExpression(),s=null}else 1===p.length&&null===p[0].init&&this.matchContextualKeyword("of")?(s=this.finalize(s,new a.VariableDeclaration(p,"var")),this.nextToken(),e=s,t=this.parseAssignmentExpression(),s=null,h=!1):(s=this.finalize(s,new a.VariableDeclaration(p,"var")),this.expect(";"))}else if(this.matchKeyword("const")||this.matchKeyword("let")){s=this.createNode();var m=this.nextToken().value;this.context.strict||"in"!==this.lookahead.value?(l=this.context.allowIn,this.context.allowIn=!1,p=this.parseBindingList(m,{inFor:!0}),this.context.allowIn=l,1===p.length&&null===p[0].init&&this.matchKeyword("in")?(s=this.finalize(s,new a.VariableDeclaration(p,m)),this.nextToken(),e=s,t=this.parseExpression(),s=null):1===p.length&&null===p[0].init&&this.matchContextualKeyword("of")?(s=this.finalize(s,new a.VariableDeclaration(p,m)),this.nextToken(),e=s,t=this.parseAssignmentExpression(),s=null,h=!1):(this.consumeSemicolon(),s=this.finalize(s,new a.VariableDeclaration(p,m)))):(s=this.finalize(s,new a.Identifier(m)),this.nextToken(),e=s,t=this.parseExpression(),s=null)}else{var x=this.lookahead;if(l=this.context.allowIn,this.context.allowIn=!1,s=this.inheritCoverGrammar(this.parseAssignmentExpression),this.context.allowIn=l,this.matchKeyword("in"))this.context.isAssignmentTarget&&s.type!==u.Syntax.AssignmentExpression||this.tolerateError(n.Messages.InvalidLHSInForIn),this.nextToken(),this.reinterpretExpressionAsPattern(s),e=s,t=this.parseExpression(),s=null;else if(this.matchContextualKeyword("of"))this.context.isAssignmentTarget&&s.type!==u.Syntax.AssignmentExpression||this.tolerateError(n.Messages.InvalidLHSInForLoop),this.nextToken(),this.reinterpretExpressionAsPattern(s),e=s,t=this.parseAssignmentExpression(),s=null,h=!1;else{if(this.match(",")){for(var D=[s];this.match(",");)this.nextToken(),D.push(this.isolateCoverGrammar(this.parseAssignmentExpression));s=this.finalize(this.startNode(x),new a.SequenceExpression(D))}this.expect(";")}}if("undefined"===typeof e&&(this.match(";")||(r=this.parseExpression()),this.expect(";"),this.match(")")||(o=this.parseExpression())),!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),i=this.finalize(this.createNode(),new a.EmptyStatement);else{this.expect(")");var f=this.context.inIteration;this.context.inIteration=!0,i=this.isolateCoverGrammar(this.parseStatement),this.context.inIteration=f}return"undefined"===typeof e?this.finalize(c,new a.ForStatement(s,r,o,i)):h?this.finalize(c,new a.ForInStatement(e,t,i)):this.finalize(c,new a.ForOfStatement(e,t,i))},e.prototype.parseContinueStatement=function(){var e=this.createNode();this.expectKeyword("continue");var t=null;if(3===this.lookahead.type&&!this.hasLineTerminator){var i=this.parseVariableIdentifier();t=i;var s="$"+i.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,s)||this.throwError(n.Messages.UnknownLabel,i.name)}return this.consumeSemicolon(),null!==t||this.context.inIteration||this.throwError(n.Messages.IllegalContinue),this.finalize(e,new a.ContinueStatement(t))},e.prototype.parseBreakStatement=function(){var e=this.createNode();this.expectKeyword("break");var t=null;if(3===this.lookahead.type&&!this.hasLineTerminator){var i=this.parseVariableIdentifier(),s="$"+i.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,s)||this.throwError(n.Messages.UnknownLabel,i.name),t=i}return this.consumeSemicolon(),null!==t||this.context.inIteration||this.context.inSwitch||this.throwError(n.Messages.IllegalBreak),this.finalize(e,new a.BreakStatement(t))},e.prototype.parseReturnStatement=function(){this.context.inFunctionBody||this.tolerateError(n.Messages.IllegalReturn);var e=this.createNode();this.expectKeyword("return");var t=(this.match(";")||this.match("}")||this.hasLineTerminator||2===this.lookahead.type)&&8!==this.lookahead.type&&10!==this.lookahead.type?null:this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new a.ReturnStatement(t))},e.prototype.parseWithStatement=function(){this.context.strict&&this.tolerateError(n.Messages.StrictModeWith);var e,t=this.createNode();this.expectKeyword("with"),this.expect("(");var i=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new a.EmptyStatement)):(this.expect(")"),e=this.parseStatement()),this.finalize(t,new a.WithStatement(i,e))},e.prototype.parseSwitchCase=function(){var e,t=this.createNode();this.matchKeyword("default")?(this.nextToken(),e=null):(this.expectKeyword("case"),e=this.parseExpression()),this.expect(":");for(var i=[];!(this.match("}")||this.matchKeyword("default")||this.matchKeyword("case"));)i.push(this.parseStatementListItem());return this.finalize(t,new a.SwitchCase(e,i))},e.prototype.parseSwitchStatement=function(){var e=this.createNode();this.expectKeyword("switch"),this.expect("(");var t=this.parseExpression();this.expect(")");var i=this.context.inSwitch;this.context.inSwitch=!0;var s=[],r=!1;for(this.expect("{");!this.match("}");){var o=this.parseSwitchCase();null===o.test&&(r&&this.throwError(n.Messages.MultipleDefaultsInSwitch),r=!0),s.push(o)}return this.expect("}"),this.context.inSwitch=i,this.finalize(e,new a.SwitchStatement(t,s))},e.prototype.parseLabelledStatement=function(){var e,t=this.createNode(),i=this.parseExpression();if(i.type===u.Syntax.Identifier&&this.match(":")){this.nextToken();var s=i,r="$"+s.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,r)&&this.throwError(n.Messages.Redeclaration,"Label",s.name),this.context.labelSet[r]=!0;var o=void 0;if(this.matchKeyword("class"))this.tolerateUnexpectedToken(this.lookahead),o=this.parseClassDeclaration();else if(this.matchKeyword("function")){var h=this.lookahead,c=this.parseFunctionDeclaration();this.context.strict?this.tolerateUnexpectedToken(h,n.Messages.StrictFunction):c.generator&&this.tolerateUnexpectedToken(h,n.Messages.GeneratorInLegacyContext),o=c}else o=this.parseStatement();delete this.context.labelSet[r],e=new a.LabeledStatement(s,o)}else this.consumeSemicolon(),e=new a.ExpressionStatement(i);return this.finalize(t,e)},e.prototype.parseThrowStatement=function(){var e=this.createNode();this.expectKeyword("throw"),this.hasLineTerminator&&this.throwError(n.Messages.NewlineAfterThrow);var t=this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new a.ThrowStatement(t))},e.prototype.parseCatchClause=function(){var e=this.createNode();this.expectKeyword("catch"),this.expect("("),this.match(")")&&this.throwUnexpectedToken(this.lookahead);for(var t=[],i=this.parsePattern(t),s={},r=0;r0&&this.tolerateError(n.Messages.BadGetterArity);var s=this.parsePropertyMethod(i);return this.context.allowYield=t,this.finalize(e,new a.FunctionExpression(null,i.params,s,!1))},e.prototype.parseSetterMethod=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!0;var i=this.parseFormalParameters();1!==i.params.length?this.tolerateError(n.Messages.BadSetterArity):i.params[0]instanceof a.RestElement&&this.tolerateError(n.Messages.BadSetterRestParameter);var s=this.parsePropertyMethod(i);return this.context.allowYield=t,this.finalize(e,new a.FunctionExpression(null,i.params,s,!1))},e.prototype.parseGeneratorMethod=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!0;var i=this.parseFormalParameters();this.context.allowYield=!1;var s=this.parsePropertyMethod(i);return this.context.allowYield=t,this.finalize(e,new a.FunctionExpression(null,i.params,s,!0))},e.prototype.isStartOfExpression=function(){var e=!0,t=this.lookahead.value;switch(this.lookahead.type){case 7:e="["===t||"("===t||"{"===t||"+"===t||"-"===t||"!"===t||"~"===t||"++"===t||"--"===t||"/"===t||"/="===t;break;case 4:e="class"===t||"delete"===t||"function"===t||"let"===t||"new"===t||"super"===t||"this"===t||"typeof"===t||"void"===t||"yield"===t}return e},e.prototype.parseYieldExpression=function(){var e=this.createNode();this.expectKeyword("yield");var t=null,i=!1;if(!this.hasLineTerminator){var s=this.context.allowYield;this.context.allowYield=!1,(i=this.match("*"))?(this.nextToken(),t=this.parseAssignmentExpression()):this.isStartOfExpression()&&(t=this.parseAssignmentExpression()),this.context.allowYield=s}return this.finalize(e,new a.YieldExpression(t,i))},e.prototype.parseClassElement=function(e){var t=this.lookahead,i=this.createNode(),s="",r=null,o=null,u=!1,h=!1,c=!1,l=!1;if(this.match("*"))this.nextToken();else if(u=this.match("["),"static"===(r=this.parseObjectPropertyKey()).name&&(this.qualifiedPropertyName(this.lookahead)||this.match("*"))&&(t=this.lookahead,c=!0,u=this.match("["),this.match("*")?this.nextToken():r=this.parseObjectPropertyKey()),3===t.type&&!this.hasLineTerminator&&"async"===t.value){var p=this.lookahead.value;":"!==p&&"("!==p&&"*"!==p&&(l=!0,t=this.lookahead,r=this.parseObjectPropertyKey(),3===t.type&&"constructor"===t.value&&this.tolerateUnexpectedToken(t,n.Messages.ConstructorIsAsync))}var d=this.qualifiedPropertyName(this.lookahead);return 3===t.type?"get"===t.value&&d?(s="get",u=this.match("["),r=this.parseObjectPropertyKey(),this.context.allowYield=!1,o=this.parseGetterMethod()):"set"===t.value&&d&&(s="set",u=this.match("["),r=this.parseObjectPropertyKey(),o=this.parseSetterMethod()):7===t.type&&"*"===t.value&&d&&(s="init",u=this.match("["),r=this.parseObjectPropertyKey(),o=this.parseGeneratorMethod(),h=!0),!s&&r&&this.match("(")&&(s="init",o=l?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction(),h=!0),s||this.throwUnexpectedToken(this.lookahead),"init"===s&&(s="method"),u||(c&&this.isPropertyKey(r,"prototype")&&this.throwUnexpectedToken(t,n.Messages.StaticPrototype),!c&&this.isPropertyKey(r,"constructor")&&(("method"!==s||!h||o&&o.generator)&&this.throwUnexpectedToken(t,n.Messages.ConstructorSpecialMethod),e.value?this.throwUnexpectedToken(t,n.Messages.DuplicateConstructor):e.value=!0,s="constructor")),this.finalize(i,new a.MethodDefinition(r,u,o,s,c))},e.prototype.parseClassElementList=function(){var e=[],t={value:!1};for(this.expect("{");!this.match("}");)this.match(";")?this.nextToken():e.push(this.parseClassElement(t));return this.expect("}"),e},e.prototype.parseClassBody=function(){var e=this.createNode(),t=this.parseClassElementList();return this.finalize(e,new a.ClassBody(t))},e.prototype.parseClassDeclaration=function(e){var t=this.createNode(),i=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var s=e&&3!==this.lookahead.type?null:this.parseVariableIdentifier(),r=null;this.matchKeyword("extends")&&(this.nextToken(),r=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var n=this.parseClassBody();return this.context.strict=i,this.finalize(t,new a.ClassDeclaration(s,r,n))},e.prototype.parseClassExpression=function(){var e=this.createNode(),t=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var i=3===this.lookahead.type?this.parseVariableIdentifier():null,s=null;this.matchKeyword("extends")&&(this.nextToken(),s=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var r=this.parseClassBody();return this.context.strict=t,this.finalize(e,new a.ClassExpression(i,s,r))},e.prototype.parseModule=function(){this.context.strict=!0,this.context.isModule=!0,this.scanner.isModule=!0;for(var e=this.createNode(),t=this.parseDirectivePrologues();2!==this.lookahead.type;)t.push(this.parseStatementListItem());return this.finalize(e,new a.Module(t))},e.prototype.parseScript=function(){for(var e=this.createNode(),t=this.parseDirectivePrologues();2!==this.lookahead.type;)t.push(this.parseStatementListItem());return this.finalize(e,new a.Script(t))},e.prototype.parseModuleSpecifier=function(){var e=this.createNode();8!==this.lookahead.type&&this.throwError(n.Messages.InvalidModuleSpecifier);var t=this.nextToken(),i=this.getTokenRaw(t);return this.finalize(e,new a.Literal(t.value,i))},e.prototype.parseImportSpecifier=function(){var e,t,i=this.createNode();return 3===this.lookahead.type?(t=e=this.parseVariableIdentifier(),this.matchContextualKeyword("as")&&(this.nextToken(),t=this.parseVariableIdentifier())):(t=e=this.parseIdentifierName(),this.matchContextualKeyword("as")?(this.nextToken(),t=this.parseVariableIdentifier()):this.throwUnexpectedToken(this.nextToken())),this.finalize(i,new a.ImportSpecifier(t,e))},e.prototype.parseNamedImports=function(){this.expect("{");for(var e=[];!this.match("}");)e.push(this.parseImportSpecifier()),this.match("}")||this.expect(",");return this.expect("}"),e},e.prototype.parseImportDefaultSpecifier=function(){var e=this.createNode(),t=this.parseIdentifierName();return this.finalize(e,new a.ImportDefaultSpecifier(t))},e.prototype.parseImportNamespaceSpecifier=function(){var e=this.createNode();this.expect("*"),this.matchContextualKeyword("as")||this.throwError(n.Messages.NoAsAfterImportNamespace),this.nextToken();var t=this.parseIdentifierName();return this.finalize(e,new a.ImportNamespaceSpecifier(t))},e.prototype.parseImportDeclaration=function(){this.context.inFunctionBody&&this.throwError(n.Messages.IllegalImportDeclaration);var e,t=this.createNode();this.expectKeyword("import");var i=[];if(8===this.lookahead.type)e=this.parseModuleSpecifier();else{if(this.match("{")?i=i.concat(this.parseNamedImports()):this.match("*")?i.push(this.parseImportNamespaceSpecifier()):this.isIdentifierName(this.lookahead)&&!this.matchKeyword("default")?(i.push(this.parseImportDefaultSpecifier()),this.match(",")&&(this.nextToken(),this.match("*")?i.push(this.parseImportNamespaceSpecifier()):this.match("{")?i=i.concat(this.parseNamedImports()):this.throwUnexpectedToken(this.lookahead))):this.throwUnexpectedToken(this.nextToken()),!this.matchContextualKeyword("from")){var s=this.lookahead.value?n.Messages.UnexpectedToken:n.Messages.MissingFromClause;this.throwError(s,this.lookahead.value)}this.nextToken(),e=this.parseModuleSpecifier()}return this.consumeSemicolon(),this.finalize(t,new a.ImportDeclaration(i,e))},e.prototype.parseExportSpecifier=function(){var e=this.createNode(),t=this.parseIdentifierName(),i=t;return this.matchContextualKeyword("as")&&(this.nextToken(),i=this.parseIdentifierName()),this.finalize(e,new a.ExportSpecifier(t,i))},e.prototype.parseExportDeclaration=function(){this.context.inFunctionBody&&this.throwError(n.Messages.IllegalExportDeclaration);var e,t=this.createNode();if(this.expectKeyword("export"),this.matchKeyword("default"))if(this.nextToken(),this.matchKeyword("function")){var i=this.parseFunctionDeclaration(!0);e=this.finalize(t,new a.ExportDefaultDeclaration(i))}else this.matchKeyword("class")?(i=this.parseClassDeclaration(!0),e=this.finalize(t,new a.ExportDefaultDeclaration(i))):this.matchContextualKeyword("async")?(i=this.matchAsyncFunction()?this.parseFunctionDeclaration(!0):this.parseAssignmentExpression(),e=this.finalize(t,new a.ExportDefaultDeclaration(i))):(this.matchContextualKeyword("from")&&this.throwError(n.Messages.UnexpectedToken,this.lookahead.value),i=this.match("{")?this.parseObjectInitializer():this.match("[")?this.parseArrayInitializer():this.parseAssignmentExpression(),this.consumeSemicolon(),e=this.finalize(t,new a.ExportDefaultDeclaration(i)));else if(this.match("*")){if(this.nextToken(),!this.matchContextualKeyword("from")){var s=this.lookahead.value?n.Messages.UnexpectedToken:n.Messages.MissingFromClause;this.throwError(s,this.lookahead.value)}this.nextToken();var r=this.parseModuleSpecifier();this.consumeSemicolon(),e=this.finalize(t,new a.ExportAllDeclaration(r))}else if(4===this.lookahead.type){switch(i=void 0,this.lookahead.value){case"let":case"const":i=this.parseLexicalDeclaration({inFor:!1});break;case"var":case"class":case"function":i=this.parseStatementListItem();break;default:this.throwUnexpectedToken(this.lookahead)}e=this.finalize(t,new a.ExportNamedDeclaration(i,[],null))}else if(this.matchAsyncFunction())i=this.parseFunctionDeclaration(),e=this.finalize(t,new a.ExportNamedDeclaration(i,[],null));else{var o=[],u=null,h=!1;for(this.expect("{");!this.match("}");)h=h||this.matchKeyword("default"),o.push(this.parseExportSpecifier()),this.match("}")||this.expect(",");this.expect("}"),this.matchContextualKeyword("from")?(this.nextToken(),u=this.parseModuleSpecifier(),this.consumeSemicolon()):h?(s=this.lookahead.value?n.Messages.UnexpectedToken:n.Messages.MissingFromClause,this.throwError(s,this.lookahead.value)):this.consumeSemicolon(),e=this.finalize(t,new a.ExportNamedDeclaration(null,o,u))}return e},e}();t.Parser=c},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.assert=function(e,t){if(!e)throw new Error("ASSERT: "+t)}},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(){this.errors=[],this.tolerant=!1}return e.prototype.recordError=function(e){this.errors.push(e)},e.prototype.tolerate=function(e){if(!this.tolerant)throw e;this.recordError(e)},e.prototype.constructError=function(e,t){var i=new Error(e);try{throw i}catch(s){Object.create&&Object.defineProperty&&(i=Object.create(s),Object.defineProperty(i,"column",{value:t}))}return i},e.prototype.createError=function(e,t,i,s){var r="Line "+t+": "+s,n=this.constructError(r,i);return n.index=e,n.lineNumber=t,n.description=s,n},e.prototype.throwError=function(e,t,i,s){throw this.createError(e,t,i,s)},e.prototype.tolerateError=function(e,t,i,s){var r=this.createError(e,t,i,s);if(!this.tolerant)throw r;this.recordError(r)},e}();t.ErrorHandler=i},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Messages={BadGetterArity:"Getter must not have any formal parameters",BadSetterArity:"Setter must have exactly one formal parameter",BadSetterRestParameter:"Setter function argument must not be a rest parameter",ConstructorIsAsync:"Class constructor may not be an async method",ConstructorSpecialMethod:"Class constructor may not be an accessor",DeclarationMissingInitializer:"Missing initializer in %0 declaration",DefaultRestParameter:"Unexpected token =",DuplicateBinding:"Duplicate binding %0",DuplicateConstructor:"A class may only have one constructor",DuplicateProtoProperty:"Duplicate __proto__ fields are not allowed in object literals",ForInOfLoopInitializer:"%0 loop variable declaration may not have an initializer",GeneratorInLegacyContext:"Generator declarations are not allowed in legacy contexts",IllegalBreak:"Illegal break statement",IllegalContinue:"Illegal continue statement",IllegalExportDeclaration:"Unexpected token",IllegalImportDeclaration:"Unexpected token",IllegalLanguageModeDirective:"Illegal 'use strict' directive in function with non-simple parameter list",IllegalReturn:"Illegal return statement",InvalidEscapedReservedWord:"Keyword must not contain escaped characters",InvalidHexEscapeSequence:"Invalid hexadecimal escape sequence",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",InvalidLHSInForLoop:"Invalid left-hand side in for-loop",InvalidModuleSpecifier:"Unexpected token",InvalidRegExp:"Invalid regular expression",LetInLexicalBinding:"let is disallowed as a lexically bound name",MissingFromClause:"Unexpected token",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NewlineAfterThrow:"Illegal newline after throw",NoAsAfterImportNamespace:"Unexpected token",NoCatchOrFinally:"Missing catch or finally after try",ParameterAfterRestParameter:"Rest parameter must be last formal parameter",Redeclaration:"%0 '%1' has already been declared",StaticPrototype:"Classes may not have static property named prototype",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictFunction:"In strict mode code, functions can only be declared at top level or inside a block",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictModeWith:"Strict mode code may not include a with statement",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictReservedWord:"Use of future reserved word in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",TemplateOctalLiteral:"Octal literals are not allowed in template strings.",UnexpectedEOS:"Unexpected end of input",UnexpectedIdentifier:"Unexpected identifier",UnexpectedNumber:"Unexpected number",UnexpectedReserved:"Unexpected reserved word",UnexpectedString:"Unexpected string",UnexpectedTemplate:"Unexpected quasi %0",UnexpectedToken:"Unexpected token %0",UnexpectedTokenIllegal:"Unexpected token ILLEGAL",UnknownLabel:"Undefined label '%0'",UnterminatedRegExp:"Invalid regular expression: missing /"}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s=i(9),r=i(4),n=i(11);function a(e){return"0123456789abcdef".indexOf(e.toLowerCase())}function o(e){return"01234567".indexOf(e)}var u=function(){function e(e,t){this.source=e,this.errorHandler=t,this.trackComment=!1,this.isModule=!1,this.length=e.length,this.index=0,this.lineNumber=e.length>0?1:0,this.lineStart=0,this.curlyStack=[]}return e.prototype.saveState=function(){return{index:this.index,lineNumber:this.lineNumber,lineStart:this.lineStart}},e.prototype.restoreState=function(e){this.index=e.index,this.lineNumber=e.lineNumber,this.lineStart=e.lineStart},e.prototype.eof=function(){return this.index>=this.length},e.prototype.throwUnexpectedToken=function(e){return void 0===e&&(e=n.Messages.UnexpectedTokenIllegal),this.errorHandler.throwError(this.index,this.lineNumber,this.index-this.lineStart+1,e)},e.prototype.tolerateUnexpectedToken=function(e){void 0===e&&(e=n.Messages.UnexpectedTokenIllegal),this.errorHandler.tolerateError(this.index,this.lineNumber,this.index-this.lineStart+1,e)},e.prototype.skipSingleLineComment=function(e){var t,i,s=[];for(this.trackComment&&(s=[],t=this.index-e,i={start:{line:this.lineNumber,column:this.index-this.lineStart-e},end:{}});!this.eof();){var n=this.source.charCodeAt(this.index);if(++this.index,r.Character.isLineTerminator(n)){if(this.trackComment){i.end={line:this.lineNumber,column:this.index-this.lineStart-1};var a={multiLine:!1,slice:[t+e,this.index-1],range:[t,this.index-1],loc:i};s.push(a)}return 13===n&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,s}}return this.trackComment&&(i.end={line:this.lineNumber,column:this.index-this.lineStart},a={multiLine:!1,slice:[t+e,this.index],range:[t,this.index],loc:i},s.push(a)),s},e.prototype.skipMultiLineComment=function(){var e,t,i=[];for(this.trackComment&&(i=[],e=this.index-2,t={start:{line:this.lineNumber,column:this.index-this.lineStart-2},end:{}});!this.eof();){var s=this.source.charCodeAt(this.index);if(r.Character.isLineTerminator(s))13===s&&10===this.source.charCodeAt(this.index+1)&&++this.index,++this.lineNumber,++this.index,this.lineStart=this.index;else if(42===s){if(47===this.source.charCodeAt(this.index+1)){if(this.index+=2,this.trackComment){t.end={line:this.lineNumber,column:this.index-this.lineStart};var n={multiLine:!0,slice:[e+2,this.index-2],range:[e,this.index],loc:t};i.push(n)}return i}++this.index}else++this.index}return this.trackComment&&(t.end={line:this.lineNumber,column:this.index-this.lineStart},n={multiLine:!0,slice:[e+2,this.index],range:[e,this.index],loc:t},i.push(n)),this.tolerateUnexpectedToken(),i},e.prototype.scanComments=function(){var e;this.trackComment&&(e=[]);for(var t=0===this.index;!this.eof();){var i=this.source.charCodeAt(this.index);if(r.Character.isWhiteSpace(i))++this.index;else if(r.Character.isLineTerminator(i))++this.index,13===i&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,t=!0;else if(47===i)if(47===(i=this.source.charCodeAt(this.index+1))){this.index+=2;var s=this.skipSingleLineComment(2);this.trackComment&&(e=e.concat(s)),t=!0}else{if(42!==i)break;this.index+=2,s=this.skipMultiLineComment(),this.trackComment&&(e=e.concat(s))}else if(t&&45===i){if(45!==this.source.charCodeAt(this.index+1)||62!==this.source.charCodeAt(this.index+2))break;this.index+=3,s=this.skipSingleLineComment(3),this.trackComment&&(e=e.concat(s))}else{if(60!==i||this.isModule)break;if("!--"!==this.source.slice(this.index+1,this.index+4))break;this.index+=4,s=this.skipSingleLineComment(4),this.trackComment&&(e=e.concat(s))}}return e},e.prototype.isFutureReservedWord=function(e){switch(e){case"enum":case"export":case"import":case"super":return!0;default:return!1}},e.prototype.isStrictModeReservedWord=function(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0;default:return!1}},e.prototype.isRestrictedWord=function(e){return"eval"===e||"arguments"===e},e.prototype.isKeyword=function(e){switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===e||"let"===e;case 4:return"this"===e||"else"===e||"case"===e||"void"===e||"with"===e||"enum"===e;case 5:return"while"===e||"break"===e||"catch"===e||"throw"===e||"const"===e||"yield"===e||"class"===e||"super"===e;case 6:return"return"===e||"typeof"===e||"delete"===e||"switch"===e||"export"===e||"import"===e;case 7:return"default"===e||"finally"===e||"extends"===e;case 8:return"function"===e||"continue"===e||"debugger"===e;case 10:return"instanceof"===e;default:return!1}},e.prototype.codePointAt=function(e){var t=this.source.charCodeAt(e);if(t>=55296&&t<=56319){var i=this.source.charCodeAt(e+1);i>=56320&&i<=57343&&(t=1024*(t-55296)+i-56320+65536)}return t},e.prototype.scanHexEscape=function(e){for(var t="u"===e?4:2,i=0,s=0;s1114111||"}"!==e)&&this.throwUnexpectedToken(),r.Character.fromCodePoint(t)},e.prototype.getIdentifier=function(){for(var e=this.index++;!this.eof();){var t=this.source.charCodeAt(this.index);if(92===t)return this.index=e,this.getComplexIdentifier();if(t>=55296&&t<57343)return this.index=e,this.getComplexIdentifier();if(!r.Character.isIdentifierPart(t))break;++this.index}return this.source.slice(e,this.index)},e.prototype.getComplexIdentifier=function(){var e,t=this.codePointAt(this.index),i=r.Character.fromCodePoint(t);for(this.index+=i.length,92===t&&(117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,"{"===this.source[this.index]?(++this.index,e=this.scanUnicodeCodePointEscape()):null!==(e=this.scanHexEscape("u"))&&"\\"!==e&&r.Character.isIdentifierStart(e.charCodeAt(0))||this.throwUnexpectedToken(),i=e);!this.eof()&&(t=this.codePointAt(this.index),r.Character.isIdentifierPart(t));)i+=e=r.Character.fromCodePoint(t),this.index+=e.length,92===t&&(i=i.substr(0,i.length-1),117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,"{"===this.source[this.index]?(++this.index,e=this.scanUnicodeCodePointEscape()):null!==(e=this.scanHexEscape("u"))&&"\\"!==e&&r.Character.isIdentifierPart(e.charCodeAt(0))||this.throwUnexpectedToken(),i+=e);return i},e.prototype.octalToDecimal=function(e){var t="0"!==e,i=o(e);return!this.eof()&&r.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(t=!0,i=8*i+o(this.source[this.index++]),"0123".indexOf(e)>=0&&!this.eof()&&r.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(i=8*i+o(this.source[this.index++]))),{code:i,octal:t}},e.prototype.scanIdentifier=function(){var e,t=this.index,i=92===this.source.charCodeAt(t)?this.getComplexIdentifier():this.getIdentifier();if(3!==(e=1===i.length?3:this.isKeyword(i)?4:"null"===i?5:"true"===i||"false"===i?1:3)&&t+i.length!==this.index){var s=this.index;this.index=t,this.tolerateUnexpectedToken(n.Messages.InvalidEscapedReservedWord),this.index=s}return{type:e,value:i,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}},e.prototype.scanPunctuator=function(){var e=this.index,t=this.source[this.index];switch(t){case"(":case"{":"{"===t&&this.curlyStack.push("{"),++this.index;break;case".":++this.index,"."===this.source[this.index]&&"."===this.source[this.index+1]&&(this.index+=2,t="...");break;case"}":++this.index,this.curlyStack.pop();break;case")":case";":case",":case"[":case"]":case":":case"?":case"~":++this.index;break;default:">>>="===(t=this.source.substr(this.index,4))?this.index+=4:"==="===(t=t.substr(0,3))||"!=="===t||">>>"===t||"<<="===t||">>="===t||"**="===t?this.index+=3:"&&"===(t=t.substr(0,2))||"||"===t||"=="===t||"!="===t||"+="===t||"-="===t||"*="===t||"/="===t||"++"===t||"--"===t||"<<"===t||">>"===t||"&="===t||"|="===t||"^="===t||"%="===t||"<="===t||">="===t||"=>"===t||"**"===t?this.index+=2:(t=this.source[this.index],"<>=!+-*%&|^/".indexOf(t)>=0&&++this.index)}return this.index===e&&this.throwUnexpectedToken(),{type:7,value:t,lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanHexLiteral=function(e){for(var t="";!this.eof()&&r.Character.isHexDigit(this.source.charCodeAt(this.index));)t+=this.source[this.index++];return 0===t.length&&this.throwUnexpectedToken(),r.Character.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:6,value:parseInt("0x"+t,16),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanBinaryLiteral=function(e){for(var t,i="";!this.eof()&&("0"===(t=this.source[this.index])||"1"===t);)i+=this.source[this.index++];return 0===i.length&&this.throwUnexpectedToken(),this.eof()||(t=this.source.charCodeAt(this.index),(r.Character.isIdentifierStart(t)||r.Character.isDecimalDigit(t))&&this.throwUnexpectedToken()),{type:6,value:parseInt(i,2),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanOctalLiteral=function(e,t){var i="",s=!1;for(r.Character.isOctalDigit(e.charCodeAt(0))?(s=!0,i="0"+this.source[this.index++]):++this.index;!this.eof()&&r.Character.isOctalDigit(this.source.charCodeAt(this.index));)i+=this.source[this.index++];return s||0!==i.length||this.throwUnexpectedToken(),(r.Character.isIdentifierStart(this.source.charCodeAt(this.index))||r.Character.isDecimalDigit(this.source.charCodeAt(this.index)))&&this.throwUnexpectedToken(),{type:6,value:parseInt(i,8),octal:s,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}},e.prototype.isImplicitOctalLiteral=function(){for(var e=this.index+1;e=0&&(i=i.replace(/\\u\{([0-9a-fA-F]+)\}|\\u([a-fA-F0-9]{4})/g,(function(e,t,i){var r=parseInt(t||i,16);return r>1114111&&s.throwUnexpectedToken(n.Messages.InvalidRegExp),r<=65535?String.fromCharCode(r):"\uffff"})).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"\uffff"));try{RegExp(i)}catch(r){this.throwUnexpectedToken(n.Messages.InvalidRegExp)}try{return new RegExp(e,t)}catch(a){return null}},e.prototype.scanRegExpBody=function(){var e=this.source[this.index];s.assert("/"===e,"Regular expression literal must start with a slash");for(var t=this.source[this.index++],i=!1,a=!1;!this.eof();)if(t+=e=this.source[this.index++],"\\"===e)e=this.source[this.index++],r.Character.isLineTerminator(e.charCodeAt(0))&&this.throwUnexpectedToken(n.Messages.UnterminatedRegExp),t+=e;else if(r.Character.isLineTerminator(e.charCodeAt(0)))this.throwUnexpectedToken(n.Messages.UnterminatedRegExp);else if(i)"]"===e&&(i=!1);else{if("/"===e){a=!0;break}"["===e&&(i=!0)}return a||this.throwUnexpectedToken(n.Messages.UnterminatedRegExp),t.substr(1,t.length-2)},e.prototype.scanRegExpFlags=function(){for(var e="";!this.eof();){var t=this.source[this.index];if(!r.Character.isIdentifierPart(t.charCodeAt(0)))break;if(++this.index,"\\"!==t||this.eof())e+=t;else if("u"===(t=this.source[this.index])){++this.index;var i=this.index,s=this.scanHexEscape("u");if(null!==s)for(e+=s;i=55296&&e<57343&&r.Character.isIdentifierStart(this.codePointAt(this.index))?this.scanIdentifier():this.scanPunctuator()},e}();t.Scanner=u},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TokenName={},t.TokenName[1]="Boolean",t.TokenName[2]="",t.TokenName[3]="Identifier",t.TokenName[4]="Keyword",t.TokenName[5]="Null",t.TokenName[6]="Numeric",t.TokenName[7]="Punctuator",t.TokenName[8]="String",t.TokenName[9]="RegularExpression",t.TokenName[10]="Template"},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.XHTMLEntities={quot:'"',amp:"&",apos:"'",gt:">",nbsp:"\xa0",iexcl:"\xa1",cent:"\xa2",pound:"\xa3",curren:"\xa4",yen:"\xa5",brvbar:"\xa6",sect:"\xa7",uml:"\xa8",copy:"\xa9",ordf:"\xaa",laquo:"\xab",not:"\xac",shy:"\xad",reg:"\xae",macr:"\xaf",deg:"\xb0",plusmn:"\xb1",sup2:"\xb2",sup3:"\xb3",acute:"\xb4",micro:"\xb5",para:"\xb6",middot:"\xb7",cedil:"\xb8",sup1:"\xb9",ordm:"\xba",raquo:"\xbb",frac14:"\xbc",frac12:"\xbd",frac34:"\xbe",iquest:"\xbf",Agrave:"\xc0",Aacute:"\xc1",Acirc:"\xc2",Atilde:"\xc3",Auml:"\xc4",Aring:"\xc5",AElig:"\xc6",Ccedil:"\xc7",Egrave:"\xc8",Eacute:"\xc9",Ecirc:"\xca",Euml:"\xcb",Igrave:"\xcc",Iacute:"\xcd",Icirc:"\xce",Iuml:"\xcf",ETH:"\xd0",Ntilde:"\xd1",Ograve:"\xd2",Oacute:"\xd3",Ocirc:"\xd4",Otilde:"\xd5",Ouml:"\xd6",times:"\xd7",Oslash:"\xd8",Ugrave:"\xd9",Uacute:"\xda",Ucirc:"\xdb",Uuml:"\xdc",Yacute:"\xdd",THORN:"\xde",szlig:"\xdf",agrave:"\xe0",aacute:"\xe1",acirc:"\xe2",atilde:"\xe3",auml:"\xe4",aring:"\xe5",aelig:"\xe6",ccedil:"\xe7",egrave:"\xe8",eacute:"\xe9",ecirc:"\xea",euml:"\xeb",igrave:"\xec",iacute:"\xed",icirc:"\xee",iuml:"\xef",eth:"\xf0",ntilde:"\xf1",ograve:"\xf2",oacute:"\xf3",ocirc:"\xf4",otilde:"\xf5",ouml:"\xf6",divide:"\xf7",oslash:"\xf8",ugrave:"\xf9",uacute:"\xfa",ucirc:"\xfb",uuml:"\xfc",yacute:"\xfd",thorn:"\xfe",yuml:"\xff",OElig:"\u0152",oelig:"\u0153",Scaron:"\u0160",scaron:"\u0161",Yuml:"\u0178",fnof:"\u0192",circ:"\u02c6",tilde:"\u02dc",Alpha:"\u0391",Beta:"\u0392",Gamma:"\u0393",Delta:"\u0394",Epsilon:"\u0395",Zeta:"\u0396",Eta:"\u0397",Theta:"\u0398",Iota:"\u0399",Kappa:"\u039a",Lambda:"\u039b",Mu:"\u039c",Nu:"\u039d",Xi:"\u039e",Omicron:"\u039f",Pi:"\u03a0",Rho:"\u03a1",Sigma:"\u03a3",Tau:"\u03a4",Upsilon:"\u03a5",Phi:"\u03a6",Chi:"\u03a7",Psi:"\u03a8",Omega:"\u03a9",alpha:"\u03b1",beta:"\u03b2",gamma:"\u03b3",delta:"\u03b4",epsilon:"\u03b5",zeta:"\u03b6",eta:"\u03b7",theta:"\u03b8",iota:"\u03b9",kappa:"\u03ba",lambda:"\u03bb",mu:"\u03bc",nu:"\u03bd",xi:"\u03be",omicron:"\u03bf",pi:"\u03c0",rho:"\u03c1",sigmaf:"\u03c2",sigma:"\u03c3",tau:"\u03c4",upsilon:"\u03c5",phi:"\u03c6",chi:"\u03c7",psi:"\u03c8",omega:"\u03c9",thetasym:"\u03d1",upsih:"\u03d2",piv:"\u03d6",ensp:"\u2002",emsp:"\u2003",thinsp:"\u2009",zwnj:"\u200c",zwj:"\u200d",lrm:"\u200e",rlm:"\u200f",ndash:"\u2013",mdash:"\u2014",lsquo:"\u2018",rsquo:"\u2019",sbquo:"\u201a",ldquo:"\u201c",rdquo:"\u201d",bdquo:"\u201e",dagger:"\u2020",Dagger:"\u2021",bull:"\u2022",hellip:"\u2026",permil:"\u2030",prime:"\u2032",Prime:"\u2033",lsaquo:"\u2039",rsaquo:"\u203a",oline:"\u203e",frasl:"\u2044",euro:"\u20ac",image:"\u2111",weierp:"\u2118",real:"\u211c",trade:"\u2122",alefsym:"\u2135",larr:"\u2190",uarr:"\u2191",rarr:"\u2192",darr:"\u2193",harr:"\u2194",crarr:"\u21b5",lArr:"\u21d0",uArr:"\u21d1",rArr:"\u21d2",dArr:"\u21d3",hArr:"\u21d4",forall:"\u2200",part:"\u2202",exist:"\u2203",empty:"\u2205",nabla:"\u2207",isin:"\u2208",notin:"\u2209",ni:"\u220b",prod:"\u220f",sum:"\u2211",minus:"\u2212",lowast:"\u2217",radic:"\u221a",prop:"\u221d",infin:"\u221e",ang:"\u2220",and:"\u2227",or:"\u2228",cap:"\u2229",cup:"\u222a",int:"\u222b",there4:"\u2234",sim:"\u223c",cong:"\u2245",asymp:"\u2248",ne:"\u2260",equiv:"\u2261",le:"\u2264",ge:"\u2265",sub:"\u2282",sup:"\u2283",nsub:"\u2284",sube:"\u2286",supe:"\u2287",oplus:"\u2295",otimes:"\u2297",perp:"\u22a5",sdot:"\u22c5",lceil:"\u2308",rceil:"\u2309",lfloor:"\u230a",rfloor:"\u230b",loz:"\u25ca",spades:"\u2660",clubs:"\u2663",hearts:"\u2665",diams:"\u2666",lang:"\u27e8",rang:"\u27e9"}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s=i(10),r=i(12),n=i(13),a=function(){function e(){this.values=[],this.curly=this.paren=-1}return e.prototype.beforeFunctionExpression=function(e){return["(","{","[","in","typeof","instanceof","new","return","case","delete","throw","void","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=",",","+","-","*","**","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","?",":","===","==",">=","<=","<",">","!=","!=="].indexOf(e)>=0},e.prototype.isRegexStart=function(){var e=this.values[this.values.length-1],t=null!==e;switch(e){case"this":case"]":t=!1;break;case")":var i=this.values[this.paren-1];t="if"===i||"while"===i||"for"===i||"with"===i;break;case"}":if(t=!1,"function"===this.values[this.curly-3])t=!!(s=this.values[this.curly-4])&&!this.beforeFunctionExpression(s);else if("function"===this.values[this.curly-4]){var s;t=!(s=this.values[this.curly-5])||!this.beforeFunctionExpression(s)}}return t},e.prototype.push=function(e){7===e.type||4===e.type?("{"===e.value?this.curly=this.values.length:"("===e.value&&(this.paren=this.values.length),this.values.push(e.value)):this.values.push(null)},e}(),o=function(){function e(e,t){this.errorHandler=new s.ErrorHandler,this.errorHandler.tolerant=!!t&&"boolean"===typeof t.tolerant&&t.tolerant,this.scanner=new r.Scanner(e,this.errorHandler),this.scanner.trackComment=!!t&&"boolean"===typeof t.comment&&t.comment,this.trackRange=!!t&&"boolean"===typeof t.range&&t.range,this.trackLoc=!!t&&"boolean"===typeof t.loc&&t.loc,this.buffer=[],this.reader=new a}return e.prototype.errors=function(){return this.errorHandler.errors},e.prototype.getNextToken=function(){if(0===this.buffer.length){var e=this.scanner.scanComments();if(this.scanner.trackComment)for(var t=0;t options.timeout) {\n handleDisconnect();\n }\n }, options.timeout / 2);\n\n function init() {\n source = new window.EventSource(options.path);\n source.onopen = handleOnline;\n source.onerror = handleDisconnect;\n source.onmessage = handleMessage;\n }\n\n function handleOnline() {\n if (options.log) console.log('[HMR] connected');\n lastActivity = new Date();\n }\n\n function handleMessage(event) {\n lastActivity = new Date();\n\n for (var i = 0; i < listeners.length; i++) {\n listeners[i](event);\n }\n\n if (event.data.indexOf('action') !== -1) {\n eventCallbacks.forEach(function (cb) {\n return cb(event);\n });\n }\n }\n\n function handleDisconnect() {\n clearInterval(timer);\n source.close();\n setTimeout(init, options.timeout);\n }\n\n return {\n close: function close() {\n clearInterval(timer);\n source.close();\n },\n addMessageListener: function addMessageListener(fn) {\n listeners.push(fn);\n }\n };\n}\n\n_c = EventSourceWrapper;\n\nfunction getEventSourceWrapper(options) {\n if (!options.ondemand) {\n return {\n addMessageListener: function addMessageListener(cb) {\n eventCallbacks.push(cb);\n }\n };\n }\n\n return EventSourceWrapper(options);\n}\n\nvar _c;\n\n$RefreshReg$(_c, \"EventSourceWrapper\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.i);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uLy4uLy4uL2NsaWVudC9kZXYvZXJyb3Itb3ZlcmxheS9ldmVudHNvdXJjZS5qcz85YjQyIl0sIm5hbWVzIjpbImV2ZW50Q2FsbGJhY2tzIiwibGFzdEFjdGl2aXR5IiwibGlzdGVuZXJzIiwib3B0aW9ucyIsImluaXQiLCJ0aW1lciIsInNldEludGVydmFsIiwiaGFuZGxlRGlzY29ubmVjdCIsInNvdXJjZSIsIndpbmRvdyIsImNvbnNvbGUiLCJpIiwiZXZlbnQiLCJjYiIsImNsZWFySW50ZXJ2YWwiLCJzZXRUaW1lb3V0IiwiY2xvc2UiLCJhZGRNZXNzYWdlTGlzdGVuZXIiLCJFdmVudFNvdXJjZVdyYXBwZXIiXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxJQUFNQSxjQUFjLEdBQXBCOztBQUVBLHFDQUFxQztBQUNuQztBQUNBLE1BQUlDLFlBQVksR0FBRyxJQUFuQixJQUFtQixFQUFuQjtBQUNBLE1BQUlDLFNBQVMsR0FBYjs7QUFFQSxNQUFJLENBQUNDLE9BQU8sQ0FBWixTQUFzQjtBQUNwQkEsV0FBTyxDQUFQQSxVQUFrQixLQUFsQkE7QUFHRkM7O0FBQUFBLE1BQUk7QUFDSixNQUFJQyxLQUFLLEdBQUdDLFdBQVcsQ0FBQyxZQUFZO0FBQ2xDLFFBQUksNEJBQTRCSCxPQUFPLENBQXZDLFNBQWlEO0FBQy9DSSxzQkFBZ0I7QUFFbkI7QUFKc0IsS0FJcEJKLE9BQU8sQ0FBUEEsVUFKSCxDQUF1QixDQUF2Qjs7QUFNQSxrQkFBZ0I7QUFDZEssVUFBTSxHQUFHLElBQUlDLE1BQU0sQ0FBVixZQUF1Qk4sT0FBTyxDQUF2Q0ssSUFBUyxDQUFUQTtBQUNBQSxVQUFNLENBQU5BO0FBQ0FBLFVBQU0sQ0FBTkE7QUFDQUEsVUFBTSxDQUFOQTtBQUdGOztBQUFBLDBCQUF3QjtBQUN0QixRQUFJTCxPQUFPLENBQVgsS0FBaUJPLE9BQU8sQ0FBUEE7QUFDakJULGdCQUFZLEdBQUcsSUFBZkEsSUFBZSxFQUFmQTtBQUdGOztBQUFBLGdDQUE4QjtBQUM1QkEsZ0JBQVksR0FBRyxJQUFmQSxJQUFlLEVBQWZBOztBQUNBLFNBQUssSUFBSVUsQ0FBQyxHQUFWLEdBQWdCQSxDQUFDLEdBQUdULFNBQVMsQ0FBN0IsUUFBc0NTLENBQXRDLElBQTJDO0FBQ3pDVCxlQUFTLENBQVRBLENBQVMsQ0FBVEE7QUFFRjs7QUFBQSxRQUFJVSxLQUFLLENBQUxBLDJCQUFpQyxDQUFyQyxHQUF5QztBQUN2Q1osb0JBQWMsQ0FBZEEsUUFBd0JhLFlBQUQ7QUFBQSxlQUFRQSxFQUFFLENBQWpDYixLQUFpQyxDQUFWO0FBQUEsT0FBdkJBO0FBRUg7QUFFRDs7QUFBQSw4QkFBNEI7QUFDMUJjLGlCQUFhLENBQWJBLEtBQWEsQ0FBYkE7QUFDQU4sVUFBTSxDQUFOQTtBQUNBTyxjQUFVLE9BQU9aLE9BQU8sQ0FBeEJZLE9BQVUsQ0FBVkE7QUFHRjs7QUFBQSxTQUFPO0FBQ0xDLFNBQUssRUFBRSxpQkFBTTtBQUNYRixtQkFBYSxDQUFiQSxLQUFhLENBQWJBO0FBQ0FOLFlBQU0sQ0FBTkE7QUFIRztBQUtMUyxzQkFBa0IsRUFBRSxnQ0FBYztBQUNoQ2YsZUFBUyxDQUFUQTtBQU5KO0FBQU8sR0FBUDtBQVdLOztLQXZEUCxrQjs7QUF1RE8sd0NBQXdDO0FBQzdDLE1BQUksQ0FBQ0MsT0FBTyxDQUFaLFVBQXVCO0FBQ3JCLFdBQU87QUFDTGMsd0JBQWtCLEVBQUdKLDhCQUFELEVBQVE7QUFDMUJiLHNCQUFjLENBQWRBO0FBRko7QUFBTyxLQUFQO0FBTUY7O0FBQUEsU0FBT2tCLGtCQUFrQixDQUF6QixPQUF5QixDQUF6QjtBQUNEIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvZGV2L2Vycm9yLW92ZXJsYXkvZXZlbnRzb3VyY2UuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBldmVudENhbGxiYWNrcyA9IFtdXG5cbmZ1bmN0aW9uIEV2ZW50U291cmNlV3JhcHBlcihvcHRpb25zKSB7XG4gIHZhciBzb3VyY2VcbiAgdmFyIGxhc3RBY3Rpdml0eSA9IG5ldyBEYXRlKClcbiAgdmFyIGxpc3RlbmVycyA9IFtdXG5cbiAgaWYgKCFvcHRpb25zLnRpbWVvdXQpIHtcbiAgICBvcHRpb25zLnRpbWVvdXQgPSAyMCAqIDEwMDBcbiAgfVxuXG4gIGluaXQoKVxuICB2YXIgdGltZXIgPSBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKG5ldyBEYXRlKCkgLSBsYXN0QWN0aXZpdHkgPiBvcHRpb25zLnRpbWVvdXQpIHtcbiAgICAgIGhhbmRsZURpc2Nvbm5lY3QoKVxuICAgIH1cbiAgfSwgb3B0aW9ucy50aW1lb3V0IC8gMilcblxuICBmdW5jdGlvbiBpbml0KCkge1xuICAgIHNvdXJjZSA9IG5ldyB3aW5kb3cuRXZlbnRTb3VyY2Uob3B0aW9ucy5wYXRoKVxuICAgIHNvdXJjZS5vbm9wZW4gPSBoYW5kbGVPbmxpbmVcbiAgICBzb3VyY2Uub25lcnJvciA9IGhhbmRsZURpc2Nvbm5lY3RcbiAgICBzb3VyY2Uub25tZXNzYWdlID0gaGFuZGxlTWVzc2FnZVxuICB9XG5cbiAgZnVuY3Rpb24gaGFuZGxlT25saW5lKCkge1xuICAgIGlmIChvcHRpb25zLmxvZykgY29uc29sZS5sb2coJ1tITVJdIGNvbm5lY3RlZCcpXG4gICAgbGFzdEFjdGl2aXR5ID0gbmV3IERhdGUoKVxuICB9XG5cbiAgZnVuY3Rpb24gaGFuZGxlTWVzc2FnZShldmVudCkge1xuICAgIGxhc3RBY3Rpdml0eSA9IG5ldyBEYXRlKClcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3RlbmVycy5sZW5ndGg7IGkrKykge1xuICAgICAgbGlzdGVuZXJzW2ldKGV2ZW50KVxuICAgIH1cbiAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCdhY3Rpb24nKSAhPT0gLTEpIHtcbiAgICAgIGV2ZW50Q2FsbGJhY2tzLmZvckVhY2goKGNiKSA9PiBjYihldmVudCkpXG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gaGFuZGxlRGlzY29ubmVjdCgpIHtcbiAgICBjbGVhckludGVydmFsKHRpbWVyKVxuICAgIHNvdXJjZS5jbG9zZSgpXG4gICAgc2V0VGltZW91dChpbml0LCBvcHRpb25zLnRpbWVvdXQpXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGNsb3NlOiAoKSA9PiB7XG4gICAgICBjbGVhckludGVydmFsKHRpbWVyKVxuICAgICAgc291cmNlLmNsb3NlKClcbiAgICB9LFxuICAgIGFkZE1lc3NhZ2VMaXN0ZW5lcjogZnVuY3Rpb24gKGZuKSB7XG4gICAgICBsaXN0ZW5lcnMucHVzaChmbilcbiAgICB9LFxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFdmVudFNvdXJjZVdyYXBwZXIob3B0aW9ucykge1xuICBpZiAoIW9wdGlvbnMub25kZW1hbmQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYWRkTWVzc2FnZUxpc3RlbmVyOiAoY2IpID0+IHtcbiAgICAgICAgZXZlbnRDYWxsYmFja3MucHVzaChjYilcbiAgICAgIH0sXG4gICAgfVxuICB9XG4gIHJldHVybiBFdmVudFNvdXJjZVdyYXBwZXIob3B0aW9ucylcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/error-overlay/eventsource.js\n"); +eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nexports.__esModule = true;\nexports.getEventSourceWrapper = getEventSourceWrapper;\nvar eventCallbacks = [];\n\nfunction EventSourceWrapper(options) {\n var source;\n var lastActivity = new Date();\n var listeners = [];\n\n if (!options.timeout) {\n options.timeout = 20 * 1000;\n }\n\n init();\n var timer = setInterval(function () {\n if (new Date() - lastActivity > options.timeout) {\n handleDisconnect();\n }\n }, options.timeout / 2);\n\n function init() {\n source = new window.EventSource(options.path);\n source.onopen = handleOnline;\n source.onerror = handleDisconnect;\n source.onmessage = handleMessage;\n }\n\n function handleOnline() {\n if (options.log) console.log('[HMR] connected');\n lastActivity = new Date();\n }\n\n function handleMessage(event) {\n lastActivity = new Date();\n\n for (var i = 0; i < listeners.length; i++) {\n listeners[i](event);\n }\n\n eventCallbacks.forEach(function (cb) {\n if (!cb.unfiltered && event.data.indexOf('action') === -1) return;\n cb(event);\n });\n }\n\n function handleDisconnect() {\n clearInterval(timer);\n source.close();\n setTimeout(init, options.timeout);\n }\n\n return {\n close: function close() {\n clearInterval(timer);\n source.close();\n },\n addMessageListener: function addMessageListener(fn) {\n listeners.push(fn);\n }\n };\n}\n\n_c = EventSourceWrapper;\n\nfunction getEventSourceWrapper(options) {\n if (!options.ondemand) {\n return {\n addMessageListener: function addMessageListener(cb) {\n eventCallbacks.push(cb);\n }\n };\n }\n\n return EventSourceWrapper(options);\n}\n\nvar _c;\n\n$RefreshReg$(_c, \"EventSourceWrapper\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.i);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uLy4uLy4uL2NsaWVudC9kZXYvZXJyb3Itb3ZlcmxheS9ldmVudHNvdXJjZS5qcz85YjQyIl0sIm5hbWVzIjpbImV2ZW50Q2FsbGJhY2tzIiwibGFzdEFjdGl2aXR5IiwibGlzdGVuZXJzIiwib3B0aW9ucyIsImluaXQiLCJ0aW1lciIsInNldEludGVydmFsIiwiaGFuZGxlRGlzY29ubmVjdCIsInNvdXJjZSIsIndpbmRvdyIsImNvbnNvbGUiLCJpIiwiY2IiLCJldmVudCIsImNsZWFySW50ZXJ2YWwiLCJzZXRUaW1lb3V0IiwiY2xvc2UiLCJhZGRNZXNzYWdlTGlzdGVuZXIiLCJFdmVudFNvdXJjZVdyYXBwZXIiXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxJQUFNQSxjQUFjLEdBQXBCOztBQUVBLHFDQUFxQztBQUNuQztBQUNBLE1BQUlDLFlBQVksR0FBRyxJQUFuQixJQUFtQixFQUFuQjtBQUNBLE1BQUlDLFNBQVMsR0FBYjs7QUFFQSxNQUFJLENBQUNDLE9BQU8sQ0FBWixTQUFzQjtBQUNwQkEsV0FBTyxDQUFQQSxVQUFrQixLQUFsQkE7QUFHRkM7O0FBQUFBLE1BQUk7QUFDSixNQUFJQyxLQUFLLEdBQUdDLFdBQVcsQ0FBQyxZQUFZO0FBQ2xDLFFBQUksNEJBQTRCSCxPQUFPLENBQXZDLFNBQWlEO0FBQy9DSSxzQkFBZ0I7QUFFbkI7QUFKc0IsS0FJcEJKLE9BQU8sQ0FBUEEsVUFKSCxDQUF1QixDQUF2Qjs7QUFNQSxrQkFBZ0I7QUFDZEssVUFBTSxHQUFHLElBQUlDLE1BQU0sQ0FBVixZQUF1Qk4sT0FBTyxDQUF2Q0ssSUFBUyxDQUFUQTtBQUNBQSxVQUFNLENBQU5BO0FBQ0FBLFVBQU0sQ0FBTkE7QUFDQUEsVUFBTSxDQUFOQTtBQUdGOztBQUFBLDBCQUF3QjtBQUN0QixRQUFJTCxPQUFPLENBQVgsS0FBaUJPLE9BQU8sQ0FBUEE7QUFDakJULGdCQUFZLEdBQUcsSUFBZkEsSUFBZSxFQUFmQTtBQUdGOztBQUFBLGdDQUE4QjtBQUM1QkEsZ0JBQVksR0FBRyxJQUFmQSxJQUFlLEVBQWZBOztBQUNBLFNBQUssSUFBSVUsQ0FBQyxHQUFWLEdBQWdCQSxDQUFDLEdBQUdULFNBQVMsQ0FBN0IsUUFBc0NTLENBQXRDLElBQTJDO0FBQ3pDVCxlQUFTLENBQVRBLENBQVMsQ0FBVEE7QUFHRkY7O0FBQUFBLGtCQUFjLENBQWRBLFFBQXdCWSxZQUFELEVBQVE7QUFDN0IsVUFBSSxDQUFDQSxFQUFFLENBQUgsY0FBa0JDLEtBQUssQ0FBTEEsMkJBQWlDLENBQXZELEdBQTJEO0FBQzNERCxRQUFFLENBQUZBLEtBQUUsQ0FBRkE7QUFGRlo7QUFNRjs7QUFBQSw4QkFBNEI7QUFDMUJjLGlCQUFhLENBQWJBLEtBQWEsQ0FBYkE7QUFDQU4sVUFBTSxDQUFOQTtBQUNBTyxjQUFVLE9BQU9aLE9BQU8sQ0FBeEJZLE9BQVUsQ0FBVkE7QUFHRjs7QUFBQSxTQUFPO0FBQ0xDLFNBQUssRUFBRSxpQkFBTTtBQUNYRixtQkFBYSxDQUFiQSxLQUFhLENBQWJBO0FBQ0FOLFlBQU0sQ0FBTkE7QUFIRztBQUtMUyxzQkFBa0IsRUFBRSxnQ0FBYztBQUNoQ2YsZUFBUyxDQUFUQTtBQU5KO0FBQU8sR0FBUDtBQVdLOztLQXpEUCxrQjs7QUF5RE8sd0NBQXdDO0FBQzdDLE1BQUksQ0FBQ0MsT0FBTyxDQUFaLFVBQXVCO0FBQ3JCLFdBQU87QUFDTGMsd0JBQWtCLEVBQUdMLDhCQUFELEVBQVE7QUFDMUJaLHNCQUFjLENBQWRBO0FBRko7QUFBTyxLQUFQO0FBTUY7O0FBQUEsU0FBT2tCLGtCQUFrQixDQUF6QixPQUF5QixDQUF6QjtBQUNEIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvZGV2L2Vycm9yLW92ZXJsYXkvZXZlbnRzb3VyY2UuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBldmVudENhbGxiYWNrcyA9IFtdXG5cbmZ1bmN0aW9uIEV2ZW50U291cmNlV3JhcHBlcihvcHRpb25zKSB7XG4gIHZhciBzb3VyY2VcbiAgdmFyIGxhc3RBY3Rpdml0eSA9IG5ldyBEYXRlKClcbiAgdmFyIGxpc3RlbmVycyA9IFtdXG5cbiAgaWYgKCFvcHRpb25zLnRpbWVvdXQpIHtcbiAgICBvcHRpb25zLnRpbWVvdXQgPSAyMCAqIDEwMDBcbiAgfVxuXG4gIGluaXQoKVxuICB2YXIgdGltZXIgPSBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKG5ldyBEYXRlKCkgLSBsYXN0QWN0aXZpdHkgPiBvcHRpb25zLnRpbWVvdXQpIHtcbiAgICAgIGhhbmRsZURpc2Nvbm5lY3QoKVxuICAgIH1cbiAgfSwgb3B0aW9ucy50aW1lb3V0IC8gMilcblxuICBmdW5jdGlvbiBpbml0KCkge1xuICAgIHNvdXJjZSA9IG5ldyB3aW5kb3cuRXZlbnRTb3VyY2Uob3B0aW9ucy5wYXRoKVxuICAgIHNvdXJjZS5vbm9wZW4gPSBoYW5kbGVPbmxpbmVcbiAgICBzb3VyY2Uub25lcnJvciA9IGhhbmRsZURpc2Nvbm5lY3RcbiAgICBzb3VyY2Uub25tZXNzYWdlID0gaGFuZGxlTWVzc2FnZVxuICB9XG5cbiAgZnVuY3Rpb24gaGFuZGxlT25saW5lKCkge1xuICAgIGlmIChvcHRpb25zLmxvZykgY29uc29sZS5sb2coJ1tITVJdIGNvbm5lY3RlZCcpXG4gICAgbGFzdEFjdGl2aXR5ID0gbmV3IERhdGUoKVxuICB9XG5cbiAgZnVuY3Rpb24gaGFuZGxlTWVzc2FnZShldmVudCkge1xuICAgIGxhc3RBY3Rpdml0eSA9IG5ldyBEYXRlKClcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3RlbmVycy5sZW5ndGg7IGkrKykge1xuICAgICAgbGlzdGVuZXJzW2ldKGV2ZW50KVxuICAgIH1cblxuICAgIGV2ZW50Q2FsbGJhY2tzLmZvckVhY2goKGNiKSA9PiB7XG4gICAgICBpZiAoIWNiLnVuZmlsdGVyZWQgJiYgZXZlbnQuZGF0YS5pbmRleE9mKCdhY3Rpb24nKSA9PT0gLTEpIHJldHVyblxuICAgICAgY2IoZXZlbnQpXG4gICAgfSlcbiAgfVxuXG4gIGZ1bmN0aW9uIGhhbmRsZURpc2Nvbm5lY3QoKSB7XG4gICAgY2xlYXJJbnRlcnZhbCh0aW1lcilcbiAgICBzb3VyY2UuY2xvc2UoKVxuICAgIHNldFRpbWVvdXQoaW5pdCwgb3B0aW9ucy50aW1lb3V0KVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBjbG9zZTogKCkgPT4ge1xuICAgICAgY2xlYXJJbnRlcnZhbCh0aW1lcilcbiAgICAgIHNvdXJjZS5jbG9zZSgpXG4gICAgfSxcbiAgICBhZGRNZXNzYWdlTGlzdGVuZXI6IGZ1bmN0aW9uIChmbikge1xuICAgICAgbGlzdGVuZXJzLnB1c2goZm4pXG4gICAgfSxcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXZlbnRTb3VyY2VXcmFwcGVyKG9wdGlvbnMpIHtcbiAgaWYgKCFvcHRpb25zLm9uZGVtYW5kKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFkZE1lc3NhZ2VMaXN0ZW5lcjogKGNiKSA9PiB7XG4gICAgICAgIGV2ZW50Q2FsbGJhY2tzLnB1c2goY2IpXG4gICAgICB9LFxuICAgIH1cbiAgfVxuICByZXR1cm4gRXZlbnRTb3VyY2VXcmFwcGVyKG9wdGlvbnMpXG59XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/error-overlay/eventsource.js\n"); /***/ }), @@ -77,7 +44,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nexports.__esModule = tru /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _unfetch = _interopRequireDefault(__webpack_require__(/*! next/dist/build/polyfills/unfetch */ \"./node_modules/next/dist/build/polyfills/unfetch.js\"));\n/* eslint-disable */\n// Improved version of https://github.com/Yaffle/EventSource/\n// Available under MIT License (MIT)\n// Only tries to support IE11 and nothing below\n\n\nvar document = window.document;\nvar Response = window.Response;\nvar TextDecoder = window.TextDecoder;\nvar TextEncoder = window.TextEncoder;\nvar AbortController = window.AbortController;\n\nif (AbortController == undefined) {\n AbortController = function AbortController() {\n this.signal = null;\n\n this.abort = function () {};\n };\n}\n\nfunction TextDecoderPolyfill() {\n this.bitsNeeded = 0;\n this.codePoint = 0;\n}\n\n_c = TextDecoderPolyfill;\n\nTextDecoderPolyfill.prototype.decode = function (octets) {\n function valid(codePoint, shift, octetsCount) {\n if (octetsCount === 1) {\n return codePoint >= 0x0080 >> shift && codePoint << shift <= 0x07ff;\n }\n\n if (octetsCount === 2) {\n return codePoint >= 0x0800 >> shift && codePoint << shift <= 0xd7ff || codePoint >= 0xe000 >> shift && codePoint << shift <= 0xffff;\n }\n\n if (octetsCount === 3) {\n return codePoint >= 0x010000 >> shift && codePoint << shift <= 0x10ffff;\n }\n\n throw new Error();\n }\n\n function octetsCount(bitsNeeded, codePoint) {\n if (bitsNeeded === 6 * 1) {\n return codePoint >> 6 > 15 ? 3 : codePoint > 31 ? 2 : 1;\n }\n\n if (bitsNeeded === 6 * 2) {\n return codePoint > 15 ? 3 : 2;\n }\n\n if (bitsNeeded === 6 * 3) {\n return 3;\n }\n\n throw new Error();\n }\n\n var REPLACER = 0xfffd;\n var string = '';\n var bitsNeeded = this.bitsNeeded;\n var codePoint = this.codePoint;\n\n for (var i = 0; i < octets.length; i += 1) {\n var octet = octets[i];\n\n if (bitsNeeded !== 0) {\n if (octet < 128 || octet > 191 || !valid(codePoint << 6 | octet & 63, bitsNeeded - 6, octetsCount(bitsNeeded, codePoint))) {\n bitsNeeded = 0;\n codePoint = REPLACER;\n string += String.fromCharCode(codePoint);\n }\n }\n\n if (bitsNeeded === 0) {\n if (octet >= 0 && octet <= 127) {\n bitsNeeded = 0;\n codePoint = octet;\n } else if (octet >= 192 && octet <= 223) {\n bitsNeeded = 6 * 1;\n codePoint = octet & 31;\n } else if (octet >= 224 && octet <= 239) {\n bitsNeeded = 6 * 2;\n codePoint = octet & 15;\n } else if (octet >= 240 && octet <= 247) {\n bitsNeeded = 6 * 3;\n codePoint = octet & 7;\n } else {\n bitsNeeded = 0;\n codePoint = REPLACER;\n }\n\n if (bitsNeeded !== 0 && !valid(codePoint, bitsNeeded, octetsCount(bitsNeeded, codePoint))) {\n bitsNeeded = 0;\n codePoint = REPLACER;\n }\n } else {\n bitsNeeded -= 6;\n codePoint = codePoint << 6 | octet & 63;\n }\n\n if (bitsNeeded === 0) {\n if (codePoint <= 0xffff) {\n string += String.fromCharCode(codePoint);\n } else {\n string += String.fromCharCode(0xd800 + (codePoint - 0xffff - 1 >> 10));\n string += String.fromCharCode(0xdc00 + (codePoint - 0xffff - 1 & 0x3ff));\n }\n }\n }\n\n this.bitsNeeded = bitsNeeded;\n this.codePoint = codePoint;\n return string;\n}; // Firefox < 38 throws an error with stream option\n\n\nvar supportsStreamOption = function supportsStreamOption() {\n try {\n return new TextDecoder().decode(new TextEncoder().encode('test'), {\n stream: true\n }) === 'test';\n } catch (error) {\n console.log(error);\n }\n\n return false;\n}; // IE, Edge\n\n\nif (TextDecoder == undefined || TextEncoder == undefined || !supportsStreamOption()) {\n TextDecoder = TextDecoderPolyfill;\n}\n\nvar k = function k() {};\n\nfunction XHRWrapper(xhr) {\n this.withCredentials = false;\n this.responseType = '';\n this.readyState = 0;\n this.status = 0;\n this.statusText = '';\n this.responseText = '';\n this.onprogress = k;\n this.onreadystatechange = k;\n this._contentType = '';\n this._xhr = xhr;\n this._sendTimeout = 0;\n this._abort = k;\n}\n\n_c2 = XHRWrapper;\n\nXHRWrapper.prototype.open = function (method, url) {\n this._abort(true);\n\n var that = this;\n var xhr = this._xhr;\n var state = 1;\n var timeout = 0;\n\n this._abort = function (silent) {\n if (that._sendTimeout !== 0) {\n clearTimeout(that._sendTimeout);\n that._sendTimeout = 0;\n }\n\n if (state === 1 || state === 2 || state === 3) {\n state = 4;\n xhr.onload = k;\n xhr.onerror = k;\n xhr.onabort = k;\n xhr.onprogress = k;\n xhr.onreadystatechange = k; // IE 8 - 9: XDomainRequest#abort() does not fire any event\n // Opera < 10: XMLHttpRequest#abort() does not fire any event\n\n xhr.abort();\n\n if (timeout !== 0) {\n clearTimeout(timeout);\n timeout = 0;\n }\n\n if (!silent) {\n that.readyState = 4;\n that.onreadystatechange();\n }\n }\n\n state = 0;\n };\n\n var onStart = function onStart() {\n if (state === 1) {\n // state = 2;\n var status = 0;\n var statusText = '';\n var contentType = undefined;\n\n if (!('contentType' in xhr)) {\n try {\n status = xhr.status;\n statusText = xhr.statusText;\n contentType = xhr.getResponseHeader('Content-Type');\n } catch (error) {\n // IE < 10 throws exception for `xhr.status` when xhr.readyState === 2 || xhr.readyState === 3\n // Opera < 11 throws exception for `xhr.status` when xhr.readyState === 2\n // https://bugs.webkit.org/show_bug.cgi?id=29121\n status = 0;\n statusText = '';\n contentType = undefined; // Firefox < 14, Chrome ?, Safari ?\n // https://bugs.webkit.org/show_bug.cgi?id=29658\n // https://bugs.webkit.org/show_bug.cgi?id=77854\n }\n } else {\n status = 200;\n statusText = 'OK';\n contentType = xhr.contentType;\n }\n\n if (status !== 0) {\n state = 2;\n that.readyState = 2;\n that.status = status;\n that.statusText = statusText;\n that._contentType = contentType;\n that.onreadystatechange();\n }\n }\n };\n\n var onProgress = function onProgress() {\n onStart();\n\n if (state === 2 || state === 3) {\n state = 3;\n var responseText = '';\n\n try {\n responseText = xhr.responseText;\n } catch (error) {// IE 8 - 9 with XMLHttpRequest\n }\n\n that.readyState = 3;\n that.responseText = responseText;\n that.onprogress();\n }\n };\n\n var onFinish = function onFinish() {\n // Firefox 52 fires \"readystatechange\" (xhr.readyState === 4) without final \"readystatechange\" (xhr.readyState === 3)\n // IE 8 fires \"onload\" without \"onprogress\"\n onProgress();\n\n if (state === 1 || state === 2 || state === 3) {\n state = 4;\n\n if (timeout !== 0) {\n clearTimeout(timeout);\n timeout = 0;\n }\n\n that.readyState = 4;\n that.onreadystatechange();\n }\n };\n\n var onReadyStateChange = function onReadyStateChange() {\n if (xhr != undefined) {\n // Opera 12\n if (xhr.readyState === 4) {\n onFinish();\n } else if (xhr.readyState === 3) {\n onProgress();\n } else if (xhr.readyState === 2) {\n onStart();\n }\n }\n };\n\n var onTimeout = function onTimeout() {\n timeout = setTimeout(function () {\n onTimeout();\n }, 500);\n\n if (xhr.readyState === 3) {\n onProgress();\n }\n }; // XDomainRequest#abort removes onprogress, onerror, onload\n\n\n xhr.onload = onFinish;\n xhr.onerror = onFinish; // improper fix to match Firefox behavior, but it is better than just ignore abort\n // see https://bugzilla.mozilla.org/show_bug.cgi?id=768596\n // https://bugzilla.mozilla.org/show_bug.cgi?id=880200\n // https://code.google.com/p/chromium/issues/detail?id=153570\n // IE 8 fires \"onload\" without \"onprogress\n\n xhr.onabort = onFinish; // https://bugzilla.mozilla.org/show_bug.cgi?id=736723\n\n if (!('sendAsBinary' in XMLHttpRequest.prototype) && !('mozAnon' in XMLHttpRequest.prototype)) {\n xhr.onprogress = onProgress;\n } // IE 8 - 9 (XMLHTTPRequest)\n // Opera < 12\n // Firefox < 3.5\n // Firefox 3.5 - 3.6 - ? < 9.0\n // onprogress is not fired sometimes or delayed\n // see also #64\n\n\n xhr.onreadystatechange = onReadyStateChange;\n\n if ('contentType' in xhr) {\n url += (url.indexOf('?') === -1 ? '?' : '&') + 'padding=true';\n }\n\n xhr.open(method, url, true);\n\n if ('readyState' in xhr) {\n // workaround for Opera 12 issue with \"progress\" events\n // #91\n timeout = setTimeout(function () {\n onTimeout();\n }, 0);\n }\n};\n\nXHRWrapper.prototype.abort = function () {\n this._abort(false);\n};\n\nXHRWrapper.prototype.getResponseHeader = function (name) {\n return this._contentType;\n};\n\nXHRWrapper.prototype.setRequestHeader = function (name, value) {\n var xhr = this._xhr;\n\n if ('setRequestHeader' in xhr) {\n xhr.setRequestHeader(name, value);\n }\n};\n\nXHRWrapper.prototype.getAllResponseHeaders = function () {\n return this._xhr.getAllResponseHeaders != undefined ? this._xhr.getAllResponseHeaders() : '';\n};\n\nXHRWrapper.prototype.send = function () {\n // loading indicator in Safari < ? (6), Chrome < 14, Firefox\n if (!('ontimeout' in XMLHttpRequest.prototype) && document != undefined && document.readyState != undefined && document.readyState !== 'complete') {\n var that = this;\n that._sendTimeout = setTimeout(function () {\n that._sendTimeout = 0;\n that.send();\n }, 4);\n return;\n }\n\n var xhr = this._xhr; // withCredentials should be set after \"open\" for Safari and Chrome (< 19 ?)\n\n xhr.withCredentials = this.withCredentials;\n xhr.responseType = this.responseType;\n\n try {\n // xhr.send(); throws \"Not enough arguments\" in Firefox 3.0\n xhr.send(undefined);\n } catch (error1) {\n // Safari 5.1.7, Opera 12\n throw error1;\n }\n};\n\nfunction toLowerCase(name) {\n return name.replace(/[A-Z]/g, function (c) {\n return String.fromCharCode(c.charCodeAt(0) + 0x20);\n });\n}\n\nfunction HeadersPolyfill(all) {\n // Get headers: implemented according to mozilla's example code: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/getAllResponseHeaders#Example\n var map = Object.create(null);\n var array = all.split('\\r\\n');\n\n for (var i = 0; i < array.length; i += 1) {\n var line = array[i];\n var parts = line.split(': ');\n var name = parts.shift();\n var value = parts.join(': ');\n map[toLowerCase(name)] = value;\n }\n\n this._map = map;\n}\n\n_c3 = HeadersPolyfill;\n\nHeadersPolyfill.prototype.get = function (name) {\n return this._map[toLowerCase(name)];\n};\n\nfunction XHRTransport() {}\n\n_c4 = XHRTransport;\n\nXHRTransport.prototype.open = function (xhr, onStartCallback, onProgressCallback, onFinishCallback, url, withCredentials, headers) {\n xhr.open('GET', url);\n var offset = 0;\n\n xhr.onprogress = function () {\n var responseText = xhr.responseText;\n var chunk = responseText.slice(offset);\n offset += chunk.length;\n onProgressCallback(chunk);\n };\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 2) {\n var status = xhr.status;\n var statusText = xhr.statusText;\n var contentType = xhr.getResponseHeader('Content-Type');\n var headers = xhr.getAllResponseHeaders();\n onStartCallback(status, statusText, contentType, new HeadersPolyfill(headers), function () {\n xhr.abort();\n });\n } else if (xhr.readyState === 4) {\n onFinishCallback();\n }\n };\n\n xhr.withCredentials = withCredentials;\n xhr.responseType = 'text';\n\n for (var name in headers) {\n if (Object.prototype.hasOwnProperty.call(headers, name)) {\n xhr.setRequestHeader(name, headers[name]);\n }\n }\n\n xhr.send();\n};\n\nfunction HeadersWrapper(headers) {\n this._headers = headers;\n}\n\n_c5 = HeadersWrapper;\n\nHeadersWrapper.prototype.get = function (name) {\n return this._headers.get(name);\n};\n\nfunction FetchTransport() {}\n\n_c6 = FetchTransport;\n\nFetchTransport.prototype.open = function (xhr, onStartCallback, onProgressCallback, onFinishCallback, url, withCredentials, headers) {\n var controller = new AbortController();\n var signal = controller.signal; // see #120\n\n var textDecoder = new TextDecoder();\n (0, _unfetch[\"default\"])(url, {\n headers: headers,\n credentials: withCredentials ? 'include' : 'same-origin',\n signal: signal,\n cache: 'no-store'\n }).then(function (response) {\n var reader = response.body.getReader();\n onStartCallback(response.status, response.statusText, response.headers.get('Content-Type'), new HeadersWrapper(response.headers), function () {\n controller.abort();\n reader.cancel();\n });\n return new Promise(function (resolve, reject) {\n var readNextChunk = function readNextChunk() {\n reader.read().then(function (result) {\n if (result.done) {\n // Note: bytes in textDecoder are ignored\n resolve(undefined);\n } else {\n var chunk = textDecoder.decode(result.value, {\n stream: true\n });\n onProgressCallback(chunk);\n readNextChunk();\n }\n })['catch'](function (error) {\n reject(error);\n });\n };\n\n readNextChunk();\n });\n }).then(function (result) {\n onFinishCallback();\n return result;\n }, function (error) {\n onFinishCallback();\n return Promise.reject(error);\n });\n};\n\nfunction EventTarget() {\n this._listeners = Object.create(null);\n}\n\n_c7 = EventTarget;\n\nfunction throwError(e) {\n setTimeout(function () {\n throw e;\n }, 0);\n}\n\nEventTarget.prototype.dispatchEvent = function (event) {\n event.target = this;\n var typeListeners = this._listeners[event.type];\n\n if (typeListeners != undefined) {\n var length = typeListeners.length;\n\n for (var i = 0; i < length; i += 1) {\n var listener = typeListeners[i];\n\n try {\n if (typeof listener.handleEvent === 'function') {\n listener.handleEvent(event);\n } else {\n listener.call(this, event);\n }\n } catch (e) {\n throwError(e);\n }\n }\n }\n};\n\nEventTarget.prototype.addEventListener = function (type, listener) {\n type = String(type);\n var listeners = this._listeners;\n var typeListeners = listeners[type];\n\n if (typeListeners == undefined) {\n typeListeners = [];\n listeners[type] = typeListeners;\n }\n\n var found = false;\n\n for (var i = 0; i < typeListeners.length; i += 1) {\n if (typeListeners[i] === listener) {\n found = true;\n }\n }\n\n if (!found) {\n typeListeners.push(listener);\n }\n};\n\nEventTarget.prototype.removeEventListener = function (type, listener) {\n type = String(type);\n var listeners = this._listeners;\n var typeListeners = listeners[type];\n\n if (typeListeners != undefined) {\n var filtered = [];\n\n for (var i = 0; i < typeListeners.length; i += 1) {\n if (typeListeners[i] !== listener) {\n filtered.push(typeListeners[i]);\n }\n }\n\n if (filtered.length === 0) {\n delete listeners[type];\n } else {\n listeners[type] = filtered;\n }\n }\n};\n\nfunction Event(type) {\n this.type = type;\n this.target = undefined;\n}\n\n_c8 = Event;\n\nfunction MessageEvent(type, options) {\n Event.call(this, type);\n this.data = options.data;\n this.lastEventId = options.lastEventId;\n}\n\n_c9 = MessageEvent;\nMessageEvent.prototype = Object.create(Event.prototype);\n\nfunction ConnectionEvent(type, options) {\n Event.call(this, type);\n this.status = options.status;\n this.statusText = options.statusText;\n this.headers = options.headers;\n}\n\n_c10 = ConnectionEvent;\nConnectionEvent.prototype = Object.create(Event.prototype);\nvar WAITING = -1;\nvar CONNECTING = 0;\nvar OPEN = 1;\nvar CLOSED = 2;\nvar AFTER_CR = -1;\nvar FIELD_START = 0;\nvar FIELD = 1;\nvar VALUE_START = 2;\nvar VALUE = 3;\nvar contentTypeRegExp = /^text\\/event\\-stream;?(\\s*charset\\=utf\\-8)?$/i;\nvar MINIMUM_DURATION = 1000;\nvar MAXIMUM_DURATION = 18000000;\n\nvar parseDuration = function parseDuration(value, def) {\n var n = parseInt(value, 10);\n\n if (n !== n) {\n n = def;\n }\n\n return clampDuration(n);\n};\n\nvar clampDuration = function clampDuration(n) {\n return Math.min(Math.max(n, MINIMUM_DURATION), MAXIMUM_DURATION);\n};\n\nvar fire = function fire(that, f, event) {\n try {\n if (typeof f === 'function') {\n f.call(that, event);\n }\n } catch (e) {\n throwError(e);\n }\n};\n\nfunction EventSourcePolyfill(url, options) {\n EventTarget.call(this);\n this.onopen = undefined;\n this.onmessage = undefined;\n this.onerror = undefined;\n this.url = undefined;\n this.readyState = undefined;\n this.withCredentials = undefined;\n this._close = undefined;\n start(this, url, options);\n}\n\n_c11 = EventSourcePolyfill;\nvar isFetchSupported = _unfetch[\"default\"] != undefined && Response != undefined && 'body' in Response.prototype;\n\nfunction start(es, url, options) {\n url = String(url);\n var withCredentials = options != undefined && Boolean(options.withCredentials);\n var initialRetry = clampDuration(1000);\n var heartbeatTimeout = options != undefined && options.heartbeatTimeout != undefined ? parseDuration(options.heartbeatTimeout, 45000) : clampDuration(45000);\n var lastEventId = '';\n var retry = initialRetry;\n var wasActivity = false;\n var headers = options != undefined && options.headers != undefined ? JSON.parse(JSON.stringify(options.headers)) : undefined;\n var CurrentTransport = options != undefined && options.Transport != undefined ? options.Transport : XMLHttpRequest;\n var xhr = isFetchSupported && !(options != undefined && options.Transport != undefined) ? undefined : new XHRWrapper(new CurrentTransport());\n var transport = xhr == undefined ? new FetchTransport() : new XHRTransport();\n var cancelFunction = undefined;\n var timeout = 0;\n var currentState = WAITING;\n var dataBuffer = '';\n var lastEventIdBuffer = '';\n var eventTypeBuffer = '';\n var textBuffer = '';\n var state = FIELD_START;\n var fieldStart = 0;\n var valueStart = 0;\n\n var onStart = function onStart(status, statusText, contentType, headers, cancel) {\n if (currentState === CONNECTING) {\n cancelFunction = cancel;\n\n if (status === 200 && contentType != undefined && contentTypeRegExp.test(contentType)) {\n currentState = OPEN;\n wasActivity = true;\n retry = initialRetry;\n es.readyState = OPEN;\n var event = new ConnectionEvent('open', {\n status: status,\n statusText: statusText,\n headers: headers\n });\n es.dispatchEvent(event);\n fire(es, es.onopen, event);\n } else {\n var message = '';\n\n if (status !== 200) {\n if (statusText) {\n statusText = statusText.replace(/\\s+/g, ' ');\n }\n\n message = \"EventSource's response has a status \" + status + ' ' + statusText + ' that is not 200. Aborting the connection.';\n } else {\n message = \"EventSource's response has a Content-Type specifying an unsupported type: \" + (contentType == undefined ? '-' : contentType.replace(/\\s+/g, ' ')) + '. Aborting the connection.';\n }\n\n throwError(new Error(message));\n close();\n var event = new ConnectionEvent('error', {\n status: status,\n statusText: statusText,\n headers: headers\n });\n es.dispatchEvent(event);\n fire(es, es.onerror, event);\n }\n }\n };\n\n var onProgress = function onProgress(textChunk) {\n if (currentState === OPEN) {\n var n = -1;\n\n for (var i = 0; i < textChunk.length; i += 1) {\n var c = textChunk.charCodeAt(i);\n\n if (c === '\\n'.charCodeAt(0) || c === '\\r'.charCodeAt(0)) {\n n = i;\n }\n }\n\n var chunk = (n !== -1 ? textBuffer : '') + textChunk.slice(0, n + 1);\n textBuffer = (n === -1 ? textBuffer : '') + textChunk.slice(n + 1);\n\n if (chunk !== '') {\n wasActivity = true;\n }\n\n for (var position = 0; position < chunk.length; position += 1) {\n var c = chunk.charCodeAt(position);\n\n if (state === AFTER_CR && c === '\\n'.charCodeAt(0)) {\n state = FIELD_START;\n } else {\n if (state === AFTER_CR) {\n state = FIELD_START;\n }\n\n if (c === '\\r'.charCodeAt(0) || c === '\\n'.charCodeAt(0)) {\n if (state !== FIELD_START) {\n if (state === FIELD) {\n valueStart = position + 1;\n }\n\n var field = chunk.slice(fieldStart, valueStart - 1);\n var value = chunk.slice(valueStart + (valueStart < position && chunk.charCodeAt(valueStart) === ' '.charCodeAt(0) ? 1 : 0), position);\n\n if (field === 'data') {\n dataBuffer += '\\n';\n dataBuffer += value;\n } else if (field === 'id') {\n lastEventIdBuffer = value;\n } else if (field === 'event') {\n eventTypeBuffer = value;\n } else if (field === 'retry') {\n initialRetry = parseDuration(value, initialRetry);\n retry = initialRetry;\n } else if (field === 'heartbeatTimeout') {\n heartbeatTimeout = parseDuration(value, heartbeatTimeout);\n\n if (timeout !== 0) {\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n onTimeout();\n }, heartbeatTimeout);\n }\n }\n }\n\n if (state === FIELD_START) {\n if (dataBuffer !== '') {\n lastEventId = lastEventIdBuffer;\n\n if (eventTypeBuffer === '') {\n eventTypeBuffer = 'message';\n }\n\n var event = new MessageEvent(eventTypeBuffer, {\n data: dataBuffer.slice(1),\n lastEventId: lastEventIdBuffer\n });\n es.dispatchEvent(event);\n\n if (eventTypeBuffer === 'message') {\n fire(es, es.onmessage, event);\n }\n\n if (currentState === CLOSED) {\n return;\n }\n }\n\n dataBuffer = '';\n eventTypeBuffer = '';\n }\n\n state = c === '\\r'.charCodeAt(0) ? AFTER_CR : FIELD_START;\n } else {\n if (state === FIELD_START) {\n fieldStart = position;\n state = FIELD;\n }\n\n if (state === FIELD) {\n if (c === ':'.charCodeAt(0)) {\n valueStart = position + 1;\n state = VALUE_START;\n }\n } else if (state === VALUE_START) {\n state = VALUE;\n }\n }\n }\n }\n }\n };\n\n var onFinish = function onFinish() {\n if (currentState === OPEN || currentState === CONNECTING) {\n currentState = WAITING;\n\n if (timeout !== 0) {\n clearTimeout(timeout);\n timeout = 0;\n }\n\n timeout = setTimeout(function () {\n onTimeout();\n }, retry);\n retry = clampDuration(Math.min(initialRetry * 16, retry * 2));\n es.readyState = CONNECTING;\n var event = new Event('error');\n es.dispatchEvent(event);\n fire(es, es.onerror, event);\n }\n };\n\n var close = function close() {\n currentState = CLOSED;\n\n if (cancelFunction != undefined) {\n cancelFunction();\n cancelFunction = undefined;\n }\n\n if (timeout !== 0) {\n clearTimeout(timeout);\n timeout = 0;\n }\n\n es.readyState = CLOSED;\n };\n\n var onTimeout = function onTimeout() {\n timeout = 0;\n\n if (currentState !== WAITING) {\n if (!wasActivity && cancelFunction != undefined) {\n throwError(new Error('No activity within ' + heartbeatTimeout + ' milliseconds. Reconnecting.'));\n cancelFunction();\n cancelFunction = undefined;\n } else {\n wasActivity = false;\n timeout = setTimeout(function () {\n onTimeout();\n }, heartbeatTimeout);\n }\n\n return;\n }\n\n wasActivity = false;\n timeout = setTimeout(function () {\n onTimeout();\n }, heartbeatTimeout);\n currentState = CONNECTING;\n dataBuffer = '';\n eventTypeBuffer = '';\n lastEventIdBuffer = lastEventId;\n textBuffer = '';\n fieldStart = 0;\n valueStart = 0;\n state = FIELD_START; // https://bugzilla.mozilla.org/show_bug.cgi?id=428916\n // Request header field Last-Event-ID is not allowed by Access-Control-Allow-Headers.\n\n var requestURL = url;\n\n if (url.slice(0, 5) !== 'data:' && url.slice(0, 5) !== 'blob:') {\n if (lastEventId !== '') {\n requestURL += (url.indexOf('?') === -1 ? '?' : '&') + 'lastEventId=' + encodeURIComponent(lastEventId);\n }\n }\n\n var requestHeaders = {};\n requestHeaders['Accept'] = 'text/event-stream';\n\n if (headers != undefined) {\n for (var name in headers) {\n if (Object.prototype.hasOwnProperty.call(headers, name)) {\n requestHeaders[name] = headers[name];\n }\n }\n }\n\n try {\n transport.open(xhr, onStart, onProgress, onFinish, requestURL, withCredentials, requestHeaders);\n } catch (error) {\n close();\n throw error;\n }\n };\n\n es.url = url;\n es.readyState = CONNECTING;\n es.withCredentials = withCredentials;\n es._close = close;\n onTimeout();\n}\n\nEventSourcePolyfill.prototype = Object.create(EventTarget.prototype);\nEventSourcePolyfill.prototype.CONNECTING = CONNECTING;\nEventSourcePolyfill.prototype.OPEN = OPEN;\nEventSourcePolyfill.prototype.CLOSED = CLOSED;\n\nEventSourcePolyfill.prototype.close = function () {\n this._close();\n};\n\nEventSourcePolyfill.CONNECTING = CONNECTING;\nEventSourcePolyfill.OPEN = OPEN;\nEventSourcePolyfill.CLOSED = CLOSED;\nEventSourcePolyfill.prototype.withCredentials = undefined;\nvar _default = EventSourcePolyfill;\nexports[\"default\"] = _default;\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11;\n\n$RefreshReg$(_c, \"TextDecoderPolyfill\");\n$RefreshReg$(_c2, \"XHRWrapper\");\n$RefreshReg$(_c3, \"HeadersPolyfill\");\n$RefreshReg$(_c4, \"XHRTransport\");\n$RefreshReg$(_c5, \"HeadersWrapper\");\n$RefreshReg$(_c6, \"FetchTransport\");\n$RefreshReg$(_c7, \"EventTarget\");\n$RefreshReg$(_c8, \"Event\");\n$RefreshReg$(_c9, \"MessageEvent\");\n$RefreshReg$(_c10, \"ConnectionEvent\");\n$RefreshReg$(_c11, \"EventSourcePolyfill\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.i);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uLy4uL2NsaWVudC9kZXYvZXZlbnQtc291cmNlLXBvbHlmaWxsLmpzPzYzZDQiXSwibmFtZXMiOlsiZG9jdW1lbnQiLCJ3aW5kb3ciLCJSZXNwb25zZSIsIlRleHREZWNvZGVyIiwiVGV4dEVuY29kZXIiLCJBYm9ydENvbnRyb2xsZXIiLCJUZXh0RGVjb2RlclBvbHlmaWxsIiwib2N0ZXRzQ291bnQiLCJjb2RlUG9pbnQiLCJiaXRzTmVlZGVkIiwiUkVQTEFDRVIiLCJzdHJpbmciLCJpIiwib2N0ZXRzIiwib2N0ZXQiLCJ2YWxpZCIsIlN0cmluZyIsInN1cHBvcnRzU3RyZWFtT3B0aW9uIiwic3RyZWFtIiwiY29uc29sZSIsImsiLCJ0aGF0IiwieGhyIiwic3RhdGUiLCJ0aW1lb3V0IiwiY2xlYXJUaW1lb3V0Iiwib25TdGFydCIsInN0YXR1cyIsInN0YXR1c1RleHQiLCJjb250ZW50VHlwZSIsIm9uUHJvZ3Jlc3MiLCJyZXNwb25zZVRleHQiLCJvbkZpbmlzaCIsIm9uUmVhZHlTdGF0ZUNoYW5nZSIsIm9uVGltZW91dCIsInNldFRpbWVvdXQiLCJYTUxIdHRwUmVxdWVzdCIsInVybCIsIlhIUldyYXBwZXIiLCJuYW1lIiwiYyIsIm1hcCIsIk9iamVjdCIsImFycmF5IiwiYWxsIiwibGluZSIsInBhcnRzIiwidmFsdWUiLCJ0b0xvd2VyQ2FzZSIsIkhlYWRlcnNQb2x5ZmlsbCIsIlhIUlRyYW5zcG9ydCIsIm9mZnNldCIsImNodW5rIiwib25Qcm9ncmVzc0NhbGxiYWNrIiwiaGVhZGVycyIsIm9uU3RhcnRDYWxsYmFjayIsIm9uRmluaXNoQ2FsbGJhY2siLCJIZWFkZXJzV3JhcHBlciIsImNvbnRyb2xsZXIiLCJzaWduYWwiLCJ0ZXh0RGVjb2RlciIsImNyZWRlbnRpYWxzIiwid2l0aENyZWRlbnRpYWxzIiwiY2FjaGUiLCJyZWFkZXIiLCJyZXNwb25zZSIsInJlYWROZXh0Q2h1bmsiLCJyZXN1bHQiLCJyZXNvbHZlIiwicmVqZWN0IiwiUHJvbWlzZSIsIkV2ZW50VGFyZ2V0IiwiZXZlbnQiLCJ0eXBlTGlzdGVuZXJzIiwibGVuZ3RoIiwibGlzdGVuZXIiLCJ0aHJvd0Vycm9yIiwidHlwZSIsImxpc3RlbmVycyIsImZvdW5kIiwiZmlsdGVyZWQiLCJFdmVudCIsIm9wdGlvbnMiLCJNZXNzYWdlRXZlbnQiLCJDb25uZWN0aW9uRXZlbnQiLCJXQUlUSU5HIiwiQ09OTkVDVElORyIsIk9QRU4iLCJDTE9TRUQiLCJBRlRFUl9DUiIsIkZJRUxEX1NUQVJUIiwiRklFTEQiLCJWQUxVRV9TVEFSVCIsIlZBTFVFIiwiY29udGVudFR5cGVSZWdFeHAiLCJNSU5JTVVNX0RVUkFUSU9OIiwiTUFYSU1VTV9EVVJBVElPTiIsInBhcnNlRHVyYXRpb24iLCJuIiwicGFyc2VJbnQiLCJjbGFtcER1cmF0aW9uIiwiTWF0aCIsImZpcmUiLCJmIiwic3RhcnQiLCJpc0ZldGNoU3VwcG9ydGVkIiwiZmV0Y2giLCJCb29sZWFuIiwiaW5pdGlhbFJldHJ5IiwiaGVhcnRiZWF0VGltZW91dCIsImxhc3RFdmVudElkIiwicmV0cnkiLCJ3YXNBY3Rpdml0eSIsIkpTT04iLCJDdXJyZW50VHJhbnNwb3J0IiwidHJhbnNwb3J0IiwiY2FuY2VsRnVuY3Rpb24iLCJjdXJyZW50U3RhdGUiLCJkYXRhQnVmZmVyIiwibGFzdEV2ZW50SWRCdWZmZXIiLCJldmVudFR5cGVCdWZmZXIiLCJ0ZXh0QnVmZmVyIiwiZmllbGRTdGFydCIsInZhbHVlU3RhcnQiLCJlcyIsIm1lc3NhZ2UiLCJjbG9zZSIsInRleHRDaHVuayIsInBvc2l0aW9uIiwiZmllbGQiLCJkYXRhIiwicmVxdWVzdFVSTCIsImVuY29kZVVSSUNvbXBvbmVudCIsInJlcXVlc3RIZWFkZXJzIiwiRXZlbnRTb3VyY2VQb2x5ZmlsbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUlBO0FBSkE7QUFDQTtBQUNBO0FBQ0E7OztBQUdBLElBQUlBLFFBQVEsR0FBR0MsTUFBTSxDQUFyQjtBQUNBLElBQUlDLFFBQVEs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Y0FBYztBQUNkVyxXQUFLO0FBQ0w7QUFFSDtBQXZFRDs7QUF5RUFGLElBQUUsQ0FBRkE7QUFDQUEsSUFBRSxDQUFGQTtBQUNBQSxJQUFFLENBQUZBO0FBQ0FBLElBQUUsQ0FBRkE7QUFFQTFGLFdBQVM7QUFHWG9HOztBQUFBQSxtQkFBbUIsQ0FBbkJBLFlBQWdDNUYsTUFBTSxDQUFOQSxPQUFjNkIsV0FBVyxDQUF6RCtELFNBQWdDNUYsQ0FBaEM0RjtBQUNBQSxtQkFBbUIsQ0FBbkJBO0FBQ0FBLG1CQUFtQixDQUFuQkE7QUFDQUEsbUJBQW1CLENBQW5CQTs7QUFDQUEsbUJBQW1CLENBQW5CQSxrQkFBc0MsWUFBWTtBQUNoRDtBQURGQTs7QUFJQUEsbUJBQW1CLENBQW5CQTtBQUNBQSxtQkFBbUIsQ0FBbkJBO0FBQ0FBLG1CQUFtQixDQUFuQkE7QUFDQUEsbUJBQW1CLENBQW5CQTtlQUVlQSxtQiIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2Rldi9ldmVudC1zb3VyY2UtcG9seWZpbGwuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSAqL1xuLy8gSW1wcm92ZWQgdmVyc2lvbiBvZiBodHRwczovL2dpdGh1Yi5jb20vWWFmZmxlL0V2ZW50U291cmNlL1xuLy8gQXZhaWxhYmxlIHVuZGVyIE1JVCBMaWNlbnNlIChNSVQpXG4vLyBPbmx5IHRyaWVzIHRvIHN1cHBvcnQgSUUxMSBhbmQgbm90aGluZyBiZWxvd1xuaW1wb3J0IGZldGNoIGZyb20gJ25leHQvZGlzdC9idWlsZC9wb2x5ZmlsbHMvdW5mZXRjaCdcblxudmFyIGRvY3VtZW50ID0gd2luZG93LmRvY3VtZW50XG52YXIgUmVzcG9uc2UgPSB3aW5kb3cuUmVzcG9uc2VcbnZhciBUZXh0RGVjb2RlciA9IHdpbmRvdy5UZXh0RGVjb2RlclxudmFyIFRleHRFbmNvZGVyID0gd2luZG93LlRleHRFbmNvZGVyXG52YXIgQWJvcnRDb250cm9sbGVyID0gd2luZG93LkFib3J0Q29udHJvbGxlclxuXG5pZiAoQWJvcnRDb250cm9sbGVyID09IHVuZGVmaW5lZCkge1xuICBBYm9ydENvbnRyb2xsZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5zaWduYWwgPSBudWxsXG4gICAgdGhpcy5hYm9ydCA9IGZ1bmN0aW9uICgpIHt9XG4gIH1cbn1cblxuZnVuY3Rpb24gVGV4dERlY29kZXJQb2x5ZmlsbCgpIHtcbiAgdGhpcy5iaXRzTmVlZGVkID0gMFxuICB0aGlzLmNvZGVQb2ludCA9IDBcbn1cblxuVGV4dERlY29kZXJQb2x5ZmlsbC5wcm90b3R5cGUuZGVjb2RlID0gZnVuY3Rpb24gKG9jdGV0cykge1xuICBmdW5jdGlvbiB2YWxpZChjb2RlUG9pbnQsIHNoaWZ0LCBvY3RldHNDb3VudCkge1xuICAgIGlmIChvY3RldHNDb3VudCA9PT0gMSkge1xuICAgICAgcmV0dXJuIGNvZGVQb2ludCA+PSAweDAwODAgPj4gc2hpZnQgJiYgY29kZVBvaW50IDw8IHNoaWZ0IDw9IDB4MDdmZlxuICAgIH1cbiAgICBpZiAob2N0ZXRzQ291bnQgPT09IDIpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIChjb2RlUG9pbnQgPj0gMHgwODAwID4+IHNoaWZ0ICYmIGNvZGVQb2ludCA8PCBzaGlmdCA8PSAweGQ3ZmYpIHx8XG4gICAgICAgIChjb2RlUG9pbnQgPj0gMHhlMDAwID4+IHNoaWZ0ICYmIGNvZGVQb2ludCA8PCBzaGlmdCA8PSAweGZmZmYpXG4gICAgICApXG4gICAgfVxuICAgIGlmIChvY3RldHNDb3VudCA9PT0gMykge1xuICAgICAgcmV0dXJuIGNvZGVQb2ludCA+PSAweDAxMDAwMCA+PiBzaGlmdCAmJiBjb2RlUG9pbnQgPDwgc2hpZnQgPD0gMHgxMGZmZmZcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKClcbiAgfVxuICBmdW5jdGlvbiBvY3RldHNDb3VudChiaXRzTmVlZGVkLCBjb2RlUG9pbnQpIHtcbiAgICBpZiAoYml0c05lZWRlZCA9PT0gNiAqIDEpIHtcbiAgICAgIHJldHVybiBjb2RlUG9pbnQgPj4gNiA+IDE1ID8gMyA6IGNvZGVQb2ludCA+IDMxID8gMiA6IDFcbiAgICB9XG4gICAgaWYgKGJpdHNOZWVkZWQgPT09IDYgKiAyKSB7XG4gICAgICByZXR1cm4gY29kZVBvaW50ID4gMTUgPyAzIDogMlxuICAgIH1cbiAgICBpZiAoYml0c05lZWRlZCA9PT0gNiAqIDMpIHtcbiAgICAgIHJldHVybiAzXG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcigpXG4gIH1cbiAgdmFyIFJFUExBQ0VSID0gMHhmZmZkXG4gIHZhciBzdHJpbmcgPSAnJ1xuICB2YXIgYml0c05lZWRlZCA9IHRoaXMuYml0c05lZWRlZFxuICB2YXIgY29kZVBvaW50ID0gdGhpcy5jb2RlUG9pbnRcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBvY3RldHMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICB2YXIgb2N0ZXQgPSBvY3RldHNbaV1cbiAgICBpZiAoYml0c05lZWRlZCAhPT0gMCkge1xuICAgICAgaWYgKFxuICAgICAgICBvY3RldCA8IDEyOCB8fFxuICAgICAgICBvY3RldCA+IDE5MSB8fFxuICAgICAgICAhdmFsaWQoXG4gICAgICAgICAgKGNvZGVQb2ludCA8PCA2KSB8IChvY3RldCAmIDYzKSxcbiAgICAgICAgICBiaXRzTmVlZGVkIC0gNixcbiAgICAgICAgICBvY3RldHNDb3VudChiaXRzTmVlZGVkLCBjb2RlUG9pbnQpXG4gICAgICAgIClcbiAgICAgICkge1xuICAgICAgICBiaXRzTmVlZGVkID0gMFxuICAgICAgICBjb2RlUG9pbnQgPSBSRVBMQUNFUlxuICAgICAgICBzdHJpbmcgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShjb2RlUG9pbnQpXG4gICAgICB9XG4gICAgfVxuICAgIGlmIChiaXRzTmVlZGVkID09PSAwKSB7XG4gICAgICBpZiAob2N0ZXQgPj0gMCAmJiBvY3RldCA8PSAxMjcpIHtcbiAgICAgICAgYml0c05lZWRlZCA9IDBcbiAgICAgICAgY29kZVBvaW50ID0gb2N0ZXRcbiAgICAgIH0gZWxzZSBpZiAob2N0ZXQgPj0gMTkyICYmIG9jdGV0IDw9IDIyMykge1xuICAgICAgICBiaXRzTmVlZGVkID0gNiAqIDFcbiAgICAgICAgY29kZVBvaW50ID0gb2N0ZXQgJiAzMVxuICAgICAgfSBlbHNlIGlmIChvY3RldCA+PSAyMjQgJiYgb2N0ZXQgPD0gMjM5KSB7XG4gICAgICAgIGJpdHNOZWVkZWQgPSA2ICogMlxuICAgICAgICBjb2RlUG9pbnQgPSBvY3RldCAmIDE1XG4gICAgICB9IGVsc2UgaWYgKG9jdGV0ID49IDI0MCAmJiBvY3RldCA8PSAyNDcpIHtcbiAgICAgICAgYml0c05lZWRlZCA9IDYgKiAzXG4gICAgICAgIGNvZGVQb2ludCA9IG9jdGV0ICYgN1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYml0c05lZWRlZCA9IDBcbiAgICAgICAgY29kZVBvaW50ID0gUkVQTEFDRVJcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgYml0c05lZWRlZCAhPT0gMCAmJlxuICAgICAgICAhdmFsaWQoY29kZVBvaW50LCBiaXRzTmVlZGVkLCBvY3RldHNDb3VudChiaXRzTmVlZGVkLCBjb2RlUG9pbnQpKVxuICAgICAgKSB7XG4gICAgICAgIGJpdHNOZWVkZWQgPSAwXG4gICAgICAgIGNvZGVQb2ludCA9IFJFUExBQ0VSXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGJpdHNOZWVkZWQgLT0gNlxuICAgICAgY29kZVBvaW50ID0gKGNvZGVQb2ludCA8PCA2KSB8IChvY3RldCAmIDYzKVxuICAgIH1cbiAgICBpZiAoYml0c05lZWRlZCA9PT0gMCkge1xuICAgICAgaWYgKGNvZGVQb2ludCA8PSAweGZmZmYpIHtcbiAgICAgICAgc3RyaW5nICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoY29kZVBvaW50KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3RyaW5nICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoMHhkODAwICsgKChjb2RlUG9pbnQgLSAweGZmZmYgLSAxKSA+PiAxMCkpXG4gICAgICAgIHN0cmluZyArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKFxuICAgICAgICAgIDB4ZGMwMCArICgoY29kZVBvaW50IC0gMHhmZmZmIC0gMSkgJiAweDNmZilcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH1cbiAgfVxuICB0aGlzLmJpdHNOZWVkZWQgPSBiaXRzTmVlZGVkXG4gIHRoaXMuY29kZVBvaW50ID0gY29kZVBvaW50XG4gIHJldHVybiBzdHJpbmdcbn1cblxuLy8gRmlyZWZveCA8IDM4IHRocm93cyBhbiBlcnJvciB3aXRoIHN0cmVhbSBvcHRpb25cbnZhciBzdXBwb3J0c1N0cmVhbU9wdGlvbiA9IGZ1bmN0aW9uICgpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gKFxuICAgICAgbmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZSgndGVzdCcpLCB7XG4gICAgICAgIHN0cmVhbTogdHJ1ZSxcbiAgICAgIH0pID09PSAndGVzdCdcbiAgICApXG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS5sb2coZXJyb3IpXG4gIH1cbiAgcmV0dXJuIGZhbHNlXG59XG5cbi8vIElFLCBFZGdlXG5pZiAoXG4gIFRleHREZWNvZGVyID09IHVuZGVmaW5lZCB8fFxuICBUZXh0RW5jb2RlciA9PSB1bmRlZmluZWQgfHxcbiAgIXN1cHBvcnRzU3RyZWFtT3B0aW9uKClcbikge1xuICBUZXh0RGVjb2RlciA9IFRleHREZWNvZGVyUG9seWZpbGxcbn1cblxudmFyIGsgPSBmdW5jdGlvbiAoKSB7fVxuXG5mdW5jdGlvbiBYSFJXcmFwcGVyKHhocikge1xuICB0aGlzLndpdGhDcmVkZW50aWFscyA9IGZhbHNlXG4gIHRoaXMucmVzcG9uc2VUeXBlID0gJydcbiAgdGhpcy5yZWFkeVN0YXRlID0gMFxuICB0aGlzLnN0YXR1cyA9IDBcbiAgdGhpcy5zdGF0dXNUZXh0ID0gJydcbiAgdGhpcy5yZXNwb25zZVRleHQgPSAnJ1xuICB0aGlzLm9ucHJvZ3Jlc3MgPSBrXG4gIHRoaXMub25yZWFkeXN0YXRlY2hhbmdlID0ga1xuICB0aGlzLl9jb250ZW50VHlwZSA9ICcnXG4gIHRoaXMuX3hociA9IHhoclxuICB0aGlzLl9zZW5kVGltZW91dCA9IDBcbiAgdGhpcy5fYWJvcnQgPSBrXG59XG5cblhIUldyYXBwZXIucHJvdG90eXBlLm9wZW4gPSBmdW5jdGlvbiAobWV0aG9kLCB1cmwpIHtcbiAgdGhpcy5fYWJvcnQodHJ1ZSlcblxuICB2YXIgdGhhdCA9IHRoaXNcbiAgdmFyIHhociA9IHRoaXMuX3hoclxuICB2YXIgc3RhdGUgPSAxXG4gIHZhciB0aW1lb3V0ID0gMFxuXG4gIHRoaXMuX2Fib3J0ID0gZnVuY3Rpb24gKHNpbGVudCkge1xuICAgIGlmICh0aGF0Ll9zZW5kVGltZW91dCAhPT0gMCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoYXQuX3NlbmRUaW1lb3V0KVxuICAgICAgdGhhdC5fc2VuZFRpbWVvdXQgPSAwXG4gICAgfVxuICAgIGlmIChzdGF0ZSA9PT0gMSB8fCBzdGF0ZSA9PT0gMiB8fCBzdGF0ZSA9PT0gMykge1xuICAgICAgc3RhdGUgPSA0XG4gICAgICB4aHIub25sb2FkID0ga1xuICAgICAgeGhyLm9uZXJyb3IgPSBrXG4gICAgICB4aHIub25hYm9ydCA9IGtcbiAgICAgIHhoci5vbnByb2dyZXNzID0ga1xuICAgICAgeGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGtcbiAgICAgIC8vIElFIDggLSA5OiBYRG9tYWluUmVxdWVzdCNhYm9ydCgpIGRvZXMgbm90IGZpcmUgYW55IGV2ZW50XG4gICAgICAvLyBPcGVyYSA8IDEwOiBYTUxIdHRwUmVxdWVzdCNhYm9ydCgpIGRvZXMgbm90IGZpcmUgYW55IGV2ZW50XG4gICAgICB4aHIuYWJvcnQoKVxuICAgICAgaWYgKHRpbWVvdXQgIT09IDApIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpXG4gICAgICAgIHRpbWVvdXQgPSAwXG4gICAgICB9XG4gICAgICBpZiAoIXNpbGVudCkge1xuICAgICAgICB0aGF0LnJlYWR5U3RhdGUgPSA0XG4gICAgICAgIHRoYXQub25yZWFkeXN0YXRlY2hhbmdlKClcbiAgICAgIH1cbiAgICB9XG4gICAgc3RhdGUgPSAwXG4gIH1cblxuICB2YXIgb25TdGFydCA9IGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoc3RhdGUgPT09IDEpIHtcbiAgICAgIC8vIHN0YXRlID0gMjtcbiAgICAgIHZhciBzdGF0dXMgPSAwXG4gICAgICB2YXIgc3RhdHVzVGV4dCA9ICcnXG4gICAgICB2YXIgY29udGVudFR5cGUgPSB1bmRlZmluZWRcbiAgICAgIGlmICghKCdjb250ZW50VHlwZScgaW4geGhyKSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHN0YXR1cyA9IHhoci5zdGF0dXNcbiAgICAgICAgICBzdGF0dXNUZXh0ID0geGhyLnN0YXR1c1RleHRcbiAgICAgICAgICBjb250ZW50VHlwZSA9IHhoci5nZXRSZXNwb25zZUhlYWRlcignQ29udGVudC1UeXBlJylcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAvLyBJRSA8IDEwIHRocm93cyBleGNlcHRpb24gZm9yIGB4aHIuc3RhdHVzYCB3aGVuIHhoci5yZWFkeVN0YXRlID09PSAyIHx8IHhoci5yZWFkeVN0YXRlID09PSAzXG4gICAgICAgICAgLy8gT3BlcmEgPCAxMSB0aHJvd3MgZXhjZXB0aW9uIGZvciBgeGhyLnN0YXR1c2Agd2hlbiB4aHIucmVhZHlTdGF0ZSA9PT0gMlxuICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTEyMVxuICAgICAgICAgIHN0YXR1cyA9IDBcbiAgICAgICAgICBzdGF0dXNUZXh0ID0gJydcbiAgICAgICAgICBjb250ZW50VHlwZSA9IHVuZGVmaW5lZFxuICAgICAgICAgIC8vIEZpcmVmb3ggPCAxNCwgQ2hyb21lID8sIFNhZmFyaSA/XG4gICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5NjU4XG4gICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3ODU0XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN0YXR1cyA9IDIwMFxuICAgICAgICBzdGF0dXNUZXh0ID0gJ09LJ1xuICAgICAgICBjb250ZW50VHlwZSA9IHhoci5jb250ZW50VHlwZVxuICAgICAgfVxuICAgICAgaWYgKHN0YXR1cyAhPT0gMCkge1xuICAgICAgICBzdGF0ZSA9IDJcbiAgICAgICAgdGhhdC5yZWFkeVN0YXRlID0gMlxuICAgICAgICB0aGF0LnN0YXR1cyA9IHN0YXR1c1xuICAgICAgICB0aGF0LnN0YXR1c1RleHQgPSBzdGF0dXNUZXh0XG4gICAgICAgIHRoYXQuX2NvbnRlbnRUeXBlID0gY29udGVudFR5cGVcbiAgICAgICAgdGhhdC5vbnJlYWR5c3RhdGVjaGFuZ2UoKVxuICAgICAgfVxuICAgIH1cbiAgfVxuICB2YXIgb25Qcm9ncmVzcyA9IGZ1bmN0aW9uICgpIHtcbiAgICBvblN0YXJ0KClcbiAgICBpZiAoc3RhdGUgPT09IDIgfHwgc3RhdGUgPT09IDMpIHtcbiAgICAgIHN0YXRlID0gM1xuICAgICAgdmFyIHJlc3BvbnNlVGV4dCA9ICcnXG4gICAgICB0cnkge1xuICAgICAgICByZXNwb25zZVRleHQgPSB4aHIucmVzcG9uc2VUZXh0XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAvLyBJRSA4IC0gOSB3aXRoIFhNTEh0dHBSZXF1ZXN0XG4gICAgICB9XG4gICAgICB0aGF0LnJlYWR5U3RhdGUgPSAzXG4gICAgICB0aGF0LnJlc3BvbnNlVGV4dCA9IHJlc3BvbnNlVGV4dFxuICAgICAgdGhhdC5vbnByb2dyZXNzKClcbiAgICB9XG4gIH1cbiAgdmFyIG9uRmluaXNoID0gZnVuY3Rpb24gKCkge1xuICAgIC8vIEZpcmVmb3ggNTIgZmlyZXMgXCJyZWFkeXN0YXRlY2hhbmdlXCIgKHhoci5yZWFkeVN0YXRlID09PSA0KSB3aXRob3V0IGZpbmFsIFwicmVhZHlzdGF0ZWNoYW5nZVwiICh4aHIucmVhZHlTdGF0ZSA9PT0gMylcbiAgICAvLyBJRSA4IGZpcmVzIFwib25sb2FkXCIgd2l0aG91dCBcIm9ucHJvZ3Jlc3NcIlxuICAgIG9uUHJvZ3Jlc3MoKVxuICAgIGlmIChzdGF0ZSA9PT0gMSB8fCBzdGF0ZSA9PT0gMiB8fCBzdGF0ZSA9PT0gMykge1xuICAgICAgc3RhdGUgPSA0XG4gICAgICBpZiAodGltZW91dCAhPT0gMCkge1xuICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dClcbiAgICAgICAgdGltZW91dCA9IDBcbiAgICAgIH1cbiAgICAgIHRoYXQucmVhZHlTdGF0ZSA9IDRcbiAgICAgIHRoYXQub25yZWFkeXN0YXRlY2hhbmdlKClcbiAgICB9XG4gIH1cbiAgdmFyIG9uUmVhZHlTdGF0ZUNoYW5nZSA9IGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoeGhyICE9IHVuZGVmaW5lZCkge1xuICAgICAgLy8gT3BlcmEgMTJcbiAgICAgIGlmICh4aHIucmVhZHlTdGF0ZSA9PT0gNCkge1xuICAgICAgICBvbkZpbmlzaCgpXG4gICAgICB9IGVsc2UgaWYgKHhoci5yZWFkeVN0YXRlID09PSAzKSB7XG4gICAgICAgIG9uUHJvZ3Jlc3MoKVxuICAgICAgfSBlbHNlIGlmICh4aHIucmVhZHlTdGF0ZSA9PT0gMikge1xuICAgICAgICBvblN0YXJ0KClcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgdmFyIG9uVGltZW91dCA9IGZ1bmN0aW9uICgpIHtcbiAgICB0aW1lb3V0ID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICBvblRpbWVvdXQoKVxuICAgIH0sIDUwMClcbiAgICBpZiAoeGhyLnJlYWR5U3RhdGUgPT09IDMpIHtcbiAgICAgIG9uUHJvZ3Jlc3MoKVxuICAgIH1cbiAgfVxuXG4gIC8vIFhEb21haW5SZXF1ZXN0I2Fib3J0IHJlbW92ZXMgb25wcm9ncmVzcywgb25lcnJvciwgb25sb2FkXG4gIHhoci5vbmxvYWQgPSBvbkZpbmlzaFxuICB4aHIub25lcnJvciA9IG9uRmluaXNoXG4gIC8vIGltcHJvcGVyIGZpeCB0byBtYXRjaCBGaXJlZm94IGJlaGF2aW9yLCBidXQgaXQgaXMgYmV0dGVyIHRoYW4ganVzdCBpZ25vcmUgYWJvcnRcbiAgLy8gc2VlIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTc2ODU5NlxuICAvLyBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD04ODAyMDBcbiAgLy8gaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTE1MzU3MFxuICAvLyBJRSA4IGZpcmVzIFwib25sb2FkXCIgd2l0aG91dCBcIm9ucHJvZ3Jlc3NcbiAgeGhyLm9uYWJvcnQgPSBvbkZpbmlzaFxuXG4gIC8vIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTczNjcyM1xuICBpZiAoXG4gICAgISgnc2VuZEFzQmluYXJ5JyBpbiBYTUxIdHRwUmVxdWVzdC5wcm90b3R5cGUpICYmXG4gICAgISgnbW96QW5vbicgaW4gWE1MSHR0cFJlcXVlc3QucHJvdG90eXBlKVxuICApIHtcbiAgICB4aHIub25wcm9ncmVzcyA9IG9uUHJvZ3Jlc3NcbiAgfVxuXG4gIC8vIElFIDggLSA5IChYTUxIVFRQUmVxdWVzdClcbiAgLy8gT3BlcmEgPCAxMlxuICAvLyBGaXJlZm94IDwgMy41XG4gIC8vIEZpcmVmb3ggMy41IC0gMy42IC0gPyA8IDkuMFxuICAvLyBvbnByb2dyZXNzIGlzIG5vdCBmaXJlZCBzb21ldGltZXMgb3IgZGVsYXllZFxuICAvLyBzZWUgYWxzbyAjNjRcbiAgeGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IG9uUmVhZHlTdGF0ZUNoYW5nZVxuXG4gIGlmICgnY29udGVudFR5cGUnIGluIHhocikge1xuICAgIHVybCArPSAodXJsLmluZGV4T2YoJz8nKSA9PT0gLTEgPyAnPycgOiAnJicpICsgJ3BhZGRpbmc9dHJ1ZSdcbiAgfVxuICB4aHIub3BlbihtZXRob2QsIHVybCwgdHJ1ZSlcblxuICBpZiAoJ3JlYWR5U3RhdGUnIGluIHhocikge1xuICAgIC8vIHdvcmthcm91bmQgZm9yIE9wZXJhIDEyIGlzc3VlIHdpdGggXCJwcm9ncmVzc1wiIGV2ZW50c1xuICAgIC8vICM5MVxuICAgIHRpbWVvdXQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgIG9uVGltZW91dCgpXG4gICAgfSwgMClcbiAgfVxufVxuWEhSV3JhcHBlci5wcm90b3R5cGUuYWJvcnQgPSBmdW5jdGlvbiAoKSB7XG4gIHRoaXMuX2Fib3J0KGZhbHNlKVxufVxuWEhSV3JhcHBlci5wcm90b3R5cGUuZ2V0UmVzcG9uc2VIZWFkZXIgPSBmdW5jdGlvbiAobmFtZSkge1xuICByZXR1cm4gdGhpcy5fY29udGVudFR5cGVcbn1cblhIUldyYXBwZXIucHJvdG90eXBlLnNldFJlcXVlc3RIZWFkZXIgPSBmdW5jdGlvbiAobmFtZSwgdmFsdWUpIHtcbiAgdmFyIHhociA9IHRoaXMuX3hoclxuICBpZiAoJ3NldFJlcXVlc3RIZWFkZXInIGluIHhocikge1xuICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKG5hbWUsIHZhbHVlKVxuICB9XG59XG5YSFJXcmFwcGVyLnByb3RvdHlwZS5nZXRBbGxSZXNwb25zZUhlYWRlcnMgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLl94aHIuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzICE9IHVuZGVmaW5lZFxuICAgID8gdGhpcy5feGhyLmdldEFsbFJlc3BvbnNlSGVhZGVycygpXG4gICAgOiAnJ1xufVxuWEhSV3JhcHBlci5wcm90b3R5cGUuc2VuZCA9IGZ1bmN0aW9uICgpIHtcbiAgLy8gbG9hZGluZyBpbmRpY2F0b3IgaW4gU2FmYXJpIDwgPyAoNiksIENocm9tZSA8IDE0LCBGaXJlZm94XG4gIGlmIChcbiAgICAhKCdvbnRpbWVvdXQnIGluIFhNTEh0dHBSZXF1ZXN0LnByb3RvdHlwZSkgJiZcbiAgICBkb2N1bWVudCAhPSB1bmRlZmluZWQgJiZcbiAgICBkb2N1bWVudC5yZWFkeVN0YXRlICE9IHVuZGVmaW5lZCAmJlxuICAgIGRvY3VtZW50LnJlYWR5U3RhdGUgIT09ICdjb21wbGV0ZSdcbiAgKSB7XG4gICAgdmFyIHRoYXQgPSB0aGlzXG4gICAgdGhhdC5fc2VuZFRpbWVvdXQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgIHRoYXQuX3NlbmRUaW1lb3V0ID0gMFxuICAgICAgdGhhdC5zZW5kKClcbiAgICB9LCA0KVxuICAgIHJldHVyblxuICB9XG5cbiAgdmFyIHhociA9IHRoaXMuX3hoclxuICAvLyB3aXRoQ3JlZGVudGlhbHMgc2hvdWxkIGJlIHNldCBhZnRlciBcIm9wZW5cIiBmb3IgU2FmYXJpIGFuZCBDaHJvbWUgKDwgMTkgPylcbiAgeGhyLndpdGhDcmVkZW50aWFscyA9IHRoaXMud2l0aENyZWRlbnRpYWxzXG4gIHhoci5yZXNwb25zZVR5cGUgPSB0aGlzLnJlc3BvbnNlVHlwZVxuICB0cnkge1xuICAgIC8vIHhoci5zZW5kKCk7IHRocm93cyBcIk5vdCBlbm91Z2ggYXJndW1lbnRzXCIgaW4gRmlyZWZveCAzLjBcbiAgICB4aHIuc2VuZCh1bmRlZmluZWQpXG4gIH0gY2F0Y2ggKGVycm9yMSkge1xuICAgIC8vIFNhZmFyaSA1LjEuNywgT3BlcmEgMTJcbiAgICB0aHJvdyBlcnJvcjFcbiAgfVxufVxuXG5mdW5jdGlvbiB0b0xvd2VyQ2FzZShuYW1lKSB7XG4gIHJldHVybiBuYW1lLnJlcGxhY2UoL1tBLVpdL2csIGZ1bmN0aW9uIChjKSB7XG4gICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoYy5jaGFyQ29kZUF0KDApICsgMHgyMClcbiAgfSlcbn1cblxuZnVuY3Rpb24gSGVhZGVyc1BvbHlmaWxsKGFsbCkge1xuICAvLyBHZXQgaGVhZGVyczogaW1wbGVtZW50ZWQgYWNjb3JkaW5nIHRvIG1vemlsbGEncyBleGFtcGxlIGNvZGU6IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9YTUxIdHRwUmVxdWVzdC9nZXRBbGxSZXNwb25zZUhlYWRlcnMjRXhhbXBsZVxuICB2YXIgbWFwID0gT2JqZWN0LmNyZWF0ZShudWxsKVxuICB2YXIgYXJyYXkgPSBhbGwuc3BsaXQoJ1xcclxcbicpXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyBpICs9IDEpIHtcbiAgICB2YXIgbGluZSA9IGFycmF5W2ldXG4gICAgdmFyIHBhcnRzID0gbGluZS5zcGxpdCgnOiAnKVxuICAgIHZhciBuYW1lID0gcGFydHMuc2hpZnQoKVxuICAgIHZhciB2YWx1ZSA9IHBhcnRzLmpvaW4oJzogJylcbiAgICBtYXBbdG9Mb3dlckNhc2UobmFtZSldID0gdmFsdWVcbiAgfVxuICB0aGlzLl9tYXAgPSBtYXBcbn1cbkhlYWRlcnNQb2x5ZmlsbC5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgcmV0dXJuIHRoaXMuX21hcFt0b0xvd2VyQ2FzZShuYW1lKV1cbn1cblxuZnVuY3Rpb24gWEhSVHJhbnNwb3J0KCkge31cblxuWEhSVHJhbnNwb3J0LnByb3RvdHlwZS5vcGVuID0gZnVuY3Rpb24gKFxuICB4aHIsXG4gIG9uU3RhcnRDYWxsYmFjayxcbiAgb25Qcm9ncmVzc0NhbGxiYWNrLFxuICBvbkZpbmlzaENhbGxiYWNrLFxuICB1cmwsXG4gIHdpdGhDcmVkZW50aWFscyxcbiAgaGVhZGVyc1xuKSB7XG4gIHhoci5vcGVuKCdHRVQnLCB1cmwpXG4gIHZhciBvZmZzZXQgPSAwXG4gIHhoci5vbnByb2dyZXNzID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciByZXNwb25zZVRleHQgPSB4aHIucmVzcG9uc2VUZXh0XG4gICAgdmFyIGNodW5rID0gcmVzcG9uc2VUZXh0LnNsaWNlKG9mZnNldClcbiAgICBvZmZzZXQgKz0gY2h1bmsubGVuZ3RoXG4gICAgb25Qcm9ncmVzc0NhbGxiYWNrKGNodW5rKVxuICB9XG4gIHhoci5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHhoci5yZWFkeVN0YXRlID09PSAyKSB7XG4gICAgICB2YXIgc3RhdHVzID0geGhyLnN0YXR1c1xuICAgICAgdmFyIHN0YXR1c1RleHQgPSB4aHIuc3RhdHVzVGV4dFxuICAgICAgdmFyIGNvbnRlbnRUeXBlID0geGhyLmdldFJlc3BvbnNlSGVhZGVyKCdDb250ZW50LVR5cGUnKVxuICAgICAgdmFyIGhlYWRlcnMgPSB4aHIuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKClcbiAgICAgIG9uU3RhcnRDYWxsYmFjayhcbiAgICAgICAgc3RhdHVzLFxuICAgICAgICBzdGF0dXNUZXh0LFxuICAgICAgICBjb250ZW50VHlwZSxcbiAgICAgICAgbmV3IEhlYWRlcnNQb2x5ZmlsbChoZWFkZXJzKSxcbiAgICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHhoci5hYm9ydCgpXG4gICAgICAgIH1cbiAgICAgIClcbiAgICB9IGVsc2UgaWYgKHhoci5yZWFkeVN0YXRlID09PSA0KSB7XG4gICAgICBvbkZpbmlzaENhbGxiYWNrKClcbiAgICB9XG4gIH1cbiAgeGhyLndpdGhDcmVkZW50aWFscyA9IHdpdGhDcmVkZW50aWFsc1xuICB4aHIucmVzcG9uc2VUeXBlID0gJ3RleHQnXG4gIGZvciAodmFyIG5hbWUgaW4gaGVhZGVycykge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaGVhZGVycywgbmFtZSkpIHtcbiAgICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKG5hbWUsIGhlYWRlcnNbbmFtZV0pXG4gICAgfVxuICB9XG4gIHhoci5zZW5kKClcbn1cblxuZnVuY3Rpb24gSGVhZGVyc1dyYXBwZXIoaGVhZGVycykge1xuICB0aGlzLl9oZWFkZXJzID0gaGVhZGVyc1xufVxuSGVhZGVyc1dyYXBwZXIucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gIHJldHVybiB0aGlzLl9oZWFkZXJzLmdldChuYW1lKVxufVxuXG5mdW5jdGlvbiBGZXRjaFRyYW5zcG9ydCgpIHt9XG5cbkZldGNoVHJhbnNwb3J0LnByb3RvdHlwZS5vcGVuID0gZnVuY3Rpb24gKFxuICB4aHIsXG4gIG9uU3RhcnRDYWxsYmFjayxcbiAgb25Qcm9ncmVzc0NhbGxiYWNrLFxuICBvbkZpbmlzaENhbGxiYWNrLFxuICB1cmwsXG4gIHdpdGhDcmVkZW50aWFscyxcbiAgaGVhZGVyc1xuKSB7XG4gIHZhciBjb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpXG4gIHZhciBzaWduYWwgPSBjb250cm9sbGVyLnNpZ25hbCAvLyBzZWUgIzEyMFxuICB2YXIgdGV4dERlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoKVxuICBmZXRjaCh1cmwsIHtcbiAgICBoZWFkZXJzOiBoZWFkZXJzLFxuICAgIGNyZWRlbnRpYWxzOiB3aXRoQ3JlZGVudGlhbHMgPyAnaW5jbHVkZScgOiAnc2FtZS1vcmlnaW4nLFxuICAgIHNpZ25hbDogc2lnbmFsLFxuICAgIGNhY2hlOiAnbm8tc3RvcmUnLFxuICB9KVxuICAgIC50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgdmFyIHJlYWRlciA9IHJlc3BvbnNlLmJvZHkuZ2V0UmVhZGVyKClcbiAgICAgIG9uU3RhcnRDYWxsYmFjayhcbiAgICAgICAgcmVzcG9uc2Uuc3RhdHVzLFxuICAgICAgICByZXNwb25zZS5zdGF0dXNUZXh0LFxuICAgICAgICByZXNwb25zZS5oZWFkZXJzLmdldCgnQ29udGVudC1UeXBlJyksXG4gICAgICAgIG5ldyBIZWFkZXJzV3JhcHBlcihyZXNwb25zZS5oZWFkZXJzKSxcbiAgICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGNvbnRyb2xsZXIuYWJvcnQoKVxuICAgICAgICAgIHJlYWRlci5jYW5jZWwoKVxuICAgICAgICB9XG4gICAgICApXG4gICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICB2YXIgcmVhZE5leHRDaHVuayA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZWFkZXJcbiAgICAgICAgICAgIC5yZWFkKClcbiAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgaWYgKHJlc3VsdC5kb25lKSB7XG4gICAgICAgICAgICAgICAgLy8gTm90ZTogYnl0ZXMgaW4gdGV4dERlY29kZXIgYXJlIGlnbm9yZWRcbiAgICAgICAgICAgICAgICByZXNvbHZlKHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB2YXIgY2h1bmsgPSB0ZXh0RGVjb2Rlci5kZWNvZGUocmVzdWx0LnZhbHVlLCB7IHN0cmVhbTogdHJ1ZSB9KVxuICAgICAgICAgICAgICAgIG9uUHJvZ3Jlc3NDYWxsYmFjayhjaHVuaylcbiAgICAgICAgICAgICAgICByZWFkTmV4dENodW5rKClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIFsnY2F0Y2gnXShmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgcmVqZWN0KGVycm9yKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgICByZWFkTmV4dENodW5rKClcbiAgICAgIH0pXG4gICAgfSlcbiAgICAudGhlbihcbiAgICAgIGZ1bmN0aW9uIChyZXN1bHQpIHtcbiAgICAgICAgb25GaW5pc2hDYWxsYmFjaygpXG4gICAgICAgIHJldHVybiByZXN1bHRcbiAgICAgIH0sXG4gICAgICBmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgb25GaW5pc2hDYWxsYmFjaygpXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlcnJvcilcbiAgICAgIH1cbiAgICApXG59XG5cbmZ1bmN0aW9uIEV2ZW50VGFyZ2V0KCkge1xuICB0aGlzLl9saXN0ZW5lcnMgPSBPYmplY3QuY3JlYXRlKG51bGwpXG59XG5cbmZ1bmN0aW9uIHRocm93RXJyb3IoZSkge1xuICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICB0aHJvdyBlXG4gIH0sIDApXG59XG5cbkV2ZW50VGFyZ2V0LnByb3RvdHlwZS5kaXNwYXRjaEV2ZW50ID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gIGV2ZW50LnRhcmdldCA9IHRoaXNcbiAgdmFyIHR5cGVMaXN0ZW5lcnMgPSB0aGlzLl9saXN0ZW5lcnNbZXZlbnQudHlwZV1cbiAgaWYgKHR5cGVMaXN0ZW5lcnMgIT0gdW5kZWZpbmVkKSB7XG4gICAgdmFyIGxlbmd0aCA9IHR5cGVMaXN0ZW5lcnMubGVuZ3RoXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkgKz0gMSkge1xuICAgICAgdmFyIGxpc3RlbmVyID0gdHlwZUxpc3RlbmVyc1tpXVxuICAgICAgdHJ5IHtcbiAgICAgICAgaWYgKHR5cGVvZiBsaXN0ZW5lci5oYW5kbGVFdmVudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIGxpc3RlbmVyLmhhbmRsZUV2ZW50KGV2ZW50KVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxpc3RlbmVyLmNhbGwodGhpcywgZXZlbnQpXG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhyb3dFcnJvcihlKVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuRXZlbnRUYXJnZXQucHJvdG90eXBlLmFkZEV2ZW50TGlzdGVuZXIgPSBmdW5jdGlvbiAodHlwZSwgbGlzdGVuZXIpIHtcbiAgdHlwZSA9IFN0cmluZyh0eXBlKVxuICB2YXIgbGlzdGVuZXJzID0gdGhpcy5fbGlzdGVuZXJzXG4gIHZhciB0eXBlTGlzdGVuZXJzID0gbGlzdGVuZXJzW3R5cGVdXG4gIGlmICh0eXBlTGlzdGVuZXJzID09IHVuZGVmaW5lZCkge1xuICAgIHR5cGVMaXN0ZW5lcnMgPSBbXVxuICAgIGxpc3RlbmVyc1t0eXBlXSA9IHR5cGVMaXN0ZW5lcnNcbiAgfVxuICB2YXIgZm91bmQgPSBmYWxzZVxuICBmb3IgKHZhciBpID0gMDsgaSA8IHR5cGVMaXN0ZW5lcnMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICBpZiAodHlwZUxpc3RlbmVyc1tpXSA9PT0gbGlzdGVuZXIpIHtcbiAgICAgIGZvdW5kID0gdHJ1ZVxuICAgIH1cbiAgfVxuICBpZiAoIWZvdW5kKSB7XG4gICAgdHlwZUxpc3RlbmVycy5wdXNoKGxpc3RlbmVyKVxuICB9XG59XG5FdmVudFRhcmdldC5wcm90b3R5cGUucmVtb3ZlRXZlbnRMaXN0ZW5lciA9IGZ1bmN0aW9uICh0eXBlLCBsaXN0ZW5lcikge1xuICB0eXBlID0gU3RyaW5nKHR5cGUpXG4gIHZhciBsaXN0ZW5lcnMgPSB0aGlzLl9saXN0ZW5lcnNcbiAgdmFyIHR5cGVMaXN0ZW5lcnMgPSBsaXN0ZW5lcnNbdHlwZV1cbiAgaWYgKHR5cGVMaXN0ZW5lcnMgIT0gdW5kZWZpbmVkKSB7XG4gICAgdmFyIGZpbHRlcmVkID0gW11cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHR5cGVMaXN0ZW5lcnMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgIGlmICh0eXBlTGlzdGVuZXJzW2ldICE9PSBsaXN0ZW5lcikge1xuICAgICAgICBmaWx0ZXJlZC5wdXNoKHR5cGVMaXN0ZW5lcnNbaV0pXG4gICAgICB9XG4gICAgfVxuICAgIGlmIChmaWx0ZXJlZC5sZW5ndGggPT09IDApIHtcbiAgICAgIGRlbGV0ZSBsaXN0ZW5lcnNbdHlwZV1cbiAgICB9IGVsc2Uge1xuICAgICAgbGlzdGVuZXJzW3R5cGVdID0gZmlsdGVyZWRcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gRXZlbnQodHlwZSkge1xuICB0aGlzLnR5cGUgPSB0eXBlXG4gIHRoaXMudGFyZ2V0ID0gdW5kZWZpbmVkXG59XG5cbmZ1bmN0aW9uIE1lc3NhZ2VFdmVudCh0eXBlLCBvcHRpb25zKSB7XG4gIEV2ZW50LmNhbGwodGhpcywgdHlwZSlcbiAgdGhpcy5kYXRhID0gb3B0aW9ucy5kYXRhXG4gIHRoaXMubGFzdEV2ZW50SWQgPSBvcHRpb25zLmxhc3RFdmVudElkXG59XG5cbk1lc3NhZ2VFdmVudC5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKEV2ZW50LnByb3RvdHlwZSlcblxuZnVuY3Rpb24gQ29ubmVjdGlvbkV2ZW50KHR5cGUsIG9wdGlvbnMpIHtcbiAgRXZlbnQuY2FsbCh0aGlzLCB0eXBlKVxuICB0aGlzLnN0YXR1cyA9IG9wdGlvbnMuc3RhdHVzXG4gIHRoaXMuc3RhdHVzVGV4dCA9IG9wdGlvbnMuc3RhdHVzVGV4dFxuICB0aGlzLmhlYWRlcnMgPSBvcHRpb25zLmhlYWRlcnNcbn1cblxuQ29ubmVjdGlvbkV2ZW50LnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoRXZlbnQucHJvdG90eXBlKVxuXG52YXIgV0FJVElORyA9IC0xXG52YXIgQ09OTkVDVElORyA9IDBcbnZhciBPUEVOID0gMVxudmFyIENMT1NFRCA9IDJcblxudmFyIEFGVEVSX0NSID0gLTFcbnZhciBGSUVMRF9TVEFSVCA9IDBcbnZhciBGSUVMRCA9IDFcbnZhciBWQUxVRV9TVEFSVCA9IDJcbnZhciBWQUxVRSA9IDNcblxudmFyIGNvbnRlbnRUeXBlUmVnRXhwID0gL150ZXh0XFwvZXZlbnRcXC1zdHJlYW07PyhcXHMqY2hhcnNldFxcPXV0ZlxcLTgpPyQvaVxuXG52YXIgTUlOSU1VTV9EVVJBVElPTiA9IDEwMDBcbnZhciBNQVhJTVVNX0RVUkFUSU9OID0gMTgwMDAwMDBcblxudmFyIHBhcnNlRHVyYXRpb24gPSBmdW5jdGlvbiAodmFsdWUsIGRlZikge1xuICB2YXIgbiA9IHBhcnNlSW50KHZhbHVlLCAxMClcbiAgaWYgKG4gIT09IG4pIHtcbiAgICBuID0gZGVmXG4gIH1cbiAgcmV0dXJuIGNsYW1wRHVyYXRpb24obilcbn1cbnZhciBjbGFtcER1cmF0aW9uID0gZnVuY3Rpb24gKG4pIHtcbiAgcmV0dXJuIE1hdGgubWluKE1hdGgubWF4KG4sIE1JTklNVU1fRFVSQVRJT04pLCBNQVhJTVVNX0RVUkFUSU9OKVxufVxuXG52YXIgZmlyZSA9IGZ1bmN0aW9uICh0aGF0LCBmLCBldmVudCkge1xuICB0cnkge1xuICAgIGlmICh0eXBlb2YgZiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgZi5jYWxsKHRoYXQsIGV2ZW50KVxuICAgIH1cbiAgfSBjYXRjaCAoZSkge1xuICAgIHRocm93RXJyb3IoZSlcbiAgfVxufVxuXG5mdW5jdGlvbiBFdmVudFNvdXJjZVBvbHlmaWxsKHVybCwgb3B0aW9ucykge1xuICBFdmVudFRhcmdldC5jYWxsKHRoaXMpXG5cbiAgdGhpcy5vbm9wZW4gPSB1bmRlZmluZWRcbiAgdGhpcy5vbm1lc3NhZ2UgPSB1bmRlZmluZWRcbiAgdGhpcy5vbmVycm9yID0gdW5kZWZpbmVkXG5cbiAgdGhpcy51cmwgPSB1bmRlZmluZWRcbiAgdGhpcy5yZWFkeVN0YXRlID0gdW5kZWZpbmVkXG4gIHRoaXMud2l0aENyZWRlbnRpYWxzID0gdW5kZWZpbmVkXG5cbiAgdGhpcy5fY2xvc2UgPSB1bmRlZmluZWRcblxuICBzdGFydCh0aGlzLCB1cmwsIG9wdGlvbnMpXG59XG5cbnZhciBpc0ZldGNoU3VwcG9ydGVkID1cbiAgZmV0Y2ggIT0gdW5kZWZpbmVkICYmIFJlc3BvbnNlICE9IHVuZGVmaW5lZCAmJiAnYm9keScgaW4gUmVzcG9uc2UucHJvdG90eXBlXG5cbmZ1bmN0aW9uIHN0YXJ0KGVzLCB1cmwsIG9wdGlvbnMpIHtcbiAgdXJsID0gU3RyaW5nKHVybClcbiAgdmFyIHdpdGhDcmVkZW50aWFscyA9IG9wdGlvbnMgIT0gdW5kZWZpbmVkICYmIEJvb2xlYW4ob3B0aW9ucy53aXRoQ3JlZGVudGlhbHMpXG5cbiAgdmFyIGluaXRpYWxSZXRyeSA9IGNsYW1wRHVyYXRpb24oMTAwMClcbiAgdmFyIGhlYXJ0YmVhdFRpbWVvdXQgPVxuICAgIG9wdGlvbnMgIT0gdW5kZWZpbmVkICYmIG9wdGlvbnMuaGVhcnRiZWF0VGltZW91dCAhPSB1bmRlZmluZWRcbiAgICAgID8gcGFyc2VEdXJhdGlvbihvcHRpb25zLmhlYXJ0YmVhdFRpbWVvdXQsIDQ1MDAwKVxuICAgICAgOiBjbGFtcER1cmF0aW9uKDQ1MDAwKVxuXG4gIHZhciBsYXN0RXZlbnRJZCA9ICcnXG4gIHZhciByZXRyeSA9IGluaXRpYWxSZXRyeVxuICB2YXIgd2FzQWN0aXZpdHkgPSBmYWxzZVxuICB2YXIgaGVhZGVycyA9XG4gICAgb3B0aW9ucyAhPSB1bmRlZmluZWQgJiYgb3B0aW9ucy5oZWFkZXJzICE9IHVuZGVmaW5lZFxuICAgICAgPyBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG9wdGlvbnMuaGVhZGVycykpXG4gICAgICA6IHVuZGVmaW5lZFxuICB2YXIgQ3VycmVudFRyYW5zcG9ydCA9XG4gICAgb3B0aW9ucyAhPSB1bmRlZmluZWQgJiYgb3B0aW9ucy5UcmFuc3BvcnQgIT0gdW5kZWZpbmVkXG4gICAgICA/IG9wdGlvbnMuVHJhbnNwb3J0XG4gICAgICA6IFhNTEh0dHBSZXF1ZXN0XG4gIHZhciB4aHIgPVxuICAgIGlzRmV0Y2hTdXBwb3J0ZWQgJiZcbiAgICAhKG9wdGlvbnMgIT0gdW5kZWZpbmVkICYmIG9wdGlvbnMuVHJhbnNwb3J0ICE9IHVuZGVmaW5lZClcbiAgICAgID8gdW5kZWZpbmVkXG4gICAgICA6IG5ldyBYSFJXcmFwcGVyKG5ldyBDdXJyZW50VHJhbnNwb3J0KCkpXG4gIHZhciB0cmFuc3BvcnQgPSB4aHIgPT0gdW5kZWZpbmVkID8gbmV3IEZldGNoVHJhbnNwb3J0KCkgOiBuZXcgWEhSVHJhbnNwb3J0KClcbiAgdmFyIGNhbmNlbEZ1bmN0aW9uID0gdW5kZWZpbmVkXG4gIHZhciB0aW1lb3V0ID0gMFxuICB2YXIgY3VycmVudFN0YXRlID0gV0FJVElOR1xuICB2YXIgZGF0YUJ1ZmZlciA9ICcnXG4gIHZhciBsYXN0RXZlbnRJZEJ1ZmZlciA9ICcnXG4gIHZhciBldmVudFR5cGVCdWZmZXIgPSAnJ1xuXG4gIHZhciB0ZXh0QnVmZmVyID0gJydcbiAgdmFyIHN0YXRlID0gRklFTERfU1RBUlRcbiAgdmFyIGZpZWxkU3RhcnQgPSAwXG4gIHZhciB2YWx1ZVN0YXJ0ID0gMFxuXG4gIHZhciBvblN0YXJ0ID0gZnVuY3Rpb24gKHN0YXR1cywgc3RhdHVzVGV4dCwgY29udGVudFR5cGUsIGhlYWRlcnMsIGNhbmNlbCkge1xuICAgIGlmIChjdXJyZW50U3RhdGUgPT09IENPTk5FQ1RJTkcpIHtcbiAgICAgIGNhbmNlbEZ1bmN0aW9uID0gY2FuY2VsXG4gICAgICBpZiAoXG4gICAgICAgIHN0YXR1cyA9PT0gMjAwICYmXG4gICAgICAgIGNvbnRlbnRUeXBlICE9IHVuZGVmaW5lZCAmJlxuICAgICAgICBjb250ZW50VHlwZVJlZ0V4cC50ZXN0KGNvbnRlbnRUeXBlKVxuICAgICAgKSB7XG4gICAgICAgIGN1cnJlbnRTdGF0ZSA9IE9QRU5cbiAgICAgICAgd2FzQWN0aXZpdHkgPSB0cnVlXG4gICAgICAgIHJldHJ5ID0gaW5pdGlhbFJldHJ5XG4gICAgICAgIGVzLnJlYWR5U3RhdGUgPSBPUEVOXG4gICAgICAgIHZhciBldmVudCA9IG5ldyBDb25uZWN0aW9uRXZlbnQoJ29wZW4nLCB7XG4gICAgICAgICAgc3RhdHVzOiBzdGF0dXMsXG4gICAgICAgICAgc3RhdHVzVGV4dDogc3RhdHVzVGV4dCxcbiAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzLFxuICAgICAgICB9KVxuICAgICAgICBlcy5kaXNwYXRjaEV2ZW50KGV2ZW50KVxuICAgICAgICBmaXJlKGVzLCBlcy5vbm9wZW4sIGV2ZW50KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIG1lc3NhZ2UgPSAnJ1xuICAgICAgICBpZiAoc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICBpZiAoc3RhdHVzVGV4dCkge1xuICAgICAgICAgICAgc3RhdHVzVGV4dCA9IHN0YXR1c1RleHQucmVwbGFjZSgvXFxzKy9nLCAnICcpXG4gICAgICAgICAgfVxuICAgICAgICAgIG1lc3NhZ2UgPVxuICAgICAgICAgICAgXCJFdmVudFNvdXJjZSdzIHJlc3BvbnNlIGhhcyBhIHN0YXR1cyBcIiArXG4gICAgICAgICAgICBzdGF0dXMgK1xuICAgICAgICAgICAgJyAnICtcbiAgICAgICAgICAgIHN0YXR1c1RleHQgK1xuICAgICAgICAgICAgJyB0aGF0IGlzIG5vdCAyMDAuIEFib3J0aW5nIHRoZSBjb25uZWN0aW9uLidcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBtZXNzYWdlID1cbiAgICAgICAgICAgIFwiRXZlbnRTb3VyY2UncyByZXNwb25zZSBoYXMgYSBDb250ZW50LVR5cGUgc3BlY2lmeWluZyBhbiB1bnN1cHBvcnRlZCB0eXBlOiBcIiArXG4gICAgICAgICAgICAoY29udGVudFR5cGUgPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgID8gJy0nXG4gICAgICAgICAgICAgIDogY29udGVudFR5cGUucmVwbGFjZSgvXFxzKy9nLCAnICcpKSArXG4gICAgICAgICAgICAnLiBBYm9ydGluZyB0aGUgY29ubmVjdGlvbi4nXG4gICAgICAgIH1cbiAgICAgICAgdGhyb3dFcnJvcihuZXcgRXJyb3IobWVzc2FnZSkpXG4gICAgICAgIGNsb3NlKClcbiAgICAgICAgdmFyIGV2ZW50ID0gbmV3IENvbm5lY3Rpb25FdmVudCgnZXJyb3InLCB7XG4gICAgICAgICAgc3RhdHVzOiBzdGF0dXMsXG4gICAgICAgICAgc3RhdHVzVGV4dDogc3RhdHVzVGV4dCxcbiAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzLFxuICAgICAgICB9KVxuICAgICAgICBlcy5kaXNwYXRjaEV2ZW50KGV2ZW50KVxuICAgICAgICBmaXJlKGVzLCBlcy5vbmVycm9yLCBldmVudClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB2YXIgb25Qcm9ncmVzcyA9IGZ1bmN0aW9uICh0ZXh0Q2h1bmspIHtcbiAgICBpZiAoY3VycmVudFN0YXRlID09PSBPUEVOKSB7XG4gICAgICB2YXIgbiA9IC0xXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRleHRDaHVuay5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgICB2YXIgYyA9IHRleHRDaHVuay5jaGFyQ29kZUF0KGkpXG4gICAgICAgIGlmIChjID09PSAnXFxuJy5jaGFyQ29kZUF0KDApIHx8IGMgPT09ICdcXHInLmNoYXJDb2RlQXQoMCkpIHtcbiAgICAgICAgICBuID0gaVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICB2YXIgY2h1bmsgPSAobiAhPT0gLTEgPyB0ZXh0QnVmZmVyIDogJycpICsgdGV4dENodW5rLnNsaWNlKDAsIG4gKyAxKVxuICAgICAgdGV4dEJ1ZmZlciA9IChuID09PSAtMSA/IHRleHRCdWZmZXIgOiAnJykgKyB0ZXh0Q2h1bmsuc2xpY2UobiArIDEpXG4gICAgICBpZiAoY2h1bmsgIT09ICcnKSB7XG4gICAgICAgIHdhc0FjdGl2aXR5ID0gdHJ1ZVxuICAgICAgfVxuICAgICAgZm9yICh2YXIgcG9zaXRpb24gPSAwOyBwb3NpdGlvbiA8IGNodW5rLmxlbmd0aDsgcG9zaXRpb24gKz0gMSkge1xuICAgICAgICB2YXIgYyA9IGNodW5rLmNoYXJDb2RlQXQocG9zaXRpb24pXG4gICAgICAgIGlmIChzdGF0ZSA9PT0gQUZURVJfQ1IgJiYgYyA9PT0gJ1xcbicuY2hhckNvZGVBdCgwKSkge1xuICAgICAgICAgIHN0YXRlID0gRklFTERfU1RBUlRcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoc3RhdGUgPT09IEFGVEVSX0NSKSB7XG4gICAgICAgICAgICBzdGF0ZSA9IEZJRUxEX1NUQVJUXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChjID09PSAnXFxyJy5jaGFyQ29kZUF0KDApIHx8IGMgPT09ICdcXG4nLmNoYXJDb2RlQXQoMCkpIHtcbiAgICAgICAgICAgIGlmIChzdGF0ZSAhPT0gRklFTERfU1RBUlQpIHtcbiAgICAgICAgICAgICAgaWYgKHN0YXRlID09PSBGSUVMRCkge1xuICAgICAgICAgICAgICAgIHZhbHVlU3RhcnQgPSBwb3NpdGlvbiArIDFcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB2YXIgZmllbGQgPSBjaHVuay5zbGljZShmaWVsZFN0YXJ0LCB2YWx1ZVN0YXJ0IC0gMSlcbiAgICAgICAgICAgICAgdmFyIHZhbHVlID0gY2h1bmsuc2xpY2UoXG4gICAgICAgICAgICAgICAgdmFsdWVTdGFydCArXG4gICAgICAgICAgICAgICAgICAodmFsdWVTdGFydCA8IHBvc2l0aW9uICYmXG4gICAgICAgICAgICAgICAgICBjaHVuay5jaGFyQ29kZUF0KHZhbHVlU3RhcnQpID09PSAnICcuY2hhckNvZGVBdCgwKVxuICAgICAgICAgICAgICAgICAgICA/IDFcbiAgICAgICAgICAgICAgICAgICAgOiAwKSxcbiAgICAgICAgICAgICAgICBwb3NpdGlvblxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIGlmIChmaWVsZCA9PT0gJ2RhdGEnKSB7XG4gICAgICAgICAgICAgICAgZGF0YUJ1ZmZlciArPSAnXFxuJ1xuICAgICAgICAgICAgICAgIGRhdGFCdWZmZXIgKz0gdmFsdWVcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChmaWVsZCA9PT0gJ2lkJykge1xuICAgICAgICAgICAgICAgIGxhc3RFdmVudElkQnVmZmVyID0gdmFsdWVcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChmaWVsZCA9PT0gJ2V2ZW50Jykge1xuICAgICAgICAgICAgICAgIGV2ZW50VHlwZUJ1ZmZlciA9IHZhbHVlXG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoZmllbGQgPT09ICdyZXRyeScpIHtcbiAgICAgICAgICAgICAgICBpbml0aWFsUmV0cnkgPSBwYXJzZUR1cmF0aW9uKHZhbHVlLCBpbml0aWFsUmV0cnkpXG4gICAgICAgICAgICAgICAgcmV0cnkgPSBpbml0aWFsUmV0cnlcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChmaWVsZCA9PT0gJ2hlYXJ0YmVhdFRpbWVvdXQnKSB7XG4gICAgICAgICAgICAgICAgaGVhcnRiZWF0VGltZW91dCA9IHBhcnNlRHVyYXRpb24odmFsdWUsIGhlYXJ0YmVhdFRpbWVvdXQpXG4gICAgICAgICAgICAgICAgaWYgKHRpbWVvdXQgIT09IDApIHtcbiAgICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KVxuICAgICAgICAgICAgICAgICAgdGltZW91dCA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBvblRpbWVvdXQoKVxuICAgICAgICAgICAgICAgICAgfSwgaGVhcnRiZWF0VGltZW91dClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzdGF0ZSA9PT0gRklFTERfU1RBUlQpIHtcbiAgICAgICAgICAgICAgaWYgKGRhdGFCdWZmZXIgIT09ICcnKSB7XG4gICAgICAgICAgICAgICAgbGFzdEV2ZW50SWQgPSBsYXN0RXZlbnRJZEJ1ZmZlclxuICAgICAgICAgICAgICAgIGlmIChldmVudFR5cGVCdWZmZXIgPT09ICcnKSB7XG4gICAgICAgICAgICAgICAgICBldmVudFR5cGVCdWZmZXIgPSAnbWVzc2FnZSdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdmFyIGV2ZW50ID0gbmV3IE1lc3NhZ2VFdmVudChldmVudFR5cGVCdWZmZXIsIHtcbiAgICAgICAgICAgICAgICAgIGRhdGE6IGRhdGFCdWZmZXIuc2xpY2UoMSksXG4gICAgICAgICAgICAgICAgICBsYXN0RXZlbnRJZDogbGFzdEV2ZW50SWRCdWZmZXIsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICBlcy5kaXNwYXRjaEV2ZW50KGV2ZW50KVxuICAgICAgICAgICAgICAgIGlmIChldmVudFR5cGVCdWZmZXIgPT09ICdtZXNzYWdlJykge1xuICAgICAgICAgICAgICAgICAgZmlyZShlcywgZXMub25tZXNzYWdlLCBldmVudClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRTdGF0ZSA9PT0gQ0xPU0VEKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgZGF0YUJ1ZmZlciA9ICcnXG4gICAgICAgICAgICAgIGV2ZW50VHlwZUJ1ZmZlciA9ICcnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdGF0ZSA9IGMgPT09ICdcXHInLmNoYXJDb2RlQXQoMCkgPyBBRlRFUl9DUiA6IEZJRUxEX1NUQVJUXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChzdGF0ZSA9PT0gRklFTERfU1RBUlQpIHtcbiAgICAgICAgICAgICAgZmllbGRTdGFydCA9IHBvc2l0aW9uXG4gICAgICAgICAgICAgIHN0YXRlID0gRklFTERcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzdGF0ZSA9PT0gRklFTEQpIHtcbiAgICAgICAgICAgICAgaWYgKGMgPT09ICc6Jy5jaGFyQ29kZUF0KDApKSB7XG4gICAgICAgICAgICAgICAgdmFsdWVTdGFydCA9IHBvc2l0aW9uICsgMVxuICAgICAgICAgICAgICAgIHN0YXRlID0gVkFMVUVfU1RBUlRcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChzdGF0ZSA9PT0gVkFMVUVfU1RBUlQpIHtcbiAgICAgICAgICAgICAgc3RhdGUgPSBWQUxVRVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHZhciBvbkZpbmlzaCA9IGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoY3VycmVudFN0YXRlID09PSBPUEVOIHx8IGN1cnJlbnRTdGF0ZSA9PT0gQ09OTkVDVElORykge1xuICAgICAgY3VycmVudFN0YXRlID0gV0FJVElOR1xuICAgICAgaWYgKHRpbWVvdXQgIT09IDApIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpXG4gICAgICAgIHRpbWVvdXQgPSAwXG4gICAgICB9XG4gICAgICB0aW1lb3V0ID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgIG9uVGltZW91dCgpXG4gICAgICB9LCByZXRyeSlcbiAgICAgIHJldHJ5ID0gY2xhbXBEdXJhdGlvbihNYXRoLm1pbihpbml0aWFsUmV0cnkgKiAxNiwgcmV0cnkgKiAyKSlcblxuICAgICAgZXMucmVhZHlTdGF0ZSA9IENPTk5FQ1RJTkdcbiAgICAgIHZhciBldmVudCA9IG5ldyBFdmVudCgnZXJyb3InKVxuICAgICAgZXMuZGlzcGF0Y2hFdmVudChldmVudClcbiAgICAgIGZpcmUoZXMsIGVzLm9uZXJyb3IsIGV2ZW50KVxuICAgIH1cbiAgfVxuXG4gIHZhciBjbG9zZSA9IGZ1bmN0aW9uICgpIHtcbiAgICBjdXJyZW50U3RhdGUgPSBDTE9TRURcbiAgICBpZiAoY2FuY2VsRnVuY3Rpb24gIT0gdW5kZWZpbmVkKSB7XG4gICAgICBjYW5jZWxGdW5jdGlvbigpXG4gICAgICBjYW5jZWxGdW5jdGlvbiA9IHVuZGVmaW5lZFxuICAgIH1cbiAgICBpZiAodGltZW91dCAhPT0gMCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpXG4gICAgICB0aW1lb3V0ID0gMFxuICAgIH1cbiAgICBlcy5yZWFkeVN0YXRlID0gQ0xPU0VEXG4gIH1cblxuICB2YXIgb25UaW1lb3V0ID0gZnVuY3Rpb24gKCkge1xuICAgIHRpbWVvdXQgPSAwXG5cbiAgICBpZiAoY3VycmVudFN0YXRlICE9PSBXQUlUSU5HKSB7XG4gICAgICBpZiAoIXdhc0FjdGl2aXR5ICYmIGNhbmNlbEZ1bmN0aW9uICE9IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvd0Vycm9yKFxuICAgICAgICAgIG5ldyBFcnJvcihcbiAgICAgICAgICAgICdObyBhY3Rpdml0eSB3aXRoaW4gJyArXG4gICAgICAgICAgICAgIGhlYXJ0YmVhdFRpbWVvdXQgK1xuICAgICAgICAgICAgICAnIG1pbGxpc2Vjb25kcy4gUmVjb25uZWN0aW5nLidcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgICAgY2FuY2VsRnVuY3Rpb24oKVxuICAgICAgICBjYW5jZWxGdW5jdGlvbiA9IHVuZGVmaW5lZFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgd2FzQWN0aXZpdHkgPSBmYWxzZVxuICAgICAgICB0aW1lb3V0ID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgb25UaW1lb3V0KClcbiAgICAgICAgfSwgaGVhcnRiZWF0VGltZW91dClcbiAgICAgIH1cbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHdhc0FjdGl2aXR5ID0gZmFsc2VcbiAgICB0aW1lb3V0ID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICBvblRpbWVvdXQoKVxuICAgIH0sIGhlYXJ0YmVhdFRpbWVvdXQpXG5cbiAgICBjdXJyZW50U3RhdGUgPSBDT05ORUNUSU5HXG4gICAgZGF0YUJ1ZmZlciA9ICcnXG4gICAgZXZlbnRUeXBlQnVmZmVyID0gJydcbiAgICBsYXN0RXZlbnRJZEJ1ZmZlciA9IGxhc3RFdmVudElkXG4gICAgdGV4dEJ1ZmZlciA9ICcnXG4gICAgZmllbGRTdGFydCA9IDBcbiAgICB2YWx1ZVN0YXJ0ID0gMFxuICAgIHN0YXRlID0gRklFTERfU1RBUlRcblxuICAgIC8vIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTQyODkxNlxuICAgIC8vIFJlcXVlc3QgaGVhZGVyIGZpZWxkIExhc3QtRXZlbnQtSUQgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctSGVhZGVycy5cbiAgICB2YXIgcmVxdWVzdFVSTCA9IHVybFxuICAgIGlmICh1cmwuc2xpY2UoMCwgNSkgIT09ICdkYXRhOicgJiYgdXJsLnNsaWNlKDAsIDUpICE9PSAnYmxvYjonKSB7XG4gICAgICBpZiAobGFzdEV2ZW50SWQgIT09ICcnKSB7XG4gICAgICAgIHJlcXVlc3RVUkwgKz1cbiAgICAgICAgICAodXJsLmluZGV4T2YoJz8nKSA9PT0gLTEgPyAnPycgOiAnJicpICtcbiAgICAgICAgICAnbGFzdEV2ZW50SWQ9JyArXG4gICAgICAgICAgZW5jb2RlVVJJQ29tcG9uZW50KGxhc3RFdmVudElkKVxuICAgICAgfVxuICAgIH1cbiAgICB2YXIgcmVxdWVzdEhlYWRlcnMgPSB7fVxuICAgIHJlcXVlc3RIZWFkZXJzWydBY2NlcHQnXSA9ICd0ZXh0L2V2ZW50LXN0cmVhbSdcbiAgICBpZiAoaGVhZGVycyAhPSB1bmRlZmluZWQpIHtcbiAgICAgIGZvciAodmFyIG5hbWUgaW4gaGVhZGVycykge1xuICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGhlYWRlcnMsIG5hbWUpKSB7XG4gICAgICAgICAgcmVxdWVzdEhlYWRlcnNbbmFtZV0gPSBoZWFkZXJzW25hbWVdXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIHRyYW5zcG9ydC5vcGVuKFxuICAgICAgICB4aHIsXG4gICAgICAgIG9uU3RhcnQsXG4gICAgICAgIG9uUHJvZ3Jlc3MsXG4gICAgICAgIG9uRmluaXNoLFxuICAgICAgICByZXF1ZXN0VVJMLFxuICAgICAgICB3aXRoQ3JlZGVudGlhbHMsXG4gICAgICAgIHJlcXVlc3RIZWFkZXJzXG4gICAgICApXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNsb3NlKClcbiAgICAgIHRocm93IGVycm9yXG4gICAgfVxuICB9XG5cbiAgZXMudXJsID0gdXJsXG4gIGVzLnJlYWR5U3RhdGUgPSBDT05ORUNUSU5HXG4gIGVzLndpdGhDcmVkZW50aWFscyA9IHdpdGhDcmVkZW50aWFsc1xuICBlcy5fY2xvc2UgPSBjbG9zZVxuXG4gIG9uVGltZW91dCgpXG59XG5cbkV2ZW50U291cmNlUG9seWZpbGwucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShFdmVudFRhcmdldC5wcm90b3R5cGUpXG5FdmVudFNvdXJjZVBvbHlmaWxsLnByb3RvdHlwZS5DT05ORUNUSU5HID0gQ09OTkVDVElOR1xuRXZlbnRTb3VyY2VQb2x5ZmlsbC5wcm90b3R5cGUuT1BFTiA9IE9QRU5cbkV2ZW50U291cmNlUG9seWZpbGwucHJvdG90eXBlLkNMT1NFRCA9IENMT1NFRFxuRXZlbnRTb3VyY2VQb2x5ZmlsbC5wcm90b3R5cGUuY2xvc2UgPSBmdW5jdGlvbiAoKSB7XG4gIHRoaXMuX2Nsb3NlKClcbn1cblxuRXZlbnRTb3VyY2VQb2x5ZmlsbC5DT05ORUNUSU5HID0gQ09OTkVDVElOR1xuRXZlbnRTb3VyY2VQb2x5ZmlsbC5PUEVOID0gT1BFTlxuRXZlbnRTb3VyY2VQb2x5ZmlsbC5DTE9TRUQgPSBDTE9TRURcbkV2ZW50U291cmNlUG9seWZpbGwucHJvdG90eXBlLndpdGhDcmVkZW50aWFscyA9IHVuZGVmaW5lZFxuXG5leHBvcnQgZGVmYXVsdCBFdmVudFNvdXJjZVBvbHlmaWxsXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/event-source-polyfill.js\n"); +eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/next/node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _unfetch = _interopRequireDefault(__webpack_require__(/*! next/dist/build/polyfills/unfetch */ \"./node_modules/next/dist/build/polyfills/unfetch.js\"));\n/* eslint-disable */\n// Improved version of https://github.com/Yaffle/EventSource/\n// Available under MIT License (MIT)\n// Only tries to support IE11 and nothing below\n\n\nvar document = window.document;\nvar Response = window.Response;\nvar TextDecoder = window.TextDecoder;\nvar TextEncoder = window.TextEncoder;\nvar AbortController = window.AbortController;\n\nif (AbortController == undefined) {\n AbortController = function AbortController() {\n this.signal = null;\n\n this.abort = function () {};\n };\n}\n\nfunction TextDecoderPolyfill() {\n this.bitsNeeded = 0;\n this.codePoint = 0;\n}\n\n_c = TextDecoderPolyfill;\n\nTextDecoderPolyfill.prototype.decode = function (octets) {\n function valid(codePoint, shift, octetsCount) {\n if (octetsCount === 1) {\n return codePoint >= 0x0080 >> shift && codePoint << shift <= 0x07ff;\n }\n\n if (octetsCount === 2) {\n return codePoint >= 0x0800 >> shift && codePoint << shift <= 0xd7ff || codePoint >= 0xe000 >> shift && codePoint << shift <= 0xffff;\n }\n\n if (octetsCount === 3) {\n return codePoint >= 0x010000 >> shift && codePoint << shift <= 0x10ffff;\n }\n\n throw new Error();\n }\n\n function octetsCount(bitsNeeded, codePoint) {\n if (bitsNeeded === 6 * 1) {\n return codePoint >> 6 > 15 ? 3 : codePoint > 31 ? 2 : 1;\n }\n\n if (bitsNeeded === 6 * 2) {\n return codePoint > 15 ? 3 : 2;\n }\n\n if (bitsNeeded === 6 * 3) {\n return 3;\n }\n\n throw new Error();\n }\n\n var REPLACER = 0xfffd;\n var string = '';\n var bitsNeeded = this.bitsNeeded;\n var codePoint = this.codePoint;\n\n for (var i = 0; i < octets.length; i += 1) {\n var octet = octets[i];\n\n if (bitsNeeded !== 0) {\n if (octet < 128 || octet > 191 || !valid(codePoint << 6 | octet & 63, bitsNeeded - 6, octetsCount(bitsNeeded, codePoint))) {\n bitsNeeded = 0;\n codePoint = REPLACER;\n string += String.fromCharCode(codePoint);\n }\n }\n\n if (bitsNeeded === 0) {\n if (octet >= 0 && octet <= 127) {\n bitsNeeded = 0;\n codePoint = octet;\n } else if (octet >= 192 && octet <= 223) {\n bitsNeeded = 6 * 1;\n codePoint = octet & 31;\n } else if (octet >= 224 && octet <= 239) {\n bitsNeeded = 6 * 2;\n codePoint = octet & 15;\n } else if (octet >= 240 && octet <= 247) {\n bitsNeeded = 6 * 3;\n codePoint = octet & 7;\n } else {\n bitsNeeded = 0;\n codePoint = REPLACER;\n }\n\n if (bitsNeeded !== 0 && !valid(codePoint, bitsNeeded, octetsCount(bitsNeeded, codePoint))) {\n bitsNeeded = 0;\n codePoint = REPLACER;\n }\n } else {\n bitsNeeded -= 6;\n codePoint = codePoint << 6 | octet & 63;\n }\n\n if (bitsNeeded === 0) {\n if (codePoint <= 0xffff) {\n string += String.fromCharCode(codePoint);\n } else {\n string += String.fromCharCode(0xd800 + (codePoint - 0xffff - 1 >> 10));\n string += String.fromCharCode(0xdc00 + (codePoint - 0xffff - 1 & 0x3ff));\n }\n }\n }\n\n this.bitsNeeded = bitsNeeded;\n this.codePoint = codePoint;\n return string;\n}; // Firefox < 38 throws an error with stream option\n\n\nvar supportsStreamOption = function supportsStreamOption() {\n try {\n return new TextDecoder().decode(new TextEncoder().encode('test'), {\n stream: true\n }) === 'test';\n } catch (error) {\n console.log(error);\n }\n\n return false;\n}; // IE, Edge\n\n\nif (TextDecoder == undefined || TextEncoder == undefined || !supportsStreamOption()) {\n TextDecoder = TextDecoderPolyfill;\n}\n\nvar k = function k() {};\n\nfunction XHRWrapper(xhr) {\n this.withCredentials = false;\n this.responseType = '';\n this.readyState = 0;\n this.status = 0;\n this.statusText = '';\n this.responseText = '';\n this.onprogress = k;\n this.onreadystatechange = k;\n this._contentType = '';\n this._xhr = xhr;\n this._sendTimeout = 0;\n this._abort = k;\n}\n\n_c2 = XHRWrapper;\n\nXHRWrapper.prototype.open = function (method, url) {\n this._abort(true);\n\n var that = this;\n var xhr = this._xhr;\n var state = 1;\n var timeout = 0;\n\n this._abort = function (silent) {\n if (that._sendTimeout !== 0) {\n clearTimeout(that._sendTimeout);\n that._sendTimeout = 0;\n }\n\n if (state === 1 || state === 2 || state === 3) {\n state = 4;\n xhr.onload = k;\n xhr.onerror = k;\n xhr.onabort = k;\n xhr.onprogress = k;\n xhr.onreadystatechange = k; // IE 8 - 9: XDomainRequest#abort() does not fire any event\n // Opera < 10: XMLHttpRequest#abort() does not fire any event\n\n xhr.abort();\n\n if (timeout !== 0) {\n clearTimeout(timeout);\n timeout = 0;\n }\n\n if (!silent) {\n that.readyState = 4;\n that.onreadystatechange();\n }\n }\n\n state = 0;\n };\n\n var onStart = function onStart() {\n if (state === 1) {\n // state = 2;\n var status = 0;\n var statusText = '';\n var contentType = undefined;\n\n if (!('contentType' in xhr)) {\n try {\n status = xhr.status;\n statusText = xhr.statusText;\n contentType = xhr.getResponseHeader('Content-Type');\n } catch (error) {\n // IE < 10 throws exception for `xhr.status` when xhr.readyState === 2 || xhr.readyState === 3\n // Opera < 11 throws exception for `xhr.status` when xhr.readyState === 2\n // https://bugs.webkit.org/show_bug.cgi?id=29121\n status = 0;\n statusText = '';\n contentType = undefined; // Firefox < 14, Chrome ?, Safari ?\n // https://bugs.webkit.org/show_bug.cgi?id=29658\n // https://bugs.webkit.org/show_bug.cgi?id=77854\n }\n } else {\n status = 200;\n statusText = 'OK';\n contentType = xhr.contentType;\n }\n\n if (status !== 0) {\n state = 2;\n that.readyState = 2;\n that.status = status;\n that.statusText = statusText;\n that._contentType = contentType;\n that.onreadystatechange();\n }\n }\n };\n\n var onProgress = function onProgress() {\n onStart();\n\n if (state === 2 || state === 3) {\n state = 3;\n var responseText = '';\n\n try {\n responseText = xhr.responseText;\n } catch (error) {// IE 8 - 9 with XMLHttpRequest\n }\n\n that.readyState = 3;\n that.responseText = responseText;\n that.onprogress();\n }\n };\n\n var onFinish = function onFinish() {\n // Firefox 52 fires \"readystatechange\" (xhr.readyState === 4) without final \"readystatechange\" (xhr.readyState === 3)\n // IE 8 fires \"onload\" without \"onprogress\"\n onProgress();\n\n if (state === 1 || state === 2 || state === 3) {\n state = 4;\n\n if (timeout !== 0) {\n clearTimeout(timeout);\n timeout = 0;\n }\n\n that.readyState = 4;\n that.onreadystatechange();\n }\n };\n\n var onReadyStateChange = function onReadyStateChange() {\n if (xhr != undefined) {\n // Opera 12\n if (xhr.readyState === 4) {\n onFinish();\n } else if (xhr.readyState === 3) {\n onProgress();\n } else if (xhr.readyState === 2) {\n onStart();\n }\n }\n };\n\n var onTimeout = function onTimeout() {\n timeout = setTimeout(function () {\n onTimeout();\n }, 500);\n\n if (xhr.readyState === 3) {\n onProgress();\n }\n }; // XDomainRequest#abort removes onprogress, onerror, onload\n\n\n xhr.onload = onFinish;\n xhr.onerror = onFinish; // improper fix to match Firefox behavior, but it is better than just ignore abort\n // see https://bugzilla.mozilla.org/show_bug.cgi?id=768596\n // https://bugzilla.mozilla.org/show_bug.cgi?id=880200\n // https://code.google.com/p/chromium/issues/detail?id=153570\n // IE 8 fires \"onload\" without \"onprogress\n\n xhr.onabort = onFinish; // https://bugzilla.mozilla.org/show_bug.cgi?id=736723\n\n if (!('sendAsBinary' in XMLHttpRequest.prototype) && !('mozAnon' in XMLHttpRequest.prototype)) {\n xhr.onprogress = onProgress;\n } // IE 8 - 9 (XMLHTTPRequest)\n // Opera < 12\n // Firefox < 3.5\n // Firefox 3.5 - 3.6 - ? < 9.0\n // onprogress is not fired sometimes or delayed\n // see also #64\n\n\n xhr.onreadystatechange = onReadyStateChange;\n\n if ('contentType' in xhr) {\n url += (url.indexOf('?') === -1 ? '?' : '&') + 'padding=true';\n }\n\n xhr.open(method, url, true);\n\n if ('readyState' in xhr) {\n // workaround for Opera 12 issue with \"progress\" events\n // #91\n timeout = setTimeout(function () {\n onTimeout();\n }, 0);\n }\n};\n\nXHRWrapper.prototype.abort = function () {\n this._abort(false);\n};\n\nXHRWrapper.prototype.getResponseHeader = function (name) {\n return this._contentType;\n};\n\nXHRWrapper.prototype.setRequestHeader = function (name, value) {\n var xhr = this._xhr;\n\n if ('setRequestHeader' in xhr) {\n xhr.setRequestHeader(name, value);\n }\n};\n\nXHRWrapper.prototype.getAllResponseHeaders = function () {\n return this._xhr.getAllResponseHeaders != undefined ? this._xhr.getAllResponseHeaders() : '';\n};\n\nXHRWrapper.prototype.send = function () {\n // loading indicator in Safari < ? (6), Chrome < 14, Firefox\n if (!('ontimeout' in XMLHttpRequest.prototype) && document != undefined && document.readyState != undefined && document.readyState !== 'complete') {\n var that = this;\n that._sendTimeout = setTimeout(function () {\n that._sendTimeout = 0;\n that.send();\n }, 4);\n return;\n }\n\n var xhr = this._xhr; // withCredentials should be set after \"open\" for Safari and Chrome (< 19 ?)\n\n xhr.withCredentials = this.withCredentials;\n xhr.responseType = this.responseType;\n\n try {\n // xhr.send(); throws \"Not enough arguments\" in Firefox 3.0\n xhr.send(undefined);\n } catch (error1) {\n // Safari 5.1.7, Opera 12\n throw error1;\n }\n};\n\nfunction toLowerCase(name) {\n return name.replace(/[A-Z]/g, function (c) {\n return String.fromCharCode(c.charCodeAt(0) + 0x20);\n });\n}\n\nfunction HeadersPolyfill(all) {\n // Get headers: implemented according to mozilla's example code: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/getAllResponseHeaders#Example\n var map = Object.create(null);\n var array = all.split('\\r\\n');\n\n for (var i = 0; i < array.length; i += 1) {\n var line = array[i];\n var parts = line.split(': ');\n var name = parts.shift();\n var value = parts.join(': ');\n map[toLowerCase(name)] = value;\n }\n\n this._map = map;\n}\n\n_c3 = HeadersPolyfill;\n\nHeadersPolyfill.prototype.get = function (name) {\n return this._map[toLowerCase(name)];\n};\n\nfunction XHRTransport() {}\n\n_c4 = XHRTransport;\n\nXHRTransport.prototype.open = function (xhr, onStartCallback, onProgressCallback, onFinishCallback, url, withCredentials, headers) {\n xhr.open('GET', url);\n var offset = 0;\n\n xhr.onprogress = function () {\n var responseText = xhr.responseText;\n var chunk = responseText.slice(offset);\n offset += chunk.length;\n onProgressCallback(chunk);\n };\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 2) {\n var status = xhr.status;\n var statusText = xhr.statusText;\n var contentType = xhr.getResponseHeader('Content-Type');\n var headers = xhr.getAllResponseHeaders();\n onStartCallback(status, statusText, contentType, new HeadersPolyfill(headers), function () {\n xhr.abort();\n });\n } else if (xhr.readyState === 4) {\n onFinishCallback();\n }\n };\n\n xhr.withCredentials = withCredentials;\n xhr.responseType = 'text';\n\n for (var name in headers) {\n if (Object.prototype.hasOwnProperty.call(headers, name)) {\n xhr.setRequestHeader(name, headers[name]);\n }\n }\n\n xhr.send();\n};\n\nfunction HeadersWrapper(headers) {\n this._headers = headers;\n}\n\n_c5 = HeadersWrapper;\n\nHeadersWrapper.prototype.get = function (name) {\n return this._headers.get(name);\n};\n\nfunction FetchTransport() {}\n\n_c6 = FetchTransport;\n\nFetchTransport.prototype.open = function (xhr, onStartCallback, onProgressCallback, onFinishCallback, url, withCredentials, headers) {\n var controller = new AbortController();\n var signal = controller.signal; // see #120\n\n var textDecoder = new TextDecoder();\n (0, _unfetch[\"default\"])(url, {\n headers: headers,\n credentials: withCredentials ? 'include' : 'same-origin',\n signal: signal,\n cache: 'no-store'\n }).then(function (response) {\n var reader = response.body.getReader();\n onStartCallback(response.status, response.statusText, response.headers.get('Content-Type'), new HeadersWrapper(response.headers), function () {\n controller.abort();\n reader.cancel();\n });\n return new Promise(function (resolve, reject) {\n var readNextChunk = function readNextChunk() {\n reader.read().then(function (result) {\n if (result.done) {\n // Note: bytes in textDecoder are ignored\n resolve(undefined);\n } else {\n var chunk = textDecoder.decode(result.value, {\n stream: true\n });\n onProgressCallback(chunk);\n readNextChunk();\n }\n })['catch'](function (error) {\n reject(error);\n });\n };\n\n readNextChunk();\n });\n }).then(function (result) {\n onFinishCallback();\n return result;\n }, function (error) {\n onFinishCallback();\n return Promise.reject(error);\n });\n};\n\nfunction EventTarget() {\n this._listeners = Object.create(null);\n}\n\n_c7 = EventTarget;\n\nfunction throwError(e) {\n setTimeout(function () {\n throw e;\n }, 0);\n}\n\nEventTarget.prototype.dispatchEvent = function (event) {\n event.target = this;\n var typeListeners = this._listeners[event.type];\n\n if (typeListeners != undefined) {\n var length = typeListeners.length;\n\n for (var i = 0; i < length; i += 1) {\n var listener = typeListeners[i];\n\n try {\n if (typeof listener.handleEvent === 'function') {\n listener.handleEvent(event);\n } else {\n listener.call(this, event);\n }\n } catch (e) {\n throwError(e);\n }\n }\n }\n};\n\nEventTarget.prototype.addEventListener = function (type, listener) {\n type = String(type);\n var listeners = this._listeners;\n var typeListeners = listeners[type];\n\n if (typeListeners == undefined) {\n typeListeners = [];\n listeners[type] = typeListeners;\n }\n\n var found = false;\n\n for (var i = 0; i < typeListeners.length; i += 1) {\n if (typeListeners[i] === listener) {\n found = true;\n }\n }\n\n if (!found) {\n typeListeners.push(listener);\n }\n};\n\nEventTarget.prototype.removeEventListener = function (type, listener) {\n type = String(type);\n var listeners = this._listeners;\n var typeListeners = listeners[type];\n\n if (typeListeners != undefined) {\n var filtered = [];\n\n for (var i = 0; i < typeListeners.length; i += 1) {\n if (typeListeners[i] !== listener) {\n filtered.push(typeListeners[i]);\n }\n }\n\n if (filtered.length === 0) {\n delete listeners[type];\n } else {\n listeners[type] = filtered;\n }\n }\n};\n\nfunction Event(type) {\n this.type = type;\n this.target = undefined;\n}\n\n_c8 = Event;\n\nfunction MessageEvent(type, options) {\n Event.call(this, type);\n this.data = options.data;\n this.lastEventId = options.lastEventId;\n}\n\n_c9 = MessageEvent;\nMessageEvent.prototype = Object.create(Event.prototype);\n\nfunction ConnectionEvent(type, options) {\n Event.call(this, type);\n this.status = options.status;\n this.statusText = options.statusText;\n this.headers = options.headers;\n}\n\n_c10 = ConnectionEvent;\nConnectionEvent.prototype = Object.create(Event.prototype);\nvar WAITING = -1;\nvar CONNECTING = 0;\nvar OPEN = 1;\nvar CLOSED = 2;\nvar AFTER_CR = -1;\nvar FIELD_START = 0;\nvar FIELD = 1;\nvar VALUE_START = 2;\nvar VALUE = 3;\nvar contentTypeRegExp = /^text\\/event\\-stream;?(\\s*charset\\=utf\\-8)?$/i;\nvar MINIMUM_DURATION = 1000;\nvar MAXIMUM_DURATION = 18000000;\n\nvar parseDuration = function parseDuration(value, def) {\n var n = parseInt(value, 10);\n\n if (n !== n) {\n n = def;\n }\n\n return clampDuration(n);\n};\n\nvar clampDuration = function clampDuration(n) {\n return Math.min(Math.max(n, MINIMUM_DURATION), MAXIMUM_DURATION);\n};\n\nvar fire = function fire(that, f, event) {\n try {\n if (typeof f === 'function') {\n f.call(that, event);\n }\n } catch (e) {\n throwError(e);\n }\n};\n\nfunction EventSourcePolyfill(url, options) {\n EventTarget.call(this);\n this.onopen = undefined;\n this.onmessage = undefined;\n this.onerror = undefined;\n this.url = undefined;\n this.readyState = undefined;\n this.withCredentials = undefined;\n this._close = undefined;\n start(this, url, options);\n}\n\n_c11 = EventSourcePolyfill;\nvar isFetchSupported = _unfetch[\"default\"] != undefined && Response != undefined && 'body' in Response.prototype;\n\nfunction start(es, url, options) {\n url = String(url);\n var withCredentials = options != undefined && Boolean(options.withCredentials);\n var initialRetry = clampDuration(1000);\n var heartbeatTimeout = options != undefined && options.heartbeatTimeout != undefined ? parseDuration(options.heartbeatTimeout, 45000) : clampDuration(45000);\n var lastEventId = '';\n var retry = initialRetry;\n var wasActivity = false;\n var headers = options != undefined && options.headers != undefined ? JSON.parse(JSON.stringify(options.headers)) : undefined;\n var CurrentTransport = options != undefined && options.Transport != undefined ? options.Transport : XMLHttpRequest;\n var xhr = isFetchSupported && !(options != undefined && options.Transport != undefined) ? undefined : new XHRWrapper(new CurrentTransport());\n var transport = xhr == undefined ? new FetchTransport() : new XHRTransport();\n var cancelFunction = undefined;\n var timeout = 0;\n var currentState = WAITING;\n var dataBuffer = '';\n var lastEventIdBuffer = '';\n var eventTypeBuffer = '';\n var textBuffer = '';\n var state = FIELD_START;\n var fieldStart = 0;\n var valueStart = 0;\n\n var onStart = function onStart(status, statusText, contentType, headers, cancel) {\n if (currentState === CONNECTING) {\n cancelFunction = cancel;\n\n if (status === 200 && contentType != undefined && contentTypeRegExp.test(contentType)) {\n currentState = OPEN;\n wasActivity = true;\n retry = initialRetry;\n es.readyState = OPEN;\n var event = new ConnectionEvent('open', {\n status: status,\n statusText: statusText,\n headers: headers\n });\n es.dispatchEvent(event);\n fire(es, es.onopen, event);\n } else {\n var message = '';\n\n if (status !== 200) {\n if (statusText) {\n statusText = statusText.replace(/\\s+/g, ' ');\n }\n\n message = \"EventSource's response has a status \" + status + ' ' + statusText + ' that is not 200. Aborting the connection.';\n } else {\n message = \"EventSource's response has a Content-Type specifying an unsupported type: \" + (contentType == undefined ? '-' : contentType.replace(/\\s+/g, ' ')) + '. Aborting the connection.';\n }\n\n throwError(new Error(message));\n close();\n var event = new ConnectionEvent('error', {\n status: status,\n statusText: statusText,\n headers: headers\n });\n es.dispatchEvent(event);\n fire(es, es.onerror, event);\n }\n }\n };\n\n var onProgress = function onProgress(textChunk) {\n if (currentState === OPEN) {\n var n = -1;\n\n for (var i = 0; i < textChunk.length; i += 1) {\n var c = textChunk.charCodeAt(i);\n\n if (c === '\\n'.charCodeAt(0) || c === '\\r'.charCodeAt(0)) {\n n = i;\n }\n }\n\n var chunk = (n !== -1 ? textBuffer : '') + textChunk.slice(0, n + 1);\n textBuffer = (n === -1 ? textBuffer : '') + textChunk.slice(n + 1);\n\n if (chunk !== '') {\n wasActivity = true;\n }\n\n for (var position = 0; position < chunk.length; position += 1) {\n var c = chunk.charCodeAt(position);\n\n if (state === AFTER_CR && c === '\\n'.charCodeAt(0)) {\n state = FIELD_START;\n } else {\n if (state === AFTER_CR) {\n state = FIELD_START;\n }\n\n if (c === '\\r'.charCodeAt(0) || c === '\\n'.charCodeAt(0)) {\n if (state !== FIELD_START) {\n if (state === FIELD) {\n valueStart = position + 1;\n }\n\n var field = chunk.slice(fieldStart, valueStart - 1);\n var value = chunk.slice(valueStart + (valueStart < position && chunk.charCodeAt(valueStart) === ' '.charCodeAt(0) ? 1 : 0), position);\n\n if (field === 'data') {\n dataBuffer += '\\n';\n dataBuffer += value;\n } else if (field === 'id') {\n lastEventIdBuffer = value;\n } else if (field === 'event') {\n eventTypeBuffer = value;\n } else if (field === 'retry') {\n initialRetry = parseDuration(value, initialRetry);\n retry = initialRetry;\n } else if (field === 'heartbeatTimeout') {\n heartbeatTimeout = parseDuration(value, heartbeatTimeout);\n\n if (timeout !== 0) {\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n onTimeout();\n }, heartbeatTimeout);\n }\n }\n }\n\n if (state === FIELD_START) {\n if (dataBuffer !== '') {\n lastEventId = lastEventIdBuffer;\n\n if (eventTypeBuffer === '') {\n eventTypeBuffer = 'message';\n }\n\n var event = new MessageEvent(eventTypeBuffer, {\n data: dataBuffer.slice(1),\n lastEventId: lastEventIdBuffer\n });\n es.dispatchEvent(event);\n\n if (eventTypeBuffer === 'message') {\n fire(es, es.onmessage, event);\n }\n\n if (currentState === CLOSED) {\n return;\n }\n }\n\n dataBuffer = '';\n eventTypeBuffer = '';\n }\n\n state = c === '\\r'.charCodeAt(0) ? AFTER_CR : FIELD_START;\n } else {\n if (state === FIELD_START) {\n fieldStart = position;\n state = FIELD;\n }\n\n if (state === FIELD) {\n if (c === ':'.charCodeAt(0)) {\n valueStart = position + 1;\n state = VALUE_START;\n }\n } else if (state === VALUE_START) {\n state = VALUE;\n }\n }\n }\n }\n }\n };\n\n var onFinish = function onFinish() {\n if (currentState === OPEN || currentState === CONNECTING) {\n currentState = WAITING;\n\n if (timeout !== 0) {\n clearTimeout(timeout);\n timeout = 0;\n }\n\n timeout = setTimeout(function () {\n onTimeout();\n }, retry);\n retry = clampDuration(Math.min(initialRetry * 16, retry * 2));\n es.readyState = CONNECTING;\n var event = new Event('error');\n es.dispatchEvent(event);\n fire(es, es.onerror, event);\n }\n };\n\n var close = function close() {\n currentState = CLOSED;\n\n if (cancelFunction != undefined) {\n cancelFunction();\n cancelFunction = undefined;\n }\n\n if (timeout !== 0) {\n clearTimeout(timeout);\n timeout = 0;\n }\n\n es.readyState = CLOSED;\n };\n\n var onTimeout = function onTimeout() {\n timeout = 0;\n\n if (currentState !== WAITING) {\n if (!wasActivity && cancelFunction != undefined) {\n throwError(new Error('No activity within ' + heartbeatTimeout + ' milliseconds. Reconnecting.'));\n cancelFunction();\n cancelFunction = undefined;\n } else {\n wasActivity = false;\n timeout = setTimeout(function () {\n onTimeout();\n }, heartbeatTimeout);\n }\n\n return;\n }\n\n wasActivity = false;\n timeout = setTimeout(function () {\n onTimeout();\n }, heartbeatTimeout);\n currentState = CONNECTING;\n dataBuffer = '';\n eventTypeBuffer = '';\n lastEventIdBuffer = lastEventId;\n textBuffer = '';\n fieldStart = 0;\n valueStart = 0;\n state = FIELD_START; // https://bugzilla.mozilla.org/show_bug.cgi?id=428916\n // Request header field Last-Event-ID is not allowed by Access-Control-Allow-Headers.\n\n var requestURL = url;\n\n if (url.slice(0, 5) !== 'data:' && url.slice(0, 5) !== 'blob:') {\n if (lastEventId !== '') {\n requestURL += (url.indexOf('?') === -1 ? '?' : '&') + 'lastEventId=' + encodeURIComponent(lastEventId);\n }\n }\n\n var requestHeaders = {};\n requestHeaders['Accept'] = 'text/event-stream';\n\n if (headers != undefined) {\n for (var name in headers) {\n if (Object.prototype.hasOwnProperty.call(headers, name)) {\n requestHeaders[name] = headers[name];\n }\n }\n }\n\n try {\n transport.open(xhr, onStart, onProgress, onFinish, requestURL, withCredentials, requestHeaders);\n } catch (error) {\n close();\n throw error;\n }\n };\n\n es.url = url;\n es.readyState = CONNECTING;\n es.withCredentials = withCredentials;\n es._close = close;\n onTimeout();\n}\n\nEventSourcePolyfill.prototype = Object.create(EventTarget.prototype);\nEventSourcePolyfill.prototype.CONNECTING = CONNECTING;\nEventSourcePolyfill.prototype.OPEN = OPEN;\nEventSourcePolyfill.prototype.CLOSED = CLOSED;\n\nEventSourcePolyfill.prototype.close = function () {\n this._close();\n};\n\nEventSourcePolyfill.CONNECTING = CONNECTING;\nEventSourcePolyfill.OPEN = OPEN;\nEventSourcePolyfill.CLOSED = CLOSED;\nEventSourcePolyfill.prototype.withCredentials = undefined;\nvar _default = EventSourcePolyfill;\nexports[\"default\"] = _default;\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11;\n\n$RefreshReg$(_c, \"TextDecoderPolyfill\");\n$RefreshReg$(_c2, \"XHRWrapper\");\n$RefreshReg$(_c3, \"HeadersPolyfill\");\n$RefreshReg$(_c4, \"XHRTransport\");\n$RefreshReg$(_c5, \"HeadersWrapper\");\n$RefreshReg$(_c6, \"FetchTransport\");\n$RefreshReg$(_c7, \"EventTarget\");\n$RefreshReg$(_c8, \"Event\");\n$RefreshReg$(_c9, \"MessageEvent\");\n$RefreshReg$(_c10, \"ConnectionEvent\");\n$RefreshReg$(_c11, \"EventSourcePolyfill\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.i);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uLy4uL2NsaWVudC9kZXYvZXZlbnQtc291cmNlLXBvbHlmaWxsLmpzPzYzZDQiXSwibmFtZXMiOlsiZG9jdW1lbnQiLCJ3aW5kb3ciLCJSZXNwb25zZSIsIlRleHREZWNvZGVyIiwiVGV4dEVuY29kZXIiLCJBYm9ydENvbnRyb2xsZXIiLCJUZXh0RGVjb2RlclBvbHlmaWxsIiwib2N0ZXRzQ291bnQiLCJjb2RlUG9pbnQiLCJiaXRzTmVlZGVkIiwiUkVQTEFDRVIiLCJzdHJpbmciLCJpIiwib2N0ZXRzIiwib2N0ZXQiLCJ2YWxpZCIsIlN0cmluZyIsInN1cHBvcnRzU3RyZWFtT3B0aW9uIiwic3RyZWFtIiwiY29uc29sZSIsImsiLCJ0aGF0IiwieGhyIiwic3RhdGUiLCJ0aW1lb3V0IiwiY2xlYXJUaW1lb3V0Iiwib25TdGFydCIsInN0YXR1cyIsInN0YXR1c1RleHQiLCJjb250ZW50VHlwZSIsIm9uUHJvZ3Jlc3MiLCJyZXNwb25zZVRleHQiLCJvbkZpbmlzaCIsIm9uUmVhZHlTdGF0ZUNoYW5nZSIsIm9uVGltZW91dCIsInNldFRpbWVvdXQiLCJYTUxIdHRwUmVxdWVzdCIsInVybCIsIlhIUldyYXBwZXIiLCJuYW1lIiwiYyIsIm1hcCIsIk9iamVjdCIsImFycmF5IiwiYWxsIiwibGluZSIsInBhcnRzIiwidmFsdWUiLCJ0b0xvd2VyQ2FzZSIsIkhlYWRlcnNQb2x5ZmlsbCIsIlhIUlRyYW5zcG9ydCIsIm9mZnNldCIsImNodW5rIiwib25Qcm9ncmVzc0NhbGxiYWNrIiwiaGVhZGVycyIsIm9uU3RhcnRDYWxsYmFjayIsIm9uRmluaXNoQ2FsbGJhY2siLCJIZWFkZXJzV3JhcHBlciIsImNvbnRyb2xsZXIiLCJzaWduYWwiLCJ0ZXh0RGVjb2RlciIsImNyZWRlbnRpYWxzIiwid2l0aENyZWRlbnRpYWxzIiwiY2FjaGUiLCJyZWFkZXIiLCJyZXNwb25zZSIsInJlYWROZXh0Q2h1bmsiLCJyZXN1bHQiLCJyZXNvbHZlIiwicmVqZWN0IiwiUHJvbWlzZSIsIkV2ZW50VGFyZ2V0IiwiZXZlbnQiLCJ0eXBlTGlzdGVuZXJzIiwibGVuZ3RoIiwibGlzdGVuZXIiLCJ0aHJvd0Vycm9yIiwidHlwZSIsImxpc3RlbmVycyIsImZvdW5kIiwiZmlsdGVyZWQiLCJFdmVudCIsIm9wdGlvbnMiLCJNZXNzYWdlRXZlbnQiLCJDb25uZWN0aW9uRXZlbnQiLCJXQUlUSU5HIiwiQ09OTkVDVElORyIsIk9QRU4iLCJDTE9TRUQiLCJBRlRFUl9DUiIsIkZJRUxEX1NUQVJUIiwiRklFTEQiLCJWQUxVRV9TVEFSVCIsIlZBTFVFIiwiY29udGVudFR5cGVSZWdFeHAiLCJNSU5JTVVNX0RVUkFUSU9OIiwiTUFYSU1VTV9EVVJBVElPTiIsInBhcnNlRHVyYXRpb24iLCJuIiwicGFyc2VJbnQiLCJjbGFtcER1cmF0aW9uIiwiTWF0aCIsImZpcmUiLCJmIiwic3RhcnQiLCJpc0ZldGNoU3VwcG9ydGVkIiwiZmV0Y2giLCJCb29sZWFuIiwiaW5pdGlhbFJldHJ5IiwiaGVhcnRiZWF0VGltZW91dCIsImxhc3RFdmVudElkIiwicmV0cnkiLCJ3YXNBY3Rpdml0eSIsIkpTT04iLCJDdXJyZW50VHJhbnNwb3J0IiwidHJhbnNwb3J0IiwiY2FuY2VsRnVuY3Rpb24iLCJjdXJyZW50U3RhdGUiLCJkYXRhQnVmZmVyIiwibGFzdEV2ZW50SWRCdWZmZXIiLCJldmVudFR5cGVCdWZmZXIiLCJ0ZXh0QnVmZmVyIiwiZmllbGRTdGFydCIsInZhbHVlU3RhcnQiLCJlcyIsIm1lc3NhZ2UiLCJjbG9zZSIsInRleHRDaHVuayIsInBvc2l0aW9uIiwiZmllbGQiLCJkYXRhIiwicmVxdWVzdFVSTCIsImVuY29kZVVSSUNvbXBvbmVudCIsInJlcXVlc3RIZWFkZXJzIiwiRXZlbnRTb3VyY2VQb2x5ZmlsbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUlBO0FBSkE7QUFDQTtBQUNBO0FBQ0E7OztBQUdBLElBQUlBLFFBQVEsR0FBR0MsTUFBTSxDQUFyQjtBQUNBLElBQUlDLFFBQVEs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Y0FBYztBQUNkVyxXQUFLO0FBQ0w7QUFFSDtBQXZFRDs7QUF5RUFGLElBQUUsQ0FBRkE7QUFDQUEsSUFBRSxDQUFGQTtBQUNBQSxJQUFFLENBQUZBO0FBQ0FBLElBQUUsQ0FBRkE7QUFFQTFGLFdBQVM7QUFHWG9HOztBQUFBQSxtQkFBbUIsQ0FBbkJBLFlBQWdDNUYsTUFBTSxDQUFOQSxPQUFjNkIsV0FBVyxDQUF6RCtELFNBQWdDNUYsQ0FBaEM0RjtBQUNBQSxtQkFBbUIsQ0FBbkJBO0FBQ0FBLG1CQUFtQixDQUFuQkE7QUFDQUEsbUJBQW1CLENBQW5CQTs7QUFDQUEsbUJBQW1CLENBQW5CQSxrQkFBc0MsWUFBWTtBQUNoRDtBQURGQTs7QUFJQUEsbUJBQW1CLENBQW5CQTtBQUNBQSxtQkFBbUIsQ0FBbkJBO0FBQ0FBLG1CQUFtQixDQUFuQkE7QUFDQUEsbUJBQW1CLENBQW5CQTtlQUVlQSxtQiIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2Rldi9ldmVudC1zb3VyY2UtcG9seWZpbGwuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSAqL1xuLy8gSW1wcm92ZWQgdmVyc2lvbiBvZiBodHRwczovL2dpdGh1Yi5jb20vWWFmZmxlL0V2ZW50U291cmNlL1xuLy8gQXZhaWxhYmxlIHVuZGVyIE1JVCBMaWNlbnNlIChNSVQpXG4vLyBPbmx5IHRyaWVzIHRvIHN1cHBvcnQgSUUxMSBhbmQgbm90aGluZyBiZWxvd1xuaW1wb3J0IGZldGNoIGZyb20gJ25leHQvZGlzdC9idWlsZC9wb2x5ZmlsbHMvdW5mZXRjaCdcblxudmFyIGRvY3VtZW50ID0gd2luZG93LmRvY3VtZW50XG52YXIgUmVzcG9uc2UgPSB3aW5kb3cuUmVzcG9uc2VcbnZhciBUZXh0RGVjb2RlciA9IHdpbmRvdy5UZXh0RGVjb2RlclxudmFyIFRleHRFbmNvZGVyID0gd2luZG93LlRleHRFbmNvZGVyXG52YXIgQWJvcnRDb250cm9sbGVyID0gd2luZG93LkFib3J0Q29udHJvbGxlclxuXG5pZiAoQWJvcnRDb250cm9sbGVyID09IHVuZGVmaW5lZCkge1xuICBBYm9ydENvbnRyb2xsZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5zaWduYWwgPSBudWxsXG4gICAgdGhpcy5hYm9ydCA9IGZ1bmN0aW9uICgpIHt9XG4gIH1cbn1cblxuZnVuY3Rpb24gVGV4dERlY29kZXJQb2x5ZmlsbCgpIHtcbiAgdGhpcy5iaXRzTmVlZGVkID0gMFxuICB0aGlzLmNvZGVQb2ludCA9IDBcbn1cblxuVGV4dERlY29kZXJQb2x5ZmlsbC5wcm90b3R5cGUuZGVjb2RlID0gZnVuY3Rpb24gKG9jdGV0cykge1xuICBmdW5jdGlvbiB2YWxpZChjb2RlUG9pbnQsIHNoaWZ0LCBvY3RldHNDb3VudCkge1xuICAgIGlmIChvY3RldHNDb3VudCA9PT0gMSkge1xuICAgICAgcmV0dXJuIGNvZGVQb2ludCA+PSAweDAwODAgPj4gc2hpZnQgJiYgY29kZVBvaW50IDw8IHNoaWZ0IDw9IDB4MDdmZlxuICAgIH1cbiAgICBpZiAob2N0ZXRzQ291bnQgPT09IDIpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIChjb2RlUG9pbnQgPj0gMHgwODAwID4+IHNoaWZ0ICYmIGNvZGVQb2ludCA8PCBzaGlmdCA8PSAweGQ3ZmYpIHx8XG4gICAgICAgIChjb2RlUG9pbnQgPj0gMHhlMDAwID4+IHNoaWZ0ICYmIGNvZGVQb2ludCA8PCBzaGlmdCA8PSAweGZmZmYpXG4gICAgICApXG4gICAgfVxuICAgIGlmIChvY3RldHNDb3VudCA9PT0gMykge1xuICAgICAgcmV0dXJuIGNvZGVQb2ludCA+PSAweDAxMDAwMCA+PiBzaGlmdCAmJiBjb2RlUG9pbnQgPDwgc2hpZnQgPD0gMHgxMGZmZmZcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKClcbiAgfVxuICBmdW5jdGlvbiBvY3RldHNDb3VudChiaXRzTmVlZGVkLCBjb2RlUG9pbnQpIHtcbiAgICBpZiAoYml0c05lZWRlZCA9PT0gNiAqIDEpIHtcbiAgICAgIHJldHVybiBjb2RlUG9pbnQgPj4gNiA+IDE1ID8gMyA6IGNvZGVQb2ludCA+IDMxID8gMiA6IDFcbiAgICB9XG4gICAgaWYgKGJpdHNOZWVkZWQgPT09IDYgKiAyKSB7XG4gICAgICByZXR1cm4gY29kZVBvaW50ID4gMTUgPyAzIDogMlxuICAgIH1cbiAgICBpZiAoYml0c05lZWRlZCA9PT0gNiAqIDMpIHtcbiAgICAgIHJldHVybiAzXG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcigpXG4gIH1cbiAgdmFyIFJFUExBQ0VSID0gMHhmZmZkXG4gIHZhciBzdHJpbmcgPSAnJ1xuICB2YXIgYml0c05lZWRlZCA9IHRoaXMuYml0c05lZWRlZFxuICB2YXIgY29kZVBvaW50ID0gdGhpcy5jb2RlUG9pbnRcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBvY3RldHMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICB2YXIgb2N0ZXQgPSBvY3RldHNbaV1cbiAgICBpZiAoYml0c05lZWRlZCAhPT0gMCkge1xuICAgICAgaWYgKFxuICAgICAgICBvY3RldCA8IDEyOCB8fFxuICAgICAgICBvY3RldCA+IDE5MSB8fFxuICAgICAgICAhdmFsaWQoXG4gICAgICAgICAgKGNvZGVQb2ludCA8PCA2KSB8IChvY3RldCAmIDYzKSxcbiAgICAgICAgICBiaXRzTmVlZGVkIC0gNixcbiAgICAgICAgICBvY3RldHNDb3VudChiaXRzTmVlZGVkLCBjb2RlUG9pbnQpXG4gICAgICAgIClcbiAgICAgICkge1xuICAgICAgICBiaXRzTmVlZGVkID0gMFxuICAgICAgICBjb2RlUG9pbnQgPSBSRVBMQUNFUlxuICAgICAgICBzdHJpbmcgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShjb2RlUG9pbnQpXG4gICAgICB9XG4gICAgfVxuICAgIGlmIChiaXRzTmVlZGVkID09PSAwKSB7XG4gICAgICBpZiAob2N0ZXQgPj0gMCAmJiBvY3RldCA8PSAxMjcpIHtcbiAgICAgICAgYml0c05lZWRlZCA9IDBcbiAgICAgICAgY29kZVBvaW50ID0gb2N0ZXRcbiAgICAgIH0gZWxzZSBpZiAob2N0ZXQgPj0gMTkyICYmIG9jdGV0IDw9IDIyMykge1xuICAgICAgICBiaXRzTmVlZGVkID0gNiAqIDFcbiAgICAgICAgY29kZVBvaW50ID0gb2N0ZXQgJiAzMVxuICAgICAgfSBlbHNlIGlmIChvY3RldCA+PSAyMjQgJiYgb2N0ZXQgPD0gMjM5KSB7XG4gICAgICAgIGJpdHNOZWVkZWQgPSA2ICogMlxuICAgICAgICBjb2RlUG9pbnQgPSBvY3RldCAmIDE1XG4gICAgICB9IGVsc2UgaWYgKG9jdGV0ID49IDI0MCAmJiBvY3RldCA8PSAyNDcpIHtcbiAgICAgICAgYml0c05lZWRlZCA9IDYgKiAzXG4gICAgICAgIGNvZGVQb2ludCA9IG9jdGV0ICYgN1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYml0c05lZWRlZCA9IDBcbiAgICAgICAgY29kZVBvaW50ID0gUkVQTEFDRVJcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgYml0c05lZWRlZCAhPT0gMCAmJlxuICAgICAgICAhdmFsaWQoY29kZVBvaW50LCBiaXRzTmVlZGVkLCBvY3RldHNDb3VudChiaXRzTmVlZGVkLCBjb2RlUG9pbnQpKVxuICAgICAgKSB7XG4gICAgICAgIGJpdHNOZWVkZWQgPSAwXG4gICAgICAgIGNvZGVQb2ludCA9IFJFUExBQ0VSXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGJpdHNOZWVkZWQgLT0gNlxuICAgICAgY29kZVBvaW50ID0gKGNvZGVQb2ludCA8PCA2KSB8IChvY3RldCAmIDYzKVxuICAgIH1cbiAgICBpZiAoYml0c05lZWRlZCA9PT0gMCkge1xuICAgICAgaWYgKGNvZGVQb2ludCA8PSAweGZmZmYpIHtcbiAgICAgICAgc3RyaW5nICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoY29kZVBvaW50KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3RyaW5nICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoMHhkODAwICsgKChjb2RlUG9pbnQgLSAweGZmZmYgLSAxKSA+PiAxMCkpXG4gICAgICAgIHN0cmluZyArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKFxuICAgICAgICAgIDB4ZGMwMCArICgoY29kZVBvaW50IC0gMHhmZmZmIC0gMSkgJiAweDNmZilcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH1cbiAgfVxuICB0aGlzLmJpdHNOZWVkZWQgPSBiaXRzTmVlZGVkXG4gIHRoaXMuY29kZVBvaW50ID0gY29kZVBvaW50XG4gIHJldHVybiBzdHJpbmdcbn1cblxuLy8gRmlyZWZveCA8IDM4IHRocm93cyBhbiBlcnJvciB3aXRoIHN0cmVhbSBvcHRpb25cbnZhciBzdXBwb3J0c1N0cmVhbU9wdGlvbiA9IGZ1bmN0aW9uICgpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gKFxuICAgICAgbmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZSgndGVzdCcpLCB7XG4gICAgICAgIHN0cmVhbTogdHJ1ZSxcbiAgICAgIH0pID09PSAndGVzdCdcbiAgICApXG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS5sb2coZXJyb3IpXG4gIH1cbiAgcmV0dXJuIGZhbHNlXG59XG5cbi8vIElFLCBFZGdlXG5pZiAoXG4gIFRleHREZWNvZGVyID09IHVuZGVmaW5lZCB8fFxuICBUZXh0RW5jb2RlciA9PSB1bmRlZmluZWQgfHxcbiAgIXN1cHBvcnRzU3RyZWFtT3B0aW9uKClcbikge1xuICBUZXh0RGVjb2RlciA9IFRleHREZWNvZGVyUG9seWZpbGxcbn1cblxudmFyIGsgPSBmdW5jdGlvbiAoKSB7fVxuXG5mdW5jdGlvbiBYSFJXcmFwcGVyKHhocikge1xuICB0aGlzLndpdGhDcmVkZW50aWFscyA9IGZhbHNlXG4gIHRoaXMucmVzcG9uc2VUeXBlID0gJydcbiAgdGhpcy5yZWFkeVN0YXRlID0gMFxuICB0aGlzLnN0YXR1cyA9IDBcbiAgdGhpcy5zdGF0dXNUZXh0ID0gJydcbiAgdGhpcy5yZXNwb25zZVRleHQgPSAnJ1xuICB0aGlzLm9ucHJvZ3Jlc3MgPSBrXG4gIHRoaXMub25yZWFkeXN0YXRlY2hhbmdlID0ga1xuICB0aGlzLl9jb250ZW50VHlwZSA9ICcnXG4gIHRoaXMuX3hociA9IHhoclxuICB0aGlzLl9zZW5kVGltZW91dCA9IDBcbiAgdGhpcy5fYWJvcnQgPSBrXG59XG5cblhIUldyYXBwZXIucHJvdG90eXBlLm9wZW4gPSBmdW5jdGlvbiAobWV0aG9kLCB1cmwpIHtcbiAgdGhpcy5fYWJvcnQodHJ1ZSlcblxuICB2YXIgdGhhdCA9IHRoaXNcbiAgdmFyIHhociA9IHRoaXMuX3hoclxuICB2YXIgc3RhdGUgPSAxXG4gIHZhciB0aW1lb3V0ID0gMFxuXG4gIHRoaXMuX2Fib3J0ID0gZnVuY3Rpb24gKHNpbGVudCkge1xuICAgIGlmICh0aGF0Ll9zZW5kVGltZW91dCAhPT0gMCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoYXQuX3NlbmRUaW1lb3V0KVxuICAgICAgdGhhdC5fc2VuZFRpbWVvdXQgPSAwXG4gICAgfVxuICAgIGlmIChzdGF0ZSA9PT0gMSB8fCBzdGF0ZSA9PT0gMiB8fCBzdGF0ZSA9PT0gMykge1xuICAgICAgc3RhdGUgPSA0XG4gICAgICB4aHIub25sb2FkID0ga1xuICAgICAgeGhyLm9uZXJyb3IgPSBrXG4gICAgICB4aHIub25hYm9ydCA9IGtcbiAgICAgIHhoci5vbnByb2dyZXNzID0ga1xuICAgICAgeGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGtcbiAgICAgIC8vIElFIDggLSA5OiBYRG9tYWluUmVxdWVzdCNhYm9ydCgpIGRvZXMgbm90IGZpcmUgYW55IGV2ZW50XG4gICAgICAvLyBPcGVyYSA8IDEwOiBYTUxIdHRwUmVxdWVzdCNhYm9ydCgpIGRvZXMgbm90IGZpcmUgYW55IGV2ZW50XG4gICAgICB4aHIuYWJvcnQoKVxuICAgICAgaWYgKHRpbWVvdXQgIT09IDApIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpXG4gICAgICAgIHRpbWVvdXQgPSAwXG4gICAgICB9XG4gICAgICBpZiAoIXNpbGVudCkge1xuICAgICAgICB0aGF0LnJlYWR5U3RhdGUgPSA0XG4gICAgICAgIHRoYXQub25yZWFkeXN0YXRlY2hhbmdlKClcbiAgICAgIH1cbiAgICB9XG4gICAgc3RhdGUgPSAwXG4gIH1cblxuICB2YXIgb25TdGFydCA9IGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoc3RhdGUgPT09IDEpIHtcbiAgICAgIC8vIHN0YXRlID0gMjtcbiAgICAgIHZhciBzdGF0dXMgPSAwXG4gICAgICB2YXIgc3RhdHVzVGV4dCA9ICcnXG4gICAgICB2YXIgY29udGVudFR5cGUgPSB1bmRlZmluZWRcbiAgICAgIGlmICghKCdjb250ZW50VHlwZScgaW4geGhyKSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHN0YXR1cyA9IHhoci5zdGF0dXNcbiAgICAgICAgICBzdGF0dXNUZXh0ID0geGhyLnN0YXR1c1RleHRcbiAgICAgICAgICBjb250ZW50VHlwZSA9IHhoci5nZXRSZXNwb25zZUhlYWRlcignQ29udGVudC1UeXBlJylcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAvLyBJRSA8IDEwIHRocm93cyBleGNlcHRpb24gZm9yIGB4aHIuc3RhdHVzYCB3aGVuIHhoci5yZWFkeVN0YXRlID09PSAyIHx8IHhoci5yZWFkeVN0YXRlID09PSAzXG4gICAgICAgICAgLy8gT3BlcmEgPCAxMSB0aHJvd3MgZXhjZXB0aW9uIGZvciBgeGhyLnN0YXR1c2Agd2hlbiB4aHIucmVhZHlTdGF0ZSA9PT0gMlxuICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTEyMVxuICAgICAgICAgIHN0YXR1cyA9IDBcbiAgICAgICAgICBzdGF0dXNUZXh0ID0gJydcbiAgICAgICAgICBjb250ZW50VHlwZSA9IHVuZGVmaW5lZFxuICAgICAgICAgIC8vIEZpcmVmb3ggPCAxNCwgQ2hyb21lID8sIFNhZmFyaSA/XG4gICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5NjU4XG4gICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3ODU0XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN0YXR1cyA9IDIwMFxuICAgICAgICBzdGF0dXNUZXh0ID0gJ09LJ1xuICAgICAgICBjb250ZW50VHlwZSA9IHhoci5jb250ZW50VHlwZVxuICAgICAgfVxuICAgICAgaWYgKHN0YXR1cyAhPT0gMCkge1xuICAgICAgICBzdGF0ZSA9IDJcbiAgICAgICAgdGhhdC5yZWFkeVN0YXRlID0gMlxuICAgICAgICB0aGF0LnN0YXR1cyA9IHN0YXR1c1xuICAgICAgICB0aGF0LnN0YXR1c1RleHQgPSBzdGF0dXNUZXh0XG4gICAgICAgIHRoYXQuX2NvbnRlbnRUeXBlID0gY29udGVudFR5cGVcbiAgICAgICAgdGhhdC5vbnJlYWR5c3RhdGVjaGFuZ2UoKVxuICAgICAgfVxuICAgIH1cbiAgfVxuICB2YXIgb25Qcm9ncmVzcyA9IGZ1bmN0aW9uICgpIHtcbiAgICBvblN0YXJ0KClcbiAgICBpZiAoc3RhdGUgPT09IDIgfHwgc3RhdGUgPT09IDMpIHtcbiAgICAgIHN0YXRlID0gM1xuICAgICAgdmFyIHJlc3BvbnNlVGV4dCA9ICcnXG4gICAgICB0cnkge1xuICAgICAgICByZXNwb25zZVRleHQgPSB4aHIucmVzcG9uc2VUZXh0XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAvLyBJRSA4IC0gOSB3aXRoIFhNTEh0dHBSZXF1ZXN0XG4gICAgICB9XG4gICAgICB0aGF0LnJlYWR5U3RhdGUgPSAzXG4gICAgICB0aGF0LnJlc3BvbnNlVGV4dCA9IHJlc3BvbnNlVGV4dFxuICAgICAgdGhhdC5vbnByb2dyZXNzKClcbiAgICB9XG4gIH1cbiAgdmFyIG9uRmluaXNoID0gZnVuY3Rpb24gKCkge1xuICAgIC8vIEZpcmVmb3ggNTIgZmlyZXMgXCJyZWFkeXN0YXRlY2hhbmdlXCIgKHhoci5yZWFkeVN0YXRlID09PSA0KSB3aXRob3V0IGZpbmFsIFwicmVhZHlzdGF0ZWNoYW5nZVwiICh4aHIucmVhZHlTdGF0ZSA9PT0gMylcbiAgICAvLyBJRSA4IGZpcmVzIFwib25sb2FkXCIgd2l0aG91dCBcIm9ucHJvZ3Jlc3NcIlxuICAgIG9uUHJvZ3Jlc3MoKVxuICAgIGlmIChzdGF0ZSA9PT0gMSB8fCBzdGF0ZSA9PT0gMiB8fCBzdGF0ZSA9PT0gMykge1xuICAgICAgc3RhdGUgPSA0XG4gICAgICBpZiAodGltZW91dCAhPT0gMCkge1xuICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dClcbiAgICAgICAgdGltZW91dCA9IDBcbiAgICAgIH1cbiAgICAgIHRoYXQucmVhZHlTdGF0ZSA9IDRcbiAgICAgIHRoYXQub25yZWFkeXN0YXRlY2hhbmdlKClcbiAgICB9XG4gIH1cbiAgdmFyIG9uUmVhZHlTdGF0ZUNoYW5nZSA9IGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoeGhyICE9IHVuZGVmaW5lZCkge1xuICAgICAgLy8gT3BlcmEgMTJcbiAgICAgIGlmICh4aHIucmVhZHlTdGF0ZSA9PT0gNCkge1xuICAgICAgICBvbkZpbmlzaCgpXG4gICAgICB9IGVsc2UgaWYgKHhoci5yZWFkeVN0YXRlID09PSAzKSB7XG4gICAgICAgIG9uUHJvZ3Jlc3MoKVxuICAgICAgfSBlbHNlIGlmICh4aHIucmVhZHlTdGF0ZSA9PT0gMikge1xuICAgICAgICBvblN0YXJ0KClcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgdmFyIG9uVGltZW91dCA9IGZ1bmN0aW9uICgpIHtcbiAgICB0aW1lb3V0ID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICBvblRpbWVvdXQoKVxuICAgIH0sIDUwMClcbiAgICBpZiAoeGhyLnJlYWR5U3RhdGUgPT09IDMpIHtcbiAgICAgIG9uUHJvZ3Jlc3MoKVxuICAgIH1cbiAgfVxuXG4gIC8vIFhEb21haW5SZXF1ZXN0I2Fib3J0IHJlbW92ZXMgb25wcm9ncmVzcywgb25lcnJvciwgb25sb2FkXG4gIHhoci5vbmxvYWQgPSBvbkZpbmlzaFxuICB4aHIub25lcnJvciA9IG9uRmluaXNoXG4gIC8vIGltcHJvcGVyIGZpeCB0byBtYXRjaCBGaXJlZm94IGJlaGF2aW9yLCBidXQgaXQgaXMgYmV0dGVyIHRoYW4ganVzdCBpZ25vcmUgYWJvcnRcbiAgLy8gc2VlIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTc2ODU5NlxuICAvLyBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD04ODAyMDBcbiAgLy8gaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTE1MzU3MFxuICAvLyBJRSA4IGZpcmVzIFwib25sb2FkXCIgd2l0aG91dCBcIm9ucHJvZ3Jlc3NcbiAgeGhyLm9uYWJvcnQgPSBvbkZpbmlzaFxuXG4gIC8vIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTczNjcyM1xuICBpZiAoXG4gICAgISgnc2VuZEFzQmluYXJ5JyBpbiBYTUxIdHRwUmVxdWVzdC5wcm90b3R5cGUpICYmXG4gICAgISgnbW96QW5vbicgaW4gWE1MSHR0cFJlcXVlc3QucHJvdG90eXBlKVxuICApIHtcbiAgICB4aHIub25wcm9ncmVzcyA9IG9uUHJvZ3Jlc3NcbiAgfVxuXG4gIC8vIElFIDggLSA5IChYTUxIVFRQUmVxdWVzdClcbiAgLy8gT3BlcmEgPCAxMlxuICAvLyBGaXJlZm94IDwgMy41XG4gIC8vIEZpcmVmb3ggMy41IC0gMy42IC0gPyA8IDkuMFxuICAvLyBvbnByb2dyZXNzIGlzIG5vdCBmaXJlZCBzb21ldGltZXMgb3IgZGVsYXllZFxuICAvLyBzZWUgYWxzbyAjNjRcbiAgeGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IG9uUmVhZHlTdGF0ZUNoYW5nZVxuXG4gIGlmICgnY29udGVudFR5cGUnIGluIHhocikge1xuICAgIHVybCArPSAodXJsLmluZGV4T2YoJz8nKSA9PT0gLTEgPyAnPycgOiAnJicpICsgJ3BhZGRpbmc9dHJ1ZSdcbiAgfVxuICB4aHIub3BlbihtZXRob2QsIHVybCwgdHJ1ZSlcblxuICBpZiAoJ3JlYWR5U3RhdGUnIGluIHhocikge1xuICAgIC8vIHdvcmthcm91bmQgZm9yIE9wZXJhIDEyIGlzc3VlIHdpdGggXCJwcm9ncmVzc1wiIGV2ZW50c1xuICAgIC8vICM5MVxuICAgIHRpbWVvdXQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgIG9uVGltZW91dCgpXG4gICAgfSwgMClcbiAgfVxufVxuWEhSV3JhcHBlci5wcm90b3R5cGUuYWJvcnQgPSBmdW5jdGlvbiAoKSB7XG4gIHRoaXMuX2Fib3J0KGZhbHNlKVxufVxuWEhSV3JhcHBlci5wcm90b3R5cGUuZ2V0UmVzcG9uc2VIZWFkZXIgPSBmdW5jdGlvbiAobmFtZSkge1xuICByZXR1cm4gdGhpcy5fY29udGVudFR5cGVcbn1cblhIUldyYXBwZXIucHJvdG90eXBlLnNldFJlcXVlc3RIZWFkZXIgPSBmdW5jdGlvbiAobmFtZSwgdmFsdWUpIHtcbiAgdmFyIHhociA9IHRoaXMuX3hoclxuICBpZiAoJ3NldFJlcXVlc3RIZWFkZXInIGluIHhocikge1xuICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKG5hbWUsIHZhbHVlKVxuICB9XG59XG5YSFJXcmFwcGVyLnByb3RvdHlwZS5nZXRBbGxSZXNwb25zZUhlYWRlcnMgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLl94aHIuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzICE9IHVuZGVmaW5lZFxuICAgID8gdGhpcy5feGhyLmdldEFsbFJlc3BvbnNlSGVhZGVycygpXG4gICAgOiAnJ1xufVxuWEhSV3JhcHBlci5wcm90b3R5cGUuc2VuZCA9IGZ1bmN0aW9uICgpIHtcbiAgLy8gbG9hZGluZyBpbmRpY2F0b3IgaW4gU2FmYXJpIDwgPyAoNiksIENocm9tZSA8IDE0LCBGaXJlZm94XG4gIGlmIChcbiAgICAhKCdvbnRpbWVvdXQnIGluIFhNTEh0dHBSZXF1ZXN0LnByb3RvdHlwZSkgJiZcbiAgICBkb2N1bWVudCAhPSB1bmRlZmluZWQgJiZcbiAgICBkb2N1bWVudC5yZWFkeVN0YXRlICE9IHVuZGVmaW5lZCAmJlxuICAgIGRvY3VtZW50LnJlYWR5U3RhdGUgIT09ICdjb21wbGV0ZSdcbiAgKSB7XG4gICAgdmFyIHRoYXQgPSB0aGlzXG4gICAgdGhhdC5fc2VuZFRpbWVvdXQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgIHRoYXQuX3NlbmRUaW1lb3V0ID0gMFxuICAgICAgdGhhdC5zZW5kKClcbiAgICB9LCA0KVxuICAgIHJldHVyblxuICB9XG5cbiAgdmFyIHhociA9IHRoaXMuX3hoclxuICAvLyB3aXRoQ3JlZGVudGlhbHMgc2hvdWxkIGJlIHNldCBhZnRlciBcIm9wZW5cIiBmb3IgU2FmYXJpIGFuZCBDaHJvbWUgKDwgMTkgPylcbiAgeGhyLndpdGhDcmVkZW50aWFscyA9IHRoaXMud2l0aENyZWRlbnRpYWxzXG4gIHhoci5yZXNwb25zZVR5cGUgPSB0aGlzLnJlc3BvbnNlVHlwZVxuICB0cnkge1xuICAgIC8vIHhoci5zZW5kKCk7IHRocm93cyBcIk5vdCBlbm91Z2ggYXJndW1lbnRzXCIgaW4gRmlyZWZveCAzLjBcbiAgICB4aHIuc2VuZCh1bmRlZmluZWQpXG4gIH0gY2F0Y2ggKGVycm9yMSkge1xuICAgIC8vIFNhZmFyaSA1LjEuNywgT3BlcmEgMTJcbiAgICB0aHJvdyBlcnJvcjFcbiAgfVxufVxuXG5mdW5jdGlvbiB0b0xvd2VyQ2FzZShuYW1lKSB7XG4gIHJldHVybiBuYW1lLnJlcGxhY2UoL1tBLVpdL2csIGZ1bmN0aW9uIChjKSB7XG4gICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoYy5jaGFyQ29kZUF0KDApICsgMHgyMClcbiAgfSlcbn1cblxuZnVuY3Rpb24gSGVhZGVyc1BvbHlmaWxsKGFsbCkge1xuICAvLyBHZXQgaGVhZGVyczogaW1wbGVtZW50ZWQgYWNjb3JkaW5nIHRvIG1vemlsbGEncyBleGFtcGxlIGNvZGU6IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9YTUxIdHRwUmVxdWVzdC9nZXRBbGxSZXNwb25zZUhlYWRlcnMjRXhhbXBsZVxuICB2YXIgbWFwID0gT2JqZWN0LmNyZWF0ZShudWxsKVxuICB2YXIgYXJyYXkgPSBhbGwuc3BsaXQoJ1xcclxcbicpXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyBpICs9IDEpIHtcbiAgICB2YXIgbGluZSA9IGFycmF5W2ldXG4gICAgdmFyIHBhcnRzID0gbGluZS5zcGxpdCgnOiAnKVxuICAgIHZhciBuYW1lID0gcGFydHMuc2hpZnQoKVxuICAgIHZhciB2YWx1ZSA9IHBhcnRzLmpvaW4oJzogJylcbiAgICBtYXBbdG9Mb3dlckNhc2UobmFtZSldID0gdmFsdWVcbiAgfVxuICB0aGlzLl9tYXAgPSBtYXBcbn1cbkhlYWRlcnNQb2x5ZmlsbC5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgcmV0dXJuIHRoaXMuX21hcFt0b0xvd2VyQ2FzZShuYW1lKV1cbn1cblxuZnVuY3Rpb24gWEhSVHJhbnNwb3J0KCkge31cblxuWEhSVHJhbnNwb3J0LnByb3RvdHlwZS5vcGVuID0gZnVuY3Rpb24gKFxuICB4aHIsXG4gIG9uU3RhcnRDYWxsYmFjayxcbiAgb25Qcm9ncmVzc0NhbGxiYWNrLFxuICBvbkZpbmlzaENhbGxiYWNrLFxuICB1cmwsXG4gIHdpdGhDcmVkZW50aWFscyxcbiAgaGVhZGVyc1xuKSB7XG4gIHhoci5vcGVuKCdHRVQnLCB1cmwpXG4gIHZhciBvZmZzZXQgPSAwXG4gIHhoci5vbnByb2dyZXNzID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciByZXNwb25zZVRleHQgPSB4aHIucmVzcG9uc2VUZXh0XG4gICAgdmFyIGNodW5rID0gcmVzcG9uc2VUZXh0LnNsaWNlKG9mZnNldClcbiAgICBvZmZzZXQgKz0gY2h1bmsubGVuZ3RoXG4gICAgb25Qcm9ncmVzc0NhbGxiYWNrKGNodW5rKVxuICB9XG4gIHhoci5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHhoci5yZWFkeVN0YXRlID09PSAyKSB7XG4gICAgICB2YXIgc3RhdHVzID0geGhyLnN0YXR1c1xuICAgICAgdmFyIHN0YXR1c1RleHQgPSB4aHIuc3RhdHVzVGV4dFxuICAgICAgdmFyIGNvbnRlbnRUeXBlID0geGhyLmdldFJlc3BvbnNlSGVhZGVyKCdDb250ZW50LVR5cGUnKVxuICAgICAgdmFyIGhlYWRlcnMgPSB4aHIuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKClcbiAgICAgIG9uU3RhcnRDYWxsYmFjayhcbiAgICAgICAgc3RhdHVzLFxuICAgICAgICBzdGF0dXNUZXh0LFxuICAgICAgICBjb250ZW50VHlwZSxcbiAgICAgICAgbmV3IEhlYWRlcnNQb2x5ZmlsbChoZWFkZXJzKSxcbiAgICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHhoci5hYm9ydCgpXG4gICAgICAgIH1cbiAgICAgIClcbiAgICB9IGVsc2UgaWYgKHhoci5yZWFkeVN0YXRlID09PSA0KSB7XG4gICAgICBvbkZpbmlzaENhbGxiYWNrKClcbiAgICB9XG4gIH1cbiAgeGhyLndpdGhDcmVkZW50aWFscyA9IHdpdGhDcmVkZW50aWFsc1xuICB4aHIucmVzcG9uc2VUeXBlID0gJ3RleHQnXG4gIGZvciAodmFyIG5hbWUgaW4gaGVhZGVycykge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaGVhZGVycywgbmFtZSkpIHtcbiAgICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKG5hbWUsIGhlYWRlcnNbbmFtZV0pXG4gICAgfVxuICB9XG4gIHhoci5zZW5kKClcbn1cblxuZnVuY3Rpb24gSGVhZGVyc1dyYXBwZXIoaGVhZGVycykge1xuICB0aGlzLl9oZWFkZXJzID0gaGVhZGVyc1xufVxuSGVhZGVyc1dyYXBwZXIucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gIHJldHVybiB0aGlzLl9oZWFkZXJzLmdldChuYW1lKVxufVxuXG5mdW5jdGlvbiBGZXRjaFRyYW5zcG9ydCgpIHt9XG5cbkZldGNoVHJhbnNwb3J0LnByb3RvdHlwZS5vcGVuID0gZnVuY3Rpb24gKFxuICB4aHIsXG4gIG9uU3RhcnRDYWxsYmFjayxcbiAgb25Qcm9ncmVzc0NhbGxiYWNrLFxuICBvbkZpbmlzaENhbGxiYWNrLFxuICB1cmwsXG4gIHdpdGhDcmVkZW50aWFscyxcbiAgaGVhZGVyc1xuKSB7XG4gIHZhciBjb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpXG4gIHZhciBzaWduYWwgPSBjb250cm9sbGVyLnNpZ25hbCAvLyBzZWUgIzEyMFxuICB2YXIgdGV4dERlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoKVxuICBmZXRjaCh1cmwsIHtcbiAgICBoZWFkZXJzOiBoZWFkZXJzLFxuICAgIGNyZWRlbnRpYWxzOiB3aXRoQ3JlZGVudGlhbHMgPyAnaW5jbHVkZScgOiAnc2FtZS1vcmlnaW4nLFxuICAgIHNpZ25hbDogc2lnbmFsLFxuICAgIGNhY2hlOiAnbm8tc3RvcmUnLFxuICB9KVxuICAgIC50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgdmFyIHJlYWRlciA9IHJlc3BvbnNlLmJvZHkuZ2V0UmVhZGVyKClcbiAgICAgIG9uU3RhcnRDYWxsYmFjayhcbiAgICAgICAgcmVzcG9uc2Uuc3RhdHVzLFxuICAgICAgICByZXNwb25zZS5zdGF0dXNUZXh0LFxuICAgICAgICByZXNwb25zZS5oZWFkZXJzLmdldCgnQ29udGVudC1UeXBlJyksXG4gICAgICAgIG5ldyBIZWFkZXJzV3JhcHBlcihyZXNwb25zZS5oZWFkZXJzKSxcbiAgICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGNvbnRyb2xsZXIuYWJvcnQoKVxuICAgICAgICAgIHJlYWRlci5jYW5jZWwoKVxuICAgICAgICB9XG4gICAgICApXG4gICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICB2YXIgcmVhZE5leHRDaHVuayA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZWFkZXJcbiAgICAgICAgICAgIC5yZWFkKClcbiAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgaWYgKHJlc3VsdC5kb25lKSB7XG4gICAgICAgICAgICAgICAgLy8gTm90ZTogYnl0ZXMgaW4gdGV4dERlY29kZXIgYXJlIGlnbm9yZWRcbiAgICAgICAgICAgICAgICByZXNvbHZlKHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB2YXIgY2h1bmsgPSB0ZXh0RGVjb2Rlci5kZWNvZGUocmVzdWx0LnZhbHVlLCB7IHN0cmVhbTogdHJ1ZSB9KVxuICAgICAgICAgICAgICAgIG9uUHJvZ3Jlc3NDYWxsYmFjayhjaHVuaylcbiAgICAgICAgICAgICAgICByZWFkTmV4dENodW5rKClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIFsnY2F0Y2gnXShmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgcmVqZWN0KGVycm9yKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgICByZWFkTmV4dENodW5rKClcbiAgICAgIH0pXG4gICAgfSlcbiAgICAudGhlbihcbiAgICAgIGZ1bmN0aW9uIChyZXN1bHQpIHtcbiAgICAgICAgb25GaW5pc2hDYWxsYmFjaygpXG4gICAgICAgIHJldHVybiByZXN1bHRcbiAgICAgIH0sXG4gICAgICBmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgb25GaW5pc2hDYWxsYmFjaygpXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlcnJvcilcbiAgICAgIH1cbiAgICApXG59XG5cbmZ1bmN0aW9uIEV2ZW50VGFyZ2V0KCkge1xuICB0aGlzLl9saXN0ZW5lcnMgPSBPYmplY3QuY3JlYXRlKG51bGwpXG59XG5cbmZ1bmN0aW9uIHRocm93RXJyb3IoZSkge1xuICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICB0aHJvdyBlXG4gIH0sIDApXG59XG5cbkV2ZW50VGFyZ2V0LnByb3RvdHlwZS5kaXNwYXRjaEV2ZW50ID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gIGV2ZW50LnRhcmdldCA9IHRoaXNcbiAgdmFyIHR5cGVMaXN0ZW5lcnMgPSB0aGlzLl9saXN0ZW5lcnNbZXZlbnQudHlwZV1cbiAgaWYgKHR5cGVMaXN0ZW5lcnMgIT0gdW5kZWZpbmVkKSB7XG4gICAgdmFyIGxlbmd0aCA9IHR5cGVMaXN0ZW5lcnMubGVuZ3RoXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkgKz0gMSkge1xuICAgICAgdmFyIGxpc3RlbmVyID0gdHlwZUxpc3RlbmVyc1tpXVxuICAgICAgdHJ5IHtcbiAgICAgICAgaWYgKHR5cGVvZiBsaXN0ZW5lci5oYW5kbGVFdmVudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIGxpc3RlbmVyLmhhbmRsZUV2ZW50KGV2ZW50KVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxpc3RlbmVyLmNhbGwodGhpcywgZXZlbnQpXG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhyb3dFcnJvcihlKVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuRXZlbnRUYXJnZXQucHJvdG90eXBlLmFkZEV2ZW50TGlzdGVuZXIgPSBmdW5jdGlvbiAodHlwZSwgbGlzdGVuZXIpIHtcbiAgdHlwZSA9IFN0cmluZyh0eXBlKVxuICB2YXIgbGlzdGVuZXJzID0gdGhpcy5fbGlzdGVuZXJzXG4gIHZhciB0eXBlTGlzdGVuZXJzID0gbGlzdGVuZXJzW3R5cGVdXG4gIGlmICh0eXBlTGlzdGVuZXJzID09IHVuZGVmaW5lZCkge1xuICAgIHR5cGVMaXN0ZW5lcnMgPSBbXVxuICAgIGxpc3RlbmVyc1t0eXBlXSA9IHR5cGVMaXN0ZW5lcnNcbiAgfVxuICB2YXIgZm91bmQgPSBmYWxzZVxuICBmb3IgKHZhciBpID0gMDsgaSA8IHR5cGVMaXN0ZW5lcnMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICBpZiAodHlwZUxpc3RlbmVyc1tpXSA9PT0gbGlzdGVuZXIpIHtcbiAgICAgIGZvdW5kID0gdHJ1ZVxuICAgIH1cbiAgfVxuICBpZiAoIWZvdW5kKSB7XG4gICAgdHlwZUxpc3RlbmVycy5wdXNoKGxpc3RlbmVyKVxuICB9XG59XG5FdmVudFRhcmdldC5wcm90b3R5cGUucmVtb3ZlRXZlbnRMaXN0ZW5lciA9IGZ1bmN0aW9uICh0eXBlLCBsaXN0ZW5lcikge1xuICB0eXBlID0gU3RyaW5nKHR5cGUpXG4gIHZhciBsaXN0ZW5lcnMgPSB0aGlzLl9saXN0ZW5lcnNcbiAgdmFyIHR5cGVMaXN0ZW5lcnMgPSBsaXN0ZW5lcnNbdHlwZV1cbiAgaWYgKHR5cGVMaXN0ZW5lcnMgIT0gdW5kZWZpbmVkKSB7XG4gICAgdmFyIGZpbHRlcmVkID0gW11cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHR5cGVMaXN0ZW5lcnMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgIGlmICh0eXBlTGlzdGVuZXJzW2ldICE9PSBsaXN0ZW5lcikge1xuICAgICAgICBmaWx0ZXJlZC5wdXNoKHR5cGVMaXN0ZW5lcnNbaV0pXG4gICAgICB9XG4gICAgfVxuICAgIGlmIChmaWx0ZXJlZC5sZW5ndGggPT09IDApIHtcbiAgICAgIGRlbGV0ZSBsaXN0ZW5lcnNbdHlwZV1cbiAgICB9IGVsc2Uge1xuICAgICAgbGlzdGVuZXJzW3R5cGVdID0gZmlsdGVyZWRcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gRXZlbnQodHlwZSkge1xuICB0aGlzLnR5cGUgPSB0eXBlXG4gIHRoaXMudGFyZ2V0ID0gdW5kZWZpbmVkXG59XG5cbmZ1bmN0aW9uIE1lc3NhZ2VFdmVudCh0eXBlLCBvcHRpb25zKSB7XG4gIEV2ZW50LmNhbGwodGhpcywgdHlwZSlcbiAgdGhpcy5kYXRhID0gb3B0aW9ucy5kYXRhXG4gIHRoaXMubGFzdEV2ZW50SWQgPSBvcHRpb25zLmxhc3RFdmVudElkXG59XG5cbk1lc3NhZ2VFdmVudC5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKEV2ZW50LnByb3RvdHlwZSlcblxuZnVuY3Rpb24gQ29ubmVjdGlvbkV2ZW50KHR5cGUsIG9wdGlvbnMpIHtcbiAgRXZlbnQuY2FsbCh0aGlzLCB0eXBlKVxuICB0aGlzLnN0YXR1cyA9IG9wdGlvbnMuc3RhdHVzXG4gIHRoaXMuc3RhdHVzVGV4dCA9IG9wdGlvbnMuc3RhdHVzVGV4dFxuICB0aGlzLmhlYWRlcnMgPSBvcHRpb25zLmhlYWRlcnNcbn1cblxuQ29ubmVjdGlvbkV2ZW50LnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoRXZlbnQucHJvdG90eXBlKVxuXG52YXIgV0FJVElORyA9IC0xXG52YXIgQ09OTkVDVElORyA9IDBcbnZhciBPUEVOID0gMVxudmFyIENMT1NFRCA9IDJcblxudmFyIEFGVEVSX0NSID0gLTFcbnZhciBGSUVMRF9TVEFSVCA9IDBcbnZhciBGSUVMRCA9IDFcbnZhciBWQUxVRV9TVEFSVCA9IDJcbnZhciBWQUxVRSA9IDNcblxudmFyIGNvbnRlbnRUeXBlUmVnRXhwID0gL150ZXh0XFwvZXZlbnRcXC1zdHJlYW07PyhcXHMqY2hhcnNldFxcPXV0ZlxcLTgpPyQvaVxuXG52YXIgTUlOSU1VTV9EVVJBVElPTiA9IDEwMDBcbnZhciBNQVhJTVVNX0RVUkFUSU9OID0gMTgwMDAwMDBcblxudmFyIHBhcnNlRHVyYXRpb24gPSBmdW5jdGlvbiAodmFsdWUsIGRlZikge1xuICB2YXIgbiA9IHBhcnNlSW50KHZhbHVlLCAxMClcbiAgaWYgKG4gIT09IG4pIHtcbiAgICBuID0gZGVmXG4gIH1cbiAgcmV0dXJuIGNsYW1wRHVyYXRpb24obilcbn1cbnZhciBjbGFtcER1cmF0aW9uID0gZnVuY3Rpb24gKG4pIHtcbiAgcmV0dXJuIE1hdGgubWluKE1hdGgubWF4KG4sIE1JTklNVU1fRFVSQVRJT04pLCBNQVhJTVVNX0RVUkFUSU9OKVxufVxuXG52YXIgZmlyZSA9IGZ1bmN0aW9uICh0aGF0LCBmLCBldmVudCkge1xuICB0cnkge1xuICAgIGlmICh0eXBlb2YgZiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgZi5jYWxsKHRoYXQsIGV2ZW50KVxuICAgIH1cbiAgfSBjYXRjaCAoZSkge1xuICAgIHRocm93RXJyb3IoZSlcbiAgfVxufVxuXG5mdW5jdGlvbiBFdmVudFNvdXJjZVBvbHlmaWxsKHVybCwgb3B0aW9ucykge1xuICBFdmVudFRhcmdldC5jYWxsKHRoaXMpXG5cbiAgdGhpcy5vbm9wZW4gPSB1bmRlZmluZWRcbiAgdGhpcy5vbm1lc3NhZ2UgPSB1bmRlZmluZWRcbiAgdGhpcy5vbmVycm9yID0gdW5kZWZpbmVkXG5cbiAgdGhpcy51cmwgPSB1bmRlZmluZWRcbiAgdGhpcy5yZWFkeVN0YXRlID0gdW5kZWZpbmVkXG4gIHRoaXMud2l0aENyZWRlbnRpYWxzID0gdW5kZWZpbmVkXG5cbiAgdGhpcy5fY2xvc2UgPSB1bmRlZmluZWRcblxuICBzdGFydCh0aGlzLCB1cmwsIG9wdGlvbnMpXG59XG5cbnZhciBpc0ZldGNoU3VwcG9ydGVkID1cbiAgZmV0Y2ggIT0gdW5kZWZpbmVkICYmIFJlc3BvbnNlICE9IHVuZGVmaW5lZCAmJiAnYm9keScgaW4gUmVzcG9uc2UucHJvdG90eXBlXG5cbmZ1bmN0aW9uIHN0YXJ0KGVzLCB1cmwsIG9wdGlvbnMpIHtcbiAgdXJsID0gU3RyaW5nKHVybClcbiAgdmFyIHdpdGhDcmVkZW50aWFscyA9IG9wdGlvbnMgIT0gdW5kZWZpbmVkICYmIEJvb2xlYW4ob3B0aW9ucy53aXRoQ3JlZGVudGlhbHMpXG5cbiAgdmFyIGluaXRpYWxSZXRyeSA9IGNsYW1wRHVyYXRpb24oMTAwMClcbiAgdmFyIGhlYXJ0YmVhdFRpbWVvdXQgPVxuICAgIG9wdGlvbnMgIT0gdW5kZWZpbmVkICYmIG9wdGlvbnMuaGVhcnRiZWF0VGltZW91dCAhPSB1bmRlZmluZWRcbiAgICAgID8gcGFyc2VEdXJhdGlvbihvcHRpb25zLmhlYXJ0YmVhdFRpbWVvdXQsIDQ1MDAwKVxuICAgICAgOiBjbGFtcER1cmF0aW9uKDQ1MDAwKVxuXG4gIHZhciBsYXN0RXZlbnRJZCA9ICcnXG4gIHZhciByZXRyeSA9IGluaXRpYWxSZXRyeVxuICB2YXIgd2FzQWN0aXZpdHkgPSBmYWxzZVxuICB2YXIgaGVhZGVycyA9XG4gICAgb3B0aW9ucyAhPSB1bmRlZmluZWQgJiYgb3B0aW9ucy5oZWFkZXJzICE9IHVuZGVmaW5lZFxuICAgICAgPyBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG9wdGlvbnMuaGVhZGVycykpXG4gICAgICA6IHVuZGVmaW5lZFxuICB2YXIgQ3VycmVudFRyYW5zcG9ydCA9XG4gICAgb3B0aW9ucyAhPSB1bmRlZmluZWQgJiYgb3B0aW9ucy5UcmFuc3BvcnQgIT0gdW5kZWZpbmVkXG4gICAgICA/IG9wdGlvbnMuVHJhbnNwb3J0XG4gICAgICA6IFhNTEh0dHBSZXF1ZXN0XG4gIHZhciB4aHIgPVxuICAgIGlzRmV0Y2hTdXBwb3J0ZWQgJiZcbiAgICAhKG9wdGlvbnMgIT0gdW5kZWZpbmVkICYmIG9wdGlvbnMuVHJhbnNwb3J0ICE9IHVuZGVmaW5lZClcbiAgICAgID8gdW5kZWZpbmVkXG4gICAgICA6IG5ldyBYSFJXcmFwcGVyKG5ldyBDdXJyZW50VHJhbnNwb3J0KCkpXG4gIHZhciB0cmFuc3BvcnQgPSB4aHIgPT0gdW5kZWZpbmVkID8gbmV3IEZldGNoVHJhbnNwb3J0KCkgOiBuZXcgWEhSVHJhbnNwb3J0KClcbiAgdmFyIGNhbmNlbEZ1bmN0aW9uID0gdW5kZWZpbmVkXG4gIHZhciB0aW1lb3V0ID0gMFxuICB2YXIgY3VycmVudFN0YXRlID0gV0FJVElOR1xuICB2YXIgZGF0YUJ1ZmZlciA9ICcnXG4gIHZhciBsYXN0RXZlbnRJZEJ1ZmZlciA9ICcnXG4gIHZhciBldmVudFR5cGVCdWZmZXIgPSAnJ1xuXG4gIHZhciB0ZXh0QnVmZmVyID0gJydcbiAgdmFyIHN0YXRlID0gRklFTERfU1RBUlRcbiAgdmFyIGZpZWxkU3RhcnQgPSAwXG4gIHZhciB2YWx1ZVN0YXJ0ID0gMFxuXG4gIHZhciBvblN0YXJ0ID0gZnVuY3Rpb24gKHN0YXR1cywgc3RhdHVzVGV4dCwgY29udGVudFR5cGUsIGhlYWRlcnMsIGNhbmNlbCkge1xuICAgIGlmIChjdXJyZW50U3RhdGUgPT09IENPTk5FQ1RJTkcpIHtcbiAgICAgIGNhbmNlbEZ1bmN0aW9uID0gY2FuY2VsXG4gICAgICBpZiAoXG4gICAgICAgIHN0YXR1cyA9PT0gMjAwICYmXG4gICAgICAgIGNvbnRlbnRUeXBlICE9IHVuZGVmaW5lZCAmJlxuICAgICAgICBjb250ZW50VHlwZVJlZ0V4cC50ZXN0KGNvbnRlbnRUeXBlKVxuICAgICAgKSB7XG4gICAgICAgIGN1cnJlbnRTdGF0ZSA9IE9QRU5cbiAgICAgICAgd2FzQWN0aXZpdHkgPSB0cnVlXG4gICAgICAgIHJldHJ5ID0gaW5pdGlhbFJldHJ5XG4gICAgICAgIGVzLnJlYWR5U3RhdGUgPSBPUEVOXG4gICAgICAgIHZhciBldmVudCA9IG5ldyBDb25uZWN0aW9uRXZlbnQoJ29wZW4nLCB7XG4gICAgICAgICAgc3RhdHVzOiBzdGF0dXMsXG4gICAgICAgICAgc3RhdHVzVGV4dDogc3RhdHVzVGV4dCxcbiAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzLFxuICAgICAgICB9KVxuICAgICAgICBlcy5kaXNwYXRjaEV2ZW50KGV2ZW50KVxuICAgICAgICBmaXJlKGVzLCBlcy5vbm9wZW4sIGV2ZW50KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIG1lc3NhZ2UgPSAnJ1xuICAgICAgICBpZiAoc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICBpZiAoc3RhdHVzVGV4dCkge1xuICAgICAgICAgICAgc3RhdHVzVGV4dCA9IHN0YXR1c1RleHQucmVwbGFjZSgvXFxzKy9nLCAnICcpXG4gICAgICAgICAgfVxuICAgICAgICAgIG1lc3NhZ2UgPVxuICAgICAgICAgICAgXCJFdmVudFNvdXJjZSdzIHJlc3BvbnNlIGhhcyBhIHN0YXR1cyBcIiArXG4gICAgICAgICAgICBzdGF0dXMgK1xuICAgICAgICAgICAgJyAnICtcbiAgICAgICAgICAgIHN0YXR1c1RleHQgK1xuICAgICAgICAgICAgJyB0aGF0IGlzIG5vdCAyMDAuIEFib3J0aW5nIHRoZSBjb25uZWN0aW9uLidcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBtZXNzYWdlID1cbiAgICAgICAgICAgIFwiRXZlbnRTb3VyY2UncyByZXNwb25zZSBoYXMgYSBDb250ZW50LVR5cGUgc3BlY2lmeWluZyBhbiB1bnN1cHBvcnRlZCB0eXBlOiBcIiArXG4gICAgICAgICAgICAoY29udGVudFR5cGUgPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgID8gJy0nXG4gICAgICAgICAgICAgIDogY29udGVudFR5cGUucmVwbGFjZSgvXFxzKy9nLCAnICcpKSArXG4gICAgICAgICAgICAnLiBBYm9ydGluZyB0aGUgY29ubmVjdGlvbi4nXG4gICAgICAgIH1cbiAgICAgICAgdGhyb3dFcnJvcihuZXcgRXJyb3IobWVzc2FnZSkpXG4gICAgICAgIGNsb3NlKClcbiAgICAgICAgdmFyIGV2ZW50ID0gbmV3IENvbm5lY3Rpb25FdmVudCgnZXJyb3InLCB7XG4gICAgICAgICAgc3RhdHVzOiBzdGF0dXMsXG4gICAgICAgICAgc3RhdHVzVGV4dDogc3RhdHVzVGV4dCxcbiAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzLFxuICAgICAgICB9KVxuICAgICAgICBlcy5kaXNwYXRjaEV2ZW50KGV2ZW50KVxuICAgICAgICBmaXJlKGVzLCBlcy5vbmVycm9yLCBldmVudClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB2YXIgb25Qcm9ncmVzcyA9IGZ1bmN0aW9uICh0ZXh0Q2h1bmspIHtcbiAgICBpZiAoY3VycmVudFN0YXRlID09PSBPUEVOKSB7XG4gICAgICB2YXIgbiA9IC0xXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRleHRDaHVuay5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgICB2YXIgYyA9IHRleHRDaHVuay5jaGFyQ29kZUF0KGkpXG4gICAgICAgIGlmIChjID09PSAnXFxuJy5jaGFyQ29kZUF0KDApIHx8IGMgPT09ICdcXHInLmNoYXJDb2RlQXQoMCkpIHtcbiAgICAgICAgICBuID0gaVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICB2YXIgY2h1bmsgPSAobiAhPT0gLTEgPyB0ZXh0QnVmZmVyIDogJycpICsgdGV4dENodW5rLnNsaWNlKDAsIG4gKyAxKVxuICAgICAgdGV4dEJ1ZmZlciA9IChuID09PSAtMSA/IHRleHRCdWZmZXIgOiAnJykgKyB0ZXh0Q2h1bmsuc2xpY2UobiArIDEpXG4gICAgICBpZiAoY2h1bmsgIT09ICcnKSB7XG4gICAgICAgIHdhc0FjdGl2aXR5ID0gdHJ1ZVxuICAgICAgfVxuICAgICAgZm9yICh2YXIgcG9zaXRpb24gPSAwOyBwb3NpdGlvbiA8IGNodW5rLmxlbmd0aDsgcG9zaXRpb24gKz0gMSkge1xuICAgICAgICB2YXIgYyA9IGNodW5rLmNoYXJDb2RlQXQocG9zaXRpb24pXG4gICAgICAgIGlmIChzdGF0ZSA9PT0gQUZURVJfQ1IgJiYgYyA9PT0gJ1xcbicuY2hhckNvZGVBdCgwKSkge1xuICAgICAgICAgIHN0YXRlID0gRklFTERfU1RBUlRcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoc3RhdGUgPT09IEFGVEVSX0NSKSB7XG4gICAgICAgICAgICBzdGF0ZSA9IEZJRUxEX1NUQVJUXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChjID09PSAnXFxyJy5jaGFyQ29kZUF0KDApIHx8IGMgPT09ICdcXG4nLmNoYXJDb2RlQXQoMCkpIHtcbiAgICAgICAgICAgIGlmIChzdGF0ZSAhPT0gRklFTERfU1RBUlQpIHtcbiAgICAgICAgICAgICAgaWYgKHN0YXRlID09PSBGSUVMRCkge1xuICAgICAgICAgICAgICAgIHZhbHVlU3RhcnQgPSBwb3NpdGlvbiArIDFcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB2YXIgZmllbGQgPSBjaHVuay5zbGljZShmaWVsZFN0YXJ0LCB2YWx1ZVN0YXJ0IC0gMSlcbiAgICAgICAgICAgICAgdmFyIHZhbHVlID0gY2h1bmsuc2xpY2UoXG4gICAgICAgICAgICAgICAgdmFsdWVTdGFydCArXG4gICAgICAgICAgICAgICAgICAodmFsdWVTdGFydCA8IHBvc2l0aW9uICYmXG4gICAgICAgICAgICAgICAgICBjaHVuay5jaGFyQ29kZUF0KHZhbHVlU3RhcnQpID09PSAnICcuY2hhckNvZGVBdCgwKVxuICAgICAgICAgICAgICAgICAgICA/IDFcbiAgICAgICAgICAgICAgICAgICAgOiAwKSxcbiAgICAgICAgICAgICAgICBwb3NpdGlvblxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIGlmIChmaWVsZCA9PT0gJ2RhdGEnKSB7XG4gICAgICAgICAgICAgICAgZGF0YUJ1ZmZlciArPSAnXFxuJ1xuICAgICAgICAgICAgICAgIGRhdGFCdWZmZXIgKz0gdmFsdWVcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChmaWVsZCA9PT0gJ2lkJykge1xuICAgICAgICAgICAgICAgIGxhc3RFdmVudElkQnVmZmVyID0gdmFsdWVcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChmaWVsZCA9PT0gJ2V2ZW50Jykge1xuICAgICAgICAgICAgICAgIGV2ZW50VHlwZUJ1ZmZlciA9IHZhbHVlXG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoZmllbGQgPT09ICdyZXRyeScpIHtcbiAgICAgICAgICAgICAgICBpbml0aWFsUmV0cnkgPSBwYXJzZUR1cmF0aW9uKHZhbHVlLCBpbml0aWFsUmV0cnkpXG4gICAgICAgICAgICAgICAgcmV0cnkgPSBpbml0aWFsUmV0cnlcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChmaWVsZCA9PT0gJ2hlYXJ0YmVhdFRpbWVvdXQnKSB7XG4gICAgICAgICAgICAgICAgaGVhcnRiZWF0VGltZW91dCA9IHBhcnNlRHVyYXRpb24odmFsdWUsIGhlYXJ0YmVhdFRpbWVvdXQpXG4gICAgICAgICAgICAgICAgaWYgKHRpbWVvdXQgIT09IDApIHtcbiAgICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KVxuICAgICAgICAgICAgICAgICAgdGltZW91dCA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBvblRpbWVvdXQoKVxuICAgICAgICAgICAgICAgICAgfSwgaGVhcnRiZWF0VGltZW91dClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzdGF0ZSA9PT0gRklFTERfU1RBUlQpIHtcbiAgICAgICAgICAgICAgaWYgKGRhdGFCdWZmZXIgIT09ICcnKSB7XG4gICAgICAgICAgICAgICAgbGFzdEV2ZW50SWQgPSBsYXN0RXZlbnRJZEJ1ZmZlclxuICAgICAgICAgICAgICAgIGlmIChldmVudFR5cGVCdWZmZXIgPT09ICcnKSB7XG4gICAgICAgICAgICAgICAgICBldmVudFR5cGVCdWZmZXIgPSAnbWVzc2FnZSdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdmFyIGV2ZW50ID0gbmV3IE1lc3NhZ2VFdmVudChldmVudFR5cGVCdWZmZXIsIHtcbiAgICAgICAgICAgICAgICAgIGRhdGE6IGRhdGFCdWZmZXIuc2xpY2UoMSksXG4gICAgICAgICAgICAgICAgICBsYXN0RXZlbnRJZDogbGFzdEV2ZW50SWRCdWZmZXIsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICBlcy5kaXNwYXRjaEV2ZW50KGV2ZW50KVxuICAgICAgICAgICAgICAgIGlmIChldmVudFR5cGVCdWZmZXIgPT09ICdtZXNzYWdlJykge1xuICAgICAgICAgICAgICAgICAgZmlyZShlcywgZXMub25tZXNzYWdlLCBldmVudClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRTdGF0ZSA9PT0gQ0xPU0VEKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgZGF0YUJ1ZmZlciA9ICcnXG4gICAgICAgICAgICAgIGV2ZW50VHlwZUJ1ZmZlciA9ICcnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdGF0ZSA9IGMgPT09ICdcXHInLmNoYXJDb2RlQXQoMCkgPyBBRlRFUl9DUiA6IEZJRUxEX1NUQVJUXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChzdGF0ZSA9PT0gRklFTERfU1RBUlQpIHtcbiAgICAgICAgICAgICAgZmllbGRTdGFydCA9IHBvc2l0aW9uXG4gICAgICAgICAgICAgIHN0YXRlID0gRklFTERcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzdGF0ZSA9PT0gRklFTEQpIHtcbiAgICAgICAgICAgICAgaWYgKGMgPT09ICc6Jy5jaGFyQ29kZUF0KDApKSB7XG4gICAgICAgICAgICAgICAgdmFsdWVTdGFydCA9IHBvc2l0aW9uICsgMVxuICAgICAgICAgICAgICAgIHN0YXRlID0gVkFMVUVfU1RBUlRcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChzdGF0ZSA9PT0gVkFMVUVfU1RBUlQpIHtcbiAgICAgICAgICAgICAgc3RhdGUgPSBWQUxVRVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHZhciBvbkZpbmlzaCA9IGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoY3VycmVudFN0YXRlID09PSBPUEVOIHx8IGN1cnJlbnRTdGF0ZSA9PT0gQ09OTkVDVElORykge1xuICAgICAgY3VycmVudFN0YXRlID0gV0FJVElOR1xuICAgICAgaWYgKHRpbWVvdXQgIT09IDApIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpXG4gICAgICAgIHRpbWVvdXQgPSAwXG4gICAgICB9XG4gICAgICB0aW1lb3V0ID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgIG9uVGltZW91dCgpXG4gICAgICB9LCByZXRyeSlcbiAgICAgIHJldHJ5ID0gY2xhbXBEdXJhdGlvbihNYXRoLm1pbihpbml0aWFsUmV0cnkgKiAxNiwgcmV0cnkgKiAyKSlcblxuICAgICAgZXMucmVhZHlTdGF0ZSA9IENPTk5FQ1RJTkdcbiAgICAgIHZhciBldmVudCA9IG5ldyBFdmVudCgnZXJyb3InKVxuICAgICAgZXMuZGlzcGF0Y2hFdmVudChldmVudClcbiAgICAgIGZpcmUoZXMsIGVzLm9uZXJyb3IsIGV2ZW50KVxuICAgIH1cbiAgfVxuXG4gIHZhciBjbG9zZSA9IGZ1bmN0aW9uICgpIHtcbiAgICBjdXJyZW50U3RhdGUgPSBDTE9TRURcbiAgICBpZiAoY2FuY2VsRnVuY3Rpb24gIT0gdW5kZWZpbmVkKSB7XG4gICAgICBjYW5jZWxGdW5jdGlvbigpXG4gICAgICBjYW5jZWxGdW5jdGlvbiA9IHVuZGVmaW5lZFxuICAgIH1cbiAgICBpZiAodGltZW91dCAhPT0gMCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpXG4gICAgICB0aW1lb3V0ID0gMFxuICAgIH1cbiAgICBlcy5yZWFkeVN0YXRlID0gQ0xPU0VEXG4gIH1cblxuICB2YXIgb25UaW1lb3V0ID0gZnVuY3Rpb24gKCkge1xuICAgIHRpbWVvdXQgPSAwXG5cbiAgICBpZiAoY3VycmVudFN0YXRlICE9PSBXQUlUSU5HKSB7XG4gICAgICBpZiAoIXdhc0FjdGl2aXR5ICYmIGNhbmNlbEZ1bmN0aW9uICE9IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvd0Vycm9yKFxuICAgICAgICAgIG5ldyBFcnJvcihcbiAgICAgICAgICAgICdObyBhY3Rpdml0eSB3aXRoaW4gJyArXG4gICAgICAgICAgICAgIGhlYXJ0YmVhdFRpbWVvdXQgK1xuICAgICAgICAgICAgICAnIG1pbGxpc2Vjb25kcy4gUmVjb25uZWN0aW5nLidcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgICAgY2FuY2VsRnVuY3Rpb24oKVxuICAgICAgICBjYW5jZWxGdW5jdGlvbiA9IHVuZGVmaW5lZFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgd2FzQWN0aXZpdHkgPSBmYWxzZVxuICAgICAgICB0aW1lb3V0ID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgb25UaW1lb3V0KClcbiAgICAgICAgfSwgaGVhcnRiZWF0VGltZW91dClcbiAgICAgIH1cbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHdhc0FjdGl2aXR5ID0gZmFsc2VcbiAgICB0aW1lb3V0ID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICBvblRpbWVvdXQoKVxuICAgIH0sIGhlYXJ0YmVhdFRpbWVvdXQpXG5cbiAgICBjdXJyZW50U3RhdGUgPSBDT05ORUNUSU5HXG4gICAgZGF0YUJ1ZmZlciA9ICcnXG4gICAgZXZlbnRUeXBlQnVmZmVyID0gJydcbiAgICBsYXN0RXZlbnRJZEJ1ZmZlciA9IGxhc3RFdmVudElkXG4gICAgdGV4dEJ1ZmZlciA9ICcnXG4gICAgZmllbGRTdGFydCA9IDBcbiAgICB2YWx1ZVN0YXJ0ID0gMFxuICAgIHN0YXRlID0gRklFTERfU1RBUlRcblxuICAgIC8vIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTQyODkxNlxuICAgIC8vIFJlcXVlc3QgaGVhZGVyIGZpZWxkIExhc3QtRXZlbnQtSUQgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctSGVhZGVycy5cbiAgICB2YXIgcmVxdWVzdFVSTCA9IHVybFxuICAgIGlmICh1cmwuc2xpY2UoMCwgNSkgIT09ICdkYXRhOicgJiYgdXJsLnNsaWNlKDAsIDUpICE9PSAnYmxvYjonKSB7XG4gICAgICBpZiAobGFzdEV2ZW50SWQgIT09ICcnKSB7XG4gICAgICAgIHJlcXVlc3RVUkwgKz1cbiAgICAgICAgICAodXJsLmluZGV4T2YoJz8nKSA9PT0gLTEgPyAnPycgOiAnJicpICtcbiAgICAgICAgICAnbGFzdEV2ZW50SWQ9JyArXG4gICAgICAgICAgZW5jb2RlVVJJQ29tcG9uZW50KGxhc3RFdmVudElkKVxuICAgICAgfVxuICAgIH1cbiAgICB2YXIgcmVxdWVzdEhlYWRlcnMgPSB7fVxuICAgIHJlcXVlc3RIZWFkZXJzWydBY2NlcHQnXSA9ICd0ZXh0L2V2ZW50LXN0cmVhbSdcbiAgICBpZiAoaGVhZGVycyAhPSB1bmRlZmluZWQpIHtcbiAgICAgIGZvciAodmFyIG5hbWUgaW4gaGVhZGVycykge1xuICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGhlYWRlcnMsIG5hbWUpKSB7XG4gICAgICAgICAgcmVxdWVzdEhlYWRlcnNbbmFtZV0gPSBoZWFkZXJzW25hbWVdXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIHRyYW5zcG9ydC5vcGVuKFxuICAgICAgICB4aHIsXG4gICAgICAgIG9uU3RhcnQsXG4gICAgICAgIG9uUHJvZ3Jlc3MsXG4gICAgICAgIG9uRmluaXNoLFxuICAgICAgICByZXF1ZXN0VVJMLFxuICAgICAgICB3aXRoQ3JlZGVudGlhbHMsXG4gICAgICAgIHJlcXVlc3RIZWFkZXJzXG4gICAgICApXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNsb3NlKClcbiAgICAgIHRocm93IGVycm9yXG4gICAgfVxuICB9XG5cbiAgZXMudXJsID0gdXJsXG4gIGVzLnJlYWR5U3RhdGUgPSBDT05ORUNUSU5HXG4gIGVzLndpdGhDcmVkZW50aWFscyA9IHdpdGhDcmVkZW50aWFsc1xuICBlcy5fY2xvc2UgPSBjbG9zZVxuXG4gIG9uVGltZW91dCgpXG59XG5cbkV2ZW50U291cmNlUG9seWZpbGwucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShFdmVudFRhcmdldC5wcm90b3R5cGUpXG5FdmVudFNvdXJjZVBvbHlmaWxsLnByb3RvdHlwZS5DT05ORUNUSU5HID0gQ09OTkVDVElOR1xuRXZlbnRTb3VyY2VQb2x5ZmlsbC5wcm90b3R5cGUuT1BFTiA9IE9QRU5cbkV2ZW50U291cmNlUG9seWZpbGwucHJvdG90eXBlLkNMT1NFRCA9IENMT1NFRFxuRXZlbnRTb3VyY2VQb2x5ZmlsbC5wcm90b3R5cGUuY2xvc2UgPSBmdW5jdGlvbiAoKSB7XG4gIHRoaXMuX2Nsb3NlKClcbn1cblxuRXZlbnRTb3VyY2VQb2x5ZmlsbC5DT05ORUNUSU5HID0gQ09OTkVDVElOR1xuRXZlbnRTb3VyY2VQb2x5ZmlsbC5PUEVOID0gT1BFTlxuRXZlbnRTb3VyY2VQb2x5ZmlsbC5DTE9TRUQgPSBDTE9TRURcbkV2ZW50U291cmNlUG9seWZpbGwucHJvdG90eXBlLndpdGhDcmVkZW50aWFscyA9IHVuZGVmaW5lZFxuXG5leHBvcnQgZGVmYXVsdCBFdmVudFNvdXJjZVBvbHlmaWxsXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/event-source-polyfill.js\n"); /***/ }), @@ -101,7 +68,40 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nexports.__esModule = tru /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nexports.__esModule = true;\nexports.closePing = closePing;\nexports.setupPing = setupPing;\nexports.currentPage = void 0;\n\nvar _unfetch = _interopRequireDefault(__webpack_require__(/*! next/dist/build/polyfills/unfetch */ \"./node_modules/next/dist/build/polyfills/unfetch.js\"));\n\nvar _eventsource = __webpack_require__(/*! ./error-overlay/eventsource */ \"./node_modules/next/dist/client/dev/error-overlay/eventsource.js\");\n/* global location */\n\n\nvar evtSource;\nvar currentPage;\nexports.currentPage = currentPage;\n\nfunction closePing() {\n if (evtSource) evtSource.close();\n evtSource = null;\n}\n\nfunction setupPing(assetPrefix, pathnameFn, retry) {\n var pathname = pathnameFn(); // Make sure to only create new EventSource request if page has changed\n\n if (pathname === currentPage && !retry) return;\n exports.currentPage = currentPage = pathname; // close current EventSource connection\n\n closePing();\n var url = \"\".concat(assetPrefix, \"/_next/webpack-hmr?page=\").concat(currentPage);\n evtSource = (0, _eventsource.getEventSourceWrapper)({\n path: url,\n timeout: 5000,\n ondemand: 1\n });\n evtSource.addMessageListener(function (event) {\n if (event.data.indexOf('{') === -1) return;\n\n try {\n var payload = JSON.parse(event.data);\n\n if (payload.invalid) {\n // Payload can be invalid even if the page does not exist.\n // So, we need to make sure it exists before reloading.\n (0, _unfetch[\"default\"])(location.href, {\n credentials: 'same-origin'\n }).then(function (pageRes) {\n if (pageRes.status === 200) {\n location.reload();\n }\n });\n }\n } catch (err) {\n console.error('on-demand-entries failed to parse response', err);\n }\n });\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.i);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uLy4uL2NsaWVudC9kZXYvb24tZGVtYW5kLWVudHJpZXMtdXRpbHMuanM/OWZhZSJdLCJuYW1lcyI6WyJldnRTb3VyY2UiLCJwYXRobmFtZSIsInBhdGhuYW1lRm4iLCJjbG9zZVBpbmciLCJ1cmwiLCJhc3NldFByZWZpeCIsInBhdGgiLCJ0aW1lb3V0Iiwib25kZW1hbmQiLCJldmVudCIsInBheWxvYWQiLCJKU09OIiwibG9jYXRpb24iLCJjcmVkZW50aWFscyIsInBhZ2VSZXMiLCJjb25zb2xlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFFQTs7QUFDQTtBQUhBOzs7QUFLQTtBQUNPOzs7QUFFQSxxQkFBcUI7QUFDMUIsaUJBQWVBLFNBQVMsQ0FBVEE7QUFDZkEsV0FBUyxHQUFUQTtBQUdLOztBQUFBLG1EQUFtRDtBQUN4RCxNQUFNQyxRQUFRLEdBQUdDLFVBQWpCLEdBRHdELENBR3hEOztBQUNBLE1BQUlELFFBQVEsS0FBUkEsZUFBNEIsQ0FBaEMsT0FBd0M7QUFDeEMsbUNBQVcsR0FBWCxTQUx3RCxDQU14RDs7QUFDQUUsV0FBUztBQUVULE1BQU1DLEdBQUcsYUFBTUMsV0FBTixxQ0FBVCxXQUFTLENBQVQ7QUFDQUwsV0FBUyxHQUFHLHdDQUFzQjtBQUFFTSxRQUFJLEVBQU47QUFBYUMsV0FBTyxFQUFwQjtBQUE0QkMsWUFBUSxFQUF0RVI7QUFBa0MsR0FBdEIsQ0FBWkE7QUFFQUEsV0FBUyxDQUFUQSxtQkFBOEJTLGVBQUQsRUFBVztBQUN0QyxRQUFJQSxLQUFLLENBQUxBLHNCQUE0QixDQUFoQyxHQUFvQzs7QUFDcEMsUUFBSTtBQUNGLFVBQU1DLE9BQU8sR0FBR0MsSUFBSSxDQUFKQSxNQUFXRixLQUFLLENBQWhDLElBQWdCRSxDQUFoQjs7QUFDQSxVQUFJRCxPQUFPLENBQVgsU0FBcUI7QUFDbkI7QUFDQTtBQUNBLGlDQUFNRSxRQUFRLENBQWQsTUFBcUI7QUFDbkJDLHFCQUFXLEVBRGI7QUFBcUIsU0FBckIsT0FFU0MsaUJBQUQsRUFBYTtBQUNuQixjQUFJQSxPQUFPLENBQVBBLFdBQUosS0FBNEI7QUFDMUJGLG9CQUFRLENBQVJBO0FBRUg7QUFORDtBQVFIO0FBQUMsS0FiRixDQWFFLFlBQVk7QUFDWkcsYUFBTyxDQUFQQTtBQUVIO0FBbEJEZjtBQW1CRCIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2Rldi9vbi1kZW1hbmQtZW50cmllcy11dGlscy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGdsb2JhbCBsb2NhdGlvbiAqL1xuXG5pbXBvcnQgZmV0Y2ggZnJvbSAnbmV4dC9kaXN0L2J1aWxkL3BvbHlmaWxscy91bmZldGNoJ1xuaW1wb3J0IHsgZ2V0RXZlbnRTb3VyY2VXcmFwcGVyIH0gZnJvbSAnLi9lcnJvci1vdmVybGF5L2V2ZW50c291cmNlJ1xuXG5sZXQgZXZ0U291cmNlXG5leHBvcnQgbGV0IGN1cnJlbnRQYWdlXG5cbmV4cG9ydCBmdW5jdGlvbiBjbG9zZVBpbmcoKSB7XG4gIGlmIChldnRTb3VyY2UpIGV2dFNvdXJjZS5jbG9zZSgpXG4gIGV2dFNvdXJjZSA9IG51bGxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldHVwUGluZyhhc3NldFByZWZpeCwgcGF0aG5hbWVGbiwgcmV0cnkpIHtcbiAgY29uc3QgcGF0aG5hbWUgPSBwYXRobmFtZUZuKClcblxuICAvLyBNYWtlIHN1cmUgdG8gb25seSBjcmVhdGUgbmV3IEV2ZW50U291cmNlIHJlcXVlc3QgaWYgcGFnZSBoYXMgY2hhbmdlZFxuICBpZiAocGF0aG5hbWUgPT09IGN1cnJlbnRQYWdlICYmICFyZXRyeSkgcmV0dXJuXG4gIGN1cnJlbnRQYWdlID0gcGF0aG5hbWVcbiAgLy8gY2xvc2UgY3VycmVudCBFdmVudFNvdXJjZSBjb25uZWN0aW9uXG4gIGNsb3NlUGluZygpXG5cbiAgY29uc3QgdXJsID0gYCR7YXNzZXRQcmVmaXh9L19uZXh0L3dlYnBhY2staG1yP3BhZ2U9JHtjdXJyZW50UGFnZX1gXG4gIGV2dFNvdXJjZSA9IGdldEV2ZW50U291cmNlV3JhcHBlcih7IHBhdGg6IHVybCwgdGltZW91dDogNTAwMCwgb25kZW1hbmQ6IDEgfSlcblxuICBldnRTb3VyY2UuYWRkTWVzc2FnZUxpc3RlbmVyKChldmVudCkgPT4ge1xuICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoJ3snKSA9PT0gLTEpIHJldHVyblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBwYXlsb2FkID0gSlNPTi5wYXJzZShldmVudC5kYXRhKVxuICAgICAgaWYgKHBheWxvYWQuaW52YWxpZCkge1xuICAgICAgICAvLyBQYXlsb2FkIGNhbiBiZSBpbnZhbGlkIGV2ZW4gaWYgdGhlIHBhZ2UgZG9lcyBub3QgZXhpc3QuXG4gICAgICAgIC8vIFNvLCB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSBpdCBleGlzdHMgYmVmb3JlIHJlbG9hZGluZy5cbiAgICAgICAgZmV0Y2gobG9jYXRpb24uaHJlZiwge1xuICAgICAgICAgIGNyZWRlbnRpYWxzOiAnc2FtZS1vcmlnaW4nLFxuICAgICAgICB9KS50aGVuKChwYWdlUmVzKSA9PiB7XG4gICAgICAgICAgaWYgKHBhZ2VSZXMuc3RhdHVzID09PSAyMDApIHtcbiAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcignb24tZGVtYW5kLWVudHJpZXMgZmFpbGVkIHRvIHBhcnNlIHJlc3BvbnNlJywgZXJyKVxuICAgIH1cbiAgfSlcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/on-demand-entries-utils.js\n"); +eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/next/node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nexports.__esModule = true;\nexports.closePing = closePing;\nexports.setupPing = setupPing;\nexports.currentPage = void 0;\n\nvar _unfetch = _interopRequireDefault(__webpack_require__(/*! next/dist/build/polyfills/unfetch */ \"./node_modules/next/dist/build/polyfills/unfetch.js\"));\n\nvar _eventsource = __webpack_require__(/*! ./error-overlay/eventsource */ \"./node_modules/next/dist/client/dev/error-overlay/eventsource.js\");\n/* global location */\n\n\nvar evtSource;\nvar currentPage;\nexports.currentPage = currentPage;\n\nfunction closePing() {\n if (evtSource) evtSource.close();\n evtSource = null;\n}\n\nfunction setupPing(assetPrefix, pathnameFn, retry) {\n var pathname = pathnameFn(); // Make sure to only create new EventSource request if page has changed\n\n if (pathname === currentPage && !retry) return;\n exports.currentPage = currentPage = pathname; // close current EventSource connection\n\n closePing();\n var url = \"\".concat(assetPrefix, \"/_next/webpack-hmr?page=\").concat(currentPage);\n evtSource = (0, _eventsource.getEventSourceWrapper)({\n path: url,\n timeout: 5000,\n ondemand: 1\n });\n evtSource.addMessageListener(function (event) {\n if (event.data.indexOf('{') === -1) return;\n\n try {\n var payload = JSON.parse(event.data);\n\n if (payload.invalid) {\n // Payload can be invalid even if the page does not exist.\n // So, we need to make sure it exists before reloading.\n (0, _unfetch[\"default\"])(location.href, {\n credentials: 'same-origin'\n }).then(function (pageRes) {\n if (pageRes.status === 200) {\n location.reload();\n }\n });\n }\n } catch (err) {\n console.error('on-demand-entries failed to parse response', err);\n }\n });\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.i);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uLy4uL2NsaWVudC9kZXYvb24tZGVtYW5kLWVudHJpZXMtdXRpbHMuanM/OWZhZSJdLCJuYW1lcyI6WyJldnRTb3VyY2UiLCJwYXRobmFtZSIsInBhdGhuYW1lRm4iLCJjbG9zZVBpbmciLCJ1cmwiLCJhc3NldFByZWZpeCIsInBhdGgiLCJ0aW1lb3V0Iiwib25kZW1hbmQiLCJldmVudCIsInBheWxvYWQiLCJKU09OIiwibG9jYXRpb24iLCJjcmVkZW50aWFscyIsInBhZ2VSZXMiLCJjb25zb2xlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFFQTs7QUFDQTtBQUhBOzs7QUFLQTtBQUNPOzs7QUFFQSxxQkFBcUI7QUFDMUIsaUJBQWVBLFNBQVMsQ0FBVEE7QUFDZkEsV0FBUyxHQUFUQTtBQUdLOztBQUFBLG1EQUFtRDtBQUN4RCxNQUFNQyxRQUFRLEdBQUdDLFVBQWpCLEdBRHdELENBR3hEOztBQUNBLE1BQUlELFFBQVEsS0FBUkEsZUFBNEIsQ0FBaEMsT0FBd0M7QUFDeEMsbUNBQVcsR0FBWCxTQUx3RCxDQU14RDs7QUFDQUUsV0FBUztBQUVULE1BQU1DLEdBQUcsYUFBTUMsV0FBTixxQ0FBVCxXQUFTLENBQVQ7QUFDQUwsV0FBUyxHQUFHLHdDQUFzQjtBQUFFTSxRQUFJLEVBQU47QUFBYUMsV0FBTyxFQUFwQjtBQUE0QkMsWUFBUSxFQUF0RVI7QUFBa0MsR0FBdEIsQ0FBWkE7QUFFQUEsV0FBUyxDQUFUQSxtQkFBOEJTLGVBQUQsRUFBVztBQUN0QyxRQUFJQSxLQUFLLENBQUxBLHNCQUE0QixDQUFoQyxHQUFvQzs7QUFDcEMsUUFBSTtBQUNGLFVBQU1DLE9BQU8sR0FBR0MsSUFBSSxDQUFKQSxNQUFXRixLQUFLLENBQWhDLElBQWdCRSxDQUFoQjs7QUFDQSxVQUFJRCxPQUFPLENBQVgsU0FBcUI7QUFDbkI7QUFDQTtBQUNBLGlDQUFNRSxRQUFRLENBQWQsTUFBcUI7QUFDbkJDLHFCQUFXLEVBRGI7QUFBcUIsU0FBckIsT0FFU0MsaUJBQUQsRUFBYTtBQUNuQixjQUFJQSxPQUFPLENBQVBBLFdBQUosS0FBNEI7QUFDMUJGLG9CQUFRLENBQVJBO0FBRUg7QUFORDtBQVFIO0FBQUMsS0FiRixDQWFFLFlBQVk7QUFDWkcsYUFBTyxDQUFQQTtBQUVIO0FBbEJEZjtBQW1CRCIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2Rldi9vbi1kZW1hbmQtZW50cmllcy11dGlscy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGdsb2JhbCBsb2NhdGlvbiAqL1xuXG5pbXBvcnQgZmV0Y2ggZnJvbSAnbmV4dC9kaXN0L2J1aWxkL3BvbHlmaWxscy91bmZldGNoJ1xuaW1wb3J0IHsgZ2V0RXZlbnRTb3VyY2VXcmFwcGVyIH0gZnJvbSAnLi9lcnJvci1vdmVybGF5L2V2ZW50c291cmNlJ1xuXG5sZXQgZXZ0U291cmNlXG5leHBvcnQgbGV0IGN1cnJlbnRQYWdlXG5cbmV4cG9ydCBmdW5jdGlvbiBjbG9zZVBpbmcoKSB7XG4gIGlmIChldnRTb3VyY2UpIGV2dFNvdXJjZS5jbG9zZSgpXG4gIGV2dFNvdXJjZSA9IG51bGxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldHVwUGluZyhhc3NldFByZWZpeCwgcGF0aG5hbWVGbiwgcmV0cnkpIHtcbiAgY29uc3QgcGF0aG5hbWUgPSBwYXRobmFtZUZuKClcblxuICAvLyBNYWtlIHN1cmUgdG8gb25seSBjcmVhdGUgbmV3IEV2ZW50U291cmNlIHJlcXVlc3QgaWYgcGFnZSBoYXMgY2hhbmdlZFxuICBpZiAocGF0aG5hbWUgPT09IGN1cnJlbnRQYWdlICYmICFyZXRyeSkgcmV0dXJuXG4gIGN1cnJlbnRQYWdlID0gcGF0aG5hbWVcbiAgLy8gY2xvc2UgY3VycmVudCBFdmVudFNvdXJjZSBjb25uZWN0aW9uXG4gIGNsb3NlUGluZygpXG5cbiAgY29uc3QgdXJsID0gYCR7YXNzZXRQcmVmaXh9L19uZXh0L3dlYnBhY2staG1yP3BhZ2U9JHtjdXJyZW50UGFnZX1gXG4gIGV2dFNvdXJjZSA9IGdldEV2ZW50U291cmNlV3JhcHBlcih7IHBhdGg6IHVybCwgdGltZW91dDogNTAwMCwgb25kZW1hbmQ6IDEgfSlcblxuICBldnRTb3VyY2UuYWRkTWVzc2FnZUxpc3RlbmVyKChldmVudCkgPT4ge1xuICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoJ3snKSA9PT0gLTEpIHJldHVyblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBwYXlsb2FkID0gSlNPTi5wYXJzZShldmVudC5kYXRhKVxuICAgICAgaWYgKHBheWxvYWQuaW52YWxpZCkge1xuICAgICAgICAvLyBQYXlsb2FkIGNhbiBiZSBpbnZhbGlkIGV2ZW4gaWYgdGhlIHBhZ2UgZG9lcyBub3QgZXhpc3QuXG4gICAgICAgIC8vIFNvLCB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSBpdCBleGlzdHMgYmVmb3JlIHJlbG9hZGluZy5cbiAgICAgICAgZmV0Y2gobG9jYXRpb24uaHJlZiwge1xuICAgICAgICAgIGNyZWRlbnRpYWxzOiAnc2FtZS1vcmlnaW4nLFxuICAgICAgICB9KS50aGVuKChwYWdlUmVzKSA9PiB7XG4gICAgICAgICAgaWYgKHBhZ2VSZXMuc3RhdHVzID09PSAyMDApIHtcbiAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcignb24tZGVtYW5kLWVudHJpZXMgZmFpbGVkIHRvIHBhcnNlIHJlc3BvbnNlJywgZXJyKVxuICAgIH1cbiAgfSlcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/on-demand-entries-utils.js\n"); + +/***/ }), + +/***/ "./node_modules/next/node_modules/@babel/runtime/helpers/asyncToGenerator.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/next/node_modules/@babel/runtime/helpers/asyncToGenerator.js ***! + \***********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvYXN5bmNUb0dlbmVyYXRvci5qcz9hOTU0Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL25leHQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvYXN5bmNUb0dlbmVyYXRvci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGFzeW5jR2VuZXJhdG9yU3RlcChnZW4sIHJlc29sdmUsIHJlamVjdCwgX25leHQsIF90aHJvdywga2V5LCBhcmcpIHtcbiAgdHJ5IHtcbiAgICB2YXIgaW5mbyA9IGdlbltrZXldKGFyZyk7XG4gICAgdmFyIHZhbHVlID0gaW5mby52YWx1ZTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZWplY3QoZXJyb3IpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChpbmZvLmRvbmUpIHtcbiAgICByZXNvbHZlKHZhbHVlKTtcbiAgfSBlbHNlIHtcbiAgICBQcm9taXNlLnJlc29sdmUodmFsdWUpLnRoZW4oX25leHQsIF90aHJvdyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gX2FzeW5jVG9HZW5lcmF0b3IoZm4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXMsXG4gICAgICAgIGFyZ3MgPSBhcmd1bWVudHM7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgIHZhciBnZW4gPSBmbi5hcHBseShzZWxmLCBhcmdzKTtcblxuICAgICAgZnVuY3Rpb24gX25leHQodmFsdWUpIHtcbiAgICAgICAgYXN5bmNHZW5lcmF0b3JTdGVwKGdlbiwgcmVzb2x2ZSwgcmVqZWN0LCBfbmV4dCwgX3Rocm93LCBcIm5leHRcIiwgdmFsdWUpO1xuICAgICAgfVxuXG4gICAgICBmdW5jdGlvbiBfdGhyb3coZXJyKSB7XG4gICAgICAgIGFzeW5jR2VuZXJhdG9yU3RlcChnZW4sIHJlc29sdmUsIHJlamVjdCwgX25leHQsIF90aHJvdywgXCJ0aHJvd1wiLCBlcnIpO1xuICAgICAgfVxuXG4gICAgICBfbmV4dCh1bmRlZmluZWQpO1xuICAgIH0pO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9hc3luY1RvR2VuZXJhdG9yOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/node_modules/@babel/runtime/helpers/asyncToGenerator.js\n"); + +/***/ }), + +/***/ "./node_modules/next/node_modules/@babel/runtime/helpers/interopRequireDefault.js": +/*!****************************************************************************************!*\ + !*** ./node_modules/next/node_modules/@babel/runtime/helpers/interopRequireDefault.js ***! + \****************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW50ZXJvcFJlcXVpcmVEZWZhdWx0LmpzPzAyYmEiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9uZXh0L25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2ludGVyb3BSZXF1aXJlRGVmYXVsdC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7XG4gIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgXCJkZWZhdWx0XCI6IG9ialxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQ7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/node_modules/@babel/runtime/helpers/interopRequireDefault.js\n"); + +/***/ }), + +/***/ "./node_modules/next/node_modules/@babel/runtime/regenerator/index.js": +/*!****************************************************************************!*\ + !*** ./node_modules/next/node_modules/@babel/runtime/regenerator/index.js ***! + \****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("module.exports = __webpack_require__(/*! regenerator-runtime */ \"./node_modules/regenerator-runtime/runtime.js\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL3JlZ2VuZXJhdG9yL2luZGV4LmpzP2JjOTIiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCLG1CQUFPLENBQUMsMEVBQXFCIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL25leHQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL3JlZ2VuZXJhdG9yL2luZGV4LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwicmVnZW5lcmF0b3ItcnVudGltZVwiKTtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/node_modules/@babel/runtime/regenerator/index.js\n"); /***/ }), @@ -112,7 +112,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nvar _interopRequireDefau /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { -eval("/**\n * Copyright (c) 2014-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\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n true ? module.exports : undefined\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlZ2VuZXJhdG9yLXJ1bnRpbWUvcnVudGltZS5qcz85NmNmIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZCxLQUFLO0FBQ0wsY0FBYztBQUNkO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseURBQXlEO0FBQ3pEO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBLFdBQVc7QUFDWDs7QUFFQTtBQUNBO0FBQ0Esd0NBQXdDLFdBQVc7QUFDbkQ7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDJCQUEyQjtBQUMzQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUEsU0FBUztBQUNUO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxvQ0FBb0MsY0FBYztBQUNsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNB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QTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9yZWdlbmVyYXRvci1ydW50aW1lL3J1bnRpbWUuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxNC1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbnZhciBydW50aW1lID0gKGZ1bmN0aW9uIChleHBvcnRzKSB7XG4gIFwidXNlIHN0cmljdFwiO1xuXG4gIHZhciBPcCA9IE9iamVjdC5wcm90b3R5cGU7XG4gIHZhciBoYXNPd24gPSBPcC5oYXNPd25Qcm9wZXJ0eTtcbiAgdmFyIHVuZGVmaW5lZDsgLy8gTW9yZSBjb21wcmVzc2libGUgdGhhbiB2b2lkIDAuXG4gIHZhciAkU3ltYm9sID0gdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiID8gU3ltYm9sIDoge307XG4gIHZhciBpdGVyYXRvclN5bWJvbCA9ICRTeW1ib2wuaXRlcmF0b3IgfHwgXCJAQGl0ZXJhdG9yXCI7XG4gIHZhciBhc3luY0l0ZXJhdG9yU3ltYm9sID0gJFN5bWJvbC5hc3luY0l0ZXJhdG9yIHx8IFwiQEBhc3luY0l0ZXJhdG9yXCI7XG4gIHZhciB0b1N0cmluZ1RhZ1N5bWJvbCA9ICRTeW1ib2wudG9TdHJpbmdUYWcgfHwgXCJAQHRvU3RyaW5nVGFnXCI7XG5cbiAgZnVuY3Rpb24gd3JhcChpbm5lckZuLCBvdXRlckZuLCBzZWxmLCB0cnlMb2NzTGlzdCkge1xuICAgIC8vIElmIG91dGVyRm4gcHJvdmlkZWQgYW5kIG91dGVyRm4ucHJvdG90eXBlIGlzIGEgR2VuZXJhdG9yLCB0aGVuIG91dGVyRm4ucHJvdG90eXBlIGluc3RhbmNlb2YgR2VuZXJhdG9yLlxuICAgIHZhciBwcm90b0dlbmVyYXRvciA9IG91dGVyRm4gJiYgb3V0ZXJGbi5wcm90b3R5cGUgaW5zdGFuY2VvZiBHZW5lcmF0b3IgPyBvdXRlckZuIDogR2VuZXJhdG9yO1xuICAgIHZhciBnZW5lcmF0b3IgPSBPYmplY3QuY3JlYXRlKHByb3RvR2VuZXJhdG9yLnByb3RvdHlwZSk7XG4gICAgdmFyIGNvbnRleHQgPSBuZXcgQ29udGV4dCh0cnlMb2NzTGlzdCB8fCBbXSk7XG5cbiAgICAvLyBUaGUgLl9pbnZva2UgbWV0aG9kIHVuaWZpZXMgdGhlIGltcGxlbWVudGF0aW9ucyBvZiB0aGUgLm5leHQsXG4gICAgLy8gLnRocm93LCBhbmQgLnJldHVybiBtZXRob2RzLlxuICAgIGdlbmVyYXRvci5faW52b2tlID0gbWFrZUludm9rZU1ldGhvZChpbm5lckZuLCBzZWxmLCBjb250ZXh0KTtcblxuICAgIHJldHVybiBnZW5lcmF0b3I7XG4gIH1cbiAgZXhwb3J0cy53cmFwID0gd3JhcDtcblxuICAvLyBUcnkvY2F0Y2ggaGVscGVyIHRvIG1pbmltaXplIGRlb3B0aW1pemF0aW9ucy4gUmV0dXJucyBhIGNvbXBsZXRpb25cbiAgLy8gcmVjb3JkIGxpa2UgY29udGV4dC50cnlFbnRyaWVzW2ldLmNvbXBsZXRpb24uIFRoaXMgaW50ZXJmYWNlIGNvdWxkXG4gIC8vIGhhdmUgYmVlbiAoYW5kIHdhcyBwcmV2aW91c2x5KSBkZXNpZ25lZCB0byB0YWtlIGEgY2xvc3VyZSB0byBiZVxuICAvLyBpbnZva2VkIHdpdGhvdXQgYXJndW1lbnRzLCBidXQgaW4gYWxsIHRoZSBjYXNlcyB3ZSBjYXJlIGFib3V0IHdlXG4gIC8vIGFscmVhZHkgaGF2ZSBhbiBleGlzdGluZyBtZXRob2Qgd2Ugd2FudCB0byBjYWxsLCBzbyB0aGVyZSdzIG5vIG5lZWRcbiAgLy8gdG8gY3JlYXRlIGEgbmV3IGZ1bmN0aW9uIG9iamVjdC4gV2UgY2FuIGV2ZW4gZ2V0IGF3YXkgd2l0aCBhc3N1bWluZ1xuICAvLyB0aGUgbWV0aG9kIHRha2VzIGV4YWN0bHkgb25lIGFyZ3VtZW50LCBzaW5jZSB0aGF0IGhhcHBlbnMgdG8gYmUgdHJ1ZVxuICAvLyBpbiBldmVyeSBjYXNlLCBzbyB3ZSBkb24ndCBoYXZlIHRvIHRvdWNoIHRoZSBhcmd1bWVudHMgb2JqZWN0LiBUaGVcbiAgLy8gb25seSBhZGRpdGlvbmFsIGFsbG9jYXRpb24gcmVxdWlyZWQgaXMgdGhlIGNvbXBsZXRpb24gcmVjb3JkLCB3aGljaFxuICAvLyBoYXMgYSBzdGFibGUgc2hhcGUgYW5kIHNvIGhvcGVmdWxseSBzaG91bGQgYmUgY2hlYXAgdG8gYWxsb2NhdGUuXG4gIGZ1bmN0aW9uIHRyeUNhdGNoKGZuLCBvYmosIGFyZykge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4geyB0eXBlOiBcIm5vcm1hbFwiLCBhcmc6IGZuLmNhbGwob2JqLCBhcmcpIH07XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICByZXR1cm4geyB0eXBlOiBcInRocm93XCIsIGFyZzogZXJyIH07XG4gICAgfVxuICB9XG5cbiAgdmFyIEdlblN0YXRlU3VzcGVuZGVkU3RhcnQgPSBcInN1c3BlbmRlZFN0YXJ0XCI7XG4gIHZhciBHZW5TdGF0ZVN1c3BlbmRlZFlpZWxkID0gXCJzdXNwZW5kZWRZaWVsZFwiO1xuICB2YXIgR2VuU3RhdGVFeGVjdXRpbmcgPSBcImV4ZWN1dGluZ1wiO1xuICB2YXIgR2VuU3RhdGVDb21wbGV0ZWQgPSBcImNvbXBsZXRlZFwiO1xuXG4gIC8vIFJldHVybmluZyB0aGlzIG9iamVjdCBmcm9tIHRoZSBpbm5lckZuIGhhcyB0aGUgc2FtZSBlZmZlY3QgYXNcbiAgLy8gYnJlYWtpbmcgb3V0IG9mIHRoZSBkaXNwYXRjaCBzd2l0Y2ggc3RhdGVtZW50LlxuICB2YXIgQ29udGludWVTZW50aW5lbCA9IHt9O1xuXG4gIC8vIER1bW15IGNvbnN0cnVjdG9yIGZ1bmN0aW9ucyB0aGF0IHdlIHVzZSBhcyB0aGUgLmNvbnN0cnVjdG9yIGFuZFxuICAvLyAuY29uc3RydWN0b3IucHJvdG90eXBlIHByb3BlcnRpZXMgZm9yIGZ1bmN0aW9ucyB0aGF0IHJldHVybiBHZW5lcmF0b3JcbiAgLy8gb2JqZWN0cy4gRm9yIGZ1bGwgc3BlYyBjb21wbGlhbmNlLCB5b3UgbWF5IHdpc2ggdG8gY29uZmlndXJlIHlvdXJcbiAgLy8gbWluaWZpZXIgbm90IHRvIG1hbmdsZSB0aGUgbmFtZXMgb2YgdGhlc2UgdHdvIGZ1bmN0aW9ucy5cbiAgZnVuY3Rpb24gR2VuZXJhdG9yKCkge31cbiAgZnVuY3Rpb24gR2VuZXJhdG9yRnVuY3Rpb24oKSB7fVxuICBmdW5jdGlvbiBHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSgpIHt9XG5cbiAgLy8gVGhpcyBpcyBhIHBvbHlmaWxsIGZvciAlSXRlcmF0b3JQcm90b3R5cGUlIGZvciBlbnZpcm9ubWVudHMgdGhhdFxuICAvLyBkb24ndCBuYXRpdmVseSBzdXBwb3J0IGl0LlxuICB2YXIgSXRlcmF0b3JQcm90b3R5cGUgPSB7fTtcbiAgSXRlcmF0b3JQcm90b3R5cGVbaXRlcmF0b3JTeW1ib2xdID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIHZhciBnZXRQcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZjtcbiAgdmFyIE5hdGl2ZUl0ZXJhdG9yUHJvdG90eXBlID0gZ2V0UHJvdG8gJiYgZ2V0UHJvdG8oZ2V0UHJvdG8odmFsdWVzKFtdKSkpO1xuICBpZiAoTmF0aXZlSXRlcmF0b3JQcm90b3R5cGUgJiZcbiAgICAgIE5hdGl2ZUl0ZXJhdG9yUHJvdG90eXBlICE9PSBPcCAmJlxuICAgICAgaGFzT3duLmNhbGwoTmF0aXZlSXRlcmF0b3JQcm90b3R5cGUsIGl0ZXJhdG9yU3ltYm9sKSkge1xuICAgIC8vIFRoaXMgZW52aXJvbm1lbnQgaGFzIGEgbmF0aXZlICVJdGVyYXRvclByb3RvdHlwZSU7IHVzZSBpdCBpbnN0ZWFkXG4gICAgLy8gb2YgdGhlIHBvbHlmaWxsLlxuICAgIEl0ZXJhdG9yUHJvdG90eXBlID0gTmF0aXZlSXRlcmF0b3JQcm90b3R5cGU7XG4gIH1cblxuICB2YXIgR3AgPSBHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZS5wcm90b3R5cGUgPVxuICAgIEdlbmVyYXRvci5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKEl0ZXJhdG9yUHJvdG90eXBlKTtcbiAgR2VuZXJhdG9yRnVuY3Rpb24ucHJvdG90eXBlID0gR3AuY29uc3RydWN0b3IgPSBHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZTtcbiAgR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUuY29uc3RydWN0b3IgPSBHZW5lcmF0b3JGdW5jdGlvbjtcbiAgR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGVbdG9TdHJpbmdUYWdTeW1ib2xdID1cbiAgICBHZW5lcmF0b3JGdW5jdGlvbi5kaXNwbGF5TmFtZSA9IFwiR2VuZXJhdG9yRnVuY3Rpb25cIjtcblxuICAvLyBIZWxwZXIgZm9yIGRlZmluaW5nIHRoZSAubmV4dCwgLnRocm93LCBhbmQgLnJldHVybiBtZXRob2RzIG9mIHRoZVxuICAvLyBJdGVyYXRvciBpbnRlcmZhY2UgaW4gdGVybXMgb2YgYSBzaW5nbGUgLl9pbnZva2UgbWV0aG9kLlxuICBmdW5jdGlvbiBkZWZpbmVJdGVyYXRvck1ldGhvZHMocHJvdG90eXBlKSB7XG4gICAgW1wibmV4dFwiLCBcInRocm93XCIsIFwicmV0dXJuXCJdLmZvckVhY2goZnVuY3Rpb24obWV0aG9kKSB7XG4gICAgICBwcm90b3R5cGVbbWV0aG9kXSA9IGZ1bmN0aW9uKGFyZykge1xuICAgICAgICByZXR1cm4gdGhpcy5faW52b2tlKG1ldGhvZCwgYXJnKTtcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBleHBvcnRzLmlzR2VuZXJhdG9yRnVuY3Rpb24gPSBmdW5jdGlvbihnZW5GdW4pIHtcbiAgICB2YXIgY3RvciA9IHR5cGVvZiBnZW5GdW4gPT09IFwiZnVuY3Rpb25cIiAmJiBnZW5GdW4uY29uc3RydWN0b3I7XG4gICAgcmV0dXJuIGN0b3JcbiAgICAgID8gY3RvciA9PT0gR2VuZXJhdG9yRnVuY3Rpb24gfHxcbiAgICAgICAgLy8gRm9yIHRoZSBuYXRpdmUgR2VuZXJhdG9yRnVuY3Rpb24gY29uc3RydWN0b3IsIHRoZSBiZXN0IHdlIGNhblxuICAgICAgICAvLyBkbyBpcyB0byBjaGVjayBpdHMgLm5hbWUgcHJvcGVydHkuXG4gICAgICAgIChjdG9yLmRpc3BsYXlOYW1lIHx8IGN0b3IubmFtZSkgPT09IFwiR2VuZXJhdG9yRnVuY3Rpb25cIlxuICAgICAgOiBmYWxzZTtcbiAgfTtcblxuICBleHBvcnRzLm1hcmsgPSBmdW5jdGlvbihnZW5GdW4pIHtcbiAgICBpZiAoT2JqZWN0LnNldFByb3RvdHlwZU9mKSB7XG4gICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YoZ2VuRnVuLCBHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGdlbkZ1bi5fX3Byb3RvX18gPSBHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZTtcbiAgICAgIGlmICghKHRvU3RyaW5nVGFnU3ltYm9sIGluIGdlbkZ1bikpIHtcbiAgICAgICAgZ2VuRnVuW3RvU3RyaW5nVGFnU3ltYm9sXSA9IFwiR2VuZXJhdG9yRnVuY3Rpb25cIjtcbiAgICAgIH1cbiAgICB9XG4gICAgZ2VuRnVuLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoR3ApO1xuICAgIHJldHVybiBnZW5GdW47XG4gIH07XG5cbiAgLy8gV2l0aGluIHRoZSBib2R5IG9mIGFueSBhc3luYyBmdW5jdGlvbiwgYGF3YWl0IHhgIGlzIHRyYW5zZm9ybWVkIHRvXG4gIC8vIGB5aWVsZCByZWdlbmVyYXRvclJ1bnRpbWUuYXdyYXAoeClgLCBzbyB0aGF0IHRoZSBydW50aW1lIGNhbiB0ZXN0XG4gIC8vIGBoYXNPd24uY2FsbCh2YWx1ZSwgXCJfX2F3YWl0XCIpYCB0byBkZXRlcm1pbmUgaWYgdGhlIHlpZWxkZWQgdmFsdWUgaXNcbiAgLy8gbWVhbnQgdG8gYmUgYXdhaXRlZC5cbiAgZXhwb3J0cy5hd3JhcCA9IGZ1bmN0aW9uKGFyZykge1xuICAgIHJldHVybiB7IF9fYXdhaXQ6IGFyZyB9O1xuICB9O1xuXG4gIGZ1bmN0aW9uIEFzeW5jSXRlcmF0b3IoZ2VuZXJhdG9yLCBQcm9taXNlSW1wbCkge1xuICAgIGZ1bmN0aW9uIGludm9rZShtZXRob2QsIGFyZywgcmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICB2YXIgcmVjb3JkID0gdHJ5Q2F0Y2goZ2VuZXJhdG9yW21ldGhvZF0sIGdlbmVyYXRvciwgYXJnKTtcbiAgICAgIGlmIChyZWNvcmQudHlwZSA9PT0gXCJ0aHJvd1wiKSB7XG4gICAgICAgIHJlamVjdChyZWNvcmQuYXJnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciByZXN1bHQgPSByZWNvcmQuYXJnO1xuICAgICAgICB2YXIgdmFsdWUgPSByZXN1bHQudmFsdWU7XG4gICAgICAgIGlmICh2YWx1ZSAmJlxuICAgICAgICAgICAgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmXG4gICAgICAgICAgICBoYXNPd24uY2FsbCh2YWx1ZSwgXCJfX2F3YWl0XCIpKSB7XG4gICAgICAgICAgcmV0dXJuIFByb21pc2VJbXBsLnJlc29sdmUodmFsdWUuX19hd2FpdCkudGhlbihmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgICAgICAgaW52b2tlKFwibmV4dFwiLCB2YWx1ZSwgcmVzb2x2ZSwgcmVqZWN0KTtcbiAgICAgICAgICB9LCBmdW5jdGlvbihlcnIpIHtcbiAgICAgICAgICAgIGludm9rZShcInRocm93XCIsIGVyciwgcmVzb2x2ZSwgcmVqZWN0KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBQcm9taXNlSW1wbC5yZXNvbHZlKHZhbHVlKS50aGVuKGZ1bmN0aW9uKHVud3JhcHBlZCkge1xuICAgICAgICAgIC8vIFdoZW4gYSB5aWVsZGVkIFByb21pc2UgaXMgcmVzb2x2ZWQsIGl0cyBmaW5hbCB2YWx1ZSBiZWNvbWVzXG4gICAgICAgICAgLy8gdGhlIC52YWx1ZSBvZiB0aGUgUHJvbWlzZTx7dmFsdWUsZG9uZX0+IHJlc3VsdCBmb3IgdGhlXG4gICAgICAgICAgLy8gY3VycmVudCBpdGVyYXRpb24uXG4gICAgICAgICAgcmVzdWx0LnZhbHVlID0gdW53cmFwcGVkO1xuICAgICAgICAgIHJlc29sdmUocmVzdWx0KTtcbiAgICAgICAgfSwgZnVuY3Rpb24oZXJyb3IpIHtcbiAgICAgICAgICAvLyBJZiBhIHJlamVjdGVkIFByb21pc2Ugd2FzIHlpZWxkZWQsIHRocm93IHRoZSByZWplY3Rpb24gYmFja1xuICAgICAgICAgIC8vIGludG8gdGhlIGFzeW5jIGdlbmVyYXRvciBmdW5jdGlvbiBzbyBpdCBjYW4gYmUgaGFuZGxlZCB0aGVyZS5cbiAgICAgICAgICByZXR1cm4gaW52b2tlKFwidGhyb3dcIiwgZXJyb3IsIHJlc29sdmUsIHJlamVjdCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBwcmV2aW91c1Byb21pc2U7XG5cbiAgICBmdW5jdGlvbiBlbnF1ZXVlKG1ldGhvZCwgYXJnKSB7XG4gICAgICBmdW5jdGlvbiBjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZygpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlSW1wbChmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgICBpbnZva2UobWV0aG9kLCBhcmcsIHJlc29sdmUsIHJlamVjdCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcHJldmlvdXNQcm9taXNlID1cbiAgICAgICAgLy8gSWYgZW5xdWV1ZSBoYXMgYmVlbiBjYWxsZWQgYmVmb3JlLCB0aGVuIHdlIHdhbnQgdG8gd2FpdCB1bnRpbFxuICAgICAgICAvLyBhbGwgcHJldmlvdXMgUHJvbWlzZXMgaGF2ZSBiZWVuIHJlc29sdmVkIGJlZm9yZSBjYWxsaW5nIGludm9rZSxcbiAgICAgICAgLy8gc28gdGhhdCByZXN1bHRzIGFyZSBhbHdheXMgZGVsaXZlcmVkIGluIHRoZSBjb3JyZWN0IG9yZGVyLiBJZlxuICAgICAgICAvLyBlbnF1ZXVlIGhhcyBub3QgYmVlbiBjYWxsZWQgYmVmb3JlLCB0aGVuIGl0IGlzIGltcG9ydGFudCB0b1xuICAgICAgICAvLyBjYWxsIGludm9rZSBpbW1lZGlhdGVseSwgd2l0aG91dCB3YWl0aW5nIG9uIGEgY2FsbGJhY2sgdG8gZmlyZSxcbiAgICAgICAgLy8gc28gdGhhdCB0aGUgYXN5bmMgZ2VuZXJhdG9yIGZ1bmN0aW9uIGhhcyB0aGUgb3Bwb3J0dW5pdHkgdG8gZG9cbiAgICAgICAgLy8gYW55IG5lY2Vzc2FyeSBzZXR1cCBpbiBhIHByZWRpY3RhYmxlIHdheS4gVGhpcyBwcmVkaWN0YWJpbGl0eVxuICAgICAgICAvLyBpcyB3aHkgdGhlIFByb21pc2UgY29uc3RydWN0b3Igc3luY2hyb25vdXNseSBpbnZva2VzIGl0c1xuICAgICAgICAvLyBleGVjdXRvciBjYWxsYmFjaywgYW5kIHdoeSBhc3luYyBmdW5jdGlvbnMgc3luY2hyb25vdXNseVxuICAgICAgICAvLyBleGVjdXRlIGNvZGUgYmVmb3JlIHRoZSBmaXJzdCBhd2FpdC4gU2luY2Ugd2UgaW1wbGVtZW50IHNpbXBsZVxuICAgICAgICAvLyBhc3luYyBmdW5jdGlvbnMgaW4gdGVybXMgb2YgYXN5bmMgZ2VuZXJhdG9ycywgaXQgaXMgZXNwZWNpYWxseVxuICAgICAgICAvLyBpbXBvcnRhbnQgdG8gZ2V0IHRoaXMgcmlnaHQsIGV2ZW4gdGhvdWdoIGl0IHJlcXVpcmVzIGNhcmUuXG4gICAgICAgIHByZXZpb3VzUHJvbWlzZSA/IHByZXZpb3VzUHJvbWlzZS50aGVuKFxuICAgICAgICAgIGNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnLFxuICAgICAgICAgIC8vIEF2b2lkIHByb3BhZ2F0aW5nIGZhaWx1cmVzIHRvIFByb21pc2VzIHJldHVybmVkIGJ5IGxhdGVyXG4gICAgICAgICAgLy8gaW52b2NhdGlvbnMgb2YgdGhlIGl0ZXJhdG9yLlxuICAgICAgICAgIGNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnXG4gICAgICAgICkgOiBjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZygpO1xuICAgIH1cblxuICAgIC8vIERlZmluZSB0aGUgdW5pZmllZCBoZWxwZXIgbWV0aG9kIHRoYXQgaXMgdXNlZCB0byBpbXBsZW1lbnQgLm5leHQsXG4gICAgLy8gLnRocm93LCBhbmQgLnJldHVybiAoc2VlIGRlZmluZUl0ZXJhdG9yTWV0aG9kcykuXG4gICAgdGhpcy5faW52b2tlID0gZW5xdWV1ZTtcbiAgfVxuXG4gIGRlZmluZUl0ZXJhdG9yTWV0aG9kcyhBc3luY0l0ZXJhdG9yLnByb3RvdHlwZSk7XG4gIEFzeW5jSXRlcmF0b3IucHJvdG90eXBlW2FzeW5jSXRlcmF0b3JTeW1ib2xdID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzO1xuICB9O1xuICBleHBvcnRzLkFzeW5jSXRlcmF0b3IgPSBBc3luY0l0ZXJhdG9yO1xuXG4gIC8vIE5vdGUgdGhhdCBzaW1wbGUgYXN5bmMgZnVuY3Rpb25zIGFyZSBpbXBsZW1lbnRlZCBvbiB0b3Agb2ZcbiAgLy8gQXN5bmNJdGVyYXRvciBvYmplY3RzOyB0aGV5IGp1c3QgcmV0dXJuIGEgUHJvbWlzZSBmb3IgdGhlIHZhbHVlIG9mXG4gIC8vIHRoZSBmaW5hbCByZXN1bHQgcHJvZHVjZWQgYnkgdGhlIGl0ZXJhdG9yLlxuICBleHBvcnRzLmFzeW5jID0gZnVuY3Rpb24oaW5uZXJGbiwgb3V0ZXJGbiwgc2VsZiwgdHJ5TG9jc0xpc3QsIFByb21pc2VJbXBsKSB7XG4gICAgaWYgKFByb21pc2VJbXBsID09PSB2b2lkIDApIFByb21pc2VJbXBsID0gUHJvbWlzZTtcblxuICAgIHZhciBpdGVyID0gbmV3IEFzeW5jSXRlcmF0b3IoXG4gICAgICB3cmFwKGlubmVyRm4sIG91dGVyRm4sIHNlbGYsIHRyeUxvY3NMaXN0KSxcbiAgICAgIFByb21pc2VJbXBsXG4gICAgKTtcblxuICAgIHJldHVybiBleHBvcnRzLmlzR2VuZXJhdG9yRnVuY3Rpb24ob3V0ZXJGbilcbiAgICAgID8gaXRlciAvLyBJZiBvdXRlckZuIGlzIGEgZ2VuZXJhdG9yLCByZXR1cm4gdGhlIGZ1bGwgaXRlcmF0b3IuXG4gICAgICA6IGl0ZXIubmV4dCgpLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdC5kb25lID8gcmVzdWx0LnZhbHVlIDogaXRlci5uZXh0KCk7XG4gICAgICAgIH0pO1xuICB9O1xuXG4gIGZ1bmN0aW9uIG1ha2VJbnZva2VNZXRob2QoaW5uZXJGbiwgc2VsZiwgY29udGV4dCkge1xuICAgIHZhciBzdGF0ZSA9IEdlblN0YXRlU3VzcGVuZGVkU3RhcnQ7XG5cbiAgICByZXR1cm4gZnVuY3Rpb24gaW52b2tlKG1ldGhvZCwgYXJnKSB7XG4gICAgICBpZiAoc3RhdGUgPT09IEdlblN0YXRlRXhlY3V0aW5nKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmdcIik7XG4gICAgICB9XG5cbiAgICAgIGlmIChzdGF0ZSA9PT0gR2VuU3RhdGVDb21wbGV0ZWQpIHtcbiAgICAgICAgaWYgKG1ldGhvZCA9PT0gXCJ0aHJvd1wiKSB7XG4gICAgICAgICAgdGhyb3cgYXJnO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQmUgZm9yZ2l2aW5nLCBwZXIgMjUuMy4zLjMuMyBvZiB0aGUgc3BlYzpcbiAgICAgICAgLy8gaHR0cHM6Ly9wZW9wbGUubW96aWxsYS5vcmcvfmpvcmVuZG9yZmYvZXM2LWRyYWZ0Lmh0bWwjc2VjLWdlbmVyYXRvcnJlc3VtZVxuICAgICAgICByZXR1cm4gZG9uZVJlc3VsdCgpO1xuICAgICAgfVxuXG4gICAgICBjb250ZXh0Lm1ldGhvZCA9IG1ldGhvZDtcbiAgICAgIGNvbnRleHQuYXJnID0gYXJnO1xuXG4gICAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICB2YXIgZGVsZWdhdGUgPSBjb250ZXh0LmRlbGVnYXRlO1xuICAgICAgICBpZiAoZGVsZWdhdGUpIHtcbiAgICAgICAgICB2YXIgZGVsZWdhdGVSZXN1bHQgPSBtYXliZUludm9rZURlbGVnYXRlKGRlbGVnYXRlLCBjb250ZXh0KTtcbiAgICAgICAgICBpZiAoZGVsZWdhdGVSZXN1bHQpIHtcbiAgICAgICAgICAgIGlmIChkZWxlZ2F0ZVJlc3VsdCA9PT0gQ29udGludWVTZW50aW5lbCkgY29udGludWU7XG4gICAgICAgICAgICByZXR1cm4gZGVsZWdhdGVSZXN1bHQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvbnRleHQubWV0aG9kID09PSBcIm5leHRcIikge1xuICAgICAgICAgIC8vIFNldHRpbmcgY29udGV4dC5fc2VudCBmb3IgbGVnYWN5IHN1cHBvcnQgb2YgQmFiZWwnc1xuICAgICAgICAgIC8vIGZ1bmN0aW9uLnNlbnQgaW1wbGVtZW50YXRpb24uXG4gICAgICAgICAgY29udGV4dC5zZW50ID0gY29udGV4dC5fc2VudCA9IGNvbnRleHQuYXJnO1xuXG4gICAgICAgIH0gZWxzZSBpZiAoY29udGV4dC5tZXRob2QgPT09IFwidGhyb3dcIikge1xuICAgICAgICAgIGlmIChzdGF0ZSA9PT0gR2VuU3RhdGVTdXNwZW5kZWRTdGFydCkge1xuICAgICAgICAgICAgc3RhdGUgPSBHZW5TdGF0ZUNvbXBsZXRlZDtcbiAgICAgICAgICAgIHRocm93IGNvbnRleHQuYXJnO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnRleHQuZGlzcGF0Y2hFeGNlcHRpb24oY29udGV4dC5hcmcpO1xuXG4gICAgICAgIH0gZWxzZSBpZiAoY29udGV4dC5tZXRob2QgPT09IFwicmV0dXJuXCIpIHtcbiAgICAgICAgICBjb250ZXh0LmFicnVwdChcInJldHVyblwiLCBjb250ZXh0LmFyZyk7XG4gICAgICAgIH1cblxuICAgICAgICBzdGF0ZSA9IEdlblN0YXRlRXhlY3V0aW5nO1xuXG4gICAgICAgIHZhciByZWNvcmQgPSB0cnlDYXRjaChpbm5lckZuLCBzZWxmLCBjb250ZXh0KTtcbiAgICAgICAgaWYgKHJlY29yZC50eXBlID09PSBcIm5vcm1hbFwiKSB7XG4gICAgICAgICAgLy8gSWYgYW4gZXhjZXB0aW9uIGlzIHRocm93biBmcm9tIGlubmVyRm4sIHdlIGxlYXZlIHN0YXRlID09PVxuICAgICAgICAgIC8vIEdlblN0YXRlRXhlY3V0aW5nIGFuZCBsb29wIGJhY2sgZm9yIGFub3RoZXIgaW52b2NhdGlvbi5cbiAgICAgICAgICBzdGF0ZSA9IGNvbnRleHQuZG9uZVxuICAgICAgICAgICAgPyBHZW5TdGF0ZUNvbXBsZXRlZFxuICAgICAgICAgICAgOiBHZW5TdGF0ZVN1c3BlbmRlZFlpZWxkO1xuXG4gICAgICAgICAgaWYgKHJlY29yZC5hcmcgPT09IENvbnRpbnVlU2VudGluZWwpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB2YWx1ZTogcmVjb3JkLmFyZyxcbiAgICAgICAgICAgIGRvbmU6IGNvbnRleHQuZG9uZVxuICAgICAgICAgIH07XG5cbiAgICAgICAgfSBlbHNlIGlmIChyZWNvcmQudHlwZSA9PT0gXCJ0aHJvd1wiKSB7XG4gICAgICAgICAgc3RhdGUgPSBHZW5TdGF0ZUNvbXBsZXRlZDtcbiAgICAgICAgICAvLyBEaXNwYXRjaCB0aGUgZXhjZXB0aW9uIGJ5IGxvb3BpbmcgYmFjayBhcm91bmQgdG8gdGhlXG4gICAgICAgICAgLy8gY29udGV4dC5kaXNwYXRjaEV4Y2VwdGlvbihjb250ZXh0LmFyZykgY2FsbCBhYm92ZS5cbiAgICAgICAgICBjb250ZXh0Lm1ldGhvZCA9IFwidGhyb3dcIjtcbiAgICAgICAgICBjb250ZXh0LmFyZyA9IHJlY29yZC5hcmc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgLy8gQ2FsbCBkZWxlZ2F0ZS5pdGVyYXRvcltjb250ZXh0Lm1ldGhvZF0oY29udGV4dC5hcmcpIGFuZCBoYW5kbGUgdGhlXG4gIC8vIHJlc3VsdCwgZWl0aGVyIGJ5IHJldHVybmluZyBhIHsgdmFsdWUsIGRvbmUgfSByZXN1bHQgZnJvbSB0aGVcbiAgLy8gZGVsZWdhdGUgaXRlcmF0b3IsIG9yIGJ5IG1vZGlmeWluZyBjb250ZXh0Lm1ldGhvZCBhbmQgY29udGV4dC5hcmcsXG4gIC8vIHNldHRpbmcgY29udGV4dC5kZWxlZ2F0ZSB0byBudWxsLCBhbmQgcmV0dXJuaW5nIHRoZSBDb250aW51ZVNlbnRpbmVsLlxuICBmdW5jdGlvbiBtYXliZUludm9rZURlbGVnYXRlKGRlbGVnYXRlLCBjb250ZXh0KSB7XG4gICAgdmFyIG1ldGhvZCA9IGRlbGVnYXRlLml0ZXJhdG9yW2NvbnRleHQubWV0aG9kXTtcbiAgICBpZiAobWV0aG9kID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIEEgLnRocm93IG9yIC5yZXR1cm4gd2hlbiB0aGUgZGVsZWdhdGUgaXRlcmF0b3IgaGFzIG5vIC50aHJvd1xuICAgICAgLy8gbWV0aG9kIGFsd2F5cyB0ZXJtaW5hdGVzIHRoZSB5aWVsZCogbG9vcC5cbiAgICAgIGNvbnRleHQuZGVsZWdhdGUgPSBudWxsO1xuXG4gICAgICBpZiAoY29udGV4dC5tZXRob2QgPT09IFwidGhyb3dcIikge1xuICAgICAgICAvLyBOb3RlOiBbXCJyZXR1cm5cIl0gbXVzdCBiZSB1c2VkIGZvciBFUzMgcGFyc2luZyBjb21wYXRpYmlsaXR5LlxuICAgICAgICBpZiAoZGVsZWdhdGUuaXRlcmF0b3JbXCJyZXR1cm5cIl0pIHtcbiAgICAgICAgICAvLyBJZiB0aGUgZGVsZWdhdGUgaXRlcmF0b3IgaGFzIGEgcmV0dXJuIG1ldGhvZCwgZ2l2ZSBpdCBhXG4gICAgICAgICAgLy8gY2hhbmNlIHRvIGNsZWFuIHVwLlxuICAgICAgICAgIGNvbnRleHQubWV0aG9kID0gXCJyZXR1cm5cIjtcbiAgICAgICAgICBjb250ZXh0LmFyZyA9IHVuZGVmaW5lZDtcbiAgICAgICAgICBtYXliZUludm9rZURlbGVnYXRlKGRlbGVnYXRlLCBjb250ZXh0KTtcblxuICAgICAgICAgIGlmIChjb250ZXh0Lm1ldGhvZCA9PT0gXCJ0aHJvd1wiKSB7XG4gICAgICAgICAgICAvLyBJZiBtYXliZUludm9rZURlbGVnYXRlKGNvbnRleHQpIGNoYW5nZWQgY29udGV4dC5tZXRob2QgZnJvbVxuICAgICAgICAgICAgLy8gXCJyZXR1cm5cIiB0byBcInRocm93XCIsIGxldCB0aGF0IG92ZXJyaWRlIHRoZSBUeXBlRXJyb3IgYmVsb3cuXG4gICAgICAgICAgICByZXR1cm4gQ29udGludWVTZW50aW5lbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb250ZXh0Lm1ldGhvZCA9IFwidGhyb3dcIjtcbiAgICAgICAgY29udGV4dC5hcmcgPSBuZXcgVHlwZUVycm9yKFxuICAgICAgICAgIFwiVGhlIGl0ZXJhdG9yIGRvZXMgbm90IHByb3ZpZGUgYSAndGhyb3cnIG1ldGhvZFwiKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gICAgfVxuXG4gICAgdmFyIHJlY29yZCA9IHRyeUNhdGNoKG1ldGhvZCwgZGVsZWdhdGUuaXRlcmF0b3IsIGNvbnRleHQuYXJnKTtcblxuICAgIGlmIChyZWNvcmQudHlwZSA9PT0gXCJ0aHJvd1wiKSB7XG4gICAgICBjb250ZXh0Lm1ldGhvZCA9IFwidGhyb3dcIjtcbiAgICAgIGNvbnRleHQuYXJnID0gcmVjb3JkLmFyZztcbiAgICAgIGNvbnRleHQuZGVsZWdhdGUgPSBudWxsO1xuICAgICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gICAgfVxuXG4gICAgdmFyIGluZm8gPSByZWNvcmQuYXJnO1xuXG4gICAgaWYgKCEgaW5mbykge1xuICAgICAgY29udGV4dC5tZXRob2QgPSBcInRocm93XCI7XG4gICAgICBjb250ZXh0LmFyZyA9IG5ldyBUeXBlRXJyb3IoXCJpdGVyYXRvciByZXN1bHQgaXMgbm90IGFuIG9iamVjdFwiKTtcbiAgICAgIGNvbnRleHQuZGVsZWdhdGUgPSBudWxsO1xuICAgICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gICAgfVxuXG4gICAgaWYgKGluZm8uZG9uZSkge1xuICAgICAgLy8gQXNzaWduIHRoZSByZXN1bHQgb2YgdGhlIGZpbmlzaGVkIGRlbGVnYXRlIHRvIHRoZSB0ZW1wb3JhcnlcbiAgICAgIC8vIHZhcmlhYmxlIHNwZWNpZmllZCBieSBkZWxlZ2F0ZS5yZXN1bHROYW1lIChzZWUgZGVsZWdhdGVZaWVsZCkuXG4gICAgICBjb250ZXh0W2RlbGVnYXRlLnJlc3VsdE5hbWVdID0gaW5mby52YWx1ZTtcblxuICAgICAgLy8gUmVzdW1lIGV4ZWN1dGlvbiBhdCB0aGUgZGVzaXJlZCBsb2NhdGlvbiAoc2VlIGRlbGVnYXRlWWllbGQpLlxuICAgICAgY29udGV4dC5uZXh0ID0gZGVsZWdhdGUubmV4dExvYztcblxuICAgICAgLy8gSWYgY29udGV4dC5tZXRob2Qgd2FzIFwidGhyb3dcIiBidXQgdGhlIGRlbGVnYXRlIGhhbmRsZWQgdGhlXG4gICAgICAvLyBleGNlcHRpb24sIGxldCB0aGUgb3V0ZXIgZ2VuZXJhdG9yIHByb2NlZWQgbm9ybWFsbHkuIElmXG4gICAgICAvLyBjb250ZXh0Lm1ldGhvZCB3YXMgXCJuZXh0XCIsIGZvcmdldCBjb250ZXh0LmFyZyBzaW5jZSBpdCBoYXMgYmVlblxuICAgICAgLy8gXCJjb25zdW1lZFwiIGJ5IHRoZSBkZWxlZ2F0ZSBpdGVyYXRvci4gSWYgY29udGV4dC5tZXRob2Qgd2FzXG4gICAgICAvLyBcInJldHVyblwiLCBhbGxvdyB0aGUgb3JpZ2luYWwgLnJldHVybiBjYWxsIHRvIGNvbnRpbnVlIGluIHRoZVxuICAgICAgLy8gb3V0ZXIgZ2VuZXJhdG9yLlxuICAgICAgaWYgKGNvbnRleHQubWV0aG9kICE9PSBcInJldHVyblwiKSB7XG4gICAgICAgIGNvbnRleHQubWV0aG9kID0gXCJuZXh0XCI7XG4gICAgICAgIGNvbnRleHQuYXJnID0gdW5kZWZpbmVkO1xuICAgICAgfVxuXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFJlLXlpZWxkIHRoZSByZXN1bHQgcmV0dXJuZWQgYnkgdGhlIGRlbGVnYXRlIG1ldGhvZC5cbiAgICAgIHJldHVybiBpbmZvO1xuICAgIH1cblxuICAgIC8vIFRoZSBkZWxlZ2F0ZSBpdGVyYXRvciBpcyBmaW5pc2hlZCwgc28gZm9yZ2V0IGl0IGFuZCBjb250aW51ZSB3aXRoXG4gICAgLy8gdGhlIG91dGVyIGdlbmVyYXRvci5cbiAgICBjb250ZXh0LmRlbGVnYXRlID0gbnVsbDtcbiAgICByZXR1cm4gQ29udGludWVTZW50aW5lbDtcbiAgfVxuXG4gIC8vIERlZmluZSBHZW5lcmF0b3IucHJvdG90eXBlLntuZXh0LHRocm93LHJldHVybn0gaW4gdGVybXMgb2YgdGhlXG4gIC8vIHVuaWZpZWQgLl9pbnZva2UgaGVscGVyIG1ldGhvZC5cbiAgZGVmaW5lSXRlcmF0b3JNZXRob2RzKEdwKTtcblxuICBHcFt0b1N0cmluZ1RhZ1N5bWJvbF0gPSBcIkdlbmVyYXRvclwiO1xuXG4gIC8vIEEgR2VuZXJhdG9yIHNob3VsZCBhbHdheXMgcmV0dXJuIGl0c2VsZiBhcyB0aGUgaXRlcmF0b3Igb2JqZWN0IHdoZW4gdGhlXG4gIC8vIEBAaXRlcmF0b3IgZnVuY3Rpb24gaXMgY2FsbGVkIG9uIGl0LiBTb21lIGJyb3dzZXJzJyBpbXBsZW1lbnRhdGlvbnMgb2YgdGhlXG4gIC8vIGl0ZXJhdG9yIHByb3RvdHlwZSBjaGFpbiBpbmNvcnJlY3RseSBpbXBsZW1lbnQgdGhpcywgY2F1c2luZyB0aGUgR2VuZXJhdG9yXG4gIC8vIG9iamVjdCB0byBub3QgYmUgcmV0dXJuZWQgZnJvbSB0aGlzIGNhbGwuIFRoaXMgZW5zdXJlcyB0aGF0IGRvZXNuJ3QgaGFwcGVuLlxuICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlZ2VuZXJhdG9yL2lzc3Vlcy8yNzQgZm9yIG1vcmUgZGV0YWlscy5cbiAgR3BbaXRlcmF0b3JTeW1ib2xdID0gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgR3AudG9TdHJpbmcgPSBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gXCJbb2JqZWN0IEdlbmVyYXRvcl1cIjtcbiAgfTtcblxuICBmdW5jdGlvbiBwdXNoVHJ5RW50cnkobG9jcykge1xuICAgIHZhciBlbnRyeSA9IHsgdHJ5TG9jOiBsb2NzWzBdIH07XG5cbiAgICBpZiAoMSBpbiBsb2NzKSB7XG4gICAgICBlbnRyeS5jYXRjaExvYyA9IGxvY3NbMV07XG4gICAgfVxuXG4gICAgaWYgKDIgaW4gbG9jcykge1xuICAgICAgZW50cnkuZmluYWxseUxvYyA9IGxvY3NbMl07XG4gICAgICBlbnRyeS5hZnRlckxvYyA9IGxvY3NbM107XG4gICAgfVxuXG4gICAgdGhpcy50cnlFbnRyaWVzLnB1c2goZW50cnkpO1xuICB9XG5cbiAgZnVuY3Rpb24gcmVzZXRUcnlFbnRyeShlbnRyeSkge1xuICAgIHZhciByZWNvcmQgPSBlbnRyeS5jb21wbGV0aW9uIHx8IHt9O1xuICAgIHJlY29yZC50eXBlID0gXCJub3JtYWxcIjtcbiAgICBkZWxldGUgcmVjb3JkLmFyZztcbiAgICBlbnRyeS5jb21wbGV0aW9uID0gcmVjb3JkO1xuICB9XG5cbiAgZnVuY3Rpb24gQ29udGV4dCh0cnlMb2NzTGlzdCkge1xuICAgIC8vIFRoZSByb290IGVudHJ5IG9iamVjdCAoZWZmZWN0aXZlbHkgYSB0cnkgc3RhdGVtZW50IHdpdGhvdXQgYSBjYXRjaFxuICAgIC8vIG9yIGEgZmluYWxseSBibG9jaykgZ2l2ZXMgdXMgYSBwbGFjZSB0byBzdG9yZSB2YWx1ZXMgdGhyb3duIGZyb21cbiAgICAvLyBsb2NhdGlvbnMgd2hlcmUgdGhlcmUgaXMgbm8gZW5jbG9zaW5nIHRyeSBzdGF0ZW1lbnQuXG4gICAgdGhpcy50cnlFbnRyaWVzID0gW3sgdHJ5TG9jOiBcInJvb3RcIiB9XTtcbiAgICB0cnlMb2NzTGlzdC5mb3JFYWNoKHB1c2hUcnlFbnRyeSwgdGhpcyk7XG4gICAgdGhpcy5yZXNldCh0cnVlKTtcbiAgfVxuXG4gIGV4cG9ydHMua2V5cyA9IGZ1bmN0aW9uKG9iamVjdCkge1xuICAgIHZhciBrZXlzID0gW107XG4gICAgZm9yICh2YXIga2V5IGluIG9iamVjdCkge1xuICAgICAga2V5cy5wdXNoKGtleSk7XG4gICAgfVxuICAgIGtleXMucmV2ZXJzZSgpO1xuXG4gICAgLy8gUmF0aGVyIHRoYW4gcmV0dXJuaW5nIGFuIG9iamVjdCB3aXRoIGEgbmV4dCBtZXRob2QsIHdlIGtlZXBcbiAgICAvLyB0aGluZ3Mgc2ltcGxlIGFuZCByZXR1cm4gdGhlIG5leHQgZnVuY3Rpb24gaXRzZWxmLlxuICAgIHJldHVybiBmdW5jdGlvbiBuZXh0KCkge1xuICAgICAgd2hpbGUgKGtleXMubGVuZ3RoKSB7XG4gICAgICAgIHZhciBrZXkgPSBrZXlzLnBvcCgpO1xuICAgICAgICBpZiAoa2V5IGluIG9iamVjdCkge1xuICAgICAgICAgIG5leHQudmFsdWUgPSBrZXk7XG4gICAgICAgICAgbmV4dC5kb25lID0gZmFsc2U7XG4gICAgICAgICAgcmV0dXJuIG5leHQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gVG8gYXZvaWQgY3JlYXRpbmcgYW4gYWRkaXRpb25hbCBvYmplY3QsIHdlIGp1c3QgaGFuZyB0aGUgLnZhbHVlXG4gICAgICAvLyBhbmQgLmRvbmUgcHJvcGVydGllcyBvZmYgdGhlIG5leHQgZnVuY3Rpb24gb2JqZWN0IGl0c2VsZi4gVGhpc1xuICAgICAgLy8gYWxzbyBlbnN1cmVzIHRoYXQgdGhlIG1pbmlmaWVyIHdpbGwgbm90IGFub255bWl6ZSB0aGUgZnVuY3Rpb24uXG4gICAgICBuZXh0LmRvbmUgPSB0cnVlO1xuICAgICAgcmV0dXJuIG5leHQ7XG4gICAgfTtcbiAgfTtcblxuICBmdW5jdGlvbiB2YWx1ZXMoaXRlcmFibGUpIHtcbiAgICBpZiAoaXRlcmFibGUpIHtcbiAgICAgIHZhciBpdGVyYXRvck1ldGhvZCA9IGl0ZXJhYmxlW2l0ZXJhdG9yU3ltYm9sXTtcbiAgICAgIGlmIChpdGVyYXRvck1ldGhvZCkge1xuICAgICAgICByZXR1cm4gaXRlcmF0b3JNZXRob2QuY2FsbChpdGVyYWJsZSk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgaXRlcmFibGUubmV4dCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiBpdGVyYWJsZTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFpc05hTihpdGVyYWJsZS5sZW5ndGgpKSB7XG4gICAgICAgIHZhciBpID0gLTEsIG5leHQgPSBmdW5jdGlvbiBuZXh0KCkge1xuICAgICAgICAgIHdoaWxlICgrK2kgPCBpdGVyYWJsZS5sZW5ndGgpIHtcbiAgICAgICAgICAgIGlmIChoYXNPd24uY2FsbChpdGVyYWJsZSwgaSkpIHtcbiAgICAgICAgICAgICAgbmV4dC52YWx1ZSA9IGl0ZXJhYmxlW2ldO1xuICAgICAgICAgICAgICBuZXh0LmRvbmUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgcmV0dXJuIG5leHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbmV4dC52YWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICBuZXh0LmRvbmUgPSB0cnVlO1xuXG4gICAgICAgICAgcmV0dXJuIG5leHQ7XG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIG5leHQubmV4dCA9IG5leHQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmV0dXJuIGFuIGl0ZXJhdG9yIHdpdGggbm8gdmFsdWVzLlxuICAgIHJldHVybiB7IG5leHQ6IGRvbmVSZXN1bHQgfTtcbiAgfVxuICBleHBvcnRzLnZhbHVlcyA9IHZhbHVlcztcblxuICBmdW5jdGlvbiBkb25lUmVzdWx0KCkge1xuICAgIHJldHVybiB7IHZhbHVlOiB1bmRlZmluZWQsIGRvbmU6IHRydWUgfTtcbiAgfVxuXG4gIENvbnRleHQucHJvdG90eXBlID0ge1xuICAgIGNvbnN0cnVjdG9yOiBDb250ZXh0LFxuXG4gICAgcmVzZXQ6IGZ1bmN0aW9uKHNraXBUZW1wUmVzZXQpIHtcbiAgICAgIHRoaXMucHJldiA9IDA7XG4gICAgICB0aGlzLm5leHQgPSAwO1xuICAgICAgLy8gUmVzZXR0aW5nIGNvbnRleHQuX3NlbnQgZm9yIGxlZ2FjeSBzdXBwb3J0IG9mIEJhYmVsJ3NcbiAgICAgIC8vIGZ1bmN0aW9uLnNlbnQgaW1wbGVtZW50YXRpb24uXG4gICAgICB0aGlzLnNlbnQgPSB0aGlzLl9zZW50ID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5kb25lID0gZmFsc2U7XG4gICAgICB0aGlzLmRlbGVnYXRlID0gbnVsbDtcblxuICAgICAgdGhpcy5tZXRob2QgPSBcIm5leHRcIjtcbiAgICAgIHRoaXMuYXJnID0gdW5kZWZpbmVkO1xuXG4gICAgICB0aGlzLnRyeUVudHJpZXMuZm9yRWFjaChyZXNldFRyeUVudHJ5KTtcblxuICAgICAgaWYgKCFza2lwVGVtcFJlc2V0KSB7XG4gICAgICAgIGZvciAodmFyIG5hbWUgaW4gdGhpcykge1xuICAgICAgICAgIC8vIE5vdCBzdXJlIGFib3V0IHRoZSBvcHRpbWFsIG9yZGVyIG9mIHRoZXNlIGNvbmRpdGlvbnM6XG4gICAgICAgICAgaWYgKG5hbWUuY2hhckF0KDApID09PSBcInRcIiAmJlxuICAgICAgICAgICAgICBoYXNPd24uY2FsbCh0aGlzLCBuYW1lKSAmJlxuICAgICAgICAgICAgICAhaXNOYU4oK25hbWUuc2xpY2UoMSkpKSB7XG4gICAgICAgICAgICB0aGlzW25hbWVdID0gdW5kZWZpbmVkO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG5cbiAgICBzdG9wOiBmdW5jdGlvbigpIHtcbiAgICAgIHRoaXMuZG9uZSA9IHRydWU7XG5cbiAgICAgIHZhciByb290RW50cnkgPSB0aGlzLnRyeUVudHJpZXNbMF07XG4gICAgICB2YXIgcm9vdFJlY29yZCA9IHJvb3RFbnRyeS5jb21wbGV0aW9uO1xuICAgICAgaWYgKHJvb3RSZWNvcmQudHlwZSA9PT0gXCJ0aHJvd1wiKSB7XG4gICAgICAgIHRocm93IHJvb3RSZWNvcmQuYXJnO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5ydmFsO1xuICAgIH0sXG5cbiAgICBkaXNwYXRjaEV4Y2VwdGlvbjogZnVuY3Rpb24oZXhjZXB0aW9uKSB7XG4gICAgICBpZiAodGhpcy5kb25lKSB7XG4gICAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICAgIH1cblxuICAgICAgdmFyIGNvbnRleHQgPSB0aGlzO1xuICAgICAgZnVuY3Rpb24gaGFuZGxlKGxvYywgY2F1Z2h0KSB7XG4gICAgICAgIHJlY29yZC50eXBlID0gXCJ0aHJvd1wiO1xuICAgICAgICByZWNvcmQuYXJnID0gZXhjZXB0aW9uO1xuICAgICAgICBjb250ZXh0Lm5leHQgPSBsb2M7XG5cbiAgICAgICAgaWYgKGNhdWdodCkge1xuICAgICAgICAgIC8vIElmIHRoZSBkaXNwYXRjaGVkIGV4Y2VwdGlvbiB3YXMgY2F1Z2h0IGJ5IGEgY2F0Y2ggYmxvY2ssXG4gICAgICAgICAgLy8gdGhlbiBsZXQgdGhhdCBjYXRjaCBibG9jayBoYW5kbGUgdGhlIGV4Y2VwdGlvbiBub3JtYWxseS5cbiAgICAgICAgICBjb250ZXh0Lm1ldGhvZCA9IFwibmV4dFwiO1xuICAgICAgICAgIGNvbnRleHQuYXJnID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuICEhIGNhdWdodDtcbiAgICAgIH1cblxuICAgICAgZm9yICh2YXIgaSA9IHRoaXMudHJ5RW50cmllcy5sZW5ndGggLSAxOyBpID49IDA7IC0taSkge1xuICAgICAgICB2YXIgZW50cnkgPSB0aGlzLnRyeUVudHJpZXNbaV07XG4gICAgICAgIHZhciByZWNvcmQgPSBlbnRyeS5jb21wbGV0aW9uO1xuXG4gICAgICAgIGlmIChlbnRyeS50cnlMb2MgPT09IFwicm9vdFwiKSB7XG4gICAgICAgICAgLy8gRXhjZXB0aW9uIHRocm93biBvdXRzaWRlIG9mIGFueSB0cnkgYmxvY2sgdGhhdCBjb3VsZCBoYW5kbGVcbiAgICAgICAgICAvLyBpdCwgc28gc2V0IHRoZSBjb21wbGV0aW9uIHZhbHVlIG9mIHRoZSBlbnRpcmUgZnVuY3Rpb24gdG9cbiAgICAgICAgICAvLyB0aHJvdyB0aGUgZXhjZXB0aW9uLlxuICAgICAgICAgIHJldHVybiBoYW5kbGUoXCJlbmRcIik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZW50cnkudHJ5TG9jIDw9IHRoaXMucHJldikge1xuICAgICAgICAgIHZhciBoYXNDYXRjaCA9IGhhc093bi5jYWxsKGVudHJ5LCBcImNhdGNoTG9jXCIpO1xuICAgICAgICAgIHZhciBoYXNGaW5hbGx5ID0gaGFzT3duLmNhbGwoZW50cnksIFwiZmluYWxseUxvY1wiKTtcblxuICAgICAgICAgIGlmIChoYXNDYXRjaCAmJiBoYXNGaW5hbGx5KSB7XG4gICAgICAgICAgICBpZiAodGhpcy5wcmV2IDwgZW50cnkuY2F0Y2hMb2MpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGhhbmRsZShlbnRyeS5jYXRjaExvYywgdHJ1ZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMucHJldiA8IGVudHJ5LmZpbmFsbHlMb2MpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGhhbmRsZShlbnRyeS5maW5hbGx5TG9jKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgIH0gZWxzZSBpZiAoaGFzQ2F0Y2gpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnByZXYgPCBlbnRyeS5jYXRjaExvYykge1xuICAgICAgICAgICAgICByZXR1cm4gaGFuZGxlKGVudHJ5LmNhdGNoTG9jLCB0cnVlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgIH0gZWxzZSBpZiAoaGFzRmluYWxseSkge1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGVudHJ5LmZpbmFsbHlMb2MpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGhhbmRsZShlbnRyeS5maW5hbGx5TG9jKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJ0cnkgc3RhdGVtZW50IHdpdGhvdXQgY2F0Y2ggb3IgZmluYWxseVwiKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuXG4gICAgYWJydXB0OiBmdW5jdGlvbih0eXBlLCBhcmcpIHtcbiAgICAgIGZvciAodmFyIGkgPSB0aGlzLnRyeUVudHJpZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyAtLWkpIHtcbiAgICAgICAgdmFyIGVudHJ5ID0gdGhpcy50cnlFbnRyaWVzW2ldO1xuICAgICAgICBpZiAoZW50cnkudHJ5TG9jIDw9IHRoaXMucHJldiAmJlxuICAgICAgICAgICAgaGFzT3duLmNhbGwoZW50cnksIFwiZmluYWxseUxvY1wiKSAmJlxuICAgICAgICAgICAgdGhpcy5wcmV2IDwgZW50cnkuZmluYWxseUxvYykge1xuICAgICAgICAgIHZhciBmaW5hbGx5RW50cnkgPSBlbnRyeTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoZmluYWxseUVudHJ5ICYmXG4gICAgICAgICAgKHR5cGUgPT09IFwiYnJlYWtcIiB8fFxuICAgICAgICAgICB0eXBlID09PSBcImNvbnRpbnVlXCIpICYmXG4gICAgICAgICAgZmluYWxseUVudHJ5LnRyeUxvYyA8PSBhcmcgJiZcbiAgICAgICAgICBhcmcgPD0gZmluYWxseUVudHJ5LmZpbmFsbHlMb2MpIHtcbiAgICAgICAgLy8gSWdub3JlIHRoZSBmaW5hbGx5IGVudHJ5IGlmIGNvbnRyb2wgaXMgbm90IGp1bXBpbmcgdG8gYVxuICAgICAgICAvLyBsb2NhdGlvbiBvdXRzaWRlIHRoZSB0cnkvY2F0Y2ggYmxvY2suXG4gICAgICAgIGZpbmFsbHlFbnRyeSA9IG51bGw7XG4gICAgICB9XG5cbiAgICAgIHZhciByZWNvcmQgPSBmaW5hbGx5RW50cnkgPyBmaW5hbGx5RW50cnkuY29tcGxldGlvbiA6IHt9O1xuICAgICAgcmVjb3JkLnR5cGUgPSB0eXBlO1xuICAgICAgcmVjb3JkLmFyZyA9IGFyZztcblxuICAgICAgaWYgKGZpbmFsbHlFbnRyeSkge1xuICAgICAgICB0aGlzLm1ldGhvZCA9IFwibmV4dFwiO1xuICAgICAgICB0aGlzLm5leHQgPSBmaW5hbGx5RW50cnkuZmluYWxseUxvYztcbiAgICAgICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLmNvbXBsZXRlKHJlY29yZCk7XG4gICAgfSxcblxuICAgIGNvbXBsZXRlOiBmdW5jdGlvbihyZWNvcmQsIGFmdGVyTG9jKSB7XG4gICAgICBpZiAocmVjb3JkLnR5cGUgPT09IFwidGhyb3dcIikge1xuICAgICAgICB0aHJvdyByZWNvcmQuYXJnO1xuICAgICAgfVxuXG4gICAgICBpZiAocmVjb3JkLnR5cGUgPT09IFwiYnJlYWtcIiB8fFxuICAgICAgICAgIHJlY29yZC50eXBlID09PSBcImNvbnRpbnVlXCIpIHtcbiAgICAgICAgdGhpcy5uZXh0ID0gcmVjb3JkLmFyZztcbiAgICAgIH0gZWxzZSBpZiAocmVjb3JkLnR5cGUgPT09IFwicmV0dXJuXCIpIHtcbiAgICAgICAgdGhpcy5ydmFsID0gdGhpcy5hcmcgPSByZWNvcmQuYXJnO1xuICAgICAgICB0aGlzLm1ldGhvZCA9IFwicmV0dXJuXCI7XG4gICAgICAgIHRoaXMubmV4dCA9IFwiZW5kXCI7XG4gICAgICB9IGVsc2UgaWYgKHJlY29yZC50eXBlID09PSBcIm5vcm1hbFwiICYmIGFmdGVyTG9jKSB7XG4gICAgICAgIHRoaXMubmV4dCA9IGFmdGVyTG9jO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gQ29udGludWVTZW50aW5lbDtcbiAgICB9LFxuXG4gICAgZmluaXNoOiBmdW5jdGlvbihmaW5hbGx5TG9jKSB7XG4gICAgICBmb3IgKHZhciBpID0gdGhpcy50cnlFbnRyaWVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgLS1pKSB7XG4gICAgICAgIHZhciBlbnRyeSA9IHRoaXMudHJ5RW50cmllc1tpXTtcbiAgICAgICAgaWYgKGVudHJ5LmZpbmFsbHlMb2MgPT09IGZpbmFsbHlMb2MpIHtcbiAgICAgICAgICB0aGlzLmNvbXBsZXRlKGVudHJ5LmNvbXBsZXRpb24sIGVudHJ5LmFmdGVyTG9jKTtcbiAgICAgICAgICByZXNldFRyeUVudHJ5KGVudHJ5KTtcbiAgICAgICAgICByZXR1cm4gQ29udGludWVTZW50aW5lbDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG5cbiAgICBcImNhdGNoXCI6IGZ1bmN0aW9uKHRyeUxvYykge1xuICAgICAgZm9yICh2YXIgaSA9IHRoaXMudHJ5RW50cmllcy5sZW5ndGggLSAxOyBpID49IDA7IC0taSkge1xuICAgICAgICB2YXIgZW50cnkgPSB0aGlzLnRyeUVudHJpZXNbaV07XG4gICAgICAgIGlmIChlbnRyeS50cnlMb2MgPT09IHRyeUxvYykge1xuICAgICAgICAgIHZhciByZWNvcmQgPSBlbnRyeS5jb21wbGV0aW9uO1xuICAgICAgICAgIGlmIChyZWNvcmQudHlwZSA9PT0gXCJ0aHJvd1wiKSB7XG4gICAgICAgICAgICB2YXIgdGhyb3duID0gcmVjb3JkLmFyZztcbiAgICAgICAgICAgIHJlc2V0VHJ5RW50cnkoZW50cnkpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdGhyb3duO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFRoZSBjb250ZXh0LmNhdGNoIG1ldGhvZCBtdXN0IG9ubHkgYmUgY2FsbGVkIHdpdGggYSBsb2NhdGlvblxuICAgICAgLy8gYXJndW1lbnQgdGhhdCBjb3JyZXNwb25kcyB0byBhIGtub3duIGNhdGNoIGJsb2NrLlxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaWxsZWdhbCBjYXRjaCBhdHRlbXB0XCIpO1xuICAgIH0sXG5cbiAgICBkZWxlZ2F0ZVlpZWxkOiBmdW5jdGlvbihpdGVyYWJsZSwgcmVzdWx0TmFtZSwgbmV4dExvYykge1xuICAgICAgdGhpcy5kZWxlZ2F0ZSA9IHtcbiAgICAgICAgaXRlcmF0b3I6IHZhbHVlcyhpdGVyYWJsZSksXG4gICAgICAgIHJlc3VsdE5hbWU6IHJlc3VsdE5hbWUsXG4gICAgICAgIG5leHRMb2M6IG5leHRMb2NcbiAgICAgIH07XG5cbiAgICAgIGlmICh0aGlzLm1ldGhvZCA9PT0gXCJuZXh0XCIpIHtcbiAgICAgICAgLy8gRGVsaWJlcmF0ZWx5IGZvcmdldCB0aGUgbGFzdCBzZW50IHZhbHVlIHNvIHRoYXQgd2UgZG9uJ3RcbiAgICAgICAgLy8gYWNjaWRlbnRhbGx5IHBhc3MgaXQgb24gdG8gdGhlIGRlbGVnYXRlLlxuICAgICAgICB0aGlzLmFyZyA9IHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gICAgfVxuICB9O1xuXG4gIC8vIFJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGlzIHNjcmlwdCBpcyBleGVjdXRpbmcgYXMgYSBDb21tb25KUyBtb2R1bGVcbiAgLy8gb3Igbm90LCByZXR1cm4gdGhlIHJ1bnRpbWUgb2JqZWN0IHNvIHRoYXQgd2UgY2FuIGRlY2xhcmUgdGhlIHZhcmlhYmxlXG4gIC8vIHJlZ2VuZXJhdG9yUnVudGltZSBpbiB0aGUgb3V0ZXIgc2NvcGUsIHdoaWNoIGFsbG93cyB0aGlzIG1vZHVsZSB0byBiZVxuICAvLyBpbmplY3RlZCBlYXNpbHkgYnkgYGJpbi9yZWdlbmVyYXRvciAtLWluY2x1ZGUtcnVudGltZSBzY3JpcHQuanNgLlxuICByZXR1cm4gZXhwb3J0cztcblxufShcbiAgLy8gSWYgdGhpcyBzY3JpcHQgaXMgZXhlY3V0aW5nIGFzIGEgQ29tbW9uSlMgbW9kdWxlLCB1c2UgbW9kdWxlLmV4cG9ydHNcbiAgLy8gYXMgdGhlIHJlZ2VuZXJhdG9yUnVudGltZSBuYW1lc3BhY2UuIE90aGVyd2lzZSBjcmVhdGUgYSBuZXcgZW1wdHlcbiAgLy8gb2JqZWN0LiBFaXRoZXIgd2F5LCB0aGUgcmVzdWx0aW5nIG9iamVjdCB3aWxsIGJlIHVzZWQgdG8gaW5pdGlhbGl6ZVxuICAvLyB0aGUgcmVnZW5lcmF0b3JSdW50aW1lIHZhcmlhYmxlIGF0IHRoZSB0b3Agb2YgdGhpcyBmaWxlLlxuICB0eXBlb2YgbW9kdWxlID09PSBcIm9iamVjdFwiID8gbW9kdWxlLmV4cG9ydHMgOiB7fVxuKSk7XG5cbnRyeSB7XG4gIHJlZ2VuZXJhdG9yUnVudGltZSA9IHJ1bnRpbWU7XG59IGNhdGNoIChhY2NpZGVudGFsU3RyaWN0TW9kZSkge1xuICAvLyBUaGlzIG1vZHVsZSBzaG91bGQgbm90IGJlIHJ1bm5pbmcgaW4gc3RyaWN0IG1vZGUsIHNvIHRoZSBhYm92ZVxuICAvLyBhc3NpZ25tZW50IHNob3VsZCBhbHdheXMgd29yayB1bmxlc3Mgc29tZXRoaW5nIGlzIG1pc2NvbmZpZ3VyZWQuIEp1c3RcbiAgLy8gaW4gY2FzZSBydW50aW1lLmpzIGFjY2lkZW50YWxseSBydW5zIGluIHN0cmljdCBtb2RlLCB3ZSBjYW4gZXNjYXBlXG4gIC8vIHN0cmljdCBtb2RlIHVzaW5nIGEgZ2xvYmFsIEZ1bmN0aW9uIGNhbGwuIFRoaXMgY291bGQgY29uY2VpdmFibHkgZmFpbFxuICAvLyBpZiBhIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGZvcmJpZHMgdXNpbmcgRnVuY3Rpb24sIGJ1dCBpbiB0aGF0IGNhc2VcbiAgLy8gdGhlIHByb3BlciBzb2x1dGlvbiBpcyB0byBmaXggdGhlIGFjY2lkZW50YWwgc3RyaWN0IG1vZGUgcHJvYmxlbS4gSWZcbiAgLy8geW91J3ZlIG1pc2NvbmZpZ3VyZWQgeW91ciBidW5kbGVyIHRvIGZvcmNlIHN0cmljdCBtb2RlIGFuZCBhcHBsaWVkIGFcbiAgLy8gQ1NQIHRvIGZvcmJpZCBGdW5jdGlvbiwgYW5kIHlvdSdyZSBub3Qgd2lsbGluZyB0byBmaXggZWl0aGVyIG9mIHRob3NlXG4gIC8vIHByb2JsZW1zLCBwbGVhc2UgZGV0YWlsIHlvdXIgdW5pcXVlIHByZWRpY2FtZW50IGluIGEgR2l0SHViIGlzc3VlLlxuICBGdW5jdGlvbihcInJcIiwgXCJyZWdlbmVyYXRvclJ1bnRpbWUgPSByXCIpKHJ1bnRpbWUpO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/regenerator-runtime/runtime.js\n"); +eval("/**\n * Copyright (c) 2014-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\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n true ? module.exports : undefined\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlZ2VuZXJhdG9yLXJ1bnRpbWUvcnVudGltZS5qcz85NmNmIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkLEtBQUs7QUFDTCxjQUFjO0FBQ2Q7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5REFBeUQ7QUFDekQ7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBLFdBQVc7QUFDWDs7QUFFQTtBQUNBO0FBQ0Esd0NBQXdDLFdBQVc7QUFDbkQ7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDJCQUEyQjtBQUMzQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUEsU0FBUztBQUNUO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxvQ0FBb0MsY0FBYztBQUNsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxpQ0FBaUMsa0JBQWtCO0FBQ25EO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxpQkFBaUI7O0FBRWpCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixpQkFBaUI7QUFDekM7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxZQUFZO0FBQ1o7QUFDQTs7QUFFQTtBQUNBLFlBQVk7QUFDWjs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBLDhDQUE4QyxRQUFRO0FBQ3REO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTs7QUFFQSxXQUFXO0FBQ1g7QUFDQTtBQUNBOztBQUVBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7O0FBRUEsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBLDhDQUE4QyxRQUFRO0FBQ3REO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7O0FBRUE7QUFDQSxLQUFLOztBQUVMO0FBQ0EsOENBQThDLFFBQVE7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0EsOENBQThDLFFBQVE7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFLEtBQTBCLG9CQUFvQixTQUFFO0FBQ2xEOztBQUVBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9yZWdlbmVyYXRvci1ydW50aW1lL3J1bnRpbWUuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxNC1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbnZhciBydW50aW1lID0gKGZ1bmN0aW9uIChleHBvcnRzKSB7XG4gIFwidXNlIHN0cmljdFwiO1xuXG4gIHZhciBPcCA9IE9iamVjdC5wcm90b3R5cGU7XG4gIHZhciBoYXNPd24gPSBPcC5oYXNPd25Qcm9wZXJ0eTtcbiAgdmFyIHVuZGVmaW5lZDsgLy8gTW9yZSBjb21wcmVzc2libGUgdGhhbiB2b2lkIDAuXG4gIHZhciAkU3ltYm9sID0gdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiID8gU3ltYm9sIDoge307XG4gIHZhciBpdGVyYXRvclN5bWJvbCA9ICRTeW1ib2wuaXRlcmF0b3IgfHwgXCJAQGl0ZXJhdG9yXCI7XG4gIHZhciBhc3luY0l0ZXJhdG9yU3ltYm9sID0gJFN5bWJvbC5hc3luY0l0ZXJhdG9yIHx8IFwiQEBhc3luY0l0ZXJhdG9yXCI7XG4gIHZhciB0b1N0cmluZ1RhZ1N5bWJvbCA9ICRTeW1ib2wudG9TdHJpbmdUYWcgfHwgXCJAQHRvU3RyaW5nVGFnXCI7XG5cbiAgZnVuY3Rpb24gZGVmaW5lKG9iaiwga2V5LCB2YWx1ZSkge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwge1xuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgcmV0dXJuIG9ialtrZXldO1xuICB9XG4gIHRyeSB7XG4gICAgLy8gSUUgOCBoYXMgYSBicm9rZW4gT2JqZWN0LmRlZmluZVByb3BlcnR5IHRoYXQgb25seSB3b3JrcyBvbiBET00gb2JqZWN0cy5cbiAgICBkZWZpbmUoe30sIFwiXCIpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBkZWZpbmUgPSBmdW5jdGlvbihvYmosIGtleSwgdmFsdWUpIHtcbiAgICAgIHJldHVybiBvYmpba2V5XSA9IHZhbHVlO1xuICAgIH07XG4gIH1cblxuICBmdW5jdGlvbiB3cmFwKGlubmVyRm4sIG91dGVyRm4sIHNlbGYsIHRyeUxvY3NMaXN0KSB7XG4gICAgLy8gSWYgb3V0ZXJGbiBwcm92aWRlZCBhbmQgb3V0ZXJGbi5wcm90b3R5cGUgaXMgYSBHZW5lcmF0b3IsIHRoZW4gb3V0ZXJGbi5wcm90b3R5cGUgaW5zdGFuY2VvZiBHZW5lcmF0b3IuXG4gICAgdmFyIHByb3RvR2VuZXJhdG9yID0gb3V0ZXJGbiAmJiBvdXRlckZuLnByb3RvdHlwZSBpbnN0YW5jZW9mIEdlbmVyYXRvciA/IG91dGVyRm4gOiBHZW5lcmF0b3I7XG4gICAgdmFyIGdlbmVyYXRvciA9IE9iamVjdC5jcmVhdGUocHJvdG9HZW5lcmF0b3IucHJvdG90eXBlKTtcbiAgICB2YXIgY29udGV4dCA9IG5ldyBDb250ZXh0KHRyeUxvY3NMaXN0IHx8IFtdKTtcblxuICAgIC8vIFRoZSAuX2ludm9rZSBtZXRob2QgdW5pZmllcyB0aGUgaW1wbGVtZW50YXRpb25zIG9mIHRoZSAubmV4dCxcbiAgICAvLyAudGhyb3csIGFuZCAucmV0dXJuIG1ldGhvZHMuXG4gICAgZ2VuZXJhdG9yLl9pbnZva2UgPSBtYWtlSW52b2tlTWV0aG9kKGlubmVyRm4sIHNlbGYsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGdlbmVyYXRvcjtcbiAgfVxuICBleHBvcnRzLndyYXAgPSB3cmFwO1xuXG4gIC8vIFRyeS9jYXRjaCBoZWxwZXIgdG8gbWluaW1pemUgZGVvcHRpbWl6YXRpb25zLiBSZXR1cm5zIGEgY29tcGxldGlvblxuICAvLyByZWNvcmQgbGlrZSBjb250ZXh0LnRyeUVudHJpZXNbaV0uY29tcGxldGlvbi4gVGhpcyBpbnRlcmZhY2UgY291bGRcbiAgLy8gaGF2ZSBiZWVuIChhbmQgd2FzIHByZXZpb3VzbHkpIGRlc2lnbmVkIHRvIHRha2UgYSBjbG9zdXJlIHRvIGJlXG4gIC8vIGludm9rZWQgd2l0aG91dCBhcmd1bWVudHMsIGJ1dCBpbiBhbGwgdGhlIGNhc2VzIHdlIGNhcmUgYWJvdXQgd2VcbiAgLy8gYWxyZWFkeSBoYXZlIGFuIGV4aXN0aW5nIG1ldGhvZCB3ZSB3YW50IHRvIGNhbGwsIHNvIHRoZXJlJ3Mgbm8gbmVlZFxuICAvLyB0byBjcmVhdGUgYSBuZXcgZnVuY3Rpb24gb2JqZWN0LiBXZSBjYW4gZXZlbiBnZXQgYXdheSB3aXRoIGFzc3VtaW5nXG4gIC8vIHRoZSBtZXRob2QgdGFrZXMgZXhhY3RseSBvbmUgYXJndW1lbnQsIHNpbmNlIHRoYXQgaGFwcGVucyB0byBiZSB0cnVlXG4gIC8vIGluIGV2ZXJ5IGNhc2UsIHNvIHdlIGRvbid0IGhhdmUgdG8gdG91Y2ggdGhlIGFyZ3VtZW50cyBvYmplY3QuIFRoZVxuICAvLyBvbmx5IGFkZGl0aW9uYWwgYWxsb2NhdGlvbiByZXF1aXJlZCBpcyB0aGUgY29tcGxldGlvbiByZWNvcmQsIHdoaWNoXG4gIC8vIGhhcyBhIHN0YWJsZSBzaGFwZSBhbmQgc28gaG9wZWZ1bGx5IHNob3VsZCBiZSBjaGVhcCB0byBhbGxvY2F0ZS5cbiAgZnVuY3Rpb24gdHJ5Q2F0Y2goZm4sIG9iaiwgYXJnKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiB7IHR5cGU6IFwibm9ybWFsXCIsIGFyZzogZm4uY2FsbChvYmosIGFyZykgfTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHJldHVybiB7IHR5cGU6IFwidGhyb3dcIiwgYXJnOiBlcnIgfTtcbiAgICB9XG4gIH1cblxuICB2YXIgR2VuU3RhdGVTdXNwZW5kZWRTdGFydCA9IFwic3VzcGVuZGVkU3RhcnRcIjtcbiAgdmFyIEdlblN0YXRlU3VzcGVuZGVkWWllbGQgPSBcInN1c3BlbmRlZFlpZWxkXCI7XG4gIHZhciBHZW5TdGF0ZUV4ZWN1dGluZyA9IFwiZXhlY3V0aW5nXCI7XG4gIHZhciBHZW5TdGF0ZUNvbXBsZXRlZCA9IFwiY29tcGxldGVkXCI7XG5cbiAgLy8gUmV0dXJuaW5nIHRoaXMgb2JqZWN0IGZyb20gdGhlIGlubmVyRm4gaGFzIHRoZSBzYW1lIGVmZmVjdCBhc1xuICAvLyBicmVha2luZyBvdXQgb2YgdGhlIGRpc3BhdGNoIHN3aXRjaCBzdGF0ZW1lbnQuXG4gIHZhciBDb250aW51ZVNlbnRpbmVsID0ge307XG5cbiAgLy8gRHVtbXkgY29uc3RydWN0b3IgZnVuY3Rpb25zIHRoYXQgd2UgdXNlIGFzIHRoZSAuY29uc3RydWN0b3IgYW5kXG4gIC8vIC5jb25zdHJ1Y3Rvci5wcm90b3R5cGUgcHJvcGVydGllcyBmb3IgZnVuY3Rpb25zIHRoYXQgcmV0dXJuIEdlbmVyYXRvclxuICAvLyBvYmplY3RzLiBGb3IgZnVsbCBzcGVjIGNvbXBsaWFuY2UsIHlvdSBtYXkgd2lzaCB0byBjb25maWd1cmUgeW91clxuICAvLyBtaW5pZmllciBub3QgdG8gbWFuZ2xlIHRoZSBuYW1lcyBvZiB0aGVzZSB0d28gZnVuY3Rpb25zLlxuICBmdW5jdGlvbiBHZW5lcmF0b3IoKSB7fVxuICBmdW5jdGlvbiBHZW5lcmF0b3JGdW5jdGlvbigpIHt9XG4gIGZ1bmN0aW9uIEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlKCkge31cblxuICAvLyBUaGlzIGlzIGEgcG9seWZpbGwgZm9yICVJdGVyYXRvclByb3RvdHlwZSUgZm9yIGVudmlyb25tZW50cyB0aGF0XG4gIC8vIGRvbid0IG5hdGl2ZWx5IHN1cHBvcnQgaXQuXG4gIHZhciBJdGVyYXRvclByb3RvdHlwZSA9IHt9O1xuICBJdGVyYXRvclByb3RvdHlwZVtpdGVyYXRvclN5bWJvbF0gPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgdmFyIGdldFByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mO1xuICB2YXIgTmF0aXZlSXRlcmF0b3JQcm90b3R5cGUgPSBnZXRQcm90byAmJiBnZXRQcm90byhnZXRQcm90byh2YWx1ZXMoW10pKSk7XG4gIGlmIChOYXRpdmVJdGVyYXRvclByb3RvdHlwZSAmJlxuICAgICAgTmF0aXZlSXRlcmF0b3JQcm90b3R5cGUgIT09IE9wICYmXG4gICAgICBoYXNPd24uY2FsbChOYXRpdmVJdGVyYXRvclByb3RvdHlwZSwgaXRlcmF0b3JTeW1ib2wpKSB7XG4gICAgLy8gVGhpcyBlbnZpcm9ubWVudCBoYXMgYSBuYXRpdmUgJUl0ZXJhdG9yUHJvdG90eXBlJTsgdXNlIGl0IGluc3RlYWRcbiAgICAvLyBvZiB0aGUgcG9seWZpbGwuXG4gICAgSXRlcmF0b3JQcm90b3R5cGUgPSBOYXRpdmVJdGVyYXRvclByb3RvdHlwZTtcbiAgfVxuXG4gIHZhciBHcCA9IEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLnByb3RvdHlwZSA9XG4gICAgR2VuZXJhdG9yLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoSXRlcmF0b3JQcm90b3R5cGUpO1xuICBHZW5lcmF0b3JGdW5jdGlvbi5wcm90b3R5cGUgPSBHcC5jb25zdHJ1Y3RvciA9IEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlO1xuICBHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IEdlbmVyYXRvckZ1bmN0aW9uO1xuICBHZW5lcmF0b3JGdW5jdGlvbi5kaXNwbGF5TmFtZSA9IGRlZmluZShcbiAgICBHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSxcbiAgICB0b1N0cmluZ1RhZ1N5bWJvbCxcbiAgICBcIkdlbmVyYXRvckZ1bmN0aW9uXCJcbiAgKTtcblxuICAvLyBIZWxwZXIgZm9yIGRlZmluaW5nIHRoZSAubmV4dCwgLnRocm93LCBhbmQgLnJldHVybiBtZXRob2RzIG9mIHRoZVxuICAvLyBJdGVyYXRvciBpbnRlcmZhY2UgaW4gdGVybXMgb2YgYSBzaW5nbGUgLl9pbnZva2UgbWV0aG9kLlxuICBmdW5jdGlvbiBkZWZpbmVJdGVyYXRvck1ldGhvZHMocHJvdG90eXBlKSB7XG4gICAgW1wibmV4dFwiLCBcInRocm93XCIsIFwicmV0dXJuXCJdLmZvckVhY2goZnVuY3Rpb24obWV0aG9kKSB7XG4gICAgICBkZWZpbmUocHJvdG90eXBlLCBtZXRob2QsIGZ1bmN0aW9uKGFyZykge1xuICAgICAgICByZXR1cm4gdGhpcy5faW52b2tlKG1ldGhvZCwgYXJnKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgZXhwb3J0cy5pc0dlbmVyYXRvckZ1bmN0aW9uID0gZnVuY3Rpb24oZ2VuRnVuKSB7XG4gICAgdmFyIGN0b3IgPSB0eXBlb2YgZ2VuRnVuID09PSBcImZ1bmN0aW9uXCIgJiYgZ2VuRnVuLmNvbnN0cnVjdG9yO1xuICAgIHJldHVybiBjdG9yXG4gICAgICA/IGN0b3IgPT09IEdlbmVyYXRvckZ1bmN0aW9uIHx8XG4gICAgICAgIC8vIEZvciB0aGUgbmF0aXZlIEdlbmVyYXRvckZ1bmN0aW9uIGNvbnN0cnVjdG9yLCB0aGUgYmVzdCB3ZSBjYW5cbiAgICAgICAgLy8gZG8gaXMgdG8gY2hlY2sgaXRzIC5uYW1lIHByb3BlcnR5LlxuICAgICAgICAoY3Rvci5kaXNwbGF5TmFtZSB8fCBjdG9yLm5hbWUpID09PSBcIkdlbmVyYXRvckZ1bmN0aW9uXCJcbiAgICAgIDogZmFsc2U7XG4gIH07XG5cbiAgZXhwb3J0cy5tYXJrID0gZnVuY3Rpb24oZ2VuRnVuKSB7XG4gICAgaWYgKE9iamVjdC5zZXRQcm90b3R5cGVPZikge1xuICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKGdlbkZ1biwgR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBnZW5GdW4uX19wcm90b19fID0gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGU7XG4gICAgICBkZWZpbmUoZ2VuRnVuLCB0b1N0cmluZ1RhZ1N5bWJvbCwgXCJHZW5lcmF0b3JGdW5jdGlvblwiKTtcbiAgICB9XG4gICAgZ2VuRnVuLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoR3ApO1xuICAgIHJldHVybiBnZW5GdW47XG4gIH07XG5cbiAgLy8gV2l0aGluIHRoZSBib2R5IG9mIGFueSBhc3luYyBmdW5jdGlvbiwgYGF3YWl0IHhgIGlzIHRyYW5zZm9ybWVkIHRvXG4gIC8vIGB5aWVsZCByZWdlbmVyYXRvclJ1bnRpbWUuYXdyYXAoeClgLCBzbyB0aGF0IHRoZSBydW50aW1lIGNhbiB0ZXN0XG4gIC8vIGBoYXNPd24uY2FsbCh2YWx1ZSwgXCJfX2F3YWl0XCIpYCB0byBkZXRlcm1pbmUgaWYgdGhlIHlpZWxkZWQgdmFsdWUgaXNcbiAgLy8gbWVhbnQgdG8gYmUgYXdhaXRlZC5cbiAgZXhwb3J0cy5hd3JhcCA9IGZ1bmN0aW9uKGFyZykge1xuICAgIHJldHVybiB7IF9fYXdhaXQ6IGFyZyB9O1xuICB9O1xuXG4gIGZ1bmN0aW9uIEFzeW5jSXRlcmF0b3IoZ2VuZXJhdG9yLCBQcm9taXNlSW1wbCkge1xuICAgIGZ1bmN0aW9uIGludm9rZShtZXRob2QsIGFyZywgcmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICB2YXIgcmVjb3JkID0gdHJ5Q2F0Y2goZ2VuZXJhdG9yW21ldGhvZF0sIGdlbmVyYXRvciwgYXJnKTtcbiAgICAgIGlmIChyZWNvcmQudHlwZSA9PT0gXCJ0aHJvd1wiKSB7XG4gICAgICAgIHJlamVjdChyZWNvcmQuYXJnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciByZXN1bHQgPSByZWNvcmQuYXJnO1xuICAgICAgICB2YXIgdmFsdWUgPSByZXN1bHQudmFsdWU7XG4gICAgICAgIGlmICh2YWx1ZSAmJlxuICAgICAgICAgICAgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmXG4gICAgICAgICAgICBoYXNPd24uY2FsbCh2YWx1ZSwgXCJfX2F3YWl0XCIpKSB7XG4gICAgICAgICAgcmV0dXJuIFByb21pc2VJbXBsLnJlc29sdmUodmFsdWUuX19hd2FpdCkudGhlbihmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgICAgICAgaW52b2tlKFwibmV4dFwiLCB2YWx1ZSwgcmVzb2x2ZSwgcmVqZWN0KTtcbiAgICAgICAgICB9LCBmdW5jdGlvbihlcnIpIHtcbiAgICAgICAgICAgIGludm9rZShcInRocm93XCIsIGVyciwgcmVzb2x2ZSwgcmVqZWN0KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBQcm9taXNlSW1wbC5yZXNvbHZlKHZhbHVlKS50aGVuKGZ1bmN0aW9uKHVud3JhcHBlZCkge1xuICAgICAgICAgIC8vIFdoZW4gYSB5aWVsZGVkIFByb21pc2UgaXMgcmVzb2x2ZWQsIGl0cyBmaW5hbCB2YWx1ZSBiZWNvbWVzXG4gICAgICAgICAgLy8gdGhlIC52YWx1ZSBvZiB0aGUgUHJvbWlzZTx7dmFsdWUsZG9uZX0+IHJlc3VsdCBmb3IgdGhlXG4gICAgICAgICAgLy8gY3VycmVudCBpdGVyYXRpb24uXG4gICAgICAgICAgcmVzdWx0LnZhbHVlID0gdW53cmFwcGVkO1xuICAgICAgICAgIHJlc29sdmUocmVzdWx0KTtcbiAgICAgICAgfSwgZnVuY3Rpb24oZXJyb3IpIHtcbiAgICAgICAgICAvLyBJZiBhIHJlamVjdGVkIFByb21pc2Ugd2FzIHlpZWxkZWQsIHRocm93IHRoZSByZWplY3Rpb24gYmFja1xuICAgICAgICAgIC8vIGludG8gdGhlIGFzeW5jIGdlbmVyYXRvciBmdW5jdGlvbiBzbyBpdCBjYW4gYmUgaGFuZGxlZCB0aGVyZS5cbiAgICAgICAgICByZXR1cm4gaW52b2tlKFwidGhyb3dcIiwgZXJyb3IsIHJlc29sdmUsIHJlamVjdCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBwcmV2aW91c1Byb21pc2U7XG5cbiAgICBmdW5jdGlvbiBlbnF1ZXVlKG1ldGhvZCwgYXJnKSB7XG4gICAgICBmdW5jdGlvbiBjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZygpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlSW1wbChmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgICBpbnZva2UobWV0aG9kLCBhcmcsIHJlc29sdmUsIHJlamVjdCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcHJldmlvdXNQcm9taXNlID1cbiAgICAgICAgLy8gSWYgZW5xdWV1ZSBoYXMgYmVlbiBjYWxsZWQgYmVmb3JlLCB0aGVuIHdlIHdhbnQgdG8gd2FpdCB1bnRpbFxuICAgICAgICAvLyBhbGwgcHJldmlvdXMgUHJvbWlzZXMgaGF2ZSBiZWVuIHJlc29sdmVkIGJlZm9yZSBjYWxsaW5nIGludm9rZSxcbiAgICAgICAgLy8gc28gdGhhdCByZXN1bHRzIGFyZSBhbHdheXMgZGVsaXZlcmVkIGluIHRoZSBjb3JyZWN0IG9yZGVyLiBJZlxuICAgICAgICAvLyBlbnF1ZXVlIGhhcyBub3QgYmVlbiBjYWxsZWQgYmVmb3JlLCB0aGVuIGl0IGlzIGltcG9ydGFudCB0b1xuICAgICAgICAvLyBjYWxsIGludm9rZSBpbW1lZGlhdGVseSwgd2l0aG91dCB3YWl0aW5nIG9uIGEgY2FsbGJhY2sgdG8gZmlyZSxcbiAgICAgICAgLy8gc28gdGhhdCB0aGUgYXN5bmMgZ2VuZXJhdG9yIGZ1bmN0aW9uIGhhcyB0aGUgb3Bwb3J0dW5pdHkgdG8gZG9cbiAgICAgICAgLy8gYW55IG5lY2Vzc2FyeSBzZXR1cCBpbiBhIHByZWRpY3RhYmxlIHdheS4gVGhpcyBwcmVkaWN0YWJpbGl0eVxuICAgICAgICAvLyBpcyB3aHkgdGhlIFByb21pc2UgY29uc3RydWN0b3Igc3luY2hyb25vdXNseSBpbnZva2VzIGl0c1xuICAgICAgICAvLyBleGVjdXRvciBjYWxsYmFjaywgYW5kIHdoeSBhc3luYyBmdW5jdGlvbnMgc3luY2hyb25vdXNseVxuICAgICAgICAvLyBleGVjdXRlIGNvZGUgYmVmb3JlIHRoZSBmaXJzdCBhd2FpdC4gU2luY2Ugd2UgaW1wbGVtZW50IHNpbXBsZVxuICAgICAgICAvLyBhc3luYyBmdW5jdGlvbnMgaW4gdGVybXMgb2YgYXN5bmMgZ2VuZXJhdG9ycywgaXQgaXMgZXNwZWNpYWxseVxuICAgICAgICAvLyBpbXBvcnRhbnQgdG8gZ2V0IHRoaXMgcmlnaHQsIGV2ZW4gdGhvdWdoIGl0IHJlcXVpcmVzIGNhcmUuXG4gICAgICAgIHByZXZpb3VzUHJvbWlzZSA/IHByZXZpb3VzUHJvbWlzZS50aGVuKFxuICAgICAgICAgIGNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnLFxuICAgICAgICAgIC8vIEF2b2lkIHByb3BhZ2F0aW5nIGZhaWx1cmVzIHRvIFByb21pc2VzIHJldHVybmVkIGJ5IGxhdGVyXG4gICAgICAgICAgLy8gaW52b2NhdGlvbnMgb2YgdGhlIGl0ZXJhdG9yLlxuICAgICAgICAgIGNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnXG4gICAgICAgICkgOiBjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZygpO1xuICAgIH1cblxuICAgIC8vIERlZmluZSB0aGUgdW5pZmllZCBoZWxwZXIgbWV0aG9kIHRoYXQgaXMgdXNlZCB0byBpbXBsZW1lbnQgLm5leHQsXG4gICAgLy8gLnRocm93LCBhbmQgLnJldHVybiAoc2VlIGRlZmluZUl0ZXJhdG9yTWV0aG9kcykuXG4gICAgdGhpcy5faW52b2tlID0gZW5xdWV1ZTtcbiAgfVxuXG4gIGRlZmluZUl0ZXJhdG9yTWV0aG9kcyhBc3luY0l0ZXJhdG9yLnByb3RvdHlwZSk7XG4gIEFzeW5jSXRlcmF0b3IucHJvdG90eXBlW2FzeW5jSXRlcmF0b3JTeW1ib2xdID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzO1xuICB9O1xuICBleHBvcnRzLkFzeW5jSXRlcmF0b3IgPSBBc3luY0l0ZXJhdG9yO1xuXG4gIC8vIE5vdGUgdGhhdCBzaW1wbGUgYXN5bmMgZnVuY3Rpb25zIGFyZSBpbXBsZW1lbnRlZCBvbiB0b3Agb2ZcbiAgLy8gQXN5bmNJdGVyYXRvciBvYmplY3RzOyB0aGV5IGp1c3QgcmV0dXJuIGEgUHJvbWlzZSBmb3IgdGhlIHZhbHVlIG9mXG4gIC8vIHRoZSBmaW5hbCByZXN1bHQgcHJvZHVjZWQgYnkgdGhlIGl0ZXJhdG9yLlxuICBleHBvcnRzLmFzeW5jID0gZnVuY3Rpb24oaW5uZXJGbiwgb3V0ZXJGbiwgc2VsZiwgdHJ5TG9jc0xpc3QsIFByb21pc2VJbXBsKSB7XG4gICAgaWYgKFByb21pc2VJbXBsID09PSB2b2lkIDApIFByb21pc2VJbXBsID0gUHJvbWlzZTtcblxuICAgIHZhciBpdGVyID0gbmV3IEFzeW5jSXRlcmF0b3IoXG4gICAgICB3cmFwKGlubmVyRm4sIG91dGVyRm4sIHNlbGYsIHRyeUxvY3NMaXN0KSxcbiAgICAgIFByb21pc2VJbXBsXG4gICAgKTtcblxuICAgIHJldHVybiBleHBvcnRzLmlzR2VuZXJhdG9yRnVuY3Rpb24ob3V0ZXJGbilcbiAgICAgID8gaXRlciAvLyBJZiBvdXRlckZuIGlzIGEgZ2VuZXJhdG9yLCByZXR1cm4gdGhlIGZ1bGwgaXRlcmF0b3IuXG4gICAgICA6IGl0ZXIubmV4dCgpLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdC5kb25lID8gcmVzdWx0LnZhbHVlIDogaXRlci5uZXh0KCk7XG4gICAgICAgIH0pO1xuICB9O1xuXG4gIGZ1bmN0aW9uIG1ha2VJbnZva2VNZXRob2QoaW5uZXJGbiwgc2VsZiwgY29udGV4dCkge1xuICAgIHZhciBzdGF0ZSA9IEdlblN0YXRlU3VzcGVuZGVkU3RhcnQ7XG5cbiAgICByZXR1cm4gZnVuY3Rpb24gaW52b2tlKG1ldGhvZCwgYXJnKSB7XG4gICAgICBpZiAoc3RhdGUgPT09IEdlblN0YXRlRXhlY3V0aW5nKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmdcIik7XG4gICAgICB9XG5cbiAgICAgIGlmIChzdGF0ZSA9PT0gR2VuU3RhdGVDb21wbGV0ZWQpIHtcbiAgICAgICAgaWYgKG1ldGhvZCA9PT0gXCJ0aHJvd1wiKSB7XG4gICAgICAgICAgdGhyb3cgYXJnO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQmUgZm9yZ2l2aW5nLCBwZXIgMjUuMy4zLjMuMyBvZiB0aGUgc3BlYzpcbiAgICAgICAgLy8gaHR0cHM6Ly9wZW9wbGUubW96aWxsYS5vcmcvfmpvcmVuZG9yZmYvZXM2LWRyYWZ0Lmh0bWwjc2VjLWdlbmVyYXRvcnJlc3VtZVxuICAgICAgICByZXR1cm4gZG9uZVJlc3VsdCgpO1xuICAgICAgfVxuXG4gICAgICBjb250ZXh0Lm1ldGhvZCA9IG1ldGhvZDtcbiAgICAgIGNvbnRleHQuYXJnID0gYXJnO1xuXG4gICAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICB2YXIgZGVsZWdhdGUgPSBjb250ZXh0LmRlbGVnYXRlO1xuICAgICAgICBpZiAoZGVsZWdhdGUpIHtcbiAgICAgICAgICB2YXIgZGVsZWdhdGVSZXN1bHQgPSBtYXliZUludm9rZURlbGVnYXRlKGRlbGVnYXRlLCBjb250ZXh0KTtcbiAgICAgICAgICBpZiAoZGVsZWdhdGVSZXN1bHQpIHtcbiAgICAgICAgICAgIGlmIChkZWxlZ2F0ZVJlc3VsdCA9PT0gQ29udGludWVTZW50aW5lbCkgY29udGludWU7XG4gICAgICAgICAgICByZXR1cm4gZGVsZWdhdGVSZXN1bHQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvbnRleHQubWV0aG9kID09PSBcIm5leHRcIikge1xuICAgICAgICAgIC8vIFNldHRpbmcgY29udGV4dC5fc2VudCBmb3IgbGVnYWN5IHN1cHBvcnQgb2YgQmFiZWwnc1xuICAgICAgICAgIC8vIGZ1bmN0aW9uLnNlbnQgaW1wbGVtZW50YXRpb24uXG4gICAgICAgICAgY29udGV4dC5zZW50ID0gY29udGV4dC5fc2VudCA9IGNvbnRleHQuYXJnO1xuXG4gICAgICAgIH0gZWxzZSBpZiAoY29udGV4dC5tZXRob2QgPT09IFwidGhyb3dcIikge1xuICAgICAgICAgIGlmIChzdGF0ZSA9PT0gR2VuU3RhdGVTdXNwZW5kZWRTdGFydCkge1xuICAgICAgICAgICAgc3RhdGUgPSBHZW5TdGF0ZUNvbXBsZXRlZDtcbiAgICAgICAgICAgIHRocm93IGNvbnRleHQuYXJnO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnRleHQuZGlzcGF0Y2hFeGNlcHRpb24oY29udGV4dC5hcmcpO1xuXG4gICAgICAgIH0gZWxzZSBpZiAoY29udGV4dC5tZXRob2QgPT09IFwicmV0dXJuXCIpIHtcbiAgICAgICAgICBjb250ZXh0LmFicnVwdChcInJldHVyblwiLCBjb250ZXh0LmFyZyk7XG4gICAgICAgIH1cblxuICAgICAgICBzdGF0ZSA9IEdlblN0YXRlRXhlY3V0aW5nO1xuXG4gICAgICAgIHZhciByZWNvcmQgPSB0cnlDYXRjaChpbm5lckZuLCBzZWxmLCBjb250ZXh0KTtcbiAgICAgICAgaWYgKHJlY29yZC50eXBlID09PSBcIm5vcm1hbFwiKSB7XG4gICAgICAgICAgLy8gSWYgYW4gZXhjZXB0aW9uIGlzIHRocm93biBmcm9tIGlubmVyRm4sIHdlIGxlYXZlIHN0YXRlID09PVxuICAgICAgICAgIC8vIEdlblN0YXRlRXhlY3V0aW5nIGFuZCBsb29wIGJhY2sgZm9yIGFub3RoZXIgaW52b2NhdGlvbi5cbiAgICAgICAgICBzdGF0ZSA9IGNvbnRleHQuZG9uZVxuICAgICAgICAgICAgPyBHZW5TdGF0ZUNvbXBsZXRlZFxuICAgICAgICAgICAgOiBHZW5TdGF0ZVN1c3BlbmRlZFlpZWxkO1xuXG4gICAgICAgICAgaWYgKHJlY29yZC5hcmcgPT09IENvbnRpbnVlU2VudGluZWwpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB2YWx1ZTogcmVjb3JkLmFyZyxcbiAgICAgICAgICAgIGRvbmU6IGNvbnRleHQuZG9uZVxuICAgICAgICAgIH07XG5cbiAgICAgICAgfSBlbHNlIGlmIChyZWNvcmQudHlwZSA9PT0gXCJ0aHJvd1wiKSB7XG4gICAgICAgICAgc3RhdGUgPSBHZW5TdGF0ZUNvbXBsZXRlZDtcbiAgICAgICAgICAvLyBEaXNwYXRjaCB0aGUgZXhjZXB0aW9uIGJ5IGxvb3BpbmcgYmFjayBhcm91bmQgdG8gdGhlXG4gICAgICAgICAgLy8gY29udGV4dC5kaXNwYXRjaEV4Y2VwdGlvbihjb250ZXh0LmFyZykgY2FsbCBhYm92ZS5cbiAgICAgICAgICBjb250ZXh0Lm1ldGhvZCA9IFwidGhyb3dcIjtcbiAgICAgICAgICBjb250ZXh0LmFyZyA9IHJlY29yZC5hcmc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgLy8gQ2FsbCBkZWxlZ2F0ZS5pdGVyYXRvcltjb250ZXh0Lm1ldGhvZF0oY29udGV4dC5hcmcpIGFuZCBoYW5kbGUgdGhlXG4gIC8vIHJlc3VsdCwgZWl0aGVyIGJ5IHJldHVybmluZyBhIHsgdmFsdWUsIGRvbmUgfSByZXN1bHQgZnJvbSB0aGVcbiAgLy8gZGVsZWdhdGUgaXRlcmF0b3IsIG9yIGJ5IG1vZGlmeWluZyBjb250ZXh0Lm1ldGhvZCBhbmQgY29udGV4dC5hcmcsXG4gIC8vIHNldHRpbmcgY29udGV4dC5kZWxlZ2F0ZSB0byBudWxsLCBhbmQgcmV0dXJuaW5nIHRoZSBDb250aW51ZVNlbnRpbmVsLlxuICBmdW5jdGlvbiBtYXliZUludm9rZURlbGVnYXRlKGRlbGVnYXRlLCBjb250ZXh0KSB7XG4gICAgdmFyIG1ldGhvZCA9IGRlbGVnYXRlLml0ZXJhdG9yW2NvbnRleHQubWV0aG9kXTtcbiAgICBpZiAobWV0aG9kID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIEEgLnRocm93IG9yIC5yZXR1cm4gd2hlbiB0aGUgZGVsZWdhdGUgaXRlcmF0b3IgaGFzIG5vIC50aHJvd1xuICAgICAgLy8gbWV0aG9kIGFsd2F5cyB0ZXJtaW5hdGVzIHRoZSB5aWVsZCogbG9vcC5cbiAgICAgIGNvbnRleHQuZGVsZWdhdGUgPSBudWxsO1xuXG4gICAgICBpZiAoY29udGV4dC5tZXRob2QgPT09IFwidGhyb3dcIikge1xuICAgICAgICAvLyBOb3RlOiBbXCJyZXR1cm5cIl0gbXVzdCBiZSB1c2VkIGZvciBFUzMgcGFyc2luZyBjb21wYXRpYmlsaXR5LlxuICAgICAgICBpZiAoZGVsZWdhdGUuaXRlcmF0b3JbXCJyZXR1cm5cIl0pIHtcbiAgICAgICAgICAvLyBJZiB0aGUgZGVsZWdhdGUgaXRlcmF0b3IgaGFzIGEgcmV0dXJuIG1ldGhvZCwgZ2l2ZSBpdCBhXG4gICAgICAgICAgLy8gY2hhbmNlIHRvIGNsZWFuIHVwLlxuICAgICAgICAgIGNvbnRleHQubWV0aG9kID0gXCJyZXR1cm5cIjtcbiAgICAgICAgICBjb250ZXh0LmFyZyA9IHVuZGVmaW5lZDtcbiAgICAgICAgICBtYXliZUludm9rZURlbGVnYXRlKGRlbGVnYXRlLCBjb250ZXh0KTtcblxuICAgICAgICAgIGlmIChjb250ZXh0Lm1ldGhvZCA9PT0gXCJ0aHJvd1wiKSB7XG4gICAgICAgICAgICAvLyBJZiBtYXliZUludm9rZURlbGVnYXRlKGNvbnRleHQpIGNoYW5nZWQgY29udGV4dC5tZXRob2QgZnJvbVxuICAgICAgICAgICAgLy8gXCJyZXR1cm5cIiB0byBcInRocm93XCIsIGxldCB0aGF0IG92ZXJyaWRlIHRoZSBUeXBlRXJyb3IgYmVsb3cuXG4gICAgICAgICAgICByZXR1cm4gQ29udGludWVTZW50aW5lbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb250ZXh0Lm1ldGhvZCA9IFwidGhyb3dcIjtcbiAgICAgICAgY29udGV4dC5hcmcgPSBuZXcgVHlwZUVycm9yKFxuICAgICAgICAgIFwiVGhlIGl0ZXJhdG9yIGRvZXMgbm90IHByb3ZpZGUgYSAndGhyb3cnIG1ldGhvZFwiKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gICAgfVxuXG4gICAgdmFyIHJlY29yZCA9IHRyeUNhdGNoKG1ldGhvZCwgZGVsZWdhdGUuaXRlcmF0b3IsIGNvbnRleHQuYXJnKTtcblxuICAgIGlmIChyZWNvcmQudHlwZSA9PT0gXCJ0aHJvd1wiKSB7XG4gICAgICBjb250ZXh0Lm1ldGhvZCA9IFwidGhyb3dcIjtcbiAgICAgIGNvbnRleHQuYXJnID0gcmVjb3JkLmFyZztcbiAgICAgIGNvbnRleHQuZGVsZWdhdGUgPSBudWxsO1xuICAgICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gICAgfVxuXG4gICAgdmFyIGluZm8gPSByZWNvcmQuYXJnO1xuXG4gICAgaWYgKCEgaW5mbykge1xuICAgICAgY29udGV4dC5tZXRob2QgPSBcInRocm93XCI7XG4gICAgICBjb250ZXh0LmFyZyA9IG5ldyBUeXBlRXJyb3IoXCJpdGVyYXRvciByZXN1bHQgaXMgbm90IGFuIG9iamVjdFwiKTtcbiAgICAgIGNvbnRleHQuZGVsZWdhdGUgPSBudWxsO1xuICAgICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gICAgfVxuXG4gICAgaWYgKGluZm8uZG9uZSkge1xuICAgICAgLy8gQXNzaWduIHRoZSByZXN1bHQgb2YgdGhlIGZpbmlzaGVkIGRlbGVnYXRlIHRvIHRoZSB0ZW1wb3JhcnlcbiAgICAgIC8vIHZhcmlhYmxlIHNwZWNpZmllZCBieSBkZWxlZ2F0ZS5yZXN1bHROYW1lIChzZWUgZGVsZWdhdGVZaWVsZCkuXG4gICAgICBjb250ZXh0W2RlbGVnYXRlLnJlc3VsdE5hbWVdID0gaW5mby52YWx1ZTtcblxuICAgICAgLy8gUmVzdW1lIGV4ZWN1dGlvbiBhdCB0aGUgZGVzaXJlZCBsb2NhdGlvbiAoc2VlIGRlbGVnYXRlWWllbGQpLlxuICAgICAgY29udGV4dC5uZXh0ID0gZGVsZWdhdGUubmV4dExvYztcblxuICAgICAgLy8gSWYgY29udGV4dC5tZXRob2Qgd2FzIFwidGhyb3dcIiBidXQgdGhlIGRlbGVnYXRlIGhhbmRsZWQgdGhlXG4gICAgICAvLyBleGNlcHRpb24sIGxldCB0aGUgb3V0ZXIgZ2VuZXJhdG9yIHByb2NlZWQgbm9ybWFsbHkuIElmXG4gICAgICAvLyBjb250ZXh0Lm1ldGhvZCB3YXMgXCJuZXh0XCIsIGZvcmdldCBjb250ZXh0LmFyZyBzaW5jZSBpdCBoYXMgYmVlblxuICAgICAgLy8gXCJjb25zdW1lZFwiIGJ5IHRoZSBkZWxlZ2F0ZSBpdGVyYXRvci4gSWYgY29udGV4dC5tZXRob2Qgd2FzXG4gICAgICAvLyBcInJldHVyblwiLCBhbGxvdyB0aGUgb3JpZ2luYWwgLnJldHVybiBjYWxsIHRvIGNvbnRpbnVlIGluIHRoZVxuICAgICAgLy8gb3V0ZXIgZ2VuZXJhdG9yLlxuICAgICAgaWYgKGNvbnRleHQubWV0aG9kICE9PSBcInJldHVyblwiKSB7XG4gICAgICAgIGNvbnRleHQubWV0aG9kID0gXCJuZXh0XCI7XG4gICAgICAgIGNvbnRleHQuYXJnID0gdW5kZWZpbmVkO1xuICAgICAgfVxuXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFJlLXlpZWxkIHRoZSByZXN1bHQgcmV0dXJuZWQgYnkgdGhlIGRlbGVnYXRlIG1ldGhvZC5cbiAgICAgIHJldHVybiBpbmZvO1xuICAgIH1cblxuICAgIC8vIFRoZSBkZWxlZ2F0ZSBpdGVyYXRvciBpcyBmaW5pc2hlZCwgc28gZm9yZ2V0IGl0IGFuZCBjb250aW51ZSB3aXRoXG4gICAgLy8gdGhlIG91dGVyIGdlbmVyYXRvci5cbiAgICBjb250ZXh0LmRlbGVnYXRlID0gbnVsbDtcbiAgICByZXR1cm4gQ29udGludWVTZW50aW5lbDtcbiAgfVxuXG4gIC8vIERlZmluZSBHZW5lcmF0b3IucHJvdG90eXBlLntuZXh0LHRocm93LHJldHVybn0gaW4gdGVybXMgb2YgdGhlXG4gIC8vIHVuaWZpZWQgLl9pbnZva2UgaGVscGVyIG1ldGhvZC5cbiAgZGVmaW5lSXRlcmF0b3JNZXRob2RzKEdwKTtcblxuICBkZWZpbmUoR3AsIHRvU3RyaW5nVGFnU3ltYm9sLCBcIkdlbmVyYXRvclwiKTtcblxuICAvLyBBIEdlbmVyYXRvciBzaG91bGQgYWx3YXlzIHJldHVybiBpdHNlbGYgYXMgdGhlIGl0ZXJhdG9yIG9iamVjdCB3aGVuIHRoZVxuICAvLyBAQGl0ZXJhdG9yIGZ1bmN0aW9uIGlzIGNhbGxlZCBvbiBpdC4gU29tZSBicm93c2VycycgaW1wbGVtZW50YXRpb25zIG9mIHRoZVxuICAvLyBpdGVyYXRvciBwcm90b3R5cGUgY2hhaW4gaW5jb3JyZWN0bHkgaW1wbGVtZW50IHRoaXMsIGNhdXNpbmcgdGhlIEdlbmVyYXRvclxuICAvLyBvYmplY3QgdG8gbm90IGJlIHJldHVybmVkIGZyb20gdGhpcyBjYWxsLiBUaGlzIGVuc3VyZXMgdGhhdCBkb2Vzbid0IGhhcHBlbi5cbiAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWdlbmVyYXRvci9pc3N1ZXMvMjc0IGZvciBtb3JlIGRldGFpbHMuXG4gIEdwW2l0ZXJhdG9yU3ltYm9sXSA9IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIEdwLnRvU3RyaW5nID0gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIFwiW29iamVjdCBHZW5lcmF0b3JdXCI7XG4gIH07XG5cbiAgZnVuY3Rpb24gcHVzaFRyeUVudHJ5KGxvY3MpIHtcbiAgICB2YXIgZW50cnkgPSB7IHRyeUxvYzogbG9jc1swXSB9O1xuXG4gICAgaWYgKDEgaW4gbG9jcykge1xuICAgICAgZW50cnkuY2F0Y2hMb2MgPSBsb2NzWzFdO1xuICAgIH1cblxuICAgIGlmICgyIGluIGxvY3MpIHtcbiAgICAgIGVudHJ5LmZpbmFsbHlMb2MgPSBsb2NzWzJdO1xuICAgICAgZW50cnkuYWZ0ZXJMb2MgPSBsb2NzWzNdO1xuICAgIH1cblxuICAgIHRoaXMudHJ5RW50cmllcy5wdXNoKGVudHJ5KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlc2V0VHJ5RW50cnkoZW50cnkpIHtcbiAgICB2YXIgcmVjb3JkID0gZW50cnkuY29tcGxldGlvbiB8fCB7fTtcbiAgICByZWNvcmQudHlwZSA9IFwibm9ybWFsXCI7XG4gICAgZGVsZXRlIHJlY29yZC5hcmc7XG4gICAgZW50cnkuY29tcGxldGlvbiA9IHJlY29yZDtcbiAgfVxuXG4gIGZ1bmN0aW9uIENvbnRleHQodHJ5TG9jc0xpc3QpIHtcbiAgICAvLyBUaGUgcm9vdCBlbnRyeSBvYmplY3QgKGVmZmVjdGl2ZWx5IGEgdHJ5IHN0YXRlbWVudCB3aXRob3V0IGEgY2F0Y2hcbiAgICAvLyBvciBhIGZpbmFsbHkgYmxvY2spIGdpdmVzIHVzIGEgcGxhY2UgdG8gc3RvcmUgdmFsdWVzIHRocm93biBmcm9tXG4gICAgLy8gbG9jYXRpb25zIHdoZXJlIHRoZXJlIGlzIG5vIGVuY2xvc2luZyB0cnkgc3RhdGVtZW50LlxuICAgIHRoaXMudHJ5RW50cmllcyA9IFt7IHRyeUxvYzogXCJyb290XCIgfV07XG4gICAgdHJ5TG9jc0xpc3QuZm9yRWFjaChwdXNoVHJ5RW50cnksIHRoaXMpO1xuICAgIHRoaXMucmVzZXQodHJ1ZSk7XG4gIH1cblxuICBleHBvcnRzLmtleXMgPSBmdW5jdGlvbihvYmplY3QpIHtcbiAgICB2YXIga2V5cyA9IFtdO1xuICAgIGZvciAodmFyIGtleSBpbiBvYmplY3QpIHtcbiAgICAgIGtleXMucHVzaChrZXkpO1xuICAgIH1cbiAgICBrZXlzLnJldmVyc2UoKTtcblxuICAgIC8vIFJhdGhlciB0aGFuIHJldHVybmluZyBhbiBvYmplY3Qgd2l0aCBhIG5leHQgbWV0aG9kLCB3ZSBrZWVwXG4gICAgLy8gdGhpbmdzIHNpbXBsZSBhbmQgcmV0dXJuIHRoZSBuZXh0IGZ1bmN0aW9uIGl0c2VsZi5cbiAgICByZXR1cm4gZnVuY3Rpb24gbmV4dCgpIHtcbiAgICAgIHdoaWxlIChrZXlzLmxlbmd0aCkge1xuICAgICAgICB2YXIga2V5ID0ga2V5cy5wb3AoKTtcbiAgICAgICAgaWYgKGtleSBpbiBvYmplY3QpIHtcbiAgICAgICAgICBuZXh0LnZhbHVlID0ga2V5O1xuICAgICAgICAgIG5leHQuZG9uZSA9IGZhbHNlO1xuICAgICAgICAgIHJldHVybiBuZXh0O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFRvIGF2b2lkIGNyZWF0aW5nIGFuIGFkZGl0aW9uYWwgb2JqZWN0LCB3ZSBqdXN0IGhhbmcgdGhlIC52YWx1ZVxuICAgICAgLy8gYW5kIC5kb25lIHByb3BlcnRpZXMgb2ZmIHRoZSBuZXh0IGZ1bmN0aW9uIG9iamVjdCBpdHNlbGYuIFRoaXNcbiAgICAgIC8vIGFsc28gZW5zdXJlcyB0aGF0IHRoZSBtaW5pZmllciB3aWxsIG5vdCBhbm9ueW1pemUgdGhlIGZ1bmN0aW9uLlxuICAgICAgbmV4dC5kb25lID0gdHJ1ZTtcbiAgICAgIHJldHVybiBuZXh0O1xuICAgIH07XG4gIH07XG5cbiAgZnVuY3Rpb24gdmFsdWVzKGl0ZXJhYmxlKSB7XG4gICAgaWYgKGl0ZXJhYmxlKSB7XG4gICAgICB2YXIgaXRlcmF0b3JNZXRob2QgPSBpdGVyYWJsZVtpdGVyYXRvclN5bWJvbF07XG4gICAgICBpZiAoaXRlcmF0b3JNZXRob2QpIHtcbiAgICAgICAgcmV0dXJuIGl0ZXJhdG9yTWV0aG9kLmNhbGwoaXRlcmFibGUpO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIGl0ZXJhYmxlLm5leHQgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICByZXR1cm4gaXRlcmFibGU7XG4gICAgICB9XG5cbiAgICAgIGlmICghaXNOYU4oaXRlcmFibGUubGVuZ3RoKSkge1xuICAgICAgICB2YXIgaSA9IC0xLCBuZXh0ID0gZnVuY3Rpb24gbmV4dCgpIHtcbiAgICAgICAgICB3aGlsZSAoKytpIDwgaXRlcmFibGUubGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAoaGFzT3duLmNhbGwoaXRlcmFibGUsIGkpKSB7XG4gICAgICAgICAgICAgIG5leHQudmFsdWUgPSBpdGVyYWJsZVtpXTtcbiAgICAgICAgICAgICAgbmV4dC5kb25lID0gZmFsc2U7XG4gICAgICAgICAgICAgIHJldHVybiBuZXh0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIG5leHQudmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgbmV4dC5kb25lID0gdHJ1ZTtcblxuICAgICAgICAgIHJldHVybiBuZXh0O1xuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBuZXh0Lm5leHQgPSBuZXh0O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJldHVybiBhbiBpdGVyYXRvciB3aXRoIG5vIHZhbHVlcy5cbiAgICByZXR1cm4geyBuZXh0OiBkb25lUmVzdWx0IH07XG4gIH1cbiAgZXhwb3J0cy52YWx1ZXMgPSB2YWx1ZXM7XG5cbiAgZnVuY3Rpb24gZG9uZVJlc3VsdCgpIHtcbiAgICByZXR1cm4geyB2YWx1ZTogdW5kZWZpbmVkLCBkb25lOiB0cnVlIH07XG4gIH1cblxuICBDb250ZXh0LnByb3RvdHlwZSA9IHtcbiAgICBjb25zdHJ1Y3RvcjogQ29udGV4dCxcblxuICAgIHJlc2V0OiBmdW5jdGlvbihza2lwVGVtcFJlc2V0KSB7XG4gICAgICB0aGlzLnByZXYgPSAwO1xuICAgICAgdGhpcy5uZXh0ID0gMDtcbiAgICAgIC8vIFJlc2V0dGluZyBjb250ZXh0Ll9zZW50IGZvciBsZWdhY3kgc3VwcG9ydCBvZiBCYWJlbCdzXG4gICAgICAvLyBmdW5jdGlvbi5zZW50IGltcGxlbWVudGF0aW9uLlxuICAgICAgdGhpcy5zZW50ID0gdGhpcy5fc2VudCA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuZG9uZSA9IGZhbHNlO1xuICAgICAgdGhpcy5kZWxlZ2F0ZSA9IG51bGw7XG5cbiAgICAgIHRoaXMubWV0aG9kID0gXCJuZXh0XCI7XG4gICAgICB0aGlzLmFyZyA9IHVuZGVmaW5lZDtcblxuICAgICAgdGhpcy50cnlFbnRyaWVzLmZvckVhY2gocmVzZXRUcnlFbnRyeSk7XG5cbiAgICAgIGlmICghc2tpcFRlbXBSZXNldCkge1xuICAgICAgICBmb3IgKHZhciBuYW1lIGluIHRoaXMpIHtcbiAgICAgICAgICAvLyBOb3Qgc3VyZSBhYm91dCB0aGUgb3B0aW1hbCBvcmRlciBvZiB0aGVzZSBjb25kaXRpb25zOlxuICAgICAgICAgIGlmIChuYW1lLmNoYXJBdCgwKSA9PT0gXCJ0XCIgJiZcbiAgICAgICAgICAgICAgaGFzT3duLmNhbGwodGhpcywgbmFtZSkgJiZcbiAgICAgICAgICAgICAgIWlzTmFOKCtuYW1lLnNsaWNlKDEpKSkge1xuICAgICAgICAgICAgdGhpc1tuYW1lXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuXG4gICAgc3RvcDogZnVuY3Rpb24oKSB7XG4gICAgICB0aGlzLmRvbmUgPSB0cnVlO1xuXG4gICAgICB2YXIgcm9vdEVudHJ5ID0gdGhpcy50cnlFbnRyaWVzWzBdO1xuICAgICAgdmFyIHJvb3RSZWNvcmQgPSByb290RW50cnkuY29tcGxldGlvbjtcbiAgICAgIGlmIChyb290UmVjb3JkLnR5cGUgPT09IFwidGhyb3dcIikge1xuICAgICAgICB0aHJvdyByb290UmVjb3JkLmFyZztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXMucnZhbDtcbiAgICB9LFxuXG4gICAgZGlzcGF0Y2hFeGNlcHRpb246IGZ1bmN0aW9uKGV4Y2VwdGlvbikge1xuICAgICAgaWYgKHRoaXMuZG9uZSkge1xuICAgICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgICB9XG5cbiAgICAgIHZhciBjb250ZXh0ID0gdGhpcztcbiAgICAgIGZ1bmN0aW9uIGhhbmRsZShsb2MsIGNhdWdodCkge1xuICAgICAgICByZWNvcmQudHlwZSA9IFwidGhyb3dcIjtcbiAgICAgICAgcmVjb3JkLmFyZyA9IGV4Y2VwdGlvbjtcbiAgICAgICAgY29udGV4dC5uZXh0ID0gbG9jO1xuXG4gICAgICAgIGlmIChjYXVnaHQpIHtcbiAgICAgICAgICAvLyBJZiB0aGUgZGlzcGF0Y2hlZCBleGNlcHRpb24gd2FzIGNhdWdodCBieSBhIGNhdGNoIGJsb2NrLFxuICAgICAgICAgIC8vIHRoZW4gbGV0IHRoYXQgY2F0Y2ggYmxvY2sgaGFuZGxlIHRoZSBleGNlcHRpb24gbm9ybWFsbHkuXG4gICAgICAgICAgY29udGV4dC5tZXRob2QgPSBcIm5leHRcIjtcbiAgICAgICAgICBjb250ZXh0LmFyZyA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAhISBjYXVnaHQ7XG4gICAgICB9XG5cbiAgICAgIGZvciAodmFyIGkgPSB0aGlzLnRyeUVudHJpZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyAtLWkpIHtcbiAgICAgICAgdmFyIGVudHJ5ID0gdGhpcy50cnlFbnRyaWVzW2ldO1xuICAgICAgICB2YXIgcmVjb3JkID0gZW50cnkuY29tcGxldGlvbjtcblxuICAgICAgICBpZiAoZW50cnkudHJ5TG9jID09PSBcInJvb3RcIikge1xuICAgICAgICAgIC8vIEV4Y2VwdGlvbiB0aHJvd24gb3V0c2lkZSBvZiBhbnkgdHJ5IGJsb2NrIHRoYXQgY291bGQgaGFuZGxlXG4gICAgICAgICAgLy8gaXQsIHNvIHNldCB0aGUgY29tcGxldGlvbiB2YWx1ZSBvZiB0aGUgZW50aXJlIGZ1bmN0aW9uIHRvXG4gICAgICAgICAgLy8gdGhyb3cgdGhlIGV4Y2VwdGlvbi5cbiAgICAgICAgICByZXR1cm4gaGFuZGxlKFwiZW5kXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGVudHJ5LnRyeUxvYyA8PSB0aGlzLnByZXYpIHtcbiAgICAgICAgICB2YXIgaGFzQ2F0Y2ggPSBoYXNPd24uY2FsbChlbnRyeSwgXCJjYXRjaExvY1wiKTtcbiAgICAgICAgICB2YXIgaGFzRmluYWxseSA9IGhhc093bi5jYWxsKGVudHJ5LCBcImZpbmFsbHlMb2NcIik7XG5cbiAgICAgICAgICBpZiAoaGFzQ2F0Y2ggJiYgaGFzRmluYWxseSkge1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGVudHJ5LmNhdGNoTG9jKSB7XG4gICAgICAgICAgICAgIHJldHVybiBoYW5kbGUoZW50cnkuY2F0Y2hMb2MsIHRydWUpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnByZXYgPCBlbnRyeS5maW5hbGx5TG9jKSB7XG4gICAgICAgICAgICAgIHJldHVybiBoYW5kbGUoZW50cnkuZmluYWxseUxvYyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICB9IGVsc2UgaWYgKGhhc0NhdGNoKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5wcmV2IDwgZW50cnkuY2F0Y2hMb2MpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGhhbmRsZShlbnRyeS5jYXRjaExvYywgdHJ1ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICB9IGVsc2UgaWYgKGhhc0ZpbmFsbHkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnByZXYgPCBlbnRyeS5maW5hbGx5TG9jKSB7XG4gICAgICAgICAgICAgIHJldHVybiBoYW5kbGUoZW50cnkuZmluYWxseUxvYyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwidHJ5IHN0YXRlbWVudCB3aXRob3V0IGNhdGNoIG9yIGZpbmFsbHlcIik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcblxuICAgIGFicnVwdDogZnVuY3Rpb24odHlwZSwgYXJnKSB7XG4gICAgICBmb3IgKHZhciBpID0gdGhpcy50cnlFbnRyaWVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgLS1pKSB7XG4gICAgICAgIHZhciBlbnRyeSA9IHRoaXMudHJ5RW50cmllc1tpXTtcbiAgICAgICAgaWYgKGVudHJ5LnRyeUxvYyA8PSB0aGlzLnByZXYgJiZcbiAgICAgICAgICAgIGhhc093bi5jYWxsKGVudHJ5LCBcImZpbmFsbHlMb2NcIikgJiZcbiAgICAgICAgICAgIHRoaXMucHJldiA8IGVudHJ5LmZpbmFsbHlMb2MpIHtcbiAgICAgICAgICB2YXIgZmluYWxseUVudHJ5ID0gZW50cnk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGZpbmFsbHlFbnRyeSAmJlxuICAgICAgICAgICh0eXBlID09PSBcImJyZWFrXCIgfHxcbiAgICAgICAgICAgdHlwZSA9PT0gXCJjb250aW51ZVwiKSAmJlxuICAgICAgICAgIGZpbmFsbHlFbnRyeS50cnlMb2MgPD0gYXJnICYmXG4gICAgICAgICAgYXJnIDw9IGZpbmFsbHlFbnRyeS5maW5hbGx5TG9jKSB7XG4gICAgICAgIC8vIElnbm9yZSB0aGUgZmluYWxseSBlbnRyeSBpZiBjb250cm9sIGlzIG5vdCBqdW1waW5nIHRvIGFcbiAgICAgICAgLy8gbG9jYXRpb24gb3V0c2lkZSB0aGUgdHJ5L2NhdGNoIGJsb2NrLlxuICAgICAgICBmaW5hbGx5RW50cnkgPSBudWxsO1xuICAgICAgfVxuXG4gICAgICB2YXIgcmVjb3JkID0gZmluYWxseUVudHJ5ID8gZmluYWxseUVudHJ5LmNvbXBsZXRpb24gOiB7fTtcbiAgICAgIHJlY29yZC50eXBlID0gdHlwZTtcbiAgICAgIHJlY29yZC5hcmcgPSBhcmc7XG5cbiAgICAgIGlmIChmaW5hbGx5RW50cnkpIHtcbiAgICAgICAgdGhpcy5tZXRob2QgPSBcIm5leHRcIjtcbiAgICAgICAgdGhpcy5uZXh0ID0gZmluYWxseUVudHJ5LmZpbmFsbHlMb2M7XG4gICAgICAgIHJldHVybiBDb250aW51ZVNlbnRpbmVsO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5jb21wbGV0ZShyZWNvcmQpO1xuICAgIH0sXG5cbiAgICBjb21wbGV0ZTogZnVuY3Rpb24ocmVjb3JkLCBhZnRlckxvYykge1xuICAgICAgaWYgKHJlY29yZC50eXBlID09PSBcInRocm93XCIpIHtcbiAgICAgICAgdGhyb3cgcmVjb3JkLmFyZztcbiAgICAgIH1cblxuICAgICAgaWYgKHJlY29yZC50eXBlID09PSBcImJyZWFrXCIgfHxcbiAgICAgICAgICByZWNvcmQudHlwZSA9PT0gXCJjb250aW51ZVwiKSB7XG4gICAgICAgIHRoaXMubmV4dCA9IHJlY29yZC5hcmc7XG4gICAgICB9IGVsc2UgaWYgKHJlY29yZC50eXBlID09PSBcInJldHVyblwiKSB7XG4gICAgICAgIHRoaXMucnZhbCA9IHRoaXMuYXJnID0gcmVjb3JkLmFyZztcbiAgICAgICAgdGhpcy5tZXRob2QgPSBcInJldHVyblwiO1xuICAgICAgICB0aGlzLm5leHQgPSBcImVuZFwiO1xuICAgICAgfSBlbHNlIGlmIChyZWNvcmQudHlwZSA9PT0gXCJub3JtYWxcIiAmJiBhZnRlckxvYykge1xuICAgICAgICB0aGlzLm5leHQgPSBhZnRlckxvYztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gICAgfSxcblxuICAgIGZpbmlzaDogZnVuY3Rpb24oZmluYWxseUxvYykge1xuICAgICAgZm9yICh2YXIgaSA9IHRoaXMudHJ5RW50cmllcy5sZW5ndGggLSAxOyBpID49IDA7IC0taSkge1xuICAgICAgICB2YXIgZW50cnkgPSB0aGlzLnRyeUVudHJpZXNbaV07XG4gICAgICAgIGlmIChlbnRyeS5maW5hbGx5TG9jID09PSBmaW5hbGx5TG9jKSB7XG4gICAgICAgICAgdGhpcy5jb21wbGV0ZShlbnRyeS5jb21wbGV0aW9uLCBlbnRyeS5hZnRlckxvYyk7XG4gICAgICAgICAgcmVzZXRUcnlFbnRyeShlbnRyeSk7XG4gICAgICAgICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuXG4gICAgXCJjYXRjaFwiOiBmdW5jdGlvbih0cnlMb2MpIHtcbiAgICAgIGZvciAodmFyIGkgPSB0aGlzLnRyeUVudHJpZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyAtLWkpIHtcbiAgICAgICAgdmFyIGVudHJ5ID0gdGhpcy50cnlFbnRyaWVzW2ldO1xuICAgICAgICBpZiAoZW50cnkudHJ5TG9jID09PSB0cnlMb2MpIHtcbiAgICAgICAgICB2YXIgcmVjb3JkID0gZW50cnkuY29tcGxldGlvbjtcbiAgICAgICAgICBpZiAocmVjb3JkLnR5cGUgPT09IFwidGhyb3dcIikge1xuICAgICAgICAgICAgdmFyIHRocm93biA9IHJlY29yZC5hcmc7XG4gICAgICAgICAgICByZXNldFRyeUVudHJ5KGVudHJ5KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRocm93bjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBUaGUgY29udGV4dC5jYXRjaCBtZXRob2QgbXVzdCBvbmx5IGJlIGNhbGxlZCB3aXRoIGEgbG9jYXRpb25cbiAgICAgIC8vIGFyZ3VtZW50IHRoYXQgY29ycmVzcG9uZHMgdG8gYSBrbm93biBjYXRjaCBibG9jay5cbiAgICAgIHRocm93IG5ldyBFcnJvcihcImlsbGVnYWwgY2F0Y2ggYXR0ZW1wdFwiKTtcbiAgICB9LFxuXG4gICAgZGVsZWdhdGVZaWVsZDogZnVuY3Rpb24oaXRlcmFibGUsIHJlc3VsdE5hbWUsIG5leHRMb2MpIHtcbiAgICAgIHRoaXMuZGVsZWdhdGUgPSB7XG4gICAgICAgIGl0ZXJhdG9yOiB2YWx1ZXMoaXRlcmFibGUpLFxuICAgICAgICByZXN1bHROYW1lOiByZXN1bHROYW1lLFxuICAgICAgICBuZXh0TG9jOiBuZXh0TG9jXG4gICAgICB9O1xuXG4gICAgICBpZiAodGhpcy5tZXRob2QgPT09IFwibmV4dFwiKSB7XG4gICAgICAgIC8vIERlbGliZXJhdGVseSBmb3JnZXQgdGhlIGxhc3Qgc2VudCB2YWx1ZSBzbyB0aGF0IHdlIGRvbid0XG4gICAgICAgIC8vIGFjY2lkZW50YWxseSBwYXNzIGl0IG9uIHRvIHRoZSBkZWxlZ2F0ZS5cbiAgICAgICAgdGhpcy5hcmcgPSB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBDb250aW51ZVNlbnRpbmVsO1xuICAgIH1cbiAgfTtcblxuICAvLyBSZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhpcyBzY3JpcHQgaXMgZXhlY3V0aW5nIGFzIGEgQ29tbW9uSlMgbW9kdWxlXG4gIC8vIG9yIG5vdCwgcmV0dXJuIHRoZSBydW50aW1lIG9iamVjdCBzbyB0aGF0IHdlIGNhbiBkZWNsYXJlIHRoZSB2YXJpYWJsZVxuICAvLyByZWdlbmVyYXRvclJ1bnRpbWUgaW4gdGhlIG91dGVyIHNjb3BlLCB3aGljaCBhbGxvd3MgdGhpcyBtb2R1bGUgdG8gYmVcbiAgLy8gaW5qZWN0ZWQgZWFzaWx5IGJ5IGBiaW4vcmVnZW5lcmF0b3IgLS1pbmNsdWRlLXJ1bnRpbWUgc2NyaXB0LmpzYC5cbiAgcmV0dXJuIGV4cG9ydHM7XG5cbn0oXG4gIC8vIElmIHRoaXMgc2NyaXB0IGlzIGV4ZWN1dGluZyBhcyBhIENvbW1vbkpTIG1vZHVsZSwgdXNlIG1vZHVsZS5leHBvcnRzXG4gIC8vIGFzIHRoZSByZWdlbmVyYXRvclJ1bnRpbWUgbmFtZXNwYWNlLiBPdGhlcndpc2UgY3JlYXRlIGEgbmV3IGVtcHR5XG4gIC8vIG9iamVjdC4gRWl0aGVyIHdheSwgdGhlIHJlc3VsdGluZyBvYmplY3Qgd2lsbCBiZSB1c2VkIHRvIGluaXRpYWxpemVcbiAgLy8gdGhlIHJlZ2VuZXJhdG9yUnVudGltZSB2YXJpYWJsZSBhdCB0aGUgdG9wIG9mIHRoaXMgZmlsZS5cbiAgdHlwZW9mIG1vZHVsZSA9PT0gXCJvYmplY3RcIiA/IG1vZHVsZS5leHBvcnRzIDoge31cbikpO1xuXG50cnkge1xuICByZWdlbmVyYXRvclJ1bnRpbWUgPSBydW50aW1lO1xufSBjYXRjaCAoYWNjaWRlbnRhbFN0cmljdE1vZGUpIHtcbiAgLy8gVGhpcyBtb2R1bGUgc2hvdWxkIG5vdCBiZSBydW5uaW5nIGluIHN0cmljdCBtb2RlLCBzbyB0aGUgYWJvdmVcbiAgLy8gYXNzaWdubWVudCBzaG91bGQgYWx3YXlzIHdvcmsgdW5sZXNzIHNvbWV0aGluZyBpcyBtaXNjb25maWd1cmVkLiBKdXN0XG4gIC8vIGluIGNhc2UgcnVudGltZS5qcyBhY2NpZGVudGFsbHkgcnVucyBpbiBzdHJpY3QgbW9kZSwgd2UgY2FuIGVzY2FwZVxuICAvLyBzdHJpY3QgbW9kZSB1c2luZyBhIGdsb2JhbCBGdW5jdGlvbiBjYWxsLiBUaGlzIGNvdWxkIGNvbmNlaXZhYmx5IGZhaWxcbiAgLy8gaWYgYSBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBmb3JiaWRzIHVzaW5nIEZ1bmN0aW9uLCBidXQgaW4gdGhhdCBjYXNlXG4gIC8vIHRoZSBwcm9wZXIgc29sdXRpb24gaXMgdG8gZml4IHRoZSBhY2NpZGVudGFsIHN0cmljdCBtb2RlIHByb2JsZW0uIElmXG4gIC8vIHlvdSd2ZSBtaXNjb25maWd1cmVkIHlvdXIgYnVuZGxlciB0byBmb3JjZSBzdHJpY3QgbW9kZSBhbmQgYXBwbGllZCBhXG4gIC8vIENTUCB0byBmb3JiaWQgRnVuY3Rpb24sIGFuZCB5b3UncmUgbm90IHdpbGxpbmcgdG8gZml4IGVpdGhlciBvZiB0aG9zZVxuICAvLyBwcm9ibGVtcywgcGxlYXNlIGRldGFpbCB5b3VyIHVuaXF1ZSBwcmVkaWNhbWVudCBpbiBhIEdpdEh1YiBpc3N1ZS5cbiAgRnVuY3Rpb24oXCJyXCIsIFwicmVnZW5lcmF0b3JSdW50aW1lID0gclwiKShydW50aW1lKTtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/regenerator-runtime/runtime.js\n"); /***/ }), diff --git a/sites/afcc/_next/static/chunks/ef4d5ca1bb17fc2558817e2fd8d6e7eaac76ba76.acc29ad04c565bfa4dbf.js b/sites/afcc/_next/static/chunks/ef4d5ca1bb17fc2558817e2fd8d6e7eaac76ba76.acc29ad04c565bfa4dbf.js deleted file mode 100644 index 9e29a07255b88a307005ff2c6a4ab8013f5f2466..0000000000000000000000000000000000000000 --- a/sites/afcc/_next/static/chunks/ef4d5ca1bb17fc2558817e2fd8d6e7eaac76ba76.acc29ad04c565bfa4dbf.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp_N_E=window.webpackJsonp_N_E||[]).push([[2],{"/jkW":function(t,e,r){"use strict";e.__esModule=!0,e.isDynamicRoute=function(t){return n.test(t)};var n=/\/\[[^/]+?\](?=\/|$)/},"0Bsm":function(t,e,r){"use strict";var n=r("TqRt");e.__esModule=!0,e.default=function(t){function e(e){return o.default.createElement(t,Object.assign({router:(0,a.useRouter)()},e))}e.getInitialProps=t.getInitialProps,e.origGetInitialProps=t.origGetInitialProps,!1;return e};var o=n(r("q1tI")),a=r("nOHt")},"284h":function(t,e,r){var n=r("cDf5");function o(){if("function"!==typeof WeakMap)return null;var t=new WeakMap;return o=function(){return t},t}t.exports=function(t){if(t&&t.__esModule)return t;if(null===t||"object"!==n(t)&&"function"!==typeof t)return{default:t};var e=o();if(e&&e.has(t))return e.get(t);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in t)if(Object.prototype.hasOwnProperty.call(t,i)){var u=a?Object.getOwnPropertyDescriptor(t,i):null;u&&(u.get||u.set)?Object.defineProperty(r,i,u):r[i]=t[i]}return r.default=t,e&&e.set(t,r),r}},"4JlD":function(t,e,r){"use strict";var n=function(t){switch(typeof t){case"string":return t;case"boolean":return t?"true":"false";case"number":return isFinite(t)?t:"";default:return""}};t.exports=function(t,e,r,u){return e=e||"&",r=r||"=",null===t&&(t=void 0),"object"===typeof t?a(i(t),(function(i){var u=encodeURIComponent(n(i))+r;return o(t[i])?a(t[i],(function(t){return u+encodeURIComponent(n(t))})).join(e):u+encodeURIComponent(n(t[i]))})).join(e):u?encodeURIComponent(n(u))+r+encodeURIComponent(n(t)):""};var o=Array.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)};function a(t,e){if(t.map)return t.map(e);for(var r=[],n=0;nt.length)&&(e=t.length);for(var r=0,n=new Array(e);r>>0,1)},emit:function(e){for(var r=arguments.length,n=new Array(r>1?r-1:0),o=1;o1&&n.status>=500)return t(e,r-1);throw new Error("Failed to load static props")}return n.json()}))}(t,e?3:1).catch((function(t){throw e||(t.code="PAGE_LOAD_ERROR"),t}))}var P=function(){function t(e,r,n,o){var a=this,u=o.initialProps,c=o.pageLoader,s=o.App,h=o.wrapApp,p=o.Component,v=o.err,m=o.subscription,w=o.isFallback;i(this,t),this.route=void 0,this.pathname=void 0,this.query=void 0,this.asPath=void 0,this.basePath=void 0,this.components=void 0,this.sdc={},this.sub=void 0,this.clc=void 0,this.pageLoader=void 0,this._bps=void 0,this.events=void 0,this._wrapApp=void 0,this.isSsr=void 0,this.isFallback=void 0,this._inFlightRoute=void 0,this.onPopState=function(t){if(t.state){var e=t.state,r=e.url,n=e.as,o=e.options;if(e.__N){var i=(0,d.parseRelativeUrl)(r).pathname;a.isSsr&&n===a.asPath&&i===a.pathname||a._bps&&!a._bps(t.state)||a.change("replaceState",r,n,o)}}else{var u=a.pathname,c=a.query;a.changeState("replaceState",(0,l.formatWithValidation)({pathname:b(u),query:c}),(0,l.getURL)())}},this.route=(0,y.removePathTrailingSlash)(e),this.components={},"/_error"!==e&&(this.components[this.route]={Component:p,props:u,err:v,__N_SSG:u&&u.__N_SSG,__N_SSP:u&&u.__N_SSP}),this.components["/_app"]={Component:s},this.events=t.events,this.pageLoader=c,this.pathname=e,this.query=r,this.asPath=(0,f.isDynamicRoute)(e)&&__NEXT_DATA__.autoExport?e:n,this.basePath=g,this.sub=m,this.clc=null,this._wrapApp=h,this.isSsr=!0,this.isFallback=w,"//"!==n.substr(0,2)&&this.changeState("replaceState",(0,l.formatWithValidation)({pathname:b(e),query:r}),(0,l.getURL)()),window.addEventListener("popstate",this.onPopState)}return u(t,[{key:"update",value:function(t,e){var r=e.default||e,n=this.components[t];if(!n)throw new Error("Cannot update unavailable route: ".concat(t));var o=Object.assign({},n,{Component:r,__N_SSG:e.__N_SSG,__N_SSP:e.__N_SSP});this.components[t]=o,"/_app"!==t?t===this.route&&this.notify(o):this.notify(this.components[this.route])}},{key:"reload",value:function(){window.location.reload()}},{key:"back",value:function(){window.history.back()}},{key:"push",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=x(this,t,e);return t=n.url,e=n.as,this.change("pushState",t,e,r)}},{key:"replace",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=x(this,t,e);return t=n.url,e=n.as,this.change("replaceState",t,e,r)}},{key:"change",value:function(){var e=a(o.mark((function e(r,n,a,i){var u,c,s,g,m,b,_,x,k,P,R,E,O,C;return o.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i._h||(this.isSsr=!1),l.ST&&performance.mark("routeChange"),this._inFlightRoute&&this.abortComponentLoad(this._inFlightRoute),u=w(a),this._inFlightRoute=a,i._h||!this.onlyAHashChange(u)){e.next=13;break}return this.asPath=u,t.events.emit("hashChangeStart",a),this.changeState(r,n,a,i),this.scrollToHash(u),t.events.emit("hashChangeComplete",a),e.abrupt("return",!0);case 13:if(c=S(n)){e.next=16;break}return e.abrupt("return",!1);case 16:if(s=c.pathname,g=c.searchParams,m=(0,v.searchParamsToUrlQuery)(g),s=s?(0,y.removePathTrailingSlash)(w(s)):s,this.urlIsNew(u)||(r="replaceState"),b=(0,y.removePathTrailingSlash)(s),_=i.shallow,x=void 0!==_&&_,!(0,f.isDynamicRoute)(b)){e.next=34;break}if(k=(0,d.parseRelativeUrl)(u),P=k.pathname,R=(0,p.getRouteRegex)(b),E=(0,h.getRouteMatcher)(R)(P)){e.next=33;break}if(!(Object.keys(R.groups).filter((function(t){return!m[t]})).length>0)){e.next=31;break}throw new Error("The provided `as` value (".concat(P,") is incompatible with the `href` value (").concat(b,"). ")+"Read more: https://err.sh/vercel/next.js/incompatible-href-as");case 31:e.next=34;break;case 33:Object.assign(m,E);case 34:return t.events.emit("routeChangeStart",a),e.prev=35,e.next=38,this.getRouteInfo(b,s,m,a,x);case 38:return O=e.sent,C=O.error,t.events.emit("beforeHistoryChange",a),this.changeState(r,n,a,i),e.next=45,this.set(b,s,m,u,O);case 45:if(!C){e.next=48;break}throw t.events.emit("routeChangeError",C,u),C;case 48:return t.events.emit("routeChangeComplete",a),e.abrupt("return",!0);case 53:if(e.prev=53,e.t0=e.catch(35),!e.t0.cancelled){e.next=57;break}return e.abrupt("return",!1);case 57:throw e.t0;case 58:case"end":return e.stop()}}),e,this,[[35,53]])})));return function(t,r,n,o){return e.apply(this,arguments)}}()},{key:"changeState",value:function(t,e,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};"pushState"===t&&(0,l.getURL)()===r||window.history[t]({url:e,as:r,options:n,__N:!0},"",r)}},{key:"handleRouteInfoError",value:function(){var e=a(o.mark((function e(r,n,a,i,u){var c,s,l;return o.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!r.cancelled){e.next=2;break}throw r;case 2:if("PAGE_LOAD_ERROR"!==r.code&&!u){e.next=6;break}throw t.events.emit("routeChangeError",r,i),window.location.href=i,m();case 6:return e.prev=6,e.next=9,this.fetchComponent("/_error");case 9:return c=e.sent,s=c.page,l={Component:s,err:r,error:r},e.prev=12,e.next=15,this.getInitialProps(s,{err:r,pathname:n,query:a});case 15:l.props=e.sent,e.next=22;break;case 18:e.prev=18,e.t0=e.catch(12),console.error("Error in error page `getInitialProps`: ",e.t0),l.props={};case 22:return e.abrupt("return",l);case 25:return e.prev=25,e.t1=e.catch(6),e.abrupt("return",this.handleRouteInfoError(e.t1,n,a,i,!0));case 28:case"end":return e.stop()}}),e,this,[[6,25],[12,18]])})));return function(t,r,n,o,a){return e.apply(this,arguments)}}()},{key:"getRouteInfo",value:function(){var t=a(o.mark((function t(e,r,n,a){var i,u,c,s,f,h,p,v,d=this,y=arguments;return o.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(i=y.length>4&&void 0!==y[4]&&y[4],t.prev=1,u=this.components[e],!i||!u||this.route!==e){t.next=5;break}return t.abrupt("return",u);case 5:if(!u){t.next=9;break}t.t0=u,t.next=12;break;case 9:return t.next=11,this.fetchComponent(e).then((function(t){return{Component:t.page,__N_SSG:t.mod.__N_SSG,__N_SSP:t.mod.__N_SSP}}));case 11:t.t0=t.sent;case 12:c=t.t0,s=c.Component,f=c.__N_SSG,h=c.__N_SSP,t.next=18;break;case 18:return(f||h)&&(p=this.pageLoader.getDataHref((0,l.formatWithValidation)({pathname:r,query:n}),a,f)),t.next=21,this._getData((function(){return f?d._getStaticData(p):h?d._getServerData(p):d.getInitialProps(s,{pathname:r,query:n,asPath:a})}));case 21:return v=t.sent,c.props=v,this.components[e]=c,t.abrupt("return",c);case 27:return t.prev=27,t.t1=t.catch(1),t.abrupt("return",this.handleRouteInfoError(t.t1,r,n,a));case 30:case"end":return t.stop()}}),t,this,[[1,27]])})));return function(e,r,n,o){return t.apply(this,arguments)}}()},{key:"set",value:function(t,e,r,n,o){return this.isFallback=!1,this.route=t,this.pathname=e,this.query=r,this.asPath=n,this.notify(o)}},{key:"beforePopState",value:function(t){this._bps=t}},{key:"onlyAHashChange",value:function(t){if(!this.asPath)return!1;var e=this.asPath.split("#"),r=n(e,2),o=r[0],a=r[1],i=t.split("#"),u=n(i,2),c=u[0],s=u[1];return!(!s||o!==c||a!==s)||o===c&&a!==s}},{key:"scrollToHash",value:function(t){var e=t.split("#"),r=n(e,2)[1];if(""!==r){var o=document.getElementById(r);if(o)o.scrollIntoView();else{var a=document.getElementsByName(r)[0];a&&a.scrollIntoView()}}else window.scrollTo(0,0)}},{key:"urlIsNew",value:function(t){return this.asPath!==t}},{key:"prefetch",value:function(){var t=a(o.mark((function t(e){var r,n,a,i,u,c=arguments;return o.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r=c.length>1&&void 0!==c[1]?c[1]:e,n=c.length>2&&void 0!==c[2]?c[2]:{},a=S(e)){t.next=5;break}return t.abrupt("return");case 5:i=a.pathname,t.next=8;break;case 8:return u=(0,y.removePathTrailingSlash)(i),t.next=11,Promise.all([this.pageLoader.prefetchData(e,r),this.pageLoader[n.priority?"loadPage":"prefetch"](u)]);case 11:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}()},{key:"fetchComponent",value:function(){var t=a(o.mark((function t(e){var r,n,a,i;return o.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=!1,n=this.clc=function(){r=!0},t.next=4,this.pageLoader.loadPage(e);case 4:if(a=t.sent,!r){t.next=9;break}throw(i=new Error('Abort fetching component for route: "'.concat(e,'"'))).cancelled=!0,i;case 9:return n===this.clc&&(this.clc=null),t.abrupt("return",a);case 11:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}()},{key:"_getData",value:function(t){var e=this,r=!1,n=function(){r=!0};return this.clc=n,t().then((function(t){if(n===e.clc&&(e.clc=null),r){var o=new Error("Loading initial props cancelled");throw o.cancelled=!0,o}return t}))}},{key:"_getStaticData",value:function(t){var e=this,r=new URL(t,window.location.href).href;return this.sdc[r]?Promise.resolve(this.sdc[r]):k(t,this.isSsr).then((function(t){return e.sdc[r]=t,t}))}},{key:"_getServerData",value:function(t){return k(t,this.isSsr)}},{key:"getInitialProps",value:function(t,e){var r=this.components["/_app"].Component,n=this._wrapApp(r);return e.AppTree=n,(0,l.loadGetInitialProps)(r,{AppTree:n,Component:t,router:this,ctx:e})}},{key:"abortComponentLoad",value:function(e){this.clc&&(t.events.emit("routeChangeError",m(),e),this.clc(),this.clc=null)}},{key:"notify",value:function(t){return this.sub(t,this.components["/_app"].Component)}}],[{key:"_rewriteUrlForNextExport",value:function(t){return t}}]),t}();e.default=P,P.events=(0,s.default)()},"g/15":function(t,e,r){"use strict";var n=r("o0o1"),o=r("yXPU");e.__esModule=!0,e.execOnce=function(t){var e,r=!1;return function(){return r||(r=!0,e=t.apply(void 0,arguments)),e}},e.getLocationOrigin=i,e.getURL=function(){var t=window.location.href,e=i();return t.substring(e.length)},e.getDisplayName=u,e.isResSent=c,e.loadGetInitialProps=s,e.formatWithValidation=function(t){0;return(0,a.formatUrl)(t)},e.ST=e.SP=e.urlObjectKeys=void 0;var a=r("6D7l");function i(){var t=window.location,e=t.protocol,r=t.hostname,n=t.port;return"".concat(e,"//").concat(r).concat(n?":"+n:"")}function u(t){return"string"===typeof t?t:t.displayName||t.name||"Unknown"}function c(t){return t.finished||t.headersSent}function s(t,e){return l.apply(this,arguments)}function l(){return(l=o(n.mark((function t(e,r){var o,a,i;return n.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:t.next=4;break;case 4:if(o=r.res||r.ctx&&r.ctx.res,e.getInitialProps){t.next=12;break}if(!r.ctx||!r.Component){t.next=11;break}return t.next=9,s(r.Component,r.ctx);case 9:return t.t0=t.sent,t.abrupt("return",{pageProps:t.t0});case 11:return t.abrupt("return",{});case 12:return t.next=14,e.getInitialProps(r);case 14:if(a=t.sent,!o||!c(o)){t.next=17;break}return t.abrupt("return",a);case 17:if(a){t.next=20;break}throw i='"'.concat(u(e),'.getInitialProps()" should resolve to an object. But found "').concat(a,'" instead.'),new Error(i);case 20:return t.abrupt("return",a);case 22:case"end":return t.stop()}}),t)})))).apply(this,arguments)}e.urlObjectKeys=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];var f="undefined"!==typeof performance;e.SP=f;var h=f&&"function"===typeof performance.mark&&"function"===typeof performance.measure;e.ST=h},gguc:function(t,e,r){"use strict";e.__esModule=!0,e.getRouteMatcher=function(t){var e=t.re,r=t.groups;return function(t){var n=e.exec(t);if(!n)return!1;var o=function(t){try{return decodeURIComponent(t)}catch(r){var e=new Error("failed to decode param");throw e.code="DECODE_FAILED",e}},a={};return Object.keys(r).forEach((function(t){var e=r[t],i=n[e.pos];void 0!==i&&(a[t]=~i.indexOf("/")?i.split("/").map((function(t){return o(t)})):e.repeat?[o(i)]:o(i))})),a}}},hS4m:function(t,e,r){"use strict";e.__esModule=!0,e.parseRelativeUrl=function(t,e){var r=e?new URL(e,n):n,o=new URL(t,r),a=o.pathname,i=o.searchParams,u=o.search,c=o.hash,s=o.href;if(o.origin!==n.origin)throw new Error("invariant: invalid relative URL");return{pathname:a,searchParams:i,search:u,hash:c,href:s.slice(n.origin.length)}};var n=new URL("http://n")},kd2E:function(t,e,r){"use strict";function n(t,e){return Object.prototype.hasOwnProperty.call(t,e)}t.exports=function(t,e,r,a){e=e||"&",r=r||"=";var i={};if("string"!==typeof t||0===t.length)return i;var u=/\+/g;t=t.split(e);var c=1e3;a&&"number"===typeof a.maxKeys&&(c=a.maxKeys);var s=t.length;c>0&&s>c&&(s=c);for(var l=0;l=0?(f=d.substr(0,y),h=d.substr(y+1)):(f=d,h=""),p=decodeURIComponent(f),v=decodeURIComponent(h),n(i,p)?o(i[p])?i[p].push(v):i[p]=[i[p],v]:i[p]=v}return i};var o=Array.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)}},ls82:function(t,e,r){var n=function(t){"use strict";var e,r=Object.prototype,n=r.hasOwnProperty,o="function"===typeof Symbol?Symbol:{},a=o.iterator||"@@iterator",i=o.asyncIterator||"@@asyncIterator",u=o.toStringTag||"@@toStringTag";function c(t,e,r,n){var o=e&&e.prototype instanceof d?e:d,a=Object.create(o.prototype),i=new E(n||[]);return a._invoke=function(t,e,r){var n=l;return function(o,a){if(n===h)throw new Error("Generator is already running");if(n===p){if("throw"===o)throw a;return C()}for(r.method=o,r.arg=a;;){var i=r.delegate;if(i){var u=k(i,r);if(u){if(u===v)continue;return u}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(n===l)throw n=p,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n=h;var c=s(t,e,r);if("normal"===c.type){if(n=r.done?p:f,c.arg===v)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(n=p,r.method="throw",r.arg=c.arg)}}}(t,r,i),a}function s(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(n){return{type:"throw",arg:n}}}t.wrap=c;var l="suspendedStart",f="suspendedYield",h="executing",p="completed",v={};function d(){}function y(){}function g(){}var m={};m[a]=function(){return this};var b=Object.getPrototypeOf,w=b&&b(b(O([])));w&&w!==r&&n.call(w,a)&&(m=w);var _=g.prototype=d.prototype=Object.create(m);function x(t){["next","throw","return"].forEach((function(e){t[e]=function(t){return this._invoke(e,t)}}))}function S(t,e){var r;this._invoke=function(o,a){function i(){return new e((function(r,i){!function r(o,a,i,u){var c=s(t[o],t,a);if("throw"!==c.type){var l=c.arg,f=l.value;return f&&"object"===typeof f&&n.call(f,"__await")?e.resolve(f.__await).then((function(t){r("next",t,i,u)}),(function(t){r("throw",t,i,u)})):e.resolve(f).then((function(t){l.value=t,i(l)}),(function(t){return r("throw",t,i,u)}))}u(c.arg)}(o,a,r,i)}))}return r=r?r.then(i,i):i()}}function k(t,r){var n=t.iterator[r.method];if(n===e){if(r.delegate=null,"throw"===r.method){if(t.iterator.return&&(r.method="return",r.arg=e,k(t,r),"throw"===r.method))return v;r.method="throw",r.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var o=s(n,t.iterator,r.arg);if("throw"===o.type)return r.method="throw",r.arg=o.arg,r.delegate=null,v;var a=o.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,v):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function P(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function R(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function E(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(P,this),this.reset(!0)}function O(t){if(t){var r=t[a];if(r)return r.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var o=-1,i=function r(){for(;++o=0;--a){var i=this.tryEntries[a],u=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var c=n.call(i,"catchLoc"),s=n.call(i,"finallyLoc");if(c&&s){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),R(r),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;R(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:O(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=n}catch(o){Function("r","regeneratorRuntime = r")(n)}},lwsE:function(t,e){t.exports=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}},m0LI:function(t,e){t.exports=function(t,e){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(t)){var r=[],n=!0,o=!1,a=void 0;try{for(var i,u=t[Symbol.iterator]();!(n=(i=u.next()).done)&&(r.push(i.value),!e||r.length!==e);n=!0);}catch(c){o=!0,a=c}finally{try{n||null==u.return||u.return()}finally{if(o)throw a}}return r}}},nOHt:function(t,e,r){"use strict";var n=r("sXyB");function o(t,e){var r;if("undefined"===typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(r=function(t,e){if(!t)return;if("string"===typeof t)return a(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);"Object"===r&&t.constructor&&(r=t.constructor.name);if("Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return a(t,e)}(t))||e&&t&&"number"===typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,u=!0,c=!1;return{s:function(){r=t[Symbol.iterator]()},n:function(){var t=r.next();return u=t.done,t},e:function(t){c=!0,i=t},f:function(){try{u||null==r.return||r.return()}finally{if(c)throw i}}}}function a(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);rt.length)&&(e=t.length);for(var r=0,n=new Array(e);r>>0,1)},emit:function(e){for(var r=arguments.length,n=new Array(r>1?r-1:0),o=1;o1&&n.status>=500)return t(e,r-1);throw new Error("Failed to load static props")}return n.json()}))}(t,e?3:1).catch((function(t){throw e||(t.code="PAGE_LOAD_ERROR"),t}))}var P=function(){function t(e,r,n,o){var a=this,u=o.initialProps,c=o.pageLoader,s=o.App,h=o.wrapApp,p=o.Component,v=o.err,m=o.subscription,w=o.isFallback;i(this,t),this.route=void 0,this.pathname=void 0,this.query=void 0,this.asPath=void 0,this.basePath=void 0,this.components=void 0,this.sdc={},this.sub=void 0,this.clc=void 0,this.pageLoader=void 0,this._bps=void 0,this.events=void 0,this._wrapApp=void 0,this.isSsr=void 0,this.isFallback=void 0,this._inFlightRoute=void 0,this.onPopState=function(t){if(t.state){var e=t.state,r=e.url,n=e.as,o=e.options;if(e.__N){var i=(0,d.parseRelativeUrl)(r).pathname;a.isSsr&&n===a.asPath&&i===a.pathname||a._bps&&!a._bps(t.state)||a.change("replaceState",r,n,o)}}else{var u=a.pathname,c=a.query;a.changeState("replaceState",(0,l.formatWithValidation)({pathname:b(u),query:c}),(0,l.getURL)())}},this.route=(0,y.removePathTrailingSlash)(e),this.components={},"/_error"!==e&&(this.components[this.route]={Component:p,props:u,err:v,__N_SSG:u&&u.__N_SSG,__N_SSP:u&&u.__N_SSP}),this.components["/_app"]={Component:s},this.events=t.events,this.pageLoader=c,this.pathname=e,this.query=r,this.asPath=(0,f.isDynamicRoute)(e)&&__NEXT_DATA__.autoExport?e:n,this.basePath=g,this.sub=m,this.clc=null,this._wrapApp=h,this.isSsr=!0,this.isFallback=w,"//"!==n.substr(0,2)&&this.changeState("replaceState",(0,l.formatWithValidation)({pathname:b(e),query:r}),(0,l.getURL)()),window.addEventListener("popstate",this.onPopState)}return u(t,[{key:"update",value:function(t,e){var r=e.default||e,n=this.components[t];if(!n)throw new Error("Cannot update unavailable route: ".concat(t));var o=Object.assign({},n,{Component:r,__N_SSG:e.__N_SSG,__N_SSP:e.__N_SSP});this.components[t]=o,"/_app"!==t?t===this.route&&this.notify(o):this.notify(this.components[this.route])}},{key:"reload",value:function(){window.location.reload()}},{key:"back",value:function(){window.history.back()}},{key:"push",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=x(this,t,e);return t=n.url,e=n.as,this.change("pushState",t,e,r)}},{key:"replace",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=x(this,t,e);return t=n.url,e=n.as,this.change("replaceState",t,e,r)}},{key:"change",value:function(){var e=a(o.mark((function e(r,n,a,i){var u,c,s,g,m,b,_,x,k,P,R,E,O,C;return o.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i._h||(this.isSsr=!1),l.ST&&performance.mark("routeChange"),this._inFlightRoute&&this.abortComponentLoad(this._inFlightRoute),u=w(a),this._inFlightRoute=a,i._h||!this.onlyAHashChange(u)){e.next=13;break}return this.asPath=u,t.events.emit("hashChangeStart",a),this.changeState(r,n,a,i),this.scrollToHash(u),t.events.emit("hashChangeComplete",a),e.abrupt("return",!0);case 13:if(c=S(n)){e.next=16;break}return e.abrupt("return",!1);case 16:if(s=c.pathname,g=c.searchParams,m=(0,v.searchParamsToUrlQuery)(g),s=s?(0,y.removePathTrailingSlash)(w(s)):s,this.urlIsNew(u)||(r="replaceState"),b=(0,y.removePathTrailingSlash)(s),_=i.shallow,x=void 0!==_&&_,!(0,f.isDynamicRoute)(b)){e.next=34;break}if(k=(0,d.parseRelativeUrl)(u),P=k.pathname,R=(0,p.getRouteRegex)(b),E=(0,h.getRouteMatcher)(R)(P)){e.next=33;break}if(!(Object.keys(R.groups).filter((function(t){return!m[t]})).length>0)){e.next=31;break}throw new Error("The provided `as` value (".concat(P,") is incompatible with the `href` value (").concat(b,"). ")+"Read more: https://err.sh/vercel/next.js/incompatible-href-as");case 31:e.next=34;break;case 33:Object.assign(m,E);case 34:return t.events.emit("routeChangeStart",a),e.prev=35,e.next=38,this.getRouteInfo(b,s,m,a,x);case 38:return O=e.sent,C=O.error,t.events.emit("beforeHistoryChange",a),this.changeState(r,n,a,i),e.next=45,this.set(b,s,m,u,O);case 45:if(!C){e.next=48;break}throw t.events.emit("routeChangeError",C,u),C;case 48:return t.events.emit("routeChangeComplete",a),e.abrupt("return",!0);case 53:if(e.prev=53,e.t0=e.catch(35),!e.t0.cancelled){e.next=57;break}return e.abrupt("return",!1);case 57:throw e.t0;case 58:case"end":return e.stop()}}),e,this,[[35,53]])})));return function(t,r,n,o){return e.apply(this,arguments)}}()},{key:"changeState",value:function(t,e,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};"pushState"===t&&(0,l.getURL)()===r||window.history[t]({url:e,as:r,options:n,__N:!0},"",r)}},{key:"handleRouteInfoError",value:function(){var e=a(o.mark((function e(r,n,a,i,u){var c,s,l;return o.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!r.cancelled){e.next=2;break}throw r;case 2:if("PAGE_LOAD_ERROR"!==r.code&&!u){e.next=6;break}throw t.events.emit("routeChangeError",r,i),window.location.href=i,m();case 6:return e.prev=6,e.next=9,this.fetchComponent("/_error");case 9:return c=e.sent,s=c.page,l={Component:s,err:r,error:r},e.prev=12,e.next=15,this.getInitialProps(s,{err:r,pathname:n,query:a});case 15:l.props=e.sent,e.next=22;break;case 18:e.prev=18,e.t0=e.catch(12),console.error("Error in error page `getInitialProps`: ",e.t0),l.props={};case 22:return e.abrupt("return",l);case 25:return e.prev=25,e.t1=e.catch(6),e.abrupt("return",this.handleRouteInfoError(e.t1,n,a,i,!0));case 28:case"end":return e.stop()}}),e,this,[[6,25],[12,18]])})));return function(t,r,n,o,a){return e.apply(this,arguments)}}()},{key:"getRouteInfo",value:function(){var t=a(o.mark((function t(e,r,n,a){var i,u,c,s,f,h,p,v,d=this,y=arguments;return o.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(i=y.length>4&&void 0!==y[4]&&y[4],t.prev=1,u=this.components[e],!i||!u||this.route!==e){t.next=5;break}return t.abrupt("return",u);case 5:if(!u){t.next=9;break}t.t0=u,t.next=12;break;case 9:return t.next=11,this.fetchComponent(e).then((function(t){return{Component:t.page,__N_SSG:t.mod.__N_SSG,__N_SSP:t.mod.__N_SSP}}));case 11:t.t0=t.sent;case 12:c=t.t0,s=c.Component,f=c.__N_SSG,h=c.__N_SSP,t.next=18;break;case 18:return(f||h)&&(p=this.pageLoader.getDataHref((0,l.formatWithValidation)({pathname:r,query:n}),a,f)),t.next=21,this._getData((function(){return f?d._getStaticData(p):h?d._getServerData(p):d.getInitialProps(s,{pathname:r,query:n,asPath:a})}));case 21:return v=t.sent,c.props=v,this.components[e]=c,t.abrupt("return",c);case 27:return t.prev=27,t.t1=t.catch(1),t.abrupt("return",this.handleRouteInfoError(t.t1,r,n,a));case 30:case"end":return t.stop()}}),t,this,[[1,27]])})));return function(e,r,n,o){return t.apply(this,arguments)}}()},{key:"set",value:function(t,e,r,n,o){return this.isFallback=!1,this.route=t,this.pathname=e,this.query=r,this.asPath=n,this.notify(o)}},{key:"beforePopState",value:function(t){this._bps=t}},{key:"onlyAHashChange",value:function(t){if(!this.asPath)return!1;var e=this.asPath.split("#"),r=n(e,2),o=r[0],a=r[1],i=t.split("#"),u=n(i,2),c=u[0],s=u[1];return!(!s||o!==c||a!==s)||o===c&&a!==s}},{key:"scrollToHash",value:function(t){var e=t.split("#"),r=n(e,2)[1];if(""!==r){var o=document.getElementById(r);if(o)o.scrollIntoView();else{var a=document.getElementsByName(r)[0];a&&a.scrollIntoView()}}else window.scrollTo(0,0)}},{key:"urlIsNew",value:function(t){return this.asPath!==t}},{key:"prefetch",value:function(){var t=a(o.mark((function t(e){var r,n,a,i,u,c=arguments;return o.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r=c.length>1&&void 0!==c[1]?c[1]:e,n=c.length>2&&void 0!==c[2]?c[2]:{},a=S(e)){t.next=5;break}return t.abrupt("return");case 5:i=a.pathname,t.next=8;break;case 8:return u=(0,y.removePathTrailingSlash)(i),t.next=11,Promise.all([this.pageLoader.prefetchData(e,r),this.pageLoader[n.priority?"loadPage":"prefetch"](u)]);case 11:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}()},{key:"fetchComponent",value:function(){var t=a(o.mark((function t(e){var r,n,a,i;return o.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=!1,n=this.clc=function(){r=!0},t.next=4,this.pageLoader.loadPage(e);case 4:if(a=t.sent,!r){t.next=9;break}throw(i=new Error('Abort fetching component for route: "'.concat(e,'"'))).cancelled=!0,i;case 9:return n===this.clc&&(this.clc=null),t.abrupt("return",a);case 11:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}()},{key:"_getData",value:function(t){var e=this,r=!1,n=function(){r=!0};return this.clc=n,t().then((function(t){if(n===e.clc&&(e.clc=null),r){var o=new Error("Loading initial props cancelled");throw o.cancelled=!0,o}return t}))}},{key:"_getStaticData",value:function(t){var e=this,r=new URL(t,window.location.href).href;return this.sdc[r]?Promise.resolve(this.sdc[r]):k(t,this.isSsr).then((function(t){return e.sdc[r]=t,t}))}},{key:"_getServerData",value:function(t){return k(t,this.isSsr)}},{key:"getInitialProps",value:function(t,e){var r=this.components["/_app"].Component,n=this._wrapApp(r);return e.AppTree=n,(0,l.loadGetInitialProps)(r,{AppTree:n,Component:t,router:this,ctx:e})}},{key:"abortComponentLoad",value:function(e){this.clc&&(t.events.emit("routeChangeError",m(),e),this.clc(),this.clc=null)}},{key:"notify",value:function(t){return this.sub(t,this.components["/_app"].Component)}}],[{key:"_rewriteUrlForNextExport",value:function(t){return t}}]),t}();e.default=P,P.events=(0,s.default)()},"g/15":function(t,e,r){"use strict";var n=r("o0o1"),o=r("yXPU");e.__esModule=!0,e.execOnce=function(t){var e,r=!1;return function(){return r||(r=!0,e=t.apply(void 0,arguments)),e}},e.getLocationOrigin=i,e.getURL=function(){var t=window.location.href,e=i();return t.substring(e.length)},e.getDisplayName=u,e.isResSent=c,e.loadGetInitialProps=s,e.formatWithValidation=function(t){0;return(0,a.formatUrl)(t)},e.ST=e.SP=e.urlObjectKeys=void 0;var a=r("6D7l");function i(){var t=window.location,e=t.protocol,r=t.hostname,n=t.port;return"".concat(e,"//").concat(r).concat(n?":"+n:"")}function u(t){return"string"===typeof t?t:t.displayName||t.name||"Unknown"}function c(t){return t.finished||t.headersSent}function s(t,e){return l.apply(this,arguments)}function l(){return(l=o(n.mark((function t(e,r){var o,a,i;return n.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:t.next=4;break;case 4:if(o=r.res||r.ctx&&r.ctx.res,e.getInitialProps){t.next=12;break}if(!r.ctx||!r.Component){t.next=11;break}return t.next=9,s(r.Component,r.ctx);case 9:return t.t0=t.sent,t.abrupt("return",{pageProps:t.t0});case 11:return t.abrupt("return",{});case 12:return t.next=14,e.getInitialProps(r);case 14:if(a=t.sent,!o||!c(o)){t.next=17;break}return t.abrupt("return",a);case 17:if(a){t.next=20;break}throw i='"'.concat(u(e),'.getInitialProps()" should resolve to an object. But found "').concat(a,'" instead.'),new Error(i);case 20:return t.abrupt("return",a);case 22:case"end":return t.stop()}}),t)})))).apply(this,arguments)}e.urlObjectKeys=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];var f="undefined"!==typeof performance;e.SP=f;var h=f&&"function"===typeof performance.mark&&"function"===typeof performance.measure;e.ST=h},gguc:function(t,e,r){"use strict";e.__esModule=!0,e.getRouteMatcher=function(t){var e=t.re,r=t.groups;return function(t){var n=e.exec(t);if(!n)return!1;var o=function(t){try{return decodeURIComponent(t)}catch(r){var e=new Error("failed to decode param");throw e.code="DECODE_FAILED",e}},a={};return Object.keys(r).forEach((function(t){var e=r[t],i=n[e.pos];void 0!==i&&(a[t]=~i.indexOf("/")?i.split("/").map((function(t){return o(t)})):e.repeat?[o(i)]:o(i))})),a}}},hS4m:function(t,e,r){"use strict";e.__esModule=!0,e.parseRelativeUrl=function(t,e){var r=e?new URL(e,n):n,o=new URL(t,r),a=o.pathname,i=o.searchParams,u=o.search,c=o.hash,s=o.href;if(o.origin!==n.origin)throw new Error("invariant: invalid relative URL");return{pathname:a,searchParams:i,search:u,hash:c,href:s.slice(n.origin.length)}};var n=new URL("http://n")},kd2E:function(t,e,r){"use strict";function n(t,e){return Object.prototype.hasOwnProperty.call(t,e)}t.exports=function(t,e,r,a){e=e||"&",r=r||"=";var i={};if("string"!==typeof t||0===t.length)return i;var u=/\+/g;t=t.split(e);var c=1e3;a&&"number"===typeof a.maxKeys&&(c=a.maxKeys);var s=t.length;c>0&&s>c&&(s=c);for(var l=0;l=0?(f=d.substr(0,y),h=d.substr(y+1)):(f=d,h=""),p=decodeURIComponent(f),v=decodeURIComponent(h),n(i,p)?o(i[p])?i[p].push(v):i[p]=[i[p],v]:i[p]=v}return i};var o=Array.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)}},ls82:function(t,e,r){var n=function(t){"use strict";var e,r=Object.prototype,n=r.hasOwnProperty,o="function"===typeof Symbol?Symbol:{},a=o.iterator||"@@iterator",i=o.asyncIterator||"@@asyncIterator",u=o.toStringTag||"@@toStringTag";function c(t,e,r,n){var o=e&&e.prototype instanceof d?e:d,a=Object.create(o.prototype),i=new E(n||[]);return a._invoke=function(t,e,r){var n=l;return function(o,a){if(n===h)throw new Error("Generator is already running");if(n===p){if("throw"===o)throw a;return C()}for(r.method=o,r.arg=a;;){var i=r.delegate;if(i){var u=k(i,r);if(u){if(u===v)continue;return u}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(n===l)throw n=p,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n=h;var c=s(t,e,r);if("normal"===c.type){if(n=r.done?p:f,c.arg===v)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(n=p,r.method="throw",r.arg=c.arg)}}}(t,r,i),a}function s(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(n){return{type:"throw",arg:n}}}t.wrap=c;var l="suspendedStart",f="suspendedYield",h="executing",p="completed",v={};function d(){}function y(){}function g(){}var m={};m[a]=function(){return this};var b=Object.getPrototypeOf,w=b&&b(b(O([])));w&&w!==r&&n.call(w,a)&&(m=w);var _=g.prototype=d.prototype=Object.create(m);function x(t){["next","throw","return"].forEach((function(e){t[e]=function(t){return this._invoke(e,t)}}))}function S(t,e){var r;this._invoke=function(o,a){function i(){return new e((function(r,i){!function r(o,a,i,u){var c=s(t[o],t,a);if("throw"!==c.type){var l=c.arg,f=l.value;return f&&"object"===typeof f&&n.call(f,"__await")?e.resolve(f.__await).then((function(t){r("next",t,i,u)}),(function(t){r("throw",t,i,u)})):e.resolve(f).then((function(t){l.value=t,i(l)}),(function(t){return r("throw",t,i,u)}))}u(c.arg)}(o,a,r,i)}))}return r=r?r.then(i,i):i()}}function k(t,r){var n=t.iterator[r.method];if(n===e){if(r.delegate=null,"throw"===r.method){if(t.iterator.return&&(r.method="return",r.arg=e,k(t,r),"throw"===r.method))return v;r.method="throw",r.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var o=s(n,t.iterator,r.arg);if("throw"===o.type)return r.method="throw",r.arg=o.arg,r.delegate=null,v;var a=o.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,v):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function P(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function R(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function E(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(P,this),this.reset(!0)}function O(t){if(t){var r=t[a];if(r)return r.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var o=-1,i=function r(){for(;++o=0;--a){var i=this.tryEntries[a],u=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var c=n.call(i,"catchLoc"),s=n.call(i,"finallyLoc");if(c&&s){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),R(r),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;R(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:O(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=n}catch(o){Function("r","regeneratorRuntime = r")(n)}},lwsE:function(t,e){t.exports=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}},m0LI:function(t,e){t.exports=function(t,e){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(t)){var r=[],n=!0,o=!1,a=void 0;try{for(var i,u=t[Symbol.iterator]();!(n=(i=u.next()).done)&&(r.push(i.value),!e||r.length!==e);n=!0);}catch(c){o=!0,a=c}finally{try{n||null==u.return||u.return()}finally{if(o)throw a}}return r}}},nOHt:function(t,e,r){"use strict";var n=r("sXyB");function o(t,e){var r;if("undefined"===typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(r=function(t,e){if(!t)return;if("string"===typeof t)return a(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);"Object"===r&&t.constructor&&(r=t.constructor.name);if("Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return a(t,e)}(t))||e&&t&&"number"===typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,u=!0,c=!1;return{s:function(){r=t[Symbol.iterator]()},n:function(){var t=r.next();return u=t.done,t},e:function(t){c=!0,i=t},f:function(){try{u||null==r.return||r.return()}finally{if(c)throw i}}}}function a(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r=x},o=function(){},t.unstable_forceFrameRate=function(e){0>e||125P(a,n))void 0!==u&&0>P(u,a)?(e[r]=u,e[o]=n,r=o):(e[r]=a,e[i]=n,r=i);else{if(!(void 0!==u&&0>P(u,n)))break e;e[r]=u,e[o]=n,r=o}}}return t}return null}function P(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var N=[],z=[],O=1,M=null,R=3,I=!1,F=!1,D=!1;function L(e){for(var t=C(z);null!==t;){if(null===t.callback)_(z);else{if(!(t.startTime<=e))break;_(z),t.sortIndex=t.expirationTime,S(N,t)}t=C(z)}}function A(e){if(D=!1,L(e),!F)if(null!==C(N))F=!0,r(U);else{var t=C(z);null!==t&&l(A,t.startTime-e)}}function U(e,n){F=!1,D&&(D=!1,i()),I=!0;var r=R;try{for(L(n),M=C(N);null!==M&&(!(M.expirationTime>n)||e&&!a());){var o=M.callback;if(null!==o){M.callback=null,R=M.priorityLevel;var u=o(M.expirationTime<=n);n=t.unstable_now(),"function"===typeof u?M.callback=u:M===C(N)&&_(N),L(n)}else _(N);M=C(N)}if(null!==M)var c=!0;else{var s=C(z);null!==s&&l(A,s.startTime-n),c=!1}return c}finally{M=null,R=r,I=!1}}function V(e){switch(e){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1e4;default:return 5e3}}var W=o;t.unstable_ImmediatePriority=1,t.unstable_UserBlockingPriority=2,t.unstable_NormalPriority=3,t.unstable_IdlePriority=5,t.unstable_LowPriority=4,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=R;R=e;try{return t()}finally{R=n}},t.unstable_next=function(e){switch(R){case 1:case 2:case 3:var t=3;break;default:t=R}var n=R;R=t;try{return e()}finally{R=n}},t.unstable_scheduleCallback=function(e,n,a){var o=t.unstable_now();if("object"===typeof a&&null!==a){var u=a.delay;u="number"===typeof u&&0o?(e.sortIndex=u,S(z,e),null===C(N)&&e===C(z)&&(D?i():D=!0,l(A,u-o))):(e.sortIndex=a,S(N,e),F||I||(F=!0,r(U))),e},t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_wrapCallback=function(e){var t=R;return function(){var n=R;R=t;try{return e.apply(this,arguments)}finally{R=n}}},t.unstable_getCurrentPriorityLevel=function(){return R},t.unstable_shouldYield=function(){var e=t.unstable_now();L(e);var n=C(N);return n!==M&&null!==M&&null!==n&&null!==n.callback&&n.startTime<=e&&n.expirationTime=x},o=function(){},t.unstable_forceFrameRate=function(e){0>e||125>>1,l=e[r];if(!(void 0!==l&&0P(a,n))void 0!==u&&0>P(u,a)?(e[r]=u,e[o]=n,r=o):(e[r]=a,e[i]=n,r=i);else{if(!(void 0!==u&&0>P(u,n)))break e;e[r]=u,e[o]=n,r=o}}}return t}return null}function P(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var N=[],z=[],O=1,M=null,R=3,I=!1,F=!1,D=!1;function L(e){for(var t=C(z);null!==t;){if(null===t.callback)_(z);else{if(!(t.startTime<=e))break;_(z),t.sortIndex=t.expirationTime,S(N,t)}t=C(z)}}function A(e){if(D=!1,L(e),!F)if(null!==C(N))F=!0,r(U);else{var t=C(z);null!==t&&l(A,t.startTime-e)}}function U(e,n){F=!1,D&&(D=!1,i()),I=!0;var r=R;try{for(L(n),M=C(N);null!==M&&(!(M.expirationTime>n)||e&&!a());){var o=M.callback;if(null!==o){M.callback=null,R=M.priorityLevel;var u=o(M.expirationTime<=n);n=t.unstable_now(),"function"===typeof u?M.callback=u:M===C(N)&&_(N),L(n)}else _(N);M=C(N)}if(null!==M)var c=!0;else{var s=C(z);null!==s&&l(A,s.startTime-n),c=!1}return c}finally{M=null,R=r,I=!1}}function V(e){switch(e){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1e4;default:return 5e3}}var W=o;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){F||I||(F=!0,r(U))},t.unstable_getCurrentPriorityLevel=function(){return R},t.unstable_getFirstCallbackNode=function(){return C(N)},t.unstable_next=function(e){switch(R){case 1:case 2:case 3:var t=3;break;default:t=R}var n=R;R=t;try{return e()}finally{R=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=W,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=R;R=e;try{return t()}finally{R=n}},t.unstable_scheduleCallback=function(e,n,a){var o=t.unstable_now();if("object"===typeof a&&null!==a){var u=a.delay;u="number"===typeof u&&0o?(e.sortIndex=u,S(z,e),null===C(N)&&e===C(z)&&(D?i():D=!0,l(A,u-o))):(e.sortIndex=a,S(N,e),F||I||(F=!0,r(U))),e},t.unstable_shouldYield=function(){var e=t.unstable_now();L(e);var n=C(N);return n!==M&&null!==M&&null!==n&&null!==n.callback&&n.startTime<=e&&n.expirationTimez.length&&z.push(e)}function R(e,t,n){return null==e?0:function e(t,n,r,l){var o=typeof t;"undefined"!==o&&"boolean"!==o||(t=null);var u=!1;if(null===t)u=!0;else switch(o){case"string":case"number":u=!0;break;case"object":switch(t.$$typeof){case i:case a:u=!0}}if(u)return r(l,t,""===n?"."+I(t,0):n),1;if(u=0,n=""===n?".":n+":",Array.isArray(t))for(var c=0;c\\n
\\n \\n \\n \\n \\n \\n Prerendered Page\\n
\\n
\\n \");\n return container;\n}\n\nfunction createCss(prefix) {\n var css = document.createElement('style');\n css.textContent = \"\\n #\".concat(prefix, \"container {\\n position: absolute;\\n display: none;\\n bottom: 10px;\\n right: 15px;\\n }\\n\\n #\").concat(prefix, \"close {\\n top: -10px;\\n right: -10px;\\n border: none;\\n width: 18px;\\n height: 18px;\\n color: #333333;\\n font-size: 16px;\\n cursor: pointer;\\n display: none;\\n position: absolute;\\n background: #ffffff;\\n border-radius: 100%;\\n align-items: center;\\n flex-direction: column;\\n justify-content: center;\\n }\\n\\n #\").concat(prefix, \"container a {\\n color: inherit;\\n text-decoration: none;\\n width: 15px;\\n height: 23px;\\n overflow: hidden;\\n\\n border-radius: 3px;\\n background: #fff;\\n color: #000;\\n font: initial;\\n cursor: pointer;\\n letter-spacing: initial;\\n text-shadow: initial;\\n text-transform: initial;\\n visibility: initial;\\n font-size: 14px;\\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\\n\\n padding: 4px 2px;\\n align-items: center;\\n box-shadow: 0 11px 40px 0 rgba(0, 0, 0, 0.25), 0 2px 10px 0 rgba(0, 0, 0, 0.12);\\n\\n display: flex;\\n transition: opacity 0.1s ease, bottom 0.1s ease, width 0.3s ease;\\n animation: \").concat(prefix, \"fade-in 0.1s ease-in-out;\\n }\\n\\n #\").concat(prefix, \"icon-wrapper {\\n width: 140px;\\n height: 20px;\\n display: flex;\\n flex-shrink: 0;\\n align-items: center;\\n position: relative;\\n }\\n\\n #\").concat(prefix, \"icon-wrapper svg {\\n flex-shrink: 0;\\n margin-right: 3px;\\n }\\n\\n #\").concat(prefix, \"container a.\").concat(prefix, \"expanded {\\n width: 135px;\\n }\\n\\n #\").concat(prefix, \"container.\").concat(prefix, \"visible {\\n display: flex;\\n bottom: 10px;\\n opacity: 1;\\n }\\n\\n @keyframes \").concat(prefix, \"fade-in {\\n from {\\n bottom: 0px;\\n opacity: 0;\\n }\\n to {\\n bottom: 10px;\\n opacity: 1;\\n }\\n }\\n \");\n return css;\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.i);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uLy4uL2NsaWVudC9kZXYvcHJlcmVuZGVyLWluZGljYXRvci5qcz8yZDdkIl0sIm5hbWVzIjpbInNoYWRvd0hvc3QiLCJkb2N1bWVudCIsInByZWZpeCIsInNoYWRvd1Jvb3QiLCJtb2RlIiwiY29udGFpbmVyIiwiY3JlYXRlQ29udGFpbmVyIiwiY3NzIiwiY3JlYXRlQ3NzIiwiZXhwYW5kRWwiLCJjbG9zZUVsIiwiZGlzbWlzc0tleSIsImRpc21pc3NVbnRpbCIsInBhcnNlSW50Iiwid2luZG93IiwiZGlzbWlzc2VkIiwiaXNWaXNpYmxlIiwiZXhwYW5kZWRDbGFzcyIsInRvZ2dsZUV4cGFuZCIsImV4cGFuZCIsImNsZWFyVGltZW91dCIsInRvZ2dsZVRpbWVvdXQiLCJzZXRUaW1lb3V0Iiwib25lSG91ckF3YXkiLCJ1cGRhdGVDb250YWluZXIiLCJSb3V0ZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFFZSxrQ0FBa0M7QUFDL0MsTUFBTUEsVUFBVSxHQUFHQyxRQUFRLENBQVJBLGNBQW5CLEtBQW1CQSxDQUFuQjtBQUNBRCxZQUFVLENBQVZBLGtDQUYrQyxDQUcvQzs7QUFDQUEsWUFBVSxDQUFWQTtBQUNBQSxZQUFVLENBQVZBO0FBQ0FBLFlBQVUsQ0FBVkE7QUFDQUEsWUFBVSxDQUFWQTtBQUNBQSxZQUFVLENBQVZBO0FBQ0FBLFlBQVUsQ0FBVkE7QUFDQUEsWUFBVSxDQUFWQTtBQUVBQyxVQUFRLENBQVJBO0FBRUE7QUFDQSxNQUFJQyxNQUFNLEdBQVY7O0FBRUEsTUFBSUYsVUFBVSxDQUFkLGNBQTZCO0FBQzNCRyxjQUFVLEdBQUdILFVBQVUsQ0FBVkEsYUFBd0I7QUFBRUksVUFBSSxFQUEzQ0Q7QUFBcUMsS0FBeEJILENBQWJHO0FBREYsU0FFTztBQUNMO0FBQ0E7QUFDQTtBQUNBQSxjQUFVLEdBQVZBO0FBQ0FELFVBQU0sR0FBTkE7QUFHRixHQTNCK0MsQ0EyQi9DOzs7QUFDQSxNQUFNRyxTQUFTLEdBQUdDLGVBQWUsQ0FBakMsTUFBaUMsQ0FBakM7QUFDQUgsWUFBVSxDQUFWQSx1QkE3QitDLENBK0IvQzs7QUFDQSxNQUFNSSxHQUFHLEdBQUdDLFNBQVMsQ0FBckIsTUFBcUIsQ0FBckI7QUFDQUwsWUFBVSxDQUFWQTtBQUVBLE1BQU1NLFFBQVEsR0FBR0osU0FBUyxDQUFUQSxjQUFqQixHQUFpQkEsQ0FBakI7QUFDQSxNQUFNSyxPQUFPLEdBQUdMLFNBQVMsQ0FBVEEseUJBQWhCLE1BQWdCQSxXQUFoQixDQXBDK0MsQ0FzQy9DOztBQUNBLE1BQU1NLFVBQVUsR0FBaEI7QUFDQSxNQUFNQyxZQUFZLEdBQUdDLFFBQVEsQ0FBQ0MsTUFBTSxDQUFOQSxxQkFBRCxVQUFDQSxDQUFELEVBQTdCLEVBQTZCLENBQTdCO0FBQ0EsTUFBTUMsU0FBUyxHQUFHSCxZQUFZLEdBQUcsV0FBakMsT0FBaUMsRUFBakM7QUFFQSxNQUFJSSxTQUFTLEdBQUcsY0FBY0YsTUFBTSxDQUFOQSxjQUE5Qjs7QUFFQSw2QkFBMkI7QUFDekIsbUJBQWU7QUFDYlQsZUFBUyxDQUFUQTtBQURGLFdBRU87QUFDTEEsZUFBUyxDQUFUQTtBQUVIO0FBQ0Q7O0FBQUEsTUFBTVksYUFBYSxhQUFuQixNQUFtQixhQUFuQjtBQUNBOztBQUVBLE1BQU1DLFlBQVksR0FBRyxTQUFmQSxZQUFlLEdBQW1CO0FBQUEsUUFBbEJDLE1BQWtCLHVFQUFuQixJQUFtQjtBQUN0Q0MsZ0JBQVksQ0FBWkEsYUFBWSxDQUFaQTtBQUVBQyxpQkFBYSxHQUFHQyxVQUFVLENBQUMsWUFBTTtBQUMvQixrQkFBWTtBQUNWYixnQkFBUSxDQUFSQTtBQUNBQyxlQUFPLENBQVBBO0FBRkYsYUFHTztBQUNMRCxnQkFBUSxDQUFSQTtBQUNBQyxlQUFPLENBQVBBO0FBRUg7QUFSeUIsT0FBMUJXLEVBQTBCLENBQTFCQTtBQUhGOztBQWNBWCxTQUFPLENBQVBBLDBCQUFrQyxZQUFNO0FBQ3RDLFFBQU1hLFdBQVcsR0FBRyx1QkFBdUIsY0FBM0M7QUFDQVQsVUFBTSxDQUFOQSxpQ0FBd0NTLFdBQVcsR0FBbkRUO0FBQ0FFLGFBQVMsR0FBVEE7QUFDQVEsbUJBQWU7QUFKakJkO0FBTUFBLFNBQU8sQ0FBUEEsK0JBQXVDO0FBQUEsV0FBTVEsWUFBN0NSLEVBQXVDO0FBQUEsR0FBdkNBO0FBQ0FBLFNBQU8sQ0FBUEEsK0JBQXVDO0FBQUEsV0FBTVEsWUFBWSxDQUF6RFIsS0FBeUQsQ0FBbEI7QUFBQSxHQUF2Q0E7QUFDQUQsVUFBUSxDQUFSQSwrQkFBd0M7QUFBQSxXQUFNUyxZQUE5Q1QsRUFBd0M7QUFBQSxHQUF4Q0E7QUFDQUEsVUFBUSxDQUFSQSwrQkFBd0M7QUFBQSxXQUFNUyxZQUFZLENBQTFEVCxLQUEwRCxDQUFsQjtBQUFBLEdBQXhDQTs7QUFFQWdCLHNEQUF3QyxZQUFNO0FBQzVDVCxhQUFTLEdBQUdGLE1BQU0sQ0FBTkEsS0FBWkU7QUFDQVEsbUJBQWU7QUFGakJDOztBQUlBRCxpQkFBZTtBQUdqQjs7QUFBQSxpQ0FBaUM7QUFDL0IsTUFBTW5CLFNBQVMsR0FBR0osUUFBUSxDQUFSQSxjQUFsQixLQUFrQkEsQ0FBbEI7QUFDQUksV0FBUyxDQUFUQTtBQUNBLFdBQVMsQ0FBVCx5Q0FDZ0JILE1BRGhCLDhQQUtlQSxNQUxmO0FBZUE7QUFHRjs7QUFBQSwyQkFBMkI7QUFDekIsTUFBTUssR0FBRyxHQUFHTixRQUFRLENBQVJBLGNBQVosT0FBWUEsQ0FBWjtBQUNBLEtBQUcsQ0FBSCwrQkFDS0MsTUFETCxrSUFRS0EsTUFSTCxxWkEwQktBLE1BMUJMLDh5QkFtRGlCQSxNQW5EakIsc0RBc0RLQSxNQXRETCx5TEErREtBLE1BL0RMLGdHQW9FS0EsTUFwRUwseUJBb0UwQkEsTUFwRTFCLDREQXdFS0EsTUF4RUwsdUJBd0V3QkEsTUF4RXhCLDhHQThFZUEsTUE5RWY7QUEwRkE7QUFDRCIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2Rldi9wcmVyZW5kZXItaW5kaWNhdG9yLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJvdXRlciBmcm9tICcuLi9yb3V0ZXInXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGluaXRpYWxpemVCdWlsZFdhdGNoZXIoKSB7XG4gIGNvbnN0IHNoYWRvd0hvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKVxuICBzaGFkb3dIb3N0LmlkID0gJ19fbmV4dC1wcmVyZW5kZXItaW5kaWNhdG9yJ1xuICAvLyBNYWtlIHN1cmUgY29udGFpbmVyIGlzIGZpeGVkIGFuZCBvbiBhIGhpZ2ggekluZGV4IHNvIGl0IHNob3dzXG4gIHNoYWRvd0hvc3Quc3R5bGUucG9zaXRpb24gPSAnZml4ZWQnXG4gIHNoYWRvd0hvc3Quc3R5bGUuYm90dG9tID0gJzIwcHgnXG4gIHNoYWRvd0hvc3Quc3R5bGUucmlnaHQgPSAnMTBweCdcbiAgc2hhZG93SG9zdC5zdHlsZS53aWR0aCA9IDBcbiAgc2hhZG93SG9zdC5zdHlsZS5oZWlnaHQgPSAwXG4gIHNoYWRvd0hvc3Quc3R5bGUuekluZGV4ID0gOTk5OThcbiAgc2hhZG93SG9zdC5zdHlsZS50cmFuc2l0aW9uID0gJ2FsbCAxMDBtcyBlYXNlJ1xuXG4gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2hhZG93SG9zdClcblxuICBsZXQgc2hhZG93Um9vdFxuICBsZXQgcHJlZml4ID0gJydcblxuICBpZiAoc2hhZG93SG9zdC5hdHRhY2hTaGFkb3cpIHtcbiAgICBzaGFkb3dSb290ID0gc2hhZG93SG9zdC5hdHRhY2hTaGFkb3coeyBtb2RlOiAnb3BlbicgfSlcbiAgfSBlbHNlIHtcbiAgICAvLyBJZiBhdHRhY2hTaGFkb3cgaXMgdW5kZWZpbmVkIHRoZW4gdGhlIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydFxuICAgIC8vIHRoZSBTaGFkb3cgRE9NLCB3ZSBuZWVkIHRvIHByZWZpeCBhbGwgdGhlIG5hbWVzIHNvIHRoZXJlXG4gICAgLy8gd2lsbCBiZSBubyBjb25mbGljdHNcbiAgICBzaGFkb3dSb290ID0gc2hhZG93SG9zdFxuICAgIHByZWZpeCA9ICdfX25leHQtcHJlcmVuZGVyLWluZGljYXRvci0nXG4gIH1cblxuICAvLyBDb250YWluZXJcbiAgY29uc3QgY29udGFpbmVyID0gY3JlYXRlQ29udGFpbmVyKHByZWZpeClcbiAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChjb250YWluZXIpXG5cbiAgLy8gQ1NTXG4gIGNvbnN0IGNzcyA9IGNyZWF0ZUNzcyhwcmVmaXgpXG4gIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoY3NzKVxuXG4gIGNvbnN0IGV4cGFuZEVsID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ2EnKVxuICBjb25zdCBjbG9zZUVsID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoYCMke3ByZWZpeH1jbG9zZWApXG5cbiAgLy8gU3RhdGVcbiAgY29uc3QgZGlzbWlzc0tleSA9ICdfX05FWFRfRElTTUlTU19QUkVSRU5ERVJfSU5ESUNBVE9SJ1xuICBjb25zdCBkaXNtaXNzVW50aWwgPSBwYXJzZUludCh3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oZGlzbWlzc0tleSksIDEwKVxuICBjb25zdCBkaXNtaXNzZWQgPSBkaXNtaXNzVW50aWwgPiBuZXcgRGF0ZSgpLmdldFRpbWUoKVxuXG4gIGxldCBpc1Zpc2libGUgPSAhZGlzbWlzc2VkICYmIHdpbmRvdy5fX05FWFRfREFUQV9fLm5leHRFeHBvcnRcblxuICBmdW5jdGlvbiB1cGRhdGVDb250YWluZXIoKSB7XG4gICAgaWYgKGlzVmlzaWJsZSkge1xuICAgICAgY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoYCR7cHJlZml4fXZpc2libGVgKVxuICAgIH0gZWxzZSB7XG4gICAgICBjb250YWluZXIuY2xhc3NMaXN0LnJlbW92ZShgJHtwcmVmaXh9dmlzaWJsZWApXG4gICAgfVxuICB9XG4gIGNvbnN0IGV4cGFuZGVkQ2xhc3MgPSBgJHtwcmVmaXh9ZXhwYW5kZWRgXG4gIGxldCB0b2dnbGVUaW1lb3V0XG5cbiAgY29uc3QgdG9nZ2xlRXhwYW5kID0gKGV4cGFuZCA9IHRydWUpID0+IHtcbiAgICBjbGVhclRpbWVvdXQodG9nZ2xlVGltZW91dClcblxuICAgIHRvZ2dsZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmIChleHBhbmQpIHtcbiAgICAgICAgZXhwYW5kRWwuY2xhc3NMaXN0LmFkZChleHBhbmRlZENsYXNzKVxuICAgICAgICBjbG9zZUVsLnN0eWxlLmRpc3BsYXkgPSAnZmxleCdcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGV4cGFuZEVsLmNsYXNzTGlzdC5yZW1vdmUoZXhwYW5kZWRDbGFzcylcbiAgICAgICAgY2xvc2VFbC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnXG4gICAgICB9XG4gICAgfSwgNTApXG4gIH1cblxuICBjbG9zZUVsLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgIGNvbnN0IG9uZUhvdXJBd2F5ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgKyAxICogNjAgKiA2MCAqIDEwMDBcbiAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oZGlzbWlzc0tleSwgb25lSG91ckF3YXkgKyAnJylcbiAgICBpc1Zpc2libGUgPSBmYWxzZVxuICAgIHVwZGF0ZUNvbnRhaW5lcigpXG4gIH0pXG4gIGNsb3NlRWwuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsICgpID0+IHRvZ2dsZUV4cGFuZCgpKVxuICBjbG9zZUVsLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCAoKSA9PiB0b2dnbGVFeHBhbmQoZmFsc2UpKVxuICBleHBhbmRFbC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgKCkgPT4gdG9nZ2xlRXhwYW5kKCkpXG4gIGV4cGFuZEVsLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCAoKSA9PiB0b2dnbGVFeHBhbmQoZmFsc2UpKVxuXG4gIFJvdXRlci5ldmVudHMub24oJ3JvdXRlQ2hhbmdlQ29tcGxldGUnLCAoKSA9PiB7XG4gICAgaXNWaXNpYmxlID0gd2luZG93Lm5leHQuaXNQcmVyZW5kZXJlZFxuICAgIHVwZGF0ZUNvbnRhaW5lcigpXG4gIH0pXG4gIHVwZGF0ZUNvbnRhaW5lcigpXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUNvbnRhaW5lcihwcmVmaXgpIHtcbiAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JylcbiAgY29udGFpbmVyLmlkID0gYCR7cHJlZml4fWNvbnRhaW5lcmBcbiAgY29udGFpbmVyLmlubmVySFRNTCA9IGBcbiAgICA8YnV0dG9uIGlkPVwiJHtwcmVmaXh9Y2xvc2VcIiB0aXRsZT1cIkhpZGUgaW5kaWNhdG9yIGZvciBzZXNzaW9uXCI+XG4gICAgICA8c3Bhbj7Dlzwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8YSBocmVmPVwiaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBpLXJlZmVyZW5jZS9uZXh0LmNvbmZpZy5qcy9zdGF0aWMtb3B0aW1pemF0aW9uLWluZGljYXRvclwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vcmVmZXJyZXJcIj5cbiAgICAgIDxkaXYgaWQ9XCIke3ByZWZpeH1pY29uLXdyYXBwZXJcIj5cbiAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTVcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgNjAgODBcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICA8cGF0aCBkPVwiTTM2IDNMMzAuNzQgNDFIOEwzNiAzWlwiIGZpbGw9XCJibGFja1wiLz5cbiAgICAgICAgICA8cGF0aCBkPVwiTTI1IDc3TDMwLjI2IDM5SDUzTDI1IDc3WlwiIGZpbGw9XCJibGFja1wiLz5cbiAgICAgICAgICA8cGF0aCBkPVwiTTEzLjUgMzMuNUw1MyAzOUw0Ny41IDQ2LjVMNyA0MS4yNUwxMy41IDMzLjVaXCIgZmlsbD1cImJsYWNrXCIvPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgIFByZXJlbmRlcmVkIFBhZ2VcbiAgICAgIDwvZGl2PlxuICAgIDwvYT5cbiAgYFxuICByZXR1cm4gY29udGFpbmVyXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUNzcyhwcmVmaXgpIHtcbiAgY29uc3QgY3NzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKVxuICBjc3MudGV4dENvbnRlbnQgPSBgXG4gICAgIyR7cHJlZml4fWNvbnRhaW5lciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgYm90dG9tOiAxMHB4O1xuICAgICAgcmlnaHQ6IDE1cHg7XG4gICAgfVxuXG4gICAgIyR7cHJlZml4fWNsb3NlIHtcbiAgICAgIHRvcDogLTEwcHg7XG4gICAgICByaWdodDogLTEwcHg7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICB3aWR0aDogMThweDtcbiAgICAgIGhlaWdodDogMThweDtcbiAgICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAjJHtwcmVmaXh9Y29udGFpbmVyIGEge1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICB3aWR0aDogMTVweDtcbiAgICAgIGhlaWdodDogMjNweDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICBjb2xvcjogIzAwMDtcbiAgICAgIGZvbnQ6IGluaXRpYWw7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBsZXR0ZXItc3BhY2luZzogaW5pdGlhbDtcbiAgICAgIHRleHQtc2hhZG93OiBpbml0aWFsO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IGluaXRpYWw7XG4gICAgICB2aXNpYmlsaXR5OiBpbml0aWFsO1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBPeHlnZW4sIFVidW50dSwgQ2FudGFyZWxsLCAnT3BlbiBTYW5zJywgJ0hlbHZldGljYSBOZXVlJywgc2Fucy1zZXJpZjtcblxuICAgICAgcGFkZGluZzogNHB4IDJweDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBib3gtc2hhZG93OiAwIDExcHggNDBweCAwIHJnYmEoMCwgMCwgMCwgMC4yNSksIDAgMnB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuXG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjFzIGVhc2UsIGJvdHRvbSAwLjFzIGVhc2UsIHdpZHRoIDAuM3MgZWFzZTtcbiAgICAgIGFuaW1hdGlvbjogJHtwcmVmaXh9ZmFkZS1pbiAwLjFzIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICMke3ByZWZpeH1pY29uLXdyYXBwZXIge1xuICAgICAgd2lkdGg6IDE0MHB4O1xuICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG5cbiAgICAjJHtwcmVmaXh9aWNvbi13cmFwcGVyIHN2ZyB7XG4gICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIG1hcmdpbi1yaWdodDogM3B4O1xuICAgIH1cblxuICAgICMke3ByZWZpeH1jb250YWluZXIgYS4ke3ByZWZpeH1leHBhbmRlZCB7XG4gICAgICB3aWR0aDogMTM1cHg7XG4gICAgfVxuXG4gICAgIyR7cHJlZml4fWNvbnRhaW5lci4ke3ByZWZpeH12aXNpYmxlIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBib3R0b206IDEwcHg7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgIEBrZXlmcmFtZXMgJHtwcmVmaXh9ZmFkZS1pbiB7XG4gICAgICBmcm9tIHtcbiAgICAgICAgYm90dG9tOiAwcHg7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgICB0byB7XG4gICAgICAgIGJvdHRvbTogMTBweDtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cbiAgICB9XG4gIGBcblxuICByZXR1cm4gY3NzXG59XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/prerender-indicator.js\n"); +eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/next/node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nexports.__esModule = true;\nexports[\"default\"] = initializeBuildWatcher;\n\nvar _router = _interopRequireDefault(__webpack_require__(/*! ../router */ \"./node_modules/next/dist/client/router.js\"));\n\nfunction initializeBuildWatcher() {\n var shadowHost = document.createElement('div');\n shadowHost.id = '__next-prerender-indicator'; // Make sure container is fixed and on a high zIndex so it shows\n\n shadowHost.style.position = 'fixed';\n shadowHost.style.bottom = '20px';\n shadowHost.style.right = '10px';\n shadowHost.style.width = 0;\n shadowHost.style.height = 0;\n shadowHost.style.zIndex = 99998;\n shadowHost.style.transition = 'all 100ms ease';\n document.body.appendChild(shadowHost);\n var shadowRoot;\n var prefix = '';\n\n if (shadowHost.attachShadow) {\n shadowRoot = shadowHost.attachShadow({\n mode: 'open'\n });\n } else {\n // If attachShadow is undefined then the browser does not support\n // the Shadow DOM, we need to prefix all the names so there\n // will be no conflicts\n shadowRoot = shadowHost;\n prefix = '__next-prerender-indicator-';\n } // Container\n\n\n var container = createContainer(prefix);\n shadowRoot.appendChild(container); // CSS\n\n var css = createCss(prefix);\n shadowRoot.appendChild(css);\n var expandEl = container.querySelector('a');\n var closeEl = container.querySelector(\"#\".concat(prefix, \"close\")); // State\n\n var dismissKey = '__NEXT_DISMISS_PRERENDER_INDICATOR';\n var dismissUntil = parseInt(window.localStorage.getItem(dismissKey), 10);\n var dismissed = dismissUntil > new Date().getTime();\n var isVisible = !dismissed && window.__NEXT_DATA__.nextExport;\n\n function updateContainer() {\n if (isVisible) {\n container.classList.add(\"\".concat(prefix, \"visible\"));\n } else {\n container.classList.remove(\"\".concat(prefix, \"visible\"));\n }\n }\n\n var expandedClass = \"\".concat(prefix, \"expanded\");\n var toggleTimeout;\n\n var toggleExpand = function toggleExpand() {\n var expand = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n clearTimeout(toggleTimeout);\n toggleTimeout = setTimeout(function () {\n if (expand) {\n expandEl.classList.add(expandedClass);\n closeEl.style.display = 'flex';\n } else {\n expandEl.classList.remove(expandedClass);\n closeEl.style.display = 'none';\n }\n }, 50);\n };\n\n closeEl.addEventListener('click', function () {\n var oneHourAway = new Date().getTime() + 1 * 60 * 60 * 1000;\n window.localStorage.setItem(dismissKey, oneHourAway + '');\n isVisible = false;\n updateContainer();\n });\n closeEl.addEventListener('mouseenter', function () {\n return toggleExpand();\n });\n closeEl.addEventListener('mouseleave', function () {\n return toggleExpand(false);\n });\n expandEl.addEventListener('mouseenter', function () {\n return toggleExpand();\n });\n expandEl.addEventListener('mouseleave', function () {\n return toggleExpand(false);\n });\n\n _router[\"default\"].events.on('routeChangeComplete', function () {\n isVisible = window.next.isPrerendered;\n updateContainer();\n });\n\n updateContainer();\n}\n\nfunction createContainer(prefix) {\n var container = document.createElement('div');\n container.id = \"\".concat(prefix, \"container\");\n container.innerHTML = \"\\n \\n \\n
\\n \\n \\n \\n \\n \\n Prerendered Page\\n
\\n
\\n \");\n return container;\n}\n\nfunction createCss(prefix) {\n var css = document.createElement('style');\n css.textContent = \"\\n #\".concat(prefix, \"container {\\n position: absolute;\\n display: none;\\n bottom: 10px;\\n right: 15px;\\n }\\n\\n #\").concat(prefix, \"close {\\n top: -10px;\\n right: -10px;\\n border: none;\\n width: 18px;\\n height: 18px;\\n color: #333333;\\n font-size: 16px;\\n cursor: pointer;\\n display: none;\\n position: absolute;\\n background: #ffffff;\\n border-radius: 100%;\\n align-items: center;\\n flex-direction: column;\\n justify-content: center;\\n }\\n\\n #\").concat(prefix, \"container a {\\n color: inherit;\\n text-decoration: none;\\n width: 15px;\\n height: 23px;\\n overflow: hidden;\\n\\n border-radius: 3px;\\n background: #fff;\\n color: #000;\\n font: initial;\\n cursor: pointer;\\n letter-spacing: initial;\\n text-shadow: initial;\\n text-transform: initial;\\n visibility: initial;\\n font-size: 14px;\\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\\n\\n padding: 4px 2px;\\n align-items: center;\\n box-shadow: 0 11px 40px 0 rgba(0, 0, 0, 0.25), 0 2px 10px 0 rgba(0, 0, 0, 0.12);\\n\\n display: flex;\\n transition: opacity 0.1s ease, bottom 0.1s ease, width 0.3s ease;\\n animation: \").concat(prefix, \"fade-in 0.1s ease-in-out;\\n }\\n\\n #\").concat(prefix, \"icon-wrapper {\\n width: 140px;\\n height: 20px;\\n display: flex;\\n flex-shrink: 0;\\n align-items: center;\\n position: relative;\\n }\\n\\n #\").concat(prefix, \"icon-wrapper svg {\\n flex-shrink: 0;\\n margin-right: 3px;\\n }\\n\\n #\").concat(prefix, \"container a.\").concat(prefix, \"expanded {\\n width: 135px;\\n }\\n\\n #\").concat(prefix, \"container.\").concat(prefix, \"visible {\\n display: flex;\\n bottom: 10px;\\n opacity: 1;\\n }\\n\\n @keyframes \").concat(prefix, \"fade-in {\\n from {\\n bottom: 0px;\\n opacity: 0;\\n }\\n to {\\n bottom: 10px;\\n opacity: 1;\\n }\\n }\\n \");\n return css;\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.i);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uLy4uL2NsaWVudC9kZXYvcHJlcmVuZGVyLWluZGljYXRvci5qcz8yZDdkIl0sIm5hbWVzIjpbInNoYWRvd0hvc3QiLCJkb2N1bWVudCIsInByZWZpeCIsInNoYWRvd1Jvb3QiLCJtb2RlIiwiY29udGFpbmVyIiwiY3JlYXRlQ29udGFpbmVyIiwiY3NzIiwiY3JlYXRlQ3NzIiwiZXhwYW5kRWwiLCJjbG9zZUVsIiwiZGlzbWlzc0tleSIsImRpc21pc3NVbnRpbCIsInBhcnNlSW50Iiwid2luZG93IiwiZGlzbWlzc2VkIiwiaXNWaXNpYmxlIiwiZXhwYW5kZWRDbGFzcyIsInRvZ2dsZUV4cGFuZCIsImV4cGFuZCIsImNsZWFyVGltZW91dCIsInRvZ2dsZVRpbWVvdXQiLCJzZXRUaW1lb3V0Iiwib25lSG91ckF3YXkiLCJ1cGRhdGVDb250YWluZXIiLCJSb3V0ZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFFZSxrQ0FBa0M7QUFDL0MsTUFBTUEsVUFBVSxHQUFHQyxRQUFRLENBQVJBLGNBQW5CLEtBQW1CQSxDQUFuQjtBQUNBRCxZQUFVLENBQVZBLGtDQUYrQyxDQUcvQzs7QUFDQUEsWUFBVSxDQUFWQTtBQUNBQSxZQUFVLENBQVZBO0FBQ0FBLFlBQVUsQ0FBVkE7QUFDQUEsWUFBVSxDQUFWQTtBQUNBQSxZQUFVLENBQVZBO0FBQ0FBLFlBQVUsQ0FBVkE7QUFDQUEsWUFBVSxDQUFWQTtBQUVBQyxVQUFRLENBQVJBO0FBRUE7QUFDQSxNQUFJQyxNQUFNLEdBQVY7O0FBRUEsTUFBSUYsVUFBVSxDQUFkLGNBQTZCO0FBQzNCRyxjQUFVLEdBQUdILFVBQVUsQ0FBVkEsYUFBd0I7QUFBRUksVUFBSSxFQUEzQ0Q7QUFBcUMsS0FBeEJILENBQWJHO0FBREYsU0FFTztBQUNMO0FBQ0E7QUFDQTtBQUNBQSxjQUFVLEdBQVZBO0FBQ0FELFVBQU0sR0FBTkE7QUFHRixHQTNCK0MsQ0EyQi9DOzs7QUFDQSxNQUFNRyxTQUFTLEdBQUdDLGVBQWUsQ0FBakMsTUFBaUMsQ0FBakM7QUFDQUgsWUFBVSxDQUFWQSx1QkE3QitDLENBK0IvQzs7QUFDQSxNQUFNSSxHQUFHLEdBQUdDLFNBQVMsQ0FBckIsTUFBcUIsQ0FBckI7QUFDQUwsWUFBVSxDQUFWQTtBQUVBLE1BQU1NLFFBQVEsR0FBR0osU0FBUyxDQUFUQSxjQUFqQixHQUFpQkEsQ0FBakI7QUFDQSxNQUFNSyxPQUFPLEdBQUdMLFNBQVMsQ0FBVEEseUJBQWhCLE1BQWdCQSxXQUFoQixDQXBDK0MsQ0FzQy9DOztBQUNBLE1BQU1NLFVBQVUsR0FBaEI7QUFDQSxNQUFNQyxZQUFZLEdBQUdDLFFBQVEsQ0FBQ0MsTUFBTSxDQUFOQSxxQkFBRCxVQUFDQSxDQUFELEVBQTdCLEVBQTZCLENBQTdCO0FBQ0EsTUFBTUMsU0FBUyxHQUFHSCxZQUFZLEdBQUcsV0FBakMsT0FBaUMsRUFBakM7QUFFQSxNQUFJSSxTQUFTLEdBQUcsY0FBY0YsTUFBTSxDQUFOQSxjQUE5Qjs7QUFFQSw2QkFBMkI7QUFDekIsbUJBQWU7QUFDYlQsZUFBUyxDQUFUQTtBQURGLFdBRU87QUFDTEEsZUFBUyxDQUFUQTtBQUVIO0FBQ0Q7O0FBQUEsTUFBTVksYUFBYSxhQUFuQixNQUFtQixhQUFuQjtBQUNBOztBQUVBLE1BQU1DLFlBQVksR0FBRyxTQUFmQSxZQUFlLEdBQW1CO0FBQUEsUUFBbEJDLE1BQWtCLHVFQUFuQixJQUFtQjtBQUN0Q0MsZ0JBQVksQ0FBWkEsYUFBWSxDQUFaQTtBQUVBQyxpQkFBYSxHQUFHQyxVQUFVLENBQUMsWUFBTTtBQUMvQixrQkFBWTtBQUNWYixnQkFBUSxDQUFSQTtBQUNBQyxlQUFPLENBQVBBO0FBRkYsYUFHTztBQUNMRCxnQkFBUSxDQUFSQTtBQUNBQyxlQUFPLENBQVBBO0FBRUg7QUFSeUIsT0FBMUJXLEVBQTBCLENBQTFCQTtBQUhGOztBQWNBWCxTQUFPLENBQVBBLDBCQUFrQyxZQUFNO0FBQ3RDLFFBQU1hLFdBQVcsR0FBRyx1QkFBdUIsY0FBM0M7QUFDQVQsVUFBTSxDQUFOQSxpQ0FBd0NTLFdBQVcsR0FBbkRUO0FBQ0FFLGFBQVMsR0FBVEE7QUFDQVEsbUJBQWU7QUFKakJkO0FBTUFBLFNBQU8sQ0FBUEEsK0JBQXVDO0FBQUEsV0FBTVEsWUFBN0NSLEVBQXVDO0FBQUEsR0FBdkNBO0FBQ0FBLFNBQU8sQ0FBUEEsK0JBQXVDO0FBQUEsV0FBTVEsWUFBWSxDQUF6RFIsS0FBeUQsQ0FBbEI7QUFBQSxHQUF2Q0E7QUFDQUQsVUFBUSxDQUFSQSwrQkFBd0M7QUFBQSxXQUFNUyxZQUE5Q1QsRUFBd0M7QUFBQSxHQUF4Q0E7QUFDQUEsVUFBUSxDQUFSQSwrQkFBd0M7QUFBQSxXQUFNUyxZQUFZLENBQTFEVCxLQUEwRCxDQUFsQjtBQUFBLEdBQXhDQTs7QUFFQWdCLHNEQUF3QyxZQUFNO0FBQzVDVCxhQUFTLEdBQUdGLE1BQU0sQ0FBTkEsS0FBWkU7QUFDQVEsbUJBQWU7QUFGakJDOztBQUlBRCxpQkFBZTtBQUdqQjs7QUFBQSxpQ0FBaUM7QUFDL0IsTUFBTW5CLFNBQVMsR0FBR0osUUFBUSxDQUFSQSxjQUFsQixLQUFrQkEsQ0FBbEI7QUFDQUksV0FBUyxDQUFUQTtBQUNBLFdBQVMsQ0FBVCx5Q0FDZ0JILE1BRGhCLDhQQUtlQSxNQUxmO0FBZUE7QUFHRjs7QUFBQSwyQkFBMkI7QUFDekIsTUFBTUssR0FBRyxHQUFHTixRQUFRLENBQVJBLGNBQVosT0FBWUEsQ0FBWjtBQUNBLEtBQUcsQ0FBSCwrQkFDS0MsTUFETCxrSUFRS0EsTUFSTCxxWkEwQktBLE1BMUJMLDh5QkFtRGlCQSxNQW5EakIsc0RBc0RLQSxNQXRETCx5TEErREtBLE1BL0RMLGdHQW9FS0EsTUFwRUwseUJBb0UwQkEsTUFwRTFCLDREQXdFS0EsTUF4RUwsdUJBd0V3QkEsTUF4RXhCLDhHQThFZUEsTUE5RWY7QUEwRkE7QUFDRCIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2Rldi9wcmVyZW5kZXItaW5kaWNhdG9yLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJvdXRlciBmcm9tICcuLi9yb3V0ZXInXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGluaXRpYWxpemVCdWlsZFdhdGNoZXIoKSB7XG4gIGNvbnN0IHNoYWRvd0hvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKVxuICBzaGFkb3dIb3N0LmlkID0gJ19fbmV4dC1wcmVyZW5kZXItaW5kaWNhdG9yJ1xuICAvLyBNYWtlIHN1cmUgY29udGFpbmVyIGlzIGZpeGVkIGFuZCBvbiBhIGhpZ2ggekluZGV4IHNvIGl0IHNob3dzXG4gIHNoYWRvd0hvc3Quc3R5bGUucG9zaXRpb24gPSAnZml4ZWQnXG4gIHNoYWRvd0hvc3Quc3R5bGUuYm90dG9tID0gJzIwcHgnXG4gIHNoYWRvd0hvc3Quc3R5bGUucmlnaHQgPSAnMTBweCdcbiAgc2hhZG93SG9zdC5zdHlsZS53aWR0aCA9IDBcbiAgc2hhZG93SG9zdC5zdHlsZS5oZWlnaHQgPSAwXG4gIHNoYWRvd0hvc3Quc3R5bGUuekluZGV4ID0gOTk5OThcbiAgc2hhZG93SG9zdC5zdHlsZS50cmFuc2l0aW9uID0gJ2FsbCAxMDBtcyBlYXNlJ1xuXG4gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2hhZG93SG9zdClcblxuICBsZXQgc2hhZG93Um9vdFxuICBsZXQgcHJlZml4ID0gJydcblxuICBpZiAoc2hhZG93SG9zdC5hdHRhY2hTaGFkb3cpIHtcbiAgICBzaGFkb3dSb290ID0gc2hhZG93SG9zdC5hdHRhY2hTaGFkb3coeyBtb2RlOiAnb3BlbicgfSlcbiAgfSBlbHNlIHtcbiAgICAvLyBJZiBhdHRhY2hTaGFkb3cgaXMgdW5kZWZpbmVkIHRoZW4gdGhlIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydFxuICAgIC8vIHRoZSBTaGFkb3cgRE9NLCB3ZSBuZWVkIHRvIHByZWZpeCBhbGwgdGhlIG5hbWVzIHNvIHRoZXJlXG4gICAgLy8gd2lsbCBiZSBubyBjb25mbGljdHNcbiAgICBzaGFkb3dSb290ID0gc2hhZG93SG9zdFxuICAgIHByZWZpeCA9ICdfX25leHQtcHJlcmVuZGVyLWluZGljYXRvci0nXG4gIH1cblxuICAvLyBDb250YWluZXJcbiAgY29uc3QgY29udGFpbmVyID0gY3JlYXRlQ29udGFpbmVyKHByZWZpeClcbiAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChjb250YWluZXIpXG5cbiAgLy8gQ1NTXG4gIGNvbnN0IGNzcyA9IGNyZWF0ZUNzcyhwcmVmaXgpXG4gIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoY3NzKVxuXG4gIGNvbnN0IGV4cGFuZEVsID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ2EnKVxuICBjb25zdCBjbG9zZUVsID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoYCMke3ByZWZpeH1jbG9zZWApXG5cbiAgLy8gU3RhdGVcbiAgY29uc3QgZGlzbWlzc0tleSA9ICdfX05FWFRfRElTTUlTU19QUkVSRU5ERVJfSU5ESUNBVE9SJ1xuICBjb25zdCBkaXNtaXNzVW50aWwgPSBwYXJzZUludCh3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oZGlzbWlzc0tleSksIDEwKVxuICBjb25zdCBkaXNtaXNzZWQgPSBkaXNtaXNzVW50aWwgPiBuZXcgRGF0ZSgpLmdldFRpbWUoKVxuXG4gIGxldCBpc1Zpc2libGUgPSAhZGlzbWlzc2VkICYmIHdpbmRvdy5fX05FWFRfREFUQV9fLm5leHRFeHBvcnRcblxuICBmdW5jdGlvbiB1cGRhdGVDb250YWluZXIoKSB7XG4gICAgaWYgKGlzVmlzaWJsZSkge1xuICAgICAgY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoYCR7cHJlZml4fXZpc2libGVgKVxuICAgIH0gZWxzZSB7XG4gICAgICBjb250YWluZXIuY2xhc3NMaXN0LnJlbW92ZShgJHtwcmVmaXh9dmlzaWJsZWApXG4gICAgfVxuICB9XG4gIGNvbnN0IGV4cGFuZGVkQ2xhc3MgPSBgJHtwcmVmaXh9ZXhwYW5kZWRgXG4gIGxldCB0b2dnbGVUaW1lb3V0XG5cbiAgY29uc3QgdG9nZ2xlRXhwYW5kID0gKGV4cGFuZCA9IHRydWUpID0+IHtcbiAgICBjbGVhclRpbWVvdXQodG9nZ2xlVGltZW91dClcblxuICAgIHRvZ2dsZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmIChleHBhbmQpIHtcbiAgICAgICAgZXhwYW5kRWwuY2xhc3NMaXN0LmFkZChleHBhbmRlZENsYXNzKVxuICAgICAgICBjbG9zZUVsLnN0eWxlLmRpc3BsYXkgPSAnZmxleCdcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGV4cGFuZEVsLmNsYXNzTGlzdC5yZW1vdmUoZXhwYW5kZWRDbGFzcylcbiAgICAgICAgY2xvc2VFbC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnXG4gICAgICB9XG4gICAgfSwgNTApXG4gIH1cblxuICBjbG9zZUVsLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgIGNvbnN0IG9uZUhvdXJBd2F5ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgKyAxICogNjAgKiA2MCAqIDEwMDBcbiAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oZGlzbWlzc0tleSwgb25lSG91ckF3YXkgKyAnJylcbiAgICBpc1Zpc2libGUgPSBmYWxzZVxuICAgIHVwZGF0ZUNvbnRhaW5lcigpXG4gIH0pXG4gIGNsb3NlRWwuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsICgpID0+IHRvZ2dsZUV4cGFuZCgpKVxuICBjbG9zZUVsLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCAoKSA9PiB0b2dnbGVFeHBhbmQoZmFsc2UpKVxuICBleHBhbmRFbC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgKCkgPT4gdG9nZ2xlRXhwYW5kKCkpXG4gIGV4cGFuZEVsLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCAoKSA9PiB0b2dnbGVFeHBhbmQoZmFsc2UpKVxuXG4gIFJvdXRlci5ldmVudHMub24oJ3JvdXRlQ2hhbmdlQ29tcGxldGUnLCAoKSA9PiB7XG4gICAgaXNWaXNpYmxlID0gd2luZG93Lm5leHQuaXNQcmVyZW5kZXJlZFxuICAgIHVwZGF0ZUNvbnRhaW5lcigpXG4gIH0pXG4gIHVwZGF0ZUNvbnRhaW5lcigpXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUNvbnRhaW5lcihwcmVmaXgpIHtcbiAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JylcbiAgY29udGFpbmVyLmlkID0gYCR7cHJlZml4fWNvbnRhaW5lcmBcbiAgY29udGFpbmVyLmlubmVySFRNTCA9IGBcbiAgICA8YnV0dG9uIGlkPVwiJHtwcmVmaXh9Y2xvc2VcIiB0aXRsZT1cIkhpZGUgaW5kaWNhdG9yIGZvciBzZXNzaW9uXCI+XG4gICAgICA8c3Bhbj7Dlzwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8YSBocmVmPVwiaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBpLXJlZmVyZW5jZS9uZXh0LmNvbmZpZy5qcy9zdGF0aWMtb3B0aW1pemF0aW9uLWluZGljYXRvclwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vcmVmZXJyZXJcIj5cbiAgICAgIDxkaXYgaWQ9XCIke3ByZWZpeH1pY29uLXdyYXBwZXJcIj5cbiAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTVcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgNjAgODBcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICA8cGF0aCBkPVwiTTM2IDNMMzAuNzQgNDFIOEwzNiAzWlwiIGZpbGw9XCJibGFja1wiLz5cbiAgICAgICAgICA8cGF0aCBkPVwiTTI1IDc3TDMwLjI2IDM5SDUzTDI1IDc3WlwiIGZpbGw9XCJibGFja1wiLz5cbiAgICAgICAgICA8cGF0aCBkPVwiTTEzLjUgMzMuNUw1MyAzOUw0Ny41IDQ2LjVMNyA0MS4yNUwxMy41IDMzLjVaXCIgZmlsbD1cImJsYWNrXCIvPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgIFByZXJlbmRlcmVkIFBhZ2VcbiAgICAgIDwvZGl2PlxuICAgIDwvYT5cbiAgYFxuICByZXR1cm4gY29udGFpbmVyXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUNzcyhwcmVmaXgpIHtcbiAgY29uc3QgY3NzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKVxuICBjc3MudGV4dENvbnRlbnQgPSBgXG4gICAgIyR7cHJlZml4fWNvbnRhaW5lciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgYm90dG9tOiAxMHB4O1xuICAgICAgcmlnaHQ6IDE1cHg7XG4gICAgfVxuXG4gICAgIyR7cHJlZml4fWNsb3NlIHtcbiAgICAgIHRvcDogLTEwcHg7XG4gICAgICByaWdodDogLTEwcHg7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICB3aWR0aDogMThweDtcbiAgICAgIGhlaWdodDogMThweDtcbiAgICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAjJHtwcmVmaXh9Y29udGFpbmVyIGEge1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICB3aWR0aDogMTVweDtcbiAgICAgIGhlaWdodDogMjNweDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICBjb2xvcjogIzAwMDtcbiAgICAgIGZvbnQ6IGluaXRpYWw7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBsZXR0ZXItc3BhY2luZzogaW5pdGlhbDtcbiAgICAgIHRleHQtc2hhZG93OiBpbml0aWFsO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IGluaXRpYWw7XG4gICAgICB2aXNpYmlsaXR5OiBpbml0aWFsO1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBPeHlnZW4sIFVidW50dSwgQ2FudGFyZWxsLCAnT3BlbiBTYW5zJywgJ0hlbHZldGljYSBOZXVlJywgc2Fucy1zZXJpZjtcblxuICAgICAgcGFkZGluZzogNHB4IDJweDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBib3gtc2hhZG93OiAwIDExcHggNDBweCAwIHJnYmEoMCwgMCwgMCwgMC4yNSksIDAgMnB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuXG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjFzIGVhc2UsIGJvdHRvbSAwLjFzIGVhc2UsIHdpZHRoIDAuM3MgZWFzZTtcbiAgICAgIGFuaW1hdGlvbjogJHtwcmVmaXh9ZmFkZS1pbiAwLjFzIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICMke3ByZWZpeH1pY29uLXdyYXBwZXIge1xuICAgICAgd2lkdGg6IDE0MHB4O1xuICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG5cbiAgICAjJHtwcmVmaXh9aWNvbi13cmFwcGVyIHN2ZyB7XG4gICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIG1hcmdpbi1yaWdodDogM3B4O1xuICAgIH1cblxuICAgICMke3ByZWZpeH1jb250YWluZXIgYS4ke3ByZWZpeH1leHBhbmRlZCB7XG4gICAgICB3aWR0aDogMTM1cHg7XG4gICAgfVxuXG4gICAgIyR7cHJlZml4fWNvbnRhaW5lci4ke3ByZWZpeH12aXNpYmxlIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBib3R0b206IDEwcHg7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgIEBrZXlmcmFtZXMgJHtwcmVmaXh9ZmFkZS1pbiB7XG4gICAgICBmcm9tIHtcbiAgICAgICAgYm90dG9tOiAwcHg7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgICB0byB7XG4gICAgICAgIGJvdHRvbTogMTBweDtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cbiAgICB9XG4gIGBcblxuICByZXR1cm4gY3NzXG59XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/prerender-indicator.js\n"); /***/ }), @@ -2069,7 +1794,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nvar _interopRequireDefau /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nvar _slicedToArray = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _hotDevClient = _interopRequireDefault(__webpack_require__(/*! ./error-overlay/hot-dev-client */ \"./node_modules/next/dist/client/dev/error-overlay/hot-dev-client.js\"));\n\nvar _default = function _default(_ref) {\n var assetPrefix = _ref.assetPrefix;\n var options = {\n path: \"\".concat(assetPrefix, \"/_next/webpack-hmr\")\n };\n var devClient = (0, _hotDevClient[\"default\"])(options);\n devClient.subscribeToHmrEvent(function (obj) {\n if (obj.action === 'reloadPage') {\n return window.location.reload();\n }\n\n if (obj.action === 'removedPage') {\n var _obj$data = _slicedToArray(obj.data, 1),\n page = _obj$data[0];\n\n if (page === window.next.router.pathname) {\n return window.location.reload();\n }\n\n return;\n }\n\n if (obj.action === 'addedPage') {\n var _obj$data2 = _slicedToArray(obj.data, 1),\n _page = _obj$data2[0];\n\n if (_page === window.next.router.pathname && typeof window.next.router.components[_page] === 'undefined') {\n return window.location.reload();\n }\n\n return;\n }\n\n throw new Error('Unexpected action ' + obj.action);\n });\n return devClient;\n};\n\nexports[\"default\"] = _default;\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.i);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uLy4uL2NsaWVudC9kZXYvd2VicGFjay1ob3QtbWlkZGxld2FyZS1jbGllbnQuanM/ODJmZiJdLCJuYW1lcyI6WyJvcHRpb25zIiwicGF0aCIsImRldkNsaWVudCIsIm9iaiIsIndpbmRvdyIsInBhZ2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztlQUVlLFMsUUFBQSxPQUFxQjtBQUFBLE1BQXJCLFdBQXFCLFFBQXJCLFdBQXFCO0FBQ2xDLE1BQU1BLE9BQU8sR0FBRztBQUNkQyxRQUFJLFlBRE4sV0FDTTtBQURVLEdBQWhCO0FBSUEsTUFBTUMsU0FBUyxHQUFHLDhCQUFsQixPQUFrQixDQUFsQjtBQUVBQSxXQUFTLENBQVRBLG9CQUErQkMsYUFBRCxFQUFTO0FBQ3JDLFFBQUlBLEdBQUcsQ0FBSEEsV0FBSixjQUFpQztBQUMvQixhQUFPQyxNQUFNLENBQU5BLFNBQVAsTUFBT0EsRUFBUDtBQUVGOztBQUFBLFFBQUlELEdBQUcsQ0FBSEEsV0FBSixlQUFrQztBQUFBLHFDQUNqQkEsR0FBRyxDQUFsQixJQURnQztBQUFBLFVBQzFCLElBRDBCOztBQUVoQyxVQUFJRSxJQUFJLEtBQUtELE1BQU0sQ0FBTkEsWUFBYixVQUEwQztBQUN4QyxlQUFPQSxNQUFNLENBQU5BLFNBQVAsTUFBT0EsRUFBUDtBQUVGOztBQUFBO0FBRUY7O0FBQUEsUUFBSUQsR0FBRyxDQUFIQSxXQUFKLGFBQWdDO0FBQUEsc0NBQ2ZBLEdBQUcsQ0FBbEIsSUFEOEI7QUFBQSxVQUN4QixLQUR3Qjs7QUFFOUIsVUFDRUUsS0FBSSxLQUFLRCxNQUFNLENBQU5BLFlBQVRDLFlBQ0EsT0FBT0QsTUFBTSxDQUFOQSx1QkFBUCxLQUFPQSxDQUFQLEtBRkYsYUFHRTtBQUNBLGVBQU9BLE1BQU0sQ0FBTkEsU0FBUCxNQUFPQSxFQUFQO0FBRUY7O0FBQUE7QUFFRjs7QUFBQSxVQUFNLFVBQVUsdUJBQXVCRCxHQUFHLENBQTFDLE1BQU0sQ0FBTjtBQXJCRkQ7QUF3QkEiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvd2VicGFjay1ob3QtbWlkZGxld2FyZS1jbGllbnQuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY29ubmVjdCBmcm9tICcuL2Vycm9yLW92ZXJsYXkvaG90LWRldi1jbGllbnQnXG5cbmV4cG9ydCBkZWZhdWx0ICh7IGFzc2V0UHJlZml4IH0pID0+IHtcbiAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICBwYXRoOiBgJHthc3NldFByZWZpeH0vX25leHQvd2VicGFjay1obXJgLFxuICB9XG5cbiAgY29uc3QgZGV2Q2xpZW50ID0gY29ubmVjdChvcHRpb25zKVxuXG4gIGRldkNsaWVudC5zdWJzY3JpYmVUb0htckV2ZW50KChvYmopID0+IHtcbiAgICBpZiAob2JqLmFjdGlvbiA9PT0gJ3JlbG9hZFBhZ2UnKSB7XG4gICAgICByZXR1cm4gd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpXG4gICAgfVxuICAgIGlmIChvYmouYWN0aW9uID09PSAncmVtb3ZlZFBhZ2UnKSB7XG4gICAgICBjb25zdCBbcGFnZV0gPSBvYmouZGF0YVxuICAgICAgaWYgKHBhZ2UgPT09IHdpbmRvdy5uZXh0LnJvdXRlci5wYXRobmFtZSkge1xuICAgICAgICByZXR1cm4gd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpXG4gICAgICB9XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgaWYgKG9iai5hY3Rpb24gPT09ICdhZGRlZFBhZ2UnKSB7XG4gICAgICBjb25zdCBbcGFnZV0gPSBvYmouZGF0YVxuICAgICAgaWYgKFxuICAgICAgICBwYWdlID09PSB3aW5kb3cubmV4dC5yb3V0ZXIucGF0aG5hbWUgJiZcbiAgICAgICAgdHlwZW9mIHdpbmRvdy5uZXh0LnJvdXRlci5jb21wb25lbnRzW3BhZ2VdID09PSAndW5kZWZpbmVkJ1xuICAgICAgKSB7XG4gICAgICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKClcbiAgICAgIH1cbiAgICAgIHJldHVyblxuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuZXhwZWN0ZWQgYWN0aW9uICcgKyBvYmouYWN0aW9uKVxuICB9KVxuXG4gIHJldHVybiBkZXZDbGllbnRcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/webpack-hot-middleware-client.js\n"); +eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nvar _slicedToArray = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/next/node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/next/node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _hotDevClient = _interopRequireDefault(__webpack_require__(/*! ./error-overlay/hot-dev-client */ \"./node_modules/next/dist/client/dev/error-overlay/hot-dev-client.js\"));\n\nvar _default = function _default(_ref) {\n var assetPrefix = _ref.assetPrefix;\n var options = {\n path: \"\".concat(assetPrefix, \"/_next/webpack-hmr\")\n };\n var devClient = (0, _hotDevClient[\"default\"])(options);\n devClient.subscribeToHmrEvent(function (obj) {\n if (obj.action === 'reloadPage') {\n return window.location.reload();\n }\n\n if (obj.action === 'removedPage') {\n var _obj$data = _slicedToArray(obj.data, 1),\n page = _obj$data[0];\n\n if (page === window.next.router.pathname) {\n return window.location.reload();\n }\n\n return;\n }\n\n if (obj.action === 'addedPage') {\n var _obj$data2 = _slicedToArray(obj.data, 1),\n _page = _obj$data2[0];\n\n if (_page === window.next.router.pathname && typeof window.next.router.components[_page] === 'undefined') {\n return window.location.reload();\n }\n\n return;\n }\n\n throw new Error('Unexpected action ' + obj.action);\n });\n return devClient;\n};\n\nexports[\"default\"] = _default;\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.i);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uLy4uL2NsaWVudC9kZXYvd2VicGFjay1ob3QtbWlkZGxld2FyZS1jbGllbnQuanM/ODJmZiJdLCJuYW1lcyI6WyJvcHRpb25zIiwicGF0aCIsImRldkNsaWVudCIsIm9iaiIsIndpbmRvdyIsInBhZ2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztlQUVlLFMsUUFBQSxPQUFxQjtBQUFBLE1BQXJCLFdBQXFCLFFBQXJCLFdBQXFCO0FBQ2xDLE1BQU1BLE9BQU8sR0FBRztBQUNkQyxRQUFJLFlBRE4sV0FDTTtBQURVLEdBQWhCO0FBSUEsTUFBTUMsU0FBUyxHQUFHLDhCQUFsQixPQUFrQixDQUFsQjtBQUVBQSxXQUFTLENBQVRBLG9CQUErQkMsYUFBRCxFQUFTO0FBQ3JDLFFBQUlBLEdBQUcsQ0FBSEEsV0FBSixjQUFpQztBQUMvQixhQUFPQyxNQUFNLENBQU5BLFNBQVAsTUFBT0EsRUFBUDtBQUVGOztBQUFBLFFBQUlELEdBQUcsQ0FBSEEsV0FBSixlQUFrQztBQUFBLHFDQUNqQkEsR0FBRyxDQUFsQixJQURnQztBQUFBLFVBQzFCLElBRDBCOztBQUVoQyxVQUFJRSxJQUFJLEtBQUtELE1BQU0sQ0FBTkEsWUFBYixVQUEwQztBQUN4QyxlQUFPQSxNQUFNLENBQU5BLFNBQVAsTUFBT0EsRUFBUDtBQUVGOztBQUFBO0FBRUY7O0FBQUEsUUFBSUQsR0FBRyxDQUFIQSxXQUFKLGFBQWdDO0FBQUEsc0NBQ2ZBLEdBQUcsQ0FBbEIsSUFEOEI7QUFBQSxVQUN4QixLQUR3Qjs7QUFFOUIsVUFDRUUsS0FBSSxLQUFLRCxNQUFNLENBQU5BLFlBQVRDLFlBQ0EsT0FBT0QsTUFBTSxDQUFOQSx1QkFBUCxLQUFPQSxDQUFQLEtBRkYsYUFHRTtBQUNBLGVBQU9BLE1BQU0sQ0FBTkEsU0FBUCxNQUFPQSxFQUFQO0FBRUY7O0FBQUE7QUFFRjs7QUFBQSxVQUFNLFVBQVUsdUJBQXVCRCxHQUFHLENBQTFDLE1BQU0sQ0FBTjtBQXJCRkQ7QUF3QkEiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvd2VicGFjay1ob3QtbWlkZGxld2FyZS1jbGllbnQuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY29ubmVjdCBmcm9tICcuL2Vycm9yLW92ZXJsYXkvaG90LWRldi1jbGllbnQnXG5cbmV4cG9ydCBkZWZhdWx0ICh7IGFzc2V0UHJlZml4IH0pID0+IHtcbiAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICBwYXRoOiBgJHthc3NldFByZWZpeH0vX25leHQvd2VicGFjay1obXJgLFxuICB9XG5cbiAgY29uc3QgZGV2Q2xpZW50ID0gY29ubmVjdChvcHRpb25zKVxuXG4gIGRldkNsaWVudC5zdWJzY3JpYmVUb0htckV2ZW50KChvYmopID0+IHtcbiAgICBpZiAob2JqLmFjdGlvbiA9PT0gJ3JlbG9hZFBhZ2UnKSB7XG4gICAgICByZXR1cm4gd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpXG4gICAgfVxuICAgIGlmIChvYmouYWN0aW9uID09PSAncmVtb3ZlZFBhZ2UnKSB7XG4gICAgICBjb25zdCBbcGFnZV0gPSBvYmouZGF0YVxuICAgICAgaWYgKHBhZ2UgPT09IHdpbmRvdy5uZXh0LnJvdXRlci5wYXRobmFtZSkge1xuICAgICAgICByZXR1cm4gd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpXG4gICAgICB9XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgaWYgKG9iai5hY3Rpb24gPT09ICdhZGRlZFBhZ2UnKSB7XG4gICAgICBjb25zdCBbcGFnZV0gPSBvYmouZGF0YVxuICAgICAgaWYgKFxuICAgICAgICBwYWdlID09PSB3aW5kb3cubmV4dC5yb3V0ZXIucGF0aG5hbWUgJiZcbiAgICAgICAgdHlwZW9mIHdpbmRvdy5uZXh0LnJvdXRlci5jb21wb25lbnRzW3BhZ2VdID09PSAndW5kZWZpbmVkJ1xuICAgICAgKSB7XG4gICAgICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKClcbiAgICAgIH1cbiAgICAgIHJldHVyblxuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuZXhwZWN0ZWQgYWN0aW9uICcgKyBvYmouYWN0aW9uKVxuICB9KVxuXG4gIHJldHVybiBkZXZDbGllbnRcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/webpack-hot-middleware-client.js\n"); /***/ }), @@ -2081,7 +1806,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nvar _slicedToArray = __w /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nexports.__esModule = true;\nexports[\"default\"] = initHeadManager;\nvar DOMAttributeNames = {\n acceptCharset: 'accept-charset',\n className: 'class',\n htmlFor: 'for',\n httpEquiv: 'http-equiv'\n};\n\nfunction reactElementToDOM(_ref) {\n var type = _ref.type,\n props = _ref.props;\n var el = document.createElement(type);\n\n for (var p in props) {\n if (!props.hasOwnProperty(p)) continue;\n if (p === 'children' || p === 'dangerouslySetInnerHTML') continue; // we don't render undefined props to the DOM\n\n if (props[p] === undefined) continue;\n var attr = DOMAttributeNames[p] || p.toLowerCase();\n el.setAttribute(attr, props[p]);\n }\n\n var children = props.children,\n dangerouslySetInnerHTML = props.dangerouslySetInnerHTML;\n\n if (dangerouslySetInnerHTML) {\n el.innerHTML = dangerouslySetInnerHTML.__html || '';\n } else if (children) {\n el.textContent = typeof children === 'string' ? children : children.join('');\n }\n\n return el;\n}\n\nfunction updateElements(type, components) {\n var headEl = document.getElementsByTagName('head')[0];\n var headCountEl = headEl.querySelector('meta[name=next-head-count]');\n\n if (true) {\n if (!headCountEl) {\n console.error('Warning: next-head-count is missing. https://err.sh/next.js/next-head-count-missing');\n return;\n }\n }\n\n var headCount = Number(headCountEl.content);\n var oldTags = [];\n\n for (var i = 0, j = headCountEl.previousElementSibling; i < headCount; i++, j = j.previousElementSibling) {\n if (j.tagName.toLowerCase() === type) {\n oldTags.push(j);\n }\n }\n\n var newTags = components.map(reactElementToDOM).filter(function (newTag) {\n for (var k = 0, len = oldTags.length; k < len; k++) {\n var oldTag = oldTags[k];\n\n if (oldTag.isEqualNode(newTag)) {\n oldTags.splice(k, 1);\n return false;\n }\n }\n\n return true;\n });\n oldTags.forEach(function (t) {\n return t.parentNode.removeChild(t);\n });\n newTags.forEach(function (t) {\n return headEl.insertBefore(t, headCountEl);\n });\n headCountEl.content = (headCount - oldTags.length + newTags.length).toString();\n}\n\nfunction initHeadManager() {\n var updatePromise = null;\n return {\n mountedInstances: new Set(),\n updateHead: function updateHead(head) {\n var promise = updatePromise = Promise.resolve().then(function () {\n if (promise !== updatePromise) return;\n updatePromise = null;\n var tags = {};\n head.forEach(function (h) {\n var components = tags[h.type] || [];\n components.push(h);\n tags[h.type] = components;\n });\n var titleComponent = tags.title ? tags.title[0] : null;\n var title = '';\n\n if (titleComponent) {\n var children = titleComponent.props.children;\n title = typeof children === 'string' ? children : children.join('');\n }\n\n if (title !== document.title) document.title = title;\n ['meta', 'base', 'link', 'style', 'script'].forEach(function (type) {\n updateElements(type, tags[type] || []);\n });\n });\n }\n };\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.i);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL2NsaWVudC9oZWFkLW1hbmFnZXIuanM/Y2I4YiJdLCJuYW1lcyI6WyJET01BdHRyaWJ1dGVOYW1lcyIsImFjY2VwdENoYXJzZXQiLCJjbGFzc05hbWUiLCJodG1sRm9yIiwiaHR0cEVxdWl2IiwiZWwiLCJkb2N1bWVudCIsInByb3BzIiwicCIsImF0dHIiLCJkYW5nZXJvdXNseVNldElubmVySFRNTCIsImNoaWxkcmVuIiwiaGVhZEVsIiwiaGVhZENvdW50RWwiLCJjb25zb2xlIiwiaGVhZENvdW50IiwiTnVtYmVyIiwib2xkVGFncyIsImkiLCJqIiwibmV3VGFncyIsImNvbXBvbmVudHMiLCJuZXdUYWciLCJrIiwibGVuIiwib2xkVGFnIiwidCIsInVwZGF0ZVByb21pc2UiLCJtb3VudGVkSW5zdGFuY2VzIiwidXBkYXRlSGVhZCIsImhlYWQiLCJwcm9taXNlIiwiUHJvbWlzZSIsInRhZ3MiLCJoIiwidGl0bGVDb21wb25lbnQiLCJ0aXRsZSIsInR5cGUiLCJ1cGRhdGVFbGVtZW50cyJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLElBQU1BLGlCQUFpQixHQUFHO0FBQ3hCQyxlQUFhLEVBRFc7QUFFeEJDLFdBQVMsRUFGZTtBQUd4QkMsU0FBTyxFQUhpQjtBQUl4QkMsV0FBUyxFQUpYO0FBQTBCLENBQTFCOztBQU9BLGlDQUE0QztBQUFBLE1BQWpCLElBQWlCLFFBQWpCLElBQWlCO0FBQUEsTUFBNUMsS0FBNEMsUUFBNUMsS0FBNEM7QUFDMUMsTUFBTUMsRUFBRSxHQUFHQyxRQUFRLENBQVJBLGNBQVgsSUFBV0EsQ0FBWDs7QUFDQSxPQUFLLElBQUwsWUFBdUI7QUFDckIsUUFBSSxDQUFDQyxLQUFLLENBQUxBLGVBQUwsQ0FBS0EsQ0FBTCxFQUE4QjtBQUM5QixRQUFJQyxDQUFDLEtBQURBLGNBQW9CQSxDQUFDLEtBQXpCLDJCQUF5RCxTQUZwQyxDQUlyQjs7QUFDQSxRQUFJRCxLQUFLLENBQUxBLENBQUssQ0FBTEEsS0FB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QUFhQSxJQUFJLENBQUpBLE1BQWJBLENBQWFBLENBQWJBLEdBQXZCO0FBQ0EsWUFBSUcsS0FBSyxHQUFUOztBQUNBLDRCQUFvQjtBQUFBLGNBQ1osUUFEWSxHQUNHRCxjQUFjLENBQW5DLEtBRGtCLENBQ1osUUFEWTtBQUVsQkMsZUFBSyxHQUFHLDBDQUEwQ3pCLFFBQVEsQ0FBUkEsS0FBbER5QixFQUFrRHpCLENBQWxEeUI7QUFFRjs7QUFBQSxZQUFJQSxLQUFLLEtBQUs5QixRQUFRLENBQXRCLE9BQThCQSxRQUFRLENBQVJBO0FBQzdCLDREQUFxRCtCLGNBQUQsRUFBVTtBQUM3REMsd0JBQWMsT0FBT0wsSUFBSSxDQUFKQSxJQUFJLENBQUpBLElBQXJCSyxFQUFjLENBQWRBO0FBREQ7QUFuQkgsT0FBaUNOLENBQWpDO0FBSEo7QUFBTyxHQUFQO0FBNEJEIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvaGVhZC1tYW5hZ2VyLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgRE9NQXR0cmlidXRlTmFtZXMgPSB7XG4gIGFjY2VwdENoYXJzZXQ6ICdhY2NlcHQtY2hhcnNldCcsXG4gIGNsYXNzTmFtZTogJ2NsYXNzJyxcbiAgaHRtbEZvcjogJ2ZvcicsXG4gIGh0dHBFcXVpdjogJ2h0dHAtZXF1aXYnLFxufVxuXG5mdW5jdGlvbiByZWFjdEVsZW1lbnRUb0RPTSh7IHR5cGUsIHByb3BzIH0pIHtcbiAgY29uc3QgZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHR5cGUpXG4gIGZvciAoY29uc3QgcCBpbiBwcm9wcykge1xuICAgIGlmICghcHJvcHMuaGFzT3duUHJvcGVydHkocCkpIGNvbnRpbnVlXG4gICAgaWYgKHAgPT09ICdjaGlsZHJlbicgfHwgcCA9PT0gJ2Rhbmdlcm91c2x5U2V0SW5uZXJIVE1MJykgY29udGludWVcblxuICAgIC8vIHdlIGRvbid0IHJlbmRlciB1bmRlZmluZWQgcHJvcHMgdG8gdGhlIERPTVxuICAgIGlmIChwcm9wc1twXSA9PT0gdW5kZWZpbmVkKSBjb250aW51ZVxuXG4gICAgY29uc3QgYXR0ciA9IERPTUF0dHJpYnV0ZU5hbWVzW3BdIHx8IHAudG9Mb3dlckNhc2UoKVxuICAgIGVsLnNldEF0dHJpYnV0ZShhdHRyLCBwcm9wc1twXSlcbiAgfVxuXG4gIGNvbnN0IHsgY2hpbGRyZW4sIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIH0gPSBwcm9wc1xuICBpZiAoZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwpIHtcbiAgICBlbC5pbm5lckhUTUwgPSBkYW5nZXJvdXNseVNldElubmVySFRNTC5fX2h0bWwgfHwgJydcbiAgfSBlbHNlIGlmIChjaGlsZHJlbikge1xuICAgIGVsLnRleHRDb250ZW50ID0gdHlwZW9mIGNoaWxkcmVuID09PSAnc3RyaW5nJyA/IGNoaWxkcmVuIDogY2hpbGRyZW4uam9pbignJylcbiAgfVxuICByZXR1cm4gZWxcbn1cblxuZnVuY3Rpb24gdXBkYXRlRWxlbWVudHModHlwZSwgY29tcG9uZW50cykge1xuICBjb25zdCBoZWFkRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdXG4gIGNvbnN0IGhlYWRDb3VudEVsID0gaGVhZEVsLnF1ZXJ5U2VsZWN0b3IoJ21ldGFbbmFtZT1uZXh0LWhlYWQtY291bnRdJylcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBpZiAoIWhlYWRDb3VudEVsKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAnV2FybmluZzogbmV4dC1oZWFkLWNvdW50IGlzIG1pc3NpbmcuIGh0dHBzOi8vZXJyLnNoL25leHQuanMvbmV4dC1oZWFkLWNvdW50LW1pc3NpbmcnXG4gICAgICApXG4gICAgICByZXR1cm5cbiAgICB9XG4gIH1cblxuICBjb25zdCBoZWFkQ291bnQgPSBOdW1iZXIoaGVhZENvdW50RWwuY29udGVudClcbiAgY29uc3Qgb2xkVGFncyA9IFtdXG5cbiAgZm9yIChcbiAgICBsZXQgaSA9IDAsIGogPSBoZWFkQ291bnRFbC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nO1xuICAgIGkgPCBoZWFkQ291bnQ7XG4gICAgaSsrLCBqID0gai5wcmV2aW91c0VsZW1lbnRTaWJsaW5nXG4gICkge1xuICAgIGlmIChqLnRhZ05hbWUudG9Mb3dlckNhc2UoKSA9PT0gdHlwZSkge1xuICAgICAgb2xkVGFncy5wdXNoKGopXG4gICAgfVxuICB9XG4gIGNvbnN0IG5ld1RhZ3MgPSBjb21wb25lbnRzLm1hcChyZWFjdEVsZW1lbnRUb0RPTSkuZmlsdGVyKChuZXdUYWcpID0+IHtcbiAgICBmb3IgKGxldCBrID0gMCwgbGVuID0gb2xkVGFncy5sZW5ndGg7IGsgPCBsZW47IGsrKykge1xuICAgICAgY29uc3Qgb2xkVGFnID0gb2xkVGFnc1trXVxuICAgICAgaWYgKG9sZFRhZy5pc0VxdWFsTm9kZShuZXdUYWcpKSB7XG4gICAgICAgIG9sZFRhZ3Muc3BsaWNlKGssIDEpXG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZVxuICB9KVxuXG4gIG9sZFRhZ3MuZm9yRWFjaCgodCkgPT4gdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHQpKVxuICBuZXdUYWdzLmZvckVhY2goKHQpID0+IGhlYWRFbC5pbnNlcnRCZWZvcmUodCwgaGVhZENvdW50RWwpKVxuICBoZWFkQ291bnRFbC5jb250ZW50ID0gKGhlYWRDb3VudCAtIG9sZFRhZ3MubGVuZ3RoICsgbmV3VGFncy5sZW5ndGgpLnRvU3RyaW5nKClcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaW5pdEhlYWRNYW5hZ2VyKCkge1xuICBsZXQgdXBkYXRlUHJvbWlzZSA9IG51bGxcblxuICByZXR1cm4ge1xuICAgIG1vdW50ZWRJbnN0YW5jZXM6IG5ldyBTZXQoKSxcbiAgICB1cGRhdGVIZWFkOiAoaGVhZCkgPT4ge1xuICAgICAgY29uc3QgcHJvbWlzZSA9ICh1cGRhdGVQcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgIGlmIChwcm9taXNlICE9PSB1cGRhdGVQcm9taXNlKSByZXR1cm5cblxuICAgICAgICB1cGRhdGVQcm9taXNlID0gbnVsbFxuICAgICAgICBjb25zdCB0YWdzID0ge31cblxuICAgICAgICBoZWFkLmZvckVhY2goKGgpID0+IHtcbiAgICAgICAgICBjb25zdCBjb21wb25lbnRzID0gdGFnc1toLnR5cGVdIHx8IFtdXG4gICAgICAgICAgY29tcG9uZW50cy5wdXNoKGgpXG4gICAgICAgICAgdGFnc1toLnR5cGVdID0gY29tcG9uZW50c1xuICAgICAgICB9KVxuXG4gICAgICAgIGNvbnN0IHRpdGxlQ29tcG9uZW50ID0gdGFncy50aXRsZSA/IHRhZ3MudGl0bGVbMF0gOiBudWxsXG4gICAgICAgIGxldCB0aXRsZSA9ICcnXG4gICAgICAgIGlmICh0aXRsZUNvbXBvbmVudCkge1xuICAgICAgICAgIGNvbnN0IHsgY2hpbGRyZW4gfSA9IHRpdGxlQ29tcG9uZW50LnByb3BzXG4gICAgICAgICAgdGl0bGUgPSB0eXBlb2YgY2hpbGRyZW4gPT09ICdzdHJpbmcnID8gY2hpbGRyZW4gOiBjaGlsZHJlbi5qb2luKCcnKVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aXRsZSAhPT0gZG9jdW1lbnQudGl0bGUpIGRvY3VtZW50LnRpdGxlID0gdGl0bGVcbiAgICAgICAgO1snbWV0YScsICdiYXNlJywgJ2xpbmsnLCAnc3R5bGUnLCAnc2NyaXB0J10uZm9yRWFjaCgodHlwZSkgPT4ge1xuICAgICAgICAgIHVwZGF0ZUVsZW1lbnRzKHR5cGUsIHRhZ3NbdHlwZV0gfHwgW10pXG4gICAgICAgIH0pXG4gICAgICB9KSlcbiAgICB9LFxuICB9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/head-manager.js\n"); +eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nvar _slicedToArray = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/next/node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nexports.__esModule = true;\nexports[\"default\"] = initHeadManager;\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\nvar DOMAttributeNames = {\n acceptCharset: 'accept-charset',\n className: 'class',\n htmlFor: 'for',\n httpEquiv: 'http-equiv'\n};\n\nfunction reactElementToDOM(_ref) {\n var type = _ref.type,\n props = _ref.props;\n var el = document.createElement(type);\n\n for (var p in props) {\n if (!props.hasOwnProperty(p)) continue;\n if (p === 'children' || p === 'dangerouslySetInnerHTML') continue; // we don't render undefined props to the DOM\n\n if (props[p] === undefined) continue;\n var attr = DOMAttributeNames[p] || p.toLowerCase();\n el.setAttribute(attr, props[p]);\n }\n\n var children = props.children,\n dangerouslySetInnerHTML = props.dangerouslySetInnerHTML;\n\n if (dangerouslySetInnerHTML) {\n el.innerHTML = dangerouslySetInnerHTML.__html || '';\n } else if (children) {\n el.textContent = typeof children === 'string' ? children : Array.isArray(children) ? children.join('') : '';\n }\n\n return el;\n}\n\nfunction updateElements(elements, components, removeOldTags) {\n var headEl = document.getElementsByTagName('head')[0];\n var oldTags = new Set(elements);\n components.forEach(function (tag) {\n if (tag.type === 'title') {\n var title = '';\n\n if (tag) {\n var children = tag.props.children;\n title = typeof children === 'string' ? children : Array.isArray(children) ? children.join('') : '';\n }\n\n if (title !== document.title) document.title = title;\n return;\n }\n\n var newTag = reactElementToDOM(tag);\n var elementIter = elements.values();\n\n while (true) {\n // Note: We don't use for-of here to avoid needing to polyfill it.\n var _elementIter$next = elementIter.next(),\n done = _elementIter$next.done,\n value = _elementIter$next.value;\n\n if (value == null ? void 0 : value.isEqualNode(newTag)) {\n oldTags[\"delete\"](value);\n return;\n }\n\n if (done) {\n break;\n }\n }\n\n elements.add(newTag);\n headEl.appendChild(newTag);\n });\n oldTags.forEach(function (oldTag) {\n if (removeOldTags) {\n oldTag.parentNode.removeChild(oldTag);\n }\n\n elements[\"delete\"](oldTag);\n });\n}\n\nfunction initHeadManager(initialHeadEntries) {\n var headEl = document.getElementsByTagName('head')[0];\n var elements = new Set(headEl.children);\n updateElements(elements, initialHeadEntries.map(function (_ref2) {\n var _ref3 = _slicedToArray(_ref2, 2),\n type = _ref3[0],\n props = _ref3[1];\n\n return /*#__PURE__*/(0, _react.createElement)(type, props);\n }), false);\n var updatePromise = null;\n return {\n mountedInstances: new Set(),\n updateHead: function updateHead(head) {\n var promise = updatePromise = Promise.resolve().then(function () {\n if (promise !== updatePromise) return;\n updatePromise = null;\n updateElements(elements, head, true);\n });\n }\n };\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.i);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL2NsaWVudC9oZWFkLW1hbmFnZXIudHM/MDY0NSJdLCJuYW1lcyI6WyJET01BdHRyaWJ1dGVOYW1lcyIsImFjY2VwdENoYXJzZXQiLCJjbGFzc05hbWUiLCJodG1sRm9yIiwiaHR0cEVxdWl2IiwiZWwiLCJkb2N1bWVudCIsInByb3BzIiwicCIsImF0dHIiLCJkYW5nZXJvdXNseVNldElubmVySFRNTCIsIkFycmF5IiwiY2hpbGRyZW4iLCJoZWFkRWwiLCJvbGRUYWdzIiwidGFnIiwidGl0bGUiLCJuZXdUYWciLCJyZWFjdEVsZW1lbnRUb0RPTSIsImVsZW1lbnRJdGVyIiwiZWxlbWVudHMiLCJ2YWx1ZSIsIm9sZFRhZyIsInVwZGF0ZUVsZW1lbnRzIiwiaW5pdGlhbEhlYWRFbnRyaWVzIiwidXBkYXRlUHJvbWlzZSIsIm1vdW50ZWRJbnN0YW5jZXMiLCJ1cGRhdGVIZWFkIiwiaGVhZCIsInByb21pc2UiLCJQcm9taXNlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBR0EsSUFBTUEsaUJBQXlDLEdBQUc7QUFDaERDLGVBQWEsRUFEbUM7QUFFaERDLFdBQVMsRUFGdUM7QUFHaERDLFNBQU8sRUFIeUM7QUFJaERDLFdBQVMsRUFKWDtBQUFrRCxDQUFsRDs7QUFPQSxpQ0FBc0U7QUFBQSxNQUEzQyxJQUEyQyxRQUEzQyxJQUEyQztBQUFBLE1BQXRFLEtBQXNFLFFBQXRFLEtBQXNFO0FBQ3BFLE1BQU1DLEVBQUUsR0FBR0MsUUFBUSxDQUFSQSxjQUFYLElBQVdBLENBQVg7O0FBQ0EsT0FBSyxJQUFMLFlBQXVCO0FBQ3JCLFFBQUksQ0FBQ0MsS0FBSyxDQUFMQSxlQUFMLENBQUtBLENBQUwsRUFBOEI7QUFDOUIsUUFBSUMsQ0FBQyxLQUFEQSxjQUFvQkEsQ0FBQyxLQUF6QiwyQkFBeUQsU0FGcEMsQ0FJckI7O0FBQ0EsUUFBSUQsS0FBSyxDQUFMQSxDQUFLLENBQUxBLEtBQUosV0FBNEI7QUFFNUIsUUFBTUUsSUFBSSxHQUFHVCxpQkFBaUIsQ0FBakJBLENBQWlCLENBQWpCQSxJQUF3QlEsQ0FBQyxDQUF0QyxXQUFxQ0EsRUFBckM7QUFDQUgsTUFBRSxDQUFGQSxtQkFBc0JFLEtBQUssQ0FBM0JGLENBQTJCLENBQTNCQTtBQUdGOztBQWJvRSxNQWE5RCxRQWI4RCxHQWFwRSxLQWJvRSxDQWE5RCxRQWI4RDtBQUFBLE1BYTlELHVCQWI4RCxHQWFwRSxLQWJvRSxDQWE5RCx1QkFiOEQ7O0FBY3BFLCtCQUE2QjtBQUMzQkEsTUFBRSxDQUFGQSxZQUFlSyx1QkFBdUIsQ0FBdkJBLFVBQWZMO0FBREYsU0FFTyxjQUFjO0FBQ25CQSxNQUFFLENBQUZBLGNBQ0UsMENBRUlNLEtBQUssQ0FBTEEsb0JBQ0FDLFFBQVEsQ0FBUkEsS0FEQUQsRUFDQUMsQ0FEQUQsR0FITk47QUFPRjs7QUFBQTtBQUdGOztBQUFBLDZEQUlFO0FBQ0EsTUFBTVEsTUFBTSxHQUFHUCxRQUFRLENBQVJBLDZCQUFmLENBQWVBLENBQWY7QUFDQSxNQUFNUSxPQUFPLEdBQUcsUUFBaEIsUUFBZ0IsQ0FBaEI7QUFFQSxZQUFVLENBQVYsUUFBb0JDLGFBQUQsRUFBUztBQUMxQixRQUFJQSxHQUFHLENBQUhBLFNBQUosU0FBMEI7QUFDeEIsVUFBSUMsS0FBSyxHQUFUOztBQUNBLGVBQVM7QUFBQSxZQUNELFFBREMsR0FDY0QsR0FBRyxDQUF4QixLQURPLENBQ0QsUUFEQztBQUVQQyxhQUFLLEdBQ0gsMENBRUlMLEtBQUssQ0FBTEEsb0JBQ0FDLFFBQVEsQ0FBUkEsS0FEQUQsRUFDQUMsQ0FEQUQsR0FITks7QUFPRjs7QUFBQSxVQUFJQSxLQUFLLEtBQUtWLFFBQVEsQ0FBdEIsT0FBOEJBLFFBQVEsQ0FBUkE7QUFDOUI7QUFHRjs7QUFBQSxRQUFNVyxNQUFNLEdBQUdDLGlCQUFpQixDQUFoQyxHQUFnQyxDQUFoQztBQUNBLFFBQU1DLFdBQVcsR0FBR0MsUUFBUSxDQUE1QixNQUFvQkEsRUFBcEI7O0FBRUEsaUJBQWE7QUFDWDtBQURXLDhCQUVhRCxXQUFXLENBQW5DLElBQXdCQSxFQUZiO0FBQUEsVUFFTCxJQUZLLHFCQUVMLElBRks7QUFBQSxVQUVMLEtBRksscUJBRUwsS0FGSzs7QUFHWCxVQUFJRSxLQUFKLFFBQUlBLEdBQUosTUFBSUEsUUFBSyxDQUFMQSxZQUFKLE1BQUlBLENBQUosRUFBZ0M7QUFDOUJQO0FBQ0E7QUFHRjs7QUFBQSxnQkFBVTtBQUNSO0FBRUg7QUFFRE07O0FBQUFBLFlBQVEsQ0FBUkE7QUFDQVAsVUFBTSxDQUFOQTtBQWpDRjtBQW9DQUMsU0FBTyxDQUFQQSxRQUFpQlEsZ0JBQUQsRUFBWTtBQUMxQix1QkFBbUI7QUFDakJBLFlBQU0sQ0FBTkE7QUFFRkY7O0FBQUFBO0FBSkZOO0FBUWE7O0FBQUEsNkNBQTBEO0FBQ3ZFLE1BQU1ELE1BQU0sR0FBR1AsUUFBUSxDQUFSQSw2QkFBZixDQUFlQSxDQUFmO0FBQ0EsTUFBTWMsUUFBUSxHQUFHLFFBQWlCUCxNQUFNLENBQXhDLFFBQWlCLENBQWpCO0FBRUFVLGdCQUFjLFdBRVpDLGtCQUFrQixDQUFsQkEsSUFBdUI7QUFBQTtBQUFBLFFBQUMsSUFBRDtBQUFBOztBQUFBLHdCQUFtQixnQ0FGOUIsS0FFOEIsQ0FBbkI7QUFBQSxHQUF2QkEsQ0FGWSxFQUFkRCxLQUFjLENBQWRBO0FBTUEsTUFBSUUsYUFBbUMsR0FBdkM7QUFFQSxTQUFPO0FBQ0xDLG9CQUFnQixFQUFFLElBRGIsR0FDYSxFQURiO0FBRUxDLGNBQVUsRUFBR0Msd0JBQUQsRUFBeUI7QUFDbkMsVUFBTUMsT0FBTyxHQUFJSixhQUFhLEdBQUdLLE9BQU8sQ0FBUEEsZUFBdUIsWUFBTTtBQUM1RCxZQUFJRCxPQUFPLEtBQVgsZUFBK0I7QUFFL0JKLHFCQUFhLEdBQWJBO0FBQ0FGLHNCQUFjLGlCQUFkQSxJQUFjLENBQWRBO0FBSkYsT0FBaUNPLENBQWpDO0FBSEo7QUFBTyxHQUFQO0FBV0QiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9oZWFkLW1hbmFnZXIuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVFbGVtZW50IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBIZWFkRW50cnkgfSBmcm9tICcuLi9uZXh0LXNlcnZlci9saWIvdXRpbHMnXG5cbmNvbnN0IERPTUF0dHJpYnV0ZU5hbWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBhY2NlcHRDaGFyc2V0OiAnYWNjZXB0LWNoYXJzZXQnLFxuICBjbGFzc05hbWU6ICdjbGFzcycsXG4gIGh0bWxGb3I6ICdmb3InLFxuICBodHRwRXF1aXY6ICdodHRwLWVxdWl2Jyxcbn1cblxuZnVuY3Rpb24gcmVhY3RFbGVtZW50VG9ET00oeyB0eXBlLCBwcm9wcyB9OiBKU1guRWxlbWVudCk6IEhUTUxFbGVtZW50IHtcbiAgY29uc3QgZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHR5cGUpXG4gIGZvciAoY29uc3QgcCBpbiBwcm9wcykge1xuICAgIGlmICghcHJvcHMuaGFzT3duUHJvcGVydHkocCkpIGNvbnRpbnVlXG4gICAgaWYgKHAgPT09ICdjaGlsZHJlbicgfHwgcCA9PT0gJ2Rhbmdlcm91c2x5U2V0SW5uZXJIVE1MJykgY29udGludWVcblxuICAgIC8vIHdlIGRvbid0IHJlbmRlciB1bmRlZmluZWQgcHJvcHMgdG8gdGhlIERPTVxuICAgIGlmIChwcm9wc1twXSA9PT0gdW5kZWZpbmVkKSBjb250aW51ZVxuXG4gICAgY29uc3QgYXR0ciA9IERPTUF0dHJpYnV0ZU5hbWVzW3BdIHx8IHAudG9Mb3dlckNhc2UoKVxuICAgIGVsLnNldEF0dHJpYnV0ZShhdHRyLCBwcm9wc1twXSlcbiAgfVxuXG4gIGNvbnN0IHsgY2hpbGRyZW4sIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIH0gPSBwcm9wc1xuICBpZiAoZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwpIHtcbiAgICBlbC5pbm5lckhUTUwgPSBkYW5nZXJvdXNseVNldElubmVySFRNTC5fX2h0bWwgfHwgJydcbiAgfSBlbHNlIGlmIChjaGlsZHJlbikge1xuICAgIGVsLnRleHRDb250ZW50ID1cbiAgICAgIHR5cGVvZiBjaGlsZHJlbiA9PT0gJ3N0cmluZydcbiAgICAgICAgPyBjaGlsZHJlblxuICAgICAgICA6IEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pXG4gICAgICAgID8gY2hpbGRyZW4uam9pbignJylcbiAgICAgICAgOiAnJ1xuICB9XG4gIHJldHVybiBlbFxufVxuXG5mdW5jdGlvbiB1cGRhdGVFbGVtZW50cyhcbiAgZWxlbWVudHM6IFNldDxFbGVtZW50PixcbiAgY29tcG9uZW50czogSlNYLkVsZW1lbnRbXSxcbiAgcmVtb3ZlT2xkVGFnczogYm9vbGVhblxuKSB7XG4gIGNvbnN0IGhlYWRFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF1cbiAgY29uc3Qgb2xkVGFncyA9IG5ldyBTZXQoZWxlbWVudHMpXG5cbiAgY29tcG9uZW50cy5mb3JFYWNoKCh0YWcpID0+IHtcbiAgICBpZiAodGFnLnR5cGUgPT09ICd0aXRsZScpIHtcbiAgICAgIGxldCB0aXRsZSA9ICcnXG4gICAgICBpZiAodGFnKSB7XG4gICAgICAgIGNvbnN0IHsgY2hpbGRyZW4gfSA9IHRhZy5wcm9wc1xuICAgICAgICB0aXRsZSA9XG4gICAgICAgICAgdHlwZW9mIGNoaWxkcmVuID09PSAnc3RyaW5nJ1xuICAgICAgICAgICAgPyBjaGlsZHJlblxuICAgICAgICAgICAgOiBBcnJheS5pc0FycmF5KGNoaWxkcmVuKVxuICAgICAgICAgICAgPyBjaGlsZHJlbi5qb2luKCcnKVxuICAgICAgICAgICAgOiAnJ1xuICAgICAgfVxuICAgICAgaWYgKHRpdGxlICE9PSBkb2N1bWVudC50aXRsZSkgZG9jdW1lbnQudGl0bGUgPSB0aXRsZVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgbmV3VGFnID0gcmVhY3RFbGVtZW50VG9ET00odGFnKVxuICAgIGNvbnN0IGVsZW1lbnRJdGVyID0gZWxlbWVudHMudmFsdWVzKClcblxuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAvLyBOb3RlOiBXZSBkb24ndCB1c2UgZm9yLW9mIGhlcmUgdG8gYXZvaWQgbmVlZGluZyB0byBwb2x5ZmlsbCBpdC5cbiAgICAgIGNvbnN0IHsgZG9uZSwgdmFsdWUgfSA9IGVsZW1lbnRJdGVyLm5leHQoKVxuICAgICAgaWYgKHZhbHVlPy5pc0VxdWFsTm9kZShuZXdUYWcpKSB7XG4gICAgICAgIG9sZFRhZ3MuZGVsZXRlKHZhbHVlKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKGRvbmUpIHtcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBlbGVtZW50cy5hZGQobmV3VGFnKVxuICAgIGhlYWRFbC5hcHBlbmRDaGlsZChuZXdUYWcpXG4gIH0pXG5cbiAgb2xkVGFncy5mb3JFYWNoKChvbGRUYWcpID0+IHtcbiAgICBpZiAocmVtb3ZlT2xkVGFncykge1xuICAgICAgb2xkVGFnLnBhcmVudE5vZGUhLnJlbW92ZUNoaWxkKG9sZFRhZylcbiAgICB9XG4gICAgZWxlbWVudHMuZGVsZXRlKG9sZFRhZylcbiAgfSlcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaW5pdEhlYWRNYW5hZ2VyKGluaXRpYWxIZWFkRW50cmllczogSGVhZEVudHJ5W10pIHtcbiAgY29uc3QgaGVhZEVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXVxuICBjb25zdCBlbGVtZW50cyA9IG5ldyBTZXQ8RWxlbWVudD4oaGVhZEVsLmNoaWxkcmVuKVxuXG4gIHVwZGF0ZUVsZW1lbnRzKFxuICAgIGVsZW1lbnRzLFxuICAgIGluaXRpYWxIZWFkRW50cmllcy5tYXAoKFt0eXBlLCBwcm9wc10pID0+IGNyZWF0ZUVsZW1lbnQodHlwZSwgcHJvcHMpKSxcbiAgICBmYWxzZVxuICApXG5cbiAgbGV0IHVwZGF0ZVByb21pc2U6IFByb21pc2U8dm9pZD4gfCBudWxsID0gbnVsbFxuXG4gIHJldHVybiB7XG4gICAgbW91bnRlZEluc3RhbmNlczogbmV3IFNldCgpLFxuICAgIHVwZGF0ZUhlYWQ6IChoZWFkOiBKU1guRWxlbWVudFtdKSA9PiB7XG4gICAgICBjb25zdCBwcm9taXNlID0gKHVwZGF0ZVByb21pc2UgPSBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgaWYgKHByb21pc2UgIT09IHVwZGF0ZVByb21pc2UpIHJldHVyblxuXG4gICAgICAgIHVwZGF0ZVByb21pc2UgPSBudWxsXG4gICAgICAgIHVwZGF0ZUVsZW1lbnRzKGVsZW1lbnRzLCBoZWFkLCB0cnVlKVxuICAgICAgfSkpXG4gICAgfSxcbiAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/head-manager.js\n"); /***/ }), @@ -2093,7 +1818,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nexports.__esModule = tru /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nvar _regeneratorRuntime = __webpack_require__(/*! @babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n\nvar _asyncToGenerator = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/asyncToGenerator.js\");\n\nvar _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\");\n\nvar _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\");\n\nvar _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ \"./node_modules/@babel/runtime/helpers/inherits.js\");\n\nvar _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ \"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js\");\n\nvar _getPrototypeOf = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ \"./node_modules/@babel/runtime/helpers/getPrototypeOf.js\");\n\nvar _slicedToArray = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nvar _s = $RefreshSig$();\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar _interopRequireWildcard3 = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"./node_modules/@babel/runtime/helpers/interopRequireWildcard.js\");\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nexports.__esModule = true;\nexports.render = render;\nexports.renderError = renderError;\nexports[\"default\"] = exports.emitter = exports.router = exports.version = void 0;\n\nvar _interopRequireWildcard2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"./node_modules/@babel/runtime/helpers/interopRequireWildcard.js\"));\n\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\n\nvar _router = __webpack_require__(/*! next/router */ \"./node_modules/next/dist/client/router.js\");\n\nvar _querystring = __webpack_require__(/*! querystring */ \"./node_modules/querystring-es3/index.js\");\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _reactDom = _interopRequireDefault(__webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\"));\n\nvar _headManagerContext = __webpack_require__(/*! ../next-server/lib/head-manager-context */ \"./node_modules/next/dist/next-server/lib/head-manager-context.js\");\n\nvar _mitt = _interopRequireDefault(__webpack_require__(/*! ../next-server/lib/mitt */ \"./node_modules/next/dist/next-server/lib/mitt.js\"));\n\nvar _routerContext = __webpack_require__(/*! ../next-server/lib/router-context */ \"./node_modules/next/dist/next-server/lib/router-context.js\");\n\nvar _isDynamic = __webpack_require__(/*! ../next-server/lib/router/utils/is-dynamic */ \"./node_modules/next/dist/next-server/lib/router/utils/is-dynamic.js\");\n\nvar envConfig = _interopRequireWildcard3(__webpack_require__(/*! ../next-server/lib/runtime-config */ \"./node_modules/next/dist/next-server/lib/runtime-config.js\"));\n\nvar _utils = __webpack_require__(/*! ../next-server/lib/utils */ \"./node_modules/next/dist/next-server/lib/utils.js\");\n\nvar _router2 = __webpack_require__(/*! ../next-server/lib/router/router */ \"./node_modules/next/dist/next-server/lib/router/router.js\");\n\nvar _headManager = _interopRequireDefault(__webpack_require__(/*! ./head-manager */ \"./node_modules/next/dist/client/head-manager.js\"));\n\nvar _pageLoader = _interopRequireDefault(__webpack_require__(/*! ./page-loader */ \"./node_modules/next/dist/client/page-loader.js\"));\n\nvar _performanceRelayer = _interopRequireDefault(__webpack_require__(/*! ./performance-relayer */ \"./node_modules/next/dist/client/performance-relayer.js\"));\n/* global location */\n/// \n\n\nif (!('finally' in Promise.prototype)) {\n // eslint-disable-next-line no-extend-native\n Promise.prototype[\"finally\"] = __webpack_require__(/*! next/dist/build/polyfills/finally-polyfill.min */ \"./node_modules/next/dist/build/polyfills/finally-polyfill.min.js\");\n}\n\nvar data = JSON.parse(document.getElementById('__NEXT_DATA__').textContent);\nwindow.__NEXT_DATA__ = data;\nvar version = \"9.5.1\";\nexports.version = version;\nvar hydrateProps = data.props,\n hydrateErr = data.err,\n page = data.page,\n query = data.query,\n buildId = data.buildId,\n assetPrefix = data.assetPrefix,\n runtimeConfig = data.runtimeConfig,\n dynamicIds = data.dynamicIds,\n isFallback = data.isFallback;\nvar prefix = assetPrefix || ''; // With dynamic assetPrefix it's no longer possible to set assetPrefix at the build time\n// So, this is how we do it in the client side at runtime\n\n__webpack_require__.p = \"\".concat(prefix, \"/_next/\"); //eslint-disable-line\n// Initialize next/config with the environment configuration\n\nenvConfig.setConfig({\n serverRuntimeConfig: {},\n publicRuntimeConfig: runtimeConfig || {}\n});\nvar asPath = (0, _utils.getURL)(); // make sure not to attempt stripping basePath for 404s\n\nif (page !== '/404' && !(page === '/_error' && hydrateProps && hydrateProps.pageProps.statusCode === '404')) {\n asPath = (0, _router2.delBasePath)(asPath);\n}\n\nvar pageLoader = new _pageLoader[\"default\"](buildId, prefix, page);\n\nvar register = function register(_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n r = _ref2[0],\n f = _ref2[1];\n\n return pageLoader.registerPage(r, f);\n};\n\nif (window.__NEXT_P) {\n // Defer page registration for another tick. This will increase the overall\n // latency in hydrating the page, but reduce the total blocking time.\n window.__NEXT_P.map(function (p) {\n return setTimeout(function () {\n return register(p);\n }, 0);\n });\n}\n\nwindow.__NEXT_P = [];\nwindow.__NEXT_P.push = register;\nvar headManager = (0, _headManager[\"default\"])();\nvar appElement = document.getElementById('__next');\nvar lastAppProps;\n\nvar _lastRenderReject;\n\nvar webpackHMR;\nvar router;\nexports.router = router;\nvar CachedComponent;\nvar CachedApp, onPerfEntry;\n\nvar Container = /*#__PURE__*/function (_react$default$Compon) {\n _inherits(Container, _react$default$Compon);\n\n var _super = _createSuper(Container);\n\n function Container() {\n _classCallCheck(this, Container);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Container, [{\n key: \"componentDidCatch\",\n value: function componentDidCatch(componentErr, info) {\n this.props.fn(componentErr, info);\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.scrollToHash(); // We need to replace the router state if:\n // - the page was (auto) exported and has a query string or search (hash)\n // - it was auto exported and is a dynamic route (to provide params)\n // - if it is a client-side skeleton (fallback render)\n\n if (router.isSsr && (isFallback || data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search) || hydrateProps && hydrateProps.__N_SSG && location.search)) {\n // update query on mount for exported pages\n router.replace(router.pathname + '?' + (0, _querystring.stringify)((0, _extends2[\"default\"])((0, _extends2[\"default\"])({}, router.query), (0, _querystring.parse)(location.search.substr(1)))), asPath, {\n // WARNING: `_h` is an internal option for handing Next.js\n // client-side hydration. Your app should _never_ use this property.\n // It may change at any time without notice.\n _h: 1,\n // Fallback pages must trigger the data fetch, so the transition is\n // not shallow.\n // Other pages (strictly updating query) happens shallowly, as data\n // requirements would already be present.\n shallow: !isFallback\n });\n }\n\n if (undefined) {\n window.__NEXT_HYDRATED = true;\n\n if (window.__NEXT_HYDRATED_CB) {\n window.__NEXT_HYDRATED_CB();\n }\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.scrollToHash();\n }\n }, {\n key: \"scrollToHash\",\n value: function scrollToHash() {\n var _location = location,\n hash = _location.hash;\n hash = hash && hash.substring(1);\n if (!hash) return;\n var el = document.getElementById(hash);\n if (!el) return; // If we call scrollIntoView() in here without a setTimeout\n // it won't scroll properly.\n\n setTimeout(function () {\n return el.scrollIntoView();\n }, 0);\n }\n }, {\n key: \"render\",\n value: function render() {\n if (false) {}\n\n if (true) {\n var _require = __webpack_require__(/*! @next/react-dev-overlay/lib/client */ \"./node_modules/@next/react-dev-overlay/lib/client.js\"),\n ReactDevOverlay = _require.ReactDevOverlay;\n\n return /*#__PURE__*/_react[\"default\"].createElement(ReactDevOverlay, null, this.props.children);\n }\n }\n }]);\n\n return Container;\n}(_react[\"default\"].Component);\n\nvar emitter = (0, _mitt[\"default\"])();\nexports.emitter = emitter;\n\nvar _default = /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var _ref4,\n passedWebpackHMR,\n _yield$pageLoader$loa,\n app,\n mod,\n initialErr,\n _yield$pageLoader$loa2,\n _require2,\n isValidElementType,\n _require3,\n getNodeError,\n renderCtx,\n _args = arguments;\n\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _ref4 = _args.length > 0 && _args[0] !== undefined ? _args[0] : {}, passedWebpackHMR = _ref4.webpackHMR;\n\n // This makes sure this specific lines are removed in production\n if (true) {\n webpackHMR = passedWebpackHMR;\n }\n\n _context.next = 4;\n return pageLoader.loadPage('/_app');\n\n case 4:\n _yield$pageLoader$loa = _context.sent;\n app = _yield$pageLoader$loa.page;\n mod = _yield$pageLoader$loa.mod;\n CachedApp = app;\n\n if (mod && mod.reportWebVitals) {\n onPerfEntry = function onPerfEntry(_ref5) {\n var id = _ref5.id,\n name = _ref5.name,\n startTime = _ref5.startTime,\n value = _ref5.value,\n duration = _ref5.duration,\n entryType = _ref5.entryType,\n entries = _ref5.entries;\n // Combines timestamp with random number for unique ID\n var uniqueID = \"\".concat(Date.now(), \"-\").concat(Math.floor(Math.random() * (9e12 - 1)) + 1e12);\n var perfStartEntry;\n\n if (entries && entries.length) {\n perfStartEntry = entries[0].startTime;\n }\n\n mod.reportWebVitals({\n id: id || uniqueID,\n name: name,\n startTime: startTime || perfStartEntry,\n value: value == null ? duration : value,\n label: entryType === 'mark' || entryType === 'measure' ? 'custom' : 'web-vital'\n });\n };\n }\n\n initialErr = hydrateErr;\n _context.prev = 10;\n ;\n _context.next = 14;\n return pageLoader.loadPage(page);\n\n case 14:\n _yield$pageLoader$loa2 = _context.sent;\n CachedComponent = _yield$pageLoader$loa2.page;\n\n if (false) {}\n\n _require2 = __webpack_require__(/*! react-is */ \"./node_modules/react-is/index.js\"), isValidElementType = _require2.isValidElementType;\n\n if (isValidElementType(CachedComponent)) {\n _context.next = 20;\n break;\n }\n\n throw new Error(\"The default export is not a React Component in page: \\\"\".concat(page, \"\\\"\"));\n\n case 20:\n _context.next = 25;\n break;\n\n case 22:\n _context.prev = 22;\n _context.t0 = _context[\"catch\"](10);\n // This catches errors like throwing in the top level of a module\n initialErr = _context.t0;\n\n case 25:\n if (true) {\n _require3 = __webpack_require__(/*! @next/react-dev-overlay/lib/client */ \"./node_modules/@next/react-dev-overlay/lib/client.js\"), getNodeError = _require3.getNodeError; // Server-side runtime errors need to be re-thrown on the client-side so\n // that the overlay is rendered.\n\n if (initialErr) {\n if (initialErr === hydrateErr) {\n setTimeout(function () {\n var error;\n\n try {\n // Generate a new error object. We `throw` it because some browsers\n // will set the `stack` when thrown, and we want to ensure ours is\n // not overridden when we re-throw it below.\n throw new Error(initialErr.message);\n } catch (e) {\n error = e;\n }\n\n error.name = initialErr.name;\n error.stack = initialErr.stack;\n var node = getNodeError(error);\n throw node;\n });\n } // We replaced the server-side error with a client-side error, and should\n // no longer rewrite the stack trace to a Node error.\n else {\n setTimeout(function () {\n throw initialErr;\n });\n }\n }\n }\n\n if (!window.__NEXT_PRELOADREADY) {\n _context.next = 29;\n break;\n }\n\n _context.next = 29;\n return window.__NEXT_PRELOADREADY(dynamicIds);\n\n case 29:\n exports.router = router = (0, _router.createRouter)(page, query, asPath, {\n initialProps: hydrateProps,\n pageLoader: pageLoader,\n App: CachedApp,\n Component: CachedComponent,\n wrapApp: wrapApp,\n err: initialErr,\n isFallback: isFallback,\n subscription: function subscription(_ref6, App) {\n var Component = _ref6.Component,\n props = _ref6.props,\n err = _ref6.err;\n return render({\n App: App,\n Component: Component,\n props: props,\n err: err\n });\n }\n }); // call init-client middleware\n\n if (false) {}\n\n renderCtx = {\n App: CachedApp,\n Component: CachedComponent,\n props: hydrateProps,\n err: initialErr\n };\n\n if (true) {\n _context.next = 35;\n break;\n }\n\n render(renderCtx);\n return _context.abrupt(\"return\", emitter);\n\n case 35:\n if (false) {}\n\n return _context.abrupt(\"return\", {\n emitter: emitter,\n render: render,\n renderCtx: renderCtx\n });\n\n case 37:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[10, 22]]);\n }));\n\n return function _default() {\n return _ref3.apply(this, arguments);\n };\n}();\n\nexports[\"default\"] = _default;\n\nfunction render(_x) {\n return _render.apply(this, arguments);\n} // This method handles all runtime and debug errors.\n// 404 and 500 errors are special kind of errors\n// and they are still handle via the main render method.\n\n\nfunction _render() {\n _render = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(renderingProps) {\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (!renderingProps.err) {\n _context2.next = 4;\n break;\n }\n\n _context2.next = 3;\n return renderError(renderingProps);\n\n case 3:\n return _context2.abrupt(\"return\");\n\n case 4:\n _context2.prev = 4;\n _context2.next = 7;\n return doRender(renderingProps);\n\n case 7:\n _context2.next = 14;\n break;\n\n case 9:\n _context2.prev = 9;\n _context2.t0 = _context2[\"catch\"](4);\n\n if (true) {\n // Ensure this error is displayed in the overlay in development\n setTimeout(function () {\n throw _context2.t0;\n });\n }\n\n _context2.next = 14;\n return renderError((0, _extends2[\"default\"])((0, _extends2[\"default\"])({}, renderingProps), {}, {\n err: _context2.t0\n }));\n\n case 14:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, null, [[4, 9]]);\n }));\n return _render.apply(this, arguments);\n}\n\nfunction renderError(renderErrorProps) {\n var App = renderErrorProps.App,\n err = renderErrorProps.err; // In development runtime errors are caught by our overlay\n // In production we catch runtime errors using componentDidCatch which will trigger renderError\n\n if (true) {\n // A Next.js rendering runtime error is always unrecoverable\n // FIXME: let's make this recoverable (error in GIP client-transition)\n webpackHMR.onUnrecoverableError(); // We need to render an empty so that the `` can\n // render itself.\n\n return doRender({\n App: function App() {\n return null;\n },\n props: {},\n Component: function Component() {\n return null;\n },\n err: null\n });\n }\n\n if (false) {} // Make sure we log the error to the console, otherwise users can't track down issues.\n\n\n console.error(err);\n return pageLoader.loadPage('/_error').then(function (_ref7) {\n var ErrorComponent = _ref7.page;\n // In production we do a normal render with the `ErrorComponent` as component.\n // If we've gotten here upon initial render, we can use the props from the server.\n // Otherwise, we need to call `getInitialProps` on `App` before mounting.\n var AppTree = wrapApp(App);\n var appCtx = {\n Component: ErrorComponent,\n AppTree: AppTree,\n router: router,\n ctx: {\n err: err,\n pathname: page,\n query: query,\n asPath: asPath,\n AppTree: AppTree\n }\n };\n return Promise.resolve(renderErrorProps.props ? renderErrorProps.props : (0, _utils.loadGetInitialProps)(App, appCtx)).then(function (initProps) {\n return doRender((0, _extends2[\"default\"])((0, _extends2[\"default\"])({}, renderErrorProps), {}, {\n err: err,\n Component: ErrorComponent,\n props: initProps\n }));\n });\n });\n} // If hydrate does not exist, eg in preact.\n\n\nvar isInitialRender = typeof _reactDom[\"default\"].hydrate === 'function';\nvar reactRoot = null;\n\nfunction renderReactElement(reactEl, domEl) {\n if (false) { var opts; } else {\n // mark start of hydrate/render\n if (_utils.ST) {\n performance.mark('beforeRender');\n } // The check for `.hydrate` is there to support React alternatives like preact\n\n\n if (isInitialRender) {\n _reactDom[\"default\"].hydrate(reactEl, domEl, markHydrateComplete);\n\n isInitialRender = false;\n\n if (onPerfEntry && _utils.ST) {\n (0, _performanceRelayer[\"default\"])(onPerfEntry);\n }\n } else {\n _reactDom[\"default\"].render(reactEl, domEl, markRenderComplete);\n }\n }\n}\n\nfunction markHydrateComplete() {\n if (!_utils.ST) return;\n performance.mark('afterHydrate'); // mark end of hydration\n\n performance.measure('Next.js-before-hydration', 'navigationStart', 'beforeRender');\n performance.measure('Next.js-hydration', 'beforeRender', 'afterHydrate');\n\n if (onPerfEntry) {\n performance.getEntriesByName('Next.js-hydration').forEach(onPerfEntry);\n }\n\n clearMarks();\n}\n\nfunction markRenderComplete() {\n if (!_utils.ST) return;\n performance.mark('afterRender'); // mark end of render\n\n var navStartEntries = performance.getEntriesByName('routeChange', 'mark');\n\n if (!navStartEntries.length) {\n return;\n }\n\n performance.measure('Next.js-route-change-to-render', navStartEntries[0].name, 'beforeRender');\n performance.measure('Next.js-render', 'beforeRender', 'afterRender');\n\n if (onPerfEntry) {\n performance.getEntriesByName('Next.js-render').forEach(onPerfEntry);\n performance.getEntriesByName('Next.js-route-change-to-render').forEach(onPerfEntry);\n }\n\n clearMarks();\n ['Next.js-route-change-to-render', 'Next.js-render'].forEach(function (measure) {\n return performance.clearMeasures(measure);\n });\n}\n\nfunction clearMarks() {\n ;\n ['beforeRender', 'afterHydrate', 'afterRender', 'routeChange'].forEach(function (mark) {\n return performance.clearMarks(mark);\n });\n}\n\nfunction AppContainer(_ref8) {\n var children = _ref8.children;\n return /*#__PURE__*/_react[\"default\"].createElement(Container, {\n fn: function fn(error) {\n return renderError({\n App: CachedApp,\n err: error\n })[\"catch\"](function (err) {\n return console.error('Error rendering page: ', err);\n });\n }\n }, /*#__PURE__*/_react[\"default\"].createElement(_routerContext.RouterContext.Provider, {\n value: (0, _router.makePublicRouterInstance)(router)\n }, /*#__PURE__*/_react[\"default\"].createElement(_headManagerContext.HeadManagerContext.Provider, {\n value: headManager\n }, children)));\n}\n\n_c = AppContainer;\n\nvar wrapApp = function wrapApp(App) {\n return function (wrappedAppProps) {\n var appProps = (0, _extends2[\"default\"])((0, _extends2[\"default\"])({}, wrappedAppProps), {}, {\n Component: CachedComponent,\n err: hydrateErr,\n router: router\n });\n return /*#__PURE__*/_react[\"default\"].createElement(AppContainer, null, /*#__PURE__*/_react[\"default\"].createElement(App, appProps));\n };\n};\n\nfunction doRender(_x2) {\n return _doRender.apply(this, arguments);\n}\n\nfunction _doRender() {\n _doRender = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(_ref9) {\n var App, Component, props, err, appProps, resolvePromise, renderPromise, elem;\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n App = _ref9.App, Component = _ref9.Component, props = _ref9.props, err = _ref9.err;\n Component = Component || lastAppProps.Component;\n props = props || lastAppProps.props;\n appProps = (0, _extends2[\"default\"])((0, _extends2[\"default\"])({}, props), {}, {\n Component: Component,\n err: err,\n router: router\n }); // lastAppProps has to be set before ReactDom.render to account for ReactDom throwing an error.\n\n lastAppProps = appProps;\n renderPromise = new Promise(function (resolve, reject) {\n if (_lastRenderReject) {\n _lastRenderReject();\n }\n\n resolvePromise = function resolvePromise() {\n _lastRenderReject = null;\n resolve();\n };\n\n _lastRenderReject = function lastRenderReject() {\n _lastRenderReject = null;\n reject();\n };\n });\n elem = /*#__PURE__*/_react[\"default\"].createElement(Root, {\n callback: resolvePromise\n }, /*#__PURE__*/_react[\"default\"].createElement(AppContainer, null, /*#__PURE__*/_react[\"default\"].createElement(App, appProps))); // We catch runtime errors using componentDidCatch which will trigger renderError\n\n renderReactElement( false ? /*#__PURE__*/undefined : elem, appElement);\n _context3.next = 10;\n return renderPromise;\n\n case 10:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }));\n return _doRender.apply(this, arguments);\n}\n\nfunction Root(_ref10) {\n _s();\n\n var callback = _ref10.callback,\n children = _ref10.children;\n\n // We use `useLayoutEffect` to guarantee the callback is executed\n // as soon as React flushes the update.\n _react[\"default\"].useLayoutEffect(function () {\n return callback();\n }, [callback]);\n\n return children;\n}\n\n_s(Root, \"n7/vCynhJvM+pLkyL2DMQUF0odM=\");\n\n_c2 = Root;\n\nvar _c, _c2;\n\n$RefreshReg$(_c, \"AppContainer\");\n$RefreshReg$(_c2, \"Root\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.i);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL2NsaWVudC9pbmRleC5qcz80YTUxIl0sIm5hbWVzIjpbIlByb21pc2UiLCJyZXF1aXJlIiwiZGF0YSIsIkpTT04iLCJkb2N1bWVudCIsIndpbmRvdyIsInZlcnNpb24iLCJwcm9jZXNzIiwiX19ORVhUX1ZFUlNJT04iLCJkeW5hbWljSWRzIiwicHJvcHMiLCJlcnIiLCJpc0ZhbGxiYWNrIiwicHJlZml4IiwiX193ZWJwYWNrX3B1YmxpY19wYXRoX18iLCJlbnZDb25maWciLCJzZXJ2ZXJSdW50aW1lQ29uZmlnIiwicHVibGljUnVudGltZUNvbmZpZyIsInJ1bnRpbWVDb25maWciLCJhc1BhdGgiLCJwYWdlIiwiaHlkcmF0ZVByb3BzIiwicGFnZUxvYWRlciIsIlBhZ2VMb2FkZXIiLCJyZWdpc3RlciIsInAiLCJzZXRUaW1lb3V0IiwiaGVhZE1hbmFnZXIiLCJhcHBFbGVtZW50IiwiY29tcG9uZW50RGlkTW91bnQiLCJyb3V0ZXIiLCJsb2NhdGlvbiIsIl9oIiwic2hhbGxvdyIsImNvbXBvbmVudERpZFVwZGF0ZSIsInNjcm9sbFRvSGFzaCIsImhhc2giLCJlbCIsInJlbmRlciIsIlJlYWN0IiwiQ29tcG9uZW50IiwiZW1pdHRlciIsIndlYnBhY2tITVIiLCJDYWNoZWRBcHAiLCJtb2QiLCJvblBlcmZFbnRyeSIsInVuaXF1ZUlEIiwiRGF0ZSIsIk1hdGgiLCJlbnRyaWVzIiwicGVyZlN0YXJ0RW50cnkiLCJpZCIsIm5hbWUiLCJzdGFydFRpbWUiLCJ2YWx1ZSIsImxhYmVsIiwiZW50cnlUeXBlIiwiaW5pdGlhbEVyciIsImlzVmFsaWRFbGVtZW50VHlwZSIsImVycm9yIiwibm9kZSIsImdldE5vZGVFcnJvciIsImluaXRpYWxQcm9wcyIsIkFwcCIsIndyYXBBcHAiLCJzdWJzY3JpcHRpb24iLCJyZW5kZXJDdHgiLCJyZW5kZXJpbmdQcm9wcyIsInJlbmRlckVycm9yIiwiZG9SZW5kZXIiLCJjb25zb2xlIiwiQXBwVHJlZSIsImFwcEN0eCIsImN0eCIsInBhdGhuYW1lIiwicXVlcnkiLCJyZW5kZXJFcnJvclByb3BzIiwiaW5pdFByb3BzIiwiaXNJbml0aWFsUmVuZGVyIiwiUmVhY3RET00iLCJyZWFjdFJvb3QiLCJTVCIsInBlcmZvcm1hbmNlIiwiY2xlYXJNYXJrcyIsIm5hdlN0YXJ0RW50cmllcyIsIm1lYXN1cmUiLCJtYXJrIiwid3JhcHBlZEFwcFByb3BzIiwiYXBwUHJvcHMiLCJsYXN0QXBwUHJvcHMiLCJyZW5kZXJQcm9taXNlIiwibGFzdFJlbmRlclJlamVjdCIsInJlc29sdmVQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsImVsZW0iLCJyZW5kZXJSZWFjdEVsZW1lbnQiLCJjYWxsYmFjayJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBO0FBZEE7QUFnQkE7OztBQUVBLElBQUksRUFBRSxhQUFhQSxPQUFPLENBQTFCLFNBQUksQ0FBSixFQUF1QztBQUNyQztBQUNBQSxTQUFPLENBQVBBLHVCQUE0QkMsbUJBQU8sQ0FBbkNELHdIQUFtQyxDQUFuQ0E7QUFHRjs7QUFBQSxJQUFNRSxJQUFJLEdBQUdDLElBQUksQ0FBSkEsTUFBV0MsUUFBUSxDQUFSQSxnQ0FBeEIsV0FBYUQsQ0FBYjtBQUNBRSxNQUFNLENBQU5BO0FBRU8sSUFBTUMsT0FBTyxHQUFHQyxPQUFoQjtBQUFnQkEsT0FBWUMsUUFBWkQsR0FBaEIsT0FBZ0JBO0lBRXZCLFksR0FRRUUsSTtJQVBBQyxVLEdBT0FELEksQ0FQQUMsRztJQURJLEksR0FRSkQsSSxDQVJJLEk7SUFFSkUsSyxHQU1BRixJLENBTkFFLEs7SUFGSSxPLEdBUUpGLEksQ0FSSSxPO0lBQUEsVyxHQVFKQSxJLENBUkksVztJQUFBLGEsR0FRSkEsSSxDQVJJLGE7SUFBQSxVLEdBUUpBLEks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QU07QUFGUkg7QUFSRixhQUFzQixDQVR4QjtBQXVCUUksZ0JBdkJSLEdBdUJZLGFBQ1I7QUFBTSxzQkFBUSxFQUFkO0FBQUEsNEJBQ0UsaUVBQ0UscUNBSE4sUUFHTSxDQURGLENBREYsQ0F4QkosRUErQkU7O0FBQ0FDLDhCQUFrQixDQUNoQnpGLHNCQUNFLFNBREZBLEdBRGdCLE1BQWxCeUYsVUFBa0IsQ0FBbEJBO0FBaENGO0FBQUEsbUJBeUNFLGFBekNGOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEc7Ozs7QUE0Q0Esc0JBQXNDO0FBQUE7O0FBQUEsTUFBeEIsUUFBd0IsVUFBeEIsUUFBd0I7QUFBQSxNQUF0QyxRQUFzQyxVQUF0QyxRQUFzQzs7QUFDcEM7QUFDQTtBQUNBekQsb0NBQXNCO0FBQUEsV0FBTTBELFFBQTVCMUQsRUFBc0I7QUFBQSxHQUF0QkEsRUFBd0MsQ0FBeENBLFFBQXdDLENBQXhDQTs7QUFDQTtBQUNEOztHQUxELEk7O01BQUEsSSIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2luZGV4LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZ2xvYmFsIGxvY2F0aW9uICovXG5pbXBvcnQgeyBjcmVhdGVSb3V0ZXIsIG1ha2VQdWJsaWNSb3V0ZXJJbnN0YW5jZSB9IGZyb20gJ25leHQvcm91dGVyJ1xuaW1wb3J0IHsgcGFyc2UgYXMgcGFyc2VRcywgc3RyaW5naWZ5IGFzIHN0cmluZ2lmeVFzIH0gZnJvbSAncXVlcnlzdHJpbmcnXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJ1xuaW1wb3J0IHsgSGVhZE1hbmFnZXJDb250ZXh0IH0gZnJvbSAnLi4vbmV4dC1zZXJ2ZXIvbGliL2hlYWQtbWFuYWdlci1jb250ZXh0J1xuaW1wb3J0IG1pdHQgZnJvbSAnLi4vbmV4dC1zZXJ2ZXIvbGliL21pdHQnXG5pbXBvcnQgeyBSb3V0ZXJDb250ZXh0IH0gZnJvbSAnLi4vbmV4dC1zZXJ2ZXIvbGliL3JvdXRlci1jb250ZXh0J1xuaW1wb3J0IHsgaXNEeW5hbWljUm91dGUgfSBmcm9tICcuLi9uZXh0LXNlcnZlci9saWIvcm91dGVyL3V0aWxzL2lzLWR5bmFtaWMnXG5pbXBvcnQgKiBhcyBlbnZDb25maWcgZnJvbSAnLi4vbmV4dC1zZXJ2ZXIvbGliL3J1bnRpbWUtY29uZmlnJ1xuaW1wb3J0IHsgZ2V0VVJMLCBsb2FkR2V0SW5pdGlhbFByb3BzLCBTVCB9IGZyb20gJy4uL25leHQtc2VydmVyL2xpYi91dGlscydcbmltcG9ydCB7IGRlbEJhc2VQYXRoIH0gZnJvbSAnLi4vbmV4dC1zZXJ2ZXIvbGliL3JvdXRlci9yb3V0ZXInXG5pbXBvcnQgaW5pdEhlYWRNYW5hZ2VyIGZyb20gJy4vaGVhZC1tYW5hZ2VyJ1xuaW1wb3J0IFBhZ2VMb2FkZXIgZnJvbSAnLi9wYWdlLWxvYWRlcidcbmltcG9ydCBtZWFzdXJlV2ViVml0YWxzIGZyb20gJy4vcGVyZm9ybWFuY2UtcmVsYXllcidcblxuLy8vIDxyZWZlcmVuY2UgdHlwZXM9XCJyZWFjdC1kb20vZXhwZXJpbWVudGFsXCIgLz5cblxuaWYgKCEoJ2ZpbmFsbHknIGluIFByb21pc2UucHJvdG90eXBlKSkge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZXh0ZW5kLW5hdGl2ZVxuICBQcm9taXNlLnByb3RvdHlwZS5maW5hbGx5ID0gcmVxdWlyZSgnbmV4dC9kaXN0L2J1aWxkL3BvbHlmaWxscy9maW5hbGx5LXBvbHlmaWxsLm1pbicpXG59XG5cbmNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdfX05FWFRfREFUQV9fJykudGV4dENvbnRlbnQpXG53aW5kb3cuX19ORVhUX0RBVEFfXyA9IGRhdGFcblxuZXhwb3J0IGNvbnN0IHZlcnNpb24gPSBwcm9jZXNzLmVudi5fX05FWFRfVkVSU0lPTlxuXG5jb25zdCB7XG4gIHByb3BzOiBoeWRyYXRlUHJvcHMsXG4gIGVycjogaHlkcmF0ZUVycixcbiAgcGFnZSxcbiAgcXVlcnksXG4gIGJ1aWxkSWQsXG4gIGFzc2V0UHJlZml4LFxuICBydW50aW1lQ29uZmlnLFxuICBkeW5hbWljSWRzLFxuICBpc0ZhbGxiYWNrLFxufSA9IGRhdGFcblxuY29uc3QgcHJlZml4ID0gYXNzZXRQcmVmaXggfHwgJydcblxuLy8gV2l0aCBkeW5hbWljIGFzc2V0UHJlZml4IGl0J3Mgbm8gbG9uZ2VyIHBvc3NpYmxlIHRvIHNldCBhc3NldFByZWZpeCBhdCB0aGUgYnVpbGQgdGltZVxuLy8gU28sIHRoaXMgaXMgaG93IHdlIGRvIGl0IGluIHRoZSBjbGllbnQgc2lkZSBhdCBydW50aW1lXG5fX3dlYnBhY2tfcHVibGljX3BhdGhfXyA9IGAke3ByZWZpeH0vX25leHQvYCAvL2VzbGludC1kaXNhYmxlLWxpbmVcbi8vIEluaXRpYWxpemUgbmV4dC9jb25maWcgd2l0aCB0aGUgZW52aXJvbm1lbnQgY29uZmlndXJhdGlvblxuZW52Q29uZmlnLnNldENvbmZpZyh7XG4gIHNlcnZlclJ1bnRpbWVDb25maWc6IHt9LFxuICBwdWJsaWNSdW50aW1lQ29uZmlnOiBydW50aW1lQ29uZmlnIHx8IHt9LFxufSlcblxubGV0IGFzUGF0aCA9IGdldFVSTCgpXG5cbi8vIG1ha2Ugc3VyZSBub3QgdG8gYXR0ZW1wdCBzdHJpcHBpbmcgYmFzZVBhdGggZm9yIDQwNHNcbmlmIChcbiAgcGFnZSAhPT0gJy80MDQnICYmXG4gICEoXG4gICAgcGFnZSA9PT0gJy9fZXJyb3InICYmXG4gICAgaHlkcmF0ZVByb3BzICYmXG4gICAgaHlkcmF0ZVByb3BzLnBhZ2VQcm9wcy5zdGF0dXNDb2RlID09PSAnNDA0J1xuICApXG4pIHtcbiAgYXNQYXRoID0gZGVsQmFzZVBhdGgoYXNQYXRoKVxufVxuXG5jb25zdCBwYWdlTG9hZGVyID0gbmV3IFBhZ2VMb2FkZXIoYnVpbGRJZCwgcHJlZml4LCBwYWdlKVxuY29uc3QgcmVnaXN0ZXIgPSAoW3IsIGZdKSA9PiBwYWdlTG9hZGVyLnJlZ2lzdGVyUGFnZShyLCBmKVxuaWYgKHdpbmRvdy5fX05FWFRfUCkge1xuICAvLyBEZWZlciBwYWdlIHJlZ2lzdHJhdGlvbiBmb3IgYW5vdGhlciB0aWNrLiBUaGlzIHdpbGwgaW5jcmVhc2UgdGhlIG92ZXJhbGxcbiAgLy8gbGF0ZW5jeSBpbiBoeWRyYXRpbmcgdGhlIHBhZ2UsIGJ1dCByZWR1Y2UgdGhlIHRvdGFsIGJsb2NraW5nIHRpbWUuXG4gIHdpbmRvdy5fX05FWFRfUC5tYXAoKHApID0+IHNldFRpbWVvdXQoKCkgPT4gcmVnaXN0ZXIocCksIDApKVxufVxud2luZG93Ll9fTkVYVF9QID0gW11cbndpbmRvdy5fX05FWFRfUC5wdXNoID0gcmVnaXN0ZXJcblxuY29uc3QgaGVhZE1hbmFnZXIgPSBpbml0SGVhZE1hbmFnZXIoKVxuY29uc3QgYXBwRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdfX25leHQnKVxuXG5sZXQgbGFzdEFwcFByb3BzXG5sZXQgbGFzdFJlbmRlclJlamVjdFxubGV0IHdlYnBhY2tITVJcbmV4cG9ydCBsZXQgcm91dGVyXG5sZXQgQ2FjaGVkQ29tcG9uZW50XG5sZXQgQ2FjaGVkQXBwLCBvblBlcmZFbnRyeVxuXG5jbGFzcyBDb250YWluZXIgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBjb21wb25lbnREaWRDYXRjaChjb21wb25lbnRFcnIsIGluZm8pIHtcbiAgICB0aGlzLnByb3BzLmZuKGNvbXBvbmVudEVyciwgaW5mbylcbiAgfVxuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIHRoaXMuc2Nyb2xsVG9IYXNoKClcblxuICAgIC8vIFdlIG5lZWQgdG8gcmVwbGFjZSB0aGUgcm91dGVyIHN0YXRlIGlmOlxuICAgIC8vIC0gdGhlIHBhZ2Ugd2FzIChhdXRvKSBleHBvcnRlZCBhbmQgaGFzIGEgcXVlcnkgc3RyaW5nIG9yIHNlYXJjaCAoaGFzaClcbiAgICAvLyAtIGl0IHdhcyBhdXRvIGV4cG9ydGVkIGFuZCBpcyBhIGR5bmFtaWMgcm91dGUgKHRvIHByb3ZpZGUgcGFyYW1zKVxuICAgIC8vIC0gaWYgaXQgaXMgYSBjbGllbnQtc2lkZSBza2VsZXRvbiAoZmFsbGJhY2sgcmVuZGVyKVxuICAgIGlmIChcbiAgICAgIHJvdXRlci5pc1NzciAmJlxuICAgICAgKGlzRmFsbGJhY2sgfHxcbiAgICAgICAgKGRhdGEubmV4dEV4cG9ydCAmJlxuICAgICAgICAgIChpc0R5bmFtaWNSb3V0ZShyb3V0ZXIucGF0aG5hbWUpIHx8IGxvY2F0aW9uLnNlYXJjaCkpIHx8XG4gICAgICAgIChoeWRyYXRlUHJvcHMgJiYgaHlkcmF0ZVByb3BzLl9fTl9TU0cgJiYgbG9jYXRpb24uc2VhcmNoKSlcbiAgICApIHtcbiAgICAgIC8vIHVwZGF0ZSBxdWVyeSBvbiBtb3VudCBmb3IgZXhwb3J0ZWQgcGFnZXNcbiAgICAgIHJvdXRlci5yZXBsYWNlKFxuICAgICAgICByb3V0ZXIucGF0aG5hbWUgK1xuICAgICAgICAgICc/JyArXG4gICAgICAgICAgc3RyaW5naWZ5UXMoe1xuICAgICAgICAgICAgLi4ucm91dGVyLnF1ZXJ5LFxuICAgICAgICAgICAgLi4ucGFyc2VRcyhsb2NhdGlvbi5zZWFyY2guc3Vic3RyKDEpKSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgYXNQYXRoLFxuICAgICAgICB7XG4gICAgICAgICAgLy8gV0FSTklORzogYF9oYCBpcyBhbiBpbnRlcm5hbCBvcHRpb24gZm9yIGhhbmRpbmcgTmV4dC5qc1xuICAgICAgICAgIC8vIGNsaWVudC1zaWRlIGh5ZHJhdGlvbi4gWW91ciBhcHAgc2hvdWxkIF9uZXZlcl8gdXNlIHRoaXMgcHJvcGVydHkuXG4gICAgICAgICAgLy8gSXQgbWF5IGNoYW5nZSBhdCBhbnkgdGltZSB3aXRob3V0IG5vdGljZS5cbiAgICAgICAgICBfaDogMSxcbiAgICAgICAgICAvLyBGYWxsYmFjayBwYWdlcyBtdXN0IHRyaWdnZXIgdGhlIGRhdGEgZmV0Y2gsIHNvIHRoZSB0cmFuc2l0aW9uIGlzXG4gICAgICAgICAgLy8gbm90IHNoYWxsb3cuXG4gICAgICAgICAgLy8gT3RoZXIgcGFnZXMgKHN0cmljdGx5IHVwZGF0aW5nIHF1ZXJ5KSBoYXBwZW5zIHNoYWxsb3dseSwgYXMgZGF0YVxuICAgICAgICAgIC8vIHJlcXVpcmVtZW50cyB3b3VsZCBhbHJlYWR5IGJlIHByZXNlbnQuXG4gICAgICAgICAgc2hhbGxvdzogIWlzRmFsbGJhY2ssXG4gICAgICAgIH1cbiAgICAgIClcbiAgICB9XG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX1RFU1RfTU9ERSkge1xuICAgICAgd2luZG93Ll9fTkVYVF9IWURSQVRFRCA9IHRydWVcblxuICAgICAgaWYgKHdpbmRvdy5fX05FWFRfSFlEUkFURURfQ0IpIHtcbiAgICAgICAgd2luZG93Ll9fTkVYVF9IWURSQVRFRF9DQigpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29tcG9uZW50RGlkVXBkYXRlKCkge1xuICAgIHRoaXMuc2Nyb2xsVG9IYXNoKClcbiAgfVxuXG4gIHNjcm9sbFRvSGFzaCgpIHtcbiAgICBsZXQgeyBoYXNoIH0gPSBsb2NhdGlvblxuICAgIGhhc2ggPSBoYXNoICYmIGhhc2guc3Vic3RyaW5nKDEpXG4gICAgaWYgKCFoYXNoKSByZXR1cm5cblxuICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaGFzaClcbiAgICBpZiAoIWVsKSByZXR1cm5cblxuICAgIC8vIElmIHdlIGNhbGwgc2Nyb2xsSW50b1ZpZXcoKSBpbiBoZXJlIHdpdGhvdXQgYSBzZXRUaW1lb3V0XG4gICAgLy8gaXQgd29uJ3Qgc2Nyb2xsIHByb3Blcmx5LlxuICAgIHNldFRpbWVvdXQoKCkgPT4gZWwuc2Nyb2xsSW50b1ZpZXcoKSwgMClcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMuY2hpbGRyZW5cbiAgICB9XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGNvbnN0IHsgUmVhY3REZXZPdmVybGF5IH0gPSByZXF1aXJlKCdAbmV4dC9yZWFjdC1kZXYtb3ZlcmxheS9saWIvY2xpZW50JylcbiAgICAgIHJldHVybiA8UmVhY3REZXZPdmVybGF5Pnt0aGlzLnByb3BzLmNoaWxkcmVufTwvUmVhY3REZXZPdmVybGF5PlxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY29uc3QgZW1pdHRlciA9IG1pdHQoKVxuXG5leHBvcnQgZGVmYXVsdCBhc3luYyAoeyB3ZWJwYWNrSE1SOiBwYXNzZWRXZWJwYWNrSE1SIH0gPSB7fSkgPT4ge1xuICAvLyBUaGlzIG1ha2VzIHN1cmUgdGhpcyBzcGVjaWZpYyBsaW5lcyBhcmUgcmVtb3ZlZCBpbiBwcm9kdWN0aW9uXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgIHdlYnBhY2tITVIgPSBwYXNzZWRXZWJwYWNrSE1SXG4gIH1cbiAgY29uc3QgeyBwYWdlOiBhcHAsIG1vZCB9ID0gYXdhaXQgcGFnZUxvYWRlci5sb2FkUGFnZSgnL19hcHAnKVxuICBDYWNoZWRBcHAgPSBhcHBcblxuICBpZiAobW9kICYmIG1vZC5yZXBvcnRXZWJWaXRhbHMpIHtcbiAgICBvblBlcmZFbnRyeSA9ICh7XG4gICAgICBpZCxcbiAgICAgIG5hbWUsXG4gICAgICBzdGFydFRpbWUsXG4gICAgICB2YWx1ZSxcbiAgICAgIGR1cmF0aW9uLFxuICAgICAgZW50cnlUeXBlLFxuICAgICAgZW50cmllcyxcbiAgICB9KSA9PiB7XG4gICAgICAvLyBDb21iaW5lcyB0aW1lc3RhbXAgd2l0aCByYW5kb20gbnVtYmVyIGZvciB1bmlxdWUgSURcbiAgICAgIGNvbnN0IHVuaXF1ZUlEID0gYCR7RGF0ZS5ub3coKX0tJHtcbiAgICAgICAgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKDllMTIgLSAxKSkgKyAxZTEyXG4gICAgICB9YFxuICAgICAgbGV0IHBlcmZTdGFydEVudHJ5XG5cbiAgICAgIGlmIChlbnRyaWVzICYmIGVudHJpZXMubGVuZ3RoKSB7XG4gICAgICAgIHBlcmZTdGFydEVudHJ5ID0gZW50cmllc1swXS5zdGFydFRpbWVcbiAgICAgIH1cblxuICAgICAgbW9kLnJlcG9ydFdlYlZpdGFscyh7XG4gICAgICAgIGlkOiBpZCB8fCB1bmlxdWVJRCxcbiAgICAgICAgbmFtZSxcbiAgICAgICAgc3RhcnRUaW1lOiBzdGFydFRpbWUgfHwgcGVyZlN0YXJ0RW50cnksXG4gICAgICAgIHZhbHVlOiB2YWx1ZSA9PSBudWxsID8gZHVyYXRpb24gOiB2YWx1ZSxcbiAgICAgICAgbGFiZWw6XG4gICAgICAgICAgZW50cnlUeXBlID09PSAnbWFyaycgfHwgZW50cnlUeXBlID09PSAnbWVhc3VyZSdcbiAgICAgICAgICAgID8gJ2N1c3RvbSdcbiAgICAgICAgICAgIDogJ3dlYi12aXRhbCcsXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIGxldCBpbml0aWFsRXJyID0gaHlkcmF0ZUVyclxuXG4gIHRyeSB7XG4gICAgOyh7IHBhZ2U6IENhY2hlZENvbXBvbmVudCB9ID0gYXdhaXQgcGFnZUxvYWRlci5sb2FkUGFnZShwYWdlKSlcblxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBjb25zdCB7IGlzVmFsaWRFbGVtZW50VHlwZSB9ID0gcmVxdWlyZSgncmVhY3QtaXMnKVxuICAgICAgaWYgKCFpc1ZhbGlkRWxlbWVudFR5cGUoQ2FjaGVkQ29tcG9uZW50KSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYFRoZSBkZWZhdWx0IGV4cG9ydCBpcyBub3QgYSBSZWFjdCBDb21wb25lbnQgaW4gcGFnZTogXCIke3BhZ2V9XCJgXG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgLy8gVGhpcyBjYXRjaGVzIGVycm9ycyBsaWtlIHRocm93aW5nIGluIHRoZSB0b3AgbGV2ZWwgb2YgYSBtb2R1bGVcbiAgICBpbml0aWFsRXJyID0gZXJyb3JcbiAgfVxuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgIGNvbnN0IHsgZ2V0Tm9kZUVycm9yIH0gPSByZXF1aXJlKCdAbmV4dC9yZWFjdC1kZXYtb3ZlcmxheS9saWIvY2xpZW50JylcbiAgICAvLyBTZXJ2ZXItc2lkZSBydW50aW1lIGVycm9ycyBuZWVkIHRvIGJlIHJlLXRocm93biBvbiB0aGUgY2xpZW50LXNpZGUgc29cbiAgICAvLyB0aGF0IHRoZSBvdmVybGF5IGlzIHJlbmRlcmVkLlxuICAgIGlmIChpbml0aWFsRXJyKSB7XG4gICAgICBpZiAoaW5pdGlhbEVyciA9PT0gaHlkcmF0ZUVycikge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBsZXQgZXJyb3JcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gR2VuZXJhdGUgYSBuZXcgZXJyb3Igb2JqZWN0LiBXZSBgdGhyb3dgIGl0IGJlY2F1c2Ugc29tZSBicm93c2Vyc1xuICAgICAgICAgICAgLy8gd2lsbCBzZXQgdGhlIGBzdGFja2Agd2hlbiB0aHJvd24sIGFuZCB3ZSB3YW50IHRvIGVuc3VyZSBvdXJzIGlzXG4gICAgICAgICAgICAvLyBub3Qgb3ZlcnJpZGRlbiB3aGVuIHdlIHJlLXRocm93IGl0IGJlbG93LlxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGluaXRpYWxFcnIubWVzc2FnZSlcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBlcnJvciA9IGVcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBlcnJvci5uYW1lID0gaW5pdGlhbEVyci5uYW1lXG4gICAgICAgICAgZXJyb3Iuc3RhY2sgPSBpbml0aWFsRXJyLnN0YWNrXG5cbiAgICAgICAgICBjb25zdCBub2RlID0gZ2V0Tm9kZUVycm9yKGVycm9yKVxuICAgICAgICAgIHRocm93IG5vZGVcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICAgIC8vIFdlIHJlcGxhY2VkIHRoZSBzZXJ2ZXItc2lkZSBlcnJvciB3aXRoIGEgY2xpZW50LXNpZGUgZXJyb3IsIGFuZCBzaG91bGRcbiAgICAgIC8vIG5vIGxvbmdlciByZXdyaXRlIHRoZSBzdGFjayB0cmFjZSB0byBhIE5vZGUgZXJyb3IuXG4gICAgICBlbHNlIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhyb3cgaW5pdGlhbEVyclxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmICh3aW5kb3cuX19ORVhUX1BSRUxPQURSRUFEWSkge1xuICAgIGF3YWl0IHdpbmRvdy5fX05FWFRfUFJFTE9BRFJFQURZKGR5bmFtaWNJZHMpXG4gIH1cblxuICByb3V0ZXIgPSBjcmVhdGVSb3V0ZXIocGFnZSwgcXVlcnksIGFzUGF0aCwge1xuICAgIGluaXRpYWxQcm9wczogaHlkcmF0ZVByb3BzLFxuICAgIHBhZ2VMb2FkZXIsXG4gICAgQXBwOiBDYWNoZWRBcHAsXG4gICAgQ29tcG9uZW50OiBDYWNoZWRDb21wb25lbnQsXG4gICAgd3JhcEFwcCxcbiAgICBlcnI6IGluaXRpYWxFcnIsXG4gICAgaXNGYWxsYmFjayxcbiAgICBzdWJzY3JpcHRpb246ICh7IENvbXBvbmVudCwgcHJvcHMsIGVyciB9LCBBcHApID0+XG4gICAgICByZW5kZXIoeyBBcHAsIENvbXBvbmVudCwgcHJvcHMsIGVyciB9KSxcbiAgfSlcblxuICAvLyBjYWxsIGluaXQtY2xpZW50IG1pZGRsZXdhcmVcbiAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9QTFVHSU5TKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgaW1wb3J0KCduZXh0LXBsdWdpbi1sb2FkZXI/bWlkZGxld2FyZT1vbi1pbml0LWNsaWVudCEnKVxuICAgICAgLnRoZW4oKGluaXRDbGllbnRNb2R1bGUpID0+IHtcbiAgICAgICAgcmV0dXJuIGluaXRDbGllbnRNb2R1bGUuZGVmYXVsdCh7IHJvdXRlciB9KVxuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoaW5pdENsaWVudEVycikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBjYWxsaW5nIGNsaWVudC1pbml0IGZvciBwbHVnaW5zJywgaW5pdENsaWVudEVycilcbiAgICAgIH0pXG4gIH1cblxuICBjb25zdCByZW5kZXJDdHggPSB7XG4gICAgQXBwOiBDYWNoZWRBcHAsXG4gICAgQ29tcG9uZW50OiBDYWNoZWRDb21wb25lbnQsXG4gICAgcHJvcHM6IGh5ZHJhdGVQcm9wcyxcbiAgICBlcnI6IGluaXRpYWxFcnIsXG4gIH1cblxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICAgIHJlbmRlcihyZW5kZXJDdHgpXG4gICAgcmV0dXJuIGVtaXR0ZXJcbiAgfVxuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgcmV0dXJuIHsgZW1pdHRlciwgcmVuZGVyLCByZW5kZXJDdHggfVxuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZW5kZXIocmVuZGVyaW5nUHJvcHMpIHtcbiAgaWYgKHJlbmRlcmluZ1Byb3BzLmVycikge1xuICAgIGF3YWl0IHJlbmRlckVycm9yKHJlbmRlcmluZ1Byb3BzKVxuICAgIHJldHVyblxuICB9XG5cbiAgdHJ5IHtcbiAgICBhd2FpdCBkb1JlbmRlcihyZW5kZXJpbmdQcm9wcylcbiAgfSBjYXRjaCAocmVuZGVyRXJyKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAvLyBFbnN1cmUgdGhpcyBlcnJvciBpcyBkaXNwbGF5ZWQgaW4gdGhlIG92ZXJsYXkgaW4gZGV2ZWxvcG1lbnRcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aHJvdyByZW5kZXJFcnJcbiAgICAgIH0pXG4gICAgfVxuICAgIGF3YWl0IHJlbmRlckVycm9yKHsgLi4ucmVuZGVyaW5nUHJvcHMsIGVycjogcmVuZGVyRXJyIH0pXG4gIH1cbn1cblxuLy8gVGhpcyBtZXRob2QgaGFuZGxlcyBhbGwgcnVudGltZSBhbmQgZGVidWcgZXJyb3JzLlxuLy8gNDA0IGFuZCA1MDAgZXJyb3JzIGFyZSBzcGVjaWFsIGtpbmQgb2YgZXJyb3JzXG4vLyBhbmQgdGhleSBhcmUgc3RpbGwgaGFuZGxlIHZpYSB0aGUgbWFpbiByZW5kZXIgbWV0aG9kLlxuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlckVycm9yKHJlbmRlckVycm9yUHJvcHMpIHtcbiAgY29uc3QgeyBBcHAsIGVyciB9ID0gcmVuZGVyRXJyb3JQcm9wc1xuXG4gIC8vIEluIGRldmVsb3BtZW50IHJ1bnRpbWUgZXJyb3JzIGFyZSBjYXVnaHQgYnkgb3VyIG92ZXJsYXlcbiAgLy8gSW4gcHJvZHVjdGlvbiB3ZSBjYXRjaCBydW50aW1lIGVycm9ycyB1c2luZyBjb21wb25lbnREaWRDYXRjaCB3aGljaCB3aWxsIHRyaWdnZXIgcmVuZGVyRXJyb3JcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAvLyBBIE5leHQuanMgcmVuZGVyaW5nIHJ1bnRpbWUgZXJyb3IgaXMgYWx3YXlzIHVucmVjb3ZlcmFibGVcbiAgICAvLyBGSVhNRTogbGV0J3MgbWFrZSB0aGlzIHJlY292ZXJhYmxlIChlcnJvciBpbiBHSVAgY2xpZW50LXRyYW5zaXRpb24pXG4gICAgd2VicGFja0hNUi5vblVucmVjb3ZlcmFibGVFcnJvcigpXG5cbiAgICAvLyBXZSBuZWVkIHRvIHJlbmRlciBhbiBlbXB0eSA8QXBwPiBzbyB0aGF0IHRoZSBgPFJlYWN0RGV2T3ZlcmxheT5gIGNhblxuICAgIC8vIHJlbmRlciBpdHNlbGYuXG4gICAgcmV0dXJuIGRvUmVuZGVyKHtcbiAgICAgIEFwcDogKCkgPT4gbnVsbCxcbiAgICAgIHByb3BzOiB7fSxcbiAgICAgIENvbXBvbmVudDogKCkgPT4gbnVsbCxcbiAgICAgIGVycjogbnVsbCxcbiAgICB9KVxuICB9XG4gIGlmIChwcm9jZXNzLmVudi5fX05FWFRfUExVR0lOUykge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIGltcG9ydCgnbmV4dC1wbHVnaW4tbG9hZGVyP21pZGRsZXdhcmU9b24tZXJyb3ItY2xpZW50IScpXG4gICAgICAudGhlbigob25DbGllbnRFcnJvck1vZHVsZSkgPT4ge1xuICAgICAgICByZXR1cm4gb25DbGllbnRFcnJvck1vZHVsZS5kZWZhdWx0KHsgZXJyIH0pXG4gICAgICB9KVxuICAgICAgLmNhdGNoKChvbkNsaWVudEVycm9yRXJyKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgJ2Vycm9yIGNhbGxpbmcgb24tZXJyb3ItY2xpZW50IGZvciBwbHVnaW5zJyxcbiAgICAgICAgICBvbkNsaWVudEVycm9yRXJyXG4gICAgICAgIClcbiAgICAgIH0pXG4gIH1cblxuICAvLyBNYWtlIHN1cmUgd2UgbG9nIHRoZSBlcnJvciB0byB0aGUgY29uc29sZSwgb3RoZXJ3aXNlIHVzZXJzIGNhbid0IHRyYWNrIGRvd24gaXNzdWVzLlxuICBjb25zb2xlLmVycm9yKGVycilcbiAgcmV0dXJuIHBhZ2VMb2FkZXIubG9hZFBhZ2UoJy9fZXJyb3InKS50aGVuKCh7IHBhZ2U6IEVycm9yQ29tcG9uZW50IH0pID0+IHtcbiAgICAvLyBJbiBwcm9kdWN0aW9uIHdlIGRvIGEgbm9ybWFsIHJlbmRlciB3aXRoIHRoZSBgRXJyb3JDb21wb25lbnRgIGFzIGNvbXBvbmVudC5cbiAgICAvLyBJZiB3ZSd2ZSBnb3R0ZW4gaGVyZSB1cG9uIGluaXRpYWwgcmVuZGVyLCB3ZSBjYW4gdXNlIHRoZSBwcm9wcyBmcm9tIHRoZSBzZXJ2ZXIuXG4gICAgLy8gT3RoZXJ3aXNlLCB3ZSBuZWVkIHRvIGNhbGwgYGdldEluaXRpYWxQcm9wc2Agb24gYEFwcGAgYmVmb3JlIG1vdW50aW5nLlxuICAgIGNvbnN0IEFwcFRyZWUgPSB3cmFwQXBwKEFwcClcbiAgICBjb25zdCBhcHBDdHggPSB7XG4gICAgICBDb21wb25lbnQ6IEVycm9yQ29tcG9uZW50LFxuICAgICAgQXBwVHJlZSxcbiAgICAgIHJvdXRlcixcbiAgICAgIGN0eDogeyBlcnIsIHBhdGhuYW1lOiBwYWdlLCBxdWVyeSwgYXNQYXRoLCBBcHBUcmVlIH0sXG4gICAgfVxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoXG4gICAgICByZW5kZXJFcnJvclByb3BzLnByb3BzXG4gICAgICAgID8gcmVuZGVyRXJyb3JQcm9wcy5wcm9wc1xuICAgICAgICA6IGxvYWRHZXRJbml0aWFsUHJvcHMoQXBwLCBhcHBDdHgpXG4gICAgKS50aGVuKChpbml0UHJvcHMpID0+XG4gICAgICBkb1JlbmRlcih7XG4gICAgICAgIC4uLnJlbmRlckVycm9yUHJvcHMsXG4gICAgICAgIGVycixcbiAgICAgICAgQ29tcG9uZW50OiBFcnJvckNvbXBvbmVudCxcbiAgICAgICAgcHJvcHM6IGluaXRQcm9wcyxcbiAgICAgIH0pXG4gICAgKVxuICB9KVxufVxuXG4vLyBJZiBoeWRyYXRlIGRvZXMgbm90IGV4aXN0LCBlZyBpbiBwcmVhY3QuXG5sZXQgaXNJbml0aWFsUmVuZGVyID0gdHlwZW9mIFJlYWN0RE9NLmh5ZHJhdGUgPT09ICdmdW5jdGlvbidcbmxldCByZWFjdFJvb3QgPSBudWxsXG5mdW5jdGlvbiByZW5kZXJSZWFjdEVsZW1lbnQocmVhY3RFbCwgZG9tRWwpIHtcbiAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9SRUFDVF9NT0RFICE9PSAnbGVnYWN5Jykge1xuICAgIGlmICghcmVhY3RSb290KSB7XG4gICAgICBjb25zdCBvcHRzID0geyBoeWRyYXRlOiB0cnVlIH1cbiAgICAgIHJlYWN0Um9vdCA9XG4gICAgICAgIHByb2Nlc3MuZW52Ll9fTkVYVF9SRUFDVF9NT0RFID09PSAnY29uY3VycmVudCdcbiAgICAgICAgICA/IFJlYWN0RE9NLnVuc3RhYmxlX2NyZWF0ZVJvb3QoZG9tRWwsIG9wdHMpXG4gICAgICAgICAgOiBSZWFjdERPTS51bnN0YWJsZV9jcmVhdGVCbG9ja2luZ1Jvb3QoZG9tRWwsIG9wdHMpXG4gICAgfVxuICAgIHJlYWN0Um9vdC5yZW5kZXIocmVhY3RFbClcbiAgfSBlbHNlIHtcbiAgICAvLyBtYXJrIHN0YXJ0IG9mIGh5ZHJhdGUvcmVuZGVyXG4gICAgaWYgKFNUKSB7XG4gICAgICBwZXJmb3JtYW5jZS5tYXJrKCdiZWZvcmVSZW5kZXInKVxuICAgIH1cblxuICAgIC8vIFRoZSBjaGVjayBmb3IgYC5oeWRyYXRlYCBpcyB0aGVyZSB0byBzdXBwb3J0IFJlYWN0IGFsdGVybmF0aXZlcyBsaWtlIHByZWFjdFxuICAgIGlmIChpc0luaXRpYWxSZW5kZXIpIHtcbiAgICAgIFJlYWN0RE9NLmh5ZHJhdGUocmVhY3RFbCwgZG9tRWwsIG1hcmtIeWRyYXRlQ29tcGxldGUpXG4gICAgICBpc0luaXRpYWxSZW5kZXIgPSBmYWxzZVxuXG4gICAgICBpZiAob25QZXJmRW50cnkgJiYgU1QpIHtcbiAgICAgICAgbWVhc3VyZVdlYlZpdGFscyhvblBlcmZFbnRyeSlcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgUmVhY3RET00ucmVuZGVyKHJlYWN0RWwsIGRvbUVsLCBtYXJrUmVuZGVyQ29tcGxldGUpXG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIG1hcmtIeWRyYXRlQ29tcGxldGUoKSB7XG4gIGlmICghU1QpIHJldHVyblxuXG4gIHBlcmZvcm1hbmNlLm1hcmsoJ2FmdGVySHlkcmF0ZScpIC8vIG1hcmsgZW5kIG9mIGh5ZHJhdGlvblxuXG4gIHBlcmZvcm1hbmNlLm1lYXN1cmUoXG4gICAgJ05leHQuanMtYmVmb3JlLWh5ZHJhdGlvbicsXG4gICAgJ25hdmlnYXRpb25TdGFydCcsXG4gICAgJ2JlZm9yZVJlbmRlcidcbiAgKVxuICBwZXJmb3JtYW5jZS5tZWFzdXJlKCdOZXh0LmpzLWh5ZHJhdGlvbicsICdiZWZvcmVSZW5kZXInLCAnYWZ0ZXJIeWRyYXRlJylcblxuICBpZiAob25QZXJmRW50cnkpIHtcbiAgICBwZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlOYW1lKCdOZXh0LmpzLWh5ZHJhdGlvbicpLmZvckVhY2gob25QZXJmRW50cnkpXG4gIH1cbiAgY2xlYXJNYXJrcygpXG59XG5cbmZ1bmN0aW9uIG1hcmtSZW5kZXJDb21wbGV0ZSgpIHtcbiAgaWYgKCFTVCkgcmV0dXJuXG5cbiAgcGVyZm9ybWFuY2UubWFyaygnYWZ0ZXJSZW5kZXInKSAvLyBtYXJrIGVuZCBvZiByZW5kZXJcbiAgY29uc3QgbmF2U3RhcnRFbnRyaWVzID0gcGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5TmFtZSgncm91dGVDaGFuZ2UnLCAnbWFyaycpXG5cbiAgaWYgKCFuYXZTdGFydEVudHJpZXMubGVuZ3RoKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICBwZXJmb3JtYW5jZS5tZWFzdXJlKFxuICAgICdOZXh0LmpzLXJvdXRlLWNoYW5nZS10by1yZW5kZXInLFxuICAgIG5hdlN0YXJ0RW50cmllc1swXS5uYW1lLFxuICAgICdiZWZvcmVSZW5kZXInXG4gIClcbiAgcGVyZm9ybWFuY2UubWVhc3VyZSgnTmV4dC5qcy1yZW5kZXInLCAnYmVmb3JlUmVuZGVyJywgJ2FmdGVyUmVuZGVyJylcbiAgaWYgKG9uUGVyZkVudHJ5KSB7XG4gICAgcGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5TmFtZSgnTmV4dC5qcy1yZW5kZXInKS5mb3JFYWNoKG9uUGVyZkVudHJ5KVxuICAgIHBlcmZvcm1hbmNlXG4gICAgICAuZ2V0RW50cmllc0J5TmFtZSgnTmV4dC5qcy1yb3V0ZS1jaGFuZ2UtdG8tcmVuZGVyJylcbiAgICAgIC5mb3JFYWNoKG9uUGVyZkVudHJ5KVxuICB9XG4gIGNsZWFyTWFya3MoKVxuICA7WydOZXh0LmpzLXJvdXRlLWNoYW5nZS10by1yZW5kZXInLCAnTmV4dC5qcy1yZW5kZXInXS5mb3JFYWNoKChtZWFzdXJlKSA9PlxuICAgIHBlcmZvcm1hbmNlLmNsZWFyTWVhc3VyZXMobWVhc3VyZSlcbiAgKVxufVxuXG5mdW5jdGlvbiBjbGVhck1hcmtzKCkge1xuICA7W1xuICAgICdiZWZvcmVSZW5kZXInLFxuICAgICdhZnRlckh5ZHJhdGUnLFxuICAgICdhZnRlclJlbmRlcicsXG4gICAgJ3JvdXRlQ2hhbmdlJyxcbiAgXS5mb3JFYWNoKChtYXJrKSA9PiBwZXJmb3JtYW5jZS5jbGVhck1hcmtzKG1hcmspKVxufVxuXG5mdW5jdGlvbiBBcHBDb250YWluZXIoeyBjaGlsZHJlbiB9KSB7XG4gIHJldHVybiAoXG4gICAgPENvbnRhaW5lclxuICAgICAgZm49eyhlcnJvcikgPT5cbiAgICAgICAgcmVuZGVyRXJyb3IoeyBBcHA6IENhY2hlZEFwcCwgZXJyOiBlcnJvciB9KS5jYXRjaCgoZXJyKSA9PlxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHJlbmRlcmluZyBwYWdlOiAnLCBlcnIpXG4gICAgICAgIClcbiAgICAgIH1cbiAgICA+XG4gICAgICA8Um91dGVyQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17bWFrZVB1YmxpY1JvdXRlckluc3RhbmNlKHJvdXRlcil9PlxuICAgICAgICA8SGVhZE1hbmFnZXJDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtoZWFkTWFuYWdlcn0+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L0hlYWRNYW5hZ2VyQ29udGV4dC5Qcm92aWRlcj5cbiAgICAgIDwvUm91dGVyQ29udGV4dC5Qcm92aWRlcj5cbiAgICA8L0NvbnRhaW5lcj5cbiAgKVxufVxuXG5jb25zdCB3cmFwQXBwID0gKEFwcCkgPT4gKHdyYXBwZWRBcHBQcm9wcykgPT4ge1xuICBjb25zdCBhcHBQcm9wcyA9IHtcbiAgICAuLi53cmFwcGVkQXBwUHJvcHMsXG4gICAgQ29tcG9uZW50OiBDYWNoZWRDb21wb25lbnQsXG4gICAgZXJyOiBoeWRyYXRlRXJyLFxuICAgIHJvdXRlcixcbiAgfVxuICByZXR1cm4gKFxuICAgIDxBcHBDb250YWluZXI+XG4gICAgICA8QXBwIHsuLi5hcHBQcm9wc30gLz5cbiAgICA8L0FwcENvbnRhaW5lcj5cbiAgKVxufVxuXG5hc3luYyBmdW5jdGlvbiBkb1JlbmRlcih7IEFwcCwgQ29tcG9uZW50LCBwcm9wcywgZXJyIH0pIHtcbiAgQ29tcG9uZW50ID0gQ29tcG9uZW50IHx8IGxhc3RBcHBQcm9wcy5Db21wb25lbnRcbiAgcHJvcHMgPSBwcm9wcyB8fCBsYXN0QXBwUHJvcHMucHJvcHNcblxuICBjb25zdCBhcHBQcm9wcyA9IHsgLi4ucHJvcHMsIENvbXBvbmVudCwgZXJyLCByb3V0ZXIgfVxuICAvLyBsYXN0QXBwUHJvcHMgaGFzIHRvIGJlIHNldCBiZWZvcmUgUmVhY3REb20ucmVuZGVyIHRvIGFjY291bnQgZm9yIFJlYWN0RG9tIHRocm93aW5nIGFuIGVycm9yLlxuICBsYXN0QXBwUHJvcHMgPSBhcHBQcm9wc1xuXG4gIGxldCByZXNvbHZlUHJvbWlzZVxuICBjb25zdCByZW5kZXJQcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGlmIChsYXN0UmVuZGVyUmVqZWN0KSB7XG4gICAgICBsYXN0UmVuZGVyUmVqZWN0KClcbiAgICB9XG4gICAgcmVzb2x2ZVByb21pc2UgPSAoKSA9PiB7XG4gICAgICBsYXN0UmVuZGVyUmVqZWN0ID0gbnVsbFxuICAgICAgcmVzb2x2ZSgpXG4gICAgfVxuICAgIGxhc3RSZW5kZXJSZWplY3QgPSAoKSA9PiB7XG4gICAgICBsYXN0UmVuZGVyUmVqZWN0ID0gbnVsbFxuICAgICAgcmVqZWN0KClcbiAgICB9XG4gIH0pXG5cbiAgY29uc3QgZWxlbSA9IChcbiAgICA8Um9vdCBjYWxsYmFjaz17cmVzb2x2ZVByb21pc2V9PlxuICAgICAgPEFwcENvbnRhaW5lcj5cbiAgICAgICAgPEFwcCB7Li4uYXBwUHJvcHN9IC8+XG4gICAgICA8L0FwcENvbnRhaW5lcj5cbiAgICA8L1Jvb3Q+XG4gIClcblxuICAvLyBXZSBjYXRjaCBydW50aW1lIGVycm9ycyB1c2luZyBjb21wb25lbnREaWRDYXRjaCB3aGljaCB3aWxsIHRyaWdnZXIgcmVuZGVyRXJyb3JcbiAgcmVuZGVyUmVhY3RFbGVtZW50KFxuICAgIHByb2Nlc3MuZW52Ll9fTkVYVF9TVFJJQ1RfTU9ERSA/IChcbiAgICAgIDxSZWFjdC5TdHJpY3RNb2RlPntlbGVtfTwvUmVhY3QuU3RyaWN0TW9kZT5cbiAgICApIDogKFxuICAgICAgZWxlbVxuICAgICksXG4gICAgYXBwRWxlbWVudFxuICApXG5cbiAgYXdhaXQgcmVuZGVyUHJvbWlzZVxufVxuXG5mdW5jdGlvbiBSb290KHsgY2FsbGJhY2ssIGNoaWxkcmVuIH0pIHtcbiAgLy8gV2UgdXNlIGB1c2VMYXlvdXRFZmZlY3RgIHRvIGd1YXJhbnRlZSB0aGUgY2FsbGJhY2sgaXMgZXhlY3V0ZWRcbiAgLy8gYXMgc29vbiBhcyBSZWFjdCBmbHVzaGVzIHRoZSB1cGRhdGUuXG4gIFJlYWN0LnVzZUxheW91dEVmZmVjdCgoKSA9PiBjYWxsYmFjaygpLCBbY2FsbGJhY2tdKVxuICByZXR1cm4gY2hpbGRyZW5cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/index.js\n"); +eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nvar _regeneratorRuntime = __webpack_require__(/*! @babel/runtime/regenerator */ \"./node_modules/next/node_modules/@babel/runtime/regenerator/index.js\");\n\nvar _asyncToGenerator = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/next/node_modules/@babel/runtime/helpers/asyncToGenerator.js\");\n\nvar _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"./node_modules/next/node_modules/@babel/runtime/helpers/classCallCheck.js\");\n\nvar _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ \"./node_modules/next/node_modules/@babel/runtime/helpers/createClass.js\");\n\nvar _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ \"./node_modules/next/node_modules/@babel/runtime/helpers/inherits.js\");\n\nvar _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ \"./node_modules/next/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js\");\n\nvar _getPrototypeOf = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ \"./node_modules/next/node_modules/@babel/runtime/helpers/getPrototypeOf.js\");\n\nvar _slicedToArray = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/next/node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nvar _s = $RefreshSig$();\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar _interopRequireWildcard3 = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"./node_modules/next/node_modules/@babel/runtime/helpers/interopRequireWildcard.js\");\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/next/node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nexports.__esModule = true;\nexports.render = render;\nexports.renderError = renderError;\nexports[\"default\"] = exports.emitter = exports.router = exports.version = void 0;\n\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/next/node_modules/@babel/runtime/helpers/extends.js\"));\n\nvar _interopRequireWildcard2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"./node_modules/next/node_modules/@babel/runtime/helpers/interopRequireWildcard.js\"));\n\n__webpack_require__(/*! @next/polyfill-module */ \"./node_modules/@next/polyfill-module/dist/polyfill-module.js\");\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _reactDom = _interopRequireDefault(__webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\"));\n\nvar _headManagerContext = __webpack_require__(/*! ../next-server/lib/head-manager-context */ \"./node_modules/next/dist/next-server/lib/head-manager-context.js\");\n\nvar _mitt = _interopRequireDefault(__webpack_require__(/*! ../next-server/lib/mitt */ \"./node_modules/next/dist/next-server/lib/mitt.js\"));\n\nvar _routerContext = __webpack_require__(/*! ../next-server/lib/router-context */ \"./node_modules/next/dist/next-server/lib/router-context.js\");\n\nvar _router = __webpack_require__(/*! ../next-server/lib/router/router */ \"./node_modules/next/dist/next-server/lib/router/router.js\");\n\nvar _isDynamic = __webpack_require__(/*! ../next-server/lib/router/utils/is-dynamic */ \"./node_modules/next/dist/next-server/lib/router/utils/is-dynamic.js\");\n\nvar querystring = _interopRequireWildcard3(__webpack_require__(/*! ../next-server/lib/router/utils/querystring */ \"./node_modules/next/dist/next-server/lib/router/utils/querystring.js\"));\n\nvar envConfig = _interopRequireWildcard3(__webpack_require__(/*! ../next-server/lib/runtime-config */ \"./node_modules/next/dist/next-server/lib/runtime-config.js\"));\n\nvar _utils = __webpack_require__(/*! ../next-server/lib/utils */ \"./node_modules/next/dist/next-server/lib/utils.js\");\n\nvar _headManager = _interopRequireDefault(__webpack_require__(/*! ./head-manager */ \"./node_modules/next/dist/client/head-manager.js\"));\n\nvar _pageLoader = _interopRequireWildcard3(__webpack_require__(/*! ./page-loader */ \"./node_modules/next/dist/client/page-loader.js\"));\n\nvar _performanceRelayer = _interopRequireDefault(__webpack_require__(/*! ./performance-relayer */ \"./node_modules/next/dist/client/performance-relayer.js\"));\n\nvar _router2 = __webpack_require__(/*! ./router */ \"./node_modules/next/dist/client/router.js\");\n/* global location */\n\n\nvar data = JSON.parse(document.getElementById('__NEXT_DATA__').textContent);\nwindow.__NEXT_DATA__ = data;\nvar version = \"9.5.5\";\nexports.version = version;\nvar hydrateProps = data.props,\n hydrateErr = data.err,\n page = data.page,\n query = data.query,\n buildId = data.buildId,\n assetPrefix = data.assetPrefix,\n runtimeConfig = data.runtimeConfig,\n dynamicIds = data.dynamicIds,\n isFallback = data.isFallback,\n initialHeadData = data.head,\n locales = data.locales,\n defaultLocale = data.defaultLocale;\nvar locale = data.locale;\nvar prefix = assetPrefix || ''; // With dynamic assetPrefix it's no longer possible to set assetPrefix at the build time\n// So, this is how we do it in the client side at runtime\n\n__webpack_require__.p = \"\".concat(prefix, \"/_next/\"); //eslint-disable-line\n// Initialize next/config with the environment configuration\n\nenvConfig.setConfig({\n serverRuntimeConfig: {},\n publicRuntimeConfig: runtimeConfig || {}\n});\nvar asPath = (0, _utils.getURL)(); // make sure not to attempt stripping basePath for 404s\n\nif ((0, _router.hasBasePath)(asPath)) {\n asPath = (0, _router.delBasePath)(asPath);\n}\n\nasPath = (0, _router.delLocale)(asPath, locale);\n\nif (false) { var localePathResult, _require, normalizeLocalePath; }\n\nvar pageLoader = new _pageLoader[\"default\"](buildId, prefix, page);\n\nvar register = function register(_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n r = _ref2[0],\n f = _ref2[1];\n\n return pageLoader.registerPage(r, f);\n};\n\nif (window.__NEXT_P) {\n // Defer page registration for another tick. This will increase the overall\n // latency in hydrating the page, but reduce the total blocking time.\n window.__NEXT_P.map(function (p) {\n return setTimeout(function () {\n return register(p);\n }, 0);\n });\n}\n\nwindow.__NEXT_P = [];\nwindow.__NEXT_P.push = register;\nvar headManager = (0, _headManager[\"default\"])(initialHeadData);\nvar appElement = document.getElementById('__next');\nvar lastAppProps;\n\nvar _lastRenderReject;\n\nvar webpackHMR;\nvar router;\nexports.router = router;\nvar CachedComponent;\nvar cachedStyleSheets;\nvar CachedApp, onPerfEntry;\n\nvar Container = /*#__PURE__*/function (_react$default$Compon) {\n _inherits(Container, _react$default$Compon);\n\n var _super = _createSuper(Container);\n\n function Container() {\n _classCallCheck(this, Container);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Container, [{\n key: \"componentDidCatch\",\n value: function componentDidCatch(componentErr, info) {\n this.props.fn(componentErr, info);\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.scrollToHash(); // We need to replace the router state if:\n // - the page was (auto) exported and has a query string or search (hash)\n // - it was auto exported and is a dynamic route (to provide params)\n // - if it is a client-side skeleton (fallback render)\n\n if (router.isSsr && (isFallback || data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search) || hydrateProps && hydrateProps.__N_SSG && location.search)) {\n // update query on mount for exported pages\n router.replace(router.pathname + '?' + String(querystring.assign(querystring.urlQueryToSearchParams(router.query), new URLSearchParams(location.search))), asPath, {\n // @ts-ignore\n // WARNING: `_h` is an internal option for handing Next.js\n // client-side hydration. Your app should _never_ use this property.\n // It may change at any time without notice.\n _h: 1,\n // Fallback pages must trigger the data fetch, so the transition is\n // not shallow.\n // Other pages (strictly updating query) happens shallowly, as data\n // requirements would already be present.\n shallow: !isFallback\n });\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.scrollToHash();\n }\n }, {\n key: \"scrollToHash\",\n value: function scrollToHash() {\n var _location = location,\n hash = _location.hash;\n hash = hash && hash.substring(1);\n if (!hash) return;\n var el = document.getElementById(hash);\n if (!el) return; // If we call scrollIntoView() in here without a setTimeout\n // it won't scroll properly.\n\n setTimeout(function () {\n return el.scrollIntoView();\n }, 0);\n }\n }, {\n key: \"render\",\n value: function render() {\n if (false) {} else {\n var _require2 = __webpack_require__(/*! @next/react-dev-overlay/lib/client */ \"./node_modules/@next/react-dev-overlay/lib/client.js\"),\n ReactDevOverlay = _require2.ReactDevOverlay;\n\n return /*#__PURE__*/_react[\"default\"].createElement(ReactDevOverlay, null, this.props.children);\n }\n }\n }]);\n\n return Container;\n}(_react[\"default\"].Component);\n\nvar emitter = (0, _mitt[\"default\"])();\nexports.emitter = emitter;\n\nvar _default = /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var opts,\n _yield$pageLoader$loa,\n app,\n mod,\n initialErr,\n _yield$pageLoader$loa2,\n _require3,\n isValidElementType,\n _require4,\n getNodeError,\n renderCtx,\n _args = arguments;\n\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n opts = _args.length > 0 && _args[0] !== undefined ? _args[0] : {};\n\n // This makes sure this specific lines are removed in production\n if (true) {\n webpackHMR = opts.webpackHMR;\n }\n\n _context.next = 4;\n return pageLoader.loadPage('/_app');\n\n case 4:\n _yield$pageLoader$loa = _context.sent;\n app = _yield$pageLoader$loa.page;\n mod = _yield$pageLoader$loa.mod;\n CachedApp = app;\n\n if (mod && mod.reportWebVitals) {\n onPerfEntry = function onPerfEntry(_ref4) {\n var id = _ref4.id,\n name = _ref4.name,\n startTime = _ref4.startTime,\n value = _ref4.value,\n duration = _ref4.duration,\n entryType = _ref4.entryType,\n entries = _ref4.entries;\n // Combines timestamp with random number for unique ID\n var uniqueID = \"\".concat(Date.now(), \"-\").concat(Math.floor(Math.random() * (9e12 - 1)) + 1e12);\n var perfStartEntry;\n\n if (entries && entries.length) {\n perfStartEntry = entries[0].startTime;\n }\n\n mod.reportWebVitals({\n id: id || uniqueID,\n name: name,\n startTime: startTime || perfStartEntry,\n value: value == null ? duration : value,\n label: entryType === 'mark' || entryType === 'measure' ? 'custom' : 'web-vital'\n });\n };\n }\n\n initialErr = hydrateErr;\n _context.prev = 10;\n ;\n _context.next = 14;\n return pageLoader.loadPage(page);\n\n case 14:\n _yield$pageLoader$loa2 = _context.sent;\n CachedComponent = _yield$pageLoader$loa2.page;\n cachedStyleSheets = _yield$pageLoader$loa2.styleSheets;\n\n if (false) {}\n\n _require3 = __webpack_require__(/*! react-is */ \"./node_modules/react-is/index.js\"), isValidElementType = _require3.isValidElementType;\n\n if (isValidElementType(CachedComponent)) {\n _context.next = 21;\n break;\n }\n\n throw new Error(\"The default export is not a React Component in page: \\\"\".concat(page, \"\\\"\"));\n\n case 21:\n _context.next = 26;\n break;\n\n case 23:\n _context.prev = 23;\n _context.t0 = _context[\"catch\"](10);\n // This catches errors like throwing in the top level of a module\n initialErr = _context.t0;\n\n case 26:\n if (true) {\n _require4 = __webpack_require__(/*! @next/react-dev-overlay/lib/client */ \"./node_modules/@next/react-dev-overlay/lib/client.js\"), getNodeError = _require4.getNodeError; // Server-side runtime errors need to be re-thrown on the client-side so\n // that the overlay is rendered.\n\n if (initialErr) {\n if (initialErr === hydrateErr) {\n setTimeout(function () {\n var error;\n\n try {\n // Generate a new error object. We `throw` it because some browsers\n // will set the `stack` when thrown, and we want to ensure ours is\n // not overridden when we re-throw it below.\n throw new Error(initialErr.message);\n } catch (e) {\n error = e;\n }\n\n error.name = initialErr.name;\n error.stack = initialErr.stack;\n var node = getNodeError(error);\n throw node;\n });\n } // We replaced the server-side error with a client-side error, and should\n // no longer rewrite the stack trace to a Node error.\n else {\n setTimeout(function () {\n throw initialErr;\n });\n }\n }\n }\n\n if (!window.__NEXT_PRELOADREADY) {\n _context.next = 30;\n break;\n }\n\n _context.next = 30;\n return window.__NEXT_PRELOADREADY(dynamicIds);\n\n case 30:\n exports.router = router = (0, _router2.createRouter)(page, query, asPath, {\n initialProps: hydrateProps,\n pageLoader: pageLoader,\n App: CachedApp,\n Component: CachedComponent,\n initialStyleSheets: cachedStyleSheets,\n wrapApp: wrapApp,\n err: initialErr,\n isFallback: Boolean(isFallback),\n subscription: function subscription(_ref5, App) {\n var Component = _ref5.Component,\n styleSheets = _ref5.styleSheets,\n props = _ref5.props,\n err = _ref5.err;\n return render({\n App: App,\n Component: Component,\n styleSheets: styleSheets,\n props: props,\n err: err\n });\n },\n locale: locale,\n locales: locales,\n defaultLocale: defaultLocale\n }); // call init-client middleware\n\n if (false) {}\n\n renderCtx = {\n App: CachedApp,\n Component: CachedComponent,\n styleSheets: cachedStyleSheets,\n props: hydrateProps,\n err: initialErr\n };\n\n if (true) {\n _context.next = 38;\n break;\n }\n\n render(renderCtx);\n return _context.abrupt(\"return\", emitter);\n\n case 38:\n return _context.abrupt(\"return\", {\n emitter: emitter,\n render: render,\n renderCtx: renderCtx\n });\n\n case 39:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[10, 23]]);\n }));\n\n return function _default() {\n return _ref3.apply(this, arguments);\n };\n}();\n\nexports[\"default\"] = _default;\n\nfunction render(_x) {\n return _render.apply(this, arguments);\n} // This method handles all runtime and debug errors.\n// 404 and 500 errors are special kind of errors\n// and they are still handle via the main render method.\n\n\nfunction _render() {\n _render = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(renderingProps) {\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (!renderingProps.err) {\n _context2.next = 4;\n break;\n }\n\n _context2.next = 3;\n return renderError(renderingProps);\n\n case 3:\n return _context2.abrupt(\"return\");\n\n case 4:\n _context2.prev = 4;\n _context2.next = 7;\n return doRender(renderingProps);\n\n case 7:\n _context2.next = 16;\n break;\n\n case 9:\n _context2.prev = 9;\n _context2.t0 = _context2[\"catch\"](4);\n\n if (!_context2.t0.cancelled) {\n _context2.next = 13;\n break;\n }\n\n throw _context2.t0;\n\n case 13:\n if (true) {\n // Ensure this error is displayed in the overlay in development\n setTimeout(function () {\n throw _context2.t0;\n });\n }\n\n _context2.next = 16;\n return renderError((0, _extends2[\"default\"])({}, renderingProps, {\n err: _context2.t0\n }));\n\n case 16:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, null, [[4, 9]]);\n }));\n return _render.apply(this, arguments);\n}\n\nfunction renderError(renderErrorProps) {\n var App = renderErrorProps.App,\n err = renderErrorProps.err; // In development runtime errors are caught by our overlay\n // In production we catch runtime errors using componentDidCatch which will trigger renderError\n\n if (true) {\n // A Next.js rendering runtime error is always unrecoverable\n // FIXME: let's make this recoverable (error in GIP client-transition)\n webpackHMR.onUnrecoverableError(); // We need to render an empty so that the `` can\n // render itself.\n\n return doRender({\n App: function App() {\n return null;\n },\n props: {},\n Component: function Component() {\n return null;\n },\n styleSheets: []\n });\n }\n\n if (false) {} // Make sure we log the error to the console, otherwise users can't track down issues.\n\n\n console.error(err);\n return pageLoader.loadPage('/_error').then(function (_ref6) {\n var ErrorComponent = _ref6.page,\n styleSheets = _ref6.styleSheets;\n // In production we do a normal render with the `ErrorComponent` as component.\n // If we've gotten here upon initial render, we can use the props from the server.\n // Otherwise, we need to call `getInitialProps` on `App` before mounting.\n var AppTree = wrapApp(App);\n var appCtx = {\n Component: ErrorComponent,\n AppTree: AppTree,\n router: router,\n ctx: {\n err: err,\n pathname: page,\n query: query,\n asPath: asPath,\n AppTree: AppTree\n }\n };\n return Promise.resolve(renderErrorProps.props ? renderErrorProps.props : (0, _utils.loadGetInitialProps)(App, appCtx)).then(function (initProps) {\n return doRender((0, _extends2[\"default\"])({}, renderErrorProps, {\n err: err,\n Component: ErrorComponent,\n styleSheets: styleSheets,\n props: initProps\n }));\n });\n });\n} // If hydrate does not exist, eg in preact.\n\n\nvar isInitialRender = typeof _reactDom[\"default\"].hydrate === 'function';\nvar reactRoot = null;\n\nfunction renderReactElement(reactEl, domEl) {\n if (false) { var opts; } else {\n // mark start of hydrate/render\n if (_utils.ST) {\n performance.mark('beforeRender');\n } // The check for `.hydrate` is there to support React alternatives like preact\n\n\n if (isInitialRender) {\n _reactDom[\"default\"].hydrate(reactEl, domEl, markHydrateComplete);\n\n isInitialRender = false;\n\n if (onPerfEntry && _utils.ST) {\n (0, _performanceRelayer[\"default\"])(onPerfEntry);\n }\n } else {\n _reactDom[\"default\"].render(reactEl, domEl, markRenderComplete);\n }\n }\n}\n\nfunction markHydrateComplete() {\n if (!_utils.ST) return;\n performance.mark('afterHydrate'); // mark end of hydration\n\n performance.measure('Next.js-before-hydration', 'navigationStart', 'beforeRender');\n performance.measure('Next.js-hydration', 'beforeRender', 'afterHydrate');\n\n if (onPerfEntry) {\n performance.getEntriesByName('Next.js-hydration').forEach(onPerfEntry);\n }\n\n clearMarks();\n}\n\nfunction markRenderComplete() {\n if (!_utils.ST) return;\n performance.mark('afterRender'); // mark end of render\n\n var navStartEntries = performance.getEntriesByName('routeChange', 'mark');\n\n if (!navStartEntries.length) {\n return;\n }\n\n performance.measure('Next.js-route-change-to-render', navStartEntries[0].name, 'beforeRender');\n performance.measure('Next.js-render', 'beforeRender', 'afterRender');\n\n if (onPerfEntry) {\n performance.getEntriesByName('Next.js-render').forEach(onPerfEntry);\n performance.getEntriesByName('Next.js-route-change-to-render').forEach(onPerfEntry);\n }\n\n clearMarks();\n ['Next.js-route-change-to-render', 'Next.js-render'].forEach(function (measure) {\n return performance.clearMeasures(measure);\n });\n}\n\nfunction clearMarks() {\n ;\n ['beforeRender', 'afterHydrate', 'afterRender', 'routeChange'].forEach(function (mark) {\n return performance.clearMarks(mark);\n });\n}\n\nfunction AppContainer(_ref7) {\n var children = _ref7.children;\n return /*#__PURE__*/_react[\"default\"].createElement(Container, {\n fn: function fn(error) {\n return renderError({\n App: CachedApp,\n err: error\n })[\"catch\"](function (err) {\n return console.error('Error rendering page: ', err);\n });\n }\n }, /*#__PURE__*/_react[\"default\"].createElement(_routerContext.RouterContext.Provider, {\n value: (0, _router2.makePublicRouterInstance)(router)\n }, /*#__PURE__*/_react[\"default\"].createElement(_headManagerContext.HeadManagerContext.Provider, {\n value: headManager\n }, children)));\n}\n\n_c = AppContainer;\n\nvar wrapApp = function wrapApp(App) {\n return function (wrappedAppProps) {\n var appProps = (0, _extends2[\"default\"])({}, wrappedAppProps, {\n Component: CachedComponent,\n err: hydrateErr,\n router: router\n });\n return /*#__PURE__*/_react[\"default\"].createElement(AppContainer, null, /*#__PURE__*/_react[\"default\"].createElement(App, appProps));\n };\n};\n\nfunction doRender(_ref8) {\n var App = _ref8.App,\n Component = _ref8.Component,\n props = _ref8.props,\n err = _ref8.err,\n styleSheets = _ref8.styleSheets;\n Component = Component || lastAppProps.Component;\n props = props || lastAppProps.props;\n var appProps = (0, _extends2[\"default\"])({}, props, {\n Component: Component,\n err: err,\n router: router\n }); // lastAppProps has to be set before ReactDom.render to account for ReactDom throwing an error.\n\n lastAppProps = appProps;\n var canceled = false;\n var resolvePromise;\n var renderPromise = new Promise(function (resolve, reject) {\n if (_lastRenderReject) {\n _lastRenderReject();\n }\n\n resolvePromise = function resolvePromise() {\n _lastRenderReject = null;\n resolve();\n };\n\n _lastRenderReject = function lastRenderReject() {\n canceled = true;\n _lastRenderReject = null;\n var error = new Error('Cancel rendering route');\n error.cancelled = true;\n reject(error);\n };\n }); // This function has a return type to ensure it doesn't start returning a\n // Promise. It should remain synchronous.\n\n function onStart() {\n if ( // We can skip this during hydration. Running it wont cause any harm, but\n // we may as well save the CPU cycles.\n isInitialRender || // We use `style-loader` in development, so we don't need to do anything\n // unless we're in production:\n true) {\n return false;\n }\n\n var currentStyleTags = (0, _pageLoader.looseToArray)(document.querySelectorAll('style[data-n-href]'));\n var currentHrefs = new Set(currentStyleTags.map(function (tag) {\n return tag.getAttribute('data-n-href');\n }));\n styleSheets.forEach(function (_ref9) {\n var href = _ref9.href,\n text = _ref9.text;\n\n if (!currentHrefs.has(href)) {\n var styleTag = document.createElement('style');\n styleTag.setAttribute('data-n-href', href);\n styleTag.setAttribute('media', 'x');\n document.head.appendChild(styleTag);\n styleTag.appendChild(document.createTextNode(text));\n }\n });\n return true;\n }\n\n function onCommit() {\n if ( // We use `style-loader` in development, so we don't need to do anything\n // unless we're in production:\n false) { var referenceNode, idx, currentHrefs, currentStyleTags, desiredHrefs; }\n\n resolvePromise();\n }\n\n var elem = /*#__PURE__*/_react[\"default\"].createElement(Root, {\n callback: onCommit\n }, /*#__PURE__*/_react[\"default\"].createElement(AppContainer, null, /*#__PURE__*/_react[\"default\"].createElement(App, appProps)));\n\n onStart(); // We catch runtime errors using componentDidCatch which will trigger renderError\n\n renderReactElement( false ? /*#__PURE__*/undefined : elem, appElement);\n return renderPromise;\n}\n\nfunction Root(_ref11) {\n _s();\n\n var callback = _ref11.callback,\n children = _ref11.children;\n\n // We use `useLayoutEffect` to guarantee the callback is executed\n // as soon as React flushes the update.\n _react[\"default\"].useLayoutEffect(function () {\n return callback();\n }, [callback]);\n\n if (undefined) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n _react[\"default\"].useEffect(function () {\n window.__NEXT_HYDRATED = true;\n\n if (window.__NEXT_HYDRATED_CB) {\n window.__NEXT_HYDRATED_CB();\n }\n }, []);\n }\n\n return children;\n}\n\n_s(Root, \"Gjgl5rfcc2T4sFnfEMfRvL6K4Q4=\");\n\n_c2 = Root;\n\nvar _c, _c2;\n\n$RefreshReg$(_c, \"AppContainer\");\n$RefreshReg$(_c2, \"Root\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.i);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL2NsaWVudC9pbmRleC50c3g/OGFiZiJdLCJuYW1lcyI6WyJkYXRhIiwiSlNPTiIsImRvY3VtZW50Iiwid2luZG93IiwidmVyc2lvbiIsInByb2Nlc3MiLCJfX05FWFRfVkVSU0lPTiIsInByb3BzIiwiZXJyIiwiZHluYW1pY0lkcyIsImhlYWQiLCJkZWZhdWx0TG9jYWxlIiwibG9jYWxlIiwicHJlZml4IiwiX193ZWJwYWNrX3B1YmxpY19wYXRoX18iLCJlbnZDb25maWciLCJzZXJ2ZXJSdW50aW1lQ29uZmlnIiwicHVibGljUnVudGltZUNvbmZpZyIsInJ1bnRpbWVDb25maWciLCJhc1BhdGgiLCJwYWdlTG9hZGVyIiwiUGFnZUxvYWRlciIsInJlZ2lzdGVyIiwicCIsInNldFRpbWVvdXQiLCJoZWFkTWFuYWdlciIsImFwcEVsZW1lbnQiLCJjb21wb25lbnREaWRNb3VudCIsInJvdXRlciIsImlzRmFsbGJhY2siLCJsb2NhdGlvbiIsImh5ZHJhdGVQcm9wcyIsIlN0cmluZyIsInF1ZXJ5c3RyaW5nIiwiX2giLCJzaGFsbG93IiwiY29tcG9uZW50RGlkVXBkYXRlIiwic2Nyb2xsVG9IYXNoIiwiaGFzaCIsImVsIiwicmVuZGVyIiwicmVxdWlyZSIsIlJlYWN0IiwiQ29tcG9uZW50IiwiZW1pdHRlciIsIm9wdHMiLCJ3ZWJwYWNrSE1SIiwicGFnZSIsIkNhY2hlZEFwcCIsIm1vZCIsIm9uUGVyZkVudHJ5IiwidW5pcXVlSUQiLCJEYXRlIiwiTWF0aCIsImVudHJpZXMiLCJwZXJmU3RhcnRFbnRyeSIsImlkIiwibmFtZSIsInN0YXJ0VGltZSIsInZhbHVlIiwibGFiZWwiLCJlbnRyeVR5cGUiLCJpbml0aWFsRXJyIiwic3R5bGVTaGVldHMiLCJpc1ZhbGlkRWxlbWVudFR5cGUiLCJlcnJvciIsIm5vZGUiLCJnZXROb2RlRXJyb3IiLCJpbml0aWFsUHJvcHMiLCJBcHAiLCJpbml0aWFsU3R5bGVTaGVldHMiLCJ3cmFwQXBwIiwiQm9vbGVhbiIsInN1YnNjcmlwdGlvbiIsImxvY2FsZXMiLCJyZW5kZXJDdHgiLCJyZW5kZXJpbmdQcm9wcyIsInJlbmRlckVycm9yIiwiZG9SZW5kZXIiLCJyZW5kZXJFcnIiLCJjb25zb2xlIiwiQXBwVHJlZSIsImFwcEN0eCIsImN0eCIsInBhdGhuYW1lIiwicXVlcnkiLCJQcm9taXNlIiwicmVuZGVyRXJyb3JQcm9wcyIsImluaXRQcm9wcyIsImlzSW5pdGlhbFJlbmRlciIsIlJlYWN0RE9NIiwicmVhY3RSb290IiwiU1QiLCJwZXJmb3JtYW5jZSIsImNsZWFyTWFya3MiLCJuYXZTdGFydEVudHJpZXMiLCJtZWFzdXJlIiwibWFyayIsIndyYXBwZWRBcHBQcm9wcyIsImFwcFByb3BzIiwibGFzdEFwcFByb3BzIiwiY2FuY2VsZWQiLCJyZW5kZXJQcm9taXNlIiwibGFzdFJlbmRlclJlamVjdCIsInJlc29sdmVQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsImN1cnJlbnRTdHlsZVRhZ3MiLCJjdXJyZW50SHJlZnMiLCJ0YWciLCJzdHlsZVRhZyIsImVsZW0iLCJvblN0YXJ0IiwicmVuZGVyUmVhY3RFbGVtZW50IiwiY2FsbGJhY2siXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFPQTs7QUFLQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTtBQTFCQTs7O0FBZ0RBLElBQU1BLElBQW9DLEdBQUdDLElBQUksQ0FBSkEsTUFDM0NDLFFBQVEsQ0FBUkEsZ0NBREYsV0FBNkNELENBQTdDO0FBR0FFLE1BQU0sQ0FBTkE7QUFFTyxJQUFNQyxPQUFPLEdBQUdDLE9BQWhCO0FBQWdCQSxPQUFZQyxRQUFaRCxHQUFoQixPQUFnQkE7SUFFdkIsWSxHQUFNLEk7SUFDSkUsVSxHQURJLEksQ0FDSkEsRztJQURJLEksR0FBQSxJLENBQUEsSTtJQUVKQyxLLEdBRkks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QUErQjtBQUM3QkEsY0FBTSxDQUFOQTtBQUVIO0FBTkR1QztBQVFGOztBQUFBO0FBQ0Q7O0dBcEJELEk7O01BQUEsSSIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2luZGV4LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZ2xvYmFsIGxvY2F0aW9uICovXG5pbXBvcnQgJ0BuZXh0L3BvbHlmaWxsLW1vZHVsZSdcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nXG5pbXBvcnQgeyBIZWFkTWFuYWdlckNvbnRleHQgfSBmcm9tICcuLi9uZXh0LXNlcnZlci9saWIvaGVhZC1tYW5hZ2VyLWNvbnRleHQnXG5pbXBvcnQgbWl0dCBmcm9tICcuLi9uZXh0LXNlcnZlci9saWIvbWl0dCdcbmltcG9ydCB7IFJvdXRlckNvbnRleHQgfSBmcm9tICcuLi9uZXh0LXNlcnZlci9saWIvcm91dGVyLWNvbnRleHQnXG5pbXBvcnQgdHlwZSBSb3V0ZXIgZnJvbSAnLi4vbmV4dC1zZXJ2ZXIvbGliL3JvdXRlci9yb3V0ZXInXG5pbXBvcnQgdHlwZSB7XG4gIEFwcENvbXBvbmVudCxcbiAgQXBwUHJvcHMsXG4gIFByaXZhdGVSb3V0ZUluZm8sXG59IGZyb20gJy4uL25leHQtc2VydmVyL2xpYi9yb3V0ZXIvcm91dGVyJ1xuaW1wb3J0IHtcbiAgZGVsQmFzZVBhdGgsXG4gIGhhc0Jhc2VQYXRoLFxuICBkZWxMb2NhbGUsXG59IGZyb20gJy4uL25leHQtc2VydmVyL2xpYi9yb3V0ZXIvcm91dGVyJ1xuaW1wb3J0IHsgaXNEeW5hbWljUm91dGUgfSBmcm9tICcuLi9uZXh0LXNlcnZlci9saWIvcm91dGVyL3V0aWxzL2lzLWR5bmFtaWMnXG5pbXBvcnQgKiBhcyBxdWVyeXN0cmluZyBmcm9tICcuLi9uZXh0LXNlcnZlci9saWIvcm91dGVyL3V0aWxzL3F1ZXJ5c3RyaW5nJ1xuaW1wb3J0ICogYXMgZW52Q29uZmlnIGZyb20gJy4uL25leHQtc2VydmVyL2xpYi9ydW50aW1lLWNvbmZpZydcbmltcG9ydCB0eXBlIHsgTkVYVF9EQVRBIH0gZnJvbSAnLi4vbmV4dC1zZXJ2ZXIvbGliL3V0aWxzJ1xuaW1wb3J0IHsgZ2V0VVJMLCBsb2FkR2V0SW5pdGlhbFByb3BzLCBTVCB9IGZyb20gJy4uL25leHQtc2VydmVyL2xpYi91dGlscydcbmltcG9ydCBpbml0SGVhZE1hbmFnZXIgZnJvbSAnLi9oZWFkLW1hbmFnZXInXG5pbXBvcnQgUGFnZUxvYWRlciwgeyBsb29zZVRvQXJyYXksIFN0eWxlU2hlZXRUdXBsZSB9IGZyb20gJy4vcGFnZS1sb2FkZXInXG5pbXBvcnQgbWVhc3VyZVdlYlZpdGFscyBmcm9tICcuL3BlcmZvcm1hbmNlLXJlbGF5ZXInXG5pbXBvcnQgeyBjcmVhdGVSb3V0ZXIsIG1ha2VQdWJsaWNSb3V0ZXJJbnN0YW5jZSB9IGZyb20gJy4vcm91dGVyJ1xuXG4vLy8gPHJlZmVyZW5jZSB0eXBlcz1cInJlYWN0LWRvbS9leHBlcmltZW50YWxcIiAvPlxuXG5kZWNsYXJlIGxldCBfX3dlYnBhY2tfcHVibGljX3BhdGhfXzogc3RyaW5nXG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIFdpbmRvdyB7XG4gICAgLyogdGVzdCBmbnMgKi9cbiAgICBfX05FWFRfSFlEUkFURUQ/OiBib29sZWFuXG4gICAgX19ORVhUX0hZRFJBVEVEX0NCPzogKCkgPT4gdm9pZFxuXG4gICAgLyogcHJvZCAqL1xuICAgIF9fTkVYVF9QUkVMT0FEUkVBRFk/OiAoaWRzPzogc3RyaW5nW10pID0+IHZvaWRcbiAgICBfX05FWFRfREFUQV9fOiBORVhUX0RBVEFcbiAgICBfX05FWFRfUDogYW55W11cbiAgfVxufVxuXG50eXBlIFJlbmRlclJvdXRlSW5mbyA9IFByaXZhdGVSb3V0ZUluZm8gJiB7IEFwcDogQXBwQ29tcG9uZW50IH1cbnR5cGUgUmVuZGVyRXJyb3JQcm9wcyA9IE9taXQ8UmVuZGVyUm91dGVJbmZvLCAnQ29tcG9uZW50JyB8ICdzdHlsZVNoZWV0cyc+XG5cbmNvbnN0IGRhdGE6IHR5cGVvZiB3aW5kb3dbJ19fTkVYVF9EQVRBX18nXSA9IEpTT04ucGFyc2UoXG4gIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdfX05FWFRfREFUQV9fJykhLnRleHRDb250ZW50IVxuKVxud2luZG93Ll9fTkVYVF9EQVRBX18gPSBkYXRhXG5cbmV4cG9ydCBjb25zdCB2ZXJzaW9uID0gcHJvY2Vzcy5lbnYuX19ORVhUX1ZFUlNJT05cblxuY29uc3Qge1xuICBwcm9wczogaHlkcmF0ZVByb3BzLFxuICBlcnI6IGh5ZHJhdGVFcnIsXG4gIHBhZ2UsXG4gIHF1ZXJ5LFxuICBidWlsZElkLFxuICBhc3NldFByZWZpeCxcbiAgcnVudGltZUNvbmZpZyxcbiAgZHluYW1pY0lkcyxcbiAgaXNGYWxsYmFjayxcbiAgaGVhZDogaW5pdGlhbEhlYWREYXRhLFxuICBsb2NhbGVzLFxuICBkZWZhdWx0TG9jYWxlLFxufSA9IGRhdGFcblxubGV0IHsgbG9jYWxlIH0gPSBkYXRhXG5cbmNvbnN0IHByZWZpeCA9IGFzc2V0UHJlZml4IHx8ICcnXG5cbi8vIFdpdGggZHluYW1pYyBhc3NldFByZWZpeCBpdCdzIG5vIGxvbmdlciBwb3NzaWJsZSB0byBzZXQgYXNzZXRQcmVmaXggYXQgdGhlIGJ1aWxkIHRpbWVcbi8vIFNvLCB0aGlzIGlzIGhvdyB3ZSBkbyBpdCBpbiB0aGUgY2xpZW50IHNpZGUgYXQgcnVudGltZVxuX193ZWJwYWNrX3B1YmxpY19wYXRoX18gPSBgJHtwcmVmaXh9L19uZXh0L2AgLy9lc2xpbnQtZGlzYWJsZS1saW5lXG4vLyBJbml0aWFsaXplIG5leHQvY29uZmlnIHdpdGggdGhlIGVudmlyb25tZW50IGNvbmZpZ3VyYXRpb25cbmVudkNvbmZpZy5zZXRDb25maWcoe1xuICBzZXJ2ZXJSdW50aW1lQ29uZmlnOiB7fSxcbiAgcHVibGljUnVudGltZUNvbmZpZzogcnVudGltZUNvbmZpZyB8fCB7fSxcbn0pXG5cbmxldCBhc1BhdGggPSBnZXRVUkwoKVxuXG4vLyBtYWtlIHN1cmUgbm90IHRvIGF0dGVtcHQgc3RyaXBwaW5nIGJhc2VQYXRoIGZvciA0MDRzXG5pZiAoaGFzQmFzZVBhdGgoYXNQYXRoKSkge1xuICBhc1BhdGggPSBkZWxCYXNlUGF0aChhc1BhdGgpXG59XG5cbmFzUGF0aCA9IGRlbExvY2FsZShhc1BhdGgsIGxvY2FsZSlcblxuaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9pMThuX1NVUFBPUlQpIHtcbiAgY29uc3Qge1xuICAgIG5vcm1hbGl6ZUxvY2FsZVBhdGgsXG4gIH0gPSByZXF1aXJlKCcuLi9uZXh0LXNlcnZlci9saWIvaTE4bi9ub3JtYWxpemUtbG9jYWxlLXBhdGgnKVxuXG4gIGlmIChpc0ZhbGxiYWNrICYmIGxvY2FsZXMpIHtcbiAgICBjb25zdCBsb2NhbGVQYXRoUmVzdWx0ID0gbm9ybWFsaXplTG9jYWxlUGF0aChhc1BhdGgsIGxvY2FsZXMpXG5cbiAgICBpZiAobG9jYWxlUGF0aFJlc3VsdC5kZXRlY3RlZExvY2FsZSkge1xuICAgICAgYXNQYXRoID0gYXNQYXRoLnN1YnN0cihsb2NhbGVQYXRoUmVzdWx0LmRldGVjdGVkTG9jYWxlLmxlbmd0aCArIDEpXG4gICAgICBsb2NhbGUgPSBsb2NhbGVQYXRoUmVzdWx0LmRldGVjdGVkTG9jYWxlXG4gICAgfVxuICB9XG59XG5cbnR5cGUgUmVnaXN0ZXJGbiA9IChpbnB1dDogW3N0cmluZywgKCkgPT4gdm9pZF0pID0+IHZvaWRcblxuY29uc3QgcGFnZUxvYWRlciA9IG5ldyBQYWdlTG9hZGVyKGJ1aWxkSWQsIHByZWZpeCwgcGFnZSlcbmNvbnN0IHJlZ2lzdGVyOiBSZWdpc3RlckZuID0gKFtyLCBmXSkgPT4gcGFnZUxvYWRlci5yZWdpc3RlclBhZ2UociwgZilcbmlmICh3aW5kb3cuX19ORVhUX1ApIHtcbiAgLy8gRGVmZXIgcGFnZSByZWdpc3RyYXRpb24gZm9yIGFub3RoZXIgdGljay4gVGhpcyB3aWxsIGluY3JlYXNlIHRoZSBvdmVyYWxsXG4gIC8vIGxhdGVuY3kgaW4gaHlkcmF0aW5nIHRoZSBwYWdlLCBidXQgcmVkdWNlIHRoZSB0b3RhbCBibG9ja2luZyB0aW1lLlxuICB3aW5kb3cuX19ORVhUX1AubWFwKChwKSA9PiBzZXRUaW1lb3V0KCgpID0+IHJlZ2lzdGVyKHApLCAwKSlcbn1cbndpbmRvdy5fX05FWFRfUCA9IFtdXG47KHdpbmRvdy5fX05FWFRfUCBhcyBhbnkpLnB1c2ggPSByZWdpc3RlclxuXG5jb25zdCBoZWFkTWFuYWdlciA9IGluaXRIZWFkTWFuYWdlcihpbml0aWFsSGVhZERhdGEpXG5jb25zdCBhcHBFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ19fbmV4dCcpXG5cbmxldCBsYXN0QXBwUHJvcHM6IEFwcFByb3BzXG5sZXQgbGFzdFJlbmRlclJlamVjdDogKCgpID0+IHZvaWQpIHwgbnVsbFxubGV0IHdlYnBhY2tITVI6IGFueVxuZXhwb3J0IGxldCByb3V0ZXI6IFJvdXRlclxubGV0IENhY2hlZENvbXBvbmVudDogUmVhY3QuQ29tcG9uZW50VHlwZVxubGV0IGNhY2hlZFN0eWxlU2hlZXRzOiBTdHlsZVNoZWV0VHVwbGVbXVxubGV0IENhY2hlZEFwcDogQXBwQ29tcG9uZW50LCBvblBlcmZFbnRyeTogKG1ldHJpYzogYW55KSA9PiB2b2lkXG5cbmNsYXNzIENvbnRhaW5lciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDx7XG4gIGZuOiAoZXJyOiBFcnJvciwgaW5mbz86IGFueSkgPT4gdm9pZFxufT4ge1xuICBjb21wb25lbnREaWRDYXRjaChjb21wb25lbnRFcnI6IEVycm9yLCBpbmZvOiBhbnkpIHtcbiAgICB0aGlzLnByb3BzLmZuKGNvbXBvbmVudEVyciwgaW5mbylcbiAgfVxuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIHRoaXMuc2Nyb2xsVG9IYXNoKClcblxuICAgIC8vIFdlIG5lZWQgdG8gcmVwbGFjZSB0aGUgcm91dGVyIHN0YXRlIGlmOlxuICAgIC8vIC0gdGhlIHBhZ2Ugd2FzIChhdXRvKSBleHBvcnRlZCBhbmQgaGFzIGEgcXVlcnkgc3RyaW5nIG9yIHNlYXJjaCAoaGFzaClcbiAgICAvLyAtIGl0IHdhcyBhdXRvIGV4cG9ydGVkIGFuZCBpcyBhIGR5bmFtaWMgcm91dGUgKHRvIHByb3ZpZGUgcGFyYW1zKVxuICAgIC8vIC0gaWYgaXQgaXMgYSBjbGllbnQtc2lkZSBza2VsZXRvbiAoZmFsbGJhY2sgcmVuZGVyKVxuICAgIGlmIChcbiAgICAgIHJvdXRlci5pc1NzciAmJlxuICAgICAgKGlzRmFsbGJhY2sgfHxcbiAgICAgICAgKGRhdGEubmV4dEV4cG9ydCAmJlxuICAgICAgICAgIChpc0R5bmFtaWNSb3V0ZShyb3V0ZXIucGF0aG5hbWUpIHx8IGxvY2F0aW9uLnNlYXJjaCkpIHx8XG4gICAgICAgIChoeWRyYXRlUHJvcHMgJiYgaHlkcmF0ZVByb3BzLl9fTl9TU0cgJiYgbG9jYXRpb24uc2VhcmNoKSlcbiAgICApIHtcbiAgICAgIC8vIHVwZGF0ZSBxdWVyeSBvbiBtb3VudCBmb3IgZXhwb3J0ZWQgcGFnZXNcbiAgICAgIHJvdXRlci5yZXBsYWNlKFxuICAgICAgICByb3V0ZXIucGF0aG5hbWUgK1xuICAgICAgICAgICc/JyArXG4gICAgICAgICAgU3RyaW5nKFxuICAgICAgICAgICAgcXVlcnlzdHJpbmcuYXNzaWduKFxuICAgICAgICAgICAgICBxdWVyeXN0cmluZy51cmxRdWVyeVRvU2VhcmNoUGFyYW1zKHJvdXRlci5xdWVyeSksXG4gICAgICAgICAgICAgIG5ldyBVUkxTZWFyY2hQYXJhbXMobG9jYXRpb24uc2VhcmNoKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICksXG4gICAgICAgIGFzUGF0aCxcbiAgICAgICAge1xuICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAvLyBXQVJOSU5HOiBgX2hgIGlzIGFuIGludGVybmFsIG9wdGlvbiBmb3IgaGFuZGluZyBOZXh0LmpzXG4gICAgICAgICAgLy8gY2xpZW50LXNpZGUgaHlkcmF0aW9uLiBZb3VyIGFwcCBzaG91bGQgX25ldmVyXyB1c2UgdGhpcyBwcm9wZXJ0eS5cbiAgICAgICAgICAvLyBJdCBtYXkgY2hhbmdlIGF0IGFueSB0aW1lIHdpdGhvdXQgbm90aWNlLlxuICAgICAgICAgIF9oOiAxLFxuICAgICAgICAgIC8vIEZhbGxiYWNrIHBhZ2VzIG11c3QgdHJpZ2dlciB0aGUgZGF0YSBmZXRjaCwgc28gdGhlIHRyYW5zaXRpb24gaXNcbiAgICAgICAgICAvLyBub3Qgc2hhbGxvdy5cbiAgICAgICAgICAvLyBPdGhlciBwYWdlcyAoc3RyaWN0bHkgdXBkYXRpbmcgcXVlcnkpIGhhcHBlbnMgc2hhbGxvd2x5LCBhcyBkYXRhXG4gICAgICAgICAgLy8gcmVxdWlyZW1lbnRzIHdvdWxkIGFscmVhZHkgYmUgcHJlc2VudC5cbiAgICAgICAgICBzaGFsbG93OiAhaXNGYWxsYmFjayxcbiAgICAgICAgfVxuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICB0aGlzLnNjcm9sbFRvSGFzaCgpXG4gIH1cblxuICBzY3JvbGxUb0hhc2goKSB7XG4gICAgbGV0IHsgaGFzaCB9ID0gbG9jYXRpb25cbiAgICBoYXNoID0gaGFzaCAmJiBoYXNoLnN1YnN0cmluZygxKVxuICAgIGlmICghaGFzaCkgcmV0dXJuXG5cbiAgICBjb25zdCBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGhhc2gpXG4gICAgaWYgKCFlbCkgcmV0dXJuXG5cbiAgICAvLyBJZiB3ZSBjYWxsIHNjcm9sbEludG9WaWV3KCkgaW4gaGVyZSB3aXRob3V0IGEgc2V0VGltZW91dFxuICAgIC8vIGl0IHdvbid0IHNjcm9sbCBwcm9wZXJseS5cbiAgICBzZXRUaW1lb3V0KCgpID0+IGVsLnNjcm9sbEludG9WaWV3KCksIDApXG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLmNoaWxkcmVuXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHsgUmVhY3REZXZPdmVybGF5IH0gPSByZXF1aXJlKCdAbmV4dC9yZWFjdC1kZXYtb3ZlcmxheS9saWIvY2xpZW50JylcbiAgICAgIHJldHVybiA8UmVhY3REZXZPdmVybGF5Pnt0aGlzLnByb3BzLmNoaWxkcmVufTwvUmVhY3REZXZPdmVybGF5PlxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY29uc3QgZW1pdHRlciA9IG1pdHQoKVxuXG5leHBvcnQgZGVmYXVsdCBhc3luYyAob3B0czogeyB3ZWJwYWNrSE1SPzogYW55IH0gPSB7fSkgPT4ge1xuICAvLyBUaGlzIG1ha2VzIHN1cmUgdGhpcyBzcGVjaWZpYyBsaW5lcyBhcmUgcmVtb3ZlZCBpbiBwcm9kdWN0aW9uXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgIHdlYnBhY2tITVIgPSBvcHRzLndlYnBhY2tITVJcbiAgfVxuICBjb25zdCB7IHBhZ2U6IGFwcCwgbW9kIH0gPSBhd2FpdCBwYWdlTG9hZGVyLmxvYWRQYWdlKCcvX2FwcCcpXG4gIENhY2hlZEFwcCA9IGFwcCBhcyBBcHBDb21wb25lbnRcblxuICBpZiAobW9kICYmIG1vZC5yZXBvcnRXZWJWaXRhbHMpIHtcbiAgICBvblBlcmZFbnRyeSA9ICh7XG4gICAgICBpZCxcbiAgICAgIG5hbWUsXG4gICAgICBzdGFydFRpbWUsXG4gICAgICB2YWx1ZSxcbiAgICAgIGR1cmF0aW9uLFxuICAgICAgZW50cnlUeXBlLFxuICAgICAgZW50cmllcyxcbiAgICB9KSA9PiB7XG4gICAgICAvLyBDb21iaW5lcyB0aW1lc3RhbXAgd2l0aCByYW5kb20gbnVtYmVyIGZvciB1bmlxdWUgSURcbiAgICAgIGNvbnN0IHVuaXF1ZUlEID0gYCR7RGF0ZS5ub3coKX0tJHtcbiAgICAgICAgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKDllMTIgLSAxKSkgKyAxZTEyXG4gICAgICB9YFxuICAgICAgbGV0IHBlcmZTdGFydEVudHJ5XG5cbiAgICAgIGlmIChlbnRyaWVzICYmIGVudHJpZXMubGVuZ3RoKSB7XG4gICAgICAgIHBlcmZTdGFydEVudHJ5ID0gZW50cmllc1swXS5zdGFydFRpbWVcbiAgICAgIH1cblxuICAgICAgbW9kLnJlcG9ydFdlYlZpdGFscyh7XG4gICAgICAgIGlkOiBpZCB8fCB1bmlxdWVJRCxcbiAgICAgICAgbmFtZSxcbiAgICAgICAgc3RhcnRUaW1lOiBzdGFydFRpbWUgfHwgcGVyZlN0YXJ0RW50cnksXG4gICAgICAgIHZhbHVlOiB2YWx1ZSA9PSBudWxsID8gZHVyYXRpb24gOiB2YWx1ZSxcbiAgICAgICAgbGFiZWw6XG4gICAgICAgICAgZW50cnlUeXBlID09PSAnbWFyaycgfHwgZW50cnlUeXBlID09PSAnbWVhc3VyZSdcbiAgICAgICAgICAgID8gJ2N1c3RvbSdcbiAgICAgICAgICAgIDogJ3dlYi12aXRhbCcsXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIGxldCBpbml0aWFsRXJyID0gaHlkcmF0ZUVyclxuXG4gIHRyeSB7XG4gICAgOyh7XG4gICAgICBwYWdlOiBDYWNoZWRDb21wb25lbnQsXG4gICAgICBzdHlsZVNoZWV0czogY2FjaGVkU3R5bGVTaGVldHMsXG4gICAgfSA9IGF3YWl0IHBhZ2VMb2FkZXIubG9hZFBhZ2UocGFnZSkpXG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgY29uc3QgeyBpc1ZhbGlkRWxlbWVudFR5cGUgfSA9IHJlcXVpcmUoJ3JlYWN0LWlzJylcbiAgICAgIGlmICghaXNWYWxpZEVsZW1lbnRUeXBlKENhY2hlZENvbXBvbmVudCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBUaGUgZGVmYXVsdCBleHBvcnQgaXMgbm90IGEgUmVhY3QgQ29tcG9uZW50IGluIHBhZ2U6IFwiJHtwYWdlfVwiYFxuICAgICAgICApXG4gICAgICB9XG4gICAgfVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIC8vIFRoaXMgY2F0Y2hlcyBlcnJvcnMgbGlrZSB0aHJvd2luZyBpbiB0aGUgdG9wIGxldmVsIG9mIGEgbW9kdWxlXG4gICAgaW5pdGlhbEVyciA9IGVycm9yXG4gIH1cblxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICBjb25zdCB7IGdldE5vZGVFcnJvciB9ID0gcmVxdWlyZSgnQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2NsaWVudCcpXG4gICAgLy8gU2VydmVyLXNpZGUgcnVudGltZSBlcnJvcnMgbmVlZCB0byBiZSByZS10aHJvd24gb24gdGhlIGNsaWVudC1zaWRlIHNvXG4gICAgLy8gdGhhdCB0aGUgb3ZlcmxheSBpcyByZW5kZXJlZC5cbiAgICBpZiAoaW5pdGlhbEVycikge1xuICAgICAgaWYgKGluaXRpYWxFcnIgPT09IGh5ZHJhdGVFcnIpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgbGV0IGVycm9yXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIC8vIEdlbmVyYXRlIGEgbmV3IGVycm9yIG9iamVjdC4gV2UgYHRocm93YCBpdCBiZWNhdXNlIHNvbWUgYnJvd3NlcnNcbiAgICAgICAgICAgIC8vIHdpbGwgc2V0IHRoZSBgc3RhY2tgIHdoZW4gdGhyb3duLCBhbmQgd2Ugd2FudCB0byBlbnN1cmUgb3VycyBpc1xuICAgICAgICAgICAgLy8gbm90IG92ZXJyaWRkZW4gd2hlbiB3ZSByZS10aHJvdyBpdCBiZWxvdy5cbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihpbml0aWFsRXJyIS5tZXNzYWdlKVxuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGVycm9yID0gZVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGVycm9yLm5hbWUgPSBpbml0aWFsRXJyIS5uYW1lXG4gICAgICAgICAgZXJyb3Iuc3RhY2sgPSBpbml0aWFsRXJyIS5zdGFja1xuXG4gICAgICAgICAgY29uc3Qgbm9kZSA9IGdldE5vZGVFcnJvcihlcnJvcilcbiAgICAgICAgICB0aHJvdyBub2RlXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgICAvLyBXZSByZXBsYWNlZCB0aGUgc2VydmVyLXNpZGUgZXJyb3Igd2l0aCBhIGNsaWVudC1zaWRlIGVycm9yLCBhbmQgc2hvdWxkXG4gICAgICAvLyBubyBsb25nZXIgcmV3cml0ZSB0aGUgc3RhY2sgdHJhY2UgdG8gYSBOb2RlIGVycm9yLlxuICAgICAgZWxzZSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRocm93IGluaXRpYWxFcnJcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAod2luZG93Ll9fTkVYVF9QUkVMT0FEUkVBRFkpIHtcbiAgICBhd2FpdCB3aW5kb3cuX19ORVhUX1BSRUxPQURSRUFEWShkeW5hbWljSWRzKVxuICB9XG5cbiAgcm91dGVyID0gY3JlYXRlUm91dGVyKHBhZ2UsIHF1ZXJ5LCBhc1BhdGgsIHtcbiAgICBpbml0aWFsUHJvcHM6IGh5ZHJhdGVQcm9wcyxcbiAgICBwYWdlTG9hZGVyLFxuICAgIEFwcDogQ2FjaGVkQXBwLFxuICAgIENvbXBvbmVudDogQ2FjaGVkQ29tcG9uZW50LFxuICAgIGluaXRpYWxTdHlsZVNoZWV0czogY2FjaGVkU3R5bGVTaGVldHMsXG4gICAgd3JhcEFwcCxcbiAgICBlcnI6IGluaXRpYWxFcnIsXG4gICAgaXNGYWxsYmFjazogQm9vbGVhbihpc0ZhbGxiYWNrKSxcbiAgICBzdWJzY3JpcHRpb246ICh7IENvbXBvbmVudCwgc3R5bGVTaGVldHMsIHByb3BzLCBlcnIgfSwgQXBwKSA9PlxuICAgICAgcmVuZGVyKHsgQXBwLCBDb21wb25lbnQsIHN0eWxlU2hlZXRzLCBwcm9wcywgZXJyIH0pLFxuICAgIGxvY2FsZSxcbiAgICBsb2NhbGVzLFxuICAgIGRlZmF1bHRMb2NhbGUsXG4gIH0pXG5cbiAgLy8gY2FsbCBpbml0LWNsaWVudCBtaWRkbGV3YXJlXG4gIGlmIChwcm9jZXNzLmVudi5fX05FWFRfUExVR0lOUykge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBpbXBvcnQoJ25leHQtcGx1Z2luLWxvYWRlcj9taWRkbGV3YXJlPW9uLWluaXQtY2xpZW50IScpXG4gICAgICAudGhlbigoaW5pdENsaWVudE1vZHVsZSkgPT4ge1xuICAgICAgICByZXR1cm4gaW5pdENsaWVudE1vZHVsZS5kZWZhdWx0KHsgcm91dGVyIH0pXG4gICAgICB9KVxuICAgICAgLmNhdGNoKChpbml0Q2xpZW50RXJyKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGNhbGxpbmcgY2xpZW50LWluaXQgZm9yIHBsdWdpbnMnLCBpbml0Q2xpZW50RXJyKVxuICAgICAgfSlcbiAgfVxuXG4gIGNvbnN0IHJlbmRlckN0eCA9IHtcbiAgICBBcHA6IENhY2hlZEFwcCxcbiAgICBDb21wb25lbnQ6IENhY2hlZENvbXBvbmVudCxcbiAgICBzdHlsZVNoZWV0czogY2FjaGVkU3R5bGVTaGVldHMsXG4gICAgcHJvcHM6IGh5ZHJhdGVQcm9wcyxcbiAgICBlcnI6IGluaXRpYWxFcnIsXG4gIH1cblxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICAgIHJlbmRlcihyZW5kZXJDdHgpXG4gICAgcmV0dXJuIGVtaXR0ZXJcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4geyBlbWl0dGVyLCByZW5kZXIsIHJlbmRlckN0eCB9XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlbmRlcihyZW5kZXJpbmdQcm9wczogUmVuZGVyUm91dGVJbmZvKSB7XG4gIGlmIChyZW5kZXJpbmdQcm9wcy5lcnIpIHtcbiAgICBhd2FpdCByZW5kZXJFcnJvcihyZW5kZXJpbmdQcm9wcylcbiAgICByZXR1cm5cbiAgfVxuXG4gIHRyeSB7XG4gICAgYXdhaXQgZG9SZW5kZXIocmVuZGVyaW5nUHJvcHMpXG4gIH0gY2F0Y2ggKHJlbmRlckVycikge1xuICAgIC8vIGJ1YmJsZSB1cCBjYW5jZWxhdGlvbiBlcnJvcnNcbiAgICBpZiAocmVuZGVyRXJyLmNhbmNlbGxlZCkge1xuICAgICAgdGhyb3cgcmVuZGVyRXJyXG4gICAgfVxuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAvLyBFbnN1cmUgdGhpcyBlcnJvciBpcyBkaXNwbGF5ZWQgaW4gdGhlIG92ZXJsYXkgaW4gZGV2ZWxvcG1lbnRcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aHJvdyByZW5kZXJFcnJcbiAgICAgIH0pXG4gICAgfVxuICAgIGF3YWl0IHJlbmRlckVycm9yKHsgLi4ucmVuZGVyaW5nUHJvcHMsIGVycjogcmVuZGVyRXJyIH0pXG4gIH1cbn1cblxuLy8gVGhpcyBtZXRob2QgaGFuZGxlcyBhbGwgcnVudGltZSBhbmQgZGVidWcgZXJyb3JzLlxuLy8gNDA0IGFuZCA1MDAgZXJyb3JzIGFyZSBzcGVjaWFsIGtpbmQgb2YgZXJyb3JzXG4vLyBhbmQgdGhleSBhcmUgc3RpbGwgaGFuZGxlIHZpYSB0aGUgbWFpbiByZW5kZXIgbWV0aG9kLlxuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlckVycm9yKHJlbmRlckVycm9yUHJvcHM6IFJlbmRlckVycm9yUHJvcHMpIHtcbiAgY29uc3QgeyBBcHAsIGVyciB9ID0gcmVuZGVyRXJyb3JQcm9wc1xuXG4gIC8vIEluIGRldmVsb3BtZW50IHJ1bnRpbWUgZXJyb3JzIGFyZSBjYXVnaHQgYnkgb3VyIG92ZXJsYXlcbiAgLy8gSW4gcHJvZHVjdGlvbiB3ZSBjYXRjaCBydW50aW1lIGVycm9ycyB1c2luZyBjb21wb25lbnREaWRDYXRjaCB3aGljaCB3aWxsIHRyaWdnZXIgcmVuZGVyRXJyb3JcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAvLyBBIE5leHQuanMgcmVuZGVyaW5nIHJ1bnRpbWUgZXJyb3IgaXMgYWx3YXlzIHVucmVjb3ZlcmFibGVcbiAgICAvLyBGSVhNRTogbGV0J3MgbWFrZSB0aGlzIHJlY292ZXJhYmxlIChlcnJvciBpbiBHSVAgY2xpZW50LXRyYW5zaXRpb24pXG4gICAgd2VicGFja0hNUi5vblVucmVjb3ZlcmFibGVFcnJvcigpXG5cbiAgICAvLyBXZSBuZWVkIHRvIHJlbmRlciBhbiBlbXB0eSA8QXBwPiBzbyB0aGF0IHRoZSBgPFJlYWN0RGV2T3ZlcmxheT5gIGNhblxuICAgIC8vIHJlbmRlciBpdHNlbGYuXG4gICAgcmV0dXJuIGRvUmVuZGVyKHtcbiAgICAgIEFwcDogKCkgPT4gbnVsbCxcbiAgICAgIHByb3BzOiB7fSxcbiAgICAgIENvbXBvbmVudDogKCkgPT4gbnVsbCxcbiAgICAgIHN0eWxlU2hlZXRzOiBbXSxcbiAgICB9KVxuICB9XG4gIGlmIChwcm9jZXNzLmVudi5fX05FWFRfUExVR0lOUykge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBpbXBvcnQoJ25leHQtcGx1Z2luLWxvYWRlcj9taWRkbGV3YXJlPW9uLWVycm9yLWNsaWVudCEnKVxuICAgICAgLnRoZW4oKG9uQ2xpZW50RXJyb3JNb2R1bGUpID0+IHtcbiAgICAgICAgcmV0dXJuIG9uQ2xpZW50RXJyb3JNb2R1bGUuZGVmYXVsdCh7IGVyciB9KVxuICAgICAgfSlcbiAgICAgIC5jYXRjaCgob25DbGllbnRFcnJvckVycikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICdlcnJvciBjYWxsaW5nIG9uLWVycm9yLWNsaWVudCBmb3IgcGx1Z2lucycsXG4gICAgICAgICAgb25DbGllbnRFcnJvckVyclxuICAgICAgICApXG4gICAgICB9KVxuICB9XG5cbiAgLy8gTWFrZSBzdXJlIHdlIGxvZyB0aGUgZXJyb3IgdG8gdGhlIGNvbnNvbGUsIG90aGVyd2lzZSB1c2VycyBjYW4ndCB0cmFjayBkb3duIGlzc3Vlcy5cbiAgY29uc29sZS5lcnJvcihlcnIpXG4gIHJldHVybiBwYWdlTG9hZGVyXG4gICAgLmxvYWRQYWdlKCcvX2Vycm9yJylcbiAgICAudGhlbigoeyBwYWdlOiBFcnJvckNvbXBvbmVudCwgc3R5bGVTaGVldHMgfSkgPT4ge1xuICAgICAgLy8gSW4gcHJvZHVjdGlvbiB3ZSBkbyBhIG5vcm1hbCByZW5kZXIgd2l0aCB0aGUgYEVycm9yQ29tcG9uZW50YCBhcyBjb21wb25lbnQuXG4gICAgICAvLyBJZiB3ZSd2ZSBnb3R0ZW4gaGVyZSB1cG9uIGluaXRpYWwgcmVuZGVyLCB3ZSBjYW4gdXNlIHRoZSBwcm9wcyBmcm9tIHRoZSBzZXJ2ZXIuXG4gICAgICAvLyBPdGhlcndpc2UsIHdlIG5lZWQgdG8gY2FsbCBgZ2V0SW5pdGlhbFByb3BzYCBvbiBgQXBwYCBiZWZvcmUgbW91bnRpbmcuXG4gICAgICBjb25zdCBBcHBUcmVlID0gd3JhcEFwcChBcHApXG4gICAgICBjb25zdCBhcHBDdHggPSB7XG4gICAgICAgIENvbXBvbmVudDogRXJyb3JDb21wb25lbnQsXG4gICAgICAgIEFwcFRyZWUsXG4gICAgICAgIHJvdXRlcixcbiAgICAgICAgY3R4OiB7IGVyciwgcGF0aG5hbWU6IHBhZ2UsIHF1ZXJ5LCBhc1BhdGgsIEFwcFRyZWUgfSxcbiAgICAgIH1cbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoXG4gICAgICAgIHJlbmRlckVycm9yUHJvcHMucHJvcHNcbiAgICAgICAgICA/IHJlbmRlckVycm9yUHJvcHMucHJvcHNcbiAgICAgICAgICA6IGxvYWRHZXRJbml0aWFsUHJvcHMoQXBwLCBhcHBDdHgpXG4gICAgICApLnRoZW4oKGluaXRQcm9wcykgPT5cbiAgICAgICAgZG9SZW5kZXIoe1xuICAgICAgICAgIC4uLnJlbmRlckVycm9yUHJvcHMsXG4gICAgICAgICAgZXJyLFxuICAgICAgICAgIENvbXBvbmVudDogRXJyb3JDb21wb25lbnQsXG4gICAgICAgICAgc3R5bGVTaGVldHMsXG4gICAgICAgICAgcHJvcHM6IGluaXRQcm9wcyxcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICB9KVxufVxuXG4vLyBJZiBoeWRyYXRlIGRvZXMgbm90IGV4aXN0LCBlZyBpbiBwcmVhY3QuXG5sZXQgaXNJbml0aWFsUmVuZGVyID0gdHlwZW9mIFJlYWN0RE9NLmh5ZHJhdGUgPT09ICdmdW5jdGlvbidcbmxldCByZWFjdFJvb3Q6IGFueSA9IG51bGxcbmZ1bmN0aW9uIHJlbmRlclJlYWN0RWxlbWVudChyZWFjdEVsOiBKU1guRWxlbWVudCwgZG9tRWw6IEhUTUxFbGVtZW50KSB7XG4gIGlmIChwcm9jZXNzLmVudi5fX05FWFRfUkVBQ1RfTU9ERSAhPT0gJ2xlZ2FjeScpIHtcbiAgICBpZiAoIXJlYWN0Um9vdCkge1xuICAgICAgY29uc3Qgb3B0cyA9IHsgaHlkcmF0ZTogdHJ1ZSB9XG4gICAgICByZWFjdFJvb3QgPVxuICAgICAgICBwcm9jZXNzLmVudi5fX05FWFRfUkVBQ1RfTU9ERSA9PT0gJ2NvbmN1cnJlbnQnXG4gICAgICAgICAgPyAoUmVhY3RET00gYXMgYW55KS51bnN0YWJsZV9jcmVhdGVSb290KGRvbUVsLCBvcHRzKVxuICAgICAgICAgIDogKFJlYWN0RE9NIGFzIGFueSkudW5zdGFibGVfY3JlYXRlQmxvY2tpbmdSb290KGRvbUVsLCBvcHRzKVxuICAgIH1cbiAgICByZWFjdFJvb3QucmVuZGVyKHJlYWN0RWwpXG4gIH0gZWxzZSB7XG4gICAgLy8gbWFyayBzdGFydCBvZiBoeWRyYXRlL3JlbmRlclxuICAgIGlmIChTVCkge1xuICAgICAgcGVyZm9ybWFuY2UubWFyaygnYmVmb3JlUmVuZGVyJylcbiAgICB9XG5cbiAgICAvLyBUaGUgY2hlY2sgZm9yIGAuaHlkcmF0ZWAgaXMgdGhlcmUgdG8gc3VwcG9ydCBSZWFjdCBhbHRlcm5hdGl2ZXMgbGlrZSBwcmVhY3RcbiAgICBpZiAoaXNJbml0aWFsUmVuZGVyKSB7XG4gICAgICBSZWFjdERPTS5oeWRyYXRlKHJlYWN0RWwsIGRvbUVsLCBtYXJrSHlkcmF0ZUNvbXBsZXRlKVxuICAgICAgaXNJbml0aWFsUmVuZGVyID0gZmFsc2VcblxuICAgICAgaWYgKG9uUGVyZkVudHJ5ICYmIFNUKSB7XG4gICAgICAgIG1lYXN1cmVXZWJWaXRhbHMob25QZXJmRW50cnkpXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIFJlYWN0RE9NLnJlbmRlcihyZWFjdEVsLCBkb21FbCwgbWFya1JlbmRlckNvbXBsZXRlKVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBtYXJrSHlkcmF0ZUNvbXBsZXRlKCkge1xuICBpZiAoIVNUKSByZXR1cm5cblxuICBwZXJmb3JtYW5jZS5tYXJrKCdhZnRlckh5ZHJhdGUnKSAvLyBtYXJrIGVuZCBvZiBoeWRyYXRpb25cblxuICBwZXJmb3JtYW5jZS5tZWFzdXJlKFxuICAgICdOZXh0LmpzLWJlZm9yZS1oeWRyYXRpb24nLFxuICAgICduYXZpZ2F0aW9uU3RhcnQnLFxuICAgICdiZWZvcmVSZW5kZXInXG4gIClcbiAgcGVyZm9ybWFuY2UubWVhc3VyZSgnTmV4dC5qcy1oeWRyYXRpb24nLCAnYmVmb3JlUmVuZGVyJywgJ2FmdGVySHlkcmF0ZScpXG5cbiAgaWYgKG9uUGVyZkVudHJ5KSB7XG4gICAgcGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5TmFtZSgnTmV4dC5qcy1oeWRyYXRpb24nKS5mb3JFYWNoKG9uUGVyZkVudHJ5KVxuICB9XG4gIGNsZWFyTWFya3MoKVxufVxuXG5mdW5jdGlvbiBtYXJrUmVuZGVyQ29tcGxldGUoKSB7XG4gIGlmICghU1QpIHJldHVyblxuXG4gIHBlcmZvcm1hbmNlLm1hcmsoJ2FmdGVyUmVuZGVyJykgLy8gbWFyayBlbmQgb2YgcmVuZGVyXG4gIGNvbnN0IG5hdlN0YXJ0RW50cmllcyA9IHBlcmZvcm1hbmNlLmdldEVudHJpZXNCeU5hbWUoJ3JvdXRlQ2hhbmdlJywgJ21hcmsnKVxuXG4gIGlmICghbmF2U3RhcnRFbnRyaWVzLmxlbmd0aCkge1xuICAgIHJldHVyblxuICB9XG5cbiAgcGVyZm9ybWFuY2UubWVhc3VyZShcbiAgICAnTmV4dC5qcy1yb3V0ZS1jaGFuZ2UtdG8tcmVuZGVyJyxcbiAgICBuYXZTdGFydEVudHJpZXNbMF0ubmFtZSxcbiAgICAnYmVmb3JlUmVuZGVyJ1xuICApXG4gIHBlcmZvcm1hbmNlLm1lYXN1cmUoJ05leHQuanMtcmVuZGVyJywgJ2JlZm9yZVJlbmRlcicsICdhZnRlclJlbmRlcicpXG4gIGlmIChvblBlcmZFbnRyeSkge1xuICAgIHBlcmZvcm1hbmNlLmdldEVudHJpZXNCeU5hbWUoJ05leHQuanMtcmVuZGVyJykuZm9yRWFjaChvblBlcmZFbnRyeSlcbiAgICBwZXJmb3JtYW5jZVxuICAgICAgLmdldEVudHJpZXNCeU5hbWUoJ05leHQuanMtcm91dGUtY2hhbmdlLXRvLXJlbmRlcicpXG4gICAgICAuZm9yRWFjaChvblBlcmZFbnRyeSlcbiAgfVxuICBjbGVhck1hcmtzKClcbiAgO1snTmV4dC5qcy1yb3V0ZS1jaGFuZ2UtdG8tcmVuZGVyJywgJ05leHQuanMtcmVuZGVyJ10uZm9yRWFjaCgobWVhc3VyZSkgPT5cbiAgICBwZXJmb3JtYW5jZS5jbGVhck1lYXN1cmVzKG1lYXN1cmUpXG4gIClcbn1cblxuZnVuY3Rpb24gY2xlYXJNYXJrcygpIHtcbiAgO1tcbiAgICAnYmVmb3JlUmVuZGVyJyxcbiAgICAnYWZ0ZXJIeWRyYXRlJyxcbiAgICAnYWZ0ZXJSZW5kZXInLFxuICAgICdyb3V0ZUNoYW5nZScsXG4gIF0uZm9yRWFjaCgobWFyaykgPT4gcGVyZm9ybWFuY2UuY2xlYXJNYXJrcyhtYXJrKSlcbn1cblxuZnVuY3Rpb24gQXBwQ29udGFpbmVyKHtcbiAgY2hpbGRyZW4sXG59OiBSZWFjdC5Qcm9wc1dpdGhDaGlsZHJlbjx7fT4pOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICByZXR1cm4gKFxuICAgIDxDb250YWluZXJcbiAgICAgIGZuPXsoZXJyb3IpID0+XG4gICAgICAgIHJlbmRlckVycm9yKHsgQXBwOiBDYWNoZWRBcHAsIGVycjogZXJyb3IgfSkuY2F0Y2goKGVycikgPT5cbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciByZW5kZXJpbmcgcGFnZTogJywgZXJyKVxuICAgICAgICApXG4gICAgICB9XG4gICAgPlxuICAgICAgPFJvdXRlckNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e21ha2VQdWJsaWNSb3V0ZXJJbnN0YW5jZShyb3V0ZXIpfT5cbiAgICAgICAgPEhlYWRNYW5hZ2VyQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17aGVhZE1hbmFnZXJ9PlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9IZWFkTWFuYWdlckNvbnRleHQuUHJvdmlkZXI+XG4gICAgICA8L1JvdXRlckNvbnRleHQuUHJvdmlkZXI+XG4gICAgPC9Db250YWluZXI+XG4gIClcbn1cblxuY29uc3Qgd3JhcEFwcCA9IChBcHA6IEFwcENvbXBvbmVudCkgPT4gKFxuICB3cmFwcGVkQXBwUHJvcHM6IFJlY29yZDxzdHJpbmcsIGFueT5cbikgPT4ge1xuICBjb25zdCBhcHBQcm9wczogQXBwUHJvcHMgPSB7XG4gICAgLi4ud3JhcHBlZEFwcFByb3BzLFxuICAgIENvbXBvbmVudDogQ2FjaGVkQ29tcG9uZW50LFxuICAgIGVycjogaHlkcmF0ZUVycixcbiAgICByb3V0ZXIsXG4gIH1cbiAgcmV0dXJuIChcbiAgICA8QXBwQ29udGFpbmVyPlxuICAgICAgPEFwcCB7Li4uYXBwUHJvcHN9IC8+XG4gICAgPC9BcHBDb250YWluZXI+XG4gIClcbn1cblxuZnVuY3Rpb24gZG9SZW5kZXIoe1xuICBBcHAsXG4gIENvbXBvbmVudCxcbiAgcHJvcHMsXG4gIGVycixcbiAgc3R5bGVTaGVldHMsXG59OiBSZW5kZXJSb3V0ZUluZm8pOiBQcm9taXNlPGFueT4ge1xuICBDb21wb25lbnQgPSBDb21wb25lbnQgfHwgbGFzdEFwcFByb3BzLkNvbXBvbmVudFxuICBwcm9wcyA9IHByb3BzIHx8IGxhc3RBcHBQcm9wcy5wcm9wc1xuXG4gIGNvbnN0IGFwcFByb3BzOiBBcHBQcm9wcyA9IHtcbiAgICAuLi5wcm9wcyxcbiAgICBDb21wb25lbnQsXG4gICAgZXJyLFxuICAgIHJvdXRlcixcbiAgfVxuICAvLyBsYXN0QXBwUHJvcHMgaGFzIHRvIGJlIHNldCBiZWZvcmUgUmVhY3REb20ucmVuZGVyIHRvIGFjY291bnQgZm9yIFJlYWN0RG9tIHRocm93aW5nIGFuIGVycm9yLlxuICBsYXN0QXBwUHJvcHMgPSBhcHBQcm9wc1xuXG4gIGxldCBjYW5jZWxlZCA9IGZhbHNlXG4gIGxldCByZXNvbHZlUHJvbWlzZTogKCkgPT4gdm9pZFxuICBjb25zdCByZW5kZXJQcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGlmIChsYXN0UmVuZGVyUmVqZWN0KSB7XG4gICAgICBsYXN0UmVuZGVyUmVqZWN0KClcbiAgICB9XG4gICAgcmVzb2x2ZVByb21pc2UgPSAoKSA9PiB7XG4gICAgICBsYXN0UmVuZGVyUmVqZWN0ID0gbnVsbFxuICAgICAgcmVzb2x2ZSgpXG4gICAgfVxuICAgIGxhc3RSZW5kZXJSZWplY3QgPSAoKSA9PiB7XG4gICAgICBjYW5jZWxlZCA9IHRydWVcbiAgICAgIGxhc3RSZW5kZXJSZWplY3QgPSBudWxsXG5cbiAgICAgIGNvbnN0IGVycm9yOiBhbnkgPSBuZXcgRXJyb3IoJ0NhbmNlbCByZW5kZXJpbmcgcm91dGUnKVxuICAgICAgZXJyb3IuY2FuY2VsbGVkID0gdHJ1ZVxuICAgICAgcmVqZWN0KGVycm9yKVxuICAgIH1cbiAgfSlcblxuICAvLyBUaGlzIGZ1bmN0aW9uIGhhcyBhIHJldHVybiB0eXBlIHRvIGVuc3VyZSBpdCBkb2Vzbid0IHN0YXJ0IHJldHVybmluZyBhXG4gIC8vIFByb21pc2UuIEl0IHNob3VsZCByZW1haW4gc3luY2hyb25vdXMuXG4gIGZ1bmN0aW9uIG9uU3RhcnQoKTogYm9vbGVhbiB7XG4gICAgaWYgKFxuICAgICAgLy8gV2UgY2FuIHNraXAgdGhpcyBkdXJpbmcgaHlkcmF0aW9uLiBSdW5uaW5nIGl0IHdvbnQgY2F1c2UgYW55IGhhcm0sIGJ1dFxuICAgICAgLy8gd2UgbWF5IGFzIHdlbGwgc2F2ZSB0aGUgQ1BVIGN5Y2xlcy5cbiAgICAgIGlzSW5pdGlhbFJlbmRlciB8fFxuICAgICAgLy8gV2UgdXNlIGBzdHlsZS1sb2FkZXJgIGluIGRldmVsb3BtZW50LCBzbyB3ZSBkb24ndCBuZWVkIHRvIGRvIGFueXRoaW5nXG4gICAgICAvLyB1bmxlc3Mgd2UncmUgaW4gcHJvZHVjdGlvbjpcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbidcbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIGNvbnN0IGN1cnJlbnRTdHlsZVRhZ3MgPSBsb29zZVRvQXJyYXk8SFRNTFN0eWxlRWxlbWVudD4oXG4gICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdzdHlsZVtkYXRhLW4taHJlZl0nKVxuICAgIClcbiAgICBjb25zdCBjdXJyZW50SHJlZnMgPSBuZXcgU2V0KFxuICAgICAgY3VycmVudFN0eWxlVGFncy5tYXAoKHRhZykgPT4gdGFnLmdldEF0dHJpYnV0ZSgnZGF0YS1uLWhyZWYnKSlcbiAgICApXG5cbiAgICBzdHlsZVNoZWV0cy5mb3JFYWNoKCh7IGhyZWYsIHRleHQgfSkgPT4ge1xuICAgICAgaWYgKCFjdXJyZW50SHJlZnMuaGFzKGhyZWYpKSB7XG4gICAgICAgIGNvbnN0IHN0eWxlVGFnID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKVxuICAgICAgICBzdHlsZVRhZy5zZXRBdHRyaWJ1dGUoJ2RhdGEtbi1ocmVmJywgaHJlZilcbiAgICAgICAgc3R5bGVUYWcuc2V0QXR0cmlidXRlKCdtZWRpYScsICd4JylcblxuICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHN0eWxlVGFnKVxuICAgICAgICBzdHlsZVRhZy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0ZXh0KSlcbiAgICAgIH1cbiAgICB9KVxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBmdW5jdGlvbiBvbkNvbW1pdCgpIHtcbiAgICBpZiAoXG4gICAgICAvLyBXZSB1c2UgYHN0eWxlLWxvYWRlcmAgaW4gZGV2ZWxvcG1lbnQsIHNvIHdlIGRvbid0IG5lZWQgdG8gZG8gYW55dGhpbmdcbiAgICAgIC8vIHVubGVzcyB3ZSdyZSBpbiBwcm9kdWN0aW9uOlxuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJyAmJlxuICAgICAgLy8gV2UgY2FuIHNraXAgdGhpcyBkdXJpbmcgaHlkcmF0aW9uLiBSdW5uaW5nIGl0IHdvbnQgY2F1c2UgYW55IGhhcm0sIGJ1dFxuICAgICAgLy8gd2UgbWF5IGFzIHdlbGwgc2F2ZSB0aGUgQ1BVIGN5Y2xlczpcbiAgICAgICFpc0luaXRpYWxSZW5kZXIgJiZcbiAgICAgIC8vIEVuc3VyZSB0aGlzIHJlbmRlciB3YXMgbm90IGNhbmNlbGVkXG4gICAgICAhY2FuY2VsZWRcbiAgICApIHtcbiAgICAgIGNvbnN0IGRlc2lyZWRIcmVmcyA9IG5ldyBTZXQoc3R5bGVTaGVldHMubWFwKChzKSA9PiBzLmhyZWYpKVxuICAgICAgY29uc3QgY3VycmVudFN0eWxlVGFncyA9IGxvb3NlVG9BcnJheTxIVE1MU3R5bGVFbGVtZW50PihcbiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnc3R5bGVbZGF0YS1uLWhyZWZdJylcbiAgICAgIClcbiAgICAgIGNvbnN0IGN1cnJlbnRIcmVmcyA9IGN1cnJlbnRTdHlsZVRhZ3MubWFwKFxuICAgICAgICAodGFnKSA9PiB0YWcuZ2V0QXR0cmlidXRlKCdkYXRhLW4taHJlZicpIVxuICAgICAgKVxuXG4gICAgICAvLyBUb2dnbGUgYDxzdHlsZT5gIHRhZ3Mgb24gb3Igb2ZmIGRlcGVuZGluZyBvbiBpZiB0aGV5J3JlIG5lZWRlZDpcbiAgICAgIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IGN1cnJlbnRIcmVmcy5sZW5ndGg7ICsraWR4KSB7XG4gICAgICAgIGlmIChkZXNpcmVkSHJlZnMuaGFzKGN1cnJlbnRIcmVmc1tpZHhdKSkge1xuICAgICAgICAgIGN1cnJlbnRTdHlsZVRhZ3NbaWR4XS5yZW1vdmVBdHRyaWJ1dGUoJ21lZGlhJylcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjdXJyZW50U3R5bGVUYWdzW2lkeF0uc2V0QXR0cmlidXRlKCdtZWRpYScsICd4JylcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBSZW9yZGVyIHN0eWxlcyBpbnRvIGludGVuZGVkIG9yZGVyOlxuICAgICAgbGV0IHJlZmVyZW5jZU5vZGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdub3NjcmlwdFtkYXRhLW4tY3NzXScpXG4gICAgICBpZiAoXG4gICAgICAgIC8vIFRoaXMgc2hvdWxkIGJlIGFuIGludmFyaWFudDpcbiAgICAgICAgcmVmZXJlbmNlTm9kZVxuICAgICAgKSB7XG4gICAgICAgIHN0eWxlU2hlZXRzLmZvckVhY2goKHsgaHJlZiB9KSA9PiB7XG4gICAgICAgICAgY29uc3QgdGFyZ2V0VGFnID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAgIGBzdHlsZVtkYXRhLW4taHJlZj1cIiR7aHJlZn1cIl1gXG4gICAgICAgICAgKVxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIC8vIFRoaXMgc2hvdWxkIGJlIGFuIGludmFyaWFudDpcbiAgICAgICAgICAgIHRhcmdldFRhZ1xuICAgICAgICAgICkge1xuICAgICAgICAgICAgcmVmZXJlbmNlTm9kZSEucGFyZW50Tm9kZSEuaW5zZXJ0QmVmb3JlKFxuICAgICAgICAgICAgICB0YXJnZXRUYWcsXG4gICAgICAgICAgICAgIHJlZmVyZW5jZU5vZGUhLm5leHRTaWJsaW5nXG4gICAgICAgICAgICApXG4gICAgICAgICAgICByZWZlcmVuY2VOb2RlID0gdGFyZ2V0VGFnXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICAvLyBGaW5hbGx5LCBjbGVhbiB1cCBzZXJ2ZXIgcmVuZGVyZWQgc3R5bGVzaGVldHM6XG4gICAgICBsb29zZVRvQXJyYXk8SFRNTExpbmtFbGVtZW50PihcbiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnbGlua1tkYXRhLW4tcF0nKVxuICAgICAgKS5mb3JFYWNoKChlbCkgPT4ge1xuICAgICAgICBlbC5wYXJlbnROb2RlIS5yZW1vdmVDaGlsZChlbClcbiAgICAgIH0pXG5cbiAgICAgIC8vIEZvcmNlIGJyb3dzZXIgdG8gcmVjb21wdXRlIGxheW91dCwgd2hpY2ggc2hvdWxkIHByZXZlbnQgYSBmbGFzaCBvZlxuICAgICAgLy8gdW5zdHlsZWQgY29udGVudDpcbiAgICAgIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9keSwgJ2hlaWdodCcpXG4gICAgfVxuXG4gICAgcmVzb2x2ZVByb21pc2UoKVxuICB9XG5cbiAgY29uc3QgZWxlbSA9IChcbiAgICA8Um9vdCBjYWxsYmFjaz17b25Db21taXR9PlxuICAgICAgPEFwcENvbnRhaW5lcj5cbiAgICAgICAgPEFwcCB7Li4uYXBwUHJvcHN9IC8+XG4gICAgICA8L0FwcENvbnRhaW5lcj5cbiAgICA8L1Jvb3Q+XG4gIClcblxuICBvblN0YXJ0KClcblxuICAvLyBXZSBjYXRjaCBydW50aW1lIGVycm9ycyB1c2luZyBjb21wb25lbnREaWRDYXRjaCB3aGljaCB3aWxsIHRyaWdnZXIgcmVuZGVyRXJyb3JcbiAgcmVuZGVyUmVhY3RFbGVtZW50KFxuICAgIHByb2Nlc3MuZW52Ll9fTkVYVF9TVFJJQ1RfTU9ERSA/IChcbiAgICAgIDxSZWFjdC5TdHJpY3RNb2RlPntlbGVtfTwvUmVhY3QuU3RyaWN0TW9kZT5cbiAgICApIDogKFxuICAgICAgZWxlbVxuICAgICksXG4gICAgYXBwRWxlbWVudCFcbiAgKVxuXG4gIHJldHVybiByZW5kZXJQcm9taXNlXG59XG5cbmZ1bmN0aW9uIFJvb3Qoe1xuICBjYWxsYmFjayxcbiAgY2hpbGRyZW4sXG59OiBSZWFjdC5Qcm9wc1dpdGhDaGlsZHJlbjx7XG4gIGNhbGxiYWNrOiAoKSA9PiB2b2lkXG59Pik6IFJlYWN0LlJlYWN0RWxlbWVudCB7XG4gIC8vIFdlIHVzZSBgdXNlTGF5b3V0RWZmZWN0YCB0byBndWFyYW50ZWUgdGhlIGNhbGxiYWNrIGlzIGV4ZWN1dGVkXG4gIC8vIGFzIHNvb24gYXMgUmVhY3QgZmx1c2hlcyB0aGUgdXBkYXRlLlxuICBSZWFjdC51c2VMYXlvdXRFZmZlY3QoKCkgPT4gY2FsbGJhY2soKSwgW2NhbGxiYWNrXSlcbiAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9URVNUX01PREUpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgd2luZG93Ll9fTkVYVF9IWURSQVRFRCA9IHRydWVcblxuICAgICAgaWYgKHdpbmRvdy5fX05FWFRfSFlEUkFURURfQ0IpIHtcbiAgICAgICAgd2luZG93Ll9fTkVYVF9IWURSQVRFRF9DQigpXG4gICAgICB9XG4gICAgfSwgW10pXG4gIH1cbiAgcmV0dXJuIGNoaWxkcmVuIGFzIFJlYWN0LlJlYWN0RWxlbWVudFxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/index.js\n"); /***/ }), @@ -2105,7 +1830,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nvar _regeneratorRuntime /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(process, module) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"./node_modules/@babel/runtime/helpers/interopRequireWildcard.js\");\n\nvar next = _interopRequireWildcard(__webpack_require__(/*! ./ */ \"./node_modules/next/dist/client/index.js\"));\n\nvar _eventSourcePolyfill = _interopRequireDefault(__webpack_require__(/*! ./dev/event-source-polyfill */ \"./node_modules/next/dist/client/dev/event-source-polyfill.js\"));\n\nvar _onDemandEntriesClient = _interopRequireDefault(__webpack_require__(/*! ./dev/on-demand-entries-client */ \"./node_modules/next/dist/client/dev/on-demand-entries-client.js\"));\n\nvar _webpackHotMiddlewareClient = _interopRequireDefault(__webpack_require__(/*! ./dev/webpack-hot-middleware-client */ \"./node_modules/next/dist/client/dev/webpack-hot-middleware-client.js\"));\n\nvar _devBuildWatcher = _interopRequireDefault(__webpack_require__(/*! ./dev/dev-build-watcher */ \"./node_modules/next/dist/client/dev/dev-build-watcher.js\"));\n\nvar _prerenderIndicator = _interopRequireDefault(__webpack_require__(/*! ./dev/prerender-indicator */ \"./node_modules/next/dist/client/dev/prerender-indicator.js\"));\n\nvar _fouc = __webpack_require__(/*! ./dev/fouc */ \"./node_modules/next/dist/client/dev/fouc.js\");\n/* globals import('./dev/noop'); */\n// Temporary workaround for the issue described here:\n// https://github.com/vercel/next.js/issues/3775#issuecomment-407438123\n// The runtimeChunk doesn't have dynamic import handling code when there hasn't been a dynamic import\n// The runtimeChunk can't hot reload itself currently to correct it when adding pages using on-demand-entries\n// eslint-disable-next-line no-unused-expressions\n\n\n__webpack_require__.e(/*! import() */ 0).then(__webpack_require__.t.bind(null, /*! ./dev/noop */ \"./node_modules/next/dist/client/dev/noop.js\", 7));\n; // Support EventSource on Internet Explorer 11\n\nif (!window.EventSource) {\n window.EventSource = _eventSourcePolyfill[\"default\"];\n}\n\nvar _window = window,\n assetPrefix = _window.__NEXT_DATA__.assetPrefix;\nvar prefix = assetPrefix || '';\nvar webpackHMR = (0, _webpackHotMiddlewareClient[\"default\"])({\n assetPrefix: prefix\n});\nwindow.next = next;\n(0, next[\"default\"])({\n webpackHMR: webpackHMR\n}).then(function (_ref) {\n var renderCtx = _ref.renderCtx,\n render = _ref.render;\n (0, _onDemandEntriesClient[\"default\"])({\n assetPrefix: prefix\n });\n if (true) (0, _devBuildWatcher[\"default\"])();\n\n if ( true && // disable by default in electron\n !(typeof process !== 'undefined' && 'electron' in process.versions)) {\n (0, _prerenderIndicator[\"default\"])();\n } // delay rendering until after styles have been applied in development\n\n\n (0, _fouc.displayContent)(function () {\n render(renderCtx);\n });\n})[\"catch\"](function (err) {\n console.error('Error was not caught', err);\n});\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.i);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../process/browser.js */ \"./node_modules/process/browser.js\"), __webpack_require__(/*! ./../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL2NsaWVudC9uZXh0LWRldi5qcz81M2JjIl0sIm5hbWVzIjpbIl9fUkVQTEFDRV9OT09QX0lNUE9SVF9fIiwid2luZG93IiwiRXZlbnRTb3VyY2VQb2x5ZmlsbCIsIl9fTkVYVF9EQVRBX18iLCJwcmVmaXgiLCJhc3NldFByZWZpeCIsIndlYnBhY2tITVIiLCJwcm9jZXNzIiwicmVuZGVyIiwiZXJyIiwiY29uc29sZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7QUFQQTtBQUFBO0FBVUE7QUFDQTtBQUNBO0FBQ0E7OztBQUNBQTtBQUFBQSxDLENBQUFBOztBQUdBLElBQUksQ0FBQ0MsTUFBTSxDQUFYLGFBQXlCO0FBQ3ZCQSxRQUFNLENBQU5BLGNBQXFCQyxvQkFBckJEO0FBR0Y7O2NBQUEsTTtJQUFNLFcsV0FDSkUsYSxDQURJLFc7QUFJTixJQUFNQyxNQUFNLEdBQUdDLFdBQVcsSUFBMUI7QUFDQSxJQUFNQyxVQUFVLEdBQUcsNENBQWU7QUFBRUQsYUFBVyxFQUEvQztBQUFrQyxDQUFmLENBQW5CO0FBRUFKLE1BQU0sQ0FBTkE7QUFDQSxxQkFBUztBQUFFSyxZQUFYLEVBQVdBO0FBQUYsQ0FBVCxPQUNRLGdCQUEyQjtBQUFBLE1BQTFCLFNBQTBCLFFBQTFCLFNBQTBCO0FBQUEsTUFBM0IsTUFBMkIsUUFBM0IsTUFBMkI7QUFDL0IseUNBQW9CO0FBQUVELGVBQVcsRUFBakM7QUFBb0IsR0FBcEI7QUFDQSxNQUFJRSxJQUFKLEVBQXdDOztBQUN4QyxNQUNFQSxTQUNBO0FBQ0EsSUFBRSxrQ0FBa0MsY0FBY0EsT0FBTyxDQUgzRCxRQUdFLENBSEYsRUFJRTtBQUNBO0FBR0YsR0FYK0IsQ0FXL0I7OztBQUNBLDRCQUFlLFlBQU07QUFDbkJDLFVBQU0sQ0FBTkEsU0FBTSxDQUFOQTtBQURGO0FBYkosWUFpQlVDLGFBQUQsRUFBUztBQUNkQyxTQUFPLENBQVBBO0FBbEJKIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvbmV4dC1kZXYuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBnbG9iYWxzIF9fUkVQTEFDRV9OT09QX0lNUE9SVF9fICovXG5pbXBvcnQgaW5pdE5leHQsICogYXMgbmV4dCBmcm9tICcuLydcbmltcG9ydCBFdmVudFNvdXJjZVBvbHlmaWxsIGZyb20gJy4vZGV2L2V2ZW50LXNvdXJjZS1wb2x5ZmlsbCdcbmltcG9ydCBpbml0T25EZW1hbmRFbnRyaWVzIGZyb20gJy4vZGV2L29uLWRlbWFuZC1lbnRyaWVzLWNsaWVudCdcbmltcG9ydCBpbml0V2VicGFja0hNUiBmcm9tICcuL2Rldi93ZWJwYWNrLWhvdC1taWRkbGV3YXJlLWNsaWVudCdcbmltcG9ydCBpbml0aWFsaXplQnVpbGRXYXRjaGVyIGZyb20gJy4vZGV2L2Rldi1idWlsZC13YXRjaGVyJ1xuaW1wb3J0IGluaXRpYWxpemVQcmVyZW5kZXJJbmRpY2F0b3IgZnJvbSAnLi9kZXYvcHJlcmVuZGVyLWluZGljYXRvcidcbmltcG9ydCB7IGRpc3BsYXlDb250ZW50IH0gZnJvbSAnLi9kZXYvZm91YydcblxuLy8gVGVtcG9yYXJ5IHdvcmthcm91bmQgZm9yIHRoZSBpc3N1ZSBkZXNjcmliZWQgaGVyZTpcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS92ZXJjZWwvbmV4dC5qcy9pc3N1ZXMvMzc3NSNpc3N1ZWNvbW1lbnQtNDA3NDM4MTIzXG4vLyBUaGUgcnVudGltZUNodW5rIGRvZXNuJ3QgaGF2ZSBkeW5hbWljIGltcG9ydCBoYW5kbGluZyBjb2RlIHdoZW4gdGhlcmUgaGFzbid0IGJlZW4gYSBkeW5hbWljIGltcG9ydFxuLy8gVGhlIHJ1bnRpbWVDaHVuayBjYW4ndCBob3QgcmVsb2FkIGl0c2VsZiBjdXJyZW50bHkgdG8gY29ycmVjdCBpdCB3aGVuIGFkZGluZyBwYWdlcyB1c2luZyBvbi1kZW1hbmQtZW50cmllc1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC1leHByZXNzaW9uc1xuX19SRVBMQUNFX05PT1BfSU1QT1JUX19cblxuLy8gU3VwcG9ydCBFdmVudFNvdXJjZSBvbiBJbnRlcm5ldCBFeHBsb3JlciAxMVxuaWYgKCF3aW5kb3cuRXZlbnRTb3VyY2UpIHtcbiAgd2luZG93LkV2ZW50U291cmNlID0gRXZlbnRTb3VyY2VQb2x5ZmlsbFxufVxuXG5jb25zdCB7XG4gIF9fTkVYVF9EQVRBX186IHsgYXNzZXRQcmVmaXggfSxcbn0gPSB3aW5kb3dcblxuY29uc3QgcHJlZml4ID0gYXNzZXRQcmVmaXggfHwgJydcbmNvbnN0IHdlYnBhY2tITVIgPSBpbml0V2VicGFja0hNUih7IGFzc2V0UHJlZml4OiBwcmVmaXggfSlcblxud2luZG93Lm5leHQgPSBuZXh0XG5pbml0TmV4dCh7IHdlYnBhY2tITVIgfSlcbiAgLnRoZW4oKHsgcmVuZGVyQ3R4LCByZW5kZXIgfSkgPT4ge1xuICAgIGluaXRPbkRlbWFuZEVudHJpZXMoeyBhc3NldFByZWZpeDogcHJlZml4IH0pXG4gICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9CVUlMRF9JTkRJQ0FUT1IpIGluaXRpYWxpemVCdWlsZFdhdGNoZXIoKVxuICAgIGlmIChcbiAgICAgIHByb2Nlc3MuZW52Ll9fTkVYVF9QUkVSRU5ERVJfSU5ESUNBVE9SICYmXG4gICAgICAvLyBkaXNhYmxlIGJ5IGRlZmF1bHQgaW4gZWxlY3Ryb25cbiAgICAgICEodHlwZW9mIHByb2Nlc3MgIT09ICd1bmRlZmluZWQnICYmICdlbGVjdHJvbicgaW4gcHJvY2Vzcy52ZXJzaW9ucylcbiAgICApIHtcbiAgICAgIGluaXRpYWxpemVQcmVyZW5kZXJJbmRpY2F0b3IoKVxuICAgIH1cblxuICAgIC8vIGRlbGF5IHJlbmRlcmluZyB1bnRpbCBhZnRlciBzdHlsZXMgaGF2ZSBiZWVuIGFwcGxpZWQgaW4gZGV2ZWxvcG1lbnRcbiAgICBkaXNwbGF5Q29udGVudCgoKSA9PiB7XG4gICAgICByZW5kZXIocmVuZGVyQ3R4KVxuICAgIH0pXG4gIH0pXG4gIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgY29uc29sZS5lcnJvcignRXJyb3Igd2FzIG5vdCBjYXVnaHQnLCBlcnIpXG4gIH0pXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/next-dev.js\n"); +eval("/* WEBPACK VAR INJECTION */(function(process, module) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/next/node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"./node_modules/next/node_modules/@babel/runtime/helpers/interopRequireWildcard.js\");\n\nvar next = _interopRequireWildcard(__webpack_require__(/*! ./ */ \"./node_modules/next/dist/client/index.js\"));\n\nvar _eventSourcePolyfill = _interopRequireDefault(__webpack_require__(/*! ./dev/event-source-polyfill */ \"./node_modules/next/dist/client/dev/event-source-polyfill.js\"));\n\nvar _onDemandEntriesClient = _interopRequireDefault(__webpack_require__(/*! ./dev/on-demand-entries-client */ \"./node_modules/next/dist/client/dev/on-demand-entries-client.js\"));\n\nvar _webpackHotMiddlewareClient = _interopRequireDefault(__webpack_require__(/*! ./dev/webpack-hot-middleware-client */ \"./node_modules/next/dist/client/dev/webpack-hot-middleware-client.js\"));\n\nvar _devBuildWatcher = _interopRequireDefault(__webpack_require__(/*! ./dev/dev-build-watcher */ \"./node_modules/next/dist/client/dev/dev-build-watcher.js\"));\n\nvar _prerenderIndicator = _interopRequireDefault(__webpack_require__(/*! ./dev/prerender-indicator */ \"./node_modules/next/dist/client/dev/prerender-indicator.js\"));\n\nvar _fouc = __webpack_require__(/*! ./dev/fouc */ \"./node_modules/next/dist/client/dev/fouc.js\");\n\nvar _eventsource = __webpack_require__(/*! ./dev/error-overlay/eventsource */ \"./node_modules/next/dist/client/dev/error-overlay/eventsource.js\");\n\nvar querystring = _interopRequireWildcard(__webpack_require__(/*! ../next-server/lib/router/utils/querystring */ \"./node_modules/next/dist/next-server/lib/router/utils/querystring.js\"));\n/* globals import('./dev/noop'); */\n// Temporary workaround for the issue described here:\n// https://github.com/vercel/next.js/issues/3775#issuecomment-407438123\n// The runtimeChunk doesn't have dynamic import handling code when there hasn't been a dynamic import\n// The runtimeChunk can't hot reload itself currently to correct it when adding pages using on-demand-entries\n// eslint-disable-next-line no-unused-expressions\n\n\n__webpack_require__.e(/*! import() */ 0).then(__webpack_require__.t.bind(null, /*! ./dev/noop */ \"./node_modules/next/dist/client/dev/noop.js\", 7));\n; // Support EventSource on Internet Explorer 11\n\nif (!window.EventSource) {\n window.EventSource = _eventSourcePolyfill[\"default\"];\n}\n\nvar _window = window,\n assetPrefix = _window.__NEXT_DATA__.assetPrefix;\nvar prefix = assetPrefix || '';\nvar webpackHMR = (0, _webpackHotMiddlewareClient[\"default\"])({\n assetPrefix: prefix\n});\nwindow.next = next;\n(0, next[\"default\"])({\n webpackHMR: webpackHMR\n}).then(function (_ref) {\n var renderCtx = _ref.renderCtx,\n render = _ref.render;\n (0, _onDemandEntriesClient[\"default\"])({\n assetPrefix: prefix\n });\n\n var buildIndicatorHandler = function buildIndicatorHandler() {};\n\n function devPagesManifestListener(event) {\n if (event.data.indexOf('devPagesManifest') !== -1) {\n fetch(\"\".concat(prefix, \"/_next/static/development/_devPagesManifest.json\")).then(function (res) {\n return res.json();\n }).then(function (manifest) {\n window.__DEV_PAGES_MANIFEST = manifest;\n })[\"catch\"](function (err) {\n console.log(\"Failed to fetch devPagesManifest\", err);\n });\n } else if (event.data.indexOf('serverOnlyChanges') !== -1) {\n var _JSON$parse = JSON.parse(event.data),\n pages = _JSON$parse.pages;\n\n var router = window.next.router;\n\n if (pages.includes(router.pathname)) {\n console.log('Refreshing page data due to server-side change');\n buildIndicatorHandler('building');\n\n var clearIndicator = function clearIndicator() {\n return buildIndicatorHandler('built');\n };\n\n router.replace(router.pathname + '?' + String(querystring.assign(querystring.urlQueryToSearchParams(router.query), new URLSearchParams(location.search))), router.asPath)[\"finally\"](clearIndicator);\n }\n }\n }\n\n devPagesManifestListener.unfiltered = true;\n (0, _eventsource.getEventSourceWrapper)({}).addMessageListener(devPagesManifestListener);\n\n if (true) {\n (0, _devBuildWatcher[\"default\"])(function (handler) {\n buildIndicatorHandler = handler;\n });\n }\n\n if ( true && // disable by default in electron\n !(typeof process !== 'undefined' && 'electron' in process.versions)) {\n (0, _prerenderIndicator[\"default\"])();\n } // delay rendering until after styles have been applied in development\n\n\n (0, _fouc.displayContent)(function () {\n render(renderCtx);\n });\n})[\"catch\"](function (err) {\n console.error('Error was not caught', err);\n});\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.i);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../process/browser.js */ \"./node_modules/process/browser.js\"), __webpack_require__(/*! ./../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL2NsaWVudC9uZXh0LWRldi5qcz81M2JjIl0sIm5hbWVzIjpbIl9fUkVQTEFDRV9OT09QX0lNUE9SVF9fIiwid2luZG93IiwiRXZlbnRTb3VyY2VQb2x5ZmlsbCIsIl9fTkVYVF9EQVRBX18iLCJwcmVmaXgiLCJhc3NldFByZWZpeCIsIndlYnBhY2tITVIiLCJidWlsZEluZGljYXRvckhhbmRsZXIiLCJldmVudCIsImZldGNoIiwicmVzIiwibWFuaWZlc3QiLCJlcnIiLCJjb25zb2xlIiwiSlNPTiIsInJvdXRlciIsInBhZ2VzIiwiY2xlYXJJbmRpY2F0b3IiLCJTdHJpbmciLCJxdWVyeXN0cmluZyIsImxvY2F0aW9uIiwiZGV2UGFnZXNNYW5pZmVzdExpc3RlbmVyIiwicHJvY2VzcyIsImhhbmRsZXIiLCJyZW5kZXIiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBO0FBVEE7QUFBQTtBQVlBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDQUE7QUFBQUEsQyxDQUFBQTs7QUFHQSxJQUFJLENBQUNDLE1BQU0sQ0FBWCxhQUF5QjtBQUN2QkEsUUFBTSxDQUFOQSxjQUFxQkMsb0JBQXJCRDtBQUdGOztjQUFBLE07SUFBTSxXLFdBQ0pFLGEsQ0FESSxXO0FBSU4sSUFBTUMsTUFBTSxHQUFHQyxXQUFXLElBQTFCO0FBQ0EsSUFBTUMsVUFBVSxHQUFHLDRDQUFlO0FBQUVELGFBQVcsRUFBL0M7QUFBa0MsQ0FBZixDQUFuQjtBQUVBSixNQUFNLENBQU5BO0FBQ0EscUJBQVM7QUFBRUssWUFBWCxFQUFXQTtBQUFGLENBQVQsT0FDUSxnQkFBMkI7QUFBQSxNQUExQixTQUEwQixRQUExQixTQUEwQjtBQUFBLE1BQTNCLE1BQTJCLFFBQTNCLE1BQTJCO0FBQy9CLHlDQUFvQjtBQUFFRCxlQUFXLEVBQWpDO0FBQW9CLEdBQXBCOztBQUVBLE1BQUlFLHFCQUFxQixHQUFHLGlDQUFNLENBQWxDOztBQUVBLDJDQUF5QztBQUN2QyxRQUFJQyxLQUFLLENBQUxBLHFDQUEyQyxDQUEvQyxHQUFtRDtBQUNqREMsV0FBSyxXQUFMQSxNQUFLLHNEQUFMQSxNQUNTQyxhQUFEO0FBQUEsZUFBU0EsR0FBRyxDQURwQkQsSUFDaUJDLEVBQVQ7QUFBQSxPQURSRCxPQUVTRSxrQkFBRCxFQUFjO0FBQ2xCVixjQUFNLENBQU5BO0FBSEpRLGtCQUtVRyxhQUFELEVBQVM7QUFDZEMsZUFBTyxDQUFQQTtBQU5KSjtBQURGLFdBU08sSUFBSUQsS0FBSyxDQUFMQSxzQ0FBNEMsQ0FBaEQsR0FBb0Q7QUFBQSx3QkFDdkNNLElBQUksQ0FBSkEsTUFBV04sS0FBSyxDQUFsQyxJQUFrQk0sQ0FEdUM7QUFBQSxVQUNuRCxLQURtRCxlQUNuRCxLQURtRDs7QUFFekQsVUFBTUMsTUFBTSxHQUFHZCxNQUFNLENBQU5BLEtBQWY7O0FBRUEsVUFBSWUsS0FBSyxDQUFMQSxTQUFlRCxNQUFNLENBQXpCLFFBQUlDLENBQUosRUFBcUM7QUFDbkNILGVBQU8sQ0FBUEE7QUFFQU4sNkJBQXFCLENBQXJCQSxVQUFxQixDQUFyQkE7O0FBRUEsWUFBTVUsY0FBYyxHQUFHLFNBQWpCQSxjQUFpQjtBQUFBLGlCQUFNVixxQkFBcUIsQ0FBbEQsT0FBa0QsQ0FBM0I7QUFBQSxTQUF2Qjs7QUFFQVEsY0FBTSxDQUFOQSxRQUVJQSxNQUFNLENBQU5BLGlCQUVFRyxNQUFNLENBQ0pDLFdBQVcsQ0FBWEEsT0FDRUEsV0FBVyxDQUFYQSx1QkFBbUNKLE1BQU0sQ0FEM0NJLEtBQ0VBLENBREZBLEVBRUUsb0JBQW9CQyxRQUFRLENBUHRDTCxNQU9VLENBRkZJLENBREksQ0FKWkosRUFVSUEsTUFBTSxDQVZWQTtBQWNIO0FBQ0Y7QUFDRE07O0FBQUFBLDBCQUF3QixDQUF4QkE7QUFDQTs7QUFFQSxNQUFJQyxJQUFKLEVBQXdDO0FBQ3RDLHFDQUF3QkMsaUJBQUQsRUFBYTtBQUNsQ2hCLDJCQUFxQixHQUFyQkE7QUFERjtBQUlGOztBQUFBLE1BQ0VlLFNBQ0E7QUFDQSxJQUFFLGtDQUFrQyxjQUFjQSxPQUFPLENBSDNELFFBR0UsQ0FIRixFQUlFO0FBQ0E7QUFHRixHQTFEK0IsQ0EwRC9COzs7QUFDQSw0QkFBZSxZQUFNO0FBQ25CRSxVQUFNLENBQU5BLFNBQU0sQ0FBTkE7QUFERjtBQTVESixZQWdFVVosYUFBRCxFQUFTO0FBQ2RDLFNBQU8sQ0FBUEE7QUFqRUoiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9uZXh0LWRldi5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGdsb2JhbHMgX19SRVBMQUNFX05PT1BfSU1QT1JUX18gKi9cbmltcG9ydCBpbml0TmV4dCwgKiBhcyBuZXh0IGZyb20gJy4vJ1xuaW1wb3J0IEV2ZW50U291cmNlUG9seWZpbGwgZnJvbSAnLi9kZXYvZXZlbnQtc291cmNlLXBvbHlmaWxsJ1xuaW1wb3J0IGluaXRPbkRlbWFuZEVudHJpZXMgZnJvbSAnLi9kZXYvb24tZGVtYW5kLWVudHJpZXMtY2xpZW50J1xuaW1wb3J0IGluaXRXZWJwYWNrSE1SIGZyb20gJy4vZGV2L3dlYnBhY2staG90LW1pZGRsZXdhcmUtY2xpZW50J1xuaW1wb3J0IGluaXRpYWxpemVCdWlsZFdhdGNoZXIgZnJvbSAnLi9kZXYvZGV2LWJ1aWxkLXdhdGNoZXInXG5pbXBvcnQgaW5pdGlhbGl6ZVByZXJlbmRlckluZGljYXRvciBmcm9tICcuL2Rldi9wcmVyZW5kZXItaW5kaWNhdG9yJ1xuaW1wb3J0IHsgZGlzcGxheUNvbnRlbnQgfSBmcm9tICcuL2Rldi9mb3VjJ1xuaW1wb3J0IHsgZ2V0RXZlbnRTb3VyY2VXcmFwcGVyIH0gZnJvbSAnLi9kZXYvZXJyb3Itb3ZlcmxheS9ldmVudHNvdXJjZSdcbmltcG9ydCAqIGFzIHF1ZXJ5c3RyaW5nIGZyb20gJy4uL25leHQtc2VydmVyL2xpYi9yb3V0ZXIvdXRpbHMvcXVlcnlzdHJpbmcnXG5cbi8vIFRlbXBvcmFyeSB3b3JrYXJvdW5kIGZvciB0aGUgaXNzdWUgZGVzY3JpYmVkIGhlcmU6XG4vLyBodHRwczovL2dpdGh1Yi5jb20vdmVyY2VsL25leHQuanMvaXNzdWVzLzM3NzUjaXNzdWVjb21tZW50LTQwNzQzODEyM1xuLy8gVGhlIHJ1bnRpbWVDaHVuayBkb2Vzbid0IGhhdmUgZHluYW1pYyBpbXBvcnQgaGFuZGxpbmcgY29kZSB3aGVuIHRoZXJlIGhhc24ndCBiZWVuIGEgZHluYW1pYyBpbXBvcnRcbi8vIFRoZSBydW50aW1lQ2h1bmsgY2FuJ3QgaG90IHJlbG9hZCBpdHNlbGYgY3VycmVudGx5IHRvIGNvcnJlY3QgaXQgd2hlbiBhZGRpbmcgcGFnZXMgdXNpbmcgb24tZGVtYW5kLWVudHJpZXNcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtZXhwcmVzc2lvbnNcbl9fUkVQTEFDRV9OT09QX0lNUE9SVF9fXG5cbi8vIFN1cHBvcnQgRXZlbnRTb3VyY2Ugb24gSW50ZXJuZXQgRXhwbG9yZXIgMTFcbmlmICghd2luZG93LkV2ZW50U291cmNlKSB7XG4gIHdpbmRvdy5FdmVudFNvdXJjZSA9IEV2ZW50U291cmNlUG9seWZpbGxcbn1cblxuY29uc3Qge1xuICBfX05FWFRfREFUQV9fOiB7IGFzc2V0UHJlZml4IH0sXG59ID0gd2luZG93XG5cbmNvbnN0IHByZWZpeCA9IGFzc2V0UHJlZml4IHx8ICcnXG5jb25zdCB3ZWJwYWNrSE1SID0gaW5pdFdlYnBhY2tITVIoeyBhc3NldFByZWZpeDogcHJlZml4IH0pXG5cbndpbmRvdy5uZXh0ID0gbmV4dFxuaW5pdE5leHQoeyB3ZWJwYWNrSE1SIH0pXG4gIC50aGVuKCh7IHJlbmRlckN0eCwgcmVuZGVyIH0pID0+IHtcbiAgICBpbml0T25EZW1hbmRFbnRyaWVzKHsgYXNzZXRQcmVmaXg6IHByZWZpeCB9KVxuXG4gICAgbGV0IGJ1aWxkSW5kaWNhdG9ySGFuZGxlciA9ICgpID0+IHt9XG5cbiAgICBmdW5jdGlvbiBkZXZQYWdlc01hbmlmZXN0TGlzdGVuZXIoZXZlbnQpIHtcbiAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoJ2RldlBhZ2VzTWFuaWZlc3QnKSAhPT0gLTEpIHtcbiAgICAgICAgZmV0Y2goYCR7cHJlZml4fS9fbmV4dC9zdGF0aWMvZGV2ZWxvcG1lbnQvX2RldlBhZ2VzTWFuaWZlc3QuanNvbmApXG4gICAgICAgICAgLnRoZW4oKHJlcykgPT4gcmVzLmpzb24oKSlcbiAgICAgICAgICAudGhlbigobWFuaWZlc3QpID0+IHtcbiAgICAgICAgICAgIHdpbmRvdy5fX0RFVl9QQUdFU19NQU5JRkVTVCA9IG1hbmlmZXN0XG4gICAgICAgICAgfSlcbiAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYEZhaWxlZCB0byBmZXRjaCBkZXZQYWdlc01hbmlmZXN0YCwgZXJyKVxuICAgICAgICAgIH0pXG4gICAgICB9IGVsc2UgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZignc2VydmVyT25seUNoYW5nZXMnKSAhPT0gLTEpIHtcbiAgICAgICAgY29uc3QgeyBwYWdlcyB9ID0gSlNPTi5wYXJzZShldmVudC5kYXRhKVxuICAgICAgICBjb25zdCByb3V0ZXIgPSB3aW5kb3cubmV4dC5yb3V0ZXJcblxuICAgICAgICBpZiAocGFnZXMuaW5jbHVkZXMocm91dGVyLnBhdGhuYW1lKSkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdSZWZyZXNoaW5nIHBhZ2UgZGF0YSBkdWUgdG8gc2VydmVyLXNpZGUgY2hhbmdlJylcblxuICAgICAgICAgIGJ1aWxkSW5kaWNhdG9ySGFuZGxlcignYnVpbGRpbmcnKVxuXG4gICAgICAgICAgY29uc3QgY2xlYXJJbmRpY2F0b3IgPSAoKSA9PiBidWlsZEluZGljYXRvckhhbmRsZXIoJ2J1aWx0JylcblxuICAgICAgICAgIHJvdXRlclxuICAgICAgICAgICAgLnJlcGxhY2UoXG4gICAgICAgICAgICAgIHJvdXRlci5wYXRobmFtZSArXG4gICAgICAgICAgICAgICAgJz8nICtcbiAgICAgICAgICAgICAgICBTdHJpbmcoXG4gICAgICAgICAgICAgICAgICBxdWVyeXN0cmluZy5hc3NpZ24oXG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5c3RyaW5nLnVybFF1ZXJ5VG9TZWFyY2hQYXJhbXMocm91dGVyLnF1ZXJ5KSxcbiAgICAgICAgICAgICAgICAgICAgbmV3IFVSTFNlYXJjaFBhcmFtcyhsb2NhdGlvbi5zZWFyY2gpXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgcm91dGVyLmFzUGF0aFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmZpbmFsbHkoY2xlYXJJbmRpY2F0b3IpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgZGV2UGFnZXNNYW5pZmVzdExpc3RlbmVyLnVuZmlsdGVyZWQgPSB0cnVlXG4gICAgZ2V0RXZlbnRTb3VyY2VXcmFwcGVyKHt9KS5hZGRNZXNzYWdlTGlzdGVuZXIoZGV2UGFnZXNNYW5pZmVzdExpc3RlbmVyKVxuXG4gICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9CVUlMRF9JTkRJQ0FUT1IpIHtcbiAgICAgIGluaXRpYWxpemVCdWlsZFdhdGNoZXIoKGhhbmRsZXIpID0+IHtcbiAgICAgICAgYnVpbGRJbmRpY2F0b3JIYW5kbGVyID0gaGFuZGxlclxuICAgICAgfSlcbiAgICB9XG4gICAgaWYgKFxuICAgICAgcHJvY2Vzcy5lbnYuX19ORVhUX1BSRVJFTkRFUl9JTkRJQ0FUT1IgJiZcbiAgICAgIC8vIGRpc2FibGUgYnkgZGVmYXVsdCBpbiBlbGVjdHJvblxuICAgICAgISh0eXBlb2YgcHJvY2VzcyAhPT0gJ3VuZGVmaW5lZCcgJiYgJ2VsZWN0cm9uJyBpbiBwcm9jZXNzLnZlcnNpb25zKVxuICAgICkge1xuICAgICAgaW5pdGlhbGl6ZVByZXJlbmRlckluZGljYXRvcigpXG4gICAgfVxuXG4gICAgLy8gZGVsYXkgcmVuZGVyaW5nIHVudGlsIGFmdGVyIHN0eWxlcyBoYXZlIGJlZW4gYXBwbGllZCBpbiBkZXZlbG9wbWVudFxuICAgIGRpc3BsYXlDb250ZW50KCgpID0+IHtcbiAgICAgIHJlbmRlcihyZW5kZXJDdHgpXG4gICAgfSlcbiAgfSlcbiAgLmNhdGNoKChlcnIpID0+IHtcbiAgICBjb25zb2xlLmVycm9yKCdFcnJvciB3YXMgbm90IGNhdWdodCcsIGVycilcbiAgfSlcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/next-dev.js\n"); /***/ }), @@ -2129,7 +1854,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nexports.__esModule = tru /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nvar _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\");\n\nvar _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\");\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _mitt = _interopRequireDefault(__webpack_require__(/*! ../next-server/lib/mitt */ \"./node_modules/next/dist/next-server/lib/mitt.js\"));\n\nvar _isDynamic = __webpack_require__(/*! ./../next-server/lib/router/utils/is-dynamic */ \"./node_modules/next/dist/next-server/lib/router/utils/is-dynamic.js\");\n\nvar _routeMatcher = __webpack_require__(/*! ./../next-server/lib/router/utils/route-matcher */ \"./node_modules/next/dist/next-server/lib/router/utils/route-matcher.js\");\n\nvar _routeRegex = __webpack_require__(/*! ./../next-server/lib/router/utils/route-regex */ \"./node_modules/next/dist/next-server/lib/router/utils/route-regex.js\");\n\nvar _searchParamsToUrlQuery = __webpack_require__(/*! ./../next-server/lib/router/utils/search-params-to-url-query */ \"./node_modules/next/dist/next-server/lib/router/utils/search-params-to-url-query.js\");\n\nvar _parseRelativeUrl = __webpack_require__(/*! ./../next-server/lib/router/utils/parse-relative-url */ \"./node_modules/next/dist/next-server/lib/router/utils/parse-relative-url.js\");\n\nvar _escapePathDelimiters = _interopRequireDefault(__webpack_require__(/*! ../next-server/lib/router/utils/escape-path-delimiters */ \"./node_modules/next/dist/next-server/lib/router/utils/escape-path-delimiters.js\"));\n\nvar _getAssetPathFromRoute = _interopRequireDefault(__webpack_require__(/*! ./../next-server/lib/router/utils/get-asset-path-from-route */ \"./node_modules/next/dist/next-server/lib/router/utils/get-asset-path-from-route.js\"));\n\nvar _router = __webpack_require__(/*! ../next-server/lib/router/router */ \"./node_modules/next/dist/next-server/lib/router/router.js\");\n\nfunction hasRel(rel, link) {\n try {\n link = document.createElement('link');\n return link.relList.supports(rel);\n } catch (_unused) {}\n}\n\nfunction pageLoadError(route) {\n var error = new Error(\"Error loading \".concat(route));\n error.code = 'PAGE_LOAD_ERROR';\n return error;\n}\n\nvar relPrefetch = hasRel('preload') && !hasRel('prefetch') ? // https://caniuse.com/#feat=link-rel-preload\n// macOS and iOS (Safari does not support prefetch)\n'preload' : // https://caniuse.com/#feat=link-rel-prefetch\n// IE 11, Edge 12+, nearly all evergreen\n'prefetch';\nvar hasNoModule = ('noModule' in document.createElement('script'));\n\nvar requestIdleCallback = window.requestIdleCallback || function (cb) {\n return setTimeout(cb, 1);\n};\n/** @param {string} route */\n\n\nfunction normalizeRoute(route) {\n if (route[0] !== '/') {\n throw new Error(\"Route name should start with a \\\"/\\\", got \\\"\".concat(route, \"\\\"\"));\n }\n\n if (route === '/') return route;\n return route.replace(/\\/$/, '');\n}\n\nfunction appendLink(href, rel, as) {\n return new Promise(function (res, rej, link) {\n link = document.createElement('link');\n link.crossOrigin = undefined;\n link.href = href;\n link.rel = rel;\n if (as) link.as = as;\n link.onload = res;\n link.onerror = rej;\n document.head.appendChild(link);\n });\n}\n\nvar PageLoader = /*#__PURE__*/function () {\n function PageLoader(buildId, assetPrefix, initialPage) {\n _classCallCheck(this, PageLoader);\n\n this.buildId = buildId;\n this.assetPrefix = assetPrefix;\n this.pageCache = {};\n this.pageRegisterEvents = (0, _mitt[\"default\"])();\n this.loadingRoutes = {\n // By default these 2 pages are being loaded in the initial html\n '/_app': true\n }; // TODO: get rid of this limitation for rendering the error page\n\n if (initialPage !== '/_error') {\n this.loadingRoutes[initialPage] = true;\n }\n\n if (false) {}\n /** @type {Promise>} */\n\n\n this.promisedSsgManifest = new Promise(function (resolve) {\n if (window.__SSG_MANIFEST) {\n resolve(window.__SSG_MANIFEST);\n } else {\n window.__SSG_MANIFEST_CB = function () {\n resolve(window.__SSG_MANIFEST);\n };\n }\n });\n } // Returns a promise for the dependencies for a particular route\n\n\n _createClass(PageLoader, [{\n key: \"getDependencies\",\n value: function getDependencies(route) {\n var _this = this;\n\n return this.promisedBuildManifest.then(function (m) {\n var _this$pageRegisterEve;\n\n return m[route] ? m[route].map(function (url) {\n return \"\".concat(_this.assetPrefix, \"/_next/\").concat(encodeURI(url));\n }) : (_this$pageRegisterEve = _this.pageRegisterEvents.emit(route, {\n error: pageLoadError(route)\n })) != null ? _this$pageRegisterEve : [];\n });\n }\n /**\n * @param {string} href the route href (file-system path)\n * @param {string} asPath the URL as shown in browser (virtual path); used for dynamic routes\n */\n\n }, {\n key: \"getDataHref\",\n value: function getDataHref(href, asPath, ssg) {\n var _this2 = this;\n\n var _ref = (0, _parseRelativeUrl.parseRelativeUrl)(href),\n hrefPathname = _ref.pathname,\n searchParams = _ref.searchParams,\n search = _ref.search;\n\n var query = (0, _searchParamsToUrlQuery.searchParamsToUrlQuery)(searchParams);\n\n var _ref2 = (0, _parseRelativeUrl.parseRelativeUrl)(asPath),\n asPathname = _ref2.pathname;\n\n var route = normalizeRoute(hrefPathname);\n\n var getHrefForSlug =\n /** @type string */\n function getHrefForSlug(path) {\n var dataRoute = (0, _getAssetPathFromRoute[\"default\"])(path, '.json');\n return (0, _router.addBasePath)(\"/_next/data/\".concat(_this2.buildId).concat(dataRoute).concat(ssg ? '' : search));\n };\n\n var isDynamic = (0, _isDynamic.isDynamicRoute)(route),\n interpolatedRoute;\n\n if (isDynamic) {\n var dynamicRegex = (0, _routeRegex.getRouteRegex)(route);\n var dynamicGroups = dynamicRegex.groups;\n var dynamicMatches = // Try to match the dynamic route against the asPath\n (0, _routeMatcher.getRouteMatcher)(dynamicRegex)(asPathname) || // Fall back to reading the values from the href\n // TODO: should this take priority; also need to change in the router.\n query;\n interpolatedRoute = route;\n\n if (!Object.keys(dynamicGroups).every(function (param) {\n var value = dynamicMatches[param] || '';\n var _dynamicGroups$param = dynamicGroups[param],\n repeat = _dynamicGroups$param.repeat,\n optional = _dynamicGroups$param.optional; // support single-level catch-all\n // TODO: more robust handling for user-error (passing `/`)\n\n var replaced = \"[\".concat(repeat ? '...' : '').concat(param, \"]\");\n\n if (optional) {\n replaced = \"\".concat(!value ? '/' : '', \"[\").concat(replaced, \"]\");\n }\n\n if (repeat && !Array.isArray(value)) value = [value];\n return (optional || param in dynamicMatches) && ( // Interpolate group into data URL if present\n interpolatedRoute = interpolatedRoute.replace(replaced, repeat ? value.map(_escapePathDelimiters[\"default\"]).join('/') : (0, _escapePathDelimiters[\"default\"])(value)) || '/');\n })) {\n interpolatedRoute = ''; // did not satisfy all requirements\n // n.b. We ignore this error because we handle warning for this case in\n // development in the `` component directly.\n }\n }\n\n return isDynamic ? interpolatedRoute && getHrefForSlug(interpolatedRoute) : getHrefForSlug(route);\n }\n /**\n * @param {string} href the route href (file-system path)\n * @param {string} asPath the URL as shown in browser (virtual path); used for dynamic routes\n */\n\n }, {\n key: \"prefetchData\",\n value: function prefetchData(href, asPath) {\n var _this3 = this;\n\n var _ref3 = (0, _parseRelativeUrl.parseRelativeUrl)(href),\n hrefPathname = _ref3.pathname;\n\n var route = normalizeRoute(hrefPathname);\n return this.promisedSsgManifest.then(function (s, _dataHref) {\n requestIdleCallback(function () {\n // Check if the route requires a data file\n s.has(route) && ( // Try to generate data href, noop when falsy\n _dataHref = _this3.getDataHref(href, asPath, true)) && // noop when data has already been prefetched (dedupe)\n !document.querySelector(\"link[rel=\\\"\".concat(relPrefetch, \"\\\"][href^=\\\"\").concat(_dataHref, \"\\\"]\")) && // Inject the `` tag for above computed `href`.\n appendLink(_dataHref, relPrefetch, 'fetch');\n });\n });\n }\n }, {\n key: \"loadPage\",\n value: function loadPage(route) {\n var _this4 = this;\n\n route = normalizeRoute(route);\n return new Promise(function (resolve, reject) {\n // If there's a cached version of the page, let's use it.\n var cachedPage = _this4.pageCache[route];\n\n if (cachedPage) {\n var error = cachedPage.error,\n page = cachedPage.page,\n mod = cachedPage.mod;\n error ? reject(error) : resolve({\n page: page,\n mod: mod\n });\n return;\n }\n\n var fire = function fire(_ref4) {\n var error = _ref4.error,\n page = _ref4.page,\n mod = _ref4.mod;\n\n _this4.pageRegisterEvents.off(route, fire);\n\n delete _this4.loadingRoutes[route];\n\n if (error) {\n reject(error);\n } else {\n resolve({\n page: page,\n mod: mod\n });\n }\n }; // Register a listener to get the page\n\n\n _this4.pageRegisterEvents.on(route, fire);\n\n if (!_this4.loadingRoutes[route]) {\n _this4.loadingRoutes[route] = true;\n\n if (false) {} else {\n // Development only. In production the page file is part of the build manifest\n route = normalizeRoute(route);\n var scriptRoute = (0, _getAssetPathFromRoute[\"default\"])(route, '.js');\n var url = \"\".concat(_this4.assetPrefix, \"/_next/static/chunks/pages\").concat(encodeURI(scriptRoute));\n\n _this4.loadScript(url, route);\n }\n }\n });\n }\n }, {\n key: \"loadScript\",\n value: function loadScript(url, route) {\n var _this5 = this;\n\n var script = document.createElement('script');\n\n if (false) {}\n\n script.crossOrigin = undefined;\n script.src = url;\n\n script.onerror = function () {\n _this5.pageRegisterEvents.emit(route, {\n error: pageLoadError(url)\n });\n };\n\n document.body.appendChild(script);\n } // This method if called by the route code.\n\n }, {\n key: \"registerPage\",\n value: function registerPage(route, regFn) {\n var _this6 = this;\n\n var register = function register() {\n try {\n var mod = regFn();\n var pageData = {\n page: mod[\"default\"] || mod,\n mod: mod\n };\n _this6.pageCache[route] = pageData;\n\n _this6.pageRegisterEvents.emit(route, pageData);\n } catch (error) {\n _this6.pageCache[route] = {\n error: error\n };\n\n _this6.pageRegisterEvents.emit(route, {\n error: error\n });\n }\n };\n\n if (true) {\n // Wait for webpack to become idle if it's not.\n // More info: https://github.com/vercel/next.js/pull/1511\n if ( true && module.hot.status() !== 'idle') {\n console.log(\"Waiting for webpack to become \\\"idle\\\" to initialize the page: \\\"\".concat(route, \"\\\"\"));\n\n var check = function check(status) {\n if (status === 'idle') {\n module.hot.removeStatusHandler(check);\n register();\n }\n };\n\n module.hot.status(check);\n return;\n }\n }\n\n register();\n }\n /**\n * @param {string} route\n * @param {boolean} [isDependency]\n */\n\n }, {\n key: \"prefetch\",\n value: function prefetch(route, isDependency) {\n var _this7 = this;\n\n // https://github.com/GoogleChromeLabs/quicklink/blob/453a661fa1fa940e2d2e044452398e38c67a98fb/src/index.mjs#L115-L118\n // License: Apache 2.0\n var cn;\n\n if (cn = navigator.connection) {\n // Don't prefetch if using 2G or if Save-Data is enabled.\n if (cn.saveData || /2g/.test(cn.effectiveType)) return Promise.resolve();\n }\n /** @type {string} */\n\n\n var url;\n\n if (isDependency) {\n url = route;\n } else {\n if (true) {\n route = normalizeRoute(route);\n var ext = false ? undefined : '.js';\n var scriptRoute = (0, _getAssetPathFromRoute[\"default\"])(route, ext);\n url = \"\".concat(this.assetPrefix, \"/_next/static/\").concat(encodeURIComponent(this.buildId), \"/pages\").concat(encodeURI(scriptRoute));\n }\n }\n\n return Promise.all(document.querySelector(\"link[rel=\\\"\".concat(relPrefetch, \"\\\"][href^=\\\"\").concat(url, \"\\\"]\")) ? [] : [url && appendLink(url, relPrefetch, url.endsWith('.css') ? 'style' : 'script'), false && false]).then( // do not return any data\n function () {}, // swallow prefetch errors\n function () {});\n }\n }]);\n\n return PageLoader;\n}();\n\nexports[\"default\"] = PageLoader;\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.i);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL2NsaWVudC9wYWdlLWxvYWRlci5qcz9kMTcyIl0sIm5hbWVzIjpbImxpbmsiLCJkb2N1bWVudCIsImVycm9yIiwicmVsUHJlZmV0Y2giLCJoYXNSZWwiLCJoYXNOb01vZHVsZSIsInJlcXVlc3RJZGxlQ2FsbGJhY2siLCJ3aW5kb3ciLCJzZXRUaW1lb3V0Iiwicm91dGUiLCJwcm9jZXNzIiwiUGFnZUxvYWRlciIsImNvbnN0cnVjdG9yIiwiaW5pdGlhbFBhZ2UiLCJyZXNvbHZlIiwibSIsInVybCIsImFzc2V0UHJlZml4IiwiZW5jb2RlVVJJIiwicGFnZUxvYWRFcnJvciIsInBhdGhuYW1lIiwicXVlcnkiLCJub3JtYWxpemVSb3V0ZSIsImdldEhyZWZGb3JTbHVnIiwicGF0aCIsImRhdGFSb3V0ZSIsImJ1aWxkSWQiLCJzc2ciLCJpc0R5bmFtaWMiLCJkeW5hbWljUmVnZXgiLCJkeW5hbWljR3JvdXBzIiwiZHluYW1pY01hdGNoZXMiLCJpbnRlcnBvbGF0ZWRSb3V0ZSIsIk9iamVjdCIsInBhcmFtIiwidmFsdWUiLCJyZXBsYWNlZCIsInJlcGVhdCIsIkFycmF5Iiwib3B0aW9uYWwiLCJlc2NhcGVQYXRoRGVsaW1pdGVycyIsInMiLCJfZGF0YUhyZWYiLCJhcHBlbmRMaW5rIiwibG9hZFBhZ2UiLCJjYWNoZWRQYWdlIiwicmVqZWN0IiwicGFnZSIsIm1vZCIsImZpcmUiLCJzY3JpcHRSb3V0ZSIsImxvYWRTY3JpcHQiLCJzY3JpcHQiLCJyZWdpc3RlciIsInJlZ0ZuIiwicGFnZURhdGEiLCJtb2R1bGUiLCJjb25zb2xlIiwiY2hlY2siLCJzdGF0dXMiLCJjbiIsIm5hdmlnYXRvciIsIlByb21pc2UiLCJleHQiLCJlbmNvZGVVUklDb21wb25lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUEsMkJBQTJCO0FBQ3pC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QixDQUFuQixFQUFnRCxPQUFPRSxPQUFPLENBQWQsT0FBT0EsRUFBUDtBQUdsRDtBQUFBOzs7QUFDQTs7QUFDQSx3QkFBa0I7QUFDaEI5QyxXQUFHLEdBQUhBO0FBREYsYUFFTztBQUNMLGtCQUEyQztBQUN6Q1AsZUFBSyxHQUFHYSxjQUFjLENBQXRCYixLQUFzQixDQUF0QkE7QUFFQSxjQUFNc0QsR0FBRyxHQUNQckQscUJBREY7QUFFQSxjQUFNd0MsV0FBVyxHQUFHLDhDQUFwQixHQUFvQixDQUFwQjtBQUVBbEMsYUFBRyxhQUFNLEtBQUtDLFdBQVgsMkJBQXVDK0Msa0JBQWtCLENBQzFELEtBRDBELFFBQXpELG1CQUVPOUMsU0FBUyxDQUZuQkYsV0FFbUIsQ0FGaEIsQ0FBSEE7QUFJSDtBQUVEOztBQUFBLGFBQU8sT0FBTyxDQUFQLElBQ0xmLFFBQVEsQ0FBUkEsbUNBQW9DRSxXQUFwQ0YsNkNBRUksQ0FDRWUsR0FBRyxJQUNEMkIsVUFBVSxtQkFHUjNCLEdBQUcsQ0FBSEEsNkJBTE4sUUFFYyxDQUZkLEVBT0VOLFVBRUUsS0FUSixDQUhDLFFBcUJMO0FBQ0Esa0JBQU0sQ0F0QkQsR0F1Qkw7QUFDQSxrQkFBTSxDQXhCUixDQUFPLENBQVA7QUE5UjRCIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvcGFnZS1sb2FkZXIuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbWl0dCBmcm9tICcuLi9uZXh0LXNlcnZlci9saWIvbWl0dCdcbmltcG9ydCB7IGlzRHluYW1pY1JvdXRlIH0gZnJvbSAnLi8uLi9uZXh0LXNlcnZlci9saWIvcm91dGVyL3V0aWxzL2lzLWR5bmFtaWMnXG5pbXBvcnQgeyBnZXRSb3V0ZU1hdGNoZXIgfSBmcm9tICcuLy4uL25leHQtc2VydmVyL2xpYi9yb3V0ZXIvdXRpbHMvcm91dGUtbWF0Y2hlcidcbmltcG9ydCB7IGdldFJvdXRlUmVnZXggfSBmcm9tICcuLy4uL25leHQtc2VydmVyL2xpYi9yb3V0ZXIvdXRpbHMvcm91dGUtcmVnZXgnXG5pbXBvcnQgeyBzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5IH0gZnJvbSAnLi8uLi9uZXh0LXNlcnZlci9saWIvcm91dGVyL3V0aWxzL3NlYXJjaC1wYXJhbXMtdG8tdXJsLXF1ZXJ5J1xuaW1wb3J0IHsgcGFyc2VSZWxhdGl2ZVVybCB9IGZyb20gJy4vLi4vbmV4dC1zZXJ2ZXIvbGliL3JvdXRlci91dGlscy9wYXJzZS1yZWxhdGl2ZS11cmwnXG5pbXBvcnQgZXNjYXBlUGF0aERlbGltaXRlcnMgZnJvbSAnLi4vbmV4dC1zZXJ2ZXIvbGliL3JvdXRlci91dGlscy9lc2NhcGUtcGF0aC1kZWxpbWl0ZXJzJ1xuaW1wb3J0IGdldEFzc2V0UGF0aEZyb21Sb3V0ZSBmcm9tICcuLy4uL25leHQtc2VydmVyL2xpYi9yb3V0ZXIvdXRpbHMvZ2V0LWFzc2V0LXBhdGgtZnJvbS1yb3V0ZSdcbmltcG9ydCB7IGFkZEJhc2VQYXRoIH0gZnJvbSAnLi4vbmV4dC1zZXJ2ZXIvbGliL3JvdXRlci9yb3V0ZXInXG5cbmZ1bmN0aW9uIGhhc1JlbChyZWwsIGxpbmspIHtcbiAgdHJ5IHtcbiAgICBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGluaycpXG4gICAgcmV0dXJuIGxpbmsucmVsTGlzdC5zdXBwb3J0cyhyZWwpXG4gIH0gY2F0Y2gge31cbn1cblxuZnVuY3Rpb24gcGFnZUxvYWRFcnJvcihyb3V0ZSkge1xuICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihgRXJyb3IgbG9hZGluZyAke3JvdXRlfWApXG4gIGVycm9yLmNvZGUgPSAnUEFHRV9MT0FEX0VSUk9SJ1xuICByZXR1cm4gZXJyb3Jcbn1cblxuY29uc3QgcmVsUHJlZmV0Y2ggPVxuICBoYXNSZWwoJ3ByZWxvYWQnKSAmJiAhaGFzUmVsKCdwcmVmZXRjaCcpXG4gICAgPyAvLyBodHRwczovL2Nhbml1c2UuY29tLyNmZWF0PWxpbmstcmVsLXByZWxvYWRcbiAgICAgIC8vIG1hY09TIGFuZCBpT1MgKFNhZmFyaSBkb2VzIG5vdCBzdXBwb3J0IHByZWZldGNoKVxuICAgICAgJ3ByZWxvYWQnXG4gICAgOiAvLyBodHRwczovL2Nhbml1c2UuY29tLyNmZWF0PWxpbmstcmVsLXByZWZldGNoXG4gICAgICAvLyBJRSAxMSwgRWRnZSAxMissIG5lYXJseSBhbGwgZXZlcmdyZWVuXG4gICAgICAncHJlZmV0Y2gnXG5cbmNvbnN0IGhhc05vTW9kdWxlID0gJ25vTW9kdWxlJyBpbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKVxuXG5jb25zdCByZXF1ZXN0SWRsZUNhbGxiYWNrID1cbiAgd2luZG93LnJlcXVlc3RJZGxlQ2FsbGJhY2sgfHxcbiAgZnVuY3Rpb24gKGNiKSB7XG4gICAgcmV0dXJuIHNldFRpbWVvdXQoY2IsIDEpXG4gIH1cblxuLyoqIEBwYXJhbSB7c3RyaW5nfSByb3V0ZSAqL1xuZnVuY3Rpb24gbm9ybWFsaXplUm91dGUocm91dGUpIHtcbiAgaWYgKHJvdXRlWzBdICE9PSAnLycpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFJvdXRlIG5hbWUgc2hvdWxkIHN0YXJ0IHdpdGggYSBcIi9cIiwgZ290IFwiJHtyb3V0ZX1cImApXG4gIH1cblxuICBpZiAocm91dGUgPT09ICcvJykgcmV0dXJuIHJvdXRlXG4gIHJldHVybiByb3V0ZS5yZXBsYWNlKC9cXC8kLywgJycpXG59XG5cbmZ1bmN0aW9uIGFwcGVuZExpbmsoaHJlZiwgcmVsLCBhcykge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlcywgcmVqLCBsaW5rKSA9PiB7XG4gICAgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKVxuICAgIGxpbmsuY3Jvc3NPcmlnaW4gPSBwcm9jZXNzLmVudi5fX05FWFRfQ1JPU1NfT1JJR0lOXG4gICAgbGluay5ocmVmID0gaHJlZlxuICAgIGxpbmsucmVsID0gcmVsXG4gICAgaWYgKGFzKSBsaW5rLmFzID0gYXNcblxuICAgIGxpbmsub25sb2FkID0gcmVzXG4gICAgbGluay5vbmVycm9yID0gcmVqXG5cbiAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGxpbmspXG4gIH0pXG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBhZ2VMb2FkZXIge1xuICBjb25zdHJ1Y3RvcihidWlsZElkLCBhc3NldFByZWZpeCwgaW5pdGlhbFBhZ2UpIHtcbiAgICB0aGlzLmJ1aWxkSWQgPSBidWlsZElkXG4gICAgdGhpcy5hc3NldFByZWZpeCA9IGFzc2V0UHJlZml4XG5cbiAgICB0aGlzLnBhZ2VDYWNoZSA9IHt9XG4gICAgdGhpcy5wYWdlUmVnaXN0ZXJFdmVudHMgPSBtaXR0KClcbiAgICB0aGlzLmxvYWRpbmdSb3V0ZXMgPSB7XG4gICAgICAvLyBCeSBkZWZhdWx0IHRoZXNlIDIgcGFnZXMgYXJlIGJlaW5nIGxvYWRlZCBpbiB0aGUgaW5pdGlhbCBodG1sXG4gICAgICAnL19hcHAnOiB0cnVlLFxuICAgIH1cblxuICAgIC8vIFRPRE86IGdldCByaWQgb2YgdGhpcyBsaW1pdGF0aW9uIGZvciByZW5kZXJpbmcgdGhlIGVycm9yIHBhZ2VcbiAgICBpZiAoaW5pdGlhbFBhZ2UgIT09ICcvX2Vycm9yJykge1xuICAgICAgdGhpcy5sb2FkaW5nUm91dGVzW2luaXRpYWxQYWdlXSA9IHRydWVcbiAgICB9XG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgdGhpcy5wcm9taXNlZEJ1aWxkTWFuaWZlc3QgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICBpZiAod2luZG93Ll9fQlVJTERfTUFOSUZFU1QpIHtcbiAgICAgICAgICByZXNvbHZlKHdpbmRvdy5fX0JVSUxEX01BTklGRVNUKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHdpbmRvdy5fX0JVSUxEX01BTklGRVNUX0NCID0gKCkgPT4ge1xuICAgICAgICAgICAgcmVzb2x2ZSh3aW5kb3cuX19CVUlMRF9NQU5JRkVTVClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuICAgIC8qKiBAdHlwZSB7UHJvbWlzZTxTZXQ8c3RyaW5nPj59ICovXG4gICAgdGhpcy5wcm9taXNlZFNzZ01hbmlmZXN0ID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIGlmICh3aW5kb3cuX19TU0dfTUFOSUZFU1QpIHtcbiAgICAgICAgcmVzb2x2ZSh3aW5kb3cuX19TU0dfTUFOSUZFU1QpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB3aW5kb3cuX19TU0dfTUFOSUZFU1RfQ0IgPSAoKSA9PiB7XG4gICAgICAgICAgcmVzb2x2ZSh3aW5kb3cuX19TU0dfTUFOSUZFU1QpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLy8gUmV0dXJucyBhIHByb21pc2UgZm9yIHRoZSBkZXBlbmRlbmNpZXMgZm9yIGEgcGFydGljdWxhciByb3V0ZVxuICBnZXREZXBlbmRlbmNpZXMocm91dGUpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9taXNlZEJ1aWxkTWFuaWZlc3QudGhlbigobSkgPT4ge1xuICAgICAgcmV0dXJuIG1bcm91dGVdXG4gICAgICAgID8gbVtyb3V0ZV0ubWFwKCh1cmwpID0+IGAke3RoaXMuYXNzZXRQcmVmaXh9L19uZXh0LyR7ZW5jb2RlVVJJKHVybCl9YClcbiAgICAgICAgOiB0aGlzLnBhZ2VSZWdpc3RlckV2ZW50cy5lbWl0KHJvdXRlLCB7XG4gICAgICAgICAgICBlcnJvcjogcGFnZUxvYWRFcnJvcihyb3V0ZSksXG4gICAgICAgICAgfSkgPz8gW11cbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBocmVmIHRoZSByb3V0ZSBocmVmIChmaWxlLXN5c3RlbSBwYXRoKVxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXNQYXRoIHRoZSBVUkwgYXMgc2hvd24gaW4gYnJvd3NlciAodmlydHVhbCBwYXRoKTsgdXNlZCBmb3IgZHluYW1pYyByb3V0ZXNcbiAgICovXG4gIGdldERhdGFIcmVmKGhyZWYsIGFzUGF0aCwgc3NnKSB7XG4gICAgY29uc3QgeyBwYXRobmFtZTogaHJlZlBhdGhuYW1lLCBzZWFyY2hQYXJhbXMsIHNlYXJjaCB9ID0gcGFyc2VSZWxhdGl2ZVVybChcbiAgICAgIGhyZWZcbiAgICApXG4gICAgY29uc3QgcXVlcnkgPSBzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5KHNlYXJjaFBhcmFtcylcbiAgICBjb25zdCB7IHBhdGhuYW1lOiBhc1BhdGhuYW1lIH0gPSBwYXJzZVJlbGF0aXZlVXJsKGFzUGF0aClcbiAgICBjb25zdCByb3V0ZSA9IG5vcm1hbGl6ZVJvdXRlKGhyZWZQYXRobmFtZSlcblxuICAgIGNvbnN0IGdldEhyZWZGb3JTbHVnID0gKC8qKiBAdHlwZSBzdHJpbmcgKi8gcGF0aCkgPT4ge1xuICAgICAgY29uc3QgZGF0YVJvdXRlID0gZ2V0QXNzZXRQYXRoRnJvbVJvdXRlKHBhdGgsICcuanNvbicpXG4gICAgICByZXR1cm4gYWRkQmFzZVBhdGgoXG4gICAgICAgIGAvX25leHQvZGF0YS8ke3RoaXMuYnVpbGRJZH0ke2RhdGFSb3V0ZX0ke3NzZyA/ICcnIDogc2VhcmNofWBcbiAgICAgIClcbiAgICB9XG5cbiAgICBsZXQgaXNEeW5hbWljID0gaXNEeW5hbWljUm91dGUocm91dGUpLFxuICAgICAgaW50ZXJwb2xhdGVkUm91dGVcbiAgICBpZiAoaXNEeW5hbWljKSB7XG4gICAgICBjb25zdCBkeW5hbWljUmVnZXggPSBnZXRSb3V0ZVJlZ2V4KHJvdXRlKVxuICAgICAgY29uc3QgZHluYW1pY0dyb3VwcyA9IGR5bmFtaWNSZWdleC5ncm91cHNcbiAgICAgIGNvbnN0IGR5bmFtaWNNYXRjaGVzID1cbiAgICAgICAgLy8gVHJ5IHRvIG1hdGNoIHRoZSBkeW5hbWljIHJvdXRlIGFnYWluc3QgdGhlIGFzUGF0aFxuICAgICAgICBnZXRSb3V0ZU1hdGNoZXIoZHluYW1pY1JlZ2V4KShhc1BhdGhuYW1lKSB8fFxuICAgICAgICAvLyBGYWxsIGJhY2sgdG8gcmVhZGluZyB0aGUgdmFsdWVzIGZyb20gdGhlIGhyZWZcbiAgICAgICAgLy8gVE9ETzogc2hvdWxkIHRoaXMgdGFrZSBwcmlvcml0eTsgYWxzbyBuZWVkIHRvIGNoYW5nZSBpbiB0aGUgcm91dGVyLlxuICAgICAgICBxdWVyeVxuXG4gICAgICBpbnRlcnBvbGF0ZWRSb3V0ZSA9IHJvdXRlXG4gICAgICBpZiAoXG4gICAgICAgICFPYmplY3Qua2V5cyhkeW5hbWljR3JvdXBzKS5ldmVyeSgocGFyYW0pID0+IHtcbiAgICAgICAgICBsZXQgdmFsdWUgPSBkeW5hbWljTWF0Y2hlc1twYXJhbV0gfHwgJydcbiAgICAgICAgICBjb25zdCB7IHJlcGVhdCwgb3B0aW9uYWwgfSA9IGR5bmFtaWNHcm91cHNbcGFyYW1dXG5cbiAgICAgICAgICAvLyBzdXBwb3J0IHNpbmdsZS1sZXZlbCBjYXRjaC1hbGxcbiAgICAgICAgICAvLyBUT0RPOiBtb3JlIHJvYnVzdCBoYW5kbGluZyBmb3IgdXNlci1lcnJvciAocGFzc2luZyBgL2ApXG4gICAgICAgICAgbGV0IHJlcGxhY2VkID0gYFske3JlcGVhdCA/ICcuLi4nIDogJyd9JHtwYXJhbX1dYFxuICAgICAgICAgIGlmIChvcHRpb25hbCkge1xuICAgICAgICAgICAgcmVwbGFjZWQgPSBgJHshdmFsdWUgPyAnLycgOiAnJ31bJHtyZXBsYWNlZH1dYFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAocmVwZWF0ICYmICFBcnJheS5pc0FycmF5KHZhbHVlKSkgdmFsdWUgPSBbdmFsdWVdXG5cbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKG9wdGlvbmFsIHx8IHBhcmFtIGluIGR5bmFtaWNNYXRjaGVzKSAmJlxuICAgICAgICAgICAgLy8gSW50ZXJwb2xhdGUgZ3JvdXAgaW50byBkYXRhIFVSTCBpZiBwcmVzZW50XG4gICAgICAgICAgICAoaW50ZXJwb2xhdGVkUm91dGUgPVxuICAgICAgICAgICAgICBpbnRlcnBvbGF0ZWRSb3V0ZS5yZXBsYWNlKFxuICAgICAgICAgICAgICAgIHJlcGxhY2VkLFxuICAgICAgICAgICAgICAgIHJlcGVhdFxuICAgICAgICAgICAgICAgICAgPyB2YWx1ZS5tYXAoZXNjYXBlUGF0aERlbGltaXRlcnMpLmpvaW4oJy8nKVxuICAgICAgICAgICAgICAgICAgOiBlc2NhcGVQYXRoRGVsaW1pdGVycyh2YWx1ZSlcbiAgICAgICAgICAgICAgKSB8fCAnLycpXG4gICAgICAgICAgKVxuICAgICAgICB9KVxuICAgICAgKSB7XG4gICAgICAgIGludGVycG9sYXRlZFJvdXRlID0gJycgLy8gZGlkIG5vdCBzYXRpc2Z5IGFsbCByZXF1aXJlbWVudHNcblxuICAgICAgICAvLyBuLmIuIFdlIGlnbm9yZSB0aGlzIGVycm9yIGJlY2F1c2Ugd2UgaGFuZGxlIHdhcm5pbmcgZm9yIHRoaXMgY2FzZSBpblxuICAgICAgICAvLyBkZXZlbG9wbWVudCBpbiB0aGUgYDxMaW5rPmAgY29tcG9uZW50IGRpcmVjdGx5LlxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBpc0R5bmFtaWNcbiAgICAgID8gaW50ZXJwb2xhdGVkUm91dGUgJiYgZ2V0SHJlZkZvclNsdWcoaW50ZXJwb2xhdGVkUm91dGUpXG4gICAgICA6IGdldEhyZWZGb3JTbHVnKHJvdXRlKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBocmVmIHRoZSByb3V0ZSBocmVmIChmaWxlLXN5c3RlbSBwYXRoKVxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXNQYXRoIHRoZSBVUkwgYXMgc2hvd24gaW4gYnJvd3NlciAodmlydHVhbCBwYXRoKTsgdXNlZCBmb3IgZHluYW1pYyByb3V0ZXNcbiAgICovXG4gIHByZWZldGNoRGF0YShocmVmLCBhc1BhdGgpIHtcbiAgICBjb25zdCB7IHBhdGhuYW1lOiBocmVmUGF0aG5hbWUgfSA9IHBhcnNlUmVsYXRpdmVVcmwoaHJlZilcbiAgICBjb25zdCByb3V0ZSA9IG5vcm1hbGl6ZVJvdXRlKGhyZWZQYXRobmFtZSlcbiAgICByZXR1cm4gdGhpcy5wcm9taXNlZFNzZ01hbmlmZXN0LnRoZW4oKHMsIF9kYXRhSHJlZikgPT4ge1xuICAgICAgcmVxdWVzdElkbGVDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIC8vIENoZWNrIGlmIHRoZSByb3V0ZSByZXF1aXJlcyBhIGRhdGEgZmlsZVxuICAgICAgICBzLmhhcyhyb3V0ZSkgJiZcbiAgICAgICAgICAvLyBUcnkgdG8gZ2VuZXJhdGUgZGF0YSBocmVmLCBub29wIHdoZW4gZmFsc3lcbiAgICAgICAgICAoX2RhdGFIcmVmID0gdGhpcy5nZXREYXRhSHJlZihocmVmLCBhc1BhdGgsIHRydWUpKSAmJlxuICAgICAgICAgIC8vIG5vb3Agd2hlbiBkYXRhIGhhcyBhbHJlYWR5IGJlZW4gcHJlZmV0Y2hlZCAoZGVkdXBlKVxuICAgICAgICAgICFkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgICAgYGxpbmtbcmVsPVwiJHtyZWxQcmVmZXRjaH1cIl1baHJlZl49XCIke19kYXRhSHJlZn1cIl1gXG4gICAgICAgICAgKSAmJlxuICAgICAgICAgIC8vIEluamVjdCB0aGUgYDxsaW5rIHJlbD1wcmVmZXRjaD5gIHRhZyBmb3IgYWJvdmUgY29tcHV0ZWQgYGhyZWZgLlxuICAgICAgICAgIGFwcGVuZExpbmsoX2RhdGFIcmVmLCByZWxQcmVmZXRjaCwgJ2ZldGNoJylcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxuXG4gIGxvYWRQYWdlKHJvdXRlKSB7XG4gICAgcm91dGUgPSBub3JtYWxpemVSb3V0ZShyb3V0ZSlcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAvLyBJZiB0aGVyZSdzIGEgY2FjaGVkIHZlcnNpb24gb2YgdGhlIHBhZ2UsIGxldCdzIHVzZSBpdC5cbiAgICAgIGNvbnN0IGNhY2hlZFBhZ2UgPSB0aGlzLnBhZ2VDYWNoZVtyb3V0ZV1cbiAgICAgIGlmIChjYWNoZWRQYWdlKSB7XG4gICAgICAgIGNvbnN0IHsgZXJyb3IsIHBhZ2UsIG1vZCB9ID0gY2FjaGVkUGFnZVxuICAgICAgICBlcnJvciA/IHJlamVjdChlcnJvcikgOiByZXNvbHZlKHsgcGFnZSwgbW9kIH0pXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBjb25zdCBmaXJlID0gKHsgZXJyb3IsIHBhZ2UsIG1vZCB9KSA9PiB7XG4gICAgICAgIHRoaXMucGFnZVJlZ2lzdGVyRXZlbnRzLm9mZihyb3V0ZSwgZmlyZSlcbiAgICAgICAgZGVsZXRlIHRoaXMubG9hZGluZ1JvdXRlc1tyb3V0ZV1cblxuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICByZWplY3QoZXJyb3IpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzb2x2ZSh7IHBhZ2UsIG1vZCB9KVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFJlZ2lzdGVyIGEgbGlzdGVuZXIgdG8gZ2V0IHRoZSBwYWdlXG4gICAgICB0aGlzLnBhZ2VSZWdpc3RlckV2ZW50cy5vbihyb3V0ZSwgZmlyZSlcblxuICAgICAgaWYgKCF0aGlzLmxvYWRpbmdSb3V0ZXNbcm91dGVdKSB7XG4gICAgICAgIHRoaXMubG9hZGluZ1JvdXRlc1tyb3V0ZV0gPSB0cnVlXG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgdGhpcy5nZXREZXBlbmRlbmNpZXMocm91dGUpLnRoZW4oKGRlcHMpID0+IHtcbiAgICAgICAgICAgIGRlcHMuZm9yRWFjaCgoZCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgZC5lbmRzV2l0aCgnLmpzJykgJiZcbiAgICAgICAgICAgICAgICAhZG9jdW1lbnQucXVlcnlTZWxlY3Rvcihgc2NyaXB0W3NyY149XCIke2R9XCJdYClcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkU2NyaXB0KGQsIHJvdXRlKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBkLmVuZHNXaXRoKCcuY3NzJykgJiZcbiAgICAgICAgICAgICAgICAhZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgbGlua1tyZWw9c3R5bGVzaGVldF1baHJlZl49XCIke2R9XCJdYClcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgYXBwZW5kTGluayhkLCAnc3R5bGVzaGVldCcpLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBoYW5kbGUgZmFpbHVyZVxuICAgICAgICAgICAgICAgICAgLy8gUmlnaHQgbm93LCB0aGlzIGlzIG5lZWRlZCB0byBwcmV2ZW50IGFuIHVuaGFuZGxlZCByZWplY3Rpb24uXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9KVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIERldmVsb3BtZW50IG9ubHkuIEluIHByb2R1Y3Rpb24gdGhlIHBhZ2UgZmlsZSBpcyBwYXJ0IG9mIHRoZSBidWlsZCBtYW5pZmVzdFxuICAgICAgICAgIHJvdXRlID0gbm9ybWFsaXplUm91dGUocm91dGUpXG4gICAgICAgICAgbGV0IHNjcmlwdFJvdXRlID0gZ2V0QXNzZXRQYXRoRnJvbVJvdXRlKHJvdXRlLCAnLmpzJylcblxuICAgICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuYXNzZXRQcmVmaXh9L19uZXh0L3N0YXRpYy9jaHVua3MvcGFnZXMke2VuY29kZVVSSShcbiAgICAgICAgICAgIHNjcmlwdFJvdXRlXG4gICAgICAgICAgKX1gXG4gICAgICAgICAgdGhpcy5sb2FkU2NyaXB0KHVybCwgcm91dGUpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgbG9hZFNjcmlwdCh1cmwsIHJvdXRlKSB7XG4gICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0JylcbiAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX01PREVSTl9CVUlMRCAmJiBoYXNOb01vZHVsZSkge1xuICAgICAgc2NyaXB0LnR5cGUgPSAnbW9kdWxlJ1xuICAgIH1cbiAgICBzY3JpcHQuY3Jvc3NPcmlnaW4gPSBwcm9jZXNzLmVudi5fX05FWFRfQ1JPU1NfT1JJR0lOXG4gICAgc2NyaXB0LnNyYyA9IHVybFxuICAgIHNjcmlwdC5vbmVycm9yID0gKCkgPT4ge1xuICAgICAgdGhpcy5wYWdlUmVnaXN0ZXJFdmVudHMuZW1pdChyb3V0ZSwgeyBlcnJvcjogcGFnZUxvYWRFcnJvcih1cmwpIH0pXG4gICAgfVxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KVxuICB9XG5cbiAgLy8gVGhpcyBtZXRob2QgaWYgY2FsbGVkIGJ5IHRoZSByb3V0ZSBjb2RlLlxuICByZWdpc3RlclBhZ2Uocm91dGUsIHJlZ0ZuKSB7XG4gICAgY29uc3QgcmVnaXN0ZXIgPSAoKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBtb2QgPSByZWdGbigpXG4gICAgICAgIGNvbnN0IHBhZ2VEYXRhID0geyBwYWdlOiBtb2QuZGVmYXVsdCB8fCBtb2QsIG1vZCB9XG4gICAgICAgIHRoaXMucGFnZUNhY2hlW3JvdXRlXSA9IHBhZ2VEYXRhXG4gICAgICAgIHRoaXMucGFnZVJlZ2lzdGVyRXZlbnRzLmVtaXQocm91dGUsIHBhZ2VEYXRhKVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgdGhpcy5wYWdlQ2FjaGVbcm91dGVdID0geyBlcnJvciB9XG4gICAgICAgIHRoaXMucGFnZVJlZ2lzdGVyRXZlbnRzLmVtaXQocm91dGUsIHsgZXJyb3IgfSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgLy8gV2FpdCBmb3Igd2VicGFjayB0byBiZWNvbWUgaWRsZSBpZiBpdCdzIG5vdC5cbiAgICAgIC8vIE1vcmUgaW5mbzogaHR0cHM6Ly9naXRodWIuY29tL3ZlcmNlbC9uZXh0LmpzL3B1bGwvMTUxMVxuICAgICAgaWYgKG1vZHVsZS5ob3QgJiYgbW9kdWxlLmhvdC5zdGF0dXMoKSAhPT0gJ2lkbGUnKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgIGBXYWl0aW5nIGZvciB3ZWJwYWNrIHRvIGJlY29tZSBcImlkbGVcIiB0byBpbml0aWFsaXplIHRoZSBwYWdlOiBcIiR7cm91dGV9XCJgXG4gICAgICAgIClcblxuICAgICAgICBjb25zdCBjaGVjayA9IChzdGF0dXMpID0+IHtcbiAgICAgICAgICBpZiAoc3RhdHVzID09PSAnaWRsZScpIHtcbiAgICAgICAgICAgIG1vZHVsZS5ob3QucmVtb3ZlU3RhdHVzSGFuZGxlcihjaGVjaylcbiAgICAgICAgICAgIHJlZ2lzdGVyKClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbW9kdWxlLmhvdC5zdGF0dXMoY2hlY2spXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgIH1cblxuICAgIHJlZ2lzdGVyKClcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcm91dGVcbiAgICogQHBhcmFtIHtib29sZWFufSBbaXNEZXBlbmRlbmN5XVxuICAgKi9cbiAgcHJlZmV0Y2gocm91dGUsIGlzRGVwZW5kZW5jeSkge1xuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9Hb29nbGVDaHJvbWVMYWJzL3F1aWNrbGluay9ibG9iLzQ1M2E2NjFmYTFmYTk0MGUyZDJlMDQ0NDUyMzk4ZTM4YzY3YTk4ZmIvc3JjL2luZGV4Lm1qcyNMMTE1LUwxMThcbiAgICAvLyBMaWNlbnNlOiBBcGFjaGUgMi4wXG4gICAgbGV0IGNuXG4gICAgaWYgKChjbiA9IG5hdmlnYXRvci5jb25uZWN0aW9uKSkge1xuICAgICAgLy8gRG9uJ3QgcHJlZmV0Y2ggaWYgdXNpbmcgMkcgb3IgaWYgU2F2ZS1EYXRhIGlzIGVuYWJsZWQuXG4gICAgICBpZiAoY24uc2F2ZURhdGEgfHwgLzJnLy50ZXN0KGNuLmVmZmVjdGl2ZVR5cGUpKSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKClcbiAgICB9XG5cbiAgICAvKiogQHR5cGUge3N0cmluZ30gKi9cbiAgICBsZXQgdXJsXG4gICAgaWYgKGlzRGVwZW5kZW5jeSkge1xuICAgICAgdXJsID0gcm91dGVcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgcm91dGUgPSBub3JtYWxpemVSb3V0ZShyb3V0ZSlcblxuICAgICAgICBjb25zdCBleHQgPVxuICAgICAgICAgIHByb2Nlc3MuZW52Ll9fTkVYVF9NT0RFUk5fQlVJTEQgJiYgaGFzTm9Nb2R1bGUgPyAnLm1vZHVsZS5qcycgOiAnLmpzJ1xuICAgICAgICBjb25zdCBzY3JpcHRSb3V0ZSA9IGdldEFzc2V0UGF0aEZyb21Sb3V0ZShyb3V0ZSwgZXh0KVxuXG4gICAgICAgIHVybCA9IGAke3RoaXMuYXNzZXRQcmVmaXh9L19uZXh0L3N0YXRpYy8ke2VuY29kZVVSSUNvbXBvbmVudChcbiAgICAgICAgICB0aGlzLmJ1aWxkSWRcbiAgICAgICAgKX0vcGFnZXMke2VuY29kZVVSSShzY3JpcHRSb3V0ZSl9YFxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBQcm9taXNlLmFsbChcbiAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYGxpbmtbcmVsPVwiJHtyZWxQcmVmZXRjaH1cIl1baHJlZl49XCIke3VybH1cIl1gKVxuICAgICAgICA/IFtdXG4gICAgICAgIDogW1xuICAgICAgICAgICAgdXJsICYmXG4gICAgICAgICAgICAgIGFwcGVuZExpbmsoXG4gICAgICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgICAgIHJlbFByZWZldGNoLFxuICAgICAgICAgICAgICAgIHVybC5lbmRzV2l0aCgnLmNzcycpID8gJ3N0eWxlJyA6ICdzY3JpcHQnXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nICYmXG4gICAgICAgICAgICAgICFpc0RlcGVuZGVuY3kgJiZcbiAgICAgICAgICAgICAgdGhpcy5nZXREZXBlbmRlbmNpZXMocm91dGUpLnRoZW4oKHVybHMpID0+XG4gICAgICAgICAgICAgICAgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgICAgICAgICB1cmxzLm1hcCgoZGVwZW5kZW5jeVVybCkgPT5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmVmZXRjaChkZXBlbmRlbmN5VXJsLCB0cnVlKVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICBdXG4gICAgKS50aGVuKFxuICAgICAgLy8gZG8gbm90IHJldHVybiBhbnkgZGF0YVxuICAgICAgKCkgPT4ge30sXG4gICAgICAvLyBzd2FsbG93IHByZWZldGNoIGVycm9yc1xuICAgICAgKCkgPT4ge31cbiAgICApXG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/page-loader.js\n"); +eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nvar _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"./node_modules/next/node_modules/@babel/runtime/helpers/classCallCheck.js\");\n\nvar _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ \"./node_modules/next/node_modules/@babel/runtime/helpers/createClass.js\");\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/next/node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nexports.__esModule = true;\nexports[\"default\"] = exports.looseToArray = void 0;\n\nvar _mitt = _interopRequireDefault(__webpack_require__(/*! ../next-server/lib/mitt */ \"./node_modules/next/dist/next-server/lib/mitt.js\"));\n\nvar _router = __webpack_require__(/*! ../next-server/lib/router/router */ \"./node_modules/next/dist/next-server/lib/router/router.js\");\n\nvar _getAssetPathFromRoute = _interopRequireDefault(__webpack_require__(/*! ../next-server/lib/router/utils/get-asset-path-from-route */ \"./node_modules/next/dist/next-server/lib/router/utils/get-asset-path-from-route.js\"));\n\nvar _isDynamic = __webpack_require__(/*! ../next-server/lib/router/utils/is-dynamic */ \"./node_modules/next/dist/next-server/lib/router/utils/is-dynamic.js\");\n\nvar _parseRelativeUrl = __webpack_require__(/*! ../next-server/lib/router/utils/parse-relative-url */ \"./node_modules/next/dist/next-server/lib/router/utils/parse-relative-url.js\");\n\nvar looseToArray = function looseToArray(input) {\n return [].slice.call(input);\n};\n\nexports.looseToArray = looseToArray;\n\nfunction getInitialStylesheets() {\n return looseToArray(document.styleSheets).filter(function (el) {\n return el.ownerNode && el.ownerNode.tagName === 'LINK' && el.ownerNode.hasAttribute('data-n-p');\n }).map(function (sheet) {\n return {\n href: sheet.ownerNode.getAttribute('href'),\n text: looseToArray(sheet.cssRules).map(function (r) {\n return r.cssText;\n }).join('')\n };\n });\n}\n\nfunction hasRel(rel, link) {\n try {\n link = document.createElement('link');\n return link.relList.supports(rel);\n } catch (_unused) {}\n}\n\nfunction pageLoadError(route) {\n return (0, _router.markLoadingError)(new Error(\"Error loading \".concat(route)));\n}\n\nvar relPrefetch = hasRel('preload') && !hasRel('prefetch') ? // https://caniuse.com/#feat=link-rel-preload\n// macOS and iOS (Safari does not support prefetch)\n'preload' : // https://caniuse.com/#feat=link-rel-prefetch\n// IE 11, Edge 12+, nearly all evergreen\n'prefetch';\nvar relPreload = hasRel('preload') ? 'preload' : relPrefetch;\nvar relPreloadStyle = 'fetch';\nvar hasNoModule = ('noModule' in document.createElement('script'));\n\nfunction normalizeRoute(route) {\n if (route[0] !== '/') {\n throw new Error(\"Route name should start with a \\\"/\\\", got \\\"\".concat(route, \"\\\"\"));\n }\n\n if (route === '/') return route;\n return route.replace(/\\/$/, '');\n}\n\nfunction appendLink(href, rel, as, link) {\n return new Promise(function (res, rej) {\n link = document.createElement('link'); // The order of property assignment here is intentional:\n\n if (as) link.as = as;\n link.rel = rel;\n link.crossOrigin = undefined;\n link.onload = res;\n link.onerror = rej; // `href` should always be last:\n\n link.href = href;\n document.head.appendChild(link);\n });\n}\n\nfunction loadScript(url) {\n return new Promise(function (res, rej) {\n var script = document.createElement('script');\n\n if (false) {}\n\n script.crossOrigin = undefined;\n script.src = url;\n script.onload = res;\n\n script.onerror = function () {\n return rej(pageLoadError(url));\n };\n\n document.body.appendChild(script);\n });\n}\n\nvar PageLoader = /*#__PURE__*/function () {\n function PageLoader(buildId, assetPrefix, initialPage) {\n _classCallCheck(this, PageLoader);\n\n this.initialPage = void 0;\n this.buildId = void 0;\n this.assetPrefix = void 0;\n this.pageCache = void 0;\n this.pageRegisterEvents = void 0;\n this.loadingRoutes = void 0;\n this.promisedBuildManifest = void 0;\n this.promisedSsgManifest = void 0;\n this.promisedDevPagesManifest = void 0;\n this.initialPage = initialPage;\n this.buildId = buildId;\n this.assetPrefix = assetPrefix;\n this.pageCache = {};\n this.pageRegisterEvents = (0, _mitt[\"default\"])();\n this.loadingRoutes = {\n // By default these 2 pages are being loaded in the initial html\n '/_app': true\n }; // TODO: get rid of this limitation for rendering the error page\n\n if (initialPage !== '/_error') {\n this.loadingRoutes[initialPage] = true;\n }\n\n this.promisedBuildManifest = new Promise(function (resolve) {\n if (window.__BUILD_MANIFEST) {\n resolve(window.__BUILD_MANIFEST);\n } else {\n ;\n\n window.__BUILD_MANIFEST_CB = function () {\n resolve(window.__BUILD_MANIFEST);\n };\n }\n });\n /** @type {Promise>} */\n\n this.promisedSsgManifest = new Promise(function (resolve) {\n if (window.__SSG_MANIFEST) {\n resolve(window.__SSG_MANIFEST);\n } else {\n ;\n\n window.__SSG_MANIFEST_CB = function () {\n resolve(window.__SSG_MANIFEST);\n };\n }\n });\n }\n\n _createClass(PageLoader, [{\n key: \"getPageList\",\n value: function getPageList() {\n if (false) {} else {\n if (window.__DEV_PAGES_MANIFEST) {\n return window.__DEV_PAGES_MANIFEST.pages;\n } else {\n if (!this.promisedDevPagesManifest) {\n this.promisedDevPagesManifest = fetch(\"\".concat(this.assetPrefix, \"/_next/static/development/_devPagesManifest.json\")).then(function (res) {\n return res.json();\n }).then(function (manifest) {\n ;\n window.__DEV_PAGES_MANIFEST = manifest;\n return manifest.pages;\n })[\"catch\"](function (err) {\n console.log(\"Failed to fetch devPagesManifest\", err);\n });\n }\n\n return this.promisedDevPagesManifest;\n }\n }\n } // Returns a promise for the dependencies for a particular route\n\n }, {\n key: \"getDependencies\",\n value: function getDependencies(route) {\n var _this = this;\n\n return this.promisedBuildManifest.then(function (m) {\n return m[route] ? m[route].map(function (url) {\n return \"\".concat(_this.assetPrefix, \"/_next/\").concat(encodeURI(url));\n }) : Promise.reject(pageLoadError(route));\n });\n }\n /**\n * @param {string} href the route href (file-system path)\n * @param {string} asPath the URL as shown in browser (virtual path); used for dynamic routes\n */\n\n }, {\n key: \"getDataHref\",\n value: function getDataHref(href, asPath, ssg, locale, defaultLocale) {\n var _this2 = this;\n\n var _ref = (0, _parseRelativeUrl.parseRelativeUrl)(href),\n hrefPathname = _ref.pathname,\n query = _ref.query,\n search = _ref.search;\n\n var _ref2 = (0, _parseRelativeUrl.parseRelativeUrl)(asPath),\n asPathname = _ref2.pathname;\n\n var route = normalizeRoute(hrefPathname);\n\n var getHrefForSlug = function getHrefForSlug(path) {\n var dataRoute = (0, _router.addLocale)((0, _getAssetPathFromRoute[\"default\"])(path, '.json'), locale, defaultLocale);\n return (0, _router.addBasePath)(\"/_next/data/\".concat(_this2.buildId).concat(dataRoute).concat(ssg ? '' : search));\n };\n\n var isDynamic = (0, _isDynamic.isDynamicRoute)(route);\n var interpolatedRoute = isDynamic ? (0, _router.interpolateAs)(hrefPathname, asPathname, query).result : '';\n return isDynamic ? interpolatedRoute && getHrefForSlug(interpolatedRoute) : getHrefForSlug(route);\n }\n /**\n * @param {string} href the route href (file-system path)\n * @param {string} asPath the URL as shown in browser (virtual path); used for dynamic routes\n */\n\n }, {\n key: \"prefetchData\",\n value: function prefetchData(href, asPath, locale, defaultLocale) {\n var _this3 = this;\n\n var _ref3 = (0, _parseRelativeUrl.parseRelativeUrl)(href),\n hrefPathname = _ref3.pathname;\n\n var route = normalizeRoute(hrefPathname);\n return this.promisedSsgManifest.then(function (s, _dataHref) {\n return (// Check if the route requires a data file\n s.has(route) && ( // Try to generate data href, noop when falsy\n _dataHref = _this3.getDataHref(href, asPath, true, locale, defaultLocale)) && // noop when data has already been prefetched (dedupe)\n !document.querySelector(\"link[rel=\\\"\".concat(relPrefetch, \"\\\"][href^=\\\"\").concat(_dataHref, \"\\\"]\")) && // Inject the `` tag for above computed `href`.\n appendLink(_dataHref, relPrefetch, 'fetch')[\"catch\"](function () {\n /* ignore prefetch error */\n })\n );\n });\n }\n }, {\n key: \"loadPage\",\n value: function loadPage(route) {\n var _this4 = this;\n\n route = normalizeRoute(route);\n return new Promise(function (resolve, reject) {\n // If there's a cached version of the page, let's use it.\n var cachedPage = _this4.pageCache[route];\n\n if (cachedPage) {\n if ('error' in cachedPage) {\n reject(cachedPage.error);\n } else {\n resolve(cachedPage);\n }\n\n return;\n }\n\n var fire = function fire(pageToCache) {\n _this4.pageRegisterEvents.off(route, fire);\n\n delete _this4.loadingRoutes[route];\n\n if ('error' in pageToCache) {\n reject(pageToCache.error);\n } else {\n resolve(pageToCache);\n }\n }; // Register a listener to get the page\n\n\n _this4.pageRegisterEvents.on(route, fire);\n\n if (!_this4.loadingRoutes[route]) {\n _this4.loadingRoutes[route] = true;\n\n if (false) {} else {\n // Development only. In production the page file is part of the build manifest\n route = normalizeRoute(route);\n var scriptRoute = (0, _getAssetPathFromRoute[\"default\"])(route, '.js');\n var url = \"\".concat(_this4.assetPrefix, \"/_next/static/chunks/pages\").concat(encodeURI(scriptRoute));\n loadScript(url)[\"catch\"](function (err) {\n // Mark the page as failed to load if its script fails to load:\n _this4.pageCache[route] = {\n error: err\n };\n fire({\n error: err\n });\n });\n }\n }\n });\n } // This method if called by the route code.\n\n }, {\n key: \"registerPage\",\n value: function registerPage(route, regFn) {\n var _this5 = this;\n\n var register = function register(styleSheets) {\n try {\n var mod = regFn();\n var pageData = {\n page: mod[\"default\"] || mod,\n mod: mod,\n styleSheets: styleSheets\n };\n _this5.pageCache[route] = pageData;\n\n _this5.pageRegisterEvents.emit(route, pageData);\n } catch (error) {\n _this5.pageCache[route] = {\n error: error\n };\n\n _this5.pageRegisterEvents.emit(route, {\n error: error\n });\n }\n };\n\n if (true) {\n // Wait for webpack to become idle if it's not.\n // More info: https://github.com/vercel/next.js/pull/1511\n if ( true && module.hot.status() !== 'idle') {\n console.log(\"Waiting for webpack to become \\\"idle\\\" to initialize the page: \\\"\".concat(route, \"\\\"\"));\n\n var check = function check(status) {\n if (status === 'idle') {\n ;\n module.hot.removeStatusHandler(check);\n register(\n /* css is handled via style-loader in development */\n []);\n }\n };\n\n module.hot.status(check);\n return;\n }\n }\n\n function fetchStyleSheet(href) {\n return fetch(href).then(function (res) {\n if (!res.ok) throw pageLoadError(href);\n return res.text().then(function (text) {\n return {\n href: href,\n text: text\n };\n });\n });\n }\n\n var isInitialLoad = route === this.initialPage;\n var promisedDeps = // Shared styles will already be on the page:\n route === '/_app' || // We use `style-loader` in development:\n true ? Promise.resolve([]) : // Tests that this does not block hydration:\n // test/integration/css-fixtures/hydrate-without-deps/\n (isInitialLoad ? Promise.resolve(looseToArray(document.querySelectorAll('link[data-n-p]')).map(function (e) {\n return e.getAttribute('href');\n })) : this.getDependencies(route).then(function (deps) {\n return deps.filter(function (d) {\n return d.endsWith('.css');\n });\n })).then(function (cssFiles) {\n return (// These files should've already been fetched by now, so this\n // should resolve instantly.\n Promise.all(cssFiles.map(function (d) {\n return fetchStyleSheet(d);\n }))[\"catch\"](function (err) {\n if (isInitialLoad) return getInitialStylesheets();\n throw err;\n })\n );\n });\n promisedDeps.then(function (deps) {\n return register(deps);\n }, function (error) {\n _this5.pageCache[route] = {\n error: error\n };\n\n _this5.pageRegisterEvents.emit(route, {\n error: error\n });\n });\n }\n /**\n * @param {string} route\n * @param {boolean} [isDependency]\n */\n\n }, {\n key: \"prefetch\",\n value: function prefetch(route, isDependency) {\n var _this6 = this;\n\n // https://github.com/GoogleChromeLabs/quicklink/blob/453a661fa1fa940e2d2e044452398e38c67a98fb/src/index.mjs#L115-L118\n // License: Apache 2.0\n var cn;\n\n if (cn = navigator.connection) {\n // Don't prefetch if using 2G or if Save-Data is enabled.\n if (cn.saveData || /2g/.test(cn.effectiveType)) return Promise.resolve();\n }\n /** @type {string} */\n\n\n var url;\n\n if (isDependency) {\n url = route;\n } else {\n if (true) {\n route = normalizeRoute(route);\n var ext = false ? undefined : '.js';\n var scriptRoute = (0, _getAssetPathFromRoute[\"default\"])(route, ext);\n url = \"\".concat(this.assetPrefix, \"/_next/static/\").concat(encodeURIComponent(this.buildId), \"/pages\").concat(encodeURI(scriptRoute));\n }\n }\n\n return Promise.all(document.querySelector(\"link[rel=\\\"\".concat(relPrefetch, \"\\\"][href^=\\\"\").concat(url, \"\\\"]\")) ? [] : [url && appendLink(url, relPrefetch, url.endsWith('.css') ? relPreloadStyle : 'script'), false && false]).then( // do not return any data\n function () {}, // swallow prefetch errors\n function () {});\n }\n }]);\n\n return PageLoader;\n}();\n\nexports[\"default\"] = PageLoader;\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.i);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL2NsaWVudC9wYWdlLWxvYWRlci50cz82ZjdhIl0sIm5hbWVzIjpbImxvb3NlVG9BcnJheSIsImlucHV0IiwiZG9jdW1lbnQiLCJlbCIsInNoZWV0IiwiaHJlZiIsInRleHQiLCJyIiwibGluayIsInJlbFByZWZldGNoIiwiaGFzUmVsIiwicmVsUHJlbG9hZCIsInJlbFByZWxvYWRTdHlsZSIsImhhc05vTW9kdWxlIiwicm91dGUiLCJwcm9jZXNzIiwic2NyaXB0IiwicmVqIiwicGFnZUxvYWRFcnJvciIsIlBhZ2VMb2FkZXIiLCJjb25zdHJ1Y3RvciIsImluaXRpYWxQYWdlIiwiYnVpbGRJZCIsImFzc2V0UHJlZml4IiwicGFnZUNhY2hlIiwicGFnZVJlZ2lzdGVyRXZlbnRzIiwibG9hZGluZ1JvdXRlcyIsInByb21pc2VkQnVpbGRNYW5pZmVzdCIsInByb21pc2VkU3NnTWFuaWZlc3QiLCJwcm9taXNlZERldlBhZ2VzTWFuaWZlc3QiLCJyZXNvbHZlIiwid2luZG93IiwiZ2V0UGFnZUxpc3QiLCJmZXRjaCIsInJlcyIsIm1hbmlmZXN0IiwiZXJyIiwiY29uc29sZSIsIm0iLCJ1cmwiLCJlbmNvZGVVUkkiLCJQcm9taXNlIiwiZ2V0RGF0YUhyZWYiLCJwYXRobmFtZSIsIm5vcm1hbGl6ZVJvdXRlIiwiZ2V0SHJlZkZvclNsdWciLCJwYXRoIiwiZGF0YVJvdXRlIiwic3NnIiwiaXNEeW5hbWljIiwiaW50ZXJwb2xhdGVkUm91dGUiLCJwcmVmZXRjaERhdGEiLCJzIiwiX2RhdGFIcmVmIiwiYXBwZW5kTGluayIsImxvYWRQYWdlIiwiY2FjaGVkUGFnZSIsInJlamVjdCIsImZpcmUiLCJwYWdlVG9DYWNoZSIsInNjcmlwdFJvdXRlIiwiZXJyb3IiLCJyZWdpc3RlciIsInN0eWxlU2hlZXRzIiwibW9kIiwicmVnRm4iLCJwYWdlRGF0YSIsInBhZ2UiLCJtb2R1bGUiLCJjaGVjayIsInN0YXR1cyIsImlzSW5pdGlhbExvYWQiLCJwcm9taXNlZERlcHMiLCJlIiwiZGVwcyIsImQiLCJjc3NGaWxlcyIsImZldGNoU3R5bGVTaGVldCIsImdldEluaXRpYWxTdHlsZXNoZWV0cyIsInByZWZldGNoIiwiY24iLCJuYXZpZ2F0b3IiLCJleHQiLCJlbmNvZGVVUklDb21wb25lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBR0E7O0FBRUE7O0FBT0E7O0FBQ0E7O0FBQ0E7O0FBRU8sSUFBTUEsWUFBWSxHQUFrQkMsU0FBOUJELFlBQThCQyxNQUFmO0FBQUEsU0FDMUIsY0FESyxLQUNMLENBRDBCO0FBQUEsQ0FBckI7Ozs7QUFHUCxpQ0FBb0Q7QUFDbEQsU0FBT0QsWUFBWSxDQUFnQkUsUUFBUSxDQUFwQ0YsV0FBWSxDQUFaQSxRQUVGRyxZQUFEO0FBQUEsV0FDRUEsRUFBRSxDQUFGQSxhQUNDQSxFQUFFLENBQUgsU0FBQ0EsQ0FBRCxPQUFDQSxLQUREQSxVQUVDQSxFQUFFLENBQUgsU0FBQ0EsQ0FBRCxZQUFDQSxDQUxBSCxVQUtBRyxDQUhIO0FBQUEsR0FGR0gsTUFPQ0ksZUFBRDtBQUFBLFdBQVk7QUFDZkMsVUFBSSxFQUFHRCxLQUFLLENBQU4sU0FBQ0EsQ0FBRCxZQUFDQSxDQURRLE1BQ1JBLENBRFE7QUFFZkUsVUFBSSxFQUFFTixZQUFZLENBQVVJLEtBQUssQ0FBM0JKLFFBQVksQ0FBWkEsS0FDRU8sV0FBRDtBQUFBLGVBQU9BLENBQUMsQ0FEVFAsT0FDQztBQUFBLE9BRERBLE9BVFYsRUFTVUE7QUFGUyxLQUFaO0FBQUEsR0FQQUEsQ0FBUDtBQWVGOztBQUFBLDJCQUFxRDtBQUNuRCxNQUFJO0FBQ0ZRLFFBQUksR0FBR04sUUFBUSxDQUFSQSxjQUFQTSxNQUFPTixDQUFQTTtBQUNBLFdBQU9BLElBQUksQ0FBSkEsaUJBQVAsR0FBT0EsQ0FBUDtBQUNBLEdBSEYsQ0FHRSxnQkFBTSxDQUNUO0FBRUQ7O0FBQUEsOEJBQXNDO0FBQ3BDLFNBQU8sOEJBQWlCLGtDQUF4QixLQUF3QixFQUFqQixDQUFQO0FBR0Y7O0FBQUEsSUFB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QUFDQSxZQUFJRCxFQUFFLENBQUZBLFlBQWUsVUFBVUEsRUFBRSxDQUEvQixhQUFtQixDQUFuQixFQUFnRCxPQUFPdkMsT0FBTyxDQUFkLE9BQU9BLEVBQVA7QUFHbEQ7QUFBQTs7O0FBQ0E7O0FBQ0Esd0JBQWtCO0FBQ2hCRixXQUFHLEdBQUhBO0FBREYsYUFFTztBQUNMLGtCQUEyQztBQUN6Q3pCLGVBQUssR0FBRzhCLGNBQWMsQ0FBdEI5QixLQUFzQixDQUF0QkE7QUFFQSxjQUFNb0UsR0FBRyxHQUNQbkUscUJBREY7QUFFQSxjQUFNNkMsV0FBVyxHQUFHLDhDQUFwQixHQUFvQixDQUFwQjtBQUVBckIsYUFBRyxhQUFNLEtBQUtoQixXQUFYLDJCQUF1QzRELGtCQUFrQixDQUMxRCxLQUQwRCxRQUF6RCxtQkFFTzNDLFNBQVMsQ0FGbkJELFdBRW1CLENBRmhCLENBQUhBO0FBSUg7QUFFRDs7QUFBQSxhQUFPLE9BQU8sQ0FBUCxJQUNMckMsUUFBUSxDQUFSQSxtQ0FBb0NPLFdBQXBDUCw2Q0FFSSxDQUNFcUMsR0FBRyxJQUNEZSxVQUFVLG1CQUdSZixHQUFHLENBQUhBLHFDQUxOLFFBRWMsQ0FGZCxFQU9FeEIsVUFFRSxLQVRKLENBSEMsUUFxQkw7QUFDQSxrQkFBTSxDQXRCRCxHQXVCTDtBQUNBLGtCQUFNLENBeEJSLENBQU8sQ0FBUDtBQTFXNEIiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9wYWdlLWxvYWRlci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudFR5cGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHsgQ2xpZW50U3NnTWFuaWZlc3QgfSBmcm9tICcuLi9idWlsZCdcbmltcG9ydCB0eXBlIHsgQ2xpZW50QnVpbGRNYW5pZmVzdCB9IGZyb20gJy4uL2J1aWxkL3dlYnBhY2svcGx1Z2lucy9idWlsZC1tYW5pZmVzdC1wbHVnaW4nXG5pbXBvcnQgbWl0dCBmcm9tICcuLi9uZXh0LXNlcnZlci9saWIvbWl0dCdcbmltcG9ydCB0eXBlIHsgTWl0dEVtaXR0ZXIgfSBmcm9tICcuLi9uZXh0LXNlcnZlci9saWIvbWl0dCdcbmltcG9ydCB7XG4gIGFkZEJhc2VQYXRoLFxuICBtYXJrTG9hZGluZ0Vycm9yLFxuICBpbnRlcnBvbGF0ZUFzLFxuICBhZGRMb2NhbGUsXG59IGZyb20gJy4uL25leHQtc2VydmVyL2xpYi9yb3V0ZXIvcm91dGVyJ1xuXG5pbXBvcnQgZ2V0QXNzZXRQYXRoRnJvbVJvdXRlIGZyb20gJy4uL25leHQtc2VydmVyL2xpYi9yb3V0ZXIvdXRpbHMvZ2V0LWFzc2V0LXBhdGgtZnJvbS1yb3V0ZSdcbmltcG9ydCB7IGlzRHluYW1pY1JvdXRlIH0gZnJvbSAnLi4vbmV4dC1zZXJ2ZXIvbGliL3JvdXRlci91dGlscy9pcy1keW5hbWljJ1xuaW1wb3J0IHsgcGFyc2VSZWxhdGl2ZVVybCB9IGZyb20gJy4uL25leHQtc2VydmVyL2xpYi9yb3V0ZXIvdXRpbHMvcGFyc2UtcmVsYXRpdmUtdXJsJ1xuXG5leHBvcnQgY29uc3QgbG9vc2VUb0FycmF5ID0gPFQgZXh0ZW5kcyB7fT4oaW5wdXQ6IGFueSk6IFRbXSA9PlxuICBbXS5zbGljZS5jYWxsKGlucHV0KVxuXG5mdW5jdGlvbiBnZXRJbml0aWFsU3R5bGVzaGVldHMoKTogU3R5bGVTaGVldFR1cGxlW10ge1xuICByZXR1cm4gbG9vc2VUb0FycmF5PENTU1N0eWxlU2hlZXQ+KGRvY3VtZW50LnN0eWxlU2hlZXRzKVxuICAgIC5maWx0ZXIoXG4gICAgICAoZWw6IENTU1N0eWxlU2hlZXQpID0+XG4gICAgICAgIGVsLm93bmVyTm9kZSAmJlxuICAgICAgICAoZWwub3duZXJOb2RlIGFzIEVsZW1lbnQpLnRhZ05hbWUgPT09ICdMSU5LJyAmJlxuICAgICAgICAoZWwub3duZXJOb2RlIGFzIEVsZW1lbnQpLmhhc0F0dHJpYnV0ZSgnZGF0YS1uLXAnKVxuICAgIClcbiAgICAubWFwKChzaGVldCkgPT4gKHtcbiAgICAgIGhyZWY6IChzaGVldC5vd25lck5vZGUgYXMgRWxlbWVudCkuZ2V0QXR0cmlidXRlKCdocmVmJykhLFxuICAgICAgdGV4dDogbG9vc2VUb0FycmF5PENTU1J1bGU+KHNoZWV0LmNzc1J1bGVzKVxuICAgICAgICAubWFwKChyKSA9PiByLmNzc1RleHQpXG4gICAgICAgIC5qb2luKCcnKSxcbiAgICB9KSlcbn1cblxuZnVuY3Rpb24gaGFzUmVsKHJlbDogc3RyaW5nLCBsaW5rPzogSFRNTExpbmtFbGVtZW50KSB7XG4gIHRyeSB7XG4gICAgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKVxuICAgIHJldHVybiBsaW5rLnJlbExpc3Quc3VwcG9ydHMocmVsKVxuICB9IGNhdGNoIHt9XG59XG5cbmZ1bmN0aW9uIHBhZ2VMb2FkRXJyb3Iocm91dGU6IHN0cmluZykge1xuICByZXR1cm4gbWFya0xvYWRpbmdFcnJvcihuZXcgRXJyb3IoYEVycm9yIGxvYWRpbmcgJHtyb3V0ZX1gKSlcbn1cblxuY29uc3QgcmVsUHJlZmV0Y2ggPVxuICBoYXNSZWwoJ3ByZWxvYWQnKSAmJiAhaGFzUmVsKCdwcmVmZXRjaCcpXG4gICAgPyAvLyBodHRwczovL2Nhbml1c2UuY29tLyNmZWF0PWxpbmstcmVsLXByZWxvYWRcbiAgICAgIC8vIG1hY09TIGFuZCBpT1MgKFNhZmFyaSBkb2VzIG5vdCBzdXBwb3J0IHByZWZldGNoKVxuICAgICAgJ3ByZWxvYWQnXG4gICAgOiAvLyBodHRwczovL2Nhbml1c2UuY29tLyNmZWF0PWxpbmstcmVsLXByZWZldGNoXG4gICAgICAvLyBJRSAxMSwgRWRnZSAxMissIG5lYXJseSBhbGwgZXZlcmdyZWVuXG4gICAgICAncHJlZmV0Y2gnXG5cbmNvbnN0IHJlbFByZWxvYWQgPSBoYXNSZWwoJ3ByZWxvYWQnKSA/ICdwcmVsb2FkJyA6IHJlbFByZWZldGNoXG5jb25zdCByZWxQcmVsb2FkU3R5bGUgPSAnZmV0Y2gnXG5cbmNvbnN0IGhhc05vTW9kdWxlID0gJ25vTW9kdWxlJyBpbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKVxuXG5mdW5jdGlvbiBub3JtYWxpemVSb3V0ZShyb3V0ZTogc3RyaW5nKSB7XG4gIGlmIChyb3V0ZVswXSAhPT0gJy8nKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBSb3V0ZSBuYW1lIHNob3VsZCBzdGFydCB3aXRoIGEgXCIvXCIsIGdvdCBcIiR7cm91dGV9XCJgKVxuICB9XG5cbiAgaWYgKHJvdXRlID09PSAnLycpIHJldHVybiByb3V0ZVxuICByZXR1cm4gcm91dGUucmVwbGFjZSgvXFwvJC8sICcnKVxufVxuXG5mdW5jdGlvbiBhcHBlbmRMaW5rKFxuICBocmVmOiBzdHJpbmcsXG4gIHJlbDogc3RyaW5nLFxuICBhcz86IHN0cmluZyxcbiAgbGluaz86IEhUTUxMaW5rRWxlbWVudFxuKTogUHJvbWlzZTxhbnk+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXMsIHJlaikgPT4ge1xuICAgIGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJylcblxuICAgIC8vIFRoZSBvcmRlciBvZiBwcm9wZXJ0eSBhc3NpZ25tZW50IGhlcmUgaXMgaW50ZW50aW9uYWw6XG4gICAgaWYgKGFzKSBsaW5rIS5hcyA9IGFzXG4gICAgbGluayEucmVsID0gcmVsXG4gICAgbGluayEuY3Jvc3NPcmlnaW4gPSBwcm9jZXNzLmVudi5fX05FWFRfQ1JPU1NfT1JJR0lOIVxuICAgIGxpbmshLm9ubG9hZCA9IHJlc1xuICAgIGxpbmshLm9uZXJyb3IgPSByZWpcblxuICAgIC8vIGBocmVmYCBzaG91bGQgYWx3YXlzIGJlIGxhc3Q6XG4gICAgbGluayEuaHJlZiA9IGhyZWZcblxuICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQobGluaylcbiAgfSlcbn1cblxuZnVuY3Rpb24gbG9hZFNjcmlwdCh1cmw6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzLCByZWopID0+IHtcbiAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKVxuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfTU9ERVJOX0JVSUxEICYmIGhhc05vTW9kdWxlKSB7XG4gICAgICBzY3JpcHQudHlwZSA9ICdtb2R1bGUnXG4gICAgfVxuICAgIHNjcmlwdC5jcm9zc09yaWdpbiA9IHByb2Nlc3MuZW52Ll9fTkVYVF9DUk9TU19PUklHSU4hXG4gICAgc2NyaXB0LnNyYyA9IHVybFxuICAgIHNjcmlwdC5vbmxvYWQgPSByZXNcbiAgICBzY3JpcHQub25lcnJvciA9ICgpID0+IHJlaihwYWdlTG9hZEVycm9yKHVybCkpXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzY3JpcHQpXG4gIH0pXG59XG5cbmV4cG9ydCB0eXBlIFN0eWxlU2hlZXRUdXBsZSA9IHsgaHJlZjogc3RyaW5nOyB0ZXh0OiBzdHJpbmcgfVxuZXhwb3J0IHR5cGUgR29vZFBhZ2VDYWNoZSA9IHtcbiAgcGFnZTogQ29tcG9uZW50VHlwZVxuICBtb2Q6IGFueVxuICBzdHlsZVNoZWV0czogU3R5bGVTaGVldFR1cGxlW11cbn1cbmV4cG9ydCB0eXBlIFBhZ2VDYWNoZUVudHJ5ID0geyBlcnJvcjogYW55IH0gfCBHb29kUGFnZUNhY2hlXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBhZ2VMb2FkZXIge1xuICBwcml2YXRlIGluaXRpYWxQYWdlOiBzdHJpbmdcbiAgcHJpdmF0ZSBidWlsZElkOiBzdHJpbmdcbiAgcHJpdmF0ZSBhc3NldFByZWZpeDogc3RyaW5nXG4gIHByaXZhdGUgcGFnZUNhY2hlOiBSZWNvcmQ8c3RyaW5nLCBQYWdlQ2FjaGVFbnRyeT5cbiAgcHJpdmF0ZSBwYWdlUmVnaXN0ZXJFdmVudHM6IE1pdHRFbWl0dGVyXG4gIHByaXZhdGUgbG9hZGluZ1JvdXRlczogUmVjb3JkPHN0cmluZywgYm9vbGVhbj5cbiAgcHJpdmF0ZSBwcm9taXNlZEJ1aWxkTWFuaWZlc3Q/OiBQcm9taXNlPENsaWVudEJ1aWxkTWFuaWZlc3Q+XG4gIHByaXZhdGUgcHJvbWlzZWRTc2dNYW5pZmVzdD86IFByb21pc2U8Q2xpZW50U3NnTWFuaWZlc3Q+XG4gIHByaXZhdGUgcHJvbWlzZWREZXZQYWdlc01hbmlmZXN0PzogUHJvbWlzZTxhbnk+XG5cbiAgY29uc3RydWN0b3IoYnVpbGRJZDogc3RyaW5nLCBhc3NldFByZWZpeDogc3RyaW5nLCBpbml0aWFsUGFnZTogc3RyaW5nKSB7XG4gICAgdGhpcy5pbml0aWFsUGFnZSA9IGluaXRpYWxQYWdlXG5cbiAgICB0aGlzLmJ1aWxkSWQgPSBidWlsZElkXG4gICAgdGhpcy5hc3NldFByZWZpeCA9IGFzc2V0UHJlZml4XG5cbiAgICB0aGlzLnBhZ2VDYWNoZSA9IHt9XG4gICAgdGhpcy5wYWdlUmVnaXN0ZXJFdmVudHMgPSBtaXR0KClcbiAgICB0aGlzLmxvYWRpbmdSb3V0ZXMgPSB7XG4gICAgICAvLyBCeSBkZWZhdWx0IHRoZXNlIDIgcGFnZXMgYXJlIGJlaW5nIGxvYWRlZCBpbiB0aGUgaW5pdGlhbCBodG1sXG4gICAgICAnL19hcHAnOiB0cnVlLFxuICAgIH1cblxuICAgIC8vIFRPRE86IGdldCByaWQgb2YgdGhpcyBsaW1pdGF0aW9uIGZvciByZW5kZXJpbmcgdGhlIGVycm9yIHBhZ2VcbiAgICBpZiAoaW5pdGlhbFBhZ2UgIT09ICcvX2Vycm9yJykge1xuICAgICAgdGhpcy5sb2FkaW5nUm91dGVzW2luaXRpYWxQYWdlXSA9IHRydWVcbiAgICB9XG5cbiAgICB0aGlzLnByb21pc2VkQnVpbGRNYW5pZmVzdCA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICBpZiAoKHdpbmRvdyBhcyBhbnkpLl9fQlVJTERfTUFOSUZFU1QpIHtcbiAgICAgICAgcmVzb2x2ZSgod2luZG93IGFzIGFueSkuX19CVUlMRF9NQU5JRkVTVClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIDsod2luZG93IGFzIGFueSkuX19CVUlMRF9NQU5JRkVTVF9DQiA9ICgpID0+IHtcbiAgICAgICAgICByZXNvbHZlKCh3aW5kb3cgYXMgYW55KS5fX0JVSUxEX01BTklGRVNUKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSlcblxuICAgIC8qKiBAdHlwZSB7UHJvbWlzZTxTZXQ8c3RyaW5nPj59ICovXG4gICAgdGhpcy5wcm9taXNlZFNzZ01hbmlmZXN0ID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIGlmICgod2luZG93IGFzIGFueSkuX19TU0dfTUFOSUZFU1QpIHtcbiAgICAgICAgcmVzb2x2ZSgod2luZG93IGFzIGFueSkuX19TU0dfTUFOSUZFU1QpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICA7KHdpbmRvdyBhcyBhbnkpLl9fU1NHX01BTklGRVNUX0NCID0gKCkgPT4ge1xuICAgICAgICAgIHJlc29sdmUoKHdpbmRvdyBhcyBhbnkpLl9fU1NHX01BTklGRVNUKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGdldFBhZ2VMaXN0KCkge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICByZXR1cm4gdGhpcy5wcm9taXNlZEJ1aWxkTWFuaWZlc3QhLnRoZW4oXG4gICAgICAgIChidWlsZE1hbmlmZXN0KSA9PiBidWlsZE1hbmlmZXN0LnNvcnRlZFBhZ2VzXG4gICAgICApXG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICgod2luZG93IGFzIGFueSkuX19ERVZfUEFHRVNfTUFOSUZFU1QpIHtcbiAgICAgICAgcmV0dXJuICh3aW5kb3cgYXMgYW55KS5fX0RFVl9QQUdFU19NQU5JRkVTVC5wYWdlc1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKCF0aGlzLnByb21pc2VkRGV2UGFnZXNNYW5pZmVzdCkge1xuICAgICAgICAgIHRoaXMucHJvbWlzZWREZXZQYWdlc01hbmlmZXN0ID0gZmV0Y2goXG4gICAgICAgICAgICBgJHt0aGlzLmFzc2V0UHJlZml4fS9fbmV4dC9zdGF0aWMvZGV2ZWxvcG1lbnQvX2RldlBhZ2VzTWFuaWZlc3QuanNvbmBcbiAgICAgICAgICApXG4gICAgICAgICAgICAudGhlbigocmVzKSA9PiByZXMuanNvbigpKVxuICAgICAgICAgICAgLnRoZW4oKG1hbmlmZXN0KSA9PiB7XG4gICAgICAgICAgICAgIDsod2luZG93IGFzIGFueSkuX19ERVZfUEFHRVNfTUFOSUZFU1QgPSBtYW5pZmVzdFxuICAgICAgICAgICAgICByZXR1cm4gbWFuaWZlc3QucGFnZXNcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgRmFpbGVkIHRvIGZldGNoIGRldlBhZ2VzTWFuaWZlc3RgLCBlcnIpXG4gICAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnByb21pc2VkRGV2UGFnZXNNYW5pZmVzdFxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFJldHVybnMgYSBwcm9taXNlIGZvciB0aGUgZGVwZW5kZW5jaWVzIGZvciBhIHBhcnRpY3VsYXIgcm91dGVcbiAgcHJpdmF0ZSBnZXREZXBlbmRlbmNpZXMocm91dGU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICByZXR1cm4gdGhpcy5wcm9taXNlZEJ1aWxkTWFuaWZlc3QhLnRoZW4oKG0pID0+IHtcbiAgICAgIHJldHVybiBtW3JvdXRlXVxuICAgICAgICA/IG1bcm91dGVdLm1hcCgodXJsKSA9PiBgJHt0aGlzLmFzc2V0UHJlZml4fS9fbmV4dC8ke2VuY29kZVVSSSh1cmwpfWApXG4gICAgICAgIDogUHJvbWlzZS5yZWplY3QocGFnZUxvYWRFcnJvcihyb3V0ZSkpXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gaHJlZiB0aGUgcm91dGUgaHJlZiAoZmlsZS1zeXN0ZW0gcGF0aClcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFzUGF0aCB0aGUgVVJMIGFzIHNob3duIGluIGJyb3dzZXIgKHZpcnR1YWwgcGF0aCk7IHVzZWQgZm9yIGR5bmFtaWMgcm91dGVzXG4gICAqL1xuICBnZXREYXRhSHJlZihcbiAgICBocmVmOiBzdHJpbmcsXG4gICAgYXNQYXRoOiBzdHJpbmcsXG4gICAgc3NnOiBib29sZWFuLFxuICAgIGxvY2FsZT86IHN0cmluZyxcbiAgICBkZWZhdWx0TG9jYWxlPzogc3RyaW5nXG4gICkge1xuICAgIGNvbnN0IHsgcGF0aG5hbWU6IGhyZWZQYXRobmFtZSwgcXVlcnksIHNlYXJjaCB9ID0gcGFyc2VSZWxhdGl2ZVVybChocmVmKVxuICAgIGNvbnN0IHsgcGF0aG5hbWU6IGFzUGF0aG5hbWUgfSA9IHBhcnNlUmVsYXRpdmVVcmwoYXNQYXRoKVxuICAgIGNvbnN0IHJvdXRlID0gbm9ybWFsaXplUm91dGUoaHJlZlBhdGhuYW1lKVxuXG4gICAgY29uc3QgZ2V0SHJlZkZvclNsdWcgPSAocGF0aDogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBkYXRhUm91dGUgPSBhZGRMb2NhbGUoXG4gICAgICAgIGdldEFzc2V0UGF0aEZyb21Sb3V0ZShwYXRoLCAnLmpzb24nKSxcbiAgICAgICAgbG9jYWxlLFxuICAgICAgICBkZWZhdWx0TG9jYWxlXG4gICAgICApXG4gICAgICByZXR1cm4gYWRkQmFzZVBhdGgoXG4gICAgICAgIGAvX25leHQvZGF0YS8ke3RoaXMuYnVpbGRJZH0ke2RhdGFSb3V0ZX0ke3NzZyA/ICcnIDogc2VhcmNofWBcbiAgICAgIClcbiAgICB9XG5cbiAgICBjb25zdCBpc0R5bmFtaWM6IGJvb2xlYW4gPSBpc0R5bmFtaWNSb3V0ZShyb3V0ZSlcbiAgICBjb25zdCBpbnRlcnBvbGF0ZWRSb3V0ZSA9IGlzRHluYW1pY1xuICAgICAgPyBpbnRlcnBvbGF0ZUFzKGhyZWZQYXRobmFtZSwgYXNQYXRobmFtZSwgcXVlcnkpLnJlc3VsdFxuICAgICAgOiAnJ1xuXG4gICAgcmV0dXJuIGlzRHluYW1pY1xuICAgICAgPyBpbnRlcnBvbGF0ZWRSb3V0ZSAmJiBnZXRIcmVmRm9yU2x1ZyhpbnRlcnBvbGF0ZWRSb3V0ZSlcbiAgICAgIDogZ2V0SHJlZkZvclNsdWcocm91dGUpXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IGhyZWYgdGhlIHJvdXRlIGhyZWYgKGZpbGUtc3lzdGVtIHBhdGgpXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhc1BhdGggdGhlIFVSTCBhcyBzaG93biBpbiBicm93c2VyICh2aXJ0dWFsIHBhdGgpOyB1c2VkIGZvciBkeW5hbWljIHJvdXRlc1xuICAgKi9cbiAgcHJlZmV0Y2hEYXRhKFxuICAgIGhyZWY6IHN0cmluZyxcbiAgICBhc1BhdGg6IHN0cmluZyxcbiAgICBsb2NhbGU/OiBzdHJpbmcsXG4gICAgZGVmYXVsdExvY2FsZT86IHN0cmluZ1xuICApIHtcbiAgICBjb25zdCB7IHBhdGhuYW1lOiBocmVmUGF0aG5hbWUgfSA9IHBhcnNlUmVsYXRpdmVVcmwoaHJlZilcbiAgICBjb25zdCByb3V0ZSA9IG5vcm1hbGl6ZVJvdXRlKGhyZWZQYXRobmFtZSlcbiAgICByZXR1cm4gdGhpcy5wcm9taXNlZFNzZ01hbmlmZXN0IS50aGVuKFxuICAgICAgKHM6IENsaWVudFNzZ01hbmlmZXN0LCBfZGF0YUhyZWY/OiBzdHJpbmcpID0+XG4gICAgICAgIC8vIENoZWNrIGlmIHRoZSByb3V0ZSByZXF1aXJlcyBhIGRhdGEgZmlsZVxuICAgICAgICBzLmhhcyhyb3V0ZSkgJiZcbiAgICAgICAgLy8gVHJ5IHRvIGdlbmVyYXRlIGRhdGEgaHJlZiwgbm9vcCB3aGVuIGZhbHN5XG4gICAgICAgIChfZGF0YUhyZWYgPSB0aGlzLmdldERhdGFIcmVmKFxuICAgICAgICAgIGhyZWYsXG4gICAgICAgICAgYXNQYXRoLFxuICAgICAgICAgIHRydWUsXG4gICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgIGRlZmF1bHRMb2NhbGVcbiAgICAgICAgKSkgJiZcbiAgICAgICAgLy8gbm9vcCB3aGVuIGRhdGEgaGFzIGFscmVhZHkgYmVlbiBwcmVmZXRjaGVkIChkZWR1cGUpXG4gICAgICAgICFkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgIGBsaW5rW3JlbD1cIiR7cmVsUHJlZmV0Y2h9XCJdW2hyZWZePVwiJHtfZGF0YUhyZWZ9XCJdYFxuICAgICAgICApICYmXG4gICAgICAgIC8vIEluamVjdCB0aGUgYDxsaW5rIHJlbD1wcmVmZXRjaD5gIHRhZyBmb3IgYWJvdmUgY29tcHV0ZWQgYGhyZWZgLlxuICAgICAgICBhcHBlbmRMaW5rKF9kYXRhSHJlZiwgcmVsUHJlZmV0Y2gsICdmZXRjaCcpLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICAvKiBpZ25vcmUgcHJlZmV0Y2ggZXJyb3IgKi9cbiAgICAgICAgfSlcbiAgICApXG4gIH1cblxuICBsb2FkUGFnZShyb3V0ZTogc3RyaW5nKTogUHJvbWlzZTxHb29kUGFnZUNhY2hlPiB7XG4gICAgcm91dGUgPSBub3JtYWxpemVSb3V0ZShyb3V0ZSlcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZTxHb29kUGFnZUNhY2hlPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAvLyBJZiB0aGVyZSdzIGEgY2FjaGVkIHZlcnNpb24gb2YgdGhlIHBhZ2UsIGxldCdzIHVzZSBpdC5cbiAgICAgIGNvbnN0IGNhY2hlZFBhZ2UgPSB0aGlzLnBhZ2VDYWNoZVtyb3V0ZV1cbiAgICAgIGlmIChjYWNoZWRQYWdlKSB7XG4gICAgICAgIGlmICgnZXJyb3InIGluIGNhY2hlZFBhZ2UpIHtcbiAgICAgICAgICByZWplY3QoY2FjaGVkUGFnZS5lcnJvcilcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXNvbHZlKGNhY2hlZFBhZ2UpXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGZpcmUgPSAocGFnZVRvQ2FjaGU6IFBhZ2VDYWNoZUVudHJ5KSA9PiB7XG4gICAgICAgIHRoaXMucGFnZVJlZ2lzdGVyRXZlbnRzLm9mZihyb3V0ZSwgZmlyZSlcbiAgICAgICAgZGVsZXRlIHRoaXMubG9hZGluZ1JvdXRlc1tyb3V0ZV1cblxuICAgICAgICBpZiAoJ2Vycm9yJyBpbiBwYWdlVG9DYWNoZSkge1xuICAgICAgICAgIHJlamVjdChwYWdlVG9DYWNoZS5lcnJvcilcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXNvbHZlKHBhZ2VUb0NhY2hlKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFJlZ2lzdGVyIGEgbGlzdGVuZXIgdG8gZ2V0IHRoZSBwYWdlXG4gICAgICB0aGlzLnBhZ2VSZWdpc3RlckV2ZW50cy5vbihyb3V0ZSwgZmlyZSlcblxuICAgICAgaWYgKCF0aGlzLmxvYWRpbmdSb3V0ZXNbcm91dGVdKSB7XG4gICAgICAgIHRoaXMubG9hZGluZ1JvdXRlc1tyb3V0ZV0gPSB0cnVlXG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgdGhpcy5nZXREZXBlbmRlbmNpZXMocm91dGUpXG4gICAgICAgICAgICAudGhlbigoZGVwcykgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBwZW5kaW5nOiBQcm9taXNlPGFueT5bXSA9IFtdXG4gICAgICAgICAgICAgIGRlcHMuZm9yRWFjaCgoZCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgIGQuZW5kc1dpdGgoJy5qcycpICYmXG4gICAgICAgICAgICAgICAgICAhZG9jdW1lbnQucXVlcnlTZWxlY3Rvcihgc2NyaXB0W3NyY149XCIke2R9XCJdYClcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgIHBlbmRpbmcucHVzaChsb2FkU2NyaXB0KGQpKVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIFByZWZldGNoIENTUyBhcyBpdCdsbCBiZSBuZWVkZWQgd2hlbiB0aGUgcGFnZSBKYXZhU2NyaXB0XG4gICAgICAgICAgICAgICAgLy8gZXZhbHVhdGVzLiBUaGlzIHdpbGwgb25seSB0cmlnZ2VyIGlmIGV4cGxpY2l0IHByZWZldGNoaW5nIGlzXG4gICAgICAgICAgICAgICAgLy8gZGlzYWJsZWQgZm9yIGEgPExpbms+Li4uIHByZWZldGNoaW5nIGluIHRoaXMgY2FzZSBpcyBkZXNpcmFibGVcbiAgICAgICAgICAgICAgICAvLyBiZWNhdXNlIHdlICprbm93KiBpdCdzIGdvaW5nIHRvIGJlIHVzZWQgdmVyeSBzb29uIChwYWdlIHdhc1xuICAgICAgICAgICAgICAgIC8vIGxvYWRlZCkuXG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgZC5lbmRzV2l0aCgnLmNzcycpICYmXG4gICAgICAgICAgICAgICAgICAhZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAgICAgICAgICAgYGxpbmtbcmVsPVwiJHtyZWxQcmVsb2FkfVwiXVtocmVmXj1cIiR7ZH1cIl1gXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIG5vdCBwdXNoZWQgaW50byBgcGVuZGluZ2AgYmVjYXVzZSB3ZSBkb24ndCBuZWVkIHRvXG4gICAgICAgICAgICAgICAgICAvLyB3YWl0IGZvciB0aGVzZSB0byByZXNvbHZlLiBUbyBwcmV2ZW50IGFuIHVuaGFuZGxlZFxuICAgICAgICAgICAgICAgICAgLy8gcmVqZWN0aW9uLCB3ZSBzd2FsbG93IHRoZSBlcnJvciB3aGljaCBpcyBoYW5kbGVkIGxhdGVyIGluXG4gICAgICAgICAgICAgICAgICAvLyB0aGUgcmVuZGVyaW5nIGN5Y2xlICh0aGlzIGlzIGp1c3QgYSBwcmVsb2FkIG9wdGltaXphdGlvbikuXG4gICAgICAgICAgICAgICAgICBhcHBlbmRMaW5rKGQsIHJlbFByZWxvYWQsIHJlbFByZWxvYWRTdHlsZSkuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAvKiBpZ25vcmUgcHJlbG9hZCBlcnJvciAqL1xuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChwZW5kaW5nKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgIC8vIE1hcmsgdGhlIHBhZ2UgYXMgZmFpbGVkIHRvIGxvYWQgaWYgYW55IG9mIGl0cyByZXF1aXJlZCBzY3JpcHRzXG4gICAgICAgICAgICAgIC8vIGZhaWwgdG8gbG9hZDpcbiAgICAgICAgICAgICAgdGhpcy5wYWdlQ2FjaGVbcm91dGVdID0geyBlcnJvcjogZXJyIH1cbiAgICAgICAgICAgICAgZmlyZSh7IGVycm9yOiBlcnIgfSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gRGV2ZWxvcG1lbnQgb25seS4gSW4gcHJvZHVjdGlvbiB0aGUgcGFnZSBmaWxlIGlzIHBhcnQgb2YgdGhlIGJ1aWxkIG1hbmlmZXN0XG4gICAgICAgICAgcm91dGUgPSBub3JtYWxpemVSb3V0ZShyb3V0ZSlcbiAgICAgICAgICBsZXQgc2NyaXB0Um91dGUgPSBnZXRBc3NldFBhdGhGcm9tUm91dGUocm91dGUsICcuanMnKVxuXG4gICAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5hc3NldFByZWZpeH0vX25leHQvc3RhdGljL2NodW5rcy9wYWdlcyR7ZW5jb2RlVVJJKFxuICAgICAgICAgICAgc2NyaXB0Um91dGVcbiAgICAgICAgICApfWBcbiAgICAgICAgICBsb2FkU2NyaXB0KHVybCkuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgLy8gTWFyayB0aGUgcGFnZSBhcyBmYWlsZWQgdG8gbG9hZCBpZiBpdHMgc2NyaXB0IGZhaWxzIHRvIGxvYWQ6XG4gICAgICAgICAgICB0aGlzLnBhZ2VDYWNoZVtyb3V0ZV0gPSB7IGVycm9yOiBlcnIgfVxuICAgICAgICAgICAgZmlyZSh7IGVycm9yOiBlcnIgfSlcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIC8vIFRoaXMgbWV0aG9kIGlmIGNhbGxlZCBieSB0aGUgcm91dGUgY29kZS5cbiAgcmVnaXN0ZXJQYWdlKHJvdXRlOiBzdHJpbmcsIHJlZ0ZuOiAoKSA9PiBhbnkpIHtcbiAgICBjb25zdCByZWdpc3RlciA9IChzdHlsZVNoZWV0czogU3R5bGVTaGVldFR1cGxlW10pID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IG1vZCA9IHJlZ0ZuKClcbiAgICAgICAgY29uc3QgcGFnZURhdGE6IFBhZ2VDYWNoZUVudHJ5ID0ge1xuICAgICAgICAgIHBhZ2U6IG1vZC5kZWZhdWx0IHx8IG1vZCxcbiAgICAgICAgICBtb2QsXG4gICAgICAgICAgc3R5bGVTaGVldHMsXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wYWdlQ2FjaGVbcm91dGVdID0gcGFnZURhdGFcbiAgICAgICAgdGhpcy5wYWdlUmVnaXN0ZXJFdmVudHMuZW1pdChyb3V0ZSwgcGFnZURhdGEpXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICB0aGlzLnBhZ2VDYWNoZVtyb3V0ZV0gPSB7IGVycm9yIH1cbiAgICAgICAgdGhpcy5wYWdlUmVnaXN0ZXJFdmVudHMuZW1pdChyb3V0ZSwgeyBlcnJvciB9KVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAvLyBXYWl0IGZvciB3ZWJwYWNrIHRvIGJlY29tZSBpZGxlIGlmIGl0J3Mgbm90LlxuICAgICAgLy8gTW9yZSBpbmZvOiBodHRwczovL2dpdGh1Yi5jb20vdmVyY2VsL25leHQuanMvcHVsbC8xNTExXG4gICAgICBpZiAoKG1vZHVsZSBhcyBhbnkpLmhvdCAmJiAobW9kdWxlIGFzIGFueSkuaG90LnN0YXR1cygpICE9PSAnaWRsZScpIHtcbiAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgYFdhaXRpbmcgZm9yIHdlYnBhY2sgdG8gYmVjb21lIFwiaWRsZVwiIHRvIGluaXRpYWxpemUgdGhlIHBhZ2U6IFwiJHtyb3V0ZX1cImBcbiAgICAgICAgKVxuXG4gICAgICAgIGNvbnN0IGNoZWNrID0gKHN0YXR1czogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgaWYgKHN0YXR1cyA9PT0gJ2lkbGUnKSB7XG4gICAgICAgICAgICA7KG1vZHVsZSBhcyBhbnkpLmhvdC5yZW1vdmVTdGF0dXNIYW5kbGVyKGNoZWNrKVxuICAgICAgICAgICAgcmVnaXN0ZXIoXG4gICAgICAgICAgICAgIC8qIGNzcyBpcyBoYW5kbGVkIHZpYSBzdHlsZS1sb2FkZXIgaW4gZGV2ZWxvcG1lbnQgKi9cbiAgICAgICAgICAgICAgW11cbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgOyhtb2R1bGUgYXMgYW55KS5ob3Quc3RhdHVzKGNoZWNrKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBmZXRjaFN0eWxlU2hlZXQoaHJlZjogc3RyaW5nKTogUHJvbWlzZTxTdHlsZVNoZWV0VHVwbGU+IHtcbiAgICAgIHJldHVybiBmZXRjaChocmVmKS50aGVuKChyZXMpID0+IHtcbiAgICAgICAgaWYgKCFyZXMub2spIHRocm93IHBhZ2VMb2FkRXJyb3IoaHJlZilcbiAgICAgICAgcmV0dXJuIHJlcy50ZXh0KCkudGhlbigodGV4dCkgPT4gKHsgaHJlZiwgdGV4dCB9KSlcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgY29uc3QgaXNJbml0aWFsTG9hZCA9IHJvdXRlID09PSB0aGlzLmluaXRpYWxQYWdlXG4gICAgY29uc3QgcHJvbWlzZWREZXBzOiBQcm9taXNlPFN0eWxlU2hlZXRUdXBsZVtdPiA9XG4gICAgICAvLyBTaGFyZWQgc3R5bGVzIHdpbGwgYWxyZWFkeSBiZSBvbiB0aGUgcGFnZTpcbiAgICAgIHJvdXRlID09PSAnL19hcHAnIHx8XG4gICAgICAvLyBXZSB1c2UgYHN0eWxlLWxvYWRlcmAgaW4gZGV2ZWxvcG1lbnQ6XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nXG4gICAgICAgID8gUHJvbWlzZS5yZXNvbHZlKFtdKVxuICAgICAgICA6IC8vIFRlc3RzIHRoYXQgdGhpcyBkb2VzIG5vdCBibG9jayBoeWRyYXRpb246XG4gICAgICAgICAgLy8gdGVzdC9pbnRlZ3JhdGlvbi9jc3MtZml4dHVyZXMvaHlkcmF0ZS13aXRob3V0LWRlcHMvXG4gICAgICAgICAgKGlzSW5pdGlhbExvYWRcbiAgICAgICAgICAgID8gUHJvbWlzZS5yZXNvbHZlKFxuICAgICAgICAgICAgICAgIGxvb3NlVG9BcnJheTxIVE1MTGlua0VsZW1lbnQ+KFxuICAgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnbGlua1tkYXRhLW4tcF0nKVxuICAgICAgICAgICAgICAgICkubWFwKChlKSA9PiBlLmdldEF0dHJpYnV0ZSgnaHJlZicpISlcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiB0aGlzLmdldERlcGVuZGVuY2llcyhyb3V0ZSkudGhlbigoZGVwcykgPT5cbiAgICAgICAgICAgICAgICBkZXBzLmZpbHRlcigoZCkgPT4gZC5lbmRzV2l0aCgnLmNzcycpKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgKS50aGVuKChjc3NGaWxlcykgPT5cbiAgICAgICAgICAgIC8vIFRoZXNlIGZpbGVzIHNob3VsZCd2ZSBhbHJlYWR5IGJlZW4gZmV0Y2hlZCBieSBub3csIHNvIHRoaXNcbiAgICAgICAgICAgIC8vIHNob3VsZCByZXNvbHZlIGluc3RhbnRseS5cbiAgICAgICAgICAgIFByb21pc2UuYWxsKGNzc0ZpbGVzLm1hcCgoZCkgPT4gZmV0Y2hTdHlsZVNoZWV0KGQpKSkuY2F0Y2goXG4gICAgICAgICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaXNJbml0aWFsTG9hZCkgcmV0dXJuIGdldEluaXRpYWxTdHlsZXNoZWV0cygpXG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgcHJvbWlzZWREZXBzLnRoZW4oXG4gICAgICAoZGVwcykgPT4gcmVnaXN0ZXIoZGVwcyksXG4gICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgdGhpcy5wYWdlQ2FjaGVbcm91dGVdID0geyBlcnJvciB9XG4gICAgICAgIHRoaXMucGFnZVJlZ2lzdGVyRXZlbnRzLmVtaXQocm91dGUsIHsgZXJyb3IgfSlcbiAgICAgIH1cbiAgICApXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJvdXRlXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzRGVwZW5kZW5jeV1cbiAgICovXG4gIHByZWZldGNoKHJvdXRlOiBzdHJpbmcsIGlzRGVwZW5kZW5jeT86IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vR29vZ2xlQ2hyb21lTGFicy9xdWlja2xpbmsvYmxvYi80NTNhNjYxZmExZmE5NDBlMmQyZTA0NDQ1MjM5OGUzOGM2N2E5OGZiL3NyYy9pbmRleC5tanMjTDExNS1MMTE4XG4gICAgLy8gTGljZW5zZTogQXBhY2hlIDIuMFxuICAgIGxldCBjblxuICAgIGlmICgoY24gPSAobmF2aWdhdG9yIGFzIGFueSkuY29ubmVjdGlvbikpIHtcbiAgICAgIC8vIERvbid0IHByZWZldGNoIGlmIHVzaW5nIDJHIG9yIGlmIFNhdmUtRGF0YSBpcyBlbmFibGVkLlxuICAgICAgaWYgKGNuLnNhdmVEYXRhIHx8IC8yZy8udGVzdChjbi5lZmZlY3RpdmVUeXBlKSkgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpXG4gICAgfVxuXG4gICAgLyoqIEB0eXBlIHtzdHJpbmd9ICovXG4gICAgbGV0IHVybFxuICAgIGlmIChpc0RlcGVuZGVuY3kpIHtcbiAgICAgIHVybCA9IHJvdXRlXG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIHJvdXRlID0gbm9ybWFsaXplUm91dGUocm91dGUpXG5cbiAgICAgICAgY29uc3QgZXh0ID1cbiAgICAgICAgICBwcm9jZXNzLmVudi5fX05FWFRfTU9ERVJOX0JVSUxEICYmIGhhc05vTW9kdWxlID8gJy5tb2R1bGUuanMnIDogJy5qcydcbiAgICAgICAgY29uc3Qgc2NyaXB0Um91dGUgPSBnZXRBc3NldFBhdGhGcm9tUm91dGUocm91dGUsIGV4dClcblxuICAgICAgICB1cmwgPSBgJHt0aGlzLmFzc2V0UHJlZml4fS9fbmV4dC9zdGF0aWMvJHtlbmNvZGVVUklDb21wb25lbnQoXG4gICAgICAgICAgdGhpcy5idWlsZElkXG4gICAgICAgICl9L3BhZ2VzJHtlbmNvZGVVUkkoc2NyaXB0Um91dGUpfWBcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gUHJvbWlzZS5hbGwoXG4gICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBsaW5rW3JlbD1cIiR7cmVsUHJlZmV0Y2h9XCJdW2hyZWZePVwiJHt1cmx9XCJdYClcbiAgICAgICAgPyBbXVxuICAgICAgICA6IFtcbiAgICAgICAgICAgIHVybCAmJlxuICAgICAgICAgICAgICBhcHBlbmRMaW5rKFxuICAgICAgICAgICAgICAgIHVybCxcbiAgICAgICAgICAgICAgICByZWxQcmVmZXRjaCxcbiAgICAgICAgICAgICAgICB1cmwuZW5kc1dpdGgoJy5jc3MnKSA/IHJlbFByZWxvYWRTdHlsZSA6ICdzY3JpcHQnXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nICYmXG4gICAgICAgICAgICAgICFpc0RlcGVuZGVuY3kgJiZcbiAgICAgICAgICAgICAgdGhpcy5nZXREZXBlbmRlbmNpZXMocm91dGUpLnRoZW4oKHVybHMpID0+XG4gICAgICAgICAgICAgICAgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgICAgICAgICB1cmxzLm1hcCgoZGVwZW5kZW5jeVVybCkgPT5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmVmZXRjaChkZXBlbmRlbmN5VXJsLCB0cnVlKVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICBdXG4gICAgKS50aGVuKFxuICAgICAgLy8gZG8gbm90IHJldHVybiBhbnkgZGF0YVxuICAgICAgKCkgPT4ge30sXG4gICAgICAvLyBzd2FsbG93IHByZWZldGNoIGVycm9yc1xuICAgICAgKCkgPT4ge31cbiAgICApXG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/page-loader.js\n"); /***/ }), @@ -2141,7 +1866,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nvar _classCallCheck = __ /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _webVitals = __webpack_require__(/*! web-vitals */ \"./node_modules/web-vitals/dist/web-vitals.es5.min.js\");\n\nvar _default = function _default(onPerfEntry) {\n (0, _webVitals.getCLS)(onPerfEntry);\n (0, _webVitals.getFID)(onPerfEntry);\n (0, _webVitals.getFCP)(onPerfEntry);\n (0, _webVitals.getLCP)(onPerfEntry);\n (0, _webVitals.getTTFB)(onPerfEntry);\n};\n\nexports[\"default\"] = _default;\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.i);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL2NsaWVudC9wZXJmb3JtYW5jZS1yZWxheWVyLmpzP2ZmN2YiXSwibmFtZXMiOlsib25QZXJmRW50cnkiXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7O2VBRWdCQSxTLFFBQUFBLFlBQUQsRUFBaUI7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3BlcmZvcm1hbmNlLXJlbGF5ZXIuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRDTFMsIGdldEZJRCwgZ2V0RkNQLCBnZXRMQ1AsIGdldFRURkIgfSBmcm9tICd3ZWItdml0YWxzJ1xuXG5leHBvcnQgZGVmYXVsdCAob25QZXJmRW50cnkpID0+IHtcbiAgZ2V0Q0xTKG9uUGVyZkVudHJ5KVxuICBnZXRGSUQob25QZXJmRW50cnkpXG4gIGdldEZDUChvblBlcmZFbnRyeSlcbiAgZ2V0TENQKG9uUGVyZkVudHJ5KVxuICBnZXRUVEZCKG9uUGVyZkVudHJ5KVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/performance-relayer.js\n"); +eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _webVitals = __webpack_require__(/*! web-vitals */ \"./node_modules/web-vitals/dist/web-vitals.es5.min.js\");\n\nvar _default = function _default(onPerfEntry) {\n (0, _webVitals.getCLS)(onPerfEntry);\n (0, _webVitals.getFID)(onPerfEntry);\n (0, _webVitals.getFCP)(onPerfEntry);\n (0, _webVitals.getLCP)(onPerfEntry);\n (0, _webVitals.getTTFB)(onPerfEntry);\n};\n\nexports[\"default\"] = _default;\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.i);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL2NsaWVudC9wZXJmb3JtYW5jZS1yZWxheWVyLnRzPzAwMjYiXSwibmFtZXMiOlsib25QZXJmRW50cnkiXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7O2VBU2dCQSxTLFFBQUFBLFlBQUQsRUFBZ0M7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3BlcmZvcm1hbmNlLXJlbGF5ZXIuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBnZXRDTFMsXG4gIGdldEZDUCxcbiAgZ2V0RklELFxuICBnZXRMQ1AsXG4gIGdldFRURkIsXG4gIFJlcG9ydEhhbmRsZXIsXG59IGZyb20gJ3dlYi12aXRhbHMnXG5cbmV4cG9ydCBkZWZhdWx0IChvblBlcmZFbnRyeTogUmVwb3J0SGFuZGxlcikgPT4ge1xuICBnZXRDTFMob25QZXJmRW50cnkpXG4gIGdldEZJRChvblBlcmZFbnRyeSlcbiAgZ2V0RkNQKG9uUGVyZkVudHJ5KVxuICBnZXRMQ1Aob25QZXJmRW50cnkpXG4gIGdldFRURkIob25QZXJmRW50cnkpXG59XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/performance-relayer.js\n"); /***/ }), @@ -2153,7 +1878,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nexports.__esModule = tru /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nvar _construct = __webpack_require__(/*! @babel/runtime/helpers/construct */ \"./node_modules/@babel/runtime/helpers/construct.js\");\n\nvar _s = $RefreshSig$();\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"./node_modules/@babel/runtime/helpers/interopRequireWildcard.js\");\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nexports.__esModule = true;\nexports.useRouter = useRouter;\nexports.makePublicRouterInstance = makePublicRouterInstance;\nexports.createRouter = exports.withRouter = exports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _router2 = _interopRequireWildcard(__webpack_require__(/*! ../next-server/lib/router/router */ \"./node_modules/next/dist/next-server/lib/router/router.js\"));\n\nexports.Router = _router2[\"default\"];\nexports.NextRouter = _router2.NextRouter;\n\nvar _routerContext = __webpack_require__(/*! ../next-server/lib/router-context */ \"./node_modules/next/dist/next-server/lib/router-context.js\");\n\nvar _withRouter = _interopRequireDefault(__webpack_require__(/*! ./with-router */ \"./node_modules/next/dist/client/with-router.js\"));\n\nexports.withRouter = _withRouter[\"default\"];\n/* global window */\n\nvar singletonRouter = {\n router: null,\n // holds the actual router instance\n readyCallbacks: [],\n ready: function ready(cb) {\n if (this.router) return cb();\n\n if (true) {\n this.readyCallbacks.push(cb);\n }\n }\n}; // Create public properties and methods of the router in the singletonRouter\n\nvar urlPropertyFields = ['pathname', 'route', 'query', 'asPath', 'components', 'isFallback', 'basePath'];\nvar routerEvents = ['routeChangeStart', 'beforeHistoryChange', 'routeChangeComplete', 'routeChangeError', 'hashChangeStart', 'hashChangeComplete'];\nvar coreMethodFields = ['push', 'replace', 'reload', 'back', 'prefetch', 'beforePopState']; // Events is a static property on the router, the router doesn't have to be initialized to use it\n\nObject.defineProperty(singletonRouter, 'events', {\n get: function get() {\n return _router2[\"default\"].events;\n }\n});\nurlPropertyFields.forEach(function (field) {\n // Here we need to use Object.defineProperty because, we need to return\n // the property assigned to the actual router\n // The value might get changed as we change routes and this is the\n // proper way to access it\n Object.defineProperty(singletonRouter, field, {\n get: function get() {\n var router = getRouter();\n return router[field];\n }\n });\n});\ncoreMethodFields.forEach(function (field) {\n // We don't really know the types here, so we add them later instead\n ;\n\n singletonRouter[field] = function () {\n var router = getRouter();\n return router[field].apply(router, arguments);\n };\n});\nrouterEvents.forEach(function (event) {\n singletonRouter.ready(function () {\n _router2[\"default\"].events.on(event, function () {\n var eventField = \"on\".concat(event.charAt(0).toUpperCase()).concat(event.substring(1));\n var _singletonRouter = singletonRouter;\n\n if (_singletonRouter[eventField]) {\n try {\n _singletonRouter[eventField].apply(_singletonRouter, arguments);\n } catch (err) {\n // tslint:disable-next-line:no-console\n console.error(\"Error when running the Router event: \".concat(eventField)); // tslint:disable-next-line:no-console\n\n console.error(\"\".concat(err.message, \"\\n\").concat(err.stack));\n }\n }\n });\n });\n});\n\nfunction getRouter() {\n if (!singletonRouter.router) {\n var message = 'No router instance found.\\n' + 'You should only use \"next/router\" inside the client side of your app.\\n';\n throw new Error(message);\n }\n\n return singletonRouter.router;\n} // Export the singletonRouter and this is the public API.\n\n\nvar _default = singletonRouter; // Reexport the withRoute HOC\n\nexports[\"default\"] = _default;\n\nfunction useRouter() {\n _s();\n\n return _react[\"default\"].useContext(_routerContext.RouterContext);\n} // INTERNAL APIS\n// -------------\n// (do not use following exports inside the app)\n// Create a router and assign it as the singleton instance.\n// This is used in client side when we are initilizing the app.\n// This should **not** use inside the server.\n\n\n_s(useRouter, \"gDsCjeeItUuvgOWf1v4qoK9RF6k=\");\n\nvar createRouter = function createRouter() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n singletonRouter.router = _construct(_router2[\"default\"], args);\n singletonRouter.readyCallbacks.forEach(function (cb) {\n return cb();\n });\n singletonRouter.readyCallbacks = [];\n return singletonRouter.router;\n}; // This function is used to create the `withRouter` router instance\n\n\nexports.createRouter = createRouter;\n\nfunction makePublicRouterInstance(router) {\n var _router = router;\n var instance = {};\n\n var _iterator = _createForOfIteratorHelper(urlPropertyFields),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var property = _step.value;\n\n if (typeof _router[property] === 'object') {\n instance[property] = Object.assign({}, _router[property]); // makes sure query is not stateful\n\n continue;\n }\n\n instance[property] = _router[property];\n } // Events is a static property on the router, the router doesn't have to be initialized to use it\n\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n instance.events = _router2[\"default\"].events;\n coreMethodFields.forEach(function (field) {\n instance[field] = function () {\n return _router[field].apply(_router, arguments);\n };\n });\n return instance;\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.i);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL2NsaWVudC9yb3V0ZXIudHM/MDZmZiJdLCJuYW1lcyI6WyJzaW5nbGV0b25Sb3V0ZXIiLCJyb3V0ZXIiLCJyZWFkeUNhbGxiYWNrcyIsInJlYWR5IiwiY2IiLCJ1cmxQcm9wZXJ0eUZpZWxkcyIsInJvdXRlckV2ZW50cyIsImNvcmVNZXRob2RGaWVsZHMiLCJPYmplY3QiLCJnZXQiLCJSb3V0ZXIiLCJmaWVsZCIsImdldFJvdXRlciIsImV2ZW50IiwiZXZlbnRGaWVsZCIsIl9zaW5nbGV0b25Sb3V0ZXIiLCJjb25zb2xlIiwiZXJyIiwibWVzc2FnZSIsIlJlYWN0IiwiUm91dGVyQ29udGV4dCIsImNyZWF0ZVJvdXRlciIsIl9yb3V0ZXIiLCJpbnN0YW5jZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0E7O0FBQ0E7Ozs7O0FBQ0E7O0FBcUhBOzs7QUF4SEE7O0FBbUJBLElBQU1BLGVBQW9DLEdBQUc7QUFDM0NDLFFBQU0sRUFEcUM7QUFDN0I7QUFDZEMsZ0JBQWMsRUFGNkI7QUFHM0NDLE9BSDJDLGlCQUd0QyxFQUhzQyxFQUdyQjtBQUNwQixRQUFJLEtBQUosUUFBaUIsT0FBT0MsRUFBUDs7QUFDakIsY0FBbUM7QUFDakM7QUFFSDtBQVJIO0FBQTZDLENBQTdDLEMsQ0FXQTs7QUFDQSxJQUFNQyxpQkFBaUIsR0FBRyxxRUFBMUIsVUFBMEIsQ0FBMUI7QUFTQSxJQUFNQyxZQUFZLEdBQUcsMEdBQXJCLG9CQUFxQixDQUFyQjtBQVFBLElBQU1DLGdCQUFnQixHQUFHLGtEQUF6QixnQkFBeUIsQ0FBekIsQyxDQVNBOztBQUNBQyxNQUFNLENBQU5BLDBDQUFpRDtBQUMvQ0MsS0FEK0MsaUJBQ3pDO0FBQ0osV0FBT0Msb0JBQVA7QUFGSkY7QUFBaUQsQ0FBakRBO0FBTUFILGlCQUFpQixDQUFqQkEsUUFBMkJNLGVBQUQsRUFBVztBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBSCxRQUFNLENBQU5BLHVD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bGllbnQvcm91dGVyLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZ2xvYmFsIHdpbmRvdyAqL1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IFJvdXRlciwgeyBOZXh0Um91dGVyIH0gZnJvbSAnLi4vbmV4dC1zZXJ2ZXIvbGliL3JvdXRlci9yb3V0ZXInXG5pbXBvcnQgeyBSb3V0ZXJDb250ZXh0IH0gZnJvbSAnLi4vbmV4dC1zZXJ2ZXIvbGliL3JvdXRlci1jb250ZXh0J1xuXG50eXBlIENsYXNzQXJndW1lbnRzPFQ+ID0gVCBleHRlbmRzIG5ldyAoLi4uYXJnczogaW5mZXIgVSkgPT4gYW55ID8gVSA6IGFueVxuXG50eXBlIFJvdXRlckFyZ3MgPSBDbGFzc0FyZ3VtZW50czx0eXBlb2YgUm91dGVyPlxuXG50eXBlIFNpbmdsZXRvblJvdXRlckJhc2UgPSB7XG4gIHJvdXRlcjogUm91dGVyIHwgbnVsbFxuICByZWFkeUNhbGxiYWNrczogQXJyYXk8KCkgPT4gYW55PlxuICByZWFkeShjYjogKCkgPT4gYW55KTogdm9pZFxufVxuXG5leHBvcnQgeyBSb3V0ZXIsIE5leHRSb3V0ZXIgfVxuXG5leHBvcnQgdHlwZSBTaW5nbGV0b25Sb3V0ZXIgPSBTaW5nbGV0b25Sb3V0ZXJCYXNlICYgTmV4dFJvdXRlclxuXG5jb25zdCBzaW5nbGV0b25Sb3V0ZXI6IFNpbmdsZXRvblJvdXRlckJhc2UgPSB7XG4gIHJvdXRlcjogbnVsbCwgLy8gaG9sZHMgdGhlIGFjdHVhbCByb3V0ZXIgaW5zdGFuY2VcbiAgcmVhZHlDYWxsYmFja3M6IFtdLFxuICByZWFkeShjYjogKCkgPT4gdm9pZCkge1xuICAgIGlmICh0aGlzLnJvdXRlcikgcmV0dXJuIGNiKClcbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHRoaXMucmVhZHlDYWxsYmFja3MucHVzaChjYilcbiAgICB9XG4gIH0sXG59XG5cbi8vIENyZWF0ZSBwdWJsaWMgcHJvcGVydGllcyBhbmQgbWV0aG9kcyBvZiB0aGUgcm91dGVyIGluIHRoZSBzaW5nbGV0b25Sb3V0ZXJcbmNvbnN0IHVybFByb3BlcnR5RmllbGRzID0gW1xuICAncGF0aG5hbWUnLFxuICAncm91dGUnLFxuICAncXVlcnknLFxuICAnYXNQYXRoJyxcbiAgJ2NvbXBvbmVudHMnLFxuICAnaXNGYWxsYmFjaycsXG4gICdiYXNlUGF0aCcsXG5dXG5jb25zdCByb3V0ZXJFdmVudHMgPSBbXG4gICdyb3V0ZUNoYW5nZVN0YXJ0JyxcbiAgJ2JlZm9yZUhpc3RvcnlDaGFuZ2UnLFxuICAncm91dGVDaGFuZ2VDb21wbGV0ZScsXG4gICdyb3V0ZUNoYW5nZUVycm9yJyxcbiAgJ2hhc2hDaGFuZ2VTdGFydCcsXG4gICdoYXNoQ2hhbmdlQ29tcGxldGUnLFxuXVxuY29uc3QgY29yZU1ldGhvZEZpZWxkcyA9IFtcbiAgJ3B1c2gnLFxuICAncmVwbGFjZScsXG4gICdyZWxvYWQnLFxuICAnYmFjaycsXG4gICdwcmVmZXRjaCcsXG4gICdiZWZvcmVQb3BTdGF0ZScsXG5dXG5cbi8vIEV2ZW50cyBpcyBhIHN0YXRpYyBwcm9wZXJ0eSBvbiB0aGUgcm91dGVyLCB0aGUgcm91dGVyIGRvZXNuJ3QgaGF2ZSB0byBiZSBpbml0aWFsaXplZCB0byB1c2UgaXRcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShzaW5nbGV0b25Sb3V0ZXIsICdldmVudHMnLCB7XG4gIGdldCgpIHtcbiAgICByZXR1cm4gUm91dGVyLmV2ZW50c1xuICB9LFxufSlcblxudXJsUHJvcGVydHlGaWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgLy8gSGVyZSB3ZSBuZWVkIHRvIHVzZSBPYmplY3QuZGVmaW5lUHJvcGVydHkgYmVjYXVzZSwgd2UgbmVlZCB0byByZXR1cm5cbiAgLy8gdGhlIHByb3BlcnR5IGFzc2lnbmVkIHRvIHRoZSBhY3R1YWwgcm91dGVyXG4gIC8vIFRoZSB2YWx1ZSBtaWdodCBnZXQgY2hhbmdlZCBhcyB3ZSBjaGFuZ2Ugcm91dGVzIGFuZCB0aGlzIGlzIHRoZVxuICAvLyBwcm9wZXIgd2F5IHRvIGFjY2VzcyBpdFxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoc2luZ2xldG9uUm91dGVyLCBmaWVsZCwge1xuICAgIGdldCgpIHtcbiAgICAgIGNvbnN0IHJvdXRlciA9IGdldFJvdXRlcigpIGFzIGFueVxuICAgICAgcmV0dXJuIHJvdXRlcltmaWVsZF0gYXMgc3RyaW5nXG4gICAgfSxcbiAgfSlcbn0pXG5cbmNvcmVNZXRob2RGaWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgLy8gV2UgZG9uJ3QgcmVhbGx5IGtub3cgdGhlIHR5cGVzIGhlcmUsIHNvIHdlIGFkZCB0aGVtIGxhdGVyIGluc3RlYWRcbiAgOyhzaW5nbGV0b25Sb3V0ZXIgYXMgYW55KVtmaWVsZF0gPSAoLi4uYXJnczogYW55W10pID0+IHtcbiAgICBjb25zdCByb3V0ZXIgPSBnZXRSb3V0ZXIoKSBhcyBhbnlcbiAgICByZXR1cm4gcm91dGVyW2ZpZWxkXSguLi5hcmdzKVxuICB9XG59KVxuXG5yb3V0ZXJFdmVudHMuZm9yRWFjaCgoZXZlbnQpID0+IHtcbiAgc2luZ2xldG9uUm91dGVyLnJlYWR5KCgpID0+IHtcbiAgICBSb3V0ZXIuZXZlbnRzLm9uKGV2ZW50LCAoLi4uYXJncykgPT4ge1xuICAgICAgY29uc3QgZXZlbnRGaWVsZCA9IGBvbiR7ZXZlbnQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCl9JHtldmVudC5zdWJzdHJpbmcoXG4gICAgICAgIDFcbiAgICAgICl9YFxuICAgICAgY29uc3QgX3NpbmdsZXRvblJvdXRlciA9IHNpbmdsZXRvblJvdXRlciBhcyBhbnlcbiAgICAgIGlmIChfc2luZ2xldG9uUm91dGVyW2V2ZW50RmllbGRdKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgX3NpbmdsZXRvblJvdXRlcltldmVudEZpZWxkXSguLi5hcmdzKVxuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tY29uc29sZVxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEVycm9yIHdoZW4gcnVubmluZyB0aGUgUm91dGVyIGV2ZW50OiAke2V2ZW50RmllbGR9YClcbiAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tY29uc29sZVxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYCR7ZXJyLm1lc3NhZ2V9XFxuJHtlcnIuc3RhY2t9YClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG4gIH0pXG59KVxuXG5mdW5jdGlvbiBnZXRSb3V0ZXIoKTogUm91dGVyIHtcbiAgaWYgKCFzaW5nbGV0b25Sb3V0ZXIucm91dGVyKSB7XG4gICAgY29uc3QgbWVzc2FnZSA9XG4gICAgICAnTm8gcm91dGVyIGluc3RhbmNlIGZvdW5kLlxcbicgK1xuICAgICAgJ1lvdSBzaG91bGQgb25seSB1c2UgXCJuZXh0L3JvdXRlclwiIGluc2lkZSB0aGUgY2xpZW50IHNpZGUgb2YgeW91ciBhcHAuXFxuJ1xuICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKVxuICB9XG4gIHJldHVybiBzaW5nbGV0b25Sb3V0ZXIucm91dGVyXG59XG5cbi8vIEV4cG9ydCB0aGUgc2luZ2xldG9uUm91dGVyIGFuZCB0aGlzIGlzIHRoZSBwdWJsaWMgQVBJLlxuZXhwb3J0IGRlZmF1bHQgc2luZ2xldG9uUm91dGVyIGFzIFNpbmdsZXRvblJvdXRlclxuXG4vLyBSZWV4cG9ydCB0aGUgd2l0aFJvdXRlIEhPQ1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB3aXRoUm91dGVyIH0gZnJvbSAnLi93aXRoLXJvdXRlcidcblxuZXhwb3J0IGZ1bmN0aW9uIHVzZVJvdXRlcigpOiBOZXh0Um91dGVyIHtcbiAgcmV0dXJuIFJlYWN0LnVzZUNvbnRleHQoUm91dGVyQ29udGV4dClcbn1cblxuLy8gSU5URVJOQUwgQVBJU1xuLy8gLS0tLS0tLS0tLS0tLVxuLy8gKGRvIG5vdCB1c2UgZm9sbG93aW5nIGV4cG9ydHMgaW5zaWRlIHRoZSBhcHApXG5cbi8vIENyZWF0ZSBhIHJvdXRlciBhbmQgYXNzaWduIGl0IGFzIHRoZSBzaW5nbGV0b24gaW5zdGFuY2UuXG4vLyBUaGlzIGlzIHVzZWQgaW4gY2xpZW50IHNpZGUgd2hlbiB3ZSBhcmUgaW5pdGlsaXppbmcgdGhlIGFwcC5cbi8vIFRoaXMgc2hvdWxkICoqbm90KiogdXNlIGluc2lkZSB0aGUgc2VydmVyLlxuZXhwb3J0IGNvbnN0IGNyZWF0ZVJvdXRlciA9ICguLi5hcmdzOiBSb3V0ZXJBcmdzKTogUm91dGVyID0+IHtcbiAgc2luZ2xldG9uUm91dGVyLnJvdXRlciA9IG5ldyBSb3V0ZXIoLi4uYXJncylcbiAgc2luZ2xldG9uUm91dGVyLnJlYWR5Q2FsbGJhY2tzLmZvckVhY2goKGNiKSA9PiBjYigpKVxuICBzaW5nbGV0b25Sb3V0ZXIucmVhZHlDYWxsYmFja3MgPSBbXVxuXG4gIHJldHVybiBzaW5nbGV0b25Sb3V0ZXIucm91dGVyXG59XG5cbi8vIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBjcmVhdGUgdGhlIGB3aXRoUm91dGVyYCByb3V0ZXIgaW5zdGFuY2VcbmV4cG9ydCBmdW5jdGlvbiBtYWtlUHVibGljUm91dGVySW5zdGFuY2Uocm91dGVyOiBSb3V0ZXIpOiBOZXh0Um91dGVyIHtcbiAgY29uc3QgX3JvdXRlciA9IHJvdXRlciBhcyBhbnlcbiAgY29uc3QgaW5zdGFuY2UgPSB7fSBhcyBhbnlcblxuICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHVybFByb3BlcnR5RmllbGRzKSB7XG4gICAgaWYgKHR5cGVvZiBfcm91dGVyW3Byb3BlcnR5XSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGluc3RhbmNlW3Byb3BlcnR5XSA9IE9iamVjdC5hc3NpZ24oe30sIF9yb3V0ZXJbcHJvcGVydHldKSAvLyBtYWtlcyBzdXJlIHF1ZXJ5IGlzIG5vdCBzdGF0ZWZ1bFxuICAgICAgY29udGludWVcbiAgICB9XG5cbiAgICBpbnN0YW5jZVtwcm9wZXJ0eV0gPSBfcm91dGVyW3Byb3BlcnR5XVxuICB9XG5cbiAgLy8gRXZlbnRzIGlzIGEgc3RhdGljIHByb3BlcnR5IG9uIHRoZSByb3V0ZXIsIHRoZSByb3V0ZXIgZG9lc24ndCBoYXZlIHRvIGJlIGluaXRpYWxpemVkIHRvIHVzZSBpdFxuICBpbnN0YW5jZS5ldmVudHMgPSBSb3V0ZXIuZXZlbnRzXG5cbiAgY29yZU1ldGhvZEZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgIGluc3RhbmNlW2ZpZWxkXSA9ICguLi5hcmdzOiBhbnlbXSkgPT4ge1xuICAgICAgcmV0dXJuIF9yb3V0ZXJbZmllbGRdKC4uLmFyZ3MpXG4gICAgfVxuICB9KVxuXG4gIHJldHVybiBpbnN0YW5jZVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/router.js\n"); +eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nvar _construct = __webpack_require__(/*! @babel/runtime/helpers/construct */ \"./node_modules/next/node_modules/@babel/runtime/helpers/construct.js\");\n\nvar _s = $RefreshSig$();\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"./node_modules/next/node_modules/@babel/runtime/helpers/interopRequireWildcard.js\");\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/next/node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nexports.__esModule = true;\nexports.useRouter = useRouter;\nexports.makePublicRouterInstance = makePublicRouterInstance;\nexports.createRouter = exports.withRouter = exports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _router2 = _interopRequireWildcard(__webpack_require__(/*! ../next-server/lib/router/router */ \"./node_modules/next/dist/next-server/lib/router/router.js\"));\n\nexports.Router = _router2[\"default\"];\nexports.NextRouter = _router2.NextRouter;\n\nvar _routerContext = __webpack_require__(/*! ../next-server/lib/router-context */ \"./node_modules/next/dist/next-server/lib/router-context.js\");\n\nvar _withRouter = _interopRequireDefault(__webpack_require__(/*! ./with-router */ \"./node_modules/next/dist/client/with-router.js\"));\n\nexports.withRouter = _withRouter[\"default\"];\n/* global window */\n\nvar singletonRouter = {\n router: null,\n // holds the actual router instance\n readyCallbacks: [],\n ready: function ready(cb) {\n if (this.router) return cb();\n\n if (true) {\n this.readyCallbacks.push(cb);\n }\n }\n}; // Create public properties and methods of the router in the singletonRouter\n\nvar urlPropertyFields = ['pathname', 'route', 'query', 'asPath', 'components', 'isFallback', 'basePath', 'locale', 'locales', 'defaultLocale'];\nvar routerEvents = ['routeChangeStart', 'beforeHistoryChange', 'routeChangeComplete', 'routeChangeError', 'hashChangeStart', 'hashChangeComplete'];\nvar coreMethodFields = ['push', 'replace', 'reload', 'back', 'prefetch', 'beforePopState']; // Events is a static property on the router, the router doesn't have to be initialized to use it\n\nObject.defineProperty(singletonRouter, 'events', {\n get: function get() {\n return _router2[\"default\"].events;\n }\n});\nurlPropertyFields.forEach(function (field) {\n // Here we need to use Object.defineProperty because, we need to return\n // the property assigned to the actual router\n // The value might get changed as we change routes and this is the\n // proper way to access it\n Object.defineProperty(singletonRouter, field, {\n get: function get() {\n var router = getRouter();\n return router[field];\n }\n });\n});\ncoreMethodFields.forEach(function (field) {\n // We don't really know the types here, so we add them later instead\n ;\n\n singletonRouter[field] = function () {\n var router = getRouter();\n return router[field].apply(router, arguments);\n };\n});\nrouterEvents.forEach(function (event) {\n singletonRouter.ready(function () {\n _router2[\"default\"].events.on(event, function () {\n var eventField = \"on\".concat(event.charAt(0).toUpperCase()).concat(event.substring(1));\n var _singletonRouter = singletonRouter;\n\n if (_singletonRouter[eventField]) {\n try {\n _singletonRouter[eventField].apply(_singletonRouter, arguments);\n } catch (err) {\n console.error(\"Error when running the Router event: \".concat(eventField));\n console.error(\"\".concat(err.message, \"\\n\").concat(err.stack));\n }\n }\n });\n });\n});\n\nfunction getRouter() {\n if (!singletonRouter.router) {\n var message = 'No router instance found.\\n' + 'You should only use \"next/router\" inside the client side of your app.\\n';\n throw new Error(message);\n }\n\n return singletonRouter.router;\n} // Export the singletonRouter and this is the public API.\n\n\nvar _default = singletonRouter; // Reexport the withRoute HOC\n\nexports[\"default\"] = _default;\n\nfunction useRouter() {\n _s();\n\n return _react[\"default\"].useContext(_routerContext.RouterContext);\n} // INTERNAL APIS\n// -------------\n// (do not use following exports inside the app)\n// Create a router and assign it as the singleton instance.\n// This is used in client side when we are initilizing the app.\n// This should **not** use inside the server.\n\n\n_s(useRouter, \"gDsCjeeItUuvgOWf1v4qoK9RF6k=\");\n\nvar createRouter = function createRouter() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n singletonRouter.router = _construct(_router2[\"default\"], args);\n singletonRouter.readyCallbacks.forEach(function (cb) {\n return cb();\n });\n singletonRouter.readyCallbacks = [];\n return singletonRouter.router;\n}; // This function is used to create the `withRouter` router instance\n\n\nexports.createRouter = createRouter;\n\nfunction makePublicRouterInstance(router) {\n var _router = router;\n var instance = {};\n\n var _iterator = _createForOfIteratorHelper(urlPropertyFields),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var property = _step.value;\n\n if (typeof _router[property] === 'object') {\n instance[property] = Object.assign(Array.isArray(_router[property]) ? [] : {}, _router[property]); // makes sure query is not stateful\n\n continue;\n }\n\n instance[property] = _router[property];\n } // Events is a static property on the router, the router doesn't have to be initialized to use it\n\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n instance.events = _router2[\"default\"].events;\n coreMethodFields.forEach(function (field) {\n instance[field] = function () {\n return _router[field].apply(_router, arguments);\n };\n });\n return instance;\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.i);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL2NsaWVudC9yb3V0ZXIudHM/MDZmZiJdLCJuYW1lcyI6WyJzaW5nbGV0b25Sb3V0ZXIiLCJyb3V0ZXIiLCJyZWFkeUNhbGxiYWNrcyIsInJlYWR5IiwiY2IiLCJ1cmxQcm9wZXJ0eUZpZWxkcyIsInJvdXRlckV2ZW50cyIsImNvcmVNZXRob2RGaWVsZHMiLCJPYmplY3QiLCJnZXQiLCJSb3V0ZXIiLCJmaWVsZCIsImdldFJvdXRlciIsImV2ZW50IiwiZXZlbnRGaWVsZCIsIl9zaW5nbGV0b25Sb3V0ZXIiLCJjb25zb2xlIiwiZXJyIiwibWVzc2FnZSIsIlJlYWN0IiwiUm91dGVyQ29udGV4dCIsImNyZWF0ZVJvdXRlciIsIl9yb3V0ZXIiLCJpbnN0YW5jZSIsIkFycmF5Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQTs7QUFDQTs7Ozs7QUFDQTs7QUFzSEE7OztBQXpIQTs7QUFtQkEsSUFBTUEsZUFBb0MsR0FBRztBQUMzQ0MsUUFBTSxFQURxQztBQUM3QjtBQUNkQyxnQkFBYyxFQUY2QjtBQUczQ0MsT0FIMkMsaUJBR3RDLEVBSHNDLEVBR3JCO0FBQ3BCLFFBQUksS0FBSixRQUFpQixPQUFPQyxFQUFQOztBQUNqQixjQUFtQztBQUNqQztBQUVIO0FBUkg7QUFBNkMsQ0FBN0MsQyxDQVdBOztBQUNBLElBQU1DLGlCQUFpQixHQUFHLHNHQUExQixlQUEwQixDQUExQjtBQVlBLElBQU1DLFlBQVksR0FBRywwR0FBckIsb0JBQXFCLENBQXJCO0FBUUEsSUFBTUMsZ0JBQWdCLEdBQUcsa0RBQXpCLGdCQUF5QixDQUF6QixDLENBU0E7O0FBQ0FDLE1BQU0sQ0FBTkEsMENBQWlEO0FBQy9DQyxLQUQrQyxpQkFDekM7QUFDSixXQUFPQyxvQkFBUDtBQUZKRjtBQUFpRCxDQUFqREE7QUFNQUgsaUJBQWlCLENBQWpCQSxRQUEyQk0sZUFBRCxFQUFXO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0FILFFBQU0s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REZDO0FBREZoQjtBQU1BO0FBQ0QiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yb3V0ZXIuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBnbG9iYWwgd2luZG93ICovXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgUm91dGVyLCB7IE5leHRSb3V0ZXIgfSBmcm9tICcuLi9uZXh0LXNlcnZlci9saWIvcm91dGVyL3JvdXRlcidcbmltcG9ydCB7IFJvdXRlckNvbnRleHQgfSBmcm9tICcuLi9uZXh0LXNlcnZlci9saWIvcm91dGVyLWNvbnRleHQnXG5cbnR5cGUgQ2xhc3NBcmd1bWVudHM8VD4gPSBUIGV4dGVuZHMgbmV3ICguLi5hcmdzOiBpbmZlciBVKSA9PiBhbnkgPyBVIDogYW55XG5cbnR5cGUgUm91dGVyQXJncyA9IENsYXNzQXJndW1lbnRzPHR5cGVvZiBSb3V0ZXI+XG5cbnR5cGUgU2luZ2xldG9uUm91dGVyQmFzZSA9IHtcbiAgcm91dGVyOiBSb3V0ZXIgfCBudWxsXG4gIHJlYWR5Q2FsbGJhY2tzOiBBcnJheTwoKSA9PiBhbnk+XG4gIHJlYWR5KGNiOiAoKSA9PiBhbnkpOiB2b2lkXG59XG5cbmV4cG9ydCB7IFJvdXRlciwgTmV4dFJvdXRlciB9XG5cbmV4cG9ydCB0eXBlIFNpbmdsZXRvblJvdXRlciA9IFNpbmdsZXRvblJvdXRlckJhc2UgJiBOZXh0Um91dGVyXG5cbmNvbnN0IHNpbmdsZXRvblJvdXRlcjogU2luZ2xldG9uUm91dGVyQmFzZSA9IHtcbiAgcm91dGVyOiBudWxsLCAvLyBob2xkcyB0aGUgYWN0dWFsIHJvdXRlciBpbnN0YW5jZVxuICByZWFkeUNhbGxiYWNrczogW10sXG4gIHJlYWR5KGNiOiAoKSA9PiB2b2lkKSB7XG4gICAgaWYgKHRoaXMucm91dGVyKSByZXR1cm4gY2IoKVxuICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgdGhpcy5yZWFkeUNhbGxiYWNrcy5wdXNoKGNiKVxuICAgIH1cbiAgfSxcbn1cblxuLy8gQ3JlYXRlIHB1YmxpYyBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzIG9mIHRoZSByb3V0ZXIgaW4gdGhlIHNpbmdsZXRvblJvdXRlclxuY29uc3QgdXJsUHJvcGVydHlGaWVsZHMgPSBbXG4gICdwYXRobmFtZScsXG4gICdyb3V0ZScsXG4gICdxdWVyeScsXG4gICdhc1BhdGgnLFxuICAnY29tcG9uZW50cycsXG4gICdpc0ZhbGxiYWNrJyxcbiAgJ2Jhc2VQYXRoJyxcbiAgJ2xvY2FsZScsXG4gICdsb2NhbGVzJyxcbiAgJ2RlZmF1bHRMb2NhbGUnLFxuXVxuY29uc3Qgcm91dGVyRXZlbnRzID0gW1xuICAncm91dGVDaGFuZ2VTdGFydCcsXG4gICdiZWZvcmVIaXN0b3J5Q2hhbmdlJyxcbiAgJ3JvdXRlQ2hhbmdlQ29tcGxldGUnLFxuICAncm91dGVDaGFuZ2VFcnJvcicsXG4gICdoYXNoQ2hhbmdlU3RhcnQnLFxuICAnaGFzaENoYW5nZUNvbXBsZXRlJyxcbl1cbmNvbnN0IGNvcmVNZXRob2RGaWVsZHMgPSBbXG4gICdwdXNoJyxcbiAgJ3JlcGxhY2UnLFxuICAncmVsb2FkJyxcbiAgJ2JhY2snLFxuICAncHJlZmV0Y2gnLFxuICAnYmVmb3JlUG9wU3RhdGUnLFxuXVxuXG4vLyBFdmVudHMgaXMgYSBzdGF0aWMgcHJvcGVydHkgb24gdGhlIHJvdXRlciwgdGhlIHJvdXRlciBkb2Vzbid0IGhhdmUgdG8gYmUgaW5pdGlhbGl6ZWQgdG8gdXNlIGl0XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoc2luZ2xldG9uUm91dGVyLCAnZXZlbnRzJywge1xuICBnZXQoKSB7XG4gICAgcmV0dXJuIFJvdXRlci5ldmVudHNcbiAgfSxcbn0pXG5cbnVybFByb3BlcnR5RmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gIC8vIEhlcmUgd2UgbmVlZCB0byB1c2UgT2JqZWN0LmRlZmluZVByb3BlcnR5IGJlY2F1c2UsIHdlIG5lZWQgdG8gcmV0dXJuXG4gIC8vIHRoZSBwcm9wZXJ0eSBhc3NpZ25lZCB0byB0aGUgYWN0dWFsIHJvdXRlclxuICAvLyBUaGUgdmFsdWUgbWlnaHQgZ2V0IGNoYW5nZWQgYXMgd2UgY2hhbmdlIHJvdXRlcyBhbmQgdGhpcyBpcyB0aGVcbiAgLy8gcHJvcGVyIHdheSB0byBhY2Nlc3MgaXRcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHNpbmdsZXRvblJvdXRlciwgZmllbGQsIHtcbiAgICBnZXQoKSB7XG4gICAgICBjb25zdCByb3V0ZXIgPSBnZXRSb3V0ZXIoKSBhcyBhbnlcbiAgICAgIHJldHVybiByb3V0ZXJbZmllbGRdIGFzIHN0cmluZ1xuICAgIH0sXG4gIH0pXG59KVxuXG5jb3JlTWV0aG9kRmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gIC8vIFdlIGRvbid0IHJlYWxseSBrbm93IHRoZSB0eXBlcyBoZXJlLCBzbyB3ZSBhZGQgdGhlbSBsYXRlciBpbnN0ZWFkXG4gIDsoc2luZ2xldG9uUm91dGVyIGFzIGFueSlbZmllbGRdID0gKC4uLmFyZ3M6IGFueVtdKSA9PiB7XG4gICAgY29uc3Qgcm91dGVyID0gZ2V0Um91dGVyKCkgYXMgYW55XG4gICAgcmV0dXJuIHJvdXRlcltmaWVsZF0oLi4uYXJncylcbiAgfVxufSlcblxucm91dGVyRXZlbnRzLmZvckVhY2goKGV2ZW50KSA9PiB7XG4gIHNpbmdsZXRvblJvdXRlci5yZWFkeSgoKSA9PiB7XG4gICAgUm91dGVyLmV2ZW50cy5vbihldmVudCwgKC4uLmFyZ3MpID0+IHtcbiAgICAgIGNvbnN0IGV2ZW50RmllbGQgPSBgb24ke2V2ZW50LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpfSR7ZXZlbnQuc3Vic3RyaW5nKFxuICAgICAgICAxXG4gICAgICApfWBcbiAgICAgIGNvbnN0IF9zaW5nbGV0b25Sb3V0ZXIgPSBzaW5nbGV0b25Sb3V0ZXIgYXMgYW55XG4gICAgICBpZiAoX3NpbmdsZXRvblJvdXRlcltldmVudEZpZWxkXSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIF9zaW5nbGV0b25Sb3V0ZXJbZXZlbnRGaWVsZF0oLi4uYXJncylcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihgRXJyb3Igd2hlbiBydW5uaW5nIHRoZSBSb3V0ZXIgZXZlbnQ6ICR7ZXZlbnRGaWVsZH1gKVxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYCR7ZXJyLm1lc3NhZ2V9XFxuJHtlcnIuc3RhY2t9YClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG4gIH0pXG59KVxuXG5mdW5jdGlvbiBnZXRSb3V0ZXIoKTogUm91dGVyIHtcbiAgaWYgKCFzaW5nbGV0b25Sb3V0ZXIucm91dGVyKSB7XG4gICAgY29uc3QgbWVzc2FnZSA9XG4gICAgICAnTm8gcm91dGVyIGluc3RhbmNlIGZvdW5kLlxcbicgK1xuICAgICAgJ1lvdSBzaG91bGQgb25seSB1c2UgXCJuZXh0L3JvdXRlclwiIGluc2lkZSB0aGUgY2xpZW50IHNpZGUgb2YgeW91ciBhcHAuXFxuJ1xuICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKVxuICB9XG4gIHJldHVybiBzaW5nbGV0b25Sb3V0ZXIucm91dGVyXG59XG5cbi8vIEV4cG9ydCB0aGUgc2luZ2xldG9uUm91dGVyIGFuZCB0aGlzIGlzIHRoZSBwdWJsaWMgQVBJLlxuZXhwb3J0IGRlZmF1bHQgc2luZ2xldG9uUm91dGVyIGFzIFNpbmdsZXRvblJvdXRlclxuXG4vLyBSZWV4cG9ydCB0aGUgd2l0aFJvdXRlIEhPQ1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB3aXRoUm91dGVyIH0gZnJvbSAnLi93aXRoLXJvdXRlcidcblxuZXhwb3J0IGZ1bmN0aW9uIHVzZVJvdXRlcigpOiBOZXh0Um91dGVyIHtcbiAgcmV0dXJuIFJlYWN0LnVzZUNvbnRleHQoUm91dGVyQ29udGV4dClcbn1cblxuLy8gSU5URVJOQUwgQVBJU1xuLy8gLS0tLS0tLS0tLS0tLVxuLy8gKGRvIG5vdCB1c2UgZm9sbG93aW5nIGV4cG9ydHMgaW5zaWRlIHRoZSBhcHApXG5cbi8vIENyZWF0ZSBhIHJvdXRlciBhbmQgYXNzaWduIGl0IGFzIHRoZSBzaW5nbGV0b24gaW5zdGFuY2UuXG4vLyBUaGlzIGlzIHVzZWQgaW4gY2xpZW50IHNpZGUgd2hlbiB3ZSBhcmUgaW5pdGlsaXppbmcgdGhlIGFwcC5cbi8vIFRoaXMgc2hvdWxkICoqbm90KiogdXNlIGluc2lkZSB0aGUgc2VydmVyLlxuZXhwb3J0IGNvbnN0IGNyZWF0ZVJvdXRlciA9ICguLi5hcmdzOiBSb3V0ZXJBcmdzKTogUm91dGVyID0+IHtcbiAgc2luZ2xldG9uUm91dGVyLnJvdXRlciA9IG5ldyBSb3V0ZXIoLi4uYXJncylcbiAgc2luZ2xldG9uUm91dGVyLnJlYWR5Q2FsbGJhY2tzLmZvckVhY2goKGNiKSA9PiBjYigpKVxuICBzaW5nbGV0b25Sb3V0ZXIucmVhZHlDYWxsYmFja3MgPSBbXVxuXG4gIHJldHVybiBzaW5nbGV0b25Sb3V0ZXIucm91dGVyXG59XG5cbi8vIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBjcmVhdGUgdGhlIGB3aXRoUm91dGVyYCByb3V0ZXIgaW5zdGFuY2VcbmV4cG9ydCBmdW5jdGlvbiBtYWtlUHVibGljUm91dGVySW5zdGFuY2Uocm91dGVyOiBSb3V0ZXIpOiBOZXh0Um91dGVyIHtcbiAgY29uc3QgX3JvdXRlciA9IHJvdXRlciBhcyBhbnlcbiAgY29uc3QgaW5zdGFuY2UgPSB7fSBhcyBhbnlcblxuICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHVybFByb3BlcnR5RmllbGRzKSB7XG4gICAgaWYgKHR5cGVvZiBfcm91dGVyW3Byb3BlcnR5XSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGluc3RhbmNlW3Byb3BlcnR5XSA9IE9iamVjdC5hc3NpZ24oXG4gICAgICAgIEFycmF5LmlzQXJyYXkoX3JvdXRlcltwcm9wZXJ0eV0pID8gW10gOiB7fSxcbiAgICAgICAgX3JvdXRlcltwcm9wZXJ0eV1cbiAgICAgICkgLy8gbWFrZXMgc3VyZSBxdWVyeSBpcyBub3Qgc3RhdGVmdWxcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuXG4gICAgaW5zdGFuY2VbcHJvcGVydHldID0gX3JvdXRlcltwcm9wZXJ0eV1cbiAgfVxuXG4gIC8vIEV2ZW50cyBpcyBhIHN0YXRpYyBwcm9wZXJ0eSBvbiB0aGUgcm91dGVyLCB0aGUgcm91dGVyIGRvZXNuJ3QgaGF2ZSB0byBiZSBpbml0aWFsaXplZCB0byB1c2UgaXRcbiAgaW5zdGFuY2UuZXZlbnRzID0gUm91dGVyLmV2ZW50c1xuXG4gIGNvcmVNZXRob2RGaWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICBpbnN0YW5jZVtmaWVsZF0gPSAoLi4uYXJnczogYW55W10pID0+IHtcbiAgICAgIHJldHVybiBfcm91dGVyW2ZpZWxkXSguLi5hcmdzKVxuICAgIH1cbiAgfSlcblxuICByZXR1cm4gaW5zdGFuY2Vcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/router.js\n"); /***/ }), @@ -2165,7 +1890,19 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nvar _construct = __webpa /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nexports.__esModule = true;\nexports[\"default\"] = withRouter;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _router = __webpack_require__(/*! ./router */ \"./node_modules/next/dist/client/router.js\");\n\nfunction withRouter(ComposedComponent) {\n function WithRouterWrapper(props) {\n return /*#__PURE__*/_react[\"default\"].createElement(ComposedComponent, Object.assign({\n router: (0, _router.useRouter)()\n }, props));\n }\n\n WithRouterWrapper.getInitialProps = ComposedComponent.getInitialProps // This is needed to allow checking for custom getInitialProps in _app\n ;\n WithRouterWrapper.origGetInitialProps = ComposedComponent.origGetInitialProps;\n\n if (true) {\n var name = ComposedComponent.displayName || ComposedComponent.name || 'Unknown';\n WithRouterWrapper.displayName = \"withRouter(\".concat(name, \")\");\n }\n\n return WithRouterWrapper;\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.i);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL2NsaWVudC93aXRoLXJvdXRlci50c3g/NGZjYiJdLCJuYW1lcyI6WyJDb21wb3NlZENvbXBvbmVudCIsImdldEluaXRpYWxQcm9wcyIsIldpdGhSb3V0ZXJXcmFwcGVyIiwibmFtZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUVBOztBQVdlLHVDQUsrQjtBQUM1QyxvQ0FBdUM7QUFDckMsd0JBQU87QUFBbUIsWUFBTSxFQUFFLFlBQTNCLFNBQTJCO0FBQTNCLE9BQVAsS0FBTyxFQUFQO0FBR0Y7O0FBQUEsbUJBQWlCLENBQWpCLGtCQUFvQ0EsaUJBQWlCLENBQUNDLGVBQXRELENBQ0E7QUFEQTtBQUVFQyxtQkFBRCxvQkFBQ0EsR0FBaURGLGlCQUFELENBQWpELG1CQUFDRTs7QUFDRixZQUEyQztBQUN6QyxRQUFNQyxJQUFJLEdBQ1JILGlCQUFpQixDQUFqQkEsZUFBaUNBLGlCQUFpQixDQUFsREEsUUFERjtBQUVBRSxxQkFBaUIsQ0FBakJBO0FBR0Y7O0FBQUE7QUFDRCIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3dpdGgtcm91dGVyLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgTmV4dENvbXBvbmVudFR5cGUsIE5leHRQYWdlQ29udGV4dCB9IGZyb20gJy4uL25leHQtc2VydmVyL2xpYi91dGlscydcbmltcG9ydCB7IE5leHRSb3V0ZXIsIHVzZVJvdXRlciB9IGZyb20gJy4vcm91dGVyJ1xuXG5leHBvcnQgdHlwZSBXaXRoUm91dGVyUHJvcHMgPSB7XG4gIHJvdXRlcjogTmV4dFJvdXRlclxufVxuXG5leHBvcnQgdHlwZSBFeGNsdWRlUm91dGVyUHJvcHM8UD4gPSBQaWNrPFxuICBQLFxuICBFeGNsdWRlPGtleW9mIFAsIGtleW9mIFdpdGhSb3V0ZXJQcm9wcz5cbj5cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gd2l0aFJvdXRlcjxcbiAgUCBleHRlbmRzIFdpdGhSb3V0ZXJQcm9wcyxcbiAgQyA9IE5leHRQYWdlQ29udGV4dFxuPihcbiAgQ29tcG9zZWRDb21wb25lbnQ6IE5leHRDb21wb25lbnRUeXBlPEMsIGFueSwgUD5cbik6IFJlYWN0LkNvbXBvbmVudFR5cGU8RXhjbHVkZVJvdXRlclByb3BzPFA+PiB7XG4gIGZ1bmN0aW9uIFdpdGhSb3V0ZXJXcmFwcGVyKHByb3BzOiBhbnkpIHtcbiAgICByZXR1cm4gPENvbXBvc2VkQ29tcG9uZW50IHJvdXRlcj17dXNlUm91dGVyKCl9IHsuLi5wcm9wc30gLz5cbiAgfVxuXG4gIFdpdGhSb3V0ZXJXcmFwcGVyLmdldEluaXRpYWxQcm9wcyA9IENvbXBvc2VkQ29tcG9uZW50LmdldEluaXRpYWxQcm9wc1xuICAvLyBUaGlzIGlzIG5lZWRlZCB0byBhbGxvdyBjaGVja2luZyBmb3IgY3VzdG9tIGdldEluaXRpYWxQcm9wcyBpbiBfYXBwXG4gIDsoV2l0aFJvdXRlcldyYXBwZXIgYXMgYW55KS5vcmlnR2V0SW5pdGlhbFByb3BzID0gKENvbXBvc2VkQ29tcG9uZW50IGFzIGFueSkub3JpZ0dldEluaXRpYWxQcm9wc1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGNvbnN0IG5hbWUgPVxuICAgICAgQ29tcG9zZWRDb21wb25lbnQuZGlzcGxheU5hbWUgfHwgQ29tcG9zZWRDb21wb25lbnQubmFtZSB8fCAnVW5rbm93bidcbiAgICBXaXRoUm91dGVyV3JhcHBlci5kaXNwbGF5TmFtZSA9IGB3aXRoUm91dGVyKCR7bmFtZX0pYFxuICB9XG5cbiAgcmV0dXJuIFdpdGhSb3V0ZXJXcmFwcGVyXG59XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/with-router.js\n"); +eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/next/node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nexports.__esModule = true;\nexports[\"default\"] = withRouter;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _router = __webpack_require__(/*! ./router */ \"./node_modules/next/dist/client/router.js\");\n\nfunction withRouter(ComposedComponent) {\n function WithRouterWrapper(props) {\n return /*#__PURE__*/_react[\"default\"].createElement(ComposedComponent, Object.assign({\n router: (0, _router.useRouter)()\n }, props));\n }\n\n WithRouterWrapper.getInitialProps = ComposedComponent.getInitialProps // This is needed to allow checking for custom getInitialProps in _app\n ;\n WithRouterWrapper.origGetInitialProps = ComposedComponent.origGetInitialProps;\n\n if (true) {\n var name = ComposedComponent.displayName || ComposedComponent.name || 'Unknown';\n WithRouterWrapper.displayName = \"withRouter(\".concat(name, \")\");\n }\n\n return WithRouterWrapper;\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.i);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL2NsaWVudC93aXRoLXJvdXRlci50c3g/NGZjYiJdLCJuYW1lcyI6WyJDb21wb3NlZENvbXBvbmVudCIsImdldEluaXRpYWxQcm9wcyIsIldpdGhSb3V0ZXJXcmFwcGVyIiwibmFtZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUVBOztBQVdlLHVDQUsrQjtBQUM1QyxvQ0FBdUM7QUFDckMsd0JBQU87QUFBbUIsWUFBTSxFQUFFLFlBQTNCLFNBQTJCO0FBQTNCLE9BQVAsS0FBTyxFQUFQO0FBR0Y7O0FBQUEsbUJBQWlCLENBQWpCLGtCQUFvQ0EsaUJBQWlCLENBQUNDLGVBQXRELENBQ0E7QUFEQTtBQUVFQyxtQkFBRCxvQkFBQ0EsR0FBaURGLGlCQUFELENBQWpELG1CQUFDRTs7QUFDRixZQUEyQztBQUN6QyxRQUFNQyxJQUFJLEdBQ1JILGlCQUFpQixDQUFqQkEsZUFBaUNBLGlCQUFpQixDQUFsREEsUUFERjtBQUVBRSxxQkFBaUIsQ0FBakJBO0FBR0Y7O0FBQUE7QUFDRCIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3dpdGgtcm91dGVyLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgTmV4dENvbXBvbmVudFR5cGUsIE5leHRQYWdlQ29udGV4dCB9IGZyb20gJy4uL25leHQtc2VydmVyL2xpYi91dGlscydcbmltcG9ydCB7IE5leHRSb3V0ZXIsIHVzZVJvdXRlciB9IGZyb20gJy4vcm91dGVyJ1xuXG5leHBvcnQgdHlwZSBXaXRoUm91dGVyUHJvcHMgPSB7XG4gIHJvdXRlcjogTmV4dFJvdXRlclxufVxuXG5leHBvcnQgdHlwZSBFeGNsdWRlUm91dGVyUHJvcHM8UD4gPSBQaWNrPFxuICBQLFxuICBFeGNsdWRlPGtleW9mIFAsIGtleW9mIFdpdGhSb3V0ZXJQcm9wcz5cbj5cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gd2l0aFJvdXRlcjxcbiAgUCBleHRlbmRzIFdpdGhSb3V0ZXJQcm9wcyxcbiAgQyA9IE5leHRQYWdlQ29udGV4dFxuPihcbiAgQ29tcG9zZWRDb21wb25lbnQ6IE5leHRDb21wb25lbnRUeXBlPEMsIGFueSwgUD5cbik6IFJlYWN0LkNvbXBvbmVudFR5cGU8RXhjbHVkZVJvdXRlclByb3BzPFA+PiB7XG4gIGZ1bmN0aW9uIFdpdGhSb3V0ZXJXcmFwcGVyKHByb3BzOiBhbnkpIHtcbiAgICByZXR1cm4gPENvbXBvc2VkQ29tcG9uZW50IHJvdXRlcj17dXNlUm91dGVyKCl9IHsuLi5wcm9wc30gLz5cbiAgfVxuXG4gIFdpdGhSb3V0ZXJXcmFwcGVyLmdldEluaXRpYWxQcm9wcyA9IENvbXBvc2VkQ29tcG9uZW50LmdldEluaXRpYWxQcm9wc1xuICAvLyBUaGlzIGlzIG5lZWRlZCB0byBhbGxvdyBjaGVja2luZyBmb3IgY3VzdG9tIGdldEluaXRpYWxQcm9wcyBpbiBfYXBwXG4gIDsoV2l0aFJvdXRlcldyYXBwZXIgYXMgYW55KS5vcmlnR2V0SW5pdGlhbFByb3BzID0gKENvbXBvc2VkQ29tcG9uZW50IGFzIGFueSkub3JpZ0dldEluaXRpYWxQcm9wc1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGNvbnN0IG5hbWUgPVxuICAgICAgQ29tcG9zZWRDb21wb25lbnQuZGlzcGxheU5hbWUgfHwgQ29tcG9zZWRDb21wb25lbnQubmFtZSB8fCAnVW5rbm93bidcbiAgICBXaXRoUm91dGVyV3JhcHBlci5kaXNwbGF5TmFtZSA9IGB3aXRoUm91dGVyKCR7bmFtZX0pYFxuICB9XG5cbiAgcmV0dXJuIFdpdGhSb3V0ZXJXcmFwcGVyXG59XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/with-router.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/compiled/path-to-regexp/index.js": +/*!*****************************************************************!*\ + !*** ./node_modules/next/dist/compiled/path-to-regexp/index.js ***! + \*****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Tokenize input string.\n */\nfunction lexer(str) {\n var tokens = [];\n var i = 0;\n while (i < str.length) {\n var char = str[i];\n if (char === \"*\" || char === \"+\" || char === \"?\") {\n tokens.push({ type: \"MODIFIER\", index: i, value: str[i++] });\n continue;\n }\n if (char === \"\\\\\") {\n tokens.push({ type: \"ESCAPED_CHAR\", index: i++, value: str[i++] });\n continue;\n }\n if (char === \"{\") {\n tokens.push({ type: \"OPEN\", index: i, value: str[i++] });\n continue;\n }\n if (char === \"}\") {\n tokens.push({ type: \"CLOSE\", index: i, value: str[i++] });\n continue;\n }\n if (char === \":\") {\n var name = \"\";\n var j = i + 1;\n while (j < str.length) {\n var code = str.charCodeAt(j);\n if (\n // `0-9`\n (code >= 48 && code <= 57) ||\n // `A-Z`\n (code >= 65 && code <= 90) ||\n // `a-z`\n (code >= 97 && code <= 122) ||\n // `_`\n code === 95) {\n name += str[j++];\n continue;\n }\n break;\n }\n if (!name)\n throw new TypeError(\"Missing parameter name at \" + i);\n tokens.push({ type: \"NAME\", index: i, value: name });\n i = j;\n continue;\n }\n if (char === \"(\") {\n var count = 1;\n var pattern = \"\";\n var j = i + 1;\n if (str[j] === \"?\") {\n throw new TypeError(\"Pattern cannot start with \\\"?\\\" at \" + j);\n }\n while (j < str.length) {\n if (str[j] === \"\\\\\") {\n pattern += str[j++] + str[j++];\n continue;\n }\n if (str[j] === \")\") {\n count--;\n if (count === 0) {\n j++;\n break;\n }\n }\n else if (str[j] === \"(\") {\n count++;\n if (str[j + 1] !== \"?\") {\n throw new TypeError(\"Capturing groups are not allowed at \" + j);\n }\n }\n pattern += str[j++];\n }\n if (count)\n throw new TypeError(\"Unbalanced pattern at \" + i);\n if (!pattern)\n throw new TypeError(\"Missing pattern at \" + i);\n tokens.push({ type: \"PATTERN\", index: i, value: pattern });\n i = j;\n continue;\n }\n tokens.push({ type: \"CHAR\", index: i, value: str[i++] });\n }\n tokens.push({ type: \"END\", index: i, value: \"\" });\n return tokens;\n}\n/**\n * Parse a string for the raw tokens.\n */\nfunction parse(str, options) {\n if (options === void 0) { options = {}; }\n var tokens = lexer(str);\n var _a = options.prefixes, prefixes = _a === void 0 ? \"./\" : _a;\n var defaultPattern = \"[^\" + escapeString(options.delimiter || \"/#?\") + \"]+?\";\n var result = [];\n var key = 0;\n var i = 0;\n var path = \"\";\n var tryConsume = function (type) {\n if (i < tokens.length && tokens[i].type === type)\n return tokens[i++].value;\n };\n var mustConsume = function (type) {\n var value = tryConsume(type);\n if (value !== undefined)\n return value;\n var _a = tokens[i], nextType = _a.type, index = _a.index;\n throw new TypeError(\"Unexpected \" + nextType + \" at \" + index + \", expected \" + type);\n };\n var consumeText = function () {\n var result = \"\";\n var value;\n // tslint:disable-next-line\n while ((value = tryConsume(\"CHAR\") || tryConsume(\"ESCAPED_CHAR\"))) {\n result += value;\n }\n return result;\n };\n while (i < tokens.length) {\n var char = tryConsume(\"CHAR\");\n var name = tryConsume(\"NAME\");\n var pattern = tryConsume(\"PATTERN\");\n if (name || pattern) {\n var prefix = char || \"\";\n if (prefixes.indexOf(prefix) === -1) {\n path += prefix;\n prefix = \"\";\n }\n if (path) {\n result.push(path);\n path = \"\";\n }\n result.push({\n name: name || key++,\n prefix: prefix,\n suffix: \"\",\n pattern: pattern || defaultPattern,\n modifier: tryConsume(\"MODIFIER\") || \"\"\n });\n continue;\n }\n var value = char || tryConsume(\"ESCAPED_CHAR\");\n if (value) {\n path += value;\n continue;\n }\n if (path) {\n result.push(path);\n path = \"\";\n }\n var open = tryConsume(\"OPEN\");\n if (open) {\n var prefix = consumeText();\n var name_1 = tryConsume(\"NAME\") || \"\";\n var pattern_1 = tryConsume(\"PATTERN\") || \"\";\n var suffix = consumeText();\n mustConsume(\"CLOSE\");\n result.push({\n name: name_1 || (pattern_1 ? key++ : \"\"),\n pattern: name_1 && !pattern_1 ? defaultPattern : pattern_1,\n prefix: prefix,\n suffix: suffix,\n modifier: tryConsume(\"MODIFIER\") || \"\"\n });\n continue;\n }\n mustConsume(\"END\");\n }\n return result;\n}\nexports.parse = parse;\n/**\n * Compile a string to a template function for the path.\n */\nfunction compile(str, options) {\n return tokensToFunction(parse(str, options), options);\n}\nexports.compile = compile;\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction(tokens, options) {\n if (options === void 0) { options = {}; }\n var reFlags = flags(options);\n var _a = options.encode, encode = _a === void 0 ? function (x) { return x; } : _a, _b = options.validate, validate = _b === void 0 ? true : _b;\n // Compile all the tokens into regexps.\n var matches = tokens.map(function (token) {\n if (typeof token === \"object\") {\n return new RegExp(\"^(?:\" + token.pattern + \")$\", reFlags);\n }\n });\n return function (data) {\n var path = \"\";\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (typeof token === \"string\") {\n path += token;\n continue;\n }\n var value = data ? data[token.name] : undefined;\n var optional = token.modifier === \"?\" || token.modifier === \"*\";\n var repeat = token.modifier === \"*\" || token.modifier === \"+\";\n if (Array.isArray(value)) {\n if (!repeat) {\n throw new TypeError(\"Expected \\\"\" + token.name + \"\\\" to not repeat, but got an array\");\n }\n if (value.length === 0) {\n if (optional)\n continue;\n throw new TypeError(\"Expected \\\"\" + token.name + \"\\\" to not be empty\");\n }\n for (var j = 0; j < value.length; j++) {\n var segment = encode(value[j], token);\n if (validate && !matches[i].test(segment)) {\n throw new TypeError(\"Expected all \\\"\" + token.name + \"\\\" to match \\\"\" + token.pattern + \"\\\", but got \\\"\" + segment + \"\\\"\");\n }\n path += token.prefix + segment + token.suffix;\n }\n continue;\n }\n if (typeof value === \"string\" || typeof value === \"number\") {\n var segment = encode(String(value), token);\n if (validate && !matches[i].test(segment)) {\n throw new TypeError(\"Expected \\\"\" + token.name + \"\\\" to match \\\"\" + token.pattern + \"\\\", but got \\\"\" + segment + \"\\\"\");\n }\n path += token.prefix + segment + token.suffix;\n continue;\n }\n if (optional)\n continue;\n var typeOfMessage = repeat ? \"an array\" : \"a string\";\n throw new TypeError(\"Expected \\\"\" + token.name + \"\\\" to be \" + typeOfMessage);\n }\n return path;\n };\n}\nexports.tokensToFunction = tokensToFunction;\n/**\n * Create path match function from `path-to-regexp` spec.\n */\nfunction match(str, options) {\n var keys = [];\n var re = pathToRegexp(str, keys, options);\n return regexpToFunction(re, keys, options);\n}\nexports.match = match;\n/**\n * Create a path match function from `path-to-regexp` output.\n */\nfunction regexpToFunction(re, keys, options) {\n if (options === void 0) { options = {}; }\n var _a = options.decode, decode = _a === void 0 ? function (x) { return x; } : _a;\n return function (pathname) {\n var m = re.exec(pathname);\n if (!m)\n return false;\n var path = m[0], index = m.index;\n var params = Object.create(null);\n var _loop_1 = function (i) {\n // tslint:disable-next-line\n if (m[i] === undefined)\n return \"continue\";\n var key = keys[i - 1];\n if (key.modifier === \"*\" || key.modifier === \"+\") {\n params[key.name] = m[i].split(key.prefix + key.suffix).map(function (value) {\n return decode(value, key);\n });\n }\n else {\n params[key.name] = decode(m[i], key);\n }\n };\n for (var i = 1; i < m.length; i++) {\n _loop_1(i);\n }\n return { path: path, index: index, params: params };\n };\n}\nexports.regexpToFunction = regexpToFunction;\n/**\n * Escape a regular expression string.\n */\nfunction escapeString(str) {\n return str.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n}\n/**\n * Get the flags for a regexp from the options.\n */\nfunction flags(options) {\n return options && options.sensitive ? \"\" : \"i\";\n}\n/**\n * Pull out keys from a regexp.\n */\nfunction regexpToRegexp(path, keys) {\n if (!keys)\n return path;\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: \"\",\n suffix: \"\",\n modifier: \"\",\n pattern: \"\"\n });\n }\n }\n return path;\n}\n/**\n * Transform an array into a regexp.\n */\nfunction arrayToRegexp(paths, keys, options) {\n var parts = paths.map(function (path) { return pathToRegexp(path, keys, options).source; });\n return new RegExp(\"(?:\" + parts.join(\"|\") + \")\", flags(options));\n}\n/**\n * Create a path regexp from string input.\n */\nfunction stringToRegexp(path, keys, options) {\n return tokensToRegexp(parse(path, options), keys, options);\n}\n/**\n * Expose a function for taking tokens and returning a RegExp.\n */\nfunction tokensToRegexp(tokens, keys, options) {\n if (options === void 0) { options = {}; }\n var _a = options.strict, strict = _a === void 0 ? false : _a, _b = options.start, start = _b === void 0 ? true : _b, _c = options.end, end = _c === void 0 ? true : _c, _d = options.encode, encode = _d === void 0 ? function (x) { return x; } : _d;\n var endsWith = \"[\" + escapeString(options.endsWith || \"\") + \"]|$\";\n var delimiter = \"[\" + escapeString(options.delimiter || \"/#?\") + \"]\";\n var route = start ? \"^\" : \"\";\n // Iterate over the tokens and create our regexp string.\n for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {\n var token = tokens_1[_i];\n if (typeof token === \"string\") {\n route += escapeString(encode(token));\n }\n else {\n var prefix = escapeString(encode(token.prefix));\n var suffix = escapeString(encode(token.suffix));\n if (token.pattern) {\n if (keys)\n keys.push(token);\n if (prefix || suffix) {\n if (token.modifier === \"+\" || token.modifier === \"*\") {\n var mod = token.modifier === \"*\" ? \"?\" : \"\";\n route += \"(?:\" + prefix + \"((?:\" + token.pattern + \")(?:\" + suffix + prefix + \"(?:\" + token.pattern + \"))*)\" + suffix + \")\" + mod;\n }\n else {\n route += \"(?:\" + prefix + \"(\" + token.pattern + \")\" + suffix + \")\" + token.modifier;\n }\n }\n else {\n route += \"(\" + token.pattern + \")\" + token.modifier;\n }\n }\n else {\n route += \"(?:\" + prefix + suffix + \")\" + token.modifier;\n }\n }\n }\n if (end) {\n if (!strict)\n route += delimiter + \"?\";\n route += !options.endsWith ? \"$\" : \"(?=\" + endsWith + \")\";\n }\n else {\n var endToken = tokens[tokens.length - 1];\n var isEndDelimited = typeof endToken === \"string\"\n ? delimiter.indexOf(endToken[endToken.length - 1]) > -1\n : // tslint:disable-next-line\n endToken === undefined;\n if (!strict) {\n route += \"(?:\" + delimiter + \"(?=\" + endsWith + \"))?\";\n }\n if (!isEndDelimited) {\n route += \"(?=\" + delimiter + \"|\" + endsWith + \")\";\n }\n }\n return new RegExp(route, flags(options));\n}\nexports.tokensToRegexp = tokensToRegexp;\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n */\nfunction pathToRegexp(path, keys, options) {\n if (path instanceof RegExp)\n return regexpToRegexp(path, keys);\n if (Array.isArray(path))\n return arrayToRegexp(path, keys, options);\n return stringToRegexp(path, keys, options);\n}\nexports.pathToRegexp = pathToRegexp;\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9wYXRoLXRvLXJlZ2V4cC9pbmRleC5qcz9jY2VjIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQThDLGNBQWM7QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCLDhDQUE4QztBQUN2RTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsb0RBQW9EO0FBQzdFO0FBQ0E7QUFDQSx1QkFBdUI7QUFDdkIseUJBQXlCLDBDQUEwQztBQUNuRTtBQUNBO0FBQ0EsdUJBQXVCO0FBQ3ZCLHlCQUF5QiwyQ0FBMkM7QUFDcEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QixzQ0FBc0M7QUFDL0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsNENBQTRDO0FBQ3JFO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQiwwQ0FBMEM7QUFDL0Q7QUFDQSxpQkFBaUIsbUNBQW1DO0FBQ3BEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2QixjQUFjO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2QixjQUFjO0FBQzNDO0FBQ0Esb0VBQW9FLFVBQVUsRUFBRTtBQUNoRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSx1QkFBdUIsbUJBQW1CO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQkFBK0Isa0JBQWtCO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkIsY0FBYztBQUMzQyxvRUFBb0UsVUFBVSxFQUFFO0FBQ2hGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QixjQUFjO0FBQ3JDO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQ0FBcUM7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIsbUJBQW1CO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDLGlEQUFpRCxFQUFFO0FBQzlGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2QixjQUFjO0FBQzNDLHdPQUF3TyxVQUFVLEVBQUU7QUFDcFA7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1Q0FBdUMsc0JBQXNCO0FBQzdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMsNkRBQTZEO0FBQzNFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9wYXRoLXRvLXJlZ2V4cC9pbmRleC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuLyoqXG4gKiBUb2tlbml6ZSBpbnB1dCBzdHJpbmcuXG4gKi9cbmZ1bmN0aW9uIGxleGVyKHN0cikge1xuICAgIHZhciB0b2tlbnMgPSBbXTtcbiAgICB2YXIgaSA9IDA7XG4gICAgd2hpbGUgKGkgPCBzdHIubGVuZ3RoKSB7XG4gICAgICAgIHZhciBjaGFyID0gc3RyW2ldO1xuICAgICAgICBpZiAoY2hhciA9PT0gXCIqXCIgfHwgY2hhciA9PT0gXCIrXCIgfHwgY2hhciA9PT0gXCI/XCIpIHtcbiAgICAgICAgICAgIHRva2Vucy5wdXNoKHsgdHlwZTogXCJNT0RJRklFUlwiLCBpbmRleDogaSwgdmFsdWU6IHN0cltpKytdIH0pO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNoYXIgPT09IFwiXFxcXFwiKSB7XG4gICAgICAgICAgICB0b2tlbnMucHVzaCh7IHR5cGU6IFwiRVNDQVBFRF9DSEFSXCIsIGluZGV4OiBpKyssIHZhbHVlOiBzdHJbaSsrXSB9KTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjaGFyID09PSBcIntcIikge1xuICAgICAgICAgICAgdG9rZW5zLnB1c2goeyB0eXBlOiBcIk9QRU5cIiwgaW5kZXg6IGksIHZhbHVlOiBzdHJbaSsrXSB9KTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjaGFyID09PSBcIn1cIikge1xuICAgICAgICAgICAgdG9rZW5zLnB1c2goeyB0eXBlOiBcIkNMT1NFXCIsIGluZGV4OiBpLCB2YWx1ZTogc3RyW2krK10gfSk7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hhciA9PT0gXCI6XCIpIHtcbiAgICAgICAgICAgIHZhciBuYW1lID0gXCJcIjtcbiAgICAgICAgICAgIHZhciBqID0gaSArIDE7XG4gICAgICAgICAgICB3aGlsZSAoaiA8IHN0ci5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB2YXIgY29kZSA9IHN0ci5jaGFyQ29kZUF0KGopO1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAvLyBgMC05YFxuICAgICAgICAgICAgICAgIChjb2RlID49IDQ4ICYmIGNvZGUgPD0gNTcpIHx8XG4gICAgICAgICAgICAgICAgICAgIC8vIGBBLVpgXG4gICAgICAgICAgICAgICAgICAgIChjb2RlID49IDY1ICYmIGNvZGUgPD0gOTApIHx8XG4gICAgICAgICAgICAgICAgICAgIC8vIGBhLXpgXG4gICAgICAgICAgICAgICAgICAgIChjb2RlID49IDk3ICYmIGNvZGUgPD0gMTIyKSB8fFxuICAgICAgICAgICAgICAgICAgICAvLyBgX2BcbiAgICAgICAgICAgICAgICAgICAgY29kZSA9PT0gOTUpIHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZSArPSBzdHJbaisrXTtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFuYW1lKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJNaXNzaW5nIHBhcmFtZXRlciBuYW1lIGF0IFwiICsgaSk7XG4gICAgICAgICAgICB0b2tlbnMucHVzaCh7IHR5cGU6IFwiTkFNRVwiLCBpbmRleDogaSwgdmFsdWU6IG5hbWUgfSk7XG4gICAgICAgICAgICBpID0gajtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjaGFyID09PSBcIihcIikge1xuICAgICAgICAgICAgdmFyIGNvdW50ID0gMTtcbiAgICAgICAgICAgIHZhciBwYXR0ZXJuID0gXCJcIjtcbiAgICAgICAgICAgIHZhciBqID0gaSArIDE7XG4gICAgICAgICAgICBpZiAoc3RyW2pdID09PSBcIj9cIikge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJQYXR0ZXJuIGNhbm5vdCBzdGFydCB3aXRoIFxcXCI/XFxcIiBhdCBcIiArIGopO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgd2hpbGUgKGogPCBzdHIubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgaWYgKHN0cltqXSA9PT0gXCJcXFxcXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcGF0dGVybiArPSBzdHJbaisrXSArIHN0cltqKytdO1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHN0cltqXSA9PT0gXCIpXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgY291bnQtLTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvdW50ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBqKys7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChzdHJbal0gPT09IFwiKFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvdW50Kys7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdHJbaiArIDFdICE9PSBcIj9cIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhcHR1cmluZyBncm91cHMgYXJlIG5vdCBhbGxvd2VkIGF0IFwiICsgaik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcGF0dGVybiArPSBzdHJbaisrXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjb3VudClcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiVW5iYWxhbmNlZCBwYXR0ZXJuIGF0IFwiICsgaSk7XG4gICAgICAgICAgICBpZiAoIXBhdHRlcm4pXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIk1pc3NpbmcgcGF0dGVybiBhdCBcIiArIGkpO1xuICAgICAgICAgICAgdG9rZW5zLnB1c2goeyB0eXBlOiBcIlBBVFRFUk5cIiwgaW5kZXg6IGksIHZhbHVlOiBwYXR0ZXJuIH0pO1xuICAgICAgICAgICAgaSA9IGo7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICB0b2tlbnMucHVzaCh7IHR5cGU6IFwiQ0hBUlwiLCBpbmRleDogaSwgdmFsdWU6IHN0cltpKytdIH0pO1xuICAgIH1cbiAgICB0b2tlbnMucHVzaCh7IHR5cGU6IFwiRU5EXCIsIGluZGV4OiBpLCB2YWx1ZTogXCJcIiB9KTtcbiAgICByZXR1cm4gdG9rZW5zO1xufVxuLyoqXG4gKiBQYXJzZSBhIHN0cmluZyBmb3IgdGhlIHJhdyB0b2tlbnMuXG4gKi9cbmZ1bmN0aW9uIHBhcnNlKHN0ciwgb3B0aW9ucykge1xuICAgIGlmIChvcHRpb25zID09PSB2b2lkIDApIHsgb3B0aW9ucyA9IHt9OyB9XG4gICAgdmFyIHRva2VucyA9IGxleGVyKHN0cik7XG4gICAgdmFyIF9hID0gb3B0aW9ucy5wcmVmaXhlcywgcHJlZml4ZXMgPSBfYSA9PT0gdm9pZCAwID8gXCIuL1wiIDogX2E7XG4gICAgdmFyIGRlZmF1bHRQYXR0ZXJuID0gXCJbXlwiICsgZXNjYXBlU3RyaW5nKG9wdGlvbnMuZGVsaW1pdGVyIHx8IFwiLyM/XCIpICsgXCJdKz9cIjtcbiAgICB2YXIgcmVzdWx0ID0gW107XG4gICAgdmFyIGtleSA9IDA7XG4gICAgdmFyIGkgPSAwO1xuICAgIHZhciBwYXRoID0gXCJcIjtcbiAgICB2YXIgdHJ5Q29uc3VtZSA9IGZ1bmN0aW9uICh0eXBlKSB7XG4gICAgICAgIGlmIChpIDwgdG9rZW5zLmxlbmd0aCAmJiB0b2tlbnNbaV0udHlwZSA9PT0gdHlwZSlcbiAgICAgICAgICAgIHJldHVybiB0b2tlbnNbaSsrXS52YWx1ZTtcbiAgICB9O1xuICAgIHZhciBtdXN0Q29uc3VtZSA9IGZ1bmN0aW9uICh0eXBlKSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IHRyeUNvbnN1bWUodHlwZSk7XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB2YXIgX2EgPSB0b2tlbnNbaV0sIG5leHRUeXBlID0gX2EudHlwZSwgaW5kZXggPSBfYS5pbmRleDtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlVuZXhwZWN0ZWQgXCIgKyBuZXh0VHlwZSArIFwiIGF0IFwiICsgaW5kZXggKyBcIiwgZXhwZWN0ZWQgXCIgKyB0eXBlKTtcbiAgICB9O1xuICAgIHZhciBjb25zdW1lVGV4dCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IFwiXCI7XG4gICAgICAgIHZhciB2YWx1ZTtcbiAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lXG4gICAgICAgIHdoaWxlICgodmFsdWUgPSB0cnlDb25zdW1lKFwiQ0hBUlwiKSB8fCB0cnlDb25zdW1lKFwiRVNDQVBFRF9DSEFSXCIpKSkge1xuICAgICAgICAgICAgcmVzdWx0ICs9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfTtcbiAgICB3aGlsZSAoaSA8IHRva2Vucy5sZW5ndGgpIHtcbiAgICAgICAgdmFyIGNoYXIgPSB0cnlDb25zdW1lKFwiQ0hBUlwiKTtcbiAgICAgICAgdmFyIG5hbWUgPSB0cnlDb25zdW1lKFwiTkFNRVwiKTtcbiAgICAgICAgdmFyIHBhdHRlcm4gPSB0cnlDb25zdW1lKFwiUEFUVEVSTlwiKTtcbiAgICAgICAgaWYgKG5hbWUgfHwgcGF0dGVybikge1xuICAgICAgICAgICAgdmFyIHByZWZpeCA9IGNoYXIgfHwgXCJcIjtcbiAgICAgICAgICAgIGlmIChwcmVmaXhlcy5pbmRleE9mKHByZWZpeCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgcGF0aCArPSBwcmVmaXg7XG4gICAgICAgICAgICAgICAgcHJlZml4ID0gXCJcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwYXRoKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0LnB1c2gocGF0aCk7XG4gICAgICAgICAgICAgICAgcGF0aCA9IFwiXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXN1bHQucHVzaCh7XG4gICAgICAgICAgICAgICAgbmFtZTogbmFtZSB8fCBrZXkrKyxcbiAgICAgICAgICAgICAgICBwcmVmaXg6IHByZWZpeCxcbiAgICAgICAgICAgICAgICBzdWZmaXg6IFwiXCIsXG4gICAgICAgICAgICAgICAgcGF0dGVybjogcGF0dGVybiB8fCBkZWZhdWx0UGF0dGVybixcbiAgICAgICAgICAgICAgICBtb2RpZmllcjogdHJ5Q29uc3VtZShcIk1PRElGSUVSXCIpIHx8IFwiXCJcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHZhbHVlID0gY2hhciB8fCB0cnlDb25zdW1lKFwiRVNDQVBFRF9DSEFSXCIpO1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHBhdGggKz0gdmFsdWU7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGF0aCkge1xuICAgICAgICAgICAgcmVzdWx0LnB1c2gocGF0aCk7XG4gICAgICAgICAgICBwYXRoID0gXCJcIjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgb3BlbiA9IHRyeUNvbnN1bWUoXCJPUEVOXCIpO1xuICAgICAgICBpZiAob3Blbikge1xuICAgICAgICAgICAgdmFyIHByZWZpeCA9IGNvbnN1bWVUZXh0KCk7XG4gICAgICAgICAgICB2YXIgbmFtZV8xID0gdHJ5Q29uc3VtZShcIk5BTUVcIikgfHwgXCJcIjtcbiAgICAgICAgICAgIHZhciBwYXR0ZXJuXzEgPSB0cnlDb25zdW1lKFwiUEFUVEVSTlwiKSB8fCBcIlwiO1xuICAgICAgICAgICAgdmFyIHN1ZmZpeCA9IGNvbnN1bWVUZXh0KCk7XG4gICAgICAgICAgICBtdXN0Q29uc3VtZShcIkNMT1NFXCIpO1xuICAgICAgICAgICAgcmVzdWx0LnB1c2goe1xuICAgICAgICAgICAgICAgIG5hbWU6IG5hbWVfMSB8fCAocGF0dGVybl8xID8ga2V5KysgOiBcIlwiKSxcbiAgICAgICAgICAgICAgICBwYXR0ZXJuOiBuYW1lXzEgJiYgIXBhdHRlcm5fMSA/IGRlZmF1bHRQYXR0ZXJuIDogcGF0dGVybl8xLFxuICAgICAgICAgICAgICAgIHByZWZpeDogcHJlZml4LFxuICAgICAgICAgICAgICAgIHN1ZmZpeDogc3VmZml4LFxuICAgICAgICAgICAgICAgIG1vZGlmaWVyOiB0cnlDb25zdW1lKFwiTU9ESUZJRVJcIikgfHwgXCJcIlxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBtdXN0Q29uc3VtZShcIkVORFwiKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbmV4cG9ydHMucGFyc2UgPSBwYXJzZTtcbi8qKlxuICogQ29tcGlsZSBhIHN0cmluZyB0byBhIHRlbXBsYXRlIGZ1bmN0aW9uIGZvciB0aGUgcGF0aC5cbiAqL1xuZnVuY3Rpb24gY29tcGlsZShzdHIsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gdG9rZW5zVG9GdW5jdGlvbihwYXJzZShzdHIsIG9wdGlvbnMpLCBvcHRpb25zKTtcbn1cbmV4cG9ydHMuY29tcGlsZSA9IGNvbXBpbGU7XG4vKipcbiAqIEV4cG9zZSBhIG1ldGhvZCBmb3IgdHJhbnNmb3JtaW5nIHRva2VucyBpbnRvIHRoZSBwYXRoIGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiB0b2tlbnNUb0Z1bmN0aW9uKHRva2Vucywgb3B0aW9ucykge1xuICAgIGlmIChvcHRpb25zID09PSB2b2lkIDApIHsgb3B0aW9ucyA9IHt9OyB9XG4gICAgdmFyIHJlRmxhZ3MgPSBmbGFncyhvcHRpb25zKTtcbiAgICB2YXIgX2EgPSBvcHRpb25zLmVuY29kZSwgZW5jb2RlID0gX2EgPT09IHZvaWQgMCA/IGZ1bmN0aW9uICh4KSB7IHJldHVybiB4OyB9IDogX2EsIF9iID0gb3B0aW9ucy52YWxpZGF0ZSwgdmFsaWRhdGUgPSBfYiA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9iO1xuICAgIC8vIENvbXBpbGUgYWxsIHRoZSB0b2tlbnMgaW50byByZWdleHBzLlxuICAgIHZhciBtYXRjaGVzID0gdG9rZW5zLm1hcChmdW5jdGlvbiAodG9rZW4pIHtcbiAgICAgICAgaWYgKHR5cGVvZiB0b2tlbiA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBSZWdFeHAoXCJeKD86XCIgKyB0b2tlbi5wYXR0ZXJuICsgXCIpJFwiLCByZUZsYWdzKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBmdW5jdGlvbiAoZGF0YSkge1xuICAgICAgICB2YXIgcGF0aCA9IFwiXCI7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdG9rZW5zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB2YXIgdG9rZW4gPSB0b2tlbnNbaV07XG4gICAgICAgICAgICBpZiAodHlwZW9mIHRva2VuID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgcGF0aCArPSB0b2tlbjtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciB2YWx1ZSA9IGRhdGEgPyBkYXRhW3Rva2VuLm5hbWVdIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgdmFyIG9wdGlvbmFsID0gdG9rZW4ubW9kaWZpZXIgPT09IFwiP1wiIHx8IHRva2VuLm1vZGlmaWVyID09PSBcIipcIjtcbiAgICAgICAgICAgIHZhciByZXBlYXQgPSB0b2tlbi5tb2RpZmllciA9PT0gXCIqXCIgfHwgdG9rZW4ubW9kaWZpZXIgPT09IFwiK1wiO1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFyZXBlYXQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkV4cGVjdGVkIFxcXCJcIiArIHRva2VuLm5hbWUgKyBcIlxcXCIgdG8gbm90IHJlcGVhdCwgYnV0IGdvdCBhbiBhcnJheVwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAob3B0aW9uYWwpXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkV4cGVjdGVkIFxcXCJcIiArIHRva2VuLm5hbWUgKyBcIlxcXCIgdG8gbm90IGJlIGVtcHR5XCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHZhbHVlLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzZWdtZW50ID0gZW5jb2RlKHZhbHVlW2pdLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWxpZGF0ZSAmJiAhbWF0Y2hlc1tpXS50ZXN0KHNlZ21lbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiRXhwZWN0ZWQgYWxsIFxcXCJcIiArIHRva2VuLm5hbWUgKyBcIlxcXCIgdG8gbWF0Y2ggXFxcIlwiICsgdG9rZW4ucGF0dGVybiArIFwiXFxcIiwgYnV0IGdvdCBcXFwiXCIgKyBzZWdtZW50ICsgXCJcXFwiXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBhdGggKz0gdG9rZW4ucHJlZml4ICsgc2VnbWVudCArIHRva2VuLnN1ZmZpeDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiIHx8IHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgICAgIHZhciBzZWdtZW50ID0gZW5jb2RlKFN0cmluZyh2YWx1ZSksIHRva2VuKTtcbiAgICAgICAgICAgICAgICBpZiAodmFsaWRhdGUgJiYgIW1hdGNoZXNbaV0udGVzdChzZWdtZW50KSkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiRXhwZWN0ZWQgXFxcIlwiICsgdG9rZW4ubmFtZSArIFwiXFxcIiB0byBtYXRjaCBcXFwiXCIgKyB0b2tlbi5wYXR0ZXJuICsgXCJcXFwiLCBidXQgZ290IFxcXCJcIiArIHNlZ21lbnQgKyBcIlxcXCJcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHBhdGggKz0gdG9rZW4ucHJlZml4ICsgc2VnbWVudCArIHRva2VuLnN1ZmZpeDtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvcHRpb25hbClcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIHZhciB0eXBlT2ZNZXNzYWdlID0gcmVwZWF0ID8gXCJhbiBhcnJheVwiIDogXCJhIHN0cmluZ1wiO1xuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkV4cGVjdGVkIFxcXCJcIiArIHRva2VuLm5hbWUgKyBcIlxcXCIgdG8gYmUgXCIgKyB0eXBlT2ZNZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcGF0aDtcbiAgICB9O1xufVxuZXhwb3J0cy50b2tlbnNUb0Z1bmN0aW9uID0gdG9rZW5zVG9GdW5jdGlvbjtcbi8qKlxuICogQ3JlYXRlIHBhdGggbWF0Y2ggZnVuY3Rpb24gZnJvbSBgcGF0aC10by1yZWdleHBgIHNwZWMuXG4gKi9cbmZ1bmN0aW9uIG1hdGNoKHN0ciwgb3B0aW9ucykge1xuICAgIHZhciBrZXlzID0gW107XG4gICAgdmFyIHJlID0gcGF0aFRvUmVnZXhwKHN0ciwga2V5cywgb3B0aW9ucyk7XG4gICAgcmV0dXJuIHJlZ2V4cFRvRnVuY3Rpb24ocmUsIGtleXMsIG9wdGlvbnMpO1xufVxuZXhwb3J0cy5tYXRjaCA9IG1hdGNoO1xuLyoqXG4gKiBDcmVhdGUgYSBwYXRoIG1hdGNoIGZ1bmN0aW9uIGZyb20gYHBhdGgtdG8tcmVnZXhwYCBvdXRwdXQuXG4gKi9cbmZ1bmN0aW9uIHJlZ2V4cFRvRnVuY3Rpb24ocmUsIGtleXMsIG9wdGlvbnMpIHtcbiAgICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7IG9wdGlvbnMgPSB7fTsgfVxuICAgIHZhciBfYSA9IG9wdGlvbnMuZGVjb2RlLCBkZWNvZGUgPSBfYSA9PT0gdm9pZCAwID8gZnVuY3Rpb24gKHgpIHsgcmV0dXJuIHg7IH0gOiBfYTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKHBhdGhuYW1lKSB7XG4gICAgICAgIHZhciBtID0gcmUuZXhlYyhwYXRobmFtZSk7XG4gICAgICAgIGlmICghbSlcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgdmFyIHBhdGggPSBtWzBdLCBpbmRleCA9IG0uaW5kZXg7XG4gICAgICAgIHZhciBwYXJhbXMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgICB2YXIgX2xvb3BfMSA9IGZ1bmN0aW9uIChpKSB7XG4gICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAgICAgICAgIGlmIChtW2ldID09PSB1bmRlZmluZWQpXG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiY29udGludWVcIjtcbiAgICAgICAgICAgIHZhciBrZXkgPSBrZXlzW2kgLSAxXTtcbiAgICAgICAgICAgIGlmIChrZXkubW9kaWZpZXIgPT09IFwiKlwiIHx8IGtleS5tb2RpZmllciA9PT0gXCIrXCIpIHtcbiAgICAgICAgICAgICAgICBwYXJhbXNba2V5Lm5hbWVdID0gbVtpXS5zcGxpdChrZXkucHJlZml4ICsga2V5LnN1ZmZpeCkubWFwKGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGVjb2RlKHZhbHVlLCBrZXkpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zW2tleS5uYW1lXSA9IGRlY29kZShtW2ldLCBrZXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8IG0ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIF9sb29wXzEoaSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgcGF0aDogcGF0aCwgaW5kZXg6IGluZGV4LCBwYXJhbXM6IHBhcmFtcyB9O1xuICAgIH07XG59XG5leHBvcnRzLnJlZ2V4cFRvRnVuY3Rpb24gPSByZWdleHBUb0Z1bmN0aW9uO1xuLyoqXG4gKiBFc2NhcGUgYSByZWd1bGFyIGV4cHJlc3Npb24gc3RyaW5nLlxuICovXG5mdW5jdGlvbiBlc2NhcGVTdHJpbmcoc3RyKSB7XG4gICAgcmV0dXJuIHN0ci5yZXBsYWNlKC8oWy4rKj89XiE6JHt9KClbXFxdfC9cXFxcXSkvZywgXCJcXFxcJDFcIik7XG59XG4vKipcbiAqIEdldCB0aGUgZmxhZ3MgZm9yIGEgcmVnZXhwIGZyb20gdGhlIG9wdGlvbnMuXG4gKi9cbmZ1bmN0aW9uIGZsYWdzKG9wdGlvbnMpIHtcbiAgICByZXR1cm4gb3B0aW9ucyAmJiBvcHRpb25zLnNlbnNpdGl2ZSA/IFwiXCIgOiBcImlcIjtcbn1cbi8qKlxuICogUHVsbCBvdXQga2V5cyBmcm9tIGEgcmVnZXhwLlxuICovXG5mdW5jdGlvbiByZWdleHBUb1JlZ2V4cChwYXRoLCBrZXlzKSB7XG4gICAgaWYgKCFrZXlzKVxuICAgICAgICByZXR1cm4gcGF0aDtcbiAgICAvLyBVc2UgYSBuZWdhdGl2ZSBsb29rYWhlYWQgdG8gbWF0Y2ggb25seSBjYXB0dXJpbmcgZ3JvdXBzLlxuICAgIHZhciBncm91cHMgPSBwYXRoLnNvdXJjZS5tYXRjaCgvXFwoKD8hXFw/KS9nKTtcbiAgICBpZiAoZ3JvdXBzKSB7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZ3JvdXBzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBrZXlzLnB1c2goe1xuICAgICAgICAgICAgICAgIG5hbWU6IGksXG4gICAgICAgICAgICAgICAgcHJlZml4OiBcIlwiLFxuICAgICAgICAgICAgICAgIHN1ZmZpeDogXCJcIixcbiAgICAgICAgICAgICAgICBtb2RpZmllcjogXCJcIixcbiAgICAgICAgICAgICAgICBwYXR0ZXJuOiBcIlwiXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcGF0aDtcbn1cbi8qKlxuICogVHJhbnNmb3JtIGFuIGFycmF5IGludG8gYSByZWdleHAuXG4gKi9cbmZ1bmN0aW9uIGFycmF5VG9SZWdleHAocGF0aHMsIGtleXMsIG9wdGlvbnMpIHtcbiAgICB2YXIgcGFydHMgPSBwYXRocy5tYXAoZnVuY3Rpb24gKHBhdGgpIHsgcmV0dXJuIHBhdGhUb1JlZ2V4cChwYXRoLCBrZXlzLCBvcHRpb25zKS5zb3VyY2U7IH0pO1xuICAgIHJldHVybiBuZXcgUmVnRXhwKFwiKD86XCIgKyBwYXJ0cy5qb2luKFwifFwiKSArIFwiKVwiLCBmbGFncyhvcHRpb25zKSk7XG59XG4vKipcbiAqIENyZWF0ZSBhIHBhdGggcmVnZXhwIGZyb20gc3RyaW5nIGlucHV0LlxuICovXG5mdW5jdGlvbiBzdHJpbmdUb1JlZ2V4cChwYXRoLCBrZXlzLCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIHRva2Vuc1RvUmVnZXhwKHBhcnNlKHBhdGgsIG9wdGlvbnMpLCBrZXlzLCBvcHRpb25zKTtcbn1cbi8qKlxuICogRXhwb3NlIGEgZnVuY3Rpb24gZm9yIHRha2luZyB0b2tlbnMgYW5kIHJldHVybmluZyBhIFJlZ0V4cC5cbiAqL1xuZnVuY3Rpb24gdG9rZW5zVG9SZWdleHAodG9rZW5zLCBrZXlzLCBvcHRpb25zKSB7XG4gICAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkgeyBvcHRpb25zID0ge307IH1cbiAgICB2YXIgX2EgPSBvcHRpb25zLnN0cmljdCwgc3RyaWN0ID0gX2EgPT09IHZvaWQgMCA/IGZhbHNlIDogX2EsIF9iID0gb3B0aW9ucy5zdGFydCwgc3RhcnQgPSBfYiA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9iLCBfYyA9IG9wdGlvbnMuZW5kLCBlbmQgPSBfYyA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9jLCBfZCA9IG9wdGlvbnMuZW5jb2RlLCBlbmNvZGUgPSBfZCA9PT0gdm9pZCAwID8gZnVuY3Rpb24gKHgpIHsgcmV0dXJuIHg7IH0gOiBfZDtcbiAgICB2YXIgZW5kc1dpdGggPSBcIltcIiArIGVzY2FwZVN0cmluZyhvcHRpb25zLmVuZHNXaXRoIHx8IFwiXCIpICsgXCJdfCRcIjtcbiAgICB2YXIgZGVsaW1pdGVyID0gXCJbXCIgKyBlc2NhcGVTdHJpbmcob3B0aW9ucy5kZWxpbWl0ZXIgfHwgXCIvIz9cIikgKyBcIl1cIjtcbiAgICB2YXIgcm91dGUgPSBzdGFydCA/IFwiXlwiIDogXCJcIjtcbiAgICAvLyBJdGVyYXRlIG92ZXIgdGhlIHRva2VucyBhbmQgY3JlYXRlIG91ciByZWdleHAgc3RyaW5nLlxuICAgIGZvciAodmFyIF9pID0gMCwgdG9rZW5zXzEgPSB0b2tlbnM7IF9pIDwgdG9rZW5zXzEubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgIHZhciB0b2tlbiA9IHRva2Vuc18xW19pXTtcbiAgICAgICAgaWYgKHR5cGVvZiB0b2tlbiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcm91dGUgKz0gZXNjYXBlU3RyaW5nKGVuY29kZSh0b2tlbikpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdmFyIHByZWZpeCA9IGVzY2FwZVN0cmluZyhlbmNvZGUodG9rZW4ucHJlZml4KSk7XG4gICAgICAgICAgICB2YXIgc3VmZml4ID0gZXNjYXBlU3RyaW5nKGVuY29kZSh0b2tlbi5zdWZmaXgpKTtcbiAgICAgICAgICAgIGlmICh0b2tlbi5wYXR0ZXJuKSB7XG4gICAgICAgICAgICAgICAgaWYgKGtleXMpXG4gICAgICAgICAgICAgICAgICAgIGtleXMucHVzaCh0b2tlbik7XG4gICAgICAgICAgICAgICAgaWYgKHByZWZpeCB8fCBzdWZmaXgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRva2VuLm1vZGlmaWVyID09PSBcIitcIiB8fCB0b2tlbi5tb2RpZmllciA9PT0gXCIqXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBtb2QgPSB0b2tlbi5tb2RpZmllciA9PT0gXCIqXCIgPyBcIj9cIiA6IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZSArPSBcIig/OlwiICsgcHJlZml4ICsgXCIoKD86XCIgKyB0b2tlbi5wYXR0ZXJuICsgXCIpKD86XCIgKyBzdWZmaXggKyBwcmVmaXggKyBcIig/OlwiICsgdG9rZW4ucGF0dGVybiArIFwiKSkqKVwiICsgc3VmZml4ICsgXCIpXCIgKyBtb2Q7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZSArPSBcIig/OlwiICsgcHJlZml4ICsgXCIoXCIgKyB0b2tlbi5wYXR0ZXJuICsgXCIpXCIgKyBzdWZmaXggKyBcIilcIiArIHRva2VuLm1vZGlmaWVyO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByb3V0ZSArPSBcIihcIiArIHRva2VuLnBhdHRlcm4gKyBcIilcIiArIHRva2VuLm1vZGlmaWVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJvdXRlICs9IFwiKD86XCIgKyBwcmVmaXggKyBzdWZmaXggKyBcIilcIiArIHRva2VuLm1vZGlmaWVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChlbmQpIHtcbiAgICAgICAgaWYgKCFzdHJpY3QpXG4gICAgICAgICAgICByb3V0ZSArPSBkZWxpbWl0ZXIgKyBcIj9cIjtcbiAgICAgICAgcm91dGUgKz0gIW9wdGlvbnMuZW5kc1dpdGggPyBcIiRcIiA6IFwiKD89XCIgKyBlbmRzV2l0aCArIFwiKVwiO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdmFyIGVuZFRva2VuID0gdG9rZW5zW3Rva2Vucy5sZW5ndGggLSAxXTtcbiAgICAgICAgdmFyIGlzRW5kRGVsaW1pdGVkID0gdHlwZW9mIGVuZFRva2VuID09PSBcInN0cmluZ1wiXG4gICAgICAgICAgICA/IGRlbGltaXRlci5pbmRleE9mKGVuZFRva2VuW2VuZFRva2VuLmxlbmd0aCAtIDFdKSA+IC0xXG4gICAgICAgICAgICA6IC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZVxuICAgICAgICAgICAgICAgIGVuZFRva2VuID09PSB1bmRlZmluZWQ7XG4gICAgICAgIGlmICghc3RyaWN0KSB7XG4gICAgICAgICAgICByb3V0ZSArPSBcIig/OlwiICsgZGVsaW1pdGVyICsgXCIoPz1cIiArIGVuZHNXaXRoICsgXCIpKT9cIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzRW5kRGVsaW1pdGVkKSB7XG4gICAgICAgICAgICByb3V0ZSArPSBcIig/PVwiICsgZGVsaW1pdGVyICsgXCJ8XCIgKyBlbmRzV2l0aCArIFwiKVwiO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBuZXcgUmVnRXhwKHJvdXRlLCBmbGFncyhvcHRpb25zKSk7XG59XG5leHBvcnRzLnRva2Vuc1RvUmVnZXhwID0gdG9rZW5zVG9SZWdleHA7XG4vKipcbiAqIE5vcm1hbGl6ZSB0aGUgZ2l2ZW4gcGF0aCBzdHJpbmcsIHJldHVybmluZyBhIHJlZ3VsYXIgZXhwcmVzc2lvbi5cbiAqXG4gKiBBbiBlbXB0eSBhcnJheSBjYW4gYmUgcGFzc2VkIGluIGZvciB0aGUga2V5cywgd2hpY2ggd2lsbCBob2xkIHRoZVxuICogcGxhY2Vob2xkZXIga2V5IGRlc2NyaXB0aW9ucy4gRm9yIGV4YW1wbGUsIHVzaW5nIGAvdXNlci86aWRgLCBga2V5c2Agd2lsbFxuICogY29udGFpbiBgW3sgbmFtZTogJ2lkJywgZGVsaW1pdGVyOiAnLycsIG9wdGlvbmFsOiBmYWxzZSwgcmVwZWF0OiBmYWxzZSB9XWAuXG4gKi9cbmZ1bmN0aW9uIHBhdGhUb1JlZ2V4cChwYXRoLCBrZXlzLCBvcHRpb25zKSB7XG4gICAgaWYgKHBhdGggaW5zdGFuY2VvZiBSZWdFeHApXG4gICAgICAgIHJldHVybiByZWdleHBUb1JlZ2V4cChwYXRoLCBrZXlzKTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShwYXRoKSlcbiAgICAgICAgcmV0dXJuIGFycmF5VG9SZWdleHAocGF0aCwga2V5cywgb3B0aW9ucyk7XG4gICAgcmV0dXJuIHN0cmluZ1RvUmVnZXhwKHBhdGgsIGtleXMsIG9wdGlvbnMpO1xufVxuZXhwb3J0cy5wYXRoVG9SZWdleHAgPSBwYXRoVG9SZWdleHA7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/compiled/path-to-regexp/index.js\n"); /***/ }), @@ -2176,7 +1913,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nvar _interopRequireDefau /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { -eval("/* WEBPACK VAR INJECTION */(function(__dirname, module) {module.exports = function (e, r) {\n \"use strict\";\n\n var t = {};\n\n function __webpack_require__(r) {\n if (t[r]) {\n return t[r].exports;\n }\n\n var n = t[r] = {\n i: r,\n l: false,\n exports: {}\n };\n e[r].call(n.exports, n, n.exports, __webpack_require__);\n n.l = true;\n return n.exports;\n }\n\n __webpack_require__.ab = __dirname + \"/\";\n\n function startup() {\n return __webpack_require__(855);\n }\n\n return startup();\n}({\n 849: function _(e) {\n \"use strict\";\n\n e.exports = function () {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$onlyFirst = _ref.onlyFirst,\n e = _ref$onlyFirst === void 0 ? false : _ref$onlyFirst;\n\n var r = [\"[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:[a-zA-Z\\\\d]*(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)\", \"(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-ntqry=><~]))\"].join(\"|\");\n return new RegExp(r, e ? undefined : \"g\");\n };\n },\n 855: function _(e, r, t) {\n \"use strict\";\n\n var n = t(849);\n\n e.exports = function (e) {\n return typeof e === \"string\" ? e.replace(n(), \"\") : e;\n };\n }\n});\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.i);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n\n/* WEBPACK VAR INJECTION */}.call(this, \"/\", __webpack_require__(/*! ./../../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9zdHJpcC1hbnNpL2luZGV4LmpzPzk1Y2MiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsImUiLCJyIiwidCIsIl9fd2VicGFja19yZXF1aXJlX18iLCJuIiwiaSIsImwiLCJjYWxsIiwiYWIiLCJfX2Rpcm5hbWUiLCJzdGFydHVwIiwib25seUZpcnN0Iiwiam9pbiIsIlJlZ0V4cCIsInVuZGVmaW5lZCIsInJlcGxhY2UiXSwibWFwcGluZ3MiOiJBQUFBQSwrREFBTSxDQUFDQyxPQUFQLEdBQWUsVUFBU0MsQ0FBVCxFQUFXQyxDQUFYLEVBQWE7QUFBQzs7QUFBYSxNQUFJQyxDQUFDLEdBQUMsRUFBTjs7QUFBUyxXQUFTQyxtQkFBVCxDQUE2QkYsQ0FBN0IsRUFBK0I7QUFBQyxRQUFHQyxDQUFDLENBQUNELENBQUQsQ0FBSixFQUFRO0FBQUMsYUFBT0MsQ0FBQyxDQUFDRCxDQUFELENBQUQsQ0FBS0YsT0FBWjtBQUFvQjs7QUFBQSxRQUFJSyxDQUFDLEdBQUNGLENBQUMsQ0FBQ0QsQ0FBRCxDQUFELEdBQUs7QUFBQ0ksT0FBQyxFQUFDSixDQUFIO0FBQUtLLE9BQUMsRUFBQyxLQUFQO0FBQWFQLGFBQU8sRUFBQztBQUFyQixLQUFYO0FBQW9DQyxLQUFDLENBQUNDLENBQUQsQ0FBRCxDQUFLTSxJQUFMLENBQVVILENBQUMsQ0FBQ0wsT0FBWixFQUFvQkssQ0FBcEIsRUFBc0JBLENBQUMsQ0FBQ0wsT0FBeEIsRUFBZ0NJLG1CQUFoQztBQUFxREMsS0FBQyxDQUFDRSxDQUFGLEdBQUksSUFBSjtBQUFTLFdBQU9GLENBQUMsQ0FBQ0wsT0FBVDtBQUFpQjs7QUFBQUkscUJBQW1CLENBQUNLLEVBQXBCLEdBQXVCQyxTQUFTLEdBQUMsR0FBakM7O0FBQXFDLFdBQVNDLE9BQVQsR0FBa0I7QUFBQyxXQUFPUCxtQkFBbUIsQ0FBQyxHQUFELENBQTFCO0FBQWdDOztBQUFBLFNBQU9PLE9BQU8sRUFBZDtBQUFpQixDQUE3VCxDQUE4VDtBQUFDLE9BQUksV0FBU1YsQ0FBVCxFQUFXO0FBQUM7O0FBQWFBLEtBQUMsQ0FBQ0QsT0FBRixHQUFXLFlBQTBCO0FBQUEscUZBQUwsRUFBSztBQUFBLGdDQUF4QlksU0FBd0I7QUFBQSxVQUFkWCxDQUFjLCtCQUFaLEtBQVk7O0FBQUMsVUFBTUMsQ0FBQyxHQUFDLENBQUMsNkZBQUQsRUFBK0YsMERBQS9GLEVBQTJKVyxJQUEzSixDQUFnSyxHQUFoSyxDQUFSO0FBQTZLLGFBQU8sSUFBSUMsTUFBSixDQUFXWixDQUFYLEVBQWFELENBQUMsR0FBQ2MsU0FBRCxHQUFXLEdBQXpCLENBQVA7QUFBcUMsS0FBeFA7QUFBMFAsR0FBeFI7QUFBeVIsT0FBSSxXQUFTZCxDQUFULEVBQVdDLENBQVgsRUFBYUMsQ0FBYixFQUFlO0FBQUM7O0FBQWEsUUFBTUUsQ0FBQyxHQUFDRixDQUFDLENBQUMsR0FBRCxDQUFUOztBQUFlRixLQUFDLENBQUNELE9BQUYsR0FBVyxVQUFBQyxDQUFDO0FBQUEsYUFBRSxPQUFPQSxDQUFQLEtBQVcsUUFBWCxHQUFvQkEsQ0FBQyxDQUFDZSxPQUFGLENBQVVYLENBQUMsRUFBWCxFQUFjLEVBQWQsQ0FBcEIsR0FBc0NKLENBQXhDO0FBQUEsS0FBWjtBQUF1RDtBQUFoWSxDQUE5VCxDQUFmIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9zdHJpcC1hbnNpL2luZGV4LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHM9ZnVuY3Rpb24oZSxyKXtcInVzZSBzdHJpY3RcIjt2YXIgdD17fTtmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKHIpe2lmKHRbcl0pe3JldHVybiB0W3JdLmV4cG9ydHN9dmFyIG49dFtyXT17aTpyLGw6ZmFsc2UsZXhwb3J0czp7fX07ZVtyXS5jYWxsKG4uZXhwb3J0cyxuLG4uZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKTtuLmw9dHJ1ZTtyZXR1cm4gbi5leHBvcnRzfV9fd2VicGFja19yZXF1aXJlX18uYWI9X19kaXJuYW1lK1wiL1wiO2Z1bmN0aW9uIHN0YXJ0dXAoKXtyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyg4NTUpfXJldHVybiBzdGFydHVwKCl9KHs4NDk6ZnVuY3Rpb24oZSl7XCJ1c2Ugc3RyaWN0XCI7ZS5leHBvcnRzPSgoe29ubHlGaXJzdDplPWZhbHNlfT17fSk9Pntjb25zdCByPVtcIltcXFxcdTAwMUJcXFxcdTAwOUJdW1tcXFxcXSgpIzs/XSooPzooPzooPzpbYS16QS1aXFxcXGRdKig/OjtbLWEtekEtWlxcXFxkXFxcXC8jJi46PT8lQH5fXSopKik/XFxcXHUwMDA3KVwiLFwiKD86KD86XFxcXGR7MSw0fSg/OjtcXFxcZHswLDR9KSopP1tcXFxcZEEtUFItVFpjZi1udHFyeT0+PH5dKSlcIl0uam9pbihcInxcIik7cmV0dXJuIG5ldyBSZWdFeHAocixlP3VuZGVmaW5lZDpcImdcIil9KX0sODU1OmZ1bmN0aW9uKGUscix0KXtcInVzZSBzdHJpY3RcIjtjb25zdCBuPXQoODQ5KTtlLmV4cG9ydHM9KGU9PnR5cGVvZiBlPT09XCJzdHJpbmdcIj9lLnJlcGxhY2UobigpLFwiXCIpOmUpfX0pOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/compiled/strip-ansi/index.js\n"); +eval("/* WEBPACK VAR INJECTION */(function(__dirname, module) {module.exports = function (e, r) {\n \"use strict\";\n\n var t = {};\n\n function __webpack_require__(r) {\n if (t[r]) {\n return t[r].exports;\n }\n\n var n = t[r] = {\n i: r,\n l: false,\n exports: {}\n };\n e[r].call(n.exports, n, n.exports, __webpack_require__);\n n.l = true;\n return n.exports;\n }\n\n __webpack_require__.ab = __dirname + \"/\";\n\n function startup() {\n return __webpack_require__(90);\n }\n\n return startup();\n}({\n 90: function _(e, r, t) {\n \"use strict\";\n\n var n = t(436);\n\n e.exports = function (e) {\n return typeof e === \"string\" ? e.replace(n(), \"\") : e;\n };\n },\n 436: function _(e) {\n \"use strict\";\n\n e.exports = function () {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$onlyFirst = _ref.onlyFirst,\n e = _ref$onlyFirst === void 0 ? false : _ref$onlyFirst;\n\n var r = [\"[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:[a-zA-Z\\\\d]*(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)\", \"(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-ntqry=><~]))\"].join(\"|\");\n return new RegExp(r, e ? undefined : \"g\");\n };\n }\n});\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.i);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n\n/* WEBPACK VAR INJECTION */}.call(this, \"/\", __webpack_require__(/*! ./../../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9zdHJpcC1hbnNpL2luZGV4LmpzPzk1Y2MiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsImUiLCJyIiwidCIsIl9fd2VicGFja19yZXF1aXJlX18iLCJuIiwiaSIsImwiLCJjYWxsIiwiYWIiLCJfX2Rpcm5hbWUiLCJzdGFydHVwIiwicmVwbGFjZSIsIm9ubHlGaXJzdCIsImpvaW4iLCJSZWdFeHAiLCJ1bmRlZmluZWQiXSwibWFwcGluZ3MiOiJBQUFBQSwrREFBTSxDQUFDQyxPQUFQLEdBQWUsVUFBU0MsQ0FBVCxFQUFXQyxDQUFYLEVBQWE7QUFBQzs7QUFBYSxNQUFJQyxDQUFDLEdBQUMsRUFBTjs7QUFBUyxXQUFTQyxtQkFBVCxDQUE2QkYsQ0FBN0IsRUFBK0I7QUFBQyxRQUFHQyxDQUFDLENBQUNELENBQUQsQ0FBSixFQUFRO0FBQUMsYUFBT0MsQ0FBQyxDQUFDRCxDQUFELENBQUQsQ0FBS0YsT0FBWjtBQUFvQjs7QUFBQSxRQUFJSyxDQUFDLEdBQUNGLENBQUMsQ0FBQ0QsQ0FBRCxDQUFELEdBQUs7QUFBQ0ksT0FBQyxFQUFDSixDQUFIO0FBQUtLLE9BQUMsRUFBQyxLQUFQO0FBQWFQLGFBQU8sRUFBQztBQUFyQixLQUFYO0FBQW9DQyxLQUFDLENBQUNDLENBQUQsQ0FBRCxDQUFLTSxJQUFMLENBQVVILENBQUMsQ0FBQ0wsT0FBWixFQUFvQkssQ0FBcEIsRUFBc0JBLENBQUMsQ0FBQ0wsT0FBeEIsRUFBZ0NJLG1CQUFoQztBQUFxREMsS0FBQyxDQUFDRSxDQUFGLEdBQUksSUFBSjtBQUFTLFdBQU9GLENBQUMsQ0FBQ0wsT0FBVDtBQUFpQjs7QUFBQUkscUJBQW1CLENBQUNLLEVBQXBCLEdBQXVCQyxTQUFTLEdBQUMsR0FBakM7O0FBQXFDLFdBQVNDLE9BQVQsR0FBa0I7QUFBQyxXQUFPUCxtQkFBbUIsQ0FBQyxFQUFELENBQTFCO0FBQStCOztBQUFBLFNBQU9PLE9BQU8sRUFBZDtBQUFpQixDQUE1VCxDQUE2VDtBQUFDLE1BQUcsV0FBU1YsQ0FBVCxFQUFXQyxDQUFYLEVBQWFDLENBQWIsRUFBZTtBQUFDOztBQUFhLFFBQU1FLENBQUMsR0FBQ0YsQ0FBQyxDQUFDLEdBQUQsQ0FBVDs7QUFBZUYsS0FBQyxDQUFDRCxPQUFGLEdBQVcsVUFBQUMsQ0FBQztBQUFBLGFBQUUsT0FBT0EsQ0FBUCxLQUFXLFFBQVgsR0FBb0JBLENBQUMsQ0FBQ1csT0FBRixDQUFVUCxDQUFDLEVBQVgsRUFBYyxFQUFkLENBQXBCLEdBQXNDSixDQUF4QztBQUFBLEtBQVo7QUFBdUQsR0FBdkc7QUFBd0csT0FBSSxXQUFTQSxDQUFULEVBQVc7QUFBQzs7QUFBYUEsS0FBQyxDQUFDRCxPQUFGLEdBQVcsWUFBMEI7QUFBQSxxRkFBTCxFQUFLO0FBQUEsZ0NBQXhCYSxTQUF3QjtBQUFBLFVBQWRaLENBQWMsK0JBQVosS0FBWTs7QUFBQyxVQUFNQyxDQUFDLEdBQUMsQ0FBQyw2RkFBRCxFQUErRiwwREFBL0YsRUFBMkpZLElBQTNKLENBQWdLLEdBQWhLLENBQVI7QUFBNkssYUFBTyxJQUFJQyxNQUFKLENBQVdiLENBQVgsRUFBYUQsQ0FBQyxHQUFDZSxTQUFELEdBQVcsR0FBekIsQ0FBUDtBQUFxQyxLQUF4UDtBQUEwUDtBQUEvWCxDQUE3VCxDQUFmIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9zdHJpcC1hbnNpL2luZGV4LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHM9ZnVuY3Rpb24oZSxyKXtcInVzZSBzdHJpY3RcIjt2YXIgdD17fTtmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKHIpe2lmKHRbcl0pe3JldHVybiB0W3JdLmV4cG9ydHN9dmFyIG49dFtyXT17aTpyLGw6ZmFsc2UsZXhwb3J0czp7fX07ZVtyXS5jYWxsKG4uZXhwb3J0cyxuLG4uZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKTtuLmw9dHJ1ZTtyZXR1cm4gbi5leHBvcnRzfV9fd2VicGFja19yZXF1aXJlX18uYWI9X19kaXJuYW1lK1wiL1wiO2Z1bmN0aW9uIHN0YXJ0dXAoKXtyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyg5MCl9cmV0dXJuIHN0YXJ0dXAoKX0oezkwOmZ1bmN0aW9uKGUscix0KXtcInVzZSBzdHJpY3RcIjtjb25zdCBuPXQoNDM2KTtlLmV4cG9ydHM9KGU9PnR5cGVvZiBlPT09XCJzdHJpbmdcIj9lLnJlcGxhY2UobigpLFwiXCIpOmUpfSw0MzY6ZnVuY3Rpb24oZSl7XCJ1c2Ugc3RyaWN0XCI7ZS5leHBvcnRzPSgoe29ubHlGaXJzdDplPWZhbHNlfT17fSk9Pntjb25zdCByPVtcIltcXFxcdTAwMUJcXFxcdTAwOUJdW1tcXFxcXSgpIzs/XSooPzooPzooPzpbYS16QS1aXFxcXGRdKig/OjtbLWEtekEtWlxcXFxkXFxcXC8jJi46PT8lQH5fXSopKik/XFxcXHUwMDA3KVwiLFwiKD86KD86XFxcXGR7MSw0fSg/OjtcXFxcZHswLDR9KSopP1tcXFxcZEEtUFItVFpjZi1udHFyeT0+PH5dKSlcIl0uam9pbihcInxcIik7cmV0dXJuIG5ldyBSZWdFeHAocixlP3VuZGVmaW5lZDpcImdcIil9KX19KTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/compiled/strip-ansi/index.js\n"); /***/ }), @@ -2188,7 +1925,7 @@ eval("/* WEBPACK VAR INJECTION */(function(__dirname, module) {module.exports = /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nexports.__esModule = true;\nexports.HeadManagerContext = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar HeadManagerContext = _react[\"default\"].createContext({});\n\nexports.HeadManagerContext = HeadManagerContext;\n\nif (true) {\n HeadManagerContext.displayName = 'HeadManagerContext';\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.i);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uLy4uL25leHQtc2VydmVyL2xpYi9oZWFkLW1hbmFnZXItY29udGV4dC50cz9iMmQ2Il0sIm5hbWVzIjpbIkhlYWRNYW5hZ2VyQ29udGV4dCIsIlJlYWN0Il0sIm1hcHBpbmdzIjoiOzs7OztBQUFBOzs7Ozs7QUFFTzs7QUFBQSxJQUFNQSxrQkFHWCxHQUFHQyxnQ0FIRSxFQUdGQSxDQUhFOzs7O0FBS1AsVUFBMkM7QUFDekNELG9CQUFrQixDQUFsQkE7QUFDRCIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbmV4dC1zZXJ2ZXIvbGliL2hlYWQtbWFuYWdlci1jb250ZXh0LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5leHBvcnQgY29uc3QgSGVhZE1hbmFnZXJDb250ZXh0OiBSZWFjdC5Db250ZXh0PHtcbiAgdXBkYXRlSGVhZD86IChzdGF0ZTogYW55KSA9PiB2b2lkXG4gIG1vdW50ZWRJbnN0YW5jZXM/OiBhbnlcbn0+ID0gUmVhY3QuY3JlYXRlQ29udGV4dCh7fSlcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgSGVhZE1hbmFnZXJDb250ZXh0LmRpc3BsYXlOYW1lID0gJ0hlYWRNYW5hZ2VyQ29udGV4dCdcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/next-server/lib/head-manager-context.js\n"); +eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nexports.__esModule = true;\nexports.HeadManagerContext = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar HeadManagerContext = /*#__PURE__*/_react[\"default\"].createContext({});\n\nexports.HeadManagerContext = HeadManagerContext;\n\nif (true) {\n HeadManagerContext.displayName = 'HeadManagerContext';\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.i);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uLy4uL25leHQtc2VydmVyL2xpYi9oZWFkLW1hbmFnZXItY29udGV4dC50cz9iMmQ2Il0sIm5hbWVzIjpbIkhlYWRNYW5hZ2VyQ29udGV4dCIsIlJlYWN0Il0sIm1hcHBpbmdzIjoiOzs7OztBQUFBOzs7Ozs7QUFFTzs7QUFBQSxJQUFNQSxrQkFHWCxnQkFBR0MsZ0NBSEUsRUFHRkEsQ0FIRTs7OztBQUtQLFVBQTJDO0FBQ3pDRCxvQkFBa0IsQ0FBbEJBO0FBQ0QiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtc2VydmVyL2xpYi9oZWFkLW1hbmFnZXItY29udGV4dC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcblxuZXhwb3J0IGNvbnN0IEhlYWRNYW5hZ2VyQ29udGV4dDogUmVhY3QuQ29udGV4dDx7XG4gIHVwZGF0ZUhlYWQ/OiAoc3RhdGU6IGFueSkgPT4gdm9pZFxuICBtb3VudGVkSW5zdGFuY2VzPzogYW55XG59PiA9IFJlYWN0LmNyZWF0ZUNvbnRleHQoe30pXG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIEhlYWRNYW5hZ2VyQ29udGV4dC5kaXNwbGF5TmFtZSA9ICdIZWFkTWFuYWdlckNvbnRleHQnXG59XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/next-server/lib/head-manager-context.js\n"); /***/ }), @@ -2200,7 +1937,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nexports.__esModule = tru /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nexports.__esModule = true;\nexports[\"default\"] = mitt;\n/*\nMIT License\nCopyright (c) Jason Miller (https://jasonformat.com/)\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/\n// This file is based on https://github.com/developit/mitt/blob/v1.1.3/src/index.js\n// It's been edited for the needs of this script\n// See the LICENSE at the top of the file\n\nfunction mitt() {\n var all = Object.create(null);\n return {\n on: function on(type, handler) {\n ;\n (all[type] || (all[type] = [])).push(handler);\n },\n off: function off(type, handler) {\n if (all[type]) {\n // tslint:disable-next-line:no-bitwise\n all[type].splice(all[type].indexOf(handler) >>> 0, 1);\n }\n },\n emit: function emit(type) {\n for (var _len = arguments.length, evts = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n evts[_key - 1] = arguments[_key];\n }\n\n // eslint-disable-next-line array-callback-return\n ;\n (all[type] || []).slice().map(function (handler) {\n handler.apply(void 0, evts);\n });\n }\n };\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.i);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uLy4uL25leHQtc2VydmVyL2xpYi9taXR0LnRzP2Y0ZWMiXSwibmFtZXMiOlsiYWxsIiwiT2JqZWN0Iiwib24iLCJvZmYiLCJlbWl0IiwiaGFuZGxlciJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7Ozs7O0FBWUE7QUFDQTtBQUNBOztBQVVlLGdCQUE2QjtBQUMxQyxNQUFNQSxHQUErQixHQUFHQyxNQUFNLENBQU5BLE9BQXhDLElBQXdDQSxDQUF4QztBQUVBLFNBQU87QUFDTEMsTUFESyxjQUNILElBREcsRUFDSCxPQURHLEVBQzhCO0FBQ2pDO0FBQUMsT0FBQ0YsR0FBRyxDQUFIQSxJQUFHLENBQUhBLEtBQWNBLEdBQUcsQ0FBSEEsSUFBRyxDQUFIQSxHQUFmLEVBQUNBLENBQUQ7QUFGRTtBQUtMRyxPQUxLLGVBS0YsSUFMRSxFQUtGLE9BTEUsRUFLK0I7QUFDbEMsVUFBSUgsR0FBRyxDQUFQLElBQU8sQ0FBUCxFQUFlO0FBQ2I7QUFDQUEsV0FBRyxDQUFIQSxJQUFHLENBQUhBLFFBQWlCQSxHQUFHLENBQUhBLElBQUcsQ0FBSEEsc0JBQWpCQTtBQUVIO0FBVkk7QUFZTEksUUFaSyxnQkFZRCxJQVpDLEVBWThCO0FBQUEsd0NBQS9CLElBQStCO0FBQS9CLFlBQStCO0FBQUE7O0FBQ2pDO0FBQ0E7QUFBQyxPQUFDSixHQUFHLENBQUhBLElBQUcsQ0FBSEEsSUFBRCxnQkFBK0JLLGlCQUFELEVBQXNCO0FBQ25EQSxlQUFPLE1BQVBBO0FBREQ7QUFkTDtBQUFPLEdBQVA7QUFtQkQiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtc2VydmVyL2xpYi9taXR0LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbk1JVCBMaWNlbnNlXG5cbkNvcHlyaWdodCAoYykgSmFzb24gTWlsbGVyIChodHRwczovL2phc29uZm9ybWF0LmNvbS8pXG5cblBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG5cblRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuXG5USEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cbiovXG5cbi8vIFRoaXMgZmlsZSBpcyBiYXNlZCBvbiBodHRwczovL2dpdGh1Yi5jb20vZGV2ZWxvcGl0L21pdHQvYmxvYi92MS4xLjMvc3JjL2luZGV4LmpzXG4vLyBJdCdzIGJlZW4gZWRpdGVkIGZvciB0aGUgbmVlZHMgb2YgdGhpcyBzY3JpcHRcbi8vIFNlZSB0aGUgTElDRU5TRSBhdCB0aGUgdG9wIG9mIHRoZSBmaWxlXG5cbnR5cGUgSGFuZGxlciA9ICguLi5ldnRzOiBhbnlbXSkgPT4gdm9pZFxuXG5leHBvcnQgdHlwZSBNaXR0RW1pdHRlciA9IHtcbiAgb24odHlwZTogc3RyaW5nLCBoYW5kbGVyOiBIYW5kbGVyKTogdm9pZFxuICBvZmYodHlwZTogc3RyaW5nLCBoYW5kbGVyOiBIYW5kbGVyKTogdm9pZFxuICBlbWl0KHR5cGU6IHN0cmluZywgLi4uZXZ0czogYW55W10pOiB2b2lkXG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG1pdHQoKTogTWl0dEVtaXR0ZXIge1xuICBjb25zdCBhbGw6IHsgW3M6IHN0cmluZ106IEhhbmRsZXJbXSB9ID0gT2JqZWN0LmNyZWF0ZShudWxsKVxuXG4gIHJldHVybiB7XG4gICAgb24odHlwZTogc3RyaW5nLCBoYW5kbGVyOiBIYW5kbGVyKSB7XG4gICAgICA7KGFsbFt0eXBlXSB8fCAoYWxsW3R5cGVdID0gW10pKS5wdXNoKGhhbmRsZXIpXG4gICAgfSxcblxuICAgIG9mZih0eXBlOiBzdHJpbmcsIGhhbmRsZXI6IEhhbmRsZXIpIHtcbiAgICAgIGlmIChhbGxbdHlwZV0pIHtcbiAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWJpdHdpc2VcbiAgICAgICAgYWxsW3R5cGVdLnNwbGljZShhbGxbdHlwZV0uaW5kZXhPZihoYW5kbGVyKSA+Pj4gMCwgMSlcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgZW1pdCh0eXBlOiBzdHJpbmcsIC4uLmV2dHM6IGFueVtdKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgYXJyYXktY2FsbGJhY2stcmV0dXJuXG4gICAgICA7KGFsbFt0eXBlXSB8fCBbXSkuc2xpY2UoKS5tYXAoKGhhbmRsZXI6IEhhbmRsZXIpID0+IHtcbiAgICAgICAgaGFuZGxlciguLi5ldnRzKVxuICAgICAgfSlcbiAgICB9LFxuICB9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/next-server/lib/mitt.js\n"); +eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nexports.__esModule = true;\nexports[\"default\"] = mitt;\n/*\nMIT License\nCopyright (c) Jason Miller (https://jasonformat.com/)\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/\n// This file is based on https://github.com/developit/mitt/blob/v1.1.3/src/index.js\n// It's been edited for the needs of this script\n// See the LICENSE at the top of the file\n\nfunction mitt() {\n var all = Object.create(null);\n return {\n on: function on(type, handler) {\n ;\n (all[type] || (all[type] = [])).push(handler);\n },\n off: function off(type, handler) {\n if (all[type]) {\n all[type].splice(all[type].indexOf(handler) >>> 0, 1);\n }\n },\n emit: function emit(type) {\n for (var _len = arguments.length, evts = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n evts[_key - 1] = arguments[_key];\n }\n\n // eslint-disable-next-line array-callback-return\n ;\n (all[type] || []).slice().map(function (handler) {\n handler.apply(void 0, evts);\n });\n }\n };\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.i);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uLy4uL25leHQtc2VydmVyL2xpYi9taXR0LnRzP2Y0ZWMiXSwibmFtZXMiOlsiYWxsIiwiT2JqZWN0Iiwib24iLCJvZmYiLCJlbWl0IiwiaGFuZGxlciJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7Ozs7O0FBWUE7QUFDQTtBQUNBOztBQVVlLGdCQUE2QjtBQUMxQyxNQUFNQSxHQUErQixHQUFHQyxNQUFNLENBQU5BLE9BQXhDLElBQXdDQSxDQUF4QztBQUVBLFNBQU87QUFDTEMsTUFESyxjQUNILElBREcsRUFDSCxPQURHLEVBQzhCO0FBQ2pDO0FBQUMsT0FBQ0YsR0FBRyxDQUFIQSxJQUFHLENBQUhBLEtBQWNBLEdBQUcsQ0FBSEEsSUFBRyxDQUFIQSxHQUFmLEVBQUNBLENBQUQ7QUFGRTtBQUtMRyxPQUxLLGVBS0YsSUFMRSxFQUtGLE9BTEUsRUFLK0I7QUFDbEMsVUFBSUgsR0FBRyxDQUFQLElBQU8sQ0FBUCxFQUFlO0FBQ2JBLFdBQUcsQ0FBSEEsSUFBRyxDQUFIQSxRQUFpQkEsR0FBRyxDQUFIQSxJQUFHLENBQUhBLHNCQUFqQkE7QUFFSDtBQVRJO0FBV0xJLFFBWEssZ0JBV0QsSUFYQyxFQVc4QjtBQUFBLHdDQUEvQixJQUErQjtBQUEvQixZQUErQjtBQUFBOztBQUNqQztBQUNBO0FBQUMsT0FBQ0osR0FBRyxDQUFIQSxJQUFHLENBQUhBLElBQUQsZ0JBQStCSyxpQkFBRCxFQUFzQjtBQUNuREEsZUFBTyxNQUFQQTtBQUREO0FBYkw7QUFBTyxHQUFQO0FBa0JEIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9uZXh0LXNlcnZlci9saWIvbWl0dC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG5NSVQgTGljZW5zZVxuXG5Db3B5cmlnaHQgKGMpIEphc29uIE1pbGxlciAoaHR0cHM6Ly9qYXNvbmZvcm1hdC5jb20vKVxuXG5QZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuXG5UaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cblxuVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG4qL1xuXG4vLyBUaGlzIGZpbGUgaXMgYmFzZWQgb24gaHR0cHM6Ly9naXRodWIuY29tL2RldmVsb3BpdC9taXR0L2Jsb2IvdjEuMS4zL3NyYy9pbmRleC5qc1xuLy8gSXQncyBiZWVuIGVkaXRlZCBmb3IgdGhlIG5lZWRzIG9mIHRoaXMgc2NyaXB0XG4vLyBTZWUgdGhlIExJQ0VOU0UgYXQgdGhlIHRvcCBvZiB0aGUgZmlsZVxuXG50eXBlIEhhbmRsZXIgPSAoLi4uZXZ0czogYW55W10pID0+IHZvaWRcblxuZXhwb3J0IHR5cGUgTWl0dEVtaXR0ZXIgPSB7XG4gIG9uKHR5cGU6IHN0cmluZywgaGFuZGxlcjogSGFuZGxlcik6IHZvaWRcbiAgb2ZmKHR5cGU6IHN0cmluZywgaGFuZGxlcjogSGFuZGxlcik6IHZvaWRcbiAgZW1pdCh0eXBlOiBzdHJpbmcsIC4uLmV2dHM6IGFueVtdKTogdm9pZFxufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBtaXR0KCk6IE1pdHRFbWl0dGVyIHtcbiAgY29uc3QgYWxsOiB7IFtzOiBzdHJpbmddOiBIYW5kbGVyW10gfSA9IE9iamVjdC5jcmVhdGUobnVsbClcblxuICByZXR1cm4ge1xuICAgIG9uKHR5cGU6IHN0cmluZywgaGFuZGxlcjogSGFuZGxlcikge1xuICAgICAgOyhhbGxbdHlwZV0gfHwgKGFsbFt0eXBlXSA9IFtdKSkucHVzaChoYW5kbGVyKVxuICAgIH0sXG5cbiAgICBvZmYodHlwZTogc3RyaW5nLCBoYW5kbGVyOiBIYW5kbGVyKSB7XG4gICAgICBpZiAoYWxsW3R5cGVdKSB7XG4gICAgICAgIGFsbFt0eXBlXS5zcGxpY2UoYWxsW3R5cGVdLmluZGV4T2YoaGFuZGxlcikgPj4+IDAsIDEpXG4gICAgICB9XG4gICAgfSxcblxuICAgIGVtaXQodHlwZTogc3RyaW5nLCAuLi5ldnRzOiBhbnlbXSkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGFycmF5LWNhbGxiYWNrLXJldHVyblxuICAgICAgOyhhbGxbdHlwZV0gfHwgW10pLnNsaWNlKCkubWFwKChoYW5kbGVyOiBIYW5kbGVyKSA9PiB7XG4gICAgICAgIGhhbmRsZXIoLi4uZXZ0cylcbiAgICAgIH0pXG4gICAgfSxcbiAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/next-server/lib/mitt.js\n"); /***/ }), @@ -2212,7 +1949,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nexports.__esModule = tru /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nexports.__esModule = true;\nexports.RouterContext = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar RouterContext = _react[\"default\"].createContext(null);\n\nexports.RouterContext = RouterContext;\n\nif (true) {\n RouterContext.displayName = 'RouterContext';\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.i);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uLy4uL25leHQtc2VydmVyL2xpYi9yb3V0ZXItY29udGV4dC50cz84OTQ1Il0sIm5hbWVzIjpbIlJvdXRlckNvbnRleHQiLCJSZWFjdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7Ozs7O0FBR087O0FBQUEsSUFBTUEsYUFBYSxHQUFHQyxnQ0FBdEIsSUFBc0JBLENBQXRCOzs7O0FBRVAsVUFBMkM7QUFDekNELGVBQWEsQ0FBYkE7QUFDRCIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbmV4dC1zZXJ2ZXIvbGliL3JvdXRlci1jb250ZXh0LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgTmV4dFJvdXRlciB9IGZyb20gJy4vcm91dGVyL3JvdXRlcidcblxuZXhwb3J0IGNvbnN0IFJvdXRlckNvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0PE5leHRSb3V0ZXI+KG51bGwgYXMgYW55KVxuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICBSb3V0ZXJDb250ZXh0LmRpc3BsYXlOYW1lID0gJ1JvdXRlckNvbnRleHQnXG59XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/next-server/lib/router-context.js\n"); +eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nexports.__esModule = true;\nexports.RouterContext = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar RouterContext = /*#__PURE__*/_react[\"default\"].createContext(null);\n\nexports.RouterContext = RouterContext;\n\nif (true) {\n RouterContext.displayName = 'RouterContext';\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.i);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uLy4uL25leHQtc2VydmVyL2xpYi9yb3V0ZXItY29udGV4dC50cz84OTQ1Il0sIm5hbWVzIjpbIlJvdXRlckNvbnRleHQiLCJSZWFjdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7Ozs7O0FBR087O0FBQUEsSUFBTUEsYUFBYSxnQkFBR0MsZ0NBQXRCLElBQXNCQSxDQUF0Qjs7OztBQUVQLFVBQTJDO0FBQ3pDRCxlQUFhLENBQWJBO0FBQ0QiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtc2VydmVyL2xpYi9yb3V0ZXItY29udGV4dC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IE5leHRSb3V0ZXIgfSBmcm9tICcuL3JvdXRlci9yb3V0ZXInXG5cbmV4cG9ydCBjb25zdCBSb3V0ZXJDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dDxOZXh0Um91dGVyPihudWxsIGFzIGFueSlcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgUm91dGVyQ29udGV4dC5kaXNwbGF5TmFtZSA9ICdSb3V0ZXJDb250ZXh0J1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/next-server/lib/router-context.js\n"); /***/ }), @@ -2224,7 +1961,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nexports.__esModule = tru /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nvar _slicedToArray = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nvar _regeneratorRuntime = __webpack_require__(/*! @babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n\nvar _asyncToGenerator = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/asyncToGenerator.js\");\n\nvar _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\");\n\nvar _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\");\n\nexports.__esModule = true;\nexports.addBasePath = addBasePath;\nexports.delBasePath = delBasePath;\nexports.resolveHref = resolveHref;\nexports[\"default\"] = void 0;\n\nvar _mitt = _interopRequireDefault(__webpack_require__(/*! ../mitt */ \"./node_modules/next/dist/next-server/lib/mitt.js\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./node_modules/next/dist/next-server/lib/utils.js\");\n\nvar _isDynamic = __webpack_require__(/*! ./utils/is-dynamic */ \"./node_modules/next/dist/next-server/lib/router/utils/is-dynamic.js\");\n\nvar _routeMatcher = __webpack_require__(/*! ./utils/route-matcher */ \"./node_modules/next/dist/next-server/lib/router/utils/route-matcher.js\");\n\nvar _routeRegex = __webpack_require__(/*! ./utils/route-regex */ \"./node_modules/next/dist/next-server/lib/router/utils/route-regex.js\");\n\nvar _searchParamsToUrlQuery = __webpack_require__(/*! ./utils/search-params-to-url-query */ \"./node_modules/next/dist/next-server/lib/router/utils/search-params-to-url-query.js\");\n\nvar _parseRelativeUrl = __webpack_require__(/*! ./utils/parse-relative-url */ \"./node_modules/next/dist/next-server/lib/router/utils/parse-relative-url.js\");\n\nvar _normalizeTrailingSlash = __webpack_require__(/*! ../../../client/normalize-trailing-slash */ \"./node_modules/next/dist/client/normalize-trailing-slash.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n/* global __NEXT_DATA__ */\n// tslint:disable:no-console\n\n\nvar basePath = false || '';\n\nfunction buildCancellationError() {\n return Object.assign(new Error('Route Cancelled'), {\n cancelled: true\n });\n}\n\nfunction addBasePath(path) {\n return basePath ? path === '/' ? (0, _normalizeTrailingSlash.normalizePathTrailingSlash)(basePath) : basePath + path : path;\n}\n\nfunction delBasePath(path) {\n return path.slice(basePath.length) || '/';\n}\n/**\n* Resolves a given hyperlink with a certain router state (basePath not included).\n* Preserves absolute urls.\n*/\n\n\nfunction resolveHref(currentPath, href) {\n // we use a dummy base url for relative urls\n var base = new URL(currentPath, 'http://n');\n var urlAsString = typeof href === 'string' ? href : (0, _utils.formatWithValidation)(href);\n var finalUrl = new URL(urlAsString, base);\n finalUrl.pathname = (0, _normalizeTrailingSlash.normalizePathTrailingSlash)(finalUrl.pathname); // if the origin didn't change, it means we received a relative href\n\n return finalUrl.origin === base.origin ? finalUrl.href.slice(finalUrl.origin.length) : finalUrl.href;\n}\n\nfunction prepareUrlAs(router, url, as) {\n // If url and as provided as an object representation,\n // we'll format them into the string version here.\n return {\n url: addBasePath(resolveHref(router.pathname, url)),\n as: as ? addBasePath(resolveHref(router.pathname, as)) : as\n };\n}\n\nfunction tryParseRelativeUrl(url) {\n try {\n return (0, _parseRelativeUrl.parseRelativeUrl)(url);\n } catch (err) {\n if (true) {\n throw new Error(\"Invalid href passed to router: \".concat(url, \" https://err.sh/vercel/next.js/invalid-href-passed\"));\n }\n\n return null;\n }\n}\n\nvar manualScrollRestoration = false && false;\n\nfunction fetchRetry(url, attempts) {\n return fetch(url, {\n // Cookies are required to be present for Next.js' SSG \"Preview Mode\".\n // Cookies may also be required for `getServerSideProps`.\n //\n // > `fetch` won’t send cookies, unless you set the credentials init\n // > option.\n // https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch\n //\n // > For maximum browser compatibility when it comes to sending &\n // > receiving cookies, always supply the `credentials: 'same-origin'`\n // > option instead of relying on the default.\n // https://github.com/github/fetch#caveats\n credentials: 'same-origin'\n }).then(function (res) {\n if (!res.ok) {\n if (attempts > 1 && res.status >= 500) {\n return fetchRetry(url, attempts - 1);\n }\n\n throw new Error(\"Failed to load static props\");\n }\n\n return res.json();\n });\n}\n\nfunction fetchNextData(dataHref, isServerRender) {\n return fetchRetry(dataHref, isServerRender ? 3 : 1)[\"catch\"](function (err) {\n // We should only trigger a server-side transition if this was caused\n // on a client-side transition. Otherwise, we'd get into an infinite\n // loop.\n if (!isServerRender) {\n ;\n err.code = 'PAGE_LOAD_ERROR';\n }\n\n throw err;\n });\n}\n\nvar Router = /*#__PURE__*/function () {\n /**\n * Map of all components loaded in `Router`\n */\n // Static Data Cache\n function Router(_pathname, _query, _as, _ref) {\n var _this = this;\n\n var initialProps = _ref.initialProps,\n pageLoader = _ref.pageLoader,\n App = _ref.App,\n wrapApp = _ref.wrapApp,\n Component = _ref.Component,\n err = _ref.err,\n subscription = _ref.subscription,\n isFallback = _ref.isFallback;\n\n _classCallCheck(this, Router);\n\n this.route = void 0;\n this.pathname = void 0;\n this.query = void 0;\n this.asPath = void 0;\n this.basePath = void 0;\n this.components = void 0;\n this.sdc = {};\n this.sub = void 0;\n this.clc = void 0;\n this.pageLoader = void 0;\n this._bps = void 0;\n this.events = void 0;\n this._wrapApp = void 0;\n this.isSsr = void 0;\n this.isFallback = void 0;\n this._inFlightRoute = void 0;\n\n this.onPopState = function (e) {\n if (!e.state) {\n // We get state as undefined for two reasons.\n // 1. With older safari (< 8) and older chrome (< 34)\n // 2. When the URL changed with #\n //\n // In the both cases, we don't need to proceed and change the route.\n // (as it's already changed)\n // But we can simply replace the state with the new changes.\n // Actually, for (1) we don't need to nothing. But it's hard to detect that event.\n // So, doing the following for (1) does no harm.\n var _pathname2 = _this.pathname,\n query = _this.query;\n\n _this.changeState('replaceState', (0, _utils.formatWithValidation)({\n pathname: addBasePath(_pathname2),\n query: query\n }), (0, _utils.getURL)());\n\n return;\n }\n\n var _e$state = e.state,\n url = _e$state.url,\n as = _e$state.as,\n options = _e$state.options,\n __N = _e$state.__N;\n\n if (!__N) {\n // this history state wasn't created by next.js so it can be ignored\n return;\n }\n\n var _ref2 = (0, _parseRelativeUrl.parseRelativeUrl)(url),\n pathname = _ref2.pathname; // Make sure we don't re-render on initial load,\n // can be caused by navigating back from an external site\n\n\n if (_this.isSsr && as === _this.asPath && pathname === _this.pathname) {\n return;\n } // If the downstream application returns falsy, return.\n // They will then be responsible for handling the event.\n\n\n if (_this._bps && !_this._bps(e.state)) {\n return;\n }\n\n if (true) {\n if (typeof url === 'undefined' || typeof as === 'undefined') {\n console.warn('`popstate` event triggered but `event.state` did not have `url` or `as` https://err.sh/vercel/next.js/popstate-state-empty');\n }\n }\n\n _this.change('replaceState', url, as, options);\n }; // represents the current component key\n\n\n this.route = (0, _normalizeTrailingSlash.removePathTrailingSlash)(_pathname); // set up the component cache (by route keys)\n\n this.components = {}; // We should not keep the cache, if there's an error\n // Otherwise, this cause issues when when going back and\n // come again to the errored page.\n\n if (_pathname !== '/_error') {\n this.components[this.route] = {\n Component: Component,\n props: initialProps,\n err: err,\n __N_SSG: initialProps && initialProps.__N_SSG,\n __N_SSP: initialProps && initialProps.__N_SSP\n };\n }\n\n this.components['/_app'] = {\n Component: App\n }; // Backwards compat for Router.router.events\n // TODO: Should be remove the following major version as it was never documented\n\n this.events = Router.events;\n this.pageLoader = pageLoader;\n this.pathname = _pathname;\n this.query = _query; // if auto prerendered and dynamic route wait to update asPath\n // until after mount to prevent hydration mismatch\n\n this.asPath = // @ts-ignore this is temporarily global (attached to window)\n (0, _isDynamic.isDynamicRoute)(_pathname) && __NEXT_DATA__.autoExport ? _pathname : _as;\n this.basePath = basePath;\n this.sub = subscription;\n this.clc = null;\n this._wrapApp = wrapApp; // make sure to ignore extra popState in safari on navigating\n // back from external site\n\n this.isSsr = true;\n this.isFallback = isFallback;\n\n if (true) {\n // make sure \"as\" doesn't start with double slashes or else it can\n // throw an error as it's considered invalid\n if (_as.substr(0, 2) !== '//') {\n // in order for `e.state` to work on the `onpopstate` event\n // we have to register the initial route upon initialization\n this.changeState('replaceState', (0, _utils.formatWithValidation)({\n pathname: addBasePath(_pathname),\n query: _query\n }), (0, _utils.getURL)());\n }\n\n window.addEventListener('popstate', this.onPopState); // enable custom scroll restoration handling when available\n // otherwise fallback to browser's default handling\n\n if (false) { var debouncedScrollSave, scrollDebounceTimeout; }\n }\n } // @deprecated backwards compatibility even though it's a private method.\n\n\n _createClass(Router, [{\n key: \"update\",\n value: function update(route, mod) {\n var Component = mod[\"default\"] || mod;\n var data = this.components[route];\n\n if (!data) {\n throw new Error(\"Cannot update unavailable route: \".concat(route));\n }\n\n var newData = Object.assign({}, data, {\n Component: Component,\n __N_SSG: mod.__N_SSG,\n __N_SSP: mod.__N_SSP\n });\n this.components[route] = newData; // pages/_app.js updated\n\n if (route === '/_app') {\n this.notify(this.components[this.route]);\n return;\n }\n\n if (route === this.route) {\n this.notify(newData);\n }\n }\n }, {\n key: \"reload\",\n value: function reload() {\n window.location.reload();\n }\n /**\n * Go back in history\n */\n\n }, {\n key: \"back\",\n value: function back() {\n window.history.back();\n }\n /**\n * Performs a `pushState` with arguments\n * @param url of the route\n * @param as masks `url` for the browser\n * @param options object you can define `shallow` and other options\n */\n\n }, {\n key: \"push\",\n value: function push(url) {\n var as = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : url;\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n ;\n\n var _prepareUrlAs = prepareUrlAs(this, url, as);\n\n url = _prepareUrlAs.url;\n as = _prepareUrlAs.as;\n return this.change('pushState', url, as, options);\n }\n /**\n * Performs a `replaceState` with arguments\n * @param url of the route\n * @param as masks `url` for the browser\n * @param options object you can define `shallow` and other options\n */\n\n }, {\n key: \"replace\",\n value: function replace(url) {\n var as = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : url;\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n ;\n\n var _prepareUrlAs2 = prepareUrlAs(this, url, as);\n\n url = _prepareUrlAs2.url;\n as = _prepareUrlAs2.as;\n return this.change('replaceState', url, as, options);\n }\n }, {\n key: \"change\",\n value: function () {\n var _change = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(method, url, as, options) {\n var rewriteUrlForNextExport, cleanedAs, parsed, pathname, searchParams, query, route, _options$shallow, shallow, _ref3, asPathname, routeRegex, routeMatch, missingParams, routeInfo, error, appComp;\n\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!options._h) {\n this.isSsr = false;\n } // marking route changes as a navigation start entry\n\n\n if (_utils.ST) {\n performance.mark('routeChange');\n } // Add the ending slash to the paths. So, we can serve the\n // \"/index.html\" directly for the SSR page.\n\n\n if (false) {}\n\n if (this._inFlightRoute) {\n this.abortComponentLoad(this._inFlightRoute);\n }\n\n cleanedAs = delBasePath(as);\n this._inFlightRoute = as; // If the url change is only related to a hash change\n // We should not proceed. We should only change the state.\n // WARNING: `_h` is an internal option for handing Next.js client-side\n // hydration. Your app should _never_ use this property. It may change at\n // any time without notice.\n\n if (!(!options._h && this.onlyAHashChange(cleanedAs))) {\n _context.next = 13;\n break;\n }\n\n this.asPath = cleanedAs;\n Router.events.emit('hashChangeStart', as);\n this.changeState(method, url, as, options);\n this.scrollToHash(cleanedAs);\n Router.events.emit('hashChangeComplete', as);\n return _context.abrupt(\"return\", true);\n\n case 13:\n parsed = tryParseRelativeUrl(url);\n\n if (parsed) {\n _context.next = 16;\n break;\n }\n\n return _context.abrupt(\"return\", false);\n\n case 16:\n pathname = parsed.pathname, searchParams = parsed.searchParams;\n query = (0, _searchParamsToUrlQuery.searchParamsToUrlQuery)(searchParams); // url and as should always be prefixed with basePath by this\n // point by either next/link or router.push/replace so strip the\n // basePath from the pathname to match the pages dir 1-to-1\n\n pathname = pathname ? (0, _normalizeTrailingSlash.removePathTrailingSlash)(delBasePath(pathname)) : pathname; // If asked to change the current URL we should reload the current page\n // (not location.reload() but reload getInitialProps and other Next.js stuffs)\n // We also need to set the method = replaceState always\n // as this should not go into the history (That's how browsers work)\n // We should compare the new asPath to the current asPath, not the url\n\n if (!this.urlIsNew(cleanedAs)) {\n method = 'replaceState';\n }\n\n route = (0, _normalizeTrailingSlash.removePathTrailingSlash)(pathname);\n _options$shallow = options.shallow, shallow = _options$shallow === void 0 ? false : _options$shallow;\n\n if (!(0, _isDynamic.isDynamicRoute)(route)) {\n _context.next = 34;\n break;\n }\n\n _ref3 = (0, _parseRelativeUrl.parseRelativeUrl)(cleanedAs), asPathname = _ref3.pathname;\n routeRegex = (0, _routeRegex.getRouteRegex)(route);\n routeMatch = (0, _routeMatcher.getRouteMatcher)(routeRegex)(asPathname);\n\n if (routeMatch) {\n _context.next = 33;\n break;\n }\n\n missingParams = Object.keys(routeRegex.groups).filter(function (param) {\n return !query[param];\n });\n\n if (!(missingParams.length > 0)) {\n _context.next = 31;\n break;\n }\n\n if (true) {\n console.warn(\"Mismatching `as` and `href` failed to manually provide \" + \"the params: \".concat(missingParams.join(', '), \" in the `href`'s `query`\"));\n }\n\n throw new Error(\"The provided `as` value (\".concat(asPathname, \") is incompatible with the `href` value (\").concat(route, \"). \") + \"Read more: https://err.sh/vercel/next.js/incompatible-href-as\");\n\n case 31:\n _context.next = 34;\n break;\n\n case 33:\n // Merge params into `query`, overwriting any specified in search\n Object.assign(query, routeMatch);\n\n case 34:\n Router.events.emit('routeChangeStart', as);\n _context.prev = 35;\n _context.next = 38;\n return this.getRouteInfo(route, pathname, query, as, shallow);\n\n case 38:\n routeInfo = _context.sent;\n error = routeInfo.error;\n Router.events.emit('beforeHistoryChange', as);\n this.changeState(method, url, as, options);\n\n if (true) {\n appComp = this.components['/_app'].Component;\n window.next.isPrerendered = appComp.getInitialProps === appComp.origGetInitialProps && !routeInfo.Component.getInitialProps;\n }\n\n _context.next = 45;\n return this.set(route, pathname, query, cleanedAs, routeInfo);\n\n case 45:\n if (!error) {\n _context.next = 48;\n break;\n }\n\n Router.events.emit('routeChangeError', error, cleanedAs);\n throw error;\n\n case 48:\n if (false) {}\n\n Router.events.emit('routeChangeComplete', as);\n return _context.abrupt(\"return\", true);\n\n case 53:\n _context.prev = 53;\n _context.t0 = _context[\"catch\"](35);\n\n if (!_context.t0.cancelled) {\n _context.next = 57;\n break;\n }\n\n return _context.abrupt(\"return\", false);\n\n case 57:\n throw _context.t0;\n\n case 58:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this, [[35, 53]]);\n }));\n\n function change(_x, _x2, _x3, _x4) {\n return _change.apply(this, arguments);\n }\n\n return change;\n }()\n }, {\n key: \"changeState\",\n value: function changeState(method, url, as) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n if (true) {\n if (typeof window.history === 'undefined') {\n console.error(\"Warning: window.history is not available.\");\n return;\n }\n\n if (typeof window.history[method] === 'undefined') {\n console.error(\"Warning: window.history.\".concat(method, \" is not available\"));\n return;\n }\n }\n\n if (method !== 'pushState' || (0, _utils.getURL)() !== as) {\n window.history[method]({\n url: url,\n as: as,\n options: options,\n __N: true\n }, // Most browsers currently ignores this parameter, although they may use it in the future.\n // Passing the empty string here should be safe against future changes to the method.\n // https://developer.mozilla.org/en-US/docs/Web/API/History/replaceState\n '', as);\n }\n }\n }, {\n key: \"handleRouteInfoError\",\n value: function () {\n var _handleRouteInfoError = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(err, pathname, query, as, loadErrorFail) {\n var _yield$this$fetchComp, Component, routeInfo;\n\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (!err.cancelled) {\n _context2.next = 2;\n break;\n }\n\n throw err;\n\n case 2:\n if (!(err.code === 'PAGE_LOAD_ERROR' || loadErrorFail)) {\n _context2.next = 6;\n break;\n }\n\n Router.events.emit('routeChangeError', err, as); // If we can't load the page it could be one of following reasons\n // 1. Page doesn't exists\n // 2. Page does exist in a different zone\n // 3. Internal error while loading the page\n // So, doing a hard reload is the proper way to deal with this.\n\n window.location.href = as; // Changing the URL doesn't block executing the current code path.\n // So let's throw a cancellation error stop the routing logic.\n\n throw buildCancellationError();\n\n case 6:\n _context2.prev = 6;\n _context2.next = 9;\n return this.fetchComponent('/_error');\n\n case 9:\n _yield$this$fetchComp = _context2.sent;\n Component = _yield$this$fetchComp.page;\n routeInfo = {\n Component: Component,\n err: err,\n error: err\n };\n _context2.prev = 12;\n _context2.next = 15;\n return this.getInitialProps(Component, {\n err: err,\n pathname: pathname,\n query: query\n });\n\n case 15:\n routeInfo.props = _context2.sent;\n _context2.next = 22;\n break;\n\n case 18:\n _context2.prev = 18;\n _context2.t0 = _context2[\"catch\"](12);\n console.error('Error in error page `getInitialProps`: ', _context2.t0);\n routeInfo.props = {};\n\n case 22:\n return _context2.abrupt(\"return\", routeInfo);\n\n case 25:\n _context2.prev = 25;\n _context2.t1 = _context2[\"catch\"](6);\n return _context2.abrupt(\"return\", this.handleRouteInfoError(_context2.t1, pathname, query, as, true));\n\n case 28:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this, [[6, 25], [12, 18]]);\n }));\n\n function handleRouteInfoError(_x5, _x6, _x7, _x8, _x9) {\n return _handleRouteInfoError.apply(this, arguments);\n }\n\n return handleRouteInfoError;\n }()\n }, {\n key: \"getRouteInfo\",\n value: function () {\n var _getRouteInfo = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(route, pathname, query, as) {\n var _this2 = this;\n\n var shallow,\n cachedRouteInfo,\n routeInfo,\n Component,\n __N_SSG,\n __N_SSP,\n _require,\n isValidElementType,\n dataHref,\n props,\n _args3 = arguments;\n\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n shallow = _args3.length > 4 && _args3[4] !== undefined ? _args3[4] : false;\n _context3.prev = 1;\n cachedRouteInfo = this.components[route];\n\n if (!(shallow && cachedRouteInfo && this.route === route)) {\n _context3.next = 5;\n break;\n }\n\n return _context3.abrupt(\"return\", cachedRouteInfo);\n\n case 5:\n if (!cachedRouteInfo) {\n _context3.next = 9;\n break;\n }\n\n _context3.t0 = cachedRouteInfo;\n _context3.next = 12;\n break;\n\n case 9:\n _context3.next = 11;\n return this.fetchComponent(route).then(function (res) {\n return {\n Component: res.page,\n __N_SSG: res.mod.__N_SSG,\n __N_SSP: res.mod.__N_SSP\n };\n });\n\n case 11:\n _context3.t0 = _context3.sent;\n\n case 12:\n routeInfo = _context3.t0;\n Component = routeInfo.Component, __N_SSG = routeInfo.__N_SSG, __N_SSP = routeInfo.__N_SSP;\n\n if (false) {}\n\n _require = __webpack_require__(/*! react-is */ \"./node_modules/react-is/index.js\"), isValidElementType = _require.isValidElementType;\n\n if (isValidElementType(Component)) {\n _context3.next = 18;\n break;\n }\n\n throw new Error(\"The default export is not a React Component in page: \\\"\".concat(pathname, \"\\\"\"));\n\n case 18:\n if (__N_SSG || __N_SSP) {\n dataHref = this.pageLoader.getDataHref((0, _utils.formatWithValidation)({\n pathname: pathname,\n query: query\n }), as, __N_SSG);\n }\n\n _context3.next = 21;\n return this._getData(function () {\n return __N_SSG ? _this2._getStaticData(dataHref) : __N_SSP ? _this2._getServerData(dataHref) : _this2.getInitialProps(Component, // we provide AppTree later so this needs to be `any`\n {\n pathname: pathname,\n query: query,\n asPath: as\n });\n });\n\n case 21:\n props = _context3.sent;\n routeInfo.props = props;\n this.components[route] = routeInfo;\n return _context3.abrupt(\"return\", routeInfo);\n\n case 27:\n _context3.prev = 27;\n _context3.t1 = _context3[\"catch\"](1);\n return _context3.abrupt(\"return\", this.handleRouteInfoError(_context3.t1, pathname, query, as));\n\n case 30:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, this, [[1, 27]]);\n }));\n\n function getRouteInfo(_x10, _x11, _x12, _x13) {\n return _getRouteInfo.apply(this, arguments);\n }\n\n return getRouteInfo;\n }()\n }, {\n key: \"set\",\n value: function set(route, pathname, query, as, data) {\n this.isFallback = false;\n this.route = route;\n this.pathname = pathname;\n this.query = query;\n this.asPath = as;\n return this.notify(data);\n }\n /**\n * Callback to execute before replacing router state\n * @param cb callback to be executed\n */\n\n }, {\n key: \"beforePopState\",\n value: function beforePopState(cb) {\n this._bps = cb;\n }\n }, {\n key: \"onlyAHashChange\",\n value: function onlyAHashChange(as) {\n if (!this.asPath) return false;\n\n var _this$asPath$split = this.asPath.split('#'),\n _this$asPath$split2 = _slicedToArray(_this$asPath$split, 2),\n oldUrlNoHash = _this$asPath$split2[0],\n oldHash = _this$asPath$split2[1];\n\n var _as$split = as.split('#'),\n _as$split2 = _slicedToArray(_as$split, 2),\n newUrlNoHash = _as$split2[0],\n newHash = _as$split2[1]; // Makes sure we scroll to the provided hash if the url/hash are the same\n\n\n if (newHash && oldUrlNoHash === newUrlNoHash && oldHash === newHash) {\n return true;\n } // If the urls are change, there's more than a hash change\n\n\n if (oldUrlNoHash !== newUrlNoHash) {\n return false;\n } // If the hash has changed, then it's a hash only change.\n // This check is necessary to handle both the enter and\n // leave hash === '' cases. The identity case falls through\n // and is treated as a next reload.\n\n\n return oldHash !== newHash;\n }\n }, {\n key: \"scrollToHash\",\n value: function scrollToHash(as) {\n var _as$split3 = as.split('#'),\n _as$split4 = _slicedToArray(_as$split3, 2),\n hash = _as$split4[1]; // Scroll to top if the hash is just `#` with no value\n\n\n if (hash === '') {\n window.scrollTo(0, 0);\n return;\n } // First we check if the element by id is found\n\n\n var idEl = document.getElementById(hash);\n\n if (idEl) {\n idEl.scrollIntoView();\n return;\n } // If there's no element with the id, we check the `name` property\n // To mirror browsers\n\n\n var nameEl = document.getElementsByName(hash)[0];\n\n if (nameEl) {\n nameEl.scrollIntoView();\n }\n }\n }, {\n key: \"urlIsNew\",\n value: function urlIsNew(asPath) {\n return this.asPath !== asPath;\n }\n /**\n * Prefetch page code, you may wait for the data during page rendering.\n * This feature only works in production!\n * @param url the href of prefetched page\n * @param asPath the as path of the prefetched page\n */\n\n }, {\n key: \"prefetch\",\n value: function () {\n var _prefetch = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(url) {\n var asPath,\n options,\n parsed,\n pathname,\n route,\n _args4 = arguments;\n return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n asPath = _args4.length > 1 && _args4[1] !== undefined ? _args4[1] : url;\n options = _args4.length > 2 && _args4[2] !== undefined ? _args4[2] : {};\n parsed = tryParseRelativeUrl(url);\n\n if (parsed) {\n _context4.next = 5;\n break;\n }\n\n return _context4.abrupt(\"return\");\n\n case 5:\n pathname = parsed.pathname; // Prefetch is not supported in development mode because it would trigger on-demand-entries\n\n if (false) {}\n\n return _context4.abrupt(\"return\");\n\n case 8:\n route = (0, _normalizeTrailingSlash.removePathTrailingSlash)(pathname);\n _context4.next = 11;\n return Promise.all([this.pageLoader.prefetchData(url, asPath), this.pageLoader[options.priority ? 'loadPage' : 'prefetch'](route)]);\n\n case 11:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4, this);\n }));\n\n function prefetch(_x14) {\n return _prefetch.apply(this, arguments);\n }\n\n return prefetch;\n }()\n }, {\n key: \"fetchComponent\",\n value: function () {\n var _fetchComponent = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(route) {\n var cancelled, cancel, componentResult, error;\n return _regeneratorRuntime.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n cancelled = false;\n\n cancel = this.clc = function () {\n cancelled = true;\n };\n\n _context5.next = 4;\n return this.pageLoader.loadPage(route);\n\n case 4:\n componentResult = _context5.sent;\n\n if (!cancelled) {\n _context5.next = 9;\n break;\n }\n\n error = new Error(\"Abort fetching component for route: \\\"\".concat(route, \"\\\"\"));\n error.cancelled = true;\n throw error;\n\n case 9:\n if (cancel === this.clc) {\n this.clc = null;\n }\n\n return _context5.abrupt(\"return\", componentResult);\n\n case 11:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5, this);\n }));\n\n function fetchComponent(_x15) {\n return _fetchComponent.apply(this, arguments);\n }\n\n return fetchComponent;\n }()\n }, {\n key: \"_getData\",\n value: function _getData(fn) {\n var _this3 = this;\n\n var cancelled = false;\n\n var cancel = function cancel() {\n cancelled = true;\n };\n\n this.clc = cancel;\n return fn().then(function (data) {\n if (cancel === _this3.clc) {\n _this3.clc = null;\n }\n\n if (cancelled) {\n var err = new Error('Loading initial props cancelled');\n err.cancelled = true;\n throw err;\n }\n\n return data;\n });\n }\n }, {\n key: \"_getStaticData\",\n value: function _getStaticData(dataHref) {\n var _this4 = this;\n\n var _URL = new URL(dataHref, window.location.href),\n cacheKey = _URL.href;\n\n if (false) {}\n\n return fetchNextData(dataHref, this.isSsr).then(function (data) {\n _this4.sdc[cacheKey] = data;\n return data;\n });\n }\n }, {\n key: \"_getServerData\",\n value: function _getServerData(dataHref) {\n return fetchNextData(dataHref, this.isSsr);\n }\n }, {\n key: \"getInitialProps\",\n value: function getInitialProps(Component, ctx) {\n var App = this.components['/_app'].Component;\n\n var AppTree = this._wrapApp(App);\n\n ctx.AppTree = AppTree;\n return (0, _utils.loadGetInitialProps)(App, {\n AppTree: AppTree,\n Component: Component,\n router: this,\n ctx: ctx\n });\n }\n }, {\n key: \"abortComponentLoad\",\n value: function abortComponentLoad(as) {\n if (this.clc) {\n Router.events.emit('routeChangeError', buildCancellationError(), as);\n this.clc();\n this.clc = null;\n }\n }\n }, {\n key: \"notify\",\n value: function notify(data) {\n return this.sub(data, this.components['/_app'].Component);\n }\n }], [{\n key: \"_rewriteUrlForNextExport\",\n value: function _rewriteUrlForNextExport(url) {\n if (false) { var rewriteUrlForNextExport; } else {\n return url;\n }\n }\n }]);\n\n return Router;\n}();\n\nexports[\"default\"] = Router;\nRouter.events = (0, _mitt[\"default\"])();\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.i);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uLy4uLy4uL25leHQtc2VydmVyL2xpYi9yb3V0ZXIvcm91dGVyLnRzPzM1YjgiXSwibmFtZXMiOlsiYmFzZVBhdGgiLCJwcm9jZXNzIiwiT2JqZWN0IiwiY2FuY2VsbGVkIiwicGF0aCIsImJhc2UiLCJ1cmxBc1N0cmluZyIsImZpbmFsVXJsIiwidXJsIiwiYWRkQmFzZVBhdGgiLCJyZXNvbHZlSHJlZiIsInJvdXRlciIsImFzIiwibWFudWFsU2Nyb2xsUmVzdG9yYXRpb24iLCJjcmVkZW50aWFscyIsInJlcyIsImF0dGVtcHRzIiwiZmV0Y2hSZXRyeSIsImlzU2VydmVyUmVuZGVyIiwiZXJyIiwiUm91dGVyIiwiY29uc3RydWN0b3IiLCJyb3V0ZSIsInBhdGhuYW1lIiwicXVlcnkiLCJhc1BhdGgiLCJjb21wb25lbnRzIiwic2RjIiwic3ViIiwiY2xjIiwicGFnZUxvYWRlciIsIl9icHMiLCJldmVudHMiLCJfd3JhcEFwcCIsImlzU3NyIiwiaXNGYWxsYmFjayIsIl9pbkZsaWdodFJvdXRlIiwiZSIsImNvbnNvbGUiLCJDb21wb25lbnQiLCJwcm9wcyIsIl9fTl9TU0ciLCJpbml0aWFsUHJvcHMiLCJfX05fU1NQIiwiX19ORVhUX0RBVEFfXyIsIndpbmRvdyIsIm1vZCIsImRhdGEiLCJuZXdEYXRhIiwicmVsb2FkIiwib3B0aW9ucyIsInByZXBhcmVVcmxBcyIsIlNUIiwicGVyZm9ybWFuY2UiLCJjbGVhbmVkQXMiLCJkZWxCYXNlUGF0aCIsInBhcnNlZCIsInRyeVBhcnNlUmVsYXRpdmVVcmwiLCJtZXRob2QiLCJzaGFsbG93Iiwicm91dGVSZWdleCIsInJvdXRlTWF0Y2giLCJtaXNzaW5nUGFyYW1zIiwicGFyYW0iLCJhc1BhdGhuYW1lIiwicm91dGVJbmZvIiwiYXBwQ29tcCIsIl9fTiIsImJ1aWxkQ2FuY2VsbGF0aW9uRXJyb3IiLCJwYWdlIiwiZXJyb3IiLCJjYWNoZWRSb3V0ZUluZm8iLCJyZXF1aXJlIiwiaXNWYWxpZEVsZW1lbnRUeXBlIiwiZGF0YUhyZWYiLCJvbmx5QUhhc2hDaGFuZ2UiLCJuZXdIYXNoIiwib2xkVXJsTm9IYXNoIiwib2xkSGFzaCIsInNjcm9sbFRvSGFzaCIsImhhc2giLCJpZEVsIiwiZG9jdW1lbnQiLCJuYW1lRWwiLCJ1cmxJc05ldyIsIlByb21pc2UiLCJjYW5jZWwiLCJjb21wb25lbnRSZXN1bHQiLCJmbiIsIl9nZXRTdGF0aWNEYXRhIiwiaHJlZiIsImZldGNoTmV4dERhdGEiLCJfZ2V0U2VydmVyRGF0YSIsImdldEluaXRpYWxQcm9wcyIsIkFwcFRyZWUiLCJjdHgiLCJhYm9ydENvbXBvbmVudExvYWQiLCJub3RpZnkiLCJ1cGRhdGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUtBOztBQUNBOztBQVFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7QUFuQkE7QUFBQTtBQUNBOzs7QUF1QkEsSUFBTUEsUUFBUSxHQUFJQyxVQUFsQjs7QUFFQSxrQ0FBa0M7QUFDaEMsU0FBT0MsTUFBTSxDQUFOQSxPQUFjLFVBQWRBLGlCQUFjLENBQWRBLEVBQTRDO0FBQ2pEQyxhQUFTLEVBRFg7QUFBbUQsR0FBNUNELENBQVA7QUFLSzs7QUFBQSwyQkFBMkM7QUFDaEQsU0FBT0YsUUFBUSxHQUNYSSxJQUFJLEtBQUpBLE1BQ0Usd0RBREZBLFFBQ0UsQ0FERkEsR0FFRUosUUFBUSxHQUhDLE9BQWY7QUFPSzs7QUFBQSwyQkFBMkM7QUFDaEQsU0FBT0ksSUFBSSxDQUFKQSxNQUFXSixRQUFRLENBQW5CSSxXQUFQO0FBS0Y7QUFBQTs7Ozs7O0FBSU8sd0NBQTZEO0FBQ2xFO0FBQ0EsTUFBTUMsSUFBSSxHQUFHLHFCQUFiLFVBQWEsQ0FBYjtBQUNBLE1BQU1DLFdBQVcsR0FDZixrQ0FBa0MsaUNBRHBDLElBQ29DLENBRHBDO0FBRUEsTUFBTUMsUUFBUSxHQUFHLHFCQUFqQixJQUFpQixDQUFqQjtBQUNBQSxVQUFRLENBQVJBLFdBQW9CLHdEQUEyQkEsUUFBUSxDQUF2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QUFwQjtBQUdGRTs7O29DQUFlLFMsRUFBQSxHLEVBR0M7QUFBQSxVQUNSLEdBRFEsR0FDYSxnQkFBM0IsT0FBMkIsQ0FEYixDQUNOdEQsU0FETTs7QUFFZCxVQUFNdUQsT0FBTyxHQUFHLGNBQWhCLEdBQWdCLENBQWhCOztBQUNBQyxTQUFHLENBQUhBO0FBQ0EsYUFBTyxxQ0FBaUQ7QUFDdERELGVBRHNELEVBQ3REQSxPQURzRDtBQUV0RHZELGlCQUZzRCxFQUV0REEsU0FGc0Q7QUFHdEQ1QixjQUFNLEVBSGdEO0FBSXREb0YsV0FKRixFQUlFQTtBQUpzRCxPQUFqRCxDQUFQO0FBUUZDOzs7dUNBQWtCLEUsRUFBbUI7QUFDbkMsVUFBSSxLQUFKLEtBQWM7QUFDWjVFLGNBQU0sQ0FBTkEsZ0NBQXVDZ0Qsc0JBQXZDaEQ7QUFDQTtBQUNBO0FBRUg7QUFFRDZFOzs7MkJBQU0sSSxFQUFpQztBQUNyQyxhQUFPLGVBQWUseUJBQXRCLFNBQU8sQ0FBUDtBQXJ1QjhDOzs7NkNBMkloRCxHLEVBQXFEO0FBQ25ELFVBQUloRyxLQUFKLEVBQThDLGdDQUE5QyxNQUlPO0FBQ0w7QUFFSDtBQW1ERGlHOzs7Ozs7O0FBdE1tQjlFLE0sQ0F1QlpZLE1BdkJZWixHQXVCVSx1QkF2QlZBIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9uZXh0LXNlcnZlci9saWIvcm91dGVyL3JvdXRlci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGdsb2JhbCBfX05FWFRfREFUQV9fICovXG4vLyB0c2xpbnQ6ZGlzYWJsZTpuby1jb25zb2xlXG5pbXBvcnQgeyBQYXJzZWRVcmxRdWVyeSB9IGZyb20gJ3F1ZXJ5c3RyaW5nJ1xuaW1wb3J0IHsgQ29tcG9uZW50VHlwZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgVXJsT2JqZWN0IH0gZnJvbSAndXJsJ1xuaW1wb3J0IG1pdHQsIHsgTWl0dEVtaXR0ZXIgfSBmcm9tICcuLi9taXR0J1xuaW1wb3J0IHtcbiAgQXBwQ29udGV4dFR5cGUsXG4gIGZvcm1hdFdpdGhWYWxpZGF0aW9uLFxuICBnZXRVUkwsXG4gIGxvYWRHZXRJbml0aWFsUHJvcHMsXG4gIE5leHRQYWdlQ29udGV4dCxcbiAgU1QsXG59IGZyb20gJy4uL3V0aWxzJ1xuaW1wb3J0IHsgaXNEeW5hbWljUm91dGUgfSBmcm9tICcuL3V0aWxzL2lzLWR5bmFtaWMnXG5pbXBvcnQgeyBnZXRSb3V0ZU1hdGNoZXIgfSBmcm9tICcuL3V0aWxzL3JvdXRlLW1hdGNoZXInXG5pbXBvcnQgeyBnZXRSb3V0ZVJlZ2V4IH0gZnJvbSAnLi91dGlscy9yb3V0ZS1yZWdleCdcbmltcG9ydCB7IHNlYXJjaFBhcmFtc1RvVXJsUXVlcnkgfSBmcm9tICcuL3V0aWxzL3NlYXJjaC1wYXJhbXMtdG8tdXJsLXF1ZXJ5J1xuaW1wb3J0IHsgcGFyc2VSZWxhdGl2ZVVybCB9IGZyb20gJy4vdXRpbHMvcGFyc2UtcmVsYXRpdmUtdXJsJ1xuaW1wb3J0IHtcbiAgcmVtb3ZlUGF0aFRyYWlsaW5nU2xhc2gsXG4gIG5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoLFxufSBmcm9tICcuLi8uLi8uLi9jbGllbnQvbm9ybWFsaXplLXRyYWlsaW5nLXNsYXNoJ1xuXG5jb25zdCBiYXNlUGF0aCA9IChwcm9jZXNzLmVudi5fX05FWFRfUk9VVEVSX0JBU0VQQVRIIGFzIHN0cmluZykgfHwgJydcblxuZnVuY3Rpb24gYnVpbGRDYW5jZWxsYXRpb25FcnJvcigpIHtcbiAgcmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IEVycm9yKCdSb3V0ZSBDYW5jZWxsZWQnKSwge1xuICAgIGNhbmNlbGxlZDogdHJ1ZSxcbiAgfSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFkZEJhc2VQYXRoKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBiYXNlUGF0aFxuICAgID8gcGF0aCA9PT0gJy8nXG4gICAgICA/IG5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoKGJhc2VQYXRoKVxuICAgICAgOiBiYXNlUGF0aCArIHBhdGhcbiAgICA6IHBhdGhcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlbEJhc2VQYXRoKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBwYXRoLnNsaWNlKGJhc2VQYXRoLmxlbmd0aCkgfHwgJy8nXG59XG5cbnR5cGUgVXJsID0gVXJsT2JqZWN0IHwgc3RyaW5nXG5cbi8qKlxuICogUmVzb2x2ZXMgYSBnaXZlbiBoeXBlcmxpbmsgd2l0aCBhIGNlcnRhaW4gcm91dGVyIHN0YXRlIChiYXNlUGF0aCBub3QgaW5jbHVkZWQpLlxuICogUHJlc2VydmVzIGFic29sdXRlIHVybHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlSHJlZihjdXJyZW50UGF0aDogc3RyaW5nLCBocmVmOiBVcmwpOiBzdHJpbmcge1xuICAvLyB3ZSB1c2UgYSBkdW1teSBiYXNlIHVybCBmb3IgcmVsYXRpdmUgdXJsc1xuICBjb25zdCBiYXNlID0gbmV3IFVSTChjdXJyZW50UGF0aCwgJ2h0dHA6Ly9uJylcbiAgY29uc3QgdXJsQXNTdHJpbmcgPVxuICAgIHR5cGVvZiBocmVmID09PSAnc3RyaW5nJyA/IGhyZWYgOiBmb3JtYXRXaXRoVmFsaWRhdGlvbihocmVmKVxuICBjb25zdCBmaW5hbFVybCA9IG5ldyBVUkwodXJsQXNTdHJpbmcsIGJhc2UpXG4gIGZpbmFsVXJsLnBhdGhuYW1lID0gbm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2goZmluYWxVcmwucGF0aG5hbWUpXG4gIC8vIGlmIHRoZSBvcmlnaW4gZGlkbid0IGNoYW5nZSwgaXQgbWVhbnMgd2UgcmVjZWl2ZWQgYSByZWxhdGl2ZSBocmVmXG4gIHJldHVybiBmaW5hbFVybC5vcmlnaW4gPT09IGJhc2Uub3JpZ2luXG4gICAgPyBmaW5hbFVybC5ocmVmLnNsaWNlKGZpbmFsVXJsLm9yaWdpbi5sZW5ndGgpXG4gICAgOiBmaW5hbFVybC5ocmVmXG59XG5cbmZ1bmN0aW9uIHByZXBhcmVVcmxBcyhyb3V0ZXI6IE5leHRSb3V0ZXIsIHVybDogVXJsLCBhczogVXJsKSB7XG4gIC8vIElmIHVybCBhbmQgYXMgcHJvdmlkZWQgYXMgYW4gb2JqZWN0IHJlcHJlc2VudGF0aW9uLFxuICAvLyB3ZSdsbCBmb3JtYXQgdGhlbSBpbnRvIHRoZSBzdHJpbmcgdmVyc2lvbiBoZXJlLlxuICByZXR1cm4ge1xuICAgIHVybDogYWRkQmFzZVBhdGgocmVzb2x2ZUhyZWYocm91dGVyLnBhdGhuYW1lLCB1cmwpKSxcbiAgICBhczogYXMgPyBhZGRCYXNlUGF0aChyZXNvbHZlSHJlZihyb3V0ZXIucGF0aG5hbWUsIGFzKSkgOiBhcyxcbiAgfVxufVxuXG5mdW5jdGlvbiB0cnlQYXJzZVJlbGF0aXZlVXJsKFxuICB1cmw6IHN0cmluZ1xuKTogbnVsbCB8IFJldHVyblR5cGU8dHlwZW9mIHBhcnNlUmVsYXRpdmVVcmw+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gcGFyc2VSZWxhdGl2ZVVybCh1cmwpXG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBJbnZhbGlkIGhyZWYgcGFzc2VkIHRvIHJvdXRlcjogJHt1cmx9IGh0dHBzOi8vZXJyLnNoL3ZlcmNlbC9uZXh0LmpzL2ludmFsaWQtaHJlZi1wYXNzZWRgXG4gICAgICApXG4gICAgfVxuICAgIHJldHVybiBudWxsXG4gIH1cbn1cblxudHlwZSBDb21wb25lbnRSZXMgPSB7IHBhZ2U6IENvbXBvbmVudFR5cGU7IG1vZDogYW55IH1cblxuZXhwb3J0IHR5cGUgQmFzZVJvdXRlciA9IHtcbiAgcm91dGU6IHN0cmluZ1xuICBwYXRobmFtZTogc3RyaW5nXG4gIHF1ZXJ5OiBQYXJzZWRVcmxRdWVyeVxuICBhc1BhdGg6IHN0cmluZ1xuICBiYXNlUGF0aDogc3RyaW5nXG59XG5cbmV4cG9ydCB0eXBlIE5leHRSb3V0ZXIgPSBCYXNlUm91dGVyICZcbiAgUGljazxcbiAgICBSb3V0ZXIsXG4gICAgfCAncHVzaCdcbiAgICB8ICdyZXBsYWNlJ1xuICAgIHwgJ3JlbG9hZCdcbiAgICB8ICdiYWNrJ1xuICAgIHwgJ3ByZWZldGNoJ1xuICAgIHwgJ2JlZm9yZVBvcFN0YXRlJ1xuICAgIHwgJ2V2ZW50cydcbiAgICB8ICdpc0ZhbGxiYWNrJ1xuICA+XG5cbmV4cG9ydCB0eXBlIFByZWZldGNoT3B0aW9ucyA9IHtcbiAgcHJpb3JpdHk/OiBib29sZWFuXG59XG5cbnR5cGUgUm91dGVJbmZvID0ge1xuICBDb21wb25lbnQ6IENvbXBvbmVudFR5cGVcbiAgX19OX1NTRz86IGJvb2xlYW5cbiAgX19OX1NTUD86IGJvb2xlYW5cbiAgcHJvcHM/OiBhbnlcbiAgZXJyPzogRXJyb3JcbiAgZXJyb3I/OiBhbnlcbn1cblxudHlwZSBTdWJzY3JpcHRpb24gPSAoZGF0YTogUm91dGVJbmZvLCBBcHA/OiBDb21wb25lbnRUeXBlKSA9PiBQcm9taXNlPHZvaWQ+XG5cbnR5cGUgQmVmb3JlUG9wU3RhdGVDYWxsYmFjayA9IChzdGF0ZTogYW55KSA9PiBib29sZWFuXG5cbnR5cGUgQ29tcG9uZW50TG9hZENhbmNlbCA9ICgoKSA9PiB2b2lkKSB8IG51bGxcblxudHlwZSBIaXN0b3J5TWV0aG9kID0gJ3JlcGxhY2VTdGF0ZScgfCAncHVzaFN0YXRlJ1xuXG5jb25zdCBtYW51YWxTY3JvbGxSZXN0b3JhdGlvbiA9XG4gIHByb2Nlc3MuZW52Ll9fTkVYVF9TQ1JPTExfUkVTVE9SQVRJT04gJiZcbiAgdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgJ3Njcm9sbFJlc3RvcmF0aW9uJyBpbiB3aW5kb3cuaGlzdG9yeVxuXG5mdW5jdGlvbiBmZXRjaFJldHJ5KHVybDogc3RyaW5nLCBhdHRlbXB0czogbnVtYmVyKTogUHJvbWlzZTxhbnk+IHtcbiAgcmV0dXJuIGZldGNoKHVybCwge1xuICAgIC8vIENvb2tpZXMgYXJlIHJlcXVpcmVkIHRvIGJlIHByZXNlbnQgZm9yIE5leHQuanMnIFNTRyBcIlByZXZpZXcgTW9kZVwiLlxuICAgIC8vIENvb2tpZXMgbWF5IGFsc28gYmUgcmVxdWlyZWQgZm9yIGBnZXRTZXJ2ZXJTaWRlUHJvcHNgLlxuICAgIC8vXG4gICAgLy8gPiBgZmV0Y2hgIHdvbuKAmXQgc2VuZCBjb29raWVzLCB1bmxlc3MgeW91IHNldCB0aGUgY3JlZGVudGlhbHMgaW5pdFxuICAgIC8vID4gb3B0aW9uLlxuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9GZXRjaF9BUEkvVXNpbmdfRmV0Y2hcbiAgICAvL1xuICAgIC8vID4gRm9yIG1heGltdW0gYnJvd3NlciBjb21wYXRpYmlsaXR5IHdoZW4gaXQgY29tZXMgdG8gc2VuZGluZyAmXG4gICAgLy8gPiByZWNlaXZpbmcgY29va2llcywgYWx3YXlzIHN1cHBseSB0aGUgYGNyZWRlbnRpYWxzOiAnc2FtZS1vcmlnaW4nYFxuICAgIC8vID4gb3B0aW9uIGluc3RlYWQgb2YgcmVseWluZyBvbiB0aGUgZGVmYXVsdC5cbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZ2l0aHViL2ZldGNoI2NhdmVhdHNcbiAgICBjcmVkZW50aWFsczogJ3NhbWUtb3JpZ2luJyxcbiAgfSkudGhlbigocmVzKSA9PiB7XG4gICAgaWYgKCFyZXMub2spIHtcbiAgICAgIGlmIChhdHRlbXB0cyA+IDEgJiYgcmVzLnN0YXR1cyA+PSA1MDApIHtcbiAgICAgICAgcmV0dXJuIGZldGNoUmV0cnkodXJsLCBhdHRlbXB0cyAtIDEpXG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBsb2FkIHN0YXRpYyBwcm9wc2ApXG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcy5qc29uKClcbiAgfSlcbn1cblxuZnVuY3Rpb24gZmV0Y2hOZXh0RGF0YShkYXRhSHJlZjogc3RyaW5nLCBpc1NlcnZlclJlbmRlcjogYm9vbGVhbikge1xuICByZXR1cm4gZmV0Y2hSZXRyeShkYXRhSHJlZiwgaXNTZXJ2ZXJSZW5kZXIgPyAzIDogMSkuY2F0Y2goKGVycjogRXJyb3IpID0+IHtcbiAgICAvLyBXZSBzaG91bGQgb25seSB0cmlnZ2VyIGEgc2VydmVyLXNpZGUgdHJhbnNpdGlvbiBpZiB0aGlzIHdhcyBjYXVzZWRcbiAgICAvLyBvbiBhIGNsaWVudC1zaWRlIHRyYW5zaXRpb24uIE90aGVyd2lzZSwgd2UnZCBnZXQgaW50byBhbiBpbmZpbml0ZVxuICAgIC8vIGxvb3AuXG4gICAgaWYgKCFpc1NlcnZlclJlbmRlcikge1xuICAgICAgOyhlcnIgYXMgYW55KS5jb2RlID0gJ1BBR0VfTE9BRF9FUlJPUidcbiAgICB9XG4gICAgdGhyb3cgZXJyXG4gIH0pXG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJvdXRlciBpbXBsZW1lbnRzIEJhc2VSb3V0ZXIge1xuICByb3V0ZTogc3RyaW5nXG4gIHBhdGhuYW1lOiBzdHJpbmdcbiAgcXVlcnk6IFBhcnNlZFVybFF1ZXJ5XG4gIGFzUGF0aDogc3RyaW5nXG4gIGJhc2VQYXRoOiBzdHJpbmdcblxuICAvKipcbiAgICogTWFwIG9mIGFsbCBjb21wb25lbnRzIGxvYWRlZCBpbiBgUm91dGVyYFxuICAgKi9cbiAgY29tcG9uZW50czogeyBbcGF0aG5hbWU6IHN0cmluZ106IFJvdXRlSW5mbyB9XG4gIC8vIFN0YXRpYyBEYXRhIENhY2hlXG4gIHNkYzogeyBbYXNQYXRoOiBzdHJpbmddOiBvYmplY3QgfSA9IHt9XG4gIHN1YjogU3Vic2NyaXB0aW9uXG4gIGNsYzogQ29tcG9uZW50TG9hZENhbmNlbFxuICBwYWdlTG9hZGVyOiBhbnlcbiAgX2JwczogQmVmb3JlUG9wU3RhdGVDYWxsYmFjayB8IHVuZGVmaW5lZFxuICBldmVudHM6IE1pdHRFbWl0dGVyXG4gIF93cmFwQXBwOiAoQXBwOiBDb21wb25lbnRUeXBlKSA9PiBhbnlcbiAgaXNTc3I6IGJvb2xlYW5cbiAgaXNGYWxsYmFjazogYm9vbGVhblxuICBfaW5GbGlnaHRSb3V0ZT86IHN0cmluZ1xuXG4gIHN0YXRpYyBldmVudHM6IE1pdHRFbWl0dGVyID0gbWl0dCgpXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcGF0aG5hbWU6IHN0cmluZyxcbiAgICBxdWVyeTogUGFyc2VkVXJsUXVlcnksXG4gICAgYXM6IHN0cmluZyxcbiAgICB7XG4gICAgICBpbml0aWFsUHJvcHMsXG4gICAgICBwYWdlTG9hZGVyLFxuICAgICAgQXBwLFxuICAgICAgd3JhcEFwcCxcbiAgICAgIENvbXBvbmVudCxcbiAgICAgIGVycixcbiAgICAgIHN1YnNjcmlwdGlvbixcbiAgICAgIGlzRmFsbGJhY2ssXG4gICAgfToge1xuICAgICAgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb25cbiAgICAgIGluaXRpYWxQcm9wczogYW55XG4gICAgICBwYWdlTG9hZGVyOiBhbnlcbiAgICAgIENvbXBvbmVudDogQ29tcG9uZW50VHlwZVxuICAgICAgQXBwOiBDb21wb25lbnRUeXBlXG4gICAgICB3cmFwQXBwOiAoQXBwOiBDb21wb25lbnRUeXBlKSA9PiBhbnlcbiAgICAgIGVycj86IEVycm9yXG4gICAgICBpc0ZhbGxiYWNrOiBib29sZWFuXG4gICAgfVxuICApIHtcbiAgICAvLyByZXByZXNlbnRzIHRoZSBjdXJyZW50IGNvbXBvbmVudCBrZXlcbiAgICB0aGlzLnJvdXRlID0gcmVtb3ZlUGF0aFRyYWlsaW5nU2xhc2gocGF0aG5hbWUpXG5cbiAgICAvLyBzZXQgdXAgdGhlIGNvbXBvbmVudCBjYWNoZSAoYnkgcm91dGUga2V5cylcbiAgICB0aGlzLmNvbXBvbmVudHMgPSB7fVxuICAgIC8vIFdlIHNob3VsZCBub3Qga2VlcCB0aGUgY2FjaGUsIGlmIHRoZXJlJ3MgYW4gZXJyb3JcbiAgICAvLyBPdGhlcndpc2UsIHRoaXMgY2F1c2UgaXNzdWVzIHdoZW4gd2hlbiBnb2luZyBiYWNrIGFuZFxuICAgIC8vIGNvbWUgYWdhaW4gdG8gdGhlIGVycm9yZWQgcGFnZS5cbiAgICBpZiAocGF0aG5hbWUgIT09ICcvX2Vycm9yJykge1xuICAgICAgdGhpcy5jb21wb25lbnRzW3RoaXMucm91dGVdID0ge1xuICAgICAgICBDb21wb25lbnQsXG4gICAgICAgIHByb3BzOiBpbml0aWFsUHJvcHMsXG4gICAgICAgIGVycixcbiAgICAgICAgX19OX1NTRzogaW5pdGlhbFByb3BzICYmIGluaXRpYWxQcm9wcy5fX05fU1NHLFxuICAgICAgICBfX05fU1NQOiBpbml0aWFsUHJvcHMgJiYgaW5pdGlhbFByb3BzLl9fTl9TU1AsXG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5jb21wb25lbnRzWycvX2FwcCddID0geyBDb21wb25lbnQ6IEFwcCB9XG5cbiAgICAvLyBCYWNrd2FyZHMgY29tcGF0IGZvciBSb3V0ZXIucm91dGVyLmV2ZW50c1xuICAgIC8vIFRPRE86IFNob3VsZCBiZSByZW1vdmUgdGhlIGZvbGxvd2luZyBtYWpvciB2ZXJzaW9uIGFzIGl0IHdhcyBuZXZlciBkb2N1bWVudGVkXG4gICAgdGhpcy5ldmVudHMgPSBSb3V0ZXIuZXZlbnRzXG5cbiAgICB0aGlzLnBhZ2VMb2FkZXIgPSBwYWdlTG9hZGVyXG4gICAgdGhpcy5wYXRobmFtZSA9IHBhdGhuYW1lXG4gICAgdGhpcy5xdWVyeSA9IHF1ZXJ5XG4gICAgLy8gaWYgYXV0byBwcmVyZW5kZXJlZCBhbmQgZHluYW1pYyByb3V0ZSB3YWl0IHRvIHVwZGF0ZSBhc1BhdGhcbiAgICAvLyB1bnRpbCBhZnRlciBtb3VudCB0byBwcmV2ZW50IGh5ZHJhdGlvbiBtaXNtYXRjaFxuICAgIHRoaXMuYXNQYXRoID1cbiAgICAgIC8vIEB0cy1pZ25vcmUgdGhpcyBpcyB0ZW1wb3JhcmlseSBnbG9iYWwgKGF0dGFjaGVkIHRvIHdpbmRvdylcbiAgICAgIGlzRHluYW1pY1JvdXRlKHBhdGhuYW1lKSAmJiBfX05FWFRfREFUQV9fLmF1dG9FeHBvcnQgPyBwYXRobmFtZSA6IGFzXG4gICAgdGhpcy5iYXNlUGF0aCA9IGJhc2VQYXRoXG4gICAgdGhpcy5zdWIgPSBzdWJzY3JpcHRpb25cbiAgICB0aGlzLmNsYyA9IG51bGxcbiAgICB0aGlzLl93cmFwQXBwID0gd3JhcEFwcFxuICAgIC8vIG1ha2Ugc3VyZSB0byBpZ25vcmUgZXh0cmEgcG9wU3RhdGUgaW4gc2FmYXJpIG9uIG5hdmlnYXRpbmdcbiAgICAvLyBiYWNrIGZyb20gZXh0ZXJuYWwgc2l0ZVxuICAgIHRoaXMuaXNTc3IgPSB0cnVlXG5cbiAgICB0aGlzLmlzRmFsbGJhY2sgPSBpc0ZhbGxiYWNrXG5cbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIC8vIG1ha2Ugc3VyZSBcImFzXCIgZG9lc24ndCBzdGFydCB3aXRoIGRvdWJsZSBzbGFzaGVzIG9yIGVsc2UgaXQgY2FuXG4gICAgICAvLyB0aHJvdyBhbiBlcnJvciBhcyBpdCdzIGNvbnNpZGVyZWQgaW52YWxpZFxuICAgICAgaWYgKGFzLnN1YnN0cigwLCAyKSAhPT0gJy8vJykge1xuICAgICAgICAvLyBpbiBvcmRlciBmb3IgYGUuc3RhdGVgIHRvIHdvcmsgb24gdGhlIGBvbnBvcHN0YXRlYCBldmVudFxuICAgICAgICAvLyB3ZSBoYXZlIHRvIHJlZ2lzdGVyIHRoZSBpbml0aWFsIHJvdXRlIHVwb24gaW5pdGlhbGl6YXRpb25cblxuICAgICAgICB0aGlzLmNoYW5nZVN0YXRlKFxuICAgICAgICAgICdyZXBsYWNlU3RhdGUnLFxuICAgICAgICAgIGZvcm1hdFdpdGhWYWxpZGF0aW9uKHsgcGF0aG5hbWU6IGFkZEJhc2VQYXRoKHBhdGhuYW1lKSwgcXVlcnkgfSksXG4gICAgICAgICAgZ2V0VVJMKClcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncG9wc3RhdGUnLCB0aGlzLm9uUG9wU3RhdGUpXG5cbiAgICAgIC8vIGVuYWJsZSBjdXN0b20gc2Nyb2xsIHJlc3RvcmF0aW9uIGhhbmRsaW5nIHdoZW4gYXZhaWxhYmxlXG4gICAgICAvLyBvdGhlcndpc2UgZmFsbGJhY2sgdG8gYnJvd3NlcidzIGRlZmF1bHQgaGFuZGxpbmdcbiAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfU0NST0xMX1JFU1RPUkFUSU9OKSB7XG4gICAgICAgIGlmIChtYW51YWxTY3JvbGxSZXN0b3JhdGlvbikge1xuICAgICAgICAgIHdpbmRvdy5oaXN0b3J5LnNjcm9sbFJlc3RvcmF0aW9uID0gJ21hbnVhbCdcblxuICAgICAgICAgIGxldCBzY3JvbGxEZWJvdW5jZVRpbWVvdXQ6IHVuZGVmaW5lZCB8IE5vZGVKUy5UaW1lb3V0XG5cbiAgICAgICAgICBjb25zdCBkZWJvdW5jZWRTY3JvbGxTYXZlID0gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHNjcm9sbERlYm91bmNlVGltZW91dCkgY2xlYXJUaW1lb3V0KHNjcm9sbERlYm91bmNlVGltZW91dClcblxuICAgICAgICAgICAgc2Nyb2xsRGVib3VuY2VUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHsgdXJsLCBhczogY3VyQXMsIG9wdGlvbnMgfSA9IGhpc3Rvcnkuc3RhdGVcbiAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VTdGF0ZShcbiAgICAgICAgICAgICAgICAncmVwbGFjZVN0YXRlJyxcbiAgICAgICAgICAgICAgICB1cmwsXG4gICAgICAgICAgICAgICAgY3VyQXMsXG4gICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih7fSwgb3B0aW9ucywge1xuICAgICAgICAgICAgICAgICAgX05fWDogd2luZG93LnNjcm9sbFgsXG4gICAgICAgICAgICAgICAgICBfTl9ZOiB3aW5kb3cuc2Nyb2xsWSxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9LCAxMClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgZGVib3VuY2VkU2Nyb2xsU2F2ZSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIEBkZXByZWNhdGVkIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGV2ZW4gdGhvdWdoIGl0J3MgYSBwcml2YXRlIG1ldGhvZC5cbiAgc3RhdGljIF9yZXdyaXRlVXJsRm9yTmV4dEV4cG9ydCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9FWFBPUlRfVFJBSUxJTkdfU0xBU0gpIHtcbiAgICAgIGNvbnN0IHJld3JpdGVVcmxGb3JOZXh0RXhwb3J0ID0gcmVxdWlyZSgnLi9yZXdyaXRlLXVybC1mb3ItZXhwb3J0JylcbiAgICAgICAgLnJld3JpdGVVcmxGb3JOZXh0RXhwb3J0XG4gICAgICByZXR1cm4gcmV3cml0ZVVybEZvck5leHRFeHBvcnQodXJsKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdXJsXG4gICAgfVxuICB9XG5cbiAgb25Qb3BTdGF0ZSA9IChlOiBQb3BTdGF0ZUV2ZW50KTogdm9pZCA9PiB7XG4gICAgaWYgKCFlLnN0YXRlKSB7XG4gICAgICAvLyBXZSBnZXQgc3RhdGUgYXMgdW5kZWZpbmVkIGZvciB0d28gcmVhc29ucy5cbiAgICAgIC8vICAxLiBXaXRoIG9sZGVyIHNhZmFyaSAoPCA4KSBhbmQgb2xkZXIgY2hyb21lICg8IDM0KVxuICAgICAgLy8gIDIuIFdoZW4gdGhlIFVSTCBjaGFuZ2VkIHdpdGggI1xuICAgICAgLy9cbiAgICAgIC8vIEluIHRoZSBib3RoIGNhc2VzLCB3ZSBkb24ndCBuZWVkIHRvIHByb2NlZWQgYW5kIGNoYW5nZSB0aGUgcm91dGUuXG4gICAgICAvLyAoYXMgaXQncyBhbHJlYWR5IGNoYW5nZWQpXG4gICAgICAvLyBCdXQgd2UgY2FuIHNpbXBseSByZXBsYWNlIHRoZSBzdGF0ZSB3aXRoIHRoZSBuZXcgY2hhbmdlcy5cbiAgICAgIC8vIEFjdHVhbGx5LCBmb3IgKDEpIHdlIGRvbid0IG5lZWQgdG8gbm90aGluZy4gQnV0IGl0J3MgaGFyZCB0byBkZXRlY3QgdGhhdCBldmVudC5cbiAgICAgIC8vIFNvLCBkb2luZyB0aGUgZm9sbG93aW5nIGZvciAoMSkgZG9lcyBubyBoYXJtLlxuICAgICAgY29uc3QgeyBwYXRobmFtZSwgcXVlcnkgfSA9IHRoaXNcbiAgICAgIHRoaXMuY2hhbmdlU3RhdGUoXG4gICAgICAgICdyZXBsYWNlU3RhdGUnLFxuICAgICAgICBmb3JtYXRXaXRoVmFsaWRhdGlvbih7IHBhdGhuYW1lOiBhZGRCYXNlUGF0aChwYXRobmFtZSksIHF1ZXJ5IH0pLFxuICAgICAgICBnZXRVUkwoKVxuICAgICAgKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgeyB1cmwsIGFzLCBvcHRpb25zLCBfX04gfSA9IGUuc3RhdGVcbiAgICBpZiAoIV9fTikge1xuICAgICAgLy8gdGhpcyBoaXN0b3J5IHN0YXRlIHdhc24ndCBjcmVhdGVkIGJ5IG5leHQuanMgc28gaXQgY2FuIGJlIGlnbm9yZWRcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBjb25zdCB7IHBhdGhuYW1lIH0gPSBwYXJzZVJlbGF0aXZlVXJsKHVybClcblxuICAgIC8vIE1ha2Ugc3VyZSB3ZSBkb24ndCByZS1yZW5kZXIgb24gaW5pdGlhbCBsb2FkLFxuICAgIC8vIGNhbiBiZSBjYXVzZWQgYnkgbmF2aWdhdGluZyBiYWNrIGZyb20gYW4gZXh0ZXJuYWwgc2l0ZVxuICAgIGlmICh0aGlzLmlzU3NyICYmIGFzID09PSB0aGlzLmFzUGF0aCAmJiBwYXRobmFtZSA9PT0gdGhpcy5wYXRobmFtZSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gSWYgdGhlIGRvd25zdHJlYW0gYXBwbGljYXRpb24gcmV0dXJucyBmYWxzeSwgcmV0dXJuLlxuICAgIC8vIFRoZXkgd2lsbCB0aGVuIGJlIHJlc3BvbnNpYmxlIGZvciBoYW5kbGluZyB0aGUgZXZlbnQuXG4gICAgaWYgKHRoaXMuX2JwcyAmJiAhdGhpcy5fYnBzKGUuc3RhdGUpKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgaWYgKHR5cGVvZiB1cmwgPT09ICd1bmRlZmluZWQnIHx8IHR5cGVvZiBhcyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICdgcG9wc3RhdGVgIGV2ZW50IHRyaWdnZXJlZCBidXQgYGV2ZW50LnN0YXRlYCBkaWQgbm90IGhhdmUgYHVybGAgb3IgYGFzYCBodHRwczovL2Vyci5zaC92ZXJjZWwvbmV4dC5qcy9wb3BzdGF0ZS1zdGF0ZS1lbXB0eSdcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmNoYW5nZSgncmVwbGFjZVN0YXRlJywgdXJsLCBhcywgb3B0aW9ucylcbiAgfVxuXG4gIHVwZGF0ZShyb3V0ZTogc3RyaW5nLCBtb2Q6IGFueSkge1xuICAgIGNvbnN0IENvbXBvbmVudDogQ29tcG9uZW50VHlwZSA9IG1vZC5kZWZhdWx0IHx8IG1vZFxuICAgIGNvbnN0IGRhdGEgPSB0aGlzLmNvbXBvbmVudHNbcm91dGVdXG4gICAgaWYgKCFkYXRhKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCB1cGRhdGUgdW5hdmFpbGFibGUgcm91dGU6ICR7cm91dGV9YClcbiAgICB9XG5cbiAgICBjb25zdCBuZXdEYXRhID0gT2JqZWN0LmFzc2lnbih7fSwgZGF0YSwge1xuICAgICAgQ29tcG9uZW50LFxuICAgICAgX19OX1NTRzogbW9kLl9fTl9TU0csXG4gICAgICBfX05fU1NQOiBtb2QuX19OX1NTUCxcbiAgICB9KVxuICAgIHRoaXMuY29tcG9uZW50c1tyb3V0ZV0gPSBuZXdEYXRhXG5cbiAgICAvLyBwYWdlcy9fYXBwLmpzIHVwZGF0ZWRcbiAgICBpZiAocm91dGUgPT09ICcvX2FwcCcpIHtcbiAgICAgIHRoaXMubm90aWZ5KHRoaXMuY29tcG9uZW50c1t0aGlzLnJvdXRlXSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChyb3V0ZSA9PT0gdGhpcy5yb3V0ZSkge1xuICAgICAgdGhpcy5ub3RpZnkobmV3RGF0YSlcbiAgICB9XG4gIH1cblxuICByZWxvYWQoKTogdm9pZCB7XG4gICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpXG4gIH1cblxuICAvKipcbiAgICogR28gYmFjayBpbiBoaXN0b3J5XG4gICAqL1xuICBiYWNrKCkge1xuICAgIHdpbmRvdy5oaXN0b3J5LmJhY2soKVxuICB9XG5cbiAgLyoqXG4gICAqIFBlcmZvcm1zIGEgYHB1c2hTdGF0ZWAgd2l0aCBhcmd1bWVudHNcbiAgICogQHBhcmFtIHVybCBvZiB0aGUgcm91dGVcbiAgICogQHBhcmFtIGFzIG1hc2tzIGB1cmxgIGZvciB0aGUgYnJvd3NlclxuICAgKiBAcGFyYW0gb3B0aW9ucyBvYmplY3QgeW91IGNhbiBkZWZpbmUgYHNoYWxsb3dgIGFuZCBvdGhlciBvcHRpb25zXG4gICAqL1xuICBwdXNoKHVybDogVXJsLCBhczogVXJsID0gdXJsLCBvcHRpb25zID0ge30pIHtcbiAgICA7KHsgdXJsLCBhcyB9ID0gcHJlcGFyZVVybEFzKHRoaXMsIHVybCwgYXMpKVxuICAgIHJldHVybiB0aGlzLmNoYW5nZSgncHVzaFN0YXRlJywgdXJsLCBhcywgb3B0aW9ucylcbiAgfVxuXG4gIC8qKlxuICAgKiBQZXJmb3JtcyBhIGByZXBsYWNlU3RhdGVgIHdpdGggYXJndW1lbnRzXG4gICAqIEBwYXJhbSB1cmwgb2YgdGhlIHJvdXRlXG4gICAqIEBwYXJhbSBhcyBtYXNrcyBgdXJsYCBmb3IgdGhlIGJyb3dzZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgb2JqZWN0IHlvdSBjYW4gZGVmaW5lIGBzaGFsbG93YCBhbmQgb3RoZXIgb3B0aW9uc1xuICAgKi9cbiAgcmVwbGFjZSh1cmw6IFVybCwgYXM6IFVybCA9IHVybCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgOyh7IHVybCwgYXMgfSA9IHByZXBhcmVVcmxBcyh0aGlzLCB1cmwsIGFzKSlcbiAgICByZXR1cm4gdGhpcy5jaGFuZ2UoJ3JlcGxhY2VTdGF0ZScsIHVybCwgYXMsIG9wdGlvbnMpXG4gIH1cblxuICBhc3luYyBjaGFuZ2UoXG4gICAgbWV0aG9kOiBIaXN0b3J5TWV0aG9kLFxuICAgIHVybDogc3RyaW5nLFxuICAgIGFzOiBzdHJpbmcsXG4gICAgb3B0aW9uczogYW55XG4gICk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmICghb3B0aW9ucy5faCkge1xuICAgICAgdGhpcy5pc1NzciA9IGZhbHNlXG4gICAgfVxuICAgIC8vIG1hcmtpbmcgcm91dGUgY2hhbmdlcyBhcyBhIG5hdmlnYXRpb24gc3RhcnQgZW50cnlcbiAgICBpZiAoU1QpIHtcbiAgICAgIHBlcmZvcm1hbmNlLm1hcmsoJ3JvdXRlQ2hhbmdlJylcbiAgICB9XG5cbiAgICAvLyBBZGQgdGhlIGVuZGluZyBzbGFzaCB0byB0aGUgcGF0aHMuIFNvLCB3ZSBjYW4gc2VydmUgdGhlXG4gICAgLy8gXCI8cGFnZT4vaW5kZXguaHRtbFwiIGRpcmVjdGx5IGZvciB0aGUgU1NSIHBhZ2UuXG4gICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9FWFBPUlRfVFJBSUxJTkdfU0xBU0gpIHtcbiAgICAgIGNvbnN0IHJld3JpdGVVcmxGb3JOZXh0RXhwb3J0ID0gcmVxdWlyZSgnLi9yZXdyaXRlLXVybC1mb3ItZXhwb3J0JylcbiAgICAgICAgLnJld3JpdGVVcmxGb3JOZXh0RXhwb3J0XG4gICAgICAvLyBAdHMtaWdub3JlIHRoaXMgaXMgdGVtcG9yYXJpbHkgZ2xvYmFsIChhdHRhY2hlZCB0byB3aW5kb3cpXG4gICAgICBpZiAoX19ORVhUX0RBVEFfXy5uZXh0RXhwb3J0KSB7XG4gICAgICAgIGFzID0gcmV3cml0ZVVybEZvck5leHRFeHBvcnQoYXMpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2luRmxpZ2h0Um91dGUpIHtcbiAgICAgIHRoaXMuYWJvcnRDb21wb25lbnRMb2FkKHRoaXMuX2luRmxpZ2h0Um91dGUpXG4gICAgfVxuXG4gICAgY29uc3QgY2xlYW5lZEFzID0gZGVsQmFzZVBhdGgoYXMpXG4gICAgdGhpcy5faW5GbGlnaHRSb3V0ZSA9IGFzXG5cbiAgICAvLyBJZiB0aGUgdXJsIGNoYW5nZSBpcyBvbmx5IHJlbGF0ZWQgdG8gYSBoYXNoIGNoYW5nZVxuICAgIC8vIFdlIHNob3VsZCBub3QgcHJvY2VlZC4gV2Ugc2hvdWxkIG9ubHkgY2hhbmdlIHRoZSBzdGF0ZS5cblxuICAgIC8vIFdBUk5JTkc6IGBfaGAgaXMgYW4gaW50ZXJuYWwgb3B0aW9uIGZvciBoYW5kaW5nIE5leHQuanMgY2xpZW50LXNpZGVcbiAgICAvLyBoeWRyYXRpb24uIFlvdXIgYXBwIHNob3VsZCBfbmV2ZXJfIHVzZSB0aGlzIHByb3BlcnR5LiBJdCBtYXkgY2hhbmdlIGF0XG4gICAgLy8gYW55IHRpbWUgd2l0aG91dCBub3RpY2UuXG4gICAgaWYgKCFvcHRpb25zLl9oICYmIHRoaXMub25seUFIYXNoQ2hhbmdlKGNsZWFuZWRBcykpIHtcbiAgICAgIHRoaXMuYXNQYXRoID0gY2xlYW5lZEFzXG4gICAgICBSb3V0ZXIuZXZlbnRzLmVtaXQoJ2hhc2hDaGFuZ2VTdGFydCcsIGFzKVxuICAgICAgdGhpcy5jaGFuZ2VTdGF0ZShtZXRob2QsIHVybCwgYXMsIG9wdGlvbnMpXG4gICAgICB0aGlzLnNjcm9sbFRvSGFzaChjbGVhbmVkQXMpXG4gICAgICBSb3V0ZXIuZXZlbnRzLmVtaXQoJ2hhc2hDaGFuZ2VDb21wbGV0ZScsIGFzKVxuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBjb25zdCBwYXJzZWQgPSB0cnlQYXJzZVJlbGF0aXZlVXJsKHVybClcblxuICAgIGlmICghcGFyc2VkKSByZXR1cm4gZmFsc2VcblxuICAgIGxldCB7IHBhdGhuYW1lLCBzZWFyY2hQYXJhbXMgfSA9IHBhcnNlZFxuICAgIGNvbnN0IHF1ZXJ5ID0gc2VhcmNoUGFyYW1zVG9VcmxRdWVyeShzZWFyY2hQYXJhbXMpXG5cbiAgICAvLyB1cmwgYW5kIGFzIHNob3VsZCBhbHdheXMgYmUgcHJlZml4ZWQgd2l0aCBiYXNlUGF0aCBieSB0aGlzXG4gICAgLy8gcG9pbnQgYnkgZWl0aGVyIG5leHQvbGluayBvciByb3V0ZXIucHVzaC9yZXBsYWNlIHNvIHN0cmlwIHRoZVxuICAgIC8vIGJhc2VQYXRoIGZyb20gdGhlIHBhdGhuYW1lIHRvIG1hdGNoIHRoZSBwYWdlcyBkaXIgMS10by0xXG4gICAgcGF0aG5hbWUgPSBwYXRobmFtZVxuICAgICAgPyByZW1vdmVQYXRoVHJhaWxpbmdTbGFzaChkZWxCYXNlUGF0aChwYXRobmFtZSkpXG4gICAgICA6IHBhdGhuYW1lXG5cbiAgICAvLyBJZiBhc2tlZCB0byBjaGFuZ2UgdGhlIGN1cnJlbnQgVVJMIHdlIHNob3VsZCByZWxvYWQgdGhlIGN1cnJlbnQgcGFnZVxuICAgIC8vIChub3QgbG9jYXRpb24ucmVsb2FkKCkgYnV0IHJlbG9hZCBnZXRJbml0aWFsUHJvcHMgYW5kIG90aGVyIE5leHQuanMgc3R1ZmZzKVxuICAgIC8vIFdlIGFsc28gbmVlZCB0byBzZXQgdGhlIG1ldGhvZCA9IHJlcGxhY2VTdGF0ZSBhbHdheXNcbiAgICAvLyBhcyB0aGlzIHNob3VsZCBub3QgZ28gaW50byB0aGUgaGlzdG9yeSAoVGhhdCdzIGhvdyBicm93c2VycyB3b3JrKVxuICAgIC8vIFdlIHNob3VsZCBjb21wYXJlIHRoZSBuZXcgYXNQYXRoIHRvIHRoZSBjdXJyZW50IGFzUGF0aCwgbm90IHRoZSB1cmxcbiAgICBpZiAoIXRoaXMudXJsSXNOZXcoY2xlYW5lZEFzKSkge1xuICAgICAgbWV0aG9kID0gJ3JlcGxhY2VTdGF0ZSdcbiAgICB9XG5cbiAgICBjb25zdCByb3V0ZSA9IHJlbW92ZVBhdGhUcmFpbGluZ1NsYXNoKHBhdGhuYW1lKVxuICAgIGNvbnN0IHsgc2hhbGxvdyA9IGZhbHNlIH0gPSBvcHRpb25zXG5cbiAgICBpZiAoaXNEeW5hbWljUm91dGUocm91dGUpKSB7XG4gICAgICBjb25zdCB7IHBhdGhuYW1lOiBhc1BhdGhuYW1lIH0gPSBwYXJzZVJlbGF0aXZlVXJsKGNsZWFuZWRBcylcbiAgICAgIGNvbnN0IHJvdXRlUmVnZXggPSBnZXRSb3V0ZVJlZ2V4KHJvdXRlKVxuICAgICAgY29uc3Qgcm91dGVNYXRjaCA9IGdldFJvdXRlTWF0Y2hlcihyb3V0ZVJlZ2V4KShhc1BhdGhuYW1lKVxuICAgICAgaWYgKCFyb3V0ZU1hdGNoKSB7XG4gICAgICAgIGNvbnN0IG1pc3NpbmdQYXJhbXMgPSBPYmplY3Qua2V5cyhyb3V0ZVJlZ2V4Lmdyb3VwcykuZmlsdGVyKFxuICAgICAgICAgIChwYXJhbSkgPT4gIXF1ZXJ5W3BhcmFtXVxuICAgICAgICApXG5cbiAgICAgICAgaWYgKG1pc3NpbmdQYXJhbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgIGBNaXNtYXRjaGluZyBcXGBhc1xcYCBhbmQgXFxgaHJlZlxcYCBmYWlsZWQgdG8gbWFudWFsbHkgcHJvdmlkZSBgICtcbiAgICAgICAgICAgICAgICBgdGhlIHBhcmFtczogJHttaXNzaW5nUGFyYW1zLmpvaW4oXG4gICAgICAgICAgICAgICAgICAnLCAnXG4gICAgICAgICAgICAgICAgKX0gaW4gdGhlIFxcYGhyZWZcXGAncyBcXGBxdWVyeVxcYGBcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgVGhlIHByb3ZpZGVkIFxcYGFzXFxgIHZhbHVlICgke2FzUGF0aG5hbWV9KSBpcyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgXFxgaHJlZlxcYCB2YWx1ZSAoJHtyb3V0ZX0pLiBgICtcbiAgICAgICAgICAgICAgYFJlYWQgbW9yZTogaHR0cHM6Ly9lcnIuc2gvdmVyY2VsL25leHQuanMvaW5jb21wYXRpYmxlLWhyZWYtYXNgXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBNZXJnZSBwYXJhbXMgaW50byBgcXVlcnlgLCBvdmVyd3JpdGluZyBhbnkgc3BlY2lmaWVkIGluIHNlYXJjaFxuICAgICAgICBPYmplY3QuYXNzaWduKHF1ZXJ5LCByb3V0ZU1hdGNoKVxuICAgICAgfVxuICAgIH1cblxuICAgIFJvdXRlci5ldmVudHMuZW1pdCgncm91dGVDaGFuZ2VTdGFydCcsIGFzKVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJvdXRlSW5mbyA9IGF3YWl0IHRoaXMuZ2V0Um91dGVJbmZvKFxuICAgICAgICByb3V0ZSxcbiAgICAgICAgcGF0aG5hbWUsXG4gICAgICAgIHF1ZXJ5LFxuICAgICAgICBhcyxcbiAgICAgICAgc2hhbGxvd1xuICAgICAgKVxuICAgICAgY29uc3QgeyBlcnJvciB9ID0gcm91dGVJbmZvXG5cbiAgICAgIFJvdXRlci5ldmVudHMuZW1pdCgnYmVmb3JlSGlzdG9yeUNoYW5nZScsIGFzKVxuICAgICAgdGhpcy5jaGFuZ2VTdGF0ZShtZXRob2QsIHVybCwgYXMsIG9wdGlvbnMpXG5cbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIGNvbnN0IGFwcENvbXA6IGFueSA9IHRoaXMuY29tcG9uZW50c1snL19hcHAnXS5Db21wb25lbnRcbiAgICAgICAgOyh3aW5kb3cgYXMgYW55KS5uZXh0LmlzUHJlcmVuZGVyZWQgPVxuICAgICAgICAgIGFwcENvbXAuZ2V0SW5pdGlhbFByb3BzID09PSBhcHBDb21wLm9yaWdHZXRJbml0aWFsUHJvcHMgJiZcbiAgICAgICAgICAhKHJvdXRlSW5mby5Db21wb25lbnQgYXMgYW55KS5nZXRJbml0aWFsUHJvcHNcbiAgICAgIH1cblxuICAgICAgYXdhaXQgdGhpcy5zZXQocm91dGUsIHBhdGhuYW1lISwgcXVlcnksIGNsZWFuZWRBcywgcm91dGVJbmZvKVxuXG4gICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgUm91dGVyLmV2ZW50cy5lbWl0KCdyb3V0ZUNoYW5nZUVycm9yJywgZXJyb3IsIGNsZWFuZWRBcylcbiAgICAgICAgdGhyb3cgZXJyb3JcbiAgICAgIH1cblxuICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9TQ1JPTExfUkVTVE9SQVRJT04pIHtcbiAgICAgICAgaWYgKG1hbnVhbFNjcm9sbFJlc3RvcmF0aW9uICYmICdfTl9YJyBpbiBvcHRpb25zKSB7XG4gICAgICAgICAgd2luZG93LnNjcm9sbFRvKG9wdGlvbnMuX05fWCwgb3B0aW9ucy5fTl9ZKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBSb3V0ZXIuZXZlbnRzLmVtaXQoJ3JvdXRlQ2hhbmdlQ29tcGxldGUnLCBhcylcblxuICAgICAgcmV0dXJuIHRydWVcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGlmIChlcnIuY2FuY2VsbGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuICAgICAgdGhyb3cgZXJyXG4gICAgfVxuICB9XG5cbiAgY2hhbmdlU3RhdGUoXG4gICAgbWV0aG9kOiBIaXN0b3J5TWV0aG9kLFxuICAgIHVybDogc3RyaW5nLFxuICAgIGFzOiBzdHJpbmcsXG4gICAgb3B0aW9ucyA9IHt9XG4gICk6IHZvaWQge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBpZiAodHlwZW9mIHdpbmRvdy5oaXN0b3J5ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBXYXJuaW5nOiB3aW5kb3cuaGlzdG9yeSBpcyBub3QgYXZhaWxhYmxlLmApXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIHdpbmRvdy5oaXN0b3J5W21ldGhvZF0gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYFdhcm5pbmc6IHdpbmRvdy5oaXN0b3J5LiR7bWV0aG9kfSBpcyBub3QgYXZhaWxhYmxlYClcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG1ldGhvZCAhPT0gJ3B1c2hTdGF0ZScgfHwgZ2V0VVJMKCkgIT09IGFzKSB7XG4gICAgICB3aW5kb3cuaGlzdG9yeVttZXRob2RdKFxuICAgICAgICB7XG4gICAgICAgICAgdXJsLFxuICAgICAgICAgIGFzLFxuICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICAgX19OOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICAvLyBNb3N0IGJyb3dzZXJzIGN1cnJlbnRseSBpZ25vcmVzIHRoaXMgcGFyYW1ldGVyLCBhbHRob3VnaCB0aGV5IG1heSB1c2UgaXQgaW4gdGhlIGZ1dHVyZS5cbiAgICAgICAgLy8gUGFzc2luZyB0aGUgZW1wdHkgc3RyaW5nIGhlcmUgc2hvdWxkIGJlIHNhZmUgYWdhaW5zdCBmdXR1cmUgY2hhbmdlcyB0byB0aGUgbWV0aG9kLlxuICAgICAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvSGlzdG9yeS9yZXBsYWNlU3RhdGVcbiAgICAgICAgJycsXG4gICAgICAgIGFzXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgYXN5bmMgaGFuZGxlUm91dGVJbmZvRXJyb3IoXG4gICAgZXJyOiBFcnJvciAmIHsgY29kZTogYW55OyBjYW5jZWxsZWQ6IGJvb2xlYW4gfSxcbiAgICBwYXRobmFtZTogc3RyaW5nLFxuICAgIHF1ZXJ5OiBhbnksXG4gICAgYXM6IHN0cmluZyxcbiAgICBsb2FkRXJyb3JGYWlsPzogYm9vbGVhblxuICApOiBQcm9taXNlPFJvdXRlSW5mbz4ge1xuICAgIGlmIChlcnIuY2FuY2VsbGVkKSB7XG4gICAgICAvLyBidWJibGUgdXAgY2FuY2VsbGF0aW9uIGVycm9yc1xuICAgICAgdGhyb3cgZXJyXG4gICAgfVxuXG4gICAgaWYgKGVyci5jb2RlID09PSAnUEFHRV9MT0FEX0VSUk9SJyB8fCBsb2FkRXJyb3JGYWlsKSB7XG4gICAgICBSb3V0ZXIuZXZlbnRzLmVtaXQoJ3JvdXRlQ2hhbmdlRXJyb3InLCBlcnIsIGFzKVxuXG4gICAgICAvLyBJZiB3ZSBjYW4ndCBsb2FkIHRoZSBwYWdlIGl0IGNvdWxkIGJlIG9uZSBvZiBmb2xsb3dpbmcgcmVhc29uc1xuICAgICAgLy8gIDEuIFBhZ2UgZG9lc24ndCBleGlzdHNcbiAgICAgIC8vICAyLiBQYWdlIGRvZXMgZXhpc3QgaW4gYSBkaWZmZXJlbnQgem9uZVxuICAgICAgLy8gIDMuIEludGVybmFsIGVycm9yIHdoaWxlIGxvYWRpbmcgdGhlIHBhZ2VcblxuICAgICAgLy8gU28sIGRvaW5nIGEgaGFyZCByZWxvYWQgaXMgdGhlIHByb3BlciB3YXkgdG8gZGVhbCB3aXRoIHRoaXMuXG4gICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGFzXG5cbiAgICAgIC8vIENoYW5naW5nIHRoZSBVUkwgZG9lc24ndCBibG9jayBleGVjdXRpbmcgdGhlIGN1cnJlbnQgY29kZSBwYXRoLlxuICAgICAgLy8gU28gbGV0J3MgdGhyb3cgYSBjYW5jZWxsYXRpb24gZXJyb3Igc3RvcCB0aGUgcm91dGluZyBsb2dpYy5cbiAgICAgIHRocm93IGJ1aWxkQ2FuY2VsbGF0aW9uRXJyb3IoKVxuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCB7IHBhZ2U6IENvbXBvbmVudCB9ID0gYXdhaXQgdGhpcy5mZXRjaENvbXBvbmVudCgnL19lcnJvcicpXG4gICAgICBjb25zdCByb3V0ZUluZm86IFJvdXRlSW5mbyA9IHsgQ29tcG9uZW50LCBlcnIsIGVycm9yOiBlcnIgfVxuXG4gICAgICB0cnkge1xuICAgICAgICByb3V0ZUluZm8ucHJvcHMgPSBhd2FpdCB0aGlzLmdldEluaXRpYWxQcm9wcyhDb21wb25lbnQsIHtcbiAgICAgICAgICBlcnIsXG4gICAgICAgICAgcGF0aG5hbWUsXG4gICAgICAgICAgcXVlcnksXG4gICAgICAgIH0gYXMgYW55KVxuICAgICAgfSBjYXRjaCAoZ2lwRXJyKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIGVycm9yIHBhZ2UgYGdldEluaXRpYWxQcm9wc2A6ICcsIGdpcEVycilcbiAgICAgICAgcm91dGVJbmZvLnByb3BzID0ge31cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJvdXRlSW5mb1xuICAgIH0gY2F0Y2ggKHJvdXRlSW5mb0Vycikge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlUm91dGVJbmZvRXJyb3Iocm91dGVJbmZvRXJyLCBwYXRobmFtZSwgcXVlcnksIGFzLCB0cnVlKVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGdldFJvdXRlSW5mbyhcbiAgICByb3V0ZTogc3RyaW5nLFxuICAgIHBhdGhuYW1lOiBzdHJpbmcsXG4gICAgcXVlcnk6IGFueSxcbiAgICBhczogc3RyaW5nLFxuICAgIHNoYWxsb3c6IGJvb2xlYW4gPSBmYWxzZVxuICApOiBQcm9taXNlPFJvdXRlSW5mbz4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjYWNoZWRSb3V0ZUluZm8gPSB0aGlzLmNvbXBvbmVudHNbcm91dGVdXG5cbiAgICAgIGlmIChzaGFsbG93ICYmIGNhY2hlZFJvdXRlSW5mbyAmJiB0aGlzLnJvdXRlID09PSByb3V0ZSkge1xuICAgICAgICByZXR1cm4gY2FjaGVkUm91dGVJbmZvXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJvdXRlSW5mbyA9IGNhY2hlZFJvdXRlSW5mb1xuICAgICAgICA/IGNhY2hlZFJvdXRlSW5mb1xuICAgICAgICA6IGF3YWl0IHRoaXMuZmV0Y2hDb21wb25lbnQocm91dGUpLnRoZW4oXG4gICAgICAgICAgICAocmVzKSA9PlxuICAgICAgICAgICAgICAoe1xuICAgICAgICAgICAgICAgIENvbXBvbmVudDogcmVzLnBhZ2UsXG4gICAgICAgICAgICAgICAgX19OX1NTRzogcmVzLm1vZC5fX05fU1NHLFxuICAgICAgICAgICAgICAgIF9fTl9TU1A6IHJlcy5tb2QuX19OX1NTUCxcbiAgICAgICAgICAgICAgfSBhcyBSb3V0ZUluZm8pXG4gICAgICAgICAgKVxuXG4gICAgICBjb25zdCB7IENvbXBvbmVudCwgX19OX1NTRywgX19OX1NTUCB9ID0gcm91dGVJbmZvXG5cbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIGNvbnN0IHsgaXNWYWxpZEVsZW1lbnRUeXBlIH0gPSByZXF1aXJlKCdyZWFjdC1pcycpXG4gICAgICAgIGlmICghaXNWYWxpZEVsZW1lbnRUeXBlKENvbXBvbmVudCkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgVGhlIGRlZmF1bHQgZXhwb3J0IGlzIG5vdCBhIFJlYWN0IENvbXBvbmVudCBpbiBwYWdlOiBcIiR7cGF0aG5hbWV9XCJgXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGxldCBkYXRhSHJlZjogc3RyaW5nIHwgdW5kZWZpbmVkXG5cbiAgICAgIGlmIChfX05fU1NHIHx8IF9fTl9TU1ApIHtcbiAgICAgICAgZGF0YUhyZWYgPSB0aGlzLnBhZ2VMb2FkZXIuZ2V0RGF0YUhyZWYoXG4gICAgICAgICAgZm9ybWF0V2l0aFZhbGlkYXRpb24oeyBwYXRobmFtZSwgcXVlcnkgfSksXG4gICAgICAgICAgYXMsXG4gICAgICAgICAgX19OX1NTR1xuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHByb3BzID0gYXdhaXQgdGhpcy5fZ2V0RGF0YTxSb3V0ZUluZm8+KCgpID0+XG4gICAgICAgIF9fTl9TU0dcbiAgICAgICAgICA/IHRoaXMuX2dldFN0YXRpY0RhdGEoZGF0YUhyZWYhKVxuICAgICAgICAgIDogX19OX1NTUFxuICAgICAgICAgID8gdGhpcy5fZ2V0U2VydmVyRGF0YShkYXRhSHJlZiEpXG4gICAgICAgICAgOiB0aGlzLmdldEluaXRpYWxQcm9wcyhcbiAgICAgICAgICAgICAgQ29tcG9uZW50LFxuICAgICAgICAgICAgICAvLyB3ZSBwcm92aWRlIEFwcFRyZWUgbGF0ZXIgc28gdGhpcyBuZWVkcyB0byBiZSBgYW55YFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcGF0aG5hbWUsXG4gICAgICAgICAgICAgICAgcXVlcnksXG4gICAgICAgICAgICAgICAgYXNQYXRoOiBhcyxcbiAgICAgICAgICAgICAgfSBhcyBhbnlcbiAgICAgICAgICAgIClcbiAgICAgIClcbiAgICAgIHJvdXRlSW5mby5wcm9wcyA9IHByb3BzXG4gICAgICB0aGlzLmNvbXBvbmVudHNbcm91dGVdID0gcm91dGVJbmZvXG4gICAgICByZXR1cm4gcm91dGVJbmZvXG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVSb3V0ZUluZm9FcnJvcihlcnIsIHBhdGhuYW1lLCBxdWVyeSwgYXMpXG4gICAgfVxuICB9XG5cbiAgc2V0KFxuICAgIHJvdXRlOiBzdHJpbmcsXG4gICAgcGF0aG5hbWU6IHN0cmluZyxcbiAgICBxdWVyeTogYW55LFxuICAgIGFzOiBzdHJpbmcsXG4gICAgZGF0YTogUm91dGVJbmZvXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuaXNGYWxsYmFjayA9IGZhbHNlXG5cbiAgICB0aGlzLnJvdXRlID0gcm91dGVcbiAgICB0aGlzLnBhdGhuYW1lID0gcGF0aG5hbWVcbiAgICB0aGlzLnF1ZXJ5ID0gcXVlcnlcbiAgICB0aGlzLmFzUGF0aCA9IGFzXG4gICAgcmV0dXJuIHRoaXMubm90aWZ5KGRhdGEpXG4gIH1cblxuICAvKipcbiAgICogQ2FsbGJhY2sgdG8gZXhlY3V0ZSBiZWZvcmUgcmVwbGFjaW5nIHJvdXRlciBzdGF0ZVxuICAgKiBAcGFyYW0gY2IgY2FsbGJhY2sgdG8gYmUgZXhlY3V0ZWRcbiAgICovXG4gIGJlZm9yZVBvcFN0YXRlKGNiOiBCZWZvcmVQb3BTdGF0ZUNhbGxiYWNrKSB7XG4gICAgdGhpcy5fYnBzID0gY2JcbiAgfVxuXG4gIG9ubHlBSGFzaENoYW5nZShhczogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLmFzUGF0aCkgcmV0dXJuIGZhbHNlXG4gICAgY29uc3QgW29sZFVybE5vSGFzaCwgb2xkSGFzaF0gPSB0aGlzLmFzUGF0aC5zcGxpdCgnIycpXG4gICAgY29uc3QgW25ld1VybE5vSGFzaCwgbmV3SGFzaF0gPSBhcy5zcGxpdCgnIycpXG5cbiAgICAvLyBNYWtlcyBzdXJlIHdlIHNjcm9sbCB0byB0aGUgcHJvdmlkZWQgaGFzaCBpZiB0aGUgdXJsL2hhc2ggYXJlIHRoZSBzYW1lXG4gICAgaWYgKG5ld0hhc2ggJiYgb2xkVXJsTm9IYXNoID09PSBuZXdVcmxOb0hhc2ggJiYgb2xkSGFzaCA9PT0gbmV3SGFzaCkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgdXJscyBhcmUgY2hhbmdlLCB0aGVyZSdzIG1vcmUgdGhhbiBhIGhhc2ggY2hhbmdlXG4gICAgaWYgKG9sZFVybE5vSGFzaCAhPT0gbmV3VXJsTm9IYXNoKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgaGFzaCBoYXMgY2hhbmdlZCwgdGhlbiBpdCdzIGEgaGFzaCBvbmx5IGNoYW5nZS5cbiAgICAvLyBUaGlzIGNoZWNrIGlzIG5lY2Vzc2FyeSB0byBoYW5kbGUgYm90aCB0aGUgZW50ZXIgYW5kXG4gICAgLy8gbGVhdmUgaGFzaCA9PT0gJycgY2FzZXMuIFRoZSBpZGVudGl0eSBjYXNlIGZhbGxzIHRocm91Z2hcbiAgICAvLyBhbmQgaXMgdHJlYXRlZCBhcyBhIG5leHQgcmVsb2FkLlxuICAgIHJldHVybiBvbGRIYXNoICE9PSBuZXdIYXNoXG4gIH1cblxuICBzY3JvbGxUb0hhc2goYXM6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IFssIGhhc2hdID0gYXMuc3BsaXQoJyMnKVxuICAgIC8vIFNjcm9sbCB0byB0b3AgaWYgdGhlIGhhc2ggaXMganVzdCBgI2Agd2l0aCBubyB2YWx1ZVxuICAgIGlmIChoYXNoID09PSAnJykge1xuICAgICAgd2luZG93LnNjcm9sbFRvKDAsIDApXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvLyBGaXJzdCB3ZSBjaGVjayBpZiB0aGUgZWxlbWVudCBieSBpZCBpcyBmb3VuZFxuICAgIGNvbnN0IGlkRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChoYXNoKVxuICAgIGlmIChpZEVsKSB7XG4gICAgICBpZEVsLnNjcm9sbEludG9WaWV3KClcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICAvLyBJZiB0aGVyZSdzIG5vIGVsZW1lbnQgd2l0aCB0aGUgaWQsIHdlIGNoZWNrIHRoZSBgbmFtZWAgcHJvcGVydHlcbiAgICAvLyBUbyBtaXJyb3IgYnJvd3NlcnNcbiAgICBjb25zdCBuYW1lRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZShoYXNoKVswXVxuICAgIGlmIChuYW1lRWwpIHtcbiAgICAgIG5hbWVFbC5zY3JvbGxJbnRvVmlldygpXG4gICAgfVxuICB9XG5cbiAgdXJsSXNOZXcoYXNQYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hc1BhdGggIT09IGFzUGF0aFxuICB9XG5cbiAgLyoqXG4gICAqIFByZWZldGNoIHBhZ2UgY29kZSwgeW91IG1heSB3YWl0IGZvciB0aGUgZGF0YSBkdXJpbmcgcGFnZSByZW5kZXJpbmcuXG4gICAqIFRoaXMgZmVhdHVyZSBvbmx5IHdvcmtzIGluIHByb2R1Y3Rpb24hXG4gICAqIEBwYXJhbSB1cmwgdGhlIGhyZWYgb2YgcHJlZmV0Y2hlZCBwYWdlXG4gICAqIEBwYXJhbSBhc1BhdGggdGhlIGFzIHBhdGggb2YgdGhlIHByZWZldGNoZWQgcGFnZVxuICAgKi9cbiAgYXN5bmMgcHJlZmV0Y2goXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgYXNQYXRoOiBzdHJpbmcgPSB1cmwsXG4gICAgb3B0aW9uczogUHJlZmV0Y2hPcHRpb25zID0ge31cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcGFyc2VkID0gdHJ5UGFyc2VSZWxhdGl2ZVVybCh1cmwpXG5cbiAgICBpZiAoIXBhcnNlZCkgcmV0dXJuXG5cbiAgICBjb25zdCB7IHBhdGhuYW1lIH0gPSBwYXJzZWRcblxuICAgIC8vIFByZWZldGNoIGlzIG5vdCBzdXBwb3J0ZWQgaW4gZGV2ZWxvcG1lbnQgbW9kZSBiZWNhdXNlIGl0IHdvdWxkIHRyaWdnZXIgb24tZGVtYW5kLWVudHJpZXNcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3Qgcm91dGUgPSByZW1vdmVQYXRoVHJhaWxpbmdTbGFzaChwYXRobmFtZSlcbiAgICBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICB0aGlzLnBhZ2VMb2FkZXIucHJlZmV0Y2hEYXRhKHVybCwgYXNQYXRoKSxcbiAgICAgIHRoaXMucGFnZUxvYWRlcltvcHRpb25zLnByaW9yaXR5ID8gJ2xvYWRQYWdlJyA6ICdwcmVmZXRjaCddKHJvdXRlKSxcbiAgICBdKVxuICB9XG5cbiAgYXN5bmMgZmV0Y2hDb21wb25lbnQocm91dGU6IHN0cmluZyk6IFByb21pc2U8Q29tcG9uZW50UmVzPiB7XG4gICAgbGV0IGNhbmNlbGxlZCA9IGZhbHNlXG4gICAgY29uc3QgY2FuY2VsID0gKHRoaXMuY2xjID0gKCkgPT4ge1xuICAgICAgY2FuY2VsbGVkID0gdHJ1ZVxuICAgIH0pXG5cbiAgICBjb25zdCBjb21wb25lbnRSZXN1bHQgPSBhd2FpdCB0aGlzLnBhZ2VMb2FkZXIubG9hZFBhZ2Uocm91dGUpXG5cbiAgICBpZiAoY2FuY2VsbGVkKSB7XG4gICAgICBjb25zdCBlcnJvcjogYW55ID0gbmV3IEVycm9yKFxuICAgICAgICBgQWJvcnQgZmV0Y2hpbmcgY29tcG9uZW50IGZvciByb3V0ZTogXCIke3JvdXRlfVwiYFxuICAgICAgKVxuICAgICAgZXJyb3IuY2FuY2VsbGVkID0gdHJ1ZVxuICAgICAgdGhyb3cgZXJyb3JcbiAgICB9XG5cbiAgICBpZiAoY2FuY2VsID09PSB0aGlzLmNsYykge1xuICAgICAgdGhpcy5jbGMgPSBudWxsXG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbXBvbmVudFJlc3VsdFxuICB9XG5cbiAgX2dldERhdGE8VD4oZm46ICgpID0+IFByb21pc2U8VD4pOiBQcm9taXNlPFQ+IHtcbiAgICBsZXQgY2FuY2VsbGVkID0gZmFsc2VcbiAgICBjb25zdCBjYW5jZWwgPSAoKSA9PiB7XG4gICAgICBjYW5jZWxsZWQgPSB0cnVlXG4gICAgfVxuICAgIHRoaXMuY2xjID0gY2FuY2VsXG4gICAgcmV0dXJuIGZuKCkudGhlbigoZGF0YSkgPT4ge1xuICAgICAgaWYgKGNhbmNlbCA9PT0gdGhpcy5jbGMpIHtcbiAgICAgICAgdGhpcy5jbGMgPSBudWxsXG4gICAgICB9XG5cbiAgICAgIGlmIChjYW5jZWxsZWQpIHtcbiAgICAgICAgY29uc3QgZXJyOiBhbnkgPSBuZXcgRXJyb3IoJ0xvYWRpbmcgaW5pdGlhbCBwcm9wcyBjYW5jZWxsZWQnKVxuICAgICAgICBlcnIuY2FuY2VsbGVkID0gdHJ1ZVxuICAgICAgICB0aHJvdyBlcnJcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGRhdGFcbiAgICB9KVxuICB9XG5cbiAgX2dldFN0YXRpY0RhdGEoZGF0YUhyZWY6IHN0cmluZyk6IFByb21pc2U8b2JqZWN0PiB7XG4gICAgY29uc3QgeyBocmVmOiBjYWNoZUtleSB9ID0gbmV3IFVSTChkYXRhSHJlZiwgd2luZG93LmxvY2F0aW9uLmhyZWYpXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicgJiYgdGhpcy5zZGNbY2FjaGVLZXldKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuc2RjW2NhY2hlS2V5XSlcbiAgICB9XG4gICAgcmV0dXJuIGZldGNoTmV4dERhdGEoZGF0YUhyZWYsIHRoaXMuaXNTc3IpLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgIHRoaXMuc2RjW2NhY2hlS2V5XSA9IGRhdGFcbiAgICAgIHJldHVybiBkYXRhXG4gICAgfSlcbiAgfVxuXG4gIF9nZXRTZXJ2ZXJEYXRhKGRhdGFIcmVmOiBzdHJpbmcpOiBQcm9taXNlPG9iamVjdD4ge1xuICAgIHJldHVybiBmZXRjaE5leHREYXRhKGRhdGFIcmVmLCB0aGlzLmlzU3NyKVxuICB9XG5cbiAgZ2V0SW5pdGlhbFByb3BzKFxuICAgIENvbXBvbmVudDogQ29tcG9uZW50VHlwZSxcbiAgICBjdHg6IE5leHRQYWdlQ29udGV4dFxuICApOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHsgQ29tcG9uZW50OiBBcHAgfSA9IHRoaXMuY29tcG9uZW50c1snL19hcHAnXVxuICAgIGNvbnN0IEFwcFRyZWUgPSB0aGlzLl93cmFwQXBwKEFwcClcbiAgICBjdHguQXBwVHJlZSA9IEFwcFRyZWVcbiAgICByZXR1cm4gbG9hZEdldEluaXRpYWxQcm9wczxBcHBDb250ZXh0VHlwZTxSb3V0ZXI+PihBcHAsIHtcbiAgICAgIEFwcFRyZWUsXG4gICAgICBDb21wb25lbnQsXG4gICAgICByb3V0ZXI6IHRoaXMsXG4gICAgICBjdHgsXG4gICAgfSlcbiAgfVxuXG4gIGFib3J0Q29tcG9uZW50TG9hZChhczogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2xjKSB7XG4gICAgICBSb3V0ZXIuZXZlbnRzLmVtaXQoJ3JvdXRlQ2hhbmdlRXJyb3InLCBidWlsZENhbmNlbGxhdGlvbkVycm9yKCksIGFzKVxuICAgICAgdGhpcy5jbGMoKVxuICAgICAgdGhpcy5jbGMgPSBudWxsXG4gICAgfVxuICB9XG5cbiAgbm90aWZ5KGRhdGE6IFJvdXRlSW5mbyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLnN1YihkYXRhLCB0aGlzLmNvbXBvbmVudHNbJy9fYXBwJ10uQ29tcG9uZW50KVxuICB9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/next-server/lib/router/router.js\n"); +eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nvar _slicedToArray = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/next/node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nvar _regeneratorRuntime = __webpack_require__(/*! @babel/runtime/regenerator */ \"./node_modules/next/node_modules/@babel/runtime/regenerator/index.js\");\n\nvar _asyncToGenerator = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/next/node_modules/@babel/runtime/helpers/asyncToGenerator.js\");\n\nvar _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"./node_modules/next/node_modules/@babel/runtime/helpers/classCallCheck.js\");\n\nvar _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ \"./node_modules/next/node_modules/@babel/runtime/helpers/createClass.js\");\n\nexports.__esModule = true;\nexports.addLocale = addLocale;\nexports.delLocale = delLocale;\nexports.hasBasePath = hasBasePath;\nexports.addBasePath = addBasePath;\nexports.delBasePath = delBasePath;\nexports.isLocalURL = isLocalURL;\nexports.interpolateAs = interpolateAs;\nexports.resolveHref = resolveHref;\nexports.markLoadingError = markLoadingError;\nexports[\"default\"] = void 0;\n\nvar _normalizeTrailingSlash = __webpack_require__(/*! ../../../client/normalize-trailing-slash */ \"./node_modules/next/dist/client/normalize-trailing-slash.js\");\n\nvar _denormalizePagePath = __webpack_require__(/*! ../../server/denormalize-page-path */ \"./node_modules/next/dist/next-server/server/denormalize-page-path.js\");\n\nvar _mitt = _interopRequireDefault(__webpack_require__(/*! ../mitt */ \"./node_modules/next/dist/next-server/lib/mitt.js\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./node_modules/next/dist/next-server/lib/utils.js\");\n\nvar _isDynamic = __webpack_require__(/*! ./utils/is-dynamic */ \"./node_modules/next/dist/next-server/lib/router/utils/is-dynamic.js\");\n\nvar _parseRelativeUrl = __webpack_require__(/*! ./utils/parse-relative-url */ \"./node_modules/next/dist/next-server/lib/router/utils/parse-relative-url.js\");\n\nvar _querystring = __webpack_require__(/*! ./utils/querystring */ \"./node_modules/next/dist/next-server/lib/router/utils/querystring.js\");\n\nvar _resolveRewrites = _interopRequireDefault(__webpack_require__(/*! ./utils/resolve-rewrites */ \"./node_modules/next/dist/next-server/lib/router/utils/resolve-rewrites.js\"));\n\nvar _routeMatcher = __webpack_require__(/*! ./utils/route-matcher */ \"./node_modules/next/dist/next-server/lib/router/utils/route-matcher.js\");\n\nvar _routeRegex = __webpack_require__(/*! ./utils/route-regex */ \"./node_modules/next/dist/next-server/lib/router/utils/route-regex.js\");\n\nvar _escapePathDelimiters = _interopRequireDefault(__webpack_require__(/*! ./utils/escape-path-delimiters */ \"./node_modules/next/dist/next-server/lib/router/utils/escape-path-delimiters.js\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n/* global __NEXT_DATA__ */\n// tslint:disable:no-console\n\n\nvar basePath = false || '';\n\nfunction buildCancellationError() {\n return Object.assign(new Error('Route Cancelled'), {\n cancelled: true\n });\n}\n\nfunction addPathPrefix(path, prefix) {\n return prefix && path.startsWith('/') ? path === '/' ? (0, _normalizeTrailingSlash.normalizePathTrailingSlash)(prefix) : \"\".concat(prefix).concat(path) : path;\n}\n\nfunction addLocale(path, locale, defaultLocale) {\n if (false) {}\n\n return path;\n}\n\nfunction delLocale(path, locale) {\n if (false) {}\n\n return path;\n}\n\nfunction hasBasePath(path) {\n return path === basePath || path.startsWith(basePath + '/');\n}\n\nfunction addBasePath(path) {\n // we only add the basepath on relative urls\n return addPathPrefix(path, basePath);\n}\n\nfunction delBasePath(path) {\n return path.slice(basePath.length) || '/';\n}\n/**\n* Detects whether a given url is routable by the Next.js router (browser only).\n*/\n\n\nfunction isLocalURL(url) {\n if (url.startsWith('/')) return true;\n\n try {\n // absolute urls can be local if they are on the same origin\n var locationOrigin = (0, _utils.getLocationOrigin)();\n var resolved = new URL(url, locationOrigin);\n return resolved.origin === locationOrigin && hasBasePath(resolved.pathname);\n } catch (_) {\n return false;\n }\n}\n\nfunction interpolateAs(route, asPathname, query) {\n var interpolatedRoute = '';\n var dynamicRegex = (0, _routeRegex.getRouteRegex)(route);\n var dynamicGroups = dynamicRegex.groups;\n var dynamicMatches = // Try to match the dynamic route against the asPath\n (asPathname !== route ? (0, _routeMatcher.getRouteMatcher)(dynamicRegex)(asPathname) : '') || // Fall back to reading the values from the href\n // TODO: should this take priority; also need to change in the router.\n query;\n interpolatedRoute = route;\n var params = Object.keys(dynamicGroups);\n\n if (!params.every(function (param) {\n var value = dynamicMatches[param] || '';\n var _dynamicGroups$param = dynamicGroups[param],\n repeat = _dynamicGroups$param.repeat,\n optional = _dynamicGroups$param.optional; // support single-level catch-all\n // TODO: more robust handling for user-error (passing `/`)\n\n var replaced = \"[\".concat(repeat ? '...' : '').concat(param, \"]\");\n\n if (optional) {\n replaced = \"\".concat(!value ? '/' : '', \"[\").concat(replaced, \"]\");\n }\n\n if (repeat && !Array.isArray(value)) value = [value];\n return (optional || param in dynamicMatches) && ( // Interpolate group into data URL if present\n interpolatedRoute = interpolatedRoute.replace(replaced, repeat ? value.map(_escapePathDelimiters[\"default\"]).join('/') : (0, _escapePathDelimiters[\"default\"])(value)) || '/');\n })) {\n interpolatedRoute = ''; // did not satisfy all requirements\n // n.b. We ignore this error because we handle warning for this case in\n // development in the `` component directly.\n }\n\n return {\n params: params,\n result: interpolatedRoute\n };\n}\n\nfunction omitParmsFromQuery(query, params) {\n var filteredQuery = {};\n Object.keys(query).forEach(function (key) {\n if (!params.includes(key)) {\n filteredQuery[key] = query[key];\n }\n });\n return filteredQuery;\n}\n/**\n* Resolves a given hyperlink with a certain router state (basePath not included).\n* Preserves absolute urls.\n*/\n\n\nfunction resolveHref(currentPath, href, resolveAs) {\n // we use a dummy base url for relative urls\n var base = new URL(currentPath, 'http://n');\n var urlAsString = typeof href === 'string' ? href : (0, _utils.formatWithValidation)(href);\n\n try {\n var finalUrl = new URL(urlAsString, base);\n finalUrl.pathname = (0, _normalizeTrailingSlash.normalizePathTrailingSlash)(finalUrl.pathname);\n var interpolatedAs = '';\n\n if ((0, _isDynamic.isDynamicRoute)(finalUrl.pathname) && finalUrl.searchParams && resolveAs) {\n var query = (0, _querystring.searchParamsToUrlQuery)(finalUrl.searchParams);\n\n var _interpolateAs = interpolateAs(finalUrl.pathname, finalUrl.pathname, query),\n result = _interpolateAs.result,\n params = _interpolateAs.params;\n\n if (result) {\n interpolatedAs = (0, _utils.formatWithValidation)({\n pathname: result,\n hash: finalUrl.hash,\n query: omitParmsFromQuery(query, params)\n });\n }\n } // if the origin didn't change, it means we received a relative href\n\n\n var resolvedHref = finalUrl.origin === base.origin ? finalUrl.href.slice(finalUrl.origin.length) : finalUrl.href;\n return resolveAs ? [resolvedHref, interpolatedAs || resolvedHref] : resolvedHref;\n } catch (_) {\n return resolveAs ? [urlAsString] : urlAsString;\n }\n}\n\nvar PAGE_LOAD_ERROR = Symbol('PAGE_LOAD_ERROR');\n\nfunction markLoadingError(err) {\n return Object.defineProperty(err, PAGE_LOAD_ERROR, {});\n}\n\nfunction prepareUrlAs(router, url, as) {\n // If url and as provided as an object representation,\n // we'll format them into the string version here.\n return {\n url: addBasePath(resolveHref(router.pathname, url)),\n as: as ? addBasePath(resolveHref(router.pathname, as)) : as\n };\n}\n\nvar manualScrollRestoration = false && false;\n\nfunction fetchRetry(url, attempts) {\n return fetch(url, {\n // Cookies are required to be present for Next.js' SSG \"Preview Mode\".\n // Cookies may also be required for `getServerSideProps`.\n //\n // > `fetch` won’t send cookies, unless you set the credentials init\n // > option.\n // https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch\n //\n // > For maximum browser compatibility when it comes to sending &\n // > receiving cookies, always supply the `credentials: 'same-origin'`\n // > option instead of relying on the default.\n // https://github.com/github/fetch#caveats\n credentials: 'same-origin'\n }).then(function (res) {\n if (!res.ok) {\n if (attempts > 1 && res.status >= 500) {\n return fetchRetry(url, attempts - 1);\n }\n\n throw new Error(\"Failed to load static props\");\n }\n\n return res.json();\n });\n}\n\nfunction fetchNextData(dataHref, isServerRender) {\n return fetchRetry(dataHref, isServerRender ? 3 : 1)[\"catch\"](function (err) {\n // We should only trigger a server-side transition if this was caused\n // on a client-side transition. Otherwise, we'd get into an infinite\n // loop.\n if (!isServerRender) {\n markLoadingError(err);\n }\n\n throw err;\n });\n}\n\nvar Router = /*#__PURE__*/function () {\n /**\n * Map of all components loaded in `Router`\n */\n // Static Data Cache\n function Router(_pathname, _query, _as, _ref) {\n var _this = this;\n\n var initialProps = _ref.initialProps,\n pageLoader = _ref.pageLoader,\n App = _ref.App,\n wrapApp = _ref.wrapApp,\n Component = _ref.Component,\n initialStyleSheets = _ref.initialStyleSheets,\n err = _ref.err,\n subscription = _ref.subscription,\n isFallback = _ref.isFallback,\n locale = _ref.locale,\n locales = _ref.locales,\n defaultLocale = _ref.defaultLocale;\n\n _classCallCheck(this, Router);\n\n this.route = void 0;\n this.pathname = void 0;\n this.query = void 0;\n this.asPath = void 0;\n this.basePath = void 0;\n this.components = void 0;\n this.sdc = {};\n this.sub = void 0;\n this.clc = void 0;\n this.pageLoader = void 0;\n this._bps = void 0;\n this.events = void 0;\n this._wrapApp = void 0;\n this.isSsr = void 0;\n this.isFallback = void 0;\n this._inFlightRoute = void 0;\n this._shallow = void 0;\n this.locale = void 0;\n this.locales = void 0;\n this.defaultLocale = void 0;\n\n this.onPopState = function (e) {\n var state = e.state;\n\n if (!state) {\n // We get state as undefined for two reasons.\n // 1. With older safari (< 8) and older chrome (< 34)\n // 2. When the URL changed with #\n //\n // In the both cases, we don't need to proceed and change the route.\n // (as it's already changed)\n // But we can simply replace the state with the new changes.\n // Actually, for (1) we don't need to nothing. But it's hard to detect that event.\n // So, doing the following for (1) does no harm.\n var _pathname2 = _this.pathname,\n query = _this.query;\n\n _this.changeState('replaceState', (0, _utils.formatWithValidation)({\n pathname: addBasePath(_pathname2),\n query: query\n }), (0, _utils.getURL)());\n\n return;\n }\n\n if (!state.__N) {\n return;\n }\n\n var url = state.url,\n as = state.as,\n options = state.options;\n\n var _ref2 = (0, _parseRelativeUrl.parseRelativeUrl)(url),\n pathname = _ref2.pathname; // Make sure we don't re-render on initial load,\n // can be caused by navigating back from an external site\n\n\n if (_this.isSsr && as === _this.asPath && pathname === _this.pathname) {\n return;\n } // If the downstream application returns falsy, return.\n // They will then be responsible for handling the event.\n\n\n if (_this._bps && !_this._bps(state)) {\n return;\n }\n\n _this.change('replaceState', url, as, Object.assign({}, options, {\n shallow: options.shallow && _this._shallow\n }));\n }; // represents the current component key\n\n\n this.route = (0, _normalizeTrailingSlash.removePathTrailingSlash)(_pathname); // set up the component cache (by route keys)\n\n this.components = {}; // We should not keep the cache, if there's an error\n // Otherwise, this cause issues when when going back and\n // come again to the errored page.\n\n if (_pathname !== '/_error') {\n this.components[this.route] = {\n Component: Component,\n styleSheets: initialStyleSheets,\n props: initialProps,\n err: err,\n __N_SSG: initialProps && initialProps.__N_SSG,\n __N_SSP: initialProps && initialProps.__N_SSP\n };\n }\n\n this.components['/_app'] = {\n Component: App,\n styleSheets: [\n /* /_app does not need its stylesheets managed */\n ]\n }; // Backwards compat for Router.router.events\n // TODO: Should be remove the following major version as it was never documented\n\n this.events = Router.events;\n this.pageLoader = pageLoader;\n this.pathname = _pathname;\n this.query = _query; // if auto prerendered and dynamic route wait to update asPath\n // until after mount to prevent hydration mismatch\n\n this.asPath = // @ts-ignore this is temporarily global (attached to window)\n (0, _isDynamic.isDynamicRoute)(_pathname) && __NEXT_DATA__.autoExport ? _pathname : _as;\n this.basePath = basePath;\n this.sub = subscription;\n this.clc = null;\n this._wrapApp = wrapApp; // make sure to ignore extra popState in safari on navigating\n // back from external site\n\n this.isSsr = true;\n this.isFallback = isFallback;\n\n if (false) {}\n\n if (true) {\n // make sure \"as\" doesn't start with double slashes or else it can\n // throw an error as it's considered invalid\n if (_as.substr(0, 2) !== '//') {\n // in order for `e.state` to work on the `onpopstate` event\n // we have to register the initial route upon initialization\n this.changeState('replaceState', (0, _utils.formatWithValidation)({\n pathname: addBasePath(_pathname),\n query: _query\n }), (0, _utils.getURL)());\n }\n\n window.addEventListener('popstate', this.onPopState); // enable custom scroll restoration handling when available\n // otherwise fallback to browser's default handling\n\n if (false) { var debouncedScrollSave, scrollDebounceTimeout; }\n }\n }\n\n _createClass(Router, [{\n key: \"reload\",\n value: function reload() {\n window.location.reload();\n }\n /**\n * Go back in history\n */\n\n }, {\n key: \"back\",\n value: function back() {\n window.history.back();\n }\n /**\n * Performs a `pushState` with arguments\n * @param url of the route\n * @param as masks `url` for the browser\n * @param options object you can define `shallow` and other options\n */\n\n }, {\n key: \"push\",\n value: function push(url) {\n var as = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : url;\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n ;\n\n var _prepareUrlAs = prepareUrlAs(this, url, as);\n\n url = _prepareUrlAs.url;\n as = _prepareUrlAs.as;\n return this.change('pushState', url, as, options);\n }\n /**\n * Performs a `replaceState` with arguments\n * @param url of the route\n * @param as masks `url` for the browser\n * @param options object you can define `shallow` and other options\n */\n\n }, {\n key: \"replace\",\n value: function replace(url) {\n var as = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : url;\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n ;\n\n var _prepareUrlAs2 = prepareUrlAs(this, url, as);\n\n url = _prepareUrlAs2.url;\n as = _prepareUrlAs2.as;\n return this.change('replaceState', url, as, options);\n }\n }, {\n key: \"change\",\n value: function () {\n var _change = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(method, url, as, options) {\n var _this2 = this;\n\n var cleanedAs, pages, _yield$this$pageLoade, rewrites, parsed, _parsed, pathname, query, route, _options$shallow, shallow, resolvedAs, potentialHref, parsedAs, asPathname, routeRegex, routeMatch, shouldInterpolate, interpolatedAs, missingParams, routeInfo, error, props, __N_SSG, __N_SSP, destination, parsedHref, appComp;\n\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (isLocalURL(url)) {\n _context.next = 3;\n break;\n }\n\n window.location.href = url;\n return _context.abrupt(\"return\", false);\n\n case 3:\n if (!options._h) {\n this.isSsr = false;\n } // marking route changes as a navigation start entry\n\n\n if (_utils.ST) {\n performance.mark('routeChange');\n }\n\n if (this._inFlightRoute) {\n this.abortComponentLoad(this._inFlightRoute);\n }\n\n as = addLocale(as, this.locale, this.defaultLocale);\n cleanedAs = delLocale(hasBasePath(as) ? delBasePath(as) : as, this.locale);\n this._inFlightRoute = as; // If the url change is only related to a hash change\n // We should not proceed. We should only change the state.\n // WARNING: `_h` is an internal option for handing Next.js client-side\n // hydration. Your app should _never_ use this property. It may change at\n // any time without notice.\n\n if (!(!options._h && this.onlyAHashChange(cleanedAs))) {\n _context.next = 17;\n break;\n }\n\n this.asPath = cleanedAs;\n Router.events.emit('hashChangeStart', as); // TODO: do we need the resolved href when only a hash change?\n\n this.changeState(method, url, as, options);\n this.scrollToHash(cleanedAs);\n this.notify(this.components[this.route]);\n Router.events.emit('hashChangeComplete', as);\n return _context.abrupt(\"return\", true);\n\n case 17:\n _context.next = 19;\n return this.pageLoader.getPageList();\n\n case 19:\n pages = _context.sent;\n _context.next = 22;\n return this.pageLoader.promisedBuildManifest;\n\n case 22:\n _yield$this$pageLoade = _context.sent;\n rewrites = _yield$this$pageLoade.__rewrites;\n parsed = (0, _parseRelativeUrl.parseRelativeUrl)(url);\n _parsed = parsed, pathname = _parsed.pathname, query = _parsed.query;\n parsed = this._resolveHref(parsed, pages);\n\n if (parsed.pathname !== pathname) {\n pathname = parsed.pathname;\n url = (0, _utils.formatWithValidation)(parsed);\n } // url and as should always be prefixed with basePath by this\n // point by either next/link or router.push/replace so strip the\n // basePath from the pathname to match the pages dir 1-to-1\n\n\n pathname = pathname ? (0, _normalizeTrailingSlash.removePathTrailingSlash)(delBasePath(pathname)) : pathname; // If asked to change the current URL we should reload the current page\n // (not location.reload() but reload getInitialProps and other Next.js stuffs)\n // We also need to set the method = replaceState always\n // as this should not go into the history (That's how browsers work)\n // We should compare the new asPath to the current asPath, not the url\n\n if (!this.urlIsNew(cleanedAs)) {\n method = 'replaceState';\n }\n\n route = (0, _normalizeTrailingSlash.removePathTrailingSlash)(pathname);\n _options$shallow = options.shallow, shallow = _options$shallow === void 0 ? false : _options$shallow; // we need to resolve the as value using rewrites for dynamic SSG\n // pages to allow building the data URL correctly\n\n resolvedAs = as;\n\n if (true) {\n resolvedAs = (0, _resolveRewrites[\"default\"])((0, _parseRelativeUrl.parseRelativeUrl)(as).pathname, pages, basePath, rewrites, query, function (p) {\n return _this2._resolveHref({\n pathname: p\n }, pages).pathname;\n });\n\n if (resolvedAs !== as) {\n potentialHref = (0, _normalizeTrailingSlash.removePathTrailingSlash)(this._resolveHref(Object.assign({}, parsed, {\n pathname: resolvedAs\n }), pages, false).pathname); // if this directly matches a page we need to update the href to\n // allow the correct page chunk to be loaded\n\n if (pages.includes(potentialHref)) {\n route = potentialHref;\n pathname = potentialHref;\n parsed.pathname = pathname;\n url = (0, _utils.formatWithValidation)(parsed);\n }\n }\n }\n\n resolvedAs = delLocale(delBasePath(resolvedAs), this.locale);\n\n if (!(0, _isDynamic.isDynamicRoute)(route)) {\n _context.next = 50;\n break;\n }\n\n parsedAs = (0, _parseRelativeUrl.parseRelativeUrl)(resolvedAs);\n asPathname = parsedAs.pathname;\n routeRegex = (0, _routeRegex.getRouteRegex)(route);\n routeMatch = (0, _routeMatcher.getRouteMatcher)(routeRegex)(asPathname);\n shouldInterpolate = route === asPathname;\n interpolatedAs = shouldInterpolate ? interpolateAs(route, asPathname, query) : {};\n\n if (!(!routeMatch || shouldInterpolate && !interpolatedAs.result)) {\n _context.next = 49;\n break;\n }\n\n missingParams = Object.keys(routeRegex.groups).filter(function (param) {\n return !query[param];\n });\n\n if (!(missingParams.length > 0)) {\n _context.next = 47;\n break;\n }\n\n if (true) {\n console.warn(\"\".concat(shouldInterpolate ? \"Interpolating href\" : \"Mismatching `as` and `href`\", \" failed to manually provide \") + \"the params: \".concat(missingParams.join(', '), \" in the `href`'s `query`\"));\n }\n\n throw new Error((shouldInterpolate ? \"The provided `href` (\".concat(url, \") value is missing query values (\").concat(missingParams.join(', '), \") to be interpolated properly. \") : \"The provided `as` value (\".concat(asPathname, \") is incompatible with the `href` value (\").concat(route, \"). \")) + \"Read more: https://err.sh/vercel/next.js/\".concat(shouldInterpolate ? 'href-interpolation-failed' : 'incompatible-href-as'));\n\n case 47:\n _context.next = 50;\n break;\n\n case 49:\n if (shouldInterpolate) {\n as = (0, _utils.formatWithValidation)(Object.assign({}, parsedAs, {\n pathname: interpolatedAs.result,\n query: omitParmsFromQuery(query, interpolatedAs.params)\n }));\n } else {\n // Merge params into `query`, overwriting any specified in search\n Object.assign(query, routeMatch);\n }\n\n case 50:\n Router.events.emit('routeChangeStart', as);\n _context.prev = 51;\n _context.next = 54;\n return this.getRouteInfo(route, pathname, query, as, shallow);\n\n case 54:\n routeInfo = _context.sent;\n error = routeInfo.error, props = routeInfo.props, __N_SSG = routeInfo.__N_SSG, __N_SSP = routeInfo.__N_SSP; // handle redirect on client-transition\n\n if (!((__N_SSG || __N_SSP) && props && props.pageProps && props.pageProps.__N_REDIRECT)) {\n _context.next = 65;\n break;\n }\n\n destination = props.pageProps.__N_REDIRECT; // check if destination is internal (resolves to a page) and attempt\n // client-navigation if it is falling back to hard navigation if\n // it's not\n\n if (!destination.startsWith('/')) {\n _context.next = 63;\n break;\n }\n\n parsedHref = (0, _parseRelativeUrl.parseRelativeUrl)(destination);\n\n this._resolveHref(parsedHref, pages);\n\n if (!pages.includes(parsedHref.pathname)) {\n _context.next = 63;\n break;\n }\n\n return _context.abrupt(\"return\", this.change('replaceState', destination, destination, options));\n\n case 63:\n window.location.href = destination;\n return _context.abrupt(\"return\", new Promise(function () {}));\n\n case 65:\n Router.events.emit('beforeHistoryChange', as);\n this.changeState(method, url, addLocale(as, this.locale, this.defaultLocale), options);\n\n if (true) {\n appComp = this.components['/_app'].Component;\n window.next.isPrerendered = appComp.getInitialProps === appComp.origGetInitialProps && !routeInfo.Component.getInitialProps;\n }\n\n _context.next = 70;\n return this.set(route, pathname, query, cleanedAs, routeInfo)[\"catch\"](function (e) {\n if (e.cancelled) error = error || e;else throw e;\n });\n\n case 70:\n if (!error) {\n _context.next = 73;\n break;\n }\n\n Router.events.emit('routeChangeError', error, cleanedAs);\n throw error;\n\n case 73:\n if (false) {}\n\n Router.events.emit('routeChangeComplete', as);\n return _context.abrupt(\"return\", true);\n\n case 78:\n _context.prev = 78;\n _context.t0 = _context[\"catch\"](51);\n\n if (!_context.t0.cancelled) {\n _context.next = 82;\n break;\n }\n\n return _context.abrupt(\"return\", false);\n\n case 82:\n throw _context.t0;\n\n case 83:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this, [[51, 78]]);\n }));\n\n function change(_x, _x2, _x3, _x4) {\n return _change.apply(this, arguments);\n }\n\n return change;\n }()\n }, {\n key: \"changeState\",\n value: function changeState(method, url, as) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n if (true) {\n if (typeof window.history === 'undefined') {\n console.error(\"Warning: window.history is not available.\");\n return;\n }\n\n if (typeof window.history[method] === 'undefined') {\n console.error(\"Warning: window.history.\".concat(method, \" is not available\"));\n return;\n }\n }\n\n if (method !== 'pushState' || (0, _utils.getURL)() !== as) {\n this._shallow = options.shallow;\n window.history[method]({\n url: url,\n as: as,\n options: options,\n __N: true\n }, // Most browsers currently ignores this parameter, although they may use it in the future.\n // Passing the empty string here should be safe against future changes to the method.\n // https://developer.mozilla.org/en-US/docs/Web/API/History/replaceState\n '', as);\n }\n }\n }, {\n key: \"handleRouteInfoError\",\n value: function () {\n var _handleRouteInfoError = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(err, pathname, query, as, loadErrorFail) {\n var _yield$this$fetchComp, Component, styleSheets, routeInfo;\n\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (!err.cancelled) {\n _context2.next = 2;\n break;\n }\n\n throw err;\n\n case 2:\n if (!(PAGE_LOAD_ERROR in err || loadErrorFail)) {\n _context2.next = 6;\n break;\n }\n\n Router.events.emit('routeChangeError', err, as); // If we can't load the page it could be one of following reasons\n // 1. Page doesn't exists\n // 2. Page does exist in a different zone\n // 3. Internal error while loading the page\n // So, doing a hard reload is the proper way to deal with this.\n\n window.location.href = as; // Changing the URL doesn't block executing the current code path.\n // So let's throw a cancellation error stop the routing logic.\n\n throw buildCancellationError();\n\n case 6:\n _context2.prev = 6;\n _context2.next = 9;\n return this.fetchComponent('/_error');\n\n case 9:\n _yield$this$fetchComp = _context2.sent;\n Component = _yield$this$fetchComp.page;\n styleSheets = _yield$this$fetchComp.styleSheets;\n routeInfo = {\n Component: Component,\n styleSheets: styleSheets,\n err: err,\n error: err\n };\n _context2.prev = 13;\n _context2.next = 16;\n return this.getInitialProps(Component, {\n err: err,\n pathname: pathname,\n query: query\n });\n\n case 16:\n routeInfo.props = _context2.sent;\n _context2.next = 23;\n break;\n\n case 19:\n _context2.prev = 19;\n _context2.t0 = _context2[\"catch\"](13);\n console.error('Error in error page `getInitialProps`: ', _context2.t0);\n routeInfo.props = {};\n\n case 23:\n return _context2.abrupt(\"return\", routeInfo);\n\n case 26:\n _context2.prev = 26;\n _context2.t1 = _context2[\"catch\"](6);\n return _context2.abrupt(\"return\", this.handleRouteInfoError(_context2.t1, pathname, query, as, true));\n\n case 29:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this, [[6, 26], [13, 19]]);\n }));\n\n function handleRouteInfoError(_x5, _x6, _x7, _x8, _x9) {\n return _handleRouteInfoError.apply(this, arguments);\n }\n\n return handleRouteInfoError;\n }()\n }, {\n key: \"getRouteInfo\",\n value: function () {\n var _getRouteInfo = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(route, pathname, query, as) {\n var _this3 = this;\n\n var shallow,\n cachedRouteInfo,\n routeInfo,\n Component,\n __N_SSG,\n __N_SSP,\n _require,\n isValidElementType,\n dataHref,\n props,\n _args3 = arguments;\n\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n shallow = _args3.length > 4 && _args3[4] !== undefined ? _args3[4] : false;\n _context3.prev = 1;\n cachedRouteInfo = this.components[route];\n\n if (!(shallow && cachedRouteInfo && this.route === route)) {\n _context3.next = 5;\n break;\n }\n\n return _context3.abrupt(\"return\", cachedRouteInfo);\n\n case 5:\n if (!cachedRouteInfo) {\n _context3.next = 9;\n break;\n }\n\n _context3.t0 = cachedRouteInfo;\n _context3.next = 12;\n break;\n\n case 9:\n _context3.next = 11;\n return this.fetchComponent(route).then(function (res) {\n return {\n Component: res.page,\n styleSheets: res.styleSheets,\n __N_SSG: res.mod.__N_SSG,\n __N_SSP: res.mod.__N_SSP\n };\n });\n\n case 11:\n _context3.t0 = _context3.sent;\n\n case 12:\n routeInfo = _context3.t0;\n Component = routeInfo.Component, __N_SSG = routeInfo.__N_SSG, __N_SSP = routeInfo.__N_SSP;\n\n if (false) {}\n\n _require = __webpack_require__(/*! react-is */ \"./node_modules/react-is/index.js\"), isValidElementType = _require.isValidElementType;\n\n if (isValidElementType(Component)) {\n _context3.next = 18;\n break;\n }\n\n throw new Error(\"The default export is not a React Component in page: \\\"\".concat(pathname, \"\\\"\"));\n\n case 18:\n if (__N_SSG || __N_SSP) {\n dataHref = this.pageLoader.getDataHref((0, _utils.formatWithValidation)({\n pathname: pathname,\n query: query\n }), delBasePath(as), __N_SSG, this.locale, this.defaultLocale);\n }\n\n _context3.next = 21;\n return this._getData(function () {\n return __N_SSG ? _this3._getStaticData(dataHref) : __N_SSP ? _this3._getServerData(dataHref) : _this3.getInitialProps(Component, // we provide AppTree later so this needs to be `any`\n {\n pathname: pathname,\n query: query,\n asPath: as\n });\n });\n\n case 21:\n props = _context3.sent;\n routeInfo.props = props;\n this.components[route] = routeInfo;\n return _context3.abrupt(\"return\", routeInfo);\n\n case 27:\n _context3.prev = 27;\n _context3.t1 = _context3[\"catch\"](1);\n return _context3.abrupt(\"return\", this.handleRouteInfoError(_context3.t1, pathname, query, as));\n\n case 30:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, this, [[1, 27]]);\n }));\n\n function getRouteInfo(_x10, _x11, _x12, _x13) {\n return _getRouteInfo.apply(this, arguments);\n }\n\n return getRouteInfo;\n }()\n }, {\n key: \"set\",\n value: function set(route, pathname, query, as, data) {\n this.isFallback = false;\n this.route = route;\n this.pathname = pathname;\n this.query = query;\n this.asPath = as;\n return this.notify(data);\n }\n /**\n * Callback to execute before replacing router state\n * @param cb callback to be executed\n */\n\n }, {\n key: \"beforePopState\",\n value: function beforePopState(cb) {\n this._bps = cb;\n }\n }, {\n key: \"onlyAHashChange\",\n value: function onlyAHashChange(as) {\n if (!this.asPath) return false;\n\n var _this$asPath$split = this.asPath.split('#'),\n _this$asPath$split2 = _slicedToArray(_this$asPath$split, 2),\n oldUrlNoHash = _this$asPath$split2[0],\n oldHash = _this$asPath$split2[1];\n\n var _as$split = as.split('#'),\n _as$split2 = _slicedToArray(_as$split, 2),\n newUrlNoHash = _as$split2[0],\n newHash = _as$split2[1]; // Makes sure we scroll to the provided hash if the url/hash are the same\n\n\n if (newHash && oldUrlNoHash === newUrlNoHash && oldHash === newHash) {\n return true;\n } // If the urls are change, there's more than a hash change\n\n\n if (oldUrlNoHash !== newUrlNoHash) {\n return false;\n } // If the hash has changed, then it's a hash only change.\n // This check is necessary to handle both the enter and\n // leave hash === '' cases. The identity case falls through\n // and is treated as a next reload.\n\n\n return oldHash !== newHash;\n }\n }, {\n key: \"scrollToHash\",\n value: function scrollToHash(as) {\n var _as$split3 = as.split('#'),\n _as$split4 = _slicedToArray(_as$split3, 2),\n hash = _as$split4[1]; // Scroll to top if the hash is just `#` with no value\n\n\n if (hash === '') {\n window.scrollTo(0, 0);\n return;\n } // First we check if the element by id is found\n\n\n var idEl = document.getElementById(hash);\n\n if (idEl) {\n idEl.scrollIntoView();\n return;\n } // If there's no element with the id, we check the `name` property\n // To mirror browsers\n\n\n var nameEl = document.getElementsByName(hash)[0];\n\n if (nameEl) {\n nameEl.scrollIntoView();\n }\n }\n }, {\n key: \"urlIsNew\",\n value: function urlIsNew(asPath) {\n return this.asPath !== asPath;\n }\n }, {\n key: \"_resolveHref\",\n value: function _resolveHref(parsedHref, pages) {\n var applyBasePath = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var pathname = parsedHref.pathname;\n var cleanPathname = (0, _normalizeTrailingSlash.removePathTrailingSlash)((0, _denormalizePagePath.denormalizePagePath)(applyBasePath ? delBasePath(pathname) : pathname));\n\n if (cleanPathname === '/404' || cleanPathname === '/_error') {\n return parsedHref;\n } // handle resolving href for dynamic routes\n\n\n if (!pages.includes(cleanPathname)) {\n // eslint-disable-next-line array-callback-return\n pages.some(function (page) {\n if ((0, _isDynamic.isDynamicRoute)(page) && (0, _routeRegex.getRouteRegex)(page).re.test(cleanPathname)) {\n parsedHref.pathname = applyBasePath ? addBasePath(page) : page;\n return true;\n }\n });\n }\n\n return parsedHref;\n }\n /**\n * Prefetch page code, you may wait for the data during page rendering.\n * This feature only works in production!\n * @param url the href of prefetched page\n * @param asPath the as path of the prefetched page\n */\n\n }, {\n key: \"prefetch\",\n value: function () {\n var _prefetch = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(url) {\n var asPath,\n options,\n parsed,\n _parsed2,\n pathname,\n pages,\n route,\n _args4 = arguments;\n\n return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n asPath = _args4.length > 1 && _args4[1] !== undefined ? _args4[1] : url;\n options = _args4.length > 2 && _args4[2] !== undefined ? _args4[2] : {};\n parsed = (0, _parseRelativeUrl.parseRelativeUrl)(url);\n _parsed2 = parsed, pathname = _parsed2.pathname;\n _context4.next = 6;\n return this.pageLoader.getPageList();\n\n case 6:\n pages = _context4.sent;\n parsed = this._resolveHref(parsed, pages);\n\n if (parsed.pathname !== pathname) {\n pathname = parsed.pathname;\n url = (0, _utils.formatWithValidation)(parsed);\n } // Prefetch is not supported in development mode because it would trigger on-demand-entries\n\n\n if (false) {}\n\n return _context4.abrupt(\"return\");\n\n case 11:\n route = (0, _normalizeTrailingSlash.removePathTrailingSlash)(pathname);\n _context4.next = 14;\n return Promise.all([this.pageLoader.prefetchData(url, asPath, this.locale, this.defaultLocale), this.pageLoader[options.priority ? 'loadPage' : 'prefetch'](route)]);\n\n case 14:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4, this);\n }));\n\n function prefetch(_x14) {\n return _prefetch.apply(this, arguments);\n }\n\n return prefetch;\n }()\n }, {\n key: \"fetchComponent\",\n value: function () {\n var _fetchComponent = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(route) {\n var cancelled, cancel, componentResult, error;\n return _regeneratorRuntime.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n cancelled = false;\n\n cancel = this.clc = function () {\n cancelled = true;\n };\n\n _context5.next = 4;\n return this.pageLoader.loadPage(route);\n\n case 4:\n componentResult = _context5.sent;\n\n if (!cancelled) {\n _context5.next = 9;\n break;\n }\n\n error = new Error(\"Abort fetching component for route: \\\"\".concat(route, \"\\\"\"));\n error.cancelled = true;\n throw error;\n\n case 9:\n if (cancel === this.clc) {\n this.clc = null;\n }\n\n return _context5.abrupt(\"return\", componentResult);\n\n case 11:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5, this);\n }));\n\n function fetchComponent(_x15) {\n return _fetchComponent.apply(this, arguments);\n }\n\n return fetchComponent;\n }()\n }, {\n key: \"_getData\",\n value: function _getData(fn) {\n var _this4 = this;\n\n var cancelled = false;\n\n var cancel = function cancel() {\n cancelled = true;\n };\n\n this.clc = cancel;\n return fn().then(function (data) {\n if (cancel === _this4.clc) {\n _this4.clc = null;\n }\n\n if (cancelled) {\n var err = new Error('Loading initial props cancelled');\n err.cancelled = true;\n throw err;\n }\n\n return data;\n });\n }\n }, {\n key: \"_getStaticData\",\n value: function _getStaticData(dataHref) {\n var _this5 = this;\n\n var _URL = new URL(dataHref, window.location.href),\n cacheKey = _URL.href;\n\n if (false) {}\n\n return fetchNextData(dataHref, this.isSsr).then(function (data) {\n _this5.sdc[cacheKey] = data;\n return data;\n });\n }\n }, {\n key: \"_getServerData\",\n value: function _getServerData(dataHref) {\n return fetchNextData(dataHref, this.isSsr);\n }\n }, {\n key: \"getInitialProps\",\n value: function getInitialProps(Component, ctx) {\n var App = this.components['/_app'].Component;\n\n var AppTree = this._wrapApp(App);\n\n ctx.AppTree = AppTree;\n return (0, _utils.loadGetInitialProps)(App, {\n AppTree: AppTree,\n Component: Component,\n router: this,\n ctx: ctx\n });\n }\n }, {\n key: \"abortComponentLoad\",\n value: function abortComponentLoad(as) {\n if (this.clc) {\n Router.events.emit('routeChangeError', buildCancellationError(), as);\n this.clc();\n this.clc = null;\n }\n }\n }, {\n key: \"notify\",\n value: function notify(data) {\n return this.sub(data, this.components['/_app'].Component);\n }\n }]);\n\n return Router;\n}();\n\nexports[\"default\"] = Router;\nRouter.events = (0, _mitt[\"default\"])();\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.i);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uLy4uLy4uL25leHQtc2VydmVyL2xpYi9yb3V0ZXIvcm91dGVyLnRzPzM1YjgiXSwibmFtZXMiOlsiYmFzZVBhdGgiLCJwcm9jZXNzIiwiT2JqZWN0IiwiY2FuY2VsbGVkIiwicHJlZml4IiwicGF0aCIsImFkZFBhdGhQcmVmaXgiLCJ1cmwiLCJsb2NhdGlvbk9yaWdpbiIsInJlc29sdmVkIiwiaGFzQmFzZVBhdGgiLCJpbnRlcnBvbGF0ZWRSb3V0ZSIsImR5bmFtaWNSZWdleCIsImR5bmFtaWNHcm91cHMiLCJkeW5hbWljTWF0Y2hlcyIsImFzUGF0aG5hbWUiLCJwYXJhbXMiLCJwYXJhbSIsInZhbHVlIiwicmVwbGFjZWQiLCJyZXBlYXQiLCJBcnJheSIsIm9wdGlvbmFsIiwiZXNjYXBlUGF0aERlbGltaXRlcnMiLCJyZXN1bHQiLCJmaWx0ZXJlZFF1ZXJ5Iiwia2V5IiwicXVlcnkiLCJiYXNlIiwidXJsQXNTdHJpbmciLCJmaW5hbFVybCIsImludGVycG9sYXRlZEFzIiwiaW50ZXJwb2xhdGVBcyIsInBhdGhuYW1lIiwiaGFzaCIsIm9taXRQYXJtc0Zyb21RdWVyeSIsInJlc29sdmVkSHJlZiIsInJlc29sdmVBcyIsIlBBR0VfTE9BRF9FUlJPUiIsIlN5bWJvbCIsImFkZEJhc2VQYXRoIiwicmVzb2x2ZUhyZWYiLCJyb3V0ZXIiLCJhcyIsIm1hbnVhbFNjcm9sbFJlc3RvcmF0aW9uIiwiY3JlZGVudGlhbHMiLCJyZXMiLCJhdHRlbXB0cyIsImZldGNoUmV0cnkiLCJpc1NlcnZlclJlbmRlciIsImVyciIsIm1hcmtMb2FkaW5nRXJyb3IiLCJSb3V0ZXIiLCJjb25zdHJ1Y3RvciIsInJvdXRlIiwiYXNQYXRoIiwiY29tcG9uZW50cyIsInNkYyIsInN1YiIsImNsYyIsInBhZ2VMb2FkZXIiLCJfYnBzIiwiZXZlbnRzIiwiX3dyYXBBcHAiLCJpc1NzciIsImlzRmFsbGJhY2siLCJfaW5GbGlnaHRSb3V0ZSIsIl9zaGFsbG93IiwibG9jYWxlIiwibG9jYWxlcyIsImRlZmF1bHRMb2NhbGUiLCJlIiwic3RhdGUiLCJzaGFsbG93Iiwib3B0aW9ucyIsIkNvbXBvbmVudCIsInN0eWxlU2hlZXRzIiwicHJvcHMiLCJfX05fU1NHIiwiaW5pdGlhbFByb3BzIiwiX19OX1NTUCIsIl9fTkVYVF9EQVRBX18iLCJ3aW5kb3ciLCJyZWxvYWQiLCJiYWNrIiwicHVzaCIsInByZXBhcmVVcmxBcyIsInJlcGxhY2UiLCJpc0xvY2FsVVJMIiwiU1QiLCJwZXJmb3JtYW5jZSIsImFkZExvY2FsZSIsImNsZWFuZWRBcyIsImRlbExvY2FsZSIsImRlbEJhc2VQYXRoIiwicGFnZXMiLCJfX3Jld3JpdGVzIiwicGFyc2VkIiwibWV0aG9kIiwicmVzb2x2ZWRBcyIsInAiLCJwb3RlbnRpYWxIcmVmIiwicGFyc2VkQXMiLCJyb3V0ZVJlZ2V4Iiwicm91dGVNYXRjaCIsInNob3VsZEludGVycG9sYXRlIiwibWlzc2luZ1BhcmFtcyIsImNvbnNvbGUiLCJyb3V0ZUluZm8iLCJkZXN0aW5hdGlvbiIsInBhcnNlZEhyZWYiLCJhcHBDb21wIiwiZXJyb3IiLCJfX04iLCJidWlsZENhbmNlbGxhdGlvbkVycm9yIiwicGFnZSIsImNhY2hlZFJvdXRlSW5mbyIsInJlcXVpcmUiLCJpc1ZhbGlkRWxlbWVudFR5cGUiLCJkYXRhSHJlZiIsImJlZm9yZVBvcFN0YXRlIiwib25seUFIYXNoQ2hhbmdlIiwibmV3SGFzaCIsIm9sZFVybE5vSGFzaCIsIm9sZEhhc2giLCJzY3JvbGxUb0hhc2giLCJpZEVsIiwiZG9jdW1lbnQiLCJuYW1lRWwiLCJ1cmxJc05ldyIsIl9yZXNvbHZlSHJlZiIsImFwcGx5QmFzZVBhdGgiLCJjbGVhblBhdGhuYW1lIiwiUHJvbWlzZSIsImNhbmNlbCIsImNvbXBvbmVudFJlc3VsdCIsImZuIiwiZGF0YSIsIl9nZXRTdGF0aWNEYXRhIiwiaHJlZiIsImZldGNoTmV4dERhdGEiLCJfZ2V0U2VydmVyRGF0YSIsImdldEluaXRpYWxQcm9wcyIsIkFw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QWJBLE1BQTBDSCxjQUFELEVBQVU7QUFDeEQ7QUFDQTtBQUZGLE9BQU9HLENBQVA7QUFNRkM7OzttQ0FBYyxRLEVBQW9DO0FBQ2hELGFBQU9ELGFBQWEsV0FBVyxLQUEvQixLQUFvQixDQUFwQjtBQUdGRTs7O29DQUFlLFMsRUFBQSxHLEVBR0M7QUFBQSxVQUNSLEdBRFEsR0FDYSxnQkFBM0IsT0FBMkIsQ0FEYixDQUNObkUsU0FETTs7QUFFZCxVQUFNb0UsT0FBTyxHQUFHLGNBQWhCLEdBQWdCLENBQWhCOztBQUNBQyxTQUFHLENBQUhBO0FBQ0EsYUFBTyxxQ0FBaUQ7QUFDdERELGVBRHNELEVBQ3REQSxPQURzRDtBQUV0RHBFLGlCQUZzRCxFQUV0REEsU0FGc0Q7QUFHdERqQyxjQUFNLEVBSGdEO0FBSXREc0csV0FKRixFQUlFQTtBQUpzRCxPQUFqRCxDQUFQO0FBUUZDOzs7dUNBQWtCLEUsRUFBbUI7QUFDbkMsVUFBSSxLQUFKLEtBQWM7QUFDWjdGLGNBQU0sQ0FBTkEsZ0NBQXVDOEQsc0JBQXZDOUQ7QUFDQTtBQUNBO0FBRUg7QUFFRDhGOzs7MkJBQU0sSSxFQUF3QztBQUM1QyxhQUFPLGVBQWUseUJBQXRCLFNBQU8sQ0FBUDtBQXozQjhDOzs7Ozs7O0FBQTdCOUYsTSxDQTJCWlUsTUEzQllWLEdBMkJVLHVCQTNCVkEiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtc2VydmVyL2xpYi9yb3V0ZXIvcm91dGVyLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZ2xvYmFsIF9fTkVYVF9EQVRBX18gKi9cbi8vIHRzbGludDpkaXNhYmxlOm5vLWNvbnNvbGVcbmltcG9ydCB7IFBhcnNlZFVybFF1ZXJ5IH0gZnJvbSAncXVlcnlzdHJpbmcnXG5pbXBvcnQgeyBDb21wb25lbnRUeXBlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBVcmxPYmplY3QgfSBmcm9tICd1cmwnXG5pbXBvcnQge1xuICBub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaCxcbiAgcmVtb3ZlUGF0aFRyYWlsaW5nU2xhc2gsXG59IGZyb20gJy4uLy4uLy4uL2NsaWVudC9ub3JtYWxpemUtdHJhaWxpbmctc2xhc2gnXG5pbXBvcnQgeyBHb29kUGFnZUNhY2hlLCBTdHlsZVNoZWV0VHVwbGUgfSBmcm9tICcuLi8uLi8uLi9jbGllbnQvcGFnZS1sb2FkZXInXG5pbXBvcnQgeyBkZW5vcm1hbGl6ZVBhZ2VQYXRoIH0gZnJvbSAnLi4vLi4vc2VydmVyL2Rlbm9ybWFsaXplLXBhZ2UtcGF0aCdcbmltcG9ydCBtaXR0LCB7IE1pdHRFbWl0dGVyIH0gZnJvbSAnLi4vbWl0dCdcbmltcG9ydCB7XG4gIEFwcENvbnRleHRUeXBlLFxuICBmb3JtYXRXaXRoVmFsaWRhdGlvbixcbiAgZ2V0TG9jYXRpb25PcmlnaW4sXG4gIGdldFVSTCxcbiAgbG9hZEdldEluaXRpYWxQcm9wcyxcbiAgTmV4dFBhZ2VDb250ZXh0LFxuICBTVCxcbn0gZnJvbSAnLi4vdXRpbHMnXG5pbXBvcnQgeyBpc0R5bmFtaWNSb3V0ZSB9IGZyb20gJy4vdXRpbHMvaXMtZHluYW1pYydcbmltcG9ydCB7IHBhcnNlUmVsYXRpdmVVcmwgfSBmcm9tICcuL3V0aWxzL3BhcnNlLXJlbGF0aXZlLXVybCdcbmltcG9ydCB7IHNlYXJjaFBhcmFtc1RvVXJsUXVlcnkgfSBmcm9tICcuL3V0aWxzL3F1ZXJ5c3RyaW5nJ1xuaW1wb3J0IHJlc29sdmVSZXdyaXRlcyBmcm9tICcuL3V0aWxzL3Jlc29sdmUtcmV3cml0ZXMnXG5pbXBvcnQgeyBnZXRSb3V0ZU1hdGNoZXIgfSBmcm9tICcuL3V0aWxzL3JvdXRlLW1hdGNoZXInXG5pbXBvcnQgeyBnZXRSb3V0ZVJlZ2V4IH0gZnJvbSAnLi91dGlscy9yb3V0ZS1yZWdleCdcbmltcG9ydCBlc2NhcGVQYXRoRGVsaW1pdGVycyBmcm9tICcuL3V0aWxzL2VzY2FwZS1wYXRoLWRlbGltaXRlcnMnXG5cbmludGVyZmFjZSBUcmFuc2l0aW9uT3B0aW9ucyB7XG4gIHNoYWxsb3c/OiBib29sZWFuXG59XG5cbmludGVyZmFjZSBOZXh0SGlzdG9yeVN0YXRlIHtcbiAgdXJsOiBzdHJpbmdcbiAgYXM6IHN0cmluZ1xuICBvcHRpb25zOiBUcmFuc2l0aW9uT3B0aW9uc1xufVxuXG50eXBlIEhpc3RvcnlTdGF0ZSA9IG51bGwgfCB7IF9fTjogZmFsc2UgfSB8ICh7IF9fTjogdHJ1ZSB9ICYgTmV4dEhpc3RvcnlTdGF0ZSlcblxuY29uc3QgYmFzZVBhdGggPSAocHJvY2Vzcy5lbnYuX19ORVhUX1JPVVRFUl9CQVNFUEFUSCBhcyBzdHJpbmcpIHx8ICcnXG5cbmZ1bmN0aW9uIGJ1aWxkQ2FuY2VsbGF0aW9uRXJyb3IoKSB7XG4gIHJldHVybiBPYmplY3QuYXNzaWduKG5ldyBFcnJvcignUm91dGUgQ2FuY2VsbGVkJyksIHtcbiAgICBjYW5jZWxsZWQ6IHRydWUsXG4gIH0pXG59XG5cbmZ1bmN0aW9uIGFkZFBhdGhQcmVmaXgocGF0aDogc3RyaW5nLCBwcmVmaXg/OiBzdHJpbmcpIHtcbiAgcmV0dXJuIHByZWZpeCAmJiBwYXRoLnN0YXJ0c1dpdGgoJy8nKVxuICAgID8gcGF0aCA9PT0gJy8nXG4gICAgICA/IG5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoKHByZWZpeClcbiAgICAgIDogYCR7cHJlZml4fSR7cGF0aH1gXG4gICAgOiBwYXRoXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGRMb2NhbGUoXG4gIHBhdGg6IHN0cmluZyxcbiAgbG9jYWxlPzogc3RyaW5nLFxuICBkZWZhdWx0TG9jYWxlPzogc3RyaW5nXG4pIHtcbiAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9pMThuX1NVUFBPUlQpIHtcbiAgICByZXR1cm4gbG9jYWxlICYmIGxvY2FsZSAhPT0gZGVmYXVsdExvY2FsZSAmJiAhcGF0aC5zdGFydHNXaXRoKCcvJyArIGxvY2FsZSlcbiAgICAgID8gYWRkUGF0aFByZWZpeChwYXRoLCAnLycgKyBsb2NhbGUpXG4gICAgICA6IHBhdGhcbiAgfVxuICByZXR1cm4gcGF0aFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVsTG9jYWxlKHBhdGg6IHN0cmluZywgbG9jYWxlPzogc3RyaW5nKSB7XG4gIGlmIChwcm9jZXNzLmVudi5fX05FWFRfaTE4bl9TVVBQT1JUKSB7XG4gICAgcmV0dXJuIGxvY2FsZSAmJiBwYXRoLnN0YXJ0c1dpdGgoJy8nICsgbG9jYWxlKVxuICAgICAgPyBwYXRoLnN1YnN0cihsb2NhbGUubGVuZ3RoICsgMSkgfHwgJy8nXG4gICAgICA6IHBhdGhcbiAgfVxuICByZXR1cm4gcGF0aFxufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzQmFzZVBhdGgocGF0aDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBwYXRoID09PSBiYXNlUGF0aCB8fCBwYXRoLnN0YXJ0c1dpdGgoYmFzZVBhdGggKyAnLycpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGRCYXNlUGF0aChwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICAvLyB3ZSBvbmx5IGFkZCB0aGUgYmFzZXBhdGggb24gcmVsYXRpdmUgdXJsc1xuICByZXR1cm4gYWRkUGF0aFByZWZpeChwYXRoLCBiYXNlUGF0aClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlbEJhc2VQYXRoKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBwYXRoLnNsaWNlKGJhc2VQYXRoLmxlbmd0aCkgfHwgJy8nXG59XG5cbi8qKlxuICogRGV0ZWN0cyB3aGV0aGVyIGEgZ2l2ZW4gdXJsIGlzIHJvdXRhYmxlIGJ5IHRoZSBOZXh0LmpzIHJvdXRlciAoYnJvd3NlciBvbmx5KS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTG9jYWxVUkwodXJsOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKHVybC5zdGFydHNXaXRoKCcvJykpIHJldHVybiB0cnVlXG4gIHRyeSB7XG4gICAgLy8gYWJzb2x1dGUgdXJscyBjYW4gYmUgbG9jYWwgaWYgdGhleSBhcmUgb24gdGhlIHNhbWUgb3JpZ2luXG4gICAgY29uc3QgbG9jYXRpb25PcmlnaW4gPSBnZXRMb2NhdGlvbk9yaWdpbigpXG4gICAgY29uc3QgcmVzb2x2ZWQgPSBuZXcgVVJMKHVybCwgbG9jYXRpb25PcmlnaW4pXG4gICAgcmV0dXJuIHJlc29sdmVkLm9yaWdpbiA9PT0gbG9jYXRpb25PcmlnaW4gJiYgaGFzQmFzZVBhdGgocmVzb2x2ZWQucGF0aG5hbWUpXG4gIH0gY2F0Y2ggKF8pIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxufVxuXG50eXBlIFVybCA9IFVybE9iamVjdCB8IHN0cmluZ1xuXG5leHBvcnQgZnVuY3Rpb24gaW50ZXJwb2xhdGVBcyhcbiAgcm91dGU6IHN0cmluZyxcbiAgYXNQYXRobmFtZTogc3RyaW5nLFxuICBxdWVyeTogUGFyc2VkVXJsUXVlcnlcbikge1xuICBsZXQgaW50ZXJwb2xhdGVkUm91dGUgPSAnJ1xuXG4gIGNvbnN0IGR5bmFtaWNSZWdleCA9IGdldFJvdXRlUmVnZXgocm91dGUpXG4gIGNvbnN0IGR5bmFtaWNHcm91cHMgPSBkeW5hbWljUmVnZXguZ3JvdXBzXG4gIGNvbnN0IGR5bmFtaWNNYXRjaGVzID1cbiAgICAvLyBUcnkgdG8gbWF0Y2ggdGhlIGR5bmFtaWMgcm91dGUgYWdhaW5zdCB0aGUgYXNQYXRoXG4gICAgKGFzUGF0aG5hbWUgIT09IHJvdXRlID8gZ2V0Um91dGVNYXRjaGVyKGR5bmFtaWNSZWdleCkoYXNQYXRobmFtZSkgOiAnJykgfHxcbiAgICAvLyBGYWxsIGJhY2sgdG8gcmVhZGluZyB0aGUgdmFsdWVzIGZyb20gdGhlIGhyZWZcbiAgICAvLyBUT0RPOiBzaG91bGQgdGhpcyB0YWtlIHByaW9yaXR5OyBhbHNvIG5lZWQgdG8gY2hhbmdlIGluIHRoZSByb3V0ZXIuXG4gICAgcXVlcnlcblxuICBpbnRlcnBvbGF0ZWRSb3V0ZSA9IHJvdXRlXG4gIGNvbnN0IHBhcmFtcyA9IE9iamVjdC5rZXlzKGR5bmFtaWNHcm91cHMpXG5cbiAgaWYgKFxuICAgICFwYXJhbXMuZXZlcnkoKHBhcmFtKSA9PiB7XG4gICAgICBsZXQgdmFsdWUgPSBkeW5hbWljTWF0Y2hlc1twYXJhbV0gfHwgJydcbiAgICAgIGNvbnN0IHsgcmVwZWF0LCBvcHRpb25hbCB9ID0gZHluYW1pY0dyb3Vwc1twYXJhbV1cblxuICAgICAgLy8gc3VwcG9ydCBzaW5nbGUtbGV2ZWwgY2F0Y2gtYWxsXG4gICAgICAvLyBUT0RPOiBtb3JlIHJvYnVzdCBoYW5kbGluZyBmb3IgdXNlci1lcnJvciAocGFzc2luZyBgL2ApXG4gICAgICBsZXQgcmVwbGFjZWQgPSBgWyR7cmVwZWF0ID8gJy4uLicgOiAnJ30ke3BhcmFtfV1gXG4gICAgICBpZiAob3B0aW9uYWwpIHtcbiAgICAgICAgcmVwbGFjZWQgPSBgJHshdmFsdWUgPyAnLycgOiAnJ31bJHtyZXBsYWNlZH1dYFxuICAgICAgfVxuICAgICAgaWYgKHJlcGVhdCAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHZhbHVlID0gW3ZhbHVlXVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICAob3B0aW9uYWwgfHwgcGFyYW0gaW4gZHluYW1pY01hdGNoZXMpICYmXG4gICAgICAgIC8vIEludGVycG9sYXRlIGdyb3VwIGludG8gZGF0YSBVUkwgaWYgcHJlc2VudFxuICAgICAgICAoaW50ZXJwb2xhdGVkUm91dGUgPVxuICAgICAgICAgIGludGVycG9sYXRlZFJvdXRlIS5yZXBsYWNlKFxuICAgICAgICAgICAgcmVwbGFjZWQsXG4gICAgICAgICAgICByZXBlYXRcbiAgICAgICAgICAgICAgPyAodmFsdWUgYXMgc3RyaW5nW10pLm1hcChlc2NhcGVQYXRoRGVsaW1pdGVycykuam9pbignLycpXG4gICAgICAgICAgICAgIDogZXNjYXBlUGF0aERlbGltaXRlcnModmFsdWUgYXMgc3RyaW5nKVxuICAgICAgICAgICkgfHwgJy8nKVxuICAgICAgKVxuICAgIH0pXG4gICkge1xuICAgIGludGVycG9sYXRlZFJvdXRlID0gJycgLy8gZGlkIG5vdCBzYXRpc2Z5IGFsbCByZXF1aXJlbWVudHNcblxuICAgIC8vIG4uYi4gV2UgaWdub3JlIHRoaXMgZXJyb3IgYmVjYXVzZSB3ZSBoYW5kbGUgd2FybmluZyBmb3IgdGhpcyBjYXNlIGluXG4gICAgLy8gZGV2ZWxvcG1lbnQgaW4gdGhlIGA8TGluaz5gIGNvbXBvbmVudCBkaXJlY3RseS5cbiAgfVxuICByZXR1cm4ge1xuICAgIHBhcmFtcyxcbiAgICByZXN1bHQ6IGludGVycG9sYXRlZFJvdXRlLFxuICB9XG59XG5cbmZ1bmN0aW9uIG9taXRQYXJtc0Zyb21RdWVyeShxdWVyeTogUGFyc2VkVXJsUXVlcnksIHBhcmFtczogc3RyaW5nW10pIHtcbiAgY29uc3QgZmlsdGVyZWRRdWVyeTogUGFyc2VkVXJsUXVlcnkgPSB7fVxuXG4gIE9iamVjdC5rZXlzKHF1ZXJ5KS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICBpZiAoIXBhcmFtcy5pbmNsdWRlcyhrZXkpKSB7XG4gICAgICBmaWx0ZXJlZFF1ZXJ5W2tleV0gPSBxdWVyeVtrZXldXG4gICAgfVxuICB9KVxuICByZXR1cm4gZmlsdGVyZWRRdWVyeVxufVxuXG4vKipcbiAqIFJlc29sdmVzIGEgZ2l2ZW4gaHlwZXJsaW5rIHdpdGggYSBjZXJ0YWluIHJvdXRlciBzdGF0ZSAoYmFzZVBhdGggbm90IGluY2x1ZGVkKS5cbiAqIFByZXNlcnZlcyBhYnNvbHV0ZSB1cmxzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUhyZWYoXG4gIGN1cnJlbnRQYXRoOiBzdHJpbmcsXG4gIGhyZWY6IFVybCxcbiAgcmVzb2x2ZUFzPzogYm9vbGVhblxuKTogc3RyaW5nIHtcbiAgLy8gd2UgdXNlIGEgZHVtbXkgYmFzZSB1cmwgZm9yIHJlbGF0aXZlIHVybHNcbiAgY29uc3QgYmFzZSA9IG5ldyBVUkwoY3VycmVudFBhdGgsICdodHRwOi8vbicpXG4gIGNvbnN0IHVybEFzU3RyaW5nID1cbiAgICB0eXBlb2YgaHJlZiA9PT0gJ3N0cmluZycgPyBocmVmIDogZm9ybWF0V2l0aFZhbGlkYXRpb24oaHJlZilcbiAgdHJ5IHtcbiAgICBjb25zdCBmaW5hbFVybCA9IG5ldyBVUkwodXJsQXNTdHJpbmcsIGJhc2UpXG4gICAgZmluYWxVcmwucGF0aG5hbWUgPSBub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaChmaW5hbFVybC5wYXRobmFtZSlcbiAgICBsZXQgaW50ZXJwb2xhdGVkQXMgPSAnJ1xuXG4gICAgaWYgKFxuICAgICAgaXNEeW5hbWljUm91dGUoZmluYWxVcmwucGF0aG5hbWUpICYmXG4gICAgICBmaW5hbFVybC5zZWFyY2hQYXJhbXMgJiZcbiAgICAgIHJlc29sdmVBc1xuICAgICkge1xuICAgICAgY29uc3QgcXVlcnkgPSBzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5KGZpbmFsVXJsLnNlYXJjaFBhcmFtcylcblxuICAgICAgY29uc3QgeyByZXN1bHQsIHBhcmFtcyB9ID0gaW50ZXJwb2xhdGVBcyhcbiAgICAgICAgZmluYWxVcmwucGF0aG5hbWUsXG4gICAgICAgIGZpbmFsVXJsLnBhdGhuYW1lLFxuICAgICAgICBxdWVyeVxuICAgICAgKVxuXG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIGludGVycG9sYXRlZEFzID0gZm9ybWF0V2l0aFZhbGlkYXRpb24oe1xuICAgICAgICAgIHBhdGhuYW1lOiByZXN1bHQsXG4gICAgICAgICAgaGFzaDogZmluYWxVcmwuaGFzaCxcbiAgICAgICAgICBxdWVyeTogb21pdFBhcm1zRnJvbVF1ZXJ5KHF1ZXJ5LCBwYXJhbXMpLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGlmIHRoZSBvcmlnaW4gZGlkbid0IGNoYW5nZSwgaXQgbWVhbnMgd2UgcmVjZWl2ZWQgYSByZWxhdGl2ZSBocmVmXG4gICAgY29uc3QgcmVzb2x2ZWRIcmVmID1cbiAgICAgIGZpbmFsVXJsLm9yaWdpbiA9PT0gYmFzZS5vcmlnaW5cbiAgICAgICAgPyBmaW5hbFVybC5ocmVmLnNsaWNlKGZpbmFsVXJsLm9yaWdpbi5sZW5ndGgpXG4gICAgICAgIDogZmluYWxVcmwuaHJlZlxuXG4gICAgcmV0dXJuIChyZXNvbHZlQXNcbiAgICAgID8gW3Jlc29sdmVkSHJlZiwgaW50ZXJwb2xhdGVkQXMgfHwgcmVzb2x2ZWRIcmVmXVxuICAgICAgOiByZXNvbHZlZEhyZWYpIGFzIHN0cmluZ1xuICB9IGNhdGNoIChfKSB7XG4gICAgcmV0dXJuIChyZXNvbHZlQXMgPyBbdXJsQXNTdHJpbmddIDogdXJsQXNTdHJpbmcpIGFzIHN0cmluZ1xuICB9XG59XG5cbmNvbnN0IFBBR0VfTE9BRF9FUlJPUiA9IFN5bWJvbCgnUEFHRV9MT0FEX0VSUk9SJylcbmV4cG9ydCBmdW5jdGlvbiBtYXJrTG9hZGluZ0Vycm9yKGVycjogRXJyb3IpOiBFcnJvciB7XG4gIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXJyLCBQQUdFX0xPQURfRVJST1IsIHt9KVxufVxuXG5mdW5jdGlvbiBwcmVwYXJlVXJsQXMocm91dGVyOiBOZXh0Um91dGVyLCB1cmw6IFVybCwgYXM6IFVybCkge1xuICAvLyBJZiB1cmwgYW5kIGFzIHByb3ZpZGVkIGFzIGFuIG9iamVjdCByZXByZXNlbnRhdGlvbixcbiAgLy8gd2UnbGwgZm9ybWF0IHRoZW0gaW50byB0aGUgc3RyaW5nIHZlcnNpb24gaGVyZS5cbiAgcmV0dXJuIHtcbiAgICB1cmw6IGFkZEJhc2VQYXRoKHJlc29sdmVIcmVmKHJvdXRlci5wYXRobmFtZSwgdXJsKSksXG4gICAgYXM6IGFzID8gYWRkQmFzZVBhdGgocmVzb2x2ZUhyZWYocm91dGVyLnBhdGhuYW1lLCBhcykpIDogYXMsXG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgQmFzZVJvdXRlciA9IHtcbiAgcm91dGU6IHN0cmluZ1xuICBwYXRobmFtZTogc3RyaW5nXG4gIHF1ZXJ5OiBQYXJzZWRVcmxRdWVyeVxuICBhc1BhdGg6IHN0cmluZ1xuICBiYXNlUGF0aDogc3RyaW5nXG4gIGxvY2FsZT86IHN0cmluZ1xuICBsb2NhbGVzPzogc3RyaW5nW11cbiAgZGVmYXVsdExvY2FsZT86IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBOZXh0Um91dGVyID0gQmFzZVJvdXRlciAmXG4gIFBpY2s8XG4gICAgUm91dGVyLFxuICAgIHwgJ3B1c2gnXG4gICAgfCAncmVwbGFjZSdcbiAgICB8ICdyZWxvYWQnXG4gICAgfCAnYmFjaydcbiAgICB8ICdwcmVmZXRjaCdcbiAgICB8ICdiZWZvcmVQb3BTdGF0ZSdcbiAgICB8ICdldmVudHMnXG4gICAgfCAnaXNGYWxsYmFjaydcbiAgPlxuXG5leHBvcnQgdHlwZSBQcmVmZXRjaE9wdGlvbnMgPSB7XG4gIHByaW9yaXR5PzogYm9vbGVhblxufVxuXG5leHBvcnQgdHlwZSBQcml2YXRlUm91dGVJbmZvID0ge1xuICBDb21wb25lbnQ6IENvbXBvbmVudFR5cGVcbiAgc3R5bGVTaGVldHM6IFN0eWxlU2hlZXRUdXBsZVtdXG4gIF9fTl9TU0c/OiBib29sZWFuXG4gIF9fTl9TU1A/OiBib29sZWFuXG4gIHByb3BzPzogUmVjb3JkPHN0cmluZywgYW55PlxuICBlcnI/OiBFcnJvclxuICBlcnJvcj86IGFueVxufVxuXG5leHBvcnQgdHlwZSBBcHBQcm9wcyA9IFBpY2s8UHJpdmF0ZVJvdXRlSW5mbywgJ0NvbXBvbmVudCcgfCAnZXJyJz4gJiB7XG4gIHJvdXRlcjogUm91dGVyXG59ICYgUmVjb3JkPHN0cmluZywgYW55PlxuZXhwb3J0IHR5cGUgQXBwQ29tcG9uZW50ID0gQ29tcG9uZW50VHlwZTxBcHBQcm9wcz5cblxudHlwZSBTdWJzY3JpcHRpb24gPSAoZGF0YTogUHJpdmF0ZVJvdXRlSW5mbywgQXBwOiBBcHBDb21wb25lbnQpID0+IFByb21pc2U8dm9pZD5cblxudHlwZSBCZWZvcmVQb3BTdGF0ZUNhbGxiYWNrID0gKHN0YXRlOiBOZXh0SGlzdG9yeVN0YXRlKSA9PiBib29sZWFuXG5cbnR5cGUgQ29tcG9uZW50TG9hZENhbmNlbCA9ICgoKSA9PiB2b2lkKSB8IG51bGxcblxudHlwZSBIaXN0b3J5TWV0aG9kID0gJ3JlcGxhY2VTdGF0ZScgfCAncHVzaFN0YXRlJ1xuXG5jb25zdCBtYW51YWxTY3JvbGxSZXN0b3JhdGlvbiA9XG4gIHByb2Nlc3MuZW52Ll9fTkVYVF9TQ1JPTExfUkVTVE9SQVRJT04gJiZcbiAgdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgJ3Njcm9sbFJlc3RvcmF0aW9uJyBpbiB3aW5kb3cuaGlzdG9yeVxuXG5mdW5jdGlvbiBmZXRjaFJldHJ5KHVybDogc3RyaW5nLCBhdHRlbXB0czogbnVtYmVyKTogUHJvbWlzZTxhbnk+IHtcbiAgcmV0dXJuIGZldGNoKHVybCwge1xuICAgIC8vIENvb2tpZXMgYXJlIHJlcXVpcmVkIHRvIGJlIHByZXNlbnQgZm9yIE5leHQuanMnIFNTRyBcIlByZXZpZXcgTW9kZVwiLlxuICAgIC8vIENvb2tpZXMgbWF5IGFsc28gYmUgcmVxdWlyZWQgZm9yIGBnZXRTZXJ2ZXJTaWRlUHJvcHNgLlxuICAgIC8vXG4gICAgLy8gPiBgZmV0Y2hgIHdvbuKAmXQgc2VuZCBjb29raWVzLCB1bmxlc3MgeW91IHNldCB0aGUgY3JlZGVudGlhbHMgaW5pdFxuICAgIC8vID4gb3B0aW9uLlxuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9GZXRjaF9BUEkvVXNpbmdfRmV0Y2hcbiAgICAvL1xuICAgIC8vID4gRm9yIG1heGltdW0gYnJvd3NlciBjb21wYXRpYmlsaXR5IHdoZW4gaXQgY29tZXMgdG8gc2VuZGluZyAmXG4gICAgLy8gPiByZWNlaXZpbmcgY29va2llcywgYWx3YXlzIHN1cHBseSB0aGUgYGNyZWRlbnRpYWxzOiAnc2FtZS1vcmlnaW4nYFxuICAgIC8vID4gb3B0aW9uIGluc3RlYWQgb2YgcmVseWluZyBvbiB0aGUgZGVmYXVsdC5cbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZ2l0aHViL2ZldGNoI2NhdmVhdHNcbiAgICBjcmVkZW50aWFsczogJ3NhbWUtb3JpZ2luJyxcbiAgfSkudGhlbigocmVzKSA9PiB7XG4gICAgaWYgKCFyZXMub2spIHtcbiAgICAgIGlmIChhdHRlbXB0cyA+IDEgJiYgcmVzLnN0YXR1cyA+PSA1MDApIHtcbiAgICAgICAgcmV0dXJuIGZldGNoUmV0cnkodXJsLCBhdHRlbXB0cyAtIDEpXG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBsb2FkIHN0YXRpYyBwcm9wc2ApXG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcy5qc29uKClcbiAgfSlcbn1cblxuZnVuY3Rpb24gZmV0Y2hOZXh0RGF0YShkYXRhSHJlZjogc3RyaW5nLCBpc1NlcnZlclJlbmRlcjogYm9vbGVhbikge1xuICByZXR1cm4gZmV0Y2hSZXRyeShkYXRhSHJlZiwgaXNTZXJ2ZXJSZW5kZXIgPyAzIDogMSkuY2F0Y2goKGVycjogRXJyb3IpID0+IHtcbiAgICAvLyBXZSBzaG91bGQgb25seSB0cmlnZ2VyIGEgc2VydmVyLXNpZGUgdHJhbnNpdGlvbiBpZiB0aGlzIHdhcyBjYXVzZWRcbiAgICAvLyBvbiBhIGNsaWVudC1zaWRlIHRyYW5zaXRpb24uIE90aGVyd2lzZSwgd2UnZCBnZXQgaW50byBhbiBpbmZpbml0ZVxuICAgIC8vIGxvb3AuXG4gICAgaWYgKCFpc1NlcnZlclJlbmRlcikge1xuICAgICAgbWFya0xvYWRpbmdFcnJvcihlcnIpXG4gICAgfVxuICAgIHRocm93IGVyclxuICB9KVxufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSb3V0ZXIgaW1wbGVtZW50cyBCYXNlUm91dGVyIHtcbiAgcm91dGU6IHN0cmluZ1xuICBwYXRobmFtZTogc3RyaW5nXG4gIHF1ZXJ5OiBQYXJzZWRVcmxRdWVyeVxuICBhc1BhdGg6IHN0cmluZ1xuICBiYXNlUGF0aDogc3RyaW5nXG5cbiAgLyoqXG4gICAqIE1hcCBvZiBhbGwgY29tcG9uZW50cyBsb2FkZWQgaW4gYFJvdXRlcmBcbiAgICovXG4gIGNvbXBvbmVudHM6IHsgW3BhdGhuYW1lOiBzdHJpbmddOiBQcml2YXRlUm91dGVJbmZvIH1cbiAgLy8gU3RhdGljIERhdGEgQ2FjaGVcbiAgc2RjOiB7IFthc1BhdGg6IHN0cmluZ106IG9iamVjdCB9ID0ge31cbiAgc3ViOiBTdWJzY3JpcHRpb25cbiAgY2xjOiBDb21wb25lbnRMb2FkQ2FuY2VsXG4gIHBhZ2VMb2FkZXI6IGFueVxuICBfYnBzOiBCZWZvcmVQb3BTdGF0ZUNhbGxiYWNrIHwgdW5kZWZpbmVkXG4gIGV2ZW50czogTWl0dEVtaXR0ZXJcbiAgX3dyYXBBcHA6IChBcHA6IEFwcENvbXBvbmVudCkgPT4gYW55XG4gIGlzU3NyOiBib29sZWFuXG4gIGlzRmFsbGJhY2s6IGJvb2xlYW5cbiAgX2luRmxpZ2h0Um91dGU/OiBzdHJpbmdcbiAgX3NoYWxsb3c/OiBib29sZWFuXG4gIGxvY2FsZT86IHN0cmluZ1xuICBsb2NhbGVzPzogc3RyaW5nW11cbiAgZGVmYXVsdExvY2FsZT86IHN0cmluZ1xuXG4gIHN0YXRpYyBldmVudHM6IE1pdHRFbWl0dGVyID0gbWl0dCgpXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcGF0aG5hbWU6IHN0cmluZyxcbiAgICBxdWVyeTogUGFyc2VkVXJsUXVlcnksXG4gICAgYXM6IHN0cmluZyxcbiAgICB7XG4gICAgICBpbml0aWFsUHJvcHMsXG4gICAgICBwYWdlTG9hZGVyLFxuICAgICAgQXBwLFxuICAgICAgd3JhcEFwcCxcbiAgICAgIENvbXBvbmVudCxcbiAgICAgIGluaXRpYWxTdHlsZVNoZWV0cyxcbiAgICAgIGVycixcbiAgICAgIHN1YnNjcmlwdGlvbixcbiAgICAgIGlzRmFsbGJhY2ssXG4gICAgICBsb2NhbGUsXG4gICAgICBsb2NhbGVzLFxuICAgICAgZGVmYXVsdExvY2FsZSxcbiAgICB9OiB7XG4gICAgICBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvblxuICAgICAgaW5pdGlhbFByb3BzOiBhbnlcbiAgICAgIHBhZ2VMb2FkZXI6IGFueVxuICAgICAgQ29tcG9uZW50OiBDb21wb25lbnRUeXBlXG4gICAgICBpbml0aWFsU3R5bGVTaGVldHM6IFN0eWxlU2hlZXRUdXBsZVtdXG4gICAgICBBcHA6IEFwcENvbXBvbmVudFxuICAgICAgd3JhcEFwcDogKEFwcDogQXBwQ29tcG9uZW50KSA9PiBhbnlcbiAgICAgIGVycj86IEVycm9yXG4gICAgICBpc0ZhbGxiYWNrOiBib29sZWFuXG4gICAgICBsb2NhbGU/OiBzdHJpbmdcbiAgICAgIGxvY2FsZXM/OiBzdHJpbmdbXVxuICAgICAgZGVmYXVsdExvY2FsZT86IHN0cmluZ1xuICAgIH1cbiAgKSB7XG4gICAgLy8gcmVwcmVzZW50cyB0aGUgY3VycmVudCBjb21wb25lbnQga2V5XG4gICAgdGhpcy5yb3V0ZSA9IHJlbW92ZVBhdGhUcmFpbGluZ1NsYXNoKHBhdGhuYW1lKVxuXG4gICAgLy8gc2V0IHVwIHRoZSBjb21wb25lbnQgY2FjaGUgKGJ5IHJvdXRlIGtleXMpXG4gICAgdGhpcy5jb21wb25lbnRzID0ge31cbiAgICAvLyBXZSBzaG91bGQgbm90IGtlZXAgdGhlIGNhY2hlLCBpZiB0aGVyZSdzIGFuIGVycm9yXG4gICAgLy8gT3RoZXJ3aXNlLCB0aGlzIGNhdXNlIGlzc3VlcyB3aGVuIHdoZW4gZ29pbmcgYmFjayBhbmRcbiAgICAvLyBjb21lIGFnYWluIHRvIHRoZSBlcnJvcmVkIHBhZ2UuXG4gICAgaWYgKHBhdGhuYW1lICE9PSAnL19lcnJvcicpIHtcbiAgICAgIHRoaXMuY29tcG9uZW50c1t0aGlzLnJvdXRlXSA9IHtcbiAgICAgICAgQ29tcG9uZW50LFxuICAgICAgICBzdHlsZVNoZWV0czogaW5pdGlhbFN0eWxlU2hlZXRzLFxuICAgICAgICBwcm9wczogaW5pdGlhbFByb3BzLFxuICAgICAgICBlcnIsXG4gICAgICAgIF9fTl9TU0c6IGluaXRpYWxQcm9wcyAmJiBpbml0aWFsUHJvcHMuX19OX1NTRyxcbiAgICAgICAgX19OX1NTUDogaW5pdGlhbFByb3BzICYmIGluaXRpYWxQcm9wcy5fX05fU1NQLFxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuY29tcG9uZW50c1snL19hcHAnXSA9IHtcbiAgICAgIENvbXBvbmVudDogQXBwIGFzIENvbXBvbmVudFR5cGUsXG4gICAgICBzdHlsZVNoZWV0czogW1xuICAgICAgICAvKiAvX2FwcCBkb2VzIG5vdCBuZWVkIGl0cyBzdHlsZXNoZWV0cyBtYW5hZ2VkICovXG4gICAgICBdLFxuICAgIH1cblxuICAgIC8vIEJhY2t3YXJkcyBjb21wYXQgZm9yIFJvdXRlci5yb3V0ZXIuZXZlbnRzXG4gICAgLy8gVE9ETzogU2hvdWxkIGJlIHJlbW92ZSB0aGUgZm9sbG93aW5nIG1ham9yIHZlcnNpb24gYXMgaXQgd2FzIG5ldmVyIGRvY3VtZW50ZWRcbiAgICB0aGlzLmV2ZW50cyA9IFJvdXRlci5ldmVudHNcblxuICAgIHRoaXMucGFnZUxvYWRlciA9IHBhZ2VMb2FkZXJcbiAgICB0aGlzLnBhdGhuYW1lID0gcGF0aG5hbWVcbiAgICB0aGlzLnF1ZXJ5ID0gcXVlcnlcbiAgICAvLyBpZiBhdXRvIHByZXJlbmRlcmVkIGFuZCBkeW5hbWljIHJvdXRlIHdhaXQgdG8gdXBkYXRlIGFzUGF0aFxuICAgIC8vIHVudGlsIGFmdGVyIG1vdW50IHRvIHByZXZlbnQgaHlkcmF0aW9uIG1pc21hdGNoXG4gICAgdGhpcy5hc1BhdGggPVxuICAgICAgLy8gQHRzLWlnbm9yZSB0aGlzIGlzIHRlbXBvcmFyaWx5IGdsb2JhbCAoYXR0YWNoZWQgdG8gd2luZG93KVxuICAgICAgaXNEeW5hbWljUm91dGUocGF0aG5hbWUpICYmIF9fTkVYVF9EQVRBX18uYXV0b0V4cG9ydCA/IHBhdGhuYW1lIDogYXNcbiAgICB0aGlzLmJhc2VQYXRoID0gYmFzZVBhdGhcbiAgICB0aGlzLnN1YiA9IHN1YnNjcmlwdGlvblxuICAgIHRoaXMuY2xjID0gbnVsbFxuICAgIHRoaXMuX3dyYXBBcHAgPSB3cmFwQXBwXG4gICAgLy8gbWFrZSBzdXJlIHRvIGlnbm9yZSBleHRyYSBwb3BTdGF0ZSBpbiBzYWZhcmkgb24gbmF2aWdhdGluZ1xuICAgIC8vIGJhY2sgZnJvbSBleHRlcm5hbCBzaXRlXG4gICAgdGhpcy5pc1NzciA9IHRydWVcblxuICAgIHRoaXMuaXNGYWxsYmFjayA9IGlzRmFsbGJhY2tcblxuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfaTE4bl9TVVBQT1JUKSB7XG4gICAgICB0aGlzLmxvY2FsZSA9IGxvY2FsZVxuICAgICAgdGhpcy5sb2NhbGVzID0gbG9jYWxlc1xuICAgICAgdGhpcy5kZWZhdWx0TG9jYWxlID0gZGVmYXVsdExvY2FsZVxuICAgIH1cblxuICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgLy8gbWFrZSBzdXJlIFwiYXNcIiBkb2Vzbid0IHN0YXJ0IHdpdGggZG91YmxlIHNsYXNoZXMgb3IgZWxzZSBpdCBjYW5cbiAgICAgIC8vIHRocm93IGFuIGVycm9yIGFzIGl0J3MgY29uc2lkZXJlZCBpbnZhbGlkXG4gICAgICBpZiAoYXMuc3Vic3RyKDAsIDIpICE9PSAnLy8nKSB7XG4gICAgICAgIC8vIGluIG9yZGVyIGZvciBgZS5zdGF0ZWAgdG8gd29yayBvbiB0aGUgYG9ucG9wc3RhdGVgIGV2ZW50XG4gICAgICAgIC8vIHdlIGhhdmUgdG8gcmVnaXN0ZXIgdGhlIGluaXRpYWwgcm91dGUgdXBvbiBpbml0aWFsaXphdGlvblxuICAgICAgICB0aGlzLmNoYW5nZVN0YXRlKFxuICAgICAgICAgICdyZXBsYWNlU3RhdGUnLFxuICAgICAgICAgIGZvcm1hdFdpdGhWYWxpZGF0aW9uKHsgcGF0aG5hbWU6IGFkZEJhc2VQYXRoKHBhdGhuYW1lKSwgcXVlcnkgfSksXG4gICAgICAgICAgZ2V0VVJMKClcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncG9wc3RhdGUnLCB0aGlzLm9uUG9wU3RhdGUpXG5cbiAgICAgIC8vIGVuYWJsZSBjdXN0b20gc2Nyb2xsIHJlc3RvcmF0aW9uIGhhbmRsaW5nIHdoZW4gYXZhaWxhYmxlXG4gICAgICAvLyBvdGhlcndpc2UgZmFsbGJhY2sgdG8gYnJvd3NlcidzIGRlZmF1bHQgaGFuZGxpbmdcbiAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfU0NST0xMX1JFU1RPUkFUSU9OKSB7XG4gICAgICAgIGlmIChtYW51YWxTY3JvbGxSZXN0b3JhdGlvbikge1xuICAgICAgICAgIHdpbmRvdy5oaXN0b3J5LnNjcm9sbFJlc3RvcmF0aW9uID0gJ21hbnVhbCdcblxuICAgICAgICAgIGxldCBzY3JvbGxEZWJvdW5jZVRpbWVvdXQ6IHVuZGVmaW5lZCB8IE5vZGVKUy5UaW1lb3V0XG5cbiAgICAgICAgICBjb25zdCBkZWJvdW5jZWRTY3JvbGxTYXZlID0gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHNjcm9sbERlYm91bmNlVGltZW91dCkgY2xlYXJUaW1lb3V0KHNjcm9sbERlYm91bmNlVGltZW91dClcblxuICAgICAgICAgICAgc2Nyb2xsRGVib3VuY2VUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHsgdXJsLCBhczogY3VyQXMsIG9wdGlvbnMgfSA9IGhpc3Rvcnkuc3RhdGVcbiAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VTdGF0ZShcbiAgICAgICAgICAgICAgICAncmVwbGFjZVN0YXRlJyxcbiAgICAgICAgICAgICAgICB1cmwsXG4gICAgICAgICAgICAgICAgY3VyQXMsXG4gICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih7fSwgb3B0aW9ucywge1xuICAgICAgICAgICAgICAgICAgX05fWDogd2luZG93LnNjcm9sbFgsXG4gICAgICAgICAgICAgICAgICBfTl9ZOiB3aW5kb3cuc2Nyb2xsWSxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9LCAxMClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgZGVib3VuY2VkU2Nyb2xsU2F2ZSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uUG9wU3RhdGUgPSAoZTogUG9wU3RhdGVFdmVudCk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IHN0YXRlID0gZS5zdGF0ZSBhcyBIaXN0b3J5U3RhdGVcblxuICAgIGlmICghc3RhdGUpIHtcbiAgICAgIC8vIFdlIGdldCBzdGF0ZSBhcyB1bmRlZmluZWQgZm9yIHR3byByZWFzb25zLlxuICAgICAgLy8gIDEuIFdpdGggb2xkZXIgc2FmYXJpICg8IDgpIGFuZCBvbGRlciBjaHJvbWUgKDwgMzQpXG4gICAgICAvLyAgMi4gV2hlbiB0aGUgVVJMIGNoYW5nZWQgd2l0aCAjXG4gICAgICAvL1xuICAgICAgLy8gSW4gdGhlIGJvdGggY2FzZXMsIHdlIGRvbid0IG5lZWQgdG8gcHJvY2VlZCBhbmQgY2hhbmdlIHRoZSByb3V0ZS5cbiAgICAgIC8vIChhcyBpdCdzIGFscmVhZHkgY2hhbmdlZClcbiAgICAgIC8vIEJ1dCB3ZSBjYW4gc2ltcGx5IHJlcGxhY2UgdGhlIHN0YXRlIHdpdGggdGhlIG5ldyBjaGFuZ2VzLlxuICAgICAgLy8gQWN0dWFsbHksIGZvciAoMSkgd2UgZG9uJ3QgbmVlZCB0byBub3RoaW5nLiBCdXQgaXQncyBoYXJkIHRvIGRldGVjdCB0aGF0IGV2ZW50LlxuICAgICAgLy8gU28sIGRvaW5nIHRoZSBmb2xsb3dpbmcgZm9yICgxKSBkb2VzIG5vIGhhcm0uXG4gICAgICBjb25zdCB7IHBhdGhuYW1lLCBxdWVyeSB9ID0gdGhpc1xuICAgICAgdGhpcy5jaGFuZ2VTdGF0ZShcbiAgICAgICAgJ3JlcGxhY2VTdGF0ZScsXG4gICAgICAgIGZvcm1hdFdpdGhWYWxpZGF0aW9uKHsgcGF0aG5hbWU6IGFkZEJhc2VQYXRoKHBhdGhuYW1lKSwgcXVlcnkgfSksXG4gICAgICAgIGdldFVSTCgpXG4gICAgICApXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoIXN0YXRlLl9fTikge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgeyB1cmwsIGFzLCBvcHRpb25zIH0gPSBzdGF0ZVxuXG4gICAgY29uc3QgeyBwYXRobmFtZSB9ID0gcGFyc2VSZWxhdGl2ZVVybCh1cmwpXG5cbiAgICAvLyBNYWtlIHN1cmUgd2UgZG9uJ3QgcmUtcmVuZGVyIG9uIGluaXRpYWwgbG9hZCxcbiAgICAvLyBjYW4gYmUgY2F1c2VkIGJ5IG5hdmlnYXRpbmcgYmFjayBmcm9tIGFuIGV4dGVybmFsIHNpdGVcbiAgICBpZiAodGhpcy5pc1NzciAmJiBhcyA9PT0gdGhpcy5hc1BhdGggJiYgcGF0aG5hbWUgPT09IHRoaXMucGF0aG5hbWUpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIC8vIElmIHRoZSBkb3duc3RyZWFtIGFwcGxpY2F0aW9uIHJldHVybnMgZmFsc3ksIHJldHVybi5cbiAgICAvLyBUaGV5IHdpbGwgdGhlbiBiZSByZXNwb25zaWJsZSBmb3IgaGFuZGxpbmcgdGhlIGV2ZW50LlxuICAgIGlmICh0aGlzLl9icHMgJiYgIXRoaXMuX2JwcyhzdGF0ZSkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMuY2hhbmdlKFxuICAgICAgJ3JlcGxhY2VTdGF0ZScsXG4gICAgICB1cmwsXG4gICAgICBhcyxcbiAgICAgIE9iamVjdC5hc3NpZ24oe30sIG9wdGlvbnMsIHtcbiAgICAgICAgc2hhbGxvdzogb3B0aW9ucy5zaGFsbG93ICYmIHRoaXMuX3NoYWxsb3csXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIHJlbG9hZCgpOiB2b2lkIHtcbiAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKClcbiAgfVxuXG4gIC8qKlxuICAgKiBHbyBiYWNrIGluIGhpc3RvcnlcbiAgICovXG4gIGJhY2soKSB7XG4gICAgd2luZG93Lmhpc3RvcnkuYmFjaygpXG4gIH1cblxuICAvKipcbiAgICogUGVyZm9ybXMgYSBgcHVzaFN0YXRlYCB3aXRoIGFyZ3VtZW50c1xuICAgKiBAcGFyYW0gdXJsIG9mIHRoZSByb3V0ZVxuICAgKiBAcGFyYW0gYXMgbWFza3MgYHVybGAgZm9yIHRoZSBicm93c2VyXG4gICAqIEBwYXJhbSBvcHRpb25zIG9iamVjdCB5b3UgY2FuIGRlZmluZSBgc2hhbGxvd2AgYW5kIG90aGVyIG9wdGlvbnNcbiAgICovXG4gIHB1c2godXJsOiBVcmwsIGFzOiBVcmwgPSB1cmwsIG9wdGlvbnM6IFRyYW5zaXRpb25PcHRpb25zID0ge30pIHtcbiAgICA7KHsgdXJsLCBhcyB9ID0gcHJlcGFyZVVybEFzKHRoaXMsIHVybCwgYXMpKVxuICAgIHJldHVybiB0aGlzLmNoYW5nZSgncHVzaFN0YXRlJywgdXJsLCBhcywgb3B0aW9ucylcbiAgfVxuXG4gIC8qKlxuICAgKiBQZXJmb3JtcyBhIGByZXBsYWNlU3RhdGVgIHdpdGggYXJndW1lbnRzXG4gICAqIEBwYXJhbSB1cmwgb2YgdGhlIHJvdXRlXG4gICAqIEBwYXJhbSBhcyBtYXNrcyBgdXJsYCBmb3IgdGhlIGJyb3dzZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgb2JqZWN0IHlvdSBjYW4gZGVmaW5lIGBzaGFsbG93YCBhbmQgb3RoZXIgb3B0aW9uc1xuICAgKi9cbiAgcmVwbGFjZSh1cmw6IFVybCwgYXM6IFVybCA9IHVybCwgb3B0aW9uczogVHJhbnNpdGlvbk9wdGlvbnMgPSB7fSkge1xuICAgIDsoeyB1cmwsIGFzIH0gPSBwcmVwYXJlVXJsQXModGhpcywgdXJsLCBhcykpXG4gICAgcmV0dXJuIHRoaXMuY2hhbmdlKCdyZXBsYWNlU3RhdGUnLCB1cmwsIGFzLCBvcHRpb25zKVxuICB9XG5cbiAgYXN5bmMgY2hhbmdlKFxuICAgIG1ldGhvZDogSGlzdG9yeU1ldGhvZCxcbiAgICB1cmw6IHN0cmluZyxcbiAgICBhczogc3RyaW5nLFxuICAgIG9wdGlvbnM6IFRyYW5zaXRpb25PcHRpb25zXG4gICk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmICghaXNMb2NhbFVSTCh1cmwpKSB7XG4gICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHVybFxuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgaWYgKCEob3B0aW9ucyBhcyBhbnkpLl9oKSB7XG4gICAgICB0aGlzLmlzU3NyID0gZmFsc2VcbiAgICB9XG4gICAgLy8gbWFya2luZyByb3V0ZSBjaGFuZ2VzIGFzIGEgbmF2aWdhdGlvbiBzdGFydCBlbnRyeVxuICAgIGlmIChTVCkge1xuICAgICAgcGVyZm9ybWFuY2UubWFyaygncm91dGVDaGFuZ2UnKVxuICAgIH1cblxuICAgIGlmICh0aGlzLl9pbkZsaWdodFJvdXRlKSB7XG4gICAgICB0aGlzLmFib3J0Q29tcG9uZW50TG9hZCh0aGlzLl9pbkZsaWdodFJvdXRlKVxuICAgIH1cblxuICAgIGFzID0gYWRkTG9jYWxlKGFzLCB0aGlzLmxvY2FsZSwgdGhpcy5kZWZhdWx0TG9jYWxlKVxuICAgIGNvbnN0IGNsZWFuZWRBcyA9IGRlbExvY2FsZShcbiAgICAgIGhhc0Jhc2VQYXRoKGFzKSA/IGRlbEJhc2VQYXRoKGFzKSA6IGFzLFxuICAgICAgdGhpcy5sb2NhbGVcbiAgICApXG4gICAgdGhpcy5faW5GbGlnaHRSb3V0ZSA9IGFzXG5cbiAgICAvLyBJZiB0aGUgdXJsIGNoYW5nZSBpcyBvbmx5IHJlbGF0ZWQgdG8gYSBoYXNoIGNoYW5nZVxuICAgIC8vIFdlIHNob3VsZCBub3QgcHJvY2VlZC4gV2Ugc2hvdWxkIG9ubHkgY2hhbmdlIHRoZSBzdGF0ZS5cblxuICAgIC8vIFdBUk5JTkc6IGBfaGAgaXMgYW4gaW50ZXJuYWwgb3B0aW9uIGZvciBoYW5kaW5nIE5leHQuanMgY2xpZW50LXNpZGVcbiAgICAvLyBoeWRyYXRpb24uIFlvdXIgYXBwIHNob3VsZCBfbmV2ZXJfIHVzZSB0aGlzIHByb3BlcnR5LiBJdCBtYXkgY2hhbmdlIGF0XG4gICAgLy8gYW55IHRpbWUgd2l0aG91dCBub3RpY2UuXG4gICAgaWYgKCEob3B0aW9ucyBhcyBhbnkpLl9oICYmIHRoaXMub25seUFIYXNoQ2hhbmdlKGNsZWFuZWRBcykpIHtcbiAgICAgIHRoaXMuYXNQYXRoID0gY2xlYW5lZEFzXG4gICAgICBSb3V0ZXIuZXZlbnRzLmVtaXQoJ2hhc2hDaGFuZ2VTdGFydCcsIGFzKVxuICAgICAgLy8gVE9ETzogZG8gd2UgbmVlZCB0aGUgcmVzb2x2ZWQgaHJlZiB3aGVuIG9ubHkgYSBoYXNoIGNoYW5nZT9cbiAgICAgIHRoaXMuY2hhbmdlU3RhdGUobWV0aG9kLCB1cmwsIGFzLCBvcHRpb25zKVxuICAgICAgdGhpcy5zY3JvbGxUb0hhc2goY2xlYW5lZEFzKVxuICAgICAgdGhpcy5ub3RpZnkodGhpcy5jb21wb25lbnRzW3RoaXMucm91dGVdKVxuICAgICAgUm91dGVyLmV2ZW50cy5lbWl0KCdoYXNoQ2hhbmdlQ29tcGxldGUnLCBhcylcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgLy8gVGhlIGJ1aWxkIG1hbmlmZXN0IG5lZWRzIHRvIGJlIGxvYWRlZCBiZWZvcmUgYXV0by1zdGF0aWMgZHluYW1pYyBwYWdlc1xuICAgIC8vIGdldCB0aGVpciBxdWVyeSBwYXJhbWV0ZXJzIHRvIGFsbG93IGVuc3VyaW5nIHRoZXkgY2FuIGJlIHBhcnNlZCBwcm9wZXJseVxuICAgIC8vIHdoZW4gcmV3cml0dGVuIHRvXG4gICAgY29uc3QgcGFnZXMgPSBhd2FpdCB0aGlzLnBhZ2VMb2FkZXIuZ2V0UGFnZUxpc3QoKVxuICAgIGNvbnN0IHsgX19yZXdyaXRlczogcmV3cml0ZXMgfSA9IGF3YWl0IHRoaXMucGFnZUxvYWRlci5wcm9taXNlZEJ1aWxkTWFuaWZlc3RcblxuICAgIGxldCBwYXJzZWQgPSBwYXJzZVJlbGF0aXZlVXJsKHVybClcblxuICAgIGxldCB7IHBhdGhuYW1lLCBxdWVyeSB9ID0gcGFyc2VkXG5cbiAgICBwYXJzZWQgPSB0aGlzLl9yZXNvbHZlSHJlZihwYXJzZWQsIHBhZ2VzKSBhcyB0eXBlb2YgcGFyc2VkXG5cbiAgICBpZiAocGFyc2VkLnBhdGhuYW1lICE9PSBwYXRobmFtZSkge1xuICAgICAgcGF0aG5hbWUgPSBwYXJzZWQucGF0aG5hbWVcbiAgICAgIHVybCA9IGZvcm1hdFdpdGhWYWxpZGF0aW9uKHBhcnNlZClcbiAgICB9XG5cbiAgICAvLyB1cmwgYW5kIGFzIHNob3VsZCBhbHdheXMgYmUgcHJlZml4ZWQgd2l0aCBiYXNlUGF0aCBieSB0aGlzXG4gICAgLy8gcG9pbnQgYnkgZWl0aGVyIG5leHQvbGluayBvciByb3V0ZXIucHVzaC9yZXBsYWNlIHNvIHN0cmlwIHRoZVxuICAgIC8vIGJhc2VQYXRoIGZyb20gdGhlIHBhdGhuYW1lIHRvIG1hdGNoIHRoZSBwYWdlcyBkaXIgMS10by0xXG4gICAgcGF0aG5hbWUgPSBwYXRobmFtZVxuICAgICAgPyByZW1vdmVQYXRoVHJhaWxpbmdTbGFzaChkZWxCYXNlUGF0aChwYXRobmFtZSkpXG4gICAgICA6IHBhdGhuYW1lXG5cbiAgICAvLyBJZiBhc2tlZCB0byBjaGFuZ2UgdGhlIGN1cnJlbnQgVVJMIHdlIHNob3VsZCByZWxvYWQgdGhlIGN1cnJlbnQgcGFnZVxuICAgIC8vIChub3QgbG9jYXRpb24ucmVsb2FkKCkgYnV0IHJlbG9hZCBnZXRJbml0aWFsUHJvcHMgYW5kIG90aGVyIE5leHQuanMgc3R1ZmZzKVxuICAgIC8vIFdlIGFsc28gbmVlZCB0byBzZXQgdGhlIG1ldGhvZCA9IHJlcGxhY2VTdGF0ZSBhbHdheXNcbiAgICAvLyBhcyB0aGlzIHNob3VsZCBub3QgZ28gaW50byB0aGUgaGlzdG9yeSAoVGhhdCdzIGhvdyBicm93c2VycyB3b3JrKVxuICAgIC8vIFdlIHNob3VsZCBjb21wYXJlIHRoZSBuZXcgYXNQYXRoIHRvIHRoZSBjdXJyZW50IGFzUGF0aCwgbm90IHRoZSB1cmxcbiAgICBpZiAoIXRoaXMudXJsSXNOZXcoY2xlYW5lZEFzKSkge1xuICAgICAgbWV0aG9kID0gJ3JlcGxhY2VTdGF0ZSdcbiAgICB9XG5cbiAgICBsZXQgcm91dGUgPSByZW1vdmVQYXRoVHJhaWxpbmdTbGFzaChwYXRobmFtZSlcbiAgICBjb25zdCB7IHNoYWxsb3cgPSBmYWxzZSB9ID0gb3B0aW9uc1xuXG4gICAgLy8gd2UgbmVlZCB0byByZXNvbHZlIHRoZSBhcyB2YWx1ZSB1c2luZyByZXdyaXRlcyBmb3IgZHluYW1pYyBTU0dcbiAgICAvLyBwYWdlcyB0byBhbGxvdyBidWlsZGluZyB0aGUgZGF0YSBVUkwgY29ycmVjdGx5XG4gICAgbGV0IHJlc29sdmVkQXMgPSBhc1xuXG4gICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9IQVNfUkVXUklURVMpIHtcbiAgICAgIHJlc29sdmVkQXMgPSByZXNvbHZlUmV3cml0ZXMoXG4gICAgICAgIHBhcnNlUmVsYXRpdmVVcmwoYXMpLnBhdGhuYW1lLFxuICAgICAgICBwYWdlcyxcbiAgICAgICAgYmFzZVBhdGgsXG4gICAgICAgIHJld3JpdGVzLFxuICAgICAgICBxdWVyeSxcbiAgICAgICAgKHA6IHN0cmluZykgPT4gdGhpcy5fcmVzb2x2ZUhyZWYoeyBwYXRobmFtZTogcCB9LCBwYWdlcykucGF0aG5hbWUhXG4gICAgICApXG5cbiAgICAgIGlmIChyZXNvbHZlZEFzICE9PSBhcykge1xuICAgICAgICBjb25zdCBwb3RlbnRpYWxIcmVmID0gcmVtb3ZlUGF0aFRyYWlsaW5nU2xhc2goXG4gICAgICAgICAgdGhpcy5fcmVzb2x2ZUhyZWYoXG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKHt9LCBwYXJzZWQsIHsgcGF0aG5hbWU6IHJlc29sdmVkQXMgfSksXG4gICAgICAgICAgICBwYWdlcyxcbiAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgKS5wYXRobmFtZSFcbiAgICAgICAgKVxuXG4gICAgICAgIC8vIGlmIHRoaXMgZGlyZWN0bHkgbWF0Y2hlcyBhIHBhZ2Ugd2UgbmVlZCB0byB1cGRhdGUgdGhlIGhyZWYgdG9cbiAgICAgICAgLy8gYWxsb3cgdGhlIGNvcnJlY3QgcGFnZSBjaHVuayB0byBiZSBsb2FkZWRcbiAgICAgICAgaWYgKHBhZ2VzLmluY2x1ZGVzKHBvdGVudGlhbEhyZWYpKSB7XG4gICAgICAgICAgcm91dGUgPSBwb3RlbnRpYWxIcmVmXG4gICAgICAgICAgcGF0aG5hbWUgPSBwb3RlbnRpYWxIcmVmXG4gICAgICAgICAgcGFyc2VkLnBhdGhuYW1lID0gcGF0aG5hbWVcbiAgICAgICAgICB1cmwgPSBmb3JtYXRXaXRoVmFsaWRhdGlvbihwYXJzZWQpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmVzb2x2ZWRBcyA9IGRlbExvY2FsZShkZWxCYXNlUGF0aChyZXNvbHZlZEFzKSwgdGhpcy5sb2NhbGUpXG5cbiAgICBpZiAoaXNEeW5hbWljUm91dGUocm91dGUpKSB7XG4gICAgICBjb25zdCBwYXJzZWRBcyA9IHBhcnNlUmVsYXRpdmVVcmwocmVzb2x2ZWRBcylcbiAgICAgIGNvbnN0IGFzUGF0aG5hbWUgPSBwYXJzZWRBcy5wYXRobmFtZVxuXG4gICAgICBjb25zdCByb3V0ZVJlZ2V4ID0gZ2V0Um91dGVSZWdleChyb3V0ZSlcbiAgICAgIGNvbnN0IHJvdXRlTWF0Y2ggPSBnZXRSb3V0ZU1hdGNoZXIocm91dGVSZWdleCkoYXNQYXRobmFtZSlcbiAgICAgIGNvbnN0IHNob3VsZEludGVycG9sYXRlID0gcm91dGUgPT09IGFzUGF0aG5hbWVcbiAgICAgIGNvbnN0IGludGVycG9sYXRlZEFzID0gc2hvdWxkSW50ZXJwb2xhdGVcbiAgICAgICAgPyBpbnRlcnBvbGF0ZUFzKHJvdXRlLCBhc1BhdGhuYW1lLCBxdWVyeSlcbiAgICAgICAgOiAoe30gYXMgeyByZXN1bHQ6IHVuZGVmaW5lZDsgcGFyYW1zOiB1bmRlZmluZWQgfSlcblxuICAgICAgaWYgKCFyb3V0ZU1hdGNoIHx8IChzaG91bGRJbnRlcnBvbGF0ZSAmJiAhaW50ZXJwb2xhdGVkQXMucmVzdWx0KSkge1xuICAgICAgICBjb25zdCBtaXNzaW5nUGFyYW1zID0gT2JqZWN0LmtleXMocm91dGVSZWdleC5ncm91cHMpLmZpbHRlcihcbiAgICAgICAgICAocGFyYW0pID0+ICFxdWVyeVtwYXJhbV1cbiAgICAgICAgKVxuXG4gICAgICAgIGlmIChtaXNzaW5nUGFyYW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICBgJHtcbiAgICAgICAgICAgICAgICBzaG91bGRJbnRlcnBvbGF0ZVxuICAgICAgICAgICAgICAgICAgPyBgSW50ZXJwb2xhdGluZyBocmVmYFxuICAgICAgICAgICAgICAgICAgOiBgTWlzbWF0Y2hpbmcgXFxgYXNcXGAgYW5kIFxcYGhyZWZcXGBgXG4gICAgICAgICAgICAgIH0gZmFpbGVkIHRvIG1hbnVhbGx5IHByb3ZpZGUgYCArXG4gICAgICAgICAgICAgICAgYHRoZSBwYXJhbXM6ICR7bWlzc2luZ1BhcmFtcy5qb2luKFxuICAgICAgICAgICAgICAgICAgJywgJ1xuICAgICAgICAgICAgICAgICl9IGluIHRoZSBcXGBocmVmXFxgJ3MgXFxgcXVlcnlcXGBgXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgKHNob3VsZEludGVycG9sYXRlXG4gICAgICAgICAgICAgID8gYFRoZSBwcm92aWRlZCBcXGBocmVmXFxgICgke3VybH0pIHZhbHVlIGlzIG1pc3NpbmcgcXVlcnkgdmFsdWVzICgke21pc3NpbmdQYXJhbXMuam9pbihcbiAgICAgICAgICAgICAgICAgICcsICdcbiAgICAgICAgICAgICAgICApfSkgdG8gYmUgaW50ZXJwb2xhdGVkIHByb3Blcmx5LiBgXG4gICAgICAgICAgICAgIDogYFRoZSBwcm92aWRlZCBcXGBhc1xcYCB2YWx1ZSAoJHthc1BhdGhuYW1lfSkgaXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIFxcYGhyZWZcXGAgdmFsdWUgKCR7cm91dGV9KS4gYCkgK1xuICAgICAgICAgICAgICBgUmVhZCBtb3JlOiBodHRwczovL2Vyci5zaC92ZXJjZWwvbmV4dC5qcy8ke1xuICAgICAgICAgICAgICAgIHNob3VsZEludGVycG9sYXRlXG4gICAgICAgICAgICAgICAgICA/ICdocmVmLWludGVycG9sYXRpb24tZmFpbGVkJ1xuICAgICAgICAgICAgICAgICAgOiAnaW5jb21wYXRpYmxlLWhyZWYtYXMnXG4gICAgICAgICAgICAgIH1gXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHNob3VsZEludGVycG9sYXRlKSB7XG4gICAgICAgIGFzID0gZm9ybWF0V2l0aFZhbGlkYXRpb24oXG4gICAgICAgICAgT2JqZWN0LmFzc2lnbih7fSwgcGFyc2VkQXMsIHtcbiAgICAgICAgICAgIHBhdGhuYW1lOiBpbnRlcnBvbGF0ZWRBcy5yZXN1bHQsXG4gICAgICAgICAgICBxdWVyeTogb21pdFBhcm1zRnJvbVF1ZXJ5KHF1ZXJ5LCBpbnRlcnBvbGF0ZWRBcy5wYXJhbXMhKSxcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBNZXJnZSBwYXJhbXMgaW50byBgcXVlcnlgLCBvdmVyd3JpdGluZyBhbnkgc3BlY2lmaWVkIGluIHNlYXJjaFxuICAgICAgICBPYmplY3QuYXNzaWduKHF1ZXJ5LCByb3V0ZU1hdGNoKVxuICAgICAgfVxuICAgIH1cblxuICAgIFJvdXRlci5ldmVudHMuZW1pdCgncm91dGVDaGFuZ2VTdGFydCcsIGFzKVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJvdXRlSW5mbyA9IGF3YWl0IHRoaXMuZ2V0Um91dGVJbmZvKFxuICAgICAgICByb3V0ZSxcbiAgICAgICAgcGF0aG5hbWUsXG4gICAgICAgIHF1ZXJ5LFxuICAgICAgICBhcyxcbiAgICAgICAgc2hhbGxvd1xuICAgICAgKVxuICAgICAgbGV0IHsgZXJyb3IsIHByb3BzLCBfX05fU1NHLCBfX05fU1NQIH0gPSByb3V0ZUluZm9cblxuICAgICAgLy8gaGFuZGxlIHJlZGlyZWN0IG9uIGNsaWVudC10cmFuc2l0aW9uXG4gICAgICBpZiAoXG4gICAgICAgIChfX05fU1NHIHx8IF9fTl9TU1ApICYmXG4gICAgICAgIHByb3BzICYmXG4gICAgICAgIChwcm9wcyBhcyBhbnkpLnBhZ2VQcm9wcyAmJlxuICAgICAgICAocHJvcHMgYXMgYW55KS5wYWdlUHJvcHMuX19OX1JFRElSRUNUXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgZGVzdGluYXRpb24gPSAocHJvcHMgYXMgYW55KS5wYWdlUHJvcHMuX19OX1JFRElSRUNUXG5cbiAgICAgICAgLy8gY2hlY2sgaWYgZGVzdGluYXRpb24gaXMgaW50ZXJuYWwgKHJlc29sdmVzIHRvIGEgcGFnZSkgYW5kIGF0dGVtcHRcbiAgICAgICAgLy8gY2xpZW50LW5hdmlnYXRpb24gaWYgaXQgaXMgZmFsbGluZyBiYWNrIHRvIGhhcmQgbmF2aWdhdGlvbiBpZlxuICAgICAgICAvLyBpdCdzIG5vdFxuICAgICAgICBpZiAoZGVzdGluYXRpb24uc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgY29uc3QgcGFyc2VkSHJlZiA9IHBhcnNlUmVsYXRpdmVVcmwoZGVzdGluYXRpb24pXG4gICAgICAgICAgdGhpcy5fcmVzb2x2ZUhyZWYocGFyc2VkSHJlZiwgcGFnZXMpXG5cbiAgICAgICAgICBpZiAocGFnZXMuaW5jbHVkZXMocGFyc2VkSHJlZi5wYXRobmFtZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNoYW5nZShcbiAgICAgICAgICAgICAgJ3JlcGxhY2VTdGF0ZScsXG4gICAgICAgICAgICAgIGRlc3RpbmF0aW9uLFxuICAgICAgICAgICAgICBkZXN0aW5hdGlvbixcbiAgICAgICAgICAgICAgb3B0aW9uc1xuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gZGVzdGluYXRpb25cbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKCgpID0+IHt9KVxuICAgICAgfVxuXG4gICAgICBSb3V0ZXIuZXZlbnRzLmVtaXQoJ2JlZm9yZUhpc3RvcnlDaGFuZ2UnLCBhcylcbiAgICAgIHRoaXMuY2hhbmdlU3RhdGUoXG4gICAgICAgIG1ldGhvZCxcbiAgICAgICAgdXJsLFxuICAgICAgICBhZGRMb2NhbGUoYXMsIHRoaXMubG9jYWxlLCB0aGlzLmRlZmF1bHRMb2NhbGUpLFxuICAgICAgICBvcHRpb25zXG4gICAgICApXG5cbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIGNvbnN0IGFwcENvbXA6IGFueSA9IHRoaXMuY29tcG9uZW50c1snL19hcHAnXS5Db21wb25lbnRcbiAgICAgICAgOyh3aW5kb3cgYXMgYW55KS5uZXh0LmlzUHJlcmVuZGVyZWQgPVxuICAgICAgICAgIGFwcENvbXAuZ2V0SW5pdGlhbFByb3BzID09PSBhcHBDb21wLm9yaWdHZXRJbml0aWFsUHJvcHMgJiZcbiAgICAgICAgICAhKHJvdXRlSW5mby5Db21wb25lbnQgYXMgYW55KS5nZXRJbml0aWFsUHJvcHNcbiAgICAgIH1cblxuICAgICAgYXdhaXQgdGhpcy5zZXQocm91dGUsIHBhdGhuYW1lISwgcXVlcnksIGNsZWFuZWRBcywgcm91dGVJbmZvKS5jYXRjaChcbiAgICAgICAgKGUpID0+IHtcbiAgICAgICAgICBpZiAoZS5jYW5jZWxsZWQpIGVycm9yID0gZXJyb3IgfHwgZVxuICAgICAgICAgIGVsc2UgdGhyb3cgZVxuICAgICAgICB9XG4gICAgICApXG5cbiAgICAgIGlmIChlcnJvcikge1xuICAgICAgICBSb3V0ZXIuZXZlbnRzLmVtaXQoJ3JvdXRlQ2hhbmdlRXJyb3InLCBlcnJvciwgY2xlYW5lZEFzKVxuICAgICAgICB0aHJvdyBlcnJvclxuICAgICAgfVxuXG4gICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX1NDUk9MTF9SRVNUT1JBVElPTikge1xuICAgICAgICBpZiAobWFudWFsU2Nyb2xsUmVzdG9yYXRpb24gJiYgJ19OX1gnIGluIG9wdGlvbnMpIHtcbiAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oKG9wdGlvbnMgYXMgYW55KS5fTl9YLCAob3B0aW9ucyBhcyBhbnkpLl9OX1kpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIFJvdXRlci5ldmVudHMuZW1pdCgncm91dGVDaGFuZ2VDb21wbGV0ZScsIGFzKVxuXG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgaWYgKGVyci5jYW5jZWxsZWQpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG4gICAgICB0aHJvdyBlcnJcbiAgICB9XG4gIH1cblxuICBjaGFuZ2VTdGF0ZShcbiAgICBtZXRob2Q6IEhpc3RvcnlNZXRob2QsXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgYXM6IHN0cmluZyxcbiAgICBvcHRpb25zOiBUcmFuc2l0aW9uT3B0aW9ucyA9IHt9XG4gICk6IHZvaWQge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBpZiAodHlwZW9mIHdpbmRvdy5oaXN0b3J5ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBXYXJuaW5nOiB3aW5kb3cuaGlzdG9yeSBpcyBub3QgYXZhaWxhYmxlLmApXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIHdpbmRvdy5oaXN0b3J5W21ldGhvZF0gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYFdhcm5pbmc6IHdpbmRvdy5oaXN0b3J5LiR7bWV0aG9kfSBpcyBub3QgYXZhaWxhYmxlYClcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG1ldGhvZCAhPT0gJ3B1c2hTdGF0ZScgfHwgZ2V0VVJMKCkgIT09IGFzKSB7XG4gICAgICB0aGlzLl9zaGFsbG93ID0gb3B0aW9ucy5zaGFsbG93XG4gICAgICB3aW5kb3cuaGlzdG9yeVttZXRob2RdKFxuICAgICAgICB7XG4gICAgICAgICAgdXJsLFxuICAgICAgICAgIGFzLFxuICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICAgX19OOiB0cnVlLFxuICAgICAgICB9IGFzIEhpc3RvcnlTdGF0ZSxcbiAgICAgICAgLy8gTW9zdCBicm93c2VycyBjdXJyZW50bHkgaWdub3JlcyB0aGlzIHBhcmFtZXRlciwgYWx0aG91Z2ggdGhleSBtYXkgdXNlIGl0IGluIHRoZSBmdXR1cmUuXG4gICAgICAgIC8vIFBhc3NpbmcgdGhlIGVtcHR5IHN0cmluZyBoZXJlIHNob3VsZCBiZSBzYWZlIGFnYWluc3QgZnV0dXJlIGNoYW5nZXMgdG8gdGhlIG1ldGhvZC5cbiAgICAgICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0hpc3RvcnkvcmVwbGFjZVN0YXRlXG4gICAgICAgICcnLFxuICAgICAgICBhc1xuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGhhbmRsZVJvdXRlSW5mb0Vycm9yKFxuICAgIGVycjogRXJyb3IgJiB7IGNvZGU6IGFueTsgY2FuY2VsbGVkOiBib29sZWFuIH0sXG4gICAgcGF0aG5hbWU6IHN0cmluZyxcbiAgICBxdWVyeTogUGFyc2VkVXJsUXVlcnksXG4gICAgYXM6IHN0cmluZyxcbiAgICBsb2FkRXJyb3JGYWlsPzogYm9vbGVhblxuICApOiBQcm9taXNlPFByaXZhdGVSb3V0ZUluZm8+IHtcbiAgICBpZiAoZXJyLmNhbmNlbGxlZCkge1xuICAgICAgLy8gYnViYmxlIHVwIGNhbmNlbGxhdGlvbiBlcnJvcnNcbiAgICAgIHRocm93IGVyclxuICAgIH1cblxuICAgIGlmIChQQUdFX0xPQURfRVJST1IgaW4gZXJyIHx8IGxvYWRFcnJvckZhaWwpIHtcbiAgICAgIFJvdXRlci5ldmVudHMuZW1pdCgncm91dGVDaGFuZ2VFcnJvcicsIGVyciwgYXMpXG5cbiAgICAgIC8vIElmIHdlIGNhbid0IGxvYWQgdGhlIHBhZ2UgaXQgY291bGQgYmUgb25lIG9mIGZvbGxvd2luZyByZWFzb25zXG4gICAgICAvLyAgMS4gUGFnZSBkb2Vzbid0IGV4aXN0c1xuICAgICAgLy8gIDIuIFBhZ2UgZG9lcyBleGlzdCBpbiBhIGRpZmZlcmVudCB6b25lXG4gICAgICAvLyAgMy4gSW50ZXJuYWwgZXJyb3Igd2hpbGUgbG9hZGluZyB0aGUgcGFnZVxuXG4gICAgICAvLyBTbywgZG9pbmcgYSBoYXJkIHJlbG9hZCBpcyB0aGUgcHJvcGVyIHdheSB0byBkZWFsIHdpdGggdGhpcy5cbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYXNcblxuICAgICAgLy8gQ2hhbmdpbmcgdGhlIFVSTCBkb2Vzbid0IGJsb2NrIGV4ZWN1dGluZyB0aGUgY3VycmVudCBjb2RlIHBhdGguXG4gICAgICAvLyBTbyBsZXQncyB0aHJvdyBhIGNhbmNlbGxhdGlvbiBlcnJvciBzdG9wIHRoZSByb3V0aW5nIGxvZ2ljLlxuICAgICAgdGhyb3cgYnVpbGRDYW5jZWxsYXRpb25FcnJvcigpXG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgcGFnZTogQ29tcG9uZW50LCBzdHlsZVNoZWV0cyB9ID0gYXdhaXQgdGhpcy5mZXRjaENvbXBvbmVudChcbiAgICAgICAgJy9fZXJyb3InXG4gICAgICApXG4gICAgICBjb25zdCByb3V0ZUluZm86IFByaXZhdGVSb3V0ZUluZm8gPSB7XG4gICAgICAgIENvbXBvbmVudCxcbiAgICAgICAgc3R5bGVTaGVldHMsXG4gICAgICAgIGVycixcbiAgICAgICAgZXJyb3I6IGVycixcbiAgICAgIH1cblxuICAgICAgdHJ5IHtcbiAgICAgICAgcm91dGVJbmZvLnByb3BzID0gYXdhaXQgdGhpcy5nZXRJbml0aWFsUHJvcHMoQ29tcG9uZW50LCB7XG4gICAgICAgICAgZXJyLFxuICAgICAgICAgIHBhdGhuYW1lLFxuICAgICAgICAgIHF1ZXJ5LFxuICAgICAgICB9IGFzIGFueSlcbiAgICAgIH0gY2F0Y2ggKGdpcEVycikge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBpbiBlcnJvciBwYWdlIGBnZXRJbml0aWFsUHJvcHNgOiAnLCBnaXBFcnIpXG4gICAgICAgIHJvdXRlSW5mby5wcm9wcyA9IHt9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByb3V0ZUluZm9cbiAgICB9IGNhdGNoIChyb3V0ZUluZm9FcnIpIHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZVJvdXRlSW5mb0Vycm9yKHJvdXRlSW5mb0VyciwgcGF0aG5hbWUsIHF1ZXJ5LCBhcywgdHJ1ZSlcbiAgICB9XG4gIH1cblxuICBhc3luYyBnZXRSb3V0ZUluZm8oXG4gICAgcm91dGU6IHN0cmluZyxcbiAgICBwYXRobmFtZTogc3RyaW5nLFxuICAgIHF1ZXJ5OiBhbnksXG4gICAgYXM6IHN0cmluZyxcbiAgICBzaGFsbG93OiBib29sZWFuID0gZmFsc2VcbiAgKTogUHJvbWlzZTxQcml2YXRlUm91dGVJbmZvPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNhY2hlZFJvdXRlSW5mbyA9IHRoaXMuY29tcG9uZW50c1tyb3V0ZV1cblxuICAgICAgaWYgKHNoYWxsb3cgJiYgY2FjaGVkUm91dGVJbmZvICYmIHRoaXMucm91dGUgPT09IHJvdXRlKSB7XG4gICAgICAgIHJldHVybiBjYWNoZWRSb3V0ZUluZm9cbiAgICAgIH1cblxuICAgICAgY29uc3Qgcm91dGVJbmZvOiBQcml2YXRlUm91dGVJbmZvID0gY2FjaGVkUm91dGVJbmZvXG4gICAgICAgID8gY2FjaGVkUm91dGVJbmZvXG4gICAgICAgIDogYXdhaXQgdGhpcy5mZXRjaENvbXBvbmVudChyb3V0ZSkudGhlbigocmVzKSA9PiAoe1xuICAgICAgICAgICAgQ29tcG9uZW50OiByZXMucGFnZSxcbiAgICAgICAgICAgIHN0eWxlU2hlZXRzOiByZXMuc3R5bGVTaGVldHMsXG4gICAgICAgICAgICBfX05fU1NHOiByZXMubW9kLl9fTl9TU0csXG4gICAgICAgICAgICBfX05fU1NQOiByZXMubW9kLl9fTl9TU1AsXG4gICAgICAgICAgfSkpXG5cbiAgICAgIGNvbnN0IHsgQ29tcG9uZW50LCBfX05fU1NHLCBfX05fU1NQIH0gPSByb3V0ZUluZm9cblxuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgY29uc3QgeyBpc1ZhbGlkRWxlbWVudFR5cGUgfSA9IHJlcXVpcmUoJ3JlYWN0LWlzJylcbiAgICAgICAgaWYgKCFpc1ZhbGlkRWxlbWVudFR5cGUoQ29tcG9uZW50KSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGBUaGUgZGVmYXVsdCBleHBvcnQgaXMgbm90IGEgUmVhY3QgQ29tcG9uZW50IGluIHBhZ2U6IFwiJHtwYXRobmFtZX1cImBcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgbGV0IGRhdGFIcmVmOiBzdHJpbmcgfCB1bmRlZmluZWRcblxuICAgICAgaWYgKF9fTl9TU0cgfHwgX19OX1NTUCkge1xuICAgICAgICBkYXRhSHJlZiA9IHRoaXMucGFnZUxvYWRlci5nZXREYXRhSHJlZihcbiAgICAgICAgICBmb3JtYXRXaXRoVmFsaWRhdGlvbih7IHBhdGhuYW1lLCBxdWVyeSB9KSxcbiAgICAgICAgICBkZWxCYXNlUGF0aChhcyksXG4gICAgICAgICAgX19OX1NTRyxcbiAgICAgICAgICB0aGlzLmxvY2FsZSxcbiAgICAgICAgICB0aGlzLmRlZmF1bHRMb2NhbGVcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBwcm9wcyA9IGF3YWl0IHRoaXMuX2dldERhdGE8UHJpdmF0ZVJvdXRlSW5mbz4oKCkgPT5cbiAgICAgICAgX19OX1NTR1xuICAgICAgICAgID8gdGhpcy5fZ2V0U3RhdGljRGF0YShkYXRhSHJlZiEpXG4gICAgICAgICAgOiBfX05fU1NQXG4gICAgICAgICAgPyB0aGlzLl9nZXRTZXJ2ZXJEYXRhKGRhdGFIcmVmISlcbiAgICAgICAgICA6IHRoaXMuZ2V0SW5pdGlhbFByb3BzKFxuICAgICAgICAgICAgICBDb21wb25lbnQsXG4gICAgICAgICAgICAgIC8vIHdlIHByb3ZpZGUgQXBwVHJlZSBsYXRlciBzbyB0aGlzIG5lZWRzIHRvIGJlIGBhbnlgXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwYXRobmFtZSxcbiAgICAgICAgICAgICAgICBxdWVyeSxcbiAgICAgICAgICAgICAgICBhc1BhdGg6IGFzLFxuICAgICAgICAgICAgICB9IGFzIGFueVxuICAgICAgICAgICAgKVxuICAgICAgKVxuXG4gICAgICByb3V0ZUluZm8ucHJvcHMgPSBwcm9wc1xuICAgICAgdGhpcy5jb21wb25lbnRzW3JvdXRlXSA9IHJvdXRlSW5mb1xuICAgICAgcmV0dXJuIHJvdXRlSW5mb1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlUm91dGVJbmZvRXJyb3IoZXJyLCBwYXRobmFtZSwgcXVlcnksIGFzKVxuICAgIH1cbiAgfVxuXG4gIHNldChcbiAgICByb3V0ZTogc3RyaW5nLFxuICAgIHBhdGhuYW1lOiBzdHJpbmcsXG4gICAgcXVlcnk6IFBhcnNlZFVybFF1ZXJ5LFxuICAgIGFzOiBzdHJpbmcsXG4gICAgZGF0YTogUHJpdmF0ZVJvdXRlSW5mb1xuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmlzRmFsbGJhY2sgPSBmYWxzZVxuXG4gICAgdGhpcy5yb3V0ZSA9IHJvdXRlXG4gICAgdGhpcy5wYXRobmFtZSA9IHBhdGhuYW1lXG4gICAgdGhpcy5xdWVyeSA9IHF1ZXJ5XG4gICAgdGhpcy5hc1BhdGggPSBhc1xuICAgIHJldHVybiB0aGlzLm5vdGlmeShkYXRhKVxuICB9XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIHRvIGV4ZWN1dGUgYmVmb3JlIHJlcGxhY2luZyByb3V0ZXIgc3RhdGVcbiAgICogQHBhcmFtIGNiIGNhbGxiYWNrIHRvIGJlIGV4ZWN1dGVkXG4gICAqL1xuICBiZWZvcmVQb3BTdGF0ZShjYjogQmVmb3JlUG9wU3RhdGVDYWxsYmFjaykge1xuICAgIHRoaXMuX2JwcyA9IGNiXG4gIH1cblxuICBvbmx5QUhhc2hDaGFuZ2UoYXM6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5hc1BhdGgpIHJldHVybiBmYWxzZVxuICAgIGNvbnN0IFtvbGRVcmxOb0hhc2gsIG9sZEhhc2hdID0gdGhpcy5hc1BhdGguc3BsaXQoJyMnKVxuICAgIGNvbnN0IFtuZXdVcmxOb0hhc2gsIG5ld0hhc2hdID0gYXMuc3BsaXQoJyMnKVxuXG4gICAgLy8gTWFrZXMgc3VyZSB3ZSBzY3JvbGwgdG8gdGhlIHByb3ZpZGVkIGhhc2ggaWYgdGhlIHVybC9oYXNoIGFyZSB0aGUgc2FtZVxuICAgIGlmIChuZXdIYXNoICYmIG9sZFVybE5vSGFzaCA9PT0gbmV3VXJsTm9IYXNoICYmIG9sZEhhc2ggPT09IG5ld0hhc2gpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgLy8gSWYgdGhlIHVybHMgYXJlIGNoYW5nZSwgdGhlcmUncyBtb3JlIHRoYW4gYSBoYXNoIGNoYW5nZVxuICAgIGlmIChvbGRVcmxOb0hhc2ggIT09IG5ld1VybE5vSGFzaCkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgLy8gSWYgdGhlIGhhc2ggaGFzIGNoYW5nZWQsIHRoZW4gaXQncyBhIGhhc2ggb25seSBjaGFuZ2UuXG4gICAgLy8gVGhpcyBjaGVjayBpcyBuZWNlc3NhcnkgdG8gaGFuZGxlIGJvdGggdGhlIGVudGVyIGFuZFxuICAgIC8vIGxlYXZlIGhhc2ggPT09ICcnIGNhc2VzLiBUaGUgaWRlbnRpdHkgY2FzZSBmYWxscyB0aHJvdWdoXG4gICAgLy8gYW5kIGlzIHRyZWF0ZWQgYXMgYSBuZXh0IHJlbG9hZC5cbiAgICByZXR1cm4gb2xkSGFzaCAhPT0gbmV3SGFzaFxuICB9XG5cbiAgc2Nyb2xsVG9IYXNoKGFzOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBbLCBoYXNoXSA9IGFzLnNwbGl0KCcjJylcbiAgICAvLyBTY3JvbGwgdG8gdG9wIGlmIHRoZSBoYXNoIGlzIGp1c3QgYCNgIHdpdGggbm8gdmFsdWVcbiAgICBpZiAoaGFzaCA9PT0gJycpIHtcbiAgICAgIHdpbmRvdy5zY3JvbGxUbygwLCAwKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gRmlyc3Qgd2UgY2hlY2sgaWYgdGhlIGVsZW1lbnQgYnkgaWQgaXMgZm91bmRcbiAgICBjb25zdCBpZEVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaGFzaClcbiAgICBpZiAoaWRFbCkge1xuICAgICAgaWRFbC5zY3JvbGxJbnRvVmlldygpXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgLy8gSWYgdGhlcmUncyBubyBlbGVtZW50IHdpdGggdGhlIGlkLCB3ZSBjaGVjayB0aGUgYG5hbWVgIHByb3BlcnR5XG4gICAgLy8gVG8gbWlycm9yIGJyb3dzZXJzXG4gICAgY29uc3QgbmFtZUVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoaGFzaClbMF1cbiAgICBpZiAobmFtZUVsKSB7XG4gICAgICBuYW1lRWwuc2Nyb2xsSW50b1ZpZXcoKVxuICAgIH1cbiAgfVxuXG4gIHVybElzTmV3KGFzUGF0aDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYXNQYXRoICE9PSBhc1BhdGhcbiAgfVxuXG4gIF9yZXNvbHZlSHJlZihwYXJzZWRIcmVmOiBVcmxPYmplY3QsIHBhZ2VzOiBzdHJpbmdbXSwgYXBwbHlCYXNlUGF0aCA9IHRydWUpIHtcbiAgICBjb25zdCB7IHBhdGhuYW1lIH0gPSBwYXJzZWRIcmVmXG4gICAgY29uc3QgY2xlYW5QYXRobmFtZSA9IHJlbW92ZVBhdGhUcmFpbGluZ1NsYXNoKFxuICAgICAgZGVub3JtYWxpemVQYWdlUGF0aChhcHBseUJhc2VQYXRoID8gZGVsQmFzZVBhdGgocGF0aG5hbWUhKSA6IHBhdGhuYW1lISlcbiAgICApXG5cbiAgICBpZiAoY2xlYW5QYXRobmFtZSA9PT0gJy80MDQnIHx8IGNsZWFuUGF0aG5hbWUgPT09ICcvX2Vycm9yJykge1xuICAgICAgcmV0dXJuIHBhcnNlZEhyZWZcbiAgICB9XG5cbiAgICAvLyBoYW5kbGUgcmVzb2x2aW5nIGhyZWYgZm9yIGR5bmFtaWMgcm91dGVzXG4gICAgaWYgKCFwYWdlcy5pbmNsdWRlcyhjbGVhblBhdGhuYW1lISkpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBhcnJheS1jYWxsYmFjay1yZXR1cm5cbiAgICAgIHBhZ2VzLnNvbWUoKHBhZ2UpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGlzRHluYW1pY1JvdXRlKHBhZ2UpICYmXG4gICAgICAgICAgZ2V0Um91dGVSZWdleChwYWdlKS5yZS50ZXN0KGNsZWFuUGF0aG5hbWUhKVxuICAgICAgICApIHtcbiAgICAgICAgICBwYXJzZWRIcmVmLnBhdGhuYW1lID0gYXBwbHlCYXNlUGF0aCA/IGFkZEJhc2VQYXRoKHBhZ2UpIDogcGFnZVxuICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuICAgIHJldHVybiBwYXJzZWRIcmVmXG4gIH1cblxuICAvKipcbiAgICogUHJlZmV0Y2ggcGFnZSBjb2RlLCB5b3UgbWF5IHdhaXQgZm9yIHRoZSBkYXRhIGR1cmluZyBwYWdlIHJlbmRlcmluZy5cbiAgICogVGhpcyBmZWF0dXJlIG9ubHkgd29ya3MgaW4gcHJvZHVjdGlvbiFcbiAgICogQHBhcmFtIHVybCB0aGUgaHJlZiBvZiBwcmVmZXRjaGVkIHBhZ2VcbiAgICogQHBhcmFtIGFzUGF0aCB0aGUgYXMgcGF0aCBvZiB0aGUgcHJlZmV0Y2hlZCBwYWdlXG4gICAqL1xuICBhc3luYyBwcmVmZXRjaChcbiAgICB1cmw6IHN0cmluZyxcbiAgICBhc1BhdGg6IHN0cmluZyA9IHVybCxcbiAgICBvcHRpb25zOiBQcmVmZXRjaE9wdGlvbnMgPSB7fVxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBsZXQgcGFyc2VkID0gcGFyc2VSZWxhdGl2ZVVybCh1cmwpXG5cbiAgICBsZXQgeyBwYXRobmFtZSB9ID0gcGFyc2VkXG5cbiAgICBjb25zdCBwYWdlcyA9IGF3YWl0IHRoaXMucGFnZUxvYWRlci5nZXRQYWdlTGlzdCgpXG5cbiAgICBwYXJzZWQgPSB0aGlzLl9yZXNvbHZlSHJlZihwYXJzZWQsIHBhZ2VzKSBhcyB0eXBlb2YgcGFyc2VkXG5cbiAgICBpZiAocGFyc2VkLnBhdGhuYW1lICE9PSBwYXRobmFtZSkge1xuICAgICAgcGF0aG5hbWUgPSBwYXJzZWQucGF0aG5hbWVcbiAgICAgIHVybCA9IGZvcm1hdFdpdGhWYWxpZGF0aW9uKHBhcnNlZClcbiAgICB9XG5cbiAgICAvLyBQcmVmZXRjaCBpcyBub3Qgc3VwcG9ydGVkIGluIGRldmVsb3BtZW50IG1vZGUgYmVjYXVzZSBpdCB3b3VsZCB0cmlnZ2VyIG9uLWRlbWFuZC1lbnRyaWVzXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IHJvdXRlID0gcmVtb3ZlUGF0aFRyYWlsaW5nU2xhc2gocGF0aG5hbWUpXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgdGhpcy5wYWdlTG9hZGVyLnByZWZldGNoRGF0YShcbiAgICAgICAgdXJsLFxuICAgICAgICBhc1BhdGgsXG4gICAgICAgIHRoaXMubG9jYWxlLFxuICAgICAgICB0aGlzLmRlZmF1bHRMb2NhbGVcbiAgICAgICksXG4gICAgICB0aGlzLnBhZ2VMb2FkZXJbb3B0aW9ucy5wcmlvcml0eSA/ICdsb2FkUGFnZScgOiAncHJlZmV0Y2gnXShyb3V0ZSksXG4gICAgXSlcbiAgfVxuXG4gIGFzeW5jIGZldGNoQ29tcG9uZW50KHJvdXRlOiBzdHJpbmcpOiBQcm9taXNlPEdvb2RQYWdlQ2FjaGU+IHtcbiAgICBsZXQgY2FuY2VsbGVkID0gZmFsc2VcbiAgICBjb25zdCBjYW5jZWwgPSAodGhpcy5jbGMgPSAoKSA9PiB7XG4gICAgICBjYW5jZWxsZWQgPSB0cnVlXG4gICAgfSlcblxuICAgIGNvbnN0IGNvbXBvbmVudFJlc3VsdCA9IGF3YWl0IHRoaXMucGFnZUxvYWRlci5sb2FkUGFnZShyb3V0ZSlcblxuICAgIGlmIChjYW5jZWxsZWQpIHtcbiAgICAgIGNvbnN0IGVycm9yOiBhbnkgPSBuZXcgRXJyb3IoXG4gICAgICAgIGBBYm9ydCBmZXRjaGluZyBjb21wb25lbnQgZm9yIHJvdXRlOiBcIiR7cm91dGV9XCJgXG4gICAgICApXG4gICAgICBlcnJvci5jYW5jZWxsZWQgPSB0cnVlXG4gICAgICB0aHJvdyBlcnJvclxuICAgIH1cblxuICAgIGlmIChjYW5jZWwgPT09IHRoaXMuY2xjKSB7XG4gICAgICB0aGlzLmNsYyA9IG51bGxcbiAgICB9XG5cbiAgICByZXR1cm4gY29tcG9uZW50UmVzdWx0XG4gIH1cblxuICBfZ2V0RGF0YTxUPihmbjogKCkgPT4gUHJvbWlzZTxUPik6IFByb21pc2U8VD4ge1xuICAgIGxldCBjYW5jZWxsZWQgPSBmYWxzZVxuICAgIGNvbnN0IGNhbmNlbCA9ICgpID0+IHtcbiAgICAgIGNhbmNlbGxlZCA9IHRydWVcbiAgICB9XG4gICAgdGhpcy5jbGMgPSBjYW5jZWxcbiAgICByZXR1cm4gZm4oKS50aGVuKChkYXRhKSA9PiB7XG4gICAgICBpZiAoY2FuY2VsID09PSB0aGlzLmNsYykge1xuICAgICAgICB0aGlzLmNsYyA9IG51bGxcbiAgICAgIH1cblxuICAgICAgaWYgKGNhbmNlbGxlZCkge1xuICAgICAgICBjb25zdCBlcnI6IGFueSA9IG5ldyBFcnJvcignTG9hZGluZyBpbml0aWFsIHByb3BzIGNhbmNlbGxlZCcpXG4gICAgICAgIGVyci5jYW5jZWxsZWQgPSB0cnVlXG4gICAgICAgIHRocm93IGVyclxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZGF0YVxuICAgIH0pXG4gIH1cblxuICBfZ2V0U3RhdGljRGF0YShkYXRhSHJlZjogc3RyaW5nKTogUHJvbWlzZTxvYmplY3Q+IHtcbiAgICBjb25zdCB7IGhyZWY6IGNhY2hlS2V5IH0gPSBuZXcgVVJMKGRhdGFIcmVmLCB3aW5kb3cubG9jYXRpb24uaHJlZilcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJyAmJiB0aGlzLnNkY1tjYWNoZUtleV0pIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5zZGNbY2FjaGVLZXldKVxuICAgIH1cbiAgICByZXR1cm4gZmV0Y2hOZXh0RGF0YShkYXRhSHJlZiwgdGhpcy5pc1NzcikudGhlbigoZGF0YSkgPT4ge1xuICAgICAgdGhpcy5zZGNbY2FjaGVLZXldID0gZGF0YVxuICAgICAgcmV0dXJuIGRhdGFcbiAgICB9KVxuICB9XG5cbiAgX2dldFNlcnZlckRhdGEoZGF0YUhyZWY6IHN0cmluZyk6IFByb21pc2U8b2JqZWN0PiB7XG4gICAgcmV0dXJuIGZldGNoTmV4dERhdGEoZGF0YUhyZWYsIHRoaXMuaXNTc3IpXG4gIH1cblxuICBnZXRJbml0aWFsUHJvcHMoXG4gICAgQ29tcG9uZW50OiBDb21wb25lbnRUeXBlLFxuICAgIGN0eDogTmV4dFBhZ2VDb250ZXh0XG4gICk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgeyBDb21wb25lbnQ6IEFwcCB9ID0gdGhpcy5jb21wb25lbnRzWycvX2FwcCddXG4gICAgY29uc3QgQXBwVHJlZSA9IHRoaXMuX3dyYXBBcHAoQXBwIGFzIEFwcENvbXBvbmVudClcbiAgICBjdHguQXBwVHJlZSA9IEFwcFRyZWVcbiAgICByZXR1cm4gbG9hZEdldEluaXRpYWxQcm9wczxBcHBDb250ZXh0VHlwZTxSb3V0ZXI+PihBcHAsIHtcbiAgICAgIEFwcFRyZWUsXG4gICAgICBDb21wb25lbnQsXG4gICAgICByb3V0ZXI6IHRoaXMsXG4gICAgICBjdHgsXG4gICAgfSlcbiAgfVxuXG4gIGFib3J0Q29tcG9uZW50TG9hZChhczogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2xjKSB7XG4gICAgICBSb3V0ZXIuZXZlbnRzLmVtaXQoJ3JvdXRlQ2hhbmdlRXJyb3InLCBidWlsZENhbmNlbGxhdGlvbkVycm9yKCksIGFzKVxuICAgICAgdGhpcy5jbGMoKVxuICAgICAgdGhpcy5jbGMgPSBudWxsXG4gICAgfVxuICB9XG5cbiAgbm90aWZ5KGRhdGE6IFByaXZhdGVSb3V0ZUluZm8pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5zdWIoZGF0YSwgdGhpcy5jb21wb25lbnRzWycvX2FwcCddLkNvbXBvbmVudCBhcyBBcHBDb21wb25lbnQpXG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/next-server/lib/router/router.js\n"); /***/ }), @@ -2248,7 +1985,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nexports.__esModule = tru /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nexports.__esModule = true;\nexports.formatUrl = formatUrl;\n\nvar _querystring = __webpack_require__(/*! querystring */ \"./node_modules/querystring-es3/index.js\"); // Format function modified from nodejs\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\nvar slashedProtocols = /https?|ftp|gopher|file/;\n\nfunction formatUrl(urlObj) {\n var auth = urlObj.auth,\n hostname = urlObj.hostname;\n var protocol = urlObj.protocol || '';\n var pathname = urlObj.pathname || '';\n var hash = urlObj.hash || '';\n var query = urlObj.query || '';\n var host = false;\n auth = auth ? encodeURIComponent(auth).replace(/%3A/i, ':') + '@' : '';\n\n if (urlObj.host) {\n host = auth + urlObj.host;\n } else if (hostname) {\n host = auth + (~hostname.indexOf(':') ? \"[\".concat(hostname, \"]\") : hostname);\n\n if (urlObj.port) {\n host += ':' + urlObj.port;\n }\n }\n\n if (query && typeof query === 'object') {\n // query = '' + new URLSearchParams(query);\n query = (0, _querystring.encode)(query);\n }\n\n var search = urlObj.search || query && \"?\".concat(query) || '';\n if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\n if (urlObj.slashes || (!protocol || slashedProtocols.test(protocol)) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname[0] !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash[0] !== '#') hash = '#' + hash;\n if (search && search[0] !== '?') search = '?' + search;\n pathname = pathname.replace(/[?#]/g, encodeURIComponent);\n search = search.replace('#', '%23');\n return \"\".concat(protocol).concat(host).concat(pathname).concat(search).concat(hash);\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.i);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uLy4uLy4uLy4uL25leHQtc2VydmVyL2xpYi9yb3V0ZXIvdXRpbHMvZm9ybWF0LXVybC50cz8xM2M3Il0sIm5hbWVzIjpbInNsYXNoZWRQcm90b2NvbHMiLCJwcm90b2NvbCIsInVybE9iaiIsInBhdGhuYW1lIiwiaGFzaCIsInF1ZXJ5IiwiaG9zdCIsImF1dGgiLCJlbmNvZGVVUklDb21wb25lbnQiLCJob3N0bmFtZSIsInNlYXJjaCJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUF1QkEscUcsQ0F2QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFLQSxJQUFNQSxnQkFBZ0IsR0FBdEI7O0FBRU8sMkJBQXNDO0FBQUEsTUFDdkMsSUFEdUMsR0FDM0MsTUFEMkMsQ0FDdkMsSUFEdUM7QUFBQSxNQUN2QyxRQUR1QyxHQUMzQyxNQUQyQyxDQUN2QyxRQUR1QztBQUUzQyxNQUFJQyxRQUFRLEdBQUdDLE1BQU0sQ0FBTkEsWUFBZjtBQUNBLE1BQUlDLFFBQVEsR0FBR0QsTUFBTSxDQUFOQSxZQUFmO0FBQ0EsTUFBSUUsSUFBSSxHQUFHRixNQUFNLENBQU5BLFFBQVg7QUFDQSxNQUFJRyxLQUFLLEdBQUdILE1BQU0sQ0FBTkEsU0FBWjtBQUNBLE1BQUlJLElBQW9CLEdBQXhCO0FBRUFDLE1BQUksR0FBR0EsSUFBSSxHQUFHQyxrQkFBa0IsQ0FBbEJBLElBQWtCLENBQWxCQSx3QkFBSCxNQUFYRDs7QUFFQSxNQUFJTCxNQUFNLENBQVYsTUFBaUI7QUFDZkksUUFBSSxHQUFHQyxJQUFJLEdBQUdMLE1BQU0sQ0FBcEJJO0FBREYsU0FFTyxjQUFjO0FBQ25CQSxRQUFJLEdBQUdDLElBQUksSUFBSSxDQUFDRSxRQUFRLENBQVJBLFFBQUQsR0FBQ0EsQ0FBRCwrQkFBZkgsUUFBVyxDQUFYQTs7QUFDQSxRQUFJSixNQUFNLENBQVYsTUFBaUI7QUFDZkksVUFBSSxJQUFJLE1BQU1KLE1BQU0sQ0FBcEJJO0FBRUg7QUFFRDs7QUFBQSxNQUFJRCxLQUFLLElBQUksaUJBQWIsVUFBd0M7QUFDdEM7QUFDQUEsU0FBSyxHQUFHLHlCQUFSQSxLQUFRLENBQVJBO0FBR0Y7O0FBQUEsTUFBSUssTUFBTSxHQUFHUixNQUFNLENBQU5BLFVBQWtCRyxLQUFLLGVBQXZCSCxLQUF1QixDQUF2QkEsSUFBYjtBQUVBLE1BQUlELFFBQVEsSUFBSUEsUUFBUSxDQUFSQSxPQUFnQixDQUFoQkEsT0FBaEIsS0FBNkNBLFFBQVEsSUFBUkE7O0FBRTdDLE1BQ0VDLE1BQU0sQ0FBTkEsV0FDQyxDQUFDLGFBQWFGLGdCQUFnQixDQUFoQkEsS0FBZCxRQUFjQSxDQUFkLEtBQWtETSxJQUFJLEtBRnpELE9BR0U7QUFDQUEsUUFBSSxHQUFHLFFBQVFBLElBQUksSUFBbkJBLEVBQU8sQ0FBUEE7QUFDQSxRQUFJSCxRQUFRLElBQUlBLFFBQVEsQ0FBUkEsQ0FBUSxDQUFSQSxLQUFoQixLQUFxQ0EsUUFBUSxHQUFHLE1BQVhBO0FBTHZDLFNBTU8sSUFBSSxDQUFKLE1BQVc7QUFDaEJHLFFBQUksR0FBSkE7QUFHRjs7QUFBQSxNQUFJRixJQUFJLElBQUlBLElBQUksQ0FBSkEsQ0FBSSxDQUFKQSxLQUFaLEtBQTZCQSxJQUFJLEdBQUcsTUFBUEE7QUFDN0IsTUFBSU0sTUFBTSxJQUFJQSxNQUFNLENBQU5BLENBQU0sQ0FBTkEsS0FBZCxLQUFpQ0EsTUFBTSxHQUFHLE1BQVRBO0FBRWpDUCxVQUFRLEdBQUdBLFFBQVEsQ0FBUkEsaUJBQVhBLGtCQUFXQSxDQUFYQTtBQUNBTyxRQUFNLEdBQUdBLE1BQU0sQ0FBTkEsYUFBVEEsS0FBU0EsQ0FBVEE7QUFFQSxtQkFBVVQsUUFBVixTQUFxQkssSUFBckIsU0FBNEJILFFBQTVCLFNBQXVDTyxNQUF2QztBQUNEIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9uZXh0LXNlcnZlci9saWIvcm91dGVyL3V0aWxzL2Zvcm1hdC11cmwuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBGb3JtYXQgZnVuY3Rpb24gbW9kaWZpZWQgZnJvbSBub2RlanNcbi8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhXG4vLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXG4vLyBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXRcbi8vIHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZVxuLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWRcbi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Ncbi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Zcbi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU5cbi8vIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLFxuLy8gREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SXG4vLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFXG4vLyBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgeyBVcmxPYmplY3QgfSBmcm9tICd1cmwnXG5pbXBvcnQgeyBlbmNvZGUgYXMgZW5jb2RlUXVlcnlzdHJpbmcgfSBmcm9tICdxdWVyeXN0cmluZydcblxuY29uc3Qgc2xhc2hlZFByb3RvY29scyA9IC9odHRwcz98ZnRwfGdvcGhlcnxmaWxlL1xuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0VXJsKHVybE9iajogVXJsT2JqZWN0KSB7XG4gIGxldCB7IGF1dGgsIGhvc3RuYW1lIH0gPSB1cmxPYmpcbiAgbGV0IHByb3RvY29sID0gdXJsT2JqLnByb3RvY29sIHx8ICcnXG4gIGxldCBwYXRobmFtZSA9IHVybE9iai5wYXRobmFtZSB8fCAnJ1xuICBsZXQgaGFzaCA9IHVybE9iai5oYXNoIHx8ICcnXG4gIGxldCBxdWVyeSA9IHVybE9iai5xdWVyeSB8fCAnJ1xuICBsZXQgaG9zdDogc3RyaW5nIHwgZmFsc2UgPSBmYWxzZVxuXG4gIGF1dGggPSBhdXRoID8gZW5jb2RlVVJJQ29tcG9uZW50KGF1dGgpLnJlcGxhY2UoLyUzQS9pLCAnOicpICsgJ0AnIDogJydcblxuICBpZiAodXJsT2JqLmhvc3QpIHtcbiAgICBob3N0ID0gYXV0aCArIHVybE9iai5ob3N0XG4gIH0gZWxzZSBpZiAoaG9zdG5hbWUpIHtcbiAgICBob3N0ID0gYXV0aCArICh+aG9zdG5hbWUuaW5kZXhPZignOicpID8gYFske2hvc3RuYW1lfV1gIDogaG9zdG5hbWUpXG4gICAgaWYgKHVybE9iai5wb3J0KSB7XG4gICAgICBob3N0ICs9ICc6JyArIHVybE9iai5wb3J0XG4gICAgfVxuICB9XG5cbiAgaWYgKHF1ZXJ5ICYmIHR5cGVvZiBxdWVyeSA9PT0gJ29iamVjdCcpIHtcbiAgICAvLyBxdWVyeSA9ICcnICsgbmV3IFVSTFNlYXJjaFBhcmFtcyhxdWVyeSk7XG4gICAgcXVlcnkgPSBlbmNvZGVRdWVyeXN0cmluZyhxdWVyeSlcbiAgfVxuXG4gIGxldCBzZWFyY2ggPSB1cmxPYmouc2VhcmNoIHx8IChxdWVyeSAmJiBgPyR7cXVlcnl9YCkgfHwgJydcblxuICBpZiAocHJvdG9jb2wgJiYgcHJvdG9jb2wuc3Vic3RyKC0xKSAhPT0gJzonKSBwcm90b2NvbCArPSAnOidcblxuICBpZiAoXG4gICAgdXJsT2JqLnNsYXNoZXMgfHxcbiAgICAoKCFwcm90b2NvbCB8fCBzbGFzaGVkUHJvdG9jb2xzLnRlc3QocHJvdG9jb2wpKSAmJiBob3N0ICE9PSBmYWxzZSlcbiAgKSB7XG4gICAgaG9zdCA9ICcvLycgKyAoaG9zdCB8fCAnJylcbiAgICBpZiAocGF0aG5hbWUgJiYgcGF0aG5hbWVbMF0gIT09ICcvJykgcGF0aG5hbWUgPSAnLycgKyBwYXRobmFtZVxuICB9IGVsc2UgaWYgKCFob3N0KSB7XG4gICAgaG9zdCA9ICcnXG4gIH1cblxuICBpZiAoaGFzaCAmJiBoYXNoWzBdICE9PSAnIycpIGhhc2ggPSAnIycgKyBoYXNoXG4gIGlmIChzZWFyY2ggJiYgc2VhcmNoWzBdICE9PSAnPycpIHNlYXJjaCA9ICc/JyArIHNlYXJjaFxuXG4gIHBhdGhuYW1lID0gcGF0aG5hbWUucmVwbGFjZSgvWz8jXS9nLCBlbmNvZGVVUklDb21wb25lbnQpXG4gIHNlYXJjaCA9IHNlYXJjaC5yZXBsYWNlKCcjJywgJyUyMycpXG5cbiAgcmV0dXJuIGAke3Byb3RvY29sfSR7aG9zdH0ke3BhdGhuYW1lfSR7c2VhcmNofSR7aGFzaH1gXG59XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/next-server/lib/router/utils/format-url.js\n"); +eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nexports.__esModule = true;\nexports.formatUrl = formatUrl;\n\nvar querystring = _interopRequireWildcard(__webpack_require__(/*! ./querystring */ \"./node_modules/next/dist/next-server/lib/router/utils/querystring.js\"));\n\nfunction _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n\n return cache;\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n\n var cache = _getRequireWildcardCache();\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n} // Format function modified from nodejs\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\nvar slashedProtocols = /https?|ftp|gopher|file/;\n\nfunction formatUrl(urlObj) {\n var auth = urlObj.auth,\n hostname = urlObj.hostname;\n var protocol = urlObj.protocol || '';\n var pathname = urlObj.pathname || '';\n var hash = urlObj.hash || '';\n var query = urlObj.query || '';\n var host = false;\n auth = auth ? encodeURIComponent(auth).replace(/%3A/i, ':') + '@' : '';\n\n if (urlObj.host) {\n host = auth + urlObj.host;\n } else if (hostname) {\n host = auth + (~hostname.indexOf(':') ? \"[\".concat(hostname, \"]\") : hostname);\n\n if (urlObj.port) {\n host += ':' + urlObj.port;\n }\n }\n\n if (query && typeof query === 'object') {\n query = String(querystring.urlQueryToSearchParams(query));\n }\n\n var search = urlObj.search || query && \"?\".concat(query) || '';\n if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\n if (urlObj.slashes || (!protocol || slashedProtocols.test(protocol)) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname[0] !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash[0] !== '#') hash = '#' + hash;\n if (search && search[0] !== '?') search = '?' + search;\n pathname = pathname.replace(/[?#]/g, encodeURIComponent);\n search = search.replace('#', '%23');\n return \"\".concat(protocol).concat(host).concat(pathname).concat(search).concat(hash);\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.i);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uLy4uLy4uLy4uL25leHQtc2VydmVyL2xpYi9yb3V0ZXIvdXRpbHMvZm9ybWF0LXVybC50cz8xM2M3Il0sIm5hbWVzIjpbInNsYXNoZWRQcm90b2NvbHMiLCJwcm90b2NvbCIsInVybE9iaiIsInBhdGhuYW1lIiwiaGFzaCIsInF1ZXJ5IiwiaG9zdCIsImF1dGgiLCJlbmNvZGVVUklDb21wb25lbnQiLCJob3N0bmFtZSIsIlN0cmluZyIsInF1ZXJ5c3RyaW5nIiwic2VhcmNoIl0sIm1hcHBpbmdzIjoiOzs7OztBQXdCQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXhCQSxDLENBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFNQSxJQUFNQSxnQkFBZ0IsR0FBdEI7O0FBRU8sMkJBQXNDO0FBQUEsTUFDdkMsSUFEdUMsR0FDM0MsTUFEMkMsQ0FDdkMsSUFEdUM7QUFBQSxNQUN2QyxRQUR1QyxHQUMzQyxNQUQyQyxDQUN2QyxRQUR1QztBQUUzQyxNQUFJQyxRQUFRLEdBQUdDLE1BQU0sQ0FBTkEsWUFBZjtBQUNBLE1BQUlDLFFBQVEsR0FBR0QsTUFBTSxDQUFOQSxZQUFmO0FBQ0EsTUFBSUUsSUFBSSxHQUFHRixNQUFNLENBQU5BLFFBQVg7QUFDQSxNQUFJRyxLQUFLLEdBQUdILE1BQU0sQ0FBTkEsU0FBWjtBQUNBLE1BQUlJLElBQW9CLEdBQXhCO0FBRUFDLE1BQUksR0FBR0EsSUFBSSxHQUFHQyxrQkFBa0IsQ0FBbEJBLElBQWtCLENBQWxCQSx3QkFBSCxNQUFYRDs7QUFFQSxNQUFJTCxNQUFNLENBQVYsTUFBaUI7QUFDZkksUUFBSSxHQUFHQyxJQUFJLEdBQUdMLE1BQU0sQ0FBcEJJO0FBREYsU0FFTyxjQUFjO0FBQ25CQSxRQUFJLEdBQUdDLElBQUksSUFBSSxDQUFDRSxRQUFRLENBQVJBLFFBQUQsR0FBQ0EsQ0FBRCwrQkFBZkgsUUFBVyxDQUFYQTs7QUFDQSxRQUFJSixNQUFNLENBQVYsTUFBaUI7QUFDZkksVUFBSSxJQUFJLE1BQU1KLE1BQU0sQ0FBcEJJO0FBRUg7QUFFRDs7QUFBQSxNQUFJRCxLQUFLLElBQUksaUJBQWIsVUFBd0M7QUFDdENBLFNBQUssR0FBR0ssTUFBTSxDQUFDQyxXQUFXLENBQVhBLHVCQUFmTixLQUFlTSxDQUFELENBQWROO0FBR0Y7O0FBQUEsTUFBSU8sTUFBTSxHQUFHVixNQUFNLENBQU5BLFVBQWtCRyxLQUFLLGVBQXZCSCxLQUF1QixDQUF2QkEsSUFBYjtBQUVBLE1BQUlELFFBQVEsSUFBSUEsUUFBUSxDQUFSQSxPQUFnQixDQUFoQkEsT0FBaEIsS0FBNkNBLFFBQVEsSUFBUkE7O0FBRTdDLE1BQ0VDLE1BQU0sQ0FBTkEsV0FDQyxDQUFDLGFBQWFGLGdCQUFnQixDQUFoQkEsS0FBZCxRQUFjQSxDQUFkLEtBQWtETSxJQUFJLEtBRnpELE9BR0U7QUFDQUEsUUFBSSxHQUFHLFFBQVFBLElBQUksSUFBbkJBLEVBQU8sQ0FBUEE7QUFDQSxRQUFJSCxRQUFRLElBQUlBLFFBQVEsQ0FBUkEsQ0FBUSxDQUFSQSxLQUFoQixLQUFxQ0EsUUFBUSxHQUFHLE1BQVhBO0FBTHZDLFNBTU8sSUFBSSxDQUFKLE1BQVc7QUFDaEJHLFFBQUksR0FBSkE7QUFHRjs7QUFBQSxNQUFJRixJQUFJLElBQUlBLElBQUksQ0FBSkEsQ0FBSSxDQUFKQSxLQUFaLEtBQTZCQSxJQUFJLEdBQUcsTUFBUEE7QUFDN0IsTUFBSVEsTUFBTSxJQUFJQSxNQUFNLENBQU5BLENBQU0sQ0FBTkEsS0FBZCxLQUFpQ0EsTUFBTSxHQUFHLE1BQVRBO0FBRWpDVCxVQUFRLEdBQUdBLFFBQVEsQ0FBUkEsaUJBQVhBLGtCQUFXQSxDQUFYQTtBQUNBUyxRQUFNLEdBQUdBLE1BQU0sQ0FBTkEsYUFBVEEsS0FBU0EsQ0FBVEE7QUFFQSxtQkFBVVgsUUFBVixTQUFxQkssSUFBckIsU0FBNEJILFFBQTVCLFNBQXVDUyxNQUF2QztBQUNEIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9uZXh0LXNlcnZlci9saWIvcm91dGVyL3V0aWxzL2Zvcm1hdC11cmwuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBGb3JtYXQgZnVuY3Rpb24gbW9kaWZpZWQgZnJvbSBub2RlanNcbi8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhXG4vLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXG4vLyBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXRcbi8vIHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZVxuLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWRcbi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Ncbi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Zcbi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU5cbi8vIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLFxuLy8gREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SXG4vLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFXG4vLyBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgeyBVcmxPYmplY3QgfSBmcm9tICd1cmwnXG5pbXBvcnQgeyBQYXJzZWRVcmxRdWVyeSB9IGZyb20gJ3F1ZXJ5c3RyaW5nJ1xuaW1wb3J0ICogYXMgcXVlcnlzdHJpbmcgZnJvbSAnLi9xdWVyeXN0cmluZydcblxuY29uc3Qgc2xhc2hlZFByb3RvY29scyA9IC9odHRwcz98ZnRwfGdvcGhlcnxmaWxlL1xuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0VXJsKHVybE9iajogVXJsT2JqZWN0KSB7XG4gIGxldCB7IGF1dGgsIGhvc3RuYW1lIH0gPSB1cmxPYmpcbiAgbGV0IHByb3RvY29sID0gdXJsT2JqLnByb3RvY29sIHx8ICcnXG4gIGxldCBwYXRobmFtZSA9IHVybE9iai5wYXRobmFtZSB8fCAnJ1xuICBsZXQgaGFzaCA9IHVybE9iai5oYXNoIHx8ICcnXG4gIGxldCBxdWVyeSA9IHVybE9iai5xdWVyeSB8fCAnJ1xuICBsZXQgaG9zdDogc3RyaW5nIHwgZmFsc2UgPSBmYWxzZVxuXG4gIGF1dGggPSBhdXRoID8gZW5jb2RlVVJJQ29tcG9uZW50KGF1dGgpLnJlcGxhY2UoLyUzQS9pLCAnOicpICsgJ0AnIDogJydcblxuICBpZiAodXJsT2JqLmhvc3QpIHtcbiAgICBob3N0ID0gYXV0aCArIHVybE9iai5ob3N0XG4gIH0gZWxzZSBpZiAoaG9zdG5hbWUpIHtcbiAgICBob3N0ID0gYXV0aCArICh+aG9zdG5hbWUuaW5kZXhPZignOicpID8gYFske2hvc3RuYW1lfV1gIDogaG9zdG5hbWUpXG4gICAgaWYgKHVybE9iai5wb3J0KSB7XG4gICAgICBob3N0ICs9ICc6JyArIHVybE9iai5wb3J0XG4gICAgfVxuICB9XG5cbiAgaWYgKHF1ZXJ5ICYmIHR5cGVvZiBxdWVyeSA9PT0gJ29iamVjdCcpIHtcbiAgICBxdWVyeSA9IFN0cmluZyhxdWVyeXN0cmluZy51cmxRdWVyeVRvU2VhcmNoUGFyYW1zKHF1ZXJ5IGFzIFBhcnNlZFVybFF1ZXJ5KSlcbiAgfVxuXG4gIGxldCBzZWFyY2ggPSB1cmxPYmouc2VhcmNoIHx8IChxdWVyeSAmJiBgPyR7cXVlcnl9YCkgfHwgJydcblxuICBpZiAocHJvdG9jb2wgJiYgcHJvdG9jb2wuc3Vic3RyKC0xKSAhPT0gJzonKSBwcm90b2NvbCArPSAnOidcblxuICBpZiAoXG4gICAgdXJsT2JqLnNsYXNoZXMgfHxcbiAgICAoKCFwcm90b2NvbCB8fCBzbGFzaGVkUHJvdG9jb2xzLnRlc3QocHJvdG9jb2wpKSAmJiBob3N0ICE9PSBmYWxzZSlcbiAgKSB7XG4gICAgaG9zdCA9ICcvLycgKyAoaG9zdCB8fCAnJylcbiAgICBpZiAocGF0aG5hbWUgJiYgcGF0aG5hbWVbMF0gIT09ICcvJykgcGF0aG5hbWUgPSAnLycgKyBwYXRobmFtZVxuICB9IGVsc2UgaWYgKCFob3N0KSB7XG4gICAgaG9zdCA9ICcnXG4gIH1cblxuICBpZiAoaGFzaCAmJiBoYXNoWzBdICE9PSAnIycpIGhhc2ggPSAnIycgKyBoYXNoXG4gIGlmIChzZWFyY2ggJiYgc2VhcmNoWzBdICE9PSAnPycpIHNlYXJjaCA9ICc/JyArIHNlYXJjaFxuXG4gIHBhdGhuYW1lID0gcGF0aG5hbWUucmVwbGFjZSgvWz8jXS9nLCBlbmNvZGVVUklDb21wb25lbnQpXG4gIHNlYXJjaCA9IHNlYXJjaC5yZXBsYWNlKCcjJywgJyUyMycpXG5cbiAgcmV0dXJuIGAke3Byb3RvY29sfSR7aG9zdH0ke3BhdGhuYW1lfSR7c2VhcmNofSR7aGFzaH1gXG59XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/next-server/lib/router/utils/format-url.js\n"); /***/ }), @@ -2284,7 +2021,55 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nexports.__esModule = tru /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nexports.__esModule = true;\nexports.parseRelativeUrl = parseRelativeUrl;\nvar DUMMY_BASE = new URL('http://n');\n/**\n* Parses path-relative urls (e.g. `/hello/world?foo=bar`). If url isn't path-relative\n* (e.g. `./hello`) then at least base must be.\n* Absolute urls are rejected.\n*/\n\nfunction parseRelativeUrl(url, base) {\n var resolvedBase = base ? new URL(base, DUMMY_BASE) : DUMMY_BASE;\n\n var _URL = new URL(url, resolvedBase),\n pathname = _URL.pathname,\n searchParams = _URL.searchParams,\n search = _URL.search,\n hash = _URL.hash,\n href = _URL.href,\n origin = _URL.origin;\n\n if (origin !== DUMMY_BASE.origin) {\n throw new Error('invariant: invalid relative URL');\n }\n\n return {\n pathname: pathname,\n searchParams: searchParams,\n search: search,\n hash: hash,\n href: href.slice(DUMMY_BASE.origin.length)\n };\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.i);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uLy4uLy4uLy4uL25leHQtc2VydmVyL2xpYi9yb3V0ZXIvdXRpbHMvcGFyc2UtcmVsYXRpdmUtdXJsLnRzPzk0MGQiXSwibmFtZXMiOlsiRFVNTVlfQkFTRSIsInJlc29sdmVkQmFzZSIsImJhc2UiLCJvcmlnaW4iLCJwYXRobmFtZSIsInNlYXJjaFBhcmFtcyIsInNlYXJjaCIsImhhc2giLCJocmVmIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUEsSUFBTUEsVUFBVSxHQUFHLFFBQW5CLFVBQW1CLENBQW5CO0FBRUE7Ozs7OztBQUtPLHFDQUFzRDtBQUMzRCxNQUFNQyxZQUFZLEdBQUdDLElBQUksR0FBRyxjQUFILFVBQUcsQ0FBSCxHQUF6Qjs7QUFEMkQsYUFFSSxhQUEvRCxZQUErRCxDQUZKO0FBQUEsTUFFckQsUUFGcUQsUUFFckQsUUFGcUQ7QUFBQSxNQUVyRCxZQUZxRCxRQUVyRCxZQUZxRDtBQUFBLE1BRXJELE1BRnFELFFBRXJELE1BRnFEO0FBQUEsTUFFckQsSUFGcUQsUUFFckQsSUFGcUQ7QUFBQSxNQUVyRCxJQUZxRCxRQUVyRCxJQUZxRDtBQUFBLE1BRXJELE1BRnFELFFBRXJELE1BRnFEOztBQU0zRCxNQUFJQyxNQUFNLEtBQUtILFVBQVUsQ0FBekIsUUFBa0M7QUFDaEMsVUFBTSxVQUFOLGlDQUFNLENBQU47QUFFRjs7QUFBQSxTQUFPO0FBQ0xJLFlBREssRUFDTEEsUUFESztBQUVMQyxnQkFGSyxFQUVMQSxZQUZLO0FBR0xDLFVBSEssRUFHTEEsTUFISztBQUlMQyxRQUpLLEVBSUxBLElBSks7QUFLTEMsUUFBSSxFQUFFQSxJQUFJLENBQUpBLE1BQVdSLFVBQVUsQ0FBVkEsT0FMbkIsTUFLUVE7QUFMRCxHQUFQO0FBT0QiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtc2VydmVyL2xpYi9yb3V0ZXIvdXRpbHMvcGFyc2UtcmVsYXRpdmUtdXJsLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgRFVNTVlfQkFTRSA9IG5ldyBVUkwoJ2h0dHA6Ly9uJylcblxuLyoqXG4gKiBQYXJzZXMgcGF0aC1yZWxhdGl2ZSB1cmxzIChlLmcuIGAvaGVsbG8vd29ybGQ/Zm9vPWJhcmApLiBJZiB1cmwgaXNuJ3QgcGF0aC1yZWxhdGl2ZVxuICogKGUuZy4gYC4vaGVsbG9gKSB0aGVuIGF0IGxlYXN0IGJhc2UgbXVzdCBiZS5cbiAqIEFic29sdXRlIHVybHMgYXJlIHJlamVjdGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VSZWxhdGl2ZVVybCh1cmw6IHN0cmluZywgYmFzZT86IHN0cmluZykge1xuICBjb25zdCByZXNvbHZlZEJhc2UgPSBiYXNlID8gbmV3IFVSTChiYXNlLCBEVU1NWV9CQVNFKSA6IERVTU1ZX0JBU0VcbiAgY29uc3QgeyBwYXRobmFtZSwgc2VhcmNoUGFyYW1zLCBzZWFyY2gsIGhhc2gsIGhyZWYsIG9yaWdpbiB9ID0gbmV3IFVSTChcbiAgICB1cmwsXG4gICAgcmVzb2x2ZWRCYXNlXG4gIClcbiAgaWYgKG9yaWdpbiAhPT0gRFVNTVlfQkFTRS5vcmlnaW4pIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFyaWFudDogaW52YWxpZCByZWxhdGl2ZSBVUkwnKVxuICB9XG4gIHJldHVybiB7XG4gICAgcGF0aG5hbWUsXG4gICAgc2VhcmNoUGFyYW1zLFxuICAgIHNlYXJjaCxcbiAgICBoYXNoLFxuICAgIGhyZWY6IGhyZWYuc2xpY2UoRFVNTVlfQkFTRS5vcmlnaW4ubGVuZ3RoKSxcbiAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/next-server/lib/router/utils/parse-relative-url.js\n"); +eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nexports.__esModule = true;\nexports.parseRelativeUrl = parseRelativeUrl;\n\nvar _utils = __webpack_require__(/*! ../../utils */ \"./node_modules/next/dist/next-server/lib/utils.js\");\n\nvar _querystring = __webpack_require__(/*! ./querystring */ \"./node_modules/next/dist/next-server/lib/router/utils/querystring.js\");\n\nvar DUMMY_BASE = new URL(false ? undefined : (0, _utils.getLocationOrigin)());\n/**\n* Parses path-relative urls (e.g. `/hello/world?foo=bar`). If url isn't path-relative\n* (e.g. `./hello`) then at least base must be.\n* Absolute urls are rejected with one exception, in the browser, absolute urls that are on\n* the current origin will be parsed as relative\n*/\n\nfunction parseRelativeUrl(url, base) {\n var resolvedBase = base ? new URL(base, DUMMY_BASE) : DUMMY_BASE;\n\n var _URL = new URL(url, resolvedBase),\n pathname = _URL.pathname,\n searchParams = _URL.searchParams,\n search = _URL.search,\n hash = _URL.hash,\n href = _URL.href,\n origin = _URL.origin,\n protocol = _URL.protocol;\n\n if (origin !== DUMMY_BASE.origin || protocol !== 'http:' && protocol !== 'https:') {\n throw new Error('invariant: invalid relative URL');\n }\n\n return {\n pathname: pathname,\n query: (0, _querystring.searchParamsToUrlQuery)(searchParams),\n search: search,\n hash: hash,\n href: href.slice(DUMMY_BASE.origin.length)\n };\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.i);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uLy4uLy4uLy4uL25leHQtc2VydmVyL2xpYi9yb3V0ZXIvdXRpbHMvcGFyc2UtcmVsYXRpdmUtdXJsLnRzPzk0MGQiXSwibmFtZXMiOlsiRFVNTVlfQkFTRSIsInJlc29sdmVkQmFzZSIsImJhc2UiLCJvcmlnaW4iLCJwcm90b2NvbCIsInBhdGhuYW1lIiwicXVlcnkiLCJzZWFyY2giLCJoYXNoIiwiaHJlZiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7QUFDQTs7QUFFQSxJQUFNQSxVQUFVLEdBQUcsUUFDakIsb0JBQTZDLFdBRC9DLGlCQUMrQyxHQUQ1QixDQUFuQjtBQUlBOzs7Ozs7O0FBTU8scUNBQXNEO0FBQzNELE1BQU1DLFlBQVksR0FBR0MsSUFBSSxHQUFHLGNBQUgsVUFBRyxDQUFILEdBQXpCOztBQUQyRCxhQVV2RCxhQVJKLFlBUUksQ0FWdUQ7QUFBQSxNQUVyRCxRQUZxRCxRQUVyRCxRQUZxRDtBQUFBLE1BRXJELFlBRnFELFFBRXJELFlBRnFEO0FBQUEsTUFFckQsTUFGcUQsUUFFckQsTUFGcUQ7QUFBQSxNQUVyRCxJQUZxRCxRQUVyRCxJQUZxRDtBQUFBLE1BRXJELElBRnFELFFBRXJELElBRnFEO0FBQUEsTUFFckQsTUFGcUQsUUFFckQsTUFGcUQ7QUFBQSxNQUVyRCxRQUZxRCxRQUVyRCxRQUZxRDs7QUFXM0QsTUFDRUMsTUFBTSxLQUFLSCxVQUFVLENBQXJCRyxVQUNDQyxRQUFRLEtBQVJBLFdBQXdCQSxRQUFRLEtBRm5DLFVBR0U7QUFDQSxVQUFNLFVBQU4saUNBQU0sQ0FBTjtBQUVGOztBQUFBLFNBQU87QUFDTEMsWUFESyxFQUNMQSxRQURLO0FBRUxDLFNBQUssRUFBRSx5Q0FGRixZQUVFLENBRkY7QUFHTEMsVUFISyxFQUdMQSxNQUhLO0FBSUxDLFFBSkssRUFJTEEsSUFKSztBQUtMQyxRQUFJLEVBQUVBLElBQUksQ0FBSkEsTUFBV1QsVUFBVSxDQUFWQSxPQUxuQixNQUtRUztBQUxELEdBQVA7QUFPRCIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbmV4dC1zZXJ2ZXIvbGliL3JvdXRlci91dGlscy9wYXJzZS1yZWxhdGl2ZS11cmwuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRMb2NhdGlvbk9yaWdpbiB9IGZyb20gJy4uLy4uL3V0aWxzJ1xuaW1wb3J0IHsgc2VhcmNoUGFyYW1zVG9VcmxRdWVyeSB9IGZyb20gJy4vcXVlcnlzdHJpbmcnXG5cbmNvbnN0IERVTU1ZX0JBU0UgPSBuZXcgVVJMKFxuICB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyA/ICdodHRwOi8vbicgOiBnZXRMb2NhdGlvbk9yaWdpbigpXG4pXG5cbi8qKlxuICogUGFyc2VzIHBhdGgtcmVsYXRpdmUgdXJscyAoZS5nLiBgL2hlbGxvL3dvcmxkP2Zvbz1iYXJgKS4gSWYgdXJsIGlzbid0IHBhdGgtcmVsYXRpdmVcbiAqIChlLmcuIGAuL2hlbGxvYCkgdGhlbiBhdCBsZWFzdCBiYXNlIG11c3QgYmUuXG4gKiBBYnNvbHV0ZSB1cmxzIGFyZSByZWplY3RlZCB3aXRoIG9uZSBleGNlcHRpb24sIGluIHRoZSBicm93c2VyLCBhYnNvbHV0ZSB1cmxzIHRoYXQgYXJlIG9uXG4gKiB0aGUgY3VycmVudCBvcmlnaW4gd2lsbCBiZSBwYXJzZWQgYXMgcmVsYXRpdmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUmVsYXRpdmVVcmwodXJsOiBzdHJpbmcsIGJhc2U/OiBzdHJpbmcpIHtcbiAgY29uc3QgcmVzb2x2ZWRCYXNlID0gYmFzZSA/IG5ldyBVUkwoYmFzZSwgRFVNTVlfQkFTRSkgOiBEVU1NWV9CQVNFXG4gIGNvbnN0IHtcbiAgICBwYXRobmFtZSxcbiAgICBzZWFyY2hQYXJhbXMsXG4gICAgc2VhcmNoLFxuICAgIGhhc2gsXG4gICAgaHJlZixcbiAgICBvcmlnaW4sXG4gICAgcHJvdG9jb2wsXG4gIH0gPSBuZXcgVVJMKHVybCwgcmVzb2x2ZWRCYXNlKVxuICBpZiAoXG4gICAgb3JpZ2luICE9PSBEVU1NWV9CQVNFLm9yaWdpbiB8fFxuICAgIChwcm90b2NvbCAhPT0gJ2h0dHA6JyAmJiBwcm90b2NvbCAhPT0gJ2h0dHBzOicpXG4gICkge1xuICAgIHRocm93IG5ldyBFcnJvcignaW52YXJpYW50OiBpbnZhbGlkIHJlbGF0aXZlIFVSTCcpXG4gIH1cbiAgcmV0dXJuIHtcbiAgICBwYXRobmFtZSxcbiAgICBxdWVyeTogc2VhcmNoUGFyYW1zVG9VcmxRdWVyeShzZWFyY2hQYXJhbXMpLFxuICAgIHNlYXJjaCxcbiAgICBoYXNoLFxuICAgIGhyZWY6IGhyZWYuc2xpY2UoRFVNTVlfQkFTRS5vcmlnaW4ubGVuZ3RoKSxcbiAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/next-server/lib/router/utils/parse-relative-url.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/next-server/lib/router/utils/path-match.js": +/*!***************************************************************************!*\ + !*** ./node_modules/next/dist/next-server/lib/router/utils/path-match.js ***! + \***************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nvar _defineProperty = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/next/node_modules/@babel/runtime/helpers/defineProperty.js\");\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (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 = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nexports.__esModule = true;\nexports.pathToRegexp = exports[\"default\"] = exports.customRouteMatcherOptions = exports.matcherOptions = void 0;\n\nvar pathToRegexp = _interopRequireWildcard(__webpack_require__(/*! next/dist/compiled/path-to-regexp */ \"./node_modules/next/dist/compiled/path-to-regexp/index.js\"));\n\nexports.pathToRegexp = pathToRegexp;\n\nfunction _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n\n return cache;\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n\n var cache = _getRequireWildcardCache();\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nvar matcherOptions = {\n sensitive: false,\n delimiter: '/'\n};\nexports.matcherOptions = matcherOptions;\n\nvar customRouteMatcherOptions = _objectSpread(_objectSpread({}, matcherOptions), {}, {\n strict: true\n});\n\nexports.customRouteMatcherOptions = customRouteMatcherOptions;\n\nvar _default = function _default() {\n var customRoute = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n return function (path) {\n var keys = [];\n var matcherRegex = pathToRegexp.pathToRegexp(path, keys, customRoute ? customRouteMatcherOptions : matcherOptions);\n var matcher = pathToRegexp.regexpToFunction(matcherRegex, keys);\n return function (pathname, params) {\n var res = pathname == null ? false : matcher(pathname);\n\n if (!res) {\n return false;\n }\n\n if (customRoute) {\n var _iterator = _createForOfIteratorHelper(keys),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var key = _step.value;\n\n // unnamed params should be removed as they\n // are not allowed to be used in the destination\n if (typeof key.name === 'number') {\n delete res.params[key.name];\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n\n return _objectSpread(_objectSpread({}, params), res.params);\n };\n };\n};\n\nexports[\"default\"] = _default;\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.i);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uLy4uLy4uLy4uL25leHQtc2VydmVyL2xpYi9yb3V0ZXIvdXRpbHMvcGF0aC1tYXRjaC50cz9mMTBhIl0sIm5hbWVzIjpbIm1hdGNoZXJPcHRpb25zIiwic2Vuc2l0aXZlIiwiZGVsaW1pdGVyIiwiY3VzdG9tUm91dGVNYXRjaGVyT3B0aW9ucyIsInN0cmljdCIsImN1c3RvbVJvdXRlIiwicGF0aCIsImtleXMiLCJtYXRjaGVyUmVnZXgiLCJwYXRoVG9SZWdleHAiLCJtYXRjaGVyIiwicmVzIiwicGF0aG5hbWUiLCJrZXkiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUlPOztBQUFBLElBQU1BLGNBQ2MsR0FBRztBQUM1QkMsV0FBUyxFQURtQjtBQUU1QkMsV0FBUyxFQUhKO0FBQ3VCLENBRHZCOzs7QUFNQSxJQUFNQyx5QkFDYyxtQ0FBRyxjQUFIO0FBRXpCQyxRQUFNLEVBSEQ7QUFDb0IsRUFEcEI7Ozs7ZUFNUSxTLFFBQUEsR0FBeUI7QUFBQSxNQUF4QkMsV0FBd0IsdUVBQXpCLEtBQXlCO0FBQ3RDLFNBQVFDLGNBQUQsRUFBa0I7QUFDdkIsUUFBTUMsSUFBd0IsR0FBOUI7QUFDQSxRQUFNQyxZQUFZLEdBQUdDLFlBQVksQ0FBWkEseUJBR25CSixXQUFXLCtCQUhiLGNBQXFCSSxDQUFyQjtBQUtBLFFBQU1DLE9BQU8sR0FBR0QsWUFBWSxDQUFaQSwrQkFBaEIsSUFBZ0JBLENBQWhCO0FBRUEsV0FBTyw0QkFBdUQ7QUFDNUQsVUFBTUUsR0FBRyxHQUFHQyxRQUFRLElBQVJBLGVBQTJCRixPQUFPLENBQTlDLFFBQThDLENBQTlDOztBQUNBLFVBQUksQ0FBSixLQUFVO0FBQ1I7QUFHRjs7QUFBQSx1QkFBaUI7QUFBQSxtREFDZixJQURlO0FBQUE7O0FBQUE7QUFDZiw4REFBd0I7QUFBQSxnQkFBeEIsR0FBd0I7O0FBQ3RCO0FBQ0E7QUFDQSxnQkFBSSxPQUFPRyxHQUFHLENBQVYsU0FBSixVQUFrQztBQUNoQyxxQkFBUUYsR0FBRyxDQUFKLE1BQUNBLENBQW1CRSxHQUFHLENBQTlCLElBQVFGLENBQVI7QUFFSDtBQUNGO0FBUmdCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFVakI7O0FBQUEsNkNBQU8sTUFBUCxHQUF1QkEsR0FBRyxDQUExQjtBQWhCRjtBQVRGIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9uZXh0LXNlcnZlci9saWIvcm91dGVyL3V0aWxzL3BhdGgtbWF0Y2guanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoVG9SZWdleHAgZnJvbSAnbmV4dC9kaXN0L2NvbXBpbGVkL3BhdGgtdG8tcmVnZXhwJ1xuXG5leHBvcnQgeyBwYXRoVG9SZWdleHAgfVxuXG5leHBvcnQgY29uc3QgbWF0Y2hlck9wdGlvbnM6IHBhdGhUb1JlZ2V4cC5Ub2tlbnNUb1JlZ2V4cE9wdGlvbnMgJlxuICBwYXRoVG9SZWdleHAuUGFyc2VPcHRpb25zID0ge1xuICBzZW5zaXRpdmU6IGZhbHNlLFxuICBkZWxpbWl0ZXI6ICcvJyxcbn1cblxuZXhwb3J0IGNvbnN0IGN1c3RvbVJvdXRlTWF0Y2hlck9wdGlvbnM6IHBhdGhUb1JlZ2V4cC5Ub2tlbnNUb1JlZ2V4cE9wdGlvbnMgJlxuICBwYXRoVG9SZWdleHAuUGFyc2VPcHRpb25zID0ge1xuICAuLi5tYXRjaGVyT3B0aW9ucyxcbiAgc3RyaWN0OiB0cnVlLFxufVxuXG5leHBvcnQgZGVmYXVsdCAoY3VzdG9tUm91dGUgPSBmYWxzZSkgPT4ge1xuICByZXR1cm4gKHBhdGg6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IGtleXM6IHBhdGhUb1JlZ2V4cC5LZXlbXSA9IFtdXG4gICAgY29uc3QgbWF0Y2hlclJlZ2V4ID0gcGF0aFRvUmVnZXhwLnBhdGhUb1JlZ2V4cChcbiAgICAgIHBhdGgsXG4gICAgICBrZXlzLFxuICAgICAgY3VzdG9tUm91dGUgPyBjdXN0b21Sb3V0ZU1hdGNoZXJPcHRpb25zIDogbWF0Y2hlck9wdGlvbnNcbiAgICApXG4gICAgY29uc3QgbWF0Y2hlciA9IHBhdGhUb1JlZ2V4cC5yZWdleHBUb0Z1bmN0aW9uKG1hdGNoZXJSZWdleCwga2V5cylcblxuICAgIHJldHVybiAocGF0aG5hbWU6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQsIHBhcmFtcz86IGFueSkgPT4ge1xuICAgICAgY29uc3QgcmVzID0gcGF0aG5hbWUgPT0gbnVsbCA/IGZhbHNlIDogbWF0Y2hlcihwYXRobmFtZSlcbiAgICAgIGlmICghcmVzKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICBpZiAoY3VzdG9tUm91dGUpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgICAgICAgIC8vIHVubmFtZWQgcGFyYW1zIHNob3VsZCBiZSByZW1vdmVkIGFzIHRoZXlcbiAgICAgICAgICAvLyBhcmUgbm90IGFsbG93ZWQgdG8gYmUgdXNlZCBpbiB0aGUgZGVzdGluYXRpb25cbiAgICAgICAgICBpZiAodHlwZW9mIGtleS5uYW1lID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgZGVsZXRlIChyZXMucGFyYW1zIGFzIGFueSlba2V5Lm5hbWVdXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7IC4uLnBhcmFtcywgLi4ucmVzLnBhcmFtcyB9XG4gICAgfVxuICB9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/next-server/lib/router/utils/path-match.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/next-server/lib/router/utils/prepare-destination.js": +/*!************************************************************************************!*\ + !*** ./node_modules/next/dist/next-server/lib/router/utils/prepare-destination.js ***! + \************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nvar _defineProperty = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/next/node_modules/@babel/runtime/helpers/defineProperty.js\");\n\nvar _slicedToArray = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/next/node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (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 = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nexports.__esModule = true;\nexports[\"default\"] = prepareDestination;\n\nvar _querystring = __webpack_require__(/*! ./querystring */ \"./node_modules/next/dist/next-server/lib/router/utils/querystring.js\");\n\nvar _parseRelativeUrl = __webpack_require__(/*! ./parse-relative-url */ \"./node_modules/next/dist/next-server/lib/router/utils/parse-relative-url.js\");\n\nvar pathToRegexp = _interopRequireWildcard(__webpack_require__(/*! next/dist/compiled/path-to-regexp */ \"./node_modules/next/dist/compiled/path-to-regexp/index.js\"));\n\nfunction _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n\n return cache;\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n\n var cache = _getRequireWildcardCache();\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nfunction prepareDestination(destination, params, query, appendParamsToQuery, basePath) {\n var parsedDestination = {};\n\n if (destination.startsWith('/')) {\n parsedDestination = (0, _parseRelativeUrl.parseRelativeUrl)(destination);\n } else {\n var _URL = new URL(destination),\n pathname = _URL.pathname,\n searchParams = _URL.searchParams,\n hash = _URL.hash,\n hostname = _URL.hostname,\n port = _URL.port,\n protocol = _URL.protocol,\n search = _URL.search,\n href = _URL.href;\n\n parsedDestination = {\n pathname: pathname,\n query: (0, _querystring.searchParamsToUrlQuery)(searchParams),\n hash: hash,\n protocol: protocol,\n hostname: hostname,\n port: port,\n search: search,\n href: href\n };\n }\n\n var destQuery = parsedDestination.query;\n var destPath = \"\".concat(parsedDestination.pathname).concat(parsedDestination.hash || '');\n var destPathParamKeys = [];\n pathToRegexp.pathToRegexp(destPath, destPathParamKeys);\n var destPathParams = destPathParamKeys.map(function (key) {\n return key.name;\n });\n var destinationCompiler = pathToRegexp.compile(destPath, // we don't validate while compiling the destination since we should\n // have already validated before we got to this point and validating\n // breaks compiling destinations with named pattern params from the source\n // e.g. /something:hello(.*) -> /another/:hello is broken with validation\n // since compile validation is meant for reversing and not for inserting\n // params from a separate path-regex into another\n {\n validate: false\n });\n var newUrl; // update any params in query values\n\n for (var _i = 0, _Object$entries = Object.entries(destQuery); _i < _Object$entries.length; _i++) {\n var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),\n key = _Object$entries$_i[0],\n strOrArray = _Object$entries$_i[1];\n\n var value = Array.isArray(strOrArray) ? strOrArray[0] : strOrArray;\n\n if (value) {\n // the value needs to start with a forward-slash to be compiled\n // correctly\n value = \"/\".concat(value);\n var queryCompiler = pathToRegexp.compile(value, {\n validate: false\n });\n value = queryCompiler(params).substr(1);\n }\n\n destQuery[key] = value;\n } // add path params to query if it's not a redirect and not\n // already defined in destination query or path\n\n\n var paramKeys = Object.keys(params);\n\n if (appendParamsToQuery && !paramKeys.some(function (key) {\n return destPathParams.includes(key);\n })) {\n var _iterator = _createForOfIteratorHelper(paramKeys),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _key = _step.value;\n\n if (!(_key in destQuery)) {\n destQuery[_key] = params[_key];\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n\n var shouldAddBasePath = destination.startsWith('/') && basePath;\n\n try {\n newUrl = \"\".concat(shouldAddBasePath ? basePath : '').concat(destinationCompiler(params));\n\n var _newUrl$split = newUrl.split('#'),\n _newUrl$split2 = _slicedToArray(_newUrl$split, 2),\n _pathname = _newUrl$split2[0],\n _hash = _newUrl$split2[1];\n\n parsedDestination.pathname = _pathname;\n parsedDestination.hash = \"\".concat(_hash ? '#' : '').concat(_hash || '');\n delete parsedDestination.search;\n } catch (err) {\n if (err.message.match(/Expected .*? to not repeat, but got an array/)) {\n throw new Error(\"To use a multi-match in the destination you must add `*` at the end of the param name to signify it should repeat. https://err.sh/vercel/next.js/invalid-multi-match\");\n }\n\n throw err;\n } // Query merge order lowest priority to highest\n // 1. initial URL query values\n // 2. path segment values\n // 3. destination specified query values\n\n\n parsedDestination.query = _objectSpread(_objectSpread({}, query), parsedDestination.query);\n return {\n newUrl: newUrl,\n parsedDestination: parsedDestination\n };\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.i);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uLy4uLy4uLy4uL25leHQtc2VydmVyL2xpYi9yb3V0ZXIvdXRpbHMvcHJlcGFyZS1kZXN0aW5hdGlvbi50cz8zNTY1Il0sIm5hbWVzIjpbInBhcnNlZERlc3RpbmF0aW9uIiwiZGVzdGluYXRpb24iLCJwYXRobmFtZSIsInF1ZXJ5IiwiaGFzaCIsInByb3RvY29sIiwiaG9zdG5hbWUiLCJwb3J0Iiwic2VhcmNoIiwiaHJlZiIsImRlc3RRdWVyeSIsImRlc3RQYXRoIiwiZGVzdFBhdGhQYXJhbUtleXMiLCJwYXRoVG9SZWdleHAiLCJkZXN0UGF0aFBhcmFtcyIsImtleSIsImRlc3RpbmF0aW9uQ29tcGlsZXIiLCJ2YWxpZGF0ZSIsIk9iamVjdCIsInZhbHVlIiwiQXJyYXkiLCJzdHJPckFycmF5IiwicXVlcnlDb21waWxlciIsInBhcmFtS2V5cyIsImFwcGVuZFBhcmFtc1RvUXVlcnkiLCJwYXJhbXMiLCJzaG91bGRBZGRCYXNlUGF0aCIsIm5ld1VybCIsImVyciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBOztBQUNBOztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBSWU7O0FBQUEsdUZBTWI7QUFDQSxNQUFJQSxpQkFLbUMsR0FMdkM7O0FBT0EsTUFBSUMsV0FBVyxDQUFYQSxXQUFKLEdBQUlBLENBQUosRUFBaUM7QUFDL0JELHFCQUFpQixHQUFHLHdDQUFwQkEsV0FBb0IsQ0FBcEJBO0FBREYsU0FFTztBQUFBLGVBVUQsUUFUSixXQVNJLENBVkM7QUFBQSxRQUNDLFFBREQsUUFDQyxRQUREO0FBQUEsUUFDQyxZQURELFFBQ0MsWUFERDtBQUFBLFFBQ0MsSUFERCxRQUNDLElBREQ7QUFBQSxRQUNDLFFBREQsUUFDQyxRQUREO0FBQUEsUUFDQyxJQURELFFBQ0MsSUFERDtBQUFBLFFBQ0MsUUFERCxRQUNDLFFBREQ7QUFBQSxRQUNDLE1BREQs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RUFBdUU7QUFDckUsWUFBTSxJQUFOLEtBQU0sd0tBQU47QUFJRjs7QUFBQTtBQUdGLEdBdkdBLENBdUdBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDQTVCLG1CQUFpQixDQUFqQkEsd0NBQTBCLEtBQTFCQSxHQUVLQSxpQkFBaUIsQ0FGdEJBO0FBS0EsU0FBTztBQUNMMkIsVUFESyxFQUNMQSxNQURLO0FBRUwzQixxQkFGRixFQUVFQTtBQUZLLEdBQVA7QUFJRCIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbmV4dC1zZXJ2ZXIvbGliL3JvdXRlci91dGlscy9wcmVwYXJlLWRlc3RpbmF0aW9uLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGFyc2VkVXJsUXVlcnkgfSBmcm9tICdxdWVyeXN0cmluZydcbmltcG9ydCB7IHNlYXJjaFBhcmFtc1RvVXJsUXVlcnkgfSBmcm9tICcuL3F1ZXJ5c3RyaW5nJ1xuaW1wb3J0IHsgcGFyc2VSZWxhdGl2ZVVybCB9IGZyb20gJy4vcGFyc2UtcmVsYXRpdmUtdXJsJ1xuaW1wb3J0ICogYXMgcGF0aFRvUmVnZXhwIGZyb20gJ25leHQvZGlzdC9jb21waWxlZC9wYXRoLXRvLXJlZ2V4cCdcblxudHlwZSBQYXJhbXMgPSB7IFtwYXJhbTogc3RyaW5nXTogYW55IH1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcHJlcGFyZURlc3RpbmF0aW9uKFxuICBkZXN0aW5hdGlvbjogc3RyaW5nLFxuICBwYXJhbXM6IFBhcmFtcyxcbiAgcXVlcnk6IFBhcnNlZFVybFF1ZXJ5LFxuICBhcHBlbmRQYXJhbXNUb1F1ZXJ5OiBib29sZWFuLFxuICBiYXNlUGF0aDogc3RyaW5nXG4pIHtcbiAgbGV0IHBhcnNlZERlc3RpbmF0aW9uOiB7XG4gICAgcXVlcnk/OiBQYXJzZWRVcmxRdWVyeVxuICAgIHByb3RvY29sPzogc3RyaW5nXG4gICAgaG9zdG5hbWU/OiBzdHJpbmdcbiAgICBwb3J0Pzogc3RyaW5nXG4gIH0gJiBSZXR1cm5UeXBlPHR5cGVvZiBwYXJzZVJlbGF0aXZlVXJsPiA9IHt9IGFzIGFueVxuXG4gIGlmIChkZXN0aW5hdGlvbi5zdGFydHNXaXRoKCcvJykpIHtcbiAgICBwYXJzZWREZXN0aW5hdGlvbiA9IHBhcnNlUmVsYXRpdmVVcmwoZGVzdGluYXRpb24pXG4gIH0gZWxzZSB7XG4gICAgY29uc3Qge1xuICAgICAgcGF0aG5hbWUsXG4gICAgICBzZWFyY2hQYXJhbXMsXG4gICAgICBoYXNoLFxuICAgICAgaG9zdG5hbWUsXG4gICAgICBwb3J0LFxuICAgICAgcHJvdG9jb2wsXG4gICAgICBzZWFyY2gsXG4gICAgICBocmVmLFxuICAgIH0gPSBuZXcgVVJMKGRlc3RpbmF0aW9uKVxuXG4gICAgcGFyc2VkRGVzdGluYXRpb24gPSB7XG4gICAgICBwYXRobmFtZSxcbiAgICAgIHF1ZXJ5OiBzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5KHNlYXJjaFBhcmFtcyksXG4gICAgICBoYXNoLFxuICAgICAgcHJvdG9jb2wsXG4gICAgICBob3N0bmFtZSxcbiAgICAgIHBvcnQsXG4gICAgICBzZWFyY2gsXG4gICAgICBocmVmLFxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGRlc3RRdWVyeSA9IHBhcnNlZERlc3RpbmF0aW9uLnF1ZXJ5XG4gIGNvbnN0IGRlc3RQYXRoID0gYCR7cGFyc2VkRGVzdGluYXRpb24ucGF0aG5hbWUhfSR7XG4gICAgcGFyc2VkRGVzdGluYXRpb24uaGFzaCB8fCAnJ1xuICB9YFxuICBjb25zdCBkZXN0UGF0aFBhcmFtS2V5czogcGF0aFRvUmVnZXhwLktleVtdID0gW11cbiAgcGF0aFRvUmVnZXhwLnBhdGhUb1JlZ2V4cChkZXN0UGF0aCwgZGVzdFBhdGhQYXJhbUtleXMpXG5cbiAgY29uc3QgZGVzdFBhdGhQYXJhbXMgPSBkZXN0UGF0aFBhcmFtS2V5cy5tYXAoKGtleSkgPT4ga2V5Lm5hbWUpXG5cbiAgbGV0IGRlc3RpbmF0aW9uQ29tcGlsZXIgPSBwYXRoVG9SZWdleHAuY29tcGlsZShcbiAgICBkZXN0UGF0aCxcbiAgICAvLyB3ZSBkb24ndCB2YWxpZGF0ZSB3aGlsZSBjb21waWxpbmcgdGhlIGRlc3RpbmF0aW9uIHNpbmNlIHdlIHNob3VsZFxuICAgIC8vIGhhdmUgYWxyZWFkeSB2YWxpZGF0ZWQgYmVmb3JlIHdlIGdvdCB0byB0aGlzIHBvaW50IGFuZCB2YWxpZGF0aW5nXG4gICAgLy8gYnJlYWtzIGNvbXBpbGluZyBkZXN0aW5hdGlvbnMgd2l0aCBuYW1lZCBwYXR0ZXJuIHBhcmFtcyBmcm9tIHRoZSBzb3VyY2VcbiAgICAvLyBlLmcuIC9zb21ldGhpbmc6aGVsbG8oLiopIC0+IC9hbm90aGVyLzpoZWxsbyBpcyBicm9rZW4gd2l0aCB2YWxpZGF0aW9uXG4gICAgLy8gc2luY2UgY29tcGlsZSB2YWxpZGF0aW9uIGlzIG1lYW50IGZvciByZXZlcnNpbmcgYW5kIG5vdCBmb3IgaW5zZXJ0aW5nXG4gICAgLy8gcGFyYW1zIGZyb20gYSBzZXBhcmF0ZSBwYXRoLXJlZ2V4IGludG8gYW5vdGhlclxuICAgIHsgdmFsaWRhdGU6IGZhbHNlIH1cbiAgKVxuICBsZXQgbmV3VXJsXG5cbiAgLy8gdXBkYXRlIGFueSBwYXJhbXMgaW4gcXVlcnkgdmFsdWVzXG4gIGZvciAoY29uc3QgW2tleSwgc3RyT3JBcnJheV0gb2YgT2JqZWN0LmVudHJpZXMoZGVzdFF1ZXJ5KSkge1xuICAgIGxldCB2YWx1ZSA9IEFycmF5LmlzQXJyYXkoc3RyT3JBcnJheSkgPyBzdHJPckFycmF5WzBdIDogc3RyT3JBcnJheVxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgLy8gdGhlIHZhbHVlIG5lZWRzIHRvIHN0YXJ0IHdpdGggYSBmb3J3YXJkLXNsYXNoIHRvIGJlIGNvbXBpbGVkXG4gICAgICAvLyBjb3JyZWN0bHlcbiAgICAgIHZhbHVlID0gYC8ke3ZhbHVlfWBcbiAgICAgIGNvbnN0IHF1ZXJ5Q29tcGlsZXIgPSBwYXRoVG9SZWdleHAuY29tcGlsZSh2YWx1ZSwgeyB2YWxpZGF0ZTogZmFsc2UgfSlcbiAgICAgIHZhbHVlID0gcXVlcnlDb21waWxlcihwYXJhbXMpLnN1YnN0cigxKVxuICAgIH1cbiAgICBkZXN0UXVlcnlba2V5XSA9IHZhbHVlXG4gIH1cblxuICAvLyBhZGQgcGF0aCBwYXJhbXMgdG8gcXVlcnkgaWYgaXQncyBub3QgYSByZWRpcmVjdCBhbmQgbm90XG4gIC8vIGFscmVhZHkgZGVmaW5lZCBpbiBkZXN0aW5hdGlvbiBxdWVyeSBvciBwYXRoXG4gIGNvbnN0IHBhcmFtS2V5cyA9IE9iamVjdC5rZXlzKHBhcmFtcylcblxuICBpZiAoXG4gICAgYXBwZW5kUGFyYW1zVG9RdWVyeSAmJlxuICAgICFwYXJhbUtleXMuc29tZSgoa2V5KSA9PiBkZXN0UGF0aFBhcmFtcy5pbmNsdWRlcyhrZXkpKVxuICApIHtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBwYXJhbUtleXMpIHtcbiAgICAgIGlmICghKGtleSBpbiBkZXN0UXVlcnkpKSB7XG4gICAgICAgIGRlc3RRdWVyeVtrZXldID0gcGFyYW1zW2tleV1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBzaG91bGRBZGRCYXNlUGF0aCA9IGRlc3RpbmF0aW9uLnN0YXJ0c1dpdGgoJy8nKSAmJiBiYXNlUGF0aFxuXG4gIHRyeSB7XG4gICAgbmV3VXJsID0gYCR7c2hvdWxkQWRkQmFzZVBhdGggPyBiYXNlUGF0aCA6ICcnfSR7ZGVzdGluYXRpb25Db21waWxlcihcbiAgICAgIHBhcmFtc1xuICAgICl9YFxuXG4gICAgY29uc3QgW3BhdGhuYW1lLCBoYXNoXSA9IG5ld1VybC5zcGxpdCgnIycpXG4gICAgcGFyc2VkRGVzdGluYXRpb24ucGF0aG5hbWUgPSBwYXRobmFtZVxuICAgIHBhcnNlZERlc3RpbmF0aW9uLmhhc2ggPSBgJHtoYXNoID8gJyMnIDogJyd9JHtoYXNoIHx8ICcnfWBcbiAgICBkZWxldGUgcGFyc2VkRGVzdGluYXRpb24uc2VhcmNoXG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGlmIChlcnIubWVzc2FnZS5tYXRjaCgvRXhwZWN0ZWQgLio/IHRvIG5vdCByZXBlYXQsIGJ1dCBnb3QgYW4gYXJyYXkvKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgVG8gdXNlIGEgbXVsdGktbWF0Y2ggaW4gdGhlIGRlc3RpbmF0aW9uIHlvdSBtdXN0IGFkZCBcXGAqXFxgIGF0IHRoZSBlbmQgb2YgdGhlIHBhcmFtIG5hbWUgdG8gc2lnbmlmeSBpdCBzaG91bGQgcmVwZWF0LiBodHRwczovL2Vyci5zaC92ZXJjZWwvbmV4dC5qcy9pbnZhbGlkLW11bHRpLW1hdGNoYFxuICAgICAgKVxuICAgIH1cbiAgICB0aHJvdyBlcnJcbiAgfVxuXG4gIC8vIFF1ZXJ5IG1lcmdlIG9yZGVyIGxvd2VzdCBwcmlvcml0eSB0byBoaWdoZXN0XG4gIC8vIDEuIGluaXRpYWwgVVJMIHF1ZXJ5IHZhbHVlc1xuICAvLyAyLiBwYXRoIHNlZ21lbnQgdmFsdWVzXG4gIC8vIDMuIGRlc3RpbmF0aW9uIHNwZWNpZmllZCBxdWVyeSB2YWx1ZXNcbiAgcGFyc2VkRGVzdGluYXRpb24ucXVlcnkgPSB7XG4gICAgLi4ucXVlcnksXG4gICAgLi4ucGFyc2VkRGVzdGluYXRpb24ucXVlcnksXG4gIH1cblxuICByZXR1cm4ge1xuICAgIG5ld1VybCxcbiAgICBwYXJzZWREZXN0aW5hdGlvbixcbiAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/next-server/lib/router/utils/prepare-destination.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/next-server/lib/router/utils/querystring.js": +/*!****************************************************************************!*\ + !*** ./node_modules/next/dist/next-server/lib/router/utils/querystring.js ***! + \****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nvar _slicedToArray = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/next/node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nexports.__esModule = true;\nexports.searchParamsToUrlQuery = searchParamsToUrlQuery;\nexports.urlQueryToSearchParams = urlQueryToSearchParams;\nexports.assign = assign;\n\nfunction searchParamsToUrlQuery(searchParams) {\n var query = {};\n searchParams.forEach(function (value, key) {\n if (typeof query[key] === 'undefined') {\n query[key] = value;\n } else if (Array.isArray(query[key])) {\n ;\n query[key].push(value);\n } else {\n query[key] = [query[key], value];\n }\n });\n return query;\n}\n\nfunction stringifyUrlQueryParam(param) {\n if (typeof param === 'string' || typeof param === 'number' && !isNaN(param) || typeof param === 'boolean') {\n return String(param);\n } else {\n return '';\n }\n}\n\nfunction urlQueryToSearchParams(urlQuery) {\n var result = new URLSearchParams();\n Object.entries(urlQuery).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n\n if (Array.isArray(value)) {\n value.forEach(function (item) {\n return result.append(key, stringifyUrlQueryParam(item));\n });\n } else {\n result.set(key, stringifyUrlQueryParam(value));\n }\n });\n return result;\n}\n\nfunction assign(target) {\n for (var _len = arguments.length, searchParamsList = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n searchParamsList[_key - 1] = arguments[_key];\n }\n\n searchParamsList.forEach(function (searchParams) {\n Array.from(searchParams.keys()).forEach(function (key) {\n return target[\"delete\"](key);\n });\n searchParams.forEach(function (value, key) {\n return target.append(key, value);\n });\n });\n return target;\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.i);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uLy4uLy4uLy4uL25leHQtc2VydmVyL2xpYi9yb3V0ZXIvdXRpbHMvcXVlcnlzdHJpbmcudHM/MmViZiJdLCJuYW1lcyI6WyJxdWVyeSIsInNlYXJjaFBhcmFtcyIsIkFycmF5IiwiaXNOYU4iLCJTdHJpbmciLCJyZXN1bHQiLCJPYmplY3QiLCJ2YWx1ZSIsIml0ZW0iLCJzdHJpbmdpZnlVcmxRdWVyeVBhcmFtIiwic2VhcmNoUGFyYW1zTGlzdCIsImtleSIsInRhcmdldCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBRU8sOENBRVc7QUFDaEIsTUFBTUEsS0FBcUIsR0FBM0I7QUFDQUMsY0FBWSxDQUFaQSxRQUFxQixzQkFBZ0I7QUFDbkMsUUFBSSxPQUFPRCxLQUFLLENBQVosR0FBWSxDQUFaLEtBQUosYUFBdUM7QUFDckNBLFdBQUssQ0FBTEEsR0FBSyxDQUFMQTtBQURGLFdBRU8sSUFBSUUsS0FBSyxDQUFMQSxRQUFjRixLQUFLLENBQXZCLEdBQXVCLENBQW5CRSxDQUFKLEVBQStCO0FBQ3BDO0FBQUVGLFdBQUssQ0FBTixHQUFNLENBQUxBLENBQUQsSUFBQ0EsQ0FBRCxLQUFDQTtBQURHLFdBRUE7QUFDTEEsV0FBSyxDQUFMQSxHQUFLLENBQUxBLEdBQWEsQ0FBQ0EsS0FBSyxDQUFOLEdBQU0sQ0FBTixFQUFiQSxLQUFhLENBQWJBO0FBRUg7QUFSREM7QUFTQTtBQUdGOztBQUFBLHVDQUF1RDtBQUNyRCxNQUNFLDZCQUNDLDZCQUE2QixDQUFDRSxLQUFLLENBRHBDLEtBQ29DLENBRHBDLElBRUEsaUJBSEYsV0FJRTtBQUNBLFdBQU9DLE1BQU0sQ0FBYixLQUFhLENBQWI7QUFMRixTQU1PO0FBQ0w7QUFFSDtBQUVNOztBQUFBLDBDQUVZO0FBQ2pCLE1BQU1DLE1BQU0sR0FBRyxJQUFmLGVBQWUsRUFBZjtBQUNBQyxRQUFNLENBQU5BLDBCQUFpQyxnQkFBa0I7QUFBQTtBQUFBLFFBQWpCLEdBQWlCO0FBQUEsUUFBbEIsS0FBa0I7O0FBQ2pELFFBQUlKLEtBQUssQ0FBTEEsUUFBSixLQUFJQSxDQUFKLEVBQTBCO0FBQ3hCSyxXQUFLLENBQUxBLFFBQWVDLGNBQUQ7QUFBQSxlQUFVSCxNQUFNLENBQU5BLFlBQW1CSSxzQkFBc0IsQ0FBakVGLElBQWlFLENBQXpDRixDQUFWO0FBQUEsT0FBZEU7QUFERixXQUVPO0FBQ0xGLFlBQU0sQ0FBTkEsU0FBZ0JJLHNCQUFzQixDQUF0Q0osS0FBc0MsQ0FBdENBO0FBRUg7QUFOREM7QUFPQTtBQUdLOztBQUFBLHdCQUdZO0FBQUEsb0NBSFosZ0JBR1k7QUFIWixvQkFHWTtBQUFBOztBQUNqQkksa0JBQWdCLENBQWhCQSxRQUEwQlQsc0JBQUQsRUFBa0I7QUFDekNDLFNBQUssQ0FBTEEsS0FBV0QsWUFBWSxDQUF2QkMsSUFBV0QsRUFBWEMsVUFBeUNTLGFBQUQ7QUFBQSxhQUFTQyxpQkFBakRWLEdBQWlEVSxDQUFUO0FBQUEsS0FBeENWO0FBQ0FELGdCQUFZLENBQVpBLFFBQXFCO0FBQUEsYUFBZ0JXLE1BQU0sQ0FBTkEsWUFBckNYLEtBQXFDVyxDQUFoQjtBQUFBLEtBQXJCWDtBQUZGUztBQUlBO0FBQ0QiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtc2VydmVyL2xpYi9yb3V0ZXIvdXRpbHMvcXVlcnlzdHJpbmcuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYXJzZWRVcmxRdWVyeSB9IGZyb20gJ3F1ZXJ5c3RyaW5nJ1xuXG5leHBvcnQgZnVuY3Rpb24gc2VhcmNoUGFyYW1zVG9VcmxRdWVyeShcbiAgc2VhcmNoUGFyYW1zOiBVUkxTZWFyY2hQYXJhbXNcbik6IFBhcnNlZFVybFF1ZXJ5IHtcbiAgY29uc3QgcXVlcnk6IFBhcnNlZFVybFF1ZXJ5ID0ge31cbiAgc2VhcmNoUGFyYW1zLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcbiAgICBpZiAodHlwZW9mIHF1ZXJ5W2tleV0gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBxdWVyeVtrZXldID0gdmFsdWVcbiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkocXVlcnlba2V5XSkpIHtcbiAgICAgIDsocXVlcnlba2V5XSBhcyBzdHJpbmdbXSkucHVzaCh2YWx1ZSlcbiAgICB9IGVsc2Uge1xuICAgICAgcXVlcnlba2V5XSA9IFtxdWVyeVtrZXldIGFzIHN0cmluZywgdmFsdWVdXG4gICAgfVxuICB9KVxuICByZXR1cm4gcXVlcnlcbn1cblxuZnVuY3Rpb24gc3RyaW5naWZ5VXJsUXVlcnlQYXJhbShwYXJhbTogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKFxuICAgIHR5cGVvZiBwYXJhbSA9PT0gJ3N0cmluZycgfHxcbiAgICAodHlwZW9mIHBhcmFtID09PSAnbnVtYmVyJyAmJiAhaXNOYU4ocGFyYW0pKSB8fFxuICAgIHR5cGVvZiBwYXJhbSA9PT0gJ2Jvb2xlYW4nXG4gICkge1xuICAgIHJldHVybiBTdHJpbmcocGFyYW0pXG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuICcnXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVybFF1ZXJ5VG9TZWFyY2hQYXJhbXMoXG4gIHVybFF1ZXJ5OiBQYXJzZWRVcmxRdWVyeVxuKTogVVJMU2VhcmNoUGFyYW1zIHtcbiAgY29uc3QgcmVzdWx0ID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpXG4gIE9iamVjdC5lbnRyaWVzKHVybFF1ZXJ5KS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIHZhbHVlLmZvckVhY2goKGl0ZW0pID0+IHJlc3VsdC5hcHBlbmQoa2V5LCBzdHJpbmdpZnlVcmxRdWVyeVBhcmFtKGl0ZW0pKSlcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0LnNldChrZXksIHN0cmluZ2lmeVVybFF1ZXJ5UGFyYW0odmFsdWUpKVxuICAgIH1cbiAgfSlcbiAgcmV0dXJuIHJlc3VsdFxufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNzaWduKFxuICB0YXJnZXQ6IFVSTFNlYXJjaFBhcmFtcyxcbiAgLi4uc2VhcmNoUGFyYW1zTGlzdDogVVJMU2VhcmNoUGFyYW1zW11cbik6IFVSTFNlYXJjaFBhcmFtcyB7XG4gIHNlYXJjaFBhcmFtc0xpc3QuZm9yRWFjaCgoc2VhcmNoUGFyYW1zKSA9PiB7XG4gICAgQXJyYXkuZnJvbShzZWFyY2hQYXJhbXMua2V5cygpKS5mb3JFYWNoKChrZXkpID0+IHRhcmdldC5kZWxldGUoa2V5KSlcbiAgICBzZWFyY2hQYXJhbXMuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4gdGFyZ2V0LmFwcGVuZChrZXksIHZhbHVlKSlcbiAgfSlcbiAgcmV0dXJuIHRhcmdldFxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/next-server/lib/router/utils/querystring.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/next-server/lib/router/utils/resolve-rewrites.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/next/dist/next-server/lib/router/utils/resolve-rewrites.js ***! + \*********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nexports.__esModule = true;\nexports[\"default\"] = resolveRewrites;\n\nvar _pathMatch = _interopRequireDefault(__webpack_require__(/*! ./path-match */ \"./node_modules/next/dist/next-server/lib/router/utils/path-match.js\"));\n\nvar _prepareDestination = _interopRequireDefault(__webpack_require__(/*! ./prepare-destination */ \"./node_modules/next/dist/next-server/lib/router/utils/prepare-destination.js\"));\n\nvar _normalizeTrailingSlash = __webpack_require__(/*! ../../../../client/normalize-trailing-slash */ \"./node_modules/next/dist/client/normalize-trailing-slash.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar customRouteMatcher = (0, _pathMatch[\"default\"])(true);\n\nfunction resolveRewrites(asPath, pages, basePath, rewrites, query, resolveHref) {\n if (!pages.includes(asPath)) {\n var _iterator = _createForOfIteratorHelper(rewrites),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var rewrite = _step.value;\n var matcher = customRouteMatcher(rewrite.source);\n var params = matcher(asPath);\n\n if (params) {\n if (!rewrite.destination) {\n // this is a proxied rewrite which isn't handled on the client\n break;\n }\n\n var destRes = (0, _prepareDestination[\"default\"])(rewrite.destination, params, query, true, rewrite.basePath === false ? '' : basePath);\n asPath = destRes.parsedDestination.pathname;\n Object.assign(query, destRes.parsedDestination.query);\n\n if (pages.includes((0, _normalizeTrailingSlash.removePathTrailingSlash)(asPath))) {\n // check if we now match a page as this means we are done\n // resolving the rewrites\n break;\n } // check if we match a dynamic-route, if so we break the rewrites chain\n\n\n var resolvedHref = resolveHref(asPath);\n\n if (resolvedHref !== asPath && pages.includes(resolvedHref)) {\n break;\n }\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n\n return asPath;\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.i);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uLy4uLy4uLy4uL25leHQtc2VydmVyL2xpYi9yb3V0ZXIvdXRpbHMvcmVzb2x2ZS1yZXdyaXRlcy50cz82Nzg3Il0sIm5hbWVzIjpbImN1c3RvbVJvdXRlTWF0Y2hlciIsInBhZ2VzIiwibWF0Y2hlciIsInJld3JpdGUiLCJwYXJhbXMiLCJkZXN0UmVzIiwiYXNQYXRoIiwiT2JqZWN0IiwicmVzb2x2ZWRIcmVmIiwicmVzb2x2ZUhyZWYiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQ0E7O0FBQ0E7O0FBRUE7Ozs7OztBQUVBOztBQUFBLElBQU1BLGtCQUFrQixHQUFHLDJCQUEzQixJQUEyQixDQUEzQjs7QUFFZSxnRkFPYjtBQUNBLE1BQUksQ0FBQ0MsS0FBSyxDQUFMQSxTQUFMLE1BQUtBLENBQUwsRUFBNkI7QUFBQSwrQ0FDM0IsUUFEMkI7QUFBQTs7QUFBQTtBQUMzQiwwREFBZ0M7QUFBQSxZQUFoQyxPQUFnQztBQUM5QixZQUFNQyxPQUFPLEdBQUdGLGtCQUFrQixDQUFDRyxPQUFPLENBQTFDLE1BQWtDLENBQWxDO0FBQ0EsWUFBTUMsTUFBTSxHQUFHRixPQUFPLENBQXRCLE1BQXNCLENBQXRCOztBQUVBLG9CQUFZO0FBQ1YsY0FBSSxDQUFDQyxPQUFPLENBQVosYUFBMEI7QUFDeEI7QUFDQTtBQUVGOztBQUFBLGNBQU1FLE9BQU8sR0FBRyxvQ0FDZEYsT0FBTyxDQURPLGtDQUtkQSxPQUFPLENBQVBBLDBCQUxGLFFBQWdCLENBQWhCO0FBT0FHLGdCQUFNLEdBQUdELE9BQU8sQ0FBUEEsa0JBQVRDO0FBQ0FDLGdCQUFNLENBQU5BLGNBQXFCRixPQUFPLENBQVBBLGtCQUFyQkU7O0FBRUEsY0FBSU4sS0FBSyxDQUFMQSxTQUFlLHFEQUFuQixNQUFtQixDQUFmQSxDQUFKLEVBQXFEO0FBQ25EO0FBQ0E7QUFDQTtBQUdGLFdBckJVLENBcUJWOzs7QUFDQSxjQUFNTyxZQUFZLEdBQUdDLFdBQVcsQ0FBaEMsTUFBZ0MsQ0FBaEM7O0FBRUEsY0FBSUQsWUFBWSxLQUFaQSxVQUEyQlAsS0FBSyxDQUFMQSxTQUEvQixZQUErQkEsQ0FBL0IsRUFBNkQ7QUFDM0Q7QUFFSDtBQUNGO0FBQ0Y7QUFsQzRCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFtQzdCOztBQUFBO0FBQ0QiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtc2VydmVyL2xpYi9yb3V0ZXIvdXRpbHMvcmVzb2x2ZS1yZXdyaXRlcy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhcnNlZFVybFF1ZXJ5IH0gZnJvbSAncXVlcnlzdHJpbmcnXG5pbXBvcnQgcGF0aE1hdGNoIGZyb20gJy4vcGF0aC1tYXRjaCdcbmltcG9ydCBwcmVwYXJlRGVzdGluYXRpb24gZnJvbSAnLi9wcmVwYXJlLWRlc3RpbmF0aW9uJ1xuaW1wb3J0IHsgUmV3cml0ZSB9IGZyb20gJy4uLy4uLy4uLy4uL2xpYi9sb2FkLWN1c3RvbS1yb3V0ZXMnXG5pbXBvcnQgeyByZW1vdmVQYXRoVHJhaWxpbmdTbGFzaCB9IGZyb20gJy4uLy4uLy4uLy4uL2NsaWVudC9ub3JtYWxpemUtdHJhaWxpbmctc2xhc2gnXG5cbmNvbnN0IGN1c3RvbVJvdXRlTWF0Y2hlciA9IHBhdGhNYXRjaCh0cnVlKVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiByZXNvbHZlUmV3cml0ZXMoXG4gIGFzUGF0aDogc3RyaW5nLFxuICBwYWdlczogc3RyaW5nW10sXG4gIGJhc2VQYXRoOiBzdHJpbmcsXG4gIHJld3JpdGVzOiBSZXdyaXRlW10sXG4gIHF1ZXJ5OiBQYXJzZWRVcmxRdWVyeSxcbiAgcmVzb2x2ZUhyZWY6IChwYXRoOiBzdHJpbmcpID0+IHN0cmluZ1xuKSB7XG4gIGlmICghcGFnZXMuaW5jbHVkZXMoYXNQYXRoKSkge1xuICAgIGZvciAoY29uc3QgcmV3cml0ZSBvZiByZXdyaXRlcykge1xuICAgICAgY29uc3QgbWF0Y2hlciA9IGN1c3RvbVJvdXRlTWF0Y2hlcihyZXdyaXRlLnNvdXJjZSlcbiAgICAgIGNvbnN0IHBhcmFtcyA9IG1hdGNoZXIoYXNQYXRoKVxuXG4gICAgICBpZiAocGFyYW1zKSB7XG4gICAgICAgIGlmICghcmV3cml0ZS5kZXN0aW5hdGlvbikge1xuICAgICAgICAgIC8vIHRoaXMgaXMgYSBwcm94aWVkIHJld3JpdGUgd2hpY2ggaXNuJ3QgaGFuZGxlZCBvbiB0aGUgY2xpZW50XG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkZXN0UmVzID0gcHJlcGFyZURlc3RpbmF0aW9uKFxuICAgICAgICAgIHJld3JpdGUuZGVzdGluYXRpb24sXG4gICAgICAgICAgcGFyYW1zLFxuICAgICAgICAgIHF1ZXJ5LFxuICAgICAgICAgIHRydWUsXG4gICAgICAgICAgcmV3cml0ZS5iYXNlUGF0aCA9PT0gZmFsc2UgPyAnJyA6IGJhc2VQYXRoXG4gICAgICAgIClcbiAgICAgICAgYXNQYXRoID0gZGVzdFJlcy5wYXJzZWREZXN0aW5hdGlvbi5wYXRobmFtZSFcbiAgICAgICAgT2JqZWN0LmFzc2lnbihxdWVyeSwgZGVzdFJlcy5wYXJzZWREZXN0aW5hdGlvbi5xdWVyeSlcblxuICAgICAgICBpZiAocGFnZXMuaW5jbHVkZXMocmVtb3ZlUGF0aFRyYWlsaW5nU2xhc2goYXNQYXRoKSkpIHtcbiAgICAgICAgICAvLyBjaGVjayBpZiB3ZSBub3cgbWF0Y2ggYSBwYWdlIGFzIHRoaXMgbWVhbnMgd2UgYXJlIGRvbmVcbiAgICAgICAgICAvLyByZXNvbHZpbmcgdGhlIHJld3JpdGVzXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNoZWNrIGlmIHdlIG1hdGNoIGEgZHluYW1pYy1yb3V0ZSwgaWYgc28gd2UgYnJlYWsgdGhlIHJld3JpdGVzIGNoYWluXG4gICAgICAgIGNvbnN0IHJlc29sdmVkSHJlZiA9IHJlc29sdmVIcmVmKGFzUGF0aClcblxuICAgICAgICBpZiAocmVzb2x2ZWRIcmVmICE9PSBhc1BhdGggJiYgcGFnZXMuaW5jbHVkZXMocmVzb2x2ZWRIcmVmKSkge1xuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGFzUGF0aFxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/next-server/lib/router/utils/resolve-rewrites.js\n"); /***/ }), @@ -2312,18 +2097,6 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nexports.__esModule = tru /***/ }), -/***/ "./node_modules/next/dist/next-server/lib/router/utils/search-params-to-url-query.js": -/*!*******************************************************************************************!*\ - !*** ./node_modules/next/dist/next-server/lib/router/utils/search-params-to-url-query.js ***! - \*******************************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nexports.__esModule = true;\nexports.searchParamsToUrlQuery = searchParamsToUrlQuery;\n\nfunction searchParamsToUrlQuery(searchParams) {\n var query = {};\n searchParams.forEach(function (value, key) {\n if (typeof query[key] === 'undefined') {\n query[key] = value;\n } else if (Array.isArray(query[key])) {\n ;\n query[key].push(value);\n } else {\n query[key] = [query[key], value];\n }\n });\n return query;\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.i);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uLy4uLy4uLy4uL25leHQtc2VydmVyL2xpYi9yb3V0ZXIvdXRpbHMvc2VhcmNoLXBhcmFtcy10by11cmwtcXVlcnkudHM/NjY4ZCJdLCJuYW1lcyI6WyJxdWVyeSIsInNlYXJjaFBhcmFtcyIsIkFycmF5Il0sIm1hcHBpbmdzIjoiOzs7OztBQUVPLDhDQUVXO0FBQ2hCLE1BQU1BLEtBQXFCLEdBQTNCO0FBQ0FDLGNBQVksQ0FBWkEsUUFBcUIsc0JBQWdCO0FBQ25DLFFBQUksT0FBT0QsS0FBSyxDQUFaLEdBQVksQ0FBWixLQUFKLGFBQXVDO0FBQ3JDQSxXQUFLLENBQUxBLEdBQUssQ0FBTEE7QUFERixXQUVPLElBQUlFLEtBQUssQ0FBTEEsUUFBY0YsS0FBSyxDQUF2QixHQUF1QixDQUFuQkUsQ0FBSixFQUErQjtBQUNwQztBQUFFRixXQUFLLENBQU4sR0FBTSxDQUFMQSxDQUFELElBQUNBLENBQUQsS0FBQ0E7QUFERyxXQUVBO0FBQ0xBLFdBQUssQ0FBTEEsR0FBSyxDQUFMQSxHQUFhLENBQUNBLEtBQUssQ0FBTixHQUFNLENBQU4sRUFBYkEsS0FBYSxDQUFiQTtBQUVIO0FBUkRDO0FBU0E7QUFDRCIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbmV4dC1zZXJ2ZXIvbGliL3JvdXRlci91dGlscy9zZWFyY2gtcGFyYW1zLXRvLXVybC1xdWVyeS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhcnNlZFVybFF1ZXJ5IH0gZnJvbSAncXVlcnlzdHJpbmcnXG5cbmV4cG9ydCBmdW5jdGlvbiBzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5KFxuICBzZWFyY2hQYXJhbXM6IFVSTFNlYXJjaFBhcmFtc1xuKTogUGFyc2VkVXJsUXVlcnkge1xuICBjb25zdCBxdWVyeTogUGFyc2VkVXJsUXVlcnkgPSB7fVxuICBzZWFyY2hQYXJhbXMuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xuICAgIGlmICh0eXBlb2YgcXVlcnlba2V5XSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHF1ZXJ5W2tleV0gPSB2YWx1ZVxuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShxdWVyeVtrZXldKSkge1xuICAgICAgOyhxdWVyeVtrZXldIGFzIHN0cmluZ1tdKS5wdXNoKHZhbHVlKVxuICAgIH0gZWxzZSB7XG4gICAgICBxdWVyeVtrZXldID0gW3F1ZXJ5W2tleV0gYXMgc3RyaW5nLCB2YWx1ZV1cbiAgICB9XG4gIH0pXG4gIHJldHVybiBxdWVyeVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/next-server/lib/router/utils/search-params-to-url-query.js\n"); - -/***/ }), - /***/ "./node_modules/next/dist/next-server/lib/runtime-config.js": /*!******************************************************************!*\ !*** ./node_modules/next/dist/next-server/lib/runtime-config.js ***! @@ -2344,7 +2117,305 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nexports.__esModule = tru /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nvar _regeneratorRuntime = __webpack_require__(/*! @babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n\nvar _asyncToGenerator = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/asyncToGenerator.js\");\n\nexports.__esModule = true;\nexports.execOnce = execOnce;\nexports.getLocationOrigin = getLocationOrigin;\nexports.getURL = getURL;\nexports.getDisplayName = getDisplayName;\nexports.isResSent = isResSent;\nexports.loadGetInitialProps = loadGetInitialProps;\nexports.formatWithValidation = formatWithValidation;\nexports.ST = exports.SP = exports.urlObjectKeys = void 0;\n\nvar _formatUrl = __webpack_require__(/*! ./router/utils/format-url */ \"./node_modules/next/dist/next-server/lib/router/utils/format-url.js\");\n/**\n* Utils\n*/\n\n\nfunction execOnce(fn) {\n var used = false;\n var result;\n return function () {\n if (!used) {\n used = true;\n result = fn.apply(void 0, arguments);\n }\n\n return result;\n };\n}\n\nfunction getLocationOrigin() {\n var _window$location = window.location,\n protocol = _window$location.protocol,\n hostname = _window$location.hostname,\n port = _window$location.port;\n return \"\".concat(protocol, \"//\").concat(hostname).concat(port ? ':' + port : '');\n}\n\nfunction getURL() {\n var href = window.location.href;\n var origin = getLocationOrigin();\n return href.substring(origin.length);\n}\n\nfunction getDisplayName(Component) {\n return typeof Component === 'string' ? Component : Component.displayName || Component.name || 'Unknown';\n}\n\nfunction isResSent(res) {\n return res.finished || res.headersSent;\n}\n\nfunction loadGetInitialProps(_x, _x2) {\n return _loadGetInitialProps.apply(this, arguments);\n}\n\nfunction _loadGetInitialProps() {\n _loadGetInitialProps = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(App, ctx) {\n var _App$prototype, message, res, props, _message;\n\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (false) {}\n\n if (!((_App$prototype = App.prototype) === null || _App$prototype === void 0 ? void 0 : _App$prototype.getInitialProps)) {\n _context.next = 4;\n break;\n }\n\n message = \"\\\"\".concat(getDisplayName(App), \".getInitialProps()\\\" is defined as an instance method - visit https://err.sh/vercel/next.js/get-initial-props-as-an-instance-method for more information.\");\n throw new Error(message);\n\n case 4:\n // when called from _app `ctx` is nested in `ctx`\n res = ctx.res || ctx.ctx && ctx.ctx.res;\n\n if (App.getInitialProps) {\n _context.next = 12;\n break;\n }\n\n if (!(ctx.ctx && ctx.Component)) {\n _context.next = 11;\n break;\n }\n\n _context.next = 9;\n return loadGetInitialProps(ctx.Component, ctx.ctx);\n\n case 9:\n _context.t0 = _context.sent;\n return _context.abrupt(\"return\", {\n pageProps: _context.t0\n });\n\n case 11:\n return _context.abrupt(\"return\", {});\n\n case 12:\n _context.next = 14;\n return App.getInitialProps(ctx);\n\n case 14:\n props = _context.sent;\n\n if (!(res && isResSent(res))) {\n _context.next = 17;\n break;\n }\n\n return _context.abrupt(\"return\", props);\n\n case 17:\n if (props) {\n _context.next = 20;\n break;\n }\n\n _message = \"\\\"\".concat(getDisplayName(App), \".getInitialProps()\\\" should resolve to an object. But found \\\"\").concat(props, \"\\\" instead.\");\n throw new Error(_message);\n\n case 20:\n if (true) {\n if (Object.keys(props).length === 0 && !ctx.ctx) {\n console.warn(\"\".concat(getDisplayName(App), \" returned an empty object from `getInitialProps`. This de-optimizes and prevents automatic static optimization. https://err.sh/vercel/next.js/empty-object-getInitialProps\"));\n }\n }\n\n return _context.abrupt(\"return\", props);\n\n case 22:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n return _loadGetInitialProps.apply(this, arguments);\n}\n\nvar urlObjectKeys = ['auth', 'hash', 'host', 'hostname', 'href', 'path', 'pathname', 'port', 'protocol', 'query', 'search', 'slashes'];\nexports.urlObjectKeys = urlObjectKeys;\n\nfunction formatWithValidation(url) {\n if (true) {\n if (url !== null && typeof url === 'object') {\n Object.keys(url).forEach(function (key) {\n if (urlObjectKeys.indexOf(key) === -1) {\n console.warn(\"Unknown key passed via urlObject into url.format: \".concat(key));\n }\n });\n }\n }\n\n return (0, _formatUrl.formatUrl)(url);\n}\n\nvar SP = typeof performance !== 'undefined';\nexports.SP = SP;\nvar ST = SP && typeof performance.mark === 'function' && typeof performance.measure === 'function';\nexports.ST = ST;\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.i);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uLy4uL25leHQtc2VydmVyL2xpYi91dGlscy50cz9iNmY5Il0sIm5hbWVzIjpbInVzZWQiLCJyZXN1bHQiLCJmbiIsIndpbmRvdyIsInByb3RvY29sIiwiaG9zdG5hbWUiLCJwb3J0Iiwib3JpZ2luIiwiZ2V0TG9jYXRpb25PcmlnaW4iLCJocmVmIiwiQ29tcG9uZW50IiwicmVzIiwiQXBwIiwibWVzc2FnZSIsImdldERpc3BsYXlOYW1lIiwiY3R4IiwibG9hZEdldEluaXRpYWxQcm9wcyIsInBhZ2VQcm9wcyIsInByb3BzIiwiaXNSZXNTZW50IiwiT2JqZWN0IiwiY29uc29sZSIsInVybE9iamVjdEtleXMiLCJ1cmwiLCJrZXkiLCJTUCIsIlNUIiwicGVyZm9ybWFuY2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJQTtBQTZQQTs7Ozs7QUFHTyxzQkFFRjtBQUNILE1BQUlBLElBQUksR0FBUjtBQUNBO0FBRUEsU0FBUSxZQUFvQjtBQUMxQixRQUFJLENBQUosTUFBVztBQUNUQSxVQUFJLEdBQUpBO0FBQ0FDLFlBQU0sR0FBR0MsRUFBVEQsTUFBU0MsbUJBQVREO0FBRUY7O0FBQUE7QUFMRjtBQVNLOztBQUFBLDZCQUE2QjtBQUFBLHlCQUNHRSxNQUFNLENBQTNDLFFBRGtDO0FBQUEsTUFDNUIsUUFENEIsb0JBQzVCLFFBRDRCO0FBQUEsTUFDNUIsUUFENEIsb0JBQzVCLFFBRDRCO0FBQUEsTUFDNUIsSUFENEIsb0JBQzVCLElBRDRCO0FBRWxDLG1CQUFVQyxRQUFWLGVBQXVCQyxRQUF2QixTQUFrQ0MsSUFBSSxHQUFHLE1BQUgsT0FBdEM7QUFHSzs7QUFBQSxrQkFBa0I7QUFBQSxNQUNqQixJQURpQixHQUNOSCxNQUFNLENBQXZCLFFBRHVCLENBQ2pCLElBRGlCO0FBRXZCLE1BQU1JLE1BQU0sR0FBR0MsaUJBQWY7QUFDQSxTQUFPQyxJQUFJLENBQUpBLFVBQWVGLE1BQU0sQ0FBNUIsTUFBT0UsQ0FBUDtBQUdLOztBQUFBLG1DQUF3RDtBQUM3RCxTQUFPLDRDQUVIQyxTQUFTLENBQVRBLGVBQXlCQSxTQUFTLENBQWxDQSxRQUZKO0FBS0s7O0FBQUEsd0JBQXdDO0FBQzdDLFNBQU9DLEdBQUcsQ0FBSEEsWUFBZ0JBLEdBQUcsQ0FBMUI7QUFHSzs7U0FBQSxtQjs7Ozs7a0ZBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBLGtCQU1ILGtCQUFJQyxHQUFHLENBQVAsNERBQUlBLGVBQUosZUFORztBQUFBO0FBQUE7QUFBQTs7QUFPS0MsbUJBUEwsZUFPbUJDLGNBQWMsQ0FBbEMsR0FBa0MsQ0FQakM7QUFBQSxrQkFVSyxVQUFOLE9BQU0sQ0FWTDs7QUFBQTtBQWFMO0FBQ01ILGVBZEQsR0FjT0ksR0FBRyxDQUFIQSxPQUFZQSxHQUFHLENBQUhBLE9BQVdBLEdBQUcsQ0FBSEEsSUFBbkMsR0FkSzs7QUFBQSxnQkFnQkFILEdBQUcsQ0FBUixlQWhCSztBQUFBO0FBQUE7QUFBQTs7QUFBQSxrQkFpQkNHLEdBQUcsQ0FBSEEsT0FBV0EsR0FBRyxDQUFsQixTQWpCRztBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBLG1CQW9Ca0JDLG1CQUFtQixDQUFDRCxHQUFHLENBQUosV0FBZ0JBLEdBQUcsQ0FEekQsR0FDc0MsQ0FwQnJDOztBQUFBO0FBQUE7QUFBQTtBQW9CQ0UsdUJBcEJEO0FBQUE7O0FBQUE7QUFBQSw2Q0F1QkgsRUF2Qkc7O0FBQUE7QUFBQTtBQUFBLG1CQTBCZUwsR0FBRyxDQUFIQSxnQkFBcEIsR0FBb0JBLENBMUJmOztBQUFBO0FBMEJDTSxpQkExQkQ7O0FBQUEsa0JBNEJEUCxHQUFHLElBQUlRLFNBQVMsQ0FBcEIsR0FBb0IsQ0E1QmY7QUFBQTtBQUFBO0FBQUE7O0FBQUEsNkNBNkJILEtBN0JHOztBQUFBO0FBQUEsZ0JBZ0NMLEtBaENLO0FBQUE7QUFBQTtBQUFBOztBQWlDR04sb0JBakNILGVBaUNpQkMsY0FBYyxLQWpDL0IsMkVBaUNILEtBakNHO0FBQUEsa0JBb0NHLFVBQU4sUUFBTSxDQXBDSDs7QUFBQTtBQXVDTCxzQkFBMkM7QUFDekMsa0JBQUlNLE1BQU0sQ0FBTkEsNEJBQW1DLENBQUNMLEdBQUcsQ0FBM0MsS0FBaUQ7QUFDL0NNLHVCQUFPLENBQVBBLGVBQ0tQLGNBQWMsQ0FEbkJPLEdBQ21CLENBRG5CQTtBQU1IO0FBRUQ7O0FBakRLLDZDQWlETCxLQWpESzs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxHOzs7O0FBb0RBLElBQU1DLGFBQWEsR0FBRyx3R0FBdEIsU0FBc0IsQ0FBdEI7OztBQWVBLG1DQUFzRDtBQUMzRCxZQUE0QztBQUMxQyxRQUFJQyxHQUFHLEtBQUhBLFFBQWdCLGVBQXBCLFVBQTZDO0FBQzNDSCxZQUFNLENBQU5BLGtCQUEwQkksYUFBRCxFQUFTO0FBQ2hDLFlBQUlGLGFBQWEsQ0FBYkEsaUJBQStCLENBQW5DLEdBQXVDO0FBQ3JDRCxpQkFBTyxDQUFQQTtBQUlIO0FBTkREO0FBUUg7QUFFRDs7QUFBQSxTQUFPLDBCQUFQLEdBQU8sQ0FBUDtBQUdLOztBQUFBLElBQU1LLEVBQUUsR0FBRyx1QkFBWDs7QUFDQSxJQUFNQyxFQUFFLEdBQ2JELEVBQUUsSUFDRixPQUFPRSxXQUFXLENBQWxCLFNBREFGLGNBRUEsT0FBT0UsV0FBVyxDQUFsQixZQUhLIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9uZXh0LXNlcnZlci9saWIvdXRpbHMuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmNvbWluZ01lc3NhZ2UsIFNlcnZlclJlc3BvbnNlIH0gZnJvbSAnaHR0cCdcbmltcG9ydCB7IFBhcnNlZFVybFF1ZXJ5IH0gZnJvbSAncXVlcnlzdHJpbmcnXG5pbXBvcnQgeyBDb21wb25lbnRUeXBlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBVcmxPYmplY3QgfSBmcm9tICd1cmwnXG5pbXBvcnQgeyBmb3JtYXRVcmwgfSBmcm9tICcuL3JvdXRlci91dGlscy9mb3JtYXQtdXJsJ1xuaW1wb3J0IHsgTWFuaWZlc3RJdGVtIH0gZnJvbSAnLi4vc2VydmVyL2xvYWQtY29tcG9uZW50cydcbmltcG9ydCB7IE5leHRSb3V0ZXIgfSBmcm9tICcuL3JvdXRlci9yb3V0ZXInXG5pbXBvcnQgeyBFbnYgfSBmcm9tICcuLi8uLi9saWIvbG9hZC1lbnYtY29uZmlnJ1xuaW1wb3J0IHsgQnVpbGRNYW5pZmVzdCB9IGZyb20gJy4uL3NlcnZlci9nZXQtcGFnZS1maWxlcydcblxuLyoqXG4gKiBUeXBlcyB1c2VkIGJ5IGJvdGggbmV4dCBhbmQgbmV4dC1zZXJ2ZXJcbiAqL1xuXG5leHBvcnQgdHlwZSBOZXh0Q29tcG9uZW50VHlwZTxcbiAgQyBleHRlbmRzIEJhc2VDb250ZXh0ID0gTmV4dFBhZ2VDb250ZXh0LFxuICBJUCA9IHt9LFxuICBQID0ge31cbj4gPSBDb21wb25lbnRUeXBlPFA+ICYge1xuICAvKipcbiAgICogVXNlZCBmb3IgaW5pdGlhbCBwYWdlIGxvYWQgZGF0YSBwb3B1bGF0aW9uLiBEYXRhIHJldHVybmVkIGZyb20gYGdldEluaXRpYWxQcm9wc2AgaXMgc2VyaWFsaXplZCB3aGVuIHNlcnZlciByZW5kZXJlZC5cbiAgICogTWFrZSBzdXJlIHRvIHJldHVybiBwbGFpbiBgT2JqZWN0YCB3aXRob3V0IHVzaW5nIGBEYXRlYCwgYE1hcGAsIGBTZXRgLlxuICAgKiBAcGFyYW0gY3R4IENvbnRleHQgb2YgYHBhZ2VgXG4gICAqL1xuICBnZXRJbml0aWFsUHJvcHM/KGNvbnRleHQ6IEMpOiBJUCB8IFByb21pc2U8SVA+XG59XG5cbmV4cG9ydCB0eXBlIERvY3VtZW50VHlwZSA9IE5leHRDb21wb25lbnRUeXBlPFxuICBEb2N1bWVudENvbnRleHQsXG4gIERvY3VtZW50SW5pdGlhbFByb3BzLFxuICBEb2N1bWVudFByb3BzXG4+ICYge1xuICByZW5kZXJEb2N1bWVudChcbiAgICBEb2N1bWVudDogRG9jdW1lbnRUeXBlLFxuICAgIHByb3BzOiBEb2N1bWVudFByb3BzXG4gICk6IFJlYWN0LlJlYWN0RWxlbWVudFxufVxuXG5leHBvcnQgdHlwZSBBcHBUeXBlID0gTmV4dENvbXBvbmVudFR5cGU8XG4gIEFwcENvbnRleHRUeXBlLFxuICBBcHBJbml0aWFsUHJvcHMsXG4gIEFwcFByb3BzVHlwZVxuPlxuXG5leHBvcnQgdHlwZSBBcHBUcmVlVHlwZSA9IENvbXBvbmVudFR5cGU8XG4gIEFwcEluaXRpYWxQcm9wcyAmIHsgW25hbWU6IHN0cmluZ106IGFueSB9XG4+XG5cbi8qKlxuICogV2ViIHZpdGFscyBwcm92aWRlZCB0byBfYXBwLnJlcG9ydFdlYlZpdGFscyBieSBDb3JlIFdlYiBWaXRhbHMgcGx1Z2luIGRldmVsb3BlZCBieSBHb29nbGUgQ2hyb21lIHRlYW0uXG4gKiBodHRwczovL25leHRqcy5vcmcvYmxvZy9uZXh0LTktNCNpbnRlZ3JhdGVkLXdlYi12aXRhbHMtcmVwb3J0aW5nXG4gKi9cbmV4cG9ydCB0eXBlIE5leHRXZWJWaXRhbHNNZXRyaWMgPSB7XG4gIGlkOiBzdHJpbmdcbiAgbGFiZWw6IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbiAgc3RhcnRUaW1lOiBudW1iZXJcbiAgdmFsdWU6IG51bWJlclxufVxuXG5leHBvcnQgdHlwZSBFbmhhbmNlcjxDPiA9IChDb21wb25lbnQ6IEMpID0+IENcblxuZXhwb3J0IHR5cGUgQ29tcG9uZW50c0VuaGFuY2VyID1cbiAgfCB7XG4gICAgICBlbmhhbmNlQXBwPzogRW5oYW5jZXI8QXBwVHlwZT5cbiAgICAgIGVuaGFuY2VDb21wb25lbnQ/OiBFbmhhbmNlcjxOZXh0Q29tcG9uZW50VHlwZT5cbiAgICB9XG4gIHwgRW5oYW5jZXI8TmV4dENvbXBvbmVudFR5cGU+XG5cbmV4cG9ydCB0eXBlIFJlbmRlclBhZ2VSZXN1bHQgPSB7XG4gIGh0bWw6IHN0cmluZ1xuICBoZWFkPzogQXJyYXk8SlNYLkVsZW1lbnQgfCBudWxsPlxufVxuXG5leHBvcnQgdHlwZSBSZW5kZXJQYWdlID0gKFxuICBvcHRpb25zPzogQ29tcG9uZW50c0VuaGFuY2VyXG4pID0+IFJlbmRlclBhZ2VSZXN1bHQgfCBQcm9taXNlPFJlbmRlclBhZ2VSZXN1bHQ+XG5cbmV4cG9ydCB0eXBlIEJhc2VDb250ZXh0ID0ge1xuICByZXM/OiBTZXJ2ZXJSZXNwb25zZVxuICBbazogc3RyaW5nXTogYW55XG59XG5cbmV4cG9ydCB0eXBlIE5FWFRfREFUQSA9IHtcbiAgcHJvcHM6IGFueVxuICBwYWdlOiBzdHJpbmdcbiAgcXVlcnk6IFBhcnNlZFVybFF1ZXJ5XG4gIGJ1aWxkSWQ6IHN0cmluZ1xuICBhc3NldFByZWZpeD86IHN0cmluZ1xuICBydW50aW1lQ29uZmlnPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfVxuICBuZXh0RXhwb3J0PzogYm9vbGVhblxuICBhdXRvRXhwb3J0PzogYm9vbGVhblxuICBpc0ZhbGxiYWNrPzogYm9vbGVhblxuICBkeW5hbWljSWRzPzogc3RyaW5nW11cbiAgZXJyPzogRXJyb3IgJiB7IHN0YXR1c0NvZGU/OiBudW1iZXIgfVxuICBnc3A/OiBib29sZWFuXG4gIGdzc3A/OiBib29sZWFuXG4gIGN1c3RvbVNlcnZlcj86IGJvb2xlYW5cbiAgZ2lwPzogYm9vbGVhblxuICBhcHBHaXA/OiBib29sZWFuXG59XG5cbi8qKlxuICogYE5leHRgIGNvbnRleHRcbiAqL1xuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lIGludGVyZmFjZS1uYW1lXG5leHBvcnQgaW50ZXJmYWNlIE5leHRQYWdlQ29udGV4dCB7XG4gIC8qKlxuICAgKiBFcnJvciBvYmplY3QgaWYgZW5jb3VudGVyZWQgZHVyaW5nIHJlbmRlcmluZ1xuICAgKi9cbiAgZXJyPzogKEVycm9yICYgeyBzdGF0dXNDb2RlPzogbnVtYmVyIH0pIHwgbnVsbFxuICAvKipcbiAgICogYEhUVFBgIHJlcXVlc3Qgb2JqZWN0LlxuICAgKi9cbiAgcmVxPzogSW5jb21pbmdNZXNzYWdlXG4gIC8qKlxuICAgKiBgSFRUUGAgcmVzcG9uc2Ugb2JqZWN0LlxuICAgKi9cbiAgcmVzPzogU2VydmVyUmVzcG9uc2VcbiAgLyoqXG4gICAqIFBhdGggc2VjdGlvbiBvZiBgVVJMYC5cbiAgICovXG4gIHBhdGhuYW1lOiBzdHJpbmdcbiAgLyoqXG4gICAqIFF1ZXJ5IHN0cmluZyBzZWN0aW9uIG9mIGBVUkxgIHBhcnNlZCBhcyBhbiBvYmplY3QuXG4gICAqL1xuICBxdWVyeTogUGFyc2VkVXJsUXVlcnlcbiAgLyoqXG4gICAqIGBTdHJpbmdgIG9mIHRoZSBhY3R1YWwgcGF0aCBpbmNsdWRpbmcgcXVlcnkuXG4gICAqL1xuICBhc1BhdGg/OiBzdHJpbmdcbiAgLyoqXG4gICAqIGBDb21wb25lbnRgIHRoZSB0cmVlIG9mIHRoZSBBcHAgdG8gdXNlIGlmIG5lZWRpbmcgdG8gcmVuZGVyIHNlcGFyYXRlbHlcbiAgICovXG4gIEFwcFRyZWU6IEFwcFRyZWVUeXBlXG59XG5cbmV4cG9ydCB0eXBlIEFwcENvbnRleHRUeXBlPFIgZXh0ZW5kcyBOZXh0Um91dGVyID0gTmV4dFJvdXRlcj4gPSB7XG4gIENvbXBvbmVudDogTmV4dENvbXBvbmVudFR5cGU8TmV4dFBhZ2VDb250ZXh0PlxuICBBcHBUcmVlOiBBcHBUcmVlVHlwZVxuICBjdHg6IE5leHRQYWdlQ29udGV4dFxuICByb3V0ZXI6IFJcbn1cblxuZXhwb3J0IHR5cGUgQXBwSW5pdGlhbFByb3BzID0ge1xuICBwYWdlUHJvcHM6IGFueVxufVxuXG5leHBvcnQgdHlwZSBBcHBQcm9wc1R5cGU8XG4gIFIgZXh0ZW5kcyBOZXh0Um91dGVyID0gTmV4dFJvdXRlcixcbiAgUCA9IHt9XG4+ID0gQXBwSW5pdGlhbFByb3BzICYge1xuICBDb21wb25lbnQ6IE5leHRDb21wb25lbnRUeXBlPE5leHRQYWdlQ29udGV4dCwgYW55LCBQPlxuICByb3V0ZXI6IFJcbiAgX19OX1NTRz86IGJvb2xlYW5cbiAgX19OX1NTUD86IGJvb2xlYW5cbn1cblxuZXhwb3J0IHR5cGUgRG9jdW1lbnRDb250ZXh0ID0gTmV4dFBhZ2VDb250ZXh0ICYge1xuICByZW5kZXJQYWdlOiBSZW5kZXJQYWdlXG59XG5cbmV4cG9ydCB0eXBlIERvY3VtZW50SW5pdGlhbFByb3BzID0gUmVuZGVyUGFnZVJlc3VsdCAmIHtcbiAgc3R5bGVzPzogUmVhY3QuUmVhY3RFbGVtZW50W10gfCBSZWFjdC5SZWFjdEZyYWdtZW50XG59XG5cbmV4cG9ydCB0eXBlIERvY3VtZW50UHJvcHMgPSBEb2N1bWVudEluaXRpYWxQcm9wcyAmIHtcbiAgX19ORVhUX0RBVEFfXzogTkVYVF9EQVRBXG4gIGRhbmdlcm91c0FzUGF0aDogc3RyaW5nXG4gIGJ1aWxkTWFuaWZlc3Q6IEJ1aWxkTWFuaWZlc3RcbiAgYW1wUGF0aDogc3RyaW5nXG4gIGluQW1wTW9kZTogYm9vbGVhblxuICBoeWJyaWRBbXA6IGJvb2xlYW5cbiAgaXNEZXZlbG9wbWVudDogYm9vbGVhblxuICBmaWxlczogc3RyaW5nW11cbiAgZHluYW1pY0ltcG9ydHM6IE1hbmlmZXN0SXRlbVtdXG4gIGFzc2V0UHJlZml4Pzogc3RyaW5nXG4gIGNhbm9uaWNhbEJhc2U6IHN0cmluZ1xuICBoZWFkVGFnczogYW55W11cbiAgdW5zdGFibGVfcnVudGltZUpTPzogZmFsc2Vcbn1cblxuLyoqXG4gKiBOZXh0IGBBUElgIHJvdXRlIHJlcXVlc3RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXh0QXBpUmVxdWVzdCBleHRlbmRzIEluY29taW5nTWVzc2FnZSB7XG4gIC8qKlxuICAgKiBPYmplY3Qgb2YgYHF1ZXJ5YCB2YWx1ZXMgZnJvbSB1cmxcbiAgICovXG4gIHF1ZXJ5OiB7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW11cbiAgfVxuICAvKipcbiAgICogT2JqZWN0IG9mIGBjb29raWVzYCBmcm9tIGhlYWRlclxuICAgKi9cbiAgY29va2llczoge1xuICAgIFtrZXk6IHN0cmluZ106IHN0cmluZ1xuICB9XG5cbiAgYm9keTogYW55XG5cbiAgZW52OiBFbnZcblxuICBwcmV2aWV3PzogYm9vbGVhblxuICAvKipcbiAgICogUHJldmlldyBkYXRhIHNldCBvbiB0aGUgcmVxdWVzdCwgaWYgYW55XG4gICAqICovXG4gIHByZXZpZXdEYXRhPzogYW55XG59XG5cbi8qKlxuICogU2VuZCBib2R5IG9mIHJlc3BvbnNlXG4gKi9cbnR5cGUgU2VuZDxUPiA9IChib2R5OiBUKSA9PiB2b2lkXG5cbi8qKlxuICogTmV4dCBgQVBJYCByb3V0ZSByZXNwb25zZVxuICovXG5leHBvcnQgdHlwZSBOZXh0QXBpUmVzcG9uc2U8VCA9IGFueT4gPSBTZXJ2ZXJSZXNwb25zZSAmIHtcbiAgLyoqXG4gICAqIFNlbmQgZGF0YSBgYW55YCBkYXRhIGluIHJlc3BvbnNlXG4gICAqL1xuICBzZW5kOiBTZW5kPFQ+XG4gIC8qKlxuICAgKiBTZW5kIGRhdGEgYGpzb25gIGRhdGEgaW4gcmVzcG9uc2VcbiAgICovXG4gIGpzb246IFNlbmQ8VD5cbiAgc3RhdHVzOiAoc3RhdHVzQ29kZTogbnVtYmVyKSA9PiBOZXh0QXBpUmVzcG9uc2U8VD5cbiAgcmVkaXJlY3QodXJsOiBzdHJpbmcpOiBOZXh0QXBpUmVzcG9uc2U8VD5cbiAgcmVkaXJlY3Qoc3RhdHVzOiBudW1iZXIsIHVybDogc3RyaW5nKTogTmV4dEFwaVJlc3BvbnNlPFQ+XG5cbiAgLyoqXG4gICAqIFNldCBwcmV2aWV3IGRhdGEgZm9yIE5leHQuanMnIHByZXJlbmRlciBtb2RlXG4gICAqL1xuICBzZXRQcmV2aWV3RGF0YTogKFxuICAgIGRhdGE6IG9iamVjdCB8IHN0cmluZyxcbiAgICBvcHRpb25zPzoge1xuICAgICAgLyoqXG4gICAgICAgKiBTcGVjaWZpZXMgdGhlIG51bWJlciAoaW4gc2Vjb25kcykgZm9yIHRoZSBwcmV2aWV3IHNlc3Npb24gdG8gbGFzdCBmb3IuXG4gICAgICAgKiBUaGUgZ2l2ZW4gbnVtYmVyIHdpbGwgYmUgY29udmVydGVkIHRvIGFuIGludGVnZXIgYnkgcm91bmRpbmcgZG93bi5cbiAgICAgICAqIEJ5IGRlZmF1bHQsIG5vIG1heGltdW0gYWdlIGlzIHNldCBhbmQgdGhlIHByZXZpZXcgc2Vzc2lvbiBmaW5pc2hlc1xuICAgICAgICogd2hlbiB0aGUgY2xpZW50IHNodXRzIGRvd24gKGJyb3dzZXIgaXMgY2xvc2VkKS5cbiAgICAgICAqL1xuICAgICAgbWF4QWdlPzogbnVtYmVyXG4gICAgfVxuICApID0+IE5leHRBcGlSZXNwb25zZTxUPlxuICBjbGVhclByZXZpZXdEYXRhOiAoKSA9PiBOZXh0QXBpUmVzcG9uc2U8VD5cbn1cblxuLyoqXG4gKiBOZXh0IGBBUElgIHJvdXRlIGhhbmRsZXJcbiAqL1xuZXhwb3J0IHR5cGUgTmV4dEFwaUhhbmRsZXI8VCA9IGFueT4gPSAoXG4gIHJlcTogTmV4dEFwaVJlcXVlc3QsXG4gIHJlczogTmV4dEFwaVJlc3BvbnNlPFQ+XG4pID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+XG5cbi8qKlxuICogVXRpbHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4ZWNPbmNlPFQgZXh0ZW5kcyAoLi4uYXJnczogYW55W10pID0+IFJldHVyblR5cGU8VD4+KFxuICBmbjogVFxuKTogVCB7XG4gIGxldCB1c2VkID0gZmFsc2VcbiAgbGV0IHJlc3VsdDogUmV0dXJuVHlwZTxUPlxuXG4gIHJldHVybiAoKC4uLmFyZ3M6IGFueVtdKSA9PiB7XG4gICAgaWYgKCF1c2VkKSB7XG4gICAgICB1c2VkID0gdHJ1ZVxuICAgICAgcmVzdWx0ID0gZm4oLi4uYXJncylcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdFxuICB9KSBhcyBUXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2NhdGlvbk9yaWdpbigpIHtcbiAgY29uc3QgeyBwcm90b2NvbCwgaG9zdG5hbWUsIHBvcnQgfSA9IHdpbmRvdy5sb2NhdGlvblxuICByZXR1cm4gYCR7cHJvdG9jb2x9Ly8ke2hvc3RuYW1lfSR7cG9ydCA/ICc6JyArIHBvcnQgOiAnJ31gXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRVUkwoKSB7XG4gIGNvbnN0IHsgaHJlZiB9ID0gd2luZG93LmxvY2F0aW9uXG4gIGNvbnN0IG9yaWdpbiA9IGdldExvY2F0aW9uT3JpZ2luKClcbiAgcmV0dXJuIGhyZWYuc3Vic3RyaW5nKG9yaWdpbi5sZW5ndGgpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREaXNwbGF5TmFtZTxQPihDb21wb25lbnQ6IENvbXBvbmVudFR5cGU8UD4pIHtcbiAgcmV0dXJuIHR5cGVvZiBDb21wb25lbnQgPT09ICdzdHJpbmcnXG4gICAgPyBDb21wb25lbnRcbiAgICA6IENvbXBvbmVudC5kaXNwbGF5TmFtZSB8fCBDb21wb25lbnQubmFtZSB8fCAnVW5rbm93bidcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUmVzU2VudChyZXM6IFNlcnZlclJlc3BvbnNlKSB7XG4gIHJldHVybiByZXMuZmluaXNoZWQgfHwgcmVzLmhlYWRlcnNTZW50XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsb2FkR2V0SW5pdGlhbFByb3BzPFxuICBDIGV4dGVuZHMgQmFzZUNvbnRleHQsXG4gIElQID0ge30sXG4gIFAgPSB7fVxuPihBcHA6IE5leHRDb21wb25lbnRUeXBlPEMsIElQLCBQPiwgY3R4OiBDKTogUHJvbWlzZTxJUD4ge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGlmIChBcHAucHJvdG90eXBlPy5nZXRJbml0aWFsUHJvcHMpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgXCIke2dldERpc3BsYXlOYW1lKFxuICAgICAgICBBcHBcbiAgICAgICl9LmdldEluaXRpYWxQcm9wcygpXCIgaXMgZGVmaW5lZCBhcyBhbiBpbnN0YW5jZSBtZXRob2QgLSB2aXNpdCBodHRwczovL2Vyci5zaC92ZXJjZWwvbmV4dC5qcy9nZXQtaW5pdGlhbC1wcm9wcy1hcy1hbi1pbnN0YW5jZS1tZXRob2QgZm9yIG1vcmUgaW5mb3JtYXRpb24uYFxuICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpXG4gICAgfVxuICB9XG4gIC8vIHdoZW4gY2FsbGVkIGZyb20gX2FwcCBgY3R4YCBpcyBuZXN0ZWQgaW4gYGN0eGBcbiAgY29uc3QgcmVzID0gY3R4LnJlcyB8fCAoY3R4LmN0eCAmJiBjdHguY3R4LnJlcylcblxuICBpZiAoIUFwcC5nZXRJbml0aWFsUHJvcHMpIHtcbiAgICBpZiAoY3R4LmN0eCAmJiBjdHguQ29tcG9uZW50KSB7XG4gICAgICAvLyBAdHMtaWdub3JlIHBhZ2VQcm9wcyBkZWZhdWx0XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwYWdlUHJvcHM6IGF3YWl0IGxvYWRHZXRJbml0aWFsUHJvcHMoY3R4LkNvbXBvbmVudCwgY3R4LmN0eCksXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7fSBhcyBJUFxuICB9XG5cbiAgY29uc3QgcHJvcHMgPSBhd2FpdCBBcHAuZ2V0SW5pdGlhbFByb3BzKGN0eClcblxuICBpZiAocmVzICYmIGlzUmVzU2VudChyZXMpKSB7XG4gICAgcmV0dXJuIHByb3BzXG4gIH1cblxuICBpZiAoIXByb3BzKSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGBcIiR7Z2V0RGlzcGxheU5hbWUoXG4gICAgICBBcHBcbiAgICApfS5nZXRJbml0aWFsUHJvcHMoKVwiIHNob3VsZCByZXNvbHZlIHRvIGFuIG9iamVjdC4gQnV0IGZvdW5kIFwiJHtwcm9wc31cIiBpbnN0ZWFkLmBcbiAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSlcbiAgfVxuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgaWYgKE9iamVjdC5rZXlzKHByb3BzKS5sZW5ndGggPT09IDAgJiYgIWN0eC5jdHgpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgYCR7Z2V0RGlzcGxheU5hbWUoXG4gICAgICAgICAgQXBwXG4gICAgICAgICl9IHJldHVybmVkIGFuIGVtcHR5IG9iamVjdCBmcm9tIFxcYGdldEluaXRpYWxQcm9wc1xcYC4gVGhpcyBkZS1vcHRpbWl6ZXMgYW5kIHByZXZlbnRzIGF1dG9tYXRpYyBzdGF0aWMgb3B0aW1pemF0aW9uLiBodHRwczovL2Vyci5zaC92ZXJjZWwvbmV4dC5qcy9lbXB0eS1vYmplY3QtZ2V0SW5pdGlhbFByb3BzYFxuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBwcm9wc1xufVxuXG5leHBvcnQgY29uc3QgdXJsT2JqZWN0S2V5cyA9IFtcbiAgJ2F1dGgnLFxuICAnaGFzaCcsXG4gICdob3N0JyxcbiAgJ2hvc3RuYW1lJyxcbiAgJ2hyZWYnLFxuICAncGF0aCcsXG4gICdwYXRobmFtZScsXG4gICdwb3J0JyxcbiAgJ3Byb3RvY29sJyxcbiAgJ3F1ZXJ5JyxcbiAgJ3NlYXJjaCcsXG4gICdzbGFzaGVzJyxcbl1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFdpdGhWYWxpZGF0aW9uKHVybDogVXJsT2JqZWN0KTogc3RyaW5nIHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgaWYgKHVybCAhPT0gbnVsbCAmJiB0eXBlb2YgdXJsID09PSAnb2JqZWN0Jykge1xuICAgICAgT2JqZWN0LmtleXModXJsKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgaWYgKHVybE9iamVjdEtleXMuaW5kZXhPZihrZXkpID09PSAtMSkge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgIGBVbmtub3duIGtleSBwYXNzZWQgdmlhIHVybE9iamVjdCBpbnRvIHVybC5mb3JtYXQ6ICR7a2V5fWBcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZvcm1hdFVybCh1cmwpXG59XG5cbmV4cG9ydCBjb25zdCBTUCA9IHR5cGVvZiBwZXJmb3JtYW5jZSAhPT0gJ3VuZGVmaW5lZCdcbmV4cG9ydCBjb25zdCBTVCA9XG4gIFNQICYmXG4gIHR5cGVvZiBwZXJmb3JtYW5jZS5tYXJrID09PSAnZnVuY3Rpb24nICYmXG4gIHR5cGVvZiBwZXJmb3JtYW5jZS5tZWFzdXJlID09PSAnZnVuY3Rpb24nXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/next-server/lib/utils.js\n"); +eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nvar _regeneratorRuntime = __webpack_require__(/*! @babel/runtime/regenerator */ \"./node_modules/next/node_modules/@babel/runtime/regenerator/index.js\");\n\nvar _asyncToGenerator = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/next/node_modules/@babel/runtime/helpers/asyncToGenerator.js\");\n\nexports.__esModule = true;\nexports.execOnce = execOnce;\nexports.getLocationOrigin = getLocationOrigin;\nexports.getURL = getURL;\nexports.getDisplayName = getDisplayName;\nexports.isResSent = isResSent;\nexports.loadGetInitialProps = loadGetInitialProps;\nexports.formatWithValidation = formatWithValidation;\nexports.ST = exports.SP = exports.urlObjectKeys = void 0;\n\nvar _formatUrl = __webpack_require__(/*! ./router/utils/format-url */ \"./node_modules/next/dist/next-server/lib/router/utils/format-url.js\");\n/**\n* Utils\n*/\n\n\nfunction execOnce(fn) {\n var used = false;\n var result;\n return function () {\n if (!used) {\n used = true;\n result = fn.apply(void 0, arguments);\n }\n\n return result;\n };\n}\n\nfunction getLocationOrigin() {\n var _window$location = window.location,\n protocol = _window$location.protocol,\n hostname = _window$location.hostname,\n port = _window$location.port;\n return \"\".concat(protocol, \"//\").concat(hostname).concat(port ? ':' + port : '');\n}\n\nfunction getURL() {\n var href = window.location.href;\n var origin = getLocationOrigin();\n return href.substring(origin.length);\n}\n\nfunction getDisplayName(Component) {\n return typeof Component === 'string' ? Component : Component.displayName || Component.name || 'Unknown';\n}\n\nfunction isResSent(res) {\n return res.finished || res.headersSent;\n}\n\nfunction loadGetInitialProps(_x, _x2) {\n return _loadGetInitialProps.apply(this, arguments);\n}\n\nfunction _loadGetInitialProps() {\n _loadGetInitialProps = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(App, ctx) {\n var _App$prototype, message, res, props, _message;\n\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (false) {}\n\n if (!((_App$prototype = App.prototype) == null ? void 0 : _App$prototype.getInitialProps)) {\n _context.next = 4;\n break;\n }\n\n message = \"\\\"\".concat(getDisplayName(App), \".getInitialProps()\\\" is defined as an instance method - visit https://err.sh/vercel/next.js/get-initial-props-as-an-instance-method for more information.\");\n throw new Error(message);\n\n case 4:\n // when called from _app `ctx` is nested in `ctx`\n res = ctx.res || ctx.ctx && ctx.ctx.res;\n\n if (App.getInitialProps) {\n _context.next = 12;\n break;\n }\n\n if (!(ctx.ctx && ctx.Component)) {\n _context.next = 11;\n break;\n }\n\n _context.next = 9;\n return loadGetInitialProps(ctx.Component, ctx.ctx);\n\n case 9:\n _context.t0 = _context.sent;\n return _context.abrupt(\"return\", {\n pageProps: _context.t0\n });\n\n case 11:\n return _context.abrupt(\"return\", {});\n\n case 12:\n _context.next = 14;\n return App.getInitialProps(ctx);\n\n case 14:\n props = _context.sent;\n\n if (!(res && isResSent(res))) {\n _context.next = 17;\n break;\n }\n\n return _context.abrupt(\"return\", props);\n\n case 17:\n if (props) {\n _context.next = 20;\n break;\n }\n\n _message = \"\\\"\".concat(getDisplayName(App), \".getInitialProps()\\\" should resolve to an object. But found \\\"\").concat(props, \"\\\" instead.\");\n throw new Error(_message);\n\n case 20:\n if (true) {\n if (Object.keys(props).length === 0 && !ctx.ctx) {\n console.warn(\"\".concat(getDisplayName(App), \" returned an empty object from `getInitialProps`. This de-optimizes and prevents automatic static optimization. https://err.sh/vercel/next.js/empty-object-getInitialProps\"));\n }\n }\n\n return _context.abrupt(\"return\", props);\n\n case 22:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n return _loadGetInitialProps.apply(this, arguments);\n}\n\nvar urlObjectKeys = ['auth', 'hash', 'host', 'hostname', 'href', 'path', 'pathname', 'port', 'protocol', 'query', 'search', 'slashes'];\nexports.urlObjectKeys = urlObjectKeys;\n\nfunction formatWithValidation(url) {\n if (true) {\n if (url !== null && typeof url === 'object') {\n Object.keys(url).forEach(function (key) {\n if (urlObjectKeys.indexOf(key) === -1) {\n console.warn(\"Unknown key passed via urlObject into url.format: \".concat(key));\n }\n });\n }\n }\n\n return (0, _formatUrl.formatUrl)(url);\n}\n\nvar SP = typeof performance !== 'undefined';\nexports.SP = SP;\nvar ST = SP && typeof performance.mark === 'function' && typeof performance.measure === 'function';\nexports.ST = ST;\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.i);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uLy4uL25leHQtc2VydmVyL2xpYi91dGlscy50cz9iNmY5Il0sIm5hbWVzIjpbInVzZWQiLCJyZXN1bHQiLCJmbiIsIndpbmRvdyIsInByb3RvY29sIiwiaG9zdG5hbWUiLCJwb3J0Iiwib3JpZ2luIiwiZ2V0TG9jYXRpb25PcmlnaW4iLCJocmVmIiwiQ29tcG9uZW50IiwicmVzIiwiQXBwIiwibWVzc2FnZSIsImdldERpc3BsYXlOYW1lIiwiY3R4IiwibG9hZEdldEluaXRpYWxQcm9wcyIsInBhZ2VQcm9wcyIsInByb3BzIiwiaXNSZXNTZW50IiwiT2JqZWN0IiwiY29uc29sZSIsInVybE9iamVjdEtleXMiLCJ1cmwiLCJrZXkiLCJTUCIsIlNUIiwicGVyZm9ybWFuY2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJQTtBQXlRQTs7Ozs7QUFHTyxzQkFFRjtBQUNILE1BQUlBLElBQUksR0FBUjtBQUNBO0FBRUEsU0FBUSxZQUFvQjtBQUMxQixRQUFJLENBQUosTUFBVztBQUNUQSxVQUFJLEdBQUpBO0FBQ0FDLFlBQU0sR0FBR0MsRUFBVEQsTUFBU0MsbUJBQVREO0FBRUY7O0FBQUE7QUFMRjtBQVNLOztBQUFBLDZCQUE2QjtBQUFBLHlCQUNHRSxNQUFNLENBQTNDLFFBRGtDO0FBQUEsTUFDNUIsUUFENEIsb0JBQzVCLFFBRDRCO0FBQUEsTUFDNUIsUUFENEIsb0JBQzVCLFFBRDRCO0FBQUEsTUFDNUIsSUFENEIsb0JBQzVCLElBRDRCO0FBRWxDLG1CQUFVQyxRQUFWLGVBQXVCQyxRQUF2QixTQUFrQ0MsSUFBSSxHQUFHLE1BQUgsT0FBdEM7QUFHSzs7QUFBQSxrQkFBa0I7QUFBQSxNQUNqQixJQURpQixHQUNOSCxNQUFNLENBQXZCLFFBRHVCLENBQ2pCLElBRGlCO0FBRXZCLE1BQU1JLE1BQU0sR0FBR0MsaUJBQWY7QUFDQSxTQUFPQyxJQUFJLENBQUpBLFVBQWVGLE1BQU0sQ0FBNUIsTUFBT0UsQ0FBUDtBQUdLOztBQUFBLG1DQUF3RDtBQUM3RCxTQUFPLDRDQUVIQyxTQUFTLENBQVRBLGVBQXlCQSxTQUFTLENBQWxDQSxRQUZKO0FBS0s7O0FBQUEsd0JBQXdDO0FBQzdDLFNBQU9DLEdBQUcsQ0FBSEEsWUFBZ0JBLEdBQUcsQ0FBMUI7QUFHSzs7U0FBQSxtQjs7Ozs7a0ZBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBLGtCQU1ILGtCQUFJQyxHQUFHLENBQVAsOEJBQUlBLGVBQUosZUFORztBQUFBO0FBQUE7QUFBQTs7QUFPS0MsbUJBUEwsZUFPbUJDLGNBQWMsQ0FBbEMsR0FBa0MsQ0FQakM7QUFBQSxrQkFVSyxVQUFOLE9BQU0sQ0FWTDs7QUFBQTtBQWFMO0FBQ01ILGVBZEQsR0FjT0ksR0FBRyxDQUFIQSxPQUFZQSxHQUFHLENBQUhBLE9BQVdBLEdBQUcsQ0FBSEEsSUFBbkMsR0FkSzs7QUFBQSxnQkFnQkFILEdBQUcsQ0FBUixlQWhCSztBQUFBO0FBQUE7QUFBQTs7QUFBQSxrQkFpQkNHLEdBQUcsQ0FBSEEsT0FBV0EsR0FBRyxDQUFsQixTQWpCRztBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBLG1CQW9Ca0JDLG1CQUFtQixDQUFDRCxHQUFHLENBQUosV0FBZ0JBLEdBQUcsQ0FEekQsR0FDc0MsQ0FwQnJDOztBQUFBO0FBQUE7QUFBQTtBQW9CQ0UsdUJBcEJEO0FBQUE7O0FBQUE7QUFBQSw2Q0F1QkgsRUF2Qkc7O0FBQUE7QUFBQTtBQUFBLG1CQTBCZUwsR0FBRyxDQUFIQSxnQkFBcEIsR0FBb0JBLENBMUJmOztBQUFBO0FBMEJDTSxpQkExQkQ7O0FBQUEsa0JBNEJEUCxHQUFHLElBQUlRLFNBQVMsQ0FBcEIsR0FBb0IsQ0E1QmY7QUFBQTtBQUFBO0FBQUE7O0FBQUEsNkNBNkJILEtBN0JHOztBQUFBO0FBQUEsZ0JBZ0NMLEtBaENLO0FBQUE7QUFBQTtBQUFBOztBQWlDR04sb0JBakNILGVBaUNpQkMsY0FBYyxLQWpDL0IsMkVBaUNILEtBakNHO0FBQUEsa0JBb0NHLFVBQU4sUUFBTSxDQXBDSDs7QUFBQTtBQXVDTCxzQkFBMkM7QUFDekMsa0JBQUlNLE1BQU0sQ0FBTkEsNEJBQW1DLENBQUNMLEdBQUcsQ0FBM0MsS0FBaUQ7QUFDL0NNLHVCQUFPLENBQVBBLGVBQ0tQLGNBQWMsQ0FEbkJPLEdBQ21CLENBRG5CQTtBQU1IO0FBRUQ7O0FBakRLLDZDQWlETCxLQWpESzs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxHOzs7O0FBb0RBLElBQU1DLGFBQWEsR0FBRyx3R0FBdEIsU0FBc0IsQ0FBdEI7OztBQWVBLG1DQUFzRDtBQUMzRCxZQUE0QztBQUMxQyxRQUFJQyxHQUFHLEtBQUhBLFFBQWdCLGVBQXBCLFVBQTZDO0FBQzNDSCxZQUFNLENBQU5BLGtCQUEwQkksYUFBRCxFQUFTO0FBQ2hDLFlBQUlGLGFBQWEsQ0FBYkEsaUJBQStCLENBQW5DLEdBQXVDO0FBQ3JDRCxpQkFBTyxDQUFQQTtBQUlIO0FBTkREO0FBUUg7QUFFRDs7QUFBQSxTQUFPLDBCQUFQLEdBQU8sQ0FBUDtBQUdLOztBQUFBLElBQU1LLEVBQUUsR0FBRyx1QkFBWDs7QUFDQSxJQUFNQyxFQUFFLEdBQ2JELEVBQUUsSUFDRixPQUFPRSxXQUFXLENBQWxCLFNBREFGLGNBRUEsT0FBT0UsV0FBVyxDQUFsQixZQUhLIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9uZXh0LXNlcnZlci9saWIvdXRpbHMuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmNvbWluZ01lc3NhZ2UsIFNlcnZlclJlc3BvbnNlIH0gZnJvbSAnaHR0cCdcbmltcG9ydCB7IFBhcnNlZFVybFF1ZXJ5IH0gZnJvbSAncXVlcnlzdHJpbmcnXG5pbXBvcnQgeyBDb21wb25lbnRUeXBlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBVcmxPYmplY3QgfSBmcm9tICd1cmwnXG5pbXBvcnQgeyBmb3JtYXRVcmwgfSBmcm9tICcuL3JvdXRlci91dGlscy9mb3JtYXQtdXJsJ1xuaW1wb3J0IHsgTWFuaWZlc3RJdGVtIH0gZnJvbSAnLi4vc2VydmVyL2xvYWQtY29tcG9uZW50cydcbmltcG9ydCB7IE5leHRSb3V0ZXIgfSBmcm9tICcuL3JvdXRlci9yb3V0ZXInXG5pbXBvcnQgeyBFbnYgfSBmcm9tICdAbmV4dC9lbnYnXG5pbXBvcnQgeyBCdWlsZE1hbmlmZXN0IH0gZnJvbSAnLi4vc2VydmVyL2dldC1wYWdlLWZpbGVzJ1xuXG4vKipcbiAqIFR5cGVzIHVzZWQgYnkgYm90aCBuZXh0IGFuZCBuZXh0LXNlcnZlclxuICovXG5cbmV4cG9ydCB0eXBlIE5leHRDb21wb25lbnRUeXBlPFxuICBDIGV4dGVuZHMgQmFzZUNvbnRleHQgPSBOZXh0UGFnZUNvbnRleHQsXG4gIElQID0ge30sXG4gIFAgPSB7fVxuPiA9IENvbXBvbmVudFR5cGU8UD4gJiB7XG4gIC8qKlxuICAgKiBVc2VkIGZvciBpbml0aWFsIHBhZ2UgbG9hZCBkYXRhIHBvcHVsYXRpb24uIERhdGEgcmV0dXJuZWQgZnJvbSBgZ2V0SW5pdGlhbFByb3BzYCBpcyBzZXJpYWxpemVkIHdoZW4gc2VydmVyIHJlbmRlcmVkLlxuICAgKiBNYWtlIHN1cmUgdG8gcmV0dXJuIHBsYWluIGBPYmplY3RgIHdpdGhvdXQgdXNpbmcgYERhdGVgLCBgTWFwYCwgYFNldGAuXG4gICAqIEBwYXJhbSBjdHggQ29udGV4dCBvZiBgcGFnZWBcbiAgICovXG4gIGdldEluaXRpYWxQcm9wcz8oY29udGV4dDogQyk6IElQIHwgUHJvbWlzZTxJUD5cbn1cblxuZXhwb3J0IHR5cGUgRG9jdW1lbnRUeXBlID0gTmV4dENvbXBvbmVudFR5cGU8XG4gIERvY3VtZW50Q29udGV4dCxcbiAgRG9jdW1lbnRJbml0aWFsUHJvcHMsXG4gIERvY3VtZW50UHJvcHNcbj4gJiB7XG4gIHJlbmRlckRvY3VtZW50KFxuICAgIERvY3VtZW50OiBEb2N1bWVudFR5cGUsXG4gICAgcHJvcHM6IERvY3VtZW50UHJvcHNcbiAgKTogUmVhY3QuUmVhY3RFbGVtZW50XG59XG5cbmV4cG9ydCB0eXBlIEFwcFR5cGUgPSBOZXh0Q29tcG9uZW50VHlwZTxcbiAgQXBwQ29udGV4dFR5cGUsXG4gIEFwcEluaXRpYWxQcm9wcyxcbiAgQXBwUHJvcHNUeXBlXG4+XG5cbmV4cG9ydCB0eXBlIEFwcFRyZWVUeXBlID0gQ29tcG9uZW50VHlwZTxcbiAgQXBwSW5pdGlhbFByb3BzICYgeyBbbmFtZTogc3RyaW5nXTogYW55IH1cbj5cblxuLyoqXG4gKiBXZWIgdml0YWxzIHByb3ZpZGVkIHRvIF9hcHAucmVwb3J0V2ViVml0YWxzIGJ5IENvcmUgV2ViIFZpdGFscyBwbHVnaW4gZGV2ZWxvcGVkIGJ5IEdvb2dsZSBDaHJvbWUgdGVhbS5cbiAqIGh0dHBzOi8vbmV4dGpzLm9yZy9ibG9nL25leHQtOS00I2ludGVncmF0ZWQtd2ViLXZpdGFscy1yZXBvcnRpbmdcbiAqL1xuZXhwb3J0IHR5cGUgTmV4dFdlYlZpdGFsc01ldHJpYyA9IHtcbiAgaWQ6IHN0cmluZ1xuICBsYWJlbDogc3RyaW5nXG4gIG5hbWU6IHN0cmluZ1xuICBzdGFydFRpbWU6IG51bWJlclxuICB2YWx1ZTogbnVtYmVyXG59XG5cbmV4cG9ydCB0eXBlIEVuaGFuY2VyPEM+ID0gKENvbXBvbmVudDogQykgPT4gQ1xuXG5leHBvcnQgdHlwZSBDb21wb25lbnRzRW5oYW5jZXIgPVxuICB8IHtcbiAgICAgIGVuaGFuY2VBcHA/OiBFbmhhbmNlcjxBcHBUeXBlPlxuICAgICAgZW5oYW5jZUNvbXBvbmVudD86IEVuaGFuY2VyPE5leHRDb21wb25lbnRUeXBlPlxuICAgIH1cbiAgfCBFbmhhbmNlcjxOZXh0Q29tcG9uZW50VHlwZT5cblxuZXhwb3J0IHR5cGUgUmVuZGVyUGFnZVJlc3VsdCA9IHtcbiAgaHRtbDogc3RyaW5nXG4gIGhlYWQ/OiBBcnJheTxKU1guRWxlbWVudCB8IG51bGw+XG59XG5cbmV4cG9ydCB0eXBlIFJlbmRlclBhZ2UgPSAoXG4gIG9wdGlvbnM/OiBDb21wb25lbnRzRW5oYW5jZXJcbikgPT4gUmVuZGVyUGFnZVJlc3VsdCB8IFByb21pc2U8UmVuZGVyUGFnZVJlc3VsdD5cblxuZXhwb3J0IHR5cGUgQmFzZUNvbnRleHQgPSB7XG4gIHJlcz86IFNlcnZlclJlc3BvbnNlXG4gIFtrOiBzdHJpbmddOiBhbnlcbn1cblxuZXhwb3J0IHR5cGUgSGVhZEVudHJ5ID0gW3N0cmluZywgeyBba2V5OiBzdHJpbmddOiBhbnkgfV1cblxuZXhwb3J0IHR5cGUgTkVYVF9EQVRBID0ge1xuICBwcm9wczogUmVjb3JkPHN0cmluZywgYW55PlxuICBwYWdlOiBzdHJpbmdcbiAgcXVlcnk6IFBhcnNlZFVybFF1ZXJ5XG4gIGJ1aWxkSWQ6IHN0cmluZ1xuICBhc3NldFByZWZpeD86IHN0cmluZ1xuICBydW50aW1lQ29uZmlnPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfVxuICBuZXh0RXhwb3J0PzogYm9vbGVhblxuICBhdXRvRXhwb3J0PzogYm9vbGVhblxuICBpc0ZhbGxiYWNrPzogYm9vbGVhblxuICBkeW5hbWljSWRzPzogc3RyaW5nW11cbiAgZXJyPzogRXJyb3IgJiB7IHN0YXR1c0NvZGU/OiBudW1iZXIgfVxuICBnc3A/OiBib29sZWFuXG4gIGdzc3A/OiBib29sZWFuXG4gIGN1c3RvbVNlcnZlcj86IGJvb2xlYW5cbiAgZ2lwPzogYm9vbGVhblxuICBhcHBHaXA/OiBib29sZWFuXG4gIGhlYWQ6IEhlYWRFbnRyeVtdXG4gIGxvY2FsZT86IHN0cmluZ1xuICBsb2NhbGVzPzogc3RyaW5nW11cbiAgZGVmYXVsdExvY2FsZT86IHN0cmluZ1xufVxuXG4vKipcbiAqIGBOZXh0YCBjb250ZXh0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmV4dFBhZ2VDb250ZXh0IHtcbiAgLyoqXG4gICAqIEVycm9yIG9iamVjdCBpZiBlbmNvdW50ZXJlZCBkdXJpbmcgcmVuZGVyaW5nXG4gICAqL1xuICBlcnI/OiAoRXJyb3IgJiB7IHN0YXR1c0NvZGU/OiBudW1iZXIgfSkgfCBudWxsXG4gIC8qKlxuICAgKiBgSFRUUGAgcmVxdWVzdCBvYmplY3QuXG4gICAqL1xuICByZXE/OiBJbmNvbWluZ01lc3NhZ2VcbiAgLyoqXG4gICAqIGBIVFRQYCByZXNwb25zZSBvYmplY3QuXG4gICAqL1xuICByZXM/OiBTZXJ2ZXJSZXNwb25zZVxuICAvKipcbiAgICogUGF0aCBzZWN0aW9uIG9mIGBVUkxgLlxuICAgKi9cbiAgcGF0aG5hbWU6IHN0cmluZ1xuICAvKipcbiAgICogUXVlcnkgc3RyaW5nIHNlY3Rpb24gb2YgYFVSTGAgcGFyc2VkIGFzIGFuIG9iamVjdC5cbiAgICovXG4gIHF1ZXJ5OiBQYXJzZWRVcmxRdWVyeVxuICAvKipcbiAgICogYFN0cmluZ2Agb2YgdGhlIGFjdHVhbCBwYXRoIGluY2x1ZGluZyBxdWVyeS5cbiAgICovXG4gIGFzUGF0aD86IHN0cmluZ1xuICAvKipcbiAgICogYENvbXBvbmVudGAgdGhlIHRyZWUgb2YgdGhlIEFwcCB0byB1c2UgaWYgbmVlZGluZyB0byByZW5kZXIgc2VwYXJhdGVseVxuICAgKi9cbiAgQXBwVHJlZTogQXBwVHJlZVR5cGVcbn1cblxuZXhwb3J0IHR5cGUgQXBwQ29udGV4dFR5cGU8UiBleHRlbmRzIE5leHRSb3V0ZXIgPSBOZXh0Um91dGVyPiA9IHtcbiAgQ29tcG9uZW50OiBOZXh0Q29tcG9uZW50VHlwZTxOZXh0UGFnZUNvbnRleHQ+XG4gIEFwcFRyZWU6IEFwcFRyZWVUeXBlXG4gIGN0eDogTmV4dFBhZ2VDb250ZXh0XG4gIHJvdXRlcjogUlxufVxuXG5leHBvcnQgdHlwZSBBcHBJbml0aWFsUHJvcHMgPSB7XG4gIHBhZ2VQcm9wczogYW55XG59XG5cbmV4cG9ydCB0eXBlIEFwcFByb3BzVHlwZTxcbiAgUiBleHRlbmRzIE5leHRSb3V0ZXIgPSBOZXh0Um91dGVyLFxuICBQID0ge31cbj4gPSBBcHBJbml0aWFsUHJvcHMgJiB7XG4gIENvbXBvbmVudDogTmV4dENvbXBvbmVudFR5cGU8TmV4dFBhZ2VDb250ZXh0LCBhbnksIFA+XG4gIHJvdXRlcjogUlxuICBfX05fU1NHPzogYm9vbGVhblxuICBfX05fU1NQPzogYm9vbGVhblxufVxuXG5leHBvcnQgdHlwZSBEb2N1bWVudENvbnRleHQgPSBOZXh0UGFnZUNvbnRleHQgJiB7XG4gIHJlbmRlclBhZ2U6IFJlbmRlclBhZ2Vcbn1cblxuZXhwb3J0IHR5cGUgRG9jdW1lbnRJbml0aWFsUHJvcHMgPSBSZW5kZXJQYWdlUmVzdWx0ICYge1xuICBzdHlsZXM/OiBSZWFjdC5SZWFjdEVsZW1lbnRbXSB8IFJlYWN0LlJlYWN0RnJhZ21lbnRcbn1cblxuZXhwb3J0IHR5cGUgRG9jdW1lbnRQcm9wcyA9IERvY3VtZW50SW5pdGlhbFByb3BzICYge1xuICBfX05FWFRfREFUQV9fOiBORVhUX0RBVEFcbiAgZGFuZ2Vyb3VzQXNQYXRoOiBzdHJpbmdcbiAgZG9jQ29tcG9uZW50c1JlbmRlcmVkOiB7XG4gICAgSHRtbD86IGJvb2xlYW5cbiAgICBNYWluPzogYm9vbGVhblxuICAgIEhlYWQ/OiBib29sZWFuXG4gICAgTmV4dFNjcmlwdD86IGJvb2xlYW5cbiAgfVxuICBidWlsZE1hbmlmZXN0OiBCdWlsZE1hbmlmZXN0XG4gIGFtcFBhdGg6IHN0cmluZ1xuICBpbkFtcE1vZGU6IGJvb2xlYW5cbiAgaHlicmlkQW1wOiBib29sZWFuXG4gIGlzRGV2ZWxvcG1lbnQ6IGJvb2xlYW5cbiAgZHluYW1pY0ltcG9ydHM6IE1hbmlmZXN0SXRlbVtdXG4gIGFzc2V0UHJlZml4Pzogc3RyaW5nXG4gIGNhbm9uaWNhbEJhc2U6IHN0cmluZ1xuICBoZWFkVGFnczogYW55W11cbiAgdW5zdGFibGVfcnVudGltZUpTPzogZmFsc2VcbiAgZGV2T25seUNhY2hlQnVzdGVyUXVlcnlTdHJpbmc6IHN0cmluZ1xuICBsb2NhbGU/OiBzdHJpbmdcbn1cblxuLyoqXG4gKiBOZXh0IGBBUElgIHJvdXRlIHJlcXVlc3RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXh0QXBpUmVxdWVzdCBleHRlbmRzIEluY29taW5nTWVzc2FnZSB7XG4gIC8qKlxuICAgKiBPYmplY3Qgb2YgYHF1ZXJ5YCB2YWx1ZXMgZnJvbSB1cmxcbiAgICovXG4gIHF1ZXJ5OiB7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW11cbiAgfVxuICAvKipcbiAgICogT2JqZWN0IG9mIGBjb29raWVzYCBmcm9tIGhlYWRlclxuICAgKi9cbiAgY29va2llczoge1xuICAgIFtrZXk6IHN0cmluZ106IHN0cmluZ1xuICB9XG5cbiAgYm9keTogYW55XG5cbiAgZW52OiBFbnZcblxuICBwcmV2aWV3PzogYm9vbGVhblxuICAvKipcbiAgICogUHJldmlldyBkYXRhIHNldCBvbiB0aGUgcmVxdWVzdCwgaWYgYW55XG4gICAqICovXG4gIHByZXZpZXdEYXRhPzogYW55XG59XG5cbi8qKlxuICogU2VuZCBib2R5IG9mIHJlc3BvbnNlXG4gKi9cbnR5cGUgU2VuZDxUPiA9IChib2R5OiBUKSA9PiB2b2lkXG5cbi8qKlxuICogTmV4dCBgQVBJYCByb3V0ZSByZXNwb25zZVxuICovXG5leHBvcnQgdHlwZSBOZXh0QXBpUmVzcG9uc2U8VCA9IGFueT4gPSBTZXJ2ZXJSZXNwb25zZSAmIHtcbiAgLyoqXG4gICAqIFNlbmQgZGF0YSBgYW55YCBkYXRhIGluIHJlc3BvbnNlXG4gICAqL1xuICBzZW5kOiBTZW5kPFQ+XG4gIC8qKlxuICAgKiBTZW5kIGRhdGEgYGpzb25gIGRhdGEgaW4gcmVzcG9uc2VcbiAgICovXG4gIGpzb246IFNlbmQ8VD5cbiAgc3RhdHVzOiAoc3RhdHVzQ29kZTogbnVtYmVyKSA9PiBOZXh0QXBpUmVzcG9uc2U8VD5cbiAgcmVkaXJlY3QodXJsOiBzdHJpbmcpOiBOZXh0QXBpUmVzcG9uc2U8VD5cbiAgcmVkaXJlY3Qoc3RhdHVzOiBudW1iZXIsIHVybDogc3RyaW5nKTogTmV4dEFwaVJlc3BvbnNlPFQ+XG5cbiAgLyoqXG4gICAqIFNldCBwcmV2aWV3IGRhdGEgZm9yIE5leHQuanMnIHByZXJlbmRlciBtb2RlXG4gICAqL1xuICBzZXRQcmV2aWV3RGF0YTogKFxuICAgIGRhdGE6IG9iamVjdCB8IHN0cmluZyxcbiAgICBvcHRpb25zPzoge1xuICAgICAgLyoqXG4gICAgICAgKiBTcGVjaWZpZXMgdGhlIG51bWJlciAoaW4gc2Vjb25kcykgZm9yIHRoZSBwcmV2aWV3IHNlc3Npb24gdG8gbGFzdCBmb3IuXG4gICAgICAgKiBUaGUgZ2l2ZW4gbnVtYmVyIHdpbGwgYmUgY29udmVydGVkIHRvIGFuIGludGVnZXIgYnkgcm91bmRpbmcgZG93bi5cbiAgICAgICAqIEJ5IGRlZmF1bHQsIG5vIG1heGltdW0gYWdlIGlzIHNldCBhbmQgdGhlIHByZXZpZXcgc2Vzc2lvbiBmaW5pc2hlc1xuICAgICAgICogd2hlbiB0aGUgY2xpZW50IHNodXRzIGRvd24gKGJyb3dzZXIgaXMgY2xvc2VkKS5cbiAgICAgICAqL1xuICAgICAgbWF4QWdlPzogbnVtYmVyXG4gICAgfVxuICApID0+IE5leHRBcGlSZXNwb25zZTxUPlxuICBjbGVhclByZXZpZXdEYXRhOiAoKSA9PiBOZXh0QXBpUmVzcG9uc2U8VD5cbn1cblxuLyoqXG4gKiBOZXh0IGBBUElgIHJvdXRlIGhhbmRsZXJcbiAqL1xuZXhwb3J0IHR5cGUgTmV4dEFwaUhhbmRsZXI8VCA9IGFueT4gPSAoXG4gIHJlcTogTmV4dEFwaVJlcXVlc3QsXG4gIHJlczogTmV4dEFwaVJlc3BvbnNlPFQ+XG4pID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+XG5cbi8qKlxuICogVXRpbHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4ZWNPbmNlPFQgZXh0ZW5kcyAoLi4uYXJnczogYW55W10pID0+IFJldHVyblR5cGU8VD4+KFxuICBmbjogVFxuKTogVCB7XG4gIGxldCB1c2VkID0gZmFsc2VcbiAgbGV0IHJlc3VsdDogUmV0dXJuVHlwZTxUPlxuXG4gIHJldHVybiAoKC4uLmFyZ3M6IGFueVtdKSA9PiB7XG4gICAgaWYgKCF1c2VkKSB7XG4gICAgICB1c2VkID0gdHJ1ZVxuICAgICAgcmVzdWx0ID0gZm4oLi4uYXJncylcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdFxuICB9KSBhcyBUXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2NhdGlvbk9yaWdpbigpIHtcbiAgY29uc3QgeyBwcm90b2NvbCwgaG9zdG5hbWUsIHBvcnQgfSA9IHdpbmRvdy5sb2NhdGlvblxuICByZXR1cm4gYCR7cHJvdG9jb2x9Ly8ke2hvc3RuYW1lfSR7cG9ydCA/ICc6JyArIHBvcnQgOiAnJ31gXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRVUkwoKSB7XG4gIGNvbnN0IHsgaHJlZiB9ID0gd2luZG93LmxvY2F0aW9uXG4gIGNvbnN0IG9yaWdpbiA9IGdldExvY2F0aW9uT3JpZ2luKClcbiAgcmV0dXJuIGhyZWYuc3Vic3RyaW5nKG9yaWdpbi5sZW5ndGgpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREaXNwbGF5TmFtZTxQPihDb21wb25lbnQ6IENvbXBvbmVudFR5cGU8UD4pIHtcbiAgcmV0dXJuIHR5cGVvZiBDb21wb25lbnQgPT09ICdzdHJpbmcnXG4gICAgPyBDb21wb25lbnRcbiAgICA6IENvbXBvbmVudC5kaXNwbGF5TmFtZSB8fCBDb21wb25lbnQubmFtZSB8fCAnVW5rbm93bidcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUmVzU2VudChyZXM6IFNlcnZlclJlc3BvbnNlKSB7XG4gIHJldHVybiByZXMuZmluaXNoZWQgfHwgcmVzLmhlYWRlcnNTZW50XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsb2FkR2V0SW5pdGlhbFByb3BzPFxuICBDIGV4dGVuZHMgQmFzZUNvbnRleHQsXG4gIElQID0ge30sXG4gIFAgPSB7fVxuPihBcHA6IE5leHRDb21wb25lbnRUeXBlPEMsIElQLCBQPiwgY3R4OiBDKTogUHJvbWlzZTxJUD4ge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGlmIChBcHAucHJvdG90eXBlPy5nZXRJbml0aWFsUHJvcHMpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgXCIke2dldERpc3BsYXlOYW1lKFxuICAgICAgICBBcHBcbiAgICAgICl9LmdldEluaXRpYWxQcm9wcygpXCIgaXMgZGVmaW5lZCBhcyBhbiBpbnN0YW5jZSBtZXRob2QgLSB2aXNpdCBodHRwczovL2Vyci5zaC92ZXJjZWwvbmV4dC5qcy9nZXQtaW5pdGlhbC1wcm9wcy1hcy1hbi1pbnN0YW5jZS1tZXRob2QgZm9yIG1vcmUgaW5mb3JtYXRpb24uYFxuICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpXG4gICAgfVxuICB9XG4gIC8vIHdoZW4gY2FsbGVkIGZyb20gX2FwcCBgY3R4YCBpcyBuZXN0ZWQgaW4gYGN0eGBcbiAgY29uc3QgcmVzID0gY3R4LnJlcyB8fCAoY3R4LmN0eCAmJiBjdHguY3R4LnJlcylcblxuICBpZiAoIUFwcC5nZXRJbml0aWFsUHJvcHMpIHtcbiAgICBpZiAoY3R4LmN0eCAmJiBjdHguQ29tcG9uZW50KSB7XG4gICAgICAvLyBAdHMtaWdub3JlIHBhZ2VQcm9wcyBkZWZhdWx0XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwYWdlUHJvcHM6IGF3YWl0IGxvYWRHZXRJbml0aWFsUHJvcHMoY3R4LkNvbXBvbmVudCwgY3R4LmN0eCksXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7fSBhcyBJUFxuICB9XG5cbiAgY29uc3QgcHJvcHMgPSBhd2FpdCBBcHAuZ2V0SW5pdGlhbFByb3BzKGN0eClcblxuICBpZiAocmVzICYmIGlzUmVzU2VudChyZXMpKSB7XG4gICAgcmV0dXJuIHByb3BzXG4gIH1cblxuICBpZiAoIXByb3BzKSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGBcIiR7Z2V0RGlzcGxheU5hbWUoXG4gICAgICBBcHBcbiAgICApfS5nZXRJbml0aWFsUHJvcHMoKVwiIHNob3VsZCByZXNvbHZlIHRvIGFuIG9iamVjdC4gQnV0IGZvdW5kIFwiJHtwcm9wc31cIiBpbnN0ZWFkLmBcbiAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSlcbiAgfVxuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgaWYgKE9iamVjdC5rZXlzKHByb3BzKS5sZW5ndGggPT09IDAgJiYgIWN0eC5jdHgpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgYCR7Z2V0RGlzcGxheU5hbWUoXG4gICAgICAgICAgQXBwXG4gICAgICAgICl9IHJldHVybmVkIGFuIGVtcHR5IG9iamVjdCBmcm9tIFxcYGdldEluaXRpYWxQcm9wc1xcYC4gVGhpcyBkZS1vcHRpbWl6ZXMgYW5kIHByZXZlbnRzIGF1dG9tYXRpYyBzdGF0aWMgb3B0aW1pemF0aW9uLiBodHRwczovL2Vyci5zaC92ZXJjZWwvbmV4dC5qcy9lbXB0eS1vYmplY3QtZ2V0SW5pdGlhbFByb3BzYFxuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBwcm9wc1xufVxuXG5leHBvcnQgY29uc3QgdXJsT2JqZWN0S2V5cyA9IFtcbiAgJ2F1dGgnLFxuICAnaGFzaCcsXG4gICdob3N0JyxcbiAgJ2hvc3RuYW1lJyxcbiAgJ2hyZWYnLFxuICAncGF0aCcsXG4gICdwYXRobmFtZScsXG4gICdwb3J0JyxcbiAgJ3Byb3RvY29sJyxcbiAgJ3F1ZXJ5JyxcbiAgJ3NlYXJjaCcsXG4gICdzbGFzaGVzJyxcbl1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFdpdGhWYWxpZGF0aW9uKHVybDogVXJsT2JqZWN0KTogc3RyaW5nIHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgaWYgKHVybCAhPT0gbnVsbCAmJiB0eXBlb2YgdXJsID09PSAnb2JqZWN0Jykge1xuICAgICAgT2JqZWN0LmtleXModXJsKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgaWYgKHVybE9iamVjdEtleXMuaW5kZXhPZihrZXkpID09PSAtMSkge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgIGBVbmtub3duIGtleSBwYXNzZWQgdmlhIHVybE9iamVjdCBpbnRvIHVybC5mb3JtYXQ6ICR7a2V5fWBcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZvcm1hdFVybCh1cmwpXG59XG5cbmV4cG9ydCBjb25zdCBTUCA9IHR5cGVvZiBwZXJmb3JtYW5jZSAhPT0gJ3VuZGVmaW5lZCdcbmV4cG9ydCBjb25zdCBTVCA9XG4gIFNQICYmXG4gIHR5cGVvZiBwZXJmb3JtYW5jZS5tYXJrID09PSAnZnVuY3Rpb24nICYmXG4gIHR5cGVvZiBwZXJmb3JtYW5jZS5tZWFzdXJlID09PSAnZnVuY3Rpb24nXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/next-server/lib/utils.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/next-server/server/denormalize-page-path.js": +/*!****************************************************************************!*\ + !*** ./node_modules/next/dist/next-server/server/denormalize-page-path.js ***! + \****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("exports.__esModule=true;exports.normalizePathSep=normalizePathSep;exports.denormalizePagePath=denormalizePagePath;function normalizePathSep(path){return path.replace(/\\\\/g,'/');}function denormalizePagePath(page){page=normalizePathSep(page);if(page.startsWith('/index/')){page=page.slice(6);}else if(page==='/index'){page='/';}return page;}\n//# sourceMappingURL=denormalize-page-path.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9uZXh0LXNlcnZlci9zZXJ2ZXIvZGVub3JtYWxpemUtcGFnZS1wYXRoLmpzP2MyNDAiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQWEsd0JBQXdCLDBDQUEwQyxnREFBZ0QsZ0NBQWdDLGdDQUFnQyxtQ0FBbUMsNEJBQTRCLCtCQUErQixvQkFBb0IseUJBQXlCLFVBQVU7QUFDcFYiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtc2VydmVyL3NlcnZlci9kZW5vcm1hbGl6ZS1wYWdlLXBhdGguanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtleHBvcnRzLl9fZXNNb2R1bGU9dHJ1ZTtleHBvcnRzLm5vcm1hbGl6ZVBhdGhTZXA9bm9ybWFsaXplUGF0aFNlcDtleHBvcnRzLmRlbm9ybWFsaXplUGFnZVBhdGg9ZGVub3JtYWxpemVQYWdlUGF0aDtmdW5jdGlvbiBub3JtYWxpemVQYXRoU2VwKHBhdGgpe3JldHVybiBwYXRoLnJlcGxhY2UoL1xcXFwvZywnLycpO31mdW5jdGlvbiBkZW5vcm1hbGl6ZVBhZ2VQYXRoKHBhZ2Upe3BhZ2U9bm9ybWFsaXplUGF0aFNlcChwYWdlKTtpZihwYWdlLnN0YXJ0c1dpdGgoJy9pbmRleC8nKSl7cGFnZT1wYWdlLnNsaWNlKDYpO31lbHNlIGlmKHBhZ2U9PT0nL2luZGV4Jyl7cGFnZT0nLyc7fXJldHVybiBwYWdlO31cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRlbm9ybWFsaXplLXBhZ2UtcGF0aC5qcy5tYXAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/next-server/server/denormalize-page-path.js\n"); + +/***/ }), + +/***/ "./node_modules/next/node_modules/@babel/runtime/helpers/arrayLikeToArray.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/next/node_modules/@babel/runtime/helpers/arrayLikeToArray.js ***! + \***********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("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}\n\nmodule.exports = _arrayLikeToArray;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvYXJyYXlMaWtlVG9BcnJheS5qcz9lZGU2Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7O0FBRUEsd0NBQXdDLFNBQVM7QUFDakQ7QUFDQTs7QUFFQTtBQUNBOztBQUVBIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL25leHQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvYXJyYXlMaWtlVG9BcnJheS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9hcnJheUxpa2VUb0FycmF5KGFyciwgbGVuKSB7XG4gIGlmIChsZW4gPT0gbnVsbCB8fCBsZW4gPiBhcnIubGVuZ3RoKSBsZW4gPSBhcnIubGVuZ3RoO1xuXG4gIGZvciAodmFyIGkgPSAwLCBhcnIyID0gbmV3IEFycmF5KGxlbik7IGkgPCBsZW47IGkrKykge1xuICAgIGFycjJbaV0gPSBhcnJbaV07XG4gIH1cblxuICByZXR1cm4gYXJyMjtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfYXJyYXlMaWtlVG9BcnJheTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/node_modules/@babel/runtime/helpers/arrayLikeToArray.js\n"); + +/***/ }), + +/***/ "./node_modules/next/node_modules/@babel/runtime/helpers/arrayWithHoles.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/next/node_modules/@babel/runtime/helpers/arrayWithHoles.js ***! + \*********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvYXJyYXlXaXRoSG9sZXMuanM/M2VhMyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7O0FBRUEiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hcnJheVdpdGhIb2xlcy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9hcnJheVdpdGhIb2xlcyhhcnIpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoYXJyKSkgcmV0dXJuIGFycjtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfYXJyYXlXaXRoSG9sZXM7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/node_modules/@babel/runtime/helpers/arrayWithHoles.js\n"); + +/***/ }), + +/***/ "./node_modules/next/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js": +/*!************************************************************************************!*\ + !*** ./node_modules/next/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js ***! + \************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray */ \"./node_modules/next/node_modules/@babel/runtime/helpers/arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvYXJyYXlXaXRob3V0SG9sZXMuanM/ZTVmMiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1QkFBdUIsbUJBQU8sQ0FBQyx1R0FBb0I7O0FBRW5EO0FBQ0E7QUFDQTs7QUFFQSIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9uZXh0L25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2FycmF5V2l0aG91dEhvbGVzLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGFycmF5TGlrZVRvQXJyYXkgPSByZXF1aXJlKFwiLi9hcnJheUxpa2VUb0FycmF5XCIpO1xuXG5mdW5jdGlvbiBfYXJyYXlXaXRob3V0SG9sZXMoYXJyKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGFycikpIHJldHVybiBhcnJheUxpa2VUb0FycmF5KGFycik7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX2FycmF5V2l0aG91dEhvbGVzOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js\n"); + +/***/ }), + +/***/ "./node_modules/next/node_modules/@babel/runtime/helpers/assertThisInitialized.js": +/*!****************************************************************************************!*\ + !*** ./node_modules/next/node_modules/@babel/runtime/helpers/assertThisInitialized.js ***! + \****************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvYXNzZXJ0VGhpc0luaXRpYWxpemVkLmpzP2E5NzUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9uZXh0L25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2Fzc2VydFRoaXNJbml0aWFsaXplZC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZikge1xuICBpZiAoc2VsZiA9PT0gdm9pZCAwKSB7XG4gICAgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpO1xuICB9XG5cbiAgcmV0dXJuIHNlbGY7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX2Fzc2VydFRoaXNJbml0aWFsaXplZDsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/node_modules/@babel/runtime/helpers/assertThisInitialized.js\n"); + +/***/ }), + +/***/ "./node_modules/next/node_modules/@babel/runtime/helpers/asyncToGenerator.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/next/node_modules/@babel/runtime/helpers/asyncToGenerator.js ***! + \***********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvYXN5bmNUb0dlbmVyYXRvci5qcz9hOTU0Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL25leHQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvYXN5bmNUb0dlbmVyYXRvci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGFzeW5jR2VuZXJhdG9yU3RlcChnZW4sIHJlc29sdmUsIHJlamVjdCwgX25leHQsIF90aHJvdywga2V5LCBhcmcpIHtcbiAgdHJ5IHtcbiAgICB2YXIgaW5mbyA9IGdlbltrZXldKGFyZyk7XG4gICAgdmFyIHZhbHVlID0gaW5mby52YWx1ZTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZWplY3QoZXJyb3IpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChpbmZvLmRvbmUpIHtcbiAgICByZXNvbHZlKHZhbHVlKTtcbiAgfSBlbHNlIHtcbiAgICBQcm9taXNlLnJlc29sdmUodmFsdWUpLnRoZW4oX25leHQsIF90aHJvdyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gX2FzeW5jVG9HZW5lcmF0b3IoZm4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXMsXG4gICAgICAgIGFyZ3MgPSBhcmd1bWVudHM7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgIHZhciBnZW4gPSBmbi5hcHBseShzZWxmLCBhcmdzKTtcblxuICAgICAgZnVuY3Rpb24gX25leHQodmFsdWUpIHtcbiAgICAgICAgYXN5bmNHZW5lcmF0b3JTdGVwKGdlbiwgcmVzb2x2ZSwgcmVqZWN0LCBfbmV4dCwgX3Rocm93LCBcIm5leHRcIiwgdmFsdWUpO1xuICAgICAgfVxuXG4gICAgICBmdW5jdGlvbiBfdGhyb3coZXJyKSB7XG4gICAgICAgIGFzeW5jR2VuZXJhdG9yU3RlcChnZW4sIHJlc29sdmUsIHJlamVjdCwgX25leHQsIF90aHJvdywgXCJ0aHJvd1wiLCBlcnIpO1xuICAgICAgfVxuXG4gICAgICBfbmV4dCh1bmRlZmluZWQpO1xuICAgIH0pO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9hc3luY1RvR2VuZXJhdG9yOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/node_modules/@babel/runtime/helpers/asyncToGenerator.js\n"); + +/***/ }), + +/***/ "./node_modules/next/node_modules/@babel/runtime/helpers/classCallCheck.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/next/node_modules/@babel/runtime/helpers/classCallCheck.js ***! + \*********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvY2xhc3NDYWxsQ2hlY2suanM/ZmM2NCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL25leHQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvY2xhc3NDYWxsQ2hlY2suanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7XG4gIGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9jbGFzc0NhbGxDaGVjazsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/node_modules/@babel/runtime/helpers/classCallCheck.js\n"); + +/***/ }), + +/***/ "./node_modules/next/node_modules/@babel/runtime/helpers/construct.js": +/*!****************************************************************************!*\ + !*** ./node_modules/next/node_modules/@babel/runtime/helpers/construct.js ***! + \****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf */ \"./node_modules/next/node_modules/@babel/runtime/helpers/setPrototypeOf.js\");\n\nvar isNativeReflectConstruct = __webpack_require__(/*! ./isNativeReflectConstruct */ \"./node_modules/next/node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js\");\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nmodule.exports = _construct;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvY29uc3RydWN0LmpzP2FiYmQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEscUJBQXFCLG1CQUFPLENBQUMsbUdBQWtCOztBQUUvQywrQkFBK0IsbUJBQU8sQ0FBQyx1SEFBNEI7O0FBRW5FO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9uZXh0L25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2NvbnN0cnVjdC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBzZXRQcm90b3R5cGVPZiA9IHJlcXVpcmUoXCIuL3NldFByb3RvdHlwZU9mXCIpO1xuXG52YXIgaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0ID0gcmVxdWlyZShcIi4vaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0XCIpO1xuXG5mdW5jdGlvbiBfY29uc3RydWN0KFBhcmVudCwgYXJncywgQ2xhc3MpIHtcbiAgaWYgKGlzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpKSB7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBfY29uc3RydWN0ID0gUmVmbGVjdC5jb25zdHJ1Y3Q7XG4gIH0gZWxzZSB7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBfY29uc3RydWN0ID0gZnVuY3Rpb24gX2NvbnN0cnVjdChQYXJlbnQsIGFyZ3MsIENsYXNzKSB7XG4gICAgICB2YXIgYSA9IFtudWxsXTtcbiAgICAgIGEucHVzaC5hcHBseShhLCBhcmdzKTtcbiAgICAgIHZhciBDb25zdHJ1Y3RvciA9IEZ1bmN0aW9uLmJpbmQuYXBwbHkoUGFyZW50LCBhKTtcbiAgICAgIHZhciBpbnN0YW5jZSA9IG5ldyBDb25zdHJ1Y3RvcigpO1xuICAgICAgaWYgKENsYXNzKSBzZXRQcm90b3R5cGVPZihpbnN0YW5jZSwgQ2xhc3MucHJvdG90eXBlKTtcbiAgICAgIHJldHVybiBpbnN0YW5jZTtcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIF9jb25zdHJ1Y3QuYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfY29uc3RydWN0OyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/node_modules/@babel/runtime/helpers/construct.js\n"); + +/***/ }), + +/***/ "./node_modules/next/node_modules/@babel/runtime/helpers/createClass.js": +/*!******************************************************************************!*\ + !*** ./node_modules/next/node_modules/@babel/runtime/helpers/createClass.js ***! + \******************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvY3JlYXRlQ2xhc3MuanM/OGI2NCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBLGlCQUFpQixrQkFBa0I7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9uZXh0L25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2NyZWF0ZUNsYXNzLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTtcbiAgICBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7XG4gICAgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlO1xuICAgIGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpO1xuICB9XG59XG5cbmZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHtcbiAgaWYgKHByb3RvUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7XG4gIGlmIChzdGF0aWNQcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTtcbiAgcmV0dXJuIENvbnN0cnVjdG9yO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9jcmVhdGVDbGFzczsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/node_modules/@babel/runtime/helpers/createClass.js\n"); + +/***/ }), + +/***/ "./node_modules/next/node_modules/@babel/runtime/helpers/defineProperty.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/next/node_modules/@babel/runtime/helpers/defineProperty.js ***! + \*********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("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}\n\nmodule.exports = _defineProperty;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZGVmaW5lUHJvcGVydHkuanM/YTA4ZiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxHQUFHO0FBQ0g7QUFDQTs7QUFFQTtBQUNBOztBQUVBIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL25leHQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZGVmaW5lUHJvcGVydHkuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHZhbHVlKSB7XG4gIGlmIChrZXkgaW4gb2JqKSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7XG4gICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgd3JpdGFibGU6IHRydWVcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBvYmpba2V5XSA9IHZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIG9iajtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfZGVmaW5lUHJvcGVydHk7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/node_modules/@babel/runtime/helpers/defineProperty.js\n"); + +/***/ }), + +/***/ "./node_modules/next/node_modules/@babel/runtime/helpers/extends.js": +/*!**************************************************************************!*\ + !*** ./node_modules/next/node_modules/@babel/runtime/helpers/extends.js ***! + \**************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("function _extends() {\n module.exports = _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\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXh0ZW5kcy5qcz9kNWM3Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQSxtQkFBbUIsc0JBQXNCO0FBQ3pDOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9leHRlbmRzLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX2V4dGVuZHMoKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHtcbiAgICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTtcblxuICAgICAgZm9yICh2YXIga2V5IGluIHNvdXJjZSkge1xuICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkge1xuICAgICAgICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9O1xuXG4gIHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9leHRlbmRzOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/node_modules/@babel/runtime/helpers/extends.js\n"); + +/***/ }), + +/***/ "./node_modules/next/node_modules/@babel/runtime/helpers/getPrototypeOf.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/next/node_modules/@babel/runtime/helpers/getPrototypeOf.js ***! + \*********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZ2V0UHJvdG90eXBlT2YuanM/NGY0NyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9nZXRQcm90b3R5cGVPZi5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gX2dldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LmdldFByb3RvdHlwZU9mIDogZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHtcbiAgICByZXR1cm4gby5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKG8pO1xuICB9O1xuICByZXR1cm4gX2dldFByb3RvdHlwZU9mKG8pO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9nZXRQcm90b3R5cGVPZjsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/node_modules/@babel/runtime/helpers/getPrototypeOf.js\n"); + +/***/ }), + +/***/ "./node_modules/next/node_modules/@babel/runtime/helpers/inherits.js": +/*!***************************************************************************!*\ + !*** ./node_modules/next/node_modules/@babel/runtime/helpers/inherits.js ***! + \***************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf */ \"./node_modules/next/node_modules/@babel/runtime/helpers/setPrototypeOf.js\");\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\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW5oZXJpdHMuanM/ZTNjNyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxxQkFBcUIsbUJBQU8sQ0FBQyxtR0FBa0I7O0FBRS9DO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL25leHQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW5oZXJpdHMuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgc2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKFwiLi9zZXRQcm90b3R5cGVPZlwiKTtcblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7XG4gIGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7XG4gIH1cblxuICBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHtcbiAgICBjb25zdHJ1Y3Rvcjoge1xuICAgICAgdmFsdWU6IHN1YkNsYXNzLFxuICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9XG4gIH0pO1xuICBpZiAoc3VwZXJDbGFzcykgc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9pbmhlcml0czsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/node_modules/@babel/runtime/helpers/inherits.js\n"); + +/***/ }), + +/***/ "./node_modules/next/node_modules/@babel/runtime/helpers/interopRequireDefault.js": +/*!****************************************************************************************!*\ + !*** ./node_modules/next/node_modules/@babel/runtime/helpers/interopRequireDefault.js ***! + \****************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW50ZXJvcFJlcXVpcmVEZWZhdWx0LmpzPzAyYmEiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9uZXh0L25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2ludGVyb3BSZXF1aXJlRGVmYXVsdC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7XG4gIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgXCJkZWZhdWx0XCI6IG9ialxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQ7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/node_modules/@babel/runtime/helpers/interopRequireDefault.js\n"); + +/***/ }), + +/***/ "./node_modules/next/node_modules/@babel/runtime/helpers/interopRequireWildcard.js": +/*!*****************************************************************************************!*\ + !*** ./node_modules/next/node_modules/@babel/runtime/helpers/interopRequireWildcard.js ***! + \*****************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("var _typeof = __webpack_require__(/*! ../helpers/typeof */ \"./node_modules/next/node_modules/@babel/runtime/helpers/typeof.js\");\n\nfunction _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n\n return cache;\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n\n var cache = _getRequireWildcardCache();\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nmodule.exports = _interopRequireWildcard;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW50ZXJvcFJlcXVpcmVXaWxkY2FyZC5qcz9lY2EwIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQU8sQ0FBQyw0RkFBbUI7O0FBRXpDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL25leHQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW50ZXJvcFJlcXVpcmVXaWxkY2FyZC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfdHlwZW9mID0gcmVxdWlyZShcIi4uL2hlbHBlcnMvdHlwZW9mXCIpO1xuXG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7XG4gIGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDtcbiAgdmFyIGNhY2hlID0gbmV3IFdlYWtNYXAoKTtcblxuICBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7XG4gICAgcmV0dXJuIGNhY2hlO1xuICB9O1xuXG4gIHJldHVybiBjYWNoZTtcbn1cblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7XG4gIGlmIChvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHtcbiAgICByZXR1cm4gb2JqO1xuICB9XG5cbiAgaWYgKG9iaiA9PT0gbnVsbCB8fCBfdHlwZW9mKG9iaikgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIFwiZGVmYXVsdFwiOiBvYmpcbiAgICB9O1xuICB9XG5cbiAgdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCk7XG5cbiAgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSB7XG4gICAgcmV0dXJuIGNhY2hlLmdldChvYmopO1xuICB9XG5cbiAgdmFyIG5ld09iaiA9IHt9O1xuICB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG5cbiAgZm9yICh2YXIga2V5IGluIG9iaikge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7XG4gICAgICB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDtcblxuICAgICAgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkge1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV3T2JqW2tleV0gPSBvYmpba2V5XTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZXdPYmpbXCJkZWZhdWx0XCJdID0gb2JqO1xuXG4gIGlmIChjYWNoZSkge1xuICAgIGNhY2hlLnNldChvYmosIG5ld09iaik7XG4gIH1cblxuICByZXR1cm4gbmV3T2JqO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/node_modules/@babel/runtime/helpers/interopRequireWildcard.js\n"); + +/***/ }), + +/***/ "./node_modules/next/node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js": +/*!*******************************************************************************************!*\ + !*** ./node_modules/next/node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js ***! + \*******************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nmodule.exports = _isNativeReflectConstruct;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0LmpzPzkyNWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSwyRUFBMkU7QUFDM0U7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBOztBQUVBIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL25leHQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHtcbiAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcInVuZGVmaW5lZFwiIHx8ICFSZWZsZWN0LmNvbnN0cnVjdCkgcmV0dXJuIGZhbHNlO1xuICBpZiAoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSkgcmV0dXJuIGZhbHNlO1xuICBpZiAodHlwZW9mIFByb3h5ID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB0cnVlO1xuXG4gIHRyeSB7XG4gICAgRGF0ZS5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChEYXRlLCBbXSwgZnVuY3Rpb24gKCkge30pKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3Q7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js\n"); + +/***/ }), + +/***/ "./node_modules/next/node_modules/@babel/runtime/helpers/iterableToArray.js": +/*!**********************************************************************************!*\ + !*** ./node_modules/next/node_modules/@babel/runtime/helpers/iterableToArray.js ***! + \**********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvaXRlcmFibGVUb0FycmF5LmpzP2FlNTEiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBOztBQUVBIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL25leHQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvaXRlcmFibGVUb0FycmF5LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX2l0ZXJhYmxlVG9BcnJheShpdGVyKSB7XG4gIGlmICh0eXBlb2YgU3ltYm9sICE9PSBcInVuZGVmaW5lZFwiICYmIFN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QoaXRlcikpIHJldHVybiBBcnJheS5mcm9tKGl0ZXIpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9pdGVyYWJsZVRvQXJyYXk7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/node_modules/@babel/runtime/helpers/iterableToArray.js\n"); + +/***/ }), + +/***/ "./node_modules/next/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js": +/*!***************************************************************************************!*\ + !*** ./node_modules/next/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js ***! + \***************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvaXRlcmFibGVUb0FycmF5TGltaXQuanM/OWIxYiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSw2Q0FBNkMsK0JBQStCO0FBQzVFOztBQUVBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL25leHQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvaXRlcmFibGVUb0FycmF5TGltaXQuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfaXRlcmFibGVUb0FycmF5TGltaXQoYXJyLCBpKSB7XG4gIGlmICh0eXBlb2YgU3ltYm9sID09PSBcInVuZGVmaW5lZFwiIHx8ICEoU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdChhcnIpKSkgcmV0dXJuO1xuICB2YXIgX2FyciA9IFtdO1xuICB2YXIgX24gPSB0cnVlO1xuICB2YXIgX2QgPSBmYWxzZTtcbiAgdmFyIF9lID0gdW5kZWZpbmVkO1xuXG4gIHRyeSB7XG4gICAgZm9yICh2YXIgX2kgPSBhcnJbU3ltYm9sLml0ZXJhdG9yXSgpLCBfczsgIShfbiA9IChfcyA9IF9pLm5leHQoKSkuZG9uZSk7IF9uID0gdHJ1ZSkge1xuICAgICAgX2Fyci5wdXNoKF9zLnZhbHVlKTtcblxuICAgICAgaWYgKGkgJiYgX2Fyci5sZW5ndGggPT09IGkpIGJyZWFrO1xuICAgIH1cbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgX2QgPSB0cnVlO1xuICAgIF9lID0gZXJyO1xuICB9IGZpbmFsbHkge1xuICAgIHRyeSB7XG4gICAgICBpZiAoIV9uICYmIF9pW1wicmV0dXJuXCJdICE9IG51bGwpIF9pW1wicmV0dXJuXCJdKCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChfZCkgdGhyb3cgX2U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIF9hcnI7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX2l0ZXJhYmxlVG9BcnJheUxpbWl0OyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js\n"); + +/***/ }), + +/***/ "./node_modules/next/node_modules/@babel/runtime/helpers/nonIterableRest.js": +/*!**********************************************************************************!*\ + !*** ./node_modules/next/node_modules/@babel/runtime/helpers/nonIterableRest.js ***! + \**********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableRest;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvbm9uSXRlcmFibGVSZXN0LmpzP2E1MjEiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBOztBQUVBIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL25leHQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvbm9uSXRlcmFibGVSZXN0LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX25vbkl0ZXJhYmxlUmVzdCgpIHtcbiAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfbm9uSXRlcmFibGVSZXN0OyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/node_modules/@babel/runtime/helpers/nonIterableRest.js\n"); + +/***/ }), + +/***/ "./node_modules/next/node_modules/@babel/runtime/helpers/nonIterableSpread.js": +/*!************************************************************************************!*\ + !*** ./node_modules/next/node_modules/@babel/runtime/helpers/nonIterableSpread.js ***! + \************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("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}\n\nmodule.exports = _nonIterableSpread;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvbm9uSXRlcmFibGVTcHJlYWQuanM/OTA2ZCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7O0FBRUEiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9ub25JdGVyYWJsZVNwcmVhZC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9ub25JdGVyYWJsZVNwcmVhZCgpIHtcbiAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIik7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX25vbkl0ZXJhYmxlU3ByZWFkOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/node_modules/@babel/runtime/helpers/nonIterableSpread.js\n"); + +/***/ }), + +/***/ "./node_modules/next/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js": +/*!********************************************************************************************!*\ + !*** ./node_modules/next/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js ***! + \********************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("var _typeof = __webpack_require__(/*! ../helpers/typeof */ \"./node_modules/next/node_modules/@babel/runtime/helpers/typeof.js\");\n\nvar assertThisInitialized = __webpack_require__(/*! ./assertThisInitialized */ \"./node_modules/next/node_modules/@babel/runtime/helpers/assertThisInitialized.js\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvcG9zc2libGVDb25zdHJ1Y3RvclJldHVybi5qcz9iNDIwIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQU8sQ0FBQyw0RkFBbUI7O0FBRXpDLDRCQUE0QixtQkFBTyxDQUFDLGlIQUF5Qjs7QUFFN0Q7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9uZXh0L25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4uanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX3R5cGVvZiA9IHJlcXVpcmUoXCIuLi9oZWxwZXJzL3R5cGVvZlwiKTtcblxudmFyIGFzc2VydFRoaXNJbml0aWFsaXplZCA9IHJlcXVpcmUoXCIuL2Fzc2VydFRoaXNJbml0aWFsaXplZFwiKTtcblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkge1xuICBpZiAoY2FsbCAmJiAoX3R5cGVvZihjYWxsKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSkge1xuICAgIHJldHVybiBjYWxsO1xuICB9XG5cbiAgcmV0dXJuIGFzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js\n"); + +/***/ }), + +/***/ "./node_modules/next/node_modules/@babel/runtime/helpers/setPrototypeOf.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/next/node_modules/@babel/runtime/helpers/setPrototypeOf.js ***! + \*********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvc2V0UHJvdG90eXBlT2YuanM/YWExYyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9zZXRQcm90b3R5cGVPZi5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gX3NldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7XG4gICAgby5fX3Byb3RvX18gPSBwO1xuICAgIHJldHVybiBvO1xuICB9O1xuXG4gIHJldHVybiBfc2V0UHJvdG90eXBlT2YobywgcCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX3NldFByb3RvdHlwZU9mOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/node_modules/@babel/runtime/helpers/setPrototypeOf.js\n"); + +/***/ }), + +/***/ "./node_modules/next/node_modules/@babel/runtime/helpers/slicedToArray.js": +/*!********************************************************************************!*\ + !*** ./node_modules/next/node_modules/@babel/runtime/helpers/slicedToArray.js ***! + \********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("var arrayWithHoles = __webpack_require__(/*! ./arrayWithHoles */ \"./node_modules/next/node_modules/@babel/runtime/helpers/arrayWithHoles.js\");\n\nvar iterableToArrayLimit = __webpack_require__(/*! ./iterableToArrayLimit */ \"./node_modules/next/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js\");\n\nvar unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray */ \"./node_modules/next/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js\");\n\nvar nonIterableRest = __webpack_require__(/*! ./nonIterableRest */ \"./node_modules/next/node_modules/@babel/runtime/helpers/nonIterableRest.js\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvc2xpY2VkVG9BcnJheS5qcz9jZTgwIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHFCQUFxQixtQkFBTyxDQUFDLG1HQUFrQjs7QUFFL0MsMkJBQTJCLG1CQUFPLENBQUMsK0dBQXdCOztBQUUzRCxpQ0FBaUMsbUJBQU8sQ0FBQywySEFBOEI7O0FBRXZFLHNCQUFzQixtQkFBTyxDQUFDLHFHQUFtQjs7QUFFakQ7QUFDQTtBQUNBOztBQUVBIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL25leHQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvc2xpY2VkVG9BcnJheS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBhcnJheVdpdGhIb2xlcyA9IHJlcXVpcmUoXCIuL2FycmF5V2l0aEhvbGVzXCIpO1xuXG52YXIgaXRlcmFibGVUb0FycmF5TGltaXQgPSByZXF1aXJlKFwiLi9pdGVyYWJsZVRvQXJyYXlMaW1pdFwiKTtcblxudmFyIHVuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5ID0gcmVxdWlyZShcIi4vdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXlcIik7XG5cbnZhciBub25JdGVyYWJsZVJlc3QgPSByZXF1aXJlKFwiLi9ub25JdGVyYWJsZVJlc3RcIik7XG5cbmZ1bmN0aW9uIF9zbGljZWRUb0FycmF5KGFyciwgaSkge1xuICByZXR1cm4gYXJyYXlXaXRoSG9sZXMoYXJyKSB8fCBpdGVyYWJsZVRvQXJyYXlMaW1pdChhcnIsIGkpIHx8IHVuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KGFyciwgaSkgfHwgbm9uSXRlcmFibGVSZXN0KCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX3NsaWNlZFRvQXJyYXk7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/node_modules/@babel/runtime/helpers/slicedToArray.js\n"); + +/***/ }), + +/***/ "./node_modules/next/node_modules/@babel/runtime/helpers/toConsumableArray.js": +/*!************************************************************************************!*\ + !*** ./node_modules/next/node_modules/@babel/runtime/helpers/toConsumableArray.js ***! + \************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("var arrayWithoutHoles = __webpack_require__(/*! ./arrayWithoutHoles */ \"./node_modules/next/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js\");\n\nvar iterableToArray = __webpack_require__(/*! ./iterableToArray */ \"./node_modules/next/node_modules/@babel/runtime/helpers/iterableToArray.js\");\n\nvar unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray */ \"./node_modules/next/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js\");\n\nvar nonIterableSpread = __webpack_require__(/*! ./nonIterableSpread */ \"./node_modules/next/node_modules/@babel/runtime/helpers/nonIterableSpread.js\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvdG9Db25zdW1hYmxlQXJyYXkuanM/OThmYiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx3QkFBd0IsbUJBQU8sQ0FBQyx5R0FBcUI7O0FBRXJELHNCQUFzQixtQkFBTyxDQUFDLHFHQUFtQjs7QUFFakQsaUNBQWlDLG1CQUFPLENBQUMsMkhBQThCOztBQUV2RSx3QkFBd0IsbUJBQU8sQ0FBQyx5R0FBcUI7O0FBRXJEO0FBQ0E7QUFDQTs7QUFFQSIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9uZXh0L25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3RvQ29uc3VtYWJsZUFycmF5LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGFycmF5V2l0aG91dEhvbGVzID0gcmVxdWlyZShcIi4vYXJyYXlXaXRob3V0SG9sZXNcIik7XG5cbnZhciBpdGVyYWJsZVRvQXJyYXkgPSByZXF1aXJlKFwiLi9pdGVyYWJsZVRvQXJyYXlcIik7XG5cbnZhciB1bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSA9IHJlcXVpcmUoXCIuL3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5XCIpO1xuXG52YXIgbm9uSXRlcmFibGVTcHJlYWQgPSByZXF1aXJlKFwiLi9ub25JdGVyYWJsZVNwcmVhZFwiKTtcblxuZnVuY3Rpb24gX3RvQ29uc3VtYWJsZUFycmF5KGFycikge1xuICByZXR1cm4gYXJyYXlXaXRob3V0SG9sZXMoYXJyKSB8fCBpdGVyYWJsZVRvQXJyYXkoYXJyKSB8fCB1bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShhcnIpIHx8IG5vbkl0ZXJhYmxlU3ByZWFkKCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX3RvQ29uc3VtYWJsZUFycmF5OyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/node_modules/@babel/runtime/helpers/toConsumableArray.js\n"); + +/***/ }), + +/***/ "./node_modules/next/node_modules/@babel/runtime/helpers/typeof.js": +/*!*************************************************************************!*\ + !*** ./node_modules/next/node_modules/@babel/runtime/helpers/typeof.js ***! + \*************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvdHlwZW9mLmpzPzBiZTYiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL25leHQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvdHlwZW9mLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX3R5cGVvZihvYmopIHtcbiAgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiO1xuXG4gIGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikge1xuICAgIG1vZHVsZS5leHBvcnRzID0gX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7XG4gICAgICByZXR1cm4gdHlwZW9mIG9iajtcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIG1vZHVsZS5leHBvcnRzID0gX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7XG4gICAgICByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajtcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIF90eXBlb2Yob2JqKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfdHlwZW9mOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/node_modules/@babel/runtime/helpers/typeof.js\n"); + +/***/ }), + +/***/ "./node_modules/next/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js": +/*!*********************************************************************************************!*\ + !*** ./node_modules/next/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js ***! + \*********************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray */ \"./node_modules/next/node_modules/@babel/runtime/helpers/arrayLikeToArray.js\");\n\nfunction _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}\n\nmodule.exports = _unsupportedIterableToArray;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkuanM/MjljOSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1QkFBdUIsbUJBQU8sQ0FBQyx1R0FBb0I7O0FBRW5EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBhcnJheUxpa2VUb0FycmF5ID0gcmVxdWlyZShcIi4vYXJyYXlMaWtlVG9BcnJheVwiKTtcblxuZnVuY3Rpb24gX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KG8sIG1pbkxlbikge1xuICBpZiAoIW8pIHJldHVybjtcbiAgaWYgKHR5cGVvZiBvID09PSBcInN0cmluZ1wiKSByZXR1cm4gYXJyYXlMaWtlVG9BcnJheShvLCBtaW5MZW4pO1xuICB2YXIgbiA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvKS5zbGljZSg4LCAtMSk7XG4gIGlmIChuID09PSBcIk9iamVjdFwiICYmIG8uY29uc3RydWN0b3IpIG4gPSBvLmNvbnN0cnVjdG9yLm5hbWU7XG4gIGlmIChuID09PSBcIk1hcFwiIHx8IG4gPT09IFwiU2V0XCIpIHJldHVybiBBcnJheS5mcm9tKG8pO1xuICBpZiAobiA9PT0gXCJBcmd1bWVudHNcIiB8fCAvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKSkgcmV0dXJuIGFycmF5TGlrZVRvQXJyYXkobywgbWluTGVuKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXk7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js\n"); + +/***/ }), + +/***/ "./node_modules/next/node_modules/@babel/runtime/regenerator/index.js": +/*!****************************************************************************!*\ + !*** ./node_modules/next/node_modules/@babel/runtime/regenerator/index.js ***! + \****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("module.exports = __webpack_require__(/*! regenerator-runtime */ \"./node_modules/regenerator-runtime/runtime.js\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL3JlZ2VuZXJhdG9yL2luZGV4LmpzP2JjOTIiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCLG1CQUFPLENBQUMsMEVBQXFCIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL25leHQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL3JlZ2VuZXJhdG9yL2luZGV4LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwicmVnZW5lcmF0b3ItcnVudGltZVwiKTtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/node_modules/@babel/runtime/regenerator/index.js\n"); /***/ }), @@ -2394,63 +2465,75 @@ eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source cod /***/ }), -/***/ "./node_modules/querystring-es3/decode.js": -/*!************************************************!*\ - !*** ./node_modules/querystring-es3/decode.js ***! - \************************************************/ +/***/ "./node_modules/react-dom/cjs/react-dom.development.js": +/*!*************************************************************!*\ + !*** ./node_modules/react-dom/cjs/react-dom.development.js ***! + \*************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3F1ZXJ5c3RyaW5nLWVzMy9kZWNvZGUuanM/OTFkZCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVhOztBQUViO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGlCQUFpQixTQUFTO0FBQzFCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcXVlcnlzdHJpbmctZXMzL2RlY29kZS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhXG4vLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXG4vLyBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXRcbi8vIHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZVxuLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWRcbi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Ncbi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Zcbi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU5cbi8vIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLFxuLy8gREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SXG4vLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFXG4vLyBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuXG4ndXNlIHN0cmljdCc7XG5cbi8vIElmIG9iai5oYXNPd25Qcm9wZXJ0eSBoYXMgYmVlbiBvdmVycmlkZGVuLCB0aGVuIGNhbGxpbmdcbi8vIG9iai5oYXNPd25Qcm9wZXJ0eShwcm9wKSB3aWxsIGJyZWFrLlxuLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vam95ZW50L25vZGUvaXNzdWVzLzE3MDdcbmZ1bmN0aW9uIGhhc093blByb3BlcnR5KG9iaiwgcHJvcCkge1xuICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24ocXMsIHNlcCwgZXEsIG9wdGlvbnMpIHtcbiAgc2VwID0gc2VwIHx8ICcmJztcbiAgZXEgPSBlcSB8fCAnPSc7XG4gIHZhciBvYmogPSB7fTtcblxuICBpZiAodHlwZW9mIHFzICE9PSAnc3RyaW5nJyB8fCBxcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gb2JqO1xuICB9XG5cbiAgdmFyIHJlZ2V4cCA9IC9cXCsvZztcbiAgcXMgPSBxcy5zcGxpdChzZXApO1xuXG4gIHZhciBtYXhLZXlzID0gMTAwMDtcbiAgaWYgKG9wdGlvbnMgJiYgdHlwZW9mIG9wdGlvbnMubWF4S2V5cyA9PT0gJ251bWJlcicpIHtcbiAgICBtYXhLZXlzID0gb3B0aW9ucy5tYXhLZXlzO1xuICB9XG5cbiAgdmFyIGxlbiA9IHFzLmxlbmd0aDtcbiAgLy8gbWF4S2V5cyA8PSAwIG1lYW5zIHRoYXQgd2Ugc2hvdWxkIG5vdCBsaW1pdCBrZXlzIGNvdW50XG4gIGlmIChtYXhLZXlzID4gMCAmJiBsZW4gPiBtYXhLZXlzKSB7XG4gICAgbGVuID0gbWF4S2V5cztcbiAgfVxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyArK2kpIHtcbiAgICB2YXIgeCA9IHFzW2ldLnJlcGxhY2UocmVnZXhwLCAnJTIwJyksXG4gICAgICAgIGlkeCA9IHguaW5kZXhPZihlcSksXG4gICAgICAgIGtzdHIsIHZzdHIsIGssIHY7XG5cbiAgICBpZiAoaWR4ID49IDApIHtcbiAgICAgIGtzdHIgPSB4LnN1YnN0cigwLCBpZHgpO1xuICAgICAgdnN0ciA9IHguc3Vic3RyKGlkeCArIDEpO1xuICAgIH0gZWxzZSB7XG4gICAgICBrc3RyID0geDtcbiAgICAgIHZzdHIgPSAnJztcbiAgICB9XG5cbiAgICBrID0gZGVjb2RlVVJJQ29tcG9uZW50KGtzdHIpO1xuICAgIHYgPSBkZWNvZGVVUklDb21wb25lbnQodnN0cik7XG5cbiAgICBpZiAoIWhhc093blByb3BlcnR5KG9iaiwgaykpIHtcbiAgICAgIG9ialtrXSA9IHY7XG4gICAgfSBlbHNlIGlmIChpc0FycmF5KG9ialtrXSkpIHtcbiAgICAgIG9ialtrXS5wdXNoKHYpO1xuICAgIH0gZWxzZSB7XG4gICAgICBvYmpba10gPSBbb2JqW2tdLCB2XTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gb2JqO1xufTtcblxudmFyIGlzQXJyYXkgPSBBcnJheS5pc0FycmF5IHx8IGZ1bmN0aW9uICh4cykge1xuICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHhzKSA9PT0gJ1tvYmplY3QgQXJyYXldJztcbn07XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/querystring-es3/decode.js\n"); +eval("/** @license React v16.14.0\n * react-dom.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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\n\n\n\nif (true) {\n (function() {\n'use strict';\n\nvar React = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\nvar _assign = __webpack_require__(/*! object-assign */ \"./node_modules/next/dist/build/polyfills/object-assign.js\");\nvar Scheduler = __webpack_require__(/*! scheduler */ \"./node_modules/react-dom/node_modules/scheduler/index.js\");\nvar checkPropTypes = __webpack_require__(/*! prop-types/checkPropTypes */ \"./node_modules/prop-types/checkPropTypes.js\");\nvar tracing = __webpack_require__(/*! scheduler/tracing */ \"./node_modules/react-dom/node_modules/scheduler/tracing.js\");\n\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED; // Prevent newer renderers from RTE when used with older react package versions.\n// Current owner and dispatcher used to share the same ref,\n// but PR #14548 split them out to better support the react-debug-tools package.\n\nif (!ReactSharedInternals.hasOwnProperty('ReactCurrentDispatcher')) {\n ReactSharedInternals.ReactCurrentDispatcher = {\n current: null\n };\n}\n\nif (!ReactSharedInternals.hasOwnProperty('ReactCurrentBatchConfig')) {\n ReactSharedInternals.ReactCurrentBatchConfig = {\n suspense: null\n };\n}\n\n// by calls to these methods by a Babel plugin.\n//\n// In PROD (or in packages without access to React internals),\n// they are left as they are instead.\n\nfunction warn(format) {\n {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n printWarning('warn', format, args);\n }\n}\nfunction error(format) {\n {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n printWarning('error', format, args);\n }\n}\n\nfunction printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var hasExistingStack = args.length > 0 && typeof args[args.length - 1] === 'string' && args[args.length - 1].indexOf('\\n in') === 0;\n\n if (!hasExistingStack) {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n }\n }\n\n var argsWithFormat = args.map(function (item) {\n return '' + item;\n }); // Careful: RN currently depends on this prefix\n\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n throw new Error(message);\n } catch (x) {}\n }\n}\n\nif (!React) {\n {\n throw Error( \"ReactDOM was loaded before React. Make sure you load the React package before loading ReactDOM.\" );\n }\n}\n\nvar invokeGuardedCallbackImpl = function (name, func, context, a, b, c, d, e, f) {\n var funcArgs = Array.prototype.slice.call(arguments, 3);\n\n try {\n func.apply(context, funcArgs);\n } catch (error) {\n this.onError(error);\n }\n};\n\n{\n // In DEV mode, we swap out invokeGuardedCallback for a special version\n // that plays more nicely with the browser's DevTools. The idea is to preserve\n // \"Pause on exceptions\" behavior. Because React wraps all user-provided\n // functions in invokeGuardedCallback, and the production version of\n // invokeGuardedCallback uses a try-catch, all user exceptions are treated\n // like caught exceptions, and the DevTools won't pause unless the developer\n // takes the extra step of enabling pause on caught exceptions. This is\n // unintuitive, though, because even though React has caught the error, from\n // the developer's perspective, the error is uncaught.\n //\n // To preserve the expected \"Pause on exceptions\" behavior, we don't use a\n // try-catch in DEV. Instead, we synchronously dispatch a fake event to a fake\n // DOM node, and call the user-provided callback from inside an event handler\n // for that fake event. If the callback throws, the error is \"captured\" using\n // a global event handler. But because the error happens in a different\n // event loop context, it does not interrupt the normal program flow.\n // Effectively, this gives us try-catch behavior without actually using\n // try-catch. Neat!\n // Check that the browser supports the APIs we need to implement our special\n // DEV version of invokeGuardedCallback\n if (typeof window !== 'undefined' && typeof window.dispatchEvent === 'function' && typeof document !== 'undefined' && typeof document.createEvent === 'function') {\n var fakeNode = document.createElement('react');\n\n var invokeGuardedCallbackDev = function (name, func, context, a, b, c, d, e, f) {\n // If document doesn't exist we know for sure we will crash in this method\n // when we call document.createEvent(). However this can cause confusing\n // errors: https://github.com/facebookincubator/create-react-app/issues/3482\n // So we preemptively throw with a better message instead.\n if (!(typeof document !== 'undefined')) {\n {\n throw Error( \"The `document` global was defined when React was initialized, but is not defined anymore. This can happen in a test environment if a component schedules an update from an asynchronous callback, but the test has already finished running. To solve this, you can either unmount the component at the end of your test (and ensure that any asynchronous operations get canceled in `componentWillUnmount`), or you can change the test itself to be asynchronous.\" );\n }\n }\n\n var evt = document.createEvent('Event'); // Keeps track of whether the user-provided callback threw an error. We\n // set this to true at the beginning, then set it to false right after\n // calling the function. If the function errors, `didError` will never be\n // set to false. This strategy works even if the browser is flaky and\n // fails to call our global error handler, because it doesn't rely on\n // the error event at all.\n\n var didError = true; // Keeps track of the value of window.event so that we can reset it\n // during the callback to let user code access window.event in the\n // browsers that support it.\n\n var windowEvent = window.event; // Keeps track of the descriptor of window.event to restore it after event\n // dispatching: https://github.com/facebook/react/issues/13688\n\n var windowEventDescriptor = Object.getOwnPropertyDescriptor(window, 'event'); // Create an event handler for our fake event. We will synchronously\n // dispatch our fake event using `dispatchEvent`. Inside the handler, we\n // call the user-provided callback.\n\n var funcArgs = Array.prototype.slice.call(arguments, 3);\n\n function callCallback() {\n // We immediately remove the callback from event listeners so that\n // nested `invokeGuardedCallback` calls do not clash. Otherwise, a\n // nested call would trigger the fake event handlers of any call higher\n // in the stack.\n fakeNode.removeEventListener(evtType, callCallback, false); // We check for window.hasOwnProperty('event') to prevent the\n // window.event assignment in both IE <= 10 as they throw an error\n // \"Member not found\" in strict mode, and in Firefox which does not\n // support window.event.\n\n if (typeof window.event !== 'undefined' && window.hasOwnProperty('event')) {\n window.event = windowEvent;\n }\n\n func.apply(context, funcArgs);\n didError = false;\n } // Create a global error event handler. We use this to capture the value\n // that was thrown. It's possible that this error handler will fire more\n // than once; for example, if non-React code also calls `dispatchEvent`\n // and a handler for that event throws. We should be resilient to most of\n // those cases. Even if our error event handler fires more than once, the\n // last error event is always used. If the callback actually does error,\n // we know that the last error event is the correct one, because it's not\n // possible for anything else to have happened in between our callback\n // erroring and the code that follows the `dispatchEvent` call below. If\n // the callback doesn't error, but the error event was fired, we know to\n // ignore it because `didError` will be false, as described above.\n\n\n var error; // Use this to track whether the error event is ever called.\n\n var didSetError = false;\n var isCrossOriginError = false;\n\n function handleWindowError(event) {\n error = event.error;\n didSetError = true;\n\n if (error === null && event.colno === 0 && event.lineno === 0) {\n isCrossOriginError = true;\n }\n\n if (event.defaultPrevented) {\n // Some other error handler has prevented default.\n // Browsers silence the error report if this happens.\n // We'll remember this to later decide whether to log it or not.\n if (error != null && typeof error === 'object') {\n try {\n error._suppressLogging = true;\n } catch (inner) {// Ignore.\n }\n }\n }\n } // Create a fake event type.\n\n\n var evtType = \"react-\" + (name ? name : 'invokeguardedcallback'); // Attach our event handlers\n\n window.addEventListener('error', handleWindowError);\n fakeNode.addEventListener(evtType, callCallback, false); // Synchronously dispatch our fake event. If the user-provided function\n // errors, it will trigger our global error handler.\n\n evt.initEvent(evtType, false, false);\n fakeNode.dispatchEvent(evt);\n\n if (windowEventDescriptor) {\n Object.defineProperty(window, 'event', windowEventDescriptor);\n }\n\n if (didError) {\n if (!didSetError) {\n // The callback errored, but the error event never fired.\n error = new Error('An error was thrown inside one of your components, but React ' + \"doesn't know what it was. This is likely due to browser \" + 'flakiness. React does its best to preserve the \"Pause on ' + 'exceptions\" behavior of the DevTools, which requires some ' + \"DEV-mode only tricks. It's possible that these don't work in \" + 'your browser. Try triggering the error in production mode, ' + 'or switching to a modern browser. If you suspect that this is ' + 'actually an issue with React, please file an issue.');\n } else if (isCrossOriginError) {\n error = new Error(\"A cross-origin error was thrown. React doesn't have access to \" + 'the actual error object in development. ' + 'See https://fb.me/react-crossorigin-error for more information.');\n }\n\n this.onError(error);\n } // Remove our event listeners\n\n\n window.removeEventListener('error', handleWindowError);\n };\n\n invokeGuardedCallbackImpl = invokeGuardedCallbackDev;\n }\n}\n\nvar invokeGuardedCallbackImpl$1 = invokeGuardedCallbackImpl;\n\nvar hasError = false;\nvar caughtError = null; // Used by event system to capture/rethrow the first error.\n\nvar hasRethrowError = false;\nvar rethrowError = null;\nvar reporter = {\n onError: function (error) {\n hasError = true;\n caughtError = error;\n }\n};\n/**\n * Call a function while guarding against errors that happens within it.\n * Returns an error if it throws, otherwise null.\n *\n * In production, this is implemented using a try-catch. The reason we don't\n * use a try-catch directly is so that we can swap out a different\n * implementation in DEV mode.\n *\n * @param {String} name of the guard to use for logging or debugging\n * @param {Function} func The function to invoke\n * @param {*} context The context to use when calling the function\n * @param {...*} args Arguments for function\n */\n\nfunction invokeGuardedCallback(name, func, context, a, b, c, d, e, f) {\n hasError = false;\n caughtError = null;\n invokeGuardedCallbackImpl$1.apply(reporter, arguments);\n}\n/**\n * Same as invokeGuardedCallback, but instead of returning an error, it stores\n * it in a global so it can be rethrown by `rethrowCaughtError` later.\n * TODO: See if caughtError and rethrowError can be unified.\n *\n * @param {String} name of the guard to use for logging or debugging\n * @param {Function} func The function to invoke\n * @param {*} context The context to use when calling the function\n * @param {...*} args Arguments for function\n */\n\nfunction invokeGuardedCallbackAndCatchFirstError(name, func, context, a, b, c, d, e, f) {\n invokeGuardedCallback.apply(this, arguments);\n\n if (hasError) {\n var error = clearCaughtError();\n\n if (!hasRethrowError) {\n hasRethrowError = true;\n rethrowError = error;\n }\n }\n}\n/**\n * During execution of guarded functions we will capture the first error which\n * we will rethrow to be handled by the top level error handler.\n */\n\nfunction rethrowCaughtError() {\n if (hasRethrowError) {\n var error = rethrowError;\n hasRethrowError = false;\n rethrowError = null;\n throw error;\n }\n}\nfunction hasCaughtError() {\n return hasError;\n}\nfunction clearCaughtError() {\n if (hasError) {\n var error = caughtError;\n hasError = false;\n caughtError = null;\n return error;\n } else {\n {\n {\n throw Error( \"clearCaughtError was called but no error was captured. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n }\n}\n\nvar getFiberCurrentPropsFromNode = null;\nvar getInstanceFromNode = null;\nvar getNodeFromInstance = null;\nfunction setComponentTree(getFiberCurrentPropsFromNodeImpl, getInstanceFromNodeImpl, getNodeFromInstanceImpl) {\n getFiberCurrentPropsFromNode = getFiberCurrentPropsFromNodeImpl;\n getInstanceFromNode = getInstanceFromNodeImpl;\n getNodeFromInstance = getNodeFromInstanceImpl;\n\n {\n if (!getNodeFromInstance || !getInstanceFromNode) {\n error('EventPluginUtils.setComponentTree(...): Injected ' + 'module is missing getNodeFromInstance or getInstanceFromNode.');\n }\n }\n}\nvar validateEventDispatches;\n\n{\n validateEventDispatches = function (event) {\n var dispatchListeners = event._dispatchListeners;\n var dispatchInstances = event._dispatchInstances;\n var listenersIsArr = Array.isArray(dispatchListeners);\n var listenersLen = listenersIsArr ? dispatchListeners.length : dispatchListeners ? 1 : 0;\n var instancesIsArr = Array.isArray(dispatchInstances);\n var instancesLen = instancesIsArr ? dispatchInstances.length : dispatchInstances ? 1 : 0;\n\n if (instancesIsArr !== listenersIsArr || instancesLen !== listenersLen) {\n error('EventPluginUtils: Invalid `event`.');\n }\n };\n}\n/**\n * Dispatch the event to the listener.\n * @param {SyntheticEvent} event SyntheticEvent to handle\n * @param {function} listener Application-level callback\n * @param {*} inst Internal component instance\n */\n\n\nfunction executeDispatch(event, listener, inst) {\n var type = event.type || 'unknown-event';\n event.currentTarget = getNodeFromInstance(inst);\n invokeGuardedCallbackAndCatchFirstError(type, listener, undefined, event);\n event.currentTarget = null;\n}\n/**\n * Standard/simple iteration through an event's collected dispatches.\n */\n\nfunction executeDispatchesInOrder(event) {\n var dispatchListeners = event._dispatchListeners;\n var dispatchInstances = event._dispatchInstances;\n\n {\n validateEventDispatches(event);\n }\n\n if (Array.isArray(dispatchListeners)) {\n for (var i = 0; i < dispatchListeners.length; i++) {\n if (event.isPropagationStopped()) {\n break;\n } // Listeners and Instances are two parallel arrays that are always in sync.\n\n\n executeDispatch(event, dispatchListeners[i], dispatchInstances[i]);\n }\n } else if (dispatchListeners) {\n executeDispatch(event, dispatchListeners, dispatchInstances);\n }\n\n event._dispatchListeners = null;\n event._dispatchInstances = null;\n}\n\nvar FunctionComponent = 0;\nvar ClassComponent = 1;\nvar IndeterminateComponent = 2; // Before we know whether it is function or class\n\nvar HostRoot = 3; // Root of a host tree. Could be nested inside another node.\n\nvar HostPortal = 4; // A subtree. Could be an entry point to a different renderer.\n\nvar HostComponent = 5;\nvar HostText = 6;\nvar Fragment = 7;\nvar Mode = 8;\nvar ContextConsumer = 9;\nvar ContextProvider = 10;\nvar ForwardRef = 11;\nvar Profiler = 12;\nvar SuspenseComponent = 13;\nvar MemoComponent = 14;\nvar SimpleMemoComponent = 15;\nvar LazyComponent = 16;\nvar IncompleteClassComponent = 17;\nvar DehydratedFragment = 18;\nvar SuspenseListComponent = 19;\nvar FundamentalComponent = 20;\nvar ScopeComponent = 21;\nvar Block = 22;\n\n/**\n * Injectable ordering of event plugins.\n */\nvar eventPluginOrder = null;\n/**\n * Injectable mapping from names to event plugin modules.\n */\n\nvar namesToPlugins = {};\n/**\n * Recomputes the plugin list using the injected plugins and plugin ordering.\n *\n * @private\n */\n\nfunction recomputePluginOrdering() {\n if (!eventPluginOrder) {\n // Wait until an `eventPluginOrder` is injected.\n return;\n }\n\n for (var pluginName in namesToPlugins) {\n var pluginModule = namesToPlugins[pluginName];\n var pluginIndex = eventPluginOrder.indexOf(pluginName);\n\n if (!(pluginIndex > -1)) {\n {\n throw Error( \"EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `\" + pluginName + \"`.\" );\n }\n }\n\n if (plugins[pluginIndex]) {\n continue;\n }\n\n if (!pluginModule.extractEvents) {\n {\n throw Error( \"EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `\" + pluginName + \"` does not.\" );\n }\n }\n\n plugins[pluginIndex] = pluginModule;\n var publishedEvents = pluginModule.eventTypes;\n\n for (var eventName in publishedEvents) {\n if (!publishEventForPlugin(publishedEvents[eventName], pluginModule, eventName)) {\n {\n throw Error( \"EventPluginRegistry: Failed to publish event `\" + eventName + \"` for plugin `\" + pluginName + \"`.\" );\n }\n }\n }\n }\n}\n/**\n * Publishes an event so that it can be dispatched by the supplied plugin.\n *\n * @param {object} dispatchConfig Dispatch configuration for the event.\n * @param {object} PluginModule Plugin publishing the event.\n * @return {boolean} True if the event was successfully published.\n * @private\n */\n\n\nfunction publishEventForPlugin(dispatchConfig, pluginModule, eventName) {\n if (!!eventNameDispatchConfigs.hasOwnProperty(eventName)) {\n {\n throw Error( \"EventPluginRegistry: More than one plugin attempted to publish the same event name, `\" + eventName + \"`.\" );\n }\n }\n\n eventNameDispatchConfigs[eventName] = dispatchConfig;\n var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames;\n\n if (phasedRegistrationNames) {\n for (var phaseName in phasedRegistrationNames) {\n if (phasedRegistrationNames.hasOwnProperty(phaseName)) {\n var phasedRegistrationName = phasedRegistrationNames[phaseName];\n publishRegistrationName(phasedRegistrationName, pluginModule, eventName);\n }\n }\n\n return true;\n } else if (dispatchConfig.registrationName) {\n publishRegistrationName(dispatchConfig.registrationName, pluginModule, eventName);\n return true;\n }\n\n return false;\n}\n/**\n * Publishes a registration name that is used to identify dispatched events.\n *\n * @param {string} registrationName Registration name to add.\n * @param {object} PluginModule Plugin publishing the event.\n * @private\n */\n\n\nfunction publishRegistrationName(registrationName, pluginModule, eventName) {\n if (!!registrationNameModules[registrationName]) {\n {\n throw Error( \"EventPluginRegistry: More than one plugin attempted to publish the same registration name, `\" + registrationName + \"`.\" );\n }\n }\n\n registrationNameModules[registrationName] = pluginModule;\n registrationNameDependencies[registrationName] = pluginModule.eventTypes[eventName].dependencies;\n\n {\n var lowerCasedName = registrationName.toLowerCase();\n possibleRegistrationNames[lowerCasedName] = registrationName;\n\n if (registrationName === 'onDoubleClick') {\n possibleRegistrationNames.ondblclick = registrationName;\n }\n }\n}\n/**\n * Registers plugins so that they can extract and dispatch events.\n */\n\n/**\n * Ordered list of injected plugins.\n */\n\n\nvar plugins = [];\n/**\n * Mapping from event name to dispatch config\n */\n\nvar eventNameDispatchConfigs = {};\n/**\n * Mapping from registration name to plugin module\n */\n\nvar registrationNameModules = {};\n/**\n * Mapping from registration name to event name\n */\n\nvar registrationNameDependencies = {};\n/**\n * Mapping from lowercase registration names to the properly cased version,\n * used to warn in the case of missing event handlers. Available\n * only in true.\n * @type {Object}\n */\n\nvar possibleRegistrationNames = {} ; // Trust the developer to only use possibleRegistrationNames in true\n\n/**\n * Injects an ordering of plugins (by plugin name). This allows the ordering\n * to be decoupled from injection of the actual plugins so that ordering is\n * always deterministic regardless of packaging, on-the-fly injection, etc.\n *\n * @param {array} InjectedEventPluginOrder\n * @internal\n */\n\nfunction injectEventPluginOrder(injectedEventPluginOrder) {\n if (!!eventPluginOrder) {\n {\n throw Error( \"EventPluginRegistry: Cannot inject event plugin ordering more than once. You are likely trying to load more than one copy of React.\" );\n }\n } // Clone the ordering so it cannot be dynamically mutated.\n\n\n eventPluginOrder = Array.prototype.slice.call(injectedEventPluginOrder);\n recomputePluginOrdering();\n}\n/**\n * Injects plugins to be used by plugin event system. The plugin names must be\n * in the ordering injected by `injectEventPluginOrder`.\n *\n * Plugins can be injected as part of page initialization or on-the-fly.\n *\n * @param {object} injectedNamesToPlugins Map from names to plugin modules.\n * @internal\n */\n\nfunction injectEventPluginsByName(injectedNamesToPlugins) {\n var isOrderingDirty = false;\n\n for (var pluginName in injectedNamesToPlugins) {\n if (!injectedNamesToPlugins.hasOwnProperty(pluginName)) {\n continue;\n }\n\n var pluginModule = injectedNamesToPlugins[pluginName];\n\n if (!namesToPlugins.hasOwnProperty(pluginName) || namesToPlugins[pluginName] !== pluginModule) {\n if (!!namesToPlugins[pluginName]) {\n {\n throw Error( \"EventPluginRegistry: Cannot inject two different event plugins using the same name, `\" + pluginName + \"`.\" );\n }\n }\n\n namesToPlugins[pluginName] = pluginModule;\n isOrderingDirty = true;\n }\n }\n\n if (isOrderingDirty) {\n recomputePluginOrdering();\n }\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined');\n\nvar PLUGIN_EVENT_SYSTEM = 1;\nvar IS_REPLAYED = 1 << 5;\nvar IS_FIRST_ANCESTOR = 1 << 6;\n\nvar restoreImpl = null;\nvar restoreTarget = null;\nvar restoreQueue = null;\n\nfunction restoreStateOfTarget(target) {\n // We perform this translation at the end of the event loop so that we\n // always receive the correct fiber here\n var internalInstance = getInstanceFromNode(target);\n\n if (!internalInstance) {\n // Unmounted\n return;\n }\n\n if (!(typeof restoreImpl === 'function')) {\n {\n throw Error( \"setRestoreImplementation() needs to be called to handle a target for controlled events. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n\n var stateNode = internalInstance.stateNode; // Guard against Fiber being unmounted.\n\n if (stateNode) {\n var _props = getFiberCurrentPropsFromNode(stateNode);\n\n restoreImpl(internalInstance.stateNode, internalInstance.type, _props);\n }\n}\n\nfunction setRestoreImplementation(impl) {\n restoreImpl = impl;\n}\nfunction enqueueStateRestore(target) {\n if (restoreTarget) {\n if (restoreQueue) {\n restoreQueue.push(target);\n } else {\n restoreQueue = [target];\n }\n } else {\n restoreTarget = target;\n }\n}\nfunction needsStateRestore() {\n return restoreTarget !== null || restoreQueue !== null;\n}\nfunction restoreStateIfNeeded() {\n if (!restoreTarget) {\n return;\n }\n\n var target = restoreTarget;\n var queuedTargets = restoreQueue;\n restoreTarget = null;\n restoreQueue = null;\n restoreStateOfTarget(target);\n\n if (queuedTargets) {\n for (var i = 0; i < queuedTargets.length; i++) {\n restoreStateOfTarget(queuedTargets[i]);\n }\n }\n}\n\nvar enableProfilerTimer = true; // Trace which interactions trigger each commit.\n\nvar enableDeprecatedFlareAPI = false; // Experimental Host Component support.\n\nvar enableFundamentalAPI = false; // Experimental Scope support.\nvar warnAboutStringRefs = false;\n\n// the renderer. Such as when we're dispatching events or if third party\n// libraries need to call batchedUpdates. Eventually, this API will go away when\n// everything is batched by default. We'll then have a similar API to opt-out of\n// scheduled work and instead do synchronous work.\n// Defaults\n\nvar batchedUpdatesImpl = function (fn, bookkeeping) {\n return fn(bookkeeping);\n};\n\nvar discreteUpdatesImpl = function (fn, a, b, c, d) {\n return fn(a, b, c, d);\n};\n\nvar flushDiscreteUpdatesImpl = function () {};\n\nvar batchedEventUpdatesImpl = batchedUpdatesImpl;\nvar isInsideEventHandler = false;\nvar isBatchingEventUpdates = false;\n\nfunction finishEventHandler() {\n // Here we wait until all updates have propagated, which is important\n // when using controlled components within layers:\n // https://github.com/facebook/react/issues/1698\n // Then we restore state of any controlled component.\n var controlledComponentsHavePendingUpdates = needsStateRestore();\n\n if (controlledComponentsHavePendingUpdates) {\n // If a controlled event was fired, we may need to restore the state of\n // the DOM node back to the controlled value. This is necessary when React\n // bails out of the update without touching the DOM.\n flushDiscreteUpdatesImpl();\n restoreStateIfNeeded();\n }\n}\n\nfunction batchedUpdates(fn, bookkeeping) {\n if (isInsideEventHandler) {\n // If we are currently inside another batch, we need to wait until it\n // fully completes before restoring state.\n return fn(bookkeeping);\n }\n\n isInsideEventHandler = true;\n\n try {\n return batchedUpdatesImpl(fn, bookkeeping);\n } finally {\n isInsideEventHandler = false;\n finishEventHandler();\n }\n}\nfunction batchedEventUpdates(fn, a, b) {\n if (isBatchingEventUpdates) {\n // If we are currently inside another batch, we need to wait until it\n // fully completes before restoring state.\n return fn(a, b);\n }\n\n isBatchingEventUpdates = true;\n\n try {\n return batchedEventUpdatesImpl(fn, a, b);\n } finally {\n isBatchingEventUpdates = false;\n finishEventHandler();\n }\n} // This is for the React Flare event system\nfunction discreteUpdates(fn, a, b, c, d) {\n var prevIsInsideEventHandler = isInsideEventHandler;\n isInsideEventHandler = true;\n\n try {\n return discreteUpdatesImpl(fn, a, b, c, d);\n } finally {\n isInsideEventHandler = prevIsInsideEventHandler;\n\n if (!isInsideEventHandler) {\n finishEventHandler();\n }\n }\n}\nfunction flushDiscreteUpdatesIfNeeded(timeStamp) {\n // event.timeStamp isn't overly reliable due to inconsistencies in\n // how different browsers have historically provided the time stamp.\n // Some browsers provide high-resolution time stamps for all events,\n // some provide low-resolution time stamps for all events. FF < 52\n // even mixes both time stamps together. Some browsers even report\n // negative time stamps or time stamps that are 0 (iOS9) in some cases.\n // Given we are only comparing two time stamps with equality (!==),\n // we are safe from the resolution differences. If the time stamp is 0\n // we bail-out of preventing the flush, which can affect semantics,\n // such as if an earlier flush removes or adds event listeners that\n // are fired in the subsequent flush. However, this is the same\n // behaviour as we had before this change, so the risks are low.\n if (!isInsideEventHandler && (!enableDeprecatedFlareAPI )) {\n flushDiscreteUpdatesImpl();\n }\n}\nfunction setBatchingImplementation(_batchedUpdatesImpl, _discreteUpdatesImpl, _flushDiscreteUpdatesImpl, _batchedEventUpdatesImpl) {\n batchedUpdatesImpl = _batchedUpdatesImpl;\n discreteUpdatesImpl = _discreteUpdatesImpl;\n flushDiscreteUpdatesImpl = _flushDiscreteUpdatesImpl;\n batchedEventUpdatesImpl = _batchedEventUpdatesImpl;\n}\n\nvar DiscreteEvent = 0;\nvar UserBlockingEvent = 1;\nvar ContinuousEvent = 2;\n\n// A reserved attribute.\n// It is handled by React separately and shouldn't be written to the DOM.\nvar RESERVED = 0; // A simple string attribute.\n// Attributes that aren't in the whitelist are presumed to have this type.\n\nvar STRING = 1; // A string attribute that accepts booleans in React. In HTML, these are called\n// \"enumerated\" attributes with \"true\" and \"false\" as possible values.\n// When true, it should be set to a \"true\" string.\n// When false, it should be set to a \"false\" string.\n\nvar BOOLEANISH_STRING = 2; // A real boolean attribute.\n// When true, it should be present (set either to an empty string or its name).\n// When false, it should be omitted.\n\nvar BOOLEAN = 3; // An attribute that can be used as a flag as well as with a value.\n// When true, it should be present (set either to an empty string or its name).\n// When false, it should be omitted.\n// For any other value, should be present with that value.\n\nvar OVERLOADED_BOOLEAN = 4; // An attribute that must be numeric or parse as a numeric.\n// When falsy, it should be removed.\n\nvar NUMERIC = 5; // An attribute that must be positive numeric or parse as a positive numeric.\n// When falsy, it should be removed.\n\nvar POSITIVE_NUMERIC = 6;\n\n/* eslint-disable max-len */\nvar ATTRIBUTE_NAME_START_CHAR = \":A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\";\n/* eslint-enable max-len */\n\nvar ATTRIBUTE_NAME_CHAR = ATTRIBUTE_NAME_START_CHAR + \"\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040\";\nvar ROOT_ATTRIBUTE_NAME = 'data-reactroot';\nvar VALID_ATTRIBUTE_NAME_REGEX = new RegExp('^[' + ATTRIBUTE_NAME_START_CHAR + '][' + ATTRIBUTE_NAME_CHAR + ']*$');\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar illegalAttributeNameCache = {};\nvar validatedAttributeNameCache = {};\nfunction isAttributeNameSafe(attributeName) {\n if (hasOwnProperty.call(validatedAttributeNameCache, attributeName)) {\n return true;\n }\n\n if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) {\n return false;\n }\n\n if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) {\n validatedAttributeNameCache[attributeName] = true;\n return true;\n }\n\n illegalAttributeNameCache[attributeName] = true;\n\n {\n error('Invalid attribute name: `%s`', attributeName);\n }\n\n return false;\n}\nfunction shouldIgnoreAttribute(name, propertyInfo, isCustomComponentTag) {\n if (propertyInfo !== null) {\n return propertyInfo.type === RESERVED;\n }\n\n if (isCustomComponentTag) {\n return false;\n }\n\n if (name.length > 2 && (name[0] === 'o' || name[0] === 'O') && (name[1] === 'n' || name[1] === 'N')) {\n return true;\n }\n\n return false;\n}\nfunction shouldRemoveAttributeWithWarning(name, value, propertyInfo, isCustomComponentTag) {\n if (propertyInfo !== null && propertyInfo.type === RESERVED) {\n return false;\n }\n\n switch (typeof value) {\n case 'function': // $FlowIssue symbol is perfectly valid here\n\n case 'symbol':\n // eslint-disable-line\n return true;\n\n case 'boolean':\n {\n if (isCustomComponentTag) {\n return false;\n }\n\n if (propertyInfo !== null) {\n return !propertyInfo.acceptsBooleans;\n } else {\n var prefix = name.toLowerCase().slice(0, 5);\n return prefix !== 'data-' && prefix !== 'aria-';\n }\n }\n\n default:\n return false;\n }\n}\nfunction shouldRemoveAttribute(name, value, propertyInfo, isCustomComponentTag) {\n if (value === null || typeof value === 'undefined') {\n return true;\n }\n\n if (shouldRemoveAttributeWithWarning(name, value, propertyInfo, isCustomComponentTag)) {\n return true;\n }\n\n if (isCustomComponentTag) {\n return false;\n }\n\n if (propertyInfo !== null) {\n switch (propertyInfo.type) {\n case BOOLEAN:\n return !value;\n\n case OVERLOADED_BOOLEAN:\n return value === false;\n\n case NUMERIC:\n return isNaN(value);\n\n case POSITIVE_NUMERIC:\n return isNaN(value) || value < 1;\n }\n }\n\n return false;\n}\nfunction getPropertyInfo(name) {\n return properties.hasOwnProperty(name) ? properties[name] : null;\n}\n\nfunction PropertyInfoRecord(name, type, mustUseProperty, attributeName, attributeNamespace, sanitizeURL) {\n this.acceptsBooleans = type === BOOLEANISH_STRING || type === BOOLEAN || type === OVERLOADED_BOOLEAN;\n this.attributeName = attributeName;\n this.attributeNamespace = attributeNamespace;\n this.mustUseProperty = mustUseProperty;\n this.propertyName = name;\n this.type = type;\n this.sanitizeURL = sanitizeURL;\n} // When adding attributes to this list, be sure to also add them to\n// the `possibleStandardNames` module to ensure casing and incorrect\n// name warnings.\n\n\nvar properties = {}; // These props are reserved by React. They shouldn't be written to the DOM.\n\nvar reservedProps = ['children', 'dangerouslySetInnerHTML', // TODO: This prevents the assignment of defaultValue to regular\n// elements (not just inputs). Now that ReactDOMInput assigns to the\n// defaultValue property -- do we need this?\n'defaultValue', 'defaultChecked', 'innerHTML', 'suppressContentEditableWarning', 'suppressHydrationWarning', 'style'];\n\nreservedProps.forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, RESERVED, false, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false);\n}); // A few React string attributes have a different name.\n// This is a mapping from React prop names to the attribute names.\n\n[['acceptCharset', 'accept-charset'], ['className', 'class'], ['htmlFor', 'for'], ['httpEquiv', 'http-equiv']].forEach(function (_ref) {\n var name = _ref[0],\n attributeName = _ref[1];\n properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n attributeName, // attributeName\n null, // attributeNamespace\n false);\n}); // These are \"enumerated\" HTML attributes that accept \"true\" and \"false\".\n// In React, we let users pass `true` and `false` even though technically\n// these aren't boolean attributes (they are coerced to strings).\n\n['contentEditable', 'draggable', 'spellCheck', 'value'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, BOOLEANISH_STRING, false, // mustUseProperty\n name.toLowerCase(), // attributeName\n null, // attributeNamespace\n false);\n}); // These are \"enumerated\" SVG attributes that accept \"true\" and \"false\".\n// In React, we let users pass `true` and `false` even though technically\n// these aren't boolean attributes (they are coerced to strings).\n// Since these are SVG attributes, their attribute names are case-sensitive.\n\n['autoReverse', 'externalResourcesRequired', 'focusable', 'preserveAlpha'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, BOOLEANISH_STRING, false, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false);\n}); // These are HTML boolean attributes.\n\n['allowFullScreen', 'async', // Note: there is a special case that prevents it from being written to the DOM\n// on the client side because the browsers are inconsistent. Instead we call focus().\n'autoFocus', 'autoPlay', 'controls', 'default', 'defer', 'disabled', 'disablePictureInPicture', 'formNoValidate', 'hidden', 'loop', 'noModule', 'noValidate', 'open', 'playsInline', 'readOnly', 'required', 'reversed', 'scoped', 'seamless', // Microdata\n'itemScope'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, BOOLEAN, false, // mustUseProperty\n name.toLowerCase(), // attributeName\n null, // attributeNamespace\n false);\n}); // These are the few React props that we set as DOM properties\n// rather than attributes. These are all booleans.\n\n['checked', // Note: `option.selected` is not updated if `select.multiple` is\n// disabled with `removeAttribute`. We have special logic for handling this.\n'multiple', 'muted', 'selected' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, BOOLEAN, true, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false);\n}); // These are HTML attributes that are \"overloaded booleans\": they behave like\n// booleans, but can also accept a string value.\n\n['capture', 'download' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, OVERLOADED_BOOLEAN, false, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false);\n}); // These are HTML attributes that must be positive numbers.\n\n['cols', 'rows', 'size', 'span' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, POSITIVE_NUMERIC, false, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false);\n}); // These are HTML attributes that must be numbers.\n\n['rowSpan', 'start'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, NUMERIC, false, // mustUseProperty\n name.toLowerCase(), // attributeName\n null, // attributeNamespace\n false);\n});\nvar CAMELIZE = /[\\-\\:]([a-z])/g;\n\nvar capitalize = function (token) {\n return token[1].toUpperCase();\n}; // This is a list of all SVG attributes that need special casing, namespacing,\n// or boolean value assignment. Regular attributes that just accept strings\n// and have the same names are omitted, just like in the HTML whitelist.\n// Some of these attributes can be hard to find. This list was created by\n// scraping the MDN documentation.\n\n\n['accent-height', 'alignment-baseline', 'arabic-form', 'baseline-shift', 'cap-height', 'clip-path', 'clip-rule', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'dominant-baseline', 'enable-background', 'fill-opacity', 'fill-rule', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'glyph-name', 'glyph-orientation-horizontal', 'glyph-orientation-vertical', 'horiz-adv-x', 'horiz-origin-x', 'image-rendering', 'letter-spacing', 'lighting-color', 'marker-end', 'marker-mid', 'marker-start', 'overline-position', 'overline-thickness', 'paint-order', 'panose-1', 'pointer-events', 'rendering-intent', 'shape-rendering', 'stop-color', 'stop-opacity', 'strikethrough-position', 'strikethrough-thickness', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke-width', 'text-anchor', 'text-decoration', 'text-rendering', 'underline-position', 'underline-thickness', 'unicode-bidi', 'unicode-range', 'units-per-em', 'v-alphabetic', 'v-hanging', 'v-ideographic', 'v-mathematical', 'vector-effect', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'word-spacing', 'writing-mode', 'xmlns:xlink', 'x-height' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (attributeName) {\n var name = attributeName.replace(CAMELIZE, capitalize);\n properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n attributeName, null, // attributeNamespace\n false);\n}); // String SVG attributes with the xlink namespace.\n\n['xlink:actuate', 'xlink:arcrole', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (attributeName) {\n var name = attributeName.replace(CAMELIZE, capitalize);\n properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n attributeName, 'http://www.w3.org/1999/xlink', false);\n}); // String SVG attributes with the xml namespace.\n\n['xml:base', 'xml:lang', 'xml:space' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (attributeName) {\n var name = attributeName.replace(CAMELIZE, capitalize);\n properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n attributeName, 'http://www.w3.org/XML/1998/namespace', false);\n}); // These attribute exists both in HTML and SVG.\n// The attribute name is case-sensitive in SVG so we can't just use\n// the React name like we do for attributes that exist only in HTML.\n\n['tabIndex', 'crossOrigin'].forEach(function (attributeName) {\n properties[attributeName] = new PropertyInfoRecord(attributeName, STRING, false, // mustUseProperty\n attributeName.toLowerCase(), // attributeName\n null, // attributeNamespace\n false);\n}); // These attributes accept URLs. These must not allow javascript: URLS.\n// These will also need to accept Trusted Types object in the future.\n\nvar xlinkHref = 'xlinkHref';\nproperties[xlinkHref] = new PropertyInfoRecord('xlinkHref', STRING, false, // mustUseProperty\n'xlink:href', 'http://www.w3.org/1999/xlink', true);\n['src', 'href', 'action', 'formAction'].forEach(function (attributeName) {\n properties[attributeName] = new PropertyInfoRecord(attributeName, STRING, false, // mustUseProperty\n attributeName.toLowerCase(), // attributeName\n null, // attributeNamespace\n true);\n});\n\nvar ReactDebugCurrentFrame = null;\n\n{\n ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n} // A javascript: URL can contain leading C0 control or \\u0020 SPACE,\n// and any newline or tab are filtered out as if they're not part of the URL.\n// https://url.spec.whatwg.org/#url-parsing\n// Tab or newline are defined as \\r\\n\\t:\n// https://infra.spec.whatwg.org/#ascii-tab-or-newline\n// A C0 control is a code point in the range \\u0000 NULL to \\u001F\n// INFORMATION SEPARATOR ONE, inclusive:\n// https://infra.spec.whatwg.org/#c0-control-or-space\n\n/* eslint-disable max-len */\n\n\nvar isJavaScriptProtocol = /^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*\\:/i;\nvar didWarn = false;\n\nfunction sanitizeURL(url) {\n {\n if (!didWarn && isJavaScriptProtocol.test(url)) {\n didWarn = true;\n\n error('A future version of React will block javascript: URLs as a security precaution. ' + 'Use event handlers instead if you can. If you need to generate unsafe HTML try ' + 'using dangerouslySetInnerHTML instead. React was passed %s.', JSON.stringify(url));\n }\n }\n}\n\n/**\n * Get the value for a property on a node. Only used in DEV for SSR validation.\n * The \"expected\" argument is used as a hint of what the expected value is.\n * Some properties have multiple equivalent values.\n */\nfunction getValueForProperty(node, name, expected, propertyInfo) {\n {\n if (propertyInfo.mustUseProperty) {\n var propertyName = propertyInfo.propertyName;\n return node[propertyName];\n } else {\n if ( propertyInfo.sanitizeURL) {\n // If we haven't fully disabled javascript: URLs, and if\n // the hydration is successful of a javascript: URL, we\n // still want to warn on the client.\n sanitizeURL('' + expected);\n }\n\n var attributeName = propertyInfo.attributeName;\n var stringValue = null;\n\n if (propertyInfo.type === OVERLOADED_BOOLEAN) {\n if (node.hasAttribute(attributeName)) {\n var value = node.getAttribute(attributeName);\n\n if (value === '') {\n return true;\n }\n\n if (shouldRemoveAttribute(name, expected, propertyInfo, false)) {\n return value;\n }\n\n if (value === '' + expected) {\n return expected;\n }\n\n return value;\n }\n } else if (node.hasAttribute(attributeName)) {\n if (shouldRemoveAttribute(name, expected, propertyInfo, false)) {\n // We had an attribute but shouldn't have had one, so read it\n // for the error message.\n return node.getAttribute(attributeName);\n }\n\n if (propertyInfo.type === BOOLEAN) {\n // If this was a boolean, it doesn't matter what the value is\n // the fact that we have it is the same as the expected.\n return expected;\n } // Even if this property uses a namespace we use getAttribute\n // because we assume its namespaced name is the same as our config.\n // To use getAttributeNS we need the local name which we don't have\n // in our config atm.\n\n\n stringValue = node.getAttribute(attributeName);\n }\n\n if (shouldRemoveAttribute(name, expected, propertyInfo, false)) {\n return stringValue === null ? expected : stringValue;\n } else if (stringValue === '' + expected) {\n return expected;\n } else {\n return stringValue;\n }\n }\n }\n}\n/**\n * Get the value for a attribute on a node. Only used in DEV for SSR validation.\n * The third argument is used as a hint of what the expected value is. Some\n * attributes have multiple equivalent values.\n */\n\nfunction getValueForAttribute(node, name, expected) {\n {\n if (!isAttributeNameSafe(name)) {\n return;\n }\n\n if (!node.hasAttribute(name)) {\n return expected === undefined ? undefined : null;\n }\n\n var value = node.getAttribute(name);\n\n if (value === '' + expected) {\n return expected;\n }\n\n return value;\n }\n}\n/**\n * Sets the value for a property on a node.\n *\n * @param {DOMElement} node\n * @param {string} name\n * @param {*} value\n */\n\nfunction setValueForProperty(node, name, value, isCustomComponentTag) {\n var propertyInfo = getPropertyInfo(name);\n\n if (shouldIgnoreAttribute(name, propertyInfo, isCustomComponentTag)) {\n return;\n }\n\n if (shouldRemoveAttribute(name, value, propertyInfo, isCustomComponentTag)) {\n value = null;\n } // If the prop isn't in the special list, treat it as a simple attribute.\n\n\n if (isCustomComponentTag || propertyInfo === null) {\n if (isAttributeNameSafe(name)) {\n var _attributeName = name;\n\n if (value === null) {\n node.removeAttribute(_attributeName);\n } else {\n node.setAttribute(_attributeName, '' + value);\n }\n }\n\n return;\n }\n\n var mustUseProperty = propertyInfo.mustUseProperty;\n\n if (mustUseProperty) {\n var propertyName = propertyInfo.propertyName;\n\n if (value === null) {\n var type = propertyInfo.type;\n node[propertyName] = type === BOOLEAN ? false : '';\n } else {\n // Contrary to `setAttribute`, object properties are properly\n // `toString`ed by IE8/9.\n node[propertyName] = value;\n }\n\n return;\n } // The rest are treated as attributes with special cases.\n\n\n var attributeName = propertyInfo.attributeName,\n attributeNamespace = propertyInfo.attributeNamespace;\n\n if (value === null) {\n node.removeAttribute(attributeName);\n } else {\n var _type = propertyInfo.type;\n var attributeValue;\n\n if (_type === BOOLEAN || _type === OVERLOADED_BOOLEAN && value === true) {\n // If attribute type is boolean, we know for sure it won't be an execution sink\n // and we won't require Trusted Type here.\n attributeValue = '';\n } else {\n // `setAttribute` with objects becomes only `[object]` in IE8/9,\n // ('' + value) makes it output the correct toString()-value.\n {\n attributeValue = '' + value;\n }\n\n if (propertyInfo.sanitizeURL) {\n sanitizeURL(attributeValue.toString());\n }\n }\n\n if (attributeNamespace) {\n node.setAttributeNS(attributeNamespace, attributeName, attributeValue);\n } else {\n node.setAttribute(attributeName, attributeValue);\n }\n }\n}\n\nvar BEFORE_SLASH_RE = /^(.*)[\\\\\\/]/;\nfunction describeComponentFrame (name, source, ownerName) {\n var sourceInfo = '';\n\n if (source) {\n var path = source.fileName;\n var fileName = path.replace(BEFORE_SLASH_RE, '');\n\n {\n // In DEV, include code for a common special case:\n // prefer \"folder/index.js\" instead of just \"index.js\".\n if (/^index\\./.test(fileName)) {\n var match = path.match(BEFORE_SLASH_RE);\n\n if (match) {\n var pathBeforeSlash = match[1];\n\n if (pathBeforeSlash) {\n var folderName = pathBeforeSlash.replace(BEFORE_SLASH_RE, '');\n fileName = folderName + '/' + fileName;\n }\n }\n }\n }\n\n sourceInfo = ' (at ' + fileName + ':' + source.lineNumber + ')';\n } else if (ownerName) {\n sourceInfo = ' (created by ' + ownerName + ')';\n }\n\n return '\\n in ' + (name || 'Unknown') + sourceInfo;\n}\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar MAYBE_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== 'object') {\n return null;\n }\n\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n if (typeof maybeIterator === 'function') {\n return maybeIterator;\n }\n\n return null;\n}\n\nvar Uninitialized = -1;\nvar Pending = 0;\nvar Resolved = 1;\nvar Rejected = 2;\nfunction refineResolvedLazyComponent(lazyComponent) {\n return lazyComponent._status === Resolved ? lazyComponent._result : null;\n}\nfunction initializeLazyComponentType(lazyComponent) {\n if (lazyComponent._status === Uninitialized) {\n lazyComponent._status = Pending;\n var ctor = lazyComponent._ctor;\n var thenable = ctor();\n lazyComponent._result = thenable;\n thenable.then(function (moduleObject) {\n if (lazyComponent._status === Pending) {\n var defaultExport = moduleObject.default;\n\n {\n if (defaultExport === undefined) {\n error('lazy: Expected the result of a dynamic import() call. ' + 'Instead received: %s\\n\\nYour code should look like: \\n ' + \"const MyComponent = lazy(() => import('./MyComponent'))\", moduleObject);\n }\n }\n\n lazyComponent._status = Resolved;\n lazyComponent._result = defaultExport;\n }\n }, function (error) {\n if (lazyComponent._status === Pending) {\n lazyComponent._status = Rejected;\n lazyComponent._result = error;\n }\n });\n }\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n var functionName = innerType.displayName || innerType.name || '';\n return outerType.displayName || (functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName);\n}\n\nfunction getComponentName(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n\n {\n if (typeof type.tag === 'number') {\n error('Received an unexpected object in getComponentName(). ' + 'This is likely a bug in React. Please file an issue.');\n }\n }\n\n if (typeof type === 'function') {\n return type.displayName || type.name || null;\n }\n\n if (typeof type === 'string') {\n return type;\n }\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return 'Fragment';\n\n case REACT_PORTAL_TYPE:\n return 'Portal';\n\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n\n case REACT_STRICT_MODE_TYPE:\n return 'StrictMode';\n\n case REACT_SUSPENSE_TYPE:\n return 'Suspense';\n\n case REACT_SUSPENSE_LIST_TYPE:\n return 'SuspenseList';\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n return 'Context.Consumer';\n\n case REACT_PROVIDER_TYPE:\n return 'Context.Provider';\n\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, 'ForwardRef');\n\n case REACT_MEMO_TYPE:\n return getComponentName(type.type);\n\n case REACT_BLOCK_TYPE:\n return getComponentName(type.render);\n\n case REACT_LAZY_TYPE:\n {\n var thenable = type;\n var resolvedThenable = refineResolvedLazyComponent(thenable);\n\n if (resolvedThenable) {\n return getComponentName(resolvedThenable);\n }\n\n break;\n }\n }\n }\n\n return null;\n}\n\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction describeFiber(fiber) {\n switch (fiber.tag) {\n case HostRoot:\n case HostPortal:\n case HostText:\n case Fragment:\n case ContextProvider:\n case ContextConsumer:\n return '';\n\n default:\n var owner = fiber._debugOwner;\n var source = fiber._debugSource;\n var name = getComponentName(fiber.type);\n var ownerName = null;\n\n if (owner) {\n ownerName = getComponentName(owner.type);\n }\n\n return describeComponentFrame(name, source, ownerName);\n }\n}\n\nfunction getStackByFiberInDevAndProd(workInProgress) {\n var info = '';\n var node = workInProgress;\n\n do {\n info += describeFiber(node);\n node = node.return;\n } while (node);\n\n return info;\n}\nvar current = null;\nvar isRendering = false;\nfunction getCurrentFiberOwnerNameInDevOrNull() {\n {\n if (current === null) {\n return null;\n }\n\n var owner = current._debugOwner;\n\n if (owner !== null && typeof owner !== 'undefined') {\n return getComponentName(owner.type);\n }\n }\n\n return null;\n}\nfunction getCurrentFiberStackInDev() {\n {\n if (current === null) {\n return '';\n } // Safe because if current fiber exists, we are reconciling,\n // and it is guaranteed to be the work-in-progress version.\n\n\n return getStackByFiberInDevAndProd(current);\n }\n}\nfunction resetCurrentFiber() {\n {\n ReactDebugCurrentFrame$1.getCurrentStack = null;\n current = null;\n isRendering = false;\n }\n}\nfunction setCurrentFiber(fiber) {\n {\n ReactDebugCurrentFrame$1.getCurrentStack = getCurrentFiberStackInDev;\n current = fiber;\n isRendering = false;\n }\n}\nfunction setIsRendering(rendering) {\n {\n isRendering = rendering;\n }\n}\n\n// Flow does not allow string concatenation of most non-string types. To work\n// around this limitation, we use an opaque type that can only be obtained by\n// passing the value through getToStringValue first.\nfunction toString(value) {\n return '' + value;\n}\nfunction getToStringValue(value) {\n switch (typeof value) {\n case 'boolean':\n case 'number':\n case 'object':\n case 'string':\n case 'undefined':\n return value;\n\n default:\n // function, symbol are assigned as empty strings\n return '';\n }\n}\n\nvar ReactDebugCurrentFrame$2 = null;\nvar ReactControlledValuePropTypes = {\n checkPropTypes: null\n};\n\n{\n ReactDebugCurrentFrame$2 = ReactSharedInternals.ReactDebugCurrentFrame;\n var hasReadOnlyValue = {\n button: true,\n checkbox: true,\n image: true,\n hidden: true,\n radio: true,\n reset: true,\n submit: true\n };\n var propTypes = {\n value: function (props, propName, componentName) {\n if (hasReadOnlyValue[props.type] || props.onChange || props.readOnly || props.disabled || props[propName] == null || enableDeprecatedFlareAPI ) {\n return null;\n }\n\n return new Error('You provided a `value` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultValue`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n },\n checked: function (props, propName, componentName) {\n if (props.onChange || props.readOnly || props.disabled || props[propName] == null || enableDeprecatedFlareAPI ) {\n return null;\n }\n\n return new Error('You provided a `checked` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultChecked`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n }\n };\n /**\n * Provide a linked `value` attribute for controlled forms. You should not use\n * this outside of the ReactDOM controlled form components.\n */\n\n ReactControlledValuePropTypes.checkPropTypes = function (tagName, props) {\n checkPropTypes(propTypes, props, 'prop', tagName, ReactDebugCurrentFrame$2.getStackAddendum);\n };\n}\n\nfunction isCheckable(elem) {\n var type = elem.type;\n var nodeName = elem.nodeName;\n return nodeName && nodeName.toLowerCase() === 'input' && (type === 'checkbox' || type === 'radio');\n}\n\nfunction getTracker(node) {\n return node._valueTracker;\n}\n\nfunction detachTracker(node) {\n node._valueTracker = null;\n}\n\nfunction getValueFromNode(node) {\n var value = '';\n\n if (!node) {\n return value;\n }\n\n if (isCheckable(node)) {\n value = node.checked ? 'true' : 'false';\n } else {\n value = node.value;\n }\n\n return value;\n}\n\nfunction trackValueOnNode(node) {\n var valueField = isCheckable(node) ? 'checked' : 'value';\n var descriptor = Object.getOwnPropertyDescriptor(node.constructor.prototype, valueField);\n var currentValue = '' + node[valueField]; // if someone has already defined a value or Safari, then bail\n // and don't track value will cause over reporting of changes,\n // but it's better then a hard failure\n // (needed for certain tests that spyOn input values and Safari)\n\n if (node.hasOwnProperty(valueField) || typeof descriptor === 'undefined' || typeof descriptor.get !== 'function' || typeof descriptor.set !== 'function') {\n return;\n }\n\n var get = descriptor.get,\n set = descriptor.set;\n Object.defineProperty(node, valueField, {\n configurable: true,\n get: function () {\n return get.call(this);\n },\n set: function (value) {\n currentValue = '' + value;\n set.call(this, value);\n }\n }); // We could've passed this the first time\n // but it triggers a bug in IE11 and Edge 14/15.\n // Calling defineProperty() again should be equivalent.\n // https://github.com/facebook/react/issues/11768\n\n Object.defineProperty(node, valueField, {\n enumerable: descriptor.enumerable\n });\n var tracker = {\n getValue: function () {\n return currentValue;\n },\n setValue: function (value) {\n currentValue = '' + value;\n },\n stopTracking: function () {\n detachTracker(node);\n delete node[valueField];\n }\n };\n return tracker;\n}\n\nfunction track(node) {\n if (getTracker(node)) {\n return;\n } // TODO: Once it's just Fiber we can move this to node._wrapperState\n\n\n node._valueTracker = trackValueOnNode(node);\n}\nfunction updateValueIfChanged(node) {\n if (!node) {\n return false;\n }\n\n var tracker = getTracker(node); // if there is no tracker at this point it's unlikely\n // that trying again will succeed\n\n if (!tracker) {\n return true;\n }\n\n var lastValue = tracker.getValue();\n var nextValue = getValueFromNode(node);\n\n if (nextValue !== lastValue) {\n tracker.setValue(nextValue);\n return true;\n }\n\n return false;\n}\n\nvar didWarnValueDefaultValue = false;\nvar didWarnCheckedDefaultChecked = false;\nvar didWarnControlledToUncontrolled = false;\nvar didWarnUncontrolledToControlled = false;\n\nfunction isControlled(props) {\n var usesChecked = props.type === 'checkbox' || props.type === 'radio';\n return usesChecked ? props.checked != null : props.value != null;\n}\n/**\n * Implements an host component that allows setting these optional\n * props: `checked`, `value`, `defaultChecked`, and `defaultValue`.\n *\n * If `checked` or `value` are not supplied (or null/undefined), user actions\n * that affect the checked state or value will trigger updates to the element.\n *\n * If they are supplied (and not null/undefined), the rendered element will not\n * trigger updates to the element. Instead, the props must change in order for\n * the rendered element to be updated.\n *\n * The rendered element will be initialized as unchecked (or `defaultChecked`)\n * with an empty value (or `defaultValue`).\n *\n * See http://www.w3.org/TR/2012/WD-html5-20121025/the-input-element.html\n */\n\n\nfunction getHostProps(element, props) {\n var node = element;\n var checked = props.checked;\n\n var hostProps = _assign({}, props, {\n defaultChecked: undefined,\n defaultValue: undefined,\n value: undefined,\n checked: checked != null ? checked : node._wrapperState.initialChecked\n });\n\n return hostProps;\n}\nfunction initWrapperState(element, props) {\n {\n ReactControlledValuePropTypes.checkPropTypes('input', props);\n\n if (props.checked !== undefined && props.defaultChecked !== undefined && !didWarnCheckedDefaultChecked) {\n error('%s contains an input of type %s with both checked and defaultChecked props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the checked prop, or the defaultChecked prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', getCurrentFiberOwnerNameInDevOrNull() || 'A component', props.type);\n\n didWarnCheckedDefaultChecked = true;\n }\n\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue) {\n error('%s contains an input of type %s with both value and defaultValue props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', getCurrentFiberOwnerNameInDevOrNull() || 'A component', props.type);\n\n didWarnValueDefaultValue = true;\n }\n }\n\n var node = element;\n var defaultValue = props.defaultValue == null ? '' : props.defaultValue;\n node._wrapperState = {\n initialChecked: props.checked != null ? props.checked : props.defaultChecked,\n initialValue: getToStringValue(props.value != null ? props.value : defaultValue),\n controlled: isControlled(props)\n };\n}\nfunction updateChecked(element, props) {\n var node = element;\n var checked = props.checked;\n\n if (checked != null) {\n setValueForProperty(node, 'checked', checked, false);\n }\n}\nfunction updateWrapper(element, props) {\n var node = element;\n\n {\n var controlled = isControlled(props);\n\n if (!node._wrapperState.controlled && controlled && !didWarnUncontrolledToControlled) {\n error('A component is changing an uncontrolled input of type %s to be controlled. ' + 'Input elements should not switch from uncontrolled to controlled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components', props.type);\n\n didWarnUncontrolledToControlled = true;\n }\n\n if (node._wrapperState.controlled && !controlled && !didWarnControlledToUncontrolled) {\n error('A component is changing a controlled input of type %s to be uncontrolled. ' + 'Input elements should not switch from controlled to uncontrolled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components', props.type);\n\n didWarnControlledToUncontrolled = true;\n }\n }\n\n updateChecked(element, props);\n var value = getToStringValue(props.value);\n var type = props.type;\n\n if (value != null) {\n if (type === 'number') {\n if (value === 0 && node.value === '' || // We explicitly want to coerce to number here if possible.\n // eslint-disable-next-line\n node.value != value) {\n node.value = toString(value);\n }\n } else if (node.value !== toString(value)) {\n node.value = toString(value);\n }\n } else if (type === 'submit' || type === 'reset') {\n // Submit/reset inputs need the attribute removed completely to avoid\n // blank-text buttons.\n node.removeAttribute('value');\n return;\n }\n\n {\n // When syncing the value attribute, the value comes from a cascade of\n // properties:\n // 1. The value React property\n // 2. The defaultValue React property\n // 3. Otherwise there should be no change\n if (props.hasOwnProperty('value')) {\n setDefaultValue(node, props.type, value);\n } else if (props.hasOwnProperty('defaultValue')) {\n setDefaultValue(node, props.type, getToStringValue(props.defaultValue));\n }\n }\n\n {\n // When syncing the checked attribute, it only changes when it needs\n // to be removed, such as transitioning from a checkbox into a text input\n if (props.checked == null && props.defaultChecked != null) {\n node.defaultChecked = !!props.defaultChecked;\n }\n }\n}\nfunction postMountWrapper(element, props, isHydrating) {\n var node = element; // Do not assign value if it is already set. This prevents user text input\n // from being lost during SSR hydration.\n\n if (props.hasOwnProperty('value') || props.hasOwnProperty('defaultValue')) {\n var type = props.type;\n var isButton = type === 'submit' || type === 'reset'; // Avoid setting value attribute on submit/reset inputs as it overrides the\n // default value provided by the browser. See: #12872\n\n if (isButton && (props.value === undefined || props.value === null)) {\n return;\n }\n\n var initialValue = toString(node._wrapperState.initialValue); // Do not assign value if it is already set. This prevents user text input\n // from being lost during SSR hydration.\n\n if (!isHydrating) {\n {\n // When syncing the value attribute, the value property should use\n // the wrapperState._initialValue property. This uses:\n //\n // 1. The value React property when present\n // 2. The defaultValue React property when present\n // 3. An empty string\n if (initialValue !== node.value) {\n node.value = initialValue;\n }\n }\n }\n\n {\n // Otherwise, the value attribute is synchronized to the property,\n // so we assign defaultValue to the same thing as the value property\n // assignment step above.\n node.defaultValue = initialValue;\n }\n } // Normally, we'd just do `node.checked = node.checked` upon initial mount, less this bug\n // this is needed to work around a chrome bug where setting defaultChecked\n // will sometimes influence the value of checked (even after detachment).\n // Reference: https://bugs.chromium.org/p/chromium/issues/detail?id=608416\n // We need to temporarily unset name to avoid disrupting radio button groups.\n\n\n var name = node.name;\n\n if (name !== '') {\n node.name = '';\n }\n\n {\n // When syncing the checked attribute, both the checked property and\n // attribute are assigned at the same time using defaultChecked. This uses:\n //\n // 1. The checked React property when present\n // 2. The defaultChecked React property when present\n // 3. Otherwise, false\n node.defaultChecked = !node.defaultChecked;\n node.defaultChecked = !!node._wrapperState.initialChecked;\n }\n\n if (name !== '') {\n node.name = name;\n }\n}\nfunction restoreControlledState(element, props) {\n var node = element;\n updateWrapper(node, props);\n updateNamedCousins(node, props);\n}\n\nfunction updateNamedCousins(rootNode, props) {\n var name = props.name;\n\n if (props.type === 'radio' && name != null) {\n var queryRoot = rootNode;\n\n while (queryRoot.parentNode) {\n queryRoot = queryRoot.parentNode;\n } // If `rootNode.form` was non-null, then we could try `form.elements`,\n // but that sometimes behaves strangely in IE8. We could also try using\n // `form.getElementsByName`, but that will only return direct children\n // and won't include inputs that use the HTML5 `form=` attribute. Since\n // the input might not even be in a form. It might not even be in the\n // document. Let's just use the local `querySelectorAll` to ensure we don't\n // miss anything.\n\n\n var group = queryRoot.querySelectorAll('input[name=' + JSON.stringify('' + name) + '][type=\"radio\"]');\n\n for (var i = 0; i < group.length; i++) {\n var otherNode = group[i];\n\n if (otherNode === rootNode || otherNode.form !== rootNode.form) {\n continue;\n } // This will throw if radio buttons rendered by different copies of React\n // and the same name are rendered into the same form (same as #1939).\n // That's probably okay; we don't support it just as we don't support\n // mixing React radio buttons with non-React ones.\n\n\n var otherProps = getFiberCurrentPropsFromNode$1(otherNode);\n\n if (!otherProps) {\n {\n throw Error( \"ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported.\" );\n }\n } // We need update the tracked value on the named cousin since the value\n // was changed but the input saw no event or value set\n\n\n updateValueIfChanged(otherNode); // If this is a controlled radio button group, forcing the input that\n // was previously checked to update will cause it to be come re-checked\n // as appropriate.\n\n updateWrapper(otherNode, otherProps);\n }\n }\n} // In Chrome, assigning defaultValue to certain input types triggers input validation.\n// For number inputs, the display value loses trailing decimal points. For email inputs,\n// Chrome raises \"The specified value is not a valid email address\".\n//\n// Here we check to see if the defaultValue has actually changed, avoiding these problems\n// when the user is inputting text\n//\n// https://github.com/facebook/react/issues/7253\n\n\nfunction setDefaultValue(node, type, value) {\n if ( // Focused number inputs synchronize on blur. See ChangeEventPlugin.js\n type !== 'number' || node.ownerDocument.activeElement !== node) {\n if (value == null) {\n node.defaultValue = toString(node._wrapperState.initialValue);\n } else if (node.defaultValue !== toString(value)) {\n node.defaultValue = toString(value);\n }\n }\n}\n\nvar didWarnSelectedSetOnOption = false;\nvar didWarnInvalidChild = false;\n\nfunction flattenChildren(children) {\n var content = ''; // Flatten children. We'll warn if they are invalid\n // during validateProps() which runs for hydration too.\n // Note that this would throw on non-element objects.\n // Elements are stringified (which is normally irrelevant\n // but matters for ).\n\n React.Children.forEach(children, function (child) {\n if (child == null) {\n return;\n }\n\n content += child; // Note: we don't warn about invalid children here.\n // Instead, this is done separately below so that\n // it happens during the hydration codepath too.\n });\n return content;\n}\n/**\n * Implements an