@performant-software/geospatial 2.3.15-beta.7 → 2.3.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs100.js +1 -1
- package/dist/index.cjs100.js.map +1 -1
- package/dist/index.cjs101.js +1 -1
- package/dist/index.cjs101.js.map +1 -1
- package/dist/index.cjs102.js +1 -1
- package/dist/index.cjs102.js.map +1 -1
- package/dist/index.cjs103.js +1 -1
- package/dist/index.cjs103.js.map +1 -1
- package/dist/index.cjs104.js +1 -1
- package/dist/index.cjs104.js.map +1 -1
- package/dist/index.cjs105.js +1 -1
- package/dist/index.cjs105.js.map +1 -1
- package/dist/index.cjs106.js +1 -1
- package/dist/index.cjs106.js.map +1 -1
- package/dist/index.cjs107.js +1 -1
- package/dist/index.cjs107.js.map +1 -1
- package/dist/index.cjs108.js +1 -1
- package/dist/index.cjs108.js.map +1 -1
- package/dist/index.cjs109.js +1 -1
- package/dist/index.cjs109.js.map +1 -1
- package/dist/index.cjs110.js +1 -1
- package/dist/index.cjs110.js.map +1 -1
- package/dist/index.cjs111.js +1 -1
- package/dist/index.cjs111.js.map +1 -1
- package/dist/index.cjs112.js +1 -1
- package/dist/index.cjs112.js.map +1 -1
- package/dist/index.cjs113.js +1 -1
- package/dist/index.cjs113.js.map +1 -1
- package/dist/index.cjs114.js +1 -1
- package/dist/index.cjs114.js.map +1 -1
- package/dist/index.cjs115.js +1 -1
- package/dist/index.cjs115.js.map +1 -1
- package/dist/index.cjs116.js +1 -1
- package/dist/index.cjs116.js.map +1 -1
- package/dist/index.cjs117.js +1 -1
- package/dist/index.cjs117.js.map +1 -1
- package/dist/index.cjs118.js +1 -1
- package/dist/index.cjs118.js.map +1 -1
- package/dist/index.cjs119.js +1 -1
- package/dist/index.cjs119.js.map +1 -1
- package/dist/index.cjs12.js +1 -1
- package/dist/index.cjs120.js +1 -1
- package/dist/index.cjs120.js.map +1 -1
- package/dist/index.cjs121.js +1 -1
- package/dist/index.cjs121.js.map +1 -1
- package/dist/index.cjs122.js +1 -1
- package/dist/index.cjs122.js.map +1 -1
- package/dist/index.cjs123.js +1 -1
- package/dist/index.cjs123.js.map +1 -1
- package/dist/index.cjs124.js +1 -1
- package/dist/index.cjs124.js.map +1 -1
- package/dist/index.cjs125.js +1 -1
- package/dist/index.cjs125.js.map +1 -1
- package/dist/index.cjs126.js +1 -1
- package/dist/index.cjs126.js.map +1 -1
- package/dist/index.cjs127.js +1 -1
- package/dist/index.cjs127.js.map +1 -1
- package/dist/index.cjs128.js +1 -1
- package/dist/index.cjs128.js.map +1 -1
- package/dist/index.cjs129.js +13 -1
- package/dist/index.cjs129.js.map +1 -1
- package/dist/index.cjs130.js +1 -13
- package/dist/index.cjs130.js.map +1 -1
- package/dist/index.cjs131.js +1 -1
- package/dist/index.cjs131.js.map +1 -1
- package/dist/index.cjs132.js +1 -1
- package/dist/index.cjs132.js.map +1 -1
- package/dist/index.cjs133.js +1 -1
- package/dist/index.cjs133.js.map +1 -1
- package/dist/index.cjs134.js +1 -1
- package/dist/index.cjs134.js.map +1 -1
- package/dist/index.cjs135.js +1 -1
- package/dist/index.cjs135.js.map +1 -1
- package/dist/index.cjs136.js +1 -1
- package/dist/index.cjs136.js.map +1 -1
- package/dist/index.cjs137.js +1 -1
- package/dist/index.cjs137.js.map +1 -1
- package/dist/index.cjs138.js +1 -1
- package/dist/index.cjs138.js.map +1 -1
- package/dist/index.cjs139.js +1 -1
- package/dist/index.cjs139.js.map +1 -1
- package/dist/index.cjs14.js +1 -1
- package/dist/index.cjs140.js +1 -1
- package/dist/index.cjs140.js.map +1 -1
- package/dist/index.cjs141.js +1 -1
- package/dist/index.cjs141.js.map +1 -1
- package/dist/index.cjs142.js +1 -1
- package/dist/index.cjs142.js.map +1 -1
- package/dist/index.cjs143.js +1 -1
- package/dist/index.cjs143.js.map +1 -1
- package/dist/index.cjs144.js +1 -1
- package/dist/index.cjs144.js.map +1 -1
- package/dist/index.cjs145.js +1 -1
- package/dist/index.cjs145.js.map +1 -1
- package/dist/index.cjs146.js +1 -1
- package/dist/index.cjs146.js.map +1 -1
- package/dist/index.cjs147.js +1 -1
- package/dist/index.cjs147.js.map +1 -1
- package/dist/index.cjs148.js +1 -1
- package/dist/index.cjs148.js.map +1 -1
- package/dist/index.cjs149.js +1 -1
- package/dist/index.cjs149.js.map +1 -1
- package/dist/index.cjs15.js +1 -1
- package/dist/index.cjs150.js +1 -1
- package/dist/index.cjs150.js.map +1 -1
- package/dist/index.cjs151.js +1 -1
- package/dist/index.cjs151.js.map +1 -1
- package/dist/index.cjs152.js +1 -1
- package/dist/index.cjs152.js.map +1 -1
- package/dist/index.cjs153.js +1 -1
- package/dist/index.cjs153.js.map +1 -1
- package/dist/index.cjs154.js +1 -1
- package/dist/index.cjs154.js.map +1 -1
- package/dist/index.cjs155.js +1 -1
- package/dist/index.cjs155.js.map +1 -1
- package/dist/index.cjs156.js +1 -1
- package/dist/index.cjs156.js.map +1 -1
- package/dist/index.cjs157.js +1 -1
- package/dist/index.cjs157.js.map +1 -1
- package/dist/index.cjs158.js +1 -1
- package/dist/index.cjs158.js.map +1 -1
- package/dist/index.cjs159.js +1 -1
- package/dist/index.cjs159.js.map +1 -1
- package/dist/index.cjs16.js +1 -1
- package/dist/index.cjs160.js +1 -1
- package/dist/index.cjs160.js.map +1 -1
- package/dist/index.cjs161.js +1 -1
- package/dist/index.cjs161.js.map +1 -1
- package/dist/index.cjs162.js +1 -1
- package/dist/index.cjs162.js.map +1 -1
- package/dist/index.cjs163.js +1 -1
- package/dist/index.cjs163.js.map +1 -1
- package/dist/index.cjs164.js +1 -1
- package/dist/index.cjs164.js.map +1 -1
- package/dist/index.cjs165.js +1 -1
- package/dist/index.cjs165.js.map +1 -1
- package/dist/index.cjs166.js +1 -1
- package/dist/index.cjs166.js.map +1 -1
- package/dist/index.cjs167.js +1 -1
- package/dist/index.cjs167.js.map +1 -1
- package/dist/index.cjs168.js +1 -1
- package/dist/index.cjs168.js.map +1 -1
- package/dist/index.cjs169.js +1 -1
- package/dist/index.cjs169.js.map +1 -1
- package/dist/index.cjs17.js +1 -1
- package/dist/index.cjs170.js +1 -1
- package/dist/index.cjs170.js.map +1 -1
- package/dist/index.cjs171.js +1 -1
- package/dist/index.cjs171.js.map +1 -1
- package/dist/index.cjs172.js +1 -1
- package/dist/index.cjs172.js.map +1 -1
- package/dist/index.cjs173.js +1 -1
- package/dist/index.cjs173.js.map +1 -1
- package/dist/index.cjs174.js +1 -1
- package/dist/index.cjs174.js.map +1 -1
- package/dist/index.cjs175.js +1 -1
- package/dist/index.cjs175.js.map +1 -1
- package/dist/index.cjs176.js +1 -1
- package/dist/index.cjs176.js.map +1 -1
- package/dist/index.cjs177.js +1 -1
- package/dist/index.cjs177.js.map +1 -1
- package/dist/index.cjs178.js +1 -1
- package/dist/index.cjs178.js.map +1 -1
- package/dist/index.cjs179.js +1 -1
- package/dist/index.cjs179.js.map +1 -1
- package/dist/index.cjs180.js +1 -1
- package/dist/index.cjs180.js.map +1 -1
- package/dist/index.cjs181.js +1 -1
- package/dist/index.cjs181.js.map +1 -1
- package/dist/index.cjs182.js +1 -1
- package/dist/index.cjs182.js.map +1 -1
- package/dist/index.cjs183.js +1 -1
- package/dist/index.cjs183.js.map +1 -1
- package/dist/index.cjs184.js +1 -1
- package/dist/index.cjs184.js.map +1 -1
- package/dist/index.cjs185.js +1 -1
- package/dist/index.cjs185.js.map +1 -1
- package/dist/index.cjs186.js +1 -1
- package/dist/index.cjs186.js.map +1 -1
- package/dist/index.cjs187.js +1 -1
- package/dist/index.cjs187.js.map +1 -1
- package/dist/index.cjs188.js +1 -1
- package/dist/index.cjs188.js.map +1 -1
- package/dist/index.cjs189.js +1 -1
- package/dist/index.cjs189.js.map +1 -1
- package/dist/index.cjs19.js +1 -1
- package/dist/index.cjs190.js +1 -1
- package/dist/index.cjs190.js.map +1 -1
- package/dist/index.cjs191.js +1 -1
- package/dist/index.cjs191.js.map +1 -1
- package/dist/index.cjs192.js +1 -1
- package/dist/index.cjs192.js.map +1 -1
- package/dist/index.cjs193.js +4 -1
- package/dist/index.cjs193.js.map +1 -1
- package/dist/index.cjs194.js +1 -4
- package/dist/index.cjs194.js.map +1 -1
- package/dist/index.cjs195.js +1 -1
- package/dist/index.cjs195.js.map +1 -1
- package/dist/index.cjs196.js +1 -1
- package/dist/index.cjs196.js.map +1 -1
- package/dist/index.cjs197.js +1 -1
- package/dist/index.cjs197.js.map +1 -1
- package/dist/index.cjs198.js +1 -1
- package/dist/index.cjs198.js.map +1 -1
- package/dist/index.cjs199.js +1 -1
- package/dist/index.cjs199.js.map +1 -1
- package/dist/index.cjs200.js +1 -1
- package/dist/index.cjs200.js.map +1 -1
- package/dist/index.cjs201.js +1 -1
- package/dist/index.cjs201.js.map +1 -1
- package/dist/index.cjs202.js +1 -1
- package/dist/index.cjs202.js.map +1 -1
- package/dist/index.cjs203.js +1 -1
- package/dist/index.cjs203.js.map +1 -1
- package/dist/index.cjs204.js +1 -1
- package/dist/index.cjs204.js.map +1 -1
- package/dist/index.cjs205.js +1 -1
- package/dist/index.cjs205.js.map +1 -1
- package/dist/index.cjs206.js +1 -1
- package/dist/index.cjs206.js.map +1 -1
- package/dist/index.cjs207.js +1 -1
- package/dist/index.cjs207.js.map +1 -1
- package/dist/index.cjs208.js +1 -1
- package/dist/index.cjs208.js.map +1 -1
- package/dist/index.cjs209.js +1 -1
- package/dist/index.cjs209.js.map +1 -1
- package/dist/index.cjs21.js +1 -1
- package/dist/index.cjs210.js +1 -1
- package/dist/index.cjs210.js.map +1 -1
- package/dist/index.cjs211.js +1 -1
- package/dist/index.cjs211.js.map +1 -1
- package/dist/index.cjs212.js +1 -1
- package/dist/index.cjs212.js.map +1 -1
- package/dist/index.cjs213.js +1 -1
- package/dist/index.cjs213.js.map +1 -1
- package/dist/index.cjs214.js +1 -1
- package/dist/index.cjs214.js.map +1 -1
- package/dist/index.cjs215.js +1 -1
- package/dist/index.cjs215.js.map +1 -1
- package/dist/index.cjs216.js +1 -1
- package/dist/index.cjs216.js.map +1 -1
- package/dist/index.cjs217.js +1 -1
- package/dist/index.cjs217.js.map +1 -1
- package/dist/index.cjs218.js +1 -1
- package/dist/index.cjs218.js.map +1 -1
- package/dist/index.cjs219.js +1 -1
- package/dist/index.cjs219.js.map +1 -1
- package/dist/index.cjs22.js +1 -1
- package/dist/index.cjs220.js +1 -1
- package/dist/index.cjs220.js.map +1 -1
- package/dist/index.cjs221.js +1 -1
- package/dist/index.cjs221.js.map +1 -1
- package/dist/index.cjs222.js +1 -1
- package/dist/index.cjs222.js.map +1 -1
- package/dist/index.cjs223.js +1 -1
- package/dist/index.cjs223.js.map +1 -1
- package/dist/index.cjs224.js +1 -1
- package/dist/index.cjs224.js.map +1 -1
- package/dist/index.cjs225.js +1 -1
- package/dist/index.cjs225.js.map +1 -1
- package/dist/index.cjs226.js +1 -1
- package/dist/index.cjs226.js.map +1 -1
- package/dist/index.cjs227.js +1 -1
- package/dist/index.cjs227.js.map +1 -1
- package/dist/index.cjs228.js +1 -1
- package/dist/index.cjs228.js.map +1 -1
- package/dist/index.cjs229.js +1 -1
- package/dist/index.cjs229.js.map +1 -1
- package/dist/index.cjs23.js +1 -1
- package/dist/index.cjs230.js +1 -1
- package/dist/index.cjs230.js.map +1 -1
- package/dist/index.cjs231.js +1 -1
- package/dist/index.cjs231.js.map +1 -1
- package/dist/index.cjs232.js +1 -1
- package/dist/index.cjs232.js.map +1 -1
- package/dist/index.cjs233.js +1 -1
- package/dist/index.cjs233.js.map +1 -1
- package/dist/index.cjs234.js +1 -1
- package/dist/index.cjs234.js.map +1 -1
- package/dist/index.cjs235.js +1 -1
- package/dist/index.cjs235.js.map +1 -1
- package/dist/index.cjs236.js +1 -1
- package/dist/index.cjs236.js.map +1 -1
- package/dist/index.cjs237.js +1 -1
- package/dist/index.cjs237.js.map +1 -1
- package/dist/index.cjs238.js +1 -1
- package/dist/index.cjs238.js.map +1 -1
- package/dist/index.cjs239.js +1 -1
- package/dist/index.cjs239.js.map +1 -1
- package/dist/index.cjs240.js +1 -1
- package/dist/index.cjs240.js.map +1 -1
- package/dist/index.cjs241.js +1 -1
- package/dist/index.cjs241.js.map +1 -1
- package/dist/index.cjs242.js +1 -1
- package/dist/index.cjs242.js.map +1 -1
- package/dist/index.cjs243.js +1 -1
- package/dist/index.cjs243.js.map +1 -1
- package/dist/index.cjs244.js +1 -1
- package/dist/index.cjs244.js.map +1 -1
- package/dist/index.cjs245.js +1 -1
- package/dist/index.cjs245.js.map +1 -1
- package/dist/index.cjs246.js +1 -1
- package/dist/index.cjs246.js.map +1 -1
- package/dist/index.cjs247.js +1 -1
- package/dist/index.cjs247.js.map +1 -1
- package/dist/index.cjs248.js +1 -1
- package/dist/index.cjs248.js.map +1 -1
- package/dist/index.cjs249.js +1 -1
- package/dist/index.cjs249.js.map +1 -1
- package/dist/index.cjs25.js +1 -1
- package/dist/index.cjs250.js +1 -1
- package/dist/index.cjs250.js.map +1 -1
- package/dist/index.cjs251.js +1 -1
- package/dist/index.cjs251.js.map +1 -1
- package/dist/index.cjs252.js +1 -1
- package/dist/index.cjs252.js.map +1 -1
- package/dist/index.cjs253.js +1 -1
- package/dist/index.cjs253.js.map +1 -1
- package/dist/index.cjs254.js +1 -1
- package/dist/index.cjs254.js.map +1 -1
- package/dist/index.cjs255.js +1 -1
- package/dist/index.cjs255.js.map +1 -1
- package/dist/index.cjs256.js +1 -1
- package/dist/index.cjs256.js.map +1 -1
- package/dist/index.cjs257.js +1 -1
- package/dist/index.cjs257.js.map +1 -1
- package/dist/index.cjs258.js +1 -1
- package/dist/index.cjs258.js.map +1 -1
- package/dist/index.cjs259.js +1 -1
- package/dist/index.cjs259.js.map +1 -1
- package/dist/index.cjs26.js +1 -1
- package/dist/index.cjs260.js +1 -1
- package/dist/index.cjs260.js.map +1 -1
- package/dist/index.cjs261.js +1 -1
- package/dist/index.cjs261.js.map +1 -1
- package/dist/index.cjs27.js +1 -1
- package/dist/index.cjs29.js +1 -1
- package/dist/index.cjs30.js +1 -1
- package/dist/index.cjs31.js +1 -1
- package/dist/index.cjs32.js +1 -1
- package/dist/index.cjs33.js +1 -1
- package/dist/index.cjs34.js +1 -1
- package/dist/index.cjs35.js +1 -1
- package/dist/index.cjs37.js +1 -1
- package/dist/index.cjs38.js +1 -1
- package/dist/index.cjs39.js +1 -1
- package/dist/index.cjs40.js +1 -1
- package/dist/index.cjs42.js +1 -1
- package/dist/index.cjs43.js +1 -1
- package/dist/index.cjs44.js +1 -1
- package/dist/index.cjs45.js +1 -1
- package/dist/index.cjs46.js +1 -1
- package/dist/index.cjs47.js +1 -1
- package/dist/index.cjs48.js +1 -1
- package/dist/index.cjs49.js +1 -1
- package/dist/index.cjs5.js +1 -1
- package/dist/index.cjs5.js.map +1 -1
- package/dist/index.cjs50.js +1 -1
- package/dist/index.cjs52.js +1 -1
- package/dist/index.cjs54.js +1 -1
- package/dist/index.cjs54.js.map +1 -1
- package/dist/index.cjs55.js +440 -1
- package/dist/index.cjs55.js.map +1 -1
- package/dist/index.cjs56.js +1 -440
- package/dist/index.cjs56.js.map +1 -1
- package/dist/index.cjs57.js +1 -1
- package/dist/index.cjs57.js.map +1 -1
- package/dist/index.cjs58.js +1 -1
- package/dist/index.cjs58.js.map +1 -1
- package/dist/index.cjs59.js +1 -1
- package/dist/index.cjs59.js.map +1 -1
- package/dist/index.cjs60.js +9 -1
- package/dist/index.cjs60.js.map +1 -1
- package/dist/index.cjs61.js +13 -3
- package/dist/index.cjs61.js.map +1 -1
- package/dist/index.cjs62.js +1 -19
- package/dist/index.cjs62.js.map +1 -1
- package/dist/index.cjs63.js +1 -1
- package/dist/index.cjs64.js +1 -1
- package/dist/index.cjs64.js.map +1 -1
- package/dist/index.cjs65.js +1 -1
- package/dist/index.cjs65.js.map +1 -1
- package/dist/index.cjs66.js +1 -1
- package/dist/index.cjs66.js.map +1 -1
- package/dist/index.cjs67.js +1 -1
- package/dist/index.cjs67.js.map +1 -1
- package/dist/index.cjs68.js +1 -1
- package/dist/index.cjs68.js.map +1 -1
- package/dist/index.cjs69.js +1 -1
- package/dist/index.cjs69.js.map +1 -1
- package/dist/index.cjs70.js +1 -1
- package/dist/index.cjs70.js.map +1 -1
- package/dist/index.cjs71.js +1 -1
- package/dist/index.cjs71.js.map +1 -1
- package/dist/index.cjs72.js +1 -1
- package/dist/index.cjs72.js.map +1 -1
- package/dist/index.cjs73.js +1 -1
- package/dist/index.cjs73.js.map +1 -1
- package/dist/index.cjs74.js +1 -1
- package/dist/index.cjs74.js.map +1 -1
- package/dist/index.cjs75.js +1 -1
- package/dist/index.cjs75.js.map +1 -1
- package/dist/index.cjs77.js +1 -1
- package/dist/index.cjs77.js.map +1 -1
- package/dist/index.cjs78.js +1 -1
- package/dist/index.cjs78.js.map +1 -1
- package/dist/index.cjs79.js +1 -1
- package/dist/index.cjs79.js.map +1 -1
- package/dist/index.cjs8.js +1 -1
- package/dist/index.cjs8.js.map +1 -1
- package/dist/index.cjs80.js +1 -1
- package/dist/index.cjs80.js.map +1 -1
- package/dist/index.cjs81.js +1 -1
- package/dist/index.cjs81.js.map +1 -1
- package/dist/index.cjs82.js +1 -1
- package/dist/index.cjs82.js.map +1 -1
- package/dist/index.cjs83.js +1 -1
- package/dist/index.cjs83.js.map +1 -1
- package/dist/index.cjs84.js +1 -1
- package/dist/index.cjs84.js.map +1 -1
- package/dist/index.cjs85.js +1 -1
- package/dist/index.cjs85.js.map +1 -1
- package/dist/index.cjs86.js +1 -1
- package/dist/index.cjs86.js.map +1 -1
- package/dist/index.cjs87.js +1 -1
- package/dist/index.cjs87.js.map +1 -1
- package/dist/index.cjs88.js +1 -1
- package/dist/index.cjs88.js.map +1 -1
- package/dist/index.cjs89.js +1 -1
- package/dist/index.cjs89.js.map +1 -1
- package/dist/index.cjs90.js +1 -1
- package/dist/index.cjs90.js.map +1 -1
- package/dist/index.cjs91.js +1 -1
- package/dist/index.cjs91.js.map +1 -1
- package/dist/index.cjs92.js +1 -1
- package/dist/index.cjs92.js.map +1 -1
- package/dist/index.cjs93.js +1 -1
- package/dist/index.cjs93.js.map +1 -1
- package/dist/index.cjs94.js +1 -1
- package/dist/index.cjs94.js.map +1 -1
- package/dist/index.cjs95.js +1 -1
- package/dist/index.cjs95.js.map +1 -1
- package/dist/index.cjs96.js +1 -1
- package/dist/index.cjs96.js.map +1 -1
- package/dist/index.cjs97.js +1 -1
- package/dist/index.cjs97.js.map +1 -1
- package/dist/index.cjs98.js +1 -1
- package/dist/index.cjs98.js.map +1 -1
- package/dist/index.cjs99.js +1 -1
- package/dist/index.cjs99.js.map +1 -1
- package/dist/index.es100.js +9 -5
- package/dist/index.es100.js.map +1 -1
- package/dist/index.es101.js +11 -9
- package/dist/index.es101.js.map +1 -1
- package/dist/index.es102.js +12 -11
- package/dist/index.es102.js.map +1 -1
- package/dist/index.es103.js +83 -10
- package/dist/index.es103.js.map +1 -1
- package/dist/index.es104.js +3 -86
- package/dist/index.es104.js.map +1 -1
- package/dist/index.es105.js +15 -3
- package/dist/index.es105.js.map +1 -1
- package/dist/index.es106.js +9 -12
- package/dist/index.es106.js.map +1 -1
- package/dist/index.es107.js +5 -10
- package/dist/index.es107.js.map +1 -1
- package/dist/index.es108.js +6 -6
- package/dist/index.es108.js.map +1 -1
- package/dist/index.es109.js +6 -6
- package/dist/index.es109.js.map +1 -1
- package/dist/index.es110.js +7 -6
- package/dist/index.es110.js.map +1 -1
- package/dist/index.es111.js +4 -8
- package/dist/index.es111.js.map +1 -1
- package/dist/index.es112.js +2 -2
- package/dist/index.es112.js.map +1 -1
- package/dist/index.es113.js +2 -2
- package/dist/index.es113.js.map +1 -1
- package/dist/index.es114.js +7 -4
- package/dist/index.es114.js.map +1 -1
- package/dist/index.es115.js +6 -6
- package/dist/index.es115.js.map +1 -1
- package/dist/index.es116.js +3 -6
- package/dist/index.es116.js.map +1 -1
- package/dist/index.es117.js +7 -3
- package/dist/index.es117.js.map +1 -1
- package/dist/index.es118.js +12 -7
- package/dist/index.es118.js.map +1 -1
- package/dist/index.es119.js +9 -11
- package/dist/index.es119.js.map +1 -1
- package/dist/index.es12.js +4 -4
- package/dist/index.es120.js +3 -10
- package/dist/index.es120.js.map +1 -1
- package/dist/index.es121.js +5 -3
- package/dist/index.es121.js.map +1 -1
- package/dist/index.es122.js +2 -5
- package/dist/index.es122.js.map +1 -1
- package/dist/index.es123.js +7 -2
- package/dist/index.es123.js.map +1 -1
- package/dist/index.es124.js +4 -4
- package/dist/index.es124.js.map +1 -1
- package/dist/index.es125.js +6 -6
- package/dist/index.es125.js.map +1 -1
- package/dist/index.es126.js +8 -7
- package/dist/index.es126.js.map +1 -1
- package/dist/index.es127.js +3 -8
- package/dist/index.es127.js.map +1 -1
- package/dist/index.es128.js +4 -4
- package/dist/index.es128.js.map +1 -1
- package/dist/index.es129.js +58 -4
- package/dist/index.es129.js.map +1 -1
- package/dist/index.es130.js +12 -56
- package/dist/index.es130.js.map +1 -1
- package/dist/index.es131.js +5 -13
- package/dist/index.es131.js.map +1 -1
- package/dist/index.es132.js +5 -5
- package/dist/index.es132.js.map +1 -1
- package/dist/index.es133.js +8 -5
- package/dist/index.es133.js.map +1 -1
- package/dist/index.es134.js +15 -7
- package/dist/index.es134.js.map +1 -1
- package/dist/index.es135.js +13 -16
- package/dist/index.es135.js.map +1 -1
- package/dist/index.es136.js +4 -13
- package/dist/index.es136.js.map +1 -1
- package/dist/index.es137.js +5 -4
- package/dist/index.es137.js.map +1 -1
- package/dist/index.es138.js +5 -2
- package/dist/index.es138.js.map +1 -1
- package/dist/index.es139.js +4 -6
- package/dist/index.es139.js.map +1 -1
- package/dist/index.es14.js +2 -2
- package/dist/index.es140.js +4 -4
- package/dist/index.es140.js.map +1 -1
- package/dist/index.es141.js +8 -6
- package/dist/index.es141.js.map +1 -1
- package/dist/index.es142.js +3 -9
- package/dist/index.es142.js.map +1 -1
- package/dist/index.es143.js +3 -3
- package/dist/index.es143.js.map +1 -1
- package/dist/index.es144.js +11 -3
- package/dist/index.es144.js.map +1 -1
- package/dist/index.es145.js +5 -11
- package/dist/index.es145.js.map +1 -1
- package/dist/index.es146.js +4 -5
- package/dist/index.es146.js.map +1 -1
- package/dist/index.es147.js +9 -4
- package/dist/index.es147.js.map +1 -1
- package/dist/index.es148.js +5 -8
- package/dist/index.es148.js.map +1 -1
- package/dist/index.es149.js +16 -5
- package/dist/index.es149.js.map +1 -1
- package/dist/index.es15.js +8 -8
- package/dist/index.es150.js +10 -15
- package/dist/index.es150.js.map +1 -1
- package/dist/index.es151.js +3 -12
- package/dist/index.es151.js.map +1 -1
- package/dist/index.es152.js +3 -3
- package/dist/index.es152.js.map +1 -1
- package/dist/index.es153.js +9 -3
- package/dist/index.es153.js.map +1 -1
- package/dist/index.es154.js +6 -8
- package/dist/index.es154.js.map +1 -1
- package/dist/index.es155.js +12 -6
- package/dist/index.es155.js.map +1 -1
- package/dist/index.es156.js +11 -11
- package/dist/index.es156.js.map +1 -1
- package/dist/index.es157.js +6 -12
- package/dist/index.es157.js.map +1 -1
- package/dist/index.es158.js +5 -6
- package/dist/index.es158.js.map +1 -1
- package/dist/index.es159.js +5 -5
- package/dist/index.es159.js.map +1 -1
- package/dist/index.es16.js +1 -1
- package/dist/index.es160.js +16 -5
- package/dist/index.es160.js.map +1 -1
- package/dist/index.es161.js +12 -12
- package/dist/index.es161.js.map +1 -1
- package/dist/index.es162.js +4 -16
- package/dist/index.es162.js.map +1 -1
- package/dist/index.es163.js +16 -4
- package/dist/index.es163.js.map +1 -1
- package/dist/index.es164.js +22 -16
- package/dist/index.es164.js.map +1 -1
- package/dist/index.es165.js +6 -23
- package/dist/index.es165.js.map +1 -1
- package/dist/index.es166.js +4 -5
- package/dist/index.es166.js.map +1 -1
- package/dist/index.es167.js +5 -4
- package/dist/index.es167.js.map +1 -1
- package/dist/index.es168.js +5 -6
- package/dist/index.es168.js.map +1 -1
- package/dist/index.es169.js +12 -5
- package/dist/index.es169.js.map +1 -1
- package/dist/index.es17.js +3 -3
- package/dist/index.es170.js +5 -11
- package/dist/index.es170.js.map +1 -1
- package/dist/index.es171.js +4 -5
- package/dist/index.es171.js.map +1 -1
- package/dist/index.es172.js +4 -4
- package/dist/index.es172.js.map +1 -1
- package/dist/index.es173.js +4 -4
- package/dist/index.es173.js.map +1 -1
- package/dist/index.es174.js +4 -4
- package/dist/index.es174.js.map +1 -1
- package/dist/index.es175.js +4 -4
- package/dist/index.es175.js.map +1 -1
- package/dist/index.es176.js +4 -4
- package/dist/index.es176.js.map +1 -1
- package/dist/index.es177.js +12 -4
- package/dist/index.es177.js.map +1 -1
- package/dist/index.es178.js +13 -11
- package/dist/index.es178.js.map +1 -1
- package/dist/index.es179.js +8 -14
- package/dist/index.es179.js.map +1 -1
- package/dist/index.es180.js +6 -8
- package/dist/index.es180.js.map +1 -1
- package/dist/index.es181.js +5 -5
- package/dist/index.es181.js.map +1 -1
- package/dist/index.es182.js +8 -6
- package/dist/index.es182.js.map +1 -1
- package/dist/index.es183.js +320 -8
- package/dist/index.es183.js.map +1 -1
- package/dist/index.es184.js +71 -317
- package/dist/index.es184.js.map +1 -1
- package/dist/index.es185.js +3 -75
- package/dist/index.es185.js.map +1 -1
- package/dist/index.es186.js +16 -3
- package/dist/index.es186.js.map +1 -1
- package/dist/index.es187.js +10 -15
- package/dist/index.es187.js.map +1 -1
- package/dist/index.es188.js +29 -9
- package/dist/index.es188.js.map +1 -1
- package/dist/index.es189.js +4 -30
- package/dist/index.es189.js.map +1 -1
- package/dist/index.es19.js +2 -2
- package/dist/index.es190.js +2 -5
- package/dist/index.es190.js.map +1 -1
- package/dist/index.es191.js +8 -2
- package/dist/index.es191.js.map +1 -1
- package/dist/index.es192.js +147 -7
- package/dist/index.es192.js.map +1 -1
- package/dist/index.es193.js +12188 -139
- package/dist/index.es193.js.map +1 -1
- package/dist/index.es194.js +3 -12199
- package/dist/index.es194.js.map +1 -1
- package/dist/index.es195.js +2 -2
- package/dist/index.es195.js.map +1 -1
- package/dist/index.es196.js +38 -3
- package/dist/index.es196.js.map +1 -1
- package/dist/index.es197.js +3 -38
- package/dist/index.es197.js.map +1 -1
- package/dist/index.es198.js +25 -3
- package/dist/index.es198.js.map +1 -1
- package/dist/index.es199.js +2 -25
- package/dist/index.es199.js.map +1 -1
- package/dist/index.es200.js +2 -1
- package/dist/index.es200.js.map +1 -1
- package/dist/index.es201.js +1 -2
- package/dist/index.es201.js.map +1 -1
- package/dist/index.es202.js +34 -2
- package/dist/index.es202.js.map +1 -1
- package/dist/index.es203.js +13 -32
- package/dist/index.es203.js.map +1 -1
- package/dist/index.es204.js +12 -11
- package/dist/index.es204.js.map +1 -1
- package/dist/index.es205.js +8 -13
- package/dist/index.es205.js.map +1 -1
- package/dist/index.es206.js +7 -8
- package/dist/index.es206.js.map +1 -1
- package/dist/index.es207.js +4 -7
- package/dist/index.es207.js.map +1 -1
- package/dist/index.es208.js +4 -5
- package/dist/index.es208.js.map +1 -1
- package/dist/index.es209.js +3 -4
- package/dist/index.es209.js.map +1 -1
- package/dist/index.es21.js +2 -2
- package/dist/index.es210.js +2 -2
- package/dist/index.es210.js.map +1 -1
- package/dist/index.es211.js +9 -3
- package/dist/index.es211.js.map +1 -1
- package/dist/index.es212.js +21 -8
- package/dist/index.es212.js.map +1 -1
- package/dist/index.es213.js +20 -20
- package/dist/index.es213.js.map +1 -1
- package/dist/index.es214.js +12 -20
- package/dist/index.es214.js.map +1 -1
- package/dist/index.es215.js +15 -12
- package/dist/index.es215.js.map +1 -1
- package/dist/index.es216.js +5 -16
- package/dist/index.es216.js.map +1 -1
- package/dist/index.es217.js +8 -5
- package/dist/index.es217.js.map +1 -1
- package/dist/index.es218.js +6 -8
- package/dist/index.es218.js.map +1 -1
- package/dist/index.es219.js +21 -6
- package/dist/index.es219.js.map +1 -1
- package/dist/index.es22.js +2 -2
- package/dist/index.es220.js +8 -20
- package/dist/index.es220.js.map +1 -1
- package/dist/index.es221.js +9 -10
- package/dist/index.es221.js.map +1 -1
- package/dist/index.es222.js +4 -9
- package/dist/index.es222.js.map +1 -1
- package/dist/index.es223.js +11 -4
- package/dist/index.es223.js.map +1 -1
- package/dist/index.es224.js +8 -10
- package/dist/index.es224.js.map +1 -1
- package/dist/index.es225.js +22 -8
- package/dist/index.es225.js.map +1 -1
- package/dist/index.es226.js +11 -22
- package/dist/index.es226.js.map +1 -1
- package/dist/index.es227.js +16 -9
- package/dist/index.es227.js.map +1 -1
- package/dist/index.es228.js +4 -19
- package/dist/index.es228.js.map +1 -1
- package/dist/index.es229.js +18 -4
- package/dist/index.es229.js.map +1 -1
- package/dist/index.es23.js +2 -2
- package/dist/index.es230.js +10 -16
- package/dist/index.es230.js.map +1 -1
- package/dist/index.es231.js +3 -11
- package/dist/index.es231.js.map +1 -1
- package/dist/index.es232.js +4 -3
- package/dist/index.es232.js.map +1 -1
- package/dist/index.es233.js +45 -4
- package/dist/index.es233.js.map +1 -1
- package/dist/index.es234.js +22 -45
- package/dist/index.es234.js.map +1 -1
- package/dist/index.es235.js +3 -23
- package/dist/index.es235.js.map +1 -1
- package/dist/index.es236.js +4 -6
- package/dist/index.es236.js.map +1 -1
- package/dist/index.es237.js +6 -4
- package/dist/index.es237.js.map +1 -1
- package/dist/index.es238.js +25 -3
- package/dist/index.es238.js.map +1 -1
- package/dist/index.es239.js +15 -23
- package/dist/index.es239.js.map +1 -1
- package/dist/index.es240.js +29 -15
- package/dist/index.es240.js.map +1 -1
- package/dist/index.es241.js +20 -29
- package/dist/index.es241.js.map +1 -1
- package/dist/index.es242.js +75 -21
- package/dist/index.es242.js.map +1 -1
- package/dist/index.es243.js +18 -73
- package/dist/index.es243.js.map +1 -1
- package/dist/index.es244.js +47 -19
- package/dist/index.es244.js.map +1 -1
- package/dist/index.es245.js +48 -42
- package/dist/index.es245.js.map +1 -1
- package/dist/index.es246.js +8 -54
- package/dist/index.es246.js.map +1 -1
- package/dist/index.es247.js +20 -8
- package/dist/index.es247.js.map +1 -1
- package/dist/index.es248.js +63 -18
- package/dist/index.es248.js.map +1 -1
- package/dist/index.es249.js +41 -64
- package/dist/index.es249.js.map +1 -1
- package/dist/index.es25.js +1 -1
- package/dist/index.es250.js +64 -41
- package/dist/index.es250.js.map +1 -1
- package/dist/index.es251.js +7 -64
- package/dist/index.es251.js.map +1 -1
- package/dist/index.es252.js +3 -8
- package/dist/index.es252.js.map +1 -1
- package/dist/index.es253.js +12 -3
- package/dist/index.es253.js.map +1 -1
- package/dist/index.es254.js +58 -11
- package/dist/index.es254.js.map +1 -1
- package/dist/index.es255.js +54 -57
- package/dist/index.es255.js.map +1 -1
- package/dist/index.es256.js +2 -56
- package/dist/index.es256.js.map +1 -1
- package/dist/index.es257.js +15 -2
- package/dist/index.es257.js.map +1 -1
- package/dist/index.es258.js +4 -15
- package/dist/index.es258.js.map +1 -1
- package/dist/index.es259.js +70 -4
- package/dist/index.es259.js.map +1 -1
- package/dist/index.es26.js +1 -1
- package/dist/index.es260.js +3 -70
- package/dist/index.es260.js.map +1 -1
- package/dist/index.es261.js +24 -3
- package/dist/index.es261.js.map +1 -1
- package/dist/index.es27.js +2 -2
- package/dist/index.es29.js +2 -2
- package/dist/index.es30.js +2 -2
- package/dist/index.es31.js +2 -2
- package/dist/index.es32.js +1 -1
- package/dist/index.es33.js +1 -1
- package/dist/index.es34.js +2 -2
- package/dist/index.es35.js +2 -2
- package/dist/index.es37.js +2 -2
- package/dist/index.es38.js +2 -2
- package/dist/index.es39.js +2 -2
- package/dist/index.es40.js +1 -1
- package/dist/index.es42.js +1 -1
- package/dist/index.es43.js +4 -4
- package/dist/index.es44.js +5 -5
- package/dist/index.es45.js +5 -5
- package/dist/index.es46.js +1 -1
- package/dist/index.es47.js +3 -3
- package/dist/index.es48.js +4 -4
- package/dist/index.es49.js +2 -2
- package/dist/index.es5.js +7 -7
- package/dist/index.es5.js.map +1 -1
- package/dist/index.es50.js +2 -2
- package/dist/index.es52.js +4 -4
- package/dist/index.es54.js +86 -1
- package/dist/index.es54.js.map +1 -1
- package/dist/index.es55.js +13817 -71
- package/dist/index.es55.js.map +1 -1
- package/dist/index.es56.js +9 -13830
- package/dist/index.es56.js.map +1 -1
- package/dist/index.es57.js +9 -8
- package/dist/index.es57.js.map +1 -1
- package/dist/index.es58.js +84 -9
- package/dist/index.es58.js.map +1 -1
- package/dist/index.es59.js +2 -85
- package/dist/index.es59.js.map +1 -1
- package/dist/index.es60.js +30 -2
- package/dist/index.es60.js.map +1 -1
- package/dist/index.es61.js +593 -21
- package/dist/index.es61.js.map +1 -1
- package/dist/index.es62.js +5 -601
- package/dist/index.es62.js.map +1 -1
- package/dist/index.es63.js +2 -6
- package/dist/index.es63.js.map +1 -1
- package/dist/index.es64.js +107 -2
- package/dist/index.es64.js.map +1 -1
- package/dist/index.es65.js +10 -2
- package/dist/index.es65.js.map +1 -1
- package/dist/index.es66.js +2 -55
- package/dist/index.es66.js.map +1 -1
- package/dist/index.es67.js +56 -47
- package/dist/index.es67.js.map +1 -1
- package/dist/index.es68.js +46 -37
- package/dist/index.es68.js.map +1 -1
- package/dist/index.es69.js +38 -11
- package/dist/index.es69.js.map +1 -1
- package/dist/index.es70.js +10 -13
- package/dist/index.es70.js.map +1 -1
- package/dist/index.es71.js +14 -29
- package/dist/index.es71.js.map +1 -1
- package/dist/index.es72.js +29 -14
- package/dist/index.es72.js.map +1 -1
- package/dist/index.es73.js +13 -12
- package/dist/index.es73.js.map +1 -1
- package/dist/index.es74.js +13 -12
- package/dist/index.es74.js.map +1 -1
- package/dist/index.es75.js +11 -2
- package/dist/index.es75.js.map +1 -1
- package/dist/index.es76.js +2 -2
- package/dist/index.es77.js +2 -28
- package/dist/index.es77.js.map +1 -1
- package/dist/index.es78.js +26 -49
- package/dist/index.es78.js.map +1 -1
- package/dist/index.es79.js +44 -58
- package/dist/index.es79.js.map +1 -1
- package/dist/index.es8.js +11 -12
- package/dist/index.es8.js.map +1 -1
- package/dist/index.es80.js +60 -102
- package/dist/index.es80.js.map +1 -1
- package/dist/index.es81.js +273 -10
- package/dist/index.es81.js.map +1 -1
- package/dist/index.es82.js +15 -273
- package/dist/index.es82.js.map +1 -1
- package/dist/index.es83.js +18 -14
- package/dist/index.es83.js.map +1 -1
- package/dist/index.es84.js +4 -18
- package/dist/index.es84.js.map +1 -1
- package/dist/index.es85.js +3 -4
- package/dist/index.es85.js.map +1 -1
- package/dist/index.es86.js +3 -3
- package/dist/index.es86.js.map +1 -1
- package/dist/index.es87.js +4 -3
- package/dist/index.es87.js.map +1 -1
- package/dist/index.es88.js +3 -4
- package/dist/index.es88.js.map +1 -1
- package/dist/index.es89.js +3 -4
- package/dist/index.es89.js.map +1 -1
- package/dist/index.es90.js +3 -3
- package/dist/index.es90.js.map +1 -1
- package/dist/index.es91.js +3 -3
- package/dist/index.es91.js.map +1 -1
- package/dist/index.es92.js +3 -3
- package/dist/index.es92.js.map +1 -1
- package/dist/index.es93.js +3 -3
- package/dist/index.es93.js.map +1 -1
- package/dist/index.es94.js +3 -3
- package/dist/index.es94.js.map +1 -1
- package/dist/index.es95.js +3 -3
- package/dist/index.es95.js.map +1 -1
- package/dist/index.es96.js +10 -3
- package/dist/index.es96.js.map +1 -1
- package/dist/index.es97.js +4 -10
- package/dist/index.es97.js.map +1 -1
- package/dist/index.es98.js +6 -4
- package/dist/index.es98.js.map +1 -1
- package/dist/index.es99.js +5 -5
- package/dist/index.es99.js.map +1 -1
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/src/components/LayerMenu.js +1 -2
- package/src/components/MapDraw.css +1 -0
- package/src/components/MapDraw.js +0 -2
- package/types/components/LayerMenu.js.flow +1 -2
- package/types/components/MapDraw.js.flow +0 -2
- package/build/index.js +0 -2
- package/build/index.js.map +0 -1
- package/build/main.css +0 -127
- package/dist/index.cjs262.js +0 -2
- package/dist/index.cjs262.js.map +0 -1
- package/dist/index.es262.js +0 -28
- package/dist/index.es262.js.map +0 -1
- package/types/components/LocationMarker.js.flow +0 -82
package/dist/index.es56.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es56.js","sources":["../../../node_modules/@allmaps/maplibre/dist/bundled/allmaps-maplibre-4.0.es.js"],"sourcesContent":["function mt(r, e) {\n const t = e[0], i = e[1];\n return [\n r[0] * t + r[2] * i + r[4],\n r[1] * t + r[3] * i + r[5]\n ];\n}\nfunction $o() {\n return [1, 0, 0, 1, 0, 0];\n}\nfunction qo(r, e) {\n const t = r[0], i = r[1], n = r[2], s = r[3], o = r[4], a = r[5], l = e[0], c = e[1], h = e[2], u = e[3], g = e[4], y = e[5];\n return [\n t * l + n * c,\n i * l + s * c,\n t * h + n * u,\n i * h + s * u,\n t * g + n * y + o,\n i * g + s * y + a\n ];\n}\nfunction pn(r, e, t, i, n, s, o) {\n const a = Math.sin(n), l = Math.cos(n);\n return [\n t * l,\n i * a,\n -t * a,\n i * l,\n s * t * l - o * t * a + r,\n s * i * a + o * i * l + e\n ];\n}\nfunction Zo(r) {\n const e = Xo(r), t = r[0], i = r[1], n = r[2], s = r[3], o = r[4], a = r[5];\n return [\n s / e,\n -i / e,\n -n / e,\n t / e,\n (n * a - s * o) / e,\n -(t * a - i * o) / e\n ];\n}\nfunction Xo(r) {\n return r[0] * r[3] - r[1] * r[2];\n}\nfunction Ho(r) {\n const e = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];\n return e[0] = r[0], e[1] = r[1], e[4] = r[2], e[5] = r[3], e[12] = r[4], e[13] = r[5], e;\n}\nasync function es(r, e, t) {\n let i;\n if (typeof t == \"function\" ? i = await t(r, e) : i = await fetch(r, e), !i.ok)\n throw new Error(i.statusText);\n return i;\n}\nasync function Yo(r, e, t) {\n return await (await es(r, e, t)).json();\n}\nasync function Jo(r, e, t) {\n return await Yo(`${r}/info.json`, e, t);\n}\nfunction ts(r, e = !1) {\n switch (r.type) {\n case \"Polygon\":\n return r.coordinates ? {\n ...r,\n coordinates: gn(r.coordinates, e)\n } : r;\n case \"MultiPolygon\":\n return r.coordinates ? {\n ...r,\n coordinates: r.coordinates.map((t) => gn(t, e))\n } : r;\n case \"GeometryCollection\":\n return {\n ...r,\n geometries: r.geometries.map((t) => ts(t, e))\n };\n default:\n return r;\n }\n}\nfunction gn(r, e) {\n if (r.length === 0)\n return r;\n const t = [];\n for (let i = 0; i < r.length; i++)\n t.push(Qo(r[i], i === 0 ? e : !e));\n return t;\n}\nfunction Qo(r, e) {\n let t = 0, i = 0;\n for (let n = 0, s = r.length, o = s - 1; n < s; o = n++) {\n const a = (r[n][0] - r[o][0]) * (r[o][1] + r[n][1]), l = t + a;\n i += Math.abs(t) >= Math.abs(a) ? t - l + a : a - l + t, t = l;\n }\n return t + i >= 0 != !!e ? r.slice().reverse() : r;\n}\nfunction ge(r) {\n return Array.isArray(r) && r.length === 2 && typeof r[0] == \"number\" && typeof r[1] == \"number\";\n}\nfunction Pe(r) {\n return Array.isArray(r) && r.every(ge);\n}\nfunction Ko(r) {\n return Array.isArray(r) && r.every(ge);\n}\nfunction Se(r) {\n return Array.isArray(r) && r.every(Ko);\n}\nfunction Ne(r) {\n return Array.isArray(r) && r.every(ge);\n}\nfunction De(r) {\n return Array.isArray(r) && r.every(Pe);\n}\nfunction Fe(r) {\n return Array.isArray(r) && r.every(Se);\n}\nfunction Hr(r) {\n if (r = r.filter(function(e, t, i) {\n return t === 0 || !Wi(e, i[t - 1]);\n }), r.length < 2)\n throw new Error(\"LineString should contain at least 2 points\");\n return r;\n}\nfunction Ui(r) {\n if (r = r.filter(function(e, t, i) {\n return t === 0 || !Wi(e, i[t - 1]);\n }), ra(r) && r.splice(-1), r.length < 3)\n throw new Error(\"Ring should contain at least 3 points\");\n return r;\n}\nfunction rs(r) {\n return r.map((e) => Ui(e));\n}\nfunction ea(r) {\n return r.map((e) => Hr(e));\n}\nfunction ta(r) {\n return r.map((e) => rs(e));\n}\nfunction sr(r) {\n return {\n type: \"Point\",\n coordinates: r\n };\n}\nfunction or(r) {\n return {\n type: \"LineString\",\n coordinates: r\n };\n}\nfunction ar(r, e = !0) {\n const t = {\n type: \"Polygon\",\n coordinates: e ? r.map((i) => [...i, i[0]]) : r\n };\n return ts(t);\n}\nfunction ra(r) {\n return Array.isArray(r) && r.length >= 2 && Wi(r[0], r[r.length - 1]);\n}\nfunction Wi(r, e) {\n return r === e ? !0 : r === null || e === null ? !1 : r[0] === e[0] && r[1] === e[1];\n}\nfunction ia(r) {\n return [r[0], -r[1]];\n}\nfunction Ir(r, e) {\n return [\n (e[0] - r[0]) / 2 + r[0],\n (e[1] - r[1]) / 2 + r[1]\n ];\n}\nfunction na(r, e, t) {\n return r * t + e * (1 - t);\n}\nfunction sa(r, e, t) {\n return [\n r[0] * t + e[0] * (1 - t),\n r[1] * t + e[1] * (1 - t)\n ];\n}\nfunction we(r, e) {\n if (Pe(r) && r.length === 2)\n return we(r[0], r[1]);\n if (ge(r) && ge(e))\n return Math.sqrt((e[0] - r[0]) ** 2 + (e[1] - r[1]) ** 2);\n throw new Error(\"Input type not supported\");\n}\nfunction oa(r) {\n return r * (Math.PI / 180);\n}\nfunction Ge(r) {\n return typeof r == \"object\" && r !== null && r.type === \"Point\" && ge(r.coordinates);\n}\nfunction Be(r) {\n return typeof r == \"object\" && r !== null && r.type === \"LineString\" && Pe(r.coordinates);\n}\nfunction Ue(r) {\n return typeof r == \"object\" && r !== null && r.type === \"Polygon\" && Array.isArray(r.coordinates) && Se(r.coordinates);\n}\nfunction We(r) {\n return typeof r == \"object\" && r !== null && r.type === \"MultiPoint\" && Ne(r.coordinates);\n}\nfunction Ve(r) {\n return typeof r == \"object\" && r !== null && r.type === \"MultiLineString\" && De(r.coordinates);\n}\nfunction ze(r) {\n return typeof r == \"object\" && r !== null && r.type === \"MultiPolygon\" && Array.isArray(r.coordinates) && Fe(r.coordinates);\n}\nfunction aa(r) {\n const e = typeof r == \"object\" && r !== null, i = e && \"type\" in r && typeof r.type == \"string\" && (r.type === \"Point\" || r.type === \"LineString\" || r.type === \"Polygon\" || r.type === \"MultiPoint\" || r.type === \"MultiLineString\" || r.type === \"MultiPolygon\"), n = e && \"coordinates\" in r && Array.isArray(r.coordinates);\n return i && n;\n}\nfunction Ct(r) {\n return r.coordinates;\n}\nfunction kt(r) {\n return Hr(r.coordinates);\n}\nfunction Lt(r, e = !1) {\n let t = r.coordinates;\n return t = rs(t), e ? t.map((i) => [...i, i[0]]) : t;\n}\nfunction la(r) {\n return r.coordinates;\n}\nfunction ca(r) {\n return ea(r.coordinates);\n}\nfunction ha(r, e = !1) {\n let t = r.coordinates;\n return t = ta(t), e ? t.map((i) => i.map((n) => [...n, n[0]])) : t;\n}\nfunction ua(r) {\n if (Ge(r))\n return Ct(r);\n if (Be(r))\n return kt(r);\n if (Ue(r))\n return Lt(r);\n if (We(r))\n return la(r);\n if (Ve(r))\n return ca(r);\n if (ze(r))\n return ha(r);\n throw new Error(\"Geometry type not supported\");\n}\nfunction lr(r) {\n return r.coordinates.map((e) => ({\n type: \"Point\",\n coordinates: e\n }));\n}\nfunction cr(r) {\n return r.coordinates.map((e) => ({\n type: \"LineString\",\n coordinates: e\n }));\n}\nfunction hr(r) {\n return r.coordinates.map((e) => ({\n type: \"Polygon\",\n coordinates: e\n }));\n}\nfunction ur(r) {\n return {\n type: \"MultiPoint\",\n coordinates: r.map((e) => e.coordinates)\n };\n}\nfunction fr(r) {\n return {\n type: \"MultiLineString\",\n coordinates: r.map((e) => e.coordinates)\n };\n}\nfunction dr(r) {\n return {\n type: \"MultiPolygon\",\n coordinates: r.map((e) => e.coordinates)\n };\n}\nfunction fa(r, e) {\n return {\n type: \"Feature\",\n properties: e || {},\n geometry: r\n };\n}\nfunction da(r, e) {\n return {\n type: \"FeatureCollection\",\n features: r.map((t, i) => fa(t))\n };\n}\nfunction pa(r) {\n return r.geometry;\n}\nfunction ga(r) {\n return r.features.map(pa);\n}\nfunction mn(r) {\n let e = Number.POSITIVE_INFINITY, t = Number.NEGATIVE_INFINITY;\n for (const i of r)\n e === void 0 ? i >= i && (e = t = i) : (e > i && (e = i), t < i && (t = i));\n return [e, t];\n}\nfunction ue(r) {\n if (ge(r) && (r = [r]), Se(r) && (r = r.flat()), aa(r))\n return ue(ua(r));\n const e = [], t = [];\n for (const a of r)\n e.push(a[0]), t.push(a[1]);\n const [i, n] = mn(e), [s, o] = mn(t);\n return [i, s, n, o];\n}\nfunction vn(r, e) {\n return [\n Math.min(r[0], e[0]),\n Math.min(r[1], e[1]),\n Math.max(r[2], e[2]),\n Math.max(r[3], e[3])\n ];\n}\nfunction ma(r, e) {\n const t = r[2] >= e[0] && e[2] >= r[0], i = r[3] >= e[1] && e[3] >= r[1];\n return t && i;\n}\nfunction Ar(r) {\n return [\n [r[0], r[1]],\n [r[2], r[1]],\n [r[2], r[3]],\n [r[0], r[3]]\n ];\n}\nfunction is(r) {\n return [\n [r[0], r[1]],\n [r[2], r[3]]\n ];\n}\nfunction va(r) {\n return we(is(r));\n}\nfunction ya(r) {\n return we(is(ue(r)));\n}\nfunction wt(r) {\n return [(r[0] + r[2]) / 2, (r[1] + r[3]) / 2];\n}\nfunction ui(r) {\n return [r[2] - r[0], r[3] - r[1]];\n}\nfunction Pi(r) {\n return [\n 0.5 * (we(r[0], r[1]) + we(r[2], r[3])),\n 0.5 * (we(r[1], r[2]) + we(r[3], r[0]))\n ];\n}\nfunction Cr(r, e, t) {\n return t ? t === \"contain\" ? e[0] >= e[1] ? r[0] / e[0] : r[1] / e[1] : e[0] >= e[1] ? r[1] / e[1] : r[0] / e[0] : Math.sqrt(r[0] * r[1] / (e[0] * e[1]));\n}\nfunction yn(r, e) {\n return Cr(Pi(r), Pi(e));\n}\nfunction Er(r, e, t, i = !0) {\n if (r.has(e) && i)\n return r.get(e);\n {\n const n = t();\n return r.set(e, n), n;\n }\n}\nfunction fi(r, e, t, i, n = !0) {\n if (r.get(e)?.has(t) && n)\n return r.get(e)?.get(t);\n {\n const s = i();\n return r.get(e) || r.set(e, /* @__PURE__ */ new Map()), r.get(e)?.set(t, s), s;\n }\n}\nfunction wa(r) {\n const e = parseInt(r.replace(/^#/, \"\"), 16), t = e >> 16 & 255, i = e >> 8 & 255, n = e & 255;\n return [t, i, n];\n}\nfunction pr(r) {\n return wa(r).map((e) => e / 255);\n}\nfunction xa(r, e) {\n return !r || !e || r.size !== e.size ? !1 : [...r].every((t) => e.has(t));\n}\nfunction wn(r, e) {\n if (r !== void 0 && e !== void 0)\n return Math.max(r, e);\n if (r !== void 0)\n return r;\n if (e !== void 0)\n return e;\n}\nfunction ba(r, e) {\n e === void 0 && (e = {});\n var t = e.offsetLine || 0, i = e.offsetColumn || 0, n = r.split(`\n`), s = 0, o = n.map(function(u, g) {\n var y = s + u.length + 1, v = { start: s, end: y, line: g };\n return s = y, v;\n }), a = 0;\n function l(u, g) {\n return u.start <= g && g < u.end;\n }\n function c(u, g) {\n return { line: t + u.line, column: i + g - u.start, character: g };\n }\n function h(u, g) {\n typeof u == \"string\" && (u = r.indexOf(u, g || 0));\n for (var y = o[a], v = u >= y.end ? 1 : -1; y; ) {\n if (l(y, u))\n return c(y, u);\n a += v, y = o[a];\n }\n }\n return h;\n}\nfunction Ma(r, e, t) {\n return ba(r, t)(e, t);\n}\nvar xn = /[a-zA-Z0-9:_-]/, bn = /[\\s\\t\\r\\n]/, Ta = /['\"]/;\nfunction _a(r, e) {\n for (var t = \"\"; e--; )\n t += r;\n return t;\n}\nfunction Ea(r) {\n var e = \"\", t = [], i = a, n = null, s = null;\n function o(p) {\n var b = Ma(r, f), R = b.line, A = b.column, T = r.slice(0, f), d = /(^|\\n).*$/.exec(T)[0].replace(/\\t/g, \" \"), x = r.slice(f), _ = /.*(\\n|$)/.exec(x)[0], M = \"\" + d + _ + `\n` + _a(\" \", d.length) + \"^\";\n throw new Error(\n p + \" (\" + R + \":\" + A + `). If this is valid SVG, it's probably a bug in svg-parser. Please raise an issue at https://github.com/Rich-Harris/svg-parser/issues – thanks!\n\n` + M\n );\n }\n function a() {\n for (; f < r.length && r[f] !== \"<\" || !xn.test(r[f + 1]); )\n e += r[f++];\n return l();\n }\n function l() {\n for (var p = \"\"; f < r.length && r[f] !== \"<\"; )\n p += r[f++];\n return /\\S/.test(p) && n.children.push({ type: \"text\", value: p }), r[f] === \"<\" ? c : l;\n }\n function c() {\n var p = r[f];\n if (p === \"?\")\n return l;\n if (p === \"!\") {\n if (r.slice(f + 1, f + 3) === \"--\")\n return h;\n if (r.slice(f + 1, f + 8) === \"[CDATA[\")\n return u;\n if (/doctype/i.test(r.slice(f + 1, f + 8)))\n return l;\n }\n if (p === \"/\")\n return g;\n var b = y(), R = {\n type: \"element\",\n tagName: b,\n properties: {},\n children: []\n };\n n ? n.children.push(R) : s = R;\n for (var A; f < r.length && (A = v()); )\n R.properties[A.name] = A.value;\n var T = !1;\n return r[f] === \"/\" && (f += 1, T = !0), r[f] !== \">\" && o(\"Expected >\"), T || (n = R, t.push(R)), l;\n }\n function h() {\n var p = r.indexOf(\"-->\", f);\n return ~p || o(\"expected -->\"), f = p + 2, l;\n }\n function u() {\n var p = r.indexOf(\"]]>\", f);\n return ~p || o(\"expected ]]>\"), n.children.push(r.slice(f + 7, p)), f = p + 2, l;\n }\n function g() {\n var p = y();\n return p || o(\"Expected tag name\"), p !== n.tagName && o(\"Expected closing tag </\" + p + \"> to match opening tag <\" + n.tagName + \">\"), S(), r[f] !== \">\" && o(\"Expected >\"), t.pop(), n = t[t.length - 1], l;\n }\n function y() {\n for (var p = \"\"; f < r.length && xn.test(r[f]); )\n p += r[f++];\n return p;\n }\n function v() {\n if (!bn.test(r[f]))\n return null;\n S();\n var p = y();\n if (!p)\n return null;\n var b = !0;\n return S(), r[f] === \"=\" && (f += 1, S(), b = E(), !isNaN(b) && b.trim() !== \"\" && (b = +b)), { name: p, value: b };\n }\n function E() {\n return Ta.test(r[f]) ? w() : P();\n }\n function P() {\n var p = \"\";\n do {\n var b = r[f];\n if (b === \" \" || b === \">\" || b === \"/\")\n return p;\n p += b, f += 1;\n } while (f < r.length);\n return p;\n }\n function w() {\n for (var p = r[f++], b = \"\", R = !1; f < r.length; ) {\n var A = r[f++];\n if (A === p && !R)\n return b;\n A === \"\\\\\" && !R && (R = !0), b += R ? \"\\\\\" + A : A, R = !1;\n }\n }\n function S() {\n for (; f < r.length && bn.test(r[f]); )\n f += 1;\n }\n for (var f = a.length; f < r.length; )\n i || o(\"Unexpected character\"), i = i(), f += 1;\n return i !== l && o(\"Unexpected end of input\"), s.tagName === \"svg\" && (s.metadata = e), {\n type: \"root\",\n children: [s]\n };\n}\nfunction* Pa(r) {\n function* e(i) {\n if (\"children\" in i)\n for (const n of i.children)\n typeof n != \"string\" && (yield* e(n));\n yield i;\n }\n const t = Ea(r);\n for (const i of e(t))\n if (\"tagName\" in i && i.tagName !== \"svg\" && i.tagName !== \"g\") {\n const n = Sa(i);\n n && (yield n);\n }\n}\nfunction Sa(r) {\n const e = r?.tagName?.toLowerCase();\n if (e === \"circle\")\n return {\n type: \"circle\",\n coordinates: [\n se(r, \"cx\"),\n se(r, \"cy\")\n ]\n };\n if (e === \"line\")\n return {\n type: \"line\",\n coordinates: [\n [se(r, \"x1\"), se(r, \"y1\")],\n [se(r, \"x2\"), se(r, \"y2\")]\n ]\n };\n if (e === \"polyline\")\n return {\n type: \"polyline\",\n coordinates: Mn(r)\n };\n if (e === \"polygon\")\n return {\n type: \"polygon\",\n coordinates: Mn(r)\n };\n if (e === \"rect\")\n return {\n type: \"rect\",\n coordinates: [\n [se(r, \"x\"), se(r, \"y\")],\n [\n se(r, \"x\") + se(r, \"width\"),\n se(r, \"y\")\n ],\n [\n se(r, \"x\") + se(r, \"width\"),\n se(r, \"y\") + se(r, \"height\")\n ],\n [\n se(r, \"x\"),\n se(r, \"y\") + se(r, \"height\")\n ],\n [se(r, \"x\"), se(r, \"y\")]\n ]\n };\n throw new Error(`Unsupported SVG element: ${e}`);\n}\nfunction se(r, e) {\n const t = r?.properties?.[e];\n return Number(t) || 0;\n}\nfunction Mn(r) {\n const e = r?.properties?.points;\n return e ? String(e).trim().split(/\\s+/).map((t) => {\n const i = t.split(\",\").map((n) => Number(n));\n return [i[0], i[1]];\n }) : [];\n}\nfunction Tn(r) {\n return r.map((e) => e.join(\",\")).join(\" \");\n}\nfunction Ra(r) {\n return `<svg xmlns=\"http://www.w3.org/2000/svg\">\n ${r.map(Ia).join(`\n`)}\n</svg>`;\n}\nfunction Ia(r) {\n if (r.type === \"circle\")\n return St(\"circle\", {\n ...r.attributes,\n cx: r.coordinates[0],\n cy: r.coordinates[1]\n });\n if (r.type === \"line\")\n return St(\"line\", {\n ...r.attributes,\n x1: r.coordinates[0][0],\n y1: r.coordinates[0][1],\n x2: r.coordinates[1][0],\n y2: r.coordinates[1][1]\n });\n if (r.type === \"polyline\")\n return St(\"polyline\", {\n ...r.attributes,\n points: Tn(r.coordinates)\n });\n if (r.type === \"polygon\")\n return St(\"polygon\", {\n ...r.attributes,\n points: Tn(r.coordinates)\n });\n if (r.type === \"rect\")\n return St(\"rect\", {\n ...r.attributes,\n x: r.coordinates[0][0],\n y: r.coordinates[0][1],\n width: r.coordinates[1][0] - r.coordinates[0][0],\n height: r.coordinates[2][1] - r.coordinates[0][1]\n });\n throw new Error(\"Unknown SVG element\");\n}\nfunction St(r, e) {\n const t = Object.entries(e).map(([i, n]) => `${i}=\"${n}\"`);\n return `<${r} ${t.join(\" \")} />`;\n}\nfunction ut([r, e]) {\n const i = 6378137 * oa(r), n = i / r, s = 180 / Math.PI * Math.log(Math.tan(Math.PI / 4 + e * (Math.PI / 180) / 2)) * n;\n return [i, s];\n}\nfunction _n([r, e]) {\n const i = Math.PI * 6378137, n = r / i * 180;\n let s = e / i * 180;\n return s = 180 / Math.PI * (2 * Math.atan(Math.exp(s * Math.PI / 180)) - Math.PI / 2), [n, s];\n}\nclass kr {\n geoCenter;\n geoRectangle;\n geoSize;\n geoRectangleBbox;\n projectedGeoCenter;\n projectedGeoRectangle;\n projectedGeoSize;\n projectedGeoRectangleBbox;\n rotation;\n projectedGeoPerViewportScale;\n viewportCenter;\n viewportRectangle;\n viewportSize;\n viewportBbox;\n devicePixelRatio;\n canvasCenter;\n canvasRectangle;\n canvasSize;\n canvasBbox;\n projectedGeoPerCanvasScale;\n projectedGeoToViewportTransform = [1, 0, 0, 1, 0, 0];\n projectedGeoToClipTransform = [1, 0, 0, 1, 0, 0];\n /**\n * Creates a new Viewport\n *\n * @constructor\n * @param {Size} viewportSize - Size of the viewport in viewport pixels, as [width, height].\n * @param {Point} projectedGeoCenter - Center point of the viewport, in projected coordinates.\n * @param {number} projectedGeoPerViewportScale - Resolution of the viewport, in projection coordinates per viewport pixel.\n * @param {number} rotation - Rotation of the viewport with respect to the project coordinate system.\n * @param {number} [devicePixelRatio=1] - The devicePixelRatio of the viewport.\n */\n constructor(e, t, i, n, s = 1) {\n this.projectedGeoCenter = t, this.projectedGeoPerViewportScale = i, this.rotation = n, this.viewportSize = e, this.devicePixelRatio = s, this.projectedGeoRectangle = this.computeProjectedGeoRectangle(\n this.projectedGeoCenter,\n this.projectedGeoPerViewportScale,\n this.rotation,\n this.viewportSize\n ), this.projectedGeoRectangleBbox = ue(this.projectedGeoRectangle), this.projectedGeoSize = [\n this.viewportSize[0] * i,\n this.viewportSize[1] * i\n ], this.geoCenter = _n(this.projectedGeoCenter), this.geoRectangle = this.projectedGeoRectangle.map((o) => _n(o)), this.geoRectangleBbox = ue(this.geoRectangle), this.geoSize = ui(this.geoRectangleBbox), this.viewportCenter = [this.viewportSize[0] / 2, this.viewportSize[1] / 2], this.viewportBbox = [0, 0, ...this.viewportSize], this.viewportRectangle = Ar(this.viewportBbox), this.canvasCenter = [\n this.viewportCenter[0] * this.devicePixelRatio,\n this.viewportSize[1] * this.devicePixelRatio\n ], this.canvasSize = [\n this.viewportSize[0] * this.devicePixelRatio,\n this.viewportSize[1] * this.devicePixelRatio\n ], this.canvasBbox = [0, 0, ...this.canvasSize], this.canvasRectangle = Ar(this.canvasBbox), this.projectedGeoPerCanvasScale = this.projectedGeoPerViewportScale / this.devicePixelRatio, this.projectedGeoToViewportTransform = this.composeProjectedGeoToViewportTransform(), this.projectedGeoToClipTransform = this.composeProjectedGeoToClipTransform();\n }\n /**\n * Static method creates that creates a Viewport from a WarpedMapList\n *\n * @static\n * @template {WarpedMap} W\n * @param {Size} viewportSize - Size of the viewport in viewport pixels, as [width, height].\n * @param {WarpedMapList<W>} warpedMapList - A WarpedMapList.\n * @param {number} [devicePixelRatio] - The devicePixelRatio of the viewport.\n * @param {Fit} [fit='contain'] - Whether the viewport should contain or cover the bbox of the warpedMapList.\n * @returns {Viewport} - A new Viewport object\n */\n static fromWarpedMapList(e, t, i, n = \"contain\", s = 1) {\n const o = t.getProjectedCenter(), a = t.getProjectedBbox();\n if (!o || !a)\n throw new Error(\"WarpedMapList has no projected center or bbox\");\n const l = ui(a), c = Cr(l, e, n) * (1 / s);\n return new kr(\n e,\n o,\n c,\n 0,\n i\n );\n }\n /**\n * Static method creates that creates a Viewport from Bbox in projected geospatial coordinates.\n *\n * @static\n * @template {WarpedMap} W\n * @param {Size} viewportSize - Size of the viewport in viewport pixels, as [width, height].\n * @param {WarpedMapList<W>} projectedGeoBbox - A projectedGeoBbox.\n * @param {number} [devicePixelRatio] - The devicePixelRatio of the viewport.\n * @param {Fit} [fit='contain'] - Whether the viewport should contain or cover the bbox of the warpedMapList.\n * @returns {Viewport} - A new Viewport object\n */\n static fromProjectedGeoBbox(e, t, i, n = \"contain\") {\n const s = wt(t), o = ui(t), a = Cr(\n o,\n e,\n n\n );\n return new kr(\n e,\n s,\n a,\n 0,\n i\n );\n }\n composeProjectedGeoToViewportTransform() {\n return pn(\n this.viewportSize[0] / 2,\n this.viewportSize[1] / 2,\n 1 / this.projectedGeoPerViewportScale,\n -1 / this.projectedGeoPerViewportScale,\n -this.rotation,\n -this.projectedGeoCenter[0],\n -this.projectedGeoCenter[1]\n );\n }\n composeProjectedGeoToClipTransform() {\n return pn(\n 0,\n 0,\n 2 / (this.projectedGeoPerViewportScale * this.viewportSize[0]),\n 2 / (this.projectedGeoPerViewportScale * this.viewportSize[1]),\n -this.rotation,\n -this.projectedGeoCenter[0],\n -this.projectedGeoCenter[1]\n );\n }\n /** Returns a rotated rectangle in projected geo coordinates */\n computeProjectedGeoRectangle(e, t, i, n) {\n const s = t * n[0] / 2, o = t * n[1] / 2, a = Math.cos(i), l = Math.sin(i), c = s * a, h = s * l, u = o * a, g = o * l, y = e[0], v = e[1];\n return [\n [y - c + g, v - h - u],\n [y - c - g, v - h + u],\n [y + c - g, v + h + u],\n [y + c + g, v + h - u]\n ];\n }\n}\nfunction Si(r) {\n return Array.isArray(r) ? `[${r.map((e) => Si(e)).join(\",\")}]` : typeof r == \"number\" ? `${r}` : typeof r == \"string\" ? `\"${r}\"` : typeof r == \"object\" && r !== null ? Object.keys(r).sort().map((e) => `${e}:${Si(r[e])}`).join(\"|\") : String(r);\n}\nasync function Aa(r) {\n const e = await crypto.subtle.digest(\"SHA-1\", new TextEncoder().encode(r));\n return Array.from(new Uint8Array(e)).map((n) => n.toString(16).padStart(2, \"0\")).join(\"\");\n}\nasync function ns(r, e = 16) {\n return (await Aa(String(r))).slice(0, e);\n}\nasync function Ca(r, e) {\n return await ns(Si(r), e);\n}\nvar X;\n(function(r) {\n r.assertEqual = (n) => n;\n function e(n) {\n }\n r.assertIs = e;\n function t(n) {\n throw new Error();\n }\n r.assertNever = t, r.arrayToEnum = (n) => {\n const s = {};\n for (const o of n)\n s[o] = o;\n return s;\n }, r.getValidEnumValues = (n) => {\n const s = r.objectKeys(n).filter((a) => typeof n[n[a]] != \"number\"), o = {};\n for (const a of s)\n o[a] = n[a];\n return r.objectValues(o);\n }, r.objectValues = (n) => r.objectKeys(n).map(function(s) {\n return n[s];\n }), r.objectKeys = typeof Object.keys == \"function\" ? (n) => Object.keys(n) : (n) => {\n const s = [];\n for (const o in n)\n Object.prototype.hasOwnProperty.call(n, o) && s.push(o);\n return s;\n }, r.find = (n, s) => {\n for (const o of n)\n if (s(o))\n return o;\n }, r.isInteger = typeof Number.isInteger == \"function\" ? (n) => Number.isInteger(n) : (n) => typeof n == \"number\" && isFinite(n) && Math.floor(n) === n;\n function i(n, s = \" | \") {\n return n.map((o) => typeof o == \"string\" ? `'${o}'` : o).join(s);\n }\n r.joinValues = i, r.jsonStringifyReplacer = (n, s) => typeof s == \"bigint\" ? s.toString() : s;\n})(X || (X = {}));\nvar Ri;\n(function(r) {\n r.mergeShapes = (e, t) => ({\n ...e,\n ...t\n // second overwrites first\n });\n})(Ri || (Ri = {}));\nconst j = X.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\"\n]), He = (r) => {\n switch (typeof r) {\n case \"undefined\":\n return j.undefined;\n case \"string\":\n return j.string;\n case \"number\":\n return isNaN(r) ? j.nan : j.number;\n case \"boolean\":\n return j.boolean;\n case \"function\":\n return j.function;\n case \"bigint\":\n return j.bigint;\n case \"symbol\":\n return j.symbol;\n case \"object\":\n return Array.isArray(r) ? j.array : r === null ? j.null : r.then && typeof r.then == \"function\" && r.catch && typeof r.catch == \"function\" ? j.promise : typeof Map < \"u\" && r instanceof Map ? j.map : typeof Set < \"u\" && r instanceof Set ? j.set : typeof Date < \"u\" && r instanceof Date ? j.date : j.object;\n default:\n return j.unknown;\n }\n}, I = X.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\"\n]), ka = (r) => JSON.stringify(r, null, 2).replace(/\"([^\"]+)\":/g, \"$1:\");\nclass xe extends Error {\n constructor(e) {\n super(), this.issues = [], this.addIssue = (i) => {\n this.issues = [...this.issues, i];\n }, this.addIssues = (i = []) => {\n this.issues = [...this.issues, ...i];\n };\n const t = new.target.prototype;\n Object.setPrototypeOf ? Object.setPrototypeOf(this, t) : this.__proto__ = t, this.name = \"ZodError\", this.issues = e;\n }\n get errors() {\n return this.issues;\n }\n format(e) {\n const t = e || function(s) {\n return s.message;\n }, i = { _errors: [] }, n = (s) => {\n for (const o of s.issues)\n if (o.code === \"invalid_union\")\n o.unionErrors.map(n);\n else if (o.code === \"invalid_return_type\")\n n(o.returnTypeError);\n else if (o.code === \"invalid_arguments\")\n n(o.argumentsError);\n else if (o.path.length === 0)\n i._errors.push(t(o));\n else {\n let a = i, l = 0;\n for (; l < o.path.length; ) {\n const c = o.path[l];\n l === o.path.length - 1 ? (a[c] = a[c] || { _errors: [] }, a[c]._errors.push(t(o))) : a[c] = a[c] || { _errors: [] }, a = a[c], l++;\n }\n }\n };\n return n(this), i;\n }\n static assert(e) {\n if (!(e instanceof xe))\n throw new Error(`Not a ZodError: ${e}`);\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, X.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(e = (t) => t.message) {\n const t = {}, i = [];\n for (const n of this.issues)\n n.path.length > 0 ? (t[n.path[0]] = t[n.path[0]] || [], t[n.path[0]].push(e(n))) : i.push(e(n));\n return { formErrors: i, fieldErrors: t };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nxe.create = (r) => new xe(r);\nconst xt = (r, e) => {\n let t;\n switch (r.code) {\n case I.invalid_type:\n r.received === j.undefined ? t = \"Required\" : t = `Expected ${r.expected}, received ${r.received}`;\n break;\n case I.invalid_literal:\n t = `Invalid literal value, expected ${JSON.stringify(r.expected, X.jsonStringifyReplacer)}`;\n break;\n case I.unrecognized_keys:\n t = `Unrecognized key(s) in object: ${X.joinValues(r.keys, \", \")}`;\n break;\n case I.invalid_union:\n t = \"Invalid input\";\n break;\n case I.invalid_union_discriminator:\n t = `Invalid discriminator value. Expected ${X.joinValues(r.options)}`;\n break;\n case I.invalid_enum_value:\n t = `Invalid enum value. Expected ${X.joinValues(r.options)}, received '${r.received}'`;\n break;\n case I.invalid_arguments:\n t = \"Invalid function arguments\";\n break;\n case I.invalid_return_type:\n t = \"Invalid function return type\";\n break;\n case I.invalid_date:\n t = \"Invalid date\";\n break;\n case I.invalid_string:\n typeof r.validation == \"object\" ? \"includes\" in r.validation ? (t = `Invalid input: must include \"${r.validation.includes}\"`, typeof r.validation.position == \"number\" && (t = `${t} at one or more positions greater than or equal to ${r.validation.position}`)) : \"startsWith\" in r.validation ? t = `Invalid input: must start with \"${r.validation.startsWith}\"` : \"endsWith\" in r.validation ? t = `Invalid input: must end with \"${r.validation.endsWith}\"` : X.assertNever(r.validation) : r.validation !== \"regex\" ? t = `Invalid ${r.validation}` : t = \"Invalid\";\n break;\n case I.too_small:\n r.type === \"array\" ? t = `Array must contain ${r.exact ? \"exactly\" : r.inclusive ? \"at least\" : \"more than\"} ${r.minimum} element(s)` : r.type === \"string\" ? t = `String must contain ${r.exact ? \"exactly\" : r.inclusive ? \"at least\" : \"over\"} ${r.minimum} character(s)` : r.type === \"number\" ? t = `Number must be ${r.exact ? \"exactly equal to \" : r.inclusive ? \"greater than or equal to \" : \"greater than \"}${r.minimum}` : r.type === \"date\" ? t = `Date must be ${r.exact ? \"exactly equal to \" : r.inclusive ? \"greater than or equal to \" : \"greater than \"}${new Date(Number(r.minimum))}` : t = \"Invalid input\";\n break;\n case I.too_big:\n r.type === \"array\" ? t = `Array must contain ${r.exact ? \"exactly\" : r.inclusive ? \"at most\" : \"less than\"} ${r.maximum} element(s)` : r.type === \"string\" ? t = `String must contain ${r.exact ? \"exactly\" : r.inclusive ? \"at most\" : \"under\"} ${r.maximum} character(s)` : r.type === \"number\" ? t = `Number must be ${r.exact ? \"exactly\" : r.inclusive ? \"less than or equal to\" : \"less than\"} ${r.maximum}` : r.type === \"bigint\" ? t = `BigInt must be ${r.exact ? \"exactly\" : r.inclusive ? \"less than or equal to\" : \"less than\"} ${r.maximum}` : r.type === \"date\" ? t = `Date must be ${r.exact ? \"exactly\" : r.inclusive ? \"smaller than or equal to\" : \"smaller than\"} ${new Date(Number(r.maximum))}` : t = \"Invalid input\";\n break;\n case I.custom:\n t = \"Invalid input\";\n break;\n case I.invalid_intersection_types:\n t = \"Intersection results could not be merged\";\n break;\n case I.not_multiple_of:\n t = `Number must be a multiple of ${r.multipleOf}`;\n break;\n case I.not_finite:\n t = \"Number must be finite\";\n break;\n default:\n t = e.defaultError, X.assertNever(r);\n }\n return { message: t };\n};\nlet ss = xt;\nfunction La(r) {\n ss = r;\n}\nfunction Lr() {\n return ss;\n}\nconst jr = (r) => {\n const { data: e, path: t, errorMaps: i, issueData: n } = r, s = [...t, ...n.path || []], o = {\n ...n,\n path: s\n };\n if (n.message !== void 0)\n return {\n ...n,\n path: s,\n message: n.message\n };\n let a = \"\";\n const l = i.filter((c) => !!c).slice().reverse();\n for (const c of l)\n a = c(o, { data: e, defaultError: a }).message;\n return {\n ...n,\n path: s,\n message: a\n };\n}, ja = [];\nfunction L(r, e) {\n const t = Lr(), i = jr({\n issueData: e,\n data: r.data,\n path: r.path,\n errorMaps: [\n r.common.contextualErrorMap,\n r.schemaErrorMap,\n t,\n t === xt ? void 0 : xt\n // then global default map\n ].filter((n) => !!n)\n });\n r.common.issues.push(i);\n}\nclass fe {\n constructor() {\n this.value = \"valid\";\n }\n dirty() {\n this.value === \"valid\" && (this.value = \"dirty\");\n }\n abort() {\n this.value !== \"aborted\" && (this.value = \"aborted\");\n }\n static mergeArray(e, t) {\n const i = [];\n for (const n of t) {\n if (n.status === \"aborted\")\n return D;\n n.status === \"dirty\" && e.dirty(), i.push(n.value);\n }\n return { status: e.value, value: i };\n }\n static async mergeObjectAsync(e, t) {\n const i = [];\n for (const n of t) {\n const s = await n.key, o = await n.value;\n i.push({\n key: s,\n value: o\n });\n }\n return fe.mergeObjectSync(e, i);\n }\n static mergeObjectSync(e, t) {\n const i = {};\n for (const n of t) {\n const { key: s, value: o } = n;\n if (s.status === \"aborted\" || o.status === \"aborted\")\n return D;\n s.status === \"dirty\" && e.dirty(), o.status === \"dirty\" && e.dirty(), s.value !== \"__proto__\" && (typeof o.value < \"u\" || n.alwaysSet) && (i[s.value] = o.value);\n }\n return { status: e.value, value: i };\n }\n}\nconst D = Object.freeze({\n status: \"aborted\"\n}), vt = (r) => ({ status: \"dirty\", value: r }), me = (r) => ({ status: \"valid\", value: r }), Ii = (r) => r.status === \"aborted\", Ai = (r) => r.status === \"dirty\", Ft = (r) => r.status === \"valid\", Gt = (r) => typeof Promise < \"u\" && r instanceof Promise;\nfunction Or(r, e, t, i) {\n if (typeof e == \"function\" ? r !== e || !i : !e.has(r))\n throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return e.get(r);\n}\nfunction os(r, e, t, i, n) {\n if (typeof e == \"function\" ? r !== e || !n : !e.has(r))\n throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return e.set(r, t), t;\n}\nvar O;\n(function(r) {\n r.errToObj = (e) => typeof e == \"string\" ? { message: e } : e || {}, r.toString = (e) => typeof e == \"string\" ? e : e?.message;\n})(O || (O = {}));\nvar jt, Ot;\nclass Le {\n constructor(e, t, i, n) {\n this._cachedPath = [], this.parent = e, this.data = t, this._path = i, this._key = n;\n }\n get path() {\n return this._cachedPath.length || (this._key instanceof Array ? this._cachedPath.push(...this._path, ...this._key) : this._cachedPath.push(...this._path, this._key)), this._cachedPath;\n }\n}\nconst En = (r, e) => {\n if (Ft(e))\n return { success: !0, data: e.value };\n if (!r.common.issues.length)\n throw new Error(\"Validation failed but no issues detected.\");\n return {\n success: !1,\n get error() {\n if (this._error)\n return this._error;\n const t = new xe(r.common.issues);\n return this._error = t, this._error;\n }\n };\n};\nfunction F(r) {\n if (!r)\n return {};\n const { errorMap: e, invalid_type_error: t, required_error: i, description: n } = r;\n if (e && (t || i))\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n return e ? { errorMap: e, description: n } : { errorMap: (o, a) => {\n var l, c;\n const { message: h } = r;\n return o.code === \"invalid_enum_value\" ? { message: h ?? a.defaultError } : typeof a.data > \"u\" ? { message: (l = h ?? i) !== null && l !== void 0 ? l : a.defaultError } : o.code !== \"invalid_type\" ? { message: a.defaultError } : { message: (c = h ?? t) !== null && c !== void 0 ? c : a.defaultError };\n }, description: n };\n}\nclass U {\n constructor(e) {\n this.spa = this.safeParseAsync, this._def = e, this.parse = this.parse.bind(this), this.safeParse = this.safeParse.bind(this), this.parseAsync = this.parseAsync.bind(this), this.safeParseAsync = this.safeParseAsync.bind(this), this.spa = this.spa.bind(this), this.refine = this.refine.bind(this), this.refinement = this.refinement.bind(this), this.superRefine = this.superRefine.bind(this), this.optional = this.optional.bind(this), this.nullable = this.nullable.bind(this), this.nullish = this.nullish.bind(this), this.array = this.array.bind(this), this.promise = this.promise.bind(this), this.or = this.or.bind(this), this.and = this.and.bind(this), this.transform = this.transform.bind(this), this.brand = this.brand.bind(this), this.default = this.default.bind(this), this.catch = this.catch.bind(this), this.describe = this.describe.bind(this), this.pipe = this.pipe.bind(this), this.readonly = this.readonly.bind(this), this.isNullable = this.isNullable.bind(this), this.isOptional = this.isOptional.bind(this);\n }\n get description() {\n return this._def.description;\n }\n _getType(e) {\n return He(e.data);\n }\n _getOrReturnCtx(e, t) {\n return t || {\n common: e.parent.common,\n data: e.data,\n parsedType: He(e.data),\n schemaErrorMap: this._def.errorMap,\n path: e.path,\n parent: e.parent\n };\n }\n _processInputParams(e) {\n return {\n status: new fe(),\n ctx: {\n common: e.parent.common,\n data: e.data,\n parsedType: He(e.data),\n schemaErrorMap: this._def.errorMap,\n path: e.path,\n parent: e.parent\n }\n };\n }\n _parseSync(e) {\n const t = this._parse(e);\n if (Gt(t))\n throw new Error(\"Synchronous parse encountered promise.\");\n return t;\n }\n _parseAsync(e) {\n const t = this._parse(e);\n return Promise.resolve(t);\n }\n parse(e, t) {\n const i = this.safeParse(e, t);\n if (i.success)\n return i.data;\n throw i.error;\n }\n safeParse(e, t) {\n var i;\n const n = {\n common: {\n issues: [],\n async: (i = t?.async) !== null && i !== void 0 ? i : !1,\n contextualErrorMap: t?.errorMap\n },\n path: t?.path || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data: e,\n parsedType: He(e)\n }, s = this._parseSync({ data: e, path: n.path, parent: n });\n return En(n, s);\n }\n async parseAsync(e, t) {\n const i = await this.safeParseAsync(e, t);\n if (i.success)\n return i.data;\n throw i.error;\n }\n async safeParseAsync(e, t) {\n const i = {\n common: {\n issues: [],\n contextualErrorMap: t?.errorMap,\n async: !0\n },\n path: t?.path || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data: e,\n parsedType: He(e)\n }, n = this._parse({ data: e, path: i.path, parent: i }), s = await (Gt(n) ? n : Promise.resolve(n));\n return En(i, s);\n }\n refine(e, t) {\n const i = (n) => typeof t == \"string\" || typeof t > \"u\" ? { message: t } : typeof t == \"function\" ? t(n) : t;\n return this._refinement((n, s) => {\n const o = e(n), a = () => s.addIssue({\n code: I.custom,\n ...i(n)\n });\n return typeof Promise < \"u\" && o instanceof Promise ? o.then((l) => l ? !0 : (a(), !1)) : o ? !0 : (a(), !1);\n });\n }\n refinement(e, t) {\n return this._refinement((i, n) => e(i) ? !0 : (n.addIssue(typeof t == \"function\" ? t(i, n) : t), !1));\n }\n _refinement(e) {\n return new Ce({\n schema: this,\n typeName: N.ZodEffects,\n effect: { type: \"refinement\", refinement: e }\n });\n }\n superRefine(e) {\n return this._refinement(e);\n }\n optional() {\n return ke.create(this, this._def);\n }\n nullable() {\n return et.create(this, this._def);\n }\n nullish() {\n return this.nullable().optional();\n }\n array() {\n return Ae.create(this, this._def);\n }\n promise() {\n return Mt.create(this, this._def);\n }\n or(e) {\n return Vt.create([this, e], this._def);\n }\n and(e) {\n return zt.create(this, e, this._def);\n }\n transform(e) {\n return new Ce({\n ...F(this._def),\n schema: this,\n typeName: N.ZodEffects,\n effect: { type: \"transform\", transform: e }\n });\n }\n default(e) {\n const t = typeof e == \"function\" ? e : () => e;\n return new Ht({\n ...F(this._def),\n innerType: this,\n defaultValue: t,\n typeName: N.ZodDefault\n });\n }\n brand() {\n return new Vi({\n typeName: N.ZodBranded,\n type: this,\n ...F(this._def)\n });\n }\n catch(e) {\n const t = typeof e == \"function\" ? e : () => e;\n return new Yt({\n ...F(this._def),\n innerType: this,\n catchValue: t,\n typeName: N.ZodCatch\n });\n }\n describe(e) {\n const t = this.constructor;\n return new t({\n ...this._def,\n description: e\n });\n }\n pipe(e) {\n return er.create(this, e);\n }\n readonly() {\n return Jt.create(this);\n }\n isOptional() {\n return this.safeParse(void 0).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nconst Oa = /^c[^\\s-]{8,}$/i, Na = /^[0-9a-z]+$/, Da = /^[0-9A-HJKMNP-TV-Z]{26}$/, Fa = /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i, Ga = /^[a-z0-9_-]{21}$/i, Ba = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/, Ua = /^(?!\\.)(?!.*\\.\\.)([A-Z0-9_'+\\-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i, Wa = \"^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$\";\nlet di;\nconst Va = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/, za = /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/, $a = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/, as = \"((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))\", qa = new RegExp(`^${as}$`);\nfunction ls(r) {\n let e = \"([01]\\\\d|2[0-3]):[0-5]\\\\d:[0-5]\\\\d\";\n return r.precision ? e = `${e}\\\\.\\\\d{${r.precision}}` : r.precision == null && (e = `${e}(\\\\.\\\\d+)?`), e;\n}\nfunction Za(r) {\n return new RegExp(`^${ls(r)}$`);\n}\nfunction cs(r) {\n let e = `${as}T${ls(r)}`;\n const t = [];\n return t.push(r.local ? \"Z?\" : \"Z\"), r.offset && t.push(\"([+-]\\\\d{2}:?\\\\d{2})\"), e = `${e}(${t.join(\"|\")})`, new RegExp(`^${e}$`);\n}\nfunction Xa(r, e) {\n return !!((e === \"v4\" || !e) && Va.test(r) || (e === \"v6\" || !e) && za.test(r));\n}\nclass Re extends U {\n _parse(e) {\n if (this._def.coerce && (e.data = String(e.data)), this._getType(e) !== j.string) {\n const s = this._getOrReturnCtx(e);\n return L(s, {\n code: I.invalid_type,\n expected: j.string,\n received: s.parsedType\n }), D;\n }\n const i = new fe();\n let n;\n for (const s of this._def.checks)\n if (s.kind === \"min\")\n e.data.length < s.value && (n = this._getOrReturnCtx(e, n), L(n, {\n code: I.too_small,\n minimum: s.value,\n type: \"string\",\n inclusive: !0,\n exact: !1,\n message: s.message\n }), i.dirty());\n else if (s.kind === \"max\")\n e.data.length > s.value && (n = this._getOrReturnCtx(e, n), L(n, {\n code: I.too_big,\n maximum: s.value,\n type: \"string\",\n inclusive: !0,\n exact: !1,\n message: s.message\n }), i.dirty());\n else if (s.kind === \"length\") {\n const o = e.data.length > s.value, a = e.data.length < s.value;\n (o || a) && (n = this._getOrReturnCtx(e, n), o ? L(n, {\n code: I.too_big,\n maximum: s.value,\n type: \"string\",\n inclusive: !0,\n exact: !0,\n message: s.message\n }) : a && L(n, {\n code: I.too_small,\n minimum: s.value,\n type: \"string\",\n inclusive: !0,\n exact: !0,\n message: s.message\n }), i.dirty());\n } else if (s.kind === \"email\")\n Ua.test(e.data) || (n = this._getOrReturnCtx(e, n), L(n, {\n validation: \"email\",\n code: I.invalid_string,\n message: s.message\n }), i.dirty());\n else if (s.kind === \"emoji\")\n di || (di = new RegExp(Wa, \"u\")), di.test(e.data) || (n = this._getOrReturnCtx(e, n), L(n, {\n validation: \"emoji\",\n code: I.invalid_string,\n message: s.message\n }), i.dirty());\n else if (s.kind === \"uuid\")\n Fa.test(e.data) || (n = this._getOrReturnCtx(e, n), L(n, {\n validation: \"uuid\",\n code: I.invalid_string,\n message: s.message\n }), i.dirty());\n else if (s.kind === \"nanoid\")\n Ga.test(e.data) || (n = this._getOrReturnCtx(e, n), L(n, {\n validation: \"nanoid\",\n code: I.invalid_string,\n message: s.message\n }), i.dirty());\n else if (s.kind === \"cuid\")\n Oa.test(e.data) || (n = this._getOrReturnCtx(e, n), L(n, {\n validation: \"cuid\",\n code: I.invalid_string,\n message: s.message\n }), i.dirty());\n else if (s.kind === \"cuid2\")\n Na.test(e.data) || (n = this._getOrReturnCtx(e, n), L(n, {\n validation: \"cuid2\",\n code: I.invalid_string,\n message: s.message\n }), i.dirty());\n else if (s.kind === \"ulid\")\n Da.test(e.data) || (n = this._getOrReturnCtx(e, n), L(n, {\n validation: \"ulid\",\n code: I.invalid_string,\n message: s.message\n }), i.dirty());\n else if (s.kind === \"url\")\n try {\n new URL(e.data);\n } catch {\n n = this._getOrReturnCtx(e, n), L(n, {\n validation: \"url\",\n code: I.invalid_string,\n message: s.message\n }), i.dirty();\n }\n else\n s.kind === \"regex\" ? (s.regex.lastIndex = 0, s.regex.test(e.data) || (n = this._getOrReturnCtx(e, n), L(n, {\n validation: \"regex\",\n code: I.invalid_string,\n message: s.message\n }), i.dirty())) : s.kind === \"trim\" ? e.data = e.data.trim() : s.kind === \"includes\" ? e.data.includes(s.value, s.position) || (n = this._getOrReturnCtx(e, n), L(n, {\n code: I.invalid_string,\n validation: { includes: s.value, position: s.position },\n message: s.message\n }), i.dirty()) : s.kind === \"toLowerCase\" ? e.data = e.data.toLowerCase() : s.kind === \"toUpperCase\" ? e.data = e.data.toUpperCase() : s.kind === \"startsWith\" ? e.data.startsWith(s.value) || (n = this._getOrReturnCtx(e, n), L(n, {\n code: I.invalid_string,\n validation: { startsWith: s.value },\n message: s.message\n }), i.dirty()) : s.kind === \"endsWith\" ? e.data.endsWith(s.value) || (n = this._getOrReturnCtx(e, n), L(n, {\n code: I.invalid_string,\n validation: { endsWith: s.value },\n message: s.message\n }), i.dirty()) : s.kind === \"datetime\" ? cs(s).test(e.data) || (n = this._getOrReturnCtx(e, n), L(n, {\n code: I.invalid_string,\n validation: \"datetime\",\n message: s.message\n }), i.dirty()) : s.kind === \"date\" ? qa.test(e.data) || (n = this._getOrReturnCtx(e, n), L(n, {\n code: I.invalid_string,\n validation: \"date\",\n message: s.message\n }), i.dirty()) : s.kind === \"time\" ? Za(s).test(e.data) || (n = this._getOrReturnCtx(e, n), L(n, {\n code: I.invalid_string,\n validation: \"time\",\n message: s.message\n }), i.dirty()) : s.kind === \"duration\" ? Ba.test(e.data) || (n = this._getOrReturnCtx(e, n), L(n, {\n validation: \"duration\",\n code: I.invalid_string,\n message: s.message\n }), i.dirty()) : s.kind === \"ip\" ? Xa(e.data, s.version) || (n = this._getOrReturnCtx(e, n), L(n, {\n validation: \"ip\",\n code: I.invalid_string,\n message: s.message\n }), i.dirty()) : s.kind === \"base64\" ? $a.test(e.data) || (n = this._getOrReturnCtx(e, n), L(n, {\n validation: \"base64\",\n code: I.invalid_string,\n message: s.message\n }), i.dirty()) : X.assertNever(s);\n return { status: i.value, value: e.data };\n }\n _regex(e, t, i) {\n return this.refinement((n) => e.test(n), {\n validation: t,\n code: I.invalid_string,\n ...O.errToObj(i)\n });\n }\n _addCheck(e) {\n return new Re({\n ...this._def,\n checks: [...this._def.checks, e]\n });\n }\n email(e) {\n return this._addCheck({ kind: \"email\", ...O.errToObj(e) });\n }\n url(e) {\n return this._addCheck({ kind: \"url\", ...O.errToObj(e) });\n }\n emoji(e) {\n return this._addCheck({ kind: \"emoji\", ...O.errToObj(e) });\n }\n uuid(e) {\n return this._addCheck({ kind: \"uuid\", ...O.errToObj(e) });\n }\n nanoid(e) {\n return this._addCheck({ kind: \"nanoid\", ...O.errToObj(e) });\n }\n cuid(e) {\n return this._addCheck({ kind: \"cuid\", ...O.errToObj(e) });\n }\n cuid2(e) {\n return this._addCheck({ kind: \"cuid2\", ...O.errToObj(e) });\n }\n ulid(e) {\n return this._addCheck({ kind: \"ulid\", ...O.errToObj(e) });\n }\n base64(e) {\n return this._addCheck({ kind: \"base64\", ...O.errToObj(e) });\n }\n ip(e) {\n return this._addCheck({ kind: \"ip\", ...O.errToObj(e) });\n }\n datetime(e) {\n var t, i;\n return typeof e == \"string\" ? this._addCheck({\n kind: \"datetime\",\n precision: null,\n offset: !1,\n local: !1,\n message: e\n }) : this._addCheck({\n kind: \"datetime\",\n precision: typeof e?.precision > \"u\" ? null : e?.precision,\n offset: (t = e?.offset) !== null && t !== void 0 ? t : !1,\n local: (i = e?.local) !== null && i !== void 0 ? i : !1,\n ...O.errToObj(e?.message)\n });\n }\n date(e) {\n return this._addCheck({ kind: \"date\", message: e });\n }\n time(e) {\n return typeof e == \"string\" ? this._addCheck({\n kind: \"time\",\n precision: null,\n message: e\n }) : this._addCheck({\n kind: \"time\",\n precision: typeof e?.precision > \"u\" ? null : e?.precision,\n ...O.errToObj(e?.message)\n });\n }\n duration(e) {\n return this._addCheck({ kind: \"duration\", ...O.errToObj(e) });\n }\n regex(e, t) {\n return this._addCheck({\n kind: \"regex\",\n regex: e,\n ...O.errToObj(t)\n });\n }\n includes(e, t) {\n return this._addCheck({\n kind: \"includes\",\n value: e,\n position: t?.position,\n ...O.errToObj(t?.message)\n });\n }\n startsWith(e, t) {\n return this._addCheck({\n kind: \"startsWith\",\n value: e,\n ...O.errToObj(t)\n });\n }\n endsWith(e, t) {\n return this._addCheck({\n kind: \"endsWith\",\n value: e,\n ...O.errToObj(t)\n });\n }\n min(e, t) {\n return this._addCheck({\n kind: \"min\",\n value: e,\n ...O.errToObj(t)\n });\n }\n max(e, t) {\n return this._addCheck({\n kind: \"max\",\n value: e,\n ...O.errToObj(t)\n });\n }\n length(e, t) {\n return this._addCheck({\n kind: \"length\",\n value: e,\n ...O.errToObj(t)\n });\n }\n /**\n * @deprecated Use z.string().min(1) instead.\n * @see {@link ZodString.min}\n */\n nonempty(e) {\n return this.min(1, O.errToObj(e));\n }\n trim() {\n return new Re({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }]\n });\n }\n toLowerCase() {\n return new Re({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toLowerCase\" }]\n });\n }\n toUpperCase() {\n return new Re({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toUpperCase\" }]\n });\n }\n get isDatetime() {\n return !!this._def.checks.find((e) => e.kind === \"datetime\");\n }\n get isDate() {\n return !!this._def.checks.find((e) => e.kind === \"date\");\n }\n get isTime() {\n return !!this._def.checks.find((e) => e.kind === \"time\");\n }\n get isDuration() {\n return !!this._def.checks.find((e) => e.kind === \"duration\");\n }\n get isEmail() {\n return !!this._def.checks.find((e) => e.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((e) => e.kind === \"url\");\n }\n get isEmoji() {\n return !!this._def.checks.find((e) => e.kind === \"emoji\");\n }\n get isUUID() {\n return !!this._def.checks.find((e) => e.kind === \"uuid\");\n }\n get isNANOID() {\n return !!this._def.checks.find((e) => e.kind === \"nanoid\");\n }\n get isCUID() {\n return !!this._def.checks.find((e) => e.kind === \"cuid\");\n }\n get isCUID2() {\n return !!this._def.checks.find((e) => e.kind === \"cuid2\");\n }\n get isULID() {\n return !!this._def.checks.find((e) => e.kind === \"ulid\");\n }\n get isIP() {\n return !!this._def.checks.find((e) => e.kind === \"ip\");\n }\n get isBase64() {\n return !!this._def.checks.find((e) => e.kind === \"base64\");\n }\n get minLength() {\n let e = null;\n for (const t of this._def.checks)\n t.kind === \"min\" && (e === null || t.value > e) && (e = t.value);\n return e;\n }\n get maxLength() {\n let e = null;\n for (const t of this._def.checks)\n t.kind === \"max\" && (e === null || t.value < e) && (e = t.value);\n return e;\n }\n}\nRe.create = (r) => {\n var e;\n return new Re({\n checks: [],\n typeName: N.ZodString,\n coerce: (e = r?.coerce) !== null && e !== void 0 ? e : !1,\n ...F(r)\n });\n};\nfunction Ha(r, e) {\n const t = (r.toString().split(\".\")[1] || \"\").length, i = (e.toString().split(\".\")[1] || \"\").length, n = t > i ? t : i, s = parseInt(r.toFixed(n).replace(\".\", \"\")), o = parseInt(e.toFixed(n).replace(\".\", \"\"));\n return s % o / Math.pow(10, n);\n}\nclass Je extends U {\n constructor() {\n super(...arguments), this.min = this.gte, this.max = this.lte, this.step = this.multipleOf;\n }\n _parse(e) {\n if (this._def.coerce && (e.data = Number(e.data)), this._getType(e) !== j.number) {\n const s = this._getOrReturnCtx(e);\n return L(s, {\n code: I.invalid_type,\n expected: j.number,\n received: s.parsedType\n }), D;\n }\n let i;\n const n = new fe();\n for (const s of this._def.checks)\n s.kind === \"int\" ? X.isInteger(e.data) || (i = this._getOrReturnCtx(e, i), L(i, {\n code: I.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: s.message\n }), n.dirty()) : s.kind === \"min\" ? (s.inclusive ? e.data < s.value : e.data <= s.value) && (i = this._getOrReturnCtx(e, i), L(i, {\n code: I.too_small,\n minimum: s.value,\n type: \"number\",\n inclusive: s.inclusive,\n exact: !1,\n message: s.message\n }), n.dirty()) : s.kind === \"max\" ? (s.inclusive ? e.data > s.value : e.data >= s.value) && (i = this._getOrReturnCtx(e, i), L(i, {\n code: I.too_big,\n maximum: s.value,\n type: \"number\",\n inclusive: s.inclusive,\n exact: !1,\n message: s.message\n }), n.dirty()) : s.kind === \"multipleOf\" ? Ha(e.data, s.value) !== 0 && (i = this._getOrReturnCtx(e, i), L(i, {\n code: I.not_multiple_of,\n multipleOf: s.value,\n message: s.message\n }), n.dirty()) : s.kind === \"finite\" ? Number.isFinite(e.data) || (i = this._getOrReturnCtx(e, i), L(i, {\n code: I.not_finite,\n message: s.message\n }), n.dirty()) : X.assertNever(s);\n return { status: n.value, value: e.data };\n }\n gte(e, t) {\n return this.setLimit(\"min\", e, !0, O.toString(t));\n }\n gt(e, t) {\n return this.setLimit(\"min\", e, !1, O.toString(t));\n }\n lte(e, t) {\n return this.setLimit(\"max\", e, !0, O.toString(t));\n }\n lt(e, t) {\n return this.setLimit(\"max\", e, !1, O.toString(t));\n }\n setLimit(e, t, i, n) {\n return new Je({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind: e,\n value: t,\n inclusive: i,\n message: O.toString(n)\n }\n ]\n });\n }\n _addCheck(e) {\n return new Je({\n ...this._def,\n checks: [...this._def.checks, e]\n });\n }\n int(e) {\n return this._addCheck({\n kind: \"int\",\n message: O.toString(e)\n });\n }\n positive(e) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: !1,\n message: O.toString(e)\n });\n }\n negative(e) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: !1,\n message: O.toString(e)\n });\n }\n nonpositive(e) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: !0,\n message: O.toString(e)\n });\n }\n nonnegative(e) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: !0,\n message: O.toString(e)\n });\n }\n multipleOf(e, t) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: e,\n message: O.toString(t)\n });\n }\n finite(e) {\n return this._addCheck({\n kind: \"finite\",\n message: O.toString(e)\n });\n }\n safe(e) {\n return this._addCheck({\n kind: \"min\",\n inclusive: !0,\n value: Number.MIN_SAFE_INTEGER,\n message: O.toString(e)\n })._addCheck({\n kind: \"max\",\n inclusive: !0,\n value: Number.MAX_SAFE_INTEGER,\n message: O.toString(e)\n });\n }\n get minValue() {\n let e = null;\n for (const t of this._def.checks)\n t.kind === \"min\" && (e === null || t.value > e) && (e = t.value);\n return e;\n }\n get maxValue() {\n let e = null;\n for (const t of this._def.checks)\n t.kind === \"max\" && (e === null || t.value < e) && (e = t.value);\n return e;\n }\n get isInt() {\n return !!this._def.checks.find((e) => e.kind === \"int\" || e.kind === \"multipleOf\" && X.isInteger(e.value));\n }\n get isFinite() {\n let e = null, t = null;\n for (const i of this._def.checks) {\n if (i.kind === \"finite\" || i.kind === \"int\" || i.kind === \"multipleOf\")\n return !0;\n i.kind === \"min\" ? (t === null || i.value > t) && (t = i.value) : i.kind === \"max\" && (e === null || i.value < e) && (e = i.value);\n }\n return Number.isFinite(t) && Number.isFinite(e);\n }\n}\nJe.create = (r) => new Je({\n checks: [],\n typeName: N.ZodNumber,\n coerce: r?.coerce || !1,\n ...F(r)\n});\nclass Qe extends U {\n constructor() {\n super(...arguments), this.min = this.gte, this.max = this.lte;\n }\n _parse(e) {\n if (this._def.coerce && (e.data = BigInt(e.data)), this._getType(e) !== j.bigint) {\n const s = this._getOrReturnCtx(e);\n return L(s, {\n code: I.invalid_type,\n expected: j.bigint,\n received: s.parsedType\n }), D;\n }\n let i;\n const n = new fe();\n for (const s of this._def.checks)\n s.kind === \"min\" ? (s.inclusive ? e.data < s.value : e.data <= s.value) && (i = this._getOrReturnCtx(e, i), L(i, {\n code: I.too_small,\n type: \"bigint\",\n minimum: s.value,\n inclusive: s.inclusive,\n message: s.message\n }), n.dirty()) : s.kind === \"max\" ? (s.inclusive ? e.data > s.value : e.data >= s.value) && (i = this._getOrReturnCtx(e, i), L(i, {\n code: I.too_big,\n type: \"bigint\",\n maximum: s.value,\n inclusive: s.inclusive,\n message: s.message\n }), n.dirty()) : s.kind === \"multipleOf\" ? e.data % s.value !== BigInt(0) && (i = this._getOrReturnCtx(e, i), L(i, {\n code: I.not_multiple_of,\n multipleOf: s.value,\n message: s.message\n }), n.dirty()) : X.assertNever(s);\n return { status: n.value, value: e.data };\n }\n gte(e, t) {\n return this.setLimit(\"min\", e, !0, O.toString(t));\n }\n gt(e, t) {\n return this.setLimit(\"min\", e, !1, O.toString(t));\n }\n lte(e, t) {\n return this.setLimit(\"max\", e, !0, O.toString(t));\n }\n lt(e, t) {\n return this.setLimit(\"max\", e, !1, O.toString(t));\n }\n setLimit(e, t, i, n) {\n return new Qe({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind: e,\n value: t,\n inclusive: i,\n message: O.toString(n)\n }\n ]\n });\n }\n _addCheck(e) {\n return new Qe({\n ...this._def,\n checks: [...this._def.checks, e]\n });\n }\n positive(e) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: !1,\n message: O.toString(e)\n });\n }\n negative(e) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: !1,\n message: O.toString(e)\n });\n }\n nonpositive(e) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: !0,\n message: O.toString(e)\n });\n }\n nonnegative(e) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: !0,\n message: O.toString(e)\n });\n }\n multipleOf(e, t) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: e,\n message: O.toString(t)\n });\n }\n get minValue() {\n let e = null;\n for (const t of this._def.checks)\n t.kind === \"min\" && (e === null || t.value > e) && (e = t.value);\n return e;\n }\n get maxValue() {\n let e = null;\n for (const t of this._def.checks)\n t.kind === \"max\" && (e === null || t.value < e) && (e = t.value);\n return e;\n }\n}\nQe.create = (r) => {\n var e;\n return new Qe({\n checks: [],\n typeName: N.ZodBigInt,\n coerce: (e = r?.coerce) !== null && e !== void 0 ? e : !1,\n ...F(r)\n });\n};\nclass Bt extends U {\n _parse(e) {\n if (this._def.coerce && (e.data = !!e.data), this._getType(e) !== j.boolean) {\n const i = this._getOrReturnCtx(e);\n return L(i, {\n code: I.invalid_type,\n expected: j.boolean,\n received: i.parsedType\n }), D;\n }\n return me(e.data);\n }\n}\nBt.create = (r) => new Bt({\n typeName: N.ZodBoolean,\n coerce: r?.coerce || !1,\n ...F(r)\n});\nclass nt extends U {\n _parse(e) {\n if (this._def.coerce && (e.data = new Date(e.data)), this._getType(e) !== j.date) {\n const s = this._getOrReturnCtx(e);\n return L(s, {\n code: I.invalid_type,\n expected: j.date,\n received: s.parsedType\n }), D;\n }\n if (isNaN(e.data.getTime())) {\n const s = this._getOrReturnCtx(e);\n return L(s, {\n code: I.invalid_date\n }), D;\n }\n const i = new fe();\n let n;\n for (const s of this._def.checks)\n s.kind === \"min\" ? e.data.getTime() < s.value && (n = this._getOrReturnCtx(e, n), L(n, {\n code: I.too_small,\n message: s.message,\n inclusive: !0,\n exact: !1,\n minimum: s.value,\n type: \"date\"\n }), i.dirty()) : s.kind === \"max\" ? e.data.getTime() > s.value && (n = this._getOrReturnCtx(e, n), L(n, {\n code: I.too_big,\n message: s.message,\n inclusive: !0,\n exact: !1,\n maximum: s.value,\n type: \"date\"\n }), i.dirty()) : X.assertNever(s);\n return {\n status: i.value,\n value: new Date(e.data.getTime())\n };\n }\n _addCheck(e) {\n return new nt({\n ...this._def,\n checks: [...this._def.checks, e]\n });\n }\n min(e, t) {\n return this._addCheck({\n kind: \"min\",\n value: e.getTime(),\n message: O.toString(t)\n });\n }\n max(e, t) {\n return this._addCheck({\n kind: \"max\",\n value: e.getTime(),\n message: O.toString(t)\n });\n }\n get minDate() {\n let e = null;\n for (const t of this._def.checks)\n t.kind === \"min\" && (e === null || t.value > e) && (e = t.value);\n return e != null ? new Date(e) : null;\n }\n get maxDate() {\n let e = null;\n for (const t of this._def.checks)\n t.kind === \"max\" && (e === null || t.value < e) && (e = t.value);\n return e != null ? new Date(e) : null;\n }\n}\nnt.create = (r) => new nt({\n checks: [],\n coerce: r?.coerce || !1,\n typeName: N.ZodDate,\n ...F(r)\n});\nclass Nr extends U {\n _parse(e) {\n if (this._getType(e) !== j.symbol) {\n const i = this._getOrReturnCtx(e);\n return L(i, {\n code: I.invalid_type,\n expected: j.symbol,\n received: i.parsedType\n }), D;\n }\n return me(e.data);\n }\n}\nNr.create = (r) => new Nr({\n typeName: N.ZodSymbol,\n ...F(r)\n});\nclass Ut extends U {\n _parse(e) {\n if (this._getType(e) !== j.undefined) {\n const i = this._getOrReturnCtx(e);\n return L(i, {\n code: I.invalid_type,\n expected: j.undefined,\n received: i.parsedType\n }), D;\n }\n return me(e.data);\n }\n}\nUt.create = (r) => new Ut({\n typeName: N.ZodUndefined,\n ...F(r)\n});\nclass Wt extends U {\n _parse(e) {\n if (this._getType(e) !== j.null) {\n const i = this._getOrReturnCtx(e);\n return L(i, {\n code: I.invalid_type,\n expected: j.null,\n received: i.parsedType\n }), D;\n }\n return me(e.data);\n }\n}\nWt.create = (r) => new Wt({\n typeName: N.ZodNull,\n ...F(r)\n});\nclass bt extends U {\n constructor() {\n super(...arguments), this._any = !0;\n }\n _parse(e) {\n return me(e.data);\n }\n}\nbt.create = (r) => new bt({\n typeName: N.ZodAny,\n ...F(r)\n});\nclass it extends U {\n constructor() {\n super(...arguments), this._unknown = !0;\n }\n _parse(e) {\n return me(e.data);\n }\n}\nit.create = (r) => new it({\n typeName: N.ZodUnknown,\n ...F(r)\n});\nclass Ze extends U {\n _parse(e) {\n const t = this._getOrReturnCtx(e);\n return L(t, {\n code: I.invalid_type,\n expected: j.never,\n received: t.parsedType\n }), D;\n }\n}\nZe.create = (r) => new Ze({\n typeName: N.ZodNever,\n ...F(r)\n});\nclass Dr extends U {\n _parse(e) {\n if (this._getType(e) !== j.undefined) {\n const i = this._getOrReturnCtx(e);\n return L(i, {\n code: I.invalid_type,\n expected: j.void,\n received: i.parsedType\n }), D;\n }\n return me(e.data);\n }\n}\nDr.create = (r) => new Dr({\n typeName: N.ZodVoid,\n ...F(r)\n});\nclass Ae extends U {\n _parse(e) {\n const { ctx: t, status: i } = this._processInputParams(e), n = this._def;\n if (t.parsedType !== j.array)\n return L(t, {\n code: I.invalid_type,\n expected: j.array,\n received: t.parsedType\n }), D;\n if (n.exactLength !== null) {\n const o = t.data.length > n.exactLength.value, a = t.data.length < n.exactLength.value;\n (o || a) && (L(t, {\n code: o ? I.too_big : I.too_small,\n minimum: a ? n.exactLength.value : void 0,\n maximum: o ? n.exactLength.value : void 0,\n type: \"array\",\n inclusive: !0,\n exact: !0,\n message: n.exactLength.message\n }), i.dirty());\n }\n if (n.minLength !== null && t.data.length < n.minLength.value && (L(t, {\n code: I.too_small,\n minimum: n.minLength.value,\n type: \"array\",\n inclusive: !0,\n exact: !1,\n message: n.minLength.message\n }), i.dirty()), n.maxLength !== null && t.data.length > n.maxLength.value && (L(t, {\n code: I.too_big,\n maximum: n.maxLength.value,\n type: \"array\",\n inclusive: !0,\n exact: !1,\n message: n.maxLength.message\n }), i.dirty()), t.common.async)\n return Promise.all([...t.data].map((o, a) => n.type._parseAsync(new Le(t, o, t.path, a)))).then((o) => fe.mergeArray(i, o));\n const s = [...t.data].map((o, a) => n.type._parseSync(new Le(t, o, t.path, a)));\n return fe.mergeArray(i, s);\n }\n get element() {\n return this._def.type;\n }\n min(e, t) {\n return new Ae({\n ...this._def,\n minLength: { value: e, message: O.toString(t) }\n });\n }\n max(e, t) {\n return new Ae({\n ...this._def,\n maxLength: { value: e, message: O.toString(t) }\n });\n }\n length(e, t) {\n return new Ae({\n ...this._def,\n exactLength: { value: e, message: O.toString(t) }\n });\n }\n nonempty(e) {\n return this.min(1, e);\n }\n}\nAe.create = (r, e) => new Ae({\n type: r,\n minLength: null,\n maxLength: null,\n exactLength: null,\n typeName: N.ZodArray,\n ...F(e)\n});\nfunction ft(r) {\n if (r instanceof ee) {\n const e = {};\n for (const t in r.shape) {\n const i = r.shape[t];\n e[t] = ke.create(ft(i));\n }\n return new ee({\n ...r._def,\n shape: () => e\n });\n } else\n return r instanceof Ae ? new Ae({\n ...r._def,\n type: ft(r.element)\n }) : r instanceof ke ? ke.create(ft(r.unwrap())) : r instanceof et ? et.create(ft(r.unwrap())) : r instanceof je ? je.create(r.items.map((e) => ft(e))) : r;\n}\nclass ee extends U {\n constructor() {\n super(...arguments), this._cached = null, this.nonstrict = this.passthrough, this.augment = this.extend;\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const e = this._def.shape(), t = X.objectKeys(e);\n return this._cached = { shape: e, keys: t };\n }\n _parse(e) {\n if (this._getType(e) !== j.object) {\n const c = this._getOrReturnCtx(e);\n return L(c, {\n code: I.invalid_type,\n expected: j.object,\n received: c.parsedType\n }), D;\n }\n const { status: i, ctx: n } = this._processInputParams(e), { shape: s, keys: o } = this._getCached(), a = [];\n if (!(this._def.catchall instanceof Ze && this._def.unknownKeys === \"strip\"))\n for (const c in n.data)\n o.includes(c) || a.push(c);\n const l = [];\n for (const c of o) {\n const h = s[c], u = n.data[c];\n l.push({\n key: { status: \"valid\", value: c },\n value: h._parse(new Le(n, u, n.path, c)),\n alwaysSet: c in n.data\n });\n }\n if (this._def.catchall instanceof Ze) {\n const c = this._def.unknownKeys;\n if (c === \"passthrough\")\n for (const h of a)\n l.push({\n key: { status: \"valid\", value: h },\n value: { status: \"valid\", value: n.data[h] }\n });\n else if (c === \"strict\")\n a.length > 0 && (L(n, {\n code: I.unrecognized_keys,\n keys: a\n }), i.dirty());\n else if (c !== \"strip\")\n throw new Error(\"Internal ZodObject error: invalid unknownKeys value.\");\n } else {\n const c = this._def.catchall;\n for (const h of a) {\n const u = n.data[h];\n l.push({\n key: { status: \"valid\", value: h },\n value: c._parse(\n new Le(n, u, n.path, h)\n //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: h in n.data\n });\n }\n }\n return n.common.async ? Promise.resolve().then(async () => {\n const c = [];\n for (const h of l) {\n const u = await h.key, g = await h.value;\n c.push({\n key: u,\n value: g,\n alwaysSet: h.alwaysSet\n });\n }\n return c;\n }).then((c) => fe.mergeObjectSync(i, c)) : fe.mergeObjectSync(i, l);\n }\n get shape() {\n return this._def.shape();\n }\n strict(e) {\n return O.errToObj, new ee({\n ...this._def,\n unknownKeys: \"strict\",\n ...e !== void 0 ? {\n errorMap: (t, i) => {\n var n, s, o, a;\n const l = (o = (s = (n = this._def).errorMap) === null || s === void 0 ? void 0 : s.call(n, t, i).message) !== null && o !== void 0 ? o : i.defaultError;\n return t.code === \"unrecognized_keys\" ? {\n message: (a = O.errToObj(e).message) !== null && a !== void 0 ? a : l\n } : {\n message: l\n };\n }\n } : {}\n });\n }\n strip() {\n return new ee({\n ...this._def,\n unknownKeys: \"strip\"\n });\n }\n passthrough() {\n return new ee({\n ...this._def,\n unknownKeys: \"passthrough\"\n });\n }\n // const AugmentFactory =\n // <Def extends ZodObjectDef>(def: Def) =>\n // <Augmentation extends ZodRawShape>(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<ReturnType<Def[\"shape\"]>, Augmentation>,\n // Def[\"unknownKeys\"],\n // Def[\"catchall\"]\n // > => {\n // return new ZodObject({\n // ...def,\n // shape: () => ({\n // ...def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // };\n extend(e) {\n return new ee({\n ...this._def,\n shape: () => ({\n ...this._def.shape(),\n ...e\n })\n });\n }\n /**\n * Prior to zod@1.0.12 there was a bug in the\n * inferred type of merged objects. Please\n * upgrade if you are experiencing issues.\n */\n merge(e) {\n return new ee({\n unknownKeys: e._def.unknownKeys,\n catchall: e._def.catchall,\n shape: () => ({\n ...this._def.shape(),\n ...e._def.shape()\n }),\n typeName: N.ZodObject\n });\n }\n // merge<\n // Incoming extends AnyZodObject,\n // Augmentation extends Incoming[\"shape\"],\n // NewOutput extends {\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // },\n // NewInput extends {\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }\n // >(\n // merging: Incoming\n // ): ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"],\n // NewOutput,\n // NewInput\n // > {\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n setKey(e, t) {\n return this.augment({ [e]: t });\n }\n // merge<Incoming extends AnyZodObject>(\n // merging: Incoming\n // ): //ZodObject<T & Incoming[\"_shape\"], UnknownKeys, Catchall> = (merging) => {\n // ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"]\n // > {\n // // const mergedShape = objectUtil.mergeShapes(\n // // this._def.shape(),\n // // merging._def.shape()\n // // );\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n catchall(e) {\n return new ee({\n ...this._def,\n catchall: e\n });\n }\n pick(e) {\n const t = {};\n return X.objectKeys(e).forEach((i) => {\n e[i] && this.shape[i] && (t[i] = this.shape[i]);\n }), new ee({\n ...this._def,\n shape: () => t\n });\n }\n omit(e) {\n const t = {};\n return X.objectKeys(this.shape).forEach((i) => {\n e[i] || (t[i] = this.shape[i]);\n }), new ee({\n ...this._def,\n shape: () => t\n });\n }\n /**\n * @deprecated\n */\n deepPartial() {\n return ft(this);\n }\n partial(e) {\n const t = {};\n return X.objectKeys(this.shape).forEach((i) => {\n const n = this.shape[i];\n e && !e[i] ? t[i] = n : t[i] = n.optional();\n }), new ee({\n ...this._def,\n shape: () => t\n });\n }\n required(e) {\n const t = {};\n return X.objectKeys(this.shape).forEach((i) => {\n if (e && !e[i])\n t[i] = this.shape[i];\n else {\n let s = this.shape[i];\n for (; s instanceof ke; )\n s = s._def.innerType;\n t[i] = s;\n }\n }), new ee({\n ...this._def,\n shape: () => t\n });\n }\n keyof() {\n return hs(X.objectKeys(this.shape));\n }\n}\nee.create = (r, e) => new ee({\n shape: () => r,\n unknownKeys: \"strip\",\n catchall: Ze.create(),\n typeName: N.ZodObject,\n ...F(e)\n});\nee.strictCreate = (r, e) => new ee({\n shape: () => r,\n unknownKeys: \"strict\",\n catchall: Ze.create(),\n typeName: N.ZodObject,\n ...F(e)\n});\nee.lazycreate = (r, e) => new ee({\n shape: r,\n unknownKeys: \"strip\",\n catchall: Ze.create(),\n typeName: N.ZodObject,\n ...F(e)\n});\nclass Vt extends U {\n _parse(e) {\n const { ctx: t } = this._processInputParams(e), i = this._def.options;\n function n(s) {\n for (const a of s)\n if (a.result.status === \"valid\")\n return a.result;\n for (const a of s)\n if (a.result.status === \"dirty\")\n return t.common.issues.push(...a.ctx.common.issues), a.result;\n const o = s.map((a) => new xe(a.ctx.common.issues));\n return L(t, {\n code: I.invalid_union,\n unionErrors: o\n }), D;\n }\n if (t.common.async)\n return Promise.all(i.map(async (s) => {\n const o = {\n ...t,\n common: {\n ...t.common,\n issues: []\n },\n parent: null\n };\n return {\n result: await s._parseAsync({\n data: t.data,\n path: t.path,\n parent: o\n }),\n ctx: o\n };\n })).then(n);\n {\n let s;\n const o = [];\n for (const l of i) {\n const c = {\n ...t,\n common: {\n ...t.common,\n issues: []\n },\n parent: null\n }, h = l._parseSync({\n data: t.data,\n path: t.path,\n parent: c\n });\n if (h.status === \"valid\")\n return h;\n h.status === \"dirty\" && !s && (s = { result: h, ctx: c }), c.common.issues.length && o.push(c.common.issues);\n }\n if (s)\n return t.common.issues.push(...s.ctx.common.issues), s.result;\n const a = o.map((l) => new xe(l));\n return L(t, {\n code: I.invalid_union,\n unionErrors: a\n }), D;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nVt.create = (r, e) => new Vt({\n options: r,\n typeName: N.ZodUnion,\n ...F(e)\n});\nconst $e = (r) => r instanceof qt ? $e(r.schema) : r instanceof Ce ? $e(r.innerType()) : r instanceof Zt ? [r.value] : r instanceof Ke ? r.options : r instanceof Xt ? X.objectValues(r.enum) : r instanceof Ht ? $e(r._def.innerType) : r instanceof Ut ? [void 0] : r instanceof Wt ? [null] : r instanceof ke ? [void 0, ...$e(r.unwrap())] : r instanceof et ? [null, ...$e(r.unwrap())] : r instanceof Vi || r instanceof Jt ? $e(r.unwrap()) : r instanceof Yt ? $e(r._def.innerType) : [];\nclass Yr extends U {\n _parse(e) {\n const { ctx: t } = this._processInputParams(e);\n if (t.parsedType !== j.object)\n return L(t, {\n code: I.invalid_type,\n expected: j.object,\n received: t.parsedType\n }), D;\n const i = this.discriminator, n = t.data[i], s = this.optionsMap.get(n);\n return s ? t.common.async ? s._parseAsync({\n data: t.data,\n path: t.path,\n parent: t\n }) : s._parseSync({\n data: t.data,\n path: t.path,\n parent: t\n }) : (L(t, {\n code: I.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [i]\n }), D);\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get options() {\n return this._def.options;\n }\n get optionsMap() {\n return this._def.optionsMap;\n }\n /**\n * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n * have a different value for each object in the union.\n * @param discriminator the name of the discriminator property\n * @param types an array of object schemas\n * @param params\n */\n static create(e, t, i) {\n const n = /* @__PURE__ */ new Map();\n for (const s of t) {\n const o = $e(s.shape[e]);\n if (!o.length)\n throw new Error(`A discriminator value for key \\`${e}\\` could not be extracted from all schema options`);\n for (const a of o) {\n if (n.has(a))\n throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(a)}`);\n n.set(a, s);\n }\n }\n return new Yr({\n typeName: N.ZodDiscriminatedUnion,\n discriminator: e,\n options: t,\n optionsMap: n,\n ...F(i)\n });\n }\n}\nfunction Ci(r, e) {\n const t = He(r), i = He(e);\n if (r === e)\n return { valid: !0, data: r };\n if (t === j.object && i === j.object) {\n const n = X.objectKeys(e), s = X.objectKeys(r).filter((a) => n.indexOf(a) !== -1), o = { ...r, ...e };\n for (const a of s) {\n const l = Ci(r[a], e[a]);\n if (!l.valid)\n return { valid: !1 };\n o[a] = l.data;\n }\n return { valid: !0, data: o };\n } else if (t === j.array && i === j.array) {\n if (r.length !== e.length)\n return { valid: !1 };\n const n = [];\n for (let s = 0; s < r.length; s++) {\n const o = r[s], a = e[s], l = Ci(o, a);\n if (!l.valid)\n return { valid: !1 };\n n.push(l.data);\n }\n return { valid: !0, data: n };\n } else\n return t === j.date && i === j.date && +r == +e ? { valid: !0, data: r } : { valid: !1 };\n}\nclass zt extends U {\n _parse(e) {\n const { status: t, ctx: i } = this._processInputParams(e), n = (s, o) => {\n if (Ii(s) || Ii(o))\n return D;\n const a = Ci(s.value, o.value);\n return a.valid ? ((Ai(s) || Ai(o)) && t.dirty(), { status: t.value, value: a.data }) : (L(i, {\n code: I.invalid_intersection_types\n }), D);\n };\n return i.common.async ? Promise.all([\n this._def.left._parseAsync({\n data: i.data,\n path: i.path,\n parent: i\n }),\n this._def.right._parseAsync({\n data: i.data,\n path: i.path,\n parent: i\n })\n ]).then(([s, o]) => n(s, o)) : n(this._def.left._parseSync({\n data: i.data,\n path: i.path,\n parent: i\n }), this._def.right._parseSync({\n data: i.data,\n path: i.path,\n parent: i\n }));\n }\n}\nzt.create = (r, e, t) => new zt({\n left: r,\n right: e,\n typeName: N.ZodIntersection,\n ...F(t)\n});\nclass je extends U {\n _parse(e) {\n const { status: t, ctx: i } = this._processInputParams(e);\n if (i.parsedType !== j.array)\n return L(i, {\n code: I.invalid_type,\n expected: j.array,\n received: i.parsedType\n }), D;\n if (i.data.length < this._def.items.length)\n return L(i, {\n code: I.too_small,\n minimum: this._def.items.length,\n inclusive: !0,\n exact: !1,\n type: \"array\"\n }), D;\n !this._def.rest && i.data.length > this._def.items.length && (L(i, {\n code: I.too_big,\n maximum: this._def.items.length,\n inclusive: !0,\n exact: !1,\n type: \"array\"\n }), t.dirty());\n const s = [...i.data].map((o, a) => {\n const l = this._def.items[a] || this._def.rest;\n return l ? l._parse(new Le(i, o, i.path, a)) : null;\n }).filter((o) => !!o);\n return i.common.async ? Promise.all(s).then((o) => fe.mergeArray(t, o)) : fe.mergeArray(t, s);\n }\n get items() {\n return this._def.items;\n }\n rest(e) {\n return new je({\n ...this._def,\n rest: e\n });\n }\n}\nje.create = (r, e) => {\n if (!Array.isArray(r))\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n return new je({\n items: r,\n typeName: N.ZodTuple,\n rest: null,\n ...F(e)\n });\n};\nclass $t extends U {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(e) {\n const { status: t, ctx: i } = this._processInputParams(e);\n if (i.parsedType !== j.object)\n return L(i, {\n code: I.invalid_type,\n expected: j.object,\n received: i.parsedType\n }), D;\n const n = [], s = this._def.keyType, o = this._def.valueType;\n for (const a in i.data)\n n.push({\n key: s._parse(new Le(i, a, i.path, a)),\n value: o._parse(new Le(i, i.data[a], i.path, a)),\n alwaysSet: a in i.data\n });\n return i.common.async ? fe.mergeObjectAsync(t, n) : fe.mergeObjectSync(t, n);\n }\n get element() {\n return this._def.valueType;\n }\n static create(e, t, i) {\n return t instanceof U ? new $t({\n keyType: e,\n valueType: t,\n typeName: N.ZodRecord,\n ...F(i)\n }) : new $t({\n keyType: Re.create(),\n valueType: e,\n typeName: N.ZodRecord,\n ...F(t)\n });\n }\n}\nclass Fr extends U {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(e) {\n const { status: t, ctx: i } = this._processInputParams(e);\n if (i.parsedType !== j.map)\n return L(i, {\n code: I.invalid_type,\n expected: j.map,\n received: i.parsedType\n }), D;\n const n = this._def.keyType, s = this._def.valueType, o = [...i.data.entries()].map(([a, l], c) => ({\n key: n._parse(new Le(i, a, i.path, [c, \"key\"])),\n value: s._parse(new Le(i, l, i.path, [c, \"value\"]))\n }));\n if (i.common.async) {\n const a = /* @__PURE__ */ new Map();\n return Promise.resolve().then(async () => {\n for (const l of o) {\n const c = await l.key, h = await l.value;\n if (c.status === \"aborted\" || h.status === \"aborted\")\n return D;\n (c.status === \"dirty\" || h.status === \"dirty\") && t.dirty(), a.set(c.value, h.value);\n }\n return { status: t.value, value: a };\n });\n } else {\n const a = /* @__PURE__ */ new Map();\n for (const l of o) {\n const c = l.key, h = l.value;\n if (c.status === \"aborted\" || h.status === \"aborted\")\n return D;\n (c.status === \"dirty\" || h.status === \"dirty\") && t.dirty(), a.set(c.value, h.value);\n }\n return { status: t.value, value: a };\n }\n }\n}\nFr.create = (r, e, t) => new Fr({\n valueType: e,\n keyType: r,\n typeName: N.ZodMap,\n ...F(t)\n});\nclass st extends U {\n _parse(e) {\n const { status: t, ctx: i } = this._processInputParams(e);\n if (i.parsedType !== j.set)\n return L(i, {\n code: I.invalid_type,\n expected: j.set,\n received: i.parsedType\n }), D;\n const n = this._def;\n n.minSize !== null && i.data.size < n.minSize.value && (L(i, {\n code: I.too_small,\n minimum: n.minSize.value,\n type: \"set\",\n inclusive: !0,\n exact: !1,\n message: n.minSize.message\n }), t.dirty()), n.maxSize !== null && i.data.size > n.maxSize.value && (L(i, {\n code: I.too_big,\n maximum: n.maxSize.value,\n type: \"set\",\n inclusive: !0,\n exact: !1,\n message: n.maxSize.message\n }), t.dirty());\n const s = this._def.valueType;\n function o(l) {\n const c = /* @__PURE__ */ new Set();\n for (const h of l) {\n if (h.status === \"aborted\")\n return D;\n h.status === \"dirty\" && t.dirty(), c.add(h.value);\n }\n return { status: t.value, value: c };\n }\n const a = [...i.data.values()].map((l, c) => s._parse(new Le(i, l, i.path, c)));\n return i.common.async ? Promise.all(a).then((l) => o(l)) : o(a);\n }\n min(e, t) {\n return new st({\n ...this._def,\n minSize: { value: e, message: O.toString(t) }\n });\n }\n max(e, t) {\n return new st({\n ...this._def,\n maxSize: { value: e, message: O.toString(t) }\n });\n }\n size(e, t) {\n return this.min(e, t).max(e, t);\n }\n nonempty(e) {\n return this.min(1, e);\n }\n}\nst.create = (r, e) => new st({\n valueType: r,\n minSize: null,\n maxSize: null,\n typeName: N.ZodSet,\n ...F(e)\n});\nclass yt extends U {\n constructor() {\n super(...arguments), this.validate = this.implement;\n }\n _parse(e) {\n const { ctx: t } = this._processInputParams(e);\n if (t.parsedType !== j.function)\n return L(t, {\n code: I.invalid_type,\n expected: j.function,\n received: t.parsedType\n }), D;\n function i(a, l) {\n return jr({\n data: a,\n path: t.path,\n errorMaps: [\n t.common.contextualErrorMap,\n t.schemaErrorMap,\n Lr(),\n xt\n ].filter((c) => !!c),\n issueData: {\n code: I.invalid_arguments,\n argumentsError: l\n }\n });\n }\n function n(a, l) {\n return jr({\n data: a,\n path: t.path,\n errorMaps: [\n t.common.contextualErrorMap,\n t.schemaErrorMap,\n Lr(),\n xt\n ].filter((c) => !!c),\n issueData: {\n code: I.invalid_return_type,\n returnTypeError: l\n }\n });\n }\n const s = { errorMap: t.common.contextualErrorMap }, o = t.data;\n if (this._def.returns instanceof Mt) {\n const a = this;\n return me(async function(...l) {\n const c = new xe([]), h = await a._def.args.parseAsync(l, s).catch((y) => {\n throw c.addIssue(i(l, y)), c;\n }), u = await Reflect.apply(o, this, h);\n return await a._def.returns._def.type.parseAsync(u, s).catch((y) => {\n throw c.addIssue(n(u, y)), c;\n });\n });\n } else {\n const a = this;\n return me(function(...l) {\n const c = a._def.args.safeParse(l, s);\n if (!c.success)\n throw new xe([i(l, c.error)]);\n const h = Reflect.apply(o, this, c.data), u = a._def.returns.safeParse(h, s);\n if (!u.success)\n throw new xe([n(h, u.error)]);\n return u.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...e) {\n return new yt({\n ...this._def,\n args: je.create(e).rest(it.create())\n });\n }\n returns(e) {\n return new yt({\n ...this._def,\n returns: e\n });\n }\n implement(e) {\n return this.parse(e);\n }\n strictImplement(e) {\n return this.parse(e);\n }\n static create(e, t, i) {\n return new yt({\n args: e || je.create([]).rest(it.create()),\n returns: t || it.create(),\n typeName: N.ZodFunction,\n ...F(i)\n });\n }\n}\nclass qt extends U {\n get schema() {\n return this._def.getter();\n }\n _parse(e) {\n const { ctx: t } = this._processInputParams(e);\n return this._def.getter()._parse({ data: t.data, path: t.path, parent: t });\n }\n}\nqt.create = (r, e) => new qt({\n getter: r,\n typeName: N.ZodLazy,\n ...F(e)\n});\nclass Zt extends U {\n _parse(e) {\n if (e.data !== this._def.value) {\n const t = this._getOrReturnCtx(e);\n return L(t, {\n received: t.data,\n code: I.invalid_literal,\n expected: this._def.value\n }), D;\n }\n return { status: \"valid\", value: e.data };\n }\n get value() {\n return this._def.value;\n }\n}\nZt.create = (r, e) => new Zt({\n value: r,\n typeName: N.ZodLiteral,\n ...F(e)\n});\nfunction hs(r, e) {\n return new Ke({\n values: r,\n typeName: N.ZodEnum,\n ...F(e)\n });\n}\nclass Ke extends U {\n constructor() {\n super(...arguments), jt.set(this, void 0);\n }\n _parse(e) {\n if (typeof e.data != \"string\") {\n const t = this._getOrReturnCtx(e), i = this._def.values;\n return L(t, {\n expected: X.joinValues(i),\n received: t.parsedType,\n code: I.invalid_type\n }), D;\n }\n if (Or(this, jt) || os(this, jt, new Set(this._def.values)), !Or(this, jt).has(e.data)) {\n const t = this._getOrReturnCtx(e), i = this._def.values;\n return L(t, {\n received: t.data,\n code: I.invalid_enum_value,\n options: i\n }), D;\n }\n return me(e.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const e = {};\n for (const t of this._def.values)\n e[t] = t;\n return e;\n }\n get Values() {\n const e = {};\n for (const t of this._def.values)\n e[t] = t;\n return e;\n }\n get Enum() {\n const e = {};\n for (const t of this._def.values)\n e[t] = t;\n return e;\n }\n extract(e, t = this._def) {\n return Ke.create(e, {\n ...this._def,\n ...t\n });\n }\n exclude(e, t = this._def) {\n return Ke.create(this.options.filter((i) => !e.includes(i)), {\n ...this._def,\n ...t\n });\n }\n}\njt = /* @__PURE__ */ new WeakMap();\nKe.create = hs;\nclass Xt extends U {\n constructor() {\n super(...arguments), Ot.set(this, void 0);\n }\n _parse(e) {\n const t = X.getValidEnumValues(this._def.values), i = this._getOrReturnCtx(e);\n if (i.parsedType !== j.string && i.parsedType !== j.number) {\n const n = X.objectValues(t);\n return L(i, {\n expected: X.joinValues(n),\n received: i.parsedType,\n code: I.invalid_type\n }), D;\n }\n if (Or(this, Ot) || os(this, Ot, new Set(X.getValidEnumValues(this._def.values))), !Or(this, Ot).has(e.data)) {\n const n = X.objectValues(t);\n return L(i, {\n received: i.data,\n code: I.invalid_enum_value,\n options: n\n }), D;\n }\n return me(e.data);\n }\n get enum() {\n return this._def.values;\n }\n}\nOt = /* @__PURE__ */ new WeakMap();\nXt.create = (r, e) => new Xt({\n values: r,\n typeName: N.ZodNativeEnum,\n ...F(e)\n});\nclass Mt extends U {\n unwrap() {\n return this._def.type;\n }\n _parse(e) {\n const { ctx: t } = this._processInputParams(e);\n if (t.parsedType !== j.promise && t.common.async === !1)\n return L(t, {\n code: I.invalid_type,\n expected: j.promise,\n received: t.parsedType\n }), D;\n const i = t.parsedType === j.promise ? t.data : Promise.resolve(t.data);\n return me(i.then((n) => this._def.type.parseAsync(n, {\n path: t.path,\n errorMap: t.common.contextualErrorMap\n })));\n }\n}\nMt.create = (r, e) => new Mt({\n type: r,\n typeName: N.ZodPromise,\n ...F(e)\n});\nclass Ce extends U {\n innerType() {\n return this._def.schema;\n }\n sourceType() {\n return this._def.schema._def.typeName === N.ZodEffects ? this._def.schema.sourceType() : this._def.schema;\n }\n _parse(e) {\n const { status: t, ctx: i } = this._processInputParams(e), n = this._def.effect || null, s = {\n addIssue: (o) => {\n L(i, o), o.fatal ? t.abort() : t.dirty();\n },\n get path() {\n return i.path;\n }\n };\n if (s.addIssue = s.addIssue.bind(s), n.type === \"preprocess\") {\n const o = n.transform(i.data, s);\n if (i.common.async)\n return Promise.resolve(o).then(async (a) => {\n if (t.value === \"aborted\")\n return D;\n const l = await this._def.schema._parseAsync({\n data: a,\n path: i.path,\n parent: i\n });\n return l.status === \"aborted\" ? D : l.status === \"dirty\" || t.value === \"dirty\" ? vt(l.value) : l;\n });\n {\n if (t.value === \"aborted\")\n return D;\n const a = this._def.schema._parseSync({\n data: o,\n path: i.path,\n parent: i\n });\n return a.status === \"aborted\" ? D : a.status === \"dirty\" || t.value === \"dirty\" ? vt(a.value) : a;\n }\n }\n if (n.type === \"refinement\") {\n const o = (a) => {\n const l = n.refinement(a, s);\n if (i.common.async)\n return Promise.resolve(l);\n if (l instanceof Promise)\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n return a;\n };\n if (i.common.async === !1) {\n const a = this._def.schema._parseSync({\n data: i.data,\n path: i.path,\n parent: i\n });\n return a.status === \"aborted\" ? D : (a.status === \"dirty\" && t.dirty(), o(a.value), { status: t.value, value: a.value });\n } else\n return this._def.schema._parseAsync({ data: i.data, path: i.path, parent: i }).then((a) => a.status === \"aborted\" ? D : (a.status === \"dirty\" && t.dirty(), o(a.value).then(() => ({ status: t.value, value: a.value }))));\n }\n if (n.type === \"transform\")\n if (i.common.async === !1) {\n const o = this._def.schema._parseSync({\n data: i.data,\n path: i.path,\n parent: i\n });\n if (!Ft(o))\n return o;\n const a = n.transform(o.value, s);\n if (a instanceof Promise)\n throw new Error(\"Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.\");\n return { status: t.value, value: a };\n } else\n return this._def.schema._parseAsync({ data: i.data, path: i.path, parent: i }).then((o) => Ft(o) ? Promise.resolve(n.transform(o.value, s)).then((a) => ({ status: t.value, value: a })) : o);\n X.assertNever(n);\n }\n}\nCe.create = (r, e, t) => new Ce({\n schema: r,\n typeName: N.ZodEffects,\n effect: e,\n ...F(t)\n});\nCe.createWithPreprocess = (r, e, t) => new Ce({\n schema: e,\n effect: { type: \"preprocess\", transform: r },\n typeName: N.ZodEffects,\n ...F(t)\n});\nclass ke extends U {\n _parse(e) {\n return this._getType(e) === j.undefined ? me(void 0) : this._def.innerType._parse(e);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nke.create = (r, e) => new ke({\n innerType: r,\n typeName: N.ZodOptional,\n ...F(e)\n});\nclass et extends U {\n _parse(e) {\n return this._getType(e) === j.null ? me(null) : this._def.innerType._parse(e);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\net.create = (r, e) => new et({\n innerType: r,\n typeName: N.ZodNullable,\n ...F(e)\n});\nclass Ht extends U {\n _parse(e) {\n const { ctx: t } = this._processInputParams(e);\n let i = t.data;\n return t.parsedType === j.undefined && (i = this._def.defaultValue()), this._def.innerType._parse({\n data: i,\n path: t.path,\n parent: t\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nHt.create = (r, e) => new Ht({\n innerType: r,\n typeName: N.ZodDefault,\n defaultValue: typeof e.default == \"function\" ? e.default : () => e.default,\n ...F(e)\n});\nclass Yt extends U {\n _parse(e) {\n const { ctx: t } = this._processInputParams(e), i = {\n ...t,\n common: {\n ...t.common,\n issues: []\n }\n }, n = this._def.innerType._parse({\n data: i.data,\n path: i.path,\n parent: {\n ...i\n }\n });\n return Gt(n) ? n.then((s) => ({\n status: \"valid\",\n value: s.status === \"valid\" ? s.value : this._def.catchValue({\n get error() {\n return new xe(i.common.issues);\n },\n input: i.data\n })\n })) : {\n status: \"valid\",\n value: n.status === \"valid\" ? n.value : this._def.catchValue({\n get error() {\n return new xe(i.common.issues);\n },\n input: i.data\n })\n };\n }\n removeCatch() {\n return this._def.innerType;\n }\n}\nYt.create = (r, e) => new Yt({\n innerType: r,\n typeName: N.ZodCatch,\n catchValue: typeof e.catch == \"function\" ? e.catch : () => e.catch,\n ...F(e)\n});\nclass Gr extends U {\n _parse(e) {\n if (this._getType(e) !== j.nan) {\n const i = this._getOrReturnCtx(e);\n return L(i, {\n code: I.invalid_type,\n expected: j.nan,\n received: i.parsedType\n }), D;\n }\n return { status: \"valid\", value: e.data };\n }\n}\nGr.create = (r) => new Gr({\n typeName: N.ZodNaN,\n ...F(r)\n});\nconst Ya = Symbol(\"zod_brand\");\nclass Vi extends U {\n _parse(e) {\n const { ctx: t } = this._processInputParams(e), i = t.data;\n return this._def.type._parse({\n data: i,\n path: t.path,\n parent: t\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\nclass er extends U {\n _parse(e) {\n const { status: t, ctx: i } = this._processInputParams(e);\n if (i.common.async)\n return (async () => {\n const s = await this._def.in._parseAsync({\n data: i.data,\n path: i.path,\n parent: i\n });\n return s.status === \"aborted\" ? D : s.status === \"dirty\" ? (t.dirty(), vt(s.value)) : this._def.out._parseAsync({\n data: s.value,\n path: i.path,\n parent: i\n });\n })();\n {\n const n = this._def.in._parseSync({\n data: i.data,\n path: i.path,\n parent: i\n });\n return n.status === \"aborted\" ? D : n.status === \"dirty\" ? (t.dirty(), {\n status: \"dirty\",\n value: n.value\n }) : this._def.out._parseSync({\n data: n.value,\n path: i.path,\n parent: i\n });\n }\n }\n static create(e, t) {\n return new er({\n in: e,\n out: t,\n typeName: N.ZodPipeline\n });\n }\n}\nclass Jt extends U {\n _parse(e) {\n const t = this._def.innerType._parse(e), i = (n) => (Ft(n) && (n.value = Object.freeze(n.value)), n);\n return Gt(t) ? t.then((n) => i(n)) : i(t);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nJt.create = (r, e) => new Jt({\n innerType: r,\n typeName: N.ZodReadonly,\n ...F(e)\n});\nfunction us(r, e = {}, t) {\n return r ? bt.create().superRefine((i, n) => {\n var s, o;\n if (!r(i)) {\n const a = typeof e == \"function\" ? e(i) : typeof e == \"string\" ? { message: e } : e, l = (o = (s = a.fatal) !== null && s !== void 0 ? s : t) !== null && o !== void 0 ? o : !0, c = typeof a == \"string\" ? { message: a } : a;\n n.addIssue({ code: \"custom\", ...c, fatal: l });\n }\n }) : bt.create();\n}\nconst Ja = {\n object: ee.lazycreate\n};\nvar N;\n(function(r) {\n r.ZodString = \"ZodString\", r.ZodNumber = \"ZodNumber\", r.ZodNaN = \"ZodNaN\", r.ZodBigInt = \"ZodBigInt\", r.ZodBoolean = \"ZodBoolean\", r.ZodDate = \"ZodDate\", r.ZodSymbol = \"ZodSymbol\", r.ZodUndefined = \"ZodUndefined\", r.ZodNull = \"ZodNull\", r.ZodAny = \"ZodAny\", r.ZodUnknown = \"ZodUnknown\", r.ZodNever = \"ZodNever\", r.ZodVoid = \"ZodVoid\", r.ZodArray = \"ZodArray\", r.ZodObject = \"ZodObject\", r.ZodUnion = \"ZodUnion\", r.ZodDiscriminatedUnion = \"ZodDiscriminatedUnion\", r.ZodIntersection = \"ZodIntersection\", r.ZodTuple = \"ZodTuple\", r.ZodRecord = \"ZodRecord\", r.ZodMap = \"ZodMap\", r.ZodSet = \"ZodSet\", r.ZodFunction = \"ZodFunction\", r.ZodLazy = \"ZodLazy\", r.ZodLiteral = \"ZodLiteral\", r.ZodEnum = \"ZodEnum\", r.ZodEffects = \"ZodEffects\", r.ZodNativeEnum = \"ZodNativeEnum\", r.ZodOptional = \"ZodOptional\", r.ZodNullable = \"ZodNullable\", r.ZodDefault = \"ZodDefault\", r.ZodCatch = \"ZodCatch\", r.ZodPromise = \"ZodPromise\", r.ZodBranded = \"ZodBranded\", r.ZodPipeline = \"ZodPipeline\", r.ZodReadonly = \"ZodReadonly\";\n})(N || (N = {}));\nconst Qa = (r, e = {\n message: `Input not instance of ${r.name}`\n}) => us((t) => t instanceof r, e), fs = Re.create, ds = Je.create, Ka = Gr.create, el = Qe.create, ps = Bt.create, tl = nt.create, rl = Nr.create, il = Ut.create, nl = Wt.create, sl = bt.create, ol = it.create, al = Ze.create, ll = Dr.create, cl = Ae.create, hl = ee.create, ul = ee.strictCreate, fl = Vt.create, dl = Yr.create, pl = zt.create, gl = je.create, ml = $t.create, vl = Fr.create, yl = st.create, wl = yt.create, xl = qt.create, bl = Zt.create, Ml = Ke.create, Tl = Xt.create, _l = Mt.create, Pn = Ce.create, El = ke.create, Pl = et.create, Sl = Ce.createWithPreprocess, Rl = er.create, Il = () => fs().optional(), Al = () => ds().optional(), Cl = () => ps().optional(), kl = {\n string: (r) => Re.create({ ...r, coerce: !0 }),\n number: (r) => Je.create({ ...r, coerce: !0 }),\n boolean: (r) => Bt.create({\n ...r,\n coerce: !0\n }),\n bigint: (r) => Qe.create({ ...r, coerce: !0 }),\n date: (r) => nt.create({ ...r, coerce: !0 })\n}, Ll = D;\nvar m = /* @__PURE__ */ Object.freeze({\n __proto__: null,\n defaultErrorMap: xt,\n setErrorMap: La,\n getErrorMap: Lr,\n makeIssue: jr,\n EMPTY_PATH: ja,\n addIssueToContext: L,\n ParseStatus: fe,\n INVALID: D,\n DIRTY: vt,\n OK: me,\n isAborted: Ii,\n isDirty: Ai,\n isValid: Ft,\n isAsync: Gt,\n get util() {\n return X;\n },\n get objectUtil() {\n return Ri;\n },\n ZodParsedType: j,\n getParsedType: He,\n ZodType: U,\n datetimeRegex: cs,\n ZodString: Re,\n ZodNumber: Je,\n ZodBigInt: Qe,\n ZodBoolean: Bt,\n ZodDate: nt,\n ZodSymbol: Nr,\n ZodUndefined: Ut,\n ZodNull: Wt,\n ZodAny: bt,\n ZodUnknown: it,\n ZodNever: Ze,\n ZodVoid: Dr,\n ZodArray: Ae,\n ZodObject: ee,\n ZodUnion: Vt,\n ZodDiscriminatedUnion: Yr,\n ZodIntersection: zt,\n ZodTuple: je,\n ZodRecord: $t,\n ZodMap: Fr,\n ZodSet: st,\n ZodFunction: yt,\n ZodLazy: qt,\n ZodLiteral: Zt,\n ZodEnum: Ke,\n ZodNativeEnum: Xt,\n ZodPromise: Mt,\n ZodEffects: Ce,\n ZodTransformer: Ce,\n ZodOptional: ke,\n ZodNullable: et,\n ZodDefault: Ht,\n ZodCatch: Yt,\n ZodNaN: Gr,\n BRAND: Ya,\n ZodBranded: Vi,\n ZodPipeline: er,\n ZodReadonly: Jt,\n custom: us,\n Schema: U,\n ZodSchema: U,\n late: Ja,\n get ZodFirstPartyTypeKind() {\n return N;\n },\n coerce: kl,\n any: sl,\n array: cl,\n bigint: el,\n boolean: ps,\n date: tl,\n discriminatedUnion: dl,\n effect: Pn,\n enum: Ml,\n function: wl,\n instanceof: Qa,\n intersection: pl,\n lazy: xl,\n literal: bl,\n map: vl,\n nan: Ka,\n nativeEnum: Tl,\n never: al,\n null: nl,\n nullable: Pl,\n number: ds,\n object: hl,\n oboolean: Cl,\n onumber: Al,\n optional: El,\n ostring: Il,\n pipeline: Rl,\n preprocess: Sl,\n promise: _l,\n record: ml,\n set: yl,\n strictObject: ul,\n string: fs,\n symbol: rl,\n transformer: Pn,\n tuple: gl,\n undefined: il,\n union: fl,\n unknown: ol,\n void: ll,\n NEVER: Ll,\n ZodIssueCode: I,\n quotelessJson: ka,\n ZodError: xe\n});\nconst Jr = /^https?:\\/\\/library.stanford.edu\\/iiif\\/image-api\\/1.1\\/compliance.html#level(?<level>[012])$/, gs = m.string().regex(Jr), jl = gs, Br = \"http://library.stanford.edu/iiif/image-api/1.1/context.json\", ms = \"http://iiif.io/api/image/1/context.json\", vs = m.literal(Br), ys = m.object({\n \"@context\": vs,\n \"@id\": m.string().url(),\n profile: gs.optional(),\n width: m.number().int(),\n height: m.number().int(),\n scale_factors: m.number().array().optional(),\n tile_width: m.number().optional(),\n tile_height: m.number().optional()\n}), ws = m.object({\n width: m.number().int(),\n height: m.number().int()\n}), xs = m.object({\n width: m.number().int(),\n height: m.number().int().optional(),\n scaleFactors: m.array(m.number().int())\n}), Ol = [\n \"ImageService1\",\n \"ImageService2\",\n \"ImageService3\"\n], bs = m.enum(Ol), Qr = /^https?:\\/\\/iiif.io\\/api\\/image\\/2.*level(?<level>[012])(.json)?$/, Sn = m.string().regex(Qr), Nl = m.object({\n formats: m.string().array().optional(),\n maxArea: m.number().int().optional(),\n maxHeight: m.number().int().optional(),\n maxWidth: m.number().int().optional(),\n qualities: m.string().array().optional(),\n supports: m.string().array().optional()\n}), Ur = Sn.or(m.array(m.union([\n Sn,\n Nl,\n // Catchall for incorrect profiles\n m.any()\n]))), Wr = \"http://iiif.io/api/image/2/context.json\", Ms = m.literal(Wr).or(m.literal(\"https://iiif.io/api/image/2/context.json\")), zi = m.object({\n \"@id\": m.string().url(),\n \"@type\": m.literal(\"iiif:Image\").optional(),\n \"@context\": Ms,\n protocol: m.literal(\"http://iiif.io/api/image\"),\n width: m.number().int(),\n height: m.number().int(),\n profile: Ur,\n sizes: ws.array().optional(),\n tiles: xs.array().optional()\n}), Dl = [\"level0\", \"level1\", \"level2\"], Ts = m.enum(Dl), $i = m.object({\n id: m.string().url(),\n type: m.literal(\"ImageService3\"),\n protocol: m.literal(\"http://iiif.io/api/image\"),\n profile: Ts,\n width: m.number().int(),\n height: m.number().int(),\n maxWidth: m.number().int().optional(),\n maxHeight: m.number().int().optional(),\n maxArea: m.number().int().optional(),\n sizes: ws.array().optional(),\n tiles: xs.array().optional(),\n extraFeatures: m.string().array().optional()\n // TODO: add partOf, seeAlso, and service\n}), Fl = m.object({\n \"@id\": m.string().url(),\n \"@type\": bs.optional(),\n profile: jl.or(Ur).or(Ts),\n width: m.number().int().optional(),\n height: m.number().int().optional(),\n \"@context\": vs.or(m.literal(\"http://iiif.io/api/image/1/context.json\")).or(Ms).optional()\n}), Gl = [\"level0\", \"level1\", \"level2\"], Bl = m.object({\n id: m.string().url(),\n type: m.literal(\"ImageService2\"),\n profile: Ur\n}).or(m.object({\n \"@id\": m.string().url(),\n \"@type\": m.literal(\"ImageService2\"),\n profile: Ur\n})), Ul = m.object({\n id: m.string().url(),\n type: bs,\n profile: m.enum(Gl)\n}), Wl = m.union([\n Bl,\n Ul\n]), _s = Fl.or(Wl), Rn = m.string().or(m.number()).or(m.boolean()), Es = Rn.or(Rn.array()), In = m.object({\n \"@language\": m.string().optional(),\n \"@value\": Es\n}), ot = Es.or(In).or(In.array()), Vl = m.union([\n m.any(),\n m.object({\n label: ot.optional(),\n value: ot.optional()\n })\n]).transform((r) => {\n if (r && typeof r == \"object\" && \"label\" in r && \"value\" in r)\n return r;\n}), Ps = Vl.array(), zl = m.object({\n width: m.number().int().optional(),\n height: m.number().int().optional(),\n service: _s\n}), $l = m.object({\n resource: zl\n}), Ss = m.object({\n \"@id\": m.string().url(),\n \"@type\": m.literal(\"sc:Canvas\"),\n width: m.number().int(),\n height: m.number().int(),\n images: $l.array().length(1),\n label: ot.optional(),\n metadata: Ps.optional()\n}), ql = m.object({\n canvases: Ss.array().nonempty()\n}), Rs = m.object({\n \"@id\": m.string().url(),\n \"@type\": m.literal(\"sc:Manifest\"),\n sequences: ql.array().length(1),\n label: ot.optional(),\n description: ot.optional(),\n metadata: Ps.optional()\n}), An = m.lazy(() => m.object({\n \"@id\": m.string().url(),\n \"@type\": m.literal(\"sc:Manifest\"),\n label: ot.optional()\n})), ki = m.lazy(() => m.object({\n \"@id\": m.string().url(),\n \"@type\": m.literal(\"sc:Collection\"),\n label: ot.optional(),\n manifests: An.array().optional(),\n collections: ki.array().optional(),\n members: An.or(ki).array().optional()\n})), Zl = m.string().or(m.number()).or(m.boolean()), at = m.record(m.string(), Zl.array()), Xl = m.union([\n m.any(),\n m.object({\n label: at.optional(),\n value: at.optional()\n })\n]).transform((r) => {\n if (r && typeof r == \"object\" && \"label\" in r && \"value\" in r)\n return r;\n}), Is = Xl.array(), Cn = m.object({\n type: m.literal(\"Image\"),\n width: m.number().int().optional(),\n height: m.number().int().optional(),\n service: _s.array()\n}), Hl = m.object({\n type: m.literal(\"Annotation\"),\n body: Cn.or(Cn.array().length(1))\n}), Yl = m.object({\n type: m.literal(\"AnnotationPage\"),\n items: Hl.array().length(1)\n}), As = m.object({\n id: m.string().url(),\n type: m.literal(\"Canvas\"),\n width: m.number().int(),\n height: m.number().int(),\n items: Yl.array().length(1),\n label: at.optional(),\n metadata: Is.optional()\n}), Cs = m.object({\n id: m.string().url(),\n type: m.literal(\"Manifest\"),\n items: As.array().nonempty(),\n label: at.optional(),\n description: at.optional(),\n metadata: Is.optional()\n}), Jl = m.lazy(() => m.object({\n id: m.string().url(),\n type: m.literal(\"Manifest\"),\n label: at.optional()\n})), ks = m.lazy(() => m.object({\n id: m.string().url(),\n type: m.literal(\"Collection\"),\n label: at.optional(),\n items: Jl.or(ks).array()\n})), Ls = ys.or(zi).or($i);\nSs.or(As);\nconst Ql = Rs.or(Cs);\nki.or(ks);\nRs.or(zi);\nCs.or($i);\nQl.or(Ls);\nfunction js({ width: r, height: e }, t, i, n) {\n const s = i * t.originalWidth, o = n * t.originalHeight, a = i * t.originalWidth + t.width * t.scaleFactor > r ? r - i * t.originalWidth : t.width * t.scaleFactor, l = n * t.originalHeight + t.height * t.scaleFactor > e ? e - n * t.originalHeight : t.height * t.scaleFactor;\n let c = t.width, h = t.height;\n return s + t.width * t.scaleFactor > r && (c = Math.floor((r - s + t.scaleFactor - 1) / t.scaleFactor)), o + t.height * t.scaleFactor > e && (h = Math.floor((e - o + t.scaleFactor - 1) / t.scaleFactor)), {\n region: {\n x: s,\n y: o,\n width: a,\n height: l\n },\n size: {\n width: c,\n height: h\n }\n };\n}\nfunction Kl({ width: r, height: e }, t = 768) {\n const i = Math.max(r, e) / t, n = Math.ceil(Math.log(i) / Math.log(2));\n return {\n scaleFactors: Array.from({ length: n }, (s, o) => 2 ** o),\n // .filter((scaleFactor) => {\n // if (maxTileSide) {\n // return tileWidth * scaleFactor <= maxTileSide\n // } else {\n // return true\n // }\n // }),\n width: t\n };\n}\nfunction ec({ width: r, height: e }, t, i) {\n const n = t.height || t.width, s = t.width * i, o = n * i;\n return {\n scaleFactor: i,\n width: t.width,\n height: n,\n originalWidth: s,\n originalHeight: o,\n columns: Math.ceil(r / s),\n rows: Math.ceil(e / o)\n };\n}\nfunction tc(r, e) {\n return e.map((t) => t.scaleFactors.map((i) => ec(r, t, i))).flat();\n}\nfunction rc(r) {\n return !!r.some((e) => e.width && e.scaleFactors && e.scaleFactors.length);\n}\nfunction ic(r, e, t) {\n if (!e || !rc(e))\n if (t)\n e = [Kl(r)];\n else\n throw new Error(\"Image does not support tiles or custom regions and sizes.\");\n return tc(r, e);\n}\nfunction nc(r, e, t = \"cover\") {\n if (t === \"cover\" || t === \"contain\") {\n const i = e.width / r.width, n = e.height / r.height, s = t === \"cover\" ? Math.max(i, n) : Math.min(i, n), o = r.width * s, a = r.height * s;\n return {\n width: o,\n height: a\n };\n } else\n throw new Error('Mode must be either \"cover\" or \"contain\"');\n}\nconst sc = 0.8, oc = 1.5;\nfunction Os(r, e, t = \"cover\", { sizes: i, tileZoomLevels: n, supportsAnyRegionAndSize: s, maxWidth: o, maxHeight: a, maxArea: l }) {\n let { width: c, height: h } = nc(r, e, t);\n if (o && c > o && (h = h / c * o, c = o), a && h > a && (c = c / h * a, h = a), l && c * h > l) {\n const g = h / c, v = Math.floor(Math.sqrt(l / g)) * g;\n c = Math.floor(v) / g, h = c * g;\n }\n const u = r.width / r.height;\n if (c = Math.floor(c), h = Math.round(c / u), i) {\n let g;\n for (const y of i) {\n const v = y.width / c;\n if (v >= sc && v <= oc) {\n g = y;\n break;\n }\n }\n if (g)\n return {\n size: g\n };\n }\n if (s)\n return {\n size: {\n width: Math.round(c),\n height: Math.round(h)\n }\n };\n if (n) {\n const g = r.width / c, y = n.map(({ scaleFactor: S }, f) => ({\n index: f,\n scaleFactor: S,\n diff: Math.abs(S - g)\n })).sort((S, f) => S.diff - f.diff), v = n[y[0].index], E = Math.ceil(r.width / (v.scaleFactor * n[0].width)), P = Math.ceil(r.height / (v.scaleFactor * n[0].height)), w = [];\n for (let S = 0; S < P; S++) {\n const f = [];\n for (let p = 0; p < E; p++) {\n const b = js(r, v, p, S);\n f.push(b);\n }\n w.push(f);\n }\n return w;\n }\n throw new Error(\"Unable to create thumbnail\");\n}\nconst Ns = [\"regionByPx\", \"sizeByWh\"];\nfunction ac(r) {\n const e = r.match(Jr);\n if (e && e.groups)\n return parseInt(e.groups.level);\n}\nfunction kn(r) {\n const e = r.match(Qr);\n if (e && e.groups)\n return parseInt(e.groups.level);\n}\nfunction lc(r) {\n return {\n maxWidth: r?.maxWidth,\n maxHeight: r?.maxHeight,\n maxArea: r?.maxArea,\n supportsAnyRegionAndSize: Ns.every((e) => r?.supports && r?.supports?.includes(e))\n };\n}\nfunction cc(r) {\n if (\"type\" in r && r.type === \"ImageService3\")\n return 3;\n if (\"type\" in r && r.type === \"ImageService2\" || \"@type\" in r && r[\"@type\"] === \"ImageService2\" || \"@context\" in r && r[\"@context\"] === Wr)\n return 2;\n if (\"@context\" in r && (r[\"@context\"] === Br || r[\"@context\"] === ms))\n return 1;\n if (\"profile\" in r) {\n let e;\n return Array.isArray(r.profile) ? e = r.profile[0] : e = r.profile, e.match(Jr) ? 1 : e.match(Qr) ? 2 : 3;\n } else\n throw new Error(\"Unsupported IIIF Image Service\");\n}\nfunction Li(r) {\n if (\"type\" in r || \"@type\" in r) {\n const e = r.profile;\n let t = !1;\n return e === \"level0\" || typeof e == \"string\" && e.endsWith(\"level0.json\") ? \"extraFeatures\" in r && (t = Ns.every((i) => r.extraFeatures && r.extraFeatures.includes(i))) : t = !0, {\n maxWidth: \"maxWidth\" in r ? r.maxWidth : void 0,\n maxHeight: \"maxHeight\" in r ? r.maxHeight : void 0,\n maxArea: \"maxArea\" in r ? r.maxArea : void 0,\n supportsAnyRegionAndSize: t\n };\n } else if (Array.isArray(r.profile)) {\n let e = !1, t = Number.NEGATIVE_INFINITY, i = Number.NEGATIVE_INFINITY, n = Number.NEGATIVE_INFINITY;\n return r.profile.forEach((s) => {\n if (typeof s == \"string\") {\n const o = kn(s);\n o && (e = e || o >= 1);\n } else {\n const { maxWidth: o, maxHeight: a, maxArea: l, supportsAnyRegionAndSize: c } = lc(s);\n o !== void 0 && (i = Math.max(o, i)), a !== void 0 && (t = Math.max(a, t)), l !== void 0 && (n = Math.max(l, n)), e = e || c;\n }\n }), {\n maxWidth: i >= 0 ? i : void 0,\n maxHeight: t >= 0 ? t : void 0,\n maxArea: n >= 0 ? n : void 0,\n supportsAnyRegionAndSize: e\n };\n } else if (\"profile\" in r && r.profile) {\n const e = ac(r.profile), t = kn(r.profile);\n return e ? {\n supportsAnyRegionAndSize: e >= 1\n } : t ? {\n supportsAnyRegionAndSize: t >= 1\n } : {\n supportsAnyRegionAndSize: !1\n };\n } else\n throw new Error(\"Invalid Image\");\n}\nconst hc = \"image\";\nclass uc {\n embedded = !0;\n uri;\n type = hc;\n maxWidth;\n maxHeight;\n maxArea;\n supportsAnyRegionAndSize;\n width;\n height;\n majorVersion;\n constructor(e, t) {\n if (t) {\n const i = e;\n let n, s;\n if (Array.isArray(i.service) ? i.service.forEach((o) => {\n try {\n const a = cc(o);\n (!s || a > s) && (s = a, n = o);\n } catch {\n }\n }) : n = i.service, !n)\n throw new Error(\"Unsupported IIIF Image Service\");\n if (\"@id\" in n)\n this.uri = n[\"@id\"];\n else if (\"id\" in n)\n this.uri = n.id;\n else\n throw new Error(\"Unsupported IIIF Image Service\");\n if (\"type\" in n && n.type === \"ImageService3\")\n this.majorVersion = 3;\n else if (\"type\" in n && n.type === \"ImageService2\" || \"@type\" in n && n[\"@type\"] === \"ImageService2\" || \"@context\" in n && n[\"@context\"] === Wr)\n this.majorVersion = 2;\n else if (\"@context\" in n && (n[\"@context\"] === Br || n[\"@context\"] === ms))\n this.majorVersion = 1;\n else if (\"profile\" in n) {\n let o;\n Array.isArray(n.profile) ? o = n.profile[0] : o = n.profile, o.match(Jr) ? this.majorVersion = 1 : o.match(Qr) ? this.majorVersion = 2 : this.majorVersion = 3;\n } else\n throw new Error(\"Unsupported IIIF Image Service\");\n if (\"profile\" in n) {\n const o = Li(n);\n this.supportsAnyRegionAndSize = o.supportsAnyRegionAndSize, this.maxWidth = o.maxWidth, this.maxHeight = o.maxHeight, this.maxArea = o.maxArea;\n } else\n this.supportsAnyRegionAndSize = !1;\n } else {\n if (\"@id\" in e)\n this.uri = e[\"@id\"];\n else if (\"id\" in e)\n this.uri = e.id;\n else\n throw new Error(\"Unsupported IIIF Image\");\n if (\"type\" in e && e.type === \"ImageService3\")\n this.majorVersion = 3;\n else if (\"@type\" in e && e[\"@type\"] === \"iiif:Image\" || \"@context\" in e && e[\"@context\"] === Wr)\n this.majorVersion = 2;\n else if (\"@context\" in e && e[\"@context\"] === Br)\n this.majorVersion = 1;\n else\n throw new Error(\"Unsupported IIIF Image\");\n if (\"profile\" in e) {\n const i = Li(e);\n this.supportsAnyRegionAndSize = i.supportsAnyRegionAndSize, this.maxWidth = i.maxWidth, this.maxHeight = i.maxHeight, this.maxArea = i.maxArea;\n } else\n this.supportsAnyRegionAndSize = !1;\n }\n if (e.width !== void 0)\n this.width = e.width;\n else if (t)\n this.width = t.width;\n else\n throw new Error(\"Width not present on either Canvas or Image Resource\");\n if (e.height !== void 0)\n this.height = e.height;\n else if (t)\n this.height = t.height;\n else\n throw new Error(\"Height not present on either Canvas or Image Resource\");\n }\n /**\n * Generates a IIIF Image API URL for the requested region and size\n * @param {ImageRequest} imageRequest - Image request object containing the desired region and size of the requested image\n * @returns {string} Image API URL that can be used to fetch the requested image\n */\n getImageUrl(e) {\n const { region: t, size: i } = e;\n let n, s, o, a, l;\n t ? (l = `${t.x},${t.y},${t.width},${t.height}`, o = t.height, a = t.width) : (l = \"full\", o = this.height, a = this.width);\n let c;\n if (i) {\n n = Math.round(i.width), s = Math.round(i.height);\n const g = String(n);\n let y = String(s);\n const v = a / o, P = s * v / v;\n s === Math.round(P) && (y = \"\"), c = `${g},${y}`;\n } else\n n = this.width, s = this.height, c = this.majorVersion === 2 ? \"full\" : \"max\";\n const h = n * s;\n if (this.maxWidth !== void 0 && n > this.maxWidth)\n throw new Error(`Width of requested image is too large: ${n} > ${this.maxWidth}`);\n if (this.maxHeight !== void 0 && s > this.maxHeight)\n throw new Error(`Height of requested image is too large: ${s} > ${this.maxHeight}`);\n if (this.maxArea !== void 0 && h > this.maxArea)\n throw new Error(`Area of requested image is too large: ${h} > ${this.maxArea}`);\n const u = this.majorVersion === 1 ? \"native\" : \"default\";\n return `${this.uri}/${l}/${c}/0/${u}.jpg`;\n }\n getThumbnail(e, t = \"cover\") {\n return Os({ width: this.width, height: this.height }, e, t, {\n supportsAnyRegionAndSize: this.supportsAnyRegionAndSize,\n maxWidth: this.maxWidth,\n maxHeight: this.maxHeight,\n maxArea: this.maxArea\n });\n }\n}\nclass qi extends uc {\n tileZoomLevels;\n sizes;\n embedded = !1;\n constructor(e) {\n super(e);\n const t = Li(e);\n let i;\n \"tiles\" in e && (i = e.tiles), this.tileZoomLevels = ic({ width: this.width, height: this.height }, i, t.supportsAnyRegionAndSize), \"sizes\" in e && (this.sizes = e.sizes);\n }\n /**\n * Parses a IIIF image and returns a [Image](#image) containing the parsed version\n * @param {any} iiifImage - Source data of IIIF Image\n * @param {MajorVersion} [majorVersion=null] - IIIF API version of Image. If not provided, it will be determined automatically\n * @returns {Image} Parsed IIIF Image\n * @static\n */\n static parse(e, t = null) {\n let i;\n return t === 1 ? i = ys.parse(e) : t === 2 ? i = zi.parse(e) : t === 3 ? i = $i.parse(e) : i = Ls.parse(e), new qi(i);\n }\n /**\n * Returns a Image request object for a tile with the requested zoom level, column, and row\n * @param {TileZoomLevel} zoomLevel - Desired zoom level of the requested tile\n * @param {number} column - Column of the requested tile\n * @param {number} row - Row of the requested tile\n * @returns {ImageRequest} Image request object that can be used to fetch the requested tile\n */\n getIiifTile(e, t, i) {\n return js({ width: this.width, height: this.height }, e, t, i);\n }\n /**\n * Returns a Image request object for the requested region and size\n * @param {SizeObject} size - Size of the requested thumbnail\n * @param {'cover' | 'contain'} mode - Desired fit mode of the requested thumbnail\n * @returns {ImageRequest} Image request object that can be used to fetch the requested thumbnail\n */\n getThumbnail(e, t = \"cover\") {\n return Os({ width: this.width, height: this.height }, e, t, {\n supportsAnyRegionAndSize: this.supportsAnyRegionAndSize,\n sizes: this.sizes,\n tileZoomLevels: this.tileZoomLevels,\n maxWidth: this.maxWidth,\n maxHeight: this.maxHeight,\n maxArea: this.maxArea\n });\n }\n}\nconst Ln = m.record(m.string(), m.string().array());\nm.object({\n label: Ln.optional(),\n value: Ln.optional()\n});\nvar ve = 63710088e-1, Ds = {\n centimeters: ve * 100,\n centimetres: ve * 100,\n degrees: ve / 111325,\n feet: ve * 3.28084,\n inches: ve * 39.37,\n kilometers: ve / 1e3,\n kilometres: ve / 1e3,\n meters: ve,\n metres: ve,\n miles: ve / 1609.344,\n millimeters: ve * 1e3,\n millimetres: ve * 1e3,\n nauticalmiles: ve / 1852,\n radians: 1,\n yards: ve * 1.0936\n};\nfunction fc(r, e, t) {\n t === void 0 && (t = {});\n var i = { type: \"Feature\" };\n return (t.id === 0 || t.id) && (i.id = t.id), t.bbox && (i.bbox = t.bbox), i.properties = e || {}, i.geometry = r, i;\n}\nfunction dc(r, e, t) {\n if (t === void 0 && (t = {}), !r)\n throw new Error(\"coordinates is required\");\n if (!Array.isArray(r))\n throw new Error(\"coordinates must be an Array\");\n if (r.length < 2)\n throw new Error(\"coordinates must be at least 2 numbers long\");\n if (!jn(r[0]) || !jn(r[1]))\n throw new Error(\"coordinates must contain numbers\");\n var i = {\n type: \"Point\",\n coordinates: r\n };\n return fc(i, e, t);\n}\nfunction pc(r, e) {\n e === void 0 && (e = \"kilometers\");\n var t = Ds[e];\n if (!t)\n throw new Error(e + \" units is invalid\");\n return r * t;\n}\nfunction gc(r, e) {\n e === void 0 && (e = \"kilometers\");\n var t = Ds[e];\n if (!t)\n throw new Error(e + \" units is invalid\");\n return r / t;\n}\nfunction ji(r) {\n var e = r % (2 * Math.PI);\n return e * 180 / Math.PI;\n}\nfunction Ie(r) {\n var e = r % 360;\n return e * Math.PI / 180;\n}\nfunction jn(r) {\n return !isNaN(r) && r !== null && !Array.isArray(r);\n}\nfunction Tt(r) {\n if (!r)\n throw new Error(\"coord is required\");\n if (!Array.isArray(r)) {\n if (r.type === \"Feature\" && r.geometry !== null && r.geometry.type === \"Point\")\n return r.geometry.coordinates;\n if (r.type === \"Point\")\n return r.coordinates;\n }\n if (Array.isArray(r) && r.length >= 2 && !Array.isArray(r[0]) && !Array.isArray(r[1]))\n return r;\n throw new Error(\"coord must be GeoJSON Point or an Array of numbers\");\n}\nfunction mc(r) {\n return r.type === \"Feature\" ? r.geometry : r;\n}\nfunction Fs(r, e, t) {\n if (t === void 0 && (t = {}), t.final === !0)\n return vc(r, e);\n var i = Tt(r), n = Tt(e), s = Ie(i[0]), o = Ie(n[0]), a = Ie(i[1]), l = Ie(n[1]), c = Math.sin(o - s) * Math.cos(l), h = Math.cos(a) * Math.sin(l) - Math.sin(a) * Math.cos(l) * Math.cos(o - s);\n return ji(Math.atan2(c, h));\n}\nfunction vc(r, e) {\n var t = Fs(e, r);\n return t = (t + 180) % 360, t;\n}\nfunction yc(r, e, t, i) {\n i === void 0 && (i = {});\n var n = Tt(r), s = Ie(n[0]), o = Ie(n[1]), a = Ie(t), l = gc(e, i.units), c = Math.asin(Math.sin(o) * Math.cos(l) + Math.cos(o) * Math.sin(l) * Math.cos(a)), h = s + Math.atan2(Math.sin(a) * Math.sin(l) * Math.cos(o), Math.cos(l) - Math.sin(o) * Math.sin(c)), u = ji(h), g = ji(c);\n return dc([u, g], i.properties);\n}\nfunction Zi(r, e, t) {\n t === void 0 && (t = {});\n var i = Tt(r), n = Tt(e), s = Ie(n[1] - i[1]), o = Ie(n[0] - i[0]), a = Ie(i[1]), l = Ie(n[1]), c = Math.pow(Math.sin(s / 2), 2) + Math.pow(Math.sin(o / 2), 2) * Math.cos(a) * Math.cos(l);\n return pc(2 * Math.atan2(Math.sqrt(c), Math.sqrt(1 - c)), t.units);\n}\nfunction Vr(r, e) {\n var t = Zi(r, e), i = Fs(r, e), n = yc(r, t / 2, i);\n return n;\n}\nfunction Gs(r) {\n if (r.__esModule)\n return r;\n var e = r.default;\n if (typeof e == \"function\") {\n var t = function i() {\n return this instanceof i ? Reflect.construct(e, arguments, this.constructor) : e.apply(this, arguments);\n };\n t.prototype = e.prototype;\n } else\n t = {};\n return Object.defineProperty(t, \"__esModule\", { value: !0 }), Object.keys(r).forEach(function(i) {\n var n = Object.getOwnPropertyDescriptor(r, i);\n Object.defineProperty(t, i, n.get ? n : {\n enumerable: !0,\n get: function() {\n return r[i];\n }\n });\n }), t;\n}\nvar q = {};\nconst wc = Object.prototype.toString;\nfunction Qt(r) {\n const e = wc.call(r);\n return e.endsWith(\"Array]\") && !e.includes(\"Big\");\n}\nconst xc = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n isAnyArray: Qt\n}, Symbol.toStringTag, { value: \"Module\" })), bc = /* @__PURE__ */ Gs(xc);\nfunction Mc(r) {\n var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n if (!Qt(r))\n throw new TypeError(\"input must be an array\");\n if (r.length === 0)\n throw new TypeError(\"input must not be empty\");\n var t = e.fromIndex, i = t === void 0 ? 0 : t, n = e.toIndex, s = n === void 0 ? r.length : n;\n if (i < 0 || i >= r.length || !Number.isInteger(i))\n throw new Error(\"fromIndex must be a positive integer smaller than length\");\n if (s <= i || s > r.length || !Number.isInteger(s))\n throw new Error(\"toIndex must be an integer greater than fromIndex and at most equal to length\");\n for (var o = r[i], a = i + 1; a < s; a++)\n r[a] > o && (o = r[a]);\n return o;\n}\nfunction Tc(r) {\n var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n if (!Qt(r))\n throw new TypeError(\"input must be an array\");\n if (r.length === 0)\n throw new TypeError(\"input must not be empty\");\n var t = e.fromIndex, i = t === void 0 ? 0 : t, n = e.toIndex, s = n === void 0 ? r.length : n;\n if (i < 0 || i >= r.length || !Number.isInteger(i))\n throw new Error(\"fromIndex must be a positive integer smaller than length\");\n if (s <= i || s > r.length || !Number.isInteger(s))\n throw new Error(\"toIndex must be an integer greater than fromIndex and at most equal to length\");\n for (var o = r[i], a = i + 1; a < s; a++)\n r[a] < o && (o = r[a]);\n return o;\n}\nfunction _c(r) {\n var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n if (Qt(r)) {\n if (r.length === 0)\n throw new TypeError(\"input must not be empty\");\n } else\n throw new TypeError(\"input must be an array\");\n var t;\n if (e.output !== void 0) {\n if (!Qt(e.output))\n throw new TypeError(\"output option must be an array if specified\");\n t = e.output;\n } else\n t = new Array(r.length);\n var i = Tc(r), n = Mc(r);\n if (i === n)\n throw new RangeError(\"minimum and maximum input values are equal. Cannot rescale a constant array\");\n var s = e.min, o = s === void 0 ? e.autoMinMax ? i : 0 : s, a = e.max, l = a === void 0 ? e.autoMinMax ? n : 1 : a;\n if (o >= l)\n throw new RangeError(\"min option must be smaller than max option\");\n for (var c = (l - o) / (n - i), h = 0; h < r.length; h++)\n t[h] = (r[h] - i) * c + o;\n return t;\n}\nconst Ec = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: _c\n}, Symbol.toStringTag, { value: \"Module\" })), Pc = /* @__PURE__ */ Gs(Ec);\nObject.defineProperty(q, \"__esModule\", { value: !0 });\nvar ye = bc, On = Pc;\nconst gr = \" \".repeat(2), Bs = \" \".repeat(4);\nfunction Sc() {\n return Us(this);\n}\nfunction Us(r, e = {}) {\n const {\n maxRows: t = 15,\n maxColumns: i = 10,\n maxNumSize: n = 8,\n padMinus: s = \"auto\"\n } = e;\n return `${r.constructor.name} {\n${gr}[\n${Bs}${Rc(r, t, i, n, s)}\n${gr}]\n${gr}rows: ${r.rows}\n${gr}columns: ${r.columns}\n}`;\n}\nfunction Rc(r, e, t, i, n) {\n const { rows: s, columns: o } = r, a = Math.min(s, e), l = Math.min(o, t), c = [];\n if (n === \"auto\") {\n n = !1;\n e:\n for (let h = 0; h < a; h++)\n for (let u = 0; u < l; u++)\n if (r.get(h, u) < 0) {\n n = !0;\n break e;\n }\n }\n for (let h = 0; h < a; h++) {\n let u = [];\n for (let g = 0; g < l; g++)\n u.push(Ic(r.get(h, g), i, n));\n c.push(`${u.join(\" \")}`);\n }\n return l !== o && (c[c.length - 1] += ` ... ${o - t} more columns`), a !== s && c.push(`... ${s - e} more rows`), c.join(`\n${Bs}`);\n}\nfunction Ic(r, e, t) {\n return (r >= 0 && t ? ` ${Nn(r, e - 1)}` : Nn(r, e)).padEnd(e);\n}\nfunction Nn(r, e) {\n let t = r.toString();\n if (t.length <= e)\n return t;\n let i = r.toFixed(e);\n if (i.length > e && (i = r.toFixed(Math.max(0, e - (i.length - e)))), i.length <= e && !i.startsWith(\"0.000\") && !i.startsWith(\"-0.000\"))\n return i;\n let n = r.toExponential(e);\n return n.length > e && (n = r.toExponential(Math.max(0, e - (n.length - e)))), n.slice(0);\n}\nfunction Ac(r, e) {\n r.prototype.add = function(t) {\n return typeof t == \"number\" ? this.addS(t) : this.addM(t);\n }, r.prototype.addS = function(t) {\n for (let i = 0; i < this.rows; i++)\n for (let n = 0; n < this.columns; n++)\n this.set(i, n, this.get(i, n) + t);\n return this;\n }, r.prototype.addM = function(t) {\n if (t = e.checkMatrix(t), this.rows !== t.rows || this.columns !== t.columns)\n throw new RangeError(\"Matrices dimensions must be equal\");\n for (let i = 0; i < this.rows; i++)\n for (let n = 0; n < this.columns; n++)\n this.set(i, n, this.get(i, n) + t.get(i, n));\n return this;\n }, r.add = function(t, i) {\n return new e(t).add(i);\n }, r.prototype.sub = function(t) {\n return typeof t == \"number\" ? this.subS(t) : this.subM(t);\n }, r.prototype.subS = function(t) {\n for (let i = 0; i < this.rows; i++)\n for (let n = 0; n < this.columns; n++)\n this.set(i, n, this.get(i, n) - t);\n return this;\n }, r.prototype.subM = function(t) {\n if (t = e.checkMatrix(t), this.rows !== t.rows || this.columns !== t.columns)\n throw new RangeError(\"Matrices dimensions must be equal\");\n for (let i = 0; i < this.rows; i++)\n for (let n = 0; n < this.columns; n++)\n this.set(i, n, this.get(i, n) - t.get(i, n));\n return this;\n }, r.sub = function(t, i) {\n return new e(t).sub(i);\n }, r.prototype.subtract = r.prototype.sub, r.prototype.subtractS = r.prototype.subS, r.prototype.subtractM = r.prototype.subM, r.subtract = r.sub, r.prototype.mul = function(t) {\n return typeof t == \"number\" ? this.mulS(t) : this.mulM(t);\n }, r.prototype.mulS = function(t) {\n for (let i = 0; i < this.rows; i++)\n for (let n = 0; n < this.columns; n++)\n this.set(i, n, this.get(i, n) * t);\n return this;\n }, r.prototype.mulM = function(t) {\n if (t = e.checkMatrix(t), this.rows !== t.rows || this.columns !== t.columns)\n throw new RangeError(\"Matrices dimensions must be equal\");\n for (let i = 0; i < this.rows; i++)\n for (let n = 0; n < this.columns; n++)\n this.set(i, n, this.get(i, n) * t.get(i, n));\n return this;\n }, r.mul = function(t, i) {\n return new e(t).mul(i);\n }, r.prototype.multiply = r.prototype.mul, r.prototype.multiplyS = r.prototype.mulS, r.prototype.multiplyM = r.prototype.mulM, r.multiply = r.mul, r.prototype.div = function(t) {\n return typeof t == \"number\" ? this.divS(t) : this.divM(t);\n }, r.prototype.divS = function(t) {\n for (let i = 0; i < this.rows; i++)\n for (let n = 0; n < this.columns; n++)\n this.set(i, n, this.get(i, n) / t);\n return this;\n }, r.prototype.divM = function(t) {\n if (t = e.checkMatrix(t), this.rows !== t.rows || this.columns !== t.columns)\n throw new RangeError(\"Matrices dimensions must be equal\");\n for (let i = 0; i < this.rows; i++)\n for (let n = 0; n < this.columns; n++)\n this.set(i, n, this.get(i, n) / t.get(i, n));\n return this;\n }, r.div = function(t, i) {\n return new e(t).div(i);\n }, r.prototype.divide = r.prototype.div, r.prototype.divideS = r.prototype.divS, r.prototype.divideM = r.prototype.divM, r.divide = r.div, r.prototype.mod = function(t) {\n return typeof t == \"number\" ? this.modS(t) : this.modM(t);\n }, r.prototype.modS = function(t) {\n for (let i = 0; i < this.rows; i++)\n for (let n = 0; n < this.columns; n++)\n this.set(i, n, this.get(i, n) % t);\n return this;\n }, r.prototype.modM = function(t) {\n if (t = e.checkMatrix(t), this.rows !== t.rows || this.columns !== t.columns)\n throw new RangeError(\"Matrices dimensions must be equal\");\n for (let i = 0; i < this.rows; i++)\n for (let n = 0; n < this.columns; n++)\n this.set(i, n, this.get(i, n) % t.get(i, n));\n return this;\n }, r.mod = function(t, i) {\n return new e(t).mod(i);\n }, r.prototype.modulus = r.prototype.mod, r.prototype.modulusS = r.prototype.modS, r.prototype.modulusM = r.prototype.modM, r.modulus = r.mod, r.prototype.and = function(t) {\n return typeof t == \"number\" ? this.andS(t) : this.andM(t);\n }, r.prototype.andS = function(t) {\n for (let i = 0; i < this.rows; i++)\n for (let n = 0; n < this.columns; n++)\n this.set(i, n, this.get(i, n) & t);\n return this;\n }, r.prototype.andM = function(t) {\n if (t = e.checkMatrix(t), this.rows !== t.rows || this.columns !== t.columns)\n throw new RangeError(\"Matrices dimensions must be equal\");\n for (let i = 0; i < this.rows; i++)\n for (let n = 0; n < this.columns; n++)\n this.set(i, n, this.get(i, n) & t.get(i, n));\n return this;\n }, r.and = function(t, i) {\n return new e(t).and(i);\n }, r.prototype.or = function(t) {\n return typeof t == \"number\" ? this.orS(t) : this.orM(t);\n }, r.prototype.orS = function(t) {\n for (let i = 0; i < this.rows; i++)\n for (let n = 0; n < this.columns; n++)\n this.set(i, n, this.get(i, n) | t);\n return this;\n }, r.prototype.orM = function(t) {\n if (t = e.checkMatrix(t), this.rows !== t.rows || this.columns !== t.columns)\n throw new RangeError(\"Matrices dimensions must be equal\");\n for (let i = 0; i < this.rows; i++)\n for (let n = 0; n < this.columns; n++)\n this.set(i, n, this.get(i, n) | t.get(i, n));\n return this;\n }, r.or = function(t, i) {\n return new e(t).or(i);\n }, r.prototype.xor = function(t) {\n return typeof t == \"number\" ? this.xorS(t) : this.xorM(t);\n }, r.prototype.xorS = function(t) {\n for (let i = 0; i < this.rows; i++)\n for (let n = 0; n < this.columns; n++)\n this.set(i, n, this.get(i, n) ^ t);\n return this;\n }, r.prototype.xorM = function(t) {\n if (t = e.checkMatrix(t), this.rows !== t.rows || this.columns !== t.columns)\n throw new RangeError(\"Matrices dimensions must be equal\");\n for (let i = 0; i < this.rows; i++)\n for (let n = 0; n < this.columns; n++)\n this.set(i, n, this.get(i, n) ^ t.get(i, n));\n return this;\n }, r.xor = function(t, i) {\n return new e(t).xor(i);\n }, r.prototype.leftShift = function(t) {\n return typeof t == \"number\" ? this.leftShiftS(t) : this.leftShiftM(t);\n }, r.prototype.leftShiftS = function(t) {\n for (let i = 0; i < this.rows; i++)\n for (let n = 0; n < this.columns; n++)\n this.set(i, n, this.get(i, n) << t);\n return this;\n }, r.prototype.leftShiftM = function(t) {\n if (t = e.checkMatrix(t), this.rows !== t.rows || this.columns !== t.columns)\n throw new RangeError(\"Matrices dimensions must be equal\");\n for (let i = 0; i < this.rows; i++)\n for (let n = 0; n < this.columns; n++)\n this.set(i, n, this.get(i, n) << t.get(i, n));\n return this;\n }, r.leftShift = function(t, i) {\n return new e(t).leftShift(i);\n }, r.prototype.signPropagatingRightShift = function(t) {\n return typeof t == \"number\" ? this.signPropagatingRightShiftS(t) : this.signPropagatingRightShiftM(t);\n }, r.prototype.signPropagatingRightShiftS = function(t) {\n for (let i = 0; i < this.rows; i++)\n for (let n = 0; n < this.columns; n++)\n this.set(i, n, this.get(i, n) >> t);\n return this;\n }, r.prototype.signPropagatingRightShiftM = function(t) {\n if (t = e.checkMatrix(t), this.rows !== t.rows || this.columns !== t.columns)\n throw new RangeError(\"Matrices dimensions must be equal\");\n for (let i = 0; i < this.rows; i++)\n for (let n = 0; n < this.columns; n++)\n this.set(i, n, this.get(i, n) >> t.get(i, n));\n return this;\n }, r.signPropagatingRightShift = function(t, i) {\n return new e(t).signPropagatingRightShift(i);\n }, r.prototype.rightShift = function(t) {\n return typeof t == \"number\" ? this.rightShiftS(t) : this.rightShiftM(t);\n }, r.prototype.rightShiftS = function(t) {\n for (let i = 0; i < this.rows; i++)\n for (let n = 0; n < this.columns; n++)\n this.set(i, n, this.get(i, n) >>> t);\n return this;\n }, r.prototype.rightShiftM = function(t) {\n if (t = e.checkMatrix(t), this.rows !== t.rows || this.columns !== t.columns)\n throw new RangeError(\"Matrices dimensions must be equal\");\n for (let i = 0; i < this.rows; i++)\n for (let n = 0; n < this.columns; n++)\n this.set(i, n, this.get(i, n) >>> t.get(i, n));\n return this;\n }, r.rightShift = function(t, i) {\n return new e(t).rightShift(i);\n }, r.prototype.zeroFillRightShift = r.prototype.rightShift, r.prototype.zeroFillRightShiftS = r.prototype.rightShiftS, r.prototype.zeroFillRightShiftM = r.prototype.rightShiftM, r.zeroFillRightShift = r.rightShift, r.prototype.not = function() {\n for (let t = 0; t < this.rows; t++)\n for (let i = 0; i < this.columns; i++)\n this.set(t, i, ~this.get(t, i));\n return this;\n }, r.not = function(t) {\n return new e(t).not();\n }, r.prototype.abs = function() {\n for (let t = 0; t < this.rows; t++)\n for (let i = 0; i < this.columns; i++)\n this.set(t, i, Math.abs(this.get(t, i)));\n return this;\n }, r.abs = function(t) {\n return new e(t).abs();\n }, r.prototype.acos = function() {\n for (let t = 0; t < this.rows; t++)\n for (let i = 0; i < this.columns; i++)\n this.set(t, i, Math.acos(this.get(t, i)));\n return this;\n }, r.acos = function(t) {\n return new e(t).acos();\n }, r.prototype.acosh = function() {\n for (let t = 0; t < this.rows; t++)\n for (let i = 0; i < this.columns; i++)\n this.set(t, i, Math.acosh(this.get(t, i)));\n return this;\n }, r.acosh = function(t) {\n return new e(t).acosh();\n }, r.prototype.asin = function() {\n for (let t = 0; t < this.rows; t++)\n for (let i = 0; i < this.columns; i++)\n this.set(t, i, Math.asin(this.get(t, i)));\n return this;\n }, r.asin = function(t) {\n return new e(t).asin();\n }, r.prototype.asinh = function() {\n for (let t = 0; t < this.rows; t++)\n for (let i = 0; i < this.columns; i++)\n this.set(t, i, Math.asinh(this.get(t, i)));\n return this;\n }, r.asinh = function(t) {\n return new e(t).asinh();\n }, r.prototype.atan = function() {\n for (let t = 0; t < this.rows; t++)\n for (let i = 0; i < this.columns; i++)\n this.set(t, i, Math.atan(this.get(t, i)));\n return this;\n }, r.atan = function(t) {\n return new e(t).atan();\n }, r.prototype.atanh = function() {\n for (let t = 0; t < this.rows; t++)\n for (let i = 0; i < this.columns; i++)\n this.set(t, i, Math.atanh(this.get(t, i)));\n return this;\n }, r.atanh = function(t) {\n return new e(t).atanh();\n }, r.prototype.cbrt = function() {\n for (let t = 0; t < this.rows; t++)\n for (let i = 0; i < this.columns; i++)\n this.set(t, i, Math.cbrt(this.get(t, i)));\n return this;\n }, r.cbrt = function(t) {\n return new e(t).cbrt();\n }, r.prototype.ceil = function() {\n for (let t = 0; t < this.rows; t++)\n for (let i = 0; i < this.columns; i++)\n this.set(t, i, Math.ceil(this.get(t, i)));\n return this;\n }, r.ceil = function(t) {\n return new e(t).ceil();\n }, r.prototype.clz32 = function() {\n for (let t = 0; t < this.rows; t++)\n for (let i = 0; i < this.columns; i++)\n this.set(t, i, Math.clz32(this.get(t, i)));\n return this;\n }, r.clz32 = function(t) {\n return new e(t).clz32();\n }, r.prototype.cos = function() {\n for (let t = 0; t < this.rows; t++)\n for (let i = 0; i < this.columns; i++)\n this.set(t, i, Math.cos(this.get(t, i)));\n return this;\n }, r.cos = function(t) {\n return new e(t).cos();\n }, r.prototype.cosh = function() {\n for (let t = 0; t < this.rows; t++)\n for (let i = 0; i < this.columns; i++)\n this.set(t, i, Math.cosh(this.get(t, i)));\n return this;\n }, r.cosh = function(t) {\n return new e(t).cosh();\n }, r.prototype.exp = function() {\n for (let t = 0; t < this.rows; t++)\n for (let i = 0; i < this.columns; i++)\n this.set(t, i, Math.exp(this.get(t, i)));\n return this;\n }, r.exp = function(t) {\n return new e(t).exp();\n }, r.prototype.expm1 = function() {\n for (let t = 0; t < this.rows; t++)\n for (let i = 0; i < this.columns; i++)\n this.set(t, i, Math.expm1(this.get(t, i)));\n return this;\n }, r.expm1 = function(t) {\n return new e(t).expm1();\n }, r.prototype.floor = function() {\n for (let t = 0; t < this.rows; t++)\n for (let i = 0; i < this.columns; i++)\n this.set(t, i, Math.floor(this.get(t, i)));\n return this;\n }, r.floor = function(t) {\n return new e(t).floor();\n }, r.prototype.fround = function() {\n for (let t = 0; t < this.rows; t++)\n for (let i = 0; i < this.columns; i++)\n this.set(t, i, Math.fround(this.get(t, i)));\n return this;\n }, r.fround = function(t) {\n return new e(t).fround();\n }, r.prototype.log = function() {\n for (let t = 0; t < this.rows; t++)\n for (let i = 0; i < this.columns; i++)\n this.set(t, i, Math.log(this.get(t, i)));\n return this;\n }, r.log = function(t) {\n return new e(t).log();\n }, r.prototype.log1p = function() {\n for (let t = 0; t < this.rows; t++)\n for (let i = 0; i < this.columns; i++)\n this.set(t, i, Math.log1p(this.get(t, i)));\n return this;\n }, r.log1p = function(t) {\n return new e(t).log1p();\n }, r.prototype.log10 = function() {\n for (let t = 0; t < this.rows; t++)\n for (let i = 0; i < this.columns; i++)\n this.set(t, i, Math.log10(this.get(t, i)));\n return this;\n }, r.log10 = function(t) {\n return new e(t).log10();\n }, r.prototype.log2 = function() {\n for (let t = 0; t < this.rows; t++)\n for (let i = 0; i < this.columns; i++)\n this.set(t, i, Math.log2(this.get(t, i)));\n return this;\n }, r.log2 = function(t) {\n return new e(t).log2();\n }, r.prototype.round = function() {\n for (let t = 0; t < this.rows; t++)\n for (let i = 0; i < this.columns; i++)\n this.set(t, i, Math.round(this.get(t, i)));\n return this;\n }, r.round = function(t) {\n return new e(t).round();\n }, r.prototype.sign = function() {\n for (let t = 0; t < this.rows; t++)\n for (let i = 0; i < this.columns; i++)\n this.set(t, i, Math.sign(this.get(t, i)));\n return this;\n }, r.sign = function(t) {\n return new e(t).sign();\n }, r.prototype.sin = function() {\n for (let t = 0; t < this.rows; t++)\n for (let i = 0; i < this.columns; i++)\n this.set(t, i, Math.sin(this.get(t, i)));\n return this;\n }, r.sin = function(t) {\n return new e(t).sin();\n }, r.prototype.sinh = function() {\n for (let t = 0; t < this.rows; t++)\n for (let i = 0; i < this.columns; i++)\n this.set(t, i, Math.sinh(this.get(t, i)));\n return this;\n }, r.sinh = function(t) {\n return new e(t).sinh();\n }, r.prototype.sqrt = function() {\n for (let t = 0; t < this.rows; t++)\n for (let i = 0; i < this.columns; i++)\n this.set(t, i, Math.sqrt(this.get(t, i)));\n return this;\n }, r.sqrt = function(t) {\n return new e(t).sqrt();\n }, r.prototype.tan = function() {\n for (let t = 0; t < this.rows; t++)\n for (let i = 0; i < this.columns; i++)\n this.set(t, i, Math.tan(this.get(t, i)));\n return this;\n }, r.tan = function(t) {\n return new e(t).tan();\n }, r.prototype.tanh = function() {\n for (let t = 0; t < this.rows; t++)\n for (let i = 0; i < this.columns; i++)\n this.set(t, i, Math.tanh(this.get(t, i)));\n return this;\n }, r.tanh = function(t) {\n return new e(t).tanh();\n }, r.prototype.trunc = function() {\n for (let t = 0; t < this.rows; t++)\n for (let i = 0; i < this.columns; i++)\n this.set(t, i, Math.trunc(this.get(t, i)));\n return this;\n }, r.trunc = function(t) {\n return new e(t).trunc();\n }, r.pow = function(t, i) {\n return new e(t).pow(i);\n }, r.prototype.pow = function(t) {\n return typeof t == \"number\" ? this.powS(t) : this.powM(t);\n }, r.prototype.powS = function(t) {\n for (let i = 0; i < this.rows; i++)\n for (let n = 0; n < this.columns; n++)\n this.set(i, n, Math.pow(this.get(i, n), t));\n return this;\n }, r.prototype.powM = function(t) {\n if (t = e.checkMatrix(t), this.rows !== t.rows || this.columns !== t.columns)\n throw new RangeError(\"Matrices dimensions must be equal\");\n for (let i = 0; i < this.rows; i++)\n for (let n = 0; n < this.columns; n++)\n this.set(i, n, Math.pow(this.get(i, n), t.get(i, n)));\n return this;\n };\n}\nfunction Te(r, e, t) {\n let i = t ? r.rows : r.rows - 1;\n if (e < 0 || e > i)\n throw new RangeError(\"Row index out of range\");\n}\nfunction _e(r, e, t) {\n let i = t ? r.columns : r.columns - 1;\n if (e < 0 || e > i)\n throw new RangeError(\"Column index out of range\");\n}\nfunction dt(r, e) {\n if (e.to1DArray && (e = e.to1DArray()), e.length !== r.columns)\n throw new RangeError(\n \"vector size must be the same as the number of columns\"\n );\n return e;\n}\nfunction pt(r, e) {\n if (e.to1DArray && (e = e.to1DArray()), e.length !== r.rows)\n throw new RangeError(\"vector size must be the same as the number of rows\");\n return e;\n}\nfunction Xi(r, e) {\n if (!ye.isAnyArray(e))\n throw new TypeError(\"row indices must be an array\");\n for (let t = 0; t < e.length; t++)\n if (e[t] < 0 || e[t] >= r.rows)\n throw new RangeError(\"row indices are out of range\");\n}\nfunction Hi(r, e) {\n if (!ye.isAnyArray(e))\n throw new TypeError(\"column indices must be an array\");\n for (let t = 0; t < e.length; t++)\n if (e[t] < 0 || e[t] >= r.columns)\n throw new RangeError(\"column indices are out of range\");\n}\nfunction Oi(r, e, t, i, n) {\n if (arguments.length !== 5)\n throw new RangeError(\"expected 4 arguments\");\n if (mr(\"startRow\", e), mr(\"endRow\", t), mr(\"startColumn\", i), mr(\"endColumn\", n), e > t || i > n || e < 0 || e >= r.rows || t < 0 || t >= r.rows || i < 0 || i >= r.columns || n < 0 || n >= r.columns)\n throw new RangeError(\"Submatrix indices are out of range\");\n}\nfunction Kr(r, e = 0) {\n let t = [];\n for (let i = 0; i < r; i++)\n t.push(e);\n return t;\n}\nfunction mr(r, e) {\n if (typeof e != \"number\")\n throw new TypeError(`${r} must be a number`);\n}\nfunction lt(r) {\n if (r.isEmpty())\n throw new Error(\"Empty matrix has no elements to index\");\n}\nfunction Cc(r) {\n let e = Kr(r.rows);\n for (let t = 0; t < r.rows; ++t)\n for (let i = 0; i < r.columns; ++i)\n e[t] += r.get(t, i);\n return e;\n}\nfunction kc(r) {\n let e = Kr(r.columns);\n for (let t = 0; t < r.rows; ++t)\n for (let i = 0; i < r.columns; ++i)\n e[i] += r.get(t, i);\n return e;\n}\nfunction Lc(r) {\n let e = 0;\n for (let t = 0; t < r.rows; t++)\n for (let i = 0; i < r.columns; i++)\n e += r.get(t, i);\n return e;\n}\nfunction jc(r) {\n let e = Kr(r.rows, 1);\n for (let t = 0; t < r.rows; ++t)\n for (let i = 0; i < r.columns; ++i)\n e[t] *= r.get(t, i);\n return e;\n}\nfunction Oc(r) {\n let e = Kr(r.columns, 1);\n for (let t = 0; t < r.rows; ++t)\n for (let i = 0; i < r.columns; ++i)\n e[i] *= r.get(t, i);\n return e;\n}\nfunction Nc(r) {\n let e = 1;\n for (let t = 0; t < r.rows; t++)\n for (let i = 0; i < r.columns; i++)\n e *= r.get(t, i);\n return e;\n}\nfunction Dc(r, e, t) {\n const i = r.rows, n = r.columns, s = [];\n for (let o = 0; o < i; o++) {\n let a = 0, l = 0, c = 0;\n for (let h = 0; h < n; h++)\n c = r.get(o, h) - t[o], a += c, l += c * c;\n e ? s.push((l - a * a / n) / (n - 1)) : s.push((l - a * a / n) / n);\n }\n return s;\n}\nfunction Fc(r, e, t) {\n const i = r.rows, n = r.columns, s = [];\n for (let o = 0; o < n; o++) {\n let a = 0, l = 0, c = 0;\n for (let h = 0; h < i; h++)\n c = r.get(h, o) - t[o], a += c, l += c * c;\n e ? s.push((l - a * a / i) / (i - 1)) : s.push((l - a * a / i) / i);\n }\n return s;\n}\nfunction Gc(r, e, t) {\n const i = r.rows, n = r.columns, s = i * n;\n let o = 0, a = 0, l = 0;\n for (let c = 0; c < i; c++)\n for (let h = 0; h < n; h++)\n l = r.get(c, h) - t, o += l, a += l * l;\n return e ? (a - o * o / s) / (s - 1) : (a - o * o / s) / s;\n}\nfunction Bc(r, e) {\n for (let t = 0; t < r.rows; t++)\n for (let i = 0; i < r.columns; i++)\n r.set(t, i, r.get(t, i) - e[t]);\n}\nfunction Uc(r, e) {\n for (let t = 0; t < r.rows; t++)\n for (let i = 0; i < r.columns; i++)\n r.set(t, i, r.get(t, i) - e[i]);\n}\nfunction Wc(r, e) {\n for (let t = 0; t < r.rows; t++)\n for (let i = 0; i < r.columns; i++)\n r.set(t, i, r.get(t, i) - e);\n}\nfunction Vc(r) {\n const e = [];\n for (let t = 0; t < r.rows; t++) {\n let i = 0;\n for (let n = 0; n < r.columns; n++)\n i += Math.pow(r.get(t, n), 2) / (r.columns - 1);\n e.push(Math.sqrt(i));\n }\n return e;\n}\nfunction zc(r, e) {\n for (let t = 0; t < r.rows; t++)\n for (let i = 0; i < r.columns; i++)\n r.set(t, i, r.get(t, i) / e[t]);\n}\nfunction $c(r) {\n const e = [];\n for (let t = 0; t < r.columns; t++) {\n let i = 0;\n for (let n = 0; n < r.rows; n++)\n i += Math.pow(r.get(n, t), 2) / (r.rows - 1);\n e.push(Math.sqrt(i));\n }\n return e;\n}\nfunction qc(r, e) {\n for (let t = 0; t < r.rows; t++)\n for (let i = 0; i < r.columns; i++)\n r.set(t, i, r.get(t, i) / e[i]);\n}\nfunction Zc(r) {\n const e = r.size - 1;\n let t = 0;\n for (let i = 0; i < r.columns; i++)\n for (let n = 0; n < r.rows; n++)\n t += Math.pow(r.get(n, i), 2) / e;\n return Math.sqrt(t);\n}\nfunction Xc(r, e) {\n for (let t = 0; t < r.rows; t++)\n for (let i = 0; i < r.columns; i++)\n r.set(t, i, r.get(t, i) / e);\n}\nlet te = class ae {\n static from1DArray(e, t, i) {\n if (e * t !== i.length)\n throw new RangeError(\"data length does not match given dimensions\");\n let n = new k(e, t);\n for (let s = 0; s < e; s++)\n for (let o = 0; o < t; o++)\n n.set(s, o, i[s * t + o]);\n return n;\n }\n static rowVector(e) {\n let t = new k(1, e.length);\n for (let i = 0; i < e.length; i++)\n t.set(0, i, e[i]);\n return t;\n }\n static columnVector(e) {\n let t = new k(e.length, 1);\n for (let i = 0; i < e.length; i++)\n t.set(i, 0, e[i]);\n return t;\n }\n static zeros(e, t) {\n return new k(e, t);\n }\n static ones(e, t) {\n return new k(e, t).fill(1);\n }\n static rand(e, t, i = {}) {\n if (typeof i != \"object\")\n throw new TypeError(\"options must be an object\");\n const { random: n = Math.random } = i;\n let s = new k(e, t);\n for (let o = 0; o < e; o++)\n for (let a = 0; a < t; a++)\n s.set(o, a, n());\n return s;\n }\n static randInt(e, t, i = {}) {\n if (typeof i != \"object\")\n throw new TypeError(\"options must be an object\");\n const { min: n = 0, max: s = 1e3, random: o = Math.random } = i;\n if (!Number.isInteger(n))\n throw new TypeError(\"min must be an integer\");\n if (!Number.isInteger(s))\n throw new TypeError(\"max must be an integer\");\n if (n >= s)\n throw new RangeError(\"min must be smaller than max\");\n let a = s - n, l = new k(e, t);\n for (let c = 0; c < e; c++)\n for (let h = 0; h < t; h++) {\n let u = n + Math.round(o() * a);\n l.set(c, h, u);\n }\n return l;\n }\n static eye(e, t, i) {\n t === void 0 && (t = e), i === void 0 && (i = 1);\n let n = Math.min(e, t), s = this.zeros(e, t);\n for (let o = 0; o < n; o++)\n s.set(o, o, i);\n return s;\n }\n static diag(e, t, i) {\n let n = e.length;\n t === void 0 && (t = n), i === void 0 && (i = t);\n let s = Math.min(n, t, i), o = this.zeros(t, i);\n for (let a = 0; a < s; a++)\n o.set(a, a, e[a]);\n return o;\n }\n static min(e, t) {\n e = this.checkMatrix(e), t = this.checkMatrix(t);\n let i = e.rows, n = e.columns, s = new k(i, n);\n for (let o = 0; o < i; o++)\n for (let a = 0; a < n; a++)\n s.set(o, a, Math.min(e.get(o, a), t.get(o, a)));\n return s;\n }\n static max(e, t) {\n e = this.checkMatrix(e), t = this.checkMatrix(t);\n let i = e.rows, n = e.columns, s = new this(i, n);\n for (let o = 0; o < i; o++)\n for (let a = 0; a < n; a++)\n s.set(o, a, Math.max(e.get(o, a), t.get(o, a)));\n return s;\n }\n static checkMatrix(e) {\n return ae.isMatrix(e) ? e : new k(e);\n }\n static isMatrix(e) {\n return e != null && e.klass === \"Matrix\";\n }\n get size() {\n return this.rows * this.columns;\n }\n apply(e) {\n if (typeof e != \"function\")\n throw new TypeError(\"callback must be a function\");\n for (let t = 0; t < this.rows; t++)\n for (let i = 0; i < this.columns; i++)\n e.call(this, t, i);\n return this;\n }\n to1DArray() {\n let e = [];\n for (let t = 0; t < this.rows; t++)\n for (let i = 0; i < this.columns; i++)\n e.push(this.get(t, i));\n return e;\n }\n to2DArray() {\n let e = [];\n for (let t = 0; t < this.rows; t++) {\n e.push([]);\n for (let i = 0; i < this.columns; i++)\n e[t].push(this.get(t, i));\n }\n return e;\n }\n toJSON() {\n return this.to2DArray();\n }\n isRowVector() {\n return this.rows === 1;\n }\n isColumnVector() {\n return this.columns === 1;\n }\n isVector() {\n return this.rows === 1 || this.columns === 1;\n }\n isSquare() {\n return this.rows === this.columns;\n }\n isEmpty() {\n return this.rows === 0 || this.columns === 0;\n }\n isSymmetric() {\n if (this.isSquare()) {\n for (let e = 0; e < this.rows; e++)\n for (let t = 0; t <= e; t++)\n if (this.get(e, t) !== this.get(t, e))\n return !1;\n return !0;\n }\n return !1;\n }\n isDistance() {\n if (!this.isSymmetric())\n return !1;\n for (let e = 0; e < this.rows; e++)\n if (this.get(e, e) !== 0)\n return !1;\n return !0;\n }\n isEchelonForm() {\n let e = 0, t = 0, i = -1, n = !0, s = !1;\n for (; e < this.rows && n; ) {\n for (t = 0, s = !1; t < this.columns && s === !1; )\n this.get(e, t) === 0 ? t++ : this.get(e, t) === 1 && t > i ? (s = !0, i = t) : (n = !1, s = !0);\n e++;\n }\n return n;\n }\n isReducedEchelonForm() {\n let e = 0, t = 0, i = -1, n = !0, s = !1;\n for (; e < this.rows && n; ) {\n for (t = 0, s = !1; t < this.columns && s === !1; )\n this.get(e, t) === 0 ? t++ : this.get(e, t) === 1 && t > i ? (s = !0, i = t) : (n = !1, s = !0);\n for (let o = t + 1; o < this.rows; o++)\n this.get(e, o) !== 0 && (n = !1);\n e++;\n }\n return n;\n }\n echelonForm() {\n let e = this.clone(), t = 0, i = 0;\n for (; t < e.rows && i < e.columns; ) {\n let n = t;\n for (let s = t; s < e.rows; s++)\n e.get(s, i) > e.get(n, i) && (n = s);\n if (e.get(n, i) === 0)\n i++;\n else {\n e.swapRows(t, n);\n let s = e.get(t, i);\n for (let o = i; o < e.columns; o++)\n e.set(t, o, e.get(t, o) / s);\n for (let o = t + 1; o < e.rows; o++) {\n let a = e.get(o, i) / e.get(t, i);\n e.set(o, i, 0);\n for (let l = i + 1; l < e.columns; l++)\n e.set(o, l, e.get(o, l) - e.get(t, l) * a);\n }\n t++, i++;\n }\n }\n return e;\n }\n reducedEchelonForm() {\n let e = this.echelonForm(), t = e.columns, i = e.rows, n = i - 1;\n for (; n >= 0; )\n if (e.maxRow(n) === 0)\n n--;\n else {\n let s = 0, o = !1;\n for (; s < i && o === !1; )\n e.get(n, s) === 1 ? o = !0 : s++;\n for (let a = 0; a < n; a++) {\n let l = e.get(a, s);\n for (let c = s; c < t; c++) {\n let h = e.get(a, c) - l * e.get(n, c);\n e.set(a, c, h);\n }\n }\n n--;\n }\n return e;\n }\n set() {\n throw new Error(\"set method is unimplemented\");\n }\n get() {\n throw new Error(\"get method is unimplemented\");\n }\n repeat(e = {}) {\n if (typeof e != \"object\")\n throw new TypeError(\"options must be an object\");\n const { rows: t = 1, columns: i = 1 } = e;\n if (!Number.isInteger(t) || t <= 0)\n throw new TypeError(\"rows must be a positive integer\");\n if (!Number.isInteger(i) || i <= 0)\n throw new TypeError(\"columns must be a positive integer\");\n let n = new k(this.rows * t, this.columns * i);\n for (let s = 0; s < t; s++)\n for (let o = 0; o < i; o++)\n n.setSubMatrix(this, this.rows * s, this.columns * o);\n return n;\n }\n fill(e) {\n for (let t = 0; t < this.rows; t++)\n for (let i = 0; i < this.columns; i++)\n this.set(t, i, e);\n return this;\n }\n neg() {\n return this.mulS(-1);\n }\n getRow(e) {\n Te(this, e);\n let t = [];\n for (let i = 0; i < this.columns; i++)\n t.push(this.get(e, i));\n return t;\n }\n getRowVector(e) {\n return k.rowVector(this.getRow(e));\n }\n setRow(e, t) {\n Te(this, e), t = dt(this, t);\n for (let i = 0; i < this.columns; i++)\n this.set(e, i, t[i]);\n return this;\n }\n swapRows(e, t) {\n Te(this, e), Te(this, t);\n for (let i = 0; i < this.columns; i++) {\n let n = this.get(e, i);\n this.set(e, i, this.get(t, i)), this.set(t, i, n);\n }\n return this;\n }\n getColumn(e) {\n _e(this, e);\n let t = [];\n for (let i = 0; i < this.rows; i++)\n t.push(this.get(i, e));\n return t;\n }\n getColumnVector(e) {\n return k.columnVector(this.getColumn(e));\n }\n setColumn(e, t) {\n _e(this, e), t = pt(this, t);\n for (let i = 0; i < this.rows; i++)\n this.set(i, e, t[i]);\n return this;\n }\n swapColumns(e, t) {\n _e(this, e), _e(this, t);\n for (let i = 0; i < this.rows; i++) {\n let n = this.get(i, e);\n this.set(i, e, this.get(i, t)), this.set(i, t, n);\n }\n return this;\n }\n addRowVector(e) {\n e = dt(this, e);\n for (let t = 0; t < this.rows; t++)\n for (let i = 0; i < this.columns; i++)\n this.set(t, i, this.get(t, i) + e[i]);\n return this;\n }\n subRowVector(e) {\n e = dt(this, e);\n for (let t = 0; t < this.rows; t++)\n for (let i = 0; i < this.columns; i++)\n this.set(t, i, this.get(t, i) - e[i]);\n return this;\n }\n mulRowVector(e) {\n e = dt(this, e);\n for (let t = 0; t < this.rows; t++)\n for (let i = 0; i < this.columns; i++)\n this.set(t, i, this.get(t, i) * e[i]);\n return this;\n }\n divRowVector(e) {\n e = dt(this, e);\n for (let t = 0; t < this.rows; t++)\n for (let i = 0; i < this.columns; i++)\n this.set(t, i, this.get(t, i) / e[i]);\n return this;\n }\n addColumnVector(e) {\n e = pt(this, e);\n for (let t = 0; t < this.rows; t++)\n for (let i = 0; i < this.columns; i++)\n this.set(t, i, this.get(t, i) + e[t]);\n return this;\n }\n subColumnVector(e) {\n e = pt(this, e);\n for (let t = 0; t < this.rows; t++)\n for (let i = 0; i < this.columns; i++)\n this.set(t, i, this.get(t, i) - e[t]);\n return this;\n }\n mulColumnVector(e) {\n e = pt(this, e);\n for (let t = 0; t < this.rows; t++)\n for (let i = 0; i < this.columns; i++)\n this.set(t, i, this.get(t, i) * e[t]);\n return this;\n }\n divColumnVector(e) {\n e = pt(this, e);\n for (let t = 0; t < this.rows; t++)\n for (let i = 0; i < this.columns; i++)\n this.set(t, i, this.get(t, i) / e[t]);\n return this;\n }\n mulRow(e, t) {\n Te(this, e);\n for (let i = 0; i < this.columns; i++)\n this.set(e, i, this.get(e, i) * t);\n return this;\n }\n mulColumn(e, t) {\n _e(this, e);\n for (let i = 0; i < this.rows; i++)\n this.set(i, e, this.get(i, e) * t);\n return this;\n }\n max(e) {\n if (this.isEmpty())\n return NaN;\n switch (e) {\n case \"row\": {\n const t = new Array(this.rows).fill(Number.NEGATIVE_INFINITY);\n for (let i = 0; i < this.rows; i++)\n for (let n = 0; n < this.columns; n++)\n this.get(i, n) > t[i] && (t[i] = this.get(i, n));\n return t;\n }\n case \"column\": {\n const t = new Array(this.columns).fill(Number.NEGATIVE_INFINITY);\n for (let i = 0; i < this.rows; i++)\n for (let n = 0; n < this.columns; n++)\n this.get(i, n) > t[n] && (t[n] = this.get(i, n));\n return t;\n }\n case void 0: {\n let t = this.get(0, 0);\n for (let i = 0; i < this.rows; i++)\n for (let n = 0; n < this.columns; n++)\n this.get(i, n) > t && (t = this.get(i, n));\n return t;\n }\n default:\n throw new Error(`invalid option: ${e}`);\n }\n }\n maxIndex() {\n lt(this);\n let e = this.get(0, 0), t = [0, 0];\n for (let i = 0; i < this.rows; i++)\n for (let n = 0; n < this.columns; n++)\n this.get(i, n) > e && (e = this.get(i, n), t[0] = i, t[1] = n);\n return t;\n }\n min(e) {\n if (this.isEmpty())\n return NaN;\n switch (e) {\n case \"row\": {\n const t = new Array(this.rows).fill(Number.POSITIVE_INFINITY);\n for (let i = 0; i < this.rows; i++)\n for (let n = 0; n < this.columns; n++)\n this.get(i, n) < t[i] && (t[i] = this.get(i, n));\n return t;\n }\n case \"column\": {\n const t = new Array(this.columns).fill(Number.POSITIVE_INFINITY);\n for (let i = 0; i < this.rows; i++)\n for (let n = 0; n < this.columns; n++)\n this.get(i, n) < t[n] && (t[n] = this.get(i, n));\n return t;\n }\n case void 0: {\n let t = this.get(0, 0);\n for (let i = 0; i < this.rows; i++)\n for (let n = 0; n < this.columns; n++)\n this.get(i, n) < t && (t = this.get(i, n));\n return t;\n }\n default:\n throw new Error(`invalid option: ${e}`);\n }\n }\n minIndex() {\n lt(this);\n let e = this.get(0, 0), t = [0, 0];\n for (let i = 0; i < this.rows; i++)\n for (let n = 0; n < this.columns; n++)\n this.get(i, n) < e && (e = this.get(i, n), t[0] = i, t[1] = n);\n return t;\n }\n maxRow(e) {\n if (Te(this, e), this.isEmpty())\n return NaN;\n let t = this.get(e, 0);\n for (let i = 1; i < this.columns; i++)\n this.get(e, i) > t && (t = this.get(e, i));\n return t;\n }\n maxRowIndex(e) {\n Te(this, e), lt(this);\n let t = this.get(e, 0), i = [e, 0];\n for (let n = 1; n < this.columns; n++)\n this.get(e, n) > t && (t = this.get(e, n), i[1] = n);\n return i;\n }\n minRow(e) {\n if (Te(this, e), this.isEmpty())\n return NaN;\n let t = this.get(e, 0);\n for (let i = 1; i < this.columns; i++)\n this.get(e, i) < t && (t = this.get(e, i));\n return t;\n }\n minRowIndex(e) {\n Te(this, e), lt(this);\n let t = this.get(e, 0), i = [e, 0];\n for (let n = 1; n < this.columns; n++)\n this.get(e, n) < t && (t = this.get(e, n), i[1] = n);\n return i;\n }\n maxColumn(e) {\n if (_e(this, e), this.isEmpty())\n return NaN;\n let t = this.get(0, e);\n for (let i = 1; i < this.rows; i++)\n this.get(i, e) > t && (t = this.get(i, e));\n return t;\n }\n maxColumnIndex(e) {\n _e(this, e), lt(this);\n let t = this.get(0, e), i = [0, e];\n for (let n = 1; n < this.rows; n++)\n this.get(n, e) > t && (t = this.get(n, e), i[0] = n);\n return i;\n }\n minColumn(e) {\n if (_e(this, e), this.isEmpty())\n return NaN;\n let t = this.get(0, e);\n for (let i = 1; i < this.rows; i++)\n this.get(i, e) < t && (t = this.get(i, e));\n return t;\n }\n minColumnIndex(e) {\n _e(this, e), lt(this);\n let t = this.get(0, e), i = [0, e];\n for (let n = 1; n < this.rows; n++)\n this.get(n, e) < t && (t = this.get(n, e), i[0] = n);\n return i;\n }\n diag() {\n let e = Math.min(this.rows, this.columns), t = [];\n for (let i = 0; i < e; i++)\n t.push(this.get(i, i));\n return t;\n }\n norm(e = \"frobenius\") {\n switch (e) {\n case \"max\":\n return this.max();\n case \"frobenius\":\n return Math.sqrt(this.dot(this));\n default:\n throw new RangeError(`unknown norm type: ${e}`);\n }\n }\n cumulativeSum() {\n let e = 0;\n for (let t = 0; t < this.rows; t++)\n for (let i = 0; i < this.columns; i++)\n e += this.get(t, i), this.set(t, i, e);\n return this;\n }\n dot(e) {\n ae.isMatrix(e) && (e = e.to1DArray());\n let t = this.to1DArray();\n if (t.length !== e.length)\n throw new RangeError(\"vectors do not have the same size\");\n let i = 0;\n for (let n = 0; n < t.length; n++)\n i += t[n] * e[n];\n return i;\n }\n mmul(e) {\n e = k.checkMatrix(e);\n let t = this.rows, i = this.columns, n = e.columns, s = new k(t, n), o = new Float64Array(i);\n for (let a = 0; a < n; a++) {\n for (let l = 0; l < i; l++)\n o[l] = e.get(l, a);\n for (let l = 0; l < t; l++) {\n let c = 0;\n for (let h = 0; h < i; h++)\n c += this.get(l, h) * o[h];\n s.set(l, a, c);\n }\n }\n return s;\n }\n strassen2x2(e) {\n e = k.checkMatrix(e);\n let t = new k(2, 2);\n const i = this.get(0, 0), n = e.get(0, 0), s = this.get(0, 1), o = e.get(0, 1), a = this.get(1, 0), l = e.get(1, 0), c = this.get(1, 1), h = e.get(1, 1), u = (i + c) * (n + h), g = (a + c) * n, y = i * (o - h), v = c * (l - n), E = (i + s) * h, P = (a - i) * (n + o), w = (s - c) * (l + h), S = u + v - E + w, f = y + E, p = g + v, b = u - g + y + P;\n return t.set(0, 0, S), t.set(0, 1, f), t.set(1, 0, p), t.set(1, 1, b), t;\n }\n strassen3x3(e) {\n e = k.checkMatrix(e);\n let t = new k(3, 3);\n const i = this.get(0, 0), n = this.get(0, 1), s = this.get(0, 2), o = this.get(1, 0), a = this.get(1, 1), l = this.get(1, 2), c = this.get(2, 0), h = this.get(2, 1), u = this.get(2, 2), g = e.get(0, 0), y = e.get(0, 1), v = e.get(0, 2), E = e.get(1, 0), P = e.get(1, 1), w = e.get(1, 2), S = e.get(2, 0), f = e.get(2, 1), p = e.get(2, 2), b = (i + n + s - o - a - h - u) * P, R = (i - o) * (-y + P), A = a * (-g + y + E - P - w - S + p), T = (-i + o + a) * (g - y + P), d = (o + a) * (-g + y), x = i * g, _ = (-i + c + h) * (g - v + w), M = (-i + c) * (v - w), z = (c + h) * (-g + v), H = (i + n + s - a - l - c - h) * w, Z = h * (-g + v + E - P - w - S + f), W = (-s + h + u) * (P + S - f), ne = (s - u) * (P - f), ce = s * S, de = (h + u) * (-S + f), K = (-s + a + l) * (w + S - p), Me = (s - l) * (w - p), G = (a + l) * (-S + p), re = n * E, pe = l * f, he = o * v, oe = c * y, Oo = u * p, No = x + ce + re, Do = b + T + d + x + W + ce + de, Fo = x + _ + z + H + ce + K + G, Go = R + A + T + x + ce + K + Me, Bo = R + T + d + x + pe, Uo = ce + K + Me + G + he, Wo = x + _ + M + Z + W + ne + ce, Vo = W + ne + ce + de + oe, zo = x + _ + M + z + Oo;\n return t.set(0, 0, No), t.set(0, 1, Do), t.set(0, 2, Fo), t.set(1, 0, Go), t.set(1, 1, Bo), t.set(1, 2, Uo), t.set(2, 0, Wo), t.set(2, 1, Vo), t.set(2, 2, zo), t;\n }\n mmulStrassen(e) {\n e = k.checkMatrix(e);\n let t = this.clone(), i = t.rows, n = t.columns, s = e.rows, o = e.columns;\n n !== s && console.warn(\n `Multiplying ${i} x ${n} and ${s} x ${o} matrix: dimensions do not match.`\n );\n function a(u, g, y) {\n let v = u.rows, E = u.columns;\n if (v === g && E === y)\n return u;\n {\n let P = ae.zeros(g, y);\n return P = P.setSubMatrix(u, 0, 0), P;\n }\n }\n let l = Math.max(i, s), c = Math.max(n, o);\n t = a(t, l, c), e = a(e, l, c);\n function h(u, g, y, v) {\n if (y <= 512 || v <= 512)\n return u.mmul(g);\n y % 2 === 1 && v % 2 === 1 ? (u = a(u, y + 1, v + 1), g = a(g, y + 1, v + 1)) : y % 2 === 1 ? (u = a(u, y + 1, v), g = a(g, y + 1, v)) : v % 2 === 1 && (u = a(u, y, v + 1), g = a(g, y, v + 1));\n let E = parseInt(u.rows / 2, 10), P = parseInt(u.columns / 2, 10), w = u.subMatrix(0, E - 1, 0, P - 1), S = g.subMatrix(0, E - 1, 0, P - 1), f = u.subMatrix(0, E - 1, P, u.columns - 1), p = g.subMatrix(0, E - 1, P, g.columns - 1), b = u.subMatrix(E, u.rows - 1, 0, P - 1), R = g.subMatrix(E, g.rows - 1, 0, P - 1), A = u.subMatrix(E, u.rows - 1, P, u.columns - 1), T = g.subMatrix(E, g.rows - 1, P, g.columns - 1), d = h(\n ae.add(w, A),\n ae.add(S, T),\n E,\n P\n ), x = h(ae.add(b, A), S, E, P), _ = h(w, ae.sub(p, T), E, P), M = h(A, ae.sub(R, S), E, P), z = h(ae.add(w, f), T, E, P), H = h(\n ae.sub(b, w),\n ae.add(S, p),\n E,\n P\n ), Z = h(\n ae.sub(f, A),\n ae.add(R, T),\n E,\n P\n ), W = ae.add(d, M);\n W.sub(z), W.add(Z);\n let ne = ae.add(_, z), ce = ae.add(x, M), de = ae.sub(d, x);\n de.add(_), de.add(H);\n let K = ae.zeros(2 * W.rows, 2 * W.columns);\n return K = K.setSubMatrix(W, 0, 0), K = K.setSubMatrix(ne, W.rows, 0), K = K.setSubMatrix(ce, 0, W.columns), K = K.setSubMatrix(de, W.rows, W.columns), K.subMatrix(0, y - 1, 0, v - 1);\n }\n return h(t, e, l, c);\n }\n scaleRows(e = {}) {\n if (typeof e != \"object\")\n throw new TypeError(\"options must be an object\");\n const { min: t = 0, max: i = 1 } = e;\n if (!Number.isFinite(t))\n throw new TypeError(\"min must be a number\");\n if (!Number.isFinite(i))\n throw new TypeError(\"max must be a number\");\n if (t >= i)\n throw new RangeError(\"min must be smaller than max\");\n let n = new k(this.rows, this.columns);\n for (let s = 0; s < this.rows; s++) {\n const o = this.getRow(s);\n o.length > 0 && On(o, { min: t, max: i, output: o }), n.setRow(s, o);\n }\n return n;\n }\n scaleColumns(e = {}) {\n if (typeof e != \"object\")\n throw new TypeError(\"options must be an object\");\n const { min: t = 0, max: i = 1 } = e;\n if (!Number.isFinite(t))\n throw new TypeError(\"min must be a number\");\n if (!Number.isFinite(i))\n throw new TypeError(\"max must be a number\");\n if (t >= i)\n throw new RangeError(\"min must be smaller than max\");\n let n = new k(this.rows, this.columns);\n for (let s = 0; s < this.columns; s++) {\n const o = this.getColumn(s);\n o.length && On(o, {\n min: t,\n max: i,\n output: o\n }), n.setColumn(s, o);\n }\n return n;\n }\n flipRows() {\n const e = Math.ceil(this.columns / 2);\n for (let t = 0; t < this.rows; t++)\n for (let i = 0; i < e; i++) {\n let n = this.get(t, i), s = this.get(t, this.columns - 1 - i);\n this.set(t, i, s), this.set(t, this.columns - 1 - i, n);\n }\n return this;\n }\n flipColumns() {\n const e = Math.ceil(this.rows / 2);\n for (let t = 0; t < this.columns; t++)\n for (let i = 0; i < e; i++) {\n let n = this.get(i, t), s = this.get(this.rows - 1 - i, t);\n this.set(i, t, s), this.set(this.rows - 1 - i, t, n);\n }\n return this;\n }\n kroneckerProduct(e) {\n e = k.checkMatrix(e);\n let t = this.rows, i = this.columns, n = e.rows, s = e.columns, o = new k(t * n, i * s);\n for (let a = 0; a < t; a++)\n for (let l = 0; l < i; l++)\n for (let c = 0; c < n; c++)\n for (let h = 0; h < s; h++)\n o.set(n * a + c, s * l + h, this.get(a, l) * e.get(c, h));\n return o;\n }\n kroneckerSum(e) {\n if (e = k.checkMatrix(e), !this.isSquare() || !e.isSquare())\n throw new Error(\"Kronecker Sum needs two Square Matrices\");\n let t = this.rows, i = e.rows, n = this.kroneckerProduct(k.eye(i, i)), s = k.eye(t, t).kroneckerProduct(e);\n return n.add(s);\n }\n transpose() {\n let e = new k(this.columns, this.rows);\n for (let t = 0; t < this.rows; t++)\n for (let i = 0; i < this.columns; i++)\n e.set(i, t, this.get(t, i));\n return e;\n }\n sortRows(e = Dn) {\n for (let t = 0; t < this.rows; t++)\n this.setRow(t, this.getRow(t).sort(e));\n return this;\n }\n sortColumns(e = Dn) {\n for (let t = 0; t < this.columns; t++)\n this.setColumn(t, this.getColumn(t).sort(e));\n return this;\n }\n subMatrix(e, t, i, n) {\n Oi(this, e, t, i, n);\n let s = new k(\n t - e + 1,\n n - i + 1\n );\n for (let o = e; o <= t; o++)\n for (let a = i; a <= n; a++)\n s.set(o - e, a - i, this.get(o, a));\n return s;\n }\n subMatrixRow(e, t, i) {\n if (t === void 0 && (t = 0), i === void 0 && (i = this.columns - 1), t > i || t < 0 || t >= this.columns || i < 0 || i >= this.columns)\n throw new RangeError(\"Argument out of range\");\n let n = new k(e.length, i - t + 1);\n for (let s = 0; s < e.length; s++)\n for (let o = t; o <= i; o++) {\n if (e[s] < 0 || e[s] >= this.rows)\n throw new RangeError(`Row index out of range: ${e[s]}`);\n n.set(s, o - t, this.get(e[s], o));\n }\n return n;\n }\n subMatrixColumn(e, t, i) {\n if (t === void 0 && (t = 0), i === void 0 && (i = this.rows - 1), t > i || t < 0 || t >= this.rows || i < 0 || i >= this.rows)\n throw new RangeError(\"Argument out of range\");\n let n = new k(i - t + 1, e.length);\n for (let s = 0; s < e.length; s++)\n for (let o = t; o <= i; o++) {\n if (e[s] < 0 || e[s] >= this.columns)\n throw new RangeError(`Column index out of range: ${e[s]}`);\n n.set(o - t, s, this.get(o, e[s]));\n }\n return n;\n }\n setSubMatrix(e, t, i) {\n if (e = k.checkMatrix(e), e.isEmpty())\n return this;\n let n = t + e.rows - 1, s = i + e.columns - 1;\n Oi(this, t, n, i, s);\n for (let o = 0; o < e.rows; o++)\n for (let a = 0; a < e.columns; a++)\n this.set(t + o, i + a, e.get(o, a));\n return this;\n }\n selection(e, t) {\n Xi(this, e), Hi(this, t);\n let i = new k(e.length, t.length);\n for (let n = 0; n < e.length; n++) {\n let s = e[n];\n for (let o = 0; o < t.length; o++) {\n let a = t[o];\n i.set(n, o, this.get(s, a));\n }\n }\n return i;\n }\n trace() {\n let e = Math.min(this.rows, this.columns), t = 0;\n for (let i = 0; i < e; i++)\n t += this.get(i, i);\n return t;\n }\n clone() {\n return this.constructor.copy(this, new k(this.rows, this.columns));\n }\n /**\n * @template {AbstractMatrix} M\n * @param {AbstractMatrix} from\n * @param {M} to\n * @return {M}\n */\n static copy(e, t) {\n for (const [i, n, s] of e.entries())\n t.set(i, n, s);\n return t;\n }\n sum(e) {\n switch (e) {\n case \"row\":\n return Cc(this);\n case \"column\":\n return kc(this);\n case void 0:\n return Lc(this);\n default:\n throw new Error(`invalid option: ${e}`);\n }\n }\n product(e) {\n switch (e) {\n case \"row\":\n return jc(this);\n case \"column\":\n return Oc(this);\n case void 0:\n return Nc(this);\n default:\n throw new Error(`invalid option: ${e}`);\n }\n }\n mean(e) {\n const t = this.sum(e);\n switch (e) {\n case \"row\": {\n for (let i = 0; i < this.rows; i++)\n t[i] /= this.columns;\n return t;\n }\n case \"column\": {\n for (let i = 0; i < this.columns; i++)\n t[i] /= this.rows;\n return t;\n }\n case void 0:\n return t / this.size;\n default:\n throw new Error(`invalid option: ${e}`);\n }\n }\n variance(e, t = {}) {\n if (typeof e == \"object\" && (t = e, e = void 0), typeof t != \"object\")\n throw new TypeError(\"options must be an object\");\n const { unbiased: i = !0, mean: n = this.mean(e) } = t;\n if (typeof i != \"boolean\")\n throw new TypeError(\"unbiased must be a boolean\");\n switch (e) {\n case \"row\": {\n if (!ye.isAnyArray(n))\n throw new TypeError(\"mean must be an array\");\n return Dc(this, i, n);\n }\n case \"column\": {\n if (!ye.isAnyArray(n))\n throw new TypeError(\"mean must be an array\");\n return Fc(this, i, n);\n }\n case void 0: {\n if (typeof n != \"number\")\n throw new TypeError(\"mean must be a number\");\n return Gc(this, i, n);\n }\n default:\n throw new Error(`invalid option: ${e}`);\n }\n }\n standardDeviation(e, t) {\n typeof e == \"object\" && (t = e, e = void 0);\n const i = this.variance(e, t);\n if (e === void 0)\n return Math.sqrt(i);\n for (let n = 0; n < i.length; n++)\n i[n] = Math.sqrt(i[n]);\n return i;\n }\n center(e, t = {}) {\n if (typeof e == \"object\" && (t = e, e = void 0), typeof t != \"object\")\n throw new TypeError(\"options must be an object\");\n const { center: i = this.mean(e) } = t;\n switch (e) {\n case \"row\": {\n if (!ye.isAnyArray(i))\n throw new TypeError(\"center must be an array\");\n return Bc(this, i), this;\n }\n case \"column\": {\n if (!ye.isAnyArray(i))\n throw new TypeError(\"center must be an array\");\n return Uc(this, i), this;\n }\n case void 0: {\n if (typeof i != \"number\")\n throw new TypeError(\"center must be a number\");\n return Wc(this, i), this;\n }\n default:\n throw new Error(`invalid option: ${e}`);\n }\n }\n scale(e, t = {}) {\n if (typeof e == \"object\" && (t = e, e = void 0), typeof t != \"object\")\n throw new TypeError(\"options must be an object\");\n let i = t.scale;\n switch (e) {\n case \"row\": {\n if (i === void 0)\n i = Vc(this);\n else if (!ye.isAnyArray(i))\n throw new TypeError(\"scale must be an array\");\n return zc(this, i), this;\n }\n case \"column\": {\n if (i === void 0)\n i = $c(this);\n else if (!ye.isAnyArray(i))\n throw new TypeError(\"scale must be an array\");\n return qc(this, i), this;\n }\n case void 0: {\n if (i === void 0)\n i = Zc(this);\n else if (typeof i != \"number\")\n throw new TypeError(\"scale must be a number\");\n return Xc(this, i), this;\n }\n default:\n throw new Error(`invalid option: ${e}`);\n }\n }\n toString(e) {\n return Us(this, e);\n }\n [Symbol.iterator]() {\n return this.entries();\n }\n /**\n * iterator from left to right, from top to bottom\n * yield [row, column, value]\n * @returns {Generator<[number, number, number], void, *>}\n */\n *entries() {\n for (let e = 0; e < this.rows; e++)\n for (let t = 0; t < this.columns; t++)\n yield [e, t, this.get(e, t)];\n }\n /**\n * iterator from left to right, from top to bottom\n * yield value\n * @returns {Generator<number, void, *>}\n */\n *values() {\n for (let e = 0; e < this.rows; e++)\n for (let t = 0; t < this.columns; t++)\n yield this.get(e, t);\n }\n};\nte.prototype.klass = \"Matrix\";\ntypeof Symbol < \"u\" && (te.prototype[Symbol.for(\"nodejs.util.inspect.custom\")] = Sc);\nfunction Dn(r, e) {\n return r - e;\n}\nfunction Hc(r) {\n return r.every((e) => typeof e == \"number\");\n}\nte.random = te.rand;\nte.randomInt = te.randInt;\nte.diagonal = te.diag;\nte.prototype.diagonal = te.prototype.diag;\nte.identity = te.eye;\nte.prototype.negate = te.prototype.neg;\nte.prototype.tensorProduct = te.prototype.kroneckerProduct;\nlet k = class Ni extends te {\n /**\n * @type {Float64Array[]}\n */\n data;\n /**\n * Init an empty matrix\n * @param {number} nRows\n * @param {number} nColumns\n */\n #e(e, t) {\n if (this.data = [], Number.isInteger(t) && t >= 0)\n for (let i = 0; i < e; i++)\n this.data.push(new Float64Array(t));\n else\n throw new TypeError(\"nColumns must be a positive integer\");\n this.rows = e, this.columns = t;\n }\n constructor(e, t) {\n if (super(), Ni.isMatrix(e))\n this.#e(e.rows, e.columns), Ni.copy(e, this);\n else if (Number.isInteger(e) && e >= 0)\n this.#e(e, t);\n else if (ye.isAnyArray(e)) {\n const i = e;\n if (e = i.length, t = e ? i[0].length : 0, typeof t != \"number\")\n throw new TypeError(\n \"Data must be a 2D array with at least one element\"\n );\n this.data = [];\n for (let n = 0; n < e; n++) {\n if (i[n].length !== t)\n throw new RangeError(\"Inconsistent array dimensions\");\n if (!Hc(i[n]))\n throw new TypeError(\"Input data contains non-numeric values\");\n this.data.push(Float64Array.from(i[n]));\n }\n this.rows = e, this.columns = t;\n } else\n throw new TypeError(\n \"First argument must be a positive number or an array\"\n );\n }\n set(e, t, i) {\n return this.data[e][t] = i, this;\n }\n get(e, t) {\n return this.data[e][t];\n }\n removeRow(e) {\n return Te(this, e), this.data.splice(e, 1), this.rows -= 1, this;\n }\n addRow(e, t) {\n return t === void 0 && (t = e, e = this.rows), Te(this, e, !0), t = Float64Array.from(dt(this, t)), this.data.splice(e, 0, t), this.rows += 1, this;\n }\n removeColumn(e) {\n _e(this, e);\n for (let t = 0; t < this.rows; t++) {\n const i = new Float64Array(this.columns - 1);\n for (let n = 0; n < e; n++)\n i[n] = this.data[t][n];\n for (let n = e + 1; n < this.columns; n++)\n i[n - 1] = this.data[t][n];\n this.data[t] = i;\n }\n return this.columns -= 1, this;\n }\n addColumn(e, t) {\n typeof t > \"u\" && (t = e, e = this.columns), _e(this, e, !0), t = pt(this, t);\n for (let i = 0; i < this.rows; i++) {\n const n = new Float64Array(this.columns + 1);\n let s = 0;\n for (; s < e; s++)\n n[s] = this.data[i][s];\n for (n[s++] = t[i]; s < this.columns + 1; s++)\n n[s] = this.data[i][s - 1];\n this.data[i] = n;\n }\n return this.columns += 1, this;\n }\n};\nAc(te, k);\nclass Ye extends te {\n /** @type {Matrix} */\n #e;\n get size() {\n return this.#e.size;\n }\n get rows() {\n return this.#e.rows;\n }\n get columns() {\n return this.#e.columns;\n }\n get diagonalSize() {\n return this.rows;\n }\n /**\n * not the same as matrix.isSymmetric()\n * Here is to check if it's instanceof SymmetricMatrix without bundling issues\n *\n * @param value\n * @returns {boolean}\n */\n static isSymmetricMatrix(e) {\n return k.isMatrix(e) && e.klassType === \"SymmetricMatrix\";\n }\n /**\n * @param diagonalSize\n * @return {SymmetricMatrix}\n */\n static zeros(e) {\n return new this(e);\n }\n /**\n * @param diagonalSize\n * @return {SymmetricMatrix}\n */\n static ones(e) {\n return new this(e).fill(1);\n }\n /**\n * @param {number | AbstractMatrix | ArrayLike<ArrayLike<number>>} diagonalSize\n * @return {this}\n */\n constructor(e) {\n if (super(), k.isMatrix(e)) {\n if (!e.isSymmetric())\n throw new TypeError(\"not symmetric data\");\n this.#e = k.copy(\n e,\n new k(e.rows, e.rows)\n );\n } else if (Number.isInteger(e) && e >= 0)\n this.#e = new k(e, e);\n else if (this.#e = new k(e), !this.isSymmetric())\n throw new TypeError(\"not symmetric data\");\n }\n clone() {\n const e = new Ye(this.diagonalSize);\n for (const [t, i, n] of this.upperRightEntries())\n e.set(t, i, n);\n return e;\n }\n toMatrix() {\n return new k(this);\n }\n get(e, t) {\n return this.#e.get(e, t);\n }\n set(e, t, i) {\n return this.#e.set(e, t, i), this.#e.set(t, e, i), this;\n }\n removeCross(e) {\n return this.#e.removeRow(e), this.#e.removeColumn(e), this;\n }\n addCross(e, t) {\n t === void 0 && (t = e, e = this.diagonalSize);\n const i = t.slice();\n return i.splice(e, 1), this.#e.addRow(e, i), this.#e.addColumn(e, t), this;\n }\n /**\n * @param {Mask[]} mask\n */\n applyMask(e) {\n if (e.length !== this.diagonalSize)\n throw new RangeError(\"Mask size do not match with matrix size\");\n const t = [];\n for (const [i, n] of e.entries())\n n || t.push(i);\n t.reverse();\n for (const i of t)\n this.removeCross(i);\n return this;\n }\n /**\n * Compact format upper-right corner of matrix\n * iterate from left to right, from top to bottom.\n *\n * ```\n * A B C D\n * A 1 2 3 4\n * B 2 5 6 7\n * C 3 6 8 9\n * D 4 7 9 10\n * ```\n *\n * will return compact 1D array `[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]`\n *\n * length is S(i=0, n=sideSize) => 10 for a 4 sideSized matrix\n *\n * @returns {number[]}\n */\n toCompact() {\n const { diagonalSize: e } = this, t = new Array(e * (e + 1) / 2);\n for (let i = 0, n = 0, s = 0; s < t.length; s++)\n t[s] = this.get(n, i), ++i >= e && (i = ++n);\n return t;\n }\n /**\n * @param {number[]} compact\n * @return {SymmetricMatrix}\n */\n static fromCompact(e) {\n const t = e.length, i = (Math.sqrt(8 * t + 1) - 1) / 2;\n if (!Number.isInteger(i))\n throw new TypeError(\n `This array is not a compact representation of a Symmetric Matrix, ${JSON.stringify(\n e\n )}`\n );\n const n = new Ye(i);\n for (let s = 0, o = 0, a = 0; a < t; a++)\n n.set(s, o, e[a]), ++s >= i && (s = ++o);\n return n;\n }\n /**\n * half iterator upper-right-corner from left to right, from top to bottom\n * yield [row, column, value]\n *\n * @returns {Generator<[number, number, number], void, *>}\n */\n *upperRightEntries() {\n for (let e = 0, t = 0; e < this.diagonalSize; void 0) {\n const i = this.get(e, t);\n yield [e, t, i], ++t >= this.diagonalSize && (t = ++e);\n }\n }\n /**\n * half iterator upper-right-corner from left to right, from top to bottom\n * yield value\n *\n * @returns {Generator<[number, number, number], void, *>}\n */\n *upperRightValues() {\n for (let e = 0, t = 0; e < this.diagonalSize; void 0)\n yield this.get(e, t), ++t >= this.diagonalSize && (t = ++e);\n }\n}\nYe.prototype.klassType = \"SymmetricMatrix\";\nclass ei extends Ye {\n /**\n * not the same as matrix.isSymmetric()\n * Here is to check if it's instanceof SymmetricMatrix without bundling issues\n *\n * @param value\n * @returns {boolean}\n */\n static isDistanceMatrix(e) {\n return Ye.isSymmetricMatrix(e) && e.klassSubType === \"DistanceMatrix\";\n }\n constructor(e) {\n if (super(e), !this.isDistance())\n throw new TypeError(\"Provided arguments do no produce a distance matrix\");\n }\n set(e, t, i) {\n return e === t && (i = 0), super.set(e, t, i);\n }\n addCross(e, t) {\n return t === void 0 && (t = e, e = this.diagonalSize), t = t.slice(), t[e] = 0, super.addCross(e, t);\n }\n toSymmetricMatrix() {\n return new Ye(this);\n }\n clone() {\n const e = new ei(this.diagonalSize);\n for (const [t, i, n] of this.upperRightEntries())\n t !== i && e.set(t, i, n);\n return e;\n }\n /**\n * Compact format upper-right corner of matrix\n * no diagonal (only zeros)\n * iterable from left to right, from top to bottom.\n *\n * ```\n * A B C D\n * A 0 1 2 3\n * B 1 0 4 5\n * C 2 4 0 6\n * D 3 5 6 0\n * ```\n *\n * will return compact 1D array `[1, 2, 3, 4, 5, 6]`\n *\n * length is S(i=0, n=sideSize-1) => 6 for a 4 side sized matrix\n *\n * @returns {number[]}\n */\n toCompact() {\n const { diagonalSize: e } = this, t = (e - 1) * e / 2, i = new Array(t);\n for (let n = 1, s = 0, o = 0; o < i.length; o++)\n i[o] = this.get(s, n), ++n >= e && (n = ++s + 1);\n return i;\n }\n /**\n * @param {number[]} compact\n */\n static fromCompact(e) {\n const t = e.length, i = (Math.sqrt(8 * t + 1) + 1) / 2;\n if (!Number.isInteger(i))\n throw new TypeError(\n `This array is not a compact representation of a DistanceMatrix, ${JSON.stringify(\n e\n )}`\n );\n const n = new this(i);\n for (let s = 1, o = 0, a = 0; a < t; a++)\n n.set(s, o, e[a]), ++s >= i && (s = ++o + 1);\n return n;\n }\n}\nei.prototype.klassSubType = \"DistanceMatrix\";\nclass Xe extends te {\n constructor(e, t, i) {\n super(), this.matrix = e, this.rows = t, this.columns = i;\n }\n}\nclass Yc extends Xe {\n constructor(e, t) {\n _e(e, t), super(e, e.rows, 1), this.column = t;\n }\n set(e, t, i) {\n return this.matrix.set(e, this.column, i), this;\n }\n get(e) {\n return this.matrix.get(e, this.column);\n }\n}\nclass Jc extends Xe {\n constructor(e, t) {\n Hi(e, t), super(e, e.rows, t.length), this.columnIndices = t;\n }\n set(e, t, i) {\n return this.matrix.set(e, this.columnIndices[t], i), this;\n }\n get(e, t) {\n return this.matrix.get(e, this.columnIndices[t]);\n }\n}\nclass Qc extends Xe {\n constructor(e) {\n super(e, e.rows, e.columns);\n }\n set(e, t, i) {\n return this.matrix.set(e, this.columns - t - 1, i), this;\n }\n get(e, t) {\n return this.matrix.get(e, this.columns - t - 1);\n }\n}\nclass Kc extends Xe {\n constructor(e) {\n super(e, e.rows, e.columns);\n }\n set(e, t, i) {\n return this.matrix.set(this.rows - e - 1, t, i), this;\n }\n get(e, t) {\n return this.matrix.get(this.rows - e - 1, t);\n }\n}\nclass eh extends Xe {\n constructor(e, t) {\n Te(e, t), super(e, 1, e.columns), this.row = t;\n }\n set(e, t, i) {\n return this.matrix.set(this.row, t, i), this;\n }\n get(e, t) {\n return this.matrix.get(this.row, t);\n }\n}\nclass th extends Xe {\n constructor(e, t) {\n Xi(e, t), super(e, t.length, e.columns), this.rowIndices = t;\n }\n set(e, t, i) {\n return this.matrix.set(this.rowIndices[e], t, i), this;\n }\n get(e, t) {\n return this.matrix.get(this.rowIndices[e], t);\n }\n}\nclass Pr extends Xe {\n constructor(e, t, i) {\n Xi(e, t), Hi(e, i), super(e, t.length, i.length), this.rowIndices = t, this.columnIndices = i;\n }\n set(e, t, i) {\n return this.matrix.set(\n this.rowIndices[e],\n this.columnIndices[t],\n i\n ), this;\n }\n get(e, t) {\n return this.matrix.get(\n this.rowIndices[e],\n this.columnIndices[t]\n );\n }\n}\nclass rh extends Xe {\n constructor(e, t, i, n, s) {\n Oi(e, t, i, n, s), super(e, i - t + 1, s - n + 1), this.startRow = t, this.startColumn = n;\n }\n set(e, t, i) {\n return this.matrix.set(\n this.startRow + e,\n this.startColumn + t,\n i\n ), this;\n }\n get(e, t) {\n return this.matrix.get(\n this.startRow + e,\n this.startColumn + t\n );\n }\n}\nclass ih extends Xe {\n constructor(e) {\n super(e, e.columns, e.rows);\n }\n set(e, t, i) {\n return this.matrix.set(t, e, i), this;\n }\n get(e, t) {\n return this.matrix.get(t, e);\n }\n}\nclass Ws extends te {\n constructor(e, t = {}) {\n const { rows: i = 1 } = t;\n if (e.length % i !== 0)\n throw new Error(\"the data length is not divisible by the number of rows\");\n super(), this.rows = i, this.columns = e.length / i, this.data = e;\n }\n set(e, t, i) {\n let n = this._calculateIndex(e, t);\n return this.data[n] = i, this;\n }\n get(e, t) {\n let i = this._calculateIndex(e, t);\n return this.data[i];\n }\n _calculateIndex(e, t) {\n return e * this.columns + t;\n }\n}\nlet be = class extends te {\n constructor(e) {\n super(), this.data = e, this.rows = e.length, this.columns = e[0].length;\n }\n set(e, t, i) {\n return this.data[e][t] = i, this;\n }\n get(e, t) {\n return this.data[e][t];\n }\n};\nfunction nh(r, e) {\n if (ye.isAnyArray(r))\n return r[0] && ye.isAnyArray(r[0]) ? new be(r) : new Ws(r, e);\n throw new Error(\"the argument is not an array\");\n}\nclass ti {\n constructor(e) {\n e = be.checkMatrix(e);\n let t = e.clone(), i = t.rows, n = t.columns, s = new Float64Array(i), o = 1, a, l, c, h, u, g, y, v, E;\n for (a = 0; a < i; a++)\n s[a] = a;\n for (v = new Float64Array(i), l = 0; l < n; l++) {\n for (a = 0; a < i; a++)\n v[a] = t.get(a, l);\n for (a = 0; a < i; a++) {\n for (E = Math.min(a, l), u = 0, c = 0; c < E; c++)\n u += t.get(a, c) * v[c];\n v[a] -= u, t.set(a, l, v[a]);\n }\n for (h = l, a = l + 1; a < i; a++)\n Math.abs(v[a]) > Math.abs(v[h]) && (h = a);\n if (h !== l) {\n for (c = 0; c < n; c++)\n g = t.get(h, c), t.set(h, c, t.get(l, c)), t.set(l, c, g);\n y = s[h], s[h] = s[l], s[l] = y, o = -o;\n }\n if (l < i && t.get(l, l) !== 0)\n for (a = l + 1; a < i; a++)\n t.set(a, l, t.get(a, l) / t.get(l, l));\n }\n this.LU = t, this.pivotVector = s, this.pivotSign = o;\n }\n isSingular() {\n let e = this.LU, t = e.columns;\n for (let i = 0; i < t; i++)\n if (e.get(i, i) === 0)\n return !0;\n return !1;\n }\n solve(e) {\n e = k.checkMatrix(e);\n let t = this.LU;\n if (t.rows !== e.rows)\n throw new Error(\"Invalid matrix dimensions\");\n if (this.isSingular())\n throw new Error(\"LU matrix is singular\");\n let i = e.columns, n = e.subMatrixRow(this.pivotVector, 0, i - 1), s = t.columns, o, a, l;\n for (l = 0; l < s; l++)\n for (o = l + 1; o < s; o++)\n for (a = 0; a < i; a++)\n n.set(o, a, n.get(o, a) - n.get(l, a) * t.get(o, l));\n for (l = s - 1; l >= 0; l--) {\n for (a = 0; a < i; a++)\n n.set(l, a, n.get(l, a) / t.get(l, l));\n for (o = 0; o < l; o++)\n for (a = 0; a < i; a++)\n n.set(o, a, n.get(o, a) - n.get(l, a) * t.get(o, l));\n }\n return n;\n }\n get determinant() {\n let e = this.LU;\n if (!e.isSquare())\n throw new Error(\"Matrix must be square\");\n let t = this.pivotSign, i = e.columns;\n for (let n = 0; n < i; n++)\n t *= e.get(n, n);\n return t;\n }\n get lowerTriangularMatrix() {\n let e = this.LU, t = e.rows, i = e.columns, n = new k(t, i);\n for (let s = 0; s < t; s++)\n for (let o = 0; o < i; o++)\n s > o ? n.set(s, o, e.get(s, o)) : s === o ? n.set(s, o, 1) : n.set(s, o, 0);\n return n;\n }\n get upperTriangularMatrix() {\n let e = this.LU, t = e.rows, i = e.columns, n = new k(t, i);\n for (let s = 0; s < t; s++)\n for (let o = 0; o < i; o++)\n s <= o ? n.set(s, o, e.get(s, o)) : n.set(s, o, 0);\n return n;\n }\n get pivotPermutationVector() {\n return Array.from(this.pivotVector);\n }\n}\nfunction qe(r, e) {\n let t = 0;\n return Math.abs(r) > Math.abs(e) ? (t = e / r, Math.abs(r) * Math.sqrt(1 + t * t)) : e !== 0 ? (t = r / e, Math.abs(e) * Math.sqrt(1 + t * t)) : 0;\n}\nclass Yi {\n constructor(e) {\n e = be.checkMatrix(e);\n let t = e.clone(), i = e.rows, n = e.columns, s = new Float64Array(n), o, a, l, c;\n for (l = 0; l < n; l++) {\n let h = 0;\n for (o = l; o < i; o++)\n h = qe(h, t.get(o, l));\n if (h !== 0) {\n for (t.get(l, l) < 0 && (h = -h), o = l; o < i; o++)\n t.set(o, l, t.get(o, l) / h);\n for (t.set(l, l, t.get(l, l) + 1), a = l + 1; a < n; a++) {\n for (c = 0, o = l; o < i; o++)\n c += t.get(o, l) * t.get(o, a);\n for (c = -c / t.get(l, l), o = l; o < i; o++)\n t.set(o, a, t.get(o, a) + c * t.get(o, l));\n }\n }\n s[l] = -h;\n }\n this.QR = t, this.Rdiag = s;\n }\n solve(e) {\n e = k.checkMatrix(e);\n let t = this.QR, i = t.rows;\n if (e.rows !== i)\n throw new Error(\"Matrix row dimensions must agree\");\n if (!this.isFullRank())\n throw new Error(\"Matrix is rank deficient\");\n let n = e.columns, s = e.clone(), o = t.columns, a, l, c, h;\n for (c = 0; c < o; c++)\n for (l = 0; l < n; l++) {\n for (h = 0, a = c; a < i; a++)\n h += t.get(a, c) * s.get(a, l);\n for (h = -h / t.get(c, c), a = c; a < i; a++)\n s.set(a, l, s.get(a, l) + h * t.get(a, c));\n }\n for (c = o - 1; c >= 0; c--) {\n for (l = 0; l < n; l++)\n s.set(c, l, s.get(c, l) / this.Rdiag[c]);\n for (a = 0; a < c; a++)\n for (l = 0; l < n; l++)\n s.set(a, l, s.get(a, l) - s.get(c, l) * t.get(a, c));\n }\n return s.subMatrix(0, o - 1, 0, n - 1);\n }\n isFullRank() {\n let e = this.QR.columns;\n for (let t = 0; t < e; t++)\n if (this.Rdiag[t] === 0)\n return !1;\n return !0;\n }\n get upperTriangularMatrix() {\n let e = this.QR, t = e.columns, i = new k(t, t), n, s;\n for (n = 0; n < t; n++)\n for (s = 0; s < t; s++)\n n < s ? i.set(n, s, e.get(n, s)) : n === s ? i.set(n, s, this.Rdiag[n]) : i.set(n, s, 0);\n return i;\n }\n get orthogonalMatrix() {\n let e = this.QR, t = e.rows, i = e.columns, n = new k(t, i), s, o, a, l;\n for (a = i - 1; a >= 0; a--) {\n for (s = 0; s < t; s++)\n n.set(s, a, 0);\n for (n.set(a, a, 1), o = a; o < i; o++)\n if (e.get(a, a) !== 0) {\n for (l = 0, s = a; s < t; s++)\n l += e.get(s, a) * n.get(s, o);\n for (l = -l / e.get(a, a), s = a; s < t; s++)\n n.set(s, o, n.get(s, o) + l * e.get(s, a));\n }\n }\n return n;\n }\n}\nlet Et = class {\n constructor(r, e = {}) {\n if (r = be.checkMatrix(r), r.isEmpty())\n throw new Error(\"Matrix must be non-empty\");\n let t = r.rows, i = r.columns;\n const {\n computeLeftSingularVectors: n = !0,\n computeRightSingularVectors: s = !0,\n autoTranspose: o = !1\n } = e;\n let a = !!n, l = !!s, c = !1, h;\n if (t < i)\n if (!o)\n h = r.clone(), console.warn(\n \"Computing SVD on a matrix with more columns than rows. Consider enabling autoTranspose\"\n );\n else {\n h = r.transpose(), t = h.rows, i = h.columns, c = !0;\n let d = a;\n a = l, l = d;\n }\n else\n h = r.clone();\n let u = Math.min(t, i), g = Math.min(t + 1, i), y = new Float64Array(g), v = new k(t, u), E = new k(i, i), P = new Float64Array(i), w = new Float64Array(t), S = new Float64Array(g);\n for (let d = 0; d < g; d++)\n S[d] = d;\n let f = Math.min(t - 1, i), p = Math.max(0, Math.min(i - 2, t)), b = Math.max(f, p);\n for (let d = 0; d < b; d++) {\n if (d < f) {\n y[d] = 0;\n for (let x = d; x < t; x++)\n y[d] = qe(y[d], h.get(x, d));\n if (y[d] !== 0) {\n h.get(d, d) < 0 && (y[d] = -y[d]);\n for (let x = d; x < t; x++)\n h.set(x, d, h.get(x, d) / y[d]);\n h.set(d, d, h.get(d, d) + 1);\n }\n y[d] = -y[d];\n }\n for (let x = d + 1; x < i; x++) {\n if (d < f && y[d] !== 0) {\n let _ = 0;\n for (let M = d; M < t; M++)\n _ += h.get(M, d) * h.get(M, x);\n _ = -_ / h.get(d, d);\n for (let M = d; M < t; M++)\n h.set(M, x, h.get(M, x) + _ * h.get(M, d));\n }\n P[x] = h.get(d, x);\n }\n if (a && d < f)\n for (let x = d; x < t; x++)\n v.set(x, d, h.get(x, d));\n if (d < p) {\n P[d] = 0;\n for (let x = d + 1; x < i; x++)\n P[d] = qe(P[d], P[x]);\n if (P[d] !== 0) {\n P[d + 1] < 0 && (P[d] = 0 - P[d]);\n for (let x = d + 1; x < i; x++)\n P[x] /= P[d];\n P[d + 1] += 1;\n }\n if (P[d] = -P[d], d + 1 < t && P[d] !== 0) {\n for (let x = d + 1; x < t; x++)\n w[x] = 0;\n for (let x = d + 1; x < t; x++)\n for (let _ = d + 1; _ < i; _++)\n w[x] += P[_] * h.get(x, _);\n for (let x = d + 1; x < i; x++) {\n let _ = -P[x] / P[d + 1];\n for (let M = d + 1; M < t; M++)\n h.set(M, x, h.get(M, x) + _ * w[M]);\n }\n }\n if (l)\n for (let x = d + 1; x < i; x++)\n E.set(x, d, P[x]);\n }\n }\n let R = Math.min(i, t + 1);\n if (f < i && (y[f] = h.get(f, f)), t < R && (y[R - 1] = 0), p + 1 < R && (P[p] = h.get(p, R - 1)), P[R - 1] = 0, a) {\n for (let d = f; d < u; d++) {\n for (let x = 0; x < t; x++)\n v.set(x, d, 0);\n v.set(d, d, 1);\n }\n for (let d = f - 1; d >= 0; d--)\n if (y[d] !== 0) {\n for (let x = d + 1; x < u; x++) {\n let _ = 0;\n for (let M = d; M < t; M++)\n _ += v.get(M, d) * v.get(M, x);\n _ = -_ / v.get(d, d);\n for (let M = d; M < t; M++)\n v.set(M, x, v.get(M, x) + _ * v.get(M, d));\n }\n for (let x = d; x < t; x++)\n v.set(x, d, -v.get(x, d));\n v.set(d, d, 1 + v.get(d, d));\n for (let x = 0; x < d - 1; x++)\n v.set(x, d, 0);\n } else {\n for (let x = 0; x < t; x++)\n v.set(x, d, 0);\n v.set(d, d, 1);\n }\n }\n if (l)\n for (let d = i - 1; d >= 0; d--) {\n if (d < p && P[d] !== 0)\n for (let x = d + 1; x < i; x++) {\n let _ = 0;\n for (let M = d + 1; M < i; M++)\n _ += E.get(M, d) * E.get(M, x);\n _ = -_ / E.get(d + 1, d);\n for (let M = d + 1; M < i; M++)\n E.set(M, x, E.get(M, x) + _ * E.get(M, d));\n }\n for (let x = 0; x < i; x++)\n E.set(x, d, 0);\n E.set(d, d, 1);\n }\n let A = R - 1, T = Number.EPSILON;\n for (; R > 0; ) {\n let d, x;\n for (d = R - 2; d >= -1 && d !== -1; d--) {\n const _ = Number.MIN_VALUE + T * Math.abs(y[d] + Math.abs(y[d + 1]));\n if (Math.abs(P[d]) <= _ || Number.isNaN(P[d])) {\n P[d] = 0;\n break;\n }\n }\n if (d === R - 2)\n x = 4;\n else {\n let _;\n for (_ = R - 1; _ >= d && _ !== d; _--) {\n let M = (_ !== R ? Math.abs(P[_]) : 0) + (_ !== d + 1 ? Math.abs(P[_ - 1]) : 0);\n if (Math.abs(y[_]) <= T * M) {\n y[_] = 0;\n break;\n }\n }\n _ === d ? x = 3 : _ === R - 1 ? x = 1 : (x = 2, d = _);\n }\n switch (d++, x) {\n case 1: {\n let _ = P[R - 2];\n P[R - 2] = 0;\n for (let M = R - 2; M >= d; M--) {\n let z = qe(y[M], _), H = y[M] / z, Z = _ / z;\n if (y[M] = z, M !== d && (_ = -Z * P[M - 1], P[M - 1] = H * P[M - 1]), l)\n for (let W = 0; W < i; W++)\n z = H * E.get(W, M) + Z * E.get(W, R - 1), E.set(W, R - 1, -Z * E.get(W, M) + H * E.get(W, R - 1)), E.set(W, M, z);\n }\n break;\n }\n case 2: {\n let _ = P[d - 1];\n P[d - 1] = 0;\n for (let M = d; M < R; M++) {\n let z = qe(y[M], _), H = y[M] / z, Z = _ / z;\n if (y[M] = z, _ = -Z * P[M], P[M] = H * P[M], a)\n for (let W = 0; W < t; W++)\n z = H * v.get(W, M) + Z * v.get(W, d - 1), v.set(W, d - 1, -Z * v.get(W, M) + H * v.get(W, d - 1)), v.set(W, M, z);\n }\n break;\n }\n case 3: {\n const _ = Math.max(\n Math.abs(y[R - 1]),\n Math.abs(y[R - 2]),\n Math.abs(P[R - 2]),\n Math.abs(y[d]),\n Math.abs(P[d])\n ), M = y[R - 1] / _, z = y[R - 2] / _, H = P[R - 2] / _, Z = y[d] / _, W = P[d] / _, ne = ((z + M) * (z - M) + H * H) / 2, ce = M * H * (M * H);\n let de = 0;\n (ne !== 0 || ce !== 0) && (ne < 0 ? de = 0 - Math.sqrt(ne * ne + ce) : de = Math.sqrt(ne * ne + ce), de = ce / (ne + de));\n let K = (Z + M) * (Z - M) + de, Me = Z * W;\n for (let G = d; G < R - 1; G++) {\n let re = qe(K, Me);\n re === 0 && (re = Number.MIN_VALUE);\n let pe = K / re, he = Me / re;\n if (G !== d && (P[G - 1] = re), K = pe * y[G] + he * P[G], P[G] = pe * P[G] - he * y[G], Me = he * y[G + 1], y[G + 1] = pe * y[G + 1], l)\n for (let oe = 0; oe < i; oe++)\n re = pe * E.get(oe, G) + he * E.get(oe, G + 1), E.set(oe, G + 1, -he * E.get(oe, G) + pe * E.get(oe, G + 1)), E.set(oe, G, re);\n if (re = qe(K, Me), re === 0 && (re = Number.MIN_VALUE), pe = K / re, he = Me / re, y[G] = re, K = pe * P[G] + he * y[G + 1], y[G + 1] = -he * P[G] + pe * y[G + 1], Me = he * P[G + 1], P[G + 1] = pe * P[G + 1], a && G < t - 1)\n for (let oe = 0; oe < t; oe++)\n re = pe * v.get(oe, G) + he * v.get(oe, G + 1), v.set(oe, G + 1, -he * v.get(oe, G) + pe * v.get(oe, G + 1)), v.set(oe, G, re);\n }\n P[R - 2] = K;\n break;\n }\n case 4: {\n if (y[d] <= 0 && (y[d] = y[d] < 0 ? -y[d] : 0, l))\n for (let _ = 0; _ <= A; _++)\n E.set(_, d, -E.get(_, d));\n for (; d < A && !(y[d] >= y[d + 1]); ) {\n let _ = y[d];\n if (y[d] = y[d + 1], y[d + 1] = _, l && d < i - 1)\n for (let M = 0; M < i; M++)\n _ = E.get(M, d + 1), E.set(M, d + 1, E.get(M, d)), E.set(M, d, _);\n if (a && d < t - 1)\n for (let M = 0; M < t; M++)\n _ = v.get(M, d + 1), v.set(M, d + 1, v.get(M, d)), v.set(M, d, _);\n d++;\n }\n R--;\n break;\n }\n }\n }\n if (c) {\n let d = E;\n E = v, v = d;\n }\n this.m = t, this.n = i, this.s = y, this.U = v, this.V = E;\n }\n solve(r) {\n let e = r, t = this.threshold, i = this.s.length, n = k.zeros(i, i);\n for (let u = 0; u < i; u++)\n Math.abs(this.s[u]) <= t ? n.set(u, u, 0) : n.set(u, u, 1 / this.s[u]);\n let s = this.U, o = this.rightSingularVectors, a = o.mmul(n), l = o.rows, c = s.rows, h = k.zeros(l, c);\n for (let u = 0; u < l; u++)\n for (let g = 0; g < c; g++) {\n let y = 0;\n for (let v = 0; v < i; v++)\n y += a.get(u, v) * s.get(g, v);\n h.set(u, g, y);\n }\n return h.mmul(e);\n }\n solveForDiagonal(r) {\n return this.solve(k.diag(r));\n }\n inverse() {\n let r = this.V, e = this.threshold, t = r.rows, i = r.columns, n = new k(t, this.s.length);\n for (let c = 0; c < t; c++)\n for (let h = 0; h < i; h++)\n Math.abs(this.s[h]) > e && n.set(c, h, r.get(c, h) / this.s[h]);\n let s = this.U, o = s.rows, a = s.columns, l = new k(t, o);\n for (let c = 0; c < t; c++)\n for (let h = 0; h < o; h++) {\n let u = 0;\n for (let g = 0; g < a; g++)\n u += n.get(c, g) * s.get(h, g);\n l.set(c, h, u);\n }\n return l;\n }\n get condition() {\n return this.s[0] / this.s[Math.min(this.m, this.n) - 1];\n }\n get norm2() {\n return this.s[0];\n }\n get rank() {\n let r = Math.max(this.m, this.n) * this.s[0] * Number.EPSILON, e = 0, t = this.s;\n for (let i = 0, n = t.length; i < n; i++)\n t[i] > r && e++;\n return e;\n }\n get diagonal() {\n return Array.from(this.s);\n }\n get threshold() {\n return Number.EPSILON / 2 * Math.max(this.m, this.n) * this.s[0];\n }\n get leftSingularVectors() {\n return this.U;\n }\n get rightSingularVectors() {\n return this.V;\n }\n get diagonalMatrix() {\n return k.diag(this.s);\n }\n};\nfunction sh(r, e = !1) {\n return r = be.checkMatrix(r), e ? new Et(r).inverse() : Vs(r, k.eye(r.rows));\n}\nfunction Vs(r, e, t = !1) {\n return r = be.checkMatrix(r), e = be.checkMatrix(e), t ? new Et(r).solve(e) : r.isSquare() ? new ti(r).solve(e) : new Yi(r).solve(e);\n}\nfunction Sr(r) {\n if (r = k.checkMatrix(r), r.isSquare()) {\n if (r.columns === 0)\n return 1;\n let e, t, i, n;\n if (r.columns === 2)\n return e = r.get(0, 0), t = r.get(0, 1), i = r.get(1, 0), n = r.get(1, 1), e * n - t * i;\n if (r.columns === 3) {\n let s, o, a;\n return s = new Pr(r, [1, 2], [1, 2]), o = new Pr(r, [1, 2], [0, 2]), a = new Pr(r, [1, 2], [0, 1]), e = r.get(0, 0), t = r.get(0, 1), i = r.get(0, 2), e * Sr(s) - t * Sr(o) + i * Sr(a);\n } else\n return new ti(r).determinant;\n } else\n throw Error(\"determinant can only be calculated for a square matrix\");\n}\nfunction oh(r, e) {\n let t = [];\n for (let i = 0; i < r; i++)\n i !== e && t.push(i);\n return t;\n}\nfunction ah(r, e, t, i = 1e-9, n = 1e-9) {\n if (r > n)\n return new Array(e.rows + 1).fill(0);\n {\n let s = e.addRow(t, [0]);\n for (let o = 0; o < s.rows; o++)\n Math.abs(s.get(o, 0)) < i && s.set(o, 0, 0);\n return s.to1DArray();\n }\n}\nfunction lh(r, e = {}) {\n const { thresholdValue: t = 1e-9, thresholdError: i = 1e-9 } = e;\n r = k.checkMatrix(r);\n let n = r.rows, s = new k(n, n);\n for (let o = 0; o < n; o++) {\n let a = k.columnVector(r.getRow(o)), l = r.subMatrixRow(oh(n, o)).transpose(), c = new Et(l).solve(a), h = k.sub(a, l.mmul(c)).abs().max();\n s.setRow(\n o,\n ah(h, c, o, t, i)\n );\n }\n return s;\n}\nfunction ch(r, e = Number.EPSILON) {\n if (r = k.checkMatrix(r), r.isEmpty())\n return r.transpose();\n let t = new Et(r, { autoTranspose: !0 }), i = t.leftSingularVectors, n = t.rightSingularVectors, s = t.diagonal;\n for (let o = 0; o < s.length; o++)\n Math.abs(s[o]) > e ? s[o] = 1 / s[o] : s[o] = 0;\n return n.mmul(k.diag(s).mmul(i.transpose()));\n}\nfunction hh(r, e = r, t = {}) {\n r = new k(r);\n let i = !1;\n if (typeof e == \"object\" && !k.isMatrix(e) && !ye.isAnyArray(e) ? (t = e, e = r, i = !0) : e = new k(e), r.rows !== e.rows)\n throw new TypeError(\"Both matrices must have the same number of rows\");\n const { center: n = !0 } = t;\n n && (r = r.center(\"column\"), i || (e = e.center(\"column\")));\n const s = r.transpose().mmul(e);\n for (let o = 0; o < s.rows; o++)\n for (let a = 0; a < s.columns; a++)\n s.set(o, a, s.get(o, a) * (1 / (r.rows - 1)));\n return s;\n}\nfunction uh(r, e = r, t = {}) {\n r = new k(r);\n let i = !1;\n if (typeof e == \"object\" && !k.isMatrix(e) && !ye.isAnyArray(e) ? (t = e, e = r, i = !0) : e = new k(e), r.rows !== e.rows)\n throw new TypeError(\"Both matrices must have the same number of rows\");\n const { center: n = !0, scale: s = !0 } = t;\n n && (r.center(\"column\"), i || e.center(\"column\")), s && (r.scale(\"column\"), i || e.scale(\"column\"));\n const o = r.standardDeviation(\"column\", { unbiased: !0 }), a = i ? o : e.standardDeviation(\"column\", { unbiased: !0 }), l = r.transpose().mmul(e);\n for (let c = 0; c < l.rows; c++)\n for (let h = 0; h < l.columns; h++)\n l.set(\n c,\n h,\n l.get(c, h) * (1 / (o[c] * a[h])) * (1 / (r.rows - 1))\n );\n return l;\n}\nclass zs {\n constructor(e, t = {}) {\n const { assumeSymmetric: i = !1 } = t;\n if (e = be.checkMatrix(e), !e.isSquare())\n throw new Error(\"Matrix is not a square matrix\");\n if (e.isEmpty())\n throw new Error(\"Matrix must be non-empty\");\n let n = e.columns, s = new k(n, n), o = new Float64Array(n), a = new Float64Array(n), l = e, c, h, u = !1;\n if (i ? u = !0 : u = e.isSymmetric(), u) {\n for (c = 0; c < n; c++)\n for (h = 0; h < n; h++)\n s.set(c, h, l.get(c, h));\n fh(n, a, o, s), dh(n, a, o, s);\n } else {\n let g = new k(n, n), y = new Float64Array(n);\n for (h = 0; h < n; h++)\n for (c = 0; c < n; c++)\n g.set(c, h, l.get(c, h));\n ph(n, g, y, s), gh(n, a, o, s, g);\n }\n this.n = n, this.e = a, this.d = o, this.V = s;\n }\n get realEigenvalues() {\n return Array.from(this.d);\n }\n get imaginaryEigenvalues() {\n return Array.from(this.e);\n }\n get eigenvectorMatrix() {\n return this.V;\n }\n get diagonalMatrix() {\n let e = this.n, t = this.e, i = this.d, n = new k(e, e), s, o;\n for (s = 0; s < e; s++) {\n for (o = 0; o < e; o++)\n n.set(s, o, 0);\n n.set(s, s, i[s]), t[s] > 0 ? n.set(s, s + 1, t[s]) : t[s] < 0 && n.set(s, s - 1, t[s]);\n }\n return n;\n }\n}\nfunction fh(r, e, t, i) {\n let n, s, o, a, l, c, h, u;\n for (l = 0; l < r; l++)\n t[l] = i.get(r - 1, l);\n for (a = r - 1; a > 0; a--) {\n for (u = 0, o = 0, c = 0; c < a; c++)\n u = u + Math.abs(t[c]);\n if (u === 0)\n for (e[a] = t[a - 1], l = 0; l < a; l++)\n t[l] = i.get(a - 1, l), i.set(a, l, 0), i.set(l, a, 0);\n else {\n for (c = 0; c < a; c++)\n t[c] /= u, o += t[c] * t[c];\n for (n = t[a - 1], s = Math.sqrt(o), n > 0 && (s = -s), e[a] = u * s, o = o - n * s, t[a - 1] = n - s, l = 0; l < a; l++)\n e[l] = 0;\n for (l = 0; l < a; l++) {\n for (n = t[l], i.set(l, a, n), s = e[l] + i.get(l, l) * n, c = l + 1; c <= a - 1; c++)\n s += i.get(c, l) * t[c], e[c] += i.get(c, l) * n;\n e[l] = s;\n }\n for (n = 0, l = 0; l < a; l++)\n e[l] /= o, n += e[l] * t[l];\n for (h = n / (o + o), l = 0; l < a; l++)\n e[l] -= h * t[l];\n for (l = 0; l < a; l++) {\n for (n = t[l], s = e[l], c = l; c <= a - 1; c++)\n i.set(c, l, i.get(c, l) - (n * e[c] + s * t[c]));\n t[l] = i.get(a - 1, l), i.set(a, l, 0);\n }\n }\n t[a] = o;\n }\n for (a = 0; a < r - 1; a++) {\n if (i.set(r - 1, a, i.get(a, a)), i.set(a, a, 1), o = t[a + 1], o !== 0) {\n for (c = 0; c <= a; c++)\n t[c] = i.get(c, a + 1) / o;\n for (l = 0; l <= a; l++) {\n for (s = 0, c = 0; c <= a; c++)\n s += i.get(c, a + 1) * i.get(c, l);\n for (c = 0; c <= a; c++)\n i.set(c, l, i.get(c, l) - s * t[c]);\n }\n }\n for (c = 0; c <= a; c++)\n i.set(c, a + 1, 0);\n }\n for (l = 0; l < r; l++)\n t[l] = i.get(r - 1, l), i.set(r - 1, l, 0);\n i.set(r - 1, r - 1, 1), e[0] = 0;\n}\nfunction dh(r, e, t, i) {\n let n, s, o, a, l, c, h, u, g, y, v, E, P, w, S, f;\n for (o = 1; o < r; o++)\n e[o - 1] = e[o];\n e[r - 1] = 0;\n let p = 0, b = 0, R = Number.EPSILON;\n for (c = 0; c < r; c++) {\n for (b = Math.max(b, Math.abs(t[c]) + Math.abs(e[c])), h = c; h < r && !(Math.abs(e[h]) <= R * b); )\n h++;\n if (h > c)\n do {\n for (n = t[c], u = (t[c + 1] - n) / (2 * e[c]), g = qe(u, 1), u < 0 && (g = -g), t[c] = e[c] / (u + g), t[c + 1] = e[c] * (u + g), y = t[c + 1], s = n - t[c], o = c + 2; o < r; o++)\n t[o] -= s;\n for (p = p + s, u = t[h], v = 1, E = v, P = v, w = e[c + 1], S = 0, f = 0, o = h - 1; o >= c; o--)\n for (P = E, E = v, f = S, n = v * e[o], s = v * u, g = qe(u, e[o]), e[o + 1] = S * g, S = e[o] / g, v = u / g, u = v * t[o] - S * n, t[o + 1] = s + S * (v * n + S * t[o]), l = 0; l < r; l++)\n s = i.get(l, o + 1), i.set(l, o + 1, S * i.get(l, o) + v * s), i.set(l, o, v * i.get(l, o) - S * s);\n u = -S * f * P * w * e[c] / y, e[c] = S * u, t[c] = v * u;\n } while (Math.abs(e[c]) > R * b);\n t[c] = t[c] + p, e[c] = 0;\n }\n for (o = 0; o < r - 1; o++) {\n for (l = o, u = t[o], a = o + 1; a < r; a++)\n t[a] < u && (l = a, u = t[a]);\n if (l !== o)\n for (t[l] = t[o], t[o] = u, a = 0; a < r; a++)\n u = i.get(a, o), i.set(a, o, i.get(a, l)), i.set(a, l, u);\n }\n}\nfunction ph(r, e, t, i) {\n let n = 0, s = r - 1, o, a, l, c, h, u, g;\n for (u = n + 1; u <= s - 1; u++) {\n for (g = 0, c = u; c <= s; c++)\n g = g + Math.abs(e.get(c, u - 1));\n if (g !== 0) {\n for (l = 0, c = s; c >= u; c--)\n t[c] = e.get(c, u - 1) / g, l += t[c] * t[c];\n for (a = Math.sqrt(l), t[u] > 0 && (a = -a), l = l - t[u] * a, t[u] = t[u] - a, h = u; h < r; h++) {\n for (o = 0, c = s; c >= u; c--)\n o += t[c] * e.get(c, h);\n for (o = o / l, c = u; c <= s; c++)\n e.set(c, h, e.get(c, h) - o * t[c]);\n }\n for (c = 0; c <= s; c++) {\n for (o = 0, h = s; h >= u; h--)\n o += t[h] * e.get(c, h);\n for (o = o / l, h = u; h <= s; h++)\n e.set(c, h, e.get(c, h) - o * t[h]);\n }\n t[u] = g * t[u], e.set(u, u - 1, g * a);\n }\n }\n for (c = 0; c < r; c++)\n for (h = 0; h < r; h++)\n i.set(c, h, c === h ? 1 : 0);\n for (u = s - 1; u >= n + 1; u--)\n if (e.get(u, u - 1) !== 0) {\n for (c = u + 1; c <= s; c++)\n t[c] = e.get(c, u - 1);\n for (h = u; h <= s; h++) {\n for (a = 0, c = u; c <= s; c++)\n a += t[c] * i.get(c, h);\n for (a = a / t[u] / e.get(u, u - 1), c = u; c <= s; c++)\n i.set(c, h, i.get(c, h) + a * t[c]);\n }\n }\n}\nfunction gh(r, e, t, i, n) {\n let s = r - 1, o = 0, a = r - 1, l = Number.EPSILON, c = 0, h = 0, u = 0, g = 0, y = 0, v = 0, E = 0, P = 0, w, S, f, p, b, R, A, T, d, x, _, M, z, H, Z;\n for (w = 0; w < r; w++)\n for ((w < o || w > a) && (t[w] = n.get(w, w), e[w] = 0), S = Math.max(w - 1, 0); S < r; S++)\n h = h + Math.abs(n.get(w, S));\n for (; s >= o; ) {\n for (p = s; p > o && (v = Math.abs(n.get(p - 1, p - 1)) + Math.abs(n.get(p, p)), v === 0 && (v = h), !(Math.abs(n.get(p, p - 1)) < l * v)); )\n p--;\n if (p === s)\n n.set(s, s, n.get(s, s) + c), t[s] = n.get(s, s), e[s] = 0, s--, P = 0;\n else if (p === s - 1) {\n if (A = n.get(s, s - 1) * n.get(s - 1, s), u = (n.get(s - 1, s - 1) - n.get(s, s)) / 2, g = u * u + A, E = Math.sqrt(Math.abs(g)), n.set(s, s, n.get(s, s) + c), n.set(s - 1, s - 1, n.get(s - 1, s - 1) + c), T = n.get(s, s), g >= 0) {\n for (E = u >= 0 ? u + E : u - E, t[s - 1] = T + E, t[s] = t[s - 1], E !== 0 && (t[s] = T - A / E), e[s - 1] = 0, e[s] = 0, T = n.get(s, s - 1), v = Math.abs(T) + Math.abs(E), u = T / v, g = E / v, y = Math.sqrt(u * u + g * g), u = u / y, g = g / y, S = s - 1; S < r; S++)\n E = n.get(s - 1, S), n.set(s - 1, S, g * E + u * n.get(s, S)), n.set(s, S, g * n.get(s, S) - u * E);\n for (w = 0; w <= s; w++)\n E = n.get(w, s - 1), n.set(w, s - 1, g * E + u * n.get(w, s)), n.set(w, s, g * n.get(w, s) - u * E);\n for (w = o; w <= a; w++)\n E = i.get(w, s - 1), i.set(w, s - 1, g * E + u * i.get(w, s)), i.set(w, s, g * i.get(w, s) - u * E);\n } else\n t[s - 1] = T + u, t[s] = T + u, e[s - 1] = E, e[s] = -E;\n s = s - 2, P = 0;\n } else {\n if (T = n.get(s, s), d = 0, A = 0, p < s && (d = n.get(s - 1, s - 1), A = n.get(s, s - 1) * n.get(s - 1, s)), P === 10) {\n for (c += T, w = o; w <= s; w++)\n n.set(w, w, n.get(w, w) - T);\n v = Math.abs(n.get(s, s - 1)) + Math.abs(n.get(s - 1, s - 2)), T = d = 0.75 * v, A = -0.4375 * v * v;\n }\n if (P === 30 && (v = (d - T) / 2, v = v * v + A, v > 0)) {\n for (v = Math.sqrt(v), d < T && (v = -v), v = T - A / ((d - T) / 2 + v), w = o; w <= s; w++)\n n.set(w, w, n.get(w, w) - v);\n c += v, T = d = A = 0.964;\n }\n for (P = P + 1, b = s - 2; b >= p && (E = n.get(b, b), y = T - E, v = d - E, u = (y * v - A) / n.get(b + 1, b) + n.get(b, b + 1), g = n.get(b + 1, b + 1) - E - y - v, y = n.get(b + 2, b + 1), v = Math.abs(u) + Math.abs(g) + Math.abs(y), u = u / v, g = g / v, y = y / v, !(b === p || Math.abs(n.get(b, b - 1)) * (Math.abs(g) + Math.abs(y)) < l * (Math.abs(u) * (Math.abs(n.get(b - 1, b - 1)) + Math.abs(E) + Math.abs(n.get(b + 1, b + 1)))))); )\n b--;\n for (w = b + 2; w <= s; w++)\n n.set(w, w - 2, 0), w > b + 2 && n.set(w, w - 3, 0);\n for (f = b; f <= s - 1 && (H = f !== s - 1, f !== b && (u = n.get(f, f - 1), g = n.get(f + 1, f - 1), y = H ? n.get(f + 2, f - 1) : 0, T = Math.abs(u) + Math.abs(g) + Math.abs(y), T !== 0 && (u = u / T, g = g / T, y = y / T)), T !== 0); f++)\n if (v = Math.sqrt(u * u + g * g + y * y), u < 0 && (v = -v), v !== 0) {\n for (f !== b ? n.set(f, f - 1, -v * T) : p !== b && n.set(f, f - 1, -n.get(f, f - 1)), u = u + v, T = u / v, d = g / v, E = y / v, g = g / u, y = y / u, S = f; S < r; S++)\n u = n.get(f, S) + g * n.get(f + 1, S), H && (u = u + y * n.get(f + 2, S), n.set(f + 2, S, n.get(f + 2, S) - u * E)), n.set(f, S, n.get(f, S) - u * T), n.set(f + 1, S, n.get(f + 1, S) - u * d);\n for (w = 0; w <= Math.min(s, f + 3); w++)\n u = T * n.get(w, f) + d * n.get(w, f + 1), H && (u = u + E * n.get(w, f + 2), n.set(w, f + 2, n.get(w, f + 2) - u * y)), n.set(w, f, n.get(w, f) - u), n.set(w, f + 1, n.get(w, f + 1) - u * g);\n for (w = o; w <= a; w++)\n u = T * i.get(w, f) + d * i.get(w, f + 1), H && (u = u + E * i.get(w, f + 2), i.set(w, f + 2, i.get(w, f + 2) - u * y)), i.set(w, f, i.get(w, f) - u), i.set(w, f + 1, i.get(w, f + 1) - u * g);\n }\n }\n }\n if (h !== 0) {\n for (s = r - 1; s >= 0; s--)\n if (u = t[s], g = e[s], g === 0)\n for (p = s, n.set(s, s, 1), w = s - 1; w >= 0; w--) {\n for (A = n.get(w, w) - u, y = 0, S = p; S <= s; S++)\n y = y + n.get(w, S) * n.get(S, s);\n if (e[w] < 0)\n E = A, v = y;\n else if (p = w, e[w] === 0 ? n.set(w, s, A !== 0 ? -y / A : -y / (l * h)) : (T = n.get(w, w + 1), d = n.get(w + 1, w), g = (t[w] - u) * (t[w] - u) + e[w] * e[w], R = (T * v - E * y) / g, n.set(w, s, R), n.set(\n w + 1,\n s,\n Math.abs(T) > Math.abs(E) ? (-y - A * R) / T : (-v - d * R) / E\n )), R = Math.abs(n.get(w, s)), l * R * R > 1)\n for (S = w; S <= s; S++)\n n.set(S, s, n.get(S, s) / R);\n }\n else if (g < 0)\n for (p = s - 1, Math.abs(n.get(s, s - 1)) > Math.abs(n.get(s - 1, s)) ? (n.set(s - 1, s - 1, g / n.get(s, s - 1)), n.set(s - 1, s, -(n.get(s, s) - u) / n.get(s, s - 1))) : (Z = vr(0, -n.get(s - 1, s), n.get(s - 1, s - 1) - u, g), n.set(s - 1, s - 1, Z[0]), n.set(s - 1, s, Z[1])), n.set(s, s - 1, 0), n.set(s, s, 1), w = s - 2; w >= 0; w--) {\n for (x = 0, _ = 0, S = p; S <= s; S++)\n x = x + n.get(w, S) * n.get(S, s - 1), _ = _ + n.get(w, S) * n.get(S, s);\n if (A = n.get(w, w) - u, e[w] < 0)\n E = A, y = x, v = _;\n else if (p = w, e[w] === 0 ? (Z = vr(-x, -_, A, g), n.set(w, s - 1, Z[0]), n.set(w, s, Z[1])) : (T = n.get(w, w + 1), d = n.get(w + 1, w), M = (t[w] - u) * (t[w] - u) + e[w] * e[w] - g * g, z = (t[w] - u) * 2 * g, M === 0 && z === 0 && (M = l * h * (Math.abs(A) + Math.abs(g) + Math.abs(T) + Math.abs(d) + Math.abs(E))), Z = vr(\n T * y - E * x + g * _,\n T * v - E * _ - g * x,\n M,\n z\n ), n.set(w, s - 1, Z[0]), n.set(w, s, Z[1]), Math.abs(T) > Math.abs(E) + Math.abs(g) ? (n.set(\n w + 1,\n s - 1,\n (-x - A * n.get(w, s - 1) + g * n.get(w, s)) / T\n ), n.set(\n w + 1,\n s,\n (-_ - A * n.get(w, s) - g * n.get(w, s - 1)) / T\n )) : (Z = vr(\n -y - d * n.get(w, s - 1),\n -v - d * n.get(w, s),\n E,\n g\n ), n.set(w + 1, s - 1, Z[0]), n.set(w + 1, s, Z[1]))), R = Math.max(Math.abs(n.get(w, s - 1)), Math.abs(n.get(w, s))), l * R * R > 1)\n for (S = w; S <= s; S++)\n n.set(S, s - 1, n.get(S, s - 1) / R), n.set(S, s, n.get(S, s) / R);\n }\n for (w = 0; w < r; w++)\n if (w < o || w > a)\n for (S = w; S < r; S++)\n i.set(w, S, n.get(w, S));\n for (S = r - 1; S >= o; S--)\n for (w = o; w <= a; w++) {\n for (E = 0, f = o; f <= Math.min(S, a); f++)\n E = E + i.get(w, f) * n.get(f, S);\n i.set(w, S, E);\n }\n }\n}\nfunction vr(r, e, t, i) {\n let n, s;\n return Math.abs(t) > Math.abs(i) ? (n = i / t, s = t + n * i, [(r + n * e) / s, (e - n * r) / s]) : (n = t / i, s = i + n * t, [(n * r + e) / s, (n * e - r) / s]);\n}\nclass $s {\n constructor(e) {\n if (e = be.checkMatrix(e), !e.isSymmetric())\n throw new Error(\"Matrix is not symmetric\");\n let t = e, i = t.rows, n = new k(i, i), s = !0, o, a, l;\n for (a = 0; a < i; a++) {\n let c = 0;\n for (l = 0; l < a; l++) {\n let h = 0;\n for (o = 0; o < l; o++)\n h += n.get(l, o) * n.get(a, o);\n h = (t.get(a, l) - h) / n.get(l, l), n.set(a, l, h), c = c + h * h;\n }\n for (c = t.get(a, a) - c, s &= c > 0, n.set(a, a, Math.sqrt(Math.max(c, 0))), l = a + 1; l < i; l++)\n n.set(a, l, 0);\n }\n this.L = n, this.positiveDefinite = !!s;\n }\n isPositiveDefinite() {\n return this.positiveDefinite;\n }\n solve(e) {\n e = be.checkMatrix(e);\n let t = this.L, i = t.rows;\n if (e.rows !== i)\n throw new Error(\"Matrix dimensions do not match\");\n if (this.isPositiveDefinite() === !1)\n throw new Error(\"Matrix is not positive definite\");\n let n = e.columns, s = e.clone(), o, a, l;\n for (l = 0; l < i; l++)\n for (a = 0; a < n; a++) {\n for (o = 0; o < l; o++)\n s.set(l, a, s.get(l, a) - s.get(o, a) * t.get(l, o));\n s.set(l, a, s.get(l, a) / t.get(l, l));\n }\n for (l = i - 1; l >= 0; l--)\n for (a = 0; a < n; a++) {\n for (o = l + 1; o < i; o++)\n s.set(l, a, s.get(l, a) - s.get(o, a) * t.get(o, l));\n s.set(l, a, s.get(l, a) / t.get(l, l));\n }\n return s;\n }\n get lowerTriangularMatrix() {\n return this.L;\n }\n}\nclass qs {\n constructor(e, t = {}) {\n e = be.checkMatrix(e);\n let { Y: i } = t;\n const {\n scaleScores: n = !1,\n maxIterations: s = 1e3,\n terminationCriteria: o = 1e-10\n } = t;\n let a;\n if (i) {\n if (ye.isAnyArray(i) && typeof i[0] == \"number\" ? i = k.columnVector(i) : i = be.checkMatrix(i), i.rows !== e.rows)\n throw new Error(\"Y should have the same number of rows as X\");\n a = i.getColumnVector(0);\n } else\n a = e.getColumnVector(0);\n let l = 1, c, h, u, g;\n for (let y = 0; y < s && l > o; y++)\n u = e.transpose().mmul(a).div(a.transpose().mmul(a).get(0, 0)), u = u.div(u.norm()), c = e.mmul(u).div(u.transpose().mmul(u).get(0, 0)), y > 0 && (l = c.clone().sub(g).pow(2).sum()), g = c.clone(), i ? (h = i.transpose().mmul(c).div(c.transpose().mmul(c).get(0, 0)), h = h.div(h.norm()), a = i.mmul(h).div(h.transpose().mmul(h).get(0, 0))) : a = c;\n if (i) {\n let y = e.transpose().mmul(c).div(c.transpose().mmul(c).get(0, 0));\n y = y.div(y.norm());\n let v = e.clone().sub(c.clone().mmul(y.transpose())), E = a.transpose().mmul(c).div(c.transpose().mmul(c).get(0, 0)), P = i.clone().sub(\n c.clone().mulS(E.get(0, 0)).mmul(h.transpose())\n );\n this.t = c, this.p = y.transpose(), this.w = u.transpose(), this.q = h, this.u = a, this.s = c.transpose().mmul(c), this.xResidual = v, this.yResidual = P, this.betas = E;\n } else\n this.w = u.transpose(), this.s = c.transpose().mmul(c).sqrt(), n ? this.t = c.clone().div(this.s.get(0, 0)) : this.t = c, this.xResidual = e.sub(c.mmul(u.transpose()));\n }\n}\nq.AbstractMatrix = te;\nq.CHO = $s;\nq.CholeskyDecomposition = $s;\nq.DistanceMatrix = ei;\nq.EVD = zs;\nq.EigenvalueDecomposition = zs;\nq.LU = ti;\nq.LuDecomposition = ti;\nvar mh = q.Matrix = k;\nq.MatrixColumnSelectionView = Jc;\nq.MatrixColumnView = Yc;\nq.MatrixFlipColumnView = Qc;\nq.MatrixFlipRowView = Kc;\nq.MatrixRowSelectionView = th;\nq.MatrixRowView = eh;\nq.MatrixSelectionView = Pr;\nq.MatrixSubView = rh;\nq.MatrixTransposeView = ih;\nq.NIPALS = qs;\nq.Nipals = qs;\nq.QR = Yi;\nq.QrDecomposition = Yi;\nq.SVD = Et;\nvar vh = q.SingularValueDecomposition = Et;\nq.SymmetricMatrix = Ye;\nq.WrapperMatrix1D = Ws;\nq.WrapperMatrix2D = be;\nq.correlation = uh;\nq.covariance = hh;\nvar Fn = q.default = k;\nq.determinant = Sr;\nvar yh = q.inverse = sh;\nq.linearDependencies = lh;\nvar wh = q.pseudoInverse = ch;\nq.solve = Vs;\nq.wrap = nh;\nconst Ee = mh, xh = vh;\nFn.Matrix && Fn.Matrix;\nconst bh = yh, Zs = wh;\nclass tr {\n sourcePoints;\n destinationPoints;\n pointCount;\n pointCountMinimum;\n type;\n /**\n * Create a transformation\n * @param {Point[]} sourcePoints - The source points\n * @param {Point[]} destinationPoints - The destination points\n * @param {TransformationType} type - The transformation type\n * @param {number} pointCountMinimum - The minimum number of points for the transformation type\n */\n constructor(e, t, i, n) {\n if (this.sourcePoints = e, this.destinationPoints = t, this.pointCount = this.sourcePoints.length, this.type = i, this.pointCountMinimum = n, this.pointCount < this.pointCountMinimum)\n throw new Error(\n \"Not enough control points. A \" + this.type + \" transformation requires a minimum of \" + this.pointCountMinimum + \" points, but \" + this.pointCount + \" are given.\"\n );\n }\n evaluate(e, t = \"function\") {\n if (t == \"function\")\n return this.evaluateFunction(e);\n if (t == \"partialDerivativeX\")\n return this.evaluatePartialDerivativeX(e);\n if (t == \"partialDerivativeY\")\n return this.evaluatePartialDerivativeY(e);\n throw new Error(\"Evaluation of type \" + t + \" not supported\");\n }\n}\nclass Xs extends tr {\n helmertParametersMatrix;\n helmertParameters;\n scale;\n rotation;\n translation;\n constructor(e, t) {\n super(e, t, \"helmert\", 2);\n const i = Ee.columnVector(\n t.flat()\n ), n = Ee.zeros(2 * this.pointCount, 4);\n for (let o = 0; o < this.pointCount; o++)\n n.set(2 * o, 0, 1), n.set(2 * o, 1, 0), n.set(2 * o, 2, this.sourcePoints[o][0]), n.set(2 * o, 3, -this.sourcePoints[o][1]), n.set(2 * o + 1, 0, 0), n.set(2 * o + 1, 1, 1), n.set(2 * o + 1, 2, this.sourcePoints[o][1]), n.set(2 * o + 1, 3, this.sourcePoints[o][0]);\n const s = Zs(n);\n this.helmertParametersMatrix = s.mmul(\n i\n ), this.helmertParameters = this.helmertParametersMatrix.to1DArray(), this.scale = Math.sqrt(\n this.helmertParameters[2] ** 2 + this.helmertParameters[3] ** 2\n ), this.rotation = Math.atan2(\n this.helmertParameters[3],\n this.helmertParameters[2]\n ), this.translation = [this.helmertParameters[0], this.helmertParameters[1]];\n }\n // Evaluate the transformation function at a new point\n evaluateFunction(e) {\n if (!this.helmertParameters)\n throw new Error(\"Helmert parameters not computed\");\n return [\n this.helmertParameters[0] + this.helmertParameters[2] * e[0] - this.helmertParameters[3] * e[1],\n this.helmertParameters[1] + this.helmertParameters[2] * e[1] + this.helmertParameters[3] * e[0]\n ];\n }\n // Evaluate the transformation function's partial derivative to x at a new point\n evaluatePartialDerivativeX(e) {\n if (!this.helmertParameters)\n throw new Error(\"Helmert parameters not computed\");\n return [\n this.helmertParameters[2],\n this.helmertParameters[3]\n ];\n }\n // Evaluate the transformation function's partial derivative to y at a new point\n evaluatePartialDerivativeY(e) {\n if (!this.helmertParameters)\n throw new Error(\"Helmert parameters not computed\");\n return [\n -this.helmertParameters[3],\n this.helmertParameters[2]\n ];\n }\n}\nclass Mh extends tr {\n scale;\n sourcePointsCenter;\n destinationPointsCenter;\n translation;\n constructor(e, t) {\n super(e, t, \"straight\", 2);\n const i = new Xs(\n this.sourcePoints,\n this.destinationPoints\n );\n if (this.scale = i.scale, !this.scale)\n throw new Error(\"Scale could not be computed\");\n this.sourcePointsCenter = this.sourcePoints.reduce((s, o) => [s[0] + o[0], s[1] + o[1]]).map((s) => s / this.pointCount), this.destinationPointsCenter = this.destinationPoints.reduce((s, o) => [s[0] + o[0], s[1] + o[1]]).map((s) => s / this.pointCount);\n const n = this.scale;\n this.translation = this.destinationPointsCenter.map(\n (s, o) => s - this.sourcePointsCenter[o] * n\n );\n }\n // Evaluate the transformation function at a new point\n evaluateFunction(e) {\n if (!this.scale || !this.translation)\n throw new Error(\"Straight parameters not computed\");\n return [\n this.translation[0] + this.scale * e[0],\n this.translation[1] + this.scale * e[1]\n ];\n }\n // Evaluate the transformation function's partial derivative to x at a new point\n evaluatePartialDerivativeX(e) {\n if (!this.scale || !this.translation)\n throw new Error(\"Straight parameters not computed\");\n return [this.scale, 0];\n }\n // Evaluate the transformation function's partial derivative to y at a new point\n evaluatePartialDerivativeY(e) {\n if (!this.scale || !this.translation)\n throw new Error(\"Straight parameters not computed\");\n return [0, this.scale];\n }\n}\nclass pi extends tr {\n polynomialParametersMatrices;\n polynomialParameters;\n order;\n pointCountMinimum;\n constructor(e, t, i) {\n i = i || 1;\n const n = (i + 1) * (i + 2) / 2;\n if (super(\n e,\n t,\n \"polynomial\" + i,\n n\n ), this.order = i, this.pointCountMinimum = n, this.order < 1 || this.order > 3)\n throw new Error(\n \"Only polynomial transformations of order 1, 2 or 3 are supported\"\n );\n const s = [\n Ee.columnVector(this.destinationPoints.map((l) => l[0])),\n Ee.columnVector(this.destinationPoints.map((l) => l[1]))\n ], o = Ee.zeros(\n this.pointCount,\n this.pointCountMinimum\n );\n for (let l = 0; l < this.pointCount; l++)\n switch (this.order) {\n case 1:\n o.set(l, 0, 1), o.set(l, 1, this.sourcePoints[l][0]), o.set(l, 2, this.sourcePoints[l][1]);\n break;\n case 2:\n o.set(l, 0, 1), o.set(l, 1, this.sourcePoints[l][0]), o.set(l, 2, this.sourcePoints[l][1]), o.set(l, 3, this.sourcePoints[l][0] ** 2), o.set(l, 4, this.sourcePoints[l][1] ** 2), o.set(\n l,\n 5,\n this.sourcePoints[l][0] * this.sourcePoints[l][1]\n );\n break;\n case 3:\n o.set(l, 0, 1), o.set(l, 1, this.sourcePoints[l][0]), o.set(l, 2, this.sourcePoints[l][1]), o.set(l, 3, this.sourcePoints[l][0] ** 2), o.set(l, 4, this.sourcePoints[l][1] ** 2), o.set(\n l,\n 5,\n this.sourcePoints[l][0] * this.sourcePoints[l][1]\n ), o.set(l, 6, this.sourcePoints[l][0] ** 3), o.set(l, 7, this.sourcePoints[l][1] ** 3), o.set(\n l,\n 8,\n this.sourcePoints[l][0] ** 2 * this.sourcePoints[l][1]\n ), o.set(\n l,\n 9,\n this.sourcePoints[l][0] * this.sourcePoints[l][1] ** 2\n );\n break;\n }\n const a = Zs(\n o\n );\n this.polynomialParametersMatrices = [\n a.mmul(s[0]),\n a.mmul(s[1])\n ], this.polynomialParameters = this.polynomialParametersMatrices.map(\n (l) => l.to1DArray()\n );\n }\n // Evaluate the transformation function at a new point\n evaluateFunction(e) {\n if (!this.polynomialParameters)\n throw new Error(\"Polynomial parameters not computed\");\n const t = [0, 0];\n for (let i = 0; i < 2; i++)\n switch (this.order) {\n case 1:\n t[i] += this.polynomialParameters[i][0] + this.polynomialParameters[i][1] * e[0] + this.polynomialParameters[i][2] * e[1];\n break;\n case 2:\n t[i] += this.polynomialParameters[i][0] + this.polynomialParameters[i][1] * e[0] + this.polynomialParameters[i][2] * e[1] + this.polynomialParameters[i][3] * e[0] ** 2 + this.polynomialParameters[i][4] * e[1] ** 2 + this.polynomialParameters[i][5] * e[0] * e[1];\n break;\n case 3:\n t[i] += this.polynomialParameters[i][0] + this.polynomialParameters[i][1] * e[0] + this.polynomialParameters[i][2] * e[1] + this.polynomialParameters[i][3] * e[0] ** 2 + this.polynomialParameters[i][4] * e[1] ** 2 + this.polynomialParameters[i][5] * e[0] * e[1] + this.polynomialParameters[i][6] * e[0] ** 3 + this.polynomialParameters[i][7] * e[1] ** 3 + this.polynomialParameters[i][8] * e[0] ** 2 * e[1] + this.polynomialParameters[i][9] * e[0] * e[1] ** 2;\n break;\n }\n return t;\n }\n // Evaluate the transformation function's partial derivative to x at a new point\n evaluatePartialDerivativeX(e) {\n if (!this.polynomialParameters)\n throw new Error(\"Polynomial parameters not computed\");\n const t = [0, 0];\n for (let i = 0; i < 2; i++)\n switch (this.order) {\n case 1:\n t[i] += this.polynomialParameters[i][1];\n break;\n case 2:\n t[i] += this.polynomialParameters[i][1] + 2 * this.polynomialParameters[i][3] * e[0] + this.polynomialParameters[i][5] * e[1];\n break;\n case 3:\n t[i] += this.polynomialParameters[i][1] + 2 * this.polynomialParameters[i][3] * e[0] + this.polynomialParameters[i][5] * e[1] + 3 * this.polynomialParameters[i][6] * e[0] ** 2 + 2 * this.polynomialParameters[i][8] * e[0] * e[1] + this.polynomialParameters[i][9] * e[1] ** 2;\n break;\n }\n return t;\n }\n // Evaluate the transformation function's partial derivative to x at a new point\n evaluatePartialDerivativeY(e) {\n if (!this.polynomialParameters)\n throw new Error(\"Polynomial parameters not computed\");\n const t = [0, 0];\n for (let i = 0; i < 2; i++)\n switch (this.order) {\n case 1:\n t[i] += this.polynomialParameters[i][2];\n break;\n case 2:\n t[i] += this.polynomialParameters[i][2] + 2 * this.polynomialParameters[i][4] * e[1] + this.polynomialParameters[i][5] * e[0];\n break;\n case 3:\n t[i] += this.polynomialParameters[i][2] + 2 * this.polynomialParameters[i][4] * e[1] + this.polynomialParameters[i][5] * e[0] + 3 * this.polynomialParameters[i][7] * e[1] ** 2 + this.polynomialParameters[i][8] * e[0] ** 2 + 2 * this.polynomialParameters[i][9] * e[0] * e[1];\n break;\n }\n return t;\n }\n}\nclass Th extends tr {\n projectiveParametersMatrix;\n projectiveParameters;\n constructor(e, t) {\n super(e, t, \"projective\", 4);\n const i = Ee.zeros(2 * this.pointCount, 9);\n for (let s = 0; s < this.pointCount; s++)\n i.set(2 * s, 0, -e[s][0]), i.set(2 * s, 1, -e[s][1]), i.set(2 * s, 2, -1), i.set(2 * s, 3, 0), i.set(2 * s, 4, 0), i.set(2 * s, 5, 0), i.set(\n 2 * s,\n 6,\n t[s][0] * e[s][0]\n ), i.set(\n 2 * s,\n 7,\n t[s][0] * e[s][1]\n ), i.set(2 * s, 8, t[s][0]), i.set(2 * s + 1, 0, 0), i.set(2 * s + 1, 1, 0), i.set(2 * s + 1, 2, 0), i.set(2 * s + 1, 3, -e[s][0]), i.set(2 * s + 1, 4, -e[s][1]), i.set(2 * s + 1, 5, -1), i.set(\n 2 * s + 1,\n 6,\n t[s][1] * e[s][0]\n ), i.set(\n 2 * s + 1,\n 7,\n t[s][1] * e[s][1]\n ), i.set(2 * s + 1, 8, t[s][1]);\n const n = new xh(i);\n this.projectiveParametersMatrix = Ee.from1DArray(\n 3,\n 3,\n n.rightSingularVectors.getColumn(8)\n ).transpose(), this.projectiveParameters = this.projectiveParametersMatrix.to2DArray();\n }\n // Evaluate the transformation function at a new point\n evaluateFunction(e) {\n if (!this.projectiveParameters)\n throw new Error(\"projective parameters not computed\");\n const t = this.projectiveParameters[0][2] * e[0] + this.projectiveParameters[1][2] * e[1] + this.projectiveParameters[2][2], i = this.projectiveParameters[0][0] * e[0] + this.projectiveParameters[1][0] * e[1] + this.projectiveParameters[2][0], n = this.projectiveParameters[0][1] * e[0] + this.projectiveParameters[1][1] * e[1] + this.projectiveParameters[2][1];\n return [i / t, n / t];\n }\n // Evaluate the transformation function's partial derivative to x at a new point\n evaluatePartialDerivativeX(e) {\n if (!this.projectiveParameters)\n throw new Error(\"projective parameters not computed\");\n const t = this.projectiveParameters[0][2] * e[0] + this.projectiveParameters[1][2] * e[1] + this.projectiveParameters[2][2], i = this.projectiveParameters[0][0] * e[0] + this.projectiveParameters[1][0] * e[1] + this.projectiveParameters[2][0], n = this.projectiveParameters[0][1] * e[0] + this.projectiveParameters[1][1] * e[1] + this.projectiveParameters[2][1];\n return [\n (t * this.projectiveParameters[0][0] - this.projectiveParameters[0][2] * i) / t ** 2,\n (t * this.projectiveParameters[0][1] - this.projectiveParameters[0][2] * n) / t ** 2\n ];\n }\n // Evaluate the transformation function's partial derivative to y at a new point\n evaluatePartialDerivativeY(e) {\n if (!this.projectiveParameters)\n throw new Error(\"projective parameters not computed\");\n const t = this.projectiveParameters[0][2] * e[0] + this.projectiveParameters[1][2] * e[1] + this.projectiveParameters[2][2], i = this.projectiveParameters[0][0] * e[0] + this.projectiveParameters[1][0] * e[1] + this.projectiveParameters[2][0], n = this.projectiveParameters[0][1] * e[0] + this.projectiveParameters[1][1] * e[1] + this.projectiveParameters[2][1];\n return [\n (t * this.projectiveParameters[1][0] - this.projectiveParameters[1][2] * i) / t ** 2,\n (t * this.projectiveParameters[1][1] - this.projectiveParameters[1][2] * n) / t ** 2\n ];\n }\n}\nclass _h extends tr {\n kernelFunction;\n normFunction;\n weightsMatrices;\n rbfWeights;\n affineWeights;\n epsilon;\n constructor(e, t, i, n, s) {\n super(e, t, \"thinPlateSpline\", 3), this.kernelFunction = i, this.normFunction = n;\n const o = [\n Ee.columnVector(\n [...this.destinationPoints, [0, 0], [0, 0], [0, 0]].map(\n (u) => u[0]\n )\n ),\n Ee.columnVector(\n [...this.destinationPoints, [0, 0], [0, 0], [0, 0]].map(\n (u) => u[1]\n )\n )\n ], a = Ee.zeros(this.pointCount, this.pointCount);\n for (let u = 0; u < this.pointCount; u++)\n for (let g = 0; g < this.pointCount; g++)\n a.set(\n u,\n g,\n n(this.sourcePoints[u], this.sourcePoints[g])\n );\n s === void 0 && (s = a.sum() / (Math.pow(this.pointCount, 2) - this.pointCount)), this.epsilon = s;\n for (let u = 0; u < this.pointCount; u++)\n for (let g = 0; g < this.pointCount; g++)\n a.set(\n u,\n g,\n i(a.get(u, g), { epsilon: s })\n );\n const l = Ee.zeros(this.pointCount, 3), c = Ee.zeros(\n this.pointCount + 3,\n this.pointCount + 3\n );\n for (let u = 0; u < this.pointCount; u++)\n l.set(u, 0, 1), l.set(u, 1, this.sourcePoints[u][0]), l.set(u, 2, this.sourcePoints[u][1]);\n for (let u = 0; u < this.pointCount + 3; u++)\n for (let g = 0; g < this.pointCount + 3; g++)\n u < this.pointCount && g < this.pointCount ? c.set(u, g, a.get(u, g)) : u >= this.pointCount && g < this.pointCount ? c.set(\n u,\n g,\n l.transpose().get(u - this.pointCount, g)\n ) : u < this.pointCount && g >= this.pointCount && c.set(\n u,\n g,\n l.get(u, g - this.pointCount)\n );\n const h = bh(\n c\n );\n this.weightsMatrices = [\n h.mmul(o[0]),\n h.mmul(o[1])\n ], this.rbfWeights = this.weightsMatrices.map(\n (u) => u.selection([...Array(this.pointCount).keys()], [0]).to1DArray()\n ), this.affineWeights = this.weightsMatrices.map(\n (u) => u.selection(\n [0, 1, 2].map((g) => g + this.pointCount),\n [0]\n ).to1DArray()\n );\n }\n // Evaluate the transformation function at a new point\n evaluateFunction(e) {\n if (!this.rbfWeights || !this.affineWeights)\n throw new Error(\"Weights not computed\");\n const t = this.sourcePoints.map(\n (n) => this.normFunction(e, n)\n ), i = [0, 0];\n for (let n = 0; n < 2; n++)\n i[n] = t.reduce(\n (s, o, a) => s + this.kernelFunction(o, { epsilon: this.epsilon }) * this.rbfWeights[n][a],\n 0\n ), i[n] += this.affineWeights[n][0] + this.affineWeights[n][1] * e[0] + this.affineWeights[n][2] * e[1];\n return i;\n }\n // Evaluate the transformation function's partial derivative to x at a new point\n evaluatePartialDerivativeX(e) {\n if (!this.rbfWeights || !this.affineWeights)\n throw new Error(\"Weights not computed\");\n const t = this.sourcePoints.map(\n (n) => this.normFunction(e, n)\n ), i = [0, 0];\n for (let n = 0; n < 2; n++)\n i[n] = t.reduce(\n (s, o, a) => s + (o == 0 ? 0 : this.kernelFunction(o, {\n derivative: 1,\n epsilon: this.epsilon\n }) * ((e[0] - this.sourcePoints[a][0]) / o) * this.rbfWeights[n][a]),\n 0\n ), i[n] += this.affineWeights[n][1];\n return i;\n }\n // Evaluate the transformation function's partial derivative to y at a new point\n evaluatePartialDerivativeY(e) {\n if (!this.rbfWeights || !this.affineWeights)\n throw new Error(\"Weights not computed\");\n const t = this.sourcePoints.map(\n (n) => this.normFunction(e, n)\n ), i = [0, 0];\n for (let n = 0; n < 2; n++)\n i[n] = t.reduce(\n (s, o, a) => s + (o == 0 ? 0 : this.kernelFunction(o, {\n derivative: 1,\n epsilon: this.epsilon\n }) * ((e[1] - this.sourcePoints[a][1]) / o) * this.rbfWeights[n][a]),\n 0\n ), i[n] += this.affineWeights[n][2];\n return i;\n }\n}\nfunction Eh(r, e) {\n if (e.derivative) {\n if (e.derivative == 1)\n return r === 0 ? 0 : r + 2 * r * Math.log(r);\n throw new Error(\n \"Derivate of order \" + e.derivative + \" not implemented\"\n );\n } else\n return r === 0 ? 0 : Math.pow(r, 2) * Math.log(r);\n}\nfunction Ph(r, e) {\n const t = [e[0] - r[0], e[1] - r[1]];\n return Math.sqrt(t[0] ** 2 + t[1] ** 2);\n}\nfunction Q(r, e, t) {\n return {\n maxOffsetRatio: 0,\n maxDepth: 0,\n destinationIsGeographic: !1,\n sourceIsGeographic: !1,\n inputIsMultiGeometry: !1,\n differentHandedness: !1,\n evaluationType: \"function\",\n ...t,\n ...e,\n ...r\n };\n}\nfunction yr(r, e, t) {\n e = Hr(e);\n const i = e.map((o) => ({\n source: o,\n destination: r.transformForward(o)\n })), n = ri(i, !1), s = Hs(\n r,\n n,\n t\n );\n return ii(s, !0).map(\n (o) => o.destination\n );\n}\nfunction wr(r, e, t) {\n e = Hr(e);\n const i = e.map((o) => ({\n source: r.transformBackward(o),\n destination: o\n })), n = ri(i, !1), s = Ys(\n r,\n n,\n t\n );\n return ii(s, !0).map((o) => o.source);\n}\nfunction Sh(r, e, t) {\n e = Ui(e);\n const i = e.map((o) => ({\n source: o,\n destination: r.transformForward(o)\n })), n = ri(i, !0), s = Hs(\n r,\n n,\n t\n );\n return ii(s, !1).map(\n (o) => o.destination\n );\n}\nfunction Rh(r, e, t) {\n e = Ui(e);\n const i = e.map((o) => ({\n source: r.transformBackward(o),\n destination: o\n })), n = ri(i, !0), s = Ys(\n r,\n n,\n t\n );\n return ii(s, !1).map(\n (o) => o.source\n );\n}\nfunction xr(r, e, t) {\n return e.map((i) => Sh(r, i, t));\n}\nfunction br(r, e, t) {\n return e.map((i) => Rh(r, i, t));\n}\nfunction ri(r, e = !1) {\n const t = r.length - (e ? 0 : 1), i = [];\n for (let n = 0; n < t; n++)\n i.push({\n from: r[n],\n to: r[(n + 1) % r.length]\n });\n return i;\n}\nfunction ii(r, e = !1) {\n const t = r.map((i) => i.from);\n return e && t.push(r[r.length - 1].to), t;\n}\nfunction Hs(r, e, t) {\n return t.maxDepth <= 0 ? e : e.map(\n (i) => Di(\n r,\n i,\n t,\n 0\n )\n ).flat(1);\n}\nfunction Ys(r, e, t) {\n return t.maxDepth <= 0 ? e : e.map(\n (i) => Fi(\n r,\n i,\n t,\n 0\n )\n ).flat(1);\n}\nfunction Di(r, e, t, i) {\n if (i >= t.maxDepth)\n return e;\n const n = (t.sourceIsGeographic ? (c, h) => Vr(c, h).geometry.coordinates : Ir)(\n e.from.source,\n e.to.source\n ), s = (t.destinationIsGeographic ? (c, h) => Vr(c, h).geometry.coordinates : Ir)(\n e.from.destination,\n e.to.destination\n ), o = r.transformForward(n), a = t.destinationIsGeographic ? Zi : we, l = a(\n e.from.destination,\n e.to.destination\n );\n if (a(\n s,\n o\n ) / l > t.maxOffsetRatio && l > 0) {\n const c = {\n source: n,\n destination: o\n };\n return [\n Di(\n r,\n { from: e.from, to: c },\n t,\n i + 1\n ),\n Di(\n r,\n { from: c, to: e.to },\n t,\n i + 1\n )\n ].flat(1);\n } else\n return e;\n}\nfunction Fi(r, e, t, i) {\n if (i >= t.maxDepth)\n return e;\n const n = (t.destinationIsGeographic ? (c, h) => Vr(c, h).geometry.coordinates : Ir)(\n e.from.destination,\n e.to.destination\n ), s = (t.sourceIsGeographic ? (c, h) => Vr(c, h).geometry.coordinates : Ir)(\n e.from.source,\n e.to.source\n ), o = r.transformBackward(\n n\n ), a = t.sourceIsGeographic ? Zi : we, l = a(\n e.from.source,\n e.to.source\n );\n if (a(\n s,\n o\n ) / l > t.maxOffsetRatio && l > 0) {\n const c = {\n source: o,\n destination: n\n };\n return [\n Fi(\n r,\n { from: e.from, to: c },\n t,\n i + 1\n ),\n Fi(\n r,\n { from: c, to: e.to },\n t,\n i + 1\n )\n ].flat(1);\n } else\n return e;\n}\nclass gi {\n gcps;\n sourcePoints;\n destinationPoints;\n type;\n options;\n forwardTransformation;\n backwardTransformation;\n /**\n * Create a GcpTransformer\n * @param {TransformGcp[] | Gcp[]} gcps - An array of Ground Control Points (GCPs)\n * @param {TransformationType} [type='polynomial'] - The transformation type\n */\n constructor(e, t = \"polynomial\", i) {\n if (i && (this.options = i), e.length === 0)\n throw new Error(\"No control points\");\n this.gcps = e.map((n) => {\n if (\"resource\" in n && \"geo\" in n)\n return {\n source: n.resource,\n destination: n.geo\n };\n if (\"source\" in n && \"destination\" in n)\n return n;\n throw new Error(\"Unsupported GCP type\");\n }), this.sourcePoints = this.gcps.map((n) => n.source), this.destinationPoints = this.gcps.map((n) => n.destination), this.type = t;\n }\n /**\n * Create forward transformation\n */\n createForwardTransformation() {\n this.forwardTransformation = this.computeTransformation(\n this.sourcePoints.map((e) => this.assureEqualHandedness(e)),\n this.destinationPoints\n );\n }\n /**\n * Create backward transformation\n */\n createBackwardTransformation() {\n this.backwardTransformation = this.computeTransformation(\n this.destinationPoints,\n this.sourcePoints.map((e) => this.assureEqualHandedness(e))\n );\n }\n /**\n * Transforms a Geometry or a GeoJSON geometry forward to a Geometry\n * @param {Geometry | GeojsonGeometry} input - Geometry or GeoJSON geometry to transform\n * @param {Partial<TransformOptions>} [options] - Transform options\n * @returns {Geometry} Forward transform of input as Geometry\n * @type {{\n * (input:Point | GeojsonPoint) => Point;\n * (input:LineString | GeojsonLineString) => LineString;\n * (input:Polygon | GeojsonPolygon) => Polygon;\n * (input:MultiPoint | GeojsonMultiPoint) => MultiPoint;\n * (input:MultiLineString | GeojsonMultiLineString) => MultiLineString;\n * (input:MultiPolygon | GeojsonMultiPolygon) => MultiPolygon;\n * }}\n */\n transformForward(e, t) {\n if (!Q(t, this.options).inputIsMultiGeometry) {\n if (ge(e))\n return this.forwardTransformation || this.createForwardTransformation(), this.forwardTransformation.evaluate(\n this.assureEqualHandedness(e),\n Q(t, this.options).evaluationType\n );\n if (Ge(e))\n return this.transformForward(Ct(e), t);\n if (Pe(e))\n return yr(\n this,\n e,\n Q(t, this.options)\n );\n if (Be(e))\n return yr(\n this,\n kt(e),\n Q(t, this.options, {\n sourceIsGeographic: !0\n })\n );\n if (Se(e))\n return xr(\n this,\n e,\n Q(t, this.options)\n );\n if (Ue(e))\n return xr(\n this,\n Lt(e),\n Q(t, this.options, { sourceIsGeographic: !0 })\n );\n }\n if (t && (t.inputIsMultiGeometry = !1), Ne(e))\n return e.map((i) => this.transformForward(i, t));\n if (We(e))\n return lr(e).map(\n (i) => this.transformForward(i, t)\n );\n if (De(e))\n return e.map((i) => this.transformForward(i, t));\n if (Ve(e))\n return cr(e).map(\n (i) => this.transformForward(i, t)\n );\n if (Fe(e))\n return e.map((i) => this.transformForward(i, t));\n if (ze(e))\n return hr(e).map(\n (i) => this.transformForward(i, t)\n );\n throw new Error(\"Input type not supported\");\n }\n /**\n * Transforms a Geometry or a GeoJSON geometry forward to a GeoJSON geometry\n * @param {Geometry | GeojsonGeometry} input - Geometry or GeoJSON geometry to transform\n * @param {Partial<TransformOptions>} [options] - Transform options\n * @returns {GeojsonGeometry} Forward transform of input, as GeoJSON geometry\n * @type {{\n * (input:Point | GeojsonPoint) => GeojsonPoint;\n * (input:LineString | GeojsonLineString) => GeojsonLineString;\n * (input:Polygon | GeojsonPolygon) => GeojsonPolygon;\n * (input:MultiPoint | GeojsonMultiPoint) => GeojsonMultiPoint;\n * (input:MultiLineString | GeojsonMultiLineString) => GeojsonMultiLineString;\n * (input:MultiPolygon | GeojsonMultiPolygon) => GeojsonMultiPolygon;\n * }}\n */\n transformForwardAsGeojson(e, t) {\n if (!Q(t, this.options).inputIsMultiGeometry) {\n if (ge(e))\n return sr(this.transformForward(e));\n if (Ge(e))\n return sr(\n this.transformForward(Ct(e))\n );\n if (Pe(e))\n return or(\n yr(\n this,\n e,\n Q(t, this.options, {\n destinationIsGeographic: !0\n })\n )\n );\n if (Be(e))\n return or(\n yr(\n this,\n kt(e),\n Q(t, this.options, {\n sourceIsGeographic: !0,\n destinationIsGeographic: !0\n })\n )\n );\n if (Se(e))\n return ar(\n xr(\n this,\n e,\n Q(t, this.options, {\n destinationIsGeographic: !0\n })\n )\n );\n if (Ue(e))\n return ar(\n xr(\n this,\n Lt(e),\n Q(t, this.options, {\n sourceIsGeographic: !0,\n destinationIsGeographic: !0\n })\n )\n );\n }\n if (t && (t.inputIsMultiGeometry = !1), Ne(e))\n return ur(\n e.map((i) => this.transformForwardAsGeojson(i, t))\n );\n if (We(e))\n return ur(\n lr(e).map(\n (i) => this.transformForwardAsGeojson(i, t)\n )\n );\n if (De(e))\n return fr(\n e.map((i) => this.transformForwardAsGeojson(i, t))\n );\n if (Ve(e))\n return fr(\n cr(e).map(\n (i) => this.transformForwardAsGeojson(i, t)\n )\n );\n if (Fe(e))\n return dr(\n e.map((i) => this.transformForwardAsGeojson(i, t))\n );\n if (ze(e))\n return dr(\n hr(e).map(\n (i) => this.transformForwardAsGeojson(i, t)\n )\n );\n throw new Error(\"Input type not supported\");\n }\n /**\n * Transforms a geometry or a GeoJSON geometry backward to a Geometry\n * @param {Geometry | GeojsonGeometry} input - Geometry or GeoJSON geometry to transform\n * @param {Partial<TransformOptions>} [options] - Transform options\n * @returns {Geometry} backward transform of input, as geometry\n * @type {{\n * (input:Point | GeojsonPoint) => Point;\n * (input:LineString | GeojsonLineString) => LineString;\n * (input:Polygon | GeojsonPolygon) => Polygon;\n * (input:MultiPoint | GeojsonMultiPoint) => MultiPoint;\n * (input:MultiLineString | GeojsonMultiLineString) => MultiLineString;\n * (input:MultiPolygon | GeojsonMultiPolygon) => MultiPolygon;\n * }}\n */\n transformBackward(e, t) {\n if (!Q(t, this.options).inputIsMultiGeometry) {\n if (ge(e))\n return this.backwardTransformation || this.createBackwardTransformation(), this.assureEqualHandedness(\n this.backwardTransformation.evaluate(e)\n );\n if (Ge(e))\n return this.transformBackward(Ct(e));\n if (Pe(e))\n return wr(\n this,\n e,\n Q(t, this.options)\n );\n if (Be(e))\n return wr(\n this,\n kt(e),\n Q(t, this.options, {\n destinationIsGeographic: !0\n })\n );\n if (Se(e))\n return br(\n this,\n e,\n Q(t, this.options)\n );\n if (Ue(e))\n return br(\n this,\n Lt(e),\n Q(t, this.options, {\n destinationIsGeographic: !0\n })\n );\n }\n if (t && (t.inputIsMultiGeometry = !1), Ne(e))\n return e.map((i) => this.transformBackward(i, t));\n if (We(e))\n return lr(e).map(\n (i) => this.transformBackward(i, t)\n );\n if (De(e))\n return e.map((i) => this.transformBackward(i, t));\n if (Ve(e))\n return cr(e).map(\n (i) => this.transformBackward(i, t)\n );\n if (Fe(e))\n return e.map((i) => this.transformBackward(i, t));\n if (ze(e))\n return hr(e).map(\n (i) => this.transformBackward(i, t)\n );\n throw new Error(\"Input type not supported\");\n }\n /**\n * Transforms a Geometry or a GeoJSON geometry backward to a GeoJSON geometry\n * @param {Geometry | GeojsonGeometry} input - Geometry or GeoJSON geometry to transform\n * @param {Partial<TransformOptions>} [options] - Transform options\n * @returns {GeojsonGeometry} backward transform of input, as GeoJSON geometry\n * @type {{\n * (input:Point | GeojsonPoint) => GeojsonPoint;\n * (input:LineString | GeojsonLineString) => GeojsonLineString;\n * (input:Polygon | GeojsonPolygon) => GeojsonPolygon;\n * (input:MultiPoint | GeojsonMultiPoint) => GeojsonMultiPoint;\n * (input:MultiLineString | GeojsonMultiLineString) => GeojsonMultiLineString;\n * (input:MultiPolygon | GeojsonMultiPolygon) => GeojsonMultiPolygon;\n * }}\n */\n transformBackwardAsGeojson(e, t) {\n if (!Q(t, this.options).inputIsMultiGeometry) {\n if (ge(e))\n return sr(this.transformBackward(e));\n if (Ge(e))\n return sr(\n this.transformBackward(Ct(e))\n );\n if (Pe(e))\n return or(\n wr(\n this,\n e,\n Q(t, this.options, {\n sourceIsGeographic: !0\n })\n )\n );\n if (Be(e))\n return or(\n wr(\n this,\n kt(e),\n Q(t, this.options, {\n sourceIsGeographic: !0,\n destinationIsGeographic: !0\n })\n )\n );\n if (Se(e))\n return ar(\n br(\n this,\n e,\n Q(t, this.options, {\n sourceIsGeographic: !0\n })\n )\n );\n if (Ue(e))\n return ar(\n br(\n this,\n Lt(e),\n Q(t, this.options, {\n sourceIsGeographic: !0,\n destinationIsGeographic: !0\n })\n )\n );\n }\n if (t && (t.inputIsMultiGeometry = !1), Ne(e))\n return ur(\n e.map(\n (i) => this.transformBackwardAsGeojson(i, t)\n )\n );\n if (We(e))\n return ur(\n lr(e).map(\n (i) => this.transformBackwardAsGeojson(i, t)\n )\n );\n if (De(e))\n return fr(\n e.map(\n (i) => this.transformBackwardAsGeojson(i, t)\n )\n );\n if (Ve(e))\n return fr(\n cr(e).map(\n (i) => this.transformBackwardAsGeojson(i, t)\n )\n );\n if (Fe(e))\n return dr(\n e.map(\n (i) => this.transformBackwardAsGeojson(i, t)\n )\n );\n if (ze(e))\n return dr(\n hr(e).map(\n (i) => this.transformBackwardAsGeojson(i, t)\n )\n );\n throw new Error(\"Input type not supported\");\n }\n /**\n * Transforms Geometry or GeoJSON geometry forward, as Geometry\n * @param {Geometry | GeojsonGeometry} input - Input to transform\n * @param {Partial<TransformOptions>} [options] - Transform options\n * @returns {Geometry} Forward transform of input, as Geometry\n * @type {{\n * (input:Point | GeojsonPoint) => Point;\n * (input:LineString | GeojsonLineString) => LineString;\n * (input:Polygon | GeojsonPolygon) => Polygon;\n * (input:MultiPoint | GeojsonMultiPoint) => MultiPoint;\n * (input:MultiLineString | GeojsonMultiLineString) => MultiLineString;\n * (input:MultiPolygon | GeojsonMultiPolygon) => MultiPolygon;\n * }}\n */\n transformToGeo(e, t) {\n if (!Q(t, this.options).inputIsMultiGeometry) {\n if (ge(e))\n return this.transformForward(e, t);\n if (Ge(e))\n return this.transformForward(e, t);\n if (Pe(e))\n return this.transformForward(e, t);\n if (Be(e))\n return this.transformForward(e, t);\n if (Se(e))\n return this.transformForward(e, t);\n if (Ue(e))\n return this.transformForward(e, t);\n }\n if (t && (t.inputIsMultiGeometry = !1), Ne(e))\n return this.transformForward(e, t);\n if (We(e))\n return this.transformForward(e, t);\n if (De(e))\n return this.transformForward(e, t);\n if (Ve(e))\n return this.transformForward(e, t);\n if (Fe(e))\n return this.transformForward(e, t);\n if (ze(e))\n return this.transformForward(e, t);\n throw new Error(\"Input type not supported\");\n }\n /**\n * Transforms a Geometry or a GeoJSON geometry forward, to a GeoJSON geometry\n * @param {Geometry | GeojsonGeometry} input - Input to transform\n * @param {Partial<TransformOptions>} [options] - Transform options\n * @returns {Geometry} Forward transform of input, as GeoJSON geometry\n * @type {{\n * (input:Point | GeojsonPoint) => GeojsonPoint;\n * (input:LineString | GeojsonLineString) => GeojsonLineString;\n * (input:Polygon | GeojsonPolygon) => GeojsonPolygon;\n * (input:MultiPoint | GeojsonMultiPoint) => GeojsonMultiPoint;\n * (input:MultiLineString | GeojsonMultiLineString) => GeojsonMultiLineString;\n * (input:MultiPolygon | GeojsonMultiPolygon) => GeojsonMultiPolygon;\n * }}\n */\n transformToGeoAsGeojson(e, t) {\n if (!Q(t, this.options).inputIsMultiGeometry) {\n if (ge(e))\n return this.transformForwardAsGeojson(e, t);\n if (Ge(e))\n return this.transformForwardAsGeojson(e, t);\n if (Pe(e))\n return this.transformForwardAsGeojson(e, t);\n if (Be(e))\n return this.transformForwardAsGeojson(\n e,\n t\n );\n if (Se(e))\n return this.transformForwardAsGeojson(e, t);\n if (Ue(e))\n return this.transformForwardAsGeojson(e, t);\n }\n if (t && (t.inputIsMultiGeometry = !1), Ne(e))\n return this.transformForwardAsGeojson(e, t);\n if (We(e))\n return this.transformForwardAsGeojson(e, t);\n if (De(e))\n return this.transformForwardAsGeojson(e, t);\n if (Ve(e))\n return this.transformForwardAsGeojson(\n e,\n t\n );\n if (Fe(e))\n return this.transformForwardAsGeojson(e, t);\n if (ze(e))\n return this.transformForwardAsGeojson(\n e,\n t\n );\n throw new Error(\"Input type not supported\");\n }\n /**\n * Transforms a Geometry or a GeoJSON geometry backward, to a Geometry\n * @param {Geometry | GeojsonGeometry} input - Input to transform\n * @param {Partial<TransformOptions>} [options] - Transform options\n * @returns {Geometry} Backward transform of input, as a Geometry\n * @type {{\n * (input:Point | GeojsonPoint) => Point;\n * (input:LineString | GeojsonLineString) => LineString;\n * (input:Polygon | GeojsonPolygon) => Polygon;\n * (input:MultiPoint | GeojsonMultiPoint) => MultiPoint;\n * (input:MultiLineString | GeojsonMultiLineString) => MultiLineString;\n * (input:MultiPolygon | GeojsonMultiPolygon) => MultiPolygon;\n * }}\n */\n transformToResource(e, t) {\n if (!Q(t, this.options).inputIsMultiGeometry) {\n if (ge(e))\n return this.transformBackward(e, t);\n if (Ge(e))\n return this.transformBackward(e, t);\n if (Pe(e))\n return this.transformBackward(e, t);\n if (Be(e))\n return this.transformBackward(e, t);\n if (Se(e))\n return this.transformBackward(e, t);\n if (Ue(e))\n return this.transformBackward(e, t);\n }\n if (t && (t.inputIsMultiGeometry = !1), Ne(e))\n return this.transformBackward(e, t);\n if (We(e))\n return this.transformBackward(e, t);\n if (De(e))\n return this.transformBackward(e, t);\n if (Ve(e))\n return this.transformBackward(e, t);\n if (Fe(e))\n return this.transformBackward(e, t);\n if (ze(e))\n return this.transformBackward(e, t);\n throw new Error(\"Input type not supported\");\n }\n /**\n * Transforms a Geometry or a GeoJSON geometry backward, to a GeoJSON geometry\n * @param {Geometry | GeojsonGeometry} input - Input to transform\n * @param {Partial<TransformOptions>} [options] - Transform options\n * @returns {GeojsonGeometry} Backward transform of input, as a GeoJSON geometry\n * @type {{\n * (input:Point | GeojsonPoint) => GeojsonPoint;\n * (input:LineString | GeojsonLineString) => GeojsonLineString;\n * (input:Polygon | GeojsonPolygon) => GeojsonPolygon;\n * (input:MultiPoMultiint | GeojsonMultiPoint) => GeojsonMultiPoint;\n * (input:MultiLineString | GeojsonMultiLineString) => GeojsonMultiLineString;\n * (input:MultiPolygon | GeojsonMultiPolygon) => GeojsonMultiPolygon;\n * }}\n */\n transformToResourceAsGeojson(e, t) {\n if (!Q(t, this.options).inputIsMultiGeometry) {\n if (ge(e))\n return this.transformBackwardAsGeojson(e, t);\n if (Ge(e))\n return this.transformBackwardAsGeojson(e, t);\n if (Pe(e))\n return this.transformBackwardAsGeojson(e, t);\n if (Be(e))\n return this.transformBackwardAsGeojson(\n e,\n t\n );\n if (Se(e))\n return this.transformBackwardAsGeojson(e, t);\n if (Ue(e))\n return this.transformBackwardAsGeojson(e, t);\n }\n if (t && (t.inputIsMultiGeometry = !1), Ne(e))\n return this.transformBackwardAsGeojson(e, t);\n if (We(e))\n return this.transformBackwardAsGeojson(\n e,\n t\n );\n if (De(e))\n return this.transformBackwardAsGeojson(e, t);\n if (Ve(e))\n return this.transformBackwardAsGeojson(\n e,\n t\n );\n if (Fe(e))\n return this.transformBackwardAsGeojson(e, t);\n if (ze(e))\n return this.transformBackwardAsGeojson(\n e,\n t\n );\n throw new Error(\"Input type not supported\");\n }\n // Shortcuts for SVG <> GeoJSON\n /**\n * Transforms a SVG geometry forward to a GeoJSON geometry\n *\n * Note: Multi-geometries are not supported\n * @param {SvgGeometry} geometry - SVG geometry to transform\n * @param {Partial<TransformOptions>} [options] - Transform options\n * @returns {GeojsonGeometry} Forward transform of input, as a GeoJSON geometry\n */\n transformSvgToGeojson(e, t) {\n if (e.type === \"circle\")\n return this.transformForwardAsGeojson(e.coordinates);\n if (e.type === \"line\")\n return this.transformForwardAsGeojson(e.coordinates, t);\n if (e.type === \"polyline\")\n return this.transformForwardAsGeojson(e.coordinates, t);\n if (e.type === \"rect\")\n return this.transformForwardAsGeojson([e.coordinates], t);\n if (e.type === \"polygon\")\n return this.transformForwardAsGeojson([e.coordinates], t);\n throw new Error(\"Unsupported SVG geometry\");\n }\n /**\n * Transforms a SVG string forward to a GeoJSON FeatureCollection\n *\n * Note: Multi-geometries are not supported\n * @param {string} svg - SVG string to transform\n * @param {Partial<TransformOptions>} [options] - Transform options\n * @returns {GeojsonFeatureCollection} Forward transform of input, as a GeoJSON FeatureCollection\n */\n transformSvgStringToGeojsonFeatureCollection(e, t) {\n const i = [];\n for (const n of Pa(e)) {\n const s = this.transformSvgToGeojson(n, t);\n i.push(s);\n }\n return da(i);\n }\n /**\n * Transforms a GeoJSON geometry backward to a SVG geometry\n *\n * Note: Multi-geometries are not supported\n * @param {GeojsonGeometry} geometry - GeoJSON geometry to transform\n * @param {Partial<TransformOptions>} [options] - Transform options\n * @returns {SvgGeometry} Backward transform of input, as SVG geometry\n */\n transformGeojsonToSvg(e, t) {\n if (e.type === \"Point\")\n return {\n type: \"circle\",\n coordinates: this.transformBackward(e)\n };\n if (e.type === \"LineString\")\n return {\n type: \"polyline\",\n coordinates: this.transformBackward(e, t)\n };\n if (e.type === \"Polygon\")\n return {\n type: \"polygon\",\n coordinates: this.transformBackward(e, t)[0]\n };\n throw new Error(\"Unsupported GeoJSON geometry\");\n }\n /**\n * Transforms a GeoJSON FeatureCollection backward to a SVG string\n *\n * Note: Multi-geometries are not supported\n * @param {GeojsonFeatureCollection} geojson - GeoJSON FeatureCollection to transform\n * @param {Partial<TransformOptions>} [options] - Transform options\n * @returns {string} Backward transform of input, as SVG string\n */\n transformGeojsonFeatureCollectionToSvgString(e, t) {\n const i = [];\n for (const n of ga(e)) {\n const s = this.transformGeojsonToSvg(n, t);\n i.push(s);\n }\n return Ra(i);\n }\n assureEqualHandedness(e) {\n return this.options?.differentHandedness ? ia(e) : e;\n }\n computeTransformation(e, t) {\n if (this.type === \"straight\")\n return new Mh(e, t);\n if (this.type === \"helmert\")\n return new Xs(e, t);\n if (this.type === \"polynomial1\" || this.type === \"polynomial\")\n return new pi(e, t);\n if (this.type === \"polynomial2\")\n return new pi(e, t, 2);\n if (this.type === \"polynomial3\")\n return new pi(e, t, 3);\n if (this.type === \"projective\")\n return new Th(e, t);\n if (this.type === \"thinPlateSpline\")\n return new _h(\n e,\n t,\n Eh,\n Ph\n );\n throw new Error(`Unsupported transformation type: ${this.type}`);\n }\n}\nconst Js = [\n \"log2sigma\",\n \"twoOmega\",\n \"airyKavr\",\n \"signDetJ\",\n \"thetaa\"\n];\nfunction Ih(r, e, t, i = 1) {\n if (!t)\n return 0;\n const n = r[0] ** 2 + r[1] ** 2, s = e[0] ** 2 + e[1] ** 2, o = r[0] * e[0] + r[1] * e[1], a = Math.sqrt(0.5 * (n + s + Math.sqrt((n - s) ** 2 + 4 * o ** 2))), l = Math.sqrt(0.5 * (n + s - Math.sqrt((n - s) ** 2 + 4 * o ** 2))), c = Math.atan(r[1] / r[0]), h = Math.sign(-o) * Math.asin(Math.sqrt((1 - a ** 2 / n) / (1 - (a / l) ** 2)));\n switch (Js.indexOf(t)) {\n case 0:\n return (Math.log(a * l) - 2 * Math.log(i)) / Math.log(2);\n case 1:\n return 2 * Math.asin((a - l) / (a + l));\n case 2:\n return 0.5 * (Math.log(a / i) ** 2 + Math.log(l / i) ** 2);\n case 3:\n return Math.sign(\n r[0] * e[1] - r[1] * e[0]\n );\n case 4:\n return c - h;\n default:\n throw new Error(\"Distortion \" + t + \" not supported\");\n }\n}\nvar C = /* @__PURE__ */ ((r) => (r.GEOREFERENCEANNOTATIONADDED = \"georeferenceannotationadded\", r.GEOREFERENCEANNOTATIONREMOVED = \"georeferenceannotationremoved\", r.WARPEDMAPADDED = \"warpedmapadded\", r.WARPEDMAPREMOVED = \"warpedmapremoved\", r.WARPEDMAPENTER = \"warpedmapenter\", r.WARPEDMAPLEAVE = \"warpedmapleave\", r.IMAGEINFOLOADED = \"imageinfoloaded\", r.TILEFETCHED = \"tilefetched\", r.TILEFETCHERROR = \"tilefetcherror\", r.MAPTILELOADED = \"maptileloaded\", r.MAPTILEREMOVED = \"maptileremoved\", r.FIRSTMAPTILELOADED = \"firstmaptileloaded\", r.ALLREQUESTEDTILESLOADED = \"allrequestedtilesloaded\", r.TEXTURESUPDATED = \"texturesupdated\", r.ZINDICESCHANGES = \"zindiceschanged\", r.RESOURCEMASKUPDATED = \"resourcemaskupdated\", r.VISIBILITYCHANGED = \"visibilitychanged\", r.TRANSFORMATIONCHANGED = \"transformationchanged\", r.DISTORTIONCHANGED = \"distortionchanged\", r.CHANGED = \"changed\", r.CLEARED = \"cleared\", r))(C || {});\nlet V = class extends Event {\n data;\n constructor(e, t) {\n super(e), this.data = t;\n }\n};\nconst mi = {\n maxOffsetRatio: 0.05,\n maxDepth: 2,\n differentHandedness: !0\n}, Qs = !0;\nfunction Ah() {\n return {\n visible: Qs\n };\n}\nclass Ch extends EventTarget {\n mapId;\n georeferencedMap;\n gcps;\n projectedGcps;\n resourceMask;\n resourceMaskBbox;\n resourceMaskRectangle;\n resourceFullMask;\n resourceFullMaskBbox;\n resourceFullMaskRectangle;\n imageInformations;\n imageId;\n parsedImage;\n loadingImageInfo;\n fetchFn;\n visible;\n transformationType;\n transformer;\n projectedTransformer;\n transformerByTransformationType = /* @__PURE__ */ new Map();\n projectedTransformerByTransformationType = /* @__PURE__ */ new Map();\n geoMask;\n geoMaskBbox;\n geoMaskRectangle;\n geoFullMask;\n geoFullMaskBbox;\n geoFullMaskRectangle;\n projectedGeoMask;\n projectedGeoMaskBbox;\n projectedGeoMaskRectangle;\n projectedGeoFullMask;\n projectedGeoFullMaskBbox;\n projectedGeoFullMaskRectangle;\n resourceToProjectedGeoScale;\n distortionMeasure;\n // The properties below are for the current viewport\n bestScaleFactor;\n resourceViewportRing = [];\n resourceViewportRingBbox;\n /**\n * Creates an instance of WarpedMap.\n *\n * @constructor\n * @param {string} mapId - ID of the map\n * @param {GeoreferencedMap} georeferencedMap - Georeferenced map used to construct the WarpedMap\n * @param {WarpedMapOptions} [options] - options\n */\n constructor(e, t, i) {\n super(), i = {\n ...Ah(),\n ...i\n }, this.mapId = e, this.georeferencedMap = t, this.gcps = this.georeferencedMap.gcps, this.projectedGcps = this.gcps.map(({ resource: n, geo: s }) => ({\n resource: n,\n geo: ut(s)\n })), this.resourceMask = this.georeferencedMap.resourceMask, this.updateResourceMaskProperties(), this.resourceFullMask = [\n [0, 0],\n [this.georeferencedMap.resource.width, 0],\n [\n this.georeferencedMap.resource.width,\n this.georeferencedMap.resource.height\n ],\n [0, this.georeferencedMap.resource.height]\n ], this.resourceFullMaskBbox = ue(this.resourceFullMask), this.resourceFullMaskRectangle = Ar(this.resourceFullMaskBbox), this.imageInformations = i.imageInformations, this.loadingImageInfo = !1, this.visible = i.visible || Qs, this.fetchFn = i.fetchFn, this.transformationType = i.transformation?.type || this.georeferencedMap.transformation?.type || \"polynomial\", this.updateTransformerProperties();\n }\n /**\n * Get resourceMask in viewport coordinates\n *\n * @param {Viewport} viewport - the current viewport\n * @returns {Ring}\n */\n getViewportMask(e) {\n return this.projectedGeoMask.map((t) => mt(e.projectedGeoToViewportTransform, t));\n }\n /**\n * Get Bbox of resourceMask in viewport coordinates\n *\n * @param {Viewport} viewport - the current viewport\n * @returns {Bbox}\n */\n getViewportMaskBbox(e) {\n return ue(this.getViewportMask(e));\n }\n /**\n * Get resourceMaskRectangle in viewport coordinates\n *\n * @param {Viewport} viewport - the current viewport\n * @returns {Rectangle}\n */\n getViewportMaskRectangle(e) {\n return this.projectedGeoMaskRectangle.map((t) => mt(e.projectedGeoToViewportTransform, t));\n }\n /**\n * Get resourceFullMask in viewport coordinates\n *\n * @param {Viewport} viewport - the current viewport\n * @returns {Ring}\n */\n getViewportFullMask(e) {\n return this.projectedGeoFullMask.map((t) => mt(e.projectedGeoToViewportTransform, t));\n }\n /**\n * Get bbox of rresourceFullMask in viewport coordinates\n *\n * @param {Viewport} viewport - the current viewport\n * @returns {Bbox}\n */\n getViewportFullMaskBbox(e) {\n return ue(this.getViewportFullMask(e));\n }\n /**\n * Get resourceFullMaskRectangle in viewport coordinates\n *\n * @param {Viewport} viewport - the current viewport\n * @returns {Rectangle}\n */\n getViewportFullMaskRectangle(e) {\n return this.projectedGeoFullMaskRectangle.map((t) => mt(e.projectedGeoToViewportTransform, t));\n }\n /**\n * Get scale of the warped map, in resource pixels per viewport pixels.\n *\n * @param {Viewport} viewport - the current viewport\n * @returns {number}\n */\n getResourceToViewportScale(e) {\n return yn(\n this.resourceMaskRectangle,\n this.getViewportMaskRectangle(e)\n );\n }\n /**\n * Get scale of the warped map, in resource pixels per canvas pixels.\n *\n * @param {Viewport} viewport - the current viewport\n * @returns {number}\n */\n getResourceToCanvasScale(e) {\n return this.getResourceToViewportScale(e) / e.devicePixelRatio;\n }\n /**\n * Get the reference scaling from the forward transformation of the projected Helmert transformer\n *\n * @returns {number}\n */\n getReferenceScale() {\n const e = Er(\n this.projectedTransformerByTransformationType,\n \"helmert\",\n () => new gi(this.projectedGcps, \"helmert\", mi)\n );\n return e.forwardTransformation || e.createForwardTransformation(), e.forwardTransformation.scale;\n }\n /**\n * Set resourceViewportRing at current viewport\n *\n * @param {Ring} resourceViewportRing\n */\n setResourceViewportRing(e) {\n this.resourceViewportRing = e, this.resourceViewportRingBbox = ue(e);\n }\n /**\n * Update the resourceMask loaded from a georeferenced map to a new mask.\n *\n * @param {Ring} resourceMask\n */\n setResourceMask(e) {\n this.resourceMask = e, this.updateResourceMaskProperties(), this.updateGeoMask(), this.updateProjectedGeoMask(), this.updateResourceToProjectedGeoScale();\n }\n /**\n * Update the transformationType loaded from a georeferenced map to a new transformation type.\n *\n * @param {TransformationType} transformationType\n */\n setTransformationType(e) {\n this.transformationType = e, this.updateTransformerProperties();\n }\n /**\n * Set the distortionMeasure\n *\n * @param {DistortionMeasure} [distortionMeasure] - the disortion measure\n */\n setDistortionMeasure(e) {\n this.distortionMeasure = e;\n }\n /**\n * Update the Ground Controle Points loaded from a georeferenced map to new Ground Controle Points.\n *\n * @param {GCP[]} gcps\n */\n setGcps(e) {\n this.gcps = e, this.updateTransformerProperties(!1);\n }\n /**\n * Set the bestScaleFactor for the current viewport\n *\n * @param {number} scaleFactor - scale factor\n * @returns {boolean}\n */\n setBestScaleFactor(e) {\n const t = this.bestScaleFactor != e;\n return t && (this.bestScaleFactor = e), t;\n }\n /**\n * Check if warpedMap has image info\n *\n * @returns {this is WarpedMapWithImageInfo}\n */\n hasImageInfo() {\n return this.imageId !== void 0 && this.parsedImage !== void 0;\n }\n /**\n * Fetch and parse the image info, and generate the image ID\n *\n * @async\n * @returns {Promise<void>}\n */\n async loadImageInfo() {\n try {\n this.loadingImageInfo = !0;\n const e = this.georeferencedMap.resource.id;\n let t;\n this.imageInformations?.get(e) ? t = this.imageInformations.get(e) : (t = await Jo(e, void 0, this.fetchFn), this.imageInformations?.set(e, t)), this.parsedImage = qi.parse(t), this.imageId = await ns(e), this.dispatchEvent(new V(C.IMAGEINFOLOADED));\n } catch (e) {\n throw this.loadingImageInfo = !1, e;\n } finally {\n this.loadingImageInfo = !1;\n }\n }\n dispose() {\n }\n updateResourceMaskProperties() {\n this.resourceMaskBbox = ue(this.resourceMask), this.resourceMaskRectangle = Ar(this.resourceMaskBbox);\n }\n updateTransformerProperties(e = !0) {\n this.updateTransformer(e), this.updateProjectedTransformer(e), this.updateGeoMask(), this.updateFullGeoMask(), this.updateProjectedGeoMask(), this.updateProjectedFullGeoMask(), this.updateResourceToProjectedGeoScale();\n }\n updateTransformer(e = !0) {\n this.transformer = Er(\n this.transformerByTransformationType,\n this.transformationType,\n () => new gi(\n this.gcps,\n this.transformationType,\n mi\n ),\n e\n );\n }\n updateProjectedTransformer(e = !0) {\n this.projectedTransformer = Er(\n this.projectedTransformerByTransformationType,\n this.transformationType,\n () => new gi(\n this.projectedGcps,\n this.transformationType,\n mi\n ),\n e\n );\n }\n updateGeoMask() {\n this.geoMask = this.transformer.transformForwardAsGeojson([\n this.resourceMask\n ]), this.geoMaskBbox = ue(this.geoMask), this.geoMaskRectangle = this.transformer.transformForward(\n [this.resourceMaskRectangle],\n { maxDepth: 0 }\n )[0];\n }\n updateFullGeoMask() {\n this.geoFullMask = this.transformer.transformForwardAsGeojson([\n this.resourceFullMask\n ]), this.geoFullMaskBbox = ue(this.geoFullMask), this.geoFullMaskRectangle = this.transformer.transformForward(\n [this.resourceFullMaskRectangle],\n { maxDepth: 0 }\n )[0];\n }\n updateProjectedGeoMask() {\n this.projectedGeoMask = this.projectedTransformer.transformForward([\n this.resourceMask\n ])[0], this.projectedGeoMaskBbox = ue(this.projectedGeoMask), this.projectedGeoMaskRectangle = this.projectedTransformer.transformForward(\n [this.resourceMaskRectangle],\n { maxDepth: 0 }\n )[0];\n }\n updateProjectedFullGeoMask() {\n this.projectedGeoFullMask = this.projectedTransformer.transformForward([\n this.resourceFullMask\n ])[0], this.projectedGeoFullMaskBbox = ue(this.projectedGeoFullMask), this.projectedGeoFullMaskRectangle = this.projectedTransformer.transformForward(\n [this.resourceFullMaskRectangle],\n { maxDepth: 0 }\n )[0];\n }\n updateResourceToProjectedGeoScale() {\n this.resourceToProjectedGeoScale = yn(\n this.resourceMaskRectangle,\n this.projectedGeoMaskRectangle\n );\n }\n}\nfunction kh(r) {\n return Math.sqrt(Math.pow(r[1][0] - r[0][0], 2) + Math.pow(r[1][1] - r[0][1], 2));\n}\nfunction Lh(r) {\n return Math.atan2(r[1][1] - r[0][1], r[1][0] - r[0][0]);\n}\nfunction jh(r, e, t) {\n return [\n r[0] + Math.cos(t) * e,\n r[1] + Math.sin(t) * e\n ];\n}\nfunction Oh(r, e) {\n let t = r[0];\n const i = [t];\n for (; kh([t, r[1]]) > e; ) {\n const n = jh(t, e, Lh(r));\n i.push(n), t = n;\n }\n return i;\n}\nfunction Nh(r, e) {\n r = [...r, r[0]];\n let t = [];\n for (let i = 0; i < r.length - 1; i++)\n t = t.concat(Oh([r[i], r[i + 1]], e));\n return t;\n}\nfunction Dh(r, e) {\n const t = [], i = ue(r);\n for (let n = i[0] + e, s = 0; n <= i[2]; s++, n += e)\n for (let o = i[1] + e, a = 0; o <= i[3]; a++, o += e)\n t.push([n, o]);\n return t;\n}\nfunction Fh(r) {\n return r && r.__esModule && Object.prototype.hasOwnProperty.call(r, \"default\") ? r.default : r;\n}\nvar Ks = { exports: {} }, eo = Gh, Gn = +(Math.pow(2, 27) + 1);\nfunction Gh(r, e, t) {\n var i = r * e, n = Gn * r, s = n - r, o = n - s, a = r - o, l = Gn * e, c = l - e, h = l - c, u = e - h, g = i - o * h, y = g - a * h, v = y - o * u, E = a * u - v;\n return t ? (t[0] = E, t[1] = i, t) : [E, i];\n}\nvar Bh = Wh;\nfunction Uh(r, e) {\n var t = r + e, i = t - r, n = t - i, s = e - i, o = r - n, a = o + s;\n return a ? [a, t] : [t];\n}\nfunction Wh(r, e) {\n var t = r.length | 0, i = e.length | 0;\n if (t === 1 && i === 1)\n return Uh(r[0], e[0]);\n var n = t + i, s = new Array(n), o = 0, a = 0, l = 0, c = Math.abs, h = r[a], u = c(h), g = e[l], y = c(g), v, E;\n u < y ? (E = h, a += 1, a < t && (h = r[a], u = c(h))) : (E = g, l += 1, l < i && (g = e[l], y = c(g))), a < t && u < y || l >= i ? (v = h, a += 1, a < t && (h = r[a], u = c(h))) : (v = g, l += 1, l < i && (g = e[l], y = c(g)));\n for (var P = v + E, w = P - v, S = E - w, f = S, p = P, b, R, A, T, d; a < t && l < i; )\n u < y ? (v = h, a += 1, a < t && (h = r[a], u = c(h))) : (v = g, l += 1, l < i && (g = e[l], y = c(g))), E = f, P = v + E, w = P - v, S = E - w, S && (s[o++] = S), b = p + P, R = b - p, A = b - R, T = P - R, d = p - A, f = d + T, p = b;\n for (; a < t; )\n v = h, E = f, P = v + E, w = P - v, S = E - w, S && (s[o++] = S), b = p + P, R = b - p, A = b - R, T = P - R, d = p - A, f = d + T, p = b, a += 1, a < t && (h = r[a]);\n for (; l < i; )\n v = g, E = f, P = v + E, w = P - v, S = E - w, S && (s[o++] = S), b = p + P, R = b - p, A = b - R, T = P - R, d = p - A, f = d + T, p = b, l += 1, l < i && (g = e[l]);\n return f && (s[o++] = f), p && (s[o++] = p), o || (s[o++] = 0), s.length = o, s;\n}\nvar Vh = zh;\nfunction zh(r, e, t) {\n var i = r + e, n = i - r, s = i - n, o = e - n, a = r - s;\n return t ? (t[0] = a + o, t[1] = i, t) : [a + o, i];\n}\nvar vi = eo, $h = Vh, qh = Zh;\nfunction Zh(r, e) {\n var t = r.length;\n if (t === 1) {\n var i = vi(r[0], e);\n return i[0] ? i : [i[1]];\n }\n var n = new Array(2 * t), s = [0.1, 0.1], o = [0.1, 0.1], a = 0;\n vi(r[0], e, s), s[0] && (n[a++] = s[0]);\n for (var l = 1; l < t; ++l) {\n vi(r[l], e, o);\n var c = s[1];\n $h(c, o[0], s), s[0] && (n[a++] = s[0]);\n var h = o[1], u = s[1], g = h + u, y = g - h, v = u - y;\n s[1] = g, v && (n[a++] = v);\n }\n return s[1] && (n[a++] = s[1]), a === 0 && (n[a++] = 0), n.length = a, n;\n}\nvar Xh = Yh;\nfunction Hh(r, e) {\n var t = r + e, i = t - r, n = t - i, s = e - i, o = r - n, a = o + s;\n return a ? [a, t] : [t];\n}\nfunction Yh(r, e) {\n var t = r.length | 0, i = e.length | 0;\n if (t === 1 && i === 1)\n return Hh(r[0], -e[0]);\n var n = t + i, s = new Array(n), o = 0, a = 0, l = 0, c = Math.abs, h = r[a], u = c(h), g = -e[l], y = c(g), v, E;\n u < y ? (E = h, a += 1, a < t && (h = r[a], u = c(h))) : (E = g, l += 1, l < i && (g = -e[l], y = c(g))), a < t && u < y || l >= i ? (v = h, a += 1, a < t && (h = r[a], u = c(h))) : (v = g, l += 1, l < i && (g = -e[l], y = c(g)));\n for (var P = v + E, w = P - v, S = E - w, f = S, p = P, b, R, A, T, d; a < t && l < i; )\n u < y ? (v = h, a += 1, a < t && (h = r[a], u = c(h))) : (v = g, l += 1, l < i && (g = -e[l], y = c(g))), E = f, P = v + E, w = P - v, S = E - w, S && (s[o++] = S), b = p + P, R = b - p, A = b - R, T = P - R, d = p - A, f = d + T, p = b;\n for (; a < t; )\n v = h, E = f, P = v + E, w = P - v, S = E - w, S && (s[o++] = S), b = p + P, R = b - p, A = b - R, T = P - R, d = p - A, f = d + T, p = b, a += 1, a < t && (h = r[a]);\n for (; l < i; )\n v = g, E = f, P = v + E, w = P - v, S = E - w, S && (s[o++] = S), b = p + P, R = b - p, A = b - R, T = P - R, d = p - A, f = d + T, p = b, l += 1, l < i && (g = -e[l]);\n return f && (s[o++] = f), p && (s[o++] = p), o || (s[o++] = 0), s.length = o, s;\n}\n(function(r) {\n var e = eo, t = Bh, i = qh, n = Xh, s = 5, o = 11102230246251565e-32, a = (3 + 16 * o) * o, l = (7 + 56 * o) * o;\n function c(f, p, b, R) {\n return function(T, d, x) {\n var _ = f(f(p(d[1], x[0]), p(-x[1], d[0])), f(p(T[1], d[0]), p(-d[1], T[0]))), M = f(p(T[1], x[0]), p(-x[1], T[0])), z = R(_, M);\n return z[z.length - 1];\n };\n }\n function h(f, p, b, R) {\n return function(T, d, x, _) {\n var M = f(f(b(f(p(x[1], _[0]), p(-_[1], x[0])), d[2]), f(b(f(p(d[1], _[0]), p(-_[1], d[0])), -x[2]), b(f(p(d[1], x[0]), p(-x[1], d[0])), _[2]))), f(b(f(p(d[1], _[0]), p(-_[1], d[0])), T[2]), f(b(f(p(T[1], _[0]), p(-_[1], T[0])), -d[2]), b(f(p(T[1], d[0]), p(-d[1], T[0])), _[2])))), z = f(f(b(f(p(x[1], _[0]), p(-_[1], x[0])), T[2]), f(b(f(p(T[1], _[0]), p(-_[1], T[0])), -x[2]), b(f(p(T[1], x[0]), p(-x[1], T[0])), _[2]))), f(b(f(p(d[1], x[0]), p(-x[1], d[0])), T[2]), f(b(f(p(T[1], x[0]), p(-x[1], T[0])), -d[2]), b(f(p(T[1], d[0]), p(-d[1], T[0])), x[2])))), H = R(M, z);\n return H[H.length - 1];\n };\n }\n function u(f, p, b, R) {\n return function(T, d, x, _, M) {\n var z = f(f(f(b(f(b(f(p(_[1], M[0]), p(-M[1], _[0])), x[2]), f(b(f(p(x[1], M[0]), p(-M[1], x[0])), -_[2]), b(f(p(x[1], _[0]), p(-_[1], x[0])), M[2]))), d[3]), f(b(f(b(f(p(_[1], M[0]), p(-M[1], _[0])), d[2]), f(b(f(p(d[1], M[0]), p(-M[1], d[0])), -_[2]), b(f(p(d[1], _[0]), p(-_[1], d[0])), M[2]))), -x[3]), b(f(b(f(p(x[1], M[0]), p(-M[1], x[0])), d[2]), f(b(f(p(d[1], M[0]), p(-M[1], d[0])), -x[2]), b(f(p(d[1], x[0]), p(-x[1], d[0])), M[2]))), _[3]))), f(b(f(b(f(p(x[1], _[0]), p(-_[1], x[0])), d[2]), f(b(f(p(d[1], _[0]), p(-_[1], d[0])), -x[2]), b(f(p(d[1], x[0]), p(-x[1], d[0])), _[2]))), -M[3]), f(b(f(b(f(p(_[1], M[0]), p(-M[1], _[0])), d[2]), f(b(f(p(d[1], M[0]), p(-M[1], d[0])), -_[2]), b(f(p(d[1], _[0]), p(-_[1], d[0])), M[2]))), T[3]), b(f(b(f(p(_[1], M[0]), p(-M[1], _[0])), T[2]), f(b(f(p(T[1], M[0]), p(-M[1], T[0])), -_[2]), b(f(p(T[1], _[0]), p(-_[1], T[0])), M[2]))), -d[3])))), f(f(b(f(b(f(p(d[1], M[0]), p(-M[1], d[0])), T[2]), f(b(f(p(T[1], M[0]), p(-M[1], T[0])), -d[2]), b(f(p(T[1], d[0]), p(-d[1], T[0])), M[2]))), _[3]), f(b(f(b(f(p(d[1], _[0]), p(-_[1], d[0])), T[2]), f(b(f(p(T[1], _[0]), p(-_[1], T[0])), -d[2]), b(f(p(T[1], d[0]), p(-d[1], T[0])), _[2]))), -M[3]), b(f(b(f(p(x[1], _[0]), p(-_[1], x[0])), d[2]), f(b(f(p(d[1], _[0]), p(-_[1], d[0])), -x[2]), b(f(p(d[1], x[0]), p(-x[1], d[0])), _[2]))), T[3]))), f(b(f(b(f(p(x[1], _[0]), p(-_[1], x[0])), T[2]), f(b(f(p(T[1], _[0]), p(-_[1], T[0])), -x[2]), b(f(p(T[1], x[0]), p(-x[1], T[0])), _[2]))), -d[3]), f(b(f(b(f(p(d[1], _[0]), p(-_[1], d[0])), T[2]), f(b(f(p(T[1], _[0]), p(-_[1], T[0])), -d[2]), b(f(p(T[1], d[0]), p(-d[1], T[0])), _[2]))), x[3]), b(f(b(f(p(d[1], x[0]), p(-x[1], d[0])), T[2]), f(b(f(p(T[1], x[0]), p(-x[1], T[0])), -d[2]), b(f(p(T[1], d[0]), p(-d[1], T[0])), x[2]))), -_[3]))))), H = f(f(f(b(f(b(f(p(_[1], M[0]), p(-M[1], _[0])), x[2]), f(b(f(p(x[1], M[0]), p(-M[1], x[0])), -_[2]), b(f(p(x[1], _[0]), p(-_[1], x[0])), M[2]))), T[3]), b(f(b(f(p(_[1], M[0]), p(-M[1], _[0])), T[2]), f(b(f(p(T[1], M[0]), p(-M[1], T[0])), -_[2]), b(f(p(T[1], _[0]), p(-_[1], T[0])), M[2]))), -x[3])), f(b(f(b(f(p(x[1], M[0]), p(-M[1], x[0])), T[2]), f(b(f(p(T[1], M[0]), p(-M[1], T[0])), -x[2]), b(f(p(T[1], x[0]), p(-x[1], T[0])), M[2]))), _[3]), b(f(b(f(p(x[1], _[0]), p(-_[1], x[0])), T[2]), f(b(f(p(T[1], _[0]), p(-_[1], T[0])), -x[2]), b(f(p(T[1], x[0]), p(-x[1], T[0])), _[2]))), -M[3]))), f(f(b(f(b(f(p(x[1], M[0]), p(-M[1], x[0])), d[2]), f(b(f(p(d[1], M[0]), p(-M[1], d[0])), -x[2]), b(f(p(d[1], x[0]), p(-x[1], d[0])), M[2]))), T[3]), b(f(b(f(p(x[1], M[0]), p(-M[1], x[0])), T[2]), f(b(f(p(T[1], M[0]), p(-M[1], T[0])), -x[2]), b(f(p(T[1], x[0]), p(-x[1], T[0])), M[2]))), -d[3])), f(b(f(b(f(p(d[1], M[0]), p(-M[1], d[0])), T[2]), f(b(f(p(T[1], M[0]), p(-M[1], T[0])), -d[2]), b(f(p(T[1], d[0]), p(-d[1], T[0])), M[2]))), x[3]), b(f(b(f(p(d[1], x[0]), p(-x[1], d[0])), T[2]), f(b(f(p(T[1], x[0]), p(-x[1], T[0])), -d[2]), b(f(p(T[1], d[0]), p(-d[1], T[0])), x[2]))), -M[3])))), Z = R(z, H);\n return Z[Z.length - 1];\n };\n }\n function g(f) {\n var p = f === 3 ? c : f === 4 ? h : u;\n return p(t, e, i, n);\n }\n var y = g(3), v = g(4), E = [\n function() {\n return 0;\n },\n function() {\n return 0;\n },\n function(p, b) {\n return b[0] - p[0];\n },\n function(p, b, R) {\n var A = (p[1] - R[1]) * (b[0] - R[0]), T = (p[0] - R[0]) * (b[1] - R[1]), d = A - T, x;\n if (A > 0) {\n if (T <= 0)\n return d;\n x = A + T;\n } else if (A < 0) {\n if (T >= 0)\n return d;\n x = -(A + T);\n } else\n return d;\n var _ = a * x;\n return d >= _ || d <= -_ ? d : y(p, b, R);\n },\n function(p, b, R, A) {\n var T = p[0] - A[0], d = b[0] - A[0], x = R[0] - A[0], _ = p[1] - A[1], M = b[1] - A[1], z = R[1] - A[1], H = p[2] - A[2], Z = b[2] - A[2], W = R[2] - A[2], ne = d * z, ce = x * M, de = x * _, K = T * z, Me = T * M, G = d * _, re = H * (ne - ce) + Z * (de - K) + W * (Me - G), pe = (Math.abs(ne) + Math.abs(ce)) * Math.abs(H) + (Math.abs(de) + Math.abs(K)) * Math.abs(Z) + (Math.abs(Me) + Math.abs(G)) * Math.abs(W), he = l * pe;\n return re > he || -re > he ? re : v(p, b, R, A);\n }\n ];\n function P(f) {\n var p = E[f.length];\n return p || (p = E[f.length] = g(f.length)), p.apply(void 0, f);\n }\n function w(f, p, b, R, A, T, d) {\n return function(_, M, z, H, Z) {\n switch (arguments.length) {\n case 0:\n case 1:\n return 0;\n case 2:\n return R(_, M);\n case 3:\n return A(_, M, z);\n case 4:\n return T(_, M, z, H);\n case 5:\n return d(_, M, z, H, Z);\n }\n for (var W = new Array(arguments.length), ne = 0; ne < arguments.length; ++ne)\n W[ne] = arguments[ne];\n return f(W);\n };\n }\n function S() {\n for (; E.length <= s; )\n E.push(g(E.length));\n r.exports = w.apply(void 0, [P].concat(E));\n for (var f = 0; f <= s; ++f)\n r.exports[f] = E[f];\n }\n S();\n})(Ks);\nvar Jh = Ks.exports, Qh = Kh, Mr = Jh;\nfunction Kh(r, e) {\n for (var t = e[0], i = e[1], n = r.length, s = 1, o = n, a = 0, l = n - 1; a < o; l = a++) {\n var c = r[a], h = r[l], u = c[1], g = h[1];\n if (g < u) {\n if (g < i && i < u) {\n var y = Mr(c, h, e);\n if (y === 0)\n return 0;\n s ^= 0 < y | 0;\n } else if (i === u) {\n var v = r[(a + 1) % n], E = v[1];\n if (u < E) {\n var y = Mr(c, h, e);\n if (y === 0)\n return 0;\n s ^= 0 < y | 0;\n }\n }\n } else if (u < g) {\n if (u < i && i < g) {\n var y = Mr(c, h, e);\n if (y === 0)\n return 0;\n s ^= y < 0 | 0;\n } else if (i === u) {\n var v = r[(a + 1) % n], E = v[1];\n if (E < u) {\n var y = Mr(c, h, e);\n if (y === 0)\n return 0;\n s ^= y < 0 | 0;\n }\n }\n } else if (i === u) {\n var P = Math.min(c[0], h[0]), w = Math.max(c[0], h[0]);\n if (a === 0) {\n for (; l > 0; ) {\n var S = (l + n - 1) % n, f = r[S];\n if (f[1] !== i)\n break;\n var p = f[0];\n P = Math.min(P, p), w = Math.max(w, p), l = S;\n }\n if (l === 0)\n return P <= t && t <= w ? 0 : 1;\n o = l + 1;\n }\n for (var b = r[(l + n - 1) % n][1]; a + 1 < o; ) {\n var f = r[a + 1];\n if (f[1] !== i)\n break;\n var p = f[0];\n P = Math.min(P, p), w = Math.max(w, p), a += 1;\n }\n if (P <= t && t <= w)\n return 0;\n var R = r[(a + 1) % n][1];\n t < P && b < i != R < i && (s ^= 1);\n }\n }\n return 2 * s - 1;\n}\nconst eu = /* @__PURE__ */ Fh(Qh);\nvar to = {};\nconst tu = \"1.5.0\", ru = {\n version: tu\n};\nfunction ro(r) {\n return \"(\" + r.x + \";\" + r.y + \")\";\n}\nfunction iu(r) {\n var e = r.toString();\n return e === \"[object Object]\" ? ro(r) : e;\n}\nfunction nu(r, e) {\n return r.y === e.y ? r.x - e.x : r.y - e.y;\n}\nfunction su(r, e) {\n return r.x === e.x && r.y === e.y;\n}\nvar Ji = {\n toString: iu,\n toStringBase: ro,\n compare: nu,\n equals: su\n}, ou = Ji, zr = function(r, e) {\n this.name = \"PointError\", this.points = e = e || [], this.message = r || \"Invalid Points!\";\n for (var t = 0; t < e.length; t++)\n this.message += \" \" + ou.toString(e[t]);\n};\nzr.prototype = new Error();\nzr.prototype.constructor = zr;\nvar Qi = zr, rr = Ji, J = function(r, e) {\n this.x = +r || 0, this.y = +e || 0, this._p2t_edge_list = null;\n};\nJ.prototype.toString = function() {\n return rr.toStringBase(this);\n};\nJ.prototype.toJSON = function() {\n return { x: this.x, y: this.y };\n};\nJ.prototype.clone = function() {\n return new J(this.x, this.y);\n};\nJ.prototype.set_zero = function() {\n return this.x = 0, this.y = 0, this;\n};\nJ.prototype.set = function(r, e) {\n return this.x = +r || 0, this.y = +e || 0, this;\n};\nJ.prototype.negate = function() {\n return this.x = -this.x, this.y = -this.y, this;\n};\nJ.prototype.add = function(r) {\n return this.x += r.x, this.y += r.y, this;\n};\nJ.prototype.sub = function(r) {\n return this.x -= r.x, this.y -= r.y, this;\n};\nJ.prototype.mul = function(r) {\n return this.x *= r, this.y *= r, this;\n};\nJ.prototype.length = function() {\n return Math.sqrt(this.x * this.x + this.y * this.y);\n};\nJ.prototype.normalize = function() {\n var r = this.length();\n return this.x /= r, this.y /= r, r;\n};\nJ.prototype.equals = function(r) {\n return this.x === r.x && this.y === r.y;\n};\nJ.negate = function(r) {\n return new J(-r.x, -r.y);\n};\nJ.add = function(r, e) {\n return new J(r.x + e.x, r.y + e.y);\n};\nJ.sub = function(r, e) {\n return new J(r.x - e.x, r.y - e.y);\n};\nJ.mul = function(r, e) {\n return new J(r * e.x, r * e.y);\n};\nJ.cross = function(r, e) {\n return typeof r == \"number\" ? typeof e == \"number\" ? r * e : new J(-r * e.y, r * e.x) : typeof e == \"number\" ? new J(e * r.y, -e * r.x) : r.x * e.y - r.y * e.x;\n};\nJ.toString = rr.toString;\nJ.compare = rr.compare;\nJ.cmp = rr.compare;\nJ.equals = rr.equals;\nJ.dot = function(r, e) {\n return r.x * e.x + r.y * e.y;\n};\nvar io = J, au = Ji, $ = function(r, e, t) {\n this.points_ = [r, e, t], this.neighbors_ = [null, null, null], this.interior_ = !1, this.constrained_edge = [!1, !1, !1], this.delaunay_edge = [!1, !1, !1];\n}, yi = au.toString;\n$.prototype.toString = function() {\n return \"[\" + yi(this.points_[0]) + yi(this.points_[1]) + yi(this.points_[2]) + \"]\";\n};\n$.prototype.getPoint = function(r) {\n return this.points_[r];\n};\n$.prototype.GetPoint = $.prototype.getPoint;\n$.prototype.getPoints = function() {\n return this.points_;\n};\n$.prototype.getNeighbor = function(r) {\n return this.neighbors_[r];\n};\n$.prototype.containsPoint = function(r) {\n var e = this.points_;\n return r === e[0] || r === e[1] || r === e[2];\n};\n$.prototype.containsEdge = function(r) {\n return this.containsPoint(r.p) && this.containsPoint(r.q);\n};\n$.prototype.containsPoints = function(r, e) {\n return this.containsPoint(r) && this.containsPoint(e);\n};\n$.prototype.isInterior = function() {\n return this.interior_;\n};\n$.prototype.setInterior = function(r) {\n return this.interior_ = r, this;\n};\n$.prototype.markNeighborPointers = function(r, e, t) {\n var i = this.points_;\n if (r === i[2] && e === i[1] || r === i[1] && e === i[2])\n this.neighbors_[0] = t;\n else if (r === i[0] && e === i[2] || r === i[2] && e === i[0])\n this.neighbors_[1] = t;\n else if (r === i[0] && e === i[1] || r === i[1] && e === i[0])\n this.neighbors_[2] = t;\n else\n throw new Error(\"poly2tri Invalid Triangle.markNeighborPointers() call\");\n};\n$.prototype.markNeighbor = function(r) {\n var e = this.points_;\n r.containsPoints(e[1], e[2]) ? (this.neighbors_[0] = r, r.markNeighborPointers(e[1], e[2], this)) : r.containsPoints(e[0], e[2]) ? (this.neighbors_[1] = r, r.markNeighborPointers(e[0], e[2], this)) : r.containsPoints(e[0], e[1]) && (this.neighbors_[2] = r, r.markNeighborPointers(e[0], e[1], this));\n};\n$.prototype.clearNeighbors = function() {\n this.neighbors_[0] = null, this.neighbors_[1] = null, this.neighbors_[2] = null;\n};\n$.prototype.clearDelaunayEdges = function() {\n this.delaunay_edge[0] = !1, this.delaunay_edge[1] = !1, this.delaunay_edge[2] = !1;\n};\n$.prototype.pointCW = function(r) {\n var e = this.points_;\n return r === e[0] ? e[2] : r === e[1] ? e[0] : r === e[2] ? e[1] : null;\n};\n$.prototype.pointCCW = function(r) {\n var e = this.points_;\n return r === e[0] ? e[1] : r === e[1] ? e[2] : r === e[2] ? e[0] : null;\n};\n$.prototype.neighborCW = function(r) {\n return r === this.points_[0] ? this.neighbors_[1] : r === this.points_[1] ? this.neighbors_[2] : this.neighbors_[0];\n};\n$.prototype.neighborCCW = function(r) {\n return r === this.points_[0] ? this.neighbors_[2] : r === this.points_[1] ? this.neighbors_[0] : this.neighbors_[1];\n};\n$.prototype.getConstrainedEdgeCW = function(r) {\n return r === this.points_[0] ? this.constrained_edge[1] : r === this.points_[1] ? this.constrained_edge[2] : this.constrained_edge[0];\n};\n$.prototype.getConstrainedEdgeCCW = function(r) {\n return r === this.points_[0] ? this.constrained_edge[2] : r === this.points_[1] ? this.constrained_edge[0] : this.constrained_edge[1];\n};\n$.prototype.getConstrainedEdgeAcross = function(r) {\n return r === this.points_[0] ? this.constrained_edge[0] : r === this.points_[1] ? this.constrained_edge[1] : this.constrained_edge[2];\n};\n$.prototype.setConstrainedEdgeCW = function(r, e) {\n r === this.points_[0] ? this.constrained_edge[1] = e : r === this.points_[1] ? this.constrained_edge[2] = e : this.constrained_edge[0] = e;\n};\n$.prototype.setConstrainedEdgeCCW = function(r, e) {\n r === this.points_[0] ? this.constrained_edge[2] = e : r === this.points_[1] ? this.constrained_edge[0] = e : this.constrained_edge[1] = e;\n};\n$.prototype.getDelaunayEdgeCW = function(r) {\n return r === this.points_[0] ? this.delaunay_edge[1] : r === this.points_[1] ? this.delaunay_edge[2] : this.delaunay_edge[0];\n};\n$.prototype.getDelaunayEdgeCCW = function(r) {\n return r === this.points_[0] ? this.delaunay_edge[2] : r === this.points_[1] ? this.delaunay_edge[0] : this.delaunay_edge[1];\n};\n$.prototype.setDelaunayEdgeCW = function(r, e) {\n r === this.points_[0] ? this.delaunay_edge[1] = e : r === this.points_[1] ? this.delaunay_edge[2] = e : this.delaunay_edge[0] = e;\n};\n$.prototype.setDelaunayEdgeCCW = function(r, e) {\n r === this.points_[0] ? this.delaunay_edge[2] = e : r === this.points_[1] ? this.delaunay_edge[0] = e : this.delaunay_edge[1] = e;\n};\n$.prototype.neighborAcross = function(r) {\n return r === this.points_[0] ? this.neighbors_[0] : r === this.points_[1] ? this.neighbors_[1] : this.neighbors_[2];\n};\n$.prototype.oppositePoint = function(r, e) {\n var t = r.pointCW(e);\n return this.pointCW(t);\n};\n$.prototype.legalize = function(r, e) {\n var t = this.points_;\n if (r === t[0])\n t[1] = t[0], t[0] = t[2], t[2] = e;\n else if (r === t[1])\n t[2] = t[1], t[1] = t[0], t[0] = e;\n else if (r === t[2])\n t[0] = t[2], t[2] = t[1], t[1] = e;\n else\n throw new Error(\"poly2tri Invalid Triangle.legalize() call\");\n};\n$.prototype.index = function(r) {\n var e = this.points_;\n if (r === e[0])\n return 0;\n if (r === e[1])\n return 1;\n if (r === e[2])\n return 2;\n throw new Error(\"poly2tri Invalid Triangle.index() call\");\n};\n$.prototype.edgeIndex = function(r, e) {\n var t = this.points_;\n if (r === t[0]) {\n if (e === t[1])\n return 2;\n if (e === t[2])\n return 1;\n } else if (r === t[1]) {\n if (e === t[2])\n return 0;\n if (e === t[0])\n return 2;\n } else if (r === t[2]) {\n if (e === t[0])\n return 1;\n if (e === t[1])\n return 0;\n }\n return -1;\n};\n$.prototype.markConstrainedEdgeByIndex = function(r) {\n this.constrained_edge[r] = !0;\n};\n$.prototype.markConstrainedEdgeByEdge = function(r) {\n this.markConstrainedEdgeByPoints(r.p, r.q);\n};\n$.prototype.markConstrainedEdgeByPoints = function(r, e) {\n var t = this.points_;\n e === t[0] && r === t[1] || e === t[1] && r === t[0] ? this.constrained_edge[2] = !0 : e === t[0] && r === t[2] || e === t[2] && r === t[0] ? this.constrained_edge[1] = !0 : (e === t[1] && r === t[2] || e === t[2] && r === t[1]) && (this.constrained_edge[0] = !0);\n};\nvar Ki = $, en = {};\nfunction lu(r, e) {\n if (!r)\n throw new Error(e || \"Assert Failed\");\n}\nvar cu = lu, tn = { exports: {} }, hu = function(r, e) {\n this.point = r, this.triangle = e || null, this.next = null, this.prev = null, this.value = r.x;\n}, Oe = function(r, e) {\n this.head_ = r, this.tail_ = e, this.search_node_ = r;\n};\nOe.prototype.head = function() {\n return this.head_;\n};\nOe.prototype.setHead = function(r) {\n this.head_ = r;\n};\nOe.prototype.tail = function() {\n return this.tail_;\n};\nOe.prototype.setTail = function(r) {\n this.tail_ = r;\n};\nOe.prototype.search = function() {\n return this.search_node_;\n};\nOe.prototype.setSearch = function(r) {\n this.search_node_ = r;\n};\nOe.prototype.findSearchNode = function() {\n return this.search_node_;\n};\nOe.prototype.locateNode = function(r) {\n var e = this.search_node_;\n if (r < e.value) {\n for (; e = e.prev; )\n if (r >= e.value)\n return this.search_node_ = e, e;\n } else\n for (; e = e.next; )\n if (r < e.value)\n return this.search_node_ = e.prev, e.prev;\n return null;\n};\nOe.prototype.locatePoint = function(r) {\n var e = r.x, t = this.findSearchNode(e), i = t.point.x;\n if (e === i) {\n if (r !== t.point)\n if (r === t.prev.point)\n t = t.prev;\n else if (r === t.next.point)\n t = t.next;\n else\n throw new Error(\"poly2tri Invalid AdvancingFront.locatePoint() call\");\n } else if (e < i)\n for (; (t = t.prev) && r !== t.point; )\n ;\n else\n for (; (t = t.next) && r !== t.point; )\n ;\n return t && (this.search_node_ = t), t;\n};\ntn.exports = Oe;\ntn.exports.Node = hu;\nvar no = tn.exports, Pt = {}, Kt = 1e-12;\nPt.EPSILON = Kt;\nvar Rr = {\n CW: 1,\n CCW: -1,\n COLLINEAR: 0\n};\nPt.Orientation = Rr;\nfunction uu(r, e, t) {\n var i = (r.x - t.x) * (e.y - t.y), n = (r.y - t.y) * (e.x - t.x), s = i - n;\n return s > -Kt && s < Kt ? Rr.COLLINEAR : s > 0 ? Rr.CCW : Rr.CW;\n}\nPt.orient2d = uu;\nfunction fu(r, e, t, i) {\n var n = (r.x - e.x) * (i.y - e.y) - (i.x - e.x) * (r.y - e.y);\n if (n >= -Kt)\n return !1;\n var s = (r.x - t.x) * (i.y - t.y) - (i.x - t.x) * (r.y - t.y);\n return !(s <= Kt);\n}\nPt.inScanArea = fu;\nfunction du(r, e, t) {\n var i = e.x - r.x, n = e.y - r.y, s = t.x - r.x, o = t.y - r.y;\n return i * s + n * o < 0;\n}\nPt.isAngleObtuse = du;\nvar rn = cu, $r = Qi, so = Ki, pu = no.Node, ir = Pt, gu = ir.EPSILON, ie = ir.Orientation, le = ir.orient2d, oo = ir.inScanArea, Bn = ir.isAngleObtuse;\nfunction mu(r) {\n r.initTriangulation(), r.createAdvancingFront(), vu(r), yu(r);\n}\nfunction vu(r) {\n var e, t = r.pointCount();\n for (e = 1; e < t; ++e)\n for (var i = r.getPoint(e), n = wu(r, i), s = i._p2t_edge_list, o = 0; s && o < s.length; ++o)\n xu(r, s[o], n);\n}\nfunction yu(r) {\n for (var e = r.front().head().next.triangle, t = r.front().head().next.point; !e.getConstrainedEdgeCW(t); )\n e = e.neighborCCW(t);\n r.meshClean(e);\n}\nfunction wu(r, e) {\n var t = r.locateNode(e), i = bu(r, e, t);\n return e.x <= t.point.x + gu && _t(r, t), Mu(r, i), i;\n}\nfunction xu(r, e, t) {\n r.edge_event.constrained_edge = e, r.edge_event.right = e.p.x > e.q.x, !ao(t.triangle, e.p, e.q) && (Su(r, e, t), nn(r, e.p, e.q, t.triangle, e.q));\n}\nfunction nn(r, e, t, i, n) {\n if (!ao(i, e, t)) {\n var s = i.pointCCW(n), o = le(t, s, e);\n if (o === ie.COLLINEAR)\n throw new $r(\"poly2tri EdgeEvent: Collinear not supported!\", [t, s, e]);\n var a = i.pointCW(n), l = le(t, a, e);\n if (l === ie.COLLINEAR)\n throw new $r(\"poly2tri EdgeEvent: Collinear not supported!\", [t, a, e]);\n o === l ? (o === ie.CW ? i = i.neighborCCW(n) : i = i.neighborCW(n), nn(r, e, t, i, n)) : an(r, e, t, i, n);\n }\n}\nfunction ao(r, e, t) {\n var i = r.edgeIndex(e, t);\n if (i !== -1) {\n r.markConstrainedEdgeByIndex(i);\n var n = r.getNeighbor(i);\n return n && n.markConstrainedEdgeByPoints(e, t), !0;\n }\n return !1;\n}\nfunction bu(r, e, t) {\n var i = new so(e, t.point, t.next.point);\n i.markNeighbor(t.triangle), r.addToMap(i);\n var n = new pu(e);\n return n.next = t.next, n.prev = t, t.next.prev = n, t.next = n, tt(r, i) || r.mapTriangleToNodes(i), n;\n}\nfunction _t(r, e) {\n var t = new so(e.prev.point, e.point, e.next.point);\n t.markNeighbor(e.prev.triangle), t.markNeighbor(e.triangle), r.addToMap(t), e.prev.next = e.next, e.next.prev = e.prev, tt(r, t) || r.mapTriangleToNodes(t);\n}\nfunction Mu(r, e) {\n for (var t = e.next; t.next && !Bn(t.point, t.next.point, t.prev.point); )\n _t(r, t), t = t.next;\n for (t = e.prev; t.prev && !Bn(t.point, t.next.point, t.prev.point); )\n _t(r, t), t = t.prev;\n e.next && e.next.next && Tu(e) && Eu(r, e);\n}\nfunction Tu(r) {\n var e = r.point.x - r.next.next.point.x, t = r.point.y - r.next.next.point.y;\n return rn(t >= 0, \"unordered y\"), e >= 0 || Math.abs(e) < t;\n}\nfunction tt(r, e) {\n for (var t = 0; t < 3; ++t)\n if (!e.delaunay_edge[t]) {\n var i = e.getNeighbor(t);\n if (i) {\n var n = e.getPoint(t), s = i.oppositePoint(e, n), o = i.index(s);\n if (i.constrained_edge[o] || i.delaunay_edge[o]) {\n e.constrained_edge[t] = i.constrained_edge[o];\n continue;\n }\n var a = _u(n, e.pointCCW(n), e.pointCW(n), s);\n if (a) {\n e.delaunay_edge[t] = !0, i.delaunay_edge[o] = !0, lo(e, n, i, s);\n var l = !tt(r, e);\n return l && r.mapTriangleToNodes(e), l = !tt(r, i), l && r.mapTriangleToNodes(i), e.delaunay_edge[t] = !1, i.delaunay_edge[o] = !1, !0;\n }\n }\n }\n return !1;\n}\nfunction _u(r, e, t, i) {\n var n = r.x - i.x, s = r.y - i.y, o = e.x - i.x, a = e.y - i.y, l = n * a, c = o * s, h = l - c;\n if (h <= 0)\n return !1;\n var u = t.x - i.x, g = t.y - i.y, y = u * s, v = n * g, E = y - v;\n if (E <= 0)\n return !1;\n var P = o * g, w = u * a, S = n * n + s * s, f = o * o + a * a, p = u * u + g * g, b = S * (P - w) + f * E + p * h;\n return b > 0;\n}\nfunction lo(r, e, t, i) {\n var n, s, o, a;\n n = r.neighborCCW(e), s = r.neighborCW(e), o = t.neighborCCW(i), a = t.neighborCW(i);\n var l, c, h, u;\n l = r.getConstrainedEdgeCCW(e), c = r.getConstrainedEdgeCW(e), h = t.getConstrainedEdgeCCW(i), u = t.getConstrainedEdgeCW(i);\n var g, y, v, E;\n g = r.getDelaunayEdgeCCW(e), y = r.getDelaunayEdgeCW(e), v = t.getDelaunayEdgeCCW(i), E = t.getDelaunayEdgeCW(i), r.legalize(e, i), t.legalize(i, e), t.setDelaunayEdgeCCW(e, g), r.setDelaunayEdgeCW(e, y), r.setDelaunayEdgeCCW(i, v), t.setDelaunayEdgeCW(i, E), t.setConstrainedEdgeCCW(e, l), r.setConstrainedEdgeCW(e, c), r.setConstrainedEdgeCCW(i, h), t.setConstrainedEdgeCW(i, u), r.clearNeighbors(), t.clearNeighbors(), n && t.markNeighbor(n), s && r.markNeighbor(s), o && r.markNeighbor(o), a && t.markNeighbor(a), r.markNeighbor(t);\n}\nfunction Eu(r, e) {\n for (le(e.point, e.next.point, e.next.next.point) === ie.CCW ? r.basin.left_node = e.next.next : r.basin.left_node = e.next, r.basin.bottom_node = r.basin.left_node; r.basin.bottom_node.next && r.basin.bottom_node.point.y >= r.basin.bottom_node.next.point.y; )\n r.basin.bottom_node = r.basin.bottom_node.next;\n if (r.basin.bottom_node !== r.basin.left_node) {\n for (r.basin.right_node = r.basin.bottom_node; r.basin.right_node.next && r.basin.right_node.point.y < r.basin.right_node.next.point.y; )\n r.basin.right_node = r.basin.right_node.next;\n r.basin.right_node !== r.basin.bottom_node && (r.basin.width = r.basin.right_node.point.x - r.basin.left_node.point.x, r.basin.left_highest = r.basin.left_node.point.y > r.basin.right_node.point.y, co(r, r.basin.bottom_node));\n }\n}\nfunction co(r, e) {\n if (!Pu(r, e)) {\n _t(r, e);\n var t;\n if (!(e.prev === r.basin.left_node && e.next === r.basin.right_node)) {\n if (e.prev === r.basin.left_node) {\n if (t = le(e.point, e.next.point, e.next.next.point), t === ie.CW)\n return;\n e = e.next;\n } else if (e.next === r.basin.right_node) {\n if (t = le(e.point, e.prev.point, e.prev.prev.point), t === ie.CCW)\n return;\n e = e.prev;\n } else\n e.prev.point.y < e.next.point.y ? e = e.prev : e = e.next;\n co(r, e);\n }\n }\n}\nfunction Pu(r, e) {\n var t;\n return r.basin.left_highest ? t = r.basin.left_node.point.y - e.point.y : t = r.basin.right_node.point.y - e.point.y, r.basin.width > t;\n}\nfunction Su(r, e, t) {\n r.edge_event.right ? Ru(r, e, t) : Iu(r, e, t);\n}\nfunction Ru(r, e, t) {\n for (; t.next.point.x < e.p.x; )\n le(e.q, t.next.point, e.p) === ie.CCW ? ho(r, e, t) : t = t.next;\n}\nfunction ho(r, e, t) {\n t.point.x < e.p.x && (le(t.point, t.next.point, t.next.next.point) === ie.CCW ? sn(r, e, t) : (uo(r, e, t), ho(r, e, t)));\n}\nfunction sn(r, e, t) {\n _t(r, t.next), t.next.point !== e.p && le(e.q, t.next.point, e.p) === ie.CCW && le(t.point, t.next.point, t.next.next.point) === ie.CCW && sn(r, e, t);\n}\nfunction uo(r, e, t) {\n le(t.next.point, t.next.next.point, t.next.next.next.point) === ie.CCW ? sn(r, e, t.next) : le(e.q, t.next.next.point, e.p) === ie.CCW && uo(r, e, t.next);\n}\nfunction Iu(r, e, t) {\n for (; t.prev.point.x > e.p.x; )\n le(e.q, t.prev.point, e.p) === ie.CW ? fo(r, e, t) : t = t.prev;\n}\nfunction fo(r, e, t) {\n t.point.x > e.p.x && (le(t.point, t.prev.point, t.prev.prev.point) === ie.CW ? on(r, e, t) : (po(r, e, t), fo(r, e, t)));\n}\nfunction po(r, e, t) {\n le(t.prev.point, t.prev.prev.point, t.prev.prev.prev.point) === ie.CW ? on(r, e, t.prev) : le(e.q, t.prev.prev.point, e.p) === ie.CW && po(r, e, t.prev);\n}\nfunction on(r, e, t) {\n _t(r, t.prev), t.prev.point !== e.p && le(e.q, t.prev.point, e.p) === ie.CW && le(t.point, t.prev.point, t.prev.prev.point) === ie.CW && on(r, e, t);\n}\nfunction an(r, e, t, i, n) {\n var s = i.neighborAcross(n);\n rn(s, \"FLIP failed due to missing triangle!\");\n var o = s.oppositePoint(i, n);\n if (i.getConstrainedEdgeAcross(n)) {\n var a = i.index(n);\n throw new $r(\n \"poly2tri Intersecting Constraints\",\n [n, o, i.getPoint((a + 1) % 3), i.getPoint((a + 2) % 3)]\n );\n }\n if (oo(n, i.pointCCW(n), i.pointCW(n), o))\n if (lo(i, n, s, o), r.mapTriangleToNodes(i), r.mapTriangleToNodes(s), n === t && o === e)\n t === r.edge_event.constrained_edge.q && e === r.edge_event.constrained_edge.p && (i.markConstrainedEdgeByPoints(e, t), s.markConstrainedEdgeByPoints(e, t), tt(r, i), tt(r, s));\n else {\n var l = le(t, o, e);\n i = Au(r, l, i, s, n, o), an(r, e, t, i, n);\n }\n else {\n var c = go(e, t, s, o);\n mo(r, e, t, i, s, c), nn(r, e, t, i, n);\n }\n}\nfunction Au(r, e, t, i, n, s) {\n var o;\n return e === ie.CCW ? (o = i.edgeIndex(n, s), i.delaunay_edge[o] = !0, tt(r, i), i.clearDelaunayEdges(), t) : (o = t.edgeIndex(n, s), t.delaunay_edge[o] = !0, tt(r, t), t.clearDelaunayEdges(), i);\n}\nfunction go(r, e, t, i) {\n var n = le(e, i, r);\n if (n === ie.CW)\n return t.pointCCW(i);\n if (n === ie.CCW)\n return t.pointCW(i);\n throw new $r(\"poly2tri [Unsupported] nextFlipPoint: opposing point on constrained edge!\", [e, i, r]);\n}\nfunction mo(r, e, t, i, n, s) {\n var o = n.neighborAcross(s);\n rn(o, \"FLIP failed due to missing triangle\");\n var a = o.oppositePoint(n, s);\n if (oo(t, i.pointCCW(t), i.pointCW(t), a))\n an(r, t, a, o, a);\n else {\n var l = go(e, t, o, a);\n mo(r, e, t, i, o, l);\n }\n}\nen.triangulate = mu;\nvar Cu = Qi, Rt = io, ku = Ki, Lu = en, vo = no, wi = vo.Node, Un = 0.3, ju = function(r, e) {\n if (this.p = r, this.q = e, r.y > e.y)\n this.q = r, this.p = e;\n else if (r.y === e.y) {\n if (r.x > e.x)\n this.q = r, this.p = e;\n else if (r.x === e.x)\n throw new Cu(\"poly2tri Invalid Edge constructor: repeated points!\", [r]);\n }\n this.q._p2t_edge_list || (this.q._p2t_edge_list = []), this.q._p2t_edge_list.push(this);\n}, yo = function() {\n this.left_node = null, this.bottom_node = null, this.right_node = null, this.width = 0, this.left_highest = !1;\n};\nyo.prototype.clear = function() {\n this.left_node = null, this.bottom_node = null, this.right_node = null, this.width = 0, this.left_highest = !1;\n};\nvar Ou = function() {\n this.constrained_edge = null, this.right = !1;\n}, Y = function(r, e) {\n e = e || {}, this.triangles_ = [], this.map_ = [], this.points_ = e.cloneArrays ? r.slice(0) : r, this.edge_list = [], this.pmin_ = this.pmax_ = null, this.front_ = null, this.head_ = null, this.tail_ = null, this.af_head_ = null, this.af_middle_ = null, this.af_tail_ = null, this.basin = new yo(), this.edge_event = new Ou(), this.initEdges(this.points_);\n};\nY.prototype.addHole = function(r) {\n this.initEdges(r);\n var e, t = r.length;\n for (e = 0; e < t; e++)\n this.points_.push(r[e]);\n return this;\n};\nY.prototype.AddHole = Y.prototype.addHole;\nY.prototype.addHoles = function(r) {\n var e, t = r.length;\n for (e = 0; e < t; e++)\n this.initEdges(r[e]);\n return this.points_ = this.points_.concat.apply(this.points_, r), this;\n};\nY.prototype.addPoint = function(r) {\n return this.points_.push(r), this;\n};\nY.prototype.AddPoint = Y.prototype.addPoint;\nY.prototype.addPoints = function(r) {\n return this.points_ = this.points_.concat(r), this;\n};\nY.prototype.triangulate = function() {\n return Lu.triangulate(this), this;\n};\nY.prototype.getBoundingBox = function() {\n return { min: this.pmin_, max: this.pmax_ };\n};\nY.prototype.getTriangles = function() {\n return this.triangles_;\n};\nY.prototype.GetTriangles = Y.prototype.getTriangles;\nY.prototype.front = function() {\n return this.front_;\n};\nY.prototype.pointCount = function() {\n return this.points_.length;\n};\nY.prototype.head = function() {\n return this.head_;\n};\nY.prototype.setHead = function(r) {\n this.head_ = r;\n};\nY.prototype.tail = function() {\n return this.tail_;\n};\nY.prototype.setTail = function(r) {\n this.tail_ = r;\n};\nY.prototype.getMap = function() {\n return this.map_;\n};\nY.prototype.initTriangulation = function() {\n var r = this.points_[0].x, e = this.points_[0].x, t = this.points_[0].y, i = this.points_[0].y, n, s = this.points_.length;\n for (n = 1; n < s; n++) {\n var o = this.points_[n];\n o.x > r && (r = o.x), o.x < e && (e = o.x), o.y > t && (t = o.y), o.y < i && (i = o.y);\n }\n this.pmin_ = new Rt(e, i), this.pmax_ = new Rt(r, t);\n var a = Un * (r - e), l = Un * (t - i);\n this.head_ = new Rt(r + a, i - l), this.tail_ = new Rt(e - a, i - l), this.points_.sort(Rt.compare);\n};\nY.prototype.initEdges = function(r) {\n var e, t = r.length;\n for (e = 0; e < t; ++e)\n this.edge_list.push(new ju(r[e], r[(e + 1) % t]));\n};\nY.prototype.getPoint = function(r) {\n return this.points_[r];\n};\nY.prototype.addToMap = function(r) {\n this.map_.push(r);\n};\nY.prototype.locateNode = function(r) {\n return this.front_.locateNode(r.x);\n};\nY.prototype.createAdvancingFront = function() {\n var r, e, t, i = new ku(this.points_[0], this.tail_, this.head_);\n this.map_.push(i), r = new wi(i.getPoint(1), i), e = new wi(i.getPoint(0), i), t = new wi(i.getPoint(2)), this.front_ = new vo(r, t), r.next = e, e.next = t, e.prev = r, t.prev = e;\n};\nY.prototype.removeNode = function(r) {\n};\nY.prototype.mapTriangleToNodes = function(r) {\n for (var e = 0; e < 3; ++e)\n if (!r.getNeighbor(e)) {\n var t = this.front_.locatePoint(r.pointCW(r.getPoint(e)));\n t && (t.triangle = r);\n }\n};\nY.prototype.removeFromMap = function(r) {\n var e, t = this.map_, i = t.length;\n for (e = 0; e < i; e++)\n if (t[e] === r) {\n t.splice(e, 1);\n break;\n }\n};\nY.prototype.meshClean = function(r) {\n for (var e = [r], t, i; t = e.pop(); )\n if (!t.isInterior())\n for (t.setInterior(!0), this.triangles_.push(t), i = 0; i < 3; i++)\n t.constrained_edge[i] || e.push(t.getNeighbor(i));\n};\nvar Nu = Y;\n(function(r) {\n var e = globalThis.poly2tri;\n r.noConflict = function() {\n return globalThis.poly2tri = e, r;\n }, r.VERSION = ru.version, r.PointError = Qi, r.Point = io, r.Triangle = Ki, r.SweepContext = Nu;\n var t = en;\n r.triangulate = t.triangulate, r.sweep = { Triangulate: t.triangulate };\n})(to);\nfunction Du(r, e) {\n let t = 0;\n const i = new to.SweepContext(Nh(r, e).map((n) => ({ x: n[0], y: n[1], type: \"p\", item: t++ })));\n i.addPoints(Dh(r, e).filter((n) => eu(r, n) === -1).map((n) => ({\n x: n[0],\n y: n[1],\n type: \"g\",\n item: t++\n })));\n try {\n i.triangulate();\n } catch {\n throw new Error(\"A Point Error occured during resource mask triangulation. This is typically because the resource mask contains duplicate or collinear points, or is self-intersecting.\");\n }\n return i.getTriangles();\n}\nfunction Fu(r, e) {\n const t = Du(r, e).map((a) => a.getPoints().map((l) => l)), s = [...new Map(t.flat().map((a) => [a.item, a])).values()].sort((a, l) => a.item - l.item).map((a) => [a.x, a.y]);\n return {\n uniquePointsIndexTriangles: t.map((a) => a.map((l) => l.item)),\n uniquePoints: s\n };\n}\nconst Gu = 80, Bu = 10;\nfunction Uu() {\n return {};\n}\nclass Wu extends Ch {\n resourceTrianglePoints = [];\n resourceUniquePoints = [];\n trianglePointsUniquePointsIndex = [];\n triangulationByBestScaleFactor = /* @__PURE__ */ new Map();\n triangulateErrorCount = 0;\n projectedGeoPreviousTrianglePoints = [];\n projectedGeoTrianglePoints = [];\n projectedGeoUniquePoints = [];\n projectedGeoUniquePointsByBestScaleFactorAndTransformationType = /* @__PURE__ */ new Map();\n projectedGeoUniquePointsPartialDerivativeX = [];\n projectedGeoUniquePointsPartialDerivativeY = [];\n projectedGeoUniquePointsPartialDerivativeXByBestScaleFactorAndTransformationType = /* @__PURE__ */ new Map();\n projectedGeoUniquePointsPartialDerivativeYByBestScaleFactorAndTransformationType = /* @__PURE__ */ new Map();\n previousTrianglePointsDistortion = [];\n trianglePointsDistortion = [];\n uniquePointsDistortion = [];\n /**\n * Creates an instance of a TriangulatedWarpedMap.\n *\n * @constructor\n * @param {string} mapId - ID of the map\n * @param {GeoreferencedMap} georeferencedMap - Georeferenced map used to construct the WarpedMap\n * @param {WarpedMapOptions} [options] - Options\n */\n constructor(e, t, i) {\n i = {\n ...Uu(),\n ...i\n }, super(e, t, i);\n }\n /**\n * Update the resourceMask.\n *\n * @param {Ring} resourceMask\n */\n setResourceMask(e) {\n super.setResourceMask(e), this.triangulationByBestScaleFactor = /* @__PURE__ */ new Map(), this.projectedGeoUniquePointsByBestScaleFactorAndTransformationType = /* @__PURE__ */ new Map(), this.projectedGeoUniquePointsPartialDerivativeXByBestScaleFactorAndTransformationType = /* @__PURE__ */ new Map(), this.projectedGeoUniquePointsPartialDerivativeYByBestScaleFactorAndTransformationType = /* @__PURE__ */ new Map(), this.updateTriangulation();\n }\n /**\n * Set the bestScaleFactor for the current viewport\n *\n * @param {number} scaleFactor - scale factor\n * @returns {boolean}\n */\n setBestScaleFactor(e) {\n const t = super.setBestScaleFactor(e);\n return t && this.updateTriangulation(!0), t;\n }\n /**\n * Update the triangulation of the resourceMask, at the current bestScaleFactor. Use cache if available.\n *\n * @param {boolean} [previousIsNew] - whether the previous and new triangulation are the same - true by default, false during a transformation transition\n */\n updateTriangulation(e = !1) {\n const { trianglePointsUniquePointsIndex: t, resourceUniquePoints: i } = Er(\n this.triangulationByBestScaleFactor,\n this.bestScaleFactor,\n () => {\n const n = ya(this.resourceMask) * this.bestScaleFactor / Gu;\n try {\n const { uniquePointsIndexTriangles: s, uniquePoints: o } = Fu(this.resourceMask, n);\n return {\n trianglePointsUniquePointsIndex: s.flat(),\n resourceUniquePoints: o\n };\n } catch (s) {\n return this.triangulateErrorCount++, this.triangulateErrorCount <= Bu && (console.error(\n `Error computing triangulation for map ${this.mapId}.`,\n `Fix this map with Allmaps Editor: https://editor.allmaps.org/#/collection?url=${this.parsedImage?.uri}/info.json`\n ), this.triangulateErrorCount === 1 && console.error(s)), {\n trianglePointsUniquePointsIndex: this.trianglePointsUniquePointsIndex,\n resourceUniquePoints: this.resourceUniquePoints\n };\n }\n }\n );\n this.resourceTrianglePoints = t.map(\n (n) => i[n]\n ), this.resourceUniquePoints = i, this.trianglePointsUniquePointsIndex = t, this.updateProjectedGeoTrianglePoints(e);\n }\n /**\n * Update the (previous and new) points of the triangulated resourceMask, at the current bestScaleFactor, in projectedGeo coordinates. Use cache if available.\n *\n * @param {boolean} [previousIsNew=false]\n */\n updateProjectedGeoTrianglePoints(e = !1) {\n this.projectedGeoUniquePoints = fi(\n this.projectedGeoUniquePointsByBestScaleFactorAndTransformationType,\n this.bestScaleFactor,\n this.transformationType,\n () => this.resourceUniquePoints.map(\n (t) => this.projectedTransformer.transformToGeo(t)\n )\n ), this.projectedGeoTrianglePoints = this.trianglePointsUniquePointsIndex.map(\n (t) => this.projectedGeoUniquePoints[t]\n ), (e || !this.projectedGeoPreviousTrianglePoints.length) && (this.projectedGeoPreviousTrianglePoints = this.projectedGeoTrianglePoints), this.updateTrianglePointsDistortion(e);\n }\n /**\n * Update the (previous and new) distortion at the points of the triangulated resourceMask. Use cache if available.\n *\n * @param {boolean} [previousIsNew=false]\n */\n updateTrianglePointsDistortion(e = !1) {\n this.distortionMeasure && (this.projectedGeoUniquePointsPartialDerivativeX = fi(\n this.projectedGeoUniquePointsPartialDerivativeXByBestScaleFactorAndTransformationType,\n this.bestScaleFactor,\n this.transformationType,\n () => this.resourceUniquePoints.map(\n (t) => this.projectedTransformer.transformToGeo(t, {\n evaluationType: \"partialDerivativeX\"\n })\n )\n ), this.projectedGeoUniquePointsPartialDerivativeY = fi(\n this.projectedGeoUniquePointsPartialDerivativeYByBestScaleFactorAndTransformationType,\n this.bestScaleFactor,\n this.transformationType,\n () => this.resourceUniquePoints.map(\n (t) => this.projectedTransformer.transformToGeo(t, {\n evaluationType: \"partialDerivativeY\"\n })\n )\n )), this.uniquePointsDistortion = this.projectedGeoUniquePoints.map(\n (t, i) => Ih(\n this.projectedGeoUniquePointsPartialDerivativeX[i],\n this.projectedGeoUniquePointsPartialDerivativeY[i],\n this.distortionMeasure,\n this.getReferenceScale()\n )\n ), this.trianglePointsDistortion = this.trianglePointsUniquePointsIndex.map(\n (t) => this.uniquePointsDistortion[t]\n ), (e || !this.previousTrianglePointsDistortion.length) && (this.previousTrianglePointsDistortion = this.trianglePointsDistortion);\n }\n /**\n * Reset the previous points of the triangulated resourceMask in projectedGeo coordinates.\n */\n resetTrianglePoints() {\n this.projectedGeoPreviousTrianglePoints = this.projectedGeoTrianglePoints, this.previousTrianglePointsDistortion = this.trianglePointsDistortion;\n }\n /**\n * Mix the previous and new points of the triangulated resourceMask in projectedGeo coordinates\n *\n * @param {number} t\n */\n mixTrianglePoints(e) {\n this.projectedGeoPreviousTrianglePoints = this.projectedGeoTrianglePoints.map((t, i) => sa(\n t,\n this.projectedGeoPreviousTrianglePoints[i],\n e\n )), this.previousTrianglePointsDistortion = this.trianglePointsDistortion.map(\n (t, i) => na(\n t,\n this.previousTrianglePointsDistortion[i],\n e\n )\n );\n }\n}\nfunction Vu(r) {\n let e = 0, t = 0;\n for (const a of r)\n e += a.w * a.h, t = Math.max(t, a.w);\n r.sort((a, l) => l.h - a.h);\n const n = [{ x: 0, y: 0, w: Math.max(Math.ceil(Math.sqrt(e / 0.95)), t), h: 1 / 0 }];\n let s = 0, o = 0;\n for (const a of r)\n for (let l = n.length - 1; l >= 0; l--) {\n const c = n[l];\n if (!(a.w > c.w || a.h > c.h)) {\n if (a.x = c.x, a.y = c.y, o = Math.max(o, a.y + a.h), s = Math.max(s, a.x + a.w), a.w === c.w && a.h === c.h) {\n const h = n.pop();\n l < n.length && (n[l] = h);\n } else\n a.h === c.h ? (c.x += a.w, c.w -= a.w) : a.w === c.w ? (c.y += a.h, c.h -= a.h) : (n.push({\n x: c.x + a.w,\n y: c.y,\n w: c.w - a.w,\n h: a.h\n }), c.y += a.h, c.h -= a.h);\n break;\n }\n }\n return {\n w: s,\n // container width\n h: o,\n // container height\n fill: e / (s * o) || 0\n // space utilization\n };\n}\nvar zu = typeof globalThis == \"object\" && globalThis && globalThis.Object === Object && globalThis, $u = typeof self == \"object\" && self && self.Object === Object && self, wo = zu || $u || Function(\"return this\")(), qr = wo.Symbol, xo = Object.prototype, qu = xo.hasOwnProperty, Zu = xo.toString, It = qr ? qr.toStringTag : void 0;\nfunction Xu(r) {\n var e = qu.call(r, It), t = r[It];\n try {\n r[It] = void 0;\n var i = !0;\n } catch {\n }\n var n = Zu.call(r);\n return i && (e ? r[It] = t : delete r[It]), n;\n}\nvar Hu = Object.prototype, Yu = Hu.toString;\nfunction Ju(r) {\n return Yu.call(r);\n}\nvar Qu = \"[object Null]\", Ku = \"[object Undefined]\", Wn = qr ? qr.toStringTag : void 0;\nfunction ef(r) {\n return r == null ? r === void 0 ? Ku : Qu : Wn && Wn in Object(r) ? Xu(r) : Ju(r);\n}\nfunction tf(r) {\n return r != null && typeof r == \"object\";\n}\nvar rf = \"[object Symbol]\";\nfunction nf(r) {\n return typeof r == \"symbol\" || tf(r) && ef(r) == rf;\n}\nvar sf = /\\s/;\nfunction of(r) {\n for (var e = r.length; e-- && sf.test(r.charAt(e)); )\n ;\n return e;\n}\nvar af = /^\\s+/;\nfunction lf(r) {\n return r && r.slice(0, of(r) + 1).replace(af, \"\");\n}\nfunction Zr(r) {\n var e = typeof r;\n return r != null && (e == \"object\" || e == \"function\");\n}\nvar Vn = NaN, cf = /^[-+]0x[0-9a-f]+$/i, hf = /^0b[01]+$/i, uf = /^0o[0-7]+$/i, ff = parseInt;\nfunction zn(r) {\n if (typeof r == \"number\")\n return r;\n if (nf(r))\n return Vn;\n if (Zr(r)) {\n var e = typeof r.valueOf == \"function\" ? r.valueOf() : r;\n r = Zr(e) ? e + \"\" : e;\n }\n if (typeof r != \"string\")\n return r === 0 ? r : +r;\n r = lf(r);\n var t = hf.test(r);\n return t || uf.test(r) ? ff(r.slice(2), t ? 2 : 8) : cf.test(r) ? Vn : +r;\n}\nvar xi = function() {\n return wo.Date.now();\n}, df = \"Expected a function\", pf = Math.max, gf = Math.min;\nfunction mf(r, e, t) {\n var i, n, s, o, a, l, c = 0, h = !1, u = !1, g = !0;\n if (typeof r != \"function\")\n throw new TypeError(df);\n e = zn(e) || 0, Zr(t) && (h = !!t.leading, u = \"maxWait\" in t, s = u ? pf(zn(t.maxWait) || 0, e) : s, g = \"trailing\" in t ? !!t.trailing : g);\n function y(R) {\n var A = i, T = n;\n return i = n = void 0, c = R, o = r.apply(T, A), o;\n }\n function v(R) {\n return c = R, a = setTimeout(w, e), h ? y(R) : o;\n }\n function E(R) {\n var A = R - l, T = R - c, d = e - A;\n return u ? gf(d, s - T) : d;\n }\n function P(R) {\n var A = R - l, T = R - c;\n return l === void 0 || A >= e || A < 0 || u && T >= s;\n }\n function w() {\n var R = xi();\n if (P(R))\n return S(R);\n a = setTimeout(w, E(R));\n }\n function S(R) {\n return a = void 0, g && i ? y(R) : (i = n = void 0, o);\n }\n function f() {\n a !== void 0 && clearTimeout(a), c = 0, i = l = n = a = void 0;\n }\n function p() {\n return a === void 0 ? o : S(xi());\n }\n function b() {\n var R = xi(), A = P(R);\n if (i = arguments, n = this, l = R, A) {\n if (a === void 0)\n return v(l);\n if (u)\n return clearTimeout(a), a = setTimeout(w, e), y(l);\n }\n return a === void 0 && (a = setTimeout(w, e)), o;\n }\n return b.cancel = f, b.flush = p, b;\n}\nvar vf = \"Expected a function\";\nfunction Gi(r, e, t) {\n var i = !0, n = !0;\n if (typeof r != \"function\")\n throw new TypeError(vf);\n return Zr(t) && (i = \"leading\" in t ? !!t.leading : i, n = \"trailing\" in t ? !!t.trailing : n), mf(r, e, {\n leading: i,\n maxWait: e,\n trailing: n\n });\n}\nconst yf = 0.5;\nfunction bo(r, e) {\n return `${r}:${e}`;\n}\nfunction Mo(r) {\n return bo(\n r.mapId,\n r.tileUrl\n );\n}\nfunction bi(r) {\n return new Set(\n r.map((e) => Mo(e))\n );\n}\nfunction wf(r, e, t = yf) {\n let i = Number.POSITIVE_INFINITY, n = r.tileZoomLevels.at(-1);\n for (const s of r.tileZoomLevels) {\n const o = Math.abs(\n Math.log(s.scaleFactor) - Math.log(e + t)\n );\n o < i && (i = o, n = s);\n }\n return n;\n}\nfunction xf(r, e, t) {\n const i = bf(r, e), n = Mf(i), s = _f(n, t, e), o = wt(ue(r));\n return s.sort(\n (a, l) => $n(a, o) - $n(l, o)\n ), s;\n}\nfunction bf(r, e) {\n return r.map((t) => [\n t[0] / e.originalWidth,\n t[1] / e.originalHeight\n ]);\n}\nfunction Mf(r) {\n const e = {};\n for (let t = 0; t < r.length; t++) {\n const i = [r[t], r[(t + 1) % r.length]];\n Tf(i).forEach(([n, s]) => {\n e[n] || (e[n] = [Number.POSITIVE_INFINITY, Number.NEGATIVE_INFINITY]), s < e[n][0] && (e[n][0] = s), s > e[n][1] && (e[n][1] = s);\n });\n }\n return e;\n}\nfunction Tf([r, e]) {\n let t = Math.floor(r[0]), i = Math.floor(r[1]);\n const n = Math.floor(e[0]), s = Math.floor(e[1]), o = [[t, i]];\n if (t === n && i === s)\n return o;\n const a = Math.sign(e[0] - r[0]), l = Math.sign(e[1] - r[1]), c = Math.abs(r[0] - t - Math.max(0, a)), h = Math.abs(r[1] - i - Math.max(0, l)), u = Math.abs(r[0] - e[0]), g = Math.abs(r[1] - e[1]);\n let y = c / u, v = h / g;\n const E = 1 / u, P = 1 / g;\n for (; !(t === n && i === s); )\n y < v ? (y = y + E, t = t + a) : (v = v + P, i = i + l), o.push([t, i]);\n return o;\n}\nfunction _f(r, e, t) {\n const i = [];\n for (const n in r) {\n const s = parseInt(n);\n if (s < 0 || s >= t.columns)\n break;\n const o = Math.max(r[s][0], 0), a = Math.min(r[s][1], t.rows - 1);\n for (let l = o; l <= a; l++)\n i.push({\n column: s,\n row: l,\n tileZoomLevel: t,\n imageSize: [e.width, e.height]\n });\n }\n return i;\n}\nfunction Ef(r) {\n return (r.imageRequest.size?.height || 0) * (r.imageRequest.size?.width || 0) * 3;\n}\nfunction $n(r, e) {\n return we(Pf(r), e);\n}\nfunction Pf(r) {\n const e = To(r);\n return [(e[2] - e[0]) / 2 + e[0], (e[3] - e[1]) / 2 + e[1]];\n}\nfunction Sf(r) {\n const e = r.column * r.tileZoomLevel.originalWidth, t = r.row * r.tileZoomLevel.originalHeight;\n return [e, t];\n}\nfunction To(r) {\n const e = Sf(r), t = Math.min(\n e[0] + r.tileZoomLevel.originalWidth,\n r.imageSize[0]\n ), i = Math.min(\n e[1] + r.tileZoomLevel.originalHeight,\n r.imageSize[1]\n );\n return [\n e[0],\n e[1],\n t,\n i\n ];\n}\nfunction qn(r, e, t) {\n const i = r.createShader(e);\n if (i) {\n if (r.shaderSource(i, t), r.compileShader(i), r.getShaderParameter(i, r.COMPILE_STATUS))\n return i;\n {\n const n = r.getShaderInfoLog(i);\n throw r.deleteShader(i), new Error(\"Failed to compile shader: \" + n);\n }\n } else\n throw new Error(\"Failed to create shader\");\n}\nfunction Rf(r, e, t) {\n const i = r.createProgram();\n if (i) {\n if (r.attachShader(i, e), r.attachShader(i, t), r.linkProgram(i), r.getProgramParameter(i, r.LINK_STATUS))\n return i;\n {\n const n = r.getProgramInfoLog(i);\n throw r.deleteProgram(i), new Error(\"Failed to link program: \" + n);\n }\n } else\n throw new Error(\"Failed to create program\");\n}\nfunction ct(r, e, t, i, n) {\n const s = r.createBuffer();\n r.bindBuffer(r.ARRAY_BUFFER, s), r.bufferData(r.ARRAY_BUFFER, t, r.STATIC_DRAW);\n const o = r.FLOAT, a = !1, l = 0, c = 0, h = r.getAttribLocation(e, n);\n r.vertexAttribPointer(\n h,\n i,\n o,\n a,\n l,\n c\n ), r.enableVertexAttribArray(h);\n}\nconst If = 100, Af = {\n leading: !0,\n trailing: !0\n}, Cf = 1, kf = 1;\nfunction Lf(r, e) {\n return (t, i, n) => new jf(t, i, r, e, n);\n}\nlet jf = class extends Wu {\n gl;\n program;\n vao;\n CachedTilesByTileUrl = /* @__PURE__ */ new Map();\n opacity = Cf;\n saturation = kf;\n renderOptions = {};\n packedTilesTexture;\n packedTilesPositionsTexture;\n packedTilesResourcePositionsAndDimensionsTexture;\n packedTilesScaleFactorsTexture;\n projectedGeoToClipTransform;\n throttledUpdateTextures;\n /**\n * Creates an instance of WebGL2WarpedMap.\n *\n * @constructor\n * @param {string} mapId - ID of the map\n * @param {GeoreferencedMap} georeferencedMap - Georeferenced map used to construct the WarpedMap\n * @param {WebGL2RenderingContext} gl - WebGL rendering context\n * @param {WebGLProgram} program - WebGL program\n * @param {Partial<WarpedMapOptions>} options - WarpedMapOptions\n */\n constructor(e, t, i, n, s) {\n super(e, t, s), this.gl = i, this.program = n, this.vao = i.createVertexArray(), this.packedTilesTexture = i.createTexture(), this.packedTilesScaleFactorsTexture = i.createTexture(), this.packedTilesPositionsTexture = i.createTexture(), this.packedTilesResourcePositionsAndDimensionsTexture = i.createTexture(), this.throttledUpdateTextures = Gi(\n this.updateTextures.bind(this),\n If,\n Af\n );\n }\n /**\n * Update the vertex buffers of this warped map\n *\n * @param {Transform} projectedGeoToClipTransform - Transform from projected geo coordinates to webgl2 coordinates in the [-1, 1] range. Equivalent to OpenLayers' projectionTransform.\n */\n updateVertexBuffers(e) {\n this.projectedGeoToClipTransform = e, this.updateVertexBuffersInternal();\n }\n /**\n * Add cached tile to the textures of this map and update textures\n *\n * @param {CachedTile} cachedTile\n */\n addCachedTileAndUpdateTextures(e) {\n this.CachedTilesByTileUrl.set(e.tileUrl, e), this.throttledUpdateTextures();\n }\n /**\n * Remove cached tile from the textures of this map and update textures\n *\n * @param {string} tileUrl\n */\n removeCachedTileAndUpdateTextures(e) {\n this.CachedTilesByTileUrl.delete(e), this.throttledUpdateTextures();\n }\n dispose() {\n this.gl.deleteVertexArray(this.vao), this.gl.deleteTexture(this.packedTilesTexture), this.gl.deleteTexture(this.packedTilesScaleFactorsTexture), this.gl.deleteTexture(this.packedTilesPositionsTexture), this.gl.deleteTexture(this.packedTilesResourcePositionsAndDimensionsTexture);\n }\n updateVertexBuffersInternal() {\n if (!this.vao || !this.projectedGeoToClipTransform)\n return;\n this.gl.bindVertexArray(this.vao);\n const e = this.resourceTrianglePoints;\n ct(\n this.gl,\n this.program,\n new Float32Array(e.flat()),\n 2,\n \"a_resourceTrianglePoint\"\n );\n const t = this.projectedGeoPreviousTrianglePoints.map((a) => mt(\n this.projectedGeoToClipTransform,\n a\n ));\n ct(\n this.gl,\n this.program,\n new Float32Array(t.flat()),\n 2,\n \"a_clipPreviousTrianglePoint\"\n );\n const i = this.projectedGeoTrianglePoints.map((a) => mt(\n this.projectedGeoToClipTransform,\n a\n ));\n ct(\n this.gl,\n this.program,\n new Float32Array(i.flat()),\n 2,\n \"a_clipTrianglePoint\"\n );\n const n = this.previousTrianglePointsDistortion;\n ct(\n this.gl,\n this.program,\n new Float32Array(n),\n 1,\n \"a_previousTrianglePointDistortion\"\n );\n const s = this.trianglePointsDistortion;\n ct(\n this.gl,\n this.program,\n new Float32Array(s),\n 1,\n \"a_trianglePointDistortion\"\n );\n const o = new Float32Array(\n this.resourceTrianglePoints.length\n ).map((a, l) => Math.round((l - 1) / 3));\n ct(\n this.gl,\n this.program,\n o,\n 1,\n \"a_triangleIndex\"\n );\n }\n async updateTextures() {\n const e = this.gl;\n if (this.CachedTilesByTileUrl.size === 0)\n return;\n let t = [...this.CachedTilesByTileUrl.values()];\n t = t.filter((h) => this.resourceViewportRingBbox ? ma(\n To(h.tile),\n this.resourceViewportRingBbox\n ) : !0);\n const i = t.length, n = t.map((h, u) => ({\n w: h.data.width,\n h: h.data.height,\n // Calling potpack will add x and y properties\n // with the position of the tile's origin in the pack\n // By adding them here already, we'll make TypeScript happy!\n x: 0,\n y: 0,\n index: u\n })), { w: s, h: o } = Vu(n);\n e.pixelStorei(e.UNPACK_ALIGNMENT, 4), e.bindTexture(e.TEXTURE_2D, this.packedTilesTexture), e.texImage2D(\n e.TEXTURE_2D,\n 0,\n e.RGBA,\n s,\n o,\n 0,\n e.RGBA,\n e.UNSIGNED_BYTE,\n null\n );\n for (const h of n) {\n const u = t[h.index].data;\n e.texSubImage2D(\n e.TEXTURE_2D,\n 0,\n h.x,\n h.y,\n u.width,\n u.height,\n e.RGBA,\n e.UNSIGNED_BYTE,\n u\n );\n }\n e.texParameteri(e.TEXTURE_2D, e.TEXTURE_MIN_FILTER, e.LINEAR), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_MAG_FILTER, e.LINEAR), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_WRAP_S, e.CLAMP_TO_EDGE), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_WRAP_T, e.CLAMP_TO_EDGE);\n const a = n.map((h) => [\n h.x,\n h.y\n ]);\n e.bindTexture(e.TEXTURE_2D, this.packedTilesPositionsTexture), e.texImage2D(\n e.TEXTURE_2D,\n 0,\n e.RG32I,\n 1,\n i,\n 0,\n e.RG_INTEGER,\n e.INT,\n new Int32Array(a.flat())\n ), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_MIN_FILTER, e.NEAREST), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_MAG_FILTER, e.NEAREST), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_WRAP_S, e.CLAMP_TO_EDGE), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_WRAP_T, e.CLAMP_TO_EDGE);\n const l = n.map(\n (h) => {\n const u = t[h.index];\n if (u && u.imageRequest && u.imageRequest.region)\n return [\n u.imageRequest.region.x,\n u.imageRequest.region.y,\n u.imageRequest.region.width,\n u.imageRequest.region.height\n ];\n }\n );\n e.bindTexture(\n e.TEXTURE_2D,\n this.packedTilesResourcePositionsAndDimensionsTexture\n ), e.texImage2D(\n e.TEXTURE_2D,\n 0,\n e.RGBA32I,\n 1,\n i,\n 0,\n e.RGBA_INTEGER,\n e.INT,\n new Int32Array(l.flat())\n ), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_MIN_FILTER, e.NEAREST), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_MAG_FILTER, e.NEAREST), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_WRAP_S, e.CLAMP_TO_EDGE), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_WRAP_T, e.CLAMP_TO_EDGE);\n const c = n.map(\n ({ index: h }) => t[h].tile.tileZoomLevel.scaleFactor\n );\n e.bindTexture(e.TEXTURE_2D, this.packedTilesScaleFactorsTexture), e.texImage2D(\n e.TEXTURE_2D,\n 0,\n e.R32I,\n 1,\n i,\n 0,\n e.RED_INTEGER,\n e.INT,\n new Int32Array(c)\n ), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_MIN_FILTER, e.NEAREST), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_MAG_FILTER, e.NEAREST), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_WRAP_S, e.CLAMP_TO_EDGE), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_WRAP_T, e.CLAMP_TO_EDGE), this.dispatchEvent(new V(C.TEXTURESUPDATED));\n }\n};\nconst Of = m.string().or(m.number()).or(m.boolean()), Nf = m.record(m.string(), Of.array()), rt = m.tuple([m.number(), m.number()]), _o = m.object({\n type: m.literal(\"Point\"),\n coordinates: rt\n}), Eo = rt.array().min(3), nr = m.enum([\n \"ImageService1\",\n \"ImageService2\",\n \"ImageService3\"\n]), Df = m.object({\n id: m.string().url(),\n type: m.string(),\n label: Nf.optional()\n}), ni = Df.extend({\n partOf: m.lazy(() => ni.array()).optional()\n}), si = m.union([\n m.any(),\n m.object({\n type: m.string(),\n options: m.object({}).optional()\n })\n]).transform((r) => {\n if (r && typeof r == \"object\" && \"type\" in r)\n return r;\n}), oi = m.union([\n m.string().url().array(),\n m.string().url()\n]), Ff = /^<svg\\s+width=\"\\d+\"\\s+height=\"\\d+\"\\s*>\\s*<polygon\\s+points=\"\\s*(-?\\d+(\\.\\d+)?,-?\\d+(\\.\\d+)?\\s+){2,}-?\\d+(\\.\\d+)?,-?\\d+(\\.\\d+)?\\s*\"\\s*\\/>\\s*<\\/svg>$/, Gf = m.object({\n type: m.literal(\"SvgSelector\"),\n value: m.string().regex(Ff)\n}), Bf = m.object({\n source: m.string().url(),\n service: m.array(m.object({\n \"@id\": m.string().url(),\n type: nr\n })).length(1),\n selector: Gf\n}), Po = m.object({\n pixelCoords: rt\n}), Uf = m.object({\n type: m.literal(\"FeatureCollection\"),\n transformation: si.optional(),\n features: m.array(m.object({\n type: m.literal(\"Feature\"),\n properties: Po,\n geometry: _o\n }))\n}), ln = m.object({\n id: m.string().optional(),\n type: m.literal(\"Annotation\"),\n \"@context\": oi.optional(),\n motivation: m.string().default(\"georeferencing\").optional(),\n target: Bf,\n body: Uf\n}), So = m.object({\n id: m.string().optional(),\n type: m.literal(\"AnnotationPage\"),\n \"@context\": oi.optional(),\n items: m.array(ln)\n}), cn = /<polygon\\s+points=\"\\s*(-?\\d+(\\.\\d+)?,-?\\d+(\\.\\d+)?\\s+){2,}-?\\d+(\\.\\d+)?,-?\\d+(\\.\\d+)?\\s*\"\\s*\\/>/, Wf = new RegExp(`^<svg\\\\s+width=\"\\\\d+\"\\\\s+height=\"\\\\d+\"\\\\s*>\\\\s*${cn.source}\\\\s*</svg>$`), Vf = new RegExp(`^<svg\\\\s+height=\"\\\\d+\"\\\\s+width=\"\\\\d+\"\\\\s*>\\\\s*${cn.source}\\\\s*</svg>$`), zf = new RegExp(`^<svg\\\\s*>\\\\s*${cn.source}\\\\s*</svg>$`), $f = m.string().regex(zf), qf = m.string().regex(Wf), Zf = m.string().regex(Vf), Xf = m.object({\n type: m.literal(\"SvgSelector\"),\n value: $f.or(qf).or(Zf)\n}), Hf = m.object({\n \"@id\": m.string().url(),\n type: nr,\n height: m.number().positive(),\n width: m.number().positive(),\n partOf: ni.array().optional()\n}), Yf = m.object({\n id: m.string().url(),\n type: nr,\n height: m.number().positive(),\n width: m.number().positive(),\n partOf: ni.array().optional()\n}), Jf = m.object({\n type: m.literal(\"SpecificResource\"),\n source: Hf.or(Yf),\n // selector: SvgSelectorSchema.or(ImageApiSelectorSchema)\n selector: Xf\n}), Ro = m.object({\n resourceCoords: rt\n}), Qf = m.object({\n type: m.literal(\"FeatureCollection\"),\n transformation: si.optional(),\n features: m.array(m.object({\n type: m.literal(\"Feature\"),\n properties: Ro,\n geometry: _o\n }))\n}), hn = m.object({\n id: m.string().optional(),\n type: m.literal(\"Annotation\"),\n \"@context\": oi.optional(),\n motivation: m.string().default(\"georeferencing\").optional(),\n created: m.string().datetime().optional(),\n modified: m.string().datetime().optional(),\n target: Jf,\n body: Qf\n}), Io = m.object({\n id: m.string().optional(),\n type: m.literal(\"AnnotationPage\"),\n \"@context\": oi.optional(),\n items: m.array(hn)\n});\nln.or(hn);\nSo.or(Io);\nPo.or(Ro);\nfunction Ao(r) {\n return Array.isArray(r);\n}\nfunction Kf(r) {\n return !!(r && typeof r == \"object\" && \"type\" in r && r.type === \"AnnotationPage\");\n}\nfunction Xr(r) {\n return !!(r && typeof r == \"object\" && \"type\" in r && r.type === \"GeoreferencedMap\");\n}\nfunction Zn(r) {\n return !!(r && typeof r == \"object\" && \"target\" in r && r.target && typeof r.target == \"object\" && \"source\" in r.target && typeof r.target.source == \"string\");\n}\nfunction ai(r) {\n return \"type\" in r && r.type === \"GeoreferencedMap\";\n}\nfunction li(r) {\n return \"source\" in r.target && typeof r.target.source == \"object\";\n}\nfunction ed(r) {\n return {\n id: td(r),\n ...ad(r),\n type: rd(r),\n partOf: id(r)\n };\n}\nfunction td(r) {\n if (li(r)) {\n const e = r.target.source;\n return \"id\" in e ? e.id : e[\"@id\"];\n } else\n return r.target.service[0][\"@id\"];\n}\nfunction rd(r) {\n return \"service\" in r.target ? r.target.service[0].type : r.target.source.type;\n}\nfunction id(r) {\n if (li(r))\n return r.target.source.partOf;\n}\nfunction nd(r) {\n return \"pixelCoords\" in r ? r.pixelCoords : r.resourceCoords;\n}\nfunction sd(r) {\n return r.body.features.map((e) => ({\n resource: nd(e.properties),\n geo: e.geometry.coordinates\n }));\n}\nfunction od(r) {\n if (li(r))\n return {\n created: r.created,\n modified: r.modified\n };\n}\nfunction ad(r) {\n if (li(r))\n return {\n width: r.target.source.width,\n height: r.target.source.height\n };\n const t = r.target.selector.value, i = /width=\"(?<width>\\d+)\"/.exec(t), n = /height=\"(?<height>\\d+)\"/.exec(t), s = i?.groups?.width, o = n?.groups?.height;\n if (!s || !o)\n throw new Error(\"Could not parse image dimensions\");\n return {\n width: parseInt(s),\n height: parseInt(o)\n };\n}\nfunction ld(r) {\n const t = r.target.selector.value, n = /points=\"(?<points>.+)\"/.exec(t)?.groups;\n if (n && n.points) {\n const s = n.points.trim().split(/\\s+/);\n if (s[0] === s[s.length - 1] && s.splice(-1), s.length >= 3)\n return s.map((o) => {\n const a = o.split(\",\");\n if (a.length === 2)\n return [parseFloat(a[0]), parseFloat(a[1])];\n throw new Error(\"Could not parse resource mask\");\n });\n throw new Error(\"Could not parse resource mask\");\n } else\n throw new Error(\"Could not parse resource mask\");\n}\nfunction Xn(r) {\n return {\n \"@context\": \"https://schemas.allmaps.org/map/2/context.json\",\n type: \"GeoreferencedMap\",\n id: r.id,\n ...od(r),\n resource: ed(r),\n gcps: sd(r),\n resourceMask: ld(r),\n transformation: r.body.transformation\n };\n}\nfunction Bi(r) {\n if (Kf(r)) {\n let e;\n return \"items\" in r && Array.isArray(r.items) && Zn(r.items[0]) ? e = So.parse(r) : e = Io.parse(r), e.items.map((t) => Xn(t));\n } else {\n let e;\n return Zn(r) ? e = ln.parse(r) : e = hn.parse(r), [Xn(e)];\n }\n}\nconst Co = m.object({\n image: rt,\n world: rt\n}), cd = m.object({\n uri: m.string().url(),\n width: m.number(),\n height: m.number(),\n type: nr\n}), ci = m.object({\n id: m.string().optional(),\n version: m.number().min(1).max(1).default(1),\n image: cd,\n gcps: Co.array(),\n pixelMask: Eo,\n transformation: si.optional()\n}), un = m.array(ci), ko = m.object({\n resource: rt,\n geo: rt\n}), hd = m.object({\n id: m.string().url(),\n width: m.number(),\n height: m.number(),\n type: nr,\n partOf: ni.array().optional()\n}), hi = m.object({\n \"@context\": m.literal(\"https://schemas.allmaps.org/map/2/context.json\").optional(),\n type: m.literal(\"GeoreferencedMap\"),\n id: m.string().optional(),\n created: m.string().datetime().optional(),\n modified: m.string().datetime().optional(),\n resource: hd,\n gcps: ko.array(),\n resourceMask: Eo,\n transformation: si.optional()\n}), fn = m.array(hi);\nci.or(hi);\nun.or(fn);\nCo.or(ko);\nfunction ud(r) {\n let e, t, i;\n return ai(r) ? (e = r.resource.width, t = r.resource.height, i = r.resourceMask) : (e = r.image.width, t = r.image.height, i = r.pixelMask), {\n type: \"SvgSelector\",\n value: `<svg width=\"${e}\" height=\"${t}\"><polygon points=\"${i.map((n) => n.join(\",\")).join(\" \")}\" /></svg>`\n };\n}\nfunction fd(r) {\n let e, t, i, n, s;\n return ai(r) ? (e = r.resource.id, t = r.resource.type, i = r.resource.width, n = r.resource.height, s = r.resource.partOf) : (e = r.image.uri, t = r.image.type, i = r.image.width, n = r.image.height), {\n id: e,\n type: t,\n height: n,\n width: i,\n partOf: s\n };\n}\nfunction dd(r) {\n if (ai(r))\n return {\n created: r.created,\n modified: r.modified\n };\n}\nfunction pd() {\n return [\n \"http://iiif.io/api/extension/georef/1/context.json\",\n \"http://iiif.io/api/presentation/3/context.json\"\n ];\n}\nfunction gd(r) {\n let e, t;\n return \"resource\" in r ? (e = r.resource, t = r.geo) : (e = r.image, t = r.world), {\n type: \"Feature\",\n properties: {\n resourceCoords: e\n },\n geometry: {\n type: \"Point\",\n coordinates: t\n }\n };\n}\nfunction Hn(r) {\n const e = {\n type: \"SpecificResource\",\n source: fd(r),\n selector: ud(r)\n }, t = {\n type: \"FeatureCollection\",\n transformation: r.transformation,\n features: r.gcps.map((i) => gd(i))\n };\n return {\n id: r.id,\n type: \"Annotation\",\n \"@context\": pd(),\n ...dd(r),\n motivation: \"georeferencing\",\n target: e,\n body: t\n };\n}\nfunction md(r) {\n if (Ao(r)) {\n let e;\n return Xr(r[0]) ? e = fn.parse(r) : e = un.parse(r), {\n type: \"AnnotationPage\",\n \"@context\": \"http://www.w3.org/ns/anno.jsonld\",\n items: e.map((i) => Hn(i))\n };\n } else {\n let e;\n return Xr(r) ? e = hi.parse(r) : e = ci.parse(r), Hn(e);\n }\n}\nfunction Lo(r) {\n return ai(r) ? r : Bi(md(r))[0];\n}\nfunction vd(r) {\n return r.map(Lo);\n}\nfunction Yn(r) {\n if (Ao(r)) {\n let e;\n return Xr(r[0]) ? e = fn.parse(r) : e = un.parse(r), vd(e);\n } else {\n let e;\n return Xr(r) ? e = hi.parse(r) : e = ci.parse(r), Lo(e);\n }\n}\nfunction yd(r, e, t, i, n) {\n jo(r, e, t || 0, i || r.length - 1, n || wd);\n}\nfunction jo(r, e, t, i, n) {\n for (; i > t; ) {\n if (i - t > 600) {\n var s = i - t + 1, o = e - t + 1, a = Math.log(s), l = 0.5 * Math.exp(2 * a / 3), c = 0.5 * Math.sqrt(a * l * (s - l) / s) * (o - s / 2 < 0 ? -1 : 1), h = Math.max(t, Math.floor(e - o * l / s + c)), u = Math.min(i, Math.floor(e + (s - o) * l / s + c));\n jo(r, e, h, u, n);\n }\n var g = r[e], y = t, v = i;\n for (At(r, t, e), n(r[i], g) > 0 && At(r, t, i); y < v; ) {\n for (At(r, y, v), y++, v--; n(r[y], g) < 0; )\n y++;\n for (; n(r[v], g) > 0; )\n v--;\n }\n n(r[t], g) === 0 ? At(r, t, v) : (v++, At(r, v, i)), v <= e && (t = v + 1), e <= v && (i = v - 1);\n }\n}\nfunction At(r, e, t) {\n var i = r[e];\n r[e] = r[t], r[t] = i;\n}\nfunction wd(r, e) {\n return r < e ? -1 : r > e ? 1 : 0;\n}\nclass xd {\n constructor(e = 9) {\n this._maxEntries = Math.max(4, e), this._minEntries = Math.max(2, Math.ceil(this._maxEntries * 0.4)), this.clear();\n }\n all() {\n return this._all(this.data, []);\n }\n search(e) {\n let t = this.data;\n const i = [];\n if (!_r(e, t))\n return i;\n const n = this.toBBox, s = [];\n for (; t; ) {\n for (let o = 0; o < t.children.length; o++) {\n const a = t.children[o], l = t.leaf ? n(a) : a;\n _r(e, l) && (t.leaf ? i.push(a) : Ti(e, l) ? this._all(a, i) : s.push(a));\n }\n t = s.pop();\n }\n return i;\n }\n collides(e) {\n let t = this.data;\n if (!_r(e, t))\n return !1;\n const i = [];\n for (; t; ) {\n for (let n = 0; n < t.children.length; n++) {\n const s = t.children[n], o = t.leaf ? this.toBBox(s) : s;\n if (_r(e, o)) {\n if (t.leaf || Ti(e, o))\n return !0;\n i.push(s);\n }\n }\n t = i.pop();\n }\n return !1;\n }\n load(e) {\n if (!(e && e.length))\n return this;\n if (e.length < this._minEntries) {\n for (let i = 0; i < e.length; i++)\n this.insert(e[i]);\n return this;\n }\n let t = this._build(e.slice(), 0, e.length - 1, 0);\n if (!this.data.children.length)\n this.data = t;\n else if (this.data.height === t.height)\n this._splitRoot(this.data, t);\n else {\n if (this.data.height < t.height) {\n const i = this.data;\n this.data = t, t = i;\n }\n this._insert(t, this.data.height - t.height - 1, !0);\n }\n return this;\n }\n insert(e) {\n return e && this._insert(e, this.data.height - 1), this;\n }\n clear() {\n return this.data = gt([]), this;\n }\n remove(e, t) {\n if (!e)\n return this;\n let i = this.data;\n const n = this.toBBox(e), s = [], o = [];\n let a, l, c;\n for (; i || s.length; ) {\n if (i || (i = s.pop(), l = s[s.length - 1], a = o.pop(), c = !0), i.leaf) {\n const h = bd(e, i.children, t);\n if (h !== -1)\n return i.children.splice(h, 1), s.push(i), this._condense(s), this;\n }\n !c && !i.leaf && Ti(i, n) ? (s.push(i), o.push(a), a = 0, l = i, i = i.children[0]) : l ? (a++, i = l.children[a], c = !1) : i = null;\n }\n return this;\n }\n toBBox(e) {\n return e;\n }\n compareMinX(e, t) {\n return e.minX - t.minX;\n }\n compareMinY(e, t) {\n return e.minY - t.minY;\n }\n toJSON() {\n return this.data;\n }\n fromJSON(e) {\n return this.data = e, this;\n }\n _all(e, t) {\n const i = [];\n for (; e; )\n e.leaf ? t.push(...e.children) : i.push(...e.children), e = i.pop();\n return t;\n }\n _build(e, t, i, n) {\n const s = i - t + 1;\n let o = this._maxEntries, a;\n if (s <= o)\n return a = gt(e.slice(t, i + 1)), ht(a, this.toBBox), a;\n n || (n = Math.ceil(Math.log(s) / Math.log(o)), o = Math.ceil(s / Math.pow(o, n - 1))), a = gt([]), a.leaf = !1, a.height = n;\n const l = Math.ceil(s / o), c = l * Math.ceil(Math.sqrt(o));\n Jn(e, t, i, c, this.compareMinX);\n for (let h = t; h <= i; h += c) {\n const u = Math.min(h + c - 1, i);\n Jn(e, h, u, l, this.compareMinY);\n for (let g = h; g <= u; g += l) {\n const y = Math.min(g + l - 1, u);\n a.children.push(this._build(e, g, y, n - 1));\n }\n }\n return ht(a, this.toBBox), a;\n }\n _chooseSubtree(e, t, i, n) {\n for (; n.push(t), !(t.leaf || n.length - 1 === i); ) {\n let s = 1 / 0, o = 1 / 0, a;\n for (let l = 0; l < t.children.length; l++) {\n const c = t.children[l], h = Mi(c), u = _d(e, c) - h;\n u < o ? (o = u, s = h < s ? h : s, a = c) : u === o && h < s && (s = h, a = c);\n }\n t = a || t.children[0];\n }\n return t;\n }\n _insert(e, t, i) {\n const n = i ? e : this.toBBox(e), s = [], o = this._chooseSubtree(n, this.data, t, s);\n for (o.children.push(e), Dt(o, n); t >= 0 && s[t].children.length > this._maxEntries; )\n this._split(s, t), t--;\n this._adjustParentBBoxes(n, s, t);\n }\n // split overflowed node into two\n _split(e, t) {\n const i = e[t], n = i.children.length, s = this._minEntries;\n this._chooseSplitAxis(i, s, n);\n const o = this._chooseSplitIndex(i, s, n), a = gt(i.children.splice(o, i.children.length - o));\n a.height = i.height, a.leaf = i.leaf, ht(i, this.toBBox), ht(a, this.toBBox), t ? e[t - 1].children.push(a) : this._splitRoot(i, a);\n }\n _splitRoot(e, t) {\n this.data = gt([e, t]), this.data.height = e.height + 1, this.data.leaf = !1, ht(this.data, this.toBBox);\n }\n _chooseSplitIndex(e, t, i) {\n let n, s = 1 / 0, o = 1 / 0;\n for (let a = t; a <= i - t; a++) {\n const l = Nt(e, 0, a, this.toBBox), c = Nt(e, a, i, this.toBBox), h = Ed(l, c), u = Mi(l) + Mi(c);\n h < s ? (s = h, n = a, o = u < o ? u : o) : h === s && u < o && (o = u, n = a);\n }\n return n || i - t;\n }\n // sorts node children by the best axis for split\n _chooseSplitAxis(e, t, i) {\n const n = e.leaf ? this.compareMinX : Md, s = e.leaf ? this.compareMinY : Td, o = this._allDistMargin(e, t, i, n), a = this._allDistMargin(e, t, i, s);\n o < a && e.children.sort(n);\n }\n // total margin of all possible split distributions where each node is at least m full\n _allDistMargin(e, t, i, n) {\n e.children.sort(n);\n const s = this.toBBox, o = Nt(e, 0, t, s), a = Nt(e, i - t, i, s);\n let l = Tr(o) + Tr(a);\n for (let c = t; c < i - t; c++) {\n const h = e.children[c];\n Dt(o, e.leaf ? s(h) : h), l += Tr(o);\n }\n for (let c = i - t - 1; c >= t; c--) {\n const h = e.children[c];\n Dt(a, e.leaf ? s(h) : h), l += Tr(a);\n }\n return l;\n }\n _adjustParentBBoxes(e, t, i) {\n for (let n = i; n >= 0; n--)\n Dt(t[n], e);\n }\n _condense(e) {\n for (let t = e.length - 1, i; t >= 0; t--)\n e[t].children.length === 0 ? t > 0 ? (i = e[t - 1].children, i.splice(i.indexOf(e[t]), 1)) : this.clear() : ht(e[t], this.toBBox);\n }\n}\nfunction bd(r, e, t) {\n if (!t)\n return e.indexOf(r);\n for (let i = 0; i < e.length; i++)\n if (t(r, e[i]))\n return i;\n return -1;\n}\nfunction ht(r, e) {\n Nt(r, 0, r.children.length, e, r);\n}\nfunction Nt(r, e, t, i, n) {\n n || (n = gt(null)), n.minX = 1 / 0, n.minY = 1 / 0, n.maxX = -1 / 0, n.maxY = -1 / 0;\n for (let s = e; s < t; s++) {\n const o = r.children[s];\n Dt(n, r.leaf ? i(o) : o);\n }\n return n;\n}\nfunction Dt(r, e) {\n return r.minX = Math.min(r.minX, e.minX), r.minY = Math.min(r.minY, e.minY), r.maxX = Math.max(r.maxX, e.maxX), r.maxY = Math.max(r.maxY, e.maxY), r;\n}\nfunction Md(r, e) {\n return r.minX - e.minX;\n}\nfunction Td(r, e) {\n return r.minY - e.minY;\n}\nfunction Mi(r) {\n return (r.maxX - r.minX) * (r.maxY - r.minY);\n}\nfunction Tr(r) {\n return r.maxX - r.minX + (r.maxY - r.minY);\n}\nfunction _d(r, e) {\n return (Math.max(e.maxX, r.maxX) - Math.min(e.minX, r.minX)) * (Math.max(e.maxY, r.maxY) - Math.min(e.minY, r.minY));\n}\nfunction Ed(r, e) {\n const t = Math.max(r.minX, e.minX), i = Math.max(r.minY, e.minY), n = Math.min(r.maxX, e.maxX), s = Math.min(r.maxY, e.maxY);\n return Math.max(0, n - t) * Math.max(0, s - i);\n}\nfunction Ti(r, e) {\n return r.minX <= e.minX && r.minY <= e.minY && e.maxX <= r.maxX && e.maxY <= r.maxY;\n}\nfunction _r(r, e) {\n return e.minX <= r.maxX && e.minY <= r.maxY && e.maxX >= r.minX && e.maxY >= r.minY;\n}\nfunction gt(r) {\n return {\n children: r,\n height: 1,\n leaf: !0,\n minX: 1 / 0,\n minY: 1 / 0,\n maxX: -1 / 0,\n maxY: -1 / 0\n };\n}\nfunction Jn(r, e, t, i, n) {\n const s = [e, t];\n for (; s.length; ) {\n if (t = s.pop(), e = s.pop(), t - e <= i)\n continue;\n const o = e + Math.ceil((t - e) / i / 2) * i;\n yd(r, o, e, t, n), s.push(e, o, o, t);\n }\n}\nfunction Pd(r, e, t) {\n if (t === void 0 && (t = {}), !r)\n throw new Error(\"point is required\");\n if (!e)\n throw new Error(\"polygon is required\");\n var i = Tt(r), n = mc(e), s = n.type, o = e.bbox, a = n.coordinates;\n if (o && Sd(i, o) === !1)\n return !1;\n s === \"Polygon\" && (a = [a]);\n for (var l = !1, c = 0; c < a.length && !l; c++)\n if (Qn(i, a[c][0], t.ignoreBoundary)) {\n for (var h = !1, u = 1; u < a[c].length && !h; )\n Qn(i, a[c][u], !t.ignoreBoundary) && (h = !0), u++;\n h || (l = !0);\n }\n return l;\n}\nfunction Qn(r, e, t) {\n var i = !1;\n e[0][0] === e[e.length - 1][0] && e[0][1] === e[e.length - 1][1] && (e = e.slice(0, e.length - 1));\n for (var n = 0, s = e.length - 1; n < e.length; s = n++) {\n var o = e[n][0], a = e[n][1], l = e[s][0], c = e[s][1], h = r[1] * (o - l) + a * (l - r[0]) + c * (r[0] - o) === 0 && (o - r[0]) * (l - r[0]) <= 0 && (a - r[1]) * (c - r[1]) <= 0;\n if (h)\n return !t;\n var u = a > r[1] != c > r[1] && r[0] < (l - o) * (r[1] - a) / (c - a) + o;\n u && (i = !i);\n }\n return i;\n}\nfunction Sd(r, e) {\n return e[0] <= r[0] && e[1] <= r[1] && e[2] >= r[0] && e[3] >= r[1];\n}\nconst Rd = !0;\nlet Id = class {\n rbush = new xd();\n polygonsById = /* @__PURE__ */ new Map();\n bboxesById = /* @__PURE__ */ new Map();\n itemsById = /* @__PURE__ */ new Map();\n addItem(e, t) {\n this.removeItem(e);\n const i = ue(t), n = {\n minX: i[0],\n minY: i[1],\n maxX: i[2],\n maxY: i[3],\n id: e\n };\n this.polygonsById.set(e, t), this.bboxesById.set(e, i), this.itemsById.set(e, n), this.rbush.insert(n);\n }\n removeItem(e) {\n const t = this.itemsById.get(e);\n t && (this.rbush.remove(t), this.polygonsById.delete(e), this.bboxesById.delete(e), this.itemsById.delete(e));\n }\n clear() {\n this.polygonsById.clear(), this.bboxesById.clear(), this.itemsById.clear(), this.rbush.clear();\n }\n search(e, t, i, n) {\n return this.rbush.search({\n minX: e,\n minY: t,\n maxX: i,\n maxY: n\n });\n }\n getBbox(e) {\n return this.bboxesById.get(e);\n }\n getPolygon(e) {\n return this.polygonsById.get(e);\n }\n searchFromBbox(e) {\n const [t, i, n, s] = e;\n return this.search(t, i, n, s).map((o) => o.id);\n }\n searchFromPoint(e, t = Rd) {\n const [i, n, s, o] = [e[0], e[1], e[0], e[1]], a = this.search(i, n, s, o);\n return t ? a.filter((l) => {\n const c = this.polygonsById.get(l.id);\n return c ? Pd(e, c) : !1;\n }).map((l) => l.id) : a.map((l) => l.id);\n }\n};\nfunction Ad() {\n return {\n createRTree: !0,\n imageInformations: /* @__PURE__ */ new Map()\n };\n}\nlet Cd = class extends EventTarget {\n warpedMapFactory;\n warpedMapsById = /* @__PURE__ */ new Map();\n zIndices = /* @__PURE__ */ new Map();\n rtree;\n imageInformations;\n transformation;\n fetchFn;\n /**\n * Creates an instance of a WarpedMapList.\n *\n * @constructor\n * @param {WarpedMapFactory<W>} [warpedMapFactory] - Factory function for creating WarpedMap objects\n * @param {WarpedMapListOptions} [options] - Options\n */\n constructor(e, t) {\n super(), this.warpedMapFactory = e, t = {\n ...Ad(),\n ...t\n }, this.fetchFn = t?.fetchFn, this.imageInformations = t.imageInformations, this.transformation = t.transformation, t.createRTree && (this.rtree = new Id());\n }\n /**\n * Returns mapIds for the maps in this list.\n *\n * @returns {Iterable<string>}\n */\n getMapIds() {\n return this.warpedMapsById.keys();\n }\n getWarpedMaps(e) {\n if (e === void 0)\n return this.warpedMapsById.values();\n {\n const t = [];\n for (const i of e) {\n const n = this.warpedMapsById.get(i);\n n && t.push(n);\n }\n return t;\n }\n }\n /**\n * Returns the WarpedMap object in this list of map specified by its ID.\n *\n * @param {string} mapId\n * @returns {(W | undefined)}\n */\n getWarpedMap(e) {\n return this.warpedMapsById.get(e);\n }\n /**\n * Returns the z-index of a map.\n *\n * @param {string} mapId\n * @returns {number | undefined}\n */\n getMapZIndex(e) {\n return this.zIndices.get(e);\n }\n getCenter() {\n const e = this.getBbox();\n if (e)\n return wt(e);\n }\n getProjectedCenter() {\n const e = this.getProjectedBbox();\n if (e)\n return wt(e);\n }\n /**\n * Return the bounding box of all visible maps in this list, in longitude/latitude coordinates\n *\n * @returns {(Bbox | undefined)}\n */\n getBbox() {\n let e;\n for (const t of this.getWarpedMaps())\n t.visible && (e ? e = vn(e, t.geoMaskBbox) : e = t.geoMaskBbox);\n return e;\n }\n /**\n * Return the bounding box of all visible maps in this list, in projected coordinates\n *\n * @returns {(Bbox | undefined)}\n */\n getProjectedBbox() {\n let e;\n for (const t of this.getWarpedMaps())\n t.visible && (e ? e = vn(e, t.projectedGeoMaskBbox) : e = t.projectedGeoMaskBbox);\n return e;\n }\n /**\n * Returns mapIds of the maps whose geoBbox overlaps with the specified geoBbox.\n *\n * @param {Bbox} geoBbox\n * @returns {Iterable<string>}\n */\n getMapsByGeoBbox(e) {\n return this.rtree ? this.rtree.searchFromBbox(e) : Array.from(this.warpedMapsById.keys());\n }\n /**\n * Sets the object that caches image information\n *\n * @param {ImageInformations} imageInformations - object that caches image information\n */\n setImageInformations(e) {\n this.imageInformations = e;\n }\n /**\n * Sets the resource mask for a specified map\n *\n * @param {string} mapId - ID of the map\n * @param {Ring} resourceMask - the new resource mask\n */\n setMapResourceMask(e, t) {\n const i = this.warpedMapsById.get(e);\n i && (i.setResourceMask(t), this.addToOrUpdateRtree(i), this.dispatchEvent(\n new V(C.RESOURCEMASKUPDATED, e)\n ));\n }\n /**\n * Sets the transformation type of specified maps\n *\n * @param {Iterable<string>} mapIds - the IDs of the maps\n * @param {TransformationType} transformationType - the new transformation type\n */\n setMapsTransformationType(e, t) {\n const i = [];\n for (const n of e) {\n const s = this.warpedMapsById.get(n);\n s && s.transformationType != t && (s.setTransformationType(t), this.addToOrUpdateRtree(s), i.push(n));\n }\n i.length > 0 && this.dispatchEvent(\n new V(\n C.TRANSFORMATIONCHANGED,\n i\n )\n );\n }\n /**\n * Sets the distortion measure of specified maps\n *\n * @param {Iterable<string>} mapIds - the IDs of the maps\n * @param {DistortionMeasure} [distortionMeasure] - the distortion measure\n */\n setMapsDistortionMeasure(e, t) {\n const i = [];\n for (const n of e) {\n const s = this.warpedMapsById.get(n);\n s && s.distortionMeasure != t && (s.setDistortionMeasure(t), i.push(n));\n }\n i.length > 0 && this.dispatchEvent(\n new V(C.DISTORTIONCHANGED, i)\n );\n }\n /**\n * Changes the z-index of the specified maps to bring them to front\n *\n * @param {Iterable<string>} mapIds\n */\n bringMapsToFront(e) {\n let t = this.warpedMapsById.size;\n for (const i of e)\n this.zIndices.has(i) && (this.zIndices.set(i, t), t++);\n this.removeZIndexHoles(), this.dispatchEvent(new V(C.ZINDICESCHANGES));\n }\n /**\n * Changes the z-index of the specified maps to send them to back\n *\n * @param {Iterable<string>} mapIds\n */\n sendMapsToBack(e) {\n let t = -Array.from(e).length;\n for (const i of e)\n this.zIndices.has(i) && (this.zIndices.set(i, t), t++);\n this.removeZIndexHoles(), this.dispatchEvent(new V(C.ZINDICESCHANGES));\n }\n /**\n * Changes the z-index of the specified maps to bring them forward\n *\n * @param {Iterable<string>} mapIds\n */\n bringMapsForward(e) {\n for (const [t, i] of this.zIndices.entries())\n this.zIndices.set(t, i * 2);\n for (const t of e) {\n const i = this.zIndices.get(t);\n i !== void 0 && this.zIndices.set(t, i + 3);\n }\n this.removeZIndexHoles(), this.dispatchEvent(new V(C.ZINDICESCHANGES));\n }\n /**\n * Changes the zIndex of the specified maps to send them backward\n *\n * @param {Iterable<string>} mapIds\n */\n sendMapsBackward(e) {\n for (const [t, i] of this.zIndices.entries())\n this.zIndices.set(t, i * 2);\n for (const t of e) {\n const i = this.zIndices.get(t);\n i !== void 0 && this.zIndices.set(t, i - 3);\n }\n this.removeZIndexHoles(), this.dispatchEvent(new V(C.ZINDICESCHANGES));\n }\n /**\n * Changes the visibility of the specified maps to `true`\n *\n * @param {Iterable<string>} mapIds\n */\n showMaps(e) {\n for (const t of e) {\n const i = this.warpedMapsById.get(t);\n i && (i.visible = !0);\n }\n this.dispatchEvent(\n new V(C.VISIBILITYCHANGED, e)\n );\n }\n /**\n * Changes the visibility of the specified maps to `false`\n *\n * @param {Iterable<string>} mapIds\n */\n hideMaps(e) {\n for (const t of e) {\n const i = this.warpedMapsById.get(t);\n i && (i.visible = !1);\n }\n this.dispatchEvent(\n new V(C.VISIBILITYCHANGED, e)\n );\n }\n /**\n * Adds a georeferenced map to this list\n *\n * @async\n * @param {unknown} georeferencedMap\n * @returns {Promise<string | Error>}\n */\n async addGeoreferencedMap(e) {\n const t = Yn(e), i = Array.isArray(\n t\n ) ? t[0] : t;\n return this.addGeoreferencedMapInternal(i);\n }\n /**\n * Removes a georeferenced map from this list\n *\n * @async\n * @param {unknown} georeferencedMap\n * @returns {Promise<string | Error>}\n */\n async removeGeoreferencedMap(e) {\n const t = Yn(e), i = Array.isArray(\n t\n ) ? t[0] : t;\n return this.removeGeoreferencedMapInternal(i);\n }\n /**\n * Parses an annotation and adds its georeferenced map to this list\n *\n * @async\n * @param {unknown} annotation\n * @returns {Promise<(string | Error)[]>}\n */\n async addGeoreferenceAnnotation(e) {\n const t = [], i = Bi(e), n = await Promise.allSettled(\n i.map((s) => this.addGeoreferencedMapInternal(s))\n );\n for (const s of n)\n s.status === \"fulfilled\" ? t.push(s.value) : t.push(s.reason);\n return this.dispatchEvent(\n new V(C.GEOREFERENCEANNOTATIONADDED)\n ), this.dispatchEvent(new V(C.ZINDICESCHANGES)), t;\n }\n /**\n * Parses an annotation and removes its georeferenced map from this list\n *\n * @async\n * @param {unknown} annotation\n * @returns {Promise<(string | Error)[]>}\n */\n async removeGeoreferenceAnnotation(e) {\n const t = [], i = Bi(e);\n for (const n of i) {\n const s = await this.removeGeoreferencedMapInternal(n);\n t.push(s);\n }\n return this.dispatchEvent(\n new V(C.GEOREFERENCEANNOTATIONREMOVED)\n ), t;\n }\n clear() {\n this.warpedMapsById = /* @__PURE__ */ new Map(), this.zIndices = /* @__PURE__ */ new Map(), this.rtree?.clear(), this.dispatchEvent(new V(C.CLEARED));\n }\n dispose() {\n for (const e of this.getWarpedMaps())\n this.removeEventListenersFromWarpedMap(e), e.dispose();\n }\n async addGeoreferencedMapInternal(e) {\n const t = await this.getOrComputeMapId(e), i = this.warpedMapFactory(t, e, {\n imageInformations: this.imageInformations,\n fetchFn: this.fetchFn,\n transformation: this.transformation\n });\n return this.warpedMapsById.set(t, i), this.zIndices.set(t, this.warpedMapsById.size - 1), this.addToOrUpdateRtree(i), this.addEventListenersToWarpedMap(i), this.dispatchEvent(\n new V(C.WARPEDMAPADDED, t)\n ), t;\n }\n async removeGeoreferencedMapInternal(e) {\n const t = await this.getOrComputeMapId(e), i = this.warpedMapsById.get(t);\n if (i)\n this.warpedMapsById.delete(t), this.zIndices.delete(t), this.removeFromRtree(i), this.dispatchEvent(\n new V(C.WARPEDMAPREMOVED, t)\n ), this.removeZIndexHoles(), this.dispatchEvent(new V(C.ZINDICESCHANGES));\n else\n throw new Error(`No map found with ID ${t}`);\n return t;\n }\n async getOrComputeMapId(e) {\n return e.id || await Ca(e);\n }\n addToOrUpdateRtree(e) {\n this.rtree && (this.rtree.removeItem(e.mapId), this.rtree.addItem(e.mapId, e.geoMask));\n }\n removeFromRtree(e) {\n this.rtree && this.rtree.removeItem(e.mapId);\n }\n removeZIndexHoles() {\n const e = [...this.zIndices.entries()].sort(\n (i, n) => i[1] - n[1]\n );\n let t = 0;\n for (const i of e) {\n const n = i[0];\n this.zIndices.set(n, t), t++;\n }\n }\n // This function and the listeners below transform an IMAGEINFOLOADED event by a WarpedMap\n // to an IMAGEINFOLOADED of the WarpedMapList, which is listened to in the Renderer\n imageInfoLoaded() {\n this.dispatchEvent(new V(C.IMAGEINFOLOADED));\n }\n addEventListenersToWarpedMap(e) {\n e.addEventListener(\n C.IMAGEINFOLOADED,\n this.imageInfoLoaded.bind(this)\n );\n }\n removeEventListenersFromWarpedMap(e) {\n e.removeEventListener(\n C.IMAGEINFOLOADED,\n this.imageInfoLoaded.bind(this)\n );\n }\n};\nclass kd extends EventTarget {\n tile;\n imageRequest;\n tileUrl;\n fetchFn;\n abortController;\n data;\n /**\n * Creates an instance of CacheableTile.\n *\n * @constructor\n * @param {FetchableTile} fetchableTile\n * @param {FetchFn} [fetchFn] Optional fetch function to use\n */\n constructor(e, t) {\n super(), this.tile = e.tile, this.imageRequest = e.imageRequest, this.tileUrl = e.tileUrl, this.fetchFn = t, this.abortController = new AbortController();\n }\n /**\n * Whether a tile has fetched its data\n *\n * @returns {boolean}\n */\n isCachedTile() {\n return this.data !== void 0;\n }\n /**\n * Abort the fetch\n */\n abort() {\n this.abortController.signal.aborted || this.abortController.abort();\n }\n}\nclass Ld {\n mapId;\n tile;\n imageRequest;\n tileUrl;\n /**\n * Creates an instance of FetchableTile.\n *\n * @constructor\n * @param {Tile} tile - the tile\n * @param {WarpedMapWithImageInfo} warpedMap - A WarpedMap with fetched image information\n */\n constructor(e, t) {\n this.mapId = t.mapId, this.tile = e;\n const i = t.parsedImage.getIiifTile(\n e.tileZoomLevel,\n e.column,\n e.row\n );\n this.imageRequest = i, this.tileUrl = t.parsedImage.getImageUrl(i);\n }\n}\nclass dn extends kd {\n /**\n * Fetch the tile and create its ImageBitMap.\n * @async\n * @returns {Promise<void>}\n */\n async fetch() {\n try {\n const e = await (await es(\n this.tileUrl,\n {\n signal: this.abortController.signal\n },\n this.fetchFn\n )).blob();\n this.data = await createImageBitmap(e), this.dispatchEvent(\n new V(C.TILEFETCHED, this.tileUrl)\n );\n } catch (e) {\n e instanceof Error && e.name === \"AbortError\" || this.dispatchEvent(\n new V(C.TILEFETCHERROR, this.tileUrl)\n );\n }\n return this.data;\n }\n static createFactory() {\n return (e, t) => new dn(e, t);\n }\n}\nconst jd = 0, Od = 32 * 1e3 * 1e3;\nclass Nd extends EventTarget {\n cachableTileFactory;\n fetchFn;\n tilesByTileUrl = /* @__PURE__ */ new Map();\n mapIdsByTileUrl = /* @__PURE__ */ new Map();\n tileUrlsByMapId = /* @__PURE__ */ new Map();\n tilesFetchingCount = 0;\n previousRequestedTiles = [];\n outgoingTilesHistory = [];\n constructor(e, t) {\n super(), this.cachableTileFactory = e, this.fetchFn = t?.fetchFn;\n }\n /**\n * Get a specific tile in this cache\n *\n * @param {string} tileUrl - the URL of the requested tile\n * @returns {(CacheableTile | undefined)}\n */\n getCacheableTile(e) {\n return this.tilesByTileUrl.get(e);\n }\n /**\n * Get a specific cached tile in this cache that has been fetched\n *\n * @param {string} tileUrl - the URL of the requested tile\n * @returns {(CachedTile | undefined)}\n */\n getCachedTile(e) {\n const t = this.tilesByTileUrl.get(e);\n if (t && t.isCachedTile())\n return t;\n }\n /**\n * Get the tiles in this cache\n *\n * @returns {IterableIterator<CacheableTile>}\n */\n getCacheableTiles() {\n return this.tilesByTileUrl.values();\n }\n /**\n * Get the tiles in this cache that have been fetched\n *\n * @returns {CacheableTile[]}\n */\n getCachedTiles() {\n const e = [];\n for (const t of this.tilesByTileUrl.values())\n t.isCachedTile() && e.push(t);\n return e;\n }\n getCachedTilesForMapId(e) {\n const t = [];\n for (const i of this.tilesByTileUrl.values())\n i.isCachedTile() && this.tileUrlsByMapId.get(e)?.has(i.tileUrl) && t.push(i);\n return t;\n }\n /**\n * Get the URLs of all tiles in this cache\n *\n * @returns {IterableIterator<string>}\n */\n getTileUrls() {\n return this.tilesByTileUrl.keys();\n }\n // TODO: this function needs a new name!\n /**\n * Process the request for new tiles to be added to this cache\n *\n * @param {FetchableTile[]} tiles\n */\n requestFetchableTiles(e) {\n const t = bi(this.previousRequestedTiles), i = bi(e);\n if (xa(t, i))\n return;\n const n = [];\n for (const a of this.previousRequestedTiles)\n i.has(Mo(a)) || n.push(a);\n this.updateOutgoingTilesHistory(n, e.length);\n const s = bi(\n this.outgoingTilesHistory\n ), o = /* @__PURE__ */ new Set([\n ...i,\n ...s\n ]);\n for (const [a, l] of this.mapIdsByTileUrl)\n for (const c of l)\n o.has(\n bo(c, a)\n ) || this.removeMapTile(c, a);\n for (const a of e)\n this.addMapTile(a);\n this.previousRequestedTiles = e;\n }\n /**\n * Returns a promise that resolves when all requested tiles are loaded.\n * This could happen immidiately, in case there are no current requests and the tilesFetchingCount is zero,\n * or in a while, when the count reaches zero and the ALLREQUESTEDTILESLOADED event is fired.\n *\n * @async\n * @returns {Promise<void>}\n */\n async allRequestedTilesLoaded() {\n return new Promise((e) => {\n if (this.finished)\n e();\n else {\n const t = () => {\n this.removeEventListener(\n C.ALLREQUESTEDTILESLOADED,\n t\n ), e();\n };\n this.addEventListener(\n C.ALLREQUESTEDTILESLOADED,\n t\n );\n }\n });\n }\n getTileUrlsForMapId(e) {\n return this.tileUrlsByMapId.get(e) || /* @__PURE__ */ new Set();\n }\n clear() {\n this.tilesByTileUrl = /* @__PURE__ */ new Map(), this.mapIdsByTileUrl = /* @__PURE__ */ new Map(), this.tileUrlsByMapId = /* @__PURE__ */ new Map(), this.tilesFetchingCount = 0, this.outgoingTilesHistory = [];\n }\n dispose() {\n for (const e of this.getCacheableTiles())\n this.removeEventListenersFromTile(e);\n }\n addMapTile(e) {\n const t = e.mapId, i = e.tileUrl;\n if (this.tilesByTileUrl.has(i))\n this.dispatchEvent(\n new V(C.MAPTILELOADED, {\n mapId: t,\n tileUrl: i\n })\n );\n else {\n const n = this.cachableTileFactory(\n e,\n this.fetchFn\n );\n this.addEventListenersToTile(n), this.tilesByTileUrl.set(i, n), this.updateTilesFetchingCount(1), n.fetch();\n }\n this.addTileUrlForMapId(t, i), this.addMapIdForTileUrl(t, i);\n }\n removeMapTile(e, t) {\n const i = this.tilesByTileUrl.get(t);\n if (!i)\n return;\n const n = this.removeMapIdForTileUrl(e, t);\n this.removeTileUrlForMapId(e, t), n.size || (i.isCachedTile() || (i.abort(), this.updateTilesFetchingCount(-1)), this.tilesByTileUrl.delete(t)), this.dispatchEvent(\n new V(C.MAPTILEREMOVED, {\n mapId: e,\n tileUrl: t\n })\n );\n }\n updateOutgoingTilesHistory(e, t) {\n for (let o = e.length - 1; o >= 0; o--) {\n const a = e[o];\n this.outgoingTilesHistory.unshift(a);\n }\n this.outgoingTilesHistory = Array.from(new Set(this.outgoingTilesHistory));\n let i = 0, n = 0, s = 0;\n for (const o of this.outgoingTilesHistory) {\n if (i += 1, s = Ef(o), n += s, i + t > jd) {\n i -= 1, n -= s;\n break;\n }\n if (n > Od) {\n i -= 1, n -= s;\n break;\n }\n }\n this.outgoingTilesHistory = this.outgoingTilesHistory.slice(0, i);\n }\n tileFetched(e) {\n if (e instanceof V) {\n const t = e.data;\n this.updateTilesFetchingCount(-1);\n for (const i of this.mapIdsByTileUrl.get(t) || [])\n this.dispatchEvent(\n new V(C.MAPTILELOADED, {\n mapId: i,\n tileUrl: t\n })\n ), this.tileUrlsByMapId.get(i)?.values().next().value === t && this.dispatchEvent(\n new V(C.FIRSTMAPTILELOADED, {\n mapId: i,\n tileUrl: t\n })\n );\n }\n }\n tileFetchError(e) {\n if (e instanceof V) {\n const t = e.data;\n this.tilesByTileUrl.has(t) || this.updateTilesFetchingCount(-1);\n }\n }\n addMapIdForTileUrl(e, t) {\n let i = this.mapIdsByTileUrl.get(t);\n return i ? i.add(e) : i = /* @__PURE__ */ new Set([e]), this.mapIdsByTileUrl.set(t, i), i;\n }\n removeMapIdForTileUrl(e, t) {\n const i = this.mapIdsByTileUrl.get(t);\n if (i)\n i.delete(e);\n else\n return /* @__PURE__ */ new Set();\n return i.size ? this.mapIdsByTileUrl.set(t, i) : this.mapIdsByTileUrl.delete(t), i;\n }\n addTileUrlForMapId(e, t) {\n let i = this.tileUrlsByMapId.get(e);\n return i ? i.add(t) : i = /* @__PURE__ */ new Set([t]), this.tileUrlsByMapId.set(e, i), i;\n }\n removeTileUrlForMapId(e, t) {\n const i = this.tileUrlsByMapId.get(e);\n return i ? (i.delete(t), i.size ? this.tileUrlsByMapId.set(e, i) : this.tileUrlsByMapId.delete(e), i) : /* @__PURE__ */ new Set();\n }\n get finished() {\n return this.tilesFetchingCount === 0;\n }\n updateTilesFetchingCount(e) {\n this.tilesFetchingCount += e, this.tilesFetchingCount === 0 && this.dispatchEvent(\n new V(C.ALLREQUESTEDTILESLOADED)\n );\n }\n addEventListenersToTile(e) {\n e.addEventListener(\n C.TILEFETCHED,\n this.tileFetched.bind(this)\n ), e.addEventListener(\n C.TILEFETCHERROR,\n this.tileFetchError.bind(this)\n );\n }\n removeEventListenersFromTile(e) {\n e.removeEventListener(\n C.TILEFETCHED,\n this.tileFetched.bind(this)\n ), e.removeEventListener(\n C.TILEFETCHERROR,\n this.tileFetchError.bind(this)\n );\n }\n}\nconst Dd = 5;\nclass Fd extends EventTarget {\n warpedMapList;\n tileCache;\n mapsInViewport = /* @__PURE__ */ new Set();\n viewport;\n constructor(e, t, i) {\n super(), this.tileCache = new Nd(e, i), this.warpedMapList = new Cd(t, i);\n }\n /**\n * Parses an annotation and adds its georeferenced map to this renderer's warped map list\n *\n * @async\n * @param {unknown} annotation\n * @returns {Promise<(string | Error)[]>}\n */\n async addGeoreferenceAnnotation(e) {\n return this.warpedMapList.addGeoreferenceAnnotation(e);\n }\n /**\n * Adds a georeferenced map to this renderer's warped map list\n *\n * @async\n * @param {unknown} georeferencedMap\n * @returns {Promise<string | Error>}\n */\n async addGeoreferencedMap(e) {\n return this.warpedMapList.addGeoreferencedMap(e);\n }\n loadMissingImageInfosInViewport() {\n return this.viewport ? Array.from(\n this.warpedMapList.getMapsByGeoBbox(this.viewport.geoRectangleBbox)\n ).map((e) => this.warpedMapList.getWarpedMap(e)).filter(\n (e) => !e.hasImageInfo() && !e.loadingImageInfo\n ).map((e) => e.loadImageInfo()) : [];\n }\n someImageInfosInViewport() {\n return this.viewport ? Array.from(\n this.warpedMapList.getMapsByGeoBbox(this.viewport.geoRectangleBbox)\n ).map((e) => this.warpedMapList.getWarpedMap(e)).map((e) => e.hasImageInfo()).some((e) => e === !0) : !1;\n }\n shouldUpdateRequestedTiles() {\n return !0;\n }\n updateRequestedTiles() {\n if (!this.viewport)\n return;\n const e = this.viewport;\n if (!this.shouldUpdateRequestedTiles())\n return;\n const t = Array.from(\n this.warpedMapList.getMapsByGeoBbox(this.viewport.geoRectangleBbox)\n ).sort((n, s) => {\n const o = this.warpedMapList.getWarpedMap(n), a = this.warpedMapList.getWarpedMap(s);\n return o && a ? we(wt(o.geoMaskBbox), e.geoCenter) - we(wt(a.geoMaskBbox), e.geoCenter) : 0;\n }), i = [];\n for (const n of t) {\n const s = this.warpedMapList.getWarpedMap(n);\n if (!s || !s.visible || !s.hasImageInfo() || va(s.getViewportMaskBbox(e)) < Dd)\n continue;\n const o = wf(\n s.parsedImage,\n s.getResourceToCanvasScale(e)\n );\n s.setBestScaleFactor(o.scaleFactor);\n const a = {\n maxDepth: 0,\n // maxDepth: 2,\n // maxOffsetRatio: 0.00001,\n sourceIsGeographic: !1,\n destinationIsGeographic: !0\n }, l = s.transformer.transformBackward(\n [e.geoRectangle],\n a\n )[0];\n s.setResourceViewportRing(l);\n const c = xf(\n l,\n o,\n s.parsedImage\n );\n for (const h of c)\n i.push(new Ld(h, s));\n }\n this.tileCache.requestFetchableTiles(i), this.updateMapsInViewport(i);\n }\n updateMapsInViewport(e) {\n const t = Array.from(this.mapsInViewport), i = e.map((o) => o.mapId).filter((o, a, l) => l.indexOf(o) === a);\n this.mapsInViewport = new Set(\n i.sort((o, a) => {\n const l = this.warpedMapList.getMapZIndex(o), c = this.warpedMapList.getMapZIndex(a);\n return l !== void 0 && c !== void 0 ? l - c : 0;\n })\n );\n const n = i.filter(\n (o) => !t.includes(o)\n ), s = t.filter(\n (o) => !i.includes(o)\n );\n for (const o in n)\n this.dispatchEvent(\n new V(C.WARPEDMAPENTER, o)\n );\n for (const o in s)\n this.dispatchEvent(\n new V(C.WARPEDMAPLEAVE, o)\n );\n }\n // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\n mapTileLoaded(e) {\n }\n // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\n mapTileRemoved(e) {\n }\n // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\n imageInfoLoaded(e) {\n }\n // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\n warpedMapAdded(e) {\n }\n // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\n warpedMapRemoved(e) {\n }\n // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\n transformationChanged(e) {\n }\n // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\n distortionChanged(e) {\n }\n addEventListeners() {\n this.tileCache.addEventListener(\n C.MAPTILELOADED,\n this.mapTileLoaded.bind(this)\n ), this.tileCache.addEventListener(\n C.MAPTILEREMOVED,\n this.mapTileRemoved.bind(this)\n ), this.warpedMapList.addEventListener(\n C.IMAGEINFOLOADED,\n this.imageInfoLoaded.bind(this)\n ), this.warpedMapList.addEventListener(\n C.WARPEDMAPADDED,\n this.warpedMapAdded.bind(this)\n ), this.warpedMapList.addEventListener(\n C.WARPEDMAPREMOVED,\n this.warpedMapRemoved.bind(this)\n ), this.warpedMapList.addEventListener(\n C.TRANSFORMATIONCHANGED,\n this.transformationChanged.bind(this)\n ), this.warpedMapList.addEventListener(\n C.DISTORTIONCHANGED,\n this.distortionChanged.bind(this)\n );\n }\n removeEventListeners() {\n this.tileCache.removeEventListener(\n C.MAPTILELOADED,\n this.mapTileLoaded.bind(this)\n ), this.tileCache.removeEventListener(\n C.MAPTILEREMOVED,\n this.mapTileRemoved.bind(this)\n ), this.warpedMapList.removeEventListener(\n C.IMAGEINFOLOADED,\n this.imageInfoLoaded.bind(this)\n ), this.warpedMapList.removeEventListener(\n C.WARPEDMAPADDED,\n this.warpedMapAdded.bind(this)\n ), this.warpedMapList.removeEventListener(\n C.WARPEDMAPREMOVED,\n this.warpedMapRemoved.bind(this)\n ), this.warpedMapList.removeEventListener(\n C.TRANSFORMATIONCHANGED,\n this.transformationChanged.bind(this)\n ), this.warpedMapList.removeEventListener(\n C.DISTORTIONCHANGED,\n this.distortionChanged.bind(this)\n );\n }\n}\nvar Gd = `#version 300 es\n\nprecision highp float;\n\nuniform mat4 u_renderTransform;\n\nuniform float u_animationProgress;\n\nin vec2 a_resourceTrianglePoint;\nin vec2 a_clipPreviousTrianglePoint;\nin vec2 a_clipTrianglePoint;\nin float a_previousTrianglePointDistortion;\nin float a_trianglePointDistortion;\nin float a_triangleIndex;\n\nout vec2 v_resourceTrianglePoint;\nout float v_trianglePointDistortion;\nout float v_triangleIndex;\n\nfloat cubicInOut(float t) {\n return t < 0.5f ? 4.0f * t * t * t : 0.5f * pow(2.0f * t - 2.0f, 3.0f) + 1.0f;\n}\n\nvoid main() {\n \n vec2 clipTrianglePoint = mix(a_clipPreviousTrianglePoint, a_clipTrianglePoint, cubicInOut(u_animationProgress));\n float trianglePointDistortion = mix(a_previousTrianglePointDistortion, a_trianglePointDistortion, cubicInOut(u_animationProgress));\n\n \n \n \n\n gl_Position = u_renderTransform * vec4(clipTrianglePoint, 0.0f, 1.0f);\n\n \n v_resourceTrianglePoint = a_resourceTrianglePoint;\n v_trianglePointDistortion = trianglePointDistortion;\n v_triangleIndex = a_triangleIndex;\n}`, Bd = `#version 300 es\n\nprecision highp float;\nprecision highp isampler2D;\n\n#ifndef SPECTRAL\n#define SPECTRAL\n\nconst int SPECTRAL_SIZE = 38;\nconst float SPECTRAL_GAMMA = 2.4;\nconst float SPECTRAL_EPSILON = 0.0001;\n\nfloat spectral_uncompand(float x) {\n return (x < 0.04045) ? x / 12.92 : pow((x + 0.055) / 1.055, SPECTRAL_GAMMA);\n}\n\nfloat spectral_compand(float x) {\n return (x < 0.0031308) ? x * 12.92 : 1.055 * pow(x, 1.0 / SPECTRAL_GAMMA) - 0.055;\n}\n\nvec3 spectral_srgb_to_linear(vec3 srgb) {\n return vec3(spectral_uncompand(srgb[0]), spectral_uncompand(srgb[1]), spectral_uncompand(srgb[2]));\n}\n\nvec3 spectral_linear_to_srgb(vec3 lrgb) {\n return clamp(vec3(spectral_compand(lrgb[0]), spectral_compand(lrgb[1]), spectral_compand(lrgb[2])), 0.0, 1.0);\n}\n\nvoid spectral_upsampling(vec3 lrgb, out float w, out float c, out float m, out float y, out float r, out float g, out float b) {\n w = min(lrgb.r, min(lrgb.g, lrgb.b));\n\n lrgb -= w;\n\n c = min(lrgb.g, lrgb.b);\n m = min(lrgb.r, lrgb.b);\n y = min(lrgb.r, lrgb.g);\n r = min(max(0., lrgb.r - lrgb.b), max(0., lrgb.r - lrgb.g));\n g = min(max(0., lrgb.g - lrgb.b), max(0., lrgb.g - lrgb.r));\n b = min(max(0., lrgb.b - lrgb.g), max(0., lrgb.b - lrgb.r));\n}\n\nvoid spectral_linear_to_reflectance(vec3 lrgb, inout float R[SPECTRAL_SIZE]) {\n float w, c, m, y, r, g, b;\n\n spectral_upsampling(lrgb, w, c, m, y, r, g, b);\n\n R[0] = max(SPECTRAL_EPSILON, w + c * 0.96853629 + m * 0.51567122 + y * 0.02055257 + r * 0.03147571 + g * 0.49108579 + b * 0.97901834);\n R[1] = max(SPECTRAL_EPSILON, w + c * 0.96855103 + m * 0.54015520 + y * 0.02059936 + r * 0.03146636 + g * 0.46944057 + b * 0.97901649);\n R[2] = max(SPECTRAL_EPSILON, w + c * 0.96859338 + m * 0.62645502 + y * 0.02062723 + r * 0.03140624 + g * 0.40165780 + b * 0.97901118);\n R[3] = max(SPECTRAL_EPSILON, w + c * 0.96877345 + m * 0.75595012 + y * 0.02073387 + r * 0.03119611 + g * 0.24490420 + b * 0.97892146);\n R[4] = max(SPECTRAL_EPSILON, w + c * 0.96942204 + m * 0.92826996 + y * 0.02114202 + r * 0.03053888 + g * 0.06826880 + b * 0.97858555);\n R[5] = max(SPECTRAL_EPSILON, w + c * 0.97143709 + m * 0.97223624 + y * 0.02233154 + r * 0.02856855 + g * 0.02732883 + b * 0.97743705);\n R[6] = max(SPECTRAL_EPSILON, w + c * 0.97541862 + m * 0.98616174 + y * 0.02556857 + r * 0.02459485 + g * 0.01360600 + b * 0.97428075);\n R[7] = max(SPECTRAL_EPSILON, w + c * 0.98074186 + m * 0.98955255 + y * 0.03330189 + r * 0.01929520 + g * 0.01000187 + b * 0.96663223);\n R[8] = max(SPECTRAL_EPSILON, w + c * 0.98580992 + m * 0.98676237 + y * 0.05185294 + r * 0.01423112 + g * 0.01284127 + b * 0.94822893);\n R[9] = max(SPECTRAL_EPSILON, w + c * 0.98971194 + m * 0.97312575 + y * 0.10087639 + r * 0.01033111 + g * 0.02636635 + b * 0.89937713);\n R[10] = max(SPECTRAL_EPSILON, w + c * 0.99238027 + m * 0.91944277 + y * 0.24000413 + r * 0.00765876 + g * 0.07058713 + b * 0.76070164);\n R[11] = max(SPECTRAL_EPSILON, w + c * 0.99409844 + m * 0.32564851 + y * 0.53589066 + r * 0.00593693 + g * 0.70421692 + b * 0.46420440);\n R[12] = max(SPECTRAL_EPSILON, w + c * 0.99517200 + m * 0.13820628 + y * 0.79874659 + r * 0.00485616 + g * 0.85473994 + b * 0.20123039);\n R[13] = max(SPECTRAL_EPSILON, w + c * 0.99576545 + m * 0.05015143 + y * 0.91186529 + r * 0.00426186 + g * 0.95081565 + b * 0.08808402);\n R[14] = max(SPECTRAL_EPSILON, w + c * 0.99593552 + m * 0.02912336 + y * 0.95399623 + r * 0.00409039 + g * 0.97170370 + b * 0.04592894);\n R[15] = max(SPECTRAL_EPSILON, w + c * 0.99564041 + m * 0.02421691 + y * 0.97137099 + r * 0.00438375 + g * 0.97651888 + b * 0.02860373);\n R[16] = max(SPECTRAL_EPSILON, w + c * 0.99464769 + m * 0.02660696 + y * 0.97939505 + r * 0.00537525 + g * 0.97429245 + b * 0.02060067);\n R[17] = max(SPECTRAL_EPSILON, w + c * 0.99229579 + m * 0.03407586 + y * 0.98345207 + r * 0.00772962 + g * 0.97012917 + b * 0.01656701);\n R[18] = max(SPECTRAL_EPSILON, w + c * 0.98638762 + m * 0.04835936 + y * 0.98553736 + r * 0.01366120 + g * 0.94258630 + b * 0.01451549);\n R[19] = max(SPECTRAL_EPSILON, w + c * 0.96829712 + m * 0.00011720 + y * 0.98648905 + r * 0.03181352 + g * 0.99989207 + b * 0.01357964);\n R[20] = max(SPECTRAL_EPSILON, w + c * 0.89228016 + m * 0.00008554 + y * 0.98674535 + r * 0.10791525 + g * 0.99989891 + b * 0.01331243);\n R[21] = max(SPECTRAL_EPSILON, w + c * 0.53740239 + m * 0.85267882 + y * 0.98657555 + r * 0.46249516 + g * 0.13823139 + b * 0.01347661);\n R[22] = max(SPECTRAL_EPSILON, w + c * 0.15360445 + m * 0.93188793 + y * 0.98611877 + r * 0.84604333 + g * 0.06968113 + b * 0.01387181);\n R[23] = max(SPECTRAL_EPSILON, w + c * 0.05705719 + m * 0.94810268 + y * 0.98559942 + r * 0.94275572 + g * 0.05628787 + b * 0.01435472);\n R[24] = max(SPECTRAL_EPSILON, w + c * 0.03126539 + m * 0.94200977 + y * 0.98507063 + r * 0.96860996 + g * 0.06111561 + b * 0.01479836);\n R[25] = max(SPECTRAL_EPSILON, w + c * 0.02205445 + m * 0.91478045 + y * 0.98460039 + r * 0.97783966 + g * 0.08987709 + b * 0.01515250);\n R[26] = max(SPECTRAL_EPSILON, w + c * 0.01802271 + m * 0.87065445 + y * 0.98425301 + r * 0.98187757 + g * 0.13656016 + b * 0.01540513);\n R[27] = max(SPECTRAL_EPSILON, w + c * 0.01613460 + m * 0.78827548 + y * 0.98403909 + r * 0.98377315 + g * 0.22169624 + b * 0.01557233);\n R[28] = max(SPECTRAL_EPSILON, w + c * 0.01520947 + m * 0.65738359 + y * 0.98388535 + r * 0.98470202 + g * 0.32176956 + b * 0.01565710);\n R[29] = max(SPECTRAL_EPSILON, w + c * 0.01475977 + m * 0.59909403 + y * 0.98376116 + r * 0.98515481 + g * 0.36157329 + b * 0.01571025);\n R[30] = max(SPECTRAL_EPSILON, w + c * 0.01454263 + m * 0.56817268 + y * 0.98368246 + r * 0.98537114 + g * 0.48361920 + b * 0.01571916);\n R[31] = max(SPECTRAL_EPSILON, w + c * 0.01444459 + m * 0.54031997 + y * 0.98365023 + r * 0.98546685 + g * 0.46488579 + b * 0.01572133);\n R[32] = max(SPECTRAL_EPSILON, w + c * 0.01439897 + m * 0.52110241 + y * 0.98361309 + r * 0.98550011 + g * 0.47440306 + b * 0.01572502);\n R[33] = max(SPECTRAL_EPSILON, w + c * 0.01437620 + m * 0.51041094 + y * 0.98357259 + r * 0.98551031 + g * 0.48576990 + b * 0.01571717);\n R[34] = max(SPECTRAL_EPSILON, w + c * 0.01436343 + m * 0.50526577 + y * 0.98353856 + r * 0.98550741 + g * 0.49267971 + b * 0.01571905);\n R[35] = max(SPECTRAL_EPSILON, w + c * 0.01435687 + m * 0.50255080 + y * 0.98351247 + r * 0.98551323 + g * 0.49625685 + b * 0.01571059);\n R[36] = max(SPECTRAL_EPSILON, w + c * 0.01435370 + m * 0.50126452 + y * 0.98350101 + r * 0.98551563 + g * 0.49807754 + b * 0.01569728);\n R[37] = max(SPECTRAL_EPSILON, w + c * 0.01435408 + m * 0.50083021 + y * 0.98350852 + r * 0.98551547 + g * 0.49889859 + b * 0.01570020);\n}\n\nvec3 spectral_xyz_to_srgb(vec3 xyz) {\n mat3 XYZ_RGB;\n\n XYZ_RGB[0] = vec3( 3.24306333, -1.53837619, -0.49893282);\n XYZ_RGB[1] = vec3(-0.96896309, 1.87542451, 0.04154303);\n XYZ_RGB[2] = vec3( 0.05568392, -0.20417438, 1.05799454);\n\n float r = dot(XYZ_RGB[0], xyz);\n float g = dot(XYZ_RGB[1], xyz);\n float b = dot(XYZ_RGB[2], xyz);\n\n return spectral_linear_to_srgb(vec3(r, g, b));\n}\n\nvec3 spectral_reflectance_to_xyz(float R[SPECTRAL_SIZE]) {\n vec3 xyz = vec3(0.0);\n\n xyz += R[0] * vec3(0.00006469, 0.00000184, 0.00030502);\n xyz += R[1] * vec3(0.00021941, 0.00000621, 0.00103681);\n xyz += R[2] * vec3(0.00112057, 0.00003101, 0.00531314);\n xyz += R[3] * vec3(0.00376661, 0.00010475, 0.01795439);\n xyz += R[4] * vec3(0.01188055, 0.00035364, 0.05707758);\n xyz += R[5] * vec3(0.02328644, 0.00095147, 0.11365162);\n xyz += R[6] * vec3(0.03455942, 0.00228226, 0.17335873);\n xyz += R[7] * vec3(0.03722379, 0.00420733, 0.19620658);\n xyz += R[8] * vec3(0.03241838, 0.00668880, 0.18608237);\n xyz += R[9] * vec3(0.02123321, 0.00988840, 0.13995048);\n xyz += R[10] * vec3(0.01049099, 0.01524945, 0.08917453);\n xyz += R[11] * vec3(0.00329584, 0.02141831, 0.04789621);\n xyz += R[12] * vec3(0.00050704, 0.03342293, 0.02814563);\n xyz += R[13] * vec3(0.00094867, 0.05131001, 0.01613766);\n xyz += R[14] * vec3(0.00627372, 0.07040208, 0.00775910);\n xyz += R[15] * vec3(0.01686462, 0.08783871, 0.00429615);\n xyz += R[16] * vec3(0.02868965, 0.09424905, 0.00200551);\n xyz += R[17] * vec3(0.04267481, 0.09795667, 0.00086147);\n xyz += R[18] * vec3(0.05625475, 0.09415219, 0.00036904);\n xyz += R[19] * vec3(0.06947040, 0.08678102, 0.00019143);\n xyz += R[20] * vec3(0.08305315, 0.07885653, 0.00014956);\n xyz += R[21] * vec3(0.08612610, 0.06352670, 0.00009231);\n xyz += R[22] * vec3(0.09046614, 0.05374142, 0.00006813);\n xyz += R[23] * vec3(0.08500387, 0.04264606, 0.00002883);\n xyz += R[24] * vec3(0.07090667, 0.03161735, 0.00001577);\n xyz += R[25] * vec3(0.05062889, 0.02088521, 0.00000394);\n xyz += R[26] * vec3(0.03547396, 0.01386011, 0.00000158);\n xyz += R[27] * vec3(0.02146821, 0.00810264, 0.00000000);\n xyz += R[28] * vec3(0.01251646, 0.00463010, 0.00000000);\n xyz += R[29] * vec3(0.00680458, 0.00249138, 0.00000000);\n xyz += R[30] * vec3(0.00346457, 0.00125930, 0.00000000);\n xyz += R[31] * vec3(0.00149761, 0.00054165, 0.00000000);\n xyz += R[32] * vec3(0.00076970, 0.00027795, 0.00000000);\n xyz += R[33] * vec3(0.00040737, 0.00014711, 0.00000000);\n xyz += R[34] * vec3(0.00016901, 0.00006103, 0.00000000);\n xyz += R[35] * vec3(0.00009522, 0.00003439, 0.00000000);\n xyz += R[36] * vec3(0.00004903, 0.00001771, 0.00000000);\n xyz += R[37] * vec3(0.00002000, 0.00000722, 0.00000000);\n\n return xyz;\n}\n\nfloat spectral_linear_to_concentration(float l1, float l2, float t) {\n float t1 = l1 * pow(1.0 - t, 2.0);\n float t2 = l2 * pow(t, 2.0);\n\n return t2 / (t1 + t2);\n}\n\nvec3 spectral_mix(vec3 color1, vec3 color2, float t) {\n vec3 lrgb1 = spectral_srgb_to_linear(color1);\n vec3 lrgb2 = spectral_srgb_to_linear(color2);\n\n float R1[SPECTRAL_SIZE];\n float R2[SPECTRAL_SIZE];\n\n spectral_linear_to_reflectance(lrgb1, R1);\n spectral_linear_to_reflectance(lrgb2, R2);\n\n float l1 = spectral_reflectance_to_xyz(R1)[1];\n float l2 = spectral_reflectance_to_xyz(R2)[1];\n\n t = spectral_linear_to_concentration(l1, l2, t);\n\n float R[SPECTRAL_SIZE];\n\n for (int i = 0; i < SPECTRAL_SIZE; i++) {\n float KS = (1.0 - t) * (pow(1.0 - R1[i], 2.0) / (2.0 * R1[i])) + t * (pow(1.0 - R2[i], 2.0) / (2.0 * R2[i]));\n float KM = 1.0 + KS - sqrt(pow(KS, 2.0) + 2.0 * KS);\n\n \n \n\n R[i] = KM;\n }\n\n return spectral_xyz_to_srgb(spectral_reflectance_to_xyz(R));\n}\n\nvec4 spectral_mix(vec4 color1, vec4 color2, float t) {\n return vec4(spectral_mix(color1.rgb, color2.rgb, t), mix(color1.a, color2.a, t));\n}\n\n#endif\n\nuniform bool u_removeColor;\nuniform vec3 u_removeColorOptionsColor;\nuniform float u_removeColorOptionsThreshold;\nuniform float u_removeColorOptionsHardness;\n\nuniform bool u_colorize;\nuniform vec3 u_colorizeOptionsColor;\n\nuniform bool u_grid;\n\nuniform float u_opacity;\nuniform float u_saturation;\n\nuniform bool u_distortion;\nuniform int u_distortionOptionsdistortionMeasure;\n\nuniform int u_bestScaleFactor;\n\nuniform sampler2D u_packedTilesTexture;\nuniform isampler2D u_packedTilesPositionsTexture;\nuniform isampler2D u_packedTilesResourcePositionsAndDimensionsTexture;\nuniform isampler2D u_packedTilesScaleFactorsTexture;\n\nin vec2 v_resourceTrianglePoint;\nin float v_triangleIndex;\nin float v_trianglePointDistortion;\n\nout vec4 color;\n\nvec4 rgbToVec4(int r, int g, int b) {\n return vec4(float(r) / 255.0f, float(g) / 255.0f, float(b) / 255.0f, 1.0f);\n}\n\nvoid main() {\n \n \n \n vec4 colorTransparent = vec4(0.0f, 0.0f, 0.0f, 0.0f);\n vec4 colorWhite = vec4(1.0f, 1.0f, 1.0f, 1.0f);\n vec4 colorBlack = vec4(0.0f, 0.0f, 0.0f, 1.0f);\n\n vec4 colorGreen300 = vec4(0.5254f, 0.9372f, 0.6745f, 1.0f);\n vec4 colorPurple300 = vec4(0.8470f, 0.7058f, 0.9960f, 1.0f);\n vec4 colorRed300 = vec4(0.9882f, 0.6470f, 0.6470f, 1.0f);\n vec4 colorYellow300 = vec4(0.9921f, 0.8784f, 0.2784f, 1.0f);\n vec4 colorOrange300 = vec4(0.9921f, 0.7294f, 0.4549f, 1.0f);\n vec4 colorPink300 = vec4(0.9764f, 0.6588f, 0.8313f, 1.0f);\n vec4 colorBlue300 = vec4(0.5764f, 0.7725f, 0.9921f, 1.0f);\n vec4 colorGrey300 = vec4(0.8196f, 0.8352f, 0.8588f, 1.0f);\n\n vec4 colorGreen500 = vec4(0.1333f, 0.7725f, 0.3686f, 1.0f);\n vec4 colorPurple500 = vec4(0.6588f, 0.3333f, 0.9686f, 1.0f);\n vec4 colorRed500 = vec4(0.9372f, 0.2666f, 0.2666f, 1.0f);\n vec4 colorYellow500 = vec4(0.9176f, 0.7019f, 0.0313f, 1.0f);\n vec4 colorOrange500 = vec4(0.9764f, 0.4509f, 0.0862f, 1.0f);\n vec4 colorPink500 = vec4(0.9254f, 0.2823f, 0.6f, 1.0f);\n vec4 colorBlue500 = vec4(0.2313f, 0.5098f, 0.9647f, 1.0f);\n vec4 colorGrey500 = vec4(0.4196f, 0.4470f, 0.5019f, 1.0f);\n\n float resourceTrianglePointX = v_resourceTrianglePoint.x;\n float resourceTrianglePointY = v_resourceTrianglePoint.y;\n\n \n int packedTilesCount = textureSize(u_packedTilesPositionsTexture, 0).y;\n ivec2 packedTilesTextureSize = textureSize(u_packedTilesTexture, 0);\n\n \n int smallestScaleFactorDiff = 256 * 256; \n int bestScaleFactor = 0;\n\n \n vec2 packedTilesTexturePoint = vec2(0.0f, 0.0f);\n\n \n color = colorTransparent;\n bool found = false;\n\n \n for(int index = 0; index < packedTilesCount; index += 1) {\n\n \n ivec2 packedTilePosition = texelFetch(u_packedTilesPositionsTexture, ivec2(0, index), 0).rg;\n ivec4 packedTileResourcePositionAndDimension = texelFetch(u_packedTilesResourcePositionsAndDimensionsTexture, ivec2(0, index), 0);\n int packedTileScaleFactor = texelFetch(u_packedTilesScaleFactorsTexture, ivec2(0, index), 0).r;\n\n float packedTilePositionX = float(packedTilePosition.r);\n float packedTilePositionY = float(packedTilePosition.g);\n\n float packedTileResourcePositionX = float(packedTileResourcePositionAndDimension.r);\n float packedTileResourcePositionY = float(packedTileResourcePositionAndDimension.g);\n\n float packedTileDimensionWidth = float(packedTileResourcePositionAndDimension.b);\n float packedTileDimensionHeight = float(packedTileResourcePositionAndDimension.a);\n\n \n \n \n \n if(resourceTrianglePointX >= packedTileResourcePositionX &&\n resourceTrianglePointX < packedTileResourcePositionX + packedTileDimensionWidth &&\n resourceTrianglePointY >= packedTileResourcePositionY &&\n resourceTrianglePointY < packedTileResourcePositionY + packedTileDimensionHeight) {\n found = true;\n\n int scaleFactorDiff = abs(u_bestScaleFactor - packedTileScaleFactor);\n\n if(scaleFactorDiff < smallestScaleFactorDiff || bestScaleFactor == 0) {\n\n smallestScaleFactorDiff = scaleFactorDiff;\n bestScaleFactor = packedTileScaleFactor;\n\n float packedTilePointX = (resourceTrianglePointX - packedTileResourcePositionX) / float(bestScaleFactor);\n float packedTilePointY = (resourceTrianglePointY - packedTileResourcePositionY) / float(bestScaleFactor);\n\n float packedTilesPointX = packedTilePositionX + packedTilePointX;\n float packedTilesPointY = packedTilePositionY + packedTilePointY;\n\n float packedTilesTexturePointX = packedTilesPointX / float(packedTilesTextureSize.x);\n float packedTilesTexturePointY = packedTilesPointY / float(packedTilesTextureSize.y);\n\n packedTilesTexturePoint = vec2(packedTilesTexturePointX, packedTilesTexturePointY);\n }\n }\n }\n\n if(found == true) {\n \n color = texture(u_packedTilesTexture, packedTilesTexturePoint);\n\n \n if(u_removeColorOptionsThreshold > 0.0f) {\n vec3 backgroundColorDiff = color.rgb - u_removeColorOptionsColor.rgb;\n float backgroundColorDistance = length(backgroundColorDiff);\n if(u_removeColor && backgroundColorDistance < u_removeColorOptionsThreshold) {\n float amount = smoothstep(u_removeColorOptionsThreshold - u_removeColorOptionsThreshold * (1.0f - u_removeColorOptionsHardness), u_removeColorOptionsThreshold, backgroundColorDistance);\n color = vec4(color.rgb * amount, amount);\n }\n }\n\n \n float gray = 0.21f * color.r + 0.71f * color.g + 0.07f * color.b;\n color = vec4(color.rgb * (u_saturation) + (gray * (1.0f - u_saturation)), color.a);\n\n \n if(u_colorize) {\n color = vec4((u_colorizeOptionsColor + color.rgb) * color.a, color.a);\n }\n\n \n color = vec4(color.rgb * u_opacity, color.a * u_opacity);\n\n \n \n if(u_distortion) {\n \n \n\n float trianglePointDistortion = v_trianglePointDistortion;\n\n \n trianglePointDistortion = floor(trianglePointDistortion * 10.0f) / 10.0f;\n\n switch(u_distortionOptionsdistortionMeasure) {\n case 0:\n if(trianglePointDistortion > 0.0f) {\n color = spectral_mix(color, colorRed500, trianglePointDistortion);\n } else {\n color = spectral_mix(color, colorBlue500, abs(trianglePointDistortion));\n }\n break;\n case 1:\n color = spectral_mix(color, colorGreen500, trianglePointDistortion);\n break;\n case 2:\n color = spectral_mix(color, colorYellow500, trianglePointDistortion);\n break;\n case 3:\n color = trianglePointDistortion == -1.0f ? colorRed300 : color;\n break;\n default:\n color = color;\n }\n }\n\n \n \n if(false) {\n color = vec4(abs(sin(v_triangleIndex)), abs(sin(v_triangleIndex + 1.0f)), abs(sin(v_triangleIndex + 2.0f)), 1);\n }\n\n \n if(u_grid) {\n float gridSize = 20.0f * float(u_bestScaleFactor);\n float gridWidth = 2.0f * float(u_bestScaleFactor);\n if(mod(float(resourceTrianglePointX) + gridWidth / 2.0f, gridSize) < gridWidth || mod(float(resourceTrianglePointY) + gridWidth / 2.0f, gridSize) < gridWidth) {\n color = colorBlack;\n }\n }\n }\n}`;\nconst Ud = 500, Wd = {\n leading: !0,\n trailing: !0\n}, Vd = 50, zd = {\n leading: !0,\n trailing: !0\n}, _i = 1, Ei = 1, $d = 0, qd = 0.7, Zd = 5, Kn = 750;\nclass Xd extends Fd {\n gl;\n program;\n previousSignificantViewport;\n opacity = _i;\n saturation = Ei;\n renderOptions = {};\n invertedRenderTransform;\n lastAnimationFrameRequestId;\n animating = !1;\n transformationTransitionStart;\n animationProgress = 1;\n throttledPrepareRenderInternal;\n throttledChanged;\n /**\n * Creates an instance of WebGL2Renderer.\n *\n * @constructor\n * @param {WebGL2RenderingContext} gl - WebGL 2 rendering context\n * @param {WebGL2RendererOptions} options - options\n */\n constructor(e, t) {\n const i = qn(e, e.VERTEX_SHADER, Gd), n = qn(\n e,\n e.FRAGMENT_SHADER,\n Bd\n ), s = Rf(e, i, n);\n super(\n dn.createFactory(),\n Lf(e, s),\n t\n ), this.gl = e, this.program = s, e.deleteShader(i), e.deleteShader(n), e.disable(e.DEPTH_TEST), this.invertedRenderTransform = $o(), this.addEventListeners(), this.throttledPrepareRenderInternal = Gi(\n this.prepareRenderInternal.bind(this),\n Ud,\n Wd\n ), this.throttledChanged = Gi(\n this.changed.bind(this),\n Vd,\n zd\n );\n }\n /**\n * Get the opacity of the renderer\n *\n * @returns {(number | undefined)}\n */\n getOpacity() {\n return this.opacity;\n }\n /**\n * Set the opacity of the renderer\n *\n * @param {number} opacity - opacity to set\n */\n setOpacity(e) {\n this.opacity = e;\n }\n /**\n * Reset the opacity of the renderer\n */\n resetOpacity() {\n this.opacity = _i;\n }\n /**\n * Get the opacity of a map\n *\n * @param {string} mapId - ID of the map\n * @returns {(number | undefined)}\n */\n getMapOpacity(e) {\n const t = this.warpedMapList.getWarpedMap(e);\n if (t)\n return t.opacity;\n }\n /**\n * Set the opacity of a map\n *\n * @param {string} mapId - ID of the map\n * @param {number} opacity - opacity to set\n */\n setMapOpacity(e, t) {\n const i = this.warpedMapList.getWarpedMap(e);\n i && (i.opacity = Math.min(Math.max(t, 0), 1));\n }\n /**\n * Rreset the opacity of a map\n *\n * @param {string} mapId - ID of the map\n */\n resetMapOpacity(e) {\n const t = this.warpedMapList.getWarpedMap(e);\n t && (t.opacity = _i);\n }\n /**\n * Get the remove color options of the renderer\n *\n * @returns {(Partial<RemoveColorOptions> | undefined)}\n */\n getRemoveColorOptions() {\n return this.renderOptions.removeColorOptions;\n }\n /**\n * Set the remove color options of the renderer\n *\n * @param {RemoveColorOptions} removeColorOptions\n */\n setRemoveColorOptions(e) {\n this.renderOptions.removeColorOptions = e;\n }\n /**\n * Reset the remove color options of the renderer\n */\n resetRemoveColorOptions() {\n this.renderOptions.removeColorOptions = void 0;\n }\n /**\n * Get the remove color options of a map\n *\n * @param {string} mapId - ID of the map\n * @returns {(Partial<RemoveColorOptions> | undefined)}\n */\n getMapRemoveColorOptions(e) {\n const t = this.warpedMapList.getWarpedMap(e);\n if (t)\n return t.renderOptions.removeColorOptions;\n }\n /**\n * Set the remove color options of a map\n *\n * @param {string} mapId - ID of the map\n * @param {RemoveColorOptions} removeColorOptions - the 'remove color options' to set\n */\n setMapRemoveColorOptions(e, t) {\n const i = this.warpedMapList.getWarpedMap(e);\n i && (i.renderOptions.removeColorOptions = t);\n }\n /**\n * Reset the remove color options of a map\n *\n * @param {string} mapId - ID of the map\n */\n resetMapRemoveColorOptions(e) {\n const t = this.warpedMapList.getWarpedMap(e);\n t && (t.renderOptions.removeColorOptions = void 0);\n }\n /**\n * Get the colorize options of the renderer\n *\n * @returns {(Partial<ColorizeOptions> | undefined)}\n */\n getColorizeOptions() {\n return this.renderOptions.colorizeOptions;\n }\n /**\n * Set the colorize options of the renderer\n *\n * @param {ColorizeOptions} colorizeOptions - the colorize options to set\n */\n setColorizeOptions(e) {\n this.renderOptions.colorizeOptions = e;\n }\n /**\n * Reset the colorize options of the renderer\n */\n resetColorizeOptions() {\n this.renderOptions.colorizeOptions = void 0;\n }\n /**\n * Get the colorize options of a map\n *\n * @param {string} mapId - ID of the map\n * @returns {(Partial<ColorizeOptions> | undefined)}\n */\n getMapColorizeOptions(e) {\n const t = this.warpedMapList.getWarpedMap(e);\n if (t)\n return t.renderOptions.colorizeOptions;\n }\n /**\n * Set the colorize options of a map\n *\n * @param {string} mapId - ID of the map\n * @param {ColorizeOptions} colorizeOptions - the colorize options to set\n */\n setMapColorizeOptions(e, t) {\n const i = this.warpedMapList.getWarpedMap(e);\n i && (i.renderOptions.colorizeOptions = t);\n }\n /**\n * Reset the colorize options of a map\n *\n * @param {string} mapId - ID of the map\n */\n resetMapColorizeOptions(e) {\n const t = this.warpedMapList.getWarpedMap(e);\n t && (t.renderOptions.colorizeOptions = void 0);\n }\n /**\n * Get the grid options of the renderer\n *\n * @returns {(Partial<GridOptions> | undefined)}\n */\n getGridOptions() {\n return this.renderOptions.gridOptions;\n }\n /**\n * Set the grid options of the renderer\n *\n * @param {GridOptions} gridOptions - the grid options to set\n */\n setGridOptions(e) {\n this.renderOptions.gridOptions = e;\n }\n /**\n * Reset the grid options of the renderer\n */\n resetGridOptions() {\n this.renderOptions.gridOptions = void 0;\n }\n /**\n * Get the grid options of a map\n *\n * @param {string} mapId - ID of the map\n * @returns {(Partial<GridOptions> | undefined)}\n */\n getMapGridOptions(e) {\n const t = this.warpedMapList.getWarpedMap(e);\n if (t)\n return t.renderOptions.gridOptions;\n }\n /**\n * Set the grid options of a map\n *\n * @param {string} mapId - ID of the map\n * @param {GridOptions} gridOptions - the grid options to set\n */\n setMapGridOptions(e, t) {\n const i = this.warpedMapList.getWarpedMap(e);\n i && (i.renderOptions.gridOptions = t);\n }\n /**\n * Reset the grid options of a map\n *\n * @param {string} mapId - ID of the map\n */\n resetMapGridOptions(e) {\n const t = this.warpedMapList.getWarpedMap(e);\n t && (t.renderOptions.gridOptions = void 0);\n }\n /**\n * Get the saturation of the renderer\n *\n * @returns {number}\n */\n getSaturation() {\n return this.saturation;\n }\n /**\n * Set the saturation of the renderer\n *\n * 0 - grayscale, 1 - original colors\n *\n * @param saturation - the satuation to set\n */\n setSaturation(e) {\n this.saturation = e;\n }\n /**\n * Reset the satuation of the renderer\n */\n resetSaturation() {\n this.saturation = Ei;\n }\n /**\n * Get the saturation of a map\n *\n * @param {string} mapId - ID of the map\n * @returns {(number | undefined)}\n */\n getMapSaturation(e) {\n const t = this.warpedMapList.getWarpedMap(e);\n if (t)\n return t.saturation;\n }\n /**\n * Set the saturation of a map\n *\n * 0 - grayscale, 1 - original colors\n *\n * @param mapId - ID of the map\n * @param saturation - the saturation to set\n */\n setMapSaturation(e, t) {\n const i = this.warpedMapList.getWarpedMap(e);\n i && (i.saturation = t);\n }\n /**\n * Reset the saturation of a map\n *\n * @param {string} mapId - ID of the map\n */\n resetMapSaturation(e) {\n const t = this.warpedMapList.getWarpedMap(e);\n t && (t.saturation = Ei);\n }\n /**\n * Render the map for a given viewport\n *\n * @param {Viewport} viewport - the current viewport\n */\n render(e) {\n this.viewport = e, this.loadMissingImageInfosInViewport(), this.someImageInfosInViewport() && this.throttledPrepareRenderInternal(), this.renderInternal();\n }\n clear() {\n this.warpedMapList.clear(), this.mapsInViewport = /* @__PURE__ */ new Set(), this.gl.clear(this.gl.DEPTH_BUFFER_BIT | this.gl.COLOR_BUFFER_BIT), this.tileCache.clear();\n }\n dispose() {\n for (const e of this.warpedMapList.getWarpedMaps())\n this.removeEventListenersFromWebGL2WarpedMap(e), e.dispose();\n this.tileCache.clear(), this.tileCache.dispose(), this.removeEventListeners(), this.gl.deleteProgram(this.program);\n }\n prepareRenderInternal() {\n this.updateRequestedTiles(), this.updateVertexBuffers();\n }\n shouldUpdateRequestedTiles() {\n if (!this.viewport || this.animating)\n return !1;\n if (this.previousSignificantViewport) {\n const e = [];\n for (let i = 0; i < 4; i++)\n e.push(\n we(\n this.previousSignificantViewport.projectedGeoRectangle[i],\n this.viewport.projectedGeoRectangle[i]\n ) / this.viewport.projectedGeoPerViewportScale\n );\n const t = Math.max(...e);\n return t === 0 ? !0 : t > Zd ? (this.previousSignificantViewport = this.viewport, !0) : !1;\n } else\n return this.previousSignificantViewport = this.viewport, !0;\n }\n updateVertexBuffers() {\n if (this.viewport) {\n this.invertedRenderTransform = Zo(\n this.viewport.projectedGeoToClipTransform\n );\n for (const e of this.mapsInViewport) {\n const t = this.warpedMapList.getWarpedMap(e);\n if (!t)\n break;\n t.updateVertexBuffers(this.viewport.projectedGeoToClipTransform);\n }\n }\n }\n renderInternal() {\n if (!this.viewport)\n return;\n const e = qo(\n this.viewport.projectedGeoToClipTransform,\n this.invertedRenderTransform\n ), t = this.gl;\n t.viewport(0, 0, t.canvas.width, t.canvas.height), t.enable(t.BLEND), t.blendFunc(t.ONE, t.ONE_MINUS_SRC_ALPHA), t.useProgram(this.program);\n const i = t.getUniformLocation(\n this.program,\n \"u_renderTransform\"\n );\n t.uniformMatrix4fv(\n i,\n !1,\n Ho(e)\n );\n const n = t.getUniformLocation(\n this.program,\n \"u_animationProgress\"\n );\n t.uniform1f(n, this.animationProgress);\n for (const s of this.mapsInViewport) {\n const o = this.warpedMapList.getWarpedMap(s);\n if (!o)\n continue;\n this.setRenderOptionsUniforms(this.renderOptions, o.renderOptions);\n const a = t.getUniformLocation(this.program, \"u_opacity\");\n t.uniform1f(a, this.opacity * o.opacity);\n const l = t.getUniformLocation(\n this.program,\n \"u_saturation\"\n );\n t.uniform1f(l, this.saturation * o.saturation);\n const c = t.getUniformLocation(\n this.program,\n \"u_distortion\"\n );\n if (t.uniform1f(c, o.distortionMeasure ? 1 : 0), o.distortionMeasure) {\n const p = t.getUniformLocation(\n this.program,\n \"u_distortionOptionsdistortionMeasure\"\n );\n t.uniform1i(\n p,\n Js.indexOf(o.distortionMeasure)\n );\n }\n const h = t.getUniformLocation(\n this.program,\n \"u_bestScaleFactor\"\n ), u = o.bestScaleFactor;\n t.uniform1i(h, u);\n const g = t.getUniformLocation(\n this.program,\n \"u_packedTilesTexture\"\n );\n t.uniform1i(g, 0), t.activeTexture(t.TEXTURE0), t.bindTexture(t.TEXTURE_2D, o.packedTilesTexture);\n const y = t.getUniformLocation(\n this.program,\n \"u_packedTilesPositionsTexture\"\n );\n t.uniform1i(y, 1), t.activeTexture(t.TEXTURE1), t.bindTexture(t.TEXTURE_2D, o.packedTilesPositionsTexture);\n const v = t.getUniformLocation(\n this.program,\n \"u_packedTilesResourcePositionsAndDimensionsTexture\"\n );\n t.uniform1i(v, 2), t.activeTexture(t.TEXTURE2), t.bindTexture(\n t.TEXTURE_2D,\n o.packedTilesResourcePositionsAndDimensionsTexture\n );\n const E = t.getUniformLocation(\n this.program,\n \"u_packedTilesScaleFactorsTexture\"\n );\n t.uniform1i(E, 3), t.activeTexture(t.TEXTURE3), t.bindTexture(t.TEXTURE_2D, o.packedTilesScaleFactorsTexture);\n const P = o.vao, w = o.resourceTrianglePoints.length, S = this.gl.TRIANGLES;\n t.bindVertexArray(P), t.drawArrays(S, 0, w);\n }\n }\n setRenderOptionsUniforms(e, t) {\n const i = this.gl, n = {\n removeColorOptions: {\n color: t.removeColorOptions?.color || e.removeColorOptions?.color,\n hardness: wn(\n t.removeColorOptions?.hardness,\n e.removeColorOptions?.hardness\n ),\n threshold: wn(\n t.removeColorOptions?.threshold,\n e.removeColorOptions?.threshold\n )\n },\n colorizeOptions: {\n ...e.colorizeOptions,\n ...t.colorizeOptions\n },\n gridOptions: {\n ...e.gridOptions,\n ...t.gridOptions\n }\n }, s = n.removeColorOptions?.color, o = i.getUniformLocation(\n this.program,\n \"u_removeColor\"\n );\n if (i.uniform1f(o, s ? 1 : 0), s) {\n const u = i.getUniformLocation(\n this.program,\n \"u_removeColorOptionsColor\"\n );\n i.uniform3fv(u, s);\n const g = i.getUniformLocation(\n this.program,\n \"u_removeColorOptionsThreshold\"\n );\n i.uniform1f(\n g,\n n.removeColorOptions?.threshold || $d\n );\n const y = i.getUniformLocation(\n this.program,\n \"u_removeColorOptionsHardness\"\n );\n i.uniform1f(\n y,\n n.removeColorOptions?.hardness || qd\n );\n }\n const a = n.colorizeOptions?.color, l = i.getUniformLocation(this.program, \"u_colorize\");\n if (i.uniform1f(l, a ? 1 : 0), a) {\n const u = i.getUniformLocation(\n this.program,\n \"u_colorizeOptionsColor\"\n );\n i.uniform3fv(u, a);\n }\n const c = n.gridOptions?.enabled, h = i.getUniformLocation(this.program, \"u_grid\");\n i.uniform1f(h, c ? 1 : 0);\n }\n startTransformationTransition() {\n this.lastAnimationFrameRequestId !== void 0 && cancelAnimationFrame(this.lastAnimationFrameRequestId), this.animating = !0, this.transformationTransitionStart = void 0, this.lastAnimationFrameRequestId = requestAnimationFrame(\n this.transformationTransitionFrame.bind(this)\n );\n }\n transformationTransitionFrame(e) {\n if (this.transformationTransitionStart || (this.transformationTransitionStart = e), e - this.transformationTransitionStart < Kn)\n this.animationProgress = (e - this.transformationTransitionStart) / Kn, this.renderInternal(), this.lastAnimationFrameRequestId = requestAnimationFrame(\n this.transformationTransitionFrame.bind(this)\n );\n else {\n for (const t of this.warpedMapList.getWarpedMaps())\n t.resetTrianglePoints();\n this.updateVertexBuffers(), this.animating = !1, this.animationProgress = 0, this.transformationTransitionStart = void 0;\n }\n }\n changed() {\n this.dispatchEvent(new V(C.CHANGED));\n }\n imageInfoLoaded(e) {\n e instanceof V && this.dispatchEvent(new V(C.IMAGEINFOLOADED));\n }\n mapTileLoaded(e) {\n if (e instanceof V) {\n const { mapId: t, tileUrl: i } = e.data, n = this.tileCache.getCacheableTile(i);\n if (!n || !n.isCachedTile())\n return;\n const s = this.warpedMapList.getWarpedMap(t);\n if (!s)\n return;\n s.addCachedTileAndUpdateTextures(n);\n }\n }\n mapTileRemoved(e) {\n if (e instanceof V) {\n const { mapId: t, tileUrl: i } = e.data, n = this.warpedMapList.getWarpedMap(t);\n if (!n)\n return;\n n.removeCachedTileAndUpdateTextures(i);\n }\n }\n warpedMapAdded(e) {\n if (e instanceof V) {\n const t = e.data, i = this.warpedMapList.getWarpedMap(t);\n i && this.addEventListenersToWebGL2WarpedMap(i);\n }\n }\n transformationChanged(e) {\n if (e instanceof V) {\n const t = e.data;\n for (const i of this.warpedMapList.getWarpedMaps(t))\n this.animating && i.mixTrianglePoints(this.animationProgress), i.updateProjectedGeoTrianglePoints(!1);\n this.updateVertexBuffers(), this.startTransformationTransition();\n }\n }\n distortionChanged(e) {\n if (e instanceof V) {\n const t = e.data;\n for (const i of this.warpedMapList.getWarpedMaps(t))\n this.animating && i.mixTrianglePoints(this.animationProgress), i.updateTrianglePointsDistortion(!1);\n this.updateVertexBuffers(), this.startTransformationTransition();\n }\n }\n addEventListenersToWebGL2WarpedMap(e) {\n e.addEventListener(\n C.TEXTURESUPDATED,\n this.throttledChanged.bind(this)\n );\n }\n removeEventListenersFromWebGL2WarpedMap(e) {\n e.removeEventListener(\n C.TEXTURESUPDATED,\n this.throttledChanged.bind(this)\n );\n }\n}\nconst Hd = \"Renderer not defined. Add the layer to a map before calling this function.\";\nfunction B(r) {\n if (!r)\n throw new Error(Hd);\n}\nclass tp {\n id = \"warped-map-layer\";\n type = \"custom\";\n renderingMode = \"2d\";\n map;\n renderer;\n options;\n /**\n * Creates a WarpedMapLayer instance\n *\n * @constructor\n * @param {string} [id] - Unique ID for this layer\n * @param {MapLibreWarpedMapLayerOptions} [options] - options\n */\n constructor(e, t) {\n e && (this.id = e), this.options = t;\n }\n /**\n * Method called when the layer has been added to the Map.\n * @param {Map} map - The Map this custom layer was just added to.\n * @param {WebGL2RenderingContext} gl - The WebGL 2 context for the map.\n */\n onAdd(e, t) {\n this.map = e, this.renderer = new Xd(t, this.options), this.addEventListeners();\n }\n /**\n * Method called when the layer has been removed from the Map.\n */\n onRemove() {\n this.renderer && (this.renderer.dispose(), this.removeEventListeners());\n }\n /**\n * Adds a [Georeference Annotation](https://iiif.io/api/extension/georef/).\n * @param {any} annotation - Georeference Annotation\n * @returns {Promise<(string | Error)[]>} - the map IDs of the maps that were added, or an error per map\n */\n async addGeoreferenceAnnotation(e) {\n B(this.renderer);\n const t = await this.renderer.warpedMapList.addGeoreferenceAnnotation(\n e\n );\n return this.map?.triggerRepaint(), t;\n }\n /**\n * Removes a [Georeference Annotation](https://iiif.io/api/extension/georef/).\n * @param {any} annotation - Georeference Annotation\n * @returns {Promise<(string | Error)[]>} - the map IDs of the maps that were removed, or an error per map\n */\n async removeGeoreferenceAnnotation(e) {\n B(this.renderer);\n const t = await this.renderer.warpedMapList.removeGeoreferenceAnnotation(e);\n return this.map?.triggerRepaint(), t;\n }\n /**\n * Adds a [Georeference Annotation](https://iiif.io/api/extension/georef/) by URL.\n * @param {string} annotationUrl - Georeference Annotation\n * @returns {Promise<(string | Error)[]>} - the map IDs of the maps that were added, or an error per map\n */\n async addGeoreferenceAnnotationByUrl(e) {\n const t = await fetch(e).then(\n (i) => i.json()\n );\n return this.addGeoreferenceAnnotation(t);\n }\n /**\n * Removes a [Georeference Annotation](https://iiif.io/api/extension/georef/) by URL.\n * @param {string} annotationUrl - Georeference Annotation\n * @returns {Promise<(string | Error)[]>} - the map IDs of the maps that were removed, or an error per map\n */\n async removeGeoreferenceAnnotationByUrl(e) {\n const t = await fetch(e).then(\n (n) => n.json()\n );\n return this.removeGeoreferenceAnnotation(t);\n }\n /**\n * Adds a Georeferenced map.\n * @param {unknown} georeferencedMap - Georeferenced map\n * @returns {Promise<(string | Error)>} - the map ID of the map that was added, or an error\n */\n async addGeoreferencedMap(e) {\n B(this.renderer);\n const t = this.renderer.warpedMapList.addGeoreferencedMap(e);\n return this.map?.triggerRepaint(), t;\n }\n /**\n * Removes a Georeferenced map.\n * @param {unknown} georeferencedMap - Georeferenced map\n * @returns {Promise<(string | Error)>} - the map ID of the map that was remvoed, or an error\n */\n async removeGeoreferencedMap(e) {\n B(this.renderer);\n const t = this.renderer.warpedMapList.removeGeoreferencedMap(e);\n return this.map?.triggerRepaint(), t;\n }\n /**\n * Returns the WarpedMapList object that contains a list of the warped maps of all loaded maps\n * @returns {WarpedMapList} the warped map list\n */\n getWarpedMapList() {\n return B(this.renderer), this.renderer.warpedMapList;\n }\n /**\n * Returns a single map's warped map\n * @param {string} mapId - ID of the map\n * @returns {WebGL2WarpedMap | undefined} the warped map\n */\n getWarpedMap(e) {\n return B(this.renderer), this.renderer.warpedMapList.getWarpedMap(e);\n }\n /**\n * Make a single map visible\n * @param {string} mapId - ID of the map\n */\n showMap(e) {\n B(this.renderer), this.renderer.warpedMapList.showMaps([e]), this.map?.triggerRepaint();\n }\n /**\n * Make multiple maps visible\n * @param {Iterable<string>} mapIds - IDs of the maps\n */\n showMaps(e) {\n B(this.renderer), this.renderer.warpedMapList.showMaps(e), this.map?.triggerRepaint();\n }\n /**\n * Make a single map invisible\n * @param {string} mapId - ID of the map\n */\n hideMap(e) {\n B(this.renderer), this.renderer.warpedMapList.hideMaps([e]), this.map?.triggerRepaint();\n }\n /**\n * Make multiple maps invisible\n * @param {Iterable<string>} mapIds - IDs of the maps\n */\n hideMaps(e) {\n B(this.renderer), this.renderer.warpedMapList.hideMaps(e), this.map?.triggerRepaint();\n }\n /**\n * Returns the visibility of a single map\n * @returns {boolean | undefined} - whether the map is visible\n */\n isMapVisible(e) {\n return B(this.renderer), this.renderer.warpedMapList.getWarpedMap(e)?.visible;\n }\n /**\n * Sets the resource mask of a single map\n * @param {string} mapId - ID of the map\n * @param {Ring} resourceMask - new resource mask\n */\n setMapResourceMask(e, t) {\n B(this.renderer), this.renderer.warpedMapList.setMapResourceMask(e, t), this.map?.triggerRepaint();\n }\n /**\n * Sets the transformation type of multiple maps\n * @param {Iterable<string>} mapIds - IDs of the maps\n * @param {TransformationType} transformation - new transformation type\n */\n setMapsTransformationType(e, t) {\n B(this.renderer), this.renderer.warpedMapList.setMapsTransformationType(\n e,\n t\n ), this.map?.triggerRepaint();\n }\n /**\n * Sets the distortion measure of multiple maps\n * @param {Iterable<string>} mapIds - IDs of the maps\n * @param {DistortionMeasure} distortionMeasure - new transformation type\n */\n setMapsDistortionMeasure(e, t) {\n B(this.renderer), this.renderer.warpedMapList.setMapsDistortionMeasure(\n e,\n t\n ), this.map?.triggerRepaint();\n }\n /**\n * Return the bounding box of all visible maps in the layer (inside or outside of the Viewport), in longitude/latitude coordinates.\n * @returns {Bbox | undefined} - bounding box of all warped maps\n */\n getBounds() {\n B(this.renderer);\n const e = this.renderer.warpedMapList.getBbox();\n if (e)\n return [\n [e[0], e[1]],\n [e[2], e[3]]\n ];\n }\n /**\n * Bring maps to front\n * @param {Iterable<string>} mapIds - IDs of the maps\n */\n bringMapsToFront(e) {\n B(this.renderer), this.renderer.warpedMapList.bringMapsToFront(e), this.map?.triggerRepaint();\n }\n /**\n * Send maps to back\n * @param {Iterable<string>} mapIds - IDs of the maps\n */\n sendMapsToBack(e) {\n B(this.renderer), this.renderer.warpedMapList.sendMapsToBack(e), this.map?.triggerRepaint();\n }\n /**\n * Bring maps forward\n * @param {Iterable<string>} mapIds - IDs of the maps\n */\n bringMapsForward(e) {\n B(this.renderer), this.renderer.warpedMapList.bringMapsForward(e), this.map?.triggerRepaint();\n }\n /**\n * Send maps backward\n * @param {Iterable<string>} mapIds - IDs of the maps\n */\n sendMapsBackward(e) {\n B(this.renderer), this.renderer.warpedMapList.sendMapsBackward(e), this.map?.triggerRepaint();\n }\n /**\n * Returns the z-index of a single map\n * @param {string} mapId - ID of the warped map\n * @returns {number | undefined} - z-index of the warped map\n */\n getMapZIndex(e) {\n return B(this.renderer), this.renderer.warpedMapList.getMapZIndex(e);\n }\n // not getZIndex() here since so such concept in MapLibre\n /**\n * Sets the object that caches image information\n * @param {ImageInformations} imageInformations - Object that caches image information\n */\n setImageInformations(e) {\n B(this.renderer), this.renderer.warpedMapList.setImageInformations(e);\n }\n // No setOpacity() and getOpacity() here since these are\n // already present on the OpenLayers Layer class\n /**\n * Gets the opacity of the layer\n * @returns {number | undefined} opacity of the map\n */\n getOpacity() {\n return B(this.renderer), this.renderer.getOpacity();\n }\n /**\n * Sets the opacity of the layer\n * @param {number} opacity - opacity between 0 and 1, where 0 is fully transparent and 1 is fully opaque\n */\n setOpacity(e) {\n B(this.renderer), this.renderer.setOpacity(e), this.map?.triggerRepaint();\n }\n /**\n * Resets the opacity of the layer to fully opaque\n */\n resetOpacity() {\n B(this.renderer), this.renderer.resetOpacity(), this.map?.triggerRepaint();\n }\n /**\n * Gets the opacity of a single map\n * @param {string} mapId - ID of the map\n * @returns {number | undefined} opacity of the map\n */\n getMapOpacity(e) {\n return B(this.renderer), this.renderer.getMapOpacity(e);\n }\n /**\n * Sets the opacity of a single map\n * @param {string} mapId - ID of the map\n * @param {number} opacity - opacity between 0 and 1, where 0 is fully transparent and 1 is fully opaque\n */\n setMapOpacity(e, t) {\n B(this.renderer), this.renderer.setMapOpacity(e, t), this.map?.triggerRepaint();\n }\n /**\n * Resets the opacity of a single map to fully opaque\n * @param {string} mapId - ID of the map\n */\n resetMapOpacity(e) {\n B(this.renderer), this.renderer.resetMapOpacity(e), this.map?.triggerRepaint();\n }\n /**\n * Sets the saturation of a single map\n * @param {number} saturation - saturation between 0 and 1, where 0 is grayscale and 1 are the original colors\n */\n setSaturation(e) {\n B(this.renderer), this.renderer.setSaturation(e), this.map?.triggerRepaint();\n }\n /**\n * Resets the saturation of a single map to the original colors\n */\n resetSaturation() {\n B(this.renderer), this.renderer.resetSaturation(), this.map?.triggerRepaint();\n }\n /**\n * Sets the saturation of a single map\n * @param {string} mapId - ID of the map\n * @param {number} saturation - saturation between 0 and 1, where 0 is grayscale and 1 are the original colors\n */\n setMapSaturation(e, t) {\n B(this.renderer), this.renderer.setMapSaturation(e, t), this.map?.triggerRepaint();\n }\n /**\n * Resets the saturation of a single map to the original colors\n * @param {string} mapId - ID of the map\n */\n resetMapSaturation(e) {\n B(this.renderer), this.renderer.resetMapSaturation(e), this.map?.triggerRepaint();\n }\n /**\n * Removes a color from all maps\n * @param {Object} options - remove color options\n * @param {string} [options.hexColor] - hex color to remove\n * @param {number} [options.threshold] - threshold between 0 and 1\n * @param {number} [options.hardness] - hardness between 0 and 1\n */\n setRemoveColor(e) {\n B(this.renderer);\n const t = e.hexColor ? pr(e.hexColor) : void 0;\n this.renderer.setRemoveColorOptions({\n color: t,\n threshold: e.threshold,\n hardness: e.hardness\n }), this.map?.triggerRepaint();\n }\n /**\n * Resets the color removal for all maps\n */\n resetRemoveColor() {\n B(this.renderer), this.renderer.resetRemoveColorOptions(), this.map?.triggerRepaint();\n }\n /**\n * Removes a color from a single map\n * @param {string} mapId - ID of the map\n * @param {Object} options - remove color options\n * @param {string} [options.hexColor] - hex color to remove\n * @param {number} [options.threshold] - threshold between 0 and 1\n * @param {number} [options.hardness] - hardness between 0 and 1\n */\n setMapRemoveColor(e, t) {\n B(this.renderer);\n const i = t.hexColor ? pr(t.hexColor) : void 0;\n this.renderer.setMapRemoveColorOptions(e, {\n color: i,\n threshold: t.threshold,\n hardness: t.hardness\n }), this.map?.triggerRepaint();\n }\n /**\n * Resets the color for a single map\n * @param {string} mapId - ID of the map\n */\n resetMapRemoveColor(e) {\n B(this.renderer), this.renderer.resetMapRemoveColorOptions(e);\n }\n /**\n * Sets the colorization for all maps\n * @param {string} hexColor - desired hex color\n */\n setColorize(e) {\n B(this.renderer);\n const t = pr(e);\n t && (this.renderer.setColorizeOptions({ color: t }), this.map?.triggerRepaint());\n }\n /**\n * Resets the colorization for all maps\n */\n resetColorize() {\n B(this.renderer), this.renderer.resetColorizeOptions(), this.map?.triggerRepaint();\n }\n /**\n * Sets the colorization for a single mapID of the map\n * @param {string} mapId - ID of the map\n * @param {string} hexColor - desired hex color\n */\n setMapColorize(e, t) {\n B(this.renderer);\n const i = pr(t);\n i && (this.renderer.setMapColorizeOptions(e, { color: i }), this.map?.triggerRepaint());\n }\n /**\n * Resets the colorization of a single map\n * @param {string} mapId - ID of the map\n */\n resetMapColorize(e) {\n B(this.renderer), this.renderer.resetMapColorizeOptions(e), this.map?.triggerRepaint();\n }\n /**\n * Removes all warped maps from the layer\n */\n clear() {\n B(this.renderer), this.renderer.clear(), this.map?.triggerRepaint();\n }\n /**\n * Prepare rendering the layer.\n */\n preparerender() {\n }\n /**\n * Render the layer.\n */\n render() {\n if (!this.map || !this.renderer)\n return;\n const e = this.map.getCanvas(), t = [\n e.width / window.devicePixelRatio,\n e.height / window.devicePixelRatio\n ], i = this.map.getCenter(), n = ut([\n i.lng,\n i.lat\n ]), s = this.map.unproject([0, t[1]]), o = this.map.unproject([\n t[0],\n t[1]\n ]), a = this.map.unproject([t[0], 0]), l = this.map.unproject([0, 0]), c = ut([\n s.lng,\n s.lat\n ]), h = ut([\n o.lng,\n o.lat\n ]), u = ut([\n a.lng,\n a.lat\n ]), g = ut([\n l.lng,\n l.lat\n ]), v = Pi([\n c,\n h,\n u,\n g\n ]), E = Cr(\n v,\n t\n ), P = -(this.map.getBearing() / 180) * Math.PI, w = new kr(\n t,\n n,\n E,\n P,\n window.devicePixelRatio\n );\n this.renderer.render(w);\n }\n addEventListeners() {\n this.renderer && (this.renderer.addEventListener(\n C.CHANGED,\n this.render.bind(this)\n ), this.renderer.addEventListener(\n C.IMAGEINFOLOADED,\n this.render.bind(this)\n ), this.renderer.addEventListener(\n C.WARPEDMAPENTER,\n this.passWarpedMapEvent.bind(this)\n ), this.renderer.addEventListener(\n C.WARPEDMAPLEAVE,\n this.passWarpedMapEvent.bind(this)\n ), this.renderer.tileCache.addEventListener(\n C.FIRSTMAPTILELOADED,\n this.passWarpedMapEvent.bind(this)\n ), this.renderer.tileCache.addEventListener(\n C.ALLREQUESTEDTILESLOADED,\n this.passWarpedMapEvent.bind(this)\n ), this.renderer.warpedMapList.addEventListener(\n C.GEOREFERENCEANNOTATIONADDED,\n this.passWarpedMapEvent.bind(this)\n ), this.renderer.warpedMapList.addEventListener(\n C.WARPEDMAPADDED,\n this.passWarpedMapEvent.bind(this)\n ), this.renderer.warpedMapList.addEventListener(\n C.WARPEDMAPREMOVED,\n this.passWarpedMapEvent.bind(this)\n ), this.renderer.warpedMapList.addEventListener(\n C.VISIBILITYCHANGED,\n this.render.bind(this)\n ), this.renderer.warpedMapList.addEventListener(\n C.CLEARED,\n this.render.bind(this)\n ));\n }\n removeEventListeners() {\n this.renderer && (this.renderer.removeEventListener(\n C.CHANGED,\n this.render.bind(this)\n ), this.renderer.removeEventListener(\n C.IMAGEINFOLOADED,\n this.render.bind(this)\n ), this.renderer.removeEventListener(\n C.WARPEDMAPENTER,\n this.passWarpedMapEvent.bind(this)\n ), this.renderer.removeEventListener(\n C.WARPEDMAPLEAVE,\n this.passWarpedMapEvent.bind(this)\n ), this.renderer.tileCache.removeEventListener(\n C.FIRSTMAPTILELOADED,\n this.passWarpedMapEvent.bind(this)\n ), this.renderer.tileCache.removeEventListener(\n C.ALLREQUESTEDTILESLOADED,\n this.passWarpedMapEvent.bind(this)\n ), this.renderer.warpedMapList.removeEventListener(\n C.GEOREFERENCEANNOTATIONADDED,\n this.passWarpedMapEvent.bind(this)\n ), this.renderer.warpedMapList.removeEventListener(\n C.WARPEDMAPADDED,\n this.passWarpedMapEvent.bind(this)\n ), this.renderer.warpedMapList.removeEventListener(\n C.WARPEDMAPREMOVED,\n this.passWarpedMapEvent.bind(this)\n ), this.renderer.warpedMapList.removeEventListener(\n C.VISIBILITYCHANGED,\n this.render.bind(this)\n ), this.renderer.warpedMapList.removeEventListener(\n C.CLEARED,\n this.render.bind(this)\n ));\n }\n passWarpedMapEvent(e) {\n e instanceof V && this.map && this.map.fire(e.type, e.data);\n }\n}\nexport {\n tp as WarpedMapLayer\n};\n//# sourceMappingURL=allmaps-maplibre-4.0.es.js.map\n"],"names":["mt","r","i","$o","qo","n","s","l","h","g","y","pn","Zo","Xo","Ho","es","Yo","Jo","ts","gn","Qo","ge","Pe","Ko","Se","Ne","De","Fe","Hr","Wi","Ui","ra","rs","ea","ta","sr","or","ar","ia","Ir","na","sa","we","oa","Ge","Be","Ue","We","Ve","ze","aa","Ct","kt","Lt","la","ca","ha","ua","lr","cr","hr","ur","fr","dr","fa","da","pa","ga","mn","ue","vn","ma","Ar","is","va","ya","wt","ui","Pi","Cr","yn","Er","fi","_a","_b","_c","wa","pr","xa","wn","ba","v","Ma","xn","bn","Ta","Ea","p","b","f","R","A","T","d","x","_","M","S","E","P","Pa","Sa","se","Mn","t","Tn","Ra","Ia","St","ut","_n","kr","__publicField","Si","Aa","ns","Ca","X","Ri","j","He","I","ka","xe","xt","ss","La","Lr","jr","ja","fe","D","vt","me","Ii","Ai","Ft","Gt","Or","os","O","jt","Ot","Le","En","F","o","a","c","U","Ce","ke","et","Ae","Mt","Vt","zt","Ht","Vi","Yt","er","Jt","Oa","Na","Da","Fa","Ga","Ba","Ua","Wa","di","Va","za","$a","as","qa","ls","Za","cs","Xa","Re","Ha","Je","Qe","Bt","nt","Nr","Ut","Wt","bt","it","Ze","Dr","ft","ee","je","u","hs","$e","qt","Zt","Ke","Xt","Yr","Ci","$t","Fr","st","yt","Gr","Ya","us","Ja","Qa","fs","ds","Ka","el","ps","tl","rl","il","nl","sl","ol","al","ll","cl","hl","ul","fl","dl","pl","gl","ml","vl","yl","wl","xl","bl","Ml","Tl","_l","Pn","El","Pl","Sl","Rl","Il","Al","Cl","kl","Ll","m","Jr","gs","jl","Br","ms","vs","ys","ws","xs","Ol","bs","Qr","Sn","Nl","Ur","Wr","Ms","zi","Dl","Ts","$i","Fl","Gl","Bl","Ul","Wl","_s","Rn","Es","In","ot","Vl","Ps","zl","$l","Ss","ql","Rs","An","ki","Zl","at","Xl","Is","Cn","Hl","Yl","As","Cs","Jl","ks","Ls","Ql","js","Kl","ec","tc","rc","ic","nc","sc","oc","Os","Ns","ac","kn","lc","cc","Li","hc","uc","qi","e","Ln","ve","Ds","fc","dc","jn","pc","gc","ji","Ie","Tt","mc","Fs","vc","yc","Zi","Vr","Gs","wc","Qt","xc","bc","Mc","Tc","Ec","Pc","ye","On","gr","Bs","Sc","Us","Rc","Ic","Nn","Ac","Te","_e","dt","pt","Xi","Hi","Oi","mr","Kr","lt","Cc","kc","Lc","jc","Oc","Nc","Dc","Fc","Gc","Bc","Uc","Wc","Vc","zc","$c","qc","Zc","Xc","te","ae","k","z","H","Z","W","ne","ce","de","K","Me","G","re","pe","he","oe","Oo","No","Do","Fo","Go","Bo","Uo","Wo","Vo","zo","Dn","Hc","e_fn","__privateAdd","__privateMethod","_Ye","__privateSet","__privateGet","Ye","ei","Xe","Yc","Jc","Qc","Kc","eh","th","Pr","rh","ih","Ws","be","nh","ti","qe","Yi","Et","sh","Vs","Sr","oh","ah","lh","ch","hh","uh","zs","fh","dh","ph","gh","vr","$s","qs","mh","vh","Fn","yh","wh","Ee","xh","bh","Zs","tr","Xs","Mh","pi","Th","_h","Eh","Ph","yr","ri","Hs","ii","wr","Ys","Sh","Rh","xr","br","Di","Fi","gi","Js","Ih","C","V","mi","Qs","Ah","Ch","kh","Lh","jh","Oh","Nh","Dh","Fh","Ks","eo","Gh","Gn","Bh","Wh","Uh","Vh","zh","vi","$h","qh","Zh","Xh","Yh","Hh","Jh","Qh","Kh","Mr","eu","to","tu","ru","ro","iu","nu","su","Ji","ou","zr","Qi","rr","io","au","$","yi","Ki","en","lu","cu","tn","hu","Oe","no","Pt","Kt","Rr","uu","fu","du","rn","$r","so","pu","ir","gu","ie","le","oo","Bn","mu","vu","yu","wu","xu","bu","_t","Mu","ao","Su","nn","an","tt","Tu","Eu","_u","lo","co","Pu","Ru","Iu","ho","sn","uo","fo","on","po","Au","go","mo","Cu","Rt","ku","Lu","vo","wi","Un","ju","yo","Ou","Nu","Du","Fu","Gu","Bu","Uu","Wu","Vu","zu","$u","wo","qr","xo","qu","Zu","It","Xu","Hu","Yu","Ju","Qu","Ku","Wn","ef","tf","rf","nf","sf","of","af","lf","Zr","Vn","cf","hf","uf","ff","zn","xi","df","pf","gf","mf","vf","Gi","yf","bo","Mo","bi","wf","xf","bf","Mf","_f","$n","Tf","Ef","Pf","To","Sf","qn","Rf","ct","If","Af","Cf","kf","Lf","jf","Of","Nf","rt","_o","Eo","nr","Df","ni","si","oi","Ff","Gf","Bf","Po","Uf","ln","So","cn","Wf","Vf","zf","$f","qf","Zf","Xf","Hf","Yf","Jf","Ro","Qf","hn","Io","Ao","Kf","Xr","Zn","ai","li","ed","td","ad","rd","id","nd","sd","od","ld","Xn","Bi","Co","cd","ci","un","ko","hd","hi","fn","ud","fd","dd","pd","gd","Hn","md","Lo","vd","Yn","yd","jo","wd","At","xd","_r","Ti","gt","bd","ht","Jn","Mi","_d","Dt","Nt","Ed","Md","Td","Tr","Pd","Sd","Qn","Rd","Id","Ad","Cd","kd","Ld","dn","jd","Od","Nd","Dd","Fd","Gd","Bd","Ud","Wd","Vd","zd","_i","Ei","$d","qd","Zd","Kn","Xd","w","_g","_j","_k","Hd","B","tp"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"index.es56.js","sources":["../../../node_modules/@turf/bbox/dist/es/index.js"],"sourcesContent":["import { coordEach } from \"@turf/meta\";\n/**\n * Takes a set of features, calculates the bbox of all input features, and returns a bounding box.\n *\n * @name bbox\n * @param {GeoJSON} geojson any GeoJSON object\n * @returns {BBox} bbox extent in [minX, minY, maxX, maxY] order\n * @example\n * var line = turf.lineString([[-74, 40], [-78, 42], [-82, 35]]);\n * var bbox = turf.bbox(line);\n * var bboxPolygon = turf.bboxPolygon(bbox);\n *\n * //addToMap\n * var addToMap = [line, bboxPolygon]\n */\nfunction bbox(geojson) {\n var result = [Infinity, Infinity, -Infinity, -Infinity];\n coordEach(geojson, function (coord) {\n if (result[0] > coord[0]) {\n result[0] = coord[0];\n }\n if (result[1] > coord[1]) {\n result[1] = coord[1];\n }\n if (result[2] < coord[0]) {\n result[2] = coord[0];\n }\n if (result[3] < coord[1]) {\n result[3] = coord[1];\n }\n });\n return result;\n}\nbbox[\"default\"] = bbox;\nexport default bbox;\n"],"names":["bbox","geojson","result","coordEach","coord"],"mappings":";AAeA,SAASA,EAAKC,GAAS;AACnB,MAAIC,IAAS,CAAC,OAAU,OAAU,QAAW,MAAS;AAC5C,SAAAC,EAAAF,GAAS,SAAUG,GAAO;AAChC,IAAIF,EAAO,CAAC,IAAIE,EAAM,CAAC,MACZF,EAAA,CAAC,IAAIE,EAAM,CAAC,IAEnBF,EAAO,CAAC,IAAIE,EAAM,CAAC,MACZF,EAAA,CAAC,IAAIE,EAAM,CAAC,IAEnBF,EAAO,CAAC,IAAIE,EAAM,CAAC,MACZF,EAAA,CAAC,IAAIE,EAAM,CAAC,IAEnBF,EAAO,CAAC,IAAIE,EAAM,CAAC,MACZF,EAAA,CAAC,IAAIE,EAAM,CAAC;AAAA,EACvB,CACH,GACMF;AACX;AACAF,EAAK,UAAaA;","x_google_ignoreList":[0]}
|